From 3122dd78217d91e70b8214e1446bf8be7d707b61 Mon Sep 17 00:00:00 2001 From: Denis Merigoux Date: Tue, 21 Mar 2023 16:10:00 +0100 Subject: [PATCH] Update assets --- compiler/literate/latex.ml | 2 +- french_law/js/french_law.js | 256888 +++++++-------- french_law/ocaml/law_source/aides_logement.ml | 17125 +- .../law_source/aides_logement_api_web.ml | 6 + .../law_source/allocations_familiales.ml | 6 +- french_law/python/src/aides_logement.py | 23155 +- .../python/src/allocations_familiales.py | 4 +- 7 files changed, 151551 insertions(+), 145635 deletions(-) diff --git a/compiler/literate/latex.ml b/compiler/literate/latex.ml index 493abd53..81e10436 100644 --- a/compiler/literate/latex.ml +++ b/compiler/literate/latex.ml @@ -196,7 +196,7 @@ let code_block ~meta lang fmt (code, pos) = let contents = String.concat "" ["```catala\n"; code; "```"] in File.with_temp_file "catala_latex_pygments" "in" ~contents @@ fun temp_file_in -> - call_pygmentize ~lang ["-f"; "latex"; "-O"; "nowrap=true"; temp_file_in] + call_pygmentize ~lang ["-f"; "latex"; "-O"; "nowrap=True"; temp_file_in] in Format.fprintf fmt {latex|\begin{Verbatim}[commandchars=\\\{\},numbers=left,firstnumber=%d,stepnumber=1,label={\hspace*{\fill}\texttt{%s}}%s]|latex} diff --git a/french_law/js/french_law.js b/french_law/js/french_law.js index 5e3e87e3..fd3129d0 100644 --- a/french_law/js/french_law.js +++ b/french_law/js/french_law.js @@ -1,579 +1,588 @@ -//# 1 "api_web.bc.runtime.js" -// Generated by js_of_ocaml 4.1.0 -(function(Object) - {typeof globalThis - !== - "object" - && +//# 1 ".api_web.eobjs/jsoo/api_web.bc.runtime.js" +// Generated by js_of_ocaml +//# buildInfo:effects=false, kind=runtime, use-js-string=true, version=5.1.1 + +//# 7 ".api_web.eobjs/jsoo/api_web.bc.runtime.js" +(function + (Object){ + typeof globalThis !== "object" + && (this - ?get() - :(Object.defineProperty - (Object.prototype,"_T_",{configurable:true,get:get}), + ? get() + : (Object.defineProperty + (Object.prototype, "_T_", {configurable: true, get: get}), _T_)); - function get() - {var global=this || self; - global.globalThis = global; - delete Object.prototype._T_}} + function get(){ + var global = this || self; + global.globalThis = global; + delete Object.prototype._T_; + } + } (Object)); -(function(globalThis) - {"use strict"; - var joo_global_object=globalThis; - function caml_int64_is_zero(x){return + x.isZero()} - function caml_str_repeat(n,s) - {if(n == 0)return ""; - if(s.repeat)return s.repeat(n); - var r="",l=0; - for(;;) - {if(n & 1)r += s; - n >>= 1; - if(n == 0)return r; - s += s; - l++; - if(l == 9)s.slice(0,1)}} - var caml_int64_offset=Math.pow(2,- 24); - function caml_raise_constant(tag){throw tag} - var caml_global_data=[0]; - function caml_raise_zero_divide() - {caml_raise_constant(caml_global_data.Division_by_zero)} - function MlInt64(lo,mi,hi) - {this.lo = lo & 0xffffff;this.mi = mi & 0xffffff;this.hi = hi & 0xffff} - MlInt64.prototype.caml_custom = "_j"; - MlInt64.prototype.copy - = - function(){return new MlInt64(this.lo,this.mi,this.hi)}; - MlInt64.prototype.ucompare - = - function(x) - {if(this.hi > x.hi)return 1; - if(this.hi < x.hi)return - 1; - if(this.mi > x.mi)return 1; - if(this.mi < x.mi)return - 1; - if(this.lo > x.lo)return 1; - if(this.lo < x.lo)return - 1; - return 0}; - MlInt64.prototype.compare - = - function(x) - {var hi=this.hi << 16,xhi=x.hi << 16; - if(hi > xhi)return 1; - if(hi < xhi)return - 1; - if(this.mi > x.mi)return 1; - if(this.mi < x.mi)return - 1; - if(this.lo > x.lo)return 1; - if(this.lo < x.lo)return - 1; - return 0}; - MlInt64.prototype.neg - = - function() - {var lo=- this.lo,mi=- this.mi + (lo >> 24),hi=- this.hi + (mi >> 24); - return new MlInt64(lo,mi,hi)}; - MlInt64.prototype.add - = - function(x) - {var - lo=this.lo + x.lo, - mi=this.mi + x.mi + (lo >> 24), - hi=this.hi + x.hi + (mi >> 24); - return new MlInt64(lo,mi,hi)}; - MlInt64.prototype.sub - = - function(x) - {var - lo=this.lo - x.lo, - mi=this.mi - x.mi + (lo >> 24), - hi=this.hi - x.hi + (mi >> 24); - return new MlInt64(lo,mi,hi)}; - MlInt64.prototype.mul - = - function(x) - {var - lo=this.lo * x.lo, - mi=(lo * caml_int64_offset | 0) + this.mi * x.lo + this.lo * x.mi, - hi= - (mi * caml_int64_offset | 0) - + - this.hi - * - x.lo - + - this.mi - * - x.mi - + - this.lo - * - x.hi; - return new MlInt64(lo,mi,hi)}; - MlInt64.prototype.isZero - = - function(){return (this.lo | this.mi | this.hi) == 0}; - MlInt64.prototype.isNeg = function(){return this.hi << 16 < 0}; - MlInt64.prototype.and - = - function(x) - {return new MlInt64(this.lo & x.lo,this.mi & x.mi,this.hi & x.hi)}; - MlInt64.prototype.or - = - function(x) - {return new MlInt64(this.lo | x.lo,this.mi | x.mi,this.hi | x.hi)}; - MlInt64.prototype.xor - = - function(x) - {return new MlInt64(this.lo ^ x.lo,this.mi ^ x.mi,this.hi ^ x.hi)}; - MlInt64.prototype.shift_left - = - function(s) - {s = s & 63; - if(s == 0)return this; - if(s < 24) - return new - MlInt64 - (this.lo << s, - this.mi << s | this.lo >> 24 - s, - this.hi << s | this.mi >> 24 - s); - if(s < 48) - return new - MlInt64 - (0,this.lo << s - 24,this.mi << s - 24 | this.lo >> 48 - s); - return new MlInt64(0,0,this.lo << s - 48)}; - MlInt64.prototype.shift_right_unsigned - = - function(s) - {s = s & 63; - if(s == 0)return this; - if(s < 24) - return new - MlInt64 - (this.lo >> s | this.mi << 24 - s, - this.mi >> s | this.hi << 24 - s, - this.hi >> s); - if(s < 48) - return new - MlInt64 - (this.mi >> s - 24 | this.hi << 48 - s,this.hi >> s - 24,0); - return new MlInt64(this.hi >> s - 48,0,0)}; - MlInt64.prototype.shift_right - = - function(s) - {s = s & 63; - if(s == 0)return this; - var h=this.hi << 16 >> 16; - if(s < 24) - return new - MlInt64 - (this.lo >> s | this.mi << 24 - s, - this.mi >> s | h << 24 - s, - this.hi << 16 >> s >>> 16); - var sign=this.hi << 16 >> 31; - if(s < 48) - return new - MlInt64 - (this.mi >> s - 24 | this.hi << 48 - s, - this.hi << 16 >> s - 24 >> 16, - sign & 0xffff); - return new MlInt64(this.hi << 16 >> s - 32,sign,sign)}; - MlInt64.prototype.lsl1 - = - function() - {this.hi = this.hi << 1 | this.mi >> 23; - this.mi = (this.mi << 1 | this.lo >> 23) & 0xffffff; - this.lo = this.lo << 1 & 0xffffff}; - MlInt64.prototype.lsr1 - = - function() - {this.lo = (this.lo >>> 1 | this.mi << 23) & 0xffffff; - this.mi = (this.mi >>> 1 | this.hi << 23) & 0xffffff; - this.hi = this.hi >>> 1}; - MlInt64.prototype.udivmod - = - function(x) - {var - offset=0, - modulus=this.copy(), - divisor=x.copy(), - quotient=new MlInt64(0,0,0); - while(modulus.ucompare(divisor) > 0){offset++;divisor.lsl1()} - while(offset >= 0) - {offset--; - quotient.lsl1(); - if(modulus.ucompare(divisor) >= 0) - {quotient.lo++;modulus = modulus.sub(divisor)} - divisor.lsr1()} - return {quotient:quotient,modulus:modulus}}; - MlInt64.prototype.div - = - function(y) - {var x=this; - if(y.isZero())caml_raise_zero_divide(); - var sign=x.hi ^ y.hi; - if(x.hi & 0x8000)x = x.neg(); - if(y.hi & 0x8000)y = y.neg(); - var q=x.udivmod(y).quotient; - if(sign & 0x8000)q = q.neg(); - return q}; - MlInt64.prototype.mod - = - function(y) - {var x=this; - if(y.isZero())caml_raise_zero_divide(); - var sign=x.hi; - if(x.hi & 0x8000)x = x.neg(); - if(y.hi & 0x8000)y = y.neg(); - var r=x.udivmod(y).modulus; - if(sign & 0x8000)r = r.neg(); - return r}; - MlInt64.prototype.toInt = function(){return this.lo | this.mi << 24}; - MlInt64.prototype.toFloat - = - function() - {return (this.hi << 16) - * - Math.pow(2,32) - + - this.mi - * - Math.pow(2,24) - + - this.lo}; - MlInt64.prototype.toArray - = - function() - {return [this.hi >> 8, - this.hi & 0xff, - this.mi >> 16, - this.mi >> 8 & 0xff, - this.mi & 0xff, - this.lo >> 16, - this.lo >> 8 & 0xff, - this.lo & 0xff]}; - MlInt64.prototype.lo32 - = - function(){return this.lo | (this.mi & 0xff) << 24}; - MlInt64.prototype.hi32 - = - function(){return this.mi >>> 8 & 0xffff | this.hi << 16}; - function caml_int64_of_int32(x) - {return new MlInt64(x & 0xffffff,x >> 24 & 0xffffff,x >> 31 & 0xffff)} - function caml_int64_to_int32(x){return x.toInt()} - function caml_int64_is_negative(x){return + x.isNeg()} - function caml_int64_neg(x){return x.neg()} - function caml_subarray_to_jsbytes(a,i,len) - {var f=String.fromCharCode; - if(i == 0 && len <= 4096 && len == a.length)return f.apply(null,a); - var s=""; - for(;0 < len;i += 1024,len -= 1024) - s += f.apply(null,a.slice(i,i + Math.min(len,1024))); - return s} - function caml_convert_string_to_bytes(s) - {if(s.t == 2) - s.c += caml_str_repeat(s.l - s.c.length,"\0"); - else - s.c = caml_subarray_to_jsbytes(s.c,0,s.c.length); - s.t = 0} - function caml_jsbytes_of_string(s) - {s.t & 6 && caml_convert_string_to_bytes(s);return s.c} - function caml_raise_with_arg(tag,arg){throw [0,tag,arg]} - function jsoo_is_ascii(s) - {if(s.length < 24) - {for(var i=0;i < s.length;i++)if(s.charCodeAt(i) > 127)return false; - return true} - else - return ! /[^\x00-\x7f]/.test(s)} - function caml_utf16_of_utf8(s) - {for(var b="",t="",c,c1,c2,v,i=0,l=s.length;i < l;i++) - {c1 = s.charCodeAt(i); - if(c1 < 0x80) - {for(var j=i + 1;j < l && (c1 = s.charCodeAt(j)) < 0x80;j++); - if(j - i > 512) - {t.substr(0,1);b += t;t = "";b += s.slice(i,j)} - else - t += s.slice(i,j); - if(j == l)break; - i = j} - v = 1; - if(++i < l && ((c2 = s.charCodeAt(i)) & - 64) == 128) - {c = c2 + (c1 << 6); - if(c1 < 0xe0) - {v = c - 0x3080;if(v < 0x80)v = 1} - else - {v = 2; - if(++i < l && ((c2 = s.charCodeAt(i)) & - 64) == 128) - {c = c2 + (c << 6); - if(c1 < 0xf0) - {v = c - 0xe2080; - if(v < 0x800 || v >= 0xd7ff && v < 0xe000)v = 2} - else - {v = 3; - if - (++i - < - l - && - ((c2 = s.charCodeAt(i)) & - 64) - == - 128 - && - c1 - < - 0xf5) - {v = c2 - 0x3c82080 + (c << 6); - if(v < 0x10000 || v > 0x10ffff)v = 3}}}}} - if(v < 4) - {i -= v;t += "\ufffd"} +(function(globalThis){ + "use strict"; + var joo_global_object = globalThis; + function caml_int64_is_zero(x){return + x.isZero();} + function caml_str_repeat(n, s){ + if(n == 0) return ""; + if(s.repeat) return s.repeat(n); + var r = "", l = 0; + for(;;){ + if(n & 1) r += s; + n >>= 1; + if(n == 0) return r; + s += s; + l++; + if(l == 9) s.slice(0, 1); + } + } + var caml_int64_offset = Math.pow(2, - 24); + function caml_raise_constant(tag){throw tag;} + var caml_global_data = [0]; + function caml_raise_zero_divide(){ + caml_raise_constant(caml_global_data.Division_by_zero); + } + function MlInt64(lo, mi, hi){ + this.lo = lo & 0xffffff; + this.mi = mi & 0xffffff; + this.hi = hi & 0xffff; + } + MlInt64.prototype.caml_custom = "_j"; + MlInt64.prototype.copy = + function(){return new MlInt64(this.lo, this.mi, this.hi);}; + MlInt64.prototype.ucompare = + function(x){ + if(this.hi > x.hi) return 1; + if(this.hi < x.hi) return - 1; + if(this.mi > x.mi) return 1; + if(this.mi < x.mi) return - 1; + if(this.lo > x.lo) return 1; + if(this.lo < x.lo) return - 1; + return 0; + }; + MlInt64.prototype.compare = + function(x){ + var hi = this.hi << 16, xhi = x.hi << 16; + if(hi > xhi) return 1; + if(hi < xhi) return - 1; + if(this.mi > x.mi) return 1; + if(this.mi < x.mi) return - 1; + if(this.lo > x.lo) return 1; + if(this.lo < x.lo) return - 1; + return 0; + }; + MlInt64.prototype.neg = + function(){ + var + lo = - this.lo, + mi = - this.mi + (lo >> 24), + hi = - this.hi + (mi >> 24); + return new MlInt64(lo, mi, hi); + }; + MlInt64.prototype.add = + function(x){ + var + lo = this.lo + x.lo, + mi = this.mi + x.mi + (lo >> 24), + hi = this.hi + x.hi + (mi >> 24); + return new MlInt64(lo, mi, hi); + }; + MlInt64.prototype.sub = + function(x){ + var + lo = this.lo - x.lo, + mi = this.mi - x.mi + (lo >> 24), + hi = this.hi - x.hi + (mi >> 24); + return new MlInt64(lo, mi, hi); + }; + MlInt64.prototype.mul = + function(x){ + var + lo = this.lo * x.lo, + mi = (lo * caml_int64_offset | 0) + this.mi * x.lo + this.lo * x.mi, + hi = + (mi * caml_int64_offset | 0) + this.hi * x.lo + this.mi * x.mi + + this.lo * x.hi; + return new MlInt64(lo, mi, hi); + }; + MlInt64.prototype.isZero = + function(){return (this.lo | this.mi | this.hi) == 0;}; + MlInt64.prototype.isNeg = function(){return this.hi << 16 < 0;}; + MlInt64.prototype.and = + function(x){ + return new MlInt64(this.lo & x.lo, this.mi & x.mi, this.hi & x.hi); + }; + MlInt64.prototype.or = + function(x){ + return new MlInt64(this.lo | x.lo, this.mi | x.mi, this.hi | x.hi); + }; + MlInt64.prototype.xor = + function(x){ + return new MlInt64(this.lo ^ x.lo, this.mi ^ x.mi, this.hi ^ x.hi); + }; + MlInt64.prototype.shift_left = + function(s){ + s = s & 63; + if(s == 0) return this; + if(s < 24) + return new + MlInt64 + (this.lo << s, + this.mi << s | this.lo >> 24 - s, + this.hi << s | this.mi >> 24 - s); + if(s < 48) + return new + MlInt64 + (0, this.lo << s - 24, this.mi << s - 24 | this.lo >> 48 - s); + return new MlInt64(0, 0, this.lo << s - 48); + }; + MlInt64.prototype.shift_right_unsigned = + function(s){ + s = s & 63; + if(s == 0) return this; + if(s < 24) + return new + MlInt64 + (this.lo >> s | this.mi << 24 - s, + this.mi >> s | this.hi << 24 - s, + this.hi >> s); + if(s < 48) + return new + MlInt64 + (this.mi >> s - 24 | this.hi << 48 - s, this.hi >> s - 24, 0); + return new MlInt64(this.hi >> s - 48, 0, 0); + }; + MlInt64.prototype.shift_right = + function(s){ + s = s & 63; + if(s == 0) return this; + var h = this.hi << 16 >> 16; + if(s < 24) + return new + MlInt64 + (this.lo >> s | this.mi << 24 - s, + this.mi >> s | h << 24 - s, + this.hi << 16 >> s >>> 16); + var sign = this.hi << 16 >> 31; + if(s < 48) + return new + MlInt64 + (this.mi >> s - 24 | this.hi << 48 - s, + this.hi << 16 >> s - 24 >> 16, + sign & 0xffff); + return new MlInt64(this.hi << 16 >> s - 32, sign, sign); + }; + MlInt64.prototype.lsl1 = + function(){ + this.hi = this.hi << 1 | this.mi >> 23; + this.mi = (this.mi << 1 | this.lo >> 23) & 0xffffff; + this.lo = this.lo << 1 & 0xffffff; + }; + MlInt64.prototype.lsr1 = + function(){ + this.lo = (this.lo >>> 1 | this.mi << 23) & 0xffffff; + this.mi = (this.mi >>> 1 | this.hi << 23) & 0xffffff; + this.hi = this.hi >>> 1; + }; + MlInt64.prototype.udivmod = + function(x){ + var + offset = 0, + modulus = this.copy(), + divisor = x.copy(), + quotient = new MlInt64(0, 0, 0); + while(modulus.ucompare(divisor) > 0){offset++; divisor.lsl1();} + while(offset >= 0){ + offset--; + quotient.lsl1(); + if(modulus.ucompare(divisor) >= 0){ + quotient.lo++; + modulus = modulus.sub(divisor); + } + divisor.lsr1(); + } + return {quotient: quotient, modulus: modulus}; + }; + MlInt64.prototype.div = + function(y){ + var x = this; + if(y.isZero()) caml_raise_zero_divide(); + var sign = x.hi ^ y.hi; + if(x.hi & 0x8000) x = x.neg(); + if(y.hi & 0x8000) y = y.neg(); + var q = x.udivmod(y).quotient; + if(sign & 0x8000) q = q.neg(); + return q; + }; + MlInt64.prototype.mod = + function(y){ + var x = this; + if(y.isZero()) caml_raise_zero_divide(); + var sign = x.hi; + if(x.hi & 0x8000) x = x.neg(); + if(y.hi & 0x8000) y = y.neg(); + var r = x.udivmod(y).modulus; + if(sign & 0x8000) r = r.neg(); + return r; + }; + MlInt64.prototype.toInt = function(){return this.lo | this.mi << 24;}; + MlInt64.prototype.toFloat = + function(){ + return (this.hi << 16) * Math.pow(2, 32) + this.mi * Math.pow(2, 24) + + this.lo; + }; + MlInt64.prototype.toArray = + function(){ + return [this.hi >> 8, + this.hi & 0xff, + this.mi >> 16, + this.mi >> 8 & 0xff, + this.mi & 0xff, + this.lo >> 16, + this.lo >> 8 & 0xff, + this.lo & 0xff]; + }; + MlInt64.prototype.lo32 = + function(){return this.lo | (this.mi & 0xff) << 24;}; + MlInt64.prototype.hi32 = + function(){return this.mi >>> 8 & 0xffff | this.hi << 16;}; + function caml_int64_of_int32(x){ + return new MlInt64(x & 0xffffff, x >> 24 & 0xffffff, x >> 31 & 0xffff); + } + function caml_int64_to_int32(x){return x.toInt();} + function caml_int64_is_negative(x){return + x.isNeg();} + function caml_int64_neg(x){return x.neg();} + function caml_jsbytes_of_string(x){return x;} + function jsoo_sys_getenv(n){ + var process = globalThis.process; + if(process && process.env && process.env[n] != undefined) + return process.env[n]; + if(globalThis.jsoo_static_env && globalThis.jsoo_static_env[n]) + return globalThis.jsoo_static_env[n]; + } + var caml_record_backtrace_flag = 0; + (function(){ + var r = jsoo_sys_getenv("OCAMLRUNPARAM"); + if(r !== undefined){ + var l = r.split(","); + for(var i = 0; i < l.length; i++) + if(l[i] == "b"){ + caml_record_backtrace_flag = 1; + break; + } + else if(l[i].startsWith("b=")) + caml_record_backtrace_flag = + l[i].slice(2); else - if(v > 0xffff) - t += String.fromCharCode(0xd7c0 + (v >> 10),0xdc00 + (v & 0x3FF)); - else - t += String.fromCharCode(v); - if(t.length > 1024){t.substr(0,1);b += t;t = ""}} - return b + t} - function MlBytes(tag,contents,length) - {this.t = tag;this.c = contents;this.l = length} - MlBytes.prototype.toString - = - function() - {switch(this.t) - {case 9:return this.c; - default:caml_convert_string_to_bytes(this);case 0: - if(jsoo_is_ascii(this.c)){this.t = 9;return this.c}this.t = 8; - case 8:return this.c - }}; - MlBytes.prototype.toUtf16 - = - function() - {var r=this.toString(); - if(this.t == 9)return r; - return caml_utf16_of_utf8(r)}; - MlBytes.prototype.slice - = - function() - {var content=this.t == 4?this.c.slice():this.c; - return new MlBytes(this.t,content,this.l)}; - function caml_bytes_of_jsbytes(s){return new MlBytes(0,s,s.length)} - function caml_string_of_jsbytes(s){return caml_bytes_of_jsbytes(s)} - function caml_raise_with_string(tag,msg) - {caml_raise_with_arg(tag,caml_string_of_jsbytes(msg))} - function caml_invalid_argument(msg) - {caml_raise_with_string(caml_global_data.Invalid_argument,msg)} - function caml_parse_format(fmt) - {fmt = caml_jsbytes_of_string(fmt); - var len=fmt.length; - if(len > 31)caml_invalid_argument("format_int: format too long"); - var - f= - {justify:"+", - signstyle:"-", - filler:" ", - alternate:false, - base:0, - signedconv:false, - width:0, - uppercase:false, - sign:1, - prec:- 1, - conv:"f"}; - for(var i=0;i < len;i++) - {var c=fmt.charAt(i); - switch(c) - {case "-":f.justify = "-";break; - case "+": - case " ":f.signstyle = c;break; - case "0":f.filler = "0";break; - case "#":f.alternate = true;break; - case "1": - case "2": - case "3": - case "4": - case "5": - case "6": - case "7": - case "8": - case "9": - f.width = 0; - while(c = fmt.charCodeAt(i) - 48,c >= 0 && c <= 9) - {f.width = f.width * 10 + c;i++} - i--; - break; - case ".": - f.prec = 0; - i++; - while(c = fmt.charCodeAt(i) - 48,c >= 0 && c <= 9) - {f.prec = f.prec * 10 + c;i++} - i--; - case "d": - case "i":f.signedconv = true; - case "u":f.base = 10;break; - case "x":f.base = 16;break; - case "X":f.base = 16;f.uppercase = true;break; - case "o":f.base = 8;break; - case "e": - case "f": - case "g":f.signedconv = true;f.conv = c;break; - case "E": - case "F": - case "G": - f.signedconv = true; - f.uppercase = true; - f.conv = c.toLowerCase(); - break - }} - return f} - function caml_finish_formatting(f,rawbuffer) - {if(f.uppercase)rawbuffer = rawbuffer.toUpperCase(); - var len=rawbuffer.length; - if(f.signedconv && (f.sign < 0 || f.signstyle != "-"))len++; - if(f.alternate){if(f.base == 8)len += 1;if(f.base == 16)len += 2} - var buffer=""; - if(f.justify == "+" && f.filler == " ") - for(var i=len;i < f.width;i++)buffer += " "; - if(f.signedconv) - if(f.sign < 0) - buffer += "-"; - else - if(f.signstyle != "-")buffer += f.signstyle; - if(f.alternate && f.base == 8)buffer += "0"; - if(f.alternate && f.base == 16)buffer += f.uppercase?"0X":"0x"; - if(f.justify == "+" && f.filler == "0") - for(var i=len;i < f.width;i++)buffer += "0"; - buffer += rawbuffer; - if(f.justify == "-")for(var i=len;i < f.width;i++)buffer += " "; - return caml_string_of_jsbytes(buffer)} - function caml_int64_format(fmt,x) - {var f=caml_parse_format(fmt); - if(f.signedconv && caml_int64_is_negative(x)) - {f.sign = - 1;x = caml_int64_neg(x)} - var - buffer="", - wbase=caml_int64_of_int32(f.base), - cvtbl="0123456789abcdef"; - do - {var p=x.udivmod(wbase); - x = p.quotient; - buffer = cvtbl.charAt(caml_int64_to_int32(p.modulus)) + buffer} - while - (! caml_int64_is_zero(x)); - if(f.prec >= 0) - {f.filler = " "; - var n=f.prec - buffer.length; - if(n > 0)buffer = caml_str_repeat(n,"0") + buffer} - return caml_finish_formatting(f,buffer)} - function caml_expm1_float(x){return Math.expm1(x)} - function caml_ml_condition_broadcast(t){return 0} - function caml_jsstring_of_string(s){return s.toUtf16()} - function fs_node_supported() - {return typeof globalThis.process - !== - "undefined" - && - typeof globalThis.process.versions - !== - "undefined" - && - typeof globalThis.process.versions.node - !== - "undefined"} - function make_path_is_absolute() - {function posix(path) - {if(path.charAt(0) === "/")return ["",path.substring(1)];return} - function win32(path) - {var - splitDeviceRe= - /^([a-zA-Z]:|[\\/]{2}[^\\/]+[\\/]+[^\\/]+)?([\\/])?([\s\S]*?)$/, - result=splitDeviceRe.exec(path), - device=result[1] || "", - isUnc=Boolean(device && device.charAt(1) !== ":"); - if(Boolean(result[2] || isUnc)) - {var root=result[1] || "",sep=result[2] || ""; - return [root,path.substring(root.length + sep.length)]} - return} - return fs_node_supported() - && - globalThis.process - && - globalThis.process.platform - ?globalThis.process.platform === "win32"?win32:posix - :posix} - var path_is_absolute=make_path_is_absolute(); - function caml_trailing_slash(name) - {return name.slice(- 1) !== "/"?name + "/":name} - if(fs_node_supported() && globalThis.process && globalThis.process.cwd) - var caml_current_dir=globalThis.process.cwd().replace(/\\/g,"/"); - else - var caml_current_dir="/static"; - caml_current_dir = caml_trailing_slash(caml_current_dir); - function caml_make_path(name) - {name = caml_jsstring_of_string(name); - if(! path_is_absolute(name))name = caml_current_dir + name; - var comp0=path_is_absolute(name),comp=comp0[1].split("/"),ncomp=[]; - for(var i=0;i < comp.length;i++) - switch(comp[i]) - {case "..":if(ncomp.length > 1)ncomp.pop();break; - case ".":break; - case "":break; - default:ncomp.push(comp[i]);break} - ncomp.unshift(comp0[0]); - ncomp.orig = name; - return ncomp} - function caml_utf8_of_utf16(s) - {for(var b="",t=b,c,d,i=0,l=s.length;i < l;i++) - {c = s.charCodeAt(i); - if(c < 0x80) - {for(var j=i + 1;j < l && (c = s.charCodeAt(j)) < 0x80;j++); - if(j - i > 512) - {t.substr(0,1);b += t;t = "";b += s.slice(i,j)} - else - t += s.slice(i,j); - if(j == l)break; - i = j} - if(c < 0x800) - {t += String.fromCharCode(0xc0 | c >> 6); - t += String.fromCharCode(0x80 | c & 0x3f)} - else - if(c < 0xd800 || c >= 0xdfff) - t - += - String.fromCharCode - (0xe0 | c >> 12,0x80 | c >> 6 & 0x3f,0x80 | c & 0x3f); - else - if - (c - >= - 0xdbff - || - i - + - 1 - == - l - || - (d = s.charCodeAt(i + 1)) - < - 0xdc00 - || - d - > - 0xdfff) - t += "\xef\xbf\xbd"; - else - {i++; - c = (c << 10) + d - 0x35fdc00; - t - += - String.fromCharCode - (0xf0 | c >> 18, - 0x80 | c >> 12 & 0x3f, - 0x80 | c >> 6 & 0x3f, - 0x80 | c & 0x3f)} - if(t.length > 1024){t.substr(0,1);b += t;t = ""}} - return b + t} - function caml_bytes_of_utf16_jsstring(s) - {var tag=9; - if(! jsoo_is_ascii(s))tag = 8,s = caml_utf8_of_utf16(s); - return new MlBytes(tag,s,s.length)} - function caml_string_of_jsstring(s) - {return caml_bytes_of_utf16_jsstring(s)} + continue; + } + } + ()); + function caml_exn_with_js_backtrace(exn, force){ + if(! exn.js_error || force || exn[0] == 248) + exn.js_error = new globalThis.Error("Js exception containing backtrace"); + return exn; + } + function caml_maybe_attach_backtrace(exn, force){ + return caml_record_backtrace_flag + ? caml_exn_with_js_backtrace(exn, force) + : exn; + } + function caml_raise_with_arg(tag, arg){ + throw caml_maybe_attach_backtrace([0, tag, arg]); + } + function caml_string_of_jsbytes(x){return x;} + function caml_raise_with_string(tag, msg){ + caml_raise_with_arg(tag, caml_string_of_jsbytes(msg)); + } + function caml_invalid_argument(msg){ + caml_raise_with_string(caml_global_data.Invalid_argument, msg); + } + function caml_parse_format(fmt){ + fmt = caml_jsbytes_of_string(fmt); + var len = fmt.length; + if(len > 31) caml_invalid_argument("format_int: format too long"); var - unix_error= + f = + {justify: "+", + signstyle: "-", + filler: " ", + alternate: false, + base: 0, + signedconv: false, + width: 0, + uppercase: false, + sign: 1, + prec: - 1, + conv: "f"}; + for(var i = 0; i < len; i++){ + var c = fmt.charAt(i); + switch(c){ + case "-": + f.justify = "-"; break; + case "+": + case " ": + f.signstyle = c; break; + case "0": + f.filler = "0"; break; + case "#": + f.alternate = true; break; + case "1": + case "2": + case "3": + case "4": + case "5": + case "6": + case "7": + case "8": + case "9": + f.width = 0; + while(c = fmt.charCodeAt(i) - 48, c >= 0 && c <= 9){f.width = f.width * 10 + c; i++;} + i--; + break; + case ".": + f.prec = 0; + i++; + while(c = fmt.charCodeAt(i) - 48, c >= 0 && c <= 9){f.prec = f.prec * 10 + c; i++;} + i--; + case "d": + case "i": + f.signedconv = true; + case "u": + f.base = 10; break; + case "x": + f.base = 16; break; + case "X": + f.base = 16; f.uppercase = true; break; + case "o": + f.base = 8; break; + case "e": + case "f": + case "g": + f.signedconv = true; f.conv = c; break; + case "E": + case "F": + case "G": + f.signedconv = true; + f.uppercase = true; + f.conv = c.toLowerCase(); + break; + } + } + return f; + } + function caml_finish_formatting(f, rawbuffer){ + if(f.uppercase) rawbuffer = rawbuffer.toUpperCase(); + var len = rawbuffer.length; + if(f.signedconv && (f.sign < 0 || f.signstyle != "-")) len++; + if(f.alternate){if(f.base == 8) len += 1; if(f.base == 16) len += 2;} + var buffer = ""; + if(f.justify == "+" && f.filler == " ") + for(var i = len; i < f.width; i++) buffer += " "; + if(f.signedconv) + if(f.sign < 0) + buffer += "-"; + else if(f.signstyle != "-") buffer += f.signstyle; + if(f.alternate && f.base == 8) buffer += "0"; + if(f.alternate && f.base == 16) buffer += f.uppercase ? "0X" : "0x"; + if(f.justify == "+" && f.filler == "0") + for(var i = len; i < f.width; i++) buffer += "0"; + buffer += rawbuffer; + if(f.justify == "-") for(var i = len; i < f.width; i++) buffer += " "; + return caml_string_of_jsbytes(buffer); + } + function caml_int64_format(fmt, x){ + var f = caml_parse_format(fmt); + if(f.signedconv && caml_int64_is_negative(x)){f.sign = - 1; x = caml_int64_neg(x);} + var + buffer = "", + wbase = caml_int64_of_int32(f.base), + cvtbl = "0123456789abcdef"; + do{ + var p = x.udivmod(wbase); + x = p.quotient; + buffer = cvtbl.charAt(caml_int64_to_int32(p.modulus)) + buffer; + } + while + (! caml_int64_is_zero(x)); + if(f.prec >= 0){ + f.filler = " "; + var n = f.prec - buffer.length; + if(n > 0) buffer = caml_str_repeat(n, "0") + buffer; + } + return caml_finish_formatting(f, buffer); + } + function caml_expm1_float(x){return Math.expm1(x);} + function caml_ml_condition_broadcast(t){return 0;} + function jsoo_is_ascii(s){ + if(s.length < 24){ + for(var i = 0; i < s.length; i++) if(s.charCodeAt(i) > 127) return false; + return true; + } + else + return ! /[^\x00-\x7f]/.test(s); + } + function caml_utf16_of_utf8(s){ + for(var b = "", t = "", c, c1, c2, v, i = 0, l = s.length; i < l; i++){ + c1 = s.charCodeAt(i); + if(c1 < 0x80){ + for(var j = i + 1; j < l && (c1 = s.charCodeAt(j)) < 0x80; j++) ; + if(j - i > 512){ + t.substr(0, 1); + b += t; + t = ""; + b += s.slice(i, j); + } + else + t += s.slice(i, j); + if(j == l) break; + i = j; + } + v = 1; + if(++i < l && ((c2 = s.charCodeAt(i)) & - 64) == 128){ + c = c2 + (c1 << 6); + if(c1 < 0xe0){ + v = c - 0x3080; + if(v < 0x80) v = 1; + } + else{ + v = 2; + if(++i < l && ((c2 = s.charCodeAt(i)) & - 64) == 128){ + c = c2 + (c << 6); + if(c1 < 0xf0){ + v = c - 0xe2080; + if(v < 0x800 || v >= 0xd7ff && v < 0xe000) v = 2; + } + else{ + v = 3; + if(++i < l && ((c2 = s.charCodeAt(i)) & - 64) == 128 && c1 < 0xf5){ + v = c2 - 0x3c82080 + (c << 6); + if(v < 0x10000 || v > 0x10ffff) v = 3; + } + } + } + } + } + if(v < 4){ + i -= v; + t += "\ufffd"; + } + else if(v > 0xffff) + t += String.fromCharCode(0xd7c0 + (v >> 10), 0xdc00 + (v & 0x3FF)); + else + t += String.fromCharCode(v); + if(t.length > 1024){t.substr(0, 1); b += t; t = "";} + } + return b + t; + } + function caml_jsstring_of_string(s){ + if(jsoo_is_ascii(s)) return s; + return caml_utf16_of_utf8(s); + } + function fs_node_supported(){ + return typeof globalThis.process !== "undefined" + && typeof globalThis.process.versions !== "undefined" + && typeof globalThis.process.versions.node !== "undefined"; + } + function make_path_is_absolute(){ + function posix(path){ + if(path.charAt(0) === "/") return ["", path.substring(1)]; + return; + } + function win32(path){ + var + splitDeviceRe = + /^([a-zA-Z]:|[\\/]{2}[^\\/]+[\\/]+[^\\/]+)?([\\/])?([\s\S]*?)$/, + result = splitDeviceRe.exec(path), + device = result[1] || "", + isUnc = Boolean(device && device.charAt(1) !== ":"); + if(Boolean(result[2] || isUnc)){ + var root = result[1] || "", sep = result[2] || ""; + return [root, path.substring(root.length + sep.length)]; + } + return; + } + return fs_node_supported() && globalThis.process + && globalThis.process.platform + ? globalThis.process.platform === "win32" ? win32 : posix + : posix; + } + var path_is_absolute = make_path_is_absolute(); + function caml_trailing_slash(name){ + return name.slice(- 1) !== "/" ? name + "/" : name; + } + if(fs_node_supported() && globalThis.process && globalThis.process.cwd) + var caml_current_dir = globalThis.process.cwd().replace(/\\/g, "/"); + else + var caml_current_dir = "/static"; + caml_current_dir = caml_trailing_slash(caml_current_dir); + function caml_make_path(name){ + name = caml_jsstring_of_string(name); + if(! path_is_absolute(name)) name = caml_current_dir + name; + var + comp0 = path_is_absolute(name), + comp = comp0[1].split("/"), + ncomp = []; + for(var i = 0; i < comp.length; i++) + switch(comp[i]){ + case "..": + if(ncomp.length > 1) ncomp.pop(); break; + case ".": break; + case "": break; + default: ncomp.push(comp[i]); break; + } + ncomp.unshift(comp0[0]); + ncomp.orig = name; + return ncomp; + } + function caml_utf8_of_utf16(s){ + for(var b = "", t = b, c, d, i = 0, l = s.length; i < l; i++){ + c = s.charCodeAt(i); + if(c < 0x80){ + for(var j = i + 1; j < l && (c = s.charCodeAt(j)) < 0x80; j++) ; + if(j - i > 512){ + t.substr(0, 1); + b += t; + t = ""; + b += s.slice(i, j); + } + else + t += s.slice(i, j); + if(j == l) break; + i = j; + } + if(c < 0x800){ + t += String.fromCharCode(0xc0 | c >> 6); + t += String.fromCharCode(0x80 | c & 0x3f); + } + else if(c < 0xd800 || c >= 0xdfff) + t += + String.fromCharCode + (0xe0 | c >> 12, 0x80 | c >> 6 & 0x3f, 0x80 | c & 0x3f); + else if + (c >= 0xdbff || i + 1 == l || (d = s.charCodeAt(i + 1)) < 0xdc00 + || d > 0xdfff) + t += "\xef\xbf\xbd"; + else{ + i++; + c = (c << 10) + d - 0x35fdc00; + t += + String.fromCharCode + (0xf0 | c >> 18, + 0x80 | c >> 12 & 0x3f, + 0x80 | c >> 6 & 0x3f, + 0x80 | c & 0x3f); + } + if(t.length > 1024){t.substr(0, 1); b += t; t = "";} + } + return b + t; + } + function caml_string_of_jsstring(s){ + return jsoo_is_ascii(s) + ? caml_string_of_jsbytes(s) + : caml_string_of_jsbytes(caml_utf8_of_utf16(s)); + } + var + unix_error = ["E2BIG", "EACCES", "EAGAIN", @@ -642,4828 +651,6145 @@ "EHOSTUNREACH", "ELOOP", "EOVERFLOW"]; - function make_unix_err_args(code,syscall,path,errno) - {var variant=unix_error.indexOf(code); - if(variant < 0){if(errno == null)errno = - 9999;variant = [0,errno]} - var - args= - [variant, - caml_string_of_jsstring(syscall || ""), - caml_string_of_jsstring(path || "")]; - return args} - var caml_named_values={}; - function caml_named_value(nm){return caml_named_values[nm]} - function caml_raise_with_args(tag,args){throw [0,tag].concat(args)} - function caml_is_ml_bytes(s){return s instanceof MlBytes} - function caml_is_ml_string(s){return caml_is_ml_bytes(s)} - function caml_bytes_of_array(a) - {if(! (a instanceof Uint8Array))a = new Uint8Array(a); - return new MlBytes(4,a,a.length)} - function caml_bytes_of_string(s){return s} - function caml_raise_sys_error(msg) - {caml_raise_with_string(caml_global_data.Sys_error,msg)} - function caml_raise_no_such_file(name) - {caml_raise_sys_error(name + ": No such file or directory")} - function caml_convert_bytes_to_array(s) - {var a=new Uint8Array(s.l),b=s.c,l=b.length,i=0; - for(;i < l;i++)a[i] = b.charCodeAt(i); - for(l = s.l;i < l;i++)a[i] = 0; - s.c = a; - s.t = 4; - return a} - function caml_uint8_array_of_bytes(s) - {if(s.t != 4)caml_convert_bytes_to_array(s);return s.c} - function caml_create_bytes(len) - {if(len < 0)caml_invalid_argument("Bytes.create"); - return new MlBytes(len?2:9,"",len)} - function caml_ml_bytes_length(s){return s.l} - function caml_blit_bytes(s1,i1,s2,i2,len) - {if(len == 0)return 0; - if(i2 == 0 && (len >= s2.l || s2.t == 2 && len >= s2.c.length)) - {s2.c - = - s1.t == 4 - ?caml_subarray_to_jsbytes(s1.c,i1,len) - :i1 == 0 && s1.c.length == len?s1.c:s1.c.substr(i1,len); - s2.t = s2.c.length == s2.l?0:2} + function make_unix_err_args(code, syscall, path, errno){ + var variant = unix_error.indexOf(code); + if(variant < 0){if(errno == null) errno = - 9999; variant = [0, errno];} + var + args = + [variant, + caml_string_of_jsstring(syscall || ""), + caml_string_of_jsstring(path || "")]; + return args; + } + var caml_named_values = {}; + function caml_named_value(nm){return caml_named_values[nm];} + function caml_raise_with_args(tag, args){ + throw caml_maybe_attach_backtrace([0, tag].concat(args)); + } + function caml_subarray_to_jsbytes(a, i, len){ + var f = String.fromCharCode; + if(i == 0 && len <= 4096 && len == a.length) return f.apply(null, a); + var s = ""; + for(; 0 < len; i += 1024, len -= 1024) + s += f.apply(null, a.slice(i, i + Math.min(len, 1024))); + return s; + } + function caml_convert_string_to_bytes(s){ + if(s.t == 2) + s.c += caml_str_repeat(s.l - s.c.length, "\0"); + else + s.c = caml_subarray_to_jsbytes(s.c, 0, s.c.length); + s.t = 0; + } + function MlBytes(tag, contents, length){ + this.t = tag; + this.c = contents; + this.l = length; + } + MlBytes.prototype.toString = + function(){ + switch(this.t){ + case 9: + return this.c; + default: caml_convert_string_to_bytes(this); + case 0: + if(jsoo_is_ascii(this.c)){this.t = 9; return this.c;} this.t = 8; + case 8: + return this.c; + } + }; + MlBytes.prototype.toUtf16 = + function(){ + var r = this.toString(); + if(this.t == 9) return r; + return caml_utf16_of_utf8(r); + }; + MlBytes.prototype.slice = + function(){ + var content = this.t == 4 ? this.c.slice() : this.c; + return new MlBytes(this.t, content, this.l); + }; + function caml_is_ml_bytes(s){return s instanceof MlBytes;} + function caml_is_ml_string(s){ + return typeof s === "string" && ! /[^\x00-\xff]/.test(s); + } + function caml_bytes_of_array(a){ + if(! (a instanceof Uint8Array)) a = new Uint8Array(a); + return new MlBytes(4, a, a.length); + } + function caml_bytes_of_jsbytes(s){return new MlBytes(0, s, s.length);} + function caml_bytes_of_string(s){ + return caml_bytes_of_jsbytes(caml_jsbytes_of_string(s)); + } + function caml_raise_sys_error(msg){ + caml_raise_with_string(caml_global_data.Sys_error, msg); + } + function caml_raise_no_such_file(name){ + caml_raise_sys_error(name + ": No such file or directory"); + } + function caml_convert_bytes_to_array(s){ + var a = new Uint8Array(s.l), b = s.c, l = b.length, i = 0; + for(; i < l; i++) a[i] = b.charCodeAt(i); + for(l = s.l; i < l; i++) a[i] = 0; + s.c = a; + s.t = 4; + return a; + } + function caml_uint8_array_of_bytes(s){ + if(s.t != 4) caml_convert_bytes_to_array(s); + return s.c; + } + function caml_create_bytes(len){ + if(len < 0) caml_invalid_argument("Bytes.create"); + return new MlBytes(len ? 2 : 9, "", len); + } + function caml_ml_bytes_length(s){return s.l;} + function caml_blit_bytes(s1, i1, s2, i2, len){ + if(len == 0) return 0; + if(i2 == 0 && (len >= s2.l || s2.t == 2 && len >= s2.c.length)){ + s2.c = + s1.t == 4 + ? caml_subarray_to_jsbytes(s1.c, i1, len) + : i1 == 0 && s1.c.length == len ? s1.c : s1.c.substr(i1, len); + s2.t = s2.c.length == s2.l ? 0 : 2; + } + else if(s2.t == 2 && i2 == s2.c.length){ + s2.c += + s1.t == 4 + ? caml_subarray_to_jsbytes(s1.c, i1, len) + : i1 == 0 && s1.c.length == len ? s1.c : s1.c.substr(i1, len); + s2.t = s2.c.length == s2.l ? 0 : 2; + } + else{ + if(s2.t != 4) caml_convert_bytes_to_array(s2); + var c1 = s1.c, c2 = s2.c; + if(s1.t == 4) + if(i2 <= i1) + for(var i = 0; i < len; i++) c2[i2 + i] = c1[i1 + i]; + else + for(var i = len - 1; i >= 0; i--) c2[i2 + i] = c1[i1 + i]; + else{ + var l = Math.min(len, c1.length - i1); + for(var i = 0; i < l; i++) c2[i2 + i] = c1.charCodeAt(i1 + i); + for(; i < len; i++) c2[i2 + i] = 0; + } + } + return 0; + } + function MlFile(){} + function MlFakeFile(content){this.data = content;} + MlFakeFile.prototype = new MlFile(); + MlFakeFile.prototype.constructor = MlFakeFile; + MlFakeFile.prototype.truncate = + function(len){ + var old = this.data; + this.data = caml_create_bytes(len | 0); + caml_blit_bytes(old, 0, this.data, 0, len); + }; + MlFakeFile.prototype.length = + function(){return caml_ml_bytes_length(this.data);}; + MlFakeFile.prototype.write = + function(offset, buf, pos, len){ + var clen = this.length(); + if(offset + len >= clen){ + var new_str = caml_create_bytes(offset + len), old_data = this.data; + this.data = new_str; + caml_blit_bytes(old_data, 0, this.data, 0, clen); + } + caml_blit_bytes(caml_bytes_of_array(buf), pos, this.data, offset, len); + return 0; + }; + MlFakeFile.prototype.read = + function(offset, buf, pos, len){ + var clen = this.length(); + if(offset + len >= clen) len = clen - offset; + if(len){ + var data = caml_create_bytes(len | 0); + caml_blit_bytes(this.data, offset, data, 0, len); + buf.set(caml_uint8_array_of_bytes(data), pos); + } + return len; + }; + function MlFakeFd(name, file, flags){ + this.file = file; + this.name = name; + this.flags = flags; + } + MlFakeFd.prototype.err_closed = + function(){ + caml_raise_sys_error(this.name + ": file descriptor already closed"); + }; + MlFakeFd.prototype.length = + function(){if(this.file) return this.file.length(); this.err_closed();}; + MlFakeFd.prototype.write = + function(offset, buf, pos, len){ + if(this.file) return this.file.write(offset, buf, pos, len); + this.err_closed(); + }; + MlFakeFd.prototype.read = + function(offset, buf, pos, len){ + if(this.file) return this.file.read(offset, buf, pos, len); + this.err_closed(); + }; + MlFakeFd.prototype.close = function(){this.file = undefined;}; + function MlFakeDevice(root, f){ + this.content = {}; + this.root = root; + this.lookupFun = f; + } + MlFakeDevice.prototype.nm = function(name){return this.root + name;}; + MlFakeDevice.prototype.create_dir_if_needed = + function(name){ + var comp = name.split("/"), res = ""; + for(var i = 0; i < comp.length - 1; i++){ + res += comp[i] + "/"; + if(this.content[res]) continue; + this.content[res] = Symbol("directory"); + } + }; + MlFakeDevice.prototype.slash = + function(name){return /\/$/.test(name) ? name : name + "/";}; + MlFakeDevice.prototype.lookup = + function(name){ + if(! this.content[name] && this.lookupFun){ + var + res = + this.lookupFun + (caml_string_of_jsbytes(this.root), caml_string_of_jsbytes(name)); + if(res !== 0){ + this.create_dir_if_needed(name); + this.content[name] = new MlFakeFile(caml_bytes_of_string(res[1])); + } + } + }; + MlFakeDevice.prototype.exists = + function(name){ + if(name == "") return 1; + var name_slash = this.slash(name); + if(this.content[name_slash]) return 1; + this.lookup(name); + return this.content[name] ? 1 : 0; + }; + MlFakeDevice.prototype.isFile = + function(name){return this.exists(name) && ! this.is_dir(name) ? 1 : 0;}; + MlFakeDevice.prototype.mkdir = + function(name, mode, raise_unix){ + var unix_error = raise_unix && caml_named_value("Unix.Unix_error"); + if(this.exists(name)) + if(unix_error) + caml_raise_with_args + (unix_error, make_unix_err_args("EEXIST", "mkdir", this.nm(name))); + else + caml_raise_sys_error(name + ": File exists"); + var parent = /^(.*)\/[^/]+/.exec(name); + parent = parent && parent[1] || ""; + if(! this.exists(parent)) + if(unix_error) + caml_raise_with_args + (unix_error, make_unix_err_args("ENOENT", "mkdir", this.nm(parent))); + else + caml_raise_sys_error(parent + ": No such file or directory"); + if(! this.is_dir(parent)) + if(unix_error) + caml_raise_with_args + (unix_error, make_unix_err_args("ENOTDIR", "mkdir", this.nm(parent))); + else + caml_raise_sys_error(parent + ": Not a directory"); + this.create_dir_if_needed(this.slash(name)); + }; + MlFakeDevice.prototype.rmdir = + function(name, raise_unix){ + var + unix_error = raise_unix && caml_named_value("Unix.Unix_error"), + name_slash = name == "" ? "" : this.slash(name), + r = new RegExp("^" + name_slash + "([^/]+)"); + if(! this.exists(name)) + if(unix_error) + caml_raise_with_args + (unix_error, make_unix_err_args("ENOENT", "rmdir", this.nm(name))); else - if(s2.t == 2 && i2 == s2.c.length) - {s2.c - += - s1.t == 4 - ?caml_subarray_to_jsbytes(s1.c,i1,len) - :i1 == 0 && s1.c.length == len?s1.c:s1.c.substr(i1,len); - s2.t = s2.c.length == s2.l?0:2} - else - {if(s2.t != 4)caml_convert_bytes_to_array(s2); - var c1=s1.c,c2=s2.c; - if(s1.t == 4) - if(i2 <= i1) - for(var i=0;i < len;i++)c2[i2 + i] = c1[i1 + i]; - else - for(var i=len - 1;i >= 0;i--)c2[i2 + i] = c1[i1 + i]; - else - {var l=Math.min(len,c1.length - i1); - for(var i=0;i < l;i++)c2[i2 + i] = c1.charCodeAt(i1 + i); - for(;i < len;i++)c2[i2 + i] = 0}} - return 0} - function MlFile(){} - function MlFakeFile(content){this.data = content} - MlFakeFile.prototype = new MlFile(); - MlFakeFile.prototype.constructor = MlFakeFile; - MlFakeFile.prototype.truncate - = - function(len) - {var old=this.data; - this.data = caml_create_bytes(len | 0); - caml_blit_bytes(old,0,this.data,0,len)}; - MlFakeFile.prototype.length - = - function(){return caml_ml_bytes_length(this.data)}; - MlFakeFile.prototype.write - = - function(offset,buf,pos,len) - {var clen=this.length(); - if(offset + len >= clen) - {var new_str=caml_create_bytes(offset + len),old_data=this.data; - this.data = new_str; - caml_blit_bytes(old_data,0,this.data,0,clen)} - caml_blit_bytes(caml_bytes_of_array(buf),pos,this.data,offset,len); - return 0}; - MlFakeFile.prototype.read - = - function(offset,buf,pos,len) - {var clen=this.length(); - if(offset + len >= clen)len = clen - offset; - if(len) - {var data=caml_create_bytes(len | 0); - caml_blit_bytes(this.data,offset,data,0,len); - buf.set(caml_uint8_array_of_bytes(data),pos)} - return len}; - function MlFakeFd(name,file,flags) - {this.file = file;this.name = name;this.flags = flags} - MlFakeFd.prototype.err_closed - = - function() - {caml_raise_sys_error(this.name + ": file descriptor already closed")}; - MlFakeFd.prototype.length - = - function(){if(this.file)return this.file.length();this.err_closed()}; - MlFakeFd.prototype.write - = - function(offset,buf,pos,len) - {if(this.file)return this.file.write(offset,buf,pos,len); - this.err_closed()}; - MlFakeFd.prototype.read - = - function(offset,buf,pos,len) - {if(this.file)return this.file.read(offset,buf,pos,len); - this.err_closed()}; - MlFakeFd.prototype.close = function(){this.file = undefined}; - function MlFakeDevice(root,f) - {this.content = {};this.root = root;this.lookupFun = f} - MlFakeDevice.prototype.nm = function(name){return this.root + name}; - MlFakeDevice.prototype.create_dir_if_needed - = - function(name) - {var comp=name.split("/"),res=""; - for(var i=0;i < comp.length - 1;i++) - {res += comp[i] + "/"; - if(this.content[res])continue; - this.content[res] = Symbol("directory")}}; - MlFakeDevice.prototype.slash - = - function(name){return /\/$/.test(name)?name:name + "/"}; - MlFakeDevice.prototype.lookup - = - function(name) - {if(! this.content[name] && this.lookupFun) - {var - res= - this.lookupFun - (caml_string_of_jsbytes(this.root),caml_string_of_jsbytes(name)); - if(res !== 0) - {this.create_dir_if_needed(name); - this.content[name] = new MlFakeFile(caml_bytes_of_string(res[1]))}}}; - MlFakeDevice.prototype.exists - = - function(name) - {if(name == "")return 1; - var name_slash=this.slash(name); - if(this.content[name_slash])return 1; - this.lookup(name); - return this.content[name]?1:0}; - MlFakeDevice.prototype.mkdir - = - function(name,mode,raise_unix) - {var unix_error=raise_unix && caml_named_value("Unix.Unix_error"); - if(this.exists(name)) - if(unix_error) - caml_raise_with_args - (unix_error,make_unix_err_args("EEXIST","mkdir",this.nm(name))); - else - caml_raise_sys_error(name + ": File exists"); - var parent=/^(.*)\/[^/]+/.exec(name); - parent = parent && parent[1] || ""; - if(! this.exists(parent)) - if(unix_error) - caml_raise_with_args - (unix_error,make_unix_err_args("ENOENT","mkdir",this.nm(parent))); - else - caml_raise_sys_error(parent + ": No such file or directory"); - if(! this.is_dir(parent)) - if(unix_error) - caml_raise_with_args - (unix_error,make_unix_err_args("ENOTDIR","mkdir",this.nm(parent))); - else - caml_raise_sys_error(parent + ": Not a directory"); - this.create_dir_if_needed(this.slash(name))}; - MlFakeDevice.prototype.rmdir - = - function(name,raise_unix) - {var - unix_error=raise_unix && caml_named_value("Unix.Unix_error"), - name_slash=name == ""?"":this.slash(name), - r=new RegExp("^" + name_slash + "([^/]+)"); - if(! this.exists(name)) - if(unix_error) - caml_raise_with_args - (unix_error,make_unix_err_args("ENOENT","rmdir",this.nm(name))); - else - caml_raise_sys_error(name + ": No such file or directory"); - if(! this.is_dir(name)) - if(unix_error) - caml_raise_with_args - (unix_error,make_unix_err_args("ENOTDIR","rmdir",this.nm(name))); - else - caml_raise_sys_error(name + ": Not a directory"); - for(var n in this.content) - if(n.match(r)) - if(unix_error) - caml_raise_with_args - (unix_error,make_unix_err_args("ENOTEMPTY","rmdir",this.nm(name))); - else - caml_raise_sys_error(this.nm(name) + ": Directory not empty"); - delete this.content[name_slash]}; - MlFakeDevice.prototype.readdir - = - function(name) - {var name_slash=name == ""?"":this.slash(name); - if(! this.exists(name)) caml_raise_sys_error(name + ": No such file or directory"); - if(! this.is_dir(name))caml_raise_sys_error(name + ": Not a directory"); - var r=new RegExp("^" + name_slash + "([^/]+)"),seen={},a=[]; - for(var n in this.content) - {var m=n.match(r); - if(m && ! seen[m[1]]){seen[m[1]] = true;a.push(m[1])}} - return a}; - MlFakeDevice.prototype.opendir - = - function(name,raise_unix) - {var - unix_error=raise_unix && caml_named_value("Unix.Unix_error"), - a=this.readdir(name), - c=false, - i=0; - return {readSync: - function() - {if(c) - if(unix_error) - caml_raise_with_args - (unix_error, - make_unix_err_args("EBADF","closedir",this.nm(name))); - else - caml_raise_sys_error(name + ": closedir failed"); - if(i == a.length)return null; - var entry=a[i]; - i++; - return {name:entry}}, - closeSync: - function() - {if(c) - if(unix_error) - caml_raise_with_args - (unix_error, - make_unix_err_args("EBADF","closedir",this.nm(name))); - else - caml_raise_sys_error(name + ": closedir failed"); - c = true; - a = []}}}; - MlFakeDevice.prototype.is_dir - = - function(name) - {if(name == "")return true; - var name_slash=this.slash(name); - return this.content[name_slash]?1:0}; - MlFakeDevice.prototype.unlink - = - function(name) - {var ok=this.content[name]?true:false; - delete this.content[name]; - return ok}; - MlFakeDevice.prototype.open - = - function(name,f) - {var file; - if(f.rdonly && f.wronly) - caml_raise_sys_error - (this.nm(name) - + - " : flags Open_rdonly and Open_wronly are not compatible"); - if(f.text && f.binary) - caml_raise_sys_error - (this.nm(name) - + - " : flags Open_text and Open_binary are not compatible"); - this.lookup(name); - if(this.content[name]) - {if(this.is_dir(name)) - caml_raise_sys_error(this.nm(name) + " : is a directory"); - if(f.create && f.excl) - caml_raise_sys_error(this.nm(name) + " : file already exists"); - file = this.content[name]; - if(f.truncate)file.truncate()} + if(! this.is_dir(name)) + if(unix_error) + caml_raise_with_args + (unix_error, make_unix_err_args("ENOTDIR", "rmdir", this.nm(name))); else - if(f.create) - {this.create_dir_if_needed(name); - this.content[name] = new MlFakeFile(caml_create_bytes(0)); - file = this.content[name]} + caml_raise_sys_error(name + ": Not a directory"); + for(var n in this.content) + if(n.match(r)) + if(unix_error) + caml_raise_with_args + (unix_error, make_unix_err_args("ENOTEMPTY", "rmdir", this.nm(name))); else - caml_raise_no_such_file(this.nm(name)); - return new MlFakeFd(this.nm(name),file,f)}; - MlFakeDevice.prototype.open - = - function(name,f) - {var file; - if(f.rdonly && f.wronly) - caml_raise_sys_error - (this.nm(name) - + - " : flags Open_rdonly and Open_wronly are not compatible"); - if(f.text && f.binary) - caml_raise_sys_error - (this.nm(name) - + - " : flags Open_text and Open_binary are not compatible"); - this.lookup(name); - if(this.content[name]) - {if(this.is_dir(name)) - caml_raise_sys_error(this.nm(name) + " : is a directory"); - if(f.create && f.excl) - caml_raise_sys_error(this.nm(name) + " : file already exists"); - file = this.content[name]; - if(f.truncate)file.truncate()} - else - if(f.create) - {this.create_dir_if_needed(name); - this.content[name] = new MlFakeFile(caml_create_bytes(0)); - file = this.content[name]} - else - caml_raise_no_such_file(this.nm(name)); - return new MlFakeFd(this.nm(name),file,f)}; - MlFakeDevice.prototype.register - = - function(name,content) - {var file; - if(this.content[name]) - caml_raise_sys_error(this.nm(name) + " : file already exists"); - if(caml_is_ml_bytes(content))file = new MlFakeFile(content); - if(caml_is_ml_string(content)) - file = new MlFakeFile(caml_bytes_of_string(content)); - else - if(content instanceof Array) - file = new MlFakeFile(caml_bytes_of_array(content)); - else - if(typeof content === "string") - file = new MlFakeFile(caml_bytes_of_jsbytes(content)); - else - if(content.toString) - {var - bytes= - caml_bytes_of_string(caml_string_of_jsstring(content.toString())); - file = new MlFakeFile(bytes)} - if(file) - {this.create_dir_if_needed(name);this.content[name] = file} - else - caml_raise_sys_error - (this.nm(name) + " : registering file with invalid content type")}; - MlFakeDevice.prototype.constructor = MlFakeDevice; - function caml_ml_string_length(s){return caml_ml_bytes_length(s)} - function caml_bytes_unsafe_get(s,i) - {switch(s.t & 6) - {default:if(i >= s.c.length)return 0;case 0:return s.c.charCodeAt(i); - case 4:return s.c[i] - }} - function caml_string_unsafe_get(s,i){return caml_bytes_unsafe_get(s,i)} - function caml_uint8_array_of_string(s) - {var l=caml_ml_string_length(s),a=new Array(l),i=0; - for(;i < l;i++)a[i] = caml_string_unsafe_get(s,i); - return a} - function caml_bytes_bound_error() - {caml_invalid_argument("index out of bounds")} - function caml_bytes_unsafe_set(s,i,c) - {c &= 0xff; - if(s.t != 4) - {if(i == s.c.length) - {s.c += String.fromCharCode(c);if(i + 1 == s.l)s.t = 0;return 0} - caml_convert_bytes_to_array(s)} - s.c[i] = c; - return 0} - function caml_bytes_set(s,i,c) - {if(i >>> 0 >= s.l)caml_bytes_bound_error(); - return caml_bytes_unsafe_set(s,i,c)} - function MlNodeFd(fd,flags) - {this.fs = require("fs");this.fd = fd;this.flags = flags} - MlNodeFd.prototype = new MlFile(); - MlNodeFd.prototype.constructor = MlNodeFd; - MlNodeFd.prototype.truncate - = - function(len) - {try - {this.fs.ftruncateSync(this.fd,len | 0)} - catch(err){caml_raise_sys_error(err.toString())}}; - MlNodeFd.prototype.length - = - function() - {try - {return this.fs.fstatSync(this.fd).size} - catch(err){caml_raise_sys_error(err.toString())}}; - MlNodeFd.prototype.write - = - function(offset,buf,buf_offset,len) - {try - {if(this.flags.isCharacterDevice) - this.fs.writeSync(this.fd,buf,buf_offset,len); - else - this.fs.writeSync(this.fd,buf,buf_offset,len,offset)} - catch(err){caml_raise_sys_error(err.toString())} - return 0}; - MlNodeFd.prototype.read - = - function(offset,a,buf_offset,len) - {try - {if(this.flags.isCharacterDevice) - var read=this.fs.readSync(this.fd,a,buf_offset,len); - else - var read=this.fs.readSync(this.fd,a,buf_offset,len,offset); - return read} - catch(err){caml_raise_sys_error(err.toString())}}; - MlNodeFd.prototype.close - = - function() - {try - {this.fs.closeSync(this.fd);return 0} - catch(err){caml_raise_sys_error(err.toString())}}; - function MlNodeDevice(root){this.fs = require("fs");this.root = root} - MlNodeDevice.prototype.nm = function(name){return this.root + name}; - MlNodeDevice.prototype.exists - = - function(name) - {try {return this.fs.existsSync(this.nm(name))?1:0}catch(err){return 0}}; - MlNodeDevice.prototype.mkdir - = - function(name,mode,raise_unix) - {try - {this.fs.mkdirSync(this.nm(name),{mode:mode});return 0} - catch(err){this.raise_nodejs_error(err,raise_unix)}}; - MlNodeDevice.prototype.rmdir - = - function(name,raise_unix) - {try - {this.fs.rmdirSync(this.nm(name));return 0} - catch(err){this.raise_nodejs_error(err,raise_unix)}}; - MlNodeDevice.prototype.readdir - = - function(name,raise_unix) - {try - {return this.fs.readdirSync(this.nm(name))} - catch(err){this.raise_nodejs_error(err,raise_unix)}}; - MlNodeDevice.prototype.is_dir - = - function(name) - {try - {return this.fs.statSync(this.nm(name)).isDirectory()?1:0} - catch(err){caml_raise_sys_error(err.toString())}}; - MlNodeDevice.prototype.unlink - = - function(name,raise_unix) - {try - {var b=this.fs.existsSync(this.nm(name))?1:0; - this.fs.unlinkSync(this.nm(name)); - return b} - catch(err){this.raise_nodejs_error(err,raise_unix)}}; - MlNodeDevice.prototype.open - = - function(name,f,raise_unix) - {var consts=require("constants"),res=0; - for(var key in f) - switch(key) - {case "rdonly":res |= consts.O_RDONLY;break; - case "wronly":res |= consts.O_WRONLY;break; - case "append":res |= consts.O_WRONLY | consts.O_APPEND;break; - case "create":res |= consts.O_CREAT;break; - case "truncate":res |= consts.O_TRUNC;break; - case "excl":res |= consts.O_EXCL;break; - case "binary":res |= consts.O_BINARY;break; - case "text":res |= consts.O_TEXT;break; - case "nonblock":res |= consts.O_NONBLOCK;break - } - try - {var - fd=this.fs.openSync(this.nm(name),res), - isCharacterDevice= - this.fs.lstatSync(this.nm(name)).isCharacterDevice(); - f.isCharacterDevice = isCharacterDevice; - return new MlNodeFd(fd,f)} - catch(err){this.raise_nodejs_error(err,raise_unix)}}; - MlNodeDevice.prototype.rename - = - function(o,n,raise_unix) - {try - {this.fs.renameSync(this.nm(o),this.nm(n))} - catch(err){this.raise_nodejs_error(err,raise_unix)}}; - MlNodeDevice.prototype.stat - = - function(name,raise_unix) - {try - {var js_stats=this.fs.statSync(this.nm(name)); - return this.stats_from_js(js_stats)} - catch(err){this.raise_nodejs_error(err,raise_unix)}}; - MlNodeDevice.prototype.lstat - = - function(name,raise_unix) - {try - {var js_stats=this.fs.lstatSync(this.nm(name)); - return this.stats_from_js(js_stats)} - catch(err){this.raise_nodejs_error(err,raise_unix)}}; - MlNodeDevice.prototype.symlink - = - function(to_dir,target,path,raise_unix) - {try - {this.fs.symlinkSync(this.nm(target),this.nm(path),to_dir?"dir":"file"); - return 0} - catch(err){this.raise_nodejs_error(err,raise_unix)}}; - MlNodeDevice.prototype.readlink - = - function(name,raise_unix) - {try - {var link=this.fs.readlinkSync(this.nm(name),"utf8"); - return caml_string_of_jsstring(link)} - catch(err){this.raise_nodejs_error(err,raise_unix)}}; - MlNodeDevice.prototype.opendir - = - function(name,raise_unix) - {try - {return this.fs.opendirSync(this.nm(name))} - catch(err){this.raise_nodejs_error(err,raise_unix)}}; - MlNodeDevice.prototype.raise_nodejs_error - = - function(err,raise_unix) - {var unix_error=caml_named_value("Unix.Unix_error"); - if(raise_unix && unix_error) - {var args=make_unix_err_args(err.code,err.syscall,err.path,err.errno); - caml_raise_with_args(unix_error,args)} - else - caml_raise_sys_error(err.toString())}; - MlNodeDevice.prototype.stats_from_js - = - function(js_stats) - {var file_kind; - if(js_stats.isFile()) - file_kind = 0; - else - if(js_stats.isDirectory()) - file_kind = 1; - else - if(js_stats.isCharacterDevice()) - file_kind = 2; - else - if(js_stats.isBlockDevice()) - file_kind = 3; - else - if(js_stats.isSymbolicLink()) - file_kind = 4; - else - if(js_stats.isFIFO()) - file_kind = 5; - else - if(js_stats.isSocket())file_kind = 6; - return [0, - js_stats.dev, - js_stats.ino, - file_kind, - js_stats.mode, - js_stats.nlink, - js_stats.uid, - js_stats.gid, - js_stats.rdev, - js_stats.size, - js_stats.atimeMs, - js_stats.mtimeMs, - js_stats.ctimeMs]}; - MlNodeDevice.prototype.constructor = MlNodeDevice; - function caml_get_root(path) - {var x=path_is_absolute(path);if(! x)return;return x[0] + "/"} - function caml_failwith(msg) - {if(! caml_global_data.Failure) - caml_global_data.Failure = [248,caml_string_of_jsbytes("Failure"),- 3]; - caml_raise_with_string(caml_global_data.Failure,msg)} - var - caml_root= - caml_get_root(caml_current_dir) - || - caml_failwith("unable to compute caml_root"), - jsoo_mount_point=[]; - if(fs_node_supported()) - jsoo_mount_point.push - ({path:caml_root,device:new MlNodeDevice(caml_root)}); - else - jsoo_mount_point.push - ({path:caml_root,device:new MlFakeDevice(caml_root)}); - jsoo_mount_point.push - ({path:"/static/",device:new MlFakeDevice("/static/")}); - function resolve_fs_device(name) - {var - path=caml_make_path(name), - name=path.join("/"), - name_slash=caml_trailing_slash(name), - res; - for(var i=0;i < jsoo_mount_point.length;i++) - {var m=jsoo_mount_point[i]; - if - (name_slash.search(m.path) - == - 0 - && - (! res || res.path.length < m.path.length)) - res - = - {path:m.path, - device:m.device, - rest:name.substring(m.path.length,name.length)}} - if(! res && fs_node_supported()) - {var root=caml_get_root(name); - if(root && root.match(/^[a-zA-Z]:\/$/)) - {var m={path:root,device:new MlNodeDevice(root)}; - jsoo_mount_point.push(m); - res - = - {path:m.path, - device:m.device, - rest:name.substring(m.path.length,name.length)}}} - if(res)return res; - caml_raise_sys_error("no device found for " + name_slash)} - function caml_sys_is_directory(name) - {var root=resolve_fs_device(name),a=root.device.is_dir(root.rest); - return a?1:0} - function caml_raise_not_found() - {caml_raise_constant(caml_global_data.Not_found)} - function caml_sys_getenv(name) - {var process=globalThis.process,n=caml_jsstring_of_string(name); - if(process && process.env && process.env[n] != undefined) - return caml_string_of_jsstring(process.env[n]); - if(globalThis.jsoo_static_env && globalThis.jsoo_static_env[n]) - return caml_string_of_jsstring(globalThis.jsoo_static_env[n]); - caml_raise_not_found()} - function shift_right_nat(nat1,ofs1,len1,nat2,ofs2,nbits) - {if(nbits == 0){nat2.data[ofs2] = 0;return 0} - var wrap=0; - for(var i=len1 - 1;i >= 0;i--) - {var a=nat1.data[ofs1 + i] >>> 0; - nat1.data[ofs1 + i] = a >>> nbits | wrap; - wrap = a << 32 - nbits} - nat2.data[ofs2] = wrap; - return 0} - var caml_gr_state; - function caml_gr_state_get() - {if(caml_gr_state)return caml_gr_state; - throw [0, - caml_named_value("Graphics.Graphic_failure"), - caml_string_of_jsbytes("Not initialized")]} - function caml_gr_point_color(x,y) - {var - s=caml_gr_state_get(), - im=s.context.getImageData(x,s.height - y,1,1), - d=im.data; - return (d[0] << 16) + (d[1] << 8) + d[2]} - var MlObjectTable; - if(typeof globalThis.WeakMap === "undefined") - MlObjectTable - = - function() - {function NaiveLookup(objs){this.objs = objs} - NaiveLookup.prototype.get - = - function(v) - {for(var i=0;i < this.objs.length;i++)if(this.objs[i] === v)return i}; - NaiveLookup.prototype.set = function(){}; - return function() - {this.objs = [];this.lookup = new NaiveLookup(this.objs)}} - (); - else - MlObjectTable - = - function(){this.objs = [];this.lookup = new (globalThis.WeakMap)()}; - MlObjectTable.prototype.store - = - function(v){this.lookup.set(v,this.objs.length);this.objs.push(v)}; - MlObjectTable.prototype.recall - = - function(v) - {var i=this.lookup.get(v); - return i === undefined?undefined:this.objs.length - i}; - function caml_sys_rename(o,n) - {var o_root=resolve_fs_device(o),n_root=resolve_fs_device(n); - if(o_root.device != n_root.device) - caml_failwith - ("caml_sys_rename: cannot move file between two filesystem"); - if(! o_root.device.rename) - caml_failwith("caml_sys_rename: no implemented"); - o_root.device.rename(o_root.rest,n_root.rest)} - function caml_log10_float(x){return Math.log10(x)} - var caml_runtime_warnings=0; - function caml_ml_enable_runtime_warnings(bool) - {caml_runtime_warnings = bool;return 0} - function caml_classify_float(x) - {if(isFinite(x)) - {if(Math.abs(x) >= 2.2250738585072014e-308)return 0; - if(x != 0)return 1; - return 2} - return isNaN(x)?4:3} - var caml_ml_channels=new Array(); - function caml_refill(chan) - {if(chan.refill != null) - {var str=chan.refill(),str_a=caml_uint8_array_of_string(str); - if(str_a.length == 0) - chan.refill = null; - else - {if(chan.buffer.length < chan.buffer_max + str_a.length) - {var b=new Uint8Array(chan.buffer_max + str_a.length); - b.set(chan.buffer); - chan.buffer = b} - chan.buffer.set(str_a,chan.buffer_max); - chan.offset += str_a.length; - chan.buffer_max += str_a.length}} - else - {var - nread= - chan.file.read - (chan.offset, - chan.buffer, - chan.buffer_max, - chan.buffer.length - chan.buffer_max); - chan.offset += nread; - chan.buffer_max += nread}} - function caml_array_bound_error() - {caml_invalid_argument("index out of bounds")} - function caml_ml_input_scan_line(chanid) - {var chan=caml_ml_channels[chanid],p=chan.buffer_curr; - do - if(p >= chan.buffer_max) - {if(chan.buffer_curr > 0) - {chan.buffer.set(chan.buffer.subarray(chan.buffer_curr),0); - p -= chan.buffer_curr; - chan.buffer_max -= chan.buffer_curr; - chan.buffer_curr = 0} - if(chan.buffer_max >= chan.buffer.length)return - chan.buffer_max; - var prev_max=chan.buffer_max; - caml_refill(chan); - if(prev_max == chan.buffer_max)return - chan.buffer_max} - while - (chan.buffer[p++] != 10); - return p - chan.buffer_curr} - function caml_gc_minor(unit) - {if(typeof globalThis.gc == "function")globalThis.gc(true);return 0} - var - bigInt= - function(undefined) - {"use strict"; - var - BASE=1e7, - LOG_BASE=7, - MAX_INT=9007199254740992, - MAX_INT_ARR=smallToArray(MAX_INT), - DEFAULT_ALPHABET="0123456789abcdefghijklmnopqrstuvwxyz", - BigInt=joo_global_object.BigInt, - supportsNativeBigInt=typeof BigInt === "function"; - function Integer(v,radix,alphabet,caseSensitive) - {if(typeof v === "undefined")return Integer[0]; - if(typeof radix !== "undefined") - return + radix === 10 && ! alphabet - ?parseValue(v) - :parseBase(v,radix,alphabet,caseSensitive); - return parseValue(v)} - function BigInteger(value,sign) - {this.value = value; - this.sign = sign; - this.isSmall = false; - this.caml_custom = "_z"} - BigInteger.prototype = Object.create(Integer.prototype); - function SmallInteger(value) - {this.value = value; - this.sign = value < 0; - this.isSmall = true; - this.caml_custom = "_z"} - SmallInteger.prototype = Object.create(Integer.prototype); - function NativeBigInt(value) - {this.value = value;this.caml_custom = "_z"} - NativeBigInt.prototype = Object.create(Integer.prototype); - function isPrecise(n){return - MAX_INT < n && n < MAX_INT} - function smallToArray(n) - {if(n < 1e7)return [n]; - if(n < 1e14)return [n % 1e7,Math.floor(n / 1e7)]; - return [n % 1e7,Math.floor(n / 1e7) % 1e7,Math.floor(n / 1e14)]} - function arrayToSmall(arr) - {trim(arr); - var length=arr.length; - if(length < 4 && compareAbs(arr,MAX_INT_ARR) < 0) - switch(length) - {case 0:return 0; - case 1:return arr[0]; - case 2:return arr[0] + arr[1] * BASE; - default:return arr[0] + (arr[1] + arr[2] * BASE) * BASE} - return arr} - function trim(v){var i=v.length;while(v[--i] === 0);v.length = i + 1} - function createArray(length) - {var x=new Array(length),i=- 1;while(++i < length)x[i] = 0;return x} - function truncate(n) - {if(n > 0)return Math.floor(n);return Math.ceil(n)} - function add(a,b) - {var - l_a=a.length, - l_b=b.length, - r=new Array(l_a), - carry=0, - base=BASE, - sum, - i; - for(i = 0;i < l_b;i++) - {sum = a[i] + b[i] + carry; - carry = sum >= base?1:0; - r[i] = sum - carry * base} - while(i < l_a) - {sum = a[i] + carry; - carry = sum === base?1:0; - r[i++] = sum - carry * base} - if(carry > 0)r.push(carry); - return r} - function addAny(a,b) - {if(a.length >= b.length)return add(a,b);return add(b,a)} - function addSmall(a,carry) - {var l=a.length,r=new Array(l),base=BASE,sum,i; - for(i = 0;i < l;i++) - {sum = a[i] - base + carry; - carry = Math.floor(sum / base); - r[i] = sum - carry * base; - carry += 1} - while(carry > 0) - {r[i++] = carry % base;carry = Math.floor(carry / base)} - return r} - BigInteger.prototype.add - = - function(v) - {var n=parseValue(v); - if(this.sign !== n.sign)return this.subtract(n.negate()); - var a=this.value,b=n.value; - if(n.isSmall) - return new BigInteger(addSmall(a,Math.abs(b)),this.sign); - return new BigInteger(addAny(a,b),this.sign)}; - BigInteger.prototype.plus = BigInteger.prototype.add; - SmallInteger.prototype.add - = - function(v) - {var n=parseValue(v),a=this.value; - if(a < 0 !== n.sign)return this.subtract(n.negate()); - var b=n.value; - if(n.isSmall) - {if(isPrecise(a + b))return new SmallInteger(a + b); - b = smallToArray(Math.abs(b))} - return new BigInteger(addSmall(b,Math.abs(a)),a < 0)}; - SmallInteger.prototype.plus = SmallInteger.prototype.add; - NativeBigInt.prototype.add - = - function(v) - {return new NativeBigInt(this.value + parseValue(v).value)}; - NativeBigInt.prototype.plus = NativeBigInt.prototype.add; - function subtract(a,b) - {var - a_l=a.length, - b_l=b.length, - r=new Array(a_l), - borrow=0, - base=BASE, - i, - difference; - for(i = 0;i < b_l;i++) - {difference = a[i] - borrow - b[i]; - if(difference < 0){difference += base;borrow = 1}else borrow = 0; - r[i] = difference} - for(i = b_l;i < a_l;i++) - {difference = a[i] - borrow; - if(difference < 0) - difference += base; - else - {r[i++] = difference;break} - r[i] = difference} - for(;i < a_l;i++)r[i] = a[i]; - trim(r); - return r} - function subtractAny(a,b,sign) - {var value; - if(compareAbs(a,b) >= 0) - value = subtract(a,b); - else - {value = subtract(b,a);sign = ! sign} - value = arrayToSmall(value); - if(typeof value === "number") - {if(sign)value = - value;return new SmallInteger(value)} - return new BigInteger(value,sign)} - function subtractSmall(a,b,sign) - {var l=a.length,r=new Array(l),carry=- b,base=BASE,i,difference; - for(i = 0;i < l;i++) - {difference = a[i] + carry; - carry = Math.floor(difference / base); - difference %= base; - r[i] = difference < 0?difference + base:difference} - r = arrayToSmall(r); - if(typeof r === "number") - {if(sign)r = - r;return new SmallInteger(r)} - return new BigInteger(r,sign)} - BigInteger.prototype.subtract - = - function(v) - {var n=parseValue(v); - if(this.sign !== n.sign)return this.add(n.negate()); - var a=this.value,b=n.value; - if(n.isSmall)return subtractSmall(a,Math.abs(b),this.sign); - return subtractAny(a,b,this.sign)}; - BigInteger.prototype.minus = BigInteger.prototype.subtract; - SmallInteger.prototype.subtract - = - function(v) - {var n=parseValue(v),a=this.value; - if(a < 0 !== n.sign)return this.add(n.negate()); - var b=n.value; - if(n.isSmall)return new SmallInteger(a - b); - return subtractSmall(b,Math.abs(a),a >= 0)}; - SmallInteger.prototype.minus = SmallInteger.prototype.subtract; - NativeBigInt.prototype.subtract - = - function(v) - {return new NativeBigInt(this.value - parseValue(v).value)}; - NativeBigInt.prototype.minus = NativeBigInt.prototype.subtract; - BigInteger.prototype.negate - = - function(){return new BigInteger(this.value,! this.sign)}; - SmallInteger.prototype.negate - = - function() - {var sign=this.sign,small=new SmallInteger(- this.value); - small.sign = ! sign; - return small}; - NativeBigInt.prototype.negate - = - function(){return new NativeBigInt(- this.value)}; - BigInteger.prototype.abs - = - function(){return new BigInteger(this.value,false)}; - SmallInteger.prototype.abs - = - function(){return new SmallInteger(Math.abs(this.value))}; - NativeBigInt.prototype.abs - = - function() - {return new NativeBigInt(this.value >= 0?this.value:- this.value)}; - function multiplyLong(a,b) - {var - a_l=a.length, - b_l=b.length, - l=a_l + b_l, - r=createArray(l), - base=BASE, - product, - carry, - i, - a_i, - b_j; - for(i = 0;i < a_l;++i) - {a_i = a[i]; - for(var j=0;j < b_l;++j) - {b_j = b[j]; - product = a_i * b_j + r[i + j]; - carry = Math.floor(product / base); - r[i + j] = product - carry * base; - r[i + j + 1] += carry}} - trim(r); - return r} - function multiplySmall(a,b) - {var l=a.length,r=new Array(l),base=BASE,carry=0,product,i; - for(i = 0;i < l;i++) - {product = a[i] * b + carry; - carry = Math.floor(product / base); - r[i] = product - carry * base} - while(carry > 0) - {r[i++] = carry % base;carry = Math.floor(carry / base)} - return r} - function shiftLeft(x,n) - {var r=[];while(n-- > 0)r.push(0);return r.concat(x)} - function multiplyKaratsuba(x,y) - {var n=Math.max(x.length,y.length); - if(n <= 30)return multiplyLong(x,y); - n = Math.ceil(n / 2); - var - b=x.slice(n), - a=x.slice(0,n), - d=y.slice(n), - c=y.slice(0,n), - ac=multiplyKaratsuba(a,c), - bd=multiplyKaratsuba(b,d), - abcd=multiplyKaratsuba(addAny(a,b),addAny(c,d)), - product= - addAny - (addAny(ac,shiftLeft(subtract(subtract(abcd,ac),bd),n)), - shiftLeft(bd,2 * n)); - trim(product); - return product} - function useKaratsuba(l1,l2) - {return - (0.012 * l1) - 0.012 * l2 + 0.000015 * l1 * l2 > 0} - BigInteger.prototype.multiply - = - function(v) - {var - n=parseValue(v), - a=this.value, - b=n.value, - sign=this.sign !== n.sign, - abs; - if(n.isSmall) - {if(b === 0)return Integer[0]; - if(b === 1)return this; - if(b === - 1)return this.negate(); - abs = Math.abs(b); - if(abs < BASE)return new BigInteger(multiplySmall(a,abs),sign); - b = smallToArray(abs)} - if(useKaratsuba(a.length,b.length)) - return new BigInteger(multiplyKaratsuba(a,b),sign); - return new BigInteger(multiplyLong(a,b),sign)}; - BigInteger.prototype.times = BigInteger.prototype.multiply; - function multiplySmallAndArray(a,b,sign) - {if(a < BASE)return new BigInteger(multiplySmall(b,a),sign); - return new BigInteger(multiplyLong(b,smallToArray(a)),sign)} - SmallInteger.prototype._multiplyBySmall - = - function(a) - {if(isPrecise(a.value * this.value)) - return new SmallInteger(a.value * this.value); - return multiplySmallAndArray - (Math.abs(a.value), - smallToArray(Math.abs(this.value)), - this.sign !== a.sign)}; - BigInteger.prototype._multiplyBySmall - = - function(a) - {if(a.value === 0)return Integer[0]; - if(a.value === 1)return this; - if(a.value === - 1)return this.negate(); - return multiplySmallAndArray - (Math.abs(a.value),this.value,this.sign !== a.sign)}; - SmallInteger.prototype.multiply - = - function(v){return parseValue(v)._multiplyBySmall(this)}; - SmallInteger.prototype.times = SmallInteger.prototype.multiply; - NativeBigInt.prototype.multiply - = - function(v) - {return new NativeBigInt(this.value * parseValue(v).value)}; - NativeBigInt.prototype.times = NativeBigInt.prototype.multiply; - function square(a) - {var - l=a.length, - r=createArray(l + l), - base=BASE, - product, - carry, - i, - a_i, - a_j; - for(i = 0;i < l;i++) - {a_i = a[i]; - carry = 0 - a_i * a_i; - for(var j=i;j < l;j++) - {a_j = a[j]; - product = 2 * (a_i * a_j) + r[i + j] + carry; - carry = Math.floor(product / base); - r[i + j] = product - carry * base} - r[i + l] = carry} - trim(r); - return r} - BigInteger.prototype.square - = - function(){return new BigInteger(square(this.value),false)}; - SmallInteger.prototype.square - = - function() - {var value=this.value * this.value; - if(isPrecise(value))return new SmallInteger(value); - return new - BigInteger - (square(smallToArray(Math.abs(this.value))),false)}; - NativeBigInt.prototype.square - = - function(v){return new NativeBigInt(this.value * this.value)}; - function divMod1(a,b) - {var - a_l=a.length, - b_l=b.length, - base=BASE, - result=createArray(b.length), - divisorMostSignificantDigit=b[b_l - 1], - lambda=Math.ceil(base / (2 * divisorMostSignificantDigit)), - remainder=multiplySmall(a,lambda), - divisor=multiplySmall(b,lambda), - quotientDigit, - shift, - carry, - borrow, - i, - l, - q; - if(remainder.length <= a_l)remainder.push(0); - divisor.push(0); - divisorMostSignificantDigit = divisor[b_l - 1]; - for(shift = a_l - b_l;shift >= 0;shift--) - {quotientDigit = base - 1; - if(remainder[shift + b_l] !== divisorMostSignificantDigit) - quotientDigit - = - Math.floor - ((remainder[shift + b_l] * base + remainder[shift + b_l - 1]) - / - divisorMostSignificantDigit); - carry = 0; - borrow = 0; - l = divisor.length; - for(i = 0;i < l;i++) - {carry += quotientDigit * divisor[i]; - q = Math.floor(carry / base); - borrow += remainder[shift + i] - (carry - q * base); - carry = q; - if(borrow < 0) - {remainder[shift + i] = borrow + base;borrow = - 1} + caml_raise_sys_error(this.nm(name) + ": Directory not empty"); + delete this.content[name_slash]; + }; + MlFakeDevice.prototype.readdir = + function(name){ + var name_slash = name == "" ? "" : this.slash(name); + if(! this.exists(name)) + caml_raise_sys_error(name + ": No such file or directory"); + if(! this.is_dir(name)) caml_raise_sys_error(name + ": Not a directory"); + var r = new RegExp("^" + name_slash + "([^/]+)"), seen = {}, a = []; + for(var n in this.content){ + var m = n.match(r); + if(m && ! seen[m[1]]){seen[m[1]] = true; a.push(m[1]);} + } + return a; + }; + MlFakeDevice.prototype.opendir = + function(name, raise_unix){ + var + unix_error = raise_unix && caml_named_value("Unix.Unix_error"), + a = this.readdir(name), + c = false, + i = 0; + return {readSync: + function(){ + if(c) + if(unix_error) + caml_raise_with_args + (unix_error, + make_unix_err_args("EBADF", "closedir", this.nm(name))); else - {remainder[shift + i] = borrow;borrow = 0}} - while(borrow !== 0) - {quotientDigit -= 1; - carry = 0; - for(i = 0;i < l;i++) - {carry += remainder[shift + i] - base + divisor[i]; - if(carry < 0) - {remainder[shift + i] = carry + base;carry = 0} - else - {remainder[shift + i] = carry;carry = 1}} - borrow += carry} - result[shift] = quotientDigit} - remainder = divModSmall(remainder,lambda)[0]; - return [arrayToSmall(result),arrayToSmall(remainder)]} - function divMod2(a,b) - {var - a_l=a.length, - b_l=b.length, - result=[], - part=[], - base=BASE, - guess, - xlen, - highx, - highy, - check; - while(a_l) - {part.unshift(a[--a_l]); - trim(part); - if(compareAbs(part,b) < 0){result.push(0);continue} - xlen = part.length; - highx = part[xlen - 1] * base + part[xlen - 2]; - highy = b[b_l - 1] * base + b[b_l - 2]; - if(xlen > b_l)highx = (highx + 1) * base; - guess = Math.ceil(highx / highy); - do - {check = multiplySmall(b,guess); - if(compareAbs(check,part) <= 0)break; - guess--} - while - (guess); - result.push(guess); - part = subtract(part,check)} - result.reverse(); - return [arrayToSmall(result),arrayToSmall(part)]} - function divModSmall(value,lambda) - {var - length=value.length, - quotient=createArray(length), - base=BASE, - i, - q, - remainder, - divisor; - remainder = 0; - for(i = length - 1;i >= 0;--i) - {divisor = remainder * base + value[i]; - q = truncate(divisor / lambda); - remainder = divisor - q * lambda; - quotient[i] = q | 0} - return [quotient,remainder | 0]} - function divModAny(self,v) - {var value,n=parseValue(v); - if(supportsNativeBigInt) - return [new NativeBigInt(self.value / n.value), - new NativeBigInt(self.value % n.value)]; - var a=self.value,b=n.value,quotient; - if(b === 0)throw new Error("Cannot divide by zero"); - if(self.isSmall) - {if(n.isSmall) - return [new SmallInteger(truncate(a / b)), - new SmallInteger(a % b)]; - return [Integer[0],self]} - if(n.isSmall) - {if(b === 1)return [self,Integer[0]]; - if(b == - 1)return [self.negate(),Integer[0]]; - var abs=Math.abs(b); - if(abs < BASE) - {value = divModSmall(a,abs); - quotient = arrayToSmall(value[0]); - var remainder=value[1]; - if(self.sign)remainder = - remainder; - if(typeof quotient === "number") - {if(self.sign !== n.sign)quotient = - quotient; - return [new SmallInteger(quotient), - new SmallInteger(remainder)]} - return [new BigInteger(quotient,self.sign !== n.sign), - new SmallInteger(remainder)]} - b = smallToArray(abs)} - var comparison=compareAbs(a,b); - if(comparison === - 1)return [Integer[0],self]; - if(comparison === 0) - return [Integer[self.sign === n.sign?1:- 1],Integer[0]]; - if(a.length + b.length <= 200) - value = divMod1(a,b); - else - value = divMod2(a,b); - quotient = value[0]; - var qSign=self.sign !== n.sign,mod=value[1],mSign=self.sign; - if(typeof quotient === "number") - {if(qSign)quotient = - quotient; - quotient = new SmallInteger(quotient)} - else - quotient = new BigInteger(quotient,qSign); - if(typeof mod === "number") - {if(mSign)mod = - mod;mod = new SmallInteger(mod)} - else - mod = new BigInteger(mod,mSign); - return [quotient,mod]} - BigInteger.prototype.divmod - = - function(v) - {var result=divModAny(this,v); - return {quotient:result[0],remainder:result[1]}}; - NativeBigInt.prototype.divmod - = - SmallInteger.prototype.divmod - = - BigInteger.prototype.divmod; - BigInteger.prototype.divide - = - function(v){return divModAny(this,v)[0]}; - NativeBigInt.prototype.over - = - NativeBigInt.prototype.divide - = - function(v) - {return new NativeBigInt(this.value / parseValue(v).value)}; - SmallInteger.prototype.over - = - SmallInteger.prototype.divide - = - BigInteger.prototype.over - = - BigInteger.prototype.divide; - BigInteger.prototype.mod = function(v){return divModAny(this,v)[1]}; - NativeBigInt.prototype.mod - = - NativeBigInt.prototype.remainder - = - function(v) - {return new NativeBigInt(this.value % parseValue(v).value)}; - SmallInteger.prototype.remainder - = - SmallInteger.prototype.mod - = - BigInteger.prototype.remainder - = - BigInteger.prototype.mod; - BigInteger.prototype.pow - = - function(v) - {var n=parseValue(v),a=this.value,b=n.value,value,x,y; - if(b === 0)return Integer[1]; - if(a === 0)return Integer[0]; - if(a === 1)return Integer[1]; - if(a === - 1)return n.isEven()?Integer[1]:Integer[- 1]; - if(n.sign)return Integer[0]; - if(! n.isSmall) - throw new Error("The exponent " + n.toString() + " is too large."); - if(this.isSmall) - if(isPrecise(value = Math.pow(a,b))) - return new SmallInteger(truncate(value)); - x = this; - y = Integer[1]; - while(true) - {if(b & 1 === 1){y = y.times(x);--b} - if(b === 0)break; - b /= 2; - x = x.square()} - return y}; - SmallInteger.prototype.pow = BigInteger.prototype.pow; - NativeBigInt.prototype.pow - = - function(v) - {var - n=parseValue(v), - a=this.value, - b=n.value, - _0=BigInt(0), - _1=BigInt(1), - _2=BigInt(2); - if(b === _0)return Integer[1]; - if(a === _0)return Integer[0]; - if(a === _1)return Integer[1]; - if(a === BigInt(- 1))return n.isEven()?Integer[1]:Integer[- 1]; - if(n.isNegative())return new NativeBigInt(_0); - var x=this,y=Integer[1]; - while(true) - {if((b & _1) === _1){y = y.times(x);--b} - if(b === _0)break; - b /= _2; - x = x.square()} - return y}; - BigInteger.prototype.modPow - = - function(exp,mod) - {exp = parseValue(exp); - mod = parseValue(mod); - if(mod.isZero()) - throw new Error("Cannot take modPow with modulus 0"); - var r=Integer[1],base=this.mod(mod); - if(exp.isNegative()) - {exp = exp.multiply(Integer[- 1]);base = base.modInv(mod)} - while(exp.isPositive()) - {if(base.isZero())return Integer[0]; - if(exp.isOdd())r = r.multiply(base).mod(mod); - exp = exp.divide(2); - base = base.square().mod(mod)} - return r}; - NativeBigInt.prototype.modPow - = - SmallInteger.prototype.modPow - = - BigInteger.prototype.modPow; - function compareAbs(a,b) - {if(a.length !== b.length)return a.length > b.length?1:- 1; - for(var i=a.length - 1;i >= 0;i--) - if(a[i] !== b[i])return a[i] > b[i]?1:- 1; - return 0} - BigInteger.prototype.compareAbs - = - function(v) - {var n=parseValue(v),a=this.value,b=n.value; - if(n.isSmall)return 1; - return compareAbs(a,b)}; - SmallInteger.prototype.compareAbs - = - function(v) - {var n=parseValue(v),a=Math.abs(this.value),b=n.value; - if(n.isSmall){b = Math.abs(b);return a === b?0:a > b?1:- 1} - return - 1}; - NativeBigInt.prototype.compareAbs - = - function(v) - {var a=this.value,b=parseValue(v).value; - a = a >= 0?a:- a; - b = b >= 0?b:- b; - return a === b?0:a > b?1:- 1}; - BigInteger.prototype.compare - = - function(v) - {if(v === Infinity)return - 1; - if(v === - Infinity)return 1; - var n=parseValue(v),a=this.value,b=n.value; - if(this.sign !== n.sign)return n.sign?1:- 1; - if(n.isSmall)return this.sign?- 1:1; - return compareAbs(a,b) * (this.sign?- 1:1)}; - BigInteger.prototype.compareTo = BigInteger.prototype.compare; - SmallInteger.prototype.compare - = - function(v) - {if(v === Infinity)return - 1; - if(v === - Infinity)return 1; - var n=parseValue(v),a=this.value,b=n.value; - if(n.isSmall)return a == b?0:a > b?1:- 1; - if(a < 0 !== n.sign)return a < 0?- 1:1; - return a < 0?1:- 1}; - SmallInteger.prototype.compareTo = SmallInteger.prototype.compare; - NativeBigInt.prototype.compare - = - function(v) - {if(v === Infinity)return - 1; - if(v === - Infinity)return 1; - var a=this.value,b=parseValue(v).value; - return a === b?0:a > b?1:- 1}; - NativeBigInt.prototype.compareTo = NativeBigInt.prototype.compare; - BigInteger.prototype.equals - = - function(v){return this.compare(v) === 0}; - NativeBigInt.prototype.eq - = - NativeBigInt.prototype.equals - = - SmallInteger.prototype.eq - = - SmallInteger.prototype.equals - = - BigInteger.prototype.eq - = - BigInteger.prototype.equals; - BigInteger.prototype.notEquals - = - function(v){return this.compare(v) !== 0}; - NativeBigInt.prototype.neq - = - NativeBigInt.prototype.notEquals - = - SmallInteger.prototype.neq - = - SmallInteger.prototype.notEquals - = - BigInteger.prototype.neq - = - BigInteger.prototype.notEquals; - BigInteger.prototype.greater - = - function(v){return this.compare(v) > 0}; - NativeBigInt.prototype.gt - = - NativeBigInt.prototype.greater - = - SmallInteger.prototype.gt - = - SmallInteger.prototype.greater - = - BigInteger.prototype.gt - = - BigInteger.prototype.greater; - BigInteger.prototype.lesser - = - function(v){return this.compare(v) < 0}; - NativeBigInt.prototype.lt - = - NativeBigInt.prototype.lesser - = - SmallInteger.prototype.lt - = - SmallInteger.prototype.lesser - = - BigInteger.prototype.lt - = - BigInteger.prototype.lesser; - BigInteger.prototype.greaterOrEquals - = - function(v){return this.compare(v) >= 0}; - NativeBigInt.prototype.geq - = - NativeBigInt.prototype.greaterOrEquals - = - SmallInteger.prototype.geq - = - SmallInteger.prototype.greaterOrEquals - = - BigInteger.prototype.geq - = - BigInteger.prototype.greaterOrEquals; - BigInteger.prototype.lesserOrEquals - = - function(v){return this.compare(v) <= 0}; - NativeBigInt.prototype.leq - = - NativeBigInt.prototype.lesserOrEquals - = - SmallInteger.prototype.leq - = - SmallInteger.prototype.lesserOrEquals - = - BigInteger.prototype.leq - = - BigInteger.prototype.lesserOrEquals; - BigInteger.prototype.isEven - = - function(){return (this.value[0] & 1) === 0}; - SmallInteger.prototype.isEven - = - function(){return (this.value & 1) === 0}; - NativeBigInt.prototype.isEven - = - function(){return (this.value & BigInt(1)) === BigInt(0)}; - BigInteger.prototype.isOdd - = - function(){return (this.value[0] & 1) === 1}; - SmallInteger.prototype.isOdd - = - function(){return (this.value & 1) === 1}; - NativeBigInt.prototype.isOdd - = - function(){return (this.value & BigInt(1)) === BigInt(1)}; - BigInteger.prototype.isPositive = function(){return ! this.sign}; - SmallInteger.prototype.isPositive - = - function(){return this.value > 0}; - NativeBigInt.prototype.isPositive - = - SmallInteger.prototype.isPositive; - BigInteger.prototype.isNegative = function(){return this.sign}; - SmallInteger.prototype.isNegative - = - function(){return this.value < 0}; - NativeBigInt.prototype.isNegative - = - SmallInteger.prototype.isNegative; - BigInteger.prototype.isUnit = function(){return false}; - SmallInteger.prototype.isUnit - = - function(){return Math.abs(this.value) === 1}; - NativeBigInt.prototype.isUnit - = - function(){return this.abs().value === BigInt(1)}; - BigInteger.prototype.isZero = function(){return false}; - SmallInteger.prototype.isZero = function(){return this.value === 0}; - NativeBigInt.prototype.isZero - = - function(){return this.value === BigInt(0)}; - BigInteger.prototype.isDivisibleBy - = - function(v) - {var n=parseValue(v); - if(n.isZero())return false; - if(n.isUnit())return true; - if(n.compareAbs(2) === 0)return this.isEven(); - return this.mod(n).isZero()}; - NativeBigInt.prototype.isDivisibleBy - = - SmallInteger.prototype.isDivisibleBy - = - BigInteger.prototype.isDivisibleBy; - function isBasicPrime(v) - {var n=v.abs(); - if(n.isUnit())return false; - if(n.equals(2) || n.equals(3) || n.equals(5))return true; - if(n.isEven() || n.isDivisibleBy(3) || n.isDivisibleBy(5)) - return false; - if(n.lesser(49))return true} - function millerRabinTest(n,a) - {var nPrev=n.prev(),b=nPrev,r=0,d,t,i,x; - while(b.isEven())b = b.divide(2),r++; - next: - for(i = 0;i < a.length;i++) - {if(n.lesser(a[i]))continue; - x = bigInt(a[i]).modPow(b,n); - if(x.isUnit() || x.equals(nPrev))continue; - for(d = r - 1;d != 0;d--) - {x = x.square().mod(n); - if(x.isUnit())return false; - if(x.equals(nPrev))continue next} - return false} - return true} - BigInteger.prototype.isPrime - = - function(strict) - {var isPrime=isBasicPrime(this); - if(isPrime !== undefined)return isPrime; - var n=this.abs(),bits=n.bitLength(); - if(bits <= 64) - return millerRabinTest(n,[2,3,5,7,11,13,17,19,23,29,31,37]); - var - logN=Math.log(2) * bits.toJSNumber(), - t=Math.ceil(strict === true?2 * Math.pow(logN,2):logN); - for(var a=[],i=0;i < t;i++)a.push(bigInt(i + 2)); - return millerRabinTest(n,a)}; - NativeBigInt.prototype.isPrime - = - SmallInteger.prototype.isPrime - = - BigInteger.prototype.isPrime; - BigInteger.prototype.isProbablePrime - = - function(iterations) - {var isPrime=isBasicPrime(this); - if(isPrime !== undefined)return isPrime; - var n=this.abs(),t=iterations === undefined?5:iterations; - for(var a=[],i=0;i < t;i++) - a.push(bigInt.randBetween(2,n.minus(2))); - return millerRabinTest(n,a)}; - NativeBigInt.prototype.isProbablePrime - = - SmallInteger.prototype.isProbablePrime - = - BigInteger.prototype.isProbablePrime; - BigInteger.prototype.modInv - = - function(n) - {var - t=bigInt.zero, - newT=bigInt.one, - r=parseValue(n), - newR=this.abs(), - q, - lastT, - lastR; - while(! newR.isZero()) - {q = r.divide(newR); - lastT = t; - lastR = r; - t = newT; - r = newR; - newT = lastT.subtract(q.multiply(newT)); - newR = lastR.subtract(q.multiply(newR))} - if(! r.isUnit()) - throw new - Error - (this.toString() - + - " and " - + - n.toString() - + - " are not co-prime"); - if(t.compare(0) === - 1)t = t.add(n); - if(this.isNegative())return t.negate(); - return t}; - NativeBigInt.prototype.modInv - = - SmallInteger.prototype.modInv - = - BigInteger.prototype.modInv; - BigInteger.prototype.next - = - function() - {var value=this.value; - if(this.sign)return subtractSmall(value,1,this.sign); - return new BigInteger(addSmall(value,1),this.sign)}; - SmallInteger.prototype.next - = - function() - {var value=this.value; - if(value + 1 < MAX_INT)return new SmallInteger(value + 1); - return new BigInteger(MAX_INT_ARR,false)}; - NativeBigInt.prototype.next - = - function(){return new NativeBigInt(this.value + BigInt(1))}; - BigInteger.prototype.prev - = - function() - {var value=this.value; - if(this.sign)return new BigInteger(addSmall(value,1),true); - return subtractSmall(value,1,this.sign)}; - SmallInteger.prototype.prev - = - function() - {var value=this.value; - if(value - 1 > - MAX_INT)return new SmallInteger(value - 1); - return new BigInteger(MAX_INT_ARR,true)}; - NativeBigInt.prototype.prev - = - function(){return new NativeBigInt(this.value - BigInt(1))}; - var powersOfTwo=[1]; - while(2 * powersOfTwo[powersOfTwo.length - 1] <= BASE) - powersOfTwo.push(2 * powersOfTwo[powersOfTwo.length - 1]); - var - powers2Length=powersOfTwo.length, - highestPower2=powersOfTwo[powers2Length - 1]; - function shift_isSmall(n){return Math.abs(n) <= BASE} - BigInteger.prototype.shiftLeft - = - function(v) - {var n=parseValue(v).toJSNumber(); - if(! shift_isSmall(n)) - throw new Error(String(n) + " is too large for shifting."); - if(n < 0)return this.shiftRight(- n); - var result=this; - if(result.isZero())return result; - while(n >= powers2Length) - {result = result.multiply(highestPower2);n -= powers2Length - 1} - return result.multiply(powersOfTwo[n])}; - NativeBigInt.prototype.shiftLeft - = - SmallInteger.prototype.shiftLeft - = - BigInteger.prototype.shiftLeft; - BigInteger.prototype.shiftRight - = - function(v) - {var remQuo,n=parseValue(v).toJSNumber(); - if(! shift_isSmall(n)) - throw new Error(String(n) + " is too large for shifting."); - if(n < 0)return this.shiftLeft(- n); - var result=this; - while(n >= powers2Length) - {if(result.isZero() || result.isNegative() && result.isUnit()) - return result; - remQuo = divModAny(result,highestPower2); - result = remQuo[1].isNegative()?remQuo[0].prev():remQuo[0]; - n -= powers2Length - 1} - remQuo = divModAny(result,powersOfTwo[n]); - return remQuo[1].isNegative()?remQuo[0].prev():remQuo[0]}; - NativeBigInt.prototype.shiftRight - = - SmallInteger.prototype.shiftRight - = - BigInteger.prototype.shiftRight; - function bitwise(x,y,fn) - {y = parseValue(y); - var - xSign=x.isNegative(), - ySign=y.isNegative(), - xRem=xSign?x.not():x, - yRem=ySign?y.not():y, - xDigit=0, - yDigit=0, - xDivMod=null, - yDivMod=null, - result=[]; - while(! xRem.isZero() || ! yRem.isZero()) - {xDivMod = divModAny(xRem,highestPower2); - xDigit = xDivMod[1].toJSNumber(); - if(xSign)xDigit = highestPower2 - 1 - xDigit; - yDivMod = divModAny(yRem,highestPower2); - yDigit = yDivMod[1].toJSNumber(); - if(ySign)yDigit = highestPower2 - 1 - yDigit; - xRem = xDivMod[0]; - yRem = yDivMod[0]; - result.push(fn(xDigit,yDigit))} - var sum=fn(xSign?1:0,ySign?1:0) !== 0?bigInt(- 1):bigInt(0); - for(var i=result.length - 1;i >= 0;i -= 1) - sum = sum.multiply(highestPower2).add(bigInt(result[i])); - return sum} - BigInteger.prototype.not = function(){return this.negate().prev()}; - NativeBigInt.prototype.not - = - SmallInteger.prototype.not - = - BigInteger.prototype.not; - BigInteger.prototype.and - = - function(n){return bitwise(this,n,function(a,b){return a & b})}; - NativeBigInt.prototype.and - = - SmallInteger.prototype.and - = - BigInteger.prototype.and; - BigInteger.prototype.or - = - function(n){return bitwise(this,n,function(a,b){return a | b})}; - NativeBigInt.prototype.or - = - SmallInteger.prototype.or - = - BigInteger.prototype.or; - BigInteger.prototype.xor - = - function(n){return bitwise(this,n,function(a,b){return a ^ b})}; - NativeBigInt.prototype.xor - = - SmallInteger.prototype.xor - = - BigInteger.prototype.xor; - var - LOBMASK_I=1 << 30, - LOBMASK_BI=(BASE & - BASE) * (BASE & - BASE) | LOBMASK_I; - function roughLOB(n) - {var - v=n.value, - x= - typeof v === "number" - ?v | LOBMASK_I - :typeof v === "bigint" - ?v | BigInt(LOBMASK_I) - :v[0] + v[1] * BASE | LOBMASK_BI; - return x & - x} - function integerLogarithm(value,base) - {if(base.compareTo(value) <= 0) - {var - tmp=integerLogarithm(value,base.square(base)), - p=tmp.p, - e=tmp.e, - t=p.multiply(base); - return t.compareTo(value) <= 0?{p:t,e:e * 2 + 1}:{p:p,e:e * 2}} - return {p:bigInt(1),e:0}} - BigInteger.prototype.bitLength - = - function() - {var n=this; - if(n.compareTo(bigInt(0)) < 0)n = n.negate().subtract(bigInt(1)); - if(n.compareTo(bigInt(0)) === 0)return bigInt(0); - return bigInt(integerLogarithm(n,bigInt(2)).e).add(bigInt(1))}; - NativeBigInt.prototype.bitLength - = - SmallInteger.prototype.bitLength - = - BigInteger.prototype.bitLength; - function max(a,b) - {a = parseValue(a);b = parseValue(b);return a.greater(b)?a:b} - function min(a,b) - {a = parseValue(a);b = parseValue(b);return a.lesser(b)?a:b} - function gcd(a,b) - {a = parseValue(a).abs(); - b = parseValue(b).abs(); - if(a.equals(b))return a; - if(a.isZero())return b; - if(b.isZero())return a; - var c=Integer[1],d,t; - while(a.isEven() && b.isEven()) - {d = min(roughLOB(a),roughLOB(b)); - a = a.divide(d); - b = b.divide(d); - c = c.multiply(d)} - while(a.isEven())a = a.divide(roughLOB(a)); - do - {while(b.isEven())b = b.divide(roughLOB(b)); - if(a.greater(b)){t = b;b = a;a = t} - b = b.subtract(a)} - while - (! b.isZero()); - return c.isUnit()?a:a.multiply(c)} - function lcm(a,b) - {a = parseValue(a).abs(); - b = parseValue(b).abs(); - return a.divide(gcd(a,b)).multiply(b)} - function randBetween(a,b) - {a = parseValue(a); - b = parseValue(b); - var low=min(a,b),high=max(a,b),range=high.subtract(low).add(1); - if(range.isSmall)return low.add(Math.floor(Math.random() * range)); - var digits=toBase(range,BASE).value,result=[],restricted=true; - for(var i=0;i < digits.length;i++) - {var - top=restricted?digits[i]:BASE, - digit=truncate(Math.random() * top); - result.push(digit); - if(digit < top)restricted = false} - return low.add(Integer.fromArray(result,BASE,false))} - function parseBase(text,base,alphabet,caseSensitive) - {alphabet = alphabet || DEFAULT_ALPHABET; - text = String(text); - if(! caseSensitive) - {text = text.toLowerCase();alphabet = alphabet.toLowerCase()} - var length=text.length,i,absBase=Math.abs(base),alphabetValues={}; - for(i = 0;i < alphabet.length;i++)alphabetValues[alphabet[i]] = i; - for(i = 0;i < length;i++) - {var c=text[i]; - if(c === "-")continue; - if(c in alphabetValues) - if(alphabetValues[c] >= absBase) - {if(c === "1" && absBase === 1)continue; - throw new - Error - (c + " is not a valid digit in base " + base + ".")}} - base = parseValue(base); - var digits=[],isNegative=text[0] === "-"; - for(i = isNegative?1:0;i < text.length;i++) - {var c=text[i]; - if(c in alphabetValues) - digits.push(parseValue(alphabetValues[c])); - else - if(c === "<") - {var start=i; - do i++;while(text[i] !== ">" && i < text.length); - digits.push(parseValue(text.slice(start + 1,i)))} - else - throw new Error(c + " is not a valid character")} - return parseBaseFromArray(digits,base,isNegative)} - function parseBaseFromArray(digits,base,isNegative) - {var val=Integer[0],pow=Integer[1],i; - for(i = digits.length - 1;i >= 0;i--) - {val = val.add(digits[i].times(pow));pow = pow.times(base)} - return isNegative?val.negate():val} - function stringify(digit,alphabet) - {alphabet = alphabet || DEFAULT_ALPHABET; - if(digit < alphabet.length)return alphabet[digit]; - return "<" + digit + ">"} - function toBase(n,base) - {base = bigInt(base); - if(base.isZero()) - {if(n.isZero())return {value:[0],isNegative:false}; - throw new Error("Cannot convert nonzero numbers to base 0.")} - if(base.equals(- 1)) - {if(n.isZero())return {value:[0],isNegative:false}; - if(n.isNegative()) - return {value: - [].concat.apply - ([], - Array.apply(null,Array(- n.toJSNumber())).map - (Array.prototype.valueOf,[1,0])), - isNegative:false}; - var - arr= - Array.apply(null,Array(n.toJSNumber() - 1)).map - (Array.prototype.valueOf,[0,1]); - arr.unshift([1]); - return {value:[].concat.apply([],arr),isNegative:false}} - var neg=false; - if(n.isNegative() && base.isPositive()){neg = true;n = n.abs()} - if(base.isUnit()) - {if(n.isZero())return {value:[0],isNegative:false}; - return {value: - Array.apply(null,Array(n.toJSNumber())).map - (Number.prototype.valueOf,1), - isNegative:neg}} - var out=[],left=n,divmod; - while(left.isNegative() || left.compareAbs(base) >= 0) - {divmod = left.divmod(base); - left = divmod.quotient; - var digit=divmod.remainder; - if(digit.isNegative()) - {digit = base.minus(digit).abs();left = left.next()} - out.push(digit.toJSNumber())} - out.push(left.toJSNumber()); - return {value:out.reverse(),isNegative:neg}} - function toBaseString(n,base,alphabet) - {var arr=toBase(n,base); - return (arr.isNegative?"-":"") - + - arr.value.map(function(x){return stringify(x,alphabet)}).join - ("")} - BigInteger.prototype.toArray - = - function(radix){return toBase(this,radix)}; - SmallInteger.prototype.toArray - = - function(radix){return toBase(this,radix)}; - NativeBigInt.prototype.toArray - = - function(radix){return toBase(this,radix)}; - BigInteger.prototype.toString - = - function(radix,alphabet) - {if(radix === undefined)radix = 10; - if(radix !== 10)return toBaseString(this,radix,alphabet); - var - v=this.value, - l=v.length, - str=String(v[--l]), - zeros="0000000", - digit; - while(--l >= 0) - {digit = String(v[l]);str += zeros.slice(digit.length) + digit} - var sign=this.sign?"-":""; - return sign + str}; - SmallInteger.prototype.toString - = - function(radix,alphabet) - {if(radix === undefined)radix = 10; - if(radix != 10)return toBaseString(this,radix,alphabet); - return String(this.value)}; - NativeBigInt.prototype.toString = SmallInteger.prototype.toString; - NativeBigInt.prototype.toJSON - = - BigInteger.prototype.toJSON - = - SmallInteger.prototype.toJSON - = - function(){return this.toString()}; - BigInteger.prototype.valueOf - = - function(){return parseInt(this.toString(),10)}; - BigInteger.prototype.toJSNumber = BigInteger.prototype.valueOf; - SmallInteger.prototype.valueOf = function(){return this.value}; - SmallInteger.prototype.toJSNumber = SmallInteger.prototype.valueOf; - NativeBigInt.prototype.valueOf - = - NativeBigInt.prototype.toJSNumber - = - function(){return parseInt(this.toString(),10)}; - function parseStringValue(v) - {if(isPrecise(+ v)) - {var x=+ v; - if(x === truncate(x)) - return supportsNativeBigInt - ?new NativeBigInt(BigInt(x)) - :new SmallInteger(x); - throw new Error("Invalid integer: " + v)} - var sign=v[0] === "-"; - if(sign)v = v.slice(1); - var split=v.split(/e/i); - if(split.length > 2) - throw new Error("Invalid integer: " + split.join("e")); - if(split.length === 2) - {var exp=split[1]; - if(exp[0] === "+")exp = exp.slice(1); - exp = + exp; - if(exp !== truncate(exp) || ! isPrecise(exp)) - throw new - Error - ("Invalid integer: " + exp + " is not a valid exponent."); - var text=split[0],decimalPlace=text.indexOf("."); - if(decimalPlace >= 0) - {exp -= text.length - decimalPlace - 1; - text - = - text.slice(0,decimalPlace) - + - text.slice(decimalPlace + 1)} - if(exp < 0) - throw new - Error - ("Cannot include negative exponent part for integers"); - text += new Array(exp + 1).join("0"); - v = text} - var isValid=/^([0-9][0-9]*)$/.test(v); - if(! isValid)throw new Error("Invalid integer: " + v); - if(supportsNativeBigInt) - return new NativeBigInt(BigInt(sign?"-" + v:v)); - var r=[],max=v.length,l=LOG_BASE,min=max - l; - while(max > 0) - {r.push(+ v.slice(min,max));min -= l;if(min < 0)min = 0;max -= l} - trim(r); - return new BigInteger(r,sign)} - function parseNumberValue(v) - {if(supportsNativeBigInt)return new NativeBigInt(BigInt(v)); - if(isPrecise(v)) - {if(v !== truncate(v))throw new Error(v + " is not an integer."); - return new SmallInteger(v)} - return parseStringValue(v.toString())} - function parseValue(v) - {if(typeof v === "number")return parseNumberValue(v); - if(typeof v === "string")return parseStringValue(v); - if(typeof v === "bigint")return new NativeBigInt(v); - return v} - for(var i=0;i < 1000;i++) - {Integer[i] = parseValue(i);if(i > 0)Integer[- i] = parseValue(- i)} - Integer.one = Integer[1]; - Integer.zero = Integer[0]; - Integer.minusOne = Integer[- 1]; - Integer.max = max; - Integer.min = min; - Integer.gcd = gcd; - Integer.lcm = lcm; - Integer.isInstance - = - function(x) - {return x instanceof BigInteger - || - x instanceof SmallInteger - || - x instanceof NativeBigInt}; - Integer.randBetween = randBetween; - Integer.fromArray - = - function(digits,base,isNegative) - {return parseBaseFromArray - (digits.map(parseValue),parseValue(base || 10),isNegative)}; - return Integer} - (); - function ml_z_normalize(x) - {var y=x.toJSNumber() | 0;if(x.equals(bigInt(y)))return y;return x} - function ml_z_pow(z1,i1) - {i1 = bigInt(i1); - if(i1.lt(bigInt(0))) - caml_invalid_argument("Z.pow: exponent must be nonnegative"); - return ml_z_normalize(bigInt(z1).pow(i1))} - function ml_z_root(z,i) - {var zero=bigInt(0),one=bigInt(1); - z = bigInt(z); - if(i % 2 === 0 && z.lt(zero)) - caml_invalid_argument("Z.root: even root of a negative number"); - if(z.equals(zero) || z.equals(one))return ml_z_normalize(z); - var start=zero,end=z,ans=null,two=bigInt(2); - while(start.leq(end)) - {var mid=start.add(end).divide(two),po=mid.pow(i); - if(po.equals(z)) - return ml_z_normalize(mid); - else - if(po.lt(z)){start = mid.next();ans = mid}else end = mid.prev()} - return ml_z_normalize(ans)} - function ml_z_rootrem(z,i) - {var zero=bigInt(0),one=bigInt(1); - z = bigInt(z); - if(i % 2 === 0 && z.lt(zero)) - caml_invalid_argument("Z.rootrem: even root of a negative number"); - if(z.equals(zero) || z.equals(one))return [0,ml_z_normalize(z),zero]; - var start=zero,end=z,ans=null,two=bigInt(2); - while(start.leq(end)) - {var mid=start.add(end).divide(two),po=mid.pow(i); - if(po.equals(z)) - return [0,ml_z_normalize(mid),zero]; - else - if(po.lt(z)){start = mid.next();ans = mid}else end = mid.prev()} - return [0,ml_z_normalize(ans),ml_z_normalize(z.minus(ans.pow(i)))]} - function caml_ml_condition_new(unit){return {condition:1}} - function caml_int64_of_bytes(a) - {return new - MlInt64 - (a[7] << 0 | a[6] << 8 | a[5] << 16, - a[4] << 0 | a[3] << 8 | a[2] << 16, - a[1] << 0 | a[0] << 8)} - function caml_ba_uint8_get64(ba,i0) - {var ofs=ba.offset(i0); - if(ofs + 7 >= ba.data.length)caml_array_bound_error(); + caml_raise_sys_error(name + ": closedir failed"); + if(i == a.length) return null; + var entry = a[i]; + i++; + return {name: entry}; + }, + closeSync: + function(){ + if(c) + if(unix_error) + caml_raise_with_args + (unix_error, + make_unix_err_args("EBADF", "closedir", this.nm(name))); + else + caml_raise_sys_error(name + ": closedir failed"); + c = true; + a = []; + }}; + }; + MlFakeDevice.prototype.is_dir = + function(name){ + if(name == "") return true; + var name_slash = this.slash(name); + return this.content[name_slash] ? 1 : 0; + }; + MlFakeDevice.prototype.unlink = + function(name){ + var ok = this.content[name] ? true : false; + delete this.content[name]; + return ok; + }; + MlFakeDevice.prototype.open = + function(name, f){ + var file; + if(f.rdonly && f.wronly) + caml_raise_sys_error + (this.nm(name) + + " : flags Open_rdonly and Open_wronly are not compatible"); + if(f.text && f.binary) + caml_raise_sys_error + (this.nm(name) + + " : flags Open_text and Open_binary are not compatible"); + this.lookup(name); + if(this.content[name]){ + if(this.is_dir(name)) + caml_raise_sys_error(this.nm(name) + " : is a directory"); + if(f.create && f.excl) + caml_raise_sys_error(this.nm(name) + " : file already exists"); + file = this.content[name]; + if(f.truncate) file.truncate(); + } + else if(f.create){ + this.create_dir_if_needed(name); + this.content[name] = new MlFakeFile(caml_create_bytes(0)); + file = this.content[name]; + } + else + caml_raise_no_such_file(this.nm(name)); + return new MlFakeFd(this.nm(name), file, f); + }; + MlFakeDevice.prototype.open = + function(name, f){ + var file; + if(f.rdonly && f.wronly) + caml_raise_sys_error + (this.nm(name) + + " : flags Open_rdonly and Open_wronly are not compatible"); + if(f.text && f.binary) + caml_raise_sys_error + (this.nm(name) + + " : flags Open_text and Open_binary are not compatible"); + this.lookup(name); + if(this.content[name]){ + if(this.is_dir(name)) + caml_raise_sys_error(this.nm(name) + " : is a directory"); + if(f.create && f.excl) + caml_raise_sys_error(this.nm(name) + " : file already exists"); + file = this.content[name]; + if(f.truncate) file.truncate(); + } + else if(f.create){ + this.create_dir_if_needed(name); + this.content[name] = new MlFakeFile(caml_create_bytes(0)); + file = this.content[name]; + } + else + caml_raise_no_such_file(this.nm(name)); + return new MlFakeFd(this.nm(name), file, f); + }; + MlFakeDevice.prototype.register = + function(name, content){ + var file; + if(this.content[name]) + caml_raise_sys_error(this.nm(name) + " : file already exists"); + if(caml_is_ml_bytes(content)) file = new MlFakeFile(content); + if(caml_is_ml_string(content)) + file = new MlFakeFile(caml_bytes_of_string(content)); + else if(content instanceof Array) + file = new MlFakeFile(caml_bytes_of_array(content)); + else if(typeof content === "string") + file = new MlFakeFile(caml_bytes_of_jsbytes(content)); + else if(content.toString){ var - b1=ba.get(ofs + 0), - b2=ba.get(ofs + 1), - b3=ba.get(ofs + 2), - b4=ba.get(ofs + 3), - b5=ba.get(ofs + 4), - b6=ba.get(ofs + 5), - b7=ba.get(ofs + 6), - b8=ba.get(ofs + 7); - return caml_int64_of_bytes([b8,b7,b6,b5,b4,b3,b2,b1])} - function caml_int64_to_bytes(x){return x.toArray()} - function caml_int64_marshal(writer,v,sizes) - {var b=caml_int64_to_bytes(v); - for(var i=0;i < 8;i++)writer.write(8,b[i]); - sizes[0] = 8; - sizes[1] = 8} - function caml_ba_num_dims(ba){return ba.dims.length} - function caml_return_exn_constant(tag){return tag} - function caml_wrap_exception(e) - {if(e instanceof Array)return e; - if - (globalThis.RangeError - && - e instanceof globalThis.RangeError - && - e.message - && - e.message.match(/maximum call stack/i)) - return caml_return_exn_constant(caml_global_data.Stack_overflow); - if - (globalThis.InternalError - && - e instanceof globalThis.InternalError - && - e.message - && - e.message.match(/too much recursion/i)) - return caml_return_exn_constant(caml_global_data.Stack_overflow); - if(e instanceof globalThis.Error && caml_named_value("jsError")) - return [0,caml_named_value("jsError"),e]; - return [0,caml_global_data.Failure,caml_string_of_jsstring(String(e))]} - function caml_create_file(name,content) - {var root=resolve_fs_device(name); - if(! root.device.register)caml_failwith("cannot register file"); - root.device.register(root.rest,content); - return 0} - function jsoo_create_file(name,content) - {var - name=caml_string_of_jsbytes(name), - content=caml_string_of_jsbytes(content); - return caml_create_file(name,content)} - function caml_fs_init() - {var tmp=globalThis.caml_fs_tmp; - if(tmp) - for(var i=0;i < tmp.length;i++) - jsoo_create_file(tmp[i].name,tmp[i].content); - globalThis.jsoo_create_file = jsoo_create_file; - globalThis.caml_fs_tmp = []; - return 0} - var caml_parser_trace=0; - function caml_set_parser_trace(bool) - {var oldflag=caml_parser_trace;caml_parser_trace = bool;return oldflag} - function caml_list_of_js_array(a) - {var l=0; - for(var i=a.length - 1;i >= 0;i--){var e=a[i];l = [0,e,l]} - return l} - function caml_mul(a,b){return Math.imul(a,b)} - function caml_hash_mix_int(h,d) - {d = caml_mul(d,0xcc9e2d51 | 0); - d = d << 15 | d >>> 32 - 15; - d = caml_mul(d,0x1b873593); - h ^= d; - h = h << 13 | h >>> 32 - 13; - return (h + (h << 2) | 0) + (0xe6546b64 | 0) | 0} - function num_digits_nat(nat,ofs,len) - {for(var i=len - 1;i >= 0;i--)if(nat.data[ofs + i] != 0)return i + 1; - return 1} - function caml_hash_nat(x) - {var len=num_digits_nat(x,0,x.data.length),h=0; - for(var i=0;i < len;i++)h = caml_hash_mix_int(h,x.data[i]); - return h} - function caml_call_gen(f,args) - {if(f.fun)return caml_call_gen(f.fun,args); - if(typeof f !== "function")return f; - var n=f.length | 0; - if(n === 0)return f.apply(null,args); - var argsLen=args.length | 0,d=n - argsLen | 0; - if(d == 0) - return f.apply(null,args); + bytes = + caml_bytes_of_string(caml_string_of_jsstring(content.toString())); + file = new MlFakeFile(bytes); + } + if(file){ + this.create_dir_if_needed(name); + this.content[name] = file; + } + else + caml_raise_sys_error + (this.nm(name) + " : registering file with invalid content type"); + }; + MlFakeDevice.prototype.constructor = MlFakeDevice; + function caml_ml_string_length(s){return s.length;} + function caml_string_unsafe_get(s, i){return s.charCodeAt(i);} + function caml_uint8_array_of_string(s){ + var l = caml_ml_string_length(s), a = new Array(l), i = 0; + for(; i < l; i++) a[i] = caml_string_unsafe_get(s, i); + return a; + } + function caml_bytes_bound_error(){ + caml_invalid_argument("index out of bounds"); + } + function caml_bytes_unsafe_set(s, i, c){ + c &= 0xff; + if(s.t != 4){ + if(i == s.c.length){ + s.c += String.fromCharCode(c); + if(i + 1 == s.l) s.t = 0; + return 0; + } + caml_convert_bytes_to_array(s); + } + s.c[i] = c; + return 0; + } + function caml_bytes_set(s, i, c){ + if(i >>> 0 >= s.l) caml_bytes_bound_error(); + return caml_bytes_unsafe_set(s, i, c); + } + function MlNodeFd(fd, flags){ + this.fs = require("fs"); + this.fd = fd; + this.flags = flags; + } + MlNodeFd.prototype = new MlFile(); + MlNodeFd.prototype.constructor = MlNodeFd; + MlNodeFd.prototype.truncate = + function(len){ + try{this.fs.ftruncateSync(this.fd, len | 0);} + catch(err){caml_raise_sys_error(err.toString());} + }; + MlNodeFd.prototype.length = + function(){ + try{return this.fs.fstatSync(this.fd).size;} + catch(err){caml_raise_sys_error(err.toString());} + }; + MlNodeFd.prototype.write = + function(offset, buf, buf_offset, len){ + try{ + if(this.flags.isCharacterDevice) + this.fs.writeSync(this.fd, buf, buf_offset, len); else - if(d < 0) - return caml_call_gen(f.apply(null,args.slice(0,n)),args.slice(n)); - else - return function() - {var - extra_args=arguments.length == 0?1:arguments.length, - nargs=new Array(args.length + extra_args); - for(var i=0;i < args.length;i++)nargs[i] = args[i]; - for(var i=0;i < arguments.length;i++) - nargs[args.length + i] = arguments[i]; - return caml_call_gen(f,nargs)}} - function caml_js_wrap_callback_arguments(f) - {return function() - {var len=arguments.length,args=new Array(len); - for(var i=0;i < len;i++)args[i] = arguments[i]; - return caml_call_gen(f,[args])}} - function caml_sys_chdir(dir) - {var root=resolve_fs_device(dir); - if(root.device.exists(root.rest)) - {if(root.rest) - caml_current_dir = caml_trailing_slash(root.path + root.rest); - else - caml_current_dir = root.path; - return 0} + this.fs.writeSync(this.fd, buf, buf_offset, len, offset); + } + catch(err){caml_raise_sys_error(err.toString());} + return 0; + }; + MlNodeFd.prototype.read = + function(offset, a, buf_offset, len){ + try{ + if(this.flags.isCharacterDevice) + var read = this.fs.readSync(this.fd, a, buf_offset, len); else - caml_raise_no_such_file(caml_jsbytes_of_string(dir))} - function caml_obj_tag(x) - {if(x instanceof Array && x[0] == x[0] >>> 0) - return x[0]; - else - if(caml_is_ml_bytes(x)) - return 252; - else - if(caml_is_ml_string(x)) - return 252; - else - if(x instanceof Function || typeof x == "function") - return 247; - else - if(x && x.caml_custom)return 255;else return 1000} - function caml_obj_update_tag(b,o,n) - {if(b[0] == o){b[0] = n;return 1}return 0} - var caml_ml_domain_unique_token_=[0]; - function caml_ml_domain_unique_token(unit) - {return caml_ml_domain_unique_token_} - function caml_lazy_update_to_forcing(o) - {var t=caml_obj_tag(o); - if(t != 246 && t != 250 && t != 244)return 4; - if(caml_obj_update_tag(o,246,244)) - return 0; - else - {var field0=o[1]; - t = o[0]; - if(t == 244) - return field0 == caml_ml_domain_unique_token(0)?1:2; - else - if(t == 250)return 3;else return 2}} - function caml_gc_counters(){return [254,0,0,0]} - function ml_z_div(z1,z2) - {z2 = bigInt(z2); - if(z2.equals(bigInt(0)))caml_raise_zero_divide(); - return ml_z_normalize(bigInt(z1).divide(bigInt(z2)))} - function ml_z_sign(z1){return bigInt(z1).compare(bigInt.zero)} - function ml_z_add(z1,z2) - {return ml_z_normalize(bigInt(z1).add(bigInt(z2)))} - function ml_z_cdiv(z1,z2) - {var z1_pos=ml_z_sign(z1),z2_pos=ml_z_sign(z2); - if(z1_pos * z2_pos > 0) - if(! bigInt(z1).mod(bigInt(z2)).equals(bigInt(0))) - return ml_z_add(ml_z_div(z1,z2),bigInt(1)); - return ml_z_div(z1,z2)} - function caml_gr_synchronize() - {caml_failwith("caml_gr_synchronize not Implemented")} - function caml_unix_closedir(dir_handle) - {try - {dir_handle.pointer.closeSync()} - catch(e) - {var unix_error=caml_named_value("Unix.Unix_error"); - caml_raise_with_args - (unix_error,make_unix_err_args("EBADF","closedir",dir_handle.path))}} - function caml_unix_opendir(path) - {var root=resolve_fs_device(path); - if(! root.device.opendir) - caml_failwith("caml_unix_opendir: not implemented"); - var dir_handle=root.device.opendir(root.rest,true); - return {pointer:dir_handle,path:path}} - function caml_unix_rewinddir(dir_handle) - {caml_unix_closedir(dir_handle); - var new_dir_handle=caml_unix_opendir(dir_handle.path); - dir_handle.pointer = new_dir_handle.pointer; - return 0} - function caml_raise_end_of_file() - {caml_raise_constant(caml_global_data.End_of_file)} - function caml_unix_readdir(dir_handle) - {var entry; - try - {entry = dir_handle.pointer.readSync()} - catch(e) - {var unix_error=caml_named_value("Unix.Unix_error"); - caml_raise_with_args - (unix_error,make_unix_err_args("EBADF","readdir",dir_handle.path))} - if(entry === null) - caml_raise_end_of_file(); - else - return caml_string_of_jsstring(entry.name)} - function caml_unix_findfirst(path) - {var path_js=caml_jsstring_of_string(path); - path_js = path_js.replace(/(^|[\\\/])\*\.\*$/,""); - path = caml_string_of_jsstring(path_js); + var read = this.fs.readSync(this.fd, a, buf_offset, len, offset); + return read; + } + catch(err){caml_raise_sys_error(err.toString());} + }; + MlNodeFd.prototype.close = + function(){ + try{this.fs.closeSync(this.fd); return 0;} + catch(err){caml_raise_sys_error(err.toString());} + }; + function MlNodeDevice(root){this.fs = require("fs"); this.root = root;} + MlNodeDevice.prototype.nm = function(name){return this.root + name;}; + MlNodeDevice.prototype.exists = + function(name){ + try{return this.fs.existsSync(this.nm(name)) ? 1 : 0;} + catch(err){return 0;} + }; + MlNodeDevice.prototype.isFile = + function(name){ + try{return this.fs.statSync(this.nm(name)).isFile() ? 1 : 0;} + catch(err){caml_raise_sys_error(err.toString());} + }; + MlNodeDevice.prototype.mkdir = + function(name, mode, raise_unix){ + try{this.fs.mkdirSync(this.nm(name), {mode: mode}); return 0;} + catch(err){this.raise_nodejs_error(err, raise_unix);} + }; + MlNodeDevice.prototype.rmdir = + function(name, raise_unix){ + try{this.fs.rmdirSync(this.nm(name)); return 0;} + catch(err){this.raise_nodejs_error(err, raise_unix);} + }; + MlNodeDevice.prototype.readdir = + function(name, raise_unix){ + try{return this.fs.readdirSync(this.nm(name));} + catch(err){this.raise_nodejs_error(err, raise_unix);} + }; + MlNodeDevice.prototype.is_dir = + function(name){ + try{return this.fs.statSync(this.nm(name)).isDirectory() ? 1 : 0;} + catch(err){caml_raise_sys_error(err.toString());} + }; + MlNodeDevice.prototype.unlink = + function(name, raise_unix){ + try{ + var b = this.fs.existsSync(this.nm(name)) ? 1 : 0; + this.fs.unlinkSync(this.nm(name)); + return b; + } + catch(err){this.raise_nodejs_error(err, raise_unix);} + }; + MlNodeDevice.prototype.open = + function(name, f, raise_unix){ + var consts = require("constants"), res = 0; + for(var key in f) + switch(key){ + case "rdonly": + res |= consts.O_RDONLY; break; + case "wronly": + res |= consts.O_WRONLY; break; + case "append": + res |= consts.O_WRONLY | consts.O_APPEND; break; + case "create": + res |= consts.O_CREAT; break; + case "truncate": + res |= consts.O_TRUNC; break; + case "excl": + res |= consts.O_EXCL; break; + case "binary": + res |= consts.O_BINARY; break; + case "text": + res |= consts.O_TEXT; break; + case "nonblock": + res |= consts.O_NONBLOCK; break; + } + try{ var - dir_handle=caml_unix_opendir(path), - first_entry=caml_unix_readdir(dir_handle); - return [0,first_entry,dir_handle]} - var log2_ok=Math.log2 && Math.log2(1.1235582092889474E+307) == 1020; - function jsoo_floor_log2(x) - {if(log2_ok)return Math.floor(Math.log2(x)); - var i=0; - if(x == 0)return - Infinity; - if(x >= 1)while(x >= 2){x /= 2;i++}else while(x < 1){x *= 2;i--} - return i} - function caml_int32_bits_of_float(x) - {var float32a=new Float32Array(1); - float32a[0] = x; - var int32a=new Int32Array(float32a.buffer); - return int32a[0] | 0} - function caml_int64_create_lo_mi_hi(lo,mi,hi) - {return new MlInt64(lo,mi,hi)} - function caml_int64_bits_of_float(x) - {if(! isFinite(x)) - {if(isNaN(x))return caml_int64_create_lo_mi_hi(1,0,0x7ff0); - return x > 0 - ?caml_int64_create_lo_mi_hi(0,0,0x7ff0) - :caml_int64_create_lo_mi_hi(0,0,0xfff0)} - var sign=x == 0 && 1 / x == - Infinity?0x8000:x >= 0?0:0x8000; - if(sign)x = - x; - var exp=jsoo_floor_log2(x) + 1023; - if(exp <= 0) - {exp = 0;x /= Math.pow(2,- 1026)} - else - {x /= Math.pow(2,exp - 1027); - if(x < 16){x *= 2;exp -= 1} - if(exp == 0)x /= 2} - var k=Math.pow(2,24),r3=x | 0; - x = (x - r3) * k; - var r2=x | 0; - x = (x - r2) * k; - var r1=x | 0; - r3 = r3 & 0xf | sign | exp << 4; - return caml_int64_create_lo_mi_hi(r1,r2,r3)} - function caml_ba_serialize(writer,ba,sz) - {writer.write(32,ba.dims.length); - writer.write(32,ba.kind | ba.layout << 8); - if(ba.caml_custom == "_bigarr02") - for(var i=0;i < ba.dims.length;i++) - if(ba.dims[i] < 0xffff) - writer.write(16,ba.dims[i]); - else - {writer.write(16,0xffff); - writer.write(32,0); - writer.write(32,ba.dims[i])} - else - for(var i=0;i < ba.dims.length;i++)writer.write(32,ba.dims[i]); - switch(ba.kind) - {case 2: - case 3: - case 12: - for(var i=0;i < ba.data.length;i++)writer.write(8,ba.data[i]);break; - case 4: - case 5: - for(var i=0;i < ba.data.length;i++)writer.write(16,ba.data[i]);break; - case 6: - for(var i=0;i < ba.data.length;i++)writer.write(32,ba.data[i]);break; - case 8: - case 9: - writer.write(8,0); - for(var i=0;i < ba.data.length;i++)writer.write(32,ba.data[i]); - break; - case 7: - for(var i=0;i < ba.data.length / 2;i++) - {var b=caml_int64_to_bytes(ba.get(i)); - for(var j=0;j < 8;j++)writer.write(8,b[j])} - break; - case 1: - for(var i=0;i < ba.data.length;i++) - {var b=caml_int64_to_bytes(caml_int64_bits_of_float(ba.get(i))); - for(var j=0;j < 8;j++)writer.write(8,b[j])} - break; - case 0: - for(var i=0;i < ba.data.length;i++) - {var b=caml_int32_bits_of_float(ba.get(i));writer.write(32,b)} - break; - case 10: - for(var i=0;i < ba.data.length / 2;i++) - {var j=ba.get(i); - writer.write(32,caml_int32_bits_of_float(j[1])); - writer.write(32,caml_int32_bits_of_float(j[2]))} - break; - case 11: - for(var i=0;i < ba.data.length / 2;i++) - {var - complex=ba.get(i), - b=caml_int64_to_bytes(caml_int64_bits_of_float(complex[1])); - for(var j=0;j < 8;j++)writer.write(8,b[j]); - var b=caml_int64_to_bytes(caml_int64_bits_of_float(complex[2])); - for(var j=0;j < 8;j++)writer.write(8,b[j])} - break - } - sz[0] = (4 + ba.dims.length) * 4; - sz[1] = (4 + ba.dims.length) * 8} - function caml_ba_get_size_per_element(kind) - {switch(kind){case 7:case 10:case 11:return 2;default:return 1}} - function caml_ba_create_buffer(kind,size) - {var view; - switch(kind) - {case 0:view = Float32Array;break; - case 1:view = Float64Array;break; - case 2:view = Int8Array;break; - case 3:view = Uint8Array;break; - case 4:view = Int16Array;break; - case 5:view = Uint16Array;break; - case 6:view = Int32Array;break; - case 7:view = Int32Array;break; - case 8:view = Int32Array;break; - case 9:view = Int32Array;break; - case 10:view = Float32Array;break; - case 11:view = Float64Array;break; - case 12:view = Uint8Array;break - } - if(! view)caml_invalid_argument("Bigarray.create: unsupported kind"); - var data=new view(size * caml_ba_get_size_per_element(kind)); - return data} - function caml_int32_float_of_bits(x) - {var int32a=new Int32Array(1); - int32a[0] = x; - var float32a=new Float32Array(int32a.buffer); - return float32a[0]} - function caml_int64_float_of_bits(x) - {var lo=x.lo,mi=x.mi,hi=x.hi,exp=(hi & 0x7fff) >> 4; - if(exp == 2047) - return (lo | mi | hi & 0xf) == 0?hi & 0x8000?- Infinity:Infinity:NaN; - var k=Math.pow(2,- 24),res=(lo * k + mi) * k + (hi & 0xf); - if(exp > 0) - {res += 16;res *= Math.pow(2,exp - 1027)} - else - res *= Math.pow(2,- 1026); - if(hi & 0x8000)res = - res; - return res} - function caml_ba_get_size(dims) - {var n_dims=dims.length,size=1; - for(var i=0;i < n_dims;i++) - {if(dims[i] < 0) - caml_invalid_argument("Bigarray.create: negative dimension"); - size = size * dims[i]} - return size} - function caml_int64_create_lo_hi(lo,hi) - {return new - MlInt64 - (lo & 0xffffff, - lo >>> 24 & 0xff | (hi & 0xffff) << 8, - hi >>> 16 & 0xffff)} - function caml_int64_hi32(v){return v.hi32()} - function caml_int64_lo32(v){return v.lo32()} - var caml_ba_custom_name="_bigarr02"; - function Ml_Bigarray(kind,layout,dims,buffer) - {this.kind = kind; - this.layout = layout; - this.dims = dims; - this.data = buffer} - Ml_Bigarray.prototype.caml_custom = caml_ba_custom_name; - Ml_Bigarray.prototype.offset - = - function(arg) - {var ofs=0; - if(typeof arg === "number")arg = [arg]; - if(! (arg instanceof Array)) - caml_invalid_argument("bigarray.js: invalid offset"); - if(this.dims.length != arg.length) - caml_invalid_argument("Bigarray.get/set: bad number of dimensions"); - if(this.layout == 0) - for(var i=0;i < this.dims.length;i++) - {if(arg[i] < 0 || arg[i] >= this.dims[i])caml_array_bound_error(); - ofs = ofs * this.dims[i] + arg[i]} - else - for(var i=this.dims.length - 1;i >= 0;i--) - {if(arg[i] < 1 || arg[i] > this.dims[i])caml_array_bound_error(); - ofs = ofs * this.dims[i] + (arg[i] - 1)} - return ofs}; - Ml_Bigarray.prototype.get - = - function(ofs) - {switch(this.kind) - {case 7: - var l=this.data[ofs * 2 + 0],h=this.data[ofs * 2 + 1]; - return caml_int64_create_lo_hi(l,h); - case 10: - case 11: - var r=this.data[ofs * 2 + 0],i=this.data[ofs * 2 + 1]; - return [254,r,i]; - default:return this.data[ofs]}}; - Ml_Bigarray.prototype.set - = - function(ofs,v) - {switch(this.kind) - {case 7: - this.data[ofs * 2 + 0] = caml_int64_lo32(v); - this.data[ofs * 2 + 1] = caml_int64_hi32(v); - break; - case 10: - case 11: - this.data[ofs * 2 + 0] = v[1];this.data[ofs * 2 + 1] = v[2];break; - default:this.data[ofs] = v;break} - return 0}; - Ml_Bigarray.prototype.fill - = - function(v) - {switch(this.kind) - {case 7: - var a=caml_int64_lo32(v),b=caml_int64_hi32(v); - if(a == b) - this.data.fill(a); - else - for(var i=0;i < this.data.length;i++)this.data[i] = i % 2 == 0?a:b; - break; - case 10: - case 11: - var im=v[1],re=v[2]; - if(im == re) - this.data.fill(im); - else - for(var i=0;i < this.data.length;i++) - this.data[i] = i % 2 == 0?im:re; - break; - default:this.data.fill(v);break}}; - Ml_Bigarray.prototype.compare - = - function(b,total) - {if(this.layout != b.layout || this.kind != b.kind) - {var k1=this.kind | this.layout << 8,k2=b.kind | b.layout << 8; - return k2 - k1} - if(this.dims.length != b.dims.length) - return b.dims.length - this.dims.length; - for(var i=0;i < this.dims.length;i++) - if(this.dims[i] != b.dims[i])return this.dims[i] < b.dims[i]?- 1:1; - switch(this.kind) - {case 0: - case 1: - case 10: - case 11: - var x,y; - for(var i=0;i < this.data.length;i++) - {x = this.data[i]; - y = b.data[i]; - if(x < y)return - 1; - if(x > y)return 1; - if(x != y) - {if(! total)return NaN;if(x == x)return 1;if(y == y)return - 1}} - break; - case 7: - for(var i=0;i < this.data.length;i += 2) - {if(this.data[i + 1] < b.data[i + 1])return - 1; - if(this.data[i + 1] > b.data[i + 1])return 1; - if(this.data[i] >>> 0 < b.data[i] >>> 0)return - 1; - if(this.data[i] >>> 0 > b.data[i] >>> 0)return 1} - break; - case 2: - case 3: - case 4: - case 5: - case 6: - case 8: - case 9: - case 12: - for(var i=0;i < this.data.length;i++) - {if(this.data[i] < b.data[i])return - 1; - if(this.data[i] > b.data[i])return 1} - break - } - return 0}; - function Ml_Bigarray_c_1_1(kind,layout,dims,buffer) - {this.kind = kind; - this.layout = layout; - this.dims = dims; - this.data = buffer} - Ml_Bigarray_c_1_1.prototype = new Ml_Bigarray(); - Ml_Bigarray_c_1_1.prototype.offset - = - function(arg) - {if(typeof arg !== "number") - if(arg instanceof Array && arg.length == 1) - arg = arg[0]; - else - caml_invalid_argument("Ml_Bigarray_c_1_1.offset"); - if(arg < 0 || arg >= this.dims[0])caml_array_bound_error(); - return arg}; - Ml_Bigarray_c_1_1.prototype.get = function(ofs){return this.data[ofs]}; - Ml_Bigarray_c_1_1.prototype.set - = - function(ofs,v){this.data[ofs] = v;return 0}; - Ml_Bigarray_c_1_1.prototype.fill - = - function(v){this.data.fill(v);return 0}; - function caml_ba_create_unsafe(kind,layout,dims,data) - {var size_per_element=caml_ba_get_size_per_element(kind); - if(caml_ba_get_size(dims) * size_per_element != data.length) - caml_invalid_argument("length doesn't match dims"); - if(layout == 0 && dims.length == 1 && size_per_element == 1) - return new Ml_Bigarray_c_1_1(kind,layout,dims,data); - return new Ml_Bigarray(kind,layout,dims,data)} - function caml_ba_deserialize(reader,sz,name) - {var num_dims=reader.read32s(); - if(num_dims < 0 || num_dims > 16) - caml_failwith("input_value: wrong number of bigarray dimensions"); - var tag=reader.read32s(),kind=tag & 0xff,layout=tag >> 8 & 1,dims=[]; - if(name == "_bigarr02") - for(var i=0;i < num_dims;i++) - {var size_dim=reader.read16u(); - if(size_dim == 0xffff) - {var size_dim_hi=reader.read32u(),size_dim_lo=reader.read32u(); - if(size_dim_hi != 0) - caml_failwith("input_value: bigarray dimension overflow in 32bit"); - size_dim = size_dim_lo} - dims.push(size_dim)} - else - for(var i=0;i < num_dims;i++)dims.push(reader.read32u()); + fd = this.fs.openSync(this.nm(name), res), + isCharacterDevice = + this.fs.lstatSync(this.nm(name)).isCharacterDevice(); + f.isCharacterDevice = isCharacterDevice; + return new MlNodeFd(fd, f); + } + catch(err){this.raise_nodejs_error(err, raise_unix);} + }; + MlNodeDevice.prototype.rename = + function(o, n, raise_unix){ + try{this.fs.renameSync(this.nm(o), this.nm(n));} + catch(err){this.raise_nodejs_error(err, raise_unix);} + }; + MlNodeDevice.prototype.stat = + function(name, raise_unix){ + try{ + var js_stats = this.fs.statSync(this.nm(name)); + return this.stats_from_js(js_stats); + } + catch(err){this.raise_nodejs_error(err, raise_unix);} + }; + MlNodeDevice.prototype.lstat = + function(name, raise_unix){ + try{ + var js_stats = this.fs.lstatSync(this.nm(name)); + return this.stats_from_js(js_stats); + } + catch(err){this.raise_nodejs_error(err, raise_unix);} + }; + MlNodeDevice.prototype.symlink = + function(to_dir, target, path, raise_unix){ + try{ + this.fs.symlinkSync + (this.nm(target), this.nm(path), to_dir ? "dir" : "file"); + return 0; + } + catch(err){this.raise_nodejs_error(err, raise_unix);} + }; + MlNodeDevice.prototype.readlink = + function(name, raise_unix){ + try{ + var link = this.fs.readlinkSync(this.nm(name), "utf8"); + return caml_string_of_jsstring(link); + } + catch(err){this.raise_nodejs_error(err, raise_unix);} + }; + MlNodeDevice.prototype.opendir = + function(name, raise_unix){ + try{return this.fs.opendirSync(this.nm(name));} + catch(err){this.raise_nodejs_error(err, raise_unix);} + }; + MlNodeDevice.prototype.raise_nodejs_error = + function(err, raise_unix){ + var unix_error = caml_named_value("Unix.Unix_error"); + if(raise_unix && unix_error){ var - size=caml_ba_get_size(dims), - data=caml_ba_create_buffer(kind,size), - ba=caml_ba_create_unsafe(kind,layout,dims,data); - switch(kind) - {case 2:for(var i=0;i < size;i++)data[i] = reader.read8s();break; - case 3: - case 12:for(var i=0;i < size;i++)data[i] = reader.read8u();break; - case 4:for(var i=0;i < size;i++)data[i] = reader.read16s();break; - case 5:for(var i=0;i < size;i++)data[i] = reader.read16u();break; - case 6:for(var i=0;i < size;i++)data[i] = reader.read32s();break; - case 8: - case 9: - var sixty=reader.read8u(); - if(sixty) - caml_failwith - ("input_value: cannot read bigarray with 64-bit OCaml ints"); - for(var i=0;i < size;i++)data[i] = reader.read32s(); - break; - case 7: - var t=new Array(8); - for(var i=0;i < size;i++) - {for(var j=0;j < 8;j++)t[j] = reader.read8u(); - var int64=caml_int64_of_bytes(t); - ba.set(i,int64)} - break; - case 1: - var t=new Array(8); - for(var i=0;i < size;i++) - {for(var j=0;j < 8;j++)t[j] = reader.read8u(); - var f=caml_int64_float_of_bits(caml_int64_of_bytes(t)); - ba.set(i,f)} - break; - case 0: - for(var i=0;i < size;i++) - {var f=caml_int32_float_of_bits(reader.read32s());ba.set(i,f)} - break; - case 10: - for(var i=0;i < size;i++) - {var - re=caml_int32_float_of_bits(reader.read32s()), - im=caml_int32_float_of_bits(reader.read32s()); - ba.set(i,[254,re,im])} - break; - case 11: - var t=new Array(8); - for(var i=0;i < size;i++) - {for(var j=0;j < 8;j++)t[j] = reader.read8u(); - var re=caml_int64_float_of_bits(caml_int64_of_bytes(t)); - for(var j=0;j < 8;j++)t[j] = reader.read8u(); - var im=caml_int64_float_of_bits(caml_int64_of_bytes(t)); - ba.set(i,[254,re,im])} - break - } - sz[0] = (4 + num_dims) * 4; - return caml_ba_create_unsafe(kind,layout,dims,data)} - function caml_ba_compare(a,b,total){return a.compare(b,total)} - function caml_hash_mix_int64(h,v) - {h = caml_hash_mix_int(h,caml_int64_lo32(v)); - h = caml_hash_mix_int(h,caml_int64_hi32(v)); - return h} - function caml_hash_mix_float(h,v0) - {return caml_hash_mix_int64(h,caml_int64_bits_of_float(v0))} - function caml_ba_hash(ba) - {var num_elts=caml_ba_get_size(ba.dims),h=0; - switch(ba.kind) - {case 2: - case 3: - case 12: - if(num_elts > 256)num_elts = 256; - var w=0,i=0; - for(i = 0;i + 4 <= ba.data.length;i += 4) - {w - = - ba.data[i + 0] - | - ba.data[i + 1] - << - 8 - | - ba.data[i + 2] - << - 16 - | - ba.data[i + 3] - << - 24; - h = caml_hash_mix_int(h,w)} - w = 0; - switch(num_elts & 3) - {case 3:w = ba.data[i + 2] << 16; - case 2:w |= ba.data[i + 1] << 8; - case 1:w |= ba.data[i + 0];h = caml_hash_mix_int(h,w) - } - break; - case 4: - case 5: - if(num_elts > 128)num_elts = 128; - var w=0,i=0; - for(i = 0;i + 2 <= ba.data.length;i += 2) - {w = ba.data[i + 0] | ba.data[i + 1] << 16; - h = caml_hash_mix_int(h,w)} - if((num_elts & 1) != 0)h = caml_hash_mix_int(h,ba.data[i]); - break; - case 6: - if(num_elts > 64)num_elts = 64; - for(var i=0;i < num_elts;i++)h = caml_hash_mix_int(h,ba.data[i]); - break; - case 8: - case 9: - if(num_elts > 64)num_elts = 64; - for(var i=0;i < num_elts;i++)h = caml_hash_mix_int(h,ba.data[i]); - break; - case 7: - if(num_elts > 32)num_elts = 32; - num_elts *= 2; - for(var i=0;i < num_elts;i++)h = caml_hash_mix_int(h,ba.data[i]); - break; - case 10:num_elts *= 2; - case 0: - if(num_elts > 64)num_elts = 64; - for(var i=0;i < num_elts;i++)h = caml_hash_mix_float(h,ba.data[i]); - break; - case 11:num_elts *= 2; - case 1: - if(num_elts > 32)num_elts = 32; - for(var i=0;i < num_elts;i++)h = caml_hash_mix_float(h,ba.data[i]); - break - } - return h} - function caml_int32_unmarshal(reader,size) - {size[0] = 4;return reader.read32s()} - function caml_nativeint_unmarshal(reader,size) - {switch(reader.read8u()) - {case 1:size[0] = 4;return reader.read32s(); - case 2:caml_failwith("input_value: native integer value too large"); - default:caml_failwith("input_value: ill-formed native integer")}} - function caml_int64_unmarshal(reader,size) - {var t=new Array(8); - for(var j=0;j < 8;j++)t[j] = reader.read8u(); - size[0] = 8; - return caml_int64_of_bytes(t)} - function caml_int64_compare(x,y,total){return x.compare(y)} - function caml_int64_hash(v){return v.lo32() ^ v.hi32()} + args = make_unix_err_args(err.code, err.syscall, err.path, err.errno); + caml_raise_with_args(unix_error, args); + } + else + caml_raise_sys_error(err.toString()); + }; + MlNodeDevice.prototype.stats_from_js = + function(js_stats){ + var file_kind; + if(js_stats.isFile()) + file_kind = 0; + else if(js_stats.isDirectory()) + file_kind = 1; + else if(js_stats.isCharacterDevice()) + file_kind = 2; + else if(js_stats.isBlockDevice()) + file_kind = 3; + else if(js_stats.isSymbolicLink()) + file_kind = 4; + else if(js_stats.isFIFO()) + file_kind = 5; + else if(js_stats.isSocket()) file_kind = 6; + return [0, + js_stats.dev, + js_stats.ino, + file_kind, + js_stats.mode, + js_stats.nlink, + js_stats.uid, + js_stats.gid, + js_stats.rdev, + js_stats.size, + js_stats.atimeMs, + js_stats.mtimeMs, + js_stats.ctimeMs]; + }; + MlNodeDevice.prototype.constructor = MlNodeDevice; + function caml_get_root(path){ + var x = path_is_absolute(path); + if(! x) return; + return x[0] + "/"; + } + function caml_failwith(msg){ + if(! caml_global_data.Failure) + caml_global_data.Failure = [248, caml_string_of_jsbytes("Failure"), - 3]; + caml_raise_with_string(caml_global_data.Failure, msg); + } + var + caml_root = + caml_get_root(caml_current_dir) + || caml_failwith("unable to compute caml_root"), + jsoo_mount_point = []; + if(fs_node_supported()) + jsoo_mount_point.push + ({path: caml_root, device: new MlNodeDevice(caml_root)}); + else + jsoo_mount_point.push + ({path: caml_root, device: new MlFakeDevice(caml_root)}); + jsoo_mount_point.push + ({path: "/static/", device: new MlFakeDevice("/static/")}); + function resolve_fs_device(name){ var - caml_custom_ops= + path = caml_make_path(name), + name = path.join("/"), + name_slash = caml_trailing_slash(name), + res; + for(var i = 0; i < jsoo_mount_point.length; i++){ + var m = jsoo_mount_point[i]; + if + (name_slash.search(m.path) == 0 + && (! res || res.path.length < m.path.length)) + res = + {path: m.path, + device: m.device, + rest: name.substring(m.path.length, name.length)}; + } + if(! res && fs_node_supported()){ + var root = caml_get_root(name); + if(root && root.match(/^[a-zA-Z]:\/$/)){ + var m = {path: root, device: new MlNodeDevice(root)}; + jsoo_mount_point.push(m); + res = + {path: m.path, + device: m.device, + rest: name.substring(m.path.length, name.length)}; + } + } + if(res) return res; + caml_raise_sys_error("no device found for " + name_slash); + } + function caml_sys_is_directory(name){ + var root = resolve_fs_device(name), a = root.device.is_dir(root.rest); + return a ? 1 : 0; + } + function caml_raise_not_found(){ + caml_raise_constant(caml_global_data.Not_found); + } + function caml_sys_getenv(name){ + var r = jsoo_sys_getenv(caml_jsstring_of_string(name)); + if(r === undefined) caml_raise_not_found(); + return caml_string_of_jsstring(r); + } + function shift_right_nat(nat1, ofs1, len1, nat2, ofs2, nbits){ + if(nbits == 0){nat2.data[ofs2] = 0; return 0;} + var wrap = 0; + for(var i = len1 - 1; i >= 0; i--){ + var a = nat1.data[ofs1 + i] >>> 0; + nat1.data[ofs1 + i] = a >>> nbits | wrap; + wrap = a << 32 - nbits; + } + nat2.data[ofs2] = wrap; + return 0; + } + var caml_gr_state; + function caml_gr_state_get(){ + if(caml_gr_state) return caml_gr_state; + throw caml_maybe_attach_backtrace + ([0, + caml_named_value("Graphics.Graphic_failure"), + caml_string_of_jsbytes("Not initialized")]); + } + function caml_gr_point_color(x, y){ + var + s = caml_gr_state_get(), + im = s.context.getImageData(x, s.height - y, 1, 1), + d = im.data; + return (d[0] << 16) + (d[1] << 8) + d[2]; + } + function caml_runtime_events_user_resolve(){return 0;} + var MlObjectTable; + if(typeof globalThis.WeakMap === "undefined") + MlObjectTable = + function(){ + function NaiveLookup(objs){this.objs = objs;} + NaiveLookup.prototype.get = + function(v){ + for(var i = 0; i < this.objs.length; i++) + if(this.objs[i] === v) return i; + }; + NaiveLookup.prototype.set = function(){}; + return function(){ + this.objs = []; + this.lookup = new NaiveLookup(this.objs);}; + } + (); + else + MlObjectTable = + function(){this.objs = []; this.lookup = new globalThis.WeakMap();}; + MlObjectTable.prototype.store = + function(v){this.lookup.set(v, this.objs.length); this.objs.push(v);}; + MlObjectTable.prototype.recall = + function(v){ + var i = this.lookup.get(v); + return i === undefined ? undefined : this.objs.length - i; + }; + function caml_sys_rename(o, n){ + var o_root = resolve_fs_device(o), n_root = resolve_fs_device(n); + if(o_root.device != n_root.device) + caml_failwith("caml_sys_rename: cannot move file between two filesystem"); + if(! o_root.device.rename) + caml_failwith("caml_sys_rename: no implemented"); + o_root.device.rename(o_root.rest, n_root.rest); + } + function caml_log10_float(x){return Math.log10(x);} + var caml_runtime_warnings = 0; + function caml_ml_enable_runtime_warnings(bool){caml_runtime_warnings = bool; return 0; + } + function caml_classify_float(x){ + if(isFinite(x)){ + if(Math.abs(x) >= 2.2250738585072014e-308) return 0; + if(x != 0) return 1; + return 2; + } + return isNaN(x) ? 4 : 3; + } + var caml_ml_channels = new Array(); + function caml_refill(chan){ + if(chan.refill != null){ + var str = chan.refill(), str_a = caml_uint8_array_of_string(str); + if(str_a.length == 0) + chan.refill = null; + else{ + if(chan.buffer.length < chan.buffer_max + str_a.length){ + var b = new Uint8Array(chan.buffer_max + str_a.length); + b.set(chan.buffer); + chan.buffer = b; + } + chan.buffer.set(str_a, chan.buffer_max); + chan.offset += str_a.length; + chan.buffer_max += str_a.length; + } + } + else{ + var + nread = + chan.file.read + (chan.offset, + chan.buffer, + chan.buffer_max, + chan.buffer.length - chan.buffer_max); + chan.offset += nread; + chan.buffer_max += nread; + } + } + function caml_array_bound_error(){ + caml_invalid_argument("index out of bounds"); + } + function caml_ml_input_scan_line(chanid){ + var chan = caml_ml_channels[chanid], p = chan.buffer_curr; + do + if(p >= chan.buffer_max){ + if(chan.buffer_curr > 0){ + chan.buffer.set(chan.buffer.subarray(chan.buffer_curr), 0); + p -= chan.buffer_curr; + chan.buffer_max -= chan.buffer_curr; + chan.buffer_curr = 0; + } + if(chan.buffer_max >= chan.buffer.length) return - chan.buffer_max | 0; + var prev_max = chan.buffer_max; + caml_refill(chan); + if(prev_max == chan.buffer_max) return - chan.buffer_max | 0; + } + while + (chan.buffer[p++] != 10); + return p - chan.buffer_curr | 0; + } + function caml_gc_minor(unit){ + if(typeof globalThis.gc == "function") globalThis.gc(true); + return 0; + } + var + bigInt = + function(undefined){ + "use strict"; + var + BASE = 1e7, + LOG_BASE = 7, + MAX_INT = 9007199254740992, + MAX_INT_ARR = smallToArray(MAX_INT), + DEFAULT_ALPHABET = "0123456789abcdefghijklmnopqrstuvwxyz", + BigInt = joo_global_object.BigInt, + supportsNativeBigInt = typeof BigInt === "function"; + function Integer(v, radix, alphabet, caseSensitive){ + if(typeof v === "undefined") return Integer[0]; + if(typeof radix !== "undefined") + return + radix === 10 && ! alphabet + ? parseValue(v) + : parseBase(v, radix, alphabet, caseSensitive); + return parseValue(v); + } + function BigInteger(value, sign){ + this.value = value; + this.sign = sign; + this.isSmall = false; + this.caml_custom = "_z"; + } + BigInteger.prototype = Object.create(Integer.prototype); + function SmallInteger(value){ + this.value = value; + this.sign = value < 0; + this.isSmall = true; + this.caml_custom = "_z"; + } + SmallInteger.prototype = Object.create(Integer.prototype); + function NativeBigInt(value){ + this.value = value; + this.caml_custom = "_z"; + } + NativeBigInt.prototype = Object.create(Integer.prototype); + function isPrecise(n){return - MAX_INT < n && n < MAX_INT;} + function smallToArray(n){ + if(n < 1e7) return [n]; + if(n < 1e14) return [n % 1e7, Math.floor(n / 1e7)]; + return [n % 1e7, Math.floor(n / 1e7) % 1e7, Math.floor(n / 1e14)]; + } + function arrayToSmall(arr){ + trim(arr); + var length = arr.length; + if(length < 4 && compareAbs(arr, MAX_INT_ARR) < 0) + switch(length){ + case 0: + return 0; + case 1: + return arr[0]; + case 2: + return arr[0] + arr[1] * BASE; + default: return arr[0] + (arr[1] + arr[2] * BASE) * BASE; + } + return arr; + } + function trim(v){ + var i = v.length; + while(v[--i] === 0) ; + v.length = i + 1; + } + function createArray(length){ + var x = new Array(length), i = - 1; + while(++i < length) x[i] = 0; + return x; + } + function truncate(n){ + if(n > 0) return Math.floor(n); + return Math.ceil(n); + } + function add(a, b){ + var + l_a = a.length, + l_b = b.length, + r = new Array(l_a), + carry = 0, + base = BASE, + sum, + i; + for(i = 0; i < l_b; i++){ + sum = a[i] + b[i] + carry; + carry = sum >= base ? 1 : 0; + r[i] = sum - carry * base; + } + while(i < l_a){ + sum = a[i] + carry; + carry = sum === base ? 1 : 0; + r[i++] = sum - carry * base; + } + if(carry > 0) r.push(carry); + return r; + } + function addAny(a, b){ + if(a.length >= b.length) return add(a, b); + return add(b, a); + } + function addSmall(a, carry){ + var l = a.length, r = new Array(l), base = BASE, sum, i; + for(i = 0; i < l; i++){ + sum = a[i] - base + carry; + carry = Math.floor(sum / base); + r[i] = sum - carry * base; + carry += 1; + } + while(carry > 0){ + r[i++] = carry % base; + carry = Math.floor(carry / base); + } + return r; + } + BigInteger.prototype.add = + function(v){ + var n = parseValue(v); + if(this.sign !== n.sign) return this.subtract(n.negate()); + var a = this.value, b = n.value; + if(n.isSmall) + return new BigInteger(addSmall(a, Math.abs(b)), this.sign); + return new BigInteger(addAny(a, b), this.sign); + }; + BigInteger.prototype.plus = BigInteger.prototype.add; + SmallInteger.prototype.add = + function(v){ + var n = parseValue(v), a = this.value; + if(a < 0 !== n.sign) return this.subtract(n.negate()); + var b = n.value; + if(n.isSmall){ + if(isPrecise(a + b)) return new SmallInteger(a + b); + b = smallToArray(Math.abs(b)); + } + return new BigInteger(addSmall(b, Math.abs(a)), a < 0); + }; + SmallInteger.prototype.plus = SmallInteger.prototype.add; + NativeBigInt.prototype.add = + function(v){ + return new NativeBigInt(this.value + parseValue(v).value); + }; + NativeBigInt.prototype.plus = NativeBigInt.prototype.add; + function subtract(a, b){ + var + a_l = a.length, + b_l = b.length, + r = new Array(a_l), + borrow = 0, + base = BASE, + i, + difference; + for(i = 0; i < b_l; i++){ + difference = a[i] - borrow - b[i]; + if(difference < 0){difference += base; borrow = 1;} else borrow = 0; + r[i] = difference; + } + for(i = b_l; i < a_l; i++){ + difference = a[i] - borrow; + if(difference < 0) + difference += base; + else{r[i++] = difference; break;} + r[i] = difference; + } + for(; i < a_l; i++) r[i] = a[i]; + trim(r); + return r; + } + function subtractAny(a, b, sign){ + var value; + if(compareAbs(a, b) >= 0) + value = subtract(a, b); + else{value = subtract(b, a); sign = ! sign;} + value = arrayToSmall(value); + if(typeof value === "number"){ + if(sign) value = - value; + return new SmallInteger(value); + } + return new BigInteger(value, sign); + } + function subtractSmall(a, b, sign){ + var + l = a.length, + r = new Array(l), + carry = - b, + base = BASE, + i, + difference; + for(i = 0; i < l; i++){ + difference = a[i] + carry; + carry = Math.floor(difference / base); + difference %= base; + r[i] = difference < 0 ? difference + base : difference; + } + r = arrayToSmall(r); + if(typeof r === "number"){ + if(sign) r = - r; + return new SmallInteger(r); + } + return new BigInteger(r, sign); + } + BigInteger.prototype.subtract = + function(v){ + var n = parseValue(v); + if(this.sign !== n.sign) return this.add(n.negate()); + var a = this.value, b = n.value; + if(n.isSmall) return subtractSmall(a, Math.abs(b), this.sign); + return subtractAny(a, b, this.sign); + }; + BigInteger.prototype.minus = BigInteger.prototype.subtract; + SmallInteger.prototype.subtract = + function(v){ + var n = parseValue(v), a = this.value; + if(a < 0 !== n.sign) return this.add(n.negate()); + var b = n.value; + if(n.isSmall) return new SmallInteger(a - b); + return subtractSmall(b, Math.abs(a), a >= 0); + }; + SmallInteger.prototype.minus = SmallInteger.prototype.subtract; + NativeBigInt.prototype.subtract = + function(v){ + return new NativeBigInt(this.value - parseValue(v).value); + }; + NativeBigInt.prototype.minus = NativeBigInt.prototype.subtract; + BigInteger.prototype.negate = + function(){return new BigInteger(this.value, ! this.sign);}; + SmallInteger.prototype.negate = + function(){ + var sign = this.sign, small = new SmallInteger(- this.value); + small.sign = ! sign; + return small; + }; + NativeBigInt.prototype.negate = + function(){return new NativeBigInt(- this.value);}; + BigInteger.prototype.abs = + function(){return new BigInteger(this.value, false);}; + SmallInteger.prototype.abs = + function(){return new SmallInteger(Math.abs(this.value));}; + NativeBigInt.prototype.abs = + function(){ + return new NativeBigInt(this.value >= 0 ? this.value : - this.value); + }; + function multiplyLong(a, b){ + var + a_l = a.length, + b_l = b.length, + l = a_l + b_l, + r = createArray(l), + base = BASE, + product, + carry, + i, + a_i, + b_j; + for(i = 0; i < a_l; ++i){ + a_i = a[i]; + for(var j = 0; j < b_l; ++j){ + b_j = b[j]; + product = a_i * b_j + r[i + j]; + carry = Math.floor(product / base); + r[i + j] = product - carry * base; + r[i + j + 1] += carry; + } + } + trim(r); + return r; + } + function multiplySmall(a, b){ + var + l = a.length, + r = new Array(l), + base = BASE, + carry = 0, + product, + i; + for(i = 0; i < l; i++){ + product = a[i] * b + carry; + carry = Math.floor(product / base); + r[i] = product - carry * base; + } + while(carry > 0){ + r[i++] = carry % base; + carry = Math.floor(carry / base); + } + return r; + } + function shiftLeft(x, n){ + var r = []; + while(n-- > 0) r.push(0); + return r.concat(x); + } + function multiplyKaratsuba(x, y){ + var n = Math.max(x.length, y.length); + if(n <= 30) return multiplyLong(x, y); + n = Math.ceil(n / 2); + var + b = x.slice(n), + a = x.slice(0, n), + d = y.slice(n), + c = y.slice(0, n), + ac = multiplyKaratsuba(a, c), + bd = multiplyKaratsuba(b, d), + abcd = multiplyKaratsuba(addAny(a, b), addAny(c, d)), + product = + addAny + (addAny(ac, shiftLeft(subtract(subtract(abcd, ac), bd), n)), + shiftLeft(bd, 2 * n)); + trim(product); + return product; + } + function useKaratsuba(l1, l2){ + return - (0.012 * l1) - 0.012 * l2 + 0.000015 * l1 * l2 > 0; + } + BigInteger.prototype.multiply = + function(v){ + var + n = parseValue(v), + a = this.value, + b = n.value, + sign = this.sign !== n.sign, + abs; + if(n.isSmall){ + if(b === 0) return Integer[0]; + if(b === 1) return this; + if(b === - 1) return this.negate(); + abs = Math.abs(b); + if(abs < BASE) return new BigInteger(multiplySmall(a, abs), sign); + b = smallToArray(abs); + } + if(useKaratsuba(a.length, b.length)) + return new BigInteger(multiplyKaratsuba(a, b), sign); + return new BigInteger(multiplyLong(a, b), sign); + }; + BigInteger.prototype.times = BigInteger.prototype.multiply; + function multiplySmallAndArray(a, b, sign){ + if(a < BASE) return new BigInteger(multiplySmall(b, a), sign); + return new BigInteger(multiplyLong(b, smallToArray(a)), sign); + } + SmallInteger.prototype._multiplyBySmall = + function(a){ + if(isPrecise(a.value * this.value)) + return new SmallInteger(a.value * this.value); + return multiplySmallAndArray + (Math.abs(a.value), + smallToArray(Math.abs(this.value)), + this.sign !== a.sign); + }; + BigInteger.prototype._multiplyBySmall = + function(a){ + if(a.value === 0) return Integer[0]; + if(a.value === 1) return this; + if(a.value === - 1) return this.negate(); + return multiplySmallAndArray + (Math.abs(a.value), this.value, this.sign !== a.sign); + }; + SmallInteger.prototype.multiply = + function(v){return parseValue(v)._multiplyBySmall(this);}; + SmallInteger.prototype.times = SmallInteger.prototype.multiply; + NativeBigInt.prototype.multiply = + function(v){ + return new NativeBigInt(this.value * parseValue(v).value); + }; + NativeBigInt.prototype.times = NativeBigInt.prototype.multiply; + function square(a){ + var + l = a.length, + r = createArray(l + l), + base = BASE, + product, + carry, + i, + a_i, + a_j; + for(i = 0; i < l; i++){ + a_i = a[i]; + carry = 0 - a_i * a_i; + for(var j = i; j < l; j++){ + a_j = a[j]; + product = 2 * (a_i * a_j) + r[i + j] + carry; + carry = Math.floor(product / base); + r[i + j] = product - carry * base; + } + r[i + l] = carry; + } + trim(r); + return r; + } + BigInteger.prototype.square = + function(){return new BigInteger(square(this.value), false);}; + SmallInteger.prototype.square = + function(){ + var value = this.value * this.value; + if(isPrecise(value)) return new SmallInteger(value); + return new + BigInteger + (square(smallToArray(Math.abs(this.value))), false); + }; + NativeBigInt.prototype.square = + function(v){return new NativeBigInt(this.value * this.value);}; + function divMod1(a, b){ + var + a_l = a.length, + b_l = b.length, + base = BASE, + result = createArray(b.length), + divisorMostSignificantDigit = b[b_l - 1], + lambda = Math.ceil(base / (2 * divisorMostSignificantDigit)), + remainder = multiplySmall(a, lambda), + divisor = multiplySmall(b, lambda), + quotientDigit, + shift, + carry, + borrow, + i, + l, + q; + if(remainder.length <= a_l) remainder.push(0); + divisor.push(0); + divisorMostSignificantDigit = divisor[b_l - 1]; + for(shift = a_l - b_l; shift >= 0; shift--){ + quotientDigit = base - 1; + if(remainder[shift + b_l] !== divisorMostSignificantDigit) + quotientDigit = + Math.floor + ((remainder[shift + b_l] * base + remainder[shift + b_l - 1]) + / divisorMostSignificantDigit); + carry = 0; + borrow = 0; + l = divisor.length; + for(i = 0; i < l; i++){ + carry += quotientDigit * divisor[i]; + q = Math.floor(carry / base); + borrow += remainder[shift + i] - (carry - q * base); + carry = q; + if(borrow < 0){ + remainder[shift + i] = borrow + base; + borrow = - 1; + } + else{remainder[shift + i] = borrow; borrow = 0;} + } + while(borrow !== 0){ + quotientDigit -= 1; + carry = 0; + for(i = 0; i < l; i++){ + carry += remainder[shift + i] - base + divisor[i]; + if(carry < 0){ + remainder[shift + i] = carry + base; + carry = 0; + } + else{remainder[shift + i] = carry; carry = 1;} + } + borrow += carry; + } + result[shift] = quotientDigit; + } + remainder = divModSmall(remainder, lambda)[0]; + return [arrayToSmall(result), arrayToSmall(remainder)]; + } + function divMod2(a, b){ + var + a_l = a.length, + b_l = b.length, + result = [], + part = [], + base = BASE, + guess, + xlen, + highx, + highy, + check; + while(a_l){ + part.unshift(a[--a_l]); + trim(part); + if(compareAbs(part, b) < 0){result.push(0); continue;} + xlen = part.length; + highx = part[xlen - 1] * base + part[xlen - 2]; + highy = b[b_l - 1] * base + b[b_l - 2]; + if(xlen > b_l) highx = (highx + 1) * base; + guess = Math.ceil(highx / highy); + do{ + check = multiplySmall(b, guess); + if(compareAbs(check, part) <= 0) break; + guess--; + } + while + (guess); + result.push(guess); + part = subtract(part, check); + } + result.reverse(); + return [arrayToSmall(result), arrayToSmall(part)]; + } + function divModSmall(value, lambda){ + var + length = value.length, + quotient = createArray(length), + base = BASE, + i, + q, + remainder, + divisor; + remainder = 0; + for(i = length - 1; i >= 0; --i){ + divisor = remainder * base + value[i]; + q = truncate(divisor / lambda); + remainder = divisor - q * lambda; + quotient[i] = q | 0; + } + return [quotient, remainder | 0]; + } + function divModAny(self, v){ + var value, n = parseValue(v); + if(supportsNativeBigInt) + return [new NativeBigInt(self.value / n.value), + new NativeBigInt(self.value % n.value)]; + var a = self.value, b = n.value, quotient; + if(b === 0) throw new Error("Cannot divide by zero"); + if(self.isSmall){ + if(n.isSmall) + return [new SmallInteger(truncate(a / b)), new SmallInteger(a % b)]; + return [Integer[0], self]; + } + if(n.isSmall){ + if(b === 1) return [self, Integer[0]]; + if(b == - 1) return [self.negate(), Integer[0]]; + var abs = Math.abs(b); + if(abs < BASE){ + value = divModSmall(a, abs); + quotient = arrayToSmall(value[0]); + var remainder = value[1]; + if(self.sign) remainder = - remainder; + if(typeof quotient === "number"){ + if(self.sign !== n.sign) quotient = - quotient; + return [new SmallInteger(quotient), new SmallInteger(remainder)]; + } + return [new BigInteger(quotient, self.sign !== n.sign), + new SmallInteger(remainder)]; + } + b = smallToArray(abs); + } + var comparison = compareAbs(a, b); + if(comparison === - 1) return [Integer[0], self]; + if(comparison === 0) + return [Integer[self.sign === n.sign ? 1 : - 1], Integer[0]]; + if(a.length + b.length <= 200) + value = divMod1(a, b); + else + value = divMod2(a, b); + quotient = value[0]; + var qSign = self.sign !== n.sign, mod = value[1], mSign = self.sign; + if(typeof quotient === "number"){ + if(qSign) quotient = - quotient; + quotient = new SmallInteger(quotient); + } + else + quotient = new BigInteger(quotient, qSign); + if(typeof mod === "number"){ + if(mSign) mod = - mod; + mod = new SmallInteger(mod); + } + else + mod = new BigInteger(mod, mSign); + return [quotient, mod]; + } + BigInteger.prototype.divmod = + function(v){ + var result = divModAny(this, v); + return {quotient: result[0], remainder: result[1]}; + }; + NativeBigInt.prototype.divmod = + SmallInteger.prototype.divmod = BigInteger.prototype.divmod; + BigInteger.prototype.divide = + function(v){return divModAny(this, v)[0];}; + NativeBigInt.prototype.over = + NativeBigInt.prototype.divide = + function(v){ + return new NativeBigInt(this.value / parseValue(v).value); + }; + SmallInteger.prototype.over = + SmallInteger.prototype.divide = + BigInteger.prototype.over = BigInteger.prototype.divide; + BigInteger.prototype.mod = function(v){return divModAny(this, v)[1];}; + NativeBigInt.prototype.mod = + NativeBigInt.prototype.remainder = + function(v){ + return new NativeBigInt(this.value % parseValue(v).value); + }; + SmallInteger.prototype.remainder = + SmallInteger.prototype.mod = + BigInteger.prototype.remainder = BigInteger.prototype.mod; + BigInteger.prototype.pow = + function(v){ + var n = parseValue(v), a = this.value, b = n.value, value, x, y; + if(b === 0) return Integer[1]; + if(a === 0) return Integer[0]; + if(a === 1) return Integer[1]; + if(a === - 1) return n.isEven() ? Integer[1] : Integer[- 1]; + if(n.sign) return Integer[0]; + if(! n.isSmall) + throw new Error("The exponent " + n.toString() + " is too large."); + if(this.isSmall) + if(isPrecise(value = Math.pow(a, b))) + return new SmallInteger(truncate(value)); + x = this; + y = Integer[1]; + while(true){ + if(b & 1 === 1){y = y.times(x); --b;} + if(b === 0) break; + b /= 2; + x = x.square(); + } + return y; + }; + SmallInteger.prototype.pow = BigInteger.prototype.pow; + NativeBigInt.prototype.pow = + function(v){ + var + n = parseValue(v), + a = this.value, + b = n.value, + _0 = BigInt(0), + _1 = BigInt(1), + _2 = BigInt(2); + if(b === _0) return Integer[1]; + if(a === _0) return Integer[0]; + if(a === _1) return Integer[1]; + if(a === BigInt(- 1)) return n.isEven() ? Integer[1] : Integer[- 1]; + if(n.isNegative()) return new NativeBigInt(_0); + var x = this, y = Integer[1]; + while(true){ + if((b & _1) === _1){y = y.times(x); --b;} + if(b === _0) break; + b /= _2; + x = x.square(); + } + return y; + }; + BigInteger.prototype.modPow = + function(exp, mod){ + exp = parseValue(exp); + mod = parseValue(mod); + if(mod.isZero()) + throw new Error("Cannot take modPow with modulus 0"); + var r = Integer[1], base = this.mod(mod); + if(exp.isNegative()){ + exp = exp.multiply(Integer[- 1]); + base = base.modInv(mod); + } + while(exp.isPositive()){ + if(base.isZero()) return Integer[0]; + if(exp.isOdd()) r = r.multiply(base).mod(mod); + exp = exp.divide(2); + base = base.square().mod(mod); + } + return r; + }; + NativeBigInt.prototype.modPow = + SmallInteger.prototype.modPow = BigInteger.prototype.modPow; + function compareAbs(a, b){ + if(a.length !== b.length) return a.length > b.length ? 1 : - 1; + for(var i = a.length - 1; i >= 0; i--) + if(a[i] !== b[i]) return a[i] > b[i] ? 1 : - 1; + return 0; + } + BigInteger.prototype.compareAbs = + function(v){ + var n = parseValue(v), a = this.value, b = n.value; + if(n.isSmall) return 1; + return compareAbs(a, b); + }; + SmallInteger.prototype.compareAbs = + function(v){ + var n = parseValue(v), a = Math.abs(this.value), b = n.value; + if(n.isSmall){ + b = Math.abs(b); + return a === b ? 0 : a > b ? 1 : - 1; + } + return - 1; + }; + NativeBigInt.prototype.compareAbs = + function(v){ + var a = this.value, b = parseValue(v).value; + a = a >= 0 ? a : - a; + b = b >= 0 ? b : - b; + return a === b ? 0 : a > b ? 1 : - 1; + }; + BigInteger.prototype.compare = + function(v){ + if(v === Infinity) return - 1; + if(v === - Infinity) return 1; + var n = parseValue(v), a = this.value, b = n.value; + if(this.sign !== n.sign) return n.sign ? 1 : - 1; + if(n.isSmall) return this.sign ? - 1 : 1; + return compareAbs(a, b) * (this.sign ? - 1 : 1); + }; + BigInteger.prototype.compareTo = BigInteger.prototype.compare; + SmallInteger.prototype.compare = + function(v){ + if(v === Infinity) return - 1; + if(v === - Infinity) return 1; + var n = parseValue(v), a = this.value, b = n.value; + if(n.isSmall) return a == b ? 0 : a > b ? 1 : - 1; + if(a < 0 !== n.sign) return a < 0 ? - 1 : 1; + return a < 0 ? 1 : - 1; + }; + SmallInteger.prototype.compareTo = SmallInteger.prototype.compare; + NativeBigInt.prototype.compare = + function(v){ + if(v === Infinity) return - 1; + if(v === - Infinity) return 1; + var a = this.value, b = parseValue(v).value; + return a === b ? 0 : a > b ? 1 : - 1; + }; + NativeBigInt.prototype.compareTo = NativeBigInt.prototype.compare; + BigInteger.prototype.equals = + function(v){return this.compare(v) === 0;}; + NativeBigInt.prototype.eq = + NativeBigInt.prototype.equals = + SmallInteger.prototype.eq = + SmallInteger.prototype.equals = + BigInteger.prototype.eq = BigInteger.prototype.equals; + BigInteger.prototype.notEquals = + function(v){return this.compare(v) !== 0;}; + NativeBigInt.prototype.neq = + NativeBigInt.prototype.notEquals = + SmallInteger.prototype.neq = + SmallInteger.prototype.notEquals = + BigInteger.prototype.neq = BigInteger.prototype.notEquals; + BigInteger.prototype.greater = + function(v){return this.compare(v) > 0;}; + NativeBigInt.prototype.gt = + NativeBigInt.prototype.greater = + SmallInteger.prototype.gt = + SmallInteger.prototype.greater = + BigInteger.prototype.gt = BigInteger.prototype.greater; + BigInteger.prototype.lesser = function(v){return this.compare(v) < 0;}; + NativeBigInt.prototype.lt = + NativeBigInt.prototype.lesser = + SmallInteger.prototype.lt = + SmallInteger.prototype.lesser = + BigInteger.prototype.lt = BigInteger.prototype.lesser; + BigInteger.prototype.greaterOrEquals = + function(v){return this.compare(v) >= 0;}; + NativeBigInt.prototype.geq = + NativeBigInt.prototype.greaterOrEquals = + SmallInteger.prototype.geq = + SmallInteger.prototype.greaterOrEquals = + BigInteger.prototype.geq = BigInteger.prototype.greaterOrEquals; + BigInteger.prototype.lesserOrEquals = + function(v){return this.compare(v) <= 0;}; + NativeBigInt.prototype.leq = + NativeBigInt.prototype.lesserOrEquals = + SmallInteger.prototype.leq = + SmallInteger.prototype.lesserOrEquals = + BigInteger.prototype.leq = BigInteger.prototype.lesserOrEquals; + BigInteger.prototype.isEven = + function(){return (this.value[0] & 1) === 0;}; + SmallInteger.prototype.isEven = + function(){return (this.value & 1) === 0;}; + NativeBigInt.prototype.isEven = + function(){return (this.value & BigInt(1)) === BigInt(0);}; + BigInteger.prototype.isOdd = + function(){return (this.value[0] & 1) === 1;}; + SmallInteger.prototype.isOdd = + function(){return (this.value & 1) === 1;}; + NativeBigInt.prototype.isOdd = + function(){return (this.value & BigInt(1)) === BigInt(1);}; + BigInteger.prototype.isPositive = function(){return ! this.sign;}; + SmallInteger.prototype.isPositive = function(){return this.value > 0;}; + NativeBigInt.prototype.isPositive = SmallInteger.prototype.isPositive; + BigInteger.prototype.isNegative = function(){return this.sign;}; + SmallInteger.prototype.isNegative = function(){return this.value < 0;}; + NativeBigInt.prototype.isNegative = SmallInteger.prototype.isNegative; + BigInteger.prototype.isUnit = function(){return false;}; + SmallInteger.prototype.isUnit = + function(){return Math.abs(this.value) === 1;}; + NativeBigInt.prototype.isUnit = + function(){return this.abs().value === BigInt(1);}; + BigInteger.prototype.isZero = function(){return false;}; + SmallInteger.prototype.isZero = function(){return this.value === 0;}; + NativeBigInt.prototype.isZero = + function(){return this.value === BigInt(0);}; + BigInteger.prototype.isDivisibleBy = + function(v){ + var n = parseValue(v); + if(n.isZero()) return false; + if(n.isUnit()) return true; + if(n.compareAbs(2) === 0) return this.isEven(); + return this.mod(n).isZero(); + }; + NativeBigInt.prototype.isDivisibleBy = + SmallInteger.prototype.isDivisibleBy = BigInteger.prototype.isDivisibleBy; + function isBasicPrime(v){ + var n = v.abs(); + if(n.isUnit()) return false; + if(n.equals(2) || n.equals(3) || n.equals(5)) return true; + if(n.isEven() || n.isDivisibleBy(3) || n.isDivisibleBy(5)) + return false; + if(n.lesser(49)) return true; + } + function millerRabinTest(n, a){ + var nPrev = n.prev(), b = nPrev, r = 0, d, t, i, x; + while(b.isEven()) b = b.divide(2), r++; + next: + for(i = 0; i < a.length; i++){ + if(n.lesser(a[i])) continue; + x = bigInt(a[i]).modPow(b, n); + if(x.isUnit() || x.equals(nPrev)) continue; + for(d = r - 1; d != 0; d--){ + x = x.square().mod(n); + if(x.isUnit()) return false; + if(x.equals(nPrev)) continue next; + } + return false; + } + return true; + } + BigInteger.prototype.isPrime = + function(strict){ + var isPrime = isBasicPrime(this); + if(isPrime !== undefined) return isPrime; + var n = this.abs(), bits = n.bitLength(); + if(bits <= 64) + return millerRabinTest + (n, [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]); + var + logN = Math.log(2) * bits.toJSNumber(), + t = Math.ceil(strict === true ? 2 * Math.pow(logN, 2) : logN); + for(var a = [], i = 0; i < t; i++) a.push(bigInt(i + 2)); + return millerRabinTest(n, a); + }; + NativeBigInt.prototype.isPrime = + SmallInteger.prototype.isPrime = BigInteger.prototype.isPrime; + BigInteger.prototype.isProbablePrime = + function(iterations){ + var isPrime = isBasicPrime(this); + if(isPrime !== undefined) return isPrime; + var n = this.abs(), t = iterations === undefined ? 5 : iterations; + for(var a = [], i = 0; i < t; i++) + a.push(bigInt.randBetween(2, n.minus(2))); + return millerRabinTest(n, a); + }; + NativeBigInt.prototype.isProbablePrime = + SmallInteger.prototype.isProbablePrime = BigInteger.prototype.isProbablePrime; + BigInteger.prototype.modInv = + function(n){ + var + t = bigInt.zero, + newT = bigInt.one, + r = parseValue(n), + newR = this.abs(), + q, + lastT, + lastR; + while(! newR.isZero()){ + q = r.divide(newR); + lastT = t; + lastR = r; + t = newT; + r = newR; + newT = lastT.subtract(q.multiply(newT)); + newR = lastR.subtract(q.multiply(newR)); + } + if(! r.isUnit()) + throw new + Error + (this.toString() + " and " + n.toString() + + " are not co-prime"); + if(t.compare(0) === - 1) t = t.add(n); + if(this.isNegative()) return t.negate(); + return t; + }; + NativeBigInt.prototype.modInv = + SmallInteger.prototype.modInv = BigInteger.prototype.modInv; + BigInteger.prototype.next = + function(){ + var value = this.value; + if(this.sign) return subtractSmall(value, 1, this.sign); + return new BigInteger(addSmall(value, 1), this.sign); + }; + SmallInteger.prototype.next = + function(){ + var value = this.value; + if(value + 1 < MAX_INT) return new SmallInteger(value + 1); + return new BigInteger(MAX_INT_ARR, false); + }; + NativeBigInt.prototype.next = + function(){return new NativeBigInt(this.value + BigInt(1));}; + BigInteger.prototype.prev = + function(){ + var value = this.value; + if(this.sign) return new BigInteger(addSmall(value, 1), true); + return subtractSmall(value, 1, this.sign); + }; + SmallInteger.prototype.prev = + function(){ + var value = this.value; + if(value - 1 > - MAX_INT) return new SmallInteger(value - 1); + return new BigInteger(MAX_INT_ARR, true); + }; + NativeBigInt.prototype.prev = + function(){return new NativeBigInt(this.value - BigInt(1));}; + var powersOfTwo = [1]; + while(2 * powersOfTwo[powersOfTwo.length - 1] <= BASE) + powersOfTwo.push(2 * powersOfTwo[powersOfTwo.length - 1]); + var + powers2Length = powersOfTwo.length, + highestPower2 = powersOfTwo[powers2Length - 1]; + function shift_isSmall(n){return Math.abs(n) <= BASE;} + BigInteger.prototype.shiftLeft = + function(v){ + var n = parseValue(v).toJSNumber(); + if(! shift_isSmall(n)) + throw new Error(String(n) + " is too large for shifting."); + if(n < 0) return this.shiftRight(- n); + var result = this; + if(result.isZero()) return result; + while(n >= powers2Length){ + result = result.multiply(highestPower2); + n -= powers2Length - 1; + } + return result.multiply(powersOfTwo[n]); + }; + NativeBigInt.prototype.shiftLeft = + SmallInteger.prototype.shiftLeft = BigInteger.prototype.shiftLeft; + BigInteger.prototype.shiftRight = + function(v){ + var remQuo, n = parseValue(v).toJSNumber(); + if(! shift_isSmall(n)) + throw new Error(String(n) + " is too large for shifting."); + if(n < 0) return this.shiftLeft(- n); + var result = this; + while(n >= powers2Length){ + if(result.isZero() || result.isNegative() && result.isUnit()) + return result; + remQuo = divModAny(result, highestPower2); + result = remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0]; + n -= powers2Length - 1; + } + remQuo = divModAny(result, powersOfTwo[n]); + return remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0]; + }; + NativeBigInt.prototype.shiftRight = + SmallInteger.prototype.shiftRight = BigInteger.prototype.shiftRight; + function bitwise(x, y, fn){ + y = parseValue(y); + var + xSign = x.isNegative(), + ySign = y.isNegative(), + xRem = xSign ? x.not() : x, + yRem = ySign ? y.not() : y, + xDigit = 0, + yDigit = 0, + xDivMod = null, + yDivMod = null, + result = []; + while(! xRem.isZero() || ! yRem.isZero()){ + xDivMod = divModAny(xRem, highestPower2); + xDigit = xDivMod[1].toJSNumber(); + if(xSign) xDigit = highestPower2 - 1 - xDigit; + yDivMod = divModAny(yRem, highestPower2); + yDigit = yDivMod[1].toJSNumber(); + if(ySign) yDigit = highestPower2 - 1 - yDigit; + xRem = xDivMod[0]; + yRem = yDivMod[0]; + result.push(fn(xDigit, yDigit)); + } + var + sum = + fn(xSign ? 1 : 0, ySign ? 1 : 0) !== 0 ? bigInt(- 1) : bigInt(0); + for(var i = result.length - 1; i >= 0; i -= 1) + sum = sum.multiply(highestPower2).add(bigInt(result[i])); + return sum; + } + BigInteger.prototype.not = function(){return this.negate().prev();}; + NativeBigInt.prototype.not = + SmallInteger.prototype.not = BigInteger.prototype.not; + BigInteger.prototype.and = + function(n){return bitwise(this, n, function(a, b){return a & b;});}; + NativeBigInt.prototype.and = + SmallInteger.prototype.and = BigInteger.prototype.and; + BigInteger.prototype.or = + function(n){return bitwise(this, n, function(a, b){return a | b;});}; + NativeBigInt.prototype.or = + SmallInteger.prototype.or = BigInteger.prototype.or; + BigInteger.prototype.xor = + function(n){return bitwise(this, n, function(a, b){return a ^ b;});}; + NativeBigInt.prototype.xor = + SmallInteger.prototype.xor = BigInteger.prototype.xor; + var + LOBMASK_I = 1 << 30, + LOBMASK_BI = (BASE & - BASE) * (BASE & - BASE) | LOBMASK_I; + function roughLOB(n){ + var + v = n.value, + x = + typeof v === "number" + ? v | LOBMASK_I + : typeof + v + === "bigint" + ? v | BigInt(LOBMASK_I) + : v[0] + v[1] * BASE | LOBMASK_BI; + return x & - x; + } + function integerLogarithm(value, base){ + if(base.compareTo(value) <= 0){ + var + tmp = integerLogarithm(value, base.square(base)), + p = tmp.p, + e = tmp.e, + t = p.multiply(base); + return t.compareTo(value) <= 0 + ? {p: t, e: e * 2 + 1} + : {p: p, e: e * 2}; + } + return {p: bigInt(1), e: 0}; + } + BigInteger.prototype.bitLength = + function(){ + var n = this; + if(n.compareTo(bigInt(0)) < 0) n = n.negate().subtract(bigInt(1)); + if(n.compareTo(bigInt(0)) === 0) return bigInt(0); + return bigInt(integerLogarithm(n, bigInt(2)).e).add(bigInt(1)); + }; + NativeBigInt.prototype.bitLength = + SmallInteger.prototype.bitLength = BigInteger.prototype.bitLength; + function max(a, b){ + a = parseValue(a); + b = parseValue(b); + return a.greater(b) ? a : b; + } + function min(a, b){ + a = parseValue(a); + b = parseValue(b); + return a.lesser(b) ? a : b; + } + function gcd(a, b){ + a = parseValue(a).abs(); + b = parseValue(b).abs(); + if(a.equals(b)) return a; + if(a.isZero()) return b; + if(b.isZero()) return a; + var c = Integer[1], d, t; + while(a.isEven() && b.isEven()){ + d = min(roughLOB(a), roughLOB(b)); + a = a.divide(d); + b = b.divide(d); + c = c.multiply(d); + } + while(a.isEven()) a = a.divide(roughLOB(a)); + do{ + while(b.isEven()) b = b.divide(roughLOB(b)); + if(a.greater(b)){t = b; b = a; a = t;} + b = b.subtract(a); + } + while + (! b.isZero()); + return c.isUnit() ? a : a.multiply(c); + } + function lcm(a, b){ + a = parseValue(a).abs(); + b = parseValue(b).abs(); + return a.divide(gcd(a, b)).multiply(b); + } + function randBetween(a, b){ + a = parseValue(a); + b = parseValue(b); + var + low = min(a, b), + high = max(a, b), + range = high.subtract(low).add(1); + if(range.isSmall) return low.add(Math.floor(Math.random() * range)); + var + digits = toBase(range, BASE).value, + result = [], + restricted = true; + for(var i = 0; i < digits.length; i++){ + var + top = restricted ? digits[i] : BASE, + digit = truncate(Math.random() * top); + result.push(digit); + if(digit < top) restricted = false; + } + return low.add(Integer.fromArray(result, BASE, false)); + } + function parseBase(text, base, alphabet, caseSensitive){ + alphabet = alphabet || DEFAULT_ALPHABET; + text = String(text); + if(! caseSensitive){ + text = text.toLowerCase(); + alphabet = alphabet.toLowerCase(); + } + var + length = text.length, + i, + absBase = Math.abs(base), + alphabetValues = {}; + for(i = 0; i < alphabet.length; i++) alphabetValues[alphabet[i]] = i; + for(i = 0; i < length; i++){ + var c = text[i]; + if(c === "-") continue; + if(c in alphabetValues) + if(alphabetValues[c] >= absBase){ + if(c === "1" && absBase === 1) continue; + throw new Error(c + " is not a valid digit in base " + base + "."); + } + } + base = parseValue(base); + var digits = [], isNegative = text[0] === "-"; + for(i = isNegative ? 1 : 0; i < text.length; i++){ + var c = text[i]; + if(c in alphabetValues) + digits.push(parseValue(alphabetValues[c])); + else if(c === "<"){ + var start = i; + do i++;while(text[i] !== ">" && i < text.length); + digits.push(parseValue(text.slice(start + 1, i))); + } + else + throw new Error(c + " is not a valid character"); + } + return parseBaseFromArray(digits, base, isNegative); + } + function parseBaseFromArray(digits, base, isNegative){ + var val = Integer[0], pow = Integer[1], i; + for(i = digits.length - 1; i >= 0; i--){ + val = val.add(digits[i].times(pow)); + pow = pow.times(base); + } + return isNegative ? val.negate() : val; + } + function stringify(digit, alphabet){ + alphabet = alphabet || DEFAULT_ALPHABET; + if(digit < alphabet.length) return alphabet[digit]; + return "<" + digit + ">"; + } + function toBase(n, base){ + base = bigInt(base); + if(base.isZero()){ + if(n.isZero()) return {value: [0], isNegative: false}; + throw new Error("Cannot convert nonzero numbers to base 0."); + } + if(base.equals(- 1)){ + if(n.isZero()) return {value: [0], isNegative: false}; + if(n.isNegative()) + return {value: + [].concat.apply + ([], + Array.apply(null, Array(- n.toJSNumber())).map + (Array.prototype.valueOf, [1, 0])), + isNegative: false}; + var + arr = + Array.apply(null, Array(n.toJSNumber() - 1)).map + (Array.prototype.valueOf, [0, 1]); + arr.unshift([1]); + return {value: [].concat.apply([], arr), isNegative: false}; + } + var neg = false; + if(n.isNegative() && base.isPositive()){neg = true; n = n.abs();} + if(base.isUnit()){ + if(n.isZero()) return {value: [0], isNegative: false}; + return {value: + Array.apply(null, Array(n.toJSNumber())).map + (Number.prototype.valueOf, 1), + isNegative: neg}; + } + var out = [], left = n, divmod; + while(left.isNegative() || left.compareAbs(base) >= 0){ + divmod = left.divmod(base); + left = divmod.quotient; + var digit = divmod.remainder; + if(digit.isNegative()){ + digit = base.minus(digit).abs(); + left = left.next(); + } + out.push(digit.toJSNumber()); + } + out.push(left.toJSNumber()); + return {value: out.reverse(), isNegative: neg}; + } + function toBaseString(n, base, alphabet){ + var arr = toBase(n, base); + return (arr.isNegative ? "-" : "") + + + arr.value.map(function(x){return stringify(x, alphabet);}).join + (""); + } + BigInteger.prototype.toArray = + function(radix){return toBase(this, radix);}; + SmallInteger.prototype.toArray = + function(radix){return toBase(this, radix);}; + NativeBigInt.prototype.toArray = + function(radix){return toBase(this, radix);}; + BigInteger.prototype.toString = + function(radix, alphabet){ + if(radix === undefined) radix = 10; + if(radix !== 10) return toBaseString(this, radix, alphabet); + var + v = this.value, + l = v.length, + str = String(v[--l]), + zeros = "0000000", + digit; + while(--l >= 0){ + digit = String(v[l]); + str += zeros.slice(digit.length) + digit; + } + var sign = this.sign ? "-" : ""; + return sign + str; + }; + SmallInteger.prototype.toString = + function(radix, alphabet){ + if(radix === undefined) radix = 10; + if(radix != 10) return toBaseString(this, radix, alphabet); + return String(this.value); + }; + NativeBigInt.prototype.toString = SmallInteger.prototype.toString; + NativeBigInt.prototype.toJSON = + BigInteger.prototype.toJSON = + SmallInteger.prototype.toJSON = function(){return this.toString();}; + BigInteger.prototype.valueOf = + function(){return parseInt(this.toString(), 10);}; + BigInteger.prototype.toJSNumber = BigInteger.prototype.valueOf; + SmallInteger.prototype.valueOf = function(){return this.value;}; + SmallInteger.prototype.toJSNumber = SmallInteger.prototype.valueOf; + NativeBigInt.prototype.valueOf = + NativeBigInt.prototype.toJSNumber = + function(){return parseInt(this.toString(), 10);}; + function parseStringValue(v){ + if(isPrecise(+ v)){ + var x = + v; + if(x === truncate(x)) + return supportsNativeBigInt + ? new NativeBigInt(BigInt(x)) + : new SmallInteger(x); + throw new Error("Invalid integer: " + v); + } + var sign = v[0] === "-"; + if(sign) v = v.slice(1); + var split = v.split(/e/i); + if(split.length > 2) + throw new Error("Invalid integer: " + split.join("e")); + if(split.length === 2){ + var exp = split[1]; + if(exp[0] === "+") exp = exp.slice(1); + exp = + exp; + if(exp !== truncate(exp) || ! isPrecise(exp)) + throw new + Error + ("Invalid integer: " + exp + " is not a valid exponent."); + var text = split[0], decimalPlace = text.indexOf("."); + if(decimalPlace >= 0){ + exp -= text.length - decimalPlace - 1; + text = text.slice(0, decimalPlace) + text.slice(decimalPlace + 1); + } + if(exp < 0) + throw new + Error + ("Cannot include negative exponent part for integers"); + text += new Array(exp + 1).join("0"); + v = text; + } + var isValid = /^([0-9][0-9]*)$/.test(v); + if(! isValid) throw new Error("Invalid integer: " + v); + if(supportsNativeBigInt) + return new NativeBigInt(BigInt(sign ? "-" + v : v)); + var r = [], max = v.length, l = LOG_BASE, min = max - l; + while(max > 0){ + r.push(+ v.slice(min, max)); + min -= l; + if(min < 0) min = 0; + max -= l; + } + trim(r); + return new BigInteger(r, sign); + } + function parseNumberValue(v){ + if(supportsNativeBigInt) return new NativeBigInt(BigInt(v)); + if(isPrecise(v)){ + if(v !== truncate(v)) throw new Error(v + " is not an integer."); + return new SmallInteger(v); + } + return parseStringValue(v.toString()); + } + function parseValue(v){ + if(typeof v === "number") return parseNumberValue(v); + if(typeof v === "string") return parseStringValue(v); + if(typeof v === "bigint") return new NativeBigInt(v); + return v; + } + for(var i = 0; i < 1000; i++){ + Integer[i] = parseValue(i); + if(i > 0) Integer[- i] = parseValue(- i); + } + Integer.one = Integer[1]; + Integer.zero = Integer[0]; + Integer.minusOne = Integer[- 1]; + Integer.max = max; + Integer.min = min; + Integer.gcd = gcd; + Integer.lcm = lcm; + Integer.isInstance = + function(x){ + return x instanceof BigInteger || x instanceof SmallInteger + || x instanceof NativeBigInt; + }; + Integer.randBetween = randBetween; + Integer.fromArray = + function(digits, base, isNegative){ + return parseBaseFromArray + (digits.map(parseValue), parseValue(base || 10), isNegative); + }; + return Integer; + } + (); + function ml_z_normalize(x){ + var y = x.toJSNumber() | 0; + if(x.equals(bigInt(y))) return y; + return x; + } + function ml_z_pow(z1, i1){ + i1 = bigInt(i1); + if(i1.lt(bigInt(0))) + caml_invalid_argument("Z.pow: exponent must be nonnegative"); + return ml_z_normalize(bigInt(z1).pow(i1)); + } + function ml_z_root(z, i){ + var zero = bigInt(0), one = bigInt(1); + z = bigInt(z); + if(i % 2 === 0 && z.lt(zero)) + caml_invalid_argument("Z.root: even root of a negative number"); + if(z.equals(zero) || z.equals(one)) return ml_z_normalize(z); + var start = zero, end = z, ans = null, two = bigInt(2); + while(start.leq(end)){ + var mid = start.add(end).divide(two), po = mid.pow(i); + if(po.equals(z)) + return ml_z_normalize(mid); + else if(po.lt(z)){start = mid.next(); ans = mid;} else end = mid.prev(); + } + return ml_z_normalize(ans); + } + function ml_z_rootrem(z, i){ + var zero = bigInt(0), one = bigInt(1); + z = bigInt(z); + if(i % 2 === 0 && z.lt(zero)) + caml_invalid_argument("Z.rootrem: even root of a negative number"); + if(z.equals(zero) || z.equals(one)) return [0, ml_z_normalize(z), zero]; + var start = zero, end = z, ans = null, two = bigInt(2); + while(start.leq(end)){ + var mid = start.add(end).divide(two), po = mid.pow(i); + if(po.equals(z)) + return [0, ml_z_normalize(mid), zero]; + else if(po.lt(z)){start = mid.next(); ans = mid;} else end = mid.prev(); + } + return [0, ml_z_normalize(ans), ml_z_normalize(z.minus(ans.pow(i)))]; + } + function caml_ml_condition_new(unit){return {condition: 1};} + function caml_int64_of_bytes(a){ + return new + MlInt64 + (a[7] << 0 | a[6] << 8 | a[5] << 16, + a[4] << 0 | a[3] << 8 | a[2] << 16, + a[1] << 0 | a[0] << 8); + } + function caml_ba_uint8_get64(ba, i0){ + var ofs = ba.offset(i0); + if(ofs + 7 >= ba.data.length) caml_array_bound_error(); + var + b1 = ba.get(ofs + 0), + b2 = ba.get(ofs + 1), + b3 = ba.get(ofs + 2), + b4 = ba.get(ofs + 3), + b5 = ba.get(ofs + 4), + b6 = ba.get(ofs + 5), + b7 = ba.get(ofs + 6), + b8 = ba.get(ofs + 7); + return caml_int64_of_bytes([b8, b7, b6, b5, b4, b3, b2, b1]); + } + function caml_int64_to_bytes(x){return x.toArray();} + function caml_int64_marshal(writer, v, sizes){ + var b = caml_int64_to_bytes(v); + for(var i = 0; i < 8; i++) writer.write(8, b[i]); + sizes[0] = 8; + sizes[1] = 8; + } + function caml_ba_num_dims(ba){return ba.dims.length;} + function caml_wrap_exception(e){ + { + if(e instanceof Array) return e; + var exn; + if + (globalThis.RangeError && e instanceof globalThis.RangeError + && e.message + && e.message.match(/maximum call stack/i)) + exn = caml_global_data.Stack_overflow; + else if + (globalThis.InternalError && e instanceof globalThis.InternalError + && e.message + && e.message.match(/too much recursion/i)) + exn = caml_global_data.Stack_overflow; + else if(e instanceof globalThis.Error && caml_named_value("jsError")) + exn = [0, caml_named_value("jsError"), e]; + else + exn = [0, caml_global_data.Failure, caml_string_of_jsstring(String(e))]; + if(e instanceof globalThis.Error) exn.js_error = e; + return exn; + } + } + function caml_create_file(name, content){ + var root = resolve_fs_device(name); + if(! root.device.register) caml_failwith("cannot register file"); + root.device.register(root.rest, content); + return 0; + } + function jsoo_create_file(name, content){ + var + name = caml_string_of_jsbytes(name), + content = caml_string_of_jsbytes(content); + return caml_create_file(name, content); + } + function caml_fs_init(){ + var tmp = globalThis.caml_fs_tmp; + if(tmp) + for(var i = 0; i < tmp.length; i++) + jsoo_create_file(tmp[i].name, tmp[i].content); + globalThis.jsoo_create_file = jsoo_create_file; + globalThis.caml_fs_tmp = []; + return 0; + } + function caml_get_continuation_callstack(){return [0];} + var caml_parser_trace = 0; + function caml_set_parser_trace(bool){ + var oldflag = caml_parser_trace; + caml_parser_trace = bool; + return oldflag; + } + function caml_list_of_js_array(a){ + var l = 0; + for(var i = a.length - 1; i >= 0; i--){var e = a[i]; l = [0, e, l];} + return l; + } + function caml_mul(a, b){return Math.imul(a, b);} + function caml_hash_mix_int(h, d){ + d = caml_mul(d, 0xcc9e2d51 | 0); + d = d << 15 | d >>> 32 - 15; + d = caml_mul(d, 0x1b873593); + h ^= d; + h = h << 13 | h >>> 32 - 13; + return (h + (h << 2) | 0) + (0xe6546b64 | 0) | 0; + } + function num_digits_nat(nat, ofs, len){ + for(var i = len - 1; i >= 0; i--) if(nat.data[ofs + i] != 0) return i + 1; + return 1; + } + function caml_hash_nat(x){ + var len = num_digits_nat(x, 0, x.data.length), h = 0; + for(var i = 0; i < len; i++) h = caml_hash_mix_int(h, x.data[i]); + return h; + } + function caml_call_gen(f, args){ + var + n = f.l >= 0 ? f.l : f.l = f.length, + argsLen = args.length, + d = n - argsLen; + if(d == 0) + return f.apply(null, args); + else if(d < 0){ + var g = f.apply(null, args.slice(0, n)); + if(typeof g !== "function") return g; + return caml_call_gen(g, args.slice(n)); + } + else{ + switch(d){ + case 1: + { + var + g = + function(x){ + var nargs = new Array(argsLen + 1); + for(var i = 0; i < argsLen; i++) nargs[i] = args[i]; + nargs[argsLen] = x; + return f.apply(null, nargs); + }; + break; + } + case 2: + { + var + g = + function(x, y){ + var nargs = new Array(argsLen + 2); + for(var i = 0; i < argsLen; i++) nargs[i] = args[i]; + nargs[argsLen] = x; + nargs[argsLen + 1] = y; + return f.apply(null, nargs); + }; + break; + } + default: + var + g = + function(){ + var + extra_args = arguments.length == 0 ? 1 : arguments.length, + nargs = new Array(args.length + extra_args); + for(var i = 0; i < args.length; i++) nargs[i] = args[i]; + for(var i = 0; i < arguments.length; i++) + nargs[args.length + i] = arguments[i]; + return caml_call_gen(f, nargs); + }; + } + g.l = d; + return g; + } + } + var caml_callback = caml_call_gen; + function caml_js_wrap_callback_arguments(f){ + return function(){ + var len = arguments.length, args = new Array(len); + for(var i = 0; i < len; i++) args[i] = arguments[i]; + return caml_callback(f, [args]);}; + } + function caml_sys_chdir(dir){ + var root = resolve_fs_device(dir); + if(root.device.exists(root.rest)){ + if(root.rest) + caml_current_dir = caml_trailing_slash(root.path + root.rest); + else + caml_current_dir = root.path; + return 0; + } + else + caml_raise_no_such_file(caml_jsbytes_of_string(dir)); + } + function caml_obj_tag(x){ + if(x instanceof Array && x[0] == x[0] >>> 0) + return x[0]; + else if(caml_is_ml_bytes(x)) + return 252; + else if(caml_is_ml_string(x)) + return 252; + else if(x instanceof Function || typeof x == "function") + return 247; + else if(x && x.caml_custom) return 255; else return 1000; + } + function caml_obj_update_tag(b, o, n){ + if(b[0] == o){b[0] = n; return 1;} + return 0; + } + var caml_ml_domain_unique_token_ = [0]; + function caml_ml_domain_unique_token(unit){return caml_ml_domain_unique_token_; + } + function caml_lazy_update_to_forcing(o){ + var t = caml_obj_tag(o); + if(t != 246 && t != 250 && t != 244) return 4; + if(caml_obj_update_tag(o, 246, 244)) + return 0; + else{ + var field0 = o[1]; + t = o[0]; + if(t == 244) + return field0 == caml_ml_domain_unique_token(0) ? 1 : 2; + else if(t == 250) return 3; else return 2; + } + } + function caml_gc_counters(){return [254, 0, 0, 0];} + function ml_z_div(z1, z2){ + z2 = bigInt(z2); + if(z2.equals(bigInt(0))) caml_raise_zero_divide(); + return ml_z_normalize(bigInt(z1).divide(bigInt(z2))); + } + function ml_z_sign(z1){return bigInt(z1).compare(bigInt.zero);} + function ml_z_add(z1, z2){ + return ml_z_normalize(bigInt(z1).add(bigInt(z2))); + } + function ml_z_cdiv(z1, z2){ + var z1_pos = ml_z_sign(z1), z2_pos = ml_z_sign(z2); + if(z1_pos * z2_pos > 0) + if(! bigInt(z1).mod(bigInt(z2)).equals(bigInt(0))) + return ml_z_add(ml_z_div(z1, z2), bigInt(1)); + return ml_z_div(z1, z2); + } + function caml_gr_synchronize(){ + caml_failwith("caml_gr_synchronize not Implemented"); + } + function caml_unix_closedir(dir_handle){ + try{dir_handle.pointer.closeSync();} + catch(e){ + var unix_error = caml_named_value("Unix.Unix_error"); + caml_raise_with_args + (unix_error, make_unix_err_args("EBADF", "closedir", dir_handle.path)); + } + } + function caml_unix_opendir(path){ + var root = resolve_fs_device(path); + if(! root.device.opendir) + caml_failwith("caml_unix_opendir: not implemented"); + var dir_handle = root.device.opendir(root.rest, true); + return {pointer: dir_handle, path: path}; + } + function caml_unix_rewinddir(dir_handle){ + caml_unix_closedir(dir_handle); + var new_dir_handle = caml_unix_opendir(dir_handle.path); + dir_handle.pointer = new_dir_handle.pointer; + return 0; + } + function caml_raise_end_of_file(){ + caml_raise_constant(caml_global_data.End_of_file); + } + function caml_unix_readdir(dir_handle){ + var entry; + try{entry = dir_handle.pointer.readSync();} + catch(e){ + var unix_error = caml_named_value("Unix.Unix_error"); + caml_raise_with_args + (unix_error, make_unix_err_args("EBADF", "readdir", dir_handle.path)); + } + if(entry === null) + caml_raise_end_of_file(); + else + return caml_string_of_jsstring(entry.name); + } + function caml_unix_findfirst(path){ + var path_js = caml_jsstring_of_string(path); + path_js = path_js.replace(/(^|[\\\/])\*\.\*$/, ""); + path = caml_string_of_jsstring(path_js); + var + dir_handle = caml_unix_opendir(path), + first_entry = caml_unix_readdir(dir_handle); + return [0, first_entry, dir_handle]; + } + function caml_is_continuation_tag(t){return 0;} + var log2_ok = Math.log2 && Math.log2(1.1235582092889474E+307) == 1020; + function jsoo_floor_log2(x){ + if(log2_ok) return Math.floor(Math.log2(x)); + var i = 0; + if(x == 0) return - Infinity; + if(x >= 1) while(x >= 2){x /= 2; i++;} else while(x < 1){x *= 2; i--;} + return i; + } + function caml_int32_bits_of_float(x){ + var float32a = new Float32Array(1); + float32a[0] = x; + var int32a = new Int32Array(float32a.buffer); + return int32a[0] | 0; + } + function caml_int64_create_lo_mi_hi(lo, mi, hi){return new MlInt64(lo, mi, hi); + } + function caml_int64_bits_of_float(x){ + if(! isFinite(x)){ + if(isNaN(x)) return caml_int64_create_lo_mi_hi(1, 0, 0x7ff0); + return x > 0 + ? caml_int64_create_lo_mi_hi(0, 0, 0x7ff0) + : caml_int64_create_lo_mi_hi(0, 0, 0xfff0); + } + var sign = x == 0 && 1 / x == - Infinity ? 0x8000 : x >= 0 ? 0 : 0x8000; + if(sign) x = - x; + var exp = jsoo_floor_log2(x) + 1023; + if(exp <= 0){ + exp = 0; + x /= Math.pow(2, - 1026); + } + else{ + x /= Math.pow(2, exp - 1027); + if(x < 16){x *= 2; exp -= 1;} + if(exp == 0) x /= 2; + } + var k = Math.pow(2, 24), r3 = x | 0; + x = (x - r3) * k; + var r2 = x | 0; + x = (x - r2) * k; + var r1 = x | 0; + r3 = r3 & 0xf | sign | exp << 4; + return caml_int64_create_lo_mi_hi(r1, r2, r3); + } + function caml_ba_serialize(writer, ba, sz){ + writer.write(32, ba.dims.length); + writer.write(32, ba.kind | ba.layout << 8); + if(ba.caml_custom == "_bigarr02") + for(var i = 0; i < ba.dims.length; i++) + if(ba.dims[i] < 0xffff) + writer.write(16, ba.dims[i]); + else{ + writer.write(16, 0xffff); + writer.write(32, 0); + writer.write(32, ba.dims[i]); + } + else + for(var i = 0; i < ba.dims.length; i++) writer.write(32, ba.dims[i]); + switch(ba.kind){ + case 2: + case 3: + case 12: + for(var i = 0; i < ba.data.length; i++) writer.write(8, ba.data[i]); + break; + case 4: + case 5: + for(var i = 0; i < ba.data.length; i++) writer.write(16, ba.data[i]); + break; + case 6: + for(var i = 0; i < ba.data.length; i++) writer.write(32, ba.data[i]); + break; + case 8: + case 9: + writer.write(8, 0); + for(var i = 0; i < ba.data.length; i++) writer.write(32, ba.data[i]); + break; + case 7: + for(var i = 0; i < ba.data.length / 2; i++){ + var b = caml_int64_to_bytes(ba.get(i)); + for(var j = 0; j < 8; j++) writer.write(8, b[j]); + } + break; + case 1: + for(var i = 0; i < ba.data.length; i++){ + var b = caml_int64_to_bytes(caml_int64_bits_of_float(ba.get(i))); + for(var j = 0; j < 8; j++) writer.write(8, b[j]); + } + break; + case 0: + for(var i = 0; i < ba.data.length; i++){ + var b = caml_int32_bits_of_float(ba.get(i)); + writer.write(32, b); + } + break; + case 10: + for(var i = 0; i < ba.data.length / 2; i++){ + var j = ba.get(i); + writer.write(32, caml_int32_bits_of_float(j[1])); + writer.write(32, caml_int32_bits_of_float(j[2])); + } + break; + case 11: + for(var i = 0; i < ba.data.length / 2; i++){ + var + complex = ba.get(i), + b = caml_int64_to_bytes(caml_int64_bits_of_float(complex[1])); + for(var j = 0; j < 8; j++) writer.write(8, b[j]); + var b = caml_int64_to_bytes(caml_int64_bits_of_float(complex[2])); + for(var j = 0; j < 8; j++) writer.write(8, b[j]); + } + break; + } + sz[0] = (4 + ba.dims.length) * 4; + sz[1] = (4 + ba.dims.length) * 8; + } + function caml_ba_get_size_per_element(kind){ + switch(kind){case 7:case 10:case 11: return 2;default: return 1; + } + } + function caml_ba_create_buffer(kind, size){ + var view; + switch(kind){ + case 0: + view = Float32Array; break; + case 1: + view = Float64Array; break; + case 2: + view = Int8Array; break; + case 3: + view = Uint8Array; break; + case 4: + view = Int16Array; break; + case 5: + view = Uint16Array; break; + case 6: + view = Int32Array; break; + case 7: + view = Int32Array; break; + case 8: + view = Int32Array; break; + case 9: + view = Int32Array; break; + case 10: + view = Float32Array; break; + case 11: + view = Float64Array; break; + case 12: + view = Uint8Array; break; + } + if(! view) caml_invalid_argument("Bigarray.create: unsupported kind"); + var data = new view(size * caml_ba_get_size_per_element(kind)); + return data; + } + function caml_int32_float_of_bits(x){ + var int32a = new Int32Array(1); + int32a[0] = x; + var float32a = new Float32Array(int32a.buffer); + return float32a[0]; + } + function caml_int64_float_of_bits(x){ + var lo = x.lo, mi = x.mi, hi = x.hi, exp = (hi & 0x7fff) >> 4; + if(exp == 2047) + return (lo | mi | hi & 0xf) == 0 + ? hi & 0x8000 ? - Infinity : Infinity + : NaN; + var k = Math.pow(2, - 24), res = (lo * k + mi) * k + (hi & 0xf); + if(exp > 0){ + res += 16; + res *= Math.pow(2, exp - 1027); + } + else + res *= Math.pow(2, - 1026); + if(hi & 0x8000) res = - res; + return res; + } + function caml_ba_get_size(dims){ + var n_dims = dims.length, size = 1; + for(var i = 0; i < n_dims; i++){ + if(dims[i] < 0) + caml_invalid_argument("Bigarray.create: negative dimension"); + size = size * dims[i]; + } + return size; + } + function caml_int64_create_lo_hi(lo, hi){ + return new + MlInt64 + (lo & 0xffffff, + lo >>> 24 & 0xff | (hi & 0xffff) << 8, + hi >>> 16 & 0xffff); + } + function caml_int64_hi32(v){return v.hi32();} + function caml_int64_lo32(v){return v.lo32();} + var caml_ba_custom_name = "_bigarr02"; + function Ml_Bigarray(kind, layout, dims, buffer){ + this.kind = kind; + this.layout = layout; + this.dims = dims; + this.data = buffer; + } + Ml_Bigarray.prototype.caml_custom = caml_ba_custom_name; + Ml_Bigarray.prototype.offset = + function(arg){ + var ofs = 0; + if(typeof arg === "number") arg = [arg]; + if(! (arg instanceof Array)) + caml_invalid_argument("bigarray.js: invalid offset"); + if(this.dims.length != arg.length) + caml_invalid_argument("Bigarray.get/set: bad number of dimensions"); + if(this.layout == 0) + for(var i = 0; i < this.dims.length; i++){ + if(arg[i] < 0 || arg[i] >= this.dims[i]) caml_array_bound_error(); + ofs = ofs * this.dims[i] + arg[i]; + } + else + for(var i = this.dims.length - 1; i >= 0; i--){ + if(arg[i] < 1 || arg[i] > this.dims[i]) caml_array_bound_error(); + ofs = ofs * this.dims[i] + (arg[i] - 1); + } + return ofs; + }; + Ml_Bigarray.prototype.get = + function(ofs){ + switch(this.kind){ + case 7: + var l = this.data[ofs * 2 + 0], h = this.data[ofs * 2 + 1]; + return caml_int64_create_lo_hi(l, h); + case 10: + case 11: + var r = this.data[ofs * 2 + 0], i = this.data[ofs * 2 + 1]; + return [254, r, i]; + default: return this.data[ofs]; + } + }; + Ml_Bigarray.prototype.set = + function(ofs, v){ + switch(this.kind){ + case 7: + this.data[ofs * 2 + 0] = caml_int64_lo32(v); + this.data[ofs * 2 + 1] = caml_int64_hi32(v); + break; + case 10: + case 11: + this.data[ofs * 2 + 0] = v[1]; this.data[ofs * 2 + 1] = v[2]; break; + default: this.data[ofs] = v; break; + } + return 0; + }; + Ml_Bigarray.prototype.fill = + function(v){ + switch(this.kind){ + case 7: + var a = caml_int64_lo32(v), b = caml_int64_hi32(v); + if(a == b) + this.data.fill(a); + else + for(var i = 0; i < this.data.length; i++) + this.data[i] = i % 2 == 0 ? a : b; + break; + case 10: + case 11: + var im = v[1], re = v[2]; + if(im == re) + this.data.fill(im); + else + for(var i = 0; i < this.data.length; i++) + this.data[i] = i % 2 == 0 ? im : re; + break; + default: this.data.fill(v); break; + } + }; + Ml_Bigarray.prototype.compare = + function(b, total){ + if(this.layout != b.layout || this.kind != b.kind){ + var k1 = this.kind | this.layout << 8, k2 = b.kind | b.layout << 8; + return k2 - k1; + } + if(this.dims.length != b.dims.length) + return b.dims.length - this.dims.length; + for(var i = 0; i < this.dims.length; i++) + if(this.dims[i] != b.dims[i]) return this.dims[i] < b.dims[i] ? - 1 : 1; + switch(this.kind){ + case 0: + case 1: + case 10: + case 11: + var x, y; + for(var i = 0; i < this.data.length; i++){ + x = this.data[i]; + y = b.data[i]; + if(x < y) return - 1; + if(x > y) return 1; + if(x != y){ + if(! total) return NaN; + if(x == x) return 1; + if(y == y) return - 1; + } + } + break; + case 7: + for(var i = 0; i < this.data.length; i += 2){ + if(this.data[i + 1] < b.data[i + 1]) return - 1; + if(this.data[i + 1] > b.data[i + 1]) return 1; + if(this.data[i] >>> 0 < b.data[i] >>> 0) return - 1; + if(this.data[i] >>> 0 > b.data[i] >>> 0) return 1; + } + break; + case 2: + case 3: + case 4: + case 5: + case 6: + case 8: + case 9: + case 12: + for(var i = 0; i < this.data.length; i++){ + if(this.data[i] < b.data[i]) return - 1; + if(this.data[i] > b.data[i]) return 1; + } + break; + } + return 0; + }; + function Ml_Bigarray_c_1_1(kind, layout, dims, buffer){ + this.kind = kind; + this.layout = layout; + this.dims = dims; + this.data = buffer; + } + Ml_Bigarray_c_1_1.prototype = new Ml_Bigarray(); + Ml_Bigarray_c_1_1.prototype.offset = + function(arg){ + if(typeof arg !== "number") + if(arg instanceof Array && arg.length == 1) + arg = arg[0]; + else + caml_invalid_argument("Ml_Bigarray_c_1_1.offset"); + if(arg < 0 || arg >= this.dims[0]) caml_array_bound_error(); + return arg; + }; + Ml_Bigarray_c_1_1.prototype.get = function(ofs){return this.data[ofs];}; + Ml_Bigarray_c_1_1.prototype.set = + function(ofs, v){this.data[ofs] = v; return 0;}; + Ml_Bigarray_c_1_1.prototype.fill = + function(v){this.data.fill(v); return 0;}; + function caml_ba_create_unsafe(kind, layout, dims, data){ + var size_per_element = caml_ba_get_size_per_element(kind); + if(caml_ba_get_size(dims) * size_per_element != data.length) + caml_invalid_argument("length doesn't match dims"); + if(layout == 0 && dims.length == 1 && size_per_element == 1) + return new Ml_Bigarray_c_1_1(kind, layout, dims, data); + return new Ml_Bigarray(kind, layout, dims, data); + } + function caml_ba_deserialize(reader, sz, name){ + var num_dims = reader.read32s(); + if(num_dims < 0 || num_dims > 16) + caml_failwith("input_value: wrong number of bigarray dimensions"); + var + tag = reader.read32s(), + kind = tag & 0xff, + layout = tag >> 8 & 1, + dims = []; + if(name == "_bigarr02") + for(var i = 0; i < num_dims; i++){ + var size_dim = reader.read16u(); + if(size_dim == 0xffff){ + var size_dim_hi = reader.read32u(), size_dim_lo = reader.read32u(); + if(size_dim_hi != 0) + caml_failwith("input_value: bigarray dimension overflow in 32bit"); + size_dim = size_dim_lo; + } + dims.push(size_dim); + } + else + for(var i = 0; i < num_dims; i++) dims.push(reader.read32u()); + var + size = caml_ba_get_size(dims), + data = caml_ba_create_buffer(kind, size), + ba = caml_ba_create_unsafe(kind, layout, dims, data); + switch(kind){ + case 2: + for(var i = 0; i < size; i++) data[i] = reader.read8s(); break; + case 3: + case 12: + for(var i = 0; i < size; i++) data[i] = reader.read8u(); break; + case 4: + for(var i = 0; i < size; i++) data[i] = reader.read16s(); break; + case 5: + for(var i = 0; i < size; i++) data[i] = reader.read16u(); break; + case 6: + for(var i = 0; i < size; i++) data[i] = reader.read32s(); break; + case 8: + case 9: + var sixty = reader.read8u(); + if(sixty) + caml_failwith + ("input_value: cannot read bigarray with 64-bit OCaml ints"); + for(var i = 0; i < size; i++) data[i] = reader.read32s(); + break; + case 7: + var t = new Array(8); + for(var i = 0; i < size; i++){ + for(var j = 0; j < 8; j++) t[j] = reader.read8u(); + var int64 = caml_int64_of_bytes(t); + ba.set(i, int64); + } + break; + case 1: + var t = new Array(8); + for(var i = 0; i < size; i++){ + for(var j = 0; j < 8; j++) t[j] = reader.read8u(); + var f = caml_int64_float_of_bits(caml_int64_of_bytes(t)); + ba.set(i, f); + } + break; + case 0: + for(var i = 0; i < size; i++){ + var f = caml_int32_float_of_bits(reader.read32s()); + ba.set(i, f); + } + break; + case 10: + for(var i = 0; i < size; i++){ + var + re = caml_int32_float_of_bits(reader.read32s()), + im = caml_int32_float_of_bits(reader.read32s()); + ba.set(i, [254, re, im]); + } + break; + case 11: + var t = new Array(8); + for(var i = 0; i < size; i++){ + for(var j = 0; j < 8; j++) t[j] = reader.read8u(); + var re = caml_int64_float_of_bits(caml_int64_of_bytes(t)); + for(var j = 0; j < 8; j++) t[j] = reader.read8u(); + var im = caml_int64_float_of_bits(caml_int64_of_bytes(t)); + ba.set(i, [254, re, im]); + } + break; + } + sz[0] = (4 + num_dims) * 4; + return caml_ba_create_unsafe(kind, layout, dims, data); + } + function caml_ba_compare(a, b, total){return a.compare(b, total);} + function caml_hash_mix_int64(h, v){ + h = caml_hash_mix_int(h, caml_int64_lo32(v)); + h = caml_hash_mix_int(h, caml_int64_hi32(v)); + return h; + } + function caml_hash_mix_float(h, v0){ + return caml_hash_mix_int64(h, caml_int64_bits_of_float(v0)); + } + function caml_ba_hash(ba){ + var num_elts = caml_ba_get_size(ba.dims), h = 0; + switch(ba.kind){ + case 2: + case 3: + case 12: + if(num_elts > 256) num_elts = 256; + var w = 0, i = 0; + for(i = 0; i + 4 <= ba.data.length; i += 4){ + w = + ba.data[i + 0] | ba.data[i + 1] << 8 | ba.data[i + 2] << 16 + | ba.data[i + 3] << 24; + h = caml_hash_mix_int(h, w); + } + w = 0; + switch(num_elts & 3){ + case 3: + w = ba.data[i + 2] << 16; + case 2: + w |= ba.data[i + 1] << 8; + case 1: + w |= ba.data[i + 0]; h = caml_hash_mix_int(h, w); + } + break; + case 4: + case 5: + if(num_elts > 128) num_elts = 128; + var w = 0, i = 0; + for(i = 0; i + 2 <= ba.data.length; i += 2){ + w = ba.data[i + 0] | ba.data[i + 1] << 16; + h = caml_hash_mix_int(h, w); + } + if((num_elts & 1) != 0) h = caml_hash_mix_int(h, ba.data[i]); + break; + case 6: + if(num_elts > 64) num_elts = 64; + for(var i = 0; i < num_elts; i++) h = caml_hash_mix_int(h, ba.data[i]); + break; + case 8: + case 9: + if(num_elts > 64) num_elts = 64; + for(var i = 0; i < num_elts; i++) h = caml_hash_mix_int(h, ba.data[i]); + break; + case 7: + if(num_elts > 32) num_elts = 32; + num_elts *= 2; + for(var i = 0; i < num_elts; i++) h = caml_hash_mix_int(h, ba.data[i]); + break; + case 10: + num_elts *= 2; + case 0: + if(num_elts > 64) num_elts = 64; + for(var i = 0; i < num_elts; i++) + h = caml_hash_mix_float(h, ba.data[i]); + break; + case 11: + num_elts *= 2; + case 1: + if(num_elts > 32) num_elts = 32; + for(var i = 0; i < num_elts; i++) + h = caml_hash_mix_float(h, ba.data[i]); + break; + } + return h; + } + function caml_int32_unmarshal(reader, size){size[0] = 4; return reader.read32s(); + } + function caml_nativeint_unmarshal(reader, size){ + switch(reader.read8u()){ + case 1: + size[0] = 4; return reader.read32s(); + case 2: + caml_failwith("input_value: native integer value too large"); + default: caml_failwith("input_value: ill-formed native integer"); + } + } + function caml_int64_unmarshal(reader, size){ + var t = new Array(8); + for(var j = 0; j < 8; j++) t[j] = reader.read8u(); + size[0] = 8; + return caml_int64_of_bytes(t); + } + function caml_int64_compare(x, y, total){return x.compare(y);} + function caml_int64_hash(v){return v.lo32() ^ v.hi32();} + var + caml_custom_ops = {"_j": - {deserialize:caml_int64_unmarshal, - serialize:caml_int64_marshal, - fixed_length:8, - compare:caml_int64_compare, - hash:caml_int64_hash}, - "_i":{deserialize:caml_int32_unmarshal,fixed_length:4}, - "_n":{deserialize:caml_nativeint_unmarshal,fixed_length:4}, + {deserialize: caml_int64_unmarshal, + serialize: caml_int64_marshal, + fixed_length: 8, + compare: caml_int64_compare, + hash: caml_int64_hash}, + "_i": {deserialize: caml_int32_unmarshal, fixed_length: 4}, + "_n": {deserialize: caml_nativeint_unmarshal, fixed_length: 4}, "_bigarray": {deserialize: - function(reader,sz){return caml_ba_deserialize(reader,sz,"_bigarray")}, - serialize:caml_ba_serialize, - compare:caml_ba_compare, - hash:caml_ba_hash}, + function(reader, sz){ + return caml_ba_deserialize(reader, sz, "_bigarray"); + }, + serialize: caml_ba_serialize, + compare: caml_ba_compare, + hash: caml_ba_hash}, "_bigarr02": {deserialize: - function(reader,sz){return caml_ba_deserialize(reader,sz,"_bigarr02")}, - serialize:caml_ba_serialize, - compare:caml_ba_compare, - hash:caml_ba_hash}}; - function caml_compare_val_get_custom(a) - {return caml_custom_ops[a.caml_custom] - && - caml_custom_ops[a.caml_custom].compare} - function caml_compare_val_number_custom(num,custom,swap,total) - {var comp=caml_compare_val_get_custom(custom); - if(comp) - {var x=swap > 0?comp(custom,num,total):comp(num,custom,total); - if(total && x != x)return swap; - if(+ x != + x)return + x; - if((x | 0) != 0)return x | 0} - return swap} - function caml_compare_val_tag(a) - {if(typeof a === "number") - return 1000; - else - if(caml_is_ml_bytes(a)) - return 252; - else - if(caml_is_ml_string(a)) - return 1252; - else - if(a instanceof Array && a[0] === a[0] >>> 0 && a[0] <= 255) - {var tag=a[0] | 0;return tag == 254?0:tag} - else - if(a instanceof String) - return 12520; - else - if(typeof a == "string") - return 12520; - else - if(a instanceof Number) - return 1000; - else - if(a && a.caml_custom) - return 1255; - else - if(a && a.compare) - return 1256; - else - if(typeof a == "function") - return 1247; - else - if(typeof a == "symbol")return 1251; - return 1001} - function caml_int_compare(a,b) - {if(a < b)return - 1;if(a == b)return 0;return 1} - function caml_bytes_compare(s1,s2) - {s1.t & 6 && caml_convert_string_to_bytes(s1); - s2.t & 6 && caml_convert_string_to_bytes(s2); - return s1.c < s2.c?- 1:s1.c > s2.c?1:0} - function caml_string_compare(s1,s2){return caml_bytes_compare(s1,s2)} - function caml_compare_val(a,b,total) - {var stack=[]; - for(;;) - {if(! (total && a === b)) - {var tag_a=caml_compare_val_tag(a); - if(tag_a == 250){a = a[1];continue} - var tag_b=caml_compare_val_tag(b); - if(tag_b == 250){b = b[1];continue} - if(tag_a !== tag_b) - {if(tag_a == 1000) - {if(tag_b == 1255) - return caml_compare_val_number_custom(a,b,- 1,total); - return - 1} - if(tag_b == 1000) - {if(tag_a == 1255) - return caml_compare_val_number_custom(b,a,1,total); - return 1} - return tag_a < tag_b?- 1:1} - switch(tag_a) - {case 247:caml_invalid_argument("compare: functional value");break; - case 248: - var x=caml_int_compare(a[2],b[2]);if(x != 0)return x | 0;break; - case 249:caml_invalid_argument("compare: functional value");break; - case 250: - caml_invalid_argument - ("equal: got Forward_tag, should not happen"); - break; - case 251:caml_invalid_argument("equal: abstract value");break; - case 252: - if(a !== b){var x=caml_bytes_compare(a,b);if(x != 0)return x | 0} - break; - case 253: - caml_invalid_argument("equal: got Double_tag, should not happen"); - break; - case 254: - caml_invalid_argument - ("equal: got Double_array_tag, should not happen"); - break; - case 255: - caml_invalid_argument("equal: got Custom_tag, should not happen"); - break; - case 1247: - caml_invalid_argument("compare: functional value");break; - case 1255: - var comp=caml_compare_val_get_custom(a); - if(comp != caml_compare_val_get_custom(b)) - return a.caml_custom < b.caml_custom?- 1:1; - if(! comp)caml_invalid_argument("compare: abstract value"); - var x=comp(a,b,total); - if(x != x)return total?- 1:x; - if(x !== (x | 0))return - 1; - if(x != 0)return x | 0; - break; - case 1256: - var x=a.compare(b,total); - if(x != x)return total?- 1:x; - if(x !== (x | 0))return - 1; - if(x != 0)return x | 0; - break; - case 1000: - a = + a; - b = + b; - if(a < b)return - 1; - if(a > b)return 1; - if(a != b) - {if(! total)return NaN;if(a == a)return 1;if(b == b)return - 1} - break; - case 1001: - if(a < b)return - 1; - if(a > b)return 1; - if(a != b) - {if(! total)return NaN;if(a == a)return 1;if(b == b)return - 1} - break; - case 1251:if(a !== b){if(! total)return NaN;return 1}break; - case 1252: - var a=caml_jsbytes_of_string(a),b=caml_jsbytes_of_string(b); - if(a !== b){if(a < b)return - 1;if(a > b)return 1} - break; - case 12520: - var a=a.toString(),b=b.toString(); - if(a !== b){if(a < b)return - 1;if(a > b)return 1} - break; - case 246: - case 254: - default: - if(a.length != b.length)return a.length < b.length?- 1:1; - if(a.length > 1)stack.push(a,b,1); - break}} - if(stack.length == 0)return 0; - var i=stack.pop(); - b = stack.pop(); - a = stack.pop(); - if(i + 1 < a.length)stack.push(a,b,i + 1); - a = a[i]; - b = b[i]}} - function caml_greaterthan(x,y){return + (caml_compare_val(x,y,false) > 0)} - function div_helper(a,b,c) - {var - x=a * 65536 + (b >>> 16), - y=Math.floor(x / c) * 65536, - z=x % c * 65536, - w=z + (b & 0x0000FFFF); - return [y + Math.floor(w / c),w % c]} - function div_digit_nat(natq,ofsq,natr,ofsr,nat1,ofs1,len,nat2,ofs2) - {var rem=nat1.data[ofs1 + len - 1] >>> 0; - for(var i=len - 2;i >= 0;i--) - {var x=div_helper(rem,nat1.data[ofs1 + i] >>> 0,nat2.data[ofs2] >>> 0); - natq.data[ofsq + i] = x[0]; - rem = x[1]} - natr.data[ofsr] = rem; - return 0} - function num_leading_zero_bits_in_digit(nat,ofs) - {var a=nat.data[ofs],b=0; - if(a & 0xFFFF0000){b += 16;a >>>= 16} - if(a & 0xFF00){b += 8;a >>>= 8} - if(a & 0xF0){b += 4;a >>>= 4} - if(a & 12){b += 2;a >>>= 2} - if(a & 2){b += 1;a >>>= 1} - if(a & 1)b += 1; - return 32 - b} - function shift_left_nat(nat1,ofs1,len1,nat2,ofs2,nbits) - {if(nbits == 0){nat2.data[ofs2] = 0;return 0} - var wrap=0; - for(var i=0;i < len1;i++) - {var a=nat1.data[ofs1 + i] >>> 0; - nat1.data[ofs1 + i] = a << nbits | wrap; - wrap = a >>> 32 - nbits} - nat2.data[ofs2] = wrap; - return 0} - function MlNat(x) - {this.data = new Int32Array(x);this.length = this.data.length + 2} - MlNat.prototype.caml_custom = "_nat"; - function create_nat(size) - {var arr=new MlNat(size); - for(var i=0;i < size;i++)arr.data[i] = - 1; - return arr} - function set_to_zero_nat(nat,ofs,len) - {for(var i=0;i < len;i++)nat.data[ofs + i] = 0;return 0} - function incr_nat(nat,ofs,len,carry_in) - {var carry=carry_in; - for(var i=0;i < len;i++) - {var x=(nat.data[ofs + i] >>> 0) + carry; - nat.data[ofs + i] = x | 0; - if(x == x >>> 0){carry = 0;break}else carry = 1} - return carry} - function add_nat(nat1,ofs1,len1,nat2,ofs2,len2,carry_in) - {var carry=carry_in; - for(var i=0;i < len2;i++) - {var - x= - (nat1.data[ofs1 + i] >>> 0) + (nat2.data[ofs2 + i] >>> 0) + carry; - nat1.data[ofs1 + i] = x; - if(x == x >>> 0)carry = 0;else carry = 1} - return incr_nat(nat1,ofs1 + len2,len1 - len2,carry)} - function nat_of_array(l){return new MlNat(l)} - function mult_digit_nat(nat1,ofs1,len1,nat2,ofs2,len2,nat3,ofs3) - {var carry=0,a=nat3.data[ofs3] >>> 0; - for(var i=0;i < len2;i++) - {var - x1= - (nat1.data[ofs1 + i] >>> 0) - + - (nat2.data[ofs2 + i] >>> 0) - * - (a & 0x0000FFFF) - + - carry, - x2=(nat2.data[ofs2 + i] >>> 0) * (a >>> 16); - carry = Math.floor(x2 / 65536); - var x3=x1 + x2 % 65536 * 65536; - nat1.data[ofs1 + i] = x3; - carry += Math.floor(x3 / 4294967296)} - return len2 < len1 && carry - ?add_nat - (nat1,ofs1 + len2,len1 - len2,nat_of_array([carry]),0,1,0) - :carry} - function decr_nat(nat,ofs,len,carry_in) - {var borrow=carry_in == 1?0:1; - for(var i=0;i < len;i++) - {var x=(nat.data[ofs + i] >>> 0) - borrow; - nat.data[ofs + i] = x; - if(x >= 0){borrow = 0;break}else borrow = 1} - return borrow == 1?0:1} - function sub_nat(nat1,ofs1,len1,nat2,ofs2,len2,carry_in) - {var borrow=carry_in == 1?0:1; - for(var i=0;i < len2;i++) - {var - x= - (nat1.data[ofs1 + i] >>> 0) - (nat2.data[ofs2 + i] >>> 0) - borrow; - nat1.data[ofs1 + i] = x; - if(x >= 0)borrow = 0;else borrow = 1} - return decr_nat(nat1,ofs1 + len2,len1 - len2,borrow == 1?0:1)} - function compare_nat(nat1,ofs1,len1,nat2,ofs2,len2) - {var a=num_digits_nat(nat1,ofs1,len1),b=num_digits_nat(nat2,ofs2,len2); - if(a > b)return 1; - if(a < b)return - 1; - for(var i=len1 - 1;i >= 0;i--) - {if(nat1.data[ofs1 + i] >>> 0 > nat2.data[ofs2 + i] >>> 0)return 1; - if(nat1.data[ofs1 + i] >>> 0 < nat2.data[ofs2 + i] >>> 0)return - 1} - return 0} - function div_nat(nat1,ofs1,len1,nat2,ofs2,len2) - {if(len2 == 1) - {div_digit_nat(nat1,ofs1 + 1,nat1,ofs1,nat1,ofs1,len1,nat2,ofs2); - return 0} - var s=num_leading_zero_bits_in_digit(nat2,ofs2 + len2 - 1); - shift_left_nat(nat2,ofs2,len2,nat_of_array([0]),0,s); - shift_left_nat(nat1,ofs1,len1,nat_of_array([0]),0,s); - var d=(nat2.data[ofs2 + len2 - 1] >>> 0) + 1,a=create_nat(len2 + 1); - for(var i=len1 - 1;i >= len2;i--) - {var - quo= - d == 4294967296 - ?nat1.data[ofs1 + i] >>> 0 - :div_helper - (nat1.data[ofs1 + i] >>> 0,nat1.data[ofs1 + i - 1] >>> 0,d) - [0]; - set_to_zero_nat(a,0,len2 + 1); - mult_digit_nat(a,0,len2 + 1,nat2,ofs2,len2,nat_of_array([quo]),0); - sub_nat(nat1,ofs1 + i - len2,len2 + 1,a,0,len2 + 1,1); - while - (nat1.data[ofs1 + i] - != - 0 - || - compare_nat(nat1,ofs1 + i - len2,len2,nat2,ofs2,len2) - >= - 0) - {quo = quo + 1; - sub_nat(nat1,ofs1 + i - len2,len2 + 1,nat2,ofs2,len2,1)} - nat1.data[ofs1 + i] = quo} - shift_right_nat(nat1,ofs1,len2,nat_of_array([0]),0,s); - shift_right_nat(nat2,ofs2,len2,nat_of_array([0]),0,s); - return 0} - function caml_ba_blit(src,dst) - {if(dst.dims.length != src.dims.length) - caml_invalid_argument("Bigarray.blit: dimension mismatch"); - for(var i=0;i < dst.dims.length;i++) - if(dst.dims[i] != src.dims[i]) - caml_invalid_argument("Bigarray.blit: dimension mismatch"); - dst.data.set(src.data); - return 0} - function is_digit_int(nat,ofs){if(nat.data[ofs] >= 0)return 1;return 0} - function caml_int64_div(x,y){return x.div(y)} - function caml_js_html_entities(s) - {var entity=/^&#?[0-9a-zA-Z]+;$/; - if(s.match(entity)) - {var str,temp=document.createElement("p"); - temp.innerHTML = s; - str = temp.textContent || temp.innerText; - temp = null; - return str} - else - caml_failwith("Invalid entity " + s)} - function caml_string_unsafe_set(s,i,c) - {return caml_bytes_unsafe_set(s,i,c)} - function caml_int64_of_float(x) - {if(x < 0)x = Math.ceil(x); - return new - MlInt64 - (x & 0xffffff, - Math.floor(x * caml_int64_offset) & 0xffffff, - Math.floor(x * caml_int64_offset * caml_int64_offset) & 0xffff)} - function caml_ml_channel_size_64(chanid) - {var chan=caml_ml_channels[chanid]; - return caml_int64_of_float(chan.file.length())} - function caml_ba_set_2(ba,i0,i1,v){ba.set(ba.offset([i0,i1]),v);return 0} - function ml_z_of_int64(i64) - {var neg=false; - if(caml_int64_compare(i64,caml_int64_create_lo_hi(0,0)) < 0) - {neg = true;i64 = caml_int64_neg(i64)} - var - lo=caml_int64_lo32(i64) >>> 0, - hi=caml_int64_hi32(i64) >>> 0, - x=bigInt(lo).add(bigInt(hi).shiftLeft(32)); - if(neg)x = x.negate(); - return ml_z_normalize(x)} - function ml_z_kronecker(n,k) - {caml_failwith("ml_z_kronecker is not implemented")} - var - caml_argv= - function() - {var process=globalThis.process,main="a.out",args=[]; - if(process && process.argv && process.argv.length > 1) - {var argv=process.argv;main = argv[1];args = argv.slice(2)} - var p=caml_string_of_jsstring(main),args2=[0,p]; - for(var i=0;i < args.length;i++) - args2.push(caml_string_of_jsstring(args[i])); - return args2} - (), - caml_executable_name=caml_argv[1]; - function caml_js_eval_string(s){return eval(caml_jsstring_of_string(s))} - function serialize_nat(writer,nat,sz) - {var len=nat.data.length; - writer.write(32,len); - for(var i=0;i < len;i++)writer.write(32,nat.data[i]); - sz[0] = len * 4; - sz[1] = len * 8} - function caml_memprof_set(_control){return 0} - function ml_z_neg(z1){return ml_z_normalize(bigInt(z1).negate())} - function caml_sys_exit(code) - {if(globalThis.quit)globalThis.quit(code); - if(globalThis.process && globalThis.process.exit) - globalThis.process.exit(code); - caml_invalid_argument("Function 'exit' not implemented")} - function caml_channel_descriptor(chanid) - {var chan=caml_ml_channels[chanid];return chan.fd} - function caml_js_from_array(a){return a.slice(1)} - function caml_ba_reshape(ba,vind) - {vind = caml_js_from_array(vind); - var new_dim=[],num_dims=vind.length; - if(num_dims < 0 || num_dims > 16) - caml_invalid_argument("Bigarray.reshape: bad number of dimensions"); - var num_elts=1; - for(var i=0;i < num_dims;i++) - {new_dim[i] = vind[i]; - if(new_dim[i] < 0) - caml_invalid_argument("Bigarray.reshape: negative dimension"); - num_elts = num_elts * new_dim[i]} - var size=caml_ba_get_size(ba.dims); - if(num_elts != size) - caml_invalid_argument("Bigarray.reshape: size mismatch"); - return caml_ba_create_unsafe(ba.kind,ba.layout,new_dim,ba.data)} - var caml_oo_last_id=0; - function caml_set_oo_id(b){b[2] = caml_oo_last_id++;return b} - function caml_gr_fill_rect(x,y,w,h) - {var s=caml_gr_state_get(); - s.context.fillRect(x,s.height - y,w,- h); - return 0} - function caml_bigstring_blit_string_to_ba(str1,pos1,ba2,pos2,len) - {if(12 != ba2.kind) - caml_invalid_argument - ("caml_bigstring_blit_string_to_ba: kind mismatch"); - if(len == 0)return 0; - var ofs2=ba2.offset(pos2); - if(pos1 + len > caml_ml_string_length(str1))caml_array_bound_error(); - if(ofs2 + len > ba2.data.length)caml_array_bound_error(); - var slice=caml_uint8_array_of_string(str1).slice(pos1,pos1 + len); - ba2.data.set(slice,ofs2); - return 0} - function caml_gr_set_window_title(name) - {var s=caml_gr_state_get(); - s.title = name; - var jsname=caml_jsstring_of_string(name); - if(s.set_title)s.set_title(jsname); - return 0} - function caml_get_global_data(){return caml_global_data} - function caml_int64_shift_right_unsigned(x,s) - {return x.shift_right_unsigned(s)} - function caml_ba_uint8_get16(ba,i0) - {var ofs=ba.offset(i0); - if(ofs + 1 >= ba.data.length)caml_array_bound_error(); - var b1=ba.get(ofs),b2=ba.get(ofs + 1); - return b1 | b2 << 8} - function ml_z_of_int32(i){return i | 0} - function caml_compare(a,b){return caml_compare_val(a,b,true)} - var - caml_MD5Transform= - function() - {function add(x,y){return x + y | 0} - function xx(q,a,b,x,s,t) - {a = add(add(a,q),add(x,t));return add(a << s | a >>> 32 - s,b)} - function ff(a,b,c,d,x,s,t){return xx(b & c | ~ b & d,a,b,x,s,t)} - function gg(a,b,c,d,x,s,t){return xx(b & d | c & ~ d,a,b,x,s,t)} - function hh(a,b,c,d,x,s,t){return xx(b ^ c ^ d,a,b,x,s,t)} - function ii(a,b,c,d,x,s,t){return xx(c ^ (b | ~ d),a,b,x,s,t)} - return function(w,buffer) - {var a=w[0],b=w[1],c=w[2],d=w[3]; - a = ff(a,b,c,d,buffer[0],7,0xD76AA478); - d = ff(d,a,b,c,buffer[1],12,0xE8C7B756); - c = ff(c,d,a,b,buffer[2],17,0x242070DB); - b = ff(b,c,d,a,buffer[3],22,0xC1BDCEEE); - a = ff(a,b,c,d,buffer[4],7,0xF57C0FAF); - d = ff(d,a,b,c,buffer[5],12,0x4787C62A); - c = ff(c,d,a,b,buffer[6],17,0xA8304613); - b = ff(b,c,d,a,buffer[7],22,0xFD469501); - a = ff(a,b,c,d,buffer[8],7,0x698098D8); - d = ff(d,a,b,c,buffer[9],12,0x8B44F7AF); - c = ff(c,d,a,b,buffer[10],17,0xFFFF5BB1); - b = ff(b,c,d,a,buffer[11],22,0x895CD7BE); - a = ff(a,b,c,d,buffer[12],7,0x6B901122); - d = ff(d,a,b,c,buffer[13],12,0xFD987193); - c = ff(c,d,a,b,buffer[14],17,0xA679438E); - b = ff(b,c,d,a,buffer[15],22,0x49B40821); - a = gg(a,b,c,d,buffer[1],5,0xF61E2562); - d = gg(d,a,b,c,buffer[6],9,0xC040B340); - c = gg(c,d,a,b,buffer[11],14,0x265E5A51); - b = gg(b,c,d,a,buffer[0],20,0xE9B6C7AA); - a = gg(a,b,c,d,buffer[5],5,0xD62F105D); - d = gg(d,a,b,c,buffer[10],9,0x02441453); - c = gg(c,d,a,b,buffer[15],14,0xD8A1E681); - b = gg(b,c,d,a,buffer[4],20,0xE7D3FBC8); - a = gg(a,b,c,d,buffer[9],5,0x21E1CDE6); - d = gg(d,a,b,c,buffer[14],9,0xC33707D6); - c = gg(c,d,a,b,buffer[3],14,0xF4D50D87); - b = gg(b,c,d,a,buffer[8],20,0x455A14ED); - a = gg(a,b,c,d,buffer[13],5,0xA9E3E905); - d = gg(d,a,b,c,buffer[2],9,0xFCEFA3F8); - c = gg(c,d,a,b,buffer[7],14,0x676F02D9); - b = gg(b,c,d,a,buffer[12],20,0x8D2A4C8A); - a = hh(a,b,c,d,buffer[5],4,0xFFFA3942); - d = hh(d,a,b,c,buffer[8],11,0x8771F681); - c = hh(c,d,a,b,buffer[11],16,0x6D9D6122); - b = hh(b,c,d,a,buffer[14],23,0xFDE5380C); - a = hh(a,b,c,d,buffer[1],4,0xA4BEEA44); - d = hh(d,a,b,c,buffer[4],11,0x4BDECFA9); - c = hh(c,d,a,b,buffer[7],16,0xF6BB4B60); - b = hh(b,c,d,a,buffer[10],23,0xBEBFBC70); - a = hh(a,b,c,d,buffer[13],4,0x289B7EC6); - d = hh(d,a,b,c,buffer[0],11,0xEAA127FA); - c = hh(c,d,a,b,buffer[3],16,0xD4EF3085); - b = hh(b,c,d,a,buffer[6],23,0x04881D05); - a = hh(a,b,c,d,buffer[9],4,0xD9D4D039); - d = hh(d,a,b,c,buffer[12],11,0xE6DB99E5); - c = hh(c,d,a,b,buffer[15],16,0x1FA27CF8); - b = hh(b,c,d,a,buffer[2],23,0xC4AC5665); - a = ii(a,b,c,d,buffer[0],6,0xF4292244); - d = ii(d,a,b,c,buffer[7],10,0x432AFF97); - c = ii(c,d,a,b,buffer[14],15,0xAB9423A7); - b = ii(b,c,d,a,buffer[5],21,0xFC93A039); - a = ii(a,b,c,d,buffer[12],6,0x655B59C3); - d = ii(d,a,b,c,buffer[3],10,0x8F0CCC92); - c = ii(c,d,a,b,buffer[10],15,0xFFEFF47D); - b = ii(b,c,d,a,buffer[1],21,0x85845DD1); - a = ii(a,b,c,d,buffer[8],6,0x6FA87E4F); - d = ii(d,a,b,c,buffer[15],10,0xFE2CE6E0); - c = ii(c,d,a,b,buffer[6],15,0xA3014314); - b = ii(b,c,d,a,buffer[13],21,0x4E0811A1); - a = ii(a,b,c,d,buffer[4],6,0xF7537E82); - d = ii(d,a,b,c,buffer[11],10,0xBD3AF235); - c = ii(c,d,a,b,buffer[2],15,0x2AD7D2BB); - b = ii(b,c,d,a,buffer[9],21,0xEB86D391); - w[0] = add(a,w[0]); - w[1] = add(b,w[1]); - w[2] = add(c,w[2]); - w[3] = add(d,w[3])}} - (); - function caml_MD5Update(ctx,input,input_len) - {var in_buf=ctx.len & 0x3f,input_pos=0; - ctx.len += input_len; - if(in_buf) - {var missing=64 - in_buf; - if(input_len < missing) - {ctx.b8.set(input.subarray(0,input_len),in_buf);return} - ctx.b8.set(input.subarray(0,missing),in_buf); - caml_MD5Transform(ctx.w,ctx.b32); - input_len -= missing; - input_pos += missing} - while(input_len >= 64) - {ctx.b8.set(input.subarray(input_pos,input_pos + 64),0); - caml_MD5Transform(ctx.w,ctx.b32); - input_len -= 64; - input_pos += 64} - if(input_len) - ctx.b8.set(input.subarray(input_pos,input_pos + input_len),0)} - function caml_fresh_oo_id(){return caml_oo_last_id++} - function caml_int64_to_float(x){return x.toFloat()} - function caml_ba_get_1(ba,i0){return ba.get(ba.offset(i0))} - function caml_bigstring_memcmp(s1,pos1,s2,pos2,len) - {for(var i=0;i < len;i++) - {var a=caml_ba_get_1(s1,pos1 + i),b=caml_ba_get_1(s2,pos2 + i); - if(a < b)return - 1; - if(a > b)return 1} - return 0} - function caml_new_string(s){return caml_string_of_jsbytes(s)} - function caml_erf_float(x) - {var - a1=0.254829592, - a2=- 0.284496736, - a3=1.421413741, - a4=- 1.453152027, - a5=1.061405429, - p=0.3275911, - sign=1; - if(x < 0)sign = - 1; - x = Math.abs(x); - var - t=1.0 / (1.0 + p * x), - y= - 1.0 - - - ((((a5 * t + a4) * t + a3) * t + a2) * t + a1) - * - t - * - Math.exp(- (x * x)); - return sign * y} - function caml_ba_uint8_get32(ba,i0) - {var ofs=ba.offset(i0); - if(ofs + 3 >= ba.data.length)caml_array_bound_error(); - var - b1=ba.get(ofs + 0), - b2=ba.get(ofs + 1), - b3=ba.get(ofs + 2), - b4=ba.get(ofs + 3); - return b1 << 0 | b2 << 8 | b3 << 16 | b4 << 24} - function caml_raw_backtrace_length(){return 0} - function ml_z_shift_right(z1,amt) - {return ml_z_normalize(bigInt(z1).shiftRight(amt))} - function caml_str_initialize(unit){return 0} - function caml_obj_block(tag,size) - {var o=new Array(size + 1); - o[0] = tag; - for(var i=1;i <= size;i++)o[i] = 0; - return o} - function caml_gr_clear_graph() - {var s=caml_gr_state_get(); - s.canvas.width = s.width; - s.canvas.height = s.height; - return 0} - function bigstring_to_array_buffer(bs){return bs.data.buffer} - function caml_sys_const_naked_pointers_checked(_unit){return 0} - function lxor_digit_nat(nat1,ofs1,nat2,ofs2) - {nat1.data[ofs1] ^= nat2.data[ofs2];return 0} - function caml_obj_add_offset(v,offset) - {caml_failwith("Obj.add_offset is not supported")} - function caml_final_release(){return 0} - function caml_js_to_array(a) - {var len=a.length,b=new Array(len + 1); - b[0] = 0; - for(var i=0;i < len;i++)b[i + 1] = a[i]; - return b} - function ml_z_logor(z1,z2) - {return ml_z_normalize(bigInt(z1).or(bigInt(z2)))} - function caml_gr_plot(x,y) - {var - s=caml_gr_state_get(), - im=s.context.createImageData(1,1), - d=im.data, - color=s.color; - d[0] = color >> 16 & 0xff; - d[1] = color >> 8 & 0xff,d[2] = color >> 0 & 0xff; - d[3] = 0xFF; - s.x = x; - s.y = y; - s.context.putImageData(im,x,s.height - y); - return 0} - function caml_bytes_set16(s,i,i16) - {if(i >>> 0 >= s.l - 1)caml_bytes_bound_error(); - var b2=0xFF & i16 >> 8,b1=0xFF & i16; - caml_bytes_unsafe_set(s,i + 0,b1); - caml_bytes_unsafe_set(s,i + 1,b2); - return 0} - function caml_string_set16(s,i,i16){return caml_bytes_set16(s,i,i16)} - function caml_bytes_set64(s,i,i64) - {if(i >>> 0 >= s.l - 7)caml_bytes_bound_error(); - var a=caml_int64_to_bytes(i64); - for(var j=0;j < 8;j++)caml_bytes_unsafe_set(s,i + 7 - j,a[j]); - return 0} - function caml_int64_bswap(x) - {var y=caml_int64_to_bytes(x); - return caml_int64_of_bytes([y[7],y[6],y[5],y[4],y[3],y[2],y[1],y[0]])} - function ml_z_fits_int(z1){return z1 == (z1 | 0)?1:0} - function ml_z_fits_int32(z1){return ml_z_fits_int(z1)} - function caml_gc_major(unit) - {if(typeof globalThis.gc == "function")globalThis.gc();return 0} - function ml_z_shift_left(z1,amt) - {return ml_z_normalize(bigInt(z1).shiftLeft(amt))} - function caml_lex_array(s) - {s = caml_jsbytes_of_string(s); - var l=s.length / 2,a=new Array(l); - for(var i=0;i < l;i++) - a[i] - = - (s.charCodeAt(2 * i) | s.charCodeAt(2 * i + 1) << 8) - << - 16 - >> - 16; - return a} - function caml_lex_engine(tbl,start_state,lexbuf) - {var - lex_buffer=2, - lex_buffer_len=3, - lex_start_pos=5, - lex_curr_pos=6, - lex_last_pos=7, - lex_last_action=8, - lex_eof_reached=9, - lex_base=1, - lex_backtrk=2, - lex_default=3, - lex_trans=4, - lex_check=5; - if(! tbl.lex_default) - {tbl.lex_base = caml_lex_array(tbl[lex_base]); - tbl.lex_backtrk = caml_lex_array(tbl[lex_backtrk]); - tbl.lex_check = caml_lex_array(tbl[lex_check]); - tbl.lex_trans = caml_lex_array(tbl[lex_trans]); - tbl.lex_default = caml_lex_array(tbl[lex_default])} - var - c, - state=start_state, - buffer=caml_uint8_array_of_bytes(lexbuf[lex_buffer]); - if(state >= 0) - {lexbuf[lex_last_pos] = lexbuf[lex_start_pos] = lexbuf[lex_curr_pos]; - lexbuf[lex_last_action] = - 1} - else - state = - state - 1; - for(;;) - {var base=tbl.lex_base[state]; - if(base < 0)return - base - 1; - var backtrk=tbl.lex_backtrk[state]; - if(backtrk >= 0) - {lexbuf[lex_last_pos] = lexbuf[lex_curr_pos]; - lexbuf[lex_last_action] = backtrk} - if(lexbuf[lex_curr_pos] >= lexbuf[lex_buffer_len]) - if(lexbuf[lex_eof_reached] == 0)return - state - 1;else c = 256; - else - {c = buffer[lexbuf[lex_curr_pos]];lexbuf[lex_curr_pos]++} - if(tbl.lex_check[base + c] == state) - state = tbl.lex_trans[base + c]; - else - state = tbl.lex_default[state]; - if(state < 0) - {lexbuf[lex_curr_pos] = lexbuf[lex_last_pos]; - if(lexbuf[lex_last_action] == - 1) - caml_failwith("lexing: empty token"); - else - return lexbuf[lex_last_action]} - else - if(c == 256)lexbuf[lex_eof_reached] = 0}} - function caml_sys_file_exists(name) - {var root=resolve_fs_device(name);return root.device.exists(root.rest)} - function caml_convert_raw_backtrace_slot() - {caml_failwith("caml_convert_raw_backtrace_slot")} - function caml_array_sub(a,i,len) - {var a2=new Array(len + 1); - a2[0] = 0; - for(var i2=1,i1=i + 1;i2 <= len;i2++,i1++)a2[i2] = a[i1]; - return a2} - function caml_bytes_equal(s1,s2) - {if(s1 === s2)return 1; - s1.t & 6 && caml_convert_string_to_bytes(s1); - s2.t & 6 && caml_convert_string_to_bytes(s2); - return s1.c == s2.c?1:0} - function caml_gr_size_x(){var s=caml_gr_state_get();return s.width} - function caml_ml_debug_info_status(){return 0} - function caml_atomic_fetch_add(ref,i) - {var old=ref[1];ref[1] += i;return old} - var - os_type= - globalThis.process - && - globalThis.process.platform - && - globalThis.process.platform - == - "win32" - ?"Cygwin" - :"Unix"; - function caml_sys_const_ostype_cygwin(){return os_type == "Cygwin"?1:0} - function caml_cosh_float(x){return Math.cosh(x)} - function MlMutex(){this.locked = false} - function caml_ml_mutex_new(unit){return new MlMutex()} - var caml_ephe_key_offset=3; - function caml_ephe_check_key(x,i) - {var weak=x[caml_ephe_key_offset + i]; - if(globalThis.WeakRef && weak instanceof globalThis.WeakRef) - weak = weak.deref(); - return weak === undefined?0:1} - function caml_hash_mix_final(h) - {h ^= h >>> 16; - h = caml_mul(h,0x85ebca6b | 0); - h ^= h >>> 13; - h = caml_mul(h,0xc2b2ae35 | 0); - h ^= h >>> 16; - return h} - function caml_gr_text_size(txt) - {var - s=caml_gr_state_get(), - w=s.context.measureText(caml_jsstring_of_string(txt)).width; - return [0,w,s.text_size]} - function caml_lex_run_mem(s,i,mem,curr_pos) - {for(;;) - {var dst=s.charCodeAt(i); - i++; - if(dst == 0xff)return; - var src=s.charCodeAt(i); - i++; - if(src == 0xff) - mem[dst + 1] = curr_pos; - else - mem[dst + 1] = mem[src + 1]}} - function caml_lex_run_tag(s,i,mem) - {for(;;) - {var dst=s.charCodeAt(i); - i++; - if(dst == 0xff)return; - var src=s.charCodeAt(i); - i++; - if(src == 0xff)mem[dst + 1] = - 1;else mem[dst + 1] = mem[src + 1]}} - function caml_new_lex_engine(tbl,start_state,lexbuf) - {var - lex_buffer=2, - lex_buffer_len=3, - lex_start_pos=5, - lex_curr_pos=6, - lex_last_pos=7, - lex_last_action=8, - lex_eof_reached=9, - lex_mem=10, - lex_base=1, - lex_backtrk=2, - lex_default=3, - lex_trans=4, - lex_check=5, - lex_base_code=6, - lex_backtrk_code=7, - lex_default_code=8, - lex_trans_code=9, - lex_check_code=10, - lex_code=11; - if(! tbl.lex_default) - {tbl.lex_base = caml_lex_array(tbl[lex_base]); - tbl.lex_backtrk = caml_lex_array(tbl[lex_backtrk]); - tbl.lex_check = caml_lex_array(tbl[lex_check]); - tbl.lex_trans = caml_lex_array(tbl[lex_trans]); - tbl.lex_default = caml_lex_array(tbl[lex_default])} - if(! tbl.lex_default_code) - {tbl.lex_base_code = caml_lex_array(tbl[lex_base_code]); - tbl.lex_backtrk_code = caml_lex_array(tbl[lex_backtrk_code]); - tbl.lex_check_code = caml_lex_array(tbl[lex_check_code]); - tbl.lex_trans_code = caml_lex_array(tbl[lex_trans_code]); - tbl.lex_default_code = caml_lex_array(tbl[lex_default_code])} - if(tbl.lex_code == null) - tbl.lex_code = caml_jsbytes_of_string(tbl[lex_code]); - var - c, - state=start_state, - buffer=caml_uint8_array_of_bytes(lexbuf[lex_buffer]); - if(state >= 0) - {lexbuf[lex_last_pos] = lexbuf[lex_start_pos] = lexbuf[lex_curr_pos]; - lexbuf[lex_last_action] = - 1} - else - state = - state - 1; - for(;;) - {var base=tbl.lex_base[state]; - if(base < 0) - {var pc_off=tbl.lex_base_code[state]; - caml_lex_run_tag(tbl.lex_code,pc_off,lexbuf[lex_mem]); - return - base - 1} - var backtrk=tbl.lex_backtrk[state]; - if(backtrk >= 0) - {var pc_off=tbl.lex_backtrk_code[state]; - caml_lex_run_tag(tbl.lex_code,pc_off,lexbuf[lex_mem]); - lexbuf[lex_last_pos] = lexbuf[lex_curr_pos]; - lexbuf[lex_last_action] = backtrk} - if(lexbuf[lex_curr_pos] >= lexbuf[lex_buffer_len]) - if(lexbuf[lex_eof_reached] == 0)return - state - 1;else c = 256; - else - {c = buffer[lexbuf[lex_curr_pos]];lexbuf[lex_curr_pos]++} - var pstate=state; - if(tbl.lex_check[base + c] == state) - state = tbl.lex_trans[base + c]; - else - state = tbl.lex_default[state]; - if(state < 0) - {lexbuf[lex_curr_pos] = lexbuf[lex_last_pos]; - if(lexbuf[lex_last_action] == - 1) - caml_failwith("lexing: empty token"); - else - return lexbuf[lex_last_action]} - else - {var base_code=tbl.lex_base_code[pstate],pc_off; - if(tbl.lex_check_code[base_code + c] == pstate) - pc_off = tbl.lex_trans_code[base_code + c]; - else - pc_off = tbl.lex_default_code[pstate]; - if(pc_off > 0) - caml_lex_run_mem - (tbl.lex_code,pc_off,lexbuf[lex_mem],lexbuf[lex_curr_pos]); - if(c == 256)lexbuf[lex_eof_reached] = 0}}} - function caml_ba_uint8_set64(ba,i0,v) - {var ofs=ba.offset(i0); - if(ofs + 7 >= ba.data.length)caml_array_bound_error(); - var v=caml_int64_to_bytes(v); - for(var i=0;i < 8;i++)ba.set(ofs + i,v[7 - i]); - return 0} - function ml_z_popcount(z) - {z = bigInt(z); - var zero=bigInt(0),one=bigInt(1); - if(z.lt(zero))caml_raise_constant(caml_named_value("ml_z_overflow")); - var i; - for(i = 0;! z.equals(zero);i++)z = z.and(z.prev()); - if(i != (i | 0))caml_raise_constant(caml_named_value("ml_z_overflow")); - return i | 0} - function caml_sys_executable_name(a){return caml_executable_name} - function caml_lessequal(x,y){return + (caml_compare_val(x,y,false) <= 0)} - function caml_acosh_float(x){return Math.acosh(x)} - function caml_MD5Init() - {var - buffer=new ArrayBuffer(64), - b32=new Uint32Array(buffer), - b8=new Uint8Array(buffer); - return {len:0, - w:new Uint32Array([0x67452301,0xEFCDAB89,0x98BADCFE,0x10325476]), - b32:b32, - b8:b8}} - function caml_ml_flush(chanid) - {var chan=caml_ml_channels[chanid]; - if(! chan.opened)caml_raise_sys_error("Cannot flush a closed channel"); - if(! chan.buffer || chan.buffer_curr == 0)return 0; - if(chan.output) - chan.output(caml_subarray_to_jsbytes(chan.buffer,0,chan.buffer_curr)); - else - chan.file.write(chan.offset,chan.buffer,0,chan.buffer_curr); - chan.offset += chan.buffer_curr; - chan.buffer_curr = 0; - return 0} - function caml_seek_out(chanid,pos) - {caml_ml_flush(chanid); - var chan=caml_ml_channels[chanid]; - chan.offset = pos; - return 0} - function caml_ml_seek_out_64(chanid,pos) - {var pos=caml_int64_to_float(pos);return caml_seek_out(chanid,pos)} - function compare_nat_real(nat1,nat2) - {return compare_nat(nat1,0,nat1.data.length,nat2,0,nat2.data.length)} - function caml_gc_set(_control){return 0} - function caml_js_get(o,f){return o[f]} - function caml_unix_isatty(fileDescriptor) - {if(fs_node_supported()) - {var tty=require("tty");return tty.isatty(fileDescriptor)?1:0} - else - return 0} - function caml_ml_set_buffered(chanid,v) - {caml_ml_channels[chanid].buffered = v; - if(! v)caml_ml_flush(chanid); - return 0} - function caml_gc_compaction(){return 0} - function caml_ephe_get_key(x,i) - {if(i < 0 || caml_ephe_key_offset + i >= x.length) - caml_invalid_argument("Weak.get_key"); - var weak=x[caml_ephe_key_offset + i]; - if(globalThis.WeakRef && weak instanceof globalThis.WeakRef) - weak = weak.deref(); - return weak === undefined?0:[0,weak]} - function caml_unix_localtime(t) - {var - d=new Date(t * 1000), - d_num=d.getTime(), - januaryfirst=new Date(d.getFullYear(),0,1).getTime(), - doy=Math.floor((d_num - januaryfirst) / 86400000), - jan=new Date(d.getFullYear(),0,1), - jul=new Date(d.getFullYear(),6,1), - stdTimezoneOffset= - Math.max(jan.getTimezoneOffset(),jul.getTimezoneOffset()); - return [0, - d.getSeconds(), - d.getMinutes(), - d.getHours(), - d.getDate(), - d.getMonth(), - d.getFullYear() - 1900, - d.getDay(), - doy, - d.getTimezoneOffset() < stdTimezoneOffset | 0]} - function caml_unix_mktime(tm) - {var - d=new Date(tm[6] + 1900,tm[5],tm[4],tm[3],tm[2],tm[1]).getTime(), - t=Math.floor(d / 1000), - tm2=caml_unix_localtime(t); - return [0,t,tm2]} - function jsoo_z_of_js_string_base(base,s) - {if(base == 0) - {base = 10; - var p=0,sign=1; - if(s[p] == "-"){sign = - 1;p++}else if(s[p] == "+")p++; - if(s[p] == "0") - {p++; - if(s.length == p) - return 0; - else - {var bc=s[p]; - if(bc == "o" || bc == "O") - base = 8; - else - if(bc == "x" || bc == "X") - base = 16; - else - if(bc == "b" || bc == "B")base = 2; - if(base != 10){s = s.substring(p + 1);if(sign == - 1)s = "-" + s}}}} - function digit(code) - {if(code >= 48 && code <= 57)return code - 48; - if(code >= 97 && code <= 102)return code - 97 + 10; - if(code >= 65 && code <= 70)return code - 65 + 10} - var i=0; - if(s[i] == "+")s = s.substring(1);else if(s[i] == "-")i++; - if(s[i] == "_") - caml_invalid_argument("Z.of_substring_base: invalid digit"); - s = s.replace(/_/g,""); - if(s == "-" || s == "")s = "0"; - for(;i < s.length;i++) - {var c=digit(s.charCodeAt(i)); - if(c == undefined || c >= base) - caml_invalid_argument("Z.of_substring_base: invalid digit")} - return ml_z_normalize(bigInt(s,base))} - function ml_z_of_substring_base(base,s,pos,len) - {s = caml_jsbytes_of_string(s); - if(pos != 0 || len != s.length) - {if(s.length - pos < len) - caml_invalid_argument - ("Z.of_substring_base: invalid offset or length"); - s = s.slice(pos,pos + len)} - return jsoo_z_of_js_string_base(base,s)} - function caml_bigstring_blit_bytes_to_ba(str1,pos1,ba2,pos2,len) - {if(12 != ba2.kind) - caml_invalid_argument - ("caml_bigstring_blit_string_to_ba: kind mismatch"); - if(len == 0)return 0; - var ofs2=ba2.offset(pos2); - if(pos1 + len > caml_ml_bytes_length(str1))caml_array_bound_error(); - if(ofs2 + len > ba2.data.length)caml_array_bound_error(); - var slice=caml_uint8_array_of_bytes(str1).slice(pos1,pos1 + len); - ba2.data.set(slice,ofs2); - return 0} - var caml_sys_fds=new Array(3); - function caml_sys_close(fd) - {var file=caml_sys_fds[fd]; - if(file)file.close(); - delete caml_sys_fds[fd]; - return 0} - function caml_ml_close_channel(chanid) - {var chan=caml_ml_channels[chanid]; - chan.opened = false; - caml_sys_close(chan.fd); - return 0} - function caml_exn_with_js_backtrace(exn,force) - {if(! exn.js_error || force || exn[0] == 248) - exn.js_error - = - new (globalThis.Error)("Js exception containing backtrace"); - return exn} - function caml_atomic_exchange(ref,v){var r=ref[1];ref[1] = v;return r} - function caml_sys_isatty(_chan){return 0} - function is_digit_zero(nat,ofs){if(nat.data[ofs] == 0)return 1;return 0} - function caml_unix_lstat(name) - {var root=resolve_fs_device(name); - if(! root.device.lstat) - caml_failwith("caml_unix_lstat: not implemented"); - return root.device.lstat(root.rest,true)} - function caml_unix_lstat_64(name) - {var r=caml_unix_lstat(name);r[9] = caml_int64_of_int32(r[9])} - function caml_js_set(o,f,v){o[f] = v;return 0} - function ml_z_gcdext_intern(z1,z2) - {z1 = bigInt(z1); - z2 = bigInt(z2); - var - gcd=bigInt.gcd(z1,z2), - a=z1, - b=z2, - x=bigInt(0), - lastx=bigInt(1), - y=bigInt(1), - lasty=bigInt(1), - q, - t, - r; - if(z1.equals(bigInt(0)))caml_raise_zero_divide(); - while(! b.equals(bigInt(0))) - {q = a.divide(b); - r = a.subtract(q.multiply(b)); - t = x; - x = lastx.subtract(q.multiply(x)); - lastx = t; - t = y; - y = lasty.subtract(q.multiply(y)); - lasty = t; - a = b; - b = r} - return a.lt(bigInt(0)) - ?[0,ml_z_normalize(a.negate()),ml_z_normalize(lastx.negate()),1] - :[0,ml_z_normalize(a),ml_z_normalize(lastx),1]} - function ml_z_testbit(z,pos) - {z = bigInt(z);return z.shiftRight(pos).and(bigInt(1)).toJSNumber() | 0} - function caml_array_get(array,index) - {if(index < 0 || index >= array.length - 1)caml_array_bound_error(); - return array[index + 1]} - function caml_unix_rmdir(name) - {var root=resolve_fs_device(name); - if(! root.device.rmdir) - caml_failwith("caml_unix_rmdir: not implemented"); - return root.device.rmdir(root.rest,true)} - function caml_log2_float(x){return Math.log2(x)} - function caml_gc_huge_fallback_count(unit){return 0} - function ml_z_congruent(a,b,c) - {var zero=bigInt(0); - a = bigInt(a); - b = bigInt(b); - c = bigInt(c); - if(c.equals(zero) && a.equals(b))return 1; - return a.minus(b).isDivisibleBy(c)?1:0} - function caml_spacetime_only_works_for_native_code() - {caml_failwith("Spacetime profiling only works for native code")} - function caml_int64_sub(x,y){return x.sub(y)} - function caml_seek_in(chanid,pos) - {var chan=caml_ml_channels[chanid]; - if(chan.refill != null)caml_raise_sys_error("Illegal seek"); - if - (pos - >= - chan.offset - - - chan.buffer_max - && - pos - <= - chan.offset - && - chan.file.flags.binary) - chan.buffer_curr = chan.buffer_max - (chan.offset - pos); - else - {chan.offset = pos;chan.buffer_curr = 0;chan.buffer_max = 0} - return 0} - function caml_ml_seek_in_64(chanid,pos) - {var pos=caml_int64_to_float(pos);return caml_seek_in(chanid,pos)} - var caml_domain_id=0; - function caml_ml_mutex_unlock(t){t.locked = false;return 0} - var caml_domain_latest_idx=1; - function caml_domain_spawn(f,mutex) - {var id=caml_domain_latest_idx++,old=caml_domain_id; - caml_domain_id = id; - f(0); - caml_domain_id = old; - caml_ml_mutex_unlock(mutex); - return id} - function caml_unix_mkdir(name,perm) - {var root=resolve_fs_device(name); - if(! root.device.mkdir) - caml_failwith("caml_unix_mkdir: not implemented"); - return root.device.mkdir(root.rest,perm,true)} - function caml_int64_shift_left(x,s){return x.shift_left(s)} - function caml_notequal(x,y){return + (caml_compare_val(x,y,false) != 0)} - function ml_z_abs(z1){return ml_z_normalize(bigInt(z1).abs())} - function caml_sys_const_int_size(){return 32} - function caml_js_wrap_meth_callback(f) - {return function() - {var len=arguments.length,args=new Array(len + 1); - args[0] = this; - for(var i=0;i < len;i++)args[i + 1] = arguments[i]; - return caml_call_gen(f,args)}} - function caml_is_js(){return 1} - function caml_lazy_update_to_forward(o) - {caml_obj_update_tag(o,244,250);return 0} - function caml_ba_dim(ba,i) - {if(i < 0 || i >= ba.dims.length)caml_invalid_argument("Bigarray.dim"); - return ba.dims[i]} - function caml_ba_dim_1(ba){return caml_ba_dim(ba,0)} - function ml_z_sqrt(z1) - {var z=bigInt(z1),zero=bigInt(0); - if(z.lt(zero)) - caml_invalid_argument("Z.sqrt: square root of a negative number"); - return ml_z_root(z,2)} - function caml_js_meth_call(o,f,args) - {return o[caml_jsstring_of_string(f)].apply(o,caml_js_from_array(args))} - function ml_z_lucnum(i) - {if(i < 0)caml_invalid_argument("Z.lucnum: negative arguments"); - if(i == 0)return 2; - if(i == 1)return 1; - var a=bigInt(2),b=bigInt(1); - for(var k=1;k < i;k++){var b2=b;b = a.add(b);a = b2} - return ml_z_normalize(b)} - var caml_ephe_data_offset=2; - function caml_weak_create(n) - {if(n < 0)caml_invalid_argument("Weak.create"); - var x=[251,"caml_ephe_list_head"]; - x.length = caml_ephe_key_offset + n; - return x} - function caml_ephe_create(n){var x=caml_weak_create(n);return x} - function caml_js_to_byte_string(s){return caml_string_of_jsbytes(s)} - function ml_z_probab_prime(z,i){return bigInt(z).isProbablePrime(i)?1:0} - function caml_trampoline(res) - {var c=1; - while(res && res.joo_tramp) - {res = res.joo_tramp.apply(null,res.joo_args);c++} - return res} - function caml_maybe_print_stats(unit){return 0} - function caml_bytes_get64(s,i) - {if(i >>> 0 >= s.l - 7)caml_bytes_bound_error(); - var a=new Array(8); - for(var j=0;j < 8;j++)a[7 - j] = caml_bytes_unsafe_get(s,i + j); - return caml_int64_of_bytes(a)} - function caml_unix_has_symlink(unit){return fs_node_supported()?1:0} - function ml_z_rem(z1,z2) - {z2 = bigInt(z2); - if(z2.equals(bigInt(0)))caml_raise_zero_divide(); - return ml_z_normalize(bigInt(z1).mod(z2))} - function caml_ephe_set_key(x,i,v) - {if(i < 0 || caml_ephe_key_offset + i >= x.length) - caml_invalid_argument("Weak.set"); - if(v instanceof Object && globalThis.WeakRef) - {if(x[1].register)x[1].register(v,undefined,v); - x[caml_ephe_key_offset + i] = new (globalThis.WeakRef)(v)} - else - x[caml_ephe_key_offset + i] = v; - return 0} - function caml_ephe_unset_key(x,i) - {if(i < 0 || caml_ephe_key_offset + i >= x.length) - caml_invalid_argument("Weak.set"); - if - (globalThis.WeakRef - && - x[caml_ephe_key_offset + i] instanceof globalThis.WeakRef - && - x[1].unregister) - {var old=x[caml_ephe_key_offset + i].deref(); - if(old !== undefined) - {var count=0; - for(var j=caml_ephe_key_offset;j < x.length;j++) - {var key=x[j]; - if(key instanceof globalThis.WeakRef) - {key = key.deref();if(key === old)count++}} - if(count == 1)x[1].unregister(old)}} - x[caml_ephe_key_offset + i] = undefined; - return 0} - function caml_weak_set(x,i,v) - {if(v == 0)caml_ephe_unset_key(x,i);else caml_ephe_set_key(x,i,v[1]); - return 0} - function caml_sys_remove(name) - {var root=resolve_fs_device(name),ok=root.device.unlink(root.rest); - if(ok == 0)caml_raise_no_such_file(caml_jsbytes_of_string(name)); - return 0} - function caml_string_bound_error() - {caml_invalid_argument("index out of bounds")} - function caml_string_get32(s,i) - {if(i >>> 0 >= caml_ml_string_length(s) - 3)caml_string_bound_error(); - var - b1=caml_string_unsafe_get(s,i), - b2=caml_string_unsafe_get(s,i + 1), - b3=caml_string_unsafe_get(s,i + 2), - b4=caml_string_unsafe_get(s,i + 3); - return b4 << 24 | b3 << 16 | b2 << 8 | b1} - function caml_bytes_get(s,i) - {if(i >>> 0 >= s.l)caml_bytes_bound_error(); - return caml_bytes_unsafe_get(s,i)} - function caml_hypot_float(x,y){return Math.hypot(x,y)} - function ml_z_facM(i,m) - {if(i <= 0 || m <= 0) - caml_invalid_argument("Z.factM: negative arguments"); - m = bigInt(m); - var current=bigInt(i),res=bigInt(1); - while(current.isPositive()) - {res = res.multiply(current);current = current.minus(m)} - return ml_z_normalize(res)} - function caml_js_call(f,o,args) - {return f.apply(o,caml_js_from_array(args))} - function caml_sys_const_max_wosize(){return 0x7FFFFFFF / 4 | 0} - function caml_unix_inet_addr_of_string(){return 0} - function ml_z_mul_overflows(x,y){var z=x * y;return z != (z | 0)} - function ml_z_to_int(z1) - {if(z1 == (z1 | 0))return z1 | 0; - caml_raise_constant(caml_named_value("ml_z_overflow"))} - function caml_hash_mix_bytes_arr(h,s) - {var len=s.length,i,w; - for(i = 0;i + 4 <= len;i += 4) - {w = s[i] | s[i + 1] << 8 | s[i + 2] << 16 | s[i + 3] << 24; - h = caml_hash_mix_int(h,w)} - w = 0; - switch(len & 3) - {case 3:w = s[i + 2] << 16; - case 2:w |= s[i + 1] << 8; - case 1:w |= s[i];h = caml_hash_mix_int(h,w) - } - h ^= len; - return h} - function caml_hash_mix_jsbytes(h,s) - {var len=s.length,i,w; - for(i = 0;i + 4 <= len;i += 4) - {w - = - s.charCodeAt(i) - | - s.charCodeAt(i + 1) - << - 8 - | - s.charCodeAt(i + 2) - << - 16 - | - s.charCodeAt(i + 3) - << - 24; - h = caml_hash_mix_int(h,w)} - w = 0; - switch(len & 3) - {case 3:w = s.charCodeAt(i + 2) << 16; - case 2:w |= s.charCodeAt(i + 1) << 8; - case 1:w |= s.charCodeAt(i);h = caml_hash_mix_int(h,w) - } - h ^= len; - return h} - function caml_ml_bytes_content(s) - {switch(s.t & 6) - {default:caml_convert_string_to_bytes(s);case 0:return s.c; - case 4:return s.c - }} - function caml_hash_mix_bytes(h,v) - {var content=caml_ml_bytes_content(v); - return typeof content === "string" - ?caml_hash_mix_jsbytes(h,content) - :caml_hash_mix_bytes_arr(h,content)} - function caml_bytes_lessthan(s1,s2) - {s1.t & 6 && caml_convert_string_to_bytes(s1); - s2.t & 6 && caml_convert_string_to_bytes(s2); - return s1.c < s2.c?1:0} - function caml_erfc_float(x){return 1 - caml_erf_float(x)} - function caml_gr_fill_poly(ar) - {var s=caml_gr_state_get(); - s.context.beginPath(); - s.context.moveTo(ar[1][1],s.height - ar[1][2]); - for(var i=2;i < ar.length;i++) - s.context.lineTo(ar[i][1],s.height - ar[i][2]); - s.context.lineTo(ar[1][1],s.height - ar[1][2]); - s.context.fill(); - return 0} - function caml_gc_quick_stat(){return [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]} - function ml_z_fac(i) - {if(i <= 0)caml_invalid_argument("Z.fact: negative arguments"); - return ml_z_facM(i,1)} - function caml_ml_input_char(chanid) - {var chan=caml_ml_channels[chanid]; - if(chan.buffer_curr >= chan.buffer_max) - {chan.buffer_curr = 0;chan.buffer_max = 0;caml_refill(chan)} - if(chan.buffer_curr >= chan.buffer_max)caml_raise_end_of_file(); - var res=chan.buffer[chan.buffer_curr]; - chan.buffer_curr++; - return res} - function caml_ml_input_int(chanid) - {var chan=caml_ml_channels[chanid],res=0; - for(var i=0;i < 4;i++)res = (res << 8) + caml_ml_input_char(chanid); - return res} - function caml_gr_display_mode() - {caml_failwith("caml_gr_display_mode not Implemented")} - function ml_z_divisible(a,b) - {var zero=bigInt(0); - a = bigInt(a); - b = bigInt(b); - if(a.equals(zero) && b.equals(zero))return 1; - return a.isDivisibleBy(b)?1:0} - function caml_obj_reachable_words(o){return 0} - function nth_digit_nat(nat,ofs){return nat.data[ofs]} - function caml_array_blit(a1,i1,a2,i2,len) - {if(i2 <= i1) - for(var j=1;j <= len;j++)a2[i2 + j] = a1[i1 + j]; - else - for(var j=len;j >= 1;j--)a2[i2 + j] = a1[i1 + j]; - return 0} - function caml_float_of_string(s) - {var res; - s = caml_jsbytes_of_string(s); - res = + s; - if(s.length > 0 && res === res)return res; - s = s.replace(/_/g,""); - res = + s; - if(s.length > 0 && res === res || /^[+-]?nan$/i.test(s))return res; - var m=/^ *([+-]?)0x([0-9a-f]+)\.?([0-9a-f]*)(p([+-]?[0-9]+))?/i.exec(s); - if(m) - {var - m3=m[3].replace(/0+$/,""), - mantissa=parseInt(m[1] + m[2] + m3,16), - exponent=(m[5] | 0) - 4 * m3.length; - res = mantissa * Math.pow(2,exponent); - return res} - if(/^\+?inf(inity)?$/i.test(s))return Infinity; - if(/^-inf(inity)?$/i.test(s))return - Infinity; - caml_failwith("float_of_string")} - function caml_sys_getcwd() - {return caml_string_of_jsbytes(caml_current_dir)} - function caml_int64_add(x,y){return x.add(y)} - function caml_int64_mul(x,y){return x.mul(y)} - function caml_int64_ult(x,y){return x.ucompare(y) < 0} - function caml_parse_sign_and_base(s) - {var i=0,len=caml_ml_string_length(s),base=10,sign=1; - if(len > 0) - switch(caml_string_unsafe_get(s,i)) - {case 45:i++;sign = - 1;break;case 43:i++;sign = 1;break} - if(i + 1 < len && caml_string_unsafe_get(s,i) == 48) - switch(caml_string_unsafe_get(s,i + 1)) - {case 120: - case 88:base = 16;i += 2;break; - case 111: - case 79:base = 8;i += 2;break; - case 98: - case 66:base = 2;i += 2;break; - case 117: - case 85:i += 2;break + function(reader, sz){ + return caml_ba_deserialize(reader, sz, "_bigarr02"); + }, + serialize: caml_ba_serialize, + compare: caml_ba_compare, + hash: caml_ba_hash}}; + function caml_compare_val_get_custom(a){ + return caml_custom_ops[a.caml_custom] + && caml_custom_ops[a.caml_custom].compare; + } + function caml_compare_val_number_custom(num, custom, swap, total){ + var comp = caml_compare_val_get_custom(custom); + if(comp){ + var x = swap > 0 ? comp(custom, num, total) : comp(num, custom, total); + if(total && x != x) return swap; + if(+ x != + x) return + x; + if((x | 0) != 0) return x | 0; + } + return swap; + } + function caml_compare_val_tag(a){ + if(typeof a === "number") + return 1000; + else if(caml_is_ml_bytes(a)) + return 252; + else if(caml_is_ml_string(a)) + return 1252; + else if(a instanceof Array && a[0] === a[0] >>> 0 && a[0] <= 255){var tag = a[0] | 0; return tag == 254 ? 0 : tag;} + else if(a instanceof String) + return 12520; + else if(typeof a == "string") + return 12520; + else if(a instanceof Number) + return 1000; + else if(a && a.caml_custom) + return 1255; + else if(a && a.compare) + return 1256; + else if(typeof a == "function") + return 1247; + else if(typeof a == "symbol") return 1251; + return 1001; + } + function caml_int_compare(a, b){ + if(a < b) return - 1; + if(a == b) return 0; + return 1; + } + function caml_string_compare(s1, s2){ + return s1 < s2 ? - 1 : s1 > s2 ? 1 : 0; + } + function caml_bytes_compare(s1, s2){ + s1.t & 6 && caml_convert_string_to_bytes(s1); + s2.t & 6 && caml_convert_string_to_bytes(s2); + return s1.c < s2.c ? - 1 : s1.c > s2.c ? 1 : 0; + } + function caml_compare_val(a, b, total){ + var stack = []; + for(;;){ + if(! (total && a === b)){ + var tag_a = caml_compare_val_tag(a); + if(tag_a == 250){a = a[1]; continue;} + var tag_b = caml_compare_val_tag(b); + if(tag_b == 250){b = b[1]; continue;} + if(tag_a !== tag_b){ + if(tag_a == 1000){ + if(tag_b == 1255) + return caml_compare_val_number_custom(a, b, - 1, total); + return - 1; + } + if(tag_b == 1000){ + if(tag_a == 1255) + return caml_compare_val_number_custom(b, a, 1, total); + return 1; + } + return tag_a < tag_b ? - 1 : 1; + } + switch(tag_a){ + case 247: + caml_invalid_argument("compare: functional value"); break; + case 248: + var x = caml_int_compare(a[2], b[2]); if(x != 0) return x | 0; break; + case 249: + caml_invalid_argument("compare: functional value"); break; + case 250: + caml_invalid_argument("equal: got Forward_tag, should not happen"); + break; + case 251: + caml_invalid_argument("equal: abstract value"); break; + case 252: + if(a !== b){ + var x = caml_bytes_compare(a, b); + if(x != 0) return x | 0; } - return [i,sign,base]} - function caml_parse_digit(c) - {if(c >= 48 && c <= 57)return c - 48; - if(c >= 65 && c <= 90)return c - 55; - if(c >= 97 && c <= 122)return c - 87; - return - 1} - function caml_int64_of_string(s) - {var - r=caml_parse_sign_and_base(s), - i=r[0], - sign=r[1], - base=r[2], - base64=caml_int64_of_int32(base), - threshold= - new MlInt64(0xffffff,0xfffffff,0xffff).udivmod(base64).quotient, - c=caml_string_unsafe_get(s,i), - d=caml_parse_digit(c); - if(d < 0 || d >= base)caml_failwith("int_of_string"); - var res=caml_int64_of_int32(d); - for(;;) - {i++; - c = caml_string_unsafe_get(s,i); - if(c == 95)continue; - d = caml_parse_digit(c); - if(d < 0 || d >= base)break; - if(caml_int64_ult(threshold,res))caml_failwith("int_of_string"); - d = caml_int64_of_int32(d); - res = caml_int64_add(caml_int64_mul(base64,res),d); - if(caml_int64_ult(res,d))caml_failwith("int_of_string")} - if(i != caml_ml_string_length(s))caml_failwith("int_of_string"); - if(base == 10 && caml_int64_ult(new MlInt64(0,0,0x8000),res)) - caml_failwith("int_of_string"); - if(sign < 0)res = caml_int64_neg(res); - return res} - function caml_ba_set_1(ba,i0,v){ba.set(ba.offset(i0),v);return 0} - function caml_int64_xor(x,y){return x.xor(y)} - function caml_int64_or(x,y){return x.or(y)} - function caml_lxm_next(v) - {function shift_l(x,k){return caml_int64_shift_left(x,k)} - function shift_r(x,k){return caml_int64_shift_right_unsigned(x,k)} - function or(a,b){return caml_int64_or(a,b)} - function xor(a,b){return caml_int64_xor(a,b)} - function add(a,b){return caml_int64_add(a,b)} - function mul(a,b){return caml_int64_mul(a,b)} - function rotl(x,k){return or(shift_l(x,k),shift_r(x,64 - k))} - function get(a,i){return caml_ba_get_1(a,i)} - function set(a,i,x){return caml_ba_set_1(a,i,x)} - var - M=caml_int64_of_string(caml_new_string("0xd1342543de82ef95")), - daba=caml_int64_of_string(caml_new_string("0xdaba0b6eb09322e3")), - z, - q0, - q1, - st=v, - a=get(st,0), - s=get(st,1), - x0=get(st,2), - x1=get(st,3); - z = add(s,x0); - z = mul(xor(z,shift_r(z,32)),daba); - z = mul(xor(z,shift_r(z,32)),daba); - z = xor(z,shift_r(z,32)); - set(st,1,add(mul(s,M),a)); - var q0=x0,q1=x1; - q1 = xor(q1,q0); - q0 = rotl(q0,24); - q0 = xor(xor(q0,q1),shift_l(q1,16)); - q1 = rotl(q1,37); - set(st,2,q0); - set(st,3,q1); - return z} - function caml_sys_const_big_endian(){return 0} - function caml_list_to_js_array(l) - {var a=[];for(;l !== 0;l = l[2])a.push(l[1]);return a} + break; + case 253: + caml_invalid_argument("equal: got Double_tag, should not happen"); + break; + case 254: + caml_invalid_argument + ("equal: got Double_array_tag, should not happen"); + break; + case 255: + caml_invalid_argument("equal: got Custom_tag, should not happen"); + break; + case 1247: + caml_invalid_argument("compare: functional value"); break; + case 1255: + var comp = caml_compare_val_get_custom(a); + if(comp != caml_compare_val_get_custom(b)) + return a.caml_custom < b.caml_custom ? - 1 : 1; + if(! comp) caml_invalid_argument("compare: abstract value"); + var x = comp(a, b, total); + if(x != x) return total ? - 1 : x; + if(x !== (x | 0)) return - 1; + if(x != 0) return x | 0; + break; + case 1256: + var x = a.compare(b, total); + if(x != x) return total ? - 1 : x; + if(x !== (x | 0)) return - 1; + if(x != 0) return x | 0; + break; + case 1000: + a = + a; + b = + b; + if(a < b) return - 1; + if(a > b) return 1; + if(a != b){ + if(! total) return NaN; + if(a == a) return 1; + if(b == b) return - 1; + } + break; + case 1001: + if(a < b) return - 1; + if(a > b) return 1; + if(a != b){ + if(! total) return NaN; + if(a == a) return 1; + if(b == b) return - 1; + } + break; + case 1251: + if(a !== b){if(! total) return NaN; return 1;} break; + case 1252: + var a = caml_jsbytes_of_string(a), b = caml_jsbytes_of_string(b); + if(a !== b){if(a < b) return - 1; if(a > b) return 1;} + break; + case 12520: + var a = a.toString(), b = b.toString(); + if(a !== b){if(a < b) return - 1; if(a > b) return 1;} + break; + case 246: + case 254: + default: + if(caml_is_continuation_tag(tag_a)){ + caml_invalid_argument("compare: continuation value"); + break; + } + if(a.length != b.length) return a.length < b.length ? - 1 : 1; + if(a.length > 1) stack.push(a, b, 1); + break; + } + } + if(stack.length == 0) return 0; + var i = stack.pop(); + b = stack.pop(); + a = stack.pop(); + if(i + 1 < a.length) stack.push(a, b, i + 1); + a = a[i]; + b = b[i]; + } + } + function caml_greaterthan(x, y){ + return + (caml_compare_val(x, y, false) > 0); + } + function div_helper(a, b, c){ var - caml_legacy_custom_code=false, - caml_output_val= - function() - {function Writer(){this.chunk = []} - Writer.prototype - = - {chunk_idx:20, - block_len:0, - obj_counter:0, - size_32:0, - size_64:0, - write: - function(size,value) - {for(var i=size - 8;i >= 0;i -= 8) - this.chunk[this.chunk_idx++] = value >> i & 0xFF}, - write_at: - function(pos,size,value) - {var pos=pos; - for(var i=size - 8;i >= 0;i -= 8) - this.chunk[pos++] = value >> i & 0xFF}, - write_code: - function(size,code,value) - {this.chunk[this.chunk_idx++] = code; - for(var i=size - 8;i >= 0;i -= 8) - this.chunk[this.chunk_idx++] = value >> i & 0xFF}, - write_shared: - function(offset) - {if(offset < 1 << 8) - this.write_code(8,0x04,offset); - else - if(offset < 1 << 16) - this.write_code(16,0x05,offset); - else - this.write_code(32,0x06,offset)}, - pos:function(){return this.chunk_idx}, - finalize: - function() - {this.block_len = this.chunk_idx - 20; - this.chunk_idx = 0; - this.write(32,0x8495A6BE); - this.write(32,this.block_len); - this.write(32,this.obj_counter); - this.write(32,this.size_32); - this.write(32,this.size_64); - return this.chunk}}; - return function(v,flags) - {flags = caml_list_to_js_array(flags); - var - no_sharing=flags.indexOf(0) !== - 1, - closures=flags.indexOf(1) !== - 1; - if(closures) - console.warn - ("in caml_output_val: flag Marshal.Closures is not supported."); - var - writer=new Writer(), - stack=[], - intern_obj_table=no_sharing?null:new MlObjectTable(); - function memo(v) - {if(no_sharing)return false; - var existing_offset=intern_obj_table.recall(v); - if(existing_offset) - {writer.write_shared(existing_offset);return true} - else - {intern_obj_table.store(v);return false}} - function extern_rec(v) - {if(v.caml_custom) - {if(memo(v))return; - var - name=v.caml_custom, - ops=caml_custom_ops[name], - sz_32_64=[0,0]; - if(! ops.serialize) - caml_invalid_argument("output_value: abstract value (Custom)"); - if(caml_legacy_custom_code) - {writer.write(8,0x12); - for(var i=0;i < name.length;i++) - writer.write(8,name.charCodeAt(i)); - writer.write(8,0); - ops.serialize(writer,v,sz_32_64)} - else - if(ops.fixed_length == undefined) - {writer.write(8,0x18); - for(var i=0;i < name.length;i++) - writer.write(8,name.charCodeAt(i)); - writer.write(8,0); - var header_pos=writer.pos(); - for(var i=0;i < 12;i++)writer.write(8,0); - ops.serialize(writer,v,sz_32_64); - writer.write_at(header_pos,32,sz_32_64[0]); - writer.write_at(header_pos + 4,32,0); - writer.write_at(header_pos + 8,32,sz_32_64[1])} - else - {writer.write(8,0x19); - for(var i=0;i < name.length;i++) - writer.write(8,name.charCodeAt(i)); - writer.write(8,0); - var old_pos=writer.pos(); - ops.serialize(writer,v,sz_32_64); - if(ops.fixed_length != writer.pos() - old_pos) - caml_failwith - ("output_value: incorrect fixed sizes specified by " + name)} - writer.size_32 += 2 + (sz_32_64[0] + 3 >> 2); - writer.size_64 += 2 + (sz_32_64[1] + 7 >> 3)} - else - if(v instanceof Array && v[0] === (v[0] | 0)) - {if(v[0] == 251) - caml_failwith("output_value: abstract value (Abstract)"); - if(v.length > 1 && memo(v))return; - if(v[0] < 16 && v.length - 1 < 8) - writer.write(8,0x80 + v[0] + (v.length - 1 << 4)); - else - writer.write_code(32,0x08,v.length - 1 << 10 | v[0]); - writer.size_32 += v.length; - writer.size_64 += v.length; - if(v.length > 1)stack.push(v,1)} - else - if(caml_is_ml_bytes(v)) - {if(! caml_is_ml_bytes(caml_string_of_jsbytes(""))) - caml_failwith - ("output_value: [Bytes.t] cannot safely be marshaled with [--enable use-js-string]"); - if(memo(v))return; - var len=caml_ml_bytes_length(v); - if(len < 0x20) - writer.write(8,0x20 + len); - else - if(len < 0x100) - writer.write_code(8,0x09,len); - else - writer.write_code(32,0x0A,len); - for(var i=0;i < len;i++) - writer.write(8,caml_bytes_unsafe_get(v,i)); - writer.size_32 += 1 + ((len + 4) / 4 | 0); - writer.size_64 += 1 + ((len + 8) / 8 | 0)} - else - if(caml_is_ml_string(v)) - {var len=caml_ml_string_length(v); - if(len < 0x20) - writer.write(8,0x20 + len); - else - if(len < 0x100) - writer.write_code(8,0x09,len); - else - writer.write_code(32,0x0A,len); - for(var i=0;i < len;i++) - writer.write(8,caml_string_unsafe_get(v,i)); - writer.size_32 += 1 + ((len + 4) / 4 | 0); - writer.size_64 += 1 + ((len + 8) / 8 | 0)} - else - if(v != (v | 0)) - {var type_of_v=typeof v; - caml_failwith - ("output_value: abstract value (" + type_of_v + ")")} - else - if(v >= 0 && v < 0x40) - writer.write(8,0X40 + v); - else - if(v >= - (1 << 7) && v < 1 << 7) - writer.write_code(8,0x00,v); - else - if(v >= - (1 << 15) && v < 1 << 15) - writer.write_code(16,0x01,v); - else - writer.write_code(32,0x02,v)} - extern_rec(v); - while(stack.length > 0) - {var i=stack.pop(),v=stack.pop(); - if(i + 1 < v.length)stack.push(v,i + 1); - extern_rec(v[i])} - if(intern_obj_table) - writer.obj_counter = intern_obj_table.objs.length; - writer.finalize(); - return writer.chunk}} + x = a * 65536 + (b >>> 16), + y = Math.floor(x / c) * 65536, + z = x % c * 65536, + w = z + (b & 0x0000FFFF); + return [y + Math.floor(w / c), w % c]; + } + function div_digit_nat(natq, ofsq, natr, ofsr, nat1, ofs1, len, nat2, ofs2){ + var rem = nat1.data[ofs1 + len - 1] >>> 0; + for(var i = len - 2; i >= 0; i--){ + var + x = div_helper(rem, nat1.data[ofs1 + i] >>> 0, nat2.data[ofs2] >>> 0); + natq.data[ofsq + i] = x[0]; + rem = x[1]; + } + natr.data[ofsr] = rem; + return 0; + } + function num_leading_zero_bits_in_digit(nat, ofs){ + var a = nat.data[ofs], b = 0; + if(a & 0xFFFF0000){b += 16; a >>>= 16;} + if(a & 0xFF00){b += 8; a >>>= 8;} + if(a & 0xF0){b += 4; a >>>= 4;} + if(a & 12){b += 2; a >>>= 2;} + if(a & 2){b += 1; a >>>= 1;} + if(a & 1) b += 1; + return 32 - b; + } + function shift_left_nat(nat1, ofs1, len1, nat2, ofs2, nbits){ + if(nbits == 0){nat2.data[ofs2] = 0; return 0;} + var wrap = 0; + for(var i = 0; i < len1; i++){ + var a = nat1.data[ofs1 + i] >>> 0; + nat1.data[ofs1 + i] = a << nbits | wrap; + wrap = a >>> 32 - nbits; + } + nat2.data[ofs2] = wrap; + return 0; + } + function MlNat(x){ + this.data = new Int32Array(x); + this.length = this.data.length + 2; + } + MlNat.prototype.caml_custom = "_nat"; + function create_nat(size){ + var arr = new MlNat(size); + for(var i = 0; i < size; i++) arr.data[i] = - 1; + return arr; + } + function set_to_zero_nat(nat, ofs, len){ + for(var i = 0; i < len; i++) nat.data[ofs + i] = 0; + return 0; + } + function incr_nat(nat, ofs, len, carry_in){ + var carry = carry_in; + for(var i = 0; i < len; i++){ + var x = (nat.data[ofs + i] >>> 0) + carry; + nat.data[ofs + i] = x | 0; + if(x == x >>> 0){carry = 0; break;} else carry = 1; + } + return carry; + } + function add_nat(nat1, ofs1, len1, nat2, ofs2, len2, carry_in){ + var carry = carry_in; + for(var i = 0; i < len2; i++){ + var + x = (nat1.data[ofs1 + i] >>> 0) + (nat2.data[ofs2 + i] >>> 0) + carry; + nat1.data[ofs1 + i] = x; + if(x == x >>> 0) carry = 0; else carry = 1; + } + return incr_nat(nat1, ofs1 + len2, len1 - len2, carry); + } + function nat_of_array(l){return new MlNat(l);} + function mult_digit_nat(nat1, ofs1, len1, nat2, ofs2, len2, nat3, ofs3){ + var carry = 0, a = nat3.data[ofs3] >>> 0; + for(var i = 0; i < len2; i++){ + var + x1 = + (nat1.data[ofs1 + i] >>> 0) + + (nat2.data[ofs2 + i] >>> 0) * (a & 0x0000FFFF) + + carry, + x2 = (nat2.data[ofs2 + i] >>> 0) * (a >>> 16); + carry = Math.floor(x2 / 65536); + var x3 = x1 + x2 % 65536 * 65536; + nat1.data[ofs1 + i] = x3; + carry += Math.floor(x3 / 4294967296); + } + return len2 < len1 && carry + ? add_nat + (nat1, ofs1 + len2, len1 - len2, nat_of_array([carry]), 0, 1, 0) + : carry; + } + function decr_nat(nat, ofs, len, carry_in){ + var borrow = carry_in == 1 ? 0 : 1; + for(var i = 0; i < len; i++){ + var x = (nat.data[ofs + i] >>> 0) - borrow; + nat.data[ofs + i] = x; + if(x >= 0){borrow = 0; break;} else borrow = 1; + } + return borrow == 1 ? 0 : 1; + } + function sub_nat(nat1, ofs1, len1, nat2, ofs2, len2, carry_in){ + var borrow = carry_in == 1 ? 0 : 1; + for(var i = 0; i < len2; i++){ + var + x = (nat1.data[ofs1 + i] >>> 0) - (nat2.data[ofs2 + i] >>> 0) - borrow; + nat1.data[ofs1 + i] = x; + if(x >= 0) borrow = 0; else borrow = 1; + } + return decr_nat(nat1, ofs1 + len2, len1 - len2, borrow == 1 ? 0 : 1); + } + function compare_nat(nat1, ofs1, len1, nat2, ofs2, len2){ + var + a = num_digits_nat(nat1, ofs1, len1), + b = num_digits_nat(nat2, ofs2, len2); + if(a > b) return 1; + if(a < b) return - 1; + for(var i = len1 - 1; i >= 0; i--){ + if(nat1.data[ofs1 + i] >>> 0 > nat2.data[ofs2 + i] >>> 0) return 1; + if(nat1.data[ofs1 + i] >>> 0 < nat2.data[ofs2 + i] >>> 0) return - 1; + } + return 0; + } + function div_nat(nat1, ofs1, len1, nat2, ofs2, len2){ + if(len2 == 1){ + div_digit_nat(nat1, ofs1 + 1, nat1, ofs1, nat1, ofs1, len1, nat2, ofs2); + return 0; + } + var s = num_leading_zero_bits_in_digit(nat2, ofs2 + len2 - 1); + shift_left_nat(nat2, ofs2, len2, nat_of_array([0]), 0, s); + shift_left_nat(nat1, ofs1, len1, nat_of_array([0]), 0, s); + var d = (nat2.data[ofs2 + len2 - 1] >>> 0) + 1, a = create_nat(len2 + 1); + for(var i = len1 - 1; i >= len2; i--){ + var + quo = + d == 4294967296 + ? nat1.data[ofs1 + i] >>> 0 + : div_helper + (nat1.data[ofs1 + i] >>> 0, nat1.data[ofs1 + i - 1] >>> 0, d) + [0]; + set_to_zero_nat(a, 0, len2 + 1); + mult_digit_nat(a, 0, len2 + 1, nat2, ofs2, len2, nat_of_array([quo]), 0); + sub_nat(nat1, ofs1 + i - len2, len2 + 1, a, 0, len2 + 1, 1); + while + (nat1.data[ofs1 + i] != 0 + || compare_nat(nat1, ofs1 + i - len2, len2, nat2, ofs2, len2) >= 0){ + quo = quo + 1; + sub_nat(nat1, ofs1 + i - len2, len2 + 1, nat2, ofs2, len2, 1); + } + nat1.data[ofs1 + i] = quo; + } + shift_right_nat(nat1, ofs1, len2, nat_of_array([0]), 0, s); + shift_right_nat(nat2, ofs2, len2, nat_of_array([0]), 0, s); + return 0; + } + function caml_ba_blit(src, dst){ + if(dst.dims.length != src.dims.length) + caml_invalid_argument("Bigarray.blit: dimension mismatch"); + for(var i = 0; i < dst.dims.length; i++) + if(dst.dims[i] != src.dims[i]) + caml_invalid_argument("Bigarray.blit: dimension mismatch"); + dst.data.set(src.data); + return 0; + } + function is_digit_int(nat, ofs){if(nat.data[ofs] >= 0) return 1; return 0;} + function caml_int64_div(x, y){return x.div(y);} + function caml_js_html_entities(s){ + var entity = /^&#?[0-9a-zA-Z]+;$/; + if(s.match(entity)){ + var str, temp = document.createElement("p"); + temp.innerHTML = s; + str = temp.textContent || temp.innerText; + temp = null; + return str; + } + else + caml_failwith("Invalid entity " + s); + } + function caml_string_unsafe_set(s, i, c){ + caml_failwith("caml_string_unsafe_set"); + } + function caml_int64_of_float(x){ + if(x < 0) x = Math.ceil(x); + return new + MlInt64 + (x & 0xffffff, + Math.floor(x * caml_int64_offset) & 0xffffff, + Math.floor(x * caml_int64_offset * caml_int64_offset) & 0xffff); + } + function caml_ml_channel_size_64(chanid){ + var chan = caml_ml_channels[chanid]; + return caml_int64_of_float(chan.file.length()); + } + function caml_ba_set_2(ba, i0, i1, v){ + ba.set(ba.offset([i0, i1]), v); + return 0; + } + function ml_z_kronecker(n, k){ + caml_failwith("ml_z_kronecker is not implemented"); + } + function ml_z_of_int64(i64){ + var neg = false; + if(caml_int64_compare(i64, caml_int64_create_lo_hi(0, 0)) < 0){neg = true; i64 = caml_int64_neg(i64);} + var + lo = caml_int64_lo32(i64) >>> 0, + hi = caml_int64_hi32(i64) >>> 0, + x = bigInt(lo).add(bigInt(hi).shiftLeft(32)); + if(neg) x = x.negate(); + return ml_z_normalize(x); + } + var + caml_argv = + function(){ + var process = globalThis.process, main = "a.out", args = []; + if(process && process.argv && process.argv.length > 1){ + var argv = process.argv; + main = argv[1]; + args = argv.slice(2); + } + var p = caml_string_of_jsstring(main), args2 = [0, p]; + for(var i = 0; i < args.length; i++) + args2.push(caml_string_of_jsstring(args[i])); + return args2; + } + (), + caml_executable_name = caml_argv[1]; + function caml_js_eval_string(s){return eval(caml_jsstring_of_string(s));} + function serialize_nat(writer, nat, sz){ + var len = nat.data.length; + writer.write(32, len); + for(var i = 0; i < len; i++) writer.write(32, nat.data[i]); + sz[0] = len * 4; + sz[1] = len * 8; + } + function caml_memprof_set(_control){return 0;} + function ml_z_neg(z1){return ml_z_normalize(bigInt(z1).negate());} + function caml_sys_exit(code){ + if(globalThis.quit) globalThis.quit(code); + if(globalThis.process && globalThis.process.exit) + globalThis.process.exit(code); + caml_invalid_argument("Function 'exit' not implemented"); + } + function caml_channel_descriptor(chanid){ + var chan = caml_ml_channels[chanid]; + return chan.fd; + } + function caml_js_from_array(a){return a.slice(1);} + function caml_ba_reshape(ba, vind){ + vind = caml_js_from_array(vind); + var new_dim = [], num_dims = vind.length; + if(num_dims < 0 || num_dims > 16) + caml_invalid_argument("Bigarray.reshape: bad number of dimensions"); + var num_elts = 1; + for(var i = 0; i < num_dims; i++){ + new_dim[i] = vind[i]; + if(new_dim[i] < 0) + caml_invalid_argument("Bigarray.reshape: negative dimension"); + num_elts = num_elts * new_dim[i]; + } + var size = caml_ba_get_size(ba.dims); + if(num_elts != size) + caml_invalid_argument("Bigarray.reshape: size mismatch"); + return caml_ba_create_unsafe(ba.kind, ba.layout, new_dim, ba.data); + } + var caml_oo_last_id = 0; + function caml_set_oo_id(b){b[2] = caml_oo_last_id++; return b;} + function caml_gr_fill_rect(x, y, w, h){ + var s = caml_gr_state_get(); + s.context.fillRect(x, s.height - y, w, - h); + return 0; + } + function caml_bigstring_blit_string_to_ba(str1, pos1, ba2, pos2, len){ + if(12 != ba2.kind) + caml_invalid_argument("caml_bigstring_blit_string_to_ba: kind mismatch"); + if(len == 0) return 0; + var ofs2 = ba2.offset(pos2); + if(pos1 + len > caml_ml_string_length(str1)) caml_array_bound_error(); + if(ofs2 + len > ba2.data.length) caml_array_bound_error(); + var slice = caml_uint8_array_of_string(str1).slice(pos1, pos1 + len); + ba2.data.set(slice, ofs2); + return 0; + } + function caml_gr_set_window_title(name){ + var s = caml_gr_state_get(); + s.title = name; + var jsname = caml_jsstring_of_string(name); + if(s.set_title) s.set_title(jsname); + return 0; + } + function caml_get_global_data(){return caml_global_data;} + function caml_int64_shift_right_unsigned(x, s){return x.shift_right_unsigned(s); + } + function caml_ba_uint8_get16(ba, i0){ + var ofs = ba.offset(i0); + if(ofs + 1 >= ba.data.length) caml_array_bound_error(); + var b1 = ba.get(ofs), b2 = ba.get(ofs + 1); + return b1 | b2 << 8; + } + function ml_z_of_int32(i){return i | 0;} + function caml_compare(a, b){return caml_compare_val(a, b, true);} + var + caml_MD5Transform = + function(){ + function add(x, y){return x + y | 0;} + function xx(q, a, b, x, s, t){ + a = add(add(a, q), add(x, t)); + return add(a << s | a >>> 32 - s, b); + } + function ff(a, b, c, d, x, s, t){ + return xx(b & c | ~ b & d, a, b, x, s, t); + } + function gg(a, b, c, d, x, s, t){ + return xx(b & d | c & ~ d, a, b, x, s, t); + } + function hh(a, b, c, d, x, s, t){return xx(b ^ c ^ d, a, b, x, s, t);} + function ii(a, b, c, d, x, s, t){ + return xx(c ^ (b | ~ d), a, b, x, s, t); + } + return function(w, buffer){ + var a = w[0], b = w[1], c = w[2], d = w[3]; + a = ff(a, b, c, d, buffer[0], 7, 0xD76AA478); + d = ff(d, a, b, c, buffer[1], 12, 0xE8C7B756); + c = ff(c, d, a, b, buffer[2], 17, 0x242070DB); + b = ff(b, c, d, a, buffer[3], 22, 0xC1BDCEEE); + a = ff(a, b, c, d, buffer[4], 7, 0xF57C0FAF); + d = ff(d, a, b, c, buffer[5], 12, 0x4787C62A); + c = ff(c, d, a, b, buffer[6], 17, 0xA8304613); + b = ff(b, c, d, a, buffer[7], 22, 0xFD469501); + a = ff(a, b, c, d, buffer[8], 7, 0x698098D8); + d = ff(d, a, b, c, buffer[9], 12, 0x8B44F7AF); + c = ff(c, d, a, b, buffer[10], 17, 0xFFFF5BB1); + b = ff(b, c, d, a, buffer[11], 22, 0x895CD7BE); + a = ff(a, b, c, d, buffer[12], 7, 0x6B901122); + d = ff(d, a, b, c, buffer[13], 12, 0xFD987193); + c = ff(c, d, a, b, buffer[14], 17, 0xA679438E); + b = ff(b, c, d, a, buffer[15], 22, 0x49B40821); + a = gg(a, b, c, d, buffer[1], 5, 0xF61E2562); + d = gg(d, a, b, c, buffer[6], 9, 0xC040B340); + c = gg(c, d, a, b, buffer[11], 14, 0x265E5A51); + b = gg(b, c, d, a, buffer[0], 20, 0xE9B6C7AA); + a = gg(a, b, c, d, buffer[5], 5, 0xD62F105D); + d = gg(d, a, b, c, buffer[10], 9, 0x02441453); + c = gg(c, d, a, b, buffer[15], 14, 0xD8A1E681); + b = gg(b, c, d, a, buffer[4], 20, 0xE7D3FBC8); + a = gg(a, b, c, d, buffer[9], 5, 0x21E1CDE6); + d = gg(d, a, b, c, buffer[14], 9, 0xC33707D6); + c = gg(c, d, a, b, buffer[3], 14, 0xF4D50D87); + b = gg(b, c, d, a, buffer[8], 20, 0x455A14ED); + a = gg(a, b, c, d, buffer[13], 5, 0xA9E3E905); + d = gg(d, a, b, c, buffer[2], 9, 0xFCEFA3F8); + c = gg(c, d, a, b, buffer[7], 14, 0x676F02D9); + b = gg(b, c, d, a, buffer[12], 20, 0x8D2A4C8A); + a = hh(a, b, c, d, buffer[5], 4, 0xFFFA3942); + d = hh(d, a, b, c, buffer[8], 11, 0x8771F681); + c = hh(c, d, a, b, buffer[11], 16, 0x6D9D6122); + b = hh(b, c, d, a, buffer[14], 23, 0xFDE5380C); + a = hh(a, b, c, d, buffer[1], 4, 0xA4BEEA44); + d = hh(d, a, b, c, buffer[4], 11, 0x4BDECFA9); + c = hh(c, d, a, b, buffer[7], 16, 0xF6BB4B60); + b = hh(b, c, d, a, buffer[10], 23, 0xBEBFBC70); + a = hh(a, b, c, d, buffer[13], 4, 0x289B7EC6); + d = hh(d, a, b, c, buffer[0], 11, 0xEAA127FA); + c = hh(c, d, a, b, buffer[3], 16, 0xD4EF3085); + b = hh(b, c, d, a, buffer[6], 23, 0x04881D05); + a = hh(a, b, c, d, buffer[9], 4, 0xD9D4D039); + d = hh(d, a, b, c, buffer[12], 11, 0xE6DB99E5); + c = hh(c, d, a, b, buffer[15], 16, 0x1FA27CF8); + b = hh(b, c, d, a, buffer[2], 23, 0xC4AC5665); + a = ii(a, b, c, d, buffer[0], 6, 0xF4292244); + d = ii(d, a, b, c, buffer[7], 10, 0x432AFF97); + c = ii(c, d, a, b, buffer[14], 15, 0xAB9423A7); + b = ii(b, c, d, a, buffer[5], 21, 0xFC93A039); + a = ii(a, b, c, d, buffer[12], 6, 0x655B59C3); + d = ii(d, a, b, c, buffer[3], 10, 0x8F0CCC92); + c = ii(c, d, a, b, buffer[10], 15, 0xFFEFF47D); + b = ii(b, c, d, a, buffer[1], 21, 0x85845DD1); + a = ii(a, b, c, d, buffer[8], 6, 0x6FA87E4F); + d = ii(d, a, b, c, buffer[15], 10, 0xFE2CE6E0); + c = ii(c, d, a, b, buffer[6], 15, 0xA3014314); + b = ii(b, c, d, a, buffer[13], 21, 0x4E0811A1); + a = ii(a, b, c, d, buffer[4], 6, 0xF7537E82); + d = ii(d, a, b, c, buffer[11], 10, 0xBD3AF235); + c = ii(c, d, a, b, buffer[2], 15, 0x2AD7D2BB); + b = ii(b, c, d, a, buffer[9], 21, 0xEB86D391); + w[0] = add(a, w[0]); + w[1] = add(b, w[1]); + w[2] = add(c, w[2]); + w[3] = add(d, w[3]);}; + } (); - function caml_string_of_array(a) - {return caml_string_of_jsbytes(caml_subarray_to_jsbytes(a,0,a.length))} - function caml_output_value_to_string(v,flags) - {return caml_string_of_array(caml_output_val(v,flags))} - function caml_raise_not_a_dir(name) - {caml_raise_sys_error(name + ": Not a directory")} - function caml_sys_system_command(cmd) - {var cmd=caml_jsstring_of_string(cmd); - if(typeof require != "undefined") - {var child_process=require("child_process"); - if(child_process && child_process.execSync) - try - {child_process.execSync(cmd,{stdio:"inherit"});return 0} - catch(e){return 1}} - else - return 127} - function caml_js_error_of_exception(exn) - {if(exn.js_error)return exn.js_error;return null} - function caml_unix_getuid(unit) - {if(globalThis.process && globalThis.process.getuid) - return globalThis.process.getuid(); - caml_raise_not_found()} - function deserialize_nat(reader,sz) - {var len=reader.read32s(),nat=new MlNat(len); - for(var i=0;i < len;i++)nat.data[i] = reader.read32s(); - sz[0] = len * 4; - return nat} - function initialize_nat() - {caml_custom_ops["_nat"] - = - {deserialize:deserialize_nat,serialize:serialize_nat,hash:caml_hash_nat}} - function ml_z_succ(z1){return ml_z_normalize(bigInt(z1).next())} - function caml_gr_open_subwindow(a,b,c,d) - {caml_failwith("caml_gr_open_subwindow not Implemented")} - function caml_marshal_data_size(s,ofs) - {function get32(s,i) - {return caml_bytes_unsafe_get(s,i) - << - 24 - | - caml_bytes_unsafe_get(s,i + 1) - << - 16 - | - caml_bytes_unsafe_get(s,i + 2) - << - 8 - | - caml_bytes_unsafe_get(s,i + 3)} - if(get32(s,ofs) != (0x8495A6BE | 0)) - caml_failwith("Marshal.data_size: bad object"); - return get32(s,ofs + 4)} - function MlStringReader(s,i) - {this.s = caml_jsbytes_of_string(s);this.i = i} - MlStringReader.prototype - = - {read8u:function(){return this.s.charCodeAt(this.i++)}, - read8s:function(){return this.s.charCodeAt(this.i++) << 24 >> 24}, - read16u: - function() - {var s=this.s,i=this.i; - this.i = i + 2; - return s.charCodeAt(i) << 8 | s.charCodeAt(i + 1)}, - read16s: - function() - {var s=this.s,i=this.i; - this.i = i + 2; - return s.charCodeAt(i) << 24 >> 16 | s.charCodeAt(i + 1)}, - read32u: - function() - {var s=this.s,i=this.i; - this.i = i + 4; - return (s.charCodeAt(i) - << - 24 - | - s.charCodeAt(i + 1) - << - 16 - | - s.charCodeAt(i + 2) - << - 8 - | - s.charCodeAt(i + 3)) - >>> - 0}, - read32s: - function() - {var s=this.s,i=this.i; - this.i = i + 4; - return s.charCodeAt(i) - << - 24 - | - s.charCodeAt(i + 1) - << - 16 - | - s.charCodeAt(i + 2) - << - 8 - | - s.charCodeAt(i + 3)}, - readstr: - function(len) - {var i=this.i; - this.i = i + len; - return caml_string_of_jsbytes(this.s.substring(i,i + len))}}; - function caml_float_of_bytes(a) - {return caml_int64_float_of_bits(caml_int64_of_bytes(a))} - function caml_input_value_from_reader(reader,ofs) - {var - _magic=reader.read32u(), - _block_len=reader.read32u(), - num_objects=reader.read32u(), - _size_32=reader.read32u(), - _size_64=reader.read32u(), - stack=[], - intern_obj_table=num_objects > 0?[]:null, - obj_counter=0; - function intern_rec() - {var code=reader.read8u(); - if(code >= 0x40) - if(code >= 0x80) - {var tag=code & 0xF,size=code >> 4 & 0x7,v=[tag]; - if(size == 0)return v; - if(intern_obj_table)intern_obj_table[obj_counter++] = v; - stack.push(v,size); - return v} - else - return code & 0x3F; - else - if(code >= 0x20) - {var len=code & 0x1F,v=reader.readstr(len); - if(intern_obj_table)intern_obj_table[obj_counter++] = v; - return v} - else - switch(code) - {case 0x00:return reader.read8s(); - case 0x01:return reader.read16s(); - case 0x02:return reader.read32s(); - case 0x03:caml_failwith("input_value: integer too large");break; - case 0x04: - var offset=reader.read8u(); - return intern_obj_table[obj_counter - offset]; - case 0x05: - var offset=reader.read16u(); - return intern_obj_table[obj_counter - offset]; - case 0x06: - var offset=reader.read32u(); - return intern_obj_table[obj_counter - offset]; - case 0x08: - var - header=reader.read32u(), - tag=header & 0xFF, - size=header >> 10, - v=[tag]; - if(size == 0)return v; - if(intern_obj_table)intern_obj_table[obj_counter++] = v; - stack.push(v,size); - return v; - case 0x13: - caml_failwith("input_value: data block too large");break; - case 0x09: - var len=reader.read8u(),v=reader.readstr(len); - if(intern_obj_table)intern_obj_table[obj_counter++] = v; - return v; - case 0x0A: - var len=reader.read32u(),v=reader.readstr(len); - if(intern_obj_table)intern_obj_table[obj_counter++] = v; - return v; - case 0x0C: - var t=new Array(8); - for(var i=0;i < 8;i++)t[7 - i] = reader.read8u(); - var v=caml_float_of_bytes(t); - if(intern_obj_table)intern_obj_table[obj_counter++] = v; - return v; - case 0x0B: - var t=new Array(8); - for(var i=0;i < 8;i++)t[i] = reader.read8u(); - var v=caml_float_of_bytes(t); - if(intern_obj_table)intern_obj_table[obj_counter++] = v; - return v; - case 0x0E: - var len=reader.read8u(),v=new Array(len + 1); - v[0] = 254; - var t=new Array(8); - if(intern_obj_table)intern_obj_table[obj_counter++] = v; - for(var i=1;i <= len;i++) - {for(var j=0;j < 8;j++)t[7 - j] = reader.read8u(); - v[i] = caml_float_of_bytes(t)} - return v; - case 0x0D: - var len=reader.read8u(),v=new Array(len + 1); - v[0] = 254; - var t=new Array(8); - if(intern_obj_table)intern_obj_table[obj_counter++] = v; - for(var i=1;i <= len;i++) - {for(var j=0;j < 8;j++)t[j] = reader.read8u(); - v[i] = caml_float_of_bytes(t)} - return v; - case 0x07: - var len=reader.read32u(),v=new Array(len + 1); - v[0] = 254; - if(intern_obj_table)intern_obj_table[obj_counter++] = v; - var t=new Array(8); - for(var i=1;i <= len;i++) - {for(var j=0;j < 8;j++)t[7 - j] = reader.read8u(); - v[i] = caml_float_of_bytes(t)} - return v; - case 0x0F: - var len=reader.read32u(),v=new Array(len + 1); - v[0] = 254; - var t=new Array(8); - for(var i=1;i <= len;i++) - {for(var j=0;j < 8;j++)t[j] = reader.read8u(); - v[i] = caml_float_of_bytes(t)} - return v; - case 0x10: - case 0x11:caml_failwith("input_value: code pointer");break; - case 0x12: - case 0x18: - case 0x19: - var c,s=""; - while((c = reader.read8u()) != 0)s += String.fromCharCode(c); - var ops=caml_custom_ops[s],expected_size; - if(! ops) - caml_failwith("input_value: unknown custom block identifier"); - switch(code) - {case 0x12:break; - case 0x19: - if(! ops.fixed_length) - caml_failwith - ("input_value: expected a fixed-size custom block"); - expected_size = ops.fixed_length; - break; - case 0x18: - expected_size = reader.read32u(); - reader.read32s(); - reader.read32s(); - break - } - var old_pos=reader.i,size=[0],v=ops.deserialize(reader,size); - if(expected_size != undefined) - if(expected_size != size[0]) - caml_failwith - ("input_value: incorrect length of serialized custom block"); - if(intern_obj_table)intern_obj_table[obj_counter++] = v; - return v; - default:caml_failwith("input_value: ill-formed message")}} - var res=intern_rec(); - while(stack.length > 0) - {var size=stack.pop(),v=stack.pop(),d=v.length; - if(d < size)stack.push(v,size); - v[d] = intern_rec()} - if(typeof ofs != "number")ofs[0] = reader.i; - return res} - function caml_string_of_bytes(s){return s} - function caml_input_value_from_bytes(s,ofs) - {var - reader= - new - MlStringReader - (caml_string_of_bytes(s),typeof ofs == "number"?ofs:ofs[0]); - return caml_input_value_from_reader(reader,ofs)} - function caml_input_value(chanid) - {var chan=caml_ml_channels[chanid],header=new Uint8Array(20); - function block(buffer,offset,n) - {var r=0; - while(r < n) - {if(chan.buffer_curr >= chan.buffer_max) - {chan.buffer_curr = 0;chan.buffer_max = 0;caml_refill(chan)} - if(chan.buffer_curr >= chan.buffer_max)break; - buffer[offset + r] = chan.buffer[chan.buffer_curr]; - chan.buffer_curr++; - r++} - return r} - var r=block(header,0,20); - if(r == 0) - caml_raise_end_of_file(); - else - if(r < 20)caml_failwith("input_value: truncated object"); - var - len=caml_marshal_data_size(caml_bytes_of_array(header),0), - buf=new Uint8Array(len + 20); - buf.set(header,0); - var r=block(buf,20,len); - if(r < len) - caml_failwith("input_value: truncated object " + r + " " + len); - var - offset=[0], - res=caml_input_value_from_bytes(caml_bytes_of_array(buf),offset); - chan.offset = chan.offset + offset[0]; - return res} - function caml_input_value_to_outside_heap(c){return caml_input_value(c)} - function caml_atomic_cas(ref,o,n) - {if(ref[1] === o){ref[1] = n;return 1}return 0} - function caml_copysign_float(x,y) - {if(y == 0)y = 1 / y;x = Math.abs(x);return y < 0?- x:x} - function caml_gr_set_text_size(size) - {var s=caml_gr_state_get(); - s.text_size = size; - s.context.font = s.text_size + "px " + caml_jsstring_of_string(s.font); - return 0} - function caml_atomic_load(ref){return ref[1]} - function caml_MD5Final(ctx) - {var in_buf=ctx.len & 0x3f; - ctx.b8[in_buf] = 0x80; - in_buf++; - if(in_buf > 56) - {for(var j=in_buf;j < 64;j++)ctx.b8[j] = 0; - caml_MD5Transform(ctx.w,ctx.b32); - for(var j=0;j < 56;j++)ctx.b8[j] = 0} - else - for(var j=in_buf;j < 56;j++)ctx.b8[j] = 0; - ctx.b32[14] = ctx.len << 3; - ctx.b32[15] = ctx.len >> 29 & 0x1FFFFFFF; - caml_MD5Transform(ctx.w,ctx.b32); - var t=new Uint8Array(16); - for(var i=0;i < 4;i++) - for(var j=0;j < 4;j++)t[i * 4 + j] = ctx.w[i] >> 8 * j & 0xFF; - return t} - function caml_md5_bytes(s,ofs,len) - {var ctx=caml_MD5Init(),a=caml_uint8_array_of_bytes(s); - caml_MD5Update(ctx,a.subarray(ofs,ofs + len),len); - return caml_string_of_array(caml_MD5Final(ctx))} - function caml_ba_set_generic(ba,i,v) - {ba.set(ba.offset(caml_js_from_array(i)),v);return 0} - function caml_ml_condition_wait(t,mutext){return 0} - function caml_bytes_lessequal(s1,s2) - {s1.t & 6 && caml_convert_string_to_bytes(s1); - s2.t & 6 && caml_convert_string_to_bytes(s2); - return s1.c <= s2.c?1:0} - function caml_string_lessequal(s1,s2){return caml_bytes_lessequal(s1,s2)} - function caml_string_greaterequal(s1,s2) - {return caml_string_lessequal(s2,s1)} - function caml_nextafter_float(x,y) - {if(isNaN(x) || isNaN(y))return NaN; - if(x == y)return y; - if(x == 0)return y < 0?- Math.pow(2,- 1074):Math.pow(2,- 1074); - var bits=caml_int64_bits_of_float(x),one=caml_int64_of_int32(1); - if(x < y == x > 0) - bits = caml_int64_add(bits,one); - else - bits = caml_int64_sub(bits,one); - return caml_int64_float_of_bits(bits)} - function caml_gr_size_y(){var s=caml_gr_state_get();return s.height} - function ml_z_fac2(i) - {if(i <= 0)caml_invalid_argument("Z.fact2: negative arguments"); - return ml_z_facM(i,2)} - function caml_pos_in(chanid) - {var chan=caml_ml_channels[chanid]; - return chan.offset - (chan.buffer_max - chan.buffer_curr)} - function caml_ml_pos_in(chanid){return caml_pos_in(chanid)} - function caml_int64_and(x,y){return x.and(y)} - function caml_sys_const_word_size(){return 32} - function ml_z_bin(n,k) - {var n=bigInt(n),k=bigInt(k),coeff=bigInt(1); - for(var x=n.minus(k).add(bigInt(1));x.leq(n);x = x.add(bigInt(1))) - coeff = coeff.multiply(x); - for(x = bigInt(1);x.leq(k);x = x.add(bigInt(1)))coeff = coeff.divide(x); - return ml_z_normalize(coeff)} - function caml_unix_unlink(name) - {var root=resolve_fs_device(name); - if(! root.device.unlink) - caml_failwith("caml_unix_unlink: not implemented"); - return root.device.unlink(root.rest,true)} - function caml_sys_open_for_node(fd,flags) - {if(flags.name) - try - {var fs=require("fs"),fd2=fs.openSync(flags.name,"rs"); - return new MlNodeFd(fd2,flags)} - catch(e){} - return new MlNodeFd(fd,flags)} - function MlFakeFd_out(fd,flags) - {MlFakeFile.call(this,caml_create_bytes(0)); - this.log = function(s){return 0}; - if(fd == 1 && typeof console.log == "function") - this.log = console.log; - else - if(fd == 2 && typeof console.error == "function") - this.log = console.error; - else - if(typeof console.log == "function")this.log = console.log; - this.flags = flags} - MlFakeFd_out.prototype.length = function(){return 0}; - MlFakeFd_out.prototype.write - = - function(offset,buf,pos,len) - {if(this.log) - {if - (len - > - 0 - && - pos - >= - 0 - && - pos - + - len - <= - buf.length - && - buf[pos + len - 1] - == - 10) - len--; - var src=caml_create_bytes(len); - caml_blit_bytes(caml_bytes_of_array(buf),pos,src,0,len); - this.log(src.toUtf16()); - return 0} - caml_raise_sys_error(this.fd + ": file descriptor already closed")}; - MlFakeFd_out.prototype.read - = - function(offset,buf,pos,len) - {caml_raise_sys_error(this.fd + ": file descriptor is write only")}; - MlFakeFd_out.prototype.close = function(){this.log = undefined}; - function caml_sys_open_internal(file,idx) - {if(idx == undefined)idx = caml_sys_fds.length; - caml_sys_fds[idx] = file; - return idx} - function caml_sys_open(name,flags,_perms) - {var f={}; - while(flags) - {switch(flags[1]) - {case 0:f.rdonly = 1;break; - case 1:f.wronly = 1;break; - case 2:f.append = 1;break; - case 3:f.create = 1;break; - case 4:f.truncate = 1;break; - case 5:f.excl = 1;break; - case 6:f.binary = 1;break; - case 7:f.text = 1;break; - case 8:f.nonblock = 1;break - } - flags = flags[2]} - if(f.rdonly && f.wronly) - caml_raise_sys_error - (caml_jsbytes_of_string(name) - + - " : flags Open_rdonly and Open_wronly are not compatible"); - if(f.text && f.binary) - caml_raise_sys_error - (caml_jsbytes_of_string(name) - + - " : flags Open_text and Open_binary are not compatible"); - var root=resolve_fs_device(name),file=root.device.open(root.rest,f); - return caml_sys_open_internal(file,undefined)} - (function() - {function file(fd,flags) - {return fs_node_supported() - ?caml_sys_open_for_node(fd,flags) - :new MlFakeFd_out(fd,flags)} - caml_sys_open_internal - (file(0,{rdonly:1,altname:"/dev/stdin",isCharacterDevice:true}),0); - caml_sys_open_internal - (file(1,{buffered:2,wronly:1,isCharacterDevice:true}),1); - caml_sys_open_internal - (file(2,{buffered:2,wronly:1,isCharacterDevice:true}),2)} - ()); - function ml_z_gcd(z1,z2) - {return ml_z_normalize(bigInt.gcd(bigInt(z1),bigInt(z2)).abs())} - function ml_z_mul(z1,z2) - {return ml_z_normalize(bigInt(z1).multiply(bigInt(z2)))} - function ml_z_hamdist(z1,z2) - {if(bigInt(z1).isNegative() != bigInt(z2).isNegative()) - caml_raise_constant(caml_named_value("ml_z_overflow")); - if - ((z1 != (z1 | 0) || z2 != (z2 | 0)) - && - (bigInt(z1).isNegative() || bigInt(z2).isNegative())) - caml_invalid_argument("Z.hamdist: negative arguments"); - return ml_z_popcount(bigInt(z1).xor(bigInt(z2)))} - function caml_string_get(s,i) - {if(i >>> 0 >= caml_ml_string_length(s))caml_string_bound_error(); - return caml_string_unsafe_get(s,i)} + function caml_MD5Update(ctx, input, input_len){ + var in_buf = ctx.len & 0x3f, input_pos = 0; + ctx.len += input_len; + if(in_buf){ + var missing = 64 - in_buf; + if(input_len < missing){ + ctx.b8.set(input.subarray(0, input_len), in_buf); + return; + } + ctx.b8.set(input.subarray(0, missing), in_buf); + caml_MD5Transform(ctx.w, ctx.b32); + input_len -= missing; + input_pos += missing; + } + while(input_len >= 64){ + ctx.b8.set(input.subarray(input_pos, input_pos + 64), 0); + caml_MD5Transform(ctx.w, ctx.b32); + input_len -= 64; + input_pos += 64; + } + if(input_len) + ctx.b8.set(input.subarray(input_pos, input_pos + input_len), 0); + } + function caml_runtime_events_read_poll(cursor, callbacks, num){return 0;} + function caml_fresh_oo_id(){return caml_oo_last_id++;} + function caml_int64_to_float(x){return x.toFloat();} + function caml_ba_get_1(ba, i0){return ba.get(ba.offset(i0));} + function caml_bigstring_memcmp(s1, pos1, s2, pos2, len){ + for(var i = 0; i < len; i++){ + var a = caml_ba_get_1(s1, pos1 + i), b = caml_ba_get_1(s2, pos2 + i); + if(a < b) return - 1; + if(a > b) return 1; + } + return 0; + } + function caml_new_string(s){return caml_string_of_jsbytes(s);} + function caml_erf_float(x){ var - re_match= - function() - {var - re_word_letters= + a1 = 0.254829592, + a2 = - 0.284496736, + a3 = 1.421413741, + a4 = - 1.453152027, + a5 = 1.061405429, + p = 0.3275911, + sign = 1; + if(x < 0) sign = - 1; + x = Math.abs(x); + var + t = 1.0 / (1.0 + p * x), + y = + 1.0 + - + ((((a5 * t + a4) * t + a3) * t + a2) * t + a1) * t + * Math.exp(- (x * x)); + return sign * y; + } + function caml_ba_uint8_get32(ba, i0){ + var ofs = ba.offset(i0); + if(ofs + 3 >= ba.data.length) caml_array_bound_error(); + var + b1 = ba.get(ofs + 0), + b2 = ba.get(ofs + 1), + b3 = ba.get(ofs + 2), + b4 = ba.get(ofs + 3); + return b1 << 0 | b2 << 8 | b3 << 16 | b4 << 24; + } + function caml_raw_backtrace_length(){return 0;} + function ml_z_shift_right(z1, amt){ + return ml_z_normalize(bigInt(z1).shiftRight(amt)); + } + function caml_str_initialize(unit){return 0;} + function caml_obj_block(tag, size){ + var o = new Array(size + 1); + o[0] = tag; + for(var i = 1; i <= size; i++) o[i] = 0; + return o; + } + function caml_gr_clear_graph(){ + var s = caml_gr_state_get(); + s.canvas.width = s.width; + s.canvas.height = s.height; + return 0; + } + function bigstring_to_array_buffer(bs){return bs.data.buffer;} + function caml_sys_const_naked_pointers_checked(_unit){return 0;} + function lxor_digit_nat(nat1, ofs1, nat2, ofs2){nat1.data[ofs1] ^= nat2.data[ofs2]; return 0; + } + function caml_obj_add_offset(v, offset){ + caml_failwith("Obj.add_offset is not supported"); + } + function caml_final_release(){return 0;} + var caml_marshal_header_size = 20; + function caml_js_to_array(a){ + var len = a.length, b = new Array(len + 1); + b[0] = 0; + for(var i = 0; i < len; i++) b[i + 1] = a[i]; + return b; + } + function ml_z_logor(z1, z2){ + return ml_z_normalize(bigInt(z1).or(bigInt(z2))); + } + function caml_sys_is_regular_file(name){ + var root = resolve_fs_device(name); + return root.device.isFile(root.rest); + } + function caml_gr_plot(x, y){ + var + s = caml_gr_state_get(), + im = s.context.createImageData(1, 1), + d = im.data, + color = s.color; + d[0] = color >> 16 & 0xff; + d[1] = color >> 8 & 0xff, d[2] = color >> 0 & 0xff; + d[3] = 0xFF; + s.x = x; + s.y = y; + s.context.putImageData(im, x, s.height - y); + return 0; + } + function caml_bytes_set64(s, i, i64){ + if(i >>> 0 >= s.l - 7) caml_bytes_bound_error(); + var a = caml_int64_to_bytes(i64); + for(var j = 0; j < 8; j++) caml_bytes_unsafe_set(s, i + 7 - j, a[j]); + return 0; + } + function caml_string_set16(s, i, i16){caml_failwith("caml_string_set16");} + function caml_int64_bswap(x){ + var y = caml_int64_to_bytes(x); + return caml_int64_of_bytes + ([y[7], y[6], y[5], y[4], y[3], y[2], y[1], y[0]]); + } + function ml_z_fits_int(z1){return z1 == (z1 | 0) ? 1 : 0;} + function ml_z_fits_int32(z1){return ml_z_fits_int(z1);} + function caml_gc_major(unit){ + if(typeof globalThis.gc == "function") globalThis.gc(); + return 0; + } + function ml_z_shift_left(z1, amt){ + return ml_z_normalize(bigInt(z1).shiftLeft(amt)); + } + function caml_lex_array(s){ + s = caml_jsbytes_of_string(s); + var l = s.length / 2, a = new Array(l); + for(var i = 0; i < l; i++) + a[i] = (s.charCodeAt(2 * i) | s.charCodeAt(2 * i + 1) << 8) << 16 >> 16; + return a; + } + function caml_lex_engine(tbl, start_state, lexbuf){ + var + lex_buffer = 2, + lex_buffer_len = 3, + lex_start_pos = 5, + lex_curr_pos = 6, + lex_last_pos = 7, + lex_last_action = 8, + lex_eof_reached = 9, + lex_base = 1, + lex_backtrk = 2, + lex_default = 3, + lex_trans = 4, + lex_check = 5; + if(! tbl.lex_default){ + tbl.lex_base = caml_lex_array(tbl[lex_base]); + tbl.lex_backtrk = caml_lex_array(tbl[lex_backtrk]); + tbl.lex_check = caml_lex_array(tbl[lex_check]); + tbl.lex_trans = caml_lex_array(tbl[lex_trans]); + tbl.lex_default = caml_lex_array(tbl[lex_default]); + } + var + c, + state = start_state, + buffer = caml_uint8_array_of_bytes(lexbuf[lex_buffer]); + if(state >= 0){ + lexbuf[lex_last_pos] = lexbuf[lex_start_pos] = lexbuf[lex_curr_pos]; + lexbuf[lex_last_action] = - 1; + } + else + state = - state - 1; + for(;;){ + var base = tbl.lex_base[state]; + if(base < 0) return - base - 1; + var backtrk = tbl.lex_backtrk[state]; + if(backtrk >= 0){ + lexbuf[lex_last_pos] = lexbuf[lex_curr_pos]; + lexbuf[lex_last_action] = backtrk; + } + if(lexbuf[lex_curr_pos] >= lexbuf[lex_buffer_len]) + if(lexbuf[lex_eof_reached] == 0) return - state - 1; else c = 256; + else{c = buffer[lexbuf[lex_curr_pos]]; lexbuf[lex_curr_pos]++;} + if(tbl.lex_check[base + c] == state) + state = tbl.lex_trans[base + c]; + else + state = tbl.lex_default[state]; + if(state < 0){ + lexbuf[lex_curr_pos] = lexbuf[lex_last_pos]; + if(lexbuf[lex_last_action] == - 1) + caml_failwith("lexing: empty token"); + else + return lexbuf[lex_last_action]; + } + else if(c == 256) lexbuf[lex_eof_reached] = 0; + } + } + function caml_sys_file_exists(name){ + var root = resolve_fs_device(name); + return root.device.exists(root.rest); + } + function caml_convert_raw_backtrace_slot(){ + caml_failwith("caml_convert_raw_backtrace_slot"); + } + function caml_array_sub(a, i, len){ + var a2 = new Array(len + 1); + a2[0] = 0; + for(var i2 = 1, i1 = i + 1; i2 <= len; i2++, i1++) a2[i2] = a[i1]; + return a2; + } + function caml_bytes_equal(s1, s2){ + if(s1 === s2) return 1; + s1.t & 6 && caml_convert_string_to_bytes(s1); + s2.t & 6 && caml_convert_string_to_bytes(s2); + return s1.c == s2.c ? 1 : 0; + } + function caml_gr_size_x(){var s = caml_gr_state_get(); return s.width;} + function caml_ml_debug_info_status(){return 0;} + function caml_atomic_fetch_add(ref, i){ + var old = ref[1]; + ref[1] += i; + return old; + } + var + os_type = + globalThis.process && globalThis.process.platform + && globalThis.process.platform == "win32" + ? "Cygwin" + : "Unix"; + function caml_sys_const_ostype_cygwin(){return os_type == "Cygwin" ? 1 : 0; + } + function caml_cosh_float(x){return Math.cosh(x);} + function MlMutex(){this.locked = false;} + function caml_ml_mutex_new(unit){return new MlMutex();} + var caml_ephe_key_offset = 3; + function caml_ephe_check_key(x, i){ + var weak = x[caml_ephe_key_offset + i]; + if(globalThis.WeakRef && weak instanceof globalThis.WeakRef) + weak = weak.deref(); + return weak === undefined ? 0 : 1; + } + function caml_hash_mix_final(h){ + h ^= h >>> 16; + h = caml_mul(h, 0x85ebca6b | 0); + h ^= h >>> 13; + h = caml_mul(h, 0xc2b2ae35 | 0); + h ^= h >>> 16; + return h; + } + function caml_gr_text_size(txt){ + var + s = caml_gr_state_get(), + w = s.context.measureText(caml_jsstring_of_string(txt)).width; + return [0, w, s.text_size]; + } + function caml_lex_run_mem(s, i, mem, curr_pos){ + for(;;){ + var dst = s.charCodeAt(i); + i++; + if(dst == 0xff) return; + var src = s.charCodeAt(i); + i++; + if(src == 0xff) + mem[dst + 1] = curr_pos; + else + mem[dst + 1] = mem[src + 1]; + } + } + function caml_lex_run_tag(s, i, mem){ + for(;;){ + var dst = s.charCodeAt(i); + i++; + if(dst == 0xff) return; + var src = s.charCodeAt(i); + i++; + if(src == 0xff) mem[dst + 1] = - 1; else mem[dst + 1] = mem[src + 1]; + } + } + function caml_new_lex_engine(tbl, start_state, lexbuf){ + var + lex_buffer = 2, + lex_buffer_len = 3, + lex_start_pos = 5, + lex_curr_pos = 6, + lex_last_pos = 7, + lex_last_action = 8, + lex_eof_reached = 9, + lex_mem = 10, + lex_base = 1, + lex_backtrk = 2, + lex_default = 3, + lex_trans = 4, + lex_check = 5, + lex_base_code = 6, + lex_backtrk_code = 7, + lex_default_code = 8, + lex_trans_code = 9, + lex_check_code = 10, + lex_code = 11; + if(! tbl.lex_default){ + tbl.lex_base = caml_lex_array(tbl[lex_base]); + tbl.lex_backtrk = caml_lex_array(tbl[lex_backtrk]); + tbl.lex_check = caml_lex_array(tbl[lex_check]); + tbl.lex_trans = caml_lex_array(tbl[lex_trans]); + tbl.lex_default = caml_lex_array(tbl[lex_default]); + } + if(! tbl.lex_default_code){ + tbl.lex_base_code = caml_lex_array(tbl[lex_base_code]); + tbl.lex_backtrk_code = caml_lex_array(tbl[lex_backtrk_code]); + tbl.lex_check_code = caml_lex_array(tbl[lex_check_code]); + tbl.lex_trans_code = caml_lex_array(tbl[lex_trans_code]); + tbl.lex_default_code = caml_lex_array(tbl[lex_default_code]); + } + if(tbl.lex_code == null) + tbl.lex_code = caml_jsbytes_of_string(tbl[lex_code]); + var + c, + state = start_state, + buffer = caml_uint8_array_of_bytes(lexbuf[lex_buffer]); + if(state >= 0){ + lexbuf[lex_last_pos] = lexbuf[lex_start_pos] = lexbuf[lex_curr_pos]; + lexbuf[lex_last_action] = - 1; + } + else + state = - state - 1; + for(;;){ + var base = tbl.lex_base[state]; + if(base < 0){ + var pc_off = tbl.lex_base_code[state]; + caml_lex_run_tag(tbl.lex_code, pc_off, lexbuf[lex_mem]); + return - base - 1; + } + var backtrk = tbl.lex_backtrk[state]; + if(backtrk >= 0){ + var pc_off = tbl.lex_backtrk_code[state]; + caml_lex_run_tag(tbl.lex_code, pc_off, lexbuf[lex_mem]); + lexbuf[lex_last_pos] = lexbuf[lex_curr_pos]; + lexbuf[lex_last_action] = backtrk; + } + if(lexbuf[lex_curr_pos] >= lexbuf[lex_buffer_len]) + if(lexbuf[lex_eof_reached] == 0) return - state - 1; else c = 256; + else{c = buffer[lexbuf[lex_curr_pos]]; lexbuf[lex_curr_pos]++;} + var pstate = state; + if(tbl.lex_check[base + c] == state) + state = tbl.lex_trans[base + c]; + else + state = tbl.lex_default[state]; + if(state < 0){ + lexbuf[lex_curr_pos] = lexbuf[lex_last_pos]; + if(lexbuf[lex_last_action] == - 1) + caml_failwith("lexing: empty token"); + else + return lexbuf[lex_last_action]; + } + else{ + var base_code = tbl.lex_base_code[pstate], pc_off; + if(tbl.lex_check_code[base_code + c] == pstate) + pc_off = tbl.lex_trans_code[base_code + c]; + else + pc_off = tbl.lex_default_code[pstate]; + if(pc_off > 0) + caml_lex_run_mem + (tbl.lex_code, pc_off, lexbuf[lex_mem], lexbuf[lex_curr_pos]); + if(c == 256) lexbuf[lex_eof_reached] = 0; + } + } + } + function caml_ba_uint8_set64(ba, i0, v){ + var ofs = ba.offset(i0); + if(ofs + 7 >= ba.data.length) caml_array_bound_error(); + var v = caml_int64_to_bytes(v); + for(var i = 0; i < 8; i++) ba.set(ofs + i, v[7 - i]); + return 0; + } + function ml_z_popcount(z){ + z = bigInt(z); + var zero = bigInt(0), one = bigInt(1); + if(z.lt(zero)) caml_raise_constant(caml_named_value("ml_z_overflow")); + var i; + for(i = 0; ! z.equals(zero); i++) z = z.and(z.prev()); + if(i != (i | 0)) caml_raise_constant(caml_named_value("ml_z_overflow")); + return i | 0; + } + function caml_sys_executable_name(a){return caml_executable_name;} + function caml_lessequal(x, y){ + return + (caml_compare_val(x, y, false) <= 0); + } + function caml_acosh_float(x){return Math.acosh(x);} + function caml_MD5Init(){ + var + buffer = new ArrayBuffer(64), + b32 = new Uint32Array(buffer), + b8 = new Uint8Array(buffer); + return {len: 0, + w: + new Uint32Array([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476]), + b32: b32, + b8: b8}; + } + function caml_ml_flush(chanid){ + var chan = caml_ml_channels[chanid]; + if(! chan.opened) caml_raise_sys_error("Cannot flush a closed channel"); + if(! chan.buffer || chan.buffer_curr == 0) return 0; + if(chan.output) + chan.output(caml_subarray_to_jsbytes(chan.buffer, 0, chan.buffer_curr)); + else + chan.file.write(chan.offset, chan.buffer, 0, chan.buffer_curr); + chan.offset += chan.buffer_curr; + chan.buffer_curr = 0; + return 0; + } + function caml_seek_out(chanid, pos){ + caml_ml_flush(chanid); + var chan = caml_ml_channels[chanid]; + chan.offset = pos; + return 0; + } + function caml_ml_seek_out_64(chanid, pos){ + var pos = caml_int64_to_float(pos); + return caml_seek_out(chanid, pos); + } + function compare_nat_real(nat1, nat2){ + return compare_nat(nat1, 0, nat1.data.length, nat2, 0, nat2.data.length); + } + function caml_gc_set(_control){return 0;} + function caml_js_get(o, f){return o[f];} + function caml_unix_isatty(fileDescriptor){ + if(fs_node_supported()){ + var tty = require("tty"); + return tty.isatty(fileDescriptor) ? 1 : 0; + } + else + return 0; + } + function caml_ml_set_buffered(chanid, v){ + caml_ml_channels[chanid].buffered = v; + if(! v) caml_ml_flush(chanid); + return 0; + } + function caml_gc_compaction(){return 0;} + function caml_ephe_get_key(x, i){ + if(i < 0 || caml_ephe_key_offset + i >= x.length) + caml_invalid_argument("Weak.get_key"); + var weak = x[caml_ephe_key_offset + i]; + if(globalThis.WeakRef && weak instanceof globalThis.WeakRef) + weak = weak.deref(); + return weak === undefined ? 0 : [0, weak]; + } + function caml_unix_localtime(t){ + var + d = new Date(t * 1000), + d_num = d.getTime(), + januaryfirst = new Date(d.getFullYear(), 0, 1).getTime(), + doy = Math.floor((d_num - januaryfirst) / 86400000), + jan = new Date(d.getFullYear(), 0, 1), + jul = new Date(d.getFullYear(), 6, 1), + stdTimezoneOffset = + Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset()); + return [0, + d.getSeconds(), + d.getMinutes(), + d.getHours(), + d.getDate(), + d.getMonth(), + d.getFullYear() - 1900, + d.getDay(), + doy, + d.getTimezoneOffset() < stdTimezoneOffset | 0]; + } + function caml_unix_mktime(tm){ + var + d = new Date(tm[6] + 1900, tm[5], tm[4], tm[3], tm[2], tm[1]).getTime(), + t = Math.floor(d / 1000), + tm2 = caml_unix_localtime(t); + return [0, t, tm2]; + } + function jsoo_z_of_js_string_base(base, s){ + if(base == 0){ + base = 10; + var p = 0, sign = 1; + if(s[p] == "-"){sign = - 1; p++;} else if(s[p] == "+") p++; + if(s[p] == "0"){ + p++; + if(s.length == p) + return 0; + else{ + var bc = s[p]; + if(bc == "o" || bc == "O") + base = 8; + else if(bc == "x" || bc == "X") + base = 16; + else if(bc == "b" || bc == "B") base = 2; + if(base != 10){s = s.substring(p + 1); if(sign == - 1) s = "-" + s;} + } + } + } + function digit(code){ + if(code >= 48 && code <= 57) return code - 48; + if(code >= 97 && code <= 102) return code - 97 + 10; + if(code >= 65 && code <= 70) return code - 65 + 10; + } + var i = 0; + if(s[i] == "+") s = s.substring(1); else if(s[i] == "-") i++; + if(s[i] == "_") + caml_invalid_argument("Z.of_substring_base: invalid digit"); + s = s.replace(/_/g, ""); + if(s == "-" || s == "") s = "0"; + for(; i < s.length; i++){ + var c = digit(s.charCodeAt(i)); + if(c == undefined || c >= base) + caml_invalid_argument("Z.of_substring_base: invalid digit"); + } + return ml_z_normalize(bigInt(s, base)); + } + function ml_z_of_substring_base(base, s, pos, len){ + s = caml_jsbytes_of_string(s); + if(pos != 0 || len != s.length){ + if(s.length - pos < len) + caml_invalid_argument("Z.of_substring_base: invalid offset or length"); + s = s.slice(pos, pos + len); + } + return jsoo_z_of_js_string_base(base, s); + } + function caml_bigstring_blit_bytes_to_ba(str1, pos1, ba2, pos2, len){ + if(12 != ba2.kind) + caml_invalid_argument("caml_bigstring_blit_string_to_ba: kind mismatch"); + if(len == 0) return 0; + var ofs2 = ba2.offset(pos2); + if(pos1 + len > caml_ml_bytes_length(str1)) caml_array_bound_error(); + if(ofs2 + len > ba2.data.length) caml_array_bound_error(); + var slice = caml_uint8_array_of_bytes(str1).slice(pos1, pos1 + len); + ba2.data.set(slice, ofs2); + return 0; + } + var caml_sys_fds = new Array(3); + function caml_sys_close(fd){ + var file = caml_sys_fds[fd]; + if(file) file.close(); + delete caml_sys_fds[fd]; + return 0; + } + function caml_ml_close_channel(chanid){ + var chan = caml_ml_channels[chanid]; + chan.opened = false; + caml_sys_close(chan.fd); + return 0; + } + function caml_atomic_exchange(ref, v){ + var r = ref[1]; + ref[1] = v; + return r; + } + function caml_sys_isatty(_chan){return 0;} + function is_digit_zero(nat, ofs){ + if(nat.data[ofs] == 0) return 1; + return 0; + } + function caml_unix_lstat(name){ + var root = resolve_fs_device(name); + if(! root.device.lstat) caml_failwith("caml_unix_lstat: not implemented"); + return root.device.lstat(root.rest, true); + } + function caml_unix_lstat_64(name){ + var r = caml_unix_lstat(name); + r[9] = caml_int64_of_int32(r[9]); + } + function caml_js_set(o, f, v){o[f] = v; return 0;} + function ml_z_gcdext_intern(z1, z2){ + z1 = bigInt(z1); + z2 = bigInt(z2); + var + gcd = bigInt.gcd(z1, z2), + a = z1, + b = z2, + x = bigInt(0), + lastx = bigInt(1), + y = bigInt(1), + lasty = bigInt(1), + q, + t, + r; + if(z1.equals(bigInt(0))) caml_raise_zero_divide(); + while(! b.equals(bigInt(0))){ + q = a.divide(b); + r = a.subtract(q.multiply(b)); + t = x; + x = lastx.subtract(q.multiply(x)); + lastx = t; + t = y; + y = lasty.subtract(q.multiply(y)); + lasty = t; + a = b; + b = r; + } + return a.lt(bigInt(0)) + ? [0, + ml_z_normalize(a.negate()), + ml_z_normalize(lastx.negate()), + 1] + : [0, ml_z_normalize(a), ml_z_normalize(lastx), 1]; + } + function ml_z_testbit(z, pos){ + z = bigInt(z); + return z.shiftRight(pos).and(bigInt(1)).toJSNumber() | 0; + } + function caml_array_get(array, index){ + if(index < 0 || index >= array.length - 1) caml_array_bound_error(); + return array[index + 1]; + } + function caml_continuation_use_noexc(cont){ + var stack = cont[1]; + cont[1] = 0; + return stack; + } + function caml_unix_rmdir(name){ + var root = resolve_fs_device(name); + if(! root.device.rmdir) caml_failwith("caml_unix_rmdir: not implemented"); + return root.device.rmdir(root.rest, true); + } + function caml_log2_float(x){return Math.log2(x);} + function caml_gc_huge_fallback_count(unit){return 0;} + function caml_runtime_events_resume(){return 0;} + function ml_z_congruent(a, b, c){ + var zero = bigInt(0); + a = bigInt(a); + b = bigInt(b); + c = bigInt(c); + if(c.equals(zero) && a.equals(b)) return 1; + return a.minus(b).isDivisibleBy(c) ? 1 : 0; + } + function caml_spacetime_only_works_for_native_code(){ + caml_failwith("Spacetime profiling only works for native code"); + } + function caml_int64_sub(x, y){return x.sub(y);} + function caml_seek_in(chanid, pos){ + var chan = caml_ml_channels[chanid]; + if(chan.refill != null) caml_raise_sys_error("Illegal seek"); + if + (pos >= chan.offset - chan.buffer_max && pos <= chan.offset + && chan.file.flags.binary) + chan.buffer_curr = chan.buffer_max - (chan.offset - pos); + else{chan.offset = pos; chan.buffer_curr = 0; chan.buffer_max = 0;} + return 0; + } + function caml_ml_seek_in_64(chanid, pos){ + var pos = caml_int64_to_float(pos); + return caml_seek_in(chanid, pos); + } + var caml_domain_id = 0; + function caml_ml_mutex_unlock(t){t.locked = false; return 0;} + var caml_domain_latest_idx = 1; + function caml_domain_spawn(f, mutex){ + var id = caml_domain_latest_idx++, old = caml_domain_id; + caml_domain_id = id; + caml_callback(f, [0]); + caml_domain_id = old; + caml_ml_mutex_unlock(mutex); + return id; + } + function caml_unix_mkdir(name, perm){ + var root = resolve_fs_device(name); + if(! root.device.mkdir) caml_failwith("caml_unix_mkdir: not implemented"); + return root.device.mkdir(root.rest, perm, true); + } + function caml_int64_shift_left(x, s){return x.shift_left(s);} + function caml_notequal(x, y){ + return + (caml_compare_val(x, y, false) != 0); + } + function ml_z_abs(z1){return ml_z_normalize(bigInt(z1).abs());} + function caml_sys_const_int_size(){return 32;} + function caml_js_wrap_callback(f){ + return function(){ + var len = arguments.length; + if(len > 0){ + var args = new Array(len); + for(var i = 0; i < len; i++) args[i] = arguments[i]; + } + else + args = [undefined]; + var res = caml_callback(f, args); + return res instanceof Function ? caml_js_wrap_callback(res) : res;}; + } + function caml_js_wrap_meth_callback(f){ + return function(){ + var len = arguments.length, args = new Array(len + 1); + args[0] = this; + for(var i = 0; i < len; i++) args[i + 1] = arguments[i]; + var res = caml_callback(f, args); + return res instanceof Function ? caml_js_wrap_callback(res) : res;}; + } + function caml_is_js(){return 1;} + function caml_lazy_update_to_forward(o){ + caml_obj_update_tag(o, 244, 250); + return 0; + } + function caml_ba_dim(ba, i){ + if(i < 0 || i >= ba.dims.length) caml_invalid_argument("Bigarray.dim"); + return ba.dims[i]; + } + function caml_ba_dim_1(ba){return caml_ba_dim(ba, 0);} + function ml_z_sqrt(z1){ + var z = bigInt(z1), zero = bigInt(0); + if(z.lt(zero)) + caml_invalid_argument("Z.sqrt: square root of a negative number"); + return ml_z_root(z, 2); + } + function caml_js_meth_call(o, f, args){ + return o[caml_jsstring_of_string(f)].apply(o, caml_js_from_array(args)); + } + function ml_z_lucnum(i){ + if(i < 0) caml_invalid_argument("Z.lucnum: negative arguments"); + if(i == 0) return 2; + if(i == 1) return 1; + var a = bigInt(2), b = bigInt(1); + for(var k = 1; k < i; k++){var b2 = b; b = a.add(b); a = b2;} + return ml_z_normalize(b); + } + var caml_ephe_data_offset = 2; + function caml_weak_create(n){ + if(n < 0) caml_invalid_argument("Weak.create"); + var x = [251, "caml_ephe_list_head"]; + x.length = caml_ephe_key_offset + n; + return x; + } + function caml_ephe_create(n){var x = caml_weak_create(n); return x;} + function caml_js_to_byte_string(s){return caml_string_of_jsbytes(s);} + function ml_z_probab_prime(z, i){ + return bigInt(z).isProbablePrime(i) ? 1 : 0; + } + function caml_trampoline(res){ + var c = 1; + while(res && res.joo_tramp){ + res = res.joo_tramp.apply(null, res.joo_args); + c++; + } + return res; + } + function caml_maybe_print_stats(unit){return 0;} + function caml_bytes_unsafe_get(s, i){ + switch(s.t & 6){ + default: if(i >= s.c.length) return 0; + case 0: + return s.c.charCodeAt(i); + case 4: + return s.c[i]; + } + } + function caml_bytes_get64(s, i){ + if(i >>> 0 >= s.l - 7) caml_bytes_bound_error(); + var a = new Array(8); + for(var j = 0; j < 8; j++) a[7 - j] = caml_bytes_unsafe_get(s, i + j); + return caml_int64_of_bytes(a); + } + var caml_custom_event_index = 0; + function caml_runtime_events_user_register + (event_name, event_tag, event_type){ + caml_custom_event_index += 1; + return [0, caml_custom_event_index, event_name, event_type, event_tag]; + } + function caml_unix_has_symlink(unit){return fs_node_supported() ? 1 : 0;} + function ml_z_rem(z1, z2){ + z2 = bigInt(z2); + if(z2.equals(bigInt(0))) caml_raise_zero_divide(); + return ml_z_normalize(bigInt(z1).mod(z2)); + } + function caml_ephe_set_key(x, i, v){ + if(i < 0 || caml_ephe_key_offset + i >= x.length) + caml_invalid_argument("Weak.set"); + if(v instanceof Object && globalThis.WeakRef){ + if(x[1].register) x[1].register(v, undefined, v); + x[caml_ephe_key_offset + i] = new globalThis.WeakRef(v); + } + else + x[caml_ephe_key_offset + i] = v; + return 0; + } + function caml_ephe_unset_key(x, i){ + if(i < 0 || caml_ephe_key_offset + i >= x.length) + caml_invalid_argument("Weak.set"); + if + (globalThis.WeakRef + && x[caml_ephe_key_offset + i] instanceof globalThis.WeakRef + && x[1].unregister){ + var old = x[caml_ephe_key_offset + i].deref(); + if(old !== undefined){ + var count = 0; + for(var j = caml_ephe_key_offset; j < x.length; j++){ + var key = x[j]; + if(key instanceof globalThis.WeakRef){ + key = key.deref(); + if(key === old) count++; + } + } + if(count == 1) x[1].unregister(old); + } + } + x[caml_ephe_key_offset + i] = undefined; + return 0; + } + function caml_weak_set(x, i, v){ + if(v == 0) caml_ephe_unset_key(x, i); else caml_ephe_set_key(x, i, v[1]); + return 0; + } + function caml_sys_remove(name){ + var root = resolve_fs_device(name), ok = root.device.unlink(root.rest); + if(ok == 0) caml_raise_no_such_file(caml_jsbytes_of_string(name)); + return 0; + } + function caml_string_bound_error(){ + caml_invalid_argument("index out of bounds"); + } + function caml_string_get32(s, i){ + if(i >>> 0 >= caml_ml_string_length(s) - 3) caml_string_bound_error(); + var + b1 = caml_string_unsafe_get(s, i), + b2 = caml_string_unsafe_get(s, i + 1), + b3 = caml_string_unsafe_get(s, i + 2), + b4 = caml_string_unsafe_get(s, i + 3); + return b4 << 24 | b3 << 16 | b2 << 8 | b1; + } + function caml_bytes_get(s, i){ + if(i >>> 0 >= s.l) caml_bytes_bound_error(); + return caml_bytes_unsafe_get(s, i); + } + function caml_hypot_float(x, y){return Math.hypot(x, y);} + function ml_z_facM(i, m){ + if(i <= 0 || m <= 0) caml_invalid_argument("Z.factM: negative arguments"); + m = bigInt(m); + var current = bigInt(i), res = bigInt(1); + while(current.isPositive()){ + res = res.multiply(current); + current = current.minus(m); + } + return ml_z_normalize(res); + } + function caml_js_call(f, o, args){ + return f.apply(o, caml_js_from_array(args)); + } + function caml_sys_const_max_wosize(){return 0x7FFFFFFF / 4 | 0;} + function caml_unix_inet_addr_of_string(){return 0;} + function ml_z_to_int(z1){ + if(z1 == (z1 | 0)) return z1 | 0; + caml_raise_constant(caml_named_value("ml_z_overflow")); + } + function ml_z_mul_overflows(x, y){var z = x * y; return z != (z | 0);} + function caml_hash_mix_bytes_arr(h, s){ + var len = s.length, i, w; + for(i = 0; i + 4 <= len; i += 4){ + w = s[i] | s[i + 1] << 8 | s[i + 2] << 16 | s[i + 3] << 24; + h = caml_hash_mix_int(h, w); + } + w = 0; + switch(len & 3){ + case 3: + w = s[i + 2] << 16; + case 2: + w |= s[i + 1] << 8; + case 1: + w |= s[i]; h = caml_hash_mix_int(h, w); + } + h ^= len; + return h; + } + function caml_hash_mix_jsbytes(h, s){ + var len = s.length, i, w; + for(i = 0; i + 4 <= len; i += 4){ + w = + s.charCodeAt(i) | s.charCodeAt(i + 1) << 8 | s.charCodeAt(i + 2) << 16 + | s.charCodeAt(i + 3) << 24; + h = caml_hash_mix_int(h, w); + } + w = 0; + switch(len & 3){ + case 3: + w = s.charCodeAt(i + 2) << 16; + case 2: + w |= s.charCodeAt(i + 1) << 8; + case 1: + w |= s.charCodeAt(i); h = caml_hash_mix_int(h, w); + } + h ^= len; + return h; + } + function caml_ml_bytes_content(s){ + switch(s.t & 6){ + default: caml_convert_string_to_bytes(s); + case 0: + return s.c; + case 4: + return s.c; + } + } + function caml_hash_mix_bytes(h, v){ + var content = caml_ml_bytes_content(v); + return typeof content === "string" + ? caml_hash_mix_jsbytes(h, content) + : caml_hash_mix_bytes_arr(h, content); + } + function caml_bytes_lessthan(s1, s2){ + s1.t & 6 && caml_convert_string_to_bytes(s1); + s2.t & 6 && caml_convert_string_to_bytes(s2); + return s1.c < s2.c ? 1 : 0; + } + function caml_erfc_float(x){return 1 - caml_erf_float(x);} + function caml_gr_fill_poly(ar){ + var s = caml_gr_state_get(); + s.context.beginPath(); + s.context.moveTo(ar[1][1], s.height - ar[1][2]); + for(var i = 2; i < ar.length; i++) + s.context.lineTo(ar[i][1], s.height - ar[i][2]); + s.context.lineTo(ar[1][1], s.height - ar[1][2]); + s.context.fill(); + return 0; + } + function caml_gc_quick_stat(){ + return [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + } + function ml_z_fac(i){ + if(i <= 0) caml_invalid_argument("Z.fact: negative arguments"); + return ml_z_facM(i, 1); + } + function caml_ml_input_char(chanid){ + var chan = caml_ml_channels[chanid]; + if(chan.buffer_curr >= chan.buffer_max){ + chan.buffer_curr = 0; + chan.buffer_max = 0; + caml_refill(chan); + } + if(chan.buffer_curr >= chan.buffer_max) caml_raise_end_of_file(); + var res = chan.buffer[chan.buffer_curr]; + chan.buffer_curr++; + return res; + } + function caml_ml_input_int(chanid){ + var chan = caml_ml_channels[chanid], res = 0; + for(var i = 0; i < 4; i++) + res = (res << 8) + caml_ml_input_char(chanid) | 0; + return res | 0; + } + function caml_gr_display_mode(){ + caml_failwith("caml_gr_display_mode not Implemented"); + } + function ml_z_divisible(a, b){ + var zero = bigInt(0); + a = bigInt(a); + b = bigInt(b); + if(a.equals(zero) && b.equals(zero)) return 1; + return a.isDivisibleBy(b) ? 1 : 0; + } + function caml_obj_reachable_words(o){return 0;} + function nth_digit_nat(nat, ofs){return nat.data[ofs];} + function caml_array_blit(a1, i1, a2, i2, len){ + if(i2 <= i1) + for(var j = 1; j <= len; j++) a2[i2 + j] = a1[i1 + j]; + else + for(var j = len; j >= 1; j--) a2[i2 + j] = a1[i1 + j]; + return 0; + } + function caml_float_of_string(s){ + var res; + s = caml_jsbytes_of_string(s); + res = + s; + if(s.length > 0 && res === res) return res; + s = s.replace(/_/g, ""); + res = + s; + if(s.length > 0 && res === res || /^[+-]?nan$/i.test(s)) return res; + var m = /^ *([+-]?)0x([0-9a-f]+)\.?([0-9a-f]*)(p([+-]?[0-9]+))?/i.exec(s); + if(m){ + var + m3 = m[3].replace(/0+$/, ""), + mantissa = parseInt(m[1] + m[2] + m3, 16), + exponent = (m[5] | 0) - 4 * m3.length; + res = mantissa * Math.pow(2, exponent); + return res; + } + if(/^\+?inf(inity)?$/i.test(s)) return Infinity; + if(/^-inf(inity)?$/i.test(s)) return - Infinity; + caml_failwith("float_of_string"); + } + function caml_sys_getcwd(){ + return caml_string_of_jsbytes(caml_current_dir); + } + function caml_int64_add(x, y){return x.add(y);} + function caml_int64_mul(x, y){return x.mul(y);} + function caml_int64_ult(x, y){return x.ucompare(y) < 0;} + function caml_parse_sign_and_base(s){ + var i = 0, len = caml_ml_string_length(s), base = 10, sign = 1; + if(len > 0) + switch(caml_string_unsafe_get(s, i)){ + case 45: + i++; sign = - 1; break; + case 43: + i++; sign = 1; break; + } + if(i + 1 < len && caml_string_unsafe_get(s, i) == 48) + switch(caml_string_unsafe_get(s, i + 1)){ + case 120: + case 88: + base = 16; i += 2; break; + case 111: + case 79: + base = 8; i += 2; break; + case 98: + case 66: + base = 2; i += 2; break; + case 117: + case 85: + i += 2; break; + } + return [i, sign, base]; + } + function caml_parse_digit(c){ + if(c >= 48 && c <= 57) return c - 48; + if(c >= 65 && c <= 90) return c - 55; + if(c >= 97 && c <= 122) return c - 87; + return - 1; + } + function caml_int64_of_string(s){ + var + r = caml_parse_sign_and_base(s), + i = r[0], + sign = r[1], + base = r[2], + base64 = caml_int64_of_int32(base), + threshold = + new MlInt64(0xffffff, 0xfffffff, 0xffff).udivmod(base64).quotient, + c = caml_string_unsafe_get(s, i), + d = caml_parse_digit(c); + if(d < 0 || d >= base) caml_failwith("int_of_string"); + var res = caml_int64_of_int32(d); + for(;;){ + i++; + c = caml_string_unsafe_get(s, i); + if(c == 95) continue; + d = caml_parse_digit(c); + if(d < 0 || d >= base) break; + if(caml_int64_ult(threshold, res)) caml_failwith("int_of_string"); + d = caml_int64_of_int32(d); + res = caml_int64_add(caml_int64_mul(base64, res), d); + if(caml_int64_ult(res, d)) caml_failwith("int_of_string"); + } + if(i != caml_ml_string_length(s)) caml_failwith("int_of_string"); + if(base == 10 && caml_int64_ult(new MlInt64(0, 0, 0x8000), res)) + caml_failwith("int_of_string"); + if(sign < 0) res = caml_int64_neg(res); + return res; + } + function caml_ba_set_1(ba, i0, v){ba.set(ba.offset(i0), v); return 0;} + function caml_int64_xor(x, y){return x.xor(y);} + function caml_int64_or(x, y){return x.or(y);} + function caml_lxm_next(v){ + function shift_l(x, k){return caml_int64_shift_left(x, k);} + function shift_r(x, k){return caml_int64_shift_right_unsigned(x, k);} + function or(a, b){return caml_int64_or(a, b);} + function xor(a, b){return caml_int64_xor(a, b);} + function add(a, b){return caml_int64_add(a, b);} + function mul(a, b){return caml_int64_mul(a, b);} + function rotl(x, k){return or(shift_l(x, k), shift_r(x, 64 - k));} + function get(a, i){return caml_ba_get_1(a, i);} + function set(a, i, x){return caml_ba_set_1(a, i, x);} + var + M = caml_int64_of_string(caml_new_string("0xd1342543de82ef95")), + daba = caml_int64_of_string(caml_new_string("0xdaba0b6eb09322e3")), + z, + q0, + q1, + st = v, + a = get(st, 0), + s = get(st, 1), + x0 = get(st, 2), + x1 = get(st, 3); + z = add(s, x0); + z = mul(xor(z, shift_r(z, 32)), daba); + z = mul(xor(z, shift_r(z, 32)), daba); + z = xor(z, shift_r(z, 32)); + set(st, 1, add(mul(s, M), a)); + var q0 = x0, q1 = x1; + q1 = xor(q1, q0); + q0 = rotl(q0, 24); + q0 = xor(xor(q0, q1), shift_l(q1, 16)); + q1 = rotl(q1, 37); + set(st, 2, q0); + set(st, 3, q1); + return z; + } + function caml_sys_const_big_endian(){return 0;} + function caml_list_to_js_array(l){ + var a = []; + for(; l !== 0; l = l[2]) a.push(l[1]); + return a; + } + var + caml_output_val = + function(){ + function Writer(){this.chunk = [];} + Writer.prototype = + {chunk_idx: 20, + block_len: 0, + obj_counter: 0, + size_32: 0, + size_64: 0, + write: + function(size, value){ + for(var i = size - 8; i >= 0; i -= 8) + this.chunk[this.chunk_idx++] = value >> i & 0xFF; + }, + write_at: + function(pos, size, value){ + var pos = pos; + for(var i = size - 8; i >= 0; i -= 8) + this.chunk[pos++] = value >> i & 0xFF; + }, + write_code: + function(size, code, value){ + this.chunk[this.chunk_idx++] = code; + for(var i = size - 8; i >= 0; i -= 8) + this.chunk[this.chunk_idx++] = value >> i & 0xFF; + }, + write_shared: + function(offset){ + if(offset < 1 << 8) + this.write_code(8, 0x04, offset); + else if(offset < 1 << 16) + this.write_code(16, 0x05, offset); + else + this.write_code(32, 0x06, offset); + }, + pos: function(){return this.chunk_idx;}, + finalize: + function(){ + this.block_len = this.chunk_idx - 20; + this.chunk_idx = 0; + this.write(32, 0x8495A6BE); + this.write(32, this.block_len); + this.write(32, this.obj_counter); + this.write(32, this.size_32); + this.write(32, this.size_64); + return this.chunk; + }}; + return function(v, flags){ + flags = caml_list_to_js_array(flags); + var + no_sharing = flags.indexOf(0) !== - 1, + closures = flags.indexOf(1) !== - 1; + if(closures) + console.warn + ("in caml_output_val: flag Marshal.Closures is not supported."); + var + writer = new Writer(), + stack = [], + intern_obj_table = no_sharing ? null : new MlObjectTable(); + function memo(v){ + if(no_sharing) return false; + var existing_offset = intern_obj_table.recall(v); + if(existing_offset){ + writer.write_shared(existing_offset); + return true; + } + else{intern_obj_table.store(v); return false;} + } + function extern_rec(v){ + if(v.caml_custom){ + if(memo(v)) return; + var + name = v.caml_custom, + ops = caml_custom_ops[name], + sz_32_64 = [0, 0]; + if(! ops.serialize) + caml_invalid_argument("output_value: abstract value (Custom)"); + if(ops.fixed_length == undefined){ + writer.write(8, 0x18); + for(var i = 0; i < name.length; i++) + writer.write(8, name.charCodeAt(i)); + writer.write(8, 0); + var header_pos = writer.pos(); + for(var i = 0; i < 12; i++) writer.write(8, 0); + ops.serialize(writer, v, sz_32_64); + writer.write_at(header_pos, 32, sz_32_64[0]); + writer.write_at(header_pos + 4, 32, 0); + writer.write_at(header_pos + 8, 32, sz_32_64[1]); + } + else{ + writer.write(8, 0x19); + for(var i = 0; i < name.length; i++) + writer.write(8, name.charCodeAt(i)); + writer.write(8, 0); + var old_pos = writer.pos(); + ops.serialize(writer, v, sz_32_64); + if(ops.fixed_length != writer.pos() - old_pos) + caml_failwith + ("output_value: incorrect fixed sizes specified by " + name); + } + writer.size_32 += 2 + (sz_32_64[0] + 3 >> 2); + writer.size_64 += 2 + (sz_32_64[1] + 7 >> 3); + } + else if(v instanceof Array && v[0] === (v[0] | 0)){ + if(v[0] == 251) + caml_failwith("output_value: abstract value (Abstract)"); + if(caml_is_continuation_tag(v[0])) + caml_invalid_argument("output_value: continuation value"); + if(v.length > 1 && memo(v)) return; + if(v[0] < 16 && v.length - 1 < 8) + writer.write(8, 0x80 + v[0] + (v.length - 1 << 4)); + else + writer.write_code(32, 0x08, v.length - 1 << 10 | v[0]); + writer.size_32 += v.length; + writer.size_64 += v.length; + if(v.length > 1) stack.push(v, 1); + } + else if(caml_is_ml_bytes(v)){ + if(! caml_is_ml_bytes(caml_string_of_jsbytes(""))) + caml_failwith + ("output_value: [Bytes.t] cannot safely be marshaled with [--enable use-js-string]"); + if(memo(v)) return; + var len = caml_ml_bytes_length(v); + if(len < 0x20) + writer.write(8, 0x20 + len); + else if(len < 0x100) + writer.write_code(8, 0x09, len); + else + writer.write_code(32, 0x0A, len); + for(var i = 0; i < len; i++) + writer.write(8, caml_bytes_unsafe_get(v, i)); + writer.size_32 += 1 + ((len + 4) / 4 | 0); + writer.size_64 += 1 + ((len + 8) / 8 | 0); + } + else if(caml_is_ml_string(v)){ + var len = caml_ml_string_length(v); + if(len < 0x20) + writer.write(8, 0x20 + len); + else if(len < 0x100) + writer.write_code(8, 0x09, len); + else + writer.write_code(32, 0x0A, len); + for(var i = 0; i < len; i++) + writer.write(8, caml_string_unsafe_get(v, i)); + writer.size_32 += 1 + ((len + 4) / 4 | 0); + writer.size_64 += 1 + ((len + 8) / 8 | 0); + } + else if(v != (v | 0)){ + var type_of_v = typeof v; + caml_failwith("output_value: abstract value (" + type_of_v + ")"); + } + else if(v >= 0 && v < 0x40) + writer.write(8, 0X40 + v); + else if(v >= - (1 << 7) && v < 1 << 7) + writer.write_code(8, 0x00, v); + else if(v >= - (1 << 15) && v < 1 << 15) + writer.write_code(16, 0x01, v); + else + writer.write_code(32, 0x02, v); + } + extern_rec(v); + while(stack.length > 0){ + var i = stack.pop(), v = stack.pop(); + if(i + 1 < v.length) stack.push(v, i + 1); + extern_rec(v[i]); + } + if(intern_obj_table) + writer.obj_counter = intern_obj_table.objs.length; + writer.finalize(); + return writer.chunk;}; + } + (); + function caml_string_of_array(a){ + return caml_string_of_jsbytes(caml_subarray_to_jsbytes(a, 0, a.length)); + } + function caml_output_value_to_string(v, flags){ + return caml_string_of_array(caml_output_val(v, flags)); + } + function caml_raise_not_a_dir(name){ + caml_raise_sys_error(name + ": Not a directory"); + } + function caml_sys_system_command(cmd){ + var cmd = caml_jsstring_of_string(cmd); + if(typeof require != "undefined"){ + var child_process = require("child_process"); + if(child_process && child_process.execSync) + try{child_process.execSync(cmd, {stdio: "inherit"}); return 0;} + catch(e){return 1;} + } + else + return 127; + } + function caml_js_error_of_exception(exn){ + if(exn.js_error) return exn.js_error; + return null; + } + function caml_unix_getuid(unit){ + if(globalThis.process && globalThis.process.getuid) + return globalThis.process.getuid(); + caml_raise_not_found(); + } + function deserialize_nat(reader, sz){ + var len = reader.read32s(), nat = new MlNat(len); + for(var i = 0; i < len; i++) nat.data[i] = reader.read32s(); + sz[0] = len * 4; + return nat; + } + function initialize_nat(){ + caml_custom_ops["_nat"] = + {deserialize: deserialize_nat, + serialize: serialize_nat, + hash: caml_hash_nat}; + } + function ml_z_succ(z1){return ml_z_normalize(bigInt(z1).next());} + function caml_bytes_of_utf16_jsstring(s){ + var tag = 9; + if(! jsoo_is_ascii(s)) tag = 8, s = caml_utf8_of_utf16(s); + return new MlBytes(tag, s, s.length); + } + function caml_gr_open_subwindow(a, b, c, d){ + caml_failwith("caml_gr_open_subwindow not Implemented"); + } + function UInt8ArrayReader(s, i){this.s = s; this.i = i;} + UInt8ArrayReader.prototype = + {read8u: function(){return this.s[this.i++];}, + read8s: function(){return this.s[this.i++] << 24 >> 24;}, + read16u: + function(){ + var s = this.s, i = this.i; + this.i = i + 2; + return s[i] << 8 | s[i + 1]; + }, + read16s: + function(){ + var s = this.s, i = this.i; + this.i = i + 2; + return s[i] << 24 >> 16 | s[i + 1]; + }, + read32u: + function(){ + var s = this.s, i = this.i; + this.i = i + 4; + return (s[i] << 24 | s[i + 1] << 16 | s[i + 2] << 8 | s[i + 3]) >>> 0; + }, + read32s: + function(){ + var s = this.s, i = this.i; + this.i = i + 4; + return s[i] << 24 | s[i + 1] << 16 | s[i + 2] << 8 | s[i + 3]; + }, + readstr: + function(len){ + var i = this.i; + this.i = i + len; + return caml_string_of_array(this.s.subarray(i, i + len)); + }, + readuint8array: + function(len){ + var i = this.i; + this.i = i + len; + return this.s.subarray(i, i + len); + }}; + function caml_marshal_data_size(s, ofs){ + var r = new UInt8ArrayReader(caml_uint8_array_of_bytes(s), ofs); + function readvlq(overflow){ + var c = r.read8u(), n = c & 0x7F; + while((c & 0x80) != 0){ + c = r.read8u(); + var n7 = n << 7; + if(n != n7 >> 7) overflow[0] = true; + n = n7 | c & 0x7F; + } + return n; + } + switch(r.read32u()){ + case 0x8495A6BE: + var header_len = 20, data_len = r.read32u(); break; + case 0x8495A6BD: + var + header_len = r.read8u() & 0x3F, + overflow = [false], + data_len = readvlq(overflow); + if(overflow[0]) + caml_failwith + ("Marshal.data_size: object too large to be read back on this platform"); + break; + case 0x8495A6BF: + default: caml_failwith("Marshal.data_size: bad object"); break; + } + return header_len - caml_marshal_header_size + data_len; + } + function MlStringReader(s, i){ + this.s = caml_jsbytes_of_string(s); + this.i = i; + } + MlStringReader.prototype = + {read8u: function(){return this.s.charCodeAt(this.i++);}, + read8s: function(){return this.s.charCodeAt(this.i++) << 24 >> 24;}, + read16u: + function(){ + var s = this.s, i = this.i; + this.i = i + 2; + return s.charCodeAt(i) << 8 | s.charCodeAt(i + 1); + }, + read16s: + function(){ + var s = this.s, i = this.i; + this.i = i + 2; + return s.charCodeAt(i) << 24 >> 16 | s.charCodeAt(i + 1); + }, + read32u: + function(){ + var s = this.s, i = this.i; + this.i = i + 4; + return (s.charCodeAt(i) << 24 | s.charCodeAt(i + 1) << 16 + | s.charCodeAt(i + 2) << 8 + | s.charCodeAt(i + 3)) + >>> 0; + }, + read32s: + function(){ + var s = this.s, i = this.i; + this.i = i + 4; + return s.charCodeAt(i) << 24 | s.charCodeAt(i + 1) << 16 + | s.charCodeAt(i + 2) << 8 + | s.charCodeAt(i + 3); + }, + readstr: + function(len){ + var i = this.i; + this.i = i + len; + return caml_string_of_jsbytes(this.s.substring(i, i + len)); + }, + readuint8array: + function(len){ + var b = new Uint8Array(len), s = this.s, i = this.i; + for(var j = 0; j < len; j++) b[j] = s.charCodeAt(i + j); + this.i = i + len; + return b; + }}; + var + zstd_decompress = + function(){ + "use strict"; + var + ab = ArrayBuffer, + u8 = Uint8Array, + u16 = Uint16Array, + i16 = Int16Array, + u32 = Uint32Array, + i32 = Int32Array; + function slc(v, s, e){ + if(u8.prototype.slice) return u8.prototype.slice.call(v, s, e); + if(s == null || s < 0) s = 0; + if(e == null || e > v.length) e = v.length; + var n = new u8(e - s); + n.set(v.subarray(s, e)); + return n; + } + function fill(v, n, s, e){ + if(u8.prototype.fill) return u8.prototype.fill.call(v, n, s, e); + if(s == null || s < 0) s = 0; + if(e == null || e > v.length) e = v.length; + for(; s < e; ++s) v[s] = n; + return v; + } + function cpw(v, t, s, e){ + if(u8.prototype.copyWithin) + return u8.prototype.copyWithin.call(v, t, s, e); + if(s == null || s < 0) s = 0; + if(e == null || e > v.length) e = v.length; + while(s < e) v[t++] = v[s++]; + } + var + ec = + ["invalid zstd data", + "window size too large (>2046MB)", + "invalid block type", + "FSE accuracy too high", + "match distance too far back", + "unexpected EOF"]; + function err(ind, msg, nt){ + var e = new Error(msg || ec[ind]); + e.code = ind; + if(! nt) throw e; + return e; + } + function rb(d, b, n){ + var i = 0, o = 0; + for(; i < n; ++i) o |= d[b++] << (i << 3); + return o; + } + function b4(d, b){ + return (d[b] | d[b + 1] << 8 | d[b + 2] << 16 | d[b + 3] << 24) >>> 0; + } + function rzfh(dat, w){ + var n3 = dat[0] | dat[1] << 8 | dat[2] << 16; + if(n3 == 0x2FB528 && dat[3] == 253){ + var + flg = dat[4], + ss = flg >> 5 & 1, + cc = flg >> 2 & 1, + df = flg & 3, + fcf = flg >> 6; + if(flg & 8) err(0); + var bt = 6 - ss, db = df == 3 ? 4 : df, di = rb(dat, bt, db); + bt += db; + var + fsb = fcf ? 1 << fcf : ss, + fss = rb(dat, bt, fsb) + (fcf == 1 && 256), + ws = fss; + if(! ss){ + var wb = 1 << 10 + (dat[5] >> 3); + ws = wb + (wb >> 3) * (dat[5] & 7); + } + if(ws > 2145386496) err(1); + var buf = new u8((w == 1 ? fss || ws : w ? 0 : ws) + 12); + buf[0] = 1, buf[4] = 4, buf[8] = 8; + return {b: bt + fsb, + y: 0, + l: 0, + d: di, + w: w && w != 1 ? w : buf.subarray(12), + e: ws, + o: new i32(buf.buffer, 0, 3), + u: fss, + c: cc, + m: Math.min(131072, ws)}; + } + else if((n3 >> 4 | dat[3] << 20) == 0x184D2A5) return b4(dat, 4) + 8; + err(0); + } + function msb(val){ + var bits = 0; + for(; 1 << bits <= val; ++bits) ; + return bits - 1; + } + function rfse(dat, bt, mal){ + var tpos = (bt << 3) + 4, al = (dat[bt] & 15) + 5; + if(al > mal) err(3); + var + sz = 1 << al, + probs = sz, + sym = - 1, + re = - 1, + i = - 1, + ht = sz, + buf = new ab(512 + (sz << 2)), + freq = new i16(buf, 0, 256), + dstate = new u16(buf, 0, 256), + nstate = new u16(buf, 512, sz), + bb1 = 512 + (sz << 1), + syms = new u8(buf, bb1, sz), + nbits = new u8(buf, bb1 + sz); + while(sym < 255 && probs > 0){ + var + bits = msb(probs + 1), + cbt = tpos >> 3, + msk = (1 << bits + 1) - 1, + val = + (dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) >> (tpos & 7) + & msk, + msk1fb = (1 << bits) - 1, + msv = msk - probs - 1, + sval = val & msk1fb; + if(sval < msv) + tpos += bits, val = sval; + else{tpos += bits + 1; if(val > msk1fb) val -= msv;} + freq[++sym] = --val; + if(val == - 1){probs += val; syms[--ht] = sym;} else probs -= val; + if(! val) + do{ + var rbt = tpos >> 3; + re = (dat[rbt] | dat[rbt + 1] << 8) >> (tpos & 7) & 3; + tpos += 2; + sym += re; + } + while + (re == 3); + } + if(sym > 255 || probs) err(0); + var sympos = 0, sstep = (sz >> 1) + (sz >> 3) + 3, smask = sz - 1; + for(var s = 0; s <= sym; ++s){ + var sf = freq[s]; + if(sf < 1){dstate[s] = - sf; continue;} + for(i = 0; i < sf; ++i){ + syms[sympos] = s; + do sympos = sympos + sstep & smask;while(sympos >= ht); + } + } + if(sympos) err(0); + for(i = 0; i < sz; ++i){ + var ns = dstate[syms[i]]++, nb = nbits[i] = al - msb(ns); + nstate[i] = (ns << nb) - sz; + } + return [tpos + 7 >> 3, {b: al, s: syms, n: nbits, t: nstate}]; + } + function rhu(dat, bt){ + var + i = 0, + wc = - 1, + buf = new u8(292), + hb = dat[bt], + hw = buf.subarray(0, 256), + rc = buf.subarray(256, 268), + ri = new u16(buf.buffer, 268); + if(hb < 128){ + var _a = rfse(dat, bt + 1, 6), ebt = _a[0], fdt = _a[1]; + bt += hb; + var epos = ebt << 3, lb = dat[bt]; + if(! lb) err(0); + var + st1 = 0, + st2 = 0, + btr1 = fdt.b, + btr2 = btr1, + fpos = (++bt << 3) - 8 + msb(lb); + for(;;){ + fpos -= btr1; + if(fpos < epos) break; + var cbt = fpos >> 3; + st1 += + (dat[cbt] | dat[cbt + 1] << 8) >> (fpos & 7) & (1 << btr1) - 1; + hw[++wc] = fdt.s[st1]; + fpos -= btr2; + if(fpos < epos) break; + cbt = fpos >> 3; + st2 += + (dat[cbt] | dat[cbt + 1] << 8) >> (fpos & 7) & (1 << btr2) - 1; + hw[++wc] = fdt.s[st2]; + btr1 = fdt.n[st1]; + st1 = fdt.t[st1]; + btr2 = fdt.n[st2]; + st2 = fdt.t[st2]; + } + if(++wc > 255) err(0); + } + else{ + wc = hb - 127; + for(; i < wc; i += 2){ + var byte = dat[++bt]; + hw[i] = byte >> 4; + hw[i + 1] = byte & 15; + } + ++bt; + } + var wes = 0; + for(i = 0; i < wc; ++i){ + var wt = hw[i]; + if(wt > 11) err(0); + wes += wt && 1 << wt - 1; + } + var mb = msb(wes) + 1, ts = 1 << mb, rem = ts - wes; + if(rem & rem - 1) err(0); + hw[wc++] = msb(rem) + 1; + for(i = 0; i < wc; ++i){ + var wt = hw[i]; + ++rc[hw[i] = wt && mb + 1 - wt]; + } + var + hbuf = new u8(ts << 1), + syms = hbuf.subarray(0, ts), + nb = hbuf.subarray(ts); + ri[mb] = 0; + for(i = mb; i > 0; --i){ + var pv = ri[i]; + fill(nb, i, pv, ri[i - 1] = pv + rc[i] * (1 << mb - i)); + } + if(ri[0] != ts) err(0); + for(i = 0; i < wc; ++i){ + var bits = hw[i]; + if(bits){ + var code = ri[bits]; + fill(syms, i, code, ri[bits] = code + (1 << mb - bits)); + } + } + return [bt, {n: nb, b: mb, s: syms}]; + } + var + dllt = + rfse + (new + u8 + ([81, + 16, + 99, + 140, + 49, + 198, + 24, + 99, + 12, + 33, + 196, + 24, + 99, + 102, + 102, + 134, + 70, + 146, + 4]), + 0, + 6) + [1], + dmlt = + rfse + (new + u8 + ([33, + 20, + 196, + 24, + 99, + 140, + 33, + 132, + 16, + 66, + 8, + 33, + 132, + 16, + 66, + 8, + 33, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 36, + 9]), + 0, + 6) + [1], + doct = + rfse + (new u8([32, 132, 16, 66, 102, 70, 68, 68, 68, 68, 36, 73, 2]), + 0, + 5) + [1]; + function b2bl(b, s){ + var len = b.length, bl = new i32(len); + for(var i = 0; i < len; ++i){bl[i] = s; s += 1 << b[i];} + return bl; + } + var + llb = + new + u8 + (new + i32 + ([0, + 0, + 0, + 0, + 16843009, + 50528770, + 134678020, + 202050057, + 269422093]).buffer, + 0, + 36), + llbl = b2bl(llb, 0), + mlb = + new + u8 + (new + i32 + ([0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16843009, + 50528770, + 117769220, + 185207048, + 252579084, + 16]).buffer, + 0, + 53), + mlbl = b2bl(mlb, 3); + function dhu(dat, out, hu){ + var + len = dat.length, + ss = out.length, + lb = dat[len - 1], + msk = (1 << hu.b) - 1, + eb = - hu.b; + if(! lb) err(0); + var + st = 0, + btr = hu.b, + pos = (len << 3) - 8 + msb(lb) - btr, + i = - 1; + for(; pos > eb && i < ss;){ + var + cbt = pos >> 3, + val = + (dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) >> (pos & 7); + st = (st << btr | val) & msk; + out[++i] = hu.s[st]; + pos -= btr = hu.n[st]; + } + if(pos != eb || i + 1 != ss) err(0); + } + function dhu4(dat, out, hu){ + var + bt = 6, + ss = out.length, + sz1 = ss + 3 >> 2, + sz2 = sz1 << 1, + sz3 = sz1 + sz2; + dhu + (dat.subarray(bt, bt += dat[0] | dat[1] << 8), + out.subarray(0, sz1), + hu); + dhu + (dat.subarray(bt, bt += dat[2] | dat[3] << 8), + out.subarray(sz1, sz2), + hu); + dhu + (dat.subarray(bt, bt += dat[4] | dat[5] << 8), + out.subarray(sz2, sz3), + hu); + dhu(dat.subarray(bt), out.subarray(sz3), hu); + } + function rzb(dat, st, out){ + var _a, bt = st.b, b0 = dat[bt], btype = b0 >> 1 & 3; + st.l = b0 & 1; + var + sz = b0 >> 3 | dat[bt + 1] << 5 | dat[bt + 2] << 13, + ebt = (bt += 3) + sz; + if(btype == 1){ + if(bt >= dat.length) return; + st.b = bt + 1; + if(out){fill(out, dat[bt], st.y, st.y += sz); return out;} + return fill(new u8(sz), dat[bt]); + } + if(ebt > dat.length) return; + if(btype == 0){ + st.b = ebt; + if(out){ + out.set(dat.subarray(bt, ebt), st.y); + st.y += sz; + return out; + } + return slc(dat, bt, ebt); + } + if(btype == 2){ + var + b3 = dat[bt], + lbt = b3 & 3, + sf = b3 >> 2 & 3, + lss = b3 >> 4, + lcs = 0, + s4 = 0; + if(lbt < 2) + if(sf & 1) + lss |= dat[++bt] << 4 | (sf & 2 && dat[++bt] << 12); + else + lss = b3 >> 3; + else{ + s4 = sf; + if(sf < 2) + lss |= (dat[++bt] & 63) << 4, lcs = dat[bt] >> 6 | dat[++bt] << 2; + else if(sf == 2) + lss |= dat[++bt] << 4 | (dat[++bt] & 3) << 12, + lcs = dat[bt] >> 2 | dat[++bt] << 6; + else + lss |= dat[++bt] << 4 | (dat[++bt] & 63) << 12, + lcs = dat[bt] >> 6 | dat[++bt] << 2 | dat[++bt] << 10; + } + ++bt; + var + buf = out ? out.subarray(st.y, st.y + st.m) : new u8(st.m), + spl = buf.length - lss; + if(lbt == 0) + buf.set(dat.subarray(bt, bt += lss), spl); + else if(lbt == 1) + fill(buf, dat[bt++], spl); + else{ + var hu = st.h; + if(lbt == 2){ + var hud = rhu(dat, bt); + lcs += bt - (bt = hud[0]); + st.h = hu = hud[1]; + } + else if(! hu) err(0); + (s4 ? dhu4 : dhu) + (dat.subarray(bt, bt += lcs), buf.subarray(spl), hu); + } + var ns = dat[bt++]; + if(ns){ + if(ns == 255) + ns = (dat[bt++] | dat[bt++] << 8) + 0x7F00; + else if(ns > 127) ns = ns - 128 << 8 | dat[bt++]; + var scm = dat[bt++]; + if(scm & 3) err(0); + var dts = [dmlt, doct, dllt]; + for(var i = 2; i > - 1; --i){ + var md = scm >> (i << 1) + 2 & 3; + if(md == 1){ + var rbuf = new u8([0, 0, dat[bt++]]); + dts[i] = + {s: rbuf.subarray(2, 3), + n: rbuf.subarray(0, 1), + t: new u16(rbuf.buffer, 0, 1), + b: 0}; + } + else if(md == 2) + _a = rfse(dat, bt, 9 - (i & 1)), bt = _a[0], dts[i] = _a[1]; + else if(md == 3){if(! st.t) err(0); dts[i] = st.t[i];} + } + var + _b = st.t = dts, + mlt = _b[0], + oct = _b[1], + llt = _b[2], + lb = dat[ebt - 1]; + if(! lb) err(0); + var + spos = (ebt << 3) - 8 + msb(lb) - llt.b, + cbt = spos >> 3, + oubt = 0, + lst = + (dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << llt.b) - 1; + cbt = (spos -= oct.b) >> 3; + var + ost = + (dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << oct.b) - 1; + cbt = (spos -= mlt.b) >> 3; + var + mst = + (dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << mlt.b) - 1; + for(++ns; --ns;){ + var + llc = llt.s[lst], + lbtr = llt.n[lst], + mlc = mlt.s[mst], + mbtr = mlt.n[mst], + ofc = oct.s[ost], + obtr = oct.n[ost]; + cbt = (spos -= ofc) >> 3; + var + ofp = 1 << ofc, + off = + ofp + + + ((dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16 + | dat[cbt + 3] << 24) + >>> (spos & 7) + & ofp - 1); + cbt = (spos -= mlb[mlc]) >> 3; + var + ml = + mlbl[mlc] + + + ((dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) + >> (spos & 7) + & (1 << mlb[mlc]) - 1); + cbt = (spos -= llb[llc]) >> 3; + var + ll = + llbl[llc] + + + ((dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) + >> (spos & 7) + & (1 << llb[llc]) - 1); + cbt = (spos -= lbtr) >> 3; + lst = + llt.t[lst] + + + ((dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << lbtr) - 1); + cbt = (spos -= mbtr) >> 3; + mst = + mlt.t[mst] + + + ((dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << mbtr) - 1); + cbt = (spos -= obtr) >> 3; + ost = + oct.t[ost] + + + ((dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << obtr) - 1); + if(off > 3){ + st.o[2] = st.o[1]; + st.o[1] = st.o[0]; + st.o[0] = off -= 3; + } + else{ + var idx = off - (ll != 0); + if(idx){ + off = idx == 3 ? st.o[0] - 1 : st.o[idx]; + if(idx > 1) st.o[2] = st.o[1]; + st.o[1] = st.o[0]; + st.o[0] = off; + } + else + off = st.o[0]; + } + for(var i = 0; i < ll; ++i) buf[oubt + i] = buf[spl + i]; + oubt += ll, spl += ll; + var stin = oubt - off; + if(stin < 0){ + var len = - stin, bs = st.e + stin; + if(len > ml) len = ml; + for(var i = 0; i < len; ++i) buf[oubt + i] = st.w[bs + i]; + oubt += len, ml -= len, stin = 0; + } + for(var i = 0; i < ml; ++i) buf[oubt + i] = buf[stin + i]; + oubt += ml; + } + if(oubt != spl) + while(spl < buf.length) buf[oubt++] = buf[spl++]; + else + oubt = buf.length; + if(out) st.y += oubt; else buf = slc(buf, 0, oubt); + } + else if(out){ + st.y += lss; + if(spl) for(var i = 0; i < lss; ++i) buf[i] = buf[spl + i]; + } + else if(spl) buf = slc(buf, spl); + st.b = ebt; + return buf; + } + err(2); + } + function cct(bufs, ol){ + if(bufs.length == 1) return bufs[0]; + var buf = new u8(ol); + for(var i = 0, b = 0; i < bufs.length; ++i){ + var chk = bufs[i]; + buf.set(chk, b); + b += chk.length; + } + return buf; + } + return function(dat, buf){ + var bt = 0, bufs = [], nb = + ! buf, ol = 0; + for(; dat.length;){ + var st = rzfh(dat, nb || buf); + if(typeof st == "object"){ + if(nb){ + buf = null; + if(st.w.length == st.u){bufs.push(buf = st.w); ol += st.u;} + } + else{bufs.push(buf); st.e = 0;} + for(; ! st.l;){ + var blk = rzb(dat, st, buf); + if(! blk) err(5); + if(buf) + st.e = st.y; + else{ + bufs.push(blk); + ol += blk.length; + cpw(st.w, 0, blk.length); + st.w.set(blk, st.w.length - blk.length); + } + } + bt = st.b + st.c * 4; + } + else + bt = st; + dat = dat.subarray(bt); + } + return cct(bufs, ol);}; + } + (); + function caml_float_of_bytes(a){ + return caml_int64_float_of_bits(caml_int64_of_bytes(a)); + } + function caml_input_value_from_reader(reader, ofs){ + function readvlq(overflow){ + var c = reader.read8u(), n = c & 0x7F; + while((c & 0x80) != 0){ + c = reader.read8u(); + var n7 = n << 7; + if(n != n7 >> 7) overflow[0] = true; + n = n7 | c & 0x7F; + } + return n; + } + var magic = reader.read32u(); + switch(magic){ + case 0x8495A6BE: + var + header_len = 20, + compressed = 0, + data_len = reader.read32u(), + uncompressed_data_len = data_len, + num_objects = reader.read32u(), + _size_32 = reader.read32u(), + _size_64 = reader.read32u(); + break; + case 0x8495A6BD: + var + header_len = reader.read8u() & 0x3F, + compressed = 1, + overflow = [false], + data_len = readvlq(overflow), + uncompressed_data_len = readvlq(overflow), + num_objects = readvlq(overflow), + _size_32 = readvlq(overflow), + _size_64 = readvlq(overflow); + if(overflow[0]) + caml_failwith + ("caml_input_value_from_reader: object too large to be read back on this platform"); + break; + case 0x8495A6BF: + caml_failwith + ("caml_input_value_from_reader: object too large to be read back on a 32-bit platform"); + break; + default: + caml_failwith("caml_input_value_from_reader: bad object"); break; + } + var + stack = [], + intern_obj_table = num_objects > 0 ? [] : null, + obj_counter = 0; + function intern_rec(reader){ + var code = reader.read8u(); + if(code >= 0x40) + if(code >= 0x80){ + var tag = code & 0xF, size = code >> 4 & 0x7, v = [tag]; + if(size == 0) return v; + if(intern_obj_table) intern_obj_table[obj_counter++] = v; + stack.push(v, size); + return v; + } + else + return code & 0x3F; + else if(code >= 0x20){ + var len = code & 0x1F, v = reader.readstr(len); + if(intern_obj_table) intern_obj_table[obj_counter++] = v; + return v; + } + else + switch(code){ + case 0x00: + return reader.read8s(); + case 0x01: + return reader.read16s(); + case 0x02: + return reader.read32s(); + case 0x03: + caml_failwith("input_value: integer too large"); break; + case 0x04: + var offset = reader.read8u(); + if(compressed == 0) offset = obj_counter - offset; + return intern_obj_table[offset]; + case 0x05: + var offset = reader.read16u(); + if(compressed == 0) offset = obj_counter - offset; + return intern_obj_table[offset]; + case 0x06: + var offset = reader.read32u(); + if(compressed == 0) offset = obj_counter - offset; + return intern_obj_table[offset]; + case 0x08: + var + header = reader.read32u(), + tag = header & 0xFF, + size = header >> 10, + v = [tag]; + if(size == 0) return v; + if(intern_obj_table) intern_obj_table[obj_counter++] = v; + stack.push(v, size); + return v; + case 0x13: + caml_failwith("input_value: data block too large"); break; + case 0x09: + var len = reader.read8u(), v = reader.readstr(len); + if(intern_obj_table) intern_obj_table[obj_counter++] = v; + return v; + case 0x0A: + var len = reader.read32u(), v = reader.readstr(len); + if(intern_obj_table) intern_obj_table[obj_counter++] = v; + return v; + case 0x0C: + var t = new Array(8); + for(var i = 0; i < 8; i++) t[7 - i] = reader.read8u(); + var v = caml_float_of_bytes(t); + if(intern_obj_table) intern_obj_table[obj_counter++] = v; + return v; + case 0x0B: + var t = new Array(8); + for(var i = 0; i < 8; i++) t[i] = reader.read8u(); + var v = caml_float_of_bytes(t); + if(intern_obj_table) intern_obj_table[obj_counter++] = v; + return v; + case 0x0E: + var len = reader.read8u(), v = new Array(len + 1); + v[0] = 254; + var t = new Array(8); + if(intern_obj_table) intern_obj_table[obj_counter++] = v; + for(var i = 1; i <= len; i++){ + for(var j = 0; j < 8; j++) t[7 - j] = reader.read8u(); + v[i] = caml_float_of_bytes(t); + } + return v; + case 0x0D: + var len = reader.read8u(), v = new Array(len + 1); + v[0] = 254; + var t = new Array(8); + if(intern_obj_table) intern_obj_table[obj_counter++] = v; + for(var i = 1; i <= len; i++){ + for(var j = 0; j < 8; j++) t[j] = reader.read8u(); + v[i] = caml_float_of_bytes(t); + } + return v; + case 0x07: + var len = reader.read32u(), v = new Array(len + 1); + v[0] = 254; + if(intern_obj_table) intern_obj_table[obj_counter++] = v; + var t = new Array(8); + for(var i = 1; i <= len; i++){ + for(var j = 0; j < 8; j++) t[7 - j] = reader.read8u(); + v[i] = caml_float_of_bytes(t); + } + return v; + case 0x0F: + var len = reader.read32u(), v = new Array(len + 1); + v[0] = 254; + var t = new Array(8); + for(var i = 1; i <= len; i++){ + for(var j = 0; j < 8; j++) t[j] = reader.read8u(); + v[i] = caml_float_of_bytes(t); + } + return v; + case 0x10: + case 0x11: + caml_failwith("input_value: code pointer"); break; + case 0x12: + case 0x18: + case 0x19: + var c, s = ""; + while((c = reader.read8u()) != 0) s += String.fromCharCode(c); + var ops = caml_custom_ops[s], expected_size; + if(! ops) + caml_failwith("input_value: unknown custom block identifier"); + switch(code){ + case 0x12: break; + case 0x19: + if(! ops.fixed_length) + caml_failwith("input_value: expected a fixed-size custom block"); + expected_size = ops.fixed_length; + break; + case 0x18: + expected_size = reader.read32u(); + reader.read32s(); + reader.read32s(); + break; + } + var + old_pos = reader.i, + size = [0], + v = ops.deserialize(reader, size); + if(expected_size != undefined) + if(expected_size != size[0]) + caml_failwith + ("input_value: incorrect length of serialized custom block"); + if(intern_obj_table) intern_obj_table[obj_counter++] = v; + return v; + default: caml_failwith("input_value: ill-formed message"); + } + } + if(compressed) + var + data = reader.readuint8array(data_len), + res = new Uint8Array(uncompressed_data_len), + res = zstd_decompress(data, res), + reader = new UInt8ArrayReader(res, 0); + var res = intern_rec(reader); + while(stack.length > 0){ + var size = stack.pop(), v = stack.pop(), d = v.length; + if(d < size) stack.push(v, size); + v[d] = intern_rec(reader); + } + if(typeof ofs != "number") ofs[0] = reader.i; + return res; + } + function caml_string_of_bytes(s){ + s.t & 6 && caml_convert_string_to_bytes(s); + return caml_string_of_jsbytes(s.c); + } + function caml_input_value_from_bytes(s, ofs){ + var + reader = + new + MlStringReader + (caml_string_of_bytes(s), typeof ofs == "number" ? ofs : ofs[0]); + return caml_input_value_from_reader(reader, ofs); + } + function caml_input_value(chanid){ + var + chan = caml_ml_channels[chanid], + header = new Uint8Array(caml_marshal_header_size); + function block(buffer, offset, n){ + var r = 0; + while(r < n){ + if(chan.buffer_curr >= chan.buffer_max){ + chan.buffer_curr = 0; + chan.buffer_max = 0; + caml_refill(chan); + } + if(chan.buffer_curr >= chan.buffer_max) break; + buffer[offset + r] = chan.buffer[chan.buffer_curr]; + chan.buffer_curr++; + r++; + } + return r; + } + var r = block(header, 0, caml_marshal_header_size); + if(r == 0) + caml_raise_end_of_file(); + else if(r < caml_marshal_header_size) + caml_failwith("input_value: truncated object"); + var + len = caml_marshal_data_size(caml_bytes_of_array(header), 0), + buf = new Uint8Array(len + caml_marshal_header_size); + buf.set(header, 0); + var r = block(buf, caml_marshal_header_size, len); + if(r < len) + caml_failwith("input_value: truncated object " + r + " " + len); + var + offset = [0], + res = caml_input_value_from_bytes(caml_bytes_of_array(buf), offset); + chan.offset = chan.offset + offset[0]; + return res; + } + function caml_input_value_to_outside_heap(c){return caml_input_value(c);} + function caml_atomic_cas(ref, o, n){ + if(ref[1] === o){ref[1] = n; return 1;} + return 0; + } + function caml_copysign_float(x, y){ + if(y == 0) y = 1 / y; + x = Math.abs(x); + return y < 0 ? - x : x; + } + function caml_gr_set_text_size(size){ + var s = caml_gr_state_get(); + s.text_size = size; + s.context.font = s.text_size + "px " + caml_jsstring_of_string(s.font); + return 0; + } + function caml_atomic_load(ref){return ref[1];} + function caml_MD5Final(ctx){ + var in_buf = ctx.len & 0x3f; + ctx.b8[in_buf] = 0x80; + in_buf++; + if(in_buf > 56){ + for(var j = in_buf; j < 64; j++) ctx.b8[j] = 0; + caml_MD5Transform(ctx.w, ctx.b32); + for(var j = 0; j < 56; j++) ctx.b8[j] = 0; + } + else + for(var j = in_buf; j < 56; j++) ctx.b8[j] = 0; + ctx.b32[14] = ctx.len << 3; + ctx.b32[15] = ctx.len >> 29 & 0x1FFFFFFF; + caml_MD5Transform(ctx.w, ctx.b32); + var t = new Uint8Array(16); + for(var i = 0; i < 4; i++) + for(var j = 0; j < 4; j++) t[i * 4 + j] = ctx.w[i] >> 8 * j & 0xFF; + return t; + } + function caml_md5_bytes(s, ofs, len){ + var ctx = caml_MD5Init(), a = caml_uint8_array_of_bytes(s); + caml_MD5Update(ctx, a.subarray(ofs, ofs + len), len); + return caml_string_of_array(caml_MD5Final(ctx)); + } + function caml_ba_set_generic(ba, i, v){ + ba.set(ba.offset(caml_js_from_array(i)), v); + return 0; + } + function caml_ml_condition_wait(t, mutext){return 0;} + function caml_string_lessequal(s1, s2){return s1 <= s2 ? 1 : 0;} + function caml_string_greaterequal(s1, s2){return caml_string_lessequal(s2, s1); + } + function caml_nextafter_float(x, y){ + if(isNaN(x) || isNaN(y)) return NaN; + if(x == y) return y; + if(x == 0) return y < 0 ? - Math.pow(2, - 1074) : Math.pow(2, - 1074); + var bits = caml_int64_bits_of_float(x), one = caml_int64_of_int32(1); + if(x < y == x > 0) + bits = caml_int64_add(bits, one); + else + bits = caml_int64_sub(bits, one); + return caml_int64_float_of_bits(bits); + } + function caml_gr_size_y(){var s = caml_gr_state_get(); return s.height;} + function ml_z_fac2(i){ + if(i <= 0) caml_invalid_argument("Z.fact2: negative arguments"); + return ml_z_facM(i, 2); + } + function caml_pos_in(chanid){ + var chan = caml_ml_channels[chanid]; + return chan.offset - (chan.buffer_max - chan.buffer_curr) | 0; + } + function caml_ml_pos_in(chanid){return caml_pos_in(chanid);} + function caml_int64_and(x, y){return x.and(y);} + function caml_sys_const_word_size(){return 32;} + function ml_z_bin(n, k){ + var n = bigInt(n), k = bigInt(k), coeff = bigInt(1); + for(var x = n.minus(k).add(bigInt(1)); x.leq(n); x = x.add(bigInt(1))) + coeff = coeff.multiply(x); + for(x = bigInt(1); x.leq(k); x = x.add(bigInt(1))) + coeff = coeff.divide(x); + return ml_z_normalize(coeff); + } + function caml_runtime_events_pause(){return 0;} + function caml_unix_unlink(name){ + var root = resolve_fs_device(name); + if(! root.device.unlink) + caml_failwith("caml_unix_unlink: not implemented"); + return root.device.unlink(root.rest, true); + } + function caml_sys_open_for_node(fd, flags){ + if(flags.name) + try{ + var fs = require("fs"), fd2 = fs.openSync(flags.name, "rs"); + return new MlNodeFd(fd2, flags); + } + catch(e){} + return new MlNodeFd(fd, flags); + } + function MlFakeFd_out(fd, flags){ + MlFakeFile.call(this, caml_create_bytes(0)); + this.log = function(s){return 0;}; + if(fd == 1 && typeof console.log == "function") + this.log = console.log; + else if(fd == 2 && typeof console.error == "function") + this.log = console.error; + else if(typeof console.log == "function") this.log = console.log; + this.flags = flags; + } + MlFakeFd_out.prototype.length = function(){return 0;}; + MlFakeFd_out.prototype.write = + function(offset, buf, pos, len){ + if(this.log){ + if + (len > 0 && pos >= 0 && pos + len <= buf.length + && buf[pos + len - 1] == 10) + len--; + var src = caml_create_bytes(len); + caml_blit_bytes(caml_bytes_of_array(buf), pos, src, 0, len); + this.log(src.toUtf16()); + return 0; + } + caml_raise_sys_error(this.fd + ": file descriptor already closed"); + }; + MlFakeFd_out.prototype.read = + function(offset, buf, pos, len){ + caml_raise_sys_error(this.fd + ": file descriptor is write only"); + }; + MlFakeFd_out.prototype.close = function(){this.log = undefined;}; + function caml_sys_open_internal(file, idx){ + if(idx == undefined) idx = caml_sys_fds.length; + caml_sys_fds[idx] = file; + return idx | 0; + } + function caml_sys_open(name, flags, _perms){ + var f = {}; + while(flags){ + switch(flags[1]){ + case 0: + f.rdonly = 1; break; + case 1: + f.wronly = 1; break; + case 2: + f.append = 1; break; + case 3: + f.create = 1; break; + case 4: + f.truncate = 1; break; + case 5: + f.excl = 1; break; + case 6: + f.binary = 1; break; + case 7: + f.text = 1; break; + case 8: + f.nonblock = 1; break; + } + flags = flags[2]; + } + if(f.rdonly && f.wronly) + caml_raise_sys_error + (caml_jsbytes_of_string(name) + + " : flags Open_rdonly and Open_wronly are not compatible"); + if(f.text && f.binary) + caml_raise_sys_error + (caml_jsbytes_of_string(name) + + " : flags Open_text and Open_binary are not compatible"); + var root = resolve_fs_device(name), file = root.device.open(root.rest, f); + return caml_sys_open_internal(file, undefined); + } + (function(){ + function file(fd, flags){ + return fs_node_supported() + ? caml_sys_open_for_node(fd, flags) + : new MlFakeFd_out(fd, flags); + } + caml_sys_open_internal + (file(0, {rdonly: 1, altname: "/dev/stdin", isCharacterDevice: true}), + 0); + caml_sys_open_internal + (file(1, {buffered: 2, wronly: 1, isCharacterDevice: true}), 1); + caml_sys_open_internal + (file(2, {buffered: 2, wronly: 1, isCharacterDevice: true}), 2); + } + ()); + function ml_z_gcd(z1, z2){ + return ml_z_normalize(bigInt.gcd(bigInt(z1), bigInt(z2)).abs()); + } + function ml_z_hamdist(z1, z2){ + if(bigInt(z1).isNegative() != bigInt(z2).isNegative()) + caml_raise_constant(caml_named_value("ml_z_overflow")); + if + ((z1 != (z1 | 0) || z2 != (z2 | 0)) + && (bigInt(z1).isNegative() || bigInt(z2).isNegative())) + caml_invalid_argument("Z.hamdist: negative arguments"); + return ml_z_popcount(bigInt(z1).xor(bigInt(z2))); + } + function ml_z_mul(z1, z2){ + return ml_z_normalize(bigInt(z1).multiply(bigInt(z2))); + } + function caml_string_get(s, i){ + if(i >>> 0 >= caml_ml_string_length(s)) caml_string_bound_error(); + return caml_string_unsafe_get(s, i); + } + var + re_match = + function(){ + var + re_word_letters = [0x00, 0x00, 0x00, @@ -5496,4428 +6822,17729 @@ 0xFF, 0x7F, 0xFF], - opcodes= - {CHAR:0, - CHARNORM:1, - STRING:2, - STRINGNORM:3, - CHARCLASS:4, - BOL:5, - EOL:6, - WORDBOUNDARY:7, - BEGGROUP:8, - ENDGROUP:9, - REFGROUP:10, - ACCEPT:11, - SIMPLEOPT:12, - SIMPLESTAR:13, - SIMPLEPLUS:14, - GOTO:15, - PUSHBACK:16, - SETMARK:17, - CHECKPROGRESS:18}; - function is_word_letter(c) - {return re_word_letters[c >> 3] >> (c & 7) & 1} - function in_bitset(s,i) - {return caml_string_get(s,i >> 3) >> (i & 7) & 1} - function re_match_impl(re,s,pos,partial) - {var - prog=caml_js_from_array(re[1]), - cpool=caml_js_from_array(re[2]), - normtable=caml_jsbytes_of_string(re[3]), - numgroups=re[4] | 0, - numregisters=re[5] | 0, - startchars=re[6] | 0, - s=caml_uint8_array_of_string(s), - pc=0, - quit=false, - stack=[], - groups=new Array(numgroups), - re_register=new Array(numregisters); - for(var i=0;i < groups.length;i++)groups[i] = {start:- 1,end:- 1}; - groups[0].start = pos; - function backtrack() - {while(stack.length) - {var item=stack.pop(); - if(item.undo) - item.undo.obj[item.undo.prop] = item.undo.value; - else - if(item.pos){pc = item.pos.pc;pos = item.pos.txt;return}} - quit = true} - function push(item){stack.push(item)} - function accept() - {groups[0].end = pos; - var result=new Array(1 + groups.length * 2); - result[0] = 0; - for(var i=0;i < groups.length;i++) - {var g=groups[i]; - if(g.start < 0 || g.end < 0)g.start = g.end = - 1; - result[2 * i + 1] = g.start; - result[2 * i + 1 + 1] = g.end} - return result} - function prefix_match() - {if(partial)return accept();else backtrack()} - while(! quit) - {var - op=prog[pc] & 0xff, - sarg=prog[pc] >> 8, - uarg=sarg & 0xff, - c=s[pos], - group; - pc++; - switch(op) - {case opcodes.CHAR: - if(pos === s.length){prefix_match();break} - if(c === uarg)pos++;else backtrack(); - break; - case opcodes.CHARNORM: - if(pos === s.length){prefix_match();break} - if(normtable.charCodeAt(c) === uarg)pos++;else backtrack(); - break; - case opcodes.STRING: - for - (var arg=caml_jsbytes_of_string(cpool[uarg]),i=0; - i - < - arg.length; - i++) - {if(pos === s.length){prefix_match();break} - if(c === arg.charCodeAt(i)) - c = s[++pos]; - else - {backtrack();break}} - break; - case opcodes.STRINGNORM: - for - (var arg=caml_jsbytes_of_string(cpool[uarg]),i=0; - i - < - arg.length; - i++) - {if(pos === s.length){prefix_match();break} - if(normtable.charCodeAt(c) === arg.charCodeAt(i)) - c = s[++pos]; - else - {backtrack();break}} - break; - case opcodes.CHARCLASS: - if(pos === s.length){prefix_match();break} - if(in_bitset(cpool[uarg],c))pos++;else backtrack(); - break; - case opcodes.BOL: - if(pos > 0 && s[pos - 1] != 10)backtrack();break; - case opcodes.EOL: - if(pos < s.length && s[pos] != 10)backtrack();break; - case opcodes.WORDBOUNDARY: - if(pos == 0) - {if(pos === s.length){prefix_match();break} - if(is_word_letter(s[0]))break; - backtrack()} - else - if(pos === s.length) - {if(is_word_letter(s[pos - 1]))break;backtrack()} - else - {if(is_word_letter(s[pos - 1]) != is_word_letter(s[pos])) - break; - backtrack()} - break; - case opcodes.BEGGROUP: - group = groups[uarg]; - push({undo:{obj:group,prop:"start",value:group.start}}); - group.start = pos; - break; - case opcodes.ENDGROUP: - group = groups[uarg]; - push({undo:{obj:group,prop:"end",value:group.end}}); - group.end = pos; - break; - case opcodes.REFGROUP: - group = groups[uarg]; - if(group.start < 0 || group.end < 0){backtrack();break} - for(var i=group.start;i < group.end;i++) - {if(pos === s.length){prefix_match();break} - if(s[i] != s[pos]){backtrack();break} - pos++} - break; - case opcodes.SIMPLEOPT:if(in_bitset(cpool[uarg],c))pos++;break; - case opcodes.SIMPLESTAR: - while(in_bitset(cpool[uarg],c))c = s[++pos];break; - case opcodes.SIMPLEPLUS: - if(pos === s.length){prefix_match();break} - if(in_bitset(cpool[uarg],c)) - do c = s[++pos];while(in_bitset(cpool[uarg],c)); - else - backtrack(); - break; - case opcodes.ACCEPT:return accept(); - case opcodes.GOTO:pc = pc + sarg;break; - case opcodes.PUSHBACK:push({pos:{pc:pc + sarg,txt:pos}});break; - case opcodes.SETMARK: - push - ({undo:{obj:re_register,prop:uarg,value:re_register[uarg]}}); - re_register[uarg] = pos; - break; - case opcodes.CHECKPROGRESS: - if(re_register[uarg] === pos)backtrack();break; - default:throw new Error("Invalid bytecode")}} - return 0} - return re_match_impl} - (); - function re_search_backward(re,s,pos) - {if(pos < 0 || pos > caml_ml_string_length(s)) - caml_invalid_argument("Str.search_backward"); - while(pos >= 0){var res=re_match(re,s,pos,0);if(res)return res;pos--} - return [0]} - function ml_z_logand(z1,z2) - {return ml_z_normalize(bigInt(z1).and(bigInt(z2)))} - function caml_js_from_string(s){return caml_jsstring_of_string(s)} - function caml_ba_sub(ba,ofs,len) - {var changed_dim,mul=1; - if(ba.layout == 0) - {for(var i=1;i < ba.dims.length;i++)mul = mul * ba.dims[i]; - changed_dim = 0} - else - {for(var i=0;i < ba.dims.length - 1;i++)mul = mul * ba.dims[i]; - changed_dim = ba.dims.length - 1; - ofs = ofs - 1} - if(ofs < 0 || len < 0 || ofs + len > ba.dims[changed_dim]) - caml_invalid_argument("Bigarray.sub: bad sub-array"); - var new_dims=[]; - for(var i=0;i < ba.dims.length;i++)new_dims[i] = ba.dims[i]; - new_dims[changed_dim] = len; - mul *= caml_ba_get_size_per_element(ba.kind); - var new_data=ba.data.subarray(ofs * mul,(ofs + len) * mul); - return caml_ba_create_unsafe(ba.kind,ba.layout,new_dims,new_data)} - function caml_gc_full_major(unit) - {if(typeof globalThis.gc == "function")globalThis.gc();return 0} - function caml_ml_mutex_try_lock(t) - {if(! t.locked){t.locked = true;return 1}return 0} - function caml_bytes_set32(s,i,i32) - {if(i >>> 0 >= s.l - 3)caml_bytes_bound_error(); - var - b4=0xFF & i32 >> 24, - b3=0xFF & i32 >> 16, - b2=0xFF & i32 >> 8, - b1=0xFF & i32; - caml_bytes_unsafe_set(s,i + 0,b1); - caml_bytes_unsafe_set(s,i + 1,b2); - caml_bytes_unsafe_set(s,i + 2,b3); - caml_bytes_unsafe_set(s,i + 3,b4); - return 0} - function caml_gr_sigio_signal(){return 0} - function caml_ba_uint8_set32(ba,i0,v) - {var ofs=ba.offset(i0); - if(ofs + 3 >= ba.data.length)caml_array_bound_error(); - ba.set(ofs + 0,v & 0xff); - ba.set(ofs + 1,v >>> 8 & 0xff); - ba.set(ofs + 2,v >>> 16 & 0xff); - ba.set(ofs + 3,v >>> 24 & 0xff); - return 0} - function ml_z_div_rem(z1,z2){return [0,ml_z_div(z1,z2),ml_z_rem(z1,z2)]} - function caml_sys_const_ostype_unix(){return os_type == "Unix"?1:0} - function caml_unix_gmtime(t) - {var - d=new Date(t * 1000), - d_num=d.getTime(), - januaryfirst=new Date(Date.UTC(d.getUTCFullYear(),0,1)).getTime(), - doy=Math.floor((d_num - januaryfirst) / 86400000); - return [0, - d.getUTCSeconds(), - d.getUTCMinutes(), - d.getUTCHours(), - d.getUTCDate(), - d.getUTCMonth(), - d.getUTCFullYear() - 1900, - d.getUTCDay(), - doy, - false | 0]} - function caml_signbit_float(x){if(x == 0)x = 1 / x;return x < 0?1:0} - function caml_gr_set_line_width(w) - {var s=caml_gr_state_get(); - s.line_width = w; - s.context.lineWidth = w; - return 0} - function caml_gr_set_font(f) - {var s=caml_gr_state_get(); - s.font = f; - s.context.font = s.text_size + "px " + caml_jsstring_of_string(s.font); - return 0} - function caml_gr_set_color(color) - {var s=caml_gr_state_get(); - function convert(number) - {var str="" + number.toString(16); - while(str.length < 2)str = "0" + str; - return str} - var r=color >> 16 & 0xff,g=color >> 8 & 0xff,b=color >> 0 & 0xff; - s.color = color; - var c_str="#" + convert(r) + convert(g) + convert(b); - s.context.fillStyle = c_str; - s.context.strokeStyle = c_str; - return 0} - function caml_gr_moveto(x,y) - {var s=caml_gr_state_get();s.x = x;s.y = y;return 0} - function caml_gr_resize_window(w,h) - {var s=caml_gr_state_get(); - s.width = w; - s.height = h; - s.canvas.width = w; - s.canvas.height = h; - return 0} - function caml_gr_state_init() - {caml_gr_moveto(caml_gr_state.x,caml_gr_state.y); - caml_gr_resize_window(caml_gr_state.width,caml_gr_state.height); - caml_gr_set_line_width(caml_gr_state.line_width); - caml_gr_set_text_size(caml_gr_state.text_size); - caml_gr_set_font(caml_gr_state.font); - caml_gr_set_color(caml_gr_state.color); - caml_gr_set_window_title(caml_gr_state.title); - caml_gr_state.context.textBaseline = "bottom"} - function caml_gr_current_x(){var s=caml_gr_state_get();return s.x} - function caml_ba_kind_of_typed_array(ta) - {var kind; - if(ta instanceof Float32Array) - kind = 0; - else - if(ta instanceof Float64Array) - kind = 1; - else - if(ta instanceof Int8Array) - kind = 2; - else - if(ta instanceof Uint8Array) - kind = 3; - else - if(ta instanceof Int16Array) - kind = 4; - else - if(ta instanceof Uint16Array) - kind = 5; - else - if(ta instanceof Int32Array) - kind = 6; - else - if(ta instanceof Uint32Array) - kind = 6; - else - caml_invalid_argument - ("caml_ba_kind_of_typed_array: unsupported kind"); - return kind} - function caml_ba_from_typed_array(ta) - {var kind=caml_ba_kind_of_typed_array(ta); - return caml_ba_create_unsafe(kind,0,[ta.length],ta)} - function caml_ml_seek_out(chanid,pos){return caml_seek_out(chanid,pos)} - function caml_js_typeof(o){return typeof o} - function caml_hash_mix_string(h,v) - {return caml_hash_mix_jsbytes(h,caml_jsbytes_of_string(v))} - function caml_string_hash(h,v) - {var h=caml_hash_mix_string(h,v),h=caml_hash_mix_final(h); - return h & 0x3FFFFFFF} - function caml_restore_raw_backtrace(exn,bt){return 0} - function caml_gr_lineto(x,y) - {var s=caml_gr_state_get(); - s.context.beginPath(); - s.context.moveTo(s.x,s.height - s.y); - s.context.lineTo(x,s.height - y); - s.context.stroke(); - s.x = x; - s.y = y; - return 0} - function caml_js_wrap_meth_callback_unsafe(f) - {return function() - {var len=arguments.length,args=new Array(len + 1); - args[0] = this; - for(var i=0;i < len;i++)args[i + 1] = arguments[i]; - return f.apply(null,args)}} - function caml_ba_dim_3(ba){return caml_ba_dim(ba,2)} - function caml_is_special_exception(exn) - {switch(exn[2]){case - 8:case - 11:case - 12:return 1;default:return 0}} - function caml_format_exception(exn) - {var r=""; - if(exn[0] == 0) - {r += exn[1][1]; - if - (exn.length - == - 3 - && - exn[2][0] - == - 0 - && - caml_is_special_exception(exn[1])) - var bucket=exn[2],start=1; - else - var start=2,bucket=exn; - r += "("; - for(var i=start;i < bucket.length;i++) - {if(i > start)r += ", "; - var v=bucket[i]; - if(typeof v == "number") - r += v.toString(); - else - if(v instanceof MlBytes) - r += '"' + v.toString() + '"'; - else - if(typeof v == "string") - r += '"' + v.toString() + '"'; - else - r += "_"} - r += ")"} - else - if(exn[0] == 248)r += exn[1]; - return r} - function caml_fatal_uncaught_exception(err) - {if(err instanceof Array && (err[0] == 0 || err[0] == 248)) - {var handler=caml_named_value("Printexc.handle_uncaught_exception"); - if(handler) - handler(err,false); - else - {var - msg=caml_format_exception(err), - at_exit=caml_named_value("Pervasives.do_at_exit"); - if(at_exit)at_exit(0); - console.error("Fatal error: exception " + msg + "\n")}} - else - throw err} - function caml_ephe_check_data(x) - {return x[caml_ephe_data_offset] === undefined?0:1} - function caml_bytes_get16(s,i) - {if(i >>> 0 >= s.l - 1)caml_bytes_bound_error(); - var b1=caml_bytes_unsafe_get(s,i),b2=caml_bytes_unsafe_get(s,i + 1); - return b2 << 8 | b1} - function caml_obj_make_forward(b,v){b[0] = 250;b[1] = v;return 0} - function caml_js_from_bool(x){return ! ! x} - function caml_ml_set_channel_name(chanid,name) - {var chan=caml_ml_channels[chanid];chan.name = name;return 0} - function caml_exp2_float(x){return Math.pow(2,x)} - function caml_gr_close_graph() - {var s=caml_gr_state_get(); - s.canvas.width = 0; - s.canvas.height = 0; - return 0} - function caml_ml_domain_cpu_relax(unit){return 0} - function caml_create_string(len) - {if(len < 0)caml_invalid_argument("String.create"); - return new MlBytes(len?2:9,"",len)} - function caml_ml_input_block(chanid,ba,i,l) - {var - chan=caml_ml_channels[chanid], - n=l, - avail=chan.buffer_max - chan.buffer_curr; - if(l <= avail) - {ba.set(chan.buffer.subarray(chan.buffer_curr,chan.buffer_curr + l),i); - chan.buffer_curr += l} - else - if(avail > 0) - {ba.set - (chan.buffer.subarray(chan.buffer_curr,chan.buffer_curr + avail),i); - chan.buffer_curr += avail; - n = avail} - else - {chan.buffer_curr = 0; - chan.buffer_max = 0; - caml_refill(chan); - var avail=chan.buffer_max - chan.buffer_curr; - if(n > avail)n = avail; - ba.set(chan.buffer.subarray(chan.buffer_curr,chan.buffer_curr + n),i); - chan.buffer_curr += n} - return n} - function caml_md5_chan(chanid,toread) - {var ctx=caml_MD5Init(),buffer=new Uint8Array(4096); - if(toread < 0) - while(true) - {var read=caml_ml_input_block(chanid,buffer,0,buffer.length); - if(read == 0)break; - caml_MD5Update(ctx,buffer.subarray(0,read),read)} - else - while(toread > 0) - {var - read= - caml_ml_input_block - (chanid,buffer,0,toread > buffer.length?buffer.length:toread); - if(read == 0)caml_raise_end_of_file(); - caml_MD5Update(ctx,buffer.subarray(0,read),read); - toread -= read} - return caml_string_of_array(caml_MD5Final(ctx))} - function caml_atanh_float(x){return Math.atanh(x)} - function caml_ml_condition_signal(t){return 0} - function caml_unix_findnext(dir_handle) - {return caml_unix_readdir(dir_handle)} - function caml_ml_output_bytes(chanid,buffer,offset,len) - {var chan=caml_ml_channels[chanid]; - if(! chan.opened) - caml_raise_sys_error("Cannot output to a closed channel"); - var buffer=caml_uint8_array_of_bytes(buffer); - buffer = buffer.subarray(offset,offset + len); - if(chan.buffer_curr + buffer.length > chan.buffer.length) - {var b=new Uint8Array(chan.buffer_curr + buffer.length); - b.set(chan.buffer); - chan.buffer = b} - switch(chan.buffered) - {case 0: - chan.buffer.set(buffer,chan.buffer_curr); - chan.buffer_curr += buffer.length; - caml_ml_flush(chanid); - break; - case 1: - chan.buffer.set(buffer,chan.buffer_curr); - chan.buffer_curr += buffer.length; - if(chan.buffer_curr >= chan.buffer.length)caml_ml_flush(chanid); - break; - case 2: - var id=buffer.lastIndexOf(10); - if(id < 0) - {chan.buffer.set(buffer,chan.buffer_curr); - chan.buffer_curr += buffer.length; - if(chan.buffer_curr >= chan.buffer.length)caml_ml_flush(chanid)} - else - {chan.buffer.set(buffer.subarray(0,id + 1),chan.buffer_curr); - chan.buffer_curr += id + 1; - caml_ml_flush(chanid); - chan.buffer.set(buffer.subarray(id + 1),chan.buffer_curr); - chan.buffer_curr += buffer.length - id - 1} - break + opcodes = + {CHAR: 0, + CHARNORM: 1, + STRING: 2, + STRINGNORM: 3, + CHARCLASS: 4, + BOL: 5, + EOL: 6, + WORDBOUNDARY: 7, + BEGGROUP: 8, + ENDGROUP: 9, + REFGROUP: 10, + ACCEPT: 11, + SIMPLEOPT: 12, + SIMPLESTAR: 13, + SIMPLEPLUS: 14, + GOTO: 15, + PUSHBACK: 16, + SETMARK: 17, + CHECKPROGRESS: 18}; + function is_word_letter(c){ + return re_word_letters[c >> 3] >> (c & 7) & 1; } - return 0} - function caml_ml_output(chanid,buffer,offset,len) - {return caml_ml_output_bytes - (chanid,caml_bytes_of_string(buffer),offset,len)} - function caml_ml_domain_id(unit){return caml_domain_id} - function caml_ephe_get_data(x) - {return x[caml_ephe_data_offset] === undefined - ?0 - :[0,x[caml_ephe_data_offset]]} - function caml_xmlhttprequest_create(unit) - {if(typeof globalThis.XMLHttpRequest !== "undefined") - try {return new (globalThis.XMLHttpRequest)()}catch(e){} - if(typeof globalThis.activeXObject !== "undefined") - {try - {return new (globalThis.activeXObject)("Msxml2.XMLHTTP")} - catch(e){} - try - {return new (globalThis.activeXObject)("Msxml3.XMLHTTP")} - catch(e){} - try - {return new (globalThis.activeXObject)("Microsoft.XMLHTTP")} - catch(e){}} - caml_failwith("Cannot create a XMLHttpRequest")} - function caml_trampoline_return(f,args) - {return {joo_tramp:f,joo_args:args}} - function caml_ml_is_buffered(chanid) - {return caml_ml_channels[chanid].buffered?1:0} - function caml_array_append(a1,a2) - {var l1=a1.length,l2=a2.length,l=l1 + l2 - 1,a=new Array(l); - a[0] = 0; - var i=1,j=1; - for(;i < l1;i++)a[i] = a1[i]; - for(;i < l;i++,j++)a[i] = a2[j]; - return a} - function caml_unix_gettimeofday(){return new Date().getTime() / 1000} - function caml_unix_time(){return Math.floor(caml_unix_gettimeofday())} - function caml_ml_set_channel_refill(chanid,f) - {caml_ml_channels[chanid].refill = f;return 0} - function ml_z_nextprime(z1) - {z1 = bigInt(z1); - var one=bigInt(1),two=bigInt(2); - if(z1.lt(one) || z1.equals(one))return 2; - if(z1.and(one).equals(one))z1 = z1.add(two);else z1 = z1.add(one); - while(true) - if(z1.isProbablePrime(25)) - return ml_z_normalize(z1); - else - z1 = z1.add(two)} - function caml_fill_bytes(s,i,l,c) - {if(l > 0) - if(i == 0 && (l >= s.l || s.t == 2 && l >= s.c.length)) - if(c == 0) - {s.c = "";s.t = 2} - else - {s.c = caml_str_repeat(l,String.fromCharCode(c));s.t = l == s.l?0:2} - else - {if(s.t != 4)caml_convert_bytes_to_array(s); - for(l += i;i < l;i++)s.c[i] = c} - return 0} - function caml_js_expr(s) - {console.error("caml_js_expr: fallback to runtime evaluation\n"); - return eval(caml_jsstring_of_string(s))} - function caml_ml_runtime_warnings_enabled(_unit) - {return caml_runtime_warnings} - function ml_z_sub(z1,z2) - {return ml_z_normalize(bigInt(z1).subtract(bigInt(z2)))} - function ml_z_fdiv(z1,z2) - {var z1_pos=ml_z_sign(z1),z2_pos=ml_z_sign(z2); - if(z1_pos * z2_pos < 0) - if(! bigInt(z1).mod(bigInt(z2)).equals(bigInt(0))) - return ml_z_sub(ml_z_div(z1,z2),bigInt(1)); - return ml_z_div(z1,z2)} - function ml_z_to_bits(z1) - {z1 = bigInt(z1).abs(); - var res=""; - while(! z1.equals(bigInt(0))) - {res += String.fromCharCode(z1.mod(bigInt(256))); - z1 = z1.divide(bigInt(256))} - while(res.length % 4 != 0)res += String.fromCharCode(0); - return caml_string_of_jsbytes(res)} - function caml_output_value_to_bytes(v,flags) - {return caml_bytes_of_array(caml_output_val(v,flags))} - function caml_eventlog_resume(unit){return 0} - function caml_hash_univ_param(count,limit,obj) - {var hash_accu=0; - function hash_aux(obj) - {limit--; - if(count < 0 || limit < 0)return; - if(obj instanceof Array && obj[0] === (obj[0] | 0)) - switch(obj[0]) - {case 248:count--;hash_accu = hash_accu * 65599 + obj[2] | 0;break; - case 250:limit++;hash_aux(obj);break; - default: - count--; - hash_accu = hash_accu * 19 + obj[0] | 0; - for(var i=obj.length - 1;i > 0;i--)hash_aux(obj[i])} - else - if(caml_is_ml_bytes(obj)) - {count--; - var content=caml_ml_bytes_content(obj); - if(typeof content === "string") - for(var b=content,l=b.length,i=0;i < l;i++) - hash_accu = hash_accu * 19 + b.charCodeAt(i) | 0; - else - for(var a=content,l=a.length,i=0;i < l;i++) - hash_accu = hash_accu * 19 + a[i] | 0} - else - if(caml_is_ml_string(obj)) - {var jsbytes=caml_jsbytes_of_string(obj); - for(var b=jsbytes,l=jsbytes.length,i=0;i < l;i++) - hash_accu = hash_accu * 19 + b.charCodeAt(i) | 0} - else - if(typeof obj === "string") - for(var b=obj,l=obj.length,i=0;i < l;i++) - hash_accu = hash_accu * 19 + b.charCodeAt(i) | 0; - else - if(obj === (obj | 0)) - {count--;hash_accu = hash_accu * 65599 + obj | 0} - else - if(obj === + obj) - {count--; - var p=caml_int64_to_bytes(caml_int64_bits_of_float(obj)); - for(var i=7;i >= 0;i--)hash_accu = hash_accu * 19 + p[i] | 0} - else - if(obj && obj.caml_custom) - if - (caml_custom_ops[obj.caml_custom] - && - caml_custom_ops[obj.caml_custom].hash) - {var h=caml_custom_ops[obj.caml_custom].hash(obj) | 0; - hash_accu = hash_accu * 65599 + h | 0}} - hash_aux(obj); - return hash_accu & 0x3FFFFFFF} - function caml_md5_string(s,ofs,len) - {return caml_md5_bytes(caml_bytes_of_string(s),ofs,len)} - function caml_string_equal(s1,s2){return caml_bytes_equal(s1,s2)} - function caml_array_of_string(x){return caml_uint8_array_of_string(x)} - function ml_z_divexact(z1,z2){return ml_z_div(z1,z2)} - function caml_output_value_to_buffer(s,ofs,len,v,flags) - {var t=caml_output_val(v,flags); - if(t.length > len)caml_failwith("Marshal.to_buffer: buffer overflow"); - caml_blit_bytes(t,0,s,ofs,t.length); - return 0} - function re_replacement_text(repl,groups,orig) - {var - repl=caml_jsbytes_of_string(repl), - len=repl.length, - orig=caml_jsbytes_of_string(orig), - res="", - n=0, - cur, - start, - end, - c; - while(n < len) - {cur = repl.charAt(n++); - if(cur != "\\") - res += cur; - else - {if(n == len) - caml_failwith("Str.replace: illegal backslash sequence"); - cur = repl.charAt(n++); - switch(cur) - {case "\\":res += cur;break; - case "0": - case "1": - case "2": - case "3": - case "4": - case "5": - case "6": - case "7": - case "8": - case "9": - c = + cur; - if(c * 2 >= groups.length - 1) - caml_failwith("Str.replace: reference to unmatched group"); - start = caml_array_get(groups,c * 2); - end = caml_array_get(groups,c * 2 + 1); - if(start == - 1) - caml_failwith("Str.replace: reference to unmatched group"); - res += orig.slice(start,end); - break; - default:res += "\\" + cur}}} - return caml_string_of_jsbytes(res)} - function caml_pure_js_expr(s) - {console.error("caml_pure_js_expr: fallback to runtime evaluation\n"); - return eval(caml_jsstring_of_string(s))} - function caml_blit_string(a,b,c,d,e) - {caml_blit_bytes(caml_bytes_of_string(a),b,c,d,e);return 0} - function blit_nat(nat1,ofs1,nat2,ofs2,len) - {for(var i=0;i < len;i++)nat1.data[ofs1 + i] = nat2.data[ofs2 + i]; - return 0} - function caml_bigstring_blit_ba_to_bytes(ba1,pos1,bytes2,pos2,len) - {if(12 != ba1.kind) - caml_invalid_argument - ("caml_bigstring_blit_string_to_ba: kind mismatch"); - if(len == 0)return 0; - var ofs1=ba1.offset(pos1); - if(ofs1 + len > ba1.data.length)caml_array_bound_error(); - if(pos2 + len > caml_ml_bytes_length(bytes2))caml_array_bound_error(); - var slice=ba1.data.slice(ofs1,ofs1 + len); - caml_blit_bytes(caml_bytes_of_array(slice),0,bytes2,pos2,len); - return 0} - function caml_unix_stat(name) - {var root=resolve_fs_device(name); - if(! root.device.stat)caml_failwith("caml_unix_stat: not implemented"); - return root.device.stat(root.rest,true)} - function caml_register_named_value(nm,v) - {caml_named_values[caml_jsbytes_of_string(nm)] = v;return 0} - function jsoo_create_file_extern(name,content) - {if(globalThis.jsoo_create_file) - globalThis.jsoo_create_file(name,content); - else - {if(! globalThis.caml_fs_tmp)globalThis.caml_fs_tmp = []; - globalThis.caml_fs_tmp.push({name:name,content:content})} - return 0} - function caml_unix_stat_64(name) - {var r=caml_unix_stat(name);r[9] = caml_int64_of_int32(r[9])} - function caml_to_js_string(s){return caml_jsstring_of_string(s)} - function caml_ml_mutex_lock(t) - {if(t.locked) - caml_failwith("Mutex.lock: mutex already locked. Cannot wait."); - else - t.locked = true; - return 0} - function re_search_forward(re,s,pos) - {if(pos < 0 || pos > caml_ml_string_length(s)) - caml_invalid_argument("Str.search_forward"); - while(pos <= caml_ml_string_length(s)) - {var res=re_match(re,s,pos,0);if(res)return res;pos++} - return [0]} - var caml_blit_string_to_bigstring=caml_bigstring_blit_string_to_ba; - function caml_make_vect(len,init) - {if(len < 0)caml_array_bound_error(); - var len=len + 1 | 0,b=new Array(len); - b[0] = 0; - for(var i=1;i < len;i++)b[i] = init; - return b} - function caml_ml_seek_in(chanid,pos){return caml_seek_in(chanid,pos)} - function caml_sys_read_directory(name) - {var - root=resolve_fs_device(name), - a=root.device.readdir(root.rest), - l=new Array(a.length + 1); - l[0] = 0; - for(var i=0;i < a.length;i++)l[i + 1] = caml_string_of_jsbytes(a[i]); - return l} - function caml_ml_output_char(chanid,c) - {var s=caml_string_of_jsbytes(String.fromCharCode(c)); - caml_ml_output(chanid,s,0,1); - return 0} - function caml_sys_const_ostype_win32(){return os_type == "Win32"?1:0} - function caml_obj_is_block(x){return + (x instanceof Array)} - function caml_obj_set_raw_field(o,i,v){return o[i + 1] = v} - function caml_js_var(x) - {var x=caml_jsstring_of_string(x); - if(! x.match(/^[a-zA-Z_$][a-zA-Z_$0-9]*(\.[a-zA-Z_$][a-zA-Z_$0-9]*)*$/)) - console.error - ('caml_js_var: "' - + - x - + - '" is not a valid JavaScript variable. continuing ..'); - return eval(x)} - function caml_trunc_float(x){return Math.trunc(x)} - function caml_zarith_marshal(writer,v,sz) - {v = bigInt(v); - var bits=v.toArray(Math.pow(2,32)); - writer.write(8,bits.isNegative?1:0); - var block=bits.value.length,len=block * 4; - writer.write(32,len); - for(var i=block - 1;i >= 0;i--) - {writer.write(8,bits.value[i] >>> 0 & 0xff); - writer.write(8,bits.value[i] >>> 8 & 0xff); - writer.write(8,bits.value[i] >>> 16 & 0xff); - writer.write(8,bits.value[i] >>> 24 & 0xff)} - sz[0] = 4 * (1 + ((len + 3) / 4 | 0)); - sz[1] = 8 * (1 + ((len + 7) / 8 | 0))} - function caml_ephe_unset_data(x) - {if(globalThis.FinalizationRegistry && globalThis.WeakRef) - if(x[1] instanceof globalThis.FinalizationRegistry) - for(var j=caml_ephe_key_offset;j < x.length;j++) - {var key=x[j]; - if(key instanceof globalThis.WeakRef) - {key = key.deref();if(key)x[1].unregister(key)}} - x[caml_ephe_data_offset] = undefined; - return 0} - function caml_ephe_set_data(x,data) - {if(globalThis.FinalizationRegistry && globalThis.WeakRef) - if(! (x[1] instanceof globalThis.FinalizationRegistry)) - {x[1] - = - new - (globalThis.FinalizationRegistry) - (function(){caml_ephe_unset_data(x)}); - for(var j=caml_ephe_key_offset;j < x.length;j++) - {var key=x[j]; - if(key instanceof globalThis.WeakRef) - {key = key.deref();if(key)x[1].register(key,undefined,key)}}} - x[caml_ephe_data_offset] = data; - return 0} - function caml_ephe_blit_data(src,dst) - {var n=src[caml_ephe_data_offset]; - if(n === undefined) - caml_ephe_unset_data(dst); - else - caml_ephe_set_data(dst,n); - return 0} - function caml_is_printable(c){return + (c > 31 && c < 127)} - function caml_array_of_bytes(x){return caml_uint8_array_of_bytes(x)} - function caml_equal(x,y){return + (caml_compare_val(x,y,false) == 0)} - function re_partial_match(re,s,pos) - {if(pos < 0 || pos > caml_ml_string_length(s)) - caml_invalid_argument("Str.partial_match"); - var res=re_match(re,s,pos,1); - return res?res:[0]} - function caml_sys_random_seed() - {if(globalThis.crypto) - if(typeof globalThis.crypto.getRandomValues === "function") - {var a=new Uint32Array(1); - globalThis.crypto.getRandomValues(a); - return [0,a[0]]} - else - if(globalThis.crypto.randomBytes === "function") - {var buff=globalThis.crypto.randomBytes(4),a=new Uint32Array(buff); - return [0,a[0]]} - var now=new Date().getTime(),x=now ^ 0xffffffff * Math.random(); - return [0,x]} - var all_finalizers=new (globalThis.Set)(); - function caml_final_register_called_without_value(cb,a) - {if(globalThis.FinalizationRegistry && a instanceof Object) - {var - x= - new - (globalThis.FinalizationRegistry) - (function(x){all_finalizers.delete(x);cb(0);return}); - x.register(a,x); - all_finalizers.add(x)} - return 0} - function caml_ba_get_2(ba,i0,i1){return ba.get(ba.offset([i0,i1]))} - function caml_ba_uint8_set16(ba,i0,v) - {var ofs=ba.offset(i0); - if(ofs + 1 >= ba.data.length)caml_array_bound_error(); - ba.set(ofs + 0,v & 0xff); - ba.set(ofs + 1,v >>> 8 & 0xff); - return 0} - function caml_lazy_reset_to_lazy(o) - {caml_obj_update_tag(o,244,246);return 0} - function caml_js_delete(o,f){delete o[f];return 0} - function caml_int_of_string(s) - {var - r=caml_parse_sign_and_base(s), - i=r[0], - sign=r[1], - base=r[2], - len=caml_ml_string_length(s), - threshold=- 1 >>> 0, - c=i < len?caml_string_unsafe_get(s,i):0, - d=caml_parse_digit(c); - if(d < 0 || d >= base)caml_failwith("int_of_string"); - var res=d; - for(i++;i < len;i++) - {c = caml_string_unsafe_get(s,i); - if(c == 95)continue; - d = caml_parse_digit(c); - if(d < 0 || d >= base)break; - res = base * res + d; - if(res > threshold)caml_failwith("int_of_string")} - if(i != len)caml_failwith("int_of_string"); - res = sign * res; - if(base == 10 && (res | 0) != res)caml_failwith("int_of_string"); - return res | 0} - function caml_list_mount_point() - {var prev=0; - for(var i=0;i < jsoo_mount_point.length;i++) - {var old=prev; - prev = [0,caml_string_of_jsbytes(jsoo_mount_point[i].path),old]} - return prev} - var - caml_marshal_constants= - {PREFIX_SMALL_BLOCK:0x80, - PREFIX_SMALL_INT:0x40, - PREFIX_SMALL_STRING:0x20, - CODE_INT8:0x00, - CODE_INT16:0x01, - CODE_INT32:0x02, - CODE_INT64:0x03, - CODE_SHARED8:0x04, - CODE_SHARED16:0x05, - CODE_SHARED32:0x06, - CODE_BLOCK32:0x08, - CODE_BLOCK64:0x13, - CODE_STRING8:0x09, - CODE_STRING32:0x0A, - CODE_DOUBLE_BIG:0x0B, - CODE_DOUBLE_LITTLE:0x0C, - CODE_DOUBLE_ARRAY8_BIG:0x0D, - CODE_DOUBLE_ARRAY8_LITTLE:0x0E, - CODE_DOUBLE_ARRAY32_BIG:0x0F, - CODE_DOUBLE_ARRAY32_LITTLE:0x07, - CODE_CODEPOINTER:0x10, - CODE_INFIXPOINTER:0x11, - CODE_CUSTOM:0x12, - CODE_CUSTOM_LEN:0x18, - CODE_CUSTOM_FIXED:0x19}; - function caml_obj_raw_field(o,i){return o[i + 1]} - function caml_js_equals(x,y){return + (x == y)} - function caml_obj_compare_and_swap(x,i,old,n) - {if(x[i + 1] == old){x[i + 1] = n;return 1}return 0} - function bigstring_to_typed_array(bs){return bs.data} - function ml_z_fits_nativeint(z1){return ml_z_fits_int(z1)} - function caml_gr_arc_aux(ctx,cx,cy,ry,rx,a1,a2) - {while(a1 > a2)a2 += 360; - a1 /= 180; - a2 /= 180; - var - rot=0, - xPos, - yPos, - xPos_prev, - yPos_prev, - space=2, - num=(a2 - a1) * Math.PI * ((rx + ry) / 2) / space | 0, - delta=(a2 - a1) * Math.PI / num, - i=a1 * Math.PI; - for(var j=0;j <= num;j++) - {xPos - = - cx - - - rx - * - Math.sin(i) - * - Math.sin(rot * Math.PI) - + - ry - * - Math.cos(i) - * - Math.cos(rot * Math.PI); - xPos = xPos.toFixed(2); - yPos - = - cy - + - ry - * - Math.cos(i) - * - Math.sin(rot * Math.PI) - + - rx - * - Math.sin(i) - * - Math.cos(rot * Math.PI); - yPos = yPos.toFixed(2); - if(j == 0) - ctx.moveTo(xPos,yPos); - else - if(xPos_prev != xPos || yPos_prev != yPos)ctx.lineTo(xPos,yPos); - xPos_prev = xPos; - yPos_prev = yPos; - i -= delta} - return 0} - function caml_gr_fill_arc(x,y,rx,ry,a1,a2) - {var s=caml_gr_state_get(); - s.context.beginPath(); - caml_gr_arc_aux(s.context,x,s.height - y,rx,ry,a1,a2); - s.context.fill(); - return 0} - function caml_ba_slice(ba,vind) - {vind = caml_js_from_array(vind); - var num_inds=vind.length,index=[],sub_dims=[],ofs; - if(num_inds > ba.dims.length) - caml_invalid_argument("Bigarray.slice: too many indices"); - if(ba.layout == 0) - {for(var i=0;i < num_inds;i++)index[i] = vind[i]; - for(;i < ba.dims.length;i++)index[i] = 0; - sub_dims = ba.dims.slice(num_inds)} - else - {for(var i=0;i < num_inds;i++) - index[ba.dims.length - num_inds + i] = vind[i]; - for(var i=0;i < ba.dims.length - num_inds;i++)index[i] = 1; - sub_dims = ba.dims.slice(0,ba.dims.length - num_inds)} - ofs = ba.offset(index); - var - size=caml_ba_get_size(sub_dims), - size_per_element=caml_ba_get_size_per_element(ba.kind), - new_data= - ba.data.subarray - (ofs * size_per_element,(ofs + size) * size_per_element); - return caml_ba_create_unsafe(ba.kind,ba.layout,sub_dims,new_data)} - function ml_z_of_nativeint(i){return i | 0} - function caml_ba_kind(ba){return ba.kind} - function caml_js_fun_call(f,a) - {switch(a.length) - {case 1:return f(); - case 2:return f(a[1]); - case 3:return f(a[1],a[2]); - case 4:return f(a[1],a[2],a[3]); - case 5:return f(a[1],a[2],a[3],a[4]); - case 6:return f(a[1],a[2],a[3],a[4],a[5]); - case 7:return f(a[1],a[2],a[3],a[4],a[5],a[6]); - case 8:return f(a[1],a[2],a[3],a[4],a[5],a[6],a[7]) + function in_bitset(s, i){ + return caml_string_get(s, i >> 3) >> (i & 7) & 1; } - return f.apply(null,caml_js_from_array(a))} - function caml_gc_major_slice(work){return 0} - function ml_z_invert(a,n) - {a = bigInt(a); - n = bigInt(n); - var zero=bigInt(0),one=bigInt(1); - if(n.abs().equals(one))return 0; - if(n.equals(zero) && a.abs().equals(one))return a; - if(n.equals(zero) || a.equals(zero))caml_raise_zero_divide(); - var - x=ml_z_gcdext_intern(a,n), - r=bigInt(x[2]), - tmp=bigInt(a).multiply(r).mod(n); - if(tmp.lt(zero))tmp = tmp.add(n.abs()); - if(r.lt(zero))r = r.add(n.abs()); - if(tmp.equals(one))return ml_z_normalize(r); - caml_raise_zero_divide()} - function ml_z_powm(z1,z2,z3) - {var zero=bigInt(0),one=bigInt(1); - z1 = bigInt(z1); - z2 = bigInt(z2); - z3 = bigInt(z3); - if(z3.equals(zero))caml_raise_zero_divide(); - if(z3.abs().equals(one))return 0; - if(z2.equals(zero))return 1; - if(z2.lt(0)) - {var inv=bigInt(ml_z_invert(z1,z3)),r=inv.modPow(z2.negate(),z3); - if(r.lt(zero))r = r.add(z3.abs()); - return ml_z_normalize(r)} - else - {var r=bigInt(z1).modPow(z2,z3); - if(r.lt(zero))r = r.add(z3.abs()); - return ml_z_normalize(r)}} - function ml_z_powm_sec(z1,z2,z3) - {z3 = bigInt(z3).abs(); - var one=bigInt(1); - if(bigInt(z2).lt(one)) - caml_invalid_argument("Z.powm_sec: exponent must be positive"); - if(! bigInt(z3).and(one).equals(one)) - caml_invalid_argument("Z.powm_sec: modulus must be odd"); - return ml_z_powm(z1,z2,z3)} - function caml_js_pure_expr(f){return f()} - function compare_digits_nat(nat1,ofs1,nat2,ofs2) - {if(nat1.data[ofs1] > nat2.data[ofs2])return 1; - if(nat1.data[ofs1] < nat2.data[ofs2])return - 1; - return 0} - function caml_ml_input(chanid,b,i,l) - {var ba=caml_uint8_array_of_bytes(b); - return caml_ml_input_block(chanid,ba,i,l)} - function caml_gr_wait_event(_evl) - {caml_failwith - ("caml_gr_wait_event not Implemented: use Graphics_js instead")} - function caml_gr_sigio_handler(){return 0} - function caml_hash_mix_bigstring(h,bs) - {return caml_hash_mix_bytes_arr(h,bs.data)} - function caml_record_backtrace(){return 0} - function caml_unix_cleanup(){} - function caml_sys_const_backend_type() - {return [0,caml_string_of_jsbytes("js_of_ocaml")]} - function caml_sys_get_config() - {return [0,caml_string_of_jsbytes(os_type),32,0]} - function caml_obj_is_shared(x){return 1} - function caml_ml_out_channels_list() - {var l=0; - for(var c=0;c < caml_ml_channels.length;c++) - if - (caml_ml_channels[c] - && - caml_ml_channels[c].opened - && - caml_ml_channels[c].out) - l = [0,caml_ml_channels[c].fd,l]; - return l} - function caml_asinh_float(x){return Math.asinh(x)} - function ml_z_hash(z1) - {var a=bigInt(z1).toArray(Math.pow(2,32)),acc=0; - for(var i=0;i < a.value.length;i++) - acc = caml_hash_mix_int(acc,a.value[i]); - if(a.value.length % 2 != 0)acc = caml_hash_mix_int(acc,0); - if(a.isNegative)acc = acc + 1; - return acc | 0} - function caml_pos_out(chanid) - {var chan=caml_ml_channels[chanid];return chan.offset + chan.buffer_curr} - function bigstring_of_array_buffer(ab) - {var ta=new Uint8Array(ab); - return caml_ba_create_unsafe(12,0,[ta.length],ta)} - function caml_mod(x,y){if(y == 0)caml_raise_zero_divide();return x % y} - function caml_ba_init(){return 0} - function caml_unix_filedescr_of_fd(x){return x} - function re_string_match(re,s,pos) - {if(pos < 0 || pos > caml_ml_string_length(s)) - caml_invalid_argument("Str.string_match"); - var res=re_match(re,s,pos,0); - return res?res:[0]} - function BigStringReader(bs,i){this.s = bs;this.i = i} - BigStringReader.prototype - = - {read8u:function(){return caml_ba_get_1(this.s,this.i++)}, - read8s:function(){return caml_ba_get_1(this.s,this.i++) << 24 >> 24}, - read16u: - function() - {var s=this.s,i=this.i; - this.i = i + 2; - return caml_ba_get_1(s,i) << 8 | caml_ba_get_1(s,i + 1)}, - read16s: - function() - {var s=this.s,i=this.i; - this.i = i + 2; - return caml_ba_get_1(s,i) << 24 >> 16 | caml_ba_get_1(s,i + 1)}, - read32u: - function() - {var s=this.s,i=this.i; - this.i = i + 4; - return (caml_ba_get_1(s,i) - << - 24 - | - caml_ba_get_1(s,i + 1) - << - 16 - | - caml_ba_get_1(s,i + 2) - << - 8 - | - caml_ba_get_1(s,i + 3)) - >>> - 0}, - read32s: - function() - {var s=this.s,i=this.i; - this.i = i + 4; - return caml_ba_get_1(s,i) - << - 24 - | - caml_ba_get_1(s,i + 1) - << - 16 - | - caml_ba_get_1(s,i + 2) - << - 8 - | - caml_ba_get_1(s,i + 3)}, - readstr: - function(len) - {var i=this.i,arr=new Array(len); - for(var j=0;j < len;j++)arr[j] = caml_ba_get_1(this.s,i + j); - this.i = i + len; - return caml_string_of_array(arr)}}; - function caml_gr_dump_image(im) - {var data=[0]; - for(var i=0;i < im.height;i++) - {data[i + 1] = [0]; - for(var j=0;j < im.width;j++) - {var - o=i * (im.width * 4) + j * 4, - r=im.data[o + 0], - g=im.data[o + 1], - b=im.data[o + 2]; - data[i + 1][j + 1] = (r << 16) + (g << 8) + b}} - return data} - function caml_ba_get_generic(ba,i) - {var ofs=ba.offset(caml_js_from_array(i));return ba.get(ofs)} - function caml_unix_startup(){} - function caml_get_exception_backtrace(){return 0} - function caml_format_float(fmt,x) - {function toFixed(x,dp) - {if(Math.abs(x) < 1.0) - return x.toFixed(dp); - else - {var e=parseInt(x.toString().split("+")[1]); - if(e > 20) - {e -= 20; - x /= Math.pow(10,e); - x += new Array(e + 1).join("0"); - if(dp > 0)x = x + "." + new Array(dp + 1).join("0"); - return x} - else - return x.toFixed(dp)}} - var s,f=caml_parse_format(fmt),prec=f.prec < 0?6:f.prec; - if(x < 0 || x == 0 && 1 / x == - Infinity){f.sign = - 1;x = - x} - if(isNaN(x)) - {s = "nan";f.filler = " "} - else - if(! isFinite(x)) - {s = "inf";f.filler = " "} - else - switch(f.conv) - {case "e": - var s=x.toExponential(prec),i=s.length; - if(s.charAt(i - 3) == "e") - s = s.slice(0,i - 1) + "0" + s.slice(i - 1); - break; - case "f":s = toFixed(x,prec);break; - case "g": - prec = prec?prec:1; - s = x.toExponential(prec - 1); - var j=s.indexOf("e"),exp=+ s.slice(j + 1); - if(exp < - 4 || x >= 1e21 || x.toFixed(0).length > prec) - {var i=j - 1; - while(s.charAt(i) == "0")i--; - if(s.charAt(i) == ".")i--; - s = s.slice(0,i + 1) + s.slice(j); - i = s.length; - if(s.charAt(i - 3) == "e") - s = s.slice(0,i - 1) + "0" + s.slice(i - 1); - break} - else - {var p=prec; - if(exp < 0) - {p -= exp + 1;s = x.toFixed(p)} - else - while(s = x.toFixed(p),s.length > prec + 1)p--; - if(p) - {var i=s.length - 1; - while(s.charAt(i) == "0")i--; - if(s.charAt(i) == ".")i--; - s = s.slice(0,i + 1)}} - break + function re_match_impl(re, s, pos, partial){ + var + prog = caml_js_from_array(re[1]), + cpool = caml_js_from_array(re[2]), + normtable = caml_jsbytes_of_string(re[3]), + numgroups = re[4] | 0, + numregisters = re[5] | 0, + startchars = re[6] | 0, + s = caml_uint8_array_of_string(s), + pc = 0, + quit = false, + stack = [], + groups = new Array(numgroups), + re_register = new Array(numregisters); + for(var i = 0; i < groups.length; i++) + groups[i] = {start: - 1, end: - 1}; + groups[0].start = pos; + function backtrack(){ + while(stack.length){ + var item = stack.pop(); + if(item.undo) + item.undo.obj[item.undo.prop] = item.undo.value; + else if(item.pos){pc = item.pos.pc; pos = item.pos.txt; return;} } - return caml_finish_formatting(f,s)} - function caml_mount_autoload(name,f) - {var path=caml_make_path(name),name=caml_trailing_slash(path.join("/")); - jsoo_mount_point.push({path:name,device:new MlFakeDevice(name,f)}); - return 0} - function ml_z_equal(z1,z2){return bigInt(z1).equals(bigInt(z2))?1:0} - function ml_z_fits_int64(z1) - {z1 = bigInt(z1); - return z1.compare(bigInt("9223372036854775807")) - <= - 0 - && - z1.compare(bigInt("-9223372036854775808")) - >= - 0 - ?1 - :0} - function caml_bigstring_blit_ba_to_ba(ba1,pos1,ba2,pos2,len) - {if(12 != ba1.kind) - caml_invalid_argument("caml_bigstring_blit_ba_to_ba: kind mismatch"); - if(12 != ba2.kind) - caml_invalid_argument("caml_bigstring_blit_ba_to_ba: kind mismatch"); - if(len == 0)return 0; - var ofs1=ba1.offset(pos1),ofs2=ba2.offset(pos2); - if(ofs1 + len > ba1.data.length)caml_array_bound_error(); - if(ofs2 + len > ba2.data.length)caml_array_bound_error(); - var slice=ba1.data.subarray(ofs1,ofs1 + len); - ba2.data.set(slice,pos2); - return 0} - var caml_blit_bigstring_to_bigstring=caml_bigstring_blit_ba_to_ba; - function ml_z_sqrt_rem(z) - {z = bigInt(z); - var zero=bigInt(0); - if(z.lt(zero)) - caml_invalid_argument("Z.sqrt_rem: square root of a negative number"); - var - root=bigInt(ml_z_root(z,2)), - mul=root.multiply(root), - diff=z.subtract(mul); - return [0,ml_z_normalize(root),ml_z_normalize(diff)]} - function caml_string_lessthan(s1,s2){return caml_bytes_lessthan(s1,s2)} - function caml_string_greaterthan(s1,s2) - {return caml_string_lessthan(s2,s1)} - function caml_div(x,y) - {if(y == 0)caml_raise_zero_divide();return x / y | 0} - function caml_obj_dup(x) - {var l=x.length,a=new Array(l); - for(var i=0;i < l;i++)a[i] = x[i]; - return a} - function caml_ephe_get_data_copy(x) - {return x[caml_ephe_data_offset] === undefined - ?0 - :[0,caml_obj_dup(x[caml_ephe_data_offset])]} - function caml_memprof_start(rate,stack_size,tracker){return 0} - function ml_z_perfect_square(z) - {z = bigInt(z); - if(z.lt(bigInt(0)))return 0; - var root=bigInt(ml_z_root(z,2)); - return root.multiply(root).eq(z)?1:0} - function caml_sys_get_argv(a){return [0,caml_argv[1],caml_argv]} - function caml_ml_domain_set_name(_name){return 0} - function caml_js_to_bool(x){return + x} - function caml_gr_create_image(x,y) - {var s=caml_gr_state_get();return s.context.createImageData(x,y)} - function caml_ephe_get_key_copy(x,i) - {if(i < 0 || caml_ephe_key_offset + i >= x.length) - caml_invalid_argument("Weak.get_copy"); - var y=caml_ephe_get_key(x,i); - if(y === 0)return y; - var z=y[1]; - if(z instanceof Array)return [0,caml_obj_dup(z)]; - return y} - function caml_lessthan(x,y){return + (caml_compare_val(x,y,false) < 0)} - function caml_raw_backtrace_next_slot(){return 0} - function ml_z_to_nativeint(z1){return ml_z_to_int(z1)} - function caml_register_global(n,v,name_opt) - {if(name_opt && globalThis.toplevelReloc) - n = globalThis.toplevelReloc(name_opt); - caml_global_data[n + 1] = v; - if(name_opt)caml_global_data[name_opt] = v} - function mult_nat(nat1,ofs1,len1,nat2,ofs2,len2,nat3,ofs3,len3) - {var carry=0; - for(var i=0;i < len3;i++) - carry - += - mult_digit_nat(nat1,ofs1 + i,len1 - i,nat2,ofs2,len2,nat3,ofs3 + i); - return carry} - function square_nat(nat1,ofs1,len1,nat2,ofs2,len2) - {var carry=0; - carry += add_nat(nat1,ofs1,len1,nat1,ofs1,len1,0); - carry += mult_nat(nat1,ofs1,len1,nat2,ofs2,len2,nat2,ofs2,len2); - return carry} - function caml_js_from_float(x){return x} - function caml_floatarray_create(len) - {if(len < 0)caml_array_bound_error(); - var len=len + 1 | 0,b=new Array(len); - b[0] = 254; - for(var i=1;i < len;i++)b[i] = 0; - return b} - function caml_gc_stat(){return [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]} - function caml_get_major_credit(n){return 0} - function caml_sys_modify_argv(arg){caml_argv = arg;return 0} - var caml_method_cache=[]; - function caml_get_public_method(obj,tag,cacheid) - {var meths=obj[1],ofs=caml_method_cache[cacheid]; - if(ofs === undefined) - for(var i=caml_method_cache.length;i < cacheid;i++) - caml_method_cache[i] = 0; - else - if(meths[ofs] === tag)return meths[ofs - 1]; - var li=3,hi=meths[1] * 2 + 1,mi; - while(li < hi) - {mi = li + hi >> 1 | 1;if(tag < meths[mi + 1])hi = mi - 2;else li = mi} - caml_method_cache[cacheid] = li + 1; - return tag == meths[li + 1]?meths[li]:0} - function caml_js_get_console() - {var - c=console, - m= - ["log", - "debug", - "info", - "warn", - "error", - "assert", - "dir", - "dirxml", - "trace", - "group", - "groupCollapsed", - "groupEnd", - "time", - "timeEnd"]; - function f(){} - for(var i=0;i < m.length;i++)if(! c[m[i]])c[m[i]] = f; - return c} - function caml_sys_unsafe_getenv(name){return caml_sys_getenv(name)} - function caml_ml_open_descriptor_in(fd) - {var file=caml_sys_fds[fd]; - if(file.flags.wronly)caml_raise_sys_error("fd " + fd + " is writeonly"); - var - refill=null, - channel= - {file:file, - offset:file.flags.append?file.length():0, - fd:fd, - opened:true, - out:false, - buffer_curr:0, - buffer_max:0, - buffer:new Uint8Array(65536), - refill:refill}; - caml_ml_channels[channel.fd] = channel; - return channel.fd} - function bigstring_of_typed_array(ba) - {var - ta= - new - Uint8Array - (ba.buffer,ba.byteOffset,ba.length * ba.BYTES_PER_ELEMENT); - return caml_ba_create_unsafe(12,0,[ta.length],ta)} - function caml_round_float(x){return Math.round(x)} - function ml_z_of_bits(z1) - {var r=bigInt.zero,base1=bigInt(256),base=bigInt.one; - for(var i=0;i < caml_ml_string_length(z1);i++) - {var d=caml_string_unsafe_get(z1,i); - r = bigInt(base).multiply(d).add(r); - base = bigInt(base).multiply(base1)} - return ml_z_normalize(r)} - function caml_ojs_new_arr(c,a) - {switch(a.length) - {case 0:return new c(); - case 1:return new c(a[0]); - case 2:return new c(a[0],a[1]); - case 3:return new c(a[0],a[1],a[2]); - case 4:return new c(a[0],a[1],a[2],a[3]); - case 5:return new c(a[0],a[1],a[2],a[3],a[4]); - case 6:return new c(a[0],a[1],a[2],a[3],a[4],a[5]); - case 7:return new c(a[0],a[1],a[2],a[3],a[4],a[5],a[6]) - } - function F(){return c.apply(this,a)} - F.prototype = c.prototype; - return new F()} - function complement_nat(nat,ofs,len) - {for(var i=0;i < len;i++) - nat.data[ofs + i] = (- 1 >>> 0) - (nat.data[ofs + i] >>> 0)} - function ml_z_logxor(z1,z2) - {return ml_z_normalize(bigInt(z1).xor(bigInt(z2)))} - var caml_domain_dls=[0]; - function caml_domain_dls_set(a){caml_domain_dls = a} - function caml_lazy_read_result(o){return caml_obj_tag(o) == 250?o[1]:o} - var caml_js_regexps={amp:/&/g,lt:/ 1023) - {exp -= 1023; - x *= Math.pow(2,1023); - if(exp > 1023){exp -= 1023;x *= Math.pow(2,1023)}} - if(exp < - 1023){exp += 1023;x *= Math.pow(2,- 1023)} - x *= Math.pow(2,exp); - return x} - function caml_gr_state_set(ctx) - {caml_gr_state = ctx;caml_gr_state_init();return 0} - function caml_zarith_unmarshal(reader,sz) - {var negate; - switch(reader.read8u()) - {case 1:negate = true;break; - case 0:negate = false;break; - default:caml_failwith("input_value: z (malformed input)")} - var len=reader.read32u(),x=bigInt(0); - for(var i=0;i < len / 4;i++) - {var y=bigInt(reader.read8u()); - y = y.add(reader.read8u() << 8); - y = y.add(reader.read8u() << 16); - y = y.add(reader.read8u() << 24 >>> 0); - x = y.shiftLeft(i * 32).add(x)} - if(negate)x = x.negate(); - sz[0] = len + 4; - return ml_z_normalize(x)} - function ml_z_trailing_zeros(z) - {z = bigInt(z).abs(); - var zero=bigInt(0),one=bigInt(1); - if(z.equals(zero))return 0x7fffffff; - var i=0; - z = z.xor(z.prev()).shiftRight(1); - for(i = 0;! z.equals(bigInt.zero);i++)z = z.shiftRight(1); - return i} - function caml_js_wrap_callback_strict(arity,f) - {return function() - {var n=arguments.length; - if(n == arity && f.length == arity)return f.apply(null,arguments); - var args=new Array(arity),len=Math.min(arguments.length,arity); - for(var i=0;i < len;i++)args[i] = arguments[i]; - return caml_call_gen(f,args)}} - function caml_gc_minor_words(unit){return 0} - function caml_get_current_callstack(){return [0]} - function land_digit_nat(nat1,ofs1,nat2,ofs2) - {nat1.data[ofs1] &= nat2.data[ofs2];return 0} - function caml_int64_mod(x,y){return x.mod(y)} - function caml_obj_set_tag(x,tag){x[0] = tag;return 0} - function caml_int32_bswap(x) - {return (x & 0x000000FF) - << - 24 - | - (x & 0x0000FF00) - << - 8 - | - (x & 0x00FF0000) - >>> - 8 - | - (x & 0xFF000000) - >>> - 24} - function caml_ba_set_3(ba,i0,i1,i2,v) - {ba.set(ba.offset([i0,i1,i2]),v);return 0} - function ml_z_jacobi(n,k) - {n = bigInt(n); - k = bigInt(k); - if(k.leq(bigInt(0)) || k.mod(bigInt(2)).neq(bigInt(1))) - caml_invalid_argument("Z.jacobi: second argument is negative or even"); - n = n.mod(k); - if(n.lt(bigInt(0)))n = n.add(k); - var t=1; - while(! n.equals(bigInt(0))) - {while(n.isDivisibleBy(bigInt(2))) - {n = n.divide(bigInt(2)); - var r=k.mod(bigInt(8)); - if(r.equals(bigInt(3)) || r.equals(bigInt(5)))t = - t} - var n1=n,k1=k; - n = k1; - k = n1; - if - (n.mod(bigInt(4)).equals(bigInt(3)) - && - k.mod(bigInt(4)).equals(bigInt(3))) - t = - t; - n = n.mod(k)} - return k.equals(bigInt(1))?t:0} - function ml_z_legendre(a,b){return ml_z_jacobi(a,b)} - function caml_js_instanceof(o,c){return o instanceof c?1:0} - function caml_get_major_bucket(n){return 0} - var caml_blit_bigstring_to_string=caml_bigstring_blit_ba_to_bytes; - function set_digit_nat_native(nat,ofs,digit) - {nat.data[ofs] = digit;return 0} - function nth_digit_nat_native(nat,ofs){return nat.data[ofs]} - function caml_string_set64(s,i,i64){return caml_bytes_set64(s,i,i64)} - function caml_gr_state_create(canvas,w,h) - {var context=canvas.getContext("2d"); - return {context:context, - canvas:canvas, - x:0, - y:0, - width:w, - height:h, - line_width:1, - font:caml_string_of_jsbytes("fixed"), - text_size:26, - color:0x000000, - title:caml_string_of_jsbytes("")}} - function caml_js_wrap_callback(f) - {return function() - {var len=arguments.length; - if(len > 0) - {var args=new Array(len); - for(var i=0;i < len;i++)args[i] = arguments[i]; - return caml_call_gen(f,args)} - else - return caml_call_gen(f,[undefined])}} - function caml_gr_draw_arc(x,y,rx,ry,a1,a2) - {var s=caml_gr_state_get(); - s.context.beginPath(); - caml_gr_arc_aux(s.context,x,s.height - y,rx,ry,a1,a2); - s.context.stroke(); - return 0} - function caml_ba_map_file(vfd,kind,layout,shared,dims,pos) - {caml_failwith("caml_ba_map_file not implemented")} - function caml_ba_map_file_bytecode(argv,argn) - {return caml_ba_map_file(argv[0],argv[1],argv[2],argv[3],argv[4],argv[5])} - function caml_ba_create_from(data1,data2,jstyp,kind,layout,dims) - {if(data2 || caml_ba_get_size_per_element(kind) == 2) - caml_invalid_argument - ("caml_ba_create_from: use return caml_ba_create_unsafe"); - return caml_ba_create_unsafe(kind,layout,dims,data1)} - function caml_tanh_float(x){return Math.tanh(x)} - function caml_gr_draw_str(str) - {var s=caml_gr_state_get(),m=s.context.measureText(str),dx=m.width; - s.context.fillText(str,s.x,s.height - s.y); - s.x += dx | 0; - return 0} - function caml_gr_draw_string(str) - {caml_gr_draw_str(caml_jsstring_of_string(str));return 0} - function ml_z_primorial(a) - {var one=bigInt(1),two=bigInt(2),z1=one,res=one; - a = bigInt(a); - while(z1.leq(a)) - {if(z1.isProbablePrime(25))res = res.multiply(z1); - if(z1.equals(one) || z1.equals(two)) - z1 = z1.add(one); - else - z1 = z1.add(two)} - return ml_z_normalize(res)} - function caml_gr_draw_char(c) - {caml_gr_draw_str(String.fromCharCode(c));return 0} - function caml_unmount(name) - {var - path=caml_make_path(name), - name=caml_trailing_slash(path.join("/")), - idx=- 1; - for(var i=0;i < jsoo_mount_point.length;i++) - if(jsoo_mount_point[i].path == name)idx = i; - if(idx > - 1)jsoo_mount_point.splice(idx,1); - return 0} - function ml_z_fib(i) - {if(i < 0)caml_invalid_argument("Z.fib: negative arguments"); - if(i == 0 || i == 1)return i; - var a=bigInt(0),b=bigInt(1); - for(var k=1;k < i;k++){var b2=b;b = a.add(b);a = b2} - return ml_z_normalize(b)} - function caml_input_value_from_string(s,ofs) - {var reader=new MlStringReader(s,typeof ofs == "number"?ofs:ofs[0]); - return caml_input_value_from_reader(reader,ofs)} - function caml_ml_pos_in_64(chanid) - {return caml_int64_of_float(caml_pos_in(chanid))} - function caml_gr_draw_image(im,x,y) - {var s=caml_gr_state_get(); - if(! im.image) - {var canvas=document.createElement("canvas"); - canvas.width = s.width; - canvas.height = s.height; - canvas.getContext("2d").putImageData(im,0,0); - var image=new (globalThis.Image)(); - image.onload - = - function() - {s.context.drawImage(image,x,s.height - im.height - y); - im.image = image}; - image.src = canvas.toDataURL("image/png")} - else - s.context.drawImage(im.image,x,s.height - im.height - y); - return 0} - function caml_register_channel_for_spacetime(_channel){return 0} - function caml_string_set(s,i,c) - {if(i >>> 0 >= s.l)caml_string_bound_error(); - return caml_string_unsafe_set(s,i,c)} - function caml_sys_rmdir(name) - {var root=resolve_fs_device(name);root.device.rmdir(root.rest);return 0} - function caml_unix_symlink(to_dir,src,dst) - {var src_root=resolve_fs_device(src),dst_root=resolve_fs_device(dst); - if(src_root.device != dst_root.device) - caml_failwith - ("caml_unix_symlink: cannot symlink between two filesystems"); - if(! src_root.device.symlink) - caml_failwith("caml_unix_symlink: not implemented"); - return src_root.device.symlink(to_dir,src_root.rest,dst_root.rest,true)} - function caml_ml_pos_out(chanid){return caml_pos_out(chanid)} - function caml_spacetime_enabled(_unit){return 0} - function caml_bytes_notequal(s1,s2){return 1 - caml_bytes_equal(s1,s2)} - function caml_runtime_parameters(_unit){return caml_string_of_jsbytes("")} - function caml_js_object(a) - {var o={}; - for(var i=1;i < a.length;i++) - {var p=a[i];o[caml_jsstring_of_string(p[1])] = p[2]} - return o} - function caml_ba_create(kind,layout,dims_ml) - {var - dims=caml_js_from_array(dims_ml), - data=caml_ba_create_buffer(kind,caml_ba_get_size(dims)); - return caml_ba_create_unsafe(kind,layout,dims,data)} - function caml_gr_remember_mode() - {caml_failwith("caml_gr_remember_mode not Implemented")} - function caml_fma_float(x,y,z) - {var - SPLIT=Math.pow(2,27) + 1, - MIN_VALUE=Math.pow(2,- 1022), - EPSILON=Math.pow(2,- 52), - C=416, - A=Math.pow(2,+ C), - B=Math.pow(2,- C); - function multiply(a,b) - {var - at=SPLIT * a, - ahi=at - (at - a), - alo=a - ahi, - bt=SPLIT * b, - bhi=bt - (bt - b), - blo=b - bhi, - p=a * b, - e=ahi * bhi - p + ahi * blo + alo * bhi + alo * blo; - return {p:p,e:e}} - function add(a,b) - {var s=a + b,v=s - a,e=a - (s - v) + (b - v);return {s:s,e:e}} - function adjust(x,y) - {return x !== 0 && y !== 0 && SPLIT * x - (SPLIT * x - x) === x - ?x * (1 + (x < 0?- 1:+ 1) * (y < 0?- 1:+ 1) * EPSILON) - :x} - if - (x - === - 0 - || - x - !== - x - || - x - === - + - (1 / 0) - || - x - === - - - (1 / 0) - || - y - === - 0 - || - y - !== - y - || - y - === - + - (1 / 0) - || - y - === - - - (1 / 0)) - return x * y + z; - if(z === 0)return x * y; - if(z !== z || z === + (1 / 0) || z === - (1 / 0))return z; - var scale=1; - while(Math.abs(x) > A){scale *= A;x *= B} - while(Math.abs(y) > A){scale *= A;y *= B} - if(scale === 1 / 0)return x * y * scale; - while(Math.abs(x) < B){scale *= B;x *= A} - while(Math.abs(y) < B){scale *= B;y *= A} - if(scale === 0)return z; - var xs=x,ys=y,zs=z / scale; - if(Math.abs(zs) > Math.abs(xs * ys) * 4 / EPSILON)return z; - if(Math.abs(zs) < Math.abs(xs * ys) * EPSILON / 4 * EPSILON / 4) - zs = (z < 0?- 1:+ 1) * MIN_VALUE; - var - xy=multiply(xs,ys), - s=add(xy.p,zs), - u=add(xy.e,s.e), - i=add(s.s,u.s), - f=i.s + adjust(i.e,u.e); - if(f === 0)return f; - var fs=f * scale; - if(Math.abs(fs) > MIN_VALUE)return fs; - return fs + adjust(f - fs / scale,i.e) * scale} - function caml_recommended_domain_count(unit){return 1} - function caml_bswap16(x){return (x & 0x00FF) << 8 | (x & 0xFF00) >> 8} - function caml_ml_set_binary_mode(chanid,mode) - {var chan=caml_ml_channels[chanid]; - chan.file.flags.text = ! mode; - chan.file.flags.binary = mode; - return 0} - function caml_final_register(){return 0} - function caml_gr_draw_rect(x,y,w,h) - {var s=caml_gr_state_get(); - s.context.strokeRect(x,s.height - y,w,- h); - return 0} - function caml_string_get16(s,i) - {if(i >>> 0 >= caml_ml_string_length(s) - 1)caml_string_bound_error(); - var b1=caml_string_unsafe_get(s,i),b2=caml_string_unsafe_get(s,i + 1); - return b2 << 8 | b1} - function caml_output_value(chanid,v,flags) - {var s=caml_output_value_to_string(v,flags); - caml_ml_output(chanid,s,0,caml_ml_string_length(s)); - return 0} - function caml_ba_get_3(ba,i0,i1,i2){return ba.get(ba.offset([i0,i1,i2]))} - function caml_ephe_blit_key(a1,i1,a2,i2,len) - {caml_array_blit - (a1,caml_ephe_key_offset + i1 - 1,a2,caml_ephe_key_offset + i2 - 1,len); - return 0} - function ml_z_to_int32(z1){return ml_z_to_int(z1)} - var caml_initial_time=new Date().getTime() * 0.001; - function caml_sys_time() - {var now=new Date().getTime();return now * 0.001 - caml_initial_time} - function caml_sys_time_include_children(b){return caml_sys_time()} - function caml_check_bound(array,index) - {if(index >>> 0 >= array.length - 1)caml_array_bound_error(); - return array} - function caml_unix_getpwuid(unit){caml_raise_not_found()} - function ml_z_compare(z1,z2){return bigInt(z1).compare(bigInt(z2))} - function caml_hash(count,limit,seed,obj) - {var queue,rd,wr,sz,num,h,v,i,len; - sz = limit; - if(sz < 0 || sz > 256)sz = 256; - num = count; - h = seed; - queue = [obj]; - rd = 0; - wr = 1; - while(rd < wr && num > 0) - {v = queue[rd++]; - if(v && v.caml_custom) - {if - (caml_custom_ops[v.caml_custom] - && - caml_custom_ops[v.caml_custom].hash) - {var hh=caml_custom_ops[v.caml_custom].hash(v); - h = caml_hash_mix_int(h,hh); - num--}} - else - if(v instanceof Array && v[0] === (v[0] | 0)) - switch(v[0]) - {case 248:h = caml_hash_mix_int(h,v[2]);num--;break; - case 250:queue[--rd] = v[1];break; - default: - var tag=v.length - 1 << 10 | v[0]; - h = caml_hash_mix_int(h,tag); - for(i = 1,len = v.length;i < len;i++) - {if(wr >= sz)break;queue[wr++] = v[i]} - break} - else - if(caml_is_ml_bytes(v)) - {h = caml_hash_mix_bytes(h,v);num--} - else - if(caml_is_ml_string(v)) - {h = caml_hash_mix_string(h,v);num--} - else - if(typeof v === "string") - {h = caml_hash_mix_jsbytes(h,v);num--} - else - if(v === (v | 0)) - {h = caml_hash_mix_int(h,v + v + 1);num--} + quit = true; + } + function push(item){stack.push(item);} + function accept(){ + groups[0].end = pos; + var result = new Array(1 + groups.length * 2); + result[0] = 0; + for(var i = 0; i < groups.length; i++){ + var g = groups[i]; + if(g.start < 0 || g.end < 0) g.start = g.end = - 1; + result[2 * i + 1] = g.start; + result[2 * i + 1 + 1] = g.end; + } + return result; + } + function prefix_match(){ + if(partial) return accept(); else backtrack(); + } + while(! quit){ + var + op = prog[pc] & 0xff, + sarg = prog[pc] >> 8, + uarg = sarg & 0xff, + c = s[pos], + group; + pc++; + switch(op){ + case opcodes.CHAR: + if(pos === s.length){prefix_match(); break;} + if(c === uarg) pos++; else backtrack(); + break; + case opcodes.CHARNORM: + if(pos === s.length){prefix_match(); break;} + if(normtable.charCodeAt(c) === uarg) pos++; else backtrack(); + break; + case opcodes.STRING: + for + (var arg = caml_jsbytes_of_string(cpool[uarg]), i = 0; + i < arg.length; + i++){ + if(pos === s.length){prefix_match(); break;} + if(c === arg.charCodeAt(i)) + c = s[++pos]; + else{backtrack(); break;} + } + break; + case opcodes.STRINGNORM: + for + (var arg = caml_jsbytes_of_string(cpool[uarg]), i = 0; + i < arg.length; + i++){ + if(pos === s.length){prefix_match(); break;} + if(normtable.charCodeAt(c) === arg.charCodeAt(i)) + c = s[++pos]; + else{backtrack(); break;} + } + break; + case opcodes.CHARCLASS: + if(pos === s.length){prefix_match(); break;} + if(in_bitset(cpool[uarg], c)) pos++; else backtrack(); + break; + case opcodes.BOL: + if(pos > 0 && s[pos - 1] != 10) backtrack(); break; + case opcodes.EOL: + if(pos < s.length && s[pos] != 10) backtrack(); break; + case opcodes.WORDBOUNDARY: + if(pos == 0){ + if(pos === s.length){prefix_match(); break;} + if(is_word_letter(s[0])) break; + backtrack(); + } + else if(pos === s.length){ + if(is_word_letter(s[pos - 1])) break; + backtrack(); + } + else{ + if(is_word_letter(s[pos - 1]) != is_word_letter(s[pos])) break; + backtrack(); + } + break; + case opcodes.BEGGROUP: + group = groups[uarg]; + push({undo: {obj: group, prop: "start", value: group.start}}); + group.start = pos; + break; + case opcodes.ENDGROUP: + group = groups[uarg]; + push({undo: {obj: group, prop: "end", value: group.end}}); + group.end = pos; + break; + case opcodes.REFGROUP: + group = groups[uarg]; + if(group.start < 0 || group.end < 0){backtrack(); break;} + for(var i = group.start; i < group.end; i++){ + if(pos === s.length){prefix_match(); break;} + if(s[i] != s[pos]){backtrack(); break;} + pos++; + } + break; + case opcodes.SIMPLEOPT: + if(in_bitset(cpool[uarg], c)) pos++; break; + case opcodes.SIMPLESTAR: + while(in_bitset(cpool[uarg], c)) c = s[++pos]; break; + case opcodes.SIMPLEPLUS: + if(pos === s.length){prefix_match(); break;} + if(in_bitset(cpool[uarg], c)) + do c = s[++pos];while(in_bitset(cpool[uarg], c)); else - if(v === + v){h = caml_hash_mix_float(h,v);num--}} - h = caml_hash_mix_final(h); - return h & 0x3FFFFFFF} - function caml_ba_to_typed_array(ba){return ba.data} - function caml_domain_dls_get(unit){return caml_domain_dls} - function caml_bytes_get32(s,i) - {if(i >>> 0 >= s.l - 3)caml_bytes_bound_error(); - var - b1=caml_bytes_unsafe_get(s,i), - b2=caml_bytes_unsafe_get(s,i + 1), - b3=caml_bytes_unsafe_get(s,i + 2), - b4=caml_bytes_unsafe_get(s,i + 3); - return b4 << 24 | b3 << 16 | b2 << 8 | b1} - function caml_frexp_float(x) - {if(x == 0 || ! isFinite(x))return [0,x,0]; - var neg=x < 0; - if(neg)x = - x; - var exp=Math.max(- 1023,jsoo_floor_log2(x) + 1); - x *= Math.pow(2,- exp); - while(x < 0.5){x *= 2;exp--} - while(x >= 1){x *= 0.5;exp++} - if(neg)x = - x; - return [0,x,exp]} - function ml_z_pred(z1){return ml_z_normalize(bigInt(z1).prev())} - function caml_string_get64(s,i) - {if(i >>> 0 >= caml_ml_string_length(s) - 7)caml_string_bound_error(); - var a=new Array(8); - for(var j=0;j < 8;j++)a[7 - j] = caml_string_unsafe_get(s,i + j); - return caml_int64_of_bytes(a)} - function caml_js_error_option_of_exception(exn) - {if(exn.js_error)return [0,exn.js_error];return 0} - function caml_ml_pos_out_64(chanid) - {return caml_int64_of_float(caml_pos_out(chanid))} - function ml_z_extract(z1,pos,len) - {z1 = bigInt(z1); - return ml_z_normalize - (z1.shiftRight(pos).and(bigInt(2).pow(len).subtract(1)))} - function ml_z_remove(a,b) - {var zero=bigInt(0),one=bigInt(1); - a = bigInt(a); - b = bigInt(b); - if(b.equals(zero))caml_raise_zero_divide(); - if(a.equals(zero) || b.abs().equals(one))return [0,a,0]; - var i=0; - while(a.isDivisibleBy(b)){a = a.divide(b);i++} - return [0,ml_z_normalize(a),i]} - function ml_z_of_float(f1) - {if(f1 == Infinity || f1 == - Infinity || f1 != f1) - caml_raise_constant(caml_named_value("ml_z_overflow")); - return ml_z_normalize(bigInt(f1 < 0?Math.ceil(f1):Math.floor(f1)))} - function ml_z_lognot(z1){return ml_z_normalize(bigInt(z1).not())} - function caml_unix_findclose(dir_handle) - {return caml_unix_closedir(dir_handle)} - function caml_gr_close_subwindow(a) - {caml_failwith("caml_gr_close_subwindow not Implemented")} - function caml_floatarray_blit(a1,i1,a2,i2,len) - {if(i2 <= i1) - for(var j=1;j <= len;j++)a2[i2 + j] = a1[i1 + j]; - else - for(var j=len;j >= 1;j--)a2[i2 + j] = a1[i1 + j]; - return 0} - function caml_get_minor_free(unit){return 0} - function caml_set_static_env(k,v) - {if(! globalThis.jsoo_static_env)globalThis.jsoo_static_env = {}; - globalThis.jsoo_static_env[k] = v; - return 0} - function caml_ba_change_layout(ba,layout) - {if(ba.layout == layout)return ba; - var new_dims=[]; - for(var i=0;i < ba.dims.length;i++) - new_dims[i] = ba.dims[ba.dims.length - i - 1]; - return caml_ba_create_unsafe(ba.kind,layout,new_dims,ba.data)} - function caml_js_new(c,a) - {switch(a.length) - {case 1:return new c(); - case 2:return new c(a[1]); - case 3:return new c(a[1],a[2]); - case 4:return new c(a[1],a[2],a[3]); - case 5:return new c(a[1],a[2],a[3],a[4]); - case 6:return new c(a[1],a[2],a[3],a[4],a[5]); - case 7:return new c(a[1],a[2],a[3],a[4],a[5],a[6]); - case 8:return new c(a[1],a[2],a[3],a[4],a[5],a[6],a[7]) + backtrack(); + break; + case opcodes.ACCEPT: return accept(); + case opcodes.GOTO: + pc = pc + sarg; break; + case opcodes.PUSHBACK: + push({pos: {pc: pc + sarg, txt: pos}}); break; + case opcodes.SETMARK: + push + ({undo: {obj: re_register, prop: uarg, value: re_register[uarg]}}); + re_register[uarg] = pos; + break; + case opcodes.CHECKPROGRESS: + if(re_register[uarg] === pos) backtrack(); break; + default: throw new Error("Invalid bytecode"); + } + } + return 0; } - function F(){return c.apply(this,caml_js_from_array(a))} - F.prototype = c.prototype; - return new F()} - function caml_gr_current_y(){var s=caml_gr_state_get();return s.y} - function caml_format_int(fmt,i) - {if(caml_jsbytes_of_string(fmt) == "%d") - return caml_string_of_jsbytes("" + i); - var f=caml_parse_format(fmt); - if(i < 0)if(f.signedconv){f.sign = - 1;i = - i}else i >>>= 0; - var s=i.toString(f.base); - if(f.prec >= 0) - {f.filler = " "; - var n=f.prec - s.length; - if(n > 0)s = caml_str_repeat(n,"0") + s} - return caml_finish_formatting(f,s)} - function caml_obj_truncate(x,s) - {if(s <= 0 || s + 1 > x.length)caml_invalid_argument("Obj.truncate"); - if(x.length != s + 1)x.length = s + 1; - return 0} - function caml_js_to_string(s){return caml_string_of_jsstring(s)} - function is_digit_odd(nat,ofs){if(nat.data[ofs] & 1)return 1;return 0} - function caml_runtime_variant(_unit){return caml_string_of_jsbytes("")} - function caml_ml_open_descriptor_out(fd) - {var file=caml_sys_fds[fd]; - if(file.flags.rdonly)caml_raise_sys_error("fd " + fd + " is readonly"); - var - buffered=file.flags.buffered !== undefined?file.flags.buffered:1, - channel= - {file:file, - offset:file.flags.append?file.length():0, - fd:fd, - opened:true, - out:true, - buffer_curr:0, - buffer:new Uint8Array(65536), - buffered:buffered}; - caml_ml_channels[channel.fd] = channel; - return channel.fd} - function caml_array_concat(l) - {var a=[0]; - while(l !== 0) - {var b=l[1];for(var i=1;i < b.length;i++)a.push(b[i]);l = l[2]} - return a} - function caml_gr_open_graph(info) - {var info=caml_jsstring_of_string(info); - function get(name) - {var res=info.match("(^|,) *" + name + " *= *([a-zA-Z0-9_]+) *(,|$)"); - if(res)return res[2]} - var specs=[]; - if(! (info == ""))specs.push(info); - var target=get("target"); - if(! target)target = ""; - var status=get("status"); - if(! status)specs.push("status=1"); - var w=get("width"); - w = w?parseInt(w):200; - specs.push("width=" + w); - var h=get("height"); - h = h?parseInt(h):200; - specs.push("height=" + h); - var win=globalThis.open("about:blank",target,specs.join(",")); - if(! win)caml_failwith("Graphics.open_graph: cannot open the window"); - var doc=win.document,canvas=doc.createElement("canvas"); - canvas.width = w; - canvas.height = h; - var ctx=caml_gr_state_create(canvas,w,h); - ctx.set_title = function(title){doc.title = title}; - caml_gr_state_set(ctx); - var body=doc.body; - body.style.margin = "0px"; - body.appendChild(canvas); - return 0} - function caml_make_float_vect(len) - {if(len < 0)caml_array_bound_error(); - var len=len + 1 | 0,b=new Array(len); - b[0] = 254; - for(var i=1;i < len;i++)b[i] = 0; - return b} - function caml_cbrt_float(x){return Math.cbrt(x)} - function caml_memprof_stop(unit){return 0} - function caml_eventlog_pause(unit){return 0} - function caml_greaterequal(x,y) - {return + (caml_compare_val(x,y,false) >= 0)} - function ml_z_numbits(z1) - {z1 = bigInt(z1).abs(); - var n=0,upperBound=bigInt.one; - while(upperBound.leq(z1)){n += 1;upperBound = upperBound.multiply(2)} - return n} - function caml_get_exception_raw_backtrace(){return [0]} - function caml_log1p_float(x){return Math.log1p(x)} - function caml_lazy_make_forward(v){return [250,v]} - function lor_digit_nat(nat1,ofs1,nat2,ofs2) - {nat1.data[ofs1] |= nat2.data[ofs2];return 0} - function caml_gr_blit_image(im,x,y) - {var - s=caml_gr_state_get(), - im2= - s.context.getImageData(x,s.height - im.height - y,im.width,im.height); - for(var i=0;i < im2.data.length;i += 4) - {im.data[i] = im2.data[i]; - im.data[i + 1] = im2.data[i + 1]; - im.data[i + 2] = im2.data[i + 2]; - im.data[i + 3] = im2.data[i + 3]} - return 0} - function caml_gr_window_id(a) - {caml_failwith("caml_gr_window_id not Implemented")} - function caml_js_on_ie() - {var ua=globalThis.navigator?globalThis.navigator.userAgent:""; - return ua.indexOf("MSIE") != - 1 && ua.indexOf("Opera") != 0} - function caml_int64_shift_right(x,s){return x.shift_right(s)} - function caml_ba_layout(ba){return ba.layout} - function caml_convert_raw_backtrace(){return [0]} - function caml_array_set(array,index,newval) - {if(index < 0 || index >= array.length - 1)caml_array_bound_error(); - array[index + 1] = newval; - return 0} - function caml_alloc_stack(ret,exn,h){return {ret:ret,exn:exn,h:h}} - function caml_bytes_greaterequal(s1,s2) - {return caml_bytes_lessequal(s2,s1)} - function ml_z_perfect_power(z) - {z = bigInt(z); - var zero=bigInt(0),one=bigInt(1); - if(z.equals(zero) || z.equals(one) || z.equals(one.negate()))return 1; - var log2z=ml_z_numbits(z.abs()); - for(var b=2;b <= log2z;b++) - {if(z.lt(zero) && b % 2 == 0)continue; - var zp=z.abs(),p=bigInt(ml_z_root(zp,b)); - if(z.lt(zero))p = p.negate(); - var r=bigInt(ml_z_pow(p,b)); - if(z.equals(r))return 1} - return 0} - function set_digit_nat(nat,ofs,digit){nat.data[ofs] = digit;return 0} - function ml_z_init(unit) - {caml_custom_ops["_z"] - = - {serialize:caml_zarith_marshal, - deserialize:caml_zarith_unmarshal, - hash:ml_z_hash, - compare:ml_z_compare}; - return 0} - function caml_gr_doc_of_state(state) - {if(state.canvas.ownerDocument)return state.canvas.ownerDocument} - function caml_ml_output_int(chanid,i) - {var - arr=[i >> 24 & 0xFF,i >> 16 & 0xFF,i >> 8 & 0xFF,i & 0xFF], - s=caml_string_of_array(arr); - caml_ml_output(chanid,s,0,4); - return 0} - function caml_obj_with_tag(tag,x) - {var l=x.length,a=new Array(l); - a[0] = tag; - for(var i=1;i < l;i++)a[i] = x[i]; - return a} - function caml_ml_channel_size(chanid) - {var chan=caml_ml_channels[chanid];return chan.file.length()} - function caml_raw_backtrace_slot() - {caml_invalid_argument - ("Printexc.get_raw_backtrace_slot: index out of bounds")} - function caml_hexstring_of_float(x,prec,style) - {if(! isFinite(x)) - {if(isNaN(x))return caml_string_of_jsstring("nan"); - return caml_string_of_jsstring(x > 0?"infinity":"-infinity")} - var sign=x == 0 && 1 / x == - Infinity?1:x >= 0?0:1; - if(sign)x = - x; - var exp=0; - if(x == 0) - ; + return re_match_impl; + } + (); + function re_search_backward(re, s, pos){ + if(pos < 0 || pos > caml_ml_string_length(s)) + caml_invalid_argument("Str.search_backward"); + while(pos >= 0){ + var res = re_match(re, s, pos, 0); + if(res) return res; + pos--; + } + return [0]; + } + function ml_z_logand(z1, z2){ + return ml_z_normalize(bigInt(z1).and(bigInt(z2))); + } + function caml_js_from_string(s){return caml_jsstring_of_string(s);} + function caml_ba_sub(ba, ofs, len){ + var changed_dim, mul = 1; + if(ba.layout == 0){ + for(var i = 1; i < ba.dims.length; i++) mul = mul * ba.dims[i]; + changed_dim = 0; + } + else{ + for(var i = 0; i < ba.dims.length - 1; i++) mul = mul * ba.dims[i]; + changed_dim = ba.dims.length - 1; + ofs = ofs - 1; + } + if(ofs < 0 || len < 0 || ofs + len > ba.dims[changed_dim]) + caml_invalid_argument("Bigarray.sub: bad sub-array"); + var new_dims = []; + for(var i = 0; i < ba.dims.length; i++) new_dims[i] = ba.dims[i]; + new_dims[changed_dim] = len; + mul *= caml_ba_get_size_per_element(ba.kind); + var new_data = ba.data.subarray(ofs * mul, (ofs + len) * mul); + return caml_ba_create_unsafe(ba.kind, ba.layout, new_dims, new_data); + } + function caml_gc_full_major(unit){ + if(typeof globalThis.gc == "function") globalThis.gc(); + return 0; + } + function caml_ml_mutex_try_lock(t){ + if(! t.locked){t.locked = true; return 1;} + return 0; + } + function caml_bytes_set32(s, i, i32){ + if(i >>> 0 >= s.l - 3) caml_bytes_bound_error(); + var + b4 = 0xFF & i32 >> 24, + b3 = 0xFF & i32 >> 16, + b2 = 0xFF & i32 >> 8, + b1 = 0xFF & i32; + caml_bytes_unsafe_set(s, i + 0, b1); + caml_bytes_unsafe_set(s, i + 1, b2); + caml_bytes_unsafe_set(s, i + 2, b3); + caml_bytes_unsafe_set(s, i + 3, b4); + return 0; + } + function caml_gr_sigio_signal(){return 0;} + function caml_ba_uint8_set32(ba, i0, v){ + var ofs = ba.offset(i0); + if(ofs + 3 >= ba.data.length) caml_array_bound_error(); + ba.set(ofs + 0, v & 0xff); + ba.set(ofs + 1, v >>> 8 & 0xff); + ba.set(ofs + 2, v >>> 16 & 0xff); + ba.set(ofs + 3, v >>> 24 & 0xff); + return 0; + } + function ml_z_div_rem(z1, z2){ + return [0, ml_z_div(z1, z2), ml_z_rem(z1, z2)]; + } + function caml_sys_const_ostype_unix(){return os_type == "Unix" ? 1 : 0;} + function caml_unix_gmtime(t){ + var + d = new Date(t * 1000), + d_num = d.getTime(), + januaryfirst = new Date(Date.UTC(d.getUTCFullYear(), 0, 1)).getTime(), + doy = Math.floor((d_num - januaryfirst) / 86400000); + return [0, + d.getUTCSeconds(), + d.getUTCMinutes(), + d.getUTCHours(), + d.getUTCDate(), + d.getUTCMonth(), + d.getUTCFullYear() - 1900, + d.getUTCDay(), + doy, + false | 0]; + } + function caml_signbit_float(x){if(x == 0) x = 1 / x; return x < 0 ? 1 : 0;} + function caml_gr_current_x(){var s = caml_gr_state_get(); return s.x;} + function caml_gr_set_line_width(w){ + var s = caml_gr_state_get(); + s.line_width = w; + s.context.lineWidth = w; + return 0; + } + function caml_gr_set_font(f){ + var s = caml_gr_state_get(); + s.font = f; + s.context.font = s.text_size + "px " + caml_jsstring_of_string(s.font); + return 0; + } + function caml_gr_set_color(color){ + var s = caml_gr_state_get(); + function convert(number){ + var str = "" + number.toString(16); + while(str.length < 2) str = "0" + str; + return str; + } + var r = color >> 16 & 0xff, g = color >> 8 & 0xff, b = color >> 0 & 0xff; + s.color = color; + var c_str = "#" + convert(r) + convert(g) + convert(b); + s.context.fillStyle = c_str; + s.context.strokeStyle = c_str; + return 0; + } + function caml_gr_moveto(x, y){ + var s = caml_gr_state_get(); + s.x = x; + s.y = y; + return 0; + } + function caml_gr_resize_window(w, h){ + var s = caml_gr_state_get(); + s.width = w; + s.height = h; + s.canvas.width = w; + s.canvas.height = h; + return 0; + } + function caml_gr_state_init(){ + caml_gr_moveto(caml_gr_state.x, caml_gr_state.y); + caml_gr_resize_window(caml_gr_state.width, caml_gr_state.height); + caml_gr_set_line_width(caml_gr_state.line_width); + caml_gr_set_text_size(caml_gr_state.text_size); + caml_gr_set_font(caml_gr_state.font); + caml_gr_set_color(caml_gr_state.color); + caml_gr_set_window_title(caml_gr_state.title); + caml_gr_state.context.textBaseline = "bottom"; + } + function caml_ba_kind_of_typed_array(ta){ + var kind; + if(ta instanceof Float32Array) + kind = 0; + else if(ta instanceof Float64Array) + kind = 1; + else if(ta instanceof Int8Array) + kind = 2; + else if(ta instanceof Uint8Array) + kind = 3; + else if(ta instanceof Int16Array) + kind = 4; + else if(ta instanceof Uint16Array) + kind = 5; + else if(ta instanceof Int32Array) + kind = 6; + else if(ta instanceof Uint32Array) + kind = 6; + else + caml_invalid_argument("caml_ba_kind_of_typed_array: unsupported kind"); + return kind; + } + function caml_ba_from_typed_array(ta){ + var kind = caml_ba_kind_of_typed_array(ta); + return caml_ba_create_unsafe(kind, 0, [ta.length], ta); + } + function caml_ml_seek_out(chanid, pos){return caml_seek_out(chanid, pos);} + function caml_js_typeof(o){return typeof o;} + function caml_hash_mix_string(h, v){ + return caml_hash_mix_jsbytes(h, caml_jsbytes_of_string(v)); + } + function caml_string_hash(h, v){ + var h = caml_hash_mix_string(h, v), h = caml_hash_mix_final(h); + return h & 0x3FFFFFFF; + } + function caml_restore_raw_backtrace(exn, bt){return 0;} + function caml_gr_lineto(x, y){ + var s = caml_gr_state_get(); + s.context.beginPath(); + s.context.moveTo(s.x, s.height - s.y); + s.context.lineTo(x, s.height - y); + s.context.stroke(); + s.x = x; + s.y = y; + return 0; + } + function caml_js_function_arity(f){return f.l >= 0 ? f.l : f.l = f.length;} + function caml_js_wrap_meth_callback_unsafe(f){ + return function(){ + var len = caml_js_function_arity(f) - 1, args = new Array(len + 1); + args[0] = this; + for(var i = 0; i < len; i++) args[i + 1] = arguments[i]; + return caml_callback(f, args);}; + } + function caml_ba_dim_3(ba){return caml_ba_dim(ba, 2);} + function caml_is_special_exception(exn){ + switch(exn[2]){case - 8:case - 11:case - 12: return 1;default: return 0; + } + } + function caml_format_exception(exn){ + var r = ""; + if(exn[0] == 0){ + r += exn[1][1]; + if + (exn.length == 3 && exn[2][0] == 0 && caml_is_special_exception(exn[1])) + var bucket = exn[2], start = 1; + else + var start = 2, bucket = exn; + r += "("; + for(var i = start; i < bucket.length; i++){ + if(i > start) r += ", "; + var v = bucket[i]; + if(typeof v == "number") + r += v.toString(); + else if(v instanceof MlBytes) + r += '"' + v.toString() + '"'; + else if(typeof v == "string") + r += '"' + v.toString() + '"'; else - if(x < 1) - while(x < 1 && exp > - 1022){x *= 2;exp--} - else - while(x >= 2){x /= 2;exp++} - var exp_sign=exp < 0?"":"+",sign_str=""; - if(sign) - sign_str = "-"; - else - switch(style) - {case 43:sign_str = "+";break; - case 32:sign_str = " ";break; - default:break} - if(prec >= 0 && prec < 13) - {var cst=Math.pow(2,prec * 4);x = Math.round(x * cst) / cst} - var x_str=x.toString(16); - if(prec >= 0) - {var idx=x_str.indexOf("."); - if(idx < 0) - x_str += "." + caml_str_repeat(prec,"0"); - else - {var size=idx + 1 + prec; - if(x_str.length < size) - x_str += caml_str_repeat(size - x_str.length,"0"); - else - x_str = x_str.substr(0,size)}} - return caml_string_of_jsstring - (sign_str + "0x" + x_str + "p" + exp_sign + exp.toString(10))} - function caml_js_wrap_meth_callback_strict(arity,f) - {return function() - {var args=new Array(arity + 1),len=Math.min(arguments.length,arity); - args[0] = this; - for(var i=0;i < len;i++)args[i + 1] = arguments[i]; - return caml_call_gen(f,args)}} - function ml_z_format(fmt,z1) - {z1 = bigInt(z1); + r += "_"; + } + r += ")"; + } + else if(exn[0] == 248) r += exn[1]; + return r; + } + function caml_fatal_uncaught_exception(err){ + if(err instanceof Array && (err[0] == 0 || err[0] == 248)){ + var handler = caml_named_value("Printexc.handle_uncaught_exception"); + if(handler) + caml_callback(handler, [err, false]); + else{ var - fmt=caml_jsbytes_of_string(fmt), - base=10, - cas=0, - width=0, - alt=0, - dir=0, - sign="", - pad=" ", - idx=0, - prefix=""; - while(fmt[idx] == "%")idx++; - for(;;idx++) - if(fmt[idx] == "#") - alt = 1; - else - if(fmt[idx] == "0") - pad = "0"; - else - if(fmt[idx] == "-") - dir = 1; + msg = caml_format_exception(err), + at_exit = caml_named_value("Pervasives.do_at_exit"); + if(at_exit) caml_callback(at_exit, [0]); + console.error("Fatal error: exception " + msg + "\n"); + if(err.js_error) throw err.js_error; + } + } + else + throw err; + } + function caml_ephe_check_data(x){ + return x[caml_ephe_data_offset] === undefined ? 0 : 1; + } + function caml_bytes_get16(s, i){ + if(i >>> 0 >= s.l - 1) caml_bytes_bound_error(); + var + b1 = caml_bytes_unsafe_get(s, i), + b2 = caml_bytes_unsafe_get(s, i + 1); + return b2 << 8 | b1; + } + function caml_obj_make_forward(b, v){b[0] = 250; b[1] = v; return 0;} + function caml_js_from_bool(x){return ! ! x;} + function caml_ml_set_channel_name(chanid, name){ + var chan = caml_ml_channels[chanid]; + chan.name = name; + return 0; + } + function caml_exp2_float(x){return Math.pow(2, x);} + function caml_gr_close_graph(){ + var s = caml_gr_state_get(); + s.canvas.width = 0; + s.canvas.height = 0; + return 0; + } + function caml_ml_domain_cpu_relax(unit){return 0;} + function caml_create_string(len){caml_invalid_argument("String.create");} + function caml_ml_input_block(chanid, ba, i, l){ + var + chan = caml_ml_channels[chanid], + n = l, + avail = chan.buffer_max - chan.buffer_curr; + if(l <= avail){ + ba.set(chan.buffer.subarray(chan.buffer_curr, chan.buffer_curr + l), i); + chan.buffer_curr += l; + } + else if(avail > 0){ + ba.set + (chan.buffer.subarray(chan.buffer_curr, chan.buffer_curr + avail), i); + chan.buffer_curr += avail; + n = avail; + } + else{ + chan.buffer_curr = 0; + chan.buffer_max = 0; + caml_refill(chan); + var avail = chan.buffer_max - chan.buffer_curr; + if(n > avail) n = avail; + ba.set(chan.buffer.subarray(chan.buffer_curr, chan.buffer_curr + n), i); + chan.buffer_curr += n; + } + return n | 0; + } + function caml_md5_chan(chanid, toread){ + var ctx = caml_MD5Init(), buffer = new Uint8Array(4096); + if(toread < 0) + while(true){ + var read = caml_ml_input_block(chanid, buffer, 0, buffer.length); + if(read == 0) break; + caml_MD5Update(ctx, buffer.subarray(0, read), read); + } + else + while(toread > 0){ + var + read = + caml_ml_input_block + (chanid, buffer, 0, toread > buffer.length ? buffer.length : toread); + if(read == 0) caml_raise_end_of_file(); + caml_MD5Update(ctx, buffer.subarray(0, read), read); + toread -= read; + } + return caml_string_of_array(caml_MD5Final(ctx)); + } + function caml_atanh_float(x){return Math.atanh(x);} + function caml_ml_condition_signal(t){return 0;} + function caml_unix_findnext(dir_handle){return caml_unix_readdir(dir_handle); + } + function caml_ml_output_bytes(chanid, buffer, offset, len){ + var chan = caml_ml_channels[chanid]; + if(! chan.opened) + caml_raise_sys_error("Cannot output to a closed channel"); + var buffer = caml_uint8_array_of_bytes(buffer); + buffer = buffer.subarray(offset, offset + len); + if(chan.buffer_curr + buffer.length > chan.buffer.length){ + var b = new Uint8Array(chan.buffer_curr + buffer.length); + b.set(chan.buffer); + chan.buffer = b; + } + switch(chan.buffered){ + case 0: + chan.buffer.set(buffer, chan.buffer_curr); + chan.buffer_curr += buffer.length; + caml_ml_flush(chanid); + break; + case 1: + chan.buffer.set(buffer, chan.buffer_curr); + chan.buffer_curr += buffer.length; + if(chan.buffer_curr >= chan.buffer.length) caml_ml_flush(chanid); + break; + case 2: + var id = buffer.lastIndexOf(10); + if(id < 0){ + chan.buffer.set(buffer, chan.buffer_curr); + chan.buffer_curr += buffer.length; + if(chan.buffer_curr >= chan.buffer.length) caml_ml_flush(chanid); + } + else{ + chan.buffer.set(buffer.subarray(0, id + 1), chan.buffer_curr); + chan.buffer_curr += id + 1; + caml_ml_flush(chanid); + chan.buffer.set(buffer.subarray(id + 1), chan.buffer_curr); + chan.buffer_curr += buffer.length - id - 1; + } + break; + } + return 0; + } + function caml_ml_output(chanid, buffer, offset, len){ + return caml_ml_output_bytes + (chanid, caml_bytes_of_string(buffer), offset, len); + } + function caml_ml_domain_id(unit){return caml_domain_id;} + function caml_ephe_get_data(x){ + return x[caml_ephe_data_offset] === undefined + ? 0 + : [0, x[caml_ephe_data_offset]]; + } + function caml_xmlhttprequest_create(unit){ + if(typeof globalThis.XMLHttpRequest !== "undefined") + try{return new globalThis.XMLHttpRequest();}catch(e){} + if(typeof globalThis.activeXObject !== "undefined"){ + try{return new globalThis.activeXObject("Msxml2.XMLHTTP");}catch(e){} + try{return new globalThis.activeXObject("Msxml3.XMLHTTP");}catch(e){} + try{return new globalThis.activeXObject("Microsoft.XMLHTTP");}catch(e){} + } + caml_failwith("Cannot create a XMLHttpRequest"); + } + function caml_trampoline_return(f, args){return {joo_tramp: f, joo_args: args}; + } + function caml_ml_is_buffered(chanid){ + return caml_ml_channels[chanid].buffered ? 1 : 0; + } + function caml_array_append(a1, a2){ + var l1 = a1.length, l2 = a2.length, l = l1 + l2 - 1, a = new Array(l); + a[0] = 0; + var i = 1, j = 1; + for(; i < l1; i++) a[i] = a1[i]; + for(; i < l; i++, j++) a[i] = a2[j]; + return a; + } + function caml_unix_gettimeofday(){return new Date().getTime() / 1000;} + function caml_unix_time(){return Math.floor(caml_unix_gettimeofday());} + function caml_ml_set_channel_refill(chanid, f){ + caml_ml_channels[chanid].refill = f; + return 0; + } + function ml_z_nextprime(z1){ + z1 = bigInt(z1); + var one = bigInt(1), two = bigInt(2); + if(z1.lt(one) || z1.equals(one)) return 2; + if(z1.and(one).equals(one)) z1 = z1.add(two); else z1 = z1.add(one); + while(true) + if(z1.isProbablePrime(25)) + return ml_z_normalize(z1); + else + z1 = z1.add(two); + } + function caml_runtime_events_create_cursor(target){return {};} + function caml_fill_bytes(s, i, l, c){ + if(l > 0) + if(i == 0 && (l >= s.l || s.t == 2 && l >= s.c.length)) + if(c == 0){ + s.c = ""; + s.t = 2; + } + else{ + s.c = caml_str_repeat(l, String.fromCharCode(c)); + s.t = l == s.l ? 0 : 2; + } + else{ + if(s.t != 4) caml_convert_bytes_to_array(s); + for(l += i; i < l; i++) s.c[i] = c; + } + return 0; + } + function caml_js_expr(s){ + console.error("caml_js_expr: fallback to runtime evaluation\n"); + return eval(caml_jsstring_of_string(s)); + } + function caml_ml_runtime_warnings_enabled(_unit){return caml_runtime_warnings; + } + function ml_z_sub(z1, z2){ + return ml_z_normalize(bigInt(z1).subtract(bigInt(z2))); + } + function ml_z_fdiv(z1, z2){ + var z1_pos = ml_z_sign(z1), z2_pos = ml_z_sign(z2); + if(z1_pos * z2_pos < 0) + if(! bigInt(z1).mod(bigInt(z2)).equals(bigInt(0))) + return ml_z_sub(ml_z_div(z1, z2), bigInt(1)); + return ml_z_div(z1, z2); + } + function ml_z_to_bits(z1){ + z1 = bigInt(z1).abs(); + var res = ""; + while(! z1.equals(bigInt(0))){ + res += String.fromCharCode(z1.mod(bigInt(256))); + z1 = z1.divide(bigInt(256)); + } + while(res.length % 4 != 0) res += String.fromCharCode(0); + return caml_string_of_jsbytes(res); + } + function caml_output_value_to_bytes(v, flags){ + return caml_bytes_of_array(caml_output_val(v, flags)); + } + function caml_eventlog_resume(unit){return 0;} + function caml_md5_string(s, ofs, len){ + return caml_md5_bytes(caml_bytes_of_string(s), ofs, len); + } + function caml_array_of_string(x){return caml_uint8_array_of_string(x);} + function caml_string_equal(s1, s2){if(s1 === s2) return 1; return 0;} + function caml_jsoo_flags_use_js_string(unit){return 1;} + function ml_z_divexact(z1, z2){return ml_z_div(z1, z2);} + function caml_output_value_to_buffer(s, ofs, len, v, flags){ + var t = caml_output_val(v, flags); + if(t.length > len) caml_failwith("Marshal.to_buffer: buffer overflow"); + caml_blit_bytes(t, 0, s, ofs, t.length); + return 0; + } + function re_replacement_text(repl, groups, orig){ + var + repl = caml_jsbytes_of_string(repl), + len = repl.length, + orig = caml_jsbytes_of_string(orig), + res = "", + n = 0, + cur, + start, + end, + c; + while(n < len){ + cur = repl.charAt(n++); + if(cur != "\\") + res += cur; + else{ + if(n == len) caml_failwith("Str.replace: illegal backslash sequence"); + cur = repl.charAt(n++); + switch(cur){ + case "\\": + res += cur; break; + case "0": + case "1": + case "2": + case "3": + case "4": + case "5": + case "6": + case "7": + case "8": + case "9": + c = + cur; + if(c * 2 >= groups.length - 1) + caml_failwith("Str.replace: reference to unmatched group"); + start = caml_array_get(groups, c * 2); + end = caml_array_get(groups, c * 2 + 1); + if(start == - 1) + caml_failwith("Str.replace: reference to unmatched group"); + res += orig.slice(start, end); + break; + default: res += "\\" + cur; + } + } + } + return caml_string_of_jsbytes(res); + } + function caml_pure_js_expr(s){ + console.error("caml_pure_js_expr: fallback to runtime evaluation\n"); + return eval(caml_jsstring_of_string(s)); + } + function caml_blit_string(a, b, c, d, e){ + caml_blit_bytes(caml_bytes_of_string(a), b, c, d, e); + return 0; + } + function blit_nat(nat1, ofs1, nat2, ofs2, len){ + for(var i = 0; i < len; i++) nat1.data[ofs1 + i] = nat2.data[ofs2 + i]; + return 0; + } + function caml_bigstring_blit_ba_to_bytes(ba1, pos1, bytes2, pos2, len){ + if(12 != ba1.kind) + caml_invalid_argument("caml_bigstring_blit_string_to_ba: kind mismatch"); + if(len == 0) return 0; + var ofs1 = ba1.offset(pos1); + if(ofs1 + len > ba1.data.length) caml_array_bound_error(); + if(pos2 + len > caml_ml_bytes_length(bytes2)) caml_array_bound_error(); + var slice = ba1.data.slice(ofs1, ofs1 + len); + caml_blit_bytes(caml_bytes_of_array(slice), 0, bytes2, pos2, len); + return 0; + } + function caml_unix_stat(name){ + var root = resolve_fs_device(name); + if(! root.device.stat) caml_failwith("caml_unix_stat: not implemented"); + return root.device.stat(root.rest, true); + } + function caml_register_named_value(nm, v){ + caml_named_values[caml_jsbytes_of_string(nm)] = v; + return 0; + } + function jsoo_create_file_extern(name, content){ + if(globalThis.jsoo_create_file) + globalThis.jsoo_create_file(name, content); + else{ + if(! globalThis.caml_fs_tmp) globalThis.caml_fs_tmp = []; + globalThis.caml_fs_tmp.push({name: name, content: content}); + } + return 0; + } + function caml_unix_stat_64(name){ + var r = caml_unix_stat(name); + r[9] = caml_int64_of_int32(r[9]); + } + function caml_to_js_string(s){return caml_jsstring_of_string(s);} + function caml_ml_mutex_lock(t){ + if(t.locked) + caml_failwith("Mutex.lock: mutex already locked. Cannot wait."); + else + t.locked = true; + return 0; + } + function re_search_forward(re, s, pos){ + if(pos < 0 || pos > caml_ml_string_length(s)) + caml_invalid_argument("Str.search_forward"); + while(pos <= caml_ml_string_length(s)){ + var res = re_match(re, s, pos, 0); + if(res) return res; + pos++; + } + return [0]; + } + function caml_make_vect(len, init){ + if(len < 0) caml_array_bound_error(); + var len = len + 1 | 0, b = new Array(len); + b[0] = 0; + for(var i = 1; i < len; i++) b[i] = init; + return b; + } + function caml_ml_seek_in(chanid, pos){return caml_seek_in(chanid, pos);} + function caml_sys_read_directory(name){ + var + root = resolve_fs_device(name), + a = root.device.readdir(root.rest), + l = new Array(a.length + 1); + l[0] = 0; + for(var i = 0; i < a.length; i++) l[i + 1] = caml_string_of_jsbytes(a[i]); + return l; + } + function caml_ml_output_char(chanid, c){ + var s = caml_string_of_jsbytes(String.fromCharCode(c)); + caml_ml_output(chanid, s, 0, 1); + return 0; + } + function caml_sys_const_ostype_win32(){return os_type == "Win32" ? 1 : 0;} + function caml_obj_is_block(x){return + (x instanceof Array);} + function caml_obj_set_raw_field(o, i, v){return o[i + 1] = v;} + function caml_js_var(x){ + var x = caml_jsstring_of_string(x); + if(! x.match(/^[a-zA-Z_$][a-zA-Z_$0-9]*(\.[a-zA-Z_$][a-zA-Z_$0-9]*)*$/)) + console.error + ('caml_js_var: "' + x + + '" is not a valid JavaScript variable. continuing ..'); + return eval(x); + } + function caml_trunc_float(x){return Math.trunc(x);} + function caml_zarith_marshal(writer, v, sz){ + v = bigInt(v); + var bits = v.toArray(Math.pow(2, 32)); + writer.write(8, bits.isNegative ? 1 : 0); + var block = bits.value.length, len = block * 4; + writer.write(32, len); + for(var i = block - 1; i >= 0; i--){ + writer.write(8, bits.value[i] >>> 0 & 0xff); + writer.write(8, bits.value[i] >>> 8 & 0xff); + writer.write(8, bits.value[i] >>> 16 & 0xff); + writer.write(8, bits.value[i] >>> 24 & 0xff); + } + sz[0] = 4 * (1 + ((len + 3) / 4 | 0)); + sz[1] = 8 * (1 + ((len + 7) / 8 | 0)); + } + function caml_ephe_unset_data(x){ + if(globalThis.FinalizationRegistry && globalThis.WeakRef) + if(x[1] instanceof globalThis.FinalizationRegistry) + for(var j = caml_ephe_key_offset; j < x.length; j++){ + var key = x[j]; + if(key instanceof globalThis.WeakRef){ + key = key.deref(); + if(key) x[1].unregister(key); + } + } + x[caml_ephe_data_offset] = undefined; + return 0; + } + function caml_ephe_set_data(x, data){ + if(globalThis.FinalizationRegistry && globalThis.WeakRef) + if(! (x[1] instanceof globalThis.FinalizationRegistry)){ + x[1] = + new + globalThis.FinalizationRegistry + (function(){caml_ephe_unset_data(x);}); + for(var j = caml_ephe_key_offset; j < x.length; j++){ + var key = x[j]; + if(key instanceof globalThis.WeakRef){ + key = key.deref(); + if(key) x[1].register(key, undefined, key); + } + } + } + x[caml_ephe_data_offset] = data; + return 0; + } + function caml_ephe_blit_data(src, dst){ + var n = src[caml_ephe_data_offset]; + if(n === undefined) + caml_ephe_unset_data(dst); + else + caml_ephe_set_data(dst, n); + return 0; + } + function caml_is_printable(c){return + (c > 31 && c < 127);} + function caml_bytes_lessequal(s1, s2){ + s1.t & 6 && caml_convert_string_to_bytes(s1); + s2.t & 6 && caml_convert_string_to_bytes(s2); + return s1.c <= s2.c ? 1 : 0; + } + function caml_array_of_bytes(x){return caml_uint8_array_of_bytes(x);} + function caml_equal(x, y){return + (caml_compare_val(x, y, false) == 0);} + function re_partial_match(re, s, pos){ + if(pos < 0 || pos > caml_ml_string_length(s)) + caml_invalid_argument("Str.partial_match"); + var res = re_match(re, s, pos, 1); + return res ? res : [0]; + } + function caml_sys_random_seed(){ + if(globalThis.crypto) + if(typeof globalThis.crypto.getRandomValues === "function"){ + var a = new Uint32Array(1); + globalThis.crypto.getRandomValues(a); + return [0, a[0]]; + } + else if(globalThis.crypto.randomBytes === "function"){ + var buff = globalThis.crypto.randomBytes(4), a = new Uint32Array(buff); + return [0, a[0]]; + } + var now = new Date().getTime(), x = now ^ 0xffffffff * Math.random(); + return [0, x]; + } + var all_finalizers = new globalThis.Set(); + function caml_final_register_called_without_value(cb, a){ + if(globalThis.FinalizationRegistry && a instanceof Object){ + var + x = + new + globalThis.FinalizationRegistry + (function(x){all_finalizers.delete(x); cb(0); return;}); + x.register(a, x); + all_finalizers.add(x); + } + return 0; + } + function caml_ba_get_2(ba, i0, i1){return ba.get(ba.offset([i0, i1]));} + function caml_ba_uint8_set16(ba, i0, v){ + var ofs = ba.offset(i0); + if(ofs + 1 >= ba.data.length) caml_array_bound_error(); + ba.set(ofs + 0, v & 0xff); + ba.set(ofs + 1, v >>> 8 & 0xff); + return 0; + } + function caml_lazy_reset_to_lazy(o){ + caml_obj_update_tag(o, 244, 246); + return 0; + } + function caml_js_delete(o, f){delete o[f]; return 0;} + function caml_int_of_string(s){ + var + r = caml_parse_sign_and_base(s), + i = r[0], + sign = r[1], + base = r[2], + len = caml_ml_string_length(s), + threshold = - 1 >>> 0, + c = i < len ? caml_string_unsafe_get(s, i) : 0, + d = caml_parse_digit(c); + if(d < 0 || d >= base) caml_failwith("int_of_string"); + var res = d; + for(i++; i < len; i++){ + c = caml_string_unsafe_get(s, i); + if(c == 95) continue; + d = caml_parse_digit(c); + if(d < 0 || d >= base) break; + res = base * res + d; + if(res > threshold) caml_failwith("int_of_string"); + } + if(i != len) caml_failwith("int_of_string"); + res = sign * res; + if(base == 10 && (res | 0) != res) caml_failwith("int_of_string"); + return res | 0; + } + function caml_list_mount_point(){ + var prev = 0; + for(var i = 0; i < jsoo_mount_point.length; i++){ + var old = prev; + prev = [0, caml_string_of_jsbytes(jsoo_mount_point[i].path), old]; + } + return prev; + } + var + caml_marshal_constants = + {PREFIX_SMALL_BLOCK: 0x80, + PREFIX_SMALL_INT: 0x40, + PREFIX_SMALL_STRING: 0x20, + CODE_INT8: 0x00, + CODE_INT16: 0x01, + CODE_INT32: 0x02, + CODE_INT64: 0x03, + CODE_SHARED8: 0x04, + CODE_SHARED16: 0x05, + CODE_SHARED32: 0x06, + CODE_BLOCK32: 0x08, + CODE_BLOCK64: 0x13, + CODE_STRING8: 0x09, + CODE_STRING32: 0x0A, + CODE_DOUBLE_BIG: 0x0B, + CODE_DOUBLE_LITTLE: 0x0C, + CODE_DOUBLE_ARRAY8_BIG: 0x0D, + CODE_DOUBLE_ARRAY8_LITTLE: 0x0E, + CODE_DOUBLE_ARRAY32_BIG: 0x0F, + CODE_DOUBLE_ARRAY32_LITTLE: 0x07, + CODE_CODEPOINTER: 0x10, + CODE_INFIXPOINTER: 0x11, + CODE_CUSTOM: 0x12, + CODE_CUSTOM_LEN: 0x18, + CODE_CUSTOM_FIXED: 0x19}; + function caml_obj_raw_field(o, i){return o[i + 1];} + function caml_js_equals(x, y){return + (x == y);} + function caml_obj_compare_and_swap(x, i, old, n){ + if(x[i + 1] == old){x[i + 1] = n; return 1;} + return 0; + } + function bigstring_to_typed_array(bs){return bs.data;} + function ml_z_fits_nativeint(z1){return ml_z_fits_int(z1);} + function caml_gr_arc_aux(ctx, cx, cy, ry, rx, a1, a2){ + while(a1 > a2) a2 += 360; + a1 /= 180; + a2 /= 180; + var + rot = 0, + xPos, + yPos, + xPos_prev, + yPos_prev, + space = 2, + num = (a2 - a1) * Math.PI * ((rx + ry) / 2) / space | 0, + delta = (a2 - a1) * Math.PI / num, + i = a1 * Math.PI; + for(var j = 0; j <= num; j++){ + xPos = + cx - rx * Math.sin(i) * Math.sin(rot * Math.PI) + + ry * Math.cos(i) * Math.cos(rot * Math.PI); + xPos = xPos.toFixed(2); + yPos = + cy + ry * Math.cos(i) * Math.sin(rot * Math.PI) + + rx * Math.sin(i) * Math.cos(rot * Math.PI); + yPos = yPos.toFixed(2); + if(j == 0) + ctx.moveTo(xPos, yPos); + else if(xPos_prev != xPos || yPos_prev != yPos) ctx.lineTo(xPos, yPos); + xPos_prev = xPos; + yPos_prev = yPos; + i -= delta; + } + return 0; + } + function caml_gr_fill_arc(x, y, rx, ry, a1, a2){ + var s = caml_gr_state_get(); + s.context.beginPath(); + caml_gr_arc_aux(s.context, x, s.height - y, rx, ry, a1, a2); + s.context.fill(); + return 0; + } + function caml_ba_slice(ba, vind){ + vind = caml_js_from_array(vind); + var num_inds = vind.length, index = [], sub_dims = [], ofs; + if(num_inds > ba.dims.length) + caml_invalid_argument("Bigarray.slice: too many indices"); + if(ba.layout == 0){ + for(var i = 0; i < num_inds; i++) index[i] = vind[i]; + for(; i < ba.dims.length; i++) index[i] = 0; + sub_dims = ba.dims.slice(num_inds); + } + else{ + for(var i = 0; i < num_inds; i++) + index[ba.dims.length - num_inds + i] = vind[i]; + for(var i = 0; i < ba.dims.length - num_inds; i++) index[i] = 1; + sub_dims = ba.dims.slice(0, ba.dims.length - num_inds); + } + ofs = ba.offset(index); + var + size = caml_ba_get_size(sub_dims), + size_per_element = caml_ba_get_size_per_element(ba.kind), + new_data = + ba.data.subarray + (ofs * size_per_element, (ofs + size) * size_per_element); + return caml_ba_create_unsafe(ba.kind, ba.layout, sub_dims, new_data); + } + function ml_z_of_nativeint(i){return i | 0;} + function caml_js_wrap_callback_unsafe(f){ + return function(){ + var len = caml_js_function_arity(f), args = new Array(len); + for(var i = 0; i < len; i++) args[i] = arguments[i]; + return caml_callback(f, args);}; + } + function caml_ba_kind(ba){return ba.kind;} + function caml_alloc_dummy_infix(){ + return function f(x){return caml_call_gen(f.fun, [x]);}; + } + function caml_js_fun_call(f, a){ + switch(a.length){ + case 1: + return f(); + case 2: + return f(a[1]); + case 3: + return f(a[1], a[2]); + case 4: + return f(a[1], a[2], a[3]); + case 5: + return f(a[1], a[2], a[3], a[4]); + case 6: + return f(a[1], a[2], a[3], a[4], a[5]); + case 7: + return f(a[1], a[2], a[3], a[4], a[5], a[6]); + case 8: + return f(a[1], a[2], a[3], a[4], a[5], a[6], a[7]); + } + return f.apply(null, caml_js_from_array(a)); + } + function caml_gc_major_slice(work){return 0;} + function ml_z_invert(a, n){ + a = bigInt(a); + n = bigInt(n); + var zero = bigInt(0), one = bigInt(1); + if(n.abs().equals(one)) return 0; + if(n.equals(zero) && a.abs().equals(one)) return a; + if(n.equals(zero) || a.equals(zero)) caml_raise_zero_divide(); + var + x = ml_z_gcdext_intern(a, n), + r = bigInt(x[2]), + tmp = bigInt(a).multiply(r).mod(n); + if(tmp.lt(zero)) tmp = tmp.add(n.abs()); + if(r.lt(zero)) r = r.add(n.abs()); + if(tmp.equals(one)) return ml_z_normalize(r); + caml_raise_zero_divide(); + } + function ml_z_powm(z1, z2, z3){ + var zero = bigInt(0), one = bigInt(1); + z1 = bigInt(z1); + z2 = bigInt(z2); + z3 = bigInt(z3); + if(z3.equals(zero)) caml_raise_zero_divide(); + if(z3.abs().equals(one)) return 0; + if(z2.equals(zero)) return 1; + if(z2.lt(0)){ + var inv = bigInt(ml_z_invert(z1, z3)), r = inv.modPow(z2.negate(), z3); + if(r.lt(zero)) r = r.add(z3.abs()); + return ml_z_normalize(r); + } + else{ + var r = bigInt(z1).modPow(z2, z3); + if(r.lt(zero)) r = r.add(z3.abs()); + return ml_z_normalize(r); + } + } + function ml_z_powm_sec(z1, z2, z3){ + z3 = bigInt(z3).abs(); + var one = bigInt(1); + if(bigInt(z2).lt(one)) + caml_invalid_argument("Z.powm_sec: exponent must be positive"); + if(! bigInt(z3).and(one).equals(one)) + caml_invalid_argument("Z.powm_sec: modulus must be odd"); + return ml_z_powm(z1, z2, z3); + } + function caml_js_pure_expr(f){return caml_callback(f, [0]);} + function compare_digits_nat(nat1, ofs1, nat2, ofs2){ + if(nat1.data[ofs1] > nat2.data[ofs2]) return 1; + if(nat1.data[ofs1] < nat2.data[ofs2]) return - 1; + return 0; + } + function caml_ml_input(chanid, b, i, l){ + var ba = caml_uint8_array_of_bytes(b); + return caml_ml_input_block(chanid, ba, i, l); + } + function caml_gr_wait_event(_evl){ + caml_failwith + ("caml_gr_wait_event not Implemented: use Graphics_js instead"); + } + function caml_gr_sigio_handler(){return 0;} + function caml_hash_mix_bigstring(h, bs){ + return caml_hash_mix_bytes_arr(h, bs.data); + } + function caml_record_backtrace(b){ + caml_record_backtrace_flag = b; + return 0; + } + function caml_unix_cleanup(){} + function caml_sys_get_config(){ + return [0, caml_string_of_jsbytes(os_type), 32, 0]; + } + function caml_sys_const_backend_type(){ + return [0, caml_string_of_jsbytes("js_of_ocaml")]; + } + function caml_obj_is_shared(x){return 1;} + function caml_ml_out_channels_list(){ + var l = 0; + for(var c = 0; c < caml_ml_channels.length; c++) + if + (caml_ml_channels[c] && caml_ml_channels[c].opened + && caml_ml_channels[c].out) + l = [0, caml_ml_channels[c].fd, l]; + return l; + } + function caml_asinh_float(x){return Math.asinh(x);} + function ml_z_hash(z1){ + var a = bigInt(z1).toArray(Math.pow(2, 32)), acc = 0; + for(var i = 0; i < a.value.length; i++) + acc = caml_hash_mix_int(acc, a.value[i]); + if(a.value.length % 2 != 0) acc = caml_hash_mix_int(acc, 0); + if(a.isNegative) acc = acc + 1; + return acc | 0; + } + function caml_pos_out(chanid){ + var chan = caml_ml_channels[chanid]; + return chan.offset + chan.buffer_curr; + } + function bigstring_of_array_buffer(ab){ + var ta = new Uint8Array(ab); + return caml_ba_create_unsafe(12, 0, [ta.length], ta); + } + function caml_mod(x, y){if(y == 0) caml_raise_zero_divide(); return x % y;} + function caml_ba_init(){return 0;} + function caml_unix_filedescr_of_fd(x){return x;} + function re_string_match(re, s, pos){ + if(pos < 0 || pos > caml_ml_string_length(s)) + caml_invalid_argument("Str.string_match"); + var res = re_match(re, s, pos, 0); + return res ? res : [0]; + } + function BigStringReader(bs, i){this.s = bs; this.i = i;} + BigStringReader.prototype = + {read8u: function(){return caml_ba_get_1(this.s, this.i++);}, + read8s: function(){return caml_ba_get_1(this.s, this.i++) << 24 >> 24;}, + read16u: + function(){ + var s = this.s, i = this.i; + this.i = i + 2; + return caml_ba_get_1(s, i) << 8 | caml_ba_get_1(s, i + 1); + }, + read16s: + function(){ + var s = this.s, i = this.i; + this.i = i + 2; + return caml_ba_get_1(s, i) << 24 >> 16 | caml_ba_get_1(s, i + 1); + }, + read32u: + function(){ + var s = this.s, i = this.i; + this.i = i + 4; + return (caml_ba_get_1(s, i) << 24 | caml_ba_get_1(s, i + 1) << 16 + | caml_ba_get_1(s, i + 2) << 8 + | caml_ba_get_1(s, i + 3)) + >>> 0; + }, + read32s: + function(){ + var s = this.s, i = this.i; + this.i = i + 4; + return caml_ba_get_1(s, i) << 24 | caml_ba_get_1(s, i + 1) << 16 + | caml_ba_get_1(s, i + 2) << 8 + | caml_ba_get_1(s, i + 3); + }, + readstr: + function(len){ + var i = this.i, arr = new Array(len); + for(var j = 0; j < len; j++) arr[j] = caml_ba_get_1(this.s, i + j); + this.i = i + len; + return caml_string_of_array(arr); + }, + readuint8array: + function(len){ + var i = this.i, offset = this.offset(i); + this.i = i + len; + return this.s.data.subarray(offset, offset + len); + }}; + function caml_gr_dump_image(im){ + var data = [0]; + for(var i = 0; i < im.height; i++){ + data[i + 1] = [0]; + for(var j = 0; j < im.width; j++){ + var + o = i * (im.width * 4) + j * 4, + r = im.data[o + 0], + g = im.data[o + 1], + b = im.data[o + 2]; + data[i + 1][j + 1] = (r << 16) + (g << 8) + b; + } + } + return data; + } + function caml_ba_get_generic(ba, i){ + var ofs = ba.offset(caml_js_from_array(i)); + return ba.get(ofs); + } + function caml_unix_startup(){} + function caml_get_exception_backtrace(){return 0;} + function caml_format_float(fmt, x){ + function toFixed(x, dp){ + if(Math.abs(x) < 1.0) + return x.toFixed(dp); + else{ + var e = parseInt(x.toString().split("+")[1]); + if(e > 20){ + e -= 20; + x /= Math.pow(10, e); + x += new Array(e + 1).join("0"); + if(dp > 0) x = x + "." + new Array(dp + 1).join("0"); + return x; + } + else + return x.toFixed(dp); + } + } + var s, f = caml_parse_format(fmt), prec = f.prec < 0 ? 6 : f.prec; + if(x < 0 || x == 0 && 1 / x == - Infinity){f.sign = - 1; x = - x;} + if(isNaN(x)){ + s = "nan"; + f.filler = " "; + } + else if(! isFinite(x)){ + s = "inf"; + f.filler = " "; + } + else + switch(f.conv){ + case "e": + var s = x.toExponential(prec), i = s.length; + if(s.charAt(i - 3) == "e") + s = s.slice(0, i - 1) + "0" + s.slice(i - 1); + break; + case "f": + s = toFixed(x, prec); break; + case "g": + prec = prec ? prec : 1; + s = x.toExponential(prec - 1); + var j = s.indexOf("e"), exp = + s.slice(j + 1); + if(exp < - 4 || x >= 1e21 || x.toFixed(0).length > prec){ + var i = j - 1; + while(s.charAt(i) == "0") i--; + if(s.charAt(i) == ".") i--; + s = s.slice(0, i + 1) + s.slice(j); + i = s.length; + if(s.charAt(i - 3) == "e") + s = s.slice(0, i - 1) + "0" + s.slice(i - 1); + break; + } + else{ + var p = prec; + if(exp < 0){ + p -= exp + 1; + s = x.toFixed(p); + } else - if(fmt[idx] == " " || fmt[idx] == "+")sign = fmt[idx];else break; - if(z1.lt(bigInt(0))){sign = "-";z1 = z1.negate()} - for(;fmt[idx] >= "0" && fmt[idx] <= "9";idx++) - width = 10 * width + + fmt[idx]; - switch(fmt[idx]) - {case "i": - case "d": - case "u":break; - case "b":base = 2;if(alt)prefix = "0b";break; - case "o":base = 8;if(alt)prefix = "0o";break; - case "x":base = 16;if(alt)prefix = "0x";break; - case "X":base = 16;if(alt)prefix = "0X";cas = 1;break; - default:caml_failwith("Unsupported format '" + fmt + "'")} - if(dir)pad = " "; - var res=z1.toString(base); - if(cas === 1)res = res.toUpperCase(); - var size=res.length; - if(pad == " ") - if(dir) - {res = sign + prefix + res;for(;res.length < width;)res = res + pad} - else - {res = sign + prefix + res;for(;res.length < width;)res = pad + res} + while(s = x.toFixed(p), s.length > prec + 1) p--; + if(p){ + var i = s.length - 1; + while(s.charAt(i) == "0") i--; + if(s.charAt(i) == ".") i--; + s = s.slice(0, i + 1); + } + } + break; + } + return caml_finish_formatting(f, s); + } + function caml_mount_autoload(name, f){ + var + path = caml_make_path(name), + name = caml_trailing_slash(path.join("/")); + jsoo_mount_point.push({path: name, device: new MlFakeDevice(name, f)}); + return 0; + } + function ml_z_fits_int64(z1){ + z1 = bigInt(z1); + return z1.compare(bigInt("9223372036854775807")) <= 0 + && z1.compare(bigInt("-9223372036854775808")) >= 0 + ? 1 + : 0; + } + function ml_z_equal(z1, z2){return bigInt(z1).equals(bigInt(z2)) ? 1 : 0;} + function ml_z_sqrt_rem(z){ + z = bigInt(z); + var zero = bigInt(0); + if(z.lt(zero)) + caml_invalid_argument("Z.sqrt_rem: square root of a negative number"); + var + root = bigInt(ml_z_root(z, 2)), + mul = root.multiply(root), + diff = z.subtract(mul); + return [0, ml_z_normalize(root), ml_z_normalize(diff)]; + } + function caml_string_lessthan(s1, s2){return s1 < s2 ? 1 : 0;} + function caml_string_greaterthan(s1, s2){return caml_string_lessthan(s2, s1); + } + function caml_div(x, y){ + if(y == 0) caml_raise_zero_divide(); + return x / y | 0; + } + function caml_obj_dup(x){ + var l = x.length, a = new Array(l); + for(var i = 0; i < l; i++) a[i] = x[i]; + return a; + } + function caml_ephe_get_data_copy(x){ + return x[caml_ephe_data_offset] === undefined + ? 0 + : [0, caml_obj_dup(x[caml_ephe_data_offset])]; + } + function caml_memprof_start(rate, stack_size, tracker){return 0;} + function ml_z_perfect_square(z){ + z = bigInt(z); + if(z.lt(bigInt(0))) return 0; + var root = bigInt(ml_z_root(z, 2)); + return root.multiply(root).eq(z) ? 1 : 0; + } + function caml_sys_get_argv(a){return [0, caml_argv[1], caml_argv];} + function caml_ml_domain_set_name(_name){return 0;} + function caml_js_to_bool(x){return + x;} + function caml_gr_create_image(x, y){ + var s = caml_gr_state_get(); + return s.context.createImageData(x, y); + } + function caml_ephe_get_key_copy(x, i){ + if(i < 0 || caml_ephe_key_offset + i >= x.length) + caml_invalid_argument("Weak.get_copy"); + var y = caml_ephe_get_key(x, i); + if(y === 0) return y; + var z = y[1]; + if(z instanceof Array) return [0, caml_obj_dup(z)]; + return y; + } + function caml_lessthan(x, y){return + (caml_compare_val(x, y, false) < 0);} + function caml_raw_backtrace_next_slot(){return 0;} + function ml_z_to_nativeint(z1){return ml_z_to_int(z1);} + function caml_build_symbols(toc){ + var symb; + while(toc) + if(caml_jsstring_of_string(toc[1][1]) == "SYJS"){symb = toc[1][2]; break;} + else + toc = toc[2]; + var r = {}; + if(symb) + for(var i = 1; i < symb.length; i++) + r[caml_jsstring_of_string(symb[i][1])] = symb[i][2]; + return r; + } + function caml_register_global(n, v, name_opt){ + if(name_opt){ + var name = name_opt; + if(globalThis.toplevelReloc) + n = caml_callback(globalThis.toplevelReloc, [name]); + else if(caml_global_data.toc){ + if(! caml_global_data.symbols) + caml_global_data.symbols = caml_build_symbols(caml_global_data.toc); + var nid = caml_global_data.symbols[name]; + if(nid >= 0) + n = nid; else - {var pre=sign + prefix; - for(;res.length + pre.length < width;)res = pad + res; - res = pre + res} - return caml_string_of_jsbytes(res)} - function ml_z_to_int64(z1) - {z1 = bigInt(z1); - if(! ml_z_fits_int64(z1)) - caml_raise_constant(caml_named_value("ml_z_overflow")); - var - mask=bigInt(0xffffffff), - lo=z1.and(mask).toJSNumber(), - hi=z1.shiftRight(32).and(mask).toJSNumber(), - x=caml_int64_create_lo_hi(lo,hi); - return x} - function ml_z_size(z1) - {return bigInt(z1).toArray(Math.pow(2,32)).value.length} - function caml_unix_readlink(name) - {var root=resolve_fs_device(name); - if(! root.device.readlink) - caml_failwith("caml_unix_readlink: not implemented"); - return root.device.readlink(root.rest,true)} - function caml_backtrace_status(){return 0} - function caml_sys_argv(a){return caml_argv} - function caml_install_signal_handler(){return 0} - function caml_ba_fill(ba,v){ba.fill(v);return 0} - function caml_modf_float(x) - {if(isFinite(x)) - {var neg=1 / x < 0; - x = Math.abs(x); - var i=Math.floor(x),f=x - i; - if(neg){i = - i;f = - f} - return [0,f,i]} - if(isNaN(x))return [0,NaN,NaN]; - return [0,1 / x,x]} - function caml_gc_get(){return [0,0,0,0,0,0,0,0,0]} - function caml_float_compare(x,y) - {if(x === y)return 0; - if(x < y)return - 1; - if(x > y)return 1; - if(x === x)return 1; - if(y === y)return - 1; - return 0} - function ml_z_shift_right_trunc(z1,z2) - {return ml_z_div(bigInt(z1),bigInt(2).pow(z2))} - function caml_string_set32(s,i,i32){return caml_bytes_set32(s,i,i32)} - function caml_parse_engine(tables,env,cmd,arg) - {var - ERRCODE=256, - loop=6, - testshift=7, - shift=8, - shift_recover=9, - reduce=10, - READ_TOKEN=0, - RAISE_PARSE_ERROR=1, - GROW_STACKS_1=2, - GROW_STACKS_2=3, - COMPUTE_SEMANTIC_ACTION=4, - CALL_ERROR_FUNCTION=5, - env_s_stack=1, - env_v_stack=2, - env_symb_start_stack=3, - env_symb_end_stack=4, - env_stacksize=5, - env_stackbase=6, - env_curr_char=7, - env_lval=8, - env_symb_start=9, - env_symb_end=10, - env_asp=11, - env_rule_len=12, - env_rule_number=13, - env_sp=14, - env_state=15, - env_errflag=16, - tbl_transl_const=2, - tbl_transl_block=3, - tbl_lhs=4, - tbl_len=5, - tbl_defred=6, - tbl_dgoto=7, - tbl_sindex=8, - tbl_rindex=9, - tbl_gindex=10, - tbl_tablesize=11, - tbl_table=12, - tbl_check=13, - tbl_names_const=15, - tbl_names_block=16; - function log(x) - {var s=caml_string_of_jsbytes(x + "\n"); - caml_ml_output(2,s,0,caml_ml_string_length(s))} - function token_name(names,number) - {var str=caml_jsstring_of_string(names); - if(str[0] == "\x00")return ""; - return str.split("\x00")[number]} - function print_token(state,tok) - {var token,kind; - if(tok instanceof Array) - {token = token_name(tables[tbl_names_block],tok[0]); - if(typeof tok[1] == "number") - kind = "" + tok[1]; - else - if(typeof tok[1] == "string") - kind = tok[1]; - else - if(tok[1] instanceof MlBytes) - kind = caml_jsbytes_of_string(tok[1]); - else - kind = "_"; - log("State " + state + ": read token " + token + "(" + kind + ")")} + caml_failwith("caml_register_global: cannot locate " + name); + } + } + caml_global_data[n + 1] = v; + if(name_opt) caml_global_data[name_opt] = v; + } + function mult_nat(nat1, ofs1, len1, nat2, ofs2, len2, nat3, ofs3, len3){ + var carry = 0; + for(var i = 0; i < len3; i++) + carry += + mult_digit_nat + (nat1, ofs1 + i, len1 - i, nat2, ofs2, len2, nat3, ofs3 + i); + return carry; + } + function square_nat(nat1, ofs1, len1, nat2, ofs2, len2){ + var carry = 0; + carry += add_nat(nat1, ofs1, len1, nat1, ofs1, len1, 0); + carry += mult_nat(nat1, ofs1, len1, nat2, ofs2, len2, nat2, ofs2, len2); + return carry; + } + function caml_js_from_float(x){return x;} + function caml_floatarray_create(len){ + if(len < 0) caml_array_bound_error(); + var len = len + 1 | 0, b = new Array(len); + b[0] = 254; + for(var i = 1; i < len; i++) b[i] = 0; + return b; + } + function caml_gc_stat(){ + return [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + } + function caml_get_major_credit(n){return 0;} + function caml_sys_modify_argv(arg){caml_argv = arg; return 0;} + var caml_method_cache = []; + function caml_get_public_method(obj, tag, cacheid){ + var meths = obj[1], ofs = caml_method_cache[cacheid]; + if(ofs === undefined) + for(var i = caml_method_cache.length; i < cacheid; i++) + caml_method_cache[i] = 0; + else if(meths[ofs] === tag) return meths[ofs - 1]; + var li = 3, hi = meths[1] * 2 + 1, mi; + while(li < hi){ + mi = li + hi >> 1 | 1; + if(tag < meths[mi + 1]) hi = mi - 2; else li = mi; + } + caml_method_cache[cacheid] = li + 1; + return tag == meths[li + 1] ? meths[li] : 0; + } + function caml_js_get_console(){ + var + c = console, + m = + ["log", + "debug", + "info", + "warn", + "error", + "assert", + "dir", + "dirxml", + "trace", + "group", + "groupCollapsed", + "groupEnd", + "time", + "timeEnd"]; + function f(){} + for(var i = 0; i < m.length; i++) if(! c[m[i]]) c[m[i]] = f; + return c; + } + function caml_sys_unsafe_getenv(name){return caml_sys_getenv(name);} + function caml_ml_open_descriptor_in(fd){ + var file = caml_sys_fds[fd]; + if(file.flags.wronly) caml_raise_sys_error("fd " + fd + " is writeonly"); + var + refill = null, + channel = + {file: file, + offset: file.flags.append ? file.length() : 0, + fd: fd, + opened: true, + out: false, + buffer_curr: 0, + buffer_max: 0, + buffer: new Uint8Array(65536), + refill: refill}; + caml_ml_channels[channel.fd] = channel; + return channel.fd; + } + function bigstring_of_typed_array(ba){ + var + ta = + new + Uint8Array + (ba.buffer, ba.byteOffset, ba.length * ba.BYTES_PER_ELEMENT); + return caml_ba_create_unsafe(12, 0, [ta.length], ta); + } + function caml_round_float(x){return Math.round(x);} + function ml_z_of_bits(z1){ + var r = bigInt.zero, base1 = bigInt(256), base = bigInt.one; + for(var i = 0; i < caml_ml_string_length(z1); i++){ + var d = caml_string_unsafe_get(z1, i); + r = bigInt(base).multiply(d).add(r); + base = bigInt(base).multiply(base1); + } + return ml_z_normalize(r); + } + function caml_ojs_new_arr(c, a){ + switch(a.length){ + case 0: + return new c(); + case 1: + return new c(a[0]); + case 2: + return new c(a[0], a[1]); + case 3: + return new c(a[0], a[1], a[2]); + case 4: + return new c(a[0], a[1], a[2], a[3]); + case 5: + return new c(a[0], a[1], a[2], a[3], a[4]); + case 6: + return new c(a[0], a[1], a[2], a[3], a[4], a[5]); + case 7: + return new c(a[0], a[1], a[2], a[3], a[4], a[5], a[6]); + } + function F(){return c.apply(this, a);} + F.prototype = c.prototype; + return new F(); + } + function complement_nat(nat, ofs, len){ + for(var i = 0; i < len; i++) + nat.data[ofs + i] = (- 1 >>> 0) - (nat.data[ofs + i] >>> 0); + } + function ml_z_logxor(z1, z2){ + return ml_z_normalize(bigInt(z1).xor(bigInt(z2))); + } + var caml_domain_dls = [0]; + function caml_domain_dls_set(a){caml_domain_dls = a;} + function caml_lazy_read_result(o){ + return caml_obj_tag(o) == 250 ? o[1] : o; + } + var caml_js_regexps = {amp: /&/g, lt: / 1023){ + exp -= 1023; + x *= Math.pow(2, 1023); + if(exp > 1023){exp -= 1023; x *= Math.pow(2, 1023);} + } + if(exp < - 1023){exp += 1023; x *= Math.pow(2, - 1023);} + x *= Math.pow(2, exp); + return x; + } + function caml_gr_state_set(ctx){ + caml_gr_state = ctx; + caml_gr_state_init(); + return 0; + } + function caml_zarith_unmarshal(reader, sz){ + var negate; + switch(reader.read8u()){ + case 1: + negate = true; break; + case 0: + negate = false; break; + default: caml_failwith("input_value: z (malformed input)"); + } + var len = reader.read32u(), x = bigInt(0); + for(var i = 0; i < len / 4; i++){ + var y = bigInt(reader.read8u()); + y = y.add(reader.read8u() << 8); + y = y.add(reader.read8u() << 16); + y = y.add(reader.read8u() << 24 >>> 0); + x = y.shiftLeft(i * 32).add(x); + } + if(negate) x = x.negate(); + sz[0] = len + 4; + return ml_z_normalize(x); + } + function ml_z_trailing_zeros(z){ + z = bigInt(z).abs(); + var zero = bigInt(0), one = bigInt(1); + if(z.equals(zero)) return 0x7fffffff; + var i = 0; + z = z.xor(z.prev()).shiftRight(1); + for(i = 0; ! z.equals(bigInt.zero); i++) z = z.shiftRight(1); + return i; + } + function caml_js_wrap_callback_strict(arity, f){ + return function(){ + var + n = arguments.length, + args = new Array(arity), + len = Math.min(arguments.length, arity); + for(var i = 0; i < len; i++) args[i] = arguments[i]; + return caml_callback(f, args);}; + } + function caml_gc_minor_words(unit){return 0;} + function caml_get_current_callstack(){return [0];} + function land_digit_nat(nat1, ofs1, nat2, ofs2){nat1.data[ofs1] &= nat2.data[ofs2]; return 0; + } + function caml_int64_mod(x, y){return x.mod(y);} + function caml_obj_set_tag(x, tag){x[0] = tag; return 0;} + function caml_int32_bswap(x){ + return (x & 0x000000FF) << 24 | (x & 0x0000FF00) << 8 + | (x & 0x00FF0000) >>> 8 + | (x & 0xFF000000) >>> 24; + } + function caml_ba_set_3(ba, i0, i1, i2, v){ + ba.set(ba.offset([i0, i1, i2]), v); + return 0; + } + function ml_z_jacobi(n, k){ + n = bigInt(n); + k = bigInt(k); + if(k.leq(bigInt(0)) || k.mod(bigInt(2)).neq(bigInt(1))) + caml_invalid_argument("Z.jacobi: second argument is negative or even"); + n = n.mod(k); + if(n.lt(bigInt(0))) n = n.add(k); + var t = 1; + while(! n.equals(bigInt(0))){ + while(n.isDivisibleBy(bigInt(2))){ + n = n.divide(bigInt(2)); + var r = k.mod(bigInt(8)); + if(r.equals(bigInt(3)) || r.equals(bigInt(5))) t = - t; + } + var n1 = n, k1 = k; + n = k1; + k = n1; + if + (n.mod(bigInt(4)).equals(bigInt(3)) + && k.mod(bigInt(4)).equals(bigInt(3))) + t = - t; + n = n.mod(k); + } + return k.equals(bigInt(1)) ? t : 0; + } + function ml_z_legendre(a, b){return ml_z_jacobi(a, b);} + function caml_js_instanceof(o, c){return o instanceof c ? 1 : 0;} + function caml_get_major_bucket(n){return 0;} + function nth_digit_nat_native(nat, ofs){return nat.data[ofs];} + function set_digit_nat_native(nat, ofs, digit){nat.data[ofs] = digit; return 0; + } + function caml_string_set64(s, i, i64){caml_failwith("caml_string_set64");} + function caml_gr_state_create(canvas, w, h){ + var context = canvas.getContext("2d"); + return {context: context, + canvas: canvas, + x: 0, + y: 0, + width: w, + height: h, + line_width: 1, + font: caml_string_of_jsbytes("fixed"), + text_size: 26, + color: 0x000000, + title: caml_string_of_jsbytes("")}; + } + function caml_gr_draw_arc(x, y, rx, ry, a1, a2){ + var s = caml_gr_state_get(); + s.context.beginPath(); + caml_gr_arc_aux(s.context, x, s.height - y, rx, ry, a1, a2); + s.context.stroke(); + return 0; + } + function caml_ba_map_file(vfd, kind, layout, shared, dims, pos){caml_failwith("caml_ba_map_file not implemented"); + } + function caml_ba_map_file_bytecode(argv, argn){ + return caml_ba_map_file + (argv[0], argv[1], argv[2], argv[3], argv[4], argv[5]); + } + function caml_ba_create_from(data1, data2, jstyp, kind, layout, dims){ + if(data2 || caml_ba_get_size_per_element(kind) == 2) + caml_invalid_argument + ("caml_ba_create_from: use return caml_ba_create_unsafe"); + return caml_ba_create_unsafe(kind, layout, dims, data1); + } + function caml_tanh_float(x){return Math.tanh(x);} + function caml_runtime_events_start(){return 0;} + function caml_gr_draw_str(str){ + var s = caml_gr_state_get(), m = s.context.measureText(str), dx = m.width; + s.context.fillText(str, s.x, s.height - s.y); + s.x += dx | 0; + return 0; + } + function caml_gr_draw_string(str){ + caml_gr_draw_str(caml_jsstring_of_string(str)); + return 0; + } + function ml_z_primorial(a){ + var one = bigInt(1), two = bigInt(2), z1 = one, res = one; + a = bigInt(a); + while(z1.leq(a)){ + if(z1.isProbablePrime(25)) res = res.multiply(z1); + if(z1.equals(one) || z1.equals(two)) + z1 = z1.add(one); + else + z1 = z1.add(two); + } + return ml_z_normalize(res); + } + function caml_gr_draw_char(c){ + caml_gr_draw_str(String.fromCharCode(c)); + return 0; + } + function caml_unmount(name){ + var + path = caml_make_path(name), + name = caml_trailing_slash(path.join("/")), + idx = - 1; + for(var i = 0; i < jsoo_mount_point.length; i++) + if(jsoo_mount_point[i].path == name) idx = i; + if(idx > - 1) jsoo_mount_point.splice(idx, 1); + return 0; + } + function caml_bigstring_blit_ba_to_ba(ba1, pos1, ba2, pos2, len){ + if(12 != ba1.kind) + caml_invalid_argument("caml_bigstring_blit_ba_to_ba: kind mismatch"); + if(12 != ba2.kind) + caml_invalid_argument("caml_bigstring_blit_ba_to_ba: kind mismatch"); + if(len == 0) return 0; + var ofs1 = ba1.offset(pos1), ofs2 = ba2.offset(pos2); + if(ofs1 + len > ba1.data.length) caml_array_bound_error(); + if(ofs2 + len > ba2.data.length) caml_array_bound_error(); + var slice = ba1.data.subarray(ofs1, ofs1 + len); + ba2.data.set(slice, pos2); + return 0; + } + function ml_z_fib(i){ + if(i < 0) caml_invalid_argument("Z.fib: negative arguments"); + if(i == 0 || i == 1) return i; + var a = bigInt(0), b = bigInt(1); + for(var k = 1; k < i; k++){var b2 = b; b = a.add(b); a = b2;} + return ml_z_normalize(b); + } + function caml_input_value_from_string(s, ofs){ + var reader = new MlStringReader(s, typeof ofs == "number" ? ofs : ofs[0]); + return caml_input_value_from_reader(reader, ofs); + } + function caml_ml_pos_in_64(chanid){ + return caml_int64_of_float(caml_pos_in(chanid)); + } + function caml_gr_draw_image(im, x, y){ + var s = caml_gr_state_get(); + if(! im.image){ + var canvas = document.createElement("canvas"); + canvas.width = s.width; + canvas.height = s.height; + canvas.getContext("2d").putImageData(im, 0, 0); + var image = new globalThis.Image(); + image.onload = + function(){ + s.context.drawImage(image, x, s.height - im.height - y); + im.image = image; + }; + image.src = canvas.toDataURL("image/png"); + } + else + s.context.drawImage(im.image, x, s.height - im.height - y); + return 0; + } + function caml_register_channel_for_spacetime(_channel){return 0;} + function caml_string_set(s, i, c){caml_failwith("caml_string_set");} + function caml_sys_rmdir(name){ + var root = resolve_fs_device(name); + root.device.rmdir(root.rest); + return 0; + } + function caml_unix_symlink(to_dir, src, dst){ + var src_root = resolve_fs_device(src), dst_root = resolve_fs_device(dst); + if(src_root.device != dst_root.device) + caml_failwith + ("caml_unix_symlink: cannot symlink between two filesystems"); + if(! src_root.device.symlink) + caml_failwith("caml_unix_symlink: not implemented"); + return src_root.device.symlink(to_dir, src_root.rest, dst_root.rest, true); + } + function caml_ml_pos_out(chanid){return caml_pos_out(chanid);} + function caml_spacetime_enabled(_unit){return 0;} + function caml_bytes_notequal(s1, s2){return 1 - caml_bytes_equal(s1, s2);} + function caml_runtime_parameters(_unit){return caml_string_of_jsbytes("");} + function caml_js_object(a){ + var o = {}; + for(var i = 1; i < a.length; i++){ + var p = a[i]; + o[caml_jsstring_of_string(p[1])] = p[2]; + } + return o; + } + function caml_ba_create(kind, layout, dims_ml){ + var + dims = caml_js_from_array(dims_ml), + data = caml_ba_create_buffer(kind, caml_ba_get_size(dims)); + return caml_ba_create_unsafe(kind, layout, dims, data); + } + function caml_gr_remember_mode(){ + caml_failwith("caml_gr_remember_mode not Implemented"); + } + function caml_fma_float(x, y, z){ + var + SPLIT = Math.pow(2, 27) + 1, + MIN_VALUE = Math.pow(2, - 1022), + EPSILON = Math.pow(2, - 52), + C = 416, + A = Math.pow(2, + C), + B = Math.pow(2, - C); + function multiply(a, b){ + var + at = SPLIT * a, + ahi = at - (at - a), + alo = a - ahi, + bt = SPLIT * b, + bhi = bt - (bt - b), + blo = b - bhi, + p = a * b, + e = ahi * bhi - p + ahi * blo + alo * bhi + alo * blo; + return {p: p, e: e}; + } + function add(a, b){ + var s = a + b, v = s - a, e = a - (s - v) + (b - v); + return {s: s, e: e}; + } + function adjust(x, y){ + return x !== 0 && y !== 0 && SPLIT * x - (SPLIT * x - x) === x + ? x * (1 + (x < 0 ? - 1 : + 1) * (y < 0 ? - 1 : + 1) * EPSILON) + : x; + } + if + (x === 0 || x !== x || x === + (1 / 0) || x === - (1 / 0) || y === 0 + || y !== y + || y === + (1 / 0) + || y === - (1 / 0)) + return x * y + z; + if(z === 0) return x * y; + if(z !== z || z === + (1 / 0) || z === - (1 / 0)) return z; + var scale = 1; + while(Math.abs(x) > A){scale *= A; x *= B;} + while(Math.abs(y) > A){scale *= A; y *= B;} + if(scale === 1 / 0) return x * y * scale; + while(Math.abs(x) < B){scale *= B; x *= A;} + while(Math.abs(y) < B){scale *= B; y *= A;} + if(scale === 0) return z; + var xs = x, ys = y, zs = z / scale; + if(Math.abs(zs) > Math.abs(xs * ys) * 4 / EPSILON) return z; + if(Math.abs(zs) < Math.abs(xs * ys) * EPSILON / 4 * EPSILON / 4) + zs = (z < 0 ? - 1 : + 1) * MIN_VALUE; + var + xy = multiply(xs, ys), + s = add(xy.p, zs), + u = add(xy.e, s.e), + i = add(s.s, u.s), + f = i.s + adjust(i.e, u.e); + if(f === 0) return f; + var fs = f * scale; + if(Math.abs(fs) > MIN_VALUE) return fs; + return fs + adjust(f - fs / scale, i.e) * scale; + } + function caml_recommended_domain_count(unit){return 1;} + function caml_bswap16(x){return (x & 0x00FF) << 8 | (x & 0xFF00) >> 8;} + function caml_ml_set_binary_mode(chanid, mode){ + var chan = caml_ml_channels[chanid]; + chan.file.flags.text = ! mode; + chan.file.flags.binary = mode; + return 0; + } + function caml_final_register(){return 0;} + function caml_gr_draw_rect(x, y, w, h){ + var s = caml_gr_state_get(); + s.context.strokeRect(x, s.height - y, w, - h); + return 0; + } + function caml_string_get16(s, i){ + if(i >>> 0 >= caml_ml_string_length(s) - 1) caml_string_bound_error(); + var + b1 = caml_string_unsafe_get(s, i), + b2 = caml_string_unsafe_get(s, i + 1); + return b2 << 8 | b1; + } + function caml_output_value(chanid, v, flags){ + var s = caml_output_value_to_string(v, flags); + caml_ml_output(chanid, s, 0, caml_ml_string_length(s)); + return 0; + } + function caml_ba_get_3(ba, i0, i1, i2){ + return ba.get(ba.offset([i0, i1, i2])); + } + function caml_ephe_blit_key(a1, i1, a2, i2, len){ + caml_array_blit + (a1, + caml_ephe_key_offset + i1 - 1, + a2, + caml_ephe_key_offset + i2 - 1, + len); + return 0; + } + function ml_z_to_int32(z1){return ml_z_to_int(z1);} + var caml_initial_time = new Date().getTime() * 0.001; + function caml_sys_time(){ + var now = new Date().getTime(); + return now * 0.001 - caml_initial_time; + } + function caml_sys_time_include_children(b){return caml_sys_time();} + function caml_check_bound(array, index){ + if(index >>> 0 >= array.length - 1) caml_array_bound_error(); + return array; + } + function caml_unix_getpwuid(unit){caml_raise_not_found();} + function ml_z_compare(z1, z2){return bigInt(z1).compare(bigInt(z2));} + function caml_hash(count, limit, seed, obj){ + var queue, rd, wr, sz, num, h, v, i, len; + sz = limit; + if(sz < 0 || sz > 256) sz = 256; + num = count; + h = seed; + queue = [obj]; + rd = 0; + wr = 1; + while(rd < wr && num > 0){ + v = queue[rd++]; + if(v && v.caml_custom){ + if + (caml_custom_ops[v.caml_custom] && caml_custom_ops[v.caml_custom].hash){ + var hh = caml_custom_ops[v.caml_custom].hash(v); + h = caml_hash_mix_int(h, hh); + num--; + } + } + else if(v instanceof Array && v[0] === (v[0] | 0)) + switch(v[0]){ + case 248: + h = caml_hash_mix_int(h, v[2]); num--; break; + case 250: + queue[--rd] = v[1]; break; + default: + if(caml_is_continuation_tag(v[0])) break; + var tag = v.length - 1 << 10 | v[0]; + h = caml_hash_mix_int(h, tag); + for(i = 1, len = v.length; i < len; i++){if(wr >= sz) break; queue[wr++] = v[i]; + } + break; + } + else if(caml_is_ml_bytes(v)){ + h = caml_hash_mix_bytes(h, v); + num--; + } + else if(caml_is_ml_string(v)){ + h = caml_hash_mix_string(h, v); + num--; + } + else if(typeof v === "string"){ + h = caml_hash_mix_jsbytes(h, v); + num--; + } + else if(v === (v | 0)){ + h = caml_hash_mix_int(h, v + v + 1); + num--; + } + else if(v === + v){h = caml_hash_mix_float(h, v); num--;} + } + h = caml_hash_mix_final(h); + return h & 0x3FFFFFFF; + } + function caml_ba_to_typed_array(ba){return ba.data;} + function caml_domain_dls_get(unit){return caml_domain_dls;} + function caml_bytes_get32(s, i){ + if(i >>> 0 >= s.l - 3) caml_bytes_bound_error(); + var + b1 = caml_bytes_unsafe_get(s, i), + b2 = caml_bytes_unsafe_get(s, i + 1), + b3 = caml_bytes_unsafe_get(s, i + 2), + b4 = caml_bytes_unsafe_get(s, i + 3); + return b4 << 24 | b3 << 16 | b2 << 8 | b1; + } + function caml_frexp_float(x){ + if(x == 0 || ! isFinite(x)) return [0, x, 0]; + var neg = x < 0; + if(neg) x = - x; + var exp = Math.max(- 1023, jsoo_floor_log2(x) + 1); + x *= Math.pow(2, - exp); + while(x < 0.5){x *= 2; exp--;} + while(x >= 1){x *= 0.5; exp++;} + if(neg) x = - x; + return [0, x, exp]; + } + function ml_z_pred(z1){return ml_z_normalize(bigInt(z1).prev());} + function caml_string_get64(s, i){ + if(i >>> 0 >= caml_ml_string_length(s) - 7) caml_string_bound_error(); + var a = new Array(8); + for(var j = 0; j < 8; j++) a[7 - j] = caml_string_unsafe_get(s, i + j); + return caml_int64_of_bytes(a); + } + function caml_js_error_option_of_exception(exn){ + if(exn.js_error) return [0, exn.js_error]; + return 0; + } + function caml_ml_pos_out_64(chanid){ + return caml_int64_of_float(caml_pos_out(chanid)); + } + function ml_z_remove(a, b){ + var zero = bigInt(0), one = bigInt(1); + a = bigInt(a); + b = bigInt(b); + if(b.equals(zero)) caml_raise_zero_divide(); + if(a.equals(zero) || b.abs().equals(one)) return [0, a, 0]; + var i = 0; + while(a.isDivisibleBy(b)){a = a.divide(b); i++;} + return [0, ml_z_normalize(a), i]; + } + function ml_z_extract(z1, pos, len){ + z1 = bigInt(z1); + return ml_z_normalize + (z1.shiftRight(pos).and(bigInt(2).pow(len).subtract(1))); + } + function ml_z_of_float(f1){ + if(f1 == Infinity || f1 == - Infinity || f1 != f1) + caml_raise_constant(caml_named_value("ml_z_overflow")); + return ml_z_normalize(bigInt(f1 < 0 ? Math.ceil(f1) : Math.floor(f1))); + } + function ml_z_lognot(z1){return ml_z_normalize(bigInt(z1).not());} + function caml_unix_findclose(dir_handle){return caml_unix_closedir(dir_handle); + } + function caml_gr_close_subwindow(a){ + caml_failwith("caml_gr_close_subwindow not Implemented"); + } + function caml_floatarray_blit(a1, i1, a2, i2, len){ + if(i2 <= i1) + for(var j = 1; j <= len; j++) a2[i2 + j] = a1[i1 + j]; + else + for(var j = len; j >= 1; j--) a2[i2 + j] = a1[i1 + j]; + return 0; + } + function caml_get_minor_free(unit){return 0;} + function caml_set_static_env(k, v){ + if(! globalThis.jsoo_static_env) globalThis.jsoo_static_env = {}; + globalThis.jsoo_static_env[k] = v; + return 0; + } + function caml_ba_change_layout(ba, layout){ + if(ba.layout == layout) return ba; + var new_dims = []; + for(var i = 0; i < ba.dims.length; i++) + new_dims[i] = ba.dims[ba.dims.length - i - 1]; + return caml_ba_create_unsafe(ba.kind, layout, new_dims, ba.data); + } + function caml_js_new(c, a){ + switch(a.length){ + case 1: + return new c(); + case 2: + return new c(a[1]); + case 3: + return new c(a[1], a[2]); + case 4: + return new c(a[1], a[2], a[3]); + case 5: + return new c(a[1], a[2], a[3], a[4]); + case 6: + return new c(a[1], a[2], a[3], a[4], a[5]); + case 7: + return new c(a[1], a[2], a[3], a[4], a[5], a[6]); + case 8: + return new c(a[1], a[2], a[3], a[4], a[5], a[6], a[7]); + } + function F(){return c.apply(this, caml_js_from_array(a));} + F.prototype = c.prototype; + return new F(); + } + function caml_gr_current_y(){var s = caml_gr_state_get(); return s.y;} + function caml_format_int(fmt, i){ + if(caml_jsbytes_of_string(fmt) == "%d") + return caml_string_of_jsbytes("" + i); + var f = caml_parse_format(fmt); + if(i < 0) if(f.signedconv){f.sign = - 1; i = - i;} else i >>>= 0; + var s = i.toString(f.base); + if(f.prec >= 0){ + f.filler = " "; + var n = f.prec - s.length; + if(n > 0) s = caml_str_repeat(n, "0") + s; + } + return caml_finish_formatting(f, s); + } + function jsoo_effect_not_supported(){ + caml_failwith("Effect handlers are not supported"); + } + function caml_continuation_use_and_update_handler_noexc + (cont, hval, hexn, heff){ + var stack = caml_continuation_use_noexc(cont); + stack[3] = [0, hval, hexn, heff]; + return stack; + } + function caml_obj_truncate(x, s){ + if(s <= 0 || s + 1 > x.length) caml_invalid_argument("Obj.truncate"); + if(x.length != s + 1) x.length = s + 1; + return 0; + } + function caml_js_to_string(s){return caml_string_of_jsstring(s);} + function is_digit_odd(nat, ofs){if(nat.data[ofs] & 1) return 1; return 0;} + function caml_runtime_variant(_unit){return caml_string_of_jsbytes("");} + function caml_ml_open_descriptor_out(fd){ + var file = caml_sys_fds[fd]; + if(file.flags.rdonly) caml_raise_sys_error("fd " + fd + " is readonly"); + var + buffered = file.flags.buffered !== undefined ? file.flags.buffered : 1, + channel = + {file: file, + offset: file.flags.append ? file.length() : 0, + fd: fd, + opened: true, + out: true, + buffer_curr: 0, + buffer: new Uint8Array(65536), + buffered: buffered}; + caml_ml_channels[channel.fd] = channel; + return channel.fd; + } + function caml_array_concat(l){ + var a = [0]; + while(l !== 0){ + var b = l[1]; + for(var i = 1; i < b.length; i++) a.push(b[i]); + l = l[2]; + } + return a; + } + function caml_gr_open_graph(info){ + var info = caml_jsstring_of_string(info); + function get(name){ + var res = info.match("(^|,) *" + name + " *= *([a-zA-Z0-9_]+) *(,|$)"); + if(res) return res[2]; + } + var specs = []; + if(! (info == "")) specs.push(info); + var target = get("target"); + if(! target) target = ""; + var status = get("status"); + if(! status) specs.push("status=1"); + var w = get("width"); + w = w ? parseInt(w) : 200; + specs.push("width=" + w); + var h = get("height"); + h = h ? parseInt(h) : 200; + specs.push("height=" + h); + var win = globalThis.open("about:blank", target, specs.join(",")); + if(! win) caml_failwith("Graphics.open_graph: cannot open the window"); + var doc = win.document, canvas = doc.createElement("canvas"); + canvas.width = w; + canvas.height = h; + var ctx = caml_gr_state_create(canvas, w, h); + ctx.set_title = function(title){doc.title = title;}; + caml_gr_state_set(ctx); + var body = doc.body; + body.style.margin = "0px"; + body.appendChild(canvas); + return 0; + } + function caml_make_float_vect(len){ + if(len < 0) caml_array_bound_error(); + var len = len + 1 | 0, b = new Array(len); + b[0] = 254; + for(var i = 1; i < len; i++) b[i] = 0; + return b; + } + function caml_cbrt_float(x){return Math.cbrt(x);} + function caml_eventlog_pause(unit){return 0;} + function caml_memprof_stop(unit){return 0;} + function caml_greaterequal(x, y){ + return + (caml_compare_val(x, y, false) >= 0); + } + function ml_z_numbits(z1){ + z1 = bigInt(z1).abs(); + var n = 0, upperBound = bigInt.one; + while(upperBound.leq(z1)){n += 1; upperBound = upperBound.multiply(2);} + return n; + } + function caml_get_exception_raw_backtrace(){return [0];} + function caml_log1p_float(x){return Math.log1p(x);} + function caml_runtime_events_free_cursor(cursor){return 0;} + function caml_lazy_make_forward(v){return [250, v];} + function lor_digit_nat(nat1, ofs1, nat2, ofs2){nat1.data[ofs1] |= nat2.data[ofs2]; return 0; + } + function caml_gr_blit_image(im, x, y){ + var + s = caml_gr_state_get(), + im2 = + s.context.getImageData + (x, s.height - im.height - y, im.width, im.height); + for(var i = 0; i < im2.data.length; i += 4){ + im.data[i] = im2.data[i]; + im.data[i + 1] = im2.data[i + 1]; + im.data[i + 2] = im2.data[i + 2]; + im.data[i + 3] = im2.data[i + 3]; + } + return 0; + } + function caml_gr_window_id(a){ + caml_failwith("caml_gr_window_id not Implemented"); + } + function caml_js_on_ie(){ + var ua = globalThis.navigator ? globalThis.navigator.userAgent : ""; + return ua.indexOf("MSIE") != - 1 && ua.indexOf("Opera") != 0; + } + function caml_int64_shift_right(x, s){return x.shift_right(s);} + function caml_ba_layout(ba){return ba.layout;} + function caml_convert_raw_backtrace(){return [0];} + function caml_array_set(array, index, newval){ + if(index < 0 || index >= array.length - 1) caml_array_bound_error(); + array[index + 1] = newval; + return 0; + } + function caml_alloc_stack(hv, hx, hf){return 0;} + function caml_bytes_greaterequal(s1, s2){return caml_bytes_lessequal(s2, s1); + } + function ml_z_perfect_power(z){ + z = bigInt(z); + var zero = bigInt(0), one = bigInt(1); + if(z.equals(zero) || z.equals(one) || z.equals(one.negate())) return 1; + var log2z = ml_z_numbits(z.abs()); + for(var b = 2; b <= log2z; b++){ + if(z.lt(zero) && b % 2 == 0) continue; + var zp = z.abs(), p = bigInt(ml_z_root(zp, b)); + if(z.lt(zero)) p = p.negate(); + var r = bigInt(ml_z_pow(p, b)); + if(z.equals(r)) return 1; + } + return 0; + } + function set_digit_nat(nat, ofs, digit){nat.data[ofs] = digit; return 0;} + function ml_z_init(unit){ + caml_custom_ops["_z"] = + {serialize: caml_zarith_marshal, + deserialize: caml_zarith_unmarshal, + hash: ml_z_hash, + compare: ml_z_compare}; + return 0; + } + function caml_bytes_set16(s, i, i16){ + if(i >>> 0 >= s.l - 1) caml_bytes_bound_error(); + var b2 = 0xFF & i16 >> 8, b1 = 0xFF & i16; + caml_bytes_unsafe_set(s, i + 0, b1); + caml_bytes_unsafe_set(s, i + 1, b2); + return 0; + } + function caml_gr_doc_of_state(state){ + if(state.canvas.ownerDocument) return state.canvas.ownerDocument; + } + function caml_ml_output_int(chanid, i){ + var + arr = [i >> 24 & 0xFF, i >> 16 & 0xFF, i >> 8 & 0xFF, i & 0xFF], + s = caml_string_of_array(arr); + caml_ml_output(chanid, s, 0, 4); + return 0; + } + function caml_obj_with_tag(tag, x){ + var l = x.length, a = new Array(l); + a[0] = tag; + for(var i = 1; i < l; i++) a[i] = x[i]; + return a; + } + function caml_ml_channel_size(chanid){ + var chan = caml_ml_channels[chanid]; + return chan.file.length(); + } + function caml_raw_backtrace_slot(){ + caml_invalid_argument + ("Printexc.get_raw_backtrace_slot: index out of bounds"); + } + function caml_hexstring_of_float(x, prec, style){ + if(! isFinite(x)){ + if(isNaN(x)) return caml_string_of_jsstring("nan"); + return caml_string_of_jsstring(x > 0 ? "infinity" : "-infinity"); + } + var sign = x == 0 && 1 / x == - Infinity ? 1 : x >= 0 ? 0 : 1; + if(sign) x = - x; + var exp = 0; + if(x == 0) + ; + else if(x < 1) + while(x < 1 && exp > - 1022){x *= 2; exp--;} + else + while(x >= 2){x /= 2; exp++;} + var exp_sign = exp < 0 ? "" : "+", sign_str = ""; + if(sign) + sign_str = "-"; + else + switch(style){ + case 43: + sign_str = "+"; break; + case 32: + sign_str = " "; break; + default: break; + } + if(prec >= 0 && prec < 13){ + var cst = Math.pow(2, prec * 4); + x = Math.round(x * cst) / cst; + } + var x_str = x.toString(16); + if(prec >= 0){ + var idx = x_str.indexOf("."); + if(idx < 0) + x_str += "." + caml_str_repeat(prec, "0"); + else{ + var size = idx + 1 + prec; + if(x_str.length < size) + x_str += caml_str_repeat(size - x_str.length, "0"); + else + x_str = x_str.substr(0, size); + } + } + return caml_string_of_jsstring + (sign_str + "0x" + x_str + "p" + exp_sign + exp.toString(10)); + } + function caml_runtime_events_user_write(event, event_content){return 0;} + function caml_js_wrap_meth_callback_strict(arity, f){ + return function(){ + var args = new Array(arity + 1), len = Math.min(arguments.length, arity); + args[0] = this; + for(var i = 0; i < len; i++) args[i + 1] = arguments[i]; + return caml_callback(f, args);}; + } + function ml_z_format(fmt, z1){ + z1 = bigInt(z1); + var + fmt = caml_jsbytes_of_string(fmt), + base = 10, + cas = 0, + width = 0, + alt = 0, + dir = 0, + sign = "", + pad = " ", + idx = 0, + prefix = ""; + while(fmt[idx] == "%") idx++; + for(;; idx++) + if(fmt[idx] == "#") + alt = 1; + else if(fmt[idx] == "0") + pad = "0"; + else if(fmt[idx] == "-") + dir = 1; + else if(fmt[idx] == " " || fmt[idx] == "+") sign = fmt[idx]; else break; + if(z1.lt(bigInt(0))){sign = "-"; z1 = z1.negate();} + for(; fmt[idx] >= "0" && fmt[idx] <= "9"; idx++) + width = 10 * width + + fmt[idx]; + switch(fmt[idx]){ + case "i": + case "d": + case "u": break; + case "b": + base = 2; if(alt) prefix = "0b"; break; + case "o": + base = 8; if(alt) prefix = "0o"; break; + case "x": + base = 16; if(alt) prefix = "0x"; break; + case "X": + base = 16; if(alt) prefix = "0X"; cas = 1; break; + default: caml_failwith("Unsupported format '" + fmt + "'"); + } + if(dir) pad = " "; + var res = z1.toString(base); + if(cas === 1) res = res.toUpperCase(); + var size = res.length; + if(pad == " ") + if(dir){ + res = sign + prefix + res; + for(; res.length < width;) res = res + pad; + } + else{ + res = sign + prefix + res; + for(; res.length < width;) res = pad + res; + } + else{ + var pre = sign + prefix; + for(; res.length + pre.length < width;) res = pad + res; + res = pre + res; + } + return caml_string_of_jsbytes(res); + } + function ml_z_size(z1){ + return bigInt(z1).toArray(Math.pow(2, 32)).value.length; + } + function ml_z_to_int64(z1){ + z1 = bigInt(z1); + if(! ml_z_fits_int64(z1)) + caml_raise_constant(caml_named_value("ml_z_overflow")); + var + mask = bigInt(0xffffffff), + lo = z1.and(mask).toJSNumber(), + hi = z1.shiftRight(32).and(mask).toJSNumber(), + x = caml_int64_create_lo_hi(lo, hi); + return x; + } + function caml_unix_readlink(name){ + var root = resolve_fs_device(name); + if(! root.device.readlink) + caml_failwith("caml_unix_readlink: not implemented"); + return root.device.readlink(root.rest, true); + } + function caml_backtrace_status(_unit){ + return caml_record_backtrace_flag ? 1 : 0; + } + function caml_install_signal_handler(){return 0;} + function caml_sys_argv(a){return caml_argv;} + function caml_ba_fill(ba, v){ba.fill(v); return 0;} + function caml_modf_float(x){ + if(isFinite(x)){ + var neg = 1 / x < 0; + x = Math.abs(x); + var i = Math.floor(x), f = x - i; + if(neg){i = - i; f = - f;} + return [0, f, i]; + } + if(isNaN(x)) return [0, NaN, NaN]; + return [0, 1 / x, x]; + } + function caml_gc_get(){return [0, 0, 0, 0, 0, 0, 0, 0, 0];} + function caml_float_compare(x, y){ + if(x === y) return 0; + if(x < y) return - 1; + if(x > y) return 1; + if(x === x) return 1; + if(y === y) return - 1; + return 0; + } + function ml_z_shift_right_trunc(z1, z2){ + return ml_z_div(bigInt(z1), bigInt(2).pow(z2)); + } + function caml_string_set32(s, i, i32){caml_failwith("caml_string_set32");} + function caml_parse_engine(tables, env, cmd, arg){ + var + ERRCODE = 256, + loop = 6, + testshift = 7, + shift = 8, + shift_recover = 9, + reduce = 10, + READ_TOKEN = 0, + RAISE_PARSE_ERROR = 1, + GROW_STACKS_1 = 2, + GROW_STACKS_2 = 3, + COMPUTE_SEMANTIC_ACTION = 4, + CALL_ERROR_FUNCTION = 5, + env_s_stack = 1, + env_v_stack = 2, + env_symb_start_stack = 3, + env_symb_end_stack = 4, + env_stacksize = 5, + env_stackbase = 6, + env_curr_char = 7, + env_lval = 8, + env_symb_start = 9, + env_symb_end = 10, + env_asp = 11, + env_rule_len = 12, + env_rule_number = 13, + env_sp = 14, + env_state = 15, + env_errflag = 16, + tbl_transl_const = 2, + tbl_transl_block = 3, + tbl_lhs = 4, + tbl_len = 5, + tbl_defred = 6, + tbl_dgoto = 7, + tbl_sindex = 8, + tbl_rindex = 9, + tbl_gindex = 10, + tbl_tablesize = 11, + tbl_table = 12, + tbl_check = 13, + tbl_names_const = 15, + tbl_names_block = 16; + function log(x){ + var s = caml_string_of_jsbytes(x + "\n"); + caml_ml_output(2, s, 0, caml_ml_string_length(s)); + } + function token_name(names, number){ + var str = caml_jsstring_of_string(names); + if(str[0] == "\x00") return ""; + return str.split("\x00")[number]; + } + function print_token(state, tok){ + var token, kind; + if(tok instanceof Array){ + token = token_name(tables[tbl_names_block], tok[0]); + if(typeof tok[1] == "number") + kind = "" + tok[1]; + else if(typeof tok[1] == "string") + kind = tok[1]; + else if(tok[1] instanceof MlBytes) + kind = caml_jsbytes_of_string(tok[1]); + else + kind = "_"; + log("State " + state + ": read token " + token + "(" + kind + ")"); + } + else{ + token = token_name(tables[tbl_names_const], tok); + log("State " + state + ": read token " + token); + } + } + if(! tables.dgoto){ + tables.defred = caml_lex_array(tables[tbl_defred]); + tables.sindex = caml_lex_array(tables[tbl_sindex]); + tables.check = caml_lex_array(tables[tbl_check]); + tables.rindex = caml_lex_array(tables[tbl_rindex]); + tables.table = caml_lex_array(tables[tbl_table]); + tables.len = caml_lex_array(tables[tbl_len]); + tables.lhs = caml_lex_array(tables[tbl_lhs]); + tables.gindex = caml_lex_array(tables[tbl_gindex]); + tables.dgoto = caml_lex_array(tables[tbl_dgoto]); + } + var + res = 0, + n, + n1, + n2, + state1, + sp = env[env_sp], + state = env[env_state], + errflag = env[env_errflag]; + exit: + for(;;) + next: + switch(cmd){ + case 0: + state = 0; errflag = 0; + case 6: + n = tables.defred[state]; + if(n != 0){cmd = reduce; break;} + if(env[env_curr_char] >= 0){cmd = testshift; break;} + res = READ_TOKEN; + break exit; + case 1: + if(arg instanceof Array){ + env[env_curr_char] = tables[tbl_transl_block][arg[0] + 1]; + env[env_lval] = arg[1]; + } + else{ + env[env_curr_char] = tables[tbl_transl_const][arg + 1]; + env[env_lval] = 0; + } + if(caml_parser_trace) print_token(state, arg); + case 7: + n1 = tables.sindex[state]; + n2 = n1 + env[env_curr_char]; + if + (n1 != 0 && n2 >= 0 && n2 <= tables[tbl_tablesize] + && tables.check[n2] == env[env_curr_char]){cmd = shift; break;} + n1 = tables.rindex[state]; + n2 = n1 + env[env_curr_char]; + if + (n1 != 0 && n2 >= 0 && n2 <= tables[tbl_tablesize] + && tables.check[n2] == env[env_curr_char]){ + n = tables.table[n2]; + cmd = reduce; + break; + } + if(errflag <= 0){res = CALL_ERROR_FUNCTION; break exit;} + case 5: + if(errflag < 3){ + errflag = 3; + for(;;){ + state1 = env[env_s_stack][sp + 1]; + n1 = tables.sindex[state1]; + n2 = n1 + ERRCODE; + if + (n1 != 0 && n2 >= 0 && n2 <= tables[tbl_tablesize] + && tables.check[n2] == ERRCODE){ + if(caml_parser_trace) log("Recovering in state " + state1); + cmd = shift_recover; + break next; + } + else{ + if(caml_parser_trace) log("Discarding state " + state1); + if(sp <= env[env_stackbase]){ + if(caml_parser_trace) log("No more states to discard"); + return RAISE_PARSE_ERROR; + } + sp--; + } + } + } + else{ + if(env[env_curr_char] == 0) return RAISE_PARSE_ERROR; + if(caml_parser_trace) log("Discarding last token read"); + env[env_curr_char] = - 1; + cmd = loop; + break; + } + case 8: + env[env_curr_char] = - 1; if(errflag > 0) errflag--; + case 9: + if(caml_parser_trace) + log("State " + state + ": shift to state " + tables.table[n2]); + state = tables.table[n2]; + sp++; + if(sp >= env[env_stacksize]){res = GROW_STACKS_1; break exit;} + case 2: + env[env_s_stack][sp + 1] = state; + env[env_v_stack][sp + 1] = env[env_lval]; + env[env_symb_start_stack][sp + 1] = env[env_symb_start]; + env[env_symb_end_stack][sp + 1] = env[env_symb_end]; + cmd = loop; + break; + case 10: + if(caml_parser_trace) log("State " + state + ": reduce by rule " + n); + var m = tables.len[n]; + env[env_asp] = sp; + env[env_rule_number] = n; + env[env_rule_len] = m; + sp = sp - m + 1; + m = tables.lhs[n]; + state1 = env[env_s_stack][sp]; + n1 = tables.gindex[m]; + n2 = n1 + state1; + if + (n1 != 0 && n2 >= 0 && n2 <= tables[tbl_tablesize] + && tables.check[n2] == state1) + state = tables.table[n2]; else - {token = token_name(tables[tbl_names_const],tok); - log("State " + state + ": read token " + token)}} - if(! tables.dgoto) - {tables.defred = caml_lex_array(tables[tbl_defred]); - tables.sindex = caml_lex_array(tables[tbl_sindex]); - tables.check = caml_lex_array(tables[tbl_check]); - tables.rindex = caml_lex_array(tables[tbl_rindex]); - tables.table = caml_lex_array(tables[tbl_table]); - tables.len = caml_lex_array(tables[tbl_len]); - tables.lhs = caml_lex_array(tables[tbl_lhs]); - tables.gindex = caml_lex_array(tables[tbl_gindex]); - tables.dgoto = caml_lex_array(tables[tbl_dgoto])} - var - res=0, - n, - n1, - n2, - state1, - sp=env[env_sp], - state=env[env_state], - errflag=env[env_errflag]; - exit: - for(;;) - next: - switch(cmd) - {case 0:state = 0;errflag = 0; - case 6: - n = tables.defred[state]; - if(n != 0){cmd = reduce;break} - if(env[env_curr_char] >= 0){cmd = testshift;break} - res = READ_TOKEN; - break exit; - case 1: - if(arg instanceof Array) - {env[env_curr_char] = tables[tbl_transl_block][arg[0] + 1]; - env[env_lval] = arg[1]} - else - {env[env_curr_char] = tables[tbl_transl_const][arg + 1]; - env[env_lval] = 0} - if(caml_parser_trace)print_token(state,arg); - case 7: - n1 = tables.sindex[state]; - n2 = n1 + env[env_curr_char]; - if - (n1 - != - 0 - && - n2 - >= - 0 - && - n2 - <= - tables[tbl_tablesize] - && - tables.check[n2] - == - env[env_curr_char]) - {cmd = shift;break} - n1 = tables.rindex[state]; - n2 = n1 + env[env_curr_char]; - if - (n1 - != - 0 - && - n2 - >= - 0 - && - n2 - <= - tables[tbl_tablesize] - && - tables.check[n2] - == - env[env_curr_char]) - {n = tables.table[n2];cmd = reduce;break} - if(errflag <= 0){res = CALL_ERROR_FUNCTION;break exit} - case 5: - if(errflag < 3) - {errflag = 3; - for(;;) - {state1 = env[env_s_stack][sp + 1]; - n1 = tables.sindex[state1]; - n2 = n1 + ERRCODE; - if - (n1 - != - 0 - && - n2 - >= - 0 - && - n2 - <= - tables[tbl_tablesize] - && - tables.check[n2] - == - ERRCODE) - {if(caml_parser_trace)log("Recovering in state " + state1); - cmd = shift_recover; - break next} - else - {if(caml_parser_trace)log("Discarding state " + state1); - if(sp <= env[env_stackbase]) - {if(caml_parser_trace)log("No more states to discard"); - return RAISE_PARSE_ERROR} - sp--}}} - else - {if(env[env_curr_char] == 0)return RAISE_PARSE_ERROR; - if(caml_parser_trace)log("Discarding last token read"); - env[env_curr_char] = - 1; - cmd = loop; - break} - case 8:env[env_curr_char] = - 1;if(errflag > 0)errflag--; - case 9: - if(caml_parser_trace) - log("State " + state + ": shift to state " + tables.table[n2]); - state = tables.table[n2]; - sp++; - if(sp >= env[env_stacksize]){res = GROW_STACKS_1;break exit} - case 2: - env[env_s_stack][sp + 1] = state; - env[env_v_stack][sp + 1] = env[env_lval]; - env[env_symb_start_stack][sp + 1] = env[env_symb_start]; - env[env_symb_end_stack][sp + 1] = env[env_symb_end]; - cmd = loop; - break; - case 10: - if(caml_parser_trace) - log("State " + state + ": reduce by rule " + n); - var m=tables.len[n]; - env[env_asp] = sp; - env[env_rule_number] = n; - env[env_rule_len] = m; - sp = sp - m + 1; - m = tables.lhs[n]; - state1 = env[env_s_stack][sp]; - n1 = tables.gindex[m]; - n2 = n1 + state1; - if - (n1 - != - 0 - && - n2 - >= - 0 - && - n2 - <= - tables[tbl_tablesize] - && - tables.check[n2] - == - state1) - state = tables.table[n2]; - else - state = tables.dgoto[m]; - if(sp >= env[env_stacksize]){res = GROW_STACKS_2;break exit} - case 3:res = COMPUTE_SEMANTIC_ACTION;break exit; - case 4: - env[env_s_stack][sp + 1] = state; - env[env_v_stack][sp + 1] = arg; - var asp=env[env_asp]; - env[env_symb_end_stack][sp + 1] = env[env_symb_end_stack][asp + 1]; - if(sp > asp) - env[env_symb_start_stack][sp + 1] - = - env[env_symb_end_stack][asp + 1]; - cmd = loop; - break; - default:return RAISE_PARSE_ERROR} - env[env_sp] = sp; - env[env_state] = state; - env[env_errflag] = errflag; - return res} - function caml_update_dummy(x,y) - {if(typeof y === "function"){x.fun = y;return 0} - if(y.fun){x.fun = y.fun;return 0} - var i=y.length; - while(i--)x[i] = y[i]; - return 0} - function caml_array_fill(array,ofs,len,v) - {for(var i=0;i < len;i++)array[ofs + i + 1] = v;return 0} - function caml_sys_mkdir(name,perm) - {var root=resolve_fs_device(name); - root.device.mkdir(root.rest,perm); - return 0} - function caml_string_notequal(s1,s2){return 1 - caml_string_equal(s1,s2)} - function caml_bytes_greaterthan(s1,s2){return caml_bytes_lessthan(s2,s1)} - function caml_gr_make_image(arr) - {var - s=caml_gr_state_get(), - h=arr.length - 1, - w=arr[1].length - 1, - im=s.context.createImageData(w,h); - for(var i=0;i < h;i++) - for(var j=0;j < w;j++) - {var c=arr[i + 1][j + 1],o=i * (w * 4) + j * 4; - if(c == - 1) - {im.data[o + 0] = 0; - im.data[o + 1] = 0; - im.data[o + 2] = 0; - im.data[o + 3] = 0} - else - {im.data[o + 0] = c >> 16 & 0xff; - im.data[o + 1] = c >> 8 & 0xff; - im.data[o + 2] = c >> 0 & 0Xff; - im.data[o + 3] = 0xff}} - return im} - function caml_ml_set_channel_output(chanid,f) - {var chan=caml_ml_channels[chanid]; - chan.output = function(s){f(s)}; - return 0} - function caml_read_file_content(name) - {var - name=typeof name == "string"?caml_string_of_jsbytes(name):name, - root=resolve_fs_device(name); - if(root.device.exists(root.rest)) - {var - file=root.device.open(root.rest,{rdonly:1}), - len=file.length(), - buf=caml_create_bytes(len); - file.read(0,buf,0,len); - return caml_string_of_bytes(buf)} - caml_raise_no_such_file(caml_jsbytes_of_string(name))} - function caml_js_to_float(x){return x} - function caml_setup_uncaught_exception_handler() - {var process=globalThis.process; - if(process && process.on) - process.on - ("uncaughtException", - function(err,origin) - {caml_fatal_uncaught_exception(err);process.exit(2)}); - else - if(globalThis.addEventListener) - globalThis.addEventListener - ("error", - function(event) - {if(event.error)caml_fatal_uncaught_exception(event.error)})} - caml_setup_uncaught_exception_handler(); - globalThis.jsoo_runtime - = - {ml_z_normalize:ml_z_normalize, - ml_z_mul_overflows:ml_z_mul_overflows, - ml_z_init:ml_z_init, - ml_z_neg:ml_z_neg, - ml_z_add:ml_z_add, - ml_z_sub:ml_z_sub, - ml_z_mul:ml_z_mul, - ml_z_div:ml_z_div, - ml_z_cdiv:ml_z_cdiv, - ml_z_fdiv:ml_z_fdiv, - ml_z_rem:ml_z_rem, - ml_z_div_rem:ml_z_div_rem, - ml_z_succ:ml_z_succ, - ml_z_pred:ml_z_pred, - ml_z_abs:ml_z_abs, - ml_z_logand:ml_z_logand, - ml_z_logor:ml_z_logor, - ml_z_logxor:ml_z_logxor, - ml_z_lognot:ml_z_lognot, - ml_z_shift_left:ml_z_shift_left, - ml_z_shift_right:ml_z_shift_right, - ml_z_shift_right_trunc:ml_z_shift_right_trunc, - ml_z_of_int32:ml_z_of_int32, - ml_z_of_nativeint:ml_z_of_nativeint, - ml_z_of_int64:ml_z_of_int64, - ml_z_of_float:ml_z_of_float, - ml_z_to_int:ml_z_to_int, - ml_z_to_int32:ml_z_to_int32, - ml_z_to_int64:ml_z_to_int64, - ml_z_testbit:ml_z_testbit, - ml_z_to_nativeint:ml_z_to_nativeint, - ml_z_format:ml_z_format, - jsoo_z_of_js_string_base:jsoo_z_of_js_string_base, - ml_z_of_substring_base:ml_z_of_substring_base, - ml_z_compare:ml_z_compare, - ml_z_equal:ml_z_equal, - ml_z_sign:ml_z_sign, - ml_z_gcd:ml_z_gcd, - ml_z_numbits:ml_z_numbits, - ml_z_fits_int:ml_z_fits_int, - ml_z_fits_int32:ml_z_fits_int32, - ml_z_fits_int64:ml_z_fits_int64, - ml_z_fits_nativeint:ml_z_fits_nativeint, - ml_z_powm:ml_z_powm, - ml_z_pow:ml_z_pow, - ml_z_hash:ml_z_hash, - ml_z_to_bits:ml_z_to_bits, - ml_z_of_bits:ml_z_of_bits, - ml_z_powm_sec:ml_z_powm_sec, - ml_z_root:ml_z_root, - ml_z_rootrem:ml_z_rootrem, - ml_z_invert:ml_z_invert, - ml_z_perfect_power:ml_z_perfect_power, - ml_z_perfect_square:ml_z_perfect_square, - ml_z_probab_prime:ml_z_probab_prime, - ml_z_nextprime:ml_z_nextprime, - ml_z_extract:ml_z_extract, - ml_z_gcdext_intern:ml_z_gcdext_intern, - ml_z_sqrt:ml_z_sqrt, - ml_z_sqrt_rem:ml_z_sqrt_rem, - ml_z_trailing_zeros:ml_z_trailing_zeros, - ml_z_popcount:ml_z_popcount, - ml_z_hamdist:ml_z_hamdist, - ml_z_size:ml_z_size, - ml_z_divexact:ml_z_divexact, - caml_zarith_marshal:caml_zarith_marshal, - caml_zarith_unmarshal:caml_zarith_unmarshal, - ml_z_divisible:ml_z_divisible, - ml_z_congruent:ml_z_congruent, - ml_z_remove:ml_z_remove, - ml_z_fac:ml_z_fac, - ml_z_fac2:ml_z_fac2, - ml_z_facM:ml_z_facM, - ml_z_fib:ml_z_fib, - ml_z_lucnum:ml_z_lucnum, - ml_z_jacobi:ml_z_jacobi, - ml_z_legendre:ml_z_legendre, - ml_z_kronecker:ml_z_kronecker, - ml_z_primorial:ml_z_primorial, - ml_z_bin:ml_z_bin, - bigInt:bigInt, - caml_alloc_stack:caml_alloc_stack, - caml_ml_condition_new:caml_ml_condition_new, - caml_ml_condition_wait:caml_ml_condition_wait, - caml_ml_condition_broadcast:caml_ml_condition_broadcast, - caml_ml_condition_signal:caml_ml_condition_signal, - MlMutex:MlMutex, - caml_ml_mutex_new:caml_ml_mutex_new, - caml_ml_mutex_lock:caml_ml_mutex_lock, - caml_ml_mutex_try_lock:caml_ml_mutex_try_lock, - caml_ml_mutex_unlock:caml_ml_mutex_unlock, - caml_lxm_next:caml_lxm_next, - caml_domain_dls:caml_domain_dls, - caml_domain_dls_set:caml_domain_dls_set, - caml_domain_dls_get:caml_domain_dls_get, - caml_atomic_load:caml_atomic_load, - caml_atomic_cas:caml_atomic_cas, - caml_atomic_fetch_add:caml_atomic_fetch_add, - caml_atomic_exchange:caml_atomic_exchange, - caml_ml_domain_unique_token:caml_ml_domain_unique_token, - caml_ml_domain_set_name:caml_ml_domain_set_name, - caml_recommended_domain_count:caml_recommended_domain_count, - caml_domain_id:caml_domain_id, - caml_domain_spawn:caml_domain_spawn, - caml_ml_domain_id:caml_ml_domain_id, - caml_ml_domain_cpu_relax:caml_ml_domain_cpu_relax, - caml_ephe_key_offset:caml_ephe_key_offset, - caml_ephe_data_offset:caml_ephe_data_offset, - caml_ephe_set_key:caml_ephe_set_key, - caml_ephe_unset_key:caml_ephe_unset_key, - caml_ephe_create:caml_ephe_create, - caml_weak_create:caml_weak_create, - caml_weak_set:caml_weak_set, - caml_ephe_get_key:caml_ephe_get_key, - caml_ephe_get_key_copy:caml_ephe_get_key_copy, - caml_ephe_check_key:caml_ephe_check_key, - caml_ephe_blit_key:caml_ephe_blit_key, - caml_ephe_blit_data:caml_ephe_blit_data, - caml_ephe_get_data:caml_ephe_get_data, - caml_ephe_get_data_copy:caml_ephe_get_data_copy, - caml_ephe_set_data:caml_ephe_set_data, - caml_ephe_unset_data:caml_ephe_unset_data, - caml_ephe_check_data:caml_ephe_check_data, - caml_unix_gettimeofday:caml_unix_gettimeofday, - caml_unix_time:caml_unix_time, - caml_unix_gmtime:caml_unix_gmtime, - caml_unix_localtime:caml_unix_localtime, - caml_unix_mktime:caml_unix_mktime, - caml_unix_startup:caml_unix_startup, - caml_unix_cleanup:caml_unix_cleanup, - caml_unix_filedescr_of_fd:caml_unix_filedescr_of_fd, - caml_unix_isatty:caml_unix_isatty, - make_unix_err_args:make_unix_err_args, - caml_unix_stat:caml_unix_stat, - caml_unix_stat_64:caml_unix_stat_64, - caml_unix_lstat:caml_unix_lstat, - caml_unix_lstat_64:caml_unix_lstat_64, - caml_unix_mkdir:caml_unix_mkdir, - caml_unix_rmdir:caml_unix_rmdir, - caml_unix_symlink:caml_unix_symlink, - caml_unix_readlink:caml_unix_readlink, - caml_unix_unlink:caml_unix_unlink, - caml_unix_getuid:caml_unix_getuid, - caml_unix_getpwuid:caml_unix_getpwuid, - caml_unix_has_symlink:caml_unix_has_symlink, - caml_unix_opendir:caml_unix_opendir, - caml_unix_readdir:caml_unix_readdir, - caml_unix_closedir:caml_unix_closedir, - caml_unix_rewinddir:caml_unix_rewinddir, - caml_unix_findfirst:caml_unix_findfirst, - caml_unix_findnext:caml_unix_findnext, - caml_unix_findclose:caml_unix_findclose, - caml_unix_inet_addr_of_string:caml_unix_inet_addr_of_string, - re_match:re_match, - re_search_forward:re_search_forward, - re_search_backward:re_search_backward, - re_string_match:re_string_match, - re_partial_match:re_partial_match, - re_replacement_text:re_replacement_text, - caml_str_initialize:caml_str_initialize, - caml_raise_sys_error:caml_raise_sys_error, - caml_sys_exit:caml_sys_exit, - caml_is_special_exception:caml_is_special_exception, - caml_format_exception:caml_format_exception, - caml_fatal_uncaught_exception:caml_fatal_uncaught_exception, - caml_set_static_env:caml_set_static_env, - caml_sys_getenv:caml_sys_getenv, - caml_sys_unsafe_getenv:caml_sys_unsafe_getenv, - caml_argv:caml_argv, - caml_executable_name:caml_executable_name, - caml_sys_get_argv:caml_sys_get_argv, - caml_sys_argv:caml_sys_argv, - caml_sys_modify_argv:caml_sys_modify_argv, - caml_sys_executable_name:caml_sys_executable_name, - caml_sys_system_command:caml_sys_system_command, - caml_sys_time:caml_sys_time, - caml_sys_time_include_children:caml_sys_time_include_children, - caml_sys_random_seed:caml_sys_random_seed, - caml_sys_const_big_endian:caml_sys_const_big_endian, - caml_sys_const_word_size:caml_sys_const_word_size, - caml_sys_const_int_size:caml_sys_const_int_size, - caml_sys_const_max_wosize:caml_sys_const_max_wosize, - caml_sys_const_ostype_unix:caml_sys_const_ostype_unix, - caml_sys_const_ostype_win32:caml_sys_const_ostype_win32, - caml_sys_const_ostype_cygwin:caml_sys_const_ostype_cygwin, - caml_sys_const_backend_type:caml_sys_const_backend_type, - os_type:os_type, - caml_sys_get_config:caml_sys_get_config, - caml_sys_isatty:caml_sys_isatty, - caml_runtime_variant:caml_runtime_variant, - caml_runtime_parameters:caml_runtime_parameters, - caml_install_signal_handler:caml_install_signal_handler, - caml_runtime_warnings:caml_runtime_warnings, - caml_ml_enable_runtime_warnings:caml_ml_enable_runtime_warnings, - caml_ml_runtime_warnings_enabled:caml_ml_runtime_warnings_enabled, - caml_spacetime_enabled:caml_spacetime_enabled, - caml_sys_const_naked_pointers_checked: - caml_sys_const_naked_pointers_checked, - caml_register_channel_for_spacetime:caml_register_channel_for_spacetime, + state = tables.dgoto[m]; + if(sp >= env[env_stacksize]){res = GROW_STACKS_2; break exit;} + case 3: + res = COMPUTE_SEMANTIC_ACTION; break exit; + case 4: + env[env_s_stack][sp + 1] = state; + env[env_v_stack][sp + 1] = arg; + var asp = env[env_asp]; + env[env_symb_end_stack][sp + 1] = env[env_symb_end_stack][asp + 1]; + if(sp > asp) + env[env_symb_start_stack][sp + 1] = env[env_symb_end_stack][asp + 1]; + cmd = loop; + break; + default: return RAISE_PARSE_ERROR; + } + env[env_sp] = sp; + env[env_state] = state; + env[env_errflag] = errflag; + return res; + } + function caml_jsoo_flags_effects(unit){return 0;} + function caml_update_dummy(x, y){ + if(typeof y === "function"){x.fun = y; return 0;} + if(y.fun){x.fun = y.fun; return 0;} + var i = y.length; + while(i--) x[i] = y[i]; + return 0; + } + function caml_array_fill(array, ofs, len, v){ + for(var i = 0; i < len; i++) array[ofs + i + 1] = v; + return 0; + } + function caml_sys_mkdir(name, perm){ + var root = resolve_fs_device(name); + root.device.mkdir(root.rest, perm); + return 0; + } + function caml_string_notequal(s1, s2){ + return 1 - caml_string_equal(s1, s2); + } + function caml_bytes_greaterthan(s1, s2){return caml_bytes_lessthan(s2, s1); + } + function caml_gr_make_image(arr){ + var + s = caml_gr_state_get(), + h = arr.length - 1, + w = arr[1].length - 1, + im = s.context.createImageData(w, h); + for(var i = 0; i < h; i++) + for(var j = 0; j < w; j++){ + var c = arr[i + 1][j + 1], o = i * (w * 4) + j * 4; + if(c == - 1){ + im.data[o + 0] = 0; + im.data[o + 1] = 0; + im.data[o + 2] = 0; + im.data[o + 3] = 0; + } + else{ + im.data[o + 0] = c >> 16 & 0xff; + im.data[o + 1] = c >> 8 & 0xff; + im.data[o + 2] = c >> 0 & 0Xff; + im.data[o + 3] = 0xff; + } + } + return im; + } + function caml_ml_set_channel_output(chanid, f){ + var chan = caml_ml_channels[chanid]; + chan.output = function(s){f(s);}; + return 0; + } + function caml_read_file_content(name){ + var + name = typeof name == "string" ? caml_string_of_jsbytes(name) : name, + root = resolve_fs_device(name); + if(root.device.exists(root.rest)){ + var + file = root.device.open(root.rest, {rdonly: 1}), + len = file.length(), + buf = new Uint8Array(len); + file.read(0, buf, 0, len); + return caml_string_of_array(buf); + } + caml_raise_no_such_file(caml_jsbytes_of_string(name)); + } + function caml_js_to_float(x){return x;} + function caml_setup_uncaught_exception_handler(){ + var process = globalThis.process; + if(process && process.on) + process.on + ("uncaughtException", + function(err, origin){ + caml_fatal_uncaught_exception(err); + process.exit(2); + }); + else if(globalThis.addEventListener) + globalThis.addEventListener + ("error", + function(event){ + if(event.error) caml_fatal_uncaught_exception(event.error); + }); + } + caml_setup_uncaught_exception_handler(); + globalThis.jsoo_runtime = + {ml_z_bin: ml_z_bin, + ml_z_primorial: ml_z_primorial, + ml_z_kronecker: ml_z_kronecker, + ml_z_legendre: ml_z_legendre, + ml_z_jacobi: ml_z_jacobi, + ml_z_lucnum: ml_z_lucnum, + ml_z_fib: ml_z_fib, + ml_z_facM: ml_z_facM, + ml_z_fac2: ml_z_fac2, + ml_z_fac: ml_z_fac, + ml_z_remove: ml_z_remove, + ml_z_congruent: ml_z_congruent, + ml_z_divisible: ml_z_divisible, + caml_zarith_unmarshal: caml_zarith_unmarshal, + caml_zarith_marshal: caml_zarith_marshal, + ml_z_divexact: ml_z_divexact, + ml_z_size: ml_z_size, + ml_z_hamdist: ml_z_hamdist, + ml_z_popcount: ml_z_popcount, + ml_z_trailing_zeros: ml_z_trailing_zeros, + ml_z_sqrt_rem: ml_z_sqrt_rem, + ml_z_sqrt: ml_z_sqrt, + ml_z_gcdext_intern: ml_z_gcdext_intern, + ml_z_extract: ml_z_extract, + ml_z_nextprime: ml_z_nextprime, + ml_z_probab_prime: ml_z_probab_prime, + ml_z_perfect_square: ml_z_perfect_square, + ml_z_perfect_power: ml_z_perfect_power, + ml_z_invert: ml_z_invert, + ml_z_rootrem: ml_z_rootrem, + ml_z_root: ml_z_root, + ml_z_powm_sec: ml_z_powm_sec, + ml_z_of_bits: ml_z_of_bits, + ml_z_to_bits: ml_z_to_bits, + ml_z_hash: ml_z_hash, + ml_z_pow: ml_z_pow, + ml_z_powm: ml_z_powm, + ml_z_fits_nativeint: ml_z_fits_nativeint, + ml_z_fits_int64: ml_z_fits_int64, + ml_z_fits_int32: ml_z_fits_int32, + ml_z_fits_int: ml_z_fits_int, + ml_z_numbits: ml_z_numbits, + ml_z_gcd: ml_z_gcd, + ml_z_sign: ml_z_sign, + ml_z_equal: ml_z_equal, + ml_z_compare: ml_z_compare, + ml_z_of_substring_base: ml_z_of_substring_base, + jsoo_z_of_js_string_base: jsoo_z_of_js_string_base, + ml_z_format: ml_z_format, + ml_z_to_nativeint: ml_z_to_nativeint, + ml_z_testbit: ml_z_testbit, + ml_z_to_int64: ml_z_to_int64, + ml_z_to_int32: ml_z_to_int32, + ml_z_to_int: ml_z_to_int, + ml_z_of_float: ml_z_of_float, + ml_z_of_int64: ml_z_of_int64, + ml_z_of_nativeint: ml_z_of_nativeint, + ml_z_of_int32: ml_z_of_int32, + ml_z_shift_right_trunc: ml_z_shift_right_trunc, + ml_z_shift_right: ml_z_shift_right, + ml_z_shift_left: ml_z_shift_left, + ml_z_lognot: ml_z_lognot, + ml_z_logxor: ml_z_logxor, + ml_z_logor: ml_z_logor, + ml_z_logand: ml_z_logand, + ml_z_abs: ml_z_abs, + ml_z_pred: ml_z_pred, + ml_z_succ: ml_z_succ, + ml_z_div_rem: ml_z_div_rem, + ml_z_rem: ml_z_rem, + ml_z_fdiv: ml_z_fdiv, + ml_z_cdiv: ml_z_cdiv, + ml_z_div: ml_z_div, + ml_z_mul: ml_z_mul, + ml_z_sub: ml_z_sub, + ml_z_add: ml_z_add, + ml_z_neg: ml_z_neg, + ml_z_init: ml_z_init, + ml_z_mul_overflows: ml_z_mul_overflows, + ml_z_normalize: ml_z_normalize, + bigInt: bigInt, + caml_runtime_events_read_poll: caml_runtime_events_read_poll, + caml_runtime_events_free_cursor: caml_runtime_events_free_cursor, + caml_runtime_events_create_cursor: caml_runtime_events_create_cursor, + caml_runtime_events_resume: caml_runtime_events_resume, + caml_runtime_events_pause: caml_runtime_events_pause, + caml_runtime_events_start: caml_runtime_events_start, + caml_runtime_events_user_resolve: caml_runtime_events_user_resolve, + caml_runtime_events_user_write: caml_runtime_events_user_write, + caml_runtime_events_user_register: caml_runtime_events_user_register, + caml_custom_event_index: caml_custom_event_index, + zstd_decompress: zstd_decompress, + jsoo_effect_not_supported: jsoo_effect_not_supported, + caml_ml_condition_signal: caml_ml_condition_signal, + caml_ml_condition_broadcast: caml_ml_condition_broadcast, + caml_ml_condition_wait: caml_ml_condition_wait, + caml_ml_condition_new: caml_ml_condition_new, + caml_get_continuation_callstack: caml_get_continuation_callstack, + caml_continuation_use_and_update_handler_noexc: + caml_continuation_use_and_update_handler_noexc, + caml_continuation_use_noexc: caml_continuation_use_noexc, + caml_alloc_stack: caml_alloc_stack, + caml_ml_mutex_unlock: caml_ml_mutex_unlock, + caml_ml_mutex_try_lock: caml_ml_mutex_try_lock, + caml_ml_mutex_lock: caml_ml_mutex_lock, + caml_ml_mutex_new: caml_ml_mutex_new, + MlMutex: MlMutex, + caml_lxm_next: caml_lxm_next, + caml_ml_domain_cpu_relax: caml_ml_domain_cpu_relax, + caml_ml_domain_id: caml_ml_domain_id, + caml_domain_spawn: caml_domain_spawn, + caml_domain_id: caml_domain_id, + caml_recommended_domain_count: caml_recommended_domain_count, + caml_ml_domain_set_name: caml_ml_domain_set_name, + caml_ml_domain_unique_token: caml_ml_domain_unique_token, + caml_atomic_exchange: caml_atomic_exchange, + caml_atomic_fetch_add: caml_atomic_fetch_add, + caml_atomic_cas: caml_atomic_cas, + caml_atomic_load: caml_atomic_load, + caml_domain_dls_get: caml_domain_dls_get, + caml_domain_dls_set: caml_domain_dls_set, + caml_domain_dls: caml_domain_dls, + caml_ephe_check_data: caml_ephe_check_data, + caml_ephe_unset_data: caml_ephe_unset_data, + caml_ephe_set_data: caml_ephe_set_data, + caml_ephe_get_data_copy: caml_ephe_get_data_copy, + caml_ephe_get_data: caml_ephe_get_data, + caml_ephe_blit_data: caml_ephe_blit_data, + caml_ephe_blit_key: caml_ephe_blit_key, + caml_ephe_check_key: caml_ephe_check_key, + caml_ephe_get_key_copy: caml_ephe_get_key_copy, + caml_ephe_get_key: caml_ephe_get_key, + caml_weak_set: caml_weak_set, + caml_weak_create: caml_weak_create, + caml_ephe_create: caml_ephe_create, + caml_ephe_unset_key: caml_ephe_unset_key, + caml_ephe_set_key: caml_ephe_set_key, + caml_ephe_data_offset: caml_ephe_data_offset, + caml_ephe_key_offset: caml_ephe_key_offset, + caml_unix_inet_addr_of_string: caml_unix_inet_addr_of_string, + caml_unix_findclose: caml_unix_findclose, + caml_unix_findnext: caml_unix_findnext, + caml_unix_findfirst: caml_unix_findfirst, + caml_unix_rewinddir: caml_unix_rewinddir, + caml_unix_closedir: caml_unix_closedir, + caml_unix_readdir: caml_unix_readdir, + caml_unix_opendir: caml_unix_opendir, + caml_unix_has_symlink: caml_unix_has_symlink, + caml_unix_getpwuid: caml_unix_getpwuid, + caml_unix_getuid: caml_unix_getuid, + caml_unix_unlink: caml_unix_unlink, + caml_unix_readlink: caml_unix_readlink, + caml_unix_symlink: caml_unix_symlink, + caml_unix_rmdir: caml_unix_rmdir, + caml_unix_mkdir: caml_unix_mkdir, + caml_unix_lstat_64: caml_unix_lstat_64, + caml_unix_lstat: caml_unix_lstat, + caml_unix_stat_64: caml_unix_stat_64, + caml_unix_stat: caml_unix_stat, + make_unix_err_args: make_unix_err_args, + caml_unix_isatty: caml_unix_isatty, + caml_unix_filedescr_of_fd: caml_unix_filedescr_of_fd, + caml_unix_cleanup: caml_unix_cleanup, + caml_unix_startup: caml_unix_startup, + caml_unix_mktime: caml_unix_mktime, + caml_unix_localtime: caml_unix_localtime, + caml_unix_gmtime: caml_unix_gmtime, + caml_unix_time: caml_unix_time, + caml_unix_gettimeofday: caml_unix_gettimeofday, + caml_str_initialize: caml_str_initialize, + re_replacement_text: re_replacement_text, + re_partial_match: re_partial_match, + re_string_match: re_string_match, + re_search_backward: re_search_backward, + re_search_forward: re_search_forward, + re_match: re_match, + caml_sys_is_regular_file: caml_sys_is_regular_file, caml_spacetime_only_works_for_native_code: caml_spacetime_only_works_for_native_code, - caml_call_gen:caml_call_gen, - caml_named_values:caml_named_values, - caml_register_named_value:caml_register_named_value, - caml_named_value:caml_named_value, - caml_global_data:caml_global_data, - caml_register_global:caml_register_global, - caml_get_global_data:caml_get_global_data, - caml_is_printable:caml_is_printable, - caml_maybe_print_stats:caml_maybe_print_stats, - caml_parser_trace:caml_parser_trace, - caml_parse_engine:caml_parse_engine, - caml_set_parser_trace:caml_set_parser_trace, - caml_update_dummy:caml_update_dummy, - caml_obj_is_block:caml_obj_is_block, - caml_obj_tag:caml_obj_tag, - caml_obj_set_tag:caml_obj_set_tag, - caml_obj_block:caml_obj_block, - caml_obj_with_tag:caml_obj_with_tag, - caml_obj_dup:caml_obj_dup, - caml_obj_truncate:caml_obj_truncate, - caml_obj_make_forward:caml_obj_make_forward, - caml_obj_compare_and_swap:caml_obj_compare_and_swap, - caml_obj_is_shared:caml_obj_is_shared, - caml_lazy_make_forward:caml_lazy_make_forward, - caml_get_public_method:caml_get_public_method, - caml_oo_last_id:caml_oo_last_id, - caml_set_oo_id:caml_set_oo_id, - caml_fresh_oo_id:caml_fresh_oo_id, - caml_obj_raw_field:caml_obj_raw_field, - caml_obj_set_raw_field:caml_obj_set_raw_field, - caml_obj_reachable_words:caml_obj_reachable_words, - caml_obj_add_offset:caml_obj_add_offset, - caml_obj_update_tag:caml_obj_update_tag, - caml_lazy_update_to_forcing:caml_lazy_update_to_forcing, - caml_lazy_update_to_forward:caml_lazy_update_to_forward, - caml_lazy_reset_to_lazy:caml_lazy_reset_to_lazy, - caml_lazy_read_result:caml_lazy_read_result, - initialize_nat:initialize_nat, - MlNat:MlNat, - caml_hash_nat:caml_hash_nat, - nat_of_array:nat_of_array, - create_nat:create_nat, - set_to_zero_nat:set_to_zero_nat, - blit_nat:blit_nat, - set_digit_nat:set_digit_nat, - nth_digit_nat:nth_digit_nat, - set_digit_nat_native:set_digit_nat_native, - nth_digit_nat_native:nth_digit_nat_native, - num_digits_nat:num_digits_nat, - num_leading_zero_bits_in_digit:num_leading_zero_bits_in_digit, - is_digit_int:is_digit_int, - is_digit_zero:is_digit_zero, - is_digit_odd:is_digit_odd, - incr_nat:incr_nat, - add_nat:add_nat, - complement_nat:complement_nat, - decr_nat:decr_nat, - sub_nat:sub_nat, - mult_digit_nat:mult_digit_nat, - mult_nat:mult_nat, - square_nat:square_nat, - shift_left_nat:shift_left_nat, - div_helper:div_helper, - div_digit_nat:div_digit_nat, - div_nat:div_nat, - shift_right_nat:shift_right_nat, - compare_digits_nat:compare_digits_nat, - compare_nat:compare_nat, - compare_nat_real:compare_nat_real, - land_digit_nat:land_digit_nat, - lor_digit_nat:lor_digit_nat, - lxor_digit_nat:lxor_digit_nat, - serialize_nat:serialize_nat, - deserialize_nat:deserialize_nat, - caml_str_repeat:caml_str_repeat, - caml_subarray_to_jsbytes:caml_subarray_to_jsbytes, - caml_utf8_of_utf16:caml_utf8_of_utf16, - caml_utf16_of_utf8:caml_utf16_of_utf8, - jsoo_is_ascii:jsoo_is_ascii, - caml_bytes_unsafe_get:caml_bytes_unsafe_get, - caml_bytes_unsafe_set:caml_bytes_unsafe_set, - caml_string_bound_error:caml_string_bound_error, - caml_bytes_bound_error:caml_bytes_bound_error, - caml_string_get:caml_string_get, - caml_string_get16:caml_string_get16, - caml_bytes_get16:caml_bytes_get16, - caml_string_get32:caml_string_get32, - caml_bytes_get32:caml_bytes_get32, - caml_string_get64:caml_string_get64, - caml_bytes_get64:caml_bytes_get64, - caml_bytes_get:caml_bytes_get, - caml_string_set:caml_string_set, - caml_bytes_set16:caml_bytes_set16, - caml_string_set16:caml_string_set16, - caml_bytes_set32:caml_bytes_set32, - caml_string_set32:caml_string_set32, - caml_bytes_set64:caml_bytes_set64, - caml_string_set64:caml_string_set64, - caml_bytes_set:caml_bytes_set, - caml_bytes_of_utf16_jsstring:caml_bytes_of_utf16_jsstring, - MlBytes:MlBytes, - caml_convert_string_to_bytes:caml_convert_string_to_bytes, - caml_convert_bytes_to_array:caml_convert_bytes_to_array, - caml_uint8_array_of_bytes:caml_uint8_array_of_bytes, - caml_uint8_array_of_string:caml_uint8_array_of_string, - caml_create_string:caml_create_string, - caml_create_bytes:caml_create_bytes, - caml_string_of_array:caml_string_of_array, - caml_bytes_of_array:caml_bytes_of_array, - caml_bytes_compare:caml_bytes_compare, - caml_bytes_equal:caml_bytes_equal, - caml_string_notequal:caml_string_notequal, - caml_bytes_notequal:caml_bytes_notequal, - caml_bytes_lessequal:caml_bytes_lessequal, - caml_bytes_lessthan:caml_bytes_lessthan, - caml_string_greaterequal:caml_string_greaterequal, - caml_bytes_greaterequal:caml_bytes_greaterequal, - caml_string_greaterthan:caml_string_greaterthan, - caml_bytes_greaterthan:caml_bytes_greaterthan, - caml_fill_bytes:caml_fill_bytes, - caml_blit_bytes:caml_blit_bytes, - caml_blit_string:caml_blit_string, - caml_ml_bytes_length:caml_ml_bytes_length, - caml_bytes_of_jsbytes:caml_bytes_of_jsbytes, - caml_string_unsafe_get:caml_string_unsafe_get, - caml_string_unsafe_set:caml_string_unsafe_set, - caml_ml_string_length:caml_ml_string_length, - caml_string_compare:caml_string_compare, - caml_string_equal:caml_string_equal, - caml_string_lessequal:caml_string_lessequal, - caml_string_lessthan:caml_string_lessthan, - caml_string_of_bytes:caml_string_of_bytes, - caml_bytes_of_string:caml_bytes_of_string, - caml_string_of_jsbytes:caml_string_of_jsbytes, - caml_jsbytes_of_string:caml_jsbytes_of_string, - caml_jsstring_of_string:caml_jsstring_of_string, - caml_string_of_jsstring:caml_string_of_jsstring, - caml_is_ml_bytes:caml_is_ml_bytes, - caml_ml_bytes_content:caml_ml_bytes_content, - caml_is_ml_string:caml_is_ml_string, - caml_js_to_byte_string:caml_js_to_byte_string, - caml_new_string:caml_new_string, - caml_js_from_string:caml_js_from_string, - caml_to_js_string:caml_to_js_string, - caml_js_to_string:caml_js_to_string, - caml_array_of_string:caml_array_of_string, - caml_array_of_bytes:caml_array_of_bytes, - caml_md5_chan:caml_md5_chan, - caml_md5_string:caml_md5_string, - caml_MD5Transform:caml_MD5Transform, - caml_MD5Init:caml_MD5Init, - caml_MD5Update:caml_MD5Update, - caml_MD5Final:caml_MD5Final, - caml_md5_bytes:caml_md5_bytes, - caml_marshal_constants:caml_marshal_constants, - MlStringReader:MlStringReader, - BigStringReader:BigStringReader, - caml_float_of_bytes:caml_float_of_bytes, - caml_input_value_from_string:caml_input_value_from_string, - caml_input_value_from_bytes:caml_input_value_from_bytes, - caml_int64_unmarshal:caml_int64_unmarshal, - caml_int64_marshal:caml_int64_marshal, - caml_int32_unmarshal:caml_int32_unmarshal, - caml_nativeint_unmarshal:caml_nativeint_unmarshal, - caml_custom_ops:caml_custom_ops, - caml_input_value_from_reader:caml_input_value_from_reader, - caml_marshal_data_size:caml_marshal_data_size, - MlObjectTable:MlObjectTable, - caml_legacy_custom_code:caml_legacy_custom_code, - caml_output_val:caml_output_val, - caml_output_value_to_string:caml_output_value_to_string, - caml_output_value_to_bytes:caml_output_value_to_bytes, - caml_output_value_to_buffer:caml_output_value_to_buffer, - caml_lex_array:caml_lex_array, - caml_lex_engine:caml_lex_engine, - caml_new_lex_engine:caml_new_lex_engine, - caml_js_on_ie:caml_js_on_ie, - caml_js_html_escape:caml_js_html_escape, - caml_js_html_entities:caml_js_html_entities, - caml_js_get_console:caml_js_get_console, - caml_xmlhttprequest_create:caml_xmlhttprequest_create, - caml_js_error_of_exception:caml_js_error_of_exception, - caml_js_pure_expr:caml_js_pure_expr, - caml_js_set:caml_js_set, - caml_js_get:caml_js_get, - caml_js_delete:caml_js_delete, - caml_js_instanceof:caml_js_instanceof, - caml_js_typeof:caml_js_typeof, - caml_trampoline:caml_trampoline, - caml_trampoline_return:caml_trampoline_return, - caml_is_js:caml_is_js, - caml_wrap_exception:caml_wrap_exception, - caml_exn_with_js_backtrace:caml_exn_with_js_backtrace, - caml_js_error_option_of_exception:caml_js_error_option_of_exception, - caml_js_from_bool:caml_js_from_bool, - caml_js_to_bool:caml_js_to_bool, - caml_js_from_float:caml_js_from_float, - caml_js_to_float:caml_js_to_float, - caml_js_from_array:caml_js_from_array, - caml_js_to_array:caml_js_to_array, - caml_list_of_js_array:caml_list_of_js_array, - caml_list_to_js_array:caml_list_to_js_array, - caml_js_var:caml_js_var, - caml_js_call:caml_js_call, - caml_js_fun_call:caml_js_fun_call, - caml_js_meth_call:caml_js_meth_call, - caml_js_new:caml_js_new, - caml_ojs_new_arr:caml_ojs_new_arr, - caml_js_wrap_callback:caml_js_wrap_callback, - caml_js_wrap_callback_arguments:caml_js_wrap_callback_arguments, - caml_js_wrap_callback_strict:caml_js_wrap_callback_strict, - caml_js_wrap_meth_callback:caml_js_wrap_meth_callback, - caml_js_wrap_meth_callback_arguments:caml_js_wrap_meth_callback_arguments, - caml_js_wrap_meth_callback_strict:caml_js_wrap_meth_callback_strict, - caml_js_wrap_meth_callback_unsafe:caml_js_wrap_meth_callback_unsafe, - caml_js_equals:caml_js_equals, - caml_js_eval_string:caml_js_eval_string, - caml_js_expr:caml_js_expr, - caml_pure_js_expr:caml_pure_js_expr, - caml_js_object:caml_js_object, - caml_sys_fds:caml_sys_fds, - caml_sys_close:caml_sys_close, - caml_sys_open:caml_sys_open, - caml_ml_set_channel_name:caml_ml_set_channel_name, - caml_ml_channels:caml_ml_channels, - caml_ml_out_channels_list:caml_ml_out_channels_list, - caml_ml_open_descriptor_out:caml_ml_open_descriptor_out, - caml_ml_open_descriptor_in:caml_ml_open_descriptor_in, - caml_channel_descriptor:caml_channel_descriptor, - caml_ml_set_binary_mode:caml_ml_set_binary_mode, - caml_ml_close_channel:caml_ml_close_channel, - caml_ml_channel_size:caml_ml_channel_size, - caml_ml_channel_size_64:caml_ml_channel_size_64, - caml_ml_set_channel_output:caml_ml_set_channel_output, - caml_ml_set_channel_refill:caml_ml_set_channel_refill, - caml_refill:caml_refill, - caml_ml_input:caml_ml_input, - caml_ml_input_block:caml_ml_input_block, - caml_input_value:caml_input_value, - caml_input_value_to_outside_heap:caml_input_value_to_outside_heap, - caml_ml_input_char:caml_ml_input_char, - caml_ml_input_int:caml_ml_input_int, - caml_seek_in:caml_seek_in, - caml_ml_seek_in:caml_ml_seek_in, - caml_ml_seek_in_64:caml_ml_seek_in_64, - caml_pos_in:caml_pos_in, - caml_ml_pos_in:caml_ml_pos_in, - caml_ml_pos_in_64:caml_ml_pos_in_64, - caml_ml_input_scan_line:caml_ml_input_scan_line, - caml_ml_flush:caml_ml_flush, - caml_ml_output_bytes:caml_ml_output_bytes, - caml_ml_output:caml_ml_output, - caml_ml_output_char:caml_ml_output_char, - caml_output_value:caml_output_value, - caml_seek_out:caml_seek_out, - caml_ml_seek_out:caml_ml_seek_out, - caml_ml_seek_out_64:caml_ml_seek_out_64, - caml_pos_out:caml_pos_out, - caml_ml_pos_out:caml_ml_pos_out, - caml_ml_pos_out_64:caml_ml_pos_out_64, - caml_ml_output_int:caml_ml_output_int, - caml_ml_is_buffered:caml_ml_is_buffered, - caml_ml_set_buffered:caml_ml_set_buffered, - caml_format_int:caml_format_int, - caml_parse_sign_and_base:caml_parse_sign_and_base, - caml_parse_digit:caml_parse_digit, - caml_int_of_string:caml_int_of_string, - caml_mul:caml_mul, - caml_div:caml_div, - caml_mod:caml_mod, - caml_bswap16:caml_bswap16, - caml_int32_bswap:caml_int32_bswap, - caml_int64_bswap:caml_int64_bswap, - caml_int64_offset:caml_int64_offset, - MlInt64:MlInt64, - caml_int64_ult:caml_int64_ult, - caml_int64_compare:caml_int64_compare, - caml_int64_neg:caml_int64_neg, - caml_int64_add:caml_int64_add, - caml_int64_sub:caml_int64_sub, - caml_int64_mul:caml_int64_mul, - caml_int64_is_zero:caml_int64_is_zero, - caml_int64_is_negative:caml_int64_is_negative, - caml_int64_and:caml_int64_and, - caml_int64_or:caml_int64_or, - caml_int64_xor:caml_int64_xor, - caml_int64_shift_left:caml_int64_shift_left, - caml_int64_shift_right_unsigned:caml_int64_shift_right_unsigned, - caml_int64_shift_right:caml_int64_shift_right, - caml_int64_div:caml_int64_div, - caml_int64_mod:caml_int64_mod, - caml_int64_of_int32:caml_int64_of_int32, - caml_int64_to_int32:caml_int64_to_int32, - caml_int64_to_float:caml_int64_to_float, - caml_int64_of_float:caml_int64_of_float, - caml_int64_format:caml_int64_format, - caml_int64_of_string:caml_int64_of_string, - caml_int64_create_lo_mi_hi:caml_int64_create_lo_mi_hi, - caml_int64_create_lo_hi:caml_int64_create_lo_hi, - caml_int64_lo32:caml_int64_lo32, - caml_int64_hi32:caml_int64_hi32, - caml_int64_of_bytes:caml_int64_of_bytes, - caml_int64_to_bytes:caml_int64_to_bytes, - caml_int64_hash:caml_int64_hash, - jsoo_floor_log2:jsoo_floor_log2, - caml_int64_bits_of_float:caml_int64_bits_of_float, - caml_int32_bits_of_float:caml_int32_bits_of_float, - caml_hexstring_of_float:caml_hexstring_of_float, - caml_int64_float_of_bits:caml_int64_float_of_bits, - caml_nextafter_float:caml_nextafter_float, - caml_trunc_float:caml_trunc_float, - caml_int32_float_of_bits:caml_int32_float_of_bits, - caml_classify_float:caml_classify_float, - caml_modf_float:caml_modf_float, - caml_ldexp_float:caml_ldexp_float, - caml_frexp_float:caml_frexp_float, - caml_float_compare:caml_float_compare, - caml_copysign_float:caml_copysign_float, - caml_signbit_float:caml_signbit_float, - caml_expm1_float:caml_expm1_float, - caml_exp2_float:caml_exp2_float, - caml_log1p_float:caml_log1p_float, - caml_log2_float:caml_log2_float, - caml_hypot_float:caml_hypot_float, - caml_log10_float:caml_log10_float, - caml_cosh_float:caml_cosh_float, - caml_acosh_float:caml_acosh_float, - caml_sinh_float:caml_sinh_float, - caml_asinh_float:caml_asinh_float, - caml_tanh_float:caml_tanh_float, - caml_atanh_float:caml_atanh_float, - caml_round_float:caml_round_float, - caml_cbrt_float:caml_cbrt_float, - caml_erf_float:caml_erf_float, - caml_erfc_float:caml_erfc_float, - caml_fma_float:caml_fma_float, - caml_format_float:caml_format_float, - caml_float_of_string:caml_float_of_string, - caml_hash_univ_param:caml_hash_univ_param, - caml_hash_mix_int:caml_hash_mix_int, - caml_hash_mix_final:caml_hash_mix_final, - caml_hash_mix_float:caml_hash_mix_float, - caml_hash_mix_int64:caml_hash_mix_int64, - caml_hash_mix_jsbytes:caml_hash_mix_jsbytes, - caml_hash_mix_bytes_arr:caml_hash_mix_bytes_arr, - caml_hash_mix_bytes:caml_hash_mix_bytes, - caml_hash_mix_string:caml_hash_mix_string, - caml_hash:caml_hash, - caml_string_hash:caml_string_hash, - caml_gr_state:caml_gr_state, - caml_gr_state_get:caml_gr_state_get, - caml_gr_state_set:caml_gr_state_set, - caml_gr_open_graph:caml_gr_open_graph, - caml_gr_state_init:caml_gr_state_init, - caml_gr_state_create:caml_gr_state_create, - caml_gr_doc_of_state:caml_gr_doc_of_state, - caml_gr_close_graph:caml_gr_close_graph, - caml_gr_set_window_title:caml_gr_set_window_title, - caml_gr_resize_window:caml_gr_resize_window, - caml_gr_clear_graph:caml_gr_clear_graph, - caml_gr_size_x:caml_gr_size_x, - caml_gr_size_y:caml_gr_size_y, - caml_gr_set_color:caml_gr_set_color, - caml_gr_plot:caml_gr_plot, - caml_gr_point_color:caml_gr_point_color, - caml_gr_moveto:caml_gr_moveto, - caml_gr_current_x:caml_gr_current_x, - caml_gr_current_y:caml_gr_current_y, - caml_gr_lineto:caml_gr_lineto, - caml_gr_draw_rect:caml_gr_draw_rect, - caml_gr_arc_aux:caml_gr_arc_aux, - caml_gr_draw_arc:caml_gr_draw_arc, - caml_gr_set_line_width:caml_gr_set_line_width, - caml_gr_fill_rect:caml_gr_fill_rect, - caml_gr_fill_poly:caml_gr_fill_poly, - caml_gr_fill_arc:caml_gr_fill_arc, - caml_gr_draw_str:caml_gr_draw_str, - caml_gr_draw_char:caml_gr_draw_char, - caml_gr_draw_string:caml_gr_draw_string, - caml_gr_set_font:caml_gr_set_font, - caml_gr_set_text_size:caml_gr_set_text_size, - caml_gr_text_size:caml_gr_text_size, - caml_gr_make_image:caml_gr_make_image, - caml_gr_dump_image:caml_gr_dump_image, - caml_gr_draw_image:caml_gr_draw_image, - caml_gr_create_image:caml_gr_create_image, - caml_gr_blit_image:caml_gr_blit_image, - caml_gr_sigio_handler:caml_gr_sigio_handler, - caml_gr_sigio_signal:caml_gr_sigio_signal, - caml_gr_wait_event:caml_gr_wait_event, - caml_gr_synchronize:caml_gr_synchronize, - caml_gr_remember_mode:caml_gr_remember_mode, - caml_gr_display_mode:caml_gr_display_mode, - caml_gr_window_id:caml_gr_window_id, - caml_gr_open_subwindow:caml_gr_open_subwindow, - caml_gr_close_subwindow:caml_gr_close_subwindow, - caml_gc_minor:caml_gc_minor, - caml_gc_major:caml_gc_major, - caml_gc_full_major:caml_gc_full_major, - caml_gc_compaction:caml_gc_compaction, - caml_gc_counters:caml_gc_counters, - caml_gc_quick_stat:caml_gc_quick_stat, - caml_gc_stat:caml_gc_stat, - caml_gc_set:caml_gc_set, - caml_gc_get:caml_gc_get, - caml_memprof_set:caml_memprof_set, - caml_final_register:caml_final_register, + caml_register_channel_for_spacetime: caml_register_channel_for_spacetime, + caml_sys_const_naked_pointers_checked: + caml_sys_const_naked_pointers_checked, + caml_spacetime_enabled: caml_spacetime_enabled, + caml_ml_runtime_warnings_enabled: caml_ml_runtime_warnings_enabled, + caml_ml_enable_runtime_warnings: caml_ml_enable_runtime_warnings, + caml_runtime_warnings: caml_runtime_warnings, + caml_install_signal_handler: caml_install_signal_handler, + caml_runtime_parameters: caml_runtime_parameters, + caml_runtime_variant: caml_runtime_variant, + caml_sys_isatty: caml_sys_isatty, + caml_sys_get_config: caml_sys_get_config, + os_type: os_type, + caml_sys_const_backend_type: caml_sys_const_backend_type, + caml_sys_const_ostype_cygwin: caml_sys_const_ostype_cygwin, + caml_sys_const_ostype_win32: caml_sys_const_ostype_win32, + caml_sys_const_ostype_unix: caml_sys_const_ostype_unix, + caml_sys_const_max_wosize: caml_sys_const_max_wosize, + caml_sys_const_int_size: caml_sys_const_int_size, + caml_sys_const_word_size: caml_sys_const_word_size, + caml_sys_const_big_endian: caml_sys_const_big_endian, + caml_sys_random_seed: caml_sys_random_seed, + caml_sys_time_include_children: caml_sys_time_include_children, + caml_sys_time: caml_sys_time, + caml_sys_system_command: caml_sys_system_command, + caml_sys_executable_name: caml_sys_executable_name, + caml_sys_modify_argv: caml_sys_modify_argv, + caml_sys_argv: caml_sys_argv, + caml_sys_get_argv: caml_sys_get_argv, + caml_executable_name: caml_executable_name, + caml_argv: caml_argv, + caml_sys_unsafe_getenv: caml_sys_unsafe_getenv, + caml_sys_getenv: caml_sys_getenv, + jsoo_sys_getenv: jsoo_sys_getenv, + caml_set_static_env: caml_set_static_env, + caml_fatal_uncaught_exception: caml_fatal_uncaught_exception, + caml_format_exception: caml_format_exception, + caml_is_special_exception: caml_is_special_exception, + caml_sys_exit: caml_sys_exit, + caml_raise_sys_error: caml_raise_sys_error, + caml_maybe_print_stats: caml_maybe_print_stats, + caml_is_printable: caml_is_printable, + caml_get_global_data: caml_get_global_data, + caml_register_global: caml_register_global, + caml_build_symbols: caml_build_symbols, + caml_global_data: caml_global_data, + caml_named_value: caml_named_value, + caml_register_named_value: caml_register_named_value, + caml_named_values: caml_named_values, + caml_call_gen: caml_call_gen, + caml_set_parser_trace: caml_set_parser_trace, + caml_parse_engine: caml_parse_engine, + caml_parser_trace: caml_parser_trace, + caml_is_continuation_tag: caml_is_continuation_tag, + caml_lazy_read_result: caml_lazy_read_result, + caml_lazy_reset_to_lazy: caml_lazy_reset_to_lazy, + caml_lazy_update_to_forward: caml_lazy_update_to_forward, + caml_lazy_update_to_forcing: caml_lazy_update_to_forcing, + caml_obj_update_tag: caml_obj_update_tag, + caml_obj_add_offset: caml_obj_add_offset, + caml_obj_reachable_words: caml_obj_reachable_words, + caml_obj_set_raw_field: caml_obj_set_raw_field, + caml_obj_raw_field: caml_obj_raw_field, + caml_fresh_oo_id: caml_fresh_oo_id, + caml_set_oo_id: caml_set_oo_id, + caml_oo_last_id: caml_oo_last_id, + caml_get_public_method: caml_get_public_method, + caml_lazy_make_forward: caml_lazy_make_forward, + caml_obj_is_shared: caml_obj_is_shared, + caml_obj_compare_and_swap: caml_obj_compare_and_swap, + caml_obj_make_forward: caml_obj_make_forward, + caml_obj_truncate: caml_obj_truncate, + caml_obj_dup: caml_obj_dup, + caml_obj_with_tag: caml_obj_with_tag, + caml_obj_block: caml_obj_block, + caml_obj_set_tag: caml_obj_set_tag, + caml_obj_tag: caml_obj_tag, + caml_obj_is_block: caml_obj_is_block, + caml_alloc_dummy_infix: caml_alloc_dummy_infix, + caml_update_dummy: caml_update_dummy, + deserialize_nat: deserialize_nat, + serialize_nat: serialize_nat, + lxor_digit_nat: lxor_digit_nat, + lor_digit_nat: lor_digit_nat, + land_digit_nat: land_digit_nat, + compare_nat_real: compare_nat_real, + compare_nat: compare_nat, + compare_digits_nat: compare_digits_nat, + shift_right_nat: shift_right_nat, + div_nat: div_nat, + div_digit_nat: div_digit_nat, + div_helper: div_helper, + shift_left_nat: shift_left_nat, + square_nat: square_nat, + mult_nat: mult_nat, + mult_digit_nat: mult_digit_nat, + sub_nat: sub_nat, + decr_nat: decr_nat, + complement_nat: complement_nat, + add_nat: add_nat, + incr_nat: incr_nat, + is_digit_odd: is_digit_odd, + is_digit_zero: is_digit_zero, + is_digit_int: is_digit_int, + num_leading_zero_bits_in_digit: num_leading_zero_bits_in_digit, + num_digits_nat: num_digits_nat, + nth_digit_nat_native: nth_digit_nat_native, + set_digit_nat_native: set_digit_nat_native, + nth_digit_nat: nth_digit_nat, + set_digit_nat: set_digit_nat, + blit_nat: blit_nat, + set_to_zero_nat: set_to_zero_nat, + create_nat: create_nat, + nat_of_array: nat_of_array, + caml_hash_nat: caml_hash_nat, + MlNat: MlNat, + initialize_nat: initialize_nat, + caml_array_of_bytes: caml_array_of_bytes, + caml_array_of_string: caml_array_of_string, + caml_js_to_string: caml_js_to_string, + caml_to_js_string: caml_to_js_string, + caml_js_from_string: caml_js_from_string, + caml_new_string: caml_new_string, + caml_js_to_byte_string: caml_js_to_byte_string, + caml_is_ml_string: caml_is_ml_string, + caml_ml_bytes_content: caml_ml_bytes_content, + caml_is_ml_bytes: caml_is_ml_bytes, + caml_bytes_of_jsbytes: caml_bytes_of_jsbytes, + caml_string_of_jsstring: caml_string_of_jsstring, + caml_jsstring_of_string: caml_jsstring_of_string, + caml_jsbytes_of_string: caml_jsbytes_of_string, + caml_string_of_jsbytes: caml_string_of_jsbytes, + caml_bytes_of_string: caml_bytes_of_string, + caml_string_of_bytes: caml_string_of_bytes, + caml_string_lessthan: caml_string_lessthan, + caml_string_lessequal: caml_string_lessequal, + caml_string_equal: caml_string_equal, + caml_string_compare: caml_string_compare, + caml_ml_string_length: caml_ml_string_length, + caml_string_unsafe_set: caml_string_unsafe_set, + caml_string_unsafe_get: caml_string_unsafe_get, + caml_ml_bytes_length: caml_ml_bytes_length, + caml_blit_string: caml_blit_string, + caml_blit_bytes: caml_blit_bytes, + caml_fill_bytes: caml_fill_bytes, + caml_bytes_greaterthan: caml_bytes_greaterthan, + caml_string_greaterthan: caml_string_greaterthan, + caml_bytes_greaterequal: caml_bytes_greaterequal, + caml_string_greaterequal: caml_string_greaterequal, + caml_bytes_lessthan: caml_bytes_lessthan, + caml_bytes_lessequal: caml_bytes_lessequal, + caml_bytes_notequal: caml_bytes_notequal, + caml_string_notequal: caml_string_notequal, + caml_bytes_equal: caml_bytes_equal, + caml_bytes_compare: caml_bytes_compare, + caml_bytes_of_array: caml_bytes_of_array, + caml_string_of_array: caml_string_of_array, + caml_create_bytes: caml_create_bytes, + caml_create_string: caml_create_string, + caml_uint8_array_of_string: caml_uint8_array_of_string, + caml_uint8_array_of_bytes: caml_uint8_array_of_bytes, + caml_convert_bytes_to_array: caml_convert_bytes_to_array, + caml_convert_string_to_bytes: caml_convert_string_to_bytes, + MlBytes: MlBytes, + caml_bytes_of_utf16_jsstring: caml_bytes_of_utf16_jsstring, + caml_bytes_set: caml_bytes_set, + caml_string_set64: caml_string_set64, + caml_bytes_set64: caml_bytes_set64, + caml_string_set32: caml_string_set32, + caml_bytes_set32: caml_bytes_set32, + caml_string_set16: caml_string_set16, + caml_bytes_set16: caml_bytes_set16, + caml_string_set: caml_string_set, + caml_bytes_get: caml_bytes_get, + caml_bytes_get64: caml_bytes_get64, + caml_string_get64: caml_string_get64, + caml_bytes_get32: caml_bytes_get32, + caml_string_get32: caml_string_get32, + caml_bytes_get16: caml_bytes_get16, + caml_string_get16: caml_string_get16, + caml_string_get: caml_string_get, + caml_bytes_bound_error: caml_bytes_bound_error, + caml_string_bound_error: caml_string_bound_error, + caml_bytes_unsafe_set: caml_bytes_unsafe_set, + caml_bytes_unsafe_get: caml_bytes_unsafe_get, + jsoo_is_ascii: jsoo_is_ascii, + caml_utf16_of_utf8: caml_utf16_of_utf8, + caml_utf8_of_utf16: caml_utf8_of_utf16, + caml_subarray_to_jsbytes: caml_subarray_to_jsbytes, + caml_str_repeat: caml_str_repeat, + caml_md5_bytes: caml_md5_bytes, + caml_MD5Final: caml_MD5Final, + caml_MD5Update: caml_MD5Update, + caml_MD5Init: caml_MD5Init, + caml_MD5Transform: caml_MD5Transform, + caml_md5_string: caml_md5_string, + caml_md5_chan: caml_md5_chan, + caml_output_value_to_buffer: caml_output_value_to_buffer, + caml_output_value_to_bytes: caml_output_value_to_bytes, + caml_output_value_to_string: caml_output_value_to_string, + caml_output_val: caml_output_val, + MlObjectTable: MlObjectTable, + caml_marshal_data_size: caml_marshal_data_size, + caml_marshal_header_size: caml_marshal_header_size, + caml_input_value_from_reader: caml_input_value_from_reader, + caml_custom_ops: caml_custom_ops, + caml_nativeint_unmarshal: caml_nativeint_unmarshal, + caml_int32_unmarshal: caml_int32_unmarshal, + caml_int64_marshal: caml_int64_marshal, + caml_int64_unmarshal: caml_int64_unmarshal, + caml_input_value_from_bytes: caml_input_value_from_bytes, + caml_input_value_from_string: caml_input_value_from_string, + caml_float_of_bytes: caml_float_of_bytes, + BigStringReader: BigStringReader, + MlStringReader: MlStringReader, + UInt8ArrayReader: UInt8ArrayReader, + caml_marshal_constants: caml_marshal_constants, + caml_new_lex_engine: caml_new_lex_engine, + caml_lex_engine: caml_lex_engine, + caml_lex_array: caml_lex_array, + caml_js_error_of_exception: caml_js_error_of_exception, + caml_xmlhttprequest_create: caml_xmlhttprequest_create, + caml_js_get_console: caml_js_get_console, + caml_js_html_entities: caml_js_html_entities, + caml_js_html_escape: caml_js_html_escape, + caml_js_on_ie: caml_js_on_ie, + caml_js_object: caml_js_object, + caml_pure_js_expr: caml_pure_js_expr, + caml_js_expr: caml_js_expr, + caml_js_eval_string: caml_js_eval_string, + caml_js_equals: caml_js_equals, + caml_js_function_arity: caml_js_function_arity, + caml_js_wrap_meth_callback_unsafe: caml_js_wrap_meth_callback_unsafe, + caml_js_wrap_meth_callback_strict: caml_js_wrap_meth_callback_strict, + caml_js_wrap_meth_callback_arguments: + caml_js_wrap_meth_callback_arguments, + caml_js_wrap_meth_callback: caml_js_wrap_meth_callback, + caml_js_wrap_callback_unsafe: caml_js_wrap_callback_unsafe, + caml_js_wrap_callback_strict: caml_js_wrap_callback_strict, + caml_js_wrap_callback_arguments: caml_js_wrap_callback_arguments, + caml_js_wrap_callback: caml_js_wrap_callback, + caml_ojs_new_arr: caml_ojs_new_arr, + caml_js_new: caml_js_new, + caml_js_meth_call: caml_js_meth_call, + caml_js_fun_call: caml_js_fun_call, + caml_js_call: caml_js_call, + caml_js_var: caml_js_var, + caml_list_to_js_array: caml_list_to_js_array, + caml_list_of_js_array: caml_list_of_js_array, + caml_js_to_array: caml_js_to_array, + caml_js_from_array: caml_js_from_array, + caml_js_to_float: caml_js_to_float, + caml_js_from_float: caml_js_from_float, + caml_js_to_bool: caml_js_to_bool, + caml_js_from_bool: caml_js_from_bool, + caml_js_error_option_of_exception: caml_js_error_option_of_exception, + caml_exn_with_js_backtrace: caml_exn_with_js_backtrace, + caml_maybe_attach_backtrace: caml_maybe_attach_backtrace, + caml_wrap_exception: caml_wrap_exception, + caml_jsoo_flags_effects: caml_jsoo_flags_effects, + caml_jsoo_flags_use_js_string: caml_jsoo_flags_use_js_string, + caml_is_js: caml_is_js, + caml_callback: caml_callback, + caml_trampoline_return: caml_trampoline_return, + caml_trampoline: caml_trampoline, + caml_js_typeof: caml_js_typeof, + caml_js_instanceof: caml_js_instanceof, + caml_js_delete: caml_js_delete, + caml_js_get: caml_js_get, + caml_js_set: caml_js_set, + caml_js_pure_expr: caml_js_pure_expr, + caml_ml_set_buffered: caml_ml_set_buffered, + caml_ml_is_buffered: caml_ml_is_buffered, + caml_ml_output_int: caml_ml_output_int, + caml_ml_pos_out_64: caml_ml_pos_out_64, + caml_ml_pos_out: caml_ml_pos_out, + caml_pos_out: caml_pos_out, + caml_ml_seek_out_64: caml_ml_seek_out_64, + caml_ml_seek_out: caml_ml_seek_out, + caml_seek_out: caml_seek_out, + caml_output_value: caml_output_value, + caml_ml_output_char: caml_ml_output_char, + caml_ml_output: caml_ml_output, + caml_ml_output_bytes: caml_ml_output_bytes, + caml_ml_flush: caml_ml_flush, + caml_ml_input_scan_line: caml_ml_input_scan_line, + caml_ml_pos_in_64: caml_ml_pos_in_64, + caml_ml_pos_in: caml_ml_pos_in, + caml_pos_in: caml_pos_in, + caml_ml_seek_in_64: caml_ml_seek_in_64, + caml_ml_seek_in: caml_ml_seek_in, + caml_seek_in: caml_seek_in, + caml_ml_input_int: caml_ml_input_int, + caml_ml_input_char: caml_ml_input_char, + caml_input_value_to_outside_heap: caml_input_value_to_outside_heap, + caml_input_value: caml_input_value, + caml_ml_input_block: caml_ml_input_block, + caml_ml_input: caml_ml_input, + caml_refill: caml_refill, + caml_ml_set_channel_refill: caml_ml_set_channel_refill, + caml_ml_set_channel_output: caml_ml_set_channel_output, + caml_ml_channel_size_64: caml_ml_channel_size_64, + caml_ml_channel_size: caml_ml_channel_size, + caml_ml_close_channel: caml_ml_close_channel, + caml_ml_set_binary_mode: caml_ml_set_binary_mode, + caml_channel_descriptor: caml_channel_descriptor, + caml_ml_open_descriptor_in: caml_ml_open_descriptor_in, + caml_ml_open_descriptor_out: caml_ml_open_descriptor_out, + caml_ml_out_channels_list: caml_ml_out_channels_list, + caml_ml_channels: caml_ml_channels, + caml_ml_set_channel_name: caml_ml_set_channel_name, + caml_sys_open: caml_sys_open, + caml_sys_close: caml_sys_close, + caml_sys_fds: caml_sys_fds, + caml_int64_bswap: caml_int64_bswap, + caml_int32_bswap: caml_int32_bswap, + caml_bswap16: caml_bswap16, + caml_mod: caml_mod, + caml_div: caml_div, + caml_mul: caml_mul, + caml_int_of_string: caml_int_of_string, + caml_parse_digit: caml_parse_digit, + caml_parse_sign_and_base: caml_parse_sign_and_base, + caml_format_int: caml_format_int, + caml_int64_hash: caml_int64_hash, + caml_int64_to_bytes: caml_int64_to_bytes, + caml_int64_of_bytes: caml_int64_of_bytes, + caml_int64_hi32: caml_int64_hi32, + caml_int64_lo32: caml_int64_lo32, + caml_int64_create_lo_hi: caml_int64_create_lo_hi, + caml_int64_create_lo_mi_hi: caml_int64_create_lo_mi_hi, + caml_int64_of_string: caml_int64_of_string, + caml_int64_format: caml_int64_format, + caml_int64_of_float: caml_int64_of_float, + caml_int64_to_float: caml_int64_to_float, + caml_int64_to_int32: caml_int64_to_int32, + caml_int64_of_int32: caml_int64_of_int32, + caml_int64_mod: caml_int64_mod, + caml_int64_div: caml_int64_div, + caml_int64_shift_right: caml_int64_shift_right, + caml_int64_shift_right_unsigned: caml_int64_shift_right_unsigned, + caml_int64_shift_left: caml_int64_shift_left, + caml_int64_xor: caml_int64_xor, + caml_int64_or: caml_int64_or, + caml_int64_and: caml_int64_and, + caml_int64_is_negative: caml_int64_is_negative, + caml_int64_is_zero: caml_int64_is_zero, + caml_int64_mul: caml_int64_mul, + caml_int64_sub: caml_int64_sub, + caml_int64_add: caml_int64_add, + caml_int64_neg: caml_int64_neg, + caml_int64_compare: caml_int64_compare, + caml_int64_ult: caml_int64_ult, + MlInt64: MlInt64, + caml_int64_offset: caml_int64_offset, + caml_float_of_string: caml_float_of_string, + caml_format_float: caml_format_float, + caml_fma_float: caml_fma_float, + caml_erfc_float: caml_erfc_float, + caml_erf_float: caml_erf_float, + caml_cbrt_float: caml_cbrt_float, + caml_round_float: caml_round_float, + caml_atanh_float: caml_atanh_float, + caml_tanh_float: caml_tanh_float, + caml_asinh_float: caml_asinh_float, + caml_sinh_float: caml_sinh_float, + caml_acosh_float: caml_acosh_float, + caml_cosh_float: caml_cosh_float, + caml_log10_float: caml_log10_float, + caml_hypot_float: caml_hypot_float, + caml_log2_float: caml_log2_float, + caml_log1p_float: caml_log1p_float, + caml_exp2_float: caml_exp2_float, + caml_expm1_float: caml_expm1_float, + caml_signbit_float: caml_signbit_float, + caml_copysign_float: caml_copysign_float, + caml_float_compare: caml_float_compare, + caml_frexp_float: caml_frexp_float, + caml_ldexp_float: caml_ldexp_float, + caml_modf_float: caml_modf_float, + caml_classify_float: caml_classify_float, + caml_int32_float_of_bits: caml_int32_float_of_bits, + caml_trunc_float: caml_trunc_float, + caml_nextafter_float: caml_nextafter_float, + caml_int64_float_of_bits: caml_int64_float_of_bits, + caml_hexstring_of_float: caml_hexstring_of_float, + caml_int32_bits_of_float: caml_int32_bits_of_float, + caml_int64_bits_of_float: caml_int64_bits_of_float, + jsoo_floor_log2: jsoo_floor_log2, + caml_string_hash: caml_string_hash, + caml_hash: caml_hash, + caml_hash_mix_string: caml_hash_mix_string, + caml_hash_mix_bytes: caml_hash_mix_bytes, + caml_hash_mix_bytes_arr: caml_hash_mix_bytes_arr, + caml_hash_mix_jsbytes: caml_hash_mix_jsbytes, + caml_hash_mix_int64: caml_hash_mix_int64, + caml_hash_mix_float: caml_hash_mix_float, + caml_hash_mix_final: caml_hash_mix_final, + caml_hash_mix_int: caml_hash_mix_int, + caml_gr_close_subwindow: caml_gr_close_subwindow, + caml_gr_open_subwindow: caml_gr_open_subwindow, + caml_gr_window_id: caml_gr_window_id, + caml_gr_display_mode: caml_gr_display_mode, + caml_gr_remember_mode: caml_gr_remember_mode, + caml_gr_synchronize: caml_gr_synchronize, + caml_gr_wait_event: caml_gr_wait_event, + caml_gr_sigio_signal: caml_gr_sigio_signal, + caml_gr_sigio_handler: caml_gr_sigio_handler, + caml_gr_blit_image: caml_gr_blit_image, + caml_gr_create_image: caml_gr_create_image, + caml_gr_draw_image: caml_gr_draw_image, + caml_gr_dump_image: caml_gr_dump_image, + caml_gr_make_image: caml_gr_make_image, + caml_gr_text_size: caml_gr_text_size, + caml_gr_set_text_size: caml_gr_set_text_size, + caml_gr_set_font: caml_gr_set_font, + caml_gr_draw_string: caml_gr_draw_string, + caml_gr_draw_char: caml_gr_draw_char, + caml_gr_draw_str: caml_gr_draw_str, + caml_gr_fill_arc: caml_gr_fill_arc, + caml_gr_fill_poly: caml_gr_fill_poly, + caml_gr_fill_rect: caml_gr_fill_rect, + caml_gr_set_line_width: caml_gr_set_line_width, + caml_gr_draw_arc: caml_gr_draw_arc, + caml_gr_arc_aux: caml_gr_arc_aux, + caml_gr_draw_rect: caml_gr_draw_rect, + caml_gr_lineto: caml_gr_lineto, + caml_gr_current_y: caml_gr_current_y, + caml_gr_current_x: caml_gr_current_x, + caml_gr_moveto: caml_gr_moveto, + caml_gr_point_color: caml_gr_point_color, + caml_gr_plot: caml_gr_plot, + caml_gr_set_color: caml_gr_set_color, + caml_gr_size_y: caml_gr_size_y, + caml_gr_size_x: caml_gr_size_x, + caml_gr_clear_graph: caml_gr_clear_graph, + caml_gr_resize_window: caml_gr_resize_window, + caml_gr_set_window_title: caml_gr_set_window_title, + caml_gr_close_graph: caml_gr_close_graph, + caml_gr_doc_of_state: caml_gr_doc_of_state, + caml_gr_state_create: caml_gr_state_create, + caml_gr_state_init: caml_gr_state_init, + caml_gr_open_graph: caml_gr_open_graph, + caml_gr_state_set: caml_gr_state_set, + caml_gr_state_get: caml_gr_state_get, + caml_gr_state: caml_gr_state, + caml_get_major_credit: caml_get_major_credit, + caml_get_major_bucket: caml_get_major_bucket, + caml_get_minor_free: caml_get_minor_free, + caml_gc_minor_words: caml_gc_minor_words, + caml_gc_major_slice: caml_gc_major_slice, + caml_gc_huge_fallback_count: caml_gc_huge_fallback_count, + caml_eventlog_pause: caml_eventlog_pause, + caml_eventlog_resume: caml_eventlog_resume, + caml_memprof_stop: caml_memprof_stop, + caml_memprof_start: caml_memprof_start, + caml_final_release: caml_final_release, caml_final_register_called_without_value: caml_final_register_called_without_value, - caml_final_release:caml_final_release, - caml_memprof_start:caml_memprof_start, - caml_memprof_stop:caml_memprof_stop, - caml_eventlog_resume:caml_eventlog_resume, - caml_eventlog_pause:caml_eventlog_pause, - caml_gc_huge_fallback_count:caml_gc_huge_fallback_count, - caml_gc_major_slice:caml_gc_major_slice, - caml_gc_minor_words:caml_gc_minor_words, - caml_get_minor_free:caml_get_minor_free, - caml_get_major_bucket:caml_get_major_bucket, - caml_get_major_credit:caml_get_major_credit, - fs_node_supported:fs_node_supported, - MlNodeDevice:MlNodeDevice, - MlNodeFd:MlNodeFd, - caml_sys_open_for_node:caml_sys_open_for_node, - MlFakeDevice:MlFakeDevice, - MlFakeFile:MlFakeFile, - MlFakeFd_out:MlFakeFd_out, - MlFakeFd:MlFakeFd, - caml_trailing_slash:caml_trailing_slash, - caml_current_dir:caml_current_dir, - caml_get_root:caml_get_root, - caml_root:caml_root, - MlFile:MlFile, - path_is_absolute:path_is_absolute, - caml_make_path:caml_make_path, - jsoo_mount_point:jsoo_mount_point, - caml_list_mount_point:caml_list_mount_point, - resolve_fs_device:resolve_fs_device, - caml_mount_autoload:caml_mount_autoload, - caml_unmount:caml_unmount, - caml_sys_getcwd:caml_sys_getcwd, - caml_sys_chdir:caml_sys_chdir, - caml_raise_no_such_file:caml_raise_no_such_file, - caml_raise_not_a_dir:caml_raise_not_a_dir, - caml_sys_file_exists:caml_sys_file_exists, - caml_sys_read_directory:caml_sys_read_directory, - caml_sys_remove:caml_sys_remove, - caml_sys_is_directory:caml_sys_is_directory, - caml_sys_rename:caml_sys_rename, - caml_sys_mkdir:caml_sys_mkdir, - caml_sys_rmdir:caml_sys_rmdir, - caml_ba_map_file:caml_ba_map_file, - caml_ba_map_file_bytecode:caml_ba_map_file_bytecode, - jsoo_create_file_extern:jsoo_create_file_extern, - caml_fs_init:caml_fs_init, - caml_create_file:caml_create_file, - jsoo_create_file:jsoo_create_file, - caml_read_file_content:caml_read_file_content, - caml_parse_format:caml_parse_format, - caml_finish_formatting:caml_finish_formatting, - caml_raise_constant:caml_raise_constant, - caml_return_exn_constant:caml_return_exn_constant, - caml_raise_with_arg:caml_raise_with_arg, - caml_raise_with_args:caml_raise_with_args, - caml_raise_with_string:caml_raise_with_string, - caml_failwith:caml_failwith, - caml_invalid_argument:caml_invalid_argument, - caml_raise_end_of_file:caml_raise_end_of_file, - caml_raise_zero_divide:caml_raise_zero_divide, - caml_raise_not_found:caml_raise_not_found, - caml_array_bound_error:caml_array_bound_error, - caml_compare_val_tag:caml_compare_val_tag, - caml_compare_val_get_custom:caml_compare_val_get_custom, - caml_compare_val_number_custom:caml_compare_val_number_custom, - caml_compare_val:caml_compare_val, - caml_compare:caml_compare, - caml_int_compare:caml_int_compare, - caml_equal:caml_equal, - caml_notequal:caml_notequal, - caml_greaterequal:caml_greaterequal, - caml_greaterthan:caml_greaterthan, - caml_lessequal:caml_lessequal, - caml_lessthan:caml_lessthan, - caml_blit_bigstring_to_bigstring:caml_blit_bigstring_to_bigstring, - caml_blit_bigstring_to_string:caml_blit_bigstring_to_string, - caml_blit_string_to_bigstring:caml_blit_string_to_bigstring, - caml_hash_mix_bigstring:caml_hash_mix_bigstring, - bigstring_to_array_buffer:bigstring_to_array_buffer, - bigstring_to_typed_array:bigstring_to_typed_array, - bigstring_of_array_buffer:bigstring_of_array_buffer, - bigstring_of_typed_array:bigstring_of_typed_array, - caml_bigstring_memcmp:caml_bigstring_memcmp, - caml_bigstring_blit_ba_to_ba:caml_bigstring_blit_ba_to_ba, - caml_bigstring_blit_string_to_ba:caml_bigstring_blit_string_to_ba, - caml_bigstring_blit_bytes_to_ba:caml_bigstring_blit_bytes_to_ba, - caml_bigstring_blit_ba_to_bytes:caml_bigstring_blit_ba_to_bytes, - caml_ba_init:caml_ba_init, - caml_ba_get_size:caml_ba_get_size, - caml_ba_get_size_per_element:caml_ba_get_size_per_element, - caml_ba_create_buffer:caml_ba_create_buffer, - caml_ba_custom_name:caml_ba_custom_name, - Ml_Bigarray:Ml_Bigarray, - Ml_Bigarray_c_1_1:Ml_Bigarray_c_1_1, - caml_ba_compare:caml_ba_compare, - caml_ba_create_unsafe:caml_ba_create_unsafe, - caml_ba_create:caml_ba_create, - caml_ba_change_layout:caml_ba_change_layout, - caml_ba_kind:caml_ba_kind, - caml_ba_layout:caml_ba_layout, - caml_ba_num_dims:caml_ba_num_dims, - caml_ba_dim:caml_ba_dim, - caml_ba_dim_1:caml_ba_dim_1, - caml_ba_dim_2:caml_ba_dim_2, - caml_ba_dim_3:caml_ba_dim_3, - caml_ba_get_generic:caml_ba_get_generic, - caml_ba_uint8_get16:caml_ba_uint8_get16, - caml_ba_uint8_get32:caml_ba_uint8_get32, - caml_ba_uint8_get64:caml_ba_uint8_get64, - caml_ba_get_1:caml_ba_get_1, - caml_ba_get_2:caml_ba_get_2, - caml_ba_get_3:caml_ba_get_3, - caml_ba_set_generic:caml_ba_set_generic, - caml_ba_uint8_set16:caml_ba_uint8_set16, - caml_ba_uint8_set32:caml_ba_uint8_set32, - caml_ba_uint8_set64:caml_ba_uint8_set64, - caml_ba_set_1:caml_ba_set_1, - caml_ba_set_2:caml_ba_set_2, - caml_ba_set_3:caml_ba_set_3, - caml_ba_fill:caml_ba_fill, - caml_ba_blit:caml_ba_blit, - caml_ba_sub:caml_ba_sub, - caml_ba_slice:caml_ba_slice, - caml_ba_reshape:caml_ba_reshape, - caml_ba_serialize:caml_ba_serialize, - caml_ba_deserialize:caml_ba_deserialize, - caml_ba_create_from:caml_ba_create_from, - caml_ba_hash:caml_ba_hash, - caml_ba_to_typed_array:caml_ba_to_typed_array, - caml_ba_kind_of_typed_array:caml_ba_kind_of_typed_array, - caml_ba_from_typed_array:caml_ba_from_typed_array, - caml_ml_debug_info_status:caml_ml_debug_info_status, - caml_backtrace_status:caml_backtrace_status, - caml_get_exception_backtrace:caml_get_exception_backtrace, - caml_get_exception_raw_backtrace:caml_get_exception_raw_backtrace, - caml_record_backtrace:caml_record_backtrace, - caml_convert_raw_backtrace:caml_convert_raw_backtrace, - caml_raw_backtrace_length:caml_raw_backtrace_length, - caml_raw_backtrace_next_slot:caml_raw_backtrace_next_slot, - caml_raw_backtrace_slot:caml_raw_backtrace_slot, - caml_restore_raw_backtrace:caml_restore_raw_backtrace, - caml_get_current_callstack:caml_get_current_callstack, - caml_convert_raw_backtrace_slot:caml_convert_raw_backtrace_slot, - caml_array_sub:caml_array_sub, - caml_array_append:caml_array_append, - caml_array_concat:caml_array_concat, - caml_array_blit:caml_array_blit, - caml_floatarray_blit:caml_floatarray_blit, - caml_array_set:caml_array_set, - caml_array_get:caml_array_get, - caml_array_fill:caml_array_fill, - caml_check_bound:caml_check_bound, - caml_make_vect:caml_make_vect, - caml_make_float_vect:caml_make_float_vect, - caml_floatarray_create:caml_floatarray_create}; - caml_fs_init(); - caml_register_global - (0,[248,caml_string_of_jsbytes("Out_of_memory"),-1],"Out_of_memory"); - caml_register_global - (1,[248,caml_string_of_jsbytes("Sys_error"),-2],"Sys_error"); - caml_register_global - (2,[248,caml_string_of_jsbytes("Failure"),-3],"Failure"); - caml_register_global - (3, - [248,caml_string_of_jsbytes("Invalid_argument"),-4], - "Invalid_argument"); - caml_register_global - (4,[248,caml_string_of_jsbytes("End_of_file"),-5],"End_of_file"); - caml_register_global - (5, - [248,caml_string_of_jsbytes("Division_by_zero"),-6], - "Division_by_zero"); - caml_register_global - (6,[248,caml_string_of_jsbytes("Not_found"),-7],"Not_found"); - caml_register_global - (7,[248,caml_string_of_jsbytes("Match_failure"),-8],"Match_failure"); - caml_register_global - (8,[248,caml_string_of_jsbytes("Stack_overflow"),-9],"Stack_overflow"); - caml_register_global - (9,[248,caml_string_of_jsbytes("Sys_blocked_io"),-10],"Sys_blocked_io"); - caml_register_global - (10,[248,caml_string_of_jsbytes("Assert_failure"),-11],"Assert_failure"); - caml_register_global - (11, - [248,caml_string_of_jsbytes("Undefined_recursive_module"),-12], - "Undefined_recursive_module"); - return} + caml_final_register: caml_final_register, + caml_memprof_set: caml_memprof_set, + caml_gc_get: caml_gc_get, + caml_gc_set: caml_gc_set, + caml_gc_stat: caml_gc_stat, + caml_gc_quick_stat: caml_gc_quick_stat, + caml_gc_counters: caml_gc_counters, + caml_gc_compaction: caml_gc_compaction, + caml_gc_full_major: caml_gc_full_major, + caml_gc_major: caml_gc_major, + caml_gc_minor: caml_gc_minor, + caml_sys_open_for_node: caml_sys_open_for_node, + MlNodeFd: MlNodeFd, + MlNodeDevice: MlNodeDevice, + fs_node_supported: fs_node_supported, + MlFakeFd: MlFakeFd, + MlFakeFd_out: MlFakeFd_out, + MlFakeFile: MlFakeFile, + MlFakeDevice: MlFakeDevice, + caml_read_file_content: caml_read_file_content, + jsoo_create_file: jsoo_create_file, + caml_create_file: caml_create_file, + caml_fs_init: caml_fs_init, + jsoo_create_file_extern: jsoo_create_file_extern, + caml_ba_map_file_bytecode: caml_ba_map_file_bytecode, + caml_ba_map_file: caml_ba_map_file, + caml_sys_rmdir: caml_sys_rmdir, + caml_sys_mkdir: caml_sys_mkdir, + caml_sys_rename: caml_sys_rename, + caml_sys_is_directory: caml_sys_is_directory, + caml_sys_remove: caml_sys_remove, + caml_sys_read_directory: caml_sys_read_directory, + caml_sys_file_exists: caml_sys_file_exists, + caml_raise_not_a_dir: caml_raise_not_a_dir, + caml_raise_no_such_file: caml_raise_no_such_file, + caml_sys_chdir: caml_sys_chdir, + caml_sys_getcwd: caml_sys_getcwd, + caml_unmount: caml_unmount, + caml_mount_autoload: caml_mount_autoload, + resolve_fs_device: resolve_fs_device, + caml_list_mount_point: caml_list_mount_point, + jsoo_mount_point: jsoo_mount_point, + caml_make_path: caml_make_path, + path_is_absolute: path_is_absolute, + MlFile: MlFile, + caml_root: caml_root, + caml_get_root: caml_get_root, + caml_current_dir: caml_current_dir, + caml_trailing_slash: caml_trailing_slash, + caml_finish_formatting: caml_finish_formatting, + caml_parse_format: caml_parse_format, + caml_array_bound_error: caml_array_bound_error, + caml_raise_not_found: caml_raise_not_found, + caml_raise_zero_divide: caml_raise_zero_divide, + caml_raise_end_of_file: caml_raise_end_of_file, + caml_invalid_argument: caml_invalid_argument, + caml_failwith: caml_failwith, + caml_raise_with_string: caml_raise_with_string, + caml_raise_with_args: caml_raise_with_args, + caml_raise_with_arg: caml_raise_with_arg, + caml_raise_constant: caml_raise_constant, + caml_lessthan: caml_lessthan, + caml_lessequal: caml_lessequal, + caml_greaterthan: caml_greaterthan, + caml_greaterequal: caml_greaterequal, + caml_notequal: caml_notequal, + caml_equal: caml_equal, + caml_int_compare: caml_int_compare, + caml_compare: caml_compare, + caml_compare_val: caml_compare_val, + caml_compare_val_number_custom: caml_compare_val_number_custom, + caml_compare_val_get_custom: caml_compare_val_get_custom, + caml_compare_val_tag: caml_compare_val_tag, + caml_bigstring_blit_ba_to_bytes: caml_bigstring_blit_ba_to_bytes, + caml_bigstring_blit_bytes_to_ba: caml_bigstring_blit_bytes_to_ba, + caml_bigstring_blit_string_to_ba: caml_bigstring_blit_string_to_ba, + caml_bigstring_blit_ba_to_ba: caml_bigstring_blit_ba_to_ba, + caml_bigstring_memcmp: caml_bigstring_memcmp, + bigstring_of_typed_array: bigstring_of_typed_array, + bigstring_of_array_buffer: bigstring_of_array_buffer, + bigstring_to_typed_array: bigstring_to_typed_array, + bigstring_to_array_buffer: bigstring_to_array_buffer, + caml_hash_mix_bigstring: caml_hash_mix_bigstring, + caml_ba_from_typed_array: caml_ba_from_typed_array, + caml_ba_kind_of_typed_array: caml_ba_kind_of_typed_array, + caml_ba_to_typed_array: caml_ba_to_typed_array, + caml_ba_hash: caml_ba_hash, + caml_ba_create_from: caml_ba_create_from, + caml_ba_deserialize: caml_ba_deserialize, + caml_ba_serialize: caml_ba_serialize, + caml_ba_reshape: caml_ba_reshape, + caml_ba_slice: caml_ba_slice, + caml_ba_sub: caml_ba_sub, + caml_ba_blit: caml_ba_blit, + caml_ba_fill: caml_ba_fill, + caml_ba_set_3: caml_ba_set_3, + caml_ba_set_2: caml_ba_set_2, + caml_ba_set_1: caml_ba_set_1, + caml_ba_uint8_set64: caml_ba_uint8_set64, + caml_ba_uint8_set32: caml_ba_uint8_set32, + caml_ba_uint8_set16: caml_ba_uint8_set16, + caml_ba_set_generic: caml_ba_set_generic, + caml_ba_get_3: caml_ba_get_3, + caml_ba_get_2: caml_ba_get_2, + caml_ba_get_1: caml_ba_get_1, + caml_ba_uint8_get64: caml_ba_uint8_get64, + caml_ba_uint8_get32: caml_ba_uint8_get32, + caml_ba_uint8_get16: caml_ba_uint8_get16, + caml_ba_get_generic: caml_ba_get_generic, + caml_ba_dim_3: caml_ba_dim_3, + caml_ba_dim_2: caml_ba_dim_2, + caml_ba_dim_1: caml_ba_dim_1, + caml_ba_dim: caml_ba_dim, + caml_ba_num_dims: caml_ba_num_dims, + caml_ba_layout: caml_ba_layout, + caml_ba_kind: caml_ba_kind, + caml_ba_change_layout: caml_ba_change_layout, + caml_ba_create: caml_ba_create, + caml_ba_create_unsafe: caml_ba_create_unsafe, + caml_ba_compare: caml_ba_compare, + Ml_Bigarray_c_1_1: Ml_Bigarray_c_1_1, + Ml_Bigarray: Ml_Bigarray, + caml_ba_custom_name: caml_ba_custom_name, + caml_ba_create_buffer: caml_ba_create_buffer, + caml_ba_get_size_per_element: caml_ba_get_size_per_element, + caml_ba_get_size: caml_ba_get_size, + caml_ba_init: caml_ba_init, + caml_convert_raw_backtrace_slot: caml_convert_raw_backtrace_slot, + caml_get_current_callstack: caml_get_current_callstack, + caml_restore_raw_backtrace: caml_restore_raw_backtrace, + caml_raw_backtrace_slot: caml_raw_backtrace_slot, + caml_raw_backtrace_next_slot: caml_raw_backtrace_next_slot, + caml_raw_backtrace_length: caml_raw_backtrace_length, + caml_convert_raw_backtrace: caml_convert_raw_backtrace, + caml_record_backtrace: caml_record_backtrace, + caml_get_exception_raw_backtrace: caml_get_exception_raw_backtrace, + caml_get_exception_backtrace: caml_get_exception_backtrace, + caml_backtrace_status: caml_backtrace_status, + caml_ml_debug_info_status: caml_ml_debug_info_status, + caml_record_backtrace_flag: caml_record_backtrace_flag, + caml_floatarray_create: caml_floatarray_create, + caml_make_float_vect: caml_make_float_vect, + caml_make_vect: caml_make_vect, + caml_check_bound: caml_check_bound, + caml_array_fill: caml_array_fill, + caml_array_get: caml_array_get, + caml_array_set: caml_array_set, + caml_floatarray_blit: caml_floatarray_blit, + caml_array_blit: caml_array_blit, + caml_array_concat: caml_array_concat, + caml_array_append: caml_array_append, + caml_array_sub: caml_array_sub}; + var + cst_Assert_failure = "Assert_failure", + cst_Division_by_zero = "Division_by_zero", + cst_End_of_file = "End_of_file", + cst_Failure = "Failure", + cst_Invalid_argument = "Invalid_argument", + cst_Match_failure = "Match_failure", + cst_Not_found = "Not_found", + cst_Out_of_memory = "Out_of_memory", + cst_Stack_overflow = "Stack_overflow", + cst_Sys_blocked_io = "Sys_blocked_io", + cst_Sys_error = "Sys_error", + cst_Undefined_recursive_module = "Undefined_recursive_module"; + caml_fs_init(); + caml_register_global(0, [248, cst_Out_of_memory, -1], cst_Out_of_memory); + caml_register_global(1, [248, cst_Sys_error, -2], cst_Sys_error); + caml_register_global(2, [248, cst_Failure, -3], cst_Failure); + caml_register_global + (3, [248, cst_Invalid_argument, -4], cst_Invalid_argument); + caml_register_global(4, [248, cst_End_of_file, -5], cst_End_of_file); + caml_register_global + (5, [248, cst_Division_by_zero, -6], cst_Division_by_zero); + caml_register_global(6, [248, cst_Not_found, -7], cst_Not_found); + caml_register_global(7, [248, cst_Match_failure, -8], cst_Match_failure); + caml_register_global(8, [248, cst_Stack_overflow, -9], cst_Stack_overflow); + caml_register_global(9, [248, cst_Sys_blocked_io, -10], cst_Sys_blocked_io); + caml_register_global + (10, [248, cst_Assert_failure, -11], cst_Assert_failure); + caml_register_global + (11, + [248, cst_Undefined_recursive_module, -12], + cst_Undefined_recursive_module); + return; + } (globalThis)); -//# 1 "../../.js/stdlib/stdlib.cma.js" -(function(globalThis) - {"use strict"; +(function(a){"use strict";var +aw=118,bX="Js_of_ocaml__EventSource",au="Js_of_ocaml__File",av="Law_source__Aides_logement",at="Stdlib__Fun",bW="Stdlib__Seq",aq="Stdlib__Weak",ar="Dune__exe__Api_web",as="Dates_calc__Dates",bV="Js_of_ocaml__Url",ap=132,ao="Zarith_version",bU="Stdlib__BytesLabels",an="Stdlib__ArrayLabels",bT=115,am="Stdlib__Buffer",ak="Runtime_jsoo__Runtime",al="Js_of_ocaml__ResizeObserver",aj="Stdlib__Out_channel",bR="Stdlib__Printf",bS=105,bO=102,bP="CamlinternalLazy",bQ="Js_of_ocaml__Dom_svg",bN="Stdlib__String",bM="Stdlib__Result",ah="Stdlib__Either",ai=129,bL="Js_of_ocaml__Import",ag="Stdlib__Sys",bK="Stdlib__Random",bJ=116,bI=126,bG="Stdlib__Oo",bH="Failure",bF=121,af="Ppx_yojson_conv_lib__Yojsonable_intf",bE="Stdlib__Pervasives",bD="CamlinternalOO",bC="Stdlib__Array",bA="Ppx_yojson_conv_lib",bB="Stdlib__Genlex",ae="Js_of_ocaml__Dom",bz=111,ac="Big_int_Z",ad="Not_found",ab="Js_of_ocaml__PerformanceObserver",by="Stdlib__Lazy",bw="Stdlib__Map",bx="Stdlib__Char",aa="Stdlib__Digest",$="Stdlib__Callback",bv="Stdlib__Ephemeron",_="Js_of_ocaml__Form",bu="Dates_calc",bt="Stdlib__In_channel",br="Stdlib",bs="Ppx_yojson_conv_lib__",Y="Stdlib__Printexc",Z=131,bq=125,X="Js_of_ocaml__CSS",bp="Js_of_ocaml__Geolocation",V="Runtime_jsoo",W="Law_source",T="Js_of_ocaml__Typed_array",U="Js_of_ocaml__Lib_version",bn="Stdlib__Bytes",bo=103,bk="Stdlib__Unit",bl="Stdlib__Option",bm="Js_of_ocaml__IntersectionObserver",R="Out_of_memory",S="Law_source__Allocations_familiales",Q="Js_of_ocaml__Intl",P="Js_of_ocaml__Sys_js",O="Stdlib__Stream",bh="Stdlib__Float",bi="Stdlib__Complex",bj="Stdlib__StdLabels",N="Stdlib__Filename",bg="Js_of_ocaml__WebGL",L="Stdlib__Marshal",M="Js_of_ocaml__MutationObserver",bf="Assert_failure",K="Js_of_ocaml__Regexp",J="Stdlib__Set",I="Js_of_ocaml__Dom_events",H="Sys_blocked_io",be="Js_of_ocaml__Worker",G=110,bb="Std_exit",bc="Stdlib__MoreLabels",bd=123,ba="Runtime_ocaml__Runtime",E="Stdlib__Queue",F="Law_source__Allocations_familiales_api_web",D="Stdlib__Parsing",a$="Stdlib__Obj",B="Z",C=112,A="Ppx_yojson_conv_lib__Yojson_conv",a_="Js_of_ocaml__Json",z="Js_of_ocaml",a8="Jsoo_runtime__",a9="CamlinternalMod",y="Law_source__Aides_logement_api_web",a7="Js_of_ocaml__Js",a5="Stdlib__Bigarray",a6=104,a3="CamlinternalAtomic",a4=128,a1=122,a2="Invalid_argument",aZ=106,a0=113,v="Stdlib__Format",w="Match_failure",x="Yojson",aX="Stdlib__Scanf",aY=119,aW="Js_of_ocaml__Dom_html",u="Q",aV="Js_of_ocaml__",t="Jsoo_runtime",aR="Stdlib__Bool",aS="Runtime_ocaml",aT=101,aU="Division_by_zero",s="Js_of_ocaml__Firebug",r=120,aP=130,aQ=117,q="Stdlib__Arg",aN=127,aO=107,aK="Stdlib__StringLabels",aL="CamlinternalFormatBasics",aM=114,aJ="Js_of_ocaml__XmlHttpRequest",p="Jsoo_runtime__Runtime_version",aI="Stdlib__Uchar",o="Stdlib__List",n="Stdlib__Atomic",m=100,l="Ppx_yojson_conv_lib__Yojson_conv_error",k="Stdlib__Int64",aF=124,aG=109,aH="Zarith_stubs_js",aE="Sys_error",aC="Stdlib__Lexing",aD="CamlinternalFormat",j="Stdlib__Gc",aB="Stdlib__Int",h="Stdlib__Hashtbl",i="Stdlib__ListLabels",aA="Js_of_ocaml__Jstable",g="Stdlib__Int32",az="End_of_file",f="Stdlib__Stack",ay="Stack_overflow",ax="Stdlib__Nativeint",d="Js_of_ocaml__WebSockets",e=108,c="Undefined_recursive_module",bY=a.jsoo_runtime,b=bY.caml_get_global_data();b.prim_count=926;var +bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[0,0,[2,bX],aw,0,1],2],b5=[2,aW],b6=[0,0,[2,I],bJ,0,1],b7=[0,0,[2,bp],r,0,1],b8=[2,_],b9=[0,0,[2,s],aY,0,1],b_=[0,[0,0,[2,a_],aM,0,1],[2,aA],a0,0,2],b$=[2,a7],ca=[0,0,[2,bm],bF,[0,0,[2,Q],a1,0,1],2],cb=[2,ab],cc=[0,0,[2,M],C,0,1],cd=[2,al],ce=[2,bg],cf=[0,0,[2,bV],aO,0,1],cg=[2,a8],ch=[0,0,[2,F],a4,0,1],ci=[2,S],cj=[0,0,[2,av],ai,[0,0,[2,y],aP,0,1],2],ck=[2,ad],cl=[2,bU],cm=[2,N],cn=[2,bB],co=[2,bt],cp=[2,i],cq=[2,bc],cr=[2,bj],cs=[2,x],ct=[2,aH];b.toc=[0,[0,"SYMB",[0,133,[0,[0,[0,[0,[0,[0,0,[2,bf],0,[0,0,[2,ac],81,0,1],2],[2,a3],13,[0,0,[2,aD],46,0,1],3],[2,aL],12,[0,[0,[0,0,[2,bP],19,[0,0,bZ,62,0,1],2],[2,bD],60,[0,0,[2,bu],76,[0,0,b0,77,0,1],2],3],[2,aU],1,[0,[0,0,[2,ar],Z,0,1],[2,az],2,0,2],4],5],[2,bH],3,[0,[0,[0,[0,[0,0,b2,4,b1,2],[2,aV],94,[0,0,b3,bT,0,1],3],[2,ae],97,[0,[0,b6,b5,m,b4,3],[2,au],99,[0,b9,b8,aT,b7,2],4],5],[2,bL],95,[0,[0,[0,ca,b$,96,b_,3],[2,U],e,[0,cc,cb,bz,0,2],4],[2,K],aZ,[0,[0,0,cd,G,0,1],[2,P],aG,0,2],5],6],[2,T],98,[0,[0,[0,[0,cf,ce,bS,0,2],[2,d],a6,0,3],[2,be],bo,[0,0,[2,aJ],bO,0,1],4],[2,t],93,[0,[0,[0,0,cg,91,0,1],[2,p],92,0,2],[2,W],bI,[0,[0,cj,ci,aN,ch,3],[2,w],5,[0,0,ck,6,0,1],4],5],6],7],8],[2,R],7,[0,[0,[0,[0,[0,0,[2,bA],88,0,1],[2,bs],84,0,2],[2,A],86,[0,[0,0,[2,l],87,0,1],[2,af],85,0,2],3],[2,u],80,[0,[0,0,[2,V],aF,[0,0,[2,ak],bq,0,1],2],[2,aS],89,[0,[0,0,[2,ba],90,0,1],[2,ay],8,[0,0,[2,bb],ap,0,1],2],3],4],[2,br],14,[0,[0,[0,0,[2,q],48,0,1],[2,bC],33,[0,[0,0,[2,an],67,0,1],[2,n],49,[0,0,[2,a5],73,0,1],2],3],[2,aR],24,[0,[0,[0,0,[2,am],45,0,1],[2,bn],29,[0,[0,0,cl,69,0,1],[2,$],59,0,2],3],[2,bx],25,[0,[0,0,[2,bi],66,0,1],[2,aa],53,0,2],4],5],6],9],[2,ah],16,[0,[0,[0,[0,[0,[0,0,[2,bv],64,[0,0,cm,65,0,1],2],[2,bh],34,[0,0,[2,v],57,0,1],3],[2,at],51,[0,0,[2,j],52,[0,[0,0,cn,63,0,1],[2,h],55,[0,0,co,74,0,1],2],3],4],[2,aB],28,[0,0,[2,g],35,[0,0,[2,k],36,0,1],2],5],[2,by],20,[0,[0,[0,0,[2,aC],38,0,1],[2,o],27,[0,[0,[0,0,cp,68,0,1],[2,bw],41,0,2],[2,L],32,[0,[0,0,cq,71,0,1],[2,ax],37,0,2],3],4],[2,a$],18,[0,[0,0,[2,bG],61,0,1],[2,bl],22,[0,[0,0,[2,aj],75,0,1],[2,D],39,0,2],3],5],6],[2,bE],15,[0,[0,[0,[0,[0,0,[2,Y],50,0,1],[2,bR],47,0,2],[2,E],43,[0,[0,0,[2,bK],54,0,1],[2,bM],23,[0,0,[2,aX],58,0,1],2],3],[2,bW],21,[0,[0,0,[2,J],40,0,1],[2,f],42,[0,[0,[0,0,cr,72,0,1],[2,O],44,0,2],[2,bN],30,[0,0,[2,aK],70,0,1],3],4],5],[2,ag],17,[0,[0,0,[2,aI],26,[0,0,[2,bk],31,[0,0,[2,aq],56,0,1],2],3],[2,H],9,[0,[0,0,[2,aE],10,0,1],[2,c],11,[0,[0,[0,0,cs,83,0,1],[2,B],79,[0,0,ct,82,0,1],2],[2,ao],78,0,3],4],5],6],7],10]]],[0,[0,"SYJS",[0,[0,ao,78],[0,aH,82],[0,B,79],[0,x,83],[0,c,11],[0,aE,10],[0,H,9],[0,aq,56],[0,bk,31],[0,aI,26],[0,ag,17],[0,aK,70],[0,bN,30],[0,O,44],[0,bj,72],[0,f,42],[0,J,40],[0,bW,21],[0,aX,58],[0,bM,23],[0,bK,54],[0,E,43],[0,bR,47],[0,Y,50],[0,bE,15],[0,D,39],[0,aj,75],[0,bl,22],[0,bG,61],[0,a$,18],[0,ax,37],[0,bc,71],[0,L,32],[0,bw,41],[0,i,68],[0,o,27],[0,aC,38],[0,by,20],[0,k,36],[0,g,35],[0,aB,28],[0,bt,74],[0,h,55],[0,bB,63],[0,j,52],[0,at,51],[0,v,57],[0,bh,34],[0,N,65],[0,bv,64],[0,ah,16],[0,aa,53],[0,bi,66],[0,bx,25],[0,$,59],[0,bU,69],[0,bn,29],[0,am,45],[0,aR,24],[0,a5,73],[0,n,49],[0,an,67],[0,bC,33],[0,q,48],[0,br,14],[0,bb,ap],[0,ay,8],[0,ba,90],[0,aS,89],[0,ak,bq],[0,V,aF],[0,u,80],[0,af,85],[0,l,87],[0,A,86],[0,bs,84],[0,bA,88],[0,R,7],[0,ad,6],[0,w,5],[0,F,a4],[0,S,aN],[0,y,aP],[0,av,ai],[0,W,bI],[0,p,92],[0,a8,91],[0,t,93],[0,aJ,bO],[0,be,bo],[0,d,a6],[0,bg,bS],[0,bV,aO],[0,T,98],[0,P,aG],[0,al,G],[0,K,aZ],[0,ab,bz],[0,M,C],[0,U,e],[0,aA,a0],[0,a_,aM],[0,a7,96],[0,Q,a1],[0,bm,bF],[0,bL,95],[0,bp,r],[0,_,aT],[0,s,aY],[0,au,99],[0,bX,aw],[0,bQ,aQ],[0,aW,m],[0,I,bJ],[0,ae,97],[0,X,bT],[0,aV,94],[0,z,bd],[0,a2,4],[0,bH,3],[0,az,2],[0,ar,Z],[0,aU,1],[0,as,77],[0,bu,76],[0,bD,60],[0,a9,62],[0,bP,19],[0,aL,12],[0,aD,46],[0,a3,13],[0,ac,81],[0,bf,0]]],[0,[0,"CRCS",0],[0,[0,"PRIM","%caml_format_int_special\0%direct_int_div\0%direct_int_mod\0%direct_int_mul\0%identity\0%int_add\0%int_and\0%int_asr\0%int_div\0%int_lsl\0%int_lsr\0%int_mod\0%int_mul\0%int_neg\0%int_or\0%int_sub\0%int_xor\0BigStringReader\0MlBytes\0MlFakeDevice\0MlFakeFd\0MlFakeFd_out\0MlFakeFile\0MlFile\0MlInt64\0MlMutex\0MlNat\0MlNodeDevice\0MlNodeFd\0MlObjectTable\0MlStringReader\0Ml_Bigarray\0Ml_Bigarray_c_1_1\0UInt8ArrayReader\0add_nat\0bigInt\0bigstring_of_array_buffer\0bigstring_of_typed_array\0bigstring_to_array_buffer\0bigstring_to_typed_array\0blit_nat\0caml_MD5Final\0caml_MD5Init\0caml_MD5Transform\0caml_MD5Update\0caml_abs_float\0caml_acos_float\0caml_acosh_float\0caml_add_float\0caml_alloc_dummy\0caml_alloc_dummy_float\0caml_alloc_dummy_infix\0caml_alloc_stack\0caml_argv\0caml_array_append\0caml_array_blit\0caml_array_bound_error\0caml_array_concat\0caml_array_fill\0caml_array_get\0caml_array_get_addr\0caml_array_get_float\0caml_array_of_bytes\0caml_array_of_string\0caml_array_set\0caml_array_set_addr\0caml_array_set_float\0caml_array_sub\0caml_array_unsafe_get\0caml_array_unsafe_get_float\0caml_array_unsafe_set\0caml_array_unsafe_set_float\0caml_asin_float\0caml_asinh_float\0caml_atan2_float\0caml_atan_float\0caml_atanh_float\0caml_atomic_cas\0caml_atomic_exchange\0caml_atomic_fetch_add\0caml_atomic_load\0caml_ba_blit\0caml_ba_change_layout\0caml_ba_compare\0caml_ba_create\0caml_ba_create_buffer\0caml_ba_create_from\0caml_ba_create_unsafe\0caml_ba_custom_name\0caml_ba_deserialize\0caml_ba_dim\0caml_ba_dim_1\0caml_ba_dim_2\0caml_ba_dim_3\0caml_ba_fill\0caml_ba_from_typed_array\0caml_ba_get_1\0caml_ba_get_2\0caml_ba_get_3\0caml_ba_get_generic\0caml_ba_get_size\0caml_ba_get_size_per_element\0caml_ba_hash\0caml_ba_init\0caml_ba_kind\0caml_ba_kind_of_typed_array\0caml_ba_layout\0caml_ba_map_file\0caml_ba_map_file_bytecode\0caml_ba_num_dims\0caml_ba_reshape\0caml_ba_serialize\0caml_ba_set_1\0caml_ba_set_2\0caml_ba_set_3\0caml_ba_set_generic\0caml_ba_slice\0caml_ba_sub\0caml_ba_to_typed_array\0caml_ba_uint8_get16\0caml_ba_uint8_get32\0caml_ba_uint8_get64\0caml_ba_uint8_set16\0caml_ba_uint8_set32\0caml_ba_uint8_set64\0caml_backtrace_status\0caml_bigstring_blit_ba_to_ba\0caml_bigstring_blit_ba_to_bytes\0caml_bigstring_blit_bytes_to_ba\0caml_bigstring_blit_string_to_ba\0caml_bigstring_memcmp\0caml_blit_bytes\0caml_blit_string\0caml_bswap16\0caml_build_symbols\0caml_bytes_bound_error\0caml_bytes_compare\0caml_bytes_equal\0caml_bytes_get\0caml_bytes_get16\0caml_bytes_get32\0caml_bytes_get64\0caml_bytes_greaterequal\0caml_bytes_greaterthan\0caml_bytes_lessequal\0caml_bytes_lessthan\0caml_bytes_notequal\0caml_bytes_of_array\0caml_bytes_of_jsbytes\0caml_bytes_of_string\0caml_bytes_of_utf16_jsstring\0caml_bytes_set\0caml_bytes_set16\0caml_bytes_set32\0caml_bytes_set64\0caml_bytes_unsafe_get\0caml_bytes_unsafe_set\0caml_call_gen\0caml_callback\0caml_cbrt_float\0caml_ceil_float\0caml_channel_descriptor\0caml_check_bound\0caml_classify_float\0caml_compare\0caml_compare_val\0caml_compare_val_get_custom\0caml_compare_val_number_custom\0caml_compare_val_tag\0caml_continuation_use_and_update_handler_noexc\0caml_continuation_use_noexc\0caml_convert_bytes_to_array\0caml_convert_raw_backtrace\0caml_convert_raw_backtrace_slot\0caml_convert_string_to_bytes\0caml_copysign_float\0caml_cos_float\0caml_cosh_float\0caml_create_bytes\0caml_create_file\0caml_create_string\0caml_current_dir\0caml_custom_event_index\0caml_custom_ops\0caml_div\0caml_div_float\0caml_domain_dls\0caml_domain_dls_get\0caml_domain_dls_set\0caml_domain_id\0caml_domain_spawn\0caml_ensure_stack_capacity\0caml_ephe_blit_data\0caml_ephe_blit_key\0caml_ephe_check_data\0caml_ephe_check_key\0caml_ephe_create\0caml_ephe_data_offset\0caml_ephe_get_data\0caml_ephe_get_data_copy\0caml_ephe_get_key\0caml_ephe_get_key_copy\0caml_ephe_key_offset\0caml_ephe_set_data\0caml_ephe_set_key\0caml_ephe_unset_data\0caml_ephe_unset_key\0caml_eq_float\0caml_equal\0caml_erf_float\0caml_erfc_float\0caml_eventlog_pause\0caml_eventlog_resume\0caml_executable_name\0caml_exn_with_js_backtrace\0caml_exp2_float\0caml_exp_float\0caml_expm1_float\0caml_failwith\0caml_fatal_uncaught_exception\0caml_fill_bytes\0caml_fill_string\0caml_final_register\0caml_final_register_called_without_value\0caml_final_release\0caml_finish_formatting\0caml_float_compare\0caml_float_of_bytes\0caml_float_of_int\0caml_float_of_string\0caml_floatarray_blit\0caml_floatarray_create\0caml_floatarray_get\0caml_floatarray_set\0caml_floatarray_unsafe_get\0caml_floatarray_unsafe_set\0caml_floor_float\0caml_fma_float\0caml_fmod_float\0caml_format_exception\0caml_format_float\0caml_format_int\0caml_fresh_oo_id\0caml_frexp_float\0caml_fs_init\0caml_gc_compaction\0caml_gc_counters\0caml_gc_full_major\0caml_gc_get\0caml_gc_huge_fallback_count\0caml_gc_major\0caml_gc_major_slice\0caml_gc_minor\0caml_gc_minor_words\0caml_gc_quick_stat\0caml_gc_set\0caml_gc_stat\0caml_ge_float\0caml_get_continuation_callstack\0caml_get_current_callstack\0caml_get_exception_backtrace\0caml_get_exception_raw_backtrace\0caml_get_global_data\0caml_get_major_bucket\0caml_get_major_credit\0caml_get_minor_free\0caml_get_public_method\0caml_get_root\0caml_global_data\0caml_gr_arc_aux\0caml_gr_blit_image\0caml_gr_clear_graph\0caml_gr_close_graph\0caml_gr_close_subwindow\0caml_gr_create_image\0caml_gr_current_x\0caml_gr_current_y\0caml_gr_display_mode\0caml_gr_doc_of_state\0caml_gr_draw_arc\0caml_gr_draw_char\0caml_gr_draw_image\0caml_gr_draw_rect\0caml_gr_draw_str\0caml_gr_draw_string\0caml_gr_dump_image\0caml_gr_fill_arc\0caml_gr_fill_poly\0caml_gr_fill_rect\0caml_gr_lineto\0caml_gr_make_image\0caml_gr_moveto\0caml_gr_open_graph\0caml_gr_open_subwindow\0caml_gr_plot\0caml_gr_point_color\0caml_gr_remember_mode\0caml_gr_resize_window\0caml_gr_set_color\0caml_gr_set_font\0caml_gr_set_line_width\0caml_gr_set_text_size\0caml_gr_set_window_title\0caml_gr_sigio_handler\0caml_gr_sigio_signal\0caml_gr_size_x\0caml_gr_size_y\0caml_gr_state\0caml_gr_state_create\0caml_gr_state_get\0caml_gr_state_init\0caml_gr_state_set\0caml_gr_synchronize\0caml_gr_text_size\0caml_gr_wait_event\0caml_gr_window_id\0caml_greaterequal\0caml_greaterthan\0caml_gt_float\0caml_hash\0caml_hash_mix_bigstring\0caml_hash_mix_bytes\0caml_hash_mix_bytes_arr\0caml_hash_mix_final\0caml_hash_mix_float\0caml_hash_mix_int\0caml_hash_mix_int64\0caml_hash_mix_jsbytes\0caml_hash_mix_string\0caml_hash_nat\0caml_hexstring_of_float\0caml_hypot_float\0caml_input_value\0caml_input_value_from_bytes\0caml_input_value_from_reader\0caml_input_value_from_string\0caml_input_value_to_outside_heap\0caml_install_signal_handler\0caml_int32_add\0caml_int32_and\0caml_int32_bits_of_float\0caml_int32_bswap\0caml_int32_compare\0caml_int32_div\0caml_int32_float_of_bits\0caml_int32_format\0caml_int32_mod\0caml_int32_mul\0caml_int32_neg\0caml_int32_of_float\0caml_int32_of_int\0caml_int32_of_string\0caml_int32_or\0caml_int32_shift_left\0caml_int32_shift_right\0caml_int32_shift_right_unsigned\0caml_int32_sub\0caml_int32_to_float\0caml_int32_to_int\0caml_int32_unmarshal\0caml_int32_xor\0caml_int64_add\0caml_int64_and\0caml_int64_bits_of_float\0caml_int64_bswap\0caml_int64_compare\0caml_int64_create_lo_hi\0caml_int64_create_lo_mi_hi\0caml_int64_div\0caml_int64_float_of_bits\0caml_int64_format\0caml_int64_hash\0caml_int64_hi32\0caml_int64_is_negative\0caml_int64_is_zero\0caml_int64_lo32\0caml_int64_marshal\0caml_int64_mod\0caml_int64_mul\0caml_int64_neg\0caml_int64_of_bytes\0caml_int64_of_float\0caml_int64_of_int\0caml_int64_of_int32\0caml_int64_of_nativeint\0caml_int64_of_string\0caml_int64_offset\0caml_int64_or\0caml_int64_shift_left\0caml_int64_shift_right\0caml_int64_shift_right_unsigned\0caml_int64_sub\0caml_int64_to_bytes\0caml_int64_to_float\0caml_int64_to_int\0caml_int64_to_int32\0caml_int64_to_nativeint\0caml_int64_ult\0caml_int64_unmarshal\0caml_int64_xor\0caml_int_compare\0caml_int_of_float\0caml_int_of_string\0caml_invalid_argument\0caml_is_continuation_tag\0caml_is_js\0caml_is_ml_bytes\0caml_is_ml_string\0caml_is_printable\0caml_is_special_exception\0caml_js_call\0caml_js_delete\0caml_js_equals\0caml_js_error_of_exception\0caml_js_error_option_of_exception\0caml_js_eval_string\0caml_js_expr\0caml_js_from_array\0caml_js_from_bool\0caml_js_from_float\0caml_js_from_string\0caml_js_fun_call\0caml_js_function_arity\0caml_js_get\0caml_js_get_console\0caml_js_html_entities\0caml_js_html_escape\0caml_js_instanceof\0caml_js_meth_call\0caml_js_new\0caml_js_object\0caml_js_on_ie\0caml_js_pure_expr\0caml_js_set\0caml_js_to_array\0caml_js_to_bool\0caml_js_to_byte_string\0caml_js_to_float\0caml_js_to_string\0caml_js_typeof\0caml_js_var\0caml_js_wrap_callback\0caml_js_wrap_callback_arguments\0caml_js_wrap_callback_strict\0caml_js_wrap_callback_unsafe\0caml_js_wrap_meth_callback\0caml_js_wrap_meth_callback_arguments\0caml_js_wrap_meth_callback_strict\0caml_js_wrap_meth_callback_unsafe\0caml_jsbytes_of_string\0caml_jsoo_flags_effects\0caml_jsoo_flags_use_js_string\0caml_jsstring_of_string\0caml_lazy_make_forward\0caml_lazy_read_result\0caml_lazy_reset_to_lazy\0caml_lazy_update_to_forcing\0caml_lazy_update_to_forward\0caml_ldexp_float\0caml_le_float\0caml_lessequal\0caml_lessthan\0caml_lex_array\0caml_lex_engine\0caml_list_mount_point\0caml_list_of_js_array\0caml_list_to_js_array\0caml_log10_float\0caml_log1p_float\0caml_log2_float\0caml_log_float\0caml_lt_float\0caml_lxm_next\0caml_make_array\0caml_make_float_vect\0caml_make_path\0caml_make_vect\0caml_marshal_constants\0caml_marshal_data_size\0caml_marshal_header_size\0caml_maybe_attach_backtrace\0caml_maybe_print_stats\0caml_md5_bytes\0caml_md5_chan\0caml_md5_string\0caml_memprof_set\0caml_memprof_start\0caml_memprof_stop\0caml_ml_bytes_content\0caml_ml_bytes_length\0caml_ml_channel_size\0caml_ml_channel_size_64\0caml_ml_channels\0caml_ml_close_channel\0caml_ml_condition_broadcast\0caml_ml_condition_new\0caml_ml_condition_signal\0caml_ml_condition_wait\0caml_ml_debug_info_status\0caml_ml_domain_cpu_relax\0caml_ml_domain_id\0caml_ml_domain_set_name\0caml_ml_domain_unique_token\0caml_ml_enable_runtime_warnings\0caml_ml_flush\0caml_ml_input\0caml_ml_input_block\0caml_ml_input_char\0caml_ml_input_int\0caml_ml_input_scan_line\0caml_ml_is_buffered\0caml_ml_mutex_lock\0caml_ml_mutex_new\0caml_ml_mutex_try_lock\0caml_ml_mutex_unlock\0caml_ml_open_descriptor_in\0caml_ml_open_descriptor_out\0caml_ml_out_channels_list\0caml_ml_output\0caml_ml_output_bytes\0caml_ml_output_char\0caml_ml_output_int\0caml_ml_pos_in\0caml_ml_pos_in_64\0caml_ml_pos_out\0caml_ml_pos_out_64\0caml_ml_runtime_warnings_enabled\0caml_ml_seek_in\0caml_ml_seek_in_64\0caml_ml_seek_out\0caml_ml_seek_out_64\0caml_ml_set_binary_mode\0caml_ml_set_buffered\0caml_ml_set_channel_name\0caml_ml_set_channel_output\0caml_ml_set_channel_refill\0caml_ml_string_length\0caml_mod\0caml_modf_float\0caml_mount_autoload\0caml_mul\0caml_mul_float\0caml_named_value\0caml_named_values\0caml_nativeint_add\0caml_nativeint_and\0caml_nativeint_bswap\0caml_nativeint_compare\0caml_nativeint_div\0caml_nativeint_format\0caml_nativeint_mod\0caml_nativeint_mul\0caml_nativeint_neg\0caml_nativeint_of_float\0caml_nativeint_of_int\0caml_nativeint_of_int32\0caml_nativeint_of_string\0caml_nativeint_or\0caml_nativeint_shift_left\0caml_nativeint_shift_right\0caml_nativeint_shift_right_unsigned\0caml_nativeint_sub\0caml_nativeint_to_float\0caml_nativeint_to_int\0caml_nativeint_to_int32\0caml_nativeint_unmarshal\0caml_nativeint_xor\0caml_neg_float\0caml_neq_float\0caml_new_lex_engine\0caml_new_string\0caml_nextafter_float\0caml_notequal\0caml_obj_add_offset\0caml_obj_block\0caml_obj_compare_and_swap\0caml_obj_dup\0caml_obj_is_block\0caml_obj_is_shared\0caml_obj_make_forward\0caml_obj_raw_field\0caml_obj_reachable_words\0caml_obj_set_raw_field\0caml_obj_set_tag\0caml_obj_tag\0caml_obj_truncate\0caml_obj_update_tag\0caml_obj_with_tag\0caml_ojs_new_arr\0caml_oo_last_id\0caml_output_val\0caml_output_value\0caml_output_value_to_buffer\0caml_output_value_to_bytes\0caml_output_value_to_string\0caml_parse_digit\0caml_parse_engine\0caml_parse_format\0caml_parse_sign_and_base\0caml_parser_trace\0caml_pos_in\0caml_pos_out\0caml_power_float\0caml_pure_js_expr\0caml_raise_constant\0caml_raise_end_of_file\0caml_raise_no_such_file\0caml_raise_not_a_dir\0caml_raise_not_found\0caml_raise_sys_error\0caml_raise_with_arg\0caml_raise_with_args\0caml_raise_with_string\0caml_raise_zero_divide\0caml_raw_backtrace_length\0caml_raw_backtrace_next_slot\0caml_raw_backtrace_slot\0caml_read_file_content\0caml_recommended_domain_count\0caml_record_backtrace\0caml_record_backtrace_flag\0caml_refill\0caml_register_channel_for_spacetime\0caml_register_global\0caml_register_named_value\0caml_restore_raw_backtrace\0caml_root\0caml_round_float\0caml_runtime_events_create_cursor\0caml_runtime_events_free_cursor\0caml_runtime_events_pause\0caml_runtime_events_read_poll\0caml_runtime_events_resume\0caml_runtime_events_start\0caml_runtime_events_user_register\0caml_runtime_events_user_resolve\0caml_runtime_events_user_write\0caml_runtime_parameters\0caml_runtime_variant\0caml_runtime_warnings\0caml_seek_in\0caml_seek_out\0caml_set_oo_id\0caml_set_parser_trace\0caml_set_static_env\0caml_signbit_float\0caml_sin_float\0caml_sinh_float\0caml_spacetime_enabled\0caml_spacetime_only_works_for_native_code\0caml_sqrt_float\0caml_str_initialize\0caml_str_repeat\0caml_string_bound_error\0caml_string_compare\0caml_string_equal\0caml_string_get\0caml_string_get16\0caml_string_get32\0caml_string_get64\0caml_string_greaterequal\0caml_string_greaterthan\0caml_string_hash\0caml_string_lessequal\0caml_string_lessthan\0caml_string_notequal\0caml_string_of_array\0caml_string_of_bytes\0caml_string_of_jsbytes\0caml_string_of_jsstring\0caml_string_set\0caml_string_set16\0caml_string_set32\0caml_string_set64\0caml_string_unsafe_get\0caml_string_unsafe_set\0caml_sub_float\0caml_subarray_to_jsbytes\0caml_sys_argv\0caml_sys_chdir\0caml_sys_close\0caml_sys_const_backend_type\0caml_sys_const_big_endian\0caml_sys_const_int_size\0caml_sys_const_max_wosize\0caml_sys_const_naked_pointers_checked\0caml_sys_const_ostype_cygwin\0caml_sys_const_ostype_unix\0caml_sys_const_ostype_win32\0caml_sys_const_word_size\0caml_sys_executable_name\0caml_sys_exit\0caml_sys_fds\0caml_sys_file_exists\0caml_sys_get_argv\0caml_sys_get_config\0caml_sys_getcwd\0caml_sys_getenv\0caml_sys_is_directory\0caml_sys_is_regular_file\0caml_sys_isatty\0caml_sys_mkdir\0caml_sys_modify_argv\0caml_sys_open\0caml_sys_open_for_node\0caml_sys_random_seed\0caml_sys_read_directory\0caml_sys_remove\0caml_sys_rename\0caml_sys_rmdir\0caml_sys_system_command\0caml_sys_time\0caml_sys_time_include_children\0caml_sys_unsafe_getenv\0caml_tan_float\0caml_tanh_float\0caml_to_js_string\0caml_trailing_slash\0caml_trampoline\0caml_trampoline_return\0caml_trunc_float\0caml_uint8_array_of_bytes\0caml_uint8_array_of_string\0caml_unix_cleanup\0caml_unix_closedir\0caml_unix_filedescr_of_fd\0caml_unix_findclose\0caml_unix_findfirst\0caml_unix_findnext\0caml_unix_getpwuid\0caml_unix_gettimeofday\0caml_unix_getuid\0caml_unix_gmtime\0caml_unix_has_symlink\0caml_unix_inet_addr_of_string\0caml_unix_isatty\0caml_unix_localtime\0caml_unix_lstat\0caml_unix_lstat_64\0caml_unix_mkdir\0caml_unix_mktime\0caml_unix_opendir\0caml_unix_readdir\0caml_unix_readlink\0caml_unix_rewinddir\0caml_unix_rmdir\0caml_unix_startup\0caml_unix_stat\0caml_unix_stat_64\0caml_unix_symlink\0caml_unix_time\0caml_unix_unlink\0caml_unmount\0caml_update_dummy\0caml_utf16_of_utf8\0caml_utf8_of_utf16\0caml_weak_blit\0caml_weak_check\0caml_weak_create\0caml_weak_get\0caml_weak_get_copy\0caml_weak_set\0caml_wrap_exception\0caml_xmlhttprequest_create\0caml_zarith_marshal\0caml_zarith_unmarshal\0compare_digits_nat\0compare_nat\0compare_nat_real\0complement_nat\0create_nat\0decr_nat\0deserialize_nat\0div_digit_nat\0div_helper\0div_nat\0fs_node_supported\0incr_nat\0initialize_nat\0is_digit_int\0is_digit_odd\0is_digit_zero\0jsoo_create_file\0jsoo_create_file_extern\0jsoo_effect_not_supported\0jsoo_floor_log2\0jsoo_is_ascii\0jsoo_mount_point\0jsoo_sys_getenv\0jsoo_z_of_js_string_base\0land_digit_nat\0lor_digit_nat\0lxor_digit_nat\0make_unix_err_args\0ml_z_abs\0ml_z_add\0ml_z_bin\0ml_z_cdiv\0ml_z_compare\0ml_z_congruent\0ml_z_div\0ml_z_div_rem\0ml_z_divexact\0ml_z_divisible\0ml_z_equal\0ml_z_extract\0ml_z_fac\0ml_z_fac2\0ml_z_facM\0ml_z_fdiv\0ml_z_fib\0ml_z_fits_int\0ml_z_fits_int32\0ml_z_fits_int64\0ml_z_fits_nativeint\0ml_z_format\0ml_z_gcd\0ml_z_gcdext_intern\0ml_z_hamdist\0ml_z_hash\0ml_z_init\0ml_z_invert\0ml_z_jacobi\0ml_z_kronecker\0ml_z_legendre\0ml_z_logand\0ml_z_lognot\0ml_z_logor\0ml_z_logxor\0ml_z_lucnum\0ml_z_mul\0ml_z_mul_overflows\0ml_z_neg\0ml_z_nextprime\0ml_z_normalize\0ml_z_numbits\0ml_z_of_bits\0ml_z_of_float\0ml_z_of_int32\0ml_z_of_int64\0ml_z_of_nativeint\0ml_z_of_substring_base\0ml_z_perfect_power\0ml_z_perfect_square\0ml_z_popcount\0ml_z_pow\0ml_z_powm\0ml_z_powm_sec\0ml_z_pred\0ml_z_primorial\0ml_z_probab_prime\0ml_z_rem\0ml_z_remove\0ml_z_root\0ml_z_rootrem\0ml_z_shift_left\0ml_z_shift_right\0ml_z_shift_right_trunc\0ml_z_sign\0ml_z_size\0ml_z_sqrt\0ml_z_sqrt_rem\0ml_z_sub\0ml_z_succ\0ml_z_testbit\0ml_z_to_bits\0ml_z_to_int\0ml_z_to_int32\0ml_z_to_int64\0ml_z_to_nativeint\0ml_z_trailing_zeros\0mult_digit_nat\0mult_nat\0nat_of_array\0nth_digit_nat\0nth_digit_nat_native\0num_digits_nat\0num_leading_zero_bits_in_digit\0os_type\0path_is_absolute\0re_match\0re_partial_match\0re_replacement_text\0re_search_backward\0re_search_forward\0re_string_match\0resolve_fs_device\0serialize_nat\0set_digit_nat\0set_digit_nat_native\0set_to_zero_nat\0shift_left_nat\0shift_right_nat\0square_nat\0sub_nat\0unix_closedir\0unix_getpwuid\0unix_gettimeofday\0unix_getuid\0unix_gmtime\0unix_has_symlink\0unix_inet_addr_of_string\0unix_isatty\0unix_localtime\0unix_lstat\0unix_lstat_64\0unix_mkdir\0unix_mktime\0unix_opendir\0unix_readdir\0unix_readlink\0unix_rewinddir\0unix_rmdir\0unix_stat\0unix_stat_64\0unix_symlink\0unix_time\0unix_unlink\0win_cleanup\0win_filedescr_of_channel\0win_findclose\0win_findfirst\0win_findnext\0win_handle_fd\0win_startup\0zstd_decompress\0"],0]]]];return}(globalThis)); + +//# 1 "../../.js/default/stdlib/stdlib.cma.js" +// Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 + +//# 5 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var runtime = globalThis.jsoo_runtime; + function erase_rel(param){ + if(typeof param === "number") return 0; + switch(param[0]){ + case 0: + var rest = param[1]; return [0, erase_rel(rest)]; + case 1: + var rest$0 = param[1]; return [1, erase_rel(rest$0)]; + case 2: + var rest$1 = param[1]; return [2, erase_rel(rest$1)]; + case 3: + var rest$2 = param[1]; return [3, erase_rel(rest$2)]; + case 4: + var rest$3 = param[1]; return [4, erase_rel(rest$3)]; + case 5: + var rest$4 = param[1]; return [5, erase_rel(rest$4)]; + case 6: + var rest$5 = param[1]; return [6, erase_rel(rest$5)]; + case 7: + var rest$6 = param[1]; return [7, erase_rel(rest$6)]; + case 8: + var rest$7 = param[2], ty = param[1]; + return [8, ty, erase_rel(rest$7)]; + case 9: + var rest$8 = param[3], ty1 = param[1]; + return [9, ty1, ty1, erase_rel(rest$8)]; + case 10: + var rest$9 = param[1]; return [10, erase_rel(rest$9)]; + case 11: + var rest$10 = param[1]; return [11, erase_rel(rest$10)]; + case 12: + var rest$11 = param[1]; return [12, erase_rel(rest$11)]; + case 13: + var rest$12 = param[1]; return [13, erase_rel(rest$12)]; + default: var rest$13 = param[1]; return [14, erase_rel(rest$13)]; + } + } + function concat_fmtty(fmtty1, fmtty2){ + if(typeof fmtty1 === "number") return fmtty2; + switch(fmtty1[0]){ + case 0: + var rest = fmtty1[1]; return [0, concat_fmtty(rest, fmtty2)]; + case 1: + var rest$0 = fmtty1[1]; return [1, concat_fmtty(rest$0, fmtty2)]; + case 2: + var rest$1 = fmtty1[1]; return [2, concat_fmtty(rest$1, fmtty2)]; + case 3: + var rest$2 = fmtty1[1]; return [3, concat_fmtty(rest$2, fmtty2)]; + case 4: + var rest$3 = fmtty1[1]; return [4, concat_fmtty(rest$3, fmtty2)]; + case 5: + var rest$4 = fmtty1[1]; return [5, concat_fmtty(rest$4, fmtty2)]; + case 6: + var rest$5 = fmtty1[1]; return [6, concat_fmtty(rest$5, fmtty2)]; + case 7: + var rest$6 = fmtty1[1]; return [7, concat_fmtty(rest$6, fmtty2)]; + case 8: + var rest$7 = fmtty1[2], ty = fmtty1[1]; + return [8, ty, concat_fmtty(rest$7, fmtty2)]; + case 9: + var rest$8 = fmtty1[3], ty2 = fmtty1[2], ty1 = fmtty1[1]; + return [9, ty1, ty2, concat_fmtty(rest$8, fmtty2)]; + case 10: + var rest$9 = fmtty1[1]; return [10, concat_fmtty(rest$9, fmtty2)]; + case 11: + var rest$10 = fmtty1[1]; return [11, concat_fmtty(rest$10, fmtty2)]; + case 12: + var rest$11 = fmtty1[1]; return [12, concat_fmtty(rest$11, fmtty2)]; + case 13: + var rest$12 = fmtty1[1]; return [13, concat_fmtty(rest$12, fmtty2)]; + default: + var rest$13 = fmtty1[1]; return [14, concat_fmtty(rest$13, fmtty2)]; + } + } + function concat_fmt(fmt1, fmt2){ + if(typeof fmt1 === "number") return fmt2; + switch(fmt1[0]){ + case 0: + var rest = fmt1[1]; return [0, concat_fmt(rest, fmt2)]; + case 1: + var rest$0 = fmt1[1]; return [1, concat_fmt(rest$0, fmt2)]; + case 2: + var rest$1 = fmt1[2], pad = fmt1[1]; + return [2, pad, concat_fmt(rest$1, fmt2)]; + case 3: + var rest$2 = fmt1[2], pad$0 = fmt1[1]; + return [3, pad$0, concat_fmt(rest$2, fmt2)]; + case 4: + var rest$3 = fmt1[4], prec = fmt1[3], pad$1 = fmt1[2], iconv = fmt1[1]; + return [4, iconv, pad$1, prec, concat_fmt(rest$3, fmt2)]; + case 5: + var + rest$4 = fmt1[4], + prec$0 = fmt1[3], + pad$2 = fmt1[2], + iconv$0 = fmt1[1]; + return [5, iconv$0, pad$2, prec$0, concat_fmt(rest$4, fmt2)]; + case 6: + var + rest$5 = fmt1[4], + prec$1 = fmt1[3], + pad$3 = fmt1[2], + iconv$1 = fmt1[1]; + return [6, iconv$1, pad$3, prec$1, concat_fmt(rest$5, fmt2)]; + case 7: + var + rest$6 = fmt1[4], + prec$2 = fmt1[3], + pad$4 = fmt1[2], + iconv$2 = fmt1[1]; + return [7, iconv$2, pad$4, prec$2, concat_fmt(rest$6, fmt2)]; + case 8: + var + rest$7 = fmt1[4], + prec$3 = fmt1[3], + pad$5 = fmt1[2], + fconv = fmt1[1]; + return [8, fconv, pad$5, prec$3, concat_fmt(rest$7, fmt2)]; + case 9: + var rest$8 = fmt1[2], pad$6 = fmt1[1]; + return [9, pad$6, concat_fmt(rest$8, fmt2)]; + case 10: + var rest$9 = fmt1[1]; return [10, concat_fmt(rest$9, fmt2)]; + case 11: + var rest$10 = fmt1[2], str = fmt1[1]; + return [11, str, concat_fmt(rest$10, fmt2)]; + case 12: + var rest$11 = fmt1[2], chr = fmt1[1]; + return [12, chr, concat_fmt(rest$11, fmt2)]; + case 13: + var rest$12 = fmt1[3], fmtty = fmt1[2], pad$7 = fmt1[1]; + return [13, pad$7, fmtty, concat_fmt(rest$12, fmt2)]; + case 14: + var rest$13 = fmt1[3], fmtty$0 = fmt1[2], pad$8 = fmt1[1]; + return [14, pad$8, fmtty$0, concat_fmt(rest$13, fmt2)]; + case 15: + var rest$14 = fmt1[1]; return [15, concat_fmt(rest$14, fmt2)]; + case 16: + var rest$15 = fmt1[1]; return [16, concat_fmt(rest$15, fmt2)]; + case 17: + var rest$16 = fmt1[2], fmting_lit = fmt1[1]; + return [17, fmting_lit, concat_fmt(rest$16, fmt2)]; + case 18: + var rest$17 = fmt1[2], fmting_gen = fmt1[1]; + return [18, fmting_gen, concat_fmt(rest$17, fmt2)]; + case 19: + var rest$18 = fmt1[1]; return [19, concat_fmt(rest$18, fmt2)]; + case 20: + var rest$19 = fmt1[3], char_set = fmt1[2], width_opt = fmt1[1]; + return [20, width_opt, char_set, concat_fmt(rest$19, fmt2)]; + case 21: + var rest$20 = fmt1[2], counter = fmt1[1]; + return [21, counter, concat_fmt(rest$20, fmt2)]; + case 22: + var rest$21 = fmt1[1]; return [22, concat_fmt(rest$21, fmt2)]; + case 23: + var rest$22 = fmt1[2], ign = fmt1[1]; + return [23, ign, concat_fmt(rest$22, fmt2)]; + default: + var rest$23 = fmt1[3], f = fmt1[2], arity = fmt1[1]; + return [24, arity, f, concat_fmt(rest$23, fmt2)]; + } + } + var CamlinternalFormatBasics = [0, concat_fmtty, erase_rel, concat_fmt]; + runtime.caml_register_global + (0, CamlinternalFormatBasics, "CamlinternalFormatBasics"); + return; + } + (globalThis)); + +//# 179 "../../.js/default/stdlib/stdlib.cma.js" +(function(globalThis){ + "use strict"; + var runtime = globalThis.jsoo_runtime; + function make(v){return [0, v];} + function get(r){return r[1];} + function set(r, v){r[1] = v; return 0;} + function exchange(r, v){var cur = r[1]; r[1] = v; return cur;} + function compare_and_set(r, seen, v){ + var cur = r[1]; + return cur === seen ? (r[1] = v, 1) : 0; + } + function fetch_and_add(r, n){ + var cur = r[1]; + r[1] = cur + n | 0; + return cur; + } + function incr(r){fetch_and_add(r, 1); return 0;} + function decr(r){fetch_and_add(r, -1); return 0;} + var + CamlinternalAtomic = + [0, + make, + get, + set, + exchange, + compare_and_set, + fetch_and_add, + incr, + decr]; + runtime.caml_register_global(0, CamlinternalAtomic, "CamlinternalAtomic"); + return; + } + (globalThis)); + +//# 215 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_false$0 = "false", + cst_true$0 = "true", + caml_blit_string = runtime.caml_blit_string, + caml_create_bytes = runtime.caml_create_bytes, + caml_float_of_string = runtime.caml_float_of_string, + caml_int64_float_of_bits = runtime.caml_int64_float_of_bits, + caml_int_of_string = runtime.caml_int_of_string, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_ml_bytes_length = runtime.caml_ml_bytes_length, + caml_ml_channel_size = runtime.caml_ml_channel_size, + caml_ml_channel_size_64 = runtime.caml_ml_channel_size_64, + caml_ml_close_channel = runtime.caml_ml_close_channel, + caml_ml_flush = runtime.caml_ml_flush, + caml_ml_input = runtime.caml_ml_input, + caml_ml_input_char = runtime.caml_ml_input_char, + caml_ml_open_descriptor_in = runtime.caml_ml_open_descriptor_in, + caml_ml_open_descriptor_out = runtime.caml_ml_open_descriptor_out, + caml_ml_output = runtime.caml_ml_output, + caml_ml_output_bytes = runtime.caml_ml_output_bytes, + caml_ml_output_char = runtime.caml_ml_output_char, + caml_ml_set_binary_mode = runtime.caml_ml_set_binary_mode, + caml_ml_set_channel_name = runtime.caml_ml_set_channel_name, + caml_ml_string_length = runtime.caml_ml_string_length, + caml_string_notequal = runtime.caml_string_notequal, + caml_string_of_bytes = runtime.caml_string_of_bytes, + caml_sys_open = runtime.caml_sys_open, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + var + global_data = runtime.caml_get_global_data(), + cst$0 = "%,", + cst = ".", + CamlinternalAtomic = global_data.CamlinternalAtomic, + CamlinternalFormatBasics = global_data.CamlinternalFormatBasics, + Invalid_argument = global_data.Invalid_argument, + Failure = global_data.Failure, + Match_failure = global_data.Match_failure, + Assert_failure = global_data.Assert_failure, + Not_found = global_data.Not_found, + Out_of_memory = global_data.Out_of_memory, + Stack_overflow = global_data.Stack_overflow, + Sys_error = global_data.Sys_error, + End_of_file = global_data.End_of_file, + Division_by_zero = global_data.Division_by_zero, + Sys_blocked_io = global_data.Sys_blocked_io, + Undefined_recursive_module = global_data.Undefined_recursive_module, + cst_really_input = "really_input", + cst_input = "input", + _l_ = [0, 0, [0, 6, 0]], + _k_ = [0, 0, [0, 7, 0]], + cst_output_substring = "output_substring", + cst_output = "output", + _j_ = [0, 1, [0, 3, [0, 4, [0, 6, 0]]]], + _i_ = [0, 1, [0, 3, [0, 4, [0, 7, 0]]]], + _g_ = [0, 1], + _h_ = [0, 0], + cst_bool_of_string = "bool_of_string", + cst_true = cst_true$0, + cst_false = cst_false$0, + cst_char_of_int = "char_of_int", + cst_Stdlib_Exit = "Stdlib.Exit", + _a_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 32752), + _b_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 65520), + _c_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 32752), + _d_ = runtime.caml_int64_create_lo_mi_hi(16777215, 16777215, 32751), + _e_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 16), + _f_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 15536); + function failwith(s){ + throw caml_maybe_attach_backtrace([0, Failure, s], 1); + } + function invalid_arg(s){ + throw caml_maybe_attach_backtrace([0, Invalid_argument, s], 1); + } + var Exit = [248, cst_Stdlib_Exit, runtime.caml_fresh_oo_id(0)]; + function min(x, y){return runtime.caml_lessequal(x, y) ? x : y;} + function max(x, y){return runtime.caml_greaterequal(x, y) ? x : y;} + function abs(x){return 0 <= x ? x : - x | 0;} + function lnot(x){return x ^ -1;} + var + infinity = caml_int64_float_of_bits(_a_), + neg_infinity = caml_int64_float_of_bits(_b_), + nan = caml_int64_float_of_bits(_c_), + max_float = caml_int64_float_of_bits(_d_), + min_float = caml_int64_float_of_bits(_e_), + epsilon_float = caml_int64_float_of_bits(_f_), + max_int = 2147483647, + min_int = -2147483648; + function symbol(s1, s2){ var - runtime=globalThis.jsoo_runtime, - caml_array_concat=runtime.caml_array_concat, - caml_array_get=runtime.caml_array_get, - caml_array_set=runtime.caml_array_set, - caml_array_sub=runtime.caml_array_sub, - caml_ba_change_layout=runtime.caml_ba_change_layout, - caml_ba_create=runtime.caml_ba_create, - caml_ba_dim_1=runtime.caml_ba_dim_1, - caml_ba_dim_2=runtime.caml_ba_dim_2, - caml_ba_kind=runtime.caml_ba_kind, - caml_ba_num_dims=runtime.caml_ba_num_dims, - caml_ba_reshape=runtime.caml_ba_reshape, - caml_ba_set_1=runtime.caml_ba_set_1, - caml_ba_set_2=runtime.caml_ba_set_2, - caml_ba_set_3=runtime.caml_ba_set_3, - caml_ba_set_generic=runtime.caml_ba_set_generic, - caml_ba_slice=runtime.caml_ba_slice, - caml_blit_bytes=runtime.caml_blit_bytes, - caml_blit_string=runtime.caml_blit_string, - caml_bswap16=runtime.caml_bswap16, - caml_bytes_get=runtime.caml_bytes_get, - caml_bytes_get16=runtime.caml_bytes_get16, - caml_bytes_get32=runtime.caml_bytes_get32, - caml_bytes_get64=runtime.caml_bytes_get64, - caml_bytes_of_string=runtime.caml_bytes_of_string, - caml_bytes_set=runtime.caml_bytes_set, - caml_bytes_set16=runtime.caml_bytes_set16, - caml_bytes_set32=runtime.caml_bytes_set32, - caml_bytes_set64=runtime.caml_bytes_set64, - caml_bytes_unsafe_get=runtime.caml_bytes_unsafe_get, - caml_bytes_unsafe_set=runtime.caml_bytes_unsafe_set, - caml_check_bound=runtime.caml_check_bound, - caml_compare=runtime.caml_compare, - caml_create_bytes=runtime.caml_create_bytes, - caml_div=runtime.caml_div, - caml_ephe_blit_key=runtime.caml_ephe_blit_key, - caml_ephe_check_key=runtime.caml_ephe_check_key, - caml_ephe_get_key=runtime.caml_ephe_get_key, - caml_ephe_get_key_copy=runtime.caml_ephe_get_key_copy, - caml_ephe_set_key=runtime.caml_ephe_set_key, - caml_ephe_unset_key=runtime.caml_ephe_unset_key, - caml_equal=runtime.caml_equal, - caml_fill_bytes=runtime.caml_fill_bytes, - caml_float_compare=runtime.caml_float_compare, - caml_float_of_string=runtime.caml_float_of_string, - caml_floatarray_blit=runtime.caml_floatarray_blit, - caml_floatarray_create=runtime.caml_floatarray_create, - caml_format_float=runtime.caml_format_float, - caml_format_int=runtime.caml_format_int, - caml_fresh_oo_id=runtime.caml_fresh_oo_id, - caml_get_exception_raw_backtra=runtime.caml_get_exception_raw_backtrace, - caml_get_public_method=runtime.caml_get_public_method, - caml_greaterequal=runtime.caml_greaterequal, - caml_greaterthan=runtime.caml_greaterthan, - caml_hash=runtime.caml_hash, - caml_input_value=runtime.caml_input_value, - caml_int32_bswap=runtime.caml_int32_bswap, - caml_int64_add=runtime.caml_int64_add, - caml_int64_bswap=runtime.caml_int64_bswap, - caml_int64_compare=runtime.caml_int64_compare, - caml_int64_float_of_bits=runtime.caml_int64_float_of_bits, - caml_int64_format=runtime.caml_int64_format, - caml_int64_mul=runtime.caml_int64_mul, - caml_int64_of_int32=runtime.caml_int64_of_int32, - caml_int64_of_string=runtime.caml_int64_of_string, - caml_int64_or=runtime.caml_int64_or, - caml_int64_shift_left=runtime.caml_int64_shift_left, - caml_int64_shift_right_unsigne=runtime.caml_int64_shift_right_unsigned, - caml_int64_sub=runtime.caml_int64_sub, - caml_int_compare=runtime.caml_int_compare, - caml_int_of_string=runtime.caml_int_of_string, - caml_lessequal=runtime.caml_lessequal, - caml_lessthan=runtime.caml_lessthan, - caml_make_vect=runtime.caml_make_vect, - caml_marshal_data_size=runtime.caml_marshal_data_size, - caml_md5_string=runtime.caml_md5_string, - caml_ml_bytes_length=runtime.caml_ml_bytes_length, - caml_ml_channel_size=runtime.caml_ml_channel_size, - caml_ml_channel_size_64=runtime.caml_ml_channel_size_64, - caml_ml_close_channel=runtime.caml_ml_close_channel, - caml_ml_flush=runtime.caml_ml_flush, - caml_ml_input=runtime.caml_ml_input, - caml_ml_input_char=runtime.caml_ml_input_char, - caml_ml_open_descriptor_in=runtime.caml_ml_open_descriptor_in, - caml_ml_open_descriptor_out=runtime.caml_ml_open_descriptor_out, - caml_ml_output=runtime.caml_ml_output, - caml_ml_output_bytes=runtime.caml_ml_output_bytes, - caml_ml_output_char=runtime.caml_ml_output_char, - caml_ml_pos_in=runtime.caml_ml_pos_in, - caml_ml_set_binary_mode=runtime.caml_ml_set_binary_mode, - caml_ml_set_channel_name=runtime.caml_ml_set_channel_name, - caml_ml_string_length=runtime.caml_ml_string_length, - caml_mod=runtime.caml_mod, - caml_mul=runtime.caml_mul, - caml_nextafter_float=runtime.caml_nextafter_float, - caml_notequal=runtime.caml_notequal, - caml_obj_block=runtime.caml_obj_block, - caml_obj_make_forward=runtime.caml_obj_make_forward, - caml_obj_tag=runtime.caml_obj_tag, - caml_output_value=runtime.caml_output_value, - caml_register_global=runtime.caml_register_global, - caml_register_named_value=runtime.caml_register_named_value, - caml_restore_raw_backtrace=runtime.caml_restore_raw_backtrace, - caml_set_oo_id=runtime.caml_set_oo_id, - caml_signbit_float=runtime.caml_signbit_float, - caml_string_compare=runtime.caml_string_compare, - caml_string_equal=runtime.caml_string_equal, - caml_string_get=runtime.caml_string_get, - caml_string_notequal=runtime.caml_string_notequal, - caml_string_of_bytes=runtime.caml_string_of_bytes, - caml_string_of_jsbytes=runtime.caml_string_of_jsbytes, - caml_string_unsafe_get=runtime.caml_string_unsafe_get, - caml_sys_argv=runtime.caml_sys_argv, - caml_sys_getenv=runtime.caml_sys_getenv, - caml_sys_open=runtime.caml_sys_open, - caml_sys_random_seed=runtime.caml_sys_random_seed, - caml_trampoline=runtime.caml_trampoline, - caml_trampoline_return=runtime.caml_trampoline_return, - caml_wrap_exception=runtime.caml_wrap_exception; - function caml_call1(f,a0) - {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} - function caml_call2(f,a0,a1) - {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} - function caml_call3(f,a0,a1,a2) - {return f.length == 3?f(a0,a1,a2):runtime.caml_call_gen(f,[a0,a1,a2])} - function caml_call4(f,a0,a1,a2,a3) - {return f.length == 4 - ?f(a0,a1,a2,a3) - :runtime.caml_call_gen(f,[a0,a1,a2,a3])} - function caml_call5(f,a0,a1,a2,a3,a4) - {return f.length == 5 - ?f(a0,a1,a2,a3,a4) - :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4])} - function caml_call7(f,a0,a1,a2,a3,a4,a5,a6) - {return f.length == 7 - ?f(a0,a1,a2,a3,a4,a5,a6) - :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4,a5,a6])} + l1 = caml_ml_string_length(s1), + l2 = caml_ml_string_length(s2), + s = caml_create_bytes(l1 + l2 | 0); + caml_blit_string(s1, 0, s, 0, l1); + caml_blit_string(s2, 0, s, l1, l2); + return caml_string_of_bytes(s); + } + function char_of_int(n){ + if(0 <= n && 255 >= n) return n; + return invalid_arg(cst_char_of_int); + } + function string_of_bool(b){return b ? cst_true : cst_false;} + function bool_of_string(param){ + return caml_string_notequal(param, cst_false$0) + ? caml_string_notequal + (param, cst_true$0) + ? invalid_arg(cst_bool_of_string) + : 1 + : 0; + } + function bool_of_string_opt(param){ + return caml_string_notequal(param, cst_false$0) + ? caml_string_notequal(param, cst_true$0) ? 0 : _g_ + : _h_; + } + function string_of_int(n){return "" + n;} + function int_of_string_opt(s){ + try{var _B_ = [0, caml_int_of_string(s)]; return _B_;} + catch(_C_){ + var _A_ = caml_wrap_exception(_C_); + if(_A_[1] === Failure) return 0; + throw caml_maybe_attach_backtrace(_A_, 0); + } + } + function valid_float_lexem(s){ + var l = caml_ml_string_length(s), i = 0; + for(;;){ + if(l <= i) return symbol(s, cst); + var match = runtime.caml_string_get(s, i), switch$0 = 0; + if(48 <= match){ + if(58 > match) switch$0 = 1; + } + else if(45 === match) switch$0 = 1; + if(! switch$0) return s; + var i$0 = i + 1 | 0, i = i$0; + } + } + function string_of_float(f){ + return valid_float_lexem(runtime.caml_format_float("%.12g", f)); + } + function float_of_string_opt(s){ + try{var _y_ = [0, caml_float_of_string(s)]; return _y_;} + catch(_z_){ + var _x_ = caml_wrap_exception(_z_); + if(_x_[1] === Failure) return 0; + throw caml_maybe_attach_backtrace(_x_, 0); + } + } + function symbol$0(l1, l2){ + if(! l1) return l2; + var tl = l1[2], hd = l1[1]; + return [0, hd, symbol$0(tl, l2)]; + } + var + stdin = caml_ml_open_descriptor_in(0), + stdout = caml_ml_open_descriptor_out(1), + stderr = caml_ml_open_descriptor_out(2); + function open_out_gen(mode, perm, name){ + var c = caml_ml_open_descriptor_out(caml_sys_open(name, mode, perm)); + caml_ml_set_channel_name(c, name); + return c; + } + function open_out(name){return open_out_gen(_i_, 438, name);} + function open_out_bin(name){return open_out_gen(_j_, 438, name);} + function flush_all(param){ + var param$0 = runtime.caml_ml_out_channels_list(0); + for(;;){ + if(! param$0) return 0; + var l = param$0[2], a = param$0[1]; + try{caml_ml_flush(a);} + catch(_w_){ + var _v_ = caml_wrap_exception(_w_); + if(_v_[1] !== Sys_error) throw caml_maybe_attach_backtrace(_v_, 0); + } + var param$0 = l; + } + } + function output_bytes(oc, s){ + return caml_ml_output_bytes(oc, s, 0, caml_ml_bytes_length(s)); + } + function output_string(oc, s){ + return caml_ml_output(oc, s, 0, caml_ml_string_length(s)); + } + function output(oc, s, ofs, len){ + if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) + return caml_ml_output_bytes(oc, s, ofs, len); + return invalid_arg(cst_output); + } + function output_substring(oc, s, ofs, len){ + if(0 <= ofs && 0 <= len && (caml_ml_string_length(s) - len | 0) >= ofs) + return caml_ml_output(oc, s, ofs, len); + return invalid_arg(cst_output_substring); + } + function output_value(chan, v){ + return runtime.caml_output_value(chan, v, 0); + } + function close_out(oc){ + caml_ml_flush(oc); + return caml_ml_close_channel(oc); + } + function close_out_noerr(oc){ + try{caml_ml_flush(oc);}catch(_u_){} + try{var _s_ = caml_ml_close_channel(oc); return _s_;}catch(_t_){return 0;} + } + function open_in_gen(mode, perm, name){ + var c = caml_ml_open_descriptor_in(caml_sys_open(name, mode, perm)); + caml_ml_set_channel_name(c, name); + return c; + } + function open_in(name){return open_in_gen(_k_, 0, name);} + function open_in_bin(name){return open_in_gen(_l_, 0, name);} + function input(ic, s, ofs, len){ + if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) + return caml_ml_input(ic, s, ofs, len); + return invalid_arg(cst_input); + } + function unsafe_really_input(ic, s, ofs, len){ + var ofs$0 = ofs, len$0 = len; + for(;;){ + if(0 >= len$0) return 0; + var r = caml_ml_input(ic, s, ofs$0, len$0); + if(0 === r) throw caml_maybe_attach_backtrace(End_of_file, 1); + var + len$1 = len$0 - r | 0, + ofs$1 = ofs$0 + r | 0, + ofs$0 = ofs$1, + len$0 = len$1; + } + } + function really_input(ic, s, ofs, len){ + if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) + return unsafe_really_input(ic, s, ofs, len); + return invalid_arg(cst_really_input); + } + function really_input_string(ic, len){ + var s = caml_create_bytes(len); + really_input(ic, s, 0, len); + return caml_string_of_bytes(s); + } + function input_line(chan){ + function build_result(buf, pos, param){ + var pos$0 = pos, param$0 = param; + for(;;){ + if(! param$0) return buf; + var tl = param$0[2], hd = param$0[1], len = caml_ml_bytes_length(hd); + runtime.caml_blit_bytes(hd, 0, buf, pos$0 - len | 0, len); + var pos$1 = pos$0 - len | 0, pos$0 = pos$1, param$0 = tl; + } + } + var accu = 0, len = 0; + for(;;){ + var n = runtime.caml_ml_input_scan_line(chan); + if(0 === n){ + if(! accu) throw caml_maybe_attach_backtrace(End_of_file, 1); + var _r_ = build_result(caml_create_bytes(len), len, accu); + } + else{ + if(0 >= n){ + var beg = caml_create_bytes(- n | 0); + caml_ml_input(chan, beg, 0, - n | 0); + var + len$1 = len - n | 0, + accu$0 = [0, beg, accu], + accu = accu$0, + len = len$1; + continue; + } + var res = caml_create_bytes(n - 1 | 0); + caml_ml_input(chan, res, 0, n - 1 | 0); + caml_ml_input_char(chan); + if(accu) + var + len$0 = (len + n | 0) - 1 | 0, + _r_ = build_result(caml_create_bytes(len$0), len$0, [0, res, accu]); + else + var _r_ = res; + } + return caml_string_of_bytes(_r_); + } + } + function close_in_noerr(ic){ + try{var _p_ = caml_ml_close_channel(ic); return _p_;}catch(_q_){return 0;} + } + function print_char(c){return caml_ml_output_char(stdout, c);} + function print_string(s){return output_string(stdout, s);} + function print_bytes(s){return output_bytes(stdout, s);} + function print_int(i){return output_string(stdout, "" + i);} + function print_float(f){return output_string(stdout, string_of_float(f));} + function print_endline(s){ + output_string(stdout, s); + caml_ml_output_char(stdout, 10); + return caml_ml_flush(stdout); + } + function print_newline(param){ + caml_ml_output_char(stdout, 10); + return caml_ml_flush(stdout); + } + function prerr_char(c){return caml_ml_output_char(stderr, c);} + function prerr_string(s){return output_string(stderr, s);} + function prerr_bytes(s){return output_bytes(stderr, s);} + function prerr_int(i){return output_string(stderr, "" + i);} + function prerr_float(f){return output_string(stderr, string_of_float(f));} + function prerr_endline(s){ + output_string(stderr, s); + caml_ml_output_char(stderr, 10); + return caml_ml_flush(stderr); + } + function prerr_newline(param){ + caml_ml_output_char(stderr, 10); + return caml_ml_flush(stderr); + } + function read_line(param){caml_ml_flush(stdout); return input_line(stdin);} + function read_int(param){return caml_int_of_string(read_line(0));} + function read_int_opt(param){return int_of_string_opt(read_line(0));} + function read_float(param){return caml_float_of_string(read_line(0));} + function read_float_opt(param){return float_of_string_opt(read_line(0));} + function string_of_format(param){var str = param[2]; return str;} + function symbol$1(param, _n_){ var - global_data=runtime.caml_get_global_data(), - cst$0=caml_string_of_jsbytes("%,"), - cst_really_input=caml_string_of_jsbytes("really_input"), - cst_input=caml_string_of_jsbytes("input"), - cst_output_substring=caml_string_of_jsbytes("output_substring"), - cst_output=caml_string_of_jsbytes("output"), - cst_12g=caml_string_of_jsbytes("%.12g"), - cst=caml_string_of_jsbytes("."), - cst_false$1=caml_string_of_jsbytes("false"), - cst_true$1=caml_string_of_jsbytes("true"), - cst_false$0=caml_string_of_jsbytes("false"), - cst_true$0=caml_string_of_jsbytes("true"), - cst_bool_of_string=caml_string_of_jsbytes("bool_of_string"), - cst_true=caml_string_of_jsbytes("true"), - cst_false=caml_string_of_jsbytes("false"), - cst_char_of_int=caml_string_of_jsbytes("char_of_int"), - cst_Stdlib_Exit=caml_string_of_jsbytes("Stdlib.Exit"), - cst_Stdlib_Pervasives_Exit= - caml_string_of_jsbytes("Stdlib.Pervasives.Exit"), - cst_Stdlib_Sys_Break=caml_string_of_jsbytes("Stdlib.Sys.Break"), - ocaml_version=caml_string_of_jsbytes("4.14.0"), - ocaml_release=[0,4,14,0,0], - cst_Obj_Ephemeron_blit_key= - caml_string_of_jsbytes("Obj.Ephemeron.blit_key"), - cst_Obj_Ephemeron_check_key= - caml_string_of_jsbytes("Obj.Ephemeron.check_key"), - cst_Obj_Ephemeron_unset_key= - caml_string_of_jsbytes("Obj.Ephemeron.unset_key"), - cst_Obj_Ephemeron_set_key=caml_string_of_jsbytes("Obj.Ephemeron.set_key"), - cst_Obj_Ephemeron_get_key_copy= - caml_string_of_jsbytes("Obj.Ephemeron.get_key_copy"), - cst_Obj_Ephemeron_get_key=caml_string_of_jsbytes("Obj.Ephemeron.get_key"), - cst_Obj_Ephemeron_create=caml_string_of_jsbytes("Obj.Ephemeron.create"), - cst_Obj_extension_constructor$0= - caml_string_of_jsbytes("Obj.extension_constructor"), - cst_Obj_extension_constructor= - caml_string_of_jsbytes("Obj.extension_constructor"), - cst_CamlinternalLazy_Undefined= - caml_string_of_jsbytes("CamlinternalLazy.Undefined"), - cst_Seq_drop=caml_string_of_jsbytes("Seq.drop"), - cst_Seq_take=caml_string_of_jsbytes("Seq.take"), - cst_Seq_init=caml_string_of_jsbytes("Seq.init"), - cst_Stdlib_Seq_Forced_twice= - caml_string_of_jsbytes("Stdlib.Seq.Forced_twice"), - cst_option_is_None=caml_string_of_jsbytes("option is None"), - cst_result_is_Ok=caml_string_of_jsbytes("result is Ok _"), - cst_result_is_Error=caml_string_of_jsbytes("result is Error _"), - cst_true$2=caml_string_of_jsbytes("true"), - cst_false$2=caml_string_of_jsbytes("false"), - cst$1=caml_string_of_jsbytes("\\\\"), - cst$2=caml_string_of_jsbytes("\\'"), - cst_b=caml_string_of_jsbytes("\\b"), - cst_t=caml_string_of_jsbytes("\\t"), - cst_n=caml_string_of_jsbytes("\\n"), - cst_r=caml_string_of_jsbytes("\\r"), - cst_Char_chr=caml_string_of_jsbytes("Char.chr"), - cst_is_not_a_latin1_character= - caml_string_of_jsbytes(" is not a latin1 character"), - cst_04X=caml_string_of_jsbytes("%04X"), - cst_U=caml_string_of_jsbytes("U+"), - cst_is_not_an_Unicode_scalar_v= - caml_string_of_jsbytes(" is not an Unicode scalar value"), - cst_X=caml_string_of_jsbytes("%X"), - err_no_pred=caml_string_of_jsbytes("U+0000 has no predecessor"), - err_no_succ=caml_string_of_jsbytes("U+10FFFF has no successor"), - cst_List_map2=caml_string_of_jsbytes("List.map2"), - cst_List_iter2=caml_string_of_jsbytes("List.iter2"), - cst_List_fold_left2=caml_string_of_jsbytes("List.fold_left2"), - cst_List_fold_right2=caml_string_of_jsbytes("List.fold_right2"), - cst_List_for_all2=caml_string_of_jsbytes("List.for_all2"), - cst_List_exists2=caml_string_of_jsbytes("List.exists2"), - cst_List_combine=caml_string_of_jsbytes("List.combine"), - cst_List_rev_map2=caml_string_of_jsbytes("List.rev_map2"), - cst_List_init=caml_string_of_jsbytes("List.init"), - cst_List_nth$0=caml_string_of_jsbytes("List.nth"), - cst_nth=caml_string_of_jsbytes("nth"), - cst_List_nth=caml_string_of_jsbytes("List.nth"), - cst_tl=caml_string_of_jsbytes("tl"), - cst_hd=caml_string_of_jsbytes("hd"), - cst_index_out_of_bounds$2=caml_string_of_jsbytes("index out of bounds"), - cst_index_out_of_bounds$1=caml_string_of_jsbytes("index out of bounds"), - cst_index_out_of_bounds$0=caml_string_of_jsbytes("index out of bounds"), - cst_index_out_of_bounds=caml_string_of_jsbytes("index out of bounds"), - cst_Bytes_of_seq_cannot_grow_b= - caml_string_of_jsbytes("Bytes.of_seq: cannot grow bytes"), - cst_String_rcontains_from_Byte= - caml_string_of_jsbytes("String.rcontains_from / Bytes.rcontains_from"), - cst_String_contains_from_Bytes= - caml_string_of_jsbytes("String.contains_from / Bytes.contains_from"), - cst_String_rindex_from_opt_Byt= - caml_string_of_jsbytes("String.rindex_from_opt / Bytes.rindex_from_opt"), - cst_String_rindex_from_Bytes_r= - caml_string_of_jsbytes("String.rindex_from / Bytes.rindex_from"), - cst_String_index_from_opt_Byte= - caml_string_of_jsbytes("String.index_from_opt / Bytes.index_from_opt"), - cst_String_index_from_Bytes_in= - caml_string_of_jsbytes("String.index_from / Bytes.index_from"), - cst_Bytes_concat=caml_string_of_jsbytes("Bytes.concat"), - cst_String_blit_Bytes_blit_str= - caml_string_of_jsbytes("String.blit / Bytes.blit_string"), - cst_Bytes_blit=caml_string_of_jsbytes("Bytes.blit"), - cst_String_fill_Bytes_fill= - caml_string_of_jsbytes("String.fill / Bytes.fill"), - cst_Bytes_extend=caml_string_of_jsbytes("Bytes.extend"), - cst_String_sub_Bytes_sub=caml_string_of_jsbytes("String.sub / Bytes.sub"), - cst_String_rcontains_from_Byte$0= - caml_string_of_jsbytes("String.rcontains_from / Bytes.rcontains_from"), - cst_String_contains_from_Bytes$0= - caml_string_of_jsbytes("String.contains_from / Bytes.contains_from"), - cst_String_rindex_from_opt_Byt$0= - caml_string_of_jsbytes("String.rindex_from_opt / Bytes.rindex_from_opt"), - cst_String_rindex_from_Bytes_r$0= - caml_string_of_jsbytes("String.rindex_from / Bytes.rindex_from"), - cst_String_index_from_opt_Byte$0= - caml_string_of_jsbytes("String.index_from_opt / Bytes.index_from_opt"), - cst_String_index_from_Bytes_in$0= - caml_string_of_jsbytes("String.index_from / Bytes.index_from"), - cst$4=caml_string_of_jsbytes(""), - cst$3=caml_string_of_jsbytes(""), - cst_String_concat=caml_string_of_jsbytes("String.concat"), - empty$1=caml_string_of_jsbytes(""), - cst$5=caml_string_of_jsbytes("()"), - cst_Marshal_from_bytes=caml_string_of_jsbytes("Marshal.from_bytes"), - cst_Marshal_from_bytes$0=caml_string_of_jsbytes("Marshal.from_bytes"), - cst_Marshal_data_size=caml_string_of_jsbytes("Marshal.data_size"), - cst_Marshal_to_buffer_substrin= - caml_string_of_jsbytes("Marshal.to_buffer: substring out of bounds"), - cst_Array_combine=caml_string_of_jsbytes("Array.combine"), - cst_Array_exists2=caml_string_of_jsbytes("Array.exists2"), - cst_Array_for_all2=caml_string_of_jsbytes("Array.for_all2"), - cst_Array_map2_arrays_must_hav= - caml_string_of_jsbytes("Array.map2: arrays must have the same length"), - cst_Array_iter2_arrays_must_ha= - caml_string_of_jsbytes("Array.iter2: arrays must have the same length"), - cst_Array_blit=caml_string_of_jsbytes("Array.blit"), - cst_Array_fill=caml_string_of_jsbytes("Array.fill"), - cst_Array_sub=caml_string_of_jsbytes("Array.sub"), - cst_Array_init=caml_string_of_jsbytes("Array.init"), - cst_Stdlib_Array_Bottom=caml_string_of_jsbytes("Stdlib.Array.Bottom"), - cst_Float_Array_map2_arrays_mu= - caml_string_of_jsbytes - ("Float.Array.map2: arrays must have the same length"), - cst_Float_Array_iter2_arrays_m= - caml_string_of_jsbytes - ("Float.Array.iter2: arrays must have the same length"), - cst_Float_array_blit=caml_string_of_jsbytes("Float.array.blit"), - cst_Float_array_blit$0=caml_string_of_jsbytes("Float.array.blit"), - cst_Float_Array_fill=caml_string_of_jsbytes("Float.Array.fill"), - cst_Float_Array_sub=caml_string_of_jsbytes("Float.Array.sub"), - cst_Float_Array_concat=caml_string_of_jsbytes("Float.Array.concat"), - cst_Float_Array_init=caml_string_of_jsbytes("Float.Array.init"), - cst_Stdlib_Float_Array_Bottom= - caml_string_of_jsbytes("Stdlib.Float.Array.Bottom"), - cst_d=caml_string_of_jsbytes("%d"), - cst_d$0=caml_string_of_jsbytes("%d"), - zero$2=runtime.caml_int64_create_lo_mi_hi(0,0,0), - one$2=runtime.caml_int64_create_lo_mi_hi(1,0,0), - minus_one$2=runtime.caml_int64_create_lo_mi_hi(16777215,16777215,65535), - min_int$2=runtime.caml_int64_create_lo_mi_hi(0,0,32768), - max_int$2=runtime.caml_int64_create_lo_mi_hi(16777215,16777215,32767), - cst_d$1=caml_string_of_jsbytes("%d"), - cst_Lexing_lex_refill_cannot_g= - caml_string_of_jsbytes("Lexing.lex_refill: cannot grow buffer"), - dummy_pos=[0,caml_string_of_jsbytes(""),0,0,-1], - zero_pos=[0,caml_string_of_jsbytes(""),1,0,0], - cst_syntax_error=caml_string_of_jsbytes("syntax error"), - cst_Stdlib_Parsing_YYexit=caml_string_of_jsbytes("Stdlib.Parsing.YYexit"), - cst_Stdlib_Parsing_Parse_error= - caml_string_of_jsbytes("Stdlib.Parsing.Parse_error"), - cst_Set_remove_min_elt=caml_string_of_jsbytes("Set.remove_min_elt"), - cst_Set_bal=caml_string_of_jsbytes("Set.bal"), - cst_Set_bal$0=caml_string_of_jsbytes("Set.bal"), - cst_Set_bal$1=caml_string_of_jsbytes("Set.bal"), - cst_Set_bal$2=caml_string_of_jsbytes("Set.bal"), - cst_Map_remove_min_elt=caml_string_of_jsbytes("Map.remove_min_elt"), - cst_Map_bal=caml_string_of_jsbytes("Map.bal"), - cst_Map_bal$0=caml_string_of_jsbytes("Map.bal"), - cst_Map_bal$1=caml_string_of_jsbytes("Map.bal"), - cst_Map_bal$2=caml_string_of_jsbytes("Map.bal"), - cst_Stdlib_Stack_Empty=caml_string_of_jsbytes("Stdlib.Stack.Empty"), - cst_Stdlib_Queue_Empty=caml_string_of_jsbytes("Stdlib.Queue.Empty"), - cst_count=caml_string_of_jsbytes("{count = "), - cst_data=caml_string_of_jsbytes("; data = "), - cst$6=caml_string_of_jsbytes("}"), - cst_Sempty=caml_string_of_jsbytes("Sempty"), - cst_Scons=caml_string_of_jsbytes("Scons ("), - cst$7=caml_string_of_jsbytes(", "), - cst$8=caml_string_of_jsbytes(")"), - cst_Sapp=caml_string_of_jsbytes("Sapp ("), - cst$9=caml_string_of_jsbytes(", "), - cst$10=caml_string_of_jsbytes(")"), - cst_Slazy=caml_string_of_jsbytes("Slazy"), - cst_Sgen=caml_string_of_jsbytes("Sgen"), - cst_Sbuffio=caml_string_of_jsbytes("Sbuffio"), - cst_Stdlib_Stream_Failure=caml_string_of_jsbytes("Stdlib.Stream.Failure"), - cst_Stdlib_Stream_Error=caml_string_of_jsbytes("Stdlib.Stream.Error"), - cst_Buffer_truncate=caml_string_of_jsbytes("Buffer.truncate"), - cst_Buffer_add_channel=caml_string_of_jsbytes("Buffer.add_channel"), - cst_Buffer_add_substring_add_s= - caml_string_of_jsbytes("Buffer.add_substring/add_subbytes"), - cst_Buffer_add_cannot_grow_buf= - caml_string_of_jsbytes("Buffer.add: cannot grow buffer"), - cst_Buffer_nth=caml_string_of_jsbytes("Buffer.nth"), - cst_Buffer_blit=caml_string_of_jsbytes("Buffer.blit"), - cst_Buffer_sub=caml_string_of_jsbytes("Buffer.sub"), - cst_c=caml_string_of_jsbytes("%c"), - cst_s=caml_string_of_jsbytes("%s"), - cst_i=caml_string_of_jsbytes("%i"), - cst_li=caml_string_of_jsbytes("%li"), - cst_ni=caml_string_of_jsbytes("%ni"), - cst_Li=caml_string_of_jsbytes("%Li"), - cst_f=caml_string_of_jsbytes("%f"), - cst_B=caml_string_of_jsbytes("%B"), - cst$21=caml_string_of_jsbytes("%{"), - cst$22=caml_string_of_jsbytes("%}"), - cst$23=caml_string_of_jsbytes("%("), - cst$24=caml_string_of_jsbytes("%)"), - cst_a=caml_string_of_jsbytes("%a"), - cst_t$0=caml_string_of_jsbytes("%t"), - cst$25=caml_string_of_jsbytes("%?"), - cst_r$0=caml_string_of_jsbytes("%r"), - cst_r$1=caml_string_of_jsbytes("%_r"), - cst_u$0=caml_string_of_jsbytes("%u"), - cst_Printf_bad_conversion= - caml_string_of_jsbytes("Printf: bad conversion %["), - cst_Printf_bad_conversion$0= - caml_string_of_jsbytes("Printf: bad conversion %_"), - cst$30=caml_string_of_jsbytes("@{"), - cst$31=caml_string_of_jsbytes("@["), - cst$32=caml_string_of_jsbytes("@{"), - cst$33=caml_string_of_jsbytes("@["), - cst$34=caml_string_of_jsbytes("@{"), - cst$35=caml_string_of_jsbytes("@["), - cst_0=caml_string_of_jsbytes("0"), - cst_padding=caml_string_of_jsbytes("padding"), - cst_precision=caml_string_of_jsbytes("precision"), - cst$40=caml_string_of_jsbytes("'*'"), - cst$38=caml_string_of_jsbytes("'-'"), - cst_0$2=caml_string_of_jsbytes("'0'"), - cst$39=caml_string_of_jsbytes("'*'"), - cst_0$0=caml_string_of_jsbytes("0"), - cst_0$1=caml_string_of_jsbytes("0"), - cst_precision$0=caml_string_of_jsbytes("precision"), - cst_precision$1=caml_string_of_jsbytes("precision"), - cst$41=caml_string_of_jsbytes("'+'"), - cst$42=caml_string_of_jsbytes("'#'"), - cst$43=caml_string_of_jsbytes("' '"), - cst_padding$0=caml_string_of_jsbytes("`padding'"), - cst_precision$2=caml_string_of_jsbytes("`precision'"), - cst$44=caml_string_of_jsbytes("'+'"), - cst$45=caml_string_of_jsbytes("'_'"), - sub_format=[0,0,caml_string_of_jsbytes("")], - formatting_lit=[0,caml_string_of_jsbytes("@;"),1,0], - cst_digit=caml_string_of_jsbytes("digit"), - cst_character=caml_string_of_jsbytes("character ')'"), - cst_character$0=caml_string_of_jsbytes("character '}'"), - cst$49=caml_string_of_jsbytes("'#'"), - cst$46=caml_string_of_jsbytes("'+'"), - cst$47=caml_string_of_jsbytes("'+'"), - cst$48=caml_string_of_jsbytes("' '"), - cst$50=caml_string_of_jsbytes("'+'"), - cst_non_zero_widths_are_unsupp= - caml_string_of_jsbytes - ("non-zero widths are unsupported for %c conversions"), - cst_unexpected_end_of_format= - caml_string_of_jsbytes("unexpected end of format"), - cst$36=caml_string_of_jsbytes(""), - cst$37=caml_string_of_jsbytes(""), - cst_b$0=caml_string_of_jsbytes("b"), - cst_h=caml_string_of_jsbytes("h"), - cst_hov=caml_string_of_jsbytes("hov"), - cst_hv=caml_string_of_jsbytes("hv"), - cst_v=caml_string_of_jsbytes("v"), - cst_nan=caml_string_of_jsbytes("nan"), - cst_neg_infinity=caml_string_of_jsbytes("neg_infinity"), - cst_infinity=caml_string_of_jsbytes("infinity"), - cst$29=caml_string_of_jsbytes("."), - cst_nd$0=caml_string_of_jsbytes("%+nd"), - cst_nd$1=caml_string_of_jsbytes("% nd"), - cst_ni$1=caml_string_of_jsbytes("%+ni"), - cst_ni$2=caml_string_of_jsbytes("% ni"), - cst_nx=caml_string_of_jsbytes("%nx"), - cst_nx$0=caml_string_of_jsbytes("%#nx"), - cst_nX=caml_string_of_jsbytes("%nX"), - cst_nX$0=caml_string_of_jsbytes("%#nX"), - cst_no=caml_string_of_jsbytes("%no"), - cst_no$0=caml_string_of_jsbytes("%#no"), - cst_nd=caml_string_of_jsbytes("%nd"), - cst_ni$0=caml_string_of_jsbytes("%ni"), - cst_nu=caml_string_of_jsbytes("%nu"), - cst_ld$0=caml_string_of_jsbytes("%+ld"), - cst_ld$1=caml_string_of_jsbytes("% ld"), - cst_li$1=caml_string_of_jsbytes("%+li"), - cst_li$2=caml_string_of_jsbytes("% li"), - cst_lx=caml_string_of_jsbytes("%lx"), - cst_lx$0=caml_string_of_jsbytes("%#lx"), - cst_lX=caml_string_of_jsbytes("%lX"), - cst_lX$0=caml_string_of_jsbytes("%#lX"), - cst_lo=caml_string_of_jsbytes("%lo"), - cst_lo$0=caml_string_of_jsbytes("%#lo"), - cst_ld=caml_string_of_jsbytes("%ld"), - cst_li$0=caml_string_of_jsbytes("%li"), - cst_lu=caml_string_of_jsbytes("%lu"), - cst_Ld$0=caml_string_of_jsbytes("%+Ld"), - cst_Ld$1=caml_string_of_jsbytes("% Ld"), - cst_Li$1=caml_string_of_jsbytes("%+Li"), - cst_Li$2=caml_string_of_jsbytes("% Li"), - cst_Lx=caml_string_of_jsbytes("%Lx"), - cst_Lx$0=caml_string_of_jsbytes("%#Lx"), - cst_LX=caml_string_of_jsbytes("%LX"), - cst_LX$0=caml_string_of_jsbytes("%#LX"), - cst_Lo=caml_string_of_jsbytes("%Lo"), - cst_Lo$0=caml_string_of_jsbytes("%#Lo"), - cst_Ld=caml_string_of_jsbytes("%Ld"), - cst_Li$0=caml_string_of_jsbytes("%Li"), - cst_Lu=caml_string_of_jsbytes("%Lu"), - cst_d$3=caml_string_of_jsbytes("%+d"), - cst_d$4=caml_string_of_jsbytes("% d"), - cst_i$1=caml_string_of_jsbytes("%+i"), - cst_i$2=caml_string_of_jsbytes("% i"), - cst_x=caml_string_of_jsbytes("%x"), - cst_x$0=caml_string_of_jsbytes("%#x"), - cst_X$0=caml_string_of_jsbytes("%X"), - cst_X$1=caml_string_of_jsbytes("%#X"), - cst_o=caml_string_of_jsbytes("%o"), - cst_o$0=caml_string_of_jsbytes("%#o"), - cst_d$2=caml_string_of_jsbytes("%d"), - cst_i$0=caml_string_of_jsbytes("%i"), - cst_u=caml_string_of_jsbytes("%u"), - cst$26=caml_string_of_jsbytes("%!"), - cst$27=caml_string_of_jsbytes("@{"), - cst$28=caml_string_of_jsbytes("@["), - cst_0c=caml_string_of_jsbytes("0c"), - cst$20=caml_string_of_jsbytes("%%"), - cst$12=caml_string_of_jsbytes("@]"), - cst$13=caml_string_of_jsbytes("@}"), - cst$14=caml_string_of_jsbytes("@?"), - cst$15=caml_string_of_jsbytes("@\n"), - cst$16=caml_string_of_jsbytes("@."), - cst$17=caml_string_of_jsbytes("@@"), - cst$18=caml_string_of_jsbytes("@%"), - cst$19=caml_string_of_jsbytes("@"), - cst$11=caml_string_of_jsbytes(".*"), - cst_CamlinternalFormat_Type_mi= - caml_string_of_jsbytes("CamlinternalFormat.Type_mismatch"), - cst$58=caml_string_of_jsbytes(""), - cst$59=caml_string_of_jsbytes("\n"), - cst_a_boolean=caml_string_of_jsbytes("a boolean"), - cst_an_integer=caml_string_of_jsbytes("an integer"), - cst_an_integer$0=caml_string_of_jsbytes("an integer"), - cst_a_float=caml_string_of_jsbytes("a float"), - cst_a_float$0=caml_string_of_jsbytes("a float"), - cst$55=caml_string_of_jsbytes(""), - cst$56=caml_string_of_jsbytes(" "), - cst$57=caml_string_of_jsbytes(""), - cst_one_of=caml_string_of_jsbytes("one of: "), - cst_Arg_Expand_is_is_only_allo= - caml_string_of_jsbytes - ("Arg.Expand is is only allowed with Arg.parse_and_expand_argv_dynamic"), - cst_no_argument=caml_string_of_jsbytes("no argument"), - cst$54=caml_string_of_jsbytes("(?)"), - cst_help$3=caml_string_of_jsbytes("--help"), - cst_help$4=caml_string_of_jsbytes("-help"), - cst_help$2=caml_string_of_jsbytes("-help"), - cst_Display_this_list_of_optio= - caml_string_of_jsbytes(" Display this list of options"), - cst_help=caml_string_of_jsbytes("-help"), - cst_help$1=caml_string_of_jsbytes("--help"), - cst_Display_this_list_of_optio$0= - caml_string_of_jsbytes(" Display this list of options"), - cst_help$0=caml_string_of_jsbytes("--help"), - cst$51=caml_string_of_jsbytes("}"), - cst$52=caml_string_of_jsbytes("|"), - cst$53=caml_string_of_jsbytes("{"), - cst_none=caml_string_of_jsbytes(""), - cst_Stdlib_Arg_Bad=caml_string_of_jsbytes("Stdlib.Arg.Bad"), - cst_Stdlib_Arg_Help=caml_string_of_jsbytes("Stdlib.Arg.Help"), - cst_Stdlib_Arg_Stop=caml_string_of_jsbytes("Stdlib.Arg.Stop"), - cst$61=caml_string_of_jsbytes(""), - cst_Fatal_error_out_of_memory_= - caml_string_of_jsbytes - ("Fatal error: out of memory in uncaught exception handler"), - cst$65=caml_string_of_jsbytes(""), - cst_Program_not_linked_with_g_= - caml_string_of_jsbytes - ("(Program not linked with -g, cannot print stack backtrace)\n"), - cst_Raised_at=caml_string_of_jsbytes("Raised at"), - cst_Re_raised_at=caml_string_of_jsbytes("Re-raised at"), - cst_Raised_by_primitive_operat= - caml_string_of_jsbytes("Raised by primitive operation at"), - cst_Called_from=caml_string_of_jsbytes("Called from"), - cst_inlined=caml_string_of_jsbytes(" (inlined)"), - cst$64=caml_string_of_jsbytes(""), - partial=[4,0,0,0,[12,45,[4,0,0,0,0]]], - cst_Out_of_memory=caml_string_of_jsbytes("Out of memory"), - cst_Stack_overflow=caml_string_of_jsbytes("Stack overflow"), - cst_Pattern_matching_failed= - caml_string_of_jsbytes("Pattern matching failed"), - cst_Assertion_failed=caml_string_of_jsbytes("Assertion failed"), - cst_Undefined_recursive_module= - caml_string_of_jsbytes("Undefined recursive module"), - cst$62=caml_string_of_jsbytes(""), - cst$63=caml_string_of_jsbytes(""), - cst$60=caml_string_of_jsbytes("_"), - locfmt= + str2 = _n_[2], + fmt2 = _n_[1], + str1 = param[2], + fmt1 = param[1], + _o_ = symbol(str1, symbol(cst$0, str2)); + return [0, caml_call2(CamlinternalFormatBasics[3], fmt1, fmt2), _o_]; + } + var exit_function = caml_call1(CamlinternalAtomic[1], flush_all); + function at_exit(f){ + for(;;){ + var + f_yet_to_run = caml_call1(CamlinternalAtomic[1], 1), + old_exit = caml_call1(CamlinternalAtomic[2], exit_function), + new_exit$0 = + function(f_yet_to_run, old_exit){ + function new_exit(param){ + if(caml_call3(CamlinternalAtomic[5], f_yet_to_run, 1, 0)) + caml_call1(f, 0); + return caml_call1(old_exit, 0); + } + return new_exit; + }, + new_exit = new_exit$0(f_yet_to_run, old_exit), + success = + caml_call3(CamlinternalAtomic[5], exit_function, old_exit, new_exit), + _m_ = 1 - success; + if(_m_) continue; + return _m_; + } + } + function do_at_exit(param){ + return caml_call1(caml_call1(CamlinternalAtomic[2], exit_function), 0); + } + function exit(retcode){ + do_at_exit(0); + return runtime.caml_sys_exit(retcode); + } + runtime.caml_register_named_value("Pervasives.do_at_exit", do_at_exit); + var + Stdlib = + [0, + invalid_arg, + failwith, + Exit, + Match_failure, + Assert_failure, + Invalid_argument, + Failure, + Not_found, + Out_of_memory, + Stack_overflow, + Sys_error, + End_of_file, + Division_by_zero, + Sys_blocked_io, + Undefined_recursive_module, + min, + max, + abs, + max_int, + min_int, + lnot, + infinity, + neg_infinity, + nan, + max_float, + min_float, + epsilon_float, + symbol, + char_of_int, + string_of_bool, + bool_of_string_opt, + bool_of_string, + string_of_int, + int_of_string_opt, + string_of_float, + float_of_string_opt, + symbol$0, + stdin, + stdout, + stderr, + print_char, + print_string, + print_bytes, + print_int, + print_float, + print_endline, + print_newline, + prerr_char, + prerr_string, + prerr_bytes, + prerr_int, + prerr_float, + prerr_endline, + prerr_newline, + read_line, + read_int_opt, + read_int, + read_float_opt, + read_float, + open_out, + open_out_bin, + open_out_gen, + caml_ml_flush, + flush_all, + caml_ml_output_char, + output_string, + output_bytes, + output, + output_substring, + caml_ml_output_char, + runtime.caml_ml_output_int, + output_value, + runtime.caml_ml_seek_out, + runtime.caml_ml_pos_out, + caml_ml_channel_size, + close_out, + close_out_noerr, + caml_ml_set_binary_mode, + open_in, + open_in_bin, + open_in_gen, + caml_ml_input_char, + input_line, + input, + really_input, + really_input_string, + caml_ml_input_char, + runtime.caml_ml_input_int, + runtime.caml_input_value, + runtime.caml_ml_seek_in, + runtime.caml_ml_pos_in, + caml_ml_channel_size, + caml_ml_close_channel, + close_in_noerr, + caml_ml_set_binary_mode, + [0, + runtime.caml_ml_seek_out_64, + runtime.caml_ml_pos_out_64, + caml_ml_channel_size_64, + runtime.caml_ml_seek_in_64, + runtime.caml_ml_pos_in_64, + caml_ml_channel_size_64], + string_of_format, + symbol$1, + exit, + at_exit, + valid_float_lexem, + unsafe_really_input, + do_at_exit]; + runtime.caml_register_global(46, Stdlib, "Stdlib"); + return; + } + (globalThis)); + +//# 996 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_wrap_exception = runtime.caml_wrap_exception, + global_data = runtime.caml_get_global_data(), + ocaml_version = "4.14.0", + ocaml_release = [0, 4, 14, 0, 0], + Stdlib = global_data.Stdlib, + executable_name = runtime.caml_sys_executable_name(0), + os_type = runtime.caml_sys_get_config(0)[1], + backend_type = [0, "js_of_ocaml"], + unix = runtime.caml_sys_const_ostype_unix(0), + win32 = runtime.caml_sys_const_ostype_win32(0), + cygwin = runtime.caml_sys_const_ostype_cygwin(0), + max_array_length = runtime.caml_sys_const_max_wosize(0), + max_floatarray_length = max_array_length / 2 | 0, + max_string_length = (4 * max_array_length | 0) - 1 | 0, + cst_Stdlib_Sys_Break = "Stdlib.Sys.Break", + big_endian = 0, + word_size = 32, + int_size = 32; + function getenv_opt(s){ + try{var _d_ = [0, runtime.caml_sys_getenv(s)]; return _d_;} + catch(_e_){ + var _c_ = caml_wrap_exception(_e_); + if(_c_ === Stdlib[8]) return 0; + throw caml_maybe_attach_backtrace(_c_, 0); + } + } + var interactive = [0, 0]; + function set_signal(sig_num, sig_beh){return 0;} + var + Break = [248, cst_Stdlib_Sys_Break, runtime.caml_fresh_oo_id(0)], + sigabrt = -1, + sigalrm = -2, + sigfpe = -3, + sighup = -4, + sigill = -5, + sigint = -6, + sigkill = -7, + sigpipe = -8, + sigquit = -9, + sigsegv = -10, + sigterm = -11, + sigusr1 = -12, + sigusr2 = -13, + sigchld = -14, + sigcont = -15, + sigstop = -16, + sigtstp = -17, + sigttin = -18, + sigttou = -19, + sigvtalrm = -20, + sigprof = -21, + sigbus = -22, + sigpoll = -23, + sigsys = -24, + sigtrap = -25, + sigurg = -26, + sigxcpu = -27, + sigxfsz = -28; + function catch_break(on){return on ? 0 : 0;} + var development_version = 0; + function Make(_b_, _a_){return [0, 1];} + var + Immediate64 = [0, Make], + Stdlib_Sys = + [0, + executable_name, + getenv_opt, + interactive, + os_type, + backend_type, + unix, + win32, + cygwin, + word_size, + int_size, + big_endian, + max_string_length, + max_array_length, + max_floatarray_length, + set_signal, + sigabrt, + sigalrm, + sigfpe, + sighup, + sigill, + sigint, + sigkill, + sigpipe, + sigquit, + sigsegv, + sigterm, + sigusr1, + sigusr2, + sigchld, + sigcont, + sigstop, + sigtstp, + sigttin, + sigttou, + sigvtalrm, + sigprof, + sigbus, + sigpoll, + sigsys, + sigtrap, + sigurg, + sigxcpu, + sigxfsz, + Break, + catch_break, + ocaml_version, + development_version, + ocaml_release, + runtime.caml_ml_enable_runtime_warnings, + runtime.caml_ml_runtime_warnings_enabled, + Immediate64]; + runtime.caml_register_global(4, Stdlib_Sys, "Stdlib__Sys"); + return; + } + (globalThis)); + +//# 1125 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_Obj_extension_constructor$1 = "Obj.extension_constructor", + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_obj_tag = runtime.caml_obj_tag; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib = global_data.Stdlib, + Assert_failure = global_data.Assert_failure, + Stdlib_Sys = global_data.Stdlib__Sys, + cst_Obj_Ephemeron_blit_key = "Obj.Ephemeron.blit_key", + cst_Obj_Ephemeron_check_key = "Obj.Ephemeron.check_key", + cst_Obj_Ephemeron_unset_key = "Obj.Ephemeron.unset_key", + cst_Obj_Ephemeron_set_key = "Obj.Ephemeron.set_key", + cst_Obj_Ephemeron_get_key_copy = "Obj.Ephemeron.get_key_copy", + cst_Obj_Ephemeron_get_key = "Obj.Ephemeron.get_key", + cst_Obj_Ephemeron_create = "Obj.Ephemeron.create", + cst_Obj_extension_constructor$0 = cst_Obj_extension_constructor$1, + cst_Obj_extension_constructor = cst_Obj_extension_constructor$1, + _a_ = [0, "obj.ml", 95, 4]; + function is_block(a){return 1 - (typeof a === "number" ? 1 : 0);} + var + double_field = runtime.caml_array_get, + set_double_field = runtime.caml_array_set, + first_non_constant_constructor = 0, + last_non_constant_constructor_ = 245, + lazy_tag = 246, + closure_tag = 247, + object_tag = 248, + infix_tag = 249, + forward_tag = 250, + no_scan_tag = 251, + abstract_tag = 251, + string_tag = 252, + double_tag = 253, + double_array_tag = 254, + custom_tag = 255, + int_tag = 1000, + out_of_heap_tag = 1001, + unaligned_tag = 1002; + function info(obj){ + if(caml_obj_tag(obj) !== 247) + throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); + var + info = runtime.caml_obj_raw_field(obj, 1), + arity = 64 === Stdlib_Sys[9] ? info >> 56 : info >> 24, + start_env = info << 8 >>> 9 | 0; + return [0, arity, start_env]; + } + function of_val(x){ + var switch$0 = 0; + if(is_block(x) && caml_obj_tag(x) !== 248 && 1 <= x.length - 1){var slot = x[1]; switch$0 = 1;} + if(! switch$0) var slot = x; + var switch$1 = 0; + if(is_block(slot) && caml_obj_tag(slot) === 248){var name = slot[1]; switch$1 = 1;} + if(! switch$1) + var name = caml_call1(Stdlib[1], cst_Obj_extension_constructor$0); + return caml_obj_tag(name) === 252 + ? slot + : caml_call1(Stdlib[1], cst_Obj_extension_constructor); + } + function name(slot){return slot[1];} + function id(slot){return slot[2];} + var + Extension_constructor = [0, of_val, name, id], + extension_constructor = Extension_constructor[1], + extension_name = Extension_constructor[2], + extension_id = Extension_constructor[3], + max_ephe_length = Stdlib_Sys[13] - 2 | 0; + function create(l){ + var _g_ = 0 <= l ? 1 : 0, _h_ = _g_ ? l <= max_ephe_length ? 1 : 0 : _g_; + if(1 - _h_) caml_call1(Stdlib[1], cst_Obj_Ephemeron_create); + return runtime.caml_ephe_create(l); + } + function length(x){return x.length - 1 - 2 | 0;} + function raise_if_invalid_offset(e, o, msg){ + var + _d_ = 0 <= o ? 1 : 0, + _e_ = _d_ ? o < length(e) ? 1 : 0 : _d_, + _f_ = 1 - _e_; + return _f_ ? caml_call1(Stdlib[1], msg) : _f_; + } + function get_key(e, o){ + raise_if_invalid_offset(e, o, cst_Obj_Ephemeron_get_key); + return runtime.caml_ephe_get_key(e, o); + } + function get_key_copy(e, o){ + raise_if_invalid_offset(e, o, cst_Obj_Ephemeron_get_key_copy); + return runtime.caml_ephe_get_key_copy(e, o); + } + function set_key(e, o, x){ + raise_if_invalid_offset(e, o, cst_Obj_Ephemeron_set_key); + return runtime.caml_ephe_set_key(e, o, x); + } + function unset_key(e, o){ + raise_if_invalid_offset(e, o, cst_Obj_Ephemeron_unset_key); + return runtime.caml_ephe_unset_key(e, o); + } + function check_key(e, o){ + raise_if_invalid_offset(e, o, cst_Obj_Ephemeron_check_key); + return runtime.caml_ephe_check_key(e, o); + } + function blit_key(e1, o1, e2, o2, l){ + if + (0 <= l + && + 0 <= o1 + && (length(e1) - l | 0) >= o1 && 0 <= o2 && (length(e2) - l | 0) >= o2){ + var + _b_ = 0 !== l ? 1 : 0, + _c_ = _b_ ? runtime.caml_ephe_blit_key(e1, o1, e2, o2, l) : _b_; + return _c_; + } + return caml_call1(Stdlib[1], cst_Obj_Ephemeron_blit_key); + } + var + Stdlib_Obj = + [0, + is_block, + double_field, + set_double_field, + first_non_constant_constructor, + last_non_constant_constructor_, + lazy_tag, + closure_tag, + object_tag, + infix_tag, + forward_tag, + no_scan_tag, + abstract_tag, + string_tag, + double_tag, + double_array_tag, + custom_tag, + custom_tag, + int_tag, + out_of_heap_tag, + unaligned_tag, + [0, info], + Extension_constructor, + extension_constructor, + extension_name, + extension_id, + [0, + create, + length, + get_key, + get_key_copy, + set_key, + unset_key, + check_key, + blit_key, + runtime.caml_ephe_get_data, + runtime.caml_ephe_get_data_copy, + runtime.caml_ephe_set_data, + runtime.caml_ephe_unset_data, + runtime.caml_ephe_check_data, + runtime.caml_ephe_blit_data, + max_ephe_length]]; + runtime.caml_register_global(13, Stdlib_Obj, "Stdlib__Obj"); + return; + } + (globalThis)); + +//# 1299 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_obj_make_forward = runtime.caml_obj_make_forward, + caml_obj_tag = runtime.caml_obj_tag, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib_Obj = global_data.Stdlib__Obj, + Undefined = + [248, "CamlinternalLazy.Undefined", runtime.caml_fresh_oo_id(0)]; + function raise_undefined(param){ + throw caml_maybe_attach_backtrace(Undefined, 1); + } + function force_lazy_block(blk){ + var closure = blk[1]; + blk[1] = raise_undefined; + try{ + var result = caml_call1(closure, 0); + caml_obj_make_forward(blk, result); + return result; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + blk[1] = function(param){throw caml_maybe_attach_backtrace(e, 0);}; + throw caml_maybe_attach_backtrace(e, 0); + } + } + function force_val_lazy_block(blk){ + var closure = blk[1]; + blk[1] = raise_undefined; + var result = caml_call1(closure, 0); + caml_obj_make_forward(blk, result); + return result; + } + function force(lzv){ + var t = caml_obj_tag(lzv); + return t === Stdlib_Obj[10] + ? lzv[1] + : t !== Stdlib_Obj[6] ? lzv : force_lazy_block(lzv); + } + function force_val(lzv){ + var t = caml_obj_tag(lzv); + return t === Stdlib_Obj[10] + ? lzv[1] + : t !== Stdlib_Obj[6] ? lzv : force_val_lazy_block(lzv); + } + var + CamlinternalLazy = + [0, Undefined, force_lazy_block, force_val_lazy_block, force, force_val]; + runtime.caml_register_global(2, CamlinternalLazy, "CamlinternalLazy"); + return; + } + (globalThis)); + +//# 1364 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var runtime = globalThis.jsoo_runtime, caml_obj_tag = runtime.caml_obj_tag; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + var + global_data = runtime.caml_get_global_data(), + CamlinternalLazy = global_data.CamlinternalLazy, + Stdlib_Obj = global_data.Stdlib__Obj, + Undefined = CamlinternalLazy[1], + force_val = CamlinternalLazy[5]; + function from_fun(f){ + var x = runtime.caml_obj_block(Stdlib_Obj[6], 1); + x[1] = f; + return x; + } + function from_val(v){ + var t = caml_obj_tag(v); + if(t !== Stdlib_Obj[10] && t !== Stdlib_Obj[6] && t !== Stdlib_Obj[14]) + return v; + return runtime.caml_lazy_make_forward(v); + } + function is_val(l){ + var _i_ = Stdlib_Obj[6]; + return caml_obj_tag(l) !== _i_ ? 1 : 0; + } + function map(f, x){ + return [246, + function(_f_){ + var + _g_ = caml_obj_tag(x), + _h_ = + 250 === _g_ + ? x[1] + : 246 === _g_ ? caml_call1(CamlinternalLazy[2], x) : x; + return caml_call1(f, _h_); + }]; + } + function map_val(f, x){ + if(! is_val(x)) + return [246, + function(_c_){ + var + _d_ = caml_obj_tag(x), + _e_ = + 250 === _d_ + ? x[1] + : 246 === _d_ ? caml_call1(CamlinternalLazy[2], x) : x; + return caml_call1(f, _e_); + }]; + var + _a_ = caml_obj_tag(x), + _b_ = + 250 === _a_ + ? x[1] + : 246 === _a_ ? caml_call1(CamlinternalLazy[2], x) : x; + return from_val(caml_call1(f, _b_)); + } + var + Stdlib_Lazy = + [0, + Undefined, + map, + is_val, + from_val, + map_val, + from_fun, + force_val, + from_fun, + from_val, + is_val]; + runtime.caml_register_global(2, Stdlib_Lazy, "Stdlib__Lazy"); + return; + } + (globalThis)); + +//# 1446 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + var + global_data = runtime.caml_get_global_data(), + Assert_failure = global_data.Assert_failure, + CamlinternalAtomic = global_data.CamlinternalAtomic, + CamlinternalLazy = global_data.CamlinternalLazy, + Stdlib = global_data.Stdlib, + Stdlib_Lazy = global_data.Stdlib__Lazy, + _a_ = [0, "seq.ml", 596, 4], + cst_Seq_drop = "Seq.drop", + cst_Seq_take = "Seq.take", + cst_Seq_init = "Seq.init", + cst_Stdlib_Seq_Forced_twice = "Stdlib.Seq.Forced_twice"; + function empty(param){return 0;} + function return$0(x, param){return [0, x, empty];} + function cons(x, next, param){return [0, x, next];} + function append(seq1, seq2, param){ + var match = caml_call1(seq1, 0); + if(! match) return caml_call1(seq2, 0); + var next = match[2], x = match[1]; + return [0, x, function(_aM_){return append(next, seq2, _aM_);}]; + } + function map(f, seq, param){ + var match = caml_call1(seq, 0); + if(! match) return 0; + var next = match[2], x = match[1]; + function _aK_(_aL_){return map(f, next, _aL_);} + return [0, caml_call1(f, x), _aK_]; + } + function filter_map(f, seq, param){ + var seq$0 = seq; + for(;;){ + var match = caml_call1(seq$0, 0); + if(! match) return 0; + var next = match[2], x = match[1], match$0 = caml_call1(f, x); + if(match$0){ + var y = match$0[1]; + return [0, y, function(_aJ_){return filter_map(f, next, _aJ_);}]; + } + var seq$0 = next; + } + } + function filter(f, seq, param){ + var seq$0 = seq; + for(;;){ + var match = caml_call1(seq$0, 0); + if(! match) return 0; + var next = match[2], x = match[1]; + if(caml_call1(f, x)) + return [0, x, function(_aI_){return filter(f, next, _aI_);}]; + var seq$0 = next; + } + } + function concat(seq, param){ + var match = caml_call1(seq, 0); + if(! match) return 0; + var next = match[2], x = match[1], _aG_ = 0; + return append(x, function(_aH_){return concat(next, _aH_);}, _aG_); + } + function flat_map(f, seq, param){ + var match = caml_call1(seq, 0); + if(! match) return 0; + var next = match[2], x = match[1], _aD_ = 0; + function _aE_(_aF_){return flat_map(f, next, _aF_);} + return append(caml_call1(f, x), _aE_, _aD_); + } + function fold_left(f, acc, seq){ + var acc$0 = acc, seq$0 = seq; + for(;;){ + var match = caml_call1(seq$0, 0); + if(! match) return acc$0; + var + next = match[2], + x = match[1], + acc$1 = caml_call2(f, acc$0, x), + acc$0 = acc$1, + seq$0 = next; + } + } + function iter(f, seq){ + var seq$0 = seq; + for(;;){ + var match = caml_call1(seq$0, 0); + if(! match) return 0; + var next = match[2], x = match[1]; + caml_call1(f, x); + var seq$0 = next; + } + } + function unfold(f, u, param){ + var match = caml_call1(f, u); + if(! match) return 0; + var match$0 = match[1], u$0 = match$0[2], x = match$0[1]; + return [0, x, function(_aC_){return unfold(f, u$0, _aC_);}]; + } + function is_empty(xs){return caml_call1(xs, 0) ? 0 : 1;} + function uncons(xs){ + var match = caml_call1(xs, 0); + if(! match) return 0; + var xs$0 = match[2], x = match[1]; + return [0, [0, x, xs$0]]; + } + function length(xs$1){ + var accu = 0, xs = xs$1; + for(;;){ + var match = caml_call1(xs, 0); + if(! match) return accu; + var xs$0 = match[2], accu$0 = accu + 1 | 0, accu = accu$0, xs = xs$0; + } + } + function iteri(f, xs$1){ + var i = 0, xs = xs$1; + for(;;){ + var match = caml_call1(xs, 0); + if(! match) return 0; + var xs$0 = match[2], x = match[1]; + caml_call2(f, i, x); + var i$0 = i + 1 | 0, i = i$0, xs = xs$0; + } + } + function fold_lefti(f, accu$1, xs$1){ + var accu = accu$1, i = 0, xs = xs$1; + for(;;){ + var match = caml_call1(xs, 0); + if(! match) return accu; + var + xs$0 = match[2], + x = match[1], + accu$0 = caml_call3(f, accu, i, x), + i$0 = i + 1 | 0, + accu = accu$0, + i = i$0, + xs = xs$0; + } + } + function for_all(p, xs){ + var xs$0 = xs; + for(;;){ + var match = caml_call1(xs$0, 0); + if(! match) return 1; + var xs$1 = match[2], x = match[1], _aB_ = caml_call1(p, x); + if(! _aB_) return _aB_; + var xs$0 = xs$1; + } + } + function exists(p, xs){ + var xs$0 = xs; + for(;;){ + var match = caml_call1(xs$0, 0); + if(! match) return 0; + var xs$1 = match[2], x = match[1], _aA_ = caml_call1(p, x); + if(_aA_) return _aA_; + var xs$0 = xs$1; + } + } + function find(p, xs){ + var xs$0 = xs; + for(;;){ + var match = caml_call1(xs$0, 0); + if(! match) return 0; + var xs$1 = match[2], x = match[1]; + if(caml_call1(p, x)) return [0, x]; + var xs$0 = xs$1; + } + } + function find_map(f, xs){ + var xs$0 = xs; + for(;;){ + var match = caml_call1(xs$0, 0); + if(! match) return 0; + var xs$1 = match[2], x = match[1], result = caml_call1(f, x); + if(result) return result; + var xs$0 = xs$1; + } + } + function iter2(f, xs, ys){ + var xs$0 = xs, ys$0 = ys; + for(;;){ + var match = caml_call1(xs$0, 0); + if(! match) return 0; + var xs$1 = match[2], x = match[1], match$0 = caml_call1(ys$0, 0); + if(! match$0) return 0; + var ys$1 = match$0[2], y = match$0[1]; + caml_call2(f, x, y); + var xs$0 = xs$1, ys$0 = ys$1; + } + } + function fold_left2(f, accu, xs, ys){ + var accu$0 = accu, xs$0 = xs, ys$0 = ys; + for(;;){ + var match = caml_call1(xs$0, 0); + if(! match) return accu$0; + var xs$1 = match[2], x = match[1], match$0 = caml_call1(ys$0, 0); + if(! match$0) return accu$0; + var + ys$1 = match$0[2], + y = match$0[1], + accu$1 = caml_call3(f, accu$0, x, y), + accu$0 = accu$1, + xs$0 = xs$1, + ys$0 = ys$1; + } + } + function for_all2(f, xs, ys){ + var xs$0 = xs, ys$0 = ys; + for(;;){ + var match = caml_call1(xs$0, 0); + if(! match) return 1; + var xs$1 = match[2], x = match[1], match$0 = caml_call1(ys$0, 0); + if(! match$0) return 1; + var ys$1 = match$0[2], y = match$0[1], _az_ = caml_call2(f, x, y); + if(! _az_) return _az_; + var xs$0 = xs$1, ys$0 = ys$1; + } + } + function exists2(f, xs, ys){ + var xs$0 = xs, ys$0 = ys; + for(;;){ + var match = caml_call1(xs$0, 0); + if(! match) return 0; + var xs$1 = match[2], x = match[1], match$0 = caml_call1(ys$0, 0); + if(! match$0) return 0; + var ys$1 = match$0[2], y = match$0[1], _ay_ = caml_call2(f, x, y); + if(_ay_) return _ay_; + var xs$0 = xs$1, ys$0 = ys$1; + } + } + function equal(eq, xs, ys){ + var xs$0 = xs, ys$0 = ys; + for(;;){ + var match = caml_call1(xs$0, 0), match$0 = caml_call1(ys$0, 0); + if(match){ + if(match$0){ + var + ys$1 = match$0[2], + y = match$0[1], + xs$1 = match[2], + x = match[1], + _ax_ = caml_call2(eq, x, y); + if(! _ax_) return _ax_; + var xs$0 = xs$1, ys$0 = ys$1; + continue; + } + } + else if(! match$0) return 1; + return 0; + } + } + function compare(cmp, xs, ys){ + var xs$0 = xs, ys$0 = ys; + for(;;){ + var match = caml_call1(xs$0, 0), match$0 = caml_call1(ys$0, 0); + if(! match) return match$0 ? -1 : 0; + var xs$1 = match[2], x = match[1]; + if(! match$0) return 1; + var ys$1 = match$0[2], y = match$0[1], c = caml_call2(cmp, x, y); + if(0 !== c) return c; + var xs$0 = xs$1, ys$0 = ys$1; + } + } + function init_aux(f, i, j, param){ + if(i >= j) return 0; + var _au_ = i + 1 | 0; + function _av_(_aw_){return init_aux(f, _au_, j, _aw_);} + return [0, caml_call1(f, i), _av_]; + } + function init(n, f){ + if(0 > n) return caml_call1(Stdlib[1], cst_Seq_init); + var _as_ = 0; + return function(_at_){return init_aux(f, _as_, n, _at_);}; + } + function repeat(x, param){ + return [0, x, function(_ar_){return repeat(x, _ar_);}]; + } + function forever(f, param){ + function _ap_(_aq_){return forever(f, _aq_);} + return [0, caml_call1(f, 0), _ap_]; + } + function cycle_nonempty(xs, param){ + var _an_ = 0; + return append(xs, function(_ao_){return cycle_nonempty(xs, _ao_);}, _an_); + } + function cycle(xs, param){ + var match = caml_call1(xs, 0); + if(! match) return 0; + var xs$0 = match[2], x = match[1]; + function _ak_(_am_){return cycle_nonempty(xs, _am_);} + return [0, x, function(_al_){return append(xs$0, _ak_, _al_);}]; + } + function iterate1(f, x, param){ + var y = caml_call1(f, x); + return [0, y, function(_aj_){return iterate1(f, y, _aj_);}]; + } + function iterate(f, x){ + function _ag_(_ai_){return iterate1(f, x, _ai_);} + return function(_ah_){return [0, x, _ag_];}; + } + function mapi_aux(f, i, xs, param){ + var match = caml_call1(xs, 0); + if(! match) return 0; + var xs$0 = match[2], x = match[1], _ad_ = i + 1 | 0; + function _ae_(_af_){return mapi_aux(f, _ad_, xs$0, _af_);} + return [0, caml_call2(f, i, x), _ae_]; + } + function mapi(f, xs){ + var _ab_ = 0; + return function(_ac_){return mapi_aux(f, _ab_, xs, _ac_);}; + } + function tail_scan(f, s, xs, param){ + var match = caml_call1(xs, 0); + if(! match) return 0; + var xs$0 = match[2], x = match[1], s$0 = caml_call2(f, s, x); + return [0, s$0, function(_aa_){return tail_scan(f, s$0, xs$0, _aa_);}]; + } + function scan(f, s, xs){ + function _Z_(_$_){return tail_scan(f, s, xs, _$_);} + return function(___){return [0, s, _Z_];}; + } + function take_aux(n, xs){ + return 0 === n + ? empty + : function + (param){ + var match = caml_call1(xs, 0); + if(! match) return 0; + var xs$0 = match[2], x = match[1]; + return [0, x, take_aux(n - 1 | 0, xs$0)]; + }; + } + function take(n, xs){ + if(n < 0) caml_call1(Stdlib[1], cst_Seq_take); + return take_aux(n, xs); + } + function drop(n, xs){ + return 0 <= n + ? 0 + === n + ? xs + : function + (param){ + var n$0 = n, xs$0 = xs; + for(;;){ + var match = caml_call1(xs$0, 0); + if(! match) return 0; + var xs$1 = match[2], n$1 = n$0 - 1 | 0; + if(0 === n$1) return caml_call1(xs$1, 0); + var n$0 = n$1, xs$0 = xs$1; + } + } + : caml_call1(Stdlib[1], cst_Seq_drop); + } + function take_while(p, xs, param){ + var match = caml_call1(xs, 0); + if(! match) return 0; + var xs$0 = match[2], x = match[1]; + return caml_call1(p, x) + ? [0, x, function(_Y_){return take_while(p, xs$0, _Y_);}] + : 0; + } + function drop_while(p, xs, param){ + var xs$0 = xs; + for(;;){ + var node = caml_call1(xs$0, 0); + if(! node) return 0; + var xs$1 = node[2], x = node[1]; + if(! caml_call1(p, x)) return node; + var xs$0 = xs$1; + } + } + function group(eq, xs, param){ + var match = caml_call1(xs, 0); + if(! match) return 0; + var xs$0 = match[2], x = match[1], _P_ = caml_call1(eq, x); + function _Q_(_X_){return drop_while(_P_, xs$0, _X_);} + function _R_(_W_){return group(eq, _Q_, _W_);} + var _S_ = caml_call1(eq, x); + function _T_(_V_){return take_while(_S_, xs$0, _V_);} + return [0, function(_U_){return [0, x, _T_];}, _R_]; + } + var + Forced_twice = + [248, cst_Stdlib_Seq_Forced_twice, runtime.caml_fresh_oo_id(0)], + to_lazy = Stdlib_Lazy[6]; + function failure(param){ + throw caml_maybe_attach_backtrace(Forced_twice, 1); + } + function memoize(xs){ + function s$0(param){ + var match = caml_call1(xs, 0); + if(! match) return 0; + var xs$0 = match[2], x = match[1]; + return [0, x, memoize(xs$0)]; + } + var s = caml_call1(to_lazy, s$0); + return function(_O_){ + var _N_ = runtime.caml_obj_tag(s); + return 250 === _N_ + ? s[1] + : 246 === _N_ ? caml_call1(CamlinternalLazy[2], s) : s;}; + } + function once(xs){ + function f(param){ + var match = caml_call1(xs, 0); + if(! match) return 0; + var xs$0 = match[2], x = match[1]; + return [0, x, once(xs$0)]; + } + var action = caml_call1(CamlinternalAtomic[1], f); + return function(param){ + var f = caml_call2(CamlinternalAtomic[4], action, failure); + return caml_call1(f, 0);}; + } + function zip(xs, ys, param){ + var match = caml_call1(xs, 0); + if(! match) return 0; + var xs$0 = match[2], x = match[1], match$0 = caml_call1(ys, 0); + if(! match$0) return 0; + var ys$0 = match$0[2], y = match$0[1]; + return [0, [0, x, y], function(_M_){return zip(xs$0, ys$0, _M_);}]; + } + function map2(f, xs, ys, param){ + var match = caml_call1(xs, 0); + if(! match) return 0; + var xs$0 = match[2], x = match[1], match$0 = caml_call1(ys, 0); + if(! match$0) return 0; + var ys$0 = match$0[2], y = match$0[1]; + function _K_(_L_){return map2(f, xs$0, ys$0, _L_);} + return [0, caml_call2(f, x, y), _K_]; + } + function interleave(xs, ys, param){ + var match = caml_call1(xs, 0); + if(! match) return caml_call1(ys, 0); + var xs$0 = match[2], x = match[1]; + return [0, x, function(_J_){return interleave(ys, xs$0, _J_);}]; + } + function sorted_merge1(cmp, x, xs, y, ys){ + return 0 < caml_call2(cmp, x, y) + ? [0, + y, + function(_H_){ + var match = caml_call1(ys, 0); + if(! match) return [0, x, xs]; + var ys$0 = match[2], y = match[1]; + return sorted_merge1(cmp, x, xs, y, ys$0); + }] + : [0, + x, + function(_I_){ + var match = caml_call1(xs, 0); + if(! match) return [0, y, ys]; + var xs$0 = match[2], x = match[1]; + return sorted_merge1(cmp, x, xs$0, y, ys); + }]; + } + function sorted_merge(cmp, xs, ys, param){ + var match = caml_call1(xs, 0), match$0 = caml_call1(ys, 0); + if(match){ + if(match$0){ + var ys$0 = match$0[2], y = match$0[1], xs$0 = match[2], x = match[1]; + return sorted_merge1(cmp, x, xs$0, y, ys$0); + } + var c = match; + } + else{if(! match$0) return 0; var c = match$0;} + return c; + } + function map_fst(xys, param){ + var match = caml_call1(xys, 0); + if(! match) return 0; + var xys$0 = match[2], x = match[1][1]; + return [0, x, function(_G_){return map_fst(xys$0, _G_);}]; + } + function map_snd(xys, param){ + var match = caml_call1(xys, 0); + if(! match) return 0; + var xys$0 = match[2], y = match[1][2]; + return [0, y, function(_F_){return map_snd(xys$0, _F_);}]; + } + function unzip(xys){ + function _C_(_E_){return map_snd(xys, _E_);} + return [0, function(_D_){return map_fst(xys, _D_);}, _C_]; + } + function filter_map_find_left_map(f, xs, param){ + var xs$0 = xs; + for(;;){ + var match = caml_call1(xs$0, 0); + if(! match) return 0; + var xs$1 = match[2], x = match[1], match$0 = caml_call1(f, x); + if(0 === match$0[0]){ + var y = match$0[1]; + return [0, + y, + function(_B_){return filter_map_find_left_map(f, xs$1, _B_);}]; + } + var xs$0 = xs$1; + } + } + function filter_map_find_right_map(f, xs, param){ + var xs$0 = xs; + for(;;){ + var match = caml_call1(xs$0, 0); + if(! match) return 0; + var xs$1 = match[2], x = match[1], match$0 = caml_call1(f, x); + if(0 === match$0[0]){var xs$0 = xs$1; continue;} + var z = match$0[1]; + return [0, + z, + function(_A_){return filter_map_find_right_map(f, xs$1, _A_);}]; + } + } + function partition_map(f, xs){ + function _x_(_z_){return filter_map_find_right_map(f, xs, _z_);} + return [0, + function(_y_){return filter_map_find_left_map(f, xs, _y_);}, + _x_]; + } + function partition(p, xs){ + function _t_(x){return 1 - caml_call1(p, x);} + function _u_(_w_){return filter(_t_, xs, _w_);} + return [0, function(_v_){return filter(p, xs, _v_);}, _u_]; + } + function peel(xss){ + return unzip(function(_s_){return filter_map(uncons, xss, _s_);}); + } + function transpose(xss, param){ + var match = peel(xss), tails = match[2], heads = match[1]; + if(! is_empty(heads)) + return [0, heads, function(_r_){return transpose(tails, _r_);}]; + if(is_empty(tails)) return 0; + throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); + } + function _b_(remainders, xss, param){ + var match = caml_call1(xss, 0); + if(! match) return transpose(remainders, 0); + var xss$0 = match[2], xs = match[1], match$0 = caml_call1(xs, 0); + if(match$0){ + var + xs$0 = match$0[2], + x = match$0[1], + match$1 = peel(remainders), + tails = match$1[2], + heads = match$1[1], + _l_ = function(_q_){return [0, xs$0, tails];}, + _m_ = function(_p_){return _b_(_l_, xss$0, _p_);}; + return [0, function(_o_){return [0, x, heads];}, _m_]; + } + var + match$2 = peel(remainders), + tails$0 = match$2[2], + heads$0 = match$2[1]; + return [0, heads$0, function(_n_){return _b_(tails$0, xss$0, _n_);}]; + } + function map_product(f, xs, ys){ + function _f_(x){ + function _j_(y){return caml_call2(f, x, y);} + return function(_k_){return map(_j_, ys, _k_);}; + } + function xss(_i_){return map(_f_, xs, _i_);} + function _e_(_h_){return _b_(empty, xss, _h_);} + return function(_g_){return concat(_e_, _g_);}; + } + function product(xs, ys){ + return map_product(function(x, y){return [0, x, y];}, xs, ys); + } + function of_dispenser(it){ + function c(param){ + var match = caml_call1(it, 0); + if(! match) return 0; + var x = match[1]; + return [0, x, c]; + } + return c; + } + function to_dispenser(xs){ + var s = [0, xs]; + return function(param){ + var match = caml_call1(s[1], 0); + if(! match) return 0; + var xs = match[2], x = match[1]; + s[1] = xs; + return [0, x];}; + } + function ints(i, param){ + var _c_ = i + 1 | 0; + return [0, i, function(_d_){return ints(_c_, _d_);}]; + } + var + Stdlib_Seq = + [0, + is_empty, + uncons, + length, + iter, + fold_left, + iteri, + fold_lefti, + for_all, + exists, + find, + find_map, + iter2, + fold_left2, + for_all2, + exists2, + equal, + compare, + empty, + return$0, + cons, + init, + unfold, + repeat, + forever, + cycle, + iterate, + map, + mapi, + filter, + filter_map, + scan, + take, + drop, + take_while, + drop_while, + group, + memoize, + Forced_twice, + once, + transpose, + append, + concat, + flat_map, + flat_map, + zip, + map2, + interleave, + sorted_merge, + product, + map_product, + unzip, + unzip, + partition_map, + partition, + of_dispenser, + to_dispenser, + ints]; + runtime.caml_register_global(10, Stdlib_Seq, "Stdlib__Seq"); + return; + } + (globalThis)); + +//# 2119 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var runtime = globalThis.jsoo_runtime; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib_Seq = global_data.Stdlib__Seq, + Stdlib = global_data.Stdlib, + cst_option_is_None = "option is None", + none = 0; + function some(v){return [0, v];} + function value(o, default$0){ + if(! o) return default$0; + var v = o[1]; + return v; + } + function get(param){ + if(! param) return caml_call1(Stdlib[1], cst_option_is_None); + var v = param[1]; + return v; + } + function bind(o, f){ + if(! o) return 0; + var v = o[1]; + return caml_call1(f, v); + } + function join(param){if(! param) return 0; var o = param[1]; return o;} + function map(f, o){ + if(! o) return 0; + var v = o[1]; + return [0, caml_call1(f, v)]; + } + function fold(none, some, param){ + if(! param) return none; + var v = param[1]; + return caml_call1(some, v); + } + function iter(f, param){ + if(! param) return 0; + var v = param[1]; + return caml_call1(f, v); + } + function is_none(param){return param ? 0 : 1;} + function is_some(param){return param ? 1 : 0;} + function equal(eq, o0, o1){ + if(o0){ + if(o1){var v1 = o1[1], v0 = o0[1]; return caml_call2(eq, v0, v1);} + } + else if(! o1) return 1; + return 0; + } + function compare(cmp, o0, o1){ + if(! o0) return o1 ? -1 : 0; + var v0 = o0[1]; + if(! o1) return 1; + var v1 = o1[1]; + return caml_call2(cmp, v0, v1); + } + function to_result(none, param){ + if(! param) return [1, none]; + var v = param[1]; + return [0, v]; + } + function to_list(param){ + if(! param) return 0; + var v = param[1]; + return [0, v, 0]; + } + function to_seq(param){ + if(! param) return Stdlib_Seq[18]; + var v = param[1]; + return caml_call1(Stdlib_Seq[19], v); + } + var + Stdlib_Option = + [0, + none, + some, + value, + get, + bind, + join, + map, + fold, + iter, + is_none, + is_some, + equal, + compare, + to_result, + to_list, + to_seq]; + runtime.caml_register_global(3, Stdlib_Option, "Stdlib__Option"); + return; + } + (globalThis)); + +//# 2391 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_bytes_unsafe_set = runtime.caml_bytes_unsafe_set, + caml_create_bytes = runtime.caml_create_bytes, + caml_string_of_bytes = runtime.caml_string_of_bytes; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + var + global_data = runtime.caml_get_global_data(), + cst = "\\\\", + cst$0 = "\\'", + Stdlib = global_data.Stdlib, + cst_b = "\\b", + cst_t = "\\t", + cst_n = "\\n", + cst_r = "\\r", + cst_Char_chr = "Char.chr"; + function chr(n){ + if(0 <= n && 255 >= n) return n; + return caml_call1(Stdlib[1], cst_Char_chr); + } + function escaped(c){ + var switch$0 = 0; + if(40 <= c){ + if(92 === c) return cst; + if(127 > c) switch$0 = 1; + } + else if(32 <= c){ + if(39 <= c) return cst$0; + switch$0 = 1; + } + else if(14 > c) + switch(c){ + case 8: + return cst_b; + case 9: + return cst_t; + case 10: + return cst_n; + case 13: + return cst_r; + } + if(switch$0){ + var s$0 = caml_create_bytes(1); + caml_bytes_unsafe_set(s$0, 0, c); + return caml_string_of_bytes(s$0); + } + var s = caml_create_bytes(4); + caml_bytes_unsafe_set(s, 0, 92); + caml_bytes_unsafe_set(s, 1, 48 + (c / 100 | 0) | 0); + caml_bytes_unsafe_set(s, 2, 48 + ((c / 10 | 0) % 10 | 0) | 0); + caml_bytes_unsafe_set(s, 3, 48 + (c % 10 | 0) | 0); + return caml_string_of_bytes(s); + } + function lowercase(c){ + var _b_ = c - 192 | 0, switch$0 = 0; + if(30 < _b_ >>> 0){ + if(25 >= _b_ + 127 >>> 0) switch$0 = 1; + } + else if(23 !== _b_) switch$0 = 1; + return switch$0 ? c + 32 | 0 : c; + } + function uppercase(c){ + var _a_ = c - 224 | 0, switch$0 = 0; + if(30 < _a_ >>> 0){ + if(25 >= _a_ + 127 >>> 0) switch$0 = 1; + } + else if(23 !== _a_) switch$0 = 1; + return switch$0 ? c - 32 | 0 : c; + } + function lowercase_ascii(c){return 25 < c - 65 >>> 0 ? c : c + 32 | 0;} + function uppercase_ascii(c){return 25 < c - 97 >>> 0 ? c : c - 32 | 0;} + function compare(c1, c2){return c1 - c2 | 0;} + function equal(c1, c2){return 0 === (c1 - c2 | 0) ? 1 : 0;} + var + Stdlib_Char = + [0, + chr, + escaped, + lowercase, + uppercase, + lowercase_ascii, + uppercase_ascii, + compare, + equal]; + runtime.caml_register_global(8, Stdlib_Char, "Stdlib__Char"); + return; + } + (globalThis)); + +//# 2489 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_uchar_ml = "uchar.ml", + caml_format_int = runtime.caml_format_int, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + var + global_data = runtime.caml_get_global_data(), + err_no_pred = "U+0000 has no predecessor", + err_no_succ = "U+10FFFF has no successor", + Assert_failure = global_data.Assert_failure, + Stdlib = global_data.Stdlib, + _d_ = [0, cst_uchar_ml, 88, 18], + _c_ = [0, cst_uchar_ml, 91, 7], + _b_ = [0, cst_uchar_ml, 80, 18], + _a_ = [0, cst_uchar_ml, 85, 7], + cst_is_not_a_latin1_character = " is not a latin1 character", + cst_U = "U+", + cst_is_not_an_Unicode_scalar_v = " is not an Unicode scalar value", + min = 0, + max = 1114111, + lo_bound = 55295, + hi_bound = 57344, + bom = 65279, + rep = 65533; + function succ(u){ + return u === 55295 + ? hi_bound + : u === 1114111 ? caml_call1(Stdlib[1], err_no_succ) : u + 1 | 0; + } + function pred(u){ + return u === 57344 + ? lo_bound + : u === 0 ? caml_call1(Stdlib[1], err_no_pred) : u - 1 | 0; + } + function is_valid(i){ + var _o_ = 0 <= i ? 1 : 0, _p_ = _o_ ? i <= 55295 ? 1 : 0 : _o_; + if(_p_) + var _q_ = _p_; + else + var _r_ = 57344 <= i ? 1 : 0, _q_ = _r_ ? i <= 1114111 ? 1 : 0 : _r_; + return _q_; + } + function of_int(i){ + if(is_valid(i)) return i; + var + _n_ = + caml_call2 + (Stdlib[28], caml_format_int("%X", i), cst_is_not_an_Unicode_scalar_v); + return caml_call1(Stdlib[1], _n_); + } + function is_char(u){return u < 256 ? 1 : 0;} + function of_char(c){return c;} + function to_char(u){ + if(255 >= u) return u; + var + _l_ = + caml_call2 + (Stdlib[28], + caml_format_int("%04X", u), + cst_is_not_a_latin1_character), + _m_ = caml_call2(Stdlib[28], cst_U, _l_); + return caml_call1(Stdlib[1], _m_); + } + function unsafe_to_char(_k_){return _k_;} + function equal(_j_, _i_){return _j_ === _i_ ? 1 : 0;} + var compare = runtime.caml_int_compare; + function hash(_h_){return _h_;} + function utf_decode_is_valid(d){return 1 === (d >>> 27 | 0) ? 1 : 0;} + function utf_decode_length(d){return (d >>> 24 | 0) & 7;} + function utf_decode_uchar(d){return d & 16777215;} + function utf_decode(n, u){return (8 | n) << 24 | u;} + function utf_decode_invalid(n){return n << 24 | 65533;} + function utf_8_byte_length(u){ + if(0 > u) throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); + if(127 >= u) return 1; + if(2047 >= u) return 2; + if(65535 >= u) return 3; + if(1114111 < u) + throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); + return 4; + } + function utf_16_byte_length(u){ + if(0 > u) throw caml_maybe_attach_backtrace([0, Assert_failure, _d_], 1); + if(65535 >= u) return 2; + if(1114111 < u) + throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); + return 4; + } + function _e_(_g_){return _g_;} + var + Stdlib_Uchar = + [0, + min, + max, + bom, + rep, + succ, + pred, + is_valid, + of_int, + function(_f_){return _f_;}, + _e_, + is_char, + of_char, + to_char, + unsafe_to_char, + equal, + compare, + hash, + utf_decode_is_valid, + utf_decode_uchar, + utf_decode_length, + utf_decode, + utf_decode_invalid, + utf_8_byte_length, + utf_16_byte_length]; + runtime.caml_register_global(13, Stdlib_Uchar, "Stdlib__Uchar"); + return; + } + (globalThis)); + +//# 2625 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_List_nth$1 = "List.nth", + caml_compare = runtime.caml_compare, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib = global_data.Stdlib, + Stdlib_Seq = global_data.Stdlib__Seq, + Stdlib_Sys = global_data.Stdlib__Sys, + cst_List_map2 = "List.map2", + cst_List_iter2 = "List.iter2", + cst_List_fold_left2 = "List.fold_left2", + cst_List_fold_right2 = "List.fold_right2", + cst_List_for_all2 = "List.for_all2", + cst_List_exists2 = "List.exists2", + _b_ = [0, 0, 0], + cst_List_combine = "List.combine", + cst_List_rev_map2 = "List.rev_map2", + cst_List_init = "List.init", + cst_List_nth$0 = cst_List_nth$1, + cst_nth = "nth", + cst_List_nth = cst_List_nth$1, + cst_tl = "tl", + cst_hd = "hd"; + function length(l$0){ + var len = 0, param = l$0; + for(;;){ + if(! param) return len; + var l = param[2], len$0 = len + 1 | 0, len = len$0, param = l; + } + } + function cons(a, l){return [0, a, l];} + function hd(param){ + if(! param) return caml_call1(Stdlib[2], cst_hd); + var a = param[1]; + return a; + } + function tl(param){ + if(! param) return caml_call1(Stdlib[2], cst_tl); + var l = param[2]; + return l; + } + function nth(l, n){ + if(0 > n) return caml_call1(Stdlib[1], cst_List_nth); + var l$0 = l, n$0 = n; + for(;;){ + if(! l$0) return caml_call1(Stdlib[2], cst_nth); + var l$1 = l$0[2], a = l$0[1]; + if(0 === n$0) return a; + var n$1 = n$0 - 1 | 0, l$0 = l$1, n$0 = n$1; + } + } + function nth_opt(l, n){ + if(0 > n) return caml_call1(Stdlib[1], cst_List_nth$0); + var l$0 = l, n$0 = n; + for(;;){ + if(! l$0) return 0; + var l$1 = l$0[2], a = l$0[1]; + if(0 === n$0) return [0, a]; + var n$1 = n$0 - 1 | 0, l$0 = l$1, n$0 = n$1; + } + } + var append = Stdlib[37]; + function rev_append(l1, l2){ + var l1$0 = l1, l2$0 = l2; + for(;;){ + if(! l1$0) return l2$0; + var + l1$1 = l1$0[2], + a = l1$0[1], + l2$1 = [0, a, l2$0], + l1$0 = l1$1, + l2$0 = l2$1; + } + } + function rev(l){return rev_append(l, 0);} + function init_aux(i, n, f){ + if(n <= i) return 0; + var r = caml_call1(f, i); + return [0, r, init_aux(i + 1 | 0, n, f)]; + } + var rev_init_threshold = typeof Stdlib_Sys[5] === "number" ? 10000 : 50; + function init(len, f){ + if(0 > len) return caml_call1(Stdlib[1], cst_List_init); + if(rev_init_threshold >= len) return init_aux(0, len, f); + var acc = 0, i = 0; + for(;;){ + if(len <= i) return rev(acc); + var + i$0 = i + 1 | 0, + acc$0 = [0, caml_call1(f, i), acc], + acc = acc$0, + i = i$0; + } + } + function flatten(param){ + if(! param) return 0; + var r = param[2], l = param[1], _J_ = flatten(r); + return caml_call2(Stdlib[37], l, _J_); + } + function map(f, param){ + if(! param) return 0; + var l = param[2], a = param[1], r = caml_call1(f, a); + return [0, r, map(f, l)]; + } + function _a_(i, f, param){ + if(! param) return 0; + var l = param[2], a = param[1], r = caml_call2(f, i, a); + return [0, r, _a_(i + 1 | 0, f, l)]; + } + function mapi(f, l){return _a_(0, f, l);} + function rev_map(f, l){ + var accu = 0, param = l; + for(;;){ + if(! param) return accu; + var + l$0 = param[2], + a = param[1], + accu$0 = [0, caml_call1(f, a), accu], + accu = accu$0, + param = l$0; + } + } + function iter(f, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var l = param$0[2], a = param$0[1]; + caml_call1(f, a); + var param$0 = l; + } + } + function iteri(f, l$0){ + var i = 0, param = l$0; + for(;;){ + if(! param) return 0; + var l = param[2], a = param[1]; + caml_call2(f, i, a); + var i$0 = i + 1 | 0, i = i$0, param = l; + } + } + function fold_left(f, accu, l){ + var accu$0 = accu, l$0 = l; + for(;;){ + if(! l$0) return accu$0; + var + l$1 = l$0[2], + a = l$0[1], + accu$1 = caml_call2(f, accu$0, a), + accu$0 = accu$1, + l$0 = l$1; + } + } + function fold_right(f, l, accu){ + if(! l) return accu; + var l$0 = l[2], a = l[1]; + return caml_call2(f, a, fold_right(f, l$0, accu)); + } + function map2(f, l1, l2){ + if(l1){ + if(l2){ + var + l2$0 = l2[2], + a2 = l2[1], + l1$0 = l1[2], + a1 = l1[1], + r = caml_call2(f, a1, a2); + return [0, r, map2(f, l1$0, l2$0)]; + } + } + else if(! l2) return 0; + return caml_call1(Stdlib[1], cst_List_map2); + } + function rev_map2(f, l1, l2){ + var accu = 0, l1$0 = l1, l2$0 = l2; + for(;;){ + if(l1$0){ + if(l2$0){ + var + l2$1 = l2$0[2], + a2 = l2$0[1], + l1$1 = l1$0[2], + a1 = l1$0[1], + accu$0 = [0, caml_call2(f, a1, a2), accu], + accu = accu$0, + l1$0 = l1$1, + l2$0 = l2$1; + continue; + } + } + else if(! l2$0) return accu; + return caml_call1(Stdlib[1], cst_List_rev_map2); + } + } + function iter2(f, l1, l2){ + var l1$0 = l1, l2$0 = l2; + for(;;){ + if(l1$0){ + if(l2$0){ + var l2$1 = l2$0[2], a2 = l2$0[1], l1$1 = l1$0[2], a1 = l1$0[1]; + caml_call2(f, a1, a2); + var l1$0 = l1$1, l2$0 = l2$1; + continue; + } + } + else if(! l2$0) return 0; + return caml_call1(Stdlib[1], cst_List_iter2); + } + } + function fold_left2(f, accu, l1, l2){ + var accu$0 = accu, l1$0 = l1, l2$0 = l2; + for(;;){ + if(l1$0){ + if(l2$0){ + var + l2$1 = l2$0[2], + a2 = l2$0[1], + l1$1 = l1$0[2], + a1 = l1$0[1], + accu$1 = caml_call3(f, accu$0, a1, a2), + accu$0 = accu$1, + l1$0 = l1$1, + l2$0 = l2$1; + continue; + } + } + else if(! l2$0) return accu$0; + return caml_call1(Stdlib[1], cst_List_fold_left2); + } + } + function fold_right2(f, l1, l2, accu){ + if(l1){ + if(l2){ + var l2$0 = l2[2], a2 = l2[1], l1$0 = l1[2], a1 = l1[1]; + return caml_call3(f, a1, a2, fold_right2(f, l1$0, l2$0, accu)); + } + } + else if(! l2) return accu; + return caml_call1(Stdlib[1], cst_List_fold_right2); + } + function for_all(p, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 1; + var l = param$0[2], a = param$0[1], _I_ = caml_call1(p, a); + if(! _I_) return _I_; + var param$0 = l; + } + } + function exists(p, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var l = param$0[2], a = param$0[1], _H_ = caml_call1(p, a); + if(_H_) return _H_; + var param$0 = l; + } + } + function for_all2(p, l1, l2){ + var l1$0 = l1, l2$0 = l2; + for(;;){ + if(l1$0){ + if(l2$0){ + var + l2$1 = l2$0[2], + a2 = l2$0[1], + l1$1 = l1$0[2], + a1 = l1$0[1], + _G_ = caml_call2(p, a1, a2); + if(! _G_) return _G_; + var l1$0 = l1$1, l2$0 = l2$1; + continue; + } + } + else if(! l2$0) return 1; + return caml_call1(Stdlib[1], cst_List_for_all2); + } + } + function exists2(p, l1, l2){ + var l1$0 = l1, l2$0 = l2; + for(;;){ + if(l1$0){ + if(l2$0){ + var + l2$1 = l2$0[2], + a2 = l2$0[1], + l1$1 = l1$0[2], + a1 = l1$0[1], + _F_ = caml_call2(p, a1, a2); + if(_F_) return _F_; + var l1$0 = l1$1, l2$0 = l2$1; + continue; + } + } + else if(! l2$0) return 0; + return caml_call1(Stdlib[1], cst_List_exists2); + } + } + function mem(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var + l = param$0[2], + a = param$0[1], + _E_ = 0 === caml_compare(a, x) ? 1 : 0; + if(_E_) return _E_; + var param$0 = l; + } + } + function memq(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var l = param$0[2], a = param$0[1], _D_ = a === x ? 1 : 0; + if(_D_) return _D_; + var param$0 = l; + } + } + function assoc(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var l = param$0[2], match = param$0[1], b = match[2], a = match[1]; + if(0 === caml_compare(a, x)) return b; + var param$0 = l; + } + } + function assoc_opt(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var l = param$0[2], match = param$0[1], b = match[2], a = match[1]; + if(0 === caml_compare(a, x)) return [0, b]; + var param$0 = l; + } + } + function assq(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var l = param$0[2], match = param$0[1], b = match[2], a = match[1]; + if(a === x) return b; + var param$0 = l; + } + } + function assq_opt(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var l = param$0[2], match = param$0[1], b = match[2], a = match[1]; + if(a === x) return [0, b]; + var param$0 = l; + } + } + function mem_assoc(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var + l = param$0[2], + a = param$0[1][1], + _C_ = 0 === caml_compare(a, x) ? 1 : 0; + if(_C_) return _C_; + var param$0 = l; + } + } + function mem_assq(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var l = param$0[2], a = param$0[1][1], _B_ = a === x ? 1 : 0; + if(_B_) return _B_; + var param$0 = l; + } + } + function remove_assoc(x, param){ + if(! param) return 0; + var l = param[2], pair = param[1], a = pair[1]; + return 0 === caml_compare(a, x) ? l : [0, pair, remove_assoc(x, l)]; + } + function remove_assq(x, param){ + if(! param) return 0; + var l = param[2], pair = param[1], a = pair[1]; + return a === x ? l : [0, pair, remove_assq(x, l)]; + } + function find(p, param){ + var param$0 = param; + for(;;){ + if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var l = param$0[2], x = param$0[1]; + if(caml_call1(p, x)) return x; + var param$0 = l; + } + } + function find_opt(p, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var l = param$0[2], x = param$0[1]; + if(caml_call1(p, x)) return [0, x]; + var param$0 = l; + } + } + function find_map(f, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var l = param$0[2], x = param$0[1], result = caml_call1(f, x); + if(result) return result; + var param$0 = l; + } + } + function find_all(p){ + var accu = 0; + return function(param$0){ + var accu$0 = accu, param = param$0; + for(;;){ + if(! param) return rev(accu$0); + var l = param[2], x = param[1]; + if(caml_call1(p, x)){ + var accu$1 = [0, x, accu$0], accu$0 = accu$1, param = l; + continue; + } + var param = l; + }}; + } + function filteri(p, l){ + var i = 0, acc = 0, param = l; + for(;;){ + if(! param) return rev(acc); + var + l$0 = param[2], + x = param[1], + acc$0 = caml_call2(p, i, x) ? [0, x, acc] : acc, + i$0 = i + 1 | 0, + i = i$0, + acc = acc$0, + param = l$0; + } + } + function filter_map(f){ + var accu = 0; + return function(param$0){ + var accu$0 = accu, param = param$0; + for(;;){ + if(! param) return rev(accu$0); + var l = param[2], x = param[1], match = caml_call1(f, x); + if(match){ + var v = match[1], accu$1 = [0, v, accu$0], accu$0 = accu$1, param = l; + continue; + } + var param = l; + }}; + } + function concat_map(f, l){ + var acc = 0, param = l; + for(;;){ + if(! param) return rev(acc); + var + l$0 = param[2], + x = param[1], + xs = caml_call1(f, x), + acc$0 = rev_append(xs, acc), + acc = acc$0, + param = l$0; + } + } + function fold_left_map(f, accu, l){ + var accu$0 = accu, l_accu = 0, param = l; + for(;;){ + if(! param) return [0, accu$0, rev(l_accu)]; + var + l$0 = param[2], + x = param[1], + match = caml_call2(f, accu$0, x), + x$0 = match[2], + accu$1 = match[1], + l_accu$0 = [0, x$0, l_accu], + accu$0 = accu$1, + l_accu = l_accu$0, + param = l$0; + } + } + function partition(p, l){ + var yes = 0, no = 0, param = l; + for(;;){ + if(! param){var _A_ = rev(no); return [0, rev(yes), _A_];} + var l$0 = param[2], x = param[1]; + if(caml_call1(p, x)){ + var yes$0 = [0, x, yes], yes = yes$0, param = l$0; + continue; + } + var no$0 = [0, x, no], no = no$0, param = l$0; + } + } + function partition_map(p, l){ + var left = 0, right = 0, param = l; + for(;;){ + if(! param){var _z_ = rev(right); return [0, rev(left), _z_];} + var l$0 = param[2], x = param[1], match = caml_call1(p, x); + if(0 === match[0]){ + var v = match[1], left$0 = [0, v, left], left = left$0, param = l$0; + continue; + } + var + v$0 = match[1], + right$0 = [0, v$0, right], + right = right$0, + param = l$0; + } + } + function split(param){ + if(! param) return _b_; + var + l = param[2], + match = param[1], + y = match[2], + x = match[1], + match$0 = split(l), + ry = match$0[2], + rx = match$0[1]; + return [0, [0, x, rx], [0, y, ry]]; + } + function combine(l1, l2){ + if(l1){ + if(l2){ + var l2$0 = l2[2], a2 = l2[1], l1$0 = l1[2], a1 = l1[1]; + return [0, [0, a1, a2], combine(l1$0, l2$0)]; + } + } + else if(! l2) return 0; + return caml_call1(Stdlib[1], cst_List_combine); + } + function merge(cmp, l1, l2){ + if(! l1) return l2; + if(! l2) return l1; + var t2 = l2[2], h2 = l2[1], t1 = l1[2], h1 = l1[1]; + return 0 < caml_call2(cmp, h1, h2) + ? [0, h2, merge(cmp, l1, t2)] + : [0, h1, merge(cmp, t1, l2)]; + } + function stable_sort(cmp, l){ + function sort(n, l){ + if(2 === n){ + if(l){ + var match = l[2]; + if(match){ + var + tl = match[2], + x2 = match[1], + x1 = l[1], + s = + 0 < caml_call2(cmp, x1, x2) + ? [0, x2, [0, x1, 0]] + : [0, x1, [0, x2, 0]]; + return [0, s, tl]; + } + } + } + else if(3 === n && l){ + var _y_ = l[2]; + if(_y_){ + var match$2 = _y_[2]; + if(match$2){ + var + tl$1 = match$2[2], + x3 = match$2[1], + x2$0 = _y_[1], + x1$0 = l[1], + s$0 = + 0 < caml_call2(cmp, x1$0, x2$0) + ? 0 + < caml_call2(cmp, x1$0, x3) + ? 0 + < caml_call2(cmp, x2$0, x3) + ? [0, x3, [0, x2$0, [0, x1$0, 0]]] + : [0, x2$0, [0, x3, [0, x1$0, 0]]] + : [0, x2$0, [0, x1$0, [0, x3, 0]]] + : 0 + < caml_call2(cmp, x2$0, x3) + ? 0 + < caml_call2(cmp, x1$0, x3) + ? [0, x3, [0, x1$0, [0, x2$0, 0]]] + : [0, x1$0, [0, x3, [0, x2$0, 0]]] + : [0, x1$0, [0, x2$0, [0, x3, 0]]]; + return [0, s$0, tl$1]; + } + } + } + var + n1 = n >> 1, + n2 = n - n1 | 0, + match$0 = rev_sort(n1, l), + l2$0 = match$0[2], + s1 = match$0[1], + match$1 = rev_sort(n2, l2$0), + tl$0 = match$1[2], + s2 = match$1[1], + l1 = s1, + l2 = s2, + accu = 0; + for(;;){ + if(l1){ + if(l2){ + var t2 = l2[2], h2 = l2[1], t1 = l1[2], h1 = l1[1]; + if(0 < caml_call2(cmp, h1, h2)){ + var accu$0 = [0, h1, accu], l1 = t1, accu = accu$0; + continue; + } + var accu$1 = [0, h2, accu], l2 = t2, accu = accu$1; + continue; + } + var _x_ = rev_append(l1, accu); + } + else + var _x_ = rev_append(l2, accu); + return [0, _x_, tl$0]; + } + } + function rev_sort(n, l){ + if(2 === n){ + if(l){ + var match = l[2]; + if(match){ + var + tl = match[2], + x2 = match[1], + x1 = l[1], + s = + 0 < caml_call2(cmp, x1, x2) + ? [0, x1, [0, x2, 0]] + : [0, x2, [0, x1, 0]]; + return [0, s, tl]; + } + } + } + else if(3 === n && l){ + var _w_ = l[2]; + if(_w_){ + var match$2 = _w_[2]; + if(match$2){ + var + tl$1 = match$2[2], + x3 = match$2[1], + x2$0 = _w_[1], + x1$0 = l[1], + s$0 = + 0 < caml_call2(cmp, x1$0, x2$0) + ? 0 + < caml_call2(cmp, x2$0, x3) + ? [0, x1$0, [0, x2$0, [0, x3, 0]]] + : 0 + < caml_call2(cmp, x1$0, x3) + ? [0, x1$0, [0, x3, [0, x2$0, 0]]] + : [0, x3, [0, x1$0, [0, x2$0, 0]]] + : 0 + < caml_call2(cmp, x1$0, x3) + ? [0, x2$0, [0, x1$0, [0, x3, 0]]] + : 0 + < caml_call2(cmp, x2$0, x3) + ? [0, x2$0, [0, x3, [0, x1$0, 0]]] + : [0, x3, [0, x2$0, [0, x1$0, 0]]]; + return [0, s$0, tl$1]; + } + } + } + var + n1 = n >> 1, + n2 = n - n1 | 0, + match$0 = sort(n1, l), + l2$0 = match$0[2], + s1 = match$0[1], + match$1 = sort(n2, l2$0), + tl$0 = match$1[2], + s2 = match$1[1], + l1 = s1, + l2 = s2, + accu = 0; + for(;;){ + if(l1){ + if(l2){ + var t2 = l2[2], h2 = l2[1], t1 = l1[2], h1 = l1[1]; + if(0 < caml_call2(cmp, h1, h2)){ + var accu$0 = [0, h2, accu], l2 = t2, accu = accu$0; + continue; + } + var accu$1 = [0, h1, accu], l1 = t1, accu = accu$1; + continue; + } + var _v_ = rev_append(l1, accu); + } + else + var _v_ = rev_append(l2, accu); + return [0, _v_, tl$0]; + } + } + var len = length(l); + return 2 <= len ? sort(len, l)[1] : l; + } + function sort_uniq(cmp, l){ + function sort(n, l){ + if(2 === n){ + if(l){ + var match = l[2]; + if(match){ + var + tl = match[2], + x2 = match[1], + x1 = l[1], + c$0 = caml_call2(cmp, x1, x2), + s = + 0 === c$0 + ? [0, x1, 0] + : 0 <= c$0 ? [0, x2, [0, x1, 0]] : [0, x1, [0, x2, 0]]; + return [0, s, tl]; + } + } + } + else if(3 === n && l){ + var _p_ = l[2]; + if(_p_){ + var match$2 = _p_[2]; + if(match$2){ + var + tl$1 = match$2[2], + x3 = match$2[1], + x2$0 = _p_[1], + x1$0 = l[1], + c$1 = caml_call2(cmp, x1$0, x2$0); + if(0 === c$1) + var + c$2 = caml_call2(cmp, x2$0, x3), + _q_ = + 0 === c$2 + ? [0, x2$0, 0] + : 0 <= c$2 ? [0, x3, [0, x2$0, 0]] : [0, x2$0, [0, x3, 0]], + s$0 = _q_; + else if(0 <= c$1){ + var c$3 = caml_call2(cmp, x1$0, x3); + if(0 === c$3) + var _r_ = [0, x2$0, [0, x1$0, 0]]; + else if(0 <= c$3) + var + c$4 = caml_call2(cmp, x2$0, x3), + _s_ = + 0 === c$4 + ? [0, x2$0, [0, x1$0, 0]] + : 0 + <= c$4 + ? [0, x3, [0, x2$0, [0, x1$0, 0]]] + : [0, x2$0, [0, x3, [0, x1$0, 0]]], + _r_ = _s_; + else + var _r_ = [0, x2$0, [0, x1$0, [0, x3, 0]]]; + var s$0 = _r_; + } + else{ + var c$5 = caml_call2(cmp, x2$0, x3); + if(0 === c$5) + var _t_ = [0, x1$0, [0, x2$0, 0]]; + else if(0 <= c$5) + var + c$6 = caml_call2(cmp, x1$0, x3), + _u_ = + 0 === c$6 + ? [0, x1$0, [0, x2$0, 0]] + : 0 + <= c$6 + ? [0, x3, [0, x1$0, [0, x2$0, 0]]] + : [0, x1$0, [0, x3, [0, x2$0, 0]]], + _t_ = _u_; + else + var _t_ = [0, x1$0, [0, x2$0, [0, x3, 0]]]; + var s$0 = _t_; + } + return [0, s$0, tl$1]; + } + } + } + var + n1 = n >> 1, + n2 = n - n1 | 0, + match$0 = rev_sort(n1, l), + l2$0 = match$0[2], + s1 = match$0[1], + match$1 = rev_sort(n2, l2$0), + tl$0 = match$1[2], + s2 = match$1[1], + l1 = s1, + l2 = s2, + accu = 0; + for(;;){ + if(l1){ + if(l2){ + var + t2 = l2[2], + h2 = l2[1], + t1 = l1[2], + h1 = l1[1], + c = caml_call2(cmp, h1, h2); + if(0 === c){ + var accu$0 = [0, h1, accu], l1 = t1, l2 = t2, accu = accu$0; + continue; + } + if(0 < c){ + var accu$1 = [0, h1, accu], l1 = t1, accu = accu$1; + continue; + } + var accu$2 = [0, h2, accu], l2 = t2, accu = accu$2; + continue; + } + var _o_ = rev_append(l1, accu); + } + else + var _o_ = rev_append(l2, accu); + return [0, _o_, tl$0]; + } + } + function rev_sort(n, l){ + if(2 === n){ + if(l){ + var match = l[2]; + if(match){ + var + tl = match[2], + x2 = match[1], + x1 = l[1], + c$0 = caml_call2(cmp, x1, x2), + s = + 0 === c$0 + ? [0, x1, 0] + : 0 < c$0 ? [0, x1, [0, x2, 0]] : [0, x2, [0, x1, 0]]; + return [0, s, tl]; + } + } + } + else if(3 === n && l){ + var _i_ = l[2]; + if(_i_){ + var match$2 = _i_[2]; + if(match$2){ + var + tl$1 = match$2[2], + x3 = match$2[1], + x2$0 = _i_[1], + x1$0 = l[1], + c$1 = caml_call2(cmp, x1$0, x2$0); + if(0 === c$1) + var + c$2 = caml_call2(cmp, x2$0, x3), + _j_ = + 0 === c$2 + ? [0, x2$0, 0] + : 0 < c$2 ? [0, x2$0, [0, x3, 0]] : [0, x3, [0, x2$0, 0]], + s$0 = _j_; + else if(0 < c$1){ + var c$3 = caml_call2(cmp, x2$0, x3); + if(0 === c$3) + var _k_ = [0, x1$0, [0, x2$0, 0]]; + else if(0 < c$3) + var _k_ = [0, x1$0, [0, x2$0, [0, x3, 0]]]; + else + var + c$4 = caml_call2(cmp, x1$0, x3), + _l_ = + 0 === c$4 + ? [0, x1$0, [0, x2$0, 0]] + : 0 + < c$4 + ? [0, x1$0, [0, x3, [0, x2$0, 0]]] + : [0, x3, [0, x1$0, [0, x2$0, 0]]], + _k_ = _l_; + var s$0 = _k_; + } + else{ + var c$5 = caml_call2(cmp, x1$0, x3); + if(0 === c$5) + var _m_ = [0, x2$0, [0, x1$0, 0]]; + else if(0 < c$5) + var _m_ = [0, x2$0, [0, x1$0, [0, x3, 0]]]; + else + var + c$6 = caml_call2(cmp, x2$0, x3), + _n_ = + 0 === c$6 + ? [0, x2$0, [0, x1$0, 0]] + : 0 + < c$6 + ? [0, x2$0, [0, x3, [0, x1$0, 0]]] + : [0, x3, [0, x2$0, [0, x1$0, 0]]], + _m_ = _n_; + var s$0 = _m_; + } + return [0, s$0, tl$1]; + } + } + } + var + n1 = n >> 1, + n2 = n - n1 | 0, + match$0 = sort(n1, l), + l2$0 = match$0[2], + s1 = match$0[1], + match$1 = sort(n2, l2$0), + tl$0 = match$1[2], + s2 = match$1[1], + l1 = s1, + l2 = s2, + accu = 0; + for(;;){ + if(l1){ + if(l2){ + var + t2 = l2[2], + h2 = l2[1], + t1 = l1[2], + h1 = l1[1], + c = caml_call2(cmp, h1, h2); + if(0 === c){ + var accu$0 = [0, h1, accu], l1 = t1, l2 = t2, accu = accu$0; + continue; + } + if(0 <= c){ + var accu$1 = [0, h2, accu], l2 = t2, accu = accu$1; + continue; + } + var accu$2 = [0, h1, accu], l1 = t1, accu = accu$2; + continue; + } + var _h_ = rev_append(l1, accu); + } + else + var _h_ = rev_append(l2, accu); + return [0, _h_, tl$0]; + } + } + var len = length(l); + return 2 <= len ? sort(len, l)[1] : l; + } + function compare_lengths(l1, l2){ + var l1$0 = l1, l2$0 = l2; + for(;;){ + if(! l1$0) return l2$0 ? -1 : 0; + if(! l2$0) return 1; + var l2$1 = l2$0[2], l1$1 = l1$0[2], l1$0 = l1$1, l2$0 = l2$1; + } + } + function compare_length_with(l, n){ + var l$0 = l, n$0 = n; + for(;;){ + if(! l$0) return 0 === n$0 ? 0 : 0 < n$0 ? -1 : 1; + var l$1 = l$0[2]; + if(0 >= n$0) return 1; + var n$1 = n$0 - 1 | 0, l$0 = l$1, n$0 = n$1; + } + } + function equal(eq, l1, l2){ + var l1$0 = l1, l2$0 = l2; + for(;;){ + if(l1$0){ + if(l2$0){ + var + l2$1 = l2$0[2], + a2 = l2$0[1], + l1$1 = l1$0[2], + a1 = l1$0[1], + _g_ = caml_call2(eq, a1, a2); + if(! _g_) return _g_; + var l1$0 = l1$1, l2$0 = l2$1; + continue; + } + } + else if(! l2$0) return 1; + return 0; + } + } + function compare(cmp, l1, l2){ + var l1$0 = l1, l2$0 = l2; + for(;;){ + if(! l1$0) return l2$0 ? -1 : 0; + var l1$1 = l1$0[2], a1 = l1$0[1]; + if(! l2$0) return 1; + var l2$1 = l2$0[2], a2 = l2$0[1], c = caml_call2(cmp, a1, a2); + if(0 !== c) return c; + var l1$0 = l1$1, l2$0 = l2$1; + } + } + function to_seq(l){ + function aux(l, param){ + if(! l) return 0; + var tail = l[2], x = l[1]; + return [0, x, function(_f_){return aux(tail, _f_);}]; + } + return function(_e_){return aux(l, _e_);}; + } + function of_seq(seq){ + function direct(depth, seq){ + if(0 === depth){ + var _c_ = 0, _d_ = function(acc, x){return [0, x, acc];}; + return rev(caml_call3(Stdlib_Seq[5], _d_, _c_, seq)); + } + var match = caml_call1(seq, 0); + if(! match) return 0; + var next = match[2], x = match[1]; + return [0, x, direct(depth - 1 | 0, next)]; + } + return direct(500, seq); + } + var + Stdlib_List = + [0, + length, + compare_lengths, + compare_length_with, + cons, + hd, + tl, + nth, + nth_opt, + rev, + init, + append, + rev_append, + flatten, + flatten, + equal, + compare, + iter, + iteri, + map, + mapi, + rev_map, + filter_map, + concat_map, + fold_left_map, + fold_left, + fold_right, + iter2, + map2, + rev_map2, + fold_left2, + fold_right2, + for_all, + exists, + for_all2, + exists2, + mem, + memq, + find, + find_opt, + find_map, + find_all, + find_all, + filteri, + partition, + partition_map, + assoc, + assoc_opt, + assq, + assq_opt, + mem_assoc, + mem_assq, + remove_assoc, + remove_assq, + split, + combine, + stable_sort, + stable_sort, + stable_sort, + sort_uniq, + merge, + to_seq, + of_seq]; + runtime.caml_register_global(18, Stdlib_List, "Stdlib__List"); + return; + } + (globalThis)); + +//# 3724 "../../.js/default/stdlib/stdlib.cma.js" +(function(globalThis){ + "use strict"; + var runtime = globalThis.jsoo_runtime, zero = 0, one = 1, minus_one = -1; + function abs(x){return 0 <= x ? x : - x | 0;} + var max_int = 2147483647, min_int = -2147483648; + function lognot(x){return x ^ -1;} + function equal(_b_, _a_){return _b_ === _a_ ? 1 : 0;} + var compare = runtime.caml_int_compare; + function min(x, y){return x <= y ? x : y;} + function max(x, y){return y <= x ? x : y;} + function to_string(x){return "" + x;} + var + Stdlib_Int = + [0, + zero, + one, + minus_one, + abs, + max_int, + min_int, + lognot, + equal, + compare, + min, + max, + to_string]; + runtime.caml_register_global(1, Stdlib_Int, "Stdlib__Int"); + return; + } + (globalThis)); + +//# 3757 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_bytes_ml = "bytes.ml", + cst_index_out_of_bounds$3 = "index out of bounds", + caml_blit_bytes = runtime.caml_blit_bytes, + caml_bswap16 = runtime.caml_bswap16, + caml_bytes_get = runtime.caml_bytes_get, + caml_bytes_get16 = runtime.caml_bytes_get16, + caml_bytes_get32 = runtime.caml_bytes_get32, + caml_bytes_get64 = runtime.caml_bytes_get64, + caml_bytes_of_string = runtime.caml_bytes_of_string, + caml_bytes_set = runtime.caml_bytes_set, + caml_bytes_set16 = runtime.caml_bytes_set16, + caml_bytes_set32 = runtime.caml_bytes_set32, + caml_bytes_set64 = runtime.caml_bytes_set64, + caml_bytes_unsafe_get = runtime.caml_bytes_unsafe_get, + caml_bytes_unsafe_set = runtime.caml_bytes_unsafe_set, + caml_create_bytes = runtime.caml_create_bytes, + caml_fill_bytes = runtime.caml_fill_bytes, + caml_int32_bswap = runtime.caml_int32_bswap, + caml_int64_bswap = runtime.caml_int64_bswap, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_ml_bytes_length = runtime.caml_ml_bytes_length, + caml_string_of_bytes = runtime.caml_string_of_bytes, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib = global_data.Stdlib, + Stdlib_Uchar = global_data.Stdlib__Uchar, + Assert_failure = global_data.Assert_failure, + Stdlib_Sys = global_data.Stdlib__Sys, + Stdlib_Int = global_data.Stdlib__Int, + Stdlib_Seq = global_data.Stdlib__Seq, + Stdlib_Char = global_data.Stdlib__Char, + cst_index_out_of_bounds$2 = cst_index_out_of_bounds$3, + _f_ = [0, cst_bytes_ml, 808, 20], + _e_ = [0, cst_bytes_ml, 819, 9], + cst_index_out_of_bounds$1 = cst_index_out_of_bounds$3, + cst_index_out_of_bounds$0 = cst_index_out_of_bounds$3, + _d_ = [0, cst_bytes_ml, 754, 20], + _c_ = [0, cst_bytes_ml, 765, 9], + cst_index_out_of_bounds = cst_index_out_of_bounds$3, + _b_ = [0, cst_bytes_ml, 642, 20], + _a_ = [0, cst_bytes_ml, 667, 9], + cst_Bytes_of_seq_cannot_grow_b = "Bytes.of_seq: cannot grow bytes", + cst_String_rcontains_from_Byte = + "String.rcontains_from / Bytes.rcontains_from", + cst_String_contains_from_Bytes = + "String.contains_from / Bytes.contains_from", + cst_String_rindex_from_opt_Byt = + "String.rindex_from_opt / Bytes.rindex_from_opt", + cst_String_rindex_from_Bytes_r = "String.rindex_from / Bytes.rindex_from", + cst_String_index_from_opt_Byte = + "String.index_from_opt / Bytes.index_from_opt", + cst_String_index_from_Bytes_in = "String.index_from / Bytes.index_from", + cst_Bytes_concat = "Bytes.concat", + cst_String_blit_Bytes_blit_str = "String.blit / Bytes.blit_string", + cst_Bytes_blit = "Bytes.blit", + cst_String_fill_Bytes_fill = "String.fill / Bytes.fill", + cst_Bytes_extend = "Bytes.extend", + cst_String_sub_Bytes_sub = "String.sub / Bytes.sub"; + function make(n, c){ + var s = caml_create_bytes(n); + caml_fill_bytes(s, 0, n, c); + return s; + } + function init(n, f){ + var s = caml_create_bytes(n), _aq_ = n - 1 | 0, _ap_ = 0; + if(_aq_ >= 0){ + var i = _ap_; + for(;;){ + caml_bytes_unsafe_set(s, i, caml_call1(f, i)); + var _ar_ = i + 1 | 0; + if(_aq_ !== i){var i = _ar_; continue;} + break; + } + } + return s; + } + var empty = caml_create_bytes(0); + function copy(s){ + var len = caml_ml_bytes_length(s), r = caml_create_bytes(len); + caml_blit_bytes(s, 0, r, 0, len); + return r; + } + function to_string(b){return caml_string_of_bytes(copy(b));} + function of_string(s){return copy(caml_bytes_of_string(s));} + function sub(s, ofs, len){ + if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs){ + var r = caml_create_bytes(len); + caml_blit_bytes(s, ofs, r, 0, len); + return r; + } + return caml_call1(Stdlib[1], cst_String_sub_Bytes_sub); + } + function sub_string(b, ofs, len){ + return caml_string_of_bytes(sub(b, ofs, len)); + } + function symbol(a, b){ + var + c = a + b | 0, + _ao_ = b < 0 ? 1 : 0, + match = c < 0 ? 1 : 0, + switch$0 = 0; + if(a < 0){ + if(_ao_ && ! match) switch$0 = 1; + } + else if(! _ao_ && match) switch$0 = 1; + return switch$0 ? caml_call1(Stdlib[1], cst_Bytes_extend) : c; + } + function extend(s, left, right){ + var + len = symbol(symbol(caml_ml_bytes_length(s), left), right), + r = caml_create_bytes(len); + if(0 <= left) + var dstoff = left, srcoff = 0; + else + var dstoff = 0, srcoff = - left | 0; + var + cpylen = + caml_call2 + (Stdlib_Int[10], + caml_ml_bytes_length(s) - srcoff | 0, + len - dstoff | 0); + if(0 < cpylen) caml_blit_bytes(s, srcoff, r, dstoff, cpylen); + return r; + } + function fill(s, ofs, len, c){ + if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) + return caml_fill_bytes(s, ofs, len, c); + return caml_call1(Stdlib[1], cst_String_fill_Bytes_fill); + } + function blit(s1, ofs1, s2, ofs2, len){ + if + (0 <= len + && + 0 <= ofs1 + && + (caml_ml_bytes_length(s1) - len | 0) >= ofs1 + && 0 <= ofs2 && (caml_ml_bytes_length(s2) - len | 0) >= ofs2) + return caml_blit_bytes(s1, ofs1, s2, ofs2, len); + return caml_call1(Stdlib[1], cst_Bytes_blit); + } + function blit_string(s1, ofs1, s2, ofs2, len){ + if + (0 <= len + && + 0 <= ofs1 + && + (runtime.caml_ml_string_length(s1) - len | 0) >= ofs1 + && 0 <= ofs2 && (caml_ml_bytes_length(s2) - len | 0) >= ofs2) + return runtime.caml_blit_string(s1, ofs1, s2, ofs2, len); + return caml_call1(Stdlib[1], cst_String_blit_Bytes_blit_str); + } + function iter(f, a){ + var _am_ = caml_ml_bytes_length(a) - 1 | 0, _al_ = 0; + if(_am_ >= 0){ + var i = _al_; + for(;;){ + caml_call1(f, caml_bytes_unsafe_get(a, i)); + var _an_ = i + 1 | 0; + if(_am_ !== i){var i = _an_; continue;} + break; + } + } + return 0; + } + function iteri(f, a){ + var _aj_ = caml_ml_bytes_length(a) - 1 | 0, _ai_ = 0; + if(_aj_ >= 0){ + var i = _ai_; + for(;;){ + caml_call2(f, i, caml_bytes_unsafe_get(a, i)); + var _ak_ = i + 1 | 0; + if(_aj_ !== i){var i = _ak_; continue;} + break; + } + } + return 0; + } + function concat(sep, l){ + if(! l) return empty; + var seplen = caml_ml_bytes_length(sep), acc = 0, param = l, pos$1 = 0; + for(;;){ + if(param){ + var hd = param[1]; + if(param[2]){ + var + tl = param[2], + x = (caml_ml_bytes_length(hd) + seplen | 0) + acc | 0, + acc$0 = acc <= x ? x : caml_call1(Stdlib[1], cst_Bytes_concat), + acc = acc$0, + param = tl; + continue; + } + var _ah_ = caml_ml_bytes_length(hd) + acc | 0; + } + else + var _ah_ = acc; + var dst = caml_create_bytes(_ah_), pos = pos$1, param$0 = l; + for(;;){ + if(! param$0) return dst; + var hd$0 = param$0[1]; + if(param$0[2]){ + var tl$0 = param$0[2]; + caml_blit_bytes(hd$0, 0, dst, pos, caml_ml_bytes_length(hd$0)); + caml_blit_bytes + (sep, 0, dst, pos + caml_ml_bytes_length(hd$0) | 0, seplen); + var + pos$0 = (pos + caml_ml_bytes_length(hd$0) | 0) + seplen | 0, + pos = pos$0, + param$0 = tl$0; + continue; + } + caml_blit_bytes(hd$0, 0, dst, pos, caml_ml_bytes_length(hd$0)); + return dst; + } + } + } + function cat(s1, s2){ + var + l1 = caml_ml_bytes_length(s1), + l2 = caml_ml_bytes_length(s2), + r = caml_create_bytes(l1 + l2 | 0); + caml_blit_bytes(s1, 0, r, 0, l1); + caml_blit_bytes(s2, 0, r, l1, l2); + return r; + } + function is_space(param){ + var _ag_ = param - 9 | 0, switch$0 = 0; + if(4 < _ag_ >>> 0){ + if(23 === _ag_) switch$0 = 1; + } + else if(2 !== _ag_) switch$0 = 1; + return switch$0 ? 1 : 0; + } + function trim(s){ + var len = caml_ml_bytes_length(s), i = [0, 0]; + for(;;){ + if(i[1] < len && is_space(caml_bytes_unsafe_get(s, i[1]))){i[1]++; continue;} + var j = [0, len - 1 | 0]; + for(;;){ + if(i[1] <= j[1] && is_space(caml_bytes_unsafe_get(s, j[1]))){j[1] += -1; continue;} + return i[1] <= j[1] ? sub(s, i[1], (j[1] - i[1] | 0) + 1 | 0) : empty; + } + } + } + function escaped(s){ + var n = [0, 0], _$_ = caml_ml_bytes_length(s) - 1 | 0, ___ = 0; + if(_$_ >= 0){ + var i$0 = ___; + for(;;){ + var match = caml_bytes_unsafe_get(s, i$0), switch$0 = 0; + if(32 <= match){ + var _ad_ = match - 34 | 0, switch$1 = 0; + if(58 < _ad_ >>> 0){ + if(93 > _ad_) switch$1 = 1; + } + else if(56 < _ad_ - 1 >>> 0) switch$0 = 1; else switch$1 = 1; + if(switch$1){var _ae_ = 1; switch$0 = 2;} + } + else + if(11 <= match){ + if(13 === match) switch$0 = 1; + } + else if(8 <= match) switch$0 = 1; + switch(switch$0){ + case 0: + var _ae_ = 4; break; + case 1: + var _ae_ = 2; break; + } + n[1] = n[1] + _ae_ | 0; + var _af_ = i$0 + 1 | 0; + if(_$_ !== i$0){var i$0 = _af_; continue;} + break; + } + } + if(n[1] === caml_ml_bytes_length(s)) return copy(s); + var s$0 = caml_create_bytes(n[1]); + n[1] = 0; + var _ab_ = caml_ml_bytes_length(s) - 1 | 0, _aa_ = 0; + if(_ab_ >= 0){ + var i = _aa_; + for(;;){ + var c = caml_bytes_unsafe_get(s, i), switch$2 = 0; + if(35 <= c) + if(92 === c) + switch$2 = 2; + else if(127 <= c) switch$2 = 1; else switch$2 = 3; + else if(32 <= c) + if(34 <= c) switch$2 = 2; else switch$2 = 3; + else if(14 <= c) + switch$2 = 1; + else + switch(c){ + case 8: + caml_bytes_unsafe_set(s$0, n[1], 92); + n[1]++; + caml_bytes_unsafe_set(s$0, n[1], 98); + break; + case 9: + caml_bytes_unsafe_set(s$0, n[1], 92); + n[1]++; + caml_bytes_unsafe_set(s$0, n[1], 116); + break; + case 10: + caml_bytes_unsafe_set(s$0, n[1], 92); + n[1]++; + caml_bytes_unsafe_set(s$0, n[1], 110); + break; + case 13: + caml_bytes_unsafe_set(s$0, n[1], 92); + n[1]++; + caml_bytes_unsafe_set(s$0, n[1], 114); + break; + default: switch$2 = 1; + } + switch(switch$2){ + case 1: + caml_bytes_unsafe_set(s$0, n[1], 92); + n[1]++; + caml_bytes_unsafe_set(s$0, n[1], 48 + (c / 100 | 0) | 0); + n[1]++; + caml_bytes_unsafe_set(s$0, n[1], 48 + ((c / 10 | 0) % 10 | 0) | 0); + n[1]++; + caml_bytes_unsafe_set(s$0, n[1], 48 + (c % 10 | 0) | 0); + break; + case 2: + caml_bytes_unsafe_set(s$0, n[1], 92); + n[1]++; + caml_bytes_unsafe_set(s$0, n[1], c); + break; + case 3: + caml_bytes_unsafe_set(s$0, n[1], c); break; + } + n[1]++; + var _ac_ = i + 1 | 0; + if(_ab_ !== i){var i = _ac_; continue;} + break; + } + } + return s$0; + } + function map(f, s){ + var l = caml_ml_bytes_length(s); + if(0 === l) return s; + var r = caml_create_bytes(l), _Y_ = l - 1 | 0, _X_ = 0; + if(_Y_ >= 0){ + var i = _X_; + for(;;){ + caml_bytes_unsafe_set(r, i, caml_call1(f, caml_bytes_unsafe_get(s, i))); + var _Z_ = i + 1 | 0; + if(_Y_ !== i){var i = _Z_; continue;} + break; + } + } + return r; + } + function mapi(f, s){ + var l = caml_ml_bytes_length(s); + if(0 === l) return s; + var r = caml_create_bytes(l), _V_ = l - 1 | 0, _U_ = 0; + if(_V_ >= 0){ + var i = _U_; + for(;;){ + caml_bytes_unsafe_set + (r, i, caml_call2(f, i, caml_bytes_unsafe_get(s, i))); + var _W_ = i + 1 | 0; + if(_V_ !== i){var i = _W_; continue;} + break; + } + } + return r; + } + function fold_left(f, x, a){ + var r = [0, x], _S_ = caml_ml_bytes_length(a) - 1 | 0, _R_ = 0; + if(_S_ >= 0){ + var i = _R_; + for(;;){ + r[1] = caml_call2(f, r[1], caml_bytes_unsafe_get(a, i)); + var _T_ = i + 1 | 0; + if(_S_ !== i){var i = _T_; continue;} + break; + } + } + return r[1]; + } + function fold_right(f, a, x){ + var r = [0, x], _P_ = caml_ml_bytes_length(a) - 1 | 0; + if(_P_ >= 0){ + var i = _P_; + for(;;){ + r[1] = caml_call2(f, caml_bytes_unsafe_get(a, i), r[1]); + var _Q_ = i - 1 | 0; + if(0 !== i){var i = _Q_; continue;} + break; + } + } + return r[1]; + } + function exists(p, s){ + var n = caml_ml_bytes_length(s), i = 0; + for(;;){ + if(i === n) return 0; + if(caml_call1(p, caml_bytes_unsafe_get(s, i))) return 1; + var i$0 = i + 1 | 0, i = i$0; + } + } + function for_all(p, s){ + var n = caml_ml_bytes_length(s), i = 0; + for(;;){ + if(i === n) return 1; + if(! caml_call1(p, caml_bytes_unsafe_get(s, i))) return 0; + var i$0 = i + 1 | 0, i = i$0; + } + } + function uppercase_ascii(s){return map(Stdlib_Char[6], s);} + function lowercase_ascii(s){return map(Stdlib_Char[5], s);} + function apply1(f, s){ + if(0 === caml_ml_bytes_length(s)) return s; + var r = copy(s); + caml_bytes_unsafe_set(r, 0, caml_call1(f, caml_bytes_unsafe_get(s, 0))); + return r; + } + function capitalize_ascii(s){return apply1(Stdlib_Char[6], s);} + function uncapitalize_ascii(s){return apply1(Stdlib_Char[5], s);} + function starts_with(prefix, s){ + var + len_s = caml_ml_bytes_length(s), + len_pre = caml_ml_bytes_length(prefix), + _O_ = len_pre <= len_s ? 1 : 0; + if(! _O_) return _O_; + var i = 0; + for(;;){ + if(i === len_pre) return 1; + if(caml_bytes_unsafe_get(s, i) !== caml_bytes_unsafe_get(prefix, i)) + return 0; + var i$0 = i + 1 | 0, i = i$0; + } + } + function ends_with(suffix, s){ + var + len_s = caml_ml_bytes_length(s), + len_suf = caml_ml_bytes_length(suffix), + diff = len_s - len_suf | 0, + _N_ = 0 <= diff ? 1 : 0; + if(! _N_) return _N_; + var i = 0; + for(;;){ + if(i === len_suf) return 1; + if + (caml_bytes_unsafe_get(s, diff + i | 0) + !== caml_bytes_unsafe_get(suffix, i)) + return 0; + var i$0 = i + 1 | 0, i = i$0; + } + } + function index_rec(s, lim, i, c){ + var i$0 = i; + for(;;){ + if(lim <= i$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + if(caml_bytes_unsafe_get(s, i$0) === c) return i$0; + var i$1 = i$0 + 1 | 0, i$0 = i$1; + } + } + function index(s, c){return index_rec(s, caml_ml_bytes_length(s), 0, c);} + function index_rec_opt(s, lim, i, c){ + var i$0 = i; + for(;;){ + if(lim <= i$0) return 0; + if(caml_bytes_unsafe_get(s, i$0) === c) return [0, i$0]; + var i$1 = i$0 + 1 | 0, i$0 = i$1; + } + } + function index_opt(s, c){ + return index_rec_opt(s, caml_ml_bytes_length(s), 0, c); + } + function index_from(s, i, c){ + var l = caml_ml_bytes_length(s); + if(0 <= i && l >= i) return index_rec(s, l, i, c); + return caml_call1(Stdlib[1], cst_String_index_from_Bytes_in); + } + function index_from_opt(s, i, c){ + var l = caml_ml_bytes_length(s); + if(0 <= i && l >= i) return index_rec_opt(s, l, i, c); + return caml_call1(Stdlib[1], cst_String_index_from_opt_Byte); + } + function rindex_rec(s, i, c){ + var i$0 = i; + for(;;){ + if(0 > i$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + if(caml_bytes_unsafe_get(s, i$0) === c) return i$0; + var i$1 = i$0 - 1 | 0, i$0 = i$1; + } + } + function rindex(s, c){ + return rindex_rec(s, caml_ml_bytes_length(s) - 1 | 0, c); + } + function rindex_from(s, i, c){ + if(-1 <= i && caml_ml_bytes_length(s) > i) return rindex_rec(s, i, c); + return caml_call1(Stdlib[1], cst_String_rindex_from_Bytes_r); + } + function rindex_rec_opt(s, i, c){ + var i$0 = i; + for(;;){ + if(0 > i$0) return 0; + if(caml_bytes_unsafe_get(s, i$0) === c) return [0, i$0]; + var i$1 = i$0 - 1 | 0, i$0 = i$1; + } + } + function rindex_opt(s, c){ + return rindex_rec_opt(s, caml_ml_bytes_length(s) - 1 | 0, c); + } + function rindex_from_opt(s, i, c){ + if(-1 <= i && caml_ml_bytes_length(s) > i) return rindex_rec_opt(s, i, c); + return caml_call1(Stdlib[1], cst_String_rindex_from_opt_Byt); + } + function contains_from(s, i, c){ + var l = caml_ml_bytes_length(s); + if(0 <= i && l >= i) + try{index_rec(s, l, i, c); var _L_ = 1; return _L_;} + catch(_M_){ + var _K_ = caml_wrap_exception(_M_); + if(_K_ === Stdlib[8]) return 0; + throw caml_maybe_attach_backtrace(_K_, 0); + } + return caml_call1(Stdlib[1], cst_String_contains_from_Bytes); + } + function contains(s, c){return contains_from(s, 0, c);} + function rcontains_from(s, i, c){ + if(0 <= i && caml_ml_bytes_length(s) > i) + try{rindex_rec(s, i, c); var _I_ = 1; return _I_;} + catch(_J_){ + var _H_ = caml_wrap_exception(_J_); + if(_H_ === Stdlib[8]) return 0; + throw caml_maybe_attach_backtrace(_H_, 0); + } + return caml_call1(Stdlib[1], cst_String_rcontains_from_Byte); + } + var compare = runtime.caml_bytes_compare; + function split_on_char(sep, s){ + var + r = [0, 0], + j = [0, caml_ml_bytes_length(s)], + _D_ = caml_ml_bytes_length(s) - 1 | 0; + if(_D_ >= 0){ + var i = _D_; + for(;;){ + if(caml_bytes_unsafe_get(s, i) === sep){ + var _F_ = r[1]; + r[1] = [0, sub(s, i + 1 | 0, (j[1] - i | 0) - 1 | 0), _F_]; + j[1] = i; + } + var _G_ = i - 1 | 0; + if(0 !== i){var i = _G_; continue;} + break; + } + } + var _E_ = r[1]; + return [0, sub(s, 0, j[1]), _E_]; + } + function uppercase(s){return map(Stdlib_Char[4], s);} + function lowercase(s){return map(Stdlib_Char[3], s);} + function capitalize(s){return apply1(Stdlib_Char[4], s);} + function uncapitalize(s){return apply1(Stdlib_Char[3], s);} + function to_seq(s){ + function aux(i, param){ + if(i === caml_ml_bytes_length(s)) return 0; + var x = caml_bytes_get(s, i), _B_ = i + 1 | 0; + return [0, x, function(_C_){return aux(_B_, _C_);}]; + } + var _z_ = 0; + return function(_A_){return aux(_z_, _A_);}; + } + function to_seqi(s){ + function aux(i, param){ + if(i === caml_ml_bytes_length(s)) return 0; + var x = caml_bytes_get(s, i), _x_ = i + 1 | 0; + return [0, [0, i, x], function(_y_){return aux(_x_, _y_);}]; + } + var _v_ = 0; + return function(_w_){return aux(_v_, _w_);}; + } + function of_seq(i){ + var n = [0, 0], buf = [0, make(256, 0)]; + function _u_(c){ + if(n[1] === caml_ml_bytes_length(buf[1])){ + var + new_len = + caml_call2 + (Stdlib_Int[10], + 2 * caml_ml_bytes_length(buf[1]) | 0, + Stdlib_Sys[12]); + if(caml_ml_bytes_length(buf[1]) === new_len) + caml_call1(Stdlib[2], cst_Bytes_of_seq_cannot_grow_b); + var new_buf = make(new_len, 0); + blit(buf[1], 0, new_buf, 0, n[1]); + buf[1] = new_buf; + } + caml_bytes_set(buf[1], n[1], c); + n[1]++; + return 0; + } + caml_call2(Stdlib_Seq[4], _u_, i); + return sub(buf[1], 0, n[1]); + } + function unsafe_get_uint16_le(b, i){ + return Stdlib_Sys[11] + ? caml_bswap16(caml_bytes_get16(b, i)) + : caml_bytes_get16(b, i); + } + function unsafe_get_uint16_be(b, i){ + return Stdlib_Sys[11] + ? caml_bytes_get16(b, i) + : caml_bswap16(caml_bytes_get16(b, i)); + } + function get_int8(b, i){ + var _s_ = Stdlib_Sys[10] - 8 | 0, _t_ = Stdlib_Sys[10] - 8 | 0; + return caml_bytes_get(b, i) << _t_ >> _s_; + } + function get_uint16_le(b, i){ + return Stdlib_Sys[11] + ? caml_bswap16(caml_bytes_get16(b, i)) + : caml_bytes_get16(b, i); + } + function get_uint16_be(b, i){ + return Stdlib_Sys[11] + ? caml_bytes_get16(b, i) + : caml_bswap16(caml_bytes_get16(b, i)); + } + function get_int16_ne(b, i){ + var _q_ = Stdlib_Sys[10] - 16 | 0, _r_ = Stdlib_Sys[10] - 16 | 0; + return caml_bytes_get16(b, i) << _r_ >> _q_; + } + function get_int16_le(b, i){ + var _o_ = Stdlib_Sys[10] - 16 | 0, _p_ = Stdlib_Sys[10] - 16 | 0; + return get_uint16_le(b, i) << _p_ >> _o_; + } + function get_int16_be(b, i){ + var _m_ = Stdlib_Sys[10] - 16 | 0, _n_ = Stdlib_Sys[10] - 16 | 0; + return get_uint16_be(b, i) << _n_ >> _m_; + } + function get_int32_le(b, i){ + return Stdlib_Sys[11] + ? caml_int32_bswap(caml_bytes_get32(b, i)) + : caml_bytes_get32(b, i); + } + function get_int32_be(b, i){ + return Stdlib_Sys[11] + ? caml_bytes_get32(b, i) + : caml_int32_bswap(caml_bytes_get32(b, i)); + } + function get_int64_le(b, i){ + return Stdlib_Sys[11] + ? caml_int64_bswap(caml_bytes_get64(b, i)) + : caml_bytes_get64(b, i); + } + function get_int64_be(b, i){ + return Stdlib_Sys[11] + ? caml_bytes_get64(b, i) + : caml_int64_bswap(caml_bytes_get64(b, i)); + } + function unsafe_set_uint16_le(b, i, x){ + return Stdlib_Sys[11] + ? caml_bytes_set16(b, i, caml_bswap16(x)) + : caml_bytes_set16(b, i, x); + } + function unsafe_set_uint16_be(b, i, x){ + return Stdlib_Sys[11] + ? caml_bytes_set16(b, i, x) + : caml_bytes_set16(b, i, caml_bswap16(x)); + } + function set_int16_le(b, i, x){ + return Stdlib_Sys[11] + ? caml_bytes_set16(b, i, caml_bswap16(x)) + : caml_bytes_set16(b, i, x); + } + function set_int16_be(b, i, x){ + return Stdlib_Sys[11] + ? caml_bytes_set16(b, i, x) + : caml_bytes_set16(b, i, caml_bswap16(x)); + } + function set_int32_le(b, i, x){ + return Stdlib_Sys[11] + ? caml_bytes_set32(b, i, caml_int32_bswap(x)) + : caml_bytes_set32(b, i, x); + } + function set_int32_be(b, i, x){ + return Stdlib_Sys[11] + ? caml_bytes_set32(b, i, x) + : caml_bytes_set32(b, i, caml_int32_bswap(x)); + } + function set_int64_le(b, i, x){ + return Stdlib_Sys[11] + ? caml_bytes_set64(b, i, caml_int64_bswap(x)) + : caml_bytes_set64(b, i, x); + } + function set_int64_be(b, i, x){ + return Stdlib_Sys[11] + ? caml_bytes_set64(b, i, x) + : caml_bytes_set64(b, i, caml_int64_bswap(x)); + } + var + set_uint8 = caml_bytes_set, + set_uint16_ne = caml_bytes_set16, + dec_invalid = Stdlib_Uchar[22]; + function dec_ret(n, u){ + var _l_ = caml_call1(Stdlib_Uchar[9], u); + return caml_call2(Stdlib_Uchar[21], n, _l_); + } + function not_in_x80_to_xBF(b){return 2 !== (b >>> 6 | 0) ? 1 : 0;} + function not_in_xA0_to_xBF(b){return 5 !== (b >>> 5 | 0) ? 1 : 0;} + function not_in_x80_to_x9F(b){return 4 !== (b >>> 5 | 0) ? 1 : 0;} + function not_in_x90_to_xBF(b){ + var _j_ = b < 144 ? 1 : 0, _k_ = _j_ || (191 < b ? 1 : 0); + return _k_; + } + function not_in_x80_to_x8F(b){return 8 !== (b >>> 4 | 0) ? 1 : 0;} + function utf_8_uchar_3(b0, b1, b2){ + return (b0 & 15) << 12 | (b1 & 63) << 6 | b2 & 63; + } + function utf_8_uchar_4(b0, b1, b2, b3){ + return (b0 & 7) << 18 | (b1 & 63) << 12 | (b2 & 63) << 6 | b3 & 63; + } + function get_utf_8_uchar(b, i){ + var b0 = caml_bytes_get(b, i), max = caml_ml_bytes_length(b) - 1 | 0; + if(224 <= b0){ + var switch$0 = 0; + if(237 <= b0){ + if(245 > b0) + switch(b0 - 237 | 0){ + case 0: + var i$0 = i + 1 | 0; + if(max < i$0) return caml_call1(dec_invalid, 1); + var b1 = caml_bytes_unsafe_get(b, i$0); + if(not_in_x80_to_x9F(b1)) return caml_call1(dec_invalid, 1); + var i$1 = i$0 + 1 | 0; + if(max < i$1) return caml_call1(dec_invalid, 2); + var b2 = caml_bytes_unsafe_get(b, i$1); + return not_in_x80_to_xBF(b2) + ? caml_call1(dec_invalid, 2) + : dec_ret(3, utf_8_uchar_3(b0, b1, b2)); + case 3: + var i$4 = i + 1 | 0; + if(max < i$4) return caml_call1(dec_invalid, 1); + var b1$1 = caml_bytes_unsafe_get(b, i$4); + if(not_in_x90_to_xBF(b1$1)) return caml_call1(dec_invalid, 1); + var i$5 = i$4 + 1 | 0; + if(max < i$5) return caml_call1(dec_invalid, 2); + var b2$1 = caml_bytes_unsafe_get(b, i$5); + if(not_in_x80_to_xBF(b2$1)) return caml_call1(dec_invalid, 2); + var i$6 = i$5 + 1 | 0; + if(max < i$6) return caml_call1(dec_invalid, 3); + var b3 = caml_bytes_unsafe_get(b, i$6); + return not_in_x80_to_xBF(b3) + ? caml_call1(dec_invalid, 3) + : dec_ret(4, utf_8_uchar_4(b0, b1$1, b2$1, b3)); + case 7: + var i$10 = i + 1 | 0; + if(max < i$10) return caml_call1(dec_invalid, 1); + var b1$3 = caml_bytes_unsafe_get(b, i$10); + if(not_in_x80_to_x8F(b1$3)) return caml_call1(dec_invalid, 1); + var i$11 = i$10 + 1 | 0; + if(max < i$11) return caml_call1(dec_invalid, 2); + var b2$3 = caml_bytes_unsafe_get(b, i$11); + if(not_in_x80_to_xBF(b2$3)) return caml_call1(dec_invalid, 2); + var i$12 = i$11 + 1 | 0; + if(max < i$12) return caml_call1(dec_invalid, 3); + var b3$1 = caml_bytes_unsafe_get(b, i$12); + return not_in_x80_to_xBF(b3$1) + ? caml_call1(dec_invalid, 3) + : dec_ret(4, utf_8_uchar_4(b0, b1$3, b2$3, b3$1)); + case 1: + case 2: + switch$0 = 1; break; + default: + var i$7 = i + 1 | 0; + if(max < i$7) return caml_call1(dec_invalid, 1); + var b1$2 = caml_bytes_unsafe_get(b, i$7); + if(not_in_x80_to_xBF(b1$2)) return caml_call1(dec_invalid, 1); + var i$8 = i$7 + 1 | 0; + if(max < i$8) return caml_call1(dec_invalid, 2); + var b2$2 = caml_bytes_unsafe_get(b, i$8); + if(not_in_x80_to_xBF(b2$2)) return caml_call1(dec_invalid, 2); + var i$9 = i$8 + 1 | 0; + if(max < i$9) return caml_call1(dec_invalid, 3); + var b3$0 = caml_bytes_unsafe_get(b, i$9); + return not_in_x80_to_xBF(b3$0) + ? caml_call1(dec_invalid, 3) + : dec_ret(4, utf_8_uchar_4(b0, b1$2, b2$2, b3$0)); + } + } + else{ + if(225 > b0){ + var i$13 = i + 1 | 0; + if(max < i$13) return caml_call1(dec_invalid, 1); + var b1$4 = caml_bytes_unsafe_get(b, i$13); + if(not_in_xA0_to_xBF(b1$4)) return caml_call1(dec_invalid, 1); + var i$14 = i$13 + 1 | 0; + if(max < i$14) return caml_call1(dec_invalid, 2); + var b2$4 = caml_bytes_unsafe_get(b, i$14); + return not_in_x80_to_xBF(b2$4) + ? caml_call1(dec_invalid, 2) + : dec_ret(3, utf_8_uchar_3(b0, b1$4, b2$4)); + } + switch$0 = 1; + } + if(switch$0){ + var i$2 = i + 1 | 0; + if(max < i$2) return caml_call1(dec_invalid, 1); + var b1$0 = caml_bytes_unsafe_get(b, i$2); + if(not_in_x80_to_xBF(b1$0)) return caml_call1(dec_invalid, 1); + var i$3 = i$2 + 1 | 0; + if(max < i$3) return caml_call1(dec_invalid, 2); + var b2$0 = caml_bytes_unsafe_get(b, i$3); + return not_in_x80_to_xBF(b2$0) + ? caml_call1(dec_invalid, 2) + : dec_ret(3, utf_8_uchar_3(b0, b1$0, b2$0)); + } + } + else{ + if(128 > b0) return dec_ret(1, b0); + if(194 <= b0){ + var i$15 = i + 1 | 0; + if(max < i$15) return caml_call1(dec_invalid, 1); + var b1$5 = caml_bytes_unsafe_get(b, i$15); + return not_in_x80_to_xBF(b1$5) + ? caml_call1(dec_invalid, 1) + : dec_ret(2, (b0 & 31) << 6 | b1$5 & 63); + } + } + return caml_call1(dec_invalid, 1); + } + function set_utf_8_uchar(b, i, u){ + function set(_i_, _h_, _g_){ + caml_bytes_unsafe_set(_i_, _h_, _g_); + return 0; + } + var + max = caml_ml_bytes_length(b) - 1 | 0, + u$0 = caml_call1(Stdlib_Uchar[10], u); + if(0 > u$0) + throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); + if(127 >= u$0){caml_bytes_set(b, i, u$0); return 1;} + if(2047 >= u$0){ + var last$1 = i + 1 | 0; + return max < last$1 + ? 0 + : (caml_bytes_set + (b, i, 192 | u$0 >>> 6 | 0), + set(b, last$1, 128 | u$0 & 63), + 2); + } + if(65535 >= u$0){ + var last$0 = i + 2 | 0; + return max < last$0 + ? 0 + : (caml_bytes_set + (b, i, 224 | u$0 >>> 12 | 0), + set(b, i + 1 | 0, 128 | (u$0 >>> 6 | 0) & 63), + set(b, last$0, 128 | u$0 & 63), + 3); + } + if(1114111 < u$0) + throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); + var last = i + 3 | 0; + return max < last + ? 0 + : (caml_bytes_set + (b, i, 240 | u$0 >>> 18 | 0), + set(b, i + 1 | 0, 128 | (u$0 >>> 12 | 0) & 63), + set(b, i + 2 | 0, 128 | (u$0 >>> 6 | 0) & 63), + set(b, last, 128 | u$0 & 63), + 4); + } + function is_valid_utf_8(b){ + var max = caml_ml_bytes_length(b) - 1 | 0, i = 0; + for(;;){ + if(max < i) return 1; + var match = caml_bytes_unsafe_get(b, i); + if(224 <= match){ + var switch$0 = 0; + if(237 <= match){ + if(245 > match) + switch(match - 237 | 0){ + case 0: + var last = i + 2 | 0; + if + (max >= last + && + ! + not_in_x80_to_x9F(caml_bytes_unsafe_get(b, i + 1 | 0)) + && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last))){var i$0 = last + 1 | 0, i = i$0; continue;} + return 0; + case 3: + var last$1 = i + 3 | 0; + if + (max >= last$1 + && + ! + not_in_x90_to_xBF(caml_bytes_unsafe_get(b, i + 1 | 0)) + && + ! + not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 2 | 0)) + && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$1))){var i$2 = last$1 + 1 | 0, i = i$2; continue;} + return 0; + case 7: + var last$3 = i + 3 | 0; + if + (max >= last$3 + && + ! + not_in_x80_to_x8F(caml_bytes_unsafe_get(b, i + 1 | 0)) + && + ! + not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 2 | 0)) + && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$3))){var i$4 = last$3 + 1 | 0, i = i$4; continue;} + return 0; + case 1: + case 2: + switch$0 = 1; break; + default: + var last$2 = i + 3 | 0; + if + (max >= last$2 + && + ! + not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 1 | 0)) + && + ! + not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 2 | 0)) + && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$2))){var i$3 = last$2 + 1 | 0, i = i$3; continue;} + return 0; + } + } + else{ + if(225 > match){ + var last$4 = i + 2 | 0; + if + (max >= last$4 + && + ! + not_in_xA0_to_xBF(caml_bytes_unsafe_get(b, i + 1 | 0)) + && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$4))){var i$5 = last$4 + 1 | 0, i = i$5; continue;} + return 0; + } + switch$0 = 1; + } + if(switch$0){ + var last$0 = i + 2 | 0; + if + (max >= last$0 + && + ! + not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 1 | 0)) + && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$0))){var i$1 = last$0 + 1 | 0, i = i$1; continue;} + return 0; + } + } + else{ + if(128 > match){var i$7 = i + 1 | 0, i = i$7; continue;} + if(194 <= match){ + var last$5 = i + 1 | 0; + if + (max >= last$5 + && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$5))){var i$6 = last$5 + 1 | 0, i = i$6; continue;} + return 0; + } + } + return 0; + } + } + function get_utf_16be_uchar(b, i){ + var max = caml_ml_bytes_length(b) - 1 | 0; + if(0 <= i && max >= i){ + if(i === max) return caml_call1(dec_invalid, 1); + var hi = unsafe_get_uint16_be(b, i); + if(55296 <= hi && 57343 >= hi){ + if(56319 < hi) return caml_call1(dec_invalid, 2); + var last = i + 3 | 0; + if(max < last) return caml_call1(dec_invalid, (max - i | 0) + 1 | 0); + var lo = unsafe_get_uint16_be(b, i + 2 | 0); + if(56320 <= lo && 57343 >= lo){ + var u = ((hi & 1023) << 10 | lo & 1023) + 65536 | 0; + return dec_ret(4, u); + } + return caml_call1(dec_invalid, 2); + } + return dec_ret(2, hi); + } + return caml_call1(Stdlib[1], cst_index_out_of_bounds); + } + function set_utf_16be_uchar(b, i, u){ + var max = caml_ml_bytes_length(b) - 1 | 0; + if(0 <= i && max >= i){ + var u$0 = caml_call1(Stdlib_Uchar[10], u); + if(0 > u$0) + throw caml_maybe_attach_backtrace([0, Assert_failure, _d_], 1); + if(65535 >= u$0){ + var last$0 = i + 1 | 0; + return max < last$0 ? 0 : (unsafe_set_uint16_be(b, i, u$0), 2); + } + if(1114111 < u$0) + throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); + var last = i + 3 | 0; + if(max < last) return 0; + var + u$1 = u$0 - 65536 | 0, + hi = 55296 | u$1 >>> 10 | 0, + lo = 56320 | u$1 & 1023; + unsafe_set_uint16_be(b, i, hi); + unsafe_set_uint16_be(b, i + 2 | 0, lo); + return 4; + } + return caml_call1(Stdlib[1], cst_index_out_of_bounds$0); + } + function is_valid_utf_16be(b){ + var max = caml_ml_bytes_length(b) - 1 | 0, i = 0; + for(;;){ + if(max < i) return 1; + if(i === max) return 0; + var u = unsafe_get_uint16_be(b, i); + if(55296 <= u && 57343 >= u){ + if(56319 < u) return 0; + var last = i + 3 | 0; + if(max < last) return 0; + var u$0 = unsafe_get_uint16_be(b, i + 2 | 0); + if(56320 <= u$0 && 57343 >= u$0){ + var i$1 = i + 4 | 0, i = i$1; + continue; + } + return 0; + } + var i$0 = i + 2 | 0, i = i$0; + } + } + function get_utf_16le_uchar(b, i){ + var max = caml_ml_bytes_length(b) - 1 | 0; + if(0 <= i && max >= i){ + if(i === max) return caml_call1(dec_invalid, 1); + var hi = unsafe_get_uint16_le(b, i); + if(55296 <= hi && 57343 >= hi){ + if(56319 < hi) return caml_call1(dec_invalid, 2); + var last = i + 3 | 0; + if(max < last) return caml_call1(dec_invalid, (max - i | 0) + 1 | 0); + var lo = unsafe_get_uint16_le(b, i + 2 | 0); + if(56320 <= lo && 57343 >= lo){ + var u = ((hi & 1023) << 10 | lo & 1023) + 65536 | 0; + return dec_ret(4, u); + } + return caml_call1(dec_invalid, 2); + } + return dec_ret(2, hi); + } + return caml_call1(Stdlib[1], cst_index_out_of_bounds$1); + } + function set_utf_16le_uchar(b, i, u){ + var max = caml_ml_bytes_length(b) - 1 | 0; + if(0 <= i && max >= i){ + var u$0 = caml_call1(Stdlib_Uchar[10], u); + if(0 > u$0) + throw caml_maybe_attach_backtrace([0, Assert_failure, _f_], 1); + if(65535 >= u$0){ + var last$0 = i + 1 | 0; + return max < last$0 ? 0 : (unsafe_set_uint16_le(b, i, u$0), 2); + } + if(1114111 < u$0) + throw caml_maybe_attach_backtrace([0, Assert_failure, _e_], 1); + var last = i + 3 | 0; + if(max < last) return 0; + var + u$1 = u$0 - 65536 | 0, + hi = 55296 | u$1 >>> 10 | 0, + lo = 56320 | u$1 & 1023; + unsafe_set_uint16_le(b, i, hi); + unsafe_set_uint16_le(b, i + 2 | 0, lo); + return 4; + } + return caml_call1(Stdlib[1], cst_index_out_of_bounds$2); + } + function is_valid_utf_16le(b){ + var max = caml_ml_bytes_length(b) - 1 | 0, i = 0; + for(;;){ + if(max < i) return 1; + if(i === max) return 0; + var u = unsafe_get_uint16_le(b, i); + if(55296 <= u && 57343 >= u){ + if(56319 < u) return 0; + var last = i + 3 | 0; + if(max < last) return 0; + var u$0 = unsafe_get_uint16_le(b, i + 2 | 0); + if(56320 <= u$0 && 57343 >= u$0){ + var i$1 = i + 4 | 0, i = i$1; + continue; + } + return 0; + } + var i$0 = i + 2 | 0, i = i$0; + } + } + var + Stdlib_Bytes = + [0, + make, + init, + empty, + copy, + of_string, + to_string, + sub, + sub_string, + extend, + fill, + blit, + blit_string, + concat, + cat, + iter, + iteri, + map, + mapi, + fold_left, + fold_right, + for_all, + exists, + trim, + escaped, + index, + index_opt, + rindex, + rindex_opt, + index_from, + index_from_opt, + rindex_from, + rindex_from_opt, + contains, + contains_from, + rcontains_from, + uppercase, + lowercase, + capitalize, + uncapitalize, + uppercase_ascii, + lowercase_ascii, + capitalize_ascii, + uncapitalize_ascii, + compare, + runtime.caml_bytes_equal, + starts_with, + ends_with, + caml_string_of_bytes, + caml_bytes_of_string, + split_on_char, + to_seq, + to_seqi, + of_seq, + get_utf_8_uchar, + set_utf_8_uchar, + is_valid_utf_8, + get_utf_16be_uchar, + set_utf_16be_uchar, + is_valid_utf_16be, + get_utf_16le_uchar, + set_utf_16le_uchar, + is_valid_utf_16le, + caml_bytes_get, + get_int8, + caml_bytes_get16, + get_uint16_be, + get_uint16_le, + get_int16_ne, + get_int16_be, + get_int16_le, + caml_bytes_get32, + get_int32_be, + get_int32_le, + caml_bytes_get64, + get_int64_be, + get_int64_le, + set_uint8, + caml_bytes_set, + set_uint16_ne, + set_int16_be, + set_int16_le, + caml_bytes_set16, + set_int16_be, + set_int16_le, + caml_bytes_set32, + set_int32_be, + set_int32_le, + caml_bytes_set64, + set_int64_be, + set_int64_le]; + runtime.caml_register_global(30, Stdlib_Bytes, "Stdlib__Bytes"); + return; + } + (globalThis)); + +//# 4971 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst$0 = "", + caml_blit_string = runtime.caml_blit_string, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_ml_string_length = runtime.caml_ml_string_length, + caml_string_equal = runtime.caml_string_equal, + caml_string_unsafe_get = runtime.caml_string_unsafe_get, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + var + global_data = runtime.caml_get_global_data(), + cst = cst$0, + empty = cst$0, + Stdlib = global_data.Stdlib, + Stdlib_Bytes = global_data.Stdlib__Bytes, + bts = Stdlib_Bytes[48], + bos = Stdlib_Bytes[49], + cst_String_rcontains_from_Byte = + "String.rcontains_from / Bytes.rcontains_from", + cst_String_contains_from_Bytes = + "String.contains_from / Bytes.contains_from", + cst_String_rindex_from_opt_Byt = + "String.rindex_from_opt / Bytes.rindex_from_opt", + cst_String_rindex_from_Bytes_r = "String.rindex_from / Bytes.rindex_from", + cst_String_index_from_opt_Byte = + "String.index_from_opt / Bytes.index_from_opt", + cst_String_index_from_Bytes_in = "String.index_from / Bytes.index_from", + cst_String_concat = "String.concat"; + function make(n, c){ + return caml_call1(bts, caml_call2(Stdlib_Bytes[1], n, c)); + } + function init(n, f){ + return caml_call1(bts, caml_call2(Stdlib_Bytes[2], n, f)); + } + function copy(s){ + var _ac_ = caml_call1(bos, s); + return caml_call1(bts, caml_call1(Stdlib_Bytes[4], _ac_)); + } + var of_bytes = Stdlib_Bytes[6], to_bytes = Stdlib_Bytes[5]; + function sub(s, ofs, len){ + var _ab_ = caml_call1(bos, s); + return caml_call1(bts, caml_call3(Stdlib_Bytes[7], _ab_, ofs, len)); + } + var fill = Stdlib_Bytes[10], blit = Stdlib_Bytes[12]; + function concat(sep, l){ + if(! l) return cst; + var seplen = caml_ml_string_length(sep), acc = 0, param = l, pos$1 = 0; + for(;;){ + if(param){ + var hd = param[1]; + if(param[2]){ + var + tl = param[2], + x = (caml_ml_string_length(hd) + seplen | 0) + acc | 0, + acc$0 = acc <= x ? x : caml_call1(Stdlib[1], cst_String_concat), + acc = acc$0, + param = tl; + continue; + } + var _aa_ = caml_ml_string_length(hd) + acc | 0; + } + else + var _aa_ = acc; + var dst = runtime.caml_create_bytes(_aa_), pos = pos$1, param$0 = l; + for(;;){ + if(param$0){ + var hd$0 = param$0[1]; + if(param$0[2]){ + var tl$0 = param$0[2]; + caml_blit_string(hd$0, 0, dst, pos, caml_ml_string_length(hd$0)); + caml_blit_string + (sep, 0, dst, pos + caml_ml_string_length(hd$0) | 0, seplen); + var + pos$0 = (pos + caml_ml_string_length(hd$0) | 0) + seplen | 0, + pos = pos$0, + param$0 = tl$0; + continue; + } + caml_blit_string(hd$0, 0, dst, pos, caml_ml_string_length(hd$0)); + } + return caml_call1(bts, dst); + } + } + } + var cat = Stdlib[28]; + function iter(f, s){ + var ___ = caml_ml_string_length(s) - 1 | 0, _Z_ = 0; + if(___ >= 0){ + var i = _Z_; + for(;;){ + caml_call1(f, caml_string_unsafe_get(s, i)); + var _$_ = i + 1 | 0; + if(___ !== i){var i = _$_; continue;} + break; + } + } + return 0; + } + function iteri(f, s){ + var _X_ = caml_ml_string_length(s) - 1 | 0, _W_ = 0; + if(_X_ >= 0){ + var i = _W_; + for(;;){ + caml_call2(f, i, caml_string_unsafe_get(s, i)); + var _Y_ = i + 1 | 0; + if(_X_ !== i){var i = _Y_; continue;} + break; + } + } + return 0; + } + function map(f, s){ + var _V_ = caml_call1(bos, s); + return caml_call1(bts, caml_call2(Stdlib_Bytes[17], f, _V_)); + } + function mapi(f, s){ + var _U_ = caml_call1(bos, s); + return caml_call1(bts, caml_call2(Stdlib_Bytes[18], f, _U_)); + } + function fold_right(f, x, a){ + var _T_ = caml_call1(bos, x); + return caml_call3(Stdlib_Bytes[20], f, _T_, a); + } + function fold_left(f, a, x){ + var _S_ = caml_call1(bos, x); + return caml_call3(Stdlib_Bytes[19], f, a, _S_); + } + function exists(f, s){ + var _R_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[22], f, _R_); + } + function for_all(f, s){ + var _Q_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[21], f, _Q_); + } + function is_space(param){ + var _P_ = param - 9 | 0, switch$0 = 0; + if(4 < _P_ >>> 0){ + if(23 === _P_) switch$0 = 1; + } + else if(2 !== _P_) switch$0 = 1; + return switch$0 ? 1 : 0; + } + function trim(s){ + if(caml_string_equal(s, cst$0)) return s; + if + (! + is_space(caml_string_unsafe_get(s, 0)) + && + ! + is_space(caml_string_unsafe_get(s, caml_ml_string_length(s) - 1 | 0))) + return s; + var _O_ = caml_call1(bos, s); + return caml_call1(bts, caml_call1(Stdlib_Bytes[23], _O_)); + } + function escaped(s){ + var n = caml_ml_string_length(s), i = 0; + for(;;){ + if(n <= i) return s; + var _M_ = caml_string_unsafe_get(s, i) - 32 | 0, switch$0 = 0; + if(59 < _M_ >>> 0){ + if(33 < _M_ - 61 >>> 0) switch$0 = 1; + } + else if(2 === _M_) switch$0 = 1; + if(switch$0){ + var _N_ = caml_call1(bos, s); + return caml_call1(bts, caml_call1(Stdlib_Bytes[24], _N_)); + } + var i$0 = i + 1 | 0, i = i$0; + } + } + function index_rec(s, lim, i, c){ + var i$0 = i; + for(;;){ + if(lim <= i$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + if(caml_string_unsafe_get(s, i$0) === c) return i$0; + var i$1 = i$0 + 1 | 0, i$0 = i$1; + } + } + function index(s, c){return index_rec(s, caml_ml_string_length(s), 0, c);} + function index_rec_opt(s, lim, i, c){ + var i$0 = i; + for(;;){ + if(lim <= i$0) return 0; + if(caml_string_unsafe_get(s, i$0) === c) return [0, i$0]; + var i$1 = i$0 + 1 | 0, i$0 = i$1; + } + } + function index_opt(s, c){ + return index_rec_opt(s, caml_ml_string_length(s), 0, c); + } + function index_from(s, i, c){ + var l = caml_ml_string_length(s); + if(0 <= i && l >= i) return index_rec(s, l, i, c); + return caml_call1(Stdlib[1], cst_String_index_from_Bytes_in); + } + function index_from_opt(s, i, c){ + var l = caml_ml_string_length(s); + if(0 <= i && l >= i) return index_rec_opt(s, l, i, c); + return caml_call1(Stdlib[1], cst_String_index_from_opt_Byte); + } + function rindex_rec(s, i, c){ + var i$0 = i; + for(;;){ + if(0 > i$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + if(caml_string_unsafe_get(s, i$0) === c) return i$0; + var i$1 = i$0 - 1 | 0, i$0 = i$1; + } + } + function rindex(s, c){ + return rindex_rec(s, caml_ml_string_length(s) - 1 | 0, c); + } + function rindex_from(s, i, c){ + if(-1 <= i && caml_ml_string_length(s) > i) return rindex_rec(s, i, c); + return caml_call1(Stdlib[1], cst_String_rindex_from_Bytes_r); + } + function rindex_rec_opt(s, i, c){ + var i$0 = i; + for(;;){ + if(0 > i$0) return 0; + if(caml_string_unsafe_get(s, i$0) === c) return [0, i$0]; + var i$1 = i$0 - 1 | 0, i$0 = i$1; + } + } + function rindex_opt(s, c){ + return rindex_rec_opt(s, caml_ml_string_length(s) - 1 | 0, c); + } + function rindex_from_opt(s, i, c){ + if(-1 <= i && caml_ml_string_length(s) > i) + return rindex_rec_opt(s, i, c); + return caml_call1(Stdlib[1], cst_String_rindex_from_opt_Byt); + } + function contains_from(s, i, c){ + var l = caml_ml_string_length(s); + if(0 <= i && l >= i) + try{index_rec(s, l, i, c); var _K_ = 1; return _K_;} + catch(_L_){ + var _J_ = caml_wrap_exception(_L_); + if(_J_ === Stdlib[8]) return 0; + throw caml_maybe_attach_backtrace(_J_, 0); + } + return caml_call1(Stdlib[1], cst_String_contains_from_Bytes); + } + function contains(s, c){return contains_from(s, 0, c);} + function rcontains_from(s, i, c){ + if(0 <= i && caml_ml_string_length(s) > i) + try{rindex_rec(s, i, c); var _H_ = 1; return _H_;} + catch(_I_){ + var _G_ = caml_wrap_exception(_I_); + if(_G_ === Stdlib[8]) return 0; + throw caml_maybe_attach_backtrace(_G_, 0); + } + return caml_call1(Stdlib[1], cst_String_rcontains_from_Byte); + } + function uppercase_ascii(s){ + var _F_ = caml_call1(bos, s); + return caml_call1(bts, caml_call1(Stdlib_Bytes[40], _F_)); + } + function lowercase_ascii(s){ + var _E_ = caml_call1(bos, s); + return caml_call1(bts, caml_call1(Stdlib_Bytes[41], _E_)); + } + function capitalize_ascii(s){ + var _D_ = caml_call1(bos, s); + return caml_call1(bts, caml_call1(Stdlib_Bytes[42], _D_)); + } + function uncapitalize_ascii(s){ + var _C_ = caml_call1(bos, s); + return caml_call1(bts, caml_call1(Stdlib_Bytes[43], _C_)); + } + function starts_with(prefix, s){ + var + len_s = caml_ml_string_length(s), + len_pre = caml_ml_string_length(prefix), + _B_ = len_pre <= len_s ? 1 : 0; + if(! _B_) return _B_; + var i = 0; + for(;;){ + if(i === len_pre) return 1; + if(caml_string_unsafe_get(s, i) !== caml_string_unsafe_get(prefix, i)) + return 0; + var i$0 = i + 1 | 0, i = i$0; + } + } + function ends_with(suffix, s){ + var + len_s = caml_ml_string_length(s), + len_suf = caml_ml_string_length(suffix), + diff = len_s - len_suf | 0, + _A_ = 0 <= diff ? 1 : 0; + if(! _A_) return _A_; + var i = 0; + for(;;){ + if(i === len_suf) return 1; + if + (caml_string_unsafe_get(s, diff + i | 0) + !== caml_string_unsafe_get(suffix, i)) + return 0; + var i$0 = i + 1 | 0, i = i$0; + } + } + function split_on_char(sep, s){ + var + r = [0, 0], + j = [0, caml_ml_string_length(s)], + _w_ = caml_ml_string_length(s) - 1 | 0; + if(_w_ >= 0){ + var i = _w_; + for(;;){ + if(caml_string_unsafe_get(s, i) === sep){ + var _y_ = r[1]; + r[1] = [0, sub(s, i + 1 | 0, (j[1] - i | 0) - 1 | 0), _y_]; + j[1] = i; + } + var _z_ = i - 1 | 0; + if(0 !== i){var i = _z_; continue;} + break; + } + } + var _x_ = r[1]; + return [0, sub(s, 0, j[1]), _x_]; + } + function uppercase(s){ + var _v_ = caml_call1(bos, s); + return caml_call1(bts, caml_call1(Stdlib_Bytes[36], _v_)); + } + function lowercase(s){ + var _u_ = caml_call1(bos, s); + return caml_call1(bts, caml_call1(Stdlib_Bytes[37], _u_)); + } + function capitalize(s){ + var _t_ = caml_call1(bos, s); + return caml_call1(bts, caml_call1(Stdlib_Bytes[38], _t_)); + } + function uncapitalize(s){ + var _s_ = caml_call1(bos, s); + return caml_call1(bts, caml_call1(Stdlib_Bytes[39], _s_)); + } + var compare = runtime.caml_string_compare; + function to_seq(s){ + var _r_ = caml_call1(bos, s); + return caml_call1(Stdlib_Bytes[51], _r_); + } + function to_seqi(s){ + var _q_ = caml_call1(bos, s); + return caml_call1(Stdlib_Bytes[52], _q_); + } + function of_seq(g){ + return caml_call1(bts, caml_call1(Stdlib_Bytes[53], g)); + } + function get_utf_8_uchar(s, i){ + var _p_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[54], _p_, i); + } + function is_valid_utf_8(s){ + var _o_ = caml_call1(bos, s); + return caml_call1(Stdlib_Bytes[56], _o_); + } + function get_utf_16be_uchar(s, i){ + var _n_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[57], _n_, i); + } + function is_valid_utf_16be(s){ + var _m_ = caml_call1(bos, s); + return caml_call1(Stdlib_Bytes[59], _m_); + } + function get_utf_16le_uchar(s, i){ + var _l_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[60], _l_, i); + } + function is_valid_utf_16le(s){ + var _k_ = caml_call1(bos, s); + return caml_call1(Stdlib_Bytes[62], _k_); + } + function get_int8(s, i){ + var _j_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[64], _j_, i); + } + function get_uint16_le(s, i){ + var _i_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[67], _i_, i); + } + function get_uint16_be(s, i){ + var _h_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[66], _h_, i); + } + function get_int16_ne(s, i){ + var _g_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[68], _g_, i); + } + function get_int16_le(s, i){ + var _f_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[70], _f_, i); + } + function get_int16_be(s, i){ + var _e_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[69], _e_, i); + } + function get_int32_le(s, i){ + var _d_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[73], _d_, i); + } + function get_int32_be(s, i){ + var _c_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[72], _c_, i); + } + function get_int64_le(s, i){ + var _b_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[76], _b_, i); + } + function get_int64_be(s, i){ + var _a_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[75], _a_, i); + } + var + Stdlib_String = + [0, + make, + init, + empty, + of_bytes, + to_bytes, + concat, + cat, + caml_string_equal, + compare, + starts_with, + ends_with, + contains_from, + rcontains_from, + contains, + sub, + split_on_char, + map, + mapi, + fold_left, + fold_right, + for_all, + exists, + trim, + escaped, + uppercase_ascii, + lowercase_ascii, + capitalize_ascii, + uncapitalize_ascii, + iter, + iteri, + index_from, + index_from_opt, + rindex_from, + rindex_from_opt, + index, + index_opt, + rindex, + rindex_opt, + to_seq, + to_seqi, + of_seq, + get_utf_8_uchar, + is_valid_utf_8, + get_utf_16be_uchar, + is_valid_utf_16be, + get_utf_16le_uchar, + is_valid_utf_16le, + blit, + copy, + fill, + uppercase, + lowercase, + capitalize, + uncapitalize, + runtime.caml_string_get, + get_int8, + runtime.caml_string_get16, + get_uint16_be, + get_uint16_le, + get_int16_ne, + get_int16_be, + get_int16_le, + runtime.caml_string_get32, + get_int32_be, + get_int32_le, + runtime.caml_string_get64, + get_int64_be, + get_int64_le]; + runtime.caml_register_global(12, Stdlib_String, "Stdlib__String"); + return; + } + (globalThis)); + +//# 5558 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_array_sub = runtime.caml_array_sub, + caml_check_bound = runtime.caml_check_bound, + caml_make_vect = runtime.caml_make_vect, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib_Seq = global_data.Stdlib__Seq, + Assert_failure = global_data.Assert_failure, + Stdlib = global_data.Stdlib, + make_float = runtime.caml_make_float_vect, + Floatarray = [0], + _a_ = [0, "array.ml", 322, 4], + cst_Array_combine = "Array.combine", + cst_Array_exists2 = "Array.exists2", + cst_Array_for_all2 = "Array.for_all2", + cst_Array_map2_arrays_must_hav = + "Array.map2: arrays must have the same length", + cst_Array_iter2_arrays_must_ha = + "Array.iter2: arrays must have the same length", + cst_Array_blit = "Array.blit", + cst_Array_fill = "Array.fill", + cst_Array_sub = "Array.sub", + cst_Array_init = "Array.init", + cst_Stdlib_Array_Bottom = "Stdlib.Array.Bottom"; + function init(l, f){ + if(0 === l) return [0]; + if(0 > l) return caml_call1(Stdlib[1], cst_Array_init); + var res = caml_make_vect(l, caml_call1(f, 0)), _as_ = l - 1 | 0, _ar_ = 1; + if(_as_ >= 1){ + var i = _ar_; + for(;;){ + res[1 + i] = caml_call1(f, i); + var _at_ = i + 1 | 0; + if(_as_ !== i){var i = _at_; continue;} + break; + } + } + return res; + } + function make_matrix(sx, sy, init){ + var res = caml_make_vect(sx, [0]), _ap_ = sx - 1 | 0, _ao_ = 0; + if(_ap_ >= 0){ + var x = _ao_; + for(;;){ + res[1 + x] = caml_make_vect(sy, init); + var _aq_ = x + 1 | 0; + if(_ap_ !== x){var x = _aq_; continue;} + break; + } + } + return res; + } + function copy(a){ + var l = a.length - 1; + return 0 === l ? [0] : caml_array_sub(a, 0, l); + } + function append(a1, a2){ + var l1 = a1.length - 1; + return 0 === l1 + ? copy(a2) + : 0 + === a2.length - 1 + ? caml_array_sub(a1, 0, l1) + : runtime.caml_array_append(a1, a2); + } + function sub(a, ofs, len){ + if(0 <= ofs && 0 <= len && (a.length - 1 - len | 0) >= ofs) + return caml_array_sub(a, ofs, len); + return caml_call1(Stdlib[1], cst_Array_sub); + } + function fill(a, ofs, len, v){ + if(0 <= ofs && 0 <= len && (a.length - 1 - len | 0) >= ofs) + return runtime.caml_array_fill(a, ofs, len, v); + return caml_call1(Stdlib[1], cst_Array_fill); + } + function blit(a1, ofs1, a2, ofs2, len){ + if + (0 <= len + && + 0 <= ofs1 + && + (a1.length - 1 - len | 0) >= ofs1 + && 0 <= ofs2 && (a2.length - 1 - len | 0) >= ofs2) + return runtime.caml_array_blit(a1, ofs1, a2, ofs2, len); + return caml_call1(Stdlib[1], cst_Array_blit); + } + function iter(f, a){ + var _am_ = a.length - 1 - 1 | 0, _al_ = 0; + if(_am_ >= 0){ + var i = _al_; + for(;;){ + caml_call1(f, a[1 + i]); + var _an_ = i + 1 | 0; + if(_am_ !== i){var i = _an_; continue;} + break; + } + } + return 0; + } + function iter2(f, a, b){ + if(a.length - 1 !== b.length - 1) + return caml_call1(Stdlib[1], cst_Array_iter2_arrays_must_ha); + var _aj_ = a.length - 1 - 1 | 0, _ai_ = 0; + if(_aj_ >= 0){ + var i = _ai_; + for(;;){ + caml_call2(f, a[1 + i], b[1 + i]); + var _ak_ = i + 1 | 0; + if(_aj_ !== i){var i = _ak_; continue;} + break; + } + } + return 0; + } + function map(f, a){ + var l = a.length - 1; + if(0 === l) return [0]; + var + r = caml_make_vect(l, caml_call1(f, a[1])), + _ag_ = l - 1 | 0, + _af_ = 1; + if(_ag_ >= 1){ + var i = _af_; + for(;;){ + r[1 + i] = caml_call1(f, a[1 + i]); + var _ah_ = i + 1 | 0; + if(_ag_ !== i){var i = _ah_; continue;} + break; + } + } + return r; + } + function map2(f, a, b){ + var la = a.length - 1, lb = b.length - 1; + if(la !== lb) + return caml_call1(Stdlib[1], cst_Array_map2_arrays_must_hav); + if(0 === la) return [0]; + var + r = caml_make_vect(la, caml_call2(f, a[1], b[1])), + _ad_ = la - 1 | 0, + _ac_ = 1; + if(_ad_ >= 1){ + var i = _ac_; + for(;;){ + r[1 + i] = caml_call2(f, a[1 + i], b[1 + i]); + var _ae_ = i + 1 | 0; + if(_ad_ !== i){var i = _ae_; continue;} + break; + } + } + return r; + } + function iteri(f, a){ + var _aa_ = a.length - 1 - 1 | 0, _$_ = 0; + if(_aa_ >= 0){ + var i = _$_; + for(;;){ + caml_call2(f, i, a[1 + i]); + var _ab_ = i + 1 | 0; + if(_aa_ !== i){var i = _ab_; continue;} + break; + } + } + return 0; + } + function mapi(f, a){ + var l = a.length - 1; + if(0 === l) return [0]; + var + r = caml_make_vect(l, caml_call2(f, 0, a[1])), + _Z_ = l - 1 | 0, + _Y_ = 1; + if(_Z_ >= 1){ + var i = _Y_; + for(;;){ + r[1 + i] = caml_call2(f, i, a[1 + i]); + var ___ = i + 1 | 0; + if(_Z_ !== i){var i = ___; continue;} + break; + } + } + return r; + } + function to_list(a){ + var i$1 = a.length - 1 - 1 | 0, i = i$1, res = 0; + for(;;){ + if(0 > i) return res; + var res$0 = [0, a[1 + i], res], i$0 = i - 1 | 0, i = i$0, res = res$0; + } + } + function list_length(accu, param){ + var accu$0 = accu, param$0 = param; + for(;;){ + if(! param$0) return accu$0; + var + t = param$0[2], + accu$1 = accu$0 + 1 | 0, + accu$0 = accu$1, + param$0 = t; + } + } + function of_list(l){ + if(! l) return [0]; + var + tl = l[2], + hd = l[1], + a = caml_make_vect(list_length(0, l), hd), + i = 1, + param = tl; + for(;;){ + if(! param) return a; + var tl$0 = param[2], hd$0 = param[1]; + a[1 + i] = hd$0; + var i$0 = i + 1 | 0, i = i$0, param = tl$0; + } + } + function fold_left(f, x, a){ + var r = [0, x], _W_ = a.length - 1 - 1 | 0, _V_ = 0; + if(_W_ >= 0){ + var i = _V_; + for(;;){ + r[1] = caml_call2(f, r[1], a[1 + i]); + var _X_ = i + 1 | 0; + if(_W_ !== i){var i = _X_; continue;} + break; + } + } + return r[1]; + } + function fold_left_map(f, acc, input_array){ + var len = input_array.length - 1; + if(0 === len) return [0, acc, [0]]; + var + match = caml_call2(f, acc, input_array[1]), + elt = match[2], + acc$0 = match[1], + output_array = caml_make_vect(len, elt), + acc$1 = [0, acc$0], + _T_ = len - 1 | 0, + _S_ = 1; + if(_T_ >= 1){ + var i = _S_; + for(;;){ + var + match$0 = caml_call2(f, acc$1[1], input_array[1 + i]), + elt$0 = match$0[2], + acc$2 = match$0[1]; + acc$1[1] = acc$2; + output_array[1 + i] = elt$0; + var _U_ = i + 1 | 0; + if(_T_ !== i){var i = _U_; continue;} + break; + } + } + return [0, acc$1[1], output_array]; + } + function fold_right(f, a, x){ + var r = [0, x], _Q_ = a.length - 1 - 1 | 0; + if(_Q_ >= 0){ + var i = _Q_; + for(;;){ + r[1] = caml_call2(f, a[1 + i], r[1]); + var _R_ = i - 1 | 0; + if(0 !== i){var i = _R_; continue;} + break; + } + } + return r[1]; + } + function exists(p, a){ + var n = a.length - 1, i = 0; + for(;;){ + if(i === n) return 0; + if(caml_call1(p, a[1 + i])) return 1; + var i$0 = i + 1 | 0, i = i$0; + } + } + function for_all(p, a){ + var n = a.length - 1, i = 0; + for(;;){ + if(i === n) return 1; + if(! caml_call1(p, a[1 + i])) return 0; + var i$0 = i + 1 | 0, i = i$0; + } + } + function for_all2(p, l1, l2){ + var n1 = l1.length - 1, n2 = l2.length - 1; + if(n1 !== n2) return caml_call1(Stdlib[1], cst_Array_for_all2); + var i = 0; + for(;;){ + if(i === n1) return 1; + if(! caml_call2(p, l1[1 + i], l2[1 + i])) return 0; + var i$0 = i + 1 | 0, i = i$0; + } + } + function exists2(p, l1, l2){ + var n1 = l1.length - 1, n2 = l2.length - 1; + if(n1 !== n2) return caml_call1(Stdlib[1], cst_Array_exists2); + var i = 0; + for(;;){ + if(i === n1) return 0; + if(caml_call2(p, l1[1 + i], l2[1 + i])) return 1; + var i$0 = i + 1 | 0, i = i$0; + } + } + function mem(x, a){ + var n = a.length - 1, i = 0; + for(;;){ + if(i === n) return 0; + if(0 === runtime.caml_compare(a[1 + i], x)) return 1; + var i$0 = i + 1 | 0, i = i$0; + } + } + function memq(x, a){ + var n = a.length - 1, i = 0; + for(;;){ + if(i === n) return 0; + if(x === a[1 + i]) return 1; + var i$0 = i + 1 | 0, i = i$0; + } + } + function find_opt(p, a){ + var n = a.length - 1, i = 0; + for(;;){ + if(i === n) return 0; + var x = a[1 + i]; + if(caml_call1(p, x)) return [0, x]; + var i$0 = i + 1 | 0, i = i$0; + } + } + function find_map(f, a){ + var n = a.length - 1, i = 0; + for(;;){ + if(i === n) return 0; + var r = caml_call1(f, a[1 + i]); + if(r) return r; + var i$0 = i + 1 | 0, i = i$0; + } + } + function split(x){ + if(runtime.caml_equal(x, [0])) return [0, [0], [0]]; + var + match = x[1], + b0 = match[2], + a0 = match[1], + n = x.length - 1, + a = caml_make_vect(n, a0), + b = caml_make_vect(n, b0), + _O_ = n - 1 | 0, + _N_ = 1; + if(_O_ >= 1){ + var i = _N_; + for(;;){ + var match$0 = x[1 + i], bi = match$0[2], ai = match$0[1]; + a[1 + i] = ai; + b[1 + i] = bi; + var _P_ = i + 1 | 0; + if(_O_ !== i){var i = _P_; continue;} + break; + } + } + return [0, a, b]; + } + function combine(a, b){ + var na = a.length - 1, nb = b.length - 1; + if(na !== nb) caml_call1(Stdlib[1], cst_Array_combine); + if(0 === na) return [0]; + var x = caml_make_vect(na, [0, a[1], b[1]]), _L_ = na - 1 | 0, _K_ = 1; + if(_L_ >= 1){ + var i = _K_; + for(;;){ + x[1 + i] = [0, a[1 + i], b[1 + i]]; + var _M_ = i + 1 | 0; + if(_L_ !== i){var i = _M_; continue;} + break; + } + } + return x; + } + var Bottom = [248, cst_Stdlib_Array_Bottom, runtime.caml_fresh_oo_id(0)]; + function sort(cmp, a){ + function maxson(l, i){ + var i31 = ((i + i | 0) + i | 0) + 1 | 0, x = [0, i31]; + if((i31 + 2 | 0) < l){ + var _D_ = i31 + 1 | 0, _E_ = caml_check_bound(a, _D_)[1 + _D_]; + if(caml_call2(cmp, caml_check_bound(a, i31)[1 + i31], _E_) < 0) + x[1] = i31 + 1 | 0; + var + _F_ = i31 + 2 | 0, + _G_ = caml_check_bound(a, _F_)[1 + _F_], + _H_ = x[1]; + if(caml_call2(cmp, caml_check_bound(a, _H_)[1 + _H_], _G_) < 0) + x[1] = i31 + 2 | 0; + return x[1]; + } + if((i31 + 1 | 0) < l){ + var _I_ = i31 + 1 | 0, _J_ = caml_check_bound(a, _I_)[1 + _I_]; + if(0 > caml_call2(cmp, caml_check_bound(a, i31)[1 + i31], _J_)) + return i31 + 1 | 0; + } + if(i31 < l) return i31; + throw caml_maybe_attach_backtrace([0, Bottom, i], 1); + } + var l = a.length - 1, _x_ = ((l + 1 | 0) / 3 | 0) - 1 | 0; + if(_x_ >= 0){ + var i$6 = _x_; + for(;;){ + var e$1 = caml_check_bound(a, i$6)[1 + i$6]; + try{ + var i = i$6; + for(;;){ + var j = maxson(l, i); + if(0 < caml_call2(cmp, caml_check_bound(a, j)[1 + j], e$1)){ + var _u_ = caml_check_bound(a, j)[1 + j]; + caml_check_bound(a, i)[1 + i] = _u_; + var i = j; + continue; + } + caml_check_bound(a, i)[1 + i] = e$1; + break; + } + } + catch(exn$0){ + var exn = caml_wrap_exception(exn$0); + if(exn[1] !== Bottom) throw caml_maybe_attach_backtrace(exn, 0); + var i$0 = exn[2]; + caml_check_bound(a, i$0)[1 + i$0] = e$1; + } + var _C_ = i$6 - 1 | 0; + if(0 !== i$6){var i$6 = _C_; continue;} + break; + } + } + var _y_ = l - 1 | 0; + if(_y_ >= 2){ + var i$4 = _y_; + a: + for(;;){ + var e$0 = caml_check_bound(a, i$4)[1 + i$4]; + a[1 + i$4] = caml_check_bound(a, 0)[1]; + var i$5 = 0; + try{ + var i$1 = i$5; + for(;;){ + var j$0 = maxson(i$4, i$1), _v_ = caml_check_bound(a, j$0)[1 + j$0]; + caml_check_bound(a, i$1)[1 + i$1] = _v_; + var i$1 = j$0; + } + } + catch(exn){ + var exn$0 = caml_wrap_exception(exn); + if(exn$0[1] !== Bottom) throw caml_maybe_attach_backtrace(exn$0, 0); + var i$2 = exn$0[2], i$3 = i$2; + for(;;){ + var father = (i$3 - 1 | 0) / 3 | 0; + if(i$3 === father) + throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); + if(0 <= caml_call2(cmp, caml_check_bound(a, father)[1 + father], e$0)) + caml_check_bound(a, i$3)[1 + i$3] = e$0; + else{ + var _w_ = caml_check_bound(a, father)[1 + father]; + caml_check_bound(a, i$3)[1 + i$3] = _w_; + if(0 < father){var i$3 = father; continue;} + caml_check_bound(a, 0)[1] = e$0; + } + var _B_ = i$4 - 1 | 0; + if(2 !== i$4){var i$4 = _B_; continue a;} + break; + } + } + break; + } + } + var _z_ = 1 < l ? 1 : 0; + if(_z_){ + var e = caml_check_bound(a, 1)[2]; + a[2] = caml_check_bound(a, 0)[1]; + a[1] = e; + var _A_ = 0; + } + else + var _A_ = _z_; + return _A_; + } + function stable_sort(cmp, a){ + function merge(src1ofs, src1len, src2, src2ofs, src2len, dst, dstofs){ + var + src1r = src1ofs + src1len | 0, + src2r = src2ofs + src2len | 0, + s2$1 = caml_check_bound(src2, src2ofs)[1 + src2ofs], + s1$1 = caml_check_bound(a, src1ofs)[1 + src1ofs], + i1 = src1ofs, + s1 = s1$1, + i2 = src2ofs, + s2 = s2$1, + d = dstofs; + for(;;){ + if(0 < caml_call2(cmp, s1, s2)){ + caml_check_bound(dst, d)[1 + d] = s2; + var i2$0 = i2 + 1 | 0; + if(i2$0 >= src2r) return blit(a, i1, dst, d + 1 | 0, src1r - i1 | 0); + var + d$0 = d + 1 | 0, + s2$0 = caml_check_bound(src2, i2$0)[1 + i2$0], + i2 = i2$0, + s2 = s2$0, + d = d$0; + continue; + } + caml_check_bound(dst, d)[1 + d] = s1; + var i1$0 = i1 + 1 | 0; + if(i1$0 >= src1r) return blit(src2, i2, dst, d + 1 | 0, src2r - i2 | 0); + var + d$1 = d + 1 | 0, + s1$0 = caml_check_bound(a, i1$0)[1 + i1$0], + i1 = i1$0, + s1 = s1$0, + d = d$1; + } + } + function isortto(srcofs, dst, dstofs, len){ + var _m_ = len - 1 | 0, _l_ = 0; + if(_m_ >= 0){ + var i = _l_; + a: + for(;;){ + var + _n_ = srcofs + i | 0, + e = caml_check_bound(a, _n_)[1 + _n_], + j = [0, (dstofs + i | 0) - 1 | 0]; + for(;;){ + if(dstofs <= j[1]){ + var _o_ = j[1]; + if(0 < caml_call2(cmp, caml_check_bound(dst, _o_)[1 + _o_], e)){ + var + _p_ = j[1], + _q_ = caml_check_bound(dst, _p_)[1 + _p_], + _r_ = j[1] + 1 | 0; + caml_check_bound(dst, _r_)[1 + _r_] = _q_; + j[1] += -1; + continue; + } + } + var _s_ = j[1] + 1 | 0; + caml_check_bound(dst, _s_)[1 + _s_] = e; + var _t_ = i + 1 | 0; + if(_m_ !== i){var i = _t_; continue a;} + break; + } + break; + } + } + return 0; + } + function sortto(srcofs, dst, dstofs, len){ + if(len <= 5) return isortto(srcofs, dst, dstofs, len); + var l1 = len / 2 | 0, l2 = len - l1 | 0; + sortto(srcofs + l1 | 0, dst, dstofs + l1 | 0, l2); + sortto(srcofs, a, srcofs + l2 | 0, l1); + return merge(srcofs + l2 | 0, l1, dst, dstofs + l1 | 0, l2, dst, dstofs); + } + var l = a.length - 1; + if(l <= 5) return isortto(0, a, 0, l); + var + l1 = l / 2 | 0, + l2 = l - l1 | 0, + t = caml_make_vect(l2, caml_check_bound(a, 0)[1]); + sortto(l1, t, 0, l2); + sortto(0, a, l2, l1); + return merge(l2, l1, t, 0, l2, a, 0); + } + function to_seq(a){ + function aux(i, param){ + if(i >= a.length - 1) return 0; + var x = a[1 + i], _j_ = i + 1 | 0; + return [0, x, function(_k_){return aux(_j_, _k_);}]; + } + var _h_ = 0; + return function(_i_){return aux(_h_, _i_);}; + } + function to_seqi(a){ + function aux(i, param){ + if(i >= a.length - 1) return 0; + var x = a[1 + i], _f_ = i + 1 | 0; + return [0, [0, i, x], function(_g_){return aux(_f_, _g_);}]; + } + var _d_ = 0; + return function(_e_){return aux(_d_, _e_);}; + } + function of_seq(i$2){ + var _b_ = 0; + function _c_(acc, x){return [0, x, acc];} + var l = caml_call3(Stdlib_Seq[5], _c_, _b_, i$2); + if(! l) return [0]; + var + tl = l[2], + hd = l[1], + len = list_length(0, l), + a = caml_make_vect(len, hd), + i$1 = len - 2 | 0, + i = i$1, + param = tl; + for(;;){ + if(! param) return a; + var tl$0 = param[2], hd$0 = param[1]; + a[1 + i] = hd$0; + var i$0 = i - 1 | 0, i = i$0, param = tl$0; + } + } + var + Stdlib_Array = + [0, + make_float, + init, + make_matrix, + make_matrix, + append, + runtime.caml_array_concat, + sub, + copy, + fill, + blit, + to_list, + of_list, + iter, + iteri, + map, + mapi, + fold_left, + fold_left_map, + fold_right, + iter2, + map2, + for_all, + exists, + for_all2, + exists2, + mem, + memq, + find_opt, + find_map, + split, + combine, + sort, + stable_sort, + stable_sort, + to_seq, + to_seqi, + of_seq, + Floatarray]; + runtime.caml_register_global(14, Stdlib_Array, "Stdlib__Array"); + return; + } + (globalThis)); + +//# 6998 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_greaterequal = runtime.caml_greaterequal, + caml_int_compare = runtime.caml_int_compare, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_mul = runtime.caml_mul, + caml_wrap_exception = runtime.caml_wrap_exception, + global_data = runtime.caml_get_global_data(), + Stdlib = global_data.Stdlib, + Stdlib_Sys = global_data.Stdlib__Sys, + Assert_failure = global_data.Assert_failure, + _b_ = [0, "int32.ml", 69, 6], + zero = 0, + one = 1, + minus_one = -1; + function succ(n){return n + 1 | 0;} + function pred(n){return n - 1 | 0;} + function abs(n){return caml_greaterequal(n, 0) ? n : - n | 0;} + var min_int = -2147483648, max_int = 2147483647; + function lognot(n){return n ^ -1;} + var _a_ = Stdlib_Sys[9]; + if(32 === _a_) + var + max_int$0 = Stdlib[19], + unsigned_to_int = + function(n){ + if(0 >= caml_int_compare(0, n) && 0 >= caml_int_compare(n, max_int$0)) + return [0, n]; + return 0; + }; + else{ + if(64 !== _a_) + throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); + var unsigned_to_int = function(n){return [0, n & -1];}; + } + function to_string(n){return runtime.caml_format_int("%d", n);} + function of_string_opt(s){ + try{var _d_ = [0, runtime.caml_int_of_string(s)]; return _d_;} + catch(_e_){ + var _c_ = caml_wrap_exception(_e_); + if(_c_[1] === Stdlib[7]) return 0; + throw caml_maybe_attach_backtrace(_c_, 0); + } + } + var compare = caml_int_compare; + function equal(x, y){return 0 === caml_int_compare(x, y) ? 1 : 0;} + function unsigned_compare(n, m){ + return caml_int_compare(n + 2147483648 | 0, m + 2147483648 | 0); + } + function min(x, y){return runtime.caml_lessequal(x, y) ? x : y;} + function max(x, y){return caml_greaterequal(x, y) ? x : y;} + function unsigned_div(n, d){ + if(runtime.caml_lessthan(d, 0)) + return 0 <= unsigned_compare(n, d) ? one : zero; + var q = runtime.caml_div(n >>> 1 | 0, d) << 1, r = n - caml_mul(q, d) | 0; + return 0 <= unsigned_compare(r, d) ? q + 1 | 0 : q; + } + function unsigned_rem(n, d){ + return n - caml_mul(unsigned_div(n, d), d) | 0; + } + var + Stdlib_Int32 = + [0, + zero, + one, + minus_one, + unsigned_div, + unsigned_rem, + succ, + pred, + abs, + max_int, + min_int, + lognot, + unsigned_to_int, + of_string_opt, + to_string, + compare, + unsigned_compare, + equal, + min, + max]; + runtime.caml_register_global(14, Stdlib_Int32, "Stdlib__Int32"); + return; + } + (globalThis)); + +//# 7090 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_greaterequal = runtime.caml_greaterequal, + caml_int64_compare = runtime.caml_int64_compare, + caml_int64_mul = runtime.caml_int64_mul, + caml_int64_sub = runtime.caml_int64_sub, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_wrap_exception = runtime.caml_wrap_exception, + global_data = runtime.caml_get_global_data(), + zero = runtime.caml_int64_create_lo_mi_hi(0, 0, 0), + one = runtime.caml_int64_create_lo_mi_hi(1, 0, 0), + minus_one = runtime.caml_int64_create_lo_mi_hi(16777215, 16777215, 65535), + min_int = runtime.caml_int64_create_lo_mi_hi(0, 0, 32768), + max_int = runtime.caml_int64_create_lo_mi_hi(16777215, 16777215, 32767), + Stdlib = global_data.Stdlib, + _d_ = runtime.caml_int64_create_lo_mi_hi(16777215, 16777215, 65535), + _c_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 0), + _b_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 0), + _a_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 0); + function succ(n){return runtime.caml_int64_add(n, _a_);} + function pred(n){return caml_int64_sub(n, _b_);} + function abs(n){ + return caml_greaterequal(n, _c_) ? n : runtime.caml_int64_neg(n); + } + function lognot(n){return runtime.caml_int64_xor(n, _d_);} + var max_int$0 = runtime.caml_int64_of_int32(Stdlib[19]); + function unsigned_to_int(n){ + if + (0 >= caml_int64_compare(zero, n) + && 0 >= caml_int64_compare(n, max_int$0)) + return [0, runtime.caml_int64_to_int32(n)]; + return 0; + } + function to_string(n){return runtime.caml_int64_format("%d", n);} + function of_string_opt(s){ + try{var _f_ = [0, runtime.caml_int64_of_string(s)]; return _f_;} + catch(_g_){ + var _e_ = caml_wrap_exception(_g_); + if(_e_[1] === Stdlib[7]) return 0; + throw caml_maybe_attach_backtrace(_e_, 0); + } + } + function compare(x, y){return caml_int64_compare(x, y);} + function equal(x, y){return 0 === caml_int64_compare(x, y) ? 1 : 0;} + function unsigned_compare(n, m){ + return caml_int64_compare + (caml_int64_sub(n, min_int), caml_int64_sub(m, min_int)); + } + function min(x, y){return runtime.caml_lessequal(x, y) ? x : y;} + function max(x, y){return caml_greaterequal(x, y) ? x : y;} + function unsigned_div(n, d){ + if(runtime.caml_lessthan(d, zero)) + return 0 <= unsigned_compare(n, d) ? one : zero; + var + q = + runtime.caml_int64_shift_left + (runtime.caml_int64_div + (runtime.caml_int64_shift_right_unsigned(n, 1), d), + 1), + r = caml_int64_sub(n, caml_int64_mul(q, d)); + return 0 <= unsigned_compare(r, d) ? succ(q) : q; + } + function unsigned_rem(n, d){ + return caml_int64_sub(n, caml_int64_mul(unsigned_div(n, d), d)); + } + var + Stdlib_Int64 = + [0, + zero, + one, + minus_one, + unsigned_div, + unsigned_rem, + succ, + pred, + abs, + max_int, + min_int, + lognot, + unsigned_to_int, + of_string_opt, + to_string, + compare, + unsigned_compare, + equal, + min, + max]; + runtime.caml_register_global(11, Stdlib_Int64, "Stdlib__Int64"); + return; + } + (globalThis)); + +//# 7187 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_greaterequal = runtime.caml_greaterequal, + caml_int_compare = runtime.caml_int_compare, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_mul = runtime.caml_mul, + caml_wrap_exception = runtime.caml_wrap_exception, + global_data = runtime.caml_get_global_data(), + Stdlib = global_data.Stdlib, + Stdlib_Sys = global_data.Stdlib__Sys, + zero = 0, + one = 1, + minus_one = -1; + function succ(n){return n + 1 | 0;} + function pred(n){return n - 1 | 0;} + function abs(n){return caml_greaterequal(n, 0) ? n : - n | 0;} + var + size = Stdlib_Sys[9], + min_int = 1 << (size - 1 | 0), + max_int = min_int - 1 | 0; + function lognot(n){return n ^ -1;} + var max_int$0 = Stdlib[19]; + function unsigned_to_int(n){ + if(0 >= caml_int_compare(0, n) && 0 >= caml_int_compare(n, max_int$0)) + return [0, n]; + return 0; + } + function to_string(n){return runtime.caml_format_int("%d", n);} + function of_string_opt(s){ + try{var _b_ = [0, runtime.caml_int_of_string(s)]; return _b_;} + catch(_c_){ + var _a_ = caml_wrap_exception(_c_); + if(_a_[1] === Stdlib[7]) return 0; + throw caml_maybe_attach_backtrace(_a_, 0); + } + } + var compare = caml_int_compare; + function equal(x, y){return 0 === caml_int_compare(x, y) ? 1 : 0;} + function unsigned_compare(n, m){ + return caml_int_compare(n - min_int | 0, m - min_int | 0); + } + function min(x, y){return runtime.caml_lessequal(x, y) ? x : y;} + function max(x, y){return caml_greaterequal(x, y) ? x : y;} + function unsigned_div(n, d){ + if(runtime.caml_lessthan(d, 0)) + return 0 <= unsigned_compare(n, d) ? one : zero; + var q = runtime.caml_div(n >>> 1 | 0, d) << 1, r = n - caml_mul(q, d) | 0; + return 0 <= unsigned_compare(r, d) ? q + 1 | 0 : q; + } + function unsigned_rem(n, d){ + return n - caml_mul(unsigned_div(n, d), d) | 0; + } + var + Stdlib_Nativeint = + [0, + zero, + one, + minus_one, + unsigned_div, + unsigned_rem, + succ, + pred, + abs, + size, + max_int, + min_int, + lognot, + unsigned_to_int, + of_string_opt, + to_string, + compare, + unsigned_compare, + equal, + min, + max]; + runtime.caml_register_global(12, Stdlib_Nativeint, "Stdlib__Nativeint"); + return; + } + (globalThis)); + +//# 7272 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst = "", + caml_bytes_get = runtime.caml_bytes_get, + caml_check_bound = runtime.caml_check_bound, + caml_create_bytes = runtime.caml_create_bytes, + caml_ml_bytes_length = runtime.caml_ml_bytes_length; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + function caml_call4(f, a0, a1, a2, a3){ + return (f.l >= 0 ? f.l : f.l = f.length) == 4 + ? f(a0, a1, a2, a3) + : runtime.caml_call_gen(f, [a0, a1, a2, a3]); + } + function caml_call5(f, a0, a1, a2, a3, a4){ + return (f.l >= 0 ? f.l : f.l = f.length) == 5 + ? f(a0, a1, a2, a3, a4) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); + } + var + global_data = runtime.caml_get_global_data(), + dummy_pos = [0, cst, 0, 0, -1], + zero_pos = [0, cst, 1, 0, 0], + Stdlib_Bytes = global_data.Stdlib__Bytes, + Stdlib = global_data.Stdlib, + Stdlib_Sys = global_data.Stdlib__Sys, + Stdlib_Int = global_data.Stdlib__Int, + cst_Lexing_lex_refill_cannot_g = "Lexing.lex_refill: cannot grow buffer"; + function engine(tbl, state, buf){ + var + result = runtime.caml_lex_engine(tbl, state, buf), + _F_ = 0 <= result ? 1 : 0, + _G_ = _F_ ? buf[12] !== dummy_pos ? 1 : 0 : _F_; + if(_G_){ + buf[11] = buf[12]; + var _H_ = buf[12]; + buf[12] = [0, _H_[1], _H_[2], _H_[3], buf[4] + buf[6] | 0]; + } + return result; + } + function new_engine(tbl, state, buf){ + var + result = runtime.caml_new_lex_engine(tbl, state, buf), + _C_ = 0 <= result ? 1 : 0, + _D_ = _C_ ? buf[12] !== dummy_pos ? 1 : 0 : _C_; + if(_D_){ + buf[11] = buf[12]; + var _E_ = buf[12]; + buf[12] = [0, _E_[1], _E_[2], _E_[3], buf[4] + buf[6] | 0]; + } + return result; + } + function from_function(opt, read_fun){ + if(opt) + var sth = opt[1], with_positions = sth; + else + var with_positions = 1; + var + _o_ = with_positions ? zero_pos : dummy_pos, + _p_ = with_positions ? zero_pos : dummy_pos, + aux_buffer = caml_create_bytes(512), + _q_ = [0], + _r_ = 0, + _s_ = 0, + _t_ = 0, + _u_ = 0, + _v_ = 0, + _w_ = 0, + _x_ = 0, + _y_ = caml_create_bytes(1024); + return [0, + function(lexbuf){ + var + read = + caml_call2 + (read_fun, aux_buffer, caml_ml_bytes_length(aux_buffer)), + n = 0 < read ? read : (lexbuf[9] = 1, 0); + if(caml_ml_bytes_length(lexbuf[2]) < (lexbuf[3] + n | 0)){ + if + (((lexbuf[3] - lexbuf[5] | 0) + n | 0) + <= caml_ml_bytes_length(lexbuf[2])) + caml_call5 + (Stdlib_Bytes[11], + lexbuf[2], + lexbuf[5], + lexbuf[2], + 0, + lexbuf[3] - lexbuf[5] | 0); + else{ + var + newlen = + caml_call2 + (Stdlib_Int[10], + 2 * caml_ml_bytes_length(lexbuf[2]) | 0, + Stdlib_Sys[12]); + if(newlen < ((lexbuf[3] - lexbuf[5] | 0) + n | 0)) + caml_call1(Stdlib[2], cst_Lexing_lex_refill_cannot_g); + var newbuf = caml_create_bytes(newlen); + caml_call5 + (Stdlib_Bytes[11], + lexbuf[2], + lexbuf[5], + newbuf, + 0, + lexbuf[3] - lexbuf[5] | 0); + lexbuf[2] = newbuf; + } + var s = lexbuf[5]; + lexbuf[4] = lexbuf[4] + s | 0; + lexbuf[6] = lexbuf[6] - s | 0; + lexbuf[5] = 0; + lexbuf[7] = lexbuf[7] - s | 0; + lexbuf[3] = lexbuf[3] - s | 0; + var t = lexbuf[10], _A_ = t.length - 1 - 1 | 0, _z_ = 0; + if(_A_ >= 0){ + var i = _z_; + for(;;){ + var v = caml_check_bound(t, i)[1 + i]; + if(0 <= v) caml_check_bound(t, i)[1 + i] = v - s | 0; + var _B_ = i + 1 | 0; + if(_A_ !== i){var i = _B_; continue;} + break; + } + } + } + caml_call5 + (Stdlib_Bytes[11], aux_buffer, 0, lexbuf[2], lexbuf[3], n); + lexbuf[3] = lexbuf[3] + n | 0; + return 0; + }, + _y_, + _x_, + _w_, + _v_, + _u_, + _t_, + _s_, + _r_, + _q_, + _p_, + _o_]; + } + function from_channel(with_positions, ic){ + return from_function + (with_positions, + function(buf, n){return caml_call4(Stdlib[84], ic, buf, 0, n);}); + } + function from_string(opt, s){ + if(opt) + var sth = opt[1], with_positions = sth; + else + var with_positions = 1; + var + _d_ = with_positions ? zero_pos : dummy_pos, + _e_ = with_positions ? zero_pos : dummy_pos, + _f_ = [0], + _g_ = 1, + _h_ = 0, + _i_ = 0, + _j_ = 0, + _k_ = 0, + _l_ = 0, + _m_ = runtime.caml_ml_string_length(s), + _n_ = caml_call1(Stdlib_Bytes[5], s); + return [0, + function(lexbuf){lexbuf[9] = 1; return 0;}, + _n_, + _m_, + _l_, + _k_, + _j_, + _i_, + _h_, + _g_, + _f_, + _e_, + _d_]; + } + function set_position(lexbuf, position){ + lexbuf[12] = [0, lexbuf[12][1], position[2], position[3], position[4]]; + lexbuf[4] = position[4]; + return 0; + } + function set_filename(lexbuf, fname){ + var _c_ = lexbuf[12]; + lexbuf[12] = [0, fname, _c_[2], _c_[3], _c_[4]]; + return 0; + } + function with_positions(lexbuf){return lexbuf[12] !== dummy_pos ? 1 : 0;} + function lexeme(lexbuf){ + var len = lexbuf[6] - lexbuf[5] | 0; + return caml_call3(Stdlib_Bytes[8], lexbuf[2], lexbuf[5], len); + } + function sub_lexeme(lexbuf, i1, i2){ + var len = i2 - i1 | 0; + return caml_call3(Stdlib_Bytes[8], lexbuf[2], i1, len); + } + function sub_lexeme_opt(lexbuf, i1, i2){ + if(0 > i1) return 0; + var len = i2 - i1 | 0; + return [0, caml_call3(Stdlib_Bytes[8], lexbuf[2], i1, len)]; + } + function sub_lexeme_char(lexbuf, i){return caml_bytes_get(lexbuf[2], i);} + function sub_lexeme_char_opt(lexbuf, i){ + return 0 <= i ? [0, caml_bytes_get(lexbuf[2], i)] : 0; + } + function lexeme_char(lexbuf, i){ + return caml_bytes_get(lexbuf[2], lexbuf[5] + i | 0); + } + function lexeme_start(lexbuf){return lexbuf[11][4];} + function lexeme_end(lexbuf){return lexbuf[12][4];} + function lexeme_start_p(lexbuf){return lexbuf[11];} + function lexeme_end_p(lexbuf){return lexbuf[12];} + function new_line(lexbuf){ + var + lcp = lexbuf[12], + _a_ = lcp !== dummy_pos ? 1 : 0, + _b_ = + _a_ + ? (lexbuf[12] = [0, lcp[1], lcp[2] + 1 | 0, lcp[4], lcp[4]], 0) + : _a_; + return _b_; + } + function flush_input(lb){ + lb[6] = 0; + lb[4] = 0; + var lcp = lb[12]; + if(lcp !== dummy_pos) + lb[12] = [0, lcp[1], zero_pos[2], zero_pos[3], zero_pos[4]]; + lb[3] = 0; + return 0; + } + var + Stdlib_Lexing = + [0, + dummy_pos, + from_channel, + from_string, + from_function, + set_position, + set_filename, + with_positions, + lexeme, + lexeme_char, + lexeme_start, + lexeme_end, + lexeme_start_p, + lexeme_end_p, + new_line, + flush_input, + sub_lexeme, + sub_lexeme_opt, + sub_lexeme_char, + sub_lexeme_char_opt, + engine, + new_engine]; + runtime.caml_register_global(7, Stdlib_Lexing, "Stdlib__Lexing"); + return; + } + (globalThis)); + +//# 7763 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_Set_bal$3 = "Set.bal", + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib = global_data.Stdlib, + Stdlib_Seq = global_data.Stdlib__Seq, + Stdlib_List = global_data.Stdlib__List, + Assert_failure = global_data.Assert_failure, + cst_Set_remove_min_elt = "Set.remove_min_elt", + _a_ = [0, 0, 0, 0], + _b_ = [0, 0, 0], + _c_ = [0, "set.ml", 570, 18], + cst_Set_bal = cst_Set_bal$3, + cst_Set_bal$0 = cst_Set_bal$3, + cst_Set_bal$1 = cst_Set_bal$3, + cst_Set_bal$2 = cst_Set_bal$3, + Stdlib_Set = + [0, + function(Ord){ + function height(param){ + if(! param) return 0; + var h = param[4]; + return h; + } + function create(l, v, r){ + if(l) var h = l[4], hl = h; else var hl = 0; + if(r) var h$0 = r[4], hr = h$0; else var hr = 0; + var _Z_ = hr <= hl ? hl + 1 | 0 : hr + 1 | 0; + return [0, l, v, r, _Z_]; + } + function bal(l, v, r){ + if(l) var h = l[4], hl = h; else var hl = 0; + if(r) var h$0 = r[4], hr = h$0; else var hr = 0; + if((hr + 2 | 0) < hl){ + if(! l) return caml_call1(Stdlib[1], cst_Set_bal$0); + var lr = l[3], lv = l[2], ll = l[1], _U_ = height(lr); + if(_U_ <= height(ll)) return create(ll, lv, create(lr, v, r)); + if(! lr) return caml_call1(Stdlib[1], cst_Set_bal); + var lrr = lr[3], lrv = lr[2], lrl = lr[1], _V_ = create(lrr, v, r); + return create(create(ll, lv, lrl), lrv, _V_); + } + if((hl + 2 | 0) >= hr){ + var _Y_ = hr <= hl ? hl + 1 | 0 : hr + 1 | 0; + return [0, l, v, r, _Y_]; + } + if(! r) return caml_call1(Stdlib[1], cst_Set_bal$2); + var rr = r[3], rv = r[2], rl = r[1], _W_ = height(rl); + if(_W_ <= height(rr)) return create(create(l, v, rl), rv, rr); + if(! rl) return caml_call1(Stdlib[1], cst_Set_bal$1); + var rlr = rl[3], rlv = rl[2], rll = rl[1], _X_ = create(rlr, rv, rr); + return create(create(l, v, rll), rlv, _X_); + } + function add(x, t){ + if(! t) return [0, 0, x, 0, 1]; + var r = t[3], v = t[2], l = t[1], c = caml_call2(Ord[1], x, v); + if(0 === c) return t; + if(0 <= c){var rr = add(x, r); return r === rr ? t : bal(l, v, rr);} + var ll = add(x, l); + return l === ll ? t : bal(ll, v, r); + } + function singleton(x){return [0, 0, x, 0, 1];} + function add_min_element(x, param){ + if(! param) return singleton(x); + var r = param[3], v = param[2], l = param[1]; + return bal(add_min_element(x, l), v, r); + } + function add_max_element(x, param){ + if(! param) return singleton(x); + var r = param[3], v = param[2], l = param[1]; + return bal(l, v, add_max_element(x, r)); + } + function join(l, v, r){ + if(! l) return add_min_element(v, r); + if(! r) return add_max_element(v, l); + var + rh = r[4], + rr = r[3], + rv = r[2], + rl = r[1], + lh = l[4], + lr = l[3], + lv = l[2], + ll = l[1]; + return (rh + 2 | 0) < lh + ? bal(ll, lv, join(lr, v, r)) + : (lh + + 2 + | 0) + < rh + ? bal(join(l, v, rl), rv, rr) + : create(l, v, r); + } + function min_elt(param){ + var param$0 = param; + for(;;){ + if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var l = param$0[1]; + if(l){var param$0 = l; continue;} + var v = param$0[2]; + return v; + } + } + function min_elt_opt(param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var l = param$0[1]; + if(l){var param$0 = l; continue;} + var v = param$0[2]; + return [0, v]; + } + } + function max_elt(param){ + var param$0 = param; + for(;;){ + if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + if(param$0[3]){var r = param$0[3], param$0 = r; continue;} + var v = param$0[2]; + return v; + } + } + function max_elt_opt(param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + if(param$0[3]){var r = param$0[3], param$0 = r; continue;} + var v = param$0[2]; + return [0, v]; + } + } + function remove_min_elt(param){ + if(! param) return caml_call1(Stdlib[1], cst_Set_remove_min_elt); + var l = param[1]; + if(l){ + var r = param[3], v = param[2]; + return bal(remove_min_elt(l), v, r); + } + var r$0 = param[3]; + return r$0; + } + function concat(t1, t2){ + if(! t1) return t2; + if(! t2) return t1; + var _T_ = remove_min_elt(t2); + return join(t1, min_elt(t2), _T_); + } + function split(x, param){ + if(! param) return _a_; + var + r = param[3], + v = param[2], + l = param[1], + c = caml_call2(Ord[1], x, v); + if(0 === c) return [0, l, 1, r]; + if(0 <= c){ + var + match = split(x, r), + rr = match[3], + pres = match[2], + lr = match[1]; + return [0, join(l, v, lr), pres, rr]; + } + var + match$0 = split(x, l), + rl = match$0[3], + pres$0 = match$0[2], + ll = match$0[1]; + return [0, ll, pres$0, join(rl, v, r)]; + } + var empty = 0; + function is_empty(param){return param ? 0 : 1;} + function mem(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var + r = param$0[3], + v = param$0[2], + l = param$0[1], + c = caml_call2(Ord[1], x, v), + _S_ = 0 === c ? 1 : 0; + if(_S_) return _S_; + var r$0 = 0 <= c ? r : l, param$0 = r$0; + } + } + function remove(x, t){ + if(! t) return 0; + var t2 = t[3], v = t[2], t1 = t[1], c = caml_call2(Ord[1], x, v); + if(0 === c){ + if(! t1) return t2; + if(! t2) return t1; + var _R_ = remove_min_elt(t2); + return bal(t1, min_elt(t2), _R_); + } + if(0 <= c){ + var rr = remove(x, t2); + return t2 === rr ? t : bal(t1, v, rr); + } + var ll = remove(x, t1); + return t1 === ll ? t : bal(ll, v, t2); + } + function union(s1, s2){ + if(! s1) return s2; + if(! s2) return s1; + var + h2 = s2[4], + r2 = s2[3], + v2 = s2[2], + l2 = s2[1], + h1 = s1[4], + r1 = s1[3], + v1 = s1[2], + l1 = s1[1]; + if(h2 <= h1){ + if(1 === h2) return add(v2, s1); + var + match = split(v1, s2), + r2$0 = match[3], + l2$0 = match[1], + _P_ = union(r1, r2$0); + return join(union(l1, l2$0), v1, _P_); + } + if(1 === h1) return add(v1, s2); + var + match$0 = split(v2, s1), + r1$0 = match$0[3], + l1$0 = match$0[1], + _Q_ = union(r1$0, r2); + return join(union(l1$0, l2), v2, _Q_); + } + function inter(s1, s2){ + if(! s1) return 0; + if(! s2) return 0; + var + r1 = s1[3], + v1 = s1[2], + l1 = s1[1], + _M_ = split(v1, s2), + l2 = _M_[1]; + if(_M_[2]){ + var r2 = _M_[3], _N_ = inter(r1, r2); + return join(inter(l1, l2), v1, _N_); + } + var r2$0 = _M_[3], _O_ = inter(r1, r2$0); + return concat(inter(l1, l2), _O_); + } + function split_bis(x, param){ + if(! param) return [0, 0, function(param){return 0;}]; + var + r = param[3], + v = param[2], + l = param[1], + c = caml_call2(Ord[1], x, v); + if(0 === c) return 0; + if(0 <= c){ + var match = split_bis(x, r); + if(! match) return 0; + var rr = match[2], lr = match[1]; + return [0, join(l, v, lr), rr]; + } + var match$0 = split_bis(x, l); + if(! match$0) return 0; + var rl = match$0[2], ll = match$0[1]; + return [0, + ll, + function(param){return join(caml_call1(rl, 0), v, r);}]; + } + function disjoint(s1, s2){ + var s1$0 = s1, s2$0 = s2; + for(;;){ + if(s1$0 && s2$0){ + var r1 = s1$0[3], v1 = s1$0[2], l1 = s1$0[1]; + if(s1$0 === s2$0) return 0; + var match = split_bis(v1, s2$0); + if(! match) return 0; + var r2 = match[2], l2 = match[1], _L_ = disjoint(l1, l2); + if(! _L_) return _L_; + var s2$1 = caml_call1(r2, 0), s1$0 = r1, s2$0 = s2$1; + continue; + } + return 1; + } + } + function diff(s1, s2){ + if(! s1) return 0; + if(! s2) return s1; + var + r1 = s1[3], + v1 = s1[2], + l1 = s1[1], + _I_ = split(v1, s2), + l2 = _I_[1]; + if(_I_[2]){ + var r2 = _I_[3], _J_ = diff(r1, r2); + return concat(diff(l1, l2), _J_); + } + var r2$0 = _I_[3], _K_ = diff(r1, r2$0); + return join(diff(l1, l2), v1, _K_); + } + function cons_enum(s, e){ + var s$0 = s, e$0 = e; + for(;;){ + if(! s$0) return e$0; + var + r = s$0[3], + v = s$0[2], + l = s$0[1], + e$1 = [0, v, r, e$0], + s$0 = l, + e$0 = e$1; + } + } + function compare(s1, s2){ + var + e2$2 = cons_enum(s2, 0), + e1$2 = cons_enum(s1, 0), + e1 = e1$2, + e2 = e2$2; + for(;;){ + if(! e1) return e2 ? -1 : 0; + if(! e2) return 1; + var + e2$0 = e2[3], + r2 = e2[2], + v2 = e2[1], + e1$0 = e1[3], + r1 = e1[2], + v1 = e1[1], + c = caml_call2(Ord[1], v1, v2); + if(0 !== c) return c; + var + e2$1 = cons_enum(r2, e2$0), + e1$1 = cons_enum(r1, e1$0), + e1 = e1$1, + e2 = e2$1; + } + } + function equal(s1, s2){return 0 === compare(s1, s2) ? 1 : 0;} + function subset(s1, s2){ + var s1$0 = s1, s2$0 = s2; + for(;;){ + if(! s1$0) return 1; + if(! s2$0) return 0; + var + r2 = s2$0[3], + v2 = s2$0[2], + l2 = s2$0[1], + r1 = s1$0[3], + v1 = s1$0[2], + l1 = s1$0[1], + c = caml_call2(Ord[1], v1, v2); + if(0 === c){ + var _F_ = subset(l1, l2); + if(! _F_) return _F_; + var s1$0 = r1, s2$0 = r2; + continue; + } + if(0 <= c){ + var _G_ = subset([0, 0, v1, r1, 0], r2); + if(! _G_) return _G_; + var s1$0 = l1; + continue; + } + var _H_ = subset([0, l1, v1, 0, 0], l2); + if(! _H_) return _H_; + var s1$0 = r1; + } + } + function iter(f, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var r = param$0[3], v = param$0[2], l = param$0[1]; + iter(f, l); + caml_call1(f, v); + var param$0 = r; + } + } + function fold(f, s, accu){ + var s$0 = s, accu$0 = accu; + for(;;){ + if(! s$0) return accu$0; + var + r = s$0[3], + v = s$0[2], + l = s$0[1], + accu$1 = caml_call2(f, v, fold(f, l, accu$0)), + s$0 = r, + accu$0 = accu$1; + } + } + function for_all(p, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 1; + var + r = param$0[3], + v = param$0[2], + l = param$0[1], + _C_ = caml_call1(p, v); + if(_C_){ + var _D_ = for_all(p, l); + if(_D_){var param$0 = r; continue;} + var _E_ = _D_; + } + else + var _E_ = _C_; + return _E_; + } + } + function exists(p, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var + r = param$0[3], + v = param$0[2], + l = param$0[1], + _z_ = caml_call1(p, v); + if(_z_) + var _A_ = _z_; + else{ + var _B_ = exists(p, l); + if(! _B_){var param$0 = r; continue;} + var _A_ = _B_; + } + return _A_; + } + } + function filter(p, t){ + if(! t) return 0; + var + r = t[3], + v = t[2], + l = t[1], + l$0 = filter(p, l), + pv = caml_call1(p, v), + r$0 = filter(p, r); + if(! pv) return concat(l$0, r$0); + if(l === l$0 && r === r$0) return t; + return join(l$0, v, r$0); + } + function partition(p, param){ + if(! param) return _b_; + var + r = param[3], + v = param[2], + l = param[1], + match = partition(p, l), + lf = match[2], + lt = match[1], + pv = caml_call1(p, v), + match$0 = partition(p, r), + rf = match$0[2], + rt = match$0[1]; + if(pv){var _x_ = concat(lf, rf); return [0, join(lt, v, rt), _x_];} + var _y_ = join(lf, v, rf); + return [0, concat(lt, rt), _y_]; + } + function cardinal(param){ + if(! param) return 0; + var r = param[3], l = param[1], _w_ = cardinal(r); + return (cardinal(l) + 1 | 0) + _w_ | 0; + } + function elements_aux(accu, param){ + var accu$0 = accu, param$0 = param; + for(;;){ + if(! param$0) return accu$0; + var + r = param$0[3], + v = param$0[2], + l = param$0[1], + accu$1 = [0, v, elements_aux(accu$0, r)], + accu$0 = accu$1, + param$0 = l; + } + } + function elements(s){return elements_aux(0, s);} + function find(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var + r = param$0[3], + v = param$0[2], + l = param$0[1], + c = caml_call2(Ord[1], x, v); + if(0 === c) return v; + var r$0 = 0 <= c ? r : l, param$0 = r$0; + } + } + function find_first(f, param$0){ + var param$1 = param$0; + for(;;){ + if(! param$1) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var r$0 = param$1[3], v0$1 = param$1[2], l$0 = param$1[1]; + if(! caml_call1(f, v0$1)){var param$1 = r$0; continue;} + var v0 = v0$1, param = l$0; + for(;;){ + if(! param) return v0; + var r = param[3], v0$0 = param[2], l = param[1]; + if(caml_call1(f, v0$0)){var v0 = v0$0, param = l; continue;} + var param = r; + } + } + } + function find_first_opt(f, param$0){ + var param$1 = param$0; + for(;;){ + if(! param$1) return 0; + var r$0 = param$1[3], v0$1 = param$1[2], l$0 = param$1[1]; + if(! caml_call1(f, v0$1)){var param$1 = r$0; continue;} + var v0 = v0$1, param = l$0; + for(;;){ + if(! param) return [0, v0]; + var r = param[3], v0$0 = param[2], l = param[1]; + if(caml_call1(f, v0$0)){var v0 = v0$0, param = l; continue;} + var param = r; + } + } + } + function find_last(f, param$0){ + var param$1 = param$0; + for(;;){ + if(! param$1) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var r$0 = param$1[3], v0$1 = param$1[2], l$0 = param$1[1]; + if(! caml_call1(f, v0$1)){var param$1 = l$0; continue;} + var v0 = v0$1, param = r$0; + for(;;){ + if(! param) return v0; + var r = param[3], v0$0 = param[2], l = param[1]; + if(caml_call1(f, v0$0)){var v0 = v0$0, param = r; continue;} + var param = l; + } + } + } + function find_last_opt(f, param$0){ + var param$1 = param$0; + for(;;){ + if(! param$1) return 0; + var r$0 = param$1[3], v0$1 = param$1[2], l$0 = param$1[1]; + if(! caml_call1(f, v0$1)){var param$1 = l$0; continue;} + var v0 = v0$1, param = r$0; + for(;;){ + if(! param) return [0, v0]; + var r = param[3], v0$0 = param[2], l = param[1]; + if(caml_call1(f, v0$0)){var v0 = v0$0, param = r; continue;} + var param = l; + } + } + } + function find_opt(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var + r = param$0[3], + v = param$0[2], + l = param$0[1], + c = caml_call2(Ord[1], x, v); + if(0 === c) return [0, v]; + var r$0 = 0 <= c ? r : l, param$0 = r$0; + } + } + function try_join(l, v, r){ + var switch$0 = 0; + if(0 !== l){ + var _v_ = max_elt(l); + if(0 <= caml_call2(Ord[1], _v_, v)) switch$0 = 1; + } + if(! switch$0){ + var switch$1 = 0; + if(0 !== r){ + var _u_ = min_elt(r); + if(0 <= caml_call2(Ord[1], v, _u_)) switch$1 = 1; + } + if(! switch$1) return join(l, v, r); + } + return union(l, add(v, r)); + } + function map(f, t){ + if(! t) return 0; + var + r = t[3], + v = t[2], + l = t[1], + l$0 = map(f, l), + v$0 = caml_call1(f, v), + r$0 = map(f, r); + if(l === l$0 && v === v$0 && r === r$0) return t; + return try_join(l$0, v$0, r$0); + } + function filter_map(f, t){ + if(! t) return 0; + var + r = t[3], + v = t[2], + l = t[1], + t1 = filter_map(f, l), + v$0 = caml_call1(f, v), + t2 = filter_map(f, r); + if(v$0){ + var v$1 = v$0[1]; + if(l === t1 && v === v$1 && r === t2) return t; + return try_join(t1, v$1, t2); + } + if(! t1) return t2; + if(! t2) return t1; + var _t_ = remove_min_elt(t2); + return try_join(t1, min_elt(t2), _t_); + } + function of_list(l){ + if(! l) return empty; + var _o_ = l[2], x0 = l[1]; + if(! _o_) return singleton(x0); + var _p_ = _o_[2], x1 = _o_[1]; + if(! _p_) return add(x1, singleton(x0)); + var _q_ = _p_[2], x2 = _p_[1]; + if(! _q_) return add(x2, add(x1, singleton(x0))); + var _r_ = _q_[2], x3 = _q_[1]; + if(! _r_) return add(x3, add(x2, add(x1, singleton(x0)))); + if(_r_[2]){ + var + l$0 = caml_call2(Stdlib_List[59], Ord[1], l), + sub = + function(n, l){ + if(3 >= n >>> 0) + switch(n){ + case 0: + return [0, 0, l]; + case 1: + if(l){ + var l$3 = l[2], x0 = l[1]; + return [0, [0, 0, x0, 0, 1], l$3]; + } + break; + case 2: + if(l){ + var match$1 = l[2]; + if(match$1){ + var l$4 = match$1[2], x1 = match$1[1], x0$0 = l[1]; + return [0, [0, [0, 0, x0$0, 0, 1], x1, 0, 2], l$4]; + } + } + break; + default: + if(l){ + var _s_ = l[2]; + if(_s_){ + var match$2 = _s_[2]; + if(match$2){ + var + l$5 = match$2[2], + x2 = match$2[1], + x1$0 = _s_[1], + x0$1 = l[1]; + return [0, + [0, [0, 0, x0$1, 0, 1], x1$0, [0, 0, x2, 0, 1], 2], + l$5]; + } + } + } + } + var + nl = n / 2 | 0, + match = sub(nl, l), + l$0 = match[2], + left = match[1]; + if(! l$0) + throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); + var + l$1 = l$0[2], + mid = l$0[1], + match$0 = sub((n - nl | 0) - 1 | 0, l$1), + l$2 = match$0[2], + right = match$0[1]; + return [0, create(left, mid, right), l$2]; + }; + return sub(caml_call1(Stdlib_List[1], l$0), l$0)[1]; + } + var x4 = _r_[1]; + return add(x4, add(x3, add(x2, add(x1, singleton(x0))))); + } + function add_seq(i, m){ + function _n_(s, x){return add(x, s);} + return caml_call3(Stdlib_Seq[5], _n_, m, i); + } + function of_seq(i){return add_seq(i, empty);} + function seq_of_enum(c, param){ + if(! c) return 0; + var rest = c[3], t = c[2], x = c[1], _l_ = cons_enum(t, rest); + return [0, x, function(_m_){return seq_of_enum(_l_, _m_);}]; + } + function to_seq(c){ + var _j_ = cons_enum(c, 0); + return function(_k_){return seq_of_enum(_j_, _k_);}; + } + function snoc_enum(s, e){ + var s$0 = s, e$0 = e; + for(;;){ + if(! s$0) return e$0; + var + r = s$0[3], + v = s$0[2], + l = s$0[1], + e$1 = [0, v, l, e$0], + s$0 = r, + e$0 = e$1; + } + } + function rev_seq_of_enum(c, param){ + if(! c) return 0; + var rest = c[3], t = c[2], x = c[1], _h_ = snoc_enum(t, rest); + return [0, x, function(_i_){return rev_seq_of_enum(_h_, _i_);}]; + } + function to_rev_seq(c){ + var _f_ = snoc_enum(c, 0); + return function(_g_){return rev_seq_of_enum(_f_, _g_);}; + } + function to_seq_from(low, s){ + var s$0 = s, c = 0; + for(;;){ + if(s$0){ + var + r = s$0[3], + v = s$0[2], + l = s$0[1], + n = caml_call2(Ord[1], v, low); + if(0 !== n){ + if(0 <= n){var c$0 = [0, v, r, c], s$0 = l, c = c$0; continue;} + var s$0 = r; + continue; + } + var _d_ = [0, v, r, c]; + } + else + var _d_ = c; + return function(_e_){return seq_of_enum(_d_, _e_);}; + } + } + return [0, + empty, + is_empty, + mem, + add, + singleton, + remove, + union, + inter, + disjoint, + diff, + compare, + equal, + subset, + iter, + map, + fold, + for_all, + exists, + filter, + filter_map, + partition, + cardinal, + elements, + min_elt, + min_elt_opt, + max_elt, + max_elt_opt, + min_elt, + min_elt_opt, + split, + find, + find_opt, + find_first, + find_first_opt, + find_last, + find_last_opt, + of_list, + to_seq_from, + to_seq, + to_rev_seq, + add_seq, + of_seq]; + }]; + runtime.caml_register_global(12, Stdlib_Set, "Stdlib__Set"); + return; + } + (globalThis)); + +//# 8574 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_Map_bal$3 = "Map.bal", + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib = global_data.Stdlib, + Assert_failure = global_data.Assert_failure, + Stdlib_Seq = global_data.Stdlib__Seq, + cst_Map_remove_min_elt = "Map.remove_min_elt", + _a_ = [0, 0, 0, 0], + _b_ = [0, "map.ml", 400, 10], + _c_ = [0, 0, 0], + cst_Map_bal = cst_Map_bal$3, + cst_Map_bal$0 = cst_Map_bal$3, + cst_Map_bal$1 = cst_Map_bal$3, + cst_Map_bal$2 = cst_Map_bal$3, + Stdlib_Map = + [0, + function(Ord){ + function height(param){ + if(! param) return 0; + var h = param[5]; + return h; + } + function create(l, x, d, r){ + var + hl = height(l), + hr = height(r), + _L_ = hr <= hl ? hl + 1 | 0 : hr + 1 | 0; + return [0, l, x, d, r, _L_]; + } + function singleton(x, d){return [0, 0, x, d, 0, 1];} + function bal(l, x, d, r){ + if(l) var h = l[5], hl = h; else var hl = 0; + if(r) var h$0 = r[5], hr = h$0; else var hr = 0; + if((hr + 2 | 0) < hl){ + if(! l) return caml_call1(Stdlib[1], cst_Map_bal$0); + var lr = l[4], ld = l[3], lv = l[2], ll = l[1], _G_ = height(lr); + if(_G_ <= height(ll)) + return create(ll, lv, ld, create(lr, x, d, r)); + if(! lr) return caml_call1(Stdlib[1], cst_Map_bal); + var + lrr = lr[4], + lrd = lr[3], + lrv = lr[2], + lrl = lr[1], + _H_ = create(lrr, x, d, r); + return create(create(ll, lv, ld, lrl), lrv, lrd, _H_); + } + if((hl + 2 | 0) >= hr){ + var _K_ = hr <= hl ? hl + 1 | 0 : hr + 1 | 0; + return [0, l, x, d, r, _K_]; + } + if(! r) return caml_call1(Stdlib[1], cst_Map_bal$2); + var rr = r[4], rd = r[3], rv = r[2], rl = r[1], _I_ = height(rl); + if(_I_ <= height(rr)) return create(create(l, x, d, rl), rv, rd, rr); + if(! rl) return caml_call1(Stdlib[1], cst_Map_bal$1); + var + rlr = rl[4], + rld = rl[3], + rlv = rl[2], + rll = rl[1], + _J_ = create(rlr, rv, rd, rr); + return create(create(l, x, d, rll), rlv, rld, _J_); + } + var empty = 0; + function is_empty(param){return param ? 0 : 1;} + function add(x, data, m){ + if(! m) return [0, 0, x, data, 0, 1]; + var + h = m[5], + r = m[4], + d = m[3], + v = m[2], + l = m[1], + c = caml_call2(Ord[1], x, v); + if(0 === c) return d === data ? m : [0, l, x, data, r, h]; + if(0 <= c){ + var rr = add(x, data, r); + return r === rr ? m : bal(l, v, d, rr); + } + var ll = add(x, data, l); + return l === ll ? m : bal(ll, v, d, r); + } + function find(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var + r = param$0[4], + d = param$0[3], + v = param$0[2], + l = param$0[1], + c = caml_call2(Ord[1], x, v); + if(0 === c) return d; + var r$0 = 0 <= c ? r : l, param$0 = r$0; + } + } + function find_first(f, param$0){ + var param$1 = param$0; + for(;;){ + if(! param$1) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var + r$0 = param$1[4], + d0$1 = param$1[3], + v0$1 = param$1[2], + l$0 = param$1[1]; + if(! caml_call1(f, v0$1)){var param$1 = r$0; continue;} + var v0 = v0$1, d0 = d0$1, param = l$0; + for(;;){ + if(! param) return [0, v0, d0]; + var r = param[4], d0$0 = param[3], v0$0 = param[2], l = param[1]; + if(caml_call1(f, v0$0)){ + var v0 = v0$0, d0 = d0$0, param = l; + continue; + } + var param = r; + } + } + } + function find_first_opt(f, param$0){ + var param$1 = param$0; + for(;;){ + if(! param$1) return 0; + var + r$0 = param$1[4], + d0$1 = param$1[3], + v0$1 = param$1[2], + l$0 = param$1[1]; + if(! caml_call1(f, v0$1)){var param$1 = r$0; continue;} + var v0 = v0$1, d0 = d0$1, param = l$0; + for(;;){ + if(! param) return [0, [0, v0, d0]]; + var r = param[4], d0$0 = param[3], v0$0 = param[2], l = param[1]; + if(caml_call1(f, v0$0)){ + var v0 = v0$0, d0 = d0$0, param = l; + continue; + } + var param = r; + } + } + } + function find_last(f, param$0){ + var param$1 = param$0; + for(;;){ + if(! param$1) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var + r$0 = param$1[4], + d0$1 = param$1[3], + v0$1 = param$1[2], + l$0 = param$1[1]; + if(! caml_call1(f, v0$1)){var param$1 = l$0; continue;} + var v0 = v0$1, d0 = d0$1, param = r$0; + for(;;){ + if(! param) return [0, v0, d0]; + var r = param[4], d0$0 = param[3], v0$0 = param[2], l = param[1]; + if(caml_call1(f, v0$0)){ + var v0 = v0$0, d0 = d0$0, param = r; + continue; + } + var param = l; + } + } + } + function find_last_opt(f, param$0){ + var param$1 = param$0; + for(;;){ + if(! param$1) return 0; + var + r$0 = param$1[4], + d0$1 = param$1[3], + v0$1 = param$1[2], + l$0 = param$1[1]; + if(! caml_call1(f, v0$1)){var param$1 = l$0; continue;} + var v0 = v0$1, d0 = d0$1, param = r$0; + for(;;){ + if(! param) return [0, [0, v0, d0]]; + var r = param[4], d0$0 = param[3], v0$0 = param[2], l = param[1]; + if(caml_call1(f, v0$0)){ + var v0 = v0$0, d0 = d0$0, param = r; + continue; + } + var param = l; + } + } + } + function find_opt(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var + r = param$0[4], + d = param$0[3], + v = param$0[2], + l = param$0[1], + c = caml_call2(Ord[1], x, v); + if(0 === c) return [0, d]; + var r$0 = 0 <= c ? r : l, param$0 = r$0; + } + } + function mem(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var + r = param$0[4], + v = param$0[2], + l = param$0[1], + c = caml_call2(Ord[1], x, v), + _F_ = 0 === c ? 1 : 0; + if(_F_) return _F_; + var r$0 = 0 <= c ? r : l, param$0 = r$0; + } + } + function min_binding(param){ + var param$0 = param; + for(;;){ + if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var l = param$0[1]; + if(l){var param$0 = l; continue;} + var d = param$0[3], v = param$0[2]; + return [0, v, d]; + } + } + function min_binding_opt(param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var l = param$0[1]; + if(l){var param$0 = l; continue;} + var d = param$0[3], v = param$0[2]; + return [0, [0, v, d]]; + } + } + function max_binding(param){ + var param$0 = param; + for(;;){ + if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + if(param$0[4]){var r = param$0[4], param$0 = r; continue;} + var d = param$0[3], v = param$0[2]; + return [0, v, d]; + } + } + function max_binding_opt(param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + if(param$0[4]){var r = param$0[4], param$0 = r; continue;} + var d = param$0[3], v = param$0[2]; + return [0, [0, v, d]]; + } + } + function remove_min_binding(param){ + if(! param) return caml_call1(Stdlib[1], cst_Map_remove_min_elt); + var l = param[1]; + if(l){ + var r = param[4], d = param[3], v = param[2]; + return bal(remove_min_binding(l), v, d, r); + } + var r$0 = param[4]; + return r$0; + } + function _d_(t1, t2){ + if(! t1) return t2; + if(! t2) return t1; + var match = min_binding(t2), d = match[2], x = match[1]; + return bal(t1, x, d, remove_min_binding(t2)); + } + function remove(x, m){ + if(! m) return 0; + var + r = m[4], + d = m[3], + v = m[2], + l = m[1], + c = caml_call2(Ord[1], x, v); + if(0 === c) return _d_(l, r); + if(0 <= c){ + var rr = remove(x, r); + return r === rr ? m : bal(l, v, d, rr); + } + var ll = remove(x, l); + return l === ll ? m : bal(ll, v, d, r); + } + function update(x, f, m){ + if(! m){ + var match$0 = caml_call1(f, 0); + if(! match$0) return 0; + var data$0 = match$0[1]; + return [0, 0, x, data$0, 0, 1]; + } + var + h = m[5], + r = m[4], + d = m[3], + v = m[2], + l = m[1], + c = caml_call2(Ord[1], x, v); + if(0 === c){ + var match = caml_call1(f, [0, d]); + if(! match) return _d_(l, r); + var data = match[1]; + return d === data ? m : [0, l, x, data, r, h]; + } + if(0 <= c){ + var rr = update(x, f, r); + return r === rr ? m : bal(l, v, d, rr); + } + var ll = update(x, f, l); + return l === ll ? m : bal(ll, v, d, r); + } + function iter(f, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var r = param$0[4], d = param$0[3], v = param$0[2], l = param$0[1]; + iter(f, l); + caml_call2(f, v, d); + var param$0 = r; + } + } + function map(f, param){ + if(! param) return 0; + var + h = param[5], + r = param[4], + d = param[3], + v = param[2], + l = param[1], + l$0 = map(f, l), + d$0 = caml_call1(f, d), + r$0 = map(f, r); + return [0, l$0, v, d$0, r$0, h]; + } + function mapi(f, param){ + if(! param) return 0; + var + h = param[5], + r = param[4], + d = param[3], + v = param[2], + l = param[1], + l$0 = mapi(f, l), + d$0 = caml_call2(f, v, d), + r$0 = mapi(f, r); + return [0, l$0, v, d$0, r$0, h]; + } + function fold(f, m, accu){ + var m$0 = m, accu$0 = accu; + for(;;){ + if(! m$0) return accu$0; + var + r = m$0[4], + d = m$0[3], + v = m$0[2], + l = m$0[1], + accu$1 = caml_call3(f, v, d, fold(f, l, accu$0)), + m$0 = r, + accu$0 = accu$1; + } + } + function for_all(p, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 1; + var + r = param$0[4], + d = param$0[3], + v = param$0[2], + l = param$0[1], + _C_ = caml_call2(p, v, d); + if(_C_){ + var _D_ = for_all(p, l); + if(_D_){var param$0 = r; continue;} + var _E_ = _D_; + } + else + var _E_ = _C_; + return _E_; + } + } + function exists(p, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var + r = param$0[4], + d = param$0[3], + v = param$0[2], + l = param$0[1], + _z_ = caml_call2(p, v, d); + if(_z_) + var _A_ = _z_; + else{ + var _B_ = exists(p, l); + if(! _B_){var param$0 = r; continue;} + var _A_ = _B_; + } + return _A_; + } + } + function add_min_binding(k, x, param){ + if(! param) return singleton(k, x); + var r = param[4], d = param[3], v = param[2], l = param[1]; + return bal(add_min_binding(k, x, l), v, d, r); + } + function add_max_binding(k, x, param){ + if(! param) return singleton(k, x); + var r = param[4], d = param[3], v = param[2], l = param[1]; + return bal(l, v, d, add_max_binding(k, x, r)); + } + function join(l, v, d, r){ + if(! l) return add_min_binding(v, d, r); + if(! r) return add_max_binding(v, d, l); + var + rh = r[5], + rr = r[4], + rd = r[3], + rv = r[2], + rl = r[1], + lh = l[5], + lr = l[4], + ld = l[3], + lv = l[2], + ll = l[1]; + return (rh + 2 | 0) < lh + ? bal(ll, lv, ld, join(lr, v, d, r)) + : (lh + + 2 + | 0) + < rh + ? bal(join(l, v, d, rl), rv, rd, rr) + : create(l, v, d, r); + } + function concat(t1, t2){ + if(! t1) return t2; + if(! t2) return t1; + var match = min_binding(t2), d = match[2], x = match[1]; + return join(t1, x, d, remove_min_binding(t2)); + } + function concat_or_join(t1, v, d, t2){ + if(! d) return concat(t1, t2); + var d$0 = d[1]; + return join(t1, v, d$0, t2); + } + function split(x, param){ + if(! param) return _a_; + var + r = param[4], + d = param[3], + v = param[2], + l = param[1], + c = caml_call2(Ord[1], x, v); + if(0 === c) return [0, l, [0, d], r]; + if(0 <= c){ + var + match = split(x, r), + rr = match[3], + pres = match[2], + lr = match[1]; + return [0, join(l, v, d, lr), pres, rr]; + } + var + match$0 = split(x, l), + rl = match$0[3], + pres$0 = match$0[2], + ll = match$0[1]; + return [0, ll, pres$0, join(rl, v, d, r)]; + } + function merge(f, s1, s2){ + if(s1){ + var h1 = s1[5], r1 = s1[4], d1 = s1[3], v1 = s1[2], l1 = s1[1]; + if(height(s2) <= h1){ + var + match = split(v1, s2), + r2 = match[3], + d2 = match[2], + l2 = match[1], + _v_ = merge(f, r1, r2), + _w_ = caml_call3(f, v1, [0, d1], d2); + return concat_or_join(merge(f, l1, l2), v1, _w_, _v_); + } + } + else if(! s2) return 0; + if(! s2) + throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); + var + r2$0 = s2[4], + d2$0 = s2[3], + v2 = s2[2], + l2$0 = s2[1], + match$0 = split(v2, s1), + r1$0 = match$0[3], + d1$0 = match$0[2], + l1$0 = match$0[1], + _x_ = merge(f, r1$0, r2$0), + _y_ = caml_call3(f, v2, d1$0, [0, d2$0]); + return concat_or_join(merge(f, l1$0, l2$0), v2, _y_, _x_); + } + function union(f, s1, s2){ + if(s1){ + if(s2){ + var + h2 = s2[5], + r2 = s2[4], + d2 = s2[3], + v2 = s2[2], + l2 = s2[1], + h1 = s1[5], + r1 = s1[4], + d1 = s1[3], + v1 = s1[2], + l1 = s1[1]; + if(h2 <= h1){ + var + match = split(v1, s2), + r2$0 = match[3], + d2$0 = match[2], + l2$0 = match[1], + l = union(f, l1, l2$0), + r = union(f, r1, r2$0); + if(! d2$0) return join(l, v1, d1, r); + var d2$1 = d2$0[1]; + return concat_or_join(l, v1, caml_call3(f, v1, d1, d2$1), r); + } + var + match$0 = split(v2, s1), + r1$0 = match$0[3], + d1$0 = match$0[2], + l1$0 = match$0[1], + l$0 = union(f, l1$0, l2), + r$0 = union(f, r1$0, r2); + if(! d1$0) return join(l$0, v2, d2, r$0); + var d1$1 = d1$0[1]; + return concat_or_join(l$0, v2, caml_call3(f, v2, d1$1, d2), r$0); + } + var s = s1; + } + else + var s = s2; + return s; + } + function filter(p, m){ + if(! m) return 0; + var + r = m[4], + d = m[3], + v = m[2], + l = m[1], + l$0 = filter(p, l), + pvd = caml_call2(p, v, d), + r$0 = filter(p, r); + if(! pvd) return concat(l$0, r$0); + if(l === l$0 && r === r$0) return m; + return join(l$0, v, d, r$0); + } + function filter_map(f, param){ + if(! param) return 0; + var + r = param[4], + d = param[3], + v = param[2], + l = param[1], + l$0 = filter_map(f, l), + fvd = caml_call2(f, v, d), + r$0 = filter_map(f, r); + if(! fvd) return concat(l$0, r$0); + var d$0 = fvd[1]; + return join(l$0, v, d$0, r$0); + } + function partition(p, param){ + if(! param) return _c_; + var + r = param[4], + d = param[3], + v = param[2], + l = param[1], + match = partition(p, l), + lf = match[2], + lt = match[1], + pvd = caml_call2(p, v, d), + match$0 = partition(p, r), + rf = match$0[2], + rt = match$0[1]; + if(pvd){ + var _t_ = concat(lf, rf); + return [0, join(lt, v, d, rt), _t_]; + } + var _u_ = join(lf, v, d, rf); + return [0, concat(lt, rt), _u_]; + } + function cons_enum(m, e){ + var m$0 = m, e$0 = e; + for(;;){ + if(! m$0) return e$0; + var + r = m$0[4], + d = m$0[3], + v = m$0[2], + l = m$0[1], + e$1 = [0, v, d, r, e$0], + m$0 = l, + e$0 = e$1; + } + } + function compare(cmp, m1, m2){ + var + e2$2 = cons_enum(m2, 0), + e1$2 = cons_enum(m1, 0), + e1 = e1$2, + e2 = e2$2; + for(;;){ + if(! e1) return e2 ? -1 : 0; + if(! e2) return 1; + var + e2$0 = e2[4], + r2 = e2[3], + d2 = e2[2], + v2 = e2[1], + e1$0 = e1[4], + r1 = e1[3], + d1 = e1[2], + v1 = e1[1], + c = caml_call2(Ord[1], v1, v2); + if(0 !== c) return c; + var c$0 = caml_call2(cmp, d1, d2); + if(0 !== c$0) return c$0; + var + e2$1 = cons_enum(r2, e2$0), + e1$1 = cons_enum(r1, e1$0), + e1 = e1$1, + e2 = e2$1; + } + } + function equal(cmp, m1, m2){ + var + e2$2 = cons_enum(m2, 0), + e1$2 = cons_enum(m1, 0), + e1 = e1$2, + e2 = e2$2; + for(;;){ + if(! e1) return e2 ? 0 : 1; + if(! e2) return 0; + var + e2$0 = e2[4], + r2 = e2[3], + d2 = e2[2], + v2 = e2[1], + e1$0 = e1[4], + r1 = e1[3], + d1 = e1[2], + v1 = e1[1], + _q_ = 0 === caml_call2(Ord[1], v1, v2) ? 1 : 0; + if(_q_){ + var _r_ = caml_call2(cmp, d1, d2); + if(_r_){ + var + e2$1 = cons_enum(r2, e2$0), + e1$1 = cons_enum(r1, e1$0), + e1 = e1$1, + e2 = e2$1; + continue; + } + var _s_ = _r_; + } + else + var _s_ = _q_; + return _s_; + } + } + function cardinal(param){ + if(! param) return 0; + var r = param[4], l = param[1], _p_ = cardinal(r); + return (cardinal(l) + 1 | 0) + _p_ | 0; + } + function bindings_aux(accu, param){ + var accu$0 = accu, param$0 = param; + for(;;){ + if(! param$0) return accu$0; + var + r = param$0[4], + d = param$0[3], + v = param$0[2], + l = param$0[1], + accu$1 = [0, [0, v, d], bindings_aux(accu$0, r)], + accu$0 = accu$1, + param$0 = l; + } + } + function bindings(s){return bindings_aux(0, s);} + function add_seq(i, m){ + function _o_(m, param){ + var v = param[2], k = param[1]; + return add(k, v, m); + } + return caml_call3(Stdlib_Seq[5], _o_, m, i); + } + function of_seq(i){return add_seq(i, empty);} + function seq_of_enum(c, param){ + if(! c) return 0; + var + rest = c[4], + t = c[3], + v = c[2], + k = c[1], + _m_ = cons_enum(t, rest); + return [0, [0, k, v], function(_n_){return seq_of_enum(_m_, _n_);}]; + } + function to_seq(m){ + var _k_ = cons_enum(m, 0); + return function(_l_){return seq_of_enum(_k_, _l_);}; + } + function snoc_enum(s, e){ + var s$0 = s, e$0 = e; + for(;;){ + if(! s$0) return e$0; + var + r = s$0[4], + d = s$0[3], + v = s$0[2], + l = s$0[1], + e$1 = [0, v, d, l, e$0], + s$0 = r, + e$0 = e$1; + } + } + function rev_seq_of_enum(c, param){ + if(! c) return 0; + var + rest = c[4], + t = c[3], + v = c[2], + k = c[1], + _i_ = snoc_enum(t, rest); + return [0, + [0, k, v], + function(_j_){return rev_seq_of_enum(_i_, _j_);}]; + } + function to_rev_seq(c){ + var _g_ = snoc_enum(c, 0); + return function(_h_){return rev_seq_of_enum(_g_, _h_);}; + } + function to_seq_from(low, m){ + var m$0 = m, c = 0; + for(;;){ + if(m$0){ + var + r = m$0[4], + d = m$0[3], + v = m$0[2], + l = m$0[1], + n = caml_call2(Ord[1], v, low); + if(0 !== n){ + if(0 <= n){var c$0 = [0, v, d, r, c], m$0 = l, c = c$0; continue;} + var m$0 = r; + continue; + } + var _e_ = [0, v, d, r, c]; + } + else + var _e_ = c; + return function(_f_){return seq_of_enum(_e_, _f_);}; + } + } + return [0, + empty, + is_empty, + mem, + add, + update, + singleton, + remove, + merge, + union, + compare, + equal, + iter, + fold, + for_all, + exists, + filter, + filter_map, + partition, + cardinal, + bindings, + min_binding, + min_binding_opt, + max_binding, + max_binding_opt, + min_binding, + min_binding_opt, + split, + find, + find_opt, + find_first, + find_first_opt, + find_last, + find_last_opt, + map, + mapi, + to_seq, + to_rev_seq, + to_seq_from, + add_seq, + of_seq]; + }]; + runtime.caml_register_global(11, Stdlib_Map, "Stdlib__Map"); + return; + } + (globalThis)); + +//# 9406 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib_Seq = global_data.Stdlib__Seq, + Stdlib_List = global_data.Stdlib__List, + Empty = [248, "Stdlib.Stack.Empty", runtime.caml_fresh_oo_id(0)]; + function create(param){return [0, 0, 0];} + function clear(s){s[1] = 0; s[2] = 0; return 0;} + function copy(s){return [0, s[1], s[2]];} + function push(x, s){s[1] = [0, x, s[1]]; s[2] = s[2] + 1 | 0; return 0;} + function pop(s){ + var match = s[1]; + if(! match) throw caml_maybe_attach_backtrace(Empty, 1); + var tl = match[2], hd = match[1]; + s[1] = tl; + s[2] = s[2] - 1 | 0; + return hd; + } + function pop_opt(s){ + var match = s[1]; + if(! match) return 0; + var tl = match[2], hd = match[1]; + s[1] = tl; + s[2] = s[2] - 1 | 0; + return [0, hd]; + } + function top(s){ + var match = s[1]; + if(! match) throw caml_maybe_attach_backtrace(Empty, 1); + var hd = match[1]; + return hd; + } + function top_opt(s){ + var match = s[1]; + if(! match) return 0; + var hd = match[1]; + return [0, hd]; + } + function is_empty(s){return 0 === s[1] ? 1 : 0;} + function length(s){return s[2];} + function iter(f, s){return caml_call2(Stdlib_List[17], f, s[1]);} + function fold(f, acc, s){return caml_call3(Stdlib_List[25], f, acc, s[1]);} + function to_seq(s){return caml_call1(Stdlib_List[61], s[1]);} + function add_seq(q, i){ + function _a_(x){return push(x, q);} + return caml_call2(Stdlib_Seq[4], _a_, i); + } + function of_seq(g){var s = create(0); add_seq(s, g); return s;} + var + Stdlib_Stack = + [0, + Empty, + create, + push, + pop, + pop_opt, + top, + top_opt, + clear, + copy, + is_empty, + length, + iter, + fold, + to_seq, + add_seq, + of_seq]; + runtime.caml_register_global(3, Stdlib_Stack, "Stdlib__Stack"); + return; + } + (globalThis)); + +//# 9500 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib_Seq = global_data.Stdlib__Seq, + Empty = [248, "Stdlib.Queue.Empty", runtime.caml_fresh_oo_id(0)]; + function create(param){return [0, 0, 0, 0];} + function clear(q){q[1] = 0; q[2] = 0; q[3] = 0; return 0;} + function add(x, q){ + var cell = [0, x, 0], match = q[3]; + return match + ? (q[1] = q[1] + 1 | 0, match[2] = cell, q[3] = cell, 0) + : (q[1] = 1, q[2] = cell, q[3] = cell, 0); + } + function peek(q){ + var match = q[2]; + if(! match) throw caml_maybe_attach_backtrace(Empty, 1); + var content = match[1]; + return content; + } + function peek_opt(q){ + var match = q[2]; + if(! match) return 0; + var content = match[1]; + return [0, content]; + } + function take(q){ + var _g_ = q[2]; + if(! _g_) throw caml_maybe_attach_backtrace(Empty, 1); + var content = _g_[1]; + if(_g_[2]){ + var next = _g_[2]; + q[1] = q[1] - 1 | 0; + q[2] = next; + return content; + } + clear(q); + return content; + } + function take_opt(q){ + var _f_ = q[2]; + if(! _f_) return 0; + var content = _f_[1]; + if(_f_[2]){ + var next = _f_[2]; + q[1] = q[1] - 1 | 0; + q[2] = next; + return [0, content]; + } + clear(q); + return [0, content]; + } + function copy(q){ + var cell$0 = q[2], q_res = [0, q[1], 0, 0], prev = 0, cell = cell$0; + for(;;){ + if(! cell){q_res[3] = prev; return q_res;} + var content = cell[1], next = cell[2], prev$0 = [0, content, 0]; + if(prev) prev[2] = prev$0; else q_res[2] = prev$0; + var prev = prev$0, cell = next; + } + } + function is_empty(q){return 0 === q[1] ? 1 : 0;} + function length(q){return q[1];} + function iter(f, q){ + var cell$0 = q[2], cell = cell$0; + for(;;){ + if(! cell) return 0; + var content = cell[1], next = cell[2]; + caml_call1(f, content); + var cell = next; + } + } + function fold(f, accu$1, q){ + var cell$0 = q[2], accu = accu$1, cell = cell$0; + for(;;){ + if(! cell) return accu; + var + content = cell[1], + next = cell[2], + accu$0 = caml_call2(f, accu, content), + accu = accu$0, + cell = next; + } + } + function transfer(q1, q2){ + var _e_ = 0 < q1[1] ? 1 : 0; + if(! _e_) return _e_; + var match = q2[3]; + return match + ? (q2 + [1] + = q2[1] + q1[1] | 0, + match[2] = q1[2], + q2[3] = q1[3], + clear(q1)) + : (q2[1] = q1[1], q2[2] = q1[2], q2[3] = q1[3], clear(q1)); + } + function to_seq(q){ + function aux(c, param){ + if(! c) return 0; + var x = c[1], next = c[2]; + return [0, x, function(_d_){return aux(next, _d_);}]; + } + var _b_ = q[2]; + return function(_c_){return aux(_b_, _c_);}; + } + function add_seq(q, i){ + function _a_(x){return add(x, q);} + return caml_call2(Stdlib_Seq[4], _a_, i); + } + function of_seq(g){var q = create(0); add_seq(q, g); return q;} + var + Stdlib_Queue = + [0, + Empty, + create, + add, + add, + take, + take_opt, + take, + peek, + peek_opt, + peek, + clear, + copy, + is_empty, + length, + iter, + fold, + transfer, + to_seq, + add_seq, + of_seq]; + runtime.caml_register_global(2, Stdlib_Queue, "Stdlib__Queue"); + return; + } + (globalThis)); + +//# 10021 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_buffer_ml = "buffer.ml", + caml_blit_string = runtime.caml_blit_string, + caml_bswap16 = runtime.caml_bswap16, + caml_bytes_unsafe_get = runtime.caml_bytes_unsafe_get, + caml_bytes_unsafe_set = runtime.caml_bytes_unsafe_set, + caml_create_bytes = runtime.caml_create_bytes, + caml_int32_bswap = runtime.caml_int32_bswap, + caml_int64_bswap = runtime.caml_int64_bswap, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_ml_bytes_length = runtime.caml_ml_bytes_length, + caml_ml_string_length = runtime.caml_ml_string_length, + caml_string_get = runtime.caml_string_get; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + function caml_call4(f, a0, a1, a2, a3){ + return (f.l >= 0 ? f.l : f.l = f.length) == 4 + ? f(a0, a1, a2, a3) + : runtime.caml_call_gen(f, [a0, a1, a2, a3]); + } + function caml_call5(f, a0, a1, a2, a3, a4){ + return (f.l >= 0 ? f.l : f.l = f.length) == 5 + ? f(a0, a1, a2, a3, a4) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib_Bytes = global_data.Stdlib__Bytes, + Stdlib_Sys = global_data.Stdlib__Sys, + Stdlib_Seq = global_data.Stdlib__Seq, + Stdlib = global_data.Stdlib, + Stdlib_String = global_data.Stdlib__String, + Assert_failure = global_data.Assert_failure, + cst_Buffer_truncate = "Buffer.truncate", + _d_ = [0, cst_buffer_ml, 231, 9], + cst_Buffer_add_channel = "Buffer.add_channel", + _c_ = [0, cst_buffer_ml, 212, 2], + cst_Buffer_add_substring_add_s = "Buffer.add_substring/add_subbytes", + cst_Buffer_add_cannot_grow_buf = "Buffer.add: cannot grow buffer", + _b_ = [0, cst_buffer_ml, 93, 2], + _a_ = [0, cst_buffer_ml, 94, 2], + cst_Buffer_nth = "Buffer.nth", + cst_Buffer_blit = "Buffer.blit", + cst_Buffer_sub = "Buffer.sub"; + function create(n){ + var + n$0 = 1 <= n ? n : 1, + n$1 = Stdlib_Sys[12] < n$0 ? Stdlib_Sys[12] : n$0, + s = caml_create_bytes(n$1); + return [0, s, 0, n$1, s]; + } + function contents(b){return caml_call3(Stdlib_Bytes[8], b[1], 0, b[2]);} + function to_bytes(b){return caml_call3(Stdlib_Bytes[7], b[1], 0, b[2]);} + function sub(b, ofs, len){ + if(0 <= ofs && 0 <= len && (b[2] - len | 0) >= ofs) + return caml_call3(Stdlib_Bytes[8], b[1], ofs, len); + return caml_call1(Stdlib[1], cst_Buffer_sub); + } + function blit(src, srcoff, dst, dstoff, len){ + if + (0 <= len + && + 0 <= srcoff + && + (src[2] - len | 0) >= srcoff + && 0 <= dstoff && (caml_ml_bytes_length(dst) - len | 0) >= dstoff) + return runtime.caml_blit_bytes(src[1], srcoff, dst, dstoff, len); + return caml_call1(Stdlib[1], cst_Buffer_blit); + } + function nth(b, ofs){ + if(0 <= ofs && b[2] > ofs) return caml_bytes_unsafe_get(b[1], ofs); + return caml_call1(Stdlib[1], cst_Buffer_nth); + } + function length(b){return b[2];} + function clear(b){b[2] = 0; return 0;} + function reset(b){ + b[2] = 0; + b[1] = b[4]; + b[3] = caml_ml_bytes_length(b[1]); + return 0; + } + function resize(b, more){ + var old_pos = b[2], old_len = b[3], new_len = [0, old_len]; + for(;;){ + if(new_len[1] < (old_pos + more | 0)){ + new_len[1] = 2 * new_len[1] | 0; + continue; + } + if(Stdlib_Sys[12] < new_len[1]) + if((old_pos + more | 0) <= Stdlib_Sys[12]) + new_len[1] = Stdlib_Sys[12]; + else + caml_call1(Stdlib[2], cst_Buffer_add_cannot_grow_buf); + var new_buffer = caml_create_bytes(new_len[1]); + caml_call5(Stdlib_Bytes[11], b[1], 0, new_buffer, 0, b[2]); + b[1] = new_buffer; + b[3] = new_len[1]; + if((b[2] + more | 0) > b[3]) + throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); + if((old_pos + more | 0) <= b[3]) return 0; + throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); + } + } + function add_char(b, c){ + var pos = b[2]; + if(b[3] <= pos) resize(b, 1); + caml_bytes_unsafe_set(b[1], pos, c); + b[2] = pos + 1 | 0; + return 0; + } + var uchar_utf_8_byte_length_max = 4, uchar_utf_16_byte_length_max = 4; + function add_utf_8_uchar(b, u){ + for(;;){ + var pos = b[2]; + if(b[3] <= pos) resize(b, uchar_utf_8_byte_length_max); + var n = caml_call3(Stdlib_Bytes[55], b[1], pos, u); + if(0 === n){resize(b, uchar_utf_8_byte_length_max); continue;} + b[2] = pos + n | 0; + return 0; + } + } + function add_utf_16be_uchar(b, u){ + for(;;){ + var pos = b[2]; + if(b[3] <= pos) resize(b, uchar_utf_16_byte_length_max); + var n = caml_call3(Stdlib_Bytes[58], b[1], pos, u); + if(0 === n){resize(b, uchar_utf_16_byte_length_max); continue;} + b[2] = pos + n | 0; + return 0; + } + } + function add_utf_16le_uchar(b, u){ + for(;;){ + var pos = b[2]; + if(b[3] <= pos) resize(b, uchar_utf_16_byte_length_max); + var n = caml_call3(Stdlib_Bytes[61], b[1], pos, u); + if(0 === n){resize(b, uchar_utf_16_byte_length_max); continue;} + b[2] = pos + n | 0; + return 0; + } + } + function add_substring(b, s, offset, len){ + var _u_ = offset < 0 ? 1 : 0; + if(_u_) + var _v_ = _u_; + else + var + _w_ = len < 0 ? 1 : 0, + _v_ = _w_ || ((caml_ml_string_length(s) - len | 0) < offset ? 1 : 0); + if(_v_) caml_call1(Stdlib[1], cst_Buffer_add_substring_add_s); + var new_position = b[2] + len | 0; + if(b[3] < new_position) resize(b, len); + caml_blit_string(s, offset, b[1], b[2], len); + b[2] = new_position; + return 0; + } + function add_subbytes(b, s, offset, len){ + return add_substring(b, caml_call1(Stdlib_Bytes[48], s), offset, len); + } + function add_string(b, s){ + var len = caml_ml_string_length(s), new_position = b[2] + len | 0; + if(b[3] < new_position) resize(b, len); + caml_blit_string(s, 0, b[1], b[2], len); + b[2] = new_position; + return 0; + } + function add_bytes(b, s){ + return add_string(b, caml_call1(Stdlib_Bytes[48], s)); + } + function add_buffer(b, bs){return add_subbytes(b, bs[1], 0, bs[2]);} + function add_channel(b, ic, to_read$1){ + var + _s_ = to_read$1 < 0 ? 1 : 0, + _t_ = _s_ || (Stdlib_Sys[12] < to_read$1 ? 1 : 0); + if(_t_) caml_call1(Stdlib[1], cst_Buffer_add_channel); + if(b[3] < (b[2] + to_read$1 | 0)) resize(b, to_read$1); + var + ofs$1 = b[2], + buf = b[1], + already_read = 0, + ofs = ofs$1, + to_read = to_read$1; + for(;;){ + if(0 !== to_read){ + var r = caml_call4(Stdlib[84], ic, buf, ofs, to_read); + if(0 !== r){ + var + already_read$0 = already_read + r | 0, + ofs$0 = ofs + r | 0, + to_read$0 = to_read - r | 0, + already_read = already_read$0, + ofs = ofs$0, + to_read = to_read$0; + continue; + } + } + if((b[2] + already_read | 0) > b[3]) + throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); + b[2] = b[2] + already_read | 0; + if(already_read < to_read$1) + throw caml_maybe_attach_backtrace(Stdlib[12], 1); + return 0; + } + } + function output_buffer(oc, b){ + return caml_call4(Stdlib[68], oc, b[1], 0, b[2]); + } + function add_substitute(b, f, s){ + var lim$1 = caml_ml_string_length(s), previous = 32, i$4 = 0; + for(;;){ + if(i$4 >= lim$1){ + var _r_ = 92 === previous ? 1 : 0; + return _r_ ? add_char(b, previous) : _r_; + } + var previous$0 = caml_string_get(s, i$4); + if(36 !== previous$0){ + if(92 === previous){ + add_char(b, 92); + add_char(b, previous$0); + var i$6 = i$4 + 1 | 0, previous = 32, i$4 = i$6; + continue; + } + if(92 === previous$0){ + var i$7 = i$4 + 1 | 0, previous = previous$0, i$4 = i$7; + continue; + } + add_char(b, previous$0); + var i$8 = i$4 + 1 | 0, previous = previous$0, i$4 = i$8; + continue; + } + if(92 === previous){ + add_char(b, previous$0); + var i$5 = i$4 + 1 | 0, previous = 32, i$4 = i$5; + continue; + } + var start$0 = i$4 + 1 | 0; + if(lim$1 <= start$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var opening = caml_string_get(s, start$0), switch$0 = 0; + if(40 !== opening && 123 !== opening){ + var + start = start$0 + 1 | 0, + lim$0 = caml_ml_string_length(s), + i$2 = start; + for(;;){ + if(lim$0 <= i$2) + var stop$0 = lim$0; + else{ + var match = caml_string_get(s, i$2), switch$1 = 0; + if(91 <= match){ + if(97 <= match){ + if(123 > match) switch$1 = 1; + } + else if(95 === match) switch$1 = 1; + } + else + if(58 <= match){ + if(65 <= match) switch$1 = 1; + } + else if(48 <= match) switch$1 = 1; + if(switch$1){var i$3 = i$2 + 1 | 0, i$2 = i$3; continue;} + var stop$0 = i$2; + } + var + match$0 = + [0, + caml_call3(Stdlib_String[15], s, start$0, stop$0 - start$0 | 0), + stop$0]; + switch$0 = 1; + break; + } + } + if(! switch$0){ + var new_start = start$0 + 1 | 0, k$2 = 0; + if(40 === opening) + var closing = 41; + else{ + if(123 !== opening) + throw caml_maybe_attach_backtrace([0, Assert_failure, _d_], 1); + var closing = 125; + } + var lim = caml_ml_string_length(s), k = k$2, stop = new_start; + for(;;){ + if(lim <= stop) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + if(caml_string_get(s, stop) === opening){ + var i = stop + 1 | 0, k$0 = k + 1 | 0, k = k$0, stop = i; + continue; + } + if(caml_string_get(s, stop) !== closing){ + var i$1 = stop + 1 | 0, stop = i$1; + continue; + } + if(0 !== k){ + var i$0 = stop + 1 | 0, k$1 = k - 1 | 0, k = k$1, stop = i$0; + continue; + } + var + match$0 = + [0, + caml_call3 + (Stdlib_String[15], s, new_start, (stop - start$0 | 0) - 1 | 0), + stop + 1 | 0]; + break; + } + } + var next_i = match$0[2], ident = match$0[1]; + add_string(b, caml_call1(f, ident)); + var previous = 32, i$4 = next_i; + } + } + function truncate(b, len){ + if(0 <= len && b[2] >= len){b[2] = len; return 0;} + return caml_call1(Stdlib[1], cst_Buffer_truncate); + } + function to_seq(b){ + function aux(i, param){ + if(b[2] <= i) return 0; + var x = caml_bytes_unsafe_get(b[1], i), _p_ = i + 1 | 0; + return [0, x, function(_q_){return aux(_p_, _q_);}]; + } + var _n_ = 0; + return function(_o_){return aux(_n_, _o_);}; + } + function to_seqi(b){ + function aux(i, param){ + if(b[2] <= i) return 0; + var x = caml_bytes_unsafe_get(b[1], i), _l_ = i + 1 | 0; + return [0, [0, i, x], function(_m_){return aux(_l_, _m_);}]; + } + var _j_ = 0; + return function(_k_){return aux(_j_, _k_);}; + } + function add_seq(b, seq){ + function _h_(_i_){return add_char(b, _i_);} + return caml_call2(Stdlib_Seq[4], _h_, seq); + } + function of_seq(i){var b = create(32); add_seq(b, i); return b;} + function add_int8(b, x){ + var new_position = b[2] + 1 | 0; + if(b[3] < new_position) resize(b, 1); + caml_bytes_unsafe_set(b[1], b[2], x); + b[2] = new_position; + return 0; + } + function add_int16_ne(b, x){ + var new_position = b[2] + 2 | 0; + if(b[3] < new_position) resize(b, 2); + runtime.caml_bytes_set16(b[1], b[2], x); + b[2] = new_position; + return 0; + } + function add_int32_ne(b, x){ + var new_position = b[2] + 4 | 0; + if(b[3] < new_position) resize(b, 4); + runtime.caml_bytes_set32(b[1], b[2], x); + b[2] = new_position; + return 0; + } + function add_int64_ne(b, x){ + var new_position = b[2] + 8 | 0; + if(b[3] < new_position) resize(b, 8); + runtime.caml_bytes_set64(b[1], b[2], x); + b[2] = new_position; + return 0; + } + function add_int16_le(b, x){ + var _g_ = Stdlib_Sys[11] ? caml_bswap16(x) : x; + return add_int16_ne(b, _g_); + } + function add_int16_be(b, x){ + var x$0 = Stdlib_Sys[11] ? x : caml_bswap16(x); + return add_int16_ne(b, x$0); + } + function add_int32_le(b, x){ + var _f_ = Stdlib_Sys[11] ? caml_int32_bswap(x) : x; + return add_int32_ne(b, _f_); + } + function add_int32_be(b, x){ + var x$0 = Stdlib_Sys[11] ? x : caml_int32_bswap(x); + return add_int32_ne(b, x$0); + } + function add_int64_le(b, x){ + var _e_ = Stdlib_Sys[11] ? caml_int64_bswap(x) : x; + return add_int64_ne(b, _e_); + } + function add_int64_be(b, x){ + var x$0 = Stdlib_Sys[11] ? x : caml_int64_bswap(x); + return add_int64_ne(b, x$0); + } + var + Stdlib_Buffer = + [0, + create, + contents, + to_bytes, + sub, + blit, + nth, + length, + clear, + reset, + output_buffer, + truncate, + add_char, + add_utf_8_uchar, + add_utf_16le_uchar, + add_utf_16be_uchar, + add_string, + add_bytes, + add_substring, + add_subbytes, + add_substitute, + add_buffer, + add_channel, + to_seq, + to_seqi, + add_seq, + of_seq, + add_int8, + add_int8, + add_int16_ne, + add_int16_be, + add_int16_le, + add_int16_ne, + add_int16_be, + add_int16_le, + add_int32_ne, + add_int32_be, + add_int32_le, + add_int64_ne, + add_int64_be, + add_int64_le]; + runtime.caml_register_global(17, Stdlib_Buffer, "Stdlib__Buffer"); + return; + } + (globalThis)); + +//# 10476 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst$43 = "", + cst_and = " and ", + cst_Li$3 = "%Li", + cst_i$3 = "%i", + cst_li$3 = "%li", + cst_ni$3 = "%ni", + cst_u$0 = "%u", + cst$42 = "' '", + cst$41 = "'#'", + cst$39 = "'*'", + cst$40 = "'+'", + cst$44 = ", ", + cst_0$3 = "0", + cst_at_character_number = ": at character number ", + cst$38 = "@[", + cst$37 = "@{", + cst_bad_input_format_type_mism = + "bad input: format type mismatch between ", + cst_bad_input_format_type_mism$0 = + "bad input: format type mismatch between %S and %S", + cst_camlinternalFormat_ml = "camlinternalFormat.ml", + cst_invalid_format = "invalid format ", + cst_precision$3 = "precision", + caml_blit_string = runtime.caml_blit_string, + caml_bytes_set = runtime.caml_bytes_set, + caml_create_bytes = runtime.caml_create_bytes, + caml_format_float = runtime.caml_format_float, + caml_format_int = runtime.caml_format_int, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_ml_string_length = runtime.caml_ml_string_length, + caml_notequal = runtime.caml_notequal, + caml_string_get = runtime.caml_string_get, + caml_string_notequal = runtime.caml_string_notequal, + caml_string_unsafe_get = runtime.caml_string_unsafe_get, + caml_trampoline = runtime.caml_trampoline, + caml_trampoline_return = runtime.caml_trampoline_return, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + function caml_call4(f, a0, a1, a2, a3){ + return (f.l >= 0 ? f.l : f.l = f.length) == 4 + ? f(a0, a1, a2, a3) + : runtime.caml_call_gen(f, [a0, a1, a2, a3]); + } + function caml_call5(f, a0, a1, a2, a3, a4){ + return (f.l >= 0 ? f.l : f.l = f.length) == 5 + ? f(a0, a1, a2, a3, a4) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); + } + var + global_data = runtime.caml_get_global_data(), + cst$9 = "%{", + cst$10 = "%}", + cst$11 = "%(", + cst$12 = "%)", + cst$13 = "%?", + cst$18 = cst$37, + cst$19 = cst$38, + cst$20 = cst$37, + cst$21 = cst$38, + cst$22 = cst$37, + cst$23 = cst$38, + cst$26 = cst$39, + cst$24 = "'-'", + cst$25 = cst$39, + cst$27 = cst$40, + cst$28 = cst$41, + cst$29 = cst$42, + cst$30 = cst$40, + cst$31 = "'_'", + sub_format = [0, 0, cst$43], + formatting_lit = [0, "@;", 1, 0], + cst$35 = cst$41, + cst$32 = cst$40, + cst$33 = cst$40, + cst$34 = cst$42, + cst$36 = cst$40, + cst$17 = ".", + cst$14 = "%!", + cst$15 = cst$37, + cst$16 = cst$38, + cst$8 = "%%", + cst$0 = "@]", + cst$1 = "@}", + cst$2 = "@?", + cst$3 = "@\n", + cst$4 = "@.", + cst$5 = "@@", + cst$6 = "@%", + cst$7 = "@", + cst = ".*", + Assert_failure = global_data.Assert_failure, + CamlinternalFormatBasics = global_data.CamlinternalFormatBasics, + Stdlib = global_data.Stdlib, + Stdlib_Buffer = global_data.Stdlib__Buffer, + Stdlib_String = global_data.Stdlib__String, + Stdlib_Sys = global_data.Stdlib__Sys, + Stdlib_Char = global_data.Stdlib__Char, + Stdlib_Bytes = global_data.Stdlib__Bytes, + Stdlib_Int = global_data.Stdlib__Int, + cst_c = "%c", + cst_s = "%s", + cst_i = cst_i$3, + cst_li = cst_li$3, + cst_ni = cst_ni$3, + cst_Li = cst_Li$3, + cst_f = "%f", + cst_B = "%B", + cst_a = "%a", + cst_t = "%t", + cst_r = "%r", + cst_r$0 = "%_r", + _b_ = [0, cst_camlinternalFormat_ml, 850, 23], + _m_ = [0, cst_camlinternalFormat_ml, 814, 21], + _e_ = [0, cst_camlinternalFormat_ml, 815, 21], + _n_ = [0, cst_camlinternalFormat_ml, 818, 21], + _f_ = [0, cst_camlinternalFormat_ml, 819, 21], + _o_ = [0, cst_camlinternalFormat_ml, 822, 19], + _g_ = [0, cst_camlinternalFormat_ml, 823, 19], + _p_ = [0, cst_camlinternalFormat_ml, 826, 22], + _h_ = [0, cst_camlinternalFormat_ml, 827, 22], + _q_ = [0, cst_camlinternalFormat_ml, 831, 30], + _i_ = [0, cst_camlinternalFormat_ml, 832, 30], + _k_ = [0, cst_camlinternalFormat_ml, 836, 26], + _c_ = [0, cst_camlinternalFormat_ml, 837, 26], + _l_ = [0, cst_camlinternalFormat_ml, 846, 28], + _d_ = [0, cst_camlinternalFormat_ml, 847, 28], + _j_ = [0, cst_camlinternalFormat_ml, 851, 23], + _s_ = [0, cst_camlinternalFormat_ml, 1558, 4], + cst_Printf_bad_conversion = "Printf: bad conversion %[", + _t_ = [0, cst_camlinternalFormat_ml, 1626, 39], + _u_ = [0, cst_camlinternalFormat_ml, 1649, 31], + _v_ = [0, cst_camlinternalFormat_ml, 1650, 31], + cst_Printf_bad_conversion$0 = "Printf: bad conversion %_", + _w_ = [0, cst_camlinternalFormat_ml, 1830, 8], + ___ = + [0, + [11, cst_bad_input_format_type_mism, [3, 0, [11, cst_and, [3, 0, 0]]]], + cst_bad_input_format_type_mism$0], + _Z_ = + [0, + [11, cst_bad_input_format_type_mism, [3, 0, [11, cst_and, [3, 0, 0]]]], + cst_bad_input_format_type_mism$0], + _C_ = [0, [11, - caml_string_of_jsbytes('File "'), - [2, + cst_invalid_format, + [3, 0, [11, - caml_string_of_jsbytes('", line '), + cst_at_character_number, + [4, 0, 0, 0, [11, ", duplicate flag ", [1, 0]]]]]], + "invalid format %S: at character number %d, duplicate flag %C"], + cst_0 = cst_0$3, + cst_padding = "padding", + _D_ = [0, 1, 0], + _E_ = [0, 0], + cst_precision = cst_precision$3, + _F_ = [1, 0], + _G_ = [1, 1], + cst_0$2 = "'0'", + cst_0$0 = cst_0$3, + _I_ = [1, 1], + cst_0$1 = cst_0$3, + cst_precision$0 = cst_precision$3, + _H_ = [1, 1], + cst_precision$1 = cst_precision$3, + _M_ = + [0, + [11, + cst_invalid_format, + [3, + 0, + [11, + cst_at_character_number, [4, 0, 0, 0, [11, - caml_string_of_jsbytes(", characters "), - [4, - 0, - 0, - 0, - [12,45,[4,0,0,0,[11,caml_string_of_jsbytes(": "),[2,0,0]]]]]]]]]], - caml_string_of_jsbytes('File "%s", line %d, characters %d-%d: %s')], - cst_Fun_Finally_raised=caml_string_of_jsbytes("Fun.Finally_raised: "), - cst_Stdlib_Fun_Finally_raised= - caml_string_of_jsbytes("Stdlib.Fun.Finally_raised"), - cst_Digest_from_hex$0=caml_string_of_jsbytes("Digest.from_hex"), - cst_Digest_from_hex=caml_string_of_jsbytes("Digest.from_hex"), - cst_Digest_to_hex=caml_string_of_jsbytes("Digest.to_hex"), - cst_Digest_substring=caml_string_of_jsbytes("Digest.substring"), - cst_Random_int64=caml_string_of_jsbytes("Random.int64"), - cst_Random_int32=caml_string_of_jsbytes("Random.int32"), - cst_Random_full_int=caml_string_of_jsbytes("Random.full_int"), - cst_Random_int=caml_string_of_jsbytes("Random.int"), - cst_x$1=caml_string_of_jsbytes("x"), - cst_Hashtbl_unsupported_hash_t= - caml_string_of_jsbytes("Hashtbl: unsupported hash table format"), - cst_OCAMLRUNPARAM=caml_string_of_jsbytes("OCAMLRUNPARAM"), - cst_CAMLRUNPARAM=caml_string_of_jsbytes("CAMLRUNPARAM"), - cst$66=caml_string_of_jsbytes(""), - cst_Weak_Make_hash_bucket_cann= - caml_string_of_jsbytes("Weak.Make: hash bucket cannot grow more"), - cst_Weak_fill=caml_string_of_jsbytes("Weak.fill"), - cst_Weak_blit=caml_string_of_jsbytes("Weak.blit"), - cst_Weak_check=caml_string_of_jsbytes("Weak.check"), - cst_Weak_get_copy=caml_string_of_jsbytes("Weak.get_copy"), - cst_Weak_get=caml_string_of_jsbytes("Weak.get"), - cst_Weak_set=caml_string_of_jsbytes("Weak.set"), - cst_Weak_create=caml_string_of_jsbytes("Weak.create"), - cst$84=caml_string_of_jsbytes(""), - cst$85=caml_string_of_jsbytes(""), - cst$83=caml_string_of_jsbytes("."), - cst$80=caml_string_of_jsbytes(">"), - cst$81=caml_string_of_jsbytes("<\/"), - cst$82=caml_string_of_jsbytes(""), - cst$77=caml_string_of_jsbytes(">"), - cst$78=caml_string_of_jsbytes("<"), - cst$79=caml_string_of_jsbytes(""), - cst$76=caml_string_of_jsbytes("\n"), - cst_Format_pp_set_geometry= - caml_string_of_jsbytes("Format.pp_set_geometry: "), - cst$72=caml_string_of_jsbytes(""), - cst$73=caml_string_of_jsbytes(""), - cst$74=caml_string_of_jsbytes(""), - cst$75=caml_string_of_jsbytes(""), - cst$68=caml_string_of_jsbytes(""), - cst$69=caml_string_of_jsbytes(""), - cst$70=caml_string_of_jsbytes(""), - cst$71=caml_string_of_jsbytes(""), - cst$67=caml_string_of_jsbytes(""), - cst_Stdlib_Format_String_tag= - caml_string_of_jsbytes("Stdlib.Format.String_tag"), - cst_end_of_input_not_found= - caml_string_of_jsbytes("end of input not found"), - cst_scanf_bad_conversion_a= - caml_string_of_jsbytes('scanf: bad conversion "%a"'), - cst_scanf_bad_conversion_t= - caml_string_of_jsbytes('scanf: bad conversion "%t"'), - cst_scanf_missing_reader=caml_string_of_jsbytes("scanf: missing reader"), - cst_scanf_bad_conversion_custo= - caml_string_of_jsbytes('scanf: bad conversion "%?" (custom converter)'), - cst_scanf_bad_conversion= - caml_string_of_jsbytes('scanf: bad conversion "%*"'), - cst_scanf_bad_conversion$0= - caml_string_of_jsbytes('scanf: bad conversion "%*"'), - cst_scanf_bad_conversion$1= - caml_string_of_jsbytes('scanf: bad conversion "%-"'), - cst_scanf_bad_conversion$2= - caml_string_of_jsbytes('scanf: bad conversion "%*"'), - cst$91=caml_string_of_jsbytes('"'), - cst$92=caml_string_of_jsbytes('"'), - cst$89=caml_string_of_jsbytes('"'), - cst$90=caml_string_of_jsbytes('"'), - cst$88=caml_string_of_jsbytes('"'), - cst_in_format=caml_string_of_jsbytes(' in format "'), - cst_an=caml_string_of_jsbytes("an"), - cst_x$2=caml_string_of_jsbytes("x"), - cst_nfinity=caml_string_of_jsbytes("nfinity"), - cst_digits=caml_string_of_jsbytes("digits"), - cst_decimal_digits=caml_string_of_jsbytes("decimal digits"), - cst_0b=caml_string_of_jsbytes("0b"), - cst_0o=caml_string_of_jsbytes("0o"), - cst_0u=caml_string_of_jsbytes("0u"), - cst_0x=caml_string_of_jsbytes("0x"), - cst_false$3=caml_string_of_jsbytes("false"), - cst_true$3=caml_string_of_jsbytes("true"), - cst_not_a_valid_float_in_hexad= - caml_string_of_jsbytes("not a valid float in hexadecimal notation"), - cst_no_dot_or_exponent_part_fo= - caml_string_of_jsbytes("no dot or exponent part found in float token"), - cst$87=caml_string_of_jsbytes("-"), - cst_unnamed_function=caml_string_of_jsbytes("unnamed function"), - cst_unnamed_character_string= - caml_string_of_jsbytes("unnamed character string"), - cst_unnamed_Stdlib_input_chann= - caml_string_of_jsbytes("unnamed Stdlib input channel"), - cst$86=caml_string_of_jsbytes("-"), - cst_Stdlib_Scanf_Scan_failure= - caml_string_of_jsbytes("Stdlib.Scanf.Scan_failure"), - cst_binary=caml_string_of_jsbytes("binary"), - cst_octal=caml_string_of_jsbytes("octal"), - cst_hexadecimal=caml_string_of_jsbytes("hexadecimal"), - cst_a_Char=caml_string_of_jsbytes("a Char"), - cst_a_String=caml_string_of_jsbytes("a String"), - cst$93=caml_string_of_jsbytes(""), - cst_CamlinternalMod_update_mod= - caml_string_of_jsbytes("CamlinternalMod.update_mod: not a module"), - cst_CamlinternalMod_init_mod_n= - caml_string_of_jsbytes("CamlinternalMod.init_mod: not a module"), - cst$94=caml_string_of_jsbytes(""), - cst$95=caml_string_of_jsbytes(""), - cst$96=caml_string_of_jsbytes(""), - cst$97=caml_string_of_jsbytes(""), - cst$99=caml_string_of_jsbytes(""), - cst$98=caml_string_of_jsbytes(""), - cst_Illegal_character=caml_string_of_jsbytes("Illegal character "), - cst_Filename_chop_extension= - caml_string_of_jsbytes("Filename.chop_extension"), - cst$127=caml_string_of_jsbytes(""), - cst_Filename_chop_suffix=caml_string_of_jsbytes("Filename.chop_suffix"), - cst$126=caml_string_of_jsbytes(""), - cst_2_1$0=caml_string_of_jsbytes(" 2>&1"), - cst_2$0=caml_string_of_jsbytes(" 2>"), - cst$125=caml_string_of_jsbytes(""), - cst$117=caml_string_of_jsbytes(" >"), - cst$124=caml_string_of_jsbytes(""), - cst$118=caml_string_of_jsbytes(" <"), - cst$123=caml_string_of_jsbytes(""), - cst$119=caml_string_of_jsbytes(" "), - cst$120=caml_string_of_jsbytes(" "), - cst$121=caml_string_of_jsbytes('"'), - cst$122=caml_string_of_jsbytes(""), - cst_Filename_quote_command_bad= - caml_string_of_jsbytes("Filename.quote_command: bad file name "), - cst$115=caml_string_of_jsbytes('"'), - cst$116=caml_string_of_jsbytes('"'), - cst$113=caml_string_of_jsbytes("./"), - cst$112=caml_string_of_jsbytes(".\\"), - cst$111=caml_string_of_jsbytes("../"), - cst$110=caml_string_of_jsbytes("..\\"), - cst_2_1=caml_string_of_jsbytes(" 2>&1"), - cst_2=caml_string_of_jsbytes(" 2>"), - cst$109=caml_string_of_jsbytes(""), - cst$104=caml_string_of_jsbytes(" >"), - cst$108=caml_string_of_jsbytes(""), - cst$105=caml_string_of_jsbytes(" <"), - cst$107=caml_string_of_jsbytes(""), - cst$106=caml_string_of_jsbytes(" "), - cst$103=caml_string_of_jsbytes("./"), - cst$102=caml_string_of_jsbytes("../"), - cst$101=caml_string_of_jsbytes(""), - cst$100=caml_string_of_jsbytes(""), - null$0=caml_string_of_jsbytes("/dev/null"), - current_dir_name=caml_string_of_jsbytes("."), - parent_dir_name=caml_string_of_jsbytes(".."), - dir_sep=caml_string_of_jsbytes("/"), - cst_TMPDIR=caml_string_of_jsbytes("TMPDIR"), - cst_tmp=caml_string_of_jsbytes("/tmp"), - quotequote=caml_string_of_jsbytes("'\\''"), - null$1=caml_string_of_jsbytes("NUL"), - current_dir_name$0=caml_string_of_jsbytes("."), - parent_dir_name$0=caml_string_of_jsbytes(".."), - dir_sep$0=caml_string_of_jsbytes("\\"), - cst_TEMP=caml_string_of_jsbytes("TEMP"), - cst$114=caml_string_of_jsbytes("."), - null$2=caml_string_of_jsbytes("/dev/null"), - current_dir_name$1=caml_string_of_jsbytes("."), - parent_dir_name$1=caml_string_of_jsbytes(".."), - dir_sep$1=caml_string_of_jsbytes("/"), - cst_Cygwin=caml_string_of_jsbytes("Cygwin"), - cst_Win32=caml_string_of_jsbytes("Win32"), - zero$4=[254,0.,0.], - one$4=[254,1.,0.], - i=[254,0.,1.], - cst_Bigarray_array3_of_genarra= - caml_string_of_jsbytes("Bigarray.array3_of_genarray"), - cst_Bigarray_array2_of_genarra= - caml_string_of_jsbytes("Bigarray.array2_of_genarray"), - cst_Bigarray_array1_of_genarra= - caml_string_of_jsbytes("Bigarray.array1_of_genarray"), - cst_Bigarray_array0_of_genarra= - caml_string_of_jsbytes("Bigarray.array0_of_genarray"), - cst_Bigarray_Array3_of_array_n= - caml_string_of_jsbytes("Bigarray.Array3.of_array: non-cubic data"), - cst_Bigarray_Array3_of_array_n$0= - caml_string_of_jsbytes("Bigarray.Array3.of_array: non-cubic data"), - cst_Bigarray_Array2_of_array_n= - caml_string_of_jsbytes("Bigarray.Array2.of_array: non-rectangular data"), - cst_In_channel_input_all_chann= - caml_string_of_jsbytes - ("In_channel.input_all: channel content is larger than maximum string length"), - Invalid_argument=global_data.Invalid_argument, - Failure=global_data.Failure, - Match_failure=global_data.Match_failure, - Assert_failure=global_data.Assert_failure, - Not_found=global_data.Not_found, - Out_of_memory=global_data.Out_of_memory, - Stack_overflow=global_data.Stack_overflow, - Sys_error=global_data.Sys_error, - End_of_file=global_data.End_of_file, - Division_by_zero=global_data.Division_by_zero, - Sys_blocked_io=global_data.Sys_blocked_io, - Undefined_recursive_module=global_data.Undefined_recursive_module, - _l_=[0,0,[0,6,0]], - _k_=[0,0,[0,7,0]], - _j_=[0,1,[0,3,[0,4,[0,6,0]]]], - _i_=[0,1,[0,3,[0,4,[0,7,0]]]], - _g_=[0,1], - _h_=[0,0], - _a_=runtime.caml_int64_create_lo_mi_hi(0,0,32752), - _b_=runtime.caml_int64_create_lo_mi_hi(0,0,65520), - _c_=runtime.caml_int64_create_lo_mi_hi(1,0,32752), - _d_=runtime.caml_int64_create_lo_mi_hi(16777215,16777215,32751), - _e_=runtime.caml_int64_create_lo_mi_hi(0,0,16), - _f_=runtime.caml_int64_create_lo_mi_hi(0,0,15536), - _n_=[0,caml_string_of_jsbytes("obj.ml"),95,4], - _p_=[0,caml_string_of_jsbytes("seq.ml"),596,4], - _v_=[0,caml_string_of_jsbytes("uchar.ml"),88,18], - _u_=[0,caml_string_of_jsbytes("uchar.ml"),91,7], - _t_=[0,caml_string_of_jsbytes("uchar.ml"),80,18], - _s_=[0,caml_string_of_jsbytes("uchar.ml"),85,7], - _y_=[0,0,0], - _E_=[0,caml_string_of_jsbytes("bytes.ml"),808,20], - _D_=[0,caml_string_of_jsbytes("bytes.ml"),819,9], - _C_=[0,caml_string_of_jsbytes("bytes.ml"),754,20], - _B_=[0,caml_string_of_jsbytes("bytes.ml"),765,9], - _A_=[0,caml_string_of_jsbytes("bytes.ml"),642,20], - _z_=[0,caml_string_of_jsbytes("bytes.ml"),667,9], - _F_=[0,caml_string_of_jsbytes("array.ml"),322,4], - _H_=[0,caml_string_of_jsbytes("float.ml"),395,6], - _G_=[0,caml_string_of_jsbytes("float.ml"),222,14], - _S_=runtime.caml_int64_create_lo_mi_hi(16777215,16777215,65535), - _R_=runtime.caml_int64_create_lo_mi_hi(0,0,0), - _Q_=runtime.caml_int64_create_lo_mi_hi(1,0,0), - _P_=runtime.caml_int64_create_lo_mi_hi(1,0,0), - _T_=[0,0,0,0], - _U_=[0,0,0], - _V_=[0,caml_string_of_jsbytes("set.ml"),570,18], - _W_=[0,0,0,0], - _X_=[0,caml_string_of_jsbytes("map.ml"),400,10], - _Y_=[0,0,0], - _Z_=[0,caml_string_of_jsbytes("stream.ml"),53,12], - ___=[0,0], - _$_=[0,caml_string_of_jsbytes("stream.ml"),82,12], - _ad_=[0,caml_string_of_jsbytes("buffer.ml"),231,9], - _ac_=[0,caml_string_of_jsbytes("buffer.ml"),212,2], - _ab_=[0,caml_string_of_jsbytes("buffer.ml"),93,2], - _aa_=[0,caml_string_of_jsbytes("buffer.ml"),94,2], - _af_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),850,23], - _aq_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),814,21], - _ai_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),815,21], - _ar_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),818,21], - _aj_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),819,21], - _as_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),822,19], - _ak_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),823,19], - _at_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),826,22], - _al_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),827,22], - _au_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),831,30], - _am_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),832,30], - _ao_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),836,26], - _ag_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),837,26], - _ap_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),846,28], - _ah_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),847,28], - _an_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),851,23], - _aw_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),1558,4], - _ax_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),1626,39], - _ay_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),1649,31], - _az_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),1650,31], - _aA_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),1830,8], - _a4_= - [0, - [11, - caml_string_of_jsbytes("bad input: format type mismatch between "), - [3,0,[11,caml_string_of_jsbytes(" and "),[3,0,0]]]], - caml_string_of_jsbytes - ("bad input: format type mismatch between %S and %S")], - _a3_= - [0, - [11, - caml_string_of_jsbytes("bad input: format type mismatch between "), - [3,0,[11,caml_string_of_jsbytes(" and "),[3,0,0]]]], - caml_string_of_jsbytes - ("bad input: format type mismatch between %S and %S")], - _aG_= - [0, - [11, - caml_string_of_jsbytes("invalid format "), - [3, - 0, - [11, - caml_string_of_jsbytes(": at character number "), - [4,0,0,0,[11,caml_string_of_jsbytes(", duplicate flag "),[1,0]]]]]], - caml_string_of_jsbytes - ("invalid format %S: at character number %d, duplicate flag %C")], - _aH_=[0,1,0], - _aI_=[0,0], - _aJ_=[1,0], - _aK_=[1,1], - _aM_=[1,1], - _aL_=[1,1], - _aQ_= - [0, - [11, - caml_string_of_jsbytes("invalid format "), - [3, - 0, - [11, - caml_string_of_jsbytes(": at character number "), - [4, - 0, - 0, - 0, - [11, - caml_string_of_jsbytes(", flag "), + ", flag ", [1, [11, - caml_string_of_jsbytes(" is only allowed after the '"), - [12, - 37, - [11, - caml_string_of_jsbytes("', before padding and precision"), - 0]]]]]]]]], - caml_string_of_jsbytes - ("invalid format %S: at character number %d, flag %C is only allowed after the '%%', before padding and precision")], - _aN_= + " is only allowed after the '", + [12, 37, [11, "', before padding and precision", 0]]]]]]]]], + "invalid format %S: at character number %d, flag %C is only allowed after the '%%', before padding and precision"], + _J_ = [0, [11, - caml_string_of_jsbytes("invalid format "), + cst_invalid_format, [3, 0, [11, - caml_string_of_jsbytes(": at character number "), + cst_at_character_number, [4, 0, 0, 0, - [11, - caml_string_of_jsbytes(', invalid conversion "'), - [12,37,[0,[12,34,0]]]]]]]], - caml_string_of_jsbytes - ('invalid format %S: at character number %d, invalid conversion "%%%c"')], - _aO_=[0,0], - _aP_=[0,0], - _aR_=[0,[12,64,0]], - _aS_=[0,caml_string_of_jsbytes("@ "),1,0], - _aT_=[0,caml_string_of_jsbytes("@,"),0,0], - _aU_=[2,60], - _aV_= + [11, ', invalid conversion "', [12, 37, [0, [12, 34, 0]]]]]]]], + 'invalid format %S: at character number %d, invalid conversion "%%%c"'], + _K_ = [0, 0], + cst_padding$0 = "`padding'", + _L_ = [0, 0], + cst_precision$2 = "`precision'", + _N_ = [0, [12, 64, 0]], + _O_ = [0, "@ ", 1, 0], + _P_ = [0, "@,", 0, 0], + _Q_ = [2, 60], + _R_ = [0, [11, - caml_string_of_jsbytes("invalid format "), + cst_invalid_format, [3, 0, [11, - caml_string_of_jsbytes(": '"), + ": '", [12, 37, [11, - caml_string_of_jsbytes - ("' alone is not accepted in character sets, use "), + "' alone is not accepted in character sets, use ", [12, 37, [12, 37, - [11, - caml_string_of_jsbytes(" instead at position "), - [4,0,0,0,[12,46,0]]]]]]]]]], - caml_string_of_jsbytes - ("invalid format %S: '%%' alone is not accepted in character sets, use %%%% instead at position %d.")], - _aW_= + [11, " instead at position ", [4, 0, 0, 0, [12, 46, 0]]]]]]]]]], + "invalid format %S: '%%' alone is not accepted in character sets, use %%%% instead at position %d."], + _S_ = [0, [11, - caml_string_of_jsbytes("invalid format "), + cst_invalid_format, [3, 0, [11, - caml_string_of_jsbytes(": integer "), + ": integer ", + [4, 0, 0, 0, [11, " is greater than the limit ", [4, 0, 0, 0, 0]]]]]], + "invalid format %S: integer %d is greater than the limit %d"], + cst_digit = "digit", + _T_ = [0, cst_camlinternalFormat_ml, 2837, 11], + _U_ = + [0, + [11, + cst_invalid_format, + [3, + 0, + [11, + ': unclosed sub-format, expected "', + [12, 37, [0, [11, '" at character number ', [4, 0, 0, 0, 0]]]]]]], + 'invalid format %S: unclosed sub-format, expected "%%%c" at character number %d'], + cst_character = "character ')'", + cst_character$0 = "character '}'", + _V_ = [0, cst_camlinternalFormat_ml, 2899, 34], + _W_ = [0, cst_camlinternalFormat_ml, 2935, 28], + _X_ = [0, cst_camlinternalFormat_ml, 2957, 11], + _Y_ = + [0, + [11, + cst_invalid_format, + [3, + 0, + [11, + cst_at_character_number, [4, 0, 0, 0, [11, - caml_string_of_jsbytes(" is greater than the limit "), - [4,0,0,0,0]]]]]], - caml_string_of_jsbytes - ("invalid format %S: integer %d is greater than the limit %d")], - _aX_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),2837,11], - _aY_= - [0, - [11, - caml_string_of_jsbytes("invalid format "), - [3, - 0, - [11, - caml_string_of_jsbytes(': unclosed sub-format, expected "'), - [12, - 37, - [0, - [11,caml_string_of_jsbytes('" at character number '),[4,0,0,0,0]]]]]]], - caml_string_of_jsbytes - ('invalid format %S: unclosed sub-format, expected "%%%c" at character number %d')], - _aZ_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),2899,34], - _a0_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),2935,28], - _a1_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),2957,11], - _a2_= - [0, - [11, - caml_string_of_jsbytes("invalid format "), - [3, - 0, - [11, - caml_string_of_jsbytes(": at character number "), - [4, - 0, - 0, - 0, - [11, - caml_string_of_jsbytes(", "), + cst$44, [2, 0, [11, - caml_string_of_jsbytes(" is incompatible with '"), - [0,[11,caml_string_of_jsbytes("' in sub-format "),[3,0,0]]]]]]]]]], - caml_string_of_jsbytes - ("invalid format %S: at character number %d, %s is incompatible with '%c' in sub-format %S")], - _aF_= + " is incompatible with '", + [0, [11, "' in sub-format ", [3, 0, 0]]]]]]]]]], + "invalid format %S: at character number %d, %s is incompatible with '%c' in sub-format %S"], + _B_ = [0, [11, - caml_string_of_jsbytes("invalid format "), + cst_invalid_format, [3, 0, [11, - caml_string_of_jsbytes(": at character number "), + cst_at_character_number, + [4, 0, 0, 0, [11, cst$44, [2, 0, [11, " expected, read ", [1, 0]]]]]]]], + "invalid format %S: at character number %d, %s expected, read %C"], + _A_ = + [0, + [11, + cst_invalid_format, + [3, + 0, + [11, + cst_at_character_number, + [4, 0, 0, 0, [11, ", '", [0, [11, "' without ", [2, 0, 0]]]]]]]], + "invalid format %S: at character number %d, '%c' without %s"], + cst_non_zero_widths_are_unsupp = + "non-zero widths are unsupported for %c conversions", + cst_unexpected_end_of_format = "unexpected end of format", + _z_ = + [0, + [11, + cst_invalid_format, + [3, + 0, + [11, cst_at_character_number, [4, 0, 0, 0, [11, cst$44, [2, 0, 0]]]]]], + "invalid format %S: at character number %d, %s"], + _y_ = + [0, + [11, "invalid box description ", [3, 0, 0]], + "invalid box description %S"], + _x_ = [0, 0, 4], + cst_nan = "nan", + cst_neg_infinity = "neg_infinity", + cst_infinity = "infinity", + _r_ = [0, 103], + cst_nd$0 = "%+nd", + cst_nd$1 = "% nd", + cst_ni$1 = "%+ni", + cst_ni$2 = "% ni", + cst_nx = "%nx", + cst_nx$0 = "%#nx", + cst_nX = "%nX", + cst_nX$0 = "%#nX", + cst_no = "%no", + cst_no$0 = "%#no", + cst_nd = "%nd", + cst_ni$0 = cst_ni$3, + cst_nu = "%nu", + cst_ld$0 = "%+ld", + cst_ld$1 = "% ld", + cst_li$1 = "%+li", + cst_li$2 = "% li", + cst_lx = "%lx", + cst_lx$0 = "%#lx", + cst_lX = "%lX", + cst_lX$0 = "%#lX", + cst_lo = "%lo", + cst_lo$0 = "%#lo", + cst_ld = "%ld", + cst_li$0 = cst_li$3, + cst_lu = "%lu", + cst_Ld$0 = "%+Ld", + cst_Ld$1 = "% Ld", + cst_Li$1 = "%+Li", + cst_Li$2 = "% Li", + cst_Lx = "%Lx", + cst_Lx$0 = "%#Lx", + cst_LX = "%LX", + cst_LX$0 = "%#LX", + cst_Lo = "%Lo", + cst_Lo$0 = "%#Lo", + cst_Ld = "%Ld", + cst_Li$0 = cst_Li$3, + cst_Lu = "%Lu", + cst_d$0 = "%+d", + cst_d$1 = "% d", + cst_i$1 = "%+i", + cst_i$2 = "% i", + cst_x = "%x", + cst_x$0 = "%#x", + cst_X = "%X", + cst_X$0 = "%#X", + cst_o = "%o", + cst_o$0 = "%#o", + cst_d = "%d", + cst_i$0 = cst_i$3, + cst_u = cst_u$0, + cst_0c = "0c", + _a_ = [0, 0, 0], + cst_CamlinternalFormat_Type_mi = "CamlinternalFormat.Type_mismatch"; + function create_char_set(param){return caml_call2(Stdlib_Bytes[1], 32, 0);} + function add_in_char_set(char_set, c){ + var + str_ind = c >>> 3 | 0, + mask = 1 << (c & 7), + _dU_ = runtime.caml_bytes_get(char_set, str_ind) | mask; + return caml_bytes_set(char_set, str_ind, caml_call1(Stdlib[29], _dU_)); + } + function freeze_char_set(char_set){ + return caml_call1(Stdlib_Bytes[6], char_set); + } + function rev_char_set(char_set){ + var char_set$0 = create_char_set(0), i = 0; + for(;;){ + var _dS_ = caml_string_get(char_set, i) ^ 255; + caml_bytes_set(char_set$0, i, caml_call1(Stdlib[29], _dS_)); + var _dT_ = i + 1 | 0; + if(31 === i) return caml_call1(Stdlib_Bytes[48], char_set$0); + var i = _dT_; + } + } + function is_in_char_set(char_set, c){ + var str_ind = c >>> 3 | 0, mask = 1 << (c & 7); + return 0 !== (caml_string_get(char_set, str_ind) & mask) ? 1 : 0; + } + function pad_of_pad_opt(pad_opt){ + if(! pad_opt) return 0; + var width = pad_opt[1]; + return [0, 1, width]; + } + function param_format_of_ignored_format(ign, fmt){ + if(typeof ign === "number") + switch(ign){ + case 0: + return [0, [0, fmt]]; + case 1: + return [0, [1, fmt]]; + case 2: + return [0, [19, fmt]]; + default: return [0, [22, fmt]]; + } + switch(ign[0]){ + case 0: + var pad_opt = ign[1]; return [0, [2, pad_of_pad_opt(pad_opt), fmt]]; + case 1: + var pad_opt$0 = ign[1]; + return [0, [3, pad_of_pad_opt(pad_opt$0), fmt]]; + case 2: + var pad_opt$1 = ign[2], iconv = ign[1]; + return [0, [4, iconv, pad_of_pad_opt(pad_opt$1), 0, fmt]]; + case 3: + var pad_opt$2 = ign[2], iconv$0 = ign[1]; + return [0, [5, iconv$0, pad_of_pad_opt(pad_opt$2), 0, fmt]]; + case 4: + var pad_opt$3 = ign[2], iconv$1 = ign[1]; + return [0, [6, iconv$1, pad_of_pad_opt(pad_opt$3), 0, fmt]]; + case 5: + var pad_opt$4 = ign[2], iconv$2 = ign[1]; + return [0, [7, iconv$2, pad_of_pad_opt(pad_opt$4), 0, fmt]]; + case 6: + var prec_opt = ign[2], pad_opt$5 = ign[1]; + if(prec_opt) + var ndec = prec_opt[1], _dR_ = [0, ndec]; + else + var _dR_ = 0; + return [0, [8, _a_, pad_of_pad_opt(pad_opt$5), _dR_, fmt]]; + case 7: + var pad_opt$6 = ign[1]; + return [0, [9, pad_of_pad_opt(pad_opt$6), fmt]]; + case 8: + var fmtty = ign[2], pad_opt$7 = ign[1]; + return [0, [13, pad_opt$7, fmtty, fmt]]; + case 9: + var fmtty$0 = ign[2], pad_opt$8 = ign[1]; + return [0, [14, pad_opt$8, fmtty$0, fmt]]; + case 10: + var char_set = ign[2], width_opt = ign[1]; + return [0, [20, width_opt, char_set, fmt]]; + default: var counter = ign[1]; return [0, [21, counter, fmt]]; + } + } + function default_float_precision(fconv){return 5 === fconv[2] ? 12 : -6;} + function buffer_create(init_size){ + return [0, 0, caml_create_bytes(init_size)]; + } + function buffer_check_size(buf, overhead){ + var + len = runtime.caml_ml_bytes_length(buf[2]), + min_len = buf[1] + overhead | 0, + _dP_ = len < min_len ? 1 : 0; + if(_dP_){ + var + new_len = caml_call2(Stdlib_Int[11], len * 2 | 0, min_len), + new_str = caml_create_bytes(new_len); + caml_call5(Stdlib_Bytes[11], buf[2], 0, new_str, 0, len); + buf[2] = new_str; + var _dQ_ = 0; + } + else + var _dQ_ = _dP_; + return _dQ_; + } + function buffer_add_char(buf, c){ + buffer_check_size(buf, 1); + caml_bytes_set(buf[2], buf[1], c); + buf[1] = buf[1] + 1 | 0; + return 0; + } + function buffer_add_string(buf, s){ + var str_len = caml_ml_string_length(s); + buffer_check_size(buf, str_len); + caml_call5(Stdlib_String[48], s, 0, buf[2], buf[1], str_len); + buf[1] = buf[1] + str_len | 0; + return 0; + } + function buffer_contents(buf){ + return caml_call3(Stdlib_Bytes[8], buf[2], 0, buf[1]); + } + function char_of_iconv(iconv){ + switch(iconv){ + case 6: + case 7: + return 120; + case 8: + case 9: + return 88; + case 10: + case 11: + return 111; + case 12: + case 15: + return 117; + case 0: + case 1: + case 2: + case 13: + return 100; + default: return 105; + } + } + function char_of_fconv(opt, fconv){ + if(opt) var sth = opt[1], cF = sth; else var cF = 70; + switch(fconv[2]){ + case 0: + return 102; + case 1: + return 101; + case 2: + return 69; + case 3: + return 103; + case 4: + return 71; + case 5: + return cF; + case 6: + return 104; + case 7: + return 72; + default: return 70; + } + } + function bprint_padty(buf, padty){ + switch(padty){ + case 0: + return buffer_add_char(buf, 45); + case 1: + return 0; + default: return buffer_add_char(buf, 48); + } + } + function bprint_ignored_flag(buf, ign_flag){ + return ign_flag ? buffer_add_char(buf, 95) : ign_flag; + } + function bprint_pad_opt(buf, pad_opt){ + if(! pad_opt) return 0; + var width = pad_opt[1]; + return buffer_add_string(buf, caml_call1(Stdlib_Int[12], width)); + } + function bprint_padding(buf, pad){ + if(typeof pad === "number") return 0; + if(0 === pad[0]){ + var n = pad[2], padty = pad[1]; + bprint_padty(buf, padty); + return buffer_add_string(buf, caml_call1(Stdlib_Int[12], n)); + } + var padty$0 = pad[1]; + bprint_padty(buf, padty$0); + return buffer_add_char(buf, 42); + } + function bprint_precision(buf, prec){ + if(typeof prec === "number") + return prec ? buffer_add_string(buf, cst) : 0; + var n = prec[1]; + buffer_add_char(buf, 46); + return buffer_add_string(buf, caml_call1(Stdlib_Int[12], n)); + } + function bprint_iconv_flag(buf, iconv){ + switch(iconv){ + case 1: + case 4: + return buffer_add_char(buf, 43); + case 2: + case 5: + return buffer_add_char(buf, 32); + case 7: + case 9: + case 11: + case 13: + case 14: + case 15: + return buffer_add_char(buf, 35); + default: return 0; + } + } + function bprint_altint_fmt(buf, ign_flag, iconv, pad, prec, c){ + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag); + bprint_iconv_flag(buf, iconv); + bprint_padding(buf, pad); + bprint_precision(buf, prec); + buffer_add_char(buf, c); + return buffer_add_char(buf, char_of_iconv(iconv)); + } + function bprint_fconv_flag(buf, fconv){ + switch(fconv[1]){ + case 0: break; + case 1: + buffer_add_char(buf, 43); break; + default: buffer_add_char(buf, 32); + } + return 8 <= fconv[2] ? buffer_add_char(buf, 35) : 0; + } + function string_of_formatting_lit(formatting_lit){ + if(typeof formatting_lit === "number") + switch(formatting_lit){ + case 0: + return cst$0; + case 1: + return cst$1; + case 2: + return cst$2; + case 3: + return cst$3; + case 4: + return cst$4; + case 5: + return cst$5; + default: return cst$6; + } + switch(formatting_lit[0]){ + case 0: + var str = formatting_lit[1]; return str; + case 1: + var str$0 = formatting_lit[1]; return str$0; + default: + var c = formatting_lit[1], _dO_ = caml_call2(Stdlib_String[1], 1, c); + return caml_call2(Stdlib[28], cst$7, _dO_); + } + } + function bprint_char_literal(buf, chr){ + return 37 === chr + ? buffer_add_string(buf, cst$8) + : buffer_add_char(buf, chr); + } + function bprint_string_literal(buf, str){ + var _dM_ = caml_ml_string_length(str) - 1 | 0, _dL_ = 0; + if(_dM_ >= 0){ + var i = _dL_; + for(;;){ + bprint_char_literal(buf, caml_string_get(str, i)); + var _dN_ = i + 1 | 0; + if(_dM_ !== i){var i = _dN_; continue;} + break; + } + } + return 0; + } + function bprint_fmtty(buf, fmtty){ + var fmtty$0 = fmtty; + for(;;){ + if(typeof fmtty$0 === "number") return 0; + switch(fmtty$0[0]){ + case 0: + var fmtty$1 = fmtty$0[1]; + buffer_add_string(buf, cst_c); + var fmtty$0 = fmtty$1; + continue; + case 1: + var fmtty$2 = fmtty$0[1]; + buffer_add_string(buf, cst_s); + var fmtty$0 = fmtty$2; + continue; + case 2: + var fmtty$3 = fmtty$0[1]; + buffer_add_string(buf, cst_i); + var fmtty$0 = fmtty$3; + continue; + case 3: + var fmtty$4 = fmtty$0[1]; + buffer_add_string(buf, cst_li); + var fmtty$0 = fmtty$4; + continue; + case 4: + var fmtty$5 = fmtty$0[1]; + buffer_add_string(buf, cst_ni); + var fmtty$0 = fmtty$5; + continue; + case 5: + var fmtty$6 = fmtty$0[1]; + buffer_add_string(buf, cst_Li); + var fmtty$0 = fmtty$6; + continue; + case 6: + var fmtty$7 = fmtty$0[1]; + buffer_add_string(buf, cst_f); + var fmtty$0 = fmtty$7; + continue; + case 7: + var fmtty$8 = fmtty$0[1]; + buffer_add_string(buf, cst_B); + var fmtty$0 = fmtty$8; + continue; + case 8: + var fmtty$9 = fmtty$0[2], sub_fmtty = fmtty$0[1]; + buffer_add_string(buf, cst$9); + bprint_fmtty(buf, sub_fmtty); + buffer_add_string(buf, cst$10); + var fmtty$0 = fmtty$9; + continue; + case 9: + var fmtty$10 = fmtty$0[3], sub_fmtty$0 = fmtty$0[1]; + buffer_add_string(buf, cst$11); + bprint_fmtty(buf, sub_fmtty$0); + buffer_add_string(buf, cst$12); + var fmtty$0 = fmtty$10; + continue; + case 10: + var fmtty$11 = fmtty$0[1]; + buffer_add_string(buf, cst_a); + var fmtty$0 = fmtty$11; + continue; + case 11: + var fmtty$12 = fmtty$0[1]; + buffer_add_string(buf, cst_t); + var fmtty$0 = fmtty$12; + continue; + case 12: + var fmtty$13 = fmtty$0[1]; + buffer_add_string(buf, cst$13); + var fmtty$0 = fmtty$13; + continue; + case 13: + var fmtty$14 = fmtty$0[1]; + buffer_add_string(buf, cst_r); + var fmtty$0 = fmtty$14; + continue; + default: + var fmtty$15 = fmtty$0[1]; + buffer_add_string(buf, cst_r$0); + var fmtty$0 = fmtty$15; + continue; + } + } + } + function int_of_custom_arity(param){ + if(! param) return 0; + var x = param[1]; + return 1 + int_of_custom_arity(x) | 0; + } + function string_of_fmt(fmt){ + var buf = buffer_create(16); + function fmtiter(fmt, ign_flag){ + var fmt$0 = fmt, ign_flag$0 = ign_flag; + a: + for(;;){ + if(typeof fmt$0 === "number") return 0; + switch(fmt$0[0]){ + case 0: + var rest = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + buffer_add_char(buf, 99); + var fmt$0 = rest, ign_flag$0 = 0; + continue; + case 1: + var rest$0 = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + buffer_add_char(buf, 67); + var fmt$0 = rest$0, ign_flag$0 = 0; + continue; + case 2: + var rest$1 = fmt$0[2], pad = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + bprint_padding(buf, pad); + buffer_add_char(buf, 115); + var fmt$0 = rest$1, ign_flag$0 = 0; + continue; + case 3: + var rest$2 = fmt$0[2], pad$0 = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + bprint_padding(buf, pad$0); + buffer_add_char(buf, 83); + var fmt$0 = rest$2, ign_flag$0 = 0; + continue; + case 4: + var + rest$3 = fmt$0[4], + prec = fmt$0[3], + pad$1 = fmt$0[2], + iconv = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + bprint_iconv_flag(buf, iconv); + bprint_padding(buf, pad$1); + bprint_precision(buf, prec); + buffer_add_char(buf, char_of_iconv(iconv)); + var fmt$0 = rest$3, ign_flag$0 = 0; + continue; + case 5: + var + rest$4 = fmt$0[4], + prec$0 = fmt$0[3], + pad$2 = fmt$0[2], + iconv$0 = fmt$0[1]; + bprint_altint_fmt(buf, ign_flag$0, iconv$0, pad$2, prec$0, 108); + var fmt$0 = rest$4, ign_flag$0 = 0; + continue; + case 6: + var + rest$5 = fmt$0[4], + prec$1 = fmt$0[3], + pad$3 = fmt$0[2], + iconv$1 = fmt$0[1]; + bprint_altint_fmt(buf, ign_flag$0, iconv$1, pad$3, prec$1, 110); + var fmt$0 = rest$5, ign_flag$0 = 0; + continue; + case 7: + var + rest$6 = fmt$0[4], + prec$2 = fmt$0[3], + pad$4 = fmt$0[2], + iconv$2 = fmt$0[1]; + bprint_altint_fmt(buf, ign_flag$0, iconv$2, pad$4, prec$2, 76); + var fmt$0 = rest$6, ign_flag$0 = 0; + continue; + case 8: + var + rest$7 = fmt$0[4], + prec$3 = fmt$0[3], + pad$5 = fmt$0[2], + fconv = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + bprint_fconv_flag(buf, fconv); + bprint_padding(buf, pad$5); + bprint_precision(buf, prec$3); + buffer_add_char(buf, char_of_fconv(0, fconv)); + var fmt$0 = rest$7, ign_flag$0 = 0; + continue; + case 9: + var rest$8 = fmt$0[2], pad$6 = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + bprint_padding(buf, pad$6); + buffer_add_char(buf, 66); + var fmt$0 = rest$8, ign_flag$0 = 0; + continue; + case 10: + var rest$9 = fmt$0[1]; + buffer_add_string(buf, cst$14); + var fmt$0 = rest$9; + continue; + case 11: + var rest$10 = fmt$0[2], str = fmt$0[1]; + bprint_string_literal(buf, str); + var fmt$0 = rest$10; + continue; + case 12: + var rest$11 = fmt$0[2], chr = fmt$0[1]; + bprint_char_literal(buf, chr); + var fmt$0 = rest$11; + continue; + case 13: + var rest$12 = fmt$0[3], fmtty = fmt$0[2], pad_opt = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + bprint_pad_opt(buf, pad_opt); + buffer_add_char(buf, 123); + bprint_fmtty(buf, fmtty); + buffer_add_char(buf, 37); + buffer_add_char(buf, 125); + var fmt$0 = rest$12, ign_flag$0 = 0; + continue; + case 14: + var rest$13 = fmt$0[3], fmtty$0 = fmt$0[2], pad_opt$0 = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + bprint_pad_opt(buf, pad_opt$0); + buffer_add_char(buf, 40); + bprint_fmtty(buf, fmtty$0); + buffer_add_char(buf, 37); + buffer_add_char(buf, 41); + var fmt$0 = rest$13, ign_flag$0 = 0; + continue; + case 15: + var rest$14 = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + buffer_add_char(buf, 97); + var fmt$0 = rest$14, ign_flag$0 = 0; + continue; + case 16: + var rest$15 = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + buffer_add_char(buf, 116); + var fmt$0 = rest$15, ign_flag$0 = 0; + continue; + case 17: + var rest$16 = fmt$0[2], fmting_lit = fmt$0[1]; + bprint_string_literal(buf, string_of_formatting_lit(fmting_lit)); + var fmt$0 = rest$16; + continue; + case 18: + var rest$17 = fmt$0[2], fmting_gen = fmt$0[1]; + if(0 === fmting_gen[0]){ + var str$0 = fmting_gen[1][2]; + buffer_add_string(buf, cst$15); + buffer_add_string(buf, str$0); + } + else{ + var str$1 = fmting_gen[1][2]; + buffer_add_string(buf, cst$16); + buffer_add_string(buf, str$1); + } + var fmt$0 = rest$17; + continue; + case 19: + var rest$18 = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + buffer_add_char(buf, 114); + var fmt$0 = rest$18, ign_flag$0 = 0; + continue; + case 20: + var rest$19 = fmt$0[3], char_set = fmt$0[2], width_opt = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + bprint_pad_opt(buf, width_opt); + var + print_char = + function(buf, i){ + var c = caml_call1(Stdlib[29], i); + return 37 === c + ? (buffer_add_char(buf, 37), buffer_add_char(buf, 37)) + : 64 + === c + ? (buffer_add_char(buf, 37), buffer_add_char(buf, 64)) + : buffer_add_char(buf, c); + }; + buffer_add_char(buf, 91); + var + set = + is_in_char_set(char_set, 0) + ? (buffer_add_char(buf, 94), rev_char_set(char_set)) + : char_set, + is_alone$0 = + function(set){ + function is_alone(c){ + var + after = caml_call1(Stdlib_Char[1], c + 1 | 0), + before = caml_call1(Stdlib_Char[1], c - 1 | 0), + _dH_ = is_in_char_set(set, c); + if(_dH_) + var + _dI_ = is_in_char_set(set, before), + _dJ_ = _dI_ ? is_in_char_set(set, after) : _dI_, + _dK_ = 1 - _dJ_; + else + var _dK_ = _dH_; + return _dK_; + } + return is_alone; + }, + is_alone = is_alone$0(set); + if(is_alone(93)) buffer_add_char(buf, 93); + var i = 1; + b: + for(;;){ + if(i < 256){ + if(! is_in_char_set(set, caml_call1(Stdlib[29], i))){var i$0 = i + 1 | 0, i = i$0; continue;} + var switcher = caml_call1(Stdlib[29], i) - 45 | 0, switch$0 = 0; + if(48 < switcher >>> 0) + if(210 <= switcher) print_char(buf, 255); else switch$0 = 1; + else{ + if(46 < switcher - 1 >>> 0){ + var i$2 = i + 1 | 0, i = i$2; + continue; + } + switch$0 = 1; + } + if(switch$0){ + var i$1 = i + 1 | 0; + if(! is_in_char_set(set, caml_call1(Stdlib[29], i$1))){ + print_char(buf, i$1 - 1 | 0); + var i$6 = i$1 + 1 | 0, i = i$6; + continue; + } + var + switcher$0 = caml_call1(Stdlib[29], i$1) - 45 | 0, + switch$1 = 0; + if(48 < switcher$0 >>> 0){ + if(210 <= switcher$0){ + print_char(buf, 254); + print_char(buf, 255); + switch$1 = 1; + } + } + else if + (46 < switcher$0 - 1 >>> 0 + && ! is_in_char_set(set, caml_call1(Stdlib[29], i$1 + 1 | 0))){ + print_char(buf, i$1 - 1 | 0); + var i$5 = i$1 + 1 | 0, i = i$5; + continue; + } + if(! switch$1){ + if(! is_in_char_set(set, caml_call1(Stdlib[29], i$1 + 1 | 0))){ + print_char(buf, i$1 - 1 | 0); + print_char(buf, i$1); + var i$4 = i$1 + 2 | 0, i = i$4; + continue; + } + var j = i$1 + 2 | 0, i$3 = i$1 - 1 | 0, j$0 = j; + for(;;){ + if + (256 !== j$0 + && is_in_char_set(set, caml_call1(Stdlib[29], j$0))){var j$1 = j$0 + 1 | 0, j$0 = j$1; continue;} + print_char(buf, i$3); + print_char(buf, 45); + print_char(buf, j$0 - 1 | 0); + if(j$0 < 256){var i$7 = j$0 + 1 | 0, i = i$7; continue b;} + break; + } + } + } + } + if(is_alone(45)) buffer_add_char(buf, 45); + buffer_add_char(buf, 93); + var fmt$0 = rest$19, ign_flag$0 = 0; + continue a; + } + case 21: + var rest$20 = fmt$0[2], counter = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + switch(counter){ + case 0: + var _dD_ = 108; break; + case 1: + var _dD_ = 110; break; + default: var _dD_ = 78; + } + buffer_add_char(buf, _dD_); + var fmt$0 = rest$20, ign_flag$0 = 0; + continue; + case 22: + var rest$21 = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + bprint_string_literal(buf, cst_0c); + var fmt$0 = rest$21, ign_flag$0 = 0; + continue; + case 23: + var + rest$22 = fmt$0[2], + ign = fmt$0[1], + fmt$1 = param_format_of_ignored_format(ign, rest$22)[1], + fmt$0 = fmt$1, + ign_flag$0 = 1; + continue; + default: + var + rest$23 = fmt$0[3], + arity = fmt$0[1], + _dF_ = int_of_custom_arity(arity), + _dE_ = 1; + if(_dF_ >= 1){ + var i$8 = _dE_; + for(;;){ + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + buffer_add_char(buf, 63); + var _dG_ = i$8 + 1 | 0; + if(_dF_ !== i$8){var i$8 = _dG_; continue;} + break; + } + } + var fmt$0 = rest$23, ign_flag$0 = 0; + continue; + } + } + } + fmtiter(fmt, 0); + return buffer_contents(buf); + } + function symm(param){ + if(typeof param === "number") return 0; + switch(param[0]){ + case 0: + var rest = param[1]; return [0, symm(rest)]; + case 1: + var rest$0 = param[1]; return [1, symm(rest$0)]; + case 2: + var rest$1 = param[1]; return [2, symm(rest$1)]; + case 3: + var rest$2 = param[1]; return [3, symm(rest$2)]; + case 4: + var rest$3 = param[1]; return [4, symm(rest$3)]; + case 5: + var rest$4 = param[1]; return [5, symm(rest$4)]; + case 6: + var rest$5 = param[1]; return [6, symm(rest$5)]; + case 7: + var rest$6 = param[1]; return [7, symm(rest$6)]; + case 8: + var rest$7 = param[2], ty = param[1]; return [8, ty, symm(rest$7)]; + case 9: + var rest$8 = param[3], ty2 = param[2], ty1 = param[1]; + return [9, ty2, ty1, symm(rest$8)]; + case 10: + var rest$9 = param[1]; return [10, symm(rest$9)]; + case 11: + var rest$10 = param[1]; return [11, symm(rest$10)]; + case 12: + var rest$11 = param[1]; return [12, symm(rest$11)]; + case 13: + var rest$12 = param[1]; return [13, symm(rest$12)]; + default: var rest$13 = param[1]; return [14, symm(rest$13)]; + } + } + function fmtty_rel_det(param){ + if(typeof param !== "number") + switch(param[0]){ + case 0: + var + rest = param[1], + match = fmtty_rel_det(rest), + de = match[4], + ed = match[3], + af = match[2], + fa = match[1], + _di_ = function(param){caml_call1(af, 0); return 0;}; + return [0, + function(param){caml_call1(fa, 0); return 0;}, + _di_, + ed, + de]; + case 1: + var + rest$0 = param[1], + match$0 = fmtty_rel_det(rest$0), + de$0 = match$0[4], + ed$0 = match$0[3], + af$0 = match$0[2], + fa$0 = match$0[1], + _dj_ = function(param){caml_call1(af$0, 0); return 0;}; + return [0, + function(param){caml_call1(fa$0, 0); return 0;}, + _dj_, + ed$0, + de$0]; + case 2: + var + rest$1 = param[1], + match$1 = fmtty_rel_det(rest$1), + de$1 = match$1[4], + ed$1 = match$1[3], + af$1 = match$1[2], + fa$1 = match$1[1], + _dk_ = function(param){caml_call1(af$1, 0); return 0;}; + return [0, + function(param){caml_call1(fa$1, 0); return 0;}, + _dk_, + ed$1, + de$1]; + case 3: + var + rest$2 = param[1], + match$2 = fmtty_rel_det(rest$2), + de$2 = match$2[4], + ed$2 = match$2[3], + af$2 = match$2[2], + fa$2 = match$2[1], + _dl_ = function(param){caml_call1(af$2, 0); return 0;}; + return [0, + function(param){caml_call1(fa$2, 0); return 0;}, + _dl_, + ed$2, + de$2]; + case 4: + var + rest$3 = param[1], + match$3 = fmtty_rel_det(rest$3), + de$3 = match$3[4], + ed$3 = match$3[3], + af$3 = match$3[2], + fa$3 = match$3[1], + _dm_ = function(param){caml_call1(af$3, 0); return 0;}; + return [0, + function(param){caml_call1(fa$3, 0); return 0;}, + _dm_, + ed$3, + de$3]; + case 5: + var + rest$4 = param[1], + match$4 = fmtty_rel_det(rest$4), + de$4 = match$4[4], + ed$4 = match$4[3], + af$4 = match$4[2], + fa$4 = match$4[1], + _dn_ = function(param){caml_call1(af$4, 0); return 0;}; + return [0, + function(param){caml_call1(fa$4, 0); return 0;}, + _dn_, + ed$4, + de$4]; + case 6: + var + rest$5 = param[1], + match$5 = fmtty_rel_det(rest$5), + de$5 = match$5[4], + ed$5 = match$5[3], + af$5 = match$5[2], + fa$5 = match$5[1], + _do_ = function(param){caml_call1(af$5, 0); return 0;}; + return [0, + function(param){caml_call1(fa$5, 0); return 0;}, + _do_, + ed$5, + de$5]; + case 7: + var + rest$6 = param[1], + match$6 = fmtty_rel_det(rest$6), + de$6 = match$6[4], + ed$6 = match$6[3], + af$6 = match$6[2], + fa$6 = match$6[1], + _dp_ = function(param){caml_call1(af$6, 0); return 0;}; + return [0, + function(param){caml_call1(fa$6, 0); return 0;}, + _dp_, + ed$6, + de$6]; + case 8: + var + rest$7 = param[2], + match$7 = fmtty_rel_det(rest$7), + de$7 = match$7[4], + ed$7 = match$7[3], + af$7 = match$7[2], + fa$7 = match$7[1], + _dq_ = function(param){caml_call1(af$7, 0); return 0;}; + return [0, + function(param){caml_call1(fa$7, 0); return 0;}, + _dq_, + ed$7, + de$7]; + case 9: + var + rest$8 = param[3], + ty2 = param[2], + ty1 = param[1], + match$8 = fmtty_rel_det(rest$8), + de$8 = match$8[4], + ed$8 = match$8[3], + af$8 = match$8[2], + fa$8 = match$8[1], + ty = trans(symm(ty1), ty2), + match$9 = fmtty_rel_det(ty), + jd = match$9[4], + dj = match$9[3], + ga = match$9[2], + ag = match$9[1], + _dr_ = + function(param){caml_call1(jd, 0); caml_call1(de$8, 0); return 0;}, + _ds_ = + function(param){caml_call1(ed$8, 0); caml_call1(dj, 0); return 0;}, + _dt_ = + function(param){caml_call1(ga, 0); caml_call1(af$8, 0); return 0;}; + return [0, + function(param){ + caml_call1(fa$8, 0); + caml_call1(ag, 0); + return 0; + }, + _dt_, + _ds_, + _dr_]; + case 10: + var + rest$9 = param[1], + match$10 = fmtty_rel_det(rest$9), + de$9 = match$10[4], + ed$9 = match$10[3], + af$9 = match$10[2], + fa$9 = match$10[1], + _du_ = function(param){caml_call1(af$9, 0); return 0;}; + return [0, + function(param){caml_call1(fa$9, 0); return 0;}, + _du_, + ed$9, + de$9]; + case 11: + var + rest$10 = param[1], + match$11 = fmtty_rel_det(rest$10), + de$10 = match$11[4], + ed$10 = match$11[3], + af$10 = match$11[2], + fa$10 = match$11[1], + _dv_ = function(param){caml_call1(af$10, 0); return 0;}; + return [0, + function(param){caml_call1(fa$10, 0); return 0;}, + _dv_, + ed$10, + de$10]; + case 12: + var + rest$11 = param[1], + match$12 = fmtty_rel_det(rest$11), + de$11 = match$12[4], + ed$11 = match$12[3], + af$11 = match$12[2], + fa$11 = match$12[1], + _dw_ = function(param){caml_call1(af$11, 0); return 0;}; + return [0, + function(param){caml_call1(fa$11, 0); return 0;}, + _dw_, + ed$11, + de$11]; + case 13: + var + rest$12 = param[1], + match$13 = fmtty_rel_det(rest$12), + de$12 = match$13[4], + ed$12 = match$13[3], + af$12 = match$13[2], + fa$12 = match$13[1], + _dx_ = function(param){caml_call1(de$12, 0); return 0;}, + _dy_ = function(param){caml_call1(ed$12, 0); return 0;}, + _dz_ = function(param){caml_call1(af$12, 0); return 0;}; + return [0, + function(param){caml_call1(fa$12, 0); return 0;}, + _dz_, + _dy_, + _dx_]; + default: + var + rest$13 = param[1], + match$14 = fmtty_rel_det(rest$13), + de$13 = match$14[4], + ed$13 = match$14[3], + af$13 = match$14[2], + fa$13 = match$14[1], + _dA_ = function(param){caml_call1(de$13, 0); return 0;}, + _dB_ = function(param){caml_call1(ed$13, 0); return 0;}, + _dC_ = function(param){caml_call1(af$13, 0); return 0;}; + return [0, + function(param){caml_call1(fa$13, 0); return 0;}, + _dC_, + _dB_, + _dA_]; + } + function _df_(param){return 0;} + function _dg_(param){return 0;} + function _dh_(param){return 0;} + return [0, function(param){return 0;}, _dh_, _dg_, _df_]; + } + function trans(ty1, ty2){ + var switch$0 = 0; + if(typeof ty1 === "number"){ + if(typeof ty2 === "number") return 0; + switch(ty2[0]){ + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + switch$0 = 3; break; + case 14: + switch$0 = 4; break; + case 8: + switch$0 = 5; break; + case 9: + switch$0 = 6; break; + default: + throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); + } + } + else + switch(ty1[0]){ + case 0: + var rest1 = ty1[1], switch$1 = 0; + if(typeof ty2 === "number") + switch$1 = 1; + else + switch(ty2[0]){ + case 0: + var rest2 = ty2[1]; return [0, trans(rest1, rest2)]; + case 8: + switch$0 = 5; break; + case 9: + switch$0 = 6; break; + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + switch$0 = 3; break; + case 14: + switch$0 = 4; break; + default: switch$1 = 1; + } + if(switch$1) switch$0 = 7; + break; + case 1: + var rest1$0 = ty1[1], switch$2 = 0; + if(typeof ty2 === "number") + switch$2 = 1; + else + switch(ty2[0]){ + case 1: + var rest2$0 = ty2[1]; return [1, trans(rest1$0, rest2$0)]; + case 8: + switch$0 = 5; break; + case 9: + switch$0 = 6; break; + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + switch$0 = 3; break; + case 14: + switch$0 = 4; break; + default: switch$2 = 1; + } + if(switch$2) switch$0 = 7; + break; + case 2: + var rest1$1 = ty1[1], switch$3 = 0; + if(typeof ty2 === "number") + switch$3 = 1; + else + switch(ty2[0]){ + case 2: + var rest2$1 = ty2[1]; return [2, trans(rest1$1, rest2$1)]; + case 8: + switch$0 = 5; break; + case 9: + switch$0 = 6; break; + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + switch$0 = 3; break; + case 14: + switch$0 = 4; break; + default: switch$3 = 1; + } + if(switch$3) switch$0 = 7; + break; + case 3: + var rest1$2 = ty1[1], switch$4 = 0; + if(typeof ty2 === "number") + switch$4 = 1; + else + switch(ty2[0]){ + case 3: + var rest2$2 = ty2[1]; return [3, trans(rest1$2, rest2$2)]; + case 8: + switch$0 = 5; break; + case 9: + switch$0 = 6; break; + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + switch$0 = 3; break; + case 14: + switch$0 = 4; break; + default: switch$4 = 1; + } + if(switch$4) switch$0 = 7; + break; + case 4: + var rest1$3 = ty1[1], switch$5 = 0; + if(typeof ty2 === "number") + switch$5 = 1; + else + switch(ty2[0]){ + case 4: + var rest2$3 = ty2[1]; return [4, trans(rest1$3, rest2$3)]; + case 8: + switch$0 = 5; break; + case 9: + switch$0 = 6; break; + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + switch$0 = 3; break; + case 14: + switch$0 = 4; break; + default: switch$5 = 1; + } + if(switch$5) switch$0 = 7; + break; + case 5: + var rest1$4 = ty1[1], switch$6 = 0; + if(typeof ty2 === "number") + switch$6 = 1; + else + switch(ty2[0]){ + case 5: + var rest2$4 = ty2[1]; return [5, trans(rest1$4, rest2$4)]; + case 8: + switch$0 = 5; break; + case 9: + switch$0 = 6; break; + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + switch$0 = 3; break; + case 14: + switch$0 = 4; break; + default: switch$6 = 1; + } + if(switch$6) switch$0 = 7; + break; + case 6: + var rest1$5 = ty1[1], switch$7 = 0; + if(typeof ty2 === "number") + switch$7 = 1; + else + switch(ty2[0]){ + case 6: + var rest2$5 = ty2[1]; return [6, trans(rest1$5, rest2$5)]; + case 8: + switch$0 = 5; break; + case 9: + switch$0 = 6; break; + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + switch$0 = 3; break; + case 14: + switch$0 = 4; break; + default: switch$7 = 1; + } + if(switch$7) switch$0 = 7; + break; + case 7: + var rest1$6 = ty1[1], switch$8 = 0; + if(typeof ty2 === "number") + switch$8 = 1; + else + switch(ty2[0]){ + case 7: + var rest2$6 = ty2[1]; return [7, trans(rest1$6, rest2$6)]; + case 8: + switch$0 = 5; break; + case 9: + switch$0 = 6; break; + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + switch$0 = 3; break; + case 14: + switch$0 = 4; break; + default: switch$8 = 1; + } + if(switch$8) switch$0 = 7; + break; + case 8: + var rest1$7 = ty1[2], ty1$0 = ty1[1], switch$9 = 0; + if(typeof ty2 === "number") + switch$9 = 1; + else + switch(ty2[0]){ + case 8: + var + rest2$7 = ty2[2], + ty2$0 = ty2[1], + _de_ = trans(rest1$7, rest2$7); + return [8, trans(ty1$0, ty2$0), _de_]; + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + switch$0 = 3; break; + case 14: + switch$0 = 4; break; + default: switch$9 = 1; + } + if(switch$9) + throw caml_maybe_attach_backtrace([0, Assert_failure, _k_], 1); + break; + case 9: + var rest1$8 = ty1[3], ty12 = ty1[2], ty11 = ty1[1], switch$10 = 0; + if(typeof ty2 === "number") + switch$10 = 1; + else + switch(ty2[0]){ + case 8: + switch$0 = 5; break; + case 9: + var + rest2$8 = ty2[3], + ty22 = ty2[2], + ty21 = ty2[1], + ty = trans(symm(ty12), ty21), + match = fmtty_rel_det(ty), + f4 = match[4], + f2 = match[2]; + caml_call1(f2, 0); + caml_call1(f4, 0); + return [9, ty11, ty22, trans(rest1$8, rest2$8)]; + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + switch$0 = 3; break; + case 14: + switch$0 = 4; break; + default: switch$10 = 1; + } + if(switch$10) + throw caml_maybe_attach_backtrace([0, Assert_failure, _l_], 1); + break; + case 10: + var rest1$9 = ty1[1]; + if(typeof ty2 !== "number" && 10 === ty2[0]){ + var rest2$9 = ty2[1]; + return [10, trans(rest1$9, rest2$9)]; + } + throw caml_maybe_attach_backtrace([0, Assert_failure, _m_], 1); + case 11: + var rest1$10 = ty1[1], switch$11 = 0; + if(typeof ty2 === "number") + switch$11 = 1; + else + switch(ty2[0]){ + case 10: break; + case 11: + var rest2$10 = ty2[1]; return [11, trans(rest1$10, rest2$10)]; + default: switch$11 = 1; + } + if(switch$11) + throw caml_maybe_attach_backtrace([0, Assert_failure, _n_], 1); + break; + case 12: + var rest1$11 = ty1[1], switch$12 = 0; + if(typeof ty2 === "number") + switch$12 = 1; + else + switch(ty2[0]){ + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + var rest2$11 = ty2[1]; return [12, trans(rest1$11, rest2$11)]; + default: switch$12 = 1; + } + if(switch$12) + throw caml_maybe_attach_backtrace([0, Assert_failure, _o_], 1); + break; + case 13: + var rest1$12 = ty1[1], switch$13 = 0; + if(typeof ty2 === "number") + switch$13 = 1; + else + switch(ty2[0]){ + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + var rest2$12 = ty2[1]; return [13, trans(rest1$12, rest2$12)]; + default: switch$13 = 1; + } + if(switch$13) + throw caml_maybe_attach_backtrace([0, Assert_failure, _p_], 1); + break; + default: + var rest1$13 = ty1[1], switch$14 = 0; + if(typeof ty2 === "number") + switch$14 = 1; + else + switch(ty2[0]){ + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + switch$0 = 3; break; + case 14: + var rest2$13 = ty2[1]; return [14, trans(rest1$13, rest2$13)]; + default: switch$14 = 1; + } + if(switch$14) + throw caml_maybe_attach_backtrace([0, Assert_failure, _q_], 1); + } + switch(switch$0){ + case 0: + throw caml_maybe_attach_backtrace([0, Assert_failure, _e_], 1); + case 1: + throw caml_maybe_attach_backtrace([0, Assert_failure, _f_], 1); + case 2: + throw caml_maybe_attach_backtrace([0, Assert_failure, _g_], 1); + case 3: + throw caml_maybe_attach_backtrace([0, Assert_failure, _h_], 1); + case 4: + throw caml_maybe_attach_backtrace([0, Assert_failure, _i_], 1); + case 5: + throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); + case 6: + throw caml_maybe_attach_backtrace([0, Assert_failure, _d_], 1); + default: throw caml_maybe_attach_backtrace([0, Assert_failure, _j_], 1); + } + } + function fmtty_of_padding_fmtty(pad, fmtty){ + return typeof pad === "number" ? fmtty : 0 === pad[0] ? fmtty : [2, fmtty]; + } + function fmtty_of_custom(arity, fmtty){ + if(! arity) return fmtty; + var arity$0 = arity[1]; + return [12, fmtty_of_custom(arity$0, fmtty)]; + } + function fmtty_of_fmt(fmtty){ + var fmtty$0 = fmtty; + for(;;){ + if(typeof fmtty$0 === "number") return 0; + switch(fmtty$0[0]){ + case 0: + var rest = fmtty$0[1]; return [0, fmtty_of_fmt(rest)]; + case 1: + var rest$0 = fmtty$0[1]; return [0, fmtty_of_fmt(rest$0)]; + case 2: + var rest$1 = fmtty$0[2], pad = fmtty$0[1]; + return fmtty_of_padding_fmtty(pad, [1, fmtty_of_fmt(rest$1)]); + case 3: + var rest$2 = fmtty$0[2], pad$0 = fmtty$0[1]; + return fmtty_of_padding_fmtty(pad$0, [1, fmtty_of_fmt(rest$2)]); + case 4: + var + rest$3 = fmtty$0[4], + prec = fmtty$0[3], + pad$1 = fmtty$0[2], + ty_rest = fmtty_of_fmt(rest$3), + prec_ty = fmtty_of_precision_fmtty(prec, [2, ty_rest]); + return fmtty_of_padding_fmtty(pad$1, prec_ty); + case 5: + var + rest$4 = fmtty$0[4], + prec$0 = fmtty$0[3], + pad$2 = fmtty$0[2], + ty_rest$0 = fmtty_of_fmt(rest$4), + prec_ty$0 = fmtty_of_precision_fmtty(prec$0, [3, ty_rest$0]); + return fmtty_of_padding_fmtty(pad$2, prec_ty$0); + case 6: + var + rest$5 = fmtty$0[4], + prec$1 = fmtty$0[3], + pad$3 = fmtty$0[2], + ty_rest$1 = fmtty_of_fmt(rest$5), + prec_ty$1 = fmtty_of_precision_fmtty(prec$1, [4, ty_rest$1]); + return fmtty_of_padding_fmtty(pad$3, prec_ty$1); + case 7: + var + rest$6 = fmtty$0[4], + prec$2 = fmtty$0[3], + pad$4 = fmtty$0[2], + ty_rest$2 = fmtty_of_fmt(rest$6), + prec_ty$2 = fmtty_of_precision_fmtty(prec$2, [5, ty_rest$2]); + return fmtty_of_padding_fmtty(pad$4, prec_ty$2); + case 8: + var + rest$7 = fmtty$0[4], + prec$3 = fmtty$0[3], + pad$5 = fmtty$0[2], + ty_rest$3 = fmtty_of_fmt(rest$7), + prec_ty$3 = fmtty_of_precision_fmtty(prec$3, [6, ty_rest$3]); + return fmtty_of_padding_fmtty(pad$5, prec_ty$3); + case 9: + var rest$8 = fmtty$0[2], pad$6 = fmtty$0[1]; + return fmtty_of_padding_fmtty(pad$6, [7, fmtty_of_fmt(rest$8)]); + case 10: + var fmtty$1 = fmtty$0[1], fmtty$0 = fmtty$1; continue; + case 11: + var fmtty$2 = fmtty$0[2], fmtty$0 = fmtty$2; continue; + case 12: + var fmtty$3 = fmtty$0[2], fmtty$0 = fmtty$3; continue; + case 13: + var rest$9 = fmtty$0[3], ty = fmtty$0[2]; + return [8, ty, fmtty_of_fmt(rest$9)]; + case 14: + var rest$10 = fmtty$0[3], ty$0 = fmtty$0[2]; + return [9, ty$0, ty$0, fmtty_of_fmt(rest$10)]; + case 15: + var rest$11 = fmtty$0[1]; return [10, fmtty_of_fmt(rest$11)]; + case 16: + var rest$12 = fmtty$0[1]; return [11, fmtty_of_fmt(rest$12)]; + case 17: + var fmtty$4 = fmtty$0[2], fmtty$0 = fmtty$4; continue; + case 18: + var + rest$13 = fmtty$0[2], + formatting_gen = fmtty$0[1], + _db_ = fmtty_of_fmt(rest$13); + if(0 === formatting_gen[0]) + var fmt = formatting_gen[1][1], _dc_ = fmtty_of_fmt(fmt); + else + var fmt$0 = formatting_gen[1][1], _dc_ = fmtty_of_fmt(fmt$0); + return caml_call2(CamlinternalFormatBasics[1], _dc_, _db_); + case 19: + var rest$14 = fmtty$0[1]; return [13, fmtty_of_fmt(rest$14)]; + case 20: + var rest$15 = fmtty$0[3]; return [1, fmtty_of_fmt(rest$15)]; + case 21: + var rest$16 = fmtty$0[2]; return [2, fmtty_of_fmt(rest$16)]; + case 22: + var rest$17 = fmtty$0[1]; return [0, fmtty_of_fmt(rest$17)]; + case 23: + var fmtty$5 = fmtty$0[2], ign = fmtty$0[1]; + if(typeof ign === "number") + switch(ign){ + case 0: + var fmtty$0 = fmtty$5; continue; + case 1: + var fmtty$0 = fmtty$5; continue; + case 2: + return [14, fmtty_of_fmt(fmtty$5)]; + default: var fmtty$0 = fmtty$5; continue; + } + switch(ign[0]){ + case 0: + var fmtty$0 = fmtty$5; continue; + case 1: + var fmtty$0 = fmtty$5; continue; + case 2: + var fmtty$0 = fmtty$5; continue; + case 3: + var fmtty$0 = fmtty$5; continue; + case 4: + var fmtty$0 = fmtty$5; continue; + case 5: + var fmtty$0 = fmtty$5; continue; + case 6: + var fmtty$0 = fmtty$5; continue; + case 7: + var fmtty$0 = fmtty$5; continue; + case 8: + var fmtty$0 = fmtty$5; continue; + case 9: + var fmtty$6 = ign[2], _dd_ = fmtty_of_fmt(fmtty$5); + return caml_call2(CamlinternalFormatBasics[1], fmtty$6, _dd_); + case 10: + var fmtty$0 = fmtty$5; continue; + default: var fmtty$0 = fmtty$5; continue; + } + default: + var rest$18 = fmtty$0[3], arity = fmtty$0[1]; + return fmtty_of_custom(arity, fmtty_of_fmt(rest$18)); + } + } + } + function fmtty_of_precision_fmtty(prec, fmtty){ + return typeof prec === "number" ? prec ? [2, fmtty] : fmtty : fmtty; + } + var + Type_mismatch = + [248, cst_CamlinternalFormat_Type_mi, runtime.caml_fresh_oo_id(0)]; + function type_padding(pad, fmtty){ + if(typeof pad === "number") return [0, 0, fmtty]; + if(0 === pad[0]){ + var w = pad[2], padty = pad[1]; + return [0, [0, padty, w], fmtty]; + } + if(typeof fmtty !== "number" && 2 === fmtty[0]){ + var rest = fmtty[1], padty$0 = pad[1]; + return [0, [1, padty$0], rest]; + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + } + function type_padprec(pad, prec, fmtty){ + var match = type_padding(pad, fmtty); + if(typeof prec !== "number"){ + var rest$1 = match[2], pad$2 = match[1], p = prec[1]; + return [0, pad$2, [0, p], rest$1]; + } + if(! prec){ + var rest$0 = match[2], pad$1 = match[1]; + return [0, pad$1, 0, rest$0]; + } + var match$0 = match[2]; + if(typeof match$0 !== "number" && 2 === match$0[0]){ + var rest = match$0[1], pad$0 = match[1]; + return [0, pad$0, 1, rest]; + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + } + function type_format(fmt, fmtty){ + var _da_ = type_format_gen(fmt, fmtty); + if(typeof _da_[2] !== "number") + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + var fmt$0 = _da_[1]; + return fmt$0; + } + function type_ignored_param_one(ign, fmt, fmtty){ + var + match = type_format_gen(fmt, fmtty), + fmtty$0 = match[2], + fmt$0 = match[1]; + return [0, [23, ign, fmt$0], fmtty$0]; + } + function type_format_gen(fmt, fmtty0){ + if(typeof fmt === "number") return [0, 0, fmtty0]; + switch(fmt[0]){ + case 0: + if(typeof fmtty0 !== "number" && 0 === fmtty0[0]){ + var + fmtty_rest = fmtty0[1], + fmt_rest = fmt[1], + match = type_format_gen(fmt_rest, fmtty_rest), + fmtty = match[2], + fmt$0 = match[1]; + return [0, [0, fmt$0], fmtty]; + } + break; + case 1: + if(typeof fmtty0 !== "number" && 0 === fmtty0[0]){ + var + fmtty_rest$0 = fmtty0[1], + fmt_rest$0 = fmt[1], + match$0 = type_format_gen(fmt_rest$0, fmtty_rest$0), + fmtty$0 = match$0[2], + fmt$1 = match$0[1]; + return [0, [1, fmt$1], fmtty$0]; + } + break; + case 2: + var + fmt_rest$1 = fmt[2], + pad = fmt[1], + match$1 = type_padding(pad, fmtty0), + pad$0 = match$1[1], + match$2 = match$1[2]; + if(typeof match$2 !== "number" && 1 === match$2[0]){ + var + fmtty_rest$1 = match$2[1], + match$3 = type_format_gen(fmt_rest$1, fmtty_rest$1), + fmtty$1 = match$3[2], + fmt$2 = match$3[1]; + return [0, [2, pad$0, fmt$2], fmtty$1]; + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + case 3: + var + fmt_rest$2 = fmt[2], + pad$1 = fmt[1], + match$4 = type_padding(pad$1, fmtty0), + pad$2 = match$4[1], + match$5 = match$4[2]; + if(typeof match$5 !== "number" && 1 === match$5[0]){ + var + fmtty_rest$2 = match$5[1], + match$6 = type_format_gen(fmt_rest$2, fmtty_rest$2), + fmtty$2 = match$6[2], + fmt$3 = match$6[1]; + return [0, [3, pad$2, fmt$3], fmtty$2]; + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + case 4: + var + fmt_rest$3 = fmt[4], + prec = fmt[3], + pad$3 = fmt[2], + iconv = fmt[1], + match$7 = type_padprec(pad$3, prec, fmtty0), + pad$4 = match$7[1], + match$8 = match$7[3]; + if(typeof match$8 !== "number" && 2 === match$8[0]){ + var + fmtty_rest$3 = match$8[1], + prec$0 = match$7[2], + match$9 = type_format_gen(fmt_rest$3, fmtty_rest$3), + fmtty$3 = match$9[2], + fmt$4 = match$9[1]; + return [0, [4, iconv, pad$4, prec$0, fmt$4], fmtty$3]; + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + case 5: + var + fmt_rest$4 = fmt[4], + prec$1 = fmt[3], + pad$5 = fmt[2], + iconv$0 = fmt[1], + match$10 = type_padprec(pad$5, prec$1, fmtty0), + pad$6 = match$10[1], + match$11 = match$10[3]; + if(typeof match$11 !== "number" && 3 === match$11[0]){ + var + fmtty_rest$4 = match$11[1], + prec$2 = match$10[2], + match$12 = type_format_gen(fmt_rest$4, fmtty_rest$4), + fmtty$4 = match$12[2], + fmt$5 = match$12[1]; + return [0, [5, iconv$0, pad$6, prec$2, fmt$5], fmtty$4]; + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + case 6: + var + fmt_rest$5 = fmt[4], + prec$3 = fmt[3], + pad$7 = fmt[2], + iconv$1 = fmt[1], + match$13 = type_padprec(pad$7, prec$3, fmtty0), + pad$8 = match$13[1], + match$14 = match$13[3]; + if(typeof match$14 !== "number" && 4 === match$14[0]){ + var + fmtty_rest$5 = match$14[1], + prec$4 = match$13[2], + match$15 = type_format_gen(fmt_rest$5, fmtty_rest$5), + fmtty$5 = match$15[2], + fmt$6 = match$15[1]; + return [0, [6, iconv$1, pad$8, prec$4, fmt$6], fmtty$5]; + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + case 7: + var + fmt_rest$6 = fmt[4], + prec$5 = fmt[3], + pad$9 = fmt[2], + iconv$2 = fmt[1], + match$16 = type_padprec(pad$9, prec$5, fmtty0), + pad$10 = match$16[1], + match$17 = match$16[3]; + if(typeof match$17 !== "number" && 5 === match$17[0]){ + var + fmtty_rest$6 = match$17[1], + prec$6 = match$16[2], + match$18 = type_format_gen(fmt_rest$6, fmtty_rest$6), + fmtty$6 = match$18[2], + fmt$7 = match$18[1]; + return [0, [7, iconv$2, pad$10, prec$6, fmt$7], fmtty$6]; + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + case 8: + var + fmt_rest$7 = fmt[4], + prec$7 = fmt[3], + pad$11 = fmt[2], + fconv = fmt[1], + match$19 = type_padprec(pad$11, prec$7, fmtty0), + pad$12 = match$19[1], + match$20 = match$19[3]; + if(typeof match$20 !== "number" && 6 === match$20[0]){ + var + fmtty_rest$7 = match$20[1], + prec$8 = match$19[2], + match$21 = type_format_gen(fmt_rest$7, fmtty_rest$7), + fmtty$7 = match$21[2], + fmt$8 = match$21[1]; + return [0, [8, fconv, pad$12, prec$8, fmt$8], fmtty$7]; + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + case 9: + var + fmt_rest$8 = fmt[2], + pad$13 = fmt[1], + match$22 = type_padding(pad$13, fmtty0), + pad$14 = match$22[1], + match$23 = match$22[2]; + if(typeof match$23 !== "number" && 7 === match$23[0]){ + var + fmtty_rest$8 = match$23[1], + match$24 = type_format_gen(fmt_rest$8, fmtty_rest$8), + fmtty$8 = match$24[2], + fmt$9 = match$24[1]; + return [0, [9, pad$14, fmt$9], fmtty$8]; + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + case 10: + var + fmt_rest$9 = fmt[1], + match$25 = type_format_gen(fmt_rest$9, fmtty0), + fmtty$9 = match$25[2], + fmt$10 = match$25[1]; + return [0, [10, fmt$10], fmtty$9]; + case 11: + var + fmt_rest$10 = fmt[2], + str = fmt[1], + match$26 = type_format_gen(fmt_rest$10, fmtty0), + fmtty$10 = match$26[2], + fmt$11 = match$26[1]; + return [0, [11, str, fmt$11], fmtty$10]; + case 12: + var + fmt_rest$11 = fmt[2], + chr = fmt[1], + match$27 = type_format_gen(fmt_rest$11, fmtty0), + fmtty$11 = match$27[2], + fmt$12 = match$27[1]; + return [0, [12, chr, fmt$12], fmtty$11]; + case 13: + if(typeof fmtty0 !== "number" && 8 === fmtty0[0]){ + var + fmtty_rest$9 = fmtty0[2], + sub_fmtty = fmtty0[1], + fmt_rest$12 = fmt[3], + sub_fmtty$0 = fmt[2], + pad_opt = fmt[1]; + if(caml_notequal([0, sub_fmtty$0], [0, sub_fmtty])) + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + var + match$28 = type_format_gen(fmt_rest$12, fmtty_rest$9), + fmtty$12 = match$28[2], + fmt$13 = match$28[1]; + return [0, [13, pad_opt, sub_fmtty, fmt$13], fmtty$12]; + } + break; + case 14: + if(typeof fmtty0 !== "number" && 9 === fmtty0[0]){ + var + fmtty_rest$10 = fmtty0[3], + sub_fmtty1 = fmtty0[1], + fmt_rest$13 = fmt[3], + sub_fmtty$1 = fmt[2], + pad_opt$0 = fmt[1], + _c__ = [0, caml_call1(CamlinternalFormatBasics[2], sub_fmtty1)]; + if + (caml_notequal + ([0, caml_call1(CamlinternalFormatBasics[2], sub_fmtty$1)], _c__)) + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + var + match$29 = + type_format_gen + (fmt_rest$13, + caml_call1(CamlinternalFormatBasics[2], fmtty_rest$10)), + fmtty$13 = match$29[2], + fmt$14 = match$29[1]; + return [0, [14, pad_opt$0, sub_fmtty1, fmt$14], fmtty$13]; + } + break; + case 15: + if(typeof fmtty0 !== "number" && 10 === fmtty0[0]){ + var + fmtty_rest$11 = fmtty0[1], + fmt_rest$14 = fmt[1], + match$30 = type_format_gen(fmt_rest$14, fmtty_rest$11), + fmtty$14 = match$30[2], + fmt$15 = match$30[1]; + return [0, [15, fmt$15], fmtty$14]; + } + break; + case 16: + if(typeof fmtty0 !== "number" && 11 === fmtty0[0]){ + var + fmtty_rest$12 = fmtty0[1], + fmt_rest$15 = fmt[1], + match$31 = type_format_gen(fmt_rest$15, fmtty_rest$12), + fmtty$15 = match$31[2], + fmt$16 = match$31[1]; + return [0, [16, fmt$16], fmtty$15]; + } + break; + case 17: + var + fmt_rest$16 = fmt[2], + formatting_lit = fmt[1], + match$32 = type_format_gen(fmt_rest$16, fmtty0), + fmtty$16 = match$32[2], + fmt$17 = match$32[1]; + return [0, [17, formatting_lit, fmt$17], fmtty$16]; + case 18: + var fmt_rest$17 = fmt[2], formatting_gen = fmt[1]; + if(0 === formatting_gen[0]){ + var + match$36 = formatting_gen[1], + str$0 = match$36[2], + fmt1 = match$36[1], + match$37 = type_format_gen(fmt1, fmtty0), + fmtty2 = match$37[2], + fmt2 = match$37[1], + match$38 = type_format_gen(fmt_rest$17, fmtty2), + fmtty3 = match$38[2], + fmt3 = match$38[1]; + return [0, [18, [0, [0, fmt2, str$0]], fmt3], fmtty3]; + } + var + match$39 = formatting_gen[1], + str$1 = match$39[2], + fmt1$0 = match$39[1], + match$40 = type_format_gen(fmt1$0, fmtty0), + fmtty2$0 = match$40[2], + fmt2$0 = match$40[1], + match$41 = type_format_gen(fmt_rest$17, fmtty2$0), + fmtty3$0 = match$41[2], + fmt3$0 = match$41[1]; + return [0, [18, [1, [0, fmt2$0, str$1]], fmt3$0], fmtty3$0]; + case 19: + if(typeof fmtty0 !== "number" && 13 === fmtty0[0]){ + var + fmtty_rest$13 = fmtty0[1], + fmt_rest$18 = fmt[1], + match$33 = type_format_gen(fmt_rest$18, fmtty_rest$13), + fmtty$17 = match$33[2], + fmt$18 = match$33[1]; + return [0, [19, fmt$18], fmtty$17]; + } + break; + case 20: + if(typeof fmtty0 !== "number" && 1 === fmtty0[0]){ + var + fmtty_rest$14 = fmtty0[1], + fmt_rest$19 = fmt[3], + char_set = fmt[2], + width_opt = fmt[1], + match$34 = type_format_gen(fmt_rest$19, fmtty_rest$14), + fmtty$18 = match$34[2], + fmt$19 = match$34[1]; + return [0, [20, width_opt, char_set, fmt$19], fmtty$18]; + } + break; + case 21: + if(typeof fmtty0 !== "number" && 2 === fmtty0[0]){ + var + fmtty_rest$15 = fmtty0[1], + fmt_rest$20 = fmt[2], + counter = fmt[1], + match$35 = type_format_gen(fmt_rest$20, fmtty_rest$15), + fmtty$19 = match$35[2], + fmt$20 = match$35[1]; + return [0, [21, counter, fmt$20], fmtty$19]; + } + break; + case 23: + var rest = fmt[2], ign = fmt[1]; + if(typeof ign !== "number") + switch(ign[0]){ + case 0: + return type_ignored_param_one(ign, rest, fmtty0); + case 1: + return type_ignored_param_one(ign, rest, fmtty0); + case 2: + return type_ignored_param_one(ign, rest, fmtty0); + case 3: + return type_ignored_param_one(ign, rest, fmtty0); + case 4: + return type_ignored_param_one(ign, rest, fmtty0); + case 5: + return type_ignored_param_one(ign, rest, fmtty0); + case 6: + return type_ignored_param_one(ign, rest, fmtty0); + case 7: + return type_ignored_param_one(ign, rest, fmtty0); + case 8: + var sub_fmtty$2 = ign[2], pad_opt$1 = ign[1]; + return type_ignored_param_one + ([8, pad_opt$1, sub_fmtty$2], rest, fmtty0); + case 9: + var + sub_fmtty$3 = ign[2], + pad_opt$2 = ign[1], + _c$_ = type_ignored_format_substituti(sub_fmtty$3, rest, fmtty0), + match$43 = _c$_[2], + fmtty$21 = match$43[2], + fmt$22 = match$43[1], + sub_fmtty$4 = _c$_[1]; + return [0, [23, [9, pad_opt$2, sub_fmtty$4], fmt$22], fmtty$21]; + case 10: + return type_ignored_param_one(ign, rest, fmtty0); + default: return type_ignored_param_one(ign, rest, fmtty0); + } + switch(ign){ + case 0: + return type_ignored_param_one(ign, rest, fmtty0); + case 1: + return type_ignored_param_one(ign, rest, fmtty0); + case 2: + if(typeof fmtty0 !== "number" && 14 === fmtty0[0]){ + var + fmtty_rest$16 = fmtty0[1], + match$42 = type_format_gen(rest, fmtty_rest$16), + fmtty$20 = match$42[2], + fmt$21 = match$42[1]; + return [0, [23, 2, fmt$21], fmtty$20]; + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + default: return type_ignored_param_one(ign, rest, fmtty0); + } + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + } + function type_ignored_format_substituti(sub_fmtty, fmt, fmtty){ + if(typeof sub_fmtty === "number") + return [0, 0, type_format_gen(fmt, fmtty)]; + switch(sub_fmtty[0]){ + case 0: + if(typeof fmtty !== "number" && 0 === fmtty[0]){ + var + fmtty_rest = fmtty[1], + sub_fmtty_rest = sub_fmtty[1], + match = + type_ignored_format_substituti(sub_fmtty_rest, fmt, fmtty_rest), + fmt$0 = match[2], + sub_fmtty_rest$0 = match[1]; + return [0, [0, sub_fmtty_rest$0], fmt$0]; + } + break; + case 1: + if(typeof fmtty !== "number" && 1 === fmtty[0]){ + var + fmtty_rest$0 = fmtty[1], + sub_fmtty_rest$1 = sub_fmtty[1], + match$0 = + type_ignored_format_substituti(sub_fmtty_rest$1, fmt, fmtty_rest$0), + fmt$1 = match$0[2], + sub_fmtty_rest$2 = match$0[1]; + return [0, [1, sub_fmtty_rest$2], fmt$1]; + } + break; + case 2: + if(typeof fmtty !== "number" && 2 === fmtty[0]){ + var + fmtty_rest$1 = fmtty[1], + sub_fmtty_rest$3 = sub_fmtty[1], + match$1 = + type_ignored_format_substituti(sub_fmtty_rest$3, fmt, fmtty_rest$1), + fmt$2 = match$1[2], + sub_fmtty_rest$4 = match$1[1]; + return [0, [2, sub_fmtty_rest$4], fmt$2]; + } + break; + case 3: + if(typeof fmtty !== "number" && 3 === fmtty[0]){ + var + fmtty_rest$2 = fmtty[1], + sub_fmtty_rest$5 = sub_fmtty[1], + match$2 = + type_ignored_format_substituti(sub_fmtty_rest$5, fmt, fmtty_rest$2), + fmt$3 = match$2[2], + sub_fmtty_rest$6 = match$2[1]; + return [0, [3, sub_fmtty_rest$6], fmt$3]; + } + break; + case 4: + if(typeof fmtty !== "number" && 4 === fmtty[0]){ + var + fmtty_rest$3 = fmtty[1], + sub_fmtty_rest$7 = sub_fmtty[1], + match$3 = + type_ignored_format_substituti(sub_fmtty_rest$7, fmt, fmtty_rest$3), + fmt$4 = match$3[2], + sub_fmtty_rest$8 = match$3[1]; + return [0, [4, sub_fmtty_rest$8], fmt$4]; + } + break; + case 5: + if(typeof fmtty !== "number" && 5 === fmtty[0]){ + var + fmtty_rest$4 = fmtty[1], + sub_fmtty_rest$9 = sub_fmtty[1], + match$4 = + type_ignored_format_substituti(sub_fmtty_rest$9, fmt, fmtty_rest$4), + fmt$5 = match$4[2], + sub_fmtty_rest$10 = match$4[1]; + return [0, [5, sub_fmtty_rest$10], fmt$5]; + } + break; + case 6: + if(typeof fmtty !== "number" && 6 === fmtty[0]){ + var + fmtty_rest$5 = fmtty[1], + sub_fmtty_rest$11 = sub_fmtty[1], + match$5 = + type_ignored_format_substituti + (sub_fmtty_rest$11, fmt, fmtty_rest$5), + fmt$6 = match$5[2], + sub_fmtty_rest$12 = match$5[1]; + return [0, [6, sub_fmtty_rest$12], fmt$6]; + } + break; + case 7: + if(typeof fmtty !== "number" && 7 === fmtty[0]){ + var + fmtty_rest$6 = fmtty[1], + sub_fmtty_rest$13 = sub_fmtty[1], + match$6 = + type_ignored_format_substituti + (sub_fmtty_rest$13, fmt, fmtty_rest$6), + fmt$7 = match$6[2], + sub_fmtty_rest$14 = match$6[1]; + return [0, [7, sub_fmtty_rest$14], fmt$7]; + } + break; + case 8: + if(typeof fmtty !== "number" && 8 === fmtty[0]){ + var + fmtty_rest$7 = fmtty[2], + sub2_fmtty = fmtty[1], + sub_fmtty_rest$15 = sub_fmtty[2], + sub2_fmtty$0 = sub_fmtty[1]; + if(caml_notequal([0, sub2_fmtty$0], [0, sub2_fmtty])) + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + var + match$7 = + type_ignored_format_substituti + (sub_fmtty_rest$15, fmt, fmtty_rest$7), + fmt$8 = match$7[2], + sub_fmtty_rest$16 = match$7[1]; + return [0, [8, sub2_fmtty, sub_fmtty_rest$16], fmt$8]; + } + break; + case 9: + if(typeof fmtty !== "number" && 9 === fmtty[0]){ + var + fmtty_rest$8 = fmtty[3], + sub2_fmtty$1 = fmtty[2], + sub1_fmtty = fmtty[1], + sub_fmtty_rest$17 = sub_fmtty[3], + sub2_fmtty$2 = sub_fmtty[2], + sub1_fmtty$0 = sub_fmtty[1], + _c8_ = [0, caml_call1(CamlinternalFormatBasics[2], sub1_fmtty)]; + if + (caml_notequal + ([0, caml_call1(CamlinternalFormatBasics[2], sub1_fmtty$0)], _c8_)) + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + var _c9_ = [0, caml_call1(CamlinternalFormatBasics[2], sub2_fmtty$1)]; + if + (caml_notequal + ([0, caml_call1(CamlinternalFormatBasics[2], sub2_fmtty$2)], _c9_)) + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + var + sub_fmtty$0 = trans(symm(sub1_fmtty), sub2_fmtty$1), + match$8 = fmtty_rel_det(sub_fmtty$0), + f4 = match$8[4], + f2 = match$8[2]; + caml_call1(f2, 0); + caml_call1(f4, 0); + var + match$9 = + type_ignored_format_substituti + (caml_call1(CamlinternalFormatBasics[2], sub_fmtty_rest$17), + fmt, + fmtty_rest$8), + fmt$9 = match$9[2], + sub_fmtty_rest$18 = match$9[1]; + return [0, + [9, sub1_fmtty, sub2_fmtty$1, symm(sub_fmtty_rest$18)], + fmt$9]; + } + break; + case 10: + if(typeof fmtty !== "number" && 10 === fmtty[0]){ + var + fmtty_rest$9 = fmtty[1], + sub_fmtty_rest$19 = sub_fmtty[1], + match$10 = + type_ignored_format_substituti + (sub_fmtty_rest$19, fmt, fmtty_rest$9), + fmt$10 = match$10[2], + sub_fmtty_rest$20 = match$10[1]; + return [0, [10, sub_fmtty_rest$20], fmt$10]; + } + break; + case 11: + if(typeof fmtty !== "number" && 11 === fmtty[0]){ + var + fmtty_rest$10 = fmtty[1], + sub_fmtty_rest$21 = sub_fmtty[1], + match$11 = + type_ignored_format_substituti + (sub_fmtty_rest$21, fmt, fmtty_rest$10), + fmt$11 = match$11[2], + sub_fmtty_rest$22 = match$11[1]; + return [0, [11, sub_fmtty_rest$22], fmt$11]; + } + break; + case 13: + if(typeof fmtty !== "number" && 13 === fmtty[0]){ + var + fmtty_rest$11 = fmtty[1], + sub_fmtty_rest$23 = sub_fmtty[1], + match$12 = + type_ignored_format_substituti + (sub_fmtty_rest$23, fmt, fmtty_rest$11), + fmt$12 = match$12[2], + sub_fmtty_rest$24 = match$12[1]; + return [0, [13, sub_fmtty_rest$24], fmt$12]; + } + break; + case 14: + if(typeof fmtty !== "number" && 14 === fmtty[0]){ + var + fmtty_rest$12 = fmtty[1], + sub_fmtty_rest$25 = sub_fmtty[1], + match$13 = + type_ignored_format_substituti + (sub_fmtty_rest$25, fmt, fmtty_rest$12), + fmt$13 = match$13[2], + sub_fmtty_rest$26 = match$13[1]; + return [0, [14, sub_fmtty_rest$26], fmt$13]; + } + break; + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + } + function recast(fmt, fmtty){ + var _c7_ = symm(fmtty); + return type_format(fmt, caml_call1(CamlinternalFormatBasics[2], _c7_)); + } + function fix_padding(padty, width, str){ + var + len = caml_ml_string_length(str), + padty$0 = 0 <= width ? padty : 0, + width$0 = caml_call1(Stdlib[18], width); + if(width$0 <= len) return str; + var + _c6_ = 2 === padty$0 ? 48 : 32, + res = caml_call2(Stdlib_Bytes[1], width$0, _c6_); + switch(padty$0){ + case 0: + caml_call5(Stdlib_String[48], str, 0, res, 0, len); break; + case 1: + caml_call5(Stdlib_String[48], str, 0, res, width$0 - len | 0, len); + break; + default: + var switch$0 = 0; + if(0 < len){ + var switch$1 = 0; + if + (43 !== caml_string_get(str, 0) + && 45 !== caml_string_get(str, 0) && 32 !== caml_string_get(str, 0)){switch$0 = 1; switch$1 = 1;} + if(! switch$1){ + caml_bytes_set(res, 0, caml_string_get(str, 0)); + caml_call5 + (Stdlib_String[48], + str, + 1, + res, + (width$0 - len | 0) + 1 | 0, + len - 1 | 0); + } + } + else + switch$0 = 1; + if(switch$0){ + var switch$2 = 0; + if(1 < len && 48 === caml_string_get(str, 0)){ + var switch$3 = 0; + if(120 === caml_string_get(str, 1) || 88 === caml_string_get(str, 1)) + switch$3 = 1; + if(switch$3){ + caml_bytes_set(res, 1, caml_string_get(str, 1)); + caml_call5 + (Stdlib_String[48], + str, + 2, + res, + (width$0 - len | 0) + 2 | 0, + len - 2 | 0); + switch$2 = 1; + } + } + if(! switch$2) + caml_call5(Stdlib_String[48], str, 0, res, width$0 - len | 0, len); + } + } + return caml_call1(Stdlib_Bytes[48], res); + } + function fix_int_precision(prec, str){ + var + prec$0 = caml_call1(Stdlib[18], prec), + len = caml_ml_string_length(str), + c = caml_string_get(str, 0), + switch$0 = 0; + if(58 <= c){ + if(71 <= c){ + if(5 >= c - 97 >>> 0) switch$0 = 1; + } + else if(65 <= c) switch$0 = 1; + } + else{ + var switch$1 = 0; + if(32 === c) + switch$1 = 1; + else if(43 <= c) + switch(c - 43 | 0){ + case 5: + if(len < (prec$0 + 2 | 0) && 1 < len){ + var switch$2 = 0; + if + (120 !== caml_string_get(str, 1) && 88 !== caml_string_get(str, 1)) + switch$2 = 1; + if(! switch$2){ + var res$1 = caml_call2(Stdlib_Bytes[1], prec$0 + 2 | 0, 48); + caml_bytes_set(res$1, 1, caml_string_get(str, 1)); + caml_call5 + (Stdlib_String[48], + str, + 2, + res$1, + (prec$0 - len | 0) + 4 | 0, + len - 2 | 0); + return caml_call1(Stdlib_Bytes[48], res$1); + } + } + switch$0 = 1; + break; + case 0: + case 2: + switch$1 = 1; break; + case 1: + case 3: + case 4: break; + default: switch$0 = 1; + } + if(switch$1 && len < (prec$0 + 1 | 0)){ + var res$0 = caml_call2(Stdlib_Bytes[1], prec$0 + 1 | 0, 48); + caml_bytes_set(res$0, 0, c); + caml_call5 + (Stdlib_String[48], + str, + 1, + res$0, + (prec$0 - len | 0) + 2 | 0, + len - 1 | 0); + return caml_call1(Stdlib_Bytes[48], res$0); + } + } + if(switch$0 && len < prec$0){ + var res = caml_call2(Stdlib_Bytes[1], prec$0, 48); + caml_call5(Stdlib_String[48], str, 0, res, prec$0 - len | 0, len); + return caml_call1(Stdlib_Bytes[48], res); + } + return str; + } + function string_to_caml_string(str){ + var + str$0 = caml_call1(Stdlib_String[24], str), + l = caml_ml_string_length(str$0), + res = caml_call2(Stdlib_Bytes[1], l + 2 | 0, 34); + caml_blit_string(str$0, 0, res, 1, l); + return caml_call1(Stdlib_Bytes[48], res); + } + function format_of_fconv(fconv, prec){ + var + prec$0 = caml_call1(Stdlib[18], prec), + symb = char_of_fconv(_r_, fconv), + buf = buffer_create(16); + buffer_add_char(buf, 37); + bprint_fconv_flag(buf, fconv); + buffer_add_char(buf, 46); + buffer_add_string(buf, caml_call1(Stdlib_Int[12], prec$0)); + buffer_add_char(buf, symb); + return buffer_contents(buf); + } + function transform_int_alt(iconv, s){ + if(13 > iconv) return s; + var n = [0, 0], _c1_ = caml_ml_string_length(s) - 1 | 0, _c0_ = 0; + if(_c1_ >= 0){ + var i$0 = _c0_; + for(;;){ + if(9 >= caml_string_unsafe_get(s, i$0) - 48 >>> 0) n[1]++; + var _c5_ = i$0 + 1 | 0; + if(_c1_ !== i$0){var i$0 = _c5_; continue;} + break; + } + } + var + digits = n[1], + buf = + caml_create_bytes + (caml_ml_string_length(s) + ((digits - 1 | 0) / 3 | 0) | 0), + pos = [0, 0]; + function put(c){caml_bytes_set(buf, pos[1], c); pos[1]++; return 0;} + var + left = [0, ((digits - 1 | 0) % 3 | 0) + 1 | 0], + _c3_ = caml_ml_string_length(s) - 1 | 0, + _c2_ = 0; + if(_c3_ >= 0){ + var i = _c2_; + for(;;){ + var c = caml_string_unsafe_get(s, i); + if(9 < c - 48 >>> 0) + put(c); + else{if(0 === left[1]){put(95); left[1] = 3;} left[1] += -1; put(c);} + var _c4_ = i + 1 | 0; + if(_c3_ !== i){var i = _c4_; continue;} + break; + } + } + return caml_call1(Stdlib_Bytes[48], buf); + } + function convert_int(iconv, n){ + switch(iconv){ + case 1: + var _cZ_ = cst_d$0; break; + case 2: + var _cZ_ = cst_d$1; break; + case 4: + var _cZ_ = cst_i$1; break; + case 5: + var _cZ_ = cst_i$2; break; + case 6: + var _cZ_ = cst_x; break; + case 7: + var _cZ_ = cst_x$0; break; + case 8: + var _cZ_ = cst_X; break; + case 9: + var _cZ_ = cst_X$0; break; + case 10: + var _cZ_ = cst_o; break; + case 11: + var _cZ_ = cst_o$0; break; + case 0: + case 13: + var _cZ_ = cst_d; break; + case 3: + case 14: + var _cZ_ = cst_i$0; break; + default: var _cZ_ = cst_u; + } + return transform_int_alt(iconv, caml_format_int(_cZ_, n)); + } + function convert_int32(iconv, n){ + switch(iconv){ + case 1: + var _cY_ = cst_ld$0; break; + case 2: + var _cY_ = cst_ld$1; break; + case 4: + var _cY_ = cst_li$1; break; + case 5: + var _cY_ = cst_li$2; break; + case 6: + var _cY_ = cst_lx; break; + case 7: + var _cY_ = cst_lx$0; break; + case 8: + var _cY_ = cst_lX; break; + case 9: + var _cY_ = cst_lX$0; break; + case 10: + var _cY_ = cst_lo; break; + case 11: + var _cY_ = cst_lo$0; break; + case 0: + case 13: + var _cY_ = cst_ld; break; + case 3: + case 14: + var _cY_ = cst_li$0; break; + default: var _cY_ = cst_lu; + } + return transform_int_alt(iconv, caml_format_int(_cY_, n)); + } + function convert_nativeint(iconv, n){ + switch(iconv){ + case 1: + var _cX_ = cst_nd$0; break; + case 2: + var _cX_ = cst_nd$1; break; + case 4: + var _cX_ = cst_ni$1; break; + case 5: + var _cX_ = cst_ni$2; break; + case 6: + var _cX_ = cst_nx; break; + case 7: + var _cX_ = cst_nx$0; break; + case 8: + var _cX_ = cst_nX; break; + case 9: + var _cX_ = cst_nX$0; break; + case 10: + var _cX_ = cst_no; break; + case 11: + var _cX_ = cst_no$0; break; + case 0: + case 13: + var _cX_ = cst_nd; break; + case 3: + case 14: + var _cX_ = cst_ni$0; break; + default: var _cX_ = cst_nu; + } + return transform_int_alt(iconv, caml_format_int(_cX_, n)); + } + function convert_int64(iconv, n){ + switch(iconv){ + case 1: + var _cW_ = cst_Ld$0; break; + case 2: + var _cW_ = cst_Ld$1; break; + case 4: + var _cW_ = cst_Li$1; break; + case 5: + var _cW_ = cst_Li$2; break; + case 6: + var _cW_ = cst_Lx; break; + case 7: + var _cW_ = cst_Lx$0; break; + case 8: + var _cW_ = cst_LX; break; + case 9: + var _cW_ = cst_LX$0; break; + case 10: + var _cW_ = cst_Lo; break; + case 11: + var _cW_ = cst_Lo$0; break; + case 0: + case 13: + var _cW_ = cst_Ld; break; + case 3: + case 14: + var _cW_ = cst_Li$0; break; + default: var _cW_ = cst_Lu; + } + return transform_int_alt(iconv, runtime.caml_int64_format(_cW_, n)); + } + function convert_float(fconv, prec, x){ + function hex(param){ + switch(fconv[1]){ + case 0: + var sign = 45; break; + case 1: + var sign = 43; break; + default: var sign = 32; + } + return runtime.caml_hexstring_of_float(x, prec, sign); + } + function caml_special_val(str){ + var match = runtime.caml_classify_float(x); + return 3 === match + ? x < 0. ? cst_neg_infinity : cst_infinity + : 4 <= match ? cst_nan : str; + } + switch(fconv[2]){ + case 5: + var + str = caml_format_float(format_of_fconv(fconv, prec), x), + len = caml_ml_string_length(str), + i = 0; + for(;;){ + if(i === len) + var _cT_ = 0; + else{ + var _cS_ = caml_string_get(str, i) - 46 | 0, switch$0 = 0; + if(23 < _cS_ >>> 0){ + if(55 === _cS_) switch$0 = 1; + } + else if(21 < _cS_ - 1 >>> 0) switch$0 = 1; + if(! switch$0){var i$0 = i + 1 | 0, i = i$0; continue;} + var _cT_ = 1; + } + var _cU_ = _cT_ ? str : caml_call2(Stdlib[28], str, cst$17); + return caml_special_val(_cU_); + } + case 6: + return hex(0); + case 7: + var _cV_ = hex(0); return caml_call1(Stdlib_String[25], _cV_); + case 8: + return caml_special_val(hex(0)); + default: return caml_format_float(format_of_fconv(fconv, prec), x); + } + } + function string_of_fmtty(fmtty){ + var buf = buffer_create(16); + bprint_fmtty(buf, fmtty); + return buffer_contents(buf); + } + function make_int_padding_precision(k, acc, fmt, pad, prec, trans, iconv){ + if(typeof pad === "number"){ + if(typeof prec === "number") + return prec + ? function + (p, x){ + var str = fix_int_precision(p, caml_call2(trans, iconv, x)); + return make_printf(k, [4, acc, str], fmt); + } + : function + (x){ + var str = caml_call2(trans, iconv, x); + return make_printf(k, [4, acc, str], fmt); + }; + var p = prec[1]; + return function(x){ + var str = fix_int_precision(p, caml_call2(trans, iconv, x)); + return make_printf(k, [4, acc, str], fmt);}; + } + if(0 === pad[0]){ + var w = pad[2], padty = pad[1]; + if(typeof prec === "number") + return prec + ? function + (p, x){ + var + str = + fix_padding + (padty, + w, + fix_int_precision(p, caml_call2(trans, iconv, x))); + return make_printf(k, [4, acc, str], fmt); + } + : function + (x){ + var str = fix_padding(padty, w, caml_call2(trans, iconv, x)); + return make_printf(k, [4, acc, str], fmt); + }; + var p$0 = prec[1]; + return function(x){ + var + str = + fix_padding + (padty, w, fix_int_precision(p$0, caml_call2(trans, iconv, x))); + return make_printf(k, [4, acc, str], fmt);}; + } + var padty$0 = pad[1]; + if(typeof prec === "number") + return prec + ? function + (w, p, x){ + var + str = + fix_padding + (padty$0, + w, + fix_int_precision(p, caml_call2(trans, iconv, x))); + return make_printf(k, [4, acc, str], fmt); + } + : function + (w, x){ + var str = fix_padding(padty$0, w, caml_call2(trans, iconv, x)); + return make_printf(k, [4, acc, str], fmt); + }; + var p$1 = prec[1]; + return function(w, x){ + var + str = + fix_padding + (padty$0, w, fix_int_precision(p$1, caml_call2(trans, iconv, x))); + return make_printf(k, [4, acc, str], fmt);}; + } + function make_padding(k, acc, fmt, pad, trans){ + if(typeof pad === "number") + return function(x){ + var new_acc = [4, acc, caml_call1(trans, x)]; + return make_printf(k, new_acc, fmt);}; + if(0 === pad[0]){ + var width = pad[2], padty = pad[1]; + return function(x){ + var new_acc = [4, acc, fix_padding(padty, width, caml_call1(trans, x))]; + return make_printf(k, new_acc, fmt);}; + } + var padty$0 = pad[1]; + return function(w, x){ + var new_acc = [4, acc, fix_padding(padty$0, w, caml_call1(trans, x))]; + return make_printf(k, new_acc, fmt);}; + } + function make_printf$0(counter, k, acc, fmt){ + var k$0 = k, acc$0 = acc, fmt$0 = fmt; + for(;;){ + if(typeof fmt$0 === "number") return caml_call1(k$0, acc$0); + switch(fmt$0[0]){ + case 0: + var rest = fmt$0[1]; + return function(c){ + var new_acc = [5, acc$0, c]; + return make_printf(k$0, new_acc, rest);}; + case 1: + var rest$0 = fmt$0[1]; + return function(c){ + var + str = caml_call1(Stdlib_Char[2], c), + l = caml_ml_string_length(str), + res = caml_call2(Stdlib_Bytes[1], l + 2 | 0, 39); + caml_blit_string(str, 0, res, 1, l); + var new_acc = [4, acc$0, caml_call1(Stdlib_Bytes[48], res)]; + return make_printf(k$0, new_acc, rest$0);}; + case 2: + var rest$1 = fmt$0[2], pad = fmt$0[1]; + return make_padding + (k$0, acc$0, rest$1, pad, function(str){return str;}); + case 3: + var rest$2 = fmt$0[2], pad$0 = fmt$0[1]; + return make_padding(k$0, acc$0, rest$2, pad$0, string_to_caml_string); + case 4: + var + rest$3 = fmt$0[4], + prec = fmt$0[3], + pad$1 = fmt$0[2], + iconv = fmt$0[1]; + return make_int_padding_precision + (k$0, acc$0, rest$3, pad$1, prec, convert_int, iconv); + case 5: + var + rest$4 = fmt$0[4], + prec$0 = fmt$0[3], + pad$2 = fmt$0[2], + iconv$0 = fmt$0[1]; + return make_int_padding_precision + (k$0, acc$0, rest$4, pad$2, prec$0, convert_int32, iconv$0); + case 6: + var + rest$5 = fmt$0[4], + prec$1 = fmt$0[3], + pad$3 = fmt$0[2], + iconv$1 = fmt$0[1]; + return make_int_padding_precision + (k$0, + acc$0, + rest$5, + pad$3, + prec$1, + convert_nativeint, + iconv$1); + case 7: + var + rest$6 = fmt$0[4], + prec$2 = fmt$0[3], + pad$4 = fmt$0[2], + iconv$2 = fmt$0[1]; + return make_int_padding_precision + (k$0, acc$0, rest$6, pad$4, prec$2, convert_int64, iconv$2); + case 8: + var + rest$7 = fmt$0[4], + prec$3 = fmt$0[3], + pad$5 = fmt$0[2], + fconv = fmt$0[1]; + if(typeof pad$5 === "number"){ + if(typeof prec$3 === "number") + return prec$3 + ? function + (p, x){ + var str = convert_float(fconv, p, x); + return make_printf(k$0, [4, acc$0, str], rest$7); + } + : function + (x){ + var + str = + convert_float(fconv, default_float_precision(fconv), x); + return make_printf(k$0, [4, acc$0, str], rest$7); + }; + var p = prec$3[1]; + return function(x){ + var str = convert_float(fconv, p, x); + return make_printf(k$0, [4, acc$0, str], rest$7);}; + } + if(0 === pad$5[0]){ + var w = pad$5[2], padty = pad$5[1]; + if(typeof prec$3 === "number") + return prec$3 + ? function + (p, x){ + var str = fix_padding(padty, w, convert_float(fconv, p, x)); + return make_printf(k$0, [4, acc$0, str], rest$7); + } + : function + (x){ + var + str = + convert_float(fconv, default_float_precision(fconv), x), + str$0 = fix_padding(padty, w, str); + return make_printf(k$0, [4, acc$0, str$0], rest$7); + }; + var p$0 = prec$3[1]; + return function(x){ + var str = fix_padding(padty, w, convert_float(fconv, p$0, x)); + return make_printf(k$0, [4, acc$0, str], rest$7);}; + } + var padty$0 = pad$5[1]; + if(typeof prec$3 === "number") + return prec$3 + ? function + (w, p, x){ + var + str = fix_padding(padty$0, w, convert_float(fconv, p, x)); + return make_printf(k$0, [4, acc$0, str], rest$7); + } + : function + (w, x){ + var + str = + convert_float(fconv, default_float_precision(fconv), x), + str$0 = fix_padding(padty$0, w, str); + return make_printf(k$0, [4, acc$0, str$0], rest$7); + }; + var p$1 = prec$3[1]; + return function(w, x){ + var str = fix_padding(padty$0, w, convert_float(fconv, p$1, x)); + return make_printf(k$0, [4, acc$0, str], rest$7);}; + case 9: + var rest$8 = fmt$0[2], pad$6 = fmt$0[1]; + return make_padding(k$0, acc$0, rest$8, pad$6, Stdlib[30]); + case 10: + var + rest$9 = fmt$0[1], + acc$1 = [7, acc$0], + acc$0 = acc$1, + fmt$0 = rest$9; + continue; + case 11: + var + rest$10 = fmt$0[2], + str = fmt$0[1], + acc$2 = [2, acc$0, str], + acc$0 = acc$2, + fmt$0 = rest$10; + continue; + case 12: + var + rest$11 = fmt$0[2], + chr = fmt$0[1], + acc$3 = [3, acc$0, chr], + acc$0 = acc$3, + fmt$0 = rest$11; + continue; + case 13: + var + rest$12 = fmt$0[3], + sub_fmtty = fmt$0[2], + ty = string_of_fmtty(sub_fmtty); + return function(str){ + return make_printf(k$0, [4, acc$0, ty], rest$12);}; + case 14: + var rest$13 = fmt$0[3], fmtty = fmt$0[2]; + return function(param){ + var fmt = param[1], _cR_ = recast(fmt, fmtty); + return make_printf + (k$0, + acc$0, + caml_call2(CamlinternalFormatBasics[3], _cR_, rest$13));}; + case 15: + var rest$14 = fmt$0[1]; + return function(f, x){ + return make_printf + (k$0, + [6, acc$0, function(o){return caml_call2(f, o, x);}], + rest$14);}; + case 16: + var rest$15 = fmt$0[1]; + return function(f){return make_printf(k$0, [6, acc$0, f], rest$15);}; + case 17: + var + rest$16 = fmt$0[2], + fmting_lit = fmt$0[1], + acc$4 = [0, acc$0, fmting_lit], + acc$0 = acc$4, + fmt$0 = rest$16; + continue; + case 18: + var _cP_ = fmt$0[1]; + if(0 === _cP_[0]){ + var + rest$17 = fmt$0[2], + fmt$1 = _cP_[1][1], + k$3 = + function(acc, k, rest){ + function k$0(kacc){ + return make_printf(k, [1, acc, [0, kacc]], rest); + } + return k$0; + }, + k$1 = k$3(acc$0, k$0, rest$17), + k$0 = k$1, + acc$0 = 0, + fmt$0 = fmt$1; + continue; + } + var + rest$18 = fmt$0[2], + fmt$2 = _cP_[1][1], + k$4 = + function(acc, k, rest){ + function k$0(kacc){ + return make_printf(k, [1, acc, [1, kacc]], rest); + } + return k$0; + }, + k$2 = k$4(acc$0, k$0, rest$18), + k$0 = k$2, + acc$0 = 0, + fmt$0 = fmt$2; + continue; + case 19: + throw caml_maybe_attach_backtrace([0, Assert_failure, _s_], 1); + case 20: + var + rest$19 = fmt$0[3], + new_acc = [8, acc$0, cst_Printf_bad_conversion]; + return function(param){return make_printf(k$0, new_acc, rest$19);}; + case 21: + var rest$20 = fmt$0[2]; + return function(n){ + var new_acc = [4, acc$0, caml_format_int(cst_u$0, n)]; + return make_printf(k$0, new_acc, rest$20);}; + case 22: + var rest$21 = fmt$0[1]; + return function(c){ + var new_acc = [5, acc$0, c]; + return make_printf(k$0, new_acc, rest$21);}; + case 23: + var rest$22 = fmt$0[2], ign = fmt$0[1]; + if(counter >= 50) + return caml_trampoline_return + (make_ignored_param$0, [0, k$0, acc$0, ign, rest$22]); + var counter$1 = counter + 1 | 0; + return make_ignored_param$0(counter$1, k$0, acc$0, ign, rest$22); + default: + var + rest$23 = fmt$0[3], + f = fmt$0[2], + arity = fmt$0[1], + _cQ_ = caml_call1(f, 0); + if(counter >= 50) + return caml_trampoline_return + (make_custom$0, [0, k$0, acc$0, rest$23, arity, _cQ_]); + var counter$0 = counter + 1 | 0; + return make_custom$0(counter$0, k$0, acc$0, rest$23, arity, _cQ_); + } + } + } + function make_ignored_param$0(counter, k, acc, ign, fmt){ + if(typeof ign === "number") + switch(ign){ + case 0: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$0 = counter + 1 | 0; + return make_invalid_arg(counter$0, k, acc, fmt); + case 1: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$1 = counter + 1 | 0; + return make_invalid_arg(counter$1, k, acc, fmt); + case 2: + throw caml_maybe_attach_backtrace([0, Assert_failure, _t_], 1); + default: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$2 = counter + 1 | 0; + return make_invalid_arg(counter$2, k, acc, fmt); + } + switch(ign[0]){ + case 0: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$3 = counter + 1 | 0; + return make_invalid_arg(counter$3, k, acc, fmt); + case 1: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$4 = counter + 1 | 0; + return make_invalid_arg(counter$4, k, acc, fmt); + case 2: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$5 = counter + 1 | 0; + return make_invalid_arg(counter$5, k, acc, fmt); + case 3: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$6 = counter + 1 | 0; + return make_invalid_arg(counter$6, k, acc, fmt); + case 4: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$7 = counter + 1 | 0; + return make_invalid_arg(counter$7, k, acc, fmt); + case 5: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$8 = counter + 1 | 0; + return make_invalid_arg(counter$8, k, acc, fmt); + case 6: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$9 = counter + 1 | 0; + return make_invalid_arg(counter$9, k, acc, fmt); + case 7: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$10 = counter + 1 | 0; + return make_invalid_arg(counter$10, k, acc, fmt); + case 8: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$11 = counter + 1 | 0; + return make_invalid_arg(counter$11, k, acc, fmt); + case 9: + var fmtty = ign[2]; + if(counter >= 50) + return caml_trampoline_return + (make_from_fmtty$0, [0, k, acc, fmtty, fmt]); + var counter$14 = counter + 1 | 0; + return make_from_fmtty$0(counter$14, k, acc, fmtty, fmt); + case 10: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$12 = counter + 1 | 0; + return make_invalid_arg(counter$12, k, acc, fmt); + default: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$13 = counter + 1 | 0; + return make_invalid_arg(counter$13, k, acc, fmt); + } + } + function make_from_fmtty$0(counter, k, acc, fmtty, fmt){ + if(typeof fmtty !== "number") + switch(fmtty[0]){ + case 0: + var rest = fmtty[1]; + return function(param){return make_from_fmtty(k, acc, rest, fmt);}; + case 1: + var rest$0 = fmtty[1]; + return function(param){return make_from_fmtty(k, acc, rest$0, fmt);}; + case 2: + var rest$1 = fmtty[1]; + return function(param){return make_from_fmtty(k, acc, rest$1, fmt);}; + case 3: + var rest$2 = fmtty[1]; + return function(param){return make_from_fmtty(k, acc, rest$2, fmt);}; + case 4: + var rest$3 = fmtty[1]; + return function(param){return make_from_fmtty(k, acc, rest$3, fmt);}; + case 5: + var rest$4 = fmtty[1]; + return function(param){return make_from_fmtty(k, acc, rest$4, fmt);}; + case 6: + var rest$5 = fmtty[1]; + return function(param){return make_from_fmtty(k, acc, rest$5, fmt);}; + case 7: + var rest$6 = fmtty[1]; + return function(param){return make_from_fmtty(k, acc, rest$6, fmt);}; + case 8: + var rest$7 = fmtty[2]; + return function(param){return make_from_fmtty(k, acc, rest$7, fmt);}; + case 9: + var + rest$8 = fmtty[3], + ty2 = fmtty[2], + ty1 = fmtty[1], + ty = trans(symm(ty1), ty2); + return function(param){ + return make_from_fmtty + (k, + acc, + caml_call2(CamlinternalFormatBasics[1], ty, rest$8), + fmt);}; + case 10: + var rest$9 = fmtty[1]; + return function(param, _cO_){ + return make_from_fmtty(k, acc, rest$9, fmt);}; + case 11: + var rest$10 = fmtty[1]; + return function(param){return make_from_fmtty(k, acc, rest$10, fmt);}; + case 12: + var rest$11 = fmtty[1]; + return function(param){return make_from_fmtty(k, acc, rest$11, fmt);}; + case 13: + throw caml_maybe_attach_backtrace([0, Assert_failure, _u_], 1); + default: + throw caml_maybe_attach_backtrace([0, Assert_failure, _v_], 1); + } + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$0 = counter + 1 | 0; + return make_invalid_arg(counter$0, k, acc, fmt); + } + function make_invalid_arg(counter, k, acc, fmt){ + var _cN_ = [8, acc, cst_Printf_bad_conversion$0]; + if(counter >= 50) + return caml_trampoline_return(make_printf$0, [0, k, _cN_, fmt]); + var counter$0 = counter + 1 | 0; + return make_printf$0(counter$0, k, _cN_, fmt); + } + function make_custom$0(counter, k, acc, rest, arity, f){ + if(arity){ + var arity$0 = arity[1]; + return function(x){ + return make_custom(k, acc, rest, arity$0, caml_call1(f, x));}; + } + var _cM_ = [4, acc, f]; + if(counter >= 50) + return caml_trampoline_return(make_printf$0, [0, k, _cM_, rest]); + var counter$0 = counter + 1 | 0; + return make_printf$0(counter$0, k, _cM_, rest); + } + function make_printf(k, acc, fmt){ + return caml_trampoline(make_printf$0(0, k, acc, fmt)); + } + function make_ignored_param(k, acc, ign, fmt){ + return caml_trampoline(make_ignored_param$0(0, k, acc, ign, fmt)); + } + function make_from_fmtty(k, acc, fmtty, fmt){ + return caml_trampoline(make_from_fmtty$0(0, k, acc, fmtty, fmt)); + } + function make_custom(k, acc, rest, arity, f){ + return caml_trampoline(make_custom$0(0, k, acc, rest, arity, f)); + } + function fn_of_padding_precision(k, o, fmt, pad, prec){ + if(typeof pad === "number"){ + if(typeof prec !== "number"){ + var _cl_ = make_iprintf(k, o, fmt); + return function(_cL_){return _cl_;}; + } + if(prec){ + var _ci_ = make_iprintf(k, o, fmt), _cj_ = function(_cK_){return _ci_;}; + return function(_cJ_){return _cj_;}; + } + var _ck_ = make_iprintf(k, o, fmt); + return function(_cI_){return _ck_;}; + } + if(0 === pad[0]){ + if(typeof prec !== "number"){ + var _cp_ = make_iprintf(k, o, fmt); + return function(_cH_){return _cp_;}; + } + if(prec){ + var _cm_ = make_iprintf(k, o, fmt), _cn_ = function(_cG_){return _cm_;}; + return function(_cF_){return _cn_;}; + } + var _co_ = make_iprintf(k, o, fmt); + return function(_cE_){return _co_;}; + } + if(typeof prec !== "number"){ + var _cv_ = make_iprintf(k, o, fmt), _cw_ = function(_cD_){return _cv_;}; + return function(_cC_){return _cw_;}; + } + if(prec){ + var + _cq_ = make_iprintf(k, o, fmt), + _cr_ = function(_cB_){return _cq_;}, + _cs_ = function(_cA_){return _cr_;}; + return function(_cz_){return _cs_;}; + } + var _ct_ = make_iprintf(k, o, fmt); + function _cu_(_cy_){return _ct_;} + return function(_cx_){return _cu_;}; + } + function make_iprintf$0(counter, k, o, fmt){ + var k$0 = k, fmt$0 = fmt; + for(;;){ + if(typeof fmt$0 === "number") return caml_call1(k$0, o); + switch(fmt$0[0]){ + case 0: + var rest = fmt$0[1], _by_ = make_iprintf(k$0, o, rest); + return function(_ch_){return _by_;}; + case 1: + var rest$0 = fmt$0[1], _bz_ = make_iprintf(k$0, o, rest$0); + return function(_cg_){return _bz_;}; + case 2: + var _bA_ = fmt$0[1]; + if(typeof _bA_ === "number"){ + var rest$1 = fmt$0[2], _bB_ = make_iprintf(k$0, o, rest$1); + return function(_cf_){return _bB_;}; + } + if(0 === _bA_[0]){ + var rest$2 = fmt$0[2], _bC_ = make_iprintf(k$0, o, rest$2); + return function(_ce_){return _bC_;}; + } + var + rest$3 = fmt$0[2], + _bD_ = make_iprintf(k$0, o, rest$3), + _bE_ = function(_cd_){return _bD_;}; + return function(_cc_){return _bE_;}; + case 3: + var _bF_ = fmt$0[1]; + if(typeof _bF_ === "number"){ + var rest$4 = fmt$0[2], _bG_ = make_iprintf(k$0, o, rest$4); + return function(_cb_){return _bG_;}; + } + if(0 === _bF_[0]){ + var rest$5 = fmt$0[2], _bH_ = make_iprintf(k$0, o, rest$5); + return function(_ca_){return _bH_;}; + } + var + rest$6 = fmt$0[2], + _bI_ = make_iprintf(k$0, o, rest$6), + _bJ_ = function(_b$_){return _bI_;}; + return function(_b__){return _bJ_;}; + case 4: + var rest$7 = fmt$0[4], prec = fmt$0[3], pad = fmt$0[2]; + return fn_of_padding_precision(k$0, o, rest$7, pad, prec); + case 5: + var rest$8 = fmt$0[4], prec$0 = fmt$0[3], pad$0 = fmt$0[2]; + return fn_of_padding_precision(k$0, o, rest$8, pad$0, prec$0); + case 6: + var rest$9 = fmt$0[4], prec$1 = fmt$0[3], pad$1 = fmt$0[2]; + return fn_of_padding_precision(k$0, o, rest$9, pad$1, prec$1); + case 7: + var rest$10 = fmt$0[4], prec$2 = fmt$0[3], pad$2 = fmt$0[2]; + return fn_of_padding_precision(k$0, o, rest$10, pad$2, prec$2); + case 8: + var rest$11 = fmt$0[4], prec$3 = fmt$0[3], pad$3 = fmt$0[2]; + return fn_of_padding_precision(k$0, o, rest$11, pad$3, prec$3); + case 9: + var _bK_ = fmt$0[1]; + if(typeof _bK_ === "number"){ + var rest$12 = fmt$0[2], _bL_ = make_iprintf(k$0, o, rest$12); + return function(_b9_){return _bL_;}; + } + if(0 === _bK_[0]){ + var rest$13 = fmt$0[2], _bM_ = make_iprintf(k$0, o, rest$13); + return function(_b8_){return _bM_;}; + } + var + rest$14 = fmt$0[2], + _bN_ = make_iprintf(k$0, o, rest$14), + _bO_ = function(_b7_){return _bN_;}; + return function(_b6_){return _bO_;}; + case 10: + var rest$15 = fmt$0[1], fmt$0 = rest$15; continue; + case 11: + var rest$16 = fmt$0[2], fmt$0 = rest$16; continue; + case 12: + var rest$17 = fmt$0[2], fmt$0 = rest$17; continue; + case 13: + var rest$18 = fmt$0[3], _bP_ = make_iprintf(k$0, o, rest$18); + return function(_b5_){return _bP_;}; + case 14: + var rest$19 = fmt$0[3], fmtty = fmt$0[2]; + return function(param){ + var fmt = param[1], _b4_ = recast(fmt, fmtty); + return make_iprintf + (k$0, + o, + caml_call2(CamlinternalFormatBasics[3], _b4_, rest$19));}; + case 15: + var + rest$20 = fmt$0[1], + _bQ_ = make_iprintf(k$0, o, rest$20), + _bR_ = function(_b3_){return _bQ_;}; + return function(_b2_){return _bR_;}; + case 16: + var rest$21 = fmt$0[1], _bS_ = make_iprintf(k$0, o, rest$21); + return function(_b1_){return _bS_;}; + case 17: + var rest$22 = fmt$0[2], fmt$0 = rest$22; continue; + case 18: + var _bT_ = fmt$0[1]; + if(0 === _bT_[0]){ + var + rest$23 = fmt$0[2], + fmt$1 = _bT_[1][1], + k$3 = + function(k, rest){ + function k$0(koc){return make_iprintf(k, koc, rest);} + return k$0; + }, + k$1 = k$3(k$0, rest$23), + k$0 = k$1, + fmt$0 = fmt$1; + continue; + } + var + rest$24 = fmt$0[2], + fmt$2 = _bT_[1][1], + k$4 = + function(k, rest){ + function k$0(koc){return make_iprintf(k, koc, rest);} + return k$0; + }, + k$2 = k$4(k$0, rest$24), + k$0 = k$2, + fmt$0 = fmt$2; + continue; + case 19: + throw caml_maybe_attach_backtrace([0, Assert_failure, _w_], 1); + case 20: + var rest$25 = fmt$0[3], _bU_ = make_iprintf(k$0, o, rest$25); + return function(_b0_){return _bU_;}; + case 21: + var rest$26 = fmt$0[2], _bV_ = make_iprintf(k$0, o, rest$26); + return function(_bZ_){return _bV_;}; + case 22: + var rest$27 = fmt$0[1], _bW_ = make_iprintf(k$0, o, rest$27); + return function(_bY_){return _bW_;}; + case 23: + var rest$28 = fmt$0[2], ign = fmt$0[1], _bX_ = 0; + return make_ignored_param + (function(param){return caml_call1(k$0, o);}, + _bX_, + ign, + rest$28); + default: + var rest$29 = fmt$0[3], arity = fmt$0[1]; + if(counter >= 50) + return caml_trampoline_return + (fn_of_custom_arity$0, [0, k$0, o, rest$29, arity]); + var counter$0 = counter + 1 | 0; + return fn_of_custom_arity$0(counter$0, k$0, o, rest$29, arity); + } + } + } + function fn_of_custom_arity$0(counter, k, o, fmt, param){ + if(param){ + var arity = param[1], _bw_ = fn_of_custom_arity(k, o, fmt, arity); + return function(_bx_){return _bw_;}; + } + if(counter >= 50) + return caml_trampoline_return(make_iprintf$0, [0, k, o, fmt]); + var counter$0 = counter + 1 | 0; + return make_iprintf$0(counter$0, k, o, fmt); + } + function make_iprintf(k, o, fmt){ + return caml_trampoline(make_iprintf$0(0, k, o, fmt)); + } + function fn_of_custom_arity(k, o, fmt, param){ + return caml_trampoline(fn_of_custom_arity$0(0, k, o, fmt, param)); + } + function output_acc(o, acc){ + var acc$0 = acc; + for(;;){ + if(typeof acc$0 === "number") return 0; + switch(acc$0[0]){ + case 0: + var + fmting_lit = acc$0[2], + p = acc$0[1], + s = string_of_formatting_lit(fmting_lit); + output_acc(o, p); + return caml_call2(Stdlib[66], o, s); + case 1: + var match = acc$0[2], p$0 = acc$0[1]; + if(0 === match[0]){ + var acc$1 = match[1]; + output_acc(o, p$0); + caml_call2(Stdlib[66], o, cst$18); + var acc$0 = acc$1; + continue; + } + var acc$2 = match[1]; + output_acc(o, p$0); + caml_call2(Stdlib[66], o, cst$19); + var acc$0 = acc$2; + continue; + case 6: + var f = acc$0[2], p$3 = acc$0[1]; + output_acc(o, p$3); + return caml_call1(f, o); + case 7: + var p$4 = acc$0[1]; + output_acc(o, p$4); + return caml_call1(Stdlib[63], o); + case 8: + var msg = acc$0[2], p$5 = acc$0[1]; + output_acc(o, p$5); + return caml_call1(Stdlib[1], msg); + case 2: + case 4: + var s$0 = acc$0[2], p$1 = acc$0[1]; + output_acc(o, p$1); + return caml_call2(Stdlib[66], o, s$0); + default: + var c = acc$0[2], p$2 = acc$0[1]; + output_acc(o, p$2); + return caml_call2(Stdlib[65], o, c); + } + } + } + function bufput_acc(b, acc){ + var acc$0 = acc; + for(;;){ + if(typeof acc$0 === "number") return 0; + switch(acc$0[0]){ + case 0: + var + fmting_lit = acc$0[2], + p = acc$0[1], + s = string_of_formatting_lit(fmting_lit); + bufput_acc(b, p); + return caml_call2(Stdlib_Buffer[16], b, s); + case 1: + var match = acc$0[2], p$0 = acc$0[1]; + if(0 === match[0]){ + var acc$1 = match[1]; + bufput_acc(b, p$0); + caml_call2(Stdlib_Buffer[16], b, cst$20); + var acc$0 = acc$1; + continue; + } + var acc$2 = match[1]; + bufput_acc(b, p$0); + caml_call2(Stdlib_Buffer[16], b, cst$21); + var acc$0 = acc$2; + continue; + case 6: + var f = acc$0[2], p$3 = acc$0[1]; + bufput_acc(b, p$3); + return caml_call1(f, b); + case 7: + var acc$3 = acc$0[1], acc$0 = acc$3; continue; + case 8: + var msg = acc$0[2], p$4 = acc$0[1]; + bufput_acc(b, p$4); + return caml_call1(Stdlib[1], msg); + case 2: + case 4: + var s$0 = acc$0[2], p$1 = acc$0[1]; + bufput_acc(b, p$1); + return caml_call2(Stdlib_Buffer[16], b, s$0); + default: + var c = acc$0[2], p$2 = acc$0[1]; + bufput_acc(b, p$2); + return caml_call2(Stdlib_Buffer[12], b, c); + } + } + } + function strput_acc(b, acc){ + var acc$0 = acc; + for(;;){ + if(typeof acc$0 === "number") return 0; + switch(acc$0[0]){ + case 0: + var + fmting_lit = acc$0[2], + p = acc$0[1], + s = string_of_formatting_lit(fmting_lit); + strput_acc(b, p); + return caml_call2(Stdlib_Buffer[16], b, s); + case 1: + var match = acc$0[2], p$0 = acc$0[1]; + if(0 === match[0]){ + var acc$1 = match[1]; + strput_acc(b, p$0); + caml_call2(Stdlib_Buffer[16], b, cst$22); + var acc$0 = acc$1; + continue; + } + var acc$2 = match[1]; + strput_acc(b, p$0); + caml_call2(Stdlib_Buffer[16], b, cst$23); + var acc$0 = acc$2; + continue; + case 6: + var f = acc$0[2], p$3 = acc$0[1]; + strput_acc(b, p$3); + var _bv_ = caml_call1(f, 0); + return caml_call2(Stdlib_Buffer[16], b, _bv_); + case 7: + var acc$3 = acc$0[1], acc$0 = acc$3; continue; + case 8: + var msg = acc$0[2], p$4 = acc$0[1]; + strput_acc(b, p$4); + return caml_call1(Stdlib[1], msg); + case 2: + case 4: + var s$0 = acc$0[2], p$1 = acc$0[1]; + strput_acc(b, p$1); + return caml_call2(Stdlib_Buffer[16], b, s$0); + default: + var c = acc$0[2], p$2 = acc$0[1]; + strput_acc(b, p$2); + return caml_call2(Stdlib_Buffer[12], b, c); + } + } + } + function failwith_message(param){ + var fmt = param[1], buf = caml_call1(Stdlib_Buffer[1], 256); + function k(acc){ + strput_acc(buf, acc); + var _bu_ = caml_call1(Stdlib_Buffer[2], buf); + return caml_call1(Stdlib[2], _bu_); + } + return make_printf(k, 0, fmt); + } + function open_box_of_string(str){ + if(runtime.caml_string_equal(str, cst$43)) return _x_; + var len = caml_ml_string_length(str); + function invalid_box(param){ + return caml_call1(failwith_message(_y_), str); + } + function parse_spaces(i){ + var i$0 = i; + for(;;){ + if(i$0 === len) return i$0; + var match = caml_string_get(str, i$0); + if(9 !== match && 32 !== match) return i$0; + var i$1 = i$0 + 1 | 0, i$0 = i$1; + } + } + var wstart = parse_spaces(0), wend = wstart; + for(;;){ + if(wend !== len && 25 >= caml_string_get(str, wend) - 97 >>> 0){var j = wend + 1 | 0, wend = j; continue;} + var + box_name = caml_call3(Stdlib_String[15], str, wstart, wend - wstart | 0), + nstart = parse_spaces(wend), + nend = nstart; + for(;;){ + if(nend !== len){ + var match = caml_string_get(str, nend), switch$0 = 0; + if(48 <= match){ + if(58 > match) switch$0 = 1; + } + else if(45 === match) switch$0 = 1; + if(switch$0){var j$0 = nend + 1 | 0, nend = j$0; continue;} + } + if(nstart === nend) + var indent = 0; + else + try{ + var + _bs_ = + runtime.caml_int_of_string + (caml_call3(Stdlib_String[15], str, nstart, nend - nstart | 0)), + indent = _bs_; + } + catch(_bt_){ + var _br_ = caml_wrap_exception(_bt_); + if(_br_[1] !== Stdlib[7]) throw caml_maybe_attach_backtrace(_br_, 0); + var indent = invalid_box(0); + } + var exp_end = parse_spaces(nend); + if(exp_end !== len) invalid_box(0); + var switch$1 = 0; + if + (caml_string_notequal(box_name, cst$43) + && caml_string_notequal(box_name, "b")) + var + box_type = + caml_string_notequal(box_name, "h") + ? caml_string_notequal + (box_name, "hov") + ? caml_string_notequal + (box_name, "hv") + ? caml_string_notequal(box_name, "v") ? invalid_box(0) : 1 + : 2 + : 3 + : 0; + else + switch$1 = 1; + if(switch$1) var box_type = 4; + return [0, indent, box_type]; + } + } + } + function make_padding_fmt_ebb(pad, fmt){ + if(typeof pad === "number") return [0, 0, fmt]; + if(0 === pad[0]){var w = pad[2], s = pad[1]; return [0, [0, s, w], fmt];} + var s$0 = pad[1]; + return [0, [1, s$0], fmt]; + } + function make_padprec_fmt_ebb(pad, prec, fmt){ + if(typeof prec === "number") + var match = prec ? [0, 1, fmt] : [0, 0, fmt]; + else + var p = prec[1], match = [0, [0, p], fmt]; + var prec$0 = match[1]; + if(typeof pad === "number") return [0, 0, prec$0, fmt]; + if(0 === pad[0]){ + var w = pad[2], s = pad[1]; + return [0, [0, s, w], prec$0, fmt]; + } + var s$0 = pad[1]; + return [0, [1, s$0], prec$0, fmt]; + } + function fmt_ebb_of_string(legacy_behavior, str){ + if(legacy_behavior) + var flag = legacy_behavior[1], legacy_behavior$0 = flag; + else + var legacy_behavior$0 = 1; + function invalid_format_message(str_ind, msg){ + return caml_call3(failwith_message(_z_), str, str_ind, msg); + } + function unexpected_end_of_format(end_ind){ + return invalid_format_message(end_ind, cst_unexpected_end_of_format); + } + function invalid_format_without(str_ind, c, s){ + return caml_call4(failwith_message(_A_), str, str_ind, c, s); + } + function expected_character(str_ind, expected, read){ + return caml_call4(failwith_message(_B_), str, str_ind, expected, read); + } + function add_literal(lit_start, str_ind, fmt){ + var size = str_ind - lit_start | 0; + return 0 === size + ? [0, fmt] + : 1 + === size + ? [0, [12, caml_string_get(str, lit_start), fmt]] + : [0, + [11, + caml_call3(Stdlib_String[15], str, lit_start, size), + fmt]]; + } + function parse(lit_start, end_ind){ + var str_ind = lit_start; + for(;;){ + if(str_ind === end_ind) return add_literal(lit_start, str_ind, 0); + var match = caml_string_get(str, str_ind); + if(37 === match){ + var str_ind$2 = str_ind + 1 | 0; + if(str_ind$2 === end_ind) unexpected_end_of_format(end_ind); + var + match$1 = + 95 === caml_string_get(str, str_ind$2) + ? parse_flags(str_ind, str_ind$2 + 1 | 0, end_ind, 1) + : parse_flags(str_ind, str_ind$2, end_ind, 0), + fmt_rest = match$1[1]; + return add_literal(lit_start, str_ind, fmt_rest); + } + if(64 !== match){ + var str_ind$1 = str_ind + 1 | 0, str_ind = str_ind$1; + continue; + } + var str_ind$0 = str_ind + 1 | 0; + if(str_ind$0 === end_ind) + var match$0 = _N_; + else{ + var c = caml_string_get(str, str_ind$0), switch$0 = 0; + if(65 <= c) + if(94 <= c){ + var switcher = c - 123 | 0; + if(2 < switcher >>> 0) + switch$0 = 1; + else + switch(switcher){ + case 0: + var match$0 = parse_tag(1, str_ind$0 + 1 | 0, end_ind); break; + case 1: + switch$0 = 1; break; + default: + var + fmt_rest$2 = parse(str_ind$0 + 1 | 0, end_ind)[1], + match$0 = [0, [17, 1, fmt_rest$2]]; + } + } + else if(91 <= c) + switch(c - 91 | 0){ + case 0: + var match$0 = parse_tag(0, str_ind$0 + 1 | 0, end_ind); break; + case 1: + switch$0 = 1; break; + default: + var + fmt_rest$3 = parse(str_ind$0 + 1 | 0, end_ind)[1], + match$0 = [0, [17, 0, fmt_rest$3]]; + } + else + switch$0 = 1; + else if(10 === c) + var + fmt_rest$4 = parse(str_ind$0 + 1 | 0, end_ind)[1], + match$0 = [0, [17, 3, fmt_rest$4]]; + else if(32 <= c) + switch(c - 32 | 0){ + case 0: + var + fmt_rest$5 = parse(str_ind$0 + 1 | 0, end_ind)[1], + match$0 = [0, [17, _O_, fmt_rest$5]]; + break; + case 5: + var switch$1 = 0; + if + ((str_ind$0 + 1 | 0) < end_ind + && 37 === caml_string_get(str, str_ind$0 + 1 | 0)) + var + fmt_rest$6 = parse(str_ind$0 + 2 | 0, end_ind)[1], + match$0 = [0, [17, 6, fmt_rest$6]]; + else + switch$1 = 1; + if(switch$1) + var + fmt_rest$7 = parse(str_ind$0, end_ind)[1], + match$0 = [0, [12, 64, fmt_rest$7]]; + break; + case 12: + var + fmt_rest$8 = parse(str_ind$0 + 1 | 0, end_ind)[1], + match$0 = [0, [17, _P_, fmt_rest$8]]; + break; + case 14: + var + fmt_rest$9 = parse(str_ind$0 + 1 | 0, end_ind)[1], + match$0 = [0, [17, 4, fmt_rest$9]]; + break; + case 27: + var str_ind$3 = str_ind$0 + 1 | 0; + try{ + var + _bg_ = str_ind$3 === end_ind ? 1 : 0, + _bh_ = _bg_ || (60 !== caml_string_get(str, str_ind$3) ? 1 : 0); + if(_bh_) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var + str_ind_1 = parse_spaces(str_ind$3 + 1 | 0, end_ind), + match$2 = caml_string_get(str, str_ind_1), + switch$2 = 0; + if(48 <= match$2){ + if(58 > match$2) switch$2 = 1; + } + else if(45 === match$2) switch$2 = 1; + if(! switch$2) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var + match$3 = parse_integer(str_ind_1, end_ind), + width = match$3[2], + str_ind_2 = match$3[1], + str_ind_3 = parse_spaces(str_ind_2, end_ind), + switcher$0 = caml_string_get(str, str_ind_3) - 45 | 0, + switch$3 = 0; + if(12 < switcher$0 >>> 0) + if(17 === switcher$0) + var + s = + caml_call3 + (Stdlib_String[15], + str, + str_ind$3 - 2 | 0, + (str_ind_3 - str_ind$3 | 0) + 3 | 0), + _bi_ = [0, s, width, 0], + _bj_ = str_ind_3 + 1 | 0, + formatting_lit$0 = _bi_, + next_ind = _bj_; + else + switch$3 = 1; + else if(1 < switcher$0 - 1 >>> 0){ + var + match$4 = parse_integer(str_ind_3, end_ind), + offset = match$4[2], + str_ind_4 = match$4[1], + str_ind_5 = parse_spaces(str_ind_4, end_ind); + if(62 !== caml_string_get(str, str_ind_5)) + throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var + s$0 = + caml_call3 + (Stdlib_String[15], + str, + str_ind$3 - 2 | 0, + (str_ind_5 - str_ind$3 | 0) + 3 | 0), + _bk_ = [0, s$0, width, offset], + _bl_ = str_ind_5 + 1 | 0, + formatting_lit$0 = _bk_, + next_ind = _bl_; + } + else + switch$3 = 1; + if(switch$3) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + } + catch(_bq_){ + var _bf_ = caml_wrap_exception(_bq_); + if(_bf_ !== Stdlib[8] && _bf_[1] !== Stdlib[7]) + throw caml_maybe_attach_backtrace(_bf_, 0); + var formatting_lit$0 = formatting_lit, next_ind = str_ind$3; + } + var + fmt_rest$12 = parse(next_ind, end_ind)[1], + match$0 = [0, [17, formatting_lit$0, fmt_rest$12]]; + break; + case 28: + var str_ind$4 = str_ind$0 + 1 | 0; + try{ + var + str_ind_1$0 = parse_spaces(str_ind$4, end_ind), + match$6 = caml_string_get(str, str_ind_1$0), + switch$4 = 0; + if(48 <= match$6){ + if(58 > match$6) switch$4 = 1; + } + else if(45 === match$6) switch$4 = 1; + if(switch$4){ + var + match$7 = parse_integer(str_ind_1$0, end_ind), + size = match$7[2], + str_ind_2$0 = match$7[1], + str_ind_3$0 = parse_spaces(str_ind_2$0, end_ind); + if(62 !== caml_string_get(str, str_ind_3$0)) + throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var + s$1 = + caml_call3 + (Stdlib_String[15], + str, + str_ind$4 - 2 | 0, + (str_ind_3$0 - str_ind$4 | 0) + 3 | 0), + _bo_ = [0, [0, str_ind_3$0 + 1 | 0, [1, s$1, size]]]; + } + else + var _bo_ = 0; + var _bn_ = _bo_; + } + catch(_bp_){ + var _bm_ = caml_wrap_exception(_bp_); + if(_bm_ !== Stdlib[8] && _bm_[1] !== Stdlib[7]) + throw caml_maybe_attach_backtrace(_bm_, 0); + var _bn_ = 0; + } + if(_bn_) + var + match$5 = _bn_[1], + formatting_lit$1 = match$5[2], + next_ind$0 = match$5[1], + fmt_rest$13 = parse(next_ind$0, end_ind)[1], + _be_ = [0, [17, formatting_lit$1, fmt_rest$13]]; + else + var + fmt_rest$14 = parse(str_ind$4, end_ind)[1], + _be_ = [0, [17, _Q_, fmt_rest$14]]; + var match$0 = _be_; + break; + case 31: + var + fmt_rest$10 = parse(str_ind$0 + 1 | 0, end_ind)[1], + match$0 = [0, [17, 2, fmt_rest$10]]; + break; + case 32: + var + fmt_rest$11 = parse(str_ind$0 + 1 | 0, end_ind)[1], + match$0 = [0, [17, 5, fmt_rest$11]]; + break; + default: switch$0 = 1; + } + else + switch$0 = 1; + if(switch$0) + var + fmt_rest$1 = parse(str_ind$0 + 1 | 0, end_ind)[1], + match$0 = [0, [17, [2, c], fmt_rest$1]]; + } + var fmt_rest$0 = match$0[1]; + return add_literal(lit_start, str_ind, fmt_rest$0); + } + } + function parse_conversion + (pct_ind, + str_ind, + end_ind, + plus, + hash, + space, + ign, + pad, + prec, + padprec, + symb){ + var + plus_used = [0, 0], + hash_used = [0, 0], + space_used = [0, 0], + ign_used = [0, 0], + pad_used = [0, 0], + prec_used = [0, 0]; + function get_plus(param){plus_used[1] = 1; return plus;} + function get_hash(param){hash_used[1] = 1; return hash;} + function get_space(param){space_used[1] = 1; return space;} + function get_ign(param){ign_used[1] = 1; return ign;} + function get_pad(param){pad_used[1] = 1; return pad;} + function get_prec(param){prec_used[1] = 1; return prec;} + function get_padprec(param){pad_used[1] = 1; return padprec;} + function get_int_pad(param){ + var pad = get_pad(0), match = get_prec(0); + if(typeof match === "number" && ! match) return pad; + if(typeof pad === "number") return 0; + if(0 !== pad[0]) + return 2 <= pad[1] + ? legacy_behavior$0 + ? _H_ + : incompatible_flag(pct_ind, str_ind, 48, cst_precision$1) + : pad; + if(2 > pad[1]) return pad; + var n = pad[2]; + return legacy_behavior$0 + ? [0, 1, n] + : incompatible_flag(pct_ind, str_ind, 48, cst_precision$0); + } + function check_no_0(symb, pad){ + if(typeof pad === "number") return pad; + if(0 !== pad[0]) + return 2 <= pad[1] + ? legacy_behavior$0 + ? _I_ + : incompatible_flag(pct_ind, str_ind, symb, cst_0$1) + : pad; + if(2 > pad[1]) return pad; + var width = pad[2]; + return legacy_behavior$0 + ? [0, 1, width] + : incompatible_flag(pct_ind, str_ind, symb, cst_0$0); + } + function opt_of_pad(c, pad){ + if(typeof pad === "number") return 0; + if(0 === pad[0]) + switch(pad[1]){ + case 0: + var width = pad[2]; + return legacy_behavior$0 + ? [0, width] + : incompatible_flag(pct_ind, str_ind, c, cst$24); + case 1: + var width$0 = pad[2]; return [0, width$0]; + default: + var width$1 = pad[2]; + return legacy_behavior$0 + ? [0, width$1] + : incompatible_flag(pct_ind, str_ind, c, cst_0$2); + } + return incompatible_flag(pct_ind, str_ind, c, cst$25); + } + function get_pad_opt(c){return opt_of_pad(c, get_pad(0));} + function get_padprec_opt(c){return opt_of_pad(c, get_padprec(0));} + var switch$0 = 0; + if(124 <= symb) + switch$0 = 1; + else + switch(symb){ + case 33: + var + fmt_rest$5 = parse(str_ind, end_ind)[1], + fmt_result = [0, [10, fmt_rest$5]]; + break; + case 40: + var + sub_end = search_subformat_end(str_ind, end_ind, 41), + fmt_rest$7 = parse(sub_end + 2 | 0, end_ind)[1], + sub_fmt = parse(str_ind, sub_end)[1], + sub_fmtty = fmtty_of_fmt(sub_fmt); + if(get_ign(0)) + var + ignored$2 = [9, get_pad_opt(95), sub_fmtty], + _aN_ = [0, [23, ignored$2, fmt_rest$7]]; + else + var _aN_ = [0, [14, get_pad_opt(40), sub_fmtty, fmt_rest$7]]; + var fmt_result = _aN_; + break; + case 44: + var fmt_result = parse(str_ind, end_ind); break; + case 67: + var + fmt_rest$10 = parse(str_ind, end_ind)[1], + _aP_ = + get_ign(0) ? [0, [23, 1, fmt_rest$10]] : [0, [1, fmt_rest$10]], + fmt_result = _aP_; + break; + case 78: + var fmt_rest$14 = parse(str_ind, end_ind)[1], counter$0 = 2; + if(get_ign(0)) + var + ignored$6 = [11, counter$0], + _aV_ = [0, [23, ignored$6, fmt_rest$14]]; + else + var _aV_ = [0, [21, counter$0, fmt_rest$14]]; + var fmt_result = _aV_; + break; + case 83: + var + pad$6 = check_no_0(symb, get_padprec(0)), + fmt_rest$15 = parse(str_ind, end_ind)[1]; + if(get_ign(0)) + var + ignored$7 = [1, get_padprec_opt(95)], + _aW_ = [0, [23, ignored$7, fmt_rest$15]]; + else + var + match$5 = make_padding_fmt_ebb(pad$6, fmt_rest$15), + fmt_rest$16 = match$5[2], + pad$7 = match$5[1], + _aW_ = [0, [3, pad$7, fmt_rest$16]]; + var fmt_result = _aW_; + break; + case 91: + if(str_ind === end_ind) unexpected_end_of_format(end_ind); + var + char_set = create_char_set(0), + add_char = function(c){return add_in_char_set(char_set, c);}, + add_range = + function(c$0, c){ + if(c >= c$0){ + var i = c$0; + for(;;){ + add_in_char_set(char_set, caml_call1(Stdlib[29], i)); + var _bd_ = i + 1 | 0; + if(c !== i){var i = _bd_; continue;} + break; + } + } + return 0; + }, + fail_single_percent = + function(str_ind){ + return caml_call2(failwith_message(_R_), str, str_ind); + }, + parse_char_set_content = + function(counter, str_ind, end_ind){ + var str_ind$0 = str_ind; + for(;;){ + if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); + var c = caml_string_get(str, str_ind$0); + if(45 === c){ + add_char(45); + var str_ind$1 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$1; + continue; + } + if(93 === c) return str_ind$0 + 1 | 0; + var _bc_ = str_ind$0 + 1 | 0; + if(counter >= 50) + return caml_trampoline_return + (parse_char_set_after_char$0, [0, _bc_, end_ind, c]); + var counter$0 = counter + 1 | 0; + return parse_char_set_after_char$0(counter$0, _bc_, end_ind, c); + } + }, + parse_char_set_after_char$0 = + function(counter, str_ind, end_ind, c){ + var str_ind$0 = str_ind, c$0 = c; + for(;;){ + if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); + var c$1 = caml_string_get(str, str_ind$0), switch$0 = 0; + if(46 <= c$1){ + if(64 === c$1) + switch$0 = 1; + else if(93 === c$1){add_char(c$0); return str_ind$0 + 1 | 0;} + } + else if(37 === c$1) + switch$0 = 1; + else if(45 <= c$1){ + var str_ind$2 = str_ind$0 + 1 | 0; + if(str_ind$2 === end_ind) unexpected_end_of_format(end_ind); + var c$2 = caml_string_get(str, str_ind$2); + if(37 === c$2){ + if((str_ind$2 + 1 | 0) === end_ind) + unexpected_end_of_format(end_ind); + var c$3 = caml_string_get(str, str_ind$2 + 1 | 0); + if(37 !== c$3 && 64 !== c$3) + return fail_single_percent(str_ind$2); + add_range(c$0, c$3); + var _ba_ = str_ind$2 + 2 | 0; + if(counter >= 50) + return caml_trampoline_return + (parse_char_set_content, [0, _ba_, end_ind]); + var counter$2 = counter + 1 | 0; + return parse_char_set_content(counter$2, _ba_, end_ind); + } + if(93 === c$2){ + add_char(c$0); + add_char(45); + return str_ind$2 + 1 | 0; + } + add_range(c$0, c$2); + var _bb_ = str_ind$2 + 1 | 0; + if(counter >= 50) + return caml_trampoline_return + (parse_char_set_content, [0, _bb_, end_ind]); + var counter$1 = counter + 1 | 0; + return parse_char_set_content(counter$1, _bb_, end_ind); + } + if(switch$0 && 37 === c$0){ + add_char(c$1); + var _a$_ = str_ind$0 + 1 | 0; + if(counter >= 50) + return caml_trampoline_return + (parse_char_set_content, [0, _a$_, end_ind]); + var counter$0 = counter + 1 | 0; + return parse_char_set_content(counter$0, _a$_, end_ind); + } + if(37 === c$0) fail_single_percent(str_ind$0); + add_char(c$0); + var + str_ind$1 = str_ind$0 + 1 | 0, + str_ind$0 = str_ind$1, + c$0 = c$1; + } + }, + parse_char_set_after_char = + function(str_ind, end_ind, c){ + return caml_trampoline + (parse_char_set_after_char$0(0, str_ind, end_ind, c)); + }; + if(str_ind === end_ind) unexpected_end_of_format(end_ind); + if(94 === caml_string_get(str, str_ind)) + var str_ind$0 = str_ind + 1 | 0, reverse = 1, str_ind$1 = str_ind$0; + else + var reverse = 0, str_ind$1 = str_ind; + if(str_ind$1 === end_ind) unexpected_end_of_format(end_ind); + var + c = caml_string_get(str, str_ind$1), + next_ind = parse_char_set_after_char(str_ind$1 + 1 | 0, end_ind, c), + char_set$0 = freeze_char_set(char_set), + char_set$1 = reverse ? rev_char_set(char_set$0) : char_set$0, + fmt_rest$19 = parse(next_ind, end_ind)[1]; + if(get_ign(0)) + var + ignored$9 = [10, get_pad_opt(95), char_set$1], + _a1_ = [0, [23, ignored$9, fmt_rest$19]]; + else + var _a1_ = [0, [20, get_pad_opt(91), char_set$1, fmt_rest$19]]; + var fmt_result = _a1_; + break; + case 97: + var + fmt_rest$20 = parse(str_ind, end_ind)[1], + fmt_result = [0, [15, fmt_rest$20]]; + break; + case 99: + var + char_format = + function(fmt_rest){ + return get_ign(0) ? [0, [23, 0, fmt_rest]] : [0, [0, fmt_rest]]; + }, + fmt_rest$21 = parse(str_ind, end_ind)[1], + match$7 = get_pad_opt(99); + if(match$7){ + if(0 === match$7[1]) + var + _a2_ = + get_ign(0) ? [0, [23, 3, fmt_rest$21]] : [0, [22, fmt_rest$21]], + _a3_ = _a2_; + else + var + _a3_ = + legacy_behavior$0 + ? char_format(fmt_rest$21) + : invalid_format_message + (str_ind, cst_non_zero_widths_are_unsupp); + var _a4_ = _a3_; + } + else + var _a4_ = char_format(fmt_rest$21); + var fmt_result = _a4_; + break; + case 114: + var + fmt_rest$22 = parse(str_ind, end_ind)[1], + _a5_ = + get_ign(0) ? [0, [23, 2, fmt_rest$22]] : [0, [19, fmt_rest$22]], + fmt_result = _a5_; + break; + case 115: + var + pad$9 = check_no_0(symb, get_padprec(0)), + fmt_rest$23 = parse(str_ind, end_ind)[1]; + if(get_ign(0)) + var + ignored$10 = [0, get_padprec_opt(95)], + _a6_ = [0, [23, ignored$10, fmt_rest$23]]; + else + var + match$8 = make_padding_fmt_ebb(pad$9, fmt_rest$23), + fmt_rest$24 = match$8[2], + pad$10 = match$8[1], + _a6_ = [0, [2, pad$10, fmt_rest$24]]; + var fmt_result = _a6_; + break; + case 116: + var + fmt_rest$25 = parse(str_ind, end_ind)[1], + fmt_result = [0, [16, fmt_rest$25]]; + break; + case 123: + var + sub_end$0 = search_subformat_end(str_ind, end_ind, 125), + sub_fmt$0 = parse(str_ind, sub_end$0)[1], + fmt_rest$26 = parse(sub_end$0 + 2 | 0, end_ind)[1], + sub_fmtty$0 = fmtty_of_fmt(sub_fmt$0); + if(get_ign(0)) + var + ignored$11 = [8, get_pad_opt(95), sub_fmtty$0], + _a7_ = [0, [23, ignored$11, fmt_rest$26]]; + else + var _a7_ = [0, [13, get_pad_opt(123), sub_fmtty$0, fmt_rest$26]]; + var fmt_result = _a7_; + break; + case 66: + case 98: + var + pad$3 = check_no_0(symb, get_padprec(0)), + fmt_rest$8 = parse(str_ind, end_ind)[1]; + if(get_ign(0)) + var + ignored$3 = [7, get_padprec_opt(95)], + _aO_ = [0, [23, ignored$3, fmt_rest$8]]; + else + var + match$3 = make_padding_fmt_ebb(pad$3, fmt_rest$8), + fmt_rest$9 = match$3[2], + pad$4 = match$3[1], + _aO_ = [0, [9, pad$4, fmt_rest$9]]; + var fmt_result = _aO_; + break; + case 37: + case 64: + var + fmt_rest$6 = parse(str_ind, end_ind)[1], + fmt_result = [0, [12, symb, fmt_rest$6]]; + break; + case 76: + case 108: + case 110: + var switch$1 = 0; + if(str_ind === end_ind) + switch$1 = 1; + else{ + var + symb$0 = caml_string_get(str, str_ind), + _a8_ = symb$0 - 88 | 0, + switch$2 = 0; + if(32 >= _a8_ >>> 0) + switch(_a8_){ + case 0: + case 12: + case 17: + case 23: + case 29: + case 32: + var _aU_ = 1; switch$2 = 1; break; + } + if(! switch$2) var _aU_ = 0; + if(_aU_) switch$0 = 1; else switch$1 = 1; + } + if(switch$1){ + var fmt_rest$13 = parse(str_ind, end_ind)[1], switch$3 = 0; + if(108 <= symb){ + if(111 > symb) + switch(symb - 108 | 0){ + case 0: + var counter = 0; switch$3 = 1; break; + case 1: break; + default: var counter = 1; switch$3 = 1; + } + } + else if(76 === symb){var counter = 2; switch$3 = 1;} + if(! switch$3) + throw caml_maybe_attach_backtrace([0, Assert_failure, _V_], 1); + if(get_ign(0)) + var + ignored$5 = [11, counter], + _aT_ = [0, [23, ignored$5, fmt_rest$13]]; + else + var _aT_ = [0, [21, counter, fmt_rest$13]]; + var fmt_result = _aT_; + } + break; + case 32: + case 35: + case 43: + case 45: + case 95: + var + fmt_result = caml_call3(failwith_message(_M_), str, pct_ind, symb); + break; + case 88: + case 100: + case 105: + case 111: + case 117: + case 120: + var + _aX_ = get_space(0), + _aY_ = get_hash(0), + iconv$2 = + compute_int_conv(pct_ind, str_ind, get_plus(0), _aY_, _aX_, symb), + fmt_rest$17 = parse(str_ind, end_ind)[1]; + if(get_ign(0)) + var + ignored$8 = [2, iconv$2, get_pad_opt(95)], + _aZ_ = [0, [23, ignored$8, fmt_rest$17]]; + else + var + _a0_ = get_prec(0), + match$6 = make_padprec_fmt_ebb(get_int_pad(0), _a0_, fmt_rest$17), + fmt_rest$18 = match$6[3], + prec$4 = match$6[2], + pad$8 = match$6[1], + _aZ_ = [0, [4, iconv$2, pad$8, prec$4, fmt_rest$18]]; + var fmt_result = _aZ_; + break; + case 69: + case 70: + case 71: + case 72: + case 101: + case 102: + case 103: + case 104: + var + space$1 = get_space(0), + hash$1 = get_hash(0), + plus$2 = get_plus(0), + flag = + plus$2 + ? space$1 + ? legacy_behavior$0 + ? 1 + : incompatible_flag(pct_ind, str_ind, 32, cst$36) + : 1 + : space$1 ? 2 : 0, + switch$4 = 0; + if(73 <= symb){ + var switcher = symb - 101 | 0; + if(3 < switcher >>> 0) + switch$4 = 1; + else{ + switch(switcher){ + case 0: + var _a9_ = 1; break; + case 1: + var _a9_ = 0; break; + case 2: + var _a9_ = 3; break; + default: var _a9_ = 6; + } + var kind = _a9_; + } + } + else if(69 <= symb){ + var switch$5 = 0; + switch(symb - 69 | 0){ + case 0: + var _a__ = 2; break; + case 1: + switch$4 = 1; switch$5 = 1; break; + case 2: + var _a__ = 4; break; + default: var _a__ = 7; + } + if(! switch$5) var kind = _a__; + } + else + switch$4 = 1; + if(switch$4){ + var switch$6 = 0; + if(hash$1){ + if(70 === symb){var kind = 8; switch$6 = 1;} + } + else if(70 === symb){var kind = 5; switch$6 = 1;} + if(! switch$6) + throw caml_maybe_attach_backtrace([0, Assert_failure, _X_], 1); + } + var + fconv = [0, flag, kind], + fmt_rest$11 = parse(str_ind, end_ind)[1]; + if(get_ign(0)){ + var match = get_prec(0); + if(typeof match === "number") + var + _aQ_ = match ? incompatible_flag(pct_ind, str_ind, 95, cst$26) : 0; + else + var ndec = match[1], _aQ_ = [0, ndec]; + var + ignored$4 = [6, get_pad_opt(95), _aQ_], + _aR_ = [0, [23, ignored$4, fmt_rest$11]]; + } + else + var + _aS_ = get_prec(0), + match$4 = make_padprec_fmt_ebb(get_pad(0), _aS_, fmt_rest$11), + fmt_rest$12 = match$4[3], + prec$3 = match$4[2], + pad$5 = match$4[1], + _aR_ = [0, [8, fconv, pad$5, prec$3, fmt_rest$12]]; + var fmt_result = _aR_; + break; + default: switch$0 = 1; + } + if(switch$0){ + var switch$7 = 0; + if(108 <= symb){ + if(111 > symb){ + var switch$8 = 0; + switch(symb - 108 | 0){ + case 0: + var + _ax_ = caml_string_get(str, str_ind), + _ay_ = get_space(0), + _az_ = get_hash(0), + iconv = + compute_int_conv + (pct_ind, str_ind + 1 | 0, get_plus(0), _az_, _ay_, _ax_), + fmt_rest = parse(str_ind + 1 | 0, end_ind)[1]; + if(get_ign(0)) + var + ignored = [3, iconv, get_pad_opt(95)], + _aA_ = [0, [23, ignored, fmt_rest]]; + else + var + _aC_ = get_prec(0), + match$0 = make_padprec_fmt_ebb(get_int_pad(0), _aC_, fmt_rest), + fmt_rest$0 = match$0[3], + prec$0 = match$0[2], + pad$0 = match$0[1], + _aA_ = [0, [5, iconv, pad$0, prec$0, fmt_rest$0]]; + var _aB_ = _aA_; + switch$8 = 1; + break; + case 1: break; + default: + var + _aD_ = caml_string_get(str, str_ind), + _aE_ = get_space(0), + _aF_ = get_hash(0), + iconv$0 = + compute_int_conv + (pct_ind, str_ind + 1 | 0, get_plus(0), _aF_, _aE_, _aD_), + fmt_rest$1 = parse(str_ind + 1 | 0, end_ind)[1]; + if(get_ign(0)) + var + ignored$0 = [4, iconv$0, get_pad_opt(95)], + _aG_ = [0, [23, ignored$0, fmt_rest$1]]; + else + var + _aH_ = get_prec(0), + match$1 = make_padprec_fmt_ebb(get_int_pad(0), _aH_, fmt_rest$1), + fmt_rest$2 = match$1[3], + prec$1 = match$1[2], + pad$1 = match$1[1], + _aG_ = [0, [6, iconv$0, pad$1, prec$1, fmt_rest$2]]; + var _aB_ = _aG_; + switch$8 = 1; + } + if(switch$8){var fmt_result = _aB_; switch$7 = 1;} + } + } + else if(76 === symb){ + var + _aI_ = caml_string_get(str, str_ind), + _aJ_ = get_space(0), + _aK_ = get_hash(0), + iconv$1 = + compute_int_conv + (pct_ind, str_ind + 1 | 0, get_plus(0), _aK_, _aJ_, _aI_), + fmt_rest$3 = parse(str_ind + 1 | 0, end_ind)[1]; + if(get_ign(0)) + var + ignored$1 = [5, iconv$1, get_pad_opt(95)], + _aL_ = [0, [23, ignored$1, fmt_rest$3]]; + else + var + _aM_ = get_prec(0), + match$2 = make_padprec_fmt_ebb(get_int_pad(0), _aM_, fmt_rest$3), + fmt_rest$4 = match$2[3], + prec$2 = match$2[2], + pad$2 = match$2[1], + _aL_ = [0, [7, iconv$1, pad$2, prec$2, fmt_rest$4]]; + var fmt_result = _aL_; + switch$7 = 1; + } + if(! switch$7) + var + fmt_result = + caml_call3(failwith_message(_J_), str, str_ind - 1 | 0, symb); + } + if(1 - legacy_behavior$0){ + var _ao_ = 1 - plus_used[1], plus$0 = _ao_ ? plus : _ao_; + if(plus$0) incompatible_flag(pct_ind, str_ind, symb, cst$27); + var _ap_ = 1 - hash_used[1], hash$0 = _ap_ ? hash : _ap_; + if(hash$0) incompatible_flag(pct_ind, str_ind, symb, cst$28); + var _aq_ = 1 - space_used[1], space$0 = _aq_ ? space : _aq_; + if(space$0) incompatible_flag(pct_ind, str_ind, symb, cst$29); + var + _ar_ = 1 - pad_used[1], + _as_ = _ar_ ? caml_notequal([0, pad], _K_) : _ar_; + if(_as_) incompatible_flag(pct_ind, str_ind, symb, cst_padding$0); + var + _at_ = 1 - prec_used[1], + _au_ = _at_ ? caml_notequal([0, prec], _L_) : _at_; + if(_au_){ + var _av_ = ign ? 95 : symb; + incompatible_flag(pct_ind, str_ind, _av_, cst_precision$2); + } + var plus$1 = ign ? plus : ign; + if(plus$1) incompatible_flag(pct_ind, str_ind, 95, cst$30); + } + var _aw_ = 1 - ign_used[1], ign$0 = _aw_ ? ign : _aw_; + if(ign$0){ + var switch$9 = 0; + if(38 <= symb){ + if(44 !== symb && 64 !== symb) switch$9 = 1; + } + else if(33 !== symb && 37 > symb) switch$9 = 1; + var switch$10 = 0; + if(switch$9 || ! legacy_behavior$0) switch$10 = 1; + if(switch$10) incompatible_flag(pct_ind, str_ind, symb, cst$31); + } + return fmt_result; + } + function parse_after_precision + (pct_ind, str_ind, end_ind, minus, plus, hash, space, ign, pad, prec){ + if(str_ind === end_ind) unexpected_end_of_format(end_ind); + function parse_conv(padprec){ + return parse_conversion + (pct_ind, + str_ind + 1 | 0, + end_ind, + plus, + hash, + space, + ign, + pad, + prec, + padprec, + caml_string_get(str, str_ind)); + } + if(typeof pad !== "number") return parse_conv(pad); + if(typeof prec === "number" && ! prec) return parse_conv(0); + if(minus){ + if(typeof prec === "number") return parse_conv(_F_); + var n = prec[1]; + return parse_conv([0, 0, n]); + } + if(typeof prec === "number") return parse_conv(_G_); + var n$0 = prec[1]; + return parse_conv([0, 1, n$0]); + } + function parse_after_padding + (pct_ind, str_ind, end_ind, minus, plus, hash, space, ign, pad){ + if(str_ind === end_ind) unexpected_end_of_format(end_ind); + var symb = caml_string_get(str, str_ind); + if(46 !== symb) + return parse_conversion + (pct_ind, + str_ind + 1 | 0, + end_ind, + plus, + hash, + space, + ign, + pad, + 0, + pad, + symb); + var str_ind$0 = str_ind + 1 | 0; + if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); + function parse_literal(minus, str_ind){ + var + match = parse_positive(str_ind, end_ind, 0), + prec = match[2], + new_ind = match[1]; + return parse_after_precision + (pct_ind, + new_ind, + end_ind, + minus, + plus, + hash, + space, + ign, + pad, + [0, prec]); + } + var symb$0 = caml_string_get(str, str_ind$0); + if(48 <= symb$0){ + if(58 > symb$0) return parse_literal(minus, str_ind$0); + } + else if(42 <= symb$0) + switch(symb$0 - 42 | 0){ + case 0: + return parse_after_precision + (pct_ind, + str_ind$0 + 1 | 0, + end_ind, + minus, + plus, + hash, + space, + ign, + pad, + 1); + case 1: + case 3: + if(legacy_behavior$0){ + var + _an_ = str_ind$0 + 1 | 0, + minus$0 = minus || (45 === symb$0 ? 1 : 0); + return parse_literal(minus$0, _an_); + } + break; + } + return legacy_behavior$0 + ? parse_after_precision + (pct_ind, + str_ind$0, + end_ind, + minus, + plus, + hash, + space, + ign, + pad, + _E_) + : invalid_format_without(str_ind$0 - 1 | 0, 46, cst_precision); + } + function parse_flags(pct_ind, str_ind, end_ind, ign){ + var + zero = [0, 0], + minus = [0, 0], + plus = [0, 0], + space = [0, 0], + hash = [0, 0]; + function set_flag(str_ind, flag){ + var _ak_ = flag[1], _al_ = _ak_ ? 1 - legacy_behavior$0 : _ak_; + if(_al_){ + var _am_ = caml_string_get(str, str_ind); + caml_call3(failwith_message(_C_), str, str_ind, _am_); + } + flag[1] = 1; + return 0; + } + var str_ind$0 = str_ind; + for(;;){ + if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); + var switcher = caml_string_get(str, str_ind$0) - 32 | 0; + if(16 >= switcher >>> 0) + switch(switcher){ + case 0: + set_flag(str_ind$0, space); + var str_ind$1 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$1; + continue; + case 3: + set_flag(str_ind$0, hash); + var str_ind$2 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$2; + continue; + case 11: + set_flag(str_ind$0, plus); + var str_ind$3 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$3; + continue; + case 13: + set_flag(str_ind$0, minus); + var str_ind$4 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$4; + continue; + case 16: + set_flag(str_ind$0, zero); + var str_ind$5 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$5; + continue; + } + var + space$0 = space[1], + hash$0 = hash[1], + plus$0 = plus[1], + minus$0 = minus[1], + zero$0 = zero[1]; + if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); + var + padty = + zero$0 + ? minus$0 + ? legacy_behavior$0 + ? 0 + : incompatible_flag(pct_ind, str_ind$0, 45, cst_0) + : 2 + : minus$0 ? 0 : 1, + match = caml_string_get(str, str_ind$0); + if(48 <= match){ + if(58 > match){ + var + match$0 = parse_positive(str_ind$0, end_ind, 0), + width = match$0[2], + new_ind = match$0[1]; + return parse_after_padding + (pct_ind, + new_ind, + end_ind, + minus$0, + plus$0, + hash$0, + space$0, + ign, + [0, padty, width]); + } + } + else if(42 === match) + return parse_after_padding + (pct_ind, + str_ind$0 + 1 | 0, + end_ind, + minus$0, + plus$0, + hash$0, + space$0, + ign, + [1, padty]); + switch(padty){ + case 0: + if(1 - legacy_behavior$0) + invalid_format_without(str_ind$0 - 1 | 0, 45, cst_padding); + return parse_after_padding + (pct_ind, + str_ind$0, + end_ind, + minus$0, + plus$0, + hash$0, + space$0, + ign, + 0); + case 1: + return parse_after_padding + (pct_ind, + str_ind$0, + end_ind, + minus$0, + plus$0, + hash$0, + space$0, + ign, + 0); + default: + return parse_after_padding + (pct_ind, + str_ind$0, + end_ind, + minus$0, + plus$0, + hash$0, + space$0, + ign, + _D_); + } + } + } + function parse_tag(is_open_tag, str_ind, end_ind){ + try{ + if(str_ind === end_ind) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + if(60 !== caml_string_get(str, str_ind)) + throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var ind = caml_call3(Stdlib_String[31], str, str_ind + 1 | 0, 62); + if(end_ind <= ind) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var + sub_str = + caml_call3 + (Stdlib_String[15], str, str_ind, (ind - str_ind | 0) + 1 | 0), + fmt_rest$0 = parse(ind + 1 | 0, end_ind)[1], + sub_fmt = parse(str_ind, ind + 1 | 0)[1], + sub_format$0 = [0, sub_fmt, sub_str], + formatting$0 = is_open_tag ? [0, sub_format$0] : [1, sub_format$0], + _ai_ = [0, [18, formatting$0, fmt_rest$0]]; + return _ai_; + } + catch(_aj_){ + var _ah_ = caml_wrap_exception(_aj_); + if(_ah_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_ah_, 0); + var + fmt_rest = parse(str_ind, end_ind)[1], + formatting = is_open_tag ? [0, sub_format] : [1, sub_format]; + return [0, [18, formatting, fmt_rest]]; + } + } + function parse_spaces(str_ind, end_ind){ + var str_ind$0 = str_ind; + for(;;){ + if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); + if(32 !== caml_string_get(str, str_ind$0)) return str_ind$0; + var str_ind$1 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$1; + } + } + function parse_positive(str_ind, end_ind, acc){ + var str_ind$0 = str_ind, acc$0 = acc; + for(;;){ + if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); + var c = caml_string_get(str, str_ind$0); + if(9 < c - 48 >>> 0) return [0, str_ind$0, acc$0]; + var new_acc = (acc$0 * 10 | 0) + (c - 48 | 0) | 0; + if(Stdlib_Sys[12] < new_acc){ + var _ag_ = Stdlib_Sys[12]; + return caml_call3(failwith_message(_S_), str, new_acc, _ag_); + } + var + str_ind$1 = str_ind$0 + 1 | 0, + str_ind$0 = str_ind$1, + acc$0 = new_acc; + } + } + function parse_integer(str_ind, end_ind){ + if(str_ind === end_ind) unexpected_end_of_format(end_ind); + var match = caml_string_get(str, str_ind); + if(48 <= match){ + if(58 > match) return parse_positive(str_ind, end_ind, 0); + } + else if(45 === match){ + if((str_ind + 1 | 0) === end_ind) unexpected_end_of_format(end_ind); + var c = caml_string_get(str, str_ind + 1 | 0); + if(9 < c - 48 >>> 0) + return expected_character(str_ind + 1 | 0, cst_digit, c); + var + match$0 = parse_positive(str_ind + 1 | 0, end_ind, 0), + n = match$0[2], + next_ind = match$0[1]; + return [0, next_ind, - n | 0]; + } + throw caml_maybe_attach_backtrace([0, Assert_failure, _T_], 1); + } + function search_subformat_end(str_ind, end_ind, c){ + var str_ind$0 = str_ind; + for(;;){ + if(str_ind$0 === end_ind) + caml_call3(failwith_message(_U_), str, c, end_ind); + if(37 !== caml_string_get(str, str_ind$0)){ + var str_ind$7 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$7; + continue; + } + if((str_ind$0 + 1 | 0) === end_ind) unexpected_end_of_format(end_ind); + if(caml_string_get(str, str_ind$0 + 1 | 0) === c) return str_ind$0; + var match = caml_string_get(str, str_ind$0 + 1 | 0); + if(95 <= match){ + if(123 <= match){ + if(126 > match) + switch(match - 123 | 0){ + case 0: + var + sub_end = search_subformat_end(str_ind$0 + 2 | 0, end_ind, 125), + str_ind$2 = sub_end + 2 | 0, + str_ind$0 = str_ind$2; + continue; + case 1: break; + default: + return expected_character(str_ind$0 + 1 | 0, cst_character, 125); + } + } + else if(96 > match){ + if((str_ind$0 + 2 | 0) === end_ind) unexpected_end_of_format(end_ind); + var match$0 = caml_string_get(str, str_ind$0 + 2 | 0); + if(40 === match$0){ + var + sub_end$0 = search_subformat_end(str_ind$0 + 3 | 0, end_ind, 41), + str_ind$3 = sub_end$0 + 2 | 0, + str_ind$0 = str_ind$3; + continue; + } + if(123 === match$0){ + var + sub_end$1 = search_subformat_end(str_ind$0 + 3 | 0, end_ind, 125), + str_ind$4 = sub_end$1 + 2 | 0, + str_ind$0 = str_ind$4; + continue; + } + var str_ind$5 = str_ind$0 + 3 | 0, str_ind$0 = str_ind$5; + continue; + } + } + else{ + if(40 === match){ + var + sub_end$2 = search_subformat_end(str_ind$0 + 2 | 0, end_ind, 41), + str_ind$6 = sub_end$2 + 2 | 0, + str_ind$0 = str_ind$6; + continue; + } + if(41 === match) + return expected_character(str_ind$0 + 1 | 0, cst_character$0, 41); + } + var str_ind$1 = str_ind$0 + 2 | 0, str_ind$0 = str_ind$1; + } + } + function incompatible_flag(pct_ind, str_ind, symb, option){ + var + subfmt = + caml_call3(Stdlib_String[15], str, pct_ind, str_ind - pct_ind | 0); + return caml_call5 + (failwith_message(_Y_), str, pct_ind, option, symb, subfmt); + } + function compute_int_conv(pct_ind, str_ind, plus, hash, space, symb){ + var plus$0 = plus, hash$0 = hash, space$0 = space; + for(;;){ + var switch$0 = 0; + if(plus$0){ + if(hash$0) + switch$0 = 1; + else if(! space$0){ + if(100 === symb) return 1; + if(105 === symb) return 4; + } + } + else if(hash$0) + if(space$0) + switch$0 = 1; + else{ + var switcher$0 = symb - 88 | 0; + if(32 < switcher$0 >>> 0) + switch$0 = 1; + else + switch(switcher$0){ + case 0: + return 9; + case 12: + return 13; + case 17: + return 14; + case 23: + return 11; + case 29: + return 15; + case 32: + return 7; + default: switch$0 = 1; + } + } + else if(space$0){ + if(100 === symb) return 2; + if(105 === symb) return 5; + } + else{ + var switcher$1 = symb - 88 | 0; + if(32 >= switcher$1 >>> 0) + switch(switcher$1){ + case 0: + return 8; + case 12: + return 0; + case 17: + return 3; + case 23: + return 10; + case 29: + return 12; + case 32: + return 6; + } + } + if(switch$0){ + var switcher = symb - 88 | 0; + if(32 >= switcher >>> 0) + switch(switcher){ + case 0: + if(legacy_behavior$0) return 9; break; + case 23: + if(legacy_behavior$0) return 11; break; + case 32: + if(legacy_behavior$0) return 7; break; + case 12: + case 17: + case 29: + if(! legacy_behavior$0) + return incompatible_flag(pct_ind, str_ind, symb, cst$35); + var hash$0 = 0; + continue; + } + } + if(! plus$0){ + if(! space$0) + throw caml_maybe_attach_backtrace([0, Assert_failure, _W_], 1); + if(! legacy_behavior$0) + return incompatible_flag(pct_ind, str_ind, symb, cst$34); + var space$0 = 0; + continue; + } + if(space$0){ + if(! legacy_behavior$0) + return incompatible_flag(pct_ind, str_ind, 32, cst$32); + var space$0 = 0; + continue; + } + if(! legacy_behavior$0) + return incompatible_flag(pct_ind, str_ind, symb, cst$33); + var plus$0 = 0; + } + } + return parse(0, caml_ml_string_length(str)); + } + function format_of_string_fmtty(str, fmtty){ + var fmt = fmt_ebb_of_string(0, str)[1]; + try{var _ae_ = [0, type_format(fmt, fmtty), str]; return _ae_;} + catch(_af_){ + var _ac_ = caml_wrap_exception(_af_); + if(_ac_ !== Type_mismatch) throw caml_maybe_attach_backtrace(_ac_, 0); + var _ad_ = string_of_fmtty(fmtty); + return caml_call2(failwith_message(_Z_), str, _ad_); + } + } + function format_of_string_format(str, param){ + var + str$0 = param[2], + fmt = param[1], + fmt$0 = fmt_ebb_of_string(0, str)[1]; + try{ + var _aa_ = [0, type_format(fmt$0, fmtty_of_fmt(fmt)), str]; + return _aa_; + } + catch(_ab_){ + var _$_ = caml_wrap_exception(_ab_); + if(_$_ === Type_mismatch) + return caml_call2(failwith_message(___), str, str$0); + throw caml_maybe_attach_backtrace(_$_, 0); + } + } + var + CamlinternalFormat = + [0, + is_in_char_set, + rev_char_set, + create_char_set, + add_in_char_set, + freeze_char_set, + param_format_of_ignored_format, + make_printf, + make_iprintf, + output_acc, + bufput_acc, + strput_acc, + type_format, + fmt_ebb_of_string, + format_of_string_fmtty, + format_of_string_format, + char_of_iconv, + string_of_formatting_lit, + string_of_fmtty, + string_of_fmt, + open_box_of_string, + symm, + trans, + recast]; + runtime.caml_register_global(197, CamlinternalFormat, "CamlinternalFormat"); + return; + } + (globalThis)); + +//# 15817 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var runtime = globalThis.jsoo_runtime; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib_Buffer = global_data.Stdlib__Buffer, + CamlinternalFormat = global_data.CamlinternalFormat, + Stdlib = global_data.Stdlib; + function kfprintf(k, o, param){ + var fmt = param[1], _g_ = 0; + function _h_(acc){ + caml_call2(CamlinternalFormat[9], o, acc); + return caml_call1(k, o); + } + return caml_call3(CamlinternalFormat[7], _h_, _g_, fmt); + } + function kbprintf(k, b, param){ + var fmt = param[1], _e_ = 0; + function _f_(acc){ + caml_call2(CamlinternalFormat[10], b, acc); + return caml_call1(k, b); + } + return caml_call3(CamlinternalFormat[7], _f_, _e_, fmt); + } + function ikfprintf(k, oc, param){ + var fmt = param[1]; + return caml_call3(CamlinternalFormat[8], k, oc, fmt); + } + function fprintf(oc, fmt){ + return kfprintf(function(_d_){return 0;}, oc, fmt); + } + function bprintf(b, fmt){ + return kbprintf(function(_c_){return 0;}, b, fmt); + } + function ifprintf(oc, fmt){ + return ikfprintf(function(_b_){return 0;}, oc, fmt); + } + function ibprintf(b, fmt){ + return ikfprintf(function(_a_){return 0;}, b, fmt); + } + function printf(fmt){return fprintf(Stdlib[39], fmt);} + function eprintf(fmt){return fprintf(Stdlib[40], fmt);} + function ksprintf(k, param){ + var fmt = param[1]; + function k$0(acc){ + var buf = caml_call1(Stdlib_Buffer[1], 64); + caml_call2(CamlinternalFormat[11], buf, acc); + return caml_call1(k, caml_call1(Stdlib_Buffer[2], buf)); + } + return caml_call3(CamlinternalFormat[7], k$0, 0, fmt); + } + function sprintf(fmt){return ksprintf(function(s){return s;}, fmt);} + var + Stdlib_Printf = + [0, + fprintf, + printf, + eprintf, + sprintf, + bprintf, + ifprintf, + ibprintf, + kfprintf, + ikfprintf, + ksprintf, + kbprintf, + ikfprintf, + ksprintf]; + runtime.caml_register_global(3, Stdlib_Printf, "Stdlib__Printf"); + return; + } + (globalThis)); + +//# 16607 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + global_data = runtime.caml_get_global_data(), + CamlinternalAtomic = global_data.CamlinternalAtomic, + make = CamlinternalAtomic[1], + get = CamlinternalAtomic[2], + set = CamlinternalAtomic[3], + exchange = CamlinternalAtomic[4], + compare_and_set = CamlinternalAtomic[5], + fetch_and_add = CamlinternalAtomic[6], + incr = CamlinternalAtomic[7], + decr = CamlinternalAtomic[8], + Stdlib_Atomic = + [0, + make, + get, + set, + exchange, + compare_and_set, + fetch_and_add, + incr, + decr]; + runtime.caml_register_global(1, Stdlib_Atomic, "Stdlib__Atomic"); + return; + } + (globalThis)); + +//# 16639 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst$4 = "", + cst_s = "%s\n", + cst_Program_not_linked_with_g_$0 = + "(Program not linked with -g, cannot print stack backtrace)\n", + cst_characters = ", characters ", + cst_Fatal_error_exception = "Fatal error: exception ", + cst_Fatal_error_exception_s = "Fatal error: exception %s\n", + cst_Uncaught_exception = "Uncaught exception: ", + cst_Uncaught_exception_s = "Uncaught exception: %s\n", + caml_check_bound = runtime.caml_check_bound, + caml_get_exception_raw_backtra = runtime.caml_get_exception_raw_backtrace, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_obj_tag = runtime.caml_obj_tag, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + function caml_call6(f, a0, a1, a2, a3, a4, a5){ + return (f.l >= 0 ? f.l : f.l = f.length) == 6 + ? f(a0, a1, a2, a3, a4, a5) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5]); + } + function caml_call8(f, a0, a1, a2, a3, a4, a5, a6, a7){ + return (f.l >= 0 ? f.l : f.l = f.length) == 8 + ? f(a0, a1, a2, a3, a4, a5, a6, a7) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5, a6, a7]); + } + var + global_data = runtime.caml_get_global_data(), + cst$0 = cst$4, + cst$3 = cst$4, + partial = [4, 0, 0, 0, [12, 45, [4, 0, 0, 0, 0]]], + cst$1 = cst$4, + cst$2 = cst$4, + cst = "_", + locfmt = + [0, + [11, + 'File "', + [2, + 0, + [11, + '", line ', [4, 0, 0, 0, [11, - caml_string_of_jsbytes(", "), - [2,0,[11,caml_string_of_jsbytes(" expected, read "),[1,0]]]]]]]], - caml_string_of_jsbytes - ("invalid format %S: at character number %d, %s expected, read %C")], - _aE_= + cst_characters, + [4, 0, 0, 0, [12, 45, [4, 0, 0, 0, [11, ": ", [2, 0, 0]]]]]]]]]], + 'File "%s", line %d, characters %d-%d: %s'], + Stdlib_Printf = global_data.Stdlib__Printf, + Stdlib_Atomic = global_data.Stdlib__Atomic, + Stdlib = global_data.Stdlib, + Stdlib_Buffer = global_data.Stdlib__Buffer, + Stdlib_Obj = global_data.Stdlib__Obj, + printers = caml_call1(Stdlib_Atomic[1], 0), + _c_ = [0, [11, ", ", [2, 0, [2, 0, 0]]], ", %s%s"], + _o_ = + [0, + [11, cst_Fatal_error_exception, [2, 0, [12, 10, 0]]], + cst_Fatal_error_exception_s], + _p_ = [0, [11, - caml_string_of_jsbytes("invalid format "), - [3, - 0, - [11, - caml_string_of_jsbytes(": at character number "), - [4, - 0, - 0, - 0, - [11, - caml_string_of_jsbytes(", '"), - [0,[11,caml_string_of_jsbytes("' without "),[2,0,0]]]]]]]], - caml_string_of_jsbytes - ("invalid format %S: at character number %d, '%c' without %s")], - _aD_= + "Fatal error in uncaught exception handler: exception ", + [2, 0, [12, 10, 0]]], + "Fatal error in uncaught exception handler: exception %s\n"], + cst_Fatal_error_out_of_memory_ = + "Fatal error: out of memory in uncaught exception handler", + _n_ = [0, - [11, - caml_string_of_jsbytes("invalid format "), - [3, - 0, - [11, - caml_string_of_jsbytes(": at character number "), - [4,0,0,0,[11,caml_string_of_jsbytes(", "),[2,0,0]]]]]], - caml_string_of_jsbytes("invalid format %S: at character number %d, %s")], - _aC_= + [11, cst_Fatal_error_exception, [2, 0, [12, 10, 0]]], + cst_Fatal_error_exception_s], + _l_ = [0, [2, 0, [12, 10, 0]], cst_s], + cst_Program_not_linked_with_g_ = cst_Program_not_linked_with_g_$0, + _j_ = [0, [2, 0, [12, 10, 0]], cst_s], + _k_ = [0, - [11,caml_string_of_jsbytes("invalid box description "),[3,0,0]], - caml_string_of_jsbytes("invalid box description %S")], - _aB_=[0,0,4], - _av_=[0,103], - _ae_=[0,0,0], - _bo_=[0,[2,0,[0,0]],caml_string_of_jsbytes("%s%c")], - _bi_=[0,[2,0,0],caml_string_of_jsbytes("%s")], - _bj_=[0,[2,0,0],caml_string_of_jsbytes("%s")], - _bg_=[0,[2,0,0],caml_string_of_jsbytes("%s")], - _bh_=[0,[2,0,0],caml_string_of_jsbytes("%s")], - _be_=[0,[2,0,0],caml_string_of_jsbytes("%s")], - _bf_=[0,[2,0,0],caml_string_of_jsbytes("%s")], - _a__= - [0, - [2, - 0, - [11, - caml_string_of_jsbytes(": unknown option '"), - [2,0,[11,caml_string_of_jsbytes("'.\n"),0]]]], - caml_string_of_jsbytes("%s: unknown option '%s'.\n")], - _bb_= - [0, - [2, - 0, - [11, - caml_string_of_jsbytes(": wrong argument '"), - [2, - 0, - [11, - caml_string_of_jsbytes("'; option '"), - [2, - 0, - [11, - caml_string_of_jsbytes("' expects "), - [2,0,[11,caml_string_of_jsbytes(".\n"),0]]]]]]]], - caml_string_of_jsbytes - ("%s: wrong argument '%s'; option '%s' expects %s.\n")], - _bc_= - [0, - [2, - 0, - [11, - caml_string_of_jsbytes(": option '"), - [2,0,[11,caml_string_of_jsbytes("' needs an argument.\n"),0]]]], - caml_string_of_jsbytes("%s: option '%s' needs an argument.\n")], - _bd_= - [0, - [2, - 0, - [11, - caml_string_of_jsbytes(": "), - [2,0,[11,caml_string_of_jsbytes(".\n"),0]]]], - caml_string_of_jsbytes("%s: %s.\n")], - _a$_=[0,caml_string_of_jsbytes("-help")], - _ba_=[0,caml_string_of_jsbytes("--help")], - _a9_=[0,[2,0,0],caml_string_of_jsbytes("%s")], - _a8_=[0,[2,0,[12,10,0]],caml_string_of_jsbytes("%s\n")], - _a7_=[0,caml_string_of_jsbytes("-help")], - _a5_= - [0, - [11,caml_string_of_jsbytes(" "),[2,0,[12,32,[2,0,[12,10,0]]]]], - caml_string_of_jsbytes(" %s %s\n")], - _a6_= - [0, - [11,caml_string_of_jsbytes(" "),[2,0,[12,32,[2,0,[2,0,[12,10,0]]]]]], - caml_string_of_jsbytes(" %s %s%s\n")], - _bt_= - [0, - [11,caml_string_of_jsbytes(", "),[2,0,[2,0,0]]], - caml_string_of_jsbytes(", %s%s")], - _bF_= - [0, - [11,caml_string_of_jsbytes("Fatal error: exception "),[2,0,[12,10,0]]], - caml_string_of_jsbytes("Fatal error: exception %s\n")], - _bG_= - [0, - [11, - caml_string_of_jsbytes - ("Fatal error in uncaught exception handler: exception "), - [2,0,[12,10,0]]], - caml_string_of_jsbytes - ("Fatal error in uncaught exception handler: exception %s\n")], - _bE_= - [0, - [11,caml_string_of_jsbytes("Fatal error: exception "),[2,0,[12,10,0]]], - caml_string_of_jsbytes("Fatal error: exception %s\n")], - _bC_=[0,[2,0,[12,10,0]],caml_string_of_jsbytes("%s\n")], - _bA_=[0,[2,0,[12,10,0]],caml_string_of_jsbytes("%s\n")], - _bB_= - [0, - [11, - caml_string_of_jsbytes - ("(Program not linked with -g, cannot print stack backtrace)\n"), - 0], - caml_string_of_jsbytes - ("(Program not linked with -g, cannot print stack backtrace)\n")], - _by_= + [11, cst_Program_not_linked_with_g_$0, 0], + cst_Program_not_linked_with_g_$0], + cst_Raised_at = "Raised at", + cst_Re_raised_at = "Re-raised at", + cst_Raised_by_primitive_operat = "Raised by primitive operation at", + cst_Called_from = "Called from", + cst_inlined = " (inlined)", + _h_ = [0, [2, 0, @@ -9926,131 +24553,550 @@ [2, 0, [11, - caml_string_of_jsbytes(' in file "'), + ' in file "', [2, 0, [12, 34, [2, 0, - [11, - caml_string_of_jsbytes(", line "), - [4,0,0,0,[11,caml_string_of_jsbytes(", characters "),partial]]]]]]]]]], - caml_string_of_jsbytes - ('%s %s in file "%s"%s, line %d, characters %d-%d')], - _bz_= + [11, ", line ", [4, 0, 0, 0, [11, cst_characters, partial]]]]]]]]]], + '%s %s in file "%s"%s, line %d, characters %d-%d'], + _i_ = [0, [2, 0, [11, " unknown location", 0]], "%s unknown location"], + _g_ = [0, - [2,0,[11,caml_string_of_jsbytes(" unknown location"),0]], - caml_string_of_jsbytes("%s unknown location")], - _bx_= + [11, cst_Uncaught_exception, [2, 0, [12, 10, 0]]], + cst_Uncaught_exception_s], + _f_ = [0, - [11,caml_string_of_jsbytes("Uncaught exception: "),[2,0,[12,10,0]]], - caml_string_of_jsbytes("Uncaught exception: %s\n")], - _bw_= + [11, cst_Uncaught_exception, [2, 0, [12, 10, 0]]], + cst_Uncaught_exception_s], + cst_Out_of_memory = "Out of memory", + cst_Stack_overflow = "Stack overflow", + cst_Pattern_matching_failed = "Pattern matching failed", + cst_Assertion_failed = "Assertion failed", + cst_Undefined_recursive_module = "Undefined recursive module", + _d_ = [0, [12, 40, [2, 0, [2, 0, [12, 41, 0]]]], "(%s%s)"], + _e_ = [0, [12, 40, [2, 0, [12, 41, 0]]], "(%s)"], + _b_ = [0, [4, 0, 0, 0, 0], "%d"], + _a_ = [0, [3, 0, 0], "%S"], + _m_ = [0, - [11,caml_string_of_jsbytes("Uncaught exception: "),[2,0,[12,10,0]]], - caml_string_of_jsbytes("Uncaught exception: %s\n")], - _bu_=[0,[12,40,[2,0,[2,0,[12,41,0]]]],caml_string_of_jsbytes("(%s%s)")], - _bv_=[0,[12,40,[2,0,[12,41,0]]],caml_string_of_jsbytes("(%s)")], - _bs_=[0,[4,0,0,0,0],caml_string_of_jsbytes("%d")], - _br_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _bD_= + cst$4, + "(Cannot print locations:\n bytecode executable program file not found)", + "(Cannot print locations:\n bytecode executable program file appears to be corrupt)", + "(Cannot print locations:\n bytecode executable program file has wrong magic number)", + "(Cannot print locations:\n bytecode executable program file cannot be opened;\n -- too many open files. Try running with OCAMLRUNPARAM=b=2)"]; + function field(x, i){ + var f = x[1 + i]; + if(! caml_call1(Stdlib_Obj[1], f)) + return caml_call2(Stdlib_Printf[4], _b_, f); + var _al_ = Stdlib_Obj[13]; + if(caml_obj_tag(f) === _al_) return caml_call2(Stdlib_Printf[4], _a_, f); + var _am_ = Stdlib_Obj[14]; + return caml_obj_tag(f) === _am_ ? caml_call1(Stdlib[35], f) : cst; + } + function other_fields(x, i){ + if(x.length - 1 <= i) return cst$0; + var _aj_ = other_fields(x, i + 1 | 0), _ak_ = field(x, i); + return caml_call3(Stdlib_Printf[4], _c_, _ak_, _aj_); + } + function use_printers(x){ + var param = caml_call1(Stdlib_Atomic[2], printers); + for(;;){ + if(! param) return 0; + var tl = param[2], hd = param[1], switch$0 = 0; + try{var val = caml_call1(hd, x);}catch(_ai_){switch$0 = 1;} + if(! switch$0 && val){var s = val[1]; return [0, s];} + var param = tl; + } + } + function to_string_default(x){ + if(x === Stdlib[9]) return cst_Out_of_memory; + if(x === Stdlib[10]) return cst_Stack_overflow; + if(x[1] === Stdlib[4]){ + var + match$0 = x[2], + char$0 = match$0[3], + line = match$0[2], + file = match$0[1]; + return caml_call6 + (Stdlib_Printf[4], + locfmt, + file, + line, + char$0, + char$0 + 5 | 0, + cst_Pattern_matching_failed); + } + if(x[1] === Stdlib[5]){ + var + match$1 = x[2], + char$1 = match$1[3], + line$0 = match$1[2], + file$0 = match$1[1]; + return caml_call6 + (Stdlib_Printf[4], + locfmt, + file$0, + line$0, + char$1, + char$1 + 6 | 0, + cst_Assertion_failed); + } + if(x[1] === Stdlib[15]){ + var + match$2 = x[2], + char$2 = match$2[3], + line$1 = match$2[2], + file$1 = match$2[1]; + return caml_call6 + (Stdlib_Printf[4], + locfmt, + file$1, + line$1, + char$2, + char$2 + 6 | 0, + cst_Undefined_recursive_module); + } + if(0 !== caml_obj_tag(x)) return x[1]; + var constructor = x[1][1], match = x.length - 1; + if(2 < match >>> 0) + var + _ae_ = other_fields(x, 2), + _af_ = field(x, 1), + _ah_ = caml_call3(Stdlib_Printf[4], _d_, _af_, _ae_); + else + switch(match){ + case 0: + var _ah_ = cst$1; break; + case 1: + var _ah_ = cst$2; break; + default: + var + _ag_ = field(x, 1), + _ah_ = caml_call2(Stdlib_Printf[4], _e_, _ag_); + } + return caml_call2(Stdlib[28], constructor, _ah_); + } + function to_string(e){ + var match = use_printers(e); + if(! match) return to_string_default(e); + var s = match[1]; + return s; + } + function print(fct, arg){ + try{var _ad_ = caml_call1(fct, arg); return _ad_;} + catch(x$0){ + var x = caml_wrap_exception(x$0), _ac_ = to_string(x); + caml_call2(Stdlib_Printf[3], _f_, _ac_); + caml_call1(Stdlib[63], Stdlib[40]); + throw caml_maybe_attach_backtrace(x, 0); + } + } + function catch$0(fct, arg){ + try{var _ab_ = caml_call1(fct, arg); return _ab_;} + catch(x$0){ + var x = caml_wrap_exception(x$0); + caml_call1(Stdlib[63], Stdlib[39]); + var _aa_ = to_string(x); + caml_call2(Stdlib_Printf[3], _g_, _aa_); + return caml_call1(Stdlib[99], 2); + } + } + function raw_backtrace_entries(bt){return bt;} + function convert_raw_backtrace(bt){ + return [0, runtime.caml_convert_raw_backtrace(bt)]; + } + function format_backtrace_slot(pos, slot){ + function info(is_raise){ + return is_raise + ? 0 === pos ? cst_Raised_at : cst_Re_raised_at + : 0 === pos ? cst_Raised_by_primitive_operat : cst_Called_from; + } + if(0 === slot[0]){ + var + _U_ = slot[5], + _V_ = slot[4], + _W_ = slot[3], + _X_ = slot[6] ? cst_inlined : cst$3, + _Y_ = slot[2], + _Z_ = slot[7], + ___ = info(slot[1]); + return [0, + caml_call8 + (Stdlib_Printf[4], _h_, ___, _Z_, _Y_, _X_, _W_, _V_, _U_)]; + } + if(slot[1]) return 0; + var _$_ = info(0); + return [0, caml_call2(Stdlib_Printf[4], _i_, _$_)]; + } + function print_raw_backtrace(outchan, raw_backtrace){ + var backtrace = convert_raw_backtrace(raw_backtrace); + if(! backtrace) return caml_call2(Stdlib_Printf[1], outchan, _k_); + var a = backtrace[1], _S_ = a.length - 1 - 1 | 0, _R_ = 0; + if(_S_ >= 0){ + var i = _R_; + for(;;){ + var match = format_backtrace_slot(i, caml_check_bound(a, i)[1 + i]); + if(match){ + var str = match[1]; + caml_call3(Stdlib_Printf[1], outchan, _j_, str); + } + var _T_ = i + 1 | 0; + if(_S_ !== i){var i = _T_; continue;} + break; + } + } + return 0; + } + function print_backtrace(outchan){ + return print_raw_backtrace(outchan, caml_get_exception_raw_backtra(0)); + } + function raw_backtrace_to_string(raw_backtrace){ + var backtrace = convert_raw_backtrace(raw_backtrace); + if(! backtrace) return cst_Program_not_linked_with_g_; + var + a = backtrace[1], + b = caml_call1(Stdlib_Buffer[1], 1024), + _P_ = a.length - 1 - 1 | 0, + _O_ = 0; + if(_P_ >= 0){ + var i = _O_; + for(;;){ + var match = format_backtrace_slot(i, caml_check_bound(a, i)[1 + i]); + if(match){ + var str = match[1]; + caml_call3(Stdlib_Printf[5], b, _l_, str); + } + var _Q_ = i + 1 | 0; + if(_P_ !== i){var i = _Q_; continue;} + break; + } + } + return caml_call1(Stdlib_Buffer[2], b); + } + function backtrace_slot_is_raise(param){ + return 0 === param[0] ? param[1] : param[1]; + } + function backtrace_slot_is_inline(param){return 0 === param[0] ? param[6] : 0; + } + function backtrace_slot_location(param){ + return 0 === param[0] + ? [0, [0, param[2], param[3], param[4], param[5]]] + : 0; + } + function backtrace_slot_defname(param){ + if(0 === param[0] && runtime.caml_string_notequal(param[7], cst$4)) + return [0, param[7]]; + return 0; + } + function backtrace_slots(raw_backtrace){ + var match = convert_raw_backtrace(raw_backtrace); + if(! match) return 0; + var backtrace = match[1], i$1 = backtrace.length - 1 - 1 | 0, i = i$1; + for(;;){ + if(-1 === i) + var _N_ = 0; + else{ + var _M_ = 0 === caml_check_bound(backtrace, i)[1 + i][0] ? 1 : 0; + if(! _M_){var i$0 = i - 1 | 0, i = i$0; continue;} + var _N_ = _M_; + } + return _N_ ? [0, backtrace] : 0; + } + } + function backtrace_slots_of_raw_entry(entry){return backtrace_slots([0, entry]); + } + function raw_backtrace_length(bt){return bt.length - 1;} + function get_backtrace(param){ + return raw_backtrace_to_string(caml_get_exception_raw_backtra(0)); + } + function register_printer(fn){ + for(;;){ + var + old_printers = caml_call1(Stdlib_Atomic[2], printers), + new_printers = [0, fn, old_printers], + success = + caml_call3(Stdlib_Atomic[5], printers, old_printers, new_printers), + _L_ = 1 - success; + if(_L_) continue; + return _L_; + } + } + function exn_slot(x){return 0 === caml_obj_tag(x) ? x[1] : x;} + function exn_slot_id(x){var slot = exn_slot(x); return slot[2];} + function exn_slot_name(x){var slot = exn_slot(x); return slot[1];} + var errors = _m_.slice(); + function default_uncaught_exception_han(exn, raw_backtrace){ + var _I_ = to_string(exn); + caml_call2(Stdlib_Printf[3], _n_, _I_); + print_raw_backtrace(Stdlib[40], raw_backtrace); + var status = runtime.caml_ml_debug_info_status(0); + if(status < 0){ + var + _J_ = caml_call1(Stdlib[18], status), + _K_ = caml_check_bound(errors, _J_)[1 + _J_]; + caml_call1(Stdlib[53], _K_); + } + return caml_call1(Stdlib[63], Stdlib[40]); + } + var uncaught_exception_handler = [0, default_uncaught_exception_han]; + function set_uncaught_exception_handler(fn){ + uncaught_exception_handler[1] = fn; + return 0; + } + var empty_backtrace = [0]; + function handle_uncaught_exception(exn$0, debugger_in_use){ + try{ + try{ + var + raw_backtrace = + debugger_in_use ? empty_backtrace : caml_get_exception_raw_backtra(0); + try{caml_call1(Stdlib[103], 0);}catch(_H_){} + try{ + var + _D_ = caml_call2(uncaught_exception_handler[1], exn$0, raw_backtrace), + _C_ = _D_; + } + catch(exn$1){ + var + exn = caml_wrap_exception(exn$1), + raw_backtrace$0 = caml_get_exception_raw_backtra(0), + _A_ = to_string(exn$0); + caml_call2(Stdlib_Printf[3], _o_, _A_); + print_raw_backtrace(Stdlib[40], raw_backtrace); + var _B_ = to_string(exn); + caml_call2(Stdlib_Printf[3], _p_, _B_); + print_raw_backtrace(Stdlib[40], raw_backtrace$0); + var _C_ = caml_call1(Stdlib[63], Stdlib[40]); + } + var _E_ = _C_; + } + catch(_G_){ + var _z_ = caml_wrap_exception(_G_); + if(_z_ !== Stdlib[9]) throw caml_maybe_attach_backtrace(_z_, 0); + var _E_ = caml_call1(Stdlib[53], cst_Fatal_error_out_of_memory_); + } + return _E_; + } + catch(_F_){return 0;} + } + runtime.caml_register_named_value + ("Printexc.handle_uncaught_exception", handle_uncaught_exception); + function _q_(_y_){return runtime.caml_raw_backtrace_next_slot(_y_);} + function _r_(_x_){return runtime.caml_convert_raw_backtrace_slot(_x_);} + function _s_(_w_, _v_){return runtime.caml_raw_backtrace_slot(_w_, _v_);} + var + _t_ = [0, - caml_string_of_jsbytes(""), - caml_string_of_jsbytes - ("(Cannot print locations:\n bytecode executable program file not found)"), - caml_string_of_jsbytes - ("(Cannot print locations:\n bytecode executable program file appears to be corrupt)"), - caml_string_of_jsbytes - ("(Cannot print locations:\n bytecode executable program file has wrong magic number)"), - caml_string_of_jsbytes - ("(Cannot print locations:\n bytecode executable program file cannot be opened;\n -- too many open files. Try running with OCAMLRUNPARAM=b=2)")], - _bN_= + backtrace_slot_is_raise, + backtrace_slot_is_inline, + backtrace_slot_location, + backtrace_slot_defname, + format_backtrace_slot], + Stdlib_Printexc = [0, - [11, - caml_string_of_jsbytes("minor_collections: "), - [4,0,0,0,[12,10,0]]], - caml_string_of_jsbytes("minor_collections: %d\n")], - _bO_= + to_string, + to_string_default, + print, + catch$0, + print_backtrace, + get_backtrace, + runtime.caml_record_backtrace, + runtime.caml_backtrace_status, + register_printer, + use_printers, + raw_backtrace_entries, + function(_u_){return caml_get_exception_raw_backtra(_u_);}, + print_raw_backtrace, + raw_backtrace_to_string, + default_uncaught_exception_han, + set_uncaught_exception_handler, + backtrace_slots, + backtrace_slots_of_raw_entry, + _t_, + raw_backtrace_length, + _s_, + _r_, + _q_, + exn_slot_id, + exn_slot_name]; + runtime.caml_register_global(42, Stdlib_Printexc, "Stdlib__Printexc"); + return; + } + (globalThis)); + +//# 17358 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_Digest_from_hex$1 = "Digest.from_hex", + caml_bytes_unsafe_set = runtime.caml_bytes_unsafe_set, + caml_create_bytes = runtime.caml_create_bytes, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_md5_string = runtime.caml_md5_string, + caml_ml_string_length = runtime.caml_ml_string_length, + caml_string_get = runtime.caml_string_get, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib = global_data.Stdlib, + Stdlib_Char = global_data.Stdlib__Char, + Stdlib_Bytes = global_data.Stdlib__Bytes, + Stdlib_String = global_data.Stdlib__String, + compare = Stdlib_String[9], + equal = Stdlib_String[8], + cst_Digest_from_hex$0 = cst_Digest_from_hex$1, + cst_Digest_from_hex = cst_Digest_from_hex$1, + cst_Digest_to_hex = "Digest.to_hex", + cst_Digest_substring = "Digest.substring"; + function string(str){ + return caml_md5_string(str, 0, caml_ml_string_length(str)); + } + function bytes(b){return string(caml_call1(Stdlib_Bytes[48], b));} + function substring(str, ofs, len){ + if(0 <= ofs && 0 <= len && (caml_ml_string_length(str) - len | 0) >= ofs) + return caml_md5_string(str, ofs, len); + return caml_call1(Stdlib[1], cst_Digest_substring); + } + function subbytes(b, ofs, len){ + return substring(caml_call1(Stdlib_Bytes[48], b), ofs, len); + } + function file(filename){ + var ic = caml_call1(Stdlib[80], filename); + try{var d = runtime.caml_md5_chan(ic, -1);} + catch(e$0){ + var e = caml_wrap_exception(e$0); + caml_call1(Stdlib[93], ic); + throw caml_maybe_attach_backtrace(e, 0); + } + caml_call1(Stdlib[93], ic); + return d; + } + function output(chan, digest){return caml_call2(Stdlib[66], chan, digest);} + function input(chan){return caml_call2(Stdlib[86], chan, 16);} + function char_hex(n){var _e_ = 10 <= n ? 87 : 48; return n + _e_ | 0;} + function to_hex(d){ + if(16 !== caml_ml_string_length(d)) + caml_call1(Stdlib[1], cst_Digest_to_hex); + var result = caml_create_bytes(32), i = 0; + for(;;){ + var x = caml_string_get(d, i); + caml_bytes_unsafe_set(result, i * 2 | 0, char_hex(x >>> 4 | 0)); + caml_bytes_unsafe_set(result, (i * 2 | 0) + 1 | 0, char_hex(x & 15)); + var _d_ = i + 1 | 0; + if(15 === i) return caml_call1(Stdlib_Bytes[48], result); + var i = _d_; + } + } + function from_hex(s){ + if(32 !== caml_ml_string_length(s)) + caml_call1(Stdlib[1], cst_Digest_from_hex); + function digit(c){ + if(65 <= c){ + if(97 <= c){ + if(103 > c) return (c - 97 | 0) + 10 | 0; + } + else if(71 > c) return (c - 65 | 0) + 10 | 0; + } + else if(9 >= c - 48 >>> 0) return c - 48 | 0; + throw caml_maybe_attach_backtrace + ([0, Stdlib[6], cst_Digest_from_hex$0], 1); + } + var result = caml_create_bytes(16), i = 0; + for(;;){ + var + i$0 = 2 * i | 0, + _a_ = digit(caml_string_get(s, i$0 + 1 | 0)), + _b_ = (digit(caml_string_get(s, i$0)) << 4) + _a_ | 0; + runtime.caml_bytes_set(result, i, caml_call1(Stdlib_Char[1], _b_)); + var _c_ = i + 1 | 0; + if(15 === i) return caml_call1(Stdlib_Bytes[48], result); + var i = _c_; + } + } + var + Stdlib_Digest = [0, - [11, - caml_string_of_jsbytes("major_collections: "), - [4,0,0,0,[12,10,0]]], - caml_string_of_jsbytes("major_collections: %d\n")], - _bP_= - [0, - [11, - caml_string_of_jsbytes("compactions: "), - [4,0,0,0,[12,10,0]]], - caml_string_of_jsbytes("compactions: %d\n")], - _bQ_= - [0, - [11, - caml_string_of_jsbytes("forced_major_collections: "), - [4,0,0,0,[12,10,0]]], - caml_string_of_jsbytes("forced_major_collections: %d\n")], - _bR_=[0,[12,10,0],caml_string_of_jsbytes("\n")], - _bS_=[0,[8,[0,0,0],0,[0,0],0],caml_string_of_jsbytes("%.0f")], - _bT_= - [0, - [11, - caml_string_of_jsbytes("minor_words: "), - [8,[0,0,0],[1,1],[0,0],[12,10,0]]], - caml_string_of_jsbytes("minor_words: %*.0f\n")], - _bU_= - [0, - [11, - caml_string_of_jsbytes("promoted_words: "), - [8,[0,0,0],[1,1],[0,0],[12,10,0]]], - caml_string_of_jsbytes("promoted_words: %*.0f\n")], - _bV_= - [0, - [11, - caml_string_of_jsbytes("major_words: "), - [8,[0,0,0],[1,1],[0,0],[12,10,0]]], - caml_string_of_jsbytes("major_words: %*.0f\n")], - _bW_=[0,[12,10,0],caml_string_of_jsbytes("\n")], - _bX_=[0,[4,0,0,0,0],caml_string_of_jsbytes("%d")], - _bY_= - [0, - [11,caml_string_of_jsbytes("top_heap_words: "),[4,0,[1,1],0,[12,10,0]]], - caml_string_of_jsbytes("top_heap_words: %*d\n")], - _bZ_= - [0, - [11,caml_string_of_jsbytes("heap_words: "),[4,0,[1,1],0,[12,10,0]]], - caml_string_of_jsbytes("heap_words: %*d\n")], - _b0_= - [0, - [11,caml_string_of_jsbytes("live_words: "),[4,0,[1,1],0,[12,10,0]]], - caml_string_of_jsbytes("live_words: %*d\n")], - _b1_= - [0, - [11,caml_string_of_jsbytes("free_words: "),[4,0,[1,1],0,[12,10,0]]], - caml_string_of_jsbytes("free_words: %*d\n")], - _b2_= - [0, - [11,caml_string_of_jsbytes("largest_free: "),[4,0,[1,1],0,[12,10,0]]], - caml_string_of_jsbytes("largest_free: %*d\n")], - _b3_= - [0, - [11,caml_string_of_jsbytes("fragments: "),[4,0,[1,1],0,[12,10,0]]], - caml_string_of_jsbytes("fragments: %*d\n")], - _b4_=[0,[12,10,0],caml_string_of_jsbytes("\n")], - _b5_= - [0, - [11,caml_string_of_jsbytes("live_blocks: "),[4,0,0,0,[12,10,0]]], - caml_string_of_jsbytes("live_blocks: %d\n")], - _b6_= - [0, - [11,caml_string_of_jsbytes("free_blocks: "),[4,0,0,0,[12,10,0]]], - caml_string_of_jsbytes("free_blocks: %d\n")], - _b7_= - [0, - [11,caml_string_of_jsbytes("heap_chunks: "),[4,0,0,0,[12,10,0]]], - caml_string_of_jsbytes("heap_chunks: %d\n")], - _cd_=runtime.caml_int64_create_lo_mi_hi(1,0,0), - _ce_=runtime.caml_int64_create_lo_mi_hi(0,0,0), - _cf_= + compare, + equal, + string, + bytes, + substring, + subbytes, + file, + output, + input, + to_hex, + from_hex]; + runtime.caml_register_global(8, Stdlib_Digest, "Stdlib__Digest"); + return; + } + (globalThis)); + +//# 17479 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_check_bound = runtime.caml_check_bound, + caml_greaterthan = runtime.caml_greaterthan, + caml_int64_of_int32 = runtime.caml_int64_of_int32, + caml_int64_or = runtime.caml_int64_or, + caml_int64_shift_left = runtime.caml_int64_shift_left, + caml_int64_shift_right_unsigne = runtime.caml_int64_shift_right_unsigned, + caml_int64_sub = runtime.caml_int64_sub, + caml_int64_to_int32 = runtime.caml_int64_to_int32, + caml_lessequal = runtime.caml_lessequal, + caml_mod = runtime.caml_mod, + caml_string_get = runtime.caml_string_get, + caml_sys_random_seed = runtime.caml_sys_random_seed; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call5(f, a0, a1, a2, a3, a4){ + return (f.l >= 0 ? f.l : f.l = f.length) == 5 + ? f(a0, a1, a2, a3, a4) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib = global_data.Stdlib, + Stdlib_Int32 = global_data.Stdlib__Int32, + Stdlib_Int64 = global_data.Stdlib__Int64, + Stdlib_Int = global_data.Stdlib__Int, + Stdlib_Digest = global_data.Stdlib__Digest, + Stdlib_Array = global_data.Stdlib__Array, + Stdlib_Nativeint = global_data.Stdlib__Nativeint, + _a_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 0), + _b_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 0), + cst_Random_int64 = "Random.int64", + cst_Random_int32 = "Random.int32", + cst_Random_full_int = "Random.full_int", + cst_Random_int = "Random.int", + cst_x = "x", + _c_ = [0, 987910699, 495797812, @@ -10106,13397 +25152,198 @@ 510646120, 652377910, 409934019, - 801085050], - _ci_=[0,0], - _co_=[3,0,3], - _cn_=[1,caml_string_of_jsbytes("max_indent < 2")], - _cl_=[1,caml_string_of_jsbytes("margin <= max_indent")], - _cm_=[0,0], - _ck_=[0,caml_string_of_jsbytes("")], - _cj_=[0,caml_string_of_jsbytes(""),0,caml_string_of_jsbytes("")], - _cE_=[0,91], - _cD_=[0,123], - _cF_=[0,caml_string_of_jsbytes("scanf.ml"),1453,13], - _cG_=[0,[3,0,[10,0]],caml_string_of_jsbytes("%S%!")], - _cC_=[0,37,caml_string_of_jsbytes("")], - _cB_= - [0, - [11, - caml_string_of_jsbytes("scanf: bad input at char number "), - [4,3,0,0,[11,caml_string_of_jsbytes(": "),[2,0,0]]]], - caml_string_of_jsbytes("scanf: bad input at char number %i: %s")], - _cA_= - [0, - [11, - caml_string_of_jsbytes("the character "), - [1,[11,caml_string_of_jsbytes(" cannot start a boolean"),0]]], - caml_string_of_jsbytes("the character %C cannot start a boolean")], - _cz_= - [0, - [11, - caml_string_of_jsbytes("bad character hexadecimal encoding \\"), - [0,[0,0]]], - caml_string_of_jsbytes("bad character hexadecimal encoding \\%c%c")], - _cy_= - [0, - [11, - caml_string_of_jsbytes("bad character decimal encoding \\"), - [0,[0,[0,0]]]], - caml_string_of_jsbytes("bad character decimal encoding \\%c%c%c")], - _cx_= - [0, - [11, - caml_string_of_jsbytes("character "), - [1, - [11, - caml_string_of_jsbytes(" is not a valid "), - [2,0,[11,caml_string_of_jsbytes(" digit"),0]]]]], - caml_string_of_jsbytes("character %C is not a valid %s digit")], - _cw_= - [0, - [11, - caml_string_of_jsbytes("character "), - [1,[11,caml_string_of_jsbytes(" is not a decimal digit"),0]]], - caml_string_of_jsbytes("character %C is not a decimal digit")], - _cv_=[0,caml_string_of_jsbytes("scanf.ml"),555,9], - _cu_= - [0, - [11,caml_string_of_jsbytes("invalid boolean '"),[2,0,[12,39,0]]], - caml_string_of_jsbytes("invalid boolean '%s'")], - _ct_= - [0, - [11, - caml_string_of_jsbytes("looking for "), - [1,[11,caml_string_of_jsbytes(", found "),[1,0]]]], - caml_string_of_jsbytes("looking for %C, found %C")], - _cs_= - [0, - [11, - caml_string_of_jsbytes("scanning of "), - [2, - 0, - [11, - caml_string_of_jsbytes - (" failed: premature end of file occurred before end of token"), - 0]]], - caml_string_of_jsbytes - ("scanning of %s failed: premature end of file occurred before end of token")], - _cr_= - [0, - [11, - caml_string_of_jsbytes("scanning of "), - [2, - 0, - [11, - caml_string_of_jsbytes - (" failed: the specified length was too short for token"), - 0]]], - caml_string_of_jsbytes - ("scanning of %s failed: the specified length was too short for token")], - _cq_= - [0, - [11,caml_string_of_jsbytes("illegal escape character "),[1,0]], - caml_string_of_jsbytes("illegal escape character %C")], - _cN_=[0,caml_string_of_jsbytes("camlinternalOO.ml"),439,17], - _cM_=[0,caml_string_of_jsbytes("camlinternalOO.ml"),421,13], - _cL_=[0,caml_string_of_jsbytes("camlinternalOO.ml"),418,13], - _cK_=[0,caml_string_of_jsbytes("camlinternalOO.ml"),415,13], - _cJ_=[0,caml_string_of_jsbytes("camlinternalOO.ml"),412,13], - _cI_=[0,caml_string_of_jsbytes("camlinternalOO.ml"),409,13], - _cH_=[0,caml_string_of_jsbytes("camlinternalOO.ml"),281,50], - _cO_=[0,caml_string_of_jsbytes("camlinternalMod.ml"),72,5], - _cP_=[0,caml_string_of_jsbytes("camlinternalMod.ml"),81,2], - _cS_=[0,0], - _cR_=[0,0], - _cQ_=[0,0], - _cX_=[0,7,0], - _cW_=[0,1,[0,3,[0,5,0]]], - _cV_=[0,[2,0,[4,6,[0,2,6],0,[2,0,0]]],caml_string_of_jsbytes("%s%06x%s")], - _cU_=[0,caml_string_of_jsbytes('"'),0], - _cY_=[254,0.,0.], - _cZ_=[0,0]; - function erase_rel(param) - {if(typeof param === "number") - return 0; - else - switch(param[0]) - {case 0:var rest=param[1];return [0,erase_rel(rest)]; - case 1:var rest$0=param[1];return [1,erase_rel(rest$0)]; - case 2:var rest$1=param[1];return [2,erase_rel(rest$1)]; - case 3:var rest$2=param[1];return [3,erase_rel(rest$2)]; - case 4:var rest$3=param[1];return [4,erase_rel(rest$3)]; - case 5:var rest$4=param[1];return [5,erase_rel(rest$4)]; - case 6:var rest$5=param[1];return [6,erase_rel(rest$5)]; - case 7:var rest$6=param[1];return [7,erase_rel(rest$6)]; - case 8: - var rest$7=param[2],ty=param[1];return [8,ty,erase_rel(rest$7)]; - case 9: - var rest$8=param[3],ty1=param[1]; - return [9,ty1,ty1,erase_rel(rest$8)]; - case 10:var rest$9=param[1];return [10,erase_rel(rest$9)]; - case 11:var rest$10=param[1];return [11,erase_rel(rest$10)]; - case 12:var rest$11=param[1];return [12,erase_rel(rest$11)]; - case 13:var rest$12=param[1];return [13,erase_rel(rest$12)]; - default:var rest$13=param[1];return [14,erase_rel(rest$13)]}} - function concat_fmtty(fmtty1,fmtty2) - {if(typeof fmtty1 === "number") - return fmtty2; - else - switch(fmtty1[0]) - {case 0:var rest=fmtty1[1];return [0,concat_fmtty(rest,fmtty2)]; - case 1:var rest$0=fmtty1[1];return [1,concat_fmtty(rest$0,fmtty2)]; - case 2:var rest$1=fmtty1[1];return [2,concat_fmtty(rest$1,fmtty2)]; - case 3:var rest$2=fmtty1[1];return [3,concat_fmtty(rest$2,fmtty2)]; - case 4:var rest$3=fmtty1[1];return [4,concat_fmtty(rest$3,fmtty2)]; - case 5:var rest$4=fmtty1[1];return [5,concat_fmtty(rest$4,fmtty2)]; - case 6:var rest$5=fmtty1[1];return [6,concat_fmtty(rest$5,fmtty2)]; - case 7:var rest$6=fmtty1[1];return [7,concat_fmtty(rest$6,fmtty2)]; - case 8: - var rest$7=fmtty1[2],ty=fmtty1[1]; - return [8,ty,concat_fmtty(rest$7,fmtty2)]; - case 9: - var rest$8=fmtty1[3],ty2=fmtty1[2],ty1=fmtty1[1]; - return [9,ty1,ty2,concat_fmtty(rest$8,fmtty2)]; - case 10:var rest$9=fmtty1[1];return [10,concat_fmtty(rest$9,fmtty2)]; - case 11: - var rest$10=fmtty1[1];return [11,concat_fmtty(rest$10,fmtty2)]; - case 12: - var rest$11=fmtty1[1];return [12,concat_fmtty(rest$11,fmtty2)]; - case 13: - var rest$12=fmtty1[1];return [13,concat_fmtty(rest$12,fmtty2)]; - default: - var rest$13=fmtty1[1];return [14,concat_fmtty(rest$13,fmtty2)]}} - function concat_fmt(fmt1,fmt2) - {if(typeof fmt1 === "number") - return fmt2; - else - switch(fmt1[0]) - {case 0:var rest=fmt1[1];return [0,concat_fmt(rest,fmt2)]; - case 1:var rest$0=fmt1[1];return [1,concat_fmt(rest$0,fmt2)]; - case 2: - var rest$1=fmt1[2],pad=fmt1[1]; - return [2,pad,concat_fmt(rest$1,fmt2)]; - case 3: - var rest$2=fmt1[2],pad$0=fmt1[1]; - return [3,pad$0,concat_fmt(rest$2,fmt2)]; - case 4: - var rest$3=fmt1[4],prec=fmt1[3],pad$1=fmt1[2],iconv=fmt1[1]; - return [4,iconv,pad$1,prec,concat_fmt(rest$3,fmt2)]; - case 5: - var rest$4=fmt1[4],prec$0=fmt1[3],pad$2=fmt1[2],iconv$0=fmt1[1]; - return [5,iconv$0,pad$2,prec$0,concat_fmt(rest$4,fmt2)]; - case 6: - var rest$5=fmt1[4],prec$1=fmt1[3],pad$3=fmt1[2],iconv$1=fmt1[1]; - return [6,iconv$1,pad$3,prec$1,concat_fmt(rest$5,fmt2)]; - case 7: - var rest$6=fmt1[4],prec$2=fmt1[3],pad$4=fmt1[2],iconv$2=fmt1[1]; - return [7,iconv$2,pad$4,prec$2,concat_fmt(rest$6,fmt2)]; - case 8: - var rest$7=fmt1[4],prec$3=fmt1[3],pad$5=fmt1[2],fconv=fmt1[1]; - return [8,fconv,pad$5,prec$3,concat_fmt(rest$7,fmt2)]; - case 9: - var rest$8=fmt1[2],pad$6=fmt1[1]; - return [9,pad$6,concat_fmt(rest$8,fmt2)]; - case 10:var rest$9=fmt1[1];return [10,concat_fmt(rest$9,fmt2)]; - case 11: - var rest$10=fmt1[2],str=fmt1[1]; - return [11,str,concat_fmt(rest$10,fmt2)]; - case 12: - var rest$11=fmt1[2],chr=fmt1[1]; - return [12,chr,concat_fmt(rest$11,fmt2)]; - case 13: - var rest$12=fmt1[3],fmtty=fmt1[2],pad$7=fmt1[1]; - return [13,pad$7,fmtty,concat_fmt(rest$12,fmt2)]; - case 14: - var rest$13=fmt1[3],fmtty$0=fmt1[2],pad$8=fmt1[1]; - return [14,pad$8,fmtty$0,concat_fmt(rest$13,fmt2)]; - case 15:var rest$14=fmt1[1];return [15,concat_fmt(rest$14,fmt2)]; - case 16:var rest$15=fmt1[1];return [16,concat_fmt(rest$15,fmt2)]; - case 17: - var rest$16=fmt1[2],fmting_lit=fmt1[1]; - return [17,fmting_lit,concat_fmt(rest$16,fmt2)]; - case 18: - var rest$17=fmt1[2],fmting_gen=fmt1[1]; - return [18,fmting_gen,concat_fmt(rest$17,fmt2)]; - case 19:var rest$18=fmt1[1];return [19,concat_fmt(rest$18,fmt2)]; - case 20: - var rest$19=fmt1[3],char_set=fmt1[2],width_opt=fmt1[1]; - return [20,width_opt,char_set,concat_fmt(rest$19,fmt2)]; - case 21: - var rest$20=fmt1[2],counter=fmt1[1]; - return [21,counter,concat_fmt(rest$20,fmt2)]; - case 22:var rest$21=fmt1[1];return [22,concat_fmt(rest$21,fmt2)]; - case 23: - var rest$22=fmt1[2],ign=fmt1[1]; - return [23,ign,concat_fmt(rest$22,fmt2)]; - default: - var rest$23=fmt1[3],f=fmt1[2],arity=fmt1[1]; - return [24,arity,f,concat_fmt(rest$23,fmt2)]}} - var CamlinternalFormatBasics=[0,concat_fmtty,erase_rel,concat_fmt]; - caml_register_global - (761,CamlinternalFormatBasics,"CamlinternalFormatBasics"); - function make(v){return [0,v]} - function get(r){return r[1]} - function set(r,v){r[1] = v;return 0} - function exchange(r,v){var cur=r[1];r[1] = v;return cur} - function compare_and_set(r,seen,v) - {var cur=r[1];return cur === seen?(r[1] = v,1):0} - function fetch_and_add(r,n){var cur=r[1];r[1] = cur + n | 0;return cur} - function incr(r){fetch_and_add(r,1);return 0} - function decr(r){fetch_and_add(r,-1);return 0} + 801085050]; + function new_state(param){return [0, runtime.caml_make_vect(55, 0), 0];} + function assign(st1, st2){ + caml_call5(Stdlib_Array[10], st2[1], 0, st1[1], 0, 55); + st1[2] = st2[2]; + return 0; + } + function full_init(s, seed){ var - include= - [0,make,get,set,exchange,compare_and_set,fetch_and_add,incr,decr]; - caml_register_global(762,include,"CamlinternalAtomic"); - function failwith(s){throw [0,Failure,s]} - function invalid_arg(s){throw [0,Invalid_argument,s]} - var Exit=[248,cst_Stdlib_Exit,caml_fresh_oo_id(0)]; - function min(x,y){return caml_lessequal(x,y)?x:y} - function max(x,y){return caml_greaterequal(x,y)?x:y} - function abs(x){return 0 <= x?x:- x | 0} - function lnot(x){return x ^ -1} + seed$0 = 0 === seed.length - 1 ? [0, 0] : seed, + l = seed$0.length - 1, + i$0 = 0; + for(;;){ + caml_check_bound(s[1], i$0)[1 + i$0] = i$0; + var _q_ = i$0 + 1 | 0; + if(54 !== i$0){var i$0 = _q_; continue;} + var + accu = [0, cst_x], + _n_ = 54 + caml_call2(Stdlib_Int[11], 55, l) | 0, + _m_ = 0; + if(_n_ >= 0){ + var i = _m_; + for(;;){ + var + j = i % 55 | 0, + k = caml_mod(i, l), + x = caml_check_bound(seed$0, k)[1 + k], + accu$0 = accu[1], + _g_ = caml_call1(Stdlib_Int[12], x), + _h_ = caml_call2(Stdlib[28], accu$0, _g_); + accu[1] = caml_call1(Stdlib_Digest[3], _h_); + var + d = accu[1], + _i_ = caml_string_get(d, 3) << 24, + _j_ = caml_string_get(d, 2) << 16, + _k_ = caml_string_get(d, 1) << 8, + _l_ = ((caml_string_get(d, 0) + _k_ | 0) + _j_ | 0) + _i_ | 0, + _o_ = (caml_check_bound(s[1], j)[1 + j] ^ _l_) & 1073741823; + caml_check_bound(s[1], j)[1 + j] = _o_; + var _p_ = i + 1 | 0; + if(_n_ !== i){var i = _p_; continue;} + break; + } + } + s[2] = 0; + return 0; + } + } + function make(seed){ + var result = new_state(0); + full_init(result, seed); + return result; + } + function make_self_init(param){return make(caml_sys_random_seed(0));} + function copy(s){ + var result = new_state(0); + assign(result, s); + return result; + } + function bits(s){ + s[2] = (s[2] + 1 | 0) % 55 | 0; var - infinity=caml_int64_float_of_bits(_a_), - neg_infinity=caml_int64_float_of_bits(_b_), - nan=caml_int64_float_of_bits(_c_), - max_float=caml_int64_float_of_bits(_d_), - min_float=caml_int64_float_of_bits(_e_), - epsilon=caml_int64_float_of_bits(_f_), - max_int=2147483647, - min_int=-2147483648; - function cat(s1,s2) - {var - l1=caml_ml_string_length(s1), - l2=caml_ml_string_length(s2), - s=caml_create_bytes(l1 + l2 | 0); - caml_blit_string(s1,0,s,0,l1); - caml_blit_string(s2,0,s,l1,l2); - return caml_string_of_bytes(s)} - function char_of_int(n) - {if(0 <= n && ! (255 < n))return n;return invalid_arg(cst_char_of_int)} - function string_of_bool(b){return b?cst_true:cst_false} - function bool_of_string(param) - {return caml_string_notequal(param,cst_false$0) - ?caml_string_notequal(param,cst_true$0) - ?invalid_arg(cst_bool_of_string) - :1 - :0} - function bool_of_string_opt(param) - {return caml_string_notequal(param,cst_false$1) - ?caml_string_notequal(param,cst_true$1)?0:_g_ - :_h_} - function string_of_int(n){return caml_string_of_jsbytes("" + n)} - function int_of_string_opt(s) - {try - {var _Ey_=[0,caml_int_of_string(s)];return _Ey_} - catch(_Ez_) - {_Ez_ = caml_wrap_exception(_Ez_); - if(_Ez_[1] === Failure)return 0; - throw _Ez_}} - function valid_float_lexem(s) - {var l=caml_ml_string_length(s),i=0; - for(;;) - {if(l <= i)return cat(s,cst); - var match=caml_string_get(s,i),switch$0=0; - if(48 <= match) - {if(! (58 <= match))switch$0 = 1} - else - if(45 === match)switch$0 = 1; - if(switch$0){var i$0=i + 1 | 0,i=i$0;continue} - return s}} - function to_string(f) - {return valid_float_lexem(caml_format_float(cst_12g,f))} - function of_string_opt(s) - {try - {var _Ew_=[0,caml_float_of_string(s)];return _Ew_} - catch(_Ex_) - {_Ex_ = caml_wrap_exception(_Ex_); - if(_Ex_[1] === Failure)return 0; - throw _Ex_}} - function append(l1,l2) - {if(l1){var tl=l1[2],hd=l1[1];return [0,hd,append(tl,l2)]}return l2} + _d_ = s[2], + curval = caml_check_bound(s[1], _d_)[1 + _d_], + _e_ = (s[2] + 24 | 0) % 55 | 0, + newval = + caml_check_bound(s[1], _e_)[1 + _e_] + + (curval ^ (curval >>> 25 | 0) & 31) + | 0, + newval30 = newval & 1073741823, + _f_ = s[2]; + caml_check_bound(s[1], _f_)[1 + _f_] = newval30; + return newval30; + } + function intaux(s, n){ + for(;;){ + var r = bits(s), v = caml_mod(r, n); + if(((1073741823 - n | 0) + 1 | 0) < (r - v | 0)) continue; + return v; + } + } + function int$0(s, bound){ + if(1073741823 >= bound && 0 < bound) return intaux(s, bound); + return caml_call1(Stdlib[1], cst_Random_int); + } + function full_int(s, bound){ + if(0 >= bound) return caml_call1(Stdlib[1], cst_Random_full_int); + if(1073741823 >= bound) return intaux(s, bound); + for(;;){ + var b1 = bits(s), b2 = bits(s), max_int_32 = 2147483647; + if(bound <= 2147483647) + var + bpos = (b2 & 1073725440) << 1 | b1 >>> 15 | 0, + max_int = max_int_32, + r = bpos; + else + var + b3 = bits(s), + r$0 = ((b3 & 1073741312) << 12 | b2 >>> 9 | 0) << 20 | b1 >>> 10 | 0, + max_int$0 = Stdlib[19], + max_int = max_int$0, + r = r$0; + var v = caml_mod(r, bound); + if(((max_int - bound | 0) + 1 | 0) < (r - v | 0)) continue; + return v; + } + } + function int32(s, bound){ + if(caml_lessequal(bound, 0)) + return caml_call1(Stdlib[1], cst_Random_int32); + for(;;){ + var + b1 = bits(s), + b2 = (bits(s) & 1) << 30, + r = b1 | b2, + v = caml_mod(r, bound); + if(caml_greaterthan(r - v | 0, (Stdlib_Int32[9] - bound | 0) + 1 | 0)) + continue; + return v; + } + } + function int64(s, bound){ + if(caml_lessequal(bound, _b_)) + return caml_call1(Stdlib[1], cst_Random_int64); + for(;;){ + var + b1 = caml_int64_of_int32(bits(s)), + b2 = caml_int64_shift_left(caml_int64_of_int32(bits(s)), 30), + b3 = caml_int64_shift_left(caml_int64_of_int32(bits(s) & 7), 60), + r = caml_int64_or(b1, caml_int64_or(b2, b3)), + v = runtime.caml_int64_mod(r, bound); + if + (caml_greaterthan + (caml_int64_sub(r, v), + runtime.caml_int64_add(caml_int64_sub(Stdlib_Int64[9], bound), _a_))) + continue; + return v; + } + } + var + nativeint = + 32 === Stdlib_Nativeint[9] + ? function(s, bound){return int32(s, bound);} + : function + (s, bound){ + return caml_int64_to_int32(int64(s, caml_int64_of_int32(bound))); + }; + function float$0(s, bound){ + var r1 = bits(s), r2 = bits(s); + return (r1 / 1073741824. + r2) / 1073741824. * bound; + } + function bool(s){return 0 === (bits(s) & 1) ? 1 : 0;} + function bits32(s){ + var b1 = bits(s) >>> 14 | 0, b2 = bits(s) >>> 14 | 0; + return b1 | b2 << 16; + } + function bits64(s){ var - stdin=caml_ml_open_descriptor_in(0), - stdout=caml_ml_open_descriptor_out(1), - stderr=caml_ml_open_descriptor_out(2); - function open_gen(mode,perm,name) - {var c=caml_ml_open_descriptor_out(caml_sys_open(name,mode,perm)); - caml_ml_set_channel_name(c,name); - return c} - function open_text(name){return open_gen(_i_,438,name)} - function open_bin(name){return open_gen(_j_,438,name)} - function flush_all(param) - {function iter(param) - {var param$0=param; - for(;;) - {if(param$0) - {var l=param$0[2],a=param$0[1]; - try - {caml_ml_flush(a)} - catch(_Ev_) - {_Ev_ = caml_wrap_exception(_Ev_); - if(_Ev_[1] !== Sys_error)throw _Ev_; - var _Eu_=_Ev_} - var param$0=l; - continue} - return 0}} - return iter(runtime.caml_ml_out_channels_list(0))} - function output_bytes(oc,s) - {return caml_ml_output_bytes(oc,s,0,caml_ml_bytes_length(s))} - function output_string(oc,s) - {return caml_ml_output(oc,s,0,caml_ml_string_length(s))} - function output(oc,s,ofs,len) - {if - (0 <= ofs && 0 <= len && ! ((caml_ml_bytes_length(s) - len | 0) < ofs)) - return caml_ml_output_bytes(oc,s,ofs,len); - return invalid_arg(cst_output)} - function output_substring(oc,s,ofs,len) - {if - (0 - <= - ofs - && - 0 - <= - len - && - ! - ((caml_ml_string_length(s) - len | 0) < ofs)) - return caml_ml_output(oc,s,ofs,len); - return invalid_arg(cst_output_substring)} - function output_value(chan,v){return caml_output_value(chan,v,0)} - function close(oc){caml_ml_flush(oc);return caml_ml_close_channel(oc)} - function close_noerr(oc) - {try {caml_ml_flush(oc)}catch(_Et_){} - try - {var _Er_=caml_ml_close_channel(oc);return _Er_} - catch(_Es_){return 0}} - function open_gen$0(mode,perm,name) - {var c=caml_ml_open_descriptor_in(caml_sys_open(name,mode,perm)); - caml_ml_set_channel_name(c,name); - return c} - function open_text$0(name){return open_gen$0(_k_,0,name)} - function open_bin$0(name){return open_gen$0(_l_,0,name)} - function input(ic,s,ofs,len) - {if - (0 <= ofs && 0 <= len && ! ((caml_ml_bytes_length(s) - len | 0) < ofs)) - return caml_ml_input(ic,s,ofs,len); - return invalid_arg(cst_input)} - function unsafe_really_input(ic,s,ofs,len) - {var ofs$0=ofs,len$0=len; - for(;;) - {if(0 < len$0) - {var r=caml_ml_input(ic,s,ofs$0,len$0); - if(0 === r)throw End_of_file; - var len$1=len$0 - r | 0,ofs$1=ofs$0 + r | 0,ofs$0=ofs$1,len$0=len$1; - continue} - return 0}} - function really_input(ic,s,ofs,len) - {if - (0 <= ofs && 0 <= len && ! ((caml_ml_bytes_length(s) - len | 0) < ofs)) - return unsafe_really_input(ic,s,ofs,len); - return invalid_arg(cst_really_input)} - function really_input_string(ic,len) - {var s=caml_create_bytes(len); - really_input(ic,s,0,len); - return caml_string_of_bytes(s)} - function input_line(chan) - {function build_result(buf,pos,param) - {var pos$0=pos,param$0=param; - for(;;) - {if(param$0) - {var tl=param$0[2],hd=param$0[1],len=caml_ml_bytes_length(hd); - caml_blit_bytes(hd,0,buf,pos$0 - len | 0,len); - var pos$1=pos$0 - len | 0,pos$0=pos$1,param$0=tl; - continue} - return buf}} - var accu=0,len=0; - for(;;) - {var n=runtime.caml_ml_input_scan_line(chan); - if(0 === n) - {if(! accu)throw End_of_file; - var _Eq_=build_result(caml_create_bytes(len),len,accu)} - else - {if(! (0 < n)) - {var beg=caml_create_bytes(- n | 0); - caml_ml_input(chan,beg,0,- n | 0); - var len$1=len - n | 0,accu$0=[0,beg,accu],accu=accu$0,len=len$1; - continue} - var res=caml_create_bytes(n - 1 | 0); - caml_ml_input(chan,res,0,n - 1 | 0); - caml_ml_input_char(chan); - if(accu) - var - len$0=(len + n | 0) - 1 | 0, - _Eq_=build_result(caml_create_bytes(len$0),len$0,[0,res,accu]); - else - var _Eq_=res} - return caml_string_of_bytes(_Eq_)}} - function close_noerr$0(ic) - {try - {var _Eo_=caml_ml_close_channel(ic);return _Eo_} - catch(_Ep_){return 0}} - function print_char(c){return caml_ml_output_char(stdout,c)} - function print_string(s){return output_string(stdout,s)} - function print_bytes(s){return output_bytes(stdout,s)} - function print_int(i) - {return output_string(stdout,caml_string_of_jsbytes("" + i))} - function print_float(f){return output_string(stdout,to_string(f))} - function print_endline(s) - {output_string(stdout,s); - caml_ml_output_char(stdout,10); - return caml_ml_flush(stdout)} - function print_newline(param) - {caml_ml_output_char(stdout,10);return caml_ml_flush(stdout)} - function prerr_char(c){return caml_ml_output_char(stderr,c)} - function prerr_string(s){return output_string(stderr,s)} - function prerr_bytes(s){return output_bytes(stderr,s)} - function prerr_int(i) - {return output_string(stderr,caml_string_of_jsbytes("" + i))} - function prerr_float(f){return output_string(stderr,to_string(f))} - function prerr_endline(s) - {output_string(stderr,s); - caml_ml_output_char(stderr,10); - return caml_ml_flush(stderr)} - function prerr_newline(param) - {caml_ml_output_char(stderr,10);return caml_ml_flush(stderr)} - function read_line(param){caml_ml_flush(stdout);return input_line(stdin)} - function read_int(param){return caml_int_of_string(read_line(0))} - function read_int_opt(param){return int_of_string_opt(read_line(0))} - function read_float(param){return caml_float_of_string(read_line(0))} - function read_float_opt(param){return of_string_opt(read_line(0))} - function string_of_format(param){var str=param[2];return str} - function symbol(param,_Em_) - {var - str2=_Em_[2], - fmt2=_Em_[1], - str1=param[2], - fmt1=param[1], - _En_=cat(str1,cat(cst$0,str2)); - return [0,concat_fmt(fmt1,fmt2),_En_]} - var exit_function=[0,flush_all]; - function at_exit(f) - {for(;;) - {var - f_yet_to_run=[0,1], - old_exit=exit_function[1], - new_exit$0= - function(f_yet_to_run,old_exit) - {function new_exit(param) - {if(compare_and_set(f_yet_to_run,1,0))caml_call1(f,0); - return caml_call1(old_exit,0)} - return new_exit}, - new_exit=new_exit$0(f_yet_to_run,old_exit), - success=compare_and_set(exit_function,old_exit,new_exit), - _El_=1 - success; - if(_El_)continue; - return _El_}} - function do_at_exit(param){return caml_call1(exit_function[1],0)} - function exit(retcode) - {do_at_exit(0);return runtime.caml_sys_exit(retcode)} - caml_register_named_value - (caml_string_of_jsbytes("Pervasives.do_at_exit"),do_at_exit); - var - _m_= + b1 = caml_int64_shift_right_unsigne(caml_int64_of_int32(bits(s)), 9), + b2 = caml_int64_shift_right_unsigne(caml_int64_of_int32(bits(s)), 9), + b3 = caml_int64_shift_right_unsigne(caml_int64_of_int32(bits(s)), 8); + return caml_int64_or + (b1, + caml_int64_or + (caml_int64_shift_left(b2, 21), caml_int64_shift_left(b3, 42))); + } + var + nativebits = + 32 === Stdlib_Nativeint[9] + ? function(s){return bits32(s);} + : function(s){return caml_int64_to_int32(bits64(s));}, + default$0 = [0, _c_.slice(), 0]; + function bits$0(param){return bits(default$0);} + function int$1(bound){return int$0(default$0, bound);} + function full_int$0(bound){return full_int(default$0, bound);} + function int32$0(bound){return int32(default$0, bound);} + function nativeint$0(bound){return nativeint(default$0, bound);} + function int64$0(bound){return int64(default$0, bound);} + function float$1(scale){return float$0(default$0, scale);} + function bool$0(param){return bool(default$0);} + function bits32$0(param){return bits32(default$0);} + function bits64$0(param){return bits64(default$0);} + function nativebits$0(param){return nativebits(default$0);} + function full_init$0(seed){return full_init(default$0, seed);} + function init(seed){return full_init(default$0, [0, seed]);} + function self_init(param){return full_init$0(caml_sys_random_seed(0));} + function get_state(param){return copy(default$0);} + function set_state(s){return assign(default$0, s);} + var + Stdlib_Random = [0, - runtime.caml_ml_seek_out_64, - runtime.caml_ml_pos_out_64, - caml_ml_channel_size_64, - runtime.caml_ml_seek_in_64, - runtime.caml_ml_pos_in_64, - caml_ml_channel_size_64], - set_binary_mode=caml_ml_set_binary_mode, - close$0=caml_ml_close_channel, - in_channel_length=caml_ml_channel_size, - pos_in=caml_ml_pos_in, - seek_in=runtime.caml_ml_seek_in, - input_value=caml_input_value, - input_binary_int=runtime.caml_ml_input_int, - input_byte=caml_ml_input_char, - input_char=caml_ml_input_char, - set_binary_mode$0=caml_ml_set_binary_mode, - out_channel_length=caml_ml_channel_size, - pos_out=runtime.caml_ml_pos_out, - seek_out=runtime.caml_ml_seek_out, - output_binary_int=runtime.caml_ml_output_int, - output_byte=caml_ml_output_char, - output_char=caml_ml_output_char, - flush=caml_ml_flush, - Stdlib= - [0, - invalid_arg, - failwith, - Exit, - Match_failure, - Assert_failure, - Invalid_argument, - Failure, - Not_found, - Out_of_memory, - Stack_overflow, - Sys_error, - End_of_file, - Division_by_zero, - Sys_blocked_io, - Undefined_recursive_module, - min, - max, - abs, - max_int, - min_int, - lnot, - infinity, - neg_infinity, - nan, - max_float, - min_float, - epsilon, - cat, - char_of_int, - string_of_bool, - bool_of_string_opt, - bool_of_string, - string_of_int, - int_of_string_opt, - to_string, - of_string_opt, - append, - stdin, - stdout, - stderr, - print_char, - print_string, - print_bytes, - print_int, - print_float, - print_endline, - print_newline, - prerr_char, - prerr_string, - prerr_bytes, - prerr_int, - prerr_float, - prerr_endline, - prerr_newline, - read_line, - read_int_opt, - read_int, - read_float_opt, - read_float, - open_text, - open_bin, - open_gen, - flush, - flush_all, - output_char, - output_string, - output_bytes, - output, - output_substring, - output_byte, - output_binary_int, - output_value, - seek_out, - pos_out, - out_channel_length, - close, - close_noerr, - set_binary_mode$0, - open_text$0, - open_bin$0, - open_gen$0, - input_char, - input_line, - input, - really_input, - really_input_string, - input_byte, - input_binary_int, - input_value, - seek_in, - pos_in, - in_channel_length, - close$0, - close_noerr$0, - set_binary_mode, - _m_, - string_of_format, - symbol, - exit, - at_exit, - valid_float_lexem, - unsafe_really_input, - do_at_exit]; - caml_register_global(775,Stdlib,"Stdlib"); - var - Exit$0=[248,cst_Stdlib_Pervasives_Exit,caml_fresh_oo_id(0)], - Stdlib_Pervasives= - [0, - invalid_arg, - failwith, - Exit$0, - min, - max, - abs, - max_int, - min_int, - lnot, - infinity, - neg_infinity, - nan, - max_float, - min_float, - epsilon, - cat, - char_of_int, - string_of_bool, - bool_of_string, - bool_of_string_opt, - string_of_int, - int_of_string_opt, - to_string, - of_string_opt, - append, - stdin, - stdout, - stderr, - print_char, - print_string, - print_bytes, - print_int, - print_float, - print_endline, - print_newline, - prerr_char, - prerr_string, - prerr_bytes, - prerr_int, - prerr_float, - prerr_endline, - prerr_newline, - read_line, - read_int, - read_int_opt, - read_float, - read_float_opt, - open_text, - open_bin, - open_gen, - flush, - flush_all, - output_char, - output_string, - output_bytes, - output, - output_substring, - output_byte, - output_binary_int, - output_value, - seek_out, - pos_out, - out_channel_length, - close, - close_noerr, - set_binary_mode$0, - open_text$0, - open_bin$0, - open_gen$0, - input_char, - input_line, - input, - really_input, - really_input_string, - input_byte, - input_binary_int, - input_value, - seek_in, - pos_in, - in_channel_length, - close$0, - close_noerr$0, - set_binary_mode, - string_of_format, - symbol, - exit, - at_exit, - valid_float_lexem, - do_at_exit]; - caml_register_global(776,Stdlib_Pervasives,"Stdlib__Pervasives"); - function left(v){return [0,v]} - function right(v){return [1,v]} - function is_left(param){return 0 === param[0]?1:0} - function is_right(param){return 0 === param[0]?0:1} - function find_left(param) - {if(0 === param[0]){var v=param[1];return [0,v]}return 0} - function find_right(param) - {if(0 === param[0])return 0;var v=param[1];return [0,v]} - function map_left(f,e) - {if(0 === e[0]){var v=e[1];return [0,caml_call1(f,v)]}return e} - function map_right(f,e) - {if(0 === e[0])return e;var v=e[1];return [1,caml_call1(f,v)]} - function map(left,right,param) - {if(0 === param[0]){var v=param[1];return [0,caml_call1(left,v)]} - var v$0=param[1]; - return [1,caml_call1(right,v$0)]} - function fold(left,right,param) - {if(0 === param[0]){var v=param[1];return caml_call1(left,v)} - var v$0=param[1]; - return caml_call1(right,v$0)} - function equal(left,right,e1,e2) - {if(0 === e1[0]) - {var _Ej_=e1[1]; - if(0 === e2[0]){var v2=e2[1];return caml_call2(left,_Ej_,v2)}} - else - {var _Ek_=e1[1]; - if(0 !== e2[0]){var v2$0=e2[1];return caml_call2(right,_Ek_,v2$0)}} - return 0} - function compare(left,right,e1,e2) - {if(0 === e1[0]) - {var _Eh_=e1[1]; - if(0 === e2[0]){var v2=e2[1];return caml_call2(left,_Eh_,v2)} - return -1} - var _Ei_=e1[1]; - if(0 === e2[0])return 1; - var v2$0=e2[1]; - return caml_call2(right,_Ei_,v2$0)} - var - Stdlib_Either= - [0, - left, - right, - is_left, - is_right, - find_left, - find_right, - map_left, - map_right, - map, - fold, - fold, - fold, - equal, - compare]; - caml_register_global(777,Stdlib_Either,"Stdlib__Either"); - var - executable_name=runtime.caml_sys_executable_name(0), - match=runtime.caml_sys_get_config(0), - os_type=match[1], - match$0=[0,caml_string_of_jsbytes("js_of_ocaml")], - unix=runtime.caml_sys_const_ostype_unix(0), - win32=runtime.caml_sys_const_ostype_win32(0), - cygwin=runtime.caml_sys_const_ostype_cygwin(0), - max_array_length=runtime.caml_sys_const_max_wosize(0), - max_floatarray_length=max_array_length / 2 | 0, - max_string_length=(4 * max_array_length | 0) - 1 | 0, - big_endian=0, - match$1=32, - int_size=32; - function getenv_opt(s) - {try - {var _Ef_=[0,caml_sys_getenv(s)];return _Ef_} - catch(_Eg_) - {_Eg_ = caml_wrap_exception(_Eg_); - if(_Eg_ === Not_found)return 0; - throw _Eg_}} - var interactive=[0,0]; - function set_signal(sig_num,sig_beh){return 0} - var - Break=[248,cst_Stdlib_Sys_Break,caml_fresh_oo_id(0)], - sigabrt=-1, - sigalrm=-2, - sigfpe=-3, - sighup=-4, - sigill=-5, - sigint=-6, - sigkill=-7, - sigpipe=-8, - sigquit=-9, - sigsegv=-10, - sigterm=-11, - sigusr1=-12, - sigusr2=-13, - sigchld=-14, - sigcont=-15, - sigstop=-16, - sigtstp=-17, - sigttin=-18, - sigttou=-19, - sigvtalrm=-20, - sigprof=-21, - sigbus=-22, - sigpoll=-23, - sigsys=-24, - sigtrap=-25, - sigurg=-26, - sigxcpu=-27, - sigxfsz=-28; - function catch_break(on){return on?0:0} - var development_version=0; - function Make(_Ee_,_Ed_){return [0,1]} - var - Immediate64=[0,Make], - Stdlib_Sys= - [0, - executable_name, - getenv_opt, - interactive, - os_type, - match$0, - unix, - win32, - cygwin, - match$1, - int_size, - big_endian, - max_string_length, - max_array_length, - max_floatarray_length, - set_signal, - sigabrt, - sigalrm, - sigfpe, - sighup, - sigill, - sigint, - sigkill, - sigpipe, - sigquit, - sigsegv, - sigterm, - sigusr1, - sigusr2, - sigchld, - sigcont, - sigstop, - sigtstp, - sigttin, - sigttou, - sigvtalrm, - sigprof, - sigbus, - sigpoll, - sigsys, - sigtrap, - sigurg, - sigxcpu, - sigxfsz, - Break, - catch_break, - ocaml_version, - development_version, - ocaml_release, - runtime.caml_ml_enable_runtime_warnings, - runtime.caml_ml_runtime_warnings_enabled, - Immediate64]; - caml_register_global(778,Stdlib_Sys,"Stdlib__Sys"); - function is_block(a){return 1 - (typeof a === "number"?1:0)} - function double_field(x,i){return caml_array_get(x,i)} - function set_double_field(x,i,v){return caml_array_set(x,i,v)} - var - first_non_constant_constructor=0, - last_non_constant_constructor_=245, - lazy_tag=246, - closure_tag=247, - object_tag=248, - infix_tag=249, - forward_tag=250, - no_scan_tag=251, - abstract_tag=251, - string_tag=252, - double_tag=253, - double_array_tag=254, - custom_tag=255, - int_tag=1000, - out_of_heap_tag=1001, - unaligned_tag=1002; - function info(obj) - {if(caml_obj_tag(obj) === 247) - {var - info=runtime.caml_obj_raw_field(obj,1), - arity=info >> 24, - start_env=info << 8 >>> 9 | 0; - return [0,arity,start_env]} - throw [0,Assert_failure,_n_]} - function of_val(x) - {var switch$0=0; - if(is_block(x) && caml_obj_tag(x) !== 248 && 1 <= x.length - 1) - {var slot=x[1];switch$0 = 1} - if(! switch$0)var slot=x; - var switch$1=0; - if(is_block(slot) && caml_obj_tag(slot) === 248) - {var name=slot[1];switch$1 = 1} - if(! switch$1)var name=invalid_arg(cst_Obj_extension_constructor$0); - return caml_obj_tag(name) === 252 - ?slot - :invalid_arg(cst_Obj_extension_constructor)} - function name(slot){return slot[1]} - function id(slot){return slot[2]} - var - Extension_constructor=[0,of_val,name,id], - extension_constructor=Extension_constructor[1], - extension_name=Extension_constructor[2], - extension_id=Extension_constructor[3], - max_ephe_length=max_array_length - 2 | 0; - function create(l) - {var _Eb_=0 <= l?1:0,_Ec_=_Eb_?l <= max_ephe_length?1:0:_Eb_; - if(1 - _Ec_)invalid_arg(cst_Obj_Ephemeron_create); - return runtime.caml_ephe_create(l)} - function length(x){return x.length - 1 - 2 | 0} - function raise_if_invalid_offset(e,o,msg) - {var _D__=0 <= o?1:0,_D$_=_D__?o < length(e)?1:0:_D__,_Ea_=1 - _D$_; - return _Ea_?invalid_arg(msg):_Ea_} - function get_key(e,o) - {raise_if_invalid_offset(e,o,cst_Obj_Ephemeron_get_key); - return caml_ephe_get_key(e,o)} - function get_key_copy(e,o) - {raise_if_invalid_offset(e,o,cst_Obj_Ephemeron_get_key_copy); - return caml_ephe_get_key_copy(e,o)} - function set_key(e,o,x) - {raise_if_invalid_offset(e,o,cst_Obj_Ephemeron_set_key); - return caml_ephe_set_key(e,o,x)} - function unset_key(e,o) - {raise_if_invalid_offset(e,o,cst_Obj_Ephemeron_unset_key); - return caml_ephe_unset_key(e,o)} - function check_key(e,o) - {raise_if_invalid_offset(e,o,cst_Obj_Ephemeron_check_key); - return caml_ephe_check_key(e,o)} - function blit_key(e1,o1,e2,o2,l) - {if - (0 - <= - l - && - 0 - <= - o1 - && - ! - ((length(e1) - l | 0) < o1) - && - 0 - <= - o2 - && - ! - ((length(e2) - l | 0) < o2)) - {var _D8_=0 !== l?1:0,_D9_=_D8_?caml_ephe_blit_key(e1,o1,e2,o2,l):_D8_; - return _D9_} - return invalid_arg(cst_Obj_Ephemeron_blit_key)} - var - _o_= - [0, - create, - length, - get_key, - get_key_copy, - set_key, - unset_key, - check_key, - blit_key, - runtime.caml_ephe_get_data, - runtime.caml_ephe_get_data_copy, - runtime.caml_ephe_set_data, - runtime.caml_ephe_unset_data, - runtime.caml_ephe_check_data, - runtime.caml_ephe_blit_data, - max_ephe_length], - Stdlib_Obj= - [0, - is_block, - double_field, - set_double_field, - first_non_constant_constructor, - last_non_constant_constructor_, - lazy_tag, - closure_tag, - object_tag, - infix_tag, - forward_tag, - no_scan_tag, - abstract_tag, - string_tag, - double_tag, - double_array_tag, - custom_tag, - custom_tag, - int_tag, - out_of_heap_tag, - unaligned_tag, - [0,info], - Extension_constructor, - extension_constructor, - extension_name, - extension_id, - _o_]; - caml_register_global(779,Stdlib_Obj,"Stdlib__Obj"); - var Undefined=[248,cst_CamlinternalLazy_Undefined,caml_fresh_oo_id(0)]; - function raise_undefined(param){throw Undefined} - function force_lazy_block(blk) - {var closure=blk[1]; - blk[1] = raise_undefined; - try - {var result=caml_call1(closure,0); - caml_obj_make_forward(blk,result); - return result} - catch(e) - {e = caml_wrap_exception(e);blk[1] = function(param){throw e};throw e}} - function force_val_lazy_block(blk) - {var closure=blk[1]; - blk[1] = raise_undefined; - var result=caml_call1(closure,0); - caml_obj_make_forward(blk,result); - return result} - function force(lzv) - {var t=caml_obj_tag(lzv); - return t === 250?lzv[1]:t !== 246?lzv:force_lazy_block(lzv)} - function force_val(lzv) - {var t=caml_obj_tag(lzv); - return t === 250?lzv[1]:t !== 246?lzv:force_val_lazy_block(lzv)} - var - CamlinternalLazy= - [0,Undefined,force_lazy_block,force_val_lazy_block,force,force_val]; - caml_register_global(780,CamlinternalLazy,"CamlinternalLazy"); - function to_lazy(f){var x=caml_obj_block(246,1);x[1] = f;return x} - function from_val(v) - {var t=caml_obj_tag(v); - if(t !== 250 && t !== 246 && t !== 253)return v; - return runtime.caml_lazy_make_forward(v)} - function is_val(l){return caml_obj_tag(l) !== 246?1:0} - function map$0(f,x) - {return [246, - function(_D5_) - {var - _D6_=caml_obj_tag(x), - _D7_=250 === _D6_?x[1]:246 === _D6_?force_lazy_block(x):x; - return caml_call1(f,_D7_)}]} - function map_val(f,x) - {if(is_val(x)) - {var - _D0_=caml_obj_tag(x), - _D1_=250 === _D0_?x[1]:246 === _D0_?force_lazy_block(x):x; - return from_val(caml_call1(f,_D1_))} - return [246, - function(_D2_) - {var - _D3_=caml_obj_tag(x), - _D4_=250 === _D3_?x[1]:246 === _D3_?force_lazy_block(x):x; - return caml_call1(f,_D4_)}]} - var - Stdlib_Lazy= - [0, - Undefined, - map$0, - is_val, - from_val, - map_val, - to_lazy, - force_val, - to_lazy, - from_val, - is_val]; - caml_register_global(781,Stdlib_Lazy,"Stdlib__Lazy"); - function empty(param){return 0} - function return$0(x,param){return [0,x,empty]} - function cons(x,next,param){return [0,x,next]} - function append$0(seq1,seq2,param) - {var match=caml_call1(seq1,0); - if(match) - {var next=match[2],x=match[1]; - return [0,x,function(_DZ_){return append$0(next,seq2,_DZ_)}]} - return caml_call1(seq2,0)} - function map$1(f,seq,param) - {var match=caml_call1(seq,0); - if(match) - {var - next=match[2], - x=match[1], - _DX_=function(_DY_){return map$1(f,next,_DY_)}; - return [0,caml_call1(f,x),_DX_]} - return 0} - function filter_map(f,seq,param) - {var seq$0=seq; - for(;;) - {var match=caml_call1(seq$0,0); - if(match) - {var next=match[2],x=match[1],match$0=caml_call1(f,x); - if(match$0) - {var y=match$0[1]; - return [0,y,function(_DW_){return filter_map(f,next,_DW_)}]} - var seq$0=next; - continue} - return 0}} - function filter(f,seq,param) - {var seq$0=seq; - for(;;) - {var match=caml_call1(seq$0,0); - if(match) - {var next=match[2],x=match[1]; - if(caml_call1(f,x)) - return [0,x,function(_DV_){return filter(f,next,_DV_)}]; - var seq$0=next; - continue} - return 0}} - function concat(seq,param) - {var match=caml_call1(seq,0); - if(match) - {var next=match[2],x=match[1],_DT_=0; - return append$0(x,function(_DU_){return concat(next,_DU_)},_DT_)} - return 0} - function flat_map(f,seq,param) - {var match=caml_call1(seq,0); - if(match) - {var - next=match[2], - x=match[1], - _DQ_=0, - _DR_=function(_DS_){return flat_map(f,next,_DS_)}; - return append$0(caml_call1(f,x),_DR_,_DQ_)} - return 0} - function fold_left(f,acc,seq) - {var acc$0=acc,seq$0=seq; - for(;;) - {var match=caml_call1(seq$0,0); - if(match) - {var - next=match[2], - x=match[1], - acc$1=caml_call2(f,acc$0,x), - acc$0=acc$1, - seq$0=next; - continue} - return acc$0}} - function iter(f,seq) - {var seq$0=seq; - for(;;) - {var match=caml_call1(seq$0,0); - if(match) - {var next=match[2],x=match[1]; - caml_call1(f,x); - var seq$0=next; - continue} - return 0}} - function unfold(f,u,param) - {var match=caml_call1(f,u); - if(match) - {var match$0=match[1],u$0=match$0[2],x=match$0[1]; - return [0,x,function(_DP_){return unfold(f,u$0,_DP_)}]} - return 0} - function is_empty(xs){var match=caml_call1(xs,0);return match?0:1} - function uncons(xs) - {var match=caml_call1(xs,0); - if(match){var xs$0=match[2],x=match[1];return [0,[0,x,xs$0]]} - return 0} - function length$0(xs$1) - {var accu=0,xs=xs$1; - for(;;) - {var match=caml_call1(xs,0); - if(match) - {var xs$0=match[2],accu$0=accu + 1 | 0,accu=accu$0,xs=xs$0;continue} - return accu}} - function iteri(f,xs$1) - {var i=0,xs=xs$1; - for(;;) - {var match=caml_call1(xs,0); - if(match) - {var xs$0=match[2],x=match[1]; - caml_call2(f,i,x); - var i$0=i + 1 | 0,i=i$0,xs=xs$0; - continue} - return 0}} - function fold_lefti(f,accu$1,xs$1) - {var accu=accu$1,i=0,xs=xs$1; - for(;;) - {var match=caml_call1(xs,0); - if(match) - {var - xs$0=match[2], - x=match[1], - accu$0=caml_call3(f,accu,i,x), - i$0=i + 1 | 0, - accu=accu$0, - i=i$0, - xs=xs$0; - continue} - return accu}} - function for_all(p,xs) - {var xs$0=xs; - for(;;) - {var match=caml_call1(xs$0,0); - if(match) - {var xs$1=match[2],x=match[1],_DO_=caml_call1(p,x); - if(_DO_){var xs$0=xs$1;continue} - return _DO_} - return 1}} - function exists(p,xs) - {var xs$0=xs; - for(;;) - {var match=caml_call1(xs$0,0); - if(match) - {var xs$1=match[2],x=match[1],_DN_=caml_call1(p,x); - if(_DN_)return _DN_; - var xs$0=xs$1; - continue} - return 0}} - function find(p,xs) - {var xs$0=xs; - for(;;) - {var match=caml_call1(xs$0,0); - if(match) - {var xs$1=match[2],x=match[1]; - if(caml_call1(p,x))return [0,x]; - var xs$0=xs$1; - continue} - return 0}} - function find_map(f,xs) - {var xs$0=xs; - for(;;) - {var match=caml_call1(xs$0,0); - if(match) - {var xs$1=match[2],x=match[1],result=caml_call1(f,x); - if(result)return result; - var xs$0=xs$1; - continue} - return 0}} - function iter2(f,xs,ys) - {var xs$0=xs,ys$0=ys; - for(;;) - {var match=caml_call1(xs$0,0); - if(match) - {var xs$1=match[2],x=match[1],match$0=caml_call1(ys$0,0); - if(match$0) - {var ys$1=match$0[2],y=match$0[1]; - caml_call2(f,x,y); - var xs$0=xs$1,ys$0=ys$1; - continue} - return 0} - return 0}} - function fold_left2(f,accu,xs,ys) - {var accu$0=accu,xs$0=xs,ys$0=ys; - for(;;) - {var match=caml_call1(xs$0,0); - if(match) - {var xs$1=match[2],x=match[1],match$0=caml_call1(ys$0,0); - if(match$0) - {var - ys$1=match$0[2], - y=match$0[1], - accu$1=caml_call3(f,accu$0,x,y), - accu$0=accu$1, - xs$0=xs$1, - ys$0=ys$1; - continue} - return accu$0} - return accu$0}} - function for_all2(f,xs,ys) - {var xs$0=xs,ys$0=ys; - for(;;) - {var match=caml_call1(xs$0,0); - if(match) - {var xs$1=match[2],x=match[1],match$0=caml_call1(ys$0,0); - if(match$0) - {var ys$1=match$0[2],y=match$0[1],_DM_=caml_call2(f,x,y); - if(_DM_){var xs$0=xs$1,ys$0=ys$1;continue} - return _DM_} - return 1} - return 1}} - function exists2(f,xs,ys) - {var xs$0=xs,ys$0=ys; - for(;;) - {var match=caml_call1(xs$0,0); - if(match) - {var xs$1=match[2],x=match[1],match$0=caml_call1(ys$0,0); - if(match$0) - {var ys$1=match$0[2],y=match$0[1],_DL_=caml_call2(f,x,y); - if(_DL_)return _DL_; - var xs$0=xs$1,ys$0=ys$1; - continue} - return 0} - return 0}} - function equal$0(eq,xs,ys) - {var xs$0=xs,ys$0=ys; - for(;;) - {var match=caml_call1(xs$0,0),match$0=caml_call1(ys$0,0); - if(match) - {if(match$0) - {var - ys$1=match$0[2], - y=match$0[1], - xs$1=match[2], - x=match[1], - _DK_=caml_call2(eq,x,y); - if(_DK_){var xs$0=xs$1,ys$0=ys$1;continue} - return _DK_}} - else - if(! match$0)return 1; - return 0}} - function compare$0(cmp,xs,ys) - {var xs$0=xs,ys$0=ys; - for(;;) - {var match=caml_call1(xs$0,0),match$0=caml_call1(ys$0,0); - if(match) - {var _DI_=match[2],_DJ_=match[1]; - if(match$0) - {var ys$1=match$0[2],y=match$0[1],c=caml_call2(cmp,_DJ_,y); - if(0 === c){var xs$0=_DI_,ys$0=ys$1;continue} - return c} - return 1} - return match$0?-1:0}} - function init_aux(f,i,j,param) - {if(i < j) - {var - _DF_=i + 1 | 0, - _DG_=function(_DH_){return init_aux(f,_DF_,j,_DH_)}; - return [0,caml_call1(f,i),_DG_]} - return 0} - function init(n,f) - {if(0 <= n) - {var _DD_=0;return function(_DE_){return init_aux(f,_DD_,n,_DE_)}} - return invalid_arg(cst_Seq_init)} - function repeat(x,param) - {return [0,x,function(_DC_){return repeat(x,_DC_)}]} - function forever(f,param) - {function _DA_(_DB_){return forever(f,_DB_)} - return [0,caml_call1(f,0),_DA_]} - function cycle_nonempty(xs,param) - {var _Dy_=0; - return append$0(xs,function(_Dz_){return cycle_nonempty(xs,_Dz_)},_Dy_)} - function cycle(xs,param) - {var match=caml_call1(xs,0); - if(match) - {var - xs$0=match[2], - x=match[1], - _Dv_=function(_Dx_){return cycle_nonempty(xs,_Dx_)}; - return [0,x,function(_Dw_){return append$0(xs$0,_Dv_,_Dw_)}]} - return 0} - function iterate1(f,x,param) - {var y=caml_call1(f,x); - return [0,y,function(_Du_){return iterate1(f,y,_Du_)}]} - function iterate(f,x) - {function _Dr_(_Dt_){return iterate1(f,x,_Dt_)} - return function(_Ds_){return [0,x,_Dr_]}} - function mapi_aux(f,i,xs,param) - {var match=caml_call1(xs,0); - if(match) - {var - xs$0=match[2], - x=match[1], - _Do_=i + 1 | 0, - _Dp_=function(_Dq_){return mapi_aux(f,_Do_,xs$0,_Dq_)}; - return [0,caml_call2(f,i,x),_Dp_]} - return 0} - function mapi(f,xs) - {var _Dm_=0;return function(_Dn_){return mapi_aux(f,_Dm_,xs,_Dn_)}} - function tail_scan(f,s,xs,param) - {var match=caml_call1(xs,0); - if(match) - {var xs$0=match[2],x=match[1],s$0=caml_call2(f,s,x); - return [0,s$0,function(_Dl_){return tail_scan(f,s$0,xs$0,_Dl_)}]} - return 0} - function scan(f,s,xs) - {function _Di_(_Dk_){return tail_scan(f,s,xs,_Dk_)} - return function(_Dj_){return [0,s,_Di_]}} - function take_aux(n,xs) - {return 0 === n - ?empty - :function(param) - {var match=caml_call1(xs,0); - if(match) - {var xs$0=match[2],x=match[1]; - return [0,x,take_aux(n - 1 | 0,xs$0)]} - return 0}} - function take(n,xs) - {if(n < 0)invalid_arg(cst_Seq_take);return take_aux(n,xs)} - function drop(n,xs) - {return 0 <= n - ?0 === n - ?xs - :function(param) - {var n$0=n,xs$0=xs; - for(;;) - {var match=caml_call1(xs$0,0); - if(match) - {var xs$1=match[2],n$1=n$0 - 1 | 0; - if(0 === n$1)return caml_call1(xs$1,0); - var n$0=n$1,xs$0=xs$1; - continue} - return 0}} - :invalid_arg(cst_Seq_drop)} - function take_while(p,xs,param) - {var match=caml_call1(xs,0); - if(match) - {var xs$0=match[2],x=match[1]; - return caml_call1(p,x) - ?[0,x,function(_Dh_){return take_while(p,xs$0,_Dh_)}] - :0} - return 0} - function drop_while(p,xs,param) - {var xs$0=xs; - for(;;) - {var node=caml_call1(xs$0,0); - if(node) - {var xs$1=node[2],x=node[1]; - if(caml_call1(p,x)){var xs$0=xs$1;continue} - return node} - return 0}} - function group(eq,xs,param) - {var match=caml_call1(xs,0); - if(match) - {var - xs$0=match[2], - x=match[1], - _C__=caml_call1(eq,x), - _C$_=function(_Dg_){return drop_while(_C__,xs$0,_Dg_)}, - _Da_=function(_Df_){return group(eq,_C$_,_Df_)}, - _Db_=caml_call1(eq,x), - _Dc_=function(_De_){return take_while(_Db_,xs$0,_De_)}; - return [0,function(_Dd_){return [0,x,_Dc_]},_Da_]} - return 0} - var Forced_twice=[248,cst_Stdlib_Seq_Forced_twice,caml_fresh_oo_id(0)]; - function failure(param){throw Forced_twice} - function memoize(xs) - {function s$0(param) - {var match=caml_call1(xs,0); - if(match){var xs$0=match[2],x=match[1];return [0,x,memoize(xs$0)]} - return 0} - var s=to_lazy(s$0); - return function(_C9_) - {var _C8_=caml_obj_tag(s); - return 250 === _C8_?s[1]:246 === _C8_?force_lazy_block(s):s}} - function once(xs) - {function f(param) - {var match=caml_call1(xs,0); - if(match){var xs$0=match[2],x=match[1];return [0,x,once(xs$0)]} - return 0} - var action=[0,f]; - return function(param) - {var f=exchange(action,failure);return caml_call1(f,0)}} - function zip(xs,ys,param) - {var match=caml_call1(xs,0); - if(match) - {var xs$0=match[2],x=match[1],match$0=caml_call1(ys,0); - if(match$0) - {var ys$0=match$0[2],y=match$0[1]; - return [0,[0,x,y],function(_C7_){return zip(xs$0,ys$0,_C7_)}]} - return 0} - return 0} - function map2(f,xs,ys,param) - {var match=caml_call1(xs,0); - if(match) - {var xs$0=match[2],x=match[1],match$0=caml_call1(ys,0); - if(match$0) - {var - ys$0=match$0[2], - y=match$0[1], - _C5_=function(_C6_){return map2(f,xs$0,ys$0,_C6_)}; - return [0,caml_call2(f,x,y),_C5_]} - return 0} - return 0} - function interleave(xs,ys,param) - {var match=caml_call1(xs,0); - if(match) - {var xs$0=match[2],x=match[1]; - return [0,x,function(_C4_){return interleave(ys,xs$0,_C4_)}]} - return caml_call1(ys,0)} - function sorted_merge1(cmp,x,xs,y,ys) - {return 0 < caml_call2(cmp,x,y) - ?[0, - y, - function(_C2_) - {var match=caml_call1(ys,0); - if(match) - {var ys$0=match[2],y=match[1]; - return sorted_merge1(cmp,x,xs,y,ys$0)} - return [0,x,xs]}] - :[0, - x, - function(_C3_) - {var match=caml_call1(xs,0); - if(match) - {var xs$0=match[2],x=match[1]; - return sorted_merge1(cmp,x,xs$0,y,ys)} - return [0,y,ys]}]} - function sorted_merge(cmp,xs,ys,param) - {var match=caml_call1(xs,0),match$0=caml_call1(ys,0); - if(match) - {if(match$0) - {var ys$0=match$0[2],y=match$0[1],xs$0=match[2],x=match[1]; - return sorted_merge1(cmp,x,xs$0,y,ys$0)} - var c=match} - else - {if(! match$0)return 0;var c=match$0} - return c} - function map_fst(xys,param) - {var match=caml_call1(xys,0); - if(match) - {var xys$0=match[2],match$0=match[1],x=match$0[1]; - return [0,x,function(_C1_){return map_fst(xys$0,_C1_)}]} - return 0} - function map_snd(xys,param) - {var match=caml_call1(xys,0); - if(match) - {var xys$0=match[2],match$0=match[1],y=match$0[2]; - return [0,y,function(_C0_){return map_snd(xys$0,_C0_)}]} - return 0} - function unzip(xys) - {function _CX_(_CZ_){return map_snd(xys,_CZ_)} - return [0,function(_CY_){return map_fst(xys,_CY_)},_CX_]} - function filter_map_find_left_map(f,xs,param) - {var xs$0=xs; - for(;;) - {var match=caml_call1(xs$0,0); - if(match) - {var xs$1=match[2],x=match[1],match$0=caml_call1(f,x); - if(0 === match$0[0]) - {var y=match$0[1]; - return [0, - y, - function(_CW_){return filter_map_find_left_map(f,xs$1,_CW_)}]} - var xs$0=xs$1; - continue} - return 0}} - function filter_map_find_right_map(f,xs,param) - {var xs$0=xs; - for(;;) - {var match=caml_call1(xs$0,0); - if(match) - {var xs$1=match[2],x=match[1],match$0=caml_call1(f,x); - if(0 === match$0[0]){var xs$0=xs$1;continue} - var z=match$0[1]; - return [0, - z, - function(_CV_) - {return filter_map_find_right_map(f,xs$1,_CV_)}]} - return 0}} - function partition_map(f,xs) - {function _CS_(_CU_){return filter_map_find_right_map(f,xs,_CU_)} - return [0, - function(_CT_){return filter_map_find_left_map(f,xs,_CT_)}, - _CS_]} - function partition(p,xs) - {function _CO_(x){return 1 - caml_call1(p,x)} - function _CP_(_CR_){return filter(_CO_,xs,_CR_)} - return [0,function(_CQ_){return filter(p,xs,_CQ_)},_CP_]} - function peel(xss) - {return unzip(function(_CN_){return filter_map(uncons,xss,_CN_)})} - function transpose(xss,param) - {var match=peel(xss),tails=match[2],heads=match[1]; - if(is_empty(heads)) - {if(is_empty(tails))return 0;throw [0,Assert_failure,_p_]} - return [0,heads,function(_CM_){return transpose(tails,_CM_)}]} - function _q_(remainders,xss,param) - {var match=caml_call1(xss,0); - if(match) - {var xss$0=match[2],xs=match[1],match$0=caml_call1(xs,0); - if(match$0) - {var - xs$0=match$0[2], - x=match$0[1], - match$1=peel(remainders), - tails=match$1[2], - heads=match$1[1], - _CG_=function(_CL_){return [0,xs$0,tails]}, - _CH_=function(_CK_){return _q_(_CG_,xss$0,_CK_)}; - return [0,function(_CJ_){return [0,x,heads]},_CH_]} - var match$2=peel(remainders),tails$0=match$2[2],heads$0=match$2[1]; - return [0,heads$0,function(_CI_){return _q_(tails$0,xss$0,_CI_)}]} - return transpose(remainders,0)} - function map_product(f,xs,ys) - {function _CA_(x) - {function _CE_(y){return caml_call2(f,x,y)} - return function(_CF_){return map$1(_CE_,ys,_CF_)}} - function xss(_CD_){return map$1(_CA_,xs,_CD_)} - function _Cz_(_CC_){return _q_(empty,xss,_CC_)} - return function(_CB_){return concat(_Cz_,_CB_)}} - function product(xs,ys) - {return map_product(function(x,y){return [0,x,y]},xs,ys)} - function of_dispenser(it) - {function c(param) - {var match=caml_call1(it,0); - if(match){var x=match[1];return [0,x,c]} - return 0} - return c} - function to_dispenser(xs) - {var s=[0,xs]; - return function(param) - {var match=caml_call1(s[1],0); - if(match){var xs=match[2],x=match[1];s[1] = xs;return [0,x]} - return 0}} - function ints(i,param) - {var _Cx_=i + 1 | 0;return [0,i,function(_Cy_){return ints(_Cx_,_Cy_)}]} - var - Stdlib_Seq= - [0, - is_empty, - uncons, - length$0, - iter, - fold_left, - iteri, - fold_lefti, - for_all, - exists, - find, - find_map, - iter2, - fold_left2, - for_all2, - exists2, - equal$0, - compare$0, - empty, - return$0, - cons, init, - unfold, - repeat, - forever, - cycle, - iterate, - map$1, - mapi, - filter, - filter_map, - scan, - take, - drop, - take_while, - drop_while, - group, - memoize, - Forced_twice, - once, - transpose, - append$0, - concat, - flat_map, - flat_map, - zip, - map2, - interleave, - sorted_merge, - product, - map_product, - unzip, - unzip, - partition_map, - partition, - of_dispenser, - to_dispenser, - ints]; - caml_register_global(782,Stdlib_Seq,"Stdlib__Seq"); - var none=0; - function some(v){return [0,v]} - function value(o,default$0){if(o){var v=o[1];return v}return default$0} - function get$0(param) - {if(param){var v=param[1];return v} - return invalid_arg(cst_option_is_None)} - function bind(o,f){if(o){var v=o[1];return caml_call1(f,v)}return 0} - function join(param){if(param){var o=param[1];return o}return 0} - function map$2(f,o){if(o){var v=o[1];return [0,caml_call1(f,v)]}return 0} - function fold$0(none,some,param) - {if(param){var v=param[1];return caml_call1(some,v)}return none} - function iter$0(f,param) - {if(param){var v=param[1];return caml_call1(f,v)}return 0} - function is_none(param){return param?0:1} - function is_some(param){return param?1:0} - function equal$1(eq,o0,o1) - {if(o0) - {if(o1){var v1=o1[1],v0=o0[1];return caml_call2(eq,v0,v1)}} - else - if(! o1)return 1; - return 0} - function compare$1(cmp,o0,o1) - {if(o0) - {var _Cw_=o0[1]; - if(o1){var v1=o1[1];return caml_call2(cmp,_Cw_,v1)} - return 1} - return o1?-1:0} - function to_result(none,param) - {if(param){var v=param[1];return [0,v]}return [1,none]} - function to_list(param){if(param){var v=param[1];return [0,v,0]}return 0} - function to_seq(param) - {if(param){var v=param[1];return function(_Cv_){return return$0(v,_Cv_)}} - return empty} - var - Stdlib_Option= - [0, - none, - some, - value, - get$0, - bind, - join, - map$2, - fold$0, - iter$0, - is_none, - is_some, - equal$1, - compare$1, - to_result, - to_list, - to_seq]; - caml_register_global(783,Stdlib_Option,"Stdlib__Option"); - function ok(v){return [0,v]} - function error(e){return [1,e]} - function value$0(r,default$0) - {if(0 === r[0]){var v=r[1];return v}return default$0} - function get_ok(param) - {if(0 === param[0]){var v=param[1];return v} - return invalid_arg(cst_result_is_Error)} - function get_error(param) - {if(0 === param[0])return invalid_arg(cst_result_is_Ok); - var e=param[1]; - return e} - function bind$0(r,f) - {if(0 === r[0]){var v=r[1];return caml_call1(f,v)}return r} - function join$0(e){if(0 === e[0]){var r=e[1];return r}return e} - function map$3(f,e) - {if(0 === e[0]){var v=e[1];return [0,caml_call1(f,v)]}return e} - function map_error(f,v) - {if(0 === v[0])return v;var e=v[1];return [1,caml_call1(f,e)]} - function fold$1(ok,error,param) - {if(0 === param[0]){var v=param[1];return caml_call1(ok,v)} - var e=param[1]; - return caml_call1(error,e)} - function iter$1(f,param) - {if(0 === param[0]){var v=param[1];return caml_call1(f,v)}return 0} - function iter_error(f,param) - {if(0 === param[0])return 0;var e=param[1];return caml_call1(f,e)} - function is_ok(param){return 0 === param[0]?1:0} - function is_error(param){return 0 === param[0]?0:1} - function equal$2(ok,error,r0,r1) - {if(0 === r0[0]) - {var _Ct_=r0[1]; - if(0 === r1[0]){var v1=r1[1];return caml_call2(ok,_Ct_,v1)}} - else - {var _Cu_=r0[1]; - if(0 !== r1[0]){var e1=r1[1];return caml_call2(error,_Cu_,e1)}} - return 0} - function compare$2(ok,error,r0,r1) - {if(0 === r0[0]) - {var _Cr_=r0[1]; - if(0 === r1[0]){var v1=r1[1];return caml_call2(ok,_Cr_,v1)} - return -1} - var _Cs_=r0[1]; - if(0 === r1[0])return 1; - var e1=r1[1]; - return caml_call2(error,_Cs_,e1)} - function to_option(param) - {if(0 === param[0]){var v=param[1];return [0,v]}return 0} - function to_list$0(param) - {if(0 === param[0]){var v=param[1];return [0,v,0]}return 0} - function to_seq$0(param) - {if(0 === param[0]) - {var v=param[1];return function(_Cq_){return return$0(v,_Cq_)}} - return empty} - var - Stdlib_Result= - [0, - ok, - error, - value$0, - get_ok, - get_error, - bind$0, - join$0, - map$3, - map_error, - fold$1, - iter$1, - iter_error, - is_ok, - is_error, - equal$2, - compare$2, - to_option, - to_list$0, - to_seq$0]; - caml_register_global(784,Stdlib_Result,"Stdlib__Result"); - function equal$3(_Cp_,_Co_){return _Cp_ === _Co_?1:0} - var compare$3=caml_int_compare; - function to_float(param){return param?1.:0.} - function to_string$0(param){return param?cst_true$2:cst_false$2} - function _r_(_Cn_){return _Cn_} - var - Stdlib_Bool= - [0, - function(_Cm_){return 1 - _Cm_}, - equal$3, - compare$3, - _r_, - to_float, - to_string$0]; - caml_register_global(785,Stdlib_Bool,"Stdlib__Bool"); - function chr(n) - {if(0 <= n && ! (255 < n))return n;return invalid_arg(cst_Char_chr)} - function escaped(c) - {var switch$0=0; - if(40 <= c) - {if(92 === c)return cst$1;if(! (127 <= c))switch$0 = 1} - else - if(32 <= c) - {if(39 <= c)return cst$2;switch$0 = 1} - else - if(! (14 <= c)) - switch(c) - {case 8:return cst_b; - case 9:return cst_t; - case 10:return cst_n; - case 13:return cst_r - } - if(switch$0) - {var s$0=caml_create_bytes(1); - caml_bytes_unsafe_set(s$0,0,c); - return caml_string_of_bytes(s$0)} - var s=caml_create_bytes(4); - caml_bytes_unsafe_set(s,0,92); - caml_bytes_unsafe_set(s,1,48 + (c / 100 | 0) | 0); - caml_bytes_unsafe_set(s,2,48 + ((c / 10 | 0) % 10 | 0) | 0); - caml_bytes_unsafe_set(s,3,48 + (c % 10 | 0) | 0); - return caml_string_of_bytes(s)} - function lowercase(c) - {var _Cl_=c - 192 | 0,switch$0=0; - if(30 < _Cl_ >>> 0) - {if(! (25 < _Cl_ + 127 >>> 0))switch$0 = 1} - else - if(23 !== _Cl_)switch$0 = 1; - return switch$0?c + 32 | 0:c} - function uppercase(c) - {var _Ck_=c - 224 | 0,switch$0=0; - if(30 < _Ck_ >>> 0) - {if(! (25 < _Ck_ + 127 >>> 0))switch$0 = 1} - else - if(23 !== _Ck_)switch$0 = 1; - return switch$0?c - 32 | 0:c} - function lowercase_ascii(c){return 25 < c - 65 >>> 0?c:c + 32 | 0} - function uppercase_ascii(c){return 25 < c - 97 >>> 0?c:c - 32 | 0} - function compare$4(c1,c2){return c1 - c2 | 0} - function equal$4(c1,c2){return 0 === (c1 - c2 | 0)?1:0} - var - Stdlib_Char= - [0, - chr, - escaped, - lowercase, - uppercase, - lowercase_ascii, - uppercase_ascii, - compare$4, - equal$4]; - caml_register_global(786,Stdlib_Char,"Stdlib__Char"); - var - min$0=0, - max$0=1114111, - lo_bound=55295, - hi_bound=57344, - bom=65279, - rep=65533; - function succ(u) - {return u === 55295 - ?hi_bound - :u === 1114111?invalid_arg(err_no_succ):u + 1 | 0} - function pred(u) - {return u === 57344?lo_bound:u === 0?invalid_arg(err_no_pred):u - 1 | 0} - function is_valid(i) - {var _Cg_=0 <= i?1:0,_Ch_=_Cg_?i <= 55295?1:0:_Cg_; - if(_Ch_) - var _Ci_=_Ch_; - else - var _Cj_=57344 <= i?1:0,_Ci_=_Cj_?i <= 1114111?1:0:_Cj_; - return _Ci_} - function of_int(i) - {return is_valid(i) - ?i - :invalid_arg - (cat(caml_format_int(cst_X,i),cst_is_not_an_Unicode_scalar_v))} - function is_char(u){return u < 256?1:0} - function of_char(c){return c} - function to_char(u) - {return 255 < u - ?invalid_arg - (cat - (cst_U, - cat - (caml_format_int(cst_04X,u),cst_is_not_a_latin1_character))) - :u} - function unsafe_to_char(_Cf_){return _Cf_} - function equal$5(_Ce_,_Cd_){return _Ce_ === _Cd_?1:0} - var compare$5=caml_int_compare; - function hash(_Cc_){return _Cc_} - function utf_decode_is_valid(d){return 1 === (d >>> 27 | 0)?1:0} - function utf_decode_length(d){return (d >>> 24 | 0) & 7} - function utf_decode_uchar(d){return d & 16777215} - function utf_decode(n,u){return (8 | n) << 24 | u} - function dec_invalid(n){return n << 24 | 65533} - function utf_8_byte_length(u) - {if(0 <= u) - {if(127 < u) - {if(2047 < u) - {if(65535 < u) - {if(1114111 < u)throw [0,Assert_failure,_s_];return 4} - return 3} - return 2} - return 1} - throw [0,Assert_failure,_t_]} - function utf_16_byte_length(u) - {if(0 <= u) - {if(65535 < u){if(1114111 < u)throw [0,Assert_failure,_u_];return 4} - return 2} - throw [0,Assert_failure,_v_]} - function _w_(_Cb_){return _Cb_} - var - Stdlib_Uchar= - [0, - min$0, - max$0, - bom, - rep, - succ, - pred, - is_valid, - of_int, - function(_Ca_){return _Ca_}, - _w_, - is_char, - of_char, - to_char, - unsafe_to_char, - equal$5, - compare$5, - hash, - utf_decode_is_valid, - utf_decode_uchar, - utf_decode_length, - utf_decode, - dec_invalid, - utf_8_byte_length, - utf_16_byte_length]; - caml_register_global(787,Stdlib_Uchar,"Stdlib__Uchar"); - function length$1(l) - {var len=0,param=l; - for(;;) - {if(param) - {var param$0=param[2],len$0=len + 1 | 0,len=len$0,param=param$0; - continue} - return len}} - function cons$0(a,l){return [0,a,l]} - function hd(param) - {if(param){var a=param[1];return a}return failwith(cst_hd)} - function tl(param) - {if(param){var l=param[2];return l}return failwith(cst_tl)} - function nth(l,n) - {if(0 <= n) - {var l$0=l,n$0=n; - for(;;) - {if(l$0) - {var l$1=l$0[2],a=l$0[1]; - if(0 === n$0)return a; - var n$1=n$0 - 1 | 0,l$0=l$1,n$0=n$1; - continue} - return failwith(cst_nth)}} - return invalid_arg(cst_List_nth)} - function nth_opt(l,n) - {if(0 <= n) - {var l$0=l,n$0=n; - for(;;) - {if(l$0) - {var l$1=l$0[2],a=l$0[1]; - if(0 === n$0)return [0,a]; - var n$1=n$0 - 1 | 0,l$0=l$1,n$0=n$1; - continue} - return 0}} - return invalid_arg(cst_List_nth$0)} - function rev_append(l1,l2) - {var l1$0=l1,l2$0=l2; - for(;;) - {if(l1$0) - {var l1$1=l1$0[2],a=l1$0[1],l2$1=[0,a,l2$0],l1$0=l1$1,l2$0=l2$1; - continue} - return l2$0}} - function rev(l){return rev_append(l,0)} - function init_aux$0(i,n,f) - {if(n <= i)return 0; - var r=caml_call1(f,i); - return [0,r,init_aux$0(i + 1 | 0,n,f)]} - function init$0(len,f) - {if(0 <= len) - {if(50 < len) - {var acc=0,i=0; - for(;;) - {if(len <= i)return rev(acc); - var i$0=i + 1 | 0,acc$0=[0,caml_call1(f,i),acc],acc=acc$0,i=i$0; - continue}} - return init_aux$0(0,len,f)} - return invalid_arg(cst_List_init)} - function flatten(param) - {if(param){var r=param[2],l=param[1];return append(l,flatten(r))} - return 0} - function map$4(f,param) - {if(param) - {var l=param[2],a=param[1],r=caml_call1(f,a);return [0,r,map$4(f,l)]} - return 0} - function _x_(i,f,param) - {if(param) - {var l=param[2],a=param[1],r=caml_call2(f,i,a); - return [0,r,_x_(i + 1 | 0,f,l)]} - return 0} - function mapi$0(f,l){return _x_(0,f,l)} - function rev_map(f,param) - {var accu=0,param$0=param; - for(;;) - {if(param$0) - {var - l=param$0[2], - a=param$0[1], - accu$0=[0,caml_call1(f,a),accu], - accu=accu$0, - param$0=l; - continue} - return accu}} - function iter$2(f,param) - {var param$0=param; - for(;;) - {if(param$0) - {var l=param$0[2],a=param$0[1]; - caml_call1(f,a); - var param$0=l; - continue} - return 0}} - function iteri$0(f,l$0) - {var i=0,param=l$0; - for(;;) - {if(param) - {var l=param[2],a=param[1]; - caml_call2(f,i,a); - var i$0=i + 1 | 0,i=i$0,param=l; - continue} - return 0}} - function fold_left$0(f,accu,l) - {var accu$0=accu,l$0=l; - for(;;) - {if(l$0) - {var - l$1=l$0[2], - a=l$0[1], - accu$1=caml_call2(f,accu$0,a), - accu$0=accu$1, - l$0=l$1; - continue} - return accu$0}} - function fold_right(f,l,accu) - {if(l){var l$0=l[2],a=l[1];return caml_call2(f,a,fold_right(f,l$0,accu))} - return accu} - function map2$0(f,l1,l2) - {if(l1) - {if(l2) - {var l2$0=l2[2],a2=l2[1],l1$0=l1[2],a1=l1[1],r=caml_call2(f,a1,a2); - return [0,r,map2$0(f,l1$0,l2$0)]}} - else - if(! l2)return 0; - return invalid_arg(cst_List_map2)} - function rev_map2(f,l1,l2) - {var accu=0,l1$0=l1,l2$0=l2; - for(;;) - {if(l1$0) - {if(l2$0) - {var - l2$1=l2$0[2], - a2=l2$0[1], - l1$1=l1$0[2], - a1=l1$0[1], - accu$0=[0,caml_call2(f,a1,a2),accu], - accu=accu$0, - l1$0=l1$1, - l2$0=l2$1; - continue}} - else - if(! l2$0)return accu; - return invalid_arg(cst_List_rev_map2)}} - function iter2$0(f,l1,l2) - {var l1$0=l1,l2$0=l2; - for(;;) - {if(l1$0) - {if(l2$0) - {var l2$1=l2$0[2],a2=l2$0[1],l1$1=l1$0[2],a1=l1$0[1]; - caml_call2(f,a1,a2); - var l1$0=l1$1,l2$0=l2$1; - continue}} - else - if(! l2$0)return 0; - return invalid_arg(cst_List_iter2)}} - function fold_left2$0(f,accu,l1,l2) - {var accu$0=accu,l1$0=l1,l2$0=l2; - for(;;) - {if(l1$0) - {if(l2$0) - {var - l2$1=l2$0[2], - a2=l2$0[1], - l1$1=l1$0[2], - a1=l1$0[1], - accu$1=caml_call3(f,accu$0,a1,a2), - accu$0=accu$1, - l1$0=l1$1, - l2$0=l2$1; - continue}} - else - if(! l2$0)return accu$0; - return invalid_arg(cst_List_fold_left2)}} - function fold_right2(f,l1,l2,accu) - {if(l1) - {if(l2) - {var l2$0=l2[2],a2=l2[1],l1$0=l1[2],a1=l1[1]; - return caml_call3(f,a1,a2,fold_right2(f,l1$0,l2$0,accu))}} - else - if(! l2)return accu; - return invalid_arg(cst_List_fold_right2)} - function for_all$0(p,param) - {var param$0=param; - for(;;) - {if(param$0) - {var l=param$0[2],a=param$0[1],_B$_=caml_call1(p,a); - if(_B$_){var param$0=l;continue} - return _B$_} - return 1}} - function exists$0(p,param) - {var param$0=param; - for(;;) - {if(param$0) - {var l=param$0[2],a=param$0[1],_B__=caml_call1(p,a); - if(_B__)return _B__; - var param$0=l; - continue} - return 0}} - function for_all2$0(p,l1,l2) - {var l1$0=l1,l2$0=l2; - for(;;) - {if(l1$0) - {if(l2$0) - {var - l2$1=l2$0[2], - a2=l2$0[1], - l1$1=l1$0[2], - a1=l1$0[1], - _B9_=caml_call2(p,a1,a2); - if(_B9_){var l1$0=l1$1,l2$0=l2$1;continue} - return _B9_}} - else - if(! l2$0)return 1; - return invalid_arg(cst_List_for_all2)}} - function exists2$0(p,l1,l2) - {var l1$0=l1,l2$0=l2; - for(;;) - {if(l1$0) - {if(l2$0) - {var - l2$1=l2$0[2], - a2=l2$0[1], - l1$1=l1$0[2], - a1=l1$0[1], - _B8_=caml_call2(p,a1,a2); - if(_B8_)return _B8_; - var l1$0=l1$1,l2$0=l2$1; - continue}} - else - if(! l2$0)return 0; - return invalid_arg(cst_List_exists2)}} - function mem(x,param) - {var param$0=param; - for(;;) - {if(param$0) - {var l=param$0[2],a=param$0[1],_B7_=0 === caml_compare(a,x)?1:0; - if(_B7_)return _B7_; - var param$0=l; - continue} - return 0}} - function memq(x,param) - {var param$0=param; - for(;;) - {if(param$0) - {var l=param$0[2],a=param$0[1],_B6_=a === x?1:0; - if(_B6_)return _B6_; - var param$0=l; - continue} - return 0}} - function assoc(x,param) - {var param$0=param; - for(;;) - {if(param$0) - {var l=param$0[2],match=param$0[1],b=match[2],a=match[1]; - if(0 === caml_compare(a,x))return b; - var param$0=l; - continue} - throw Not_found}} - function assoc_opt(x,param) - {var param$0=param; - for(;;) - {if(param$0) - {var l=param$0[2],match=param$0[1],b=match[2],a=match[1]; - if(0 === caml_compare(a,x))return [0,b]; - var param$0=l; - continue} - return 0}} - function assq(x,param) - {var param$0=param; - for(;;) - {if(param$0) - {var l=param$0[2],match=param$0[1],b=match[2],a=match[1]; - if(a === x)return b; - var param$0=l; - continue} - throw Not_found}} - function assq_opt(x,param) - {var param$0=param; - for(;;) - {if(param$0) - {var l=param$0[2],match=param$0[1],b=match[2],a=match[1]; - if(a === x)return [0,b]; - var param$0=l; - continue} - return 0}} - function mem_assoc(x,param) - {var param$0=param; - for(;;) - {if(param$0) - {var - l=param$0[2], - match=param$0[1], - a=match[1], - _B5_=0 === caml_compare(a,x)?1:0; - if(_B5_)return _B5_; - var param$0=l; - continue} - return 0}} - function mem_assq(x,param) - {var param$0=param; - for(;;) - {if(param$0) - {var l=param$0[2],match=param$0[1],a=match[1],_B4_=a === x?1:0; - if(_B4_)return _B4_; - var param$0=l; - continue} - return 0}} - function remove_assoc(x,param) - {if(param) - {var l=param[2],pair=param[1],a=pair[1]; - return 0 === caml_compare(a,x)?l:[0,pair,remove_assoc(x,l)]} - return 0} - function remove_assq(x,param) - {if(param) - {var l=param[2],pair=param[1],a=pair[1]; - return a === x?l:[0,pair,remove_assq(x,l)]} - return 0} - function find$0(p,param) - {var param$0=param; - for(;;) - {if(param$0) - {var l=param$0[2],x=param$0[1]; - if(caml_call1(p,x))return x; - var param$0=l; - continue} - throw Not_found}} - function find_opt(p,param) - {var param$0=param; - for(;;) - {if(param$0) - {var l=param$0[2],x=param$0[1]; - if(caml_call1(p,x))return [0,x]; - var param$0=l; - continue} - return 0}} - function find_map$0(f,param) - {var param$0=param; - for(;;) - {if(param$0) - {var l=param$0[2],x=param$0[1],result=caml_call1(f,x); - if(result)return result; - var param$0=l; - continue} - return 0}} - function find_all(p) - {var accu=0; - return function(param$0) - {var accu$0=accu,param=param$0; - for(;;) - {if(param) - {var l=param[2],x=param[1]; - if(caml_call1(p,x)) - {var accu$1=[0,x,accu$0],accu$0=accu$1,param=l;continue} - var param=l; - continue} - return rev(accu$0)}}} - function filteri(p,param) - {var i=0,acc=0,param$0=param; - for(;;) - {if(param$0) - {var - l=param$0[2], - x=param$0[1], - acc$0=caml_call2(p,i,x)?[0,x,acc]:acc, - i$0=i + 1 | 0, - i=i$0, - acc=acc$0, - param$0=l; - continue} - return rev(acc)}} - function filter_map$0(f) - {var accu=0; - return function(param$0) - {var accu$0=accu,param=param$0; - for(;;) - {if(param) - {var l=param[2],x=param[1],match=caml_call1(f,x); - if(match) - {var v=match[1],accu$1=[0,v,accu$0],accu$0=accu$1,param=l; - continue} - var param=l; - continue} - return rev(accu$0)}}} - function concat_map(f,param) - {var acc=0,param$0=param; - for(;;) - {if(param$0) - {var - l=param$0[2], - x=param$0[1], - xs=caml_call1(f,x), - acc$0=rev_append(xs,acc), - acc=acc$0, - param$0=l; - continue} - return rev(acc)}} - function fold_left_map(f,accu,param) - {var accu$0=accu,l_accu=0,param$0=param; - for(;;) - {if(param$0) - {var - l=param$0[2], - x=param$0[1], - match=caml_call2(f,accu$0,x), - x$0=match[2], - accu$1=match[1], - l_accu$0=[0,x$0,l_accu], - accu$0=accu$1, - l_accu=l_accu$0, - param$0=l; - continue} - return [0,accu$0,rev(l_accu)]}} - function partition$0(p,param) - {var yes=0,no=0,param$0=param; - for(;;) - {if(param$0) - {var l=param$0[2],x=param$0[1]; - if(caml_call1(p,x)) - {var yes$0=[0,x,yes],yes=yes$0,param$0=l;continue} - var no$0=[0,x,no],no=no$0,param$0=l; - continue} - var _B3_=rev(no); - return [0,rev(yes),_B3_]}} - function partition_map$0(p,param) - {var left=0,right=0,param$0=param; - for(;;) - {if(param$0) - {var l=param$0[2],x=param$0[1],match=caml_call1(p,x); - if(0 === match[0]) - {var v=match[1],left$0=[0,v,left],left=left$0,param$0=l;continue} - var v$0=match[1],right$0=[0,v$0,right],right=right$0,param$0=l; - continue} - var _B2_=rev(right); - return [0,rev(left),_B2_]}} - function split(param) - {if(param) - {var - l=param[2], - match=param[1], - y=match[2], - x=match[1], - match$0=split(l), - ry=match$0[2], - rx=match$0[1]; - return [0,[0,x,rx],[0,y,ry]]} - return _y_} - function combine(l1,l2) - {if(l1) - {if(l2) - {var l2$0=l2[2],a2=l2[1],l1$0=l1[2],a1=l1[1]; - return [0,[0,a1,a2],combine(l1$0,l2$0)]}} - else - if(! l2)return 0; - return invalid_arg(cst_List_combine)} - function merge(cmp,l1,l2) - {if(l1) - {if(l2) - {var t2=l2[2],h2=l2[1],t1=l1[2],h1=l1[1]; - return 0 < caml_call2(cmp,h1,h2) - ?[0,h2,merge(cmp,l1,t2)] - :[0,h1,merge(cmp,t1,l2)]} - return l1} - return l2} - function fast_sort(cmp,l) - {function sort(n,l) - {if(2 === n) - {if(l) - {var _BY_=l[2]; - if(_BY_) - {var - tl=_BY_[2], - x2=_BY_[1], - x1=l[1], - s=0 < caml_call2(cmp,x1,x2)?[0,x2,[0,x1,0]]:[0,x1,[0,x2,0]]; - return [0,s,tl]}}} - else - if(3 === n && l) - {var _B0_=l[2]; - if(_B0_) - {var _B1_=_B0_[2]; - if(_B1_) - {var - tl$1=_B1_[2], - x3=_B1_[1], - x2$0=_B0_[1], - x1$0=l[1], - s$0= - 0 < caml_call2(cmp,x1$0,x2$0) - ?0 < caml_call2(cmp,x1$0,x3) - ?0 < caml_call2(cmp,x2$0,x3) - ?[0,x3,[0,x2$0,[0,x1$0,0]]] - :[0,x2$0,[0,x3,[0,x1$0,0]]] - :[0,x2$0,[0,x1$0,[0,x3,0]]] - :0 < caml_call2(cmp,x2$0,x3) - ?0 < caml_call2(cmp,x1$0,x3) - ?[0,x3,[0,x1$0,[0,x2$0,0]]] - :[0,x1$0,[0,x3,[0,x2$0,0]]] - :[0,x1$0,[0,x2$0,[0,x3,0]]]; - return [0,s$0,tl$1]}}} - var - n1=n >> 1, - n2=n - n1 | 0, - match=rev_sort(n1,l), - l2$0=match[2], - s1=match[1], - match$0=rev_sort(n2,l2$0), - tl$0=match$0[2], - s2=match$0[1], - l1=s1, - l2=s2, - accu=0; - for(;;) - {if(l1) - {if(l2) - {var t2=l2[2],h2=l2[1],t1=l1[2],h1=l1[1]; - if(0 < caml_call2(cmp,h1,h2)) - {var accu$0=[0,h1,accu],l1=t1,accu=accu$0;continue} - var accu$1=[0,h2,accu],l2=t2,accu=accu$1; - continue} - var _BZ_=rev_append(l1,accu)} - else - var _BZ_=rev_append(l2,accu); - return [0,_BZ_,tl$0]}} - function rev_sort(n,l) - {if(2 === n) - {if(l) - {var _BU_=l[2]; - if(_BU_) - {var - tl=_BU_[2], - x2=_BU_[1], - x1=l[1], - s=0 < caml_call2(cmp,x1,x2)?[0,x1,[0,x2,0]]:[0,x2,[0,x1,0]]; - return [0,s,tl]}}} - else - if(3 === n && l) - {var _BW_=l[2]; - if(_BW_) - {var _BX_=_BW_[2]; - if(_BX_) - {var - tl$1=_BX_[2], - x3=_BX_[1], - x2$0=_BW_[1], - x1$0=l[1], - s$0= - 0 < caml_call2(cmp,x1$0,x2$0) - ?0 < caml_call2(cmp,x2$0,x3) - ?[0,x1$0,[0,x2$0,[0,x3,0]]] - :0 < caml_call2(cmp,x1$0,x3) - ?[0,x1$0,[0,x3,[0,x2$0,0]]] - :[0,x3,[0,x1$0,[0,x2$0,0]]] - :0 < caml_call2(cmp,x1$0,x3) - ?[0,x2$0,[0,x1$0,[0,x3,0]]] - :0 < caml_call2(cmp,x2$0,x3) - ?[0,x2$0,[0,x3,[0,x1$0,0]]] - :[0,x3,[0,x2$0,[0,x1$0,0]]]; - return [0,s$0,tl$1]}}} - var - n1=n >> 1, - n2=n - n1 | 0, - match=sort(n1,l), - l2$0=match[2], - s1=match[1], - match$0=sort(n2,l2$0), - tl$0=match$0[2], - s2=match$0[1], - l1=s1, - l2=s2, - accu=0; - for(;;) - {if(l1) - {if(l2) - {var t2=l2[2],h2=l2[1],t1=l1[2],h1=l1[1]; - if(0 < caml_call2(cmp,h1,h2)) - {var accu$0=[0,h2,accu],l2=t2,accu=accu$0;continue} - var accu$1=[0,h1,accu],l1=t1,accu=accu$1; - continue} - var _BV_=rev_append(l1,accu)} - else - var _BV_=rev_append(l2,accu); - return [0,_BV_,tl$0]}} - var len=length$1(l); - return 2 <= len?sort(len,l)[1]:l} - function sort_uniq(cmp,l) - {function sort(n,l) - {if(2 === n) - {if(l) - {var _BL_=l[2]; - if(_BL_) - {var - tl=_BL_[2], - x2=_BL_[1], - x1=l[1], - c$0=caml_call2(cmp,x1,x2), - s=0 === c$0?[0,x1,0]:0 <= c$0?[0,x2,[0,x1,0]]:[0,x1,[0,x2,0]]; - return [0,s,tl]}}} - else - if(3 === n && l) - {var _BN_=l[2]; - if(_BN_) - {var _BO_=_BN_[2]; - if(_BO_) - {var - tl$1=_BO_[2], - x3=_BO_[1], - x2$0=_BN_[1], - x1$0=l[1], - c$1=caml_call2(cmp,x1$0,x2$0); - if(0 === c$1) - var - c$2=caml_call2(cmp,x2$0,x3), - _BP_= - 0 === c$2 - ?[0,x2$0,0] - :0 <= c$2?[0,x3,[0,x2$0,0]]:[0,x2$0,[0,x3,0]], - s$0=_BP_; - else - if(0 <= c$1) - {var c$3=caml_call2(cmp,x1$0,x3); - if(0 === c$3) - var _BQ_=[0,x2$0,[0,x1$0,0]]; - else - if(0 <= c$3) - var - c$4=caml_call2(cmp,x2$0,x3), - _BR_= - 0 === c$4 - ?[0,x2$0,[0,x1$0,0]] - :0 <= c$4 - ?[0,x3,[0,x2$0,[0,x1$0,0]]] - :[0,x2$0,[0,x3,[0,x1$0,0]]], - _BQ_=_BR_; - else - var _BQ_=[0,x2$0,[0,x1$0,[0,x3,0]]]; - var s$0=_BQ_} - else - {var c$5=caml_call2(cmp,x2$0,x3); - if(0 === c$5) - var _BS_=[0,x1$0,[0,x2$0,0]]; - else - if(0 <= c$5) - var - c$6=caml_call2(cmp,x1$0,x3), - _BT_= - 0 === c$6 - ?[0,x1$0,[0,x2$0,0]] - :0 <= c$6 - ?[0,x3,[0,x1$0,[0,x2$0,0]]] - :[0,x1$0,[0,x3,[0,x2$0,0]]], - _BS_=_BT_; - else - var _BS_=[0,x1$0,[0,x2$0,[0,x3,0]]]; - var s$0=_BS_} - return [0,s$0,tl$1]}}} - var - n1=n >> 1, - n2=n - n1 | 0, - match=rev_sort(n1,l), - l2$0=match[2], - s1=match[1], - match$0=rev_sort(n2,l2$0), - tl$0=match$0[2], - s2=match$0[1], - l1=s1, - l2=s2, - accu=0; - for(;;) - {if(l1) - {if(l2) - {var t2=l2[2],h2=l2[1],t1=l1[2],h1=l1[1],c=caml_call2(cmp,h1,h2); - if(0 === c) - {var accu$0=[0,h1,accu],l1=t1,l2=t2,accu=accu$0;continue} - if(0 < c){var accu$1=[0,h1,accu],l1=t1,accu=accu$1;continue} - var accu$2=[0,h2,accu],l2=t2,accu=accu$2; - continue} - var _BM_=rev_append(l1,accu)} - else - var _BM_=rev_append(l2,accu); - return [0,_BM_,tl$0]}} - function rev_sort(n,l) - {if(2 === n) - {if(l) - {var _BC_=l[2]; - if(_BC_) - {var - tl=_BC_[2], - x2=_BC_[1], - x1=l[1], - c$0=caml_call2(cmp,x1,x2), - s=0 === c$0?[0,x1,0]:0 < c$0?[0,x1,[0,x2,0]]:[0,x2,[0,x1,0]]; - return [0,s,tl]}}} - else - if(3 === n && l) - {var _BE_=l[2]; - if(_BE_) - {var _BF_=_BE_[2]; - if(_BF_) - {var - tl$1=_BF_[2], - x3=_BF_[1], - x2$0=_BE_[1], - x1$0=l[1], - c$1=caml_call2(cmp,x1$0,x2$0); - if(0 === c$1) - var - c$2=caml_call2(cmp,x2$0,x3), - _BG_= - 0 === c$2 - ?[0,x2$0,0] - :0 < c$2?[0,x2$0,[0,x3,0]]:[0,x3,[0,x2$0,0]], - s$0=_BG_; - else - if(0 < c$1) - {var c$3=caml_call2(cmp,x2$0,x3); - if(0 === c$3) - var _BH_=[0,x1$0,[0,x2$0,0]]; - else - if(0 < c$3) - var _BH_=[0,x1$0,[0,x2$0,[0,x3,0]]]; - else - var - c$4=caml_call2(cmp,x1$0,x3), - _BI_= - 0 === c$4 - ?[0,x1$0,[0,x2$0,0]] - :0 < c$4 - ?[0,x1$0,[0,x3,[0,x2$0,0]]] - :[0,x3,[0,x1$0,[0,x2$0,0]]], - _BH_=_BI_; - var s$0=_BH_} - else - {var c$5=caml_call2(cmp,x1$0,x3); - if(0 === c$5) - var _BJ_=[0,x2$0,[0,x1$0,0]]; - else - if(0 < c$5) - var _BJ_=[0,x2$0,[0,x1$0,[0,x3,0]]]; - else - var - c$6=caml_call2(cmp,x2$0,x3), - _BK_= - 0 === c$6 - ?[0,x2$0,[0,x1$0,0]] - :0 < c$6 - ?[0,x2$0,[0,x3,[0,x1$0,0]]] - :[0,x3,[0,x2$0,[0,x1$0,0]]], - _BJ_=_BK_; - var s$0=_BJ_} - return [0,s$0,tl$1]}}} - var - n1=n >> 1, - n2=n - n1 | 0, - match=sort(n1,l), - l2$0=match[2], - s1=match[1], - match$0=sort(n2,l2$0), - tl$0=match$0[2], - s2=match$0[1], - l1=s1, - l2=s2, - accu=0; - for(;;) - {if(l1) - {if(l2) - {var t2=l2[2],h2=l2[1],t1=l1[2],h1=l1[1],c=caml_call2(cmp,h1,h2); - if(0 === c) - {var accu$0=[0,h1,accu],l1=t1,l2=t2,accu=accu$0;continue} - if(0 <= c){var accu$1=[0,h2,accu],l2=t2,accu=accu$1;continue} - var accu$2=[0,h1,accu],l1=t1,accu=accu$2; - continue} - var _BD_=rev_append(l1,accu)} - else - var _BD_=rev_append(l2,accu); - return [0,_BD_,tl$0]}} - var len=length$1(l); - return 2 <= len?sort(len,l)[1]:l} - function compare_lengths(l1,l2) - {var l1$0=l1,l2$0=l2; - for(;;) - {if(l1$0) - {if(l2$0){var l2$1=l2$0[2],l1$1=l1$0[2],l1$0=l1$1,l2$0=l2$1;continue} - return 1} - return l2$0?-1:0}} - function compare_length_with(l,n) - {var l$0=l,n$0=n; - for(;;) - {if(l$0) - {var l$1=l$0[2]; - if(0 < n$0){var n$1=n$0 - 1 | 0,l$0=l$1,n$0=n$1;continue} - return 1} - return 0 === n$0?0:0 < n$0?-1:1}} - function equal$6(eq,l1,l2) - {var l1$0=l1,l2$0=l2; - for(;;) - {if(l1$0) - {if(l2$0) - {var - l2$1=l2$0[2], - a2=l2$0[1], - l1$1=l1$0[2], - a1=l1$0[1], - _BB_=caml_call2(eq,a1,a2); - if(_BB_){var l1$0=l1$1,l2$0=l2$1;continue} - return _BB_}} - else - if(! l2$0)return 1; - return 0}} - function compare$6(cmp,l1,l2) - {var l1$0=l1,l2$0=l2; - for(;;) - {if(l1$0) - {var _Bz_=l1$0[2],_BA_=l1$0[1]; - if(l2$0) - {var l2$1=l2$0[2],a2=l2$0[1],c=caml_call2(cmp,_BA_,a2); - if(0 === c){var l1$0=_Bz_,l2$0=l2$1;continue} - return c} - return 1} - return l2$0?-1:0}} - function to_seq$1(l) - {function aux(l,param) - {if(l) - {var tail=l[2],x=l[1]; - return [0,x,function(_By_){return aux(tail,_By_)}]} - return 0} - return function(_Bx_){return aux(l,_Bx_)}} - function of_seq(seq) - {function direct(depth,seq) - {if(0 === depth) - {var _Bw_=0; - return rev(fold_left(function(acc,x){return [0,x,acc]},_Bw_,seq))} - var match=caml_call1(seq,0); - if(match) - {var next=match[2],x=match[1]; - return [0,x,direct(depth - 1 | 0,next)]} - return 0} - return direct(500,seq)} - var - include$0= - [0, - length$1, - compare_lengths, - compare_length_with, - cons$0, - hd, - tl, - nth, - nth_opt, - rev, - init$0, - append, - rev_append, - flatten, - flatten, - equal$6, - compare$6, - iter$2, - iteri$0, - map$4, - mapi$0, - rev_map, - filter_map$0, - concat_map, - fold_left_map, - fold_left$0, - fold_right, - iter2$0, - map2$0, - rev_map2, - fold_left2$0, - fold_right2, - for_all$0, - exists$0, - for_all2$0, - exists2$0, - mem, - memq, - find$0, - find_opt, - find_map$0, - find_all, - find_all, - filteri, - partition$0, - partition_map$0, - assoc, - assoc_opt, - assq, - assq_opt, - mem_assoc, - mem_assq, - remove_assoc, - remove_assq, - split, - combine, - fast_sort, - fast_sort, - fast_sort, - sort_uniq, - merge, - to_seq$1, - of_seq]; - caml_register_global(788,include$0,"Stdlib__List"); - var zero=0,one=1,minus_one=-1; - function abs$0(x){return 0 <= x?x:- x | 0} - var max_int$0=2147483647,min_int$0=-2147483648; - function lognot(x){return x ^ -1} - function equal$7(_Bv_,_Bu_){return _Bv_ === _Bu_?1:0} - var compare$7=caml_int_compare; - function min$1(x,y){return x <= y?x:y} - function max$1(x,y){return y <= x?x:y} - function to_string$1(x){return caml_string_of_jsbytes("" + x)} - var - Stdlib_Int= - [0, - zero, - one, - minus_one, - abs$0, - max_int$0, - min_int$0, - lognot, - equal$7, - compare$7, - min$1, - max$1, - to_string$1]; - caml_register_global(789,Stdlib_Int,"Stdlib__Int"); - function make$0(n,c) - {var s=caml_create_bytes(n);caml_fill_bytes(s,0,n,c);return s} - function init$1(n,f) - {var s=caml_create_bytes(n),_Bs_=n - 1 | 0,_Br_=0; - if(! (_Bs_ < 0)) - {var i=_Br_; - for(;;) - {caml_bytes_unsafe_set(s,i,caml_call1(f,i)); - var _Bt_=i + 1 | 0; - if(_Bs_ !== i){var i=_Bt_;continue} - break}} - return s} - var empty$0=caml_create_bytes(0); - function copy(s) - {var len=caml_ml_bytes_length(s),r=caml_create_bytes(len); - caml_blit_bytes(s,0,r,0,len); - return r} - function of_bytes(b){return caml_string_of_bytes(copy(b))} - function to_bytes(s){return copy(caml_bytes_of_string(s))} - function sub(s,ofs,len) - {if - (0 <= ofs && 0 <= len && ! ((caml_ml_bytes_length(s) - len | 0) < ofs)) - {var r=caml_create_bytes(len);caml_blit_bytes(s,ofs,r,0,len);return r} - return invalid_arg(cst_String_sub_Bytes_sub)} - function sub_string(b,ofs,len) - {return caml_string_of_bytes(sub(b,ofs,len))} - function symbol$0(a,b) - {var c=a + b | 0,_Bq_=b < 0?1:0,match=c < 0?1:0,switch$0=0; - if(a < 0) - {if(_Bq_ && ! match)switch$0 = 1} - else - if(! _Bq_ && match)switch$0 = 1; - return switch$0?invalid_arg(cst_Bytes_extend):c} - function extend(s,left,right) - {var - len=symbol$0(symbol$0(caml_ml_bytes_length(s),left),right), - r=caml_create_bytes(len); - if(0 <= left) - var dstoff=left,srcoff=0; - else - var dstoff=0,srcoff=- left | 0; - var cpylen=min$1(caml_ml_bytes_length(s) - srcoff | 0,len - dstoff | 0); - if(0 < cpylen)caml_blit_bytes(s,srcoff,r,dstoff,cpylen); - return r} - function fill(s,ofs,len,c) - {if - (0 <= ofs && 0 <= len && ! ((caml_ml_bytes_length(s) - len | 0) < ofs)) - return caml_fill_bytes(s,ofs,len,c); - return invalid_arg(cst_String_fill_Bytes_fill)} - function blit(s1,ofs1,s2,ofs2,len) - {if - (0 - <= - len - && - 0 - <= - ofs1 - && - ! - ((caml_ml_bytes_length(s1) - len | 0) < ofs1) - && - 0 - <= - ofs2 - && - ! - ((caml_ml_bytes_length(s2) - len | 0) < ofs2)) - return caml_blit_bytes(s1,ofs1,s2,ofs2,len); - return invalid_arg(cst_Bytes_blit)} - function blit$0(s1,ofs1,s2,ofs2,len) - {if - (0 - <= - len - && - 0 - <= - ofs1 - && - ! - ((caml_ml_string_length(s1) - len | 0) < ofs1) - && - 0 - <= - ofs2 - && - ! - ((caml_ml_bytes_length(s2) - len | 0) < ofs2)) - return caml_blit_string(s1,ofs1,s2,ofs2,len); - return invalid_arg(cst_String_blit_Bytes_blit_str)} - function iter$3(f,a) - {var _Bo_=caml_ml_bytes_length(a) - 1 | 0,_Bn_=0; - if(! (_Bo_ < 0)) - {var i=_Bn_; - for(;;) - {caml_call1(f,caml_bytes_unsafe_get(a,i)); - var _Bp_=i + 1 | 0; - if(_Bo_ !== i){var i=_Bp_;continue} - break}} - return 0} - function iteri$1(f,a) - {var _Bl_=caml_ml_bytes_length(a) - 1 | 0,_Bk_=0; - if(! (_Bl_ < 0)) - {var i=_Bk_; - for(;;) - {caml_call2(f,i,caml_bytes_unsafe_get(a,i)); - var _Bm_=i + 1 | 0; - if(_Bl_ !== i){var i=_Bm_;continue} - break}} - return 0} - function concat$0(sep,l) - {if(l) - {var seplen=caml_ml_bytes_length(sep),acc=0,param=l,pos$1=0; - for(;;) - {if(param) - {var _Bh_=param[1]; - if(param[2]) - {var - tl=param[2], - x=(caml_ml_bytes_length(_Bh_) + seplen | 0) + acc | 0, - acc$0=acc <= x?x:invalid_arg(cst_Bytes_concat), - acc=acc$0, - param=tl; - continue} - var _Bj_=caml_ml_bytes_length(_Bh_) + acc | 0} - else - var _Bj_=acc; - var dst=caml_create_bytes(_Bj_),pos=pos$1,param$0=l; - for(;;) - {if(param$0) - {var _Bi_=param$0[1]; - if(param$0[2]) - {var tl$0=param$0[2]; - caml_blit_bytes(_Bi_,0,dst,pos,caml_ml_bytes_length(_Bi_)); - caml_blit_bytes - (sep,0,dst,pos + caml_ml_bytes_length(_Bi_) | 0,seplen); - var - pos$0=(pos + caml_ml_bytes_length(_Bi_) | 0) + seplen | 0, - pos=pos$0, - param$0=tl$0; - continue} - caml_blit_bytes(_Bi_,0,dst,pos,caml_ml_bytes_length(_Bi_)); - return dst} - return dst}}} - return empty$0} - function cat$0(s1,s2) - {var - l1=caml_ml_bytes_length(s1), - l2=caml_ml_bytes_length(s2), - r=caml_create_bytes(l1 + l2 | 0); - caml_blit_bytes(s1,0,r,0,l1); - caml_blit_bytes(s2,0,r,l1,l2); - return r} - function is_space(param) - {var _Bg_=param - 9 | 0,switch$0=0; - if(4 < _Bg_ >>> 0) - {if(23 === _Bg_)switch$0 = 1} - else - if(2 !== _Bg_)switch$0 = 1; - return switch$0?1:0} - function trim(s) - {var len=caml_ml_bytes_length(s),i=[0,0]; - for(;;) - {if(i[1] < len && is_space(caml_bytes_unsafe_get(s,i[1]))) - {i[1]++;continue} - var j=[0,len - 1 | 0]; - for(;;) - {if(i[1] <= j[1] && is_space(caml_bytes_unsafe_get(s,j[1]))) - {j[1] += -1;continue} - return i[1] <= j[1]?sub(s,i[1],(j[1] - i[1] | 0) + 1 | 0):empty$0}}} - function escaped$0(s) - {var n=[0,0],_A$_=caml_ml_bytes_length(s) - 1 | 0,_A__=0; - if(! (_A$_ < 0)) - {var i$0=_A__; - for(;;) - {var match=caml_bytes_unsafe_get(s,i$0),switch$0=0; - if(32 <= match) - {var _Bd_=match - 34 | 0,switch$1=0; - if(58 < _Bd_ >>> 0) - {if(93 <= _Bd_)switch$1 = 1} - else - if(56 < _Bd_ - 1 >>> 0){switch$0 = 1;switch$1 = 1} - if(! switch$1){var _Be_=1;switch$0 = 2}} - else - if(11 <= match) - {if(13 === match)switch$0 = 1} - else - if(8 <= match)switch$0 = 1; - switch(switch$0){case 0:var _Be_=4;break;case 1:var _Be_=2;break} - n[1] = n[1] + _Be_ | 0; - var _Bf_=i$0 + 1 | 0; - if(_A$_ !== i$0){var i$0=_Bf_;continue} - break}} - if(n[1] === caml_ml_bytes_length(s))return copy(s); - var s$0=caml_create_bytes(n[1]); - n[1] = 0; - var _Bb_=caml_ml_bytes_length(s) - 1 | 0,_Ba_=0; - if(! (_Bb_ < 0)) - {var i=_Ba_; - for(;;) - {var c=caml_bytes_unsafe_get(s,i),switch$2=0; - if(35 <= c) - if(92 === c) - switch$2 = 2; - else - if(127 <= c)switch$2 = 1;else switch$2 = 3; - else - if(32 <= c) - if(34 <= c)switch$2 = 2;else switch$2 = 3; - else - if(14 <= c) - switch$2 = 1; - else - switch(c) - {case 8: - caml_bytes_unsafe_set(s$0,n[1],92); - n[1]++; - caml_bytes_unsafe_set(s$0,n[1],98); - break; - case 9: - caml_bytes_unsafe_set(s$0,n[1],92); - n[1]++; - caml_bytes_unsafe_set(s$0,n[1],116); - break; - case 10: - caml_bytes_unsafe_set(s$0,n[1],92); - n[1]++; - caml_bytes_unsafe_set(s$0,n[1],110); - break; - case 13: - caml_bytes_unsafe_set(s$0,n[1],92); - n[1]++; - caml_bytes_unsafe_set(s$0,n[1],114); - break; - default:switch$2 = 1} - switch(switch$2) - {case 1: - caml_bytes_unsafe_set(s$0,n[1],92); - n[1]++; - caml_bytes_unsafe_set(s$0,n[1],48 + (c / 100 | 0) | 0); - n[1]++; - caml_bytes_unsafe_set(s$0,n[1],48 + ((c / 10 | 0) % 10 | 0) | 0); - n[1]++; - caml_bytes_unsafe_set(s$0,n[1],48 + (c % 10 | 0) | 0); - break; - case 2: - caml_bytes_unsafe_set(s$0,n[1],92); - n[1]++; - caml_bytes_unsafe_set(s$0,n[1],c); - break; - case 3:caml_bytes_unsafe_set(s$0,n[1],c);break - } - n[1]++; - var _Bc_=i + 1 | 0; - if(_Bb_ !== i){var i=_Bc_;continue} - break}} - return s$0} - function map$5(f,s) - {var l=caml_ml_bytes_length(s); - if(0 === l)return s; - var r=caml_create_bytes(l),_A8_=l - 1 | 0,_A7_=0; - if(! (_A8_ < 0)) - {var i=_A7_; - for(;;) - {caml_bytes_unsafe_set(r,i,caml_call1(f,caml_bytes_unsafe_get(s,i))); - var _A9_=i + 1 | 0; - if(_A8_ !== i){var i=_A9_;continue} - break}} - return r} - function mapi$1(f,s) - {var l=caml_ml_bytes_length(s); - if(0 === l)return s; - var r=caml_create_bytes(l),_A5_=l - 1 | 0,_A4_=0; - if(! (_A5_ < 0)) - {var i=_A4_; - for(;;) - {caml_bytes_unsafe_set - (r,i,caml_call2(f,i,caml_bytes_unsafe_get(s,i))); - var _A6_=i + 1 | 0; - if(_A5_ !== i){var i=_A6_;continue} - break}} - return r} - function fold_left$1(f,x,a) - {var r=[0,x],_A2_=caml_ml_bytes_length(a) - 1 | 0,_A1_=0; - if(! (_A2_ < 0)) - {var i=_A1_; - for(;;) - {r[1] = caml_call2(f,r[1],caml_bytes_unsafe_get(a,i)); - var _A3_=i + 1 | 0; - if(_A2_ !== i){var i=_A3_;continue} - break}} - return r[1]} - function fold_right$0(f,a,x) - {var r=[0,x],_AZ_=caml_ml_bytes_length(a) - 1 | 0; - if(! (_AZ_ < 0)) - {var i=_AZ_; - for(;;) - {r[1] = caml_call2(f,caml_bytes_unsafe_get(a,i),r[1]); - var _A0_=i - 1 | 0; - if(0 !== i){var i=_A0_;continue} - break}} - return r[1]} - function exists$1(p,s) - {var n=caml_ml_bytes_length(s),i=0; - for(;;) - {if(i === n)return 0; - if(caml_call1(p,caml_bytes_unsafe_get(s,i)))return 1; - var i$0=i + 1 | 0,i=i$0; - continue}} - function for_all$1(p,s) - {var n=caml_ml_bytes_length(s),i=0; - for(;;) - {if(i === n)return 1; - if(caml_call1(p,caml_bytes_unsafe_get(s,i))) - {var i$0=i + 1 | 0,i=i$0;continue} - return 0}} - function uppercase_ascii$0(s){return map$5(uppercase_ascii,s)} - function lowercase_ascii$0(s){return map$5(lowercase_ascii,s)} - function apply1(f,s) - {if(0 === caml_ml_bytes_length(s))return s; - var r=copy(s); - caml_bytes_unsafe_set(r,0,caml_call1(f,caml_bytes_unsafe_get(s,0))); - return r} - function capitalize_ascii(s){return apply1(uppercase_ascii,s)} - function uncapitalize_ascii(s){return apply1(lowercase_ascii,s)} - function starts_with(prefix,s) - {var - len_s=caml_ml_bytes_length(s), - len_pre=caml_ml_bytes_length(prefix), - _AY_=len_pre <= len_s?1:0; - if(_AY_) - {var i=0; - for(;;) - {if(i === len_pre)return 1; - if(caml_bytes_unsafe_get(s,i) !== caml_bytes_unsafe_get(prefix,i)) - return 0; - var i$0=i + 1 | 0,i=i$0; - continue}} - return _AY_} - function ends_with(suffix,s) - {var - len_s=caml_ml_bytes_length(s), - len_suf=caml_ml_bytes_length(suffix), - diff=len_s - len_suf | 0, - _AX_=0 <= diff?1:0; - if(_AX_) - {var i=0; - for(;;) - {if(i === len_suf)return 1; - if - (caml_bytes_unsafe_get(s,diff + i | 0) - !== - caml_bytes_unsafe_get(suffix,i)) - return 0; - var i$0=i + 1 | 0,i=i$0; - continue}} - return _AX_} - function index_rec(s,lim,i,c) - {var i$0=i; - for(;;) - {if(lim <= i$0)throw Not_found; - if(caml_bytes_unsafe_get(s,i$0) === c)return i$0; - var i$1=i$0 + 1 | 0,i$0=i$1; - continue}} - function index(s,c){return index_rec(s,caml_ml_bytes_length(s),0,c)} - function index_rec_opt(s,lim,i,c) - {var i$0=i; - for(;;) - {if(lim <= i$0)return 0; - if(caml_bytes_unsafe_get(s,i$0) === c)return [0,i$0]; - var i$1=i$0 + 1 | 0,i$0=i$1; - continue}} - function index_opt(s,c) - {return index_rec_opt(s,caml_ml_bytes_length(s),0,c)} - function index_from(s,i,c) - {var l=caml_ml_bytes_length(s); - if(0 <= i && ! (l < i))return index_rec(s,l,i,c); - return invalid_arg(cst_String_index_from_Bytes_in)} - function index_from_opt(s,i,c) - {var l=caml_ml_bytes_length(s); - if(0 <= i && ! (l < i))return index_rec_opt(s,l,i,c); - return invalid_arg(cst_String_index_from_opt_Byte)} - function rindex_rec(s,i,c) - {var i$0=i; - for(;;) - {if(0 <= i$0) - {if(caml_bytes_unsafe_get(s,i$0) === c)return i$0; - var i$1=i$0 - 1 | 0,i$0=i$1; - continue} - throw Not_found}} - function rindex(s,c) - {return rindex_rec(s,caml_ml_bytes_length(s) - 1 | 0,c)} - function rindex_from(s,i,c) - {if(-1 <= i && ! (caml_ml_bytes_length(s) <= i))return rindex_rec(s,i,c); - return invalid_arg(cst_String_rindex_from_Bytes_r)} - function rindex_rec_opt(s,i,c) - {var i$0=i; - for(;;) - {if(0 <= i$0) - {if(caml_bytes_unsafe_get(s,i$0) === c)return [0,i$0]; - var i$1=i$0 - 1 | 0,i$0=i$1; - continue} - return 0}} - function rindex_opt(s,c) - {return rindex_rec_opt(s,caml_ml_bytes_length(s) - 1 | 0,c)} - function rindex_from_opt(s,i,c) - {if(-1 <= i && ! (caml_ml_bytes_length(s) <= i)) - return rindex_rec_opt(s,i,c); - return invalid_arg(cst_String_rindex_from_opt_Byt)} - function contains_from(s,i,c) - {var l=caml_ml_bytes_length(s); - if(0 <= i && ! (l < i)) - try - {index_rec(s,l,i,c);var _AV_=1;return _AV_} - catch(_AW_) - {_AW_ = caml_wrap_exception(_AW_); - if(_AW_ === Not_found)return 0; - throw _AW_} - return invalid_arg(cst_String_contains_from_Bytes)} - function contains(s,c){return contains_from(s,0,c)} - function rcontains_from(s,i,c) - {if(0 <= i && ! (caml_ml_bytes_length(s) <= i)) - try - {rindex_rec(s,i,c);var _AT_=1;return _AT_} - catch(_AU_) - {_AU_ = caml_wrap_exception(_AU_); - if(_AU_ === Not_found)return 0; - throw _AU_} - return invalid_arg(cst_String_rcontains_from_Byte)} - function compare$8(x,y){return runtime.caml_bytes_compare(x,y)} - function split_on_char(sep,s) - {var - r=[0,0], - j=[0,caml_ml_bytes_length(s)], - _AP_=caml_ml_bytes_length(s) - 1 | 0; - if(! (_AP_ < 0)) - {var i=_AP_; - for(;;) - {if(caml_bytes_unsafe_get(s,i) === sep) - {var _AR_=r[1]; - r[1] = [0,sub(s,i + 1 | 0,(j[1] - i | 0) - 1 | 0),_AR_]; - j[1] = i} - var _AS_=i - 1 | 0; - if(0 !== i){var i=_AS_;continue} - break}} - var _AQ_=r[1]; - return [0,sub(s,0,j[1]),_AQ_]} - function uppercase$0(s){return map$5(uppercase,s)} - function lowercase$0(s){return map$5(lowercase,s)} - function capitalize(s){return apply1(uppercase,s)} - function uncapitalize(s){return apply1(lowercase,s)} - function to_seq$2(s) - {function aux(i,param) - {if(i === caml_ml_bytes_length(s))return 0; - var x=caml_bytes_get(s,i),_AN_=i + 1 | 0; - return [0,x,function(_AO_){return aux(_AN_,_AO_)}]} - var _AL_=0; - return function(_AM_){return aux(_AL_,_AM_)}} - function to_seqi(s) - {function aux(i,param) - {if(i === caml_ml_bytes_length(s))return 0; - var x=caml_bytes_get(s,i),_AJ_=i + 1 | 0; - return [0,[0,i,x],function(_AK_){return aux(_AJ_,_AK_)}]} - var _AH_=0; - return function(_AI_){return aux(_AH_,_AI_)}} - function of_seq$0(i) - {var n=[0,0],buf=[0,make$0(256,0)]; - iter - (function(c) - {if(n[1] === caml_ml_bytes_length(buf[1])) - {var - new_len= - min$1(2 * caml_ml_bytes_length(buf[1]) | 0,max_string_length); - if(caml_ml_bytes_length(buf[1]) === new_len) - failwith(cst_Bytes_of_seq_cannot_grow_b); - var new_buf=make$0(new_len,0); - blit(buf[1],0,new_buf,0,n[1]); - buf[1] = new_buf} - caml_bytes_set(buf[1],n[1],c); - n[1]++; - return 0}, - i); - return sub(buf[1],0,n[1])} - function get$1(b,i){return caml_bswap16(caml_bytes_get16(b,i))} - function get_int8(b,i){return caml_bytes_get(b,i) << 24 >> 24} - function get_uint16_le(b,i){return caml_bytes_get16(b,i)} - function get_uint16_be(b,i){return caml_bswap16(caml_bytes_get16(b,i))} - function get_int16_ne(b,i){return caml_bytes_get16(b,i) << 16 >> 16} - function get_int16_le(b,i){return caml_bytes_get16(b,i) << 16 >> 16} - function get_int16_be(b,i){return get_uint16_be(b,i) << 16 >> 16} - function get_int32_le(b,i){return caml_bytes_get32(b,i)} - function get_int32_be(b,i){return caml_int32_bswap(caml_bytes_get32(b,i))} - function get_int64_le(b,i){return caml_bytes_get64(b,i)} - function get_int64_be(b,i){return caml_int64_bswap(caml_bytes_get64(b,i))} - function set$0(b,i,x){return caml_bytes_set16(b,i,caml_bswap16(x))} - function set_int16_le(b,i,x){return caml_bytes_set16(b,i,x)} - function set_int16_be(b,i,x){return caml_bytes_set16(b,i,caml_bswap16(x))} - function set_int32_le(b,i,x){return caml_bytes_set32(b,i,x)} - function set_int32_be(b,i,x) - {return caml_bytes_set32(b,i,caml_int32_bswap(x))} - function set_int64_le(b,i,x){return caml_bytes_set64(b,i,x)} - function set_int64_be(b,i,x) - {return caml_bytes_set64(b,i,caml_int64_bswap(x))} - var set_uint8=caml_bytes_set,set_uint16_ne=caml_bytes_set16; - function dec_ret(n,u){return utf_decode(n,u)} - function not_in_x80_to_xBF(b){return 2 !== (b >>> 6 | 0)?1:0} - function not_in_xA0_to_xBF(b){return 5 !== (b >>> 5 | 0)?1:0} - function not_in_x80_to_x9F(b){return 4 !== (b >>> 5 | 0)?1:0} - function not_in_x90_to_xBF(b) - {var _AF_=b < 144?1:0,_AG_=_AF_ || (191 < b?1:0);return _AG_} - function not_in_x80_to_x8F(b){return 8 !== (b >>> 4 | 0)?1:0} - function utf_8_uchar_3(b0,b1,b2) - {return (b0 & 15) << 12 | (b1 & 63) << 6 | b2 & 63} - function utf_8_uchar_4(b0,b1,b2,b3) - {return (b0 & 7) << 18 | (b1 & 63) << 12 | (b2 & 63) << 6 | b3 & 63} - function get_utf_8_uchar(b,i) - {var b0=caml_bytes_get(b,i),max=caml_ml_bytes_length(b) - 1 | 0; - if(224 <= b0) - {var switch$0=0; - if(237 <= b0) - {if(! (245 <= b0)) - switch(b0 - 237 | 0) - {case 0: - var i$0=i + 1 | 0; - if(max < i$0)return dec_invalid(1); - var b1=caml_bytes_unsafe_get(b,i$0); - if(not_in_x80_to_x9F(b1))return dec_invalid(1); - var i$1=i$0 + 1 | 0; - if(max < i$1)return dec_invalid(2); - var b2=caml_bytes_unsafe_get(b,i$1); - return not_in_x80_to_xBF(b2) - ?dec_invalid(2) - :dec_ret(3,utf_8_uchar_3(b0,b1,b2)); - case 3: - var i$4=i + 1 | 0; - if(max < i$4)return dec_invalid(1); - var b1$1=caml_bytes_unsafe_get(b,i$4); - if(not_in_x90_to_xBF(b1$1))return dec_invalid(1); - var i$5=i$4 + 1 | 0; - if(max < i$5)return dec_invalid(2); - var b2$1=caml_bytes_unsafe_get(b,i$5); - if(not_in_x80_to_xBF(b2$1))return dec_invalid(2); - var i$6=i$5 + 1 | 0; - if(max < i$6)return dec_invalid(3); - var b3=caml_bytes_unsafe_get(b,i$6); - return not_in_x80_to_xBF(b3) - ?dec_invalid(3) - :dec_ret(4,utf_8_uchar_4(b0,b1$1,b2$1,b3)); - case 7: - var i$10=i + 1 | 0; - if(max < i$10)return dec_invalid(1); - var b1$3=caml_bytes_unsafe_get(b,i$10); - if(not_in_x80_to_x8F(b1$3))return dec_invalid(1); - var i$11=i$10 + 1 | 0; - if(max < i$11)return dec_invalid(2); - var b2$3=caml_bytes_unsafe_get(b,i$11); - if(not_in_x80_to_xBF(b2$3))return dec_invalid(2); - var i$12=i$11 + 1 | 0; - if(max < i$12)return dec_invalid(3); - var b3$1=caml_bytes_unsafe_get(b,i$12); - return not_in_x80_to_xBF(b3$1) - ?dec_invalid(3) - :dec_ret(4,utf_8_uchar_4(b0,b1$3,b2$3,b3$1)); - case 1: - case 2:switch$0 = 1;break; - default: - var i$7=i + 1 | 0; - if(max < i$7)return dec_invalid(1); - var b1$2=caml_bytes_unsafe_get(b,i$7); - if(not_in_x80_to_xBF(b1$2))return dec_invalid(1); - var i$8=i$7 + 1 | 0; - if(max < i$8)return dec_invalid(2); - var b2$2=caml_bytes_unsafe_get(b,i$8); - if(not_in_x80_to_xBF(b2$2))return dec_invalid(2); - var i$9=i$8 + 1 | 0; - if(max < i$9)return dec_invalid(3); - var b3$0=caml_bytes_unsafe_get(b,i$9); - return not_in_x80_to_xBF(b3$0) - ?dec_invalid(3) - :dec_ret(4,utf_8_uchar_4(b0,b1$2,b2$2,b3$0))}} - else - {if(! (225 <= b0)) - {var i$13=i + 1 | 0; - if(max < i$13)return dec_invalid(1); - var b1$4=caml_bytes_unsafe_get(b,i$13); - if(not_in_xA0_to_xBF(b1$4))return dec_invalid(1); - var i$14=i$13 + 1 | 0; - if(max < i$14)return dec_invalid(2); - var b2$4=caml_bytes_unsafe_get(b,i$14); - return not_in_x80_to_xBF(b2$4) - ?dec_invalid(2) - :dec_ret(3,utf_8_uchar_3(b0,b1$4,b2$4))} - switch$0 = 1} - if(switch$0) - {var i$2=i + 1 | 0; - if(max < i$2)return dec_invalid(1); - var b1$0=caml_bytes_unsafe_get(b,i$2); - if(not_in_x80_to_xBF(b1$0))return dec_invalid(1); - var i$3=i$2 + 1 | 0; - if(max < i$3)return dec_invalid(2); - var b2$0=caml_bytes_unsafe_get(b,i$3); - return not_in_x80_to_xBF(b2$0) - ?dec_invalid(2) - :dec_ret(3,utf_8_uchar_3(b0,b1$0,b2$0))}} - else - {if(! (128 <= b0))return dec_ret(1,b0); - if(194 <= b0) - {var i$15=i + 1 | 0; - if(max < i$15)return dec_invalid(1); - var b1$5=caml_bytes_unsafe_get(b,i$15); - return not_in_x80_to_xBF(b1$5) - ?dec_invalid(1) - :dec_ret(2,(b0 & 31) << 6 | b1$5 & 63)}} - return dec_invalid(1)} - function set_utf_8_uchar(b,i,u) - {function set(_AE_,_AD_,_AC_) - {caml_bytes_unsafe_set(_AE_,_AD_,_AC_);return 0} - var max=caml_ml_bytes_length(b) - 1 | 0; - if(0 <= u) - {if(127 < u) - {if(2047 < u) - {if(65535 < u) - {if(1114111 < u)throw [0,Assert_failure,_z_]; - var last=i + 3 | 0; - return max < last - ?0 - :(caml_bytes_set(b,i,240 | u >>> 18 | 0), - set(b,i + 1 | 0,128 | (u >>> 12 | 0) & 63), - set(b,i + 2 | 0,128 | (u >>> 6 | 0) & 63), - set(b,last,128 | u & 63), - 4)} - var last$0=i + 2 | 0; - return max < last$0 - ?0 - :(caml_bytes_set(b,i,224 | u >>> 12 | 0), - set(b,i + 1 | 0,128 | (u >>> 6 | 0) & 63), - set(b,last$0,128 | u & 63), - 3)} - var last$1=i + 1 | 0; - return max < last$1 - ?0 - :(caml_bytes_set(b,i,192 | u >>> 6 | 0), - set(b,last$1,128 | u & 63), - 2)} - caml_bytes_set(b,i,u); - return 1} - throw [0,Assert_failure,_A_]} - function is_valid_utf_8(b) - {var max=caml_ml_bytes_length(b) - 1 | 0,i=0; - for(;;) - {if(max < i)return 1; - var match=caml_bytes_unsafe_get(b,i); - if(224 <= match) - {var switch$0=0; - if(237 <= match) - {if(! (245 <= match)) - switch(match - 237 | 0) - {case 0: - var last=i + 2 | 0; - if - (! - (max < last) - && - ! - not_in_x80_to_x9F(caml_bytes_unsafe_get(b,i + 1 | 0)) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b,last))) - {var i$0=last + 1 | 0,i=i$0;continue} - return 0; - case 3: - var last$1=i + 3 | 0; - if - (! - (max < last$1) - && - ! - not_in_x90_to_xBF(caml_bytes_unsafe_get(b,i + 1 | 0)) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b,i + 2 | 0)) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b,last$1))) - {var i$2=last$1 + 1 | 0,i=i$2;continue} - return 0; - case 7: - var last$3=i + 3 | 0; - if - (! - (max < last$3) - && - ! - not_in_x80_to_x8F(caml_bytes_unsafe_get(b,i + 1 | 0)) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b,i + 2 | 0)) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b,last$3))) - {var i$4=last$3 + 1 | 0,i=i$4;continue} - return 0; - case 1: - case 2:switch$0 = 1;break; - default: - var last$2=i + 3 | 0; - if - (! - (max < last$2) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b,i + 1 | 0)) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b,i + 2 | 0)) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b,last$2))) - {var i$3=last$2 + 1 | 0,i=i$3;continue} - return 0}} - else - {if(! (225 <= match)) - {var last$4=i + 2 | 0; - if - (! - (max < last$4) - && - ! - not_in_xA0_to_xBF(caml_bytes_unsafe_get(b,i + 1 | 0)) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b,last$4))) - {var i$5=last$4 + 1 | 0,i=i$5;continue} - return 0} - switch$0 = 1} - if(switch$0) - {var last$0=i + 2 | 0; - if - (! - (max < last$0) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b,i + 1 | 0)) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b,last$0))) - {var i$1=last$0 + 1 | 0,i=i$1;continue} - return 0}} - else - {if(! (128 <= match)){var i$7=i + 1 | 0,i=i$7;continue} - if(194 <= match) - {var last$5=i + 1 | 0; - if - (! - (max < last$5) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b,last$5))) - {var i$6=last$5 + 1 | 0,i=i$6;continue} - return 0}} - return 0}} - function get_utf_16be_uchar(b,i) - {var max=caml_ml_bytes_length(b) - 1 | 0; - if(0 <= i && ! (max < i)) - {if(i === max)return dec_invalid(1); - var hi=get$1(b,i); - if(55296 <= hi && ! (57343 < hi)) - {if(56319 < hi)return dec_invalid(2); - var last=i + 3 | 0; - if(max < last)return dec_invalid((max - i | 0) + 1 | 0); - var u=get$1(b,i + 2 | 0); - if(56320 <= u && ! (57343 < u)) - {var u$0=((hi & 1023) << 10 | u & 1023) + 65536 | 0; - return dec_ret(4,u$0)} - return dec_invalid(2)} - return dec_ret(2,hi)} - return invalid_arg(cst_index_out_of_bounds)} - function set_utf_16be_uchar(b,i,u) - {var max=caml_ml_bytes_length(b) - 1 | 0; - if(0 <= i && ! (max < i)) - {if(0 <= u) - {if(65535 < u) - {if(1114111 < u)throw [0,Assert_failure,_B_]; - var last=i + 3 | 0; - if(max < last)return 0; - var - u$0=u - 65536 | 0, - hi=55296 | u$0 >>> 10 | 0, - lo=56320 | u$0 & 1023; - set$0(b,i,hi); - set$0(b,i + 2 | 0,lo); - return 4} - var last$0=i + 1 | 0; - return max < last$0?0:(set$0(b,i,u),2)} - throw [0,Assert_failure,_C_]} - return invalid_arg(cst_index_out_of_bounds$0)} - function is_valid_utf_16be(b) - {var max=caml_ml_bytes_length(b) - 1 | 0,i=0; - for(;;) - {if(max < i)return 1; - if(i === max)return 0; - var u=get$1(b,i); - if(55296 <= u && ! (57343 < u)) - {if(56319 < u)return 0; - var last=i + 3 | 0; - if(max < last)return 0; - var u$0=get$1(b,i + 2 | 0); - if(56320 <= u$0 && ! (57343 < u$0)) - {var i$1=i + 4 | 0,i=i$1;continue} - return 0} - var i$0=i + 2 | 0,i=i$0; - continue}} - function get_utf_16le_uchar(b,i) - {var max=caml_ml_bytes_length(b) - 1 | 0; - if(0 <= i && ! (max < i)) - {if(i === max)return dec_invalid(1); - var hi=caml_bytes_get16(b,i); - if(55296 <= hi && ! (57343 < hi)) - {if(56319 < hi)return dec_invalid(2); - var last=i + 3 | 0; - if(max < last)return dec_invalid((max - i | 0) + 1 | 0); - var u=caml_bytes_get16(b,i + 2 | 0); - if(56320 <= u && ! (57343 < u)) - {var u$0=((hi & 1023) << 10 | u & 1023) + 65536 | 0; - return dec_ret(4,u$0)} - return dec_invalid(2)} - return dec_ret(2,hi)} - return invalid_arg(cst_index_out_of_bounds$1)} - function set_utf_16le_uchar(b,i,u) - {var max=caml_ml_bytes_length(b) - 1 | 0; - if(0 <= i && ! (max < i)) - {if(0 <= u) - {if(65535 < u) - {if(1114111 < u)throw [0,Assert_failure,_D_]; - var last=i + 3 | 0; - if(max < last)return 0; - var - u$0=u - 65536 | 0, - hi=55296 | u$0 >>> 10 | 0, - lo=56320 | u$0 & 1023; - caml_bytes_set16(b,i,hi); - caml_bytes_set16(b,i + 2 | 0,lo); - return 4} - var last$0=i + 1 | 0; - return max < last$0?0:(caml_bytes_set16(b,i,u),2)} - throw [0,Assert_failure,_E_]} - return invalid_arg(cst_index_out_of_bounds$2)} - function is_valid_utf_16le(b) - {var max=caml_ml_bytes_length(b) - 1 | 0,i=0; - for(;;) - {if(max < i)return 1; - if(i === max)return 0; - var u=caml_bytes_get16(b,i); - if(55296 <= u && ! (57343 < u)) - {if(56319 < u)return 0; - var last=i + 3 | 0; - if(max < last)return 0; - var u$0=caml_bytes_get16(b,i + 2 | 0); - if(56320 <= u$0 && ! (57343 < u$0)) - {var i$1=i + 4 | 0,i=i$1;continue} - return 0} - var i$0=i + 2 | 0,i=i$0; - continue}} - var - set_int64_ne=caml_bytes_set64, - set_int32_ne=caml_bytes_set32, - set_int16_ne=caml_bytes_set16, - set_int8=caml_bytes_set, - get_int64_ne=caml_bytes_get64, - get_int32_ne=caml_bytes_get32, - get_uint16_ne=caml_bytes_get16, - get_uint8=caml_bytes_get, - unsafe_of_string=caml_bytes_of_string, - unsafe_to_string=caml_string_of_bytes, - equal$8=runtime.caml_bytes_equal, - include$1= - [0, - make$0, - init$1, - empty$0, - copy, - to_bytes, - of_bytes, - sub, - sub_string, - extend, - fill, - blit, - blit$0, - concat$0, - cat$0, - iter$3, - iteri$1, - map$5, - mapi$1, - fold_left$1, - fold_right$0, - for_all$1, - exists$1, - trim, - escaped$0, - index, - index_opt, - rindex, - rindex_opt, - index_from, - index_from_opt, - rindex_from, - rindex_from_opt, - contains, - contains_from, - rcontains_from, - uppercase$0, - lowercase$0, - capitalize, - uncapitalize, - uppercase_ascii$0, - lowercase_ascii$0, - capitalize_ascii, - uncapitalize_ascii, - compare$8, - equal$8, - starts_with, - ends_with, - unsafe_to_string, - unsafe_of_string, - split_on_char, - to_seq$2, - to_seqi, - of_seq$0, - get_utf_8_uchar, - set_utf_8_uchar, - is_valid_utf_8, - get_utf_16be_uchar, - set_utf_16be_uchar, - is_valid_utf_16be, - get_utf_16le_uchar, - set_utf_16le_uchar, - is_valid_utf_16le, - get_uint8, - get_int8, - get_uint16_ne, - get_uint16_be, - get_uint16_le, - get_int16_ne, - get_int16_be, - get_int16_le, - get_int32_ne, - get_int32_be, - get_int32_le, - get_int64_ne, - get_int64_be, - get_int64_le, - set_uint8, - set_int8, - set_uint16_ne, - set_int16_be, - set_int16_le, - set_int16_ne, - set_int16_be, - set_int16_le, - set_int32_ne, - set_int32_be, - set_int32_le, - set_int64_ne, - set_int64_be, - set_int64_le]; - caml_register_global(790,include$1,"Stdlib__Bytes"); - function make$1(n,c){return caml_string_of_bytes(make$0(n,c))} - function init$2(n,f){return caml_string_of_bytes(init$1(n,f))} - function copy$0(s) - {return caml_string_of_bytes(copy(caml_bytes_of_string(s)))} - function sub$0(s,ofs,len) - {return caml_string_of_bytes(sub(caml_bytes_of_string(s),ofs,len))} - function concat$1(sep,l) - {if(l) - {var seplen=caml_ml_string_length(sep),acc=0,param=l,pos$1=0; - for(;;) - {if(param) - {var _Az_=param[1]; - if(param[2]) - {var - tl=param[2], - x=(caml_ml_string_length(_Az_) + seplen | 0) + acc | 0, - acc$0=acc <= x?x:invalid_arg(cst_String_concat), - acc=acc$0, - param=tl; - continue} - var _AB_=caml_ml_string_length(_Az_) + acc | 0} - else - var _AB_=acc; - var dst=caml_create_bytes(_AB_),pos=pos$1,param$0=l; - for(;;) - {if(param$0) - {var _AA_=param$0[1]; - if(param$0[2]) - {var tl$0=param$0[2]; - caml_blit_string(_AA_,0,dst,pos,caml_ml_string_length(_AA_)); - caml_blit_string - (sep,0,dst,pos + caml_ml_string_length(_AA_) | 0,seplen); - var - pos$0=(pos + caml_ml_string_length(_AA_) | 0) + seplen | 0, - pos=pos$0, - param$0=tl$0; - continue} - caml_blit_string(_AA_,0,dst,pos,caml_ml_string_length(_AA_))} - return caml_string_of_bytes(dst)}}} - return cst$3} - function iter$4(f,s) - {var _Ax_=caml_ml_string_length(s) - 1 | 0,_Aw_=0; - if(! (_Ax_ < 0)) - {var i=_Aw_; - for(;;) - {caml_call1(f,caml_string_unsafe_get(s,i)); - var _Ay_=i + 1 | 0; - if(_Ax_ !== i){var i=_Ay_;continue} - break}} - return 0} - function iteri$2(f,s) - {var _Au_=caml_ml_string_length(s) - 1 | 0,_At_=0; - if(! (_Au_ < 0)) - {var i=_At_; - for(;;) - {caml_call2(f,i,caml_string_unsafe_get(s,i)); - var _Av_=i + 1 | 0; - if(_Au_ !== i){var i=_Av_;continue} - break}} - return 0} - function map$6(f,s) - {return caml_string_of_bytes(map$5(f,caml_bytes_of_string(s)))} - function mapi$2(f,s) - {return caml_string_of_bytes(mapi$1(f,caml_bytes_of_string(s)))} - function fold_right$1(f,x,a) - {return fold_right$0(f,caml_bytes_of_string(x),a)} - function fold_left$2(f,a,x) - {return fold_left$1(f,a,caml_bytes_of_string(x))} - function exists$2(f,s){return exists$1(f,caml_bytes_of_string(s))} - function for_all$2(f,s){return for_all$1(f,caml_bytes_of_string(s))} - function is_space$0(param) - {var _As_=param - 9 | 0,switch$0=0; - if(4 < _As_ >>> 0) - {if(23 === _As_)switch$0 = 1} - else - if(2 !== _As_)switch$0 = 1; - return switch$0?1:0} - function trim$0(s) - {if(caml_string_equal(s,cst$4))return s; - if - (! - is_space$0(caml_string_unsafe_get(s,0)) - && - ! - is_space$0(caml_string_unsafe_get(s,caml_ml_string_length(s) - 1 | 0))) - return s; - return caml_string_of_bytes(trim(caml_bytes_of_string(s)))} - function escaped$1(s) - {var n=caml_ml_string_length(s),i=0; - for(;;) - {if(n <= i)return s; - var match=caml_string_unsafe_get(s,i),_Ar_=match - 32 | 0,switch$0=0; - if(59 < _Ar_ >>> 0) - {if(33 < _Ar_ - 61 >>> 0)switch$0 = 1} - else - if(2 === _Ar_)switch$0 = 1; - if(switch$0) - return caml_string_of_bytes(escaped$0(caml_bytes_of_string(s))); - var i$0=i + 1 | 0,i=i$0; - continue}} - function index_rec$0(s,lim,i,c) - {var i$0=i; - for(;;) - {if(lim <= i$0)throw Not_found; - if(caml_string_unsafe_get(s,i$0) === c)return i$0; - var i$1=i$0 + 1 | 0,i$0=i$1; - continue}} - function index$0(s,c){return index_rec$0(s,caml_ml_string_length(s),0,c)} - function index_rec_opt$0(s,lim,i,c) - {var i$0=i; - for(;;) - {if(lim <= i$0)return 0; - if(caml_string_unsafe_get(s,i$0) === c)return [0,i$0]; - var i$1=i$0 + 1 | 0,i$0=i$1; - continue}} - function index_opt$0(s,c) - {return index_rec_opt$0(s,caml_ml_string_length(s),0,c)} - function index_from$0(s,i,c) - {var l=caml_ml_string_length(s); - if(0 <= i && ! (l < i))return index_rec$0(s,l,i,c); - return invalid_arg(cst_String_index_from_Bytes_in$0)} - function index_from_opt$0(s,i,c) - {var l=caml_ml_string_length(s); - if(0 <= i && ! (l < i))return index_rec_opt$0(s,l,i,c); - return invalid_arg(cst_String_index_from_opt_Byte$0)} - function rindex_rec$0(s,i,c) - {var i$0=i; - for(;;) - {if(0 <= i$0) - {if(caml_string_unsafe_get(s,i$0) === c)return i$0; - var i$1=i$0 - 1 | 0,i$0=i$1; - continue} - throw Not_found}} - function rindex$0(s,c) - {return rindex_rec$0(s,caml_ml_string_length(s) - 1 | 0,c)} - function rindex_from$0(s,i,c) - {if(-1 <= i && ! (caml_ml_string_length(s) <= i)) - return rindex_rec$0(s,i,c); - return invalid_arg(cst_String_rindex_from_Bytes_r$0)} - function rindex_rec_opt$0(s,i,c) - {var i$0=i; - for(;;) - {if(0 <= i$0) - {if(caml_string_unsafe_get(s,i$0) === c)return [0,i$0]; - var i$1=i$0 - 1 | 0,i$0=i$1; - continue} - return 0}} - function rindex_opt$0(s,c) - {return rindex_rec_opt$0(s,caml_ml_string_length(s) - 1 | 0,c)} - function rindex_from_opt$0(s,i,c) - {if(-1 <= i && ! (caml_ml_string_length(s) <= i)) - return rindex_rec_opt$0(s,i,c); - return invalid_arg(cst_String_rindex_from_opt_Byt$0)} - function contains_from$0(s,i,c) - {var l=caml_ml_string_length(s); - if(0 <= i && ! (l < i)) - try - {index_rec$0(s,l,i,c);var _Ap_=1;return _Ap_} - catch(_Aq_) - {_Aq_ = caml_wrap_exception(_Aq_); - if(_Aq_ === Not_found)return 0; - throw _Aq_} - return invalid_arg(cst_String_contains_from_Bytes$0)} - function contains$0(s,c){return contains_from$0(s,0,c)} - function rcontains_from$0(s,i,c) - {if(0 <= i && ! (caml_ml_string_length(s) <= i)) - try - {rindex_rec$0(s,i,c);var _An_=1;return _An_} - catch(_Ao_) - {_Ao_ = caml_wrap_exception(_Ao_); - if(_Ao_ === Not_found)return 0; - throw _Ao_} - return invalid_arg(cst_String_rcontains_from_Byte$0)} - function uppercase_ascii$1(s) - {return caml_string_of_bytes(uppercase_ascii$0(caml_bytes_of_string(s)))} - function lowercase_ascii$1(s) - {return caml_string_of_bytes(lowercase_ascii$0(caml_bytes_of_string(s)))} - function capitalize_ascii$0(s) - {return caml_string_of_bytes(capitalize_ascii(caml_bytes_of_string(s)))} - function uncapitalize_ascii$0(s) - {return caml_string_of_bytes(uncapitalize_ascii(caml_bytes_of_string(s)))} - function starts_with$0(prefix,s) - {var - len_s=caml_ml_string_length(s), - len_pre=caml_ml_string_length(prefix), - _Am_=len_pre <= len_s?1:0; - if(_Am_) - {var i=0; - for(;;) - {if(i === len_pre)return 1; - if(caml_string_unsafe_get(s,i) !== caml_string_unsafe_get(prefix,i)) - return 0; - var i$0=i + 1 | 0,i=i$0; - continue}} - return _Am_} - function ends_with$0(suffix,s) - {var - len_s=caml_ml_string_length(s), - len_suf=caml_ml_string_length(suffix), - diff=len_s - len_suf | 0, - _Al_=0 <= diff?1:0; - if(_Al_) - {var i=0; - for(;;) - {if(i === len_suf)return 1; - if - (caml_string_unsafe_get(s,diff + i | 0) - !== - caml_string_unsafe_get(suffix,i)) - return 0; - var i$0=i + 1 | 0,i=i$0; - continue}} - return _Al_} - function split_on_char$0(sep,s) - {var - r=[0,0], - j=[0,caml_ml_string_length(s)], - _Ah_=caml_ml_string_length(s) - 1 | 0; - if(! (_Ah_ < 0)) - {var i=_Ah_; - for(;;) - {if(caml_string_unsafe_get(s,i) === sep) - {var _Aj_=r[1]; - r[1] = [0,sub$0(s,i + 1 | 0,(j[1] - i | 0) - 1 | 0),_Aj_]; - j[1] = i} - var _Ak_=i - 1 | 0; - if(0 !== i){var i=_Ak_;continue} - break}} - var _Ai_=r[1]; - return [0,sub$0(s,0,j[1]),_Ai_]} - function uppercase$1(s) - {return caml_string_of_bytes(uppercase$0(caml_bytes_of_string(s)))} - function lowercase$1(s) - {return caml_string_of_bytes(lowercase$0(caml_bytes_of_string(s)))} - function capitalize$0(s) - {return caml_string_of_bytes(capitalize(caml_bytes_of_string(s)))} - function uncapitalize$0(s) - {return caml_string_of_bytes(uncapitalize(caml_bytes_of_string(s)))} - function compare$9(x,y){return caml_string_compare(x,y)} - function to_seq$3(s){return to_seq$2(caml_bytes_of_string(s))} - function to_seqi$0(s){return to_seqi(caml_bytes_of_string(s))} - function of_seq$1(g){return caml_string_of_bytes(of_seq$0(g))} - function get_utf_8_uchar$0(s,i) - {return get_utf_8_uchar(caml_bytes_of_string(s),i)} - function is_valid_utf_8$0(s) - {return is_valid_utf_8(caml_bytes_of_string(s))} - function get_utf_16be_uchar$0(s,i) - {return get_utf_16be_uchar(caml_bytes_of_string(s),i)} - function is_valid_utf_16be$0(s) - {return is_valid_utf_16be(caml_bytes_of_string(s))} - function get_utf_16le_uchar$0(s,i) - {return get_utf_16le_uchar(caml_bytes_of_string(s),i)} - function is_valid_utf_16le$0(s) - {return is_valid_utf_16le(caml_bytes_of_string(s))} - function get_int8$0(s,i){return get_int8(caml_bytes_of_string(s),i)} - function get_uint16_le$0(s,i) - {return caml_bytes_get16(caml_bytes_of_string(s),i)} - function get_uint16_be$0(s,i) - {return get_uint16_be(caml_bytes_of_string(s),i)} - function get_int16_ne$0(s,i) - {return get_int16_ne(caml_bytes_of_string(s),i)} - function get_int16_le$0(s,i) - {return get_int16_le(caml_bytes_of_string(s),i)} - function get_int16_be$0(s,i) - {return get_int16_be(caml_bytes_of_string(s),i)} - function get_int32_le$0(s,i) - {return caml_bytes_get32(caml_bytes_of_string(s),i)} - function get_int32_be$0(s,i) - {return get_int32_be(caml_bytes_of_string(s),i)} - function get_int64_le$0(s,i) - {return caml_bytes_get64(caml_bytes_of_string(s),i)} - function get_int64_be$0(s,i) - {return get_int64_be(caml_bytes_of_string(s),i)} - var - get_int64_ne$0=runtime.caml_string_get64, - get_int32_ne$0=runtime.caml_string_get32, - get_uint16_ne$0=runtime.caml_string_get16, - get_uint8$0=caml_string_get, - equal$9=caml_string_equal, - include$2= - [0, - make$1, - init$2, - empty$1, - of_bytes, - to_bytes, - concat$1, - cat, - equal$9, - compare$9, - starts_with$0, - ends_with$0, - contains_from$0, - rcontains_from$0, - contains$0, - sub$0, - split_on_char$0, - map$6, - mapi$2, - fold_left$2, - fold_right$1, - for_all$2, - exists$2, - trim$0, - escaped$1, - uppercase_ascii$1, - lowercase_ascii$1, - capitalize_ascii$0, - uncapitalize_ascii$0, - iter$4, - iteri$2, - index_from$0, - index_from_opt$0, - rindex_from$0, - rindex_from_opt$0, - index$0, - index_opt$0, - rindex$0, - rindex_opt$0, - to_seq$3, - to_seqi$0, - of_seq$1, - get_utf_8_uchar$0, - is_valid_utf_8$0, - get_utf_16be_uchar$0, - is_valid_utf_16be$0, - get_utf_16le_uchar$0, - is_valid_utf_16le$0, - blit$0, - copy$0, - fill, - uppercase$1, - lowercase$1, - capitalize$0, - uncapitalize$0, - get_uint8$0, - get_int8$0, - get_uint16_ne$0, - get_uint16_be$0, - get_uint16_le$0, - get_int16_ne$0, - get_int16_be$0, - get_int16_le$0, - get_int32_ne$0, - get_int32_be$0, - get_int32_le$0, - get_int64_ne$0, - get_int64_be$0, - get_int64_le$0]; - caml_register_global(791,include$2,"Stdlib__String"); - function equal$10(param,_Ag_){return 1} - function compare$10(param,_Af_){return 0} - function to_string$2(param){return cst$5} - var Stdlib_Unit=[0,equal$10,compare$10,to_string$2]; - caml_register_global(792,Stdlib_Unit,"Stdlib__Unit"); - function to_buffer(buff,ofs,len,v,flags) - {if - (0 - <= - ofs - && - 0 - <= - len - && - ! - ((caml_ml_bytes_length(buff) - len | 0) < ofs)) - return runtime.caml_output_value_to_buffer(buff,ofs,len,v,flags); - return invalid_arg(cst_Marshal_to_buffer_substrin)} - var header_size=20; - function data_size(buff,ofs) - {if(0 <= ofs && ! ((caml_ml_bytes_length(buff) - 20 | 0) < ofs)) - return caml_marshal_data_size(buff,ofs); - return invalid_arg(cst_Marshal_data_size)} - function total_size(buff,ofs){return 20 + data_size(buff,ofs) | 0} - function from_bytes(buff,ofs) - {if(0 <= ofs && ! ((caml_ml_bytes_length(buff) - 20 | 0) < ofs)) - {var len=caml_marshal_data_size(buff,ofs); - return (caml_ml_bytes_length(buff) - (20 + len | 0) | 0) < ofs - ?invalid_arg(cst_Marshal_from_bytes$0) - :runtime.caml_input_value_from_bytes(buff,ofs)} - return invalid_arg(cst_Marshal_from_bytes)} - function from_string(buff,ofs) - {return from_bytes(caml_bytes_of_string(buff),ofs)} - var - Stdlib_Marshal= - [0, - caml_output_value, - to_buffer, - caml_input_value, - from_bytes, - from_string, - header_size, - data_size, - total_size]; - caml_register_global(793,Stdlib_Marshal,"Stdlib__Marshal"); - var make_float=runtime.caml_make_float_vect,Floatarray=[0]; - function init$3(l,f) - {if(0 === l)return [0]; - if(0 <= l) - {var res=caml_make_vect(l,caml_call1(f,0)),_Ad_=l - 1 | 0,_Ac_=1; - if(! (_Ad_ < 1)) - {var i=_Ac_; - for(;;) - {res[1 + i] = caml_call1(f,i); - var _Ae_=i + 1 | 0; - if(_Ad_ !== i){var i=_Ae_;continue} - break}} - return res} - return invalid_arg(cst_Array_init)} - function create_matrix(sx,sy,init) - {var res=caml_make_vect(sx,[0]),_Aa_=sx - 1 | 0,_z$_=0; - if(! (_Aa_ < 0)) - {var x=_z$_; - for(;;) - {res[1 + x] = caml_make_vect(sy,init); - var _Ab_=x + 1 | 0; - if(_Aa_ !== x){var x=_Ab_;continue} - break}} - return res} - function copy$1(a) - {var l=a.length - 1;return 0 === l?[0]:caml_array_sub(a,0,l)} - function append$1(a1,a2) - {var l1=a1.length - 1; - return 0 === l1 - ?copy$1(a2) - :0 === a2.length - 1 - ?caml_array_sub(a1,0,l1) - :runtime.caml_array_append(a1,a2)} - function sub$1(a,ofs,len) - {if(0 <= ofs && 0 <= len && ! ((a.length - 1 - len | 0) < ofs)) - return caml_array_sub(a,ofs,len); - return invalid_arg(cst_Array_sub)} - function fill$0(a,ofs,len,v) - {if(0 <= ofs && 0 <= len && ! ((a.length - 1 - len | 0) < ofs)) - return runtime.caml_array_fill(a,ofs,len,v); - return invalid_arg(cst_Array_fill)} - function blit$1(a1,ofs1,a2,ofs2,len) - {if - (0 - <= - len - && - 0 - <= - ofs1 - && - ! - ((a1.length - 1 - len | 0) < ofs1) - && - 0 - <= - ofs2 - && - ! - ((a2.length - 1 - len | 0) < ofs2)) - return runtime.caml_array_blit(a1,ofs1,a2,ofs2,len); - return invalid_arg(cst_Array_blit)} - function iter$5(f,a) - {var _z9_=a.length - 1 - 1 | 0,_z8_=0; - if(! (_z9_ < 0)) - {var i=_z8_; - for(;;) - {caml_call1(f,a[1 + i]); - var _z__=i + 1 | 0; - if(_z9_ !== i){var i=_z__;continue} - break}} - return 0} - function iter2$1(f,a,b) - {if(a.length - 1 !== b.length - 1) - return invalid_arg(cst_Array_iter2_arrays_must_ha); - var _z6_=a.length - 1 - 1 | 0,_z5_=0; - if(! (_z6_ < 0)) - {var i=_z5_; - for(;;) - {caml_call2(f,a[1 + i],b[1 + i]); - var _z7_=i + 1 | 0; - if(_z6_ !== i){var i=_z7_;continue} - break}} - return 0} - function map$7(f,a) - {var l=a.length - 1; - if(0 === l)return [0]; - var r=caml_make_vect(l,caml_call1(f,a[1])),_z3_=l - 1 | 0,_z2_=1; - if(! (_z3_ < 1)) - {var i=_z2_; - for(;;) - {r[1 + i] = caml_call1(f,a[1 + i]); - var _z4_=i + 1 | 0; - if(_z3_ !== i){var i=_z4_;continue} - break}} - return r} - function map2$1(f,a,b) - {var la=a.length - 1,lb=b.length - 1; - if(la !== lb)return invalid_arg(cst_Array_map2_arrays_must_hav); - if(0 === la)return [0]; - var r=caml_make_vect(la,caml_call2(f,a[1],b[1])),_z0_=la - 1 | 0,_zZ_=1; - if(! (_z0_ < 1)) - {var i=_zZ_; - for(;;) - {r[1 + i] = caml_call2(f,a[1 + i],b[1 + i]); - var _z1_=i + 1 | 0; - if(_z0_ !== i){var i=_z1_;continue} - break}} - return r} - function iteri$3(f,a) - {var _zX_=a.length - 1 - 1 | 0,_zW_=0; - if(! (_zX_ < 0)) - {var i=_zW_; - for(;;) - {caml_call2(f,i,a[1 + i]); - var _zY_=i + 1 | 0; - if(_zX_ !== i){var i=_zY_;continue} - break}} - return 0} - function mapi$3(f,a) - {var l=a.length - 1; - if(0 === l)return [0]; - var r=caml_make_vect(l,caml_call2(f,0,a[1])),_zU_=l - 1 | 0,_zT_=1; - if(! (_zU_ < 1)) - {var i=_zT_; - for(;;) - {r[1 + i] = caml_call2(f,i,a[1 + i]); - var _zV_=i + 1 | 0; - if(_zU_ !== i){var i=_zV_;continue} - break}} - return r} - function to_list$1(a) - {var i$1=a.length - 1 - 1 | 0,i=i$1,res=0; - for(;;) - {if(0 <= i) - {var res$0=[0,a[1 + i],res],i$0=i - 1 | 0,i=i$0,res=res$0;continue} - return res}} - function list_length(accu,param) - {var accu$0=accu,param$0=param; - for(;;) - {if(param$0) - {var - param$1=param$0[2], - accu$1=accu$0 + 1 | 0, - accu$0=accu$1, - param$0=param$1; - continue} - return accu$0}} - function of_list(l) - {if(l) - {var - tl=l[2], - hd=l[1], - a=caml_make_vect(list_length(0,l),hd), - i=1, - param=tl; - for(;;) - {if(param) - {var tl$0=param[2],hd$0=param[1]; - a[1 + i] = hd$0; - var i$0=i + 1 | 0,i=i$0,param=tl$0; - continue} - return a}} - return [0]} - function fold_left$3(f,x,a) - {var r=[0,x],_zR_=a.length - 1 - 1 | 0,_zQ_=0; - if(! (_zR_ < 0)) - {var i=_zQ_; - for(;;) - {r[1] = caml_call2(f,r[1],a[1 + i]); - var _zS_=i + 1 | 0; - if(_zR_ !== i){var i=_zS_;continue} - break}} - return r[1]} - function fold_left_map$0(f,acc,input_array) - {var len=input_array.length - 1; - if(0 === len)return [0,acc,[0]]; - var - match=caml_call2(f,acc,input_array[1]), - elt=match[2], - acc$0=match[1], - output_array=caml_make_vect(len,elt), - acc$1=[0,acc$0], - _zO_=len - 1 | 0, - _zN_=1; - if(! (_zO_ < 1)) - {var i=_zN_; - for(;;) - {var - match$0=caml_call2(f,acc$1[1],input_array[1 + i]), - elt$0=match$0[2], - acc$2=match$0[1]; - acc$1[1] = acc$2; - output_array[1 + i] = elt$0; - var _zP_=i + 1 | 0; - if(_zO_ !== i){var i=_zP_;continue} - break}} - return [0,acc$1[1],output_array]} - function fold_right$2(f,a,x) - {var r=[0,x],_zL_=a.length - 1 - 1 | 0; - if(! (_zL_ < 0)) - {var i=_zL_; - for(;;) - {r[1] = caml_call2(f,a[1 + i],r[1]); - var _zM_=i - 1 | 0; - if(0 !== i){var i=_zM_;continue} - break}} - return r[1]} - function exists$3(p,a) - {var n=a.length - 1,i=0; - for(;;) - {if(i === n)return 0; - if(caml_call1(p,a[1 + i]))return 1; - var i$0=i + 1 | 0,i=i$0; - continue}} - function for_all$3(p,a) - {var n=a.length - 1,i=0; - for(;;) - {if(i === n)return 1; - if(caml_call1(p,a[1 + i])){var i$0=i + 1 | 0,i=i$0;continue} - return 0}} - function for_all2$1(p,l1,l2) - {var n1=l1.length - 1,n2=l2.length - 1; - if(n1 !== n2)return invalid_arg(cst_Array_for_all2); - var i=0; - for(;;) - {if(i === n1)return 1; - if(caml_call2(p,l1[1 + i],l2[1 + i])) - {var i$0=i + 1 | 0,i=i$0;continue} - return 0}} - function exists2$1(p,l1,l2) - {var n1=l1.length - 1,n2=l2.length - 1; - if(n1 !== n2)return invalid_arg(cst_Array_exists2); - var i=0; - for(;;) - {if(i === n1)return 0; - if(caml_call2(p,l1[1 + i],l2[1 + i]))return 1; - var i$0=i + 1 | 0,i=i$0; - continue}} - function mem$0(x,a) - {var n=a.length - 1,i=0; - for(;;) - {if(i === n)return 0; - if(0 === caml_compare(a[1 + i],x))return 1; - var i$0=i + 1 | 0,i=i$0; - continue}} - function memq$0(x,a) - {var n=a.length - 1,i=0; - for(;;) - {if(i === n)return 0; - if(x === a[1 + i])return 1; - var i$0=i + 1 | 0,i=i$0; - continue}} - function find_opt$0(p,a) - {var n=a.length - 1,i=0; - for(;;) - {if(i === n)return 0; - var x=a[1 + i]; - if(caml_call1(p,x))return [0,x]; - var i$0=i + 1 | 0,i=i$0; - continue}} - function find_map$1(f,a) - {var n=a.length - 1,i=0; - for(;;) - {if(i === n)return 0; - var r=caml_call1(f,a[1 + i]); - if(r)return r; - var i$0=i + 1 | 0,i=i$0; - continue}} - function split$0(x) - {if(caml_equal(x,[0]))return [0,[0],[0]]; - var - match=x[1], - b0=match[2], - a0=match[1], - n=x.length - 1, - a=caml_make_vect(n,a0), - b=caml_make_vect(n,b0), - _zJ_=n - 1 | 0, - _zI_=1; - if(! (_zJ_ < 1)) - {var i=_zI_; - for(;;) - {var match$0=x[1 + i],bi=match$0[2],ai=match$0[1]; - a[1 + i] = ai; - b[1 + i] = bi; - var _zK_=i + 1 | 0; - if(_zJ_ !== i){var i=_zK_;continue} - break}} - return [0,a,b]} - function combine$0(a,b) - {var na=a.length - 1,nb=b.length - 1; - if(na !== nb)invalid_arg(cst_Array_combine); - if(0 === na)return [0]; - var x=caml_make_vect(na,[0,a[1],b[1]]),_zG_=na - 1 | 0,_zF_=1; - if(! (_zG_ < 1)) - {var i=_zF_; - for(;;) - {x[1 + i] = [0,a[1 + i],b[1 + i]]; - var _zH_=i + 1 | 0; - if(_zG_ !== i){var i=_zH_;continue} - break}} - return x} - var Bottom=[248,cst_Stdlib_Array_Bottom,caml_fresh_oo_id(0)]; - function sort(cmp,a) - {function maxson(l,i) - {var i31=((i + i | 0) + i | 0) + 1 | 0,x=[0,i31]; - if((i31 + 2 | 0) < l) - {var _zy_=i31 + 1 | 0,_zz_=caml_check_bound(a,_zy_)[1 + _zy_]; - if(caml_call2(cmp,caml_check_bound(a,i31)[1 + i31],_zz_) < 0) - x[1] = i31 + 1 | 0; - var - _zA_=i31 + 2 | 0, - _zB_=caml_check_bound(a,_zA_)[1 + _zA_], - _zC_=x[1]; - if(caml_call2(cmp,caml_check_bound(a,_zC_)[1 + _zC_],_zB_) < 0) - x[1] = i31 + 2 | 0; - return x[1]} - if((i31 + 1 | 0) < l) - {var _zD_=i31 + 1 | 0,_zE_=caml_check_bound(a,_zD_)[1 + _zD_]; - if(! (0 <= caml_call2(cmp,caml_check_bound(a,i31)[1 + i31],_zE_))) - return i31 + 1 | 0} - if(i31 < l)return i31; - throw [0,Bottom,i]} - function trickledown(l,i,e) - {var i$0=i; - for(;;) - {var j=maxson(l,i$0); - if(0 < caml_call2(cmp,caml_check_bound(a,j)[1 + j],e)) - {var _zx_=caml_check_bound(a,j)[1 + j]; - caml_check_bound(a,i$0)[1 + i$0] = _zx_; - var i$0=j; - continue} - caml_check_bound(a,i$0)[1 + i$0] = e; - return 0}} - function trickle(l,i,e) - {try - {var _zw_=trickledown(l,i,e);return _zw_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] === Bottom) - {var i$0=exn[2];caml_check_bound(a,i$0)[1 + i$0] = e;return 0} - throw exn}} - function bubbledown(l,i) - {var i$0=i; - for(;;) - {var i$1=maxson(l,i$0),_zv_=caml_check_bound(a,i$1)[1 + i$1]; - caml_check_bound(a,i$0)[1 + i$0] = _zv_; - var i$0=i$1; - continue}} - function bubble(l,i) - {try - {var _zu_=bubbledown(l,i);return _zu_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] === Bottom){var i$0=exn[2];return i$0} - throw exn}} - var l=a.length - 1,_zm_=((l + 1 | 0) / 3 | 0) - 1 | 0; - if(! (_zm_ < 0)) - {var i$2=_zm_; - for(;;) - {trickle(l,i$2,caml_check_bound(a,i$2)[1 + i$2]); - var _zt_=i$2 - 1 | 0; - if(0 !== i$2){var i$2=_zt_;continue} - break}} - var _zn_=l - 1 | 0; - if(! (_zn_ < 2)) - {var i$0=_zn_; - a: - for(;;) - {var - e$0=caml_check_bound(a,i$0)[1 + i$0], - _zr_=caml_check_bound(a,0)[1]; - caml_check_bound(a,i$0)[1 + i$0] = _zr_; - var i$1=bubble(i$0,0),i=i$1; - for(;;) - {var father=(i - 1 | 0) / 3 | 0; - if(i === father)throw [0,Assert_failure,_F_]; - if - (0 <= caml_call2(cmp,caml_check_bound(a,father)[1 + father],e$0)) - caml_check_bound(a,i)[1 + i] = e$0; - else - {var _zl_=caml_check_bound(a,father)[1 + father]; - caml_check_bound(a,i)[1 + i] = _zl_; - if(0 < father){var i=father;continue} - caml_check_bound(a,0)[1] = e$0} - var _zs_=i$0 - 1 | 0; - if(2 !== i$0){var i$0=_zs_;continue a} - break} - break}} - var _zo_=1 < l?1:0; - if(_zo_) - {var e=caml_check_bound(a,1)[2],_zp_=caml_check_bound(a,0)[1]; - caml_check_bound(a,1)[2] = _zp_; - caml_check_bound(a,0)[1] = e; - var _zq_=0} - else - var _zq_=_zo_; - return _zq_} - function fast_sort$0(cmp,a) - {function merge(src1ofs,src1len,src2,src2ofs,src2len,dst,dstofs) - {var - src1r=src1ofs + src1len | 0, - src2r=src2ofs + src2len | 0, - s2$1=caml_check_bound(src2,src2ofs)[1 + src2ofs], - s1$1=caml_check_bound(a,src1ofs)[1 + src1ofs], - i1=src1ofs, - s1=s1$1, - i2=src2ofs, - s2=s2$1, - d=dstofs; - for(;;) - {if(0 < caml_call2(cmp,s1,s2)) - {caml_check_bound(dst,d)[1 + d] = s2; - var i2$0=i2 + 1 | 0; - if(i2$0 < src2r) - {var - d$0=d + 1 | 0, - s2$0=caml_check_bound(src2,i2$0)[1 + i2$0], - i2=i2$0, - s2=s2$0, - d=d$0; - continue} - return blit$1(a,i1,dst,d + 1 | 0,src1r - i1 | 0)} - caml_check_bound(dst,d)[1 + d] = s1; - var i1$0=i1 + 1 | 0; - if(i1$0 < src1r) - {var - d$1=d + 1 | 0, - s1$0=caml_check_bound(a,i1$0)[1 + i1$0], - i1=i1$0, - s1=s1$0, - d=d$1; - continue} - return blit$1(src2,i2,dst,d + 1 | 0,src2r - i2 | 0)}} - function isortto(srcofs,dst,dstofs,len) - {var _zd_=len - 1 | 0,_zc_=0; - if(! (_zd_ < 0)) - {var i=_zc_; - a: - for(;;) - {var - _ze_=srcofs + i | 0, - e=caml_check_bound(a,_ze_)[1 + _ze_], - j=[0,(dstofs + i | 0) - 1 | 0]; - for(;;) - {if(dstofs <= j[1]) - {var _zf_=j[1]; - if(0 < caml_call2(cmp,caml_check_bound(dst,_zf_)[1 + _zf_],e)) - {var - _zg_=j[1], - _zh_=caml_check_bound(dst,_zg_)[1 + _zg_], - _zi_=j[1] + 1 | 0; - caml_check_bound(dst,_zi_)[1 + _zi_] = _zh_; - j[1] += -1; - continue}} - var _zj_=j[1] + 1 | 0; - caml_check_bound(dst,_zj_)[1 + _zj_] = e; - var _zk_=i + 1 | 0; - if(_zd_ !== i){var i=_zk_;continue a} - break} - break}} - return 0} - function sortto(srcofs,dst,dstofs,len) - {if(len <= 5)return isortto(srcofs,dst,dstofs,len); - var l1=len / 2 | 0,l2=len - l1 | 0; - sortto(srcofs + l1 | 0,dst,dstofs + l1 | 0,l2); - sortto(srcofs,a,srcofs + l2 | 0,l1); - return merge(srcofs + l2 | 0,l1,dst,dstofs + l1 | 0,l2,dst,dstofs)} - var l=a.length - 1; - if(l <= 5)return isortto(0,a,0,l); - var - l1=l / 2 | 0, - l2=l - l1 | 0, - t=caml_make_vect(l2,caml_check_bound(a,0)[1]); - sortto(l1,t,0,l2); - sortto(0,a,l2,l1); - return merge(l2,l1,t,0,l2,a,0)} - function to_seq$4(a) - {function aux(i,param) - {if(i < a.length - 1) - {var x=a[1 + i],_za_=i + 1 | 0; - return [0,x,function(_zb_){return aux(_za_,_zb_)}]} - return 0} - var _y__=0; - return function(_y$_){return aux(_y__,_y$_)}} - function to_seqi$1(a) - {function aux(i,param) - {if(i < a.length - 1) - {var x=a[1 + i],_y8_=i + 1 | 0; - return [0,[0,i,x],function(_y9_){return aux(_y8_,_y9_)}]} - return 0} - var _y6_=0; - return function(_y7_){return aux(_y6_,_y7_)}} - function of_seq$2(i$2) - {var _y5_=0,l=fold_left(function(acc,x){return [0,x,acc]},_y5_,i$2); - if(l) - {var - tl=l[2], - hd=l[1], - len=list_length(0,l), - a=caml_make_vect(len,hd), - i$1=len - 2 | 0, - i=i$1, - param=tl; - for(;;) - {if(param) - {var tl$0=param[2],hd$0=param[1]; - a[1 + i] = hd$0; - var i$0=i - 1 | 0,i=i$0,param=tl$0; - continue} - return a}} - return [0]} - var - concat$2=caml_array_concat, - include$3= - [0, - make_float, - init$3, - create_matrix, - create_matrix, - append$1, - concat$2, - sub$1, - copy$1, - fill$0, - blit$1, - to_list$1, - of_list, - iter$5, - iteri$3, - map$7, - mapi$3, - fold_left$3, - fold_left_map$0, - fold_right$2, - iter2$1, - map2$1, - for_all$3, - exists$3, - for_all2$1, - exists2$1, - mem$0, - memq$0, - find_opt$0, - find_map$1, - split$0, - combine$0, - sort, - fast_sort$0, - fast_sort$0, - to_seq$4, - to_seqi$1, - of_seq$2, - Floatarray]; - caml_register_global(794,include$3,"Stdlib__Array"); - var zero$0=0.,one$0=1.,minus_one$0=-1.; - function is_finite(x){return x - x == 0.?1:0} - function is_infinite(x){return 1. / x == 0.?1:0} - function is_nan(x){return x != x?1:0} - var pi=3.14159265358979312; - function is_integer(x) - {var _y4_=x == runtime.caml_trunc_float(x)?1:0; - return _y4_?is_finite(x):_y4_} - function succ$0(x){return caml_nextafter_float(x,infinity)} - function pred$0(x){return caml_nextafter_float(x,neg_infinity)} - function equal$11(x,y){return 0 === caml_float_compare(x,y)?1:0} - function min$2(x,y) - {if(! (x < y)) - {var switch$0=0; - if(caml_signbit_float(y) || ! caml_signbit_float(x))switch$0 = 1; - if(switch$0)return x != x?x:y} - return y != y?y:x} - function max$2(x,y) - {if(! (x < y)) - {var switch$0=0; - if(caml_signbit_float(y) || ! caml_signbit_float(x))switch$0 = 1; - if(switch$0)return y != y?y:x} - return x != x?x:y} - function min_max(x,y) - {if(x == x && y == y) - {if(! (x < y)) - {var switch$0=0; - if(caml_signbit_float(y) || ! caml_signbit_float(x))switch$0 = 1; - if(switch$0)return [0,y,x]} - return [0,x,y]} - return [0,nan,nan]} - function min_num(x,y) - {if(! (x < y)) - {var switch$0=0; - if(caml_signbit_float(y) || ! caml_signbit_float(x))switch$0 = 1; - if(switch$0)return y != y?x:y} - return x != x?y:x} - function max_num(x,y) - {if(! (x < y)) - {var switch$0=0; - if(caml_signbit_float(y) || ! caml_signbit_float(x))switch$0 = 1; - if(switch$0)return x != x?y:x} - return y != y?x:y} - function min_max_num(x,y) - {if(x != x)return [0,y,y]; - if(y != y)return [0,x,x]; - if(! (x < y)) - {var switch$0=0; - if(caml_signbit_float(y) || ! caml_signbit_float(x))switch$0 = 1; - if(switch$0)return [0,y,x]} - return [0,x,y]} - function hash$0(x){return caml_hash(10,100,0,x)} - function unsafe_fill(a,ofs,len,v) - {var _y2_=(ofs + len | 0) - 1 | 0; - if(! (_y2_ < ofs)) - {var i=ofs; - for(;;) - {a[1 + i] = v; - var _y3_=i + 1 | 0; - if(_y2_ !== i){var i=_y3_;continue} - break}} - return 0} - function check(a,ofs,len,msg) - {var _yY_=ofs < 0?1:0; - if(_yY_) - var _yZ_=_yY_; - else - {var _y0_=len < 0?1:0; - if(_y0_) - var _yZ_=_y0_; - else - var - _y1_=(ofs + len | 0) < 0?1:0, - _yZ_=_y1_ || (a.length - 1 < (ofs + len | 0)?1:0)} - return _yZ_?invalid_arg(msg):_yZ_} - function make$2(n,v) - {var result=caml_floatarray_create(n); - unsafe_fill(result,0,n,v); - return result} - function init$4(l,f) - {if(0 <= l) - {var res=caml_floatarray_create(l),_yW_=l - 1 | 0,_yV_=0; - if(! (_yW_ < 0)) - {var i=_yV_; - for(;;) - {res[1 + i] = caml_call1(f,i); - var _yX_=i + 1 | 0; - if(_yW_ !== i){var i=_yX_;continue} - break}} - return res} - return invalid_arg(cst_Float_Array_init)} - function append$2(a1,a2) - {var - l1=a1.length - 1, - l2=a2.length - 1, - result=caml_floatarray_create(l1 + l2 | 0); - caml_floatarray_blit(a1,0,result,0,l1); - caml_floatarray_blit(a2,0,result,l1,l2); - return result} - function concat$3(l) - {var acc=0,param=l; - for(;;) - {if(param) - {var - tl=param[2], - hd=param[1], - x=hd.length - 1 + acc | 0, - acc$0=acc <= x?x:invalid_arg(cst_Float_Array_concat), - acc=acc$0, - param=tl; - continue} - var result=caml_floatarray_create(acc),l$0=l,i=0; - for(;;) - {if(l$0) - {var tl$0=l$0[2],hd$0=l$0[1],hlen=hd$0.length - 1; - caml_floatarray_blit(hd$0,0,result,i,hlen); - var i$0=i + hlen | 0,l$0=tl$0,i=i$0; - continue} - if(i === acc)return result; - throw [0,Assert_failure,_G_]}}} - function sub$2(a,ofs,len) - {check(a,ofs,len,cst_Float_Array_sub); - var result=caml_floatarray_create(len); - caml_floatarray_blit(a,ofs,result,0,len); - return result} - function copy$2(a) - {var l=a.length - 1,result=caml_floatarray_create(l); - caml_floatarray_blit(a,0,result,0,l); - return result} - function fill$1(a,ofs,len,v) - {check(a,ofs,len,cst_Float_Array_fill);return unsafe_fill(a,ofs,len,v)} - function blit$2(src,sofs,dst,dofs,len) - {check(src,sofs,len,cst_Float_array_blit); - check(dst,dofs,len,cst_Float_array_blit$0); - return caml_floatarray_blit(src,sofs,dst,dofs,len)} - function to_list$2(a) - {return init$0(a.length - 1,function(_yU_){return a[1 + _yU_]})} - function of_list$0(l) - {var result=caml_floatarray_create(length$1(l)),i=0,l$0=l; - for(;;) - {if(l$0) - {var t=l$0[2],h=l$0[1]; - result[1 + i] = h; - var i$0=i + 1 | 0,i=i$0,l$0=t; - continue} - return result}} - function iter$6(f,a) - {var _yS_=a.length - 1 - 1 | 0,_yR_=0; - if(! (_yS_ < 0)) - {var i=_yR_; - for(;;) - {caml_call1(f,a[1 + i]); - var _yT_=i + 1 | 0; - if(_yS_ !== i){var i=_yT_;continue} - break}} - return 0} - function iter2$2(f,a,b) - {if(a.length - 1 !== b.length - 1) - return invalid_arg(cst_Float_Array_iter2_arrays_m); - var _yP_=a.length - 1 - 1 | 0,_yO_=0; - if(! (_yP_ < 0)) - {var i=_yO_; - for(;;) - {caml_call2(f,a[1 + i],b[1 + i]); - var _yQ_=i + 1 | 0; - if(_yP_ !== i){var i=_yQ_;continue} - break}} - return 0} - function map$8(f,a) - {var l=a.length - 1,r=caml_floatarray_create(l),_yM_=l - 1 | 0,_yL_=0; - if(! (_yM_ < 0)) - {var i=_yL_; - for(;;) - {r[1 + i] = caml_call1(f,a[1 + i]); - var _yN_=i + 1 | 0; - if(_yM_ !== i){var i=_yN_;continue} - break}} - return r} - function map2$2(f,a,b) - {var la=a.length - 1,lb=b.length - 1; - if(la !== lb)return invalid_arg(cst_Float_Array_map2_arrays_mu); - var r=caml_floatarray_create(la),_yJ_=la - 1 | 0,_yI_=0; - if(! (_yJ_ < 0)) - {var i=_yI_; - for(;;) - {r[1 + i] = caml_call2(f,a[1 + i],b[1 + i]); - var _yK_=i + 1 | 0; - if(_yJ_ !== i){var i=_yK_;continue} - break}} - return r} - function iteri$4(f,a) - {var _yG_=a.length - 1 - 1 | 0,_yF_=0; - if(! (_yG_ < 0)) - {var i=_yF_; - for(;;) - {caml_call2(f,i,a[1 + i]); - var _yH_=i + 1 | 0; - if(_yG_ !== i){var i=_yH_;continue} - break}} - return 0} - function mapi$4(f,a) - {var l=a.length - 1,r=caml_floatarray_create(l),_yD_=l - 1 | 0,_yC_=0; - if(! (_yD_ < 0)) - {var i=_yC_; - for(;;) - {r[1 + i] = caml_call2(f,i,a[1 + i]); - var _yE_=i + 1 | 0; - if(_yD_ !== i){var i=_yE_;continue} - break}} - return r} - function fold_left$4(f,x,a) - {var r=[0,x],_yA_=a.length - 1 - 1 | 0,_yz_=0; - if(! (_yA_ < 0)) - {var i=_yz_; - for(;;) - {r[1] = caml_call2(f,r[1],a[1 + i]); - var _yB_=i + 1 | 0; - if(_yA_ !== i){var i=_yB_;continue} - break}} - return r[1]} - function fold_right$3(f,a,x) - {var r=[0,x],_yx_=a.length - 1 - 1 | 0; - if(! (_yx_ < 0)) - {var i=_yx_; - for(;;) - {r[1] = caml_call2(f,a[1 + i],r[1]); - var _yy_=i - 1 | 0; - if(0 !== i){var i=_yy_;continue} - break}} - return r[1]} - function exists$4(p,a) - {var n=a.length - 1,i=0; - for(;;) - {if(i === n)return 0; - if(caml_call1(p,a[1 + i]))return 1; - var i$0=i + 1 | 0,i=i$0; - continue}} - function for_all$4(p,a) - {var n=a.length - 1,i=0; - for(;;) - {if(i === n)return 1; - if(caml_call1(p,a[1 + i])){var i$0=i + 1 | 0,i=i$0;continue} - return 0}} - function mem$1(x,a) - {var n=a.length - 1,i=0; - for(;;) - {if(i === n)return 0; - if(0 === caml_float_compare(a[1 + i],x))return 1; - var i$0=i + 1 | 0,i=i$0; - continue}} - function mem_ieee(x,a) - {var n=a.length - 1,i=0; - for(;;) - {if(i === n)return 0; - if(x == a[1 + i])return 1; - var i$0=i + 1 | 0,i=i$0; - continue}} - var Bottom$0=[248,cst_Stdlib_Float_Array_Bottom,caml_fresh_oo_id(0)]; - function sort$0(cmp,a) - {function maxson(l,i) - {var i31=((i + i | 0) + i | 0) + 1 | 0,x=[0,i31]; - if((i31 + 2 | 0) < l) - {if - (caml_call2 - (cmp,caml_array_get(a,i31),caml_array_get(a,i31 + 1 | 0)) - < - 0) - x[1] = i31 + 1 | 0; - if - (caml_call2 - (cmp,caml_array_get(a,x[1]),caml_array_get(a,i31 + 2 | 0)) - < - 0) - x[1] = i31 + 2 | 0; - return x[1]} - if - ((i31 + 1 | 0) - < - l - && - ! - (0 - <= - caml_call2(cmp,caml_array_get(a,i31),caml_array_get(a,i31 + 1 | 0)))) - return i31 + 1 | 0; - if(i31 < l)return i31; - throw [0,Bottom$0,i]} - function trickledown(l,i,e) - {var i$0=i; - for(;;) - {var j=maxson(l,i$0); - if(0 < caml_call2(cmp,caml_array_get(a,j),e)) - {caml_array_set(a,i$0,caml_array_get(a,j));var i$0=j;continue} - return caml_array_set(a,i$0,e)}} - function trickle(l,i,e) - {try - {var _yw_=trickledown(l,i,e);return _yw_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] === Bottom$0) - {var i$0=exn[2];return caml_array_set(a,i$0,e)} - throw exn}} - function bubbledown(l,i) - {var i$0=i; - for(;;) - {var i$1=maxson(l,i$0); - caml_array_set(a,i$0,caml_array_get(a,i$1)); - var i$0=i$1; - continue}} - function bubble(l,i) - {try - {var _yv_=bubbledown(l,i);return _yv_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] === Bottom$0){var i$0=exn[2];return i$0} - throw exn}} - var l=a.length - 1,_yp_=((l + 1 | 0) / 3 | 0) - 1 | 0; - if(! (_yp_ < 0)) - {var i$2=_yp_; - for(;;) - {trickle(l,i$2,caml_array_get(a,i$2)); - var _yu_=i$2 - 1 | 0; - if(0 !== i$2){var i$2=_yu_;continue} - break}} - var _yq_=l - 1 | 0; - if(! (_yq_ < 2)) - {var i$0=_yq_; - a: - for(;;) - {var e$0=caml_array_get(a,i$0); - caml_array_set(a,i$0,caml_array_get(a,0)); - var i$1=bubble(i$0,0),i=i$1; - for(;;) - {var father=(i - 1 | 0) / 3 | 0; - if(i === father)throw [0,Assert_failure,_H_]; - if(0 <= caml_call2(cmp,caml_array_get(a,father),e$0)) - caml_array_set(a,i,e$0); - else - {caml_array_set(a,i,caml_array_get(a,father)); - if(0 < father){var i=father;continue} - caml_array_set(a,0,e$0)} - var _yt_=i$0 - 1 | 0; - if(2 !== i$0){var i$0=_yt_;continue a} - break} - break}} - var _yr_=1 < l?1:0; - if(_yr_) - {var e=caml_array_get(a,1); - caml_array_set(a,1,caml_array_get(a,0)); - var _ys_=caml_array_set(a,0,e)} - else - var _ys_=_yr_; - return _ys_} - function stable_sort(cmp,a) - {function merge(src1ofs,src1len,src2,src2ofs,src2len,dst,dstofs) - {var - src1r=src1ofs + src1len | 0, - src2r=src2ofs + src2len | 0, - s2$1=caml_array_get(src2,src2ofs), - s1$1=caml_array_get(a,src1ofs), - i1=src1ofs, - s1=s1$1, - i2=src2ofs, - s2=s2$1, - d=dstofs; - for(;;) - {if(0 < caml_call2(cmp,s1,s2)) - {caml_array_set(dst,d,s2); - var i2$0=i2 + 1 | 0; - if(i2$0 < src2r) - {var - d$0=d + 1 | 0, - s2$0=caml_array_get(src2,i2$0), - i2=i2$0, - s2=s2$0, - d=d$0; - continue} - return blit$2(a,i1,dst,d + 1 | 0,src1r - i1 | 0)} - caml_array_set(dst,d,s1); - var i1$0=i1 + 1 | 0; - if(i1$0 < src1r) - {var - d$1=d + 1 | 0, - s1$0=caml_array_get(a,i1$0), - i1=i1$0, - s1=s1$0, - d=d$1; - continue} - return blit$2(src2,i2,dst,d + 1 | 0,src2r - i2 | 0)}} - function isortto(srcofs,dst,dstofs,len) - {var _yn_=len - 1 | 0,_ym_=0; - if(! (_yn_ < 0)) - {var i=_ym_; - a: - for(;;) - {var - e=caml_array_get(a,srcofs + i | 0), - j=[0,(dstofs + i | 0) - 1 | 0]; - for(;;) - {if - (dstofs - <= - j[1] - && - 0 - < - caml_call2(cmp,caml_array_get(dst,j[1]),e)) - {caml_array_set(dst,j[1] + 1 | 0,caml_array_get(dst,j[1])); - j[1] += -1; - continue} - caml_array_set(dst,j[1] + 1 | 0,e); - var _yo_=i + 1 | 0; - if(_yn_ !== i){var i=_yo_;continue a} - break} - break}} - return 0} - function sortto(srcofs,dst,dstofs,len) - {if(len <= 5)return isortto(srcofs,dst,dstofs,len); - var l1=len / 2 | 0,l2=len - l1 | 0; - sortto(srcofs + l1 | 0,dst,dstofs + l1 | 0,l2); - sortto(srcofs,a,srcofs + l2 | 0,l1); - return merge(srcofs + l2 | 0,l1,dst,dstofs + l1 | 0,l2,dst,dstofs)} - var l=a.length - 1; - if(l <= 5)return isortto(0,a,0,l); - var l1=l / 2 | 0,l2=l - l1 | 0,t=caml_floatarray_create(l2); - sortto(l1,t,0,l2); - sortto(0,a,l2,l1); - return merge(l2,l1,t,0,l2,a,0)} - function to_seq$5(a) - {function aux(i,param) - {if(i < a.length - 1) - {var x=a[1 + i],_yk_=i + 1 | 0; - return [0,x,function(_yl_){return aux(_yk_,_yl_)}]} - return 0} - var _yi_=0; - return function(_yj_){return aux(_yi_,_yj_)}} - function to_seqi$2(a) - {function aux(i,param) - {if(i < a.length - 1) - {var x=a[1 + i],_yg_=i + 1 | 0; - return [0,[0,i,x],function(_yh_){return aux(_yg_,_yh_)}]} - return 0} - var _ye_=0; - return function(_yf_){return aux(_ye_,_yf_)}} - function of_seq$3(i$2) - {var - _yd_=0, - param$0=fold_left(function(acc,x){return [0,x,acc]},_yd_,i$2), - len=length$1(param$0), - a=caml_floatarray_create(len), - i$1=len - 1 | 0, - i=i$1, - param=param$0; - for(;;) - {if(param) - {var tl=param[2],hd=param[1]; - a[1 + i] = hd; - var i$0=i - 1 | 0,i=i$0,param=tl; - continue} - return a}} - function map_to_array(f,a) - {var l=a.length - 1; - if(0 === l)return [0]; - var r=caml_make_vect(l,caml_call1(f,a[1])),_yb_=l - 1 | 0,_ya_=1; - if(! (_yb_ < 1)) - {var i=_ya_; - for(;;) - {r[1 + i] = caml_call1(f,a[1 + i]); - var _yc_=i + 1 | 0; - if(_yb_ !== i){var i=_yc_;continue} - break}} - return r} - function map_from_array(f,a) - {var l=a.length - 1,r=caml_floatarray_create(l),_x__=l - 1 | 0,_x9_=0; - if(! (_x__ < 0)) - {var i=_x9_; - for(;;) - {r[1 + i] = caml_call1(f,a[1 + i]); - var _x$_=i + 1 | 0; - if(_x__ !== i){var i=_x$_;continue} - break}} - return r} - var - _I_=caml_floatarray_create, - _J_=caml_array_set, - _K_=caml_array_get, - _L_= - [0, - function(_x8_){return _x8_.length - 1}, - _K_, - _J_, - make$2, - _I_, - init$4, - append$2, - concat$3, - sub$2, - copy$2, - fill$1, - blit$2, - to_list$2, - of_list$0, - iter$6, - iteri$4, - map$8, - mapi$4, - fold_left$4, - fold_right$3, - iter2$2, - map2$2, - for_all$4, - exists$4, - mem$1, - mem_ieee, - sort$0, - stable_sort, - stable_sort, - to_seq$5, - to_seqi$2, - of_seq$3, - map_to_array, - map_from_array], - _M_=caml_floatarray_create, - _N_=caml_array_set, - _O_=caml_array_get, - Stdlib_Float= - [0, - zero$0, - one$0, - minus_one$0, - succ$0, - pred$0, - infinity, - neg_infinity, - nan, - pi, - max_float, - min_float, - epsilon, - is_finite, - is_infinite, - is_nan, - is_integer, - of_string_opt, - to_string, - caml_float_compare, - equal$11, - min$2, - max$2, - min_max, - min_num, - max_num, - min_max_num, - hash$0, - [0, - function(_x7_){return _x7_.length - 1}, - _O_, - _N_, - make$2, - _M_, - init$4, - append$2, - concat$3, - sub$2, - copy$2, - fill$1, - blit$2, - to_list$2, - of_list$0, - iter$6, - iteri$4, - map$8, - mapi$4, - fold_left$4, - fold_right$3, - iter2$2, - map2$2, - for_all$4, - exists$4, - mem$1, - mem_ieee, - sort$0, - stable_sort, - stable_sort, - to_seq$5, - to_seqi$2, - of_seq$3, - map_to_array, - map_from_array], - _L_]; - caml_register_global(795,Stdlib_Float,"Stdlib__Float"); - var zero$1=0,one$1=1,minus_one$1=-1; - function succ$1(n){return n + 1 | 0} - function pred$1(n){return n - 1 | 0} - function abs$1(n){return caml_greaterequal(n,0)?n:- n | 0} - var min_int$1=-2147483648,max_int$1=2147483647; - function lognot$0(n){return n ^ -1} - function unsigned_to_int(n) - {if - (! - (0 < caml_int_compare(0,n)) - && - ! - (0 < caml_int_compare(n,2147483647))) - return [0,n]; - return 0} - function to_string$3(n){return caml_format_int(cst_d,n)} - function of_string_opt$0(s) - {try - {var _x5_=[0,caml_int_of_string(s)];return _x5_} - catch(_x6_) - {_x6_ = caml_wrap_exception(_x6_); - if(_x6_[1] === Failure)return 0; - throw _x6_}} - function compare$11(x,y){return caml_int_compare(x,y)} - function equal$12(x,y){return 0 === caml_int_compare(x,y)?1:0} - function unsigned_compare(n,m) - {return caml_int_compare(n + 2147483648 | 0,m + 2147483648 | 0)} - function min$3(x,y){return caml_lessequal(x,y)?x:y} - function max$3(x,y){return caml_greaterequal(x,y)?x:y} - function unsigned_div(n,d) - {if(caml_lessthan(d,0))return 0 <= unsigned_compare(n,d)?one$1:zero$1; - var q=caml_div(n >>> 1 | 0,d) << 1,r=n - caml_mul(q,d) | 0; - return 0 <= unsigned_compare(r,d)?q + 1 | 0:q} - function unsigned_rem(n,d){return n - caml_mul(unsigned_div(n,d),d) | 0} - var - Stdlib_Int32= - [0, - zero$1, - one$1, - minus_one$1, - unsigned_div, - unsigned_rem, - succ$1, - pred$1, - abs$1, - max_int$1, - min_int$1, - lognot$0, - unsigned_to_int, - of_string_opt$0, - to_string$3, - compare$11, - unsigned_compare, - equal$12, - min$3, - max$3]; - caml_register_global(796,Stdlib_Int32,"Stdlib__Int32"); - function succ$2(n){return caml_int64_add(n,_P_)} - function pred$2(n){return caml_int64_sub(n,_Q_)} - function abs$2(n) - {return caml_greaterequal(n,_R_)?n:runtime.caml_int64_neg(n)} - function lognot$1(n){return runtime.caml_int64_xor(n,_S_)} - var max_int$3=caml_int64_of_int32(2147483647); - function unsigned_to_int$0(n) - {if - (! - (0 < caml_int64_compare(zero$2,n)) - && - ! - (0 < caml_int64_compare(n,max_int$3))) - return [0,runtime.caml_int64_to_int32(n)]; - return 0} - function to_string$4(n){return caml_int64_format(cst_d$0,n)} - function of_string_opt$1(s) - {try - {var _x3_=[0,caml_int64_of_string(s)];return _x3_} - catch(_x4_) - {_x4_ = caml_wrap_exception(_x4_); - if(_x4_[1] === Failure)return 0; - throw _x4_}} - function compare$12(x,y){return caml_int64_compare(x,y)} - function equal$13(x,y){return 0 === caml_int64_compare(x,y)?1:0} - function unsigned_compare$0(n,m) - {return caml_int64_compare - (caml_int64_sub(n,min_int$2),caml_int64_sub(m,min_int$2))} - function min$4(x,y){return caml_lessequal(x,y)?x:y} - function max$4(x,y){return caml_greaterequal(x,y)?x:y} - function unsigned_div$0(n,d) - {if(caml_lessthan(d,zero$2)) - return 0 <= unsigned_compare$0(n,d)?one$2:zero$2; - var - q= - caml_int64_shift_left - (runtime.caml_int64_div(caml_int64_shift_right_unsigne(n,1),d),1), - r=caml_int64_sub(n,caml_int64_mul(q,d)); - return 0 <= unsigned_compare$0(r,d)?succ$2(q):q} - function unsigned_rem$0(n,d) - {return caml_int64_sub(n,caml_int64_mul(unsigned_div$0(n,d),d))} - var - Stdlib_Int64= - [0, - zero$2, - one$2, - minus_one$2, - unsigned_div$0, - unsigned_rem$0, - succ$2, - pred$2, - abs$2, - max_int$2, - min_int$2, - lognot$1, - unsigned_to_int$0, - of_string_opt$1, - to_string$4, - compare$12, - unsigned_compare$0, - equal$13, - min$4, - max$4]; - caml_register_global(797,Stdlib_Int64,"Stdlib__Int64"); - var zero$3=0,one$3=1,minus_one$3=-1; - function succ$3(n){return n + 1 | 0} - function pred$3(n){return n - 1 | 0} - function abs$3(n){return caml_greaterequal(n,0)?n:- n | 0} - var min_int$3=-2147483648,max_int$4=2147483647; - function lognot$2(n){return n ^ -1} - function unsigned_to_int$1(n) - {if - (! - (0 < caml_int_compare(0,n)) - && - ! - (0 < caml_int_compare(n,2147483647))) - return [0,n]; - return 0} - function to_string$5(n){return caml_format_int(cst_d$1,n)} - function of_string_opt$2(s) - {try - {var _x1_=[0,caml_int_of_string(s)];return _x1_} - catch(_x2_) - {_x2_ = caml_wrap_exception(_x2_); - if(_x2_[1] === Failure)return 0; - throw _x2_}} - function compare$13(x,y){return caml_int_compare(x,y)} - function equal$14(x,y){return 0 === caml_int_compare(x,y)?1:0} - function unsigned_compare$1(n,m) - {return caml_int_compare(n + 2147483648 | 0,m + 2147483648 | 0)} - function min$5(x,y){return caml_lessequal(x,y)?x:y} - function max$5(x,y){return caml_greaterequal(x,y)?x:y} - function unsigned_div$1(n,d) - {if(caml_lessthan(d,0))return 0 <= unsigned_compare$1(n,d)?one$3:zero$3; - var q=caml_div(n >>> 1 | 0,d) << 1,r=n - caml_mul(q,d) | 0; - return 0 <= unsigned_compare$1(r,d)?q + 1 | 0:q} - function unsigned_rem$1(n,d) - {return n - caml_mul(unsigned_div$1(n,d),d) | 0} - var - Stdlib_Nativeint= - [0, - zero$3, - one$3, - minus_one$3, - unsigned_div$1, - unsigned_rem$1, - succ$3, - pred$3, - abs$3, - match$1, - max_int$4, - min_int$3, - lognot$2, - unsigned_to_int$1, - of_string_opt$2, - to_string$5, - compare$13, - unsigned_compare$1, - equal$14, - min$5, - max$5]; - caml_register_global(798,Stdlib_Nativeint,"Stdlib__Nativeint"); - function engine(tbl,state,buf) - {var - result=runtime.caml_lex_engine(tbl,state,buf), - _xY_=0 <= result?1:0, - _xZ_=_xY_?buf[12] !== dummy_pos?1:0:_xY_; - if(_xZ_) - {buf[11] = buf[12]; - var _x0_=buf[12]; - buf[12] = [0,_x0_[1],_x0_[2],_x0_[3],buf[4] + buf[6] | 0]} - return result} - function new_engine(tbl,state,buf) - {var - result=runtime.caml_new_lex_engine(tbl,state,buf), - _xV_=0 <= result?1:0, - _xW_=_xV_?buf[12] !== dummy_pos?1:0:_xV_; - if(_xW_) - {buf[11] = buf[12]; - var _xX_=buf[12]; - buf[12] = [0,_xX_[1],_xX_[2],_xX_[3],buf[4] + buf[6] | 0]} - return result} - function from_function(opt,f) - {if(opt)var sth=opt[1],with_positions=sth;else var with_positions=1; - var - _xH_=with_positions?zero_pos:dummy_pos, - _xI_=with_positions?zero_pos:dummy_pos, - aux_buffer=caml_create_bytes(512), - _xJ_=[0], - _xK_=0, - _xL_=0, - _xM_=0, - _xN_=0, - _xO_=0, - _xP_=0, - _xQ_=0, - _xR_=caml_create_bytes(1024); - return [0, - function(lexbuf) - {var - read= - caml_call2(f,aux_buffer,caml_ml_bytes_length(aux_buffer)), - n=0 < read?read:(lexbuf[9] = 1,0); - if(caml_ml_bytes_length(lexbuf[2]) < (lexbuf[3] + n | 0)) - {if - (((lexbuf[3] - lexbuf[5] | 0) + n | 0) - <= - caml_ml_bytes_length(lexbuf[2])) - blit - (lexbuf[2],lexbuf[5],lexbuf[2],0,lexbuf[3] - lexbuf[5] | 0); - else - {var - newlen= - min$1 - (2 * caml_ml_bytes_length(lexbuf[2]) | 0,max_string_length); - if(newlen < ((lexbuf[3] - lexbuf[5] | 0) + n | 0)) - failwith(cst_Lexing_lex_refill_cannot_g); - var newbuf=caml_create_bytes(newlen); - blit(lexbuf[2],lexbuf[5],newbuf,0,lexbuf[3] - lexbuf[5] | 0); - lexbuf[2] = newbuf} - var s=lexbuf[5]; - lexbuf[4] = lexbuf[4] + s | 0; - lexbuf[6] = lexbuf[6] - s | 0; - lexbuf[5] = 0; - lexbuf[7] = lexbuf[7] - s | 0; - lexbuf[3] = lexbuf[3] - s | 0; - var t=lexbuf[10],_xT_=t.length - 1 - 1 | 0,_xS_=0; - if(! (_xT_ < 0)) - {var i=_xS_; - for(;;) - {var v=caml_check_bound(t,i)[1 + i]; - if(0 <= v)caml_check_bound(t,i)[1 + i] = v - s | 0; - var _xU_=i + 1 | 0; - if(_xT_ !== i){var i=_xU_;continue} - break}}} - blit(aux_buffer,0,lexbuf[2],lexbuf[3],n); - lexbuf[3] = lexbuf[3] + n | 0; - return 0}, - _xR_, - _xQ_, - _xP_, - _xO_, - _xN_, - _xM_, - _xL_, - _xK_, - _xJ_, - _xI_, - _xH_]} - function from_channel(with_positions,ic) - {return from_function - (with_positions,function(buf,n){return input(ic,buf,0,n)})} - function from_string$0(opt,s) - {if(opt)var sth=opt[1],with_positions=sth;else var with_positions=1; - var - _xw_=with_positions?zero_pos:dummy_pos, - _xx_=with_positions?zero_pos:dummy_pos, - _xy_=[0], - _xz_=1, - _xA_=0, - _xB_=0, - _xC_=0, - _xD_=0, - _xE_=0, - _xF_=caml_ml_string_length(s), - _xG_=to_bytes(s); - return [0, - function(lexbuf){lexbuf[9] = 1;return 0}, - _xG_, - _xF_, - _xE_, - _xD_, - _xC_, - _xB_, - _xA_, - _xz_, - _xy_, - _xx_, - _xw_]} - function set_position(lexbuf,position) - {lexbuf[12] = [0,lexbuf[12][1],position[2],position[3],position[4]]; - lexbuf[4] = position[4]; - return 0} - function set_filename(lexbuf,fname) - {var _xv_=lexbuf[12]; - lexbuf[12] = [0,fname,_xv_[2],_xv_[3],_xv_[4]]; - return 0} - function with_positions(lexbuf){return lexbuf[12] !== dummy_pos?1:0} - function lexeme(lexbuf) - {var len=lexbuf[6] - lexbuf[5] | 0; - return sub_string(lexbuf[2],lexbuf[5],len)} - function sub_lexeme(lexbuf,i1,i2) - {var len=i2 - i1 | 0;return sub_string(lexbuf[2],i1,len)} - function sub_lexeme_opt(lexbuf,i1,i2) - {if(0 <= i1){var len=i2 - i1 | 0;return [0,sub_string(lexbuf[2],i1,len)]} - return 0} - function sub_lexeme_char(lexbuf,i){return caml_bytes_get(lexbuf[2],i)} - function sub_lexeme_char_opt(lexbuf,i) - {return 0 <= i?[0,caml_bytes_get(lexbuf[2],i)]:0} - function lexeme_char(lexbuf,i) - {return caml_bytes_get(lexbuf[2],lexbuf[5] + i | 0)} - function lexeme_start(lexbuf){return lexbuf[11][4]} - function lexeme_end(lexbuf){return lexbuf[12][4]} - function lexeme_start_p(lexbuf){return lexbuf[11]} - function lexeme_end_p(lexbuf){return lexbuf[12]} - function new_line(lexbuf) - {var - lcp=lexbuf[12], - _xt_=lcp !== dummy_pos?1:0, - _xu_=_xt_?(lexbuf[12] = [0,lcp[1],lcp[2] + 1 | 0,lcp[4],lcp[4]],0):_xt_; - return _xu_} - function flush_input(lb) - {lb[6] = 0; - lb[4] = 0; - var lcp=lb[12]; - if(lcp !== dummy_pos) - lb[12] = [0,lcp[1],zero_pos[2],zero_pos[3],zero_pos[4]]; - lb[3] = 0; - return 0} - var - Stdlib_Lexing= - [0, - dummy_pos, - from_channel, - from_string$0, - from_function, - set_position, - set_filename, - with_positions, - lexeme, - lexeme_char, - lexeme_start, - lexeme_end, - lexeme_start_p, - lexeme_end_p, - new_line, - flush_input, - sub_lexeme, - sub_lexeme_opt, - sub_lexeme_char, - sub_lexeme_char_opt, - engine, - new_engine]; - caml_register_global(799,Stdlib_Lexing,"Stdlib__Lexing"); - var - YYexit=[248,cst_Stdlib_Parsing_YYexit,caml_fresh_oo_id(0)], - Parse_error=[248,cst_Stdlib_Parsing_Parse_error,caml_fresh_oo_id(0)], - env= - [0, - caml_make_vect(100,0), - caml_make_vect(100,0), - caml_make_vect(100,dummy_pos), - caml_make_vect(100,dummy_pos), - 100, - 0, - 0, - 0, - dummy_pos, - dummy_pos, - 0, - 0, - 0, - 0, - 0, - 0]; - function grow_stacks(param) - {var - oldsize=env[5], - newsize=oldsize * 2 | 0, - new_s=caml_make_vect(newsize,0), - new_v=caml_make_vect(newsize,0), - new_start=caml_make_vect(newsize,dummy_pos), - new_end=caml_make_vect(newsize,dummy_pos); - blit$1(env[1],0,new_s,0,oldsize); - env[1] = new_s; - blit$1(env[2],0,new_v,0,oldsize); - env[2] = new_v; - blit$1(env[3],0,new_start,0,oldsize); - env[3] = new_start; - blit$1(env[4],0,new_end,0,oldsize); - env[4] = new_end; - env[5] = newsize; - return 0} - function clear_parser(param) - {fill$0(env[2],0,env[5],0);env[8] = 0;return 0} - var current_lookahead_fun=[0,function(param){return 0}]; - function yyparse(tables,start,lexer,lexbuf) - {var - init_asp=env[11], - init_sp=env[14], - init_stackbase=env[6], - init_state=env[15], - init_curr_char=env[7], - init_lval=env[8], - init_errflag=env[16]; - env[6] = env[14] + 1 | 0; - env[7] = start; - env[10] = lexbuf[12]; - try - {var cmd=0,arg=0; - for(;;) - {var match=runtime.caml_parse_engine(tables,env,cmd,arg); - switch(match) - {case 0: - var arg$0=caml_call1(lexer,lexbuf); - env[9] = lexbuf[11]; - env[10] = lexbuf[12]; - var cmd=1,arg=arg$0; - continue; - case 1:throw Parse_error; - case 2:grow_stacks(0);var cmd=2,arg=0;continue; - case 3:grow_stacks(0);var cmd=3,arg=0;continue; - case 4: - try - {var - _xn_=env[13], - _xo_= - caml_call1(caml_check_bound(tables[1],_xn_)[1 + _xn_],env), - _xp_=4, - arg$1=_xo_, - cmd$0=_xp_} - catch(_xs_) - {_xs_ = caml_wrap_exception(_xs_); - if(_xs_ !== Parse_error)throw _xs_; - var arg$1=0,cmd$0=5,_xq_=_xs_} - var cmd=cmd$0,arg=arg$1; - continue; - default: - caml_call1(tables[14],cst_syntax_error);var cmd=5,arg=0;continue}}} - catch(exn) - {exn = caml_wrap_exception(exn); - var curr_char=env[7]; - env[11] = init_asp; - env[14] = init_sp; - env[6] = init_stackbase; - env[15] = init_state; - env[7] = init_curr_char; - env[8] = init_lval; - env[16] = init_errflag; - if(exn[1] === YYexit){var v=exn[2];return v} - current_lookahead_fun[1] - = - function(tok) - {if(is_block(tok)) - {var _xr_=caml_obj_tag(tok); - return caml_check_bound(tables[3],_xr_)[1 + _xr_] === curr_char - ?1 - :0} - return caml_check_bound(tables[2],tok)[1 + tok] === curr_char?1:0}; - throw exn}} - function peek_val(env,n) - {var _xm_=env[11] - n | 0;return caml_check_bound(env[2],_xm_)[1 + _xm_]} - function symbol_start_pos(param) - {var i=env[12]; - for(;;) - {if(0 < i) - {var - _xj_=(env[11] - i | 0) + 1 | 0, - st=caml_check_bound(env[3],_xj_)[1 + _xj_], - _xk_=(env[11] - i | 0) + 1 | 0, - en=caml_check_bound(env[4],_xk_)[1 + _xk_]; - if(caml_notequal(st,en))return st; - var i$0=i - 1 | 0,i=i$0; - continue} - var _xl_=env[11]; - return caml_check_bound(env[4],_xl_)[1 + _xl_]}} - function symbol_end_pos(param) - {var _xi_=env[11];return caml_check_bound(env[4],_xi_)[1 + _xi_]} - function rhs_start_pos(n) - {var _xh_=env[11] - (env[12] - n | 0) | 0; - return caml_check_bound(env[3],_xh_)[1 + _xh_]} - function rhs_end_pos(n) - {var _xg_=env[11] - (env[12] - n | 0) | 0; - return caml_check_bound(env[4],_xg_)[1 + _xg_]} - function symbol_start(param){return symbol_start_pos(0)[4]} - function symbol_end(param){return symbol_end_pos(0)[4]} - function rhs_start(n){return rhs_start_pos(n)[4]} - function rhs_end(n){return rhs_end_pos(n)[4]} - function is_current_lookahead(tok) - {return caml_call1(current_lookahead_fun[1],tok)} - function parse_error(param){return 0} - var - Stdlib_Parsing= - [0, - symbol_start, - symbol_end, - rhs_start, - rhs_end, - symbol_start_pos, - symbol_end_pos, - rhs_start_pos, - rhs_end_pos, - clear_parser, - Parse_error, - runtime.caml_set_parser_trace, - YYexit, - yyparse, - peek_val, - is_current_lookahead, - parse_error]; - caml_register_global(800,Stdlib_Parsing,"Stdlib__Parsing"); - var - Stdlib_Set= - [0, - function(Ord) - {function height(param){if(param){var h=param[4];return h}return 0} - function create(l,v,r) - {if(l)var h=l[4],hl=h;else var hl=0; - if(r)var h$0=r[4],hr=h$0;else var hr=0; - var _xf_=hr <= hl?hl + 1 | 0:hr + 1 | 0; - return [0,l,v,r,_xf_]} - function bal(l,v,r) - {if(l)var h=l[4],hl=h;else var hl=0; - if(r)var h$0=r[4],hr=h$0;else var hr=0; - if((hr + 2 | 0) < hl) - {if(l) - {var lr=l[3],lv=l[2],ll=l[1],_xa_=height(lr); - if(_xa_ <= height(ll))return create(ll,lv,create(lr,v,r)); - if(lr) - {var lrr=lr[3],lrv=lr[2],lrl=lr[1],_xb_=create(lrr,v,r); - return create(create(ll,lv,lrl),lrv,_xb_)} - return invalid_arg(cst_Set_bal)} - return invalid_arg(cst_Set_bal$0)} - if((hl + 2 | 0) < hr) - {if(r) - {var rr=r[3],rv=r[2],rl=r[1],_xc_=height(rl); - if(_xc_ <= height(rr))return create(create(l,v,rl),rv,rr); - if(rl) - {var rlr=rl[3],rlv=rl[2],rll=rl[1],_xd_=create(rlr,rv,rr); - return create(create(l,v,rll),rlv,_xd_)} - return invalid_arg(cst_Set_bal$1)} - return invalid_arg(cst_Set_bal$2)} - var _xe_=hr <= hl?hl + 1 | 0:hr + 1 | 0; - return [0,l,v,r,_xe_]} - function add(x,t) - {if(t) - {var r=t[3],v=t[2],l=t[1],c=caml_call2(Ord[1],x,v); - if(0 === c)return t; - if(0 <= c){var rr=add(x,r);return r === rr?t:bal(l,v,rr)} - var ll=add(x,l); - return l === ll?t:bal(ll,v,r)} - return [0,0,x,0,1]} - function singleton(x){return [0,0,x,0,1]} - function add_min_element(x,param) - {if(param) - {var r=param[3],v=param[2],l=param[1]; - return bal(add_min_element(x,l),v,r)} - return singleton(x)} - function add_max_element(x,param) - {if(param) - {var r=param[3],v=param[2],l=param[1]; - return bal(l,v,add_max_element(x,r))} - return singleton(x)} - function join(l,v,r) - {if(l) - {if(r) - {var - rh=r[4], - rr=r[3], - rv=r[2], - rl=r[1], - lh=l[4], - lr=l[3], - lv=l[2], - ll=l[1]; - return (rh + 2 | 0) < lh - ?bal(ll,lv,join(lr,v,r)) - :(lh + 2 | 0) < rh?bal(join(l,v,rl),rv,rr):create(l,v,r)} - return add_max_element(v,l)} - return add_min_element(v,r)} - function min_elt(param) - {var param$0=param; - for(;;) - {if(param$0) - {var _w$_=param$0[1]; - if(_w$_){var param$0=_w$_;continue} - var v=param$0[2]; - return v} - throw Not_found}} - function min_elt_opt(param) - {var param$0=param; - for(;;) - {if(param$0) - {var _w__=param$0[1]; - if(_w__){var param$0=_w__;continue} - var v=param$0[2]; - return [0,v]} - return 0}} - function max_elt(param) - {var param$0=param; - for(;;) - {if(param$0) - {if(param$0[3]){var param$1=param$0[3],param$0=param$1;continue} - var v=param$0[2]; - return v} - throw Not_found}} - function max_elt_opt(param) - {var param$0=param; - for(;;) - {if(param$0) - {if(param$0[3]){var param$1=param$0[3],param$0=param$1;continue} - var v=param$0[2]; - return [0,v]} - return 0}} - function remove_min_elt(param) - {if(param) - {var _w9_=param[1]; - if(_w9_) - {var r=param[3],v=param[2];return bal(remove_min_elt(_w9_),v,r)} - var r$0=param[3]; - return r$0} - return invalid_arg(cst_Set_remove_min_elt)} - function concat(t1,t2) - {if(t1) - {if(t2) - {var _w8_=remove_min_elt(t2);return join(t1,min_elt(t2),_w8_)} - return t1} - return t2} - function split(x,param) - {if(param) - {var r=param[3],v=param[2],l=param[1],c=caml_call2(Ord[1],x,v); - if(0 === c)return [0,l,1,r]; - if(0 <= c) - {var match=split(x,r),rr=match[3],pres=match[2],lr=match[1]; - return [0,join(l,v,lr),pres,rr]} - var - match$0=split(x,l), - rl=match$0[3], - pres$0=match$0[2], - ll=match$0[1]; - return [0,ll,pres$0,join(rl,v,r)]} - return _T_} - var empty=0; - function is_empty(param){return param?0:1} - function mem(x,param) - {var param$0=param; - for(;;) - {if(param$0) - {var - r=param$0[3], - v=param$0[2], - l=param$0[1], - c=caml_call2(Ord[1],x,v), - _w7_=0 === c?1:0; - if(_w7_)return _w7_; - var param$1=0 <= c?r:l,param$0=param$1; - continue} - return 0}} - function remove(x,t) - {if(t) - {var r=t[3],v=t[2],l=t[1],c=caml_call2(Ord[1],x,v); - if(0 === c) - {if(l) - {if(r) - {var _w6_=remove_min_elt(r);return bal(l,min_elt(r),_w6_)} - return l} - return r} - if(0 <= c){var rr=remove(x,r);return r === rr?t:bal(l,v,rr)} - var ll=remove(x,l); - return l === ll?t:bal(ll,v,r)} - return 0} - function union(s1,s2) - {if(s1) - {if(s2) - {var - h2=s2[4], - r2=s2[3], - v2=s2[2], - l2=s2[1], - h1=s1[4], - r1=s1[3], - v1=s1[2], - l1=s1[1]; - if(h2 <= h1) - {if(1 === h2)return add(v2,s1); - var - match=split(v1,s2), - r2$0=match[3], - l2$0=match[1], - _w4_=union(r1,r2$0); - return join(union(l1,l2$0),v1,_w4_)} - if(1 === h1)return add(v1,s2); - var - match$0=split(v2,s1), - r1$0=match$0[3], - l1$0=match$0[1], - _w5_=union(r1$0,r2); - return join(union(l1$0,l2),v2,_w5_)} - return s1} - return s2} - function inter(s1,s2) - {if(s1) - {if(s2) - {var r1=s1[3],v1=s1[2],l1=s1[1],_w0_=split(v1,s2),_w1_=_w0_[1]; - if(_w0_[2]) - {var r2=_w0_[3],_w2_=inter(r1,r2); - return join(inter(l1,_w1_),v1,_w2_)} - var r2$0=_w0_[3],_w3_=inter(r1,r2$0); - return concat(inter(l1,_w1_),_w3_)} - return 0} - return 0} - function split_bis(x,param) - {if(param) - {var r=param[3],v=param[2],l=param[1],c=caml_call2(Ord[1],x,v); - if(0 === c)return 0; - if(0 <= c) - {var match=split_bis(x,r); - if(match) - {var rr=match[2],lr=match[1];return [0,join(l,v,lr),rr]} - return 0} - var match$0=split_bis(x,l); - if(match$0) - {var rl=match$0[2],ll=match$0[1]; - return [0, - ll, - function(param){return join(caml_call1(rl,0),v,r)}]} - return 0} - return [0,0,function(param){return 0}]} - function disjoint(s1,s2) - {var s1$0=s1,s2$0=s2; - for(;;) - {if(s1$0 && s2$0) - {var r1=s1$0[3],v1=s1$0[2],l1=s1$0[1]; - if(s1$0 === s2$0)return 0; - var match=split_bis(v1,s2$0); - if(match) - {var r2=match[2],l2=match[1],_wZ_=disjoint(l1,l2); - if(_wZ_) - {var s2$1=caml_call1(r2,0),s1$0=r1,s2$0=s2$1;continue} - return _wZ_} - return 0} - return 1}} - function diff(s1,s2) - {if(s1) - {if(s2) - {var r1=s1[3],v1=s1[2],l1=s1[1],_wV_=split(v1,s2),_wW_=_wV_[1]; - if(_wV_[2]) - {var r2=_wV_[3],_wX_=diff(r1,r2); - return concat(diff(l1,_wW_),_wX_)} - var r2$0=_wV_[3],_wY_=diff(r1,r2$0); - return join(diff(l1,_wW_),v1,_wY_)} - return s1} - return 0} - function cons_enum(s,e) - {var s$0=s,e$0=e; - for(;;) - {if(s$0) - {var - r=s$0[3], - v=s$0[2], - s$1=s$0[1], - e$1=[0,v,r,e$0], - s$0=s$1, - e$0=e$1; - continue} - return e$0}} - function compare(s1,s2) - {var e2$2=cons_enum(s2,0),e1$2=cons_enum(s1,0),e1=e1$2,e2=e2$2; - for(;;) - {if(e1) - {if(e2) - {var - e2$0=e2[3], - r2=e2[2], - v2=e2[1], - e1$0=e1[3], - r1=e1[2], - v1=e1[1], - c=caml_call2(Ord[1],v1,v2); - if(0 === c) - {var - e2$1=cons_enum(r2,e2$0), - e1$1=cons_enum(r1,e1$0), - e1=e1$1, - e2=e2$1; - continue} - return c} - return 1} - return e2?-1:0}} - function equal(s1,s2){return 0 === compare(s1,s2)?1:0} - function subset(s1,s2) - {var s1$0=s1,s2$0=s2; - for(;;) - {if(s1$0) - {if(s2$0) - {var - r2=s2$0[3], - v2=s2$0[2], - l2=s2$0[1], - r1=s1$0[3], - v1=s1$0[2], - l1=s1$0[1], - c=caml_call2(Ord[1],v1,v2); - if(0 === c) - {var _wS_=subset(l1,l2); - if(_wS_){var s1$0=r1,s2$0=r2;continue} - return _wS_} - if(0 <= c) - {var _wT_=subset([0,0,v1,r1,0],r2); - if(_wT_){var s1$0=l1;continue} - return _wT_} - var _wU_=subset([0,l1,v1,0,0],l2); - if(_wU_){var s1$0=r1;continue} - return _wU_} - return 0} - return 1}} - function iter(f,param) - {var param$0=param; - for(;;) - {if(param$0) - {var r=param$0[3],v=param$0[2],l=param$0[1]; - iter(f,l); - caml_call1(f,v); - var param$0=r; - continue} - return 0}} - function fold(f,s,accu) - {var s$0=s,accu$0=accu; - for(;;) - {if(s$0) - {var - r=s$0[3], - v=s$0[2], - l=s$0[1], - accu$1=caml_call2(f,v,fold(f,l,accu$0)), - s$0=r, - accu$0=accu$1; - continue} - return accu$0}} - function for_all(p,param) - {var param$0=param; - for(;;) - {if(param$0) - {var - r=param$0[3], - v=param$0[2], - l=param$0[1], - _wP_=caml_call1(p,v); - if(_wP_) - {var _wQ_=for_all(p,l); - if(_wQ_){var param$0=r;continue} - var _wR_=_wQ_} - else - var _wR_=_wP_; - return _wR_} - return 1}} - function exists(p,param) - {var param$0=param; - for(;;) - {if(param$0) - {var - r=param$0[3], - v=param$0[2], - l=param$0[1], - _wM_=caml_call1(p,v); - if(_wM_) - var _wN_=_wM_; - else - {var _wO_=exists(p,l); - if(! _wO_){var param$0=r;continue} - var _wN_=_wO_} - return _wN_} - return 0}} - function filter(p,t) - {if(t) - {var - r=t[3], - v=t[2], - l=t[1], - l$0=filter(p,l), - pv=caml_call1(p,v), - r$0=filter(p,r); - if(pv){if(l === l$0 && r === r$0)return t;return join(l$0,v,r$0)} - return concat(l$0,r$0)} - return 0} - function partition(p,param) - {if(param) - {var - r=param[3], - v=param[2], - l=param[1], - match=partition(p,l), - lf=match[2], - lt=match[1], - pv=caml_call1(p,v), - match$0=partition(p,r), - rf=match$0[2], - rt=match$0[1]; - if(pv){var _wK_=concat(lf,rf);return [0,join(lt,v,rt),_wK_]} - var _wL_=join(lf,v,rf); - return [0,concat(lt,rt),_wL_]} - return _U_} - function cardinal(param) - {if(param) - {var r=param[3],l=param[1],_wJ_=cardinal(r); - return (cardinal(l) + 1 | 0) + _wJ_ | 0} - return 0} - function elements_aux(accu,param) - {var accu$0=accu,param$0=param; - for(;;) - {if(param$0) - {var - r=param$0[3], - v=param$0[2], - l=param$0[1], - accu$1=[0,v,elements_aux(accu$0,r)], - accu$0=accu$1, - param$0=l; - continue} - return accu$0}} - function elements(s){return elements_aux(0,s)} - function find(x,param) - {var param$0=param; - for(;;) - {if(param$0) - {var - r=param$0[3], - v=param$0[2], - l=param$0[1], - c=caml_call2(Ord[1],x,v); - if(0 === c)return v; - var param$1=0 <= c?r:l,param$0=param$1; - continue} - throw Not_found}} - function find_first(f,param$0) - {var param$1=param$0; - for(;;) - {if(param$1) - {var r$0=param$1[3],v$0=param$1[2],l$0=param$1[1]; - if(caml_call1(f,v$0)) - {var v0=v$0,param=l$0; - for(;;) - {if(param) - {var r=param[3],v=param[2],l=param[1]; - if(caml_call1(f,v)){var v0=v,param=l;continue} - var param=r; - continue} - return v0}} - var param$1=r$0; - continue} - throw Not_found}} - function find_first_opt(f,param$0) - {var param$1=param$0; - for(;;) - {if(param$1) - {var r$0=param$1[3],v$0=param$1[2],l$0=param$1[1]; - if(caml_call1(f,v$0)) - {var v0=v$0,param=l$0; - for(;;) - {if(param) - {var r=param[3],v=param[2],l=param[1]; - if(caml_call1(f,v)){var v0=v,param=l;continue} - var param=r; - continue} - return [0,v0]}} - var param$1=r$0; - continue} - return 0}} - function find_last(f,param$0) - {var param$1=param$0; - for(;;) - {if(param$1) - {var r$0=param$1[3],v$0=param$1[2],l$0=param$1[1]; - if(caml_call1(f,v$0)) - {var v0=v$0,param=r$0; - for(;;) - {if(param) - {var r=param[3],v=param[2],l=param[1]; - if(caml_call1(f,v)){var v0=v,param=r;continue} - var param=l; - continue} - return v0}} - var param$1=l$0; - continue} - throw Not_found}} - function find_last_opt(f,param$0) - {var param$1=param$0; - for(;;) - {if(param$1) - {var r$0=param$1[3],v$0=param$1[2],l$0=param$1[1]; - if(caml_call1(f,v$0)) - {var v0=v$0,param=r$0; - for(;;) - {if(param) - {var r=param[3],v=param[2],l=param[1]; - if(caml_call1(f,v)){var v0=v,param=r;continue} - var param=l; - continue} - return [0,v0]}} - var param$1=l$0; - continue} - return 0}} - function find_opt(x,param) - {var param$0=param; - for(;;) - {if(param$0) - {var - r=param$0[3], - v=param$0[2], - l=param$0[1], - c=caml_call2(Ord[1],x,v); - if(0 === c)return [0,v]; - var param$1=0 <= c?r:l,param$0=param$1; - continue} - return 0}} - function try_join(l,v,r) - {var switch$0=0; - if(0 !== l) - {var _wI_=max_elt(l); - if(0 <= caml_call2(Ord[1],_wI_,v))switch$0 = 1} - if(! switch$0) - {var switch$1=0; - if(0 !== r) - {var _wH_=min_elt(r); - if(0 <= caml_call2(Ord[1],v,_wH_))switch$1 = 1} - if(! switch$1)return join(l,v,r)} - return union(l,add(v,r))} - function map(f,t) - {if(t) - {var - r=t[3], - v=t[2], - l=t[1], - l$0=map(f,l), - v$0=caml_call1(f,v), - r$0=map(f,r); - if(l === l$0 && v === v$0 && r === r$0)return t; - return try_join(l$0,v$0,r$0)} - return 0} - function filter_map(f,t) - {if(t) - {var - r=t[3], - v=t[2], - l=t[1], - t1=filter_map(f,l), - v$0=caml_call1(f,v), - t2=filter_map(f,r); - if(v$0) - {var v$1=v$0[1]; - if(l === t1 && v === v$1 && r === t2)return t; - return try_join(t1,v$1,t2)} - if(t1) - {if(t2) - {var _wG_=remove_min_elt(t2); - return try_join(t1,min_elt(t2),_wG_)} - return t1} - return t2} - return 0} - function of_list(l) - {if(l) - {var _wv_=l[2],_ww_=l[1]; - if(_wv_) - {var _wx_=_wv_[2],_wy_=_wv_[1]; - if(_wx_) - {var _wz_=_wx_[2],_wA_=_wx_[1]; - if(_wz_) - {var _wB_=_wz_[2],_wC_=_wz_[1]; - if(_wB_) - {if(_wB_[2]) - {var - l$0=sort_uniq(Ord[1],l), - sub= - function(n,l) - {if(! (3 < n >>> 0)) - switch(n) - {case 0:return [0,0,l]; - case 1: - if(l){var l$3=l[2],x0=l[1];return [0,[0,0,x0,0,1],l$3]} - break; - case 2: - if(l) - {var _wD_=l[2]; - if(_wD_) - {var l$4=_wD_[2],x1=_wD_[1],x0$0=l[1]; - return [0,[0,[0,0,x0$0,0,1],x1,0,2],l$4]}} - break; - default: - if(l) - {var _wE_=l[2]; - if(_wE_) - {var _wF_=_wE_[2]; - if(_wF_) - {var l$5=_wF_[2],x2=_wF_[1],x1$0=_wE_[1],x0$1=l[1]; - return [0,[0,[0,0,x0$1,0,1],x1$0,[0,0,x2,0,1],2],l$5]}}}} - var nl=n / 2 | 0,match=sub(nl,l),l$0=match[2],left=match[1]; - if(l$0) - {var - l$1=l$0[2], - mid=l$0[1], - match$0=sub((n - nl | 0) - 1 | 0,l$1), - l$2=match$0[2], - right=match$0[1]; - return [0,create(left,mid,right),l$2]} - throw [0,Assert_failure,_V_]}; - return sub(length$1(l$0),l$0)[1]} - var x4=_wB_[1]; - return add(x4,add(_wC_,add(_wA_,add(_wy_,singleton(_ww_)))))} - return add(_wC_,add(_wA_,add(_wy_,singleton(_ww_))))} - return add(_wA_,add(_wy_,singleton(_ww_)))} - return add(_wy_,singleton(_ww_))} - return singleton(_ww_)} - return empty} - function add_seq(i,m) - {return fold_left(function(s,x){return add(x,s)},m,i)} - function of_seq(i){return add_seq(i,empty)} - function seq_of_enum(c,param) - {if(c) - {var rest=c[3],t=c[2],x=c[1],_wt_=cons_enum(t,rest); - return [0,x,function(_wu_){return seq_of_enum(_wt_,_wu_)}]} - return 0} - function to_seq(c) - {var _wr_=cons_enum(c,0); - return function(_ws_){return seq_of_enum(_wr_,_ws_)}} - function snoc_enum(s,e) - {var s$0=s,e$0=e; - for(;;) - {if(s$0) - {var - s$1=s$0[3], - v=s$0[2], - l=s$0[1], - e$1=[0,v,l,e$0], - s$0=s$1, - e$0=e$1; - continue} - return e$0}} - function rev_seq_of_enum(c,param) - {if(c) - {var rest=c[3],t=c[2],x=c[1],_wp_=snoc_enum(t,rest); - return [0,x,function(_wq_){return rev_seq_of_enum(_wp_,_wq_)}]} - return 0} - function to_rev_seq(c) - {var _wn_=snoc_enum(c,0); - return function(_wo_){return rev_seq_of_enum(_wn_,_wo_)}} - function to_seq_from(low,s) - {var s$0=s,c=0; - for(;;) - {if(s$0) - {var r=s$0[3],v=s$0[2],l=s$0[1],n=caml_call2(Ord[1],v,low); - if(0 !== n) - {if(0 <= n){var c$0=[0,v,r,c],s$0=l,c=c$0;continue} - var s$0=r; - continue} - var _wl_=[0,v,r,c]} - else - var _wl_=c; - return function(_wm_){return seq_of_enum(_wl_,_wm_)}}} - return [0, - empty, - is_empty, - mem, - add, - singleton, - remove, - union, - inter, - disjoint, - diff, - compare, - equal, - subset, - iter, - map, - fold, - for_all, - exists, - filter, - filter_map, - partition, - cardinal, - elements, - min_elt, - min_elt_opt, - max_elt, - max_elt_opt, - min_elt, - min_elt_opt, - split, - find, - find_opt, - find_first, - find_first_opt, - find_last, - find_last_opt, - of_list, - to_seq_from, - to_seq, - to_rev_seq, - add_seq, - of_seq]}]; - caml_register_global(801,Stdlib_Set,"Stdlib__Set"); - var - Stdlib_Map= - [0, - function(Ord) - {function height(param){if(param){var h=param[5];return h}return 0} - function create(l,x,d,r) - {var hl=height(l),hr=height(r),_wk_=hr <= hl?hl + 1 | 0:hr + 1 | 0; - return [0,l,x,d,r,_wk_]} - function singleton(x,d){return [0,0,x,d,0,1]} - function bal(l,x,d,r) - {if(l)var h=l[5],hl=h;else var hl=0; - if(r)var h$0=r[5],hr=h$0;else var hr=0; - if((hr + 2 | 0) < hl) - {if(l) - {var lr=l[4],ld=l[3],lv=l[2],ll=l[1],_wf_=height(lr); - if(_wf_ <= height(ll))return create(ll,lv,ld,create(lr,x,d,r)); - if(lr) - {var - lrr=lr[4], - lrd=lr[3], - lrv=lr[2], - lrl=lr[1], - _wg_=create(lrr,x,d,r); - return create(create(ll,lv,ld,lrl),lrv,lrd,_wg_)} - return invalid_arg(cst_Map_bal)} - return invalid_arg(cst_Map_bal$0)} - if((hl + 2 | 0) < hr) - {if(r) - {var rr=r[4],rd=r[3],rv=r[2],rl=r[1],_wh_=height(rl); - if(_wh_ <= height(rr))return create(create(l,x,d,rl),rv,rd,rr); - if(rl) - {var - rlr=rl[4], - rld=rl[3], - rlv=rl[2], - rll=rl[1], - _wi_=create(rlr,rv,rd,rr); - return create(create(l,x,d,rll),rlv,rld,_wi_)} - return invalid_arg(cst_Map_bal$1)} - return invalid_arg(cst_Map_bal$2)} - var _wj_=hr <= hl?hl + 1 | 0:hr + 1 | 0; - return [0,l,x,d,r,_wj_]} - var empty=0; - function is_empty(param){return param?0:1} - function add(x,data,m) - {if(m) - {var h=m[5],r=m[4],d=m[3],v=m[2],l=m[1],c=caml_call2(Ord[1],x,v); - if(0 === c)return d === data?m:[0,l,x,data,r,h]; - if(0 <= c){var rr=add(x,data,r);return r === rr?m:bal(l,v,d,rr)} - var ll=add(x,data,l); - return l === ll?m:bal(ll,v,d,r)} - return [0,0,x,data,0,1]} - function find(x,param) - {var param$0=param; - for(;;) - {if(param$0) - {var - r=param$0[4], - d=param$0[3], - v=param$0[2], - l=param$0[1], - c=caml_call2(Ord[1],x,v); - if(0 === c)return d; - var param$1=0 <= c?r:l,param$0=param$1; - continue} - throw Not_found}} - function find_first(f,param$0) - {var param$1=param$0; - for(;;) - {if(param$1) - {var - r$0=param$1[4], - d$0=param$1[3], - v$0=param$1[2], - l$0=param$1[1]; - if(caml_call1(f,v$0)) - {var v0=v$0,d0=d$0,param=l$0; - for(;;) - {if(param) - {var r=param[4],d=param[3],v=param[2],l=param[1]; - if(caml_call1(f,v)){var v0=v,d0=d,param=l;continue} - var param=r; - continue} - return [0,v0,d0]}} - var param$1=r$0; - continue} - throw Not_found}} - function find_first_opt(f,param$0) - {var param$1=param$0; - for(;;) - {if(param$1) - {var - r$0=param$1[4], - d$0=param$1[3], - v$0=param$1[2], - l$0=param$1[1]; - if(caml_call1(f,v$0)) - {var v0=v$0,d0=d$0,param=l$0; - for(;;) - {if(param) - {var r=param[4],d=param[3],v=param[2],l=param[1]; - if(caml_call1(f,v)){var v0=v,d0=d,param=l;continue} - var param=r; - continue} - return [0,[0,v0,d0]]}} - var param$1=r$0; - continue} - return 0}} - function find_last(f,param$0) - {var param$1=param$0; - for(;;) - {if(param$1) - {var - r$0=param$1[4], - d$0=param$1[3], - v$0=param$1[2], - l$0=param$1[1]; - if(caml_call1(f,v$0)) - {var v0=v$0,d0=d$0,param=r$0; - for(;;) - {if(param) - {var r=param[4],d=param[3],v=param[2],l=param[1]; - if(caml_call1(f,v)){var v0=v,d0=d,param=r;continue} - var param=l; - continue} - return [0,v0,d0]}} - var param$1=l$0; - continue} - throw Not_found}} - function find_last_opt(f,param$0) - {var param$1=param$0; - for(;;) - {if(param$1) - {var - r$0=param$1[4], - d$0=param$1[3], - v$0=param$1[2], - l$0=param$1[1]; - if(caml_call1(f,v$0)) - {var v0=v$0,d0=d$0,param=r$0; - for(;;) - {if(param) - {var r=param[4],d=param[3],v=param[2],l=param[1]; - if(caml_call1(f,v)){var v0=v,d0=d,param=r;continue} - var param=l; - continue} - return [0,[0,v0,d0]]}} - var param$1=l$0; - continue} - return 0}} - function find_opt(x,param) - {var param$0=param; - for(;;) - {if(param$0) - {var - r=param$0[4], - d=param$0[3], - v=param$0[2], - l=param$0[1], - c=caml_call2(Ord[1],x,v); - if(0 === c)return [0,d]; - var param$1=0 <= c?r:l,param$0=param$1; - continue} - return 0}} - function mem(x,param) - {var param$0=param; - for(;;) - {if(param$0) - {var - r=param$0[4], - v=param$0[2], - l=param$0[1], - c=caml_call2(Ord[1],x,v), - _we_=0 === c?1:0; - if(_we_)return _we_; - var param$1=0 <= c?r:l,param$0=param$1; - continue} - return 0}} - function min_binding(param) - {var param$0=param; - for(;;) - {if(param$0) - {var _wd_=param$0[1]; - if(_wd_){var param$0=_wd_;continue} - var d=param$0[3],v=param$0[2]; - return [0,v,d]} - throw Not_found}} - function min_binding_opt(param) - {var param$0=param; - for(;;) - {if(param$0) - {var _wc_=param$0[1]; - if(_wc_){var param$0=_wc_;continue} - var d=param$0[3],v=param$0[2]; - return [0,[0,v,d]]} - return 0}} - function max_binding(param) - {var param$0=param; - for(;;) - {if(param$0) - {if(param$0[4]){var param$1=param$0[4],param$0=param$1;continue} - var d=param$0[3],v=param$0[2]; - return [0,v,d]} - throw Not_found}} - function max_binding_opt(param) - {var param$0=param; - for(;;) - {if(param$0) - {if(param$0[4]){var param$1=param$0[4],param$0=param$1;continue} - var d=param$0[3],v=param$0[2]; - return [0,[0,v,d]]} - return 0}} - function remove_min_binding(param) - {if(param) - {var _wb_=param[1]; - if(_wb_) - {var r=param[4],d=param[3],v=param[2]; - return bal(remove_min_binding(_wb_),v,d,r)} - var r$0=param[4]; - return r$0} - return invalid_arg(cst_Map_remove_min_elt)} - function _vM_(t1,t2) - {if(t1) - {if(t2) - {var match=min_binding(t2),d=match[2],x=match[1]; - return bal(t1,x,d,remove_min_binding(t2))} - return t1} - return t2} - function remove(x,m) - {if(m) - {var r=m[4],d=m[3],v=m[2],l=m[1],c=caml_call2(Ord[1],x,v); - if(0 === c)return _vM_(l,r); - if(0 <= c){var rr=remove(x,r);return r === rr?m:bal(l,v,d,rr)} - var ll=remove(x,l); - return l === ll?m:bal(ll,v,d,r)} - return 0} - function update(x,f,m) - {if(m) - {var h=m[5],r=m[4],d=m[3],v=m[2],l=m[1],c=caml_call2(Ord[1],x,v); - if(0 === c) - {var match=caml_call1(f,[0,d]); - if(match) - {var data=match[1];return d === data?m:[0,l,x,data,r,h]} - return _vM_(l,r)} - if(0 <= c){var rr=update(x,f,r);return r === rr?m:bal(l,v,d,rr)} - var ll=update(x,f,l); - return l === ll?m:bal(ll,v,d,r)} - var match$0=caml_call1(f,0); - if(match$0){var data$0=match$0[1];return [0,0,x,data$0,0,1]} - return 0} - function iter(f,param) - {var param$0=param; - for(;;) - {if(param$0) - {var r=param$0[4],d=param$0[3],v=param$0[2],l=param$0[1]; - iter(f,l); - caml_call2(f,v,d); - var param$0=r; - continue} - return 0}} - function map(f,param) - {if(param) - {var - h=param[5], - r=param[4], - d=param[3], - v=param[2], - l=param[1], - l$0=map(f,l), - d$0=caml_call1(f,d), - r$0=map(f,r); - return [0,l$0,v,d$0,r$0,h]} - return 0} - function mapi(f,param) - {if(param) - {var - h=param[5], - r=param[4], - d=param[3], - v=param[2], - l=param[1], - l$0=mapi(f,l), - d$0=caml_call2(f,v,d), - r$0=mapi(f,r); - return [0,l$0,v,d$0,r$0,h]} - return 0} - function fold(f,m,accu) - {var m$0=m,accu$0=accu; - for(;;) - {if(m$0) - {var - r=m$0[4], - d=m$0[3], - v=m$0[2], - l=m$0[1], - accu$1=caml_call3(f,v,d,fold(f,l,accu$0)), - m$0=r, - accu$0=accu$1; - continue} - return accu$0}} - function for_all(p,param) - {var param$0=param; - for(;;) - {if(param$0) - {var - r=param$0[4], - d=param$0[3], - v=param$0[2], - l=param$0[1], - _v__=caml_call2(p,v,d); - if(_v__) - {var _v$_=for_all(p,l); - if(_v$_){var param$0=r;continue} - var _wa_=_v$_} - else - var _wa_=_v__; - return _wa_} - return 1}} - function exists(p,param) - {var param$0=param; - for(;;) - {if(param$0) - {var - r=param$0[4], - d=param$0[3], - v=param$0[2], - l=param$0[1], - _v7_=caml_call2(p,v,d); - if(_v7_) - var _v8_=_v7_; - else - {var _v9_=exists(p,l); - if(! _v9_){var param$0=r;continue} - var _v8_=_v9_} - return _v8_} - return 0}} - function add_min_binding(k,x,param) - {if(param) - {var r=param[4],d=param[3],v=param[2],l=param[1]; - return bal(add_min_binding(k,x,l),v,d,r)} - return singleton(k,x)} - function add_max_binding(k,x,param) - {if(param) - {var r=param[4],d=param[3],v=param[2],l=param[1]; - return bal(l,v,d,add_max_binding(k,x,r))} - return singleton(k,x)} - function join(l,v,d,r) - {if(l) - {if(r) - {var - rh=r[5], - rr=r[4], - rd=r[3], - rv=r[2], - rl=r[1], - lh=l[5], - lr=l[4], - ld=l[3], - lv=l[2], - ll=l[1]; - return (rh + 2 | 0) < lh - ?bal(ll,lv,ld,join(lr,v,d,r)) - :(lh + 2 | 0) < rh - ?bal(join(l,v,d,rl),rv,rd,rr) - :create(l,v,d,r)} - return add_max_binding(v,d,l)} - return add_min_binding(v,d,r)} - function concat(t1,t2) - {if(t1) - {if(t2) - {var match=min_binding(t2),d=match[2],x=match[1]; - return join(t1,x,d,remove_min_binding(t2))} - return t1} - return t2} - function concat_or_join(t1,v,d,t2) - {if(d){var d$0=d[1];return join(t1,v,d$0,t2)}return concat(t1,t2)} - function split(x,param) - {if(param) - {var - r=param[4], - d=param[3], - v=param[2], - l=param[1], - c=caml_call2(Ord[1],x,v); - if(0 === c)return [0,l,[0,d],r]; - if(0 <= c) - {var match=split(x,r),rr=match[3],pres=match[2],lr=match[1]; - return [0,join(l,v,d,lr),pres,rr]} - var - match$0=split(x,l), - rl=match$0[3], - pres$0=match$0[2], - ll=match$0[1]; - return [0,ll,pres$0,join(rl,v,d,r)]} - return _W_} - function merge(f,s1,s2) - {if(s1) - {var h1=s1[5],r1=s1[4],d1=s1[3],v1=s1[2],l1=s1[1]; - if(height(s2) <= h1) - {var - match=split(v1,s2), - r2=match[3], - d2=match[2], - l2=match[1], - _v3_=merge(f,r1,r2), - _v4_=caml_call3(f,v1,[0,d1],d2); - return concat_or_join(merge(f,l1,l2),v1,_v4_,_v3_)}} - else - if(! s2)return 0; - if(s2) - {var - r2$0=s2[4], - d2$0=s2[3], - v2=s2[2], - l2$0=s2[1], - match$0=split(v2,s1), - r1$0=match$0[3], - d1$0=match$0[2], - l1$0=match$0[1], - _v5_=merge(f,r1$0,r2$0), - _v6_=caml_call3(f,v2,d1$0,[0,d2$0]); - return concat_or_join(merge(f,l1$0,l2$0),v2,_v6_,_v5_)} - throw [0,Assert_failure,_X_]} - function union(f,s1,s2) - {if(s1) - {if(s2) - {var - h2=s2[5], - r2=s2[4], - d2=s2[3], - v2=s2[2], - l2=s2[1], - h1=s1[5], - r1=s1[4], - d1=s1[3], - v1=s1[2], - l1=s1[1]; - if(h2 <= h1) - {var - match=split(v1,s2), - r2$0=match[3], - d2$0=match[2], - l2$0=match[1], - l=union(f,l1,l2$0), - r=union(f,r1,r2$0); - if(d2$0) - {var d2$1=d2$0[1]; - return concat_or_join(l,v1,caml_call3(f,v1,d1,d2$1),r)} - return join(l,v1,d1,r)} - var - match$0=split(v2,s1), - r1$0=match$0[3], - d1$0=match$0[2], - l1$0=match$0[1], - l$0=union(f,l1$0,l2), - r$0=union(f,r1$0,r2); - if(d1$0) - {var d1$1=d1$0[1]; - return concat_or_join(l$0,v2,caml_call3(f,v2,d1$1,d2),r$0)} - return join(l$0,v2,d2,r$0)} - var s=s1} - else - var s=s2; - return s} - function filter(p,m) - {if(m) - {var - r=m[4], - d=m[3], - v=m[2], - l=m[1], - l$0=filter(p,l), - pvd=caml_call2(p,v,d), - r$0=filter(p,r); - if(pvd) - {if(l === l$0 && r === r$0)return m;return join(l$0,v,d,r$0)} - return concat(l$0,r$0)} - return 0} - function filter_map(f,param) - {if(param) - {var - r=param[4], - d=param[3], - v=param[2], - l=param[1], - l$0=filter_map(f,l), - fvd=caml_call2(f,v,d), - r$0=filter_map(f,r); - if(fvd){var d$0=fvd[1];return join(l$0,v,d$0,r$0)} - return concat(l$0,r$0)} - return 0} - function partition(p,param) - {if(param) - {var - r=param[4], - d=param[3], - v=param[2], - l=param[1], - match=partition(p,l), - lf=match[2], - lt=match[1], - pvd=caml_call2(p,v,d), - match$0=partition(p,r), - rf=match$0[2], - rt=match$0[1]; - if(pvd){var _v1_=concat(lf,rf);return [0,join(lt,v,d,rt),_v1_]} - var _v2_=join(lf,v,d,rf); - return [0,concat(lt,rt),_v2_]} - return _Y_} - function cons_enum(m,e) - {var m$0=m,e$0=e; - for(;;) - {if(m$0) - {var - r=m$0[4], - d=m$0[3], - v=m$0[2], - m$1=m$0[1], - e$1=[0,v,d,r,e$0], - m$0=m$1, - e$0=e$1; - continue} - return e$0}} - function compare(cmp,m1,m2) - {var e2$2=cons_enum(m2,0),e1$2=cons_enum(m1,0),e1=e1$2,e2=e2$2; - for(;;) - {if(e1) - {if(e2) - {var - e2$0=e2[4], - r2=e2[3], - d2=e2[2], - v2=e2[1], - e1$0=e1[4], - r1=e1[3], - d1=e1[2], - v1=e1[1], - c=caml_call2(Ord[1],v1,v2); - if(0 === c) - {var c$0=caml_call2(cmp,d1,d2); - if(0 === c$0) - {var - e2$1=cons_enum(r2,e2$0), - e1$1=cons_enum(r1,e1$0), - e1=e1$1, - e2=e2$1; - continue} - return c$0} - return c} - return 1} - return e2?-1:0}} - function equal(cmp,m1,m2) - {var e2$2=cons_enum(m2,0),e1$2=cons_enum(m1,0),e1=e1$2,e2=e2$2; - for(;;) - {if(e1) - {if(e2) - {var - e2$0=e2[4], - r2=e2[3], - d2=e2[2], - v2=e2[1], - e1$0=e1[4], - r1=e1[3], - d1=e1[2], - v1=e1[1], - _vY_=0 === caml_call2(Ord[1],v1,v2)?1:0; - if(_vY_) - {var _vZ_=caml_call2(cmp,d1,d2); - if(_vZ_) - {var - e2$1=cons_enum(r2,e2$0), - e1$1=cons_enum(r1,e1$0), - e1=e1$1, - e2=e2$1; - continue} - var _v0_=_vZ_} - else - var _v0_=_vY_; - return _v0_} - return 0} - return e2?0:1}} - function cardinal(param) - {if(param) - {var r=param[4],l=param[1],_vX_=cardinal(r); - return (cardinal(l) + 1 | 0) + _vX_ | 0} - return 0} - function bindings_aux(accu,param) - {var accu$0=accu,param$0=param; - for(;;) - {if(param$0) - {var - r=param$0[4], - d=param$0[3], - v=param$0[2], - l=param$0[1], - accu$1=[0,[0,v,d],bindings_aux(accu$0,r)], - accu$0=accu$1, - param$0=l; - continue} - return accu$0}} - function bindings(s){return bindings_aux(0,s)} - function add_seq(i,m) - {return fold_left - (function(m,param) - {var v=param[2],k=param[1];return add(k,v,m)}, - m, - i)} - function of_seq(i){return add_seq(i,empty)} - function seq_of_enum(c,param) - {if(c) - {var rest=c[4],t=c[3],v=c[2],k=c[1],_vV_=cons_enum(t,rest); - return [0,[0,k,v],function(_vW_){return seq_of_enum(_vV_,_vW_)}]} - return 0} - function to_seq(m) - {var _vT_=cons_enum(m,0); - return function(_vU_){return seq_of_enum(_vT_,_vU_)}} - function snoc_enum(s,e) - {var s$0=s,e$0=e; - for(;;) - {if(s$0) - {var - s$1=s$0[4], - d=s$0[3], - v=s$0[2], - l=s$0[1], - e$1=[0,v,d,l,e$0], - s$0=s$1, - e$0=e$1; - continue} - return e$0}} - function rev_seq_of_enum(c,param) - {if(c) - {var rest=c[4],t=c[3],v=c[2],k=c[1],_vR_=snoc_enum(t,rest); - return [0, - [0,k,v], - function(_vS_){return rev_seq_of_enum(_vR_,_vS_)}]} - return 0} - function to_rev_seq(c) - {var _vP_=snoc_enum(c,0); - return function(_vQ_){return rev_seq_of_enum(_vP_,_vQ_)}} - function to_seq_from(low,m) - {var m$0=m,c=0; - for(;;) - {if(m$0) - {var - r=m$0[4], - d=m$0[3], - v=m$0[2], - l=m$0[1], - n=caml_call2(Ord[1],v,low); - if(0 !== n) - {if(0 <= n){var c$0=[0,v,d,r,c],m$0=l,c=c$0;continue} - var m$0=r; - continue} - var _vN_=[0,v,d,r,c]} - else - var _vN_=c; - return function(_vO_){return seq_of_enum(_vN_,_vO_)}}} - return [0, - empty, - is_empty, - mem, - add, - update, - singleton, - remove, - merge, - union, - compare, - equal, - iter, - fold, - for_all, - exists, - filter, - filter_map, - partition, - cardinal, - bindings, - min_binding, - min_binding_opt, - max_binding, - max_binding_opt, - min_binding, - min_binding_opt, - split, - find, - find_opt, - find_first, - find_first_opt, - find_last, - find_last_opt, - map, - mapi, - to_seq, - to_rev_seq, - to_seq_from, - add_seq, - of_seq]}]; - caml_register_global(802,Stdlib_Map,"Stdlib__Map"); - var Empty=[248,cst_Stdlib_Stack_Empty,caml_fresh_oo_id(0)]; - function create$0(param){return [0,0,0]} - function clear(s){s[1] = 0;s[2] = 0;return 0} - function copy$3(s){return [0,s[1],s[2]]} - function push(x,s){s[1] = [0,x,s[1]];s[2] = s[2] + 1 | 0;return 0} - function pop(s) - {var _vL_=s[1]; - if(_vL_) - {var tl=_vL_[2],hd=_vL_[1];s[1] = tl;s[2] = s[2] - 1 | 0;return hd} - throw Empty} - function pop_opt(s) - {var _vK_=s[1]; - if(_vK_) - {var tl=_vK_[2],hd=_vK_[1];s[1] = tl;s[2] = s[2] - 1 | 0;return [0,hd]} - return 0} - function top(s) - {var _vJ_=s[1];if(_vJ_){var hd=_vJ_[1];return hd}throw Empty} - function top_opt(s) - {var _vI_=s[1];if(_vI_){var hd=_vI_[1];return [0,hd]}return 0} - function is_empty$0(s){return 0 === s[1]?1:0} - function length$2(s){return s[2]} - function iter$7(f,s){return iter$2(f,s[1])} - function fold$2(f,acc,s){return fold_left$0(f,acc,s[1])} - function to_seq$6(s){return to_seq$1(s[1])} - function add_seq(q,i){return iter(function(x){return push(x,q)},i)} - function of_seq$4(g){var s=create$0(0);add_seq(s,g);return s} - var - Stdlib_Stack= - [0, - Empty, - create$0, - push, - pop, - pop_opt, - top, - top_opt, - clear, - copy$3, - is_empty$0, - length$2, - iter$7, - fold$2, - to_seq$6, - add_seq, - of_seq$4]; - caml_register_global(803,Stdlib_Stack,"Stdlib__Stack"); - var Empty$0=[248,cst_Stdlib_Queue_Empty,caml_fresh_oo_id(0)]; - function create$1(param){return [0,0,0,0]} - function clear$0(q){q[1] = 0;q[2] = 0;q[3] = 0;return 0} - function add(x,q) - {var cell=[0,x,0],_vH_=q[3]; - return _vH_ - ?(q[1] = q[1] + 1 | 0,_vH_[2] = cell,q[3] = cell,0) - :(q[1] = 1,q[2] = cell,q[3] = cell,0)} - function peek(q) - {var _vG_=q[2];if(_vG_){var content=_vG_[1];return content}throw Empty$0} - function peek_opt(q) - {var _vF_=q[2];if(_vF_){var content=_vF_[1];return [0,content]}return 0} - function take$0(q) - {var _vD_=q[2]; - if(_vD_) - {var _vE_=_vD_[1]; - if(_vD_[2]) - {var next=_vD_[2];q[1] = q[1] - 1 | 0;q[2] = next;return _vE_} - clear$0(q); - return _vE_} - throw Empty$0} - function take_opt(q) - {var _vB_=q[2]; - if(_vB_) - {var _vC_=_vB_[1]; - if(_vB_[2]) - {var next=_vB_[2];q[1] = q[1] - 1 | 0;q[2] = next;return [0,_vC_]} - clear$0(q); - return [0,_vC_]} - return 0} - function copy$4(q) - {var q_res=[0,q[1],0,0],prev=0,cell=q[2]; - for(;;) - {if(cell) - {var content=cell[1],next=cell[2],res=[0,content,0]; - if(prev)prev[2] = res;else q_res[2] = res; - var prev=res,cell=next; - continue} - q_res[3] = prev; - return q_res}} - function is_empty$1(q){return 0 === q[1]?1:0} - function length$3(q){return q[1]} - function iter$8(f,q) - {var cell=q[2]; - for(;;) - {if(cell) - {var content=cell[1],next=cell[2]; - caml_call1(f,content); - var cell=next; - continue} - return 0}} - function fold$3(f,accu$1,q) - {var accu=accu$1,cell=q[2]; - for(;;) - {if(cell) - {var - content=cell[1], - next=cell[2], - accu$0=caml_call2(f,accu,content), - accu=accu$0, - cell=next; - continue} - return accu}} - function transfer(q1,q2) - {var _vz_=0 < q1[1]?1:0; - if(_vz_) - {var _vA_=q2[3]; - return _vA_ - ?(q2[1] - = - q2[1] - + - q1[1] - | - 0, - _vA_[2] - = - q1[2], - q2[3] - = - q1[3], - clear$0(q1)) - :(q2[1] = q1[1],q2[2] = q1[2],q2[3] = q1[3],clear$0(q1))} - return _vz_} - function to_seq$7(q) - {function aux(c,param) - {if(c) - {var x=c[1],next=c[2]; - return [0,x,function(_vy_){return aux(next,_vy_)}]} - return 0} - var _vw_=q[2]; - return function(_vx_){return aux(_vw_,_vx_)}} - function add_seq$0(q,i){return iter(function(x){return add(x,q)},i)} - function of_seq$5(g){var q=create$1(0);add_seq$0(q,g);return q} - var - Stdlib_Queue= - [0, - Empty$0, - create$1, - add, - add, - take$0, - take_opt, - take$0, - peek, - peek_opt, - peek, - clear$0, - copy$4, - is_empty$1, - length$3, - iter$8, - fold$3, - transfer, - to_seq$7, - add_seq$0, - of_seq$5]; - caml_register_global(804,Stdlib_Queue,"Stdlib__Queue"); - var - Failure$0=[248,cst_Stdlib_Stream_Failure,caml_fresh_oo_id(0)], - Error=[248,cst_Stdlib_Stream_Error,caml_fresh_oo_id(0)]; - function count(param) - {if(param){var match=param[1],count=match[1];return count}return 0} - function data(param) - {if(param){var match=param[1],data=match[2];return data}return 0} - function fill_buff(b) - {b[3] = input(b[1],b[2],0,caml_ml_bytes_length(b[2]));b[4] = 0;return 0} - function get_data(count,d) - {var d$0=d; - for(;;) - {if(typeof d$0 !== "number") - switch(d$0[0]) - {case 1: - var d2=d$0[2],d1=d$0[1],match=get_data(count,d1); - if(typeof match === "number") - {var d$0=d2;continue} - else - {if(0 === match[0]) - {var d11=match[2],a=match[1];return [0,a,[1,d11,d2]]} - throw [0,Assert_failure,_Z_]} - case 2: - var - f=d$0[1], - _vs_=caml_obj_tag(f), - d$1=250 === _vs_?f[1]:246 === _vs_?force_lazy_block(f):f, - d$0=d$1; - continue; - case 3: - var _vt_=d$0[1],_vu_=_vt_[1]; - if(_vu_) - {var _vv_=_vu_[1]; - if(_vv_){var a$0=_vv_[1];_vt_[1] = 0;return [0,a$0,d$0]} - return 0} - var match$0=caml_call1(_vt_[2],count); - if(match$0){var a$1=match$0[1];return [0,a$1,d$0]} - _vt_[1] = ___; - return 0; - case 4: - var b=d$0[1]; - if(b[3] <= b[4])fill_buff(b); - if(0 === b[3])return 0; - var r=caml_bytes_unsafe_get(b[2],b[4]); - b[4] = b[4] + 1 | 0; - return [0,r,d$0] - } - return d$0}} - function peek_data(s) - {for(;;) - {var _vn_=s[2]; - if(typeof _vn_ === "number") - return 0; - else - switch(_vn_[0]) - {case 0:var a=_vn_[1];return [0,a]; - case 1: - var d=get_data(s[1],s[2]); - if(typeof d === "number") - return 0; - else - {if(0 === d[0]){var a$0=d[1];s[2] = d;return [0,a$0]} - throw [0,Assert_failure,_$_]} - case 2: - var - f=_vn_[1], - _vo_=caml_obj_tag(f), - _vp_=250 === _vo_?f[1]:246 === _vo_?force_lazy_block(f):f; - s[2] = _vp_; - continue; - case 3: - var _vq_=_vn_[1],_vr_=_vq_[1]; - if(_vr_){var a$1=_vr_[1];return a$1} - var x=caml_call1(_vq_[2],s[1]); - _vq_[1] = [0,x]; - return x; - default: - var b=_vn_[1]; - if(b[3] <= b[4])fill_buff(b); - return 0 === b[3] - ?(s[2] = 0,0) - :[0,caml_bytes_unsafe_get(b[2],b[4])]}}} - function peek$0(param) - {if(param){var s=param[1];return peek_data(s)}return 0} - function junk_data(s) - {for(;;) - {var _vl_=s[2]; - if(typeof _vl_ !== "number") - switch(_vl_[0]) - {case 0:var d=_vl_[2];s[1] = s[1] + 1 | 0;s[2] = d;return 0; - case 3: - var _vm_=_vl_[1]; - if(_vm_[1]){s[1] = s[1] + 1 | 0;_vm_[1] = 0;return 0} - break; - case 4: - var b=_vl_[1]; - if(b[3] <= b[4])fill_buff(b); - return 0 === b[3] - ?(s[2] = 0,0) - :(s[1] = s[1] + 1 | 0,b[4] = b[4] + 1 | 0,0) - } - var match=peek_data(s); - if(match)continue; - return 0}} - function junk(param) - {if(param){var data=param[1];return junk_data(data)}return 0} - function nget_data(n,s) - {if(0 < n) - {var match=peek_data(s); - if(match) - {var a=match[1]; - junk_data(s); - var - match$0=nget_data(n - 1 | 0,s), - k=match$0[3], - d=match$0[2], - al=match$0[1]; - return [0,[0,a,al],[0,a,d],k + 1 | 0]} - return [0,0,s[2],0]} - return [0,0,s[2],0]} - function npeek(n,param) - {if(param) - {var - d$0=param[1], - match=nget_data(n,d$0), - len=match[3], - d=match[2], - al=match[1]; - d$0[1] = d$0[1] - len | 0; - d$0[2] = d; - return al} - return 0} - function next(s) - {var match=peek$0(s); - if(match){var a=match[1];junk(s);return a} - throw Failure$0} - function empty$2(s){var match=peek$0(s);if(match)throw Failure$0;return 0} - function iter$9(f,strm) - {for(;;) - {var match=peek$0(strm); - if(match){var a=match[1];junk(strm);caml_call1(f,a);continue} - return 0}} - function from(f){return [0,[0,0,[3,[0,0,f]]]]} - function of_list$1(l) - {var _vk_=0; - return [0,[0,0,fold_right(function(x,l){return [0,x,l]},l,_vk_)]]} - function of_string(s) - {var count=[0,0]; - return from - (function(param) - {var c=count[1]; - return c < caml_ml_string_length(s) - ?(count[1]++,[0,caml_string_get(s,c)]) - :0})} - function of_bytes$0(s) - {var count=[0,0]; - return from - (function(param) - {var c=count[1]; - return c < caml_ml_bytes_length(s) - ?(count[1]++,[0,caml_bytes_get(s,c)]) - :0})} - function of_channel(ic) - {return [0,[0,0,[4,[0,ic,caml_create_bytes(4096),0,0]]]]} - function iapp(i,s){var _vj_=data(s);return [0,[0,0,[1,data(i),_vj_]]]} - function icons(i,s){return [0,[0,0,[0,i,data(s)]]]} - function ising(i){return [0,[0,0,[0,i,0]]]} - function lapp(f,s) - {return [0, - [0, - 0, - [2, - [246, - function(_vh_) - {var _vi_=data(s);return [1,data(caml_call1(f,0)),_vi_]}]]]]} - function lcons(f,s) - {return [0, - [0, - 0, - [2, - [246, - function(_vf_) - {var _vg_=data(s);return [0,caml_call1(f,0),_vg_]}]]]]} - function lsing(f) - {return [0,[0,0,[2,[246,function(_ve_){return [0,caml_call1(f,0),0]}]]]]} - var sempty=0; - function slazy(f) - {return [0,[0,0,[2,[246,function(_vd_){return data(caml_call1(f,0))}]]]]} - function dump(f,s) - {print_string(cst_count); - print_int(count(s)); - print_string(cst_data); - dump_data(f,data(s)); - print_string(cst$6); - return print_newline(0)} - function dump_data(f,param) - {if(typeof param === "number") - return print_string(cst_Sempty); - else - switch(param[0]) - {case 0: - var d=param[2],a=param[1]; - print_string(cst_Scons); - caml_call1(f,a); - print_string(cst$7); - dump_data(f,d); - return print_string(cst$8); - case 1: - var d2=param[2],d1=param[1]; - print_string(cst_Sapp); - dump_data(f,d1); - print_string(cst$9); - dump_data(f,d2); - return print_string(cst$10); - case 2:return print_string(cst_Slazy); - case 3:return print_string(cst_Sgen); - default:return print_string(cst_Sbuffio)}} - var - Stdlib_Stream= - [0, - Failure$0, - Error, - from, - of_list$1, - of_string, - of_bytes$0, - of_channel, - iter$9, - next, - empty$2, - peek$0, - junk, - count, - npeek, - iapp, - icons, - ising, - lapp, - lcons, - lsing, - sempty, - slazy, - dump]; - caml_register_global(805,Stdlib_Stream,"Stdlib__Stream"); - function create$2(n) - {var - n$0=1 <= n?n:1, - n$1=max_string_length < n$0?max_string_length:n$0, - s=caml_create_bytes(n$1); - return [0,s,0,n$1,s]} - function contents(b){return sub_string(b[1],0,b[2])} - function to_bytes$0(b){return sub(b[1],0,b[2])} - function sub$3(b,ofs,len) - {if(0 <= ofs && 0 <= len && ! ((b[2] - len | 0) < ofs)) - return sub_string(b[1],ofs,len); - return invalid_arg(cst_Buffer_sub)} - function blit$3(src,srcoff,dst,dstoff,len) - {if - (0 - <= - len - && - 0 - <= - srcoff - && - ! - ((src[2] - len | 0) < srcoff) - && - 0 - <= - dstoff - && - ! - ((caml_ml_bytes_length(dst) - len | 0) < dstoff)) - return caml_blit_bytes(src[1],srcoff,dst,dstoff,len); - return invalid_arg(cst_Buffer_blit)} - function nth$0(b,ofs) - {if(0 <= ofs && ! (b[2] <= ofs))return caml_bytes_unsafe_get(b[1],ofs); - return invalid_arg(cst_Buffer_nth)} - function length$4(b){return b[2]} - function clear$1(b){b[2] = 0;return 0} - function reset(b) - {b[2] = 0;b[1] = b[4];b[3] = caml_ml_bytes_length(b[1]);return 0} - function resize(b,more) - {var old_pos=b[2],old_len=b[3],new_len=[0,old_len]; - for(;;) - {if(new_len[1] < (old_pos + more | 0)) - {new_len[1] = 2 * new_len[1] | 0;continue} - if(max_string_length < new_len[1]) - if((old_pos + more | 0) <= max_string_length) - new_len[1] = max_string_length; - else - failwith(cst_Buffer_add_cannot_grow_buf); - var new_buffer=caml_create_bytes(new_len[1]); - blit(b[1],0,new_buffer,0,b[2]); - b[1] = new_buffer; - b[3] = new_len[1]; - if((b[2] + more | 0) <= b[3]) - {if((old_pos + more | 0) <= b[3])return 0; - throw [0,Assert_failure,_aa_]} - throw [0,Assert_failure,_ab_]}} - function add_char(b,c) - {var pos=b[2]; - if(b[3] <= pos)resize(b,1); - caml_bytes_unsafe_set(b[1],pos,c); - b[2] = pos + 1 | 0; - return 0} - var uchar_utf_8_byte_length_max=4,uchar_utf_16_byte_length_max=4; - function add_utf_8_uchar(b,u) - {for(;;) - {var pos=b[2]; - if(b[3] <= pos)resize(b,uchar_utf_8_byte_length_max); - var n=set_utf_8_uchar(b[1],pos,u); - if(0 === n){resize(b,uchar_utf_8_byte_length_max);continue} - b[2] = pos + n | 0; - return 0}} - function add_utf_16be_uchar(b,u) - {for(;;) - {var pos=b[2]; - if(b[3] <= pos)resize(b,uchar_utf_16_byte_length_max); - var n=set_utf_16be_uchar(b[1],pos,u); - if(0 === n){resize(b,uchar_utf_16_byte_length_max);continue} - b[2] = pos + n | 0; - return 0}} - function add_utf_16le_uchar(b,u) - {for(;;) - {var pos=b[2]; - if(b[3] <= pos)resize(b,uchar_utf_16_byte_length_max); - var n=set_utf_16le_uchar(b[1],pos,u); - if(0 === n){resize(b,uchar_utf_16_byte_length_max);continue} - b[2] = pos + n | 0; - return 0}} - function add_substring(b,s,offset,len) - {var _va_=offset < 0?1:0; - if(_va_) - var _vb_=_va_; - else - var - _vc_=len < 0?1:0, - _vb_=_vc_ || ((caml_ml_string_length(s) - len | 0) < offset?1:0); - if(_vb_)invalid_arg(cst_Buffer_add_substring_add_s); - var new_position=b[2] + len | 0; - if(b[3] < new_position)resize(b,len); - caml_blit_string(s,offset,b[1],b[2],len); - b[2] = new_position; - return 0} - function add_subbytes(b,s,offset,len) - {return add_substring(b,caml_string_of_bytes(s),offset,len)} - function add_string(b,s) - {var len=caml_ml_string_length(s),new_position=b[2] + len | 0; - if(b[3] < new_position)resize(b,len); - caml_blit_string(s,0,b[1],b[2],len); - b[2] = new_position; - return 0} - function add_bytes(b,s){return add_string(b,caml_string_of_bytes(s))} - function add_buffer(b,bs){return add_subbytes(b,bs[1],0,bs[2])} - function add_channel(b,ic,len) - {var _u__=len < 0?1:0,_u$_=_u__ || (max_string_length < len?1:0); - if(_u$_)invalid_arg(cst_Buffer_add_channel); - if(b[3] < (b[2] + len | 0))resize(b,len); - var already_read=0,ofs=b[2],to_read=len,_u9_=b[1]; - for(;;) - {if(0 !== to_read) - {var r=input(ic,_u9_,ofs,to_read); - if(0 !== r) - {var - already_read$0=already_read + r | 0, - ofs$0=ofs + r | 0, - to_read$0=to_read - r | 0, - already_read=already_read$0, - ofs=ofs$0, - to_read=to_read$0; - continue}} - if((b[2] + already_read | 0) <= b[3]) - {b[2] = b[2] + already_read | 0; - if(already_read < len)throw End_of_file; - return 0} - throw [0,Assert_failure,_ac_]}} - function output_buffer(oc,b){return output(oc,b[1],0,b[2])} - function add_substitute(b,f,s) - {var lim$1=caml_ml_string_length(s),previous=32,i$7=0; - for(;;) - {if(i$7 < lim$1) - {var current=caml_string_get(s,i$7); - if(36 === current) - {if(92 === previous) - {add_char(b,current); - var i$8=i$7 + 1 | 0,previous=32,i$7=i$8; - continue} - var start=i$7 + 1 | 0; - if(lim$1 <= start)throw Not_found; - var opening=caml_string_get(s,start),switch$0=0; - if(40 !== opening && 123 !== opening) - {var i$6=start + 1 | 0,lim$0=caml_ml_string_length(s),i$3=i$6; - for(;;) - {if(lim$0 <= i$3) - var stop=lim$0; - else - {var match=caml_string_get(s,i$3),switch$1=0; - if(91 <= match) - {if(97 <= match) - {if(! (123 <= match))switch$1 = 1} - else - if(95 === match)switch$1 = 1} - else - if(58 <= match) - {if(65 <= match)switch$1 = 1} - else - if(48 <= match)switch$1 = 1; - if(switch$1){var i$4=i$3 + 1 | 0,i$3=i$4;continue} - var stop=i$3} - var match$0=[0,sub$0(s,start,stop - start | 0),stop]; - switch$0 = 1; - break}} - if(! switch$0) - {var i$5=start + 1 | 0,k$2=0; - if(40 === opening) - var _u7_=41; - else - {if(123 !== opening)throw [0,Assert_failure,_ad_];var _u7_=125} - var lim=caml_ml_string_length(s),k=k$2,i=i$5; - for(;;) - {if(lim <= i)throw Not_found; - if(caml_string_get(s,i) === opening) - {var i$0=i + 1 | 0,k$0=k + 1 | 0,k=k$0,i=i$0;continue} - if(caml_string_get(s,i) !== _u7_) - {var i$2=i + 1 | 0,i=i$2;continue} - if(0 !== k) - {var i$1=i + 1 | 0,k$1=k - 1 | 0,k=k$1,i=i$1;continue} - var - match$0= - [0,sub$0(s,i$5,(i - start | 0) - 1 | 0),i + 1 | 0]; - break}} - var next_i=match$0[2],ident=match$0[1]; - add_string(b,caml_call1(f,ident)); - var previous=32,i$7=next_i; - continue} - if(92 === previous) - {add_char(b,92); - add_char(b,current); - var i$9=i$7 + 1 | 0,previous=32,i$7=i$9; - continue} - if(92 === current) - {var i$10=i$7 + 1 | 0,previous=current,i$7=i$10;continue} - add_char(b,current); - var i$11=i$7 + 1 | 0,previous=current,i$7=i$11; - continue} - var _u8_=92 === previous?1:0; - return _u8_?add_char(b,previous):_u8_}} - function truncate(b,len) - {if(0 <= len && ! (b[2] < len)){b[2] = len;return 0} - return invalid_arg(cst_Buffer_truncate)} - function to_seq$8(b) - {function aux(i,param) - {if(b[2] <= i)return 0; - var x=caml_bytes_unsafe_get(b[1],i),_u5_=i + 1 | 0; - return [0,x,function(_u6_){return aux(_u5_,_u6_)}]} - var _u3_=0; - return function(_u4_){return aux(_u3_,_u4_)}} - function to_seqi$3(b) - {function aux(i,param) - {if(b[2] <= i)return 0; - var x=caml_bytes_unsafe_get(b[1],i),_u1_=i + 1 | 0; - return [0,[0,i,x],function(_u2_){return aux(_u1_,_u2_)}]} - var _uZ_=0; - return function(_u0_){return aux(_uZ_,_u0_)}} - function add_seq$1(b,seq) - {return iter(function(_uY_){return add_char(b,_uY_)},seq)} - function of_seq$6(i){var b=create$2(32);add_seq$1(b,i);return b} - function add_int8(b,x) - {var new_position=b[2] + 1 | 0; - if(b[3] < new_position)resize(b,1); - caml_bytes_unsafe_set(b[1],b[2],x); - b[2] = new_position; - return 0} - function add_int16_ne(b,x) - {var new_position=b[2] + 2 | 0; - if(b[3] < new_position)resize(b,2); - caml_bytes_set16(b[1],b[2],x); - b[2] = new_position; - return 0} - function add_int32_ne(b,x) - {var new_position=b[2] + 4 | 0; - if(b[3] < new_position)resize(b,4); - caml_bytes_set32(b[1],b[2],x); - b[2] = new_position; - return 0} - function add_int64_ne(b,x) - {var new_position=b[2] + 8 | 0; - if(b[3] < new_position)resize(b,8); - caml_bytes_set64(b[1],b[2],x); - b[2] = new_position; - return 0} - function add_int16_le(b,x){return add_int16_ne(b,x)} - function add_int16_be(b,x) - {var x$0=caml_bswap16(x);return add_int16_ne(b,x$0)} - function add_int32_le(b,x){return add_int32_ne(b,x)} - function add_int32_be(b,x) - {var x$0=caml_int32_bswap(x);return add_int32_ne(b,x$0)} - function add_int64_le(b,x){return add_int64_ne(b,x)} - function add_int64_be(b,x) - {var x$0=caml_int64_bswap(x);return add_int64_ne(b,x$0)} - var - Stdlib_Buffer= - [0, - create$2, - contents, - to_bytes$0, - sub$3, - blit$3, - nth$0, - length$4, - clear$1, - reset, - output_buffer, - truncate, - add_char, - add_utf_8_uchar, - add_utf_16le_uchar, - add_utf_16be_uchar, - add_string, - add_bytes, - add_substring, - add_subbytes, - add_substitute, - add_buffer, - add_channel, - to_seq$8, - to_seqi$3, - add_seq$1, - of_seq$6, - add_int8, - add_int8, - add_int16_ne, - add_int16_be, - add_int16_le, - add_int16_ne, - add_int16_be, - add_int16_le, - add_int32_ne, - add_int32_be, - add_int32_le, - add_int64_ne, - add_int64_be, - add_int64_le]; - caml_register_global(806,Stdlib_Buffer,"Stdlib__Buffer"); - function create_char_set(param){return make$0(32,0)} - function add_in_char_set(char_set,c) - {var str_ind=c >>> 3 | 0,mask=1 << (c & 7); - return caml_bytes_set - (char_set, - str_ind, - char_of_int(caml_bytes_get(char_set,str_ind) | mask))} - function freeze_char_set(char_set){return of_bytes(char_set)} - function rev_char_set(char_set) - {var char_set$0=create_char_set(0),i=0; - for(;;) - {caml_bytes_set - (char_set$0,i,char_of_int(caml_string_get(char_set,i) ^ 255)); - var _uX_=i + 1 | 0; - if(31 !== i){var i=_uX_;continue} - return caml_string_of_bytes(char_set$0)}} - function is_in_char_set(char_set,c) - {var str_ind=c >>> 3 | 0,mask=1 << (c & 7); - return 0 !== (caml_string_get(char_set,str_ind) & mask)?1:0} - function pad_of_pad_opt(pad_opt) - {if(pad_opt){var width=pad_opt[1];return [0,1,width]}return 0} - function param_format_of_ignored_format(ign,fmt) - {if(typeof ign === "number") - switch(ign) - {case 0:return [0,[0,fmt]]; - case 1:return [0,[1,fmt]]; - case 2:return [0,[19,fmt]]; - default:return [0,[22,fmt]]} - else - switch(ign[0]) - {case 0:var pad_opt=ign[1];return [0,[2,pad_of_pad_opt(pad_opt),fmt]]; - case 1: - var pad_opt$0=ign[1];return [0,[3,pad_of_pad_opt(pad_opt$0),fmt]]; - case 2: - var pad_opt$1=ign[2],iconv=ign[1]; - return [0,[4,iconv,pad_of_pad_opt(pad_opt$1),0,fmt]]; - case 3: - var pad_opt$2=ign[2],iconv$0=ign[1]; - return [0,[5,iconv$0,pad_of_pad_opt(pad_opt$2),0,fmt]]; - case 4: - var pad_opt$3=ign[2],iconv$1=ign[1]; - return [0,[6,iconv$1,pad_of_pad_opt(pad_opt$3),0,fmt]]; - case 5: - var pad_opt$4=ign[2],iconv$2=ign[1]; - return [0,[7,iconv$2,pad_of_pad_opt(pad_opt$4),0,fmt]]; - case 6: - var prec_opt=ign[2],pad_opt$5=ign[1]; - if(prec_opt)var ndec=prec_opt[1],_uW_=[0,ndec];else var _uW_=0; - return [0,[8,_ae_,pad_of_pad_opt(pad_opt$5),_uW_,fmt]]; - case 7: - var pad_opt$6=ign[1];return [0,[9,pad_of_pad_opt(pad_opt$6),fmt]]; - case 8: - var fmtty=ign[2],pad_opt$7=ign[1]; - return [0,[13,pad_opt$7,fmtty,fmt]]; - case 9: - var fmtty$0=ign[2],pad_opt$8=ign[1]; - return [0,[14,pad_opt$8,fmtty$0,fmt]]; - case 10: - var char_set=ign[2],width_opt=ign[1]; - return [0,[20,width_opt,char_set,fmt]]; - default:var counter=ign[1];return [0,[21,counter,fmt]]}} - function default_float_precision(fconv){return 5 === fconv[2]?12:-6} - function buffer_create(init_size) - {return [0,0,caml_create_bytes(init_size)]} - function buffer_check_size(buf,overhead) - {var - len=caml_ml_bytes_length(buf[2]), - min_len=buf[1] + overhead | 0, - _uU_=len < min_len?1:0; - if(_uU_) - {var - new_len=max$1(len * 2 | 0,min_len), - new_str=caml_create_bytes(new_len); - blit(buf[2],0,new_str,0,len); - buf[2] = new_str; - var _uV_=0} - else - var _uV_=_uU_; - return _uV_} - function buffer_add_char(buf,c) - {buffer_check_size(buf,1); - caml_bytes_set(buf[2],buf[1],c); - buf[1] = buf[1] + 1 | 0; - return 0} - function buffer_add_string(buf,s) - {var str_len=caml_ml_string_length(s); - buffer_check_size(buf,str_len); - blit$0(s,0,buf[2],buf[1],str_len); - buf[1] = buf[1] + str_len | 0; - return 0} - function buffer_contents(buf){return sub_string(buf[2],0,buf[1])} - function char_of_iconv(iconv) - {switch(iconv) - {case 6: - case 7:return 120; - case 8: - case 9:return 88; - case 10: - case 11:return 111; - case 12: - case 15:return 117; - case 0: - case 1: - case 2: - case 13:return 100; - default:return 105}} - function char_of_fconv(opt,fconv) - {if(opt)var sth=opt[1],cF=sth;else var cF=70; - switch(fconv[2]) - {case 0:return 102; - case 1:return 101; - case 2:return 69; - case 3:return 103; - case 4:return 71; - case 5:return cF; - case 6:return 104; - case 7:return 72; - default:return 70}} - function bprint_padty(buf,padty) - {switch(padty) - {case 0:return buffer_add_char(buf,45); - case 1:return 0; - default:return buffer_add_char(buf,48)}} - function bprint_ignored_flag(buf,ign_flag) - {return ign_flag?buffer_add_char(buf,95):ign_flag} - function bprint_pad_opt(buf,pad_opt) - {if(pad_opt) - {var width=pad_opt[1]; - return buffer_add_string(buf,caml_string_of_jsbytes("" + width))} - return 0} - function bprint_padding(buf,pad) - {if(typeof pad === "number") - return 0; - else - {if(0 === pad[0]) - {var n=pad[2],padty=pad[1]; - bprint_padty(buf,padty); - return buffer_add_string(buf,caml_string_of_jsbytes("" + n))} - var padty$0=pad[1]; - bprint_padty(buf,padty$0); - return buffer_add_char(buf,42)}} - function bprint_precision(buf,prec) - {if(typeof prec === "number")return prec?buffer_add_string(buf,cst$11):0; - var n=prec[1]; - buffer_add_char(buf,46); - return buffer_add_string(buf,caml_string_of_jsbytes("" + n))} - function bprint_iconv_flag(buf,iconv) - {switch(iconv) - {case 1: - case 4:return buffer_add_char(buf,43); - case 2: - case 5:return buffer_add_char(buf,32); - case 7: - case 9: - case 11: - case 13: - case 14: - case 15:return buffer_add_char(buf,35); - default:return 0}} - function bprint_altint_fmt(buf,ign_flag,iconv,pad,prec,c) - {buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag); - bprint_iconv_flag(buf,iconv); - bprint_padding(buf,pad); - bprint_precision(buf,prec); - buffer_add_char(buf,c); - return buffer_add_char(buf,char_of_iconv(iconv))} - function bprint_fconv_flag(buf,fconv) - {switch(fconv[1]) - {case 0:break; - case 1:buffer_add_char(buf,43);break; - default:buffer_add_char(buf,32)} - return 8 <= fconv[2]?buffer_add_char(buf,35):0} - function string_of_formatting_lit(formatting_lit) - {if(typeof formatting_lit === "number") - switch(formatting_lit) - {case 0:return cst$12; - case 1:return cst$13; - case 2:return cst$14; - case 3:return cst$15; - case 4:return cst$16; - case 5:return cst$17; - default:return cst$18} - else - switch(formatting_lit[0]) - {case 0:var str=formatting_lit[1];return str; - case 1:var str$0=formatting_lit[1];return str$0; - default:var c=formatting_lit[1];return cat(cst$19,make$1(1,c))}} - function bprint_char_literal(buf,chr) - {return 37 === chr?buffer_add_string(buf,cst$20):buffer_add_char(buf,chr)} - function bprint_string_literal(buf,str) - {var _uS_=caml_ml_string_length(str) - 1 | 0,_uR_=0; - if(! (_uS_ < 0)) - {var i=_uR_; - for(;;) - {bprint_char_literal(buf,caml_string_get(str,i)); - var _uT_=i + 1 | 0; - if(_uS_ !== i){var i=_uT_;continue} - break}} - return 0} - function bprint_fmtty(buf,fmtty) - {var fmtty$0=fmtty; - for(;;) - if(typeof fmtty$0 === "number") - return 0; - else - switch(fmtty$0[0]) - {case 0: - var rest=fmtty$0[1]; - buffer_add_string(buf,cst_c); - var fmtty$0=rest; - continue; - case 1: - var rest$0=fmtty$0[1]; - buffer_add_string(buf,cst_s); - var fmtty$0=rest$0; - continue; - case 2: - var rest$1=fmtty$0[1]; - buffer_add_string(buf,cst_i); - var fmtty$0=rest$1; - continue; - case 3: - var rest$2=fmtty$0[1]; - buffer_add_string(buf,cst_li); - var fmtty$0=rest$2; - continue; - case 4: - var rest$3=fmtty$0[1]; - buffer_add_string(buf,cst_ni); - var fmtty$0=rest$3; - continue; - case 5: - var rest$4=fmtty$0[1]; - buffer_add_string(buf,cst_Li); - var fmtty$0=rest$4; - continue; - case 6: - var rest$5=fmtty$0[1]; - buffer_add_string(buf,cst_f); - var fmtty$0=rest$5; - continue; - case 7: - var rest$6=fmtty$0[1]; - buffer_add_string(buf,cst_B); - var fmtty$0=rest$6; - continue; - case 8: - var rest$7=fmtty$0[2],sub_fmtty=fmtty$0[1]; - buffer_add_string(buf,cst$21); - bprint_fmtty(buf,sub_fmtty); - buffer_add_string(buf,cst$22); - var fmtty$0=rest$7; - continue; - case 9: - var rest$8=fmtty$0[3],sub_fmtty$0=fmtty$0[1]; - buffer_add_string(buf,cst$23); - bprint_fmtty(buf,sub_fmtty$0); - buffer_add_string(buf,cst$24); - var fmtty$0=rest$8; - continue; - case 10: - var rest$9=fmtty$0[1]; - buffer_add_string(buf,cst_a); - var fmtty$0=rest$9; - continue; - case 11: - var rest$10=fmtty$0[1]; - buffer_add_string(buf,cst_t$0); - var fmtty$0=rest$10; - continue; - case 12: - var rest$11=fmtty$0[1]; - buffer_add_string(buf,cst$25); - var fmtty$0=rest$11; - continue; - case 13: - var rest$12=fmtty$0[1]; - buffer_add_string(buf,cst_r$0); - var fmtty$0=rest$12; - continue; - default: - var rest$13=fmtty$0[1]; - buffer_add_string(buf,cst_r$1); - var fmtty$0=rest$13; - continue}} - function int_of_custom_arity(param) - {if(param){var x=param[1];return 1 + int_of_custom_arity(x) | 0}return 0} - function string_of_fmt(fmt) - {var buf=buffer_create(16); - function fmtiter(fmt,ign_flag) - {var fmt$0=fmt,ign_flag$0=ign_flag; - a: - for(;;) - if(typeof fmt$0 === "number") - return 0; - else - switch(fmt$0[0]) - {case 0: - var rest=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - buffer_add_char(buf,99); - var fmt$0=rest,ign_flag$0=0; - continue; - case 1: - var rest$0=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - buffer_add_char(buf,67); - var fmt$0=rest$0,ign_flag$0=0; - continue; - case 2: - var rest$1=fmt$0[2],pad=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - bprint_padding(buf,pad); - buffer_add_char(buf,115); - var fmt$0=rest$1,ign_flag$0=0; - continue; - case 3: - var rest$2=fmt$0[2],pad$0=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - bprint_padding(buf,pad$0); - buffer_add_char(buf,83); - var fmt$0=rest$2,ign_flag$0=0; - continue; - case 4: - var rest$3=fmt$0[4],prec=fmt$0[3],pad$1=fmt$0[2],iconv=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - bprint_iconv_flag(buf,iconv); - bprint_padding(buf,pad$1); - bprint_precision(buf,prec); - buffer_add_char(buf,char_of_iconv(iconv)); - var fmt$0=rest$3,ign_flag$0=0; - continue; - case 5: - var - rest$4=fmt$0[4], - prec$0=fmt$0[3], - pad$2=fmt$0[2], - iconv$0=fmt$0[1]; - bprint_altint_fmt(buf,ign_flag$0,iconv$0,pad$2,prec$0,108); - var fmt$0=rest$4,ign_flag$0=0; - continue; - case 6: - var - rest$5=fmt$0[4], - prec$1=fmt$0[3], - pad$3=fmt$0[2], - iconv$1=fmt$0[1]; - bprint_altint_fmt(buf,ign_flag$0,iconv$1,pad$3,prec$1,110); - var fmt$0=rest$5,ign_flag$0=0; - continue; - case 7: - var - rest$6=fmt$0[4], - prec$2=fmt$0[3], - pad$4=fmt$0[2], - iconv$2=fmt$0[1]; - bprint_altint_fmt(buf,ign_flag$0,iconv$2,pad$4,prec$2,76); - var fmt$0=rest$6,ign_flag$0=0; - continue; - case 8: - var - rest$7=fmt$0[4], - prec$3=fmt$0[3], - pad$5=fmt$0[2], - fconv=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - bprint_fconv_flag(buf,fconv); - bprint_padding(buf,pad$5); - bprint_precision(buf,prec$3); - buffer_add_char(buf,char_of_fconv(0,fconv)); - var fmt$0=rest$7,ign_flag$0=0; - continue; - case 9: - var rest$8=fmt$0[2],pad$6=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - bprint_padding(buf,pad$6); - buffer_add_char(buf,66); - var fmt$0=rest$8,ign_flag$0=0; - continue; - case 10: - var rest$9=fmt$0[1]; - buffer_add_string(buf,cst$26); - var fmt$0=rest$9; - continue; - case 11: - var rest$10=fmt$0[2],str=fmt$0[1]; - bprint_string_literal(buf,str); - var fmt$0=rest$10; - continue; - case 12: - var rest$11=fmt$0[2],chr$0=fmt$0[1]; - bprint_char_literal(buf,chr$0); - var fmt$0=rest$11; - continue; - case 13: - var rest$12=fmt$0[3],fmtty=fmt$0[2],pad_opt=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - bprint_pad_opt(buf,pad_opt); - buffer_add_char(buf,123); - bprint_fmtty(buf,fmtty); - buffer_add_char(buf,37); - buffer_add_char(buf,125); - var fmt$0=rest$12,ign_flag$0=0; - continue; - case 14: - var rest$13=fmt$0[3],fmtty$0=fmt$0[2],pad_opt$0=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - bprint_pad_opt(buf,pad_opt$0); - buffer_add_char(buf,40); - bprint_fmtty(buf,fmtty$0); - buffer_add_char(buf,37); - buffer_add_char(buf,41); - var fmt$0=rest$13,ign_flag$0=0; - continue; - case 15: - var rest$14=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - buffer_add_char(buf,97); - var fmt$0=rest$14,ign_flag$0=0; - continue; - case 16: - var rest$15=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - buffer_add_char(buf,116); - var fmt$0=rest$15,ign_flag$0=0; - continue; - case 17: - var rest$16=fmt$0[2],fmting_lit=fmt$0[1]; - bprint_string_literal(buf,string_of_formatting_lit(fmting_lit)); - var fmt$0=rest$16; - continue; - case 18: - var rest$17=fmt$0[2],fmting_gen=fmt$0[1]; - if(0 === fmting_gen[0]) - {var match$1=fmting_gen[1],str$0=match$1[2]; - buffer_add_string(buf,cst$27); - buffer_add_string(buf,str$0)} - else - {var match$2=fmting_gen[1],str$1=match$2[2]; - buffer_add_string(buf,cst$28); - buffer_add_string(buf,str$1)} - var fmt$0=rest$17; - continue; - case 19: - var rest$18=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - buffer_add_char(buf,114); - var fmt$0=rest$18,ign_flag$0=0; - continue; - case 20: - var rest$19=fmt$0[3],char_set=fmt$0[2],width_opt=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - bprint_pad_opt(buf,width_opt); - var - print_char= - function(buf,i) - {var c=char_of_int(i); - return 37 === c - ?(buffer_add_char(buf,37),buffer_add_char(buf,37)) - :64 === c - ?(buffer_add_char(buf,37),buffer_add_char(buf,64)) - :buffer_add_char(buf,c)}; - buffer_add_char(buf,91); - var - _uH_= - is_in_char_set(char_set,0) - ?(buffer_add_char(buf,94),rev_char_set(char_set)) - :char_set, - is_alone$0= - function(_uM_) - {function is_alone(c) - {var - after=chr(c + 1 | 0), - before=chr(c - 1 | 0), - _uN_=is_in_char_set(_uM_,c); - if(_uN_) - var - _uO_=is_in_char_set(_uM_,before), - _uP_=_uO_?is_in_char_set(_uM_,after):_uO_, - _uQ_=1 - _uP_; - else - var _uQ_=_uN_; - return _uQ_} - return is_alone}, - is_alone=is_alone$0(_uH_); - if(is_alone(93))buffer_add_char(buf,93); - var i=1; - b: - for(;;) - {if(i < 256) - {if(! is_in_char_set(_uH_,char_of_int(i))) - {var i$0=i + 1 | 0,i=i$0;continue} - var match=char_of_int(i),switcher=match - 45 | 0,switch$0=0; - if(48 < switcher >>> 0) - if(210 <= switcher)print_char(buf,255);else switch$0 = 1; - else - {if(46 < switcher - 1 >>> 0) - {var i$2=i + 1 | 0,i=i$2;continue} - switch$0 = 1} - if(switch$0) - {var i$1=i + 1 | 0; - if(! is_in_char_set(_uH_,char_of_int(i$1))) - {print_char(buf,i$1 - 1 | 0); - var i$6=i$1 + 1 | 0,i=i$6; - continue} - var - match$0=char_of_int(i$1), - switcher$0=match$0 - 45 | 0, - switch$1=0; - if(48 < switcher$0 >>> 0) - if(210 <= switcher$0) - {print_char(buf,254);print_char(buf,255)} - else - switch$1 = 1; - else - if(46 < switcher$0 - 1 >>> 0) - {if(! is_in_char_set(_uH_,char_of_int(i$1 + 1 | 0))) - {print_char(buf,i$1 - 1 | 0); - var i$5=i$1 + 1 | 0,i=i$5; - continue} - switch$1 = 1} - else - switch$1 = 1; - if(switch$1) - {if(! is_in_char_set(_uH_,char_of_int(i$1 + 1 | 0))) - {print_char(buf,i$1 - 1 | 0); - print_char(buf,i$1); - var i$4=i$1 + 2 | 0,i=i$4; - continue} - var j=i$1 + 2 | 0,i$3=i$1 - 1 | 0,j$0=j; - for(;;) - {if(256 !== j$0 && is_in_char_set(_uH_,char_of_int(j$0))) - {var j$1=j$0 + 1 | 0,j$0=j$1;continue} - print_char(buf,i$3); - print_char(buf,45); - print_char(buf,j$0 - 1 | 0); - if(j$0 < 256){var i$7=j$0 + 1 | 0,i=i$7;continue b} - break}}}} - if(is_alone(45))buffer_add_char(buf,45); - buffer_add_char(buf,93); - var fmt$0=rest$19,ign_flag$0=0; - continue a} - case 21: - var rest$20=fmt$0[2],counter=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - switch(counter) - {case 0:var _uI_=108;break; - case 1:var _uI_=110;break; - default:var _uI_=78} - buffer_add_char(buf,_uI_); - var fmt$0=rest$20,ign_flag$0=0; - continue; - case 22: - var rest$21=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - bprint_string_literal(buf,cst_0c); - var fmt$0=rest$21,ign_flag$0=0; - continue; - case 23: - var - rest$22=fmt$0[2], - ign=fmt$0[1], - match$3=param_format_of_ignored_format(ign,rest$22), - fmt$1=match$3[1], - fmt$0=fmt$1, - ign_flag$0=1; - continue; - default: - var - rest$23=fmt$0[3], - arity=fmt$0[1], - _uK_=int_of_custom_arity(arity), - _uJ_=1; - if(! (_uK_ < 1)) - {var i$8=_uJ_; - for(;;) - {buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - buffer_add_char(buf,63); - var _uL_=i$8 + 1 | 0; - if(_uK_ !== i$8){var i$8=_uL_;continue} - break}} - var fmt$0=rest$23,ign_flag$0=0; - continue}} - fmtiter(fmt,0); - return buffer_contents(buf)} - function symm(param) - {if(typeof param === "number") - return 0; - else - switch(param[0]) - {case 0:var rest=param[1];return [0,symm(rest)]; - case 1:var rest$0=param[1];return [1,symm(rest$0)]; - case 2:var rest$1=param[1];return [2,symm(rest$1)]; - case 3:var rest$2=param[1];return [3,symm(rest$2)]; - case 4:var rest$3=param[1];return [4,symm(rest$3)]; - case 5:var rest$4=param[1];return [5,symm(rest$4)]; - case 6:var rest$5=param[1];return [6,symm(rest$5)]; - case 7:var rest$6=param[1];return [7,symm(rest$6)]; - case 8:var rest$7=param[2],ty=param[1];return [8,ty,symm(rest$7)]; - case 9: - var rest$8=param[3],ty2=param[2],ty1=param[1]; - return [9,ty2,ty1,symm(rest$8)]; - case 10:var rest$9=param[1];return [10,symm(rest$9)]; - case 11:var rest$10=param[1];return [11,symm(rest$10)]; - case 12:var rest$11=param[1];return [12,symm(rest$11)]; - case 13:var rest$12=param[1];return [13,symm(rest$12)]; - default:var rest$13=param[1];return [14,symm(rest$13)]}} - function fmtty_rel_det(param) - {if(typeof param === "number") - {var - _uj_=function(param){return 0}, - _uk_=function(param){return 0}, - _ul_=function(param){return 0}; - return [0,function(param){return 0},_ul_,_uk_,_uj_]} - else - switch(param[0]) - {case 0: - var - rest=param[1], - match=fmtty_rel_det(rest), - de=match[4], - ed=match[3], - af=match[2], - fa=match[1], - _um_=function(param){caml_call1(af,0);return 0}; - return [0,function(param){caml_call1(fa,0);return 0},_um_,ed,de]; - case 1: - var - rest$0=param[1], - match$0=fmtty_rel_det(rest$0), - de$0=match$0[4], - ed$0=match$0[3], - af$0=match$0[2], - fa$0=match$0[1], - _un_=function(param){caml_call1(af$0,0);return 0}; - return [0, - function(param){caml_call1(fa$0,0);return 0}, - _un_, - ed$0, - de$0]; - case 2: - var - rest$1=param[1], - match$1=fmtty_rel_det(rest$1), - de$1=match$1[4], - ed$1=match$1[3], - af$1=match$1[2], - fa$1=match$1[1], - _uo_=function(param){caml_call1(af$1,0);return 0}; - return [0, - function(param){caml_call1(fa$1,0);return 0}, - _uo_, - ed$1, - de$1]; - case 3: - var - rest$2=param[1], - match$2=fmtty_rel_det(rest$2), - de$2=match$2[4], - ed$2=match$2[3], - af$2=match$2[2], - fa$2=match$2[1], - _up_=function(param){caml_call1(af$2,0);return 0}; - return [0, - function(param){caml_call1(fa$2,0);return 0}, - _up_, - ed$2, - de$2]; - case 4: - var - rest$3=param[1], - match$3=fmtty_rel_det(rest$3), - de$3=match$3[4], - ed$3=match$3[3], - af$3=match$3[2], - fa$3=match$3[1], - _uq_=function(param){caml_call1(af$3,0);return 0}; - return [0, - function(param){caml_call1(fa$3,0);return 0}, - _uq_, - ed$3, - de$3]; - case 5: - var - rest$4=param[1], - match$4=fmtty_rel_det(rest$4), - de$4=match$4[4], - ed$4=match$4[3], - af$4=match$4[2], - fa$4=match$4[1], - _ur_=function(param){caml_call1(af$4,0);return 0}; - return [0, - function(param){caml_call1(fa$4,0);return 0}, - _ur_, - ed$4, - de$4]; - case 6: - var - rest$5=param[1], - match$5=fmtty_rel_det(rest$5), - de$5=match$5[4], - ed$5=match$5[3], - af$5=match$5[2], - fa$5=match$5[1], - _us_=function(param){caml_call1(af$5,0);return 0}; - return [0, - function(param){caml_call1(fa$5,0);return 0}, - _us_, - ed$5, - de$5]; - case 7: - var - rest$6=param[1], - match$6=fmtty_rel_det(rest$6), - de$6=match$6[4], - ed$6=match$6[3], - af$6=match$6[2], - fa$6=match$6[1], - _ut_=function(param){caml_call1(af$6,0);return 0}; - return [0, - function(param){caml_call1(fa$6,0);return 0}, - _ut_, - ed$6, - de$6]; - case 8: - var - rest$7=param[2], - match$7=fmtty_rel_det(rest$7), - de$7=match$7[4], - ed$7=match$7[3], - af$7=match$7[2], - fa$7=match$7[1], - _uu_=function(param){caml_call1(af$7,0);return 0}; - return [0, - function(param){caml_call1(fa$7,0);return 0}, - _uu_, - ed$7, - de$7]; - case 9: - var - rest$8=param[3], - ty2=param[2], - ty1=param[1], - match$8=fmtty_rel_det(rest$8), - de$8=match$8[4], - ed$8=match$8[3], - af$8=match$8[2], - fa$8=match$8[1], - ty=trans(symm(ty1),ty2), - match$9=fmtty_rel_det(ty), - jd=match$9[4], - dj=match$9[3], - ga=match$9[2], - ag=match$9[1], - _uv_=function(param){caml_call1(jd,0);caml_call1(de$8,0);return 0}, - _uw_=function(param){caml_call1(ed$8,0);caml_call1(dj,0);return 0}, - _ux_=function(param){caml_call1(ga,0);caml_call1(af$8,0);return 0}; - return [0, - function(param) - {caml_call1(fa$8,0);caml_call1(ag,0);return 0}, - _ux_, - _uw_, - _uv_]; - case 10: - var - rest$9=param[1], - match$10=fmtty_rel_det(rest$9), - de$9=match$10[4], - ed$9=match$10[3], - af$9=match$10[2], - fa$9=match$10[1], - _uy_=function(param){caml_call1(af$9,0);return 0}; - return [0, - function(param){caml_call1(fa$9,0);return 0}, - _uy_, - ed$9, - de$9]; - case 11: - var - rest$10=param[1], - match$11=fmtty_rel_det(rest$10), - de$10=match$11[4], - ed$10=match$11[3], - af$10=match$11[2], - fa$10=match$11[1], - _uz_=function(param){caml_call1(af$10,0);return 0}; - return [0, - function(param){caml_call1(fa$10,0);return 0}, - _uz_, - ed$10, - de$10]; - case 12: - var - rest$11=param[1], - match$12=fmtty_rel_det(rest$11), - de$11=match$12[4], - ed$11=match$12[3], - af$11=match$12[2], - fa$11=match$12[1], - _uA_=function(param){caml_call1(af$11,0);return 0}; - return [0, - function(param){caml_call1(fa$11,0);return 0}, - _uA_, - ed$11, - de$11]; - case 13: - var - rest$12=param[1], - match$13=fmtty_rel_det(rest$12), - de$12=match$13[4], - ed$12=match$13[3], - af$12=match$13[2], - fa$12=match$13[1], - _uB_=function(param){caml_call1(de$12,0);return 0}, - _uC_=function(param){caml_call1(ed$12,0);return 0}, - _uD_=function(param){caml_call1(af$12,0);return 0}; - return [0, - function(param){caml_call1(fa$12,0);return 0}, - _uD_, - _uC_, - _uB_]; - default: - var - rest$13=param[1], - match$14=fmtty_rel_det(rest$13), - de$13=match$14[4], - ed$13=match$14[3], - af$13=match$14[2], - fa$13=match$14[1], - _uE_=function(param){caml_call1(de$13,0);return 0}, - _uF_=function(param){caml_call1(ed$13,0);return 0}, - _uG_=function(param){caml_call1(af$13,0);return 0}; - return [0, - function(param){caml_call1(fa$13,0);return 0}, - _uG_, - _uF_, - _uE_]}} - function trans(ty1,ty2) - {var switch$0=0; - if(typeof ty1 === "number") - if(typeof ty2 === "number") - return 0; - else - switch(ty2[0]) - {case 10:break; - case 11:switch$0 = 1;break; - case 12:switch$0 = 2;break; - case 13:switch$0 = 3;break; - case 14:switch$0 = 4;break; - case 8:switch$0 = 5;break; - case 9:switch$0 = 6;break; - default:throw [0,Assert_failure,_af_]} - else - switch(ty1[0]) - {case 0: - var switch$1=0,_t2_=ty1[1]; - if(typeof ty2 !== "number") - switch(ty2[0]) - {case 0:var rest2=ty2[1];return [0,trans(_t2_,rest2)]; - case 8:switch$0 = 5;switch$1 = 1;break; - case 9:switch$0 = 6;switch$1 = 1;break; - case 10:switch$1 = 1;break; - case 11:switch$0 = 1;switch$1 = 1;break; - case 12:switch$0 = 2;switch$1 = 1;break; - case 13:switch$0 = 3;switch$1 = 1;break; - case 14:switch$0 = 4;switch$1 = 1;break - } - if(! switch$1)switch$0 = 7; - break; - case 1: - var switch$2=0,_t3_=ty1[1]; - if(typeof ty2 !== "number") - switch(ty2[0]) - {case 1:var rest2$0=ty2[1];return [1,trans(_t3_,rest2$0)]; - case 8:switch$0 = 5;switch$2 = 1;break; - case 9:switch$0 = 6;switch$2 = 1;break; - case 10:switch$2 = 1;break; - case 11:switch$0 = 1;switch$2 = 1;break; - case 12:switch$0 = 2;switch$2 = 1;break; - case 13:switch$0 = 3;switch$2 = 1;break; - case 14:switch$0 = 4;switch$2 = 1;break - } - if(! switch$2)switch$0 = 7; - break; - case 2: - var switch$3=0,_t4_=ty1[1]; - if(typeof ty2 === "number") - switch$3 = 1; - else - switch(ty2[0]) - {case 2:var rest2$1=ty2[1];return [2,trans(_t4_,rest2$1)]; - case 8:switch$0 = 5;break; - case 9:switch$0 = 6;break; - case 10:break; - case 11:switch$0 = 1;break; - case 12:switch$0 = 2;break; - case 13:switch$0 = 3;break; - case 14:switch$0 = 4;break; - default:switch$3 = 1} - if(switch$3)switch$0 = 7; - break; - case 3: - var switch$4=0,_t5_=ty1[1]; - if(typeof ty2 === "number") - switch$4 = 1; - else - switch(ty2[0]) - {case 3:var rest2$2=ty2[1];return [3,trans(_t5_,rest2$2)]; - case 8:switch$0 = 5;break; - case 9:switch$0 = 6;break; - case 10:break; - case 11:switch$0 = 1;break; - case 12:switch$0 = 2;break; - case 13:switch$0 = 3;break; - case 14:switch$0 = 4;break; - default:switch$4 = 1} - if(switch$4)switch$0 = 7; - break; - case 4: - var switch$5=0,_t6_=ty1[1]; - if(typeof ty2 === "number") - switch$5 = 1; - else - switch(ty2[0]) - {case 4:var rest2$3=ty2[1];return [4,trans(_t6_,rest2$3)]; - case 8:switch$0 = 5;break; - case 9:switch$0 = 6;break; - case 10:break; - case 11:switch$0 = 1;break; - case 12:switch$0 = 2;break; - case 13:switch$0 = 3;break; - case 14:switch$0 = 4;break; - default:switch$5 = 1} - if(switch$5)switch$0 = 7; - break; - case 5: - var switch$6=0,_t7_=ty1[1]; - if(typeof ty2 === "number") - switch$6 = 1; - else - switch(ty2[0]) - {case 5:var rest2$4=ty2[1];return [5,trans(_t7_,rest2$4)]; - case 8:switch$0 = 5;break; - case 9:switch$0 = 6;break; - case 10:break; - case 11:switch$0 = 1;break; - case 12:switch$0 = 2;break; - case 13:switch$0 = 3;break; - case 14:switch$0 = 4;break; - default:switch$6 = 1} - if(switch$6)switch$0 = 7; - break; - case 6: - var switch$7=0,_t8_=ty1[1]; - if(typeof ty2 === "number") - switch$7 = 1; - else - switch(ty2[0]) - {case 6:var rest2$5=ty2[1];return [6,trans(_t8_,rest2$5)]; - case 8:switch$0 = 5;break; - case 9:switch$0 = 6;break; - case 10:break; - case 11:switch$0 = 1;break; - case 12:switch$0 = 2;break; - case 13:switch$0 = 3;break; - case 14:switch$0 = 4;break; - default:switch$7 = 1} - if(switch$7)switch$0 = 7; - break; - case 7: - var switch$8=0,_t9_=ty1[1]; - if(typeof ty2 === "number") - switch$8 = 1; - else - switch(ty2[0]) - {case 7:var rest2$6=ty2[1];return [7,trans(_t9_,rest2$6)]; - case 8:switch$0 = 5;break; - case 9:switch$0 = 6;break; - case 10:break; - case 11:switch$0 = 1;break; - case 12:switch$0 = 2;break; - case 13:switch$0 = 3;break; - case 14:switch$0 = 4;break; - default:switch$8 = 1} - if(switch$8)switch$0 = 7; - break; - case 8: - var switch$9=0,_t__=ty1[2],_t$_=ty1[1]; - if(typeof ty2 === "number") - switch$9 = 1; - else - switch(ty2[0]) - {case 8: - var rest2$7=ty2[2],ty2$0=ty2[1],_ua_=trans(_t__,rest2$7); - return [8,trans(_t$_,ty2$0),_ua_]; - case 10:break; - case 11:switch$0 = 1;break; - case 12:switch$0 = 2;break; - case 13:switch$0 = 3;break; - case 14:switch$0 = 4;break; - default:switch$9 = 1} - if(switch$9)throw [0,Assert_failure,_ao_]; - break; - case 9: - var switch$10=0,_ub_=ty1[3],_uc_=ty1[2],_ud_=ty1[1]; - if(typeof ty2 === "number") - switch$10 = 1; - else - switch(ty2[0]) - {case 8:switch$0 = 5;break; - case 9: - var - rest2$8=ty2[3], - ty22=ty2[2], - ty21=ty2[1], - ty=trans(symm(_uc_),ty21), - match=fmtty_rel_det(ty), - f4=match[4], - f2=match[2]; - caml_call1(f2,0); - caml_call1(f4,0); - return [9,_ud_,ty22,trans(_ub_,rest2$8)]; - case 10:break; - case 11:switch$0 = 1;break; - case 12:switch$0 = 2;break; - case 13:switch$0 = 3;break; - case 14:switch$0 = 4;break; - default:switch$10 = 1} - if(switch$10)throw [0,Assert_failure,_ap_]; - break; - case 10: - var _ue_=ty1[1]; - if(typeof ty2 !== "number" && 10 === ty2[0]) - {var rest2$9=ty2[1];return [10,trans(_ue_,rest2$9)]} - throw [0,Assert_failure,_aq_]; - case 11: - var switch$11=0,_uf_=ty1[1]; - if(typeof ty2 === "number") - switch$11 = 1; - else - switch(ty2[0]) - {case 10:break; - case 11:var rest2$10=ty2[1];return [11,trans(_uf_,rest2$10)]; - default:switch$11 = 1} - if(switch$11)throw [0,Assert_failure,_ar_]; - break; - case 12: - var switch$12=0,_ug_=ty1[1]; - if(typeof ty2 === "number") - switch$12 = 1; - else - switch(ty2[0]) - {case 10:break; - case 11:switch$0 = 1;break; - case 12:var rest2$11=ty2[1];return [12,trans(_ug_,rest2$11)]; - default:switch$12 = 1} - if(switch$12)throw [0,Assert_failure,_as_]; - break; - case 13: - var switch$13=0,_uh_=ty1[1]; - if(typeof ty2 === "number") - switch$13 = 1; - else - switch(ty2[0]) - {case 10:break; - case 11:switch$0 = 1;break; - case 12:switch$0 = 2;break; - case 13:var rest2$12=ty2[1];return [13,trans(_uh_,rest2$12)]; - default:switch$13 = 1} - if(switch$13)throw [0,Assert_failure,_at_]; - break; - default: - var switch$14=0,_ui_=ty1[1]; - if(typeof ty2 === "number") - switch$14 = 1; - else - switch(ty2[0]) - {case 10:break; - case 11:switch$0 = 1;break; - case 12:switch$0 = 2;break; - case 13:switch$0 = 3;break; - case 14:var rest2$13=ty2[1];return [14,trans(_ui_,rest2$13)]; - default:switch$14 = 1} - if(switch$14)throw [0,Assert_failure,_au_]} - switch(switch$0) - {case 0:throw [0,Assert_failure,_ai_]; - case 1:throw [0,Assert_failure,_aj_]; - case 2:throw [0,Assert_failure,_ak_]; - case 3:throw [0,Assert_failure,_al_]; - case 4:throw [0,Assert_failure,_am_]; - case 5:throw [0,Assert_failure,_ag_]; - case 6:throw [0,Assert_failure,_ah_]; - default:throw [0,Assert_failure,_an_]}} - function fmtty_of_padding_fmtty(pad,fmtty) - {return typeof pad === "number"?fmtty:0 === pad[0]?fmtty:[2,fmtty]} - function fmtty_of_custom(arity,fmtty) - {if(arity) - {var arity$0=arity[1];return [12,fmtty_of_custom(arity$0,fmtty)]} - return fmtty} - function fmtty_of_fmt(fmtty) - {var fmtty$0=fmtty; - for(;;) - if(typeof fmtty$0 === "number") - return 0; - else - switch(fmtty$0[0]) - {case 0:var rest=fmtty$0[1];return [0,fmtty_of_fmt(rest)]; - case 1:var rest$0=fmtty$0[1];return [0,fmtty_of_fmt(rest$0)]; - case 2: - var rest$1=fmtty$0[2],pad=fmtty$0[1]; - return fmtty_of_padding_fmtty(pad,[1,fmtty_of_fmt(rest$1)]); - case 3: - var rest$2=fmtty$0[2],pad$0=fmtty$0[1]; - return fmtty_of_padding_fmtty(pad$0,[1,fmtty_of_fmt(rest$2)]); - case 4: - var - rest$3=fmtty$0[4], - prec=fmtty$0[3], - pad$1=fmtty$0[2], - ty_rest=fmtty_of_fmt(rest$3), - prec_ty=fmtty_of_precision_fmtty(prec,[2,ty_rest]); - return fmtty_of_padding_fmtty(pad$1,prec_ty); - case 5: - var - rest$4=fmtty$0[4], - prec$0=fmtty$0[3], - pad$2=fmtty$0[2], - ty_rest$0=fmtty_of_fmt(rest$4), - prec_ty$0=fmtty_of_precision_fmtty(prec$0,[3,ty_rest$0]); - return fmtty_of_padding_fmtty(pad$2,prec_ty$0); - case 6: - var - rest$5=fmtty$0[4], - prec$1=fmtty$0[3], - pad$3=fmtty$0[2], - ty_rest$1=fmtty_of_fmt(rest$5), - prec_ty$1=fmtty_of_precision_fmtty(prec$1,[4,ty_rest$1]); - return fmtty_of_padding_fmtty(pad$3,prec_ty$1); - case 7: - var - rest$6=fmtty$0[4], - prec$2=fmtty$0[3], - pad$4=fmtty$0[2], - ty_rest$2=fmtty_of_fmt(rest$6), - prec_ty$2=fmtty_of_precision_fmtty(prec$2,[5,ty_rest$2]); - return fmtty_of_padding_fmtty(pad$4,prec_ty$2); - case 8: - var - rest$7=fmtty$0[4], - prec$3=fmtty$0[3], - pad$5=fmtty$0[2], - ty_rest$3=fmtty_of_fmt(rest$7), - prec_ty$3=fmtty_of_precision_fmtty(prec$3,[6,ty_rest$3]); - return fmtty_of_padding_fmtty(pad$5,prec_ty$3); - case 9: - var rest$8=fmtty$0[2],pad$6=fmtty$0[1]; - return fmtty_of_padding_fmtty(pad$6,[7,fmtty_of_fmt(rest$8)]); - case 10:var fmtty$1=fmtty$0[1],fmtty$0=fmtty$1;continue; - case 11:var fmtty$2=fmtty$0[2],fmtty$0=fmtty$2;continue; - case 12:var fmtty$3=fmtty$0[2],fmtty$0=fmtty$3;continue; - case 13: - var rest$9=fmtty$0[3],ty=fmtty$0[2]; - return [8,ty,fmtty_of_fmt(rest$9)]; - case 14: - var rest$10=fmtty$0[3],ty$0=fmtty$0[2]; - return [9,ty$0,ty$0,fmtty_of_fmt(rest$10)]; - case 15:var rest$11=fmtty$0[1];return [10,fmtty_of_fmt(rest$11)]; - case 16:var rest$12=fmtty$0[1];return [11,fmtty_of_fmt(rest$12)]; - case 17:var fmtty$4=fmtty$0[2],fmtty$0=fmtty$4;continue; - case 18: - var - rest$13=fmtty$0[2], - fmting_gen=fmtty$0[1], - _t0_=fmtty_of_fmt(rest$13); - if(0 === fmting_gen[0]) - var match=fmting_gen[1],fmt=match[1],_t1_=fmtty_of_fmt(fmt); - else - var - match$0=fmting_gen[1], - fmt$0=match$0[1], - _t1_=fmtty_of_fmt(fmt$0); - return concat_fmtty(_t1_,_t0_); - case 19:var rest$14=fmtty$0[1];return [13,fmtty_of_fmt(rest$14)]; - case 20:var rest$15=fmtty$0[3];return [1,fmtty_of_fmt(rest$15)]; - case 21:var rest$16=fmtty$0[2];return [2,fmtty_of_fmt(rest$16)]; - case 22:var rest$17=fmtty$0[1];return [0,fmtty_of_fmt(rest$17)]; - case 23: - var rest$18=fmtty$0[2],ign=fmtty$0[1]; - if(typeof ign === "number") - switch(ign) - {case 0:var fmtty$0=rest$18;continue; - case 1:var fmtty$0=rest$18;continue; - case 2:return [14,fmtty_of_fmt(rest$18)]; - default:var fmtty$0=rest$18;continue} - else - switch(ign[0]) - {case 0:var fmtty$0=rest$18;continue; - case 1:var fmtty$0=rest$18;continue; - case 2:var fmtty$0=rest$18;continue; - case 3:var fmtty$0=rest$18;continue; - case 4:var fmtty$0=rest$18;continue; - case 5:var fmtty$0=rest$18;continue; - case 6:var fmtty$0=rest$18;continue; - case 7:var fmtty$0=rest$18;continue; - case 8:var fmtty$0=rest$18;continue; - case 9: - var fmtty$5=ign[2]; - return concat_fmtty(fmtty$5,fmtty_of_fmt(rest$18)); - case 10:var fmtty$0=rest$18;continue; - default:var fmtty$0=rest$18;continue} - default: - var rest$19=fmtty$0[3],arity=fmtty$0[1]; - return fmtty_of_custom(arity,fmtty_of_fmt(rest$19))}} - function fmtty_of_precision_fmtty(prec,fmtty) - {return typeof prec === "number"?prec?[2,fmtty]:fmtty:fmtty} - var - Type_mismatch= - [248,cst_CamlinternalFormat_Type_mi,caml_fresh_oo_id(0)]; - function type_padding(pad,fmtty) - {if(typeof pad === "number") - return [0,0,fmtty]; - else - {if(0 === pad[0]) - {var w=pad[2],padty=pad[1];return [0,[0,padty,w],fmtty]} - if(typeof fmtty !== "number" && 2 === fmtty[0]) - {var rest=fmtty[1],padty$0=pad[1];return [0,[1,padty$0],rest]} - throw Type_mismatch}} - function type_padprec(pad,prec,fmtty) - {var match=type_padding(pad,fmtty); - if(typeof prec === "number") - {if(prec) - {var _tZ_=match[2]; - if(typeof _tZ_ !== "number" && 2 === _tZ_[0]) - {var rest=_tZ_[1],pad$0=match[1];return [0,pad$0,1,rest]} - throw Type_mismatch} - var rest$0=match[2],pad$1=match[1]; - return [0,pad$1,0,rest$0]} - var rest$1=match[2],pad$2=match[1],p=prec[1]; - return [0,pad$2,[0,p],rest$1]} - function type_format(fmt,fmtty) - {var _tY_=type_format_gen(fmt,fmtty); - if(typeof _tY_[2] === "number"){var fmt$0=_tY_[1];return fmt$0} - throw Type_mismatch} - function type_ignored_param_one(ign,fmt,fmtty) - {var match=type_format_gen(fmt,fmtty),fmtty$0=match[2],fmt$0=match[1]; - return [0,[23,ign,fmt$0],fmtty$0]} - function type_format_gen(fmt,fmtty) - {if(typeof fmt === "number") - return [0,0,fmtty]; - else - switch(fmt[0]) - {case 0: - if(typeof fmtty !== "number" && 0 === fmtty[0]) - {var - fmtty_rest=fmtty[1], - fmt_rest=fmt[1], - match=type_format_gen(fmt_rest,fmtty_rest), - fmtty$0=match[2], - fmt$0=match[1]; - return [0,[0,fmt$0],fmtty$0]} - break; - case 1: - if(typeof fmtty !== "number" && 0 === fmtty[0]) - {var - fmtty_rest$0=fmtty[1], - fmt_rest$0=fmt[1], - match$0=type_format_gen(fmt_rest$0,fmtty_rest$0), - fmtty$1=match$0[2], - fmt$1=match$0[1]; - return [0,[1,fmt$1],fmtty$1]} - break; - case 2: - var - fmt_rest$1=fmt[2], - pad=fmt[1], - match$1=type_padding(pad,fmtty), - _tH_=match$1[2], - _tG_=match$1[1]; - if(typeof _tH_ !== "number" && 1 === _tH_[0]) - {var - fmtty_rest$1=_tH_[1], - match$2=type_format_gen(fmt_rest$1,fmtty_rest$1), - fmtty$2=match$2[2], - fmt$2=match$2[1]; - return [0,[2,_tG_,fmt$2],fmtty$2]} - throw Type_mismatch; - case 3: - var - fmt_rest$2=fmt[2], - pad$0=fmt[1], - match$3=type_padding(pad$0,fmtty), - _tJ_=match$3[2], - _tI_=match$3[1]; - if(typeof _tJ_ !== "number" && 1 === _tJ_[0]) - {var - fmtty_rest$2=_tJ_[1], - match$4=type_format_gen(fmt_rest$2,fmtty_rest$2), - fmtty$3=match$4[2], - fmt$3=match$4[1]; - return [0,[3,_tI_,fmt$3],fmtty$3]} - throw Type_mismatch; - case 4: - var - fmt_rest$3=fmt[4], - prec=fmt[3], - pad$1=fmt[2], - iconv=fmt[1], - match$5=type_padprec(pad$1,prec,fmtty), - _tL_=match$5[3], - _tK_=match$5[1]; - if(typeof _tL_ !== "number" && 2 === _tL_[0]) - {var - fmtty_rest$3=_tL_[1], - prec$0=match$5[2], - match$6=type_format_gen(fmt_rest$3,fmtty_rest$3), - fmtty$4=match$6[2], - fmt$4=match$6[1]; - return [0,[4,iconv,_tK_,prec$0,fmt$4],fmtty$4]} - throw Type_mismatch; - case 5: - var - fmt_rest$4=fmt[4], - prec$1=fmt[3], - pad$2=fmt[2], - iconv$0=fmt[1], - match$7=type_padprec(pad$2,prec$1,fmtty), - _tN_=match$7[3], - _tM_=match$7[1]; - if(typeof _tN_ !== "number" && 3 === _tN_[0]) - {var - fmtty_rest$4=_tN_[1], - prec$2=match$7[2], - match$8=type_format_gen(fmt_rest$4,fmtty_rest$4), - fmtty$5=match$8[2], - fmt$5=match$8[1]; - return [0,[5,iconv$0,_tM_,prec$2,fmt$5],fmtty$5]} - throw Type_mismatch; - case 6: - var - fmt_rest$5=fmt[4], - prec$3=fmt[3], - pad$3=fmt[2], - iconv$1=fmt[1], - match$9=type_padprec(pad$3,prec$3,fmtty), - _tP_=match$9[3], - _tO_=match$9[1]; - if(typeof _tP_ !== "number" && 4 === _tP_[0]) - {var - fmtty_rest$5=_tP_[1], - prec$4=match$9[2], - match$10=type_format_gen(fmt_rest$5,fmtty_rest$5), - fmtty$6=match$10[2], - fmt$6=match$10[1]; - return [0,[6,iconv$1,_tO_,prec$4,fmt$6],fmtty$6]} - throw Type_mismatch; - case 7: - var - fmt_rest$6=fmt[4], - prec$5=fmt[3], - pad$4=fmt[2], - iconv$2=fmt[1], - match$11=type_padprec(pad$4,prec$5,fmtty), - _tR_=match$11[3], - _tQ_=match$11[1]; - if(typeof _tR_ !== "number" && 5 === _tR_[0]) - {var - fmtty_rest$6=_tR_[1], - prec$6=match$11[2], - match$12=type_format_gen(fmt_rest$6,fmtty_rest$6), - fmtty$7=match$12[2], - fmt$7=match$12[1]; - return [0,[7,iconv$2,_tQ_,prec$6,fmt$7],fmtty$7]} - throw Type_mismatch; - case 8: - var - fmt_rest$7=fmt[4], - prec$7=fmt[3], - pad$5=fmt[2], - fconv=fmt[1], - match$13=type_padprec(pad$5,prec$7,fmtty), - _tT_=match$13[3], - _tS_=match$13[1]; - if(typeof _tT_ !== "number" && 6 === _tT_[0]) - {var - fmtty_rest$7=_tT_[1], - prec$8=match$13[2], - match$14=type_format_gen(fmt_rest$7,fmtty_rest$7), - fmtty$8=match$14[2], - fmt$8=match$14[1]; - return [0,[8,fconv,_tS_,prec$8,fmt$8],fmtty$8]} - throw Type_mismatch; - case 9: - var - fmt_rest$8=fmt[2], - pad$6=fmt[1], - match$15=type_padding(pad$6,fmtty), - _tV_=match$15[2], - _tU_=match$15[1]; - if(typeof _tV_ !== "number" && 7 === _tV_[0]) - {var - fmtty_rest$8=_tV_[1], - match$16=type_format_gen(fmt_rest$8,fmtty_rest$8), - fmtty$9=match$16[2], - fmt$9=match$16[1]; - return [0,[9,_tU_,fmt$9],fmtty$9]} - throw Type_mismatch; - case 10: - var - fmt_rest$9=fmt[1], - match$17=type_format_gen(fmt_rest$9,fmtty), - fmtty$10=match$17[2], - fmt$10=match$17[1]; - return [0,[10,fmt$10],fmtty$10]; - case 11: - var - fmt_rest$10=fmt[2], - str=fmt[1], - match$18=type_format_gen(fmt_rest$10,fmtty), - fmtty$11=match$18[2], - fmt$11=match$18[1]; - return [0,[11,str,fmt$11],fmtty$11]; - case 12: - var - fmt_rest$11=fmt[2], - chr=fmt[1], - match$19=type_format_gen(fmt_rest$11,fmtty), - fmtty$12=match$19[2], - fmt$12=match$19[1]; - return [0,[12,chr,fmt$12],fmtty$12]; - case 13: - if(typeof fmtty !== "number" && 8 === fmtty[0]) - {var - fmtty_rest$9=fmtty[2], - sub_fmtty=fmtty[1], - fmt_rest$12=fmt[3], - sub_fmtty$0=fmt[2], - pad_opt=fmt[1]; - if(caml_notequal([0,sub_fmtty$0],[0,sub_fmtty])) - throw Type_mismatch; - var - match$20=type_format_gen(fmt_rest$12,fmtty_rest$9), - fmtty$13=match$20[2], - fmt$13=match$20[1]; - return [0,[13,pad_opt,sub_fmtty,fmt$13],fmtty$13]} - break; - case 14: - if(typeof fmtty !== "number" && 9 === fmtty[0]) - {var - fmtty_rest$10=fmtty[3], - sub_fmtty1=fmtty[1], - fmt_rest$13=fmt[3], - sub_fmtty$1=fmt[2], - pad_opt$0=fmt[1], - _tW_=[0,erase_rel(sub_fmtty1)]; - if(caml_notequal([0,erase_rel(sub_fmtty$1)],_tW_)) - throw Type_mismatch; - var - match$21=type_format_gen(fmt_rest$13,erase_rel(fmtty_rest$10)), - fmtty$14=match$21[2], - fmt$14=match$21[1]; - return [0,[14,pad_opt$0,sub_fmtty1,fmt$14],fmtty$14]} - break; - case 15: - if(typeof fmtty !== "number" && 10 === fmtty[0]) - {var - fmtty_rest$11=fmtty[1], - fmt_rest$14=fmt[1], - match$22=type_format_gen(fmt_rest$14,fmtty_rest$11), - fmtty$15=match$22[2], - fmt$15=match$22[1]; - return [0,[15,fmt$15],fmtty$15]} - break; - case 16: - if(typeof fmtty !== "number" && 11 === fmtty[0]) - {var - fmtty_rest$12=fmtty[1], - fmt_rest$15=fmt[1], - match$23=type_format_gen(fmt_rest$15,fmtty_rest$12), - fmtty$16=match$23[2], - fmt$16=match$23[1]; - return [0,[16,fmt$16],fmtty$16]} - break; - case 17: - var - fmt_rest$16=fmt[2], - formatting_lit=fmt[1], - match$24=type_format_gen(fmt_rest$16,fmtty), - fmtty$17=match$24[2], - fmt$17=match$24[1]; - return [0,[17,formatting_lit,fmt$17],fmtty$17]; - case 18: - var fmt_rest$17=fmt[2],formatting_gen=fmt[1]; - if(0 === formatting_gen[0]) - {var - match$28=formatting_gen[1], - str$0=match$28[2], - fmt1=match$28[1], - match$29=type_format_gen(fmt1,fmtty), - fmtty2=match$29[2], - fmt2=match$29[1], - match$30=type_format_gen(fmt_rest$17,fmtty2), - fmtty3=match$30[2], - fmt3=match$30[1]; - return [0,[18,[0,[0,fmt2,str$0]],fmt3],fmtty3]} - var - match$31=formatting_gen[1], - str$1=match$31[2], - fmt1$0=match$31[1], - match$32=type_format_gen(fmt1$0,fmtty), - fmtty2$0=match$32[2], - fmt2$0=match$32[1], - match$33=type_format_gen(fmt_rest$17,fmtty2$0), - fmtty3$0=match$33[2], - fmt3$0=match$33[1]; - return [0,[18,[1,[0,fmt2$0,str$1]],fmt3$0],fmtty3$0]; - case 19: - if(typeof fmtty !== "number" && 13 === fmtty[0]) - {var - fmtty_rest$13=fmtty[1], - fmt_rest$18=fmt[1], - match$25=type_format_gen(fmt_rest$18,fmtty_rest$13), - fmtty$18=match$25[2], - fmt$18=match$25[1]; - return [0,[19,fmt$18],fmtty$18]} - break; - case 20: - if(typeof fmtty !== "number" && 1 === fmtty[0]) - {var - fmtty_rest$14=fmtty[1], - fmt_rest$19=fmt[3], - char_set=fmt[2], - width_opt=fmt[1], - match$26=type_format_gen(fmt_rest$19,fmtty_rest$14), - fmtty$19=match$26[2], - fmt$19=match$26[1]; - return [0,[20,width_opt,char_set,fmt$19],fmtty$19]} - break; - case 21: - if(typeof fmtty !== "number" && 2 === fmtty[0]) - {var - fmtty_rest$15=fmtty[1], - fmt_rest$20=fmt[2], - counter=fmt[1], - match$27=type_format_gen(fmt_rest$20,fmtty_rest$15), - fmtty$20=match$27[2], - fmt$20=match$27[1]; - return [0,[21,counter,fmt$20],fmtty$20]} - break; - case 23: - var rest=fmt[2],ign=fmt[1]; - if(typeof ign === "number") - switch(ign) - {case 0:return type_ignored_param_one(ign,rest,fmtty); - case 1:return type_ignored_param_one(ign,rest,fmtty); - case 2: - if(typeof fmtty !== "number" && 14 === fmtty[0]) - {var - fmtty_rest$16=fmtty[1], - match$34=type_format_gen(rest,fmtty_rest$16), - fmtty$21=match$34[2], - fmt$21=match$34[1]; - return [0,[23,2,fmt$21],fmtty$21]} - throw Type_mismatch; - default:return type_ignored_param_one(ign,rest,fmtty)} - else - switch(ign[0]) - {case 0:return type_ignored_param_one(ign,rest,fmtty); - case 1:return type_ignored_param_one(ign,rest,fmtty); - case 2:return type_ignored_param_one(ign,rest,fmtty); - case 3:return type_ignored_param_one(ign,rest,fmtty); - case 4:return type_ignored_param_one(ign,rest,fmtty); - case 5:return type_ignored_param_one(ign,rest,fmtty); - case 6:return type_ignored_param_one(ign,rest,fmtty); - case 7:return type_ignored_param_one(ign,rest,fmtty); - case 8: - var sub_fmtty$2=ign[2],pad_opt$1=ign[1]; - return type_ignored_param_one - ([8,pad_opt$1,sub_fmtty$2],rest,fmtty); - case 9: - var - sub_fmtty$3=ign[2], - pad_opt$2=ign[1], - _tX_=type_ignored_format_substituti(sub_fmtty$3,rest,fmtty), - match$35=_tX_[2], - fmtty$22=match$35[2], - fmt$22=match$35[1], - sub_fmtty$4=_tX_[1]; - return [0,[23,[9,pad_opt$2,sub_fmtty$4],fmt$22],fmtty$22]; - case 10:return type_ignored_param_one(ign,rest,fmtty); - default:return type_ignored_param_one(ign,rest,fmtty)} - } - throw Type_mismatch} - function type_ignored_format_substituti(sub_fmtty,fmt,fmtty) - {if(typeof sub_fmtty === "number") - return [0,0,type_format_gen(fmt,fmtty)]; - else - switch(sub_fmtty[0]) - {case 0: - if(typeof fmtty !== "number" && 0 === fmtty[0]) - {var - fmtty_rest=fmtty[1], - sub_fmtty_rest=sub_fmtty[1], - match= - type_ignored_format_substituti(sub_fmtty_rest,fmt,fmtty_rest), - fmt$0=match[2], - sub_fmtty_rest$0=match[1]; - return [0,[0,sub_fmtty_rest$0],fmt$0]} - break; - case 1: - if(typeof fmtty !== "number" && 1 === fmtty[0]) - {var - fmtty_rest$0=fmtty[1], - sub_fmtty_rest$1=sub_fmtty[1], - match$0= - type_ignored_format_substituti - (sub_fmtty_rest$1,fmt,fmtty_rest$0), - fmt$1=match$0[2], - sub_fmtty_rest$2=match$0[1]; - return [0,[1,sub_fmtty_rest$2],fmt$1]} - break; - case 2: - if(typeof fmtty !== "number" && 2 === fmtty[0]) - {var - fmtty_rest$1=fmtty[1], - sub_fmtty_rest$3=sub_fmtty[1], - match$1= - type_ignored_format_substituti - (sub_fmtty_rest$3,fmt,fmtty_rest$1), - fmt$2=match$1[2], - sub_fmtty_rest$4=match$1[1]; - return [0,[2,sub_fmtty_rest$4],fmt$2]} - break; - case 3: - if(typeof fmtty !== "number" && 3 === fmtty[0]) - {var - fmtty_rest$2=fmtty[1], - sub_fmtty_rest$5=sub_fmtty[1], - match$2= - type_ignored_format_substituti - (sub_fmtty_rest$5,fmt,fmtty_rest$2), - fmt$3=match$2[2], - sub_fmtty_rest$6=match$2[1]; - return [0,[3,sub_fmtty_rest$6],fmt$3]} - break; - case 4: - if(typeof fmtty !== "number" && 4 === fmtty[0]) - {var - fmtty_rest$3=fmtty[1], - sub_fmtty_rest$7=sub_fmtty[1], - match$3= - type_ignored_format_substituti - (sub_fmtty_rest$7,fmt,fmtty_rest$3), - fmt$4=match$3[2], - sub_fmtty_rest$8=match$3[1]; - return [0,[4,sub_fmtty_rest$8],fmt$4]} - break; - case 5: - if(typeof fmtty !== "number" && 5 === fmtty[0]) - {var - fmtty_rest$4=fmtty[1], - sub_fmtty_rest$9=sub_fmtty[1], - match$4= - type_ignored_format_substituti - (sub_fmtty_rest$9,fmt,fmtty_rest$4), - fmt$5=match$4[2], - sub_fmtty_rest$10=match$4[1]; - return [0,[5,sub_fmtty_rest$10],fmt$5]} - break; - case 6: - if(typeof fmtty !== "number" && 6 === fmtty[0]) - {var - fmtty_rest$5=fmtty[1], - sub_fmtty_rest$11=sub_fmtty[1], - match$5= - type_ignored_format_substituti - (sub_fmtty_rest$11,fmt,fmtty_rest$5), - fmt$6=match$5[2], - sub_fmtty_rest$12=match$5[1]; - return [0,[6,sub_fmtty_rest$12],fmt$6]} - break; - case 7: - if(typeof fmtty !== "number" && 7 === fmtty[0]) - {var - fmtty_rest$6=fmtty[1], - sub_fmtty_rest$13=sub_fmtty[1], - match$6= - type_ignored_format_substituti - (sub_fmtty_rest$13,fmt,fmtty_rest$6), - fmt$7=match$6[2], - sub_fmtty_rest$14=match$6[1]; - return [0,[7,sub_fmtty_rest$14],fmt$7]} - break; - case 8: - if(typeof fmtty !== "number" && 8 === fmtty[0]) - {var - fmtty_rest$7=fmtty[2], - sub2_fmtty=fmtty[1], - sub_fmtty_rest$15=sub_fmtty[2], - sub2_fmtty$0=sub_fmtty[1]; - if(caml_notequal([0,sub2_fmtty$0],[0,sub2_fmtty])) - throw Type_mismatch; - var - match$7= - type_ignored_format_substituti - (sub_fmtty_rest$15,fmt,fmtty_rest$7), - fmt$8=match$7[2], - sub_fmtty_rest$16=match$7[1]; - return [0,[8,sub2_fmtty,sub_fmtty_rest$16],fmt$8]} - break; - case 9: - if(typeof fmtty !== "number" && 9 === fmtty[0]) - {var - fmtty_rest$8=fmtty[3], - sub2_fmtty$1=fmtty[2], - sub1_fmtty=fmtty[1], - sub_fmtty_rest$17=sub_fmtty[3], - sub2_fmtty$2=sub_fmtty[2], - sub1_fmtty$0=sub_fmtty[1], - _tE_=[0,erase_rel(sub1_fmtty)]; - if(caml_notequal([0,erase_rel(sub1_fmtty$0)],_tE_)) - throw Type_mismatch; - var _tF_=[0,erase_rel(sub2_fmtty$1)]; - if(caml_notequal([0,erase_rel(sub2_fmtty$2)],_tF_)) - throw Type_mismatch; - var - sub_fmtty$0=trans(symm(sub1_fmtty),sub2_fmtty$1), - match$8=fmtty_rel_det(sub_fmtty$0), - f4=match$8[4], - f2=match$8[2]; - caml_call1(f2,0); - caml_call1(f4,0); - var - match$9= - type_ignored_format_substituti - (erase_rel(sub_fmtty_rest$17),fmt,fmtty_rest$8), - fmt$9=match$9[2], - sub_fmtty_rest$18=match$9[1]; - return [0, - [9,sub1_fmtty,sub2_fmtty$1,symm(sub_fmtty_rest$18)], - fmt$9]} - break; - case 10: - if(typeof fmtty !== "number" && 10 === fmtty[0]) - {var - fmtty_rest$9=fmtty[1], - sub_fmtty_rest$19=sub_fmtty[1], - match$10= - type_ignored_format_substituti - (sub_fmtty_rest$19,fmt,fmtty_rest$9), - fmt$10=match$10[2], - sub_fmtty_rest$20=match$10[1]; - return [0,[10,sub_fmtty_rest$20],fmt$10]} - break; - case 11: - if(typeof fmtty !== "number" && 11 === fmtty[0]) - {var - fmtty_rest$10=fmtty[1], - sub_fmtty_rest$21=sub_fmtty[1], - match$11= - type_ignored_format_substituti - (sub_fmtty_rest$21,fmt,fmtty_rest$10), - fmt$11=match$11[2], - sub_fmtty_rest$22=match$11[1]; - return [0,[11,sub_fmtty_rest$22],fmt$11]} - break; - case 13: - if(typeof fmtty !== "number" && 13 === fmtty[0]) - {var - fmtty_rest$11=fmtty[1], - sub_fmtty_rest$23=sub_fmtty[1], - match$12= - type_ignored_format_substituti - (sub_fmtty_rest$23,fmt,fmtty_rest$11), - fmt$12=match$12[2], - sub_fmtty_rest$24=match$12[1]; - return [0,[13,sub_fmtty_rest$24],fmt$12]} - break; - case 14: - if(typeof fmtty !== "number" && 14 === fmtty[0]) - {var - fmtty_rest$12=fmtty[1], - sub_fmtty_rest$25=sub_fmtty[1], - match$13= - type_ignored_format_substituti - (sub_fmtty_rest$25,fmt,fmtty_rest$12), - fmt$13=match$13[2], - sub_fmtty_rest$26=match$13[1]; - return [0,[14,sub_fmtty_rest$26],fmt$13]} - break - } - throw Type_mismatch} - function recast(fmt,fmtty){return type_format(fmt,erase_rel(symm(fmtty)))} - function fix_padding(padty,width,str) - {var - len=caml_ml_string_length(str), - padty$0=0 <= width?padty:0, - width$0=abs(width); - if(width$0 <= len)return str; - var _tD_=2 === padty$0?48:32,res=make$0(width$0,_tD_); - switch(padty$0) - {case 0:blit$0(str,0,res,0,len);break; - case 1:blit$0(str,0,res,width$0 - len | 0,len);break; - default: - var switch$0=0; - if(0 < len) - {var switch$1=0; - if - (43 - !== - caml_string_get(str,0) - && - 45 - !== - caml_string_get(str,0) - && - 32 - !== - caml_string_get(str,0)) - {switch$0 = 1;switch$1 = 1} - if(! switch$1) - {caml_bytes_set(res,0,caml_string_get(str,0)); - blit$0(str,1,res,(width$0 - len | 0) + 1 | 0,len - 1 | 0)}} - else - switch$0 = 1; - if(switch$0) - {var switch$2=0; - if(1 < len && 48 === caml_string_get(str,0)) - {var switch$3=0; - if - (120 - !== - caml_string_get(str,1) - && - 88 - !== - caml_string_get(str,1)) - {switch$2 = 1;switch$3 = 1} - if(! switch$3) - {caml_bytes_set(res,1,caml_string_get(str,1)); - blit$0(str,2,res,(width$0 - len | 0) + 2 | 0,len - 2 | 0)}} - else - switch$2 = 1; - if(switch$2)blit$0(str,0,res,width$0 - len | 0,len)}} - return caml_string_of_bytes(res)} - function fix_int_precision(prec,str) - {var - prec$0=abs(prec), - len=caml_ml_string_length(str), - c=caml_string_get(str,0), - switch$0=0; - if(58 <= c) - {if(71 <= c) - {if(! (5 < c - 97 >>> 0))switch$0 = 1} - else - if(65 <= c)switch$0 = 1} - else - {var switch$1=0; - if(32 !== c) - if(43 <= c) - switch(c - 43 | 0) - {case 5: - if(len < (prec$0 + 2 | 0) && 1 < len) - {var switch$2=0; - if - (120 - === - caml_string_get(str,1) - || - 88 - === - caml_string_get(str,1)) - switch$2 = 1; - if(switch$2) - {var res$1=make$0(prec$0 + 2 | 0,48); - caml_bytes_set(res$1,1,caml_string_get(str,1)); - blit$0(str,2,res$1,(prec$0 - len | 0) + 4 | 0,len - 2 | 0); - return caml_string_of_bytes(res$1)}} - switch$0 = 1; - switch$1 = 1; - break; - case 0: - case 2:break; - case 1: - case 3: - case 4:switch$1 = 1;break; - default:switch$0 = 1;switch$1 = 1} - else - switch$1 = 1; - if(! switch$1 && len < (prec$0 + 1 | 0)) - {var res$0=make$0(prec$0 + 1 | 0,48); - caml_bytes_set(res$0,0,c); - blit$0(str,1,res$0,(prec$0 - len | 0) + 2 | 0,len - 1 | 0); - return caml_string_of_bytes(res$0)}} - if(switch$0 && len < prec$0) - {var res=make$0(prec$0,48); - blit$0(str,0,res,prec$0 - len | 0,len); - return caml_string_of_bytes(res)} - return str} - function string_to_caml_string(str) - {var - str$0=escaped$1(str), - l=caml_ml_string_length(str$0), - res=make$0(l + 2 | 0,34); - caml_blit_string(str$0,0,res,1,l); - return caml_string_of_bytes(res)} - function format_of_fconv(fconv,prec) - {var - prec$0=abs(prec), - symb=char_of_fconv(_av_,fconv), - buf=buffer_create(16); - buffer_add_char(buf,37); - bprint_fconv_flag(buf,fconv); - buffer_add_char(buf,46); - buffer_add_string(buf,caml_string_of_jsbytes("" + prec$0)); - buffer_add_char(buf,symb); - return buffer_contents(buf)} - function transform_int_alt(iconv,s) - {if(13 <= iconv) - {var n=[0,0],_ty_=caml_ml_string_length(s) - 1 | 0,_tx_=0; - if(! (_ty_ < 0)) - {var i$0=_tx_; - for(;;) - {var match=caml_string_unsafe_get(s,i$0); - if(! (9 < match - 48 >>> 0))n[1]++; - var _tC_=i$0 + 1 | 0; - if(_ty_ !== i$0){var i$0=_tC_;continue} - break}} - var - digits=n[1], - buf= - caml_create_bytes - (caml_ml_string_length(s) + ((digits - 1 | 0) / 3 | 0) | 0), - pos=[0,0], - put=function(c){caml_bytes_set(buf,pos[1],c);pos[1]++;return 0}, - left=[0,((digits - 1 | 0) % 3 | 0) + 1 | 0], - _tA_=caml_ml_string_length(s) - 1 | 0, - _tz_=0; - if(! (_tA_ < 0)) - {var i=_tz_; - for(;;) - {var c=caml_string_unsafe_get(s,i); - if(9 < c - 48 >>> 0) - put(c); - else - {if(0 === left[1]){put(95);left[1] = 3}left[1] += -1;put(c)} - var _tB_=i + 1 | 0; - if(_tA_ !== i){var i=_tB_;continue} - break}} - return caml_string_of_bytes(buf)} - return s} - function convert_int(iconv,n) - {switch(iconv) - {case 1:var _tw_=cst_d$3;break; - case 2:var _tw_=cst_d$4;break; - case 4:var _tw_=cst_i$1;break; - case 5:var _tw_=cst_i$2;break; - case 6:var _tw_=cst_x;break; - case 7:var _tw_=cst_x$0;break; - case 8:var _tw_=cst_X$0;break; - case 9:var _tw_=cst_X$1;break; - case 10:var _tw_=cst_o;break; - case 11:var _tw_=cst_o$0;break; - case 0: - case 13:var _tw_=cst_d$2;break; - case 3: - case 14:var _tw_=cst_i$0;break; - default:var _tw_=cst_u} - return transform_int_alt(iconv,caml_format_int(_tw_,n))} - function convert_int32(iconv,n) - {switch(iconv) - {case 1:var _tv_=cst_ld$0;break; - case 2:var _tv_=cst_ld$1;break; - case 4:var _tv_=cst_li$1;break; - case 5:var _tv_=cst_li$2;break; - case 6:var _tv_=cst_lx;break; - case 7:var _tv_=cst_lx$0;break; - case 8:var _tv_=cst_lX;break; - case 9:var _tv_=cst_lX$0;break; - case 10:var _tv_=cst_lo;break; - case 11:var _tv_=cst_lo$0;break; - case 0: - case 13:var _tv_=cst_ld;break; - case 3: - case 14:var _tv_=cst_li$0;break; - default:var _tv_=cst_lu} - return transform_int_alt(iconv,caml_format_int(_tv_,n))} - function convert_nativeint(iconv,n) - {switch(iconv) - {case 1:var _tu_=cst_nd$0;break; - case 2:var _tu_=cst_nd$1;break; - case 4:var _tu_=cst_ni$1;break; - case 5:var _tu_=cst_ni$2;break; - case 6:var _tu_=cst_nx;break; - case 7:var _tu_=cst_nx$0;break; - case 8:var _tu_=cst_nX;break; - case 9:var _tu_=cst_nX$0;break; - case 10:var _tu_=cst_no;break; - case 11:var _tu_=cst_no$0;break; - case 0: - case 13:var _tu_=cst_nd;break; - case 3: - case 14:var _tu_=cst_ni$0;break; - default:var _tu_=cst_nu} - return transform_int_alt(iconv,caml_format_int(_tu_,n))} - function convert_int64(iconv,n) - {switch(iconv) - {case 1:var _tt_=cst_Ld$0;break; - case 2:var _tt_=cst_Ld$1;break; - case 4:var _tt_=cst_Li$1;break; - case 5:var _tt_=cst_Li$2;break; - case 6:var _tt_=cst_Lx;break; - case 7:var _tt_=cst_Lx$0;break; - case 8:var _tt_=cst_LX;break; - case 9:var _tt_=cst_LX$0;break; - case 10:var _tt_=cst_Lo;break; - case 11:var _tt_=cst_Lo$0;break; - case 0: - case 13:var _tt_=cst_Ld;break; - case 3: - case 14:var _tt_=cst_Li$0;break; - default:var _tt_=cst_Lu} - return transform_int_alt(iconv,caml_int64_format(_tt_,n))} - function convert_float(fconv,prec,x) - {function hex(param) - {switch(fconv[1]) - {case 0:var sign=45;break; - case 1:var sign=43;break; - default:var sign=32} - return runtime.caml_hexstring_of_float(x,prec,sign)} - function caml_special_val(str) - {var match=runtime.caml_classify_float(x); - return 3 === match - ?x < 0.?cst_neg_infinity:cst_infinity - :4 <= match?cst_nan:str} - switch(fconv[2]) - {case 5: - var - str=caml_format_float(format_of_fconv(fconv,prec),x), - len=caml_ml_string_length(str), - i=0; - for(;;) - {if(i === len) - var _tr_=0; - else - {var match=caml_string_get(str,i),_tq_=match - 46 | 0,switch$0=0; - if(23 < _tq_ >>> 0) - {if(55 === _tq_)switch$0 = 1} - else - if(21 < _tq_ - 1 >>> 0)switch$0 = 1; - if(! switch$0){var i$0=i + 1 | 0,i=i$0;continue} - var _tr_=1} - var _ts_=_tr_?str:cat(str,cst$29); - return caml_special_val(_ts_)} - case 6:return hex(0); - case 7:return uppercase_ascii$1(hex(0)); - case 8:return caml_special_val(hex(0)); - default:return caml_format_float(format_of_fconv(fconv,prec),x)}} - function string_of_fmtty(fmtty) - {var buf=buffer_create(16); - bprint_fmtty(buf,fmtty); - return buffer_contents(buf)} - function make_int_padding_precision(k,acc,fmt,pad,prec,trans,iconv) - {if(typeof pad === "number") - {if(typeof prec === "number") - return prec - ?function(p,x) - {var str=fix_int_precision(p,caml_call2(trans,iconv,x)); - return make_printf(k,[4,acc,str],fmt)} - :function(x) - {var str=caml_call2(trans,iconv,x); - return make_printf(k,[4,acc,str],fmt)}; - var p=prec[1]; - return function(x) - {var str=fix_int_precision(p,caml_call2(trans,iconv,x)); - return make_printf(k,[4,acc,str],fmt)}} - else - {if(0 === pad[0]) - {var _tn_=pad[2],_to_=pad[1]; - if(typeof prec === "number") - return prec - ?function(p,x) - {var - str= - fix_padding - (_to_,_tn_,fix_int_precision(p,caml_call2(trans,iconv,x))); - return make_printf(k,[4,acc,str],fmt)} - :function(x) - {var str=fix_padding(_to_,_tn_,caml_call2(trans,iconv,x)); - return make_printf(k,[4,acc,str],fmt)}; - var p$0=prec[1]; - return function(x) - {var - str= - fix_padding - (_to_,_tn_,fix_int_precision(p$0,caml_call2(trans,iconv,x))); - return make_printf(k,[4,acc,str],fmt)}} - var _tp_=pad[1]; - if(typeof prec === "number") - return prec - ?function(w,p,x) - {var - str= - fix_padding - (_tp_,w,fix_int_precision(p,caml_call2(trans,iconv,x))); - return make_printf(k,[4,acc,str],fmt)} - :function(w,x) - {var str=fix_padding(_tp_,w,caml_call2(trans,iconv,x)); - return make_printf(k,[4,acc,str],fmt)}; - var p$1=prec[1]; - return function(w,x) - {var - str= - fix_padding - (_tp_,w,fix_int_precision(p$1,caml_call2(trans,iconv,x))); - return make_printf(k,[4,acc,str],fmt)}}} - function make_padding(k,acc,fmt,pad,trans) - {if(typeof pad === "number") - return function(x) - {var new_acc=[4,acc,caml_call1(trans,x)]; - return make_printf(k,new_acc,fmt)}; - else - {if(0 === pad[0]) - {var width=pad[2],padty=pad[1]; - return function(x) - {var new_acc=[4,acc,fix_padding(padty,width,caml_call1(trans,x))]; - return make_printf(k,new_acc,fmt)}} - var padty$0=pad[1]; - return function(w,x) - {var new_acc=[4,acc,fix_padding(padty$0,w,caml_call1(trans,x))]; - return make_printf(k,new_acc,fmt)}}} - function make_printf$0(counter,k,acc,fmt) - {var k$0=k,acc$0=acc,fmt$0=fmt; - for(;;) - if(typeof fmt$0 === "number") - return caml_call1(k$0,acc$0); - else - switch(fmt$0[0]) - {case 0: - var rest=fmt$0[1]; - return function(c) - {var new_acc=[5,acc$0,c];return make_printf(k$0,new_acc,rest)}; - case 1: - var rest$0=fmt$0[1]; - return function(c) - {var - str=escaped(c), - l=caml_ml_string_length(str), - res=make$0(l + 2 | 0,39); - caml_blit_string(str,0,res,1,l); - var new_acc=[4,acc$0,caml_string_of_bytes(res)]; - return make_printf(k$0,new_acc,rest$0)}; - case 2: - var rest$1=fmt$0[2],pad=fmt$0[1]; - return make_padding(k$0,acc$0,rest$1,pad,function(str){return str}); - case 3: - var rest$2=fmt$0[2],pad$0=fmt$0[1]; - return make_padding(k$0,acc$0,rest$2,pad$0,string_to_caml_string); - case 4: - var rest$3=fmt$0[4],prec=fmt$0[3],pad$1=fmt$0[2],iconv=fmt$0[1]; - return make_int_padding_precision - (k$0,acc$0,rest$3,pad$1,prec,convert_int,iconv); - case 5: - var - rest$4=fmt$0[4], - prec$0=fmt$0[3], - pad$2=fmt$0[2], - iconv$0=fmt$0[1]; - return make_int_padding_precision - (k$0,acc$0,rest$4,pad$2,prec$0,convert_int32,iconv$0); - case 6: - var - rest$5=fmt$0[4], - prec$1=fmt$0[3], - pad$3=fmt$0[2], - iconv$1=fmt$0[1]; - return make_int_padding_precision - (k$0,acc$0,rest$5,pad$3,prec$1,convert_nativeint,iconv$1); - case 7: - var - rest$6=fmt$0[4], - prec$2=fmt$0[3], - pad$4=fmt$0[2], - iconv$2=fmt$0[1]; - return make_int_padding_precision - (k$0,acc$0,rest$6,pad$4,prec$2,convert_int64,iconv$2); - case 8: - var rest$7=fmt$0[4],prec$3=fmt$0[3],pad$5=fmt$0[2],fconv=fmt$0[1]; - if(typeof pad$5 === "number") - {if(typeof prec$3 === "number") - return prec$3 - ?function(p,x) - {var str=convert_float(fconv,p,x); - return make_printf(k$0,[4,acc$0,str],rest$7)} - :function(x) - {var - str= - convert_float(fconv,default_float_precision(fconv),x); - return make_printf(k$0,[4,acc$0,str],rest$7)}; - var p=prec$3[1]; - return function(x) - {var str=convert_float(fconv,p,x); - return make_printf(k$0,[4,acc$0,str],rest$7)}} - else - {if(0 === pad$5[0]) - {var _tk_=pad$5[2],_tl_=pad$5[1]; - if(typeof prec$3 === "number") - return prec$3 - ?function(p,x) - {var str=fix_padding(_tl_,_tk_,convert_float(fconv,p,x)); - return make_printf(k$0,[4,acc$0,str],rest$7)} - :function(x) - {var - str=convert_float(fconv,default_float_precision(fconv),x), - str$0=fix_padding(_tl_,_tk_,str); - return make_printf(k$0,[4,acc$0,str$0],rest$7)}; - var p$0=prec$3[1]; - return function(x) - {var str=fix_padding(_tl_,_tk_,convert_float(fconv,p$0,x)); - return make_printf(k$0,[4,acc$0,str],rest$7)}} - var _tm_=pad$5[1]; - if(typeof prec$3 === "number") - return prec$3 - ?function(w,p,x) - {var str=fix_padding(_tm_,w,convert_float(fconv,p,x)); - return make_printf(k$0,[4,acc$0,str],rest$7)} - :function(w,x) - {var - str=convert_float(fconv,default_float_precision(fconv),x), - str$0=fix_padding(_tm_,w,str); - return make_printf(k$0,[4,acc$0,str$0],rest$7)}; - var p$1=prec$3[1]; - return function(w,x) - {var str=fix_padding(_tm_,w,convert_float(fconv,p$1,x)); - return make_printf(k$0,[4,acc$0,str],rest$7)}} - case 9: - var rest$8=fmt$0[2],pad$6=fmt$0[1]; - return make_padding(k$0,acc$0,rest$8,pad$6,string_of_bool); - case 10: - var fmt$1=fmt$0[1],acc$1=[7,acc$0],acc$0=acc$1,fmt$0=fmt$1; - continue; - case 11: - var - fmt$2=fmt$0[2], - str=fmt$0[1], - acc$2=[2,acc$0,str], - acc$0=acc$2, - fmt$0=fmt$2; - continue; - case 12: - var - fmt$3=fmt$0[2], - chr=fmt$0[1], - acc$3=[3,acc$0,chr], - acc$0=acc$3, - fmt$0=fmt$3; - continue; - case 13: - var - rest$9=fmt$0[3], - sub_fmtty=fmt$0[2], - ty=string_of_fmtty(sub_fmtty); - return function(str){return make_printf(k$0,[4,acc$0,ty],rest$9)}; - case 14: - var rest$10=fmt$0[3],fmtty=fmt$0[2]; - return function(param) - {var fmt=param[1]; - return make_printf - (k$0,acc$0,concat_fmt(recast(fmt,fmtty),rest$10))}; - case 15: - var rest$11=fmt$0[1]; - return function(f,x) - {return make_printf - (k$0, - [6,acc$0,function(o){return caml_call2(f,o,x)}], - rest$11)}; - case 16: - var rest$12=fmt$0[1]; - return function(f){return make_printf(k$0,[6,acc$0,f],rest$12)}; - case 17: - var - fmt$4=fmt$0[2], - fmting_lit=fmt$0[1], - acc$4=[0,acc$0,fmting_lit], - acc$0=acc$4, - fmt$0=fmt$4; - continue; - case 18: - var _ti_=fmt$0[1]; - if(0 === _ti_[0]) - {var - rest$13=fmt$0[2], - match=_ti_[1], - fmt$5=match[1], - k$3= - function(acc,k,rest) - {function k$0(kacc) - {return make_printf(k,[1,acc,[0,kacc]],rest)} - return k$0}, - k$1=k$3(acc$0,k$0,rest$13), - k$0=k$1, - acc$0=0, - fmt$0=fmt$5; - continue} - var - rest$14=fmt$0[2], - match$0=_ti_[1], - fmt$6=match$0[1], - k$4= - function(acc,k,rest) - {function k$0(kacc){return make_printf(k,[1,acc,[1,kacc]],rest)} - return k$0}, - k$2=k$4(acc$0,k$0,rest$14), - k$0=k$2, - acc$0=0, - fmt$0=fmt$6; - continue; - case 19:throw [0,Assert_failure,_aw_]; - case 20: - var rest$15=fmt$0[3],new_acc=[8,acc$0,cst_Printf_bad_conversion]; - return function(param){return make_printf(k$0,new_acc,rest$15)}; - case 21: - var rest$16=fmt$0[2]; - return function(n) - {var new_acc=[4,acc$0,caml_format_int(cst_u$0,n)]; - return make_printf(k$0,new_acc,rest$16)}; - case 22: - var rest$17=fmt$0[1]; - return function(c) - {var new_acc=[5,acc$0,c];return make_printf(k$0,new_acc,rest$17)}; - case 23: - var rest$18=fmt$0[2],ign=fmt$0[1]; - if(counter < 50) - {var counter$1=counter + 1 | 0; - return make_ignored_param$0(counter$1,k$0,acc$0,ign,rest$18)} - return caml_trampoline_return - (make_ignored_param$0,[0,k$0,acc$0,ign,rest$18]); - default: - var - rest$19=fmt$0[3], - f=fmt$0[2], - arity=fmt$0[1], - _tj_=caml_call1(f,0); - if(counter < 50) - {var counter$0=counter + 1 | 0; - return make_custom$0(counter$0,k$0,acc$0,rest$19,arity,_tj_)} - return caml_trampoline_return - (make_custom$0,[0,k$0,acc$0,rest$19,arity,_tj_])}} - function make_ignored_param$0(counter,k,acc,ign,fmt) - {if(typeof ign === "number") - switch(ign) - {case 0: - if(counter < 50) - {var counter$0=counter + 1 | 0; - return make_invalid_arg(counter$0,k,acc,fmt)} - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - case 1: - if(counter < 50) - {var counter$1=counter + 1 | 0; - return make_invalid_arg(counter$1,k,acc,fmt)} - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - case 2:throw [0,Assert_failure,_ax_]; - default: - if(counter < 50) - {var counter$2=counter + 1 | 0; - return make_invalid_arg(counter$2,k,acc,fmt)} - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt])} - else - switch(ign[0]) - {case 0: - if(counter < 50) - {var counter$3=counter + 1 | 0; - return make_invalid_arg(counter$3,k,acc,fmt)} - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - case 1: - if(counter < 50) - {var counter$4=counter + 1 | 0; - return make_invalid_arg(counter$4,k,acc,fmt)} - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - case 2: - if(counter < 50) - {var counter$5=counter + 1 | 0; - return make_invalid_arg(counter$5,k,acc,fmt)} - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - case 3: - if(counter < 50) - {var counter$6=counter + 1 | 0; - return make_invalid_arg(counter$6,k,acc,fmt)} - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - case 4: - if(counter < 50) - {var counter$7=counter + 1 | 0; - return make_invalid_arg(counter$7,k,acc,fmt)} - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - case 5: - if(counter < 50) - {var counter$8=counter + 1 | 0; - return make_invalid_arg(counter$8,k,acc,fmt)} - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - case 6: - if(counter < 50) - {var counter$9=counter + 1 | 0; - return make_invalid_arg(counter$9,k,acc,fmt)} - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - case 7: - if(counter < 50) - {var counter$10=counter + 1 | 0; - return make_invalid_arg(counter$10,k,acc,fmt)} - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - case 8: - if(counter < 50) - {var counter$11=counter + 1 | 0; - return make_invalid_arg(counter$11,k,acc,fmt)} - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - case 9: - var fmtty=ign[2]; - if(counter < 50) - {var counter$14=counter + 1 | 0; - return make_from_fmtty$0(counter$14,k,acc,fmtty,fmt)} - return caml_trampoline_return(make_from_fmtty$0,[0,k,acc,fmtty,fmt]); - case 10: - if(counter < 50) - {var counter$12=counter + 1 | 0; - return make_invalid_arg(counter$12,k,acc,fmt)} - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - default: - if(counter < 50) - {var counter$13=counter + 1 | 0; - return make_invalid_arg(counter$13,k,acc,fmt)} - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt])}} - function make_from_fmtty$0(counter,k,acc,fmtty,fmt) - {if(typeof fmtty === "number") - {if(counter < 50) - {var counter$0=counter + 1 | 0; - return make_invalid_arg(counter$0,k,acc,fmt)} - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt])} - else - switch(fmtty[0]) - {case 0: - var rest=fmtty[1]; - return function(param){return make_from_fmtty(k,acc,rest,fmt)}; - case 1: - var rest$0=fmtty[1]; - return function(param){return make_from_fmtty(k,acc,rest$0,fmt)}; - case 2: - var rest$1=fmtty[1]; - return function(param){return make_from_fmtty(k,acc,rest$1,fmt)}; - case 3: - var rest$2=fmtty[1]; - return function(param){return make_from_fmtty(k,acc,rest$2,fmt)}; - case 4: - var rest$3=fmtty[1]; - return function(param){return make_from_fmtty(k,acc,rest$3,fmt)}; - case 5: - var rest$4=fmtty[1]; - return function(param){return make_from_fmtty(k,acc,rest$4,fmt)}; - case 6: - var rest$5=fmtty[1]; - return function(param){return make_from_fmtty(k,acc,rest$5,fmt)}; - case 7: - var rest$6=fmtty[1]; - return function(param){return make_from_fmtty(k,acc,rest$6,fmt)}; - case 8: - var rest$7=fmtty[2]; - return function(param){return make_from_fmtty(k,acc,rest$7,fmt)}; - case 9: - var - rest$8=fmtty[3], - ty2=fmtty[2], - ty1=fmtty[1], - ty=trans(symm(ty1),ty2); - return function(param) - {return make_from_fmtty(k,acc,concat_fmtty(ty,rest$8),fmt)}; - case 10: - var rest$9=fmtty[1]; - return function(param,_th_) - {return make_from_fmtty(k,acc,rest$9,fmt)}; - case 11: - var rest$10=fmtty[1]; - return function(param){return make_from_fmtty(k,acc,rest$10,fmt)}; - case 12: - var rest$11=fmtty[1]; - return function(param){return make_from_fmtty(k,acc,rest$11,fmt)}; - case 13:throw [0,Assert_failure,_ay_]; - default:throw [0,Assert_failure,_az_]}} - function make_invalid_arg(counter,k,acc,fmt) - {var _tg_=[8,acc,cst_Printf_bad_conversion$0]; - if(counter < 50) - {var counter$0=counter + 1 | 0; - return make_printf$0(counter$0,k,_tg_,fmt)} - return caml_trampoline_return(make_printf$0,[0,k,_tg_,fmt])} - function make_custom$0(counter,k,acc,rest,arity,f) - {if(arity) - {var arity$0=arity[1]; - return function(x) - {return make_custom(k,acc,rest,arity$0,caml_call1(f,x))}} - var _tf_=[4,acc,f]; - if(counter < 50) - {var counter$0=counter + 1 | 0; - return make_printf$0(counter$0,k,_tf_,rest)} - return caml_trampoline_return(make_printf$0,[0,k,_tf_,rest])} - function make_printf(k,acc,fmt) - {return caml_trampoline(make_printf$0(0,k,acc,fmt))} - function make_ignored_param(k,acc,ign,fmt) - {return caml_trampoline(make_ignored_param$0(0,k,acc,ign,fmt))} - function make_from_fmtty(k,acc,fmtty,fmt) - {return caml_trampoline(make_from_fmtty$0(0,k,acc,fmtty,fmt))} - function make_custom(k,acc,rest,arity,f) - {return caml_trampoline(make_custom$0(0,k,acc,rest,arity,f))} - function fn_of_padding_precision(k,o,fmt,pad,prec) - {if(typeof pad === "number") - {if(typeof prec === "number") - {if(prec) - {var _sN_=make_iprintf(k,o,fmt),_sO_=function(_s5_){return _sN_}; - return function(_s4_){return _sO_}} - var _sP_=make_iprintf(k,o,fmt); - return function(_s3_){return _sP_}} - var _sQ_=make_iprintf(k,o,fmt); - return function(_s2_){return _sQ_}} - else - {if(0 === pad[0]) - {if(typeof prec === "number") - {if(prec) - {var _sR_=make_iprintf(k,o,fmt),_sS_=function(_te_){return _sR_}; - return function(_td_){return _sS_}} - var _sT_=make_iprintf(k,o,fmt); - return function(_tc_){return _sT_}} - var _sU_=make_iprintf(k,o,fmt); - return function(_tb_){return _sU_}} - if(typeof prec === "number") - {if(prec) - {var - _sV_=make_iprintf(k,o,fmt), - _sW_=function(_ta_){return _sV_}, - _sX_=function(_s$_){return _sW_}; - return function(_s__){return _sX_}} - var _sY_=make_iprintf(k,o,fmt),_sZ_=function(_s9_){return _sY_}; - return function(_s8_){return _sZ_}} - var _s0_=make_iprintf(k,o,fmt),_s1_=function(_s7_){return _s0_}; - return function(_s6_){return _s1_}}} - function make_iprintf$0(counter,k,o,fmt) - {var k$0=k,fmt$0=fmt; - for(;;) - if(typeof fmt$0 === "number") - return caml_call1(k$0,o); - else - switch(fmt$0[0]) - {case 0: - var rest=fmt$0[1],_r4_=make_iprintf(k$0,o,rest); - return function(_sM_){return _r4_}; - case 1: - var rest$0=fmt$0[1],_r5_=make_iprintf(k$0,o,rest$0); - return function(_sL_){return _r5_}; - case 2: - var _r6_=fmt$0[1]; - if(typeof _r6_ === "number") - {var rest$1=fmt$0[2],_r7_=make_iprintf(k$0,o,rest$1); - return function(_sH_){return _r7_}} - else - {if(0 === _r6_[0]) - {var rest$2=fmt$0[2],_r8_=make_iprintf(k$0,o,rest$2); - return function(_sK_){return _r8_}} - var - rest$3=fmt$0[2], - _r9_=make_iprintf(k$0,o,rest$3), - _r__=function(_sJ_){return _r9_}; - return function(_sI_){return _r__}} - case 3: - var _r$_=fmt$0[1]; - if(typeof _r$_ === "number") - {var rest$4=fmt$0[2],_sa_=make_iprintf(k$0,o,rest$4); - return function(_sD_){return _sa_}} - else - {if(0 === _r$_[0]) - {var rest$5=fmt$0[2],_sb_=make_iprintf(k$0,o,rest$5); - return function(_sG_){return _sb_}} - var - rest$6=fmt$0[2], - _sc_=make_iprintf(k$0,o,rest$6), - _sd_=function(_sF_){return _sc_}; - return function(_sE_){return _sd_}} - case 4: - var rest$7=fmt$0[4],prec=fmt$0[3],pad=fmt$0[2]; - return fn_of_padding_precision(k$0,o,rest$7,pad,prec); - case 5: - var rest$8=fmt$0[4],prec$0=fmt$0[3],pad$0=fmt$0[2]; - return fn_of_padding_precision(k$0,o,rest$8,pad$0,prec$0); - case 6: - var rest$9=fmt$0[4],prec$1=fmt$0[3],pad$1=fmt$0[2]; - return fn_of_padding_precision(k$0,o,rest$9,pad$1,prec$1); - case 7: - var rest$10=fmt$0[4],prec$2=fmt$0[3],pad$2=fmt$0[2]; - return fn_of_padding_precision(k$0,o,rest$10,pad$2,prec$2); - case 8: - var rest$11=fmt$0[4],prec$3=fmt$0[3],pad$3=fmt$0[2]; - return fn_of_padding_precision(k$0,o,rest$11,pad$3,prec$3); - case 9: - var _se_=fmt$0[1]; - if(typeof _se_ === "number") - {var rest$12=fmt$0[2],_sf_=make_iprintf(k$0,o,rest$12); - return function(_sz_){return _sf_}} - else - {if(0 === _se_[0]) - {var rest$13=fmt$0[2],_sg_=make_iprintf(k$0,o,rest$13); - return function(_sC_){return _sg_}} - var - rest$14=fmt$0[2], - _sh_=make_iprintf(k$0,o,rest$14), - _si_=function(_sB_){return _sh_}; - return function(_sA_){return _si_}} - case 10:var fmt$1=fmt$0[1],fmt$0=fmt$1;continue; - case 11:var fmt$2=fmt$0[2],fmt$0=fmt$2;continue; - case 12:var fmt$3=fmt$0[2],fmt$0=fmt$3;continue; - case 13: - var rest$15=fmt$0[3],_sj_=make_iprintf(k$0,o,rest$15); - return function(_sy_){return _sj_}; - case 14: - var rest$16=fmt$0[3],fmtty=fmt$0[2]; - return function(param) - {var fmt=param[1]; - return make_iprintf(k$0,o,concat_fmt(recast(fmt,fmtty),rest$16))}; - case 15: - var - rest$17=fmt$0[1], - _sk_=make_iprintf(k$0,o,rest$17), - _sl_=function(_sx_){return _sk_}; - return function(_sw_){return _sl_}; - case 16: - var rest$18=fmt$0[1],_sm_=make_iprintf(k$0,o,rest$18); - return function(_sv_){return _sm_}; - case 17:var fmt$4=fmt$0[2],fmt$0=fmt$4;continue; - case 18: - var _sn_=fmt$0[1]; - if(0 === _sn_[0]) - {var - rest$19=fmt$0[2], - match=_sn_[1], - fmt$5=match[1], - k$3= - function(k,rest) - {function k$0(koc){return make_iprintf(k,koc,rest)}return k$0}, - k$1=k$3(k$0,rest$19), - k$0=k$1, - fmt$0=fmt$5; - continue} - var - rest$20=fmt$0[2], - match$0=_sn_[1], - fmt$6=match$0[1], - k$4= - function(k,rest) - {function k$0(koc){return make_iprintf(k,koc,rest)}return k$0}, - k$2=k$4(k$0,rest$20), - k$0=k$2, - fmt$0=fmt$6; - continue; - case 19:throw [0,Assert_failure,_aA_]; - case 20: - var rest$21=fmt$0[3],_so_=make_iprintf(k$0,o,rest$21); - return function(_su_){return _so_}; - case 21: - var rest$22=fmt$0[2],_sp_=make_iprintf(k$0,o,rest$22); - return function(_st_){return _sp_}; - case 22: - var rest$23=fmt$0[1],_sq_=make_iprintf(k$0,o,rest$23); - return function(_ss_){return _sq_}; - case 23: - var rest$24=fmt$0[2],ign=fmt$0[1],_sr_=0; - return make_ignored_param - (function(param){return caml_call1(k$0,o)},_sr_,ign,rest$24); - default: - var rest$25=fmt$0[3],arity=fmt$0[1]; - if(counter < 50) - {var counter$0=counter + 1 | 0; - return fn_of_custom_arity$0(counter$0,k$0,o,rest$25,arity)} - return caml_trampoline_return - (fn_of_custom_arity$0,[0,k$0,o,rest$25,arity])}} - function fn_of_custom_arity$0(counter,k,o,fmt,param) - {if(param) - {var arity=param[1],_r2_=fn_of_custom_arity(k,o,fmt,arity); - return function(_r3_){return _r2_}} - if(counter < 50) - {var counter$0=counter + 1 | 0; - return make_iprintf$0(counter$0,k,o,fmt)} - return caml_trampoline_return(make_iprintf$0,[0,k,o,fmt])} - function make_iprintf(k,o,fmt) - {return caml_trampoline(make_iprintf$0(0,k,o,fmt))} - function fn_of_custom_arity(k,o,fmt,param) - {return caml_trampoline(fn_of_custom_arity$0(0,k,o,fmt,param))} - function output_acc(o,acc) - {var acc$0=acc; - for(;;) - if(typeof acc$0 === "number") - return 0; - else - switch(acc$0[0]) - {case 0: - var - fmting_lit=acc$0[2], - p=acc$0[1], - s=string_of_formatting_lit(fmting_lit); - output_acc(o,p); - return output_string(o,s); - case 1: - var _r0_=acc$0[2],_r1_=acc$0[1]; - if(0 === _r0_[0]) - {var acc$1=_r0_[1]; - output_acc(o,_r1_); - output_string(o,cst$30); - var acc$0=acc$1; - continue} - var acc$2=_r0_[1]; - output_acc(o,_r1_); - output_string(o,cst$31); - var acc$0=acc$2; - continue; - case 6: - var f=acc$0[2],p$2=acc$0[1]; - output_acc(o,p$2); - return caml_call1(f,o); - case 7:var p$3=acc$0[1];output_acc(o,p$3);return caml_ml_flush(o); - case 8: - var msg=acc$0[2],p$4=acc$0[1]; - output_acc(o,p$4); - return invalid_arg(msg); - case 2: - case 4: - var s$0=acc$0[2],p$0=acc$0[1]; - output_acc(o,p$0); - return output_string(o,s$0); - default: - var c=acc$0[2],p$1=acc$0[1]; - output_acc(o,p$1); - return caml_ml_output_char(o,c)}} - function bufput_acc(b,acc) - {var acc$0=acc; - for(;;) - if(typeof acc$0 === "number") - return 0; - else - switch(acc$0[0]) - {case 0: - var - fmting_lit=acc$0[2], - p=acc$0[1], - s=string_of_formatting_lit(fmting_lit); - bufput_acc(b,p); - return add_string(b,s); - case 1: - var _rY_=acc$0[2],_rZ_=acc$0[1]; - if(0 === _rY_[0]) - {var acc$1=_rY_[1]; - bufput_acc(b,_rZ_); - add_string(b,cst$32); - var acc$0=acc$1; - continue} - var acc$2=_rY_[1]; - bufput_acc(b,_rZ_); - add_string(b,cst$33); - var acc$0=acc$2; - continue; - case 6: - var f=acc$0[2],p$2=acc$0[1]; - bufput_acc(b,p$2); - return caml_call1(f,b); - case 7:var acc$3=acc$0[1],acc$0=acc$3;continue; - case 8: - var msg=acc$0[2],p$3=acc$0[1]; - bufput_acc(b,p$3); - return invalid_arg(msg); - case 2: - case 4: - var s$0=acc$0[2],p$0=acc$0[1]; - bufput_acc(b,p$0); - return add_string(b,s$0); - default: - var c=acc$0[2],p$1=acc$0[1];bufput_acc(b,p$1);return add_char(b,c)}} - function strput_acc(b,acc) - {var acc$0=acc; - for(;;) - if(typeof acc$0 === "number") - return 0; - else - switch(acc$0[0]) - {case 0: - var - fmting_lit=acc$0[2], - p=acc$0[1], - s=string_of_formatting_lit(fmting_lit); - strput_acc(b,p); - return add_string(b,s); - case 1: - var _rW_=acc$0[2],_rX_=acc$0[1]; - if(0 === _rW_[0]) - {var acc$1=_rW_[1]; - strput_acc(b,_rX_); - add_string(b,cst$34); - var acc$0=acc$1; - continue} - var acc$2=_rW_[1]; - strput_acc(b,_rX_); - add_string(b,cst$35); - var acc$0=acc$2; - continue; - case 6: - var f=acc$0[2],p$2=acc$0[1]; - strput_acc(b,p$2); - return add_string(b,caml_call1(f,0)); - case 7:var acc$3=acc$0[1],acc$0=acc$3;continue; - case 8: - var msg=acc$0[2],p$3=acc$0[1]; - strput_acc(b,p$3); - return invalid_arg(msg); - case 2: - case 4: - var s$0=acc$0[2],p$0=acc$0[1]; - strput_acc(b,p$0); - return add_string(b,s$0); - default: - var c=acc$0[2],p$1=acc$0[1];strput_acc(b,p$1);return add_char(b,c)}} - function failwith_message(param) - {var fmt=param[1],buf=create$2(256); - function k(acc){strput_acc(buf,acc);return failwith(contents(buf))} - return make_printf(k,0,fmt)} - function open_box_of_string(str) - {if(caml_string_equal(str,cst$36))return _aB_; - var len=caml_ml_string_length(str); - function invalid_box(param) - {return caml_call1(failwith_message(_aC_),str)} - function parse_spaces(i) - {var i$0=i; - for(;;) - {if(i$0 === len)return i$0; - var match=caml_string_get(str,i$0); - if(9 !== match && 32 !== match)return i$0; - var i$1=i$0 + 1 | 0,i$0=i$1; - continue}} - function parse_lword(i,j) - {var j$0=j; - for(;;) - {if(j$0 === len)return j$0; - var match=caml_string_get(str,j$0); - if(25 < match - 97 >>> 0)return j$0; - var j$1=j$0 + 1 | 0,j$0=j$1; - continue}} - function parse_int(i,j) - {var j$0=j; - for(;;) - {if(j$0 === len)return j$0; - var match=caml_string_get(str,j$0),switch$0=0; - if(48 <= match) - {if(! (58 <= match))switch$0 = 1} - else - if(45 === match)switch$0 = 1; - if(switch$0){var j$1=j$0 + 1 | 0,j$0=j$1;continue} - return j$0}} - var - wstart=parse_spaces(0), - wend=parse_lword(wstart,wstart), - box_name=sub$0(str,wstart,wend - wstart | 0), - nstart=parse_spaces(wend), - nend=parse_int(nstart,nstart); - if(nstart === nend) - var indent=0; - else - try - {var - _rU_=caml_int_of_string(sub$0(str,nstart,nend - nstart | 0)), - indent=_rU_} - catch(_rV_) - {_rV_ = caml_wrap_exception(_rV_); - if(_rV_[1] !== Failure)throw _rV_; - var indent=invalid_box(0)} - var exp_end=parse_spaces(nend); - if(exp_end !== len)invalid_box(0); - var switch$0=0; - if - (caml_string_notequal(box_name,cst$37) - && - caml_string_notequal(box_name,cst_b$0)) - var - box_type= - caml_string_notequal(box_name,cst_h) - ?caml_string_notequal(box_name,cst_hov) - ?caml_string_notequal(box_name,cst_hv) - ?caml_string_notequal(box_name,cst_v)?invalid_box(0):1 - :2 - :3 - :0; - else - switch$0 = 1; - if(switch$0)var box_type=4; - return [0,indent,box_type]} - function make_padding_fmt_ebb(pad,fmt) - {if(typeof pad === "number") - return [0,0,fmt]; - else - {if(0 === pad[0]){var w=pad[2],s=pad[1];return [0,[0,s,w],fmt]} - var s$0=pad[1]; - return [0,[1,s$0],fmt]}} - function make_padprec_fmt_ebb(pad,prec,fmt) - {if(typeof prec === "number") - var match=prec?[0,1,fmt]:[0,0,fmt]; - else - var p=prec[1],match=[0,[0,p],fmt]; - var prec$0=match[1]; - if(typeof pad === "number") - return [0,0,prec$0,fmt]; - else - {if(0 === pad[0]){var w=pad[2],s=pad[1];return [0,[0,s,w],prec$0,fmt]} - var s$0=pad[1]; - return [0,[1,s$0],prec$0,fmt]}} - function fmt_ebb_of_string(legacy_behavior,str) - {if(legacy_behavior) - var flag=legacy_behavior[1],legacy_behavior$0=flag; - else - var legacy_behavior$0=1; - function invalid_format_message(str_ind,msg) - {return caml_call3(failwith_message(_aD_),str,str_ind,msg)} - function unexpected_end_of_format(end_ind) - {return invalid_format_message(end_ind,cst_unexpected_end_of_format)} - function invalid_format_without(str_ind,c,s) - {return caml_call4(failwith_message(_aE_),str,str_ind,c,s)} - function expected_character(str_ind,expected,read) - {return caml_call4(failwith_message(_aF_),str,str_ind,expected,read)} - function add_literal(lit_start,str_ind,fmt) - {var size=str_ind - lit_start | 0; - return 0 === size - ?[0,fmt] - :1 === size - ?[0,[12,caml_string_get(str,lit_start),fmt]] - :[0,[11,sub$0(str,lit_start,size),fmt]]} - function parse(lit_start,end_ind) - {var str_ind=lit_start; - for(;;) - {if(str_ind === end_ind)return add_literal(lit_start,str_ind,0); - var match=caml_string_get(str,str_ind); - if(37 === match) - {var str_ind$2=str_ind + 1 | 0; - if(str_ind$2 === end_ind)unexpected_end_of_format(end_ind); - var - match$1=caml_string_get(str,str_ind$2), - _rT_= - 95 === match$1 - ?parse_flags(str_ind,str_ind$2 + 1 | 0,end_ind,1) - :parse_flags(str_ind,str_ind$2,end_ind,0), - fmt_rest=_rT_[1]; - return add_literal(lit_start,str_ind,fmt_rest)} - if(64 === match) - {var str_ind$0=str_ind + 1 | 0; - if(str_ind$0 === end_ind) - var match$0=_aR_; - else - {var c=caml_string_get(str,str_ind$0),switch$0=0; - if(65 <= c) - if(94 <= c) - {var switcher=c - 123 | 0; - if(2 < switcher >>> 0) - switch$0 = 1; - else - switch(switcher) - {case 0: - var match$0=parse_tag(1,str_ind$0 + 1 | 0,end_ind);break; - case 1:switch$0 = 1;break; - default: - var - match$3=parse(str_ind$0 + 1 | 0,end_ind), - fmt_rest$2=match$3[1], - match$0=[0,[17,1,fmt_rest$2]]}} - else - if(91 <= c) - switch(c - 91 | 0) - {case 0: - var match$0=parse_tag(0,str_ind$0 + 1 | 0,end_ind);break; - case 1:switch$0 = 1;break; - default: - var - match$4=parse(str_ind$0 + 1 | 0,end_ind), - fmt_rest$3=match$4[1], - match$0=[0,[17,0,fmt_rest$3]]} - else - switch$0 = 1; - else - if(10 === c) - var - match$5=parse(str_ind$0 + 1 | 0,end_ind), - fmt_rest$4=match$5[1], - match$0=[0,[17,3,fmt_rest$4]]; - else - if(32 <= c) - switch(c - 32 | 0) - {case 0: - var - match$6=parse(str_ind$0 + 1 | 0,end_ind), - fmt_rest$5=match$6[1], - match$0=[0,[17,_aS_,fmt_rest$5]]; - break; - case 5: - var switch$1=0; - if - ((str_ind$0 + 1 | 0) - < - end_ind - && - 37 - === - caml_string_get(str,str_ind$0 + 1 | 0)) - {var - match$7=parse(str_ind$0 + 2 | 0,end_ind), - fmt_rest$6=match$7[1], - match$0=[0,[17,6,fmt_rest$6]]; - switch$1 = 1} - if(! switch$1) - var - match$8=parse(str_ind$0,end_ind), - fmt_rest$7=match$8[1], - match$0=[0,[12,64,fmt_rest$7]]; - break; - case 12: - var - match$9=parse(str_ind$0 + 1 | 0,end_ind), - fmt_rest$8=match$9[1], - match$0=[0,[17,_aT_,fmt_rest$8]]; - break; - case 14: - var - match$10=parse(str_ind$0 + 1 | 0,end_ind), - fmt_rest$9=match$10[1], - match$0=[0,[17,4,fmt_rest$9]]; - break; - case 27: - var match$0=parse_good_break(str_ind$0 + 1 | 0,end_ind); - break; - case 28: - var match$0=parse_magic_size(str_ind$0 + 1 | 0,end_ind); - break; - case 31: - var - match$11=parse(str_ind$0 + 1 | 0,end_ind), - fmt_rest$10=match$11[1], - match$0=[0,[17,2,fmt_rest$10]]; - break; - case 32: - var - match$12=parse(str_ind$0 + 1 | 0,end_ind), - fmt_rest$11=match$12[1], - match$0=[0,[17,5,fmt_rest$11]]; - break; - default:switch$0 = 1} - else - switch$0 = 1; - if(switch$0) - var - match$2=parse(str_ind$0 + 1 | 0,end_ind), - fmt_rest$1=match$2[1], - match$0=[0,[17,[2,c],fmt_rest$1]]} - var fmt_rest$0=match$0[1]; - return add_literal(lit_start,str_ind,fmt_rest$0)} - var str_ind$1=str_ind + 1 | 0,str_ind=str_ind$1; - continue}} - function parse_conversion - (pct_ind,str_ind,end_ind,plus,hash,space,ign,pad,prec,padprec,symb) - {var - plus_used=[0,0], - hash_used=[0,0], - space_used=[0,0], - ign_used=[0,0], - pad_used=[0,0], - prec_used=[0,0]; - function get_plus(param){plus_used[1] = 1;return plus} - function get_hash(param){hash_used[1] = 1;return hash} - function get_space(param){space_used[1] = 1;return space} - function get_ign(param){ign_used[1] = 1;return ign} - function get_pad(param){pad_used[1] = 1;return pad} - function get_prec(param){prec_used[1] = 1;return prec} - function get_padprec(param){pad_used[1] = 1;return padprec} - function get_int_pad(param) - {var pad=get_pad(0),match=get_prec(0); - if(typeof match === "number" && ! match)return pad; - if(typeof pad === "number") - return 0; - else - {if(0 === pad[0]) - {if(2 <= pad[1]) - {var n=pad[2]; - return legacy_behavior$0 - ?[0,1,n] - :incompatible_flag(pct_ind,str_ind,48,cst_precision$0)} - return pad} - return 2 <= pad[1] - ?legacy_behavior$0 - ?_aL_ - :incompatible_flag(pct_ind,str_ind,48,cst_precision$1) - :pad}} - function check_no_0(symb,pad) - {if(typeof pad === "number") - return pad; - else - {if(0 === pad[0]) - {if(2 <= pad[1]) - {var width=pad[2]; - return legacy_behavior$0 - ?[0,1,width] - :incompatible_flag(pct_ind,str_ind,symb,cst_0$0)} - return pad} - return 2 <= pad[1] - ?legacy_behavior$0 - ?_aM_ - :incompatible_flag(pct_ind,str_ind,symb,cst_0$1) - :pad}} - function opt_of_pad(c,pad) - {if(typeof pad === "number") - return 0; - else - {if(0 === pad[0]) - switch(pad[1]) - {case 0: - var width=pad[2]; - return legacy_behavior$0 - ?[0,width] - :incompatible_flag(pct_ind,str_ind,c,cst$38); - case 1:var width$0=pad[2];return [0,width$0]; - default: - var width$1=pad[2]; - return legacy_behavior$0 - ?[0,width$1] - :incompatible_flag(pct_ind,str_ind,c,cst_0$2)} - return incompatible_flag(pct_ind,str_ind,c,cst$39)}} - function get_pad_opt(c){return opt_of_pad(c,get_pad(0))} - function get_padprec_opt(c){return opt_of_pad(c,get_padprec(0))} - var switch$0=0; - if(124 <= symb) - switch$0 = 1; - else - switch(symb) - {case 33: - var - match$6=parse(str_ind,end_ind), - fmt_rest$5=match$6[1], - fmt_result=[0,[10,fmt_rest$5]]; - break; - case 40: - var - sub_end=search_subformat_end(str_ind,end_ind,41), - match$8=parse(sub_end + 2 | 0,end_ind), - fmt_rest$7=match$8[1], - match$9=parse(str_ind,sub_end), - sub_fmt=match$9[1], - sub_fmtty=fmtty_of_fmt(sub_fmt); - if(get_ign(0)) - var - ignored$2=[9,get_pad_opt(95),sub_fmtty], - _rq_=[0,[23,ignored$2,fmt_rest$7]]; - else - var _rq_=[0,[14,get_pad_opt(40),sub_fmtty,fmt_rest$7]]; - var fmt_result=_rq_; - break; - case 44:var fmt_result=parse(str_ind,end_ind);break; - case 67: - var - match$12=parse(str_ind,end_ind), - fmt_rest$10=match$12[1], - _rs_=get_ign(0)?[0,[23,1,fmt_rest$10]]:[0,[1,fmt_rest$10]], - fmt_result=_rs_; - break; - case 78: - var - match$16=parse(str_ind,end_ind), - fmt_rest$14=match$16[1], - counter$0=2; - if(get_ign(0)) - var ignored$6=[11,counter$0],_ry_=[0,[23,ignored$6,fmt_rest$14]]; - else - var _ry_=[0,[21,counter$0,fmt_rest$14]]; - var fmt_result=_ry_; - break; - case 83: - var - pad$6=check_no_0(symb,get_padprec(0)), - match$17=parse(str_ind,end_ind), - fmt_rest$15=match$17[1]; - if(get_ign(0)) - var - ignored$7=[1,get_padprec_opt(95)], - _rz_=[0,[23,ignored$7,fmt_rest$15]]; - else - var - match$18=make_padding_fmt_ebb(pad$6,fmt_rest$15), - fmt_rest$16=match$18[2], - pad$7=match$18[1], - _rz_=[0,[3,pad$7,fmt_rest$16]]; - var fmt_result=_rz_; - break; - case 91: - if(str_ind === end_ind)unexpected_end_of_format(end_ind); - var - char_set=create_char_set(0), - add_char=function(c){return add_in_char_set(char_set,c)}, - add_range= - function(c$0,c) - {if(! (c < c$0)) - {var i=c$0; - for(;;) - {add_in_char_set(char_set,char_of_int(i)); - var _rS_=i + 1 | 0; - if(c !== i){var i=_rS_;continue} - break}} - return 0}, - fail_single_percent= - function(str_ind) - {return caml_call2(failwith_message(_aV_),str,str_ind)}, - parse_char_set_content= - function(counter,str_ind,end_ind) - {var str_ind$0=str_ind; - for(;;) - {if(str_ind$0 === end_ind)unexpected_end_of_format(end_ind); - var c=caml_string_get(str,str_ind$0); - if(45 === c) - {add_char(45); - var str_ind$1=str_ind$0 + 1 | 0,str_ind$0=str_ind$1; - continue} - if(93 === c)return str_ind$0 + 1 | 0; - var _rR_=str_ind$0 + 1 | 0; - if(counter < 50) - {var counter$0=counter + 1 | 0; - return parse_char_set_after_char$0(counter$0,_rR_,end_ind,c)} - return caml_trampoline_return - (parse_char_set_after_char$0,[0,_rR_,end_ind,c])}}, - parse_char_set_after_char$0= - function(counter,str_ind,end_ind,c) - {var str_ind$0=str_ind,c$0=c; - for(;;) - {if(str_ind$0 === end_ind)unexpected_end_of_format(end_ind); - var c$1=caml_string_get(str,str_ind$0),switch$0=0; - if(46 <= c$1) - {if(64 === c$1) - switch$0 = 1; - else - if(93 === c$1){add_char(c$0);return str_ind$0 + 1 | 0}} - else - if(37 === c$1) - switch$0 = 1; - else - if(45 <= c$1) - {var str_ind$2=str_ind$0 + 1 | 0; - if(str_ind$2 === end_ind)unexpected_end_of_format(end_ind); - var c$2=caml_string_get(str,str_ind$2); - if(37 === c$2) - {if((str_ind$2 + 1 | 0) === end_ind) - unexpected_end_of_format(end_ind); - var c$3=caml_string_get(str,str_ind$2 + 1 | 0); - if(37 !== c$3 && 64 !== c$3) - return fail_single_percent(str_ind$2); - add_range(c$0,c$3); - var _rP_=str_ind$2 + 2 | 0; - if(counter < 50) - {var counter$2=counter + 1 | 0; - return parse_char_set_content(counter$2,_rP_,end_ind)} - return caml_trampoline_return - (parse_char_set_content,[0,_rP_,end_ind])} - if(93 === c$2) - {add_char(c$0);add_char(45);return str_ind$2 + 1 | 0} - add_range(c$0,c$2); - var _rQ_=str_ind$2 + 1 | 0; - if(counter < 50) - {var counter$1=counter + 1 | 0; - return parse_char_set_content(counter$1,_rQ_,end_ind)} - return caml_trampoline_return - (parse_char_set_content,[0,_rQ_,end_ind])} - if(switch$0 && 37 === c$0) - {add_char(c$1); - var _rO_=str_ind$0 + 1 | 0; - if(counter < 50) - {var counter$0=counter + 1 | 0; - return parse_char_set_content(counter$0,_rO_,end_ind)} - return caml_trampoline_return - (parse_char_set_content,[0,_rO_,end_ind])} - if(37 === c$0)fail_single_percent(str_ind$0); - add_char(c$0); - var str_ind$1=str_ind$0 + 1 | 0,str_ind$0=str_ind$1,c$0=c$1; - continue}}, - parse_char_set_after_char= - function(str_ind,end_ind,c) - {return caml_trampoline - (parse_char_set_after_char$0(0,str_ind,end_ind,c))}; - if(str_ind === end_ind)unexpected_end_of_format(end_ind); - var match$31=caml_string_get(str,str_ind); - if(94 === match$31) - var str_ind$0=str_ind + 1 | 0,reverse=1,str_ind$1=str_ind$0; - else - var reverse=0,str_ind$1=str_ind; - if(str_ind$1 === end_ind)unexpected_end_of_format(end_ind); - var - c=caml_string_get(str,str_ind$1), - next_ind=parse_char_set_after_char(str_ind$1 + 1 | 0,end_ind,c), - char_set$0=freeze_char_set(char_set), - char_set$1=reverse?rev_char_set(char_set$0):char_set$0, - match$21=parse(next_ind,end_ind), - fmt_rest$19=match$21[1]; - if(get_ign(0)) - var - ignored$9=[10,get_pad_opt(95),char_set$1], - _rE_=[0,[23,ignored$9,fmt_rest$19]]; - else - var _rE_=[0,[20,get_pad_opt(91),char_set$1,fmt_rest$19]]; - var fmt_result=_rE_; - break; - case 97: - var - match$22=parse(str_ind,end_ind), - fmt_rest$20=match$22[1], - fmt_result=[0,[15,fmt_rest$20]]; - break; - case 99: - var - char_format= - function(fmt_rest) - {return get_ign(0)?[0,[23,0,fmt_rest]]:[0,[0,fmt_rest]]}, - match$23=parse(str_ind,end_ind), - fmt_rest$21=match$23[1], - match$24=get_pad_opt(99); - if(match$24) - {if(0 === match$24[1]) - var - _rF_=get_ign(0)?[0,[23,3,fmt_rest$21]]:[0,[22,fmt_rest$21]], - _rG_=_rF_; - else - var - _rG_= - legacy_behavior$0 - ?char_format(fmt_rest$21) - :invalid_format_message - (str_ind,cst_non_zero_widths_are_unsupp); - var _rH_=_rG_} - else - var _rH_=char_format(fmt_rest$21); - var fmt_result=_rH_; - break; - case 114: - var - match$25=parse(str_ind,end_ind), - fmt_rest$22=match$25[1], - _rI_=get_ign(0)?[0,[23,2,fmt_rest$22]]:[0,[19,fmt_rest$22]], - fmt_result=_rI_; - break; - case 115: - var - pad$9=check_no_0(symb,get_padprec(0)), - match$26=parse(str_ind,end_ind), - fmt_rest$23=match$26[1]; - if(get_ign(0)) - var - ignored$10=[0,get_padprec_opt(95)], - _rJ_=[0,[23,ignored$10,fmt_rest$23]]; - else - var - match$27=make_padding_fmt_ebb(pad$9,fmt_rest$23), - fmt_rest$24=match$27[2], - pad$10=match$27[1], - _rJ_=[0,[2,pad$10,fmt_rest$24]]; - var fmt_result=_rJ_; - break; - case 116: - var - match$28=parse(str_ind,end_ind), - fmt_rest$25=match$28[1], - fmt_result=[0,[16,fmt_rest$25]]; - break; - case 123: - var - sub_end$0=search_subformat_end(str_ind,end_ind,125), - match$29=parse(str_ind,sub_end$0), - sub_fmt$0=match$29[1], - match$30=parse(sub_end$0 + 2 | 0,end_ind), - fmt_rest$26=match$30[1], - sub_fmtty$0=fmtty_of_fmt(sub_fmt$0); - if(get_ign(0)) - var - ignored$11=[8,get_pad_opt(95),sub_fmtty$0], - _rK_=[0,[23,ignored$11,fmt_rest$26]]; - else - var _rK_=[0,[13,get_pad_opt(123),sub_fmtty$0,fmt_rest$26]]; - var fmt_result=_rK_; - break; - case 66: - case 98: - var - pad$3=check_no_0(symb,get_padprec(0)), - match$10=parse(str_ind,end_ind), - fmt_rest$8=match$10[1]; - if(get_ign(0)) - var - ignored$3=[7,get_padprec_opt(95)], - _rr_=[0,[23,ignored$3,fmt_rest$8]]; - else - var - match$11=make_padding_fmt_ebb(pad$3,fmt_rest$8), - fmt_rest$9=match$11[2], - pad$4=match$11[1], - _rr_=[0,[9,pad$4,fmt_rest$9]]; - var fmt_result=_rr_; - break; - case 37: - case 64: - var - match$7=parse(str_ind,end_ind), - fmt_rest$6=match$7[1], - fmt_result=[0,[12,symb,fmt_rest$6]]; - break; - case 76: - case 108: - case 110: - var switch$1=0; - if(str_ind !== end_ind) - {var - symb$0=caml_string_get(str,str_ind), - _rL_=symb$0 - 88 | 0, - switch$2=0; - if(! (32 < _rL_ >>> 0)) - switch(_rL_) - {case 0: - case 12: - case 17: - case 23: - case 29: - case 32:var _rx_=1;switch$2 = 1;break - } - if(! switch$2)var _rx_=0; - if(_rx_){switch$0 = 1;switch$1 = 1}} - if(! switch$1) - {var - match$15=parse(str_ind,end_ind), - fmt_rest$13=match$15[1], - switch$3=0; - if(108 <= symb) - {if(! (111 <= symb)) - switch(symb - 108 | 0) - {case 0:var counter=0;switch$3 = 1;break; - case 1:break; - default:var counter=1;switch$3 = 1}} - else - if(76 === symb){var counter=2;switch$3 = 1} - if(! switch$3)throw [0,Assert_failure,_aZ_]; - if(get_ign(0)) - var ignored$5=[11,counter],_rw_=[0,[23,ignored$5,fmt_rest$13]]; - else - var _rw_=[0,[21,counter,fmt_rest$13]]; - var fmt_result=_rw_} - break; - case 32: - case 35: - case 43: - case 45: - case 95: - var - fmt_result= - caml_call3(failwith_message(_aQ_),str,pct_ind,symb); - break; - case 88: - case 100: - case 105: - case 111: - case 117: - case 120: - var - _rA_=get_space(0), - _rB_=get_hash(0), - iconv$2= - compute_int_conv(pct_ind,str_ind,get_plus(0),_rB_,_rA_,symb), - match$19=parse(str_ind,end_ind), - fmt_rest$17=match$19[1]; - if(get_ign(0)) - var - ignored$8=[2,iconv$2,get_pad_opt(95)], - _rC_=[0,[23,ignored$8,fmt_rest$17]]; - else - var - _rD_=get_prec(0), - match$20=make_padprec_fmt_ebb(get_int_pad(0),_rD_,fmt_rest$17), - fmt_rest$18=match$20[3], - prec$4=match$20[2], - pad$8=match$20[1], - _rC_=[0,[4,iconv$2,pad$8,prec$4,fmt_rest$18]]; - var fmt_result=_rC_; - break; - case 69: - case 70: - case 71: - case 72: - case 101: - case 102: - case 103: - case 104: - var - space$1=get_space(0), - hash$1=get_hash(0), - plus$2=get_plus(0), - flag= - plus$2 - ?space$1 - ?legacy_behavior$0 - ?1 - :incompatible_flag(pct_ind,str_ind,32,cst$50) - :1 - :space$1?2:0, - switch$4=0; - if(73 <= symb) - {var switcher=symb - 101 | 0; - if(3 < switcher >>> 0) - switch$4 = 1; - else - {switch(switcher) - {case 0:var _rM_=1;break; - case 1:var _rM_=0;break; - case 2:var _rM_=3;break; - default:var _rM_=6} - var kind=_rM_}} - else - if(69 <= symb) - {var switch$5=0; - switch(symb - 69 | 0) - {case 0:var _rN_=2;break; - case 1:switch$4 = 1;switch$5 = 1;break; - case 2:var _rN_=4;break; - default:var _rN_=7} - if(! switch$5)var kind=_rN_} - else - switch$4 = 1; - if(switch$4) - {var switch$6=0; - if(hash$1) - if(70 === symb)var kind=8;else switch$6 = 1; - else - if(70 === symb)var kind=5;else switch$6 = 1; - if(switch$6)throw [0,Assert_failure,_a1_]} - var - fconv=[0,flag,kind], - match$13=parse(str_ind,end_ind), - fmt_rest$11=match$13[1]; - if(get_ign(0)) - {var match=get_prec(0); - if(typeof match === "number") - var _rt_=match?incompatible_flag(pct_ind,str_ind,95,cst$40):0; - else - var ndec=match[1],_rt_=[0,ndec]; - var - ignored$4=[6,get_pad_opt(95),_rt_], - _ru_=[0,[23,ignored$4,fmt_rest$11]]} - else - var - _rv_=get_prec(0), - match$14=make_padprec_fmt_ebb(get_pad(0),_rv_,fmt_rest$11), - fmt_rest$12=match$14[3], - prec$3=match$14[2], - pad$5=match$14[1], - _ru_=[0,[8,fconv,pad$5,prec$3,fmt_rest$12]]; - var fmt_result=_ru_; - break; - default:switch$0 = 1} - if(switch$0) - {var switch$7=0; - if(108 <= symb) - if(111 <= symb) - switch$7 = 1; - else - {var switch$8=0; - switch(symb - 108 | 0) - {case 0: - var - _ra_=caml_string_get(str,str_ind), - _rb_=get_space(0), - _rc_=get_hash(0), - iconv= - compute_int_conv - (pct_ind,str_ind + 1 | 0,get_plus(0),_rc_,_rb_,_ra_), - match$0=parse(str_ind + 1 | 0,end_ind), - fmt_rest=match$0[1]; - if(get_ign(0)) - var - ignored=[3,iconv,get_pad_opt(95)], - _rd_=[0,[23,ignored,fmt_rest]]; - else - var - _rf_=get_prec(0), - match$1=make_padprec_fmt_ebb(get_int_pad(0),_rf_,fmt_rest), - fmt_rest$0=match$1[3], - prec$0=match$1[2], - pad$0=match$1[1], - _rd_=[0,[5,iconv,pad$0,prec$0,fmt_rest$0]]; - var _re_=_rd_; - break; - case 1:switch$7 = 1;switch$8 = 1;break; - default: - var - _rg_=caml_string_get(str,str_ind), - _rh_=get_space(0), - _ri_=get_hash(0), - iconv$0= - compute_int_conv - (pct_ind,str_ind + 1 | 0,get_plus(0),_ri_,_rh_,_rg_), - match$2=parse(str_ind + 1 | 0,end_ind), - fmt_rest$1=match$2[1]; - if(get_ign(0)) - var - ignored$0=[4,iconv$0,get_pad_opt(95)], - _rj_=[0,[23,ignored$0,fmt_rest$1]]; - else - var - _rk_=get_prec(0), - match$3=make_padprec_fmt_ebb(get_int_pad(0),_rk_,fmt_rest$1), - fmt_rest$2=match$3[3], - prec$1=match$3[2], - pad$1=match$3[1], - _rj_=[0,[6,iconv$0,pad$1,prec$1,fmt_rest$2]]; - var _re_=_rj_} - if(! switch$8)var fmt_result=_re_} - else - if(76 === symb) - {var - _rl_=caml_string_get(str,str_ind), - _rm_=get_space(0), - _rn_=get_hash(0), - iconv$1= - compute_int_conv - (pct_ind,str_ind + 1 | 0,get_plus(0),_rn_,_rm_,_rl_), - match$4=parse(str_ind + 1 | 0,end_ind), - fmt_rest$3=match$4[1]; - if(get_ign(0)) - var - ignored$1=[5,iconv$1,get_pad_opt(95)], - _ro_=[0,[23,ignored$1,fmt_rest$3]]; - else - var - _rp_=get_prec(0), - match$5=make_padprec_fmt_ebb(get_int_pad(0),_rp_,fmt_rest$3), - fmt_rest$4=match$5[3], - prec$2=match$5[2], - pad$2=match$5[1], - _ro_=[0,[7,iconv$1,pad$2,prec$2,fmt_rest$4]]; - var fmt_result=_ro_} - else - switch$7 = 1; - if(switch$7) - var - fmt_result= - caml_call3(failwith_message(_aN_),str,str_ind - 1 | 0,symb)} - if(1 - legacy_behavior$0) - {var _q3_=1 - plus_used[1],plus$0=_q3_?plus:_q3_; - if(plus$0)incompatible_flag(pct_ind,str_ind,symb,cst$41); - var _q4_=1 - hash_used[1],hash$0=_q4_?hash:_q4_; - if(hash$0)incompatible_flag(pct_ind,str_ind,symb,cst$42); - var _q5_=1 - space_used[1],space$0=_q5_?space:_q5_; - if(space$0)incompatible_flag(pct_ind,str_ind,symb,cst$43); - var _q6_=1 - pad_used[1],_q7_=_q6_?caml_notequal([0,pad],_aO_):_q6_; - if(_q7_)incompatible_flag(pct_ind,str_ind,symb,cst_padding$0); - var - _q8_=1 - prec_used[1], - _q9_=_q8_?caml_notequal([0,prec],_aP_):_q8_; - if(_q9_) - {var _q__=ign?95:symb; - incompatible_flag(pct_ind,str_ind,_q__,cst_precision$2)} - var plus$1=ign?plus:ign; - if(plus$1)incompatible_flag(pct_ind,str_ind,95,cst$44)} - var _q$_=1 - ign_used[1],ign$0=_q$_?ign:_q$_; - if(ign$0) - {var switch$9=0; - if(38 <= symb) - {if(44 !== symb && 64 !== symb)switch$9 = 1} - else - if(33 !== symb && ! (37 <= symb))switch$9 = 1; - var switch$10=0; - if(switch$9 || ! legacy_behavior$0)switch$10 = 1; - if(switch$10)incompatible_flag(pct_ind,str_ind,symb,cst$45)} - return fmt_result} - function parse_after_precision - (pct_ind,str_ind,end_ind,minus,plus,hash,space,ign,pad,prec) - {if(str_ind === end_ind)unexpected_end_of_format(end_ind); - function parse_conv(padprec) - {return parse_conversion - (pct_ind, - str_ind + 1 | 0, - end_ind, - plus, - hash, - space, - ign, - pad, - prec, - padprec, - caml_string_get(str,str_ind))} - if(typeof pad === "number") - {if(typeof prec === "number" && ! prec)return parse_conv(0); - if(minus) - {if(typeof prec === "number")return parse_conv(_aJ_); - var n=prec[1]; - return parse_conv([0,0,n])} - if(typeof prec === "number")return parse_conv(_aK_); - var n$0=prec[1]; - return parse_conv([0,1,n$0])} - return parse_conv(pad)} - function parse_after_padding - (pct_ind,str_ind,end_ind,minus,plus,hash,space,ign,pad) - {if(str_ind === end_ind)unexpected_end_of_format(end_ind); - var symb=caml_string_get(str,str_ind); - if(46 === symb) - {var str_ind$0=str_ind + 1 | 0; - if(str_ind$0 === end_ind)unexpected_end_of_format(end_ind); - var - parse_literal= - function(minus,str_ind) - {var - match=parse_positive(str_ind,end_ind,0), - prec=match[2], - new_ind=match[1]; - return parse_after_precision - (pct_ind, - new_ind, - end_ind, - minus, - plus, - hash, - space, - ign, - pad, - [0,prec])}, - symb$0=caml_string_get(str,str_ind$0); - if(48 <= symb$0) - {if(! (58 <= symb$0))return parse_literal(minus,str_ind$0)} - else - if(42 <= symb$0) - switch(symb$0 - 42 | 0) - {case 0: - return parse_after_precision - (pct_ind, - str_ind$0 + 1 | 0, - end_ind, - minus, - plus, - hash, - space, - ign, - pad, - 1); - case 1: - case 3: - if(legacy_behavior$0) - {var - _q2_=str_ind$0 + 1 | 0, - minus$0=minus || (45 === symb$0?1:0); - return parse_literal(minus$0,_q2_)} - break - } - return legacy_behavior$0 - ?parse_after_precision - (pct_ind, - str_ind$0, - end_ind, - minus, - plus, - hash, - space, - ign, - pad, - _aI_) - :invalid_format_without(str_ind$0 - 1 | 0,46,cst_precision)} - return parse_conversion - (pct_ind, - str_ind + 1 | 0, - end_ind, - plus, - hash, - space, - ign, - pad, - 0, - pad, - symb)} - function parse_flags(pct_ind,str_ind,end_ind,ign) - {var zero=[0,0],minus=[0,0],plus=[0,0],space=[0,0],hash=[0,0]; - function set_flag(str_ind,flag) - {var _qZ_=flag[1],_q0_=_qZ_?1 - legacy_behavior$0:_qZ_; - if(_q0_) - {var _q1_=caml_string_get(str,str_ind); - caml_call3(failwith_message(_aG_),str,str_ind,_q1_)} - flag[1] = 1; - return 0} - var str_ind$0=str_ind; - for(;;) - {if(str_ind$0 === end_ind)unexpected_end_of_format(end_ind); - var match=caml_string_get(str,str_ind$0),switcher=match - 32 | 0; - if(! (16 < switcher >>> 0)) - switch(switcher) - {case 0: - set_flag(str_ind$0,space); - var str_ind$1=str_ind$0 + 1 | 0,str_ind$0=str_ind$1; - continue; - case 3: - set_flag(str_ind$0,hash); - var str_ind$2=str_ind$0 + 1 | 0,str_ind$0=str_ind$2; - continue; - case 11: - set_flag(str_ind$0,plus); - var str_ind$3=str_ind$0 + 1 | 0,str_ind$0=str_ind$3; - continue; - case 13: - set_flag(str_ind$0,minus); - var str_ind$4=str_ind$0 + 1 | 0,str_ind$0=str_ind$4; - continue; - case 16: - set_flag(str_ind$0,zero); - var str_ind$5=str_ind$0 + 1 | 0,str_ind$0=str_ind$5; - continue - } - var - _qU_=space[1], - _qV_=hash[1], - _qW_=plus[1], - _qX_=minus[1], - _qY_=zero[1]; - if(str_ind$0 === end_ind)unexpected_end_of_format(end_ind); - var - padty= - _qY_ - ?_qX_ - ?legacy_behavior$0 - ?0 - :incompatible_flag(pct_ind,str_ind$0,45,cst_0) - :2 - :_qX_?0:1, - match$0=caml_string_get(str,str_ind$0); - if(48 <= match$0) - {if(! (58 <= match$0)) - {var - match$1=parse_positive(str_ind$0,end_ind,0), - width=match$1[2], - new_ind=match$1[1]; - return parse_after_padding - (pct_ind, - new_ind, - end_ind, - _qX_, - _qW_, - _qV_, - _qU_, - ign, - [0,padty,width])}} - else - if(42 === match$0) - return parse_after_padding - (pct_ind, - str_ind$0 + 1 | 0, - end_ind, - _qX_, - _qW_, - _qV_, - _qU_, - ign, - [1,padty]); - switch(padty) - {case 0: - if(1 - legacy_behavior$0) - invalid_format_without(str_ind$0 - 1 | 0,45,cst_padding); - return parse_after_padding - (pct_ind,str_ind$0,end_ind,_qX_,_qW_,_qV_,_qU_,ign,0); - case 1: - return parse_after_padding - (pct_ind,str_ind$0,end_ind,_qX_,_qW_,_qV_,_qU_,ign,0); - default: - return parse_after_padding - (pct_ind,str_ind$0,end_ind,_qX_,_qW_,_qV_,_qU_,ign,_aH_)}}} - function parse_tag(is_open_tag,str_ind,end_ind) - {try - {if(str_ind === end_ind)throw Not_found; - var match$0=caml_string_get(str,str_ind); - if(60 === match$0) - {var ind=index_from$0(str,str_ind + 1 | 0,62); - if(end_ind <= ind)throw Not_found; - var - sub_str=sub$0(str,str_ind,(ind - str_ind | 0) + 1 | 0), - match$1=parse(ind + 1 | 0,end_ind), - fmt_rest$0=match$1[1], - match$2=parse(str_ind,ind + 1 | 0), - sub_fmt=match$2[1], - sub_format$0=[0,sub_fmt,sub_str], - formatting$0=is_open_tag?[0,sub_format$0]:[1,sub_format$0], - _qS_=[0,[18,formatting$0,fmt_rest$0]]; - return _qS_} - throw Not_found} - catch(_qT_) - {_qT_ = caml_wrap_exception(_qT_); - if(_qT_ === Not_found) - {var - match=parse(str_ind,end_ind), - fmt_rest=match[1], - formatting=is_open_tag?[0,sub_format]:[1,sub_format]; - return [0,[18,formatting,fmt_rest]]} - throw _qT_}} - function parse_good_break(str_ind,end_ind) - {try - {var - _qL_=str_ind === end_ind?1:0, - _qM_=_qL_ || (60 !== caml_string_get(str,str_ind)?1:0); - if(_qM_)throw Not_found; - var - str_ind_1=parse_spaces(str_ind + 1 | 0,end_ind), - match$0=caml_string_get(str,str_ind_1), - switch$0=0; - if(48 <= match$0) - {if(! (58 <= match$0))switch$0 = 1} - else - if(45 === match$0)switch$0 = 1; - if(! switch$0)throw Not_found; - var - match$1=parse_integer(str_ind_1,end_ind), - width=match$1[2], - str_ind_2=match$1[1], - str_ind_3=parse_spaces(str_ind_2,end_ind), - match$2=caml_string_get(str,str_ind_3), - switcher=match$2 - 45 | 0, - switch$1=0; - if(12 < switcher >>> 0) - if(17 === switcher) - var - s=sub$0(str,str_ind - 2 | 0,(str_ind_3 - str_ind | 0) + 3 | 0), - _qN_=[0,s,width,0], - _qO_=str_ind_3 + 1 | 0, - formatting_lit$0=_qN_, - next_ind=_qO_; - else - switch$1 = 1; - else - if(1 < switcher - 1 >>> 0) - {var - match$3=parse_integer(str_ind_3,end_ind), - offset=match$3[2], - str_ind_4=match$3[1], - str_ind_5=parse_spaces(str_ind_4,end_ind); - if(62 !== caml_string_get(str,str_ind_5))throw Not_found; - var - s$0=sub$0(str,str_ind - 2 | 0,(str_ind_5 - str_ind | 0) + 3 | 0), - _qP_=[0,s$0,width,offset], - _qQ_=str_ind_5 + 1 | 0, - formatting_lit$0=_qP_, - next_ind=_qQ_} - else - switch$1 = 1; - if(switch$1)throw Not_found} - catch(_qR_) - {_qR_ = caml_wrap_exception(_qR_); - if(_qR_ !== Not_found && _qR_[1] !== Failure)throw _qR_; - var formatting_lit$0=formatting_lit,next_ind=str_ind} - var match=parse(next_ind,end_ind),fmt_rest=match[1]; - return [0,[17,formatting_lit$0,fmt_rest]]} - function parse_magic_size(str_ind,end_ind) - {try - {var - str_ind_1=parse_spaces(str_ind,end_ind), - match$2=caml_string_get(str,str_ind_1), - switch$0=0; - if(48 <= match$2) - {if(! (58 <= match$2))switch$0 = 1} - else - if(45 === match$2)switch$0 = 1; - if(switch$0) - {var - match$3=parse_integer(str_ind_1,end_ind), - size=match$3[2], - str_ind_2=match$3[1], - str_ind_3=parse_spaces(str_ind_2,end_ind); - if(62 !== caml_string_get(str,str_ind_3))throw Not_found; - var - s=sub$0(str,str_ind - 2 | 0,(str_ind_3 - str_ind | 0) + 3 | 0), - _qJ_=[0,[0,str_ind_3 + 1 | 0,[1,s,size]]]} - else - var _qJ_=0; - var _qI_=_qJ_} - catch(_qK_) - {_qK_ = caml_wrap_exception(_qK_); - if(_qK_ !== Not_found && _qK_[1] !== Failure)throw _qK_; - var _qI_=0} - if(_qI_) - {var - match=_qI_[1], - formatting_lit=match[2], - next_ind=match[1], - match$0=parse(next_ind,end_ind), - fmt_rest=match$0[1]; - return [0,[17,formatting_lit,fmt_rest]]} - var match$1=parse(str_ind,end_ind),fmt_rest$0=match$1[1]; - return [0,[17,_aU_,fmt_rest$0]]} - function parse_spaces(str_ind,end_ind) - {var str_ind$0=str_ind; - for(;;) - {if(str_ind$0 === end_ind)unexpected_end_of_format(end_ind); - if(32 === caml_string_get(str,str_ind$0)) - {var str_ind$1=str_ind$0 + 1 | 0,str_ind$0=str_ind$1;continue} - return str_ind$0}} - function parse_positive(str_ind,end_ind,acc) - {var str_ind$0=str_ind,acc$0=acc; - for(;;) - {if(str_ind$0 === end_ind)unexpected_end_of_format(end_ind); - var c=caml_string_get(str,str_ind$0); - if(9 < c - 48 >>> 0)return [0,str_ind$0,acc$0]; - var acc$1=(acc$0 * 10 | 0) + (c - 48 | 0) | 0; - if(max_string_length < acc$1) - return caml_call3 - (failwith_message(_aW_),str,acc$1,max_string_length); - var str_ind$1=str_ind$0 + 1 | 0,str_ind$0=str_ind$1,acc$0=acc$1; - continue}} - function parse_integer(str_ind,end_ind) - {if(str_ind === end_ind)unexpected_end_of_format(end_ind); - var match=caml_string_get(str,str_ind); - if(48 <= match) - {if(! (58 <= match))return parse_positive(str_ind,end_ind,0)} - else - if(45 === match) - {if((str_ind + 1 | 0) === end_ind)unexpected_end_of_format(end_ind); - var c=caml_string_get(str,str_ind + 1 | 0); - if(9 < c - 48 >>> 0) - return expected_character(str_ind + 1 | 0,cst_digit,c); - var - match$0=parse_positive(str_ind + 1 | 0,end_ind,0), - n=match$0[2], - next_ind=match$0[1]; - return [0,next_ind,- n | 0]} - throw [0,Assert_failure,_aX_]} - function search_subformat_end(str_ind,end_ind,c) - {var str_ind$0=str_ind; - for(;;) - {if(str_ind$0 === end_ind) - caml_call3(failwith_message(_aY_),str,c,end_ind); - var match=caml_string_get(str,str_ind$0); - if(37 === match) - {if((str_ind$0 + 1 | 0) === end_ind) - unexpected_end_of_format(end_ind); - if(caml_string_get(str,str_ind$0 + 1 | 0) === c)return str_ind$0; - var match$0=caml_string_get(str,str_ind$0 + 1 | 0); - if(95 <= match$0) - {if(123 <= match$0) - {if(! (126 <= match$0)) - switch(match$0 - 123 | 0) - {case 0: - var - sub_end=search_subformat_end(str_ind$0 + 2 | 0,end_ind,125), - str_ind$2=sub_end + 2 | 0, - str_ind$0=str_ind$2; - continue; - case 1:break; - default: - return expected_character - (str_ind$0 + 1 | 0,cst_character,125)}} - else - if(! (96 <= match$0)) - {if((str_ind$0 + 2 | 0) === end_ind) - unexpected_end_of_format(end_ind); - var match$1=caml_string_get(str,str_ind$0 + 2 | 0); - if(40 === match$1) - {var - sub_end$0=search_subformat_end(str_ind$0 + 3 | 0,end_ind,41), - str_ind$3=sub_end$0 + 2 | 0, - str_ind$0=str_ind$3; - continue} - if(123 === match$1) - {var - sub_end$1= - search_subformat_end(str_ind$0 + 3 | 0,end_ind,125), - str_ind$4=sub_end$1 + 2 | 0, - str_ind$0=str_ind$4; - continue} - var str_ind$5=str_ind$0 + 3 | 0,str_ind$0=str_ind$5; - continue}} - else - {if(40 === match$0) - {var - sub_end$2=search_subformat_end(str_ind$0 + 2 | 0,end_ind,41), - str_ind$6=sub_end$2 + 2 | 0, - str_ind$0=str_ind$6; - continue} - if(41 === match$0) - return expected_character(str_ind$0 + 1 | 0,cst_character$0,41)} - var str_ind$1=str_ind$0 + 2 | 0,str_ind$0=str_ind$1; - continue} - var str_ind$7=str_ind$0 + 1 | 0,str_ind$0=str_ind$7; - continue}} - function incompatible_flag(pct_ind,str_ind,symb,option) - {var subfmt=sub$0(str,pct_ind,str_ind - pct_ind | 0); - return caml_call5 - (failwith_message(_a2_),str,pct_ind,option,symb,subfmt)} - function compute_int_conv(pct_ind,str_ind,plus,hash,space,symb) - {var plus$0=plus,hash$0=hash,space$0=space; - for(;;) - {var switch$0=0; - if(plus$0) - {if(hash$0) - switch$0 = 1; - else - if(! space$0){if(100 === symb)return 1;if(105 === symb)return 4}} - else - if(hash$0) - if(space$0) - switch$0 = 1; - else - {var switcher$0=symb - 88 | 0; - if(32 < switcher$0 >>> 0) - switch$0 = 1; - else - switch(switcher$0) - {case 0:return 9; - case 12:return 13; - case 17:return 14; - case 23:return 11; - case 29:return 15; - case 32:return 7; - default:switch$0 = 1}} - else - if(space$0) - {if(100 === symb)return 2;if(105 === symb)return 5} - else - {var switcher$1=symb - 88 | 0; - if(! (32 < switcher$1 >>> 0)) - switch(switcher$1) - {case 0:return 8; - case 12:return 0; - case 17:return 3; - case 23:return 10; - case 29:return 12; - case 32:return 6 - }} - if(switch$0) - {var switcher=symb - 88 | 0; - if(! (32 < switcher >>> 0)) - switch(switcher) - {case 0:if(legacy_behavior$0)return 9;break; - case 23:if(legacy_behavior$0)return 11;break; - case 32:if(legacy_behavior$0)return 7;break; - case 12: - case 17: - case 29: - if(legacy_behavior$0){var hash$0=0;continue} - return incompatible_flag(pct_ind,str_ind,symb,cst$49) - }} - if(plus$0) - {if(space$0) - {if(legacy_behavior$0){var space$0=0;continue} - return incompatible_flag(pct_ind,str_ind,32,cst$46)} - if(legacy_behavior$0){var plus$0=0;continue} - return incompatible_flag(pct_ind,str_ind,symb,cst$47)} - if(space$0) - {if(legacy_behavior$0){var space$0=0;continue} - return incompatible_flag(pct_ind,str_ind,symb,cst$48)} - throw [0,Assert_failure,_a0_]}} - return parse(0,caml_ml_string_length(str))} - function format_of_string_fmtty(str,fmtty) - {var match=fmt_ebb_of_string(0,str),fmt=match[1]; - try - {var _qG_=[0,type_format(fmt,fmtty),str];return _qG_} - catch(_qH_) - {_qH_ = caml_wrap_exception(_qH_); - if(_qH_ === Type_mismatch) - {var _qF_=string_of_fmtty(fmtty); - return caml_call2(failwith_message(_a3_),str,_qF_)} - throw _qH_}} - function format_of_string_format(str,param) - {var - str$0=param[2], - fmt=param[1], - match=fmt_ebb_of_string(0,str), - fmt$0=match[1]; - try - {var _qD_=[0,type_format(fmt$0,fmtty_of_fmt(fmt)),str];return _qD_} - catch(_qE_) - {_qE_ = caml_wrap_exception(_qE_); - if(_qE_ === Type_mismatch) - return caml_call2(failwith_message(_a4_),str,str$0); - throw _qE_}} - var - CamlinternalFormat= - [0, - is_in_char_set, - rev_char_set, - create_char_set, - add_in_char_set, - freeze_char_set, - param_format_of_ignored_format, - make_printf, - make_iprintf, - output_acc, - bufput_acc, - strput_acc, - type_format, - fmt_ebb_of_string, - format_of_string_fmtty, - format_of_string_format, - char_of_iconv, - string_of_formatting_lit, - string_of_fmtty, - string_of_fmt, - open_box_of_string, - symm, - trans, - recast]; - caml_register_global(807,CamlinternalFormat,"CamlinternalFormat"); - function kfprintf(k,o,param) - {var fmt=param[1],_qC_=0; - return make_printf - (function(acc){output_acc(o,acc);return caml_call1(k,o)}, - _qC_, - fmt)} - function kbprintf(k,b,param) - {var fmt=param[1],_qB_=0; - return make_printf - (function(acc){bufput_acc(b,acc);return caml_call1(k,b)}, - _qB_, - fmt)} - function ikfprintf(k,oc,param) - {var fmt=param[1];return make_iprintf(k,oc,fmt)} - function fprintf(oc,fmt){return kfprintf(function(_qA_){return 0},oc,fmt)} - function bprintf(b,fmt){return kbprintf(function(_qz_){return 0},b,fmt)} - function ifprintf(oc,fmt) - {return ikfprintf(function(_qy_){return 0},oc,fmt)} - function ibprintf(b,fmt){return ikfprintf(function(_qx_){return 0},b,fmt)} - function printf(fmt){return fprintf(stdout,fmt)} - function eprintf(fmt){return fprintf(stderr,fmt)} - function ksprintf(k,param) - {var fmt=param[1]; - function k$0(acc) - {var buf=create$2(64); - strput_acc(buf,acc); - return caml_call1(k,contents(buf))} - return make_printf(k$0,0,fmt)} - function sprintf(fmt){return ksprintf(function(s){return s},fmt)} - var - Stdlib_Printf= - [0, - fprintf, - printf, - eprintf, - sprintf, - bprintf, - ifprintf, - ibprintf, - kfprintf, - ikfprintf, - ksprintf, - kbprintf, - ikfprintf, - ksprintf]; - caml_register_global(808,Stdlib_Printf,"Stdlib__Printf"); - var - Bad=[248,cst_Stdlib_Arg_Bad,caml_fresh_oo_id(0)], - Help=[248,cst_Stdlib_Arg_Help,caml_fresh_oo_id(0)], - Stop=[248,cst_Stdlib_Arg_Stop,caml_fresh_oo_id(0)]; - function assoc3(x,l) - {var l$0=l; - for(;;) - {if(l$0) - {var match=l$0[1],y2=match[2],y1=match[1]; - if(caml_equal(y1,x))return y2; - var l$1=l$0[2],l$0=l$1; - continue} - throw Not_found}} - function split$1(s) - {var - i=index$0(s,61), - len=caml_ml_string_length(s), - _qw_=sub$0(s,i + 1 | 0,len - (i + 1 | 0) | 0); - return [0,sub$0(s,0,i),_qw_]} - function make_symlist(prefix,sep,suffix,l) - {if(l) - {var t=l[2],h=l[1],_qv_=cat(prefix,h); - return cat - (fold_left$0(function(x,y){return cat(x,cat(sep,y))},_qv_,t), - suffix)} - return cst_none} - function help_action(param){throw [0,Stop,_a7_]} - function add_help(speclist) - {try - {assoc3(cst_help$2,speclist);var _qs_=0,_qq_=_qs_} - catch(_qu_) - {_qu_ = caml_wrap_exception(_qu_); - if(_qu_ !== Not_found)throw _qu_; - var - _qq_= - [0,[0,cst_help,[0,help_action],cst_Display_this_list_of_optio],0]} - try - {assoc3(cst_help$1,speclist);var _qr_=0,add2=_qr_} - catch(_qt_) - {_qt_ = caml_wrap_exception(_qt_); - if(_qt_ !== Not_found)throw _qt_; - var - add2= - [0, - [0,cst_help$0,[0,help_action],cst_Display_this_list_of_optio$0], - 0]} - return append(speclist,append(_qq_,add2))} - function usage_b(buf,speclist,errmsg) - {caml_call1(bprintf(buf,_a8_),errmsg); - var _qn_=add_help(speclist); - return iter$2 - (function(param) - {var - doc=param[3], - spec=param[2], - key=param[1], - _qo_=0 < caml_ml_string_length(doc)?1:0; - if(_qo_) - {if(11 === spec[0]) - {var l=spec[1],_qp_=make_symlist(cst$53,cst$52,cst$51,l); - return caml_call3(bprintf(buf,_a6_),key,_qp_,doc)} - return caml_call2(bprintf(buf,_a5_),key,doc)} - return _qo_}, - _qn_)} - function usage_string(speclist,errmsg) - {var b=create$2(200);usage_b(b,speclist,errmsg);return contents(b)} - function usage(speclist,errmsg) - {var _qm_=usage_string(speclist,errmsg); - return caml_call1(eprintf(_a9_),_qm_)} - var current=[0,0]; - function bool_of_string_opt$0(x) - {try - {var _qk_=[0,bool_of_string(x)];return _qk_} - catch(_ql_) - {_ql_ = caml_wrap_exception(_ql_); - if(_ql_[1] === Invalid_argument)return 0; - throw _ql_}} - function int_of_string_opt$0(x) - {try - {var _qi_=[0,caml_int_of_string(x)];return _qi_} - catch(_qj_) - {_qj_ = caml_wrap_exception(_qj_); - if(_qj_[1] === Failure)return 0; - throw _qj_}} - function float_of_string_opt(x) - {try - {var _qg_=[0,caml_float_of_string(x)];return _qg_} - catch(_qh_) - {_qh_ = caml_wrap_exception(_qh_); - if(_qh_[1] === Failure)return 0; - throw _qh_}} - function parse_and_expand_argv_dynamic_ - (allow_expand,current,argv,speclist,anonfun,errmsg) - {var initpos=current[1]; - function convert_error(error) - {var - b=create$2(200), - progname= - initpos < argv[1].length - 1 - ?caml_check_bound(argv[1],initpos)[1 + initpos] - :cst$54; - switch(error[0]) - {case 0: - var _qf_=error[1]; - if - (caml_string_notequal(_qf_,cst_help$3) - && - caml_string_notequal(_qf_,cst_help$4)) - caml_call2(bprintf(b,_a__),progname,_qf_); - break; - case 1: - var expected=error[3],arg=error[2],opt=error[1]; - caml_call4(bprintf(b,_bb_),progname,arg,opt,expected); - break; - case 2:var s=error[1];caml_call2(bprintf(b,_bc_),progname,s);break; - default:var s$0=error[1];caml_call2(bprintf(b,_bd_),progname,s$0)} - usage_b(b,speclist[1],errmsg); - if(! caml_equal(error,_a$_) && ! caml_equal(error,_ba_)) - return [0,Bad,contents(b)]; - return [0,Help,contents(b)]} - current[1]++; - for(;;) - {if(current[1] < argv[1].length - 1) - {try - {var - _p6_=current[1], - s=caml_check_bound(argv[1],_p6_)[1 + _p6_], - switch$0=0; - if(1 <= caml_ml_string_length(s) && 45 === caml_string_get(s,0)) - {try - {var - follow$1=0, - _p8_=assoc3(s,speclist[1]), - follow$0=follow$1, - action=_p8_} - catch(_qd_) - {_qd_ = caml_wrap_exception(_qd_); - if(_qd_ !== Not_found)throw _qd_; - try - {var - match=split$1(s), - arg=match[2], - keyword=match[1], - follow=[0,arg], - _p7_=assoc3(keyword,speclist[1])} - catch(_qe_) - {_qe_ = caml_wrap_exception(_qe_); - if(_qe_ === Not_found)throw [0,Stop,[0,s]]; - throw _qe_; - var _p9_=_qe_} - var follow$0=follow,action=_p7_,_p__=_qd_} - var - no_arg$0= - function(s,follow) - {function no_arg(param) - {if(follow) - {var arg=follow[1];throw [0,Stop,[1,s,arg,cst_no_argument]]} - return 0} - return no_arg}, - no_arg=no_arg$0(s,follow$0), - get_arg$0= - function(s,follow) - {function get_arg(param) - {if(follow){var arg=follow[1];return arg} - if((current[1] + 1 | 0) < argv[1].length - 1) - {var _qc_=current[1] + 1 | 0; - return caml_check_bound(argv[1],_qc_)[1 + _qc_]} - throw [0,Stop,[2,s]]} - return get_arg}, - get_arg=get_arg$0(s,follow$0), - consume_arg$0= - function(follow) - {function consume_arg(param) - {return follow?0:(current[1]++,0)} - return consume_arg}, - consume_arg=consume_arg$0(follow$0), - treat_action$0= - function(s,no_arg,get_arg,consume_arg) - {function treat_action(param) - {switch(param[0]) - {case 0:var f=param[1];no_arg(0);return caml_call1(f,0); - case 1: - var - f$0=param[1], - arg=get_arg(0), - match=bool_of_string_opt$0(arg); - if(match) - {var s$0=match[1];caml_call1(f$0,s$0);return consume_arg(0)} - throw [0,Stop,[1,s,arg,cst_a_boolean]]; - case 2:var r=param[1];no_arg(0);r[1] = 1;return 0; - case 3:var r$0=param[1];no_arg(0);r$0[1] = 0;return 0; - case 4: - var f$1=param[1],arg$0=get_arg(0); - caml_call1(f$1,arg$0); - return consume_arg(0); - case 5: - var r$1=param[1];r$1[1] = get_arg(0);return consume_arg(0); - case 6: - var - f$2=param[1], - arg$1=get_arg(0), - match$0=int_of_string_opt$0(arg$1); - if(match$0) - {var x=match$0[1];caml_call1(f$2,x);return consume_arg(0)} - throw [0,Stop,[1,s,arg$1,cst_an_integer]]; - case 7: - var - r$2=param[1], - arg$2=get_arg(0), - match$1=int_of_string_opt$0(arg$2); - if(match$1) - {var x$0=match$1[1];r$2[1] = x$0;return consume_arg(0)} - throw [0,Stop,[1,s,arg$2,cst_an_integer$0]]; - case 8: - var - f$3=param[1], - arg$3=get_arg(0), - match$2=float_of_string_opt(arg$3); - if(match$2) - {var x$1=match$2[1]; - caml_call1(f$3,x$1); - return consume_arg(0)} - throw [0,Stop,[1,s,arg$3,cst_a_float]]; - case 9: - var - r$3=param[1], - arg$4=get_arg(0), - match$3=float_of_string_opt(arg$4); - if(match$3) - {var x$2=match$3[1];r$3[1] = x$2;return consume_arg(0)} - throw [0,Stop,[1,s,arg$4,cst_a_float$0]]; - case 10: - var specs=param[1]; - no_arg(0); - return iter$2(treat_action,specs); - case 11: - var f$4=param[2],symb=param[1],arg$5=get_arg(0); - if(mem(arg$5,symb)) - {caml_call1(f$4,arg$5);return consume_arg(0)} - throw [0, - Stop, - [1, - s, - arg$5, - cat(cst_one_of,make_symlist(cst$57,cst$56,cst$55,symb))]]; - case 12: - var f$5=param[1]; - no_arg(0); - for(;;) - {if(current[1] < (argv[1].length - 1 - 1 | 0)) - {var _p$_=current[1] + 1 | 0; - caml_call1(f$5,caml_check_bound(argv[1],_p$_)[1 + _p$_]); - consume_arg(0); - continue} - return 0} - case 13: - var f$6=param[1]; - no_arg(0); - var acc=[0,0]; - for(;;) - {if(current[1] < (argv[1].length - 1 - 1 | 0)) - {var _qb_=current[1] + 1 | 0,_qa_=acc[1]; - acc[1] = [0,caml_check_bound(argv[1],_qb_)[1 + _qb_],_qa_]; - consume_arg(0); - continue} - return caml_call1(f$6,rev(acc[1]))} - default: - var f$7=param[1]; - if(1 - allow_expand) - throw [0,Invalid_argument,cst_Arg_Expand_is_is_only_allo]; - var arg$6=get_arg(0),newarg=caml_call1(f$7,arg$6); - consume_arg(0); - var - before=sub$1(argv[1],0,current[1] + 1 | 0), - after= - sub$1 - (argv[1], - current[1] + 1 | 0, - (argv[1].length - 1 - current[1] | 0) - 1 | 0); - argv[1] - = - caml_array_concat([0,before,[0,newarg,[0,after,0]]]); - return 0}} - return treat_action}, - treat_action=treat_action$0(s,no_arg,get_arg,consume_arg); - treat_action(action); - switch$0 = 1} - if(! switch$0)caml_call1(anonfun,s)} - catch(exn$0) - {exn$0 = caml_wrap_exception(exn$0); - if(exn$0[1] === Bad){var m=exn$0[2];throw convert_error([3,m])} - if(exn$0[1] === Stop){var e=exn$0[2];throw convert_error(e)} - throw exn$0; - var exn=exn$0} - current[1]++; - continue} - return 0}} - function parse_and_expand_argv_dynamic - (current,argv,speclist,anonfun,errmsg) - {return parse_and_expand_argv_dynamic_ - (1,current,argv,speclist,anonfun,errmsg)} - function parse_argv_dynamic(opt,argv,speclist,anonfun,errmsg) - {if(opt)var sth=opt[1],current$0=sth;else var current$0=current; - return parse_and_expand_argv_dynamic_ - (0,current$0,[0,argv],speclist,anonfun,errmsg)} - function parse_argv(opt,argv,speclist,anonfun,errmsg) - {if(opt)var sth=opt[1],current$0=sth;else var current$0=current; - return parse_argv_dynamic - ([0,current$0],argv,[0,speclist],anonfun,errmsg)} - function parse(l,f,msg) - {try - {var _p5_=parse_argv(0,caml_sys_argv(0),l,f,msg);return _p5_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] === Bad) - {var msg$0=exn[2];caml_call1(eprintf(_be_),msg$0);return exit(2)} - if(exn[1] === Help) - {var msg$1=exn[2];caml_call1(printf(_bf_),msg$1);return exit(0)} - throw exn}} - function parse_dynamic(l,f,msg) - {try - {var _p4_=parse_argv_dynamic(0,caml_sys_argv(0),l,f,msg);return _p4_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] === Bad) - {var msg$0=exn[2];caml_call1(eprintf(_bg_),msg$0);return exit(2)} - if(exn[1] === Help) - {var msg$1=exn[2];caml_call1(printf(_bh_),msg$1);return exit(0)} - throw exn}} - function parse_expand(l,f,msg) - {try - {var - argv=[0,caml_sys_argv(0)], - spec=[0,l], - current$0=[0,current[1]], - _p3_=parse_and_expand_argv_dynamic(current$0,argv,spec,f,msg); - return _p3_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] === Bad) - {var msg$0=exn[2];caml_call1(eprintf(_bi_),msg$0);return exit(2)} - if(exn[1] === Help) - {var msg$1=exn[2];caml_call1(printf(_bj_),msg$1);return exit(0)} - throw exn}} - function second_word(s) - {var len=caml_ml_string_length(s); - function loop(n) - {var n$0=n; - for(;;) - {if(len <= n$0)return len; - if(32 === caml_string_get(s,n$0)) - {var n$1=n$0 + 1 | 0,n$0=n$1;continue} - return n$0}} - try - {var n$0=index$0(s,9)} - catch(_p1_) - {_p1_ = caml_wrap_exception(_p1_); - if(_p1_ === Not_found) - {try - {var n=index$0(s,32)} - catch(_p2_) - {_p2_ = caml_wrap_exception(_p2_); - if(_p2_ === Not_found)return len; - throw _p2_} - return loop(n + 1 | 0)} - throw _p1_} - return loop(n$0 + 1 | 0)} - function max_arg_len(cur,param) - {var doc=param[3],spec=param[2],kwd=param[1]; - return 11 === spec[0] - ?max$1(cur,caml_ml_string_length(kwd)) - :max$1(cur,caml_ml_string_length(kwd) + second_word(doc) | 0)} - function replace_leading_tab(s) - {var seen=[0,0]; - return map$6 - (function(c) - {if(9 === c && ! seen[1]){seen[1] = 1;return 32}return c}, - s)} - function align(opt,speclist) - {if(opt)var sth=opt[1],limit=sth;else var limit=max_int; - var - completed=add_help(speclist), - len=fold_left$0(max_arg_len,0,completed), - len$0=min$1(len,limit); - return map$4 - (function(ksd) - {var _pZ_=ksd[1],_p0_=ksd[2]; - if(caml_string_notequal(ksd[3],cst$58)) - {if(11 === _p0_[0]) - {var - msg$0=ksd[3], - cutcol$0=second_word(msg$0), - spaces$0=make$1(max$1(0,len$0 - cutcol$0 | 0) + 3 | 0,32); - return [0, - _pZ_, - _p0_, - cat(cst$59,cat(spaces$0,replace_leading_tab(msg$0)))]} - var - msg=ksd[3], - spec=ksd[2], - cutcol=second_word(msg), - kwd_len=caml_ml_string_length(_pZ_), - diff=(len$0 - kwd_len | 0) - cutcol | 0; - if(0 < diff) - {var - spaces=make$1(diff,32), - prefix=sub$0(replace_leading_tab(msg),0,cutcol), - suffix= - sub$0(msg,cutcol,caml_ml_string_length(msg) - cutcol | 0); - return [0,_pZ_,spec,cat(prefix,cat(spaces,suffix))]} - return [0,_pZ_,spec,replace_leading_tab(msg)]} - return ksd}, - completed)} - function read_aux(trim,sep,file) - {var ic=open_bin$0(file),buf=create$2(200),words=[0,0]; - function stash(param) - {var s=contents(buf); - if(trim) - {var len=caml_ml_string_length(s),switch$0=0; - if(0 < len && 13 === caml_string_get(s,len - 1 | 0)) - {var _pY_=sub$0(s,0,len - 1 | 0);switch$0 = 1} - if(! switch$0)var _pY_=s; - var word=_pY_} - else - var word=s; - words[1] = [0,word,words[1]]; - return clear$1(buf)} - try - {for(;;) - {var c=caml_ml_input_char(ic); - if(c === sep)stash(0);else add_char(buf,c); - continue}} - catch(_pX_) - {_pX_ = caml_wrap_exception(_pX_); - if(_pX_ === End_of_file) - {if(0 < buf[2])stash(0); - caml_ml_close_channel(ic); - return of_list(rev(words[1]))} - throw _pX_}} - var _bk_=10,_bl_=1; - function read_arg(_pW_){return read_aux(_bl_,_bk_,_pW_)} - var _bm_=0,_bn_=0; - function read_arg0(_pV_){return read_aux(_bn_,_bm_,_pV_)} - function write_aux(sep,file,args) - {var oc=open_bin(file); - iter$5(function(s){return caml_call2(fprintf(oc,_bo_),s,sep)},args); - return close(oc)} - var _bp_=10; - function write_arg(_pT_,_pU_){return write_aux(_bp_,_pT_,_pU_)} - var _bq_=0; - function write_arg0(_pR_,_pS_){return write_aux(_bq_,_pR_,_pS_)} - var - Stdlib_Arg= - [0, - parse, - parse_dynamic, - parse_argv, - parse_argv_dynamic, - parse_and_expand_argv_dynamic, - parse_expand, - Help, - Bad, - usage, - usage_string, - align, - current, - read_arg, - read_arg0, - write_arg, - write_arg0]; - caml_register_global(809,Stdlib_Arg,"Stdlib__Arg"); - var - Stdlib_Atomic= - [0,make,get,set,exchange,compare_and_set,fetch_and_add,incr,decr]; - caml_register_global(810,Stdlib_Atomic,"Stdlib__Atomic"); - var printers=[0,0]; - function field(x,i) - {var f=x[1 + i]; - return is_block(f) - ?caml_obj_tag(f) === 252 - ?caml_call1(sprintf(_br_),f) - :caml_obj_tag(f) === 253?to_string(f):cst$60 - :caml_call1(sprintf(_bs_),f)} - function other_fields(x,i) - {if(x.length - 1 <= i)return cst$61; - var _pP_=other_fields(x,i + 1 | 0),_pQ_=field(x,i); - return caml_call2(sprintf(_bt_),_pQ_,_pP_)} - function use_printers(x) - {function conv(param) - {var param$0=param; - for(;;) - {if(param$0) - {var tl=param$0[2],hd=param$0[1]; - try - {var switch$0=0,val=caml_call1(hd,x);switch$0 = 1} - catch(_pO_){} - if(switch$0 && val){var s=val[1];return [0,s]} - var param$0=tl; - continue} - return 0}} - return conv(printers[1])} - function to_string_default(x) - {if(x === Out_of_memory)return cst_Out_of_memory; - if(x === Stack_overflow)return cst_Stack_overflow; - if(x[1] === Match_failure) - {var match$0=x[2],char$0=match$0[3],line=match$0[2],file=match$0[1]; - return caml_call5 - (sprintf(locfmt), - file, - line, - char$0, - char$0 + 5 | 0, - cst_Pattern_matching_failed)} - if(x[1] === Assert_failure) - {var - match$1=x[2], - char$1=match$1[3], - line$0=match$1[2], - file$0=match$1[1]; - return caml_call5 - (sprintf(locfmt), - file$0, - line$0, - char$1, - char$1 + 6 | 0, - cst_Assertion_failed)} - if(x[1] === Undefined_recursive_module) - {var - match$2=x[2], - char$2=match$2[3], - line$1=match$2[2], - file$1=match$2[1]; - return caml_call5 - (sprintf(locfmt), - file$1, - line$1, - char$2, - char$2 + 6 | 0, - cst_Undefined_recursive_module)} - if(0 === caml_obj_tag(x)) - {var constructor=x[1][1],match=x.length - 1; - if(2 < match >>> 0) - var - _pK_=other_fields(x,2), - _pL_=field(x,1), - _pN_=caml_call2(sprintf(_bu_),_pL_,_pK_); - else - switch(match) - {case 0:var _pN_=cst$62;break; - case 1:var _pN_=cst$63;break; - default:var _pM_=field(x,1),_pN_=caml_call1(sprintf(_bv_),_pM_)} - return cat(constructor,_pN_)} - return x[1]} - function to_string$6(e) - {var match=use_printers(e); - if(match){var s=match[1];return s} - return to_string_default(e)} - function print(fct,arg) - {try - {var _pJ_=caml_call1(fct,arg);return _pJ_} - catch(x) - {x = caml_wrap_exception(x); - var _pI_=to_string$6(x); - caml_call1(eprintf(_bw_),_pI_); - caml_ml_flush(stderr); - throw x}} - function catch$0(fct,arg) - {try - {var _pH_=caml_call1(fct,arg);return _pH_} - catch(x) - {x = caml_wrap_exception(x); - caml_ml_flush(stdout); - var _pG_=to_string$6(x); - caml_call1(eprintf(_bx_),_pG_); - return exit(2)}} - function raw_backtrace_entries(bt){return bt} - function convert_raw_backtrace(bt) - {return [0,runtime.caml_convert_raw_backtrace(bt)]} - function format_backtrace_slot(pos,slot) - {function info(is_raise) - {return is_raise - ?0 === pos?cst_Raised_at:cst_Re_raised_at - :0 === pos?cst_Raised_by_primitive_operat:cst_Called_from} - if(0 === slot[0]) - {var - _py_=slot[5], - _pz_=slot[4], - _pA_=slot[3], - _pB_=slot[6]?cst_inlined:cst$64, - _pC_=slot[2], - _pD_=slot[7], - _pE_=info(slot[1]); - return [0, - caml_call7(sprintf(_by_),_pE_,_pD_,_pC_,_pB_,_pA_,_pz_,_py_)]} - if(slot[1])return 0; - var _pF_=info(0); - return [0,caml_call1(sprintf(_bz_),_pF_)]} - function print_raw_backtrace(outchan,raw_backtrace) - {var backtrace=convert_raw_backtrace(raw_backtrace); - if(backtrace) - {var a=backtrace[1],_pw_=a.length - 1 - 1 | 0,_pv_=0; - if(! (_pw_ < 0)) - {var i=_pv_; - for(;;) - {var match=format_backtrace_slot(i,caml_check_bound(a,i)[1 + i]); - if(match){var str=match[1];caml_call1(fprintf(outchan,_bA_),str)} - var _px_=i + 1 | 0; - if(_pw_ !== i){var i=_px_;continue} - break}} - return 0} - return fprintf(outchan,_bB_)} - function print_backtrace(outchan) - {return print_raw_backtrace(outchan,caml_get_exception_raw_backtra(0))} - function raw_backtrace_to_string(raw_backtrace) - {var backtrace=convert_raw_backtrace(raw_backtrace); - if(backtrace) - {var a=backtrace[1],b=create$2(1024),_pt_=a.length - 1 - 1 | 0,_ps_=0; - if(! (_pt_ < 0)) - {var i=_ps_; - for(;;) - {var match=format_backtrace_slot(i,caml_check_bound(a,i)[1 + i]); - if(match){var str=match[1];caml_call1(bprintf(b,_bC_),str)} - var _pu_=i + 1 | 0; - if(_pt_ !== i){var i=_pu_;continue} - break}} - return contents(b)} - return cst_Program_not_linked_with_g_} - function backtrace_slot_is_raise(param) - {return 0 === param[0]?param[1]:param[1]} - function backtrace_slot_is_inline(param){return 0 === param[0]?param[6]:0} - function backtrace_slot_location(param) - {return 0 === param[0]?[0,[0,param[2],param[3],param[4],param[5]]]:0} - function backtrace_slot_defname(param) - {if(0 === param[0] && caml_string_notequal(param[7],cst$65)) - return [0,param[7]]; - return 0} - function backtrace_slots(raw_backtrace) - {var match=convert_raw_backtrace(raw_backtrace); - if(match) - {var backtrace=match[1],i$1=backtrace.length - 1 - 1 | 0,i=i$1; - for(;;) - {if(-1 === i) - var _pr_=0; - else - {var - param=caml_check_bound(backtrace,i)[1 + i], - _pq_=0 === param[0]?1:0; - if(! _pq_){var i$0=i - 1 | 0,i=i$0;continue} - var _pr_=_pq_} - return _pr_?[0,backtrace]:0}} - return 0} - function backtrace_slots_of_raw_entry(entry) - {return backtrace_slots([0,entry])} - function raw_backtrace_length(bt){return bt.length - 1} - function get_backtrace(param) - {return raw_backtrace_to_string(caml_get_exception_raw_backtra(0))} - function register_printer(fn) - {for(;;) - {var - old_printers=printers[1], - new_printers=[0,fn,old_printers], - success=compare_and_set(printers,old_printers,new_printers), - _pp_=1 - success; - if(_pp_)continue; - return _pp_}} - function exn_slot(x){return 0 === caml_obj_tag(x)?x[1]:x} - function exn_slot_id(x){var slot=exn_slot(x);return slot[2]} - function exn_slot_name(x){var slot=exn_slot(x);return slot[1]} - var errors=_bD_.slice(); - function default_uncaught_exception_han(exn,raw_backtrace) - {var _pn_=to_string$6(exn); - caml_call1(eprintf(_bE_),_pn_); - print_raw_backtrace(stderr,raw_backtrace); - var status=runtime.caml_ml_debug_info_status(0); - if(status < 0) - {var _po_=abs(status); - prerr_endline(caml_check_bound(errors,_po_)[1 + _po_])} - return caml_ml_flush(stderr)} - var uncaught_exception_handler=[0,default_uncaught_exception_han]; - function set_uncaught_exception_handler(fn) - {uncaught_exception_handler[1] = fn;return 0} - var empty_backtrace=[0]; - function handle_uncaught_exception(exn,debugger_in_use) - {try - {try - {var - raw_backtrace= - debugger_in_use?empty_backtrace:caml_get_exception_raw_backtra(0); - try {do_at_exit(0)}catch(_pm_){} - try - {var - _pi_=caml_call2(uncaught_exception_handler[1],exn,raw_backtrace), - _ph_=_pi_} - catch(exn$0) - {exn$0 = caml_wrap_exception(exn$0); - var - raw_backtrace$0=caml_get_exception_raw_backtra(0), - _pf_=to_string$6(exn); - caml_call1(eprintf(_bF_),_pf_); - print_raw_backtrace(stderr,raw_backtrace); - var _pg_=to_string$6(exn$0); - caml_call1(eprintf(_bG_),_pg_); - print_raw_backtrace(stderr,raw_backtrace$0); - var _ph_=caml_ml_flush(stderr)} - var _pj_=_ph_} - catch(_pl_) - {_pl_ = caml_wrap_exception(_pl_); - if(_pl_ !== Out_of_memory)throw _pl_; - var _pj_=prerr_endline(cst_Fatal_error_out_of_memory_)} - return _pj_} - catch(_pk_){return 0}} - caml_register_named_value - (caml_string_of_jsbytes("Printexc.handle_uncaught_exception"), - handle_uncaught_exception); - function _bH_(_pe_){return runtime.caml_raw_backtrace_next_slot(_pe_)} - function _bI_(_pd_){return runtime.caml_convert_raw_backtrace_slot(_pd_)} - function _bJ_(_pc_,_pb_) - {return runtime.caml_raw_backtrace_slot(_pc_,_pb_)} - var - _bK_= - [0, - backtrace_slot_is_raise, - backtrace_slot_is_inline, - backtrace_slot_location, - backtrace_slot_defname, - format_backtrace_slot]; - function _bL_(_pa_){return caml_get_exception_raw_backtra(_pa_)} - function _bM_(_o$_){return runtime.caml_backtrace_status(_o$_)} - var - Stdlib_Printexc= - [0, - to_string$6, - to_string_default, - print, - catch$0, - print_backtrace, - get_backtrace, - function(_o__){return runtime.caml_record_backtrace(_o__)}, - _bM_, - register_printer, - use_printers, - raw_backtrace_entries, - _bL_, - print_raw_backtrace, - raw_backtrace_to_string, - default_uncaught_exception_han, - set_uncaught_exception_handler, - backtrace_slots, - backtrace_slots_of_raw_entry, - _bK_, - raw_backtrace_length, - _bJ_, - _bI_, - _bH_, - exn_slot_id, - exn_slot_name]; - caml_register_global(811,Stdlib_Printexc,"Stdlib__Printexc"); - function const$0(c,param){return c} - function flip(f,x,y){return caml_call2(f,y,x)} - function negate(p,v){return 1 - caml_call1(p,v)} - var - Finally_raised= - [248,cst_Stdlib_Fun_Finally_raised,caml_fresh_oo_id(0)]; - register_printer - (function(param) - {if(param[1] === Finally_raised) - {var exn=param[2]; - return [0,cat(cst_Fun_Finally_raised,to_string$6(exn))]} - return 0}); - function protect(finally$0,work) - {function finally_no_exn(param) - {try - {var _o9_=caml_call1(finally$0,0);return _o9_} - catch(e) - {e = caml_wrap_exception(e); - var bt=caml_get_exception_raw_backtra(0),exn=[0,Finally_raised,e]; - caml_restore_raw_backtrace(exn,bt); - throw exn}} - try - {var result=caml_call1(work,0)} - catch(work_exn) - {work_exn = caml_wrap_exception(work_exn); - var work_bt=caml_get_exception_raw_backtra(0); - finally_no_exn(0); - caml_restore_raw_backtrace(work_exn,work_bt); - throw work_exn} - finally_no_exn(0); - return result} - var Stdlib_Fun=[0,const$0,flip,negate,protect,Finally_raised]; - caml_register_global(812,Stdlib_Fun,"Stdlib__Fun"); - function print_stat(c) - {var st=runtime.caml_gc_stat(0),_oR_=st[4]; - caml_call1(fprintf(c,_bN_),_oR_); - var _oS_=st[5]; - caml_call1(fprintf(c,_bO_),_oS_); - var _oT_=st[14]; - caml_call1(fprintf(c,_bP_),_oT_); - var _oU_=st[17]; - caml_call1(fprintf(c,_bQ_),_oU_); - fprintf(c,_bR_); - var - _oV_=st[1], - l1=caml_ml_string_length(caml_call1(sprintf(_bS_),_oV_)), - _oW_=st[1]; - caml_call2(fprintf(c,_bT_),l1,_oW_); - var _oX_=st[2]; - caml_call2(fprintf(c,_bU_),l1,_oX_); - var _oY_=st[3]; - caml_call2(fprintf(c,_bV_),l1,_oY_); - fprintf(c,_bW_); - var - _oZ_=st[15], - l2=caml_ml_string_length(caml_call1(sprintf(_bX_),_oZ_)), - _o0_=st[15]; - caml_call2(fprintf(c,_bY_),l2,_o0_); - var _o1_=st[6]; - caml_call2(fprintf(c,_bZ_),l2,_o1_); - var _o2_=st[8]; - caml_call2(fprintf(c,_b0_),l2,_o2_); - var _o3_=st[10]; - caml_call2(fprintf(c,_b1_),l2,_o3_); - var _o4_=st[12]; - caml_call2(fprintf(c,_b2_),l2,_o4_); - var _o5_=st[13]; - caml_call2(fprintf(c,_b3_),l2,_o5_); - fprintf(c,_b4_); - var _o6_=st[9]; - caml_call1(fprintf(c,_b5_),_o6_); - var _o7_=st[11]; - caml_call1(fprintf(c,_b6_),_o7_); - var _o8_=st[7]; - return caml_call1(fprintf(c,_b7_),_o8_)} - function allocated_bytes(param) - {var - match=runtime.caml_gc_counters(0), - ma=match[3], - pro=match[2], - mi=match[1]; - return (mi + ma - pro) * 4} - function create_alarm(f){return [0,1]} - function delete_alarm(a){a[1] = 0;return 0} - function _b8_(param){return 0} - function _b9_(param){return 0} - function _b__(param){return 0} - function _b$_(param){return 0} - var null_tracker=[0,function(param){return 0},_b$_,_b__,_b9_,_b8_]; - function start(sampling_rate,opt,tracker) - {if(opt) - var sth=opt[1],callstack_size=sth; - else - var callstack_size=max_int; - return runtime.caml_memprof_start(sampling_rate,callstack_size,tracker)} - var _ca_=[0,null_tracker,start,runtime.caml_memprof_stop]; - function _cb_(_oQ_){return runtime.caml_final_release(_oQ_)} - var - _cc_=runtime.caml_final_register_called_without_value, - Stdlib_Gc= - [0, - print_stat, - allocated_bytes, - function(_oP_,_oO_){return runtime.caml_final_register(_oP_,_oO_)}, - _cc_, - _cb_, - create_alarm, - delete_alarm, - _ca_]; - caml_register_global(813,Stdlib_Gc,"Stdlib__Gc"); - function string(str) - {return caml_md5_string(str,0,caml_ml_string_length(str))} - function bytes(b){return string(caml_string_of_bytes(b))} - function substring(str,ofs,len) - {if - (0 - <= - ofs - && - 0 - <= - len - && - ! - ((caml_ml_string_length(str) - len | 0) < ofs)) - return caml_md5_string(str,ofs,len); - return invalid_arg(cst_Digest_substring)} - function subbytes(b,ofs,len) - {return substring(caml_string_of_bytes(b),ofs,len)} - function file(filename) - {var ic=open_bin$0(filename); - try - {var d=runtime.caml_md5_chan(ic,-1)} - catch(e){e = caml_wrap_exception(e);caml_ml_close_channel(ic);throw e} - caml_ml_close_channel(ic); - return d} - function output$0(chan,digest){return output_string(chan,digest)} - function input$0(chan){return really_input_string(chan,16)} - function char_hex(n){var _oN_=10 <= n?87:48;return n + _oN_ | 0} - function to_hex(d) - {if(16 !== caml_ml_string_length(d))invalid_arg(cst_Digest_to_hex); - var result=caml_create_bytes(32),i=0; - for(;;) - {var x=caml_string_get(d,i); - caml_bytes_unsafe_set(result,i * 2 | 0,char_hex(x >>> 4 | 0)); - caml_bytes_unsafe_set(result,(i * 2 | 0) + 1 | 0,char_hex(x & 15)); - var _oM_=i + 1 | 0; - if(15 !== i){var i=_oM_;continue} - return caml_string_of_bytes(result)}} - function from_hex(s) - {if(32 !== caml_ml_string_length(s))invalid_arg(cst_Digest_from_hex); - function digit(c) - {if(65 <= c) - {if(97 <= c) - {if(! (103 <= c))return (c - 97 | 0) + 10 | 0} - else - if(! (71 <= c))return (c - 65 | 0) + 10 | 0} - else - if(! (9 < c - 48 >>> 0))return c - 48 | 0; - throw [0,Invalid_argument,cst_Digest_from_hex$0]} - var result=caml_create_bytes(16),i=0; - for(;;) - {var i$0=2 * i | 0,_oK_=digit(caml_string_get(s,i$0 + 1 | 0)); - caml_bytes_set - (result,i,chr((digit(caml_string_get(s,i$0)) << 4) + _oK_ | 0)); - var _oL_=i + 1 | 0; - if(15 !== i){var i=_oL_;continue} - return caml_string_of_bytes(result)}} - var - Stdlib_Digest= - [0, - compare$9, - equal$9, - string, - bytes, - substring, - subbytes, - file, - output$0, - input$0, - to_hex, - from_hex]; - caml_register_global(814,Stdlib_Digest,"Stdlib__Digest"); - function new_state(param){return [0,caml_make_vect(55,0),0]} - function assign(st1,st2) - {blit$1(st2[1],0,st1[1],0,55);st1[2] = st2[2];return 0} - function full_init(s,seed) - {var seed$0=0 === seed.length - 1?[0,0]:seed,l=seed$0.length - 1,i$0=0; - for(;;) - {caml_check_bound(s[1],i$0)[1 + i$0] = i$0; - var _oJ_=i$0 + 1 | 0; - if(54 !== i$0){var i$0=_oJ_;continue} - var accu=[0,cst_x$1],_oF_=54 + max$1(55,l) | 0,_oE_=0; - if(! (_oF_ < 0)) - {var i=_oE_; - for(;;) - {var - j=i % 55 | 0, - k=caml_mod(i,l), - x=caml_check_bound(seed$0,k)[1 + k]; - accu[1] = string(cat(accu[1],caml_string_of_jsbytes("" + x))); - var - _oG_=accu[1], - _oA_=caml_string_get(_oG_,3) << 24, - _oB_=caml_string_get(_oG_,2) << 16, - _oC_=caml_string_get(_oG_,1) << 8, - _oD_=((caml_string_get(_oG_,0) + _oC_ | 0) + _oB_ | 0) + _oA_ | 0, - _oH_=(caml_check_bound(s[1],j)[1 + j] ^ _oD_) & 1073741823; - caml_check_bound(s[1],j)[1 + j] = _oH_; - var _oI_=i + 1 | 0; - if(_oF_ !== i){var i=_oI_;continue} - break}} - s[2] = 0; - return 0}} - function make$3(seed) - {var result=new_state(0);full_init(result,seed);return result} - function make_self_init(param){return make$3(caml_sys_random_seed(0))} - function copy$5(s){var result=new_state(0);assign(result,s);return result} - function bits(s) - {s[2] = (s[2] + 1 | 0) % 55 | 0; - var - _ox_=s[2], - curval=caml_check_bound(s[1],_ox_)[1 + _ox_], - _oy_=(s[2] + 24 | 0) % 55 | 0, - newval= - caml_check_bound(s[1],_oy_)[1 + _oy_] - + - (curval ^ (curval >>> 25 | 0) & 31) - | - 0, - newval30=newval & 1073741823, - _oz_=s[2]; - caml_check_bound(s[1],_oz_)[1 + _oz_] = newval30; - return newval30} - function intaux(s,n) - {for(;;) - {var r=bits(s),v=caml_mod(r,n); - if(((1073741823 - n | 0) + 1 | 0) < (r - v | 0))continue; - return v}} - function int$0(s,bound) - {if(! (1073741823 < bound) && 0 < bound)return intaux(s,bound); - return invalid_arg(cst_Random_int)} - function full_int(s,bound) - {if(0 < bound) - {if(1073741823 < bound) - for(;;) - {var b1=bits(s),b2=bits(s); - if(bound <= 2147483647) - var bpos=(b2 & 1073725440) << 1 | b1 >>> 15 | 0,r=bpos; - else - var - b3=bits(s), - bpos$0= - ((b3 & 1073741312) << 12 | b2 >>> 9 | 0) - << - 20 - | - b1 - >>> - 10 - | - 0, - r=bpos$0; - var v=caml_mod(r,bound); - if(((2147483647 - bound | 0) + 1 | 0) < (r - v | 0))continue; - return v} - return intaux(s,bound)} - return invalid_arg(cst_Random_full_int)} - function int32(s,bound) - {if(caml_lessequal(bound,0))return invalid_arg(cst_Random_int32); - for(;;) - {var b1=bits(s),b2=(bits(s) & 1) << 30,r=b1 | b2,v=caml_mod(r,bound); - if(caml_greaterthan(r - v | 0,(2147483647 - bound | 0) + 1 | 0)) - continue; - return v}} - function int64(s,bound) - {if(caml_lessequal(bound,_ce_))return invalid_arg(cst_Random_int64); - for(;;) - {var - b1=caml_int64_of_int32(bits(s)), - b2=caml_int64_shift_left(caml_int64_of_int32(bits(s)),30), - b3=caml_int64_shift_left(caml_int64_of_int32(bits(s) & 7),60), - r=caml_int64_or(b1,caml_int64_or(b2,b3)), - v=runtime.caml_int64_mod(r,bound); - if - (caml_greaterthan - (caml_int64_sub(r,v), - caml_int64_add(caml_int64_sub(max_int$2,bound),_cd_))) - continue; - return v}} - function nativeint(s,bound){return int32(s,bound)} - function float$0(s,bound) - {var r1=bits(s),r2=bits(s); - return (r1 / 1073741824. + r2) / 1073741824. * bound} - function bool(s){return 0 === (bits(s) & 1)?1:0} - function bits32(s) - {var b1=bits(s) >>> 14 | 0,b2=bits(s) >>> 14 | 0;return b1 | b2 << 16} - function bits64(s) - {var - b1=caml_int64_shift_right_unsigne(caml_int64_of_int32(bits(s)),9), - b2=caml_int64_shift_right_unsigne(caml_int64_of_int32(bits(s)),9), - b3=caml_int64_shift_right_unsigne(caml_int64_of_int32(bits(s)),8); - return caml_int64_or - (b1, - caml_int64_or - (caml_int64_shift_left(b2,21),caml_int64_shift_left(b3,42)))} - function nativebits(s){return bits32(s)} - var default$0=[0,_cf_.slice(),0]; - function bits$0(param){return bits(default$0)} - function int$1(bound){return int$0(default$0,bound)} - function full_int$0(bound){return full_int(default$0,bound)} - function int32$0(bound){return int32(default$0,bound)} - function nativeint$0(bound){return nativeint(default$0,bound)} - function int64$0(bound){return int64(default$0,bound)} - function float$1(scale){return float$0(default$0,scale)} - function bool$0(param){return bool(default$0)} - function bits32$0(param){return bits32(default$0)} - function bits64$0(param){return bits64(default$0)} - function nativebits$0(param){return nativebits(default$0)} - function full_init$0(seed){return full_init(default$0,seed)} - function init$5(seed){return full_init(default$0,[0,seed])} - function self_init(param){return full_init$0(caml_sys_random_seed(0))} - function get_state(param){return copy$5(default$0)} - function set_state(s){return assign(default$0,s)} - var - _cg_= - [0, - make$3, - make_self_init, - copy$5, - bits, - int$0, - full_int, - int32, - nativeint, - int64, - float$0, - bool, - bits32, - bits64, - nativebits], - Stdlib_Random= - [0, - init$5, full_init$0, self_init, bits$0, @@ -23510,2078 +25357,2139 @@ bits32$0, bits64$0, nativebits$0, - _cg_, + [0, + make, + make_self_init, + copy, + bits, + int$0, + full_int, + int32, + nativeint, + int64, + float$0, + bool, + bits32, + bits64, + nativebits], get_state, set_state]; - caml_register_global(815,Stdlib_Random,"Stdlib__Random"); - function ongoing_traversal(h) - {var _ov_=h.length - 1 < 4?1:0,_ow_=_ov_ || (h[4] < 0?1:0);return _ow_} - function flip_ongoing_traversal(h){h[4] = - h[4] | 0;return 0} - try - {var _c3_=caml_sys_getenv(cst_OCAMLRUNPARAM),params=_c3_} - catch(_ot_) - {_ot_ = caml_wrap_exception(_ot_); - if(_ot_ !== Not_found)throw _ot_; - try - {var _c2_=caml_sys_getenv(cst_CAMLRUNPARAM),_ch_=_c2_} - catch(_ou_) - {_ou_ = caml_wrap_exception(_ou_); - if(_ou_ !== Not_found)throw _ou_; - var _ch_=cst$66} - var params=_ch_} + runtime.caml_register_global(18, Stdlib_Random, "Stdlib__Random"); + return; + } + (globalThis)); + +//# 17812 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_check_bound = runtime.caml_check_bound, + caml_compare = runtime.caml_compare, + caml_hash = runtime.caml_hash, + caml_make_vect = runtime.caml_make_vect, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_obj_tag = runtime.caml_obj_tag, + caml_sys_getenv = runtime.caml_sys_getenv, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + function caml_call4(f, a0, a1, a2, a3){ + return (f.l >= 0 ? f.l : f.l = f.length) == 4 + ? f(a0, a1, a2, a3) + : runtime.caml_call_gen(f, [a0, a1, a2, a3]); + } + var + global_data = runtime.caml_get_global_data(), + cst = "", + Stdlib_Sys = global_data.Stdlib__Sys, + Stdlib = global_data.Stdlib, + CamlinternalLazy = global_data.CamlinternalLazy, + Stdlib_Random = global_data.Stdlib__Random, + Stdlib_Seq = global_data.Stdlib__Seq, + Stdlib_Int = global_data.Stdlib__Int, + Stdlib_Array = global_data.Stdlib__Array; + global_data.Assert_failure; + var + Stdlib_String = global_data.Stdlib__String, + cst_Hashtbl_unsupported_hash_t = "Hashtbl: unsupported hash table format", + _d_ = [0, 0]; + function ongoing_traversal(h){ + var _aE_ = h.length - 1 < 4 ? 1 : 0, _aF_ = _aE_ || (h[4] < 0 ? 1 : 0); + return _aF_; + } + function flip_ongoing_traversal(h){h[4] = - h[4] | 0; return 0;} + try{var _f_ = caml_sys_getenv("OCAMLRUNPARAM"), params = _f_;} + catch(_aC_){ + var _a_ = caml_wrap_exception(_aC_); + if(_a_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_a_, 0); + try{var _e_ = caml_sys_getenv("CAMLRUNPARAM"), _c_ = _e_;} + catch(_aD_){ + var _b_ = caml_wrap_exception(_aD_); + if(_b_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_b_, 0); + var _c_ = cst; + } + var params = _c_; + } + var + randomized_default = caml_call2(Stdlib_String[14], params, 82), + randomized = [0, randomized_default]; + function randomize(param){randomized[1] = 1; return 0;} + function is_randomized(param){return randomized[1];} + var + prng = [246, function(_aB_){return caml_call1(Stdlib_Random[15][2], 0);}]; + function power_2_above(x, n){ + var x$0 = x; + for(;;){ + if(n <= x$0) return x$0; + if(Stdlib_Sys[13] < (x$0 * 2 | 0)) return x$0; + var x$1 = x$0 * 2 | 0, x$0 = x$1; + } + } + function create(opt, initial_size){ + if(opt) var sth = opt[1], random = sth; else var random = randomized[1]; + var s = power_2_above(16, initial_size); + if(random) + var + _az_ = caml_obj_tag(prng), + _aA_ = + 250 === _az_ + ? prng[1] + : 246 === _az_ ? caml_call1(CamlinternalLazy[2], prng) : prng, + seed = caml_call1(Stdlib_Random[15][4], _aA_); + else + var seed = 0; + return [0, 0, caml_make_vect(s, 0), seed, s]; + } + function clear(h){ + var _ay_ = 0 < h[1] ? 1 : 0; + return _ay_ + ? (h + [1] + = 0, + caml_call4(Stdlib_Array[9], h[2], 0, h[2].length - 1, 0)) + : _ay_; + } + function reset(h){ + var len = h[2].length - 1; + if(4 <= h.length - 1 && len !== caml_call1(Stdlib[18], h[4])){ + h[1] = 0; + h[2] = caml_make_vect(caml_call1(Stdlib[18], h[4]), 0); + return 0; + } + return clear(h); + } + function copy_bucketlist(param){ + if(! param) return 0; var - randomized_default=contains$0(params,82), - randomized=[0,randomized_default]; - function randomize(param){randomized[1] = 1;return 0} - function is_randomized(param){return randomized[1]} - var prng=[246,function(_os_){return caml_call1(_cg_[2],0)}]; - function power_2_above(x,n) - {var x$0=x; - for(;;) - {if(n <= x$0)return x$0; - if(max_array_length < (x$0 * 2 | 0))return x$0; - var x$1=x$0 * 2 | 0,x$0=x$1; - continue}} - function create$3(opt,initial_size) - {if(opt)var sth=opt[1],random=sth;else var random=randomized[1]; - var s=power_2_above(16,initial_size); - if(random) + key = param[1], + data = param[2], + next = param[3], + prec$1 = [0, key, data, next], + prec = prec$1, + param$0 = next; + for(;;){ + if(! param$0) return prec$1; + var + key$0 = param$0[1], + data$0 = param$0[2], + next$0 = param$0[3], + prec$0 = [0, key$0, data$0, next$0]; + prec[3] = prec$0; + var prec = prec$0, param$0 = next$0; + } + } + function copy(h){ + var + _av_ = h[4], + _aw_ = h[3], + _ax_ = caml_call2(Stdlib_Array[15], copy_bucketlist, h[2]); + return [0, h[1], _ax_, _aw_, _av_]; + } + function length(h){return h[1];} + function insert_all_buckets(indexfun, inplace, odata, ndata){ + var + nsize = ndata.length - 1, + ndata_tail = caml_make_vect(nsize, 0), + _ap_ = odata.length - 1 - 1 | 0, + _ao_ = 0; + if(_ap_ >= 0){ + var i$0 = _ao_; + a: + for(;;){ + var cell$1 = caml_check_bound(odata, i$0)[1 + i$0], cell = cell$1; + for(;;){ + if(cell){ + var + key = cell[1], + data = cell[2], + next = cell[3], + cell$0 = inplace ? cell : [0, key, data, 0], + nidx = caml_call1(indexfun, key), + match = caml_check_bound(ndata_tail, nidx)[1 + nidx]; + if(match) + match[3] = cell$0; + else + caml_check_bound(ndata, nidx)[1 + nidx] = cell$0; + caml_check_bound(ndata_tail, nidx)[1 + nidx] = cell$0; + var cell = next; + continue; + } + var _au_ = i$0 + 1 | 0; + if(_ap_ !== i$0){var i$0 = _au_; continue a;} + break; + } + break; + } + } + if(inplace){ + var _ar_ = nsize - 1 | 0, _aq_ = 0; + if(_ar_ >= 0){ + var i = _aq_; + for(;;){ + var match$0 = caml_check_bound(ndata_tail, i)[1 + i]; + if(match$0) match$0[3] = 0; + var _at_ = i + 1 | 0; + if(_ar_ !== i){var i = _at_; continue;} + break; + } + } + var _as_ = 0; + } + else + var _as_ = inplace; + return _as_; + } + function resize(indexfun, h){ + var + odata = h[2], + osize = odata.length - 1, + nsize = osize * 2 | 0, + _an_ = nsize < Stdlib_Sys[13] ? 1 : 0; + if(! _an_) return _an_; + var ndata = caml_make_vect(nsize, 0), inplace = 1 - ongoing_traversal(h); + h[2] = ndata; + return insert_all_buckets(caml_call1(indexfun, h), inplace, odata, ndata); + } + function iter(f, h){ + var old_trav = ongoing_traversal(h); + if(1 - old_trav) flip_ongoing_traversal(h); + try{ + var d = h[2], _aj_ = d.length - 1 - 1 | 0, _ai_ = 0; + if(_aj_ >= 0){ + var i = _ai_; + a: + for(;;){ + var param = caml_check_bound(d, i)[1 + i]; + for(;;){ + if(param){ + var key = param[1], data = param[2], next = param[3]; + caml_call2(f, key, data); + var param = next; + continue; + } + var _am_ = i + 1 | 0; + if(_aj_ !== i){var i = _am_; continue a;} + break; + } + break; + } + } + var _ak_ = 1 - old_trav, _al_ = _ak_ ? flip_ongoing_traversal(h) : _ak_; + return _al_; + } + catch(exn$0){ + var exn = caml_wrap_exception(exn$0); + if(old_trav) throw caml_maybe_attach_backtrace(exn, 0); + flip_ongoing_traversal(h); + throw caml_maybe_attach_backtrace(exn, 0); + } + } + function filter_map_inplace(f, h){ + var d = h[2], old_trav = ongoing_traversal(h); + if(1 - old_trav) flip_ongoing_traversal(h); + try{ + var _ae_ = d.length - 1 - 1 | 0, _ad_ = 0; + if(_ae_ >= 0){ + var i = _ad_; + a: + for(;;){ + var slot$0 = caml_check_bound(h[2], i)[1 + i], prec = 0, slot = slot$0; + for(;;){ + if(slot){ + var + key = slot[1], + data = slot[2], + next = slot[3], + match = caml_call2(f, key, data); + if(! match){h[1] = h[1] - 1 | 0; var slot = next; continue;} + var data$0 = match[1]; + if(prec) + prec[3] = slot; + else + caml_check_bound(h[2], i)[1 + i] = slot; + slot[2] = data$0; + var prec = slot, slot = next; + continue; + } + if(prec) prec[3] = 0; else caml_check_bound(h[2], i)[1 + i] = 0; + var _ah_ = i + 1 | 0; + if(_ae_ !== i){var i = _ah_; continue a;} + break; + } + break; + } + } + var _af_ = 1 - old_trav, _ag_ = _af_ ? flip_ongoing_traversal(h) : _af_; + return _ag_; + } + catch(exn$0){ + var exn = caml_wrap_exception(exn$0); + if(old_trav) throw caml_maybe_attach_backtrace(exn, 0); + flip_ongoing_traversal(h); + throw caml_maybe_attach_backtrace(exn, 0); + } + } + function fold(f, h, init){ + var old_trav = ongoing_traversal(h); + if(1 - old_trav) flip_ongoing_traversal(h); + try{ + var d = h[2], accu$1 = [0, init], _aa_ = d.length - 1 - 1 | 0, _$_ = 0; + if(_aa_ >= 0){ + var i = _$_; + a: + for(;;){ var - _oq_=caml_obj_tag(prng), - _or_=250 === _oq_?prng[1]:246 === _oq_?force_lazy_block(prng):prng, - seed=caml_call1(_cg_[4],_or_); - else - var seed=0; - return [0,0,caml_make_vect(s,0),seed,s]} - function clear$2(h) - {var _op_=0 < h[1]?1:0; - return _op_?(h[1] = 0,fill$0(h[2],0,h[2].length - 1,0)):_op_} - function reset$0(h) - {var len=h[2].length - 1; - if(4 <= h.length - 1 && len !== abs(h[4])) - {h[1] = 0;h[2] = caml_make_vect(abs(h[4]),0);return 0} - return clear$2(h)} - function copy_bucketlist(param) - {if(param) - {var - key=param[1], - data=param[2], - next=param[3], - prec$0=[0,key,data,next], - prec=prec$0, - param$0=next; - for(;;) - {if(param$0) - {var - key$0=param$0[1], - data$0=param$0[2], - next$0=param$0[3], - r=[0,key$0,data$0,next$0]; - prec[3] = r; - var prec=r,param$0=next$0; - continue} - return prec$0}} - return 0} - function copy$6(init) - {var _om_=init[4],_on_=init[3],_oo_=map$7(copy_bucketlist,init[2]); - return [0,init[1],_oo_,_on_,_om_]} - function length$5(h){return h[1]} - function insert_all_buckets(indexfun,inplace,odata,ndata) - {var - nsize=ndata.length - 1, - ndata_tail=caml_make_vect(nsize,0), - _og_=odata.length - 1 - 1 | 0, - _of_=0; - if(! (_og_ < 0)) - {var i$0=_of_; - a: - for(;;) - {var cell$1=caml_check_bound(odata,i$0)[1 + i$0],cell=cell$1; - for(;;) - {if(cell) - {var - key=cell[1], - data=cell[2], - next=cell[3], - cell$0=inplace?cell:[0,key,data,0], - nidx=caml_call1(indexfun,key), - match=caml_check_bound(ndata_tail,nidx)[1 + nidx]; - if(match) - match[3] = cell$0; - else - caml_check_bound(ndata,nidx)[1 + nidx] = cell$0; - caml_check_bound(ndata_tail,nidx)[1 + nidx] = cell$0; - var cell=next; - continue} - var _ol_=i$0 + 1 | 0; - if(_og_ !== i$0){var i$0=_ol_;continue a} - break} - break}} - if(inplace) - {var _oi_=nsize - 1 | 0,_oh_=0; - if(! (_oi_ < 0)) - {var i=_oh_; - for(;;) - {var match$0=caml_check_bound(ndata_tail,i)[1 + i]; - if(match$0)match$0[3] = 0; - var _ok_=i + 1 | 0; - if(_oi_ !== i){var i=_ok_;continue} - break}} - var _oj_=0} - else - var _oj_=inplace; - return _oj_} - function resize$0(indexfun,h) - {var - odata=h[2], - osize=odata.length - 1, - nsize=osize * 2 | 0, - _oe_=nsize < max_array_length?1:0; - if(_oe_) - {var ndata=caml_make_vect(nsize,0),inplace=1 - ongoing_traversal(h); - h[2] = ndata; - return insert_all_buckets(caml_call1(indexfun,h),inplace,odata,ndata)} - return _oe_} - function iter$10(f,h) - {function do_bucket(param) - {var param$0=param; - for(;;) - {if(param$0) - {var key=param$0[1],data=param$0[2],next=param$0[3]; - caml_call2(f,key,data); - var param$0=next; - continue} - return 0}} - var old_trav=ongoing_traversal(h); - if(1 - old_trav)flip_ongoing_traversal(h); - try - {var d=h[2],_oa_=d.length - 1 - 1 | 0,_n$_=0; - if(! (_oa_ < 0)) - {var i=_n$_; - for(;;) - {do_bucket(caml_check_bound(d,i)[1 + i]); - var _od_=i + 1 | 0; - if(_oa_ !== i){var i=_od_;continue} - break}} - var _ob_=1 - old_trav,_oc_=_ob_?flip_ongoing_traversal(h):_ob_; - return _oc_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(old_trav)throw exn; - flip_ongoing_traversal(h); - throw exn}} - function filter_map_inplace_bucket(f,h,i,prec,slot) - {var prec$0=prec,slot$0=slot; - for(;;) - {if(slot$0) - {var - key=slot$0[1], - data=slot$0[2], - next=slot$0[3], - match=caml_call2(f,key,data); - if(match) - {var data$0=match[1]; - if(prec$0) - prec$0[3] = slot$0; - else - caml_check_bound(h[2],i)[1 + i] = slot$0; - slot$0[2] = data$0; - var prec$0=slot$0,slot$0=next; - continue} - h[1] = h[1] - 1 | 0; - var slot$0=next; - continue} - return prec$0 - ?(prec$0[3] = 0,0) - :(caml_check_bound(h[2],i)[1 + i] = 0,0)}} - function filter_map_inplace(f,h) - {var d=h[2],old_trav=ongoing_traversal(h); - if(1 - old_trav)flip_ongoing_traversal(h); - try - {var _n7_=d.length - 1 - 1 | 0,_n6_=0; - if(! (_n7_ < 0)) - {var i=_n6_; - for(;;) - {filter_map_inplace_bucket(f,h,i,0,caml_check_bound(h[2],i)[1 + i]); - var _n__=i + 1 | 0; - if(_n7_ !== i){var i=_n__;continue} - break}} - var _n8_=1 - old_trav,_n9_=_n8_?flip_ongoing_traversal(h):_n8_; - return _n9_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(old_trav)throw exn; - flip_ongoing_traversal(h); - throw exn}} - function fold$4(f,h,init) - {function do_bucket(b,accu) - {var b$0=b,accu$0=accu; - for(;;) - {if(b$0) - {var - key=b$0[1], - data=b$0[2], - next=b$0[3], - accu$1=caml_call3(f,key,data,accu$0), - b$0=next, - accu$0=accu$1; - continue} - return accu$0}} - var old_trav=ongoing_traversal(h); - if(1 - old_trav)flip_ongoing_traversal(h); - try - {var d=h[2],accu=[0,init],_n2_=d.length - 1 - 1 | 0,_n1_=0; - if(! (_n2_ < 0)) - {var i=_n1_; - for(;;) - {var _n4_=accu[1]; - accu[1] = do_bucket(caml_check_bound(d,i)[1 + i],_n4_); - var _n5_=i + 1 | 0; - if(_n2_ !== i){var i=_n5_;continue} - break}} - if(1 - old_trav)flip_ongoing_traversal(h); - var _n3_=accu[1]; - return _n3_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(old_trav)throw exn; - flip_ongoing_traversal(h); - throw exn}} - function bucket_length(accu,param) - {var accu$0=accu,param$0=param; - for(;;) - {if(param$0) - {var - param$1=param$0[3], - accu$1=accu$0 + 1 | 0, - accu$0=accu$1, - param$0=param$1; - continue} - return accu$0}} - function stats(h) - {var - _nX_=h[2], - _nY_=0, - mbl= - fold_left$3 - (function(m,b){return max$1(m,bucket_length(0,b))},_nY_,_nX_), - histo=caml_make_vect(mbl + 1 | 0,0), - _nZ_=h[2]; - iter$5 - (function(b) - {var - l=bucket_length(0,b), - _n0_=caml_check_bound(histo,l)[1 + l] + 1 | 0; - caml_check_bound(histo,l)[1 + l] = _n0_; - return 0}, - _nZ_); - return [0,h[1],h[2].length - 1,mbl,histo]} - function to_seq$9(tbl) - {var tbl_data=tbl[2]; - function aux(i,buck,param) - {var i$0=i,buck$0=buck; - for(;;) - {if(buck$0) - {var key=buck$0[1],data=buck$0[2],next=buck$0[3]; - return [0,[0,key,data],function(_nW_){return aux(i$0,next,_nW_)}]} - if(i$0 === tbl_data.length - 1)return 0; - var - buck$1=caml_check_bound(tbl_data,i$0)[1 + i$0], - i$1=i$0 + 1 | 0, - i$0=i$1, - buck$0=buck$1; - continue}} - var _nT_=0,_nU_=0; - return function(_nV_){return aux(_nU_,_nT_,_nV_)}} - function to_seq_keys(m) - {var _nP_=to_seq$9(m); - function _nQ_(_nS_){return _nS_[1]} - return function(_nR_){return map$1(_nQ_,_nP_,_nR_)}} - function to_seq_values(m) - {var _nL_=to_seq$9(m); - function _nM_(_nO_){return _nO_[2]} - return function(_nN_){return map$1(_nM_,_nL_,_nN_)}} - function MakeSeeded(H) - {function key_index(h,key) - {var _nK_=h[2].length - 1 - 1 | 0; - return caml_call2(H[2],h[3],key) & _nK_} - function add(h,key,data) - {var - i=key_index(h,key), - bucket=[0,key,data,caml_check_bound(h[2],i)[1 + i]]; - caml_check_bound(h[2],i)[1 + i] = bucket; - h[1] = h[1] + 1 | 0; - var _nJ_=h[2].length - 1 << 1 < h[1]?1:0; - return _nJ_?resize$0(key_index,h):_nJ_} - function remove(h,key) - {var - i=key_index(h,key), - c$0=caml_check_bound(h[2],i)[1 + i], - prec=0, - c=c$0; - for(;;) - {if(c) - {var k=c[1],next=c[3]; - if(caml_call2(H[1],k,key)) - {h[1] = h[1] - 1 | 0; - return prec - ?(prec[3] = next,0) - :(caml_check_bound(h[2],i)[1 + i] = next,0)} - var prec=c,c=next; - continue} - return 0}} - function find(h,key) - {var _nI_=key_index(h,key),match=caml_check_bound(h[2],_nI_)[1 + _nI_]; - if(match) - {var k1=match[1],d1=match[2],next1=match[3]; - if(caml_call2(H[1],key,k1))return d1; - if(next1) - {var k2=next1[1],d2=next1[2],next2=next1[3]; - if(caml_call2(H[1],key,k2))return d2; - if(next2) - {var k3=next2[1],d3=next2[2],next3=next2[3]; - if(caml_call2(H[1],key,k3))return d3; - var param=next3; - for(;;) - {if(param) - {var k=param[1],data=param[2],next=param[3]; - if(caml_call2(H[1],key,k))return data; - var param=next; - continue} - throw Not_found}} - throw Not_found} - throw Not_found} - throw Not_found} - function find_opt(h,key) - {var _nH_=key_index(h,key),match=caml_check_bound(h[2],_nH_)[1 + _nH_]; - if(match) - {var k1=match[1],d1=match[2],next1=match[3]; - if(caml_call2(H[1],key,k1))return [0,d1]; - if(next1) - {var k2=next1[1],d2=next1[2],next2=next1[3]; - if(caml_call2(H[1],key,k2))return [0,d2]; - if(next2) - {var k3=next2[1],d3=next2[2],next3=next2[3]; - if(caml_call2(H[1],key,k3))return [0,d3]; - var param=next3; - for(;;) - {if(param) - {var k=param[1],data=param[2],next=param[3]; - if(caml_call2(H[1],key,k))return [0,data]; - var param=next; - continue} - return 0}} - return 0} - return 0} - return 0} - function find_all(h,key) - {function find_in_bucket(param) - {var param$0=param; - for(;;) - {if(param$0) - {var k=param$0[1],d=param$0[2],next=param$0[3]; - if(caml_call2(H[1],k,key))return [0,d,find_in_bucket(next)]; - var param$0=next; - continue} - return 0}} - var _nG_=key_index(h,key); - return find_in_bucket(caml_check_bound(h[2],_nG_)[1 + _nG_])} - function replace(h,key,data) - {var - i=key_index(h,key), - param$0=caml_check_bound(h[2],i)[1 + i], - param=param$0; - for(;;) - {if(param) - {var k=param[1],next=param[3]; - if(! caml_call2(H[1],k,key)){var param=next;continue} - param[1] = key; - param[2] = data; - var _nD_=0} - else - var _nD_=1; - if(_nD_) - {caml_check_bound(h[2],i)[1 + i] = [0,key,data,param$0]; - h[1] = h[1] + 1 | 0; - var _nE_=h[2].length - 1 << 1 < h[1]?1:0; - if(_nE_)return resize$0(key_index,h); - var _nF_=_nE_} - else - var _nF_=_nD_; - return _nF_}} - function mem(h,key) - {var - _nC_=key_index(h,key), - param$0=caml_check_bound(h[2],_nC_)[1 + _nC_], - param=param$0; - for(;;) - {if(param) - {var k=param[1],next=param[3],_nB_=caml_call2(H[1],k,key); - if(_nB_)return _nB_; - var param=next; - continue} - return 0}} - function add_seq(tbl,i) - {return iter - (function(param) - {var v=param[2],k=param[1];return add(tbl,k,v)}, - i)} - function replace_seq(tbl,i) - {return iter - (function(param) - {var v=param[2],k=param[1];return replace(tbl,k,v)}, - i)} - function of_seq(i){var tbl=create$3(0,16);replace_seq(tbl,i);return tbl} - return [0, - create$3, - clear$2, - reset$0, - copy$6, - add, - remove, - find, - find_opt, - find_all, - replace, - mem, - iter$10, - filter_map_inplace, - fold$4, - length$5, - stats, - to_seq$9, - to_seq_keys, - to_seq_values, - add_seq, - replace_seq, - of_seq]} - function Make$0(H) - {var equal=H[1]; - function hash(seed,x){return caml_call1(H[2],x)} + accu$2 = accu$1[1], + b$0 = caml_check_bound(d, i)[1 + i], + b = b$0, + accu = accu$2; + for(;;){ + if(b){ + var + key = b[1], + data = b[2], + next = b[3], + accu$0 = caml_call3(f, key, data, accu), + b = next, + accu = accu$0; + continue; + } + accu$1[1] = accu; + var _ac_ = i + 1 | 0; + if(_aa_ !== i){var i = _ac_; continue a;} + break; + } + break; + } + } + if(1 - old_trav) flip_ongoing_traversal(h); + var _ab_ = accu$1[1]; + return _ab_; + } + catch(exn$0){ + var exn = caml_wrap_exception(exn$0); + if(old_trav) throw caml_maybe_attach_backtrace(exn, 0); + flip_ongoing_traversal(h); + throw caml_maybe_attach_backtrace(exn, 0); + } + } + function bucket_length(accu, param){ + var accu$0 = accu, param$0 = param; + for(;;){ + if(! param$0) return accu$0; + var + next = param$0[3], + accu$1 = accu$0 + 1 | 0, + accu$0 = accu$1, + param$0 = next; + } + } + function stats(h){ + var _V_ = h[2], _W_ = 0; + function _X_(m, b){ + var ___ = bucket_length(0, b); + return caml_call2(Stdlib_Int[11], m, ___); + } + var + mbl = caml_call3(Stdlib_Array[17], _X_, _W_, _V_), + histo = caml_make_vect(mbl + 1 | 0, 0), + _Y_ = h[2]; + function _Z_(b){ + var l = bucket_length(0, b); + histo[1 + l] = caml_check_bound(histo, l)[1 + l] + 1 | 0; + return 0; + } + caml_call2(Stdlib_Array[13], _Z_, _Y_); + return [0, h[1], h[2].length - 1, mbl, histo]; + } + function to_seq(tbl){ + var tbl_data = tbl[2]; + function aux(i, buck, param){ + var i$0 = i, buck$0 = buck; + for(;;){ + if(buck$0){ + var key = buck$0[1], data = buck$0[2], next = buck$0[3]; + return [0, [0, key, data], function(_U_){return aux(i$0, next, _U_);}]; + } + if(i$0 === tbl_data.length - 1) return 0; var - include=MakeSeeded([0,equal,hash]), - clear=include[2], - reset=include[3], - copy=include[4], - add=include[5], - remove=include[6], - find=include[7], - find_opt=include[8], - find_all=include[9], - replace=include[10], - mem=include[11], - iter=include[12], - filter_map_inplace=include[13], - fold=include[14], - length=include[15], - stats=include[16], - to_seq=include[17], - to_seq_keys=include[18], - to_seq_values=include[19], - add_seq=include[20], - replace_seq=include[21], - _nA_=include[1]; - function create(sz){return caml_call2(_nA_,_ci_,sz)} - function of_seq(i) - {var tbl=create(16);caml_call2(replace_seq,tbl,i);return tbl} - return [0, - create, - clear, - reset, - copy, - add, - remove, - find, - find_opt, - find_all, - replace, - mem, - iter, - filter_map_inplace, - fold, - length, - stats, - to_seq, - to_seq_keys, - to_seq_values, - add_seq, - replace_seq, - of_seq]} - function hash$1(x){return caml_hash(10,100,0,x)} - function hash_param(n1,n2,x){return caml_hash(n1,n2,0,x)} - function seeded_hash(seed,x){return caml_hash(10,100,seed,x)} - function key_index(h,key) - {return 4 <= h.length - 1 - ?caml_hash(10,100,h[3],key) & (h[2].length - 1 - 1 | 0) - :invalid_arg(cst_Hashtbl_unsupported_hash_t)} - function add$0(h,key,data) - {var - i=key_index(h,key), - bucket=[0,key,data,caml_check_bound(h[2],i)[1 + i]]; - caml_check_bound(h[2],i)[1 + i] = bucket; + buck$1 = caml_check_bound(tbl_data, i$0)[1 + i$0], + i$1 = i$0 + 1 | 0, + i$0 = i$1, + buck$0 = buck$1; + } + } + var _R_ = 0, _S_ = 0; + return function(_T_){return aux(_S_, _R_, _T_);}; + } + function to_seq_keys(m){ + var _O_ = to_seq(m); + function _P_(_Q_){return _Q_[1];} + return caml_call2(Stdlib_Seq[27], _P_, _O_); + } + function to_seq_values(m){ + var _L_ = to_seq(m); + function _M_(_N_){return _N_[2];} + return caml_call2(Stdlib_Seq[27], _M_, _L_); + } + function MakeSeeded(H){ + function key_index(h, key){ + var _K_ = h[2].length - 1 - 1 | 0; + return caml_call2(H[2], h[3], key) & _K_; + } + function add(h, key, data){ + var + i = key_index(h, key), + bucket = [0, key, data, caml_check_bound(h[2], i)[1 + i]]; + caml_check_bound(h[2], i)[1 + i] = bucket; + h[1] = h[1] + 1 | 0; + var _J_ = h[2].length - 1 << 1 < h[1] ? 1 : 0; + return _J_ ? resize(key_index, h) : _J_; + } + function remove(h, key){ + var + i = key_index(h, key), + c = caml_check_bound(h[2], i)[1 + i], + prec$0 = 0, + prec = c; + for(;;){ + if(! prec) return 0; + var k = prec[1], next = prec[3]; + if(caml_call2(H[1], k, key)){ + h[1] = h[1] - 1 | 0; + return prec$0 + ? (prec$0[3] = next, 0) + : (caml_check_bound(h[2], i)[1 + i] = next, 0); + } + var prec$0 = prec, prec = next; + } + } + function find(h, key){ + var + _I_ = key_index(h, key), + match = caml_check_bound(h[2], _I_)[1 + _I_]; + if(! match) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var k1 = match[1], d1 = match[2], next1 = match[3]; + if(caml_call2(H[1], key, k1)) return d1; + if(! next1) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var k2 = next1[1], d2 = next1[2], next2 = next1[3]; + if(caml_call2(H[1], key, k2)) return d2; + if(! next2) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var k3 = next2[1], d3 = next2[2], next3 = next2[3]; + if(caml_call2(H[1], key, k3)) return d3; + var param = next3; + for(;;){ + if(! param) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var k = param[1], data = param[2], next = param[3]; + if(caml_call2(H[1], key, k)) return data; + var param = next; + } + } + function find_opt(h, key){ + var + _H_ = key_index(h, key), + match = caml_check_bound(h[2], _H_)[1 + _H_]; + if(! match) return 0; + var k1 = match[1], d1 = match[2], next1 = match[3]; + if(caml_call2(H[1], key, k1)) return [0, d1]; + if(! next1) return 0; + var k2 = next1[1], d2 = next1[2], next2 = next1[3]; + if(caml_call2(H[1], key, k2)) return [0, d2]; + if(! next2) return 0; + var k3 = next2[1], d3 = next2[2], next3 = next2[3]; + if(caml_call2(H[1], key, k3)) return [0, d3]; + var param = next3; + for(;;){ + if(! param) return 0; + var k = param[1], data = param[2], next = param[3]; + if(caml_call2(H[1], key, k)) return [0, data]; + var param = next; + } + } + function find_all(h, key){ + function find_in_bucket(param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var k = param$0[1], d = param$0[2], next = param$0[3]; + if(caml_call2(H[1], k, key)) return [0, d, find_in_bucket(next)]; + var param$0 = next; + } + } + var _G_ = key_index(h, key); + return find_in_bucket(caml_check_bound(h[2], _G_)[1 + _G_]); + } + function replace(h, key, data){ + var + i = key_index(h, key), + l = caml_check_bound(h[2], i)[1 + i], + slot = l; + for(;;){ + if(slot){ + var k = slot[1], next = slot[3]; + if(! caml_call2(H[1], k, key)){var slot = next; continue;} + slot[1] = key; + slot[2] = data; + var _D_ = 0; + } + else + var _D_ = 1; + if(_D_){ + caml_check_bound(h[2], i)[1 + i] = [0, key, data, l]; + h[1] = h[1] + 1 | 0; + var _E_ = h[2].length - 1 << 1 < h[1] ? 1 : 0; + if(_E_) return resize(key_index, h); + var _F_ = _E_; + } + else + var _F_ = _D_; + return _F_; + } + } + function mem(h, key){ + var + _C_ = key_index(h, key), + param = caml_check_bound(h[2], _C_)[1 + _C_]; + for(;;){ + if(! param) return 0; + var k = param[1], next = param[3], _B_ = caml_call2(H[1], k, key); + if(_B_) return _B_; + var param = next; + } + } + function add_seq(tbl, i){ + function _A_(param){ + var v = param[2], k = param[1]; + return add(tbl, k, v); + } + return caml_call2(Stdlib_Seq[4], _A_, i); + } + function replace_seq(tbl, i){ + function _z_(param){ + var v = param[2], k = param[1]; + return replace(tbl, k, v); + } + return caml_call2(Stdlib_Seq[4], _z_, i); + } + function of_seq(i){ + var tbl = create(0, 16); + replace_seq(tbl, i); + return tbl; + } + return [0, + create, + clear, + reset, + copy, + add, + remove, + find, + find_opt, + find_all, + replace, + mem, + iter, + filter_map_inplace, + fold, + length, + stats, + to_seq, + to_seq_keys, + to_seq_values, + add_seq, + replace_seq, + of_seq]; + } + function Make(H){ + var equal = H[1]; + function hash(seed, x){return caml_call1(H[2], x);} + var + include = MakeSeeded([0, equal, hash]), + clear = include[2], + reset = include[3], + copy = include[4], + add = include[5], + remove = include[6], + find = include[7], + find_opt = include[8], + find_all = include[9], + replace = include[10], + mem = include[11], + iter = include[12], + filter_map_inplace = include[13], + fold = include[14], + length = include[15], + stats = include[16], + to_seq = include[17], + to_seq_keys = include[18], + to_seq_values = include[19], + add_seq = include[20], + replace_seq = include[21], + _y_ = include[1]; + function create(sz){return caml_call2(_y_, _d_, sz);} + function of_seq(i){ + var tbl = create(16); + caml_call2(replace_seq, tbl, i); + return tbl; + } + return [0, + create, + clear, + reset, + copy, + add, + remove, + find, + find_opt, + find_all, + replace, + mem, + iter, + filter_map_inplace, + fold, + length, + stats, + to_seq, + to_seq_keys, + to_seq_values, + add_seq, + replace_seq, + of_seq]; + } + function hash(x){return caml_hash(10, 100, 0, x);} + function hash_param(n1, n2, x){return caml_hash(n1, n2, 0, x);} + function seeded_hash(seed, x){return caml_hash(10, 100, seed, x);} + function key_index(h, key){ + return 4 <= h.length - 1 + ? caml_hash(10, 100, h[3], key) & (h[2].length - 1 - 1 | 0) + : caml_call1(Stdlib[1], cst_Hashtbl_unsupported_hash_t); + } + function add(h, key, data){ + var + i = key_index(h, key), + bucket = [0, key, data, caml_check_bound(h[2], i)[1 + i]]; + caml_check_bound(h[2], i)[1 + i] = bucket; + h[1] = h[1] + 1 | 0; + var _x_ = h[2].length - 1 << 1 < h[1] ? 1 : 0; + return _x_ ? resize(key_index, h) : _x_; + } + function remove(h, key){ + var + i = key_index(h, key), + c = caml_check_bound(h[2], i)[1 + i], + prec$0 = 0, + prec = c; + for(;;){ + if(! prec) return 0; + var k = prec[1], next = prec[3]; + if(0 === caml_compare(k, key)){ + h[1] = h[1] - 1 | 0; + return prec$0 + ? (prec$0[3] = next, 0) + : (caml_check_bound(h[2], i)[1 + i] = next, 0); + } + var prec$0 = prec, prec = next; + } + } + function find(h, key){ + var _w_ = key_index(h, key), match = caml_check_bound(h[2], _w_)[1 + _w_]; + if(! match) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var k1 = match[1], d1 = match[2], next1 = match[3]; + if(0 === caml_compare(key, k1)) return d1; + if(! next1) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var k2 = next1[1], d2 = next1[2], next2 = next1[3]; + if(0 === caml_compare(key, k2)) return d2; + if(! next2) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var k3 = next2[1], d3 = next2[2], next3 = next2[3]; + if(0 === caml_compare(key, k3)) return d3; + var param = next3; + for(;;){ + if(! param) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var k = param[1], data = param[2], next = param[3]; + if(0 === caml_compare(key, k)) return data; + var param = next; + } + } + function find_opt(h, key){ + var _v_ = key_index(h, key), match = caml_check_bound(h[2], _v_)[1 + _v_]; + if(! match) return 0; + var k1 = match[1], d1 = match[2], next1 = match[3]; + if(0 === caml_compare(key, k1)) return [0, d1]; + if(! next1) return 0; + var k2 = next1[1], d2 = next1[2], next2 = next1[3]; + if(0 === caml_compare(key, k2)) return [0, d2]; + if(! next2) return 0; + var k3 = next2[1], d3 = next2[2], next3 = next2[3]; + if(0 === caml_compare(key, k3)) return [0, d3]; + var param = next3; + for(;;){ + if(! param) return 0; + var k = param[1], data = param[2], next = param[3]; + if(0 === caml_compare(key, k)) return [0, data]; + var param = next; + } + } + function find_all(h, key){ + function find_in_bucket(param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var k = param$0[1], data = param$0[2], next = param$0[3]; + if(0 === caml_compare(k, key)) return [0, data, find_in_bucket(next)]; + var param$0 = next; + } + } + var _u_ = key_index(h, key); + return find_in_bucket(caml_check_bound(h[2], _u_)[1 + _u_]); + } + function replace(h, key, data){ + var i = key_index(h, key), l = caml_check_bound(h[2], i)[1 + i], slot = l; + for(;;){ + if(slot){ + var k = slot[1], next = slot[3]; + if(0 !== caml_compare(k, key)){var slot = next; continue;} + slot[1] = key; + slot[2] = data; + var _r_ = 0; + } + else + var _r_ = 1; + if(_r_){ + caml_check_bound(h[2], i)[1 + i] = [0, key, data, l]; h[1] = h[1] + 1 | 0; - var _nz_=h[2].length - 1 << 1 < h[1]?1:0; - return _nz_?resize$0(key_index,h):_nz_} - function remove(h,key) - {var i=key_index(h,key),c$0=caml_check_bound(h[2],i)[1 + i],prec=0,c=c$0; - for(;;) - {if(c) - {var k=c[1],next=c[3]; - if(0 === caml_compare(k,key)) - {h[1] = h[1] - 1 | 0; - return prec - ?(prec[3] = next,0) - :(caml_check_bound(h[2],i)[1 + i] = next,0)} - var prec=c,c=next; - continue} - return 0}} - function find$1(h,key) - {var _ny_=key_index(h,key),match=caml_check_bound(h[2],_ny_)[1 + _ny_]; - if(match) - {var k1=match[1],d1=match[2],next1=match[3]; - if(0 === caml_compare(key,k1))return d1; - if(next1) - {var k2=next1[1],d2=next1[2],next2=next1[3]; - if(0 === caml_compare(key,k2))return d2; - if(next2) - {var k3=next2[1],d3=next2[2],next3=next2[3]; - if(0 === caml_compare(key,k3))return d3; - var param=next3; - for(;;) - {if(param) - {var k=param[1],data=param[2],next=param[3]; - if(0 === caml_compare(key,k))return data; - var param=next; - continue} - throw Not_found}} - throw Not_found} - throw Not_found} - throw Not_found} - function find_opt$1(h,key) - {var _nx_=key_index(h,key),match=caml_check_bound(h[2],_nx_)[1 + _nx_]; - if(match) - {var k1=match[1],d1=match[2],next1=match[3]; - if(0 === caml_compare(key,k1))return [0,d1]; - if(next1) - {var k2=next1[1],d2=next1[2],next2=next1[3]; - if(0 === caml_compare(key,k2))return [0,d2]; - if(next2) - {var k3=next2[1],d3=next2[2],next3=next2[3]; - if(0 === caml_compare(key,k3))return [0,d3]; - var param=next3; - for(;;) - {if(param) - {var k=param[1],data=param[2],next=param[3]; - if(0 === caml_compare(key,k))return [0,data]; - var param=next; - continue} - return 0}} - return 0} - return 0} - return 0} - function find_all$0(h,key) - {function find_in_bucket(param) - {var param$0=param; - for(;;) - {if(param$0) - {var k=param$0[1],data=param$0[2],next=param$0[3]; - if(0 === caml_compare(k,key))return [0,data,find_in_bucket(next)]; - var param$0=next; - continue} - return 0}} - var _nw_=key_index(h,key); - return find_in_bucket(caml_check_bound(h[2],_nw_)[1 + _nw_])} - function replace(h,key,data) - {var - i=key_index(h,key), - param$0=caml_check_bound(h[2],i)[1 + i], - param=param$0; - for(;;) - {if(param) - {var k=param[1],next=param[3]; - if(0 !== caml_compare(k,key)){var param=next;continue} - param[1] = key; - param[2] = data; - var _nt_=0} - else - var _nt_=1; - if(_nt_) - {caml_check_bound(h[2],i)[1 + i] = [0,key,data,param$0]; - h[1] = h[1] + 1 | 0; - var _nu_=h[2].length - 1 << 1 < h[1]?1:0; - if(_nu_)return resize$0(key_index,h); - var _nv_=_nu_} - else - var _nv_=_nt_; - return _nv_}} - function mem$2(h,key) - {var - _ns_=key_index(h,key), - param$0=caml_check_bound(h[2],_ns_)[1 + _ns_], - param=param$0; - for(;;) - {if(param) - {var k=param[1],next=param[3],_nr_=0 === caml_compare(k,key)?1:0; - if(_nr_)return _nr_; - var param=next; - continue} - return 0}} - function add_seq$2(tbl,i) - {return iter - (function(param) - {var v=param[2],k=param[1];return add$0(tbl,k,v)}, - i)} - function replace_seq(tbl,i) - {return iter - (function(param) - {var v=param[2],k=param[1];return replace(tbl,k,v)}, - i)} - function of_seq$7(i){var tbl=create$3(0,16);replace_seq(tbl,i);return tbl} - function rebuild(opt,h) - {if(opt)var sth=opt[1],random=sth;else var random=randomized[1]; - var s=power_2_above(16,h[2].length - 1); - if(random) - var - _nk_=caml_obj_tag(prng), - _nl_=250 === _nk_?prng[1]:246 === _nk_?force_lazy_block(prng):prng, - seed=caml_call1(_cg_[4],_nl_); - else - var seed=4 <= h.length - 1?h[3]:0; - var - _nm_=4 <= h.length - 1?h[4]:s, - h$0=[0,h[1],caml_make_vect(s,0),seed,_nm_], - _nn_=h$0[2], - _no_=h[2], - _np_=0; - insert_all_buckets - (function(_nq_){return key_index(h$0,_nq_)},_np_,_no_,_nn_); - return h$0} + var _s_ = h[2].length - 1 << 1 < h[1] ? 1 : 0; + if(_s_) return resize(key_index, h); + var _t_ = _s_; + } + else + var _t_ = _r_; + return _t_; + } + } + function mem(h, key){ + var _q_ = key_index(h, key), param = caml_check_bound(h[2], _q_)[1 + _q_]; + for(;;){ + if(! param) return 0; + var + k = param[1], + next = param[3], + _p_ = 0 === caml_compare(k, key) ? 1 : 0; + if(_p_) return _p_; + var param = next; + } + } + function add_seq(tbl, i){ + function _o_(param){ + var v = param[2], k = param[1]; + return add(tbl, k, v); + } + return caml_call2(Stdlib_Seq[4], _o_, i); + } + function replace_seq(tbl, i){ + function _n_(param){ + var v = param[2], k = param[1]; + return replace(tbl, k, v); + } + return caml_call2(Stdlib_Seq[4], _n_, i); + } + function of_seq(i){ + var tbl = create(0, 16); + replace_seq(tbl, i); + return tbl; + } + function rebuild(opt, h){ + if(opt) var sth = opt[1], random = sth; else var random = randomized[1]; + var s = power_2_above(16, h[2].length - 1); + if(random) + var + _g_ = caml_obj_tag(prng), + _h_ = + 250 === _g_ + ? prng[1] + : 246 === _g_ ? caml_call1(CamlinternalLazy[2], prng) : prng, + seed = caml_call1(Stdlib_Random[15][4], _h_); + else + var seed = 4 <= h.length - 1 ? h[3] : 0; var - Stdlib_Hashtbl= + _i_ = 4 <= h.length - 1 ? h[4] : s, + h$0 = [0, h[1], caml_make_vect(s, 0), seed, _i_], + _j_ = h$0[2], + _k_ = h[2], + _l_ = 0; + insert_all_buckets + (function(_m_){return key_index(h$0, _m_);}, _l_, _k_, _j_); + return h$0; + } + var + Stdlib_Hashtbl = [0, - create$3, - clear$2, - reset$0, - copy$6, - add$0, - find$1, - find_opt$1, - find_all$0, - mem$2, + create, + clear, + reset, + copy, + add, + find, + find_opt, + find_all, + mem, remove, replace, - iter$10, + iter, filter_map_inplace, - fold$4, - length$5, + fold, + length, randomize, is_randomized, rebuild, stats, - to_seq$9, + to_seq, to_seq_keys, to_seq_values, - add_seq$2, + add_seq, replace_seq, - of_seq$7, - Make$0, + of_seq, + Make, MakeSeeded, - hash$1, + hash, seeded_hash, hash_param, caml_hash]; - caml_register_global(816,Stdlib_Hashtbl,"Stdlib__Hashtbl"); - function weak_create(l) - {var _ni_=0 <= l?1:0,_nj_=_ni_?l <= _o_[15]?1:0:_ni_; - if(1 - _nj_)invalid_arg(cst_Weak_create); - return runtime.caml_weak_create(l)} - function length$6(x){return x.length - 1 - 2 | 0} - function raise_if_invalid_offset$0(e,o,msg) - {var _nf_=0 <= o?1:0,_ng_=_nf_?o < length$6(e)?1:0:_nf_,_nh_=1 - _ng_; - return _nh_?invalid_arg(msg):_nh_} - function set$1(e,o,x) - {raise_if_invalid_offset$0(e,o,cst_Weak_set); - if(x){var x$0=x[1];return caml_ephe_set_key(e,o,x$0)} - return caml_ephe_unset_key(e,o)} - function get$2(e,o) - {raise_if_invalid_offset$0(e,o,cst_Weak_get); - return caml_ephe_get_key(e,o)} - function get_copy(e,o) - {raise_if_invalid_offset$0(e,o,cst_Weak_get_copy); - return caml_ephe_get_key_copy(e,o)} - function check$0(e,o) - {raise_if_invalid_offset$0(e,o,cst_Weak_check); - return caml_ephe_check_key(e,o)} - function blit$4(e1,o1,e2,o2,l) - {if - (0 - <= - l - && - 0 - <= - o1 - && - ! - ((length$6(e1) - l | 0) < o1) - && - 0 - <= - o2 - && - ! - ((length$6(e2) - l | 0) < o2)) - {var _nd_=0 !== l?1:0,_ne_=_nd_?caml_ephe_blit_key(e1,o1,e2,o2,l):_nd_; - return _ne_} - return invalid_arg(cst_Weak_blit)} - function fill$2(ar,ofs,len,x) - {if(0 <= ofs && 0 <= len && ! ((length$6(ar) - len | 0) < ofs)) - {var _nb_=(ofs + len | 0) - 1 | 0; - if(! (_nb_ < ofs)) - {var i=ofs; - for(;;) - {set$1(ar,i,x); - var _nc_=i + 1 | 0; - if(_nb_ !== i){var i=_nc_;continue} - break}} - return 0} - throw [0,Invalid_argument,cst_Weak_fill]} - function Make$1(H) - {var emptybucket=weak_create(0); - function get_index(t,h){return caml_mod(h & 2147483647,t[1].length - 1)} - var limit=7; - function create(sz) - {var - sz$0=7 <= sz?sz:7, - sz$1=max_array_length < sz$0?max_array_length:sz$0; - return [0, - caml_make_vect(sz$1,emptybucket), - caml_make_vect(sz$1,[0]), - limit, - 0, - 0]} - function clear(t) - {var _m$_=t[1].length - 1 - 1 | 0,_m__=0; - if(! (_m$_ < 0)) - {var i=_m__; - for(;;) - {caml_check_bound(t[1],i)[1 + i] = emptybucket; - caml_check_bound(t[2],i)[1 + i] = [0]; - var _na_=i + 1 | 0; - if(_m$_ !== i){var i=_na_;continue} - break}} - t[3] = limit; - t[4] = 0; - return 0} - function fold(f,t,init) - {var _m9_=t[1],i=0; - return fold_right$2 - (function(b,accu$1) - {var i$0=i,accu=accu$1; - for(;;) - {if(length$6(b) <= i$0)return accu; - var match=get$2(b,i$0); - if(match) - {var - v=match[1], - accu$0=caml_call2(f,v,accu), - i$1=i$0 + 1 | 0, - i$0=i$1, - accu=accu$0; - continue} - var i$2=i$0 + 1 | 0,i$0=i$2; - continue}}, - _m9_, - init)} - function iter(f,t) - {var _m8_=t[1],i=0; - return iter$5 - (function(b) - {var i$0=i; - for(;;) - {if(length$6(b) <= i$0)return 0; - var match=get$2(b,i$0); - if(match) - {var v=match[1]; - caml_call1(f,v); - var i$1=i$0 + 1 | 0,i$0=i$1; - continue} - var i$2=i$0 + 1 | 0,i$0=i$2; - continue}}, - _m8_)} - function count_bucket(i,b,accu) - {var i$0=i,accu$0=accu; - for(;;) - {if(length$6(b) <= i$0)return accu$0; - var - _m7_=check$0(b,i$0)?1:0, - accu$1=accu$0 + _m7_ | 0, - i$1=i$0 + 1 | 0, - i$0=i$1, - accu$0=accu$1; - continue}} - function count(t) - {var _m2_=0,_m3_=t[1],_m4_=0; - return fold_right$2 - (function(_m5_,_m6_){return count_bucket(_m4_,_m5_,_m6_)}, - _m3_, - _m2_)} - function add_aux(t,setter,d,h,index) - {var - bucket$0=caml_check_bound(t[1],index)[1 + index], - hashes=caml_check_bound(t[2],index)[1 + index], - sz=length$6(bucket$0), - i$3=0; - for(;;) - {if(sz <= i$3) - {var - newsz= - min$1(((3 * sz | 0) / 2 | 0) + 3 | 0,max_array_length - 2 | 0); - if(newsz <= sz)failwith(cst_Weak_Make_hash_bucket_cann); - var - newbucket$0=weak_create(newsz), - newhashes=caml_make_vect(newsz,0); - blit$4(bucket$0,0,newbucket$0,0,sz); - blit$1(hashes,0,newhashes,0,sz); - caml_call3(setter,newbucket$0,sz,d); - caml_check_bound(newhashes,sz)[1 + sz] = h; - caml_check_bound(t[1],index)[1 + index] = newbucket$0; - caml_check_bound(t[2],index)[1 + index] = newhashes; - var _mY_=sz <= t[3]?1:0,_mZ_=_mY_?t[3] < newsz?1:0:_mY_; - if(_mZ_) - {t[4] = t[4] + 1 | 0; - var i$4=0; - for(;;) - {var - _mO_=t[5], - bucket=caml_check_bound(t[1],_mO_)[1 + _mO_], - _mP_=t[5], - hbucket=caml_check_bound(t[2],_mP_)[1 + _mP_], - n=length$6(bucket), - prev_len=(((n - 3 | 0) * 2 | 0) + 2 | 0) / 3 | 0, - live=count_bucket(0,bucket,0); - if(live <= prev_len) - {var j$2=length$6(bucket) - 1 | 0,i$0=0,j=j$2; - for(;;) - {if(prev_len <= j) - {if(check$0(bucket,i$0)) - {var i$1=i$0 + 1 | 0,i$0=i$1;continue} - if(check$0(bucket,j)) - {blit$4(bucket,j,bucket,i$0,1); - var _mQ_=caml_check_bound(hbucket,j)[1 + j]; - caml_check_bound(hbucket,i$0)[1 + i$0] = _mQ_; - var j$0=j - 1 | 0,i$2=i$0 + 1 | 0,i$0=i$2,j=j$0; - continue} - var j$1=j - 1 | 0,j=j$1; - continue} - if(0 === prev_len) - {var _mR_=t[5]; - caml_check_bound(t[1],_mR_)[1 + _mR_] = emptybucket; - var _mS_=t[5]; - caml_check_bound(t[2],_mS_)[1 + _mS_] = [0]} - else - {var newbucket=weak_create(prev_len); - blit$4(bucket,0,newbucket,0,prev_len); - var _mV_=t[5]; - caml_check_bound(t[1],_mV_)[1 + _mV_] = newbucket; - var _mW_=sub$1(hbucket,0,prev_len),_mX_=t[5]; - caml_check_bound(t[2],_mX_)[1 + _mX_] = _mW_} - var _mT_=t[3] < n?1:0,_mU_=_mT_?prev_len <= t[3]?1:0:_mT_; - if(_mU_)t[4] = t[4] - 1 | 0; - break}} - t[5] = caml_mod(t[5] + 1 | 0,t[1].length - 1); - var _m1_=i$4 + 1 | 0; - if(2 !== i$4){var i$4=_m1_;continue} - break}} - var _m0_=((t[1].length - 1) / 2 | 0) < t[4]?1:0; - if(_m0_) - {var - n$0=t[1].length - 1, - newlen=min$1(((3 * n$0 | 0) / 2 | 0) + 3 | 0,max_array_length); - if(n$0 < newlen) - {var newt=create(newlen),_mN_=t[1],i=0; - iteri$3 - (function(j,ob) - {var i$0=i; - for(;;) - {if(length$6(ob) <= i$0)return 0; - var match=check$0(ob,i$0); - if(match) - {var - oh=caml_check_bound(t[2],j)[1 + j], - setter$0= - function(i) - {function setter(nb,ni,param){return blit$4(ob,i,nb,ni,1)} - return setter}, - setter=setter$0(i$0), - h=caml_check_bound(oh,i$0)[1 + i$0]; - add_aux(newt,setter,0,h,get_index(newt,h)); - var i$1=i$0 + 1 | 0,i$0=i$1; - continue} - var i$2=i$0 + 1 | 0,i$0=i$2; - continue}}, - _mN_); - t[1] = newt[1]; - t[2] = newt[2]; - t[3] = newt[3]; - t[4] = newt[4]; - t[5] = caml_mod(t[5],newt[1].length - 1); - return 0} - t[3] = max_int; - t[4] = 0; - return 0} - return _m0_} - if(check$0(bucket$0,i$3)){var i$5=i$3 + 1 | 0,i$3=i$5;continue} - caml_call3(setter,bucket$0,i$3,d); - caml_check_bound(hashes,i$3)[1 + i$3] = h; - return 0}} - function add(t,d) - {var h=caml_call1(H[2],d); - return add_aux(t,set$1,[0,d],h,get_index(t,h))} - function find_or(t,d,ifnotfound) - {var - h=caml_call1(H[2],d), - index=get_index(t,h), - bucket=caml_check_bound(t[1],index)[1 + index], - hashes=caml_check_bound(t[2],index)[1 + index], - sz=length$6(bucket), - i=0; - for(;;) - {if(sz <= i)return caml_call2(ifnotfound,h,index); - if(h === caml_check_bound(hashes,i)[1 + i]) - {var match=get_copy(bucket,i); - if(match) - {var v=match[1]; - if(caml_call2(H[1],v,d)) - {var match$0=get$2(bucket,i); - if(match$0){var v$0=match$0[1];return v$0} - var i$0=i + 1 | 0,i=i$0; - continue}} - var i$1=i + 1 | 0,i=i$1; - continue} - var i$2=i + 1 | 0,i=i$2; - continue}} - function merge(t,d) - {return find_or - (t, - d, - function(h,index){add_aux(t,set$1,[0,d],h,index);return d})} - function find(t,d) - {return find_or(t,d,function(h,index){throw Not_found})} - function find_opt(t,d) - {var - h=caml_call1(H[2],d), - index=get_index(t,h), - bucket=caml_check_bound(t[1],index)[1 + index], - hashes=caml_check_bound(t[2],index)[1 + index], - sz=length$6(bucket), - i=0; - for(;;) - {if(sz <= i)return 0; - if(h === caml_check_bound(hashes,i)[1 + i]) - {var match=get_copy(bucket,i); - if(match) - {var v=match[1]; - if(caml_call2(H[1],v,d)) - {var v$0=get$2(bucket,i); - if(v$0)return v$0; - var i$0=i + 1 | 0,i=i$0; - continue}} - var i$1=i + 1 | 0,i=i$1; - continue} - var i$2=i + 1 | 0,i=i$2; - continue}} - function find_shadow(t,d,iffound,ifnotfound) - {var - h=caml_call1(H[2],d), - index=get_index(t,h), - bucket=caml_check_bound(t[1],index)[1 + index], - hashes=caml_check_bound(t[2],index)[1 + index], - sz=length$6(bucket), - i=0; - for(;;) - {if(sz <= i)return ifnotfound; - if(h === caml_check_bound(hashes,i)[1 + i]) - {var match=get_copy(bucket,i); - if(match) - {var v=match[1]; - if(caml_call2(H[1],v,d))return caml_call2(iffound,bucket,i)} - var i$0=i + 1 | 0,i=i$0; - continue} - var i$1=i + 1 | 0,i=i$1; - continue}} - function remove(t,d) - {var _mM_=0; - return find_shadow(t,d,function(w,i){return set$1(w,i,0)},_mM_)} - function mem(t,d) - {var _mL_=0;return find_shadow(t,d,function(w,i){return 1},_mL_)} - function find_all(t,d) - {var - h=caml_call1(H[2],d), - index=get_index(t,h), - bucket=caml_check_bound(t[1],index)[1 + index], - hashes=caml_check_bound(t[2],index)[1 + index], - sz=length$6(bucket), - i=0, - accu=0; - for(;;) - {if(sz <= i)return accu; - if(h === caml_check_bound(hashes,i)[1 + i]) - {var match=get_copy(bucket,i); - if(match) - {var v=match[1]; - if(caml_call2(H[1],v,d)) - {var match$0=get$2(bucket,i); - if(match$0) - {var - v$0=match$0[1], - accu$0=[0,v$0,accu], - i$0=i + 1 | 0, - i=i$0, - accu=accu$0; - continue} - var i$1=i + 1 | 0,i=i$1; - continue}} - var i$2=i + 1 | 0,i=i$2; - continue} - var i$3=i + 1 | 0,i=i$3; - continue}} - function stats(t) - {var len=t[1].length - 1,lens=map$7(length$6,t[1]); - sort(caml_int_compare,lens); + runtime.caml_register_global(15, Stdlib_Hashtbl, "Stdlib__Hashtbl"); + return; + } + (globalThis)); + +//# 19123 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst$17 = "", + cst$18 = ">", + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_ml_string_length = runtime.caml_ml_string_length; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + var + global_data = runtime.caml_get_global_data(), + cst$15 = cst$17, + cst$16 = cst$17, + cst$14 = ".", + cst$11 = cst$18, + cst$12 = "<\/", + cst$13 = cst$17, + cst$8 = cst$18, + cst$9 = "<", + cst$10 = cst$17, + cst$7 = "\n", + cst$3 = cst$17, + cst$4 = cst$17, + cst$5 = cst$17, + cst$6 = cst$17, + cst = cst$17, + cst$0 = cst$17, + cst$1 = cst$17, + cst$2 = cst$17, + Stdlib_Queue = global_data.Stdlib__Queue, + CamlinternalFormat = global_data.CamlinternalFormat, + Stdlib = global_data.Stdlib, + Stdlib_String = global_data.Stdlib__String, + Stdlib_Buffer = global_data.Stdlib__Buffer, + Stdlib_List = global_data.Stdlib__List, + Stdlib_Stack = global_data.Stdlib__Stack, + Stdlib_Int = global_data.Stdlib__Int, + Stdlib_Bytes = global_data.Stdlib__Bytes, + _f_ = [3, 0, 3], + cst_Format_pp_set_geometry = "Format.pp_set_geometry: ", + _e_ = [1, "max_indent < 2"], + _c_ = [1, "margin <= max_indent"], + _d_ = [0, 0], + _b_ = [0, cst$17], + _a_ = [0, cst$17, 0, cst$17], + cst_Stdlib_Format_String_tag = "Stdlib.Format.String_tag"; + function id(x){return x;} + var + String_tag = + [248, cst_Stdlib_Format_String_tag, runtime.caml_fresh_oo_id(0)], + zero = 0, + unknown = -1; + function pp_enqueue(state, token){ + state[13] = state[13] + token[3] | 0; + return caml_call2(Stdlib_Queue[3], token, state[28]); + } + var pp_infinity = 1000000010; + function pp_output_string(state, s){ + return caml_call3(state[17], s, 0, caml_ml_string_length(s)); + } + function pp_output_newline(state){return caml_call1(state[19], 0);} + function format_pp_text(state, size, text){ + state[9] = state[9] - size | 0; + pp_output_string(state, text); + state[11] = 0; + return 0; + } + function format_string(state, s){ + var _bX_ = runtime.caml_string_notequal(s, cst$17); + return _bX_ ? format_pp_text(state, caml_ml_string_length(s), s) : _bX_; + } + function break_new_line(state, param, width){ + var after = param[3], offset = param[2], before = param[1]; + format_string(state, before); + pp_output_newline(state); + state[11] = 1; + var + indent = (state[6] - width | 0) + offset | 0, + real_indent = caml_call2(Stdlib_Int[10], state[8], indent); + state[10] = real_indent; + state[9] = state[6] - state[10] | 0; + var n = state[10]; + caml_call1(state[21], n); + return format_string(state, after); + } + function break_line(state, width){ + return break_new_line(state, _a_, width); + } + function break_same_line(state, param){ + var after = param[3], width = param[2], before = param[1]; + format_string(state, before); + state[9] = state[9] - width | 0; + caml_call1(state[20], width); + return format_string(state, after); + } + function format_pp_token(state, size$0, param){ + if(typeof param === "number") + switch(param){ + case 0: + var match$3 = caml_call1(Stdlib_Stack[7], state[3]); + if(! match$3) return 0; var - _mD_=0, - totlen= - fold_left$3(function(_mK_,_mJ_){return _mK_ + _mJ_ | 0},_mD_,lens), - _mE_=len - 1 | 0, - _mG_=len / 2 | 0, - _mF_=caml_check_bound(lens,_mE_)[1 + _mE_], - _mH_=caml_check_bound(lens,_mG_)[1 + _mG_], - _mI_=caml_check_bound(lens,0)[1]; - return [0,len,count(t),totlen,_mI_,_mH_,_mF_]} - return [0, - create, - clear, - merge, - add, - remove, - find, - find_opt, - find_all, - mem, - iter, - fold, - count, - stats]} - var - Stdlib_Weak= - [0, - weak_create, - length$6, - set$1, - get$2, - get_copy, - check$0, - fill$2, - blit$4, - Make$1]; - caml_register_global(817,Stdlib_Weak,"Stdlib__Weak"); - function id$0(x){return x} - var - String_tag=[248,cst_Stdlib_Format_String_tag,caml_fresh_oo_id(0)], - size=0, - unknown=-1; - function pp_enqueue(state,token) - {state[13] = state[13] + token[3] | 0;return add(token,state[28])} - var pp_infinity=1000000010; - function pp_output_string(state,s) - {return caml_call3(state[17],s,0,caml_ml_string_length(s))} - function pp_output_newline(state){return caml_call1(state[19],0)} - function format_pp_text(state,size,text) - {state[9] = state[9] - size | 0; - pp_output_string(state,text); - state[11] = 0; - return 0} - function format_string(state,s) - {var _mC_=caml_string_notequal(s,cst$67); - return _mC_?format_pp_text(state,caml_ml_string_length(s),s):_mC_} - function break_new_line(state,param,width) - {var after=param[3],offset=param[2],before=param[1]; - format_string(state,before); - pp_output_newline(state); - state[11] = 1; - var - indent=(state[6] - width | 0) + offset | 0, - real_indent=min$1(state[8],indent); - state[10] = real_indent; - state[9] = state[6] - state[10] | 0; - caml_call1(state[21],state[10]); - return format_string(state,after)} - function break_line(state,width){return break_new_line(state,_cj_,width)} - function break_same_line(state,param) - {var after=param[3],width=param[2],before=param[1]; - format_string(state,before); - state[9] = state[9] - width | 0; - caml_call1(state[20],width); - return format_string(state,after)} - function format_pp_token(state,size$0,param) - {if(typeof param === "number") - switch(param) - {case 0: - var match$3=top_opt(state[3]); - if(match$3) - {var - match$4=match$3[1], - tabs=match$4[1], - add_tab= - function(n,ls) - {if(ls) - {var l=ls[2],x=ls[1]; - return caml_lessthan(n,x)?[0,n,ls]:[0,x,add_tab(n,l)]} - return [0,n,0]}; - tabs[1] = add_tab(state[6] - state[9] | 0,tabs[1]); - return 0} - return 0; - case 1:pop_opt(state[2]);return 0; - case 2:pop_opt(state[3]);return 0; - case 3: - var match$5=top_opt(state[2]); - if(match$5) - {var match$6=match$5[1],width$0=match$6[2]; - return break_line(state,width$0)} - return pp_output_newline(state); - case 4: - var _mz_=state[10] !== (state[6] - state[9] | 0)?1:0; - if(_mz_) - {var match$1=take_opt(state[28]); - if(match$1) - {var match$2=match$1[1],size=match$2[1],length=match$2[3]; - state[12] = state[12] - length | 0; - state[9] = state[9] + size | 0; - return 0} - return 0} - return _mz_; - default: - var match$7=pop_opt(state[5]); - if(match$7) - {var tag_name=match$7[1],marker=caml_call1(state[25],tag_name); - return pp_output_string(state,marker)} - return 0} - else - switch(param[0]) - {case 0:var s=param[1];return format_pp_text(state,size$0,s); + tabs = match$3[1][1], + add_tab = + function(n, ls){ + if(! ls) return [0, n, 0]; + var l = ls[2], x = ls[1]; + return runtime.caml_lessthan(n, x) + ? [0, n, ls] + : [0, x, add_tab(n, l)]; + }; + tabs[1] = add_tab(state[6] - state[9] | 0, tabs[1]); + return 0; + case 1: + caml_call1(Stdlib_Stack[5], state[2]); return 0; + case 2: + caml_call1(Stdlib_Stack[5], state[3]); return 0; + case 3: + var match$4 = caml_call1(Stdlib_Stack[7], state[2]); + if(! match$4) return pp_output_newline(state); + var width$0 = match$4[1][2]; + return break_line(state, width$0); + case 4: + var _bV_ = state[10] !== (state[6] - state[9] | 0) ? 1 : 0; + if(! _bV_) return _bV_; + var match$1 = caml_call1(Stdlib_Queue[6], state[28]); + if(! match$1) return 0; + var match$2 = match$1[1], size = match$2[1], length = match$2[3]; + state[12] = state[12] - length | 0; + state[9] = state[9] + size | 0; + return 0; + default: + var match$5 = caml_call1(Stdlib_Stack[5], state[5]); + if(! match$5) return 0; + var tag_name = match$5[1], marker = caml_call1(state[25], tag_name); + return pp_output_string(state, marker); + } + switch(param[0]){ + case 0: + var s = param[1]; return format_pp_text(state, size$0, s); + case 1: + var + breaks = param[2], + fits = param[1], + off = breaks[2], + before = breaks[1], + match$6 = caml_call1(Stdlib_Stack[7], state[2]); + if(! match$6) return 0; + var + match$7 = match$6[1], + width$1 = match$7[2], + box_type$0 = match$7[1]; + switch(box_type$0){ + case 0: + return break_same_line(state, fits); case 1: - var - breaks=param[2], - fits=param[1], - off=breaks[2], - before=breaks[1], - match$8=top_opt(state[2]); - if(match$8) - {var match$9=match$8[1],width$1=match$9[2],box_type$0=match$9[1]; - switch(box_type$0) - {case 0:return break_same_line(state,fits); - case 1:return break_new_line(state,breaks,width$1); - case 2:return break_new_line(state,breaks,width$1); - case 3: - return state[9] < (size$0 + caml_ml_string_length(before) | 0) - ?break_new_line(state,breaks,width$1) - :break_same_line(state,fits); - case 4: - return state[11] - ?break_same_line(state,fits) - :state[9] < (size$0 + caml_ml_string_length(before) | 0) - ?break_new_line(state,breaks,width$1) - :((state[6] - width$1 | 0) + off | 0) < state[10] - ?break_new_line(state,breaks,width$1) - :break_same_line(state,fits); - default:return break_same_line(state,fits)}} - return 0; + return break_new_line(state, breaks, width$1); case 2: - var - off$0=param[2], - n=param[1], - insertion_point=state[6] - state[9] | 0, - match$10=top_opt(state[3]); - if(match$10) - {var match$11=match$10[1],tabs$0=match$11[1],_mA_=tabs$0[1]; - if(_mA_) - {var first=_mA_[1],param$0=tabs$0[1]; - for(;;) - {if(param$0) - {var tail=param$0[2],head=param$0[1]; - if(! (insertion_point <= head)){var param$0=tail;continue} - var _mB_=head} - else - var _mB_=first; - var tab=_mB_; - break}} - else - var tab=insertion_point; - var offset=tab - insertion_point | 0; - return 0 <= offset - ?break_same_line(state,[0,cst$69,offset + n | 0,cst$68]) - :break_new_line - (state,[0,cst$71,tab + off$0 | 0,cst$70],state[6])} - return 0; + return break_new_line(state, breaks, width$1); case 3: - var - ty=param[2], - off$1=param[1], - insertion_point$0=state[6] - state[9] | 0; - if(state[8] < insertion_point$0) - {var match=top_opt(state[2]); - if(match) - {var match$0=match[1],width=match$0[2],box_type=match$0[1]; - if(state[9] < width && ! (3 < box_type - 1 >>> 0)) - break_line(state,width)} - else - pp_output_newline(state)} - var - width$2=state[9] - off$1 | 0, - box_type$1=1 === ty?1:state[9] < size$0?ty:5; - return push([0,box_type$1,width$2],state[2]); - case 4:var tbox=param[1];return push(tbox,state[3]); - default: - var tag_name$0=param[1],marker$0=caml_call1(state[24],tag_name$0); - pp_output_string(state,marker$0); - return push(tag_name$0,state[5])}} - function advance_left(state) - {for(;;) - {var match=peek_opt(state[28]); - if(match) - {var - match$0=match[1], - size=match$0[1], - length=match$0[3], - token=match$0[2], - pending_count=state[13] - state[12] | 0, - _mx_=0 <= size?1:0, - _my_=_mx_ || (state[9] <= pending_count?1:0); - if(_my_) - {take$0(state[28]); - var size$0=0 <= size?size:pp_infinity; - format_pp_token(state,size$0,token); - state[12] = length + state[12] | 0; - continue} - return _my_} - return 0}} - function enqueue_advance(state,tok) - {pp_enqueue(state,tok);return advance_left(state)} - function enqueue_string_as(state,size,s) - {return enqueue_advance(state,[0,size,[0,s],size])} - function initialize_scan_stack(stack) - {clear(stack); - var queue_elem=[0,unknown,_ck_,0]; - return push([0,-1,queue_elem],stack)} - function set_size(state,ty) - {var match=top_opt(state[1]); - if(match) - {var - match$0=match[1], - queue_elem=match$0[2], - left_total=match$0[1], - _ms_=queue_elem[1]; - if(left_total < state[12])return initialize_scan_stack(state[1]); - var _mt_=queue_elem[2]; - if(typeof _mt_ !== "number") - switch(_mt_[0]) - {case 3: - var - _mv_=1 - ty, - _mw_= - _mv_ - ?(queue_elem[1] = state[13] + _ms_ | 0,pop_opt(state[1]),0) - :_mv_; - return _mw_; - case 1: - case 2: - var - _mu_= - ty?(queue_elem[1] = state[13] + _ms_ | 0,pop_opt(state[1]),0):ty; - return _mu_ - } - return 0} - return 0} - function scan_push(state,b,token) - {pp_enqueue(state,token); - if(b)set_size(state,1); - var elem=[0,state[13],token]; - return push(elem,state[1])} - function pp_open_box_gen(state,indent,br_ty) - {state[14] = state[14] + 1 | 0; - if(state[14] < state[15]) - {var size=- state[13] | 0,elem=[0,size,[3,indent,br_ty],0]; - return scan_push(state,0,elem)} - var _mq_=state[14] === state[15]?1:0; - if(_mq_) - {var _mr_=state[16]; - return enqueue_string_as(state,caml_ml_string_length(_mr_),_mr_)} - return _mq_} - function pp_close_box(state,param) - {var _mo_=1 < state[14]?1:0; - if(_mo_) - {if(state[14] < state[15]) - {pp_enqueue(state,[0,size,1,0]);set_size(state,1);set_size(state,0)} - state[14] = state[14] - 1 | 0; - var _mp_=0} - else - var _mp_=_mo_; - return _mp_} - function pp_open_stag(state,tag_name) - {if(state[22]){push(tag_name,state[4]);caml_call1(state[26],tag_name)} - var _mn_=state[23]; - if(_mn_) - {var token=[5,tag_name];return pp_enqueue(state,[0,size,token,0])} - return _mn_} - function pp_close_stag(state,param) - {if(state[23])pp_enqueue(state,[0,size,5,0]); - var _ml_=state[22]; - if(_ml_) - {var match=pop_opt(state[4]); - if(match){var tag_name=match[1];return caml_call1(state[27],tag_name)} - var _mm_=0} - else - var _mm_=_ml_; - return _mm_} - function pp_open_tag(state,s){return pp_open_stag(state,[0,String_tag,s])} - function pp_close_tag(state,param){return pp_close_stag(state,0)} - function pp_set_print_tags(state,b){state[22] = b;return 0} - function pp_set_mark_tags(state,b){state[23] = b;return 0} - function pp_get_print_tags(state,param){return state[22]} - function pp_get_mark_tags(state,param){return state[23]} - function pp_set_tags(state,b) - {pp_set_print_tags(state,b);return pp_set_mark_tags(state,b)} - function pp_get_formatter_stag_function(state,param) - {return [0,state[24],state[25],state[26],state[27]]} - function pp_set_formatter_stag_function(state,param) - {var pct=param[4],pot=param[3],mct=param[2],mot=param[1]; - state[24] = mot; - state[25] = mct; - state[26] = pot; - state[27] = pct; - return 0} - function pp_rinit(state) - {state[12] = 1; - state[13] = 1; - clear$0(state[28]); - initialize_scan_stack(state[1]); - clear(state[2]); - clear(state[3]); - clear(state[4]); - clear(state[5]); - state[10] = 0; - state[14] = 0; - state[9] = state[6]; - return pp_open_box_gen(state,0,3)} - function pp_flush_queue(state,b) - {var _mk_=state[4]; - iter$7(function(param){return pp_close_tag(state,0)},_mk_); - for(;;) - {if(1 < state[14]){pp_close_box(state,0);continue} - state[13] = pp_infinity; - advance_left(state); - if(b)pp_output_newline(state); - return pp_rinit(state)}} - function pp_print_as_size(state,size,s) - {var _mj_=state[14] < state[15]?1:0; - return _mj_?enqueue_string_as(state,size,s):_mj_} - function pp_print_as(state,isize,s) - {return pp_print_as_size(state,isize,s)} - function pp_print_string(state,s) - {return pp_print_as(state,caml_ml_string_length(s),s)} - function pp_print_bytes(state,s) - {return pp_print_as(state,caml_ml_bytes_length(s),of_bytes(s))} - function pp_print_int(state,i) - {return pp_print_string(state,caml_string_of_jsbytes("" + i))} - function pp_print_float(state,f) - {return pp_print_string(state,to_string(f))} - function pp_print_bool(state,b) - {return pp_print_string(state,string_of_bool(b))} - function pp_print_char(state,c){return pp_print_as(state,1,make$1(1,c))} - function pp_open_hbox(state,param){return pp_open_box_gen(state,0,0)} - function pp_open_vbox(state,indent) - {return pp_open_box_gen(state,indent,1)} - function pp_open_hvbox(state,indent) - {return pp_open_box_gen(state,indent,2)} - function pp_open_hovbox(state,indent) - {return pp_open_box_gen(state,indent,3)} - function pp_open_box(state,indent){return pp_open_box_gen(state,indent,4)} - function pp_print_newline(state,param) - {pp_flush_queue(state,1);return caml_call1(state[18],0)} - function pp_print_flush(state,param) - {pp_flush_queue(state,0);return caml_call1(state[18],0)} - function pp_force_newline(state,param) - {var _mi_=state[14] < state[15]?1:0; - return _mi_?enqueue_advance(state,[0,size,3,0]):_mi_} - function pp_print_if_newline(state,param) - {var _mh_=state[14] < state[15]?1:0; - return _mh_?enqueue_advance(state,[0,size,4,0]):_mh_} - function pp_print_custom_break(state,fits,breaks) - {var - after=fits[3], - width=fits[2], - before=fits[1], - _mg_=state[14] < state[15]?1:0; - if(_mg_) - {var - size=- state[13] | 0, - token=[1,fits,breaks], - length= - (caml_ml_string_length(before) + width | 0) - + - caml_ml_string_length(after) - | - 0, - elem=[0,size,token,length]; - return scan_push(state,1,elem)} - return _mg_} - function pp_print_break(state,width,offset) - {return pp_print_custom_break - (state,[0,cst$75,width,cst$74],[0,cst$73,offset,cst$72])} - function pp_print_space(state,param){return pp_print_break(state,1,0)} - function pp_print_cut(state,param){return pp_print_break(state,0,0)} - function pp_open_tbox(state,param) - {state[14] = state[14] + 1 | 0; - var _mf_=state[14] < state[15]?1:0; - if(_mf_) - {var elem=[0,size,[4,[0,[0,0]]],0];return enqueue_advance(state,elem)} - return _mf_} - function pp_close_tbox(state,param) - {var _mc_=1 < state[14]?1:0; - if(_mc_) - {var _md_=state[14] < state[15]?1:0; - if(_md_) - {var elem=[0,size,2,0]; - enqueue_advance(state,elem); - state[14] = state[14] - 1 | 0; - var _me_=0} + return state[9] < (size$0 + caml_ml_string_length(before) | 0) + ? break_new_line(state, breaks, width$1) + : break_same_line(state, fits); + case 4: + return state[11] + ? break_same_line(state, fits) + : state + [9] + < (size$0 + caml_ml_string_length(before) | 0) + ? break_new_line(state, breaks, width$1) + : ((state + [6] + - width$1 + | 0) + + off + | 0) + < state[10] + ? break_new_line(state, breaks, width$1) + : break_same_line(state, fits); + default: return break_same_line(state, fits); + } + case 2: + var + off$0 = param[2], + n = param[1], + insertion_point = state[6] - state[9] | 0, + match$8 = caml_call1(Stdlib_Stack[7], state[3]); + if(! match$8) return 0; + var tabs$0 = match$8[1][1], match$9 = tabs$0[1]; + if(match$9){ + var first = match$9[1], param$0 = tabs$0[1]; + for(;;){ + if(param$0){ + var tail = param$0[2], head = param$0[1]; + if(insertion_point > head){var param$0 = tail; continue;} + var _bW_ = head; + } + else + var _bW_ = first; + var tab = _bW_; + break; + } + } + else + var tab = insertion_point; + var offset = tab - insertion_point | 0; + return 0 <= offset + ? break_same_line(state, [0, cst$0, offset + n | 0, cst]) + : break_new_line + (state, [0, cst$2, tab + off$0 | 0, cst$1], state[6]); + case 3: + var + ty = param[2], + off$1 = param[1], + insertion_point$0 = state[6] - state[9] | 0; + if(state[8] < insertion_point$0){ + var match = caml_call1(Stdlib_Stack[7], state[2]); + if(match){ + var match$0 = match[1], width = match$0[2], box_type = match$0[1]; + if(state[9] < width && 3 >= box_type - 1 >>> 0) + break_line(state, width); + } else - var _me_=_md_} - else - var _me_=_mc_; - return _me_} - function pp_print_tbreak(state,width,offset) - {var _mb_=state[14] < state[15]?1:0; - if(_mb_) - {var size=- state[13] | 0,elem=[0,size,[2,width,offset],width]; - return scan_push(state,1,elem)} - return _mb_} - function pp_print_tab(state,param){return pp_print_tbreak(state,0,0)} - function pp_set_tab(state,param) - {var _ma_=state[14] < state[15]?1:0; - if(_ma_){var elem=[0,size,0,0];return enqueue_advance(state,elem)} - return _ma_} - function pp_set_max_boxes(state,n) - {var _l__=1 < n?1:0,_l$_=_l__?(state[15] = n,0):_l__;return _l$_} - function pp_get_max_boxes(state,param){return state[15]} - function pp_over_max_boxes(state,param) - {return state[14] === state[15]?1:0} - function pp_set_ellipsis_text(state,s){state[16] = s;return 0} - function pp_get_ellipsis_text(state,param){return state[16]} - function pp_limit(n){return n < 1000000010?n:1000000009} - function pp_set_max_indent(state,n$0) - {var _l9_=1 < n$0?1:0; - if(_l9_) - {var n$1=state[6] - n$0 | 0,_l8_=1 <= n$1?1:0; - if(_l8_) - {var n=pp_limit(n$1); - state[7] = n; - state[8] = state[6] - state[7] | 0; - return pp_rinit(state)} - return _l8_} - return _l9_} - function pp_get_max_indent(state,param){return state[8]} - function pp_set_margin(state,n) - {var _l7_=1 <= n?1:0; - if(_l7_) - {var n$0=pp_limit(n); - state[6] = n$0; + pp_output_newline(state); + } + var + width$2 = state[9] - off$1 | 0, + box_type$1 = 1 === ty ? 1 : state[9] < size$0 ? ty : 5; + return caml_call2(Stdlib_Stack[3], [0, box_type$1, width$2], state[2]); + case 4: + var tbox = param[1]; + return caml_call2(Stdlib_Stack[3], tbox, state[3]); + default: + var + tag_name$0 = param[1], + marker$0 = caml_call1(state[24], tag_name$0); + pp_output_string(state, marker$0); + return caml_call2(Stdlib_Stack[3], tag_name$0, state[5]); + } + } + function advance_left(state){ + for(;;){ + var match = caml_call1(Stdlib_Queue[9], state[28]); + if(! match) return 0; + var + match$0 = match[1], + size = match$0[1], + length = match$0[3], + token = match$0[2], + pending_count = state[13] - state[12] | 0, + _bT_ = 0 <= size ? 1 : 0, + _bU_ = _bT_ || (state[9] <= pending_count ? 1 : 0); + if(! _bU_) return _bU_; + caml_call1(Stdlib_Queue[5], state[28]); + var size$0 = 0 <= size ? size : pp_infinity; + format_pp_token(state, size$0, token); + state[12] = length + state[12] | 0; + } + } + function enqueue_advance(state, tok){ + pp_enqueue(state, tok); + return advance_left(state); + } + function enqueue_string_as(state, size, s){ + return enqueue_advance(state, [0, size, [0, s], size]); + } + function initialize_scan_stack(stack){ + caml_call1(Stdlib_Stack[8], stack); + var queue_elem = [0, unknown, _b_, 0]; + return caml_call2(Stdlib_Stack[3], [0, -1, queue_elem], stack); + } + function set_size(state, ty){ + var match = caml_call1(Stdlib_Stack[7], state[1]); + if(! match) return 0; + var + match$0 = match[1], + queue_elem = match$0[2], + left_total = match$0[1], + size = queue_elem[1]; + if(left_total < state[12]) return initialize_scan_stack(state[1]); + var _bP_ = queue_elem[2]; + if(typeof _bP_ !== "number") + switch(_bP_[0]){ + case 3: var - new_max_indent= - state[8] <= state[6] - ?state[8] - :max$1(max$1(state[6] - state[7] | 0,state[6] / 2 | 0),1); - return pp_set_max_indent(state,new_max_indent)} - return _l7_} - function validate_geometry(param) - {var margin=param[2],max_indent=param[1]; - return 2 <= max_indent?margin <= max_indent?_cl_:_cm_:_cn_} - function check_geometry(geometry) - {var match=validate_geometry(geometry);return 0 === match[0]?1:0} - function pp_get_margin(state,param){return state[6]} - function pp_set_full_geometry(state,param) - {var margin=param[2],max_indent=param[1]; - pp_set_margin(state,margin); - pp_set_max_indent(state,max_indent); - return 0} - function pp_set_geometry(state,max_indent,margin) - {var geometry=[0,max_indent,margin],match=validate_geometry(geometry); - if(0 === match[0])return pp_set_full_geometry(state,geometry); - var msg=match[1]; - throw [0,Invalid_argument,cat(cst_Format_pp_set_geometry,msg)]} - function pp_safe_set_geometry(state,max_indent,margin) - {var geometry=[0,max_indent,margin],match=validate_geometry(geometry); - return 0 === match[0]?pp_set_full_geometry(state,geometry):0} - function pp_get_geometry(state,param){return [0,state[8],state[6]]} - function pp_update_geometry(state,update) - {var geometry=pp_get_geometry(state,0); - return pp_set_full_geometry(state,caml_call1(update,geometry))} - function pp_set_formatter_out_functions(state,param) - {var j=param[5],i=param[4],h=param[3],g=param[2],f=param[1]; - state[17] = f; - state[18] = g; - state[19] = h; - state[20] = i; - state[21] = j; - return 0} - function pp_get_formatter_out_functions(state,param) - {return [0,state[17],state[18],state[19],state[20],state[21]]} - function pp_set_formatter_output_functi(state,f,g) - {state[17] = f;state[18] = g;return 0} - function pp_get_formatter_output_functi(state,param) - {return [0,state[17],state[18]]} - function display_newline(state,param) - {return caml_call3(state[17],cst$76,0,1)} - var blank_line=make$1(80,32); - function display_indent(state,n) - {var n$0=n; - for(;;) - {var _l6_=0 < n$0?1:0; - if(_l6_) - {if(80 < n$0) - {caml_call3(state[17],blank_line,0,80); - var n$1=n$0 - 80 | 0,n$0=n$1; - continue} - return caml_call3(state[17],blank_line,0,n$0)} - return _l6_}} - function pp_set_formatter_out_channel(state,oc) - {state[17] - = - function(_l3_,_l4_,_l5_){return output_substring(oc,_l3_,_l4_,_l5_)}; - state[18] = function(param){return caml_ml_flush(oc)}; - state[19] = function(_l2_){return display_newline(state,_l2_)}; - state[20] = function(_l1_){return display_indent(state,_l1_)}; - state[21] = function(_l0_){return display_indent(state,_l0_)}; - return 0} - function default_pp_mark_open_tag(param) - {if(param[1] === String_tag) - {var s=param[2];return cat(cst$78,cat(s,cst$77))} - return cst$79} - function default_pp_mark_close_tag(param) - {if(param[1] === String_tag) - {var s=param[2];return cat(cst$81,cat(s,cst$80))} - return cst$82} - function default_pp_print_open_tag(_lZ_){return 0} - function default_pp_print_close_tag(_lY_){return 0} - function pp_make_formatter(f,g,h,i,j) - {var pp_queue=create$1(0),sys_tok=[0,unknown,_co_,0]; - add(sys_tok,pp_queue); - var scan_stack=create$0(0); - initialize_scan_stack(scan_stack); - push([0,1,sys_tok],scan_stack); - var _lV_=create$0(0),_lW_=create$0(0),_lX_=create$0(0); - return [0, - scan_stack, - create$0(0), - _lX_, - _lW_, - _lV_, - 78, - 10, - 68, - 78, - 0, - 1, - 1, - 1, - 1, - max_int, - cst$83, - f, - g, - h, - i, - j, - 0, - 0, - default_pp_mark_open_tag, - default_pp_mark_close_tag, - default_pp_print_open_tag, - default_pp_print_close_tag, - pp_queue]} - function formatter_of_out_functions(out_funs) - {return pp_make_formatter - (out_funs[1],out_funs[2],out_funs[3],out_funs[4],out_funs[5])} - function make_formatter(output,flush) - {function _lN_(_lU_){return 0} - function _lO_(_lT_){return 0} - var - ppf= - pp_make_formatter(output,flush,function(_lS_){return 0},_lO_,_lN_); - ppf[19] = function(_lR_){return display_newline(ppf,_lR_)}; - ppf[20] = function(_lQ_){return display_indent(ppf,_lQ_)}; - ppf[21] = function(_lP_){return display_indent(ppf,_lP_)}; - return ppf} - function formatter_of_out_channel(oc) - {function _lJ_(param){return caml_ml_flush(oc)} - return make_formatter - (function(_lK_,_lL_,_lM_) - {return output_substring(oc,_lK_,_lL_,_lM_)}, - _lJ_)} - function formatter_of_buffer(b) - {function _lE_(_lI_){return 0} - return make_formatter - (function(_lF_,_lG_,_lH_) - {return add_substring(b,_lF_,_lG_,_lH_)}, - _lE_)} - var pp_buffer_size=512; - function pp_make_buffer(param){return create$2(pp_buffer_size)} + _bR_ = 1 - ty, + _bS_ = + _bR_ + ? (queue_elem + [1] + = state[13] + size | 0, + caml_call1(Stdlib_Stack[5], state[1]), + 0) + : _bR_; + return _bS_; + case 1: + case 2: + var + _bQ_ = + ty + ? (queue_elem + [1] + = state[13] + size | 0, + caml_call1(Stdlib_Stack[5], state[1]), + 0) + : ty; + return _bQ_; + } + return 0; + } + function scan_push(state, b, token){ + pp_enqueue(state, token); + if(b) set_size(state, 1); + var elem = [0, state[13], token]; + return caml_call2(Stdlib_Stack[3], elem, state[1]); + } + function pp_open_box_gen(state, indent, br_ty){ + state[14] = state[14] + 1 | 0; + if(state[14] < state[15]){ + var size = - state[13] | 0, elem = [0, size, [3, indent, br_ty], 0]; + return scan_push(state, 0, elem); + } + var _bO_ = state[14] === state[15] ? 1 : 0; + if(! _bO_) return _bO_; + var s = state[16]; + return enqueue_string_as(state, caml_ml_string_length(s), s); + } + function pp_close_box(state, param){ + var _bM_ = 1 < state[14] ? 1 : 0; + if(_bM_){ + if(state[14] < state[15]){ + pp_enqueue(state, [0, zero, 1, 0]); + set_size(state, 1); + set_size(state, 0); + } + state[14] = state[14] - 1 | 0; + var _bN_ = 0; + } + else + var _bN_ = _bM_; + return _bN_; + } + function pp_open_stag(state, tag_name){ + if(state[22]){ + caml_call2(Stdlib_Stack[3], tag_name, state[4]); + caml_call1(state[26], tag_name); + } + var _bL_ = state[23]; + if(! _bL_) return _bL_; + var token = [5, tag_name]; + return pp_enqueue(state, [0, zero, token, 0]); + } + function pp_close_stag(state, param){ + if(state[23]) pp_enqueue(state, [0, zero, 5, 0]); + var _bJ_ = state[22]; + if(_bJ_){ + var match = caml_call1(Stdlib_Stack[5], state[4]); + if(match){ + var tag_name = match[1]; + return caml_call1(state[27], tag_name); + } + var _bK_ = 0; + } + else + var _bK_ = _bJ_; + return _bK_; + } + function pp_open_tag(state, s){ + return pp_open_stag(state, [0, String_tag, s]); + } + function pp_close_tag(state, param){return pp_close_stag(state, 0);} + function pp_set_print_tags(state, b){state[22] = b; return 0;} + function pp_set_mark_tags(state, b){state[23] = b; return 0;} + function pp_get_print_tags(state, param){return state[22];} + function pp_get_mark_tags(state, param){return state[23];} + function pp_set_tags(state, b){ + pp_set_print_tags(state, b); + return pp_set_mark_tags(state, b); + } + function pp_get_formatter_stag_function(state, param){ + return [0, state[24], state[25], state[26], state[27]]; + } + function pp_set_formatter_stag_function(state, param){ + var pct = param[4], pot = param[3], mct = param[2], mot = param[1]; + state[24] = mot; + state[25] = mct; + state[26] = pot; + state[27] = pct; + return 0; + } + function pp_rinit(state){ + state[12] = 1; + state[13] = 1; + caml_call1(Stdlib_Queue[11], state[28]); + initialize_scan_stack(state[1]); + caml_call1(Stdlib_Stack[8], state[2]); + caml_call1(Stdlib_Stack[8], state[3]); + caml_call1(Stdlib_Stack[8], state[4]); + caml_call1(Stdlib_Stack[8], state[5]); + state[10] = 0; + state[14] = 0; + state[9] = state[6]; + return pp_open_box_gen(state, 0, 3); + } + function pp_flush_queue(state, b){ + var _bH_ = state[4]; + function _bI_(param){return pp_close_tag(state, 0);} + caml_call2(Stdlib_Stack[12], _bI_, _bH_); + for(;;){ + if(1 < state[14]){pp_close_box(state, 0); continue;} + state[13] = pp_infinity; + advance_left(state); + if(b) pp_output_newline(state); + return pp_rinit(state); + } + } + function pp_print_as_size(state, size, s){ + var _bG_ = state[14] < state[15] ? 1 : 0; + return _bG_ ? enqueue_string_as(state, size, s) : _bG_; + } + function pp_print_as(state, isize, s){ + return pp_print_as_size(state, isize, s); + } + function pp_print_string(state, s){ + return pp_print_as(state, caml_ml_string_length(s), s); + } + function pp_print_bytes(state, s){ + return pp_print_as + (state, + runtime.caml_ml_bytes_length(s), + caml_call1(Stdlib_Bytes[6], s)); + } + function pp_print_int(state, i){ + return pp_print_string(state, caml_call1(Stdlib_Int[12], i)); + } + function pp_print_float(state, f){ + return pp_print_string(state, caml_call1(Stdlib[35], f)); + } + function pp_print_bool(state, b){ + return pp_print_string(state, caml_call1(Stdlib[30], b)); + } + function pp_print_char(state, c){ + return pp_print_as(state, 1, caml_call2(Stdlib_String[1], 1, c)); + } + function pp_open_hbox(state, param){return pp_open_box_gen(state, 0, 0);} + function pp_open_vbox(state, indent){ + return pp_open_box_gen(state, indent, 1); + } + function pp_open_hvbox(state, indent){ + return pp_open_box_gen(state, indent, 2); + } + function pp_open_hovbox(state, indent){ + return pp_open_box_gen(state, indent, 3); + } + function pp_open_box(state, indent){ + return pp_open_box_gen(state, indent, 4); + } + function pp_print_newline(state, param){ + pp_flush_queue(state, 1); + return caml_call1(state[18], 0); + } + function pp_print_flush(state, param){ + pp_flush_queue(state, 0); + return caml_call1(state[18], 0); + } + function pp_force_newline(state, param){ + var _bF_ = state[14] < state[15] ? 1 : 0; + return _bF_ ? enqueue_advance(state, [0, zero, 3, 0]) : _bF_; + } + function pp_print_if_newline(state, param){ + var _bE_ = state[14] < state[15] ? 1 : 0; + return _bE_ ? enqueue_advance(state, [0, zero, 4, 0]) : _bE_; + } + function pp_print_custom_break(state, fits, breaks){ var - stdbuf=pp_make_buffer(0), - std_formatter=formatter_of_out_channel(stdout), - err_formatter=formatter_of_out_channel(stderr), - str_formatter=formatter_of_buffer(stdbuf); - function flush_buffer_formatter(buf,ppf) - {pp_flush_queue(ppf,0);var s=contents(buf);reset(buf);return s} - function flush_str_formatter(param) - {return flush_buffer_formatter(stdbuf,str_formatter)} - function make_symbolic_output_buffer(param){return [0,0]} - function clear_symbolic_output_buffer(sob){sob[1] = 0;return 0} - function get_symbolic_output_buffer(sob){return rev(sob[1])} - function flush_symbolic_output_buffer(sob) - {var items=get_symbolic_output_buffer(sob); - clear_symbolic_output_buffer(sob); - return items} - function add_symbolic_output_item(sob,item) - {sob[1] = [0,item,sob[1]];return 0} - function formatter_of_symbolic_output_b(sob) - {function f(s,i,n){return add_symbolic_output_item(sob,[0,sub$0(s,i,n)])} - function g(_lD_){return add_symbolic_output_item(sob,0)} - function h(_lC_){return add_symbolic_output_item(sob,1)} - function i(n){return add_symbolic_output_item(sob,[1,n])} - function j(n){return add_symbolic_output_item(sob,[2,n])} - return pp_make_formatter(f,g,h,i,j)} - function open_hbox(_lB_){return pp_open_hbox(std_formatter,_lB_)} - function open_vbox(_lA_){return pp_open_vbox(std_formatter,_lA_)} - function open_hvbox(_lz_){return pp_open_hvbox(std_formatter,_lz_)} - function open_hovbox(_ly_){return pp_open_hovbox(std_formatter,_ly_)} - function open_box(_lx_){return pp_open_box(std_formatter,_lx_)} - function close_box(_lw_){return pp_close_box(std_formatter,_lw_)} - function open_tag(_lv_){return pp_open_tag(std_formatter,_lv_)} - function close_tag(_lu_){return pp_close_tag(std_formatter,_lu_)} - function open_stag(_lt_){return pp_open_stag(std_formatter,_lt_)} - function close_stag(_ls_){return pp_close_stag(std_formatter,_ls_)} - function print_as(_lq_,_lr_){return pp_print_as(std_formatter,_lq_,_lr_)} - function print_string$0(_lp_){return pp_print_string(std_formatter,_lp_)} - function print_bytes$0(_lo_){return pp_print_bytes(std_formatter,_lo_)} - function print_int$0(_ln_){return pp_print_int(std_formatter,_ln_)} - function print_float$0(_lm_){return pp_print_float(std_formatter,_lm_)} - function print_char$0(_ll_){return pp_print_char(std_formatter,_ll_)} - function print_bool(_lk_){return pp_print_bool(std_formatter,_lk_)} - function print_break(_li_,_lj_) - {return pp_print_break(std_formatter,_li_,_lj_)} - function print_cut(_lh_){return pp_print_cut(std_formatter,_lh_)} - function print_space(_lg_){return pp_print_space(std_formatter,_lg_)} - function force_newline(_lf_){return pp_force_newline(std_formatter,_lf_)} - function print_flush(_le_){return pp_print_flush(std_formatter,_le_)} - function print_newline$0(_ld_) - {return pp_print_newline(std_formatter,_ld_)} - function print_if_newline(_lc_) - {return pp_print_if_newline(std_formatter,_lc_)} - function open_tbox(_lb_){return pp_open_tbox(std_formatter,_lb_)} - function close_tbox(_la_){return pp_close_tbox(std_formatter,_la_)} - function print_tbreak(_k__,_k$_) - {return pp_print_tbreak(std_formatter,_k__,_k$_)} - function set_tab(_k9_){return pp_set_tab(std_formatter,_k9_)} - function print_tab(_k8_){return pp_print_tab(std_formatter,_k8_)} - function set_margin(_k7_){return pp_set_margin(std_formatter,_k7_)} - function get_margin(_k6_){return std_formatter[6]} - function set_max_indent(_k5_) - {return pp_set_max_indent(std_formatter,_k5_)} - function get_max_indent(_k4_){return std_formatter[8]} - function set_geometry(_k2_,_k3_) - {return pp_set_geometry(std_formatter,_k2_,_k3_)} - function safe_set_geometry(_k0_,_k1_) - {return pp_safe_set_geometry(std_formatter,_k0_,_k1_)} - function get_geometry(_kZ_){return pp_get_geometry(std_formatter,_kZ_)} - function update_geometry(_kY_) - {return pp_update_geometry(std_formatter,_kY_)} - function set_max_boxes(_kX_){return pp_set_max_boxes(std_formatter,_kX_)} - function get_max_boxes(_kW_){return std_formatter[15]} - function over_max_boxes(_kV_) - {return pp_over_max_boxes(std_formatter,_kV_)} - function set_ellipsis_text(_kU_) - {return pp_set_ellipsis_text(std_formatter,_kU_)} - function get_ellipsis_text(_kT_){return std_formatter[16]} - function set_formatter_out_channel(_kS_) - {return pp_set_formatter_out_channel(std_formatter,_kS_)} - function set_formatter_out_functions(_kR_) - {return pp_set_formatter_out_functions(std_formatter,_kR_)} - function get_formatter_out_functions(_kQ_) - {return pp_get_formatter_out_functions(std_formatter,_kQ_)} - function set_formatter_output_functions(_kO_,_kP_) - {return pp_set_formatter_output_functi(std_formatter,_kO_,_kP_)} - function get_formatter_output_functions(_kN_) - {return pp_get_formatter_output_functi(std_formatter,_kN_)} - function set_formatter_stag_functions(_kM_) - {return pp_set_formatter_stag_function(std_formatter,_kM_)} - function get_formatter_stag_functions(_kL_) - {return pp_get_formatter_stag_function(std_formatter,_kL_)} - function set_print_tags(_kK_) - {return pp_set_print_tags(std_formatter,_kK_)} - function get_print_tags(_kJ_){return std_formatter[22]} - function set_mark_tags(_kI_){return pp_set_mark_tags(std_formatter,_kI_)} - function get_mark_tags(_kH_){return std_formatter[23]} - function set_tags(_kG_){return pp_set_tags(std_formatter,_kG_)} - function pp_print_list(opt,pp_v,ppf,param) - {var opt$0=opt,param$0=param; - for(;;) - {if(opt$0)var sth=opt$0[1],pp_sep=sth;else var pp_sep=pp_print_cut; - if(param$0) - {var _kF_=param$0[1]; - if(param$0[2]) - {var vs=param$0[2]; - caml_call2(pp_v,ppf,_kF_); - caml_call2(pp_sep,ppf,0); - var opt$1=[0,pp_sep],opt$0=opt$1,param$0=vs; - continue} - return caml_call2(pp_v,ppf,_kF_)} - return 0}} - function pp_print_seq(opt,pp_v,ppf,seq$1) - {if(opt)var sth=opt[1],pp_sep=sth;else var pp_sep=pp_print_cut; - var match$0=caml_call1(seq$1,0); - if(match$0) - {var seq$2=match$0[2],v$0=match$0[1]; - caml_call2(pp_v,ppf,v$0); - var seq=seq$2; - for(;;) - {var match=caml_call1(seq,0); - if(match) - {var seq$0=match[2],v=match[1]; - caml_call2(pp_sep,ppf,0); - caml_call2(pp_v,ppf,v); - var seq=seq$0; - continue} - return 0}} - return 0} - function pp_print_text(ppf,s) - {var len=caml_ml_string_length(s),left=[0,0],right=[0,0]; - function flush(param) - {pp_print_string(ppf,sub$0(s,left[1],right[1] - left[1] | 0)); - right[1]++; - left[1] = right[1]; - return 0} - for(;;) - {if(right[1] !== len) - {var match=caml_string_get(s,right[1]); - if(10 === match) - {flush(0);pp_force_newline(ppf,0)} - else - if(32 === match){flush(0);pp_print_space(ppf,0)}else right[1]++; - continue} - var _kE_=left[1] !== len?1:0; - return _kE_?flush(0):_kE_}} - function pp_print_option(opt,pp_v,ppf,param) - {if(opt) - var sth=opt[1],none=sth; - else - var none=function(param,_kD_){return 0}; - if(param){var v=param[1];return caml_call2(pp_v,ppf,v)} - return caml_call2(none,ppf,0)} - function pp_print_result(ok,error,ppf,param) - {if(0 === param[0]){var v=param[1];return caml_call2(ok,ppf,v)} - var e=param[1]; - return caml_call2(error,ppf,e)} - function pp_print_either(left,right,ppf,param) - {if(0 === param[0]){var l=param[1];return caml_call2(left,ppf,l)} - var r=param[1]; - return caml_call2(right,ppf,r)} - function compute_tag(output,tag_acc) - {var buf=create$2(16),ppf=formatter_of_buffer(buf); - caml_call2(output,ppf,tag_acc); - pp_print_flush(ppf,0); - var len=buf[2]; - return 2 <= len?sub$3(buf,1,len - 2 | 0):contents(buf)} - function output_formatting_lit(ppf,fmting_lit) - {if(typeof fmting_lit === "number") - switch(fmting_lit) - {case 0:return pp_close_box(ppf,0); - case 1:return pp_close_tag(ppf,0); - case 2:return pp_print_flush(ppf,0); - case 3:return pp_force_newline(ppf,0); - case 4:return pp_print_newline(ppf,0); - case 5:return pp_print_char(ppf,64); - default:return pp_print_char(ppf,37)} - else - switch(fmting_lit[0]) - {case 0: - var offset=fmting_lit[3],width=fmting_lit[2]; - return pp_print_break(ppf,width,offset); - case 1:return 0; - default: - var c=fmting_lit[1]; - pp_print_char(ppf,64); - return pp_print_char(ppf,c)}} - function output_acc$0(ppf,acc) - {var switch$0=0; - if(typeof acc === "number") - return 0; - else - switch(acc[0]) - {case 0: - var f=acc[2],p=acc[1]; - output_acc$0(ppf,p); - return output_formatting_lit(ppf,f); - case 1: - var _kt_=acc[2],_ku_=acc[1]; - if(0 === _kt_[0]) - {var acc$0=_kt_[1]; - output_acc$0(ppf,_ku_); - return pp_open_stag - (ppf,[0,String_tag,compute_tag(output_acc$0,acc$0)])} - var acc$1=_kt_[1]; - output_acc$0(ppf,_ku_); - var - match=open_box_of_string(compute_tag(output_acc$0,acc$1)), - bty=match[2], - indent=match[1]; - return pp_open_box_gen(ppf,indent,bty); - case 2: - var _kv_=acc[1],switch$1=0; - if(typeof _kv_ !== "number" && 0 === _kv_[0]) - {var _kw_=_kv_[2],switch$2=0; - if(typeof _kw_ !== "number" && 1 === _kw_[0]) - {var s$0=acc[2],size=_kw_[2],p$1=_kv_[1]; - switch$1 = 1; - switch$2 = 1}} - if(! switch$1){var s=acc[2],p$0=_kv_;switch$0 = 2} - break; - case 3: - var _kx_=acc[1],switch$3=0; - if(typeof _kx_ !== "number" && 0 === _kx_[0]) - {var _ky_=_kx_[2],switch$4=0; - if(typeof _ky_ !== "number" && 1 === _ky_[0]) - {var c$0=acc[2],size$0=_ky_[2],p$3=_kx_[1]; - switch$0 = 1; - switch$3 = 1; - switch$4 = 1}} - if(! switch$3){var c=acc[2],p$2=_kx_;switch$0 = 3} - break; - case 4: - var _kz_=acc[1],switch$5=0; - if(typeof _kz_ !== "number" && 0 === _kz_[0]) - {var _kA_=_kz_[2],switch$6=0; - if(typeof _kA_ !== "number" && 1 === _kA_[0]) - {var s$0=acc[2],size=_kA_[2],p$1=_kz_[1]; - switch$5 = 1; - switch$6 = 1}} - if(! switch$5){var s=acc[2],p$0=_kz_;switch$0 = 2} - break; - case 5: - var _kB_=acc[1],switch$7=0; - if(typeof _kB_ === "number" || ! (0 === _kB_[0])) - switch$7 = 1; - else - {var _kC_=_kB_[2],switch$8=0; - if(typeof _kC_ !== "number" && 1 === _kC_[0]) - {var c$0=acc[2],size$0=_kC_[2],p$3=_kB_[1]; - switch$0 = 1; - switch$8 = 1} - if(! switch$8)switch$7 = 1} - if(switch$7){var c=acc[2],p$2=_kB_;switch$0 = 3} - break; - case 6: - var f$0=acc[2],p$4=acc[1]; - output_acc$0(ppf,p$4); - return caml_call1(f$0,ppf); - case 7: - var p$5=acc[1];output_acc$0(ppf,p$5);return pp_print_flush(ppf,0); - default: - var msg=acc[2],p$6=acc[1]; - output_acc$0(ppf,p$6); - return invalid_arg(msg)} - switch(switch$0) - {case 0:output_acc$0(ppf,p$1);return pp_print_as_size(ppf,size,s$0); - case 1: - output_acc$0(ppf,p$3); - return pp_print_as_size(ppf,size$0,make$1(1,c$0)); - case 2:output_acc$0(ppf,p$0);return pp_print_string(ppf,s); - default:output_acc$0(ppf,p$2);return pp_print_char(ppf,c)}} - function strput_acc$0(ppf,acc) - {var switch$0=0; - if(typeof acc === "number") - return 0; - else - switch(acc[0]) - {case 0: - var f=acc[2],p=acc[1]; - strput_acc$0(ppf,p); - return output_formatting_lit(ppf,f); - case 1: - var _kh_=acc[2],_ki_=acc[1]; - if(0 === _kh_[0]) - {var acc$0=_kh_[1]; - strput_acc$0(ppf,_ki_); - return pp_open_stag - (ppf,[0,String_tag,compute_tag(strput_acc$0,acc$0)])} - var acc$1=_kh_[1]; - strput_acc$0(ppf,_ki_); - var - match=open_box_of_string(compute_tag(strput_acc$0,acc$1)), - bty=match[2], - indent=match[1]; - return pp_open_box_gen(ppf,indent,bty); - case 2: - var _kj_=acc[1],switch$1=0; - if(typeof _kj_ !== "number" && 0 === _kj_[0]) - {var _kk_=_kj_[2],switch$2=0; - if(typeof _kk_ !== "number" && 1 === _kk_[0]) - {var s$0=acc[2],size=_kk_[2],p$1=_kj_[1]; - switch$1 = 1; - switch$2 = 1}} - if(! switch$1){var s=acc[2],p$0=_kj_;switch$0 = 2} - break; - case 3: - var _kl_=acc[1],switch$3=0; - if(typeof _kl_ !== "number" && 0 === _kl_[0]) - {var _km_=_kl_[2],switch$4=0; - if(typeof _km_ !== "number" && 1 === _km_[0]) - {var c$0=acc[2],size$0=_km_[2],p$3=_kl_[1]; - switch$0 = 1; - switch$3 = 1; - switch$4 = 1}} - if(! switch$3){var c=acc[2],p$2=_kl_;switch$0 = 3} - break; - case 4: - var _kn_=acc[1],switch$5=0; - if(typeof _kn_ !== "number" && 0 === _kn_[0]) - {var _ko_=_kn_[2],switch$6=0; - if(typeof _ko_ !== "number" && 1 === _ko_[0]) - {var s$0=acc[2],size=_ko_[2],p$1=_kn_[1]; - switch$5 = 1; - switch$6 = 1}} - if(! switch$5){var s=acc[2],p$0=_kn_;switch$0 = 2} - break; - case 5: - var _kp_=acc[1],switch$7=0; - if(typeof _kp_ === "number" || ! (0 === _kp_[0])) - switch$7 = 1; - else - {var _kq_=_kp_[2],switch$8=0; - if(typeof _kq_ !== "number" && 1 === _kq_[0]) - {var c$0=acc[2],size$0=_kq_[2],p$3=_kp_[1]; - switch$0 = 1; - switch$8 = 1} - if(! switch$8)switch$7 = 1} - if(switch$7){var c=acc[2],p$2=_kp_;switch$0 = 3} - break; - case 6: - var _kr_=acc[1]; - if(typeof _kr_ !== "number" && 0 === _kr_[0]) - {var _ks_=_kr_[2]; - if(typeof _ks_ !== "number" && 1 === _ks_[0]) - {var f$1=acc[2],size$1=_ks_[2],p$4=_kr_[1]; - strput_acc$0(ppf,p$4); - return pp_print_as_size(ppf,size$1,caml_call1(f$1,0))}} - var f$0=acc[2]; - strput_acc$0(ppf,_kr_); - return pp_print_string(ppf,caml_call1(f$0,0)); - case 7: - var p$5=acc[1];strput_acc$0(ppf,p$5);return pp_print_flush(ppf,0); - default: - var msg=acc[2],p$6=acc[1]; - strput_acc$0(ppf,p$6); - return invalid_arg(msg)} - switch(switch$0) - {case 0:strput_acc$0(ppf,p$1);return pp_print_as_size(ppf,size,s$0); - case 1: - strput_acc$0(ppf,p$3); - return pp_print_as_size(ppf,size$0,make$1(1,c$0)); - case 2:strput_acc$0(ppf,p$0);return pp_print_string(ppf,s); - default:strput_acc$0(ppf,p$2);return pp_print_char(ppf,c)}} - function kfprintf$0(k,ppf,param) - {var fmt=param[1],_kg_=0; - return make_printf - (function(acc){output_acc$0(ppf,acc);return caml_call1(k,ppf)}, - _kg_, - fmt)} - function ikfprintf$0(k,ppf,param) - {var fmt=param[1];return make_iprintf(k,ppf,fmt)} - function ifprintf$0(ppf,param) - {var fmt=param[1],_ke_=0; - return make_iprintf(function(_kf_){return 0},_ke_,fmt)} - function fprintf$0(ppf) - {function _kb_(_kd_){return 0} - return function(_kc_){return kfprintf$0(_kb_,ppf,_kc_)}} - function printf$0(fmt){return caml_call1(fprintf$0(std_formatter),fmt)} - function eprintf$0(fmt){return caml_call1(fprintf$0(err_formatter),fmt)} - function kdprintf(k,param) - {var fmt=param[1],_ka_=0; - return make_printf - (function(acc) - {return caml_call1 - (k,function(ppf){return output_acc$0(ppf,acc)})}, - _ka_, - fmt)} - function dprintf(fmt){return kdprintf(function(i){return i},fmt)} - function kprintf(k,param) - {var fmt=param[1],b=pp_make_buffer(0),ppf=formatter_of_buffer(b); - function k$0(acc) - {strput_acc$0(ppf,acc); - return caml_call1(k,flush_buffer_formatter(b,ppf))} - return make_printf(k$0,0,fmt)} - function sprintf$0(fmt){return kprintf(id$0,fmt)} - function kasprintf(k,param) - {var fmt=param[1],b=pp_make_buffer(0),ppf=formatter_of_buffer(b); - function k$0(acc) - {output_acc$0(ppf,acc); - return caml_call1(k,flush_buffer_formatter(b,ppf))} - return make_printf(k$0,0,fmt)} - function asprintf(fmt){return kasprintf(id$0,fmt)} - function flush_standard_formatters(param) - {pp_print_flush(std_formatter,0);return pp_print_flush(err_formatter,0)} - at_exit(flush_standard_formatters); - function pp_set_all_formatter_output_fu(state,f,g,h,i) - {pp_set_formatter_output_functi(state,f,g); - state[19] = h; - state[20] = i; - return 0} - function pp_get_all_formatter_output_fu(state,param) - {return [0,state[17],state[18],state[19],state[20]]} - function set_all_formatter_output_funct(_j8_,_j9_,_j__,_j$_) - {return pp_set_all_formatter_output_fu(std_formatter,_j8_,_j9_,_j__,_j$_)} - function get_all_formatter_output_funct(_j7_) - {return pp_get_all_formatter_output_fu(std_formatter,_j7_)} - function bprintf$0(b,param) - {var fmt=param[1],ppf=formatter_of_buffer(b); - function k(acc){output_acc$0(ppf,acc);return pp_flush_queue(ppf,0)} - return make_printf(k,0,fmt)} - function pp_set_formatter_tag_functions(state,param) - {var pct=param[4],pot=param[3],mct=param[2],mot=param[1]; - function stringify(f,e,param) - {if(param[1] === String_tag){var s=param[2];return caml_call1(f,s)} - return e} - state[24] = function(_j6_){return stringify(mot,cst$84,_j6_)}; - state[25] = function(_j5_){return stringify(mct,cst$85,_j5_)}; - var _j1_=0; - state[26] = function(_j4_){return stringify(pot,_j1_,_j4_)}; - var _j2_=0; - state[27] = function(_j3_){return stringify(pct,_j2_,_j3_)}; - return 0} - function pp_get_formatter_tag_functions(fmt,param) - {var funs=pp_get_formatter_stag_function(fmt,0); - function mark_open_tag(s){return caml_call1(funs[1],[0,String_tag,s])} - function mark_close_tag(s){return caml_call1(funs[2],[0,String_tag,s])} - function print_open_tag(s){return caml_call1(funs[3],[0,String_tag,s])} - function print_close_tag(s){return caml_call1(funs[4],[0,String_tag,s])} - return [0,mark_open_tag,mark_close_tag,print_open_tag,print_close_tag]} - function set_formatter_tag_functions(_j0_) - {return pp_set_formatter_tag_functions(std_formatter,_j0_)} - function get_formatter_tag_functions(_jZ_) - {return pp_get_formatter_tag_functions(std_formatter,_jZ_)} + after = fits[3], + width = fits[2], + before = fits[1], + _bD_ = state[14] < state[15] ? 1 : 0; + if(! _bD_) return _bD_; var - Stdlib_Format= + size = - state[13] | 0, + token = [1, fits, breaks], + length = + (caml_ml_string_length(before) + width | 0) + + caml_ml_string_length(after) + | 0, + elem = [0, size, token, length]; + return scan_push(state, 1, elem); + } + function pp_print_break(state, width, offset){ + return pp_print_custom_break + (state, [0, cst$6, width, cst$5], [0, cst$4, offset, cst$3]); + } + function pp_print_space(state, param){return pp_print_break(state, 1, 0);} + function pp_print_cut(state, param){return pp_print_break(state, 0, 0);} + function pp_open_tbox(state, param){ + state[14] = state[14] + 1 | 0; + var _bC_ = state[14] < state[15] ? 1 : 0; + if(! _bC_) return _bC_; + var elem = [0, zero, [4, [0, [0, 0]]], 0]; + return enqueue_advance(state, elem); + } + function pp_close_tbox(state, param){ + var _bz_ = 1 < state[14] ? 1 : 0; + if(_bz_){ + var _bA_ = state[14] < state[15] ? 1 : 0; + if(_bA_){ + var elem = [0, zero, 2, 0]; + enqueue_advance(state, elem); + state[14] = state[14] - 1 | 0; + var _bB_ = 0; + } + else + var _bB_ = _bA_; + } + else + var _bB_ = _bz_; + return _bB_; + } + function pp_print_tbreak(state, width, offset){ + var _by_ = state[14] < state[15] ? 1 : 0; + if(! _by_) return _by_; + var size = - state[13] | 0, elem = [0, size, [2, width, offset], width]; + return scan_push(state, 1, elem); + } + function pp_print_tab(state, param){return pp_print_tbreak(state, 0, 0);} + function pp_set_tab(state, param){ + var _bx_ = state[14] < state[15] ? 1 : 0; + if(! _bx_) return _bx_; + var elem = [0, zero, 0, 0]; + return enqueue_advance(state, elem); + } + function pp_set_max_boxes(state, n){ + var _bv_ = 1 < n ? 1 : 0, _bw_ = _bv_ ? (state[15] = n, 0) : _bv_; + return _bw_; + } + function pp_get_max_boxes(state, param){return state[15];} + function pp_over_max_boxes(state, param){return state[14] === state[15] ? 1 : 0; + } + function pp_set_ellipsis_text(state, s){state[16] = s; return 0;} + function pp_get_ellipsis_text(state, param){return state[16];} + function pp_limit(n){return n < 1000000010 ? n : 1000000009;} + function pp_set_max_indent(state, n$0){ + var _bu_ = 1 < n$0 ? 1 : 0; + if(! _bu_) return _bu_; + var n$1 = state[6] - n$0 | 0, _bt_ = 1 <= n$1 ? 1 : 0; + if(! _bt_) return _bt_; + var n = pp_limit(n$1); + state[7] = n; + state[8] = state[6] - state[7] | 0; + return pp_rinit(state); + } + function pp_get_max_indent(state, param){return state[8];} + function pp_set_margin(state, n){ + var _br_ = 1 <= n ? 1 : 0; + if(! _br_) return _br_; + var n$0 = pp_limit(n); + state[6] = n$0; + if(state[8] <= state[6]) + var new_max_indent = state[8]; + else + var + _bs_ = + caml_call2(Stdlib_Int[11], state[6] - state[7] | 0, state[6] / 2 | 0), + new_max_indent = caml_call2(Stdlib_Int[11], _bs_, 1); + return pp_set_max_indent(state, new_max_indent); + } + function validate_geometry(param){ + var margin = param[2], max_indent = param[1]; + return 2 <= max_indent ? margin <= max_indent ? _c_ : _d_ : _e_; + } + function check_geometry(geometry){ + return 0 === validate_geometry(geometry)[0] ? 1 : 0; + } + function pp_get_margin(state, param){return state[6];} + function pp_set_full_geometry(state, param){ + var margin = param[2], max_indent = param[1]; + pp_set_margin(state, margin); + pp_set_max_indent(state, max_indent); + return 0; + } + function pp_set_geometry(state, max_indent, margin){ + var + geometry = [0, max_indent, margin], + match = validate_geometry(geometry); + if(0 === match[0]) return pp_set_full_geometry(state, geometry); + var + msg = match[1], + _bq_ = caml_call2(Stdlib[28], cst_Format_pp_set_geometry, msg); + throw caml_maybe_attach_backtrace([0, Stdlib[6], _bq_], 1); + } + function pp_safe_set_geometry(state, max_indent, margin){ + var geometry = [0, max_indent, margin]; + return 0 === validate_geometry(geometry)[0] + ? pp_set_full_geometry(state, geometry) + : 0; + } + function pp_get_geometry(state, param){return [0, state[8], state[6]];} + function pp_update_geometry(state, update){ + var geometry = pp_get_geometry(state, 0); + return pp_set_full_geometry(state, caml_call1(update, geometry)); + } + function pp_set_formatter_out_functions(state, param){ + var j = param[5], i = param[4], h = param[3], g = param[2], f = param[1]; + state[17] = f; + state[18] = g; + state[19] = h; + state[20] = i; + state[21] = j; + return 0; + } + function pp_get_formatter_out_functions(state, param){ + return [0, state[17], state[18], state[19], state[20], state[21]]; + } + function pp_set_formatter_output_functi(state, f, g){state[17] = f; state[18] = g; return 0; + } + function pp_get_formatter_output_functi(state, param){return [0, state[17], state[18]]; + } + function display_newline(state, param){ + return caml_call3(state[17], cst$7, 0, 1); + } + var blank_line = caml_call2(Stdlib_String[1], 80, 32); + function display_blanks(state, n){ + var n$0 = n; + for(;;){ + var _bp_ = 0 < n$0 ? 1 : 0; + if(! _bp_) return _bp_; + if(80 >= n$0) return caml_call3(state[17], blank_line, 0, n$0); + caml_call3(state[17], blank_line, 0, 80); + var n$1 = n$0 - 80 | 0, n$0 = n$1; + } + } + function pp_set_formatter_out_channel(state, oc){ + state[17] = caml_call1(Stdlib[69], oc); + state[18] = function(param){return caml_call1(Stdlib[63], oc);}; + state[19] = function(_bo_){return display_newline(state, _bo_);}; + state[20] = function(_bn_){return display_blanks(state, _bn_);}; + state[21] = function(_bm_){return display_blanks(state, _bm_);}; + return 0; + } + function default_pp_mark_open_tag(param){ + if(param[1] !== String_tag) return cst$10; + var s = param[2], _bl_ = caml_call2(Stdlib[28], s, cst$8); + return caml_call2(Stdlib[28], cst$9, _bl_); + } + function default_pp_mark_close_tag(param){ + if(param[1] !== String_tag) return cst$13; + var s = param[2], _bk_ = caml_call2(Stdlib[28], s, cst$11); + return caml_call2(Stdlib[28], cst$12, _bk_); + } + function default_pp_print_open_tag(_bj_){return 0;} + function default_pp_print_close_tag(_bi_){return 0;} + function pp_make_formatter(f, g, h, i, j){ + var + pp_queue = caml_call1(Stdlib_Queue[2], 0), + sys_tok = [0, unknown, _f_, 0]; + caml_call2(Stdlib_Queue[3], sys_tok, pp_queue); + var scan_stack = caml_call1(Stdlib_Stack[2], 0); + initialize_scan_stack(scan_stack); + caml_call2(Stdlib_Stack[3], [0, 1, sys_tok], scan_stack); + var + _be_ = Stdlib[19], + _bf_ = caml_call1(Stdlib_Stack[2], 0), + _bg_ = caml_call1(Stdlib_Stack[2], 0), + _bh_ = caml_call1(Stdlib_Stack[2], 0); + return [0, + scan_stack, + caml_call1(Stdlib_Stack[2], 0), + _bh_, + _bg_, + _bf_, + 78, + 10, + 68, + 78, + 0, + 1, + 1, + 1, + 1, + _be_, + cst$14, + f, + g, + h, + i, + j, + 0, + 0, + default_pp_mark_open_tag, + default_pp_mark_close_tag, + default_pp_print_open_tag, + default_pp_print_close_tag, + pp_queue]; + } + function formatter_of_out_functions(out_funs){ + return pp_make_formatter + (out_funs[1], out_funs[2], out_funs[3], out_funs[4], out_funs[5]); + } + function make_formatter(output, flush){ + function _a8_(_bd_){return 0;} + function _a9_(_bc_){return 0;} + var + ppf = + pp_make_formatter(output, flush, function(_bb_){return 0;}, _a9_, _a8_); + ppf[19] = function(_ba_){return display_newline(ppf, _ba_);}; + ppf[20] = function(_a$_){return display_blanks(ppf, _a$_);}; + ppf[21] = function(_a__){return display_blanks(ppf, _a__);}; + return ppf; + } + function formatter_of_out_channel(oc){ + function _a7_(param){return caml_call1(Stdlib[63], oc);} + return make_formatter(caml_call1(Stdlib[69], oc), _a7_); + } + function formatter_of_buffer(b){ + function _a5_(_a6_){return 0;} + return make_formatter(caml_call1(Stdlib_Buffer[18], b), _a5_); + } + var pp_buffer_size = 512; + function pp_make_buffer(param){ + return caml_call1(Stdlib_Buffer[1], pp_buffer_size); + } + var + stdbuf = pp_make_buffer(0), + std_formatter = formatter_of_out_channel(Stdlib[39]), + err_formatter = formatter_of_out_channel(Stdlib[40]), + str_formatter = formatter_of_buffer(stdbuf); + function flush_buffer_formatter(buf, ppf){ + pp_flush_queue(ppf, 0); + var s = caml_call1(Stdlib_Buffer[2], buf); + caml_call1(Stdlib_Buffer[9], buf); + return s; + } + function flush_str_formatter(param){ + return flush_buffer_formatter(stdbuf, str_formatter); + } + function make_symbolic_output_buffer(param){return [0, 0];} + function clear_symbolic_output_buffer(sob){sob[1] = 0; return 0;} + function get_symbolic_output_buffer(sob){ + return caml_call1(Stdlib_List[9], sob[1]); + } + function flush_symbolic_output_buffer(sob){ + var items = get_symbolic_output_buffer(sob); + clear_symbolic_output_buffer(sob); + return items; + } + function add_symbolic_output_item(sob, item){sob[1] = [0, item, sob[1]]; return 0; + } + function formatter_of_symbolic_output_b(sob){ + function f(s, i, n){ + return add_symbolic_output_item + (sob, [0, caml_call3(Stdlib_String[15], s, i, n)]); + } + function g(_a4_){return add_symbolic_output_item(sob, 0);} + function h(_a3_){return add_symbolic_output_item(sob, 1);} + function i(n){return add_symbolic_output_item(sob, [1, n]);} + function j(n){return add_symbolic_output_item(sob, [2, n]);} + return pp_make_formatter(f, g, h, i, j); + } + function open_hbox(_a2_){return pp_open_hbox(std_formatter, _a2_);} + function open_vbox(_a1_){return pp_open_vbox(std_formatter, _a1_);} + function open_hvbox(_a0_){return pp_open_hvbox(std_formatter, _a0_);} + function open_hovbox(_aZ_){return pp_open_hovbox(std_formatter, _aZ_);} + function open_box(_aY_){return pp_open_box(std_formatter, _aY_);} + function close_box(_aX_){return pp_close_box(std_formatter, _aX_);} + function open_tag(_aW_){return pp_open_tag(std_formatter, _aW_);} + function close_tag(_aV_){return pp_close_tag(std_formatter, _aV_);} + function open_stag(_aU_){return pp_open_stag(std_formatter, _aU_);} + function close_stag(_aT_){return pp_close_stag(std_formatter, _aT_);} + function print_as(_aR_, _aS_){ + return pp_print_as(std_formatter, _aR_, _aS_); + } + function print_string(_aQ_){return pp_print_string(std_formatter, _aQ_);} + function print_bytes(_aP_){return pp_print_bytes(std_formatter, _aP_);} + function print_int(_aO_){return pp_print_int(std_formatter, _aO_);} + function print_float(_aN_){return pp_print_float(std_formatter, _aN_);} + function print_char(_aM_){return pp_print_char(std_formatter, _aM_);} + function print_bool(_aL_){return pp_print_bool(std_formatter, _aL_);} + function print_break(_aJ_, _aK_){ + return pp_print_break(std_formatter, _aJ_, _aK_); + } + function print_cut(_aI_){return pp_print_cut(std_formatter, _aI_);} + function print_space(_aH_){return pp_print_space(std_formatter, _aH_);} + function force_newline(_aG_){return pp_force_newline(std_formatter, _aG_);} + function print_flush(_aF_){return pp_print_flush(std_formatter, _aF_);} + function print_newline(_aE_){return pp_print_newline(std_formatter, _aE_);} + function print_if_newline(_aD_){ + return pp_print_if_newline(std_formatter, _aD_); + } + function open_tbox(_aC_){return pp_open_tbox(std_formatter, _aC_);} + function close_tbox(_aB_){return pp_close_tbox(std_formatter, _aB_);} + function print_tbreak(_az_, _aA_){ + return pp_print_tbreak(std_formatter, _az_, _aA_); + } + function set_tab(_ay_){return pp_set_tab(std_formatter, _ay_);} + function print_tab(_ax_){return pp_print_tab(std_formatter, _ax_);} + function set_margin(_aw_){return pp_set_margin(std_formatter, _aw_);} + function get_margin(_av_){return std_formatter[6];} + function set_max_indent(_au_){ + return pp_set_max_indent(std_formatter, _au_); + } + function get_max_indent(_at_){return std_formatter[8];} + function set_geometry(_ar_, _as_){ + return pp_set_geometry(std_formatter, _ar_, _as_); + } + function safe_set_geometry(_ap_, _aq_){ + return pp_safe_set_geometry(std_formatter, _ap_, _aq_); + } + function get_geometry(_ao_){return pp_get_geometry(std_formatter, _ao_);} + function update_geometry(_an_){ + return pp_update_geometry(std_formatter, _an_); + } + function set_max_boxes(_am_){return pp_set_max_boxes(std_formatter, _am_);} + function get_max_boxes(_al_){return std_formatter[15];} + function over_max_boxes(_ak_){ + return pp_over_max_boxes(std_formatter, _ak_); + } + function set_ellipsis_text(_aj_){ + return pp_set_ellipsis_text(std_formatter, _aj_); + } + function get_ellipsis_text(_ai_){return std_formatter[16];} + function set_formatter_out_channel(_ah_){ + return pp_set_formatter_out_channel(std_formatter, _ah_); + } + function set_formatter_out_functions(_ag_){ + return pp_set_formatter_out_functions(std_formatter, _ag_); + } + function get_formatter_out_functions(_af_){ + return pp_get_formatter_out_functions(std_formatter, _af_); + } + function set_formatter_output_functions(_ad_, _ae_){ + return pp_set_formatter_output_functi(std_formatter, _ad_, _ae_); + } + function get_formatter_output_functions(_ac_){ + return pp_get_formatter_output_functi(std_formatter, _ac_); + } + function set_formatter_stag_functions(_ab_){ + return pp_set_formatter_stag_function(std_formatter, _ab_); + } + function get_formatter_stag_functions(_aa_){ + return pp_get_formatter_stag_function(std_formatter, _aa_); + } + function set_print_tags(_$_){return pp_set_print_tags(std_formatter, _$_);} + function get_print_tags(___){return std_formatter[22];} + function set_mark_tags(_Z_){return pp_set_mark_tags(std_formatter, _Z_);} + function get_mark_tags(_Y_){return std_formatter[23];} + function set_tags(_X_){return pp_set_tags(std_formatter, _X_);} + function pp_print_list(opt, pp_v, ppf, param){ + var opt$0 = opt, param$0 = param; + for(;;){ + if(opt$0) + var sth = opt$0[1], pp_sep = sth; + else + var pp_sep = pp_print_cut; + if(! param$0) return 0; + var v = param$0[1]; + if(! param$0[2]) return caml_call2(pp_v, ppf, v); + var vs = param$0[2]; + caml_call2(pp_v, ppf, v); + caml_call2(pp_sep, ppf, 0); + var opt$1 = [0, pp_sep], opt$0 = opt$1, param$0 = vs; + } + } + function pp_print_seq(opt, pp_v, ppf, seq$1){ + if(opt) var sth = opt[1], pp_sep = sth; else var pp_sep = pp_print_cut; + var match$0 = caml_call1(seq$1, 0); + if(! match$0) return 0; + var seq$2 = match$0[2], v$0 = match$0[1]; + caml_call2(pp_v, ppf, v$0); + var seq = seq$2; + for(;;){ + var match = caml_call1(seq, 0); + if(! match) return 0; + var seq$0 = match[2], v = match[1]; + caml_call2(pp_sep, ppf, 0); + caml_call2(pp_v, ppf, v); + var seq = seq$0; + } + } + function pp_print_text(ppf, s){ + var len = caml_ml_string_length(s), left = [0, 0], right = [0, 0]; + function flush(param){ + pp_print_string + (ppf, caml_call3(Stdlib_String[15], s, left[1], right[1] - left[1] | 0)); + right[1]++; + left[1] = right[1]; + return 0; + } + for(;;){ + if(right[1] === len){ + var _W_ = left[1] !== len ? 1 : 0; + return _W_ ? flush(0) : _W_; + } + var match = runtime.caml_string_get(s, right[1]); + if(10 === match){ + flush(0); + pp_force_newline(ppf, 0); + } + else if(32 === match){flush(0); pp_print_space(ppf, 0);} else right[1]++; + } + } + function pp_print_option(opt, pp_v, ppf, param){ + if(opt) + var sth = opt[1], none = sth; + else + var none = function(param, _V_){return 0;}; + if(! param) return caml_call2(none, ppf, 0); + var v = param[1]; + return caml_call2(pp_v, ppf, v); + } + function pp_print_result(ok, error, ppf, param){ + if(0 === param[0]){var v = param[1]; return caml_call2(ok, ppf, v);} + var e = param[1]; + return caml_call2(error, ppf, e); + } + function pp_print_either(left, right, ppf, param){ + if(0 === param[0]){var l = param[1]; return caml_call2(left, ppf, l);} + var r = param[1]; + return caml_call2(right, ppf, r); + } + function compute_tag(output, tag_acc){ + var + buf = caml_call1(Stdlib_Buffer[1], 16), + ppf = formatter_of_buffer(buf); + caml_call2(output, ppf, tag_acc); + pp_print_flush(ppf, 0); + var len = caml_call1(Stdlib_Buffer[7], buf); + return 2 <= len + ? caml_call3(Stdlib_Buffer[4], buf, 1, len - 2 | 0) + : caml_call1(Stdlib_Buffer[2], buf); + } + function output_formatting_lit(ppf, fmting_lit){ + if(typeof fmting_lit === "number") + switch(fmting_lit){ + case 0: + return pp_close_box(ppf, 0); + case 1: + return pp_close_tag(ppf, 0); + case 2: + return pp_print_flush(ppf, 0); + case 3: + return pp_force_newline(ppf, 0); + case 4: + return pp_print_newline(ppf, 0); + case 5: + return pp_print_char(ppf, 64); + default: return pp_print_char(ppf, 37); + } + switch(fmting_lit[0]){ + case 0: + var offset = fmting_lit[3], width = fmting_lit[2]; + return pp_print_break(ppf, width, offset); + case 1: + return 0; + default: + var c = fmting_lit[1]; + pp_print_char(ppf, 64); + return pp_print_char(ppf, c); + } + } + function output_acc(ppf, acc){ + var switch$0 = 0; + if(typeof acc === "number") return 0; + switch(acc[0]){ + case 0: + var f = acc[2], p = acc[1]; + output_acc(ppf, p); + return output_formatting_lit(ppf, f); + case 1: + var match = acc[2], p$0 = acc[1]; + if(0 === match[0]){ + var acc$0 = match[1]; + output_acc(ppf, p$0); + return pp_open_stag + (ppf, [0, String_tag, compute_tag(output_acc, acc$0)]); + } + var acc$1 = match[1]; + output_acc(ppf, p$0); + var + _M_ = compute_tag(output_acc, acc$1), + match$0 = caml_call1(CamlinternalFormat[20], _M_), + bty = match$0[2], + indent = match$0[1]; + return pp_open_box_gen(ppf, indent, bty); + case 2: + var _N_ = acc[1], switch$1 = 0; + if(typeof _N_ === "number" || ! (0 === _N_[0])) + switch$1 = 1; + else{ + var _O_ = _N_[2], switch$2 = 0; + if(typeof _O_ === "number" || ! (1 === _O_[0])) + switch$2 = 1; + else + var s$0 = acc[2], size = _O_[2], p$2 = _N_[1]; + if(switch$2) switch$1 = 1; + } + if(switch$1){var s = acc[2], p$1 = _N_; switch$0 = 2;} + break; + case 3: + var _P_ = acc[1], switch$3 = 0; + if(typeof _P_ === "number" || ! (0 === _P_[0])) + switch$3 = 1; + else{ + var _Q_ = _P_[2], switch$4 = 0; + if(typeof _Q_ === "number" || ! (1 === _Q_[0])) + switch$4 = 1; + else{var c$0 = acc[2], size$0 = _Q_[2], p$4 = _P_[1]; switch$0 = 1;} + if(switch$4) switch$3 = 1; + } + if(switch$3){var c = acc[2], p$3 = _P_; switch$0 = 3;} + break; + case 4: + var _R_ = acc[1], switch$5 = 0; + if(typeof _R_ === "number" || ! (0 === _R_[0])) + switch$5 = 1; + else{ + var _S_ = _R_[2], switch$6 = 0; + if(typeof _S_ === "number" || ! (1 === _S_[0])) + switch$6 = 1; + else + var s$0 = acc[2], size = _S_[2], p$2 = _R_[1]; + if(switch$6) switch$5 = 1; + } + if(switch$5){var s = acc[2], p$1 = _R_; switch$0 = 2;} + break; + case 5: + var _T_ = acc[1], switch$7 = 0; + if(typeof _T_ === "number" || ! (0 === _T_[0])) + switch$7 = 1; + else{ + var _U_ = _T_[2], switch$8 = 0; + if(typeof _U_ === "number" || ! (1 === _U_[0])) + switch$8 = 1; + else{var c$0 = acc[2], size$0 = _U_[2], p$4 = _T_[1]; switch$0 = 1;} + if(switch$8) switch$7 = 1; + } + if(switch$7){var c = acc[2], p$3 = _T_; switch$0 = 3;} + break; + case 6: + var f$0 = acc[2], p$5 = acc[1]; + output_acc(ppf, p$5); + return caml_call1(f$0, ppf); + case 7: + var p$6 = acc[1]; output_acc(ppf, p$6); return pp_print_flush(ppf, 0); + default: + var msg = acc[2], p$7 = acc[1]; + output_acc(ppf, p$7); + return caml_call1(Stdlib[1], msg); + } + switch(switch$0){ + case 0: + output_acc(ppf, p$2); return pp_print_as_size(ppf, size, s$0); + case 1: + output_acc(ppf, p$4); + return pp_print_as_size + (ppf, size$0, caml_call2(Stdlib_String[1], 1, c$0)); + case 2: + output_acc(ppf, p$1); return pp_print_string(ppf, s); + default: output_acc(ppf, p$3); return pp_print_char(ppf, c); + } + } + function strput_acc(ppf, acc){ + var switch$0 = 0; + if(typeof acc === "number") return 0; + switch(acc[0]){ + case 0: + var f = acc[2], p = acc[1]; + strput_acc(ppf, p); + return output_formatting_lit(ppf, f); + case 1: + var match = acc[2], p$0 = acc[1]; + if(0 === match[0]){ + var acc$0 = match[1]; + strput_acc(ppf, p$0); + return pp_open_stag + (ppf, [0, String_tag, compute_tag(strput_acc, acc$0)]); + } + var acc$1 = match[1]; + strput_acc(ppf, p$0); + var + _D_ = compute_tag(strput_acc, acc$1), + match$0 = caml_call1(CamlinternalFormat[20], _D_), + bty = match$0[2], + indent = match$0[1]; + return pp_open_box_gen(ppf, indent, bty); + case 2: + var _E_ = acc[1], switch$1 = 0; + if(typeof _E_ === "number" || ! (0 === _E_[0])) + switch$1 = 1; + else{ + var _F_ = _E_[2], switch$2 = 0; + if(typeof _F_ === "number" || ! (1 === _F_[0])) + switch$2 = 1; + else + var s$0 = acc[2], size = _F_[2], p$2 = _E_[1]; + if(switch$2) switch$1 = 1; + } + if(switch$1){var s = acc[2], p$1 = _E_; switch$0 = 2;} + break; + case 3: + var _G_ = acc[1], switch$3 = 0; + if(typeof _G_ === "number" || ! (0 === _G_[0])) + switch$3 = 1; + else{ + var _H_ = _G_[2], switch$4 = 0; + if(typeof _H_ === "number" || ! (1 === _H_[0])) + switch$4 = 1; + else{var c$0 = acc[2], size$0 = _H_[2], p$4 = _G_[1]; switch$0 = 1;} + if(switch$4) switch$3 = 1; + } + if(switch$3){var c = acc[2], p$3 = _G_; switch$0 = 3;} + break; + case 4: + var _I_ = acc[1], switch$5 = 0; + if(typeof _I_ === "number" || ! (0 === _I_[0])) + switch$5 = 1; + else{ + var _J_ = _I_[2], switch$6 = 0; + if(typeof _J_ === "number" || ! (1 === _J_[0])) + switch$6 = 1; + else + var s$0 = acc[2], size = _J_[2], p$2 = _I_[1]; + if(switch$6) switch$5 = 1; + } + if(switch$5){var s = acc[2], p$1 = _I_; switch$0 = 2;} + break; + case 5: + var _K_ = acc[1], switch$7 = 0; + if(typeof _K_ === "number" || ! (0 === _K_[0])) + switch$7 = 1; + else{ + var _L_ = _K_[2], switch$8 = 0; + if(typeof _L_ === "number" || ! (1 === _L_[0])) + switch$8 = 1; + else{var c$0 = acc[2], size$0 = _L_[2], p$4 = _K_[1]; switch$0 = 1;} + if(switch$8) switch$7 = 1; + } + if(switch$7){var c = acc[2], p$3 = _K_; switch$0 = 3;} + break; + case 6: + var p$5 = acc[1]; + if(typeof p$5 !== "number" && 0 === p$5[0]){ + var match$1 = p$5[2]; + if(typeof match$1 !== "number" && 1 === match$1[0]){ + var f$1 = acc[2], size$1 = match$1[2], p$6 = p$5[1]; + strput_acc(ppf, p$6); + return pp_print_as_size(ppf, size$1, caml_call1(f$1, 0)); + } + } + var f$0 = acc[2]; + strput_acc(ppf, p$5); + return pp_print_string(ppf, caml_call1(f$0, 0)); + case 7: + var p$7 = acc[1]; strput_acc(ppf, p$7); return pp_print_flush(ppf, 0); + default: + var msg = acc[2], p$8 = acc[1]; + strput_acc(ppf, p$8); + return caml_call1(Stdlib[1], msg); + } + switch(switch$0){ + case 0: + strput_acc(ppf, p$2); return pp_print_as_size(ppf, size, s$0); + case 1: + strput_acc(ppf, p$4); + return pp_print_as_size + (ppf, size$0, caml_call2(Stdlib_String[1], 1, c$0)); + case 2: + strput_acc(ppf, p$1); return pp_print_string(ppf, s); + default: strput_acc(ppf, p$3); return pp_print_char(ppf, c); + } + } + function kfprintf(k, ppf, param){ + var fmt = param[1], _B_ = 0; + function _C_(acc){output_acc(ppf, acc); return caml_call1(k, ppf);} + return caml_call3(CamlinternalFormat[7], _C_, _B_, fmt); + } + function ikfprintf(k, ppf, param){ + var fmt = param[1]; + return caml_call3(CamlinternalFormat[8], k, ppf, fmt); + } + function ifprintf(ppf, param){ + var fmt = param[1], _y_ = 0; + function _z_(_A_){return 0;} + return caml_call3(CamlinternalFormat[8], _z_, _y_, fmt); + } + function fprintf(ppf){ + function _v_(_x_){return 0;} + return function(_w_){return kfprintf(_v_, ppf, _w_);}; + } + function printf(fmt){return caml_call1(fprintf(std_formatter), fmt);} + function eprintf(fmt){return caml_call1(fprintf(err_formatter), fmt);} + function kdprintf(k, param){ + var fmt = param[1], _t_ = 0; + function _u_(acc){ + return caml_call1(k, function(ppf){return output_acc(ppf, acc);}); + } + return caml_call3(CamlinternalFormat[7], _u_, _t_, fmt); + } + function dprintf(fmt){return kdprintf(function(i){return i;}, fmt);} + function ksprintf(k, param){ + var fmt = param[1], b = pp_make_buffer(0), ppf = formatter_of_buffer(b); + function k$0(acc){ + strput_acc(ppf, acc); + return caml_call1(k, flush_buffer_formatter(b, ppf)); + } + return caml_call3(CamlinternalFormat[7], k$0, 0, fmt); + } + function sprintf(fmt){return ksprintf(id, fmt);} + function kasprintf(k, param){ + var fmt = param[1], b = pp_make_buffer(0), ppf = formatter_of_buffer(b); + function k$0(acc){ + output_acc(ppf, acc); + return caml_call1(k, flush_buffer_formatter(b, ppf)); + } + return caml_call3(CamlinternalFormat[7], k$0, 0, fmt); + } + function asprintf(fmt){return kasprintf(id, fmt);} + function flush_standard_formatters(param){ + pp_print_flush(std_formatter, 0); + return pp_print_flush(err_formatter, 0); + } + caml_call1(Stdlib[100], flush_standard_formatters); + function pp_set_all_formatter_output_fu(state, f, g, h, i){ + pp_set_formatter_output_functi(state, f, g); + state[19] = h; + state[20] = i; + return 0; + } + function pp_get_all_formatter_output_fu(state, param){ + return [0, state[17], state[18], state[19], state[20]]; + } + function set_all_formatter_output_funct(_p_, _q_, _r_, _s_){ + return pp_set_all_formatter_output_fu(std_formatter, _p_, _q_, _r_, _s_); + } + function get_all_formatter_output_funct(_o_){ + return pp_get_all_formatter_output_fu(std_formatter, _o_); + } + function bprintf(b, param){ + var fmt = param[1], ppf = formatter_of_buffer(b); + function k(acc){output_acc(ppf, acc); return pp_flush_queue(ppf, 0);} + return caml_call3(CamlinternalFormat[7], k, 0, fmt); + } + function pp_set_formatter_tag_functions(state, param){ + var pct = param[4], pot = param[3], mct = param[2], mot = param[1]; + function stringify(f, e, param){ + if(param[1] !== String_tag) return e; + var s = param[2]; + return caml_call1(f, s); + } + state[24] = function(_n_){return stringify(mot, cst$15, _n_);}; + state[25] = function(_m_){return stringify(mct, cst$16, _m_);}; + var _i_ = 0; + state[26] = function(_l_){return stringify(pot, _i_, _l_);}; + var _j_ = 0; + state[27] = function(_k_){return stringify(pct, _j_, _k_);}; + return 0; + } + function pp_get_formatter_tag_functions(fmt, param){ + var funs = pp_get_formatter_stag_function(fmt, 0); + function mark_open_tag(s){return caml_call1(funs[1], [0, String_tag, s]);} + function mark_close_tag(s){ + return caml_call1(funs[2], [0, String_tag, s]); + } + function print_open_tag(s){ + return caml_call1(funs[3], [0, String_tag, s]); + } + function print_close_tag(s){ + return caml_call1(funs[4], [0, String_tag, s]); + } + return [0, mark_open_tag, mark_close_tag, print_open_tag, print_close_tag]; + } + function set_formatter_tag_functions(_h_){ + return pp_set_formatter_tag_functions(std_formatter, _h_); + } + function get_formatter_tag_functions(_g_){ + return pp_get_formatter_tag_functions(std_formatter, _g_); + } + var + Stdlib_Format = [0, pp_open_box, open_box, @@ -25596,17 +27504,17 @@ pp_open_hovbox, open_hovbox, pp_print_string, - print_string$0, + print_string, pp_print_bytes, - print_bytes$0, + print_bytes, pp_print_as, print_as, pp_print_int, - print_int$0, + print_int, pp_print_float, - print_float$0, + print_float, pp_print_char, - print_char$0, + print_char, pp_print_bool, print_bool, pp_print_space, @@ -25623,7 +27531,7 @@ pp_print_flush, print_flush, pp_print_newline, - print_newline$0, + print_newline, pp_set_margin, set_margin, pp_get_margin, @@ -25711,20 +27619,20 @@ pp_print_option, pp_print_result, pp_print_either, - fprintf$0, - printf$0, - eprintf$0, - sprintf$0, + fprintf, + printf, + eprintf, + sprintf, asprintf, dprintf, - ifprintf$0, - kfprintf$0, + ifprintf, + kfprintf, kdprintf, - ikfprintf$0, - kprintf, + ikfprintf, + ksprintf, kasprintf, - bprintf$0, - kprintf, + bprintf, + ksprintf, set_all_formatter_output_funct, get_all_formatter_output_funct, pp_set_all_formatter_output_fu, @@ -25737,1909 +27645,778 @@ set_formatter_tag_functions, pp_get_formatter_tag_functions, get_formatter_tag_functions]; - caml_register_global(818,Stdlib_Format,"Stdlib__Format"); - var null_char=0; - function next_char(ib) - {try - {var c=caml_call1(ib[7],0); - ib[2] = c; - ib[3] = 1; - ib[4] = ib[4] + 1 | 0; - if(10 === c)ib[5] = ib[5] + 1 | 0; - return c} - catch(_jY_) - {_jY_ = caml_wrap_exception(_jY_); - if(_jY_ === End_of_file) - {ib[2] = null_char;ib[3] = 0;ib[1] = 1;return null_char} - throw _jY_}} - function peek_char(ib){return ib[3]?ib[2]:next_char(ib)} - function checked_peek_char(ib) - {var c=peek_char(ib);if(ib[1])throw End_of_file;return c} - function end_of_input(ib){peek_char(ib);return ib[1]} - function beginning_of_input(ib){return 0 === ib[4]?1:0} - function name_of_input(ib) - {var _jX_=ib[9]; - if(typeof _jX_ === "number") - return 0 === _jX_?cst_unnamed_function:cst_unnamed_character_string; - else - {if(0 === _jX_[0])return cst_unnamed_Stdlib_input_chann; - var fname=_jX_[1]; - return fname}} - function char_count(ib){return ib[3]?ib[4] - 1 | 0:ib[4]} - function reset_token(ib){return reset(ib[8])} - function invalidate_current_char(ib){ib[3] = 0;return 0} - function token_string(ib) - {var token_buffer=ib[8],tok=contents(token_buffer); - clear$1(token_buffer); - ib[6] = ib[6] + 1 | 0; - return tok} - function skip_char(width,ib){invalidate_current_char(ib);return width} - function ignore_char(width,ib){return skip_char(width - 1 | 0,ib)} - function store_char(width,ib,c) - {add_char(ib[8],c);return ignore_char(width,ib)} - var default_token_buffer_size=1024; - function create$4(iname,next) - {return [0, - 0, - null_char, - 0, - 0, - 0, - 0, - next, - create$2(default_token_buffer_size), - iname]} - function from_string$1(s) - {var i=[0,0],len=caml_ml_string_length(s); - function next(param) - {if(len <= i[1])throw End_of_file; - var c=caml_string_get(s,i[1]); - i[1]++; - return c} - return create$4(1,next)} - var _cp_=0; - function from_function$0(_jW_){return create$4(_cp_,_jW_)} - var len=1024; - function scan_close_at_end(ic) - {caml_ml_close_channel(ic);throw End_of_file} - function scan_raise_at_end(ic){throw End_of_file} - function from_ic(scan_close_ic,iname,ic) - {var buf=caml_create_bytes(1024),i=[0,0],lim=[0,0],eof=[0,0]; - function next(param) - {if(i[1] < lim[1]){var c=caml_bytes_get(buf,i[1]);i[1]++;return c} - if(eof[1])throw End_of_file; - lim[1] = input(ic,buf,0,len); - return 0 === lim[1] - ?(eof[1] = 1,caml_call1(scan_close_ic,ic)) - :(i[1] = 1,caml_bytes_get(buf,0))} - return create$4(iname,next)} - var stdib=from_ic(scan_raise_at_end,[1,cst$86,stdin],stdin); - function open_in_file(open_in,fname) - {if(caml_string_notequal(fname,cst$87)) - {var ic=caml_call1(open_in,fname); - return from_ic(scan_close_at_end,[1,fname,ic],ic)} - return stdib} - function from_file(_jV_){return open_in_file(open_text$0,_jV_)} - function from_file_bin(_jU_){return open_in_file(open_bin$0,_jU_)} - function from_channel$0(ic){return from_ic(scan_raise_at_end,[0,ic],ic)} - function close_in(ib) - {var _jT_=ib[9]; - if(typeof _jT_ === "number") - return 0; - else - {if(0 === _jT_[0]){var ic=_jT_[1];return caml_ml_close_channel(ic)} - var ic$0=_jT_[2]; - return caml_ml_close_channel(ic$0)}} - var memo=[0,0]; - function memo_from_ic(scan_close_ic,ic) - {try - {var _jR_=assq(ic,memo[1]);return _jR_} - catch(_jS_) - {_jS_ = caml_wrap_exception(_jS_); - if(_jS_ === Not_found) - {var ib=from_ic(scan_close_ic,[0,ic],ic); - memo[1] = [0,[0,ic,ib],memo[1]]; - return ib} - throw _jS_}} - function memo_from_channel(_jQ_) - {return memo_from_ic(scan_raise_at_end,_jQ_)} - var Scan_failure=[248,cst_Stdlib_Scanf_Scan_failure,caml_fresh_oo_id(0)]; - function bad_input(s){throw [0,Scan_failure,s]} - function bad_input_escape(c) - {return bad_input(caml_call1(sprintf(_cq_),c))} - function bad_token_length(message) - {return bad_input(caml_call1(sprintf(_cr_),message))} - function bad_float(param) - {return bad_input(cst_no_dot_or_exponent_part_fo)} - function bad_hex_float(param) - {return bad_input(cst_not_a_valid_float_in_hexad)} - function character_mismatch(c,ci) - {return bad_input(caml_call2(sprintf(_ct_),c,ci))} - function check_this_char(ib,c) - {var ci=checked_peek_char(ib); - return ci === c?invalidate_current_char(ib):character_mismatch(c,ci)} - function check_char(ib,c$0) - {if(10 === c$0) - {var ci=checked_peek_char(ib); - return 10 === ci - ?invalidate_current_char(ib) - :13 === ci - ?(invalidate_current_char(ib),check_this_char(ib,10)) - :character_mismatch(10,ci)} - if(32 === c$0) - for(;;) - {var c=peek_char(ib),_jO_=1 - ib[1]; - if(_jO_) - {var _jP_=c - 9 | 0,switch$0=0; - if(4 < _jP_ >>> 0) - {if(23 === _jP_)switch$0 = 1} - else - if(1 < _jP_ - 2 >>> 0)switch$0 = 1; - if(switch$0){invalidate_current_char(ib);continue} - return 0} - return _jO_} - return check_this_char(ib,c$0)} - function token_char(ib){return caml_string_get(token_string(ib),0)} - function token_bool(ib) - {var s=token_string(ib); - return caml_string_notequal(s,cst_false$3) - ?caml_string_notequal(s,cst_true$3) - ?bad_input(caml_call1(sprintf(_cu_),s)) - :1 - :0} - function integer_conversion_of_char(param) - {var switcher=param - 88 | 0; - if(! (32 < switcher >>> 0)) - switch(switcher) - {case 10:return 0; - case 12:return 1; - case 17:return 2; - case 23:return 3; - case 29:return 4; - case 0: - case 32:return 5 - } - throw [0,Assert_failure,_cv_]} - function token_int_literal(conv,ib) - {switch(conv) - {case 0:var tok=cat(cst_0b,token_string(ib));break; - case 3:var tok=cat(cst_0o,token_string(ib));break; - case 4:var tok=cat(cst_0u,token_string(ib));break; - case 5:var tok=cat(cst_0x,token_string(ib));break; - default:var tok=token_string(ib)} - var l=caml_ml_string_length(tok); - if(0 !== l && 43 === caml_string_get(tok,0)) - return sub$0(tok,1,l - 1 | 0); - return tok} - function token_float(ib){return caml_float_of_string(token_string(ib))} - function scan_decimal_digit_star(width,ib) - {var width$0=width; - for(;;) - {if(0 === width$0)return width$0; - var c=peek_char(ib); - if(ib[1])return width$0; - if(58 <= c) - {if(95 === c) - {var width$1=ignore_char(width$0,ib),width$0=width$1;continue}} - else - if(48 <= c) - {var width$2=store_char(width$0,ib,c),width$0=width$2;continue} - return width$0}} - function scan_unsigned_decimal_int(width,ib) - {if(0 === width)return bad_token_length(cst_decimal_digits); - var c=checked_peek_char(ib); - if(9 < c - 48 >>> 0)return bad_input(caml_call1(sprintf(_cw_),c)); - var width$0=store_char(width,ib,c); - return scan_decimal_digit_star(width$0,ib)} - function scan_digit_plus(basis,digitp,width$2,ib) - {if(0 === width$2)return bad_token_length(cst_digits); - var c$0=checked_peek_char(ib); - if(caml_call1(digitp,c$0)) - {var width$3=store_char(width$2,ib,c$0),width=width$3; - for(;;) - {if(0 === width)return width; - var c=peek_char(ib); - if(ib[1])return width; - if(caml_call1(digitp,c)) - {var width$0=store_char(width,ib,c),width=width$0;continue} - if(95 === c) - {var width$1=ignore_char(width,ib),width=width$1;continue} - return width}} - return bad_input(caml_call2(sprintf(_cx_),c$0,basis))} - function is_binary_digit(param){return 1 < param - 48 >>> 0?0:1} - function scan_binary_int(_jM_,_jN_) - {return scan_digit_plus(cst_binary,is_binary_digit,_jM_,_jN_)} - function is_octal_digit(param){return 7 < param - 48 >>> 0?0:1} - function scan_octal_int(_jK_,_jL_) - {return scan_digit_plus(cst_octal,is_octal_digit,_jK_,_jL_)} - function is_hexa_digit(param) - {var _jJ_=param - 48 | 0,switch$0=0; - if(22 < _jJ_ >>> 0) - {if(! (5 < _jJ_ - 49 >>> 0))switch$0 = 1} - else - if(6 < _jJ_ - 10 >>> 0)switch$0 = 1; - return switch$0?1:0} - function scan_hexadecimal_int(_jH_,_jI_) - {return scan_digit_plus(cst_hexadecimal,is_hexa_digit,_jH_,_jI_)} - function scan_sign(width,ib) - {var c=checked_peek_char(ib),switcher=c - 43 | 0; - if(! (2 < switcher >>> 0)) - switch(switcher) - {case 0:return store_char(width,ib,c); - case 1:break; - default:return store_char(width,ib,c)} - return width} - function scan_optionally_signed_decimal(width,ib) - {var width$0=scan_sign(width,ib); - return scan_unsigned_decimal_int(width$0,ib)} - function scan_int_conversion(conv,width$1,ib) - {switch(conv) - {case 0:return scan_binary_int(width$1,ib); - case 1:return scan_optionally_signed_decimal(width$1,ib); + runtime.caml_register_global(36, Stdlib_Format, "Stdlib__Format"); + return; + } + (globalThis)); + +//# 22293 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_register_named_value = runtime.caml_register_named_value, + global_data = runtime.caml_get_global_data(), + Stdlib_Obj = global_data.Stdlib__Obj, + register = caml_register_named_value; + function register_exception(name, exn){ + var + _a_ = Stdlib_Obj[8], + slot = runtime.caml_obj_tag(exn) === _a_ ? exn : exn[1]; + return caml_register_named_value(name, slot); + } + var Stdlib_Callback = [0, register, register_exception]; + runtime.caml_register_global(1, Stdlib_Callback, "Stdlib__Callback"); + return; + } + (globalThis)); + +//# 22316 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_camlinternalOO_ml = "camlinternalOO.ml", + caml_check_bound = runtime.caml_check_bound, + caml_div = runtime.caml_div, + caml_get_public_method = runtime.caml_get_public_method, + caml_make_vect = runtime.caml_make_vect, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_obj_block = runtime.caml_obj_block, + caml_set_oo_id = runtime.caml_set_oo_id, + caml_string_compare = runtime.caml_string_compare, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + function caml_call5(f, a0, a1, a2, a3, a4){ + return (f.l >= 0 ? f.l : f.l = f.length) == 5 + ? f(a0, a1, a2, a3, a4) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); + } + var + global_data = runtime.caml_get_global_data(), + Assert_failure = global_data.Assert_failure, + Stdlib_Sys = global_data.Stdlib__Sys, + Stdlib_Obj = global_data.Stdlib__Obj, + Stdlib = global_data.Stdlib, + Stdlib_Array = global_data.Stdlib__Array, + Stdlib_List = global_data.Stdlib__List, + Stdlib_Map = global_data.Stdlib__Map, + _g_ = [0, cst_camlinternalOO_ml, 439, 17], + _f_ = [0, cst_camlinternalOO_ml, 421, 13], + _e_ = [0, cst_camlinternalOO_ml, 418, 13], + _d_ = [0, cst_camlinternalOO_ml, 415, 13], + _c_ = [0, cst_camlinternalOO_ml, 412, 13], + _b_ = [0, cst_camlinternalOO_ml, 409, 13], + _a_ = [0, cst_camlinternalOO_ml, 281, 50]; + function copy(o){var o$0 = o.slice(); return caml_set_oo_id(o$0);} + var params = [0, 1, 1, 1, 3, 16], initial_object_size = 2, dummy_item = 0; + function public_method_label(s){ + var + accu = [0, 0], + _aE_ = runtime.caml_ml_string_length(s) - 1 | 0, + _aD_ = 0; + if(_aE_ >= 0){ + var i = _aD_; + for(;;){ + var _aF_ = runtime.caml_string_get(s, i); + accu[1] = (223 * accu[1] | 0) + _aF_ | 0; + var _aG_ = i + 1 | 0; + if(_aE_ !== i){var i = _aG_; continue;} + break; + } + } + accu[1] = accu[1] & 2147483647; + var tag = 1073741823 < accu[1] ? accu[1] + 2147483648 | 0 : accu[1]; + return tag; + } + var + compare = caml_string_compare, + Vars = caml_call1(Stdlib_Map[1], [0, compare]), + compare$0 = caml_string_compare, + Meths = caml_call1(Stdlib_Map[1], [0, compare$0]), + compare$1 = runtime.caml_int_compare, + Labs = caml_call1(Stdlib_Map[1], [0, compare$1]), + dummy_table = [0, 0, [0, dummy_item], Meths[1], Labs[1], 0, 0, Vars[1], 0], + table_count = [0, 0], + dummy_met = caml_obj_block(0, 0); + function fit_size(n){ + return 2 < n ? fit_size((n + 1 | 0) / 2 | 0) * 2 | 0 : n; + } + function new_table(pub_labels){ + table_count[1]++; + var + len = pub_labels.length - 1, + methods = caml_make_vect((len * 2 | 0) + 2 | 0, dummy_met); + caml_check_bound(methods, 0)[1] = len; + var + _aw_ = Stdlib_Sys[9], + _ax_ = (runtime.caml_mul(fit_size(len), _aw_) / 8 | 0) - 1 | 0; + caml_check_bound(methods, 1)[2] = _ax_; + var _az_ = len - 1 | 0, _ay_ = 0; + if(_az_ >= 0){ + var i = _ay_; + for(;;){ + var + _aB_ = (i * 2 | 0) + 3 | 0, + _aA_ = caml_check_bound(pub_labels, i)[1 + i]; + caml_check_bound(methods, _aB_)[1 + _aB_] = _aA_; + var _aC_ = i + 1 | 0; + if(_az_ !== i){var i = _aC_; continue;} + break; + } + } + return [0, + initial_object_size, + methods, + Meths[1], + Labs[1], + 0, + 0, + Vars[1], + 0]; + } + function resize(array, new_size){ + var old_size = array[2].length - 1, _au_ = old_size < new_size ? 1 : 0; + if(_au_){ + var new_buck = caml_make_vect(new_size, dummy_met); + caml_call5(Stdlib_Array[10], array[2], 0, new_buck, 0, old_size); + array[2] = new_buck; + var _av_ = 0; + } + else + var _av_ = _au_; + return _av_; + } + var method_count = [0, 0], inst_var_count = [0, 0]; + function new_method(table){ + var index = table[2].length - 1; + resize(table, index + 1 | 0); + return index; + } + function get_method_label(table, name){ + try{var _as_ = caml_call2(Meths[28], name, table[3]); return _as_;} + catch(_at_){ + var _ar_ = caml_wrap_exception(_at_); + if(_ar_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_ar_, 0); + var label = new_method(table); + table[3] = caml_call3(Meths[4], name, label, table[3]); + table[4] = caml_call3(Labs[4], label, 1, table[4]); + return label; + } + } + function get_method_labels(table, names){ + function _ap_(_aq_){return get_method_label(table, _aq_);} + return caml_call2(Stdlib_Array[15], _ap_, names); + } + function set_method(table, label, element){ + method_count[1]++; + return caml_call2(Labs[28], label, table[4]) + ? (resize + (table, label + 1 | 0), + caml_check_bound(table[2], label)[1 + label] = element, + 0) + : (table[6] = [0, [0, label, element], table[6]], 0); + } + function get_method(table, label){ + try{var _an_ = caml_call2(Stdlib_List[46], label, table[6]); return _an_;} + catch(_ao_){ + var _am_ = caml_wrap_exception(_ao_); + if(_am_ === Stdlib[8]) + return caml_check_bound(table[2], label)[1 + label]; + throw caml_maybe_attach_backtrace(_am_, 0); + } + } + function to_list(arr){ + return 0 === arr ? 0 : caml_call1(Stdlib_Array[11], arr); + } + function narrow(table, vars, virt_meths, concr_meths){ + var + vars$0 = to_list(vars), + virt_meths$0 = to_list(virt_meths), + concr_meths$0 = to_list(concr_meths); + function _X_(_al_){return get_method_label(table, _al_);} + var virt_meth_labs = caml_call2(Stdlib_List[19], _X_, virt_meths$0); + function _Y_(_ak_){return get_method_label(table, _ak_);} + var concr_meth_labs = caml_call2(Stdlib_List[19], _Y_, concr_meths$0); + table[5] = + [0, + [0, table[3], table[4], table[6], table[7], virt_meth_labs, vars$0], + table[5]]; + var _Z_ = Vars[1], ___ = table[7]; + function _$_(lab, info, tvars){ + return caml_call2(Stdlib_List[36], lab, vars$0) + ? caml_call3(Vars[4], lab, info, tvars) + : tvars; + } + table[7] = caml_call3(Vars[13], _$_, ___, _Z_); + var by_name = [0, Meths[1]], by_label = [0, Labs[1]]; + function _aa_(met, label){ + by_name[1] = caml_call3(Meths[4], met, label, by_name[1]); + var _af_ = by_label[1]; + try{var _ai_ = caml_call2(Labs[28], label, table[4]), _ah_ = _ai_;} + catch(_aj_){ + var _ag_ = caml_wrap_exception(_aj_); + if(_ag_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_ag_, 0); + var _ah_ = 1; + } + by_label[1] = caml_call3(Labs[4], label, _ah_, _af_); + return 0; + } + caml_call3(Stdlib_List[27], _aa_, concr_meths$0, concr_meth_labs); + function _ab_(met, label){ + by_name[1] = caml_call3(Meths[4], met, label, by_name[1]); + by_label[1] = caml_call3(Labs[4], label, 0, by_label[1]); + return 0; + } + caml_call3(Stdlib_List[27], _ab_, virt_meths$0, virt_meth_labs); + table[3] = by_name[1]; + table[4] = by_label[1]; + var _ac_ = 0, _ad_ = table[6]; + function _ae_(met, hm){ + var lab = met[1]; + return caml_call2(Stdlib_List[36], lab, virt_meth_labs) + ? hm + : [0, met, hm]; + } + table[6] = caml_call3(Stdlib_List[26], _ae_, _ad_, _ac_); + return 0; + } + function widen(table){ + var + match = caml_call1(Stdlib_List[5], table[5]), + vars = match[6], + virt_meths = match[5], + saved_vars = match[4], + saved_hidden_meths = match[3], + by_label = match[2], + by_name = match[1]; + table[5] = caml_call1(Stdlib_List[6], table[5]); + function _T_(s, v){ + var _W_ = caml_call2(Vars[28], v, table[7]); + return caml_call3(Vars[4], v, _W_, s); + } + table[7] = caml_call3(Stdlib_List[25], _T_, saved_vars, vars); + table[3] = by_name; + table[4] = by_label; + var _U_ = table[6]; + function _V_(met, hm){ + var lab = met[1]; + return caml_call2(Stdlib_List[36], lab, virt_meths) ? hm : [0, met, hm]; + } + table[6] = caml_call3(Stdlib_List[26], _V_, _U_, saved_hidden_meths); + return 0; + } + function new_variable(table, name){ + try{var _R_ = caml_call2(Vars[28], name, table[7]); return _R_;} + catch(_S_){ + var _Q_ = caml_wrap_exception(_S_); + if(_Q_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_Q_, 0); + var index = table[1]; + table[1] = index + 1 | 0; + if(runtime.caml_string_notequal(name, "")) + table[7] = caml_call3(Vars[4], name, index, table[7]); + return index; + } + } + function to_array(arr){return runtime.caml_equal(arr, 0) ? [0] : arr;} + function new_methods_variables(table, meths, vals){ + var + meths$0 = to_array(meths), + nmeths = meths$0.length - 1, + nvals = vals.length - 1, + res = caml_make_vect(nmeths + nvals | 0, 0), + _I_ = nmeths - 1 | 0, + _H_ = 0; + if(_I_ >= 0){ + var i$0 = _H_; + for(;;){ + var + _O_ = get_method_label(table, caml_check_bound(meths$0, i$0)[1 + i$0]); + caml_check_bound(res, i$0)[1 + i$0] = _O_; + var _P_ = i$0 + 1 | 0; + if(_I_ !== i$0){var i$0 = _P_; continue;} + break; + } + } + var _K_ = nvals - 1 | 0, _J_ = 0; + if(_K_ >= 0){ + var i = _J_; + for(;;){ + var + _M_ = i + nmeths | 0, + _L_ = new_variable(table, caml_check_bound(vals, i)[1 + i]); + caml_check_bound(res, _M_)[1 + _M_] = _L_; + var _N_ = i + 1 | 0; + if(_K_ !== i){var i = _N_; continue;} + break; + } + } + return res; + } + function get_variable(table, name){ + try{var _F_ = caml_call2(Vars[28], name, table[7]); return _F_;} + catch(_G_){ + var _E_ = caml_wrap_exception(_G_); + if(_E_ === Stdlib[8]) + throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); + throw caml_maybe_attach_backtrace(_E_, 0); + } + } + function get_variables(table, names){ + function _C_(_D_){return get_variable(table, _D_);} + return caml_call2(Stdlib_Array[15], _C_, names); + } + function add_initializer(table, f){table[8] = [0, f, table[8]]; return 0;} + function create_table(public_methods){ + if(0 === public_methods) return new_table([0]); + var + tags = caml_call2(Stdlib_Array[15], public_method_label, public_methods), + table = new_table(tags); + function _B_(i, met){ + var lab = (i * 2 | 0) + 2 | 0; + table[3] = caml_call3(Meths[4], met, lab, table[3]); + table[4] = caml_call3(Labs[4], lab, 1, table[4]); + return 0; + } + caml_call2(Stdlib_Array[14], _B_, public_methods); + return table; + } + function init_class(table){ + inst_var_count[1] = (inst_var_count[1] + table[1] | 0) - 1 | 0; + table[8] = caml_call1(Stdlib_List[9], table[8]); + var _A_ = Stdlib_Sys[9]; + return resize + (table, + 3 + caml_div(caml_check_bound(table[2], 1)[2] * 16 | 0, _A_) | 0); + } + function inherits(cla, vals, virt_meths, concr_meths, param, top){ + var env = param[4], super$0 = param[2]; + narrow(cla, vals, virt_meths, concr_meths); + var init = top ? caml_call2(super$0, cla, env) : caml_call1(super$0, cla); + widen(cla); + var _s_ = 0, _t_ = to_array(concr_meths); + function _u_(nm){return get_method(cla, get_method_label(cla, nm));} + var + _v_ = [0, caml_call2(Stdlib_Array[15], _u_, _t_), _s_], + _w_ = to_array(vals); + function _x_(_z_){return get_variable(cla, _z_);} + var + _y_ = [0, [0, init], [0, caml_call2(Stdlib_Array[15], _x_, _w_), _v_]]; + return caml_call1(Stdlib_Array[6], _y_); + } + function make_class(pub_meths, class_init){ + var + table = create_table(pub_meths), + env_init = caml_call1(class_init, table); + init_class(table); + return [0, caml_call1(env_init, 0), class_init, env_init, 0]; + } + function make_class_store(pub_meths, class_init, init_table){ + var + table = create_table(pub_meths), + env_init = caml_call1(class_init, table); + init_class(table); + init_table[2] = class_init; + init_table[1] = env_init; + return 0; + } + function dummy_class(loc){ + function undef(param){ + throw caml_maybe_attach_backtrace([0, Stdlib[15], loc], 1); + } + return [0, undef, undef, undef, 0]; + } + function create_object(table){ + var obj = caml_obj_block(Stdlib_Obj[8], table[1]); + obj[1] = table[2]; + return caml_set_oo_id(obj); + } + function create_object_opt(obj_0, table){ + if(obj_0) return obj_0; + var obj = caml_obj_block(Stdlib_Obj[8], table[1]); + obj[1] = table[2]; + return caml_set_oo_id(obj); + } + function iter_f(obj, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var l = param$0[2], f = param$0[1]; + caml_call1(f, obj); + var param$0 = l; + } + } + function run_initializers(obj, table){ + var inits = table[8], _r_ = 0 !== inits ? 1 : 0; + return _r_ ? iter_f(obj, inits) : _r_; + } + function run_initializers_opt(obj_0, obj, table){ + if(obj_0) return obj; + var inits = table[8]; + if(0 !== inits) iter_f(obj, inits); + return obj; + } + function create_object_and_run_initiali(obj_0, table){ + if(obj_0) return obj_0; + var obj = create_object(table); + run_initializers(obj, table); + return obj; + } + function get_data(param){ + if(param) return param[2]; + throw caml_maybe_attach_backtrace([0, Assert_failure, _e_], 1); + } + function build_path(n, keys, tables){ + var res = [0, 0, 0, 0], r = [0, res], _o_ = 0; + if(n >= 0){ + var i = _o_; + for(;;){ + var _p_ = r[1]; + r[1] = [0, caml_check_bound(keys, i)[1 + i], _p_, 0]; + var _q_ = i + 1 | 0; + if(n !== i){var i = _q_; continue;} + break; + } + } + var v = r[1]; + if(! tables) + throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); + tables[2] = v; + return res; + } + function lookup_tables(root, keys){ + var root_data = get_data(root); + if(! root_data) return build_path(keys.length - 1 - 1 | 0, keys, root); + var i$1 = keys.length - 1 - 1 | 0, i = i$1, tables$0 = root_data; + a: + for(;;){ + if(0 > i) return tables$0; + var key = caml_check_bound(keys, i)[1 + i], tables$1 = tables$0; + for(;;){ + if(! tables$1) + throw caml_maybe_attach_backtrace([0, Assert_failure, _d_], 1); + if(tables$1[1] === key){ + var tables_data = get_data(tables$1); + if(! tables_data) + throw caml_maybe_attach_backtrace([0, Assert_failure, _g_], 1); + var i$0 = i - 1 | 0, i = i$0, tables$0 = tables_data; + continue a; + } + if(! tables$1) + throw caml_maybe_attach_backtrace([0, Assert_failure, _f_], 1); + var tables = tables$1[3]; + if(tables){var tables$1 = tables; continue;} + var next = [0, key, 0, 0]; + if(! tables$1) + throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); + tables$1[3] = next; + return build_path(i - 1 | 0, keys, next); + } + } + } + function new_cache(table){ + var n = new_method(table), switch$0 = 0; + if(0 !== (n % 2 | 0)){ + var _n_ = Stdlib_Sys[9]; + if + ((2 + caml_div(caml_check_bound(table[2], 1)[2] * 16 | 0, _n_) | 0) >= n){var n$0 = new_method(table); switch$0 = 1;} + } + if(! switch$0) var n$0 = n; + caml_check_bound(table[2], n$0)[1 + n$0] = 0; + return n$0; + } + function set_methods(table, methods){ + var len = methods.length - 1, i = [0, 0]; + for(;;){ + if(i[1] >= len) return 0; + var + _h_ = i[1], + label = caml_check_bound(methods, _h_)[1 + _h_], + next = + function(param){ + i[1]++; + var _m_ = i[1]; + return caml_check_bound(methods, _m_)[1 + _m_]; + }, + clo = next(0); + if(typeof clo === "number") + switch(clo){ + case 0: + var + x = next(0), + clo$0 = function(x){return function(obj){return x;};}(x); + break; + case 1: + var + n = next(0), + clo$0 = function(n){return function(obj){return obj[1 + n];};}(n); + break; case 2: - var width$0=scan_sign(width$1,ib),c=checked_peek_char(ib); - if(48 === c) - {var width=store_char(width$0,ib,c); - if(0 === width)return width; - var c$0=peek_char(ib); - if(ib[1])return width; - var switch$0=0; - if(99 <= c$0) - {if(111 === c$0) - return scan_octal_int(store_char(width,ib,c$0),ib); - if(120 === c$0)switch$0 = 1} - else - if(88 === c$0) - switch$0 = 1; - else - if(98 <= c$0)return scan_binary_int(store_char(width,ib,c$0),ib); - return switch$0 - ?scan_hexadecimal_int(store_char(width,ib,c$0),ib) - :scan_decimal_digit_star(width,ib)} - return scan_unsigned_decimal_int(width$0,ib); - case 3:return scan_octal_int(width$1,ib); - case 4:return scan_unsigned_decimal_int(width$1,ib); - default:return scan_hexadecimal_int(width$1,ib)}} - function scan_fractional_part(width,ib) - {if(0 === width)return width; - var c=peek_char(ib); - return ib[1] - ?width - :9 < c - 48 >>> 0 - ?width - :scan_decimal_digit_star(store_char(width,ib,c),ib)} - function scan_exponent_part(width,ib) - {if(0 === width)return width; - var c=peek_char(ib); - if(ib[1])return width; - if(69 !== c && 101 !== c)return width; - return scan_optionally_signed_decimal(store_char(width,ib,c),ib)} - function scan_float(width$1,precision,ib) - {var - width=scan_sign(width$1,ib), - width$0=scan_decimal_digit_star(width,ib); - if(0 === width$0)return [0,width$0,precision]; - var c=peek_char(ib); - if(ib[1])return [0,width$0,precision]; - if(46 === c) - {var - width$2=store_char(width$0,ib,c), - precision$0=min$1(width$2,precision), - width$3= - width$2 - - - (precision$0 - scan_fractional_part(precision$0,ib) | 0) - | - 0; - return [0,scan_exponent_part(width$3,ib),precision$0]} - return [0,scan_exponent_part(width$0,ib),precision]} - function check_case_insensitive_string(width,ib,error,str) - {function lowercase(c) - {return 25 < c - 65 >>> 0?c:char_of_int((c - 65 | 0) + 97 | 0)} - var - len=caml_ml_string_length(str), - width$0=[0,width], - _jE_=len - 1 | 0, - _jD_=0; - if(! (_jE_ < 0)) - {var i=_jD_; - for(;;) - {var c=peek_char(ib),_jF_=lowercase(caml_string_get(str,i)); - if(lowercase(c) !== _jF_)caml_call1(error,0); - if(0 === width$0[1])caml_call1(error,0); - width$0[1] = store_char(width$0[1],ib,c); - var _jG_=i + 1 | 0; - if(_jE_ !== i){var i=_jG_;continue} - break}} - return width$0[1]} - function scan_hex_float(width,precision,ib) - {var _jq_=0 === width?1:0,_jr_=_jq_ || end_of_input(ib); - if(_jr_)bad_hex_float(0); - var - width$0=scan_sign(width,ib), - _js_=0 === width$0?1:0, - _jt_=_js_ || end_of_input(ib); - if(_jt_)bad_hex_float(0); - var c=peek_char(ib),switch$0=0; - if(78 <= c) - {var switcher=c - 79 | 0; - if(30 < switcher >>> 0) - {if(! (32 <= switcher)) - {var - width$1=store_char(width$0,ib,c), - _ju_=0 === width$1?1:0, - _jv_=_ju_ || end_of_input(ib); - if(_jv_)bad_hex_float(0); - return check_case_insensitive_string - (width$1,ib,bad_hex_float,cst_an)}} - else - if(26 === switcher)switch$0 = 1} - else - {if(48 === c) - {var - width$3=store_char(width$0,ib,c), - _jy_=0 === width$3?1:0, - _jz_=_jy_ || end_of_input(ib); - if(_jz_)bad_hex_float(0); - var - width$4= - check_case_insensitive_string(width$3,ib,bad_hex_float,cst_x$2); - if(0 !== width$4 && ! end_of_input(ib)) - {var match=peek_char(ib),_jA_=match - 46 | 0,switch$1=0; - if(34 < _jA_ >>> 0) - {if(66 === _jA_)switch$1 = 1} - else - if(32 < _jA_ - 1 >>> 0)switch$1 = 1; - var width$5=switch$1?width$4:scan_hexadecimal_int(width$4,ib); - if(0 !== width$5 && ! end_of_input(ib)) - {var c$0=peek_char(ib); - if(46 === c$0) - {var width$6=store_char(width$5,ib,c$0),switch$2=0; - if(0 !== width$6 && ! end_of_input(ib)) - {var match$0=peek_char(ib),switch$3=0; - if(80 !== match$0 && 112 !== match$0) - {var - precision$0=min$1(width$6,precision), - width$10= - width$6 - - - (precision$0 - scan_hexadecimal_int(precision$0,ib) | 0) - | - 0; - switch$3 = 1} - if(! switch$3)var width$10=width$6; - var width$7=width$10; - switch$2 = 1} - if(! switch$2)var width$7=width$6; - var width$8=width$7} - else - var width$8=width$5; - if(0 !== width$8 && ! end_of_input(ib)) - {var c$1=peek_char(ib); - if(80 !== c$1 && 112 !== c$1)return width$8; - var - width$9=store_char(width$8,ib,c$1), - _jB_=0 === width$9?1:0, - _jC_=_jB_ || end_of_input(ib); - if(_jC_)bad_hex_float(0); - return scan_optionally_signed_decimal(width$9,ib)} - return width$8} - return width$5} - return width$4} - if(73 === c)switch$0 = 1} - if(switch$0) - {var - width$2=store_char(width$0,ib,c), - _jw_=0 === width$2?1:0, - _jx_=_jw_ || end_of_input(ib); - if(_jx_)bad_hex_float(0); - return check_case_insensitive_string - (width$2,ib,bad_hex_float,cst_nfinity)} - return bad_hex_float(0)} - function scan_caml_float_rest(width,precision,ib) - {var _jm_=0 === width?1:0,_jn_=_jm_ || end_of_input(ib); - if(_jn_)bad_float(0); - var - width$0=scan_decimal_digit_star(width,ib), - _jo_=0 === width$0?1:0, - _jp_=_jo_ || end_of_input(ib); - if(_jp_)bad_float(0); - var c=peek_char(ib),switcher=c - 69 | 0; - if(32 < switcher >>> 0) - {if(-23 === switcher) - {var - width$1=store_char(width$0,ib,c), - precision$0=min$1(width$1,precision), - width_precision=scan_fractional_part(precision$0,ib), - frac_width=precision$0 - width_precision | 0, - width$2=width$1 - frac_width | 0; - return scan_exponent_part(width$2,ib)}} - else - if(30 < switcher - 1 >>> 0)return scan_exponent_part(width$0,ib); - return bad_float(0)} - function scan_caml_float(width,precision,ib) - {var _i__=0 === width?1:0,_i$_=_i__ || end_of_input(ib); - if(_i$_)bad_float(0); - var - width$0=scan_sign(width,ib), - _ja_=0 === width$0?1:0, - _jb_=_ja_ || end_of_input(ib); - if(_jb_)bad_float(0); - var c=peek_char(ib); - if(49 <= c) - {if(! (58 <= c)) - {var - width$1=store_char(width$0,ib,c), - _jc_=0 === width$1?1:0, - _jd_=_jc_ || end_of_input(ib); - if(_jd_)bad_float(0); - return scan_caml_float_rest(width$1,precision,ib)}} - else - if(48 <= c) - {var - width$2=store_char(width$0,ib,c), - _je_=0 === width$2?1:0, - _jf_=_je_ || end_of_input(ib); - if(_jf_)bad_float(0); - var c$0=peek_char(ib); - if(88 !== c$0 && 120 !== c$0) - return scan_caml_float_rest(width$2,precision,ib); var - width$3=store_char(width$2,ib,c$0), - _jg_=0 === width$3?1:0, - _jh_=_jg_ || end_of_input(ib); - if(_jh_)bad_float(0); + e = next(0), + n$0 = next(0), + clo$0 = + function(e, n){return function(obj){return obj[1 + e][1 + n];};} + (e, n$0); + break; + case 3: var - width$4=scan_hexadecimal_int(width$3,ib), - _ji_=0 === width$4?1:0, - _jj_=_ji_ || end_of_input(ib); - if(_jj_)bad_float(0); - var c$1=peek_char(ib),switcher=c$1 - 80 | 0,switch$0=0; - if(32 < switcher >>> 0) - if(-34 === switcher) - {var width$5=store_char(width$4,ib,c$1),switch$1=0; - if(0 !== width$5 && ! end_of_input(ib)) - {var match=peek_char(ib),switch$2=0; - if(80 !== match && 112 !== match) - {var - precision$0=min$1(width$5,precision), - width$10= - width$5 - - - (precision$0 - scan_hexadecimal_int(precision$0,ib) | 0) - | - 0; - switch$2 = 1} - if(! switch$2)var width$10=width$5; - var width$6=width$10; - switch$1 = 1} - if(! switch$1)var width$6=width$5; - var width$7=width$6} - else - switch$0 = 1; - else - if(30 < switcher - 1 >>> 0)var width$7=width$4;else switch$0 = 1; - var width$8=switch$0?bad_float(0):width$7; - if(0 !== width$8 && ! end_of_input(ib)) - {var c$2=peek_char(ib); - if(80 !== c$2 && 112 !== c$2)return width$8; - var - width$9=store_char(width$8,ib,c$2), - _jk_=0 === width$9?1:0, - _jl_=_jk_ || end_of_input(ib); - if(_jl_)bad_hex_float(0); - return scan_optionally_signed_decimal(width$9,ib)} - return width$8} - return bad_float(0)} - function scan_string(stp,width,ib) - {var width$0=width; - for(;;) - {if(0 === width$0)return width$0; - var c=peek_char(ib); - if(ib[1])return width$0; - if(stp) - {var c$0=stp[1]; - if(c === c$0)return skip_char(width$0,ib); - var width$1=store_char(width$0,ib,c),width$0=width$1; - continue} - var _i9_=c - 9 | 0,switch$0=0; - if(4 < _i9_ >>> 0) - {if(23 === _i9_)switch$0 = 1} - else - if(1 < _i9_ - 2 >>> 0)switch$0 = 1; - if(switch$0)return width$0; - var width$2=store_char(width$0,ib,c),width$0=width$2; - continue}} - function scan_char(width,ib) - {return store_char(width,ib,checked_peek_char(ib))} - function hexadecimal_value_of_char(d) - {return 97 <= d?d - 87 | 0:65 <= d?d - 55 | 0:d - 48 | 0} - function check_next_char(message,width,ib) - {if(0 === width)return bad_token_length(message); - var c=peek_char(ib); - return ib[1]?bad_input(caml_call1(sprintf(_cs_),message)):c} - function check_next_char_for_char(_i7_,_i8_) - {return check_next_char(cst_a_Char,_i7_,_i8_)} - function check_next_char_for_string(_i5_,_i6_) - {return check_next_char(cst_a_String,_i5_,_i6_)} - function scan_backslash_char(width,ib) - {var c0=check_next_char_for_char(width,ib),switch$0=0; - if(40 <= c0) - {if(58 <= c0) - {var switcher=c0 - 92 | 0; - if(! (28 < switcher >>> 0)) - switch(switcher) - {case 28: - var - get_digit= - function(param) - {var c=next_char(ib),_i4_=c - 48 | 0,switch$0=0; - if(22 < _i4_ >>> 0) - {if(! (5 < _i4_ - 49 >>> 0))switch$0 = 1} - else - if(6 < _i4_ - 10 >>> 0)switch$0 = 1; - return switch$0?c:bad_input_escape(c)}, - c1=get_digit(0), - c2=get_digit(0), - _i0_=hexadecimal_value_of_char(c2), - c$0=(16 * hexadecimal_value_of_char(c1) | 0) + _i0_ | 0, - switch$1=0; - if(0 <= c$0 && ! (255 < c$0)) - {var _i2_=char_of_int(c$0);switch$1 = 1} - if(! switch$1) - var _i2_=bad_input(caml_call2(sprintf(_cz_),c1,c2)); - return store_char(width - 2 | 0,ib,_i2_); - case 0: - case 6: - case 18: - case 22: - case 24:switch$0 = 1;break - }} - else - if(48 <= c0) - {var - get_digit$0= - function(param) - {var c=next_char(ib); - return 9 < c - 48 >>> 0?bad_input_escape(c):c}, - c1$0=get_digit$0(0), - c2$0=get_digit$0(0), - c= - ((100 * (c0 - 48 | 0) | 0) + (10 * (c1$0 - 48 | 0) | 0) | 0) - + - (c2$0 - 48 | 0) - | - 0, - switch$2=0; - if(0 <= c && ! (255 < c)){var _i3_=char_of_int(c);switch$2 = 1} - if(! switch$2) - var _i3_=bad_input(caml_call3(sprintf(_cy_),c0,c1$0,c2$0)); - return store_char(width - 2 | 0,ib,_i3_)}} - else - if(34 === c0 || 39 <= c0)switch$0 = 1; - if(switch$0) - {var switch$3=0; - if(110 <= c0) - if(117 <= c0) - switch$3 = 1; - else - switch(c0 - 110 | 0) - {case 0:var _i1_=10;break; - case 4:var _i1_=13;break; - case 6:var _i1_=9;break; - default:switch$3 = 1} - else - if(98 === c0)var _i1_=8;else switch$3 = 1; - if(switch$3)var _i1_=c0; - return store_char(width,ib,_i1_)} - return bad_input_escape(c0)} - function scan_caml_char(width,ib) - {function find_stop(width) - {var c=check_next_char_for_char(width,ib); - return 39 === c?ignore_char(width,ib):character_mismatch(39,c)} - var c=checked_peek_char(ib); - if(39 === c) - {var - width$0=ignore_char(width,ib), - c$0=check_next_char_for_char(width$0,ib); - return 92 === c$0 - ?find_stop(scan_backslash_char(ignore_char(width$0,ib),ib)) - :find_stop(store_char(width$0,ib,c$0))} - return character_mismatch(39,c)} - function scan_caml_string(width,ib) - {function find_stop$0(counter,width) - {var width$0=width; - for(;;) - {var c=check_next_char_for_string(width$0,ib); - if(34 === c)return ignore_char(width$0,ib); - if(92 === c) - {var - width$1=ignore_char(width$0,ib), - match=check_next_char_for_string(width$1,ib); - if(10 === match) - {var _iY_=ignore_char(width$1,ib); - if(counter < 50) - {var counter$0=counter + 1 | 0; - return skip_spaces(counter$0,_iY_)} - return caml_trampoline_return(skip_spaces,[0,_iY_])} - if(13 === match) - {var - width$3=ignore_char(width$1,ib), - match$0=check_next_char_for_string(width$3,ib); - if(10 === match$0) - {var _iZ_=ignore_char(width$3,ib); - if(counter < 50) - {var counter$1=counter + 1 | 0; - return skip_spaces(counter$1,_iZ_)} - return caml_trampoline_return(skip_spaces,[0,_iZ_])} - var width$5=store_char(width$3,ib,13),width$0=width$5; - continue} - var width$4=scan_backslash_char(width$1,ib),width$0=width$4; - continue} - var width$2=store_char(width$0,ib,c),width$0=width$2; - continue}} - function skip_spaces(counter,width) - {var width$0=width; - for(;;) - {var match=check_next_char_for_string(width$0,ib); - if(32 === match) - {var width$1=ignore_char(width$0,ib),width$0=width$1;continue} - if(counter < 50) - {var counter$0=counter + 1 | 0; - return find_stop$0(counter$0,width$0)} - return caml_trampoline_return(find_stop$0,[0,width$0])}} - function find_stop(width){return caml_trampoline(find_stop$0(0,width))} - var c=checked_peek_char(ib); - return 34 === c - ?find_stop(ignore_char(width,ib)) - :character_mismatch(34,c)} - function scan_chars_in_char_set(char_set,scan_indic,width,ib) - {function scan_chars(i,stp) - {var i$0=i; - for(;;) - {var c=peek_char(ib),_iU_=0 < i$0?1:0; - if(_iU_) - {var _iV_=1 - ib[1]; - if(_iV_) - var _iW_=is_in_char_set(char_set,c),_iX_=_iW_?c !== stp?1:0:_iW_; - else - var _iX_=_iV_} - else - var _iX_=_iU_; - if(_iX_) - {store_char(max_int,ib,c);var i$1=i$0 - 1 | 0,i$0=i$1;continue} - return _iX_}} - if(scan_indic) - {var c=scan_indic[1]; - scan_chars(width,c); - var _iT_=1 - ib[1]; - if(_iT_) - {var ci=peek_char(ib); - return c === ci?invalidate_current_char(ib):character_mismatch(c,ci)} - return _iT_} - return scan_chars(width,-1)} - function scanf_bad_input(ib,x) - {if(x[1] === Scan_failure) - var s=x[2]; - else - {if(x[1] !== Failure)throw x;var s=x[2]} - var i=char_count(ib); - return bad_input(caml_call2(sprintf(_cB_),i,s))} - function get_counter(ib,counter) - {switch(counter) - {case 0:return ib[5];case 1:return char_count(ib);default:return ib[6]}} - function width_of_pad_opt(pad_opt) - {if(pad_opt){var width=pad_opt[1];return width}return max_int} - function stopper_of_formatting_lit(fmting) - {if(6 === fmting)return _cC_; - var - str=string_of_formatting_lit(fmting), - stp=caml_string_get(str,1), - sub_str=sub$0(str,2,caml_ml_string_length(str) - 2 | 0); - return [0,stp,sub_str]} - function take_format_readers$0(counter,k,fmt) - {var fmt$0=fmt; - for(;;) - if(typeof fmt$0 === "number") - return caml_call1(k,0); - else - switch(fmt$0[0]) - {case 0:var fmt$1=fmt$0[1],fmt$0=fmt$1;continue; - case 1:var fmt$2=fmt$0[1],fmt$0=fmt$2;continue; - case 2:var fmt$3=fmt$0[2],fmt$0=fmt$3;continue; - case 3:var fmt$4=fmt$0[2],fmt$0=fmt$4;continue; - case 4:var fmt$5=fmt$0[4],fmt$0=fmt$5;continue; - case 5:var fmt$6=fmt$0[4],fmt$0=fmt$6;continue; - case 6:var fmt$7=fmt$0[4],fmt$0=fmt$7;continue; - case 7:var fmt$8=fmt$0[4],fmt$0=fmt$8;continue; - case 8:var fmt$9=fmt$0[4],fmt$0=fmt$9;continue; - case 9:var fmt$10=fmt$0[2],fmt$0=fmt$10;continue; - case 10:var fmt$11=fmt$0[1],fmt$0=fmt$11;continue; - case 11:var fmt$12=fmt$0[2],fmt$0=fmt$12;continue; - case 12:var fmt$13=fmt$0[2],fmt$0=fmt$13;continue; - case 13:var fmt$14=fmt$0[3],fmt$0=fmt$14;continue; - case 14: - var rest=fmt$0[3],fmtty=fmt$0[2],_iR_=erase_rel(symm(fmtty)); - if(counter < 50) - {var counter$0=counter + 1 | 0; - return take_fmtty_format_readers$0(counter$0,k,_iR_,rest)} - return caml_trampoline_return - (take_fmtty_format_readers$0,[0,k,_iR_,rest]); - case 15:var fmt$15=fmt$0[1],fmt$0=fmt$15;continue; - case 16:var fmt$16=fmt$0[1],fmt$0=fmt$16;continue; - case 17:var fmt$17=fmt$0[2],fmt$0=fmt$17;continue; - case 18: - var _iS_=fmt$0[1]; - if(0 === _iS_[0]) - {var - rest$0=fmt$0[2], - match=_iS_[1], - fmt$18=match[1], - fmt$19=concat_fmt(fmt$18,rest$0), - fmt$0=fmt$19; - continue} - var - rest$1=fmt$0[2], - match$0=_iS_[1], - fmt$20=match$0[1], - fmt$21=concat_fmt(fmt$20,rest$1), - fmt$0=fmt$21; - continue; - case 19: - var fmt_rest=fmt$0[1]; - return function(reader) - {function new_k(readers_rest) - {return caml_call1(k,[0,reader,readers_rest])} - return take_format_readers(new_k,fmt_rest)}; - case 20:var fmt$22=fmt$0[3],fmt$0=fmt$22;continue; - case 21:var fmt$23=fmt$0[2],fmt$0=fmt$23;continue; - case 22:var fmt$24=fmt$0[1],fmt$0=fmt$24;continue; - case 23: - var rest$2=fmt$0[2],ign=fmt$0[1]; - if(typeof ign === "number") - switch(ign) - {case 0:var fmt$0=rest$2;continue; - case 1:var fmt$0=rest$2;continue; - case 2: - return function(reader) - {function new_k(readers_rest) - {return caml_call1(k,[0,reader,readers_rest])} - return take_format_readers(new_k,rest$2)}; - default:var fmt$0=rest$2;continue} - else - switch(ign[0]) - {case 0:var fmt$0=rest$2;continue; - case 1:var fmt$0=rest$2;continue; - case 2:var fmt$0=rest$2;continue; - case 3:var fmt$0=rest$2;continue; - case 4:var fmt$0=rest$2;continue; - case 5:var fmt$0=rest$2;continue; - case 6:var fmt$0=rest$2;continue; - case 7:var fmt$0=rest$2;continue; - case 8:var fmt$0=rest$2;continue; - case 9: - var fmtty$0=ign[2]; - if(counter < 50) - {var counter$1=counter + 1 | 0; - return take_fmtty_format_readers$0 - (counter$1,k,fmtty$0,rest$2)} - return caml_trampoline_return - (take_fmtty_format_readers$0,[0,k,fmtty$0,rest$2]); - case 10:var fmt$0=rest$2;continue; - default:var fmt$0=rest$2;continue} - default:var fmt$25=fmt$0[3],fmt$0=fmt$25;continue}} - function take_fmtty_format_readers$0(counter,k,fmtty,fmt) - {var fmtty$0=fmtty; - for(;;) - if(typeof fmtty$0 === "number") - {if(counter < 50) - {var counter$0=counter + 1 | 0; - return take_format_readers$0(counter$0,k,fmt)} - return caml_trampoline_return(take_format_readers$0,[0,k,fmt])} - else - switch(fmtty$0[0]) - {case 0:var fmtty$1=fmtty$0[1],fmtty$0=fmtty$1;continue; - case 1:var fmtty$2=fmtty$0[1],fmtty$0=fmtty$2;continue; - case 2:var fmtty$3=fmtty$0[1],fmtty$0=fmtty$3;continue; - case 3:var fmtty$4=fmtty$0[1],fmtty$0=fmtty$4;continue; - case 4:var fmtty$5=fmtty$0[1],fmtty$0=fmtty$5;continue; - case 5:var fmtty$6=fmtty$0[1],fmtty$0=fmtty$6;continue; - case 6:var fmtty$7=fmtty$0[1],fmtty$0=fmtty$7;continue; - case 7:var fmtty$8=fmtty$0[1],fmtty$0=fmtty$8;continue; - case 8:var fmtty$9=fmtty$0[2],fmtty$0=fmtty$9;continue; - case 9: - var - rest=fmtty$0[3], - ty2=fmtty$0[2], - ty1=fmtty$0[1], - ty=trans(symm(ty1),ty2), - fmtty$10=concat_fmtty(ty,rest), - fmtty$0=fmtty$10; - continue; - case 10:var fmtty$11=fmtty$0[1],fmtty$0=fmtty$11;continue; - case 11:var fmtty$12=fmtty$0[1],fmtty$0=fmtty$12;continue; - case 12:var fmtty$13=fmtty$0[1],fmtty$0=fmtty$13;continue; - case 13: - var fmt_rest=fmtty$0[1]; - return function(reader) - {function new_k(readers_rest) - {return caml_call1(k,[0,reader,readers_rest])} - return take_fmtty_format_readers(new_k,fmt_rest,fmt)}; - default: - var fmt_rest$0=fmtty$0[1]; - return function(reader) - {function new_k(readers_rest) - {return caml_call1(k,[0,reader,readers_rest])} - return take_fmtty_format_readers(new_k,fmt_rest$0,fmt)}}} - function take_format_readers(k,fmt) - {return caml_trampoline(take_format_readers$0(0,k,fmt))} - function take_fmtty_format_readers(k,fmtty,fmt) - {return caml_trampoline(take_fmtty_format_readers$0(0,k,fmtty,fmt))} - function pad_prec_scanf(ib,fmt,readers,pad,prec,scan,token) - {if(typeof pad === "number") - {if(typeof prec === "number") - {if(prec)return invalid_arg(cst_scanf_bad_conversion); - caml_call3(scan,max_int,max_int,ib); - var x=caml_call1(token,ib); - return [0,x,make_scanf(ib,fmt,readers)]} - var p=prec[1]; - caml_call3(scan,max_int,p,ib); - var x$0=caml_call1(token,ib); - return [0,x$0,make_scanf(ib,fmt,readers)]} - else - {if(0 === pad[0]) - {if(pad[1]) - {var _iQ_=pad[2]; - if(typeof prec === "number") - {if(prec)return invalid_arg(cst_scanf_bad_conversion$0); - caml_call3(scan,_iQ_,max_int,ib); - var x$1=caml_call1(token,ib); - return [0,x$1,make_scanf(ib,fmt,readers)]} - var p$0=prec[1]; - caml_call3(scan,_iQ_,p$0,ib); - var x$2=caml_call1(token,ib); - return [0,x$2,make_scanf(ib,fmt,readers)]} - return invalid_arg(cst_scanf_bad_conversion$1)} - return invalid_arg(cst_scanf_bad_conversion$2)}} - function make_scanf(ib,fmt,readers) - {var fmt$0=fmt; - for(;;) - if(typeof fmt$0 === "number") - return 0; - else - switch(fmt$0[0]) - {case 0: - var rest=fmt$0[1]; - scan_char(0,ib); - var c=token_char(ib); - return [0,c,make_scanf(ib,rest,readers)]; - case 1: - var rest$0=fmt$0[1]; - scan_caml_char(0,ib); - var c$0=token_char(ib); - return [0,c$0,make_scanf(ib,rest$0,readers)]; - case 2: - var _iD_=fmt$0[1],_iE_=fmt$0[2]; - if(typeof _iE_ !== "number") - switch(_iE_[0]) - {case 17: - var - rest$2=_iE_[2], - fmting_lit=_iE_[1], - match=stopper_of_formatting_lit(fmting_lit), - str=match[2], - stp=match[1], - scan$0= - function(width,param,ib) - {return scan_string([0,stp],width,ib)}, - str_rest=[11,str,rest$2]; - return pad_prec_scanf - (ib,str_rest,readers,_iD_,0,scan$0,token_string); - case 18: - var _iF_=_iE_[1]; - if(0 === _iF_[0]) - {var - rest$3=_iE_[2], - match$0=_iF_[1], - fmt$1=match$0[1], - scan$1= - function(width,param,ib){return scan_string(_cD_,width,ib)}; - return pad_prec_scanf - (ib, - concat_fmt(fmt$1,rest$3), - readers, - _iD_, - 0, - scan$1, - token_string)} - var - rest$4=_iE_[2], - match$1=_iF_[1], - fmt$2=match$1[1], - scan$2= - function(width,param,ib){return scan_string(_cE_,width,ib)}; - return pad_prec_scanf - (ib, - concat_fmt(fmt$2,rest$4), - readers, - _iD_, - 0, - scan$2, - token_string) - } - var - rest$1=fmt$0[2], - scan=function(width,param,ib){return scan_string(0,width,ib)}; - return pad_prec_scanf(ib,rest$1,readers,_iD_,0,scan,token_string); - case 3: - var - rest$5=fmt$0[2], - pad=fmt$0[1], - scan$3=function(width,param,ib){return scan_caml_string(width,ib)}; - return pad_prec_scanf(ib,rest$5,readers,pad,0,scan$3,token_string); - case 4: - var - rest$6=fmt$0[4], - prec=fmt$0[3], - pad$0=fmt$0[2], - iconv=fmt$0[1], - conv=integer_conversion_of_char(char_of_iconv(iconv)), - scan$4= - function(width,param,ib) - {return scan_int_conversion(conv,width,ib)}; - return pad_prec_scanf - (ib, - rest$6, - readers, - pad$0, - prec, - scan$4, - function(ib) - {return caml_int_of_string(token_int_literal(conv,ib))}); - case 5: - var - rest$7=fmt$0[4], - prec$0=fmt$0[3], - pad$1=fmt$0[2], - iconv$0=fmt$0[1], - conv$0=integer_conversion_of_char(char_of_iconv(iconv$0)), - scan$5= - function(width,param,ib) - {return scan_int_conversion(conv$0,width,ib)}; - return pad_prec_scanf - (ib, - rest$7, - readers, - pad$1, - prec$0, - scan$5, - function(ib) - {return caml_int_of_string(token_int_literal(conv$0,ib))}); - case 6: - var - rest$8=fmt$0[4], - prec$1=fmt$0[3], - pad$2=fmt$0[2], - iconv$1=fmt$0[1], - conv$1=integer_conversion_of_char(char_of_iconv(iconv$1)), - scan$6= - function(width,param,ib) - {return scan_int_conversion(conv$1,width,ib)}; - return pad_prec_scanf - (ib, - rest$8, - readers, - pad$2, - prec$1, - scan$6, - function(ib) - {return caml_int_of_string(token_int_literal(conv$1,ib))}); - case 7: - var - rest$9=fmt$0[4], - prec$2=fmt$0[3], - pad$3=fmt$0[2], - iconv$2=fmt$0[1], - conv$2=integer_conversion_of_char(char_of_iconv(iconv$2)), - scan$7= - function(width,param,ib) - {return scan_int_conversion(conv$2,width,ib)}; - return pad_prec_scanf - (ib, - rest$9, - readers, - pad$3, - prec$2, - scan$7, - function(ib) - {return caml_int64_of_string(token_int_literal(conv$2,ib))}); - case 8: - switch(fmt$0[1][2]) - {case 5: - case 8: - var rest$11=fmt$0[4],prec$4=fmt$0[3],pad$5=fmt$0[2]; - return pad_prec_scanf - (ib, - rest$11, - readers, - pad$5, - prec$4, - scan_caml_float, - token_float); - case 6: - case 7: - var rest$12=fmt$0[4],prec$5=fmt$0[3],pad$6=fmt$0[2]; - return pad_prec_scanf - (ib,rest$12,readers,pad$6,prec$5,scan_hex_float,token_float); - default: - var rest$10=fmt$0[4],prec$3=fmt$0[3],pad$4=fmt$0[2]; - return pad_prec_scanf - (ib,rest$10,readers,pad$4,prec$3,scan_float,token_float)} - case 9: - var - rest$13=fmt$0[2], - pad$7=fmt$0[1], - scan$8= - function(param,_iP_,ib) - {var - c=checked_peek_char(ib), - m= - 102 === c - ?5 - :116 === c?4:bad_input(caml_call1(sprintf(_cA_),c)); - return scan_string(0,m,ib)}; - return pad_prec_scanf(ib,rest$13,readers,pad$7,0,scan$8,token_bool); - case 10: - var rest$14=fmt$0[1]; - if(end_of_input(ib)){var fmt$0=rest$14;continue} - return bad_input(cst_end_of_input_not_found); - case 11: - var rest$15=fmt$0[2],str$0=fmt$0[1]; - iter$4(function(_iO_){return check_char(ib,_iO_)},str$0); - var fmt$0=rest$15; - continue; - case 12: - var rest$16=fmt$0[2],chr=fmt$0[1]; - check_char(ib,chr); - var fmt$0=rest$16; - continue; - case 13: - var rest$17=fmt$0[3],fmtty=fmt$0[2],pad_opt=fmt$0[1]; - scan_caml_string(width_of_pad_opt(pad_opt),ib); - var s=token_string(ib); - try - {var _iG_=format_of_string_fmtty(s,fmtty),fmt$3=_iG_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] !== Failure)throw exn; - var msg=exn[2],fmt$3=bad_input(msg)} - return [0,fmt$3,make_scanf(ib,rest$17,readers)]; - case 14: - var rest$18=fmt$0[3],fmtty$0=fmt$0[2],pad_opt$0=fmt$0[1]; - scan_caml_string(width_of_pad_opt(pad_opt$0),ib); - var s$0=token_string(ib); - try - {var - match$2=fmt_ebb_of_string(0,s$0), - fmt$6=match$2[1], - match$3=fmt_ebb_of_string(0,s$0), - fmt$7=match$3[1], - fmt$8=type_format(fmt$7,erase_rel(symm(fmtty$0))), - _iI_=type_format(fmt$6,erase_rel(fmtty$0)), - fmt$5=fmt$8, - fmt$4=_iI_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] !== Failure)throw exn; - var - msg$0=exn[2], - _iH_=bad_input(msg$0), - fmt$5=_iH_[2], - fmt$4=_iH_[1]} - return [0, - [0,fmt$4,s$0], - make_scanf(ib,concat_fmt(fmt$5,rest$18),readers)]; - case 15:return invalid_arg(cst_scanf_bad_conversion_a); - case 16:return invalid_arg(cst_scanf_bad_conversion_t); - case 17: - var - rest$19=fmt$0[2], - formatting_lit=fmt$0[1], - _iJ_=string_of_formatting_lit(formatting_lit); - iter$4(function(_iN_){return check_char(ib,_iN_)},_iJ_); - var fmt$0=rest$19; - continue; - case 18: - var _iK_=fmt$0[1]; - if(0 === _iK_[0]) - {var rest$20=fmt$0[2],match$4=_iK_[1],fmt$9=match$4[1]; - check_char(ib,64); - check_char(ib,123); - var fmt$10=concat_fmt(fmt$9,rest$20),fmt$0=fmt$10; - continue} - var rest$21=fmt$0[2],match$5=_iK_[1],fmt$11=match$5[1]; - check_char(ib,64); - check_char(ib,91); - var fmt$12=concat_fmt(fmt$11,rest$21),fmt$0=fmt$12; - continue; - case 19: - var fmt_rest=fmt$0[1]; - if(readers) - {var - readers_rest=readers[2], - reader=readers[1], - x=caml_call1(reader,ib); - return [0,x,make_scanf(ib,fmt_rest,readers_rest)]} - return invalid_arg(cst_scanf_missing_reader); - case 20: - var _iL_=fmt$0[1],_iM_=fmt$0[3]; - if(typeof _iM_ !== "number" && 17 === _iM_[0]) - {var - rest$23=_iM_[2], - fmting_lit$0=_iM_[1], - char_set$0=fmt$0[2], - match$6=stopper_of_formatting_lit(fmting_lit$0), - str$1=match$6[2], - stp$0=match$6[1], - width$0=width_of_pad_opt(_iL_); - scan_chars_in_char_set(char_set$0,[0,stp$0],width$0,ib); - var s$2=token_string(ib),str_rest$0=[11,str$1,rest$23]; - return [0,s$2,make_scanf(ib,str_rest$0,readers)]} - var - rest$22=fmt$0[3], - char_set=fmt$0[2], - width=width_of_pad_opt(_iL_); - scan_chars_in_char_set(char_set,0,width,ib); - var s$1=token_string(ib); - return [0,s$1,make_scanf(ib,rest$22,readers)]; - case 21: - var - rest$24=fmt$0[2], - counter=fmt$0[1], - count=get_counter(ib,counter); - return [0,count,make_scanf(ib,rest$24,readers)]; - case 22: - var rest$25=fmt$0[1],c$1=checked_peek_char(ib); - return [0,c$1,make_scanf(ib,rest$25,readers)]; - case 23: - var - rest$26=fmt$0[2], - ign=fmt$0[1], - match$7=param_format_of_ignored_format(ign,rest$26), - fmt$13=match$7[1], - match$8=make_scanf(ib,fmt$13,readers); - if(match$8){var arg_rest=match$8[2];return arg_rest} - throw [0,Assert_failure,_cF_]; - default:return invalid_arg(cst_scanf_bad_conversion_custo)}} - function kscanf(ib,ef,param) - {var str=param[2],fmt=param[1]; - function apply(f,args) - {var f$0=f,args$0=args; - for(;;) - {if(args$0) - {var - r=args$0[2], - x=args$0[1], - f$1=caml_call1(f$0,x), - f$0=f$1, - args$0=r; - continue} - return f$0}} - function k(readers,f) - {reset_token(ib); - try - {var _iC_=[0,make_scanf(ib,fmt,readers)],_iB_=_iC_} - catch(exc) - {exc = caml_wrap_exception(exc); - var switch$0=0; - if - (exc[1] - !== - Scan_failure - && - exc[1] - !== - Failure - && - exc - !== - End_of_file) - {if(exc[1] !== Invalid_argument)throw exc; - var - msg=exc[2], - _iA_= - invalid_arg - (cat(msg,cat(cst_in_format,cat(escaped$1(str),cst$88)))); - switch$0 = 1} - if(! switch$0)var _iA_=[1,exc]; - var _iB_=_iA_} - if(0 === _iB_[0]){var args=_iB_[1];return apply(f,args)} - var exc=_iB_[1]; - return caml_call2(ef,ib,exc)} - return take_format_readers(k,fmt)} - function bscanf(ib,fmt){return kscanf(ib,scanf_bad_input,fmt)} - function ksscanf(s,ef,fmt){return kscanf(from_string$1(s),ef,fmt)} - function sscanf(s,fmt) - {return kscanf(from_string$1(s),scanf_bad_input,fmt)} - function scanf(fmt){return kscanf(stdib,scanf_bad_input,fmt)} - function bscanf_format(ib,format,f) - {scan_caml_string(max_int,ib); - var str=token_string(ib); - try - {var _iz_=format_of_string_format(str,format),fmt=_iz_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] !== Failure)throw exn; - var msg=exn[2],fmt=bad_input(msg)} - return caml_call1(f,fmt)} - function sscanf_format(s,format,f) - {return bscanf_format(from_string$1(s),format,f)} - function format_from_string(s,fmt) - {function _iy_(x){return x} - return sscanf_format(cat(cst$90,cat(escaped$1(s),cst$89)),fmt,_iy_)} - function unescaped(s) - {function _ix_(x){return x} - return caml_call1(sscanf(cat(cst$92,cat(s,cst$91)),_cG_),_ix_)} - function kfscanf(ic,ef,fmt){return kscanf(memo_from_channel(ic),ef,fmt)} - function fscanf(ic,fmt) - {return kscanf(memo_from_channel(ic),scanf_bad_input,fmt)} - var - Stdlib_Scanf= - [0, - [0, - stdib, - from_file, - from_file_bin, - close_in, - from_file, - from_file_bin, - from_string$1, - from_function$0, - from_channel$0, - end_of_input, - beginning_of_input, - name_of_input, - stdib], - Scan_failure, - bscanf, - sscanf, - scanf, - kscanf, - ksscanf, - bscanf_format, - sscanf_format, - format_from_string, - unescaped, - fscanf, - kfscanf]; - caml_register_global(819,Stdlib_Scanf,"Stdlib__Scanf"); - function register(name,v){return caml_register_named_value(name,v)} - function register_exception(name,exn) - {var slot=caml_obj_tag(exn) === 248?exn:exn[1]; - return caml_register_named_value(name,slot)} - var Stdlib_Callback=[0,register,register_exception]; - caml_register_global(820,Stdlib_Callback,"Stdlib__Callback"); - function copy$7(o){var o$0=o.slice();return caml_set_oo_id(o$0)} - var params$0=[0,1,1,1,3,16],initial_object_size=2,dummy_item=0; - function public_method_label(s) - {var accu=[0,0],_iu_=caml_ml_string_length(s) - 1 | 0,_it_=0; - if(! (_iu_ < 0)) - {var i=_it_; - for(;;) - {var _iv_=caml_string_get(s,i); - accu[1] = (223 * accu[1] | 0) + _iv_ | 0; - var _iw_=i + 1 | 0; - if(_iu_ !== i){var i=_iw_;continue} - break}} - accu[1] = accu[1] & 2147483647; - var tag=1073741823 < accu[1]?accu[1] + 2147483648 | 0:accu[1]; - return tag} - function compare$14(x,y){return caml_string_compare(x,y)} - var Vars=caml_call1(Stdlib_Map[1],[0,compare$14]); - function compare$15(x,y){return caml_string_compare(x,y)} - var - Meths=caml_call1(Stdlib_Map[1],[0,compare$15]), - compare$16=caml_int_compare, - Labs=caml_call1(Stdlib_Map[1],[0,compare$16]), - dummy_table=[0,0,[0,dummy_item],Meths[1],Labs[1],0,0,Vars[1],0], - table_count=[0,0], - dummy_met=caml_obj_block(0,0); - function fit_size(n){return 2 < n?fit_size((n + 1 | 0) / 2 | 0) * 2 | 0:n} - function new_table(pub_labels) - {table_count[1]++; - var - len=pub_labels.length - 1, - methods=caml_make_vect((len * 2 | 0) + 2 | 0,dummy_met); - caml_check_bound(methods,0)[1] = len; - var _in_=((fit_size(len) * 32 | 0) / 8 | 0) - 1 | 0; - caml_check_bound(methods,1)[2] = _in_; - var _ip_=len - 1 | 0,_io_=0; - if(! (_ip_ < 0)) - {var i=_io_; - for(;;) - {var - _ir_=(i * 2 | 0) + 3 | 0, - _iq_=caml_check_bound(pub_labels,i)[1 + i]; - caml_check_bound(methods,_ir_)[1 + _ir_] = _iq_; - var _is_=i + 1 | 0; - if(_ip_ !== i){var i=_is_;continue} - break}} - return [0,initial_object_size,methods,Meths[1],Labs[1],0,0,Vars[1],0]} - function resize$1(array,new_size) - {var old_size=array[2].length - 1,_il_=old_size < new_size?1:0; - if(_il_) - {var new_buck=caml_make_vect(new_size,dummy_met); - blit$1(array[2],0,new_buck,0,old_size); - array[2] = new_buck; - var _im_=0} - else - var _im_=_il_; - return _im_} - var method_count=[0,0],inst_var_count=[0,0]; - function new_method(table) - {var index=table[2].length - 1; - resize$1(table,index + 1 | 0); - return index} - function get_method_label(table,name) - {try - {var _ij_=caml_call2(Meths[28],name,table[3]);return _ij_} - catch(_ik_) - {_ik_ = caml_wrap_exception(_ik_); - if(_ik_ === Not_found) - {var label=new_method(table); - table[3] = caml_call3(Meths[4],name,label,table[3]); - table[4] = caml_call3(Labs[4],label,1,table[4]); - return label} - throw _ik_}} - function get_method_labels(table,names) - {return map$7(function(_ii_){return get_method_label(table,_ii_)},names)} - function set_method(table,label,element) - {method_count[1]++; - return caml_call2(Labs[28],label,table[4]) - ?(resize$1(table,label + 1 | 0), - caml_check_bound(table[2],label)[1 + label] - = - element, - 0) - :(table[6] = [0,[0,label,element],table[6]],0)} - function get_method(table,label) - {try - {var _ig_=assoc(label,table[6]);return _ig_} - catch(_ih_) - {_ih_ = caml_wrap_exception(_ih_); - if(_ih_ === Not_found) - return caml_check_bound(table[2],label)[1 + label]; - throw _ih_}} - function to_list$3(arr){return 0 === arr?0:to_list$1(arr)} - function narrow(table,vars,virt_meths,concr_meths) - {var - vars$0=to_list$3(vars), - virt_meths$0=to_list$3(virt_meths), - concr_meths$0=to_list$3(concr_meths), - virt_meth_labs= - map$4 - (function(_if_){return get_method_label(table,_if_)},virt_meths$0), - concr_meth_labs= - map$4 - (function(_ie_){return get_method_label(table,_ie_)},concr_meths$0); - table[5] - = - [0, - [0,table[3],table[4],table[6],table[7],virt_meth_labs,vars$0], - table[5]]; - var _h7_=Vars[1],_h8_=table[7]; - function _h9_(lab,info,tvars) - {return mem(lab,vars$0)?caml_call3(Vars[4],lab,info,tvars):tvars} - table[7] = caml_call3(Vars[13],_h9_,_h8_,_h7_); - var by_name=[0,Meths[1]],by_label=[0,Labs[1]]; - iter2$0 - (function(met,label) - {by_name[1] = caml_call3(Meths[4],met,label,by_name[1]); - var _ia_=by_label[1]; - try - {var _ic_=caml_call2(Labs[28],label,table[4]),_ib_=_ic_} - catch(_id_) - {_id_ = caml_wrap_exception(_id_); - if(_id_ !== Not_found)throw _id_; - var _ib_=1} - by_label[1] = caml_call3(Labs[4],label,_ib_,_ia_); - return 0}, - concr_meths$0, - concr_meth_labs); - iter2$0 - (function(met,label) - {by_name[1] = caml_call3(Meths[4],met,label,by_name[1]); - by_label[1] = caml_call3(Labs[4],label,0,by_label[1]); - return 0}, - virt_meths$0, - virt_meth_labs); - table[3] = by_name[1]; - table[4] = by_label[1]; - var _h__=0,_h$_=table[6]; - table[6] - = - fold_right - (function(met,hm) - {var lab=met[1];return mem(lab,virt_meth_labs)?hm:[0,met,hm]}, - _h$_, - _h__); - return 0} - function widen(table) - {var - match=hd(table[5]), - vars=match[6], - virt_meths=match[5], - saved_vars=match[4], - saved_hidden_meths=match[3], - by_label=match[2], - by_name=match[1]; - table[5] = tl(table[5]); - table[7] - = - fold_left$0 - (function(s,v) - {var _h6_=caml_call2(Vars[28],v,table[7]); - return caml_call3(Vars[4],v,_h6_,s)}, - saved_vars, - vars); - table[3] = by_name; - table[4] = by_label; - var _h5_=table[6]; - table[6] - = - fold_right - (function(met,hm) - {var lab=met[1];return mem(lab,virt_meths)?hm:[0,met,hm]}, - _h5_, - saved_hidden_meths); - return 0} - function new_slot(table) - {var index=table[1];table[1] = index + 1 | 0;return index} - function new_variable(table,name) - {try - {var _h3_=caml_call2(Vars[28],name,table[7]);return _h3_} - catch(_h4_) - {_h4_ = caml_wrap_exception(_h4_); - if(_h4_ === Not_found) - {var index=new_slot(table); - if(caml_string_notequal(name,cst$93)) - table[7] = caml_call3(Vars[4],name,index,table[7]); - return index} - throw _h4_}} - function to_array(arr){return caml_equal(arr,0)?[0]:arr} - function new_methods_variables(table,meths,vals) - {var - meths$0=to_array(meths), - nmeths=meths$0.length - 1, - nvals=vals.length - 1, - res=caml_make_vect(nmeths + nvals | 0,0), - _hV_=nmeths - 1 | 0, - _hU_=0; - if(! (_hV_ < 0)) - {var i$0=_hU_; - for(;;) - {var - _h1_= - get_method_label(table,caml_check_bound(meths$0,i$0)[1 + i$0]); - caml_check_bound(res,i$0)[1 + i$0] = _h1_; - var _h2_=i$0 + 1 | 0; - if(_hV_ !== i$0){var i$0=_h2_;continue} - break}} - var _hX_=nvals - 1 | 0,_hW_=0; - if(! (_hX_ < 0)) - {var i=_hW_; - for(;;) - {var - _hZ_=i + nmeths | 0, - _hY_=new_variable(table,caml_check_bound(vals,i)[1 + i]); - caml_check_bound(res,_hZ_)[1 + _hZ_] = _hY_; - var _h0_=i + 1 | 0; - if(_hX_ !== i){var i=_h0_;continue} - break}} - return res} - function get_variable(table,name) - {try - {var _hS_=caml_call2(Vars[28],name,table[7]);return _hS_} - catch(_hT_) - {_hT_ = caml_wrap_exception(_hT_); - if(_hT_ === Not_found)throw [0,Assert_failure,_cH_]; - throw _hT_}} - function get_variables(table,names) - {return map$7(function(_hR_){return get_variable(table,_hR_)},names)} - function add_initializer(table,f){table[8] = [0,f,table[8]];return 0} - function create_table(public_methods) - {if(0 === public_methods)return new_table([0]); - var - tags=map$7(public_method_label,public_methods), - table=new_table(tags); - iteri$3 - (function(i,met) - {var lab=(i * 2 | 0) + 2 | 0; - table[3] = caml_call3(Meths[4],met,lab,table[3]); - table[4] = caml_call3(Labs[4],lab,1,table[4]); - return 0}, - public_methods); - return table} - function init_class(table) - {inst_var_count[1] = (inst_var_count[1] + table[1] | 0) - 1 | 0; - table[8] = rev(table[8]); - return resize$1 - (table, - 3 + ((caml_check_bound(table[2],1)[2] * 16 | 0) / 32 | 0) | 0)} - function inherits(cla,vals,virt_meths,concr_meths,param,top) - {var env=param[4],super$0=param[2]; - narrow(cla,vals,virt_meths,concr_meths); - var init=top?caml_call2(super$0,cla,env):caml_call1(super$0,cla); - widen(cla); - var - _hM_=0, - _hN_=to_array(concr_meths), - _hO_= - [0, - map$7 - (function(nm){return get_method(cla,get_method_label(cla,nm))},_hN_), - _hM_], - _hP_=to_array(vals); - return caml_array_concat - ([0, - [0,init], - [0, - map$7(function(_hQ_){return get_variable(cla,_hQ_)},_hP_), - _hO_]])} - function make_class(pub_meths,class_init) - {var table=create_table(pub_meths),env_init=caml_call1(class_init,table); - init_class(table); - return [0,caml_call1(env_init,0),class_init,env_init,0]} - function make_class_store(pub_meths,class_init,init_table) - {var table=create_table(pub_meths),env_init=caml_call1(class_init,table); - init_class(table); - init_table[2] = class_init; - init_table[1] = env_init; - return 0} - function dummy_class(loc) - {function undef(param){throw [0,Undefined_recursive_module,loc]} - return [0,undef,undef,undef,0]} - function create_object(table) - {var obj=caml_obj_block(248,table[1]); - obj[1] = table[2]; - return caml_set_oo_id(obj)} - function create_object_opt(obj_0,table) - {if(obj_0)return obj_0; - var obj=caml_obj_block(248,table[1]); - obj[1] = table[2]; - return caml_set_oo_id(obj)} - function iter_f(obj,param) - {var param$0=param; - for(;;) - {if(param$0) - {var l=param$0[2],f=param$0[1]; - caml_call1(f,obj); - var param$0=l; - continue} - return 0}} - function run_initializers(obj,table) - {var inits=table[8],_hL_=0 !== inits?1:0; - return _hL_?iter_f(obj,inits):_hL_} - function run_initializers_opt(obj_0,obj,table) - {if(obj_0)return obj; - var inits=table[8]; - if(0 !== inits)iter_f(obj,inits); - return obj} - function create_object_and_run_initiali(obj_0,table) - {if(obj_0)return obj_0; - var obj=create_object(table); - run_initializers(obj,table); - return obj} - function get_data$0(param) - {if(param)return param[2];throw [0,Assert_failure,_cL_]} - function build_path(n,keys,tables) - {var res=[0,0,0,0],r=[0,res],_hH_=0; - if(! (n < 0)) - {var i=_hH_; - for(;;) - {var _hJ_=r[1]; - r[1] = [0,caml_check_bound(keys,i)[1 + i],_hJ_,0]; - var _hK_=i + 1 | 0; - if(n !== i){var i=_hK_;continue} - break}} - var _hI_=r[1]; - if(tables){tables[2] = _hI_;return res} - throw [0,Assert_failure,_cI_]} - function lookup_tables(root,keys) - {var tables$2=get_data$0(root); - if(tables$2) - {var i$1=keys.length - 1 - 1 | 0,i=i$1,tables=tables$2; - a: - for(;;) - {if(0 <= i) - {var key=caml_check_bound(keys,i)[1 + i],tables$0=tables; - for(;;) - {if(tables$0) - {if(tables$0[1] === key) - {var tables$1=get_data$0(tables$0); - if(tables$1) - {var i$0=i - 1 | 0,i=i$0,tables=tables$1;continue a} - throw [0,Assert_failure,_cN_]} - if(tables$0) - {var _hG_=tables$0[3]; - if(_hG_){var tables$0=_hG_;continue} - var v=[0,key,0,0]; - if(tables$0) - {tables$0[3] = v;return build_path(i - 1 | 0,keys,v)} - throw [0,Assert_failure,_cJ_]} - throw [0,Assert_failure,_cM_]} - throw [0,Assert_failure,_cK_]}} - return tables}} - return build_path(keys.length - 1 - 1 | 0,keys,root)} - function new_cache(table) - {var n=new_method(table),switch$0=0; - if - (0 - !== - (n % 2 | 0) - && - ! - ((2 + ((caml_check_bound(table[2],1)[2] * 16 | 0) / 32 | 0) | 0) < n)) - {var n$0=new_method(table);switch$0 = 1} - if(! switch$0)var n$0=n; - caml_check_bound(table[2],n$0)[1 + n$0] = 0; - return n$0} - function set_methods(table,methods) - {var len=methods.length - 1,i=[0,0]; - for(;;) - {if(i[1] < len) - {var - _hA_=i[1], - label=caml_check_bound(methods,_hA_)[1 + _hA_], - next= - function(param) - {i[1]++; - var _hF_=i[1]; - return caml_check_bound(methods,_hF_)[1 + _hF_]}, - clo=next(0); - if(typeof clo === "number") - switch(clo) - {case 0: - var - x=next(0), - clo$0=function(x){return function(obj){return x}}(x); - break; - case 1: - var - n=next(0), - clo$0=function(n){return function(obj){return obj[1 + n]}}(n); - break; - case 2: - var - e=next(0), - n$0=next(0), - clo$0= - function(e,n){return function(obj){return obj[1 + e][1 + n]}} - (e,n$0); - break; - case 3: - var - n$1=next(0), - clo$0= - function(n) - {return function(obj){return caml_call1(obj[1][1 + n],obj)}} - (n$1); - break; - case 4: - var - n$2=next(0), - clo$0= - function(n){return function(obj,x){obj[1 + n] = x;return 0}} - (n$2); - break; - case 5: - var - f=next(0), - x$0=next(0), - clo$0= - function(f,x){return function(obj){return caml_call1(f,x)}} - (f,x$0); - break; - case 6: - var - f$0=next(0), - n$3=next(0), - clo$0= - function(f,n) - {return function(obj){return caml_call1(f,obj[1 + n])}} - (f$0,n$3); - break; - case 7: - var - f$1=next(0), - e$0=next(0), - n$4=next(0), - clo$0= - function(f,e,n) - {return function(obj) - {return caml_call1(f,obj[1 + e][1 + n])}} - (f$1,e$0,n$4); - break; - case 8: - var - f$2=next(0), - n$5=next(0), - clo$0= - function(f,n) - {return function(obj) - {return caml_call1(f,caml_call1(obj[1][1 + n],obj))}} - (f$2,n$5); - break; - case 9: - var - f$3=next(0), - x$1=next(0), - y=next(0), - clo$0= - function(f,x,y) - {return function(obj){return caml_call2(f,x,y)}} - (f$3,x$1,y); - break; - case 10: - var - f$4=next(0), - x$2=next(0), - n$6=next(0), - clo$0= - function(f,x,n) - {return function(obj){return caml_call2(f,x,obj[1 + n])}} - (f$4,x$2,n$6); - break; - case 11: - var - f$5=next(0), - x$3=next(0), - e$1=next(0), - n$7=next(0), - clo$0= - function(f,x,e,n) - {return function(obj) - {return caml_call2(f,x,obj[1 + e][1 + n])}} - (f$5,x$3,e$1,n$7); - break; - case 12: - var - f$6=next(0), - x$4=next(0), - n$8=next(0), - clo$0= - function(f,x,n) - {return function(obj) - {return caml_call2(f,x,caml_call1(obj[1][1 + n],obj))}} - (f$6,x$4,n$8); - break; - case 13: - var - f$7=next(0), - n$9=next(0), - x$5=next(0), - clo$0= - function(f,n,x) - {return function(obj){return caml_call2(f,obj[1 + n],x)}} - (f$7,n$9,x$5); - break; - case 14: - var - f$8=next(0), - e$2=next(0), - n$10=next(0), - x$6=next(0), - clo$0= - function(f,e,n,x) - {return function(obj) - {return caml_call2(f,obj[1 + e][1 + n],x)}} - (f$8,e$2,n$10,x$6); - break; - case 15: - var - f$9=next(0), - n$11=next(0), - x$7=next(0), - clo$0= - function(f,n,x) - {return function(obj) - {return caml_call2(f,caml_call1(obj[1][1 + n],obj),x)}} - (f$9,n$11,x$7); - break; - case 16: - var - n$12=next(0), - x$8=next(0), - clo$0= - function(n,x) - {return function(obj) - {return caml_call2(obj[1][1 + n],obj,x)}} - (n$12,x$8); - break; - case 17: - var - n$13=next(0), - m=next(0), - clo$0= - function(n,m) - {return function(obj) - {return caml_call2(obj[1][1 + n],obj,obj[1 + m])}} - (n$13,m); - break; - case 18: - var - n$14=next(0), - e$3=next(0), - m$0=next(0), - clo$0= - function(n,e,m) - {return function(obj) - {return caml_call2(obj[1][1 + n],obj,obj[1 + e][1 + m])}} - (n$14,e$3,m$0); - break; - case 19: - var - n$15=next(0), - m$1=next(0), - clo$0= - function(n,m) - {return function(obj) - {var _hD_=caml_call1(obj[1][1 + m],obj); - return caml_call2(obj[1][1 + n],obj,_hD_)}} - (n$15,m$1); - break; - case 20: - var m$2=next(0),x$9=next(0); - new_cache(table); - var - clo$0= - function(m,x) - {return function(obj) - {return caml_call1(caml_get_public_method(x,m,0),x)}} - (m$2,x$9); - break; - case 21: - var m$3=next(0),n$16=next(0); - new_cache(table); - var - clo$0= - function(m,n) - {return function(obj) - {var _hC_=obj[1 + n]; - return caml_call1(caml_get_public_method(_hC_,m,0),_hC_)}} - (m$3,n$16); - break; - case 22: - var m$4=next(0),e$4=next(0),n$17=next(0); - new_cache(table); - var - clo$0= - function(m,e,n) - {return function(obj) - {var _hB_=obj[1 + e][1 + n]; - return caml_call1(caml_get_public_method(_hB_,m,0),_hB_)}} - (m$4,e$4,n$17); - break; - default: - var m$5=next(0),n$18=next(0); - new_cache(table); - var - clo$0= - function(m,n) - {return function(obj) - {var _hE_=caml_call1(obj[1][1 + n],obj); - return caml_call1(caml_get_public_method(_hE_,m,0),_hE_)}} - (m$5,n$18)} - else - var clo$0=clo; - set_method(table,label,clo$0); - i[1]++; - continue} - return 0}} - function stats$0(param) - {return [0,table_count[1],method_count[1],inst_var_count[1]]} - var - CamlinternalOO= + n$1 = next(0), + clo$0 = + function(n){ + return function(obj){return caml_call1(obj[1][1 + n], obj);}; + } + (n$1); + break; + case 4: + var + n$2 = next(0), + clo$0 = + function(n){return function(obj, x){obj[1 + n] = x; return 0;};} + (n$2); + break; + case 5: + var + f = next(0), + x$0 = next(0), + clo$0 = + function(f, x){return function(obj){return caml_call1(f, x);};} + (f, x$0); + break; + case 6: + var + f$0 = next(0), + n$3 = next(0), + clo$0 = + function(f, n){ + return function(obj){return caml_call1(f, obj[1 + n]);}; + } + (f$0, n$3); + break; + case 7: + var + f$1 = next(0), + e$0 = next(0), + n$4 = next(0), + clo$0 = + function(f, e, n){ + return function(obj){return caml_call1(f, obj[1 + e][1 + n]);}; + } + (f$1, e$0, n$4); + break; + case 8: + var + f$2 = next(0), + n$5 = next(0), + clo$0 = + function(f, n){ + return function(obj){ + return caml_call1(f, caml_call1(obj[1][1 + n], obj));}; + } + (f$2, n$5); + break; + case 9: + var + f$3 = next(0), + x$1 = next(0), + y = next(0), + clo$0 = + function(f, x, y){ + return function(obj){return caml_call2(f, x, y);}; + } + (f$3, x$1, y); + break; + case 10: + var + f$4 = next(0), + x$2 = next(0), + n$6 = next(0), + clo$0 = + function(f, x, n){ + return function(obj){return caml_call2(f, x, obj[1 + n]);}; + } + (f$4, x$2, n$6); + break; + case 11: + var + f$5 = next(0), + x$3 = next(0), + e$1 = next(0), + n$7 = next(0), + clo$0 = + function(f, x, e, n){ + return function(obj){ + return caml_call2(f, x, obj[1 + e][1 + n]);}; + } + (f$5, x$3, e$1, n$7); + break; + case 12: + var + f$6 = next(0), + x$4 = next(0), + n$8 = next(0), + clo$0 = + function(f, x, n){ + return function(obj){ + return caml_call2(f, x, caml_call1(obj[1][1 + n], obj));}; + } + (f$6, x$4, n$8); + break; + case 13: + var + f$7 = next(0), + n$9 = next(0), + x$5 = next(0), + clo$0 = + function(f, n, x){ + return function(obj){return caml_call2(f, obj[1 + n], x);}; + } + (f$7, n$9, x$5); + break; + case 14: + var + f$8 = next(0), + e$2 = next(0), + n$10 = next(0), + x$6 = next(0), + clo$0 = + function(f, e, n, x){ + return function(obj){ + return caml_call2(f, obj[1 + e][1 + n], x);}; + } + (f$8, e$2, n$10, x$6); + break; + case 15: + var + f$9 = next(0), + n$11 = next(0), + x$7 = next(0), + clo$0 = + function(f, n, x){ + return function(obj){ + return caml_call2(f, caml_call1(obj[1][1 + n], obj), x);}; + } + (f$9, n$11, x$7); + break; + case 16: + var + n$12 = next(0), + x$8 = next(0), + clo$0 = + function(n, x){ + return function(obj){return caml_call2(obj[1][1 + n], obj, x);}; + } + (n$12, x$8); + break; + case 17: + var + n$13 = next(0), + m = next(0), + clo$0 = + function(n, m){ + return function(obj){ + return caml_call2(obj[1][1 + n], obj, obj[1 + m]);}; + } + (n$13, m); + break; + case 18: + var + n$14 = next(0), + e$3 = next(0), + m$0 = next(0), + clo$0 = + function(n, e, m){ + return function(obj){ + return caml_call2(obj[1][1 + n], obj, obj[1 + e][1 + m]);}; + } + (n$14, e$3, m$0); + break; + case 19: + var + n$15 = next(0), + m$1 = next(0), + clo$0 = + function(n, m){ + return function(obj){ + var _k_ = caml_call1(obj[1][1 + m], obj); + return caml_call2(obj[1][1 + n], obj, _k_);}; + } + (n$15, m$1); + break; + case 20: + var m$2 = next(0), x$9 = next(0); + new_cache(table); + var + clo$0 = + function(m, x){ + return function(obj){ + return caml_call1(caml_get_public_method(x, m, 0), x);}; + } + (m$2, x$9); + break; + case 21: + var m$3 = next(0), n$16 = next(0); + new_cache(table); + var + clo$0 = + function(m, n){ + return function(obj){ + var _j_ = obj[1 + n]; + return caml_call1(caml_get_public_method(_j_, m, 0), _j_);}; + } + (m$3, n$16); + break; + case 22: + var m$4 = next(0), e$4 = next(0), n$17 = next(0); + new_cache(table); + var + clo$0 = + function(m, e, n){ + return function(obj){ + var _i_ = obj[1 + e][1 + n]; + return caml_call1(caml_get_public_method(_i_, m, 0), _i_);}; + } + (m$4, e$4, n$17); + break; + default: + var m$5 = next(0), n$18 = next(0); + new_cache(table); + var + clo$0 = + function(m, n){ + return function(obj){ + var _l_ = caml_call1(obj[1][1 + n], obj); + return caml_call1(caml_get_public_method(_l_, m, 0), _l_);}; + } + (m$5, n$18); + } + else + var clo$0 = clo; + set_method(table, label, clo$0); + i[1]++; + } + } + function stats(param){ + return [0, table_count[1], method_count[1], inst_var_count[1]]; + } + var + CamlinternalOO = [0, public_method_label, new_method, @@ -27662,2133 +28439,228 @@ make_class, make_class_store, dummy_class, - copy$7, + copy, create_object, create_object_opt, run_initializers, run_initializers_opt, create_object_and_run_initiali, lookup_tables, - params$0, - stats$0]; - caml_register_global(821,CamlinternalOO,"CamlinternalOO"); - var Stdlib_Oo=[0,copy$7,public_method_label,public_method_label]; - caml_register_global(822,Stdlib_Oo,"Stdlib__Oo"); - function init_mod_block(loc,comps$0) - {var - length=comps$0.length - 1, - modu=caml_obj_block(0,length), - _hw_=length - 1 | 0, - _hv_=0; - if(! (_hw_ < 0)) - {var i=_hv_; - for(;;) - {var shape=caml_check_bound(comps$0,i)[1 + i]; - if(typeof shape === "number") - switch(shape) - {case 0: - var - fn$0= - function(i) - {function fn(x) - {var fn$0=modu[1 + i]; - if(fn === fn$0)throw [0,Undefined_recursive_module,loc]; - return caml_call1(fn$0,x)} - return fn}, - fn=fn$0(i), - init=fn; - break; - case 1: - var l=[]; - runtime.caml_update_dummy - (l, - [246, - function(l,i) - {return function(_hy_) - {var l$0=modu[1 + i]; - if(l === l$0)throw [0,Undefined_recursive_module,loc]; - var _hz_=caml_obj_tag(l$0); - return 250 === _hz_ - ?l$0[1] - :246 === _hz_?force_lazy_block(l$0):l$0}} - (l,i)]); - var init=l; - break; - default:var init=dummy_class(loc)} - else - if(0 === shape[0]) - var comps=shape[1],init=init_mod_block(loc,comps); - else - var v=shape[1],init=v; - modu[1 + i] = init; - var _hx_=i + 1 | 0; - if(_hw_ !== i){var i=_hx_;continue} - break}} - return modu} - function init_mod(loc,shape) - {if(typeof shape !== "number" && 0 === shape[0]) - {var comps=shape[1];return init_mod_block(loc,comps)} - return failwith(cst_CamlinternalMod_init_mod_n)} - function update_mod_block(comps$0,o,n) - {if(0 === caml_obj_tag(n) && comps$0.length - 1 <= n.length - 1) - {var _ht_=comps$0.length - 1 - 1 | 0,_hs_=0; - if(! (_ht_ < 0)) - {var i=_hs_; - for(;;) - {var n$0=n[1 + i],shape=caml_check_bound(comps$0,i)[1 + i]; - if(typeof shape === "number") - if(2 === shape) - {var switch$0=0; - if(0 === caml_obj_tag(n$0) && 4 === n$0.length - 1) - {var cl=o[1 + i],j=0; - for(;;) - {cl[1 + j] = n$0[1 + j]; - var _hr_=j + 1 | 0; - if(3 !== j){var j=_hr_;continue} - break}} - else - switch$0 = 1; - if(switch$0)throw [0,Assert_failure,_cO_]} - else - o[1 + i] = n$0; - else - if(0 === shape[0]) - {var comps=shape[1];update_mod_block(comps,o[1 + i],n$0)} - var _hu_=i + 1 | 0; - if(_ht_ !== i){var i=_hu_;continue} - break}} - return 0} - throw [0,Assert_failure,_cP_]} - function update_mod(shape,o,n) - {if(typeof shape !== "number" && 0 === shape[0]) - {var comps=shape[1];return update_mod_block(comps,o,n)} - return failwith(cst_CamlinternalMod_update_mod)} - var CamlinternalMod=[0,init_mod,update_mod]; - caml_register_global(823,CamlinternalMod,"CamlinternalMod"); - var - initial_buffer=caml_create_bytes(32), - buffer=[0,initial_buffer], - bufpos=[0,0]; - function reset_buffer(param) - {buffer[1] = initial_buffer;bufpos[1] = 0;return 0} - function store(c) - {if(caml_ml_bytes_length(buffer[1]) <= bufpos[1]) - {var newbuffer=caml_create_bytes(2 * bufpos[1] | 0); - blit(buffer[1],0,newbuffer,0,bufpos[1]); - buffer[1] = newbuffer} - caml_bytes_set(buffer[1],bufpos[1],c); - bufpos[1]++; - return 0} - function get_string(param) - {var s=sub_string(buffer[1],0,bufpos[1]); - buffer[1] = initial_buffer; - return s} - function make_lexer(keywords) - {var kwd_table=caml_call2(Stdlib_Hashtbl[1],0,17); - iter$2 - (function(s){return caml_call3(Stdlib_Hashtbl[5],kwd_table,s,[0,s])}, - keywords); - function ident_or_keyword(id) - {try - {var _hp_=caml_call2(Stdlib_Hashtbl[6],kwd_table,id);return _hp_} - catch(_hq_) - {_hq_ = caml_wrap_exception(_hq_); - if(_hq_ === Not_found)return [1,id]; - throw _hq_}} - function keyword_or_error(c) - {var s=make$1(1,c); - try - {var _hn_=caml_call2(Stdlib_Hashtbl[6],kwd_table,s);return _hn_} - catch(_ho_) - {_ho_ = caml_wrap_exception(_ho_); - if(_ho_ === Not_found)throw [0,Error,cat(cst_Illegal_character,s)]; - throw _ho_}} - function end_exponent_part(strm) - {for(;;) - {var match=peek$0(strm); - if(match) - {var _hm_=match[1]; - if(! (9 < _hm_ - 48 >>> 0)){junk(strm);store(_hm_);continue}} - return [0,[3,caml_float_of_string(get_string(0))]]}} - function exponent_part(strm) - {var match=peek$0(strm); - if(match) - {var _hl_=match[1],switch$0=0; - if(43 !== _hl_ && 45 !== _hl_)switch$0 = 1; - if(! switch$0) - {junk(strm);store(_hl_);return end_exponent_part(strm)}} - return end_exponent_part(strm)} - function number(s) - {for(;;) - {var match=peek$0(s); - if(match) - {var _hi_=match[1]; - if(58 <= _hi_) - {var switch$0=0; - if(69 === _hi_ || 101 === _hi_)switch$0 = 1; - if(switch$0){junk(s);store(69);return exponent_part(s)}} - else - {if(46 === _hi_) - {junk(s); - store(46); - for(;;) - {var match$0=peek$0(s); - if(match$0) - {var _hj_=match$0[1],_hk_=_hj_ - 69 | 0; - if(32 < _hk_ >>> 0) - {if(! (9 < _hk_ + 21 >>> 0)){junk(s);store(_hj_);continue}} - else - if(30 < _hk_ - 1 >>> 0) - {junk(s);store(69);return exponent_part(s)}} - return [0,[3,caml_float_of_string(get_string(0))]]}} - if(48 <= _hi_){junk(s);store(_hi_);continue}}} - return [0,[2,caml_int_of_string(get_string(0))]]}} - function ident2(strm) - {for(;;) - {var match=peek$0(strm); - if(match) - {var _hg_=match[1],switch$0=0; - if(94 <= _hg_) - {var _hh_=_hg_ - 95 | 0; - if(30 < _hh_ >>> 0) - {if(! (32 <= _hh_))switch$0 = 1} - else - if(29 === _hh_)switch$0 = 1} - else - if(65 <= _hg_) - {if(92 === _hg_)switch$0 = 1} - else - if(33 <= _hg_) - switch(_hg_ - 33 | 0) - {case 0: - case 2: - case 3: - case 4: - case 5: - case 9: - case 10: - case 12: - case 14: - case 25: - case 27: - case 28: - case 29: - case 30: - case 31:switch$0 = 1;break - } - if(switch$0){junk(strm);store(_hg_);continue}} - return [0,ident_or_keyword(get_string(0))]}} - function neg_number(s) - {var match=peek$0(s); - if(match) - {var _hf_=match[1]; - if(! (9 < _hf_ - 48 >>> 0)) - {junk(s);reset_buffer(0);store(45);store(_hf_);return number(s)}} - reset_buffer(0); - store(45); - return ident2(s)} - function ident(strm) - {for(;;) - {var match=peek$0(strm); - if(match) - {var _hd_=match[1],switch$0=0; - if(91 <= _hd_) - {var _he_=_hd_ - 95 | 0; - if(27 < _he_ >>> 0) - {if(97 <= _he_)switch$0 = 1} - else - if(1 !== _he_)switch$0 = 1} - else - if(48 <= _hd_) - {if(6 < _hd_ - 58 >>> 0)switch$0 = 1} - else - if(39 === _hd_)switch$0 = 1; - if(switch$0){junk(strm);store(_hd_);continue}} - return [0,ident_or_keyword(get_string(0))]}} - function next_token$0(counter,strm) - {for(;;) - {var match=peek$0(strm); - if(match) - {var _g5_=match[1],switch$0=0; - if(124 <= _g5_) - {if(127 <= _g5_) - {if(192 <= _g5_)switch$0 = 1} - else - if(125 !== _g5_)switch$0 = 2} - else - {var _g6_=_g5_ - 65 | 0; - if(57 < _g6_ >>> 0) - {if(! (58 <= _g6_)) - switch(_g6_ + 65 | 0) - {case 34: - junk(strm); - reset_buffer(0); - for(;;) - {var match$1=peek$0(strm); - if(match$1) - {var _g8_=match$1[1]; - if(34 === _g8_){junk(strm);return [0,[4,get_string(0)]]} - if(92 === _g8_) - {junk(strm); - try - {var c$0=escape(strm)} - catch(_hc_) - {_hc_ = caml_wrap_exception(_hc_); - if(_hc_ === Failure$0)throw [0,Error,cst$96]; - throw _hc_; - var _g$_=_hc_} - store(c$0); - continue} - junk(strm); - store(_g8_); - continue} - throw Failure$0} - case 39: - junk(strm); - try - {var match$2=peek$0(strm); - if(! match$2)throw Failure$0; - var _g9_=match$2[1]; - if(92 === _g9_) - {junk(strm); - try - {var _g__=escape(strm)} - catch(_hb_) - {_hb_ = caml_wrap_exception(_hb_); - if(_hb_ === Failure$0)throw [0,Error,cst$97]; - throw _hb_} - var c=_g__} - else - {junk(strm);var c=_g9_}} - catch(_ha_) - {_ha_ = caml_wrap_exception(_ha_); - if(_ha_ === Failure$0)throw [0,Error,cst$94]; - throw _ha_} - var match$0=peek$0(strm); - if(match$0 && 39 === match$0[1]) - {junk(strm);return [0,[5,c]]} - throw [0,Error,cst$95]; - case 40: - junk(strm); - if(counter < 50) - {var counter$0=counter + 1 | 0; - return maybe_comment(counter$0,strm)} - return caml_trampoline_return(maybe_comment,[0,strm]); - case 45:junk(strm);return neg_number(strm); - case 9: - case 10: - case 12: - case 13: - case 26: - case 32:junk(strm);continue; - case 48: - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: - junk(strm);reset_buffer(0);store(_g5_);return number(strm); - case 33: - case 35: - case 36: - case 37: - case 38: - case 42: - case 43: - case 47: - case 58: - case 60: - case 61: - case 62: - case 63: - case 64:switch$0 = 2;break - }} - else - {var _g7_=_g6_ - 26 | 0; - if(5 < _g7_ >>> 0) - switch$0 = 1; - else - switch(_g7_) - {case 4:switch$0 = 1;break;case 1:case 3:switch$0 = 2;break}}} - switch(switch$0) - {case 0:junk(strm);return [0,keyword_or_error(_g5_)]; - case 1: - junk(strm);reset_buffer(0);store(_g5_);return ident(strm); - default: - junk(strm);reset_buffer(0);store(_g5_);return ident2(strm)}} - return 0}} - function maybe_comment(counter,strm) - {var match=peek$0(strm); - if(match && 42 === match[1]) - {junk(strm); - comment(strm); - if(counter < 50) - {var counter$0=counter + 1 | 0;return next_token$0(counter$0,strm)} - return caml_trampoline_return(next_token$0,[0,strm])} - return [0,keyword_or_error(40)]} - function next_token(strm){return caml_trampoline(next_token$0(0,strm))} - function escape(strm) - {var match=peek$0(strm); - if(match) - {var _g2_=match[1]; - if(58 <= _g2_) - {var switcher=_g2_ - 110 | 0; - if(! (6 < switcher >>> 0)) - switch(switcher) - {case 0:junk(strm);return 10; - case 4:junk(strm);return 13; - case 6:junk(strm);return 9 - }} - else - if(48 <= _g2_) - {junk(strm); - var match$0=peek$0(strm); - if(match$0) - {var _g3_=match$0[1]; - if(! (9 < _g3_ - 48 >>> 0)) - {junk(strm); - var match$1=peek$0(strm); - if(match$1) - {var _g4_=match$1[1]; - if(! (9 < _g4_ - 48 >>> 0)) - {junk(strm); - return chr - ((((_g2_ - 48 | 0) * 100 | 0) - + - ((_g3_ - 48 | 0) * 10 | 0) - | - 0) - + - (_g4_ - 48 | 0) - | - 0)}} - throw [0,Error,cst$99]}} - throw [0,Error,cst$98]} - junk(strm); - return _g2_} - throw Failure$0} - function comment(strm) - {a: - for(;;) - {var match=peek$0(strm); - if(match) - {var switcher=match[1] - 40 | 0; - if(! (2 < switcher >>> 0)) - switch(switcher) - {case 0: - junk(strm); - var match$0=peek$0(strm); - if(match$0) - {if(42 === match$0[1]){junk(strm);comment(strm);continue} - junk(strm); - continue} - throw Failure$0; - case 1:break; - default: - junk(strm); - for(;;) - {var match$1=peek$0(strm); - if(match$1) - {var _g1_=match$1[1]; - if(41 === _g1_){junk(strm);return 0} - if(42 === _g1_){junk(strm);continue} - junk(strm); - continue a} - throw Failure$0}} - junk(strm); - continue} - throw Failure$0}} - return function(input) - {return from(function(count){return next_token(input)})}} - var Stdlib_Genlex=[0,make_lexer]; - caml_register_global(824,Stdlib_Genlex,"Stdlib__Genlex"); - function MakeSeeded$0(H) - {var prng=[246,function(_g0_){return caml_call1(_cg_[2],0)}]; - function create(opt,initial_size) - {if(opt) - var sth=opt[1],random=sth; - else - var random=caml_call1(Stdlib_Hashtbl[17],0); - var x=16; - for(;;) - {if(! (initial_size <= x) && ! (max_array_length < (x * 2 | 0))) - {var x$0=x * 2 | 0,x=x$0;continue} - if(random) - var - _gY_=caml_obj_tag(prng), - _gZ_=250 === _gY_?prng[1]:246 === _gY_?force_lazy_block(prng):prng, - seed=caml_call1(_cg_[4],_gZ_); - else - var seed=0; - return [0,0,caml_make_vect(x,0),seed,x]}} - function clear(h) - {h[1] = 0; - var len=h[2].length - 1,_gW_=len - 1 | 0,_gV_=0; - if(! (_gW_ < 0)) - {var i=_gV_; - for(;;) - {caml_check_bound(h[2],i)[1 + i] = 0; - var _gX_=i + 1 | 0; - if(_gW_ !== i){var i=_gX_;continue} - break}} - return 0} - function reset(h) - {var len=h[2].length - 1; - return len === h[4] - ?clear(h) - :(h[1] = 0,h[2] = caml_make_vect(h[4],0),0)} - function copy(init) - {var _gS_=init[4],_gT_=init[3],_gU_=copy$1(init[2]); - return [0,init[1],_gU_,_gT_,_gS_]} - function key_index(h,hkey){return hkey & (h[2].length - 1 - 1 | 0)} - function clean(h) - {function do_bucket(param) - {var param$0=param; - for(;;) - {if(param$0) - {var hkey=param$0[1],rest=param$0[3],c=param$0[2]; - if(caml_call1(H[7],c)) - {var rest$0=param$0[3],c$0=param$0[2]; - return [0,hkey,c$0,do_bucket(rest$0)]} - h[1] = h[1] - 1 | 0; - var param$0=rest; - continue} - return 0}} - var d=h[2],_gP_=d.length - 1 - 1 | 0,_gO_=0; - if(! (_gP_ < 0)) - {var i=_gO_; - for(;;) - {var _gQ_=do_bucket(caml_check_bound(d,i)[1 + i]); - caml_check_bound(d,i)[1 + i] = _gQ_; - var _gR_=i + 1 | 0; - if(_gP_ !== i){var i=_gR_;continue} - break}} - return 0} - function resize(h) - {var odata=h[2],osize=odata.length - 1,nsize=osize * 2 | 0; - clean(h); - var - _gH_=nsize < max_array_length?1:0, - _gI_=_gH_?(osize >>> 1 | 0) <= h[1]?1:0:_gH_; - if(_gI_) - {var ndata=caml_make_vect(nsize,0); - h[2] = ndata; - var - insert_bucket= - function(param) - {if(param) - {var rest=param[3],data=param[2],hkey=param[1]; - insert_bucket(rest); - var - nidx=key_index(h,hkey), - _gN_=[0,hkey,data,caml_check_bound(ndata,nidx)[1 + nidx]]; - caml_check_bound(ndata,nidx)[1 + nidx] = _gN_; - return 0} - return 0}, - _gK_=osize - 1 | 0, - _gJ_=0; - if(! (_gK_ < 0)) - {var i=_gJ_; - for(;;) - {insert_bucket(caml_check_bound(odata,i)[1 + i]); - var _gM_=i + 1 | 0; - if(_gK_ !== i){var i=_gM_;continue} - break}} - var _gL_=0} - else - var _gL_=_gI_; - return _gL_} - function add(h,key,info) - {var - hkey=caml_call2(H[2],h[3],key), - i=key_index(h,hkey), - container=caml_call2(H[1],key,info), - bucket=[0,hkey,container,caml_check_bound(h[2],i)[1 + i]]; - caml_check_bound(h[2],i)[1 + i] = bucket; - h[1] = h[1] + 1 | 0; - var _gG_=h[2].length - 1 << 1 < h[1]?1:0; - return _gG_?resize(h):_gG_} - function remove(h,key) - {var hkey=caml_call2(H[2],h[3],key); - function remove_bucket(param) - {var param$0=param; - for(;;) - {if(param$0) - {var hk=param$0[1],next=param$0[3],c=param$0[2]; - if(hkey === hk) - {var match=caml_call2(H[3],c,key); - switch(match) - {case 0:h[1] = h[1] - 1 | 0;return next; - case 1:return [0,hk,c,remove_bucket(next)]; - default:h[1] = h[1] - 1 | 0;var param$0=next;continue}} - var next$0=param$0[3],c$0=param$0[2]; - return [0,hk,c$0,remove_bucket(next$0)]} - return 0}} - var - i=key_index(h,hkey), - _gF_=remove_bucket(caml_check_bound(h[2],i)[1 + i]); - caml_check_bound(h[2],i)[1 + i] = _gF_; - return 0} - function find(h,key) - {var - hkey=caml_call2(H[2],h[3],key), - _gE_=key_index(h,hkey), - param$1=caml_check_bound(h[2],_gE_)[1 + _gE_], - param=param$1; - for(;;) - {if(param) - {var hk=param[1],rest=param[3],c=param[2]; - if(hkey === hk) - {var match=caml_call2(H[3],c,key); - switch(match) - {case 0: - var match$0=caml_call1(H[4],c); - if(match$0){var d=match$0[1];return d} - var param=rest; - continue; - case 1:var param=rest;continue; - default:var param=rest;continue}} - var param$0=param[3],param=param$0; - continue} - throw Not_found}} - function find_opt(h,key) - {var - hkey=caml_call2(H[2],h[3],key), - _gD_=key_index(h,hkey), - param$1=caml_check_bound(h[2],_gD_)[1 + _gD_], - param=param$1; - for(;;) - {if(param) - {var hk=param[1],rest=param[3],c=param[2]; - if(hkey === hk) - {var match=caml_call2(H[3],c,key); - switch(match) - {case 0: - var d=caml_call1(H[4],c); - if(d)return d; - var param=rest; - continue; - case 1:var param=rest;continue; - default:var param=rest;continue}} - var param$0=param[3],param=param$0; - continue} - return 0}} - function find_all(h,key) - {var hkey=caml_call2(H[2],h[3],key); - function find_in_bucket(param) - {var param$0=param; - for(;;) - {if(param$0) - {var hk=param$0[1],rest=param$0[3],c=param$0[2]; - if(hkey === hk) - {var match=caml_call2(H[3],c,key); - switch(match) - {case 0: - var match$0=caml_call1(H[4],c); - if(match$0) - {var d=match$0[1];return [0,d,find_in_bucket(rest)]} - var param$0=rest; - continue; - case 1:var param$0=rest;continue; - default:var param$0=rest;continue}} - var param$1=param$0[3],param$0=param$1; - continue} - return 0}} - var _gC_=key_index(h,hkey); - return find_in_bucket(caml_check_bound(h[2],_gC_)[1 + _gC_])} - function replace(h,key,info) - {var hkey=caml_call2(H[2],h[3],key); - function replace_bucket(param) - {var param$0=param; - for(;;) - {if(param$0) - {var hk=param$0[1],next=param$0[3],c=param$0[2]; - if(hkey === hk) - {var match=caml_call2(H[3],c,key); - if(match){var param$0=next;continue} - return caml_call3(H[6],c,key,info)} - var param$1=param$0[3],param$0=param$1; - continue} - throw Not_found}} - var i=key_index(h,hkey),l=caml_check_bound(h[2],i)[1 + i]; - try - {var _gA_=replace_bucket(l);return _gA_} - catch(_gB_) - {_gB_ = caml_wrap_exception(_gB_); - if(_gB_ === Not_found) - {var container=caml_call2(H[1],key,info); - caml_check_bound(h[2],i)[1 + i] = [0,hkey,container,l]; - h[1] = h[1] + 1 | 0; - var _gz_=h[2].length - 1 << 1 < h[1]?1:0; - return _gz_?resize(h):_gz_} - throw _gB_}} - function mem(h,key) - {var - hkey=caml_call2(H[2],h[3],key), - _gy_=key_index(h,hkey), - param$1=caml_check_bound(h[2],_gy_)[1 + _gy_], - param=param$1; - for(;;) - {if(param) - {var hk=param[1],rest=param[3],c=param[2]; - if(hk === hkey) - {var match=caml_call2(H[3],c,key); - if(match){var param=rest;continue} - return 1} - var param$0=param[3],param=param$0; - continue} - return 0}} - function iter$0(f,h) - {var d$0=h[2],_gw_=d$0.length - 1 - 1 | 0,_gv_=0; - if(! (_gw_ < 0)) - {var i=_gv_; - a: - for(;;) - {var param$0=caml_check_bound(d$0,i)[1 + i],param=param$0; - for(;;) - {if(param) - {var - rest=param[3], - c=param[2], - match=caml_call1(H[5],c), - match$0=caml_call1(H[4],c), - switch$0=0; - if(match && match$0) - {var d=match$0[1],k=match[1];caml_call2(f,k,d);switch$0 = 1} - var param=rest; - continue} - var _gx_=i + 1 | 0; - if(_gw_ !== i){var i=_gx_;continue a} - break} - break}} - return 0} - function fold(f,h,init) - {var d$0=h[2],accu$1=[0,init],_gs_=d$0.length - 1 - 1 | 0,_gr_=0; - if(! (_gs_ < 0)) - {var i=_gr_; - a: - for(;;) - {var - _gt_=accu$1[1], - b$0=caml_check_bound(d$0,i)[1 + i], - b=b$0, - accu=_gt_; - for(;;) - {if(b) - {var - rest=b[3], - c=b[2], - match=caml_call1(H[5],c), - match$0=caml_call1(H[4],c), - switch$0=0; - if(match && match$0) - {var d=match$0[1],k=match[1],accu$0=caml_call3(f,k,d,accu); - switch$0 = 1} - if(! switch$0)var accu$0=accu; - var b=rest,accu=accu$0; - continue} - accu$1[1] = accu; - var _gu_=i + 1 | 0; - if(_gs_ !== i){var i=_gu_;continue a} - break} - break}} - return accu$1[1]} - function filter_map_inplace(f,h) - {function do_bucket(param) - {var param$0=param; - for(;;) - {if(param$0) - {var - rest=param$0[3], - c=param$0[2], - hk=param$0[1], - match=caml_call1(H[5],c), - match$0=caml_call1(H[4],c); - if(match && match$0) - {var d=match$0[1],k=match[1],match$1=caml_call2(f,k,d); - if(match$1) - {var new_d=match$1[1]; - caml_call3(H[6],c,k,new_d); - return [0,hk,c,do_bucket(rest)]} - var param$0=rest; - continue} - var param$0=rest; - continue} - return 0}} - var d=h[2],_go_=d.length - 1 - 1 | 0,_gn_=0; - if(! (_go_ < 0)) - {var i=_gn_; - for(;;) - {var _gp_=do_bucket(caml_check_bound(d,i)[1 + i]); - caml_check_bound(d,i)[1 + i] = _gp_; - var _gq_=i + 1 | 0; - if(_go_ !== i){var i=_gq_;continue} - break}} - return 0} - function length(h){return h[1]} - function bucket_length(accu,param) - {var accu$0=accu,param$0=param; - for(;;) - {if(param$0) - {var - param$1=param$0[3], - accu$1=accu$0 + 1 | 0, - accu$0=accu$1, - param$0=param$1; - continue} - return accu$0}} - function stats(h) - {var - _gj_=h[2], - _gk_=0, - mbl= - fold_left$3 - (function(m,b){return max$1(m,bucket_length(0,b))},_gk_,_gj_), - histo=caml_make_vect(mbl + 1 | 0,0), - _gl_=h[2]; - iter$5 - (function(b) - {var - l=bucket_length(0,b), - _gm_=caml_check_bound(histo,l)[1 + l] + 1 | 0; - caml_check_bound(histo,l)[1 + l] = _gm_; - return 0}, - _gl_); - return [0,h[1],h[2].length - 1,mbl,histo]} - function bucket_length_alive(accu,param) - {var accu$0=accu,param$0=param; - for(;;) - {if(param$0) - {var rest=param$0[3],c=param$0[2]; - if(caml_call1(H[7],c)) - {var accu$1=accu$0 + 1 | 0,accu$0=accu$1,param$0=rest;continue} - var param$1=param$0[3],param$0=param$1; - continue} - return accu$0}} - function stats_alive(h) - {var - size=[0,0], - _gf_=h[2], - _gg_=0, - mbl= - fold_left$3 - (function(m,b){return max$1(m,bucket_length_alive(0,b))},_gg_,_gf_), - histo=caml_make_vect(mbl + 1 | 0,0), - _gh_=h[2]; - iter$5 - (function(b) - {var l=bucket_length_alive(0,b); - size[1] = size[1] + l | 0; - var _gi_=caml_check_bound(histo,l)[1 + l] + 1 | 0; - caml_check_bound(histo,l)[1 + l] = _gi_; - return 0}, - _gh_); - return [0,size[1],h[2].length - 1,mbl,histo]} - function to_seq(tbl) - {var tbl_data=tbl[2]; - function aux(i,buck,param) - {var i$0=i,buck$0=buck; - for(;;) - {if(buck$0) - {var - next=buck$0[3], - c=buck$0[2], - match=caml_call1(H[5],c), - match$0=caml_call1(H[4],c); - if(match && match$0) - {var data=match$0[1],key=match[1]; - return [0, - [0,key,data], - function(_ge_){return aux(i$0,next,_ge_)}]} - var buck$0=next; - continue} - if(i$0 === tbl_data.length - 1)return 0; - var - buck$1=caml_check_bound(tbl_data,i$0)[1 + i$0], - i$1=i$0 + 1 | 0, - i$0=i$1, - buck$0=buck$1; - continue}} - var _gb_=0,_gc_=0; - return function(_gd_){return aux(_gc_,_gb_,_gd_)}} - function to_seq_keys(m) - {var _f9_=to_seq(m); - function _f__(_ga_){return _ga_[1]} - return function(_f$_){return map$1(_f__,_f9_,_f$_)}} - function to_seq_values(m) - {var _f5_=to_seq(m); - function _f6_(_f8_){return _f8_[2]} - return function(_f7_){return map$1(_f6_,_f5_,_f7_)}} - function add_seq(tbl,i) - {return iter - (function(param) - {var v=param[2],k=param[1];return add(tbl,k,v)}, - i)} - function replace_seq(tbl,i) - {return iter - (function(param) - {var v=param[2],k=param[1];return replace(tbl,k,v)}, - i)} - function of_seq(i){var tbl=create(0,16);replace_seq(tbl,i);return tbl} - return [0, - create, - clear, - reset, - copy, - add, - remove, - find, - find_opt, - find_all, - replace, - mem, - iter$0, - filter_map_inplace, - fold, - length, - stats, - to_seq, - to_seq_keys, - to_seq_values, - add_seq, - replace_seq, - of_seq, - clean, - stats_alive]} - function create$5(param){return caml_call1(_o_[1],1)} - function get_key$0(t){return caml_call2(_o_[3],t,0)} - function get_key_copy$0(t){return caml_call2(_o_[4],t,0)} - function set_key$0(t,k){return caml_call3(_o_[5],t,0,k)} - function unset_key$0(t){return caml_call2(_o_[6],t,0)} - function check_key$0(t){return caml_call2(_o_[7],t,0)} - function blit_key$0(t1,t2){return caml_call5(_o_[8],t1,0,t2,0,1)} - function get_data$1(t){return caml_call1(_o_[9],t)} - function get_data_copy(t){return caml_call1(_o_[10],t)} - function set_data(t,d){return caml_call2(_o_[11],t,d)} - function unset_data(t){return caml_call1(_o_[12],t)} - function check_data(t){return caml_call1(_o_[13],t)} - function blit_data(t1,t2){return caml_call2(_o_[14],t1,t2)} - function make$4(key,data) - {var eph=create$5(0);set_data(eph,data);set_key$0(eph,key);return eph} - function query(eph,key) - {var match=get_key$0(eph); - if(match){var k=match[1];return k === key?get_data$1(eph):0} - return 0} - function MakeSeeded$1(H) - {function create(k,d) - {var c=create$5(0);set_data(c,d);set_key$0(c,k);return c} - var hash=H[2]; - function equal(c,k) - {var match=get_key$0(c); - if(match){var k$0=match[1];return caml_call2(H[1],k,k$0)?0:1} - return 2} - function set_key_data(c,k,d) - {unset_data(c);set_key$0(c,k);return set_data(c,d)} - return MakeSeeded$0 - ([0, - create, - hash, - equal, - get_data$1, - get_key$0, - set_key_data, - check_key$0])} - function Make$2(H) - {var equal=H[1]; - function hash(seed,x){return caml_call1(H[2],x)} - var - include=MakeSeeded$1([0,equal,hash]), - clear=include[2], - reset=include[3], - copy=include[4], - add=include[5], - remove=include[6], - find=include[7], - find_opt=include[8], - find_all=include[9], - replace=include[10], - mem=include[11], - iter=include[12], - filter_map_inplace=include[13], - fold=include[14], - length=include[15], - stats=include[16], - to_seq=include[17], - to_seq_keys=include[18], - to_seq_values=include[19], - add_seq=include[20], - replace_seq=include[21], - clean=include[23], - stats_alive=include[24], - _f4_=include[1]; - function create(sz){return caml_call2(_f4_,_cQ_,sz)} - function of_seq(i) - {var tbl=create(16);caml_call2(replace_seq,tbl,i);return tbl} - return [0, - create, - clear, - reset, - copy, - add, - remove, - find, - find_opt, - find_all, - replace, - mem, - iter, - filter_map_inplace, - fold, - length, - stats, - to_seq, - to_seq_keys, - to_seq_values, - add_seq, - replace_seq, - of_seq, - clean, - stats_alive]} - function make$5(param){return [0,0]} - function add$1(b,k,d){var _f3_=b[1];b[1] = [0,make$4(k,d),_f3_];return 0} - function test_key(k,e) - {var match=get_key$0(e); - if(match){var x=match[1];if(x === k)return 1} - return 0} - function remove$0(b,k) - {var l=b[1],acc=0; - for(;;) - {if(l) - {var h=l[1],t=l[2]; - if(test_key(k,h)){b[1] = rev_append(acc,t);return 0} - var l$0=l[2],acc$0=[0,h,acc],l=l$0,acc=acc$0; - continue} - return 0}} - function find$2(b,k) - {var - _f1_=b[1], - match=find_opt(function(_f2_){return test_key(k,_f2_)},_f1_); - if(match){var e=match[1];return get_data$1(e)} - return 0} - function length$7(b){return length$1(b[1])} - function clear$3(b){b[1] = 0;return 0} - function create$6(param){return caml_call1(_o_[1],2)} - function get_key1(t){return caml_call2(_o_[3],t,0)} - function get_key1_copy(t){return caml_call2(_o_[4],t,0)} - function set_key1(t,k){return caml_call3(_o_[5],t,0,k)} - function unset_key1(t){return caml_call2(_o_[6],t,0)} - function check_key1(t){return caml_call2(_o_[7],t,0)} - function get_key2(t){return caml_call2(_o_[3],t,1)} - function get_key2_copy(t){return caml_call2(_o_[4],t,1)} - function set_key2(t,k){return caml_call3(_o_[5],t,1,k)} - function unset_key2(t){return caml_call2(_o_[6],t,1)} - function check_key2(t){return caml_call2(_o_[7],t,1)} - function blit_key1(t1,t2){return caml_call5(_o_[8],t1,0,t2,0,1)} - function blit_key2(t1,t2){return caml_call5(_o_[8],t1,1,t2,1,1)} - function blit_key12(t1,t2){return caml_call5(_o_[8],t1,0,t2,0,2)} - function get_data$2(t){return caml_call1(_o_[9],t)} - function get_data_copy$0(t){return caml_call1(_o_[10],t)} - function set_data$0(t,d){return caml_call2(_o_[11],t,d)} - function unset_data$0(t){return caml_call1(_o_[12],t)} - function check_data$0(t){return caml_call1(_o_[13],t)} - function blit_data$0(t1,t2){return caml_call2(_o_[14],t1,t2)} - function make$6(key1,key2,data) - {var eph=create$6(0); - set_data$0(eph,data); - set_key1(eph,key1); - set_key2(eph,key2); - return eph} - function query$0(eph,key1,key2) - {var match=get_key1(eph); - if(match) - {var k=match[1]; - if(k === key1) - {var match$0=get_key2(eph); - if(match$0) - {var k$0=match$0[1];return k$0 === key2?get_data$2(eph):0} - return 0} - return 0} - return 0} - function MakeSeeded$2(H1,H2) - {function create(param,d) - {var k2=param[2],k1=param[1],c=create$6(0); - set_data$0(c,d); - set_key1(c,k1); - set_key2(c,k2); - return c} - function hash(seed,param) - {var - k2=param[2], - k1=param[1], - _f0_=caml_call2(H2[2],seed,k2) * 65599 | 0; - return caml_call2(H1[2],seed,k1) + _f0_ | 0} - function equal(c,param) - {var k2=param[2],k1=param[1],match=get_key1(c),match$0=get_key2(c); - if(match && match$0) - {var k2$0=match$0[1],k1$0=match[1]; - if(caml_call2(H1[1],k1,k1$0) && caml_call2(H2[1],k2,k2$0))return 0; - return 1} - return 2} - function get_key(c) - {var match=get_key1(c),match$0=get_key2(c); - if(match && match$0) - {var k2=match$0[1],k1=match[1];return [0,[0,k1,k2]]} - return 0} - function set_key_data(c,param,d) - {var k2=param[2],k1=param[1]; - unset_data$0(c); - set_key1(c,k1); - set_key2(c,k2); - return set_data$0(c,d)} - function check_key(c) - {var _fZ_=check_key1(c);return _fZ_?check_key2(c):_fZ_} - return MakeSeeded$0 - ([0,create,hash,equal,get_data$2,get_key,set_key_data,check_key])} - function Make$3(H1,H2) - {var equal=H2[1]; - function hash(seed,x){return caml_call1(H2[2],x)} - var equal$0=H1[1],_fX_=[0,equal,hash]; - function hash$0(seed,x){return caml_call1(H1[2],x)} - var - include=MakeSeeded$2([0,equal$0,hash$0],_fX_), - clear=include[2], - reset=include[3], - copy=include[4], - add=include[5], - remove=include[6], - find=include[7], - find_opt=include[8], - find_all=include[9], - replace=include[10], - mem=include[11], - iter=include[12], - filter_map_inplace=include[13], - fold=include[14], - length=include[15], - stats=include[16], - to_seq=include[17], - to_seq_keys=include[18], - to_seq_values=include[19], - add_seq=include[20], - replace_seq=include[21], - clean=include[23], - stats_alive=include[24], - _fY_=include[1]; - function create(sz){return caml_call2(_fY_,_cR_,sz)} - function of_seq(i) - {var tbl=create(16);caml_call2(replace_seq,tbl,i);return tbl} - return [0, - create, - clear, - reset, - copy, - add, - remove, - find, - find_opt, - find_all, - replace, - mem, - iter, - filter_map_inplace, - fold, - length, - stats, - to_seq, - to_seq_keys, - to_seq_values, - add_seq, - replace_seq, - of_seq, - clean, - stats_alive]} - function make$7(param){return [0,0]} - function add$2(b,k1,k2,d) - {var _fW_=b[1];b[1] = [0,make$6(k1,k2,d),_fW_];return 0} - function test_keys(k1,k2,e) - {var match=get_key1(e),match$0=get_key2(e); - if(match && match$0) - {var x2=match$0[1],x1=match[1];if(x1 === k1 && x2 === k2)return 1} - return 0} - function remove$1(b,k1,k2) - {var l=b[1],acc=0; - for(;;) - {if(l) - {var h=l[1],t=l[2]; - if(test_keys(k1,k2,h)){b[1] = rev_append(acc,t);return 0} - var l$0=l[2],acc$0=[0,h,acc],l=l$0,acc=acc$0; - continue} - return 0}} - function find$3(b,k1,k2) - {var - _fU_=b[1], - match=find_opt(function(_fV_){return test_keys(k1,k2,_fV_)},_fU_); - if(match){var e=match[1];return get_data$2(e)} - return 0} - function length$8(b){return length$1(b[1])} - function clear$4(b){b[1] = 0;return 0} - function create$7(n){return caml_call1(_o_[1],n)} - function length$9(k){return caml_call1(_o_[2],k)} - function get_key$1(t,n){return caml_call2(_o_[3],t,n)} - function get_key_copy$1(t,n){return caml_call2(_o_[4],t,n)} - function set_key$1(t,n,k){return caml_call3(_o_[5],t,n,k)} - function unset_key$1(t,n){return caml_call2(_o_[6],t,n)} - function check_key$1(t,n){return caml_call2(_o_[7],t,n)} - function blit_key$1(t1,o1,t2,o2,l) - {return caml_call5(_o_[8],t1,o1,t2,o2,l)} - function get_data$3(t){return caml_call1(_o_[9],t)} - function get_data_copy$1(t){return caml_call1(_o_[10],t)} - function set_data$1(t,d){return caml_call2(_o_[11],t,d)} - function unset_data$1(t){return caml_call1(_o_[12],t)} - function check_data$1(t){return caml_call1(_o_[13],t)} - function blit_data$1(t1,t2){return caml_call2(_o_[14],t1,t2)} - function make$8(keys,data) - {var l=keys.length - 1,eph=create$7(l); - set_data$1(eph,data); - var _fS_=l - 1 | 0,_fR_=0; - if(! (_fS_ < 0)) - {var i=_fR_; - for(;;) - {set_key$1(eph,i,caml_check_bound(keys,i)[1 + i]); - var _fT_=i + 1 | 0; - if(_fS_ !== i){var i=_fT_;continue} - break}} - return eph} - function query$1(eph,keys) - {var l=length$9(eph); - try - {if(l !== keys.length - 1)throw Exit; - var _fN_=l - 1 | 0,_fM_=0; - if(! (_fN_ < 0)) - {var i=_fM_; - for(;;) - {var match=get_key$1(eph,i); - if(! match)throw Exit; - var k=match[1]; - if(k !== caml_check_bound(keys,i)[1 + i])throw Exit; - var _fP_=i + 1 | 0; - if(_fN_ !== i){var i=_fP_;continue} - break}} - var _fO_=get_data$3(eph); - return _fO_} - catch(_fQ_) - {_fQ_ = caml_wrap_exception(_fQ_);if(_fQ_ === Exit)return 0;throw _fQ_}} - function MakeSeeded$3(H) - {function create(k,d) - {var c=create$7(k.length - 1); - set_data$1(c,d); - var _fK_=k.length - 1 - 1 | 0,_fJ_=0; - if(! (_fK_ < 0)) - {var i=_fJ_; - for(;;) - {set_key$1(c,i,caml_check_bound(k,i)[1 + i]); - var _fL_=i + 1 | 0; - if(_fK_ !== i){var i=_fL_;continue} - break}} - return c} - function hash(seed,k) - {var h=[0,0],_fF_=k.length - 1 - 1 | 0,_fE_=0; - if(! (_fF_ < 0)) - {var i=_fE_; - for(;;) - {var _fG_=h[1],_fH_=caml_check_bound(k,i)[1 + i]; - h[1] = (caml_call2(H[2],seed,_fH_) * 65599 | 0) + _fG_ | 0; - var _fI_=i + 1 | 0; - if(_fF_ !== i){var i=_fI_;continue} - break}} - return h[1]} - function equal(c,k) - {var len=k.length - 1,len$0=length$9(c); - if(len !== len$0)return 1; - var i$1=len - 1 | 0,i=i$1; - for(;;) - {if(0 <= i) - {var match=get_key$1(c,i); - if(match) - {var ki=match[1],_fD_=caml_check_bound(k,i)[1 + i]; - if(caml_call2(H[1],_fD_,ki)){var i$0=i - 1 | 0,i=i$0;continue} - return 1} - return 2} - return 0}} - function get_key(c) - {var len=length$9(c); - if(0 === len)return [0,[0]]; - var match=get_key$1(c,0); - if(match) - {var k0=match[1],a=caml_make_vect(len,k0),i$1=len - 1 | 0,i=i$1; - for(;;) - {if(1 <= i) - {var match$0=get_key$1(c,i); - if(match$0) - {var ki=match$0[1]; - caml_check_bound(a,i)[1 + i] = ki; - var i$0=i - 1 | 0,i=i$0; - continue} - return 0} - return [0,a]}} - return 0} - function set_key_data(c,k,d) - {unset_data$1(c); - var _fB_=k.length - 1 - 1 | 0,_fA_=0; - if(! (_fB_ < 0)) - {var i=_fA_; - for(;;) - {set_key$1(c,i,caml_check_bound(k,i)[1 + i]); - var _fC_=i + 1 | 0; - if(_fB_ !== i){var i=_fC_;continue} - break}} - return set_data$1(c,d)} - function check_key(c) - {var i$1=length$9(c) - 1 | 0,i=i$1; - for(;;) - {var _fx_=i < 0?1:0; - if(_fx_) - var _fy_=_fx_; - else - {var _fz_=check_key$1(c,i); - if(_fz_){var i$0=i - 1 | 0,i=i$0;continue} - var _fy_=_fz_} - return _fy_}} - return MakeSeeded$0 - ([0,create,hash,equal,get_data$3,get_key,set_key_data,check_key])} - function Make$4(H) - {var equal=H[1]; - function hash(seed,x){return caml_call1(H[2],x)} - var - include=MakeSeeded$3([0,equal,hash]), - clear=include[2], - reset=include[3], - copy=include[4], - add=include[5], - remove=include[6], - find=include[7], - find_opt=include[8], - find_all=include[9], - replace=include[10], - mem=include[11], - iter=include[12], - filter_map_inplace=include[13], - fold=include[14], - length=include[15], - stats=include[16], - to_seq=include[17], - to_seq_keys=include[18], - to_seq_values=include[19], - add_seq=include[20], - replace_seq=include[21], - clean=include[23], - stats_alive=include[24], - _fw_=include[1]; - function create(sz){return caml_call2(_fw_,_cS_,sz)} - function of_seq(i) - {var tbl=create(16);caml_call2(replace_seq,tbl,i);return tbl} - return [0, - create, - clear, - reset, - copy, - add, - remove, - find, - find_opt, - find_all, - replace, - mem, - iter, - filter_map_inplace, - fold, - length, - stats, - to_seq, - to_seq_keys, - to_seq_values, - add_seq, - replace_seq, - of_seq, - clean, - stats_alive]} - function make$9(param){return [0,0]} - function add$3(b,k,d){var _fv_=b[1];b[1] = [0,make$8(k,d),_fv_];return 0} - function test_keys$0(k,e) - {try - {if(length$9(e) !== k.length - 1)throw Exit; - var _fr_=k.length - 1 - 1 | 0,_fq_=0; - if(! (_fr_ < 0)) - {var i=_fq_; - for(;;) - {var match=get_key$1(e,i),switch$0=0; - if(match) - {var x=match[1]; - if(x === caml_check_bound(k,i)[1 + i]) - {var _ft_=i + 1 | 0; - if(_fr_ !== i){var i=_ft_;continue} - switch$0 = 1}} - if(! switch$0)throw Exit; - break}} - var _fs_=1; - return _fs_} - catch(_fu_) - {_fu_ = caml_wrap_exception(_fu_);if(_fu_ === Exit)return 0;throw _fu_}} - function remove$2(b,k) - {var l=b[1],acc=0; - for(;;) - {if(l) - {var h=l[1],t=l[2]; - if(test_keys$0(k,h)){b[1] = rev_append(acc,t);return 0} - var l$0=l[2],acc$0=[0,h,acc],l=l$0,acc=acc$0; - continue} - return 0}} - function find$4(b,k) - {var - _fo_=b[1], - match=find_opt(function(_fp_){return test_keys$0(k,_fp_)},_fo_); - if(match){var e=match[1];return get_data$3(e)} - return 0} - function length$10(b){return length$1(b[1])} - function clear$5(b){b[1] = 0;return 0} - var - Stdlib_Ephemeron= - [0, - [0, - create$5, - get_key$0, - get_key_copy$0, - set_key$0, - unset_key$0, - check_key$0, - blit_key$0, - get_data$1, - get_data_copy, - set_data, - unset_data, - check_data, - blit_data, - make$4, - query, - Make$2, - MakeSeeded$1, - [0,make$5,add$1,remove$0,find$2,length$7,clear$3]], - [0, - create$6, - get_key1, - get_key1_copy, - set_key1, - unset_key1, - check_key1, - get_key2, - get_key2_copy, - set_key2, - unset_key2, - check_key2, - blit_key1, - blit_key2, - blit_key12, - get_data$2, - get_data_copy$0, - set_data$0, - unset_data$0, - check_data$0, - blit_data$0, - make$6, - query$0, - Make$3, - MakeSeeded$2, - [0,make$7,add$2,remove$1,find$3,length$8,clear$4]], - [0, - create$7, - get_key$1, - get_key_copy$1, - set_key$1, - unset_key$1, - check_key$1, - blit_key$1, - get_data$3, - get_data_copy$1, - set_data$1, - unset_data$1, - check_data$1, - blit_data$1, - make$8, - query$1, - Make$4, - MakeSeeded$3, - [0,make$9,add$3,remove$2,find$4,length$10,clear$5]], - [0, - function(_fn_) - {return MakeSeeded$0 - ([0,_fn_[3],_fn_[1],_fn_[2],_fn_[5],_fn_[4],_fn_[6],_fn_[7]])}]]; - caml_register_global(825,Stdlib_Ephemeron,"Stdlib__Ephemeron"); - function generic_basename(is_dir_sep,current_dir_name,name) - {if(caml_string_equal(name,cst$100))return current_dir_name; - var n$3=caml_ml_string_length(name) - 1 | 0,n=n$3; - for(;;) - {if(0 <= n) - {if(caml_call2(is_dir_sep,name,n)){var n$0=n - 1 | 0,n=n$0;continue} - var p=n + 1 | 0,n$1=n; - for(;;) - {if(0 <= n$1) - {if(caml_call2(is_dir_sep,name,n$1)) - return sub$0(name,n$1 + 1 | 0,(p - n$1 | 0) - 1 | 0); - var n$2=n$1 - 1 | 0,n$1=n$2; - continue} - return sub$0(name,0,p)}} - return sub$0(name,0,1)}} - function generic_dirname(is_dir_sep,current_dir_name,name) - {if(caml_string_equal(name,cst$101))return current_dir_name; - var n$5=caml_ml_string_length(name) - 1 | 0,n=n$5; - for(;;) - {if(0 <= n) - {if(caml_call2(is_dir_sep,name,n)){var n$0=n - 1 | 0,n=n$0;continue} - var n$1=n; - for(;;) - {if(0 <= n$1) - {if(caml_call2(is_dir_sep,name,n$1)) - {var n$3=n$1; - for(;;) - {if(0 <= n$3) - {if(caml_call2(is_dir_sep,name,n$3)) - {var n$4=n$3 - 1 | 0,n$3=n$4;continue} - return sub$0(name,0,n$3 + 1 | 0)} - return sub$0(name,0,1)}} - var n$2=n$1 - 1 | 0,n$1=n$2; - continue} - return current_dir_name}} - return sub$0(name,0,1)}} - function is_dir_sep(s,i){return 47 === caml_string_get(s,i)?1:0} - function is_relative(n) - {var - _fl_=caml_ml_string_length(n) < 1?1:0, - _fm_=_fl_ || (47 !== caml_string_get(n,0)?1:0); - return _fm_} - function is_implicit(n) - {var _fg_=is_relative(n); - if(_fg_) - {var - _fh_=caml_ml_string_length(n) < 2?1:0, - _fi_=_fh_ || caml_string_notequal(sub$0(n,0,2),cst$103); - if(_fi_) - var - _fj_=caml_ml_string_length(n) < 3?1:0, - _fk_=_fj_ || caml_string_notequal(sub$0(n,0,3),cst$102); - else - var _fk_=_fi_} - else - var _fk_=_fg_; - return _fk_} - function check_suffix(name,suff){return ends_with$0(suff,name)} - function chop_suffix_opt(suffix,filename) - {var - len_s=caml_ml_string_length(suffix), - len_f=caml_ml_string_length(filename); - if(len_s <= len_f) - {var r=sub$0(filename,len_f - len_s | 0,len_s); - return caml_string_equal(r,suffix) - ?[0,sub$0(filename,0,len_f - len_s | 0)] - :0} - return 0} - try - {var _c1_=caml_sys_getenv(cst_TMPDIR),_cT_=_c1_} - catch(_ff_) - {_ff_ = caml_wrap_exception(_ff_); - if(_ff_ !== Not_found)throw _ff_; - var _cT_=cst_tmp} - function quote(s) - {var l=caml_ml_string_length(s),b=create$2(l + 20 | 0); - add_char(b,39); - var _fd_=l - 1 | 0,_fc_=0; - if(! (_fd_ < 0)) - {var i=_fc_; - for(;;) - {if(39 === caml_string_get(s,i)) - add_string(b,quotequote); - else - add_char(b,caml_string_get(s,i)); - var _fe_=i + 1 | 0; - if(_fd_ !== i){var i=_fe_;continue} - break}} - add_char(b,39); - return contents(b)} - function quote_command(cmd,stdin,stdout,stderr,args) - {if(stderr) - var - f=stderr[1], - _e8_=caml_equal(stderr,stdout)?cst_2_1:cat(cst_2,quote(f)), - _e9_=_e8_; - else - var _e9_=cst$109; - if(stdout) - var f$0=stdout[1],_e__=cat(cst$104,quote(f$0)); - else - var _e__=cst$108; - var _e$_=cat(_e__,_e9_); - if(stdin) - var f$1=stdin[1],_fa_=cat(cst$105,quote(f$1)); - else - var _fa_=cst$107; - var _fb_=cat(_fa_,_e$_); - return cat(concat$1(cst$106,map$4(quote,[0,cmd,args])),_fb_)} - function basename(_e7_) - {return generic_basename(is_dir_sep,current_dir_name,_e7_)} - function dirname(_e6_) - {return generic_dirname(is_dir_sep,current_dir_name,_e6_)} - var - Unix= - [0, - null$0, - current_dir_name, - parent_dir_name, - dir_sep, - is_dir_sep, - is_relative, - is_implicit, - check_suffix, - chop_suffix_opt, - _cT_, - quote, - quote_command, - basename, - dirname]; - function is_dir_sep$0(s,i) - {var c=caml_string_get(s,i),_e3_=47 === c?1:0; - if(_e3_) - var _e4_=_e3_; - else - var _e5_=92 === c?1:0,_e4_=_e5_ || (58 === c?1:0); - return _e4_} - function is_relative$0(n) - {var - _eX_=caml_ml_string_length(n) < 1?1:0, - _eY_=_eX_ || (47 !== caml_string_get(n,0)?1:0); - if(_eY_) - {var - _eZ_=caml_ml_string_length(n) < 1?1:0, - _e0_=_eZ_ || (92 !== caml_string_get(n,0)?1:0); - if(_e0_) - var - _e1_=caml_ml_string_length(n) < 2?1:0, - _e2_=_e1_ || (58 !== caml_string_get(n,1)?1:0); - else - var _e2_=_e0_} - else - var _e2_=_eY_; - return _e2_} - function is_implicit$0(n) - {var _eO_=is_relative$0(n); - if(_eO_) - {var - _eP_=caml_ml_string_length(n) < 2?1:0, - _eQ_=_eP_ || caml_string_notequal(sub$0(n,0,2),cst$113); - if(_eQ_) - {var - _eR_=caml_ml_string_length(n) < 2?1:0, - _eS_=_eR_ || caml_string_notequal(sub$0(n,0,2),cst$112); - if(_eS_) - {var - _eT_=caml_ml_string_length(n) < 3?1:0, - _eU_=_eT_ || caml_string_notequal(sub$0(n,0,3),cst$111); - if(_eU_) - var - _eV_=caml_ml_string_length(n) < 3?1:0, - _eW_=_eV_ || caml_string_notequal(sub$0(n,0,3),cst$110); - else - var _eW_=_eU_} - else - var _eW_=_eS_} - else - var _eW_=_eQ_} - else - var _eW_=_eO_; - return _eW_} - function check_suffix$0(name,suff) - {var _eL_=caml_ml_string_length(suff) <= caml_ml_string_length(name)?1:0; - if(_eL_) - var - s= - sub$0 - (name, - caml_ml_string_length(name) - caml_ml_string_length(suff) | 0, - caml_ml_string_length(suff)), - _eM_=lowercase_ascii$1(suff), - _eN_=caml_string_equal(lowercase_ascii$1(s),_eM_); - else - var _eN_=_eL_; - return _eN_} - function chop_suffix_opt$0(suffix,filename) - {var - len_s=caml_ml_string_length(suffix), - len_f=caml_ml_string_length(filename); - if(len_s <= len_f) - {var - r=sub$0(filename,len_f - len_s | 0,len_s), - _eK_=lowercase_ascii$1(suffix); - return caml_string_equal(lowercase_ascii$1(r),_eK_) - ?[0,sub$0(filename,0,len_f - len_s | 0)] - :0} - return 0} - try - {var _c0_=caml_sys_getenv(cst_TEMP),temp_dir_name=_c0_} - catch(_eJ_) - {_eJ_ = caml_wrap_exception(_eJ_); - if(_eJ_ !== Not_found)throw _eJ_; - var temp_dir_name=cst$114} - function quote$0(s) - {var l=caml_ml_string_length(s),b=create$2(l + 20 | 0); - add_char(b,34); - function add_bs(n) - {var _eH_=1; - if(! (n < 1)) - {var j=_eH_; - for(;;) - {add_char(b,92); - var _eI_=j + 1 | 0; - if(n !== j){var j=_eI_;continue} - break}} - return 0} - function loop$0(counter,i) - {var i$0=i; - for(;;) - {if(i$0 === l)return add_char(b,34); - var c=caml_string_get(s,i$0); - if(34 === c) - {var _eF_=0; - if(counter < 50) - {var counter$1=counter + 1 | 0; - return loop_bs(counter$1,_eF_,i$0)} - return caml_trampoline_return(loop_bs,[0,_eF_,i$0])} - if(92 === c) - {var _eG_=0; - if(counter < 50) - {var counter$0=counter + 1 | 0; - return loop_bs(counter$0,_eG_,i$0)} - return caml_trampoline_return(loop_bs,[0,_eG_,i$0])} - add_char(b,c); - var i$1=i$0 + 1 | 0,i$0=i$1; - continue}} - function loop_bs(counter,n,i) - {var n$0=n,i$0=i; - for(;;) - {if(i$0 === l){add_char(b,34);return add_bs(n$0)} - var match=caml_string_get(s,i$0); - if(34 === match) - {add_bs((2 * n$0 | 0) + 1 | 0); - add_char(b,34); - var _eE_=i$0 + 1 | 0; - if(counter < 50) - {var counter$1=counter + 1 | 0;return loop$0(counter$1,_eE_)} - return caml_trampoline_return(loop$0,[0,_eE_])} - if(92 === match) - {var i$1=i$0 + 1 | 0,n$1=n$0 + 1 | 0,n$0=n$1,i$0=i$1;continue} - add_bs(n$0); - if(counter < 50) - {var counter$0=counter + 1 | 0;return loop$0(counter$0,i$0)} - return caml_trampoline_return(loop$0,[0,i$0])}} - function loop(i){return caml_trampoline(loop$0(0,i))} - loop(0); - return contents(b)} - function quote_cmd_filename(f) - {if(! contains$0(f,34) && ! contains$0(f,37)) - return contains$0(f,32)?cat(cst$116,cat(f,cst$115)):f; - return failwith(cat(cst_Filename_quote_command_bad,f))} - function quote_command$0(cmd,stdin,stdout,stderr,args) - {if(stderr) - var - f=stderr[1], - _ev_= - caml_equal(stderr,stdout) - ?cst_2_1$0 - :cat(cst_2$0,quote_cmd_filename(f)), - _ew_=_ev_; - else - var _ew_=cst$125; - var _ex_=[0,_ew_,_cU_]; - if(stdout) - var f$0=stdout[1],_ey_=cat(cst$117,quote_cmd_filename(f$0)); - else - var _ey_=cst$124; - var _ez_=[0,_ey_,_ex_]; - if(stdin) - var f$1=stdin[1],_eA_=cat(cst$118,quote_cmd_filename(f$1)); - else - var _eA_=cst$123; - var - s=concat$1(cst$119,map$4(quote$0,args)), - b=create$2(caml_ml_string_length(s) + 20 | 0), - _eB_=[0,_eA_,_ez_]; - iter$4 - (function(c) - {var switch$0=0; - if(62 <= c) - {var _eD_=c - 63 | 0; - if(60 < _eD_ >>> 0) - {if(! (62 <= _eD_))switch$0 = 1} - else - if(31 === _eD_)switch$0 = 1} - else - if(42 <= c) - {if(60 === c)switch$0 = 1} - else - if(33 <= c) - switch(c - 33 | 0) - {case 2:case 3:case 6:break;default:switch$0 = 1} - return switch$0?(add_char(b,94),add_char(b,c)):add_char(b,c)}, - s); - var _eC_=[0,cst$120,[0,contents(b),_eB_]]; - return concat$1(cst$122,[0,cst$121,[0,quote_cmd_filename(cmd),_eC_]])} - function drive_and_path(s) - {var _er_=2 <= caml_ml_string_length(s)?1:0; - if(_er_) - {var param=caml_string_get(s,0),switch$0=0; - if(91 <= param) - {if(! (25 < param - 97 >>> 0))switch$0 = 1} - else - if(65 <= param)switch$0 = 1; - var _es_=switch$0?1:0,_et_=_es_?58 === caml_string_get(s,1)?1:0:_es_} - else - var _et_=_er_; - if(_et_) - {var _eu_=sub$0(s,2,caml_ml_string_length(s) - 2 | 0); - return [0,sub$0(s,0,2),_eu_]} - return [0,cst$126,s]} - function dirname$0(s) - {var - match=drive_and_path(s), - path=match[2], - drive=match[1], - dir=generic_dirname(is_dir_sep$0,current_dir_name$0,path); - return cat(drive,dir)} - function basename$0(s) - {var match=drive_and_path(s),path=match[2]; - return generic_basename(is_dir_sep$0,current_dir_name$0,path)} - var - Win32= - [0, - null$1, - current_dir_name$0, - parent_dir_name$0, - dir_sep$0, - is_dir_sep$0, - is_relative$0, - is_implicit$0, - check_suffix$0, - chop_suffix_opt$0, - temp_dir_name, - quote$0, - quote_command$0, - basename$0, - dirname$0]; - function basename$1(_eq_) - {return generic_basename(is_dir_sep$0,current_dir_name$1,_eq_)} - function dirname$1(_ep_) - {return generic_dirname(is_dir_sep$0,current_dir_name$1,_ep_)} - var - Cygwin= - [0, - null$2, - current_dir_name$1, - parent_dir_name$1, - dir_sep$1, - is_dir_sep$0, - is_relative$0, - is_implicit$0, - check_suffix$0, - chop_suffix_opt$0, - _cT_, - quote, - quote_command, - basename$1, - dirname$1], - Sysdeps= - caml_string_notequal(os_type,cst_Cygwin) - ?caml_string_notequal(os_type,cst_Win32)?Unix:Win32 - :Cygwin, - null$3=Sysdeps[1], - current_dir_name$2=Sysdeps[2], - parent_dir_name$2=Sysdeps[3], - dir_sep$2=Sysdeps[4], - is_dir_sep$1=Sysdeps[5], - is_relative$1=Sysdeps[6], - is_implicit$1=Sysdeps[7], - check_suffix$1=Sysdeps[8], - chop_suffix_opt$1=Sysdeps[9], - temp_dir_name$0=Sysdeps[10], - quote$1=Sysdeps[11], - quote_command$1=Sysdeps[12], - basename$2=Sysdeps[13], - dirname$2=Sysdeps[14]; - function concat$4(dirname,filename) - {var l=caml_ml_string_length(dirname); - if(0 !== l && ! is_dir_sep$1(dirname,l - 1 | 0)) - return cat(dirname,cat(dir_sep$2,filename)); - return cat(dirname,filename)} - function chop_suffix(name,suff) - {return check_suffix$1(name,suff) - ?sub$0 - (name, - 0, - caml_ml_string_length(name) - caml_ml_string_length(suff) | 0) - :invalid_arg(cst_Filename_chop_suffix)} - function extension_len(name) - {var i$4=caml_ml_string_length(name) - 1 | 0,i$1=i$4; - for(;;) - {if(0 <= i$1 && ! is_dir_sep$1(name,i$1)) - {if(46 === caml_string_get(name,i$1)) - {var i$2=i$1 - 1 | 0,i=i$2; - for(;;) - {if(0 <= i && ! is_dir_sep$1(name,i)) - {if(46 === caml_string_get(name,i)) - {var i$0=i - 1 | 0,i=i$0;continue} - return caml_ml_string_length(name) - i$1 | 0} - return 0}} - var i$3=i$1 - 1 | 0,i$1=i$3; - continue} - return 0}} - function extension(name) - {var l=extension_len(name); - return 0 === l?cst$127:sub$0(name,caml_ml_string_length(name) - l | 0,l)} - function chop_extension(name) - {var l=extension_len(name); - return 0 === l - ?invalid_arg(cst_Filename_chop_extension) - :sub$0(name,0,caml_ml_string_length(name) - l | 0)} - function remove_extension(name) - {var l=extension_len(name); - return 0 === l?name:sub$0(name,0,caml_ml_string_length(name) - l | 0)} - var prng$0=[246,function(_eo_){return caml_call1(_cg_[2],0)}]; - function temp_file_name(temp_dir,prefix,suffix) - {var - _em_=caml_obj_tag(prng$0), - _en_= - 250 === _em_?prng$0[1]:246 === _em_?force_lazy_block(prng$0):prng$0, - rnd=caml_call1(_cg_[4],_en_) & 16777215; - return concat$4(temp_dir,caml_call3(sprintf(_cV_),prefix,rnd,suffix))} - var current_temp_dir_name=[0,temp_dir_name$0]; - function set_temp_dir_name(s){current_temp_dir_name[1] = s;return 0} - function get_temp_dir_name(param){return current_temp_dir_name[1]} - function temp_file(opt,prefix,suffix) - {if(opt) - var sth=opt[1],temp_dir=sth; - else - var temp_dir=current_temp_dir_name[1]; - function try_name(counter) - {var counter$0=counter; - for(;;) - {var name=temp_file_name(temp_dir,prefix,suffix); - try - {runtime.caml_sys_close(caml_sys_open(name,_cW_,384));return name} - catch(e) - {e = caml_wrap_exception(e); - if(e[1] === Sys_error) - {if(1000 <= counter$0)throw e; - var counter$1=counter$0 + 1 | 0,counter$0=counter$1; - continue} - throw e}}} - return try_name(0)} - function open_temp_file(opt,_ek_,_ej_,prefix,suffix) - {if(opt)var sth=opt[1],mode=sth;else var mode=_cX_; - if(_ek_)var sth$0=_ek_[1],perms=sth$0;else var perms=384; - if(_ej_) - var sth$1=_ej_[1],temp_dir=sth$1; - else - var temp_dir=current_temp_dir_name[1]; - function try_name(counter) - {var counter$0=counter; - for(;;) - {var name=temp_file_name(temp_dir,prefix,suffix); - try - {var _el_=[0,name,open_gen([0,1,[0,3,[0,5,mode]]],perms,name)]; - return _el_} - catch(e) - {e = caml_wrap_exception(e); - if(e[1] === Sys_error) - {if(1000 <= counter$0)throw e; - var counter$1=counter$0 + 1 | 0,counter$0=counter$1; - continue} - throw e}}} - return try_name(0)} - var - Stdlib_Filename= - [0, - current_dir_name$2, - parent_dir_name$2, - dir_sep$2, - concat$4, - is_relative$1, - is_implicit$1, - check_suffix$1, - chop_suffix, - chop_suffix_opt$1, - extension, - remove_extension, - chop_extension, - basename$2, - dirname$2, - null$3, - temp_file, - open_temp_file, - get_temp_dir_name, - set_temp_dir_name, - temp_dir_name$0, - quote$1, - quote_command$1]; - caml_register_global(826,Stdlib_Filename,"Stdlib__Filename"); - function add$4(x,y){return [254,x[1] + y[1],x[2] + y[2]]} - function sub$4(x,y){return [254,x[1] - y[1],x[2] - y[2]]} - function neg(x){return [254,- x[1],- x[2]]} - function conj(x){return [254,x[1],- x[2]]} - function mul(x,y) - {return [254,x[1] * y[1] - x[2] * y[2],x[1] * y[2] + x[2] * y[1]]} - function div(x,y) - {if(Math.abs(y[2]) <= Math.abs(y[1])) - {var r=y[2] / y[1],d=y[1] + r * y[2]; - return [254,(x[1] + r * x[2]) / d,(x[2] - r * x[1]) / d]} - var r$0=y[1] / y[2],d$0=y[2] + r$0 * y[1]; - return [254,(r$0 * x[1] + x[2]) / d$0,(r$0 * x[2] - x[1]) / d$0]} - function inv(x){return div(one$4,x)} - function norm2(x){return x[1] * x[1] + x[2] * x[2]} - function norm(x) - {var r=Math.abs(x[1]),i=Math.abs(x[2]); - if(r == 0.)return i; - if(i == 0.)return r; - if(i <= r){var q=i / r;return r * Math.sqrt(1. + q * q)} - var q$0=r / i; - return i * Math.sqrt(1. + q$0 * q$0)} - function arg(x){return Math.atan2(x[2],x[1])} - function polar(n,a){return [254,Math.cos(a) * n,Math.sin(a) * n]} - function sqrt(x) - {if(x[1] == 0. && x[2] == 0.)return _cY_; - var r=Math.abs(x[1]),i=Math.abs(x[2]); - if(i <= r) - var - q=i / r, - w=Math.sqrt(r) * Math.sqrt(0.5 * (1. + Math.sqrt(1. + q * q))); - else - var - q$0=r / i, - w=Math.sqrt(i) * Math.sqrt(0.5 * (q$0 + Math.sqrt(1. + q$0 * q$0))); - if(0. <= x[1])return [254,w,0.5 * x[2] / w]; - var w$0=0. <= x[2]?w:- w; - return [254,0.5 * i / w,w$0]} - function exp(x) - {var e=Math.exp(x[1]);return [254,e * Math.cos(x[2]),e * Math.sin(x[2])]} - function log(x) - {var _ei_=Math.atan2(x[2],x[1]);return [254,Math.log(norm(x)),_ei_]} - function pow(x,y){return exp(mul(y,log(x)))} - var - Stdlib_Complex= - [0, - zero$4, - one$4, - i, - neg, - conj, - add$4, - sub$4, - mul, - inv, - div, - sqrt, - norm2, - norm, - arg, - polar, - exp, - log, - pow]; - caml_register_global(827,Stdlib_Complex,"Stdlib__Complex"); - var - Stdlib_ArrayLabels= + params, + stats]; + runtime.caml_register_global(17, CamlinternalOO, "CamlinternalOO"); + return; + } + (globalThis)); + +//# 25878 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + global_data = runtime.caml_get_global_data(), + Stdlib_Array = global_data.Stdlib__Array, + make_float = Stdlib_Array[1], + init = Stdlib_Array[2], + make_matrix = Stdlib_Array[3], + create_matrix = Stdlib_Array[4], + append = Stdlib_Array[5], + concat = Stdlib_Array[6], + sub = Stdlib_Array[7], + copy = Stdlib_Array[8], + fill = Stdlib_Array[9], + blit = Stdlib_Array[10], + to_list = Stdlib_Array[11], + of_list = Stdlib_Array[12], + iter = Stdlib_Array[13], + iteri = Stdlib_Array[14], + map = Stdlib_Array[15], + mapi = Stdlib_Array[16], + fold_left = Stdlib_Array[17], + fold_left_map = Stdlib_Array[18], + fold_right = Stdlib_Array[19], + iter2 = Stdlib_Array[20], + map2 = Stdlib_Array[21], + for_all = Stdlib_Array[22], + exists = Stdlib_Array[23], + for_all2 = Stdlib_Array[24], + exists2 = Stdlib_Array[25], + mem = Stdlib_Array[26], + memq = Stdlib_Array[27], + find_opt = Stdlib_Array[28], + find_map = Stdlib_Array[29], + split = Stdlib_Array[30], + combine = Stdlib_Array[31], + sort = Stdlib_Array[32], + stable_sort = Stdlib_Array[33], + fast_sort = Stdlib_Array[34], + to_seq = Stdlib_Array[35], + to_seqi = Stdlib_Array[36], + of_seq = Stdlib_Array[37], + Floatarray = Stdlib_Array[38], + Stdlib_ArrayLabels = [0, make_float, - init$3, + init, + make_matrix, create_matrix, - create_matrix, - append$1, - concat$2, - sub$1, - copy$1, - fill$0, - blit$1, - to_list$1, + append, + concat, + sub, + copy, + fill, + blit, + to_list, of_list, - iter$5, - iteri$3, - map$7, - mapi$3, - fold_left$3, - fold_left_map$0, - fold_right$2, - iter2$1, - map2$1, - for_all$3, - exists$3, - for_all2$1, - exists2$1, - mem$0, - memq$0, - find_opt$0, - find_map$1, - split$0, - combine$0, + iter, + iteri, + map, + mapi, + fold_left, + fold_left_map, + fold_right, + iter2, + map2, + for_all, + exists, + for_all2, + exists2, + mem, + memq, + find_opt, + find_map, + split, + combine, sort, - fast_sort$0, - fast_sort$0, - to_seq$4, - to_seqi$1, - of_seq$2, + stable_sort, + fast_sort, + to_seq, + to_seqi, + of_seq, Floatarray]; - caml_register_global(828,Stdlib_ArrayLabels,"Stdlib__ArrayLabels"); - var - Stdlib_ListLabels= + runtime.caml_register_global(1, Stdlib_ArrayLabels, "Stdlib__ArrayLabels"); + return; + } + (globalThis)); + +//# 25970 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + global_data = runtime.caml_get_global_data(), + Stdlib_List = global_data.Stdlib__List, + length = Stdlib_List[1], + compare_lengths = Stdlib_List[2], + compare_length_with = Stdlib_List[3], + cons = Stdlib_List[4], + hd = Stdlib_List[5], + tl = Stdlib_List[6], + nth = Stdlib_List[7], + nth_opt = Stdlib_List[8], + rev = Stdlib_List[9], + init = Stdlib_List[10], + append = Stdlib_List[11], + rev_append = Stdlib_List[12], + concat = Stdlib_List[13], + flatten = Stdlib_List[14], + equal = Stdlib_List[15], + compare = Stdlib_List[16], + iter = Stdlib_List[17], + iteri = Stdlib_List[18], + map = Stdlib_List[19], + mapi = Stdlib_List[20], + rev_map = Stdlib_List[21], + filter_map = Stdlib_List[22], + concat_map = Stdlib_List[23], + fold_left_map = Stdlib_List[24], + fold_left = Stdlib_List[25], + fold_right = Stdlib_List[26], + iter2 = Stdlib_List[27], + map2 = Stdlib_List[28], + rev_map2 = Stdlib_List[29], + fold_left2 = Stdlib_List[30], + fold_right2 = Stdlib_List[31], + for_all = Stdlib_List[32], + exists = Stdlib_List[33], + for_all2 = Stdlib_List[34], + exists2 = Stdlib_List[35], + mem = Stdlib_List[36], + memq = Stdlib_List[37], + find = Stdlib_List[38], + find_opt = Stdlib_List[39], + find_map = Stdlib_List[40], + filter = Stdlib_List[41], + find_all = Stdlib_List[42], + filteri = Stdlib_List[43], + partition = Stdlib_List[44], + partition_map = Stdlib_List[45], + assoc = Stdlib_List[46], + assoc_opt = Stdlib_List[47], + assq = Stdlib_List[48], + assq_opt = Stdlib_List[49], + mem_assoc = Stdlib_List[50], + mem_assq = Stdlib_List[51], + remove_assoc = Stdlib_List[52], + remove_assq = Stdlib_List[53], + split = Stdlib_List[54], + combine = Stdlib_List[55], + sort = Stdlib_List[56], + stable_sort = Stdlib_List[57], + fast_sort = Stdlib_List[58], + sort_uniq = Stdlib_List[59], + merge = Stdlib_List[60], + to_seq = Stdlib_List[61], + of_seq = Stdlib_List[62], + Stdlib_ListLabels = [0, - length$1, + length, compare_lengths, compare_length_with, - cons$0, + cons, hd, tl, nth, nth_opt, rev, - init$0, + init, append, rev_append, + concat, flatten, - flatten, - equal$6, - compare$6, - iter$2, - iteri$0, - map$4, - mapi$0, + equal, + compare, + iter, + iteri, + map, + mapi, rev_map, - filter_map$0, + filter_map, concat_map, fold_left_map, - fold_left$0, + fold_left, fold_right, - iter2$0, - map2$0, + iter2, + map2, rev_map2, - fold_left2$0, + fold_left2, fold_right2, - for_all$0, - exists$0, - for_all2$0, - exists2$0, + for_all, + exists, + for_all2, + exists2, mem, memq, - find$0, + find, find_opt, - find_map$0, - find_all, + find_map, + filter, find_all, filteri, - partition$0, - partition_map$0, + partition, + partition_map, assoc, assoc_opt, assq, @@ -29799,41 +28671,142 @@ remove_assq, split, combine, - fast_sort, - fast_sort, + sort, + stable_sort, fast_sort, sort_uniq, merge, - to_seq$1, + to_seq, of_seq]; - caml_register_global(829,Stdlib_ListLabels,"Stdlib__ListLabels"); - var - Stdlib_BytesLabels= + runtime.caml_register_global(1, Stdlib_ListLabels, "Stdlib__ListLabels"); + return; + } + (globalThis)); + +//# 26110 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + global_data = runtime.caml_get_global_data(), + Stdlib_Bytes = global_data.Stdlib__Bytes, + make = Stdlib_Bytes[1], + init = Stdlib_Bytes[2], + empty = Stdlib_Bytes[3], + copy = Stdlib_Bytes[4], + of_string = Stdlib_Bytes[5], + to_string = Stdlib_Bytes[6], + sub = Stdlib_Bytes[7], + sub_string = Stdlib_Bytes[8], + extend = Stdlib_Bytes[9], + fill = Stdlib_Bytes[10], + blit = Stdlib_Bytes[11], + blit_string = Stdlib_Bytes[12], + concat = Stdlib_Bytes[13], + cat = Stdlib_Bytes[14], + iter = Stdlib_Bytes[15], + iteri = Stdlib_Bytes[16], + map = Stdlib_Bytes[17], + mapi = Stdlib_Bytes[18], + fold_left = Stdlib_Bytes[19], + fold_right = Stdlib_Bytes[20], + for_all = Stdlib_Bytes[21], + exists = Stdlib_Bytes[22], + trim = Stdlib_Bytes[23], + escaped = Stdlib_Bytes[24], + index = Stdlib_Bytes[25], + index_opt = Stdlib_Bytes[26], + rindex = Stdlib_Bytes[27], + rindex_opt = Stdlib_Bytes[28], + index_from = Stdlib_Bytes[29], + index_from_opt = Stdlib_Bytes[30], + rindex_from = Stdlib_Bytes[31], + rindex_from_opt = Stdlib_Bytes[32], + contains = Stdlib_Bytes[33], + contains_from = Stdlib_Bytes[34], + rcontains_from = Stdlib_Bytes[35], + uppercase = Stdlib_Bytes[36], + lowercase = Stdlib_Bytes[37], + capitalize = Stdlib_Bytes[38], + uncapitalize = Stdlib_Bytes[39], + uppercase_ascii = Stdlib_Bytes[40], + lowercase_ascii = Stdlib_Bytes[41], + capitalize_ascii = Stdlib_Bytes[42], + uncapitalize_ascii = Stdlib_Bytes[43], + compare = Stdlib_Bytes[44], + equal = Stdlib_Bytes[45], + starts_with = Stdlib_Bytes[46], + ends_with = Stdlib_Bytes[47], + unsafe_to_string = Stdlib_Bytes[48], + unsafe_of_string = Stdlib_Bytes[49], + split_on_char = Stdlib_Bytes[50], + to_seq = Stdlib_Bytes[51], + to_seqi = Stdlib_Bytes[52], + of_seq = Stdlib_Bytes[53], + get_utf_8_uchar = Stdlib_Bytes[54], + set_utf_8_uchar = Stdlib_Bytes[55], + is_valid_utf_8 = Stdlib_Bytes[56], + get_utf_16be_uchar = Stdlib_Bytes[57], + set_utf_16be_uchar = Stdlib_Bytes[58], + is_valid_utf_16be = Stdlib_Bytes[59], + get_utf_16le_uchar = Stdlib_Bytes[60], + set_utf_16le_uchar = Stdlib_Bytes[61], + is_valid_utf_16le = Stdlib_Bytes[62], + get_uint8 = Stdlib_Bytes[63], + get_int8 = Stdlib_Bytes[64], + get_uint16_ne = Stdlib_Bytes[65], + get_uint16_be = Stdlib_Bytes[66], + get_uint16_le = Stdlib_Bytes[67], + get_int16_ne = Stdlib_Bytes[68], + get_int16_be = Stdlib_Bytes[69], + get_int16_le = Stdlib_Bytes[70], + get_int32_ne = Stdlib_Bytes[71], + get_int32_be = Stdlib_Bytes[72], + get_int32_le = Stdlib_Bytes[73], + get_int64_ne = Stdlib_Bytes[74], + get_int64_be = Stdlib_Bytes[75], + get_int64_le = Stdlib_Bytes[76], + set_uint8 = Stdlib_Bytes[77], + set_int8 = Stdlib_Bytes[78], + set_uint16_ne = Stdlib_Bytes[79], + set_uint16_be = Stdlib_Bytes[80], + set_uint16_le = Stdlib_Bytes[81], + set_int16_ne = Stdlib_Bytes[82], + set_int16_be = Stdlib_Bytes[83], + set_int16_le = Stdlib_Bytes[84], + set_int32_ne = Stdlib_Bytes[85], + set_int32_be = Stdlib_Bytes[86], + set_int32_le = Stdlib_Bytes[87], + set_int64_ne = Stdlib_Bytes[88], + set_int64_be = Stdlib_Bytes[89], + set_int64_le = Stdlib_Bytes[90], + Stdlib_BytesLabels = [0, - make$0, - init$1, - empty$0, + make, + init, + empty, copy, - to_bytes, - of_bytes, + of_string, + to_string, sub, sub_string, extend, fill, blit, - blit$0, - concat$0, - cat$0, - iter$3, - iteri$1, - map$5, - mapi$1, - fold_left$1, - fold_right$0, - for_all$1, - exists$1, + blit_string, + concat, + cat, + iter, + iteri, + map, + mapi, + fold_left, + fold_right, + for_all, + exists, trim, - escaped$0, + escaped, index, index_opt, rindex, @@ -29845,24 +28818,24 @@ contains, contains_from, rcontains_from, - uppercase$0, - lowercase$0, + uppercase, + lowercase, capitalize, uncapitalize, - uppercase_ascii$0, - lowercase_ascii$0, + uppercase_ascii, + lowercase_ascii, capitalize_ascii, uncapitalize_ascii, - compare$8, - equal$8, + compare, + equal, starts_with, ends_with, unsafe_to_string, unsafe_of_string, split_on_char, - to_seq$2, + to_seq, to_seqi, - of_seq$0, + of_seq, get_utf_8_uchar, set_utf_8_uchar, is_valid_utf_8, @@ -29889,8 +28862,8 @@ set_uint8, set_int8, set_uint16_ne, - set_int16_be, - set_int16_le, + set_uint16_be, + set_uint16_le, set_int16_ne, set_int16_be, set_int16_le, @@ -29900,700 +28873,228 @@ set_int64_ne, set_int64_be, set_int64_le]; - caml_register_global(830,Stdlib_BytesLabels,"Stdlib__BytesLabels"); - var - Stdlib_StringLabels= + runtime.caml_register_global(1, Stdlib_BytesLabels, "Stdlib__BytesLabels"); + return; + } + (globalThis)); + +//# 26306 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + global_data = runtime.caml_get_global_data(), + Stdlib_String = global_data.Stdlib__String, + make = Stdlib_String[1], + init = Stdlib_String[2], + empty = Stdlib_String[3], + of_bytes = Stdlib_String[4], + to_bytes = Stdlib_String[5], + concat = Stdlib_String[6], + cat = Stdlib_String[7], + equal = Stdlib_String[8], + compare = Stdlib_String[9], + starts_with = Stdlib_String[10], + ends_with = Stdlib_String[11], + contains_from = Stdlib_String[12], + rcontains_from = Stdlib_String[13], + contains = Stdlib_String[14], + sub = Stdlib_String[15], + split_on_char = Stdlib_String[16], + map = Stdlib_String[17], + mapi = Stdlib_String[18], + fold_left = Stdlib_String[19], + fold_right = Stdlib_String[20], + for_all = Stdlib_String[21], + exists = Stdlib_String[22], + trim = Stdlib_String[23], + escaped = Stdlib_String[24], + uppercase_ascii = Stdlib_String[25], + lowercase_ascii = Stdlib_String[26], + capitalize_ascii = Stdlib_String[27], + uncapitalize_ascii = Stdlib_String[28], + iter = Stdlib_String[29], + iteri = Stdlib_String[30], + index_from = Stdlib_String[31], + index_from_opt = Stdlib_String[32], + rindex_from = Stdlib_String[33], + rindex_from_opt = Stdlib_String[34], + index = Stdlib_String[35], + index_opt = Stdlib_String[36], + rindex = Stdlib_String[37], + rindex_opt = Stdlib_String[38], + to_seq = Stdlib_String[39], + to_seqi = Stdlib_String[40], + of_seq = Stdlib_String[41], + get_utf_8_uchar = Stdlib_String[42], + is_valid_utf_8 = Stdlib_String[43], + get_utf_16be_uchar = Stdlib_String[44], + is_valid_utf_16be = Stdlib_String[45], + get_utf_16le_uchar = Stdlib_String[46], + is_valid_utf_16le = Stdlib_String[47], + blit = Stdlib_String[48], + copy = Stdlib_String[49], + fill = Stdlib_String[50], + uppercase = Stdlib_String[51], + lowercase = Stdlib_String[52], + capitalize = Stdlib_String[53], + uncapitalize = Stdlib_String[54], + get_uint8 = Stdlib_String[55], + get_int8 = Stdlib_String[56], + get_uint16_ne = Stdlib_String[57], + get_uint16_be = Stdlib_String[58], + get_uint16_le = Stdlib_String[59], + get_int16_ne = Stdlib_String[60], + get_int16_be = Stdlib_String[61], + get_int16_le = Stdlib_String[62], + get_int32_ne = Stdlib_String[63], + get_int32_be = Stdlib_String[64], + get_int32_le = Stdlib_String[65], + get_int64_ne = Stdlib_String[66], + get_int64_be = Stdlib_String[67], + get_int64_le = Stdlib_String[68], + Stdlib_StringLabels = [0, - make$1, - init$2, - empty$1, + make, + init, + empty, of_bytes, to_bytes, - concat$1, + concat, cat, - equal$9, - compare$9, - starts_with$0, - ends_with$0, - contains_from$0, - rcontains_from$0, - contains$0, - sub$0, - split_on_char$0, - map$6, - mapi$2, - fold_left$2, - fold_right$1, - for_all$2, - exists$2, - trim$0, - escaped$1, - uppercase_ascii$1, - lowercase_ascii$1, - capitalize_ascii$0, - uncapitalize_ascii$0, - iter$4, - iteri$2, - index_from$0, - index_from_opt$0, - rindex_from$0, - rindex_from_opt$0, - index$0, - index_opt$0, - rindex$0, - rindex_opt$0, - to_seq$3, - to_seqi$0, - of_seq$1, - get_utf_8_uchar$0, - is_valid_utf_8$0, - get_utf_16be_uchar$0, - is_valid_utf_16be$0, - get_utf_16le_uchar$0, - is_valid_utf_16le$0, - blit$0, - copy$0, + equal, + compare, + starts_with, + ends_with, + contains_from, + rcontains_from, + contains, + sub, + split_on_char, + map, + mapi, + fold_left, + fold_right, + for_all, + exists, + trim, + escaped, + uppercase_ascii, + lowercase_ascii, + capitalize_ascii, + uncapitalize_ascii, + iter, + iteri, + index_from, + index_from_opt, + rindex_from, + rindex_from_opt, + index, + index_opt, + rindex, + rindex_opt, + to_seq, + to_seqi, + of_seq, + get_utf_8_uchar, + is_valid_utf_8, + get_utf_16be_uchar, + is_valid_utf_16be, + get_utf_16le_uchar, + is_valid_utf_16le, + blit, + copy, fill, - uppercase$1, - lowercase$1, - capitalize$0, - uncapitalize$0, - get_uint8$0, - get_int8$0, - get_uint16_ne$0, - get_uint16_be$0, - get_uint16_le$0, - get_int16_ne$0, - get_int16_be$0, - get_int16_le$0, - get_int32_ne$0, - get_int32_be$0, - get_int32_le$0, - get_int64_ne$0, - get_int64_be$0, - get_int64_le$0]; - caml_register_global(831,Stdlib_StringLabels,"Stdlib__StringLabels"); - var Stdlib_MoreLabels=[0,Stdlib_Hashtbl,Stdlib_Map,Stdlib_Set]; - caml_register_global(832,Stdlib_MoreLabels,"Stdlib__MoreLabels"); - var Stdlib_StdLabels=[0]; - caml_register_global(833,Stdlib_StdLabels,"Stdlib__StdLabels"); - var - float32=0, - float64=1, - int8_signed=2, - int8_unsigned=3, - int16_signed=4, - int16_unsigned=5, - int32$1=6, - int64$1=7, - int$2=8, - nativeint$1=9, - complex32=10, - complex64=11, - char$0=12; - function kind_size_in_bytes(param) - {switch(param) - {case 0:return 4; - case 1:return 8; - case 2:return 1; - case 3:return 1; - case 4:return 2; - case 5:return 2; - case 6:return 4; - case 7:return 8; - case 8:return 4; - case 9:return 4; - case 10:return 8; - case 11:return 16; - default:return 1}} - var c_layout=0,fortran_layout=1; - function cloop(arr,idx,f,col,max) - {if(col === idx.length - 1) - return caml_ba_set_generic(arr,idx,caml_call1(f,idx)); - var _eg_=caml_check_bound(max,col)[1 + col] - 1 | 0,_ef_=0; - if(! (_eg_ < 0)) - {var j=_ef_; - for(;;) - {caml_check_bound(idx,col)[1 + col] = j; - cloop(arr,idx,f,col + 1 | 0,max); - var _eh_=j + 1 | 0; - if(_eg_ !== j){var j=_eh_;continue} - break}} - return 0} - function floop(arr,idx,f,col,max) - {if(0 <= col) - {var _ed_=caml_check_bound(max,col)[1 + col],_ec_=1; - if(! (_ed_ < 1)) - {var j=_ec_; - for(;;) - {caml_check_bound(idx,col)[1 + col] = j; - floop(arr,idx,f,col - 1 | 0,max); - var _ee_=j + 1 | 0; - if(_ed_ !== j){var j=_ee_;continue} - break}} - return 0} - return caml_ba_set_generic(arr,idx,caml_call1(f,idx))} - function init$6(kind,layout,dims,f) - {var arr=caml_ba_create(kind,layout,dims),dlen=dims.length - 1; - return 0 === dlen - ?arr - :layout - ?(floop(arr,caml_make_vect(dlen,1),f,dlen - 1 | 0,dims),arr) - :(cloop(arr,caml_make_vect(dlen,0),f,0,dims),arr)} - function dims(a) - {var n=caml_ba_num_dims(a),d=caml_make_vect(n,0),_d$_=n - 1 | 0,_d__=0; - if(! (_d$_ < 0)) - {var i=_d__; - for(;;) - {var _ea_=runtime.caml_ba_dim(a,i); - caml_check_bound(d,i)[1 + i] = _ea_; - var _eb_=i + 1 | 0; - if(_d$_ !== i){var i=_eb_;continue} - break}} - return d} - function size_in_bytes(arr) - {var _d9_=fold_left$3(caml_mul,1,dims(arr)); - return caml_mul(kind_size_in_bytes(caml_ba_kind(arr)),_d9_)} - function create$8(kind,layout){return caml_ba_create(kind,layout,[0])} - function get$3(arr){return runtime.caml_ba_get_generic(arr,[0])} - function set$2(arr) - {var _d7_=[0]; - return function(_d8_){return caml_ba_set_generic(arr,_d7_,_d8_)}} - function size_in_bytes$0(arr) - {return kind_size_in_bytes(caml_ba_kind(arr))} - function of_value(kind,layout,v) - {var a=create$8(kind,layout);caml_call1(set$2(a),v);return a} - function create$9(kind,layout,dim) - {return caml_ba_create(kind,layout,[0,dim])} - function size_in_bytes$1(arr) - {var _d6_=caml_ba_dim_1(arr); - return caml_mul(kind_size_in_bytes(caml_ba_kind(arr)),_d6_)} - function slice(a,n) - {var match=runtime.caml_ba_layout(a); - return match?caml_ba_slice(a,[0,n]):caml_ba_slice(a,[0,n])} - function init$7(kind,layout,dim,f) - {var arr=create$9(kind,layout,dim); - if(layout) - {var _d4_=1; - if(! (dim < 1)) - {var i$0=_d4_; - for(;;) - {caml_ba_set_1(arr,i$0,caml_call1(f,i$0)); - var _d5_=i$0 + 1 | 0; - if(dim !== i$0){var i$0=_d5_;continue} - break}} - return arr} - var _d2_=dim - 1 | 0,_d1_=0; - if(! (_d2_ < 0)) - {var i=_d1_; - for(;;) - {caml_ba_set_1(arr,i,caml_call1(f,i)); - var _d3_=i + 1 | 0; - if(_d2_ !== i){var i=_d3_;continue} - break}} - return arr} - function of_array(kind,layout,data) - {var - ba=create$9(kind,layout,data.length - 1), - ofs=layout?1:0, - _dZ_=data.length - 1 - 1 | 0, - _dY_=0; - if(! (_dZ_ < 0)) - {var i=_dY_; - for(;;) - {caml_ba_set_1(ba,i + ofs | 0,caml_check_bound(data,i)[1 + i]); - var _d0_=i + 1 | 0; - if(_dZ_ !== i){var i=_d0_;continue} - break}} - return ba} - function create$10(kind,layout,dim1,dim2) - {return caml_ba_create(kind,layout,[0,dim1,dim2])} - function size_in_bytes$2(arr) - {var _dW_=caml_ba_dim_2(arr),_dX_=caml_ba_dim_1(arr); - return caml_mul - (caml_mul(kind_size_in_bytes(caml_ba_kind(arr)),_dX_),_dW_)} - function slice_left(a,n){return caml_ba_slice(a,[0,n])} - function slice_right(a,n){return caml_ba_slice(a,[0,n])} - function init$8(kind,layout,dim1,dim2,f) - {var arr=create$10(kind,layout,dim1,dim2); - if(layout) - {var _dS_=1; - if(! (dim2 < 1)) - {var j$0=_dS_; - for(;;) - {var _dT_=1; - if(! (dim1 < 1)) - {var i$0=_dT_; - for(;;) - {caml_ba_set_2(arr,i$0,j$0,caml_call2(f,i$0,j$0)); - var _dV_=i$0 + 1 | 0; - if(dim1 !== i$0){var i$0=_dV_;continue} - break}} - var _dU_=j$0 + 1 | 0; - if(dim2 !== j$0){var j$0=_dU_;continue} - break}} - return arr} - var _dN_=dim1 - 1 | 0,_dM_=0; - if(! (_dN_ < 0)) - {var i=_dM_; - for(;;) - {var _dP_=dim2 - 1 | 0,_dO_=0; - if(! (_dP_ < 0)) - {var j=_dO_; - for(;;) - {caml_ba_set_2(arr,i,j,caml_call2(f,i,j)); - var _dR_=j + 1 | 0; - if(_dP_ !== j){var j=_dR_;continue} - break}} - var _dQ_=i + 1 | 0; - if(_dN_ !== i){var i=_dQ_;continue} - break}} - return arr} - function of_array$0(kind,layout,data) - {var - dim1=data.length - 1, - dim2=0 === dim1?0:caml_check_bound(data,0)[1].length - 1, - ba=create$10(kind,layout,dim1,dim2), - ofs=layout?1:0, - _dH_=dim1 - 1 | 0, - _dG_=0; - if(! (_dH_ < 0)) - {var i=_dG_; - for(;;) - {var row=caml_check_bound(data,i)[1 + i]; - if(row.length - 1 !== dim2) - invalid_arg(cst_Bigarray_Array2_of_array_n); - var _dJ_=dim2 - 1 | 0,_dI_=0; - if(! (_dJ_ < 0)) - {var j=_dI_; - for(;;) - {caml_ba_set_2 - (ba,i + ofs | 0,j + ofs | 0,caml_check_bound(row,j)[1 + j]); - var _dL_=j + 1 | 0; - if(_dJ_ !== j){var j=_dL_;continue} - break}} - var _dK_=i + 1 | 0; - if(_dH_ !== i){var i=_dK_;continue} - break}} - return ba} - function create$11(kind,layout,dim1,dim2,dim3) - {return caml_ba_create(kind,layout,[0,dim1,dim2,dim3])} - function size_in_bytes$3(arr) - {var - _dD_=runtime.caml_ba_dim_3(arr), - _dE_=caml_ba_dim_2(arr), - _dF_=caml_ba_dim_1(arr); - return caml_mul - (caml_mul - (caml_mul(kind_size_in_bytes(caml_ba_kind(arr)),_dF_),_dE_), - _dD_)} - function slice_left_1(a,n,m){return caml_ba_slice(a,[0,n,m])} - function slice_right_1(a,n,m){return caml_ba_slice(a,[0,n,m])} - function slice_left_2(a,n){return caml_ba_slice(a,[0,n])} - function slice_right_2(a,n){return caml_ba_slice(a,[0,n])} - function init$9(kind,layout,dim1,dim2,dim3,f) - {var arr=create$11(kind,layout,dim1,dim2,dim3); - if(layout) - {var _dx_=1; - if(! (dim3 < 1)) - {var k$0=_dx_; - for(;;) - {var _dy_=1; - if(! (dim2 < 1)) - {var j$0=_dy_; - for(;;) - {var _dA_=1; - if(! (dim1 < 1)) - {var i$0=_dA_; - for(;;) - {caml_ba_set_3(arr,i$0,j$0,k$0,caml_call3(f,i$0,j$0,k$0)); - var _dC_=i$0 + 1 | 0; - if(dim1 !== i$0){var i$0=_dC_;continue} - break}} - var _dB_=j$0 + 1 | 0; - if(dim2 !== j$0){var j$0=_dB_;continue} - break}} - var _dz_=k$0 + 1 | 0; - if(dim3 !== k$0){var k$0=_dz_;continue} - break}} - return arr} - var _dp_=dim1 - 1 | 0,_do_=0; - if(! (_dp_ < 0)) - {var i=_do_; - for(;;) - {var _dr_=dim2 - 1 | 0,_dq_=0; - if(! (_dr_ < 0)) - {var j=_dq_; - for(;;) - {var _du_=dim3 - 1 | 0,_dt_=0; - if(! (_du_ < 0)) - {var k=_dt_; - for(;;) - {caml_ba_set_3(arr,i,j,k,caml_call3(f,i,j,k)); - var _dw_=k + 1 | 0; - if(_du_ !== k){var k=_dw_;continue} - break}} - var _dv_=j + 1 | 0; - if(_dr_ !== j){var j=_dv_;continue} - break}} - var _ds_=i + 1 | 0; - if(_dp_ !== i){var i=_ds_;continue} - break}} - return arr} - function of_array$1(kind,layout,data) - {var - dim1=data.length - 1, - dim2=0 === dim1?0:caml_check_bound(data,0)[1].length - 1, - dim3= - 0 === dim2 - ?0 - :caml_check_bound(caml_check_bound(data,0)[1],0)[1].length - 1, - ba=create$11(kind,layout,dim1,dim2,dim3), - ofs=layout?1:0, - _dg_=dim1 - 1 | 0, - _df_=0; - if(! (_dg_ < 0)) - {var i=_df_; - for(;;) - {var row=caml_check_bound(data,i)[1 + i]; - if(row.length - 1 !== dim2) - invalid_arg(cst_Bigarray_Array3_of_array_n); - var _di_=dim2 - 1 | 0,_dh_=0; - if(! (_di_ < 0)) - {var j=_dh_; - for(;;) - {var col=caml_check_bound(row,j)[1 + j]; - if(col.length - 1 !== dim3) - invalid_arg(cst_Bigarray_Array3_of_array_n$0); - var _dl_=dim3 - 1 | 0,_dk_=0; - if(! (_dl_ < 0)) - {var k=_dk_; - for(;;) - {caml_ba_set_3 - (ba, - i + ofs | 0, - j + ofs | 0, - k + ofs | 0, - caml_check_bound(col,k)[1 + k]); - var _dn_=k + 1 | 0; - if(_dl_ !== k){var k=_dn_;continue} - break}} - var _dm_=j + 1 | 0; - if(_di_ !== j){var j=_dm_;continue} - break}} - var _dj_=i + 1 | 0; - if(_dg_ !== i){var i=_dj_;continue} - break}} - return ba} - function array0_of_genarray(a) - {return 0 === caml_ba_num_dims(a) - ?a - :invalid_arg(cst_Bigarray_array0_of_genarra)} - function array1_of_genarray(a) - {return 1 === caml_ba_num_dims(a) - ?a - :invalid_arg(cst_Bigarray_array1_of_genarra)} - function array2_of_genarray(a) - {return 2 === caml_ba_num_dims(a) - ?a - :invalid_arg(cst_Bigarray_array2_of_genarra)} - function array3_of_genarray(a) - {return 3 === caml_ba_num_dims(a) - ?a - :invalid_arg(cst_Bigarray_array3_of_genarra)} - function reshape_0(a){return caml_ba_reshape(a,[0])} - function reshape_1(a,dim1){return caml_ba_reshape(a,[0,dim1])} - function reshape_2(a,dim1,dim2){return caml_ba_reshape(a,[0,dim1,dim2])} - function reshape_3(a,dim1,dim2,dim3) - {return caml_ba_reshape(a,[0,dim1,dim2,dim3])} - var - Stdlib_Bigarray= - [0, - float32, - float64, - complex32, - complex64, - int8_signed, - int8_unsigned, - int16_signed, - int16_unsigned, - int$2, - int32$1, - int64$1, - nativeint$1, - char$0, - kind_size_in_bytes, - c_layout, - fortran_layout, - [0,init$6,dims,size_in_bytes], - [0, - create$8, - of_value, - caml_ba_change_layout, - size_in_bytes$0, - get$3, - set$2, - of_value], - [0, - create$9, - init$7, - caml_ba_change_layout, - size_in_bytes$1, - slice, - of_array], - [0, - create$10, - init$8, - caml_ba_change_layout, - size_in_bytes$2, - slice_left, - slice_right, - of_array$0], - [0, - create$11, - init$9, - caml_ba_change_layout, - size_in_bytes$3, - slice_left_1, - slice_right_1, - slice_left_2, - slice_right_2, - of_array$1], - array0_of_genarray, - array1_of_genarray, - array2_of_genarray, - array3_of_genarray, - caml_ba_reshape, - reshape_0, - reshape_1, - reshape_2, - reshape_3]; - caml_register_global(834,Stdlib_Bigarray,"Stdlib__Bigarray"); - function with_open(openfun,s,f) - {var ic=caml_call1(openfun,s); - function _de_(param){return caml_call1(f,ic)} - return protect(function(param){return close_noerr$0(ic)},_de_)} - function with_open_bin(s,f){return with_open(open_bin$0,s,f)} - function with_open_text(s,f){return with_open(open_text$0,s,f)} - function with_open_gen(flags,perm,s,f) - {return with_open(function(_dd_){return open_gen$0(flags,perm,_dd_)},s,f)} - var seek=_m_[4],pos=_m_[5],length$11=_m_[6]; - function input_char$0(ic) - {try - {var c=caml_ml_input_char(ic)} - catch(_dc_) - {_dc_ = caml_wrap_exception(_dc_); - if(_dc_ === End_of_file)return 0; - throw _dc_} - return [0,c]} - function input_byte$0(ic) - {try - {var n=caml_ml_input_char(ic)} - catch(_db_) - {_db_ = caml_wrap_exception(_db_); - if(_db_ === End_of_file)return 0; - throw _db_} - return [0,n]} - function input_line$0(ic) - {try - {var s=input_line(ic)} - catch(_da_) - {_da_ = caml_wrap_exception(_da_); - if(_da_ === End_of_file)return 0; - throw _da_} - return [0,s]} - function really_input$0(ic,buf,pos,len) - {try - {really_input(ic,buf,pos,len);return _cZ_} - catch(_c$_) - {_c$_ = caml_wrap_exception(_c$_); - if(_c$_ === End_of_file)return 0; - throw _c$_}} - function really_input_string$0(ic,len) - {try - {var s=really_input_string(ic,len)} - catch(_c__) - {_c__ = caml_wrap_exception(_c__); - if(_c__ === End_of_file)return 0; - throw _c__} - return [0,s]} - function read_upto(ic,buf,ofs,len) - {var ofs$0=ofs,len$0=len; - for(;;) - {if(0 !== len$0) - {var r=input(ic,buf,ofs$0,len$0); - if(0 !== r) - {var - len$1=len$0 - r | 0, - ofs$1=ofs$0 + r | 0, - ofs$0=ofs$1, - len$0=len$1; - continue}} - return ofs$0 - ofs | 0}} - function ensure(buf,ofs,n) - {var len=caml_ml_bytes_length(buf); - if((ofs + n | 0) <= len)return buf; - var new_len=[0,len]; - for(;;) - {if(new_len[1] < (ofs + n | 0)) - {new_len[1] = (2 * new_len[1] | 0) + 1 | 0;continue} - var - new_len$0=new_len[1], - new_len$1= - new_len$0 <= max_string_length - ?new_len$0 - :ofs < max_string_length - ?max_string_length - :failwith(cst_In_channel_input_all_chann), - new_buf=caml_create_bytes(new_len$1); - blit(buf,0,new_buf,0,ofs); - return new_buf}} - function input_all(ic) - {var chunk_size=65536; - try - {var - _c6_=caml_ml_pos_in(ic), - _c7_=caml_ml_channel_size(ic) - _c6_ | 0, - initial_size=_c7_} - catch(_c9_) - {_c9_ = caml_wrap_exception(_c9_); - if(_c9_[1] !== Sys_error)throw _c9_; - var initial_size=-1} - var - initial_size$0=0 <= initial_size?initial_size:chunk_size, - initial_size$1= - initial_size$0 <= max_string_length?initial_size$0:max_string_length, - buf=caml_create_bytes(initial_size$1), - nread=read_upto(ic,buf,0,initial_size$1); - if(nread < initial_size$1)return sub_string(buf,0,nread); - try - {var c=caml_ml_input_char(ic)} - catch(_c8_) - {_c8_ = caml_wrap_exception(_c8_); - if(_c8_ === End_of_file)return caml_string_of_bytes(buf); - throw _c8_} - function loop(buf,ofs) - {var buf$0=buf,ofs$0=ofs; - for(;;) - {var - buf$1=ensure(buf$0,ofs$0,chunk_size), - rem=caml_ml_bytes_length(buf$1) - ofs$0 | 0, - r=read_upto(ic,buf$1,ofs$0,rem); - if(r < rem)return sub_string(buf$1,0,ofs$0 + r | 0); - var ofs$1=ofs$0 + rem | 0,buf$0=buf$1,ofs$0=ofs$1; - continue}} - var buf$0=ensure(buf,nread,65537); - caml_bytes_set(buf$0,nread,c); - return loop(buf$0,nread + 1 | 0)} - var - Stdlib_In_channel= - [0, - stdin, - open_bin$0, - open_text$0, - open_gen$0, - with_open_bin, - with_open_text, - with_open_gen, - seek, - pos, - length$11, - close$0, - close_noerr$0, - input_char$0, - input_byte$0, - input_line$0, - input, - really_input$0, - really_input_string$0, - input_all, - set_binary_mode]; - caml_register_global(835,Stdlib_In_channel,"Stdlib__In_channel"); - function with_open$0(openfun,s,f) - {var oc=caml_call1(openfun,s); - function _c5_(param){return caml_call1(f,oc)} - return protect(function(param){return close_noerr(oc)},_c5_)} - function with_open_bin$0(s,f){return with_open$0(open_bin,s,f)} - function with_open_text$0(s,f){return with_open$0(open_text,s,f)} - function with_open_gen$0(flags,perm,s,f) - {return with_open$0(function(_c4_){return open_gen(flags,perm,_c4_)},s,f)} - var - seek$0=_m_[1], - pos$0=_m_[2], - length$12=_m_[3], - Stdlib_Out_channel= - [0, - stdout, - stderr, - open_bin, - open_text, - open_gen, - with_open_bin$0, - with_open_text$0, - with_open_gen$0, - seek$0, - pos$0, - length$12, - close, - close_noerr, - flush, - flush_all, - output_char, - output_byte, - output_string, - output_bytes, - output, - output_substring, - set_binary_mode$0, - runtime.caml_ml_set_buffered, - runtime.caml_ml_is_buffered]; - caml_register_global(836,Stdlib_Out_channel,"Stdlib__Out_channel"); - return} + uppercase, + lowercase, + capitalize, + uncapitalize, + get_uint8, + get_int8, + get_uint16_ne, + get_uint16_be, + get_uint16_le, + get_int16_ne, + get_int16_be, + get_int16_le, + get_int32_ne, + get_int32_be, + get_int32_le, + get_int64_ne, + get_int64_be, + get_int64_le]; + runtime.caml_register_global + (1, Stdlib_StringLabels, "Stdlib__StringLabels"); + return; + } + (globalThis)); + +//# 26459 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + global_data = runtime.caml_get_global_data(), + Stdlib_Set = global_data.Stdlib__Set, + Stdlib_Map = global_data.Stdlib__Map, + Stdlib_Hashtbl = global_data.Stdlib__Hashtbl, + Stdlib_MoreLabels = [0, Stdlib_Hashtbl, Stdlib_Map, Stdlib_Set]; + runtime.caml_register_global(3, Stdlib_MoreLabels, "Stdlib__MoreLabels"); + return; + } (globalThis)); -//# 1 "../../.js/dates_calc/dates_calc.cma.js" -(function(globalThis) - {"use strict"; - var - runtime=globalThis.jsoo_runtime, - caml_fresh_oo_id=runtime.caml_fresh_oo_id, - caml_mul=runtime.caml_mul, - caml_register_global=runtime.caml_register_global, - caml_string_of_jsbytes=runtime.caml_string_of_jsbytes, - caml_wrap_exception=runtime.caml_wrap_exception; - function caml_call2(f,a0,a1) - {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} - function caml_call5(f,a0,a1,a2,a3,a4) - {return f.length == 5 - ?f(a0,a1,a2,a3,a4) - :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4])} - var - global_data=runtime.caml_get_global_data(), - cst_Dates_calc_Dates_InvalidDa= - caml_string_of_jsbytes("Dates_calc.Dates.InvalidDate"), - cst_Dates_calc_Dates_Ambiguous= - caml_string_of_jsbytes("Dates_calc.Dates.AmbiguousComputation"), - Assert_failure=global_data.Assert_failure, - Stdlib_Format=global_data.Stdlib__Format, - Stdlib_Int=global_data.Stdlib__Int, - Dates_calc=[0]; - caml_register_global(10,Dates_calc,"Dates_calc"); - var - InvalidDate=[248,cst_Dates_calc_Dates_InvalidDa,caml_fresh_oo_id(0)], - AmbiguousComputation= - [248,cst_Dates_calc_Dates_Ambiguous,caml_fresh_oo_id(0)], - _h_=[0,caml_string_of_jsbytes("lib/dates.ml"),230,2], - _g_=[0,caml_string_of_jsbytes("lib/dates.ml"),226,2], - _f_= +//# 1 "../../.js/default/dates_calc/dates_calc.cma.js" +// Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 + +//# 16 "../../.js/default/dates_calc/dates_calc.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_lib_dates_ml = "lib/dates.ml", + caml_fresh_oo_id = runtime.caml_fresh_oo_id, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_mul = runtime.caml_mul, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call5(f, a0, a1, a2, a3, a4){ + return (f.l >= 0 ? f.l : f.l = f.length) == 5 + ? f(a0, a1, a2, a3, a4) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); + } + var + global_data = runtime.caml_get_global_data(), + Assert_failure = global_data.Assert_failure, + Stdlib_Format = global_data.Stdlib__Format, + Stdlib_Int = global_data.Stdlib__Int, + InvalidDate = [248, "Dates_calc.Dates.InvalidDate", caml_fresh_oo_id(0)], + AmbiguousComputation = + [248, "Dates_calc.Dates.AmbiguousComputation", caml_fresh_oo_id(0)], + _h_ = [0, cst_lib_dates_ml, 230, 2], + _g_ = [0, cst_lib_dates_ml, 226, 2], + _f_ = [0, - [4,0,[0,2,4],0,[12,45,[4,0,[0,2,2],0,[12,45,[4,0,[0,2,2],0,0]]]]], - caml_string_of_jsbytes("%04d-%02d-%02d")], - _d_=[0,caml_string_of_jsbytes("lib/dates.ml"),123,2], - _e_=[0,caml_string_of_jsbytes("lib/dates.ml"),124,2], - _b_=[0,caml_string_of_jsbytes("lib/dates.ml"),109,2], - _c_=[0,caml_string_of_jsbytes("lib/dates.ml"),110,2], - _a_= + [4, + 0, + [0, 2, 4], + 0, + [12, 45, [4, 0, [0, 2, 2], 0, [12, 45, [4, 0, [0, 2, 2], 0, 0]]]]], + "%04d-%02d-%02d"], + _d_ = [0, cst_lib_dates_ml, 123, 2], + _e_ = [0, cst_lib_dates_ml, 124, 2], + _b_ = [0, cst_lib_dates_ml, 109, 2], + _c_ = [0, cst_lib_dates_ml, 110, 2], + _a_ = [0, [12, 91, @@ -30602,199 +29103,233 @@ 0, 0, [11, - caml_string_of_jsbytes(" years, "), - [4, - 0, - 0, - 0, - [11, - caml_string_of_jsbytes(" months, "), - [4,0,0,0,[11,caml_string_of_jsbytes(" days]"),0]]]]]]], - caml_string_of_jsbytes("[%d years, %d months, %d days]")]; - function format_period(fmt,p) - {return caml_call5(Stdlib_Format[129],fmt,_a_,p[1],p[2],p[3])} - function make_period(years,months,days){return [0,years,months,days]} - function add_periods(d1,d2) - {return [0,d1[1] + d2[1] | 0,d1[2] + d2[2] | 0,d1[3] + d2[3] | 0]} - function sub_periods(d1,d2) - {return [0,d1[1] - d2[1] | 0,d1[2] - d2[2] | 0,d1[3] - d2[3] | 0]} - function mul_period(d1,m) - {return [0,caml_mul(d1[1],m),caml_mul(d1[2],m),caml_mul(d1[3],m)]} - function period_to_days(p) - {if(0 === p[1] && 0 === p[2])return p[3];throw AmbiguousComputation} - function is_leap_year(year) - {var _w_=0 === (year % 400 | 0)?1:0; - if(_w_) - var _x_=_w_; - else + " years, ", + [4, 0, 0, 0, [11, " months, ", [4, 0, 0, 0, [11, " days]", 0]]]]]]], + "[%d years, %d months, %d days]"]; + function format_period(fmt, p){ + return caml_call5(Stdlib_Format[129], fmt, _a_, p[1], p[2], p[3]); + } + function make_period(years, months, days){return [0, years, months, days];} + function add_periods(d1, d2){ + return [0, d1[1] + d2[1] | 0, d1[2] + d2[2] | 0, d1[3] + d2[3] | 0]; + } + function sub_periods(d1, d2){ + return [0, d1[1] - d2[1] | 0, d1[2] - d2[2] | 0, d1[3] - d2[3] | 0]; + } + function mul_period(d1, m){ + return [0, caml_mul(d1[1], m), caml_mul(d1[2], m), caml_mul(d1[3], m)]; + } + function period_to_days(p){ + if(0 === p[1] && 0 === p[2]) return p[3]; + throw caml_maybe_attach_backtrace(AmbiguousComputation, 1); + } + function is_leap_year(year){ + var _w_ = 0 === (year % 400 | 0) ? 1 : 0; + if(_w_) + var _x_ = _w_; + else + var + _y_ = 0 === (year % 4 | 0) ? 1 : 0, + _x_ = _y_ ? 0 !== (year % 100 | 0) ? 1 : 0 : _y_; + return _x_; + } + function days_in_month(month, is_leap_year){ + var switcher = month - 1 | 0; + if(11 < switcher >>> 0) throw caml_maybe_attach_backtrace(InvalidDate, 1); + switch(switcher){ + case 1: + return is_leap_year ? 29 : 28; + case 3: + case 5: + case 8: + case 10: + return 30; + default: return 31; + } + } + function is_valid_date(d){ + try{ + var _r_ = 1 <= d[3] ? 1 : 0; + if(_r_) + var + _s_ = is_leap_year(d[1]), + _t_ = days_in_month(d[2], _s_), + _u_ = d[3] <= _t_ ? 1 : 0; + else + var _u_ = _r_; + return _u_; + } + catch(_v_){ + var _q_ = caml_wrap_exception(_v_); + if(_q_ === InvalidDate) return 0; + throw caml_maybe_attach_backtrace(_q_, 0); + } + } + function make_date(year, month, day){ + var d = [0, year, month, day]; + if(is_valid_date(d)) return d; + throw caml_maybe_attach_backtrace(InvalidDate, 1); + } + function add_months_to_first_of_month_d(year, month, months){ + var year$0 = year, months$0 = months; + for(;;){ + var new_month = month + months$0 | 0; + if(1 <= new_month && 12 >= new_month) return [0, year$0, new_month]; + if(12 < new_month){ + var + months$1 = months$0 - 12 | 0, + year$1 = year$0 + 1 | 0, + year$0 = year$1, + months$0 = months$1; + continue; + } + var + months$2 = months$0 + 12 | 0, + year$2 = year$0 - 1 | 0, + year$0 = year$2, + months$0 = months$2; + } + } + function add_dates(opt, d){ + if(opt) var sth = opt[1], round = sth; else var round = 2; + return function(p){ + var + years = p[1], + months = p[2], + _o_ = d[3], + match$0 = add_months_to_first_of_month_d(d[1] + years | 0, d[2], months), + new_month$0 = match$0[2], + new_year$0 = match$0[1], + new_date = [0, new_year$0, new_month$0, _o_]; + if(is_valid_date(new_date)) + var d$0 = new_date; + else + switch(round){ + case 0: + var switch$0 = 0; + if(1 <= new_date[2] && ! (12 < new_date[2])){ + var switch$1 = 0; + if(1 <= new_date[3] && ! (31 < new_date[3])) + if(is_valid_date(new_date)) + var d$0 = new_date; + else + var + match = + add_months_to_first_of_month_d(new_date[1], new_date[2], 1), + new_month = match[2], + new_year = match[1], + d$0 = [0, new_year, new_month, 1]; + else + switch$1 = 1; + if(switch$1) + throw caml_maybe_attach_backtrace([0, Assert_failure, _e_], 1); + } + else + switch$0 = 1; + if(switch$0) + throw caml_maybe_attach_backtrace([0, Assert_failure, _d_], 1); + break; + case 1: + var switch$2 = 0; + if(1 <= new_date[2] && 12 >= new_date[2]){ + var switch$3 = 0; + if(1 <= new_date[3] && ! (31 < new_date[3])) + if(is_valid_date(new_date)){ + var d$0 = new_date; + switch$2 = 1; + } + else{ + var + _m_ = is_leap_year(new_date[1]), + _n_ = days_in_month(new_date[2], _m_), + d$0 = [0, new_date[1], new_date[2], _n_]; + switch$2 = 1; + } + else + switch$3 = 1; + if(switch$3) + throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); + } + if(! switch$2) + throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); + break; + default: throw caml_maybe_attach_backtrace(AmbiguousComputation, 1); + } + var days$2 = p[3], d$1 = d$0, days = days$2; + for(;;){ + var + _p_ = is_leap_year(d$1[1]), + days_in_d_month = days_in_month(d$1[2], _p_), + new_day = d$1[3] + days | 0; + if(1 <= new_day && new_day <= days_in_d_month) + return [0, d$1[1], d$1[2], new_day]; + if(days_in_d_month <= new_day){ var - _y_=0 === (year % 4 | 0)?1:0, - _x_=_y_?0 !== (year % 100 | 0)?1:0:_y_; - return _x_} - function days_in_month(month,is_leap_year) - {var switcher=month - 1 | 0; - if(11 < switcher >>> 0)throw InvalidDate; - switch(switcher) - {case 1:return is_leap_year?29:28; - case 3: - case 5: - case 8: - case 10:return 30; - default:return 31}} - function is_valid_date(d) - {try - {var _r_=1 <= d[3]?1:0; - if(_r_) - var - _s_=is_leap_year(d[1]), - _t_=days_in_month(d[2],_s_), - _u_=d[3] <= _t_?1:0; - else - var _u_=_r_; - return _u_} - catch(_v_) - {_v_ = caml_wrap_exception(_v_); - if(_v_ === InvalidDate)return 0; - throw _v_}} - function make_date(year,month,day) - {var d=[0,year,month,day];if(is_valid_date(d))return d;throw InvalidDate} - function add_months_to_first_of_month_d(year,month,months) - {var year$0=year,months$0=months; - for(;;) - {var new_month=month + months$0 | 0; - if(1 <= new_month && ! (12 < new_month))return [0,year$0,new_month]; - if(12 < new_month) - {var - months$1=months$0 - 12 | 0, - year$1=year$0 + 1 | 0, - year$0=year$1, - months$0=months$1; - continue} - var - months$2=months$0 + 12 | 0, - year$2=year$0 - 1 | 0, - year$0=year$2, - months$0=months$2; - continue}} - function add_dates(opt,d) - {if(opt)var sth=opt[1],round=sth;else var round=2; - return function(p) - {var - _o_=d[3], - match$0=add_months_to_first_of_month_d(d[1] + p[1] | 0,d[2],p[2]), - new_month$0=match$0[2], - new_year$0=match$0[1], - new_date=[0,new_year$0,new_month$0,_o_]; - if(is_valid_date(new_date)) - var _p_=new_date; - else - switch(round) - {case 0: - var switch$0=0; - if(1 <= new_date[2] && ! (12 < new_date[2])) - {var switch$1=0; - if(1 <= new_date[3] && ! (31 < new_date[3])) - if(is_valid_date(new_date)) - {var _p_=new_date;switch$1 = 1} - else - {var - match= - add_months_to_first_of_month_d(new_date[1],new_date[2],1), - new_month=match[2], - new_year=match[1], - _p_=[0,new_year,new_month,1]; - switch$1 = 1} - if(! switch$1)throw [0,Assert_failure,_e_]} - else - switch$0 = 1; - if(switch$0)throw [0,Assert_failure,_d_]; - break; - case 1: - var switch$2=0; - if(1 <= new_date[2] && ! (12 < new_date[2])) - {var switch$3=0; - if(1 <= new_date[3] && ! (31 < new_date[3])) - if(is_valid_date(new_date)) - {var _p_=new_date;switch$3 = 1} - else - {var - _m_=is_leap_year(new_date[1]), - _n_=days_in_month(new_date[2],_m_), - _p_=[0,new_date[1],new_date[2],_n_]; - switch$3 = 1} - if(! switch$3)throw [0,Assert_failure,_c_]} - else - switch$2 = 1; - if(switch$2)throw [0,Assert_failure,_b_]; - break; - default:throw AmbiguousComputation} - var d$0=_p_,days=p[3]; - for(;;) - {var - _q_=is_leap_year(d$0[1]), - days_in_d_month=days_in_month(d$0[2],_q_), - new_day=d$0[3] + days | 0; - if(1 <= new_day && new_day <= days_in_d_month) - return [0,d$0[1],d$0[2],new_day]; - if(days_in_d_month <= new_day) - {var - match$1=add_months_to_first_of_month_d(d$0[1],d$0[2],1), - new_month$1=match$1[2], - new_year$1=match$1[1], - days$0=(days - (days_in_d_month - d$0[3] | 0) | 0) - 1 | 0, - d$1=[0,new_year$1,new_month$1,1], - d$0=d$1, - days=days$0; - continue} - var - match$2=add_months_to_first_of_month_d(d$0[1],d$0[2],-1), - new_month$2=match$2[2], - new_year$2=match$2[1], - days$1=days + d$0[3] | 0, - d$2= - [0, - new_year$2, - new_month$2, - days_in_month(new_month$2,is_leap_year(new_year$2))], - d$0=d$2, - days=days$1; - continue}}} - function compare_dates(d1,d2) - {return 0 === caml_call2(Stdlib_Int[9],d1[1],d2[1]) - ?0 === caml_call2(Stdlib_Int[9],d1[2],d2[2]) - ?caml_call2(Stdlib_Int[9],d1[3],d2[3]) - :caml_call2(Stdlib_Int[9],d1[2],d2[2]) - :caml_call2(Stdlib_Int[9],d1[1],d2[1])} - function format_date(fmt,d) - {return caml_call5(Stdlib_Format[129],fmt,_f_,d[1],d[2],d[3])} - function first_day_of_month(d) - {if(is_valid_date(d))return make_date(d[1],d[2],1); - throw [0,Assert_failure,_g_]} - function last_day_of_month(d) - {if(is_valid_date(d)) - {var _l_=is_leap_year(d[1]),days_month=days_in_month(d[2],_l_); - return make_date(d[1],d[2],days_month)} - throw [0,Assert_failure,_h_]} - function neg_period(p){return [0,- p[1] | 0,- p[2] | 0,- p[3] | 0]} - function sub_dates(d1,d2) - {if(d1[1] === d2[1] && d1[2] === d2[2])return [0,0,0,d1[3] - d2[3] | 0]; - var cmp=compare_dates(d1,d2); - if(0 <= cmp) - {var - match=add_months_to_first_of_month_d(d2[1],d2[2],1), - new_d2_month=match[2], - new_d2_year=match[1], - new_d2=[0,new_d2_year,new_d2_month,1], - _i_=sub_dates(d1,new_d2), - _j_=d2[3], - _k_=is_leap_year(d2[1]); - return add_periods - ([0,0,0,(days_in_month(d2[2],_k_) - _j_ | 0) + 1 | 0],_i_)} - return neg_period(sub_dates(d2,d1))} - function date_to_ymd(d){return [0,d[1],d[2],d[3]]} - function period_to_ymds(p){return [0,p[1],p[2],p[3]]} + match$1 = add_months_to_first_of_month_d(d$1[1], d$1[2], 1), + new_month$1 = match$1[2], + new_year$1 = match$1[1], + days$0 = (days - (days_in_d_month - d$1[3] | 0) | 0) - 1 | 0, + d$2 = [0, new_year$1, new_month$1, 1], + d$1 = d$2, + days = days$0; + continue; + } + var + match$2 = add_months_to_first_of_month_d(d$1[1], d$1[2], -1), + new_month$2 = match$2[2], + new_year$2 = match$2[1], + days$1 = days + d$1[3] | 0, + d$3 = + [0, + new_year$2, + new_month$2, + days_in_month(new_month$2, is_leap_year(new_year$2))], + d$1 = d$3, + days = days$1; + }}; + } + function compare_dates(d1, d2){ + return 0 === caml_call2(Stdlib_Int[9], d1[1], d2[1]) + ? 0 + === caml_call2(Stdlib_Int[9], d1[2], d2[2]) + ? caml_call2(Stdlib_Int[9], d1[3], d2[3]) + : caml_call2(Stdlib_Int[9], d1[2], d2[2]) + : caml_call2(Stdlib_Int[9], d1[1], d2[1]); + } + function format_date(fmt, d){ + return caml_call5(Stdlib_Format[129], fmt, _f_, d[1], d[2], d[3]); + } + function first_day_of_month(d){ + if(is_valid_date(d)) return make_date(d[1], d[2], 1); + throw caml_maybe_attach_backtrace([0, Assert_failure, _g_], 1); + } + function last_day_of_month(d){ + if(! is_valid_date(d)) + throw caml_maybe_attach_backtrace([0, Assert_failure, _h_], 1); + var _l_ = is_leap_year(d[1]), days_month = days_in_month(d[2], _l_); + return make_date(d[1], d[2], days_month); + } + function neg_period(p){return [0, - p[1] | 0, - p[2] | 0, - p[3] | 0];} + function sub_dates(d1, d2){ + if(d1[1] === d2[1] && d1[2] === d2[2]) + return [0, 0, 0, d1[3] - d2[3] | 0]; + var cmp = compare_dates(d1, d2); + if(0 > cmp) return neg_period(sub_dates(d2, d1)); var - Dates_calc_Dates= + match = add_months_to_first_of_month_d(d2[1], d2[2], 1), + new_d2_month = match[2], + new_d2_year = match[1], + new_d2 = [0, new_d2_year, new_d2_month, 1], + _i_ = sub_dates(d1, new_d2), + _j_ = d2[3], + _k_ = is_leap_year(d2[1]); + return add_periods + ([0, 0, 0, (days_in_month(d2[2], _k_) - _j_ | 0) + 1 | 0], _i_); + } + function date_to_ymd(d){return [0, d[1], d[2], d[3]];} + function period_to_ymds(p){return [0, p[1], p[2], p[3]];} + var + Dates_calc_Dates = [0, InvalidDate, AmbiguousComputation, @@ -30815,291 +29350,347 @@ format_period, period_to_days, period_to_ymds]; - caml_register_global(14,Dates_calc_Dates,"Dates_calc__Dates"); - return} + runtime.caml_register_global(13, Dates_calc_Dates, "Dates_calc__Dates"); + return; + } (globalThis)); -//# 1 "../../.js/zarith/zarith.cma.js" -(function(globalThis) - {"use strict"; +//# 1 "../../.js/default/zarith/zarith.cma.js" +// Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 + +//# 5 "../../.js/default/zarith/zarith.cma.js" +(function + (globalThis){ + "use strict"; + var runtime = globalThis.jsoo_runtime, Zarith_version = [0, "1.12"]; + runtime.caml_register_global(1, Zarith_version, "Zarith_version"); + return; + } + (globalThis)); + +//# 16 "../../.js/default/zarith/zarith.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_d = "%d", + caml_div = runtime.caml_div, + caml_equal = runtime.caml_equal, + caml_int64_to_float = runtime.caml_int64_to_float, + caml_ml_string_length = runtime.caml_ml_string_length; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib_Format = global_data.Stdlib__Format, + Stdlib_Buffer = global_data.Stdlib__Buffer, + Stdlib = global_data.Stdlib, + Stdlib_Sys = global_data.Stdlib__Sys, + Stdlib_Callback = global_data.Stdlib__Callback, + Zarith_version = global_data.Zarith_version, + _a_ = [248, "Z.Overflow", runtime.caml_fresh_oo_id(0)]; + runtime.ml_z_init(0); + caml_call2(Stdlib_Callback[2], "ml_z_overflow", _a_); + var + _S_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 0), + cst_Z_log2up = "Z.log2up", + cst_Z_log2 = "Z.log2", + cst_Z_signed_extract_negative_ = "Z.signed_extract: negative bit offset", + cst_Z_signed_extract_nonpositi = + "Z.signed_extract: nonpositive bit length", + cst_Z_testbit = "Z.testbit"; + function _b_(_bU_){ + if(typeof _bU_ === "number" && _bU_ !== Stdlib[20]) return - _bU_ | 0; + return runtime.ml_z_neg(_bU_); + } + function _c_(_bS_, _bR_){ + if(typeof _bS_ === "number" && typeof _bR_ === "number"){ + var _bT_ = _bS_ + _bR_ | 0; + return 0 <= ((_bT_ ^ _bS_) & (_bT_ ^ _bR_)) + ? _bT_ + : runtime.ml_z_add(_bS_, _bR_); + } + return runtime.ml_z_add(_bS_, _bR_); + } + function _d_(_bP_, _bO_){ + if(typeof _bP_ === "number" && typeof _bO_ === "number"){ + var _bQ_ = _bP_ - _bO_ | 0; + return 0 <= ((_bP_ ^ _bO_) & (_bQ_ ^ _bP_)) + ? _bQ_ + : runtime.ml_z_sub(_bP_, _bO_); + } + return runtime.ml_z_sub(_bP_, _bO_); + } + function _e_(_bN_, _bM_){ + if + (typeof _bN_ === "number" + && typeof _bM_ === "number" && ! runtime.ml_z_mul_overflows(_bN_, _bM_)) + return runtime.caml_mul(_bN_, _bM_); + return runtime.ml_z_mul(_bN_, _bM_); + } + function _f_(_bL_, _bK_){ + return typeof _bK_ === "number" + ? -1 + === _bK_ + ? _b_(_bL_) + : typeof + _bL_ + === "number" + ? caml_div(_bL_, _bK_) + : runtime.ml_z_div(_bL_, _bK_) + : runtime.ml_z_div(_bL_, _bK_); + } + function _g_(_bJ_, _bI_){ + return typeof _bI_ === "number" + ? -1 + === _bI_ + ? 0 + : typeof + _bJ_ + === "number" + ? runtime.caml_mod(_bJ_, _bI_) + : runtime.ml_z_rem(_bJ_, _bI_) + : runtime.ml_z_rem(_bJ_, _bI_); + } + function _h_(_bH_, _bG_){ + return typeof _bG_ === "number" + ? -1 + === _bG_ + ? _b_(_bH_) + : typeof + _bH_ + === "number" + ? caml_div(_bH_, _bG_) + : runtime.ml_z_divexact(_bH_, _bG_) + : runtime.ml_z_divexact(_bH_, _bG_); + } + function _i_(_bF_){ + if(typeof _bF_ === "number" && _bF_ !== Stdlib[19]) return _bF_ + 1 | 0; + return runtime.ml_z_succ(_bF_); + } + function _j_(_bE_){ + if(typeof _bE_ === "number" && _bE_ !== Stdlib[20]) return _bE_ - 1 | 0; + return runtime.ml_z_pred(_bE_); + } + function _k_(_bD_){ + return typeof _bD_ === "number" + ? 0 + <= _bD_ + ? _bD_ + : _bD_ !== Stdlib[20] ? - _bD_ | 0 : runtime.ml_z_abs(_bD_) + : runtime.ml_z_abs(_bD_); + } + function _l_(_bC_, _bB_){ + if(typeof _bC_ === "number" && typeof _bB_ === "number") + return _bC_ & _bB_; + return runtime.ml_z_logand(_bC_, _bB_); + } + function _m_(_bA_, _bz_){ + if(typeof _bA_ === "number" && typeof _bz_ === "number") + return _bA_ | _bz_; + return runtime.ml_z_logor(_bA_, _bz_); + } + function _n_(_by_, _bx_){ + if(typeof _by_ === "number" && typeof _bx_ === "number") + return _by_ ^ _bx_; + return runtime.ml_z_logxor(_by_, _bx_); + } + function _o_(_bw_){ + return typeof _bw_ === "number" ? _bw_ ^ -1 : runtime.ml_z_lognot(_bw_); + } + function _p_(_bu_, _bt_){ + if(typeof _bu_ === "number" && 0 <= _bt_ && _bt_ < Stdlib_Sys[9]){ + var _bv_ = _bu_ << _bt_; + return _bv_ >> _bt_ === _bu_ ? _bv_ : runtime.ml_z_shift_left(_bu_, _bt_); + } + return runtime.ml_z_shift_left(_bu_, _bt_); + } + function _q_(_br_, _bq_){ + if(typeof _br_ === "number" && 0 <= _bq_){ + var _bs_ = _bq_ < Stdlib_Sys[9] ? _bq_ : Stdlib_Sys[9] - 1 | 0; + return _br_ >> _bs_; + } + return runtime.ml_z_shift_right(_br_, _bq_); + } + function _r_(_bp_, _bo_){ + if(typeof _bp_ === "number" && 0 <= _bo_) + return Stdlib_Sys[9] <= _bo_ + ? 0 + : 0 + <= _bp_ + ? _bp_ >>> _bo_ | 0 + : - ((- _bp_ | 0) >>> _bo_ | 0) | 0; + return runtime.ml_z_shift_right_trunc(_bp_, _bo_); + } + function _s_(_bn_){ + return typeof _bn_ === "number" ? _bn_ : runtime.ml_z_to_int(_bn_); + } + var _t_ = 0, _u_ = 1, _v_ = -1; + function _w_(_bm_, _bl_){ + return 0 < runtime.ml_z_compare(_bm_, _bl_) ? _bl_ : _bm_; + } + function _x_(_bk_, _bj_){ + return 0 <= runtime.ml_z_compare(_bk_, _bj_) ? _bk_ : _bj_; + } + function _y_(_bi_, _bh_){ + return runtime.ml_z_compare(_bi_, _bh_) <= 0 ? 1 : 0; + } + function _z_(_bg_, _bf_){ + return 0 <= runtime.ml_z_compare(_bg_, _bf_) ? 1 : 0; + } + function _A_(_be_, _bd_){ + return runtime.ml_z_compare(_be_, _bd_) < 0 ? 1 : 0; + } + function _B_(_bc_, _bb_){ + return 0 < runtime.ml_z_compare(_bc_, _bb_) ? 1 : 0; + } + function _C_(_ba_){return runtime.ml_z_format(cst_d, _ba_);} + function _D_(_a$_){ + return runtime.ml_z_of_substring_base + (0, _a$_, 0, caml_ml_string_length(_a$_)); + } + function _E_(_a8_, _a9_, _a__){ + return runtime.ml_z_of_substring_base(0, _a8_, _a9_, _a__); + } + function _F_(_a7_, _a6_){ + return runtime.ml_z_of_substring_base + (_a7_, _a6_, 0, caml_ml_string_length(_a6_)); + } + function _G_(_a0_, _aZ_){ var - runtime=globalThis.jsoo_runtime, - caml_div=runtime.caml_div, - caml_equal=runtime.caml_equal, - caml_int64_to_float=runtime.caml_int64_to_float, - caml_ldexp_float=runtime.caml_ldexp_float, - caml_ml_string_length=runtime.caml_ml_string_length, - caml_mul=runtime.caml_mul, - caml_register_global=runtime.caml_register_global, - caml_string_get=runtime.caml_string_get, - caml_string_notequal=runtime.caml_string_notequal, - caml_string_of_jsbytes=runtime.caml_string_of_jsbytes, - caml_wrap_exception=runtime.caml_wrap_exception; - function caml_call1(f,a0) - {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} - function caml_call2(f,a0,a1) - {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} - function caml_call3(f,a0,a1,a2) - {return f.length == 3?f(a0,a1,a2):runtime.caml_call_gen(f,[a0,a1,a2])} + _a1_ = runtime.ml_z_div_rem(_a0_, _aZ_), + _a2_ = _a1_[2], + _a3_ = _a1_[1]; + if(0 <= runtime.ml_z_sign(_a2_)) return [0, _a3_, _a2_]; + if(0 <= runtime.ml_z_sign(_aZ_)){ + var _a4_ = _c_(_a2_, _aZ_); + return [0, _j_(_a3_), _a4_]; + } + var _a5_ = _d_(_a2_, _aZ_); + return [0, _i_(_a3_), _a5_]; + } + function _H_(_aY_, _aX_){ + return 0 <= runtime.ml_z_sign(_aX_) + ? runtime.ml_z_fdiv(_aY_, _aX_) + : runtime.ml_z_cdiv(_aY_, _aX_); + } + function _I_(_aV_, _aU_){ + var _aW_ = _g_(_aV_, _aU_); + return 0 <= runtime.ml_z_sign(_aW_) ? _aW_ : _c_(_aW_, _k_(_aU_)); + } + function _J_(_aM_, _aL_){ var - global_data=runtime.caml_get_global_data(), - cst_1_12=caml_string_of_jsbytes("1.12"), - cst_Z_log2up=caml_string_of_jsbytes("Z.log2up"), - cst_Z_log2=caml_string_of_jsbytes("Z.log2"), - cst_Z_signed_extract_negative_= - caml_string_of_jsbytes("Z.signed_extract: negative bit offset"), - cst_Z_signed_extract_nonpositi= - caml_string_of_jsbytes("Z.signed_extract: nonpositive bit length"), - cst_Z_testbit=caml_string_of_jsbytes("Z.testbit"), - cst_Z_Overflow=caml_string_of_jsbytes("Z.Overflow"), - cst_ml_z_overflow=caml_string_of_jsbytes("ml_z_overflow"), - cst_d=caml_string_of_jsbytes("%d"), - cst$0=caml_string_of_jsbytes(""), - cst_inf$1=caml_string_of_jsbytes("+inf"), - cst_inf$2=caml_string_of_jsbytes("-inf"), - cst_inf$3=caml_string_of_jsbytes("inf"), - cst_undef$0=caml_string_of_jsbytes("undef"), - cst_Q_of_string_invalid_digit= - caml_string_of_jsbytes("Q.of_string: invalid digit"), - cst_impossible_case$0=caml_string_of_jsbytes("impossible case"), - cst_impossible_case=caml_string_of_jsbytes("impossible case"), - cst_0=caml_string_of_jsbytes("0"), - cst_inf=caml_string_of_jsbytes("+inf"), - cst_inf$0=caml_string_of_jsbytes("-inf"), - cst_undef=caml_string_of_jsbytes("undef"), - cst=caml_string_of_jsbytes("/"), - cst_int64_of_big_int=caml_string_of_jsbytes("int64_of_big_int"), - cst_nativeint_of_big_int=caml_string_of_jsbytes("nativeint_of_big_int"), - cst_int32_of_big_int=caml_string_of_jsbytes("int32_of_big_int"), - cst_int_of_big_int=caml_string_of_jsbytes("int_of_big_int"), - cst_power_big_int_positive_big= - caml_string_of_jsbytes("power_big_int_positive_big_int"), - cst_power_int_positive_big_int= - caml_string_of_jsbytes("power_int_positive_big_int"), - cst_power_big_int_positive_int= - caml_string_of_jsbytes("power_big_int_positive_int"), - cst_power_int_positive_int= - caml_string_of_jsbytes("power_int_positive_int"), - Stdlib_Format=global_data.Stdlib__Format, - Stdlib_Buffer=global_data.Stdlib__Buffer, - Stdlib=global_data.Stdlib, - Stdlib_Sys=global_data.Stdlib__Sys, - Stdlib_Callback=global_data.Stdlib__Callback, - Stdlib_String=global_data.Stdlib__String, - Assert_failure=global_data.Assert_failure, - Zarith_version=[0,cst_1_12]; - caml_register_global(33,Zarith_version,"Zarith_version"); - var _a_=[248,cst_Z_Overflow,runtime.caml_fresh_oo_id(0)]; - runtime.ml_z_init(0); - caml_call2(Stdlib_Callback[2],cst_ml_z_overflow,_a_); + _aN_ = runtime.ml_z_sign(_aM_), + _aO_ = runtime.ml_z_sign(_aL_), + _aP_ = _aN_ + 1 | 0; + if(2 >= _aP_ >>> 0) + switch(_aP_){ + case 0: + if(0 === _aO_) return [0, _b_(_aM_), _v_, _t_]; break; + case 1: + var _aT_ = _aO_ + 1 | 0; + if(2 >= _aT_ >>> 0) + switch(_aT_){ + case 0: + return [0, _b_(_aL_), _t_, _v_]; + case 1: + return [0, _t_, _t_, _t_]; + default: return [0, _aL_, _t_, _u_]; + } + break; + default: if(0 === _aO_) return [0, _aM_, _u_, _t_]; + } var - _S_=runtime.caml_int64_create_lo_mi_hi(1,0,0), - _aV_=[0,caml_string_of_jsbytes("q.ml"),486,25]; - function _b_(_gZ_) - {if(typeof _gZ_ === "number" && _gZ_ !== Stdlib[20])return - _gZ_ | 0; - return runtime.ml_z_neg(_gZ_)} - function _c_(_gX_,_gW_) - {if(typeof _gX_ === "number" && typeof _gW_ === "number") - {var _gY_=_gX_ + _gW_ | 0; - return 0 <= ((_gY_ ^ _gX_) & (_gY_ ^ _gW_)) - ?_gY_ - :runtime.ml_z_add(_gX_,_gW_)} - return runtime.ml_z_add(_gX_,_gW_)} - function _d_(_gU_,_gT_) - {if(typeof _gU_ === "number" && typeof _gT_ === "number") - {var _gV_=_gU_ - _gT_ | 0; - return 0 <= ((_gU_ ^ _gT_) & (_gV_ ^ _gU_)) - ?_gV_ - :runtime.ml_z_sub(_gU_,_gT_)} - return runtime.ml_z_sub(_gU_,_gT_)} - function _e_(_gS_,_gR_) - {if - (typeof _gS_ - === - "number" - && - typeof _gR_ - === - "number" - && - ! - runtime.ml_z_mul_overflows(_gS_,_gR_)) - return caml_mul(_gS_,_gR_); - return runtime.ml_z_mul(_gS_,_gR_)} - function _f_(_gQ_,_gP_) - {return typeof _gP_ === "number" - ?-1 === _gP_ - ?_b_(_gQ_) - :typeof _gQ_ === "number" - ?caml_div(_gQ_,_gP_) - :runtime.ml_z_div(_gQ_,_gP_) - :runtime.ml_z_div(_gQ_,_gP_)} - function _g_(_gO_,_gN_) - {return typeof _gN_ === "number" - ?-1 === _gN_ - ?0 - :typeof _gO_ === "number" - ?runtime.caml_mod(_gO_,_gN_) - :runtime.ml_z_rem(_gO_,_gN_) - :runtime.ml_z_rem(_gO_,_gN_)} - function _h_(_gM_,_gL_) - {return typeof _gL_ === "number" - ?-1 === _gL_ - ?_b_(_gM_) - :typeof _gM_ === "number" - ?caml_div(_gM_,_gL_) - :runtime.ml_z_divexact(_gM_,_gL_) - :runtime.ml_z_divexact(_gM_,_gL_)} - function _i_(_gK_) - {if(typeof _gK_ === "number" && _gK_ !== Stdlib[19])return _gK_ + 1 | 0; - return runtime.ml_z_succ(_gK_)} - function _j_(_gJ_) - {if(typeof _gJ_ === "number" && _gJ_ !== Stdlib[20])return _gJ_ - 1 | 0; - return runtime.ml_z_pred(_gJ_)} - function _k_(_gI_) - {return typeof _gI_ === "number" - ?0 <= _gI_ - ?_gI_ - :_gI_ !== Stdlib[20]?- _gI_ | 0:runtime.ml_z_abs(_gI_) - :runtime.ml_z_abs(_gI_)} - function _l_(_gH_,_gG_) - {if(typeof _gH_ === "number" && typeof _gG_ === "number") - return _gH_ & _gG_; - return runtime.ml_z_logand(_gH_,_gG_)} - function _m_(_gF_,_gE_) - {if(typeof _gF_ === "number" && typeof _gE_ === "number") - return _gF_ | _gE_; - return runtime.ml_z_logor(_gF_,_gE_)} - function _n_(_gD_,_gC_) - {if(typeof _gD_ === "number" && typeof _gC_ === "number") - return _gD_ ^ _gC_; - return runtime.ml_z_logxor(_gD_,_gC_)} - function _o_(_gB_) - {return typeof _gB_ === "number"?_gB_ ^ -1:runtime.ml_z_lognot(_gB_)} - function _p_(_gz_,_gy_) - {if(typeof _gz_ === "number" && 0 <= _gy_ && _gy_ < Stdlib_Sys[9]) - {var _gA_=_gz_ << _gy_; - return _gA_ >> _gy_ === _gz_?_gA_:runtime.ml_z_shift_left(_gz_,_gy_)} - return runtime.ml_z_shift_left(_gz_,_gy_)} - function _q_(_gw_,_gv_) - {if(typeof _gw_ === "number" && 0 <= _gv_) - {var _gx_=_gv_ < Stdlib_Sys[9]?_gv_:Stdlib_Sys[9] - 1 | 0; - return _gw_ >> _gx_} - return runtime.ml_z_shift_right(_gw_,_gv_)} - function _r_(_gu_,_gt_) - {if(typeof _gu_ === "number" && 0 <= _gt_) - return Stdlib_Sys[9] <= _gt_ - ?0 - :0 <= _gu_?_gu_ >>> _gt_ | 0:- ((- _gu_ | 0) >>> _gt_ | 0) | 0; - return runtime.ml_z_shift_right_trunc(_gu_,_gt_)} - function _s_(_gs_) - {return typeof _gs_ === "number"?_gs_:runtime.ml_z_to_int(_gs_)} - var _t_=0,_u_=1,_v_=-1; - function _w_(_gr_,_gq_) - {return 0 < runtime.ml_z_compare(_gr_,_gq_)?_gq_:_gr_} - function _x_(_gp_,_go_) - {return 0 <= runtime.ml_z_compare(_gp_,_go_)?_gp_:_go_} - function _y_(_gn_,_gm_){return runtime.ml_z_compare(_gn_,_gm_) <= 0?1:0} - function _z_(_gl_,_gk_){return 0 <= runtime.ml_z_compare(_gl_,_gk_)?1:0} - function _A_(_gj_,_gi_){return runtime.ml_z_compare(_gj_,_gi_) < 0?1:0} - function _B_(_gh_,_gg_){return 0 < runtime.ml_z_compare(_gh_,_gg_)?1:0} - function _C_(_gf_){return runtime.ml_z_format(cst_d,_gf_)} - function _D_(_ge_) - {return runtime.ml_z_of_substring_base - (0,_ge_,0,caml_ml_string_length(_ge_))} - function _E_(_gb_,_gc_,_gd_) - {return runtime.ml_z_of_substring_base(0,_gb_,_gc_,_gd_)} - function _F_(_ga_,_f$_) - {return runtime.ml_z_of_substring_base - (_ga_,_f$_,0,caml_ml_string_length(_f$_))} - function _G_(_f5_,_f4_) - {var _f6_=runtime.ml_z_div_rem(_f5_,_f4_),_f7_=_f6_[2],_f8_=_f6_[1]; - if(0 <= runtime.ml_z_sign(_f7_))return [0,_f8_,_f7_]; - if(0 <= runtime.ml_z_sign(_f4_)) - {var _f9_=_c_(_f7_,_f4_);return [0,_j_(_f8_),_f9_]} - var _f__=_d_(_f7_,_f4_); - return [0,_i_(_f8_),_f__]} - function _H_(_f3_,_f2_) - {return 0 <= runtime.ml_z_sign(_f2_) - ?runtime.ml_z_fdiv(_f3_,_f2_) - :runtime.ml_z_cdiv(_f3_,_f2_)} - function _I_(_f0_,_fZ_) - {var _f1_=_g_(_f0_,_fZ_); - return 0 <= runtime.ml_z_sign(_f1_)?_f1_:_c_(_f1_,_k_(_fZ_))} - function _J_(_fR_,_fQ_) - {var - _fS_=runtime.ml_z_sign(_fR_), - _fT_=runtime.ml_z_sign(_fQ_), - _fU_=_fS_ + 1 | 0; - if(! (2 < _fU_ >>> 0)) - switch(_fU_) - {case 0:if(0 === _fT_)return [0,_b_(_fR_),_v_,_t_];break; - case 1: - var _fY_=_fT_ + 1 | 0; - if(! (2 < _fY_ >>> 0)) - switch(_fY_) - {case 0:return [0,_b_(_fQ_),_t_,_v_]; - case 1:return [0,_t_,_t_,_t_]; - default:return [0,_fQ_,_t_,_u_]} - break; - default:if(0 === _fT_)return [0,_fR_,_u_,_t_]} - var - _fV_=runtime.ml_z_gcdext_intern(_fR_,_fQ_), - _fW_=_fV_[2], - _fX_=_fV_[1]; - return _fV_[3] - ?[0,_fX_,_fW_,_f_(_d_(_fX_,_e_(_fR_,_fW_)),_fQ_)] - :[0,_fX_,_f_(_d_(_fX_,_e_(_fQ_,_fW_)),_fR_),_fW_]} - function _K_(_fP_,_fO_) - {if(! caml_equal(_fP_,_t_) && ! caml_equal(_fO_,_t_)) - return _k_(_e_(_h_(_fP_,runtime.ml_z_gcd(_fP_,_fO_)),_fO_)); - return _t_} - function _L_(_fN_,_fM_) - {return 0 <= _fM_ - ?runtime.ml_z_testbit(_fN_,_fM_) - :caml_call1(Stdlib[1],cst_Z_testbit)} - function _M_(_fL_){return runtime.ml_z_testbit(_fL_,0)} - function _N_(_fK_){return 1 - runtime.ml_z_testbit(_fK_,0)} - function _O_(_fJ_,_fI_,_fH_) - {if(_fI_ < 0)caml_call1(Stdlib[1],cst_Z_signed_extract_negative_); - if(_fH_ < 1)caml_call1(Stdlib[1],cst_Z_signed_extract_nonpositi); - return _L_(_fJ_,(_fI_ + _fH_ | 0) - 1 | 0) - ?_o_(runtime.ml_z_extract(_o_(_fJ_),_fI_,_fH_)) - :runtime.ml_z_extract(_fJ_,_fI_,_fH_)} - function _P_(_fG_) - {return 0 < runtime.ml_z_sign(_fG_) - ?runtime.ml_z_numbits(_fG_) - 1 | 0 - :caml_call1(Stdlib[1],cst_Z_log2)} - function _Q_(_fF_) - {return 0 < runtime.ml_z_sign(_fF_) - ?runtime.ml_z_numbits(_j_(_fF_)) - :caml_call1(Stdlib[1],cst_Z_log2up)} - function _R_(_fC_,_fB_) - {var - _fD_=runtime.ml_z_to_int64(_fC_), - _fE_=_fB_?_fD_:runtime.caml_int64_or(_fD_,_S_); - return caml_int64_to_float(_fE_)} - function _T_(_fx_) - {if(typeof _fx_ === "number")return _fx_; - var _fy_=runtime.ml_z_numbits(_fx_); - if(63 < _fy_) - {var _fz_=_fy_ - 55 | 0,_fA_=_q_(_fx_,_fz_); - return caml_ldexp_float - (_R_(_fA_,runtime.ml_z_equal(_fx_,_p_(_fA_,_fz_))),_fz_)} - return caml_int64_to_float(runtime.ml_z_to_int64(_fx_))} - function _U_(_fv_){var _fw_=_C_(_fv_);return caml_call1(Stdlib[42],_fw_)} - function _V_(_ft_,_fs_) - {var _fu_=_C_(_fs_);return caml_call2(Stdlib[66],_ft_,_fu_)} - function _W_(_fr_,_fq_){return _C_(_fq_)} - function _X_(_fo_,_fn_) - {var _fp_=_C_(_fn_);return caml_call2(Stdlib_Buffer[16],_fo_,_fp_)} - function _Y_(_fl_,_fk_) - {var _fm_=_C_(_fk_);return caml_call2(Stdlib_Format[13],_fl_,_fm_)} - function _Z_(_fj_){return _fj_} - function ___(_fi_,_fh_){return runtime.ml_z_equal(_fi_,_fh_)} + _aQ_ = runtime.ml_z_gcdext_intern(_aM_, _aL_), + _aR_ = _aQ_[2], + _aS_ = _aQ_[1]; + return _aQ_[3] + ? [0, _aS_, _aR_, _f_(_d_(_aS_, _e_(_aM_, _aR_)), _aL_)] + : [0, _aS_, _f_(_d_(_aS_, _e_(_aL_, _aR_)), _aM_), _aR_]; + } + function _K_(_aK_, _aJ_){ + if(! caml_equal(_aK_, _t_) && ! caml_equal(_aJ_, _t_)) + return _k_(_e_(_h_(_aK_, runtime.ml_z_gcd(_aK_, _aJ_)), _aJ_)); + return _t_; + } + function _L_(_aI_, _aH_){ + return 0 <= _aH_ + ? runtime.ml_z_testbit(_aI_, _aH_) + : caml_call1(Stdlib[1], cst_Z_testbit); + } + function _M_(_aG_){return runtime.ml_z_testbit(_aG_, 0);} + function _N_(_aF_){return 1 - runtime.ml_z_testbit(_aF_, 0);} + function _O_(_aE_, _aD_, _aC_){ + if(_aD_ < 0) caml_call1(Stdlib[1], cst_Z_signed_extract_negative_); + if(_aC_ < 1) caml_call1(Stdlib[1], cst_Z_signed_extract_nonpositi); + return _L_(_aE_, (_aD_ + _aC_ | 0) - 1 | 0) + ? _o_(runtime.ml_z_extract(_o_(_aE_), _aD_, _aC_)) + : runtime.ml_z_extract(_aE_, _aD_, _aC_); + } + function _P_(_aB_){ + return 0 < runtime.ml_z_sign(_aB_) + ? runtime.ml_z_numbits(_aB_) - 1 | 0 + : caml_call1(Stdlib[1], cst_Z_log2); + } + function _Q_(_aA_){ + return 0 < runtime.ml_z_sign(_aA_) + ? runtime.ml_z_numbits(_j_(_aA_)) + : caml_call1(Stdlib[1], cst_Z_log2up); + } + function _R_(_ax_, _aw_){ var - Z= + _ay_ = runtime.ml_z_to_int64(_ax_), + _az_ = _aw_ ? _ay_ : runtime.caml_int64_or(_ay_, _S_); + return caml_int64_to_float(_az_); + } + function _T_(_as_){ + if(typeof _as_ === "number") return _as_; + var _at_ = runtime.ml_z_numbits(_as_); + if(63 >= _at_) return caml_int64_to_float(runtime.ml_z_to_int64(_as_)); + var _au_ = _at_ - 55 | 0, _av_ = _q_(_as_, _au_); + return runtime.caml_ldexp_float + (_R_(_av_, runtime.ml_z_equal(_as_, _p_(_av_, _au_))), _au_); + } + function _U_(_aq_){ + var _ar_ = runtime.ml_z_format(cst_d, _aq_); + return caml_call1(Stdlib[42], _ar_); + } + function _V_(_ao_, _an_){ + var _ap_ = runtime.ml_z_format(cst_d, _an_); + return caml_call2(Stdlib[66], _ao_, _ap_); + } + function _W_(_am_, _al_){return runtime.ml_z_format(cst_d, _al_);} + function _X_(_aj_, _ai_){ + var _ak_ = runtime.ml_z_format(cst_d, _ai_); + return caml_call2(Stdlib_Buffer[16], _aj_, _ak_); + } + function _Y_(_ag_, _af_){ + var _ah_ = runtime.ml_z_format(cst_d, _af_); + return caml_call2(Stdlib_Format[13], _ag_, _ah_); + } + function _Z_(_ae_){return _ae_;} + function ___(_ad_, _ac_){return runtime.ml_z_equal(_ad_, _ac_);} + var + _$_ = + [0, + ___, + _A_, + _B_, + _y_, + _z_, + function(_ab_, _aa_){return 1 - runtime.ml_z_equal(_ab_, _aa_);}], + Z = [0, _a_, _t_, @@ -31164,11443 +29755,12318 @@ _o_, _p_, _q_, - [0, - ___, - _A_, - _B_, - _y_, - _z_, - function(_fg_,_ff_){return 1 - runtime.ml_z_equal(_fg_,_ff_)}], - cst_1_12, + _$_, + Zarith_version[1], _R_]; - caml_register_global(39,Z,"Z"); - function _$_(_fc_,_fb_) - {if(_fc_ !== 0 && _fb_ !== 1) - {var _fd_=runtime.ml_z_gcd(_fc_,_fb_); - if(_fd_ === 1)return [0,_fc_,_fb_]; - var _fe_=_h_(_fb_,_fd_); - return [0,_h_(_fc_,_fd_),_fe_]} - return [0,_fc_,_u_]} - function _aa_(_e__,_e9_) - {var _e$_=runtime.ml_z_sign(_e9_); - if(0 === _e$_)return [0,runtime.ml_z_sign(_e__),_t_]; - if(0 < _e$_)return _$_(_e__,_e9_); - var _fa_=_b_(_e9_); - return _$_(_b_(_e__),_fa_)} - function _ab_(_e8_){return [0,_e8_,_u_]} - function _ac_(_e7_){return _ab_(_e7_)} - function _ad_(_e6_){return _ab_(runtime.ml_z_of_int32(_e6_))} - function _ae_(_e5_){return _ab_(runtime.ml_z_of_int64(_e5_))} - function _af_(_e4_){return _ab_(runtime.ml_z_of_nativeint(_e4_))} - function _ag_(_e3_,_e2_){return _aa_(_e3_,_e2_)} + runtime.caml_register_global(15, Z, "Z"); + return; + } + (globalThis)); + +//# 410 "../../.js/default/zarith/zarith.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_inf$1 = "+inf", + cst_inf$2 = "-inf", + cst_impossible_case$1 = "impossible case", + cst_undef$0 = "undef", + caml_equal = runtime.caml_equal, + caml_int64_to_float = runtime.caml_int64_to_float, + caml_ldexp_float = runtime.caml_ldexp_float, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_ml_string_length = runtime.caml_ml_string_length, + caml_mul = runtime.caml_mul, + caml_string_get = runtime.caml_string_get, + caml_string_notequal = runtime.caml_string_notequal, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + var + global_data = runtime.caml_get_global_data(), + cst = "/", + Stdlib_Format = global_data.Stdlib__Format, + Stdlib_Buffer = global_data.Stdlib__Buffer, + Stdlib = global_data.Stdlib, + Stdlib_String = global_data.Stdlib__String, + Z = global_data.Z, + Assert_failure = global_data.Assert_failure, + _W_ = [0, "q.ml", 486, 25], + cst_Q_of_string_invalid_digit = "Q.of_string: invalid digit", + cst_impossible_case$0 = cst_impossible_case$1, + cst_impossible_case = cst_impossible_case$1, + cst_0 = "0", + cst_inf = cst_inf$1, + cst_inf$0 = cst_inf$2, + cst_undef = cst_undef$0; + function _a_(_dg_, _df_){ + if(_dg_ !== Z[2] && _df_ !== Z[3]){ + var _dh_ = runtime.ml_z_gcd(_dg_, _df_); + if(_dh_ === Z[3]) return [0, _dg_, _df_]; + var _di_ = caml_call2(Z[20], _df_, _dh_); + return [0, caml_call2(Z[20], _dg_, _dh_), _di_]; + } + return [0, _dg_, Z[3]]; + } + function _b_(_db_, _da_){ + var _dc_ = runtime.ml_z_sign(_da_); + if(0 === _dc_){ + var _dd_ = Z[2]; + return [0, runtime.ml_z_sign(_db_), _dd_]; + } + if(0 < _dc_) return _a_(_db_, _da_); + var _de_ = caml_call1(Z[11], _da_); + return _a_(caml_call1(Z[11], _db_), _de_); + } + function _c_(_c$_){return [0, _c$_, Z[3]];} + function _d_(_c__){return _c_(_c__);} + function _e_(_c9_){return _c_(runtime.ml_z_of_int32(_c9_));} + function _f_(_c8_){return _c_(runtime.ml_z_of_int64(_c8_));} + function _g_(_c7_){return _c_(runtime.ml_z_of_nativeint(_c7_));} + function _h_(_c6_, _c5_){return _b_(_c6_, _c5_);} + var + _i_ = _c_(Z[2]), + _j_ = _c_(Z[3]), + _k_ = _c_(Z[4]), + _l_ = [0, Z[3], Z[2]], + _m_ = [0, Z[4], Z[2]], + _n_ = [0, Z[2], Z[2]]; + function _o_(_c1_){ + if(_c1_ == Stdlib[22]) return _l_; + if(_c1_ == Stdlib[23]) return _m_; + if(4 === runtime.caml_classify_float(_c1_)) return _n_; var - _ah_=_ab_(_t_), - _ai_=_ab_(_u_), - _ak_=[0,_u_,_t_], - _al_=[0,_v_,_t_], - _am_=[0,_t_,_t_], - _aj_=_ab_(_v_); - function _an_(_eY_) - {if(_eY_ == Stdlib[22])return _ak_; - if(_eY_ == Stdlib[23])return _al_; - if(4 === runtime.caml_classify_float(_eY_))return _am_; - var - _eZ_=runtime.caml_frexp_float(_eY_), - _e0_=_eZ_[2] - 53 | 0, - _e1_=runtime.ml_z_of_float(caml_ldexp_float(_eZ_[1],53)); - return 0 <= _e0_?_ab_(_p_(_e1_,_e0_)):_$_(_e1_,_p_(_u_,- _e0_ | 0))} - function _ao_(_eW_) - {if(_eW_[2] === 0) - {var _eX_=runtime.ml_z_sign(_eW_[1]) + 1 | 0; - if(! (2 < _eX_ >>> 0)) - switch(_eX_){case 0:return 2;case 1:break;default:return 1} - return 3} - return _eW_[1] === 0?0:4} - function _ap_(_eV_){return _eV_[2] !== 0?1:0} - function _aq_(_eU_){return _eU_[1]} - function _ar_(_eT_){return _eT_[2]} - function _as_(_eS_){return runtime.ml_z_sign(_eS_[1])} - function _at_(_eO_,_eN_) - {var _eP_=runtime.ml_z_equal(_eO_[1],_eN_[1]); - if(_eP_) + _c2_ = runtime.caml_frexp_float(_c1_), + _c3_ = _c2_[2] - 53 | 0, + _c4_ = runtime.ml_z_of_float(caml_ldexp_float(_c2_[1], 53)); + return 0 <= _c3_ + ? _c_(caml_call2(Z[25], _c4_, _c3_)) + : _a_(_c4_, caml_call2(Z[25], Z[3], - _c3_ | 0)); + } + function _p_(_cZ_){ + if(_cZ_[2] !== Z[2]) return _cZ_[1] === Z[2] ? 0 : 4; + var _c0_ = runtime.ml_z_sign(_cZ_[1]) + 1 | 0; + if(2 >= _c0_ >>> 0) + switch(_c0_){case 0: return 2;case 1: break;default: return 1;} + return 3; + } + function _q_(_cY_){return _cY_[2] !== Z[2] ? 1 : 0;} + function _r_(_cX_){return _cX_[1];} + function _s_(_cW_){return _cW_[2];} + function _t_(_cV_){return runtime.ml_z_sign(_cV_[1]);} + function _u_(_cR_, _cQ_){ + var _cS_ = runtime.ml_z_equal(_cR_[1], _cQ_[1]); + if(_cS_) + var + _cT_ = runtime.ml_z_equal(_cR_[2], _cQ_[2]), + _cU_ = _cT_ ? 3 !== _p_(_cR_) ? 1 : 0 : _cT_; + else + var _cU_ = _cS_; + return _cU_; + } + function _v_(_cK_, _cJ_){ + var _cL_ = _p_(_cK_), _cM_ = _p_(_cJ_), switch$0 = 0; + switch(_cL_){ + case 1: + var _cP_ = _cM_ - 1 | 0; + if(2 >= _cP_ >>> 0) + switch(_cP_){ + case 0: + switch$0 = 2; break; + case 1: break; + default: switch$0 = 1; + } + break; + case 2: + if(1 === _cM_) + switch$0 = 1; + else if(_cM_) + switch(_cM_ - 2 | 0){ + case 1: + switch$0 = 1; break; + case 2: break; + default: switch$0 = 2; + } + break; + case 3: + if(3 !== _cM_) return -1; switch$0 = 2; break; + default: switch$0 = 1; + } + var switch$1 = 0; + switch(switch$0){ + case 1: + var _cN_ = _cM_ - 1 | 0; + if(2 >= _cN_ >>> 0) + switch(_cN_){ + case 0: + switch$1 = 1; break; + case 1: break; + default: return 1; + } + break; + case 0: break; + default: return 0; + } + if(! switch$1){ + var switch$2 = 0; + if(4 > _cL_) + switch(_cL_){ + case 0: break; + case 2: + switch$2 = 2; break; + default: switch$2 = 1; + } + switch(switch$2){ + case 0: + if(2 !== _cM_){ + if(caml_equal(_cK_[2], _cJ_[2])) + return runtime.ml_z_compare(_cK_[1], _cJ_[1]); + var _cO_ = caml_call2(Z[14], _cJ_[1], _cK_[2]); + return runtime.ml_z_compare + (caml_call2(Z[14], _cK_[1], _cJ_[2]), _cO_); + } + break; + case 2: break; + } + return 1; + } + return -1; + } + function _w_(_cI_, _cH_){return 0 < _v_(_cI_, _cH_) ? _cH_ : _cI_;} + function _x_(_cG_, _cF_){return 0 <= _v_(_cG_, _cF_) ? _cG_ : _cF_;} + function _y_(_cz_, _cy_){ + var _cA_ = _p_(_cz_), _cB_ = _p_(_cy_); + if(3 !== _cA_){ + var _cC_ = _cB_ - 1 | 0, switch$0 = 0; + if(2 >= _cC_ >>> 0) + switch(_cC_){ + case 0: + switch$0 = 1; break; + case 1: break; + default: switch$0 = 2; + } + switch(switch$0){ + case 0: + var switch$1 = 0; + if(4 > _cA_) + switch(_cA_){ + case 0: break; + case 2: + switch$1 = 2; break; + default: switch$1 = 1; + } + switch(switch$1){ + case 0: + if(2 !== _cB_){ + if(caml_equal(_cz_[2], _cy_[2])) + return caml_call2(Z[37], _cz_[1], _cy_[1]); + var + _cD_ = caml_call2(Z[14], _cy_[1], _cz_[2]), + _cE_ = caml_call2(Z[14], _cz_[1], _cy_[2]); + return caml_call2(Z[37], _cE_, _cD_); + } + break; + case 2: break; + } + return 0; + case 2: break; + } + return 1; + } + return 0; + } + function _z_(_ct_, _cs_){ + var _cu_ = _p_(_ct_), _cv_ = _p_(_cs_); + if(3 !== _cu_){ + var switch$0 = 0; + if(2 <= _cv_) + switch(_cv_ - 2 | 0){ + case 2: break; + case 1: + switch$0 = 2; break; + default: switch$0 = 1; + } + switch(switch$0){ + case 0: + var switch$1 = 0; + if(4 > _cu_) + switch(_cu_){ + case 0: break; + case 1: + switch$1 = 2; break; + default: switch$1 = 1; + } + switch(switch$1){ + case 0: + if(1 !== _cv_){ + if(caml_equal(_ct_[2], _cs_[2])) + return caml_call2(Z[39], _ct_[1], _cs_[1]); + var + _cw_ = caml_call2(Z[14], _cs_[1], _ct_[2]), + _cx_ = caml_call2(Z[14], _ct_[1], _cs_[2]); + return caml_call2(Z[39], _cx_, _cw_); + } + break; + case 2: break; + } + return 1; + case 2: break; + } + return 0; + } + return 0; + } + function _A_(_cr_, _cq_){return _y_(_cq_, _cr_);} + function _B_(_cp_, _co_){return _z_(_co_, _cp_);} + function _C_(_ck_){ + switch(_p_(_ck_)){ + case 0: + return cst_0; + case 1: + return cst_inf; + case 2: + return cst_inf$0; + case 3: + return cst_undef; + default: + if(runtime.ml_z_equal(_ck_[2], Z[3])) + return caml_call1(Z[31], _ck_[1]); var - _eQ_=runtime.ml_z_equal(_eO_[2],_eN_[2]), - _eR_=_eQ_?3 !== _ao_(_eO_)?1:0:_eQ_; - else - var _eR_=_eP_; - return _eR_} - function _au_(_eH_,_eG_) - {var _eI_=_ao_(_eH_),_eJ_=_ao_(_eG_),switch$0=0; - switch(_eI_) - {case 1: - var _eM_=_eJ_ - 1 | 0; - if(! (2 < _eM_ >>> 0)) - switch(_eM_) - {case 0:switch$0 = 2;break;case 1:break;default:switch$0 = 1} - break; - case 2: - if(1 === _eJ_) - switch$0 = 1; - else - if(_eJ_) - switch(_eJ_ - 2 | 0) - {case 1:switch$0 = 1;break;case 2:break;default:switch$0 = 2} - break; - case 3:if(3 !== _eJ_)return -1;switch$0 = 2;break; - default:switch$0 = 1} - var switch$1=0; - switch(switch$0) - {case 1: - var _eK_=_eJ_ - 1 | 0; - if(! (2 < _eK_ >>> 0)) - switch(_eK_) - {case 0:switch$1 = 1;break;case 1:break;default:return 1} - break; - case 0:break; - default:return 0} - if(! switch$1) - {var switch$2=0; - if(! (4 <= _eI_)) - switch(_eI_) - {case 0:break;case 2:switch$2 = 1;break;default:switch$2 = 2} - var switch$3=0; - switch(switch$2) - {case 0: - if(2 !== _eJ_) - {if(caml_equal(_eH_[2],_eG_[2])) - return runtime.ml_z_compare(_eH_[1],_eG_[1]); - var _eL_=_e_(_eG_[1],_eH_[2]); - return runtime.ml_z_compare(_e_(_eH_[1],_eG_[2]),_eL_)} - switch$3 = 1; - break; - case 1:break; - default:switch$3 = 1} - if(switch$3)return 1} - return -1} - function _av_(_eF_,_eE_){return 0 < _au_(_eF_,_eE_)?_eE_:_eF_} - function _aw_(_eD_,_eC_){return 0 <= _au_(_eD_,_eC_)?_eD_:_eC_} - function _ax_(_ex_,_ew_) - {var _ey_=_ao_(_ex_),_ez_=_ao_(_ew_); - if(3 !== _ey_) - {var _eA_=_ez_ - 1 | 0,switch$0=0; - if(! (2 < _eA_ >>> 0)) - switch(_eA_) - {case 0:switch$0 = 2;break;case 1:break;default:switch$0 = 1} - var switch$1=0; - switch(switch$0) - {case 0: - var switch$2=0; - if(! (4 <= _ey_)) - switch(_ey_) - {case 0:break; - case 2:switch$1 = 1;switch$2 = 2;break; - default:switch$2 = 1} - var switch$3=0; - switch(switch$2) - {case 2:switch$3 = 1;break; - case 0: - if(2 !== _ez_) - {if(caml_equal(_ex_[2],_ew_[2]))return _y_(_ex_[1],_ew_[1]); - var _eB_=_e_(_ew_[1],_ex_[2]); - return _y_(_e_(_ex_[1],_ew_[2]),_eB_)} - break - } - if(! switch$3)return 0; - break; - case 1:break; - default:switch$1 = 1} - if(switch$1)return 1} - return 0} - function _ay_(_es_,_er_) - {var _et_=_ao_(_es_),_eu_=_ao_(_er_); - if(3 !== _et_) - {var switch$0=0; - if(2 <= _eu_) - switch(_eu_ - 2 | 0) - {case 2:break;case 1:switch$0 = 1;break;default:switch$0 = 2} - var switch$1=0; - switch(switch$0) - {case 0: - var switch$2=0; - if(! (4 <= _et_)) - switch(_et_) - {case 0:break; - case 1:switch$1 = 1;switch$2 = 2;break; - default:switch$2 = 1} - var switch$3=0; - switch(switch$2) - {case 2:switch$3 = 1;break; - case 0: - if(1 !== _eu_) - {if(caml_equal(_es_[2],_er_[2]))return _A_(_es_[1],_er_[1]); - var _ev_=_e_(_er_[1],_es_[2]); - return _A_(_e_(_es_[1],_er_[2]),_ev_)} - break - } - if(! switch$3)return 1; - break; - case 1:break; - default:switch$1 = 1} - if(switch$1)return 0} - return 0} - function _az_(_eq_,_ep_){return _ax_(_ep_,_eq_)} - function _aA_(_eo_,_en_){return _ay_(_en_,_eo_)} - function _aB_(_ej_) - {switch(_ao_(_ej_)) - {case 0:return cst_0; - case 1:return cst_inf; - case 2:return cst_inf$0; - case 3:return cst_undef; - default: - if(runtime.ml_z_equal(_ej_[2],1))return _C_(_ej_[1]); - var - _ek_=_C_(_ej_[2]), - _el_=caml_call2(Stdlib[28],cst,_ek_), - _em_=_C_(_ej_[1]); - return caml_call2(Stdlib[28],_em_,_el_)}} - function _aC_(_ei_){return _f_(_ei_[1],_ei_[2])} - function _aD_(_eh_){return _s_(_aC_(_eh_))} - function _aE_(_eg_){return runtime.ml_z_to_int32(_aC_(_eg_))} - function _aF_(_ef_){return runtime.ml_z_to_int64(_aC_(_ef_))} - function _aG_(_ee_){return runtime.ml_z_to_nativeint(_aC_(_ee_))} - function _aH_(_dZ_) - {switch(_ao_(_dZ_)) - {case 0:return 0.; - case 1:return Stdlib[22]; - case 2:return Stdlib[23]; - case 3:return Stdlib[24]; - default: - var - _d0_=_dZ_[1], - _d1_=_dZ_[2], - _d2_=runtime.ml_z_numbits(_d0_), - _d3_=runtime.ml_z_numbits(_d1_); - if(! (53 < _d2_) && ! (53 < _d3_)) - {var _ed_=caml_int64_to_float(runtime.ml_z_to_int64(_d1_)); - return caml_int64_to_float(runtime.ml_z_to_int64(_d0_)) / _ed_} - var _d4_=0 <= runtime.ml_z_sign(_d0_)?1:-1,_d5_=_d2_ - _d3_ | 0; - if(0 <= _d5_) - var _d7_=_p_(_d1_,_d5_),_d6_=_d0_; - else - var _d7_=_d1_,_d6_=_p_(_d0_,- _d5_ | 0); - if(_z_(_k_(_d6_),_d7_)) - var _d9_=_d5_,_d8_=_d6_; - else - var _d9_=_d5_ - 1 | 0,_d8_=_p_(_d6_,1); - var _d__=_G_(_p_(_d8_,54),_d7_); - if(-1080 < _d9_) - {var - _d$_=-1023 < _d9_?_t_:_p_(_d4_,55 + (-1023 - _d9_ | 0) | 0), - _ea_=_c_(_d$_,_d__[1]), - _eb_=0 === runtime.ml_z_sign(_d__[2])?_ea_:_m_(_u_,_ea_), - _ec_=_T_(_eb_); - return caml_ldexp_float(_ec_ - _T_(_d$_),_d9_ - 54 | 0)} - return caml_ldexp_float(_d4_,-1080)}} - function _aI_(_dX_){var _dY_=_dX_[2];return [0,_b_(_dX_[1]),_dY_]} - function _aJ_(_dV_){var _dW_=_dV_[2];return [0,_k_(_dV_[1]),_dW_]} - function _aK_(_dR_,_dQ_,_dP_) - {if(_dQ_[2] === _dP_[2]) - {var _dS_=_dQ_[2];return _$_(caml_call2(_dR_,_dQ_[1],_dP_[1]),_dS_)} - var _dT_=_e_(_dQ_[2],_dP_[2]),_dU_=_e_(_dP_[1],_dQ_[2]); - return _$_(caml_call2(_dR_,_e_(_dQ_[1],_dP_[2]),_dU_),_dT_)} - function _aL_(_dM_,_dL_) - {if(_dM_[2] !== 0 && _dL_[2] !== 0)return _aK_(_c_,_dM_,_dL_); - var _dN_=_ao_(_dM_),_dO_=_ao_(_dL_),switch$0=0; - switch(_dN_) - {case 0:return _dL_; - case 1: - switch(_dO_) - {case 2:switch$0 = 3;break;case 0:case 3:break;default:switch$0 = 1} - break; - case 2: - switch(_dO_) - {case 2:switch$0 = 2;break; - case 1:switch$0 = 3;break; - case 4:switch$0 = 4;break - } - break; - case 4: - switch(_dO_) - {case 4:return caml_call1(Stdlib[2],cst_impossible_case); - case 0: - case 3:break; - default:switch$0 = 2} - break - } - var switch$1=0; - switch(switch$0) - {case 0:if(3 === _dO_)switch$1 = 1;else if(! _dO_)return _dM_;break; - case 1:break; - case 2:switch$1 = 2 <= _dO_?3:2;break; - case 3:return _am_; - default:switch$1 = 3} - var switch$2=0; - switch(switch$1) - {case 0:if(! (3 <= _dN_))switch$2 = 1;break; - case 1:break; - case 2:switch$2 = 1;break; - default:return _al_} - return switch$2?_ak_:_am_} - function _aM_(_dI_,_dH_) - {if(_dI_[2] !== 0 && _dH_[2] !== 0)return _aK_(_d_,_dI_,_dH_); - var _dJ_=_ao_(_dI_),_dK_=_ao_(_dH_),switch$0=0; - switch(_dJ_) - {case 0:return _aI_(_dH_); - case 1: - switch(_dK_) - {case 1:switch$0 = 3;break;case 0:case 3:break;default:switch$0 = 1} - break; - case 2: - switch(_dK_) - {case 1:switch$0 = 2;break; - case 2:switch$0 = 3;break; - case 4:switch$0 = 4;break - } - break; - case 4: - switch(_dK_) - {case 4:return caml_call1(Stdlib[2],cst_impossible_case$0); - case 0: - case 3:break; - default:switch$0 = 2} - break - } - var switch$1=0; - switch(switch$0) - {case 0:if(3 === _dK_)switch$1 = 1;else if(! _dK_)return _dI_;break; - case 1:break; - case 2:switch$1 = 2 <= _dK_?2:3;break; - case 3:return _am_; - default:switch$1 = 3} - var switch$2=0; - switch(switch$1) - {case 0:if(! (3 <= _dJ_))switch$2 = 1;break; - case 1:break; - case 2:switch$2 = 1;break; - default:return _al_} - return switch$2?_ak_:_am_} - function _aN_(_dE_,_dD_) - {if(_dE_[2] !== 0 && _dD_[2] !== 0) - {var _dG_=_e_(_dE_[2],_dD_[2]);return _$_(_e_(_dE_[1],_dD_[1]),_dG_)} - var _dF_=runtime.ml_z_sign(_dD_[1]); - return [0,caml_mul(runtime.ml_z_sign(_dE_[1]),_dF_),_t_]} - function _aO_(_dA_) - {var _dB_=runtime.ml_z_sign(_dA_[1]) + 1 | 0; - if(! (2 < _dB_ >>> 0)) - switch(_dB_) - {case 0:var _dC_=_b_(_dA_[1]);return [0,_b_(_dA_[2]),_dC_]; - case 1:break; - default:return [0,_dA_[2],_dA_[1]]} - return _dA_[2] === 0?_am_:_ak_} - function _aP_(_dy_,_dx_) - {if(0 <= runtime.ml_z_sign(_dx_[1])) - return _aN_(_dy_,[0,_dx_[2],_dx_[1]]); - var _dz_=_b_(_dx_[1]); - return _aN_(_dy_,[0,_b_(_dx_[2]),_dz_])} - function _aQ_(_dv_,_du_) - {if(_dv_[2] === 0)return _dv_; - var _dw_=_dv_[2]; - return _$_(_p_(_dv_[1],_du_),_dw_)} - function _aR_(_ds_,_dr_) - {if(_ds_[2] === 0)return _ds_; - var _dt_=_p_(_ds_[2],_dr_); - return _$_(_ds_[1],_dt_)} - function _aS_(_dq_) - {switch(_dq_) - {case 0:return 2;case 1:return 8;case 2:return 10;default:return 16}} - function _aT_(_do_,_dn_,_dm_,_dl_) - {var _dp_=_dn_; - for(;;) - {if(_dm_ <= _dp_)return 0; - if(caml_call1(_dl_,caml_string_get(_do_,_dp_)))return [0,_dp_]; - var _dp_=_dp_ + 1 | 0; - continue}} - function _aU_(_cy_) - {if(caml_string_notequal(_cy_,cst$0)) - {if(caml_string_notequal(_cy_,cst_inf$1)) - {if(! caml_string_notequal(_cy_,cst_inf$2))return _al_; - if(caml_string_notequal(_cy_,cst_inf$3)) - {if(caml_string_notequal(_cy_,cst_undef$0)) - try - {var - _dc_=caml_call2(Stdlib_String[35],_cy_,47), - _dd_= - runtime.ml_z_of_substring_base - (0, - _cy_, - _dc_ + 1 | 0, - (caml_ml_string_length(_cy_) - _dc_ | 0) - 1 | 0), - _de_=_aa_(runtime.ml_z_of_substring_base(0,_cy_,0,_dc_),_dd_); - return _de_} - catch(_df_) - {_df_ = caml_wrap_exception(_df_); - if(_df_ === Stdlib[8]) - {var _cA_=caml_ml_string_length(_cy_),_cz_=0; - if(_cA_ < 1) - var _cB_=[0,0,_cz_]; - else - {var _c$_=caml_string_get(_cy_,0) - 43 | 0,switch$0=0; - if(! (2 < _c$_ >>> 0)) - {var switch$1=0; - switch(_c$_) - {case 0:var _db_=[0,0,1];break; - case 1:switch$1 = 1;break; - default:var _db_=[0,1,1]} - if(! switch$1){var _da_=_db_;switch$0 = 1}} - if(! switch$0)var _da_=[0,0,_cz_]; - var _cB_=_da_} - var _cC_=_cB_[2]; - if(_cA_ < (_cC_ + 2 | 0)) - var _cD_=[0,2,_cC_]; - else - {var - _c8_=caml_string_get(_cy_,_cC_), - _c9_=caml_string_get(_cy_,_cC_ + 1 | 0), - switch$2=0; - if(48 === _c8_) - {var switch$3=0; - if(89 <= _c9_) - {if(98 === _c9_) - switch$3 = 2; - else - if(111 === _c9_) - switch$3 = 1; - else - if(120 !== _c9_){switch$2 = 1;switch$3 = 3}} - else - if(66 === _c9_) - switch$3 = 2; - else - if(79 === _c9_) - switch$3 = 1; - else - if(! (88 <= _c9_)){switch$2 = 1;switch$3 = 3} - switch(switch$3) - {case 3:break; - case 0:var _c__=[0,3,_cC_ + 2 | 0];break; - case 1:var _c__=[0,1,_cC_ + 2 | 0];break; - default:var _c__=[0,0,_cC_ + 2 | 0]}} - else - switch$2 = 1; - if(switch$2)var _c__=[0,2,_cC_]; - var _cD_=_c__} - var - _cE_=_cD_[2], - _cF_=_cD_[1], - _cG_= - 2 === _cF_ - ?function(_di_) - {if(69 !== _di_ && 101 !== _di_)return 0;return 1} - :3 <= _cF_ - ?function(_dj_) - {if(80 !== _dj_ && 112 !== _dj_)return 0;return 1} - :function(_dk_){return 0}, - _cH_=_aT_(_cy_,_cE_,_cA_,_cG_); - if(_cH_) - var - _cI_=_cH_[1], - _cJ_=_cI_ + 1 | 0, - _cL_=_cI_, - _cK_= - _s_ - (runtime.ml_z_of_substring_base - (10,_cy_,_cJ_,_cA_ - _cJ_ | 0)); - else - var _cL_=_cA_,_cK_=0; - if(2 <= _cF_) - {var - _cM_= - _aT_(_cy_,_cE_,_cL_,function(_dh_){return 46 === _dh_?1:0}); - if(_cM_) - {var _cN_=_cM_[1]; - if(2 === _cF_) - var _cO_=1; - else - {if(! (3 <= _cF_))throw [0,Assert_failure,_aV_];var _cO_=4} - var _cQ_=_cN_ + 1 | 0,_cR_=_cL_ - 1 | 0,_cP_=0; - if(_cR_ < _cQ_) - var _cS_=_cP_; - else - {var _c4_=_cQ_,_c3_=_cP_; - for(;;) - {var _c5_=caml_string_get(_cy_,_c4_),switch$4=0; - if(71 <= _c5_) - {if(97 <= _c5_) - {if(! (103 <= _c5_))switch$4 = 1} - else - if(95 === _c5_){var _c6_=_c3_;switch$4 = 2}} - else - if(58 <= _c5_) - {if(65 <= _c5_)switch$4 = 1} - else - if(48 <= _c5_)switch$4 = 1; - switch(switch$4) - {case 0: - caml_call1(Stdlib[1],cst_Q_of_string_invalid_digit); - var _c6_=_c3_; - break; - case 1:var _c6_=_c3_ + 1 | 0;break - } - var _c7_=_c4_ + 1 | 0; - if(_cR_ !== _c4_){var _c4_=_c7_,_c3_=_c6_;continue} - var _cS_=_c6_; - break}} - var - _cT_= - _aT_ - (_cy_, - _cN_ + 1 | 0, - _cL_, - function(_dg_){return 95 !== _dg_?1:0}), - _cU_=_cT_?_cT_[1]:_cL_, - _cV_=caml_call3(Stdlib_String[15],_cy_,_cU_,_cL_ - _cU_ | 0), - _cW_=caml_call3(Stdlib_String[15],_cy_,_cE_,_cN_ - _cE_ | 0), - _cX_=caml_call2(Stdlib[28],_cW_,_cV_), - _cZ_=caml_mul(_cS_,_cO_), - _cY_=_F_(_aS_(_cF_),_cX_)} - else - var - _cZ_=0, - _cY_= - runtime.ml_z_of_substring_base - (_aS_(_cF_),_cy_,_cE_,_cL_ - _cE_ | 0)} - else - var - _cZ_=0, - _cY_= - runtime.ml_z_of_substring_base - (_aS_(_cF_),_cy_,_cE_,_cL_ - _cE_ | 0); - var - _c0_=_cK_ - _cZ_ | 0, - _c1_=2 === _cF_?10:3 <= _cF_?2:1, - _c2_= - 0 <= _c0_ - ?_ab_(_e_(_cY_,runtime.ml_z_pow(_c1_,_c0_))) - :_aa_(_cY_,runtime.ml_z_pow(_c1_,- _c0_ | 0)); - return _cB_[1]?_aI_(_c2_):_c2_} - throw _df_} - return _am_}} - return _ak_} - return _ah_} - function _aW_(_cw_) - {var _cx_=_aB_(_cw_);return caml_call1(Stdlib[42],_cx_)} - function _aX_(_cu_,_ct_) - {var _cv_=_aB_(_ct_);return caml_call2(Stdlib[66],_cu_,_cv_)} - function _aY_(_cs_,_cr_){return _aB_(_cr_)} - function _aZ_(_cp_,_co_) - {var _cq_=_aB_(_co_);return caml_call2(Stdlib_Buffer[16],_cp_,_cq_)} - function _a0_(_cm_,_cl_) - {var _cn_=_aB_(_cl_);return caml_call2(Stdlib_Format[13],_cm_,_cn_)} - function _a1_(_ck_){return _ck_} + _cl_ = caml_call1(Z[31], _ck_[2]), + _cm_ = caml_call2(Stdlib[28], cst, _cl_), + _cn_ = caml_call1(Z[31], _ck_[1]); + return caml_call2(Stdlib[28], _cn_, _cm_); + } + } + function _D_(_cj_){return caml_call2(Z[15], _cj_[1], _cj_[2]);} + function _E_(_ch_){var _ci_ = _D_(_ch_); return caml_call1(Z[29], _ci_);} + function _F_(_cg_){return runtime.ml_z_to_int32(_D_(_cg_));} + function _G_(_cf_){return runtime.ml_z_to_int64(_D_(_cf_));} + function _H_(_ce_){return runtime.ml_z_to_nativeint(_D_(_ce_));} + function _I_(_bX_){ + switch(_p_(_bX_)){ + case 0: + return 0.; + case 1: + return Stdlib[22]; + case 2: + return Stdlib[23]; + case 3: + return Stdlib[24]; + default: + var + _bY_ = _bX_[1], + _bZ_ = _bX_[2], + _b0_ = runtime.ml_z_numbits(_bY_), + _b1_ = runtime.ml_z_numbits(_bZ_); + if(53 >= _b0_ && 53 >= _b1_){ + var _cd_ = caml_int64_to_float(runtime.ml_z_to_int64(_bZ_)); + return caml_int64_to_float(runtime.ml_z_to_int64(_bY_)) / _cd_; + } + var + _b2_ = 0 <= runtime.ml_z_sign(_bY_) ? 1 : -1, + _b3_ = _b0_ - _b1_ | 0; + if(0 <= _b3_) + var _b5_ = caml_call2(Z[25], _bZ_, _b3_), _b4_ = _bY_; + else + var _b5_ = _bZ_, _b4_ = caml_call2(Z[25], _bY_, - _b3_ | 0); + var _b6_ = caml_call1(Z[10], _b4_); + if(caml_call2(Z[38], _b6_, _b5_)) + var _b8_ = _b3_, _b7_ = _b4_; + else + var _b8_ = _b3_ - 1 | 0, _b7_ = caml_call2(Z[25], _b4_, 1); + var + _b9_ = caml_call2(Z[25], _b7_, 54), + _b__ = caml_call2(Z[17], _b9_, _b5_); + if(-1080 >= _b8_) return caml_ldexp_float(_b2_, -1080); + var + _b$_ = + -1023 < _b8_ + ? Z[2] + : caml_call2(Z[25], _b2_, 55 + (-1023 - _b8_ | 0) | 0), + _ca_ = caml_call2(Z[12], _b$_, _b__[1]), + _cb_ = + 0 === runtime.ml_z_sign(_b__[2]) + ? _ca_ + : caml_call2(Z[22], Z[3], _ca_), + _cc_ = caml_call1(Z[30], _cb_); + return caml_ldexp_float(_cc_ - caml_call1(Z[30], _b$_), _b8_ - 54 | 0); + } + } + function _J_(_bV_){ + var _bW_ = _bV_[2]; + return [0, caml_call1(Z[11], _bV_[1]), _bW_]; + } + function _K_(_bT_){ + var _bU_ = _bT_[2]; + return [0, caml_call1(Z[10], _bT_[1]), _bU_]; + } + function _L_(_bP_, _bO_, _bN_){ + if(_bO_[2] === _bN_[2]){ + var _bQ_ = _bO_[2]; + return _a_(caml_call2(_bP_, _bO_[1], _bN_[1]), _bQ_); + } var - Q= + _bR_ = caml_call2(Z[14], _bO_[2], _bN_[2]), + _bS_ = caml_call2(Z[14], _bN_[1], _bO_[2]); + return _a_ + (caml_call2(_bP_, caml_call2(Z[14], _bO_[1], _bN_[2]), _bS_), + _bR_); + } + function _M_(_bK_, _bJ_){ + if(_bK_[2] !== Z[2] && _bJ_[2] !== Z[2]) return _L_(Z[12], _bK_, _bJ_); + var _bL_ = _p_(_bK_), _bM_ = _p_(_bJ_), switch$0 = 0; + switch(_bL_){ + case 0: + return _bJ_; + case 1: + switch(_bM_){ + case 2: + switch$0 = 3; break; + case 0: + case 3: break; + default: switch$0 = 1; + } + break; + case 2: + switch(_bM_){ + case 2: + switch$0 = 2; break; + case 1: + switch$0 = 3; break; + case 4: + switch$0 = 4; break; + } + break; + case 4: + switch(_bM_){ + case 4: + return caml_call1(Stdlib[2], cst_impossible_case); + case 0: + case 3: break; + default: switch$0 = 2; + } + break; + } + var switch$1 = 0; + switch(switch$0){ + case 0: + if(3 !== _bM_){if(! _bM_) return _bK_; switch$1 = 2;} break; + case 1: + switch$1 = 2; break; + case 2: + switch$1 = 2 <= _bM_ ? 3 : 1; break; + case 3: + return _n_; + default: switch$1 = 3; + } + var switch$2 = 0; + switch(switch$1){ + case 2: + if(3 > _bL_) switch$2 = 1; break; + case 0: break; + case 1: + switch$2 = 1; break; + default: return _m_; + } + return switch$2 ? _l_ : _n_; + } + function _N_(_bG_, _bF_){ + if(_bG_[2] !== Z[2] && _bF_[2] !== Z[2]) return _L_(Z[13], _bG_, _bF_); + var _bH_ = _p_(_bG_), _bI_ = _p_(_bF_), switch$0 = 0; + switch(_bH_){ + case 0: + return _J_(_bF_); + case 1: + switch(_bI_){ + case 1: + switch$0 = 3; break; + case 0: + case 3: break; + default: switch$0 = 1; + } + break; + case 2: + switch(_bI_){ + case 1: + switch$0 = 2; break; + case 2: + switch$0 = 3; break; + case 4: + switch$0 = 4; break; + } + break; + case 4: + switch(_bI_){ + case 4: + return caml_call1(Stdlib[2], cst_impossible_case$0); + case 0: + case 3: break; + default: switch$0 = 2; + } + break; + } + var switch$1 = 0; + switch(switch$0){ + case 0: + if(3 !== _bI_){if(! _bI_) return _bG_; switch$1 = 2;} break; + case 1: + switch$1 = 2; break; + case 2: + switch$1 = 2 <= _bI_ ? 1 : 3; break; + case 3: + return _n_; + default: switch$1 = 3; + } + var switch$2 = 0; + switch(switch$1){ + case 2: + if(3 > _bH_) switch$2 = 1; break; + case 0: break; + case 1: + switch$2 = 1; break; + default: return _m_; + } + return switch$2 ? _l_ : _n_; + } + function _O_(_bB_, _bA_){ + if(_bB_[2] !== Z[2] && _bA_[2] !== Z[2]){ + var _bE_ = caml_call2(Z[14], _bB_[2], _bA_[2]); + return _a_(caml_call2(Z[14], _bB_[1], _bA_[1]), _bE_); + } + var _bC_ = Z[2], _bD_ = runtime.ml_z_sign(_bA_[1]); + return [0, caml_mul(runtime.ml_z_sign(_bB_[1]), _bD_), _bC_]; + } + function _P_(_bx_){ + var _by_ = runtime.ml_z_sign(_bx_[1]) + 1 | 0; + if(2 >= _by_ >>> 0) + switch(_by_){ + case 0: + var _bz_ = caml_call1(Z[11], _bx_[1]); + return [0, caml_call1(Z[11], _bx_[2]), _bz_]; + case 1: break; + default: return [0, _bx_[2], _bx_[1]]; + } + return _bx_[2] === Z[2] ? _n_ : _l_; + } + function _Q_(_bv_, _bu_){ + if(0 <= runtime.ml_z_sign(_bu_[1])) + return _O_(_bv_, [0, _bu_[2], _bu_[1]]); + var _bw_ = caml_call1(Z[11], _bu_[1]); + return _O_(_bv_, [0, caml_call1(Z[11], _bu_[2]), _bw_]); + } + function _R_(_bs_, _br_){ + if(_bs_[2] === Z[2]) return _bs_; + var _bt_ = _bs_[2]; + return _a_(caml_call2(Z[25], _bs_[1], _br_), _bt_); + } + function _S_(_bp_, _bo_){ + if(_bp_[2] === Z[2]) return _bp_; + var _bq_ = caml_call2(Z[25], _bp_[2], _bo_); + return _a_(_bp_[1], _bq_); + } + function _T_(_bn_){ + switch(_bn_){ + case 0: + return 2; + case 1: + return 8; + case 2: + return 10; + default: return 16; + } + } + function _U_(_bl_, _bk_, _bj_, _bi_){ + var _bm_ = _bk_; + for(;;){ + if(_bj_ <= _bm_) return 0; + if(caml_call1(_bi_, caml_string_get(_bl_, _bm_))) return [0, _bm_]; + var _bm_ = _bm_ + 1 | 0; + } + } + function _V_(_ar_){ + if(! caml_string_notequal(_ar_, "")) return _i_; + if(caml_string_notequal(_ar_, cst_inf$1)){ + if(! caml_string_notequal(_ar_, cst_inf$2)) return _m_; + if(caml_string_notequal(_ar_, "inf")){ + if(! caml_string_notequal(_ar_, cst_undef$0)) return _n_; + try{ + var + _a$_ = caml_call2(Stdlib_String[35], _ar_, 47), + _ba_ = + caml_call3 + (Z[6], + _ar_, + _a$_ + 1 | 0, + (caml_ml_string_length(_ar_) - _a$_ | 0) - 1 | 0), + _bb_ = _b_(caml_call3(Z[6], _ar_, 0, _a$_), _ba_); + return _bb_; + } + catch(_bc_){ + var _as_ = caml_wrap_exception(_bc_); + if(_as_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_as_, 0); + var _au_ = caml_ml_string_length(_ar_), _at_ = 0; + if(_au_ < 1) + var _av_ = [0, 0, _at_]; + else{ + var _a8_ = caml_string_get(_ar_, 0) - 43 | 0, switch$0 = 0; + if(2 >= _a8_ >>> 0){ + var switch$1 = 0; + switch(_a8_){ + case 0: + var _a__ = [0, 0, 1]; switch$1 = 1; break; + case 1: break; + default: var _a__ = [0, 1, 1]; switch$1 = 1; + } + if(switch$1){var _a9_ = _a__; switch$0 = 1;} + } + if(! switch$0) var _a9_ = [0, 0, _at_]; + var _av_ = _a9_; + } + var _aw_ = _av_[2]; + if(_au_ < (_aw_ + 2 | 0)) + var _ax_ = [0, 2, _aw_]; + else{ + var + _a5_ = caml_string_get(_ar_, _aw_), + _a6_ = caml_string_get(_ar_, _aw_ + 1 | 0), + switch$2 = 0; + if(48 === _a5_){ + var switch$3 = 0; + if(89 <= _a6_) + if(98 === _a6_) + switch$3 = 3; + else if(111 === _a6_) + switch$3 = 2; + else if(120 === _a6_) switch$3 = 1; else switch$2 = 1; + else if(66 === _a6_) + switch$3 = 3; + else if(79 === _a6_) + switch$3 = 2; + else if(88 <= _a6_) switch$3 = 1; else switch$2 = 1; + switch(switch$3){ + case 0: break; + case 1: + var _a7_ = [0, 3, _aw_ + 2 | 0]; break; + case 2: + var _a7_ = [0, 1, _aw_ + 2 | 0]; break; + default: var _a7_ = [0, 0, _aw_ + 2 | 0]; + } + } + else + switch$2 = 1; + if(switch$2) var _a7_ = [0, 2, _aw_]; + var _ax_ = _a7_; + } + var + _ay_ = _ax_[2], + _az_ = _ax_[1], + _aA_ = + 2 === _az_ + ? function + (_bf_){ + if(69 !== _bf_ && 101 !== _bf_) return 0; + return 1; + } + : 3 + <= _az_ + ? function + (_bg_){ + if(80 !== _bg_ && 112 !== _bg_) return 0; + return 1; + } + : function(_bh_){return 0;}, + _aB_ = _U_(_ar_, _ay_, _au_, _aA_); + if(_aB_) + var + _aC_ = _aB_[1], + _aD_ = _aC_ + 1 | 0, + _aE_ = + runtime.ml_z_of_substring_base(10, _ar_, _aD_, _au_ - _aD_ | 0), + _aG_ = _aC_, + _aF_ = caml_call1(Z[29], _aE_); + else + var _aG_ = _au_, _aF_ = 0; + if(2 <= _az_){ + var + _aH_ = + _U_(_ar_, _ay_, _aG_, function(_be_){return 46 === _be_ ? 1 : 0;}); + if(_aH_){ + var _aI_ = _aH_[1]; + if(2 === _az_) + var _aJ_ = 1; + else{ + if(3 > _az_) + throw caml_maybe_attach_backtrace([0, Assert_failure, _W_], 1); + var _aJ_ = 4; + } + var _aL_ = _aI_ + 1 | 0, _aM_ = _aG_ - 1 | 0, _aK_ = 0; + if(_aM_ < _aL_) + var _aN_ = _aK_; + else{ + var _a1_ = _aL_, _a0_ = _aK_; + for(;;){ + var _a2_ = caml_string_get(_ar_, _a1_), switch$4 = 0; + if(71 <= _a2_){ + if(97 <= _a2_){ + if(103 > _a2_) switch$4 = 1; + } + else if(95 === _a2_){var _a3_ = _a0_; switch$4 = 2;} + } + else + if(58 <= _a2_){ + if(65 <= _a2_) switch$4 = 1; + } + else if(48 <= _a2_) switch$4 = 1; + switch(switch$4){ + case 0: + caml_call1(Stdlib[1], cst_Q_of_string_invalid_digit); + var _a3_ = _a0_; + break; + case 1: + var _a3_ = _a0_ + 1 | 0; break; + } + var _a4_ = _a1_ + 1 | 0; + if(_aM_ !== _a1_){var _a1_ = _a4_, _a0_ = _a3_; continue;} + var _aN_ = _a3_; + break; + } + } + var + _aO_ = + _U_ + (_ar_, + _aI_ + 1 | 0, + _aG_, + function(_bd_){return 95 !== _bd_ ? 1 : 0;}), + _aP_ = _aO_ ? _aO_[1] : _aG_, + _aQ_ = caml_call3(Stdlib_String[15], _ar_, _aP_, _aG_ - _aP_ | 0), + _aR_ = caml_call3(Stdlib_String[15], _ar_, _ay_, _aI_ - _ay_ | 0), + _aS_ = caml_call2(Stdlib[28], _aR_, _aQ_), + _aT_ = _T_(_az_), + _aV_ = caml_mul(_aN_, _aJ_), + _aU_ = caml_call2(Z[7], _aT_, _aS_); + } + else + var + _aV_ = 0, + _aU_ = + runtime.ml_z_of_substring_base + (_T_(_az_), _ar_, _ay_, _aG_ - _ay_ | 0); + } + else + var + _aV_ = 0, + _aU_ = + runtime.ml_z_of_substring_base + (_T_(_az_), _ar_, _ay_, _aG_ - _ay_ | 0); + var _aW_ = _aF_ - _aV_ | 0, _aX_ = 2 === _az_ ? 10 : 3 <= _az_ ? 2 : 1; + if(0 <= _aW_) + var + _aY_ = runtime.ml_z_pow(_aX_, _aW_), + _aZ_ = _c_(caml_call2(Z[14], _aU_, _aY_)); + else + var _aZ_ = _b_(_aU_, runtime.ml_z_pow(_aX_, - _aW_ | 0)); + return _av_[1] ? _J_(_aZ_) : _aZ_; + } + } + } + return _l_; + } + function _X_(_ap_){ + var _aq_ = _C_(_ap_); + return caml_call1(Stdlib[42], _aq_); + } + function _Y_(_an_, _am_){ + var _ao_ = _C_(_am_); + return caml_call2(Stdlib[66], _an_, _ao_); + } + function _Z_(_al_, _ak_){return _C_(_ak_);} + function ___(_ai_, _ah_){ + var _aj_ = _C_(_ah_); + return caml_call2(Stdlib_Buffer[16], _ai_, _aj_); + } + function _$_(_af_, _ae_){ + var _ag_ = _C_(_ae_); + return caml_call2(Stdlib_Format[13], _af_, _ag_); + } + function _aa_(_ad_){return _ad_;} + var + Q = [0, - _aa_, - _ah_, - _ai_, - _aj_, - _ak_, - _al_, - _am_, - _ab_, - _ac_, - _ad_, - _ae_, - _af_, - _ag_, - _an_, - _aU_, - _aq_, - _ar_, - _ao_, - _ap_, - _as_, - _au_, - _at_, - _av_, - _aw_, - _ax_, - _az_, - _ay_, - _aA_, - _aC_, - _aD_, - _aE_, - _aF_, - _aG_, - _aB_, - _aH_, - _aI_, - _aJ_, - _aL_, - _aM_, - _aN_, - _aO_, - _aP_, - _aQ_, - _aR_, - _aW_, - _aX_, - _aY_, - _aZ_, - _a0_, - _aI_, - _a1_, - _aL_, - _aM_, - _aN_, - _aP_, - _aQ_, - _aR_, - _ac_, - _ag_, - _ab_, - _aa_, - _at_, - _ay_, - _aA_, - _ax_, - _az_, - function(_cj_,_ci_){return 1 - _at_(_cj_,_ci_)}]; - caml_register_global(42,Q,"Q"); - function _a2_(_ch_,_cg_){return _c_(_ch_,_cg_)} - function _a3_(_cf_,_ce_){return _e_(_cf_,_ce_)} - function _a4_(_cd_){return _e_(_cd_,_cd_)} - function _a5_(_cc_){return runtime.ml_z_sqrt(_cc_)} - function _a6_(_cb_,_ca_){return runtime.ml_z_gcd(_cb_,_ca_)} - function _a7_(_b$_,_b__){return runtime.ml_z_pow(_b$_,_b__)} - function _a8_(_b9_,_b8_){return runtime.ml_z_pow(_b9_,_s_(_b8_))} - function _a9_(_b7_,_b6_) - {if(_b6_ < 0)throw [0,Stdlib[6],cst_power_int_positive_int]; - return runtime.ml_z_pow(_b7_,_b6_)} - function _a__(_b5_,_b4_) - {if(_b4_ < 0)throw [0,Stdlib[6],cst_power_big_int_positive_int]; - return runtime.ml_z_pow(_b5_,_b4_)} - function _a$_(_b3_,_b2_) - {if(runtime.ml_z_sign(_b2_) < 0) - throw [0,Stdlib[6],cst_power_int_positive_big_int]; - return _a8_(_b3_,_b2_)} - function _ba_(_b1_,_b0_) - {if(runtime.ml_z_sign(_b0_) < 0) - throw [0,Stdlib[6],cst_power_big_int_positive_big]; - return _a8_(_b1_,_b0_)} - function _bb_(_bZ_){return runtime.ml_z_sign(_bZ_)} - function _bc_(_bY_,_bX_){return runtime.ml_z_compare(_bY_,_bX_)} - function _bd_(_bW_,_bV_){return runtime.ml_z_equal(_bW_,_bV_)} - function _be_(_bU_,_bT_){return runtime.ml_z_compare(_bU_,_bT_) <= 0?1:0} - function _bf_(_bS_,_bR_){return 0 <= runtime.ml_z_compare(_bS_,_bR_)?1:0} - function _bg_(_bQ_,_bP_){return runtime.ml_z_compare(_bQ_,_bP_) < 0?1:0} - function _bh_(_bO_,_bN_){return 0 < runtime.ml_z_compare(_bO_,_bN_)?1:0} - function _bi_(_bM_){return runtime.ml_z_size(_bM_)} - function _bj_(_bL_){return _bL_} - function _bk_(_bK_){return runtime.ml_z_fits_int(_bK_)} - function _bl_(_bH_) - {try - {var _bI_=_s_(_bH_);return _bI_} - catch(_bJ_) - {_bJ_ = caml_wrap_exception(_bJ_); - if(_bJ_ === _a_)return caml_call1(Stdlib[2],cst_int_of_big_int); - throw _bJ_}} - function _bm_(_bG_){return runtime.ml_z_of_int32(_bG_)} - function _bn_(_bF_){return runtime.ml_z_of_nativeint(_bF_)} - function _bo_(_bE_){return runtime.ml_z_of_int64(_bE_)} - function _bp_(_bB_) - {try - {var _bC_=runtime.ml_z_to_int32(_bB_);return _bC_} - catch(_bD_) - {_bD_ = caml_wrap_exception(_bD_); - if(_bD_ === _a_)return caml_call1(Stdlib[2],cst_int32_of_big_int); - throw _bD_}} - function _bq_(_by_) - {try - {var _bz_=runtime.ml_z_to_nativeint(_by_);return _bz_} - catch(_bA_) - {_bA_ = caml_wrap_exception(_bA_); - if(_bA_ === _a_)return caml_call1(Stdlib[2],cst_nativeint_of_big_int); - throw _bA_}} - function _br_(_bv_) - {try - {var _bw_=runtime.ml_z_to_int64(_bv_);return _bw_} - catch(_bx_) - {_bx_ = caml_wrap_exception(_bx_); - if(_bx_ === _a_)return caml_call1(Stdlib[2],cst_int64_of_big_int); - throw _bx_}} - var - Big_int_Z= - [0, - _t_, - _u_, _b_, - _k_, - _c_, _i_, - _a2_, - _d_, _j_, - _e_, - _a3_, - _a4_, - _a5_, - _G_, - _H_, - _I_, - _a6_, - _a7_, - _a8_, - _a9_, - _a__, - _a$_, - _ba_, - _bb_, - _bc_, - _bd_, - _be_, - _bf_, - _bg_, - _bh_, - _x_, - _w_, - _bi_, - _C_, - _D_, - _bj_, - _bk_, - _bl_, - _bm_, - _bn_, - _bo_, - _bp_, - _bq_, - _br_, - _T_, + _k_, _l_, _m_, _n_, + _c_, + _d_, + _e_, + _f_, + _g_, + _h_, + _o_, + _V_, + _r_, + _s_, _p_, _q_, - _r_, - function(_bu_,_bt_,_bs_){return runtime.ml_z_extract(_bu_,_bt_,_bs_)}]; - caml_register_global(43,Big_int_Z,"Big_int_Z"); - return} + _t_, + _v_, + _u_, + _w_, + _x_, + _y_, + _A_, + _z_, + _B_, + _D_, + _E_, + _F_, + _G_, + _H_, + _C_, + _I_, + _J_, + _K_, + _M_, + _N_, + _O_, + _P_, + _Q_, + _R_, + _S_, + _X_, + _Y_, + _Z_, + ___, + _$_, + _J_, + _aa_, + _M_, + _N_, + _O_, + _Q_, + _R_, + _S_, + _d_, + _h_, + _c_, + _b_, + _u_, + _z_, + _B_, + _y_, + _A_, + function(_ac_, _ab_){return 1 - _u_(_ac_, _ab_);}]; + runtime.caml_register_global(21, Q, "Q"); + return; + } (globalThis)); -//# 1 "../../.js/zarith_stubs_js/zarith_stubs_js.cma.js" -(function(globalThis) - {"use strict"; - var runtime=globalThis.jsoo_runtime,Zarith_stubs_js=[0]; - runtime.caml_register_global(0,Zarith_stubs_js,"Zarith_stubs_js"); - return} - (globalThis)); +//# 1 "../../.js/default/zarith_stubs_js/zarith_stubs_js.cma.js" +// Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 -//# 1 "../../.js/yojson/yojson.cma.js" -(function(globalThis) - {"use strict"; - var - runtime=globalThis.jsoo_runtime, - caml_bytes_get=runtime.caml_bytes_get, - caml_bytes_set=runtime.caml_bytes_set, - caml_check_bound=runtime.caml_check_bound, - caml_classify_float=runtime.caml_classify_float, - caml_create_bytes=runtime.caml_create_bytes, - caml_equal=runtime.caml_equal, - caml_float_of_string=runtime.caml_float_of_string, - caml_fresh_oo_id=runtime.caml_fresh_oo_id, - caml_get_public_method=runtime.caml_get_public_method, - caml_int64_of_string=runtime.caml_int64_of_string, - caml_int_of_string=runtime.caml_int_of_string, - caml_lex_engine=runtime.caml_lex_engine, - caml_make_vect=runtime.caml_make_vect, - caml_ml_string_length=runtime.caml_ml_string_length, - caml_string_equal=runtime.caml_string_equal, - caml_string_get=runtime.caml_string_get, - caml_string_notequal=runtime.caml_string_notequal, - caml_string_of_jsbytes=runtime.caml_string_of_jsbytes, - caml_trampoline=runtime.caml_trampoline, - caml_trampoline_return=runtime.caml_trampoline_return, - caml_wrap_exception=runtime.caml_wrap_exception; - function caml_call1(f,a0) - {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} - function caml_call2(f,a0,a1) - {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} - function caml_call3(f,a0,a1,a2) - {return f.length == 3?f(a0,a1,a2):runtime.caml_call_gen(f,[a0,a1,a2])} - function caml_call4(f,a0,a1,a2,a3) - {return f.length == 4 - ?f(a0,a1,a2,a3) - :runtime.caml_call_gen(f,[a0,a1,a2,a3])} - function caml_call5(f,a0,a1,a2,a3,a4) - {return f.length == 5 - ?f(a0,a1,a2,a3,a4) - :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4])} - var - global_data=runtime.caml_get_global_data(), - cst_Null=caml_string_of_jsbytes("`Null"), - cst_Some=caml_string_of_jsbytes("(Some "), - cst$10=caml_string_of_jsbytes(")"), - cst_None=caml_string_of_jsbytes("None"), - cst_Null$2=caml_string_of_jsbytes("`Null"), - cst_Some$1=caml_string_of_jsbytes("(Some "), - cst$77=caml_string_of_jsbytes(")"), - cst_None$1=caml_string_of_jsbytes("None"), - cst_Unexpected_end_of_input$92= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_token$12=caml_string_of_jsbytes("Invalid token"), - cst_Unexpected_end_of_input$93= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Unexpected_end_of_input$94= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_escape_sequence$1= - caml_string_of_jsbytes("Invalid escape sequence"), - cst_Unexpected_end_of_input$95= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_low_surrogate_for_$1= - caml_string_of_jsbytes - ("Invalid low surrogate for code point beyond U+FFFF"), - cst_Missing_escape_sequence_re$1= - caml_string_of_jsbytes - ("Missing escape sequence representing low surrogate for code point beyond U+FFFF"), - cst_Unexpected_end_of_input$96= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_string_literal$5= - caml_string_of_jsbytes("Invalid string literal"), - cst_Unexpected_end_of_input$97= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$29= - caml_string_of_jsbytes("Expected ':' or '>' but found"), - cst_Unexpected_end_of_input$98= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$30= - caml_string_of_jsbytes("Expected '<' but found"), - cst_Unexpected_end_of_input$99= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$31= - caml_string_of_jsbytes("Expected '>' but found"), - cst_Unexpected_end_of_input$100= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$32= - caml_string_of_jsbytes("Expected ',' but found"), - cst_Unexpected_end_of_input$101= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$30= - caml_string_of_jsbytes("Expected '<', '\"' or '[' but found"), - cst_Unexpected_end_of_input$102= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Unterminated_comment$3=caml_string_of_jsbytes("Unterminated comment"), - cst_Expected_null_but_found$1= - caml_string_of_jsbytes("Expected 'null' but found"), - cst_Unexpected_end_of_input$103= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_true_or_false_but$1= - caml_string_of_jsbytes("Expected 'true' or 'false' but found"), - cst_Unexpected_end_of_input$104= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Int_overflow$5=caml_string_of_jsbytes("Int overflow"), - cst_Int_overflow$6=caml_string_of_jsbytes("Int overflow"), - cst_Expected_an_integer_but_fo$1= - caml_string_of_jsbytes - ("Expected an integer but found a string that doesn't even represent an integer"), - cst_Expected_integer_but_found$1= - caml_string_of_jsbytes("Expected integer but found"), - cst_Unexpected_end_of_input$105= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Int32_overflow$3=caml_string_of_jsbytes("Int32 overflow"), - cst_Expected_an_int32_but_foun$1= - caml_string_of_jsbytes - ("Expected an int32 but found a string that doesn't even represent an integer"), - cst_Expected_int32_but_found$1= - caml_string_of_jsbytes("Expected int32 but found"), - cst_Unexpected_end_of_input$106= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Int32_overflow$4=caml_string_of_jsbytes("Int32 overflow"), - cst_Expected_an_int64_but_foun$1= - caml_string_of_jsbytes - ("Expected an int64 but found a string that doesn't even represent an integer"), - cst_Expected_int64_but_found$1= - caml_string_of_jsbytes("Expected int64 but found"), - cst_Unexpected_end_of_input$107= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Infinity$15=caml_string_of_jsbytes("-Infinity"), - cst_Infinity$16=caml_string_of_jsbytes("Infinity"), - cst_NaN$7=caml_string_of_jsbytes("NaN"), - cst_Expected_a_number_but_foun$1= - caml_string_of_jsbytes - ("Expected a number but found a string that doesn't even represent a number"), - cst_Expected_number_but_found$1= - caml_string_of_jsbytes("Expected number but found"), - cst_Unexpected_end_of_input$108= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$33= - caml_string_of_jsbytes("Expected '\"' but found"), - cst_Unexpected_end_of_input$109= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_string_or_identif$7= - caml_string_of_jsbytes("Expected string or identifier but found"), - cst_Unexpected_end_of_input$110= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_string_or_identif$8= - caml_string_of_jsbytes("Expected string or identifier but found"), - cst_Unexpected_end_of_input$111= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$34= - caml_string_of_jsbytes("Expected '[' but found"), - cst_Unexpected_end_of_input$112= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$35= - caml_string_of_jsbytes("Expected '[' but found"), - cst_Unexpected_end_of_input$113= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$31= - caml_string_of_jsbytes("Expected ',' or ']' but found"), - cst_Unexpected_end_of_input$114= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$36= - caml_string_of_jsbytes("Expected ')' but found"), - cst_Unexpected_end_of_input$115= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$32= - caml_string_of_jsbytes("Expected ')' or '' but found"), - cst_Expected_or_but_found$33= - caml_string_of_jsbytes("Expected ']' or '' but found"), - cst_Expected_or_but_found$34= - caml_string_of_jsbytes("Expected ',' or ')' but found"), - cst_Unexpected_end_of_input$116= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$35= - caml_string_of_jsbytes("Expected ',' or ']' but found"), - cst_Expected_or_but_found$36= - caml_string_of_jsbytes("Expected ',' or ')' but found"), - cst_Expected_or_but_found$37= - caml_string_of_jsbytes("Expected ',' or ')' but found"), - cst_Unexpected_end_of_input$117= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$37= - caml_string_of_jsbytes("Expected '{' but found"), - cst_Unexpected_end_of_input$118= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$38= - caml_string_of_jsbytes("Expected '{' but found"), - cst_Unexpected_end_of_input$119= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$38= - caml_string_of_jsbytes("Expected ',' or '}' but found"), - cst_Unexpected_end_of_input$120= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$39= - caml_string_of_jsbytes("Expected ':' but found"), - cst_Unexpected_end_of_input$121= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$39= - caml_string_of_jsbytes("Expected '(' or '[' but found"), - cst_Unexpected_end_of_input$122= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$40= - caml_string_of_jsbytes("Expected '(' but found"), - cst_Unexpected_end_of_input$123= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$41= - caml_string_of_jsbytes("Expected ')' but found"), - cst_Unexpected_end_of_input$124= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$42= - caml_string_of_jsbytes("Expected '[' but found"), - cst_Unexpected_end_of_input$125= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$43= - caml_string_of_jsbytes("Expected ']' but found"), - cst_Unexpected_end_of_input$126= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Unexpected_end_of_input$127= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_token$13=caml_string_of_jsbytes("Invalid token"), - cst_Invalid_string_literal$6= - caml_string_of_jsbytes("Invalid string literal"), - cst_Unexpected_end_of_input$128= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$40= - caml_string_of_jsbytes("Expected ':' or '>' but found"), - cst_Unexpected_end_of_input$129= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_string_or_identif$9= - caml_string_of_jsbytes("Expected string or identifier but found"), - cst_Unexpected_end_of_input$130= - caml_string_of_jsbytes("Unexpected end of input"), - cst$78=caml_string_of_jsbytes("/*"), - cst_Unexpected_end_of_input$131= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_token$14=caml_string_of_jsbytes("Invalid token"), - cst_Invalid_string_literal$7= - caml_string_of_jsbytes("Invalid string literal"), - cst_Unexpected_end_of_input$132= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$41= - caml_string_of_jsbytes("Expected ':' or '>' but found"), - cst_Unexpected_end_of_input$133= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_string_or_identif$10= - caml_string_of_jsbytes("Expected string or identifier but found"), - cst_Unexpected_end_of_input$134= - caml_string_of_jsbytes("Unexpected end of input"), - cst$79=caml_string_of_jsbytes("/*"), - cst_Expected_or_but_found$42= - caml_string_of_jsbytes("Expected ',' or '}' but found"), - cst_Unexpected_end_of_input$135= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$43= - caml_string_of_jsbytes("Expected ',' or ']' but found"), - cst_Unexpected_end_of_input$136= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$44= - caml_string_of_jsbytes("Expected ',' or ')' but found"), - cst_Unexpected_end_of_input$137= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$44= - caml_string_of_jsbytes("Expected ':' but found"), - cst_Unexpected_end_of_input$138= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$45= - caml_string_of_jsbytes("Expected '>' but found"), - cst_Unexpected_end_of_input$139= - caml_string_of_jsbytes("Unexpected end of input"), - cst$80=caml_string_of_jsbytes("*/"), - cst_Unterminated_comment$4=caml_string_of_jsbytes("Unterminated comment"), - stream$1=[0,1], - cst_Blank_input_data$4=caml_string_of_jsbytes("Blank input data"), - cst_Blank_input_data$3=caml_string_of_jsbytes("Blank input data"), - cst_Junk_after_end_of_JSON_val$1= - caml_string_of_jsbytes("Junk after end of JSON value:"), - cst_Int8_overflow$1=caml_string_of_jsbytes("Int8 overflow"), - cst_Line$1=caml_string_of_jsbytes("Line"), - cst_null$8=caml_string_of_jsbytes("null"), - cst$70=caml_string_of_jsbytes(","), - cst$71=caml_string_of_jsbytes("{}"), - cst$72=caml_string_of_jsbytes(","), - cst$73=caml_string_of_jsbytes(","), - cst$74=caml_string_of_jsbytes("[]"), - cst$75=caml_string_of_jsbytes("()"), - cst$76=caml_string_of_jsbytes(","), - cst$69=caml_string_of_jsbytes("\n"), - cst$68=caml_string_of_jsbytes("\n"), - cst$67=caml_string_of_jsbytes("\n"), - cst$66=caml_string_of_jsbytes("\n"), - cst$65=caml_string_of_jsbytes("\n"), - cst$64=caml_string_of_jsbytes(""), - cst$63=caml_string_of_jsbytes(""), - cst$62=caml_string_of_jsbytes(""), - cst$61=caml_string_of_jsbytes(""), - cst_true$2=caml_string_of_jsbytes("true"), - cst_false$2=caml_string_of_jsbytes("false"), - cst_null$7=caml_string_of_jsbytes("null"), - cst_b$2=caml_string_of_jsbytes("\\b"), - cst_t$2=caml_string_of_jsbytes("\\t"), - cst_n$2=caml_string_of_jsbytes("\\n"), - cst_f$2=caml_string_of_jsbytes("\\f"), - cst_r$2=caml_string_of_jsbytes("\\r"), - cst$60=caml_string_of_jsbytes('\\"'), - cst$59=caml_string_of_jsbytes("\\\\"), - cst_u00$2=caml_string_of_jsbytes("\\u00"), - cst_Null$1=caml_string_of_jsbytes("`Null"), - cst_Some$0=caml_string_of_jsbytes("(Some "), - cst$55=caml_string_of_jsbytes(")"), - cst_None$0=caml_string_of_jsbytes("None"), - cst_Unexpected_end_of_input$44= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_token$9=caml_string_of_jsbytes("Invalid token"), - cst_Unexpected_end_of_input$45= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Unexpected_end_of_input$46= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_escape_sequence$0= - caml_string_of_jsbytes("Invalid escape sequence"), - cst_Unexpected_end_of_input$47= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_low_surrogate_for_$0= - caml_string_of_jsbytes - ("Invalid low surrogate for code point beyond U+FFFF"), - cst_Missing_escape_sequence_re$0= - caml_string_of_jsbytes - ("Missing escape sequence representing low surrogate for code point beyond U+FFFF"), - cst_Unexpected_end_of_input$48= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_string_literal$2= - caml_string_of_jsbytes("Invalid string literal"), - cst_Unexpected_end_of_input$49= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$13= - caml_string_of_jsbytes("Expected ':' or '>' but found"), - cst_Unexpected_end_of_input$50= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$14= - caml_string_of_jsbytes("Expected '<' but found"), - cst_Unexpected_end_of_input$51= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$15= - caml_string_of_jsbytes("Expected '>' but found"), - cst_Unexpected_end_of_input$52= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$16= - caml_string_of_jsbytes("Expected ',' but found"), - cst_Unexpected_end_of_input$53= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$14= - caml_string_of_jsbytes("Expected '<', '\"' or '[' but found"), - cst_Unexpected_end_of_input$54= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Unterminated_comment$1=caml_string_of_jsbytes("Unterminated comment"), - cst_Expected_null_but_found$0= - caml_string_of_jsbytes("Expected 'null' but found"), - cst_Unexpected_end_of_input$55= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_true_or_false_but$0= - caml_string_of_jsbytes("Expected 'true' or 'false' but found"), - cst_Unexpected_end_of_input$56= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Int_overflow$3=caml_string_of_jsbytes("Int overflow"), - cst_Int_overflow$4=caml_string_of_jsbytes("Int overflow"), - cst_Expected_an_integer_but_fo$0= - caml_string_of_jsbytes - ("Expected an integer but found a string that doesn't even represent an integer"), - cst_Expected_integer_but_found$0= - caml_string_of_jsbytes("Expected integer but found"), - cst_Unexpected_end_of_input$57= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Int32_overflow$1=caml_string_of_jsbytes("Int32 overflow"), - cst_Expected_an_int32_but_foun$0= - caml_string_of_jsbytes - ("Expected an int32 but found a string that doesn't even represent an integer"), - cst_Expected_int32_but_found$0= - caml_string_of_jsbytes("Expected int32 but found"), - cst_Unexpected_end_of_input$58= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Int32_overflow$2=caml_string_of_jsbytes("Int32 overflow"), - cst_Expected_an_int64_but_foun$0= - caml_string_of_jsbytes - ("Expected an int64 but found a string that doesn't even represent an integer"), - cst_Expected_int64_but_found$0= - caml_string_of_jsbytes("Expected int64 but found"), - cst_Unexpected_end_of_input$59= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Infinity$13=caml_string_of_jsbytes("-Infinity"), - cst_Infinity$14=caml_string_of_jsbytes("Infinity"), - cst_NaN$6=caml_string_of_jsbytes("NaN"), - cst_Expected_a_number_but_foun$0= - caml_string_of_jsbytes - ("Expected a number but found a string that doesn't even represent a number"), - cst_Expected_number_but_found$0= - caml_string_of_jsbytes("Expected number but found"), - cst_Unexpected_end_of_input$60= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$17= - caml_string_of_jsbytes("Expected '\"' but found"), - cst_Unexpected_end_of_input$61= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_string_or_identif$3= - caml_string_of_jsbytes("Expected string or identifier but found"), - cst_Unexpected_end_of_input$62= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_string_or_identif$4= - caml_string_of_jsbytes("Expected string or identifier but found"), - cst_Unexpected_end_of_input$63= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$18= - caml_string_of_jsbytes("Expected '[' but found"), - cst_Unexpected_end_of_input$64= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$19= - caml_string_of_jsbytes("Expected '[' but found"), - cst_Unexpected_end_of_input$65= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$15= - caml_string_of_jsbytes("Expected ',' or ']' but found"), - cst_Unexpected_end_of_input$66= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$20= - caml_string_of_jsbytes("Expected ')' but found"), - cst_Unexpected_end_of_input$67= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$16= - caml_string_of_jsbytes("Expected ')' or '' but found"), - cst_Expected_or_but_found$17= - caml_string_of_jsbytes("Expected ']' or '' but found"), - cst_Expected_or_but_found$18= - caml_string_of_jsbytes("Expected ',' or ')' but found"), - cst_Unexpected_end_of_input$68= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$19= - caml_string_of_jsbytes("Expected ',' or ']' but found"), - cst_Expected_or_but_found$20= - caml_string_of_jsbytes("Expected ',' or ')' but found"), - cst_Expected_or_but_found$21= - caml_string_of_jsbytes("Expected ',' or ')' but found"), - cst_Unexpected_end_of_input$69= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$21= - caml_string_of_jsbytes("Expected '{' but found"), - cst_Unexpected_end_of_input$70= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$22= - caml_string_of_jsbytes("Expected '{' but found"), - cst_Unexpected_end_of_input$71= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$22= - caml_string_of_jsbytes("Expected ',' or '}' but found"), - cst_Unexpected_end_of_input$72= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$23= - caml_string_of_jsbytes("Expected ':' but found"), - cst_Unexpected_end_of_input$73= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$23= - caml_string_of_jsbytes("Expected '(' or '[' but found"), - cst_Unexpected_end_of_input$74= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$24= - caml_string_of_jsbytes("Expected '(' but found"), - cst_Unexpected_end_of_input$75= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$25= - caml_string_of_jsbytes("Expected ')' but found"), - cst_Unexpected_end_of_input$76= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$26= - caml_string_of_jsbytes("Expected '[' but found"), - cst_Unexpected_end_of_input$77= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$27= - caml_string_of_jsbytes("Expected ']' but found"), - cst_Unexpected_end_of_input$78= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Unexpected_end_of_input$79= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_token$10=caml_string_of_jsbytes("Invalid token"), - cst_Invalid_string_literal$3= - caml_string_of_jsbytes("Invalid string literal"), - cst_Unexpected_end_of_input$80= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$24= - caml_string_of_jsbytes("Expected ':' or '>' but found"), - cst_Unexpected_end_of_input$81= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_string_or_identif$5= - caml_string_of_jsbytes("Expected string or identifier but found"), - cst_Unexpected_end_of_input$82= - caml_string_of_jsbytes("Unexpected end of input"), - cst$56=caml_string_of_jsbytes("/*"), - cst_Unexpected_end_of_input$83= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_token$11=caml_string_of_jsbytes("Invalid token"), - cst_Invalid_string_literal$4= - caml_string_of_jsbytes("Invalid string literal"), - cst_Unexpected_end_of_input$84= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$25= - caml_string_of_jsbytes("Expected ':' or '>' but found"), - cst_Unexpected_end_of_input$85= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_string_or_identif$6= - caml_string_of_jsbytes("Expected string or identifier but found"), - cst_Unexpected_end_of_input$86= - caml_string_of_jsbytes("Unexpected end of input"), - cst$57=caml_string_of_jsbytes("/*"), - cst_Expected_or_but_found$26= - caml_string_of_jsbytes("Expected ',' or '}' but found"), - cst_Unexpected_end_of_input$87= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$27= - caml_string_of_jsbytes("Expected ',' or ']' but found"), - cst_Unexpected_end_of_input$88= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$28= - caml_string_of_jsbytes("Expected ',' or ')' but found"), - cst_Unexpected_end_of_input$89= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$28= - caml_string_of_jsbytes("Expected ':' but found"), - cst_Unexpected_end_of_input$90= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$29= - caml_string_of_jsbytes("Expected '>' but found"), - cst_Unexpected_end_of_input$91= - caml_string_of_jsbytes("Unexpected end of input"), - cst$58=caml_string_of_jsbytes("*/"), - cst_Unterminated_comment$2=caml_string_of_jsbytes("Unterminated comment"), - cst_Expected_two_objects_check$0= - caml_string_of_jsbytes("Expected two objects, check inputs"), - cst_Can_t_convert_each_element$0= - caml_string_of_jsbytes("Can't convert each element of non-array type "), - cst_Expected_string_or_null_go$0= - caml_string_of_jsbytes("Expected string or null, got "), - cst_Expected_string_got$0=caml_string_of_jsbytes("Expected string, got "), - cst_Expected_array_got$0=caml_string_of_jsbytes("Expected array, got "), - cst_Expected_int_or_null_got$0= - caml_string_of_jsbytes("Expected int or null, got "), - cst_Expected_int_got$0=caml_string_of_jsbytes("Expected int, got "), - cst_Expected_float_or_null_got$0= - caml_string_of_jsbytes("Expected float or null, got "), - cst_Expected_float_got$0=caml_string_of_jsbytes("Expected float, got "), - cst_Expected_number_or_null_go$0= - caml_string_of_jsbytes("Expected number or null, got "), - cst_Expected_number_got$0=caml_string_of_jsbytes("Expected number, got "), - cst_Expected_bool_or_null_got$0= - caml_string_of_jsbytes("Expected bool or null, got "), - cst_Expected_bool_got$0=caml_string_of_jsbytes("Expected bool, got "), - cst_Expected_object_got$0=caml_string_of_jsbytes("Expected object, got "), - cst_Can_t_map_function_over_no$0= - caml_string_of_jsbytes("Can't map function over non-array type "), - cst_out_of_bounds$0=caml_string_of_jsbytes(" out of bounds"), - cst_Index$0=caml_string_of_jsbytes("Index "), - cst_of_non_array_type$0=caml_string_of_jsbytes(" of non-array type "), - cst_Can_t_get_index$0=caml_string_of_jsbytes("Can't get index "), - cst_of_non_object_type$0=caml_string_of_jsbytes("' of non-object type "), - cst_Can_t_get_member$0=caml_string_of_jsbytes("Can't get member '"), - cst_null$6=caml_string_of_jsbytes("null"), - cst_object$0=caml_string_of_jsbytes("object"), - cst_array$0=caml_string_of_jsbytes("array"), - cst_bool$0=caml_string_of_jsbytes("bool"), - cst_variant$0=caml_string_of_jsbytes("variant"), - cst_tuple$0=caml_string_of_jsbytes("tuple"), - cst_float$0=caml_string_of_jsbytes("float"), - cst_int$0=caml_string_of_jsbytes("int"), - cst_intlit$0=caml_string_of_jsbytes("intlit"), - cst_string$0=caml_string_of_jsbytes("string"), - stream$0=[0,1], - cst_Blank_input_data$2=caml_string_of_jsbytes("Blank input data"), - cst_Blank_input_data$1=caml_string_of_jsbytes("Blank input data"), - cst_Junk_after_end_of_JSON_val$0= - caml_string_of_jsbytes("Junk after end of JSON value:"), - cst_Int8_overflow$0=caml_string_of_jsbytes("Int8 overflow"), - cst_Line$0=caml_string_of_jsbytes("Line"), - cst_null$5=caml_string_of_jsbytes("null"), - cst$50=caml_string_of_jsbytes(","), - cst$51=caml_string_of_jsbytes("{}"), - cst$52=caml_string_of_jsbytes(","), - cst$53=caml_string_of_jsbytes(","), - cst$54=caml_string_of_jsbytes("[]"), - cst$48=caml_string_of_jsbytes("()"), - cst$49=caml_string_of_jsbytes(","), - cst$47=caml_string_of_jsbytes("\n"), - cst$46=caml_string_of_jsbytes("\n"), - cst$45=caml_string_of_jsbytes("\n"), - cst$44=caml_string_of_jsbytes("\n"), - cst$43=caml_string_of_jsbytes("\n"), - cst$42=caml_string_of_jsbytes(""), - cst$41=caml_string_of_jsbytes(""), - cst$40=caml_string_of_jsbytes(""), - cst$39=caml_string_of_jsbytes(""), - cst_NaN_value_not_allowed_in_s$4= - caml_string_of_jsbytes("NaN value not allowed in standard JSON"), - cst_Infinity_value_not_allowed$9= - caml_string_of_jsbytes("Infinity value not allowed in standard JSON"), - cst_Infinity_value_not_allowed$10= - caml_string_of_jsbytes("-Infinity value not allowed in standard JSON"), - cst_NaN_value_not_allowed_in_s$3= - caml_string_of_jsbytes("NaN value not allowed in standard JSON"), - cst_0$7=caml_string_of_jsbytes(".0"), - cst_Infinity_value_not_allowed$7= - caml_string_of_jsbytes("Infinity value not allowed in standard JSON"), - cst_Infinity_value_not_allowed$8= - caml_string_of_jsbytes("-Infinity value not allowed in standard JSON"), - cst_NaN$5=caml_string_of_jsbytes("NaN"), - cst_Infinity$11=caml_string_of_jsbytes("Infinity"), - cst_Infinity$12=caml_string_of_jsbytes("-Infinity"), - cst_0$6=caml_string_of_jsbytes(".0"), - cst_NaN$4=caml_string_of_jsbytes("NaN"), - cst_0$5=caml_string_of_jsbytes(".0"), - cst_Infinity$9=caml_string_of_jsbytes("Infinity"), - cst_Infinity$10=caml_string_of_jsbytes("-Infinity"), - cst_true$1=caml_string_of_jsbytes("true"), - cst_false$1=caml_string_of_jsbytes("false"), - cst_null$4=caml_string_of_jsbytes("null"), - cst_b$1=caml_string_of_jsbytes("\\b"), - cst_t$1=caml_string_of_jsbytes("\\t"), - cst_n$1=caml_string_of_jsbytes("\\n"), - cst_f$1=caml_string_of_jsbytes("\\f"), - cst_r$1=caml_string_of_jsbytes("\\r"), - cst$38=caml_string_of_jsbytes('\\"'), - cst$37=caml_string_of_jsbytes("\\\\"), - cst_u00$1=caml_string_of_jsbytes("\\u00"), - cst_Null$0=caml_string_of_jsbytes("`Null"), - cst_Invalid_token=caml_string_of_jsbytes("Invalid token"), - cst_Invalid_token$0=caml_string_of_jsbytes("Invalid token"), - cst_Unexpected_end_of_input= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_token$1=caml_string_of_jsbytes("Invalid token"), - cst_Unexpected_end_of_input$0= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Unexpected_end_of_input$1= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_escape_sequence= - caml_string_of_jsbytes("Invalid escape sequence"), - cst_Unexpected_end_of_input$2= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_low_surrogate_for_= - caml_string_of_jsbytes - ("Invalid low surrogate for code point beyond U+FFFF"), - cst_Missing_escape_sequence_re= - caml_string_of_jsbytes - ("Missing escape sequence representing low surrogate for code point beyond U+FFFF"), - cst_Unexpected_end_of_input$3= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_string_literal= - caml_string_of_jsbytes("Invalid string literal"), - cst_Unexpected_end_of_input$4= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found= - caml_string_of_jsbytes("Expected ':' or '>' but found"), - cst_Unexpected_end_of_input$5= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found=caml_string_of_jsbytes("Expected '<' but found"), - cst_Unexpected_end_of_input$6= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$0=caml_string_of_jsbytes("Expected '>' but found"), - cst_Unexpected_end_of_input$7= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$1=caml_string_of_jsbytes("Expected ',' but found"), - cst_Unexpected_end_of_input$8= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$0= - caml_string_of_jsbytes("Expected '<', '\"' or '[' but found"), - cst_Unexpected_end_of_input$9= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Unterminated_comment=caml_string_of_jsbytes("Unterminated comment"), - cst_Expected_null_but_found= - caml_string_of_jsbytes("Expected 'null' but found"), - cst_Unexpected_end_of_input$10= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_true_or_false_but= - caml_string_of_jsbytes("Expected 'true' or 'false' but found"), - cst_Unexpected_end_of_input$11= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Int_overflow$1=caml_string_of_jsbytes("Int overflow"), - cst_Int_overflow$2=caml_string_of_jsbytes("Int overflow"), - cst_Expected_an_integer_but_fo= - caml_string_of_jsbytes - ("Expected an integer but found a string that doesn't even represent an integer"), - cst_Expected_integer_but_found= - caml_string_of_jsbytes("Expected integer but found"), - cst_Unexpected_end_of_input$12= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Int32_overflow=caml_string_of_jsbytes("Int32 overflow"), - cst_Expected_an_int32_but_foun= - caml_string_of_jsbytes - ("Expected an int32 but found a string that doesn't even represent an integer"), - cst_Expected_int32_but_found= - caml_string_of_jsbytes("Expected int32 but found"), - cst_Unexpected_end_of_input$13= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Int32_overflow$0=caml_string_of_jsbytes("Int32 overflow"), - cst_Expected_an_int64_but_foun= - caml_string_of_jsbytes - ("Expected an int64 but found a string that doesn't even represent an integer"), - cst_Expected_int64_but_found= - caml_string_of_jsbytes("Expected int64 but found"), - cst_Unexpected_end_of_input$14= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Infinity$7=caml_string_of_jsbytes("-Infinity"), - cst_Infinity$8=caml_string_of_jsbytes("Infinity"), - cst_NaN$3=caml_string_of_jsbytes("NaN"), - cst_Expected_a_number_but_foun= - caml_string_of_jsbytes - ("Expected a number but found a string that doesn't even represent a number"), - cst_Expected_number_but_found= - caml_string_of_jsbytes("Expected number but found"), - cst_Unexpected_end_of_input$15= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$2= - caml_string_of_jsbytes("Expected '\"' but found"), - cst_Unexpected_end_of_input$16= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_string_or_identif= - caml_string_of_jsbytes("Expected string or identifier but found"), - cst_Unexpected_end_of_input$17= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_string_or_identif$0= - caml_string_of_jsbytes("Expected string or identifier but found"), - cst_Unexpected_end_of_input$18= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$3=caml_string_of_jsbytes("Expected '[' but found"), - cst_Unexpected_end_of_input$19= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$4=caml_string_of_jsbytes("Expected '[' but found"), - cst_Unexpected_end_of_input$20= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$1= - caml_string_of_jsbytes("Expected ',' or ']' but found"), - cst_Unexpected_end_of_input$21= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_token$2=caml_string_of_jsbytes("Invalid token"), - cst_Expected_but_found$5=caml_string_of_jsbytes("Expected ')' but found"), - cst_Unexpected_end_of_input$22= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$2= - caml_string_of_jsbytes("Expected ')' or '' but found"), - cst_Expected_or_but_found$3= - caml_string_of_jsbytes("Expected ']' or '' but found"), - cst_Expected_or_but_found$4= - caml_string_of_jsbytes("Expected ',' or ')' but found"), - cst_Unexpected_end_of_input$23= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$5= - caml_string_of_jsbytes("Expected ',' or ']' but found"), - cst_Expected_or_but_found$6= - caml_string_of_jsbytes("Expected ',' or ')' but found"), - cst_Expected_or_but_found$7= - caml_string_of_jsbytes("Expected ',' or ')' but found"), - cst_Unexpected_end_of_input$24= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$6=caml_string_of_jsbytes("Expected '{' but found"), - cst_Unexpected_end_of_input$25= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$7=caml_string_of_jsbytes("Expected '{' but found"), - cst_Unexpected_end_of_input$26= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$8= - caml_string_of_jsbytes("Expected ',' or '}' but found"), - cst_Unexpected_end_of_input$27= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$8=caml_string_of_jsbytes("Expected ':' but found"), - cst_Unexpected_end_of_input$28= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$9= - caml_string_of_jsbytes("Expected '(' or '[' but found"), - cst_Unexpected_end_of_input$29= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$9=caml_string_of_jsbytes("Expected '(' but found"), - cst_Unexpected_end_of_input$30= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$10= - caml_string_of_jsbytes("Expected ')' but found"), - cst_Unexpected_end_of_input$31= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$11= - caml_string_of_jsbytes("Expected '[' but found"), - cst_Unexpected_end_of_input$32= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$12= - caml_string_of_jsbytes("Expected ']' but found"), - cst_Unexpected_end_of_input$33= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_token$3=caml_string_of_jsbytes("Invalid token"), - cst_Invalid_token$4=caml_string_of_jsbytes("Invalid token"), - cst_Unexpected_end_of_input$34= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_token$5=caml_string_of_jsbytes("Invalid token"), - cst_Invalid_string_literal$0= - caml_string_of_jsbytes("Invalid string literal"), - cst_Unexpected_end_of_input$35= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$10= - caml_string_of_jsbytes("Expected ':' or '>' but found"), - cst_Unexpected_end_of_input$36= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_string_or_identif$1= - caml_string_of_jsbytes("Expected string or identifier but found"), - cst_Unexpected_end_of_input$37= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_token$6=caml_string_of_jsbytes("Invalid token"), - cst_Invalid_token$7=caml_string_of_jsbytes("Invalid token"), - cst$34=caml_string_of_jsbytes("/*"), - cst_Unexpected_end_of_input$38= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_token$8=caml_string_of_jsbytes("Invalid token"), - cst_Invalid_string_literal$1= - caml_string_of_jsbytes("Invalid string literal"), - cst_Unexpected_end_of_input$39= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_string_or_identif$2= - caml_string_of_jsbytes("Expected string or identifier but found"), - cst_Unexpected_end_of_input$40= - caml_string_of_jsbytes("Unexpected end of input"), - cst$35=caml_string_of_jsbytes("/*"), - cst_Expected_or_but_found$11= - caml_string_of_jsbytes("Expected ',' or '}' but found"), - cst_Unexpected_end_of_input$41= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$12= - caml_string_of_jsbytes("Expected ',' or ']' but found"), - cst_Unexpected_end_of_input$42= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$13= - caml_string_of_jsbytes("Expected ':' but found"), - cst_Unexpected_end_of_input$43= - caml_string_of_jsbytes("Unexpected end of input"), - cst$36=caml_string_of_jsbytes("*/"), - cst_Unterminated_comment$0=caml_string_of_jsbytes("Unterminated comment"), - cst_Expected_two_objects_check= - caml_string_of_jsbytes("Expected two objects, check inputs"), - cst_Can_t_convert_each_element= - caml_string_of_jsbytes("Can't convert each element of non-array type "), - cst_Expected_string_or_null_go= - caml_string_of_jsbytes("Expected string or null, got "), - cst_Expected_string_got=caml_string_of_jsbytes("Expected string, got "), - cst_Expected_array_got=caml_string_of_jsbytes("Expected array, got "), - cst_Expected_int_or_null_got= - caml_string_of_jsbytes("Expected int or null, got "), - cst_Expected_int_got=caml_string_of_jsbytes("Expected int, got "), - cst_Expected_float_or_null_got= - caml_string_of_jsbytes("Expected float or null, got "), - cst_Expected_float_got=caml_string_of_jsbytes("Expected float, got "), - cst_Expected_number_or_null_go= - caml_string_of_jsbytes("Expected number or null, got "), - cst_Expected_number_got=caml_string_of_jsbytes("Expected number, got "), - cst_Expected_bool_or_null_got= - caml_string_of_jsbytes("Expected bool or null, got "), - cst_Expected_bool_got=caml_string_of_jsbytes("Expected bool, got "), - cst_Expected_object_got=caml_string_of_jsbytes("Expected object, got "), - cst_Can_t_map_function_over_no= - caml_string_of_jsbytes("Can't map function over non-array type "), - cst_out_of_bounds=caml_string_of_jsbytes(" out of bounds"), - cst_Index=caml_string_of_jsbytes("Index "), - cst_of_non_array_type=caml_string_of_jsbytes(" of non-array type "), - cst_Can_t_get_index=caml_string_of_jsbytes("Can't get index "), - cst_of_non_object_type=caml_string_of_jsbytes("' of non-object type "), - cst_Can_t_get_member=caml_string_of_jsbytes("Can't get member '"), - cst_null$3=caml_string_of_jsbytes("null"), - cst_object=caml_string_of_jsbytes("object"), - cst_array=caml_string_of_jsbytes("array"), - cst_bool=caml_string_of_jsbytes("bool"), - cst_variant=caml_string_of_jsbytes("variant"), - cst_tuple=caml_string_of_jsbytes("tuple"), - cst_float=caml_string_of_jsbytes("float"), - cst_int=caml_string_of_jsbytes("int"), - cst_intlit=caml_string_of_jsbytes("intlit"), - cst_string=caml_string_of_jsbytes("string"), - stream=[0,1], - cst_Blank_input_data$0=caml_string_of_jsbytes("Blank input data"), - cst_Blank_input_data=caml_string_of_jsbytes("Blank input data"), - cst_Junk_after_end_of_JSON_val= - caml_string_of_jsbytes("Junk after end of JSON value:"), - cst_Int8_overflow=caml_string_of_jsbytes("Int8 overflow"), - cst_Int_overflow$0=caml_string_of_jsbytes("Int overflow"), - cst_Int_overflow=caml_string_of_jsbytes("Int overflow"), - cst_Line=caml_string_of_jsbytes("Line"), - cst_null$2=caml_string_of_jsbytes("null"), - cst$29=caml_string_of_jsbytes(","), - cst$30=caml_string_of_jsbytes("{}"), - cst$31=caml_string_of_jsbytes(","), - cst$32=caml_string_of_jsbytes(","), - cst$33=caml_string_of_jsbytes("[]"), - cst$28=caml_string_of_jsbytes("\n"), - cst$27=caml_string_of_jsbytes("\n"), - cst$26=caml_string_of_jsbytes("\n"), - cst$25=caml_string_of_jsbytes("\n"), - cst$24=caml_string_of_jsbytes("\n"), - cst$23=caml_string_of_jsbytes(""), - cst$22=caml_string_of_jsbytes(""), - cst$21=caml_string_of_jsbytes(""), - cst$20=caml_string_of_jsbytes(""), - cst_NaN_value_not_allowed_in_s$2= - caml_string_of_jsbytes("NaN value not allowed in standard JSON"), - cst_Infinity_value_not_allowed$5= - caml_string_of_jsbytes("Infinity value not allowed in standard JSON"), - cst_Infinity_value_not_allowed$6= - caml_string_of_jsbytes("-Infinity value not allowed in standard JSON"), - cst_NaN_value_not_allowed_in_s$1= - caml_string_of_jsbytes("NaN value not allowed in standard JSON"), - cst_0$4=caml_string_of_jsbytes(".0"), - cst_Infinity_value_not_allowed$3= - caml_string_of_jsbytes("Infinity value not allowed in standard JSON"), - cst_Infinity_value_not_allowed$4= - caml_string_of_jsbytes("-Infinity value not allowed in standard JSON"), - cst_NaN$2=caml_string_of_jsbytes("NaN"), - cst_Infinity$5=caml_string_of_jsbytes("Infinity"), - cst_Infinity$6=caml_string_of_jsbytes("-Infinity"), - cst_0$3=caml_string_of_jsbytes(".0"), - cst_NaN$1=caml_string_of_jsbytes("NaN"), - cst_0$2=caml_string_of_jsbytes(".0"), - cst_Infinity$3=caml_string_of_jsbytes("Infinity"), - cst_Infinity$4=caml_string_of_jsbytes("-Infinity"), - cst_true$0=caml_string_of_jsbytes("true"), - cst_false$0=caml_string_of_jsbytes("false"), - cst_null$1=caml_string_of_jsbytes("null"), - cst_b$0=caml_string_of_jsbytes("\\b"), - cst_t$0=caml_string_of_jsbytes("\\t"), - cst_n$0=caml_string_of_jsbytes("\\n"), - cst_f$0=caml_string_of_jsbytes("\\f"), - cst_r$0=caml_string_of_jsbytes("\\r"), - cst$19=caml_string_of_jsbytes('\\"'), - cst$18=caml_string_of_jsbytes("\\\\"), - cst_u00$0=caml_string_of_jsbytes("\\u00"), - cst_null$0=caml_string_of_jsbytes("null"), - cst$11=caml_string_of_jsbytes(","), - cst$12=caml_string_of_jsbytes("{}"), - cst$13=caml_string_of_jsbytes(","), - cst$14=caml_string_of_jsbytes(","), - cst$15=caml_string_of_jsbytes("[]"), - cst$16=caml_string_of_jsbytes("()"), - cst$17=caml_string_of_jsbytes(","), - cst$9=caml_string_of_jsbytes("\n"), - cst$8=caml_string_of_jsbytes("\n"), - cst$7=caml_string_of_jsbytes("\n"), - cst$6=caml_string_of_jsbytes("\n"), - cst$5=caml_string_of_jsbytes("\n"), - cst$4=caml_string_of_jsbytes(""), - cst$3=caml_string_of_jsbytes(""), - cst$2=caml_string_of_jsbytes(""), - cst$1=caml_string_of_jsbytes(""), - cst_NaN_value_not_allowed_in_s$0= - caml_string_of_jsbytes("NaN value not allowed in standard JSON"), - cst_Infinity_value_not_allowed$1= - caml_string_of_jsbytes("Infinity value not allowed in standard JSON"), - cst_Infinity_value_not_allowed$2= - caml_string_of_jsbytes("-Infinity value not allowed in standard JSON"), - cst_NaN_value_not_allowed_in_s= - caml_string_of_jsbytes("NaN value not allowed in standard JSON"), - cst_0$1=caml_string_of_jsbytes(".0"), - cst_Infinity_value_not_allowed= - caml_string_of_jsbytes("Infinity value not allowed in standard JSON"), - cst_Infinity_value_not_allowed$0= - caml_string_of_jsbytes("-Infinity value not allowed in standard JSON"), - cst_NaN$0=caml_string_of_jsbytes("NaN"), - cst_Infinity$1=caml_string_of_jsbytes("Infinity"), - cst_Infinity$2=caml_string_of_jsbytes("-Infinity"), - cst_0$0=caml_string_of_jsbytes(".0"), - cst_NaN=caml_string_of_jsbytes("NaN"), - cst_0=caml_string_of_jsbytes(".0"), - cst_Infinity=caml_string_of_jsbytes("Infinity"), - cst_Infinity$0=caml_string_of_jsbytes("-Infinity"), - cst_true=caml_string_of_jsbytes("true"), - cst_false=caml_string_of_jsbytes("false"), - cst_null=caml_string_of_jsbytes("null"), - cst_b=caml_string_of_jsbytes("\\b"), - cst_t=caml_string_of_jsbytes("\\t"), - cst_n=caml_string_of_jsbytes("\\n"), - cst_f=caml_string_of_jsbytes("\\f"), - cst_r=caml_string_of_jsbytes("\\r"), - cst$0=caml_string_of_jsbytes('\\"'), - cst=caml_string_of_jsbytes("\\\\"), - cst_u00=caml_string_of_jsbytes("\\u00"), - version=caml_string_of_jsbytes("2.0.2"), - cst_Yojson_Json_error=caml_string_of_jsbytes("Yojson.Json_error"), - cst_Yojson_End_of_array=caml_string_of_jsbytes("Yojson.End_of_array"), - cst_Yojson_End_of_object=caml_string_of_jsbytes("Yojson.End_of_object"), - cst_Yojson_End_of_tuple=caml_string_of_jsbytes("Yojson.End_of_tuple"), - cst_Yojson_End_of_input=caml_string_of_jsbytes("Yojson.End_of_input"), - cst_Yojson_Basic_Int_overflow= - caml_string_of_jsbytes("Yojson.Basic.Int_overflow"), - ocaml_lex_tables= +//# 1 "../../.js/default/yojson/yojson.cma.js" +// Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 + +//# 6 "../../.js/default/yojson/yojson.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_E_E_E_1_8_v_9_1_0_j_n_i_1_ = + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\x04\0\0\0\x03\0\x03\0\x86\0\0\0\x03\0\0\0\x86\0E\x01\x92\x01\xff\xff\0\0E\x01\x92\x01\0\0\0\0\0\0\0\0\x7f\0\x8b\0\0\0\x03\0\0\0\f\0\x03\0\xaa\0\x86\0\xaf\0\0\0\x07\0\x0b\x01E\x01\x92\x01\x0e\x01\r\x001\0\x05\0\n\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\x008\0v\0\x06\0\x81\0\x82\x009\0\xed\x01\x89\0\0\x021\0\0\x000\0\x8a\0j\0>\0\x0e\0n\0i\0\0\x001\0\x0f\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1e\x000\0\b\0r\0\xd1\0\xec\0\0\x01\r\x01\x1d\0\x16\0\xff\xff0\x000\0\x11\0\x15\0\x19\0 \0!\0#\0\x17\0\x1b\0\x10\0\x1f\0\x1c\0\"\0\x13\0\x18\0\x12\0\x1a\0\x14\0$\0)\0%\x000\0\t\0*\0+\0,\0-\0.\0/\0=\0U\x000\0&\0'\0'\0'\0'\0'\0'\0'\0'\0'\x001\0C\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0V\0\x8f\0\xff\xff(\0\x90\0\x91\0\x92\x007\0\x94\x007\0\x95\x000\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0\xff\xff0\0\x96\0\x97\0\xa1\0B\0\x9e\x005\0\x9f\x005\0\xa0\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\0\xa5\x003\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa2\0\xa3\0\xa6\0]\0\xff\xff\x02\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xff\xffM\0g\0l\0t\0\x84\0\x86\0\x87\0\x80\0\x8b\0\x86\0\xa4\0]\0\xab\0M\0\xa7\0\xa8\0\xa9\0\xac\0p\0\xad\0\xae\0\xd2\0\xe2\0\xd0\0\xd3\0\xd4\0;\0S\0\x86\0\xd5\0\xd6\0\xd7\0\xd8\0\xda\0\x8d\0\xdb\0]\0\xdc\0\xdd\0{\0\xde\0\xdf\0\xe0\0\x88\0_\0\xe1\0#\x01A\x01\xea\0\x9b\0\x05\x01a\x01\xfa\0\xff\xff\xfe\x009\x01=\x01_\x01M\0,\x01\\\x01X\x01\t\x01\x1d\x01L\0|\0!\x01\x12\x01K\0b\0\x13\x01U\x01V\x01W\x01x\x01Y\x01J\0\xe1\x005\x01y\x01I\0Z\x01H\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0b\0q\x01z\0[\x01@\0\x04\x01]\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0\x9c\0p\x01^\x01`\x01b\x01c\x011\x01O\0O\0O\0O\0O\0O\0d\x01\x9d\0e\x01N\0N\0N\0N\0N\0N\0\xb7\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\x18\x01p\x01\xff\xff\x19\x01f\x01g\x01i\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0j\x01k\x010\x01(\x01l\x01m\x01n\x01P\0P\0P\0P\0P\0P\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0o\x01\x1b\x01\xff\xff\xab\x01\x1f\x01\xaa\x01\x17\x01Q\0Q\0Q\0Q\0Q\0Q\0\\\0\xa8\x01?\x01P\0P\0P\0P\0P\0P\0\xf8\0\xa5\x01\xfc\0\xa2\x01;\x01E\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0\xff\xffQ\0Q\0Q\0Q\0Q\0Q\0W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0'\x01*\x01\xff\xff\xa3\x01\xa4\x01x\0\x02\x01X\0X\0X\0X\0X\0X\0\xa6\x017\x01\x99\0W\0W\0W\0W\0W\0W\0\x07\x01\xa7\x01\xa4\x01\xa9\x01\x10\x01\xa4\x01Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\x003\x01X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0a\0\x89\x01\xa4\x01\xac\x01\xb9\x01\x88\x01\xad\x01Z\0Z\0Z\0Z\0Z\0Z\0a\0\xb3\0\xae\x01Y\0Y\0Y\0Y\0Y\0Y\0.\x01\xaf\x01\xb0\x01\xb4\0\xa4\x01\xb8\x01\xb5\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0|\x01Z\0Z\0Z\0Z\0Z\0Z\0\xc0\x01\xb2\x01\x15\x01\xb3\x01a\0\xc1\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xa4\x01\xd8\x01\xff\xffa\0\xb8\x01\xd8\x01\xd1\x01a\0\xdf\x01a\0\xd0\x01\xe6\x01\x03\x02a\0\xdb\x01%\x01\xd8\x01\xd9\x01\x03\x02\xdc\x01\xd8\x01a\0\x03\x02\x03\x02\xd8\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xd8\x01\x03\x02~\x01\x03\x02\x03\x02\x03\x02\x03\x02c\0c\0c\0c\0c\0c\0a\0\x03\x02\xda\x01\xfa\x01\x03\x02\x03\x02a\0\x03\x02|\x01|\x01a\0\x03\x02\xdd\x01\x03\x02\xfd\x01\x03\x02\x03\x02\x03\x02a\0\xff\xff\x03\x02\xc4\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xeb\x01\x03\x02\xf1\x01\x03\x02\xff\x01\xf2\x01\x03\x02d\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xf6\x01\x81\x01\x81\x01\xe4\x01\x03\x02\xc4\x01\x03\x02e\0e\0e\0e\0e\0e\0\x03\x02\xc6\x01\x03\x02d\0d\0d\0d\0d\0d\0\x03\x02\x03\x02\x03\x02\xc4\x01\xea\x01\x86\x01a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0\0\0e\0e\0e\0e\0e\0e\0a\0a\0a\0a\0a\0a\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\0\0\0\0\xc9\x01\xb1\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xbc\0\0\0a\0a\0a\0a\0a\0a\0\xc9\x01\xe3\x01\0\0\xbf\0\xce\x01{\x01\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xc3\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc6\0\xff\xff\xf8\x01\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xca\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xcd\0\xff\xff\xff\xff\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe2\0\xc3\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\x01\0\0\0\0\xce\0\xdd\x01\xef\x01\xfe\x01\0\0\xcf\0\xf4\x01\0\0\xe1\0\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\0\0\0\xe8\0\0\0\xe1\x01\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xd9\0\xff\xff\0\0\0\0\0\0\0\0\xe1\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\0\0\0\0\0\0\0\0\xff\xff\0\0\0\0\xe6\0\0\0\xe6\0\0\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\0\0\xe4\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xba\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\0\0\0\0\0\0\0\0\0\0\xf1\0\0\0q\x01\0\0M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01\0\0p\x01\0\0\0\0\xc1\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0p\x01\0\0\0\0\0\0\xf0\0\xc8\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\xf6\0\0\0\0\0\xf0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xee\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0E\x01F\x01\0\0\0\0E\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E\x01\0\0N\x01\0\0\0\0\0\0\0\0h\x01I\x01\0\0\0\0\0\0\0\0O\x01\0\0G\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0H\x01\0\0\0\0\0\0\0\0\0\0\xf3\0\0\0\0\0\0\0\0\0\0\0\0\0P\x01w\x01\0\0w\x01\0\0Q\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\0\0J\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01S\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\x01\0\0\0\0s\x01\0\0\0\0T\x01\0\0\0\0u\x01\0\0u\x01\0\0K\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\0\0s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\xb9\x01\0\0\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xb8\x01\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\0\0\0\0D\x01\x80\x01\x80\x01\x80\x01\x7f\x01\0\0\x80\x01\0\0\0\0\xb8\x01\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\x80\x01\x7f\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\xbf\x01\x8e\x01\xbf\x01\0\0\0\0\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x92\x01\x93\x01\0\0\0\0\x92\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\x92\x01\0\0\x99\x01\0\0\0\0\0\0\0\0\xb1\x01\x96\x01\0\0\0\0\0\0\xc8\x01\x9c\x01\0\0\x94\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\x95\x01\0\0\0\0\0\0\0\0\0\0\0\0\x8b\x01\0\0\0\0\0\0\0\0\0\0\x9d\x01\0\0\0\0\0\0\0\0\x9e\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc8\x01\0\0\x97\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\xbb\x01\0\0\xa0\x01\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\x9f\x01\xc8\x01\0\0\xc8\x01\xc7\x01\0\0\xa1\x01\0\0\0\0\0\0\0\0\0\0\0\0\x98\x01\0\0\0\0\0\0\0\0\xbd\x01\0\0\xbd\x01\0\0\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\x91\x01\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\xc8\x01\xc7\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xd6\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd3\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", + cst_U_a_w_A_n_0_G_m_X_4_5_5_0_ = + "\0\0\xec\xff\xed\xff\x03\0\xef\xff\x10\0\xf2\xff\xf3\xff\xf4\xff\xf5\xff\0\0\x1f\0\xf9\xffU\0\x01\0\0\0\0\0\x01\0\0\0\x01\0\x02\0\xff\xff\0\0\0\0\x03\0\xfe\xff\x01\0\x04\0\xfd\xff\x0b\0\xfc\xff\x03\0\x01\0\x03\0\x02\0\x03\0\0\0\xfb\xff\x15\0a\0\n\0\x16\0\x14\0\x10\0\x16\0\f\0\b\0\xfa\xffw\0\x81\0\x8b\0\xa1\0\xab\0\xb5\0\xc1\0\xd1\0\xf0\xff\x0b\0&\0\xfc\xffA\0\xfe\xff\xff\xffn\0\xfc\xff\xa3\0\xfe\xff\xff\xff\xea\0\xf7\xff\xf8\xff0\x01\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xffG\x01~\x01\x95\x01\xf9\xff'\0\xfd\xff\xfe\xff&\0\xbb\x01\xd2\x01\xf8\x01\x0f\x02\xff\xff\xdc\0\xfd\xff\xff\xff\xf5\0'\x02m\x02\x0e\x01X\x02\xa4\x02\xbb\x02\xe1\x02\r\0\xfc\xff\xfd\xff\xfe\xff\xff\xff\x0e\0\xfd\xff\xfe\xff\xff\xff\x1e\0\xfd\xff\xfe\xff\xff\xff\x0f\0\xfd\xff\xfe\xff\xff\xff\x11\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\x13\0\xfc\xff\xfd\xff\xfe\xff\x0f\0\xff\xff\x10\0\xff\xff\b\x01\x05\0\xfd\xff\x17\0\xfe\xff\x14\0\xff\xff.\0\xfd\xff\xfe\xff*\x004\x005\0\xff\xff5\x000\0[\0\\\0\xff\xff\x1b\x01\xfa\xff\xfb\xff\x89\0h\0Y\0X\0j\0\xff\xff\x8f\0\x89\0\xb1\0\xfe\xff\xb7\0\xa8\0\xa6\0\xb7\0\x02\0\xfd\xff\xb1\0\xac\0\xbb\0\x04\0\xfc\xff5\x02\xfb\xff\xfc\xff\xfd\xffg\x01\xff\xff\xf8\x02\xfe\xff\x06\x03\x1e\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff(\x032\x03J\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff=\x03T\x03l\x03\xf9\xff\xfa\xff\xfb\xff\xf4\0x\x03\x8e\x03\xb3\0\xc2\0\x0f\0\xff\xff\xbe\0\xbc\0\xbb\0\xc1\0\xb7\0\xb3\0\xfe\xff\xbf\0\xc9\0\xc8\0\xc4\0\xcb\0\xc1\0\xbd\0\xfd\xff\x9d\x03_\x03\xae\x03\xc4\x03\xce\x03\xd8\x03\xe4\x03\xef\x03<\0\xfd\xff\xfe\xff\xff\xff\f\x04\xfc\xff\xfd\xffW\x04\xff\xff\x91\x04\xfc\xff\xfd\xff\xdd\x04\xff\xff\xe5\0\xfd\xff\xfe\xff\xff\xff\xe7\0\xfd\xff\xfe\xff\xff\xff\x02\0\xff\xff\x12\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\"\x01\xfd\xff\xfe\xff\xff\xff\0\0\xff\xff\x03\0\xfe\xff\xff\xff&\x01\xfc\xff\xfd\xff\xfe\xff\xff\xffx\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\xd0\0\xfd\xff\xfe\xff\xff\xff\xd3\0\xfd\xff\xfe\xff\xff\xff\xbd\0\xff\xff\x8f\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\r\x01\xfd\xff\xfe\xff\xff\xff_\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff2\x01\xfd\xff\xfe\xff\xff\xff\x1a\x01\xfd\xff\xfe\xff\xff\xff\xe9\0\xfd\xff\xfe\xff\xff\xff\xde\0\xfd\xff\xfe\xff\xff\xffO\x05\xed\xff\xee\xff\n\0\xf0\xff,\x01\xf3\xff\xf4\xff\xf5\xff\xf6\xff=\x01\x02\x04\xf9\xff-\x05\xd1\0\xe4\0\xd3\0\xe8\0\xe1\0\xdf\0\xf0\0\xff\xff\xeb\0\xea\0\b\x01\xfe\xff\x04\x01\x17\x01\xfd\xff6\x01\xfc\xff\x1f\x01\x1d\x01 \x01'\x011\x01-\x01\xfb\xff9\x01R\x01P\x01N\x01T\x01J\x01V\x01\xfa\xffn\x05\f\x04{\x05\x9b\x05\xa5\x05\xb1\x05\xbb\x05\xc5\x05\xf1\xff\xc7\x01M\x02\xfd\xff\xff\xff\x9a\x02\xde\x05\xd1\x05\x9b\x02\xef\x055\x06L\x06r\x06\x10\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x98\x06\xfc\xff\xfd\xff\xe3\x06\xff\xffU\x07\xf4\xff\xf5\xff\x0b\0\xf7\xffL\x02\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\x1f\x02\xf3\x053\x07d\x01s\x01h\x01\x85\x01v\x01\x9a\x01\xab\x01\xff\xff\xad\x01\xb0\x01\xbf\x01\xb9\x01\xbb\x01\xfd\x01\xe6\x01\xe6\x01\xea\x01\xf7\x01\xed\x01\xea\x01\t\x02\x13\x02\x13\x02\x0f\x02\x15\x02\x0b\x02\x07\x02\x8e\x06\x98\x06t\x07\xaa\x07\xb4\x07\xbe\x07\xc8\x07\xd2\x07\xf8\xffx\x02\xa7\x02\xfd\xff\xff\xff\xd8\x02R\x07\xdc\x07\xec\x02\xf4\x07:\bQ\bw\bL\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x9d\b\xfc\xff\xfd\xff\xe8\b\xff\xff\x87\x02x\x02\xfd\xffd\x02\xfe\xff\xb6\x02\xff\xff\x0b\x02\xff\xff\xcc\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff.\x02\xff\xff\xb2\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x17\0\xff\xff\xb7\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\xbb\x02\xfd\xff\xfe\xff\xff\xffy\x02\xfd\xff\xfe\xff\xff\xff\xb8\x02\xfc\xff\xfd\xff\xfe\xff\x13\0\xff\xff\x8c\x01\x92\x01\xff\xff\x96\x01\x97\x01\x9a\x01\xa8\x01\xaa\x01\xab\x01\xac\x01\xad\x01\xb5\x01\xb8\x01\xb9\x01\xbb\x01\xbf\x01\xc1\x01\xc3\x01\xc4\x01\xc5\x01\xc8\x01\xcb\x01\xdf\x01\xe1\x01\xe4\x01\xf9\x01\xfb\x01\x02\x02\x04\x02\x0b\x02\f\x02\r\x02\0\0", + cst_9_A_A_F_T_a_a_h_m_q_u_y_4_ = + "\x01\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\x009\0<\0\0\0<\0\0\0\0\0A\0\0\0A\0\0\0\0\0F\0\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0T\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0^\0\0\0\0\0a\0\xff\xff\xff\xffa\0\xff\xff\xff\xff\xff\xff\xff\xffh\0\0\0\0\0\0\0\0\0m\0\0\0\0\0\0\0q\0\0\0\0\0\0\0u\0\0\0\0\0\0\0y\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\x8a\0\0\0\x8e\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x9a\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xb2\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xbb\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc2\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc9\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xeb\0\0\0\0\0\0\0\xef\0\0\0\0\0\xff\xff\0\0\xf4\0\0\0\0\0\xff\xff\0\0\xf9\0\0\0\0\0\0\0\xfd\0\0\0\0\0\0\0\xff\xff\0\0\x03\x01\0\0\0\0\0\0\0\0\b\x01\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\x11\x01\0\0\0\0\0\0\0\0\x16\x01\0\0\0\0\0\0\0\0\0\0\x1c\x01\0\0\0\0\0\0 \x01\0\0\0\0\0\0\xff\xff\0\0&\x01\0\0\0\0\0\0\0\0+\x01\0\0\0\0\0\0/\x01\0\0\0\0\0\0\0\x004\x01\0\0\0\0\0\x008\x01\0\0\0\0\0\0<\x01\0\0\0\0\0\0@\x01\0\0\0\0\0\0C\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0y\x01}\x01\0\0\0\0\x80\x01\xff\xff\xff\xff\x80\x01\xff\xff\xff\xff\xff\xff\xff\xff\x87\x01\0\0\0\0\0\0\0\0\x8c\x01\0\0\0\0\xff\xff\0\0\x90\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xc1\x01\xc5\x01\0\0\0\0\xc8\x01\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcf\x01\0\0\0\0\0\0\0\0\xd4\x01\0\0\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xdc\x01\0\0\xff\xff\0\0\xe2\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xe9\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xf0\x01\0\0\0\0\0\0\0\0\xf5\x01\0\0\0\0\0\0\xf9\x01\0\0\0\0\0\0\xfc\x01\0\0\0\0\0\0\xff\xff\0\0\x02\x02\x04\x02\0\0\x05\x02\x06\x02\x07\x02\b\x02\t\x02\n\x02\x0b\x02\f\x02\r\x02\x0e\x02\x0f\x02\x10\x02\x11\x02\x12\x02\x13\x02\x14\x02\x15\x02\x16\x02\x17\x02\x18\x02\x19\x02\x1a\x02\x1b\x02\x1c\x02\x1d\x02\x1e\x02\x1f\x02 \x02!\x02\x03\x02", + cst$104 = + "\xff\xff\xff\xff\xff\xff\x11\0\xff\xff\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x13\0\x13\0\x13\0\x13\0\x13\0\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\t\0\xff\xff\t\0\xff\xff\xff\xff\x0e\0\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x04\0\x04\0\x04\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\0\0\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\x03\0\x05\0\x05\0\x05\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x03\0\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\0\xff\xff\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x12\0\x12\0\x12\0\x12\0\x12\0\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\xff\xff\b\0\xff\xff\b\0\xff\xff\xff\xff\r\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\x06\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff", + cst_E_9_E_E_s_f_k_f_o_R_U_0_0_ = + "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\xff\xff\x03\0\0\0\x86\0\xff\xff\x03\0\xff\xff\x86\0E\x01\x92\x019\0\xff\xffE\x01\x92\x01\xff\xff\xff\xff\xff\xff\xff\xff}\0\x8a\0\xff\xff\0\0\xff\xff\0\0\x03\0\xa9\0\x86\0\xae\0\xff\xff\0\0\n\x01E\x01\x92\x01\f\x01\0\0\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x05\0s\0\0\0}\0\x81\0\x05\0\xec\x01\x88\0\xff\x01&\0\xff\xff\n\0\x88\0f\0:\0\0\0k\0f\0\xff\xff\x0b\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1d\0&\0\0\0o\0\xd0\0\xe9\0\xff\0\f\x01\x0f\0\x11\0<\0\x0b\0\n\0\0\0\x14\0\x18\0\x1f\0 \0\"\0\x16\0\x1a\0\0\0\x0e\0\x1b\0!\0\x12\0\x17\0\0\0\x10\0\x13\0#\0(\0$\0&\0\0\0)\0*\0+\0,\0-\0.\0:\0R\0\x0b\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0'\0?\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0U\0\x8c\0<\0\r\0\x8f\0\x90\0\x91\x000\0\x93\x000\0\x94\0'\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x001\x001\x001\x001\x001\x001\x001\x001\x001\x001\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0A\0'\0\x95\0\x96\0\x9c\0?\0\x9d\x003\0\x9e\x003\0\x9f\x002\x003\x003\x003\x003\x003\x003\x003\x003\x003\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\0\x9b\x002\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa1\0\xa2\0\x9b\0[\0A\0\0\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x009\0D\0f\0k\0s\0\x83\0\x85\0\x85\0}\0\x8a\0\x85\0\xa3\0^\0\xa5\0D\0\xa6\0\xa7\0\xa8\0\xab\0o\0\xac\0\xad\0\xce\0\xcb\0\xcf\0\xd2\0\xd3\0:\0R\0\x85\0\xd4\0\xd5\0\xd6\0\xd7\0\xd9\0\x8c\0\xda\0a\0\xdb\0\xdc\0w\0\xdd\0\xde\0\xdf\0\x85\0[\0\xcb\0\"\x01>\x01\xe9\0\x98\0\x01\x01P\x01\xf7\0<\0\xfb\x006\x01:\x01Q\x01D\0)\x01R\x01S\x01\x06\x01\x1a\x01D\0w\0\x1e\x01\x0f\x01D\0^\0\x0f\x01T\x01U\x01V\x01G\x01X\x01D\0\xcb\x002\x01G\x01D\0Y\x01D\0D\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0a\0L\x01w\0Z\x01?\0\x01\x01\\\x01G\0G\0G\0G\0G\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0\x98\0L\x01]\x01_\x01a\x01b\x01-\x01N\0N\0N\0N\0N\0N\0c\x01\x98\0d\x01G\0G\0G\0G\0G\0G\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\x14\x01L\x01A\0\x14\x01e\x01f\x01h\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0i\x01j\x01-\x01$\x01k\x01l\x01m\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0n\x01\x1a\x01y\x01\x9d\x01\x1e\x01\x9e\x01\x14\x01P\0P\0P\0P\0P\0P\0[\0\x9f\x01>\x01O\0O\0O\0O\0O\0O\0\xf7\0\xa0\x01\xfb\0\xa1\x01:\x01D\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0^\0P\0P\0P\0P\0P\0P\0V\0V\0V\0V\0V\0V\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0$\x01)\x01a\0\xa2\x01\xa3\x01w\0\x01\x01W\0W\0W\0W\0W\0W\0\xa5\x016\x01\x98\0V\0V\0V\0V\0V\0V\0\x06\x01\xa6\x01\xa7\x01\xa8\x01\x0f\x01\xa9\x01X\0X\0X\0X\0X\0X\0X\0X\0X\0X\x002\x01W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0_\0\x85\x01\xaa\x01\xab\x01\x9a\x01\x85\x01\xac\x01Y\0Y\0Y\0Y\0Y\0Y\0_\0\xb0\0\xad\x01X\0X\0X\0X\0X\0X\0-\x01\xae\x01\xaf\x01\xb0\0\xb0\x01\x9a\x01\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0z\x01Y\0Y\0Y\0Y\0Y\0Y\0\x94\x01\xb1\x01\x14\x01\xb2\x01b\0\x94\x01\xb3\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xd8\x01\xc1\x01_\0\x9a\x01\xd8\x01\xcd\x01b\0\xde\x01_\0\xcd\x01\xe5\x01\x01\x02_\0\xda\x01$\x01\xd7\x01\xd7\x01\x02\x02\xda\x01\xd7\x01_\0\x04\x02\x05\x02\xd8\x01_\0\x06\x02_\0_\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0\xd7\x01\x07\x02z\x01\b\x02\t\x02\n\x02\x0b\x02`\0`\0`\0`\0`\0`\0b\0\f\x02\xd7\x01\xf7\x01\r\x02\x0e\x02b\0\x0f\x02}\x01\x80\x01b\0\x10\x02\xdc\x01\x11\x02\xfb\x01\x12\x02\x13\x02\x14\x02b\0y\x01\x15\x02\xc2\x01b\0\x16\x02b\0b\0`\0`\0`\0`\0`\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xe7\x01\x17\x02\xee\x01\x18\x02\xfb\x01\xee\x01\x19\x02c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xf3\x01}\x01\x80\x01\xe0\x01\x1a\x02\xc5\x01\x1b\x02d\0d\0d\0d\0d\0d\0\x1c\x02\xc2\x01\x1d\x02c\0c\0c\0c\0c\0c\0\x1e\x02\x1f\x02 \x02\xc8\x01\xe7\x01\x85\x01e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xff\xffd\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xff\xff\xff\xff\xc5\x01\xb0\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb9\0\xff\xffe\0e\0e\0e\0e\0e\0\xc8\x01\xe0\x01\xff\xff\xb9\0\xcd\x01z\x01\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xc0\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc0\0\xc1\x01\xf7\x01\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc7\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xc7\0}\x01\x80\x01\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xcc\0\xc2\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe7\x01\xff\xff\xff\xff\xc7\0\xdc\x01\xee\x01\xfb\x01\xff\xff\xc7\0\xf3\x01\xff\xff\xcc\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xe1\0\xff\xff\xe1\0\xff\xff\xe0\x01\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xcd\0\xc5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcc\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xff\xff\xff\xff\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xe4\0\xff\xff\xe4\0\xff\xff\xe3\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xff\xff\xe3\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xb9\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xed\0\xff\xffM\x01\xff\xffM\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01\xff\xffM\x01\xff\xff\xff\xff\xc0\0\xff\xff\xff\xff\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0M\x01\xff\xff\xff\xff\xff\xff\xed\0\xc7\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xf2\0\xff\xff\xff\xff\xf0\0\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xed\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0B\x01B\x01\xff\xff\xff\xffB\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xffO\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01p\x01\xff\xffp\x01\xff\xffB\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01\xff\xff\xff\xffB\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xff\xff\xffr\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xffs\x01\xff\xffs\x01\xff\xffB\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\xff\xffr\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01\xff\xff~\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\x81\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x9b\x01\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01~\x01\xff\xff\xff\xffB\x01~\x01\x81\x01~\x01~\x01\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\x81\x01\x81\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xb8\x01\x8a\x01\xb8\x01\xff\xff\xff\xff\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x01\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xba\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\x8f\x01\xc6\x01\xff\xff\xc6\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xbb\x01\xff\xff\xbb\x01\xff\xff\xba\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xc9\x01\xc9\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff", + cst$83 = "", + cst$101 = "\n", + cst$92 = " '", + cst_len = " len=", + cst_of_non_array_type$1 = " of non-array type ", + cst_out_of_bounds$1 = " out of bounds", + cst_start = " start=", + cst_10g = "%.10g", + cst_11g = "%.11g", + cst_12g = "%.12g", + cst_13g = "%.13g", + cst_14g = "%.14g", + cst_15g = "%.15g", + cst_16g = "%.16g", + cst_17g = "%.17g", + cst_1g = "%.1g", + cst_2g = "%.2g", + cst_3g = "%.3g", + cst_4g = "%.4g", + cst_5g = "%.5g", + cst_6g = "%.6g", + cst_7g = "%.7g", + cst_8g = "%.8g", + cst_9g = "%.9g", + cst_B = "%B", + cst_F = "%F", + cst_S = "%S", + cst_a = "%a", + cst_a$0 = "%a@?", + cst_d = "%d", + cst_s_i_s_s = "%s %i, %s:\n%s", + cst_s_s_s = "%s '%s%s'", + cst_s_s = "%s '%s'", + cst_s$0 = "%s@ ", + cst_of_non_object_type$1 = "' of non-object type ", + cst$99 = "()", + cst_a_0_2 = "(@,%a@;<0 -2>)", + cst$84 = "(@[", + cst_Some$2 = "(Some ", + cst$89 = ")", + cst$91 = "*/", + cst$95 = ",", + cst$93 = ", ", + cst_line = ", line", + cst$85 = ",@ ", + cst_Infinity$12 = "-Infinity", + cst_Infinity_value_not_allowed$12 = + "-Infinity value not allowed in standard JSON", + cst_0$8 = ".0", + cst$90 = "/*", + cst$94 = ":\n", + cst$100 = ": ", + cst$82 = ";@ ", + cst_s = "<%s>", + cst_2 = "<2>", + cst_hv2_s_a = "<@[%s: %a@]>", + cst_hov2 = "", + cst_hov = "", + cst_hv2 = "", + cst_hv = "", + cst$81 = "@ ", + cst$87 = "@,", + cst$88 = "@,]@]", + cst_0_2 = "@;<0 -2>", + cst_1_2 = "@;<1 -2>", + cst_1_0 = "@;<1 0>", + cst_2$0 = "@[<2>[", + cst_hov2$0 = "@[", + cst_hv2$0 = "@[", + cst_hv2_a = "@[%a@]", + cst_hv2_s_a$0 = "@[%s: %a@]", + cst$96 = "@]", + cst$86 = "@])", + cst_Blank_input_data$5 = "Blank input data", + cst_Can_t_convert_each_element$1 = + "Can't convert each element of non-array type ", + cst_Can_t_get_index$1 = "Can't get index ", + cst_Can_t_get_member$1 = "Can't get member '", + cst_Can_t_map_function_over_no$1 = + "Can't map function over non-array type ", + cst_Expected_but_found$49 = "Expected '\"' but found", + cst_Expected_but_found$54 = "Expected '(' but found", + cst_Expected_or_but_found$52 = "Expected '(' or '[' but found", + cst_Expected_but_found$51 = "Expected ')' but found", + cst_Expected_or_but_found$48 = "Expected ')' or '' but found", + cst_Expected_but_found$48 = "Expected ',' but found", + cst_Expected_or_but_found$50 = "Expected ',' or ')' but found", + cst_Expected_or_but_found$47 = "Expected ',' or ']' but found", + cst_Expected_or_but_found$51 = "Expected ',' or '}' but found", + cst_Expected_but_found$53 = "Expected ':' but found", + cst_Expected_or_but_found$45 = "Expected ':' or '>' but found", + cst_Expected_but_found$46 = "Expected '<' but found", + cst_Expected_or_but_found$46 = "Expected '<', '\"' or '[' but found", + cst_Expected_but_found$47 = "Expected '>' but found", + cst_Expected_but_found$50 = "Expected '[' but found", + cst_Expected_but_found$55 = "Expected ']' but found", + cst_Expected_or_but_found$49 = "Expected ']' or '' but found", + cst_Expected_null_but_found$2 = "Expected 'null' but found", + cst_Expected_true_or_false_but$2 = "Expected 'true' or 'false' but found", + cst_Expected_but_found$52 = "Expected '{' but found", + cst_Expected_a_number_but_foun$2 = + "Expected a number but found a string that doesn't even represent a number", + cst_Expected_an_int32_but_foun$2 = + "Expected an int32 but found a string that doesn't even represent an integer", + cst_Expected_an_int64_but_foun$2 = + "Expected an int64 but found a string that doesn't even represent an integer", + cst_Expected_an_integer_but_fo$2 = + "Expected an integer but found a string that doesn't even represent an integer", + cst_Expected_array_got$1 = "Expected array, got ", + cst_Expected_bool_or_null_got$1 = "Expected bool or null, got ", + cst_Expected_bool_got$1 = "Expected bool, got ", + cst_Expected_float_or_null_got$1 = "Expected float or null, got ", + cst_Expected_float_got$1 = "Expected float, got ", + cst_Expected_int_or_null_got$1 = "Expected int or null, got ", + cst_Expected_int_got$1 = "Expected int, got ", + cst_Expected_int32_but_found$2 = "Expected int32 but found", + cst_Expected_int64_but_found$2 = "Expected int64 but found", + cst_Expected_integer_but_found$2 = "Expected integer but found", + cst_Expected_number_but_found$2 = "Expected number but found", + cst_Expected_number_or_null_go$1 = "Expected number or null, got ", + cst_Expected_number_got$1 = "Expected number, got ", + cst_Expected_object_got$1 = "Expected object, got ", + cst_Expected_string_or_identif$11 = + "Expected string or identifier but found", + cst_Expected_string_or_null_go$1 = "Expected string or null, got ", + cst_Expected_string_got$1 = "Expected string, got ", + cst_Expected_two_objects_check$1 = "Expected two objects, check inputs", + cst_File = "File ", + cst_File_s_line = "File %s, line", + cst_Index$1 = "Index ", + cst_Infinity$11 = "Infinity", + cst_Infinity_value_not_allowed$11 = + "Infinity value not allowed in standard JSON", + cst_Int_overflow$7 = "Int overflow", + cst_Int32_overflow$5 = "Int32 overflow", + cst_Int8_overflow$2 = "Int8 overflow", + cst_Invalid_escape_sequence$2 = "Invalid escape sequence", + cst_Invalid_low_surrogate_for_$2 = + "Invalid low surrogate for code point beyond U+FFFF", + cst_Invalid_string_literal$8 = "Invalid string literal", + cst_Invalid_token$15 = "Invalid token", + cst_Junk_after_end_of_JSON_val$2 = "Junk after end of JSON value:", + cst_Line$2 = "Line", + cst_Missing_escape_sequence_re$2 = + "Missing escape sequence representing low surrogate for code point beyond U+FFFF", + cst_NaN$5 = "NaN", + cst_NaN_value_not_allowed_in_s$5 = + "NaN value not allowed in standard JSON", + cst_None$2 = "None", + cst_Unexpected_end_of_input$140 = "Unexpected end of input", + cst_Unterminated_comment$5 = "Unterminated comment", + cst_1_0_hov_a_1_2 = "[@;<1 0>@[%a@]@;<1 -2>]", + cst_1_0_hv_a_1_2 = "[@;<1 0>@[%a@]@;<1 -2>]", + cst$98 = "[]", + cst$102 = '\\"', + cst$103 = "\\\\", + cst_b$3 = "\\b", + cst_f$3 = "\\f", + cst_n$3 = "\\n", + cst_r$3 = "\\r", + cst_t$3 = "\\t", + cst_u00$3 = "\\u00", + cst_Assoc = "`Assoc (", + cst_Assoc_hov = "`Assoc (@[", + cst_Bool = "`Bool (", + cst_Bool_hov = "`Bool (@[", + cst_Float = "`Float (", + cst_Float_hov = "`Float (@[", + cst_Floatlit = "`Floatlit (", + cst_Floatlit_hov = "`Floatlit (@[", + cst_Int = "`Int (", + cst_Int_hov = "`Int (@[", + cst_Intlit = "`Intlit (", + cst_Intlit_hov = "`Intlit (@[", + cst_List = "`List (", + cst_List_hov = "`List (@[", + cst_Null$3 = "`Null", + cst_String = "`String (", + cst_String_hov = "`String (@[", + cst_Stringlit = "`Stringlit (", + cst_Stringlit_hov = "`Stringlit (@[", + cst_Tuple = "`Tuple (", + cst_Tuple_hov = "`Tuple (@[", + cst_Variant = "`Variant (", + cst_Variant_hov = "`Variant (@[", + cst_array$1 = "array", + cst_bool$1 = "bool", + cst_byte = "byte ", + cst_byte_i = "byte %i", + cst_bytes = "bytes ", + cst_bytes_i_i = "bytes %i-%i", + cst_false$3 = "false", + cst_float$1 = "float", + cst_int$1 = "int", + cst_intlit$1 = "intlit", + cst_lib_read_mll = "lib/read.mll", + cst_null$9 = "null", + cst_object$1 = "object", + cst_src = "src=", + cst_src_S_start_i_len_i = "src=%S start=%i len=%i\n%!", + cst_string$1 = "string", + cst_true$3 = "true", + cst_tuple$1 = "tuple", + cst_variant$1 = "variant", + cst_1_0_a_1_2 = "{@;<1 0>%a@;<1 -2>}", + cst$97 = "{}", + caml_bytes_get = runtime.caml_bytes_get, + caml_bytes_set = runtime.caml_bytes_set, + caml_check_bound = runtime.caml_check_bound, + caml_classify_float = runtime.caml_classify_float, + caml_create_bytes = runtime.caml_create_bytes, + caml_equal = runtime.caml_equal, + caml_float_of_string = runtime.caml_float_of_string, + caml_fresh_oo_id = runtime.caml_fresh_oo_id, + caml_get_public_method = runtime.caml_get_public_method, + caml_int64_of_string = runtime.caml_int64_of_string, + caml_int_of_string = runtime.caml_int_of_string, + caml_lex_engine = runtime.caml_lex_engine, + caml_make_vect = runtime.caml_make_vect, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_ml_string_length = runtime.caml_ml_string_length, + caml_string_equal = runtime.caml_string_equal, + caml_string_get = runtime.caml_string_get, + caml_string_notequal = runtime.caml_string_notequal, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + function caml_call4(f, a0, a1, a2, a3){ + return (f.l >= 0 ? f.l : f.l = f.length) == 4 + ? f(a0, a1, a2, a3) + : runtime.caml_call_gen(f, [a0, a1, a2, a3]); + } + function caml_call5(f, a0, a1, a2, a3, a4){ + return (f.l >= 0 ? f.l : f.l = f.length) == 5 + ? f(a0, a1, a2, a3, a4) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); + } + var + global_data = runtime.caml_get_global_data(), + cst$10 = cst$89, + cst$77 = cst$89, + cst$78 = cst$90, + cst$79 = cst$90, + cst$80 = cst$91, + stream$1 = [0, 1], + cst$70 = cst$95, + cst$71 = cst$97, + cst$72 = cst$95, + cst$73 = cst$95, + cst$74 = cst$98, + cst$75 = cst$99, + cst$76 = cst$95, + cst$69 = cst$101, + cst$68 = cst$101, + cst$67 = cst$101, + cst$66 = cst$101, + cst$65 = cst$101, + cst$64 = cst$83, + cst$63 = cst$83, + cst$62 = cst$83, + cst$61 = cst$83, + cst$60 = cst$102, + cst$59 = cst$103, + cst$55 = cst$89, + cst$56 = cst$90, + cst$57 = cst$90, + cst$58 = cst$91, + stream$0 = [0, 1], + cst$50 = cst$95, + cst$51 = cst$97, + cst$52 = cst$95, + cst$53 = cst$95, + cst$54 = cst$98, + cst$48 = cst$99, + cst$49 = cst$95, + cst$47 = cst$101, + cst$46 = cst$101, + cst$45 = cst$101, + cst$44 = cst$101, + cst$43 = cst$101, + cst$42 = cst$83, + cst$41 = cst$83, + cst$40 = cst$83, + cst$39 = cst$83, + cst$38 = cst$102, + cst$37 = cst$103, + cst$34 = cst$90, + cst$35 = cst$90, + cst$36 = cst$91, + stream = [0, 1], + cst$29 = cst$95, + cst$30 = cst$97, + cst$31 = cst$95, + cst$32 = cst$95, + cst$33 = cst$98, + cst$28 = cst$101, + cst$27 = cst$101, + cst$26 = cst$101, + cst$25 = cst$101, + cst$24 = cst$101, + cst$23 = cst$83, + cst$22 = cst$83, + cst$21 = cst$83, + cst$20 = cst$83, + cst$19 = cst$102, + cst$18 = cst$103, + cst$11 = cst$95, + cst$12 = cst$97, + cst$13 = cst$95, + cst$14 = cst$95, + cst$15 = cst$98, + cst$16 = cst$99, + cst$17 = cst$95, + cst$9 = cst$101, + cst$8 = cst$101, + cst$7 = cst$101, + cst$6 = cst$101, + cst$5 = cst$101, + cst$4 = cst$83, + cst$3 = cst$83, + cst$2 = cst$83, + cst$1 = cst$83, + cst$0 = cst$102, + cst = cst$103, + version = "2.0.2", + ocaml_lex_tables = [0, - caml_string_of_jsbytes - ("\0\0\xec\xff\xed\xff\x03\0\xef\xff\x10\0\xf2\xff\xf3\xff\xf4\xff\xf5\xff\0\0\x1f\0\xf9\xffU\0\x01\0\0\0\0\0\x01\0\0\0\x01\0\x02\0\xff\xff\0\0\0\0\x03\0\xfe\xff\x01\0\x04\0\xfd\xff\x0b\0\xfc\xff\x03\0\x01\0\x03\0\x02\0\x03\0\0\0\xfb\xff\x15\0a\0\n\0\x16\0\x14\0\x10\0\x16\0\f\0\b\0\xfa\xffw\0\x81\0\x8b\0\xa1\0\xab\0\xb5\0\xc1\0\xd1\0\xf0\xff\x0b\0&\0\xfc\xffA\0\xfe\xff\xff\xffn\0\xfc\xff\xa3\0\xfe\xff\xff\xff\xea\0\xf7\xff\xf8\xff0\x01\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xffG\x01~\x01\x95\x01\xf9\xff'\0\xfd\xff\xfe\xff&\0\xbb\x01\xd2\x01\xf8\x01\x0f\x02\xff\xff\xdc\0\xfd\xff\xff\xff\xf5\0'\x02m\x02\x0e\x01X\x02\xa4\x02\xbb\x02\xe1\x02\r\0\xfc\xff\xfd\xff\xfe\xff\xff\xff\x0e\0\xfd\xff\xfe\xff\xff\xff\x1e\0\xfd\xff\xfe\xff\xff\xff\x0f\0\xfd\xff\xfe\xff\xff\xff\x11\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\x13\0\xfc\xff\xfd\xff\xfe\xff\x0f\0\xff\xff\x10\0\xff\xff\b\x01\x05\0\xfd\xff\x17\0\xfe\xff\x14\0\xff\xff.\0\xfd\xff\xfe\xff*\x004\x005\0\xff\xff5\x000\0[\0\\\0\xff\xff\x1b\x01\xfa\xff\xfb\xff\x89\0h\0Y\0X\0j\0\xff\xff\x8f\0\x89\0\xb1\0\xfe\xff\xb7\0\xa8\0\xa6\0\xb7\0\x02\0\xfd\xff\xb1\0\xac\0\xbb\0\x04\0\xfc\xff5\x02\xfb\xff\xfc\xff\xfd\xffg\x01\xff\xff\xf8\x02\xfe\xff\x06\x03\x1e\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff(\x032\x03J\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff=\x03T\x03l\x03\xf9\xff\xfa\xff\xfb\xff\xf4\0x\x03\x8e\x03\xb3\0\xc2\0\x0f\0\xff\xff\xbe\0\xbc\0\xbb\0\xc1\0\xb7\0\xb3\0\xfe\xff\xbf\0\xc9\0\xc8\0\xc4\0\xcb\0\xc1\0\xbd\0\xfd\xff\x9d\x03_\x03\xae\x03\xc4\x03\xce\x03\xd8\x03\xe4\x03\xef\x03<\0\xfd\xff\xfe\xff\xff\xff\f\x04\xfc\xff\xfd\xffW\x04\xff\xff\x91\x04\xfc\xff\xfd\xff\xdd\x04\xff\xff\xe5\0\xfd\xff\xfe\xff\xff\xff\xe7\0\xfd\xff\xfe\xff\xff\xff\x02\0\xff\xff\x12\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\"\x01\xfd\xff\xfe\xff\xff\xff\0\0\xff\xff\x03\0\xfe\xff\xff\xff&\x01\xfc\xff\xfd\xff\xfe\xff\xff\xffx\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\xd0\0\xfd\xff\xfe\xff\xff\xff\xd3\0\xfd\xff\xfe\xff\xff\xff\xbd\0\xff\xff\x8f\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\r\x01\xfd\xff\xfe\xff\xff\xff_\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff2\x01\xfd\xff\xfe\xff\xff\xff\x1a\x01\xfd\xff\xfe\xff\xff\xff\xe9\0\xfd\xff\xfe\xff\xff\xff\xde\0\xfd\xff\xfe\xff\xff\xffO\x05\xed\xff\xee\xff\n\0\xf0\xff,\x01\xf3\xff\xf4\xff\xf5\xff\xf6\xff=\x01\x02\x04\xf9\xff-\x05\xd1\0\xe4\0\xd3\0\xe8\0\xe1\0\xdf\0\xf0\0\xff\xff\xeb\0\xea\0\b\x01\xfe\xff\x04\x01\x17\x01\xfd\xff6\x01\xfc\xff\x1f\x01\x1d\x01 \x01'\x011\x01-\x01\xfb\xff9\x01R\x01P\x01N\x01T\x01J\x01V\x01\xfa\xffn\x05\f\x04{\x05\x9b\x05\xa5\x05\xb1\x05\xbb\x05\xc5\x05\xf1\xff\xc7\x01M\x02\xfd\xff\xff\xff\x9a\x02\xde\x05\xd1\x05\x9b\x02\xef\x055\x06L\x06r\x06\x10\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x98\x06\xfc\xff\xfd\xff\xe3\x06\xff\xffU\x07\xf4\xff\xf5\xff\x0b\0\xf7\xffL\x02\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\x1f\x02\xf3\x053\x07d\x01s\x01h\x01\x85\x01v\x01\x9a\x01\xab\x01\xff\xff\xad\x01\xb0\x01\xbf\x01\xb9\x01\xbb\x01\xfd\x01\xe6\x01\xe6\x01\xea\x01\xf7\x01\xed\x01\xea\x01\t\x02\x13\x02\x13\x02\x0f\x02\x15\x02\x0b\x02\x07\x02\x8e\x06\x98\x06t\x07\xaa\x07\xb4\x07\xbe\x07\xc8\x07\xd2\x07\xf8\xffx\x02\xa7\x02\xfd\xff\xff\xff\xd8\x02R\x07\xdc\x07\xec\x02\xf4\x07:\bQ\bw\bL\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x9d\b\xfc\xff\xfd\xff\xe8\b\xff\xff\x87\x02x\x02\xfd\xffd\x02\xfe\xff\xb6\x02\xff\xff\x0b\x02\xff\xff\xcc\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff.\x02\xff\xff\xb2\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x17\0\xff\xff\xb7\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\xbb\x02\xfd\xff\xfe\xff\xff\xffy\x02\xfd\xff\xfe\xff\xff\xff\xb8\x02\xfc\xff\xfd\xff\xfe\xff\x13\0\xff\xff\x8c\x01\x92\x01\xff\xff\x96\x01\x97\x01\x9a\x01\xa8\x01\xaa\x01\xab\x01\xac\x01\xad\x01\xb5\x01\xb8\x01\xb9\x01\xbb\x01\xbf\x01\xc1\x01\xc3\x01\xc4\x01\xc5\x01\xc8\x01\xcb\x01\xdf\x01\xe1\x01\xe4\x01\xf9\x01\xfb\x01\x02\x02\x04\x02\x0b\x02\f\x02\r\x02\0\0"), - caml_string_of_jsbytes - ("\xff\xff\xff\xff\xff\xff\x11\0\xff\xff\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x13\0\x13\0\x13\0\x13\0\x13\0\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\t\0\xff\xff\t\0\xff\xff\xff\xff\x0e\0\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x04\0\x04\0\x04\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\0\0\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\x03\0\x05\0\x05\0\x05\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x03\0\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\0\xff\xff\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x12\0\x12\0\x12\0\x12\0\x12\0\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\xff\xff\b\0\xff\xff\b\0\xff\xff\xff\xff\r\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\x06\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"), - caml_string_of_jsbytes - ("\x01\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\x009\0<\0\0\0<\0\0\0\0\0A\0\0\0A\0\0\0\0\0F\0\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0T\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0^\0\0\0\0\0a\0\xff\xff\xff\xffa\0\xff\xff\xff\xff\xff\xff\xff\xffh\0\0\0\0\0\0\0\0\0m\0\0\0\0\0\0\0q\0\0\0\0\0\0\0u\0\0\0\0\0\0\0y\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\x8a\0\0\0\x8e\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x9a\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xb2\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xbb\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc2\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc9\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xeb\0\0\0\0\0\0\0\xef\0\0\0\0\0\xff\xff\0\0\xf4\0\0\0\0\0\xff\xff\0\0\xf9\0\0\0\0\0\0\0\xfd\0\0\0\0\0\0\0\xff\xff\0\0\x03\x01\0\0\0\0\0\0\0\0\b\x01\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\x11\x01\0\0\0\0\0\0\0\0\x16\x01\0\0\0\0\0\0\0\0\0\0\x1c\x01\0\0\0\0\0\0 \x01\0\0\0\0\0\0\xff\xff\0\0&\x01\0\0\0\0\0\0\0\0+\x01\0\0\0\0\0\0/\x01\0\0\0\0\0\0\0\x004\x01\0\0\0\0\0\x008\x01\0\0\0\0\0\0<\x01\0\0\0\0\0\0@\x01\0\0\0\0\0\0C\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0y\x01}\x01\0\0\0\0\x80\x01\xff\xff\xff\xff\x80\x01\xff\xff\xff\xff\xff\xff\xff\xff\x87\x01\0\0\0\0\0\0\0\0\x8c\x01\0\0\0\0\xff\xff\0\0\x90\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xc1\x01\xc5\x01\0\0\0\0\xc8\x01\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcf\x01\0\0\0\0\0\0\0\0\xd4\x01\0\0\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xdc\x01\0\0\xff\xff\0\0\xe2\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xe9\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xf0\x01\0\0\0\0\0\0\0\0\xf5\x01\0\0\0\0\0\0\xf9\x01\0\0\0\0\0\0\xfc\x01\0\0\0\0\0\0\xff\xff\0\0\x02\x02\x04\x02\0\0\x05\x02\x06\x02\x07\x02\b\x02\t\x02\n\x02\x0b\x02\f\x02\r\x02\x0e\x02\x0f\x02\x10\x02\x11\x02\x12\x02\x13\x02\x14\x02\x15\x02\x16\x02\x17\x02\x18\x02\x19\x02\x1a\x02\x1b\x02\x1c\x02\x1d\x02\x1e\x02\x1f\x02 \x02!\x02\x03\x02"), - caml_string_of_jsbytes - ("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\x04\0\0\0\x03\0\x03\0\x86\0\0\0\x03\0\0\0\x86\0E\x01\x92\x01\xff\xff\0\0E\x01\x92\x01\0\0\0\0\0\0\0\0\x7f\0\x8b\0\0\0\x03\0\0\0\f\0\x03\0\xaa\0\x86\0\xaf\0\0\0\x07\0\x0b\x01E\x01\x92\x01\x0e\x01\r\x001\0\x05\0\n\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\x008\0v\0\x06\0\x81\0\x82\x009\0\xed\x01\x89\0\0\x021\0\0\x000\0\x8a\0j\0>\0\x0e\0n\0i\0\0\x001\0\x0f\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1e\x000\0\b\0r\0\xd1\0\xec\0\0\x01\r\x01\x1d\0\x16\0\xff\xff0\x000\0\x11\0\x15\0\x19\0 \0!\0#\0\x17\0\x1b\0\x10\0\x1f\0\x1c\0\"\0\x13\0\x18\0\x12\0\x1a\0\x14\0$\0)\0%\x000\0\t\0*\0+\0,\0-\0.\0/\0=\0U\x000\0&\0'\0'\0'\0'\0'\0'\0'\0'\0'\x001\0C\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0V\0\x8f\0\xff\xff(\0\x90\0\x91\0\x92\x007\0\x94\x007\0\x95\x000\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0\xff\xff0\0\x96\0\x97\0\xa1\0B\0\x9e\x005\0\x9f\x005\0\xa0\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\0\xa5\x003\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa2\0\xa3\0\xa6\0]\0\xff\xff\x02\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xff\xffM\0g\0l\0t\0\x84\0\x86\0\x87\0\x80\0\x8b\0\x86\0\xa4\0]\0\xab\0M\0\xa7\0\xa8\0\xa9\0\xac\0p\0\xad\0\xae\0\xd2\0\xe2\0\xd0\0\xd3\0\xd4\0;\0S\0\x86\0\xd5\0\xd6\0\xd7\0\xd8\0\xda\0\x8d\0\xdb\0]\0\xdc\0\xdd\0{\0\xde\0\xdf\0\xe0\0\x88\0_\0\xe1\0#\x01A\x01\xea\0\x9b\0\x05\x01a\x01\xfa\0\xff\xff\xfe\x009\x01=\x01_\x01M\0,\x01\\\x01X\x01\t\x01\x1d\x01L\0|\0!\x01\x12\x01K\0b\0\x13\x01U\x01V\x01W\x01x\x01Y\x01J\0\xe1\x005\x01y\x01I\0Z\x01H\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0b\0q\x01z\0[\x01@\0\x04\x01]\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0\x9c\0p\x01^\x01`\x01b\x01c\x011\x01O\0O\0O\0O\0O\0O\0d\x01\x9d\0e\x01N\0N\0N\0N\0N\0N\0\xb7\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\x18\x01p\x01\xff\xff\x19\x01f\x01g\x01i\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0j\x01k\x010\x01(\x01l\x01m\x01n\x01P\0P\0P\0P\0P\0P\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0o\x01\x1b\x01\xff\xff\xab\x01\x1f\x01\xaa\x01\x17\x01Q\0Q\0Q\0Q\0Q\0Q\0\\\0\xa8\x01?\x01P\0P\0P\0P\0P\0P\0\xf8\0\xa5\x01\xfc\0\xa2\x01;\x01E\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0\xff\xffQ\0Q\0Q\0Q\0Q\0Q\0W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0'\x01*\x01\xff\xff\xa3\x01\xa4\x01x\0\x02\x01X\0X\0X\0X\0X\0X\0\xa6\x017\x01\x99\0W\0W\0W\0W\0W\0W\0\x07\x01\xa7\x01\xa4\x01\xa9\x01\x10\x01\xa4\x01Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\x003\x01X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0a\0\x89\x01\xa4\x01\xac\x01\xb9\x01\x88\x01\xad\x01Z\0Z\0Z\0Z\0Z\0Z\0a\0\xb3\0\xae\x01Y\0Y\0Y\0Y\0Y\0Y\0.\x01\xaf\x01\xb0\x01\xb4\0\xa4\x01\xb8\x01\xb5\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0|\x01Z\0Z\0Z\0Z\0Z\0Z\0\xc0\x01\xb2\x01\x15\x01\xb3\x01a\0\xc1\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xa4\x01\xd8\x01\xff\xffa\0\xb8\x01\xd8\x01\xd1\x01a\0\xdf\x01a\0\xd0\x01\xe6\x01\x03\x02a\0\xdb\x01%\x01\xd8\x01\xd9\x01\x03\x02\xdc\x01\xd8\x01a\0\x03\x02\x03\x02\xd8\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xd8\x01\x03\x02~\x01\x03\x02\x03\x02\x03\x02\x03\x02c\0c\0c\0c\0c\0c\0a\0\x03\x02\xda\x01\xfa\x01\x03\x02\x03\x02a\0\x03\x02|\x01|\x01a\0\x03\x02\xdd\x01\x03\x02\xfd\x01\x03\x02\x03\x02\x03\x02a\0\xff\xff\x03\x02\xc4\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xeb\x01\x03\x02\xf1\x01\x03\x02\xff\x01\xf2\x01\x03\x02d\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xf6\x01\x81\x01\x81\x01\xe4\x01\x03\x02\xc4\x01\x03\x02e\0e\0e\0e\0e\0e\0\x03\x02\xc6\x01\x03\x02d\0d\0d\0d\0d\0d\0\x03\x02\x03\x02\x03\x02\xc4\x01\xea\x01\x86\x01a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0\0\0e\0e\0e\0e\0e\0e\0a\0a\0a\0a\0a\0a\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\0\0\0\0\xc9\x01\xb1\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xbc\0\0\0a\0a\0a\0a\0a\0a\0\xc9\x01\xe3\x01\0\0\xbf\0\xce\x01{\x01\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xc3\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc6\0\xff\xff\xf8\x01\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xca\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xcd\0\xff\xff\xff\xff\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe2\0\xc3\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\x01\0\0\0\0\xce\0\xdd\x01\xef\x01\xfe\x01\0\0\xcf\0\xf4\x01\0\0\xe1\0\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\0\0\0\xe8\0\0\0\xe1\x01\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xd9\0\xff\xff\0\0\0\0\0\0\0\0\xe1\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\0\0\0\0\0\0\0\0\xff\xff\0\0\0\0\xe6\0\0\0\xe6\0\0\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\0\0\xe4\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xba\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\0\0\0\0\0\0\0\0\0\0\xf1\0\0\0q\x01\0\0M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01\0\0p\x01\0\0\0\0\xc1\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0p\x01\0\0\0\0\0\0\xf0\0\xc8\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\xf6\0\0\0\0\0\xf0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xee\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0E\x01F\x01\0\0\0\0E\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E\x01\0\0N\x01\0\0\0\0\0\0\0\0h\x01I\x01\0\0\0\0\0\0\0\0O\x01\0\0G\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0H\x01\0\0\0\0\0\0\0\0\0\0\xf3\0\0\0\0\0\0\0\0\0\0\0\0\0P\x01w\x01\0\0w\x01\0\0Q\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\0\0J\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01S\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\x01\0\0\0\0s\x01\0\0\0\0T\x01\0\0\0\0u\x01\0\0u\x01\0\0K\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\0\0s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\xb9\x01\0\0\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xb8\x01\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\0\0\0\0D\x01\x80\x01\x80\x01\x80\x01\x7f\x01\0\0\x80\x01\0\0\0\0\xb8\x01\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\x80\x01\x7f\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\xbf\x01\x8e\x01\xbf\x01\0\0\0\0\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x92\x01\x93\x01\0\0\0\0\x92\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\x92\x01\0\0\x99\x01\0\0\0\0\0\0\0\0\xb1\x01\x96\x01\0\0\0\0\0\0\xc8\x01\x9c\x01\0\0\x94\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\x95\x01\0\0\0\0\0\0\0\0\0\0\0\0\x8b\x01\0\0\0\0\0\0\0\0\0\0\x9d\x01\0\0\0\0\0\0\0\0\x9e\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc8\x01\0\0\x97\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\xbb\x01\0\0\xa0\x01\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\x9f\x01\xc8\x01\0\0\xc8\x01\xc7\x01\0\0\xa1\x01\0\0\0\0\0\0\0\0\0\0\0\0\x98\x01\0\0\0\0\0\0\0\0\xbd\x01\0\0\xbd\x01\0\0\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\x91\x01\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\xc8\x01\xc7\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xd6\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd3\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"), - caml_string_of_jsbytes - ("\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\xff\xff\x03\0\0\0\x86\0\xff\xff\x03\0\xff\xff\x86\0E\x01\x92\x019\0\xff\xffE\x01\x92\x01\xff\xff\xff\xff\xff\xff\xff\xff}\0\x8a\0\xff\xff\0\0\xff\xff\0\0\x03\0\xa9\0\x86\0\xae\0\xff\xff\0\0\n\x01E\x01\x92\x01\f\x01\0\0\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x05\0s\0\0\0}\0\x81\0\x05\0\xec\x01\x88\0\xff\x01&\0\xff\xff\n\0\x88\0f\0:\0\0\0k\0f\0\xff\xff\x0b\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1d\0&\0\0\0o\0\xd0\0\xe9\0\xff\0\f\x01\x0f\0\x11\0<\0\x0b\0\n\0\0\0\x14\0\x18\0\x1f\0 \0\"\0\x16\0\x1a\0\0\0\x0e\0\x1b\0!\0\x12\0\x17\0\0\0\x10\0\x13\0#\0(\0$\0&\0\0\0)\0*\0+\0,\0-\0.\0:\0R\0\x0b\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0'\0?\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0U\0\x8c\0<\0\r\0\x8f\0\x90\0\x91\x000\0\x93\x000\0\x94\0'\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x001\x001\x001\x001\x001\x001\x001\x001\x001\x001\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0A\0'\0\x95\0\x96\0\x9c\0?\0\x9d\x003\0\x9e\x003\0\x9f\x002\x003\x003\x003\x003\x003\x003\x003\x003\x003\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\0\x9b\x002\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa1\0\xa2\0\x9b\0[\0A\0\0\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x009\0D\0f\0k\0s\0\x83\0\x85\0\x85\0}\0\x8a\0\x85\0\xa3\0^\0\xa5\0D\0\xa6\0\xa7\0\xa8\0\xab\0o\0\xac\0\xad\0\xce\0\xcb\0\xcf\0\xd2\0\xd3\0:\0R\0\x85\0\xd4\0\xd5\0\xd6\0\xd7\0\xd9\0\x8c\0\xda\0a\0\xdb\0\xdc\0w\0\xdd\0\xde\0\xdf\0\x85\0[\0\xcb\0\"\x01>\x01\xe9\0\x98\0\x01\x01P\x01\xf7\0<\0\xfb\x006\x01:\x01Q\x01D\0)\x01R\x01S\x01\x06\x01\x1a\x01D\0w\0\x1e\x01\x0f\x01D\0^\0\x0f\x01T\x01U\x01V\x01G\x01X\x01D\0\xcb\x002\x01G\x01D\0Y\x01D\0D\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0a\0L\x01w\0Z\x01?\0\x01\x01\\\x01G\0G\0G\0G\0G\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0\x98\0L\x01]\x01_\x01a\x01b\x01-\x01N\0N\0N\0N\0N\0N\0c\x01\x98\0d\x01G\0G\0G\0G\0G\0G\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\x14\x01L\x01A\0\x14\x01e\x01f\x01h\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0i\x01j\x01-\x01$\x01k\x01l\x01m\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0n\x01\x1a\x01y\x01\x9d\x01\x1e\x01\x9e\x01\x14\x01P\0P\0P\0P\0P\0P\0[\0\x9f\x01>\x01O\0O\0O\0O\0O\0O\0\xf7\0\xa0\x01\xfb\0\xa1\x01:\x01D\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0^\0P\0P\0P\0P\0P\0P\0V\0V\0V\0V\0V\0V\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0$\x01)\x01a\0\xa2\x01\xa3\x01w\0\x01\x01W\0W\0W\0W\0W\0W\0\xa5\x016\x01\x98\0V\0V\0V\0V\0V\0V\0\x06\x01\xa6\x01\xa7\x01\xa8\x01\x0f\x01\xa9\x01X\0X\0X\0X\0X\0X\0X\0X\0X\0X\x002\x01W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0_\0\x85\x01\xaa\x01\xab\x01\x9a\x01\x85\x01\xac\x01Y\0Y\0Y\0Y\0Y\0Y\0_\0\xb0\0\xad\x01X\0X\0X\0X\0X\0X\0-\x01\xae\x01\xaf\x01\xb0\0\xb0\x01\x9a\x01\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0z\x01Y\0Y\0Y\0Y\0Y\0Y\0\x94\x01\xb1\x01\x14\x01\xb2\x01b\0\x94\x01\xb3\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xd8\x01\xc1\x01_\0\x9a\x01\xd8\x01\xcd\x01b\0\xde\x01_\0\xcd\x01\xe5\x01\x01\x02_\0\xda\x01$\x01\xd7\x01\xd7\x01\x02\x02\xda\x01\xd7\x01_\0\x04\x02\x05\x02\xd8\x01_\0\x06\x02_\0_\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0\xd7\x01\x07\x02z\x01\b\x02\t\x02\n\x02\x0b\x02`\0`\0`\0`\0`\0`\0b\0\f\x02\xd7\x01\xf7\x01\r\x02\x0e\x02b\0\x0f\x02}\x01\x80\x01b\0\x10\x02\xdc\x01\x11\x02\xfb\x01\x12\x02\x13\x02\x14\x02b\0y\x01\x15\x02\xc2\x01b\0\x16\x02b\0b\0`\0`\0`\0`\0`\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xe7\x01\x17\x02\xee\x01\x18\x02\xfb\x01\xee\x01\x19\x02c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xf3\x01}\x01\x80\x01\xe0\x01\x1a\x02\xc5\x01\x1b\x02d\0d\0d\0d\0d\0d\0\x1c\x02\xc2\x01\x1d\x02c\0c\0c\0c\0c\0c\0\x1e\x02\x1f\x02 \x02\xc8\x01\xe7\x01\x85\x01e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xff\xffd\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xff\xff\xff\xff\xc5\x01\xb0\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb9\0\xff\xffe\0e\0e\0e\0e\0e\0\xc8\x01\xe0\x01\xff\xff\xb9\0\xcd\x01z\x01\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xc0\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc0\0\xc1\x01\xf7\x01\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc7\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xc7\0}\x01\x80\x01\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xcc\0\xc2\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe7\x01\xff\xff\xff\xff\xc7\0\xdc\x01\xee\x01\xfb\x01\xff\xff\xc7\0\xf3\x01\xff\xff\xcc\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xe1\0\xff\xff\xe1\0\xff\xff\xe0\x01\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xcd\0\xc5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcc\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xff\xff\xff\xff\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xe4\0\xff\xff\xe4\0\xff\xff\xe3\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xff\xff\xe3\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xb9\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xed\0\xff\xffM\x01\xff\xffM\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01\xff\xffM\x01\xff\xff\xff\xff\xc0\0\xff\xff\xff\xff\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0M\x01\xff\xff\xff\xff\xff\xff\xed\0\xc7\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xf2\0\xff\xff\xff\xff\xf0\0\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xed\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0B\x01B\x01\xff\xff\xff\xffB\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xffO\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01p\x01\xff\xffp\x01\xff\xffB\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01\xff\xff\xff\xffB\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xff\xff\xffr\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xffs\x01\xff\xffs\x01\xff\xffB\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\xff\xffr\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01\xff\xff~\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\x81\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x9b\x01\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01~\x01\xff\xff\xff\xffB\x01~\x01\x81\x01~\x01~\x01\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\x81\x01\x81\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xb8\x01\x8a\x01\xb8\x01\xff\xff\xff\xff\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x01\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xba\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\x8f\x01\xc6\x01\xff\xff\xc6\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xbb\x01\xff\xff\xbb\x01\xff\xff\xba\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xc9\x01\xc9\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes("")], - cst_Yojson_Basic_Finally=caml_string_of_jsbytes("Yojson.Basic.Finally"), - cst_Yojson_Basic_Util_Type_err= - caml_string_of_jsbytes("Yojson.Basic.Util.Type_error"), - cst_Yojson_Basic_Util_Undefine= - caml_string_of_jsbytes("Yojson.Basic.Util.Undefined"), - cst_Yojson_Safe_Int_overflow= - caml_string_of_jsbytes("Yojson.Safe.Int_overflow"), - ocaml_lex_tables$0= + cst_U_a_w_A_n_0_G_m_X_4_5_5_0_, + cst$104, + cst_9_A_A_F_T_a_a_h_m_q_u_y_4_, + cst_E_E_E_1_8_v_9_1_0_j_n_i_1_, + cst_E_9_E_E_s_f_k_f_o_R_U_0_0_, + cst$83, + cst$83, + cst$83, + cst$83, + cst$83, + cst$83], + ocaml_lex_tables$0 = [0, - caml_string_of_jsbytes - ("\0\0\xec\xff\xed\xff\x03\0\xef\xff\x10\0\xf2\xff\xf3\xff\xf4\xff\xf5\xff\0\0\x1f\0\xf9\xffU\0\x01\0\0\0\0\0\x01\0\0\0\x01\0\x02\0\xff\xff\0\0\0\0\x03\0\xfe\xff\x01\0\x04\0\xfd\xff\x0b\0\xfc\xff\x03\0\x01\0\x03\0\x02\0\x03\0\0\0\xfb\xff\x15\0a\0\n\0\x16\0\x14\0\x10\0\x16\0\f\0\b\0\xfa\xffw\0\x81\0\x8b\0\xa1\0\xab\0\xb5\0\xc1\0\xd1\0\xf0\xff\x0b\0&\0\xfc\xffA\0\xfe\xff\xff\xffn\0\xfc\xff\xa3\0\xfe\xff\xff\xff\xea\0\xf7\xff\xf8\xff0\x01\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xffG\x01~\x01\x95\x01\xf9\xff'\0\xfd\xff\xfe\xff&\0\xbb\x01\xd2\x01\xf8\x01\x0f\x02\xff\xff\xdc\0\xfd\xff\xff\xff\xf5\0'\x02m\x02\x0e\x01X\x02\xa4\x02\xbb\x02\xe1\x02\r\0\xfc\xff\xfd\xff\xfe\xff\xff\xff\x0e\0\xfd\xff\xfe\xff\xff\xff\x1e\0\xfd\xff\xfe\xff\xff\xff\x0f\0\xfd\xff\xfe\xff\xff\xff\x11\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\x13\0\xfc\xff\xfd\xff\xfe\xff\x0f\0\xff\xff\x10\0\xff\xff\b\x01\x05\0\xfd\xff\x17\0\xfe\xff\x14\0\xff\xff.\0\xfd\xff\xfe\xff*\x004\x005\0\xff\xff5\x000\0[\0\\\0\xff\xff\x1b\x01\xfa\xff\xfb\xff\x89\0h\0Y\0X\0j\0\xff\xff\x8f\0\x89\0\xb1\0\xfe\xff\xb7\0\xa8\0\xa6\0\xb7\0\x02\0\xfd\xff\xb1\0\xac\0\xbb\0\x04\0\xfc\xff5\x02\xfb\xff\xfc\xff\xfd\xffg\x01\xff\xff\xf8\x02\xfe\xff\x06\x03\x1e\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff(\x032\x03J\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff=\x03T\x03l\x03\xf9\xff\xfa\xff\xfb\xff\xf4\0x\x03\x8e\x03\xb3\0\xc2\0\x0f\0\xff\xff\xbe\0\xbc\0\xbb\0\xc1\0\xb7\0\xb3\0\xfe\xff\xbf\0\xc9\0\xc8\0\xc4\0\xcb\0\xc1\0\xbd\0\xfd\xff\x9d\x03_\x03\xae\x03\xc4\x03\xce\x03\xd8\x03\xe4\x03\xef\x03<\0\xfd\xff\xfe\xff\xff\xff\f\x04\xfc\xff\xfd\xffW\x04\xff\xff\x91\x04\xfc\xff\xfd\xff\xdd\x04\xff\xff\xe5\0\xfd\xff\xfe\xff\xff\xff\xe7\0\xfd\xff\xfe\xff\xff\xff\x02\0\xff\xff\x12\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\"\x01\xfd\xff\xfe\xff\xff\xff\0\0\xff\xff\x03\0\xfe\xff\xff\xff&\x01\xfc\xff\xfd\xff\xfe\xff\xff\xffx\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\xd0\0\xfd\xff\xfe\xff\xff\xff\xd3\0\xfd\xff\xfe\xff\xff\xff\xbd\0\xff\xff\x8f\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\r\x01\xfd\xff\xfe\xff\xff\xff_\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff2\x01\xfd\xff\xfe\xff\xff\xff\x1a\x01\xfd\xff\xfe\xff\xff\xff\xe9\0\xfd\xff\xfe\xff\xff\xff\xde\0\xfd\xff\xfe\xff\xff\xffO\x05\xed\xff\xee\xff\n\0\xf0\xff,\x01\xf3\xff\xf4\xff\xf5\xff\xf6\xff=\x01\x02\x04\xf9\xff-\x05\xd1\0\xe4\0\xd3\0\xe8\0\xe1\0\xdf\0\xf0\0\xff\xff\xeb\0\xea\0\b\x01\xfe\xff\x04\x01\x17\x01\xfd\xff6\x01\xfc\xff\x1f\x01\x1d\x01 \x01'\x011\x01-\x01\xfb\xff9\x01R\x01P\x01N\x01T\x01J\x01V\x01\xfa\xffn\x05\f\x04{\x05\x9b\x05\xa5\x05\xb1\x05\xbb\x05\xc5\x05\xf1\xff\xc7\x01M\x02\xfd\xff\xff\xff\x9a\x02\xde\x05\xd1\x05\x9b\x02\xef\x055\x06L\x06r\x06\x10\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x98\x06\xfc\xff\xfd\xff\xe3\x06\xff\xffU\x07\xf4\xff\xf5\xff\x0b\0\xf7\xffL\x02\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\x1f\x02\xf3\x053\x07d\x01s\x01h\x01\x85\x01v\x01\x9a\x01\xab\x01\xff\xff\xad\x01\xb0\x01\xbf\x01\xb9\x01\xbb\x01\xfd\x01\xe6\x01\xe6\x01\xea\x01\xf7\x01\xed\x01\xea\x01\t\x02\x13\x02\x13\x02\x0f\x02\x15\x02\x0b\x02\x07\x02\x8e\x06\x98\x06t\x07\xaa\x07\xb4\x07\xbe\x07\xc8\x07\xd2\x07\xf8\xffx\x02\xa7\x02\xfd\xff\xff\xff\xd8\x02R\x07\xdc\x07\xec\x02\xf4\x07:\bQ\bw\bL\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x9d\b\xfc\xff\xfd\xff\xe8\b\xff\xff\x87\x02x\x02\xfd\xffd\x02\xfe\xff\xb6\x02\xff\xff\x0b\x02\xff\xff\xcc\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff.\x02\xff\xff\xb2\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x17\0\xff\xff\xb7\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\xbb\x02\xfd\xff\xfe\xff\xff\xffy\x02\xfd\xff\xfe\xff\xff\xff\xb8\x02\xfc\xff\xfd\xff\xfe\xff\x13\0\xff\xff\x8c\x01\x92\x01\xff\xff\x96\x01\x97\x01\x9a\x01\xa8\x01\xaa\x01\xab\x01\xac\x01\xad\x01\xb5\x01\xb8\x01\xb9\x01\xbb\x01\xbf\x01\xc1\x01\xc3\x01\xc4\x01\xc5\x01\xc8\x01\xcb\x01\xdf\x01\xe1\x01\xe4\x01\xf9\x01\xfb\x01\x02\x02\x04\x02\x0b\x02\f\x02\r\x02\0\0"), - caml_string_of_jsbytes - ("\xff\xff\xff\xff\xff\xff\x11\0\xff\xff\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x13\0\x13\0\x13\0\x13\0\x13\0\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\t\0\xff\xff\t\0\xff\xff\xff\xff\x0e\0\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x04\0\x04\0\x04\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\0\0\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\x03\0\x05\0\x05\0\x05\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x03\0\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\0\xff\xff\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x12\0\x12\0\x12\0\x12\0\x12\0\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\xff\xff\b\0\xff\xff\b\0\xff\xff\xff\xff\r\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\x06\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"), - caml_string_of_jsbytes - ("\x01\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\x009\0<\0\0\0<\0\0\0\0\0A\0\0\0A\0\0\0\0\0F\0\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0T\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0^\0\0\0\0\0a\0\xff\xff\xff\xffa\0\xff\xff\xff\xff\xff\xff\xff\xffh\0\0\0\0\0\0\0\0\0m\0\0\0\0\0\0\0q\0\0\0\0\0\0\0u\0\0\0\0\0\0\0y\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\x8a\0\0\0\x8e\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x9a\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xb2\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xbb\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc2\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc9\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xeb\0\0\0\0\0\0\0\xef\0\0\0\0\0\xff\xff\0\0\xf4\0\0\0\0\0\xff\xff\0\0\xf9\0\0\0\0\0\0\0\xfd\0\0\0\0\0\0\0\xff\xff\0\0\x03\x01\0\0\0\0\0\0\0\0\b\x01\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\x11\x01\0\0\0\0\0\0\0\0\x16\x01\0\0\0\0\0\0\0\0\0\0\x1c\x01\0\0\0\0\0\0 \x01\0\0\0\0\0\0\xff\xff\0\0&\x01\0\0\0\0\0\0\0\0+\x01\0\0\0\0\0\0/\x01\0\0\0\0\0\0\0\x004\x01\0\0\0\0\0\x008\x01\0\0\0\0\0\0<\x01\0\0\0\0\0\0@\x01\0\0\0\0\0\0C\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0y\x01}\x01\0\0\0\0\x80\x01\xff\xff\xff\xff\x80\x01\xff\xff\xff\xff\xff\xff\xff\xff\x87\x01\0\0\0\0\0\0\0\0\x8c\x01\0\0\0\0\xff\xff\0\0\x90\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xc1\x01\xc5\x01\0\0\0\0\xc8\x01\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcf\x01\0\0\0\0\0\0\0\0\xd4\x01\0\0\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xdc\x01\0\0\xff\xff\0\0\xe2\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xe9\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xf0\x01\0\0\0\0\0\0\0\0\xf5\x01\0\0\0\0\0\0\xf9\x01\0\0\0\0\0\0\xfc\x01\0\0\0\0\0\0\xff\xff\0\0\x02\x02\x04\x02\0\0\x05\x02\x06\x02\x07\x02\b\x02\t\x02\n\x02\x0b\x02\f\x02\r\x02\x0e\x02\x0f\x02\x10\x02\x11\x02\x12\x02\x13\x02\x14\x02\x15\x02\x16\x02\x17\x02\x18\x02\x19\x02\x1a\x02\x1b\x02\x1c\x02\x1d\x02\x1e\x02\x1f\x02 \x02!\x02\x03\x02"), - caml_string_of_jsbytes - ("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\x04\0\0\0\x03\0\x03\0\x86\0\0\0\x03\0\0\0\x86\0E\x01\x92\x01\xff\xff\0\0E\x01\x92\x01\0\0\0\0\0\0\0\0\x7f\0\x8b\0\0\0\x03\0\0\0\f\0\x03\0\xaa\0\x86\0\xaf\0\0\0\x07\0\x0b\x01E\x01\x92\x01\x0e\x01\r\x001\0\x05\0\n\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\x008\0v\0\x06\0\x81\0\x82\x009\0\xed\x01\x89\0\0\x021\0\0\x000\0\x8a\0j\0>\0\x0e\0n\0i\0\0\x001\0\x0f\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1e\x000\0\b\0r\0\xd1\0\xec\0\0\x01\r\x01\x1d\0\x16\0\xff\xff0\x000\0\x11\0\x15\0\x19\0 \0!\0#\0\x17\0\x1b\0\x10\0\x1f\0\x1c\0\"\0\x13\0\x18\0\x12\0\x1a\0\x14\0$\0)\0%\x000\0\t\0*\0+\0,\0-\0.\0/\0=\0U\x000\0&\0'\0'\0'\0'\0'\0'\0'\0'\0'\x001\0C\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0V\0\x8f\0\xff\xff(\0\x90\0\x91\0\x92\x007\0\x94\x007\0\x95\x000\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0\xff\xff0\0\x96\0\x97\0\xa1\0B\0\x9e\x005\0\x9f\x005\0\xa0\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\0\xa5\x003\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa2\0\xa3\0\xa6\0]\0\xff\xff\x02\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xff\xffM\0g\0l\0t\0\x84\0\x86\0\x87\0\x80\0\x8b\0\x86\0\xa4\0]\0\xab\0M\0\xa7\0\xa8\0\xa9\0\xac\0p\0\xad\0\xae\0\xd2\0\xe2\0\xd0\0\xd3\0\xd4\0;\0S\0\x86\0\xd5\0\xd6\0\xd7\0\xd8\0\xda\0\x8d\0\xdb\0]\0\xdc\0\xdd\0{\0\xde\0\xdf\0\xe0\0\x88\0_\0\xe1\0#\x01A\x01\xea\0\x9b\0\x05\x01a\x01\xfa\0\xff\xff\xfe\x009\x01=\x01_\x01M\0,\x01\\\x01X\x01\t\x01\x1d\x01L\0|\0!\x01\x12\x01K\0b\0\x13\x01U\x01V\x01W\x01x\x01Y\x01J\0\xe1\x005\x01y\x01I\0Z\x01H\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0b\0q\x01z\0[\x01@\0\x04\x01]\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0\x9c\0p\x01^\x01`\x01b\x01c\x011\x01O\0O\0O\0O\0O\0O\0d\x01\x9d\0e\x01N\0N\0N\0N\0N\0N\0\xb7\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\x18\x01p\x01\xff\xff\x19\x01f\x01g\x01i\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0j\x01k\x010\x01(\x01l\x01m\x01n\x01P\0P\0P\0P\0P\0P\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0o\x01\x1b\x01\xff\xff\xab\x01\x1f\x01\xaa\x01\x17\x01Q\0Q\0Q\0Q\0Q\0Q\0\\\0\xa8\x01?\x01P\0P\0P\0P\0P\0P\0\xf8\0\xa5\x01\xfc\0\xa2\x01;\x01E\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0\xff\xffQ\0Q\0Q\0Q\0Q\0Q\0W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0'\x01*\x01\xff\xff\xa3\x01\xa4\x01x\0\x02\x01X\0X\0X\0X\0X\0X\0\xa6\x017\x01\x99\0W\0W\0W\0W\0W\0W\0\x07\x01\xa7\x01\xa4\x01\xa9\x01\x10\x01\xa4\x01Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\x003\x01X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0a\0\x89\x01\xa4\x01\xac\x01\xb9\x01\x88\x01\xad\x01Z\0Z\0Z\0Z\0Z\0Z\0a\0\xb3\0\xae\x01Y\0Y\0Y\0Y\0Y\0Y\0.\x01\xaf\x01\xb0\x01\xb4\0\xa4\x01\xb8\x01\xb5\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0|\x01Z\0Z\0Z\0Z\0Z\0Z\0\xc0\x01\xb2\x01\x15\x01\xb3\x01a\0\xc1\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xa4\x01\xd8\x01\xff\xffa\0\xb8\x01\xd8\x01\xd1\x01a\0\xdf\x01a\0\xd0\x01\xe6\x01\x03\x02a\0\xdb\x01%\x01\xd8\x01\xd9\x01\x03\x02\xdc\x01\xd8\x01a\0\x03\x02\x03\x02\xd8\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xd8\x01\x03\x02~\x01\x03\x02\x03\x02\x03\x02\x03\x02c\0c\0c\0c\0c\0c\0a\0\x03\x02\xda\x01\xfa\x01\x03\x02\x03\x02a\0\x03\x02|\x01|\x01a\0\x03\x02\xdd\x01\x03\x02\xfd\x01\x03\x02\x03\x02\x03\x02a\0\xff\xff\x03\x02\xc4\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xeb\x01\x03\x02\xf1\x01\x03\x02\xff\x01\xf2\x01\x03\x02d\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xf6\x01\x81\x01\x81\x01\xe4\x01\x03\x02\xc4\x01\x03\x02e\0e\0e\0e\0e\0e\0\x03\x02\xc6\x01\x03\x02d\0d\0d\0d\0d\0d\0\x03\x02\x03\x02\x03\x02\xc4\x01\xea\x01\x86\x01a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0\0\0e\0e\0e\0e\0e\0e\0a\0a\0a\0a\0a\0a\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\0\0\0\0\xc9\x01\xb1\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xbc\0\0\0a\0a\0a\0a\0a\0a\0\xc9\x01\xe3\x01\0\0\xbf\0\xce\x01{\x01\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xc3\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc6\0\xff\xff\xf8\x01\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xca\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xcd\0\xff\xff\xff\xff\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe2\0\xc3\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\x01\0\0\0\0\xce\0\xdd\x01\xef\x01\xfe\x01\0\0\xcf\0\xf4\x01\0\0\xe1\0\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\0\0\0\xe8\0\0\0\xe1\x01\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xd9\0\xff\xff\0\0\0\0\0\0\0\0\xe1\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\0\0\0\0\0\0\0\0\xff\xff\0\0\0\0\xe6\0\0\0\xe6\0\0\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\0\0\xe4\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xba\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\0\0\0\0\0\0\0\0\0\0\xf1\0\0\0q\x01\0\0M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01\0\0p\x01\0\0\0\0\xc1\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0p\x01\0\0\0\0\0\0\xf0\0\xc8\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\xf6\0\0\0\0\0\xf0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xee\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0E\x01F\x01\0\0\0\0E\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E\x01\0\0N\x01\0\0\0\0\0\0\0\0h\x01I\x01\0\0\0\0\0\0\0\0O\x01\0\0G\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0H\x01\0\0\0\0\0\0\0\0\0\0\xf3\0\0\0\0\0\0\0\0\0\0\0\0\0P\x01w\x01\0\0w\x01\0\0Q\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\0\0J\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01S\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\x01\0\0\0\0s\x01\0\0\0\0T\x01\0\0\0\0u\x01\0\0u\x01\0\0K\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\0\0s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\xb9\x01\0\0\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xb8\x01\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\0\0\0\0D\x01\x80\x01\x80\x01\x80\x01\x7f\x01\0\0\x80\x01\0\0\0\0\xb8\x01\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\x80\x01\x7f\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\xbf\x01\x8e\x01\xbf\x01\0\0\0\0\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x92\x01\x93\x01\0\0\0\0\x92\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\x92\x01\0\0\x99\x01\0\0\0\0\0\0\0\0\xb1\x01\x96\x01\0\0\0\0\0\0\xc8\x01\x9c\x01\0\0\x94\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\x95\x01\0\0\0\0\0\0\0\0\0\0\0\0\x8b\x01\0\0\0\0\0\0\0\0\0\0\x9d\x01\0\0\0\0\0\0\0\0\x9e\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc8\x01\0\0\x97\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\xbb\x01\0\0\xa0\x01\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\x9f\x01\xc8\x01\0\0\xc8\x01\xc7\x01\0\0\xa1\x01\0\0\0\0\0\0\0\0\0\0\0\0\x98\x01\0\0\0\0\0\0\0\0\xbd\x01\0\0\xbd\x01\0\0\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\x91\x01\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\xc8\x01\xc7\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xd6\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd3\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"), - caml_string_of_jsbytes - ("\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\xff\xff\x03\0\0\0\x86\0\xff\xff\x03\0\xff\xff\x86\0E\x01\x92\x019\0\xff\xffE\x01\x92\x01\xff\xff\xff\xff\xff\xff\xff\xff}\0\x8a\0\xff\xff\0\0\xff\xff\0\0\x03\0\xa9\0\x86\0\xae\0\xff\xff\0\0\n\x01E\x01\x92\x01\f\x01\0\0\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x05\0s\0\0\0}\0\x81\0\x05\0\xec\x01\x88\0\xff\x01&\0\xff\xff\n\0\x88\0f\0:\0\0\0k\0f\0\xff\xff\x0b\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1d\0&\0\0\0o\0\xd0\0\xe9\0\xff\0\f\x01\x0f\0\x11\0<\0\x0b\0\n\0\0\0\x14\0\x18\0\x1f\0 \0\"\0\x16\0\x1a\0\0\0\x0e\0\x1b\0!\0\x12\0\x17\0\0\0\x10\0\x13\0#\0(\0$\0&\0\0\0)\0*\0+\0,\0-\0.\0:\0R\0\x0b\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0'\0?\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0U\0\x8c\0<\0\r\0\x8f\0\x90\0\x91\x000\0\x93\x000\0\x94\0'\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x001\x001\x001\x001\x001\x001\x001\x001\x001\x001\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0A\0'\0\x95\0\x96\0\x9c\0?\0\x9d\x003\0\x9e\x003\0\x9f\x002\x003\x003\x003\x003\x003\x003\x003\x003\x003\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\0\x9b\x002\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa1\0\xa2\0\x9b\0[\0A\0\0\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x009\0D\0f\0k\0s\0\x83\0\x85\0\x85\0}\0\x8a\0\x85\0\xa3\0^\0\xa5\0D\0\xa6\0\xa7\0\xa8\0\xab\0o\0\xac\0\xad\0\xce\0\xcb\0\xcf\0\xd2\0\xd3\0:\0R\0\x85\0\xd4\0\xd5\0\xd6\0\xd7\0\xd9\0\x8c\0\xda\0a\0\xdb\0\xdc\0w\0\xdd\0\xde\0\xdf\0\x85\0[\0\xcb\0\"\x01>\x01\xe9\0\x98\0\x01\x01P\x01\xf7\0<\0\xfb\x006\x01:\x01Q\x01D\0)\x01R\x01S\x01\x06\x01\x1a\x01D\0w\0\x1e\x01\x0f\x01D\0^\0\x0f\x01T\x01U\x01V\x01G\x01X\x01D\0\xcb\x002\x01G\x01D\0Y\x01D\0D\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0a\0L\x01w\0Z\x01?\0\x01\x01\\\x01G\0G\0G\0G\0G\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0\x98\0L\x01]\x01_\x01a\x01b\x01-\x01N\0N\0N\0N\0N\0N\0c\x01\x98\0d\x01G\0G\0G\0G\0G\0G\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\x14\x01L\x01A\0\x14\x01e\x01f\x01h\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0i\x01j\x01-\x01$\x01k\x01l\x01m\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0n\x01\x1a\x01y\x01\x9d\x01\x1e\x01\x9e\x01\x14\x01P\0P\0P\0P\0P\0P\0[\0\x9f\x01>\x01O\0O\0O\0O\0O\0O\0\xf7\0\xa0\x01\xfb\0\xa1\x01:\x01D\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0^\0P\0P\0P\0P\0P\0P\0V\0V\0V\0V\0V\0V\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0$\x01)\x01a\0\xa2\x01\xa3\x01w\0\x01\x01W\0W\0W\0W\0W\0W\0\xa5\x016\x01\x98\0V\0V\0V\0V\0V\0V\0\x06\x01\xa6\x01\xa7\x01\xa8\x01\x0f\x01\xa9\x01X\0X\0X\0X\0X\0X\0X\0X\0X\0X\x002\x01W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0_\0\x85\x01\xaa\x01\xab\x01\x9a\x01\x85\x01\xac\x01Y\0Y\0Y\0Y\0Y\0Y\0_\0\xb0\0\xad\x01X\0X\0X\0X\0X\0X\0-\x01\xae\x01\xaf\x01\xb0\0\xb0\x01\x9a\x01\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0z\x01Y\0Y\0Y\0Y\0Y\0Y\0\x94\x01\xb1\x01\x14\x01\xb2\x01b\0\x94\x01\xb3\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xd8\x01\xc1\x01_\0\x9a\x01\xd8\x01\xcd\x01b\0\xde\x01_\0\xcd\x01\xe5\x01\x01\x02_\0\xda\x01$\x01\xd7\x01\xd7\x01\x02\x02\xda\x01\xd7\x01_\0\x04\x02\x05\x02\xd8\x01_\0\x06\x02_\0_\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0\xd7\x01\x07\x02z\x01\b\x02\t\x02\n\x02\x0b\x02`\0`\0`\0`\0`\0`\0b\0\f\x02\xd7\x01\xf7\x01\r\x02\x0e\x02b\0\x0f\x02}\x01\x80\x01b\0\x10\x02\xdc\x01\x11\x02\xfb\x01\x12\x02\x13\x02\x14\x02b\0y\x01\x15\x02\xc2\x01b\0\x16\x02b\0b\0`\0`\0`\0`\0`\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xe7\x01\x17\x02\xee\x01\x18\x02\xfb\x01\xee\x01\x19\x02c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xf3\x01}\x01\x80\x01\xe0\x01\x1a\x02\xc5\x01\x1b\x02d\0d\0d\0d\0d\0d\0\x1c\x02\xc2\x01\x1d\x02c\0c\0c\0c\0c\0c\0\x1e\x02\x1f\x02 \x02\xc8\x01\xe7\x01\x85\x01e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xff\xffd\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xff\xff\xff\xff\xc5\x01\xb0\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb9\0\xff\xffe\0e\0e\0e\0e\0e\0\xc8\x01\xe0\x01\xff\xff\xb9\0\xcd\x01z\x01\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xc0\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc0\0\xc1\x01\xf7\x01\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc7\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xc7\0}\x01\x80\x01\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xcc\0\xc2\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe7\x01\xff\xff\xff\xff\xc7\0\xdc\x01\xee\x01\xfb\x01\xff\xff\xc7\0\xf3\x01\xff\xff\xcc\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xe1\0\xff\xff\xe1\0\xff\xff\xe0\x01\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xcd\0\xc5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcc\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xff\xff\xff\xff\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xe4\0\xff\xff\xe4\0\xff\xff\xe3\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xff\xff\xe3\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xb9\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xed\0\xff\xffM\x01\xff\xffM\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01\xff\xffM\x01\xff\xff\xff\xff\xc0\0\xff\xff\xff\xff\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0M\x01\xff\xff\xff\xff\xff\xff\xed\0\xc7\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xf2\0\xff\xff\xff\xff\xf0\0\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xed\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0B\x01B\x01\xff\xff\xff\xffB\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xffO\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01p\x01\xff\xffp\x01\xff\xffB\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01\xff\xff\xff\xffB\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xff\xff\xffr\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xffs\x01\xff\xffs\x01\xff\xffB\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\xff\xffr\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01\xff\xff~\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\x81\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x9b\x01\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01~\x01\xff\xff\xff\xffB\x01~\x01\x81\x01~\x01~\x01\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\x81\x01\x81\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xb8\x01\x8a\x01\xb8\x01\xff\xff\xff\xff\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x01\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xba\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\x8f\x01\xc6\x01\xff\xff\xc6\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xbb\x01\xff\xff\xbb\x01\xff\xff\xba\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xc9\x01\xc9\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes("")], - cst_Yojson_Safe_Finally=caml_string_of_jsbytes("Yojson.Safe.Finally"), - cst_Yojson_Safe_Util_Type_erro= - caml_string_of_jsbytes("Yojson.Safe.Util.Type_error"), - cst_Yojson_Safe_Util_Undefined= - caml_string_of_jsbytes("Yojson.Safe.Util.Undefined"), - cst_Yojson_Raw_Int_overflow= - caml_string_of_jsbytes("Yojson.Raw.Int_overflow"), - ocaml_lex_tables$1= + cst_U_a_w_A_n_0_G_m_X_4_5_5_0_, + cst$104, + cst_9_A_A_F_T_a_a_h_m_q_u_y_4_, + cst_E_E_E_1_8_v_9_1_0_j_n_i_1_, + cst_E_9_E_E_s_f_k_f_o_R_U_0_0_, + cst$83, + cst$83, + cst$83, + cst$83, + cst$83, + cst$83], + ocaml_lex_tables$1 = [0, - caml_string_of_jsbytes - ("\0\0\xec\xff\xed\xff\x03\0\xef\xff\x10\0\xf2\xff\xf3\xff\xf4\xff\xf5\xff\0\0\x1f\0\xf9\xffU\0\x01\0\0\0\0\0\x01\0\0\0\x01\0\x02\0\xff\xff\0\0\0\0\x03\0\xfe\xff\x01\0\x04\0\xfd\xff\x0b\0\xfc\xff\x03\0\x01\0\x03\0\x02\0\x03\0\0\0\xfb\xff\x15\0a\0\n\0\x16\0\x14\0\x10\0\x16\0\f\0\b\0\xfa\xffw\0\x81\0\x8b\0\xa1\0\xab\0\xb5\0\xc1\0\xd1\0\xf0\xff\x0b\0&\0\xfc\xffA\0\xfe\xff\xff\xffn\0\xfc\xff\xa3\0\xfe\xff\xff\xff\xea\0\xf7\xff\xf8\xff0\x01\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xffG\x01~\x01\x95\x01\xf9\xff'\0\xfd\xff\xfe\xff&\0\xbb\x01\xd2\x01\xf8\x01\x0f\x02\xff\xff\xdc\0\xfd\xff\xff\xff\xf5\0'\x02m\x02\x0e\x01X\x02\xa4\x02\xbb\x02\xe1\x02\r\0\xfc\xff\xfd\xff\xfe\xff\xff\xff\x0e\0\xfd\xff\xfe\xff\xff\xff\x1e\0\xfd\xff\xfe\xff\xff\xff\x0f\0\xfd\xff\xfe\xff\xff\xff\x11\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\x13\0\xfc\xff\xfd\xff\xfe\xff\x0f\0\xff\xff\x10\0\xff\xff\b\x01\x05\0\xfd\xff\x17\0\xfe\xff\x14\0\xff\xff.\0\xfd\xff\xfe\xff*\x004\x005\0\xff\xff5\x000\0[\0\\\0\xff\xff\x1b\x01\xfa\xff\xfb\xff\x89\0h\0Y\0X\0j\0\xff\xff\x8f\0\x89\0\xb1\0\xfe\xff\xb7\0\xa8\0\xa6\0\xb7\0\x02\0\xfd\xff\xb1\0\xac\0\xbb\0\x04\0\xfc\xff5\x02\xfb\xff\xfc\xff\xfd\xffg\x01\xff\xff\xf8\x02\xfe\xff\x06\x03\x1e\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff(\x032\x03J\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff=\x03T\x03l\x03\xf9\xff\xfa\xff\xfb\xff\xf4\0x\x03\x8e\x03\xb3\0\xc2\0\x0f\0\xff\xff\xbe\0\xbc\0\xbb\0\xc1\0\xb7\0\xb3\0\xfe\xff\xbf\0\xc9\0\xc8\0\xc4\0\xcb\0\xc1\0\xbd\0\xfd\xff\x9d\x03_\x03\xae\x03\xc4\x03\xce\x03\xd8\x03\xe4\x03\xef\x03<\0\xfd\xff\xfe\xff\xff\xff\f\x04\xfc\xff\xfd\xffW\x04\xff\xff\x91\x04\xfc\xff\xfd\xff\xdd\x04\xff\xff\xe5\0\xfd\xff\xfe\xff\xff\xff\xe7\0\xfd\xff\xfe\xff\xff\xff\x02\0\xff\xff\x12\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\"\x01\xfd\xff\xfe\xff\xff\xff\0\0\xff\xff\x03\0\xfe\xff\xff\xff&\x01\xfc\xff\xfd\xff\xfe\xff\xff\xffx\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\xd0\0\xfd\xff\xfe\xff\xff\xff\xd3\0\xfd\xff\xfe\xff\xff\xff\xbd\0\xff\xff\x8f\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\r\x01\xfd\xff\xfe\xff\xff\xff_\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff2\x01\xfd\xff\xfe\xff\xff\xff\x1a\x01\xfd\xff\xfe\xff\xff\xff\xe9\0\xfd\xff\xfe\xff\xff\xff\xde\0\xfd\xff\xfe\xff\xff\xffO\x05\xed\xff\xee\xff\n\0\xf0\xff,\x01\xf3\xff\xf4\xff\xf5\xff\xf6\xff=\x01\x02\x04\xf9\xff-\x05\xd1\0\xe4\0\xd3\0\xe8\0\xe1\0\xdf\0\xf0\0\xff\xff\xeb\0\xea\0\b\x01\xfe\xff\x04\x01\x17\x01\xfd\xff6\x01\xfc\xff\x1f\x01\x1d\x01 \x01'\x011\x01-\x01\xfb\xff9\x01R\x01P\x01N\x01T\x01J\x01V\x01\xfa\xffn\x05\f\x04{\x05\x9b\x05\xa5\x05\xb1\x05\xbb\x05\xc5\x05\xf1\xff\xc7\x01M\x02\xfd\xff\xff\xff\x9a\x02\xde\x05\xd1\x05\x9b\x02\xef\x055\x06L\x06r\x06\x10\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x98\x06\xfc\xff\xfd\xff\xe3\x06\xff\xffU\x07\xf4\xff\xf5\xff\x0b\0\xf7\xffL\x02\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\x1f\x02\xf3\x053\x07d\x01s\x01h\x01\x85\x01v\x01\x9a\x01\xab\x01\xff\xff\xad\x01\xb0\x01\xbf\x01\xb9\x01\xbb\x01\xfd\x01\xe6\x01\xe6\x01\xea\x01\xf7\x01\xed\x01\xea\x01\t\x02\x13\x02\x13\x02\x0f\x02\x15\x02\x0b\x02\x07\x02\x8e\x06\x98\x06t\x07\xaa\x07\xb4\x07\xbe\x07\xc8\x07\xd2\x07\xf8\xffx\x02\xa7\x02\xfd\xff\xff\xff\xd8\x02R\x07\xdc\x07\xec\x02\xf4\x07:\bQ\bw\bL\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x9d\b\xfc\xff\xfd\xff\xe8\b\xff\xff\x87\x02x\x02\xfd\xffd\x02\xfe\xff\xb6\x02\xff\xff\x0b\x02\xff\xff\xcc\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff.\x02\xff\xff\xb2\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x17\0\xff\xff\xb7\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\xbb\x02\xfd\xff\xfe\xff\xff\xffy\x02\xfd\xff\xfe\xff\xff\xff\xb8\x02\xfc\xff\xfd\xff\xfe\xff\x13\0\xff\xff\x8c\x01\x92\x01\xff\xff\x96\x01\x97\x01\x9a\x01\xa8\x01\xaa\x01\xab\x01\xac\x01\xad\x01\xb5\x01\xb8\x01\xb9\x01\xbb\x01\xbf\x01\xc1\x01\xc3\x01\xc4\x01\xc5\x01\xc8\x01\xcb\x01\xdf\x01\xe1\x01\xe4\x01\xf9\x01\xfb\x01\x02\x02\x04\x02\x0b\x02\f\x02\r\x02\0\0"), - caml_string_of_jsbytes - ("\xff\xff\xff\xff\xff\xff\x11\0\xff\xff\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x13\0\x13\0\x13\0\x13\0\x13\0\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\t\0\xff\xff\t\0\xff\xff\xff\xff\x0e\0\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x04\0\x04\0\x04\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\0\0\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\x03\0\x05\0\x05\0\x05\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x03\0\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\0\xff\xff\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x12\0\x12\0\x12\0\x12\0\x12\0\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\xff\xff\b\0\xff\xff\b\0\xff\xff\xff\xff\r\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\x06\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"), - caml_string_of_jsbytes - ("\x01\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\x009\0<\0\0\0<\0\0\0\0\0A\0\0\0A\0\0\0\0\0F\0\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0T\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0^\0\0\0\0\0a\0\xff\xff\xff\xffa\0\xff\xff\xff\xff\xff\xff\xff\xffh\0\0\0\0\0\0\0\0\0m\0\0\0\0\0\0\0q\0\0\0\0\0\0\0u\0\0\0\0\0\0\0y\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\x8a\0\0\0\x8e\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x9a\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xb2\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xbb\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc2\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc9\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xeb\0\0\0\0\0\0\0\xef\0\0\0\0\0\xff\xff\0\0\xf4\0\0\0\0\0\xff\xff\0\0\xf9\0\0\0\0\0\0\0\xfd\0\0\0\0\0\0\0\xff\xff\0\0\x03\x01\0\0\0\0\0\0\0\0\b\x01\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\x11\x01\0\0\0\0\0\0\0\0\x16\x01\0\0\0\0\0\0\0\0\0\0\x1c\x01\0\0\0\0\0\0 \x01\0\0\0\0\0\0\xff\xff\0\0&\x01\0\0\0\0\0\0\0\0+\x01\0\0\0\0\0\0/\x01\0\0\0\0\0\0\0\x004\x01\0\0\0\0\0\x008\x01\0\0\0\0\0\0<\x01\0\0\0\0\0\0@\x01\0\0\0\0\0\0C\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0y\x01}\x01\0\0\0\0\x80\x01\xff\xff\xff\xff\x80\x01\xff\xff\xff\xff\xff\xff\xff\xff\x87\x01\0\0\0\0\0\0\0\0\x8c\x01\0\0\0\0\xff\xff\0\0\x90\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xc1\x01\xc5\x01\0\0\0\0\xc8\x01\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcf\x01\0\0\0\0\0\0\0\0\xd4\x01\0\0\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xdc\x01\0\0\xff\xff\0\0\xe2\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xe9\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xf0\x01\0\0\0\0\0\0\0\0\xf5\x01\0\0\0\0\0\0\xf9\x01\0\0\0\0\0\0\xfc\x01\0\0\0\0\0\0\xff\xff\0\0\x02\x02\x04\x02\0\0\x05\x02\x06\x02\x07\x02\b\x02\t\x02\n\x02\x0b\x02\f\x02\r\x02\x0e\x02\x0f\x02\x10\x02\x11\x02\x12\x02\x13\x02\x14\x02\x15\x02\x16\x02\x17\x02\x18\x02\x19\x02\x1a\x02\x1b\x02\x1c\x02\x1d\x02\x1e\x02\x1f\x02 \x02!\x02\x03\x02"), - caml_string_of_jsbytes - ("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\x04\0\0\0\x03\0\x03\0\x86\0\0\0\x03\0\0\0\x86\0E\x01\x92\x01\xff\xff\0\0E\x01\x92\x01\0\0\0\0\0\0\0\0\x7f\0\x8b\0\0\0\x03\0\0\0\f\0\x03\0\xaa\0\x86\0\xaf\0\0\0\x07\0\x0b\x01E\x01\x92\x01\x0e\x01\r\x001\0\x05\0\n\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\x008\0v\0\x06\0\x81\0\x82\x009\0\xed\x01\x89\0\0\x021\0\0\x000\0\x8a\0j\0>\0\x0e\0n\0i\0\0\x001\0\x0f\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1e\x000\0\b\0r\0\xd1\0\xec\0\0\x01\r\x01\x1d\0\x16\0\xff\xff0\x000\0\x11\0\x15\0\x19\0 \0!\0#\0\x17\0\x1b\0\x10\0\x1f\0\x1c\0\"\0\x13\0\x18\0\x12\0\x1a\0\x14\0$\0)\0%\x000\0\t\0*\0+\0,\0-\0.\0/\0=\0U\x000\0&\0'\0'\0'\0'\0'\0'\0'\0'\0'\x001\0C\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0V\0\x8f\0\xff\xff(\0\x90\0\x91\0\x92\x007\0\x94\x007\0\x95\x000\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0\xff\xff0\0\x96\0\x97\0\xa1\0B\0\x9e\x005\0\x9f\x005\0\xa0\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\0\xa5\x003\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa2\0\xa3\0\xa6\0]\0\xff\xff\x02\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xff\xffM\0g\0l\0t\0\x84\0\x86\0\x87\0\x80\0\x8b\0\x86\0\xa4\0]\0\xab\0M\0\xa7\0\xa8\0\xa9\0\xac\0p\0\xad\0\xae\0\xd2\0\xe2\0\xd0\0\xd3\0\xd4\0;\0S\0\x86\0\xd5\0\xd6\0\xd7\0\xd8\0\xda\0\x8d\0\xdb\0]\0\xdc\0\xdd\0{\0\xde\0\xdf\0\xe0\0\x88\0_\0\xe1\0#\x01A\x01\xea\0\x9b\0\x05\x01a\x01\xfa\0\xff\xff\xfe\x009\x01=\x01_\x01M\0,\x01\\\x01X\x01\t\x01\x1d\x01L\0|\0!\x01\x12\x01K\0b\0\x13\x01U\x01V\x01W\x01x\x01Y\x01J\0\xe1\x005\x01y\x01I\0Z\x01H\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0b\0q\x01z\0[\x01@\0\x04\x01]\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0\x9c\0p\x01^\x01`\x01b\x01c\x011\x01O\0O\0O\0O\0O\0O\0d\x01\x9d\0e\x01N\0N\0N\0N\0N\0N\0\xb7\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\x18\x01p\x01\xff\xff\x19\x01f\x01g\x01i\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0j\x01k\x010\x01(\x01l\x01m\x01n\x01P\0P\0P\0P\0P\0P\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0o\x01\x1b\x01\xff\xff\xab\x01\x1f\x01\xaa\x01\x17\x01Q\0Q\0Q\0Q\0Q\0Q\0\\\0\xa8\x01?\x01P\0P\0P\0P\0P\0P\0\xf8\0\xa5\x01\xfc\0\xa2\x01;\x01E\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0\xff\xffQ\0Q\0Q\0Q\0Q\0Q\0W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0'\x01*\x01\xff\xff\xa3\x01\xa4\x01x\0\x02\x01X\0X\0X\0X\0X\0X\0\xa6\x017\x01\x99\0W\0W\0W\0W\0W\0W\0\x07\x01\xa7\x01\xa4\x01\xa9\x01\x10\x01\xa4\x01Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\x003\x01X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0a\0\x89\x01\xa4\x01\xac\x01\xb9\x01\x88\x01\xad\x01Z\0Z\0Z\0Z\0Z\0Z\0a\0\xb3\0\xae\x01Y\0Y\0Y\0Y\0Y\0Y\0.\x01\xaf\x01\xb0\x01\xb4\0\xa4\x01\xb8\x01\xb5\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0|\x01Z\0Z\0Z\0Z\0Z\0Z\0\xc0\x01\xb2\x01\x15\x01\xb3\x01a\0\xc1\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xa4\x01\xd8\x01\xff\xffa\0\xb8\x01\xd8\x01\xd1\x01a\0\xdf\x01a\0\xd0\x01\xe6\x01\x03\x02a\0\xdb\x01%\x01\xd8\x01\xd9\x01\x03\x02\xdc\x01\xd8\x01a\0\x03\x02\x03\x02\xd8\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xd8\x01\x03\x02~\x01\x03\x02\x03\x02\x03\x02\x03\x02c\0c\0c\0c\0c\0c\0a\0\x03\x02\xda\x01\xfa\x01\x03\x02\x03\x02a\0\x03\x02|\x01|\x01a\0\x03\x02\xdd\x01\x03\x02\xfd\x01\x03\x02\x03\x02\x03\x02a\0\xff\xff\x03\x02\xc4\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xeb\x01\x03\x02\xf1\x01\x03\x02\xff\x01\xf2\x01\x03\x02d\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xf6\x01\x81\x01\x81\x01\xe4\x01\x03\x02\xc4\x01\x03\x02e\0e\0e\0e\0e\0e\0\x03\x02\xc6\x01\x03\x02d\0d\0d\0d\0d\0d\0\x03\x02\x03\x02\x03\x02\xc4\x01\xea\x01\x86\x01a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0\0\0e\0e\0e\0e\0e\0e\0a\0a\0a\0a\0a\0a\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\0\0\0\0\xc9\x01\xb1\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xbc\0\0\0a\0a\0a\0a\0a\0a\0\xc9\x01\xe3\x01\0\0\xbf\0\xce\x01{\x01\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xc3\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc6\0\xff\xff\xf8\x01\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xca\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xcd\0\xff\xff\xff\xff\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe2\0\xc3\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\x01\0\0\0\0\xce\0\xdd\x01\xef\x01\xfe\x01\0\0\xcf\0\xf4\x01\0\0\xe1\0\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\0\0\0\xe8\0\0\0\xe1\x01\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xd9\0\xff\xff\0\0\0\0\0\0\0\0\xe1\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\0\0\0\0\0\0\0\0\xff\xff\0\0\0\0\xe6\0\0\0\xe6\0\0\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\0\0\xe4\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xba\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\0\0\0\0\0\0\0\0\0\0\xf1\0\0\0q\x01\0\0M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01\0\0p\x01\0\0\0\0\xc1\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0p\x01\0\0\0\0\0\0\xf0\0\xc8\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\xf6\0\0\0\0\0\xf0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xee\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0E\x01F\x01\0\0\0\0E\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E\x01\0\0N\x01\0\0\0\0\0\0\0\0h\x01I\x01\0\0\0\0\0\0\0\0O\x01\0\0G\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0H\x01\0\0\0\0\0\0\0\0\0\0\xf3\0\0\0\0\0\0\0\0\0\0\0\0\0P\x01w\x01\0\0w\x01\0\0Q\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\0\0J\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01S\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\x01\0\0\0\0s\x01\0\0\0\0T\x01\0\0\0\0u\x01\0\0u\x01\0\0K\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\0\0s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\xb9\x01\0\0\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xb8\x01\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\0\0\0\0D\x01\x80\x01\x80\x01\x80\x01\x7f\x01\0\0\x80\x01\0\0\0\0\xb8\x01\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\x80\x01\x7f\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\xbf\x01\x8e\x01\xbf\x01\0\0\0\0\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x92\x01\x93\x01\0\0\0\0\x92\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\x92\x01\0\0\x99\x01\0\0\0\0\0\0\0\0\xb1\x01\x96\x01\0\0\0\0\0\0\xc8\x01\x9c\x01\0\0\x94\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\x95\x01\0\0\0\0\0\0\0\0\0\0\0\0\x8b\x01\0\0\0\0\0\0\0\0\0\0\x9d\x01\0\0\0\0\0\0\0\0\x9e\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc8\x01\0\0\x97\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\xbb\x01\0\0\xa0\x01\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\x9f\x01\xc8\x01\0\0\xc8\x01\xc7\x01\0\0\xa1\x01\0\0\0\0\0\0\0\0\0\0\0\0\x98\x01\0\0\0\0\0\0\0\0\xbd\x01\0\0\xbd\x01\0\0\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\x91\x01\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\xc8\x01\xc7\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xd6\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd3\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"), - caml_string_of_jsbytes - ("\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\xff\xff\x03\0\0\0\x86\0\xff\xff\x03\0\xff\xff\x86\0E\x01\x92\x019\0\xff\xffE\x01\x92\x01\xff\xff\xff\xff\xff\xff\xff\xff}\0\x8a\0\xff\xff\0\0\xff\xff\0\0\x03\0\xa9\0\x86\0\xae\0\xff\xff\0\0\n\x01E\x01\x92\x01\f\x01\0\0\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x05\0s\0\0\0}\0\x81\0\x05\0\xec\x01\x88\0\xff\x01&\0\xff\xff\n\0\x88\0f\0:\0\0\0k\0f\0\xff\xff\x0b\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1d\0&\0\0\0o\0\xd0\0\xe9\0\xff\0\f\x01\x0f\0\x11\0<\0\x0b\0\n\0\0\0\x14\0\x18\0\x1f\0 \0\"\0\x16\0\x1a\0\0\0\x0e\0\x1b\0!\0\x12\0\x17\0\0\0\x10\0\x13\0#\0(\0$\0&\0\0\0)\0*\0+\0,\0-\0.\0:\0R\0\x0b\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0'\0?\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0U\0\x8c\0<\0\r\0\x8f\0\x90\0\x91\x000\0\x93\x000\0\x94\0'\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x001\x001\x001\x001\x001\x001\x001\x001\x001\x001\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0A\0'\0\x95\0\x96\0\x9c\0?\0\x9d\x003\0\x9e\x003\0\x9f\x002\x003\x003\x003\x003\x003\x003\x003\x003\x003\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\0\x9b\x002\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa1\0\xa2\0\x9b\0[\0A\0\0\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x009\0D\0f\0k\0s\0\x83\0\x85\0\x85\0}\0\x8a\0\x85\0\xa3\0^\0\xa5\0D\0\xa6\0\xa7\0\xa8\0\xab\0o\0\xac\0\xad\0\xce\0\xcb\0\xcf\0\xd2\0\xd3\0:\0R\0\x85\0\xd4\0\xd5\0\xd6\0\xd7\0\xd9\0\x8c\0\xda\0a\0\xdb\0\xdc\0w\0\xdd\0\xde\0\xdf\0\x85\0[\0\xcb\0\"\x01>\x01\xe9\0\x98\0\x01\x01P\x01\xf7\0<\0\xfb\x006\x01:\x01Q\x01D\0)\x01R\x01S\x01\x06\x01\x1a\x01D\0w\0\x1e\x01\x0f\x01D\0^\0\x0f\x01T\x01U\x01V\x01G\x01X\x01D\0\xcb\x002\x01G\x01D\0Y\x01D\0D\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0a\0L\x01w\0Z\x01?\0\x01\x01\\\x01G\0G\0G\0G\0G\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0\x98\0L\x01]\x01_\x01a\x01b\x01-\x01N\0N\0N\0N\0N\0N\0c\x01\x98\0d\x01G\0G\0G\0G\0G\0G\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\x14\x01L\x01A\0\x14\x01e\x01f\x01h\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0i\x01j\x01-\x01$\x01k\x01l\x01m\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0n\x01\x1a\x01y\x01\x9d\x01\x1e\x01\x9e\x01\x14\x01P\0P\0P\0P\0P\0P\0[\0\x9f\x01>\x01O\0O\0O\0O\0O\0O\0\xf7\0\xa0\x01\xfb\0\xa1\x01:\x01D\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0^\0P\0P\0P\0P\0P\0P\0V\0V\0V\0V\0V\0V\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0$\x01)\x01a\0\xa2\x01\xa3\x01w\0\x01\x01W\0W\0W\0W\0W\0W\0\xa5\x016\x01\x98\0V\0V\0V\0V\0V\0V\0\x06\x01\xa6\x01\xa7\x01\xa8\x01\x0f\x01\xa9\x01X\0X\0X\0X\0X\0X\0X\0X\0X\0X\x002\x01W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0_\0\x85\x01\xaa\x01\xab\x01\x9a\x01\x85\x01\xac\x01Y\0Y\0Y\0Y\0Y\0Y\0_\0\xb0\0\xad\x01X\0X\0X\0X\0X\0X\0-\x01\xae\x01\xaf\x01\xb0\0\xb0\x01\x9a\x01\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0z\x01Y\0Y\0Y\0Y\0Y\0Y\0\x94\x01\xb1\x01\x14\x01\xb2\x01b\0\x94\x01\xb3\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xd8\x01\xc1\x01_\0\x9a\x01\xd8\x01\xcd\x01b\0\xde\x01_\0\xcd\x01\xe5\x01\x01\x02_\0\xda\x01$\x01\xd7\x01\xd7\x01\x02\x02\xda\x01\xd7\x01_\0\x04\x02\x05\x02\xd8\x01_\0\x06\x02_\0_\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0\xd7\x01\x07\x02z\x01\b\x02\t\x02\n\x02\x0b\x02`\0`\0`\0`\0`\0`\0b\0\f\x02\xd7\x01\xf7\x01\r\x02\x0e\x02b\0\x0f\x02}\x01\x80\x01b\0\x10\x02\xdc\x01\x11\x02\xfb\x01\x12\x02\x13\x02\x14\x02b\0y\x01\x15\x02\xc2\x01b\0\x16\x02b\0b\0`\0`\0`\0`\0`\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xe7\x01\x17\x02\xee\x01\x18\x02\xfb\x01\xee\x01\x19\x02c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xf3\x01}\x01\x80\x01\xe0\x01\x1a\x02\xc5\x01\x1b\x02d\0d\0d\0d\0d\0d\0\x1c\x02\xc2\x01\x1d\x02c\0c\0c\0c\0c\0c\0\x1e\x02\x1f\x02 \x02\xc8\x01\xe7\x01\x85\x01e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xff\xffd\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xff\xff\xff\xff\xc5\x01\xb0\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb9\0\xff\xffe\0e\0e\0e\0e\0e\0\xc8\x01\xe0\x01\xff\xff\xb9\0\xcd\x01z\x01\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xc0\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc0\0\xc1\x01\xf7\x01\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc7\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xc7\0}\x01\x80\x01\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xcc\0\xc2\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe7\x01\xff\xff\xff\xff\xc7\0\xdc\x01\xee\x01\xfb\x01\xff\xff\xc7\0\xf3\x01\xff\xff\xcc\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xe1\0\xff\xff\xe1\0\xff\xff\xe0\x01\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xcd\0\xc5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcc\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xff\xff\xff\xff\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xe4\0\xff\xff\xe4\0\xff\xff\xe3\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xff\xff\xe3\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xb9\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xed\0\xff\xffM\x01\xff\xffM\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01\xff\xffM\x01\xff\xff\xff\xff\xc0\0\xff\xff\xff\xff\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0M\x01\xff\xff\xff\xff\xff\xff\xed\0\xc7\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xf2\0\xff\xff\xff\xff\xf0\0\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xed\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0B\x01B\x01\xff\xff\xff\xffB\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xffO\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01p\x01\xff\xffp\x01\xff\xffB\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01\xff\xff\xff\xffB\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xff\xff\xffr\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xffs\x01\xff\xffs\x01\xff\xffB\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\xff\xffr\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01\xff\xff~\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\x81\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x9b\x01\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01~\x01\xff\xff\xff\xffB\x01~\x01\x81\x01~\x01~\x01\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\x81\x01\x81\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xb8\x01\x8a\x01\xb8\x01\xff\xff\xff\xff\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x01\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xba\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\x8f\x01\xc6\x01\xff\xff\xc6\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xbb\x01\xff\xff\xbb\x01\xff\xff\xba\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xc9\x01\xc9\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes("")], - cst_Yojson_Raw_Finally=caml_string_of_jsbytes("Yojson.Raw.Finally"), - Stdlib=global_data.Stdlib, - Stdlib_Buffer=global_data.Stdlib__Buffer, - Stdlib_String=global_data.Stdlib__String, - Stdlib_List=global_data.Stdlib__List, - Stdlib_Format=global_data.Stdlib__Format, - Assert_failure=global_data.Assert_failure, - Stdlib_Bytes=global_data.Stdlib__Bytes, - Stdlib_Printf=global_data.Stdlib__Printf, - Stdlib_Seq=global_data.Stdlib__Seq, - Stdlib_Char=global_data.Stdlib__Char, - Stdlib_Lexing=global_data.Stdlib__Lexing, - Json_error=[248,cst_Yojson_Json_error,caml_fresh_oo_id(0)], - _V_= + cst_U_a_w_A_n_0_G_m_X_4_5_5_0_, + cst$104, + cst_9_A_A_F_T_a_a_h_m_q_u_y_4_, + cst_E_E_E_1_8_v_9_1_0_j_n_i_1_, + cst_E_9_E_E_s_f_k_f_o_R_U_0_0_, + cst$83, + cst$83, + cst$83, + cst$83, + cst$83, + cst$83], + Stdlib = global_data.Stdlib, + Stdlib_Buffer = global_data.Stdlib__Buffer, + Stdlib_String = global_data.Stdlib__String, + Stdlib_List = global_data.Stdlib__List, + Stdlib_Format = global_data.Stdlib__Format, + Assert_failure = global_data.Assert_failure, + Stdlib_Bytes = global_data.Stdlib__Bytes, + Stdlib_Printf = global_data.Stdlib__Printf, + Stdlib_Seq = global_data.Stdlib__Seq, + Stdlib_Char = global_data.Stdlib__Char, + Stdlib_Lexing = global_data.Stdlib__Lexing, + Json_error = [248, "Yojson.Json_error", caml_fresh_oo_id(0)], + _V_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], + _N_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], + _B_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], + _C_ = [0, [12, 40, [18, [1, [0, 0, cst$83]], 0]], cst$84], + _D_ = [0, [3, 0, 0], cst_S], + _E_ = [0, [12, 44, [17, [0, cst$81, 1, 0], 0]], cst$85], + _F_ = [0, [17, 0, [12, 41, 0]], cst$86], + cst_Null = cst_Null$3, + _z_ = [0, - [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(";@ ")], - _N_= + [11, cst_Assoc, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Assoc_hov], + _A_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], + _G_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], + _H_ = [0, [17, 0, [12, 41, 0]], cst$86], + _I_ = [0, - [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(";@ ")], - _B_= + [11, cst_Floatlit, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Floatlit_hov], + _J_ = [0, [3, 0, 0], cst_S], + _K_ = [0, [17, 0, [12, 41, 0]], cst$86], + _L_ = [0, - [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(";@ ")], - _C_= + [11, cst_List, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_List_hov], + _M_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], + _O_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], + _P_ = [0, [17, 0, [12, 41, 0]], cst$86], + _Q_ = [0, - [12,40,[18,[1,[0,0,caml_string_of_jsbytes("")]],0]], - caml_string_of_jsbytes("(@[")], - _D_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _E_= + [11, cst_Bool, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Bool_hov], + _R_ = [0, [9, 0, 0], cst_B], + _S_ = [0, [17, 0, [12, 41, 0]], cst$86], + _T_ = [0, - [12,44,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(",@ ")], - _F_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _z_= + [11, cst_Tuple, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Tuple_hov], + _U_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], + _W_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], + _X_ = [0, [17, 0, [12, 41, 0]], cst$86], + _Y_ = [0, - [11, - caml_string_of_jsbytes("`Assoc ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Assoc (@[")], - _A_= + [11, cst_Variant, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Variant_hov], + _Z_ = [0, [12, 40, [18, [1, [0, 0, cst$83]], 0]], cst$84], + ___ = [0, [3, 0, 0], cst_S], + _$_ = [0, [12, 44, [17, [0, cst$81, 1, 0], 0]], cst$85], + cst_Some = cst_Some$2, + cst_None = cst_None$2, + _aa_ = [0, [17, 0, [12, 41, 0]], cst$86], + _ab_ = [0, [17, 0, [12, 41, 0]], cst$86], + _af_ = [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes("<2>"),0], - caml_string_of_jsbytes("<2>")]], - [12,91,0]], - caml_string_of_jsbytes("@[<2>[")], - _G_= + [11, cst_Float, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Float_hov], + _ag_ = [0, [8, [0, 0, 5], 0, 0, 0], cst_F], + _ah_ = [0, [17, 0, [12, 41, 0]], cst$86], + _ai_ = [0, - [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], - caml_string_of_jsbytes("@,]@]")], - _H_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _I_= + [11, cst_Int, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Int_hov], + _aj_ = [0, [4, 0, 0, 0, 0], cst_d], + _ak_ = [0, [17, 0, [12, 41, 0]], cst$86], + _al_ = [0, - [11, - caml_string_of_jsbytes("`Floatlit ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Floatlit (@[")], - _J_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _K_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _L_= + [11, cst_Stringlit, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Stringlit_hov], + _am_ = [0, [3, 0, 0], cst_S], + _an_ = [0, [17, 0, [12, 41, 0]], cst$86], + _ao_ = [0, - [11, - caml_string_of_jsbytes("`List ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`List (@[")], - _M_= + [11, cst_String, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_String_hov], + _ap_ = [0, [3, 0, 0], cst_S], + _aq_ = [0, [17, 0, [12, 41, 0]], cst$86], + _ac_ = [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes("<2>"),0], - caml_string_of_jsbytes("<2>")]], - [12,91,0]], - caml_string_of_jsbytes("@[<2>[")], - _O_= + [11, cst_Intlit, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Intlit_hov], + _ad_ = [0, [3, 0, 0], cst_S], + _ae_ = [0, [17, 0, [12, 41, 0]], cst$86], + _d2_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], + _dU_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], + _dI_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], + _dJ_ = [0, [12, 40, [18, [1, [0, 0, cst$83]], 0]], cst$84], + _dK_ = [0, [3, 0, 0], cst_S], + _dL_ = [0, [12, 44, [17, [0, cst$81, 1, 0], 0]], cst$85], + _dM_ = [0, [17, 0, [12, 41, 0]], cst$86], + cst_Null$2 = cst_Null$3, + _dG_ = [0, - [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], - caml_string_of_jsbytes("@,]@]")], - _P_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _Q_= + [11, cst_Assoc, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Assoc_hov], + _dH_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], + _dN_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], + _dO_ = [0, [17, 0, [12, 41, 0]], cst$86], + _dP_ = [0, - [11, - caml_string_of_jsbytes("`Bool ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Bool (@[")], - _R_=[0,[9,0,0],caml_string_of_jsbytes("%B")], - _S_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _T_= + [11, cst_Floatlit, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Floatlit_hov], + _dQ_ = [0, [3, 0, 0], cst_S], + _dR_ = [0, [17, 0, [12, 41, 0]], cst$86], + _dS_ = [0, - [11, - caml_string_of_jsbytes("`Tuple ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Tuple (@[")], - _U_= + [11, cst_List, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_List_hov], + _dT_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], + _dV_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], + _dW_ = [0, [17, 0, [12, 41, 0]], cst$86], + _dX_ = [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes("<2>"),0], - caml_string_of_jsbytes("<2>")]], - [12,91,0]], - caml_string_of_jsbytes("@[<2>[")], - _W_= + [11, cst_Bool, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Bool_hov], + _dY_ = [0, [9, 0, 0], cst_B], + _dZ_ = [0, [17, 0, [12, 41, 0]], cst$86], + _d0_ = [0, - [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], - caml_string_of_jsbytes("@,]@]")], - _X_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _Y_= + [11, cst_Tuple, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Tuple_hov], + _d1_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], + _d3_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], + _d4_ = [0, [17, 0, [12, 41, 0]], cst$86], + _d5_ = [0, - [11, - caml_string_of_jsbytes("`Variant ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Variant (@[")], - _Z_= + [11, cst_Variant, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Variant_hov], + _d6_ = [0, [12, 40, [18, [1, [0, 0, cst$83]], 0]], cst$84], + _d7_ = [0, [3, 0, 0], cst_S], + _d8_ = [0, [12, 44, [17, [0, cst$81, 1, 0], 0]], cst$85], + cst_Some$1 = cst_Some$2, + cst_None$1 = cst_None$2, + _d9_ = [0, [17, 0, [12, 41, 0]], cst$86], + _d__ = [0, [17, 0, [12, 41, 0]], cst$86], + _d$_ = [0, - [12,40,[18,[1,[0,0,caml_string_of_jsbytes("")]],0]], - caml_string_of_jsbytes("(@[")], - ___=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _$_= + [11, cst_Stringlit, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Stringlit_hov], + _ea_ = [0, [3, 0, 0], cst_S], + _eb_ = [0, [17, 0, [12, 41, 0]], cst$86], + _ec_ = [0, - [12,44,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(",@ ")], - _aa_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _ab_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _af_= + [11, cst_Intlit, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Intlit_hov], + _ed_ = [0, [3, 0, 0], cst_S], + _ee_ = [0, [17, 0, [12, 41, 0]], cst$86], + _eq_ = [0, 737456202, 1], + _er_ = [0, 737456202, 0], + _es_ = [0, 928231259, cst_NaN$5], + _et_ = [0, 928231259, cst_Infinity$11], + _eu_ = [0, 928231259, cst_Infinity$12], + cst_Unexpected_end_of_input$92 = cst_Unexpected_end_of_input$140, + cst_Invalid_token$12 = cst_Invalid_token$15, + cst_Unexpected_end_of_input$93 = cst_Unexpected_end_of_input$140, + cst_Unexpected_end_of_input$94 = cst_Unexpected_end_of_input$140, + cst_Invalid_escape_sequence$1 = cst_Invalid_escape_sequence$2, + cst_Unexpected_end_of_input$95 = cst_Unexpected_end_of_input$140, + cst_Invalid_low_surrogate_for_$1 = cst_Invalid_low_surrogate_for_$2, + cst_Missing_escape_sequence_re$1 = cst_Missing_escape_sequence_re$2, + cst_Unexpected_end_of_input$96 = cst_Unexpected_end_of_input$140, + cst_Invalid_string_literal$5 = cst_Invalid_string_literal$8, + cst_Unexpected_end_of_input$97 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$29 = cst_Expected_or_but_found$45, + cst_Unexpected_end_of_input$98 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$30 = cst_Expected_but_found$46, + cst_Unexpected_end_of_input$99 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$31 = cst_Expected_but_found$47, + cst_Unexpected_end_of_input$100 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$32 = cst_Expected_but_found$48, + cst_Unexpected_end_of_input$101 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$30 = cst_Expected_or_but_found$46, + cst_Unexpected_end_of_input$102 = cst_Unexpected_end_of_input$140, + cst_Unterminated_comment$3 = cst_Unterminated_comment$5, + cst_Expected_null_but_found$1 = cst_Expected_null_but_found$2, + cst_Unexpected_end_of_input$103 = cst_Unexpected_end_of_input$140, + cst_Expected_true_or_false_but$1 = cst_Expected_true_or_false_but$2, + cst_Unexpected_end_of_input$104 = cst_Unexpected_end_of_input$140, + cst_Int_overflow$5 = cst_Int_overflow$7, + cst_Int_overflow$6 = cst_Int_overflow$7, + cst_Expected_an_integer_but_fo$1 = cst_Expected_an_integer_but_fo$2, + cst_Expected_integer_but_found$1 = cst_Expected_integer_but_found$2, + cst_Unexpected_end_of_input$105 = cst_Unexpected_end_of_input$140, + cst_Int32_overflow$3 = cst_Int32_overflow$5, + cst_Expected_an_int32_but_foun$1 = cst_Expected_an_int32_but_foun$2, + cst_Expected_int32_but_found$1 = cst_Expected_int32_but_found$2, + cst_Unexpected_end_of_input$106 = cst_Unexpected_end_of_input$140, + cst_Int32_overflow$4 = cst_Int32_overflow$5, + cst_Expected_an_int64_but_foun$1 = cst_Expected_an_int64_but_foun$2, + cst_Expected_int64_but_found$1 = cst_Expected_int64_but_found$2, + cst_Unexpected_end_of_input$107 = cst_Unexpected_end_of_input$140, + cst_Expected_a_number_but_foun$1 = cst_Expected_a_number_but_foun$2, + cst_Expected_number_but_found$1 = cst_Expected_number_but_found$2, + cst_Unexpected_end_of_input$108 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$33 = cst_Expected_but_found$49, + cst_Unexpected_end_of_input$109 = cst_Unexpected_end_of_input$140, + cst_Expected_string_or_identif$7 = cst_Expected_string_or_identif$11, + cst_Unexpected_end_of_input$110 = cst_Unexpected_end_of_input$140, + cst_Expected_string_or_identif$8 = cst_Expected_string_or_identif$11, + cst_Unexpected_end_of_input$111 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$34 = cst_Expected_but_found$50, + cst_Unexpected_end_of_input$112 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$35 = cst_Expected_but_found$50, + cst_Unexpected_end_of_input$113 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$31 = cst_Expected_or_but_found$47, + cst_Unexpected_end_of_input$114 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$36 = cst_Expected_but_found$51, + cst_Unexpected_end_of_input$115 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$32 = cst_Expected_or_but_found$48, + cst_Expected_or_but_found$33 = cst_Expected_or_but_found$49, + cst_Expected_or_but_found$34 = cst_Expected_or_but_found$50, + cst_Unexpected_end_of_input$116 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$35 = cst_Expected_or_but_found$47, + cst_Expected_or_but_found$36 = cst_Expected_or_but_found$50, + cst_Expected_or_but_found$37 = cst_Expected_or_but_found$50, + cst_Unexpected_end_of_input$117 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$37 = cst_Expected_but_found$52, + cst_Unexpected_end_of_input$118 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$38 = cst_Expected_but_found$52, + cst_Unexpected_end_of_input$119 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$38 = cst_Expected_or_but_found$51, + cst_Unexpected_end_of_input$120 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$39 = cst_Expected_but_found$53, + cst_Unexpected_end_of_input$121 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$39 = cst_Expected_or_but_found$52, + cst_Unexpected_end_of_input$122 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$40 = cst_Expected_but_found$54, + cst_Unexpected_end_of_input$123 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$41 = cst_Expected_but_found$51, + cst_Unexpected_end_of_input$124 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$42 = cst_Expected_but_found$50, + cst_Unexpected_end_of_input$125 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$43 = cst_Expected_but_found$55, + cst_Unexpected_end_of_input$126 = cst_Unexpected_end_of_input$140, + cst_Unexpected_end_of_input$127 = cst_Unexpected_end_of_input$140, + cst_Invalid_token$13 = cst_Invalid_token$15, + cst_Invalid_string_literal$6 = cst_Invalid_string_literal$8, + cst_Unexpected_end_of_input$128 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$40 = cst_Expected_or_but_found$45, + cst_Unexpected_end_of_input$129 = cst_Unexpected_end_of_input$140, + cst_Expected_string_or_identif$9 = cst_Expected_string_or_identif$11, + cst_Unexpected_end_of_input$130 = cst_Unexpected_end_of_input$140, + cst_Unexpected_end_of_input$131 = cst_Unexpected_end_of_input$140, + cst_Invalid_token$14 = cst_Invalid_token$15, + cst_Invalid_string_literal$7 = cst_Invalid_string_literal$8, + cst_Unexpected_end_of_input$132 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$41 = cst_Expected_or_but_found$45, + cst_Unexpected_end_of_input$133 = cst_Unexpected_end_of_input$140, + cst_Expected_string_or_identif$10 = cst_Expected_string_or_identif$11, + cst_Unexpected_end_of_input$134 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$42 = cst_Expected_or_but_found$51, + cst_Unexpected_end_of_input$135 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$43 = cst_Expected_or_but_found$47, + cst_Unexpected_end_of_input$136 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$44 = cst_Expected_or_but_found$50, + cst_Unexpected_end_of_input$137 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$44 = cst_Expected_but_found$53, + cst_Unexpected_end_of_input$138 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$45 = cst_Expected_but_found$47, + cst_Unexpected_end_of_input$139 = cst_Unexpected_end_of_input$140, + cst_Unterminated_comment$4 = cst_Unterminated_comment$5, + cst_Blank_input_data$4 = cst_Blank_input_data$5, + cst_Blank_input_data$3 = cst_Blank_input_data$5, + cst_Junk_after_end_of_JSON_val$1 = cst_Junk_after_end_of_JSON_val$2, + cst_Int8_overflow$1 = cst_Int8_overflow$2, + _en_ = [0, [2, 0, [11, cst$92, [2, 0, [2, 0, [12, 39, 0]]]]], cst_s_s_s], + _em_ = [0, cst_lib_read_mll, 72, 32], + _el_ = [0, [2, 0, [11, cst$92, [2, 0, [12, 39, 0]]]], cst_s_s], + _eh_ = [0, [11, cst_File, [2, 0, [11, cst_line, 0]]], cst_File_s_line], + cst_Line$1 = cst_Line$2, + _ei_ = [0, [11, cst_byte, [4, 3, 0, 0, 0]], cst_byte_i], + _ek_ = [0, - [11, - caml_string_of_jsbytes("`Float ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Float (@[")], - _ag_=[0,[8,[0,0,5],0,0,0],caml_string_of_jsbytes("%F")], - _ah_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _ai_= - [0, - [11, - caml_string_of_jsbytes("`Int ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Int (@[")], - _aj_=[0,[4,0,0,0,0],caml_string_of_jsbytes("%d")], - _ak_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _al_= - [0, - [11, - caml_string_of_jsbytes("`Stringlit ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Stringlit (@[")], - _am_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _an_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _ao_= - [0, - [11, - caml_string_of_jsbytes("`String ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`String (@[")], - _ap_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _aq_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _ac_= - [0, - [11, - caml_string_of_jsbytes("`Intlit ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Intlit (@[")], - _ad_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _ae_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _d2_= - [0, - [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(";@ ")], - _dU_= - [0, - [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(";@ ")], - _dI_= - [0, - [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(";@ ")], - _dJ_= - [0, - [12,40,[18,[1,[0,0,caml_string_of_jsbytes("")]],0]], - caml_string_of_jsbytes("(@[")], - _dK_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _dL_= - [0, - [12,44,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(",@ ")], - _dM_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _dG_= - [0, - [11, - caml_string_of_jsbytes("`Assoc ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Assoc (@[")], - _dH_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes("<2>"),0], - caml_string_of_jsbytes("<2>")]], - [12,91,0]], - caml_string_of_jsbytes("@[<2>[")], - _dN_= - [0, - [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], - caml_string_of_jsbytes("@,]@]")], - _dO_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _dP_= - [0, - [11, - caml_string_of_jsbytes("`Floatlit ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Floatlit (@[")], - _dQ_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _dR_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _dS_= - [0, - [11, - caml_string_of_jsbytes("`List ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`List (@[")], - _dT_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes("<2>"),0], - caml_string_of_jsbytes("<2>")]], - [12,91,0]], - caml_string_of_jsbytes("@[<2>[")], - _dV_= - [0, - [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], - caml_string_of_jsbytes("@,]@]")], - _dW_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _dX_= - [0, - [11, - caml_string_of_jsbytes("`Bool ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Bool (@[")], - _dY_=[0,[9,0,0],caml_string_of_jsbytes("%B")], - _dZ_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _d0_= - [0, - [11, - caml_string_of_jsbytes("`Tuple ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Tuple (@[")], - _d1_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes("<2>"),0], - caml_string_of_jsbytes("<2>")]], - [12,91,0]], - caml_string_of_jsbytes("@[<2>[")], - _d3_= - [0, - [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], - caml_string_of_jsbytes("@,]@]")], - _d4_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _d5_= - [0, - [11, - caml_string_of_jsbytes("`Variant ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Variant (@[")], - _d6_= - [0, - [12,40,[18,[1,[0,0,caml_string_of_jsbytes("")]],0]], - caml_string_of_jsbytes("(@[")], - _d7_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _d8_= - [0, - [12,44,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(",@ ")], - _d9_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _d__=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _d$_= - [0, - [11, - caml_string_of_jsbytes("`Stringlit ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Stringlit (@[")], - _ea_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _eb_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _ec_= - [0, - [11, - caml_string_of_jsbytes("`Intlit ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Intlit (@[")], - _ed_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _ee_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _eq_=[0,737456202,1], - _er_=[0,737456202,0], - _es_=[0,928231259,caml_string_of_jsbytes("NaN")], - _et_=[0,928231259,caml_string_of_jsbytes("Infinity")], - _eu_=[0,928231259,caml_string_of_jsbytes("-Infinity")], - _en_= - [0, - [2,0,[11,caml_string_of_jsbytes(" '"),[2,0,[2,0,[12,39,0]]]]], - caml_string_of_jsbytes("%s '%s%s'")], - _em_=[0,caml_string_of_jsbytes("lib/read.mll"),72,32], - _el_= - [0, - [2,0,[11,caml_string_of_jsbytes(" '"),[2,0,[12,39,0]]]], - caml_string_of_jsbytes("%s '%s'")], - _eh_= - [0, - [11, - caml_string_of_jsbytes("File "), - [2,0,[11,caml_string_of_jsbytes(", line"),0]]], - caml_string_of_jsbytes("File %s, line")], - _ei_= - [0, - [11,caml_string_of_jsbytes("byte "),[4,3,0,0,0]], - caml_string_of_jsbytes("byte %i")], - _ek_= - [0, - [11,caml_string_of_jsbytes("bytes "),[4,3,0,0,[12,45,[4,3,0,0,0]]]], - caml_string_of_jsbytes("bytes %i-%i")], - _ej_= + [11, cst_bytes, [4, 3, 0, 0, [12, 45, [4, 3, 0, 0, 0]]]], + cst_bytes_i_i], + _ej_ = [0, [2, 0, - [12, - 32, - [4, - 3, - 0, - 0, - [11, - caml_string_of_jsbytes(", "), - [2,0,[11,caml_string_of_jsbytes(":\n"),[2,0,0]]]]]]], - caml_string_of_jsbytes("%s %i, %s:\n%s")], - _eg_=[0,caml_string_of_jsbytes("lib/read.mll"),44,13], - _ef_=[0,[15,0],caml_string_of_jsbytes("%a")], - _dq_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0], - caml_string_of_jsbytes("@[")], - _dr_= + [12, 32, [4, 3, 0, 0, [11, cst$93, [2, 0, [11, cst$94, [2, 0, 0]]]]]]], + cst_s_i_s_s], + _eg_ = [0, cst_lib_read_mll, 44, 13], + _ef_ = [0, [15, 0], cst_a], + cst_null$8 = cst_null$9, + _dq_ = [0, [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], 0], cst_hv2$0], + _dr_ = [0, [12, 123, [17, - [0,caml_string_of_jsbytes("@;<1 0>"),1,0], - [15,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,125,0]]]]], - caml_string_of_jsbytes("{@;<1 0>%a@;<1 -2>}")], - _ds_=[0,[17,0,0],caml_string_of_jsbytes("@]")], - _dt_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0], - caml_string_of_jsbytes("@[")], - _du_= + [0, cst_1_0, 1, 0], + [15, [17, [0, cst_1_2, 1, -2], [12, 125, 0]]]]], + cst_1_0_a_1_2], + _ds_ = [0, [17, 0, 0], cst$96], + _dt_ = [0, [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], 0], cst_hv2$0], + _du_ = [0, [12, 91, [17, - [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [0, cst_1_0, 1, 0], [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15, - [17,0,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,0]]]]]]], - caml_string_of_jsbytes("[@;<1 0>@[%a@]@;<1 -2>]")], - _dw_= + [1, [0, [11, cst_hov, 0], cst_hov]], + [15, [17, 0, [17, [0, cst_1_2, 1, -2], [12, 93, 0]]]]]]], + cst_1_0_hov_a_1_2], + _dw_ = [0, [12, 91, [17, - [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [0, cst_1_0, 1, 0], [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15, - [17,0,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,0]]]]]]], - caml_string_of_jsbytes("[@;<1 0>@[%a@]@;<1 -2>]")], - _dv_=[0,[17,0,0],caml_string_of_jsbytes("@]")], - _dx_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0], - caml_string_of_jsbytes("@[")], - _dy_= + [1, [0, [11, cst_hv, 0], cst_hv]], + [15, [17, 0, [17, [0, cst_1_2, 1, -2], [12, 93, 0]]]]]]], + cst_1_0_hv_a_1_2], + _dv_ = [0, [17, 0, 0], cst$96], + _dx_ = [0, [18, [1, [0, [11, cst_hov2, 0], cst_hov2]], 0], cst_hov2$0], + _dy_ = [0, [12, 40, - [17, - [0,caml_string_of_jsbytes("@,"),0,0], - [15,[17,[0,caml_string_of_jsbytes("@;<0 -2>"),0,-2],[12,41,0]]]]], - caml_string_of_jsbytes("(@,%a@;<0 -2>)")], - _dz_=[0,[17,0,0],caml_string_of_jsbytes("@]")], - _dA_= + [17, [0, cst$87, 0, 0], [15, [17, [0, cst_0_2, 0, -2], [12, 41, 0]]]]], + cst_a_0_2], + _dz_ = [0, [17, 0, 0], cst$96], + _dA_ = [0, [12, 60, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [2,0,[11,caml_string_of_jsbytes(": "),[15,[17,0,[12,62,0]]]]]]], - caml_string_of_jsbytes("<@[%s: %a@]>")], - _dB_=[0,[12,60,[2,0,[12,62,0]]],caml_string_of_jsbytes("<%s>")], - _dC_= + [1, [0, [11, cst_hv2, 0], cst_hv2]], + [2, 0, [11, cst$100, [15, [17, 0, [12, 62, 0]]]]]]], + cst_hv2_s_a], + _dB_ = [0, [12, 60, [2, 0, [12, 62, 0]]], cst_s], + _dC_ = [0, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [2,0,[11,caml_string_of_jsbytes(": "),[15,[17,0,0]]]]], - caml_string_of_jsbytes("@[%s: %a@]")], - _dF_=[0,[15,[17,2,0]],caml_string_of_jsbytes("%a@?")], - _dE_=[0,[15,0],caml_string_of_jsbytes("%a")], - _dD_= + [1, [0, [11, cst_hv2, 0], cst_hv2]], + [2, 0, [11, cst$100, [15, [17, 0, 0]]]]], + cst_hv2_s_a$0], + _dF_ = [0, [15, [17, 2, 0]], cst_a$0], + _dE_ = [0, [15, 0], cst_a], + _dD_ = [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15,[17,0,0]]], - caml_string_of_jsbytes("@[%a@]")], - _dp_= - [0, - [2,0,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes("%s@ ")], - _dm_= + [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], [15, [17, 0, 0]]], + cst_hv2_a], + _dp_ = [0, [2, 0, [17, [0, cst$81, 1, 0], 0]], cst_s$0], + cst_true$2 = cst_true$3, + cst_false$2 = cst_false$3, + cst_null$7 = cst_null$9, + cst_b$2 = cst_b$3, + cst_t$2 = cst_t$3, + cst_n$2 = cst_n$3, + cst_f$2 = cst_f$3, + cst_r$2 = cst_r$3, + _dm_ = [0, [11, - caml_string_of_jsbytes("src="), + cst_src, [3, 0, [11, - caml_string_of_jsbytes(" start="), - [4, - 3, - 0, - 0, - [11,caml_string_of_jsbytes(" len="),[4,3,0,0,[12,10,[10,0]]]]]]]], - caml_string_of_jsbytes("src=%S start=%i len=%i\n%!")], - _cz_= + cst_start, + [4, 3, 0, 0, [11, cst_len, [4, 3, 0, 0, [12, 10, [10, 0]]]]]]]], + cst_src_S_start_i_len_i], + cst_u00$2 = cst_u00$3, + _cz_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], + _cN_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], + _cE_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], + _cF_ = [0, [12, 40, [18, [1, [0, 0, cst$83]], 0]], cst$84], + _cG_ = [0, [3, 0, 0], cst_S], + _cH_ = [0, [12, 44, [17, [0, cst$81, 1, 0], 0]], cst$85], + _cI_ = [0, [17, 0, [12, 41, 0]], cst$86], + cst_Null$1 = cst_Null$3, + _cC_ = [0, - [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(";@ ")], - _cN_= + [11, cst_Assoc, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Assoc_hov], + _cD_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], + _cJ_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], + _cK_ = [0, [17, 0, [12, 41, 0]], cst$86], + _cL_ = [0, - [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(";@ ")], - _cE_= + [11, cst_List, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_List_hov], + _cM_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], + _cO_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], + _cP_ = [0, [17, 0, [12, 41, 0]], cst$86], + _cQ_ = [0, - [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(";@ ")], - _cF_= + [11, cst_Bool, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Bool_hov], + _cR_ = [0, [9, 0, 0], cst_B], + _cS_ = [0, [17, 0, [12, 41, 0]], cst$86], + _cT_ = [0, - [12,40,[18,[1,[0,0,caml_string_of_jsbytes("")]],0]], - caml_string_of_jsbytes("(@[")], - _cG_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _cH_= + [11, cst_Variant, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Variant_hov], + _cU_ = [0, [12, 40, [18, [1, [0, 0, cst$83]], 0]], cst$84], + _cV_ = [0, [3, 0, 0], cst_S], + _cW_ = [0, [12, 44, [17, [0, cst$81, 1, 0], 0]], cst$85], + cst_Some$0 = cst_Some$2, + cst_None$0 = cst_None$2, + _cX_ = [0, [17, 0, [12, 41, 0]], cst$86], + _cY_ = [0, [17, 0, [12, 41, 0]], cst$86], + _cx_ = [0, - [12,44,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(",@ ")], - _cI_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _cC_= + [11, cst_Tuple, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Tuple_hov], + _cy_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], + _cA_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], + _cB_ = [0, [17, 0, [12, 41, 0]], cst$86], + _cZ_ = [0, - [11, - caml_string_of_jsbytes("`Assoc ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Assoc (@[")], - _cD_= + [11, cst_Float, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Float_hov], + _c0_ = [0, [8, [0, 0, 5], 0, 0, 0], cst_F], + _c1_ = [0, [17, 0, [12, 41, 0]], cst$86], + _c2_ = [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes("<2>"),0], - caml_string_of_jsbytes("<2>")]], - [12,91,0]], - caml_string_of_jsbytes("@[<2>[")], - _cJ_= + [11, cst_Int, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Int_hov], + _c3_ = [0, [4, 0, 0, 0, 0], cst_d], + _c4_ = [0, [17, 0, [12, 41, 0]], cst$86], + _c5_ = [0, - [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], - caml_string_of_jsbytes("@,]@]")], - _cK_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _cL_= + [11, cst_Intlit, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Intlit_hov], + _c6_ = [0, [3, 0, 0], cst_S], + _c7_ = [0, [17, 0, [12, 41, 0]], cst$86], + _c8_ = [0, - [11, - caml_string_of_jsbytes("`List ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`List (@[")], - _cM_= + [11, cst_String, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_String_hov], + _c9_ = [0, [3, 0, 0], cst_S], + _c__ = [0, [17, 0, [12, 41, 0]], cst$86], + _dk_ = [0, 737456202, 1], + _dl_ = [0, 737456202, 0], + cst_Unexpected_end_of_input$44 = cst_Unexpected_end_of_input$140, + cst_Invalid_token$9 = cst_Invalid_token$15, + cst_Unexpected_end_of_input$45 = cst_Unexpected_end_of_input$140, + cst_Unexpected_end_of_input$46 = cst_Unexpected_end_of_input$140, + cst_Invalid_escape_sequence$0 = cst_Invalid_escape_sequence$2, + cst_Unexpected_end_of_input$47 = cst_Unexpected_end_of_input$140, + cst_Invalid_low_surrogate_for_$0 = cst_Invalid_low_surrogate_for_$2, + cst_Missing_escape_sequence_re$0 = cst_Missing_escape_sequence_re$2, + cst_Unexpected_end_of_input$48 = cst_Unexpected_end_of_input$140, + cst_Invalid_string_literal$2 = cst_Invalid_string_literal$8, + cst_Unexpected_end_of_input$49 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$13 = cst_Expected_or_but_found$45, + cst_Unexpected_end_of_input$50 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$14 = cst_Expected_but_found$46, + cst_Unexpected_end_of_input$51 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$15 = cst_Expected_but_found$47, + cst_Unexpected_end_of_input$52 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$16 = cst_Expected_but_found$48, + cst_Unexpected_end_of_input$53 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$14 = cst_Expected_or_but_found$46, + cst_Unexpected_end_of_input$54 = cst_Unexpected_end_of_input$140, + cst_Unterminated_comment$1 = cst_Unterminated_comment$5, + cst_Expected_null_but_found$0 = cst_Expected_null_but_found$2, + cst_Unexpected_end_of_input$55 = cst_Unexpected_end_of_input$140, + cst_Expected_true_or_false_but$0 = cst_Expected_true_or_false_but$2, + cst_Unexpected_end_of_input$56 = cst_Unexpected_end_of_input$140, + cst_Int_overflow$3 = cst_Int_overflow$7, + cst_Int_overflow$4 = cst_Int_overflow$7, + cst_Expected_an_integer_but_fo$0 = cst_Expected_an_integer_but_fo$2, + cst_Expected_integer_but_found$0 = cst_Expected_integer_but_found$2, + cst_Unexpected_end_of_input$57 = cst_Unexpected_end_of_input$140, + cst_Int32_overflow$1 = cst_Int32_overflow$5, + cst_Expected_an_int32_but_foun$0 = cst_Expected_an_int32_but_foun$2, + cst_Expected_int32_but_found$0 = cst_Expected_int32_but_found$2, + cst_Unexpected_end_of_input$58 = cst_Unexpected_end_of_input$140, + cst_Int32_overflow$2 = cst_Int32_overflow$5, + cst_Expected_an_int64_but_foun$0 = cst_Expected_an_int64_but_foun$2, + cst_Expected_int64_but_found$0 = cst_Expected_int64_but_found$2, + cst_Unexpected_end_of_input$59 = cst_Unexpected_end_of_input$140, + cst_Expected_a_number_but_foun$0 = cst_Expected_a_number_but_foun$2, + cst_Expected_number_but_found$0 = cst_Expected_number_but_found$2, + cst_Unexpected_end_of_input$60 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$17 = cst_Expected_but_found$49, + cst_Unexpected_end_of_input$61 = cst_Unexpected_end_of_input$140, + cst_Expected_string_or_identif$3 = cst_Expected_string_or_identif$11, + cst_Unexpected_end_of_input$62 = cst_Unexpected_end_of_input$140, + cst_Expected_string_or_identif$4 = cst_Expected_string_or_identif$11, + cst_Unexpected_end_of_input$63 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$18 = cst_Expected_but_found$50, + cst_Unexpected_end_of_input$64 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$19 = cst_Expected_but_found$50, + cst_Unexpected_end_of_input$65 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$15 = cst_Expected_or_but_found$47, + cst_Unexpected_end_of_input$66 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$20 = cst_Expected_but_found$51, + cst_Unexpected_end_of_input$67 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$16 = cst_Expected_or_but_found$48, + cst_Expected_or_but_found$17 = cst_Expected_or_but_found$49, + cst_Expected_or_but_found$18 = cst_Expected_or_but_found$50, + cst_Unexpected_end_of_input$68 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$19 = cst_Expected_or_but_found$47, + cst_Expected_or_but_found$20 = cst_Expected_or_but_found$50, + cst_Expected_or_but_found$21 = cst_Expected_or_but_found$50, + cst_Unexpected_end_of_input$69 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$21 = cst_Expected_but_found$52, + cst_Unexpected_end_of_input$70 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$22 = cst_Expected_but_found$52, + cst_Unexpected_end_of_input$71 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$22 = cst_Expected_or_but_found$51, + cst_Unexpected_end_of_input$72 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$23 = cst_Expected_but_found$53, + cst_Unexpected_end_of_input$73 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$23 = cst_Expected_or_but_found$52, + cst_Unexpected_end_of_input$74 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$24 = cst_Expected_but_found$54, + cst_Unexpected_end_of_input$75 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$25 = cst_Expected_but_found$51, + cst_Unexpected_end_of_input$76 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$26 = cst_Expected_but_found$50, + cst_Unexpected_end_of_input$77 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$27 = cst_Expected_but_found$55, + cst_Unexpected_end_of_input$78 = cst_Unexpected_end_of_input$140, + cst_Unexpected_end_of_input$79 = cst_Unexpected_end_of_input$140, + cst_Invalid_token$10 = cst_Invalid_token$15, + cst_Invalid_string_literal$3 = cst_Invalid_string_literal$8, + cst_Unexpected_end_of_input$80 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$24 = cst_Expected_or_but_found$45, + cst_Unexpected_end_of_input$81 = cst_Unexpected_end_of_input$140, + cst_Expected_string_or_identif$5 = cst_Expected_string_or_identif$11, + cst_Unexpected_end_of_input$82 = cst_Unexpected_end_of_input$140, + cst_Unexpected_end_of_input$83 = cst_Unexpected_end_of_input$140, + cst_Invalid_token$11 = cst_Invalid_token$15, + cst_Invalid_string_literal$4 = cst_Invalid_string_literal$8, + cst_Unexpected_end_of_input$84 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$25 = cst_Expected_or_but_found$45, + cst_Unexpected_end_of_input$85 = cst_Unexpected_end_of_input$140, + cst_Expected_string_or_identif$6 = cst_Expected_string_or_identif$11, + cst_Unexpected_end_of_input$86 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$26 = cst_Expected_or_but_found$51, + cst_Unexpected_end_of_input$87 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$27 = cst_Expected_or_but_found$47, + cst_Unexpected_end_of_input$88 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$28 = cst_Expected_or_but_found$50, + cst_Unexpected_end_of_input$89 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$28 = cst_Expected_but_found$53, + cst_Unexpected_end_of_input$90 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$29 = cst_Expected_but_found$47, + cst_Unexpected_end_of_input$91 = cst_Unexpected_end_of_input$140, + cst_Unterminated_comment$2 = cst_Unterminated_comment$5, + cst_Expected_two_objects_check$0 = cst_Expected_two_objects_check$1, + cst_Can_t_convert_each_element$0 = cst_Can_t_convert_each_element$1, + cst_Expected_string_or_null_go$0 = cst_Expected_string_or_null_go$1, + cst_Expected_string_got$0 = cst_Expected_string_got$1, + cst_Expected_array_got$0 = cst_Expected_array_got$1, + cst_Expected_int_or_null_got$0 = cst_Expected_int_or_null_got$1, + cst_Expected_int_got$0 = cst_Expected_int_got$1, + cst_Expected_float_or_null_got$0 = cst_Expected_float_or_null_got$1, + cst_Expected_float_got$0 = cst_Expected_float_got$1, + cst_Expected_number_or_null_go$0 = cst_Expected_number_or_null_go$1, + cst_Expected_number_got$0 = cst_Expected_number_got$1, + cst_Expected_bool_or_null_got$0 = cst_Expected_bool_or_null_got$1, + cst_Expected_bool_got$0 = cst_Expected_bool_got$1, + cst_Expected_object_got$0 = cst_Expected_object_got$1, + cst_Can_t_map_function_over_no$0 = cst_Can_t_map_function_over_no$1, + cst_out_of_bounds$0 = cst_out_of_bounds$1, + cst_Index$0 = cst_Index$1, + cst_of_non_array_type$0 = cst_of_non_array_type$1, + cst_Can_t_get_index$0 = cst_Can_t_get_index$1, + cst_of_non_object_type$0 = cst_of_non_object_type$1, + cst_Can_t_get_member$0 = cst_Can_t_get_member$1, + cst_null$6 = cst_null$9, + cst_object$0 = cst_object$1, + cst_array$0 = cst_array$1, + cst_bool$0 = cst_bool$1, + cst_variant$0 = cst_variant$1, + cst_tuple$0 = cst_tuple$1, + cst_float$0 = cst_float$1, + cst_int$0 = cst_int$1, + cst_intlit$0 = cst_intlit$1, + cst_string$0 = cst_string$1, + cst_Blank_input_data$2 = cst_Blank_input_data$5, + cst_Blank_input_data$1 = cst_Blank_input_data$5, + cst_Junk_after_end_of_JSON_val$0 = cst_Junk_after_end_of_JSON_val$2, + cst_Int8_overflow$0 = cst_Int8_overflow$2, + _dh_ = [0, [2, 0, [11, cst$92, [2, 0, [2, 0, [12, 39, 0]]]]], cst_s_s_s], + _dg_ = [0, cst_lib_read_mll, 72, 32], + _df_ = [0, [2, 0, [11, cst$92, [2, 0, [12, 39, 0]]]], cst_s_s], + _db_ = [0, [11, cst_File, [2, 0, [11, cst_line, 0]]], cst_File_s_line], + cst_Line$0 = cst_Line$2, + _dc_ = [0, [11, cst_byte, [4, 3, 0, 0, 0]], cst_byte_i], + _de_ = [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes("<2>"),0], - caml_string_of_jsbytes("<2>")]], - [12,91,0]], - caml_string_of_jsbytes("@[<2>[")], - _cO_= - [0, - [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], - caml_string_of_jsbytes("@,]@]")], - _cP_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _cQ_= - [0, - [11, - caml_string_of_jsbytes("`Bool ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Bool (@[")], - _cR_=[0,[9,0,0],caml_string_of_jsbytes("%B")], - _cS_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _cT_= - [0, - [11, - caml_string_of_jsbytes("`Variant ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Variant (@[")], - _cU_= - [0, - [12,40,[18,[1,[0,0,caml_string_of_jsbytes("")]],0]], - caml_string_of_jsbytes("(@[")], - _cV_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _cW_= - [0, - [12,44,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(",@ ")], - _cX_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _cY_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _cx_= - [0, - [11, - caml_string_of_jsbytes("`Tuple ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Tuple (@[")], - _cy_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes("<2>"),0], - caml_string_of_jsbytes("<2>")]], - [12,91,0]], - caml_string_of_jsbytes("@[<2>[")], - _cA_= - [0, - [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], - caml_string_of_jsbytes("@,]@]")], - _cB_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _cZ_= - [0, - [11, - caml_string_of_jsbytes("`Float ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Float (@[")], - _c0_=[0,[8,[0,0,5],0,0,0],caml_string_of_jsbytes("%F")], - _c1_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _c2_= - [0, - [11, - caml_string_of_jsbytes("`Int ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Int (@[")], - _c3_=[0,[4,0,0,0,0],caml_string_of_jsbytes("%d")], - _c4_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _c5_= - [0, - [11, - caml_string_of_jsbytes("`Intlit ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Intlit (@[")], - _c6_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _c7_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _c8_= - [0, - [11, - caml_string_of_jsbytes("`String ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`String (@[")], - _c9_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _c__=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _dk_=[0,737456202,1], - _dl_=[0,737456202,0], - _dh_= - [0, - [2,0,[11,caml_string_of_jsbytes(" '"),[2,0,[2,0,[12,39,0]]]]], - caml_string_of_jsbytes("%s '%s%s'")], - _dg_=[0,caml_string_of_jsbytes("lib/read.mll"),72,32], - _df_= - [0, - [2,0,[11,caml_string_of_jsbytes(" '"),[2,0,[12,39,0]]]], - caml_string_of_jsbytes("%s '%s'")], - _db_= - [0, - [11, - caml_string_of_jsbytes("File "), - [2,0,[11,caml_string_of_jsbytes(", line"),0]]], - caml_string_of_jsbytes("File %s, line")], - _dc_= - [0, - [11,caml_string_of_jsbytes("byte "),[4,3,0,0,0]], - caml_string_of_jsbytes("byte %i")], - _de_= - [0, - [11,caml_string_of_jsbytes("bytes "),[4,3,0,0,[12,45,[4,3,0,0,0]]]], - caml_string_of_jsbytes("bytes %i-%i")], - _dd_= + [11, cst_bytes, [4, 3, 0, 0, [12, 45, [4, 3, 0, 0, 0]]]], + cst_bytes_i_i], + _dd_ = [0, [2, 0, - [12, - 32, - [4, - 3, - 0, - 0, - [11, - caml_string_of_jsbytes(", "), - [2,0,[11,caml_string_of_jsbytes(":\n"),[2,0,0]]]]]]], - caml_string_of_jsbytes("%s %i, %s:\n%s")], - _da_=[0,caml_string_of_jsbytes("lib/read.mll"),44,13], - _c$_=[0,[15,0],caml_string_of_jsbytes("%a")], - _ck_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0], - caml_string_of_jsbytes("@[")], - _cl_= + [12, 32, [4, 3, 0, 0, [11, cst$93, [2, 0, [11, cst$94, [2, 0, 0]]]]]]], + cst_s_i_s_s], + _da_ = [0, cst_lib_read_mll, 44, 13], + _c$_ = [0, [15, 0], cst_a], + cst_null$5 = cst_null$9, + _ck_ = [0, [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], 0], cst_hv2$0], + _cl_ = [0, [12, 123, [17, - [0,caml_string_of_jsbytes("@;<1 0>"),1,0], - [15,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,125,0]]]]], - caml_string_of_jsbytes("{@;<1 0>%a@;<1 -2>}")], - _cm_=[0,[17,0,0],caml_string_of_jsbytes("@]")], - _cn_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0], - caml_string_of_jsbytes("@[")], - _co_= + [0, cst_1_0, 1, 0], + [15, [17, [0, cst_1_2, 1, -2], [12, 125, 0]]]]], + cst_1_0_a_1_2], + _cm_ = [0, [17, 0, 0], cst$96], + _cn_ = [0, [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], 0], cst_hv2$0], + _co_ = [0, [12, 91, [17, - [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [0, cst_1_0, 1, 0], [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15, - [17,0,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,0]]]]]]], - caml_string_of_jsbytes("[@;<1 0>@[%a@]@;<1 -2>]")], - _cq_= + [1, [0, [11, cst_hov, 0], cst_hov]], + [15, [17, 0, [17, [0, cst_1_2, 1, -2], [12, 93, 0]]]]]]], + cst_1_0_hov_a_1_2], + _cq_ = [0, [12, 91, [17, - [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [0, cst_1_0, 1, 0], [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15, - [17,0,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,0]]]]]]], - caml_string_of_jsbytes("[@;<1 0>@[%a@]@;<1 -2>]")], - _cp_=[0,[17,0,0],caml_string_of_jsbytes("@]")], - _cr_= + [1, [0, [11, cst_hv, 0], cst_hv]], + [15, [17, 0, [17, [0, cst_1_2, 1, -2], [12, 93, 0]]]]]]], + cst_1_0_hv_a_1_2], + _cp_ = [0, [17, 0, 0], cst$96], + _cr_ = [0, [12, 60, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [2,0,[11,caml_string_of_jsbytes(": "),[15,[17,0,[12,62,0]]]]]]], - caml_string_of_jsbytes("<@[%s: %a@]>")], - _cs_=[0,[12,60,[2,0,[12,62,0]]],caml_string_of_jsbytes("<%s>")], - _ch_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0], - caml_string_of_jsbytes("@[")], - _ci_= + [1, [0, [11, cst_hv2, 0], cst_hv2]], + [2, 0, [11, cst$100, [15, [17, 0, [12, 62, 0]]]]]]], + cst_hv2_s_a], + _cs_ = [0, [12, 60, [2, 0, [12, 62, 0]]], cst_s], + _ch_ = [0, [18, [1, [0, [11, cst_hov2, 0], cst_hov2]], 0], cst_hov2$0], + _ci_ = [0, [12, 40, - [17, - [0,caml_string_of_jsbytes("@,"),0,0], - [15,[17,[0,caml_string_of_jsbytes("@;<0 -2>"),0,-2],[12,41,0]]]]], - caml_string_of_jsbytes("(@,%a@;<0 -2>)")], - _cj_=[0,[17,0,0],caml_string_of_jsbytes("@]")], - _ct_= + [17, [0, cst$87, 0, 0], [15, [17, [0, cst_0_2, 0, -2], [12, 41, 0]]]]], + cst_a_0_2], + _cj_ = [0, [17, 0, 0], cst$96], + _ct_ = [0, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [2,0,[11,caml_string_of_jsbytes(": "),[15,[17,0,0]]]]], - caml_string_of_jsbytes("@[%s: %a@]")], - _cw_=[0,[15,[17,2,0]],caml_string_of_jsbytes("%a@?")], - _cv_=[0,[15,0],caml_string_of_jsbytes("%a")], - _cu_= + [1, [0, [11, cst_hv2, 0], cst_hv2]], + [2, 0, [11, cst$100, [15, [17, 0, 0]]]]], + cst_hv2_s_a$0], + _cw_ = [0, [15, [17, 2, 0]], cst_a$0], + _cv_ = [0, [15, 0], cst_a], + _cu_ = [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15,[17,0,0]]], - caml_string_of_jsbytes("@[%a@]")], - _cg_= - [0, - [2,0,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes("%s@ ")], - _ce_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], - _cf_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], - _bZ_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], - _b0_=[0,[8,[0,0,3],0,[0,1],0],caml_string_of_jsbytes("%.1g")], - _b1_=[0,[8,[0,0,3],0,[0,2],0],caml_string_of_jsbytes("%.2g")], - _b2_=[0,[8,[0,0,3],0,[0,3],0],caml_string_of_jsbytes("%.3g")], - _b3_=[0,[8,[0,0,3],0,[0,4],0],caml_string_of_jsbytes("%.4g")], - _b4_=[0,[8,[0,0,3],0,[0,5],0],caml_string_of_jsbytes("%.5g")], - _b5_=[0,[8,[0,0,3],0,[0,6],0],caml_string_of_jsbytes("%.6g")], - _b6_=[0,[8,[0,0,3],0,[0,7],0],caml_string_of_jsbytes("%.7g")], - _b7_=[0,[8,[0,0,3],0,[0,8],0],caml_string_of_jsbytes("%.8g")], - _b8_=[0,[8,[0,0,3],0,[0,9],0],caml_string_of_jsbytes("%.9g")], - _b9_=[0,[8,[0,0,3],0,[0,10],0],caml_string_of_jsbytes("%.10g")], - _b__=[0,[8,[0,0,3],0,[0,11],0],caml_string_of_jsbytes("%.11g")], - _b$_=[0,[8,[0,0,3],0,[0,12],0],caml_string_of_jsbytes("%.12g")], - _ca_=[0,[8,[0,0,3],0,[0,13],0],caml_string_of_jsbytes("%.13g")], - _cb_=[0,[8,[0,0,3],0,[0,14],0],caml_string_of_jsbytes("%.14g")], - _cc_=[0,[8,[0,0,3],0,[0,15],0],caml_string_of_jsbytes("%.15g")], - _cd_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], - _bX_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], - _bY_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], - _bU_= + [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], [15, [17, 0, 0]]], + cst_hv2_a], + _cg_ = [0, [2, 0, [17, [0, cst$81, 1, 0], 0]], cst_s$0], + cst_NaN_value_not_allowed_in_s$4 = cst_NaN_value_not_allowed_in_s$5, + cst_Infinity_value_not_allowed$9 = cst_Infinity_value_not_allowed$11, + cst_Infinity_value_not_allowed$10 = cst_Infinity_value_not_allowed$12, + cst_NaN_value_not_allowed_in_s$3 = cst_NaN_value_not_allowed_in_s$5, + _ce_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], + _cf_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], + cst_0$7 = cst_0$8, + cst_Infinity_value_not_allowed$7 = cst_Infinity_value_not_allowed$11, + cst_Infinity_value_not_allowed$8 = cst_Infinity_value_not_allowed$12, + cst_NaN$4 = cst_NaN$5, + cst_Infinity$9 = cst_Infinity$11, + cst_Infinity$10 = cst_Infinity$12, + _bZ_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], + _b0_ = [0, [8, [0, 0, 3], 0, [0, 1], 0], cst_1g], + _b1_ = [0, [8, [0, 0, 3], 0, [0, 2], 0], cst_2g], + _b2_ = [0, [8, [0, 0, 3], 0, [0, 3], 0], cst_3g], + _b3_ = [0, [8, [0, 0, 3], 0, [0, 4], 0], cst_4g], + _b4_ = [0, [8, [0, 0, 3], 0, [0, 5], 0], cst_5g], + _b5_ = [0, [8, [0, 0, 3], 0, [0, 6], 0], cst_6g], + _b6_ = [0, [8, [0, 0, 3], 0, [0, 7], 0], cst_7g], + _b7_ = [0, [8, [0, 0, 3], 0, [0, 8], 0], cst_8g], + _b8_ = [0, [8, [0, 0, 3], 0, [0, 9], 0], cst_9g], + _b9_ = [0, [8, [0, 0, 3], 0, [0, 10], 0], cst_10g], + _b__ = [0, [8, [0, 0, 3], 0, [0, 11], 0], cst_11g], + _b$_ = [0, [8, [0, 0, 3], 0, [0, 12], 0], cst_12g], + _ca_ = [0, [8, [0, 0, 3], 0, [0, 13], 0], cst_13g], + _cb_ = [0, [8, [0, 0, 3], 0, [0, 14], 0], cst_14g], + _cc_ = [0, [8, [0, 0, 3], 0, [0, 15], 0], cst_15g], + _cd_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], + cst_0$6 = cst_0$8, + cst_NaN$3 = cst_NaN$5, + _bX_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], + _bY_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], + cst_0$5 = cst_0$8, + cst_Infinity$7 = cst_Infinity$11, + cst_Infinity$8 = cst_Infinity$12, + cst_true$1 = cst_true$3, + cst_false$1 = cst_false$3, + cst_null$4 = cst_null$9, + cst_b$1 = cst_b$3, + cst_t$1 = cst_t$3, + cst_n$1 = cst_n$3, + cst_f$1 = cst_f$3, + cst_r$1 = cst_r$3, + _bU_ = [0, [11, - caml_string_of_jsbytes("src="), + cst_src, [3, 0, [11, - caml_string_of_jsbytes(" start="), - [4, - 3, - 0, - 0, - [11,caml_string_of_jsbytes(" len="),[4,3,0,0,[12,10,[10,0]]]]]]]], - caml_string_of_jsbytes("src=%S start=%i len=%i\n%!")], - _bs_= + cst_start, + [4, 3, 0, 0, [11, cst_len, [4, 3, 0, 0, [12, 10, [10, 0]]]]]]]], + cst_src_S_start_i_len_i], + cst_u00$1 = cst_u00$3, + _bs_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], + _bj_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], + _bk_ = [0, [12, 40, [18, [1, [0, 0, cst$83]], 0]], cst$84], + _bl_ = [0, [3, 0, 0], cst_S], + _bm_ = [0, [12, 44, [17, [0, cst$81, 1, 0], 0]], cst$85], + _bn_ = [0, [17, 0, [12, 41, 0]], cst$86], + cst_Null$0 = cst_Null$3, + _bh_ = [0, - [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(";@ ")], - _bj_= + [11, cst_Assoc, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Assoc_hov], + _bi_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], + _bo_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], + _bp_ = [0, [17, 0, [12, 41, 0]], cst$86], + _bq_ = [0, - [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(";@ ")], - _bk_= + [11, cst_List, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_List_hov], + _br_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], + _bt_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], + _bu_ = [0, [17, 0, [12, 41, 0]], cst$86], + _bv_ = [0, - [12,40,[18,[1,[0,0,caml_string_of_jsbytes("")]],0]], - caml_string_of_jsbytes("(@[")], - _bl_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _bm_= + [11, cst_Bool, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Bool_hov], + _bw_ = [0, [9, 0, 0], cst_B], + _bx_ = [0, [17, 0, [12, 41, 0]], cst$86], + _by_ = [0, - [12,44,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(",@ ")], - _bn_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _bh_= + [11, cst_Float, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Float_hov], + _bz_ = [0, [8, [0, 0, 5], 0, 0, 0], cst_F], + _bA_ = [0, [17, 0, [12, 41, 0]], cst$86], + _bB_ = [0, - [11, - caml_string_of_jsbytes("`Assoc ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Assoc (@[")], - _bi_= + [11, cst_Int, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Int_hov], + _bC_ = [0, [4, 0, 0, 0, 0], cst_d], + _bD_ = [0, [17, 0, [12, 41, 0]], cst$86], + _bE_ = [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes("<2>"),0], - caml_string_of_jsbytes("<2>")]], - [12,91,0]], - caml_string_of_jsbytes("@[<2>[")], - _bo_= + [11, cst_String, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_String_hov], + _bF_ = [0, [3, 0, 0], cst_S], + _bG_ = [0, [17, 0, [12, 41, 0]], cst$86], + _bS_ = [0, 737456202, 1], + _bT_ = [0, 737456202, 0], + cst_Invalid_token = cst_Invalid_token$15, + cst_Invalid_token$0 = cst_Invalid_token$15, + cst_Unexpected_end_of_input = cst_Unexpected_end_of_input$140, + cst_Invalid_token$1 = cst_Invalid_token$15, + cst_Unexpected_end_of_input$0 = cst_Unexpected_end_of_input$140, + cst_Unexpected_end_of_input$1 = cst_Unexpected_end_of_input$140, + cst_Invalid_escape_sequence = cst_Invalid_escape_sequence$2, + cst_Unexpected_end_of_input$2 = cst_Unexpected_end_of_input$140, + cst_Invalid_low_surrogate_for_ = cst_Invalid_low_surrogate_for_$2, + cst_Missing_escape_sequence_re = cst_Missing_escape_sequence_re$2, + cst_Unexpected_end_of_input$3 = cst_Unexpected_end_of_input$140, + cst_Invalid_string_literal = cst_Invalid_string_literal$8, + cst_Unexpected_end_of_input$4 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found = cst_Expected_or_but_found$45, + cst_Unexpected_end_of_input$5 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found = cst_Expected_but_found$46, + cst_Unexpected_end_of_input$6 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$0 = cst_Expected_but_found$47, + cst_Unexpected_end_of_input$7 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$1 = cst_Expected_but_found$48, + cst_Unexpected_end_of_input$8 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$0 = cst_Expected_or_but_found$46, + cst_Unexpected_end_of_input$9 = cst_Unexpected_end_of_input$140, + cst_Unterminated_comment = cst_Unterminated_comment$5, + cst_Expected_null_but_found = cst_Expected_null_but_found$2, + cst_Unexpected_end_of_input$10 = cst_Unexpected_end_of_input$140, + cst_Expected_true_or_false_but = cst_Expected_true_or_false_but$2, + cst_Unexpected_end_of_input$11 = cst_Unexpected_end_of_input$140, + cst_Int_overflow$1 = cst_Int_overflow$7, + cst_Int_overflow$2 = cst_Int_overflow$7, + cst_Expected_an_integer_but_fo = cst_Expected_an_integer_but_fo$2, + cst_Expected_integer_but_found = cst_Expected_integer_but_found$2, + cst_Unexpected_end_of_input$12 = cst_Unexpected_end_of_input$140, + cst_Int32_overflow = cst_Int32_overflow$5, + cst_Expected_an_int32_but_foun = cst_Expected_an_int32_but_foun$2, + cst_Expected_int32_but_found = cst_Expected_int32_but_found$2, + cst_Unexpected_end_of_input$13 = cst_Unexpected_end_of_input$140, + cst_Int32_overflow$0 = cst_Int32_overflow$5, + cst_Expected_an_int64_but_foun = cst_Expected_an_int64_but_foun$2, + cst_Expected_int64_but_found = cst_Expected_int64_but_found$2, + cst_Unexpected_end_of_input$14 = cst_Unexpected_end_of_input$140, + cst_Expected_a_number_but_foun = cst_Expected_a_number_but_foun$2, + cst_Expected_number_but_found = cst_Expected_number_but_found$2, + cst_Unexpected_end_of_input$15 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$2 = cst_Expected_but_found$49, + cst_Unexpected_end_of_input$16 = cst_Unexpected_end_of_input$140, + cst_Expected_string_or_identif = cst_Expected_string_or_identif$11, + cst_Unexpected_end_of_input$17 = cst_Unexpected_end_of_input$140, + cst_Expected_string_or_identif$0 = cst_Expected_string_or_identif$11, + cst_Unexpected_end_of_input$18 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$3 = cst_Expected_but_found$50, + cst_Unexpected_end_of_input$19 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$4 = cst_Expected_but_found$50, + cst_Unexpected_end_of_input$20 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$1 = cst_Expected_or_but_found$47, + cst_Unexpected_end_of_input$21 = cst_Unexpected_end_of_input$140, + cst_Invalid_token$2 = cst_Invalid_token$15, + cst_Expected_but_found$5 = cst_Expected_but_found$51, + cst_Unexpected_end_of_input$22 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$2 = cst_Expected_or_but_found$48, + cst_Expected_or_but_found$3 = cst_Expected_or_but_found$49, + cst_Expected_or_but_found$4 = cst_Expected_or_but_found$50, + cst_Unexpected_end_of_input$23 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$5 = cst_Expected_or_but_found$47, + cst_Expected_or_but_found$6 = cst_Expected_or_but_found$50, + cst_Expected_or_but_found$7 = cst_Expected_or_but_found$50, + cst_Unexpected_end_of_input$24 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$6 = cst_Expected_but_found$52, + cst_Unexpected_end_of_input$25 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$7 = cst_Expected_but_found$52, + cst_Unexpected_end_of_input$26 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$8 = cst_Expected_or_but_found$51, + cst_Unexpected_end_of_input$27 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$8 = cst_Expected_but_found$53, + cst_Unexpected_end_of_input$28 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$9 = cst_Expected_or_but_found$52, + cst_Unexpected_end_of_input$29 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$9 = cst_Expected_but_found$54, + cst_Unexpected_end_of_input$30 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$10 = cst_Expected_but_found$51, + cst_Unexpected_end_of_input$31 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$11 = cst_Expected_but_found$50, + cst_Unexpected_end_of_input$32 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$12 = cst_Expected_but_found$55, + cst_Unexpected_end_of_input$33 = cst_Unexpected_end_of_input$140, + cst_Invalid_token$3 = cst_Invalid_token$15, + cst_Invalid_token$4 = cst_Invalid_token$15, + cst_Unexpected_end_of_input$34 = cst_Unexpected_end_of_input$140, + cst_Invalid_token$5 = cst_Invalid_token$15, + cst_Invalid_string_literal$0 = cst_Invalid_string_literal$8, + cst_Unexpected_end_of_input$35 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$10 = cst_Expected_or_but_found$45, + cst_Unexpected_end_of_input$36 = cst_Unexpected_end_of_input$140, + cst_Expected_string_or_identif$1 = cst_Expected_string_or_identif$11, + cst_Unexpected_end_of_input$37 = cst_Unexpected_end_of_input$140, + cst_Invalid_token$6 = cst_Invalid_token$15, + cst_Invalid_token$7 = cst_Invalid_token$15, + cst_Unexpected_end_of_input$38 = cst_Unexpected_end_of_input$140, + cst_Invalid_token$8 = cst_Invalid_token$15, + cst_Invalid_string_literal$1 = cst_Invalid_string_literal$8, + cst_Unexpected_end_of_input$39 = cst_Unexpected_end_of_input$140, + cst_Expected_string_or_identif$2 = cst_Expected_string_or_identif$11, + cst_Unexpected_end_of_input$40 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$11 = cst_Expected_or_but_found$51, + cst_Unexpected_end_of_input$41 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$12 = cst_Expected_or_but_found$47, + cst_Unexpected_end_of_input$42 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$13 = cst_Expected_but_found$53, + cst_Unexpected_end_of_input$43 = cst_Unexpected_end_of_input$140, + cst_Unterminated_comment$0 = cst_Unterminated_comment$5, + cst_Expected_two_objects_check = cst_Expected_two_objects_check$1, + cst_Can_t_convert_each_element = cst_Can_t_convert_each_element$1, + cst_Expected_string_or_null_go = cst_Expected_string_or_null_go$1, + cst_Expected_string_got = cst_Expected_string_got$1, + cst_Expected_array_got = cst_Expected_array_got$1, + cst_Expected_int_or_null_got = cst_Expected_int_or_null_got$1, + cst_Expected_int_got = cst_Expected_int_got$1, + cst_Expected_float_or_null_got = cst_Expected_float_or_null_got$1, + cst_Expected_float_got = cst_Expected_float_got$1, + cst_Expected_number_or_null_go = cst_Expected_number_or_null_go$1, + cst_Expected_number_got = cst_Expected_number_got$1, + cst_Expected_bool_or_null_got = cst_Expected_bool_or_null_got$1, + cst_Expected_bool_got = cst_Expected_bool_got$1, + cst_Expected_object_got = cst_Expected_object_got$1, + cst_Can_t_map_function_over_no = cst_Can_t_map_function_over_no$1, + cst_out_of_bounds = cst_out_of_bounds$1, + cst_Index = cst_Index$1, + cst_of_non_array_type = cst_of_non_array_type$1, + cst_Can_t_get_index = cst_Can_t_get_index$1, + cst_of_non_object_type = cst_of_non_object_type$1, + cst_Can_t_get_member = cst_Can_t_get_member$1, + cst_null$3 = cst_null$9, + cst_object = cst_object$1, + cst_array = cst_array$1, + cst_bool = cst_bool$1, + cst_variant = cst_variant$1, + cst_tuple = cst_tuple$1, + cst_float = cst_float$1, + cst_int = cst_int$1, + cst_intlit = cst_intlit$1, + cst_string = cst_string$1, + cst_Blank_input_data$0 = cst_Blank_input_data$5, + cst_Blank_input_data = cst_Blank_input_data$5, + cst_Junk_after_end_of_JSON_val = cst_Junk_after_end_of_JSON_val$2, + cst_Int8_overflow = cst_Int8_overflow$2, + cst_Int_overflow$0 = cst_Int_overflow$7, + cst_Int_overflow = cst_Int_overflow$7, + _bP_ = [0, [2, 0, [11, cst$92, [2, 0, [2, 0, [12, 39, 0]]]]], cst_s_s_s], + _bO_ = [0, cst_lib_read_mll, 72, 32], + _bN_ = [0, [2, 0, [11, cst$92, [2, 0, [12, 39, 0]]]], cst_s_s], + _bJ_ = [0, [11, cst_File, [2, 0, [11, cst_line, 0]]], cst_File_s_line], + cst_Line = cst_Line$2, + _bK_ = [0, [11, cst_byte, [4, 3, 0, 0, 0]], cst_byte_i], + _bM_ = [0, - [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], - caml_string_of_jsbytes("@,]@]")], - _bp_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _bq_= - [0, - [11, - caml_string_of_jsbytes("`List ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`List (@[")], - _br_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes("<2>"),0], - caml_string_of_jsbytes("<2>")]], - [12,91,0]], - caml_string_of_jsbytes("@[<2>[")], - _bt_= - [0, - [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], - caml_string_of_jsbytes("@,]@]")], - _bu_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _bv_= - [0, - [11, - caml_string_of_jsbytes("`Bool ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Bool (@[")], - _bw_=[0,[9,0,0],caml_string_of_jsbytes("%B")], - _bx_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _by_= - [0, - [11, - caml_string_of_jsbytes("`Float ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Float (@[")], - _bz_=[0,[8,[0,0,5],0,0,0],caml_string_of_jsbytes("%F")], - _bA_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _bB_= - [0, - [11, - caml_string_of_jsbytes("`Int ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Int (@[")], - _bC_=[0,[4,0,0,0,0],caml_string_of_jsbytes("%d")], - _bD_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _bE_= - [0, - [11, - caml_string_of_jsbytes("`String ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`String (@[")], - _bF_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _bG_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _bS_=[0,737456202,1], - _bT_=[0,737456202,0], - _bP_= - [0, - [2,0,[11,caml_string_of_jsbytes(" '"),[2,0,[2,0,[12,39,0]]]]], - caml_string_of_jsbytes("%s '%s%s'")], - _bO_=[0,caml_string_of_jsbytes("lib/read.mll"),72,32], - _bN_= - [0, - [2,0,[11,caml_string_of_jsbytes(" '"),[2,0,[12,39,0]]]], - caml_string_of_jsbytes("%s '%s'")], - _bJ_= - [0, - [11, - caml_string_of_jsbytes("File "), - [2,0,[11,caml_string_of_jsbytes(", line"),0]]], - caml_string_of_jsbytes("File %s, line")], - _bK_= - [0, - [11,caml_string_of_jsbytes("byte "),[4,3,0,0,0]], - caml_string_of_jsbytes("byte %i")], - _bM_= - [0, - [11,caml_string_of_jsbytes("bytes "),[4,3,0,0,[12,45,[4,3,0,0,0]]]], - caml_string_of_jsbytes("bytes %i-%i")], - _bL_= + [11, cst_bytes, [4, 3, 0, 0, [12, 45, [4, 3, 0, 0, 0]]]], + cst_bytes_i_i], + _bL_ = [0, [2, 0, - [12, - 32, - [4, - 3, - 0, - 0, - [11, - caml_string_of_jsbytes(", "), - [2,0,[11,caml_string_of_jsbytes(":\n"),[2,0,0]]]]]]], - caml_string_of_jsbytes("%s %i, %s:\n%s")], - _bI_=[0,caml_string_of_jsbytes("lib/read.mll"),44,13], - _bH_=[0,[15,0],caml_string_of_jsbytes("%a")], - _a8_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0], - caml_string_of_jsbytes("@[")], - _a9_= + [12, 32, [4, 3, 0, 0, [11, cst$93, [2, 0, [11, cst$94, [2, 0, 0]]]]]]], + cst_s_i_s_s], + _bI_ = [0, cst_lib_read_mll, 44, 13], + _bH_ = [0, [15, 0], cst_a], + cst_null$2 = cst_null$9, + _a8_ = [0, [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], 0], cst_hv2$0], + _a9_ = [0, [12, 123, [17, - [0,caml_string_of_jsbytes("@;<1 0>"),1,0], - [15,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,125,0]]]]], - caml_string_of_jsbytes("{@;<1 0>%a@;<1 -2>}")], - _a__=[0,[17,0,0],caml_string_of_jsbytes("@]")], - _a$_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0], - caml_string_of_jsbytes("@[")], - _ba_= + [0, cst_1_0, 1, 0], + [15, [17, [0, cst_1_2, 1, -2], [12, 125, 0]]]]], + cst_1_0_a_1_2], + _a__ = [0, [17, 0, 0], cst$96], + _a$_ = [0, [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], 0], cst_hv2$0], + _ba_ = [0, [12, 91, [17, - [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [0, cst_1_0, 1, 0], [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15, - [17,0,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,0]]]]]]], - caml_string_of_jsbytes("[@;<1 0>@[%a@]@;<1 -2>]")], - _bc_= + [1, [0, [11, cst_hov, 0], cst_hov]], + [15, [17, 0, [17, [0, cst_1_2, 1, -2], [12, 93, 0]]]]]]], + cst_1_0_hov_a_1_2], + _bc_ = [0, [12, 91, [17, - [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [0, cst_1_0, 1, 0], [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15, - [17,0,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,0]]]]]]], - caml_string_of_jsbytes("[@;<1 0>@[%a@]@;<1 -2>]")], - _bb_=[0,[17,0,0],caml_string_of_jsbytes("@]")], - _bd_= + [1, [0, [11, cst_hv, 0], cst_hv]], + [15, [17, 0, [17, [0, cst_1_2, 1, -2], [12, 93, 0]]]]]]], + cst_1_0_hv_a_1_2], + _bb_ = [0, [17, 0, 0], cst$96], + _bd_ = [0, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [2,0,[11,caml_string_of_jsbytes(": "),[15,[17,0,0]]]]], - caml_string_of_jsbytes("@[%s: %a@]")], - _bg_=[0,[15,[17,2,0]],caml_string_of_jsbytes("%a@?")], - _bf_=[0,[15,0],caml_string_of_jsbytes("%a")], - _be_= + [1, [0, [11, cst_hv2, 0], cst_hv2]], + [2, 0, [11, cst$100, [15, [17, 0, 0]]]]], + cst_hv2_s_a$0], + _bg_ = [0, [15, [17, 2, 0]], cst_a$0], + _bf_ = [0, [15, 0], cst_a], + _be_ = [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15,[17,0,0]]], - caml_string_of_jsbytes("@[%a@]")], - _a7_= - [0, - [2,0,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes("%s@ ")], - _a5_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], - _a6_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], - _aO_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], - _aP_=[0,[8,[0,0,3],0,[0,1],0],caml_string_of_jsbytes("%.1g")], - _aQ_=[0,[8,[0,0,3],0,[0,2],0],caml_string_of_jsbytes("%.2g")], - _aR_=[0,[8,[0,0,3],0,[0,3],0],caml_string_of_jsbytes("%.3g")], - _aS_=[0,[8,[0,0,3],0,[0,4],0],caml_string_of_jsbytes("%.4g")], - _aT_=[0,[8,[0,0,3],0,[0,5],0],caml_string_of_jsbytes("%.5g")], - _aU_=[0,[8,[0,0,3],0,[0,6],0],caml_string_of_jsbytes("%.6g")], - _aV_=[0,[8,[0,0,3],0,[0,7],0],caml_string_of_jsbytes("%.7g")], - _aW_=[0,[8,[0,0,3],0,[0,8],0],caml_string_of_jsbytes("%.8g")], - _aX_=[0,[8,[0,0,3],0,[0,9],0],caml_string_of_jsbytes("%.9g")], - _aY_=[0,[8,[0,0,3],0,[0,10],0],caml_string_of_jsbytes("%.10g")], - _aZ_=[0,[8,[0,0,3],0,[0,11],0],caml_string_of_jsbytes("%.11g")], - _a0_=[0,[8,[0,0,3],0,[0,12],0],caml_string_of_jsbytes("%.12g")], - _a1_=[0,[8,[0,0,3],0,[0,13],0],caml_string_of_jsbytes("%.13g")], - _a2_=[0,[8,[0,0,3],0,[0,14],0],caml_string_of_jsbytes("%.14g")], - _a3_=[0,[8,[0,0,3],0,[0,15],0],caml_string_of_jsbytes("%.15g")], - _a4_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], - _aM_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], - _aN_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], - _aJ_= + [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], [15, [17, 0, 0]]], + cst_hv2_a], + _a7_ = [0, [2, 0, [17, [0, cst$81, 1, 0], 0]], cst_s$0], + cst_NaN_value_not_allowed_in_s$2 = cst_NaN_value_not_allowed_in_s$5, + cst_Infinity_value_not_allowed$5 = cst_Infinity_value_not_allowed$11, + cst_Infinity_value_not_allowed$6 = cst_Infinity_value_not_allowed$12, + cst_NaN_value_not_allowed_in_s$1 = cst_NaN_value_not_allowed_in_s$5, + _a5_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], + _a6_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], + cst_0$4 = cst_0$8, + cst_Infinity_value_not_allowed$3 = cst_Infinity_value_not_allowed$11, + cst_Infinity_value_not_allowed$4 = cst_Infinity_value_not_allowed$12, + cst_NaN$2 = cst_NaN$5, + cst_Infinity$5 = cst_Infinity$11, + cst_Infinity$6 = cst_Infinity$12, + _aO_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], + _aP_ = [0, [8, [0, 0, 3], 0, [0, 1], 0], cst_1g], + _aQ_ = [0, [8, [0, 0, 3], 0, [0, 2], 0], cst_2g], + _aR_ = [0, [8, [0, 0, 3], 0, [0, 3], 0], cst_3g], + _aS_ = [0, [8, [0, 0, 3], 0, [0, 4], 0], cst_4g], + _aT_ = [0, [8, [0, 0, 3], 0, [0, 5], 0], cst_5g], + _aU_ = [0, [8, [0, 0, 3], 0, [0, 6], 0], cst_6g], + _aV_ = [0, [8, [0, 0, 3], 0, [0, 7], 0], cst_7g], + _aW_ = [0, [8, [0, 0, 3], 0, [0, 8], 0], cst_8g], + _aX_ = [0, [8, [0, 0, 3], 0, [0, 9], 0], cst_9g], + _aY_ = [0, [8, [0, 0, 3], 0, [0, 10], 0], cst_10g], + _aZ_ = [0, [8, [0, 0, 3], 0, [0, 11], 0], cst_11g], + _a0_ = [0, [8, [0, 0, 3], 0, [0, 12], 0], cst_12g], + _a1_ = [0, [8, [0, 0, 3], 0, [0, 13], 0], cst_13g], + _a2_ = [0, [8, [0, 0, 3], 0, [0, 14], 0], cst_14g], + _a3_ = [0, [8, [0, 0, 3], 0, [0, 15], 0], cst_15g], + _a4_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], + cst_0$3 = cst_0$8, + cst_NaN$1 = cst_NaN$5, + _aM_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], + _aN_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], + cst_0$2 = cst_0$8, + cst_Infinity$3 = cst_Infinity$11, + cst_Infinity$4 = cst_Infinity$12, + cst_true$0 = cst_true$3, + cst_false$0 = cst_false$3, + cst_null$1 = cst_null$9, + cst_b$0 = cst_b$3, + cst_t$0 = cst_t$3, + cst_n$0 = cst_n$3, + cst_f$0 = cst_f$3, + cst_r$0 = cst_r$3, + _aJ_ = [0, [11, - caml_string_of_jsbytes("src="), + cst_src, [3, 0, [11, - caml_string_of_jsbytes(" start="), - [4, - 3, - 0, - 0, - [11,caml_string_of_jsbytes(" len="),[4,3,0,0,[12,10,[10,0]]]]]]]], - caml_string_of_jsbytes("src=%S start=%i len=%i\n%!")], - _at_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0], - caml_string_of_jsbytes("@[")], - _au_= + cst_start, + [4, 3, 0, 0, [11, cst_len, [4, 3, 0, 0, [12, 10, [10, 0]]]]]]]], + cst_src_S_start_i_len_i], + cst_u00$0 = cst_u00$3, + cst_null$0 = cst_null$9, + _at_ = [0, [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], 0], cst_hv2$0], + _au_ = [0, [12, 123, [17, - [0,caml_string_of_jsbytes("@;<1 0>"),1,0], - [15,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,125,0]]]]], - caml_string_of_jsbytes("{@;<1 0>%a@;<1 -2>}")], - _av_=[0,[17,0,0],caml_string_of_jsbytes("@]")], - _aw_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0], - caml_string_of_jsbytes("@[")], - _ax_= + [0, cst_1_0, 1, 0], + [15, [17, [0, cst_1_2, 1, -2], [12, 125, 0]]]]], + cst_1_0_a_1_2], + _av_ = [0, [17, 0, 0], cst$96], + _aw_ = [0, [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], 0], cst_hv2$0], + _ax_ = [0, [12, 91, [17, - [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [0, cst_1_0, 1, 0], [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15, - [17,0,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,0]]]]]]], - caml_string_of_jsbytes("[@;<1 0>@[%a@]@;<1 -2>]")], - _az_= + [1, [0, [11, cst_hov, 0], cst_hov]], + [15, [17, 0, [17, [0, cst_1_2, 1, -2], [12, 93, 0]]]]]]], + cst_1_0_hov_a_1_2], + _az_ = [0, [12, 91, [17, - [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [0, cst_1_0, 1, 0], [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15, - [17,0,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,0]]]]]]], - caml_string_of_jsbytes("[@;<1 0>@[%a@]@;<1 -2>]")], - _ay_=[0,[17,0,0],caml_string_of_jsbytes("@]")], - _aA_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0], - caml_string_of_jsbytes("@[")], - _aB_= + [1, [0, [11, cst_hv, 0], cst_hv]], + [15, [17, 0, [17, [0, cst_1_2, 1, -2], [12, 93, 0]]]]]]], + cst_1_0_hv_a_1_2], + _ay_ = [0, [17, 0, 0], cst$96], + _aA_ = [0, [18, [1, [0, [11, cst_hov2, 0], cst_hov2]], 0], cst_hov2$0], + _aB_ = [0, [12, 40, - [17, - [0,caml_string_of_jsbytes("@,"),0,0], - [15,[17,[0,caml_string_of_jsbytes("@;<0 -2>"),0,-2],[12,41,0]]]]], - caml_string_of_jsbytes("(@,%a@;<0 -2>)")], - _aC_=[0,[17,0,0],caml_string_of_jsbytes("@]")], - _aD_= + [17, [0, cst$87, 0, 0], [15, [17, [0, cst_0_2, 0, -2], [12, 41, 0]]]]], + cst_a_0_2], + _aC_ = [0, [17, 0, 0], cst$96], + _aD_ = [0, [12, 60, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [2,0,[11,caml_string_of_jsbytes(": "),[15,[17,0,[12,62,0]]]]]]], - caml_string_of_jsbytes("<@[%s: %a@]>")], - _aE_=[0,[12,60,[2,0,[12,62,0]]],caml_string_of_jsbytes("<%s>")], - _aF_= + [1, [0, [11, cst_hv2, 0], cst_hv2]], + [2, 0, [11, cst$100, [15, [17, 0, [12, 62, 0]]]]]]], + cst_hv2_s_a], + _aE_ = [0, [12, 60, [2, 0, [12, 62, 0]]], cst_s], + _aF_ = [0, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [2,0,[11,caml_string_of_jsbytes(": "),[15,[17,0,0]]]]], - caml_string_of_jsbytes("@[%s: %a@]")], - _aI_=[0,[15,[17,2,0]],caml_string_of_jsbytes("%a@?")], - _aH_=[0,[15,0],caml_string_of_jsbytes("%a")], - _aG_= + [1, [0, [11, cst_hv2, 0], cst_hv2]], + [2, 0, [11, cst$100, [15, [17, 0, 0]]]]], + cst_hv2_s_a$0], + _aI_ = [0, [15, [17, 2, 0]], cst_a$0], + _aH_ = [0, [15, 0], cst_a], + _aG_ = [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15,[17,0,0]]], - caml_string_of_jsbytes("@[%a@]")], - _as_= - [0, - [2,0,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes("%s@ ")], - _ar_=[0,[15,0],caml_string_of_jsbytes("%a")], - _x_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], - _y_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], - _g_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], - _h_=[0,[8,[0,0,3],0,[0,1],0],caml_string_of_jsbytes("%.1g")], - _i_=[0,[8,[0,0,3],0,[0,2],0],caml_string_of_jsbytes("%.2g")], - _j_=[0,[8,[0,0,3],0,[0,3],0],caml_string_of_jsbytes("%.3g")], - _k_=[0,[8,[0,0,3],0,[0,4],0],caml_string_of_jsbytes("%.4g")], - _l_=[0,[8,[0,0,3],0,[0,5],0],caml_string_of_jsbytes("%.5g")], - _m_=[0,[8,[0,0,3],0,[0,6],0],caml_string_of_jsbytes("%.6g")], - _n_=[0,[8,[0,0,3],0,[0,7],0],caml_string_of_jsbytes("%.7g")], - _o_=[0,[8,[0,0,3],0,[0,8],0],caml_string_of_jsbytes("%.8g")], - _p_=[0,[8,[0,0,3],0,[0,9],0],caml_string_of_jsbytes("%.9g")], - _q_=[0,[8,[0,0,3],0,[0,10],0],caml_string_of_jsbytes("%.10g")], - _r_=[0,[8,[0,0,3],0,[0,11],0],caml_string_of_jsbytes("%.11g")], - _s_=[0,[8,[0,0,3],0,[0,12],0],caml_string_of_jsbytes("%.12g")], - _t_=[0,[8,[0,0,3],0,[0,13],0],caml_string_of_jsbytes("%.13g")], - _u_=[0,[8,[0,0,3],0,[0,14],0],caml_string_of_jsbytes("%.14g")], - _v_=[0,[8,[0,0,3],0,[0,15],0],caml_string_of_jsbytes("%.15g")], - _w_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], - _e_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], - _f_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], - _b_= + [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], [15, [17, 0, 0]]], + cst_hv2_a], + _as_ = [0, [2, 0, [17, [0, cst$81, 1, 0], 0]], cst_s$0], + _ar_ = [0, [15, 0], cst_a], + cst_NaN_value_not_allowed_in_s$0 = cst_NaN_value_not_allowed_in_s$5, + cst_Infinity_value_not_allowed$1 = cst_Infinity_value_not_allowed$11, + cst_Infinity_value_not_allowed$2 = cst_Infinity_value_not_allowed$12, + cst_NaN_value_not_allowed_in_s = cst_NaN_value_not_allowed_in_s$5, + _x_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], + _y_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], + cst_0$1 = cst_0$8, + cst_Infinity_value_not_allowed = cst_Infinity_value_not_allowed$11, + cst_Infinity_value_not_allowed$0 = cst_Infinity_value_not_allowed$12, + cst_NaN$0 = cst_NaN$5, + cst_Infinity$1 = cst_Infinity$11, + cst_Infinity$2 = cst_Infinity$12, + _g_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], + _h_ = [0, [8, [0, 0, 3], 0, [0, 1], 0], cst_1g], + _i_ = [0, [8, [0, 0, 3], 0, [0, 2], 0], cst_2g], + _j_ = [0, [8, [0, 0, 3], 0, [0, 3], 0], cst_3g], + _k_ = [0, [8, [0, 0, 3], 0, [0, 4], 0], cst_4g], + _l_ = [0, [8, [0, 0, 3], 0, [0, 5], 0], cst_5g], + _m_ = [0, [8, [0, 0, 3], 0, [0, 6], 0], cst_6g], + _n_ = [0, [8, [0, 0, 3], 0, [0, 7], 0], cst_7g], + _o_ = [0, [8, [0, 0, 3], 0, [0, 8], 0], cst_8g], + _p_ = [0, [8, [0, 0, 3], 0, [0, 9], 0], cst_9g], + _q_ = [0, [8, [0, 0, 3], 0, [0, 10], 0], cst_10g], + _r_ = [0, [8, [0, 0, 3], 0, [0, 11], 0], cst_11g], + _s_ = [0, [8, [0, 0, 3], 0, [0, 12], 0], cst_12g], + _t_ = [0, [8, [0, 0, 3], 0, [0, 13], 0], cst_13g], + _u_ = [0, [8, [0, 0, 3], 0, [0, 14], 0], cst_14g], + _v_ = [0, [8, [0, 0, 3], 0, [0, 15], 0], cst_15g], + _w_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], + cst_0$0 = cst_0$8, + cst_NaN = cst_NaN$5, + _e_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], + _f_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], + cst_0 = cst_0$8, + cst_Infinity = cst_Infinity$11, + cst_Infinity$0 = cst_Infinity$12, + cst_true = cst_true$3, + cst_false = cst_false$3, + cst_null = cst_null$9, + cst_b = cst_b$3, + cst_t = cst_t$3, + cst_n = cst_n$3, + cst_f = cst_f$3, + cst_r = cst_r$3, + _b_ = [0, [11, - caml_string_of_jsbytes("src="), + cst_src, [3, 0, [11, - caml_string_of_jsbytes(" start="), - [4, - 3, - 0, - 0, - [11,caml_string_of_jsbytes(" len="),[4,3,0,0,[12,10,[10,0]]]]]]]], - caml_string_of_jsbytes("src=%S start=%i len=%i\n%!")], - _a_=[0,caml_string_of_jsbytes("common.ml"),57,4]; - function json_error(s){throw [0,Json_error,s]} - var - End_of_array=[248,cst_Yojson_End_of_array,caml_fresh_oo_id(0)], - End_of_object=[248,cst_Yojson_End_of_object,caml_fresh_oo_id(0)], - End_of_tuple=[248,cst_Yojson_End_of_tuple,caml_fresh_oo_id(0)], - End_of_input=[248,cst_Yojson_End_of_input,caml_fresh_oo_id(0)]; - function utf8_of_code(buf,x) - {var add=Stdlib_Buffer[12]; - function maxbits(n,x){return 0 === (x >>> n | 0)?1:0} - if(maxbits(7,x))return caml_call2(add,buf,caml_call1(Stdlib_Char[1],x)); - if(maxbits(11,x)) - {caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],192 | (x >>> 6 | 0) & 31)); - return caml_call2(add,buf,caml_call1(Stdlib_Char[1],128 | x & 63))} - if(maxbits(16,x)) - {caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],224 | (x >>> 12 | 0) & 15)); - caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 6 | 0) & 63)); - return caml_call2(add,buf,caml_call1(Stdlib_Char[1],128 | x & 63))} - if(maxbits(21,x)) - {caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],240 | (x >>> 18 | 0) & 7)); - caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 12 | 0) & 63)); - caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 6 | 0) & 63)); - return caml_call2(add,buf,caml_call1(Stdlib_Char[1],128 | x & 63))} - if(maxbits(26,x)) - {caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],248 | (x >>> 24 | 0) & 3)); - caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 18 | 0) & 63)); - caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 12 | 0) & 63)); - caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 6 | 0) & 63)); - return caml_call2(add,buf,caml_call1(Stdlib_Char[1],128 | x & 63))} - if(maxbits(31,x)) - {caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],252 | (x >>> 30 | 0) & 1)); - caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 24 | 0) & 63)); - caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 18 | 0) & 63)); - caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 12 | 0) & 63)); - caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 6 | 0) & 63)); - return caml_call2(add,buf,caml_call1(Stdlib_Char[1],128 | x & 63))} - throw [0,Assert_failure,_a_]} - function utf8_of_surrogate_pair(buf,i,j) - {var high10=i - 55296 | 0,low10=j - 56320 | 0; - return utf8_of_code(buf,65536 + (high10 << 10 | low10) | 0)} - var Lexer_state=[0]; - function init_lexer(buf,fname,opt,param) - {if(opt)var sth=opt[1],lnum=sth;else var lnum=1; - if(buf) - var buf$0=buf[1],buf$1=buf$0; - else - var buf$1=caml_call1(Stdlib_Buffer[1],256); - return [0,buf$1,lnum,0,fname]} - function hex(n) - {var _pl_=10 <= n?n + 87 | 0:n + 48 | 0; - return caml_call1(Stdlib_Char[1],_pl_)} - function write_special(src,start,stop,ob,str) - {caml_call4(Stdlib_Buffer[18],ob,src,start[1],stop - start[1] | 0); - caml_call2(Stdlib_Buffer[16],ob,str); - start[1] = stop + 1 | 0; - return 0} - function finish_string(src,start,ob) - {try - {var - _pk_= - caml_call4 - (Stdlib_Buffer[18], - ob, - src, - start[1], - caml_ml_string_length(src) - start[1] | 0); - return _pk_} - catch(exc) - {exc = caml_wrap_exception(exc); - caml_call4 - (Stdlib_Printf[3], - _b_, - src, - start[1], - caml_ml_string_length(src) - start[1] | 0); - throw exc}} - function write_string(ob,s) - {caml_call2(Stdlib_Buffer[12],ob,34); - var start=[0,0],_pi_=caml_ml_string_length(s) - 1 | 0,_ph_=0; - if(! (_pi_ < 0)) - {var i=_ph_; - for(;;) - {var c=caml_string_get(s,i); - if(92 === c) - write_special(s,start,i,ob,cst); - else - {var switch$0=0; - if(35 <= c) - if(127 === c)switch$0 = 1;else switch$0 = 2; - else - if(8 <= c) - {var switch$1=0; - switch(c - 8 | 0) - {case 0:write_special(s,start,i,ob,cst_b);break; - case 1:write_special(s,start,i,ob,cst_t);break; - case 2:write_special(s,start,i,ob,cst_n);break; - case 4:write_special(s,start,i,ob,cst_f);break; - case 5:write_special(s,start,i,ob,cst_r);break; - case 26:write_special(s,start,i,ob,cst$0);break; - case 24: - case 25:switch$0 = 2;switch$1 = 1;break; - default:switch$0 = 1;switch$1 = 1}} - else - switch$0 = 1; - switch(switch$0) - {case 2:break; - case 1: - caml_call4(Stdlib_Buffer[18],ob,s,start[1],i - start[1] | 0); - caml_call2(Stdlib_Buffer[16],ob,cst_u00); - var _pf_=hex(c >>> 4 | 0); - caml_call2(Stdlib_Buffer[12],ob,_pf_); - var _pg_=hex(c & 15); - caml_call2(Stdlib_Buffer[12],ob,_pg_); - start[1] = i + 1 | 0; - break - }} - var _pj_=i + 1 | 0; - if(_pi_ !== i){var i=_pj_;continue} - break}} - finish_string(s,start,ob); - return caml_call2(Stdlib_Buffer[12],ob,34)} - function json_string_of_string(s) - {var ob=caml_call1(Stdlib_Buffer[1],10); - write_string(ob,s); - return caml_call1(Stdlib_Buffer[2],ob)} - function write_null(ob,param) - {return caml_call2(Stdlib_Buffer[16],ob,cst_null)} - function write_bool(ob,x) - {var _pe_=x?cst_true:cst_false; - return caml_call2(Stdlib_Buffer[16],ob,_pe_)} - var - _c_=caml_ml_string_length(caml_call1(Stdlib[33],Stdlib[20])), - _d_=caml_ml_string_length(caml_call1(Stdlib[33],Stdlib[19])); - caml_call2(Stdlib[17],_d_,_c_); - function write_digits(s,x) - {if(0 === x)return 0; - var d=x % 10 | 0; - write_digits(s,x / 10 | 0); - var - n=caml_call1(Stdlib[18],d), - _pd_=caml_call1(Stdlib_Char[1],n + 48 | 0); - return caml_call2(Stdlib_Buffer[12],s,_pd_)} - function write_int(ob,x) - {return 0 < x - ?write_digits(ob,x) - :0 <= x - ?caml_call2(Stdlib_Buffer[12],ob,48) - :(caml_call2(Stdlib_Buffer[12],ob,45),write_digits(ob,x))} - function float_needs_period(s) - {try - {var _o$_=caml_ml_string_length(s) - 1 | 0,_o__=0; - if(! (_o$_ < 0)) - {var i=_o__; - for(;;) - {var match=caml_string_get(s,i),switch$0=0; - if(48 <= match) - {if(! (58 <= match))switch$0 = 1} - else - if(45 === match)switch$0 = 1; - if(! switch$0)throw Stdlib[3]; - var _pb_=i + 1 | 0; - if(_o$_ !== i){var i=_pb_;continue} - break}} - var _pa_=1; - return _pa_} - catch(_pc_) - {_pc_ = caml_wrap_exception(_pc_); - if(_pc_ === Stdlib[3])return 0; - throw _pc_}} - function write_float(ob,x) - {var match=caml_classify_float(x); - if(3 === match) - {var _o8_=0. < x?cst_Infinity:cst_Infinity$0; - return caml_call2(Stdlib_Buffer[16],ob,_o8_)} - if(4 <= match)return caml_call2(Stdlib_Buffer[16],ob,cst_NaN); - var - s1=caml_call2(Stdlib_Printf[4],_e_,x), - s=caml_float_of_string(s1) == x?s1:caml_call2(Stdlib_Printf[4],_f_,x); - caml_call2(Stdlib_Buffer[16],ob,s); - var _o9_=float_needs_period(s); - return _o9_?caml_call2(Stdlib_Buffer[16],ob,cst_0):_o9_} - function write_normal_float_prec(significant_figures,ob,x) - {var switcher=significant_figures - 1 | 0; - if(15 < switcher >>> 0) - var s=caml_call2(Stdlib_Printf[4],_g_,x); - else - switch(switcher) - {case 0:var s=caml_call2(Stdlib_Printf[4],_h_,x);break; - case 1:var s=caml_call2(Stdlib_Printf[4],_i_,x);break; - case 2:var s=caml_call2(Stdlib_Printf[4],_j_,x);break; - case 3:var s=caml_call2(Stdlib_Printf[4],_k_,x);break; - case 4:var s=caml_call2(Stdlib_Printf[4],_l_,x);break; - case 5:var s=caml_call2(Stdlib_Printf[4],_m_,x);break; - case 6:var s=caml_call2(Stdlib_Printf[4],_n_,x);break; - case 7:var s=caml_call2(Stdlib_Printf[4],_o_,x);break; - case 8:var s=caml_call2(Stdlib_Printf[4],_p_,x);break; - case 9:var s=caml_call2(Stdlib_Printf[4],_q_,x);break; - case 10:var s=caml_call2(Stdlib_Printf[4],_r_,x);break; - case 11:var s=caml_call2(Stdlib_Printf[4],_s_,x);break; - case 12:var s=caml_call2(Stdlib_Printf[4],_t_,x);break; - case 13:var s=caml_call2(Stdlib_Printf[4],_u_,x);break; - case 14:var s=caml_call2(Stdlib_Printf[4],_v_,x);break; - default:var s=caml_call2(Stdlib_Printf[4],_w_,x)} - caml_call2(Stdlib_Buffer[16],ob,s); - var _o7_=float_needs_period(s); - return _o7_?caml_call2(Stdlib_Buffer[16],ob,cst_0$0):_o7_} - function write_float_prec(significant_figures,ob,x) - {var match=caml_classify_float(x); - if(3 === match) - {var _o6_=0. < x?cst_Infinity$1:cst_Infinity$2; - return caml_call2(Stdlib_Buffer[16],ob,_o6_)} - return 4 <= match - ?caml_call2(Stdlib_Buffer[16],ob,cst_NaN$0) - :write_normal_float_prec(significant_figures,ob,x)} - function write_std_float(ob,x) - {var match=caml_classify_float(x); - if(3 === match) - {var - _o4_= - 0. < x - ?cst_Infinity_value_not_allowed - :cst_Infinity_value_not_allowed$0; - return json_error(_o4_)} - if(4 <= match)return json_error(cst_NaN_value_not_allowed_in_s); - var - s1=caml_call2(Stdlib_Printf[4],_x_,x), - s=caml_float_of_string(s1) == x?s1:caml_call2(Stdlib_Printf[4],_y_,x); - caml_call2(Stdlib_Buffer[16],ob,s); - var _o5_=float_needs_period(s); - return _o5_?caml_call2(Stdlib_Buffer[16],ob,cst_0$1):_o5_} - function write_std_float_prec(significant_figures,ob,x) - {var match=caml_classify_float(x); - if(3 === match) - {var - _o3_= - 0. < x - ?cst_Infinity_value_not_allowed$1 - :cst_Infinity_value_not_allowed$2; - return json_error(_o3_)} - return 4 <= match - ?json_error(cst_NaN_value_not_allowed_in_s$0) - :write_normal_float_prec(significant_figures,ob,x)} - var - write_intlit=Stdlib_Buffer[16], - write_floatlit=Stdlib_Buffer[16], - write_stringlit=Stdlib_Buffer[16]; - function iter2(f_elt,f_sep,x,param$0) - {if(param$0) - {var l$0=param$0[2],y$0=param$0[1]; - caml_call2(f_elt,x,y$0); - var param=l$0; - for(;;) - {if(param) - {var l=param[2],y=param[1]; - caml_call1(f_sep,x); - caml_call2(f_elt,x,y); - var param=l; - continue} - return 0}} - return 0} - function f_sep(ob){return caml_call2(Stdlib_Buffer[12],ob,44)} - function write_variant(ob,s,o) - {caml_call2(Stdlib_Buffer[12],ob,60); - write_string(ob,s); - if(o){var x=o[1];caml_call2(Stdlib_Buffer[12],ob,58);write_t(ob,x)} - return caml_call2(Stdlib_Buffer[12],ob,62)} - function write_tuple(ob,l) - {caml_call2(Stdlib_Buffer[12],ob,40); - iter2(write_t,f_sep,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,41)} - function write_list(ob,l) - {caml_call2(Stdlib_Buffer[12],ob,91); - iter2(write_t,f_sep,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,93)} - function write_assoc(ob,l) - {function f_elt(ob,param) - {var x=param[2],s=param[1]; - write_string(ob,s); - caml_call2(Stdlib_Buffer[12],ob,58); - return write_t(ob,x)} - caml_call2(Stdlib_Buffer[12],ob,123); - iter2(f_elt,f_sep,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,125)} - function write_t(ob,x) - {if(typeof x === "number")return write_null(ob,0); - var _o2_=x[1]; - if(708012133 <= _o2_) - {if(737456202 <= _o2_) - {if(928231259 <= _o2_) - {if(963043957 <= _o2_){var l=x[2];return write_assoc(ob,l)} - var s=x[2]; - return caml_call2(Stdlib_Buffer[16],ob,s)} - if(848054398 <= _o2_){var l$0=x[2];return write_list(ob,l$0)} - var b=x[2]; - return write_bool(ob,b)} - if(726928360 <= _o2_){var l$1=x[2];return write_tuple(ob,l$1)} - var match=x[2],o=match[2],s$0=match[1]; - return write_variant(ob,s$0,o)} - if(-752863768 === _o2_) - {var s$1=x[2];return caml_call2(Stdlib_Buffer[16],ob,s$1)} - if(3654863 <= _o2_) - {if(365180284 <= _o2_){var f=x[2];return write_float(ob,f)} - var i=x[2]; - return write_int(ob,i)} - if(-375152890 <= _o2_) - {var s$2=x[2];return caml_call2(Stdlib_Buffer[16],ob,s$2)} - var s$3=x[2]; - return write_string(ob,s$3)} - function write_std_variant(ob,s,o) - {if(o) - {var x=o[1]; - caml_call2(Stdlib_Buffer[12],ob,91); - write_string(ob,s); - caml_call2(Stdlib_Buffer[12],ob,44); - write_std_json(ob,x); - return caml_call2(Stdlib_Buffer[12],ob,93)} - return write_string(ob,s)} - function write_std_tuple(ob,l) - {caml_call2(Stdlib_Buffer[12],ob,91); - iter2(write_std_json,f_sep,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,93)} - function write_std_json(ob,x) - {if(typeof x === "number")return write_null(ob,0); - var _o1_=x[1]; - if(708012133 <= _o1_) - {if(737456202 <= _o1_) - {if(928231259 <= _o1_) - {if(963043957 <= _o1_) - {var - l=x[2], - f_elt= - function(ob,param) - {var x=param[2],s=param[1]; - write_string(ob,s); - caml_call2(Stdlib_Buffer[12],ob,58); - return write_std_json(ob,x)}; - caml_call2(Stdlib_Buffer[12],ob,123); - iter2(f_elt,f_sep,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,125)} - var s=x[2]; - return caml_call2(Stdlib_Buffer[16],ob,s)} - if(848054398 <= _o1_) - {var l$0=x[2]; - caml_call2(Stdlib_Buffer[12],ob,91); - iter2(write_std_json,f_sep,ob,l$0); - return caml_call2(Stdlib_Buffer[12],ob,93)} - var b=x[2]; - return write_bool(ob,b)} - if(726928360 <= _o1_){var l$1=x[2];return write_std_tuple(ob,l$1)} - var match=x[2],o=match[2],s$0=match[1]; - return write_std_variant(ob,s$0,o)} - if(-752863768 === _o1_) - {var s$1=x[2];return caml_call2(Stdlib_Buffer[16],ob,s$1)} - if(3654863 <= _o1_) - {if(365180284 <= _o1_){var f=x[2];return write_std_float(ob,f)} - var i=x[2]; - return write_int(ob,i)} - if(-375152890 <= _o1_) - {var s$2=x[2];return caml_call2(Stdlib_Buffer[16],ob,s$2)} - var s$3=x[2]; - return write_string(ob,s$3)} - function to_buffer(opt,_o0_,ob,x) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$1; - if(_o0_)var sth$0=_o0_[1],std=sth$0;else var std=0; - if(std)write_std_json(ob,x);else write_t(ob,x); - return caml_call2(Stdlib_Buffer[16],ob,suf)} - function to_string(buf,opt,_oZ_,std,x) - {if(opt)var sth=opt[1],len=sth;else var len=256; - if(_oZ_)var sth$0=_oZ_[1],suf=sth$0;else var suf=cst$2; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - to_buffer([0,suf],std,ob$0,x); - var s=caml_call1(Stdlib_Buffer[2],ob$0); - caml_call1(Stdlib_Buffer[8],ob$0); - return s} - function to_channel(buf,opt,_oY_,std,oc,x) - {if(opt)var sth=opt[1],len=sth;else var len=4096; - if(_oY_)var sth$0=_oY_[1],suf=sth$0;else var suf=cst$3; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - to_buffer([0,suf],std,ob$0,x); - caml_call2(Stdlib_Buffer[10],oc,ob$0); - return caml_call1(Stdlib_Buffer[8],ob$0)} - function to_output(buf,opt,_oW_,std,out,x) - {if(opt)var sth=opt[1],len=sth;else var len=4096; - if(_oW_)var sth$0=_oW_[1],suf=sth$0;else var suf=cst$4; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - to_buffer([0,suf],std,ob$0,x); - var _oX_=caml_call1(Stdlib_Buffer[7],ob$0); - caml_call4 - (caml_get_public_method(out,209784577,1), - out, - caml_call1(Stdlib_Buffer[2],ob$0), - 0, - _oX_); - return caml_call1(Stdlib_Buffer[8],ob$0)} - function to_file(len,std,opt,file,x) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$5; - var oc=caml_call1(Stdlib[60],file); - try - {to_channel(0,len,[0,suf],std,oc,x); - var _oV_=caml_call1(Stdlib[76],oc); - return _oV_} - catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[77],oc);throw e}} - function seq_to_buffer(opt,std,ob,st) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$6; - var _oS_=[0,suf]; - function _oT_(_oU_){return to_buffer(_oS_,std,ob,_oU_)} - return caml_call2(Stdlib_Seq[4],_oT_,st)} - function seq_to_string(buf,opt,_oR_,std,st) - {if(opt)var sth=opt[1],len=sth;else var len=256; - if(_oR_)var sth$0=_oR_[1],suf=sth$0;else var suf=cst$7; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - seq_to_buffer([0,suf],std,ob$0,st); - var s=caml_call1(Stdlib_Buffer[2],ob$0); - caml_call1(Stdlib_Buffer[8],ob$0); - return s} - function seq_to_channel(buf,opt,_oP_,std,oc,seq) - {if(opt)var sth=opt[1],len=sth;else var len=2096; - if(_oP_)var sth$0=_oP_[1],suf=sth$0;else var suf=cst$8; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - function _oQ_(json) - {to_buffer([0,suf],std,ob$0,json); - caml_call2(Stdlib_Buffer[10],oc,ob$0); - return caml_call1(Stdlib_Buffer[8],ob$0)} - return caml_call2(Stdlib_Seq[4],_oQ_,seq)} - function seq_to_file(len,opt,std,file,st) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$9; - var oc=caml_call1(Stdlib[60],file); - try - {seq_to_channel(0,len,[0,suf],std,oc,st); - var _oO_=caml_call1(Stdlib[76],oc); - return _oO_} - catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[77],oc);throw e}} - function sort(x) - {if(typeof x !== "number") - {var _oF_=x[1]; - if(726928361 <= _oF_) - {if(848054398 === _oF_) - {var l=x[2],_oG_=caml_call2(Stdlib_List[21],sort,l); - return [0,848054398,caml_call1(Stdlib_List[9],_oG_)]} - if(963043957 === _oF_) - {var - l$0=x[2], - _oH_= - function(param){var v=param[2],k=param[1];return [0,k,sort(v)]}, - _oI_=caml_call2(Stdlib_List[21],_oH_,l$0), - l$1=caml_call1(Stdlib_List[9],_oI_), - _oJ_= - function(param,_oN_) - {var b=_oN_[1],a=param[1]; - return caml_call2(Stdlib_String[9],a,b)}; - return [0,963043957,caml_call2(Stdlib_List[57],_oJ_,l$1)]}} - else - if(708012133 === _oF_) - {var _oK_=x[2],_oL_=_oK_[2]; - if(_oL_) - {var v=_oL_[1],k=_oK_[1],v$0=sort(v); - return v === v$0?x:[0,708012133,[0,k,[0,v$0]]]}} - else - if(726928360 <= _oF_) - {var l$2=x[2],_oM_=caml_call2(Stdlib_List[21],sort,l$2); - return [0,726928360,caml_call1(Stdlib_List[9],_oM_)]}} - return x} - function pp(fmt,param) - {if(typeof param === "number") - return caml_call2(Stdlib_Format[13],fmt,cst_Null); - var _oy_=param[1]; - if(708012133 <= _oy_) - {if(737456202 <= _oy_) - {if(928231259 <= _oy_) - {if(963043957 <= _oy_) - {var xs=param[2]; - caml_call2(Stdlib_Format[129],fmt,_z_); - caml_call2(Stdlib_Format[129],fmt,_A_); - var - _oz_=0, - _oA_= - function(sep,param) - {var value=param[2],key=param[1]; - if(sep)caml_call2(Stdlib_Format[129],fmt,_B_); - caml_call2(Stdlib_Format[129],fmt,_C_); - caml_call3(Stdlib_Format[129],fmt,_D_,key); - caml_call2(Stdlib_Format[129],fmt,_E_); - pp(fmt,value); - caml_call2(Stdlib_Format[129],fmt,_F_); - return 1}; - caml_call3(Stdlib_List[25],_oA_,_oz_,xs); - caml_call2(Stdlib_Format[129],fmt,_G_); - return caml_call2(Stdlib_Format[129],fmt,_H_)} - var x=param[2]; - caml_call2(Stdlib_Format[129],fmt,_I_); - caml_call3(Stdlib_Format[129],fmt,_J_,x); - return caml_call2(Stdlib_Format[129],fmt,_K_)} - if(848054398 <= _oy_) - {var xs$0=param[2]; - caml_call2(Stdlib_Format[129],fmt,_L_); - caml_call2(Stdlib_Format[129],fmt,_M_); - var - _oB_=0, - _oC_= - function(sep,x) - {if(sep)caml_call2(Stdlib_Format[129],fmt,_N_); - pp(fmt,x); - return 1}; - caml_call3(Stdlib_List[25],_oC_,_oB_,xs$0); - caml_call2(Stdlib_Format[129],fmt,_O_); - return caml_call2(Stdlib_Format[129],fmt,_P_)} - var x$0=param[2]; - caml_call2(Stdlib_Format[129],fmt,_Q_); - caml_call3(Stdlib_Format[129],fmt,_R_,x$0); - return caml_call2(Stdlib_Format[129],fmt,_S_)} - if(726928360 <= _oy_) - {var tup=param[2]; - caml_call2(Stdlib_Format[129],fmt,_T_); - caml_call2(Stdlib_Format[129],fmt,_U_); - var - _oD_=0, - _oE_= - function(sep,e) - {if(sep)caml_call2(Stdlib_Format[129],fmt,_V_); - pp(fmt,e); - return 1}; - caml_call3(Stdlib_List[25],_oE_,_oD_,tup); - caml_call2(Stdlib_Format[129],fmt,_W_); - return caml_call2(Stdlib_Format[129],fmt,_X_)} - var match=param[2],value=match[2],name=match[1]; - caml_call2(Stdlib_Format[129],fmt,_Y_); - caml_call2(Stdlib_Format[129],fmt,_Z_); - caml_call3(Stdlib_Format[129],fmt,___,name); - caml_call2(Stdlib_Format[129],fmt,_$_); - if(value) - {var x$1=value[1]; - caml_call2(Stdlib_Format[13],fmt,cst_Some); - pp(fmt,x$1); - caml_call2(Stdlib_Format[13],fmt,cst$10)} - else - caml_call2(Stdlib_Format[13],fmt,cst_None); - caml_call2(Stdlib_Format[129],fmt,_aa_); - return caml_call2(Stdlib_Format[129],fmt,_ab_)} - if(-752863768 === _oy_) - {var x$2=param[2]; - caml_call2(Stdlib_Format[129],fmt,_ac_); - caml_call3(Stdlib_Format[129],fmt,_ad_,x$2); - return caml_call2(Stdlib_Format[129],fmt,_ae_)} - if(3654863 <= _oy_) - {if(365180284 <= _oy_) - {var x$3=param[2]; - caml_call2(Stdlib_Format[129],fmt,_af_); - caml_call3(Stdlib_Format[129],fmt,_ag_,x$3); - return caml_call2(Stdlib_Format[129],fmt,_ah_)} - var x$4=param[2]; - caml_call2(Stdlib_Format[129],fmt,_ai_); - caml_call3(Stdlib_Format[129],fmt,_aj_,x$4); - return caml_call2(Stdlib_Format[129],fmt,_ak_)} - if(-375152890 <= _oy_) - {var x$5=param[2]; - caml_call2(Stdlib_Format[129],fmt,_al_); - caml_call3(Stdlib_Format[129],fmt,_am_,x$5); - return caml_call2(Stdlib_Format[129],fmt,_an_)} - var x$6=param[2]; - caml_call2(Stdlib_Format[129],fmt,_ao_); - caml_call3(Stdlib_Format[129],fmt,_ap_,x$6); - return caml_call2(Stdlib_Format[129],fmt,_aq_)} - function show(x){return caml_call3(Stdlib_Format[133],_ar_,pp,x)} - function equal(a,b) - {var a$0=a,b$0=b; - for(;;) - {if(typeof a$0 === "number") - {if(870828711 === a$0 && 870828711 === b$0)return 1} - else - {var _or_=a$0[1]; - if(708012133 <= _or_) - {var switch$0=0; - if(848054398 <= _or_) - {if(928231259 === _or_) - {if(typeof b$0 !== "number" && 928231259 === b$0[1]) - {var b$1=b$0[2],a$1=a$0[2];return caml_equal(a$1,b$1)}} - else - if(963043957 === _or_) - {if(typeof b$0 !== "number" && 963043957 === b$0[1]) - {var - ys=b$0[2], - xs=a$0[2], - compare_keys= - function(param,_ox_) - {var key=_ox_[1],key$0=param[1]; - return caml_call2(Stdlib_String[9],key$0,key)}, - xs$0=caml_call2(Stdlib_List[57],compare_keys,xs), - ys$0=caml_call2(Stdlib_List[57],compare_keys,ys); - try - {var - _os_= - function(param,_ow_) - {var - value=_ow_[2], - key=_ow_[1], - value$0=param[2], - key$0=param[1], - match=caml_string_equal(key$0,key); - return match?equal(value$0,value):0}, - result=caml_call3(Stdlib_List[34],_os_,xs$0,ys$0); - return result} - catch(_ov_) - {_ov_ = caml_wrap_exception(_ov_); - if(_ov_[1] === Stdlib[6])return 0; - throw _ov_}}} - else - if - (! - (848054399 <= _or_) - && - typeof b$0 - !== - "number" - && - 848054398 - === - b$0[1]) - {var ys$1=b$0[2],xs$1=a$0[2];switch$0 = 1}} - else - if(726928360 === _or_) - {if(typeof b$0 !== "number" && 726928360 === b$0[1]) - {var ys$1=b$0[2],xs$1=a$0[2];switch$0 = 1}} - else - if(737456202 === _or_) - {if(typeof b$0 !== "number" && 737456202 === b$0[1]) - {var b$2=b$0[2],a$2=a$0[2];return caml_equal(a$2,b$2)}} - else - if - (! - (708012134 <= _or_) - && - typeof b$0 - !== - "number" - && - 708012133 - === - b$0[1]) - {var - _ot_=b$0[2], - value=_ot_[2], - name=_ot_[1], - match=a$0[2], - value$0=match[2], - name$0=match[1], - match$0=caml_equal(name$0,name); - if(match$0) - {if(value$0) - {if(value) - {var b$3=value[1],a$3=value$0[1],a$0=a$3,b$0=b$3;continue}} - else - if(! value)return 1; - return 0} - return 0} - if(switch$0) - try - {var result$0=caml_call3(Stdlib_List[34],equal,xs$1,ys$1); - return result$0} - catch(_ou_) - {_ou_ = caml_wrap_exception(_ou_); - if(_ou_[1] === Stdlib[6])return 0; - throw _ou_}} - else - if(-375152890 <= _or_) - {if(3654863 === _or_) - {if(typeof b$0 !== "number" && 3654863 === b$0[1]) - {var b$4=b$0[2],a$4=a$0[2];return caml_equal(a$4,b$4)}} - else - if(365180284 === _or_) - {if(typeof b$0 !== "number" && 365180284 === b$0[1]) - {var b$5=b$0[2],a$5=a$0[2];return caml_equal(a$5,b$5)}} - else - if - (! - (-375152889 <= _or_) - && - typeof b$0 - !== - "number" - && - -375152890 - === - b$0[1]) - {var b$6=b$0[2],a$6=a$0[2];return caml_equal(a$6,b$6)}} - else - if(-976970511 === _or_) - {if(typeof b$0 !== "number" && -976970511 === b$0[1]) - {var b$7=b$0[2],a$7=a$0[2];return caml_equal(a$7,b$7)}} - else - if - (-752863768 - === - _or_ - && - typeof b$0 - !== - "number" - && - -752863768 - === - b$0[1]) - {var b$8=b$0[2],a$8=a$0[2];return caml_equal(a$8,b$8)}} - return 0}} - function pp_list(sep,ppx,out,l) - {function pp_sep(out,param) - {return caml_call3(Stdlib_Format[129],out,_as_,sep)} - return caml_call4(Stdlib_Format[123],[0,pp_sep],ppx,out,l)} - function is_atom(x) - {if(typeof x !== "number") - {var _oq_=x[1],switch$0=0; - if(737456202 <= _oq_) - {if(848054398 === _oq_) - {if(x[2])switch$0 = 1} - else - if(963043957 <= _oq_ && x[2])switch$0 = 1} - else - if(708012133 === _oq_) - {if(x[2][2])switch$0 = 1} - else - if(726928360 <= _oq_ && x[2])switch$0 = 1; - if(switch$0)return 0} - return 1} - function format(inside_box,std,out,x) - {var x$0=x; - for(;;) - {if(typeof x$0 === "number") - return caml_call2(Stdlib_Format[13],out,cst_null$0); - var _nJ_=x$0[1]; - if(708012133 <= _nJ_) - {if(737456202 <= _nJ_) - {if(928231259 <= _nJ_) - {if(963043957 <= _nJ_) - {var _nK_=x$0[2]; - if(_nK_) - {if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_at_); - var - _nL_= - function(out,param) - {var x=param[2],name=param[1],_ol_=1; - function _om_(_oo_,_op_){return format(_ol_,std,_oo_,_op_)} - var _on_=json_string_of_string(name); - return caml_call5(Stdlib_Format[129],out,_aF_,_on_,_om_,x)}, - _nM_= - function(_oj_,_ok_){return pp_list(cst$11,_nL_,_oj_,_ok_)}; - caml_call4(Stdlib_Format[129],out,_au_,_nM_,_nK_); - var _nN_=1 - inside_box; - return _nN_?caml_call2(Stdlib_Format[129],out,_av_):_nN_} - return caml_call2(Stdlib_Format[13],out,cst$12)} - var s=x$0[2]; - return caml_call2(Stdlib_Format[13],out,s)} - if(848054398 <= _nJ_) - {var _nO_=x$0[2]; - if(_nO_) - {if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_aw_); - if(caml_call2(Stdlib_List[32],is_atom,_nO_)) - {var - _nP_=0, - _nQ_=function(_od_,_oe_){return format(_nP_,std,_od_,_oe_)}, - _nR_= - function(_ob_,_oc_){return pp_list(cst$13,_nQ_,_ob_,_oc_)}; - caml_call4(Stdlib_Format[129],out,_ax_,_nR_,_nO_)} - else - {var - _nT_=0, - _nU_=function(_oh_,_oi_){return format(_nT_,std,_oh_,_oi_)}, - _nV_= - function(_of_,_og_){return pp_list(cst$14,_nU_,_of_,_og_)}; - caml_call4(Stdlib_Format[129],out,_az_,_nV_,_nO_)} - var _nS_=1 - inside_box; - return _nS_?caml_call2(Stdlib_Format[129],out,_ay_):_nS_} - return caml_call2(Stdlib_Format[13],out,cst$15)} - var x$1=x$0[2]; - return caml_call2(Stdlib_Format[25],out,x$1)} - if(726928360 <= _nJ_) - {var l=x$0[2]; - if(std){var x$2=[0,848054398,l],x$0=x$2;continue} - if(0 === l)return caml_call2(Stdlib_Format[13],out,cst$16); - if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_aA_); - var - _nW_=0, - _nX_=function(_n$_,_oa_){return format(_nW_,std,_n$_,_oa_)}, - _nY_=function(_n9_,_n__){return pp_list(cst$17,_nX_,_n9_,_n__)}; - caml_call4(Stdlib_Format[129],out,_aB_,_nY_,l); - var _nZ_=1 - inside_box; - return _nZ_?caml_call2(Stdlib_Format[129],out,_aC_):_nZ_} - var _n0_=x$0[2],_n1_=_n0_[2],_n2_=_n0_[1]; - if(_n1_) - {var x$3=_n1_[1]; - if(std) - {var - representation=[0,-976970511,_n2_], - x$4=[0,848054398,[0,representation,[0,x$3,0]]], - x$0=x$4; - continue} - var - op=json_string_of_string(_n2_), - _n3_=1, - _n4_=function(_n7_,_n8_){return format(_n3_,std,_n7_,_n8_)}; - return caml_call5(Stdlib_Format[129],out,_aD_,op,_n4_,x$3)} - if(std){var x$5=[0,-976970511,_n2_],x$0=x$5;continue} - var _n5_=json_string_of_string(_n2_); - return caml_call3(Stdlib_Format[129],out,_aE_,_n5_)} - if(-752863768 === _nJ_) - {var s$0=x$0[2];return caml_call2(Stdlib_Format[13],out,s$0)} - if(3654863 <= _nJ_) - {if(365180284 <= _nJ_) - {var x$6=x$0[2]; - if(std) - {var ob$0=caml_call1(Stdlib_Buffer[1],20); - write_std_float(ob$0,x$6); - var s$1=caml_call1(Stdlib_Buffer[2],ob$0)} - else - {var ob=caml_call1(Stdlib_Buffer[1],20); - write_float(ob,x$6); - var s$1=caml_call1(Stdlib_Buffer[2],ob)} - return caml_call2(Stdlib_Format[13],out,s$1)} - var x$7=x$0[2],_nI_=caml_call1(Stdlib[33],x$7); - return caml_call2(Stdlib_Format[13],out,_nI_)} - if(-375152890 <= _nJ_) - {var s$2=x$0[2];return caml_call2(Stdlib_Format[13],out,s$2)} - var s$3=x$0[2],_n6_=json_string_of_string(s$3); - return caml_call2(Stdlib_Format[13],out,_n6_)}} - function pp$0(opt,out,x) - {if(opt)var sth=opt[1],std=sth;else var std=0; - var _nE_=1; - function _nF_(_nG_,_nH_){return format(_nE_,std,_nG_,_nH_)} - return caml_call4(Stdlib_Format[129],out,_aG_,_nF_,x)} - function pretty_print(std,out,x){return pp$0(std,out,x)} - function pretty_to_string(std,x) - {function _nB_(_nC_,_nD_){return pp$0(std,_nC_,_nD_)} - return caml_call3(Stdlib_Format[133],_aH_,_nB_,x)} - function pretty_to_channel(std,oc,x) - {var fmt=caml_call1(Stdlib_Format[108],oc); - function _ny_(_nz_,_nA_){return pp$0(std,_nz_,_nA_)} - return caml_call4(Stdlib_Format[129],fmt,_aI_,_ny_,x)} - function hex$0(n) - {var _nx_=10 <= n?n + 87 | 0:n + 48 | 0; - return caml_call1(Stdlib_Char[1],_nx_)} - function write_special$0(src,start,stop,ob,str) - {caml_call4(Stdlib_Buffer[18],ob,src,start[1],stop - start[1] | 0); - caml_call2(Stdlib_Buffer[16],ob,str); - start[1] = stop + 1 | 0; - return 0} - function finish_string$0(src,start,ob) - {try - {var - _nw_= - caml_call4 - (Stdlib_Buffer[18], - ob, - src, - start[1], - caml_ml_string_length(src) - start[1] | 0); - return _nw_} - catch(exc) - {exc = caml_wrap_exception(exc); - caml_call4 - (Stdlib_Printf[3], - _aJ_, - src, - start[1], - caml_ml_string_length(src) - start[1] | 0); - throw exc}} - function write_string$0(ob,s) - {caml_call2(Stdlib_Buffer[12],ob,34); - var start=[0,0],_nu_=caml_ml_string_length(s) - 1 | 0,_nt_=0; - if(! (_nu_ < 0)) - {var i=_nt_; - for(;;) - {var c=caml_string_get(s,i); - if(92 === c) - write_special$0(s,start,i,ob,cst$18); - else - {var switch$0=0; - if(35 <= c) - if(127 === c)switch$0 = 1;else switch$0 = 2; - else - if(8 <= c) - {var switch$1=0; - switch(c - 8 | 0) - {case 0:write_special$0(s,start,i,ob,cst_b$0);break; - case 1:write_special$0(s,start,i,ob,cst_t$0);break; - case 2:write_special$0(s,start,i,ob,cst_n$0);break; - case 4:write_special$0(s,start,i,ob,cst_f$0);break; - case 5:write_special$0(s,start,i,ob,cst_r$0);break; - case 26:write_special$0(s,start,i,ob,cst$19);break; - case 24: - case 25:switch$0 = 2;switch$1 = 1;break; - default:switch$0 = 1;switch$1 = 1}} - else - switch$0 = 1; - switch(switch$0) - {case 2:break; - case 1: - caml_call4(Stdlib_Buffer[18],ob,s,start[1],i - start[1] | 0); - caml_call2(Stdlib_Buffer[16],ob,cst_u00$0); - var _nr_=hex$0(c >>> 4 | 0); - caml_call2(Stdlib_Buffer[12],ob,_nr_); - var _ns_=hex$0(c & 15); - caml_call2(Stdlib_Buffer[12],ob,_ns_); - start[1] = i + 1 | 0; - break - }} - var _nv_=i + 1 | 0; - if(_nu_ !== i){var i=_nv_;continue} - break}} - finish_string$0(s,start,ob); - return caml_call2(Stdlib_Buffer[12],ob,34)} - function json_string_of_string$0(s) - {var ob=caml_call1(Stdlib_Buffer[1],10); - write_string$0(ob,s); - return caml_call1(Stdlib_Buffer[2],ob)} - function write_null$0(ob,param) - {return caml_call2(Stdlib_Buffer[16],ob,cst_null$1)} - function write_bool$0(ob,x) - {var _nq_=x?cst_true$0:cst_false$0; - return caml_call2(Stdlib_Buffer[16],ob,_nq_)} - var - _aK_=caml_ml_string_length(caml_call1(Stdlib[33],Stdlib[20])), - _aL_=caml_ml_string_length(caml_call1(Stdlib[33],Stdlib[19])); - caml_call2(Stdlib[17],_aL_,_aK_); - function write_digits$0(s,x) - {if(0 === x)return 0; - var d=x % 10 | 0; - write_digits$0(s,x / 10 | 0); - var - n=caml_call1(Stdlib[18],d), - _np_=caml_call1(Stdlib_Char[1],n + 48 | 0); - return caml_call2(Stdlib_Buffer[12],s,_np_)} - function write_int$0(ob,x) - {return 0 < x - ?write_digits$0(ob,x) - :0 <= x - ?caml_call2(Stdlib_Buffer[12],ob,48) - :(caml_call2(Stdlib_Buffer[12],ob,45),write_digits$0(ob,x))} - function float_needs_period$0(s) - {try - {var _nl_=caml_ml_string_length(s) - 1 | 0,_nk_=0; - if(! (_nl_ < 0)) - {var i=_nk_; - for(;;) - {var match=caml_string_get(s,i),switch$0=0; - if(48 <= match) - {if(! (58 <= match))switch$0 = 1} - else - if(45 === match)switch$0 = 1; - if(! switch$0)throw Stdlib[3]; - var _nn_=i + 1 | 0; - if(_nl_ !== i){var i=_nn_;continue} - break}} - var _nm_=1; - return _nm_} - catch(_no_) - {_no_ = caml_wrap_exception(_no_); - if(_no_ === Stdlib[3])return 0; - throw _no_}} - function write_float$0(ob,x) - {var match=caml_classify_float(x); - if(3 === match) - {var _ni_=0. < x?cst_Infinity$3:cst_Infinity$4; - return caml_call2(Stdlib_Buffer[16],ob,_ni_)} - if(4 <= match)return caml_call2(Stdlib_Buffer[16],ob,cst_NaN$1); - var - s1=caml_call2(Stdlib_Printf[4],_aM_,x), - s=caml_float_of_string(s1) == x?s1:caml_call2(Stdlib_Printf[4],_aN_,x); - caml_call2(Stdlib_Buffer[16],ob,s); - var _nj_=float_needs_period$0(s); - return _nj_?caml_call2(Stdlib_Buffer[16],ob,cst_0$2):_nj_} - function write_normal_float_prec$0(significant_figures,ob,x) - {var switcher=significant_figures - 1 | 0; - if(15 < switcher >>> 0) - var s=caml_call2(Stdlib_Printf[4],_aO_,x); - else - switch(switcher) - {case 0:var s=caml_call2(Stdlib_Printf[4],_aP_,x);break; - case 1:var s=caml_call2(Stdlib_Printf[4],_aQ_,x);break; - case 2:var s=caml_call2(Stdlib_Printf[4],_aR_,x);break; - case 3:var s=caml_call2(Stdlib_Printf[4],_aS_,x);break; - case 4:var s=caml_call2(Stdlib_Printf[4],_aT_,x);break; - case 5:var s=caml_call2(Stdlib_Printf[4],_aU_,x);break; - case 6:var s=caml_call2(Stdlib_Printf[4],_aV_,x);break; - case 7:var s=caml_call2(Stdlib_Printf[4],_aW_,x);break; - case 8:var s=caml_call2(Stdlib_Printf[4],_aX_,x);break; - case 9:var s=caml_call2(Stdlib_Printf[4],_aY_,x);break; - case 10:var s=caml_call2(Stdlib_Printf[4],_aZ_,x);break; - case 11:var s=caml_call2(Stdlib_Printf[4],_a0_,x);break; - case 12:var s=caml_call2(Stdlib_Printf[4],_a1_,x);break; - case 13:var s=caml_call2(Stdlib_Printf[4],_a2_,x);break; - case 14:var s=caml_call2(Stdlib_Printf[4],_a3_,x);break; - default:var s=caml_call2(Stdlib_Printf[4],_a4_,x)} - caml_call2(Stdlib_Buffer[16],ob,s); - var _nh_=float_needs_period$0(s); - return _nh_?caml_call2(Stdlib_Buffer[16],ob,cst_0$3):_nh_} - function write_float_prec$0(significant_figures,ob,x) - {var match=caml_classify_float(x); - if(3 === match) - {var _ng_=0. < x?cst_Infinity$5:cst_Infinity$6; - return caml_call2(Stdlib_Buffer[16],ob,_ng_)} - return 4 <= match - ?caml_call2(Stdlib_Buffer[16],ob,cst_NaN$2) - :write_normal_float_prec$0(significant_figures,ob,x)} - function write_std_float$0(ob,x) - {var match=caml_classify_float(x); - if(3 === match) - {var - _ne_= - 0. < x - ?cst_Infinity_value_not_allowed$3 - :cst_Infinity_value_not_allowed$4; - return json_error(_ne_)} - if(4 <= match)return json_error(cst_NaN_value_not_allowed_in_s$1); - var - s1=caml_call2(Stdlib_Printf[4],_a5_,x), - s=caml_float_of_string(s1) == x?s1:caml_call2(Stdlib_Printf[4],_a6_,x); - caml_call2(Stdlib_Buffer[16],ob,s); - var _nf_=float_needs_period$0(s); - return _nf_?caml_call2(Stdlib_Buffer[16],ob,cst_0$4):_nf_} - function write_std_float_prec$0(significant_figures,ob,x) - {var match=caml_classify_float(x); - if(3 === match) - {var - _nd_= - 0. < x - ?cst_Infinity_value_not_allowed$5 - :cst_Infinity_value_not_allowed$6; - return json_error(_nd_)} - return 4 <= match - ?json_error(cst_NaN_value_not_allowed_in_s$2) - :write_normal_float_prec$0(significant_figures,ob,x)} - function iter2$0(f_elt,f_sep,x,param$0) - {if(param$0) - {var l$0=param$0[2],y$0=param$0[1]; - caml_call2(f_elt,x,y$0); - var param=l$0; - for(;;) - {if(param) - {var l=param[2],y=param[1]; - caml_call1(f_sep,x); - caml_call2(f_elt,x,y); - var param=l; - continue} - return 0}} - return 0} - function f_sep$0(ob){return caml_call2(Stdlib_Buffer[12],ob,44)} - function write_list$0(ob,l) - {caml_call2(Stdlib_Buffer[12],ob,91); - iter2$0(write_t$0,f_sep$0,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,93)} - function write_assoc$0(ob,l) - {function f_elt(ob,param) - {var x=param[2],s=param[1]; - write_string$0(ob,s); - caml_call2(Stdlib_Buffer[12],ob,58); - return write_t$0(ob,x)} - caml_call2(Stdlib_Buffer[12],ob,123); - iter2$0(f_elt,f_sep$0,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,125)} - function write_t$0(ob,x) - {if(typeof x === "number")return write_null$0(ob,0); - var _nc_=x[1]; - if(365180284 <= _nc_) - {if(848054398 <= _nc_) - {if(963043957 <= _nc_){var l=x[2];return write_assoc$0(ob,l)} - var l$0=x[2]; - return write_list$0(ob,l$0)} - if(737456202 <= _nc_){var b=x[2];return write_bool$0(ob,b)} - var f=x[2]; - return write_float$0(ob,f)} - if(3654863 <= _nc_){var i=x[2];return write_int$0(ob,i)} - var s=x[2]; - return write_string$0(ob,s)} - function write_std_json$0(ob,x) - {if(typeof x === "number")return write_null$0(ob,0); - var _nb_=x[1]; - if(365180284 <= _nb_) - {if(848054398 <= _nb_) - {if(963043957 <= _nb_) - {var - l=x[2], - f_elt= - function(ob,param) - {var x=param[2],s=param[1]; - write_string$0(ob,s); - caml_call2(Stdlib_Buffer[12],ob,58); - return write_std_json$0(ob,x)}; - caml_call2(Stdlib_Buffer[12],ob,123); - iter2$0(f_elt,f_sep$0,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,125)} - var l$0=x[2]; - caml_call2(Stdlib_Buffer[12],ob,91); - iter2$0(write_std_json$0,f_sep$0,ob,l$0); - return caml_call2(Stdlib_Buffer[12],ob,93)} - if(737456202 <= _nb_){var b=x[2];return write_bool$0(ob,b)} - var f=x[2]; - return write_std_float$0(ob,f)} - if(3654863 <= _nb_){var i=x[2];return write_int$0(ob,i)} - var s=x[2]; - return write_string$0(ob,s)} - function to_buffer$0(opt,_na_,ob,x) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$20; - if(_na_)var sth$0=_na_[1],std=sth$0;else var std=0; - if(std)write_std_json$0(ob,x);else write_t$0(ob,x); - return caml_call2(Stdlib_Buffer[16],ob,suf)} - function to_string$0(buf,opt,_m$_,std,x) - {if(opt)var sth=opt[1],len=sth;else var len=256; - if(_m$_)var sth$0=_m$_[1],suf=sth$0;else var suf=cst$21; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - to_buffer$0([0,suf],std,ob$0,x); - var s=caml_call1(Stdlib_Buffer[2],ob$0); - caml_call1(Stdlib_Buffer[8],ob$0); - return s} - function to_channel$0(buf,opt,_m__,std,oc,x) - {if(opt)var sth=opt[1],len=sth;else var len=4096; - if(_m__)var sth$0=_m__[1],suf=sth$0;else var suf=cst$22; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - to_buffer$0([0,suf],std,ob$0,x); - caml_call2(Stdlib_Buffer[10],oc,ob$0); - return caml_call1(Stdlib_Buffer[8],ob$0)} - function to_output$0(buf,opt,_m8_,std,out,x) - {if(opt)var sth=opt[1],len=sth;else var len=4096; - if(_m8_)var sth$0=_m8_[1],suf=sth$0;else var suf=cst$23; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - to_buffer$0([0,suf],std,ob$0,x); - var _m9_=caml_call1(Stdlib_Buffer[7],ob$0); - caml_call4 - (caml_get_public_method(out,209784577,2), - out, - caml_call1(Stdlib_Buffer[2],ob$0), - 0, - _m9_); - return caml_call1(Stdlib_Buffer[8],ob$0)} - function to_file$0(len,std,opt,file,x) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$24; - var oc=caml_call1(Stdlib[60],file); - try - {to_channel$0(0,len,[0,suf],std,oc,x); - var _m7_=caml_call1(Stdlib[76],oc); - return _m7_} - catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[77],oc);throw e}} - function seq_to_buffer$0(opt,std,ob,st) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$25; - var _m4_=[0,suf]; - function _m5_(_m6_){return to_buffer$0(_m4_,std,ob,_m6_)} - return caml_call2(Stdlib_Seq[4],_m5_,st)} - function seq_to_string$0(buf,opt,_m3_,std,st) - {if(opt)var sth=opt[1],len=sth;else var len=256; - if(_m3_)var sth$0=_m3_[1],suf=sth$0;else var suf=cst$26; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - seq_to_buffer$0([0,suf],std,ob$0,st); - var s=caml_call1(Stdlib_Buffer[2],ob$0); - caml_call1(Stdlib_Buffer[8],ob$0); - return s} - function seq_to_channel$0(buf,opt,_m1_,std,oc,seq) - {if(opt)var sth=opt[1],len=sth;else var len=2096; - if(_m1_)var sth$0=_m1_[1],suf=sth$0;else var suf=cst$27; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - function _m2_(json) - {to_buffer$0([0,suf],std,ob$0,json); - caml_call2(Stdlib_Buffer[10],oc,ob$0); - return caml_call1(Stdlib_Buffer[8],ob$0)} - return caml_call2(Stdlib_Seq[4],_m2_,seq)} - function seq_to_file$0(len,opt,std,file,st) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$28; - var oc=caml_call1(Stdlib[60],file); - try - {seq_to_channel$0(0,len,[0,suf],std,oc,st); - var _m0_=caml_call1(Stdlib[76],oc); - return _m0_} - catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[77],oc);throw e}} - function sort$0(x) - {if(typeof x !== "number") - {var _mU_=x[1]; - if(848054398 === _mU_) - {var l=x[2],_mV_=caml_call2(Stdlib_List[21],sort$0,l); - return [0,848054398,caml_call1(Stdlib_List[9],_mV_)]} - if(963043957 === _mU_) - {var - l$0=x[2], - _mW_= - function(param){var v=param[2],k=param[1];return [0,k,sort$0(v)]}, - _mX_=caml_call2(Stdlib_List[21],_mW_,l$0), - l$1=caml_call1(Stdlib_List[9],_mX_), - _mY_= - function(param,_mZ_) - {var b=_mZ_[1],a=param[1]; - return caml_call2(Stdlib_String[9],a,b)}; - return [0,963043957,caml_call2(Stdlib_List[57],_mY_,l$1)]}} - return x} - function pp_list$0(sep,ppx,out,l) - {function pp_sep(out,param) - {return caml_call3(Stdlib_Format[129],out,_a7_,sep)} - return caml_call4(Stdlib_Format[123],[0,pp_sep],ppx,out,l)} - function is_atom$0(x) - {if(typeof x !== "number") - {var _mT_=x[1],switch$0=0; - if(737456202 <= _mT_) - {if(848054398 === _mT_) - {if(x[2])switch$0 = 1} - else - if(963043957 <= _mT_ && x[2])switch$0 = 1} - else - if(708012133 === _mT_) - {if(x[2][2])switch$0 = 1} - else - if(726928360 <= _mT_ && x[2])switch$0 = 1; - if(switch$0)return 0} - return 1} - function format$0(inside_box,std,out,x) - {if(typeof x === "number") - return caml_call2(Stdlib_Format[13],out,cst_null$2); - var _mq_=x[1]; - if(365180284 <= _mq_) - {if(848054398 <= _mq_) - {if(963043957 <= _mq_) - {var _mr_=x[2]; - if(_mr_) - {if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_a8_); - var - _ms_= - function(out,param) - {var x=param[2],name=param[1],_mO_=1; - function _mP_(_mR_,_mS_) - {return format$0(_mO_,std,_mR_,_mS_)} - var _mQ_=json_string_of_string$0(name); - return caml_call5(Stdlib_Format[129],out,_bd_,_mQ_,_mP_,x)}, - _mt_= - function(_mM_,_mN_){return pp_list$0(cst$29,_ms_,_mM_,_mN_)}; - caml_call4(Stdlib_Format[129],out,_a9_,_mt_,_mr_); - var _mu_=1 - inside_box; - return _mu_?caml_call2(Stdlib_Format[129],out,_a__):_mu_} - return caml_call2(Stdlib_Format[13],out,cst$30)} - var _mv_=x[2]; - if(_mv_) - {if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_a$_); - if(caml_call2(Stdlib_List[32],is_atom$0,_mv_)) - {var - _mw_=0, - _mx_=function(_mG_,_mH_){return format$0(_mw_,std,_mG_,_mH_)}, - _my_= - function(_mE_,_mF_){return pp_list$0(cst$31,_mx_,_mE_,_mF_)}; - caml_call4(Stdlib_Format[129],out,_ba_,_my_,_mv_)} - else - {var - _mA_=0, - _mB_=function(_mK_,_mL_){return format$0(_mA_,std,_mK_,_mL_)}, - _mC_= - function(_mI_,_mJ_){return pp_list$0(cst$32,_mB_,_mI_,_mJ_)}; - caml_call4(Stdlib_Format[129],out,_bc_,_mC_,_mv_)} - var _mz_=1 - inside_box; - return _mz_?caml_call2(Stdlib_Format[129],out,_bb_):_mz_} - return caml_call2(Stdlib_Format[13],out,cst$33)} - if(737456202 <= _mq_) - {var x$0=x[2];return caml_call2(Stdlib_Format[25],out,x$0)} - var x$1=x[2]; - if(std) - {var ob$0=caml_call1(Stdlib_Buffer[1],20); - write_std_float$0(ob$0,x$1); - var s=caml_call1(Stdlib_Buffer[2],ob$0)} - else - {var ob=caml_call1(Stdlib_Buffer[1],20); - write_float$0(ob,x$1); - var s=caml_call1(Stdlib_Buffer[2],ob)} - return caml_call2(Stdlib_Format[13],out,s)} - if(3654863 <= _mq_) - {var x$2=x[2],_mp_=caml_call1(Stdlib[33],x$2); - return caml_call2(Stdlib_Format[13],out,_mp_)} - var s$0=x[2],_mD_=json_string_of_string$0(s$0); - return caml_call2(Stdlib_Format[13],out,_mD_)} - function pp$1(opt,out,x) - {if(opt)var sth=opt[1],std=sth;else var std=0; - var _ml_=1; - function _mm_(_mn_,_mo_){return format$0(_ml_,std,_mn_,_mo_)} - return caml_call4(Stdlib_Format[129],out,_be_,_mm_,x)} - function pp$2(fmt,param) - {if(typeof param === "number") - return caml_call2(Stdlib_Format[13],fmt,cst_Null$0); - var _mg_=param[1]; - if(365180284 <= _mg_) - {if(848054398 <= _mg_) - {if(963043957 <= _mg_) - {var xs=param[2]; - caml_call2(Stdlib_Format[129],fmt,_bh_); - caml_call2(Stdlib_Format[129],fmt,_bi_); - var - _mh_=0, - _mi_= - function(sep,param) - {var value=param[2],key=param[1]; - if(sep)caml_call2(Stdlib_Format[129],fmt,_bj_); - caml_call2(Stdlib_Format[129],fmt,_bk_); - caml_call3(Stdlib_Format[129],fmt,_bl_,key); - caml_call2(Stdlib_Format[129],fmt,_bm_); - pp$2(fmt,value); - caml_call2(Stdlib_Format[129],fmt,_bn_); - return 1}; - caml_call3(Stdlib_List[25],_mi_,_mh_,xs); - caml_call2(Stdlib_Format[129],fmt,_bo_); - return caml_call2(Stdlib_Format[129],fmt,_bp_)} - var xs$0=param[2]; - caml_call2(Stdlib_Format[129],fmt,_bq_); - caml_call2(Stdlib_Format[129],fmt,_br_); - var - _mj_=0, - _mk_= - function(sep,x) - {if(sep)caml_call2(Stdlib_Format[129],fmt,_bs_); - pp$2(fmt,x); - return 1}; - caml_call3(Stdlib_List[25],_mk_,_mj_,xs$0); - caml_call2(Stdlib_Format[129],fmt,_bt_); - return caml_call2(Stdlib_Format[129],fmt,_bu_)} - if(737456202 <= _mg_) - {var x=param[2]; - caml_call2(Stdlib_Format[129],fmt,_bv_); - caml_call3(Stdlib_Format[129],fmt,_bw_,x); - return caml_call2(Stdlib_Format[129],fmt,_bx_)} - var x$0=param[2]; - caml_call2(Stdlib_Format[129],fmt,_by_); - caml_call3(Stdlib_Format[129],fmt,_bz_,x$0); - return caml_call2(Stdlib_Format[129],fmt,_bA_)} - if(3654863 <= _mg_) - {var x$1=param[2]; - caml_call2(Stdlib_Format[129],fmt,_bB_); - caml_call3(Stdlib_Format[129],fmt,_bC_,x$1); - return caml_call2(Stdlib_Format[129],fmt,_bD_)} - var x$2=param[2]; - caml_call2(Stdlib_Format[129],fmt,_bE_); - caml_call3(Stdlib_Format[129],fmt,_bF_,x$2); - return caml_call2(Stdlib_Format[129],fmt,_bG_)} - function show$0(x){return caml_call3(Stdlib_Format[133],_bH_,pp$2,x)} - function equal$0(a,b) - {if(typeof a === "number") - {if(870828711 === a && 870828711 === b)return 1} - else - {var _ma_=a[1]; - if(365180285 <= _ma_) - {if(737456202 === _ma_) - {if(typeof b !== "number" && 737456202 === b[1]) - {var b$0=b[2],a$0=a[2];return caml_equal(a$0,b$0)}} - else - if(848054398 === _ma_) - {if(typeof b !== "number" && 848054398 === b[1]) - {var ys=b[2],xs=a[2]; - try - {var result=caml_call3(Stdlib_List[34],equal$0,xs,ys); - return result} - catch(_mc_) - {_mc_ = caml_wrap_exception(_mc_); - if(_mc_[1] === Stdlib[6])return 0; - throw _mc_}}} - else - if - (963043957 - === - _ma_ - && - typeof b - !== - "number" - && - 963043957 - === - b[1]) - {var - ys$0=b[2], - xs$0=a[2], - compare_keys= - function(param,_mf_) - {var key=_mf_[1],key$0=param[1]; - return caml_call2(Stdlib_String[9],key$0,key)}, - xs$1=caml_call2(Stdlib_List[57],compare_keys,xs$0), - ys$1=caml_call2(Stdlib_List[57],compare_keys,ys$0); - try - {var - _mb_= - function(param,_me_) - {var - value=_me_[2], - key=_me_[1], - value$0=param[2], - key$0=param[1], - match=caml_string_equal(key$0,key); - return match?equal$0(value$0,value):0}, - result$0=caml_call3(Stdlib_List[34],_mb_,xs$1,ys$1); - return result$0} - catch(_md_) - {_md_ = caml_wrap_exception(_md_); - if(_md_[1] === Stdlib[6])return 0; - throw _md_}}} - else - if(-976970511 === _ma_) - {if(typeof b !== "number" && -976970511 === b[1]) - {var b$1=b[2],a$1=a[2];return caml_equal(a$1,b$1)}} - else - if(3654863 === _ma_) - {if(typeof b !== "number" && 3654863 === b[1]) - {var b$2=b[2],a$2=a[2];return caml_equal(a$2,b$2)}} - else - if - (365180284 <= _ma_ && typeof b !== "number" && 365180284 === b[1]) - {var b$3=b[2],a$3=a[2];return caml_equal(a$3,b$3)}} - return 0} - function pretty_print$0(std,out,x){return pp$1(std,out,x)} - function pretty_to_string$0(std,x) - {function _l9_(_l__,_l$_){return pp$1(std,_l__,_l$_)} - return caml_call3(Stdlib_Format[133],_bf_,_l9_,x)} - function pretty_to_channel$0(std,oc,x) - {var fmt=caml_call1(Stdlib_Format[108],oc); - function _l6_(_l7_,_l8_){return pp$1(std,_l7_,_l8_)} - return caml_call4(Stdlib_Format[129],fmt,_bg_,_l6_,x)} - var - from_channel=Stdlib_Lexing[2], - from_string=Stdlib_Lexing[3], - lexeme=Stdlib_Lexing[8], - sub_lexeme=Stdlib_Lexing[16], - sub_lexeme_char=Stdlib_Lexing[18]; - function hex$1(c) - {if(65 <= c) - {if(97 <= c) - {if(! (103 <= c))return (c - 97 | 0) + 10 | 0} - else - if(! (71 <= c))return (c - 65 | 0) + 10 | 0} - else - if(! (9 < c - 48 >>> 0))return c - 48 | 0; - throw [0,Assert_failure,_bI_]} - function custom_error(descr,v,lexbuf) - {var - offs=lexbuf[4] - 1 | 0, - bol=v[3], - pos1=((offs + lexbuf[5] | 0) - bol | 0) - 1 | 0, - pos2=caml_call2(Stdlib[17],pos1,(offs + lexbuf[6] | 0) - bol | 0), - _l5_=v[4]; - if(_l5_) - var s=_l5_[1],file_line=caml_call2(Stdlib_Printf[4],_bJ_,s); - else - var file_line=cst_Line; - var - bytes= - pos1 === pos2 - ?caml_call2(Stdlib_Printf[4],_bK_,pos1 + 1 | 0) - :caml_call3(Stdlib_Printf[4],_bM_,pos1 + 1 | 0,pos2 + 1 | 0), - msg=caml_call5(Stdlib_Printf[4],_bL_,file_line,v[2],bytes,descr); - return json_error(msg)} - function lexer_error(descr,v,lexbuf) - {var _l4_=caml_call1(lexeme,lexbuf); - return custom_error - (caml_call3(Stdlib_Printf[4],_bN_,descr,_l4_),v,lexbuf)} - var read_junk=[0,function(param){throw [0,Assert_failure,_bO_]}]; - function long_error(descr,v,lexbuf) - {var - junk=caml_call1(lexeme,lexbuf), - extra_junk=caml_call1(read_junk[1],lexbuf); - return custom_error - (caml_call4(Stdlib_Printf[4],_bP_,descr,junk,extra_junk), - v, - lexbuf)} - var - _bQ_=0 === (Stdlib[20] % 10 | 0)?0:1, - min10=(Stdlib[20] / 10 | 0) - _bQ_ | 0, - _bR_=0 === (Stdlib[19] % 10 | 0)?0:1, - max10=(Stdlib[19] / 10 | 0) + _bR_ | 0, - Int_overflow=[248,cst_Yojson_Basic_Int_overflow,caml_fresh_oo_id(0)]; - function extract_positive_int(lexbuf) - {var - start=lexbuf[5], - stop=lexbuf[6], - s=lexbuf[2], - n=[0,0], - _l1_=stop - 1 | 0; - if(! (_l1_ < start)) - {var i=start; - for(;;) - {if(max10 <= n[1])throw Int_overflow; - var _l2_=caml_bytes_get(s,i) - 48 | 0; - n[1] = (10 * n[1] | 0) + _l2_ | 0; - var _l3_=i + 1 | 0; - if(_l1_ !== i){var i=_l3_;continue} - break}} - if(0 <= n[1])return n[1]; - throw Int_overflow} - function extract_negative_int(lexbuf) - {var - start=lexbuf[5] + 1 | 0, - stop=lexbuf[6], - s=lexbuf[2], - n=[0,0], - _lY_=stop - 1 | 0; - if(! (_lY_ < start)) - {var i=start; - for(;;) - {if(n[1] <= min10)throw Int_overflow; - var _lZ_=caml_bytes_get(s,i) - 48 | 0; - n[1] = (10 * n[1] | 0) - _lZ_ | 0; - var _l0_=i + 1 | 0; - if(_lY_ !== i){var i=_l0_;continue} - break}} - if(0 < n[1])throw Int_overflow; - return n[1]} - function newline(v,lexbuf) - {v[2] = v[2] + 1 | 0;v[3] = lexbuf[4] + lexbuf[6] | 0;return 0} - function add_lexeme(buf,lexbuf) - {var len=lexbuf[6] - lexbuf[5] | 0; - return caml_call4(Stdlib_Buffer[19],buf,lexbuf[2],lexbuf[5],len)} - function read_json$2(counter,v,lexbuf) - {var _lX_=0; - if(counter < 50) - {var counter$0=counter + 1 | 0; - return ocaml_lex_read_json_rec(counter$0,v,lexbuf,_lX_)} - return caml_trampoline_return(ocaml_lex_read_json_rec,[0,v,lexbuf,_lX_])} - function ocaml_lex_read_json_rec(counter,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); - if(19 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0:return _bS_; - case 1:return _bT_; - case 2:return 870828711; - case 3:return [0,365180284,Stdlib[24]]; - case 4:return [0,365180284,Stdlib[22]]; - case 5:return [0,365180284,Stdlib[23]]; - case 6: - caml_call1(Stdlib_Buffer[8],v[1]); - return [0,-976970511,finish_string$1(v,lexbuf)]; - case 7: - try - {var _lN_=[0,3654863,extract_positive_int(lexbuf)];return _lN_} - catch(_lW_) - {_lW_ = caml_wrap_exception(_lW_); - if(_lW_ === Int_overflow) - return lexer_error(cst_Int_overflow,v,lexbuf); - throw _lW_} - case 8: - try - {var _lO_=[0,3654863,extract_negative_int(lexbuf)];return _lO_} - catch(_lV_) - {_lV_ = caml_wrap_exception(_lV_); - if(_lV_ === Int_overflow) - return lexer_error(cst_Int_overflow$0,v,lexbuf); - throw _lV_} - case 9: - return [0, - 365180284, - caml_float_of_string(caml_call1(lexeme,lexbuf))]; - case 10: - var acc=[0,0]; - try - {read_space(v,lexbuf); - read_object_end(lexbuf); - var field_name=read_ident(v,lexbuf); - read_space(v,lexbuf); - read_colon(v,lexbuf); - read_space(v,lexbuf); - var _lP_=acc[1]; - acc[1] = [0,[0,field_name,read_json(v,lexbuf)],_lP_]; - for(;;) - {read_space(v,lexbuf); - read_object_sep(v,lexbuf); - read_space(v,lexbuf); - var field_name$0=read_ident(v,lexbuf); - read_space(v,lexbuf); - read_colon(v,lexbuf); - read_space(v,lexbuf); - var _lQ_=acc[1]; - acc[1] = [0,[0,field_name$0,read_json(v,lexbuf)],_lQ_]; - continue}} - catch(_lU_) - {_lU_ = caml_wrap_exception(_lU_); - if(_lU_ === End_of_object) - return [0,963043957,caml_call1(Stdlib_List[9],acc[1])]; - throw _lU_} - case 11: - var acc$0=[0,0]; - try - {read_space(v,lexbuf); - read_array_end(lexbuf); - var _lR_=acc$0[1]; - acc$0[1] = [0,read_json(v,lexbuf),_lR_]; - for(;;) - {read_space(v,lexbuf); - read_array_sep(v,lexbuf); - read_space(v,lexbuf); - var _lS_=acc$0[1]; - acc$0[1] = [0,read_json(v,lexbuf),_lS_]; - continue}} - catch(_lT_) - {_lT_ = caml_wrap_exception(_lT_); - if(_lT_ === End_of_array) - return [0,848054398,caml_call1(Stdlib_List[9],acc$0[1])]; - throw _lT_} - case 12:return long_error(cst_Invalid_token,v,lexbuf); - case 13:return long_error(cst_Invalid_token$0,v,lexbuf); - case 14: - if(counter < 50) - {var counter$0=counter + 1 | 0; - return read_json$2(counter$0,v,lexbuf)} - return caml_trampoline_return(read_json$2,[0,v,lexbuf]); - case 15: - finish_comment(v,lexbuf); - if(counter < 50) - {var counter$1=counter + 1 | 0; - return read_json$2(counter$1,v,lexbuf)} - return caml_trampoline_return(read_json$2,[0,v,lexbuf]); - case 16: - newline(v,lexbuf); - if(counter < 50) - {var counter$2=counter + 1 | 0; - return read_json$2(counter$2,v,lexbuf)} - return caml_trampoline_return(read_json$2,[0,v,lexbuf]); - case 17: - if(counter < 50) - {var counter$3=counter + 1 | 0; - return read_json$2(counter$3,v,lexbuf)} - return caml_trampoline_return(read_json$2,[0,v,lexbuf]); - case 18:return custom_error(cst_Unexpected_end_of_input,v,lexbuf); - default:return long_error(cst_Invalid_token$1,v,lexbuf)}}} - function read_json(v,lexbuf) - {return caml_trampoline(read_json$2(0,v,lexbuf))} - function finish_string$1(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=58; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return caml_call1(Stdlib_Buffer[2],v[1]); - case 1:finish_escaped_char(v,lexbuf);continue a; - case 2:add_lexeme(v[1],lexbuf);continue a; - default: - return custom_error(cst_Unexpected_end_of_input$0,v,lexbuf)}}}} - function map_string(v,f,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=63; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - var b=v[1],_lM_=caml_call1(Stdlib_Buffer[7],b); - return caml_call3(f,caml_call1(Stdlib_Buffer[2],b),0,_lM_); - case 1:finish_escaped_char(v,lexbuf);continue a; - case 2:add_lexeme(v[1],lexbuf);continue a; - default: - return custom_error(cst_Unexpected_end_of_input$1,v,lexbuf)}}}} - function finish_escaped_char(v,lexbuf) - {var ocaml_lex_state=68; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(8 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - var c=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5]); - return caml_call2(Stdlib_Buffer[12],v[1],c); - case 1:return caml_call2(Stdlib_Buffer[12],v[1],8); - case 2:return caml_call2(Stdlib_Buffer[12],v[1],12); - case 3:return caml_call2(Stdlib_Buffer[12],v[1],10); - case 4:return caml_call2(Stdlib_Buffer[12],v[1],13); - case 5:return caml_call2(Stdlib_Buffer[12],v[1],9); - case 6: - var - a=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5] + 1 | 0), - b=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5] + 2 | 0), - c$0=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5] + 3 | 0), - d=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5] + 4 | 0), - _lG_=hex$1(d), - _lH_=hex$1(c$0) << 4, - _lI_=hex$1(b) << 8, - x=hex$1(a) << 12 | _lI_ | _lH_ | _lG_; - if(55296 <= x && ! (56319 < x)) - {var ocaml_lex_state$1=82; - for(;;) - {var - ocaml_lex_state$2= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$1,lexbuf); - if(2 < ocaml_lex_state$2 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$1=ocaml_lex_state$2; - continue} - switch(ocaml_lex_state$2) - {case 0: - var - a$0=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5] + 2 | 0), - b$0=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5] + 3 | 0), - c$1=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5] + 4 | 0), - d$0=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5] + 5 | 0), - _lJ_=hex$1(d$0), - _lK_=hex$1(c$1) << 4, - _lL_=hex$1(b$0) << 8, - y=hex$1(a$0) << 12 | _lL_ | _lK_ | _lJ_; - if(56320 <= y && ! (57343 < y)) - return utf8_of_surrogate_pair(v[1],x,y); - return long_error(cst_Invalid_low_surrogate_for_,v,lexbuf); - case 1: - return long_error(cst_Missing_escape_sequence_re,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$3,v,lexbuf)}}} - return utf8_of_code(v[1],x); - case 7:return long_error(cst_Invalid_escape_sequence,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$2,v,lexbuf)}}} - function finish_stringlit(v,lexbuf) - {var ocaml_lex_state=91; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - var len=lexbuf[6] - lexbuf[5] | 0,s=caml_create_bytes(len + 1 | 0); - caml_bytes_set(s,0,34); - caml_call5(Stdlib_Bytes[11],lexbuf[2],lexbuf[5],s,1,len); - return caml_call1(Stdlib_Bytes[6],s); - case 1:return long_error(cst_Invalid_string_literal,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$4,v,lexbuf)}}} - function finish_variant(v,lexbuf) - {var ocaml_lex_state=102; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - var x=read_json(v,lexbuf); - read_space(v,lexbuf); - read_gt(v,lexbuf); - return [0,x]; - case 1:return 0; - case 2:return long_error(cst_Expected_or_but_found,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$5,v,lexbuf)}}} - function read_lt(v,lexbuf) - {var ocaml_lex_state=107; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error(cst_Expected_but_found,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$6,v,lexbuf)}}} - function read_gt(v,lexbuf) - {var ocaml_lex_state=111; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error(cst_Expected_but_found$0,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$7,v,lexbuf)}}} - function read_comma(v,lexbuf) - {var ocaml_lex_state=115; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error(cst_Expected_but_found$1,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$8,v,lexbuf)}}} - function start_any_variant(v,lexbuf) - {var ocaml_lex_state=119; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(4 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return -154522342; - case 1:caml_call1(Stdlib_Buffer[8],v[1]);return -589953938; - case 2:return -124528282; - case 3:return long_error(cst_Expected_or_but_found$0,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$9,v,lexbuf)}}} - function finish_comment(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=125; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error(cst_Unterminated_comment,v,lexbuf); - case 2:newline(v,lexbuf);continue a; - default:continue a}}}} - function read_eof(lexbuf) - {var ocaml_lex_state=131; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)return 1; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - function read_space(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=133; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(4 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:newline(v,lexbuf);continue a; - case 1:finish_comment(v,lexbuf);continue a; - case 2:newline(v,lexbuf);continue a; - case 3:continue a; - default:return 0}}}} - function read_null(v,lexbuf) - {var ocaml_lex_state=140; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error(cst_Expected_null_but_found,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$10,v,lexbuf)}}} - function read_null_if_possible(v,lexbuf) - {var ocaml_lex_state=147; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)return 1; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - function read_bool(v,lexbuf) - {var ocaml_lex_state=152; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(5 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 1; - case 1:return 0; - case 2:return 1; - case 3:return 0; - case 4:return long_error(cst_Expected_true_or_false_but,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$11,v,lexbuf)}}} - function ocaml_lex_read_int_rec(v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); - if(4 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - try - {var _lA_=extract_positive_int(lexbuf);return _lA_} - catch(_lF_) - {_lF_ = caml_wrap_exception(_lF_); - if(_lF_ === Int_overflow) - return lexer_error(cst_Int_overflow$1,v,lexbuf); - throw _lF_} + cst_start, + [4, 3, 0, 0, [11, cst_len, [4, 3, 0, 0, [12, 10, [10, 0]]]]]]]], + cst_src_S_start_i_len_i], + cst_u00 = cst_u00$3, + _a_ = [0, "common.ml", 57, 4], + cst_Yojson_End_of_array = "Yojson.End_of_array", + cst_Yojson_End_of_object = "Yojson.End_of_object", + cst_Yojson_End_of_tuple = "Yojson.End_of_tuple", + cst_Yojson_End_of_input = "Yojson.End_of_input", + cst_Yojson_Basic_Int_overflow = "Yojson.Basic.Int_overflow", + cst_Yojson_Basic_Finally = "Yojson.Basic.Finally", + cst_Yojson_Basic_Util_Type_err = "Yojson.Basic.Util.Type_error", + cst_Yojson_Basic_Util_Undefine = "Yojson.Basic.Util.Undefined", + cst_Yojson_Safe_Int_overflow = "Yojson.Safe.Int_overflow", + cst_Yojson_Safe_Finally = "Yojson.Safe.Finally", + cst_Yojson_Safe_Util_Type_erro = "Yojson.Safe.Util.Type_error", + cst_Yojson_Safe_Util_Undefined = "Yojson.Safe.Util.Undefined", + cst_Yojson_Raw_Int_overflow = "Yojson.Raw.Int_overflow", + cst_Yojson_Raw_Finally = "Yojson.Raw.Finally"; + function json_error(s){ + throw caml_maybe_attach_backtrace([0, Json_error, s], 1); + } + var + End_of_array = [248, cst_Yojson_End_of_array, caml_fresh_oo_id(0)], + End_of_object = [248, cst_Yojson_End_of_object, caml_fresh_oo_id(0)], + End_of_tuple = [248, cst_Yojson_End_of_tuple, caml_fresh_oo_id(0)], + End_of_input = [248, cst_Yojson_End_of_input, caml_fresh_oo_id(0)]; + function utf8_of_code(buf, x){ + var add = Stdlib_Buffer[12]; + function maxbits(n, x){return 0 === (x >>> n | 0) ? 1 : 0;} + if(maxbits(7, x)) + return caml_call2(add, buf, caml_call1(Stdlib_Char[1], x)); + if(maxbits(11, x)){ + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 192 | (x >>> 6 | 0) & 31)); + return caml_call2(add, buf, caml_call1(Stdlib_Char[1], 128 | x & 63)); + } + if(maxbits(16, x)){ + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 224 | (x >>> 12 | 0) & 15)); + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 6 | 0) & 63)); + return caml_call2(add, buf, caml_call1(Stdlib_Char[1], 128 | x & 63)); + } + if(maxbits(21, x)){ + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 240 | (x >>> 18 | 0) & 7)); + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 12 | 0) & 63)); + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 6 | 0) & 63)); + return caml_call2(add, buf, caml_call1(Stdlib_Char[1], 128 | x & 63)); + } + if(maxbits(26, x)){ + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 248 | (x >>> 24 | 0) & 3)); + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 18 | 0) & 63)); + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 12 | 0) & 63)); + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 6 | 0) & 63)); + return caml_call2(add, buf, caml_call1(Stdlib_Char[1], 128 | x & 63)); + } + if(! maxbits(31, x)) + throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); + caml_call2(add, buf, caml_call1(Stdlib_Char[1], 252 | (x >>> 30 | 0) & 1)); + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 24 | 0) & 63)); + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 18 | 0) & 63)); + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 12 | 0) & 63)); + caml_call2(add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 6 | 0) & 63)); + return caml_call2(add, buf, caml_call1(Stdlib_Char[1], 128 | x & 63)); + } + function utf8_of_surrogate_pair(buf, i, j){ + var high10 = i - 55296 | 0, low10 = j - 56320 | 0; + return utf8_of_code(buf, 65536 + (high10 << 10 | low10) | 0); + } + var Lexer_state = [0]; + function init_lexer(buf, fname, opt, param){ + if(opt) var sth = opt[1], lnum = sth; else var lnum = 1; + if(buf) + var buf$0 = buf[1], buf$1 = buf$0; + else + var buf$1 = caml_call1(Stdlib_Buffer[1], 256); + return [0, buf$1, lnum, 0, fname]; + } + function hex(n){ + var _pO_ = 10 <= n ? n + 87 | 0 : n + 48 | 0; + return caml_call1(Stdlib_Char[1], _pO_); + } + function write_special(src, start, stop, ob, str){ + caml_call4(Stdlib_Buffer[18], ob, src, start[1], stop - start[1] | 0); + caml_call2(Stdlib_Buffer[16], ob, str); + start[1] = stop + 1 | 0; + return 0; + } + function write_string(ob, src){ + caml_call2(Stdlib_Buffer[12], ob, 34); + var start = [0, 0], _pM_ = caml_ml_string_length(src) - 1 | 0, _pL_ = 0; + if(_pM_ >= 0){ + var stop = _pL_; + for(;;){ + var c = caml_string_get(src, stop); + if(92 === c) + write_special(src, start, stop, ob, cst); + else{ + var switch$0 = 0; + if(35 <= c){ + if(127 !== c) switch$0 = 2; + } + else if(8 <= c){ + var switch$1 = 0; + switch(c - 8 | 0){ + case 0: + write_special(src, start, stop, ob, cst_b); break; case 1: - try - {var _lB_=extract_negative_int(lexbuf);return _lB_} - catch(_lE_) - {_lE_ = caml_wrap_exception(_lE_); - if(_lE_ === Int_overflow) - return lexer_error(cst_Int_overflow$2,v,lexbuf); - throw _lE_} + write_special(src, start, stop, ob, cst_t); break; case 2: - caml_call1(Stdlib_Buffer[8],v[1]); - var s=finish_string$1(v,lexbuf); - try - {var _lC_=caml_int_of_string(s);return _lC_} - catch(_lD_) - {return custom_error(cst_Expected_an_integer_but_fo,v,lexbuf)} - case 3:return long_error(cst_Expected_integer_but_found,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$12,v,lexbuf)}}} - function read_int(v,lexbuf){return ocaml_lex_read_int_rec(v,lexbuf,176)} - function ocaml_lex_read_int32_rec(v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); - if(3 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - try - {var _lw_=caml_int_of_string(caml_call1(lexeme,lexbuf)); - return _lw_} - catch(_lz_){return lexer_error(cst_Int32_overflow,v,lexbuf)} - case 1: - caml_call1(Stdlib_Buffer[8],v[1]); - var s=finish_string$1(v,lexbuf); - try - {var _lx_=caml_int_of_string(s);return _lx_} - catch(_ly_) - {return custom_error(cst_Expected_an_int32_but_foun,v,lexbuf)} - case 2:return long_error(cst_Expected_int32_but_found,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$13,v,lexbuf)}}} - function read_int32(v,lexbuf) - {return ocaml_lex_read_int32_rec(v,lexbuf,185)} - function ocaml_lex_read_int64_rec(v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); - if(3 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - try - {var _ls_=caml_int64_of_string(caml_call1(lexeme,lexbuf)); - return _ls_} - catch(_lv_){return lexer_error(cst_Int32_overflow$0,v,lexbuf)} - case 1: - caml_call1(Stdlib_Buffer[8],v[1]); - var s=finish_string$1(v,lexbuf); - try - {var _lt_=caml_int64_of_string(s);return _lt_} - catch(_lu_) - {return custom_error(cst_Expected_an_int64_but_foun,v,lexbuf)} - case 2:return long_error(cst_Expected_int64_but_found,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$14,v,lexbuf)}}} - function read_int64(v,lexbuf) - {return ocaml_lex_read_int64_rec(v,lexbuf,192)} - function ocaml_lex_read_number_rec(v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); - if(6 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0:return Stdlib[24]; - case 1:return Stdlib[22]; - case 2:return Stdlib[23]; - case 3:return caml_float_of_string(caml_call1(lexeme,lexbuf)); + write_special(src, start, stop, ob, cst_n); break; case 4: - caml_call1(Stdlib_Buffer[8],v[1]); - var s=finish_string$1(v,lexbuf); - try - {var _lq_=caml_float_of_string(s);return _lq_} - catch(_lr_) - {return caml_string_notequal(s,cst_Infinity$7) - ?caml_string_notequal(s,cst_Infinity$8) - ?caml_string_notequal(s,cst_NaN$3) - ?custom_error(cst_Expected_a_number_but_foun,v,lexbuf) - :Stdlib[24] - :Stdlib[22] - :Stdlib[23]} - case 5:return long_error(cst_Expected_number_but_found,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$15,v,lexbuf)}}} - function read_number(v,lexbuf) - {return ocaml_lex_read_number_rec(v,lexbuf,199)} - function read_string(v,lexbuf) - {var ocaml_lex_state=233; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - caml_call1(Stdlib_Buffer[8],v[1]);return finish_string$1(v,lexbuf); - case 1:return long_error(cst_Expected_but_found$2,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$16,v,lexbuf)}}} - function read_ident(v,lexbuf) - {var ocaml_lex_state=237; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - caml_call1(Stdlib_Buffer[8],v[1]);return finish_string$1(v,lexbuf); - case 1: - var s=caml_call3(sub_lexeme,lexbuf,lexbuf[5],lexbuf[6]);return s; - case 2:return long_error(cst_Expected_string_or_identif,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$17,v,lexbuf)}}} - function map_ident(v,f,lexbuf) - {var ocaml_lex_state=242; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - caml_call1(Stdlib_Buffer[8],v[1]);return map_string(v,f,lexbuf); - case 1: - var len=lexbuf[6] - lexbuf[5] | 0; - return caml_call3 - (f, - caml_call3(Stdlib_Bytes[8],lexbuf[2],lexbuf[5],len), - 0, - len); - case 2:return long_error(cst_Expected_string_or_identif$0,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$18,v,lexbuf)}}} - function ocaml_lex_read_sequence_rec - (read_cell,init_acc,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); - if(2 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - var acc=[0,init_acc]; - try - {read_space(v,lexbuf); - read_array_end(lexbuf); - acc[1] = caml_call3(read_cell,acc[1],v,lexbuf); - for(;;) - {read_space(v,lexbuf); - read_array_sep(v,lexbuf); - read_space(v,lexbuf); - acc[1] = caml_call3(read_cell,acc[1],v,lexbuf); - continue}} - catch(_lp_) - {_lp_ = caml_wrap_exception(_lp_); - if(_lp_ === End_of_array)return acc[1]; - throw _lp_} - case 1:return long_error(cst_Expected_but_found$3,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$19,v,lexbuf)}}} - function read_sequence(read_cell,init_acc,v,lexbuf) - {return ocaml_lex_read_sequence_rec(read_cell,init_acc,v,lexbuf,247)} - function ocaml_lex_read_list_rev_rec(read_cell,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); - if(2 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - var acc=[0,0]; - try - {read_space(v,lexbuf); - read_array_end(lexbuf); - var _lm_=acc[1]; - acc[1] = [0,caml_call2(read_cell,v,lexbuf),_lm_]; - for(;;) - {read_space(v,lexbuf); - read_array_sep(v,lexbuf); - read_space(v,lexbuf); - var _ln_=acc[1]; - acc[1] = [0,caml_call2(read_cell,v,lexbuf),_ln_]; - continue}} - catch(_lo_) - {_lo_ = caml_wrap_exception(_lo_); - if(_lo_ === End_of_array)return acc[1]; - throw _lo_} - case 1:return long_error(cst_Expected_but_found$4,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$20,v,lexbuf)}}} - function read_list_rev(read_cell,v,lexbuf) - {return ocaml_lex_read_list_rev_rec(read_cell,v,lexbuf,251)} - function read_array_end(lexbuf) - {var ocaml_lex_state=255; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)throw End_of_array; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - function read_array_sep(v,lexbuf) - {var ocaml_lex_state=257; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:throw End_of_array; - case 2:return long_error(cst_Expected_or_but_found$1,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$21,v,lexbuf)}}} - function read_tuple(read_cell,init_acc,v,lexbuf) - {var ocaml_lex_state=262; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return long_error(cst_Invalid_token$2,v,lexbuf); - case 1:return long_error(cst_Expected_but_found$5,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$22,v,lexbuf)}}} - function read_tuple_end(lexbuf) - {var ocaml_lex_state=266; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)throw End_of_tuple; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - function read_tuple_end2(v,std,lexbuf) - {var ocaml_lex_state=268; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - if(std)return long_error(cst_Expected_or_but_found$2,v,lexbuf); - throw End_of_tuple; - case 1: - if(std)throw End_of_tuple; - return long_error(cst_Expected_or_but_found$3,v,lexbuf); - default:return 0}}} - function read_tuple_sep(v,lexbuf) - {var ocaml_lex_state=271; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:throw End_of_tuple; - case 2:return long_error(cst_Expected_or_but_found$4,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$23,v,lexbuf)}}} - function read_tuple_sep2(v,std,lexbuf) - {var ocaml_lex_state=276; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(4 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1: - if(std)return long_error(cst_Expected_or_but_found$5,v,lexbuf); - throw End_of_tuple; - case 2: - if(std)throw End_of_tuple; - return long_error(cst_Expected_or_but_found$6,v,lexbuf); - case 3:return long_error(cst_Expected_or_but_found$7,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$24,v,lexbuf)}}} - function ocaml_lex_read_abstract_fields - (read_key,read_field,init_acc,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); - if(2 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - var acc=[0,init_acc]; - try - {read_space(v,lexbuf); - read_object_end(lexbuf); - var field_name=caml_call2(read_key,v,lexbuf); - read_space(v,lexbuf); - read_colon(v,lexbuf); - read_space(v,lexbuf); - acc[1] = caml_call4(read_field,acc[1],field_name,v,lexbuf); - for(;;) - {read_space(v,lexbuf); - read_object_sep(v,lexbuf); - read_space(v,lexbuf); - var field_name$0=caml_call2(read_key,v,lexbuf); - read_space(v,lexbuf); - read_colon(v,lexbuf); - read_space(v,lexbuf); - acc[1] = caml_call4(read_field,acc[1],field_name$0,v,lexbuf); - continue}} - catch(_ll_) - {_ll_ = caml_wrap_exception(_ll_); - if(_ll_ === End_of_object)return acc[1]; - throw _ll_} - case 1:return long_error(cst_Expected_but_found$6,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$25,v,lexbuf)}}} - function read_abstract_fields(read_key,read_field,init_acc,v,lexbuf) - {return ocaml_lex_read_abstract_fields - (read_key,read_field,init_acc,v,lexbuf,282)} - function read_lcurl(v,lexbuf) - {var ocaml_lex_state=286; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error(cst_Expected_but_found$7,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$26,v,lexbuf)}}} - function read_object_end(lexbuf) - {var ocaml_lex_state=290; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)throw End_of_object; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - function read_object_sep(v,lexbuf) - {var ocaml_lex_state=292; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:throw End_of_object; - case 2:return long_error(cst_Expected_or_but_found$8,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$27,v,lexbuf)}}} - function read_colon(v,lexbuf) - {var ocaml_lex_state=297; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error(cst_Expected_but_found$8,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$28,v,lexbuf)}}} - function start_any_tuple(v,lexbuf) - {var ocaml_lex_state=301; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return 1; - case 2:return long_error(cst_Expected_or_but_found$9,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$29,v,lexbuf)}}} - function read_lpar(v,lexbuf) - {var ocaml_lex_state=306; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error(cst_Expected_but_found$9,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$30,v,lexbuf)}}} - function read_rpar(v,lexbuf) - {var ocaml_lex_state=310; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error(cst_Expected_but_found$10,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$31,v,lexbuf)}}} - function read_lbr(v,lexbuf) - {var ocaml_lex_state=314; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error(cst_Expected_but_found$11,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$32,v,lexbuf)}}} - function read_rbr(v,lexbuf) - {var ocaml_lex_state=318; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error(cst_Expected_but_found$12,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$33,v,lexbuf)}}} - function finish_skip_stringlit(v,lexbuf) - {var ocaml_lex_state=378; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error(cst_Invalid_string_literal$0,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$35,v,lexbuf)}}} - function skip_json$2(counter,v,lexbuf) - {var _lk_=322; - if(counter < 50) - {var counter$0=counter + 1 | 0; - return ocaml_lex_skip_json_rec(counter$0,v,lexbuf,_lk_)} - return caml_trampoline_return(ocaml_lex_skip_json_rec,[0,v,lexbuf,_lk_])} - function ocaml_lex_skip_json_rec(counter,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); - if(18 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0:return 0; - case 1:return 0; - case 2:return 0; - case 3:return 0; - case 4:return 0; - case 5:return 0; - case 6:return finish_skip_stringlit(v,lexbuf); - case 7:return 0; - case 8:return 0; - case 9: - try - {read_space(v,lexbuf); - read_object_end(lexbuf); - skip_ident(v,lexbuf); - read_space(v,lexbuf); - read_colon(v,lexbuf); - read_space(v,lexbuf); - skip_json(v,lexbuf); - for(;;) - {read_space(v,lexbuf); - read_object_sep(v,lexbuf); - read_space(v,lexbuf); - skip_ident(v,lexbuf); - read_space(v,lexbuf); - read_colon(v,lexbuf); - read_space(v,lexbuf); - skip_json(v,lexbuf); - continue}} - catch(_lj_) - {_lj_ = caml_wrap_exception(_lj_); - if(_lj_ === End_of_object)return 0; - throw _lj_} - case 10: - try - {read_space(v,lexbuf); - read_array_end(lexbuf); - skip_json(v,lexbuf); - for(;;) - {read_space(v,lexbuf); - read_array_sep(v,lexbuf); - read_space(v,lexbuf); - skip_json(v,lexbuf); - continue}} - catch(_li_) - {_li_ = caml_wrap_exception(_li_); - if(_li_ === End_of_array)return 0; - throw _li_} - case 11:return long_error(cst_Invalid_token$3,v,lexbuf); - case 12:return long_error(cst_Invalid_token$4,v,lexbuf); - case 13: - if(counter < 50) - {var counter$0=counter + 1 | 0; - return skip_json$2(counter$0,v,lexbuf)} - return caml_trampoline_return(skip_json$2,[0,v,lexbuf]); - case 14: - finish_comment(v,lexbuf); - if(counter < 50) - {var counter$1=counter + 1 | 0; - return skip_json$2(counter$1,v,lexbuf)} - return caml_trampoline_return(skip_json$2,[0,v,lexbuf]); - case 15: - newline(v,lexbuf); - if(counter < 50) - {var counter$2=counter + 1 | 0; - return skip_json$2(counter$2,v,lexbuf)} - return caml_trampoline_return(skip_json$2,[0,v,lexbuf]); - case 16: - if(counter < 50) - {var counter$3=counter + 1 | 0; - return skip_json$2(counter$3,v,lexbuf)} - return caml_trampoline_return(skip_json$2,[0,v,lexbuf]); - case 17: - return custom_error(cst_Unexpected_end_of_input$34,v,lexbuf); - default:return long_error(cst_Invalid_token$5,v,lexbuf)}}} - function skip_json(v,lexbuf) - {return caml_trampoline(skip_json$2(0,v,lexbuf))} - function finish_skip_variant(v,lexbuf) - {var ocaml_lex_state=389; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - skip_json(v,lexbuf);read_space(v,lexbuf);return read_gt(v,lexbuf); - case 1:return 0; - case 2:return long_error(cst_Expected_or_but_found$10,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$36,v,lexbuf)}}} - function skip_ident(v,lexbuf) - {var ocaml_lex_state=394; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return finish_skip_stringlit(v,lexbuf); - case 1:return 0; - case 2:return long_error(cst_Expected_string_or_identif$1,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$37,v,lexbuf)}}} - function finish_buffer_stringlit(v,lexbuf) - {var ocaml_lex_state=450; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - caml_call2(Stdlib_Buffer[12],v[1],34); - return add_lexeme(v[1],lexbuf); - case 1:return long_error(cst_Invalid_string_literal$1,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$39,v,lexbuf)}}} - function buffer_json$2(counter,v,lexbuf) - {var _lh_=399; - if(counter < 50) - {var counter$0=counter + 1 | 0; - return ocaml_lex_buffer_json_rec(counter$0,v,lexbuf,_lh_)} - return caml_trampoline_return - (ocaml_lex_buffer_json_rec,[0,v,lexbuf,_lh_])} - function ocaml_lex_buffer_json_rec(counter,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); - if(11 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0:return add_lexeme(v[1],lexbuf); - case 1:return finish_buffer_stringlit(v,lexbuf); - case 2: - try - {caml_call2(Stdlib_Buffer[12],v[1],123); - buffer_space(v,lexbuf); - buffer_object_end(v,lexbuf); - buffer_ident(v,lexbuf); - buffer_space(v,lexbuf); - buffer_colon(v,lexbuf); - buffer_space(v,lexbuf); - buffer_json(v,lexbuf); - for(;;) - {buffer_space(v,lexbuf); - buffer_object_sep(v,lexbuf); - buffer_space(v,lexbuf); - buffer_ident(v,lexbuf); - buffer_space(v,lexbuf); - buffer_colon(v,lexbuf); - buffer_space(v,lexbuf); - buffer_json(v,lexbuf); - continue}} - catch(_lg_) - {_lg_ = caml_wrap_exception(_lg_); - if(_lg_ === End_of_object)return 0; - throw _lg_} - case 3: - try - {caml_call2(Stdlib_Buffer[12],v[1],91); - buffer_space(v,lexbuf); - buffer_array_end(v,lexbuf); - buffer_json(v,lexbuf); - for(;;) - {buffer_space(v,lexbuf); - buffer_array_sep(v,lexbuf); - buffer_space(v,lexbuf); - buffer_json(v,lexbuf); - continue}} - catch(_lf_) - {_lf_ = caml_wrap_exception(_lf_); - if(_lf_ === End_of_array)return 0; - throw _lf_} - case 4:return long_error(cst_Invalid_token$6,v,lexbuf); - case 5:return long_error(cst_Invalid_token$7,v,lexbuf); - case 6: - add_lexeme(v[1],lexbuf); - if(counter < 50) - {var counter$0=counter + 1 | 0; - return buffer_json$2(counter$0,v,lexbuf)} - return caml_trampoline_return(buffer_json$2,[0,v,lexbuf]); - case 7: - caml_call2(Stdlib_Buffer[16],v[1],cst$34); - finish_buffer_comment(v,lexbuf); - if(counter < 50) - {var counter$1=counter + 1 | 0; - return buffer_json$2(counter$1,v,lexbuf)} - return caml_trampoline_return(buffer_json$2,[0,v,lexbuf]); - case 8: - caml_call2(Stdlib_Buffer[12],v[1],10); - newline(v,lexbuf); - if(counter < 50) - {var counter$2=counter + 1 | 0; - return buffer_json$2(counter$2,v,lexbuf)} - return caml_trampoline_return(buffer_json$2,[0,v,lexbuf]); - case 9: - add_lexeme(v[1],lexbuf); - if(counter < 50) - {var counter$3=counter + 1 | 0; - return buffer_json$2(counter$3,v,lexbuf)} - return caml_trampoline_return(buffer_json$2,[0,v,lexbuf]); - case 10: - return custom_error(cst_Unexpected_end_of_input$38,v,lexbuf); - default:return long_error(cst_Invalid_token$8,v,lexbuf)}}} - function buffer_json(v,lexbuf) - {return caml_trampoline(buffer_json$2(0,v,lexbuf))} - function buffer_ident(v,lexbuf) - {var ocaml_lex_state=466; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return finish_buffer_stringlit(v,lexbuf); - case 1:return add_lexeme(v[1],lexbuf); - case 2:return long_error(cst_Expected_string_or_identif$2,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$40,v,lexbuf)}}} - function buffer_space(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=471; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(4 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:add_lexeme(v[1],lexbuf);newline(v,lexbuf);continue a; - case 1: - caml_call2(Stdlib_Buffer[16],v[1],cst$35); - finish_buffer_comment(v,lexbuf); - continue a; - case 2: - caml_call2(Stdlib_Buffer[12],v[1],10); - newline(v,lexbuf); - continue a; - case 3:add_lexeme(v[1],lexbuf);continue a; - default:return 0}}}} - function buffer_object_end(v,lexbuf) - {var ocaml_lex_state=478; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0) - {caml_call2(Stdlib_Buffer[12],v[1],125);throw End_of_object} - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - function buffer_object_sep(v,lexbuf) - {var ocaml_lex_state=480; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],44); - case 1:caml_call2(Stdlib_Buffer[12],v[1],125);throw End_of_object; - case 2:return long_error(cst_Expected_or_but_found$11,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$41,v,lexbuf)}}} - function buffer_array_end(v,lexbuf) - {var ocaml_lex_state=485; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0) - {caml_call2(Stdlib_Buffer[12],v[1],93);throw End_of_array} - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - function buffer_array_sep(v,lexbuf) - {var ocaml_lex_state=487; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],44); - case 1:caml_call2(Stdlib_Buffer[12],v[1],93);throw End_of_array; - case 2:return long_error(cst_Expected_or_but_found$12,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$42,v,lexbuf)}}} - function buffer_colon(v,lexbuf) - {var ocaml_lex_state=499; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],58); - case 1:return long_error(cst_Expected_but_found$13,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$43,v,lexbuf)}}} - function finish_buffer_comment(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=507; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[16],v[1],cst$36); - case 1:return long_error(cst_Unterminated_comment$0,v,lexbuf); - case 2: - caml_call2(Stdlib_Buffer[12],v[1],10); - newline(v,lexbuf); - continue a; - default:add_lexeme(v[1],lexbuf);continue a}}}} - function junk(lexbuf) - {var ocaml_lex_state=513; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)return caml_call1(lexeme,lexbuf); - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - read_junk[1] = junk; - function read_int8(v,lexbuf) - {var n=read_int(v,lexbuf); - if(0 <= n && ! (255 < n))return caml_call1(Stdlib[29],n); - return lexer_error(cst_Int8_overflow,v,lexbuf)} - function read_list(read_cell,v,lexbuf) - {var _le_=read_list_rev(read_cell,v,lexbuf); - return caml_call1(Stdlib_List[9],_le_)} - function read_array(read_cell,v,lexbuf) - {var l=read_list_rev(read_cell,v,lexbuf); - if(l) - {var - tl=l[2], - x=l[1], - len=caml_call1(Stdlib_List[1],l), - a=caml_make_vect(len,x), - r=[0,tl], - _lb_=len - 2 | 0; - if(! (_lb_ < 0)) - {var i=_lb_; - for(;;) - {var _lc_=caml_call1(Stdlib_List[5],r[1]); - caml_check_bound(a,i)[1 + i] = _lc_; - r[1] = caml_call1(Stdlib_List[6],r[1]); - var _ld_=i - 1 | 0; - if(0 !== i){var i=_ld_;continue} - break}} - return a} - return [0]} - function read_fields(read_field,init_acc,v) - {return function(_la_) - {return read_abstract_fields(read_ident,read_field,init_acc,v,_la_)}} - function from_lexbuf(v,opt,lexbuf) - {if(opt)var sth=opt[1],stream=sth;else var stream=0; - read_space(v,lexbuf); - if(read_eof(lexbuf))throw End_of_input; - var x=read_json(v,lexbuf); - if(1 - stream) - {read_space(v,lexbuf); - if(1 - read_eof(lexbuf)) - long_error(cst_Junk_after_end_of_JSON_val,v,lexbuf)} - return x} - function from_string$0(buf,fname,lnum,s) - {try - {var - lexbuf=caml_call2(from_string,0,s), - v=init_lexer(buf,fname,lnum,0), - _k__=from_lexbuf(v,0,lexbuf); - return _k__} - catch(_k$_) - {_k$_ = caml_wrap_exception(_k$_); - if(_k$_ === End_of_input)return json_error(cst_Blank_input_data); - throw _k$_}} - function from_channel$0(buf,fname,lnum,ic) - {try - {var - lexbuf=caml_call2(from_channel,0,ic), - v=init_lexer(buf,fname,lnum,0), - _k8_=from_lexbuf(v,0,lexbuf); - return _k8_} - catch(_k9_) - {_k9_ = caml_wrap_exception(_k9_); - if(_k9_ === End_of_input)return json_error(cst_Blank_input_data$0); - throw _k9_}} - function from_file(buf,fname,lnum,file) - {var ic=caml_call1(Stdlib[79],file); - try - {var x=from_channel$0(buf,fname,lnum,ic); - caml_call1(Stdlib[93],ic); - return x} - catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[94],ic);throw e}} - var Finally=[248,cst_Yojson_Basic_Finally,caml_fresh_oo_id(0)]; - function seq_from_lexbuf(v,opt,lexbuf) - {if(opt)var sth=opt[1],fin=sth;else var fin=function(param){return 0}; - function f(param) - {try - {var _k7_=[0,from_lexbuf(v,stream,lexbuf),f];return _k7_} - catch(e) - {e = caml_wrap_exception(e); - if(e === End_of_input){caml_call1(fin,0);return 0} - try - {caml_call1(fin,0)} - catch(fin_e) - {fin_e = caml_wrap_exception(fin_e);throw [0,Finally,e,fin_e]} - throw e}} - return f} - function seq_from_string(buf,fname,lnum,s) - {var v=init_lexer(buf,fname,lnum,0); - return seq_from_lexbuf(v,0,caml_call2(from_string,0,s))} - function seq_from_channel(buf,fin,fname,lnum,ic) - {var lexbuf=caml_call2(from_channel,0,ic),v=init_lexer(buf,fname,lnum,0); - return seq_from_lexbuf(v,fin,lexbuf)} - function seq_from_file(buf,fname,lnum,file) - {var ic=caml_call1(Stdlib[79],file); - function fin(param){return caml_call1(Stdlib[93],ic)} - var - fname$0=fname || [0,file], - lexbuf=caml_call2(from_channel,0,ic), - v=init_lexer(buf,fname$0,lnum,0); - return seq_from_lexbuf(v,[0,fin],lexbuf)} - function lineseq_from_channel(buf,opt,fname,_kZ_,ic) - {if(opt)var sth=opt[1],fin=sth;else var fin=function(param){return 0}; - if(_kZ_)var sth$0=_kZ_[1],lnum0=sth$0;else var lnum0=1; - var buf$0=buf || [0,caml_call1(Stdlib_Buffer[1],256)]; - function f(lnum,param) - {try - {var - line=caml_call1(Stdlib[83],ic), - _k2_=lnum + 1 | 0, - _k3_=function(_k6_){return f(_k2_,_k6_)}, - _k4_= - [0,[0,826371656,from_string$0(buf$0,fname,[0,lnum],line)],_k3_]; - return _k4_} - catch(e) - {e = caml_wrap_exception(e); - if(e === Stdlib[12]){caml_call1(fin,0);return 0} - var _k1_=lnum + 1 | 0; - return [0,[0,3458171,e],function(_k5_){return f(_k1_,_k5_)}]}} - return function(_k0_){return f(lnum0,_k0_)}} - function lineseq_from_file(buf,fname,lnum,file) - {var ic=caml_call1(Stdlib[79],file); - function fin(param){return caml_call1(Stdlib[93],ic)} - var fname$0=fname || [0,file]; - return lineseq_from_channel(buf,[0,fin],fname$0,lnum,ic)} - function prettify(std,s) - {return pretty_to_string$0(std,from_string$0(0,0,0,s))} - function compact(std,s) - {return to_string$0(0,0,0,0,from_string$0(0,0,0,s))} - var Type_error=[248,cst_Yojson_Basic_Util_Type_err,caml_fresh_oo_id(0)]; - function typerr(msg,js) - {if(typeof js === "number") - var _kY_=cst_null$3; - else - var - _kX_=js[1], - _kY_= - 708012133 <= _kX_ - ?726928360 === _kX_ - ?cst_tuple - :848054398 <= _kX_ - ?963043957 <= _kX_?cst_object:cst_array - :737456202 <= _kX_?cst_bool:cst_variant - :3654863 <= _kX_ - ?365180284 <= _kX_?cst_float:cst_int - :-752863768 <= _kX_?cst_intlit:cst_string; - throw [0,Type_error,caml_call2(Stdlib[28],msg,_kY_),js]} - var Undefined=[248,cst_Yojson_Basic_Util_Undefine,caml_fresh_oo_id(0)]; - function assoc(name,obj) - {try - {var _kV_=caml_call2(Stdlib_List[46],name,obj);return _kV_} - catch(_kW_) - {_kW_ = caml_wrap_exception(_kW_); - if(_kW_ === Stdlib[8])return 870828711; - throw _kW_}} - function member(name,js) - {if(typeof js !== "number" && 963043957 === js[1]) - {var obj=js[2];return assoc(name,obj)} - var _kU_=caml_call2(Stdlib[28],name,cst_of_non_object_type); - return typerr(caml_call2(Stdlib[28],cst_Can_t_get_member,_kU_),js)} - function index(i,js) - {if(typeof js !== "number" && 848054398 === js[1]) - {var - l=js[2], - len=caml_call1(Stdlib_List[1],l), - wrapped_index=0 <= i?i:len + i | 0; - if(0 <= wrapped_index && ! (len <= wrapped_index)) - return caml_call2(Stdlib_List[7],l,wrapped_index); - var - _kS_=caml_call1(Stdlib[33],i), - _kT_=caml_call2(Stdlib[28],_kS_,cst_out_of_bounds); - throw [0,Undefined,caml_call2(Stdlib[28],cst_Index,_kT_),js]} - var - _kQ_=caml_call1(Stdlib[33],i), - _kR_=caml_call2(Stdlib[28],_kQ_,cst_of_non_array_type); - return typerr(caml_call2(Stdlib[28],cst_Can_t_get_index,_kR_),js)} - function map(f,js) - {if(typeof js !== "number" && 848054398 === js[1]) - {var l=js[2];return [0,848054398,caml_call2(Stdlib_List[19],f,l)]} - return typerr(cst_Can_t_map_function_over_no,js)} - function to_assoc(js) - {if(typeof js !== "number" && 963043957 === js[1]) - {var obj=js[2];return obj} - return typerr(cst_Expected_object_got,js)} - function to_option(f,x){return 870828711 === x?0:[0,caml_call1(f,x)]} - function to_bool(js) - {if(typeof js !== "number" && 737456202 === js[1]){var b=js[2];return b} - return typerr(cst_Expected_bool_got,js)} - function to_bool_option(js) - {if(typeof js === "number") - {if(870828711 === js)return 0} - else - if(737456202 === js[1]){var b=js[2];return [0,b]} - return typerr(cst_Expected_bool_or_null_got,js)} - function to_number(js) - {if(typeof js !== "number") - {var _kP_=js[1]; - if(3654863 === _kP_){var i=js[2];return i} - if(365180284 === _kP_){var f=js[2];return f}} - return typerr(cst_Expected_number_got,js)} - function to_number_option(js) - {if(typeof js === "number") - {if(870828711 === js)return 0} - else - {var _kO_=js[1]; - if(3654863 === _kO_){var i=js[2];return [0,i]} - if(365180284 === _kO_){var f=js[2];return [0,f]}} - return typerr(cst_Expected_number_or_null_go,js)} - function to_float(js) - {if(typeof js !== "number" && 365180284 === js[1]){var f=js[2];return f} - return typerr(cst_Expected_float_got,js)} - function to_float_option(js) - {if(typeof js === "number") - {if(870828711 === js)return 0} - else - if(365180284 === js[1]){var f=js[2];return [0,f]} - return typerr(cst_Expected_float_or_null_got,js)} - function to_int(js) - {if(typeof js !== "number" && 3654863 === js[1]){var i=js[2];return i} - return typerr(cst_Expected_int_got,js)} - function to_int_option(js) - {if(typeof js === "number") - {if(870828711 === js)return 0} - else - if(3654863 === js[1]){var i=js[2];return [0,i]} - return typerr(cst_Expected_int_or_null_got,js)} - function to_list(js) - {if(typeof js !== "number" && 848054398 === js[1]){var l=js[2];return l} - return typerr(cst_Expected_array_got,js)} - function to_string$1(js) - {if(typeof js !== "number" && -976970511 === js[1]){var s=js[2];return s} - return typerr(cst_Expected_string_got,js)} - function to_string_option(js) - {if(typeof js === "number") - {if(870828711 === js)return 0} - else - if(-976970511 === js[1]){var s=js[2];return [0,s]} - return typerr(cst_Expected_string_or_null_go,js)} - function convert_each(f,js) - {if(typeof js !== "number" && 848054398 === js[1]) - {var l=js[2];return caml_call2(Stdlib_List[19],f,l)} - return typerr(cst_Can_t_convert_each_element,js)} - function filter_map(f,l$0) - {var acc=0,l=l$0; - for(;;) - {if(l) - {var tl=l[2],x=l[1],match=caml_call1(f,x); - if(match){var y=match[1],acc$0=[0,y,acc],acc=acc$0,l=tl;continue} - var l=tl; - continue} - return caml_call1(Stdlib_List[9],acc)}} - function flatten(l$0) - {var acc=0,l=l$0; - for(;;) - {if(l) - {var tl=l[2],x=l[1]; - if(typeof x !== "number" && 848054398 === x[1]) - {var - l2=x[2], - acc$0=caml_call2(Stdlib_List[12],l2,acc), - acc=acc$0, - l=tl; - continue} - var l=tl; - continue} - return caml_call1(Stdlib_List[9],acc)}} - function filter_index(i,l) - {return filter_map - (function(param) - {if(typeof param !== "number" && 848054398 === param[1]) - {var l=param[2]; - try - {var _kM_=[0,caml_call2(Stdlib_List[7],l,i)];return _kM_} - catch(_kN_){return 0}} - return 0}, - l)} - function filter_list(l) - {return filter_map - (function(param) - {if(typeof param !== "number" && 848054398 === param[1]) - {var l=param[2];return [0,l]} - return 0}, - l)} - function filter_member(k,l) - {return filter_map - (function(param) - {if(typeof param !== "number" && 963043957 === param[1]) - {var l=param[2]; - try - {var _kK_=[0,caml_call2(Stdlib_List[46],k,l)];return _kK_} - catch(_kL_){return 0}} - return 0}, - l)} - function filter_assoc(l) - {return filter_map - (function(param) - {if(typeof param !== "number" && 963043957 === param[1]) - {var l=param[2];return [0,l]} - return 0}, - l)} - function filter_bool(l) - {return filter_map - (function(param) - {if(typeof param !== "number" && 737456202 === param[1]) - {var x=param[2];return [0,x]} - return 0}, - l)} - function filter_int(l) - {return filter_map - (function(param) - {if(typeof param !== "number" && 3654863 === param[1]) - {var x=param[2];return [0,x]} - return 0}, - l)} - function filter_float(l) - {return filter_map - (function(param) - {if(typeof param !== "number" && 365180284 === param[1]) - {var x=param[2];return [0,x]} - return 0}, - l)} - function filter_number(l) - {return filter_map - (function(param) - {if(typeof param !== "number") - {var _kJ_=param[1]; - if(3654863 === _kJ_){var x=param[2];return [0,x]} - if(365180284 === _kJ_){var x$0=param[2];return [0,x$0]}} - return 0}, - l)} - function filter_string(l) - {return filter_map - (function(param) - {if(typeof param !== "number" && -976970511 === param[1]) - {var x=param[2];return [0,x]} - return 0}, - l)} - function keys(o) - {var _kH_=to_assoc(o); - function _kI_(param){var key=param[1];return key} - return caml_call1(caml_call1(Stdlib_List[19],_kI_),_kH_)} - function values(o) - {var _kF_=to_assoc(o); - function _kG_(param){var value=param[2];return value} - return caml_call1(caml_call1(Stdlib_List[19],_kG_),_kF_)} - function combine(first,second) - {if - (typeof first - !== - "number" - && - 963043957 - === - first[1] - && - typeof second - !== - "number" - && - 963043957 - === - second[1]) - {var b=second[2],a=first[2]; - return [0,963043957,caml_call2(Stdlib[37],a,b)]} - throw [0,Stdlib[6],cst_Expected_two_objects_check]} - function to_basic(x) - {if(typeof x !== "number") - {var _ky_=x[1]; - if(726928360 <= _ky_) - {if(737456202 !== _ky_) - {if(963043957 <= _ky_) - {var - l=x[2], - _kz_= - function(param) - {var v=param[2],k=param[1];return [0,k,to_basic(v)]}, - _kA_=caml_call2(Stdlib_List[21],_kz_,l); - return [0,963043957,caml_call1(Stdlib_List[9],_kA_)]} - var l$0=x[2],_kB_=caml_call2(Stdlib_List[21],to_basic,l$0); - return [0,848054398,caml_call1(Stdlib_List[9],_kB_)]}} - else - {if(-752863768 === _ky_){var s=x[2];return [0,-976970511,s]} - if(708012133 <= _ky_) - {var _kC_=x[2],_kD_=_kC_[2],_kE_=_kC_[1]; - if(_kD_) - {var v=_kD_[1]; - return [0,848054398,[0,[0,-976970511,_kE_],[0,to_basic(v),0]]]} - return [0,-976970511,_kE_]}}} - return x} - function hex$2(n) - {var _kx_=10 <= n?n + 87 | 0:n + 48 | 0; - return caml_call1(Stdlib_Char[1],_kx_)} - function write_special$1(src,start,stop,ob,str) - {caml_call4(Stdlib_Buffer[18],ob,src,start[1],stop - start[1] | 0); - caml_call2(Stdlib_Buffer[16],ob,str); - start[1] = stop + 1 | 0; - return 0} - function finish_string$2(src,start,ob) - {try - {var - _kw_= + write_special(src, start, stop, ob, cst_f); break; + case 5: + write_special(src, start, stop, ob, cst_r); break; + case 26: + write_special(src, start, stop, ob, cst$0); break; + case 24: + case 25: + switch$0 = 2; switch$1 = 1; break; + default: switch$1 = 1; + } + if(! switch$1) switch$0 = 1; + } + switch(switch$0){ + case 2: break; + case 0: caml_call4 - (Stdlib_Buffer[18], - ob, - src, - start[1], - caml_ml_string_length(src) - start[1] | 0); - return _kw_} - catch(exc) - {exc = caml_wrap_exception(exc); - caml_call4 - (Stdlib_Printf[3], - _bU_, - src, - start[1], - caml_ml_string_length(src) - start[1] | 0); - throw exc}} - function write_string$1(ob,s) - {caml_call2(Stdlib_Buffer[12],ob,34); - var start=[0,0],_ku_=caml_ml_string_length(s) - 1 | 0,_kt_=0; - if(! (_ku_ < 0)) - {var i=_kt_; - for(;;) - {var c=caml_string_get(s,i); - if(92 === c) - write_special$1(s,start,i,ob,cst$37); - else - {var switch$0=0; - if(35 <= c) - if(127 === c)switch$0 = 1;else switch$0 = 2; - else - if(8 <= c) - {var switch$1=0; - switch(c - 8 | 0) - {case 0:write_special$1(s,start,i,ob,cst_b$1);break; - case 1:write_special$1(s,start,i,ob,cst_t$1);break; - case 2:write_special$1(s,start,i,ob,cst_n$1);break; - case 4:write_special$1(s,start,i,ob,cst_f$1);break; - case 5:write_special$1(s,start,i,ob,cst_r$1);break; - case 26:write_special$1(s,start,i,ob,cst$38);break; - case 24: - case 25:switch$0 = 2;switch$1 = 1;break; - default:switch$0 = 1;switch$1 = 1}} - else - switch$0 = 1; - switch(switch$0) - {case 2:break; - case 1: - caml_call4(Stdlib_Buffer[18],ob,s,start[1],i - start[1] | 0); - caml_call2(Stdlib_Buffer[16],ob,cst_u00$1); - var _kr_=hex$2(c >>> 4 | 0); - caml_call2(Stdlib_Buffer[12],ob,_kr_); - var _ks_=hex$2(c & 15); - caml_call2(Stdlib_Buffer[12],ob,_ks_); - start[1] = i + 1 | 0; - break - }} - var _kv_=i + 1 | 0; - if(_ku_ !== i){var i=_kv_;continue} - break}} - finish_string$2(s,start,ob); - return caml_call2(Stdlib_Buffer[12],ob,34)} - function json_string_of_string$1(s) - {var ob=caml_call1(Stdlib_Buffer[1],10); - write_string$1(ob,s); - return caml_call1(Stdlib_Buffer[2],ob)} - function write_null$1(ob,param) - {return caml_call2(Stdlib_Buffer[16],ob,cst_null$4)} - function write_bool$1(ob,x) - {var _kq_=x?cst_true$1:cst_false$1; - return caml_call2(Stdlib_Buffer[16],ob,_kq_)} + (Stdlib_Buffer[18], ob, src, start[1], stop - start[1] | 0); + caml_call2(Stdlib_Buffer[16], ob, cst_u00); + var _pJ_ = hex(c >>> 4 | 0); + caml_call2(Stdlib_Buffer[12], ob, _pJ_); + var _pK_ = hex(c & 15); + caml_call2(Stdlib_Buffer[12], ob, _pK_); + start[1] = stop + 1 | 0; + break; + } + } + var _pN_ = stop + 1 | 0; + if(_pM_ !== stop){var stop = _pN_; continue;} + break; + } + } + try{ + caml_call4 + (Stdlib_Buffer[18], + ob, + src, + start[1], + caml_ml_string_length(src) - start[1] | 0); + } + catch(exc$0){ + var exc = caml_wrap_exception(exc$0); + caml_call4 + (Stdlib_Printf[3], + _b_, + src, + start[1], + caml_ml_string_length(src) - start[1] | 0); + throw caml_maybe_attach_backtrace(exc, 0); + } + return caml_call2(Stdlib_Buffer[12], ob, 34); + } + function json_string_of_string(s){ + var ob = caml_call1(Stdlib_Buffer[1], 10); + write_string(ob, s); + return caml_call1(Stdlib_Buffer[2], ob); + } + function write_null(ob, param){ + return caml_call2(Stdlib_Buffer[16], ob, cst_null); + } + function write_bool(ob, x){ + var _pI_ = x ? cst_true : cst_false; + return caml_call2(Stdlib_Buffer[16], ob, _pI_); + } + var + _c_ = caml_ml_string_length(caml_call1(Stdlib[33], Stdlib[20])), + _d_ = caml_ml_string_length(caml_call1(Stdlib[33], Stdlib[19])); + caml_call2(Stdlib[17], _d_, _c_); + function write_digits(s, x){ + if(0 === x) return 0; + var d = x % 10 | 0; + write_digits(s, x / 10 | 0); var - _bV_=caml_ml_string_length(caml_call1(Stdlib[33],Stdlib[20])), - _bW_=caml_ml_string_length(caml_call1(Stdlib[33],Stdlib[19])); - caml_call2(Stdlib[17],_bW_,_bV_); - function write_digits$1(s,x) - {if(0 === x)return 0; - var d=x % 10 | 0; - write_digits$1(s,x / 10 | 0); - var - n=caml_call1(Stdlib[18],d), - _kp_=caml_call1(Stdlib_Char[1],n + 48 | 0); - return caml_call2(Stdlib_Buffer[12],s,_kp_)} - function write_int$1(ob,x) - {return 0 < x - ?write_digits$1(ob,x) - :0 <= x - ?caml_call2(Stdlib_Buffer[12],ob,48) - :(caml_call2(Stdlib_Buffer[12],ob,45),write_digits$1(ob,x))} - function float_needs_period$1(s) - {try - {var _kl_=caml_ml_string_length(s) - 1 | 0,_kk_=0; - if(! (_kl_ < 0)) - {var i=_kk_; - for(;;) - {var match=caml_string_get(s,i),switch$0=0; - if(48 <= match) - {if(! (58 <= match))switch$0 = 1} - else - if(45 === match)switch$0 = 1; - if(! switch$0)throw Stdlib[3]; - var _kn_=i + 1 | 0; - if(_kl_ !== i){var i=_kn_;continue} - break}} - var _km_=1; - return _km_} - catch(_ko_) - {_ko_ = caml_wrap_exception(_ko_); - if(_ko_ === Stdlib[3])return 0; - throw _ko_}} - function write_float$1(ob,x) - {var match=caml_classify_float(x); - if(3 === match) - {var _ki_=0. < x?cst_Infinity$9:cst_Infinity$10; - return caml_call2(Stdlib_Buffer[16],ob,_ki_)} - if(4 <= match)return caml_call2(Stdlib_Buffer[16],ob,cst_NaN$4); - var - s1=caml_call2(Stdlib_Printf[4],_bX_,x), - s=caml_float_of_string(s1) == x?s1:caml_call2(Stdlib_Printf[4],_bY_,x); - caml_call2(Stdlib_Buffer[16],ob,s); - var _kj_=float_needs_period$1(s); - return _kj_?caml_call2(Stdlib_Buffer[16],ob,cst_0$5):_kj_} - function write_normal_float_prec$1(significant_figures,ob,x) - {var switcher=significant_figures - 1 | 0; - if(15 < switcher >>> 0) - var s=caml_call2(Stdlib_Printf[4],_bZ_,x); - else - switch(switcher) - {case 0:var s=caml_call2(Stdlib_Printf[4],_b0_,x);break; - case 1:var s=caml_call2(Stdlib_Printf[4],_b1_,x);break; - case 2:var s=caml_call2(Stdlib_Printf[4],_b2_,x);break; - case 3:var s=caml_call2(Stdlib_Printf[4],_b3_,x);break; - case 4:var s=caml_call2(Stdlib_Printf[4],_b4_,x);break; - case 5:var s=caml_call2(Stdlib_Printf[4],_b5_,x);break; - case 6:var s=caml_call2(Stdlib_Printf[4],_b6_,x);break; - case 7:var s=caml_call2(Stdlib_Printf[4],_b7_,x);break; - case 8:var s=caml_call2(Stdlib_Printf[4],_b8_,x);break; - case 9:var s=caml_call2(Stdlib_Printf[4],_b9_,x);break; - case 10:var s=caml_call2(Stdlib_Printf[4],_b__,x);break; - case 11:var s=caml_call2(Stdlib_Printf[4],_b$_,x);break; - case 12:var s=caml_call2(Stdlib_Printf[4],_ca_,x);break; - case 13:var s=caml_call2(Stdlib_Printf[4],_cb_,x);break; - case 14:var s=caml_call2(Stdlib_Printf[4],_cc_,x);break; - default:var s=caml_call2(Stdlib_Printf[4],_cd_,x)} - caml_call2(Stdlib_Buffer[16],ob,s); - var _kh_=float_needs_period$1(s); - return _kh_?caml_call2(Stdlib_Buffer[16],ob,cst_0$6):_kh_} - function write_float_prec$1(significant_figures,ob,x) - {var match=caml_classify_float(x); - if(3 === match) - {var _kg_=0. < x?cst_Infinity$11:cst_Infinity$12; - return caml_call2(Stdlib_Buffer[16],ob,_kg_)} - return 4 <= match - ?caml_call2(Stdlib_Buffer[16],ob,cst_NaN$5) - :write_normal_float_prec$1(significant_figures,ob,x)} - function write_std_float$1(ob,x) - {var match=caml_classify_float(x); - if(3 === match) - {var - _ke_= - 0. < x - ?cst_Infinity_value_not_allowed$7 - :cst_Infinity_value_not_allowed$8; - return json_error(_ke_)} - if(4 <= match)return json_error(cst_NaN_value_not_allowed_in_s$3); - var - s1=caml_call2(Stdlib_Printf[4],_ce_,x), - s=caml_float_of_string(s1) == x?s1:caml_call2(Stdlib_Printf[4],_cf_,x); - caml_call2(Stdlib_Buffer[16],ob,s); - var _kf_=float_needs_period$1(s); - return _kf_?caml_call2(Stdlib_Buffer[16],ob,cst_0$7):_kf_} - function write_std_float_prec$1(significant_figures,ob,x) - {var match=caml_classify_float(x); - if(3 === match) - {var - _kd_= - 0. < x - ?cst_Infinity_value_not_allowed$9 - :cst_Infinity_value_not_allowed$10; - return json_error(_kd_)} - return 4 <= match - ?json_error(cst_NaN_value_not_allowed_in_s$4) - :write_normal_float_prec$1(significant_figures,ob,x)} - var write_intlit$0=Stdlib_Buffer[16]; - function iter2$1(f_elt,f_sep,x,param$0) - {if(param$0) - {var l$0=param$0[2],y$0=param$0[1]; - caml_call2(f_elt,x,y$0); - var param=l$0; - for(;;) - {if(param) - {var l=param[2],y=param[1]; - caml_call1(f_sep,x); - caml_call2(f_elt,x,y); - var param=l; - continue} - return 0}} - return 0} - function f_sep$1(ob){return caml_call2(Stdlib_Buffer[12],ob,44)} - function write_variant$0(ob,s,o) - {caml_call2(Stdlib_Buffer[12],ob,60); - write_string$1(ob,s); - if(o){var x=o[1];caml_call2(Stdlib_Buffer[12],ob,58);write_t$1(ob,x)} - return caml_call2(Stdlib_Buffer[12],ob,62)} - function write_tuple$0(ob,l) - {caml_call2(Stdlib_Buffer[12],ob,40); - iter2$1(write_t$1,f_sep$1,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,41)} - function write_list$1(ob,l) - {caml_call2(Stdlib_Buffer[12],ob,91); - iter2$1(write_t$1,f_sep$1,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,93)} - function write_assoc$1(ob,l) - {function f_elt(ob,param) - {var x=param[2],s=param[1]; - write_string$1(ob,s); - caml_call2(Stdlib_Buffer[12],ob,58); - return write_t$1(ob,x)} - caml_call2(Stdlib_Buffer[12],ob,123); - iter2$1(f_elt,f_sep$1,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,125)} - function write_t$1(ob,x) - {if(typeof x === "number")return write_null$1(ob,0); - var _kc_=x[1]; - if(708012133 <= _kc_) - {if(726928360 === _kc_){var l=x[2];return write_tuple$0(ob,l)} - if(848054398 <= _kc_) - {if(963043957 <= _kc_){var l$0=x[2];return write_assoc$1(ob,l$0)} - var l$1=x[2]; - return write_list$1(ob,l$1)} - if(737456202 <= _kc_){var b=x[2];return write_bool$1(ob,b)} - var match=x[2],o=match[2],s=match[1]; - return write_variant$0(ob,s,o)} - if(3654863 <= _kc_) - {if(365180284 <= _kc_){var f=x[2];return write_float$1(ob,f)} - var i=x[2]; - return write_int$1(ob,i)} - if(-752863768 <= _kc_) - {var s$0=x[2];return caml_call2(Stdlib_Buffer[16],ob,s$0)} - var s$1=x[2]; - return write_string$1(ob,s$1)} - function write_std_variant$0(ob,s,o) - {if(o) - {var x=o[1]; - caml_call2(Stdlib_Buffer[12],ob,91); - write_string$1(ob,s); - caml_call2(Stdlib_Buffer[12],ob,44); - write_std_json$1(ob,x); - return caml_call2(Stdlib_Buffer[12],ob,93)} - return write_string$1(ob,s)} - function write_std_tuple$0(ob,l) - {caml_call2(Stdlib_Buffer[12],ob,91); - iter2$1(write_std_json$1,f_sep$1,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,93)} - function write_std_json$1(ob,x) - {if(typeof x === "number")return write_null$1(ob,0); - var _kb_=x[1]; - if(708012133 <= _kb_) - {if(726928360 === _kb_){var l=x[2];return write_std_tuple$0(ob,l)} - if(848054398 <= _kb_) - {if(963043957 <= _kb_) - {var - l$0=x[2], - f_elt= - function(ob,param) - {var x=param[2],s=param[1]; - write_string$1(ob,s); - caml_call2(Stdlib_Buffer[12],ob,58); - return write_std_json$1(ob,x)}; - caml_call2(Stdlib_Buffer[12],ob,123); - iter2$1(f_elt,f_sep$1,ob,l$0); - return caml_call2(Stdlib_Buffer[12],ob,125)} - var l$1=x[2]; - caml_call2(Stdlib_Buffer[12],ob,91); - iter2$1(write_std_json$1,f_sep$1,ob,l$1); - return caml_call2(Stdlib_Buffer[12],ob,93)} - if(737456202 <= _kb_){var b=x[2];return write_bool$1(ob,b)} - var match=x[2],o=match[2],s=match[1]; - return write_std_variant$0(ob,s,o)} - if(3654863 <= _kb_) - {if(365180284 <= _kb_){var f=x[2];return write_std_float$1(ob,f)} - var i=x[2]; - return write_int$1(ob,i)} - if(-752863768 <= _kb_) - {var s$0=x[2];return caml_call2(Stdlib_Buffer[16],ob,s$0)} - var s$1=x[2]; - return write_string$1(ob,s$1)} - function to_buffer$1(opt,_ka_,ob,x) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$39; - if(_ka_)var sth$0=_ka_[1],std=sth$0;else var std=0; - if(std)write_std_json$1(ob,x);else write_t$1(ob,x); - return caml_call2(Stdlib_Buffer[16],ob,suf)} - function to_string$2(buf,opt,_j$_,std,x) - {if(opt)var sth=opt[1],len=sth;else var len=256; - if(_j$_)var sth$0=_j$_[1],suf=sth$0;else var suf=cst$40; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - to_buffer$1([0,suf],std,ob$0,x); - var s=caml_call1(Stdlib_Buffer[2],ob$0); - caml_call1(Stdlib_Buffer[8],ob$0); - return s} - function to_channel$1(buf,opt,_j__,std,oc,x) - {if(opt)var sth=opt[1],len=sth;else var len=4096; - if(_j__)var sth$0=_j__[1],suf=sth$0;else var suf=cst$41; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - to_buffer$1([0,suf],std,ob$0,x); - caml_call2(Stdlib_Buffer[10],oc,ob$0); - return caml_call1(Stdlib_Buffer[8],ob$0)} - function to_output$1(buf,opt,_j8_,std,out,x) - {if(opt)var sth=opt[1],len=sth;else var len=4096; - if(_j8_)var sth$0=_j8_[1],suf=sth$0;else var suf=cst$42; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - to_buffer$1([0,suf],std,ob$0,x); - var _j9_=caml_call1(Stdlib_Buffer[7],ob$0); - caml_call4 - (caml_get_public_method(out,209784577,3), - out, - caml_call1(Stdlib_Buffer[2],ob$0), - 0, - _j9_); - return caml_call1(Stdlib_Buffer[8],ob$0)} - function to_file$1(len,std,opt,file,x) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$43; - var oc=caml_call1(Stdlib[60],file); - try - {to_channel$1(0,len,[0,suf],std,oc,x); - var _j7_=caml_call1(Stdlib[76],oc); - return _j7_} - catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[77],oc);throw e}} - function seq_to_buffer$1(opt,std,ob,st) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$44; - var _j4_=[0,suf]; - function _j5_(_j6_){return to_buffer$1(_j4_,std,ob,_j6_)} - return caml_call2(Stdlib_Seq[4],_j5_,st)} - function seq_to_string$1(buf,opt,_j3_,std,st) - {if(opt)var sth=opt[1],len=sth;else var len=256; - if(_j3_)var sth$0=_j3_[1],suf=sth$0;else var suf=cst$45; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - seq_to_buffer$1([0,suf],std,ob$0,st); - var s=caml_call1(Stdlib_Buffer[2],ob$0); - caml_call1(Stdlib_Buffer[8],ob$0); - return s} - function seq_to_channel$1(buf,opt,_j1_,std,oc,seq) - {if(opt)var sth=opt[1],len=sth;else var len=2096; - if(_j1_)var sth$0=_j1_[1],suf=sth$0;else var suf=cst$46; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - function _j2_(json) - {to_buffer$1([0,suf],std,ob$0,json); - caml_call2(Stdlib_Buffer[10],oc,ob$0); - return caml_call1(Stdlib_Buffer[8],ob$0)} - return caml_call2(Stdlib_Seq[4],_j2_,seq)} - function seq_to_file$1(len,opt,std,file,st) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$47; - var oc=caml_call1(Stdlib[60],file); - try - {seq_to_channel$1(0,len,[0,suf],std,oc,st); - var _j0_=caml_call1(Stdlib[76],oc); - return _j0_} - catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[77],oc);throw e}} - function sort$1(x) - {if(typeof x !== "number") - {var _jR_=x[1]; - if(726928361 <= _jR_) - {if(848054398 === _jR_) - {var l=x[2],_jS_=caml_call2(Stdlib_List[21],sort$1,l); - return [0,848054398,caml_call1(Stdlib_List[9],_jS_)]} - if(963043957 === _jR_) - {var - l$0=x[2], - _jT_= - function(param) - {var v=param[2],k=param[1];return [0,k,sort$1(v)]}, - _jU_=caml_call2(Stdlib_List[21],_jT_,l$0), - l$1=caml_call1(Stdlib_List[9],_jU_), - _jV_= - function(param,_jZ_) - {var b=_jZ_[1],a=param[1]; - return caml_call2(Stdlib_String[9],a,b)}; - return [0,963043957,caml_call2(Stdlib_List[57],_jV_,l$1)]}} - else - if(708012133 === _jR_) - {var _jW_=x[2],_jX_=_jW_[2]; - if(_jX_) - {var v=_jX_[1],k=_jW_[1],v$0=sort$1(v); - return v === v$0?x:[0,708012133,[0,k,[0,v$0]]]}} - else - if(726928360 <= _jR_) - {var l$2=x[2],_jY_=caml_call2(Stdlib_List[21],sort$1,l$2); - return [0,726928360,caml_call1(Stdlib_List[9],_jY_)]}} - return x} - function pp_list$1(sep,ppx,out,l) - {function pp_sep(out,param) - {return caml_call3(Stdlib_Format[129],out,_cg_,sep)} - return caml_call4(Stdlib_Format[123],[0,pp_sep],ppx,out,l)} - function is_atom$1(x) - {if(typeof x !== "number") - {var _jQ_=x[1],switch$0=0; - if(737456202 <= _jQ_) - {if(848054398 === _jQ_) - {if(x[2])switch$0 = 1} - else - if(963043957 <= _jQ_ && x[2])switch$0 = 1} - else - if(708012133 === _jQ_) - {if(x[2][2])switch$0 = 1} - else - if(726928360 <= _jQ_ && x[2])switch$0 = 1; - if(switch$0)return 0} - return 1} - function format$1(inside_box,std,out,x) - {var x$0=x; - for(;;) - {if(typeof x$0 === "number") - return caml_call2(Stdlib_Format[13],out,cst_null$5); - var _i9_=x$0[1]; - if(708012133 <= _i9_) - {if(726928360 === _i9_) - {var l=x$0[2]; - if(std){var x$1=[0,848054398,l],x$0=x$1;continue} - if(0 === l)return caml_call2(Stdlib_Format[13],out,cst$48); - if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_ch_); - var - _i__=0, - _i$_=function(_jO_,_jP_){return format$1(_i__,std,_jO_,_jP_)}, - _ja_=function(_jM_,_jN_){return pp_list$1(cst$49,_i$_,_jM_,_jN_)}; - caml_call4(Stdlib_Format[129],out,_ci_,_ja_,l); - var _jb_=1 - inside_box; - return _jb_?caml_call2(Stdlib_Format[129],out,_cj_):_jb_} - if(848054398 <= _i9_) - {if(963043957 <= _i9_) - {var _jc_=x$0[2]; - if(_jc_) - {if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_ck_); - var - _jd_= - function(out,param) - {var x=param[2],name=param[1],_jH_=1; - function _jI_(_jK_,_jL_) - {return format$1(_jH_,std,_jK_,_jL_)} - var _jJ_=json_string_of_string$1(name); - return caml_call5(Stdlib_Format[129],out,_ct_,_jJ_,_jI_,x)}, - _je_= - function(_jF_,_jG_){return pp_list$1(cst$50,_jd_,_jF_,_jG_)}; - caml_call4(Stdlib_Format[129],out,_cl_,_je_,_jc_); - var _jf_=1 - inside_box; - return _jf_?caml_call2(Stdlib_Format[129],out,_cm_):_jf_} - return caml_call2(Stdlib_Format[13],out,cst$51)} - var _jg_=x$0[2]; - if(_jg_) - {if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_cn_); - if(caml_call2(Stdlib_List[32],is_atom$1,_jg_)) - {var - _jh_=0, - _ji_=function(_jz_,_jA_){return format$1(_jh_,std,_jz_,_jA_)}, - _jj_= - function(_jx_,_jy_){return pp_list$1(cst$52,_ji_,_jx_,_jy_)}; - caml_call4(Stdlib_Format[129],out,_co_,_jj_,_jg_)} - else - {var - _jl_=0, - _jm_=function(_jD_,_jE_){return format$1(_jl_,std,_jD_,_jE_)}, - _jn_= - function(_jB_,_jC_){return pp_list$1(cst$53,_jm_,_jB_,_jC_)}; - caml_call4(Stdlib_Format[129],out,_cq_,_jn_,_jg_)} - var _jk_=1 - inside_box; - return _jk_?caml_call2(Stdlib_Format[129],out,_cp_):_jk_} - return caml_call2(Stdlib_Format[13],out,cst$54)} - if(737456202 <= _i9_) - {var x$2=x$0[2];return caml_call2(Stdlib_Format[25],out,x$2)} - var _jo_=x$0[2],_jp_=_jo_[2],_jq_=_jo_[1]; - if(_jp_) - {var x$3=_jp_[1]; - if(std) - {var - representation=[0,-976970511,_jq_], - x$4=[0,848054398,[0,representation,[0,x$3,0]]], - x$0=x$4; - continue} - var - op=json_string_of_string$1(_jq_), - _jr_=1, - _js_=function(_jv_,_jw_){return format$1(_jr_,std,_jv_,_jw_)}; - return caml_call5(Stdlib_Format[129],out,_cr_,op,_js_,x$3)} - if(std){var x$5=[0,-976970511,_jq_],x$0=x$5;continue} - var _jt_=json_string_of_string$1(_jq_); - return caml_call3(Stdlib_Format[129],out,_cs_,_jt_)} - if(3654863 <= _i9_) - {if(365180284 <= _i9_) - {var x$6=x$0[2]; - if(std) - {var ob$0=caml_call1(Stdlib_Buffer[1],20); - write_std_float$1(ob$0,x$6); - var s=caml_call1(Stdlib_Buffer[2],ob$0)} - else - {var ob=caml_call1(Stdlib_Buffer[1],20); - write_float$1(ob,x$6); - var s=caml_call1(Stdlib_Buffer[2],ob)} - return caml_call2(Stdlib_Format[13],out,s)} - var x$7=x$0[2],_i8_=caml_call1(Stdlib[33],x$7); - return caml_call2(Stdlib_Format[13],out,_i8_)} - if(-752863768 <= _i9_) - {var s$0=x$0[2];return caml_call2(Stdlib_Format[13],out,s$0)} - var s$1=x$0[2],_ju_=json_string_of_string$1(s$1); - return caml_call2(Stdlib_Format[13],out,_ju_)}} - function pp$3(opt,out,x) - {if(opt)var sth=opt[1],std=sth;else var std=0; - var _i4_=1; - function _i5_(_i6_,_i7_){return format$1(_i4_,std,_i6_,_i7_)} - return caml_call4(Stdlib_Format[129],out,_cu_,_i5_,x)} - function pp$4(fmt,param) - {if(typeof param === "number") - return caml_call2(Stdlib_Format[13],fmt,cst_Null$1); - var _iX_=param[1]; - if(708012133 <= _iX_) - {if(726928360 === _iX_) - {var tup=param[2]; - caml_call2(Stdlib_Format[129],fmt,_cx_); - caml_call2(Stdlib_Format[129],fmt,_cy_); - var - _iY_=0, - _iZ_= - function(sep,e) - {if(sep)caml_call2(Stdlib_Format[129],fmt,_cz_); - pp$4(fmt,e); - return 1}; - caml_call3(Stdlib_List[25],_iZ_,_iY_,tup); - caml_call2(Stdlib_Format[129],fmt,_cA_); - return caml_call2(Stdlib_Format[129],fmt,_cB_)} - if(848054398 <= _iX_) - {if(963043957 <= _iX_) - {var xs=param[2]; - caml_call2(Stdlib_Format[129],fmt,_cC_); - caml_call2(Stdlib_Format[129],fmt,_cD_); - var - _i0_=0, - _i1_= - function(sep,param) - {var value=param[2],key=param[1]; - if(sep)caml_call2(Stdlib_Format[129],fmt,_cE_); - caml_call2(Stdlib_Format[129],fmt,_cF_); - caml_call3(Stdlib_Format[129],fmt,_cG_,key); - caml_call2(Stdlib_Format[129],fmt,_cH_); - pp$4(fmt,value); - caml_call2(Stdlib_Format[129],fmt,_cI_); - return 1}; - caml_call3(Stdlib_List[25],_i1_,_i0_,xs); - caml_call2(Stdlib_Format[129],fmt,_cJ_); - return caml_call2(Stdlib_Format[129],fmt,_cK_)} - var xs$0=param[2]; - caml_call2(Stdlib_Format[129],fmt,_cL_); - caml_call2(Stdlib_Format[129],fmt,_cM_); - var - _i2_=0, - _i3_= - function(sep,x) - {if(sep)caml_call2(Stdlib_Format[129],fmt,_cN_); - pp$4(fmt,x); - return 1}; - caml_call3(Stdlib_List[25],_i3_,_i2_,xs$0); - caml_call2(Stdlib_Format[129],fmt,_cO_); - return caml_call2(Stdlib_Format[129],fmt,_cP_)} - if(737456202 <= _iX_) - {var x=param[2]; - caml_call2(Stdlib_Format[129],fmt,_cQ_); - caml_call3(Stdlib_Format[129],fmt,_cR_,x); - return caml_call2(Stdlib_Format[129],fmt,_cS_)} - var match=param[2],value=match[2],name=match[1]; - caml_call2(Stdlib_Format[129],fmt,_cT_); - caml_call2(Stdlib_Format[129],fmt,_cU_); - caml_call3(Stdlib_Format[129],fmt,_cV_,name); - caml_call2(Stdlib_Format[129],fmt,_cW_); - if(value) - {var x$0=value[1]; - caml_call2(Stdlib_Format[13],fmt,cst_Some$0); - pp$4(fmt,x$0); - caml_call2(Stdlib_Format[13],fmt,cst$55)} - else - caml_call2(Stdlib_Format[13],fmt,cst_None$0); - caml_call2(Stdlib_Format[129],fmt,_cX_); - return caml_call2(Stdlib_Format[129],fmt,_cY_)} - if(3654863 <= _iX_) - {if(365180284 <= _iX_) - {var x$1=param[2]; - caml_call2(Stdlib_Format[129],fmt,_cZ_); - caml_call3(Stdlib_Format[129],fmt,_c0_,x$1); - return caml_call2(Stdlib_Format[129],fmt,_c1_)} - var x$2=param[2]; - caml_call2(Stdlib_Format[129],fmt,_c2_); - caml_call3(Stdlib_Format[129],fmt,_c3_,x$2); - return caml_call2(Stdlib_Format[129],fmt,_c4_)} - if(-752863768 <= _iX_) - {var x$3=param[2]; - caml_call2(Stdlib_Format[129],fmt,_c5_); - caml_call3(Stdlib_Format[129],fmt,_c6_,x$3); - return caml_call2(Stdlib_Format[129],fmt,_c7_)} - var x$4=param[2]; - caml_call2(Stdlib_Format[129],fmt,_c8_); - caml_call3(Stdlib_Format[129],fmt,_c9_,x$4); - return caml_call2(Stdlib_Format[129],fmt,_c__)} - function show$1(x){return caml_call3(Stdlib_Format[133],_c$_,pp$4,x)} - function equal$1(a,b) - {var a$0=a,b$0=b; - for(;;) - {if(typeof a$0 === "number") - {if(870828711 === a$0 && 870828711 === b$0)return 1} - else - {var _iQ_=a$0[1]; - if(708012133 <= _iQ_) - {var switch$0=0; - if(737456203 <= _iQ_) - {if(848054398 === _iQ_) - {if(typeof b$0 !== "number" && 848054398 === b$0[1]) - {var ys=b$0[2],xs=a$0[2];switch$0 = 1}} - else - if - (963043957 - === - _iQ_ - && - typeof b$0 - !== - "number" - && - 963043957 - === - b$0[1]) - {var - ys$0=b$0[2], - xs$0=a$0[2], - compare_keys= - function(param,_iW_) - {var key=_iW_[1],key$0=param[1]; - return caml_call2(Stdlib_String[9],key$0,key)}, - xs$1=caml_call2(Stdlib_List[57],compare_keys,xs$0), - ys$1=caml_call2(Stdlib_List[57],compare_keys,ys$0); - try - {var - _iR_= - function(param,_iV_) - {var - value=_iV_[2], - key=_iV_[1], - value$0=param[2], - key$0=param[1], - match=caml_string_equal(key$0,key); - return match?equal$1(value$0,value):0}, - result$0=caml_call3(Stdlib_List[34],_iR_,xs$1,ys$1); - return result$0} - catch(_iU_) - {_iU_ = caml_wrap_exception(_iU_); - if(_iU_[1] === Stdlib[6])return 0; - throw _iU_}}} - else - if(726928360 === _iQ_) - {if(typeof b$0 !== "number" && 726928360 === b$0[1]) - {var ys=b$0[2],xs=a$0[2];switch$0 = 1}} - else - if(708012134 <= _iQ_) - {if - (737456202 - <= - _iQ_ - && - typeof b$0 - !== - "number" - && - 737456202 - === - b$0[1]) - {var b$1=b$0[2],a$1=a$0[2];return caml_equal(a$1,b$1)}} - else - if(typeof b$0 !== "number" && 708012133 === b$0[1]) - {var - _iS_=b$0[2], - value=_iS_[2], - name=_iS_[1], - match=a$0[2], - value$0=match[2], - name$0=match[1], - match$0=caml_equal(name$0,name); - if(match$0) - {if(value$0) - {if(value) - {var b$2=value[1],a$2=value$0[1],a$0=a$2,b$0=b$2;continue}} - else - if(! value)return 1; - return 0} - return 0} - if(switch$0) - try - {var result=caml_call3(Stdlib_List[34],equal$1,xs,ys); - return result} - catch(_iT_) - {_iT_ = caml_wrap_exception(_iT_); - if(_iT_[1] === Stdlib[6])return 0; - throw _iT_}} - else - if(-752863767 <= _iQ_) - {if(3654863 === _iQ_) - {if(typeof b$0 !== "number" && 3654863 === b$0[1]) - {var b$3=b$0[2],a$3=a$0[2];return caml_equal(a$3,b$3)}} - else - if - (365180284 - === - _iQ_ - && - typeof b$0 - !== - "number" - && - 365180284 - === - b$0[1]) - {var b$4=b$0[2],a$4=a$0[2];return caml_equal(a$4,b$4)}} - else - if(-976970511 === _iQ_) - {if(typeof b$0 !== "number" && -976970511 === b$0[1]) - {var b$5=b$0[2],a$5=a$0[2];return caml_equal(a$5,b$5)}} - else - if - (-752863768 - <= - _iQ_ - && - typeof b$0 - !== - "number" - && - -752863768 - === - b$0[1]) - {var b$6=b$0[2],a$6=a$0[2];return caml_equal(a$6,b$6)}} - return 0}} - function pretty_print$1(std,out,x){return pp$3(std,out,x)} - function pretty_to_string$1(std,x) - {function _iN_(_iO_,_iP_){return pp$3(std,_iO_,_iP_)} - return caml_call3(Stdlib_Format[133],_cv_,_iN_,x)} - function pretty_to_channel$1(std,oc,x) - {var fmt=caml_call1(Stdlib_Format[108],oc); - function _iK_(_iL_,_iM_){return pp$3(std,_iL_,_iM_)} - return caml_call4(Stdlib_Format[129],fmt,_cw_,_iK_,x)} + n = caml_call1(Stdlib[18], d), + _pH_ = caml_call1(Stdlib_Char[1], n + 48 | 0); + return caml_call2(Stdlib_Buffer[12], s, _pH_); + } + function write_int(ob, x){ + return 0 < x + ? write_digits(ob, x) + : 0 + <= x + ? caml_call2(Stdlib_Buffer[12], ob, 48) + : (caml_call2(Stdlib_Buffer[12], ob, 45), write_digits(ob, x)); + } + function float_needs_period(s){ + try{ + var _pD_ = caml_ml_string_length(s) - 1 | 0, _pC_ = 0; + if(_pD_ >= 0){ + var i = _pC_; + for(;;){ + var match = caml_string_get(s, i), switch$0 = 0; + if(48 <= match){ + if(58 > match) switch$0 = 1; + } + else if(45 === match) switch$0 = 1; + if(! switch$0) throw caml_maybe_attach_backtrace(Stdlib[3], 1); + var _pF_ = i + 1 | 0; + if(_pD_ !== i){var i = _pF_; continue;} + break; + } + } + var _pE_ = 1; + return _pE_; + } + catch(_pG_){ + var _pB_ = caml_wrap_exception(_pG_); + if(_pB_ === Stdlib[3]) return 0; + throw caml_maybe_attach_backtrace(_pB_, 0); + } + } + function write_float(ob, x){ + var match = caml_classify_float(x); + if(3 === match){ + var _pz_ = 0. < x ? cst_Infinity : cst_Infinity$0; + return caml_call2(Stdlib_Buffer[16], ob, _pz_); + } + if(4 <= match) return caml_call2(Stdlib_Buffer[16], ob, cst_NaN); var - from_channel$1=Stdlib_Lexing[2], - from_string$1=Stdlib_Lexing[3], - lexeme$0=Stdlib_Lexing[8], - sub_lexeme$0=Stdlib_Lexing[16], - sub_lexeme_char$0=Stdlib_Lexing[18]; - function hex$3(c) - {if(65 <= c) - {if(97 <= c) - {if(! (103 <= c))return (c - 97 | 0) + 10 | 0} - else - if(! (71 <= c))return (c - 65 | 0) + 10 | 0} - else - if(! (9 < c - 48 >>> 0))return c - 48 | 0; - throw [0,Assert_failure,_da_]} - function custom_error$0(descr,v,lexbuf) - {var - offs=lexbuf[4] - 1 | 0, - bol=v[3], - pos1=((offs + lexbuf[5] | 0) - bol | 0) - 1 | 0, - pos2=caml_call2(Stdlib[17],pos1,(offs + lexbuf[6] | 0) - bol | 0), - _iJ_=v[4]; - if(_iJ_) - var s=_iJ_[1],file_line=caml_call2(Stdlib_Printf[4],_db_,s); - else - var file_line=cst_Line$0; - var - bytes= - pos1 === pos2 - ?caml_call2(Stdlib_Printf[4],_dc_,pos1 + 1 | 0) - :caml_call3(Stdlib_Printf[4],_de_,pos1 + 1 | 0,pos2 + 1 | 0), - msg=caml_call5(Stdlib_Printf[4],_dd_,file_line,v[2],bytes,descr); - return json_error(msg)} - function lexer_error$0(descr,v,lexbuf) - {var _iI_=caml_call1(lexeme$0,lexbuf); - return custom_error$0 - (caml_call3(Stdlib_Printf[4],_df_,descr,_iI_),v,lexbuf)} - var read_junk$0=[0,function(param){throw [0,Assert_failure,_dg_]}]; - function long_error$0(descr,v,lexbuf) - {var - junk=caml_call1(lexeme$0,lexbuf), - extra_junk=caml_call1(read_junk$0[1],lexbuf); - return custom_error$0 - (caml_call4(Stdlib_Printf[4],_dh_,descr,junk,extra_junk), - v, - lexbuf)} + s1 = caml_call2(Stdlib_Printf[4], _e_, x), + s = + caml_float_of_string(s1) == x + ? s1 + : caml_call2(Stdlib_Printf[4], _f_, x); + caml_call2(Stdlib_Buffer[16], ob, s); + var _pA_ = float_needs_period(s); + return _pA_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0) : _pA_; + } + function write_normal_float_prec(significant_figures, ob, x){ + var switcher = significant_figures - 1 | 0; + if(15 < switcher >>> 0) + var s = caml_call2(Stdlib_Printf[4], _g_, x); + else + switch(switcher){ + case 0: + var s = caml_call2(Stdlib_Printf[4], _h_, x); break; + case 1: + var s = caml_call2(Stdlib_Printf[4], _i_, x); break; + case 2: + var s = caml_call2(Stdlib_Printf[4], _j_, x); break; + case 3: + var s = caml_call2(Stdlib_Printf[4], _k_, x); break; + case 4: + var s = caml_call2(Stdlib_Printf[4], _l_, x); break; + case 5: + var s = caml_call2(Stdlib_Printf[4], _m_, x); break; + case 6: + var s = caml_call2(Stdlib_Printf[4], _n_, x); break; + case 7: + var s = caml_call2(Stdlib_Printf[4], _o_, x); break; + case 8: + var s = caml_call2(Stdlib_Printf[4], _p_, x); break; + case 9: + var s = caml_call2(Stdlib_Printf[4], _q_, x); break; + case 10: + var s = caml_call2(Stdlib_Printf[4], _r_, x); break; + case 11: + var s = caml_call2(Stdlib_Printf[4], _s_, x); break; + case 12: + var s = caml_call2(Stdlib_Printf[4], _t_, x); break; + case 13: + var s = caml_call2(Stdlib_Printf[4], _u_, x); break; + case 14: + var s = caml_call2(Stdlib_Printf[4], _v_, x); break; + default: var s = caml_call2(Stdlib_Printf[4], _w_, x); + } + caml_call2(Stdlib_Buffer[16], ob, s); + var _py_ = float_needs_period(s); + return _py_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0$0) : _py_; + } + function write_float_prec(significant_figures, ob, x){ + var match = caml_classify_float(x); + if(3 !== match) + return 4 <= match + ? caml_call2(Stdlib_Buffer[16], ob, cst_NaN$0) + : write_normal_float_prec(significant_figures, ob, x); + var _px_ = 0. < x ? cst_Infinity$1 : cst_Infinity$2; + return caml_call2(Stdlib_Buffer[16], ob, _px_); + } + function write_std_float(ob, x){ + var match = caml_classify_float(x); + if(3 === match){ + var + _pv_ = + 0. < x + ? cst_Infinity_value_not_allowed + : cst_Infinity_value_not_allowed$0; + return json_error(_pv_); + } + if(4 <= match) return json_error(cst_NaN_value_not_allowed_in_s); var - _di_=0 === (Stdlib[20] % 10 | 0)?0:1, - min10$0=(Stdlib[20] / 10 | 0) - _di_ | 0, - _dj_=0 === (Stdlib[19] % 10 | 0)?0:1, - max10$0=(Stdlib[19] / 10 | 0) + _dj_ | 0, - Int_overflow$0=[248,cst_Yojson_Safe_Int_overflow,caml_fresh_oo_id(0)]; - function extract_positive_int$0(lexbuf) - {var - start=lexbuf[5], - stop=lexbuf[6], - s=lexbuf[2], - n=[0,0], - _iF_=stop - 1 | 0; - if(! (_iF_ < start)) - {var i=start; - for(;;) - {if(max10$0 <= n[1])throw Int_overflow$0; - var _iG_=caml_bytes_get(s,i) - 48 | 0; - n[1] = (10 * n[1] | 0) + _iG_ | 0; - var _iH_=i + 1 | 0; - if(_iF_ !== i){var i=_iH_;continue} - break}} - if(0 <= n[1])return n[1]; - throw Int_overflow$0} - function extract_negative_int$0(lexbuf) - {var - start=lexbuf[5] + 1 | 0, - stop=lexbuf[6], - s=lexbuf[2], - n=[0,0], - _iC_=stop - 1 | 0; - if(! (_iC_ < start)) - {var i=start; - for(;;) - {if(n[1] <= min10$0)throw Int_overflow$0; - var _iD_=caml_bytes_get(s,i) - 48 | 0; - n[1] = (10 * n[1] | 0) - _iD_ | 0; - var _iE_=i + 1 | 0; - if(_iC_ !== i){var i=_iE_;continue} - break}} - if(0 < n[1])throw Int_overflow$0; - return n[1]} - function newline$0(v,lexbuf) - {v[2] = v[2] + 1 | 0;v[3] = lexbuf[4] + lexbuf[6] | 0;return 0} - function add_lexeme$0(buf,lexbuf) - {var len=lexbuf[6] - lexbuf[5] | 0; - return caml_call4(Stdlib_Buffer[19],buf,lexbuf[2],lexbuf[5],len)} - function read_json$3(counter,v,lexbuf) - {var _iB_=0; - if(counter < 50) - {var counter$0=counter + 1 | 0; - return ocaml_lex_read_json_rec$0(counter$0,v,lexbuf,_iB_)} - return caml_trampoline_return - (ocaml_lex_read_json_rec$0,[0,v,lexbuf,_iB_])} - function ocaml_lex_read_json_rec$0(counter,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); - if(19 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0:return _dk_; - case 1:return _dl_; - case 2:return 870828711; - case 3:return [0,365180284,Stdlib[24]]; - case 4:return [0,365180284,Stdlib[22]]; - case 5:return [0,365180284,Stdlib[23]]; - case 6: - caml_call1(Stdlib_Buffer[8],v[1]); - return [0,-976970511,finish_string$3(v,lexbuf)]; - case 7: - try - {var _io_=[0,3654863,extract_positive_int$0(lexbuf)];return _io_} - catch(_iA_) - {_iA_ = caml_wrap_exception(_iA_); - if(_iA_ === Int_overflow$0) - return [0,-752863768,caml_call1(lexeme$0,lexbuf)]; - throw _iA_} - case 8: - try - {var _ip_=[0,3654863,extract_negative_int$0(lexbuf)];return _ip_} - catch(_iz_) - {_iz_ = caml_wrap_exception(_iz_); - if(_iz_ === Int_overflow$0) - return [0,-752863768,caml_call1(lexeme$0,lexbuf)]; - throw _iz_} - case 9: - return [0, - 365180284, - caml_float_of_string(caml_call1(lexeme$0,lexbuf))]; - case 10: - var acc=[0,0]; - try - {read_space$0(v,lexbuf); - read_object_end$0(lexbuf); - var field_name=read_ident$0(v,lexbuf); - read_space$0(v,lexbuf); - read_colon$0(v,lexbuf); - read_space$0(v,lexbuf); - var _iq_=acc[1]; - acc[1] = [0,[0,field_name,read_json$0(v,lexbuf)],_iq_]; - for(;;) - {read_space$0(v,lexbuf); - read_object_sep$0(v,lexbuf); - read_space$0(v,lexbuf); - var field_name$0=read_ident$0(v,lexbuf); - read_space$0(v,lexbuf); - read_colon$0(v,lexbuf); - read_space$0(v,lexbuf); - var _ir_=acc[1]; - acc[1] = [0,[0,field_name$0,read_json$0(v,lexbuf)],_ir_]; - continue}} - catch(_iy_) - {_iy_ = caml_wrap_exception(_iy_); - if(_iy_ === End_of_object) - return [0,963043957,caml_call1(Stdlib_List[9],acc[1])]; - throw _iy_} - case 11: - var acc$0=[0,0]; - try - {read_space$0(v,lexbuf); - read_array_end$0(lexbuf); - var _is_=acc$0[1]; - acc$0[1] = [0,read_json$0(v,lexbuf),_is_]; - for(;;) - {read_space$0(v,lexbuf); - read_array_sep$0(v,lexbuf); - read_space$0(v,lexbuf); - var _it_=acc$0[1]; - acc$0[1] = [0,read_json$0(v,lexbuf),_it_]; - continue}} - catch(_ix_) - {_ix_ = caml_wrap_exception(_ix_); - if(_ix_ === End_of_array) - return [0,848054398,caml_call1(Stdlib_List[9],acc$0[1])]; - throw _ix_} - case 12: - var acc$1=[0,0]; - try - {read_space$0(v,lexbuf); - read_tuple_end$0(lexbuf); - var _iu_=acc$1[1]; - acc$1[1] = [0,read_json$0(v,lexbuf),_iu_]; - for(;;) - {read_space$0(v,lexbuf); - read_tuple_sep$0(v,lexbuf); - read_space$0(v,lexbuf); - var _iv_=acc$1[1]; - acc$1[1] = [0,read_json$0(v,lexbuf),_iv_]; - continue}} - catch(_iw_) - {_iw_ = caml_wrap_exception(_iw_); - if(_iw_ === End_of_tuple) - return [0,726928360,caml_call1(Stdlib_List[9],acc$1[1])]; - throw _iw_} - case 13: - read_space$0(v,lexbuf); - var cons=read_ident$0(v,lexbuf); - read_space$0(v,lexbuf); - return [0,708012133,[0,cons,finish_variant$0(v,lexbuf)]]; - case 14: - if(counter < 50) - {var counter$0=counter + 1 | 0; - return read_json$3(counter$0,v,lexbuf)} - return caml_trampoline_return(read_json$3,[0,v,lexbuf]); - case 15: - finish_comment$0(v,lexbuf); - if(counter < 50) - {var counter$1=counter + 1 | 0; - return read_json$3(counter$1,v,lexbuf)} - return caml_trampoline_return(read_json$3,[0,v,lexbuf]); - case 16: - newline$0(v,lexbuf); - if(counter < 50) - {var counter$2=counter + 1 | 0; - return read_json$3(counter$2,v,lexbuf)} - return caml_trampoline_return(read_json$3,[0,v,lexbuf]); - case 17: - if(counter < 50) - {var counter$3=counter + 1 | 0; - return read_json$3(counter$3,v,lexbuf)} - return caml_trampoline_return(read_json$3,[0,v,lexbuf]); - case 18: - return custom_error$0(cst_Unexpected_end_of_input$44,v,lexbuf); - default:return long_error$0(cst_Invalid_token$9,v,lexbuf)}}} - function read_json$0(v,lexbuf) - {return caml_trampoline(read_json$3(0,v,lexbuf))} - function finish_string$3(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=58; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return caml_call1(Stdlib_Buffer[2],v[1]); - case 1:finish_escaped_char$0(v,lexbuf);continue a; - case 2:add_lexeme$0(v[1],lexbuf);continue a; - default: - return custom_error$0(cst_Unexpected_end_of_input$45,v,lexbuf)}}}} - function map_string$0(v,f,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=63; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - var b=v[1],_in_=caml_call1(Stdlib_Buffer[7],b); - return caml_call3(f,caml_call1(Stdlib_Buffer[2],b),0,_in_); - case 1:finish_escaped_char$0(v,lexbuf);continue a; - case 2:add_lexeme$0(v[1],lexbuf);continue a; - default: - return custom_error$0(cst_Unexpected_end_of_input$46,v,lexbuf)}}}} - function finish_escaped_char$0(v,lexbuf) - {var ocaml_lex_state=68; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(8 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - var c=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5]); - return caml_call2(Stdlib_Buffer[12],v[1],c); - case 1:return caml_call2(Stdlib_Buffer[12],v[1],8); - case 2:return caml_call2(Stdlib_Buffer[12],v[1],12); - case 3:return caml_call2(Stdlib_Buffer[12],v[1],10); - case 4:return caml_call2(Stdlib_Buffer[12],v[1],13); - case 5:return caml_call2(Stdlib_Buffer[12],v[1],9); - case 6: + s1 = caml_call2(Stdlib_Printf[4], _x_, x), + s = + caml_float_of_string(s1) == x + ? s1 + : caml_call2(Stdlib_Printf[4], _y_, x); + caml_call2(Stdlib_Buffer[16], ob, s); + var _pw_ = float_needs_period(s); + return _pw_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0$1) : _pw_; + } + function write_std_float_prec(significant_figures, ob, x){ + var match = caml_classify_float(x); + if(3 !== match) + return 4 <= match + ? json_error(cst_NaN_value_not_allowed_in_s$0) + : write_normal_float_prec(significant_figures, ob, x); + var + _pu_ = + 0. < x + ? cst_Infinity_value_not_allowed$1 + : cst_Infinity_value_not_allowed$2; + return json_error(_pu_); + } + var + write_intlit = Stdlib_Buffer[16], + write_floatlit = Stdlib_Buffer[16], + write_stringlit = Stdlib_Buffer[16]; + function iter2(f_elt, f_sep, x, param$0){ + if(! param$0) return 0; + var l$0 = param$0[2], y$0 = param$0[1]; + caml_call2(f_elt, x, y$0); + var param = l$0; + for(;;){ + if(! param) return 0; + var l = param[2], y = param[1]; + caml_call1(f_sep, x); + caml_call2(f_elt, x, y); + var param = l; + } + } + function f_sep(ob){return caml_call2(Stdlib_Buffer[12], ob, 44);} + function write_variant(ob, s, o){ + caml_call2(Stdlib_Buffer[12], ob, 60); + write_string(ob, s); + if(o){ + var x = o[1]; + caml_call2(Stdlib_Buffer[12], ob, 58); + write_json(ob, x); + } + return caml_call2(Stdlib_Buffer[12], ob, 62); + } + function write_tuple(ob, l){ + caml_call2(Stdlib_Buffer[12], ob, 40); + iter2(write_json, f_sep, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 41); + } + function write_list(ob, l){ + caml_call2(Stdlib_Buffer[12], ob, 91); + iter2(write_json, f_sep, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + function write_assoc(ob, l){ + function f_elt(ob, param){ + var x = param[2], s = param[1]; + write_string(ob, s); + caml_call2(Stdlib_Buffer[12], ob, 58); + return write_json(ob, x); + } + caml_call2(Stdlib_Buffer[12], ob, 123); + iter2(f_elt, f_sep, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 125); + } + function write_json(ob, x){ + if(typeof x === "number") return write_null(ob, 0); + var _pt_ = x[1]; + if(708012133 <= _pt_){ + if(737456202 > _pt_){ + if(726928360 <= _pt_){var l$1 = x[2]; return write_tuple(ob, l$1);} + var match = x[2], o = match[2], s$0 = match[1]; + return write_variant(ob, s$0, o); + } + if(928231259 <= _pt_){ + if(963043957 <= _pt_){var l = x[2]; return write_assoc(ob, l);} + var s = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s); + } + if(848054398 <= _pt_){var l$0 = x[2]; return write_list(ob, l$0);} + var b = x[2]; + return write_bool(ob, b); + } + if(-752863768 === _pt_){ + var s$1 = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s$1); + } + if(3654863 <= _pt_){ + if(365180284 <= _pt_){var f = x[2]; return write_float(ob, f);} + var i = x[2]; + return write_int(ob, i); + } + if(-375152890 <= _pt_){ + var s$2 = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s$2); + } + var s$3 = x[2]; + return write_string(ob, s$3); + } + function write_std_variant(ob, s, o){ + if(! o) return write_string(ob, s); + var x = o[1]; + caml_call2(Stdlib_Buffer[12], ob, 91); + write_string(ob, s); + caml_call2(Stdlib_Buffer[12], ob, 44); + write_std_json(ob, x); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + function write_std_tuple(ob, l){ + caml_call2(Stdlib_Buffer[12], ob, 91); + iter2(write_std_json, f_sep, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + function write_std_json(ob, x){ + if(typeof x === "number") return write_null(ob, 0); + var _ps_ = x[1]; + if(708012133 <= _ps_){ + if(737456202 > _ps_){ + if(726928360 <= _ps_){var l$1 = x[2]; return write_std_tuple(ob, l$1);} + var match = x[2], o = match[2], s$0 = match[1]; + return write_std_variant(ob, s$0, o); + } + if(928231259 <= _ps_){ + if(963043957 <= _ps_){ + var + l = x[2], + f_elt = + function(ob, param){ + var x = param[2], s = param[1]; + write_string(ob, s); + caml_call2(Stdlib_Buffer[12], ob, 58); + return write_std_json(ob, x); + }; + caml_call2(Stdlib_Buffer[12], ob, 123); + iter2(f_elt, f_sep, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 125); + } + var s = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s); + } + if(848054398 <= _ps_){ + var l$0 = x[2]; + caml_call2(Stdlib_Buffer[12], ob, 91); + iter2(write_std_json, f_sep, ob, l$0); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + var b = x[2]; + return write_bool(ob, b); + } + if(-752863768 === _ps_){ + var s$1 = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s$1); + } + if(3654863 <= _ps_){ + if(365180284 <= _ps_){var f = x[2]; return write_std_float(ob, f);} + var i = x[2]; + return write_int(ob, i); + } + if(-375152890 <= _ps_){ + var s$2 = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s$2); + } + var s$3 = x[2]; + return write_string(ob, s$3); + } + function to_buffer(opt, _pr_, ob, x){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$1; + if(_pr_) var sth$0 = _pr_[1], std = sth$0; else var std = 0; + if(std) write_std_json(ob, x); else write_json(ob, x); + return caml_call2(Stdlib_Buffer[16], ob, suf); + } + function to_string(buf, opt, _pq_, std, x){ + if(opt) var sth = opt[1], len = sth; else var len = 256; + if(_pq_) var sth$0 = _pq_[1], suf = sth$0; else var suf = cst$2; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + to_buffer([0, suf], std, ob$0, x); + var s = caml_call1(Stdlib_Buffer[2], ob$0); + caml_call1(Stdlib_Buffer[8], ob$0); + return s; + } + function to_channel(buf, opt, _pp_, std, oc, x){ + if(opt) var sth = opt[1], len = sth; else var len = 4096; + if(_pp_) var sth$0 = _pp_[1], suf = sth$0; else var suf = cst$3; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + to_buffer([0, suf], std, ob$0, x); + caml_call2(Stdlib_Buffer[10], oc, ob$0); + return caml_call1(Stdlib_Buffer[8], ob$0); + } + function to_output(buf, opt, _pn_, std, out, x){ + if(opt) var sth = opt[1], len = sth; else var len = 4096; + if(_pn_) var sth$0 = _pn_[1], suf = sth$0; else var suf = cst$4; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + to_buffer([0, suf], std, ob$0, x); + var _po_ = caml_call1(Stdlib_Buffer[7], ob$0); + caml_call4 + (caml_get_public_method(out, 209784577, 1), + out, + caml_call1(Stdlib_Buffer[2], ob$0), + 0, + _po_); + return caml_call1(Stdlib_Buffer[8], ob$0); + } + function to_file(len, std, opt, file, x){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$5; + var oc = caml_call1(Stdlib[60], file); + try{ + to_channel(0, len, [0, suf], std, oc, x); + var _pm_ = caml_call1(Stdlib[76], oc); + return _pm_; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + caml_call1(Stdlib[77], oc); + throw caml_maybe_attach_backtrace(e, 0); + } + } + function seq_to_buffer(opt, std, ob, st){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$6; + var _pj_ = [0, suf]; + function _pk_(_pl_){return to_buffer(_pj_, std, ob, _pl_);} + return caml_call2(Stdlib_Seq[4], _pk_, st); + } + function seq_to_string(buf, opt, _pi_, std, st){ + if(opt) var sth = opt[1], len = sth; else var len = 256; + if(_pi_) var sth$0 = _pi_[1], suf = sth$0; else var suf = cst$7; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + seq_to_buffer([0, suf], std, ob$0, st); + var s = caml_call1(Stdlib_Buffer[2], ob$0); + caml_call1(Stdlib_Buffer[8], ob$0); + return s; + } + function seq_to_channel(buf, opt, _pg_, std, oc, seq){ + if(opt) var sth = opt[1], len = sth; else var len = 2096; + if(_pg_) var sth$0 = _pg_[1], suf = sth$0; else var suf = cst$8; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + function _ph_(json){ + to_buffer([0, suf], std, ob$0, json); + caml_call2(Stdlib_Buffer[10], oc, ob$0); + return caml_call1(Stdlib_Buffer[8], ob$0); + } + return caml_call2(Stdlib_Seq[4], _ph_, seq); + } + function seq_to_file(len, opt, std, file, st){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$9; + var oc = caml_call1(Stdlib[60], file); + try{ + seq_to_channel(0, len, [0, suf], std, oc, st); + var _pf_ = caml_call1(Stdlib[76], oc); + return _pf_; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + caml_call1(Stdlib[77], oc); + throw caml_maybe_attach_backtrace(e, 0); + } + } + function sort(x){ + if(typeof x !== "number"){ + var _o9_ = x[1]; + if(726928361 <= _o9_){ + if(848054398 === _o9_){ + var l = x[2], _o__ = caml_call2(Stdlib_List[21], sort, l); + return [0, 848054398, caml_call1(Stdlib_List[9], _o__)]; + } + if(963043957 === _o9_){ + var + l$0 = x[2], + _o$_ = + function(param){ + var v = param[2], k = param[1]; + return [0, k, sort(v)]; + }, + _pa_ = caml_call2(Stdlib_List[21], _o$_, l$0), + l$1 = caml_call1(Stdlib_List[9], _pa_), + _pb_ = + function(param, _pe_){ + var b = _pe_[1], a = param[1]; + return caml_call2(Stdlib_String[9], a, b); + }; + return [0, 963043957, caml_call2(Stdlib_List[57], _pb_, l$1)]; + } + } + else if(708012133 === _o9_){ + var _pc_ = x[2], match = _pc_[2]; + if(match){ + var v = match[1], k = _pc_[1], v$0 = sort(v); + return v === v$0 ? x : [0, 708012133, [0, k, [0, v$0]]]; + } + } + else if(726928360 <= _o9_){ + var l$2 = x[2], _pd_ = caml_call2(Stdlib_List[21], sort, l$2); + return [0, 726928360, caml_call1(Stdlib_List[9], _pd_)]; + } + } + return x; + } + function pp(fmt, param){ + if(typeof param === "number") + return caml_call2(Stdlib_Format[13], fmt, cst_Null); + var _o2_ = param[1]; + if(708012133 <= _o2_){ + if(737456202 > _o2_){ + if(726928360 <= _o2_){ + var tup = param[2]; + caml_call2(Stdlib_Format[129], fmt, _T_); + caml_call2(Stdlib_Format[129], fmt, _U_); + var + _o7_ = 0, + _o8_ = + function(sep, e){ + if(sep) caml_call2(Stdlib_Format[129], fmt, _V_); + pp(fmt, e); + return 1; + }; + caml_call3(Stdlib_List[25], _o8_, _o7_, tup); + caml_call2(Stdlib_Format[129], fmt, _W_); + return caml_call2(Stdlib_Format[129], fmt, _X_); + } + var match = param[2], value = match[2], name = match[1]; + caml_call2(Stdlib_Format[129], fmt, _Y_); + caml_call2(Stdlib_Format[129], fmt, _Z_); + caml_call3(Stdlib_Format[129], fmt, ___, name); + caml_call2(Stdlib_Format[129], fmt, _$_); + if(value){ + var x$1 = value[1]; + caml_call2(Stdlib_Format[13], fmt, cst_Some); + pp(fmt, x$1); + caml_call2(Stdlib_Format[13], fmt, cst$10); + } + else + caml_call2(Stdlib_Format[13], fmt, cst_None); + caml_call2(Stdlib_Format[129], fmt, _aa_); + return caml_call2(Stdlib_Format[129], fmt, _ab_); + } + if(928231259 <= _o2_){ + if(963043957 <= _o2_){ + var xs = param[2]; + caml_call2(Stdlib_Format[129], fmt, _z_); + caml_call2(Stdlib_Format[129], fmt, _A_); + var + _o3_ = 0, + _o4_ = + function(sep, param){ + var value = param[2], key = param[1]; + if(sep) caml_call2(Stdlib_Format[129], fmt, _B_); + caml_call2(Stdlib_Format[129], fmt, _C_); + caml_call3(Stdlib_Format[129], fmt, _D_, key); + caml_call2(Stdlib_Format[129], fmt, _E_); + pp(fmt, value); + caml_call2(Stdlib_Format[129], fmt, _F_); + return 1; + }; + caml_call3(Stdlib_List[25], _o4_, _o3_, xs); + caml_call2(Stdlib_Format[129], fmt, _G_); + return caml_call2(Stdlib_Format[129], fmt, _H_); + } + var x = param[2]; + caml_call2(Stdlib_Format[129], fmt, _I_); + caml_call3(Stdlib_Format[129], fmt, _J_, x); + return caml_call2(Stdlib_Format[129], fmt, _K_); + } + if(848054398 <= _o2_){ + var xs$0 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _L_); + caml_call2(Stdlib_Format[129], fmt, _M_); + var + _o5_ = 0, + _o6_ = + function(sep, x){ + if(sep) caml_call2(Stdlib_Format[129], fmt, _N_); + pp(fmt, x); + return 1; + }; + caml_call3(Stdlib_List[25], _o6_, _o5_, xs$0); + caml_call2(Stdlib_Format[129], fmt, _O_); + return caml_call2(Stdlib_Format[129], fmt, _P_); + } + var x$0 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _Q_); + caml_call3(Stdlib_Format[129], fmt, _R_, x$0); + return caml_call2(Stdlib_Format[129], fmt, _S_); + } + if(-752863768 === _o2_){ + var x$2 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _ac_); + caml_call3(Stdlib_Format[129], fmt, _ad_, x$2); + return caml_call2(Stdlib_Format[129], fmt, _ae_); + } + if(3654863 <= _o2_){ + if(365180284 <= _o2_){ + var x$3 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _af_); + caml_call3(Stdlib_Format[129], fmt, _ag_, x$3); + return caml_call2(Stdlib_Format[129], fmt, _ah_); + } + var x$4 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _ai_); + caml_call3(Stdlib_Format[129], fmt, _aj_, x$4); + return caml_call2(Stdlib_Format[129], fmt, _ak_); + } + if(-375152890 <= _o2_){ + var x$5 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _al_); + caml_call3(Stdlib_Format[129], fmt, _am_, x$5); + return caml_call2(Stdlib_Format[129], fmt, _an_); + } + var x$6 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _ao_); + caml_call3(Stdlib_Format[129], fmt, _ap_, x$6); + return caml_call2(Stdlib_Format[129], fmt, _aq_); + } + function show(x){return caml_call3(Stdlib_Format[133], _ar_, pp, x);} + function equal(a, b){ + var a$0 = a, b$0 = b; + for(;;){ + if(typeof a$0 === "number"){ + if(870828711 === a$0 && 870828711 === b$0) return 1; + } + else{ + var _oT_ = a$0[1]; + if(708012133 <= _oT_){ + var switch$0 = 0; + if(848054398 <= _oT_){ + if(928231259 === _oT_){ + if(typeof b$0 !== "number" && 928231259 === b$0[1]){ + var b$1 = b$0[2], a$1 = a$0[2]; + return caml_equal(a$1, b$1); + } + } + else + if(963043957 === _oT_){ + if(typeof b$0 !== "number" && 963043957 === b$0[1]){ var - a=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5] + 1 | 0), - b=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5] + 2 | 0), - c$0=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5] + 3 | 0), - d=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5] + 4 | 0), - _ih_=hex$3(d), - _ii_=hex$3(c$0) << 4, - _ij_=hex$3(b) << 8, - x=hex$3(a) << 12 | _ij_ | _ii_ | _ih_; - if(55296 <= x && ! (56319 < x)) - {var ocaml_lex_state$1=82; - for(;;) - {var - ocaml_lex_state$2= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$1,lexbuf); - if(2 < ocaml_lex_state$2 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$1=ocaml_lex_state$2; - continue} - switch(ocaml_lex_state$2) - {case 0: - var - a$0=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5] + 2 | 0), - b$0=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5] + 3 | 0), - c$1=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5] + 4 | 0), - d$0=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5] + 5 | 0), - _ik_=hex$3(d$0), - _il_=hex$3(c$1) << 4, - _im_=hex$3(b$0) << 8, - y=hex$3(a$0) << 12 | _im_ | _il_ | _ik_; - if(56320 <= y && ! (57343 < y)) - return utf8_of_surrogate_pair(v[1],x,y); - return long_error$0 - (cst_Invalid_low_surrogate_for_$0,v,lexbuf); + ys = b$0[2], + xs = a$0[2], + compare_keys = + function(param, _o1_){ + var key = _o1_[1], key$0 = param[1]; + return caml_call2(Stdlib_String[9], key$0, key); + }, + xs$0 = caml_call2(Stdlib_List[57], compare_keys, xs), + ys$0 = caml_call2(Stdlib_List[57], compare_keys, ys); + try{ + var + _oV_ = + function(param, _o0_){ + var + value = _o0_[2], + key = _o0_[1], + value$0 = param[2], + key$0 = param[1]; + return caml_string_equal(key$0, key) + ? equal(value$0, value) + : 0; + }, + result = caml_call3(Stdlib_List[34], _oV_, xs$0, ys$0); + return result; + } + catch(_oZ_){ + var _oU_ = caml_wrap_exception(_oZ_); + if(_oU_[1] === Stdlib[6]) return 0; + throw caml_maybe_attach_backtrace(_oU_, 0); + } + } + } + else if + (848054399 > _oT_ && typeof b$0 !== "number" && 848054398 === b$0[1]){var ys$1 = b$0[2], xs$1 = a$0[2]; switch$0 = 1;} + } + else + if(726928360 === _oT_){ + if(typeof b$0 !== "number" && 726928360 === b$0[1]){var ys$1 = b$0[2], xs$1 = a$0[2]; switch$0 = 1;} + } + else + if(737456202 === _oT_){ + if(typeof b$0 !== "number" && 737456202 === b$0[1]){ + var b$2 = b$0[2], a$2 = a$0[2]; + return caml_equal(a$2, b$2); + } + } + else if + (708012134 > _oT_ && typeof b$0 !== "number" && 708012133 === b$0[1]){ + var + _oX_ = b$0[2], + value = _oX_[2], + name = _oX_[1], + match = a$0[2], + value$0 = match[2], + name$0 = match[1]; + if(! caml_equal(name$0, name)) return 0; + if(value$0){ + if(value){ + var y = value[1], x = value$0[1], a$0 = x, b$0 = y; + continue; + } + } + else if(! value) return 1; + return 0; + } + if(switch$0) + try{ + var result$0 = caml_call3(Stdlib_List[34], equal, xs$1, ys$1); + return result$0; + } + catch(_oY_){ + var _oW_ = caml_wrap_exception(_oY_); + if(_oW_[1] === Stdlib[6]) return 0; + throw caml_maybe_attach_backtrace(_oW_, 0); + } + } + else + if(-375152890 <= _oT_){ + if(3654863 === _oT_){ + if(typeof b$0 !== "number" && 3654863 === b$0[1]){ + var b$3 = b$0[2], a$3 = a$0[2]; + return caml_equal(a$3, b$3); + } + } + else + if(365180284 === _oT_){ + if(typeof b$0 !== "number" && 365180284 === b$0[1]){ + var b$4 = b$0[2], a$4 = a$0[2]; + return caml_equal(a$4, b$4); + } + } + else if + (-375152889 > _oT_ + && typeof b$0 !== "number" && -375152890 === b$0[1]){ + var b$5 = b$0[2], a$5 = a$0[2]; + return caml_equal(a$5, b$5); + } + } + else + if(-976970511 === _oT_){ + if(typeof b$0 !== "number" && -976970511 === b$0[1]){ + var b$6 = b$0[2], a$6 = a$0[2]; + return caml_equal(a$6, b$6); + } + } + else if + (-752863768 === _oT_ + && typeof b$0 !== "number" && -752863768 === b$0[1]){ + var b$7 = b$0[2], a$7 = a$0[2]; + return caml_equal(a$7, b$7); + } + } + return 0; + } + } + function pp_list(sep, ppx, out, l){ + function pp_sep(out, param){ + return caml_call3(Stdlib_Format[129], out, _as_, sep); + } + return caml_call4(Stdlib_Format[123], [0, pp_sep], ppx, out, l); + } + function is_atom(x){ + if(typeof x !== "number"){ + var _oS_ = x[1], switch$0 = 0; + if(737456202 <= _oS_){ + if(848054398 === _oS_){ + if(x[2]) switch$0 = 1; + } + else if(963043957 <= _oS_ && x[2]) switch$0 = 1; + } + else + if(708012133 === _oS_){ + if(x[2][2]) switch$0 = 1; + } + else if(726928360 <= _oS_ && x[2]) switch$0 = 1; + if(switch$0) return 0; + } + return 1; + } + function format(inside_box, std, out, x){ + var x$0 = x; + for(;;){ + if(typeof x$0 === "number") + return caml_call2(Stdlib_Format[13], out, cst_null$0); + var _od_ = x$0[1]; + if(708012133 > _od_){ + if(-752863768 === _od_){ + var s$1 = x$0[2]; + return caml_call2(Stdlib_Format[13], out, s$1); + } + if(3654863 <= _od_){ + if(365180284 > _od_){ + var x$6 = x$0[2], _oc_ = caml_call1(Stdlib[33], x$6); + return caml_call2(Stdlib_Format[13], out, _oc_); + } + var x$5 = x$0[2]; + if(std){ + var ob$0 = caml_call1(Stdlib_Buffer[1], 20); + write_std_float(ob$0, x$5); + var s$2 = caml_call1(Stdlib_Buffer[2], ob$0); + } + else{ + var ob = caml_call1(Stdlib_Buffer[1], 20); + write_float(ob, x$5); + var s$2 = caml_call1(Stdlib_Buffer[2], ob); + } + return caml_call2(Stdlib_Format[13], out, s$2); + } + if(-375152890 <= _od_){ + var s$3 = x$0[2]; + return caml_call2(Stdlib_Format[13], out, s$3); + } + var s$4 = x$0[2], _ow_ = json_string_of_string(s$4); + return caml_call2(Stdlib_Format[13], out, _ow_); + } + if(737456202 <= _od_){ + if(928231259 <= _od_){ + if(963043957 > _od_){ + var s = x$0[2]; + return caml_call2(Stdlib_Format[13], out, s); + } + var l = x$0[2]; + if(! l) return caml_call2(Stdlib_Format[13], out, cst$12); + if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _at_); + var + _oe_ = + function(out, param){ + var x = param[2], name = param[1], _oN_ = 1; + function _oO_(_oQ_, _oR_){return format(_oN_, std, _oQ_, _oR_);} + var _oP_ = json_string_of_string(name); + return caml_call5(Stdlib_Format[129], out, _aF_, _oP_, _oO_, x); + }, + _of_ = function(_oL_, _oM_){return pp_list(cst$11, _oe_, _oL_, _oM_);}; + caml_call4(Stdlib_Format[129], out, _au_, _of_, l); + var _og_ = 1 - inside_box; + return _og_ ? caml_call2(Stdlib_Format[129], out, _av_) : _og_; + } + if(848054398 > _od_){ + var x$1 = x$0[2]; + return caml_call2(Stdlib_Format[25], out, x$1); + } + var l$0 = x$0[2]; + if(! l$0) return caml_call2(Stdlib_Format[13], out, cst$15); + if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _aw_); + if(caml_call2(Stdlib_List[32], is_atom, l$0)){ + var + _oh_ = 0, + _oi_ = function(_oF_, _oG_){return format(_oh_, std, _oF_, _oG_);}, + _oj_ = function(_oD_, _oE_){return pp_list(cst$13, _oi_, _oD_, _oE_);}; + caml_call4(Stdlib_Format[129], out, _ax_, _oj_, l$0); + } + else{ + var + _ol_ = 0, + _om_ = function(_oJ_, _oK_){return format(_ol_, std, _oJ_, _oK_);}, + _on_ = function(_oH_, _oI_){return pp_list(cst$14, _om_, _oH_, _oI_);}; + caml_call4(Stdlib_Format[129], out, _az_, _on_, l$0); + } + var _ok_ = 1 - inside_box; + return _ok_ ? caml_call2(Stdlib_Format[129], out, _ay_) : _ok_; + } + if(726928360 <= _od_){ + var l$1 = x$0[2]; + if(std){var x$2 = [0, 848054398, l$1], x$0 = x$2; continue;} + if(0 === l$1) return caml_call2(Stdlib_Format[13], out, cst$16); + if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _aA_); + var + _oo_ = 0, + _op_ = function(_oB_, _oC_){return format(_oo_, std, _oB_, _oC_);}, + _oq_ = function(_oz_, _oA_){return pp_list(cst$17, _op_, _oz_, _oA_);}; + caml_call4(Stdlib_Format[129], out, _aB_, _oq_, l$1); + var _or_ = 1 - inside_box; + return _or_ ? caml_call2(Stdlib_Format[129], out, _aC_) : _or_; + } + var _os_ = x$0[2], match = _os_[2], s$0 = _os_[1]; + if(match){ + var x$3 = match[1]; + if(std){ + var + representation = [0, -976970511, s$0], + x$4 = [0, 848054398, [0, representation, [0, x$3, 0]]], + x$0 = x$4; + continue; + } + var + op = json_string_of_string(s$0), + _ot_ = 1, + _ou_ = function(_ox_, _oy_){return format(_ot_, std, _ox_, _oy_);}; + return caml_call5(Stdlib_Format[129], out, _aD_, op, _ou_, x$3); + } + if(std){ + var representation$0 = [0, -976970511, s$0], x$0 = representation$0; + continue; + } + var _ov_ = json_string_of_string(s$0); + return caml_call3(Stdlib_Format[129], out, _aE_, _ov_); + } + } + function pp$0(opt, out, x){ + if(opt) var sth = opt[1], std = sth; else var std = 0; + var _n__ = 1; + function _n$_(_oa_, _ob_){return format(_n__, std, _oa_, _ob_);} + return caml_call4(Stdlib_Format[129], out, _aG_, _n$_, x); + } + function pretty_print(std, out, x){return pp$0(std, out, x);} + function pretty_to_string(std, x){ + function _n7_(_n8_, _n9_){return pp$0(std, _n8_, _n9_);} + return caml_call3(Stdlib_Format[133], _aH_, _n7_, x); + } + function pretty_to_channel(std, oc, x){ + var fmt = caml_call1(Stdlib_Format[108], oc); + function _n4_(_n5_, _n6_){return pp$0(std, _n5_, _n6_);} + return caml_call4(Stdlib_Format[129], fmt, _aI_, _n4_, x); + } + function hex$0(n){ + var _n3_ = 10 <= n ? n + 87 | 0 : n + 48 | 0; + return caml_call1(Stdlib_Char[1], _n3_); + } + function write_special$0(src, start, stop, ob, str){ + caml_call4(Stdlib_Buffer[18], ob, src, start[1], stop - start[1] | 0); + caml_call2(Stdlib_Buffer[16], ob, str); + start[1] = stop + 1 | 0; + return 0; + } + function write_string$0(ob, src){ + caml_call2(Stdlib_Buffer[12], ob, 34); + var start = [0, 0], _n1_ = caml_ml_string_length(src) - 1 | 0, _n0_ = 0; + if(_n1_ >= 0){ + var stop = _n0_; + for(;;){ + var c = caml_string_get(src, stop); + if(92 === c) + write_special$0(src, start, stop, ob, cst$18); + else{ + var switch$0 = 0; + if(35 <= c){ + if(127 !== c) switch$0 = 2; + } + else if(8 <= c){ + var switch$1 = 0; + switch(c - 8 | 0){ + case 0: + write_special$0(src, start, stop, ob, cst_b$0); break; + case 1: + write_special$0(src, start, stop, ob, cst_t$0); break; + case 2: + write_special$0(src, start, stop, ob, cst_n$0); break; + case 4: + write_special$0(src, start, stop, ob, cst_f$0); break; + case 5: + write_special$0(src, start, stop, ob, cst_r$0); break; + case 26: + write_special$0(src, start, stop, ob, cst$19); break; + case 24: + case 25: + switch$0 = 2; switch$1 = 1; break; + default: switch$1 = 1; + } + if(! switch$1) switch$0 = 1; + } + switch(switch$0){ + case 2: break; + case 0: + caml_call4 + (Stdlib_Buffer[18], ob, src, start[1], stop - start[1] | 0); + caml_call2(Stdlib_Buffer[16], ob, cst_u00$0); + var _nY_ = hex$0(c >>> 4 | 0); + caml_call2(Stdlib_Buffer[12], ob, _nY_); + var _nZ_ = hex$0(c & 15); + caml_call2(Stdlib_Buffer[12], ob, _nZ_); + start[1] = stop + 1 | 0; + break; + } + } + var _n2_ = stop + 1 | 0; + if(_n1_ !== stop){var stop = _n2_; continue;} + break; + } + } + try{ + caml_call4 + (Stdlib_Buffer[18], + ob, + src, + start[1], + caml_ml_string_length(src) - start[1] | 0); + } + catch(exc$0){ + var exc = caml_wrap_exception(exc$0); + caml_call4 + (Stdlib_Printf[3], + _aJ_, + src, + start[1], + caml_ml_string_length(src) - start[1] | 0); + throw caml_maybe_attach_backtrace(exc, 0); + } + return caml_call2(Stdlib_Buffer[12], ob, 34); + } + function json_string_of_string$0(s){ + var ob = caml_call1(Stdlib_Buffer[1], 10); + write_string$0(ob, s); + return caml_call1(Stdlib_Buffer[2], ob); + } + function write_null$0(ob, param){ + return caml_call2(Stdlib_Buffer[16], ob, cst_null$1); + } + function write_bool$0(ob, x){ + var _nX_ = x ? cst_true$0 : cst_false$0; + return caml_call2(Stdlib_Buffer[16], ob, _nX_); + } + var + _aK_ = caml_ml_string_length(caml_call1(Stdlib[33], Stdlib[20])), + _aL_ = caml_ml_string_length(caml_call1(Stdlib[33], Stdlib[19])); + caml_call2(Stdlib[17], _aL_, _aK_); + function write_digits$0(s, x){ + if(0 === x) return 0; + var d = x % 10 | 0; + write_digits$0(s, x / 10 | 0); + var + n = caml_call1(Stdlib[18], d), + _nW_ = caml_call1(Stdlib_Char[1], n + 48 | 0); + return caml_call2(Stdlib_Buffer[12], s, _nW_); + } + function write_int$0(ob, x){ + return 0 < x + ? write_digits$0(ob, x) + : 0 + <= x + ? caml_call2(Stdlib_Buffer[12], ob, 48) + : (caml_call2(Stdlib_Buffer[12], ob, 45), write_digits$0(ob, x)); + } + function float_needs_period$0(s){ + try{ + var _nS_ = caml_ml_string_length(s) - 1 | 0, _nR_ = 0; + if(_nS_ >= 0){ + var i = _nR_; + for(;;){ + var match = caml_string_get(s, i), switch$0 = 0; + if(48 <= match){ + if(58 > match) switch$0 = 1; + } + else if(45 === match) switch$0 = 1; + if(! switch$0) throw caml_maybe_attach_backtrace(Stdlib[3], 1); + var _nU_ = i + 1 | 0; + if(_nS_ !== i){var i = _nU_; continue;} + break; + } + } + var _nT_ = 1; + return _nT_; + } + catch(_nV_){ + var _nQ_ = caml_wrap_exception(_nV_); + if(_nQ_ === Stdlib[3]) return 0; + throw caml_maybe_attach_backtrace(_nQ_, 0); + } + } + function write_float$0(ob, x){ + var match = caml_classify_float(x); + if(3 === match){ + var _nO_ = 0. < x ? cst_Infinity$3 : cst_Infinity$4; + return caml_call2(Stdlib_Buffer[16], ob, _nO_); + } + if(4 <= match) return caml_call2(Stdlib_Buffer[16], ob, cst_NaN$1); + var + s1 = caml_call2(Stdlib_Printf[4], _aM_, x), + s = + caml_float_of_string(s1) == x + ? s1 + : caml_call2(Stdlib_Printf[4], _aN_, x); + caml_call2(Stdlib_Buffer[16], ob, s); + var _nP_ = float_needs_period$0(s); + return _nP_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0$2) : _nP_; + } + function write_normal_float_prec$0(significant_figures, ob, x){ + var switcher = significant_figures - 1 | 0; + if(15 < switcher >>> 0) + var s = caml_call2(Stdlib_Printf[4], _aO_, x); + else + switch(switcher){ + case 0: + var s = caml_call2(Stdlib_Printf[4], _aP_, x); break; + case 1: + var s = caml_call2(Stdlib_Printf[4], _aQ_, x); break; + case 2: + var s = caml_call2(Stdlib_Printf[4], _aR_, x); break; + case 3: + var s = caml_call2(Stdlib_Printf[4], _aS_, x); break; + case 4: + var s = caml_call2(Stdlib_Printf[4], _aT_, x); break; + case 5: + var s = caml_call2(Stdlib_Printf[4], _aU_, x); break; + case 6: + var s = caml_call2(Stdlib_Printf[4], _aV_, x); break; + case 7: + var s = caml_call2(Stdlib_Printf[4], _aW_, x); break; + case 8: + var s = caml_call2(Stdlib_Printf[4], _aX_, x); break; + case 9: + var s = caml_call2(Stdlib_Printf[4], _aY_, x); break; + case 10: + var s = caml_call2(Stdlib_Printf[4], _aZ_, x); break; + case 11: + var s = caml_call2(Stdlib_Printf[4], _a0_, x); break; + case 12: + var s = caml_call2(Stdlib_Printf[4], _a1_, x); break; + case 13: + var s = caml_call2(Stdlib_Printf[4], _a2_, x); break; + case 14: + var s = caml_call2(Stdlib_Printf[4], _a3_, x); break; + default: var s = caml_call2(Stdlib_Printf[4], _a4_, x); + } + caml_call2(Stdlib_Buffer[16], ob, s); + var _nN_ = float_needs_period$0(s); + return _nN_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0$3) : _nN_; + } + function write_float_prec$0(significant_figures, ob, x){ + var match = caml_classify_float(x); + if(3 !== match) + return 4 <= match + ? caml_call2(Stdlib_Buffer[16], ob, cst_NaN$2) + : write_normal_float_prec$0(significant_figures, ob, x); + var _nM_ = 0. < x ? cst_Infinity$5 : cst_Infinity$6; + return caml_call2(Stdlib_Buffer[16], ob, _nM_); + } + function write_std_float$0(ob, x){ + var match = caml_classify_float(x); + if(3 === match){ + var + _nK_ = + 0. < x + ? cst_Infinity_value_not_allowed$3 + : cst_Infinity_value_not_allowed$4; + return json_error(_nK_); + } + if(4 <= match) return json_error(cst_NaN_value_not_allowed_in_s$1); + var + s1 = caml_call2(Stdlib_Printf[4], _a5_, x), + s = + caml_float_of_string(s1) == x + ? s1 + : caml_call2(Stdlib_Printf[4], _a6_, x); + caml_call2(Stdlib_Buffer[16], ob, s); + var _nL_ = float_needs_period$0(s); + return _nL_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0$4) : _nL_; + } + function write_std_float_prec$0(significant_figures, ob, x){ + var match = caml_classify_float(x); + if(3 !== match) + return 4 <= match + ? json_error(cst_NaN_value_not_allowed_in_s$2) + : write_normal_float_prec$0(significant_figures, ob, x); + var + _nJ_ = + 0. < x + ? cst_Infinity_value_not_allowed$5 + : cst_Infinity_value_not_allowed$6; + return json_error(_nJ_); + } + function iter2$0(f_elt, f_sep, x, param$0){ + if(! param$0) return 0; + var l$0 = param$0[2], y$0 = param$0[1]; + caml_call2(f_elt, x, y$0); + var param = l$0; + for(;;){ + if(! param) return 0; + var l = param[2], y = param[1]; + caml_call1(f_sep, x); + caml_call2(f_elt, x, y); + var param = l; + } + } + function f_sep$0(ob){return caml_call2(Stdlib_Buffer[12], ob, 44);} + function write_list$0(ob, l){ + caml_call2(Stdlib_Buffer[12], ob, 91); + iter2$0(write_json$0, f_sep$0, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + function write_assoc$0(ob, l){ + function f_elt(ob, param){ + var x = param[2], s = param[1]; + write_string$0(ob, s); + caml_call2(Stdlib_Buffer[12], ob, 58); + return write_json$0(ob, x); + } + caml_call2(Stdlib_Buffer[12], ob, 123); + iter2$0(f_elt, f_sep$0, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 125); + } + function write_json$0(ob, x){ + if(typeof x === "number") return write_null$0(ob, 0); + var _nI_ = x[1]; + if(365180284 > _nI_){ + if(3654863 <= _nI_){var i = x[2]; return write_int$0(ob, i);} + var s = x[2]; + return write_string$0(ob, s); + } + if(848054398 <= _nI_){ + if(963043957 <= _nI_){var l = x[2]; return write_assoc$0(ob, l);} + var l$0 = x[2]; + return write_list$0(ob, l$0); + } + if(737456202 <= _nI_){var b = x[2]; return write_bool$0(ob, b);} + var f = x[2]; + return write_float$0(ob, f); + } + function write_std_json$0(ob, x){ + if(typeof x === "number") return write_null$0(ob, 0); + var _nH_ = x[1]; + if(365180284 > _nH_){ + if(3654863 <= _nH_){var i = x[2]; return write_int$0(ob, i);} + var s = x[2]; + return write_string$0(ob, s); + } + if(848054398 <= _nH_){ + if(963043957 <= _nH_){ + var + l = x[2], + f_elt = + function(ob, param){ + var x = param[2], s = param[1]; + write_string$0(ob, s); + caml_call2(Stdlib_Buffer[12], ob, 58); + return write_std_json$0(ob, x); + }; + caml_call2(Stdlib_Buffer[12], ob, 123); + iter2$0(f_elt, f_sep$0, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 125); + } + var l$0 = x[2]; + caml_call2(Stdlib_Buffer[12], ob, 91); + iter2$0(write_std_json$0, f_sep$0, ob, l$0); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + if(737456202 <= _nH_){var b = x[2]; return write_bool$0(ob, b);} + var f = x[2]; + return write_std_float$0(ob, f); + } + function to_buffer$0(opt, _nG_, ob, x){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$20; + if(_nG_) var sth$0 = _nG_[1], std = sth$0; else var std = 0; + if(std) write_std_json$0(ob, x); else write_json$0(ob, x); + return caml_call2(Stdlib_Buffer[16], ob, suf); + } + function to_string$0(buf, opt, _nF_, std, x){ + if(opt) var sth = opt[1], len = sth; else var len = 256; + if(_nF_) var sth$0 = _nF_[1], suf = sth$0; else var suf = cst$21; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + to_buffer$0([0, suf], std, ob$0, x); + var s = caml_call1(Stdlib_Buffer[2], ob$0); + caml_call1(Stdlib_Buffer[8], ob$0); + return s; + } + function to_channel$0(buf, opt, _nE_, std, oc, x){ + if(opt) var sth = opt[1], len = sth; else var len = 4096; + if(_nE_) var sth$0 = _nE_[1], suf = sth$0; else var suf = cst$22; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + to_buffer$0([0, suf], std, ob$0, x); + caml_call2(Stdlib_Buffer[10], oc, ob$0); + return caml_call1(Stdlib_Buffer[8], ob$0); + } + function to_output$0(buf, opt, _nC_, std, out, x){ + if(opt) var sth = opt[1], len = sth; else var len = 4096; + if(_nC_) var sth$0 = _nC_[1], suf = sth$0; else var suf = cst$23; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + to_buffer$0([0, suf], std, ob$0, x); + var _nD_ = caml_call1(Stdlib_Buffer[7], ob$0); + caml_call4 + (caml_get_public_method(out, 209784577, 2), + out, + caml_call1(Stdlib_Buffer[2], ob$0), + 0, + _nD_); + return caml_call1(Stdlib_Buffer[8], ob$0); + } + function to_file$0(len, std, opt, file, x){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$24; + var oc = caml_call1(Stdlib[60], file); + try{ + to_channel$0(0, len, [0, suf], std, oc, x); + var _nB_ = caml_call1(Stdlib[76], oc); + return _nB_; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + caml_call1(Stdlib[77], oc); + throw caml_maybe_attach_backtrace(e, 0); + } + } + function seq_to_buffer$0(opt, std, ob, st){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$25; + var _ny_ = [0, suf]; + function _nz_(_nA_){return to_buffer$0(_ny_, std, ob, _nA_);} + return caml_call2(Stdlib_Seq[4], _nz_, st); + } + function seq_to_string$0(buf, opt, _nx_, std, st){ + if(opt) var sth = opt[1], len = sth; else var len = 256; + if(_nx_) var sth$0 = _nx_[1], suf = sth$0; else var suf = cst$26; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + seq_to_buffer$0([0, suf], std, ob$0, st); + var s = caml_call1(Stdlib_Buffer[2], ob$0); + caml_call1(Stdlib_Buffer[8], ob$0); + return s; + } + function seq_to_channel$0(buf, opt, _nv_, std, oc, seq){ + if(opt) var sth = opt[1], len = sth; else var len = 2096; + if(_nv_) var sth$0 = _nv_[1], suf = sth$0; else var suf = cst$27; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + function _nw_(json){ + to_buffer$0([0, suf], std, ob$0, json); + caml_call2(Stdlib_Buffer[10], oc, ob$0); + return caml_call1(Stdlib_Buffer[8], ob$0); + } + return caml_call2(Stdlib_Seq[4], _nw_, seq); + } + function seq_to_file$0(len, opt, std, file, st){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$28; + var oc = caml_call1(Stdlib[60], file); + try{ + seq_to_channel$0(0, len, [0, suf], std, oc, st); + var _nu_ = caml_call1(Stdlib[76], oc); + return _nu_; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + caml_call1(Stdlib[77], oc); + throw caml_maybe_attach_backtrace(e, 0); + } + } + function sort$0(x){ + if(typeof x !== "number"){ + var _no_ = x[1]; + if(848054398 === _no_){ + var l = x[2], _np_ = caml_call2(Stdlib_List[21], sort$0, l); + return [0, 848054398, caml_call1(Stdlib_List[9], _np_)]; + } + if(963043957 === _no_){ + var + l$0 = x[2], + _nq_ = + function(param){ + var v = param[2], k = param[1]; + return [0, k, sort$0(v)]; + }, + _nr_ = caml_call2(Stdlib_List[21], _nq_, l$0), + l$1 = caml_call1(Stdlib_List[9], _nr_), + _ns_ = + function(param, _nt_){ + var b = _nt_[1], a = param[1]; + return caml_call2(Stdlib_String[9], a, b); + }; + return [0, 963043957, caml_call2(Stdlib_List[57], _ns_, l$1)]; + } + } + return x; + } + function pp_list$0(sep, ppx, out, l){ + function pp_sep(out, param){ + return caml_call3(Stdlib_Format[129], out, _a7_, sep); + } + return caml_call4(Stdlib_Format[123], [0, pp_sep], ppx, out, l); + } + function is_atom$0(x){ + if(typeof x !== "number"){ + var _nn_ = x[1], switch$0 = 0; + if(737456202 <= _nn_){ + if(848054398 === _nn_){ + if(x[2]) switch$0 = 1; + } + else if(963043957 <= _nn_ && x[2]) switch$0 = 1; + } + else + if(708012133 === _nn_){ + if(x[2][2]) switch$0 = 1; + } + else if(726928360 <= _nn_ && x[2]) switch$0 = 1; + if(switch$0) return 0; + } + return 1; + } + function format$0(inside_box, std, out, x){ + if(typeof x === "number") + return caml_call2(Stdlib_Format[13], out, cst_null$2); + var _mY_ = x[1]; + if(365180284 > _mY_){ + if(3654863 <= _mY_){ + var x$2 = x[2], _mX_ = caml_call1(Stdlib[33], x$2); + return caml_call2(Stdlib_Format[13], out, _mX_); + } + var s$0 = x[2], _m9_ = json_string_of_string$0(s$0); + return caml_call2(Stdlib_Format[13], out, _m9_); + } + if(848054398 > _mY_){ + if(737456202 <= _mY_){ + var x$0 = x[2]; + return caml_call2(Stdlib_Format[25], out, x$0); + } + var x$1 = x[2]; + if(std){ + var ob$0 = caml_call1(Stdlib_Buffer[1], 20); + write_std_float$0(ob$0, x$1); + var s = caml_call1(Stdlib_Buffer[2], ob$0); + } + else{ + var ob = caml_call1(Stdlib_Buffer[1], 20); + write_float$0(ob, x$1); + var s = caml_call1(Stdlib_Buffer[2], ob); + } + return caml_call2(Stdlib_Format[13], out, s); + } + if(963043957 <= _mY_){ + var l = x[2]; + if(! l) return caml_call2(Stdlib_Format[13], out, cst$30); + if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _a8_); + var + _mZ_ = + function(out, param){ + var x = param[2], name = param[1], _ni_ = 1; + function _nj_(_nl_, _nm_){return format$0(_ni_, std, _nl_, _nm_);} + var _nk_ = json_string_of_string$0(name); + return caml_call5(Stdlib_Format[129], out, _bd_, _nk_, _nj_, x); + }, + _m0_ = function(_ng_, _nh_){return pp_list$0(cst$29, _mZ_, _ng_, _nh_);}; + caml_call4(Stdlib_Format[129], out, _a9_, _m0_, l); + var _m1_ = 1 - inside_box; + return _m1_ ? caml_call2(Stdlib_Format[129], out, _a__) : _m1_; + } + var l$0 = x[2]; + if(! l$0) return caml_call2(Stdlib_Format[13], out, cst$33); + if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _a$_); + if(caml_call2(Stdlib_List[32], is_atom$0, l$0)){ + var + _m2_ = 0, + _m3_ = function(_na_, _nb_){return format$0(_m2_, std, _na_, _nb_);}, + _m4_ = function(_m__, _m$_){return pp_list$0(cst$31, _m3_, _m__, _m$_);}; + caml_call4(Stdlib_Format[129], out, _ba_, _m4_, l$0); + } + else{ + var + _m6_ = 0, + _m7_ = function(_ne_, _nf_){return format$0(_m6_, std, _ne_, _nf_);}, + _m8_ = function(_nc_, _nd_){return pp_list$0(cst$32, _m7_, _nc_, _nd_);}; + caml_call4(Stdlib_Format[129], out, _bc_, _m8_, l$0); + } + var _m5_ = 1 - inside_box; + return _m5_ ? caml_call2(Stdlib_Format[129], out, _bb_) : _m5_; + } + function pp$1(opt, out, x){ + if(opt) var sth = opt[1], std = sth; else var std = 0; + var _mT_ = 1; + function _mU_(_mV_, _mW_){return format$0(_mT_, std, _mV_, _mW_);} + return caml_call4(Stdlib_Format[129], out, _be_, _mU_, x); + } + function pp$2(fmt, param){ + if(typeof param === "number") + return caml_call2(Stdlib_Format[13], fmt, cst_Null$0); + var _mO_ = param[1]; + if(365180284 > _mO_){ + if(3654863 <= _mO_){ + var x$1 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _bB_); + caml_call3(Stdlib_Format[129], fmt, _bC_, x$1); + return caml_call2(Stdlib_Format[129], fmt, _bD_); + } + var x$2 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _bE_); + caml_call3(Stdlib_Format[129], fmt, _bF_, x$2); + return caml_call2(Stdlib_Format[129], fmt, _bG_); + } + if(848054398 <= _mO_){ + if(963043957 <= _mO_){ + var xs = param[2]; + caml_call2(Stdlib_Format[129], fmt, _bh_); + caml_call2(Stdlib_Format[129], fmt, _bi_); + var + _mP_ = 0, + _mQ_ = + function(sep, param){ + var value = param[2], key = param[1]; + if(sep) caml_call2(Stdlib_Format[129], fmt, _bj_); + caml_call2(Stdlib_Format[129], fmt, _bk_); + caml_call3(Stdlib_Format[129], fmt, _bl_, key); + caml_call2(Stdlib_Format[129], fmt, _bm_); + pp$2(fmt, value); + caml_call2(Stdlib_Format[129], fmt, _bn_); + return 1; + }; + caml_call3(Stdlib_List[25], _mQ_, _mP_, xs); + caml_call2(Stdlib_Format[129], fmt, _bo_); + return caml_call2(Stdlib_Format[129], fmt, _bp_); + } + var xs$0 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _bq_); + caml_call2(Stdlib_Format[129], fmt, _br_); + var + _mR_ = 0, + _mS_ = + function(sep, x){ + if(sep) caml_call2(Stdlib_Format[129], fmt, _bs_); + pp$2(fmt, x); + return 1; + }; + caml_call3(Stdlib_List[25], _mS_, _mR_, xs$0); + caml_call2(Stdlib_Format[129], fmt, _bt_); + return caml_call2(Stdlib_Format[129], fmt, _bu_); + } + if(737456202 <= _mO_){ + var x = param[2]; + caml_call2(Stdlib_Format[129], fmt, _bv_); + caml_call3(Stdlib_Format[129], fmt, _bw_, x); + return caml_call2(Stdlib_Format[129], fmt, _bx_); + } + var x$0 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _by_); + caml_call3(Stdlib_Format[129], fmt, _bz_, x$0); + return caml_call2(Stdlib_Format[129], fmt, _bA_); + } + function show$0(x){return caml_call3(Stdlib_Format[133], _bH_, pp$2, x);} + function equal$0(a, b){ + if(typeof a === "number"){ + if(870828711 === a && 870828711 === b) return 1; + } + else{ + var _mG_ = a[1]; + if(365180285 <= _mG_){ + if(737456202 === _mG_){ + if(typeof b !== "number" && 737456202 === b[1]){ + var b$0 = b[2], a$0 = a[2]; + return caml_equal(a$0, b$0); + } + } + else + if(848054398 === _mG_){ + if(typeof b !== "number" && 848054398 === b[1]){ + var ys = b[2], xs = a[2]; + try{ + var result = caml_call3(Stdlib_List[34], equal$0, xs, ys); + return result; + } + catch(_mK_){ + var _mH_ = caml_wrap_exception(_mK_); + if(_mH_[1] === Stdlib[6]) return 0; + throw caml_maybe_attach_backtrace(_mH_, 0); + } + } + } + else if + (963043957 === _mG_ && typeof b !== "number" && 963043957 === b[1]){ + var + ys$0 = b[2], + xs$0 = a[2], + compare_keys = + function(param, _mN_){ + var key = _mN_[1], key$0 = param[1]; + return caml_call2(Stdlib_String[9], key$0, key); + }, + xs$1 = caml_call2(Stdlib_List[57], compare_keys, xs$0), + ys$1 = caml_call2(Stdlib_List[57], compare_keys, ys$0); + try{ + var + _mJ_ = + function(param, _mM_){ + var + value = _mM_[2], + key = _mM_[1], + value$0 = param[2], + key$0 = param[1]; + return caml_string_equal(key$0, key) + ? equal$0(value$0, value) + : 0; + }, + result$0 = caml_call3(Stdlib_List[34], _mJ_, xs$1, ys$1); + return result$0; + } + catch(_mL_){ + var _mI_ = caml_wrap_exception(_mL_); + if(_mI_[1] === Stdlib[6]) return 0; + throw caml_maybe_attach_backtrace(_mI_, 0); + } + } + } + else + if(-976970511 === _mG_){ + if(typeof b !== "number" && -976970511 === b[1]){ + var b$1 = b[2], a$1 = a[2]; + return caml_equal(a$1, b$1); + } + } + else + if(3654863 === _mG_){ + if(typeof b !== "number" && 3654863 === b[1]){ + var b$2 = b[2], a$2 = a[2]; + return caml_equal(a$2, b$2); + } + } + else if + (365180284 <= _mG_ && typeof b !== "number" && 365180284 === b[1]){var b$3 = b[2], a$3 = a[2]; return caml_equal(a$3, b$3);} + } + return 0; + } + function pretty_print$0(std, out, x){return pp$1(std, out, x);} + function pretty_to_string$0(std, x){ + function _mD_(_mE_, _mF_){return pp$1(std, _mE_, _mF_);} + return caml_call3(Stdlib_Format[133], _bf_, _mD_, x); + } + function pretty_to_channel$0(std, oc, x){ + var fmt = caml_call1(Stdlib_Format[108], oc); + function _mA_(_mB_, _mC_){return pp$1(std, _mB_, _mC_);} + return caml_call4(Stdlib_Format[129], fmt, _bg_, _mA_, x); + } + var + from_channel = Stdlib_Lexing[2], + from_string = Stdlib_Lexing[3], + lexeme = Stdlib_Lexing[8], + sub_lexeme = Stdlib_Lexing[16], + sub_lexeme_char = Stdlib_Lexing[18]; + function hex$1(c){ + if(65 <= c){ + if(97 <= c){ + if(103 > c) return (c - 97 | 0) + 10 | 0; + } + else if(71 > c) return (c - 65 | 0) + 10 | 0; + } + else if(9 >= c - 48 >>> 0) return c - 48 | 0; + throw caml_maybe_attach_backtrace([0, Assert_failure, _bI_], 1); + } + function custom_error(descr, v, lexbuf){ + var + offs = lexbuf[4] - 1 | 0, + bol = v[3], + pos1 = ((offs + lexbuf[5] | 0) - bol | 0) - 1 | 0, + pos2 = caml_call2(Stdlib[17], pos1, (offs + lexbuf[6] | 0) - bol | 0), + match = v[4]; + if(match) + var s = match[1], file_line = caml_call2(Stdlib_Printf[4], _bJ_, s); + else + var file_line = cst_Line; + var + bytes = + pos1 === pos2 + ? caml_call2(Stdlib_Printf[4], _bK_, pos1 + 1 | 0) + : caml_call3(Stdlib_Printf[4], _bM_, pos1 + 1 | 0, pos2 + 1 | 0), + msg = caml_call5(Stdlib_Printf[4], _bL_, file_line, v[2], bytes, descr); + return json_error(msg); + } + function lexer_error(descr, v, lexbuf){ + var _mz_ = caml_call1(lexeme, lexbuf); + return custom_error + (caml_call3(Stdlib_Printf[4], _bN_, descr, _mz_), v, lexbuf); + } + var + read_junk = + [0, + function(param){ + throw caml_maybe_attach_backtrace([0, Assert_failure, _bO_], 1); + }]; + function long_error(descr, v, lexbuf){ + var + junk = caml_call1(lexeme, lexbuf), + extra_junk = caml_call1(read_junk[1], lexbuf); + return custom_error + (caml_call4(Stdlib_Printf[4], _bP_, descr, junk, extra_junk), + v, + lexbuf); + } + var + _bQ_ = 0 === (Stdlib[20] % 10 | 0) ? 0 : 1, + min10 = (Stdlib[20] / 10 | 0) - _bQ_ | 0, + _bR_ = 0 === (Stdlib[19] % 10 | 0) ? 0 : 1, + max10 = (Stdlib[19] / 10 | 0) + _bR_ | 0, + Int_overflow = [248, cst_Yojson_Basic_Int_overflow, caml_fresh_oo_id(0)]; + function extract_positive_int(lexbuf){ + var + start = lexbuf[5], + stop = lexbuf[6], + s = lexbuf[2], + n = [0, 0], + _mw_ = stop - 1 | 0; + if(_mw_ >= start){ + var i = start; + for(;;){ + if(max10 <= n[1]) throw caml_maybe_attach_backtrace(Int_overflow, 1); + var _mx_ = caml_bytes_get(s, i) - 48 | 0; + n[1] = (10 * n[1] | 0) + _mx_ | 0; + var _my_ = i + 1 | 0; + if(_mw_ !== i){var i = _my_; continue;} + break; + } + } + if(0 <= n[1]) return n[1]; + throw caml_maybe_attach_backtrace(Int_overflow, 1); + } + function extract_negative_int(lexbuf){ + var + start = lexbuf[5] + 1 | 0, + stop = lexbuf[6], + s = lexbuf[2], + n = [0, 0], + _mt_ = stop - 1 | 0; + if(_mt_ >= start){ + var i = start; + for(;;){ + if(n[1] <= min10) throw caml_maybe_attach_backtrace(Int_overflow, 1); + var _mu_ = caml_bytes_get(s, i) - 48 | 0; + n[1] = (10 * n[1] | 0) - _mu_ | 0; + var _mv_ = i + 1 | 0; + if(_mt_ !== i){var i = _mv_; continue;} + break; + } + } + if(0 < n[1]) throw caml_maybe_attach_backtrace(Int_overflow, 1); + return n[1]; + } + function newline(v, lexbuf){ + v[2] = v[2] + 1 | 0; + v[3] = lexbuf[4] + lexbuf[6] | 0; + return 0; + } + function add_lexeme(buf, lexbuf){ + var len = lexbuf[6] - lexbuf[5] | 0; + return caml_call4(Stdlib_Buffer[19], buf, lexbuf[2], lexbuf[5], len); + } + function read_json(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 0; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(19 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return _bS_; + case 1: + return _bT_; + case 2: + return 870828711; + case 3: + return [0, 365180284, Stdlib[24]]; + case 4: + return [0, 365180284, Stdlib[22]]; + case 5: + return [0, 365180284, Stdlib[23]]; + case 6: + caml_call1(Stdlib_Buffer[8], v[1]); + return [0, -976970511, finish_string(v, lexbuf)]; + case 7: + try{ + var _mg_ = [0, 3654863, extract_positive_int(lexbuf)]; + return _mg_; + } + catch(_ms_){ + var _mf_ = caml_wrap_exception(_ms_); + if(_mf_ === Int_overflow) + return lexer_error(cst_Int_overflow, v, lexbuf); + throw caml_maybe_attach_backtrace(_mf_, 0); + } + case 8: + try{ + var _mi_ = [0, 3654863, extract_negative_int(lexbuf)]; + return _mi_; + } + catch(_mr_){ + var _mh_ = caml_wrap_exception(_mr_); + if(_mh_ === Int_overflow) + return lexer_error(cst_Int_overflow$0, v, lexbuf); + throw caml_maybe_attach_backtrace(_mh_, 0); + } + case 9: + return [0, + 365180284, + caml_float_of_string(caml_call1(lexeme, lexbuf))]; + case 10: + var acc = [0, 0]; + try{ + read_space(v, lexbuf); + read_object_end(lexbuf); + var field_name = read_ident(v, lexbuf); + read_space(v, lexbuf); + read_colon(v, lexbuf); + read_space(v, lexbuf); + var _mk_ = acc[1]; + acc[1] = [0, [0, field_name, read_json(v, lexbuf)], _mk_]; + for(;;){ + read_space(v, lexbuf); + read_object_sep(v, lexbuf); + read_space(v, lexbuf); + var field_name$0 = read_ident(v, lexbuf); + read_space(v, lexbuf); + read_colon(v, lexbuf); + read_space(v, lexbuf); + var _ml_ = acc[1]; + acc[1] = [0, [0, field_name$0, read_json(v, lexbuf)], _ml_]; + } + } + catch(_mq_){ + var _mj_ = caml_wrap_exception(_mq_); + if(_mj_ === End_of_object) + return [0, 963043957, caml_call1(Stdlib_List[9], acc[1])]; + throw caml_maybe_attach_backtrace(_mj_, 0); + } + case 11: + var acc$0 = [0, 0]; + try{ + read_space(v, lexbuf); + read_array_end(lexbuf); + var _mn_ = acc$0[1]; + acc$0[1] = [0, read_json(v, lexbuf), _mn_]; + for(;;){ + read_space(v, lexbuf); + read_array_sep(v, lexbuf); + read_space(v, lexbuf); + var _mo_ = acc$0[1]; + acc$0[1] = [0, read_json(v, lexbuf), _mo_]; + } + } + catch(_mp_){ + var _mm_ = caml_wrap_exception(_mp_); + if(_mm_ === End_of_array) + return [0, 848054398, caml_call1(Stdlib_List[9], acc$0[1])]; + throw caml_maybe_attach_backtrace(_mm_, 0); + } + case 12: + return long_error(cst_Invalid_token, v, lexbuf); + case 13: + return long_error(cst_Invalid_token$0, v, lexbuf); + case 14: + continue a; + case 15: + finish_comment(v, lexbuf); continue a; + case 16: + newline(v, lexbuf); continue a; + case 17: + continue a; + case 18: + return custom_error(cst_Unexpected_end_of_input, v, lexbuf); + default: return long_error(cst_Invalid_token$1, v, lexbuf); + } + } + } + } + function finish_string(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 58; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return caml_call1(Stdlib_Buffer[2], v[1]); + case 1: + finish_escaped_char(v, lexbuf); continue a; + case 2: + add_lexeme(v[1], lexbuf); continue a; + default: + return custom_error(cst_Unexpected_end_of_input$0, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function map_string(v, f, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 63; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + var b = v[1], _me_ = caml_call1(Stdlib_Buffer[7], b); + return caml_call3(f, caml_call1(Stdlib_Buffer[2], b), 0, _me_); + case 1: + finish_escaped_char(v, lexbuf); continue a; + case 2: + add_lexeme(v[1], lexbuf); continue a; + default: + return custom_error(cst_Unexpected_end_of_input$1, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function finish_escaped_char(v, lexbuf){ + var ocaml_lex_state = 68; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(8 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var c = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5]); + return caml_call2(Stdlib_Buffer[12], v[1], c); + case 1: + return caml_call2(Stdlib_Buffer[12], v[1], 8); + case 2: + return caml_call2(Stdlib_Buffer[12], v[1], 12); + case 3: + return caml_call2(Stdlib_Buffer[12], v[1], 10); + case 4: + return caml_call2(Stdlib_Buffer[12], v[1], 13); + case 5: + return caml_call2(Stdlib_Buffer[12], v[1], 9); + case 6: + var + a = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5] + 1 | 0), + b = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5] + 2 | 0), + c$0 = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5] + 3 | 0), + d = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5] + 4 | 0), + _l__ = hex$1(d), + _l$_ = hex$1(c$0) << 4, + _ma_ = hex$1(b) << 8, + x = hex$1(a) << 12 | _ma_ | _l$_ | _l__; + if(55296 <= x && 56319 >= x){ + var ocaml_lex_state$1 = 82; + for(;;){ + var + ocaml_lex_state$2 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state$1, lexbuf); + if(2 < ocaml_lex_state$2 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$1 = ocaml_lex_state$2; + continue; + } + switch(ocaml_lex_state$2){ + case 0: + var + a$0 = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5] + 2 | 0), + b$0 = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5] + 3 | 0), + c$1 = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5] + 4 | 0), + d$0 = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5] + 5 | 0), + _mb_ = hex$1(d$0), + _mc_ = hex$1(c$1) << 4, + _md_ = hex$1(b$0) << 8, + y = hex$1(a$0) << 12 | _md_ | _mc_ | _mb_; + if(56320 <= y && 57343 >= y) + return utf8_of_surrogate_pair(v[1], x, y); + return long_error(cst_Invalid_low_surrogate_for_, v, lexbuf); + case 1: + return long_error(cst_Missing_escape_sequence_re, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$3, v, lexbuf); + } + } + } + return utf8_of_code(v[1], x); + case 7: + return long_error(cst_Invalid_escape_sequence, v, lexbuf); + default: return custom_error(cst_Unexpected_end_of_input$2, v, lexbuf); + } + } + } + function finish_stringlit(v, lexbuf){ + var ocaml_lex_state = 91; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + var + len = lexbuf[6] - lexbuf[5] | 0, + s = caml_create_bytes(len + 1 | 0); + caml_bytes_set(s, 0, 34); + caml_call5(Stdlib_Bytes[11], lexbuf[2], lexbuf[5], s, 1, len); + return caml_call1(Stdlib_Bytes[6], s); + case 1: + return long_error(cst_Invalid_string_literal, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$4, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_variant(v, lexbuf){ + var ocaml_lex_state = 102; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + var x = read_json(v, lexbuf); + read_space(v, lexbuf); + read_gt(v, lexbuf); + return [0, x]; + case 1: + return 0; + case 2: + return long_error(cst_Expected_or_but_found, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$5, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_lt(v, lexbuf){ + var ocaml_lex_state = 107; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error(cst_Expected_but_found, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$6, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_gt(v, lexbuf){ + var ocaml_lex_state = 111; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error(cst_Expected_but_found$0, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$7, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_comma(v, lexbuf){ + var ocaml_lex_state = 115; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error(cst_Expected_but_found$1, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$8, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function start_any_variant(v, lexbuf){ + var ocaml_lex_state = 119; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return -154522342; + case 1: + caml_call1(Stdlib_Buffer[8], v[1]); return -589953938; + case 2: + return -124528282; + case 3: + return long_error(cst_Expected_or_but_found$0, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$9, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_comment(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 125; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error(cst_Unterminated_comment, v, lexbuf); + case 2: + newline(v, lexbuf); continue a; + default: continue a; + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function read_eof(lexbuf){ + var ocaml_lex_state = 131; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) return 1; + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_space(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 133; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + newline(v, lexbuf); continue a; + case 1: + finish_comment(v, lexbuf); continue a; + case 2: + newline(v, lexbuf); continue a; + case 3: + continue a; + default: return 0; + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function read_null(v, lexbuf){ + var ocaml_lex_state = 140; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error(cst_Expected_null_but_found, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$10, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_null_if_possible(v, lexbuf){ + var ocaml_lex_state = 147; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) return 1; + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_bool(v, lexbuf){ + var ocaml_lex_state = 152; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(5 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 1; + case 1: + return 0; + case 2: + return 1; + case 3: + return 0; + case 4: + return long_error(cst_Expected_true_or_false_but, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$11, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_int(v, lexbuf){ + var ocaml_lex_state = 176; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(4 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + try{var _l3_ = extract_positive_int(lexbuf); return _l3_;} + catch(_l9_){ + var _l2_ = caml_wrap_exception(_l9_); + if(_l2_ === Int_overflow) + return lexer_error(cst_Int_overflow$1, v, lexbuf); + throw caml_maybe_attach_backtrace(_l2_, 0); + } + case 1: + try{var _l5_ = extract_negative_int(lexbuf); return _l5_;} + catch(_l8_){ + var _l4_ = caml_wrap_exception(_l8_); + if(_l4_ === Int_overflow) + return lexer_error(cst_Int_overflow$2, v, lexbuf); + throw caml_maybe_attach_backtrace(_l4_, 0); + } + case 2: + caml_call1(Stdlib_Buffer[8], v[1]); + var s = finish_string(v, lexbuf); + try{var _l6_ = caml_int_of_string(s); return _l6_;} + catch(_l7_){ + return custom_error(cst_Expected_an_integer_but_fo, v, lexbuf); + } + case 3: + return long_error(cst_Expected_integer_but_found, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$12, v, lexbuf); + } + } + } + function read_int32(v, lexbuf){ + var ocaml_lex_state = 185; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + try{ + var _lY_ = caml_int_of_string(caml_call1(lexeme, lexbuf)); + return _lY_; + } + catch(_l1_){return lexer_error(cst_Int32_overflow, v, lexbuf);} + case 1: + caml_call1(Stdlib_Buffer[8], v[1]); + var s = finish_string(v, lexbuf); + try{var _lZ_ = caml_int_of_string(s); return _lZ_;} + catch(_l0_){ + return custom_error(cst_Expected_an_int32_but_foun, v, lexbuf); + } + case 2: + return long_error(cst_Expected_int32_but_found, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$13, v, lexbuf); + } + } + } + function read_int64(v, lexbuf){ + var ocaml_lex_state = 192; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + try{ + var _lU_ = caml_int64_of_string(caml_call1(lexeme, lexbuf)); + return _lU_; + } + catch(_lX_){return lexer_error(cst_Int32_overflow$0, v, lexbuf);} + case 1: + caml_call1(Stdlib_Buffer[8], v[1]); + var s = finish_string(v, lexbuf); + try{var _lV_ = caml_int64_of_string(s); return _lV_;} + catch(_lW_){ + return custom_error(cst_Expected_an_int64_but_foun, v, lexbuf); + } + case 2: + return long_error(cst_Expected_int64_but_found, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$14, v, lexbuf); + } + } + } + function read_number(v, lexbuf){ + var ocaml_lex_state = 199; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(6 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return Stdlib[24]; + case 1: + return Stdlib[22]; + case 2: + return Stdlib[23]; + case 3: + return caml_float_of_string(caml_call1(lexeme, lexbuf)); + case 4: + caml_call1(Stdlib_Buffer[8], v[1]); + var s = finish_string(v, lexbuf); + try{var _lS_ = caml_float_of_string(s); return _lS_;} + catch(_lT_){ + return caml_string_notequal(s, cst_Infinity$12) + ? caml_string_notequal + (s, cst_Infinity$11) + ? caml_string_notequal + (s, cst_NaN$5) + ? custom_error(cst_Expected_a_number_but_foun, v, lexbuf) + : Stdlib[24] + : Stdlib[22] + : Stdlib[23]; + } + case 5: + return long_error(cst_Expected_number_but_found, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$15, v, lexbuf); + } + } + } + function read_string(v, lexbuf){ + var ocaml_lex_state = 233; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + caml_call1(Stdlib_Buffer[8], v[1]); return finish_string(v, lexbuf); + case 1: + return long_error(cst_Expected_but_found$2, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$16, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_ident(v, lexbuf){ + var ocaml_lex_state = 237; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + caml_call1(Stdlib_Buffer[8], v[1]); return finish_string(v, lexbuf); + case 1: + var s = caml_call3(sub_lexeme, lexbuf, lexbuf[5], lexbuf[6]); + return s; + case 2: + return long_error(cst_Expected_string_or_identif, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$17, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function map_ident(v, f, lexbuf){ + var ocaml_lex_state = 242; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + caml_call1(Stdlib_Buffer[8], v[1]); return map_string(v, f, lexbuf); + case 1: + var len = lexbuf[6] - lexbuf[5] | 0; + return caml_call3 + (f, + caml_call3(Stdlib_Bytes[8], lexbuf[2], lexbuf[5], len), + 0, + len); + case 2: + return long_error(cst_Expected_string_or_identif$0, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$18, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_sequence(read_cell, init_acc, v, lexbuf){ + var ocaml_lex_state = 247; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var acc = [0, init_acc]; + try{ + read_space(v, lexbuf); + read_array_end(lexbuf); + acc[1] = caml_call3(read_cell, acc[1], v, lexbuf); + for(;;){ + read_space(v, lexbuf); + read_array_sep(v, lexbuf); + read_space(v, lexbuf); + acc[1] = caml_call3(read_cell, acc[1], v, lexbuf); + } + } + catch(_lR_){ + var _lQ_ = caml_wrap_exception(_lR_); + if(_lQ_ === End_of_array) return acc[1]; + throw caml_maybe_attach_backtrace(_lQ_, 0); + } + case 1: + return long_error(cst_Expected_but_found$3, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$19, v, lexbuf); + } + } + } + function read_list_rev(read_cell, v, lexbuf){ + var ocaml_lex_state = 251; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var acc = [0, 0]; + try{ + read_space(v, lexbuf); + read_array_end(lexbuf); + var _lN_ = acc[1]; + acc[1] = [0, caml_call2(read_cell, v, lexbuf), _lN_]; + for(;;){ + read_space(v, lexbuf); + read_array_sep(v, lexbuf); + read_space(v, lexbuf); + var _lO_ = acc[1]; + acc[1] = [0, caml_call2(read_cell, v, lexbuf), _lO_]; + } + } + catch(_lP_){ + var _lM_ = caml_wrap_exception(_lP_); + if(_lM_ === End_of_array) return acc[1]; + throw caml_maybe_attach_backtrace(_lM_, 0); + } + case 1: + return long_error(cst_Expected_but_found$4, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$20, v, lexbuf); + } + } + } + function read_array_end(lexbuf){ + var ocaml_lex_state = 255; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) + throw caml_maybe_attach_backtrace(End_of_array, 1); + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_array_sep(v, lexbuf){ + var ocaml_lex_state = 257; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + throw caml_maybe_attach_backtrace(End_of_array, 1); + case 2: + return long_error(cst_Expected_or_but_found$1, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$21, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_tuple(read_cell, init_acc, v, lexbuf){ + var ocaml_lex_state = 262; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return long_error(cst_Invalid_token$2, v, lexbuf); + case 1: + return long_error(cst_Expected_but_found$5, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$22, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_tuple_end(lexbuf){ + var ocaml_lex_state = 266; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_tuple_end2(v, std, lexbuf){ + var ocaml_lex_state = 268; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + if(std) return long_error(cst_Expected_or_but_found$2, v, lexbuf); + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + case 1: + if(std) throw caml_maybe_attach_backtrace(End_of_tuple, 1); + return long_error(cst_Expected_or_but_found$3, v, lexbuf); + default: return 0; + } + } + } + function read_tuple_sep(v, lexbuf){ + var ocaml_lex_state = 271; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + case 2: + return long_error(cst_Expected_or_but_found$4, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$23, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_tuple_sep2(v, std, lexbuf){ + var ocaml_lex_state = 276; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(4 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + if(std) return long_error(cst_Expected_or_but_found$5, v, lexbuf); + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + case 2: + if(std) throw caml_maybe_attach_backtrace(End_of_tuple, 1); + return long_error(cst_Expected_or_but_found$6, v, lexbuf); + case 3: + return long_error(cst_Expected_or_but_found$7, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$24, v, lexbuf); + } + } + } + function read_abstract_fields(read_key, read_field, init_acc, v, lexbuf){ + var ocaml_lex_state = 282; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var acc = [0, init_acc]; + try{ + read_space(v, lexbuf); + read_object_end(lexbuf); + var field_name = caml_call2(read_key, v, lexbuf); + read_space(v, lexbuf); + read_colon(v, lexbuf); + read_space(v, lexbuf); + acc[1] = caml_call4(read_field, acc[1], field_name, v, lexbuf); + for(;;){ + read_space(v, lexbuf); + read_object_sep(v, lexbuf); + read_space(v, lexbuf); + var field_name$0 = caml_call2(read_key, v, lexbuf); + read_space(v, lexbuf); + read_colon(v, lexbuf); + read_space(v, lexbuf); + acc[1] = caml_call4(read_field, acc[1], field_name$0, v, lexbuf); + } + } + catch(_lL_){ + var _lK_ = caml_wrap_exception(_lL_); + if(_lK_ === End_of_object) return acc[1]; + throw caml_maybe_attach_backtrace(_lK_, 0); + } + case 1: + return long_error(cst_Expected_but_found$6, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$25, v, lexbuf); + } + } + } + function read_lcurl(v, lexbuf){ + var ocaml_lex_state = 286; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error(cst_Expected_but_found$7, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$26, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_object_end(lexbuf){ + var ocaml_lex_state = 290; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) + throw caml_maybe_attach_backtrace(End_of_object, 1); + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_object_sep(v, lexbuf){ + var ocaml_lex_state = 292; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + throw caml_maybe_attach_backtrace(End_of_object, 1); + case 2: + return long_error(cst_Expected_or_but_found$8, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$27, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_colon(v, lexbuf){ + var ocaml_lex_state = 297; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error(cst_Expected_but_found$8, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$28, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function start_any_tuple(v, lexbuf){ + var ocaml_lex_state = 301; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return 1; + case 2: + return long_error(cst_Expected_or_but_found$9, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$29, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_lpar(v, lexbuf){ + var ocaml_lex_state = 306; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error(cst_Expected_but_found$9, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$30, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_rpar(v, lexbuf){ + var ocaml_lex_state = 310; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error(cst_Expected_but_found$10, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$31, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_lbr(v, lexbuf){ + var ocaml_lex_state = 314; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error(cst_Expected_but_found$11, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$32, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_rbr(v, lexbuf){ + var ocaml_lex_state = 318; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error(cst_Expected_but_found$12, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$33, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_skip_stringlit(v, lexbuf){ + var ocaml_lex_state = 378; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error(cst_Invalid_string_literal$0, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$35, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function skip_json(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 322; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(18 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return 0; + case 2: + return 0; + case 3: + return 0; + case 4: + return 0; + case 5: + return 0; + case 6: + return finish_skip_stringlit(v, lexbuf); + case 7: + return 0; + case 8: + return 0; + case 9: + try{ + read_space(v, lexbuf); + read_object_end(lexbuf); + skip_ident(v, lexbuf); + read_space(v, lexbuf); + read_colon(v, lexbuf); + read_space(v, lexbuf); + skip_json(v, lexbuf); + for(;;){ + read_space(v, lexbuf); + read_object_sep(v, lexbuf); + read_space(v, lexbuf); + skip_ident(v, lexbuf); + read_space(v, lexbuf); + read_colon(v, lexbuf); + read_space(v, lexbuf); + skip_json(v, lexbuf); + } + } + catch(_lJ_){ + var _lG_ = caml_wrap_exception(_lJ_); + if(_lG_ === End_of_object) return 0; + throw caml_maybe_attach_backtrace(_lG_, 0); + } + case 10: + try{ + read_space(v, lexbuf); + read_array_end(lexbuf); + skip_json(v, lexbuf); + for(;;){ + read_space(v, lexbuf); + read_array_sep(v, lexbuf); + read_space(v, lexbuf); + skip_json(v, lexbuf); + } + } + catch(_lI_){ + var _lH_ = caml_wrap_exception(_lI_); + if(_lH_ === End_of_array) return 0; + throw caml_maybe_attach_backtrace(_lH_, 0); + } + case 11: + return long_error(cst_Invalid_token$3, v, lexbuf); + case 12: + return long_error(cst_Invalid_token$4, v, lexbuf); + case 13: + continue a; + case 14: + finish_comment(v, lexbuf); continue a; + case 15: + newline(v, lexbuf); continue a; + case 16: + continue a; + case 17: + return custom_error(cst_Unexpected_end_of_input$34, v, lexbuf); + default: return long_error(cst_Invalid_token$5, v, lexbuf); + } + } + } + } + function finish_skip_variant(v, lexbuf){ + var ocaml_lex_state = 389; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + skip_json(v, lexbuf); + read_space(v, lexbuf); + return read_gt(v, lexbuf); + case 1: + return 0; + case 2: + return long_error(cst_Expected_or_but_found$10, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$36, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function skip_ident(v, lexbuf){ + var ocaml_lex_state = 394; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return finish_skip_stringlit(v, lexbuf); + case 1: + return 0; + case 2: + return long_error(cst_Expected_string_or_identif$1, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$37, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_buffer_stringlit(v, lexbuf){ + var ocaml_lex_state = 450; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 34); + return add_lexeme(v[1], lexbuf); + case 1: + return long_error(cst_Invalid_string_literal$1, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$39, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function buffer_json(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 399; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(11 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return add_lexeme(v[1], lexbuf); + case 1: + return finish_buffer_stringlit(v, lexbuf); + case 2: + try{ + caml_call2(Stdlib_Buffer[12], v[1], 123); + buffer_space(v, lexbuf); + var ocaml_lex_state$1 = 478; + for(;;){ + var + ocaml_lex_state$2 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state$1, lexbuf); + if(0 === ocaml_lex_state$2){ + caml_call2(Stdlib_Buffer[12], v[1], 125); + throw caml_maybe_attach_backtrace(End_of_object, 1); + } + if(1 !== ocaml_lex_state$2){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$1 = ocaml_lex_state$2; + continue; + } + buffer_ident(v, lexbuf); + buffer_space(v, lexbuf); + buffer_colon(v, lexbuf); + buffer_space(v, lexbuf); + buffer_json(v, lexbuf); + b: + for(;;){ + buffer_space(v, lexbuf); + var ocaml_lex_state$3 = 480; + for(;;){ + var + ocaml_lex_state$4 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state$3, lexbuf); + if(3 < ocaml_lex_state$4 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$3 = ocaml_lex_state$4; + continue; + } + switch(ocaml_lex_state$4){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 44); break; + case 1: + caml_call2(Stdlib_Buffer[12], v[1], 125); + throw caml_maybe_attach_backtrace(End_of_object, 1); + case 2: + long_error(cst_Expected_or_but_found$11, v, lexbuf); break; + default: + custom_error(cst_Unexpected_end_of_input$41, v, lexbuf); + } + buffer_space(v, lexbuf); + buffer_ident(v, lexbuf); + buffer_space(v, lexbuf); + buffer_colon(v, lexbuf); + buffer_space(v, lexbuf); + buffer_json(v, lexbuf); + continue b; + } + } + } + } + catch(_lF_){ + var _lC_ = caml_wrap_exception(_lF_); + if(_lC_ === End_of_object) return 0; + throw caml_maybe_attach_backtrace(_lC_, 0); + } + case 3: + try{ + caml_call2(Stdlib_Buffer[12], v[1], 91); + buffer_space(v, lexbuf); + var ocaml_lex_state$5 = 485; + for(;;){ + var + ocaml_lex_state$6 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state$5, lexbuf); + if(0 === ocaml_lex_state$6){ + caml_call2(Stdlib_Buffer[12], v[1], 93); + throw caml_maybe_attach_backtrace(End_of_array, 1); + } + if(1 !== ocaml_lex_state$6){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$5 = ocaml_lex_state$6; + continue; + } + buffer_json(v, lexbuf); + b: + for(;;){ + buffer_space(v, lexbuf); + var ocaml_lex_state$7 = 487; + for(;;){ + var + ocaml_lex_state$8 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state$7, lexbuf); + if(3 < ocaml_lex_state$8 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$7 = ocaml_lex_state$8; + continue; + } + switch(ocaml_lex_state$8){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 44); break; + case 1: + caml_call2(Stdlib_Buffer[12], v[1], 93); + throw caml_maybe_attach_backtrace(End_of_array, 1); + case 2: + long_error(cst_Expected_or_but_found$12, v, lexbuf); break; + default: + custom_error(cst_Unexpected_end_of_input$42, v, lexbuf); + } + buffer_space(v, lexbuf); + buffer_json(v, lexbuf); + continue b; + } + } + } + } + catch(_lE_){ + var _lD_ = caml_wrap_exception(_lE_); + if(_lD_ === End_of_array) return 0; + throw caml_maybe_attach_backtrace(_lD_, 0); + } + case 4: + return long_error(cst_Invalid_token$6, v, lexbuf); + case 5: + return long_error(cst_Invalid_token$7, v, lexbuf); + case 6: + add_lexeme(v[1], lexbuf); continue a; + case 7: + caml_call2(Stdlib_Buffer[16], v[1], cst$34); + finish_buffer_comment(v, lexbuf); + continue a; + case 8: + caml_call2(Stdlib_Buffer[12], v[1], 10); + newline(v, lexbuf); + continue a; + case 9: + add_lexeme(v[1], lexbuf); continue a; + case 10: + return custom_error(cst_Unexpected_end_of_input$38, v, lexbuf); + default: return long_error(cst_Invalid_token$8, v, lexbuf); + } + } + } + } + function buffer_ident(v, lexbuf){ + var ocaml_lex_state = 466; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return finish_buffer_stringlit(v, lexbuf); + case 1: + return add_lexeme(v[1], lexbuf); + case 2: + return long_error(cst_Expected_string_or_identif$2, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$40, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function buffer_space(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 471; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + add_lexeme(v[1], lexbuf); newline(v, lexbuf); continue a; + case 1: + caml_call2(Stdlib_Buffer[16], v[1], cst$35); + finish_buffer_comment(v, lexbuf); + continue a; + case 2: + caml_call2(Stdlib_Buffer[12], v[1], 10); + newline(v, lexbuf); + continue a; + case 3: + add_lexeme(v[1], lexbuf); continue a; + default: return 0; + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function buffer_colon(v, lexbuf){ + var ocaml_lex_state = 499; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return caml_call2(Stdlib_Buffer[12], v[1], 58); + case 1: + return long_error(cst_Expected_but_found$13, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$43, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_buffer_comment(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 507; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return caml_call2(Stdlib_Buffer[16], v[1], cst$36); + case 1: + return long_error(cst_Unterminated_comment$0, v, lexbuf); + case 2: + caml_call2(Stdlib_Buffer[12], v[1], 10); + newline(v, lexbuf); + continue a; + default: add_lexeme(v[1], lexbuf); continue a; + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function junk(lexbuf){ + var ocaml_lex_state = 513; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) return caml_call1(lexeme, lexbuf); + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + read_junk[1] = junk; + function read_int8(v, lexbuf){ + var n = read_int(v, lexbuf); + if(0 <= n && 255 >= n) return caml_call1(Stdlib[29], n); + return lexer_error(cst_Int8_overflow, v, lexbuf); + } + function read_list(read_cell, v, lexbuf){ + var _lB_ = read_list_rev(read_cell, v, lexbuf); + return caml_call1(Stdlib_List[9], _lB_); + } + function read_array(read_cell, v, lexbuf){ + var l = read_list_rev(read_cell, v, lexbuf); + if(! l) return [0]; + var + tl = l[2], + x = l[1], + len = caml_call1(Stdlib_List[1], l), + a = caml_make_vect(len, x), + r = [0, tl], + _ly_ = len - 2 | 0; + if(_ly_ >= 0){ + var i = _ly_; + for(;;){ + var _lz_ = caml_call1(Stdlib_List[5], r[1]); + caml_check_bound(a, i)[1 + i] = _lz_; + r[1] = caml_call1(Stdlib_List[6], r[1]); + var _lA_ = i - 1 | 0; + if(0 !== i){var i = _lA_; continue;} + break; + } + } + return a; + } + function read_fields(read_field, init_acc, v){ + return function(_lx_){ + return read_abstract_fields(read_ident, read_field, init_acc, v, _lx_);}; + } + function from_lexbuf(v, opt, lexbuf){ + if(opt) var sth = opt[1], stream = sth; else var stream = 0; + read_space(v, lexbuf); + if(read_eof(lexbuf)) throw caml_maybe_attach_backtrace(End_of_input, 1); + var x = read_json(v, lexbuf); + if(1 - stream){ + read_space(v, lexbuf); + if(1 - read_eof(lexbuf)) + long_error(cst_Junk_after_end_of_JSON_val, v, lexbuf); + } + return x; + } + function from_string$0(buf, fname, lnum, s){ + try{ + var + lexbuf = caml_call2(from_string, 0, s), + v = init_lexer(buf, fname, lnum, 0), + _lv_ = from_lexbuf(v, 0, lexbuf); + return _lv_; + } + catch(_lw_){ + var _lu_ = caml_wrap_exception(_lw_); + if(_lu_ === End_of_input) return json_error(cst_Blank_input_data); + throw caml_maybe_attach_backtrace(_lu_, 0); + } + } + function from_channel$0(buf, fname, lnum, ic){ + try{ + var + lexbuf = caml_call2(from_channel, 0, ic), + v = init_lexer(buf, fname, lnum, 0), + _ls_ = from_lexbuf(v, 0, lexbuf); + return _ls_; + } + catch(_lt_){ + var _lr_ = caml_wrap_exception(_lt_); + if(_lr_ === End_of_input) return json_error(cst_Blank_input_data$0); + throw caml_maybe_attach_backtrace(_lr_, 0); + } + } + function from_file(buf, fname, lnum, file){ + var ic = caml_call1(Stdlib[79], file); + try{ + var x = from_channel$0(buf, fname, lnum, ic); + caml_call1(Stdlib[93], ic); + return x; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + caml_call1(Stdlib[94], ic); + throw caml_maybe_attach_backtrace(e, 0); + } + } + var Finally = [248, cst_Yojson_Basic_Finally, caml_fresh_oo_id(0)]; + function seq_from_lexbuf(v, opt, lexbuf){ + if(opt) + var sth = opt[1], fin = sth; + else + var fin = function(param){return 0;}; + function f(param){ + try{var _lq_ = [0, from_lexbuf(v, stream, lexbuf), f]; return _lq_;} + catch(e$0){ + var e = caml_wrap_exception(e$0); + if(e === End_of_input){caml_call1(fin, 0); return 0;} + try{caml_call1(fin, 0);} + catch(fin_e$0){ + var fin_e = caml_wrap_exception(fin_e$0); + throw caml_maybe_attach_backtrace([0, Finally, e, fin_e], 1); + } + throw caml_maybe_attach_backtrace(e, 0); + } + } + return f; + } + function seq_from_string(buf, fname, lnum, s){ + var v = init_lexer(buf, fname, lnum, 0); + return seq_from_lexbuf(v, 0, caml_call2(from_string, 0, s)); + } + function seq_from_channel(buf, fin, fname, lnum, ic){ + var + lexbuf = caml_call2(from_channel, 0, ic), + v = init_lexer(buf, fname, lnum, 0); + return seq_from_lexbuf(v, fin, lexbuf); + } + function seq_from_file(buf, fname, lnum, file){ + var ic = caml_call1(Stdlib[79], file); + function fin(param){return caml_call1(Stdlib[93], ic);} + var + fname$0 = fname || [0, file], + lexbuf = caml_call2(from_channel, 0, ic), + v = init_lexer(buf, fname$0, lnum, 0); + return seq_from_lexbuf(v, [0, fin], lexbuf); + } + function lineseq_from_channel(buf, opt, fname, _li_, ic){ + if(opt) + var sth = opt[1], fin = sth; + else + var fin = function(param){return 0;}; + if(_li_) var sth$0 = _li_[1], lnum0 = sth$0; else var lnum0 = 1; + var buf$0 = buf || [0, caml_call1(Stdlib_Buffer[1], 256)]; + function f(lnum, param){ + try{ + var + line = caml_call1(Stdlib[83], ic), + _ll_ = lnum + 1 | 0, + _lm_ = function(_lp_){return f(_ll_, _lp_);}, + _ln_ = + [0, + [0, 826371656, from_string$0(buf$0, fname, [0, lnum], line)], + _lm_]; + return _ln_; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + if(e === Stdlib[12]){caml_call1(fin, 0); return 0;} + var _lk_ = lnum + 1 | 0; + return [0, [0, 3458171, e], function(_lo_){return f(_lk_, _lo_);}]; + } + } + return function(_lj_){return f(lnum0, _lj_);}; + } + function lineseq_from_file(buf, fname, lnum, file){ + var ic = caml_call1(Stdlib[79], file); + function fin(param){return caml_call1(Stdlib[93], ic);} + var fname$0 = fname || [0, file]; + return lineseq_from_channel(buf, [0, fin], fname$0, lnum, ic); + } + function prettify(std, s){ + return pretty_to_string$0(std, from_string$0(0, 0, 0, s)); + } + function compact(std, s){ + return to_string$0(0, 0, 0, 0, from_string$0(0, 0, 0, s)); + } + var + Type_error = [248, cst_Yojson_Basic_Util_Type_err, caml_fresh_oo_id(0)]; + function typerr(msg, js){ + if(typeof js === "number") + var _lh_ = cst_null$3; + else + var + _lg_ = js[1], + _lh_ = + 708012133 <= _lg_ + ? 726928360 + === _lg_ + ? cst_tuple + : 848054398 + <= _lg_ + ? 963043957 <= _lg_ ? cst_object : cst_array + : 737456202 <= _lg_ ? cst_bool : cst_variant + : 3654863 + <= _lg_ + ? 365180284 <= _lg_ ? cst_float : cst_int + : -752863768 <= _lg_ ? cst_intlit : cst_string; + throw caml_maybe_attach_backtrace + ([0, Type_error, caml_call2(Stdlib[28], msg, _lh_), js], 1); + } + var Undefined = [248, cst_Yojson_Basic_Util_Undefine, caml_fresh_oo_id(0)]; + function member(name, js){ + if(typeof js !== "number" && 963043957 === js[1]){ + var obj = js[2]; + try{var _ld_ = caml_call2(Stdlib_List[46], name, obj); return _ld_;} + catch(_lf_){ + var _lc_ = caml_wrap_exception(_lf_); + if(_lc_ === Stdlib[8]) return 870828711; + throw caml_maybe_attach_backtrace(_lc_, 0); + } + } + var _le_ = caml_call2(Stdlib[28], name, cst_of_non_object_type); + return typerr(caml_call2(Stdlib[28], cst_Can_t_get_member, _le_), js); + } + function index(i, js){ + if(typeof js !== "number" && 848054398 === js[1]){ + var + l = js[2], + len = caml_call1(Stdlib_List[1], l), + wrapped_index = 0 <= i ? i : len + i | 0; + if(0 <= wrapped_index && len > wrapped_index) + return caml_call2(Stdlib_List[7], l, wrapped_index); + var + _la_ = caml_call1(Stdlib[33], i), + _lb_ = caml_call2(Stdlib[28], _la_, cst_out_of_bounds); + throw caml_maybe_attach_backtrace + ([0, Undefined, caml_call2(Stdlib[28], cst_Index, _lb_), js], 1); + } + var + _k__ = caml_call1(Stdlib[33], i), + _k$_ = caml_call2(Stdlib[28], _k__, cst_of_non_array_type); + return typerr(caml_call2(Stdlib[28], cst_Can_t_get_index, _k$_), js); + } + function map(f, js){ + if(typeof js !== "number" && 848054398 === js[1]){ + var l = js[2]; + return [0, 848054398, caml_call2(Stdlib_List[19], f, l)]; + } + return typerr(cst_Can_t_map_function_over_no, js); + } + function to_assoc(js){ + if(typeof js !== "number" && 963043957 === js[1]){var obj = js[2]; return obj;} + return typerr(cst_Expected_object_got, js); + } + function to_option(f, x){ + return 870828711 === x ? 0 : [0, caml_call1(f, x)]; + } + function to_bool(js){ + if(typeof js !== "number" && 737456202 === js[1]){var b = js[2]; return b;} + return typerr(cst_Expected_bool_got, js); + } + function to_bool_option(js){ + if(typeof js === "number"){ + if(870828711 === js) return 0; + } + else if(737456202 === js[1]){var b = js[2]; return [0, b];} + return typerr(cst_Expected_bool_or_null_got, js); + } + function to_number(js){ + if(typeof js !== "number"){ + var _k9_ = js[1]; + if(3654863 === _k9_){var i = js[2]; return i;} + if(365180284 === _k9_){var f = js[2]; return f;} + } + return typerr(cst_Expected_number_got, js); + } + function to_number_option(js){ + if(typeof js === "number"){ + if(870828711 === js) return 0; + } + else{ + var _k8_ = js[1]; + if(3654863 === _k8_){var i = js[2]; return [0, i];} + if(365180284 === _k8_){var f = js[2]; return [0, f];} + } + return typerr(cst_Expected_number_or_null_go, js); + } + function to_float(js){ + if(typeof js !== "number" && 365180284 === js[1]){var f = js[2]; return f;} + return typerr(cst_Expected_float_got, js); + } + function to_float_option(js){ + if(typeof js === "number"){ + if(870828711 === js) return 0; + } + else if(365180284 === js[1]){var f = js[2]; return [0, f];} + return typerr(cst_Expected_float_or_null_got, js); + } + function to_int(js){ + if(typeof js !== "number" && 3654863 === js[1]){var i = js[2]; return i;} + return typerr(cst_Expected_int_got, js); + } + function to_int_option(js){ + if(typeof js === "number"){ + if(870828711 === js) return 0; + } + else if(3654863 === js[1]){var i = js[2]; return [0, i];} + return typerr(cst_Expected_int_or_null_got, js); + } + function to_list(js){ + if(typeof js !== "number" && 848054398 === js[1]){var l = js[2]; return l;} + return typerr(cst_Expected_array_got, js); + } + function to_string$1(js){ + if(typeof js !== "number" && -976970511 === js[1]){var s = js[2]; return s;} + return typerr(cst_Expected_string_got, js); + } + function to_string_option(js){ + if(typeof js === "number"){ + if(870828711 === js) return 0; + } + else if(-976970511 === js[1]){var s = js[2]; return [0, s];} + return typerr(cst_Expected_string_or_null_go, js); + } + function convert_each(f, js){ + if(typeof js !== "number" && 848054398 === js[1]){ + var l = js[2]; + return caml_call2(Stdlib_List[19], f, l); + } + return typerr(cst_Can_t_convert_each_element, js); + } + function filter_map(f, l$0){ + var acc = 0, l = l$0; + for(;;){ + if(! l) return caml_call1(Stdlib_List[9], acc); + var tl = l[2], x = l[1], match = caml_call1(f, x); + if(match){ + var y = match[1], acc$0 = [0, y, acc], acc = acc$0, l = tl; + continue; + } + var l = tl; + } + } + function flatten(l$0){ + var acc = 0, l = l$0; + for(;;){ + if(! l) return caml_call1(Stdlib_List[9], acc); + var tl = l[2], x = l[1]; + if(typeof x !== "number" && 848054398 === x[1]){ + var + l2 = x[2], + acc$0 = caml_call2(Stdlib_List[12], l2, acc), + acc = acc$0, + l = tl; + continue; + } + var l = tl; + } + } + function filter_index(i, l){ + return filter_map + (function(param){ + if(typeof param !== "number" && 848054398 === param[1]){ + var l = param[2]; + try{ + var _k6_ = [0, caml_call2(Stdlib_List[7], l, i)]; + return _k6_; + } + catch(_k7_){return 0;} + } + return 0; + }, + l); + } + function filter_list(l){ + return filter_map + (function(param){ + if(typeof param !== "number" && 848054398 === param[1]){var l = param[2]; return [0, l];} + return 0; + }, + l); + } + function filter_member(k, l){ + return filter_map + (function(param){ + if(typeof param !== "number" && 963043957 === param[1]){ + var l = param[2]; + try{ + var _k4_ = [0, caml_call2(Stdlib_List[46], k, l)]; + return _k4_; + } + catch(_k5_){return 0;} + } + return 0; + }, + l); + } + function filter_assoc(l){ + return filter_map + (function(param){ + if(typeof param !== "number" && 963043957 === param[1]){var l = param[2]; return [0, l];} + return 0; + }, + l); + } + function filter_bool(l){ + return filter_map + (function(param){ + if(typeof param !== "number" && 737456202 === param[1]){var x = param[2]; return [0, x];} + return 0; + }, + l); + } + function filter_int(l){ + return filter_map + (function(param){ + if(typeof param !== "number" && 3654863 === param[1]){var x = param[2]; return [0, x];} + return 0; + }, + l); + } + function filter_float(l){ + return filter_map + (function(param){ + if(typeof param !== "number" && 365180284 === param[1]){var x = param[2]; return [0, x];} + return 0; + }, + l); + } + function filter_number(l){ + return filter_map + (function(param){ + if(typeof param !== "number"){ + var _k3_ = param[1]; + if(3654863 === _k3_){var x = param[2]; return [0, x];} + if(365180284 === _k3_){var x$0 = param[2]; return [0, x$0];} + } + return 0; + }, + l); + } + function filter_string(l){ + return filter_map + (function(param){ + if(typeof param !== "number" && -976970511 === param[1]){var x = param[2]; return [0, x];} + return 0; + }, + l); + } + function keys(o){ + var _k1_ = to_assoc(o); + function _k2_(param){var key = param[1]; return key;} + return caml_call1(caml_call1(Stdlib_List[19], _k2_), _k1_); + } + function values(o){ + var _kZ_ = to_assoc(o); + function _k0_(param){var value = param[2]; return value;} + return caml_call1(caml_call1(Stdlib_List[19], _k0_), _kZ_); + } + function combine(first, second){ + if + (typeof first !== "number" + && + 963043957 === first[1] + && typeof second !== "number" && 963043957 === second[1]){ + var b = second[2], a = first[2]; + return [0, 963043957, caml_call2(Stdlib[37], a, b)]; + } + throw caml_maybe_attach_backtrace + ([0, Stdlib[6], cst_Expected_two_objects_check], 1); + } + function to_basic(x){ + if(typeof x !== "number"){ + var _kU_ = x[1]; + if(726928360 <= _kU_){ + if(737456202 !== _kU_){ + if(963043957 <= _kU_){ + var + l = x[2], + _kV_ = + function(param){ + var v = param[2], k = param[1]; + return [0, k, to_basic(v)]; + }, + _kW_ = caml_call2(Stdlib_List[21], _kV_, l); + return [0, 963043957, caml_call1(Stdlib_List[9], _kW_)]; + } + var l$0 = x[2], _kX_ = caml_call2(Stdlib_List[21], to_basic, l$0); + return [0, 848054398, caml_call1(Stdlib_List[9], _kX_)]; + } + } + else{ + if(-752863768 === _kU_){var s = x[2]; return [0, -976970511, s];} + if(708012133 <= _kU_){ + var _kY_ = x[2], match = _kY_[2], k = _kY_[1]; + if(! match) return [0, -976970511, k]; + var v = match[1]; + return [0, 848054398, [0, [0, -976970511, k], [0, to_basic(v), 0]]]; + } + } + } + return x; + } + function hex$2(n){ + var _kT_ = 10 <= n ? n + 87 | 0 : n + 48 | 0; + return caml_call1(Stdlib_Char[1], _kT_); + } + function write_special$1(src, start, stop, ob, str){ + caml_call4(Stdlib_Buffer[18], ob, src, start[1], stop - start[1] | 0); + caml_call2(Stdlib_Buffer[16], ob, str); + start[1] = stop + 1 | 0; + return 0; + } + function write_string$1(ob, src){ + caml_call2(Stdlib_Buffer[12], ob, 34); + var start = [0, 0], _kR_ = caml_ml_string_length(src) - 1 | 0, _kQ_ = 0; + if(_kR_ >= 0){ + var stop = _kQ_; + for(;;){ + var c = caml_string_get(src, stop); + if(92 === c) + write_special$1(src, start, stop, ob, cst$37); + else{ + var switch$0 = 0; + if(35 <= c){ + if(127 !== c) switch$0 = 2; + } + else if(8 <= c){ + var switch$1 = 0; + switch(c - 8 | 0){ + case 0: + write_special$1(src, start, stop, ob, cst_b$1); break; + case 1: + write_special$1(src, start, stop, ob, cst_t$1); break; + case 2: + write_special$1(src, start, stop, ob, cst_n$1); break; + case 4: + write_special$1(src, start, stop, ob, cst_f$1); break; + case 5: + write_special$1(src, start, stop, ob, cst_r$1); break; + case 26: + write_special$1(src, start, stop, ob, cst$38); break; + case 24: + case 25: + switch$0 = 2; switch$1 = 1; break; + default: switch$1 = 1; + } + if(! switch$1) switch$0 = 1; + } + switch(switch$0){ + case 2: break; + case 0: + caml_call4 + (Stdlib_Buffer[18], ob, src, start[1], stop - start[1] | 0); + caml_call2(Stdlib_Buffer[16], ob, cst_u00$1); + var _kO_ = hex$2(c >>> 4 | 0); + caml_call2(Stdlib_Buffer[12], ob, _kO_); + var _kP_ = hex$2(c & 15); + caml_call2(Stdlib_Buffer[12], ob, _kP_); + start[1] = stop + 1 | 0; + break; + } + } + var _kS_ = stop + 1 | 0; + if(_kR_ !== stop){var stop = _kS_; continue;} + break; + } + } + try{ + caml_call4 + (Stdlib_Buffer[18], + ob, + src, + start[1], + caml_ml_string_length(src) - start[1] | 0); + } + catch(exc$0){ + var exc = caml_wrap_exception(exc$0); + caml_call4 + (Stdlib_Printf[3], + _bU_, + src, + start[1], + caml_ml_string_length(src) - start[1] | 0); + throw caml_maybe_attach_backtrace(exc, 0); + } + return caml_call2(Stdlib_Buffer[12], ob, 34); + } + function json_string_of_string$1(s){ + var ob = caml_call1(Stdlib_Buffer[1], 10); + write_string$1(ob, s); + return caml_call1(Stdlib_Buffer[2], ob); + } + function write_null$1(ob, param){ + return caml_call2(Stdlib_Buffer[16], ob, cst_null$4); + } + function write_bool$1(ob, x){ + var _kN_ = x ? cst_true$1 : cst_false$1; + return caml_call2(Stdlib_Buffer[16], ob, _kN_); + } + var + _bV_ = caml_ml_string_length(caml_call1(Stdlib[33], Stdlib[20])), + _bW_ = caml_ml_string_length(caml_call1(Stdlib[33], Stdlib[19])); + caml_call2(Stdlib[17], _bW_, _bV_); + function write_digits$1(s, x){ + if(0 === x) return 0; + var d = x % 10 | 0; + write_digits$1(s, x / 10 | 0); + var + n = caml_call1(Stdlib[18], d), + _kM_ = caml_call1(Stdlib_Char[1], n + 48 | 0); + return caml_call2(Stdlib_Buffer[12], s, _kM_); + } + function write_int$1(ob, x){ + return 0 < x + ? write_digits$1(ob, x) + : 0 + <= x + ? caml_call2(Stdlib_Buffer[12], ob, 48) + : (caml_call2(Stdlib_Buffer[12], ob, 45), write_digits$1(ob, x)); + } + function float_needs_period$1(s){ + try{ + var _kI_ = caml_ml_string_length(s) - 1 | 0, _kH_ = 0; + if(_kI_ >= 0){ + var i = _kH_; + for(;;){ + var match = caml_string_get(s, i), switch$0 = 0; + if(48 <= match){ + if(58 > match) switch$0 = 1; + } + else if(45 === match) switch$0 = 1; + if(! switch$0) throw caml_maybe_attach_backtrace(Stdlib[3], 1); + var _kK_ = i + 1 | 0; + if(_kI_ !== i){var i = _kK_; continue;} + break; + } + } + var _kJ_ = 1; + return _kJ_; + } + catch(_kL_){ + var _kG_ = caml_wrap_exception(_kL_); + if(_kG_ === Stdlib[3]) return 0; + throw caml_maybe_attach_backtrace(_kG_, 0); + } + } + function write_float$1(ob, x){ + var match = caml_classify_float(x); + if(3 === match){ + var _kE_ = 0. < x ? cst_Infinity$7 : cst_Infinity$8; + return caml_call2(Stdlib_Buffer[16], ob, _kE_); + } + if(4 <= match) return caml_call2(Stdlib_Buffer[16], ob, cst_NaN$3); + var + s1 = caml_call2(Stdlib_Printf[4], _bX_, x), + s = + caml_float_of_string(s1) == x + ? s1 + : caml_call2(Stdlib_Printf[4], _bY_, x); + caml_call2(Stdlib_Buffer[16], ob, s); + var _kF_ = float_needs_period$1(s); + return _kF_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0$5) : _kF_; + } + function write_normal_float_prec$1(significant_figures, ob, x){ + var switcher = significant_figures - 1 | 0; + if(15 < switcher >>> 0) + var s = caml_call2(Stdlib_Printf[4], _bZ_, x); + else + switch(switcher){ + case 0: + var s = caml_call2(Stdlib_Printf[4], _b0_, x); break; + case 1: + var s = caml_call2(Stdlib_Printf[4], _b1_, x); break; + case 2: + var s = caml_call2(Stdlib_Printf[4], _b2_, x); break; + case 3: + var s = caml_call2(Stdlib_Printf[4], _b3_, x); break; + case 4: + var s = caml_call2(Stdlib_Printf[4], _b4_, x); break; + case 5: + var s = caml_call2(Stdlib_Printf[4], _b5_, x); break; + case 6: + var s = caml_call2(Stdlib_Printf[4], _b6_, x); break; + case 7: + var s = caml_call2(Stdlib_Printf[4], _b7_, x); break; + case 8: + var s = caml_call2(Stdlib_Printf[4], _b8_, x); break; + case 9: + var s = caml_call2(Stdlib_Printf[4], _b9_, x); break; + case 10: + var s = caml_call2(Stdlib_Printf[4], _b__, x); break; + case 11: + var s = caml_call2(Stdlib_Printf[4], _b$_, x); break; + case 12: + var s = caml_call2(Stdlib_Printf[4], _ca_, x); break; + case 13: + var s = caml_call2(Stdlib_Printf[4], _cb_, x); break; + case 14: + var s = caml_call2(Stdlib_Printf[4], _cc_, x); break; + default: var s = caml_call2(Stdlib_Printf[4], _cd_, x); + } + caml_call2(Stdlib_Buffer[16], ob, s); + var _kD_ = float_needs_period$1(s); + return _kD_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0$6) : _kD_; + } + function write_float_prec$1(significant_figures, ob, x){ + var match = caml_classify_float(x); + if(3 !== match) + return 4 <= match + ? caml_call2(Stdlib_Buffer[16], ob, cst_NaN$4) + : write_normal_float_prec$1(significant_figures, ob, x); + var _kC_ = 0. < x ? cst_Infinity$9 : cst_Infinity$10; + return caml_call2(Stdlib_Buffer[16], ob, _kC_); + } + function write_std_float$1(ob, x){ + var match = caml_classify_float(x); + if(3 === match){ + var + _kA_ = + 0. < x + ? cst_Infinity_value_not_allowed$7 + : cst_Infinity_value_not_allowed$8; + return json_error(_kA_); + } + if(4 <= match) return json_error(cst_NaN_value_not_allowed_in_s$3); + var + s1 = caml_call2(Stdlib_Printf[4], _ce_, x), + s = + caml_float_of_string(s1) == x + ? s1 + : caml_call2(Stdlib_Printf[4], _cf_, x); + caml_call2(Stdlib_Buffer[16], ob, s); + var _kB_ = float_needs_period$1(s); + return _kB_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0$7) : _kB_; + } + function write_std_float_prec$1(significant_figures, ob, x){ + var match = caml_classify_float(x); + if(3 !== match) + return 4 <= match + ? json_error(cst_NaN_value_not_allowed_in_s$4) + : write_normal_float_prec$1(significant_figures, ob, x); + var + _kz_ = + 0. < x + ? cst_Infinity_value_not_allowed$9 + : cst_Infinity_value_not_allowed$10; + return json_error(_kz_); + } + var write_intlit$0 = Stdlib_Buffer[16]; + function iter2$1(f_elt, f_sep, x, param$0){ + if(! param$0) return 0; + var l$0 = param$0[2], y$0 = param$0[1]; + caml_call2(f_elt, x, y$0); + var param = l$0; + for(;;){ + if(! param) return 0; + var l = param[2], y = param[1]; + caml_call1(f_sep, x); + caml_call2(f_elt, x, y); + var param = l; + } + } + function f_sep$1(ob){return caml_call2(Stdlib_Buffer[12], ob, 44);} + function write_variant$0(ob, s, o){ + caml_call2(Stdlib_Buffer[12], ob, 60); + write_string$1(ob, s); + if(o){ + var x = o[1]; + caml_call2(Stdlib_Buffer[12], ob, 58); + write_json$1(ob, x); + } + return caml_call2(Stdlib_Buffer[12], ob, 62); + } + function write_tuple$0(ob, l){ + caml_call2(Stdlib_Buffer[12], ob, 40); + iter2$1(write_json$1, f_sep$1, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 41); + } + function write_list$1(ob, l){ + caml_call2(Stdlib_Buffer[12], ob, 91); + iter2$1(write_json$1, f_sep$1, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + function write_assoc$1(ob, l){ + function f_elt(ob, param){ + var x = param[2], s = param[1]; + write_string$1(ob, s); + caml_call2(Stdlib_Buffer[12], ob, 58); + return write_json$1(ob, x); + } + caml_call2(Stdlib_Buffer[12], ob, 123); + iter2$1(f_elt, f_sep$1, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 125); + } + function write_json$1(ob, x){ + if(typeof x === "number") return write_null$1(ob, 0); + var _ky_ = x[1]; + if(708012133 <= _ky_){ + if(726928360 === _ky_){var l = x[2]; return write_tuple$0(ob, l);} + if(848054398 <= _ky_){ + if(963043957 <= _ky_){var l$0 = x[2]; return write_assoc$1(ob, l$0);} + var l$1 = x[2]; + return write_list$1(ob, l$1); + } + if(737456202 <= _ky_){var b = x[2]; return write_bool$1(ob, b);} + var match = x[2], o = match[2], s = match[1]; + return write_variant$0(ob, s, o); + } + if(3654863 <= _ky_){ + if(365180284 <= _ky_){var f = x[2]; return write_float$1(ob, f);} + var i = x[2]; + return write_int$1(ob, i); + } + if(-752863768 <= _ky_){ + var s$0 = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s$0); + } + var s$1 = x[2]; + return write_string$1(ob, s$1); + } + function write_std_variant$0(ob, s, o){ + if(! o) return write_string$1(ob, s); + var x = o[1]; + caml_call2(Stdlib_Buffer[12], ob, 91); + write_string$1(ob, s); + caml_call2(Stdlib_Buffer[12], ob, 44); + write_std_json$1(ob, x); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + function write_std_tuple$0(ob, l){ + caml_call2(Stdlib_Buffer[12], ob, 91); + iter2$1(write_std_json$1, f_sep$1, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + function write_std_json$1(ob, x){ + if(typeof x === "number") return write_null$1(ob, 0); + var _kx_ = x[1]; + if(708012133 <= _kx_){ + if(726928360 === _kx_){var l = x[2]; return write_std_tuple$0(ob, l);} + if(848054398 <= _kx_){ + if(963043957 <= _kx_){ + var + l$0 = x[2], + f_elt = + function(ob, param){ + var x = param[2], s = param[1]; + write_string$1(ob, s); + caml_call2(Stdlib_Buffer[12], ob, 58); + return write_std_json$1(ob, x); + }; + caml_call2(Stdlib_Buffer[12], ob, 123); + iter2$1(f_elt, f_sep$1, ob, l$0); + return caml_call2(Stdlib_Buffer[12], ob, 125); + } + var l$1 = x[2]; + caml_call2(Stdlib_Buffer[12], ob, 91); + iter2$1(write_std_json$1, f_sep$1, ob, l$1); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + if(737456202 <= _kx_){var b = x[2]; return write_bool$1(ob, b);} + var match = x[2], o = match[2], s = match[1]; + return write_std_variant$0(ob, s, o); + } + if(3654863 <= _kx_){ + if(365180284 <= _kx_){var f = x[2]; return write_std_float$1(ob, f);} + var i = x[2]; + return write_int$1(ob, i); + } + if(-752863768 <= _kx_){ + var s$0 = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s$0); + } + var s$1 = x[2]; + return write_string$1(ob, s$1); + } + function to_buffer$1(opt, _kw_, ob, x){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$39; + if(_kw_) var sth$0 = _kw_[1], std = sth$0; else var std = 0; + if(std) write_std_json$1(ob, x); else write_json$1(ob, x); + return caml_call2(Stdlib_Buffer[16], ob, suf); + } + function to_string$2(buf, opt, _kv_, std, x){ + if(opt) var sth = opt[1], len = sth; else var len = 256; + if(_kv_) var sth$0 = _kv_[1], suf = sth$0; else var suf = cst$40; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + to_buffer$1([0, suf], std, ob$0, x); + var s = caml_call1(Stdlib_Buffer[2], ob$0); + caml_call1(Stdlib_Buffer[8], ob$0); + return s; + } + function to_channel$1(buf, opt, _ku_, std, oc, x){ + if(opt) var sth = opt[1], len = sth; else var len = 4096; + if(_ku_) var sth$0 = _ku_[1], suf = sth$0; else var suf = cst$41; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + to_buffer$1([0, suf], std, ob$0, x); + caml_call2(Stdlib_Buffer[10], oc, ob$0); + return caml_call1(Stdlib_Buffer[8], ob$0); + } + function to_output$1(buf, opt, _ks_, std, out, x){ + if(opt) var sth = opt[1], len = sth; else var len = 4096; + if(_ks_) var sth$0 = _ks_[1], suf = sth$0; else var suf = cst$42; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + to_buffer$1([0, suf], std, ob$0, x); + var _kt_ = caml_call1(Stdlib_Buffer[7], ob$0); + caml_call4 + (caml_get_public_method(out, 209784577, 3), + out, + caml_call1(Stdlib_Buffer[2], ob$0), + 0, + _kt_); + return caml_call1(Stdlib_Buffer[8], ob$0); + } + function to_file$1(len, std, opt, file, x){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$43; + var oc = caml_call1(Stdlib[60], file); + try{ + to_channel$1(0, len, [0, suf], std, oc, x); + var _kr_ = caml_call1(Stdlib[76], oc); + return _kr_; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + caml_call1(Stdlib[77], oc); + throw caml_maybe_attach_backtrace(e, 0); + } + } + function seq_to_buffer$1(opt, std, ob, st){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$44; + var _ko_ = [0, suf]; + function _kp_(_kq_){return to_buffer$1(_ko_, std, ob, _kq_);} + return caml_call2(Stdlib_Seq[4], _kp_, st); + } + function seq_to_string$1(buf, opt, _kn_, std, st){ + if(opt) var sth = opt[1], len = sth; else var len = 256; + if(_kn_) var sth$0 = _kn_[1], suf = sth$0; else var suf = cst$45; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + seq_to_buffer$1([0, suf], std, ob$0, st); + var s = caml_call1(Stdlib_Buffer[2], ob$0); + caml_call1(Stdlib_Buffer[8], ob$0); + return s; + } + function seq_to_channel$1(buf, opt, _kl_, std, oc, seq){ + if(opt) var sth = opt[1], len = sth; else var len = 2096; + if(_kl_) var sth$0 = _kl_[1], suf = sth$0; else var suf = cst$46; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + function _km_(json){ + to_buffer$1([0, suf], std, ob$0, json); + caml_call2(Stdlib_Buffer[10], oc, ob$0); + return caml_call1(Stdlib_Buffer[8], ob$0); + } + return caml_call2(Stdlib_Seq[4], _km_, seq); + } + function seq_to_file$1(len, opt, std, file, st){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$47; + var oc = caml_call1(Stdlib[60], file); + try{ + seq_to_channel$1(0, len, [0, suf], std, oc, st); + var _kk_ = caml_call1(Stdlib[76], oc); + return _kk_; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + caml_call1(Stdlib[77], oc); + throw caml_maybe_attach_backtrace(e, 0); + } + } + function sort$1(x){ + if(typeof x !== "number"){ + var _kc_ = x[1]; + if(726928361 <= _kc_){ + if(848054398 === _kc_){ + var l = x[2], _kd_ = caml_call2(Stdlib_List[21], sort$1, l); + return [0, 848054398, caml_call1(Stdlib_List[9], _kd_)]; + } + if(963043957 === _kc_){ + var + l$0 = x[2], + _ke_ = + function(param){ + var v = param[2], k = param[1]; + return [0, k, sort$1(v)]; + }, + _kf_ = caml_call2(Stdlib_List[21], _ke_, l$0), + l$1 = caml_call1(Stdlib_List[9], _kf_), + _kg_ = + function(param, _kj_){ + var b = _kj_[1], a = param[1]; + return caml_call2(Stdlib_String[9], a, b); + }; + return [0, 963043957, caml_call2(Stdlib_List[57], _kg_, l$1)]; + } + } + else if(708012133 === _kc_){ + var _kh_ = x[2], match = _kh_[2]; + if(match){ + var v = match[1], k = _kh_[1], v$0 = sort$1(v); + return v === v$0 ? x : [0, 708012133, [0, k, [0, v$0]]]; + } + } + else if(726928360 <= _kc_){ + var l$2 = x[2], _ki_ = caml_call2(Stdlib_List[21], sort$1, l$2); + return [0, 726928360, caml_call1(Stdlib_List[9], _ki_)]; + } + } + return x; + } + function pp_list$1(sep, ppx, out, l){ + function pp_sep(out, param){ + return caml_call3(Stdlib_Format[129], out, _cg_, sep); + } + return caml_call4(Stdlib_Format[123], [0, pp_sep], ppx, out, l); + } + function is_atom$1(x){ + if(typeof x !== "number"){ + var _kb_ = x[1], switch$0 = 0; + if(737456202 <= _kb_){ + if(848054398 === _kb_){ + if(x[2]) switch$0 = 1; + } + else if(963043957 <= _kb_ && x[2]) switch$0 = 1; + } + else + if(708012133 === _kb_){ + if(x[2][2]) switch$0 = 1; + } + else if(726928360 <= _kb_ && x[2]) switch$0 = 1; + if(switch$0) return 0; + } + return 1; + } + function format$1(inside_box, std, out, x){ + var x$0 = x; + for(;;){ + if(typeof x$0 === "number") + return caml_call2(Stdlib_Format[13], out, cst_null$5); + var _jy_ = x$0[1]; + if(708012133 > _jy_){ + if(3654863 <= _jy_){ + if(365180284 > _jy_){ + var x$6 = x$0[2], _jx_ = caml_call1(Stdlib[33], x$6); + return caml_call2(Stdlib_Format[13], out, _jx_); + } + var x$5 = x$0[2]; + if(std){ + var ob$0 = caml_call1(Stdlib_Buffer[1], 20); + write_std_float$1(ob$0, x$5); + var s$0 = caml_call1(Stdlib_Buffer[2], ob$0); + } + else{ + var ob = caml_call1(Stdlib_Buffer[1], 20); + write_float$1(ob, x$5); + var s$0 = caml_call1(Stdlib_Buffer[2], ob); + } + return caml_call2(Stdlib_Format[13], out, s$0); + } + if(-752863768 <= _jy_){ + var s$1 = x$0[2]; + return caml_call2(Stdlib_Format[13], out, s$1); + } + var s$2 = x$0[2], _jR_ = json_string_of_string$1(s$2); + return caml_call2(Stdlib_Format[13], out, _jR_); + } + if(726928360 === _jy_){ + var l = x$0[2]; + if(std){var x$1 = [0, 848054398, l], x$0 = x$1; continue;} + if(0 === l) return caml_call2(Stdlib_Format[13], out, cst$48); + if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _ch_); + var + _jz_ = 0, + _jA_ = function(_j$_, _ka_){return format$1(_jz_, std, _j$_, _ka_);}, + _jB_ = + function(_j9_, _j__){return pp_list$1(cst$49, _jA_, _j9_, _j__);}; + caml_call4(Stdlib_Format[129], out, _ci_, _jB_, l); + var _jC_ = 1 - inside_box; + return _jC_ ? caml_call2(Stdlib_Format[129], out, _cj_) : _jC_; + } + if(848054398 <= _jy_){ + if(963043957 <= _jy_){ + var l$0 = x$0[2]; + if(! l$0) return caml_call2(Stdlib_Format[13], out, cst$51); + if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _ck_); + var + _jD_ = + function(out, param){ + var x = param[2], name = param[1], _j4_ = 1; + function _j5_(_j7_, _j8_){return format$1(_j4_, std, _j7_, _j8_);} + var _j6_ = json_string_of_string$1(name); + return caml_call5(Stdlib_Format[129], out, _ct_, _j6_, _j5_, x); + }, + _jE_ = + function(_j2_, _j3_){return pp_list$1(cst$50, _jD_, _j2_, _j3_);}; + caml_call4(Stdlib_Format[129], out, _cl_, _jE_, l$0); + var _jF_ = 1 - inside_box; + return _jF_ ? caml_call2(Stdlib_Format[129], out, _cm_) : _jF_; + } + var l$1 = x$0[2]; + if(! l$1) return caml_call2(Stdlib_Format[13], out, cst$54); + if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _cn_); + if(caml_call2(Stdlib_List[32], is_atom$1, l$1)){ + var + _jG_ = 0, + _jH_ = function(_jW_, _jX_){return format$1(_jG_, std, _jW_, _jX_);}, + _jI_ = + function(_jU_, _jV_){return pp_list$1(cst$52, _jH_, _jU_, _jV_);}; + caml_call4(Stdlib_Format[129], out, _co_, _jI_, l$1); + } + else{ + var + _jK_ = 0, + _jL_ = function(_j0_, _j1_){return format$1(_jK_, std, _j0_, _j1_);}, + _jM_ = + function(_jY_, _jZ_){return pp_list$1(cst$53, _jL_, _jY_, _jZ_);}; + caml_call4(Stdlib_Format[129], out, _cq_, _jM_, l$1); + } + var _jJ_ = 1 - inside_box; + return _jJ_ ? caml_call2(Stdlib_Format[129], out, _cp_) : _jJ_; + } + if(737456202 <= _jy_){ + var x$2 = x$0[2]; + return caml_call2(Stdlib_Format[25], out, x$2); + } + var _jN_ = x$0[2], match = _jN_[2], s = _jN_[1]; + if(match){ + var x$3 = match[1]; + if(std){ + var + representation = [0, -976970511, s], + x$4 = [0, 848054398, [0, representation, [0, x$3, 0]]], + x$0 = x$4; + continue; + } + var + op = json_string_of_string$1(s), + _jO_ = 1, + _jP_ = function(_jS_, _jT_){return format$1(_jO_, std, _jS_, _jT_);}; + return caml_call5(Stdlib_Format[129], out, _cr_, op, _jP_, x$3); + } + if(std){ + var representation$0 = [0, -976970511, s], x$0 = representation$0; + continue; + } + var _jQ_ = json_string_of_string$1(s); + return caml_call3(Stdlib_Format[129], out, _cs_, _jQ_); + } + } + function pp$3(opt, out, x){ + if(opt) var sth = opt[1], std = sth; else var std = 0; + var _jt_ = 1; + function _ju_(_jv_, _jw_){return format$1(_jt_, std, _jv_, _jw_);} + return caml_call4(Stdlib_Format[129], out, _cu_, _ju_, x); + } + function pp$4(fmt, param){ + if(typeof param === "number") + return caml_call2(Stdlib_Format[13], fmt, cst_Null$1); + var _jm_ = param[1]; + if(708012133 <= _jm_){ + if(726928360 === _jm_){ + var tup = param[2]; + caml_call2(Stdlib_Format[129], fmt, _cx_); + caml_call2(Stdlib_Format[129], fmt, _cy_); + var + _jn_ = 0, + _jo_ = + function(sep, e){ + if(sep) caml_call2(Stdlib_Format[129], fmt, _cz_); + pp$4(fmt, e); + return 1; + }; + caml_call3(Stdlib_List[25], _jo_, _jn_, tup); + caml_call2(Stdlib_Format[129], fmt, _cA_); + return caml_call2(Stdlib_Format[129], fmt, _cB_); + } + if(848054398 <= _jm_){ + if(963043957 <= _jm_){ + var xs = param[2]; + caml_call2(Stdlib_Format[129], fmt, _cC_); + caml_call2(Stdlib_Format[129], fmt, _cD_); + var + _jp_ = 0, + _jq_ = + function(sep, param){ + var value = param[2], key = param[1]; + if(sep) caml_call2(Stdlib_Format[129], fmt, _cE_); + caml_call2(Stdlib_Format[129], fmt, _cF_); + caml_call3(Stdlib_Format[129], fmt, _cG_, key); + caml_call2(Stdlib_Format[129], fmt, _cH_); + pp$4(fmt, value); + caml_call2(Stdlib_Format[129], fmt, _cI_); + return 1; + }; + caml_call3(Stdlib_List[25], _jq_, _jp_, xs); + caml_call2(Stdlib_Format[129], fmt, _cJ_); + return caml_call2(Stdlib_Format[129], fmt, _cK_); + } + var xs$0 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _cL_); + caml_call2(Stdlib_Format[129], fmt, _cM_); + var + _jr_ = 0, + _js_ = + function(sep, x){ + if(sep) caml_call2(Stdlib_Format[129], fmt, _cN_); + pp$4(fmt, x); + return 1; + }; + caml_call3(Stdlib_List[25], _js_, _jr_, xs$0); + caml_call2(Stdlib_Format[129], fmt, _cO_); + return caml_call2(Stdlib_Format[129], fmt, _cP_); + } + if(737456202 <= _jm_){ + var x = param[2]; + caml_call2(Stdlib_Format[129], fmt, _cQ_); + caml_call3(Stdlib_Format[129], fmt, _cR_, x); + return caml_call2(Stdlib_Format[129], fmt, _cS_); + } + var match = param[2], value = match[2], name = match[1]; + caml_call2(Stdlib_Format[129], fmt, _cT_); + caml_call2(Stdlib_Format[129], fmt, _cU_); + caml_call3(Stdlib_Format[129], fmt, _cV_, name); + caml_call2(Stdlib_Format[129], fmt, _cW_); + if(value){ + var x$0 = value[1]; + caml_call2(Stdlib_Format[13], fmt, cst_Some$0); + pp$4(fmt, x$0); + caml_call2(Stdlib_Format[13], fmt, cst$55); + } + else + caml_call2(Stdlib_Format[13], fmt, cst_None$0); + caml_call2(Stdlib_Format[129], fmt, _cX_); + return caml_call2(Stdlib_Format[129], fmt, _cY_); + } + if(3654863 <= _jm_){ + if(365180284 <= _jm_){ + var x$1 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _cZ_); + caml_call3(Stdlib_Format[129], fmt, _c0_, x$1); + return caml_call2(Stdlib_Format[129], fmt, _c1_); + } + var x$2 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _c2_); + caml_call3(Stdlib_Format[129], fmt, _c3_, x$2); + return caml_call2(Stdlib_Format[129], fmt, _c4_); + } + if(-752863768 <= _jm_){ + var x$3 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _c5_); + caml_call3(Stdlib_Format[129], fmt, _c6_, x$3); + return caml_call2(Stdlib_Format[129], fmt, _c7_); + } + var x$4 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _c8_); + caml_call3(Stdlib_Format[129], fmt, _c9_, x$4); + return caml_call2(Stdlib_Format[129], fmt, _c__); + } + function show$1(x){return caml_call3(Stdlib_Format[133], _c$_, pp$4, x);} + function equal$1(a, b){ + var a$0 = a, b$0 = b; + for(;;){ + if(typeof a$0 === "number"){ + if(870828711 === a$0 && 870828711 === b$0) return 1; + } + else{ + var _jd_ = a$0[1]; + if(708012133 <= _jd_){ + var switch$0 = 0; + if(737456203 <= _jd_){ + if(848054398 === _jd_){ + if(typeof b$0 !== "number" && 848054398 === b$0[1]){var ys = b$0[2], xs = a$0[2]; switch$0 = 1;} + } + else if + (963043957 === _jd_ + && typeof b$0 !== "number" && 963043957 === b$0[1]){ + var + ys$0 = b$0[2], + xs$0 = a$0[2], + compare_keys = + function(param, _jl_){ + var key = _jl_[1], key$0 = param[1]; + return caml_call2(Stdlib_String[9], key$0, key); + }, + xs$1 = caml_call2(Stdlib_List[57], compare_keys, xs$0), + ys$1 = caml_call2(Stdlib_List[57], compare_keys, ys$0); + try{ + var + _jg_ = + function(param, _jk_){ + var + value = _jk_[2], + key = _jk_[1], + value$0 = param[2], + key$0 = param[1]; + return caml_string_equal(key$0, key) + ? equal$1(value$0, value) + : 0; + }, + result$0 = caml_call3(Stdlib_List[34], _jg_, xs$1, ys$1); + return result$0; + } + catch(_jj_){ + var _jf_ = caml_wrap_exception(_jj_); + if(_jf_[1] === Stdlib[6]) return 0; + throw caml_maybe_attach_backtrace(_jf_, 0); + } + } + } + else + if(726928360 === _jd_){ + if(typeof b$0 !== "number" && 726928360 === b$0[1]){var ys = b$0[2], xs = a$0[2]; switch$0 = 1;} + } + else + if(708012134 <= _jd_){ + if + (737456202 <= _jd_ + && typeof b$0 !== "number" && 737456202 === b$0[1]){ + var b$1 = b$0[2], a$1 = a$0[2]; + return caml_equal(a$1, b$1); + } + } + else if(typeof b$0 !== "number" && 708012133 === b$0[1]){ + var + _jh_ = b$0[2], + value = _jh_[2], + name = _jh_[1], + match = a$0[2], + value$0 = match[2], + name$0 = match[1]; + if(! caml_equal(name$0, name)) return 0; + if(value$0){ + if(value){ + var y = value[1], x = value$0[1], a$0 = x, b$0 = y; + continue; + } + } + else if(! value) return 1; + return 0; + } + if(switch$0) + try{ + var result = caml_call3(Stdlib_List[34], equal$1, xs, ys); + return result; + } + catch(_ji_){ + var _je_ = caml_wrap_exception(_ji_); + if(_je_[1] === Stdlib[6]) return 0; + throw caml_maybe_attach_backtrace(_je_, 0); + } + } + else + if(-752863767 <= _jd_){ + if(3654863 === _jd_){ + if(typeof b$0 !== "number" && 3654863 === b$0[1]){ + var b$2 = b$0[2], a$2 = a$0[2]; + return caml_equal(a$2, b$2); + } + } + else if + (365180284 === _jd_ + && typeof b$0 !== "number" && 365180284 === b$0[1]){ + var b$3 = b$0[2], a$3 = a$0[2]; + return caml_equal(a$3, b$3); + } + } + else + if(-976970511 === _jd_){ + if(typeof b$0 !== "number" && -976970511 === b$0[1]){ + var b$4 = b$0[2], a$4 = a$0[2]; + return caml_equal(a$4, b$4); + } + } + else if + (-752863768 <= _jd_ + && typeof b$0 !== "number" && -752863768 === b$0[1]){ + var b$5 = b$0[2], a$5 = a$0[2]; + return caml_equal(a$5, b$5); + } + } + return 0; + } + } + function pretty_print$1(std, out, x){return pp$3(std, out, x);} + function pretty_to_string$1(std, x){ + function _ja_(_jb_, _jc_){return pp$3(std, _jb_, _jc_);} + return caml_call3(Stdlib_Format[133], _cv_, _ja_, x); + } + function pretty_to_channel$1(std, oc, x){ + var fmt = caml_call1(Stdlib_Format[108], oc); + function _i9_(_i__, _i$_){return pp$3(std, _i__, _i$_);} + return caml_call4(Stdlib_Format[129], fmt, _cw_, _i9_, x); + } + var + from_channel$1 = Stdlib_Lexing[2], + from_string$1 = Stdlib_Lexing[3], + lexeme$0 = Stdlib_Lexing[8], + sub_lexeme$0 = Stdlib_Lexing[16], + sub_lexeme_char$0 = Stdlib_Lexing[18]; + function hex$3(c){ + if(65 <= c){ + if(97 <= c){ + if(103 > c) return (c - 97 | 0) + 10 | 0; + } + else if(71 > c) return (c - 65 | 0) + 10 | 0; + } + else if(9 >= c - 48 >>> 0) return c - 48 | 0; + throw caml_maybe_attach_backtrace([0, Assert_failure, _da_], 1); + } + function custom_error$0(descr, v, lexbuf){ + var + offs = lexbuf[4] - 1 | 0, + bol = v[3], + pos1 = ((offs + lexbuf[5] | 0) - bol | 0) - 1 | 0, + pos2 = caml_call2(Stdlib[17], pos1, (offs + lexbuf[6] | 0) - bol | 0), + match = v[4]; + if(match) + var s = match[1], file_line = caml_call2(Stdlib_Printf[4], _db_, s); + else + var file_line = cst_Line$0; + var + bytes = + pos1 === pos2 + ? caml_call2(Stdlib_Printf[4], _dc_, pos1 + 1 | 0) + : caml_call3(Stdlib_Printf[4], _de_, pos1 + 1 | 0, pos2 + 1 | 0), + msg = caml_call5(Stdlib_Printf[4], _dd_, file_line, v[2], bytes, descr); + return json_error(msg); + } + function lexer_error$0(descr, v, lexbuf){ + var _i8_ = caml_call1(lexeme$0, lexbuf); + return custom_error$0 + (caml_call3(Stdlib_Printf[4], _df_, descr, _i8_), v, lexbuf); + } + var + read_junk$0 = + [0, + function(param){ + throw caml_maybe_attach_backtrace([0, Assert_failure, _dg_], 1); + }]; + function long_error$0(descr, v, lexbuf){ + var + junk = caml_call1(lexeme$0, lexbuf), + extra_junk = caml_call1(read_junk$0[1], lexbuf); + return custom_error$0 + (caml_call4(Stdlib_Printf[4], _dh_, descr, junk, extra_junk), + v, + lexbuf); + } + var + _di_ = 0 === (Stdlib[20] % 10 | 0) ? 0 : 1, + min10$0 = (Stdlib[20] / 10 | 0) - _di_ | 0, + _dj_ = 0 === (Stdlib[19] % 10 | 0) ? 0 : 1, + max10$0 = (Stdlib[19] / 10 | 0) + _dj_ | 0, + Int_overflow$0 = [248, cst_Yojson_Safe_Int_overflow, caml_fresh_oo_id(0)]; + function extract_positive_int$0(lexbuf){ + var + start = lexbuf[5], + stop = lexbuf[6], + s = lexbuf[2], + n = [0, 0], + _i5_ = stop - 1 | 0; + if(_i5_ >= start){ + var i = start; + for(;;){ + if(max10$0 <= n[1]) + throw caml_maybe_attach_backtrace(Int_overflow$0, 1); + var _i6_ = caml_bytes_get(s, i) - 48 | 0; + n[1] = (10 * n[1] | 0) + _i6_ | 0; + var _i7_ = i + 1 | 0; + if(_i5_ !== i){var i = _i7_; continue;} + break; + } + } + if(0 <= n[1]) return n[1]; + throw caml_maybe_attach_backtrace(Int_overflow$0, 1); + } + function extract_negative_int$0(lexbuf){ + var + start = lexbuf[5] + 1 | 0, + stop = lexbuf[6], + s = lexbuf[2], + n = [0, 0], + _i2_ = stop - 1 | 0; + if(_i2_ >= start){ + var i = start; + for(;;){ + if(n[1] <= min10$0) + throw caml_maybe_attach_backtrace(Int_overflow$0, 1); + var _i3_ = caml_bytes_get(s, i) - 48 | 0; + n[1] = (10 * n[1] | 0) - _i3_ | 0; + var _i4_ = i + 1 | 0; + if(_i2_ !== i){var i = _i4_; continue;} + break; + } + } + if(0 < n[1]) throw caml_maybe_attach_backtrace(Int_overflow$0, 1); + return n[1]; + } + function newline$0(v, lexbuf){ + v[2] = v[2] + 1 | 0; + v[3] = lexbuf[4] + lexbuf[6] | 0; + return 0; + } + function add_lexeme$0(buf, lexbuf){ + var len = lexbuf[6] - lexbuf[5] | 0; + return caml_call4(Stdlib_Buffer[19], buf, lexbuf[2], lexbuf[5], len); + } + function read_json$0(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 0; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(19 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return _dk_; + case 1: + return _dl_; + case 2: + return 870828711; + case 3: + return [0, 365180284, Stdlib[24]]; + case 4: + return [0, 365180284, Stdlib[22]]; + case 5: + return [0, 365180284, Stdlib[23]]; + case 6: + caml_call1(Stdlib_Buffer[8], v[1]); + return [0, -976970511, finish_string$0(v, lexbuf)]; + case 7: + try{ + var _iL_ = [0, 3654863, extract_positive_int$0(lexbuf)]; + return _iL_; + } + catch(_i1_){ + var _iK_ = caml_wrap_exception(_i1_); + if(_iK_ === Int_overflow$0) + return [0, -752863768, caml_call1(lexeme$0, lexbuf)]; + throw caml_maybe_attach_backtrace(_iK_, 0); + } + case 8: + try{ + var _iN_ = [0, 3654863, extract_negative_int$0(lexbuf)]; + return _iN_; + } + catch(_i0_){ + var _iM_ = caml_wrap_exception(_i0_); + if(_iM_ === Int_overflow$0) + return [0, -752863768, caml_call1(lexeme$0, lexbuf)]; + throw caml_maybe_attach_backtrace(_iM_, 0); + } + case 9: + return [0, + 365180284, + caml_float_of_string(caml_call1(lexeme$0, lexbuf))]; + case 10: + var acc = [0, 0]; + try{ + read_space$0(v, lexbuf); + read_object_end$0(lexbuf); + var field_name = read_ident$0(v, lexbuf); + read_space$0(v, lexbuf); + read_colon$0(v, lexbuf); + read_space$0(v, lexbuf); + var _iP_ = acc[1]; + acc[1] = [0, [0, field_name, read_json$0(v, lexbuf)], _iP_]; + for(;;){ + read_space$0(v, lexbuf); + read_object_sep$0(v, lexbuf); + read_space$0(v, lexbuf); + var field_name$0 = read_ident$0(v, lexbuf); + read_space$0(v, lexbuf); + read_colon$0(v, lexbuf); + read_space$0(v, lexbuf); + var _iQ_ = acc[1]; + acc[1] = [0, [0, field_name$0, read_json$0(v, lexbuf)], _iQ_]; + } + } + catch(_iZ_){ + var _iO_ = caml_wrap_exception(_iZ_); + if(_iO_ === End_of_object) + return [0, 963043957, caml_call1(Stdlib_List[9], acc[1])]; + throw caml_maybe_attach_backtrace(_iO_, 0); + } + case 11: + var acc$0 = [0, 0]; + try{ + read_space$0(v, lexbuf); + read_array_end$0(lexbuf); + var _iS_ = acc$0[1]; + acc$0[1] = [0, read_json$0(v, lexbuf), _iS_]; + for(;;){ + read_space$0(v, lexbuf); + read_array_sep$0(v, lexbuf); + read_space$0(v, lexbuf); + var _iT_ = acc$0[1]; + acc$0[1] = [0, read_json$0(v, lexbuf), _iT_]; + } + } + catch(_iY_){ + var _iR_ = caml_wrap_exception(_iY_); + if(_iR_ === End_of_array) + return [0, 848054398, caml_call1(Stdlib_List[9], acc$0[1])]; + throw caml_maybe_attach_backtrace(_iR_, 0); + } + case 12: + var acc$1 = [0, 0]; + try{ + read_space$0(v, lexbuf); + read_tuple_end$0(lexbuf); + var _iV_ = acc$1[1]; + acc$1[1] = [0, read_json$0(v, lexbuf), _iV_]; + for(;;){ + read_space$0(v, lexbuf); + read_tuple_sep$0(v, lexbuf); + read_space$0(v, lexbuf); + var _iW_ = acc$1[1]; + acc$1[1] = [0, read_json$0(v, lexbuf), _iW_]; + } + } + catch(_iX_){ + var _iU_ = caml_wrap_exception(_iX_); + if(_iU_ === End_of_tuple) + return [0, 726928360, caml_call1(Stdlib_List[9], acc$1[1])]; + throw caml_maybe_attach_backtrace(_iU_, 0); + } + case 13: + read_space$0(v, lexbuf); + var cons = read_ident$0(v, lexbuf); + read_space$0(v, lexbuf); + return [0, 708012133, [0, cons, finish_variant$0(v, lexbuf)]]; + case 14: + continue a; + case 15: + finish_comment$0(v, lexbuf); continue a; + case 16: + newline$0(v, lexbuf); continue a; + case 17: + continue a; + case 18: + return custom_error$0(cst_Unexpected_end_of_input$44, v, lexbuf); + default: return long_error$0(cst_Invalid_token$9, v, lexbuf); + } + } + } + } + function finish_string$0(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 58; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return caml_call1(Stdlib_Buffer[2], v[1]); + case 1: + finish_escaped_char$0(v, lexbuf); continue a; + case 2: + add_lexeme$0(v[1], lexbuf); continue a; + default: + return custom_error$0(cst_Unexpected_end_of_input$45, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function map_string$0(v, f, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 63; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + var b = v[1], _iJ_ = caml_call1(Stdlib_Buffer[7], b); + return caml_call3(f, caml_call1(Stdlib_Buffer[2], b), 0, _iJ_); + case 1: + finish_escaped_char$0(v, lexbuf); continue a; + case 2: + add_lexeme$0(v[1], lexbuf); continue a; + default: + return custom_error$0(cst_Unexpected_end_of_input$46, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function finish_escaped_char$0(v, lexbuf){ + var ocaml_lex_state = 68; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(8 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var c = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5]); + return caml_call2(Stdlib_Buffer[12], v[1], c); + case 1: + return caml_call2(Stdlib_Buffer[12], v[1], 8); + case 2: + return caml_call2(Stdlib_Buffer[12], v[1], 12); + case 3: + return caml_call2(Stdlib_Buffer[12], v[1], 10); + case 4: + return caml_call2(Stdlib_Buffer[12], v[1], 13); + case 5: + return caml_call2(Stdlib_Buffer[12], v[1], 9); + case 6: + var + a = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5] + 1 | 0), + b = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5] + 2 | 0), + c$0 = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5] + 3 | 0), + d = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5] + 4 | 0), + _iD_ = hex$3(d), + _iE_ = hex$3(c$0) << 4, + _iF_ = hex$3(b) << 8, + x = hex$3(a) << 12 | _iF_ | _iE_ | _iD_; + if(55296 <= x && 56319 >= x){ + var ocaml_lex_state$1 = 82; + for(;;){ + var + ocaml_lex_state$2 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state$1, lexbuf); + if(2 < ocaml_lex_state$2 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$1 = ocaml_lex_state$2; + continue; + } + switch(ocaml_lex_state$2){ + case 0: + var + a$0 = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5] + 2 | 0), + b$0 = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5] + 3 | 0), + c$1 = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5] + 4 | 0), + d$0 = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5] + 5 | 0), + _iG_ = hex$3(d$0), + _iH_ = hex$3(c$1) << 4, + _iI_ = hex$3(b$0) << 8, + y = hex$3(a$0) << 12 | _iI_ | _iH_ | _iG_; + if(56320 <= y && 57343 >= y) + return utf8_of_surrogate_pair(v[1], x, y); + return long_error$0(cst_Invalid_low_surrogate_for_$0, v, lexbuf); + case 1: + return long_error$0(cst_Missing_escape_sequence_re$0, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$48, v, lexbuf); + } + } + } + return utf8_of_code(v[1], x); + case 7: + return long_error$0(cst_Invalid_escape_sequence$0, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$47, v, lexbuf); + } + } + } + function finish_stringlit$0(v, lexbuf){ + var ocaml_lex_state = 91; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + var + len = lexbuf[6] - lexbuf[5] | 0, + s = caml_create_bytes(len + 1 | 0); + caml_bytes_set(s, 0, 34); + caml_call5(Stdlib_Bytes[11], lexbuf[2], lexbuf[5], s, 1, len); + return caml_call1(Stdlib_Bytes[6], s); + case 1: + return long_error$0(cst_Invalid_string_literal$2, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$49, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_variant$0(v, lexbuf){ + var ocaml_lex_state = 102; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + var x = read_json$0(v, lexbuf); + read_space$0(v, lexbuf); + read_gt$0(v, lexbuf); + return [0, x]; + case 1: + return 0; + case 2: + return long_error$0(cst_Expected_or_but_found$13, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$50, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_lt$0(v, lexbuf){ + var ocaml_lex_state = 107; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$0(cst_Expected_but_found$14, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$51, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_gt$0(v, lexbuf){ + var ocaml_lex_state = 111; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$0(cst_Expected_but_found$15, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$52, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_comma$0(v, lexbuf){ + var ocaml_lex_state = 115; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$0(cst_Expected_but_found$16, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$53, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function start_any_variant$0(v, lexbuf){ + var ocaml_lex_state = 119; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return -154522342; + case 1: + caml_call1(Stdlib_Buffer[8], v[1]); return -589953938; + case 2: + return -124528282; + case 3: + return long_error$0(cst_Expected_or_but_found$14, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$54, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_comment$0(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 125; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$0(cst_Unterminated_comment$1, v, lexbuf); + case 2: + newline$0(v, lexbuf); continue a; + default: continue a; + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function read_eof$0(lexbuf){ + var ocaml_lex_state = 131; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) return 1; + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_space$0(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 133; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + newline$0(v, lexbuf); continue a; + case 1: + finish_comment$0(v, lexbuf); continue a; + case 2: + newline$0(v, lexbuf); continue a; + case 3: + continue a; + default: return 0; + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function read_null$0(v, lexbuf){ + var ocaml_lex_state = 140; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$0(cst_Expected_null_but_found$0, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$55, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_null_if_possible$0(v, lexbuf){ + var ocaml_lex_state = 147; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) return 1; + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_bool$0(v, lexbuf){ + var ocaml_lex_state = 152; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(5 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 1; + case 1: + return 0; + case 2: + return 1; + case 3: + return 0; + case 4: + return long_error$0(cst_Expected_true_or_false_but$0, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$56, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_int$0(v, lexbuf){ + var ocaml_lex_state = 176; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(4 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + try{var _iw_ = extract_positive_int$0(lexbuf); return _iw_;} + catch(_iC_){ + var _iv_ = caml_wrap_exception(_iC_); + if(_iv_ === Int_overflow$0) + return lexer_error$0(cst_Int_overflow$3, v, lexbuf); + throw caml_maybe_attach_backtrace(_iv_, 0); + } + case 1: + try{var _iy_ = extract_negative_int$0(lexbuf); return _iy_;} + catch(_iB_){ + var _ix_ = caml_wrap_exception(_iB_); + if(_ix_ === Int_overflow$0) + return lexer_error$0(cst_Int_overflow$4, v, lexbuf); + throw caml_maybe_attach_backtrace(_ix_, 0); + } + case 2: + caml_call1(Stdlib_Buffer[8], v[1]); + var s = finish_string$0(v, lexbuf); + try{var _iz_ = caml_int_of_string(s); return _iz_;} + catch(_iA_){ + return custom_error$0(cst_Expected_an_integer_but_fo$0, v, lexbuf); + } + case 3: + return long_error$0(cst_Expected_integer_but_found$0, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$57, v, lexbuf); + } + } + } + function read_int32$0(v, lexbuf){ + var ocaml_lex_state = 185; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + try{ + var _ir_ = caml_int_of_string(caml_call1(lexeme$0, lexbuf)); + return _ir_; + } + catch(_iu_){return lexer_error$0(cst_Int32_overflow$1, v, lexbuf);} + case 1: + caml_call1(Stdlib_Buffer[8], v[1]); + var s = finish_string$0(v, lexbuf); + try{var _is_ = caml_int_of_string(s); return _is_;} + catch(_it_){ + return custom_error$0(cst_Expected_an_int32_but_foun$0, v, lexbuf); + } + case 2: + return long_error$0(cst_Expected_int32_but_found$0, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$58, v, lexbuf); + } + } + } + function read_int64$0(v, lexbuf){ + var ocaml_lex_state = 192; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + try{ + var _in_ = caml_int64_of_string(caml_call1(lexeme$0, lexbuf)); + return _in_; + } + catch(_iq_){return lexer_error$0(cst_Int32_overflow$2, v, lexbuf);} + case 1: + caml_call1(Stdlib_Buffer[8], v[1]); + var s = finish_string$0(v, lexbuf); + try{var _io_ = caml_int64_of_string(s); return _io_;} + catch(_ip_){ + return custom_error$0(cst_Expected_an_int64_but_foun$0, v, lexbuf); + } + case 2: + return long_error$0(cst_Expected_int64_but_found$0, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$59, v, lexbuf); + } + } + } + function read_number$0(v, lexbuf){ + var ocaml_lex_state = 199; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(6 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return Stdlib[24]; + case 1: + return Stdlib[22]; + case 2: + return Stdlib[23]; + case 3: + return caml_float_of_string(caml_call1(lexeme$0, lexbuf)); + case 4: + caml_call1(Stdlib_Buffer[8], v[1]); + var s = finish_string$0(v, lexbuf); + try{var _il_ = caml_float_of_string(s); return _il_;} + catch(_im_){ + return caml_string_notequal(s, cst_Infinity$12) + ? caml_string_notequal + (s, cst_Infinity$11) + ? caml_string_notequal + (s, cst_NaN$5) + ? custom_error$0 + (cst_Expected_a_number_but_foun$0, v, lexbuf) + : Stdlib[24] + : Stdlib[22] + : Stdlib[23]; + } + case 5: + return long_error$0(cst_Expected_number_but_found$0, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$60, v, lexbuf); + } + } + } + function read_string$0(v, lexbuf){ + var ocaml_lex_state = 233; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + caml_call1(Stdlib_Buffer[8], v[1]); + return finish_string$0(v, lexbuf); + case 1: + return long_error$0(cst_Expected_but_found$17, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$61, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_ident$0(v, lexbuf){ + var ocaml_lex_state = 237; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + caml_call1(Stdlib_Buffer[8], v[1]); + return finish_string$0(v, lexbuf); + case 1: + var s = caml_call3(sub_lexeme$0, lexbuf, lexbuf[5], lexbuf[6]); + return s; + case 2: + return long_error$0(cst_Expected_string_or_identif$3, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$62, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function map_ident$0(v, f, lexbuf){ + var ocaml_lex_state = 242; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + caml_call1(Stdlib_Buffer[8], v[1]); + return map_string$0(v, f, lexbuf); + case 1: + var len = lexbuf[6] - lexbuf[5] | 0; + return caml_call3 + (f, + caml_call3(Stdlib_Bytes[8], lexbuf[2], lexbuf[5], len), + 0, + len); + case 2: + return long_error$0(cst_Expected_string_or_identif$4, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$63, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_sequence$0(read_cell, init_acc, v, lexbuf){ + var ocaml_lex_state = 247; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var acc = [0, init_acc]; + try{ + read_space$0(v, lexbuf); + read_array_end$0(lexbuf); + acc[1] = caml_call3(read_cell, acc[1], v, lexbuf); + for(;;){ + read_space$0(v, lexbuf); + read_array_sep$0(v, lexbuf); + read_space$0(v, lexbuf); + acc[1] = caml_call3(read_cell, acc[1], v, lexbuf); + } + } + catch(_ik_){ + var _ij_ = caml_wrap_exception(_ik_); + if(_ij_ === End_of_array) return acc[1]; + throw caml_maybe_attach_backtrace(_ij_, 0); + } + case 1: + return long_error$0(cst_Expected_but_found$18, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$64, v, lexbuf); + } + } + } + function read_list_rev$0(read_cell, v, lexbuf){ + var ocaml_lex_state = 251; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var acc = [0, 0]; + try{ + read_space$0(v, lexbuf); + read_array_end$0(lexbuf); + var _ig_ = acc[1]; + acc[1] = [0, caml_call2(read_cell, v, lexbuf), _ig_]; + for(;;){ + read_space$0(v, lexbuf); + read_array_sep$0(v, lexbuf); + read_space$0(v, lexbuf); + var _ih_ = acc[1]; + acc[1] = [0, caml_call2(read_cell, v, lexbuf), _ih_]; + } + } + catch(_ii_){ + var _if_ = caml_wrap_exception(_ii_); + if(_if_ === End_of_array) return acc[1]; + throw caml_maybe_attach_backtrace(_if_, 0); + } + case 1: + return long_error$0(cst_Expected_but_found$19, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$65, v, lexbuf); + } + } + } + function read_array_end$0(lexbuf){ + var ocaml_lex_state = 255; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) + throw caml_maybe_attach_backtrace(End_of_array, 1); + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_array_sep$0(v, lexbuf){ + var ocaml_lex_state = 257; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + throw caml_maybe_attach_backtrace(End_of_array, 1); + case 2: + return long_error$0(cst_Expected_or_but_found$15, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$66, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_tuple$0(read_cell, init_acc, v, lexbuf){ + var ocaml_lex_state = 262; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var pos = [0, 0], acc = [0, init_acc]; + try{ + read_space$0(v, lexbuf); + read_tuple_end$0(lexbuf); + acc[1] = caml_call4(read_cell, pos[1], acc[1], v, lexbuf); + pos[1]++; + for(;;){ + read_space$0(v, lexbuf); + read_tuple_sep$0(v, lexbuf); + read_space$0(v, lexbuf); + acc[1] = caml_call4(read_cell, pos[1], acc[1], v, lexbuf); + pos[1]++; + } + } + catch(_ie_){ + var _id_ = caml_wrap_exception(_ie_); + if(_id_ === End_of_tuple) return acc[1]; + throw caml_maybe_attach_backtrace(_id_, 0); + } + case 1: + return long_error$0(cst_Expected_but_found$20, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$67, v, lexbuf); + } + } + } + function read_tuple_end$0(lexbuf){ + var ocaml_lex_state = 266; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_tuple_end2$0(v, std, lexbuf){ + var ocaml_lex_state = 268; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + if(std) return long_error$0(cst_Expected_or_but_found$16, v, lexbuf); + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + case 1: + if(std) throw caml_maybe_attach_backtrace(End_of_tuple, 1); + return long_error$0(cst_Expected_or_but_found$17, v, lexbuf); + default: return 0; + } + } + } + function read_tuple_sep$0(v, lexbuf){ + var ocaml_lex_state = 271; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + case 2: + return long_error$0(cst_Expected_or_but_found$18, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$68, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_tuple_sep2$0(v, std, lexbuf){ + var ocaml_lex_state = 276; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(4 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + if(std) return long_error$0(cst_Expected_or_but_found$19, v, lexbuf); + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + case 2: + if(std) throw caml_maybe_attach_backtrace(End_of_tuple, 1); + return long_error$0(cst_Expected_or_but_found$20, v, lexbuf); + case 3: + return long_error$0(cst_Expected_or_but_found$21, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$69, v, lexbuf); + } + } + } + function read_abstract_fields$0(read_key, read_field, init_acc, v, lexbuf){ + var ocaml_lex_state = 282; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var acc = [0, init_acc]; + try{ + read_space$0(v, lexbuf); + read_object_end$0(lexbuf); + var field_name = caml_call2(read_key, v, lexbuf); + read_space$0(v, lexbuf); + read_colon$0(v, lexbuf); + read_space$0(v, lexbuf); + acc[1] = caml_call4(read_field, acc[1], field_name, v, lexbuf); + for(;;){ + read_space$0(v, lexbuf); + read_object_sep$0(v, lexbuf); + read_space$0(v, lexbuf); + var field_name$0 = caml_call2(read_key, v, lexbuf); + read_space$0(v, lexbuf); + read_colon$0(v, lexbuf); + read_space$0(v, lexbuf); + acc[1] = caml_call4(read_field, acc[1], field_name$0, v, lexbuf); + } + } + catch(_ic_){ + var _ib_ = caml_wrap_exception(_ic_); + if(_ib_ === End_of_object) return acc[1]; + throw caml_maybe_attach_backtrace(_ib_, 0); + } + case 1: + return long_error$0(cst_Expected_but_found$21, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$70, v, lexbuf); + } + } + } + function read_lcurl$0(v, lexbuf){ + var ocaml_lex_state = 286; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$0(cst_Expected_but_found$22, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$71, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_object_end$0(lexbuf){ + var ocaml_lex_state = 290; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) + throw caml_maybe_attach_backtrace(End_of_object, 1); + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_object_sep$0(v, lexbuf){ + var ocaml_lex_state = 292; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + throw caml_maybe_attach_backtrace(End_of_object, 1); + case 2: + return long_error$0(cst_Expected_or_but_found$22, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$72, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_colon$0(v, lexbuf){ + var ocaml_lex_state = 297; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$0(cst_Expected_but_found$23, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$73, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function start_any_tuple$0(v, lexbuf){ + var ocaml_lex_state = 301; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return 1; + case 2: + return long_error$0(cst_Expected_or_but_found$23, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$74, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_lpar$0(v, lexbuf){ + var ocaml_lex_state = 306; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$0(cst_Expected_but_found$24, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$75, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_rpar$0(v, lexbuf){ + var ocaml_lex_state = 310; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$0(cst_Expected_but_found$25, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$76, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_lbr$0(v, lexbuf){ + var ocaml_lex_state = 314; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$0(cst_Expected_but_found$26, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$77, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_rbr$0(v, lexbuf){ + var ocaml_lex_state = 318; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$0(cst_Expected_but_found$27, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$78, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_skip_variant$0(v, lexbuf){ + var ocaml_lex_state = 389; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + skip_json$0(v, lexbuf); + read_space$0(v, lexbuf); + return read_gt$0(v, lexbuf); + case 1: + return 0; + case 2: + return long_error$0(cst_Expected_or_but_found$24, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$81, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_skip_stringlit$0(v, lexbuf){ + var ocaml_lex_state = 378; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$0(cst_Invalid_string_literal$3, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$80, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function skip_json$0(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 322; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(18 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return 0; + case 2: + return 0; + case 3: + return 0; + case 4: + return 0; + case 5: + return 0; + case 6: + return finish_skip_stringlit$0(v, lexbuf); + case 7: + return 0; + case 8: + return 0; + case 9: + try{ + read_space$0(v, lexbuf); + read_object_end$0(lexbuf); + skip_ident$0(v, lexbuf); + read_space$0(v, lexbuf); + read_colon$0(v, lexbuf); + read_space$0(v, lexbuf); + skip_json$0(v, lexbuf); + for(;;){ + read_space$0(v, lexbuf); + read_object_sep$0(v, lexbuf); + read_space$0(v, lexbuf); + skip_ident$0(v, lexbuf); + read_space$0(v, lexbuf); + read_colon$0(v, lexbuf); + read_space$0(v, lexbuf); + skip_json$0(v, lexbuf); + } + } + catch(_ia_){ + var _h7_ = caml_wrap_exception(_ia_); + if(_h7_ === End_of_object) return 0; + throw caml_maybe_attach_backtrace(_h7_, 0); + } + case 10: + try{ + read_space$0(v, lexbuf); + read_array_end$0(lexbuf); + skip_json$0(v, lexbuf); + for(;;){ + read_space$0(v, lexbuf); + read_array_sep$0(v, lexbuf); + read_space$0(v, lexbuf); + skip_json$0(v, lexbuf); + } + } + catch(_h$_){ + var _h8_ = caml_wrap_exception(_h$_); + if(_h8_ === End_of_array) return 0; + throw caml_maybe_attach_backtrace(_h8_, 0); + } + case 11: + try{ + read_space$0(v, lexbuf); + read_tuple_end$0(lexbuf); + skip_json$0(v, lexbuf); + for(;;){ + read_space$0(v, lexbuf); + read_tuple_sep$0(v, lexbuf); + read_space$0(v, lexbuf); + skip_json$0(v, lexbuf); + } + } + catch(_h__){ + var _h9_ = caml_wrap_exception(_h__); + if(_h9_ === End_of_tuple) return 0; + throw caml_maybe_attach_backtrace(_h9_, 0); + } + case 12: + read_space$0(v, lexbuf); + skip_ident$0(v, lexbuf); + read_space$0(v, lexbuf); + return finish_skip_variant$0(v, lexbuf); + case 13: + continue a; + case 14: + finish_comment$0(v, lexbuf); continue a; + case 15: + newline$0(v, lexbuf); continue a; + case 16: + continue a; + case 17: + return custom_error$0(cst_Unexpected_end_of_input$79, v, lexbuf); + default: return long_error$0(cst_Invalid_token$10, v, lexbuf); + } + } + } + } + function skip_ident$0(v, lexbuf){ + var ocaml_lex_state = 394; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return finish_skip_stringlit$0(v, lexbuf); + case 1: + return 0; + case 2: + return long_error$0(cst_Expected_string_or_identif$5, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$82, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_buffer_stringlit$0(v, lexbuf){ + var ocaml_lex_state = 450; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 34); + return add_lexeme$0(v[1], lexbuf); + case 1: + return long_error$0(cst_Invalid_string_literal$4, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$84, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function buffer_json$0(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 399; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(11 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return add_lexeme$0(v[1], lexbuf); + case 1: + return finish_buffer_stringlit$0(v, lexbuf); + case 2: + try{ + caml_call2(Stdlib_Buffer[12], v[1], 123); + buffer_space$0(v, lexbuf); + var ocaml_lex_state$3 = 478; + for(;;){ + var + ocaml_lex_state$4 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state$3, lexbuf); + if(0 === ocaml_lex_state$4){ + caml_call2(Stdlib_Buffer[12], v[1], 125); + throw caml_maybe_attach_backtrace(End_of_object, 1); + } + if(1 !== ocaml_lex_state$4){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$3 = ocaml_lex_state$4; + continue; + } + buffer_ident$0(v, lexbuf); + buffer_space$0(v, lexbuf); + buffer_colon$0(v, lexbuf); + buffer_space$0(v, lexbuf); + buffer_json$0(v, lexbuf); + b: + for(;;){ + buffer_space$0(v, lexbuf); + var ocaml_lex_state$5 = 480; + for(;;){ + var + ocaml_lex_state$6 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state$5, lexbuf); + if(3 < ocaml_lex_state$6 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$5 = ocaml_lex_state$6; + continue; + } + switch(ocaml_lex_state$6){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 44); break; + case 1: + caml_call2(Stdlib_Buffer[12], v[1], 125); + throw caml_maybe_attach_backtrace(End_of_object, 1); + case 2: + long_error$0(cst_Expected_or_but_found$26, v, lexbuf); break; + default: + custom_error$0(cst_Unexpected_end_of_input$87, v, lexbuf); + } + buffer_space$0(v, lexbuf); + buffer_ident$0(v, lexbuf); + buffer_space$0(v, lexbuf); + buffer_colon$0(v, lexbuf); + buffer_space$0(v, lexbuf); + buffer_json$0(v, lexbuf); + continue b; + } + } + } + } + catch(_h6_){ + var _h1_ = caml_wrap_exception(_h6_); + if(_h1_ === End_of_object) return 0; + throw caml_maybe_attach_backtrace(_h1_, 0); + } + case 3: + try{ + caml_call2(Stdlib_Buffer[12], v[1], 91); + buffer_space$0(v, lexbuf); + var ocaml_lex_state$7 = 485; + for(;;){ + var + ocaml_lex_state$8 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state$7, lexbuf); + if(0 === ocaml_lex_state$8){ + caml_call2(Stdlib_Buffer[12], v[1], 93); + throw caml_maybe_attach_backtrace(End_of_array, 1); + } + if(1 !== ocaml_lex_state$8){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$7 = ocaml_lex_state$8; + continue; + } + buffer_json$0(v, lexbuf); + b: + for(;;){ + buffer_space$0(v, lexbuf); + var ocaml_lex_state$9 = 487; + for(;;){ + var + ocaml_lex_state$10 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state$9, lexbuf); + if(3 < ocaml_lex_state$10 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$9 = ocaml_lex_state$10; + continue; + } + switch(ocaml_lex_state$10){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 44); break; + case 1: + caml_call2(Stdlib_Buffer[12], v[1], 93); + throw caml_maybe_attach_backtrace(End_of_array, 1); + case 2: + long_error$0(cst_Expected_or_but_found$27, v, lexbuf); break; + default: + custom_error$0(cst_Unexpected_end_of_input$88, v, lexbuf); + } + buffer_space$0(v, lexbuf); + buffer_json$0(v, lexbuf); + continue b; + } + } + } + } + catch(_h5_){ + var _h2_ = caml_wrap_exception(_h5_); + if(_h2_ === End_of_array) return 0; + throw caml_maybe_attach_backtrace(_h2_, 0); + } + case 4: + try{ + caml_call2(Stdlib_Buffer[12], v[1], 40); + buffer_space$0(v, lexbuf); + var ocaml_lex_state$11 = 492; + for(;;){ + var + ocaml_lex_state$12 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state$11, lexbuf); + if(0 === ocaml_lex_state$12){ + caml_call2(Stdlib_Buffer[12], v[1], 41); + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + } + if(1 !== ocaml_lex_state$12){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$11 = ocaml_lex_state$12; + continue; + } + buffer_json$0(v, lexbuf); + b: + for(;;){ + buffer_space$0(v, lexbuf); + var ocaml_lex_state$13 = 494; + for(;;){ + var + ocaml_lex_state$14 = + caml_lex_engine + (ocaml_lex_tables$0, ocaml_lex_state$13, lexbuf); + if(3 < ocaml_lex_state$14 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$13 = ocaml_lex_state$14; + continue; + } + switch(ocaml_lex_state$14){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 44); break; + case 1: + caml_call2(Stdlib_Buffer[12], v[1], 41); + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + case 2: + long_error$0(cst_Expected_or_but_found$28, v, lexbuf); break; + default: + custom_error$0(cst_Unexpected_end_of_input$89, v, lexbuf); + } + buffer_space$0(v, lexbuf); + buffer_json$0(v, lexbuf); + continue b; + } + } + } + } + catch(_h4_){ + var _h3_ = caml_wrap_exception(_h4_); + if(_h3_ === End_of_tuple) return 0; + throw caml_maybe_attach_backtrace(_h3_, 0); + } + case 5: + caml_call2(Stdlib_Buffer[12], v[1], 60); + buffer_space$0(v, lexbuf); + buffer_ident$0(v, lexbuf); + buffer_space$0(v, lexbuf); + var ocaml_lex_state$1 = 461; + for(;;){ + var + ocaml_lex_state$2 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state$1, lexbuf); + if(3 < ocaml_lex_state$2 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$1 = ocaml_lex_state$2; + continue; + } + switch(ocaml_lex_state$2){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 58); + buffer_json$0(v, lexbuf); + buffer_space$0(v, lexbuf); + var ocaml_lex_state$15 = 503; + for(;;){ + var + ocaml_lex_state$16 = + caml_lex_engine + (ocaml_lex_tables$0, ocaml_lex_state$15, lexbuf); + if(2 >= ocaml_lex_state$16 >>> 0) + switch(ocaml_lex_state$16){ + case 0: + return caml_call2(Stdlib_Buffer[12], v[1], 62); case 1: - return long_error$0 - (cst_Missing_escape_sequence_re$0,v,lexbuf); + return long_error$0(cst_Expected_but_found$29, v, lexbuf); default: return custom_error$0 - (cst_Unexpected_end_of_input$48,v,lexbuf)}}} - return utf8_of_code(v[1],x); - case 7:return long_error$0(cst_Invalid_escape_sequence$0,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$47,v,lexbuf)}}} - function finish_stringlit$0(v,lexbuf) - {var ocaml_lex_state=91; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - var len=lexbuf[6] - lexbuf[5] | 0,s=caml_create_bytes(len + 1 | 0); - caml_bytes_set(s,0,34); - caml_call5(Stdlib_Bytes[11],lexbuf[2],lexbuf[5],s,1,len); - return caml_call1(Stdlib_Bytes[6],s); - case 1:return long_error$0(cst_Invalid_string_literal$2,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$49,v,lexbuf)}}} - function finish_variant$0(v,lexbuf) - {var ocaml_lex_state=102; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - var x=read_json$0(v,lexbuf); - read_space$0(v,lexbuf); - read_gt$0(v,lexbuf); - return [0,x]; - case 1:return 0; - case 2:return long_error$0(cst_Expected_or_but_found$13,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$50,v,lexbuf)}}} - function read_lt$0(v,lexbuf) - {var ocaml_lex_state=107; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$0(cst_Expected_but_found$14,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$51,v,lexbuf)}}} - function read_gt$0(v,lexbuf) - {var ocaml_lex_state=111; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$0(cst_Expected_but_found$15,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$52,v,lexbuf)}}} - function read_comma$0(v,lexbuf) - {var ocaml_lex_state=115; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$0(cst_Expected_but_found$16,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$53,v,lexbuf)}}} - function start_any_variant$0(v,lexbuf) - {var ocaml_lex_state=119; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(4 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return -154522342; - case 1:caml_call1(Stdlib_Buffer[8],v[1]);return -589953938; - case 2:return -124528282; - case 3:return long_error$0(cst_Expected_or_but_found$14,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$54,v,lexbuf)}}} - function finish_comment$0(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=125; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$0(cst_Unterminated_comment$1,v,lexbuf); - case 2:newline$0(v,lexbuf);continue a; - default:continue a}}}} - function read_eof$0(lexbuf) - {var ocaml_lex_state=131; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)return 1; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - function read_space$0(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=133; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(4 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:newline$0(v,lexbuf);continue a; - case 1:finish_comment$0(v,lexbuf);continue a; - case 2:newline$0(v,lexbuf);continue a; - case 3:continue a; - default:return 0}}}} - function read_null$0(v,lexbuf) - {var ocaml_lex_state=140; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$0(cst_Expected_null_but_found$0,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$55,v,lexbuf)}}} - function read_null_if_possible$0(v,lexbuf) - {var ocaml_lex_state=147; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)return 1; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - function read_bool$0(v,lexbuf) - {var ocaml_lex_state=152; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(5 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 1; - case 1:return 0; - case 2:return 1; - case 3:return 0; - case 4: - return long_error$0(cst_Expected_true_or_false_but$0,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$56,v,lexbuf)}}} - function ocaml_lex_read_int_rec$0(v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); - if(4 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - try - {var _ib_=extract_positive_int$0(lexbuf);return _ib_} - catch(_ig_) - {_ig_ = caml_wrap_exception(_ig_); - if(_ig_ === Int_overflow$0) - return lexer_error$0(cst_Int_overflow$3,v,lexbuf); - throw _ig_} - case 1: - try - {var _ic_=extract_negative_int$0(lexbuf);return _ic_} - catch(_if_) - {_if_ = caml_wrap_exception(_if_); - if(_if_ === Int_overflow$0) - return lexer_error$0(cst_Int_overflow$4,v,lexbuf); - throw _if_} - case 2: - caml_call1(Stdlib_Buffer[8],v[1]); - var s=finish_string$3(v,lexbuf); - try - {var _id_=caml_int_of_string(s);return _id_} - catch(_ie_) - {return custom_error$0(cst_Expected_an_integer_but_fo$0,v,lexbuf)} - case 3: - return long_error$0(cst_Expected_integer_but_found$0,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$57,v,lexbuf)}}} - function read_int$0(v,lexbuf) - {return ocaml_lex_read_int_rec$0(v,lexbuf,176)} - function ocaml_lex_read_int32_rec$0(v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); - if(3 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - try - {var _h9_=caml_int_of_string(caml_call1(lexeme$0,lexbuf)); - return _h9_} - catch(_ia_){return lexer_error$0(cst_Int32_overflow$1,v,lexbuf)} - case 1: - caml_call1(Stdlib_Buffer[8],v[1]); - var s=finish_string$3(v,lexbuf); - try - {var _h__=caml_int_of_string(s);return _h__} - catch(_h$_) - {return custom_error$0(cst_Expected_an_int32_but_foun$0,v,lexbuf)} - case 2:return long_error$0(cst_Expected_int32_but_found$0,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$58,v,lexbuf)}}} - function read_int32$0(v,lexbuf) - {return ocaml_lex_read_int32_rec$0(v,lexbuf,185)} - function ocaml_lex_read_int64_rec$0(v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); - if(3 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - try - {var _h5_=caml_int64_of_string(caml_call1(lexeme$0,lexbuf)); - return _h5_} - catch(_h8_){return lexer_error$0(cst_Int32_overflow$2,v,lexbuf)} - case 1: - caml_call1(Stdlib_Buffer[8],v[1]); - var s=finish_string$3(v,lexbuf); - try - {var _h6_=caml_int64_of_string(s);return _h6_} - catch(_h7_) - {return custom_error$0(cst_Expected_an_int64_but_foun$0,v,lexbuf)} - case 2:return long_error$0(cst_Expected_int64_but_found$0,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$59,v,lexbuf)}}} - function read_int64$0(v,lexbuf) - {return ocaml_lex_read_int64_rec$0(v,lexbuf,192)} - function ocaml_lex_read_number_rec$0(v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); - if(6 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0:return Stdlib[24]; - case 1:return Stdlib[22]; - case 2:return Stdlib[23]; - case 3:return caml_float_of_string(caml_call1(lexeme$0,lexbuf)); - case 4: - caml_call1(Stdlib_Buffer[8],v[1]); - var s=finish_string$3(v,lexbuf); - try - {var _h3_=caml_float_of_string(s);return _h3_} - catch(_h4_) - {return caml_string_notequal(s,cst_Infinity$13) - ?caml_string_notequal(s,cst_Infinity$14) - ?caml_string_notequal(s,cst_NaN$6) - ?custom_error$0(cst_Expected_a_number_but_foun$0,v,lexbuf) - :Stdlib[24] - :Stdlib[22] - :Stdlib[23]} - case 5: - return long_error$0(cst_Expected_number_but_found$0,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$60,v,lexbuf)}}} - function read_number$0(v,lexbuf) - {return ocaml_lex_read_number_rec$0(v,lexbuf,199)} - function read_string$0(v,lexbuf) - {var ocaml_lex_state=233; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - caml_call1(Stdlib_Buffer[8],v[1]);return finish_string$3(v,lexbuf); - case 1:return long_error$0(cst_Expected_but_found$17,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$61,v,lexbuf)}}} - function read_ident$0(v,lexbuf) - {var ocaml_lex_state=237; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - caml_call1(Stdlib_Buffer[8],v[1]);return finish_string$3(v,lexbuf); - case 1: - var s=caml_call3(sub_lexeme$0,lexbuf,lexbuf[5],lexbuf[6]);return s; - case 2: - return long_error$0(cst_Expected_string_or_identif$3,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$62,v,lexbuf)}}} - function map_ident$0(v,f,lexbuf) - {var ocaml_lex_state=242; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - caml_call1(Stdlib_Buffer[8],v[1]);return map_string$0(v,f,lexbuf); - case 1: - var len=lexbuf[6] - lexbuf[5] | 0; - return caml_call3 - (f, - caml_call3(Stdlib_Bytes[8],lexbuf[2],lexbuf[5],len), - 0, - len); - case 2: - return long_error$0(cst_Expected_string_or_identif$4,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$63,v,lexbuf)}}} - function ocaml_lex_read_sequence_rec$0 - (read_cell,init_acc,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); - if(2 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - var acc=[0,init_acc]; - try - {read_space$0(v,lexbuf); - read_array_end$0(lexbuf); - acc[1] = caml_call3(read_cell,acc[1],v,lexbuf); - for(;;) - {read_space$0(v,lexbuf); - read_array_sep$0(v,lexbuf); - read_space$0(v,lexbuf); - acc[1] = caml_call3(read_cell,acc[1],v,lexbuf); - continue}} - catch(_h2_) - {_h2_ = caml_wrap_exception(_h2_); - if(_h2_ === End_of_array)return acc[1]; - throw _h2_} - case 1:return long_error$0(cst_Expected_but_found$18,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$64,v,lexbuf)}}} - function read_sequence$0(read_cell,init_acc,v,lexbuf) - {return ocaml_lex_read_sequence_rec$0(read_cell,init_acc,v,lexbuf,247)} - function ocaml_lex_read_list_rev_rec$0(read_cell,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); - if(2 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - var acc=[0,0]; - try - {read_space$0(v,lexbuf); - read_array_end$0(lexbuf); - var _hZ_=acc[1]; - acc[1] = [0,caml_call2(read_cell,v,lexbuf),_hZ_]; - for(;;) - {read_space$0(v,lexbuf); - read_array_sep$0(v,lexbuf); - read_space$0(v,lexbuf); - var _h0_=acc[1]; - acc[1] = [0,caml_call2(read_cell,v,lexbuf),_h0_]; - continue}} - catch(_h1_) - {_h1_ = caml_wrap_exception(_h1_); - if(_h1_ === End_of_array)return acc[1]; - throw _h1_} - case 1:return long_error$0(cst_Expected_but_found$19,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$65,v,lexbuf)}}} - function read_list_rev$0(read_cell,v,lexbuf) - {return ocaml_lex_read_list_rev_rec$0(read_cell,v,lexbuf,251)} - function read_array_end$0(lexbuf) - {var ocaml_lex_state=255; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)throw End_of_array; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - function read_array_sep$0(v,lexbuf) - {var ocaml_lex_state=257; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:throw End_of_array; - case 2:return long_error$0(cst_Expected_or_but_found$15,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$66,v,lexbuf)}}} - function ocaml_lex_read_tuple_rec - (read_cell,init_acc,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); - if(2 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - var pos=[0,0],acc=[0,init_acc]; - try - {read_space$0(v,lexbuf); - read_tuple_end$0(lexbuf); - acc[1] = caml_call4(read_cell,pos[1],acc[1],v,lexbuf); - pos[1]++; - for(;;) - {read_space$0(v,lexbuf); - read_tuple_sep$0(v,lexbuf); - read_space$0(v,lexbuf); - acc[1] = caml_call4(read_cell,pos[1],acc[1],v,lexbuf); - pos[1]++; - continue}} - catch(_hY_) - {_hY_ = caml_wrap_exception(_hY_); - if(_hY_ === End_of_tuple)return acc[1]; - throw _hY_} - case 1:return long_error$0(cst_Expected_but_found$20,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$67,v,lexbuf)}}} - function read_tuple$0(read_cell,init_acc,v,lexbuf) - {return ocaml_lex_read_tuple_rec(read_cell,init_acc,v,lexbuf,262)} - function read_tuple_end$0(lexbuf) - {var ocaml_lex_state=266; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)throw End_of_tuple; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - function read_tuple_end2$0(v,std,lexbuf) - {var ocaml_lex_state=268; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - if(std)return long_error$0(cst_Expected_or_but_found$16,v,lexbuf); - throw End_of_tuple; - case 1: - if(std)throw End_of_tuple; - return long_error$0(cst_Expected_or_but_found$17,v,lexbuf); - default:return 0}}} - function read_tuple_sep$0(v,lexbuf) - {var ocaml_lex_state=271; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:throw End_of_tuple; - case 2:return long_error$0(cst_Expected_or_but_found$18,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$68,v,lexbuf)}}} - function read_tuple_sep2$0(v,std,lexbuf) - {var ocaml_lex_state=276; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(4 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1: - if(std)return long_error$0(cst_Expected_or_but_found$19,v,lexbuf); - throw End_of_tuple; - case 2: - if(std)throw End_of_tuple; - return long_error$0(cst_Expected_or_but_found$20,v,lexbuf); - case 3:return long_error$0(cst_Expected_or_but_found$21,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$69,v,lexbuf)}}} - function ocaml_lex_read_abstract_fields$0 - (read_key,read_field,init_acc,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); - if(2 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - var acc=[0,init_acc]; - try - {read_space$0(v,lexbuf); - read_object_end$0(lexbuf); - var field_name=caml_call2(read_key,v,lexbuf); - read_space$0(v,lexbuf); - read_colon$0(v,lexbuf); - read_space$0(v,lexbuf); - acc[1] = caml_call4(read_field,acc[1],field_name,v,lexbuf); - for(;;) - {read_space$0(v,lexbuf); - read_object_sep$0(v,lexbuf); - read_space$0(v,lexbuf); - var field_name$0=caml_call2(read_key,v,lexbuf); - read_space$0(v,lexbuf); - read_colon$0(v,lexbuf); - read_space$0(v,lexbuf); - acc[1] = caml_call4(read_field,acc[1],field_name$0,v,lexbuf); - continue}} - catch(_hX_) - {_hX_ = caml_wrap_exception(_hX_); - if(_hX_ === End_of_object)return acc[1]; - throw _hX_} - case 1:return long_error$0(cst_Expected_but_found$21,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$70,v,lexbuf)}}} - function read_abstract_fields$0(read_key,read_field,init_acc,v,lexbuf) - {return ocaml_lex_read_abstract_fields$0 - (read_key,read_field,init_acc,v,lexbuf,282)} - function read_lcurl$0(v,lexbuf) - {var ocaml_lex_state=286; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$0(cst_Expected_but_found$22,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$71,v,lexbuf)}}} - function read_object_end$0(lexbuf) - {var ocaml_lex_state=290; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)throw End_of_object; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - function read_object_sep$0(v,lexbuf) - {var ocaml_lex_state=292; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:throw End_of_object; - case 2:return long_error$0(cst_Expected_or_but_found$22,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$72,v,lexbuf)}}} - function read_colon$0(v,lexbuf) - {var ocaml_lex_state=297; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$0(cst_Expected_but_found$23,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$73,v,lexbuf)}}} - function start_any_tuple$0(v,lexbuf) - {var ocaml_lex_state=301; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return 1; - case 2:return long_error$0(cst_Expected_or_but_found$23,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$74,v,lexbuf)}}} - function read_lpar$0(v,lexbuf) - {var ocaml_lex_state=306; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$0(cst_Expected_but_found$24,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$75,v,lexbuf)}}} - function read_rpar$0(v,lexbuf) - {var ocaml_lex_state=310; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$0(cst_Expected_but_found$25,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$76,v,lexbuf)}}} - function read_lbr$0(v,lexbuf) - {var ocaml_lex_state=314; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$0(cst_Expected_but_found$26,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$77,v,lexbuf)}}} - function read_rbr$0(v,lexbuf) - {var ocaml_lex_state=318; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$0(cst_Expected_but_found$27,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$78,v,lexbuf)}}} - function finish_skip_variant$0(v,lexbuf) - {var ocaml_lex_state=389; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - skip_json$0(v,lexbuf); - read_space$0(v,lexbuf); - return read_gt$0(v,lexbuf); - case 1:return 0; - case 2:return long_error$0(cst_Expected_or_but_found$24,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$81,v,lexbuf)}}} - function finish_skip_stringlit$0(v,lexbuf) - {var ocaml_lex_state=378; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$0(cst_Invalid_string_literal$3,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$80,v,lexbuf)}}} - function skip_json$3(counter,v,lexbuf) - {var _hW_=322; - if(counter < 50) - {var counter$0=counter + 1 | 0; - return ocaml_lex_skip_json_rec$0(counter$0,v,lexbuf,_hW_)} - return caml_trampoline_return - (ocaml_lex_skip_json_rec$0,[0,v,lexbuf,_hW_])} - function ocaml_lex_skip_json_rec$0(counter,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); - if(18 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0:return 0; - case 1:return 0; - case 2:return 0; - case 3:return 0; - case 4:return 0; - case 5:return 0; - case 6:return finish_skip_stringlit$0(v,lexbuf); - case 7:return 0; - case 8:return 0; - case 9: - try - {read_space$0(v,lexbuf); - read_object_end$0(lexbuf); - skip_ident$0(v,lexbuf); - read_space$0(v,lexbuf); - read_colon$0(v,lexbuf); - read_space$0(v,lexbuf); - skip_json$0(v,lexbuf); - for(;;) - {read_space$0(v,lexbuf); - read_object_sep$0(v,lexbuf); - read_space$0(v,lexbuf); - skip_ident$0(v,lexbuf); - read_space$0(v,lexbuf); - read_colon$0(v,lexbuf); - read_space$0(v,lexbuf); - skip_json$0(v,lexbuf); - continue}} - catch(_hV_) - {_hV_ = caml_wrap_exception(_hV_); - if(_hV_ === End_of_object)return 0; - throw _hV_} - case 10: - try - {read_space$0(v,lexbuf); - read_array_end$0(lexbuf); - skip_json$0(v,lexbuf); - for(;;) - {read_space$0(v,lexbuf); - read_array_sep$0(v,lexbuf); - read_space$0(v,lexbuf); - skip_json$0(v,lexbuf); - continue}} - catch(_hU_) - {_hU_ = caml_wrap_exception(_hU_); - if(_hU_ === End_of_array)return 0; - throw _hU_} - case 11: - try - {read_space$0(v,lexbuf); - read_tuple_end$0(lexbuf); - skip_json$0(v,lexbuf); - for(;;) - {read_space$0(v,lexbuf); - read_tuple_sep$0(v,lexbuf); - read_space$0(v,lexbuf); - skip_json$0(v,lexbuf); - continue}} - catch(_hT_) - {_hT_ = caml_wrap_exception(_hT_); - if(_hT_ === End_of_tuple)return 0; - throw _hT_} - case 12: - read_space$0(v,lexbuf); - skip_ident$0(v,lexbuf); - read_space$0(v,lexbuf); - return finish_skip_variant$0(v,lexbuf); - case 13: - if(counter < 50) - {var counter$0=counter + 1 | 0; - return skip_json$3(counter$0,v,lexbuf)} - return caml_trampoline_return(skip_json$3,[0,v,lexbuf]); - case 14: - finish_comment$0(v,lexbuf); - if(counter < 50) - {var counter$1=counter + 1 | 0; - return skip_json$3(counter$1,v,lexbuf)} - return caml_trampoline_return(skip_json$3,[0,v,lexbuf]); - case 15: - newline$0(v,lexbuf); - if(counter < 50) - {var counter$2=counter + 1 | 0; - return skip_json$3(counter$2,v,lexbuf)} - return caml_trampoline_return(skip_json$3,[0,v,lexbuf]); - case 16: - if(counter < 50) - {var counter$3=counter + 1 | 0; - return skip_json$3(counter$3,v,lexbuf)} - return caml_trampoline_return(skip_json$3,[0,v,lexbuf]); - case 17: - return custom_error$0(cst_Unexpected_end_of_input$79,v,lexbuf); - default:return long_error$0(cst_Invalid_token$10,v,lexbuf)}}} - function skip_json$0(v,lexbuf) - {return caml_trampoline(skip_json$3(0,v,lexbuf))} - function skip_ident$0(v,lexbuf) - {var ocaml_lex_state=394; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return finish_skip_stringlit$0(v,lexbuf); - case 1:return 0; - case 2: - return long_error$0(cst_Expected_string_or_identif$5,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$82,v,lexbuf)}}} - function finish_buffer_variant(v,lexbuf) - {var ocaml_lex_state=461; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - caml_call2(Stdlib_Buffer[12],v[1],58); - buffer_json$0(v,lexbuf); - buffer_space$0(v,lexbuf); - var ocaml_lex_state$1=503; - for(;;) - {var - ocaml_lex_state$2= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$1,lexbuf); - if(2 < ocaml_lex_state$2 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$1=ocaml_lex_state$2; - continue} - switch(ocaml_lex_state$2) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],62); - case 1:return long_error$0(cst_Expected_but_found$29,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$91,v,lexbuf)}} - case 1:return caml_call2(Stdlib_Buffer[12],v[1],62); - case 2:return long_error$0(cst_Expected_or_but_found$25,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$85,v,lexbuf)}}} - function finish_buffer_stringlit$0(v,lexbuf) - {var ocaml_lex_state=450; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - caml_call2(Stdlib_Buffer[12],v[1],34); - return add_lexeme$0(v[1],lexbuf); - case 1:return long_error$0(cst_Invalid_string_literal$4,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$84,v,lexbuf)}}} - function buffer_json$3(counter,v,lexbuf) - {var _hS_=399; - if(counter < 50) - {var counter$0=counter + 1 | 0; - return ocaml_lex_buffer_json_rec$0(counter$0,v,lexbuf,_hS_)} - return caml_trampoline_return - (ocaml_lex_buffer_json_rec$0,[0,v,lexbuf,_hS_])} - function ocaml_lex_buffer_json_rec$0(counter,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); - if(11 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0:return add_lexeme$0(v[1],lexbuf); - case 1:return finish_buffer_stringlit$0(v,lexbuf); - case 2: - try - {caml_call2(Stdlib_Buffer[12],v[1],123); - buffer_space$0(v,lexbuf); - buffer_object_end$0(v,lexbuf); - buffer_ident$0(v,lexbuf); - buffer_space$0(v,lexbuf); - buffer_colon$0(v,lexbuf); - buffer_space$0(v,lexbuf); - buffer_json$0(v,lexbuf); - for(;;) - {buffer_space$0(v,lexbuf); - buffer_object_sep$0(v,lexbuf); - buffer_space$0(v,lexbuf); - buffer_ident$0(v,lexbuf); - buffer_space$0(v,lexbuf); - buffer_colon$0(v,lexbuf); - buffer_space$0(v,lexbuf); - buffer_json$0(v,lexbuf); - continue}} - catch(_hR_) - {_hR_ = caml_wrap_exception(_hR_); - if(_hR_ === End_of_object)return 0; - throw _hR_} - case 3: - try - {caml_call2(Stdlib_Buffer[12],v[1],91); - buffer_space$0(v,lexbuf); - buffer_array_end$0(v,lexbuf); - buffer_json$0(v,lexbuf); - for(;;) - {buffer_space$0(v,lexbuf); - buffer_array_sep$0(v,lexbuf); - buffer_space$0(v,lexbuf); - buffer_json$0(v,lexbuf); - continue}} - catch(_hQ_) - {_hQ_ = caml_wrap_exception(_hQ_); - if(_hQ_ === End_of_array)return 0; - throw _hQ_} - case 4: - try - {caml_call2(Stdlib_Buffer[12],v[1],40); - buffer_space$0(v,lexbuf); - buffer_tuple_end(v,lexbuf); - buffer_json$0(v,lexbuf); - for(;;) - {buffer_space$0(v,lexbuf); - buffer_tuple_sep(v,lexbuf); - buffer_space$0(v,lexbuf); - buffer_json$0(v,lexbuf); - continue}} - catch(_hP_) - {_hP_ = caml_wrap_exception(_hP_); - if(_hP_ === End_of_tuple)return 0; - throw _hP_} - case 5: - caml_call2(Stdlib_Buffer[12],v[1],60); - buffer_space$0(v,lexbuf); - buffer_ident$0(v,lexbuf); - buffer_space$0(v,lexbuf); - return finish_buffer_variant(v,lexbuf); - case 6: - add_lexeme$0(v[1],lexbuf); - if(counter < 50) - {var counter$0=counter + 1 | 0; - return buffer_json$3(counter$0,v,lexbuf)} - return caml_trampoline_return(buffer_json$3,[0,v,lexbuf]); - case 7: - caml_call2(Stdlib_Buffer[16],v[1],cst$56); - finish_buffer_comment$0(v,lexbuf); - if(counter < 50) - {var counter$1=counter + 1 | 0; - return buffer_json$3(counter$1,v,lexbuf)} - return caml_trampoline_return(buffer_json$3,[0,v,lexbuf]); - case 8: - caml_call2(Stdlib_Buffer[12],v[1],10); - newline$0(v,lexbuf); - if(counter < 50) - {var counter$2=counter + 1 | 0; - return buffer_json$3(counter$2,v,lexbuf)} - return caml_trampoline_return(buffer_json$3,[0,v,lexbuf]); - case 9: - add_lexeme$0(v[1],lexbuf); - if(counter < 50) - {var counter$3=counter + 1 | 0; - return buffer_json$3(counter$3,v,lexbuf)} - return caml_trampoline_return(buffer_json$3,[0,v,lexbuf]); - case 10: - return custom_error$0(cst_Unexpected_end_of_input$83,v,lexbuf); - default:return long_error$0(cst_Invalid_token$11,v,lexbuf)}}} - function buffer_json$0(v,lexbuf) - {return caml_trampoline(buffer_json$3(0,v,lexbuf))} - function buffer_ident$0(v,lexbuf) - {var ocaml_lex_state=466; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return finish_buffer_stringlit$0(v,lexbuf); - case 1:return add_lexeme$0(v[1],lexbuf); - case 2: - return long_error$0(cst_Expected_string_or_identif$6,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$86,v,lexbuf)}}} - function buffer_space$0(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=471; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(4 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:add_lexeme$0(v[1],lexbuf);newline$0(v,lexbuf);continue a; + (cst_Unexpected_end_of_input$91, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$15 = ocaml_lex_state$16; + } case 1: - caml_call2(Stdlib_Buffer[16],v[1],cst$57); - finish_buffer_comment$0(v,lexbuf); - continue a; + return caml_call2(Stdlib_Buffer[12], v[1], 62); case 2: - caml_call2(Stdlib_Buffer[12],v[1],10); - newline$0(v,lexbuf); - continue a; - case 3:add_lexeme$0(v[1],lexbuf);continue a; - default:return 0}}}} - function buffer_object_end$0(v,lexbuf) - {var ocaml_lex_state=478; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0) - {caml_call2(Stdlib_Buffer[12],v[1],125);throw End_of_object} - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - function buffer_object_sep$0(v,lexbuf) - {var ocaml_lex_state=480; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],44); - case 1:caml_call2(Stdlib_Buffer[12],v[1],125);throw End_of_object; - case 2:return long_error$0(cst_Expected_or_but_found$26,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$87,v,lexbuf)}}} - function buffer_array_end$0(v,lexbuf) - {var ocaml_lex_state=485; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0) - {caml_call2(Stdlib_Buffer[12],v[1],93);throw End_of_array} - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - function buffer_array_sep$0(v,lexbuf) - {var ocaml_lex_state=487; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],44); - case 1:caml_call2(Stdlib_Buffer[12],v[1],93);throw End_of_array; - case 2:return long_error$0(cst_Expected_or_but_found$27,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$88,v,lexbuf)}}} - function buffer_tuple_end(v,lexbuf) - {var ocaml_lex_state=492; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0) - {caml_call2(Stdlib_Buffer[12],v[1],41);throw End_of_tuple} - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - function buffer_tuple_sep(v,lexbuf) - {var ocaml_lex_state=494; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],44); - case 1:caml_call2(Stdlib_Buffer[12],v[1],41);throw End_of_tuple; - case 2:return long_error$0(cst_Expected_or_but_found$28,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$89,v,lexbuf)}}} - function buffer_colon$0(v,lexbuf) - {var ocaml_lex_state=499; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],58); - case 1:return long_error$0(cst_Expected_but_found$28,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$90,v,lexbuf)}}} - function finish_buffer_comment$0(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=507; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[16],v[1],cst$58); - case 1:return long_error$0(cst_Unterminated_comment$2,v,lexbuf); - case 2: - caml_call2(Stdlib_Buffer[12],v[1],10); - newline$0(v,lexbuf); - continue a; - default:add_lexeme$0(v[1],lexbuf);continue a}}}} - function junk$0(lexbuf) - {var ocaml_lex_state=513; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)return caml_call1(lexeme$0,lexbuf); - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - read_junk$0[1] = junk$0; - function read_int8$0(v,lexbuf) - {var n=read_int$0(v,lexbuf); - if(0 <= n && ! (255 < n))return caml_call1(Stdlib[29],n); - return lexer_error$0(cst_Int8_overflow$0,v,lexbuf)} - function read_list$0(read_cell,v,lexbuf) - {var _hO_=read_list_rev$0(read_cell,v,lexbuf); - return caml_call1(Stdlib_List[9],_hO_)} - function read_array$0(read_cell,v,lexbuf) - {var l=read_list_rev$0(read_cell,v,lexbuf); - if(l) - {var - tl=l[2], - x=l[1], - len=caml_call1(Stdlib_List[1],l), - a=caml_make_vect(len,x), - r=[0,tl], - _hL_=len - 2 | 0; - if(! (_hL_ < 0)) - {var i=_hL_; - for(;;) - {var _hM_=caml_call1(Stdlib_List[5],r[1]); - caml_check_bound(a,i)[1 + i] = _hM_; - r[1] = caml_call1(Stdlib_List[6],r[1]); - var _hN_=i - 1 | 0; - if(0 !== i){var i=_hN_;continue} - break}} - return a} - return [0]} - function read_fields$0(read_field,init_acc,v) - {return function(_hK_) - {return read_abstract_fields$0(read_ident$0,read_field,init_acc,v,_hK_)}} - function from_lexbuf$0(v,opt,lexbuf) - {if(opt)var sth=opt[1],stream=sth;else var stream=0; - read_space$0(v,lexbuf); - if(read_eof$0(lexbuf))throw End_of_input; - var x=read_json$0(v,lexbuf); - if(1 - stream) - {read_space$0(v,lexbuf); - if(1 - read_eof$0(lexbuf)) - long_error$0(cst_Junk_after_end_of_JSON_val$0,v,lexbuf)} - return x} - function from_string$2(buf,fname,lnum,s) - {try - {var - lexbuf=caml_call2(from_string$1,0,s), - v=init_lexer(buf,fname,lnum,0), - _hI_=from_lexbuf$0(v,0,lexbuf); - return _hI_} - catch(_hJ_) - {_hJ_ = caml_wrap_exception(_hJ_); - if(_hJ_ === End_of_input)return json_error(cst_Blank_input_data$1); - throw _hJ_}} - function from_channel$2(buf,fname,lnum,ic) - {try - {var - lexbuf=caml_call2(from_channel$1,0,ic), - v=init_lexer(buf,fname,lnum,0), - _hG_=from_lexbuf$0(v,0,lexbuf); - return _hG_} - catch(_hH_) - {_hH_ = caml_wrap_exception(_hH_); - if(_hH_ === End_of_input)return json_error(cst_Blank_input_data$2); - throw _hH_}} - function from_file$0(buf,fname,lnum,file) - {var ic=caml_call1(Stdlib[79],file); - try - {var x=from_channel$2(buf,fname,lnum,ic); - caml_call1(Stdlib[93],ic); - return x} - catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[94],ic);throw e}} - var Finally$0=[248,cst_Yojson_Safe_Finally,caml_fresh_oo_id(0)]; - function seq_from_lexbuf$0(v,opt,lexbuf) - {if(opt)var sth=opt[1],fin=sth;else var fin=function(param){return 0}; - function f(param) - {try - {var _hF_=[0,from_lexbuf$0(v,stream$0,lexbuf),f];return _hF_} - catch(e) - {e = caml_wrap_exception(e); - if(e === End_of_input){caml_call1(fin,0);return 0} - try - {caml_call1(fin,0)} - catch(fin_e) - {fin_e = caml_wrap_exception(fin_e);throw [0,Finally$0,e,fin_e]} - throw e}} - return f} - function seq_from_string$0(buf,fname,lnum,s) - {var v=init_lexer(buf,fname,lnum,0); - return seq_from_lexbuf$0(v,0,caml_call2(from_string$1,0,s))} - function seq_from_channel$0(buf,fin,fname,lnum,ic) - {var - lexbuf=caml_call2(from_channel$1,0,ic), - v=init_lexer(buf,fname,lnum,0); - return seq_from_lexbuf$0(v,fin,lexbuf)} - function seq_from_file$0(buf,fname,lnum,file) - {var ic=caml_call1(Stdlib[79],file); - function fin(param){return caml_call1(Stdlib[93],ic)} + return long_error$0(cst_Expected_or_but_found$25, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$85, v, lexbuf); + } + } + case 6: + add_lexeme$0(v[1], lexbuf); continue a; + case 7: + caml_call2(Stdlib_Buffer[16], v[1], cst$56); + finish_buffer_comment$0(v, lexbuf); + continue a; + case 8: + caml_call2(Stdlib_Buffer[12], v[1], 10); + newline$0(v, lexbuf); + continue a; + case 9: + add_lexeme$0(v[1], lexbuf); continue a; + case 10: + return custom_error$0(cst_Unexpected_end_of_input$83, v, lexbuf); + default: return long_error$0(cst_Invalid_token$11, v, lexbuf); + } + } + } + } + function buffer_ident$0(v, lexbuf){ + var ocaml_lex_state = 466; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return finish_buffer_stringlit$0(v, lexbuf); + case 1: + return add_lexeme$0(v[1], lexbuf); + case 2: + return long_error$0(cst_Expected_string_or_identif$6, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$86, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function buffer_space$0(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 471; + for(;;){ var - fname$0=fname || [0,file], - lexbuf=caml_call2(from_channel$1,0,ic), - v=init_lexer(buf,fname$0,lnum,0); - return seq_from_lexbuf$0(v,[0,fin],lexbuf)} - function lineseq_from_channel$0(buf,opt,fname,_hx_,ic) - {if(opt)var sth=opt[1],fin=sth;else var fin=function(param){return 0}; - if(_hx_)var sth$0=_hx_[1],lnum0=sth$0;else var lnum0=1; - var buf$0=buf || [0,caml_call1(Stdlib_Buffer[1],256)]; - function f(lnum,param) - {try - {var - line=caml_call1(Stdlib[83],ic), - _hA_=lnum + 1 | 0, - _hB_=function(_hE_){return f(_hA_,_hE_)}, - _hC_= - [0,[0,826371656,from_string$2(buf$0,fname,[0,lnum],line)],_hB_]; - return _hC_} - catch(e) - {e = caml_wrap_exception(e); - if(e === Stdlib[12]){caml_call1(fin,0);return 0} - var _hz_=lnum + 1 | 0; - return [0,[0,3458171,e],function(_hD_){return f(_hz_,_hD_)}]}} - return function(_hy_){return f(lnum0,_hy_)}} - function lineseq_from_file$0(buf,fname,lnum,file) - {var ic=caml_call1(Stdlib[79],file); - function fin(param){return caml_call1(Stdlib[93],ic)} - var fname$0=fname || [0,file]; - return lineseq_from_channel$0(buf,[0,fin],fname$0,lnum,ic)} - function prettify$0(std,s) - {return pretty_to_string$1(std,from_string$2(0,0,0,s))} - function compact$0(std,s) - {return to_string$2(0,0,0,0,from_string$2(0,0,0,s))} - var Type_error$0=[248,cst_Yojson_Safe_Util_Type_erro,caml_fresh_oo_id(0)]; - function typerr$0(msg,js) - {if(typeof js === "number") - var _hw_=cst_null$6; - else - var - _hv_=js[1], - _hw_= - 708012133 <= _hv_ - ?726928360 === _hv_ - ?cst_tuple$0 - :848054398 <= _hv_ - ?963043957 <= _hv_?cst_object$0:cst_array$0 - :737456202 <= _hv_?cst_bool$0:cst_variant$0 - :3654863 <= _hv_ - ?365180284 <= _hv_?cst_float$0:cst_int$0 - :-752863768 <= _hv_?cst_intlit$0:cst_string$0; - throw [0,Type_error$0,caml_call2(Stdlib[28],msg,_hw_),js]} - var Undefined$0=[248,cst_Yojson_Safe_Util_Undefined,caml_fresh_oo_id(0)]; - function assoc$0(name,obj) - {try - {var _ht_=caml_call2(Stdlib_List[46],name,obj);return _ht_} - catch(_hu_) - {_hu_ = caml_wrap_exception(_hu_); - if(_hu_ === Stdlib[8])return 870828711; - throw _hu_}} - function member$0(name,js) - {if(typeof js !== "number" && 963043957 === js[1]) - {var obj=js[2];return assoc$0(name,obj)} - var _hs_=caml_call2(Stdlib[28],name,cst_of_non_object_type$0); - return typerr$0(caml_call2(Stdlib[28],cst_Can_t_get_member$0,_hs_),js)} - function index$0(i,js) - {if(typeof js !== "number" && 848054398 === js[1]) - {var - l=js[2], - len=caml_call1(Stdlib_List[1],l), - wrapped_index=0 <= i?i:len + i | 0; - if(0 <= wrapped_index && ! (len <= wrapped_index)) - return caml_call2(Stdlib_List[7],l,wrapped_index); - var - _hq_=caml_call1(Stdlib[33],i), - _hr_=caml_call2(Stdlib[28],_hq_,cst_out_of_bounds$0); - throw [0,Undefined$0,caml_call2(Stdlib[28],cst_Index$0,_hr_),js]} + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + add_lexeme$0(v[1], lexbuf); newline$0(v, lexbuf); continue a; + case 1: + caml_call2(Stdlib_Buffer[16], v[1], cst$57); + finish_buffer_comment$0(v, lexbuf); + continue a; + case 2: + caml_call2(Stdlib_Buffer[12], v[1], 10); + newline$0(v, lexbuf); + continue a; + case 3: + add_lexeme$0(v[1], lexbuf); continue a; + default: return 0; + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function buffer_colon$0(v, lexbuf){ + var ocaml_lex_state = 499; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return caml_call2(Stdlib_Buffer[12], v[1], 58); + case 1: + return long_error$0(cst_Expected_but_found$28, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$90, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_buffer_comment$0(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 507; + for(;;){ var - _ho_=caml_call1(Stdlib[33],i), - _hp_=caml_call2(Stdlib[28],_ho_,cst_of_non_array_type$0); - return typerr$0(caml_call2(Stdlib[28],cst_Can_t_get_index$0,_hp_),js)} - function map$0(f,js) - {if(typeof js !== "number" && 848054398 === js[1]) - {var l=js[2];return [0,848054398,caml_call2(Stdlib_List[19],f,l)]} - return typerr$0(cst_Can_t_map_function_over_no$0,js)} - function to_assoc$0(js) - {if(typeof js !== "number" && 963043957 === js[1]) - {var obj=js[2];return obj} - return typerr$0(cst_Expected_object_got$0,js)} - function to_option$0(f,x){return 870828711 === x?0:[0,caml_call1(f,x)]} - function to_bool$0(js) - {if(typeof js !== "number" && 737456202 === js[1]){var b=js[2];return b} - return typerr$0(cst_Expected_bool_got$0,js)} - function to_bool_option$0(js) - {if(typeof js === "number") - {if(870828711 === js)return 0} - else - if(737456202 === js[1]){var b=js[2];return [0,b]} - return typerr$0(cst_Expected_bool_or_null_got$0,js)} - function to_number$0(js) - {if(typeof js !== "number") - {var _hn_=js[1]; - if(3654863 === _hn_){var i=js[2];return i} - if(365180284 === _hn_){var f=js[2];return f}} - return typerr$0(cst_Expected_number_got$0,js)} - function to_number_option$0(js) - {if(typeof js === "number") - {if(870828711 === js)return 0} - else - {var _hm_=js[1]; - if(3654863 === _hm_){var i=js[2];return [0,i]} - if(365180284 === _hm_){var f=js[2];return [0,f]}} - return typerr$0(cst_Expected_number_or_null_go$0,js)} - function to_float$0(js) - {if(typeof js !== "number" && 365180284 === js[1]){var f=js[2];return f} - return typerr$0(cst_Expected_float_got$0,js)} - function to_float_option$0(js) - {if(typeof js === "number") - {if(870828711 === js)return 0} - else - if(365180284 === js[1]){var f=js[2];return [0,f]} - return typerr$0(cst_Expected_float_or_null_got$0,js)} - function to_int$0(js) - {if(typeof js !== "number" && 3654863 === js[1]){var i=js[2];return i} - return typerr$0(cst_Expected_int_got$0,js)} - function to_int_option$0(js) - {if(typeof js === "number") - {if(870828711 === js)return 0} - else - if(3654863 === js[1]){var i=js[2];return [0,i]} - return typerr$0(cst_Expected_int_or_null_got$0,js)} - function to_list$0(js) - {if(typeof js !== "number" && 848054398 === js[1]){var l=js[2];return l} - return typerr$0(cst_Expected_array_got$0,js)} - function to_string$3(js) - {if(typeof js !== "number" && -976970511 === js[1]){var s=js[2];return s} - return typerr$0(cst_Expected_string_got$0,js)} - function to_string_option$0(js) - {if(typeof js === "number") - {if(870828711 === js)return 0} - else - if(-976970511 === js[1]){var s=js[2];return [0,s]} - return typerr$0(cst_Expected_string_or_null_go$0,js)} - function convert_each$0(f,js) - {if(typeof js !== "number" && 848054398 === js[1]) - {var l=js[2];return caml_call2(Stdlib_List[19],f,l)} - return typerr$0(cst_Can_t_convert_each_element$0,js)} - function filter_map$0(f,l$0) - {var acc=0,l=l$0; - for(;;) - {if(l) - {var tl=l[2],x=l[1],match=caml_call1(f,x); - if(match){var y=match[1],acc$0=[0,y,acc],acc=acc$0,l=tl;continue} - var l=tl; - continue} - return caml_call1(Stdlib_List[9],acc)}} - function flatten$0(l$0) - {var acc=0,l=l$0; - for(;;) - {if(l) - {var tl=l[2],x=l[1]; - if(typeof x !== "number" && 848054398 === x[1]) - {var - l2=x[2], - acc$0=caml_call2(Stdlib_List[12],l2,acc), - acc=acc$0, - l=tl; - continue} - var l=tl; - continue} - return caml_call1(Stdlib_List[9],acc)}} - function filter_index$0(i,l) - {return filter_map$0 - (function(param) - {if(typeof param !== "number" && 848054398 === param[1]) - {var l=param[2]; - try - {var _hk_=[0,caml_call2(Stdlib_List[7],l,i)];return _hk_} - catch(_hl_){return 0}} - return 0}, - l)} - function filter_list$0(l) - {return filter_map$0 - (function(param) - {if(typeof param !== "number" && 848054398 === param[1]) - {var l=param[2];return [0,l]} - return 0}, - l)} - function filter_member$0(k,l) - {return filter_map$0 - (function(param) - {if(typeof param !== "number" && 963043957 === param[1]) - {var l=param[2]; - try - {var _hi_=[0,caml_call2(Stdlib_List[46],k,l)];return _hi_} - catch(_hj_){return 0}} - return 0}, - l)} - function filter_assoc$0(l) - {return filter_map$0 - (function(param) - {if(typeof param !== "number" && 963043957 === param[1]) - {var l=param[2];return [0,l]} - return 0}, - l)} - function filter_bool$0(l) - {return filter_map$0 - (function(param) - {if(typeof param !== "number" && 737456202 === param[1]) - {var x=param[2];return [0,x]} - return 0}, - l)} - function filter_int$0(l) - {return filter_map$0 - (function(param) - {if(typeof param !== "number" && 3654863 === param[1]) - {var x=param[2];return [0,x]} - return 0}, - l)} - function filter_float$0(l) - {return filter_map$0 - (function(param) - {if(typeof param !== "number" && 365180284 === param[1]) - {var x=param[2];return [0,x]} - return 0}, - l)} - function filter_number$0(l) - {return filter_map$0 - (function(param) - {if(typeof param !== "number") - {var _hh_=param[1]; - if(3654863 === _hh_){var x=param[2];return [0,x]} - if(365180284 === _hh_){var x$0=param[2];return [0,x$0]}} - return 0}, - l)} - function filter_string$0(l) - {return filter_map$0 - (function(param) - {if(typeof param !== "number" && -976970511 === param[1]) - {var x=param[2];return [0,x]} - return 0}, - l)} - function keys$0(o) - {var _hf_=to_assoc$0(o); - function _hg_(param){var key=param[1];return key} - return caml_call1(caml_call1(Stdlib_List[19],_hg_),_hf_)} - function values$0(o) - {var _hd_=to_assoc$0(o); - function _he_(param){var value=param[2];return value} - return caml_call1(caml_call1(Stdlib_List[19],_he_),_hd_)} - function combine$0(first,second) - {if - (typeof first - !== - "number" - && - 963043957 - === - first[1] - && - typeof second - !== - "number" - && - 963043957 - === - second[1]) - {var b=second[2],a=first[2]; - return [0,963043957,caml_call2(Stdlib[37],a,b)]} - throw [0,Stdlib[6],cst_Expected_two_objects_check$0]} - function hex$4(n) - {var _hc_=10 <= n?n + 87 | 0:n + 48 | 0; - return caml_call1(Stdlib_Char[1],_hc_)} - function write_special$2(src,start,stop,ob,str) - {caml_call4(Stdlib_Buffer[18],ob,src,start[1],stop - start[1] | 0); - caml_call2(Stdlib_Buffer[16],ob,str); - start[1] = stop + 1 | 0; - return 0} - function finish_string$4(src,start,ob) - {try - {var - _hb_= + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return caml_call2(Stdlib_Buffer[16], v[1], cst$58); + case 1: + return long_error$0(cst_Unterminated_comment$2, v, lexbuf); + case 2: + caml_call2(Stdlib_Buffer[12], v[1], 10); + newline$0(v, lexbuf); + continue a; + default: add_lexeme$0(v[1], lexbuf); continue a; + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function junk$0(lexbuf){ + var ocaml_lex_state = 513; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) return caml_call1(lexeme$0, lexbuf); + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + read_junk$0[1] = junk$0; + function read_int8$0(v, lexbuf){ + var n = read_int$0(v, lexbuf); + if(0 <= n && 255 >= n) return caml_call1(Stdlib[29], n); + return lexer_error$0(cst_Int8_overflow$0, v, lexbuf); + } + function read_list$0(read_cell, v, lexbuf){ + var _h0_ = read_list_rev$0(read_cell, v, lexbuf); + return caml_call1(Stdlib_List[9], _h0_); + } + function read_array$0(read_cell, v, lexbuf){ + var l = read_list_rev$0(read_cell, v, lexbuf); + if(! l) return [0]; + var + tl = l[2], + x = l[1], + len = caml_call1(Stdlib_List[1], l), + a = caml_make_vect(len, x), + r = [0, tl], + _hX_ = len - 2 | 0; + if(_hX_ >= 0){ + var i = _hX_; + for(;;){ + var _hY_ = caml_call1(Stdlib_List[5], r[1]); + caml_check_bound(a, i)[1 + i] = _hY_; + r[1] = caml_call1(Stdlib_List[6], r[1]); + var _hZ_ = i - 1 | 0; + if(0 !== i){var i = _hZ_; continue;} + break; + } + } + return a; + } + function read_fields$0(read_field, init_acc, v){ + return function(_hW_){ + return read_abstract_fields$0 + (read_ident$0, read_field, init_acc, v, _hW_);}; + } + function from_lexbuf$0(v, opt, lexbuf){ + if(opt) var sth = opt[1], stream = sth; else var stream = 0; + read_space$0(v, lexbuf); + if(read_eof$0(lexbuf)) throw caml_maybe_attach_backtrace(End_of_input, 1); + var x = read_json$0(v, lexbuf); + if(1 - stream){ + read_space$0(v, lexbuf); + if(1 - read_eof$0(lexbuf)) + long_error$0(cst_Junk_after_end_of_JSON_val$0, v, lexbuf); + } + return x; + } + function from_string$2(buf, fname, lnum, s){ + try{ + var + lexbuf = caml_call2(from_string$1, 0, s), + v = init_lexer(buf, fname, lnum, 0), + _hU_ = from_lexbuf$0(v, 0, lexbuf); + return _hU_; + } + catch(_hV_){ + var _hT_ = caml_wrap_exception(_hV_); + if(_hT_ === End_of_input) return json_error(cst_Blank_input_data$1); + throw caml_maybe_attach_backtrace(_hT_, 0); + } + } + function from_channel$2(buf, fname, lnum, ic){ + try{ + var + lexbuf = caml_call2(from_channel$1, 0, ic), + v = init_lexer(buf, fname, lnum, 0), + _hR_ = from_lexbuf$0(v, 0, lexbuf); + return _hR_; + } + catch(_hS_){ + var _hQ_ = caml_wrap_exception(_hS_); + if(_hQ_ === End_of_input) return json_error(cst_Blank_input_data$2); + throw caml_maybe_attach_backtrace(_hQ_, 0); + } + } + function from_file$0(buf, fname, lnum, file){ + var ic = caml_call1(Stdlib[79], file); + try{ + var x = from_channel$2(buf, fname, lnum, ic); + caml_call1(Stdlib[93], ic); + return x; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + caml_call1(Stdlib[94], ic); + throw caml_maybe_attach_backtrace(e, 0); + } + } + var Finally$0 = [248, cst_Yojson_Safe_Finally, caml_fresh_oo_id(0)]; + function seq_from_lexbuf$0(v, opt, lexbuf){ + if(opt) + var sth = opt[1], fin = sth; + else + var fin = function(param){return 0;}; + function f(param){ + try{var _hP_ = [0, from_lexbuf$0(v, stream$0, lexbuf), f]; return _hP_;} + catch(e$0){ + var e = caml_wrap_exception(e$0); + if(e === End_of_input){caml_call1(fin, 0); return 0;} + try{caml_call1(fin, 0);} + catch(fin_e$0){ + var fin_e = caml_wrap_exception(fin_e$0); + throw caml_maybe_attach_backtrace([0, Finally$0, e, fin_e], 1); + } + throw caml_maybe_attach_backtrace(e, 0); + } + } + return f; + } + function seq_from_string$0(buf, fname, lnum, s){ + var v = init_lexer(buf, fname, lnum, 0); + return seq_from_lexbuf$0(v, 0, caml_call2(from_string$1, 0, s)); + } + function seq_from_channel$0(buf, fin, fname, lnum, ic){ + var + lexbuf = caml_call2(from_channel$1, 0, ic), + v = init_lexer(buf, fname, lnum, 0); + return seq_from_lexbuf$0(v, fin, lexbuf); + } + function seq_from_file$0(buf, fname, lnum, file){ + var ic = caml_call1(Stdlib[79], file); + function fin(param){return caml_call1(Stdlib[93], ic);} + var + fname$0 = fname || [0, file], + lexbuf = caml_call2(from_channel$1, 0, ic), + v = init_lexer(buf, fname$0, lnum, 0); + return seq_from_lexbuf$0(v, [0, fin], lexbuf); + } + function lineseq_from_channel$0(buf, opt, fname, _hH_, ic){ + if(opt) + var sth = opt[1], fin = sth; + else + var fin = function(param){return 0;}; + if(_hH_) var sth$0 = _hH_[1], lnum0 = sth$0; else var lnum0 = 1; + var buf$0 = buf || [0, caml_call1(Stdlib_Buffer[1], 256)]; + function f(lnum, param){ + try{ + var + line = caml_call1(Stdlib[83], ic), + _hK_ = lnum + 1 | 0, + _hL_ = function(_hO_){return f(_hK_, _hO_);}, + _hM_ = + [0, + [0, 826371656, from_string$2(buf$0, fname, [0, lnum], line)], + _hL_]; + return _hM_; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + if(e === Stdlib[12]){caml_call1(fin, 0); return 0;} + var _hJ_ = lnum + 1 | 0; + return [0, [0, 3458171, e], function(_hN_){return f(_hJ_, _hN_);}]; + } + } + return function(_hI_){return f(lnum0, _hI_);}; + } + function lineseq_from_file$0(buf, fname, lnum, file){ + var ic = caml_call1(Stdlib[79], file); + function fin(param){return caml_call1(Stdlib[93], ic);} + var fname$0 = fname || [0, file]; + return lineseq_from_channel$0(buf, [0, fin], fname$0, lnum, ic); + } + function prettify$0(std, s){ + return pretty_to_string$1(std, from_string$2(0, 0, 0, s)); + } + function compact$0(std, s){ + return to_string$2(0, 0, 0, 0, from_string$2(0, 0, 0, s)); + } + var + Type_error$0 = [248, cst_Yojson_Safe_Util_Type_erro, caml_fresh_oo_id(0)]; + function typerr$0(msg, js){ + if(typeof js === "number") + var _hG_ = cst_null$6; + else + var + _hF_ = js[1], + _hG_ = + 708012133 <= _hF_ + ? 726928360 + === _hF_ + ? cst_tuple$0 + : 848054398 + <= _hF_ + ? 963043957 <= _hF_ ? cst_object$0 : cst_array$0 + : 737456202 <= _hF_ ? cst_bool$0 : cst_variant$0 + : 3654863 + <= _hF_ + ? 365180284 <= _hF_ ? cst_float$0 : cst_int$0 + : -752863768 <= _hF_ ? cst_intlit$0 : cst_string$0; + throw caml_maybe_attach_backtrace + ([0, Type_error$0, caml_call2(Stdlib[28], msg, _hG_), js], 1); + } + var + Undefined$0 = [248, cst_Yojson_Safe_Util_Undefined, caml_fresh_oo_id(0)]; + function member$0(name, js){ + if(typeof js !== "number" && 963043957 === js[1]){ + var obj = js[2]; + try{var _hC_ = caml_call2(Stdlib_List[46], name, obj); return _hC_;} + catch(_hE_){ + var _hB_ = caml_wrap_exception(_hE_); + if(_hB_ === Stdlib[8]) return 870828711; + throw caml_maybe_attach_backtrace(_hB_, 0); + } + } + var _hD_ = caml_call2(Stdlib[28], name, cst_of_non_object_type$0); + return typerr$0(caml_call2(Stdlib[28], cst_Can_t_get_member$0, _hD_), js); + } + function index$0(i, js){ + if(typeof js !== "number" && 848054398 === js[1]){ + var + l = js[2], + len = caml_call1(Stdlib_List[1], l), + wrapped_index = 0 <= i ? i : len + i | 0; + if(0 <= wrapped_index && len > wrapped_index) + return caml_call2(Stdlib_List[7], l, wrapped_index); + var + _hz_ = caml_call1(Stdlib[33], i), + _hA_ = caml_call2(Stdlib[28], _hz_, cst_out_of_bounds$0); + throw caml_maybe_attach_backtrace + ([0, Undefined$0, caml_call2(Stdlib[28], cst_Index$0, _hA_), js], + 1); + } + var + _hx_ = caml_call1(Stdlib[33], i), + _hy_ = caml_call2(Stdlib[28], _hx_, cst_of_non_array_type$0); + return typerr$0(caml_call2(Stdlib[28], cst_Can_t_get_index$0, _hy_), js); + } + function map$0(f, js){ + if(typeof js !== "number" && 848054398 === js[1]){ + var l = js[2]; + return [0, 848054398, caml_call2(Stdlib_List[19], f, l)]; + } + return typerr$0(cst_Can_t_map_function_over_no$0, js); + } + function to_assoc$0(js){ + if(typeof js !== "number" && 963043957 === js[1]){var obj = js[2]; return obj;} + return typerr$0(cst_Expected_object_got$0, js); + } + function to_option$0(f, x){ + return 870828711 === x ? 0 : [0, caml_call1(f, x)]; + } + function to_bool$0(js){ + if(typeof js !== "number" && 737456202 === js[1]){var b = js[2]; return b;} + return typerr$0(cst_Expected_bool_got$0, js); + } + function to_bool_option$0(js){ + if(typeof js === "number"){ + if(870828711 === js) return 0; + } + else if(737456202 === js[1]){var b = js[2]; return [0, b];} + return typerr$0(cst_Expected_bool_or_null_got$0, js); + } + function to_number$0(js){ + if(typeof js !== "number"){ + var _hw_ = js[1]; + if(3654863 === _hw_){var i = js[2]; return i;} + if(365180284 === _hw_){var f = js[2]; return f;} + } + return typerr$0(cst_Expected_number_got$0, js); + } + function to_number_option$0(js){ + if(typeof js === "number"){ + if(870828711 === js) return 0; + } + else{ + var _hv_ = js[1]; + if(3654863 === _hv_){var i = js[2]; return [0, i];} + if(365180284 === _hv_){var f = js[2]; return [0, f];} + } + return typerr$0(cst_Expected_number_or_null_go$0, js); + } + function to_float$0(js){ + if(typeof js !== "number" && 365180284 === js[1]){var f = js[2]; return f;} + return typerr$0(cst_Expected_float_got$0, js); + } + function to_float_option$0(js){ + if(typeof js === "number"){ + if(870828711 === js) return 0; + } + else if(365180284 === js[1]){var f = js[2]; return [0, f];} + return typerr$0(cst_Expected_float_or_null_got$0, js); + } + function to_int$0(js){ + if(typeof js !== "number" && 3654863 === js[1]){var i = js[2]; return i;} + return typerr$0(cst_Expected_int_got$0, js); + } + function to_int_option$0(js){ + if(typeof js === "number"){ + if(870828711 === js) return 0; + } + else if(3654863 === js[1]){var i = js[2]; return [0, i];} + return typerr$0(cst_Expected_int_or_null_got$0, js); + } + function to_list$0(js){ + if(typeof js !== "number" && 848054398 === js[1]){var l = js[2]; return l;} + return typerr$0(cst_Expected_array_got$0, js); + } + function to_string$3(js){ + if(typeof js !== "number" && -976970511 === js[1]){var s = js[2]; return s;} + return typerr$0(cst_Expected_string_got$0, js); + } + function to_string_option$0(js){ + if(typeof js === "number"){ + if(870828711 === js) return 0; + } + else if(-976970511 === js[1]){var s = js[2]; return [0, s];} + return typerr$0(cst_Expected_string_or_null_go$0, js); + } + function convert_each$0(f, js){ + if(typeof js !== "number" && 848054398 === js[1]){ + var l = js[2]; + return caml_call2(Stdlib_List[19], f, l); + } + return typerr$0(cst_Can_t_convert_each_element$0, js); + } + function filter_map$0(f, l$0){ + var acc = 0, l = l$0; + for(;;){ + if(! l) return caml_call1(Stdlib_List[9], acc); + var tl = l[2], x = l[1], match = caml_call1(f, x); + if(match){ + var y = match[1], acc$0 = [0, y, acc], acc = acc$0, l = tl; + continue; + } + var l = tl; + } + } + function flatten$0(l$0){ + var acc = 0, l = l$0; + for(;;){ + if(! l) return caml_call1(Stdlib_List[9], acc); + var tl = l[2], x = l[1]; + if(typeof x !== "number" && 848054398 === x[1]){ + var + l2 = x[2], + acc$0 = caml_call2(Stdlib_List[12], l2, acc), + acc = acc$0, + l = tl; + continue; + } + var l = tl; + } + } + function filter_index$0(i, l){ + return filter_map$0 + (function(param){ + if(typeof param !== "number" && 848054398 === param[1]){ + var l = param[2]; + try{ + var _ht_ = [0, caml_call2(Stdlib_List[7], l, i)]; + return _ht_; + } + catch(_hu_){return 0;} + } + return 0; + }, + l); + } + function filter_list$0(l){ + return filter_map$0 + (function(param){ + if(typeof param !== "number" && 848054398 === param[1]){var l = param[2]; return [0, l];} + return 0; + }, + l); + } + function filter_member$0(k, l){ + return filter_map$0 + (function(param){ + if(typeof param !== "number" && 963043957 === param[1]){ + var l = param[2]; + try{ + var _hr_ = [0, caml_call2(Stdlib_List[46], k, l)]; + return _hr_; + } + catch(_hs_){return 0;} + } + return 0; + }, + l); + } + function filter_assoc$0(l){ + return filter_map$0 + (function(param){ + if(typeof param !== "number" && 963043957 === param[1]){var l = param[2]; return [0, l];} + return 0; + }, + l); + } + function filter_bool$0(l){ + return filter_map$0 + (function(param){ + if(typeof param !== "number" && 737456202 === param[1]){var x = param[2]; return [0, x];} + return 0; + }, + l); + } + function filter_int$0(l){ + return filter_map$0 + (function(param){ + if(typeof param !== "number" && 3654863 === param[1]){var x = param[2]; return [0, x];} + return 0; + }, + l); + } + function filter_float$0(l){ + return filter_map$0 + (function(param){ + if(typeof param !== "number" && 365180284 === param[1]){var x = param[2]; return [0, x];} + return 0; + }, + l); + } + function filter_number$0(l){ + return filter_map$0 + (function(param){ + if(typeof param !== "number"){ + var _hq_ = param[1]; + if(3654863 === _hq_){var x = param[2]; return [0, x];} + if(365180284 === _hq_){var x$0 = param[2]; return [0, x$0];} + } + return 0; + }, + l); + } + function filter_string$0(l){ + return filter_map$0 + (function(param){ + if(typeof param !== "number" && -976970511 === param[1]){var x = param[2]; return [0, x];} + return 0; + }, + l); + } + function keys$0(o){ + var _ho_ = to_assoc$0(o); + function _hp_(param){var key = param[1]; return key;} + return caml_call1(caml_call1(Stdlib_List[19], _hp_), _ho_); + } + function values$0(o){ + var _hm_ = to_assoc$0(o); + function _hn_(param){var value = param[2]; return value;} + return caml_call1(caml_call1(Stdlib_List[19], _hn_), _hm_); + } + function combine$0(first, second){ + if + (typeof first !== "number" + && + 963043957 === first[1] + && typeof second !== "number" && 963043957 === second[1]){ + var b = second[2], a = first[2]; + return [0, 963043957, caml_call2(Stdlib[37], a, b)]; + } + throw caml_maybe_attach_backtrace + ([0, Stdlib[6], cst_Expected_two_objects_check$0], 1); + } + function hex$4(n){ + var _hl_ = 10 <= n ? n + 87 | 0 : n + 48 | 0; + return caml_call1(Stdlib_Char[1], _hl_); + } + function write_special$2(src, start, stop, ob, str){ + caml_call4(Stdlib_Buffer[18], ob, src, start[1], stop - start[1] | 0); + caml_call2(Stdlib_Buffer[16], ob, str); + start[1] = stop + 1 | 0; + return 0; + } + function write_string$2(ob, src){ + caml_call2(Stdlib_Buffer[12], ob, 34); + var start = [0, 0], _hj_ = caml_ml_string_length(src) - 1 | 0, _hi_ = 0; + if(_hj_ >= 0){ + var stop = _hi_; + for(;;){ + var c = caml_string_get(src, stop); + if(92 === c) + write_special$2(src, start, stop, ob, cst$59); + else{ + var switch$0 = 0; + if(35 <= c){ + if(127 !== c) switch$0 = 2; + } + else if(8 <= c){ + var switch$1 = 0; + switch(c - 8 | 0){ + case 0: + write_special$2(src, start, stop, ob, cst_b$2); break; + case 1: + write_special$2(src, start, stop, ob, cst_t$2); break; + case 2: + write_special$2(src, start, stop, ob, cst_n$2); break; + case 4: + write_special$2(src, start, stop, ob, cst_f$2); break; + case 5: + write_special$2(src, start, stop, ob, cst_r$2); break; + case 26: + write_special$2(src, start, stop, ob, cst$60); break; + case 24: + case 25: + switch$0 = 2; switch$1 = 1; break; + default: switch$1 = 1; + } + if(! switch$1) switch$0 = 1; + } + switch(switch$0){ + case 2: break; + case 0: caml_call4 - (Stdlib_Buffer[18], - ob, - src, - start[1], - caml_ml_string_length(src) - start[1] | 0); - return _hb_} - catch(exc) - {exc = caml_wrap_exception(exc); - caml_call4 - (Stdlib_Printf[3], - _dm_, - src, - start[1], - caml_ml_string_length(src) - start[1] | 0); - throw exc}} - function write_string$2(ob,s) - {caml_call2(Stdlib_Buffer[12],ob,34); - var start=[0,0],_g$_=caml_ml_string_length(s) - 1 | 0,_g__=0; - if(! (_g$_ < 0)) - {var i=_g__; - for(;;) - {var c=caml_string_get(s,i); - if(92 === c) - write_special$2(s,start,i,ob,cst$59); - else - {var switch$0=0; - if(35 <= c) - if(127 === c)switch$0 = 1;else switch$0 = 2; - else - if(8 <= c) - {var switch$1=0; - switch(c - 8 | 0) - {case 0:write_special$2(s,start,i,ob,cst_b$2);break; - case 1:write_special$2(s,start,i,ob,cst_t$2);break; - case 2:write_special$2(s,start,i,ob,cst_n$2);break; - case 4:write_special$2(s,start,i,ob,cst_f$2);break; - case 5:write_special$2(s,start,i,ob,cst_r$2);break; - case 26:write_special$2(s,start,i,ob,cst$60);break; - case 24: - case 25:switch$0 = 2;switch$1 = 1;break; - default:switch$0 = 1;switch$1 = 1}} - else - switch$0 = 1; - switch(switch$0) - {case 2:break; - case 1: - caml_call4(Stdlib_Buffer[18],ob,s,start[1],i - start[1] | 0); - caml_call2(Stdlib_Buffer[16],ob,cst_u00$2); - var _g8_=hex$4(c >>> 4 | 0); - caml_call2(Stdlib_Buffer[12],ob,_g8_); - var _g9_=hex$4(c & 15); - caml_call2(Stdlib_Buffer[12],ob,_g9_); - start[1] = i + 1 | 0; - break - }} - var _ha_=i + 1 | 0; - if(_g$_ !== i){var i=_ha_;continue} - break}} - finish_string$4(s,start,ob); - return caml_call2(Stdlib_Buffer[12],ob,34)} - function json_string_of_string$2(s) - {var ob=caml_call1(Stdlib_Buffer[1],10); - write_string$2(ob,s); - return caml_call1(Stdlib_Buffer[2],ob)} - function write_null$2(ob,param) - {return caml_call2(Stdlib_Buffer[16],ob,cst_null$7)} - function write_bool$2(ob,x) - {var _g7_=x?cst_true$2:cst_false$2; - return caml_call2(Stdlib_Buffer[16],ob,_g7_)} - var - _dn_=caml_ml_string_length(caml_call1(Stdlib[33],Stdlib[20])), - _do_=caml_ml_string_length(caml_call1(Stdlib[33],Stdlib[19])); - caml_call2(Stdlib[17],_do_,_dn_); - var - write_intlit$1=Stdlib_Buffer[16], - write_floatlit$0=Stdlib_Buffer[16], - write_stringlit$0=Stdlib_Buffer[16]; - function iter2$2(f_elt,f_sep,x,param$0) - {if(param$0) - {var l$0=param$0[2],y$0=param$0[1]; - caml_call2(f_elt,x,y$0); - var param=l$0; - for(;;) - {if(param) - {var l=param[2],y=param[1]; - caml_call1(f_sep,x); - caml_call2(f_elt,x,y); - var param=l; - continue} - return 0}} - return 0} - function f_sep$2(ob){return caml_call2(Stdlib_Buffer[12],ob,44)} - function write_variant$1(ob,s,o) - {caml_call2(Stdlib_Buffer[12],ob,60); - write_string$2(ob,s); - if(o){var x=o[1];caml_call2(Stdlib_Buffer[12],ob,58);write_t$2(ob,x)} - return caml_call2(Stdlib_Buffer[12],ob,62)} - function write_tuple$1(ob,l) - {caml_call2(Stdlib_Buffer[12],ob,40); - iter2$2(write_t$2,f_sep$2,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,41)} - function write_list$2(ob,l) - {caml_call2(Stdlib_Buffer[12],ob,91); - iter2$2(write_t$2,f_sep$2,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,93)} - function write_assoc$2(ob,l) - {function f_elt(ob,param) - {var x=param[2],s=param[1]; - write_string$2(ob,s); - caml_call2(Stdlib_Buffer[12],ob,58); - return write_t$2(ob,x)} - caml_call2(Stdlib_Buffer[12],ob,123); - iter2$2(f_elt,f_sep$2,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,125)} - function write_t$2(ob,x) - {if(typeof x === "number")return write_null$2(ob,0); - var _g6_=x[1]; - if(737456202 <= _g6_) - {if(928231259 <= _g6_) - {if(963043957 <= _g6_){var l=x[2];return write_assoc$2(ob,l)} - var s=x[2]; - return caml_call2(Stdlib_Buffer[16],ob,s)} - if(848054398 <= _g6_){var l$0=x[2];return write_list$2(ob,l$0)} - var b=x[2]; - return write_bool$2(ob,b)} - if(708012133 <= _g6_) - {if(726928360 <= _g6_){var l$1=x[2];return write_tuple$1(ob,l$1)} - var match=x[2],o=match[2],s$0=match[1]; - return write_variant$1(ob,s$0,o)} - if(-375152890 <= _g6_) - {var s$1=x[2];return caml_call2(Stdlib_Buffer[16],ob,s$1)} - var s$2=x[2]; - return caml_call2(Stdlib_Buffer[16],ob,s$2)} - function write_std_variant$1(ob,s,o) - {if(o) - {var x=o[1]; - caml_call2(Stdlib_Buffer[12],ob,91); - write_string$2(ob,s); - caml_call2(Stdlib_Buffer[12],ob,44); - write_std_json$2(ob,x); - return caml_call2(Stdlib_Buffer[12],ob,93)} - return write_string$2(ob,s)} - function write_std_tuple$1(ob,l) - {caml_call2(Stdlib_Buffer[12],ob,91); - iter2$2(write_std_json$2,f_sep$2,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,93)} - function write_std_json$2(ob,x) - {if(typeof x === "number")return write_null$2(ob,0); - var _g5_=x[1]; - if(737456202 <= _g5_) - {if(928231259 <= _g5_) - {if(963043957 <= _g5_) - {var - l=x[2], - f_elt= - function(ob,param) - {var x=param[2],s=param[1]; - write_string$2(ob,s); - caml_call2(Stdlib_Buffer[12],ob,58); - return write_std_json$2(ob,x)}; - caml_call2(Stdlib_Buffer[12],ob,123); - iter2$2(f_elt,f_sep$2,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,125)} - var s=x[2]; - return caml_call2(Stdlib_Buffer[16],ob,s)} - if(848054398 <= _g5_) - {var l$0=x[2]; - caml_call2(Stdlib_Buffer[12],ob,91); - iter2$2(write_std_json$2,f_sep$2,ob,l$0); - return caml_call2(Stdlib_Buffer[12],ob,93)} - var b=x[2]; - return write_bool$2(ob,b)} - if(708012133 <= _g5_) - {if(726928360 <= _g5_){var l$1=x[2];return write_std_tuple$1(ob,l$1)} - var match=x[2],o=match[2],s$0=match[1]; - return write_std_variant$1(ob,s$0,o)} - if(-375152890 <= _g5_) - {var s$1=x[2];return caml_call2(Stdlib_Buffer[16],ob,s$1)} - var s$2=x[2]; - return caml_call2(Stdlib_Buffer[16],ob,s$2)} - function to_buffer$2(opt,_g4_,ob,x) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$61; - if(_g4_)var sth$0=_g4_[1],std=sth$0;else var std=0; - if(std)write_std_json$2(ob,x);else write_t$2(ob,x); - return caml_call2(Stdlib_Buffer[16],ob,suf)} - function to_string$4(buf,opt,_g3_,std,x) - {if(opt)var sth=opt[1],len=sth;else var len=256; - if(_g3_)var sth$0=_g3_[1],suf=sth$0;else var suf=cst$62; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - to_buffer$2([0,suf],std,ob$0,x); - var s=caml_call1(Stdlib_Buffer[2],ob$0); - caml_call1(Stdlib_Buffer[8],ob$0); - return s} - function to_channel$2(buf,opt,_g2_,std,oc,x) - {if(opt)var sth=opt[1],len=sth;else var len=4096; - if(_g2_)var sth$0=_g2_[1],suf=sth$0;else var suf=cst$63; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - to_buffer$2([0,suf],std,ob$0,x); - caml_call2(Stdlib_Buffer[10],oc,ob$0); - return caml_call1(Stdlib_Buffer[8],ob$0)} - function to_output$2(buf,opt,_g0_,std,out,x) - {if(opt)var sth=opt[1],len=sth;else var len=4096; - if(_g0_)var sth$0=_g0_[1],suf=sth$0;else var suf=cst$64; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - to_buffer$2([0,suf],std,ob$0,x); - var _g1_=caml_call1(Stdlib_Buffer[7],ob$0); - caml_call4 - (caml_get_public_method(out,209784577,4), - out, - caml_call1(Stdlib_Buffer[2],ob$0), - 0, - _g1_); - return caml_call1(Stdlib_Buffer[8],ob$0)} - function to_file$2(len,std,opt,file,x) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$65; - var oc=caml_call1(Stdlib[60],file); - try - {to_channel$2(0,len,[0,suf],std,oc,x); - var _gZ_=caml_call1(Stdlib[76],oc); - return _gZ_} - catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[77],oc);throw e}} - function seq_to_buffer$2(opt,std,ob,st) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$66; - var _gW_=[0,suf]; - function _gX_(_gY_){return to_buffer$2(_gW_,std,ob,_gY_)} - return caml_call2(Stdlib_Seq[4],_gX_,st)} - function seq_to_string$2(buf,opt,_gV_,std,st) - {if(opt)var sth=opt[1],len=sth;else var len=256; - if(_gV_)var sth$0=_gV_[1],suf=sth$0;else var suf=cst$67; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - seq_to_buffer$2([0,suf],std,ob$0,st); - var s=caml_call1(Stdlib_Buffer[2],ob$0); - caml_call1(Stdlib_Buffer[8],ob$0); - return s} - function seq_to_channel$2(buf,opt,_gT_,std,oc,seq) - {if(opt)var sth=opt[1],len=sth;else var len=2096; - if(_gT_)var sth$0=_gT_[1],suf=sth$0;else var suf=cst$68; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - function _gU_(json) - {to_buffer$2([0,suf],std,ob$0,json); - caml_call2(Stdlib_Buffer[10],oc,ob$0); - return caml_call1(Stdlib_Buffer[8],ob$0)} - return caml_call2(Stdlib_Seq[4],_gU_,seq)} - function seq_to_file$2(len,opt,std,file,st) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$69; - var oc=caml_call1(Stdlib[60],file); - try - {seq_to_channel$2(0,len,[0,suf],std,oc,st); - var _gS_=caml_call1(Stdlib[76],oc); - return _gS_} - catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[77],oc);throw e}} - function sort$2(x) - {if(typeof x !== "number") - {var _gJ_=x[1]; - if(726928361 <= _gJ_) - {if(848054398 === _gJ_) - {var l=x[2],_gK_=caml_call2(Stdlib_List[21],sort$2,l); - return [0,848054398,caml_call1(Stdlib_List[9],_gK_)]} - if(963043957 === _gJ_) - {var - l$0=x[2], - _gL_= - function(param) - {var v=param[2],k=param[1];return [0,k,sort$2(v)]}, - _gM_=caml_call2(Stdlib_List[21],_gL_,l$0), - l$1=caml_call1(Stdlib_List[9],_gM_), - _gN_= - function(param,_gR_) - {var b=_gR_[1],a=param[1]; - return caml_call2(Stdlib_String[9],a,b)}; - return [0,963043957,caml_call2(Stdlib_List[57],_gN_,l$1)]}} - else - if(708012133 === _gJ_) - {var _gO_=x[2],_gP_=_gO_[2]; - if(_gP_) - {var v=_gP_[1],k=_gO_[1],v$0=sort$2(v); - return v === v$0?x:[0,708012133,[0,k,[0,v$0]]]}} - else - if(726928360 <= _gJ_) - {var l$2=x[2],_gQ_=caml_call2(Stdlib_List[21],sort$2,l$2); - return [0,726928360,caml_call1(Stdlib_List[9],_gQ_)]}} - return x} - function pp_list$2(sep,ppx,out,l) - {function pp_sep(out,param) - {return caml_call3(Stdlib_Format[129],out,_dp_,sep)} - return caml_call4(Stdlib_Format[123],[0,pp_sep],ppx,out,l)} - function is_atom$2(x) - {if(typeof x !== "number") - {var _gI_=x[1],switch$0=0; - if(737456202 <= _gI_) - {if(848054398 === _gI_) - {if(x[2])switch$0 = 1} - else - if(963043957 <= _gI_ && x[2])switch$0 = 1} - else - if(708012133 === _gI_) - {if(x[2][2])switch$0 = 1} - else - if(726928360 <= _gI_ && x[2])switch$0 = 1; - if(switch$0)return 0} - return 1} - function format$2(inside_box,std,out,x) - {var x$0=x; - for(;;) - {if(typeof x$0 === "number") - return caml_call2(Stdlib_Format[13],out,cst_null$8); - var _f2_=x$0[1]; - if(737456202 <= _f2_) - {if(928231259 <= _f2_) - {if(963043957 <= _f2_) - {var _f3_=x$0[2]; - if(_f3_) - {if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_dq_); - var - _f4_= - function(out,param) - {var x=param[2],name=param[1],_gD_=1; - function _gE_(_gG_,_gH_) - {return format$2(_gD_,std,_gG_,_gH_)} - var _gF_=json_string_of_string$2(name); - return caml_call5(Stdlib_Format[129],out,_dC_,_gF_,_gE_,x)}, - _f5_= - function(_gB_,_gC_){return pp_list$2(cst$70,_f4_,_gB_,_gC_)}; - caml_call4(Stdlib_Format[129],out,_dr_,_f5_,_f3_); - var _f6_=1 - inside_box; - return _f6_?caml_call2(Stdlib_Format[129],out,_ds_):_f6_} - return caml_call2(Stdlib_Format[13],out,cst$71)} - var s=x$0[2]; - return caml_call2(Stdlib_Format[13],out,s)} - if(848054398 <= _f2_) - {var _f7_=x$0[2]; - if(_f7_) - {if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_dt_); - if(caml_call2(Stdlib_List[32],is_atom$2,_f7_)) - {var - _f8_=0, - _f9_=function(_gv_,_gw_){return format$2(_f8_,std,_gv_,_gw_)}, - _f__= - function(_gt_,_gu_){return pp_list$2(cst$72,_f9_,_gt_,_gu_)}; - caml_call4(Stdlib_Format[129],out,_du_,_f__,_f7_)} - else - {var - _ga_=0, - _gb_=function(_gz_,_gA_){return format$2(_ga_,std,_gz_,_gA_)}, - _gc_= - function(_gx_,_gy_){return pp_list$2(cst$73,_gb_,_gx_,_gy_)}; - caml_call4(Stdlib_Format[129],out,_dw_,_gc_,_f7_)} - var _f$_=1 - inside_box; - return _f$_?caml_call2(Stdlib_Format[129],out,_dv_):_f$_} - return caml_call2(Stdlib_Format[13],out,cst$74)} - var x$1=x$0[2]; - return caml_call2(Stdlib_Format[25],out,x$1)} - if(708012133 <= _f2_) - {if(726928360 <= _f2_) - {var l=x$0[2]; - if(std){var x$2=[0,848054398,l],x$0=x$2;continue} - if(0 === l)return caml_call2(Stdlib_Format[13],out,cst$75); - if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_dx_); - var - _gd_=0, - _ge_=function(_gr_,_gs_){return format$2(_gd_,std,_gr_,_gs_)}, - _gf_=function(_gp_,_gq_){return pp_list$2(cst$76,_ge_,_gp_,_gq_)}; - caml_call4(Stdlib_Format[129],out,_dy_,_gf_,l); - var _gg_=1 - inside_box; - return _gg_?caml_call2(Stdlib_Format[129],out,_dz_):_gg_} - var _gh_=x$0[2],_gi_=_gh_[2],_gj_=_gh_[1]; - if(_gi_) - {var x$3=_gi_[1]; - if(std) - {var - representation=[0,-375152890,_gj_], - x$4=[0,848054398,[0,representation,[0,x$3,0]]], - x$0=x$4; - continue} - var - op=json_string_of_string$2(_gj_), - _gk_=1, - _gl_=function(_gn_,_go_){return format$2(_gk_,std,_gn_,_go_)}; - return caml_call5(Stdlib_Format[129],out,_dA_,op,_gl_,x$3)} - if(std){var x$5=[0,-375152890,_gj_],x$0=x$5;continue} - var _gm_=json_string_of_string$2(_gj_); - return caml_call3(Stdlib_Format[129],out,_dB_,_gm_)} - if(-375152890 <= _f2_) - {var s$0=x$0[2];return caml_call2(Stdlib_Format[13],out,s$0)} - var s$1=x$0[2]; - return caml_call2(Stdlib_Format[13],out,s$1)}} - function pp$5(opt,out,x) - {if(opt)var sth=opt[1],std=sth;else var std=0; - var _fY_=1; - function _fZ_(_f0_,_f1_){return format$2(_fY_,std,_f0_,_f1_)} - return caml_call4(Stdlib_Format[129],out,_dD_,_fZ_,x)} - function pp$6(fmt,param) - {if(typeof param === "number") - return caml_call2(Stdlib_Format[13],fmt,cst_Null$2); - var _fR_=param[1]; - if(737456202 <= _fR_) - {if(928231259 <= _fR_) - {if(963043957 <= _fR_) - {var xs=param[2]; - caml_call2(Stdlib_Format[129],fmt,_dG_); - caml_call2(Stdlib_Format[129],fmt,_dH_); - var - _fS_=0, - _fT_= - function(sep,param) - {var value=param[2],key=param[1]; - if(sep)caml_call2(Stdlib_Format[129],fmt,_dI_); - caml_call2(Stdlib_Format[129],fmt,_dJ_); - caml_call3(Stdlib_Format[129],fmt,_dK_,key); - caml_call2(Stdlib_Format[129],fmt,_dL_); - pp$6(fmt,value); - caml_call2(Stdlib_Format[129],fmt,_dM_); - return 1}; - caml_call3(Stdlib_List[25],_fT_,_fS_,xs); - caml_call2(Stdlib_Format[129],fmt,_dN_); - return caml_call2(Stdlib_Format[129],fmt,_dO_)} - var x=param[2]; - caml_call2(Stdlib_Format[129],fmt,_dP_); - caml_call3(Stdlib_Format[129],fmt,_dQ_,x); - return caml_call2(Stdlib_Format[129],fmt,_dR_)} - if(848054398 <= _fR_) - {var xs$0=param[2]; - caml_call2(Stdlib_Format[129],fmt,_dS_); - caml_call2(Stdlib_Format[129],fmt,_dT_); - var - _fU_=0, - _fV_= - function(sep,x) - {if(sep)caml_call2(Stdlib_Format[129],fmt,_dU_); - pp$6(fmt,x); - return 1}; - caml_call3(Stdlib_List[25],_fV_,_fU_,xs$0); - caml_call2(Stdlib_Format[129],fmt,_dV_); - return caml_call2(Stdlib_Format[129],fmt,_dW_)} - var x$0=param[2]; - caml_call2(Stdlib_Format[129],fmt,_dX_); - caml_call3(Stdlib_Format[129],fmt,_dY_,x$0); - return caml_call2(Stdlib_Format[129],fmt,_dZ_)} - if(708012133 <= _fR_) - {if(726928360 <= _fR_) - {var tup=param[2]; - caml_call2(Stdlib_Format[129],fmt,_d0_); - caml_call2(Stdlib_Format[129],fmt,_d1_); - var - _fW_=0, - _fX_= - function(sep,e) - {if(sep)caml_call2(Stdlib_Format[129],fmt,_d2_); - pp$6(fmt,e); - return 1}; - caml_call3(Stdlib_List[25],_fX_,_fW_,tup); - caml_call2(Stdlib_Format[129],fmt,_d3_); - return caml_call2(Stdlib_Format[129],fmt,_d4_)} - var match=param[2],value=match[2],name=match[1]; - caml_call2(Stdlib_Format[129],fmt,_d5_); - caml_call2(Stdlib_Format[129],fmt,_d6_); - caml_call3(Stdlib_Format[129],fmt,_d7_,name); - caml_call2(Stdlib_Format[129],fmt,_d8_); - if(value) - {var x$1=value[1]; - caml_call2(Stdlib_Format[13],fmt,cst_Some$1); - pp$6(fmt,x$1); - caml_call2(Stdlib_Format[13],fmt,cst$77)} - else - caml_call2(Stdlib_Format[13],fmt,cst_None$1); - caml_call2(Stdlib_Format[129],fmt,_d9_); - return caml_call2(Stdlib_Format[129],fmt,_d__)} - if(-375152890 <= _fR_) - {var x$2=param[2]; - caml_call2(Stdlib_Format[129],fmt,_d$_); - caml_call3(Stdlib_Format[129],fmt,_ea_,x$2); - return caml_call2(Stdlib_Format[129],fmt,_eb_)} - var x$3=param[2]; - caml_call2(Stdlib_Format[129],fmt,_ec_); - caml_call3(Stdlib_Format[129],fmt,_ed_,x$3); - return caml_call2(Stdlib_Format[129],fmt,_ee_)} - function show$2(x){return caml_call3(Stdlib_Format[133],_ef_,pp$6,x)} - function equal$2(a,b) - {var a$0=a,b$0=b; - for(;;) - {if(typeof a$0 === "number") - {if(870828711 === a$0 && 870828711 === b$0)return 1} - else - {var _fK_=a$0[1],switch$0=0; - if(726928361 <= _fK_) - {if(848054399 <= _fK_) - {if(928231259 === _fK_) - {if(typeof b$0 !== "number" && 928231259 === b$0[1]) - {var b$1=b$0[2],a$1=a$0[2];return caml_equal(a$1,b$1)}} - else - if - (963043957 - === - _fK_ - && - typeof b$0 - !== - "number" - && - 963043957 - === - b$0[1]) - {var - ys=b$0[2], - xs=a$0[2], - compare_keys= - function(param,_fQ_) - {var key=_fQ_[1],key$0=param[1]; - return caml_call2(Stdlib_String[9],key$0,key)}, - xs$0=caml_call2(Stdlib_List[57],compare_keys,xs), - ys$0=caml_call2(Stdlib_List[57],compare_keys,ys); - try - {var - _fL_= - function(param,_fP_) - {var - value=_fP_[2], - key=_fP_[1], - value$0=param[2], - key$0=param[1], - match=caml_string_equal(key$0,key); - return match?equal$2(value$0,value):0}, - result=caml_call3(Stdlib_List[34],_fL_,xs$0,ys$0); - return result} - catch(_fO_) - {_fO_ = caml_wrap_exception(_fO_); - if(_fO_[1] === Stdlib[6])return 0; - throw _fO_}}} - else - if(737456202 === _fK_) - {if(typeof b$0 !== "number" && 737456202 === b$0[1]) - {var b$2=b$0[2],a$2=a$0[2];return caml_equal(a$2,b$2)}} - else - if - (848054398 - <= - _fK_ - && - typeof b$0 - !== - "number" - && - 848054398 - === - b$0[1]) - {var ys$1=b$0[2],xs$1=a$0[2];switch$0 = 1}} - else - if(-375152889 <= _fK_) - {if(708012133 === _fK_) - {if(typeof b$0 !== "number" && 708012133 === b$0[1]) - {var - _fM_=b$0[2], - value=_fM_[2], - name=_fM_[1], - match=a$0[2], - value$0=match[2], - name$0=match[1], - match$0=caml_equal(name$0,name); - if(match$0) - {if(value$0) - {if(value) - {var b$3=value[1],a$3=value$0[1],a$0=a$3,b$0=b$3;continue}} - else - if(! value)return 1; - return 0} - return 0}} - else - if - (726928360 - <= - _fK_ - && - typeof b$0 - !== - "number" - && - 726928360 - === - b$0[1]) - {var ys$1=b$0[2],xs$1=a$0[2];switch$0 = 1}} - else - if(-752863768 === _fK_) - {if(typeof b$0 !== "number" && -752863768 === b$0[1]) - {var b$4=b$0[2],a$4=a$0[2];return caml_equal(a$4,b$4)}} - else - if - (-375152890 - <= - _fK_ - && - typeof b$0 - !== - "number" - && - -375152890 - === - b$0[1]) - {var b$5=b$0[2],a$5=a$0[2];return caml_equal(a$5,b$5)} - if(switch$0) - try - {var result$0=caml_call3(Stdlib_List[34],equal$2,xs$1,ys$1); - return result$0} - catch(_fN_) - {_fN_ = caml_wrap_exception(_fN_); - if(_fN_[1] === Stdlib[6])return 0; - throw _fN_}} - return 0}} - function pretty_print$2(std,out,x){return pp$5(std,out,x)} - function pretty_to_string$2(std,x) - {function _fH_(_fI_,_fJ_){return pp$5(std,_fI_,_fJ_)} - return caml_call3(Stdlib_Format[133],_dE_,_fH_,x)} - function pretty_to_channel$2(std,oc,x) - {var fmt=caml_call1(Stdlib_Format[108],oc); - function _fE_(_fF_,_fG_){return pp$5(std,_fF_,_fG_)} - return caml_call4(Stdlib_Format[129],fmt,_dF_,_fE_,x)} - var - from_channel$3=Stdlib_Lexing[2], - from_string$3=Stdlib_Lexing[3], - lexeme$1=Stdlib_Lexing[8], - sub_lexeme$1=Stdlib_Lexing[16], - sub_lexeme_char$1=Stdlib_Lexing[18]; - function hex$5(c) - {if(65 <= c) - {if(97 <= c) - {if(! (103 <= c))return (c - 97 | 0) + 10 | 0} - else - if(! (71 <= c))return (c - 65 | 0) + 10 | 0} - else - if(! (9 < c - 48 >>> 0))return c - 48 | 0; - throw [0,Assert_failure,_eg_]} - function custom_error$1(descr,v,lexbuf) - {var - offs=lexbuf[4] - 1 | 0, - bol=v[3], - pos1=((offs + lexbuf[5] | 0) - bol | 0) - 1 | 0, - pos2=caml_call2(Stdlib[17],pos1,(offs + lexbuf[6] | 0) - bol | 0), - _fD_=v[4]; - if(_fD_) - var s=_fD_[1],file_line=caml_call2(Stdlib_Printf[4],_eh_,s); - else - var file_line=cst_Line$1; + (Stdlib_Buffer[18], ob, src, start[1], stop - start[1] | 0); + caml_call2(Stdlib_Buffer[16], ob, cst_u00$2); + var _hg_ = hex$4(c >>> 4 | 0); + caml_call2(Stdlib_Buffer[12], ob, _hg_); + var _hh_ = hex$4(c & 15); + caml_call2(Stdlib_Buffer[12], ob, _hh_); + start[1] = stop + 1 | 0; + break; + } + } + var _hk_ = stop + 1 | 0; + if(_hj_ !== stop){var stop = _hk_; continue;} + break; + } + } + try{ + caml_call4 + (Stdlib_Buffer[18], + ob, + src, + start[1], + caml_ml_string_length(src) - start[1] | 0); + } + catch(exc$0){ + var exc = caml_wrap_exception(exc$0); + caml_call4 + (Stdlib_Printf[3], + _dm_, + src, + start[1], + caml_ml_string_length(src) - start[1] | 0); + throw caml_maybe_attach_backtrace(exc, 0); + } + return caml_call2(Stdlib_Buffer[12], ob, 34); + } + function json_string_of_string$2(s){ + var ob = caml_call1(Stdlib_Buffer[1], 10); + write_string$2(ob, s); + return caml_call1(Stdlib_Buffer[2], ob); + } + function write_null$2(ob, param){ + return caml_call2(Stdlib_Buffer[16], ob, cst_null$7); + } + function write_bool$2(ob, x){ + var _hf_ = x ? cst_true$2 : cst_false$2; + return caml_call2(Stdlib_Buffer[16], ob, _hf_); + } + var + _dn_ = caml_ml_string_length(caml_call1(Stdlib[33], Stdlib[20])), + _do_ = caml_ml_string_length(caml_call1(Stdlib[33], Stdlib[19])); + caml_call2(Stdlib[17], _do_, _dn_); + var + write_intlit$1 = Stdlib_Buffer[16], + write_floatlit$0 = Stdlib_Buffer[16], + write_stringlit$0 = Stdlib_Buffer[16]; + function iter2$2(f_elt, f_sep, x, param$0){ + if(! param$0) return 0; + var l$0 = param$0[2], y$0 = param$0[1]; + caml_call2(f_elt, x, y$0); + var param = l$0; + for(;;){ + if(! param) return 0; + var l = param[2], y = param[1]; + caml_call1(f_sep, x); + caml_call2(f_elt, x, y); + var param = l; + } + } + function f_sep$2(ob){return caml_call2(Stdlib_Buffer[12], ob, 44);} + function write_variant$1(ob, s, o){ + caml_call2(Stdlib_Buffer[12], ob, 60); + write_string$2(ob, s); + if(o){ + var x = o[1]; + caml_call2(Stdlib_Buffer[12], ob, 58); + write_json$2(ob, x); + } + return caml_call2(Stdlib_Buffer[12], ob, 62); + } + function write_tuple$1(ob, l){ + caml_call2(Stdlib_Buffer[12], ob, 40); + iter2$2(write_json$2, f_sep$2, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 41); + } + function write_list$2(ob, l){ + caml_call2(Stdlib_Buffer[12], ob, 91); + iter2$2(write_json$2, f_sep$2, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + function write_assoc$2(ob, l){ + function f_elt(ob, param){ + var x = param[2], s = param[1]; + write_string$2(ob, s); + caml_call2(Stdlib_Buffer[12], ob, 58); + return write_json$2(ob, x); + } + caml_call2(Stdlib_Buffer[12], ob, 123); + iter2$2(f_elt, f_sep$2, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 125); + } + function write_json$2(ob, x){ + if(typeof x === "number") return write_null$2(ob, 0); + var _he_ = x[1]; + if(737456202 <= _he_){ + if(928231259 <= _he_){ + if(963043957 <= _he_){var l = x[2]; return write_assoc$2(ob, l);} + var s = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s); + } + if(848054398 <= _he_){var l$0 = x[2]; return write_list$2(ob, l$0);} + var b = x[2]; + return write_bool$2(ob, b); + } + if(708012133 <= _he_){ + if(726928360 <= _he_){var l$1 = x[2]; return write_tuple$1(ob, l$1);} + var match = x[2], o = match[2], s$0 = match[1]; + return write_variant$1(ob, s$0, o); + } + if(-375152890 <= _he_){ + var s$1 = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s$1); + } + var s$2 = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s$2); + } + function write_std_variant$1(ob, s, o){ + if(! o) return write_string$2(ob, s); + var x = o[1]; + caml_call2(Stdlib_Buffer[12], ob, 91); + write_string$2(ob, s); + caml_call2(Stdlib_Buffer[12], ob, 44); + write_std_json$2(ob, x); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + function write_std_tuple$1(ob, l){ + caml_call2(Stdlib_Buffer[12], ob, 91); + iter2$2(write_std_json$2, f_sep$2, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + function write_std_json$2(ob, x){ + if(typeof x === "number") return write_null$2(ob, 0); + var _hd_ = x[1]; + if(737456202 <= _hd_){ + if(928231259 <= _hd_){ + if(963043957 <= _hd_){ + var + l = x[2], + f_elt = + function(ob, param){ + var x = param[2], s = param[1]; + write_string$2(ob, s); + caml_call2(Stdlib_Buffer[12], ob, 58); + return write_std_json$2(ob, x); + }; + caml_call2(Stdlib_Buffer[12], ob, 123); + iter2$2(f_elt, f_sep$2, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 125); + } + var s = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s); + } + if(848054398 <= _hd_){ + var l$0 = x[2]; + caml_call2(Stdlib_Buffer[12], ob, 91); + iter2$2(write_std_json$2, f_sep$2, ob, l$0); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + var b = x[2]; + return write_bool$2(ob, b); + } + if(708012133 <= _hd_){ + if(726928360 <= _hd_){var l$1 = x[2]; return write_std_tuple$1(ob, l$1);} + var match = x[2], o = match[2], s$0 = match[1]; + return write_std_variant$1(ob, s$0, o); + } + if(-375152890 <= _hd_){ + var s$1 = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s$1); + } + var s$2 = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s$2); + } + function to_buffer$2(opt, _hc_, ob, x){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$61; + if(_hc_) var sth$0 = _hc_[1], std = sth$0; else var std = 0; + if(std) write_std_json$2(ob, x); else write_json$2(ob, x); + return caml_call2(Stdlib_Buffer[16], ob, suf); + } + function to_string$4(buf, opt, _hb_, std, x){ + if(opt) var sth = opt[1], len = sth; else var len = 256; + if(_hb_) var sth$0 = _hb_[1], suf = sth$0; else var suf = cst$62; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + to_buffer$2([0, suf], std, ob$0, x); + var s = caml_call1(Stdlib_Buffer[2], ob$0); + caml_call1(Stdlib_Buffer[8], ob$0); + return s; + } + function to_channel$2(buf, opt, _ha_, std, oc, x){ + if(opt) var sth = opt[1], len = sth; else var len = 4096; + if(_ha_) var sth$0 = _ha_[1], suf = sth$0; else var suf = cst$63; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + to_buffer$2([0, suf], std, ob$0, x); + caml_call2(Stdlib_Buffer[10], oc, ob$0); + return caml_call1(Stdlib_Buffer[8], ob$0); + } + function to_output$2(buf, opt, _g__, std, out, x){ + if(opt) var sth = opt[1], len = sth; else var len = 4096; + if(_g__) var sth$0 = _g__[1], suf = sth$0; else var suf = cst$64; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + to_buffer$2([0, suf], std, ob$0, x); + var _g$_ = caml_call1(Stdlib_Buffer[7], ob$0); + caml_call4 + (caml_get_public_method(out, 209784577, 4), + out, + caml_call1(Stdlib_Buffer[2], ob$0), + 0, + _g$_); + return caml_call1(Stdlib_Buffer[8], ob$0); + } + function to_file$2(len, std, opt, file, x){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$65; + var oc = caml_call1(Stdlib[60], file); + try{ + to_channel$2(0, len, [0, suf], std, oc, x); + var _g9_ = caml_call1(Stdlib[76], oc); + return _g9_; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + caml_call1(Stdlib[77], oc); + throw caml_maybe_attach_backtrace(e, 0); + } + } + function seq_to_buffer$2(opt, std, ob, st){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$66; + var _g6_ = [0, suf]; + function _g7_(_g8_){return to_buffer$2(_g6_, std, ob, _g8_);} + return caml_call2(Stdlib_Seq[4], _g7_, st); + } + function seq_to_string$2(buf, opt, _g5_, std, st){ + if(opt) var sth = opt[1], len = sth; else var len = 256; + if(_g5_) var sth$0 = _g5_[1], suf = sth$0; else var suf = cst$67; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + seq_to_buffer$2([0, suf], std, ob$0, st); + var s = caml_call1(Stdlib_Buffer[2], ob$0); + caml_call1(Stdlib_Buffer[8], ob$0); + return s; + } + function seq_to_channel$2(buf, opt, _g3_, std, oc, seq){ + if(opt) var sth = opt[1], len = sth; else var len = 2096; + if(_g3_) var sth$0 = _g3_[1], suf = sth$0; else var suf = cst$68; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + function _g4_(json){ + to_buffer$2([0, suf], std, ob$0, json); + caml_call2(Stdlib_Buffer[10], oc, ob$0); + return caml_call1(Stdlib_Buffer[8], ob$0); + } + return caml_call2(Stdlib_Seq[4], _g4_, seq); + } + function seq_to_file$2(len, opt, std, file, st){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$69; + var oc = caml_call1(Stdlib[60], file); + try{ + seq_to_channel$2(0, len, [0, suf], std, oc, st); + var _g2_ = caml_call1(Stdlib[76], oc); + return _g2_; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + caml_call1(Stdlib[77], oc); + throw caml_maybe_attach_backtrace(e, 0); + } + } + function sort$2(x){ + if(typeof x !== "number"){ + var _gU_ = x[1]; + if(726928361 <= _gU_){ + if(848054398 === _gU_){ + var l = x[2], _gV_ = caml_call2(Stdlib_List[21], sort$2, l); + return [0, 848054398, caml_call1(Stdlib_List[9], _gV_)]; + } + if(963043957 === _gU_){ + var + l$0 = x[2], + _gW_ = + function(param){ + var v = param[2], k = param[1]; + return [0, k, sort$2(v)]; + }, + _gX_ = caml_call2(Stdlib_List[21], _gW_, l$0), + l$1 = caml_call1(Stdlib_List[9], _gX_), + _gY_ = + function(param, _g1_){ + var b = _g1_[1], a = param[1]; + return caml_call2(Stdlib_String[9], a, b); + }; + return [0, 963043957, caml_call2(Stdlib_List[57], _gY_, l$1)]; + } + } + else if(708012133 === _gU_){ + var _gZ_ = x[2], match = _gZ_[2]; + if(match){ + var v = match[1], k = _gZ_[1], v$0 = sort$2(v); + return v === v$0 ? x : [0, 708012133, [0, k, [0, v$0]]]; + } + } + else if(726928360 <= _gU_){ + var l$2 = x[2], _g0_ = caml_call2(Stdlib_List[21], sort$2, l$2); + return [0, 726928360, caml_call1(Stdlib_List[9], _g0_)]; + } + } + return x; + } + function pp_list$2(sep, ppx, out, l){ + function pp_sep(out, param){ + return caml_call3(Stdlib_Format[129], out, _dp_, sep); + } + return caml_call4(Stdlib_Format[123], [0, pp_sep], ppx, out, l); + } + function is_atom$2(x){ + if(typeof x !== "number"){ + var _gT_ = x[1], switch$0 = 0; + if(737456202 <= _gT_){ + if(848054398 === _gT_){ + if(x[2]) switch$0 = 1; + } + else if(963043957 <= _gT_ && x[2]) switch$0 = 1; + } + else + if(708012133 === _gT_){ + if(x[2][2]) switch$0 = 1; + } + else if(726928360 <= _gT_ && x[2]) switch$0 = 1; + if(switch$0) return 0; + } + return 1; + } + function format$2(inside_box, std, out, x){ + var x$0 = x; + for(;;){ + if(typeof x$0 === "number") + return caml_call2(Stdlib_Format[13], out, cst_null$8); + var _gf_ = x$0[1]; + if(737456202 <= _gf_){ + if(928231259 <= _gf_){ + if(963043957 > _gf_){ + var s = x$0[2]; + return caml_call2(Stdlib_Format[13], out, s); + } + var l = x$0[2]; + if(! l) return caml_call2(Stdlib_Format[13], out, cst$71); + if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _dq_); + var + _gg_ = + function(out, param){ + var x = param[2], name = param[1], _gO_ = 1; + function _gP_(_gR_, _gS_){return format$2(_gO_, std, _gR_, _gS_);} + var _gQ_ = json_string_of_string$2(name); + return caml_call5(Stdlib_Format[129], out, _dC_, _gQ_, _gP_, x); + }, + _gh_ = + function(_gM_, _gN_){return pp_list$2(cst$70, _gg_, _gM_, _gN_);}; + caml_call4(Stdlib_Format[129], out, _dr_, _gh_, l); + var _gi_ = 1 - inside_box; + return _gi_ ? caml_call2(Stdlib_Format[129], out, _ds_) : _gi_; + } + if(848054398 > _gf_){ + var x$1 = x$0[2]; + return caml_call2(Stdlib_Format[25], out, x$1); + } + var l$0 = x$0[2]; + if(! l$0) return caml_call2(Stdlib_Format[13], out, cst$74); + if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _dt_); + if(caml_call2(Stdlib_List[32], is_atom$2, l$0)){ + var + _gj_ = 0, + _gk_ = function(_gG_, _gH_){return format$2(_gj_, std, _gG_, _gH_);}, + _gl_ = + function(_gE_, _gF_){return pp_list$2(cst$72, _gk_, _gE_, _gF_);}; + caml_call4(Stdlib_Format[129], out, _du_, _gl_, l$0); + } + else{ + var + _gn_ = 0, + _go_ = function(_gK_, _gL_){return format$2(_gn_, std, _gK_, _gL_);}, + _gp_ = + function(_gI_, _gJ_){return pp_list$2(cst$73, _go_, _gI_, _gJ_);}; + caml_call4(Stdlib_Format[129], out, _dw_, _gp_, l$0); + } + var _gm_ = 1 - inside_box; + return _gm_ ? caml_call2(Stdlib_Format[129], out, _dv_) : _gm_; + } + if(708012133 > _gf_){ + if(-375152890 <= _gf_){ + var s$1 = x$0[2]; + return caml_call2(Stdlib_Format[13], out, s$1); + } + var s$2 = x$0[2]; + return caml_call2(Stdlib_Format[13], out, s$2); + } + if(726928360 <= _gf_){ + var l$1 = x$0[2]; + if(std){var x$2 = [0, 848054398, l$1], x$0 = x$2; continue;} + if(0 === l$1) return caml_call2(Stdlib_Format[13], out, cst$75); + if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _dx_); var - bytes= - pos1 === pos2 - ?caml_call2(Stdlib_Printf[4],_ei_,pos1 + 1 | 0) - :caml_call3(Stdlib_Printf[4],_ek_,pos1 + 1 | 0,pos2 + 1 | 0), - msg=caml_call5(Stdlib_Printf[4],_ej_,file_line,v[2],bytes,descr); - return json_error(msg)} - function lexer_error$1(descr,v,lexbuf) - {var _fC_=caml_call1(lexeme$1,lexbuf); - return custom_error$1 - (caml_call3(Stdlib_Printf[4],_el_,descr,_fC_),v,lexbuf)} - var read_junk$1=[0,function(param){throw [0,Assert_failure,_em_]}]; - function long_error$1(descr,v,lexbuf) - {var - junk=caml_call1(lexeme$1,lexbuf), - extra_junk=caml_call1(read_junk$1[1],lexbuf); - return custom_error$1 - (caml_call4(Stdlib_Printf[4],_en_,descr,junk,extra_junk), - v, - lexbuf)} + _gq_ = 0, + _gr_ = function(_gC_, _gD_){return format$2(_gq_, std, _gC_, _gD_);}, + _gs_ = + function(_gA_, _gB_){return pp_list$2(cst$76, _gr_, _gA_, _gB_);}; + caml_call4(Stdlib_Format[129], out, _dy_, _gs_, l$1); + var _gt_ = 1 - inside_box; + return _gt_ ? caml_call2(Stdlib_Format[129], out, _dz_) : _gt_; + } + var _gu_ = x$0[2], match = _gu_[2], s$0 = _gu_[1]; + if(match){ + var x$3 = match[1]; + if(std){ + var + representation = [0, -375152890, s$0], + x$4 = [0, 848054398, [0, representation, [0, x$3, 0]]], + x$0 = x$4; + continue; + } + var + op = json_string_of_string$2(s$0), + _gv_ = 1, + _gw_ = function(_gy_, _gz_){return format$2(_gv_, std, _gy_, _gz_);}; + return caml_call5(Stdlib_Format[129], out, _dA_, op, _gw_, x$3); + } + if(std){ + var representation$0 = [0, -375152890, s$0], x$0 = representation$0; + continue; + } + var _gx_ = json_string_of_string$2(s$0); + return caml_call3(Stdlib_Format[129], out, _dB_, _gx_); + } + } + function pp$5(opt, out, x){ + if(opt) var sth = opt[1], std = sth; else var std = 0; + var _gb_ = 1; + function _gc_(_gd_, _ge_){return format$2(_gb_, std, _gd_, _ge_);} + return caml_call4(Stdlib_Format[129], out, _dD_, _gc_, x); + } + function pp$6(fmt, param){ + if(typeof param === "number") + return caml_call2(Stdlib_Format[13], fmt, cst_Null$2); + var _f6_ = param[1]; + if(737456202 <= _f6_){ + if(928231259 <= _f6_){ + if(963043957 <= _f6_){ + var xs = param[2]; + caml_call2(Stdlib_Format[129], fmt, _dG_); + caml_call2(Stdlib_Format[129], fmt, _dH_); + var + _f7_ = 0, + _f8_ = + function(sep, param){ + var value = param[2], key = param[1]; + if(sep) caml_call2(Stdlib_Format[129], fmt, _dI_); + caml_call2(Stdlib_Format[129], fmt, _dJ_); + caml_call3(Stdlib_Format[129], fmt, _dK_, key); + caml_call2(Stdlib_Format[129], fmt, _dL_); + pp$6(fmt, value); + caml_call2(Stdlib_Format[129], fmt, _dM_); + return 1; + }; + caml_call3(Stdlib_List[25], _f8_, _f7_, xs); + caml_call2(Stdlib_Format[129], fmt, _dN_); + return caml_call2(Stdlib_Format[129], fmt, _dO_); + } + var x = param[2]; + caml_call2(Stdlib_Format[129], fmt, _dP_); + caml_call3(Stdlib_Format[129], fmt, _dQ_, x); + return caml_call2(Stdlib_Format[129], fmt, _dR_); + } + if(848054398 <= _f6_){ + var xs$0 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _dS_); + caml_call2(Stdlib_Format[129], fmt, _dT_); + var + _f9_ = 0, + _f__ = + function(sep, x){ + if(sep) caml_call2(Stdlib_Format[129], fmt, _dU_); + pp$6(fmt, x); + return 1; + }; + caml_call3(Stdlib_List[25], _f__, _f9_, xs$0); + caml_call2(Stdlib_Format[129], fmt, _dV_); + return caml_call2(Stdlib_Format[129], fmt, _dW_); + } + var x$0 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _dX_); + caml_call3(Stdlib_Format[129], fmt, _dY_, x$0); + return caml_call2(Stdlib_Format[129], fmt, _dZ_); + } + if(708012133 <= _f6_){ + if(726928360 <= _f6_){ + var tup = param[2]; + caml_call2(Stdlib_Format[129], fmt, _d0_); + caml_call2(Stdlib_Format[129], fmt, _d1_); + var + _f$_ = 0, + _ga_ = + function(sep, e){ + if(sep) caml_call2(Stdlib_Format[129], fmt, _d2_); + pp$6(fmt, e); + return 1; + }; + caml_call3(Stdlib_List[25], _ga_, _f$_, tup); + caml_call2(Stdlib_Format[129], fmt, _d3_); + return caml_call2(Stdlib_Format[129], fmt, _d4_); + } + var match = param[2], value = match[2], name = match[1]; + caml_call2(Stdlib_Format[129], fmt, _d5_); + caml_call2(Stdlib_Format[129], fmt, _d6_); + caml_call3(Stdlib_Format[129], fmt, _d7_, name); + caml_call2(Stdlib_Format[129], fmt, _d8_); + if(value){ + var x$1 = value[1]; + caml_call2(Stdlib_Format[13], fmt, cst_Some$1); + pp$6(fmt, x$1); + caml_call2(Stdlib_Format[13], fmt, cst$77); + } + else + caml_call2(Stdlib_Format[13], fmt, cst_None$1); + caml_call2(Stdlib_Format[129], fmt, _d9_); + return caml_call2(Stdlib_Format[129], fmt, _d__); + } + if(-375152890 <= _f6_){ + var x$2 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _d$_); + caml_call3(Stdlib_Format[129], fmt, _ea_, x$2); + return caml_call2(Stdlib_Format[129], fmt, _eb_); + } + var x$3 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _ec_); + caml_call3(Stdlib_Format[129], fmt, _ed_, x$3); + return caml_call2(Stdlib_Format[129], fmt, _ee_); + } + function show$2(x){return caml_call3(Stdlib_Format[133], _ef_, pp$6, x);} + function equal$2(a, b){ + var a$0 = a, b$0 = b; + for(;;){ + if(typeof a$0 === "number"){ + if(870828711 === a$0 && 870828711 === b$0) return 1; + } + else{ + var _fX_ = a$0[1], switch$0 = 0; + if(726928361 <= _fX_){ + if(848054399 <= _fX_){ + if(928231259 === _fX_){ + if(typeof b$0 !== "number" && 928231259 === b$0[1]){ + var b$1 = b$0[2], a$1 = a$0[2]; + return caml_equal(a$1, b$1); + } + } + else if + (963043957 === _fX_ + && typeof b$0 !== "number" && 963043957 === b$0[1]){ + var + ys = b$0[2], + xs = a$0[2], + compare_keys = + function(param, _f5_){ + var key = _f5_[1], key$0 = param[1]; + return caml_call2(Stdlib_String[9], key$0, key); + }, + xs$0 = caml_call2(Stdlib_List[57], compare_keys, xs), + ys$0 = caml_call2(Stdlib_List[57], compare_keys, ys); + try{ + var + _fZ_ = + function(param, _f4_){ + var + value = _f4_[2], + key = _f4_[1], + value$0 = param[2], + key$0 = param[1]; + return caml_string_equal(key$0, key) + ? equal$2(value$0, value) + : 0; + }, + result = caml_call3(Stdlib_List[34], _fZ_, xs$0, ys$0); + return result; + } + catch(_f3_){ + var _fY_ = caml_wrap_exception(_f3_); + if(_fY_[1] === Stdlib[6]) return 0; + throw caml_maybe_attach_backtrace(_fY_, 0); + } + } + } + else + if(737456202 === _fX_){ + if(typeof b$0 !== "number" && 737456202 === b$0[1]){ + var b$2 = b$0[2], a$2 = a$0[2]; + return caml_equal(a$2, b$2); + } + } + else if + (848054398 <= _fX_ && typeof b$0 !== "number" && 848054398 === b$0[1]){var ys$1 = b$0[2], xs$1 = a$0[2]; switch$0 = 1;} + } + else + if(-375152889 <= _fX_){ + if(708012133 === _fX_){ + if(typeof b$0 !== "number" && 708012133 === b$0[1]){ + var + _f1_ = b$0[2], + value = _f1_[2], + name = _f1_[1], + match = a$0[2], + value$0 = match[2], + name$0 = match[1]; + if(! caml_equal(name$0, name)) return 0; + if(value$0){ + if(value){ + var y = value[1], x = value$0[1], a$0 = x, b$0 = y; + continue; + } + } + else if(! value) return 1; + return 0; + } + } + else if + (726928360 <= _fX_ && typeof b$0 !== "number" && 726928360 === b$0[1]){var ys$1 = b$0[2], xs$1 = a$0[2]; switch$0 = 1;} + } + else + if(-752863768 === _fX_){ + if(typeof b$0 !== "number" && -752863768 === b$0[1]){ + var b$3 = b$0[2], a$3 = a$0[2]; + return caml_equal(a$3, b$3); + } + } + else if + (-375152890 <= _fX_ + && typeof b$0 !== "number" && -375152890 === b$0[1]){ + var b$4 = b$0[2], a$4 = a$0[2]; + return caml_equal(a$4, b$4); + } + if(switch$0) + try{ + var result$0 = caml_call3(Stdlib_List[34], equal$2, xs$1, ys$1); + return result$0; + } + catch(_f2_){ + var _f0_ = caml_wrap_exception(_f2_); + if(_f0_[1] === Stdlib[6]) return 0; + throw caml_maybe_attach_backtrace(_f0_, 0); + } + } + return 0; + } + } + function pretty_print$2(std, out, x){return pp$5(std, out, x);} + function pretty_to_string$2(std, x){ + function _fU_(_fV_, _fW_){return pp$5(std, _fV_, _fW_);} + return caml_call3(Stdlib_Format[133], _dE_, _fU_, x); + } + function pretty_to_channel$2(std, oc, x){ + var fmt = caml_call1(Stdlib_Format[108], oc); + function _fR_(_fS_, _fT_){return pp$5(std, _fS_, _fT_);} + return caml_call4(Stdlib_Format[129], fmt, _dF_, _fR_, x); + } + var + from_channel$3 = Stdlib_Lexing[2], + from_string$3 = Stdlib_Lexing[3], + lexeme$1 = Stdlib_Lexing[8], + sub_lexeme$1 = Stdlib_Lexing[16], + sub_lexeme_char$1 = Stdlib_Lexing[18]; + function hex$5(c){ + if(65 <= c){ + if(97 <= c){ + if(103 > c) return (c - 97 | 0) + 10 | 0; + } + else if(71 > c) return (c - 65 | 0) + 10 | 0; + } + else if(9 >= c - 48 >>> 0) return c - 48 | 0; + throw caml_maybe_attach_backtrace([0, Assert_failure, _eg_], 1); + } + function custom_error$1(descr, v, lexbuf){ var - _eo_=0 === (Stdlib[20] % 10 | 0)?0:1, - min10$1=(Stdlib[20] / 10 | 0) - _eo_ | 0, - _ep_=0 === (Stdlib[19] % 10 | 0)?0:1, - max10$1=(Stdlib[19] / 10 | 0) + _ep_ | 0, - Int_overflow$1=[248,cst_Yojson_Raw_Int_overflow,caml_fresh_oo_id(0)]; - function extract_positive_int$1(lexbuf) - {var - start=lexbuf[5], - stop=lexbuf[6], - s=lexbuf[2], - n=[0,0], - _fz_=stop - 1 | 0; - if(! (_fz_ < start)) - {var i=start; - for(;;) - {if(max10$1 <= n[1])throw Int_overflow$1; - var _fA_=caml_bytes_get(s,i) - 48 | 0; - n[1] = (10 * n[1] | 0) + _fA_ | 0; - var _fB_=i + 1 | 0; - if(_fz_ !== i){var i=_fB_;continue} - break}} - if(0 <= n[1])return n[1]; - throw Int_overflow$1} - function make_positive_int(v,lexbuf) - {return [0,-752863768,caml_call1(lexeme$1,lexbuf)]} - function extract_negative_int$1(lexbuf) - {var - start=lexbuf[5] + 1 | 0, - stop=lexbuf[6], - s=lexbuf[2], - n=[0,0], - _fw_=stop - 1 | 0; - if(! (_fw_ < start)) - {var i=start; - for(;;) - {if(n[1] <= min10$1)throw Int_overflow$1; - var _fx_=caml_bytes_get(s,i) - 48 | 0; - n[1] = (10 * n[1] | 0) - _fx_ | 0; - var _fy_=i + 1 | 0; - if(_fw_ !== i){var i=_fy_;continue} - break}} - if(0 < n[1])throw Int_overflow$1; - return n[1]} - function make_negative_int(v,lexbuf) - {return [0,-752863768,caml_call1(lexeme$1,lexbuf)]} - function newline$1(v,lexbuf) - {v[2] = v[2] + 1 | 0;v[3] = lexbuf[4] + lexbuf[6] | 0;return 0} - function add_lexeme$1(buf,lexbuf) - {var len=lexbuf[6] - lexbuf[5] | 0; - return caml_call4(Stdlib_Buffer[19],buf,lexbuf[2],lexbuf[5],len)} - function read_json$4(counter,v,lexbuf) - {var _fv_=0; - if(counter < 50) - {var counter$0=counter + 1 | 0; - return ocaml_lex_read_json_rec$1(counter$0,v,lexbuf,_fv_)} - return caml_trampoline_return - (ocaml_lex_read_json_rec$1,[0,v,lexbuf,_fv_])} - function ocaml_lex_read_json_rec$1(counter,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); - if(19 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0:return _eq_; - case 1:return _er_; - case 2:return 870828711; - case 3:return _es_; - case 4:return _et_; - case 5:return _eu_; - case 6:return [0,-375152890,finish_stringlit$1(v,lexbuf)]; - case 7:return make_positive_int(v,lexbuf); - case 8:return make_negative_int(v,lexbuf); - case 9:return [0,928231259,caml_call1(lexeme$1,lexbuf)]; - case 10: - var acc=[0,0]; - try - {read_space$1(v,lexbuf); - read_object_end$1(lexbuf); - var field_name=read_ident$1(v,lexbuf); - read_space$1(v,lexbuf); - read_colon$1(v,lexbuf); - read_space$1(v,lexbuf); - var _fm_=acc[1]; - acc[1] = [0,[0,field_name,read_json$1(v,lexbuf)],_fm_]; - for(;;) - {read_space$1(v,lexbuf); - read_object_sep$1(v,lexbuf); - read_space$1(v,lexbuf); - var field_name$0=read_ident$1(v,lexbuf); - read_space$1(v,lexbuf); - read_colon$1(v,lexbuf); - read_space$1(v,lexbuf); - var _fn_=acc[1]; - acc[1] = [0,[0,field_name$0,read_json$1(v,lexbuf)],_fn_]; - continue}} - catch(_fu_) - {_fu_ = caml_wrap_exception(_fu_); - if(_fu_ === End_of_object) - return [0,963043957,caml_call1(Stdlib_List[9],acc[1])]; - throw _fu_} - case 11: - var acc$0=[0,0]; - try - {read_space$1(v,lexbuf); - read_array_end$1(lexbuf); - var _fo_=acc$0[1]; - acc$0[1] = [0,read_json$1(v,lexbuf),_fo_]; - for(;;) - {read_space$1(v,lexbuf); - read_array_sep$1(v,lexbuf); - read_space$1(v,lexbuf); - var _fp_=acc$0[1]; - acc$0[1] = [0,read_json$1(v,lexbuf),_fp_]; - continue}} - catch(_ft_) - {_ft_ = caml_wrap_exception(_ft_); - if(_ft_ === End_of_array) - return [0,848054398,caml_call1(Stdlib_List[9],acc$0[1])]; - throw _ft_} - case 12: - var acc$1=[0,0]; - try - {read_space$1(v,lexbuf); - read_tuple_end$1(lexbuf); - var _fq_=acc$1[1]; - acc$1[1] = [0,read_json$1(v,lexbuf),_fq_]; - for(;;) - {read_space$1(v,lexbuf); - read_tuple_sep$1(v,lexbuf); - read_space$1(v,lexbuf); - var _fr_=acc$1[1]; - acc$1[1] = [0,read_json$1(v,lexbuf),_fr_]; - continue}} - catch(_fs_) - {_fs_ = caml_wrap_exception(_fs_); - if(_fs_ === End_of_tuple) - return [0,726928360,caml_call1(Stdlib_List[9],acc$1[1])]; - throw _fs_} - case 13: - read_space$1(v,lexbuf); - var cons=read_ident$1(v,lexbuf); - read_space$1(v,lexbuf); - return [0,708012133,[0,cons,finish_variant$1(v,lexbuf)]]; - case 14: - if(counter < 50) - {var counter$0=counter + 1 | 0; - return read_json$4(counter$0,v,lexbuf)} - return caml_trampoline_return(read_json$4,[0,v,lexbuf]); - case 15: - finish_comment$1(v,lexbuf); - if(counter < 50) - {var counter$1=counter + 1 | 0; - return read_json$4(counter$1,v,lexbuf)} - return caml_trampoline_return(read_json$4,[0,v,lexbuf]); - case 16: - newline$1(v,lexbuf); - if(counter < 50) - {var counter$2=counter + 1 | 0; - return read_json$4(counter$2,v,lexbuf)} - return caml_trampoline_return(read_json$4,[0,v,lexbuf]); - case 17: - if(counter < 50) - {var counter$3=counter + 1 | 0; - return read_json$4(counter$3,v,lexbuf)} - return caml_trampoline_return(read_json$4,[0,v,lexbuf]); - case 18: - return custom_error$1(cst_Unexpected_end_of_input$92,v,lexbuf); - default:return long_error$1(cst_Invalid_token$12,v,lexbuf)}}} - function read_json$1(v,lexbuf) - {return caml_trampoline(read_json$4(0,v,lexbuf))} - function finish_string$5(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=58; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return caml_call1(Stdlib_Buffer[2],v[1]); - case 1:finish_escaped_char$1(v,lexbuf);continue a; - case 2:add_lexeme$1(v[1],lexbuf);continue a; + offs = lexbuf[4] - 1 | 0, + bol = v[3], + pos1 = ((offs + lexbuf[5] | 0) - bol | 0) - 1 | 0, + pos2 = caml_call2(Stdlib[17], pos1, (offs + lexbuf[6] | 0) - bol | 0), + match = v[4]; + if(match) + var s = match[1], file_line = caml_call2(Stdlib_Printf[4], _eh_, s); + else + var file_line = cst_Line$1; + var + bytes = + pos1 === pos2 + ? caml_call2(Stdlib_Printf[4], _ei_, pos1 + 1 | 0) + : caml_call3(Stdlib_Printf[4], _ek_, pos1 + 1 | 0, pos2 + 1 | 0), + msg = caml_call5(Stdlib_Printf[4], _ej_, file_line, v[2], bytes, descr); + return json_error(msg); + } + function lexer_error$1(descr, v, lexbuf){ + var _fQ_ = caml_call1(lexeme$1, lexbuf); + return custom_error$1 + (caml_call3(Stdlib_Printf[4], _el_, descr, _fQ_), v, lexbuf); + } + var + read_junk$1 = + [0, + function(param){ + throw caml_maybe_attach_backtrace([0, Assert_failure, _em_], 1); + }]; + function long_error$1(descr, v, lexbuf){ + var + junk = caml_call1(lexeme$1, lexbuf), + extra_junk = caml_call1(read_junk$1[1], lexbuf); + return custom_error$1 + (caml_call4(Stdlib_Printf[4], _en_, descr, junk, extra_junk), + v, + lexbuf); + } + var + _eo_ = 0 === (Stdlib[20] % 10 | 0) ? 0 : 1, + min10$1 = (Stdlib[20] / 10 | 0) - _eo_ | 0, + _ep_ = 0 === (Stdlib[19] % 10 | 0) ? 0 : 1, + max10$1 = (Stdlib[19] / 10 | 0) + _ep_ | 0, + Int_overflow$1 = [248, cst_Yojson_Raw_Int_overflow, caml_fresh_oo_id(0)]; + function newline$1(v, lexbuf){ + v[2] = v[2] + 1 | 0; + v[3] = lexbuf[4] + lexbuf[6] | 0; + return 0; + } + function add_lexeme$1(buf, lexbuf){ + var len = lexbuf[6] - lexbuf[5] | 0; + return caml_call4(Stdlib_Buffer[19], buf, lexbuf[2], lexbuf[5], len); + } + function read_json$1(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 0; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(19 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return _eq_; + case 1: + return _er_; + case 2: + return 870828711; + case 3: + return _es_; + case 4: + return _et_; + case 5: + return _eu_; + case 6: + return [0, -375152890, finish_stringlit$1(v, lexbuf)]; + case 7: + return [0, -752863768, caml_call1(lexeme$1, lexbuf)]; + case 8: + return [0, -752863768, caml_call1(lexeme$1, lexbuf)]; + case 9: + return [0, 928231259, caml_call1(lexeme$1, lexbuf)]; + case 10: + var acc = [0, 0]; + try{ + read_space$1(v, lexbuf); + read_object_end$1(lexbuf); + var field_name = read_ident$1(v, lexbuf); + read_space$1(v, lexbuf); + read_colon$1(v, lexbuf); + read_space$1(v, lexbuf); + var _fF_ = acc[1]; + acc[1] = [0, [0, field_name, read_json$1(v, lexbuf)], _fF_]; + for(;;){ + read_space$1(v, lexbuf); + read_object_sep$1(v, lexbuf); + read_space$1(v, lexbuf); + var field_name$0 = read_ident$1(v, lexbuf); + read_space$1(v, lexbuf); + read_colon$1(v, lexbuf); + read_space$1(v, lexbuf); + var _fG_ = acc[1]; + acc[1] = [0, [0, field_name$0, read_json$1(v, lexbuf)], _fG_]; + } + } + catch(_fP_){ + var _fE_ = caml_wrap_exception(_fP_); + if(_fE_ === End_of_object) + return [0, 963043957, caml_call1(Stdlib_List[9], acc[1])]; + throw caml_maybe_attach_backtrace(_fE_, 0); + } + case 11: + var acc$0 = [0, 0]; + try{ + read_space$1(v, lexbuf); + read_array_end$1(lexbuf); + var _fI_ = acc$0[1]; + acc$0[1] = [0, read_json$1(v, lexbuf), _fI_]; + for(;;){ + read_space$1(v, lexbuf); + read_array_sep$1(v, lexbuf); + read_space$1(v, lexbuf); + var _fJ_ = acc$0[1]; + acc$0[1] = [0, read_json$1(v, lexbuf), _fJ_]; + } + } + catch(_fO_){ + var _fH_ = caml_wrap_exception(_fO_); + if(_fH_ === End_of_array) + return [0, 848054398, caml_call1(Stdlib_List[9], acc$0[1])]; + throw caml_maybe_attach_backtrace(_fH_, 0); + } + case 12: + var acc$1 = [0, 0]; + try{ + read_space$1(v, lexbuf); + read_tuple_end$1(lexbuf); + var _fL_ = acc$1[1]; + acc$1[1] = [0, read_json$1(v, lexbuf), _fL_]; + for(;;){ + read_space$1(v, lexbuf); + read_tuple_sep$1(v, lexbuf); + read_space$1(v, lexbuf); + var _fM_ = acc$1[1]; + acc$1[1] = [0, read_json$1(v, lexbuf), _fM_]; + } + } + catch(_fN_){ + var _fK_ = caml_wrap_exception(_fN_); + if(_fK_ === End_of_tuple) + return [0, 726928360, caml_call1(Stdlib_List[9], acc$1[1])]; + throw caml_maybe_attach_backtrace(_fK_, 0); + } + case 13: + read_space$1(v, lexbuf); + var cons = read_ident$1(v, lexbuf); + read_space$1(v, lexbuf); + return [0, 708012133, [0, cons, finish_variant$1(v, lexbuf)]]; + case 14: + continue a; + case 15: + finish_comment$1(v, lexbuf); continue a; + case 16: + newline$1(v, lexbuf); continue a; + case 17: + continue a; + case 18: + return custom_error$1(cst_Unexpected_end_of_input$92, v, lexbuf); + default: return long_error$1(cst_Invalid_token$12, v, lexbuf); + } + } + } + } + function finish_string$1(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 58; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return caml_call1(Stdlib_Buffer[2], v[1]); + case 1: + finish_escaped_char$1(v, lexbuf); continue a; + case 2: + add_lexeme$1(v[1], lexbuf); continue a; + default: + return custom_error$1(cst_Unexpected_end_of_input$93, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function map_string$1(v, f, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 63; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + var b = v[1], _fD_ = caml_call1(Stdlib_Buffer[7], b); + return caml_call3(f, caml_call1(Stdlib_Buffer[2], b), 0, _fD_); + case 1: + finish_escaped_char$1(v, lexbuf); continue a; + case 2: + add_lexeme$1(v[1], lexbuf); continue a; + default: + return custom_error$1(cst_Unexpected_end_of_input$94, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function finish_escaped_char$1(v, lexbuf){ + var ocaml_lex_state = 68; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(8 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var c = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5]); + return caml_call2(Stdlib_Buffer[12], v[1], c); + case 1: + return caml_call2(Stdlib_Buffer[12], v[1], 8); + case 2: + return caml_call2(Stdlib_Buffer[12], v[1], 12); + case 3: + return caml_call2(Stdlib_Buffer[12], v[1], 10); + case 4: + return caml_call2(Stdlib_Buffer[12], v[1], 13); + case 5: + return caml_call2(Stdlib_Buffer[12], v[1], 9); + case 6: + var + a = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5] + 1 | 0), + b = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5] + 2 | 0), + c$0 = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5] + 3 | 0), + d = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5] + 4 | 0), + _fx_ = hex$5(d), + _fy_ = hex$5(c$0) << 4, + _fz_ = hex$5(b) << 8, + x = hex$5(a) << 12 | _fz_ | _fy_ | _fx_; + if(55296 <= x && 56319 >= x){ + var ocaml_lex_state$1 = 82; + for(;;){ + var + ocaml_lex_state$2 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state$1, lexbuf); + if(2 < ocaml_lex_state$2 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$1 = ocaml_lex_state$2; + continue; + } + switch(ocaml_lex_state$2){ + case 0: + var + a$0 = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5] + 2 | 0), + b$0 = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5] + 3 | 0), + c$1 = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5] + 4 | 0), + d$0 = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5] + 5 | 0), + _fA_ = hex$5(d$0), + _fB_ = hex$5(c$1) << 4, + _fC_ = hex$5(b$0) << 8, + y = hex$5(a$0) << 12 | _fC_ | _fB_ | _fA_; + if(56320 <= y && 57343 >= y) + return utf8_of_surrogate_pair(v[1], x, y); + return long_error$1(cst_Invalid_low_surrogate_for_$1, v, lexbuf); + case 1: + return long_error$1(cst_Missing_escape_sequence_re$1, v, lexbuf); default: - return custom_error$1(cst_Unexpected_end_of_input$93,v,lexbuf)}}}} - function map_string$1(v,f,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=63; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - var b=v[1],_fl_=caml_call1(Stdlib_Buffer[7],b); - return caml_call3(f,caml_call1(Stdlib_Buffer[2],b),0,_fl_); - case 1:finish_escaped_char$1(v,lexbuf);continue a; - case 2:add_lexeme$1(v[1],lexbuf);continue a; - default: - return custom_error$1(cst_Unexpected_end_of_input$94,v,lexbuf)}}}} - function finish_escaped_char$1(v,lexbuf) - {var ocaml_lex_state=68; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(8 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - var c=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5]); - return caml_call2(Stdlib_Buffer[12],v[1],c); - case 1:return caml_call2(Stdlib_Buffer[12],v[1],8); - case 2:return caml_call2(Stdlib_Buffer[12],v[1],12); - case 3:return caml_call2(Stdlib_Buffer[12],v[1],10); - case 4:return caml_call2(Stdlib_Buffer[12],v[1],13); - case 5:return caml_call2(Stdlib_Buffer[12],v[1],9); - case 6: + return custom_error$1(cst_Unexpected_end_of_input$96, v, lexbuf); + } + } + } + return utf8_of_code(v[1], x); + case 7: + return long_error$1(cst_Invalid_escape_sequence$1, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$95, v, lexbuf); + } + } + } + function finish_stringlit$1(v, lexbuf){ + var ocaml_lex_state = 91; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + var + len = lexbuf[6] - lexbuf[5] | 0, + s = caml_create_bytes(len + 1 | 0); + caml_bytes_set(s, 0, 34); + caml_call5(Stdlib_Bytes[11], lexbuf[2], lexbuf[5], s, 1, len); + return caml_call1(Stdlib_Bytes[6], s); + case 1: + return long_error$1(cst_Invalid_string_literal$5, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$97, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_variant$1(v, lexbuf){ + var ocaml_lex_state = 102; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + var x = read_json$1(v, lexbuf); + read_space$1(v, lexbuf); + read_gt$1(v, lexbuf); + return [0, x]; + case 1: + return 0; + case 2: + return long_error$1(cst_Expected_or_but_found$29, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$98, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_lt$1(v, lexbuf){ + var ocaml_lex_state = 107; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$1(cst_Expected_but_found$30, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$99, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_gt$1(v, lexbuf){ + var ocaml_lex_state = 111; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$1(cst_Expected_but_found$31, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$100, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_comma$1(v, lexbuf){ + var ocaml_lex_state = 115; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$1(cst_Expected_but_found$32, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$101, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function start_any_variant$1(v, lexbuf){ + var ocaml_lex_state = 119; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return -154522342; + case 1: + caml_call1(Stdlib_Buffer[8], v[1]); return -589953938; + case 2: + return -124528282; + case 3: + return long_error$1(cst_Expected_or_but_found$30, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$102, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_comment$1(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 125; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$1(cst_Unterminated_comment$3, v, lexbuf); + case 2: + newline$1(v, lexbuf); continue a; + default: continue a; + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function read_eof$1(lexbuf){ + var ocaml_lex_state = 131; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) return 1; + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_space$1(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 133; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + newline$1(v, lexbuf); continue a; + case 1: + finish_comment$1(v, lexbuf); continue a; + case 2: + newline$1(v, lexbuf); continue a; + case 3: + continue a; + default: return 0; + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function read_null$1(v, lexbuf){ + var ocaml_lex_state = 140; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$1(cst_Expected_null_but_found$1, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$103, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_null_if_possible$1(v, lexbuf){ + var ocaml_lex_state = 147; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) return 1; + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_bool$1(v, lexbuf){ + var ocaml_lex_state = 152; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(5 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 1; + case 1: + return 0; + case 2: + return 1; + case 3: + return 0; + case 4: + return long_error$1(cst_Expected_true_or_false_but$1, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$104, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_int$1(v, lexbuf){ + var ocaml_lex_state = 176; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(4 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + try{ + var + start = lexbuf[5], + stop = lexbuf[6], + s = lexbuf[2], + n = [0, 0], + _fj_ = stop - 1 | 0; + if(_fj_ >= start){ + var i = start; + for(;;){ + if(max10$1 <= n[1]) + throw caml_maybe_attach_backtrace(Int_overflow$1, 1); + var _fl_ = caml_bytes_get(s, i) - 48 | 0; + n[1] = (10 * n[1] | 0) + _fl_ | 0; + var _fm_ = i + 1 | 0; + if(_fj_ !== i){var i = _fm_; continue;} + break; + } + } + if(0 > n[1]) throw caml_maybe_attach_backtrace(Int_overflow$1, 1); + var _fk_ = n[1]; + return _fk_; + } + catch(_fw_){ + var _fr_ = caml_wrap_exception(_fw_); + if(_fr_ === Int_overflow$1) + return lexer_error$1(cst_Int_overflow$5, v, lexbuf); + throw caml_maybe_attach_backtrace(_fr_, 0); + } + case 1: + try{ + var + start$0 = lexbuf[5] + 1 | 0, + stop$0 = lexbuf[6], + s$0 = lexbuf[2], + n$0 = [0, 0], + _fn_ = stop$0 - 1 | 0; + if(_fn_ >= start$0){ + var i$0 = start$0; + for(;;){ + if(n$0[1] <= min10$1) + throw caml_maybe_attach_backtrace(Int_overflow$1, 1); + var _fp_ = caml_bytes_get(s$0, i$0) - 48 | 0; + n$0[1] = (10 * n$0[1] | 0) - _fp_ | 0; + var _fq_ = i$0 + 1 | 0; + if(_fn_ !== i$0){var i$0 = _fq_; continue;} + break; + } + } + if(0 < n$0[1]) throw caml_maybe_attach_backtrace(Int_overflow$1, 1); + var _fo_ = n$0[1]; + return _fo_; + } + catch(_fv_){ + var _fs_ = caml_wrap_exception(_fv_); + if(_fs_ === Int_overflow$1) + return lexer_error$1(cst_Int_overflow$6, v, lexbuf); + throw caml_maybe_attach_backtrace(_fs_, 0); + } + case 2: + caml_call1(Stdlib_Buffer[8], v[1]); + var s$1 = finish_string$1(v, lexbuf); + try{var _ft_ = caml_int_of_string(s$1); return _ft_;} + catch(_fu_){ + return custom_error$1(cst_Expected_an_integer_but_fo$1, v, lexbuf); + } + case 3: + return long_error$1(cst_Expected_integer_but_found$1, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$105, v, lexbuf); + } + } + } + function read_int32$1(v, lexbuf){ + var ocaml_lex_state = 185; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + try{ + var _ff_ = caml_int_of_string(caml_call1(lexeme$1, lexbuf)); + return _ff_; + } + catch(_fi_){return lexer_error$1(cst_Int32_overflow$3, v, lexbuf);} + case 1: + caml_call1(Stdlib_Buffer[8], v[1]); + var s = finish_string$1(v, lexbuf); + try{var _fg_ = caml_int_of_string(s); return _fg_;} + catch(_fh_){ + return custom_error$1(cst_Expected_an_int32_but_foun$1, v, lexbuf); + } + case 2: + return long_error$1(cst_Expected_int32_but_found$1, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$106, v, lexbuf); + } + } + } + function read_int64$1(v, lexbuf){ + var ocaml_lex_state = 192; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + try{ + var _fb_ = caml_int64_of_string(caml_call1(lexeme$1, lexbuf)); + return _fb_; + } + catch(_fe_){return lexer_error$1(cst_Int32_overflow$4, v, lexbuf);} + case 1: + caml_call1(Stdlib_Buffer[8], v[1]); + var s = finish_string$1(v, lexbuf); + try{var _fc_ = caml_int64_of_string(s); return _fc_;} + catch(_fd_){ + return custom_error$1(cst_Expected_an_int64_but_foun$1, v, lexbuf); + } + case 2: + return long_error$1(cst_Expected_int64_but_found$1, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$107, v, lexbuf); + } + } + } + function read_number$1(v, lexbuf){ + var ocaml_lex_state = 199; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(6 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return Stdlib[24]; + case 1: + return Stdlib[22]; + case 2: + return Stdlib[23]; + case 3: + return caml_float_of_string(caml_call1(lexeme$1, lexbuf)); + case 4: + caml_call1(Stdlib_Buffer[8], v[1]); + var s = finish_string$1(v, lexbuf); + try{var _e$_ = caml_float_of_string(s); return _e$_;} + catch(_fa_){ + return caml_string_notequal(s, cst_Infinity$12) + ? caml_string_notequal + (s, cst_Infinity$11) + ? caml_string_notequal + (s, cst_NaN$5) + ? custom_error$1 + (cst_Expected_a_number_but_foun$1, v, lexbuf) + : Stdlib[24] + : Stdlib[22] + : Stdlib[23]; + } + case 5: + return long_error$1(cst_Expected_number_but_found$1, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$108, v, lexbuf); + } + } + } + function read_string$1(v, lexbuf){ + var ocaml_lex_state = 233; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + caml_call1(Stdlib_Buffer[8], v[1]); + return finish_string$1(v, lexbuf); + case 1: + return long_error$1(cst_Expected_but_found$33, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$109, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_ident$1(v, lexbuf){ + var ocaml_lex_state = 237; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + caml_call1(Stdlib_Buffer[8], v[1]); + return finish_string$1(v, lexbuf); + case 1: + var s = caml_call3(sub_lexeme$1, lexbuf, lexbuf[5], lexbuf[6]); + return s; + case 2: + return long_error$1(cst_Expected_string_or_identif$7, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$110, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function map_ident$1(v, f, lexbuf){ + var ocaml_lex_state = 242; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + caml_call1(Stdlib_Buffer[8], v[1]); + return map_string$1(v, f, lexbuf); + case 1: + var len = lexbuf[6] - lexbuf[5] | 0; + return caml_call3 + (f, + caml_call3(Stdlib_Bytes[8], lexbuf[2], lexbuf[5], len), + 0, + len); + case 2: + return long_error$1(cst_Expected_string_or_identif$8, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$111, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_sequence$1(read_cell, init_acc, v, lexbuf){ + var ocaml_lex_state = 247; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var acc = [0, init_acc]; + try{ + read_space$1(v, lexbuf); + read_array_end$1(lexbuf); + acc[1] = caml_call3(read_cell, acc[1], v, lexbuf); + for(;;){ + read_space$1(v, lexbuf); + read_array_sep$1(v, lexbuf); + read_space$1(v, lexbuf); + acc[1] = caml_call3(read_cell, acc[1], v, lexbuf); + } + } + catch(_e__){ + var _e9_ = caml_wrap_exception(_e__); + if(_e9_ === End_of_array) return acc[1]; + throw caml_maybe_attach_backtrace(_e9_, 0); + } + case 1: + return long_error$1(cst_Expected_but_found$34, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$112, v, lexbuf); + } + } + } + function read_list_rev$1(read_cell, v, lexbuf){ + var ocaml_lex_state = 251; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var acc = [0, 0]; + try{ + read_space$1(v, lexbuf); + read_array_end$1(lexbuf); + var _e6_ = acc[1]; + acc[1] = [0, caml_call2(read_cell, v, lexbuf), _e6_]; + for(;;){ + read_space$1(v, lexbuf); + read_array_sep$1(v, lexbuf); + read_space$1(v, lexbuf); + var _e7_ = acc[1]; + acc[1] = [0, caml_call2(read_cell, v, lexbuf), _e7_]; + } + } + catch(_e8_){ + var _e5_ = caml_wrap_exception(_e8_); + if(_e5_ === End_of_array) return acc[1]; + throw caml_maybe_attach_backtrace(_e5_, 0); + } + case 1: + return long_error$1(cst_Expected_but_found$35, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$113, v, lexbuf); + } + } + } + function read_array_end$1(lexbuf){ + var ocaml_lex_state = 255; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) + throw caml_maybe_attach_backtrace(End_of_array, 1); + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_array_sep$1(v, lexbuf){ + var ocaml_lex_state = 257; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + throw caml_maybe_attach_backtrace(End_of_array, 1); + case 2: + return long_error$1(cst_Expected_or_but_found$31, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$114, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_tuple$1(read_cell, init_acc, v, lexbuf){ + var ocaml_lex_state = 262; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var pos = [0, 0], acc = [0, init_acc]; + try{ + read_space$1(v, lexbuf); + read_tuple_end$1(lexbuf); + acc[1] = caml_call4(read_cell, pos[1], acc[1], v, lexbuf); + pos[1]++; + for(;;){ + read_space$1(v, lexbuf); + read_tuple_sep$1(v, lexbuf); + read_space$1(v, lexbuf); + acc[1] = caml_call4(read_cell, pos[1], acc[1], v, lexbuf); + pos[1]++; + } + } + catch(_e4_){ + var _e3_ = caml_wrap_exception(_e4_); + if(_e3_ === End_of_tuple) return acc[1]; + throw caml_maybe_attach_backtrace(_e3_, 0); + } + case 1: + return long_error$1(cst_Expected_but_found$36, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$115, v, lexbuf); + } + } + } + function read_tuple_end$1(lexbuf){ + var ocaml_lex_state = 266; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_tuple_end2$1(v, std, lexbuf){ + var ocaml_lex_state = 268; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + if(std) return long_error$1(cst_Expected_or_but_found$32, v, lexbuf); + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + case 1: + if(std) throw caml_maybe_attach_backtrace(End_of_tuple, 1); + return long_error$1(cst_Expected_or_but_found$33, v, lexbuf); + default: return 0; + } + } + } + function read_tuple_sep$1(v, lexbuf){ + var ocaml_lex_state = 271; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + case 2: + return long_error$1(cst_Expected_or_but_found$34, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$116, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_tuple_sep2$1(v, std, lexbuf){ + var ocaml_lex_state = 276; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(4 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + if(std) return long_error$1(cst_Expected_or_but_found$35, v, lexbuf); + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + case 2: + if(std) throw caml_maybe_attach_backtrace(End_of_tuple, 1); + return long_error$1(cst_Expected_or_but_found$36, v, lexbuf); + case 3: + return long_error$1(cst_Expected_or_but_found$37, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$117, v, lexbuf); + } + } + } + function read_abstract_fields$1(read_key, read_field, init_acc, v, lexbuf){ + var ocaml_lex_state = 282; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var acc = [0, init_acc]; + try{ + read_space$1(v, lexbuf); + read_object_end$1(lexbuf); + var field_name = caml_call2(read_key, v, lexbuf); + read_space$1(v, lexbuf); + read_colon$1(v, lexbuf); + read_space$1(v, lexbuf); + acc[1] = caml_call4(read_field, acc[1], field_name, v, lexbuf); + for(;;){ + read_space$1(v, lexbuf); + read_object_sep$1(v, lexbuf); + read_space$1(v, lexbuf); + var field_name$0 = caml_call2(read_key, v, lexbuf); + read_space$1(v, lexbuf); + read_colon$1(v, lexbuf); + read_space$1(v, lexbuf); + acc[1] = caml_call4(read_field, acc[1], field_name$0, v, lexbuf); + } + } + catch(_e2_){ + var _e1_ = caml_wrap_exception(_e2_); + if(_e1_ === End_of_object) return acc[1]; + throw caml_maybe_attach_backtrace(_e1_, 0); + } + case 1: + return long_error$1(cst_Expected_but_found$37, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$118, v, lexbuf); + } + } + } + function read_lcurl$1(v, lexbuf){ + var ocaml_lex_state = 286; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$1(cst_Expected_but_found$38, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$119, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_object_end$1(lexbuf){ + var ocaml_lex_state = 290; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) + throw caml_maybe_attach_backtrace(End_of_object, 1); + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_object_sep$1(v, lexbuf){ + var ocaml_lex_state = 292; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + throw caml_maybe_attach_backtrace(End_of_object, 1); + case 2: + return long_error$1(cst_Expected_or_but_found$38, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$120, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_colon$1(v, lexbuf){ + var ocaml_lex_state = 297; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$1(cst_Expected_but_found$39, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$121, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function start_any_tuple$1(v, lexbuf){ + var ocaml_lex_state = 301; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return 1; + case 2: + return long_error$1(cst_Expected_or_but_found$39, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$122, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_lpar$1(v, lexbuf){ + var ocaml_lex_state = 306; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$1(cst_Expected_but_found$40, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$123, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_rpar$1(v, lexbuf){ + var ocaml_lex_state = 310; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$1(cst_Expected_but_found$41, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$124, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_lbr$1(v, lexbuf){ + var ocaml_lex_state = 314; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$1(cst_Expected_but_found$42, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$125, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_rbr$1(v, lexbuf){ + var ocaml_lex_state = 318; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$1(cst_Expected_but_found$43, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$126, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_skip_variant$1(v, lexbuf){ + var ocaml_lex_state = 389; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + skip_json$1(v, lexbuf); + read_space$1(v, lexbuf); + return read_gt$1(v, lexbuf); + case 1: + return 0; + case 2: + return long_error$1(cst_Expected_or_but_found$40, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$129, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_skip_stringlit$1(v, lexbuf){ + var ocaml_lex_state = 378; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$1(cst_Invalid_string_literal$6, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$128, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function skip_json$1(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 322; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(18 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return 0; + case 2: + return 0; + case 3: + return 0; + case 4: + return 0; + case 5: + return 0; + case 6: + return finish_skip_stringlit$1(v, lexbuf); + case 7: + return 0; + case 8: + return 0; + case 9: + try{ + read_space$1(v, lexbuf); + read_object_end$1(lexbuf); + skip_ident$1(v, lexbuf); + read_space$1(v, lexbuf); + read_colon$1(v, lexbuf); + read_space$1(v, lexbuf); + skip_json$1(v, lexbuf); + for(;;){ + read_space$1(v, lexbuf); + read_object_sep$1(v, lexbuf); + read_space$1(v, lexbuf); + skip_ident$1(v, lexbuf); + read_space$1(v, lexbuf); + read_colon$1(v, lexbuf); + read_space$1(v, lexbuf); + skip_json$1(v, lexbuf); + } + } + catch(_e0_){ + var _eV_ = caml_wrap_exception(_e0_); + if(_eV_ === End_of_object) return 0; + throw caml_maybe_attach_backtrace(_eV_, 0); + } + case 10: + try{ + read_space$1(v, lexbuf); + read_array_end$1(lexbuf); + skip_json$1(v, lexbuf); + for(;;){ + read_space$1(v, lexbuf); + read_array_sep$1(v, lexbuf); + read_space$1(v, lexbuf); + skip_json$1(v, lexbuf); + } + } + catch(_eZ_){ + var _eW_ = caml_wrap_exception(_eZ_); + if(_eW_ === End_of_array) return 0; + throw caml_maybe_attach_backtrace(_eW_, 0); + } + case 11: + try{ + read_space$1(v, lexbuf); + read_tuple_end$1(lexbuf); + skip_json$1(v, lexbuf); + for(;;){ + read_space$1(v, lexbuf); + read_tuple_sep$1(v, lexbuf); + read_space$1(v, lexbuf); + skip_json$1(v, lexbuf); + } + } + catch(_eY_){ + var _eX_ = caml_wrap_exception(_eY_); + if(_eX_ === End_of_tuple) return 0; + throw caml_maybe_attach_backtrace(_eX_, 0); + } + case 12: + read_space$1(v, lexbuf); + skip_ident$1(v, lexbuf); + read_space$1(v, lexbuf); + return finish_skip_variant$1(v, lexbuf); + case 13: + continue a; + case 14: + finish_comment$1(v, lexbuf); continue a; + case 15: + newline$1(v, lexbuf); continue a; + case 16: + continue a; + case 17: + return custom_error$1(cst_Unexpected_end_of_input$127, v, lexbuf); + default: return long_error$1(cst_Invalid_token$13, v, lexbuf); + } + } + } + } + function skip_ident$1(v, lexbuf){ + var ocaml_lex_state = 394; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return finish_skip_stringlit$1(v, lexbuf); + case 1: + return 0; + case 2: + return long_error$1(cst_Expected_string_or_identif$9, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$130, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_buffer_stringlit$1(v, lexbuf){ + var ocaml_lex_state = 450; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 34); + return add_lexeme$1(v[1], lexbuf); + case 1: + return long_error$1(cst_Invalid_string_literal$7, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$132, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function buffer_json$1(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 399; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(11 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return add_lexeme$1(v[1], lexbuf); + case 1: + return finish_buffer_stringlit$1(v, lexbuf); + case 2: + try{ + caml_call2(Stdlib_Buffer[12], v[1], 123); + buffer_space$1(v, lexbuf); + var ocaml_lex_state$3 = 478; + for(;;){ var - a=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5] + 1 | 0), - b=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5] + 2 | 0), - c$0=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5] + 3 | 0), - d=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5] + 4 | 0), - _ff_=hex$5(d), - _fg_=hex$5(c$0) << 4, - _fh_=hex$5(b) << 8, - x=hex$5(a) << 12 | _fh_ | _fg_ | _ff_; - if(55296 <= x && ! (56319 < x)) - {var ocaml_lex_state$1=82; - for(;;) - {var - ocaml_lex_state$2= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$1,lexbuf); - if(2 < ocaml_lex_state$2 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$1=ocaml_lex_state$2; - continue} - switch(ocaml_lex_state$2) - {case 0: - var - a$0=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5] + 2 | 0), - b$0=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5] + 3 | 0), - c$1=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5] + 4 | 0), - d$0=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5] + 5 | 0), - _fi_=hex$5(d$0), - _fj_=hex$5(c$1) << 4, - _fk_=hex$5(b$0) << 8, - y=hex$5(a$0) << 12 | _fk_ | _fj_ | _fi_; - if(56320 <= y && ! (57343 < y)) - return utf8_of_surrogate_pair(v[1],x,y); - return long_error$1 - (cst_Invalid_low_surrogate_for_$1,v,lexbuf); + ocaml_lex_state$4 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state$3, lexbuf); + if(0 === ocaml_lex_state$4){ + caml_call2(Stdlib_Buffer[12], v[1], 125); + throw caml_maybe_attach_backtrace(End_of_object, 1); + } + if(1 !== ocaml_lex_state$4){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$3 = ocaml_lex_state$4; + continue; + } + buffer_ident$1(v, lexbuf); + buffer_space$1(v, lexbuf); + buffer_colon$1(v, lexbuf); + buffer_space$1(v, lexbuf); + buffer_json$1(v, lexbuf); + b: + for(;;){ + buffer_space$1(v, lexbuf); + var ocaml_lex_state$5 = 480; + for(;;){ + var + ocaml_lex_state$6 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state$5, lexbuf); + if(3 < ocaml_lex_state$6 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$5 = ocaml_lex_state$6; + continue; + } + switch(ocaml_lex_state$6){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 44); break; + case 1: + caml_call2(Stdlib_Buffer[12], v[1], 125); + throw caml_maybe_attach_backtrace(End_of_object, 1); + case 2: + long_error$1(cst_Expected_or_but_found$42, v, lexbuf); break; + default: + custom_error$1(cst_Unexpected_end_of_input$135, v, lexbuf); + } + buffer_space$1(v, lexbuf); + buffer_ident$1(v, lexbuf); + buffer_space$1(v, lexbuf); + buffer_colon$1(v, lexbuf); + buffer_space$1(v, lexbuf); + buffer_json$1(v, lexbuf); + continue b; + } + } + } + } + catch(_eU_){ + var _eP_ = caml_wrap_exception(_eU_); + if(_eP_ === End_of_object) return 0; + throw caml_maybe_attach_backtrace(_eP_, 0); + } + case 3: + try{ + caml_call2(Stdlib_Buffer[12], v[1], 91); + buffer_space$1(v, lexbuf); + var ocaml_lex_state$7 = 485; + for(;;){ + var + ocaml_lex_state$8 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state$7, lexbuf); + if(0 === ocaml_lex_state$8){ + caml_call2(Stdlib_Buffer[12], v[1], 93); + throw caml_maybe_attach_backtrace(End_of_array, 1); + } + if(1 !== ocaml_lex_state$8){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$7 = ocaml_lex_state$8; + continue; + } + buffer_json$1(v, lexbuf); + b: + for(;;){ + buffer_space$1(v, lexbuf); + var ocaml_lex_state$9 = 487; + for(;;){ + var + ocaml_lex_state$10 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state$9, lexbuf); + if(3 < ocaml_lex_state$10 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$9 = ocaml_lex_state$10; + continue; + } + switch(ocaml_lex_state$10){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 44); break; + case 1: + caml_call2(Stdlib_Buffer[12], v[1], 93); + throw caml_maybe_attach_backtrace(End_of_array, 1); + case 2: + long_error$1(cst_Expected_or_but_found$43, v, lexbuf); break; + default: + custom_error$1(cst_Unexpected_end_of_input$136, v, lexbuf); + } + buffer_space$1(v, lexbuf); + buffer_json$1(v, lexbuf); + continue b; + } + } + } + } + catch(_eT_){ + var _eQ_ = caml_wrap_exception(_eT_); + if(_eQ_ === End_of_array) return 0; + throw caml_maybe_attach_backtrace(_eQ_, 0); + } + case 4: + try{ + caml_call2(Stdlib_Buffer[12], v[1], 40); + buffer_space$1(v, lexbuf); + var ocaml_lex_state$11 = 492; + for(;;){ + var + ocaml_lex_state$12 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state$11, lexbuf); + if(0 === ocaml_lex_state$12){ + caml_call2(Stdlib_Buffer[12], v[1], 41); + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + } + if(1 !== ocaml_lex_state$12){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$11 = ocaml_lex_state$12; + continue; + } + buffer_json$1(v, lexbuf); + b: + for(;;){ + buffer_space$1(v, lexbuf); + var ocaml_lex_state$13 = 494; + for(;;){ + var + ocaml_lex_state$14 = + caml_lex_engine + (ocaml_lex_tables$1, ocaml_lex_state$13, lexbuf); + if(3 < ocaml_lex_state$14 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$13 = ocaml_lex_state$14; + continue; + } + switch(ocaml_lex_state$14){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 44); break; + case 1: + caml_call2(Stdlib_Buffer[12], v[1], 41); + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + case 2: + long_error$1(cst_Expected_or_but_found$44, v, lexbuf); break; + default: + custom_error$1(cst_Unexpected_end_of_input$137, v, lexbuf); + } + buffer_space$1(v, lexbuf); + buffer_json$1(v, lexbuf); + continue b; + } + } + } + } + catch(_eS_){ + var _eR_ = caml_wrap_exception(_eS_); + if(_eR_ === End_of_tuple) return 0; + throw caml_maybe_attach_backtrace(_eR_, 0); + } + case 5: + caml_call2(Stdlib_Buffer[12], v[1], 60); + buffer_space$1(v, lexbuf); + buffer_ident$1(v, lexbuf); + buffer_space$1(v, lexbuf); + var ocaml_lex_state$1 = 461; + for(;;){ + var + ocaml_lex_state$2 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state$1, lexbuf); + if(3 < ocaml_lex_state$2 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$1 = ocaml_lex_state$2; + continue; + } + switch(ocaml_lex_state$2){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 58); + buffer_json$1(v, lexbuf); + buffer_space$1(v, lexbuf); + var ocaml_lex_state$15 = 503; + for(;;){ + var + ocaml_lex_state$16 = + caml_lex_engine + (ocaml_lex_tables$1, ocaml_lex_state$15, lexbuf); + if(2 >= ocaml_lex_state$16 >>> 0) + switch(ocaml_lex_state$16){ + case 0: + return caml_call2(Stdlib_Buffer[12], v[1], 62); case 1: - return long_error$1 - (cst_Missing_escape_sequence_re$1,v,lexbuf); + return long_error$1(cst_Expected_but_found$45, v, lexbuf); default: return custom_error$1 - (cst_Unexpected_end_of_input$96,v,lexbuf)}}} - return utf8_of_code(v[1],x); - case 7:return long_error$1(cst_Invalid_escape_sequence$1,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$95,v,lexbuf)}}} - function finish_stringlit$1(v,lexbuf) - {var ocaml_lex_state=91; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - var len=lexbuf[6] - lexbuf[5] | 0,s=caml_create_bytes(len + 1 | 0); - caml_bytes_set(s,0,34); - caml_call5(Stdlib_Bytes[11],lexbuf[2],lexbuf[5],s,1,len); - return caml_call1(Stdlib_Bytes[6],s); - case 1:return long_error$1(cst_Invalid_string_literal$5,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$97,v,lexbuf)}}} - function finish_variant$1(v,lexbuf) - {var ocaml_lex_state=102; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - var x=read_json$1(v,lexbuf); - read_space$1(v,lexbuf); - read_gt$1(v,lexbuf); - return [0,x]; - case 1:return 0; - case 2:return long_error$1(cst_Expected_or_but_found$29,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$98,v,lexbuf)}}} - function read_lt$1(v,lexbuf) - {var ocaml_lex_state=107; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$1(cst_Expected_but_found$30,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$99,v,lexbuf)}}} - function read_gt$1(v,lexbuf) - {var ocaml_lex_state=111; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$1(cst_Expected_but_found$31,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$100,v,lexbuf)}}} - function read_comma$1(v,lexbuf) - {var ocaml_lex_state=115; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$1(cst_Expected_but_found$32,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$101,v,lexbuf)}}} - function start_any_variant$1(v,lexbuf) - {var ocaml_lex_state=119; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(4 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return -154522342; - case 1:caml_call1(Stdlib_Buffer[8],v[1]);return -589953938; - case 2:return -124528282; - case 3:return long_error$1(cst_Expected_or_but_found$30,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$102,v,lexbuf)}}} - function finish_comment$1(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=125; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$1(cst_Unterminated_comment$3,v,lexbuf); - case 2:newline$1(v,lexbuf);continue a; - default:continue a}}}} - function read_eof$1(lexbuf) - {var ocaml_lex_state=131; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)return 1; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - function read_space$1(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=133; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(4 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:newline$1(v,lexbuf);continue a; - case 1:finish_comment$1(v,lexbuf);continue a; - case 2:newline$1(v,lexbuf);continue a; - case 3:continue a; - default:return 0}}}} - function read_null$1(v,lexbuf) - {var ocaml_lex_state=140; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$1(cst_Expected_null_but_found$1,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$103,v,lexbuf)}}} - function read_null_if_possible$1(v,lexbuf) - {var ocaml_lex_state=147; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)return 1; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - function read_bool$1(v,lexbuf) - {var ocaml_lex_state=152; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(5 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 1; - case 1:return 0; - case 2:return 1; - case 3:return 0; - case 4: - return long_error$1(cst_Expected_true_or_false_but$1,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$104,v,lexbuf)}}} - function ocaml_lex_read_int_rec$1(v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); - if(4 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - try - {var _e$_=extract_positive_int$1(lexbuf);return _e$_} - catch(_fe_) - {_fe_ = caml_wrap_exception(_fe_); - if(_fe_ === Int_overflow$1) - return lexer_error$1(cst_Int_overflow$5,v,lexbuf); - throw _fe_} - case 1: - try - {var _fa_=extract_negative_int$1(lexbuf);return _fa_} - catch(_fd_) - {_fd_ = caml_wrap_exception(_fd_); - if(_fd_ === Int_overflow$1) - return lexer_error$1(cst_Int_overflow$6,v,lexbuf); - throw _fd_} - case 2: - caml_call1(Stdlib_Buffer[8],v[1]); - var s=finish_string$5(v,lexbuf); - try - {var _fb_=caml_int_of_string(s);return _fb_} - catch(_fc_) - {return custom_error$1(cst_Expected_an_integer_but_fo$1,v,lexbuf)} - case 3: - return long_error$1(cst_Expected_integer_but_found$1,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$105,v,lexbuf)}}} - function read_int$1(v,lexbuf) - {return ocaml_lex_read_int_rec$1(v,lexbuf,176)} - function ocaml_lex_read_int32_rec$1(v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); - if(3 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - try - {var _e7_=caml_int_of_string(caml_call1(lexeme$1,lexbuf)); - return _e7_} - catch(_e__){return lexer_error$1(cst_Int32_overflow$3,v,lexbuf)} - case 1: - caml_call1(Stdlib_Buffer[8],v[1]); - var s=finish_string$5(v,lexbuf); - try - {var _e8_=caml_int_of_string(s);return _e8_} - catch(_e9_) - {return custom_error$1(cst_Expected_an_int32_but_foun$1,v,lexbuf)} - case 2:return long_error$1(cst_Expected_int32_but_found$1,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$106,v,lexbuf)}}} - function read_int32$1(v,lexbuf) - {return ocaml_lex_read_int32_rec$1(v,lexbuf,185)} - function ocaml_lex_read_int64_rec$1(v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); - if(3 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - try - {var _e3_=caml_int64_of_string(caml_call1(lexeme$1,lexbuf)); - return _e3_} - catch(_e6_){return lexer_error$1(cst_Int32_overflow$4,v,lexbuf)} - case 1: - caml_call1(Stdlib_Buffer[8],v[1]); - var s=finish_string$5(v,lexbuf); - try - {var _e4_=caml_int64_of_string(s);return _e4_} - catch(_e5_) - {return custom_error$1(cst_Expected_an_int64_but_foun$1,v,lexbuf)} - case 2:return long_error$1(cst_Expected_int64_but_found$1,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$107,v,lexbuf)}}} - function read_int64$1(v,lexbuf) - {return ocaml_lex_read_int64_rec$1(v,lexbuf,192)} - function ocaml_lex_read_number_rec$1(v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); - if(6 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0:return Stdlib[24]; - case 1:return Stdlib[22]; - case 2:return Stdlib[23]; - case 3:return caml_float_of_string(caml_call1(lexeme$1,lexbuf)); - case 4: - caml_call1(Stdlib_Buffer[8],v[1]); - var s=finish_string$5(v,lexbuf); - try - {var _e1_=caml_float_of_string(s);return _e1_} - catch(_e2_) - {return caml_string_notequal(s,cst_Infinity$15) - ?caml_string_notequal(s,cst_Infinity$16) - ?caml_string_notequal(s,cst_NaN$7) - ?custom_error$1(cst_Expected_a_number_but_foun$1,v,lexbuf) - :Stdlib[24] - :Stdlib[22] - :Stdlib[23]} - case 5: - return long_error$1(cst_Expected_number_but_found$1,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$108,v,lexbuf)}}} - function read_number$1(v,lexbuf) - {return ocaml_lex_read_number_rec$1(v,lexbuf,199)} - function read_string$1(v,lexbuf) - {var ocaml_lex_state=233; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - caml_call1(Stdlib_Buffer[8],v[1]);return finish_string$5(v,lexbuf); - case 1:return long_error$1(cst_Expected_but_found$33,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$109,v,lexbuf)}}} - function read_ident$1(v,lexbuf) - {var ocaml_lex_state=237; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - caml_call1(Stdlib_Buffer[8],v[1]);return finish_string$5(v,lexbuf); - case 1: - var s=caml_call3(sub_lexeme$1,lexbuf,lexbuf[5],lexbuf[6]);return s; - case 2: - return long_error$1(cst_Expected_string_or_identif$7,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$110,v,lexbuf)}}} - function map_ident$1(v,f,lexbuf) - {var ocaml_lex_state=242; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - caml_call1(Stdlib_Buffer[8],v[1]);return map_string$1(v,f,lexbuf); - case 1: - var len=lexbuf[6] - lexbuf[5] | 0; - return caml_call3 - (f, - caml_call3(Stdlib_Bytes[8],lexbuf[2],lexbuf[5],len), - 0, - len); - case 2: - return long_error$1(cst_Expected_string_or_identif$8,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$111,v,lexbuf)}}} - function ocaml_lex_read_sequence_rec$1 - (read_cell,init_acc,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); - if(2 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - var acc=[0,init_acc]; - try - {read_space$1(v,lexbuf); - read_array_end$1(lexbuf); - acc[1] = caml_call3(read_cell,acc[1],v,lexbuf); - for(;;) - {read_space$1(v,lexbuf); - read_array_sep$1(v,lexbuf); - read_space$1(v,lexbuf); - acc[1] = caml_call3(read_cell,acc[1],v,lexbuf); - continue}} - catch(_e0_) - {_e0_ = caml_wrap_exception(_e0_); - if(_e0_ === End_of_array)return acc[1]; - throw _e0_} - case 1:return long_error$1(cst_Expected_but_found$34,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$112,v,lexbuf)}}} - function read_sequence$1(read_cell,init_acc,v,lexbuf) - {return ocaml_lex_read_sequence_rec$1(read_cell,init_acc,v,lexbuf,247)} - function ocaml_lex_read_list_rev_rec$1(read_cell,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); - if(2 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - var acc=[0,0]; - try - {read_space$1(v,lexbuf); - read_array_end$1(lexbuf); - var _eX_=acc[1]; - acc[1] = [0,caml_call2(read_cell,v,lexbuf),_eX_]; - for(;;) - {read_space$1(v,lexbuf); - read_array_sep$1(v,lexbuf); - read_space$1(v,lexbuf); - var _eY_=acc[1]; - acc[1] = [0,caml_call2(read_cell,v,lexbuf),_eY_]; - continue}} - catch(_eZ_) - {_eZ_ = caml_wrap_exception(_eZ_); - if(_eZ_ === End_of_array)return acc[1]; - throw _eZ_} - case 1:return long_error$1(cst_Expected_but_found$35,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$113,v,lexbuf)}}} - function read_list_rev$1(read_cell,v,lexbuf) - {return ocaml_lex_read_list_rev_rec$1(read_cell,v,lexbuf,251)} - function read_array_end$1(lexbuf) - {var ocaml_lex_state=255; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)throw End_of_array; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - function read_array_sep$1(v,lexbuf) - {var ocaml_lex_state=257; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:throw End_of_array; - case 2:return long_error$1(cst_Expected_or_but_found$31,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$114,v,lexbuf)}}} - function ocaml_lex_read_tuple_rec$0 - (read_cell,init_acc,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); - if(2 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - var pos=[0,0],acc=[0,init_acc]; - try - {read_space$1(v,lexbuf); - read_tuple_end$1(lexbuf); - acc[1] = caml_call4(read_cell,pos[1],acc[1],v,lexbuf); - pos[1]++; - for(;;) - {read_space$1(v,lexbuf); - read_tuple_sep$1(v,lexbuf); - read_space$1(v,lexbuf); - acc[1] = caml_call4(read_cell,pos[1],acc[1],v,lexbuf); - pos[1]++; - continue}} - catch(_eW_) - {_eW_ = caml_wrap_exception(_eW_); - if(_eW_ === End_of_tuple)return acc[1]; - throw _eW_} - case 1:return long_error$1(cst_Expected_but_found$36,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$115,v,lexbuf)}}} - function read_tuple$1(read_cell,init_acc,v,lexbuf) - {return ocaml_lex_read_tuple_rec$0(read_cell,init_acc,v,lexbuf,262)} - function read_tuple_end$1(lexbuf) - {var ocaml_lex_state=266; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)throw End_of_tuple; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - function read_tuple_end2$1(v,std,lexbuf) - {var ocaml_lex_state=268; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - if(std)return long_error$1(cst_Expected_or_but_found$32,v,lexbuf); - throw End_of_tuple; - case 1: - if(std)throw End_of_tuple; - return long_error$1(cst_Expected_or_but_found$33,v,lexbuf); - default:return 0}}} - function read_tuple_sep$1(v,lexbuf) - {var ocaml_lex_state=271; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:throw End_of_tuple; - case 2:return long_error$1(cst_Expected_or_but_found$34,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$116,v,lexbuf)}}} - function read_tuple_sep2$1(v,std,lexbuf) - {var ocaml_lex_state=276; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(4 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1: - if(std)return long_error$1(cst_Expected_or_but_found$35,v,lexbuf); - throw End_of_tuple; - case 2: - if(std)throw End_of_tuple; - return long_error$1(cst_Expected_or_but_found$36,v,lexbuf); - case 3:return long_error$1(cst_Expected_or_but_found$37,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$117,v,lexbuf)}}} - function ocaml_lex_read_abstract_fields$1 - (read_key,read_field,init_acc,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); - if(2 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - var acc=[0,init_acc]; - try - {read_space$1(v,lexbuf); - read_object_end$1(lexbuf); - var field_name=caml_call2(read_key,v,lexbuf); - read_space$1(v,lexbuf); - read_colon$1(v,lexbuf); - read_space$1(v,lexbuf); - acc[1] = caml_call4(read_field,acc[1],field_name,v,lexbuf); - for(;;) - {read_space$1(v,lexbuf); - read_object_sep$1(v,lexbuf); - read_space$1(v,lexbuf); - var field_name$0=caml_call2(read_key,v,lexbuf); - read_space$1(v,lexbuf); - read_colon$1(v,lexbuf); - read_space$1(v,lexbuf); - acc[1] = caml_call4(read_field,acc[1],field_name$0,v,lexbuf); - continue}} - catch(_eV_) - {_eV_ = caml_wrap_exception(_eV_); - if(_eV_ === End_of_object)return acc[1]; - throw _eV_} - case 1:return long_error$1(cst_Expected_but_found$37,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$118,v,lexbuf)}}} - function read_abstract_fields$1(read_key,read_field,init_acc,v,lexbuf) - {return ocaml_lex_read_abstract_fields$1 - (read_key,read_field,init_acc,v,lexbuf,282)} - function read_lcurl$1(v,lexbuf) - {var ocaml_lex_state=286; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$1(cst_Expected_but_found$38,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$119,v,lexbuf)}}} - function read_object_end$1(lexbuf) - {var ocaml_lex_state=290; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)throw End_of_object; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - function read_object_sep$1(v,lexbuf) - {var ocaml_lex_state=292; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:throw End_of_object; - case 2:return long_error$1(cst_Expected_or_but_found$38,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$120,v,lexbuf)}}} - function read_colon$1(v,lexbuf) - {var ocaml_lex_state=297; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$1(cst_Expected_but_found$39,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$121,v,lexbuf)}}} - function start_any_tuple$1(v,lexbuf) - {var ocaml_lex_state=301; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return 1; - case 2:return long_error$1(cst_Expected_or_but_found$39,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$122,v,lexbuf)}}} - function read_lpar$1(v,lexbuf) - {var ocaml_lex_state=306; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$1(cst_Expected_but_found$40,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$123,v,lexbuf)}}} - function read_rpar$1(v,lexbuf) - {var ocaml_lex_state=310; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$1(cst_Expected_but_found$41,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$124,v,lexbuf)}}} - function read_lbr$1(v,lexbuf) - {var ocaml_lex_state=314; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$1(cst_Expected_but_found$42,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$125,v,lexbuf)}}} - function read_rbr$1(v,lexbuf) - {var ocaml_lex_state=318; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$1(cst_Expected_but_found$43,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$126,v,lexbuf)}}} - function finish_skip_variant$1(v,lexbuf) - {var ocaml_lex_state=389; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - skip_json$1(v,lexbuf); - read_space$1(v,lexbuf); - return read_gt$1(v,lexbuf); - case 1:return 0; - case 2:return long_error$1(cst_Expected_or_but_found$40,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$129,v,lexbuf)}}} - function finish_skip_stringlit$1(v,lexbuf) - {var ocaml_lex_state=378; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$1(cst_Invalid_string_literal$6,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$128,v,lexbuf)}}} - function skip_json$4(counter,v,lexbuf) - {var _eU_=322; - if(counter < 50) - {var counter$0=counter + 1 | 0; - return ocaml_lex_skip_json_rec$1(counter$0,v,lexbuf,_eU_)} - return caml_trampoline_return - (ocaml_lex_skip_json_rec$1,[0,v,lexbuf,_eU_])} - function ocaml_lex_skip_json_rec$1(counter,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); - if(18 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0:return 0; - case 1:return 0; - case 2:return 0; - case 3:return 0; - case 4:return 0; - case 5:return 0; - case 6:return finish_skip_stringlit$1(v,lexbuf); - case 7:return 0; - case 8:return 0; - case 9: - try - {read_space$1(v,lexbuf); - read_object_end$1(lexbuf); - skip_ident$1(v,lexbuf); - read_space$1(v,lexbuf); - read_colon$1(v,lexbuf); - read_space$1(v,lexbuf); - skip_json$1(v,lexbuf); - for(;;) - {read_space$1(v,lexbuf); - read_object_sep$1(v,lexbuf); - read_space$1(v,lexbuf); - skip_ident$1(v,lexbuf); - read_space$1(v,lexbuf); - read_colon$1(v,lexbuf); - read_space$1(v,lexbuf); - skip_json$1(v,lexbuf); - continue}} - catch(_eT_) - {_eT_ = caml_wrap_exception(_eT_); - if(_eT_ === End_of_object)return 0; - throw _eT_} - case 10: - try - {read_space$1(v,lexbuf); - read_array_end$1(lexbuf); - skip_json$1(v,lexbuf); - for(;;) - {read_space$1(v,lexbuf); - read_array_sep$1(v,lexbuf); - read_space$1(v,lexbuf); - skip_json$1(v,lexbuf); - continue}} - catch(_eS_) - {_eS_ = caml_wrap_exception(_eS_); - if(_eS_ === End_of_array)return 0; - throw _eS_} - case 11: - try - {read_space$1(v,lexbuf); - read_tuple_end$1(lexbuf); - skip_json$1(v,lexbuf); - for(;;) - {read_space$1(v,lexbuf); - read_tuple_sep$1(v,lexbuf); - read_space$1(v,lexbuf); - skip_json$1(v,lexbuf); - continue}} - catch(_eR_) - {_eR_ = caml_wrap_exception(_eR_); - if(_eR_ === End_of_tuple)return 0; - throw _eR_} - case 12: - read_space$1(v,lexbuf); - skip_ident$1(v,lexbuf); - read_space$1(v,lexbuf); - return finish_skip_variant$1(v,lexbuf); - case 13: - if(counter < 50) - {var counter$0=counter + 1 | 0; - return skip_json$4(counter$0,v,lexbuf)} - return caml_trampoline_return(skip_json$4,[0,v,lexbuf]); - case 14: - finish_comment$1(v,lexbuf); - if(counter < 50) - {var counter$1=counter + 1 | 0; - return skip_json$4(counter$1,v,lexbuf)} - return caml_trampoline_return(skip_json$4,[0,v,lexbuf]); - case 15: - newline$1(v,lexbuf); - if(counter < 50) - {var counter$2=counter + 1 | 0; - return skip_json$4(counter$2,v,lexbuf)} - return caml_trampoline_return(skip_json$4,[0,v,lexbuf]); - case 16: - if(counter < 50) - {var counter$3=counter + 1 | 0; - return skip_json$4(counter$3,v,lexbuf)} - return caml_trampoline_return(skip_json$4,[0,v,lexbuf]); - case 17: - return custom_error$1(cst_Unexpected_end_of_input$127,v,lexbuf); - default:return long_error$1(cst_Invalid_token$13,v,lexbuf)}}} - function skip_json$1(v,lexbuf) - {return caml_trampoline(skip_json$4(0,v,lexbuf))} - function skip_ident$1(v,lexbuf) - {var ocaml_lex_state=394; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return finish_skip_stringlit$1(v,lexbuf); - case 1:return 0; - case 2: - return long_error$1(cst_Expected_string_or_identif$9,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$130,v,lexbuf)}}} - function finish_buffer_variant$0(v,lexbuf) - {var ocaml_lex_state=461; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - caml_call2(Stdlib_Buffer[12],v[1],58); - buffer_json$1(v,lexbuf); - buffer_space$1(v,lexbuf); - var ocaml_lex_state$1=503; - for(;;) - {var - ocaml_lex_state$2= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$1,lexbuf); - if(2 < ocaml_lex_state$2 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$1=ocaml_lex_state$2; - continue} - switch(ocaml_lex_state$2) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],62); - case 1:return long_error$1(cst_Expected_but_found$45,v,lexbuf); - default: - return custom_error$1 - (cst_Unexpected_end_of_input$139,v,lexbuf)}} - case 1:return caml_call2(Stdlib_Buffer[12],v[1],62); - case 2:return long_error$1(cst_Expected_or_but_found$41,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$133,v,lexbuf)}}} - function finish_buffer_stringlit$1(v,lexbuf) - {var ocaml_lex_state=450; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - caml_call2(Stdlib_Buffer[12],v[1],34); - return add_lexeme$1(v[1],lexbuf); - case 1:return long_error$1(cst_Invalid_string_literal$7,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$132,v,lexbuf)}}} - function buffer_json$4(counter,v,lexbuf) - {var _eQ_=399; - if(counter < 50) - {var counter$0=counter + 1 | 0; - return ocaml_lex_buffer_json_rec$1(counter$0,v,lexbuf,_eQ_)} - return caml_trampoline_return - (ocaml_lex_buffer_json_rec$1,[0,v,lexbuf,_eQ_])} - function ocaml_lex_buffer_json_rec$1(counter,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); - if(11 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0:return add_lexeme$1(v[1],lexbuf); - case 1:return finish_buffer_stringlit$1(v,lexbuf); - case 2: - try - {caml_call2(Stdlib_Buffer[12],v[1],123); - buffer_space$1(v,lexbuf); - buffer_object_end$1(v,lexbuf); - buffer_ident$1(v,lexbuf); - buffer_space$1(v,lexbuf); - buffer_colon$1(v,lexbuf); - buffer_space$1(v,lexbuf); - buffer_json$1(v,lexbuf); - for(;;) - {buffer_space$1(v,lexbuf); - buffer_object_sep$1(v,lexbuf); - buffer_space$1(v,lexbuf); - buffer_ident$1(v,lexbuf); - buffer_space$1(v,lexbuf); - buffer_colon$1(v,lexbuf); - buffer_space$1(v,lexbuf); - buffer_json$1(v,lexbuf); - continue}} - catch(_eP_) - {_eP_ = caml_wrap_exception(_eP_); - if(_eP_ === End_of_object)return 0; - throw _eP_} - case 3: - try - {caml_call2(Stdlib_Buffer[12],v[1],91); - buffer_space$1(v,lexbuf); - buffer_array_end$1(v,lexbuf); - buffer_json$1(v,lexbuf); - for(;;) - {buffer_space$1(v,lexbuf); - buffer_array_sep$1(v,lexbuf); - buffer_space$1(v,lexbuf); - buffer_json$1(v,lexbuf); - continue}} - catch(_eO_) - {_eO_ = caml_wrap_exception(_eO_); - if(_eO_ === End_of_array)return 0; - throw _eO_} - case 4: - try - {caml_call2(Stdlib_Buffer[12],v[1],40); - buffer_space$1(v,lexbuf); - buffer_tuple_end$0(v,lexbuf); - buffer_json$1(v,lexbuf); - for(;;) - {buffer_space$1(v,lexbuf); - buffer_tuple_sep$0(v,lexbuf); - buffer_space$1(v,lexbuf); - buffer_json$1(v,lexbuf); - continue}} - catch(_eN_) - {_eN_ = caml_wrap_exception(_eN_); - if(_eN_ === End_of_tuple)return 0; - throw _eN_} - case 5: - caml_call2(Stdlib_Buffer[12],v[1],60); - buffer_space$1(v,lexbuf); - buffer_ident$1(v,lexbuf); - buffer_space$1(v,lexbuf); - return finish_buffer_variant$0(v,lexbuf); - case 6: - add_lexeme$1(v[1],lexbuf); - if(counter < 50) - {var counter$0=counter + 1 | 0; - return buffer_json$4(counter$0,v,lexbuf)} - return caml_trampoline_return(buffer_json$4,[0,v,lexbuf]); - case 7: - caml_call2(Stdlib_Buffer[16],v[1],cst$78); - finish_buffer_comment$1(v,lexbuf); - if(counter < 50) - {var counter$1=counter + 1 | 0; - return buffer_json$4(counter$1,v,lexbuf)} - return caml_trampoline_return(buffer_json$4,[0,v,lexbuf]); - case 8: - caml_call2(Stdlib_Buffer[12],v[1],10); - newline$1(v,lexbuf); - if(counter < 50) - {var counter$2=counter + 1 | 0; - return buffer_json$4(counter$2,v,lexbuf)} - return caml_trampoline_return(buffer_json$4,[0,v,lexbuf]); - case 9: - add_lexeme$1(v[1],lexbuf); - if(counter < 50) - {var counter$3=counter + 1 | 0; - return buffer_json$4(counter$3,v,lexbuf)} - return caml_trampoline_return(buffer_json$4,[0,v,lexbuf]); - case 10: - return custom_error$1(cst_Unexpected_end_of_input$131,v,lexbuf); - default:return long_error$1(cst_Invalid_token$14,v,lexbuf)}}} - function buffer_json$1(v,lexbuf) - {return caml_trampoline(buffer_json$4(0,v,lexbuf))} - function buffer_ident$1(v,lexbuf) - {var ocaml_lex_state=466; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return finish_buffer_stringlit$1(v,lexbuf); - case 1:return add_lexeme$1(v[1],lexbuf); - case 2: - return long_error$1(cst_Expected_string_or_identif$10,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$134,v,lexbuf)}}} - function buffer_space$1(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=471; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(4 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:add_lexeme$1(v[1],lexbuf);newline$1(v,lexbuf);continue a; + (cst_Unexpected_end_of_input$139, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$15 = ocaml_lex_state$16; + } case 1: - caml_call2(Stdlib_Buffer[16],v[1],cst$79); - finish_buffer_comment$1(v,lexbuf); - continue a; + return caml_call2(Stdlib_Buffer[12], v[1], 62); case 2: - caml_call2(Stdlib_Buffer[12],v[1],10); - newline$1(v,lexbuf); - continue a; - case 3:add_lexeme$1(v[1],lexbuf);continue a; - default:return 0}}}} - function buffer_object_end$1(v,lexbuf) - {var ocaml_lex_state=478; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0) - {caml_call2(Stdlib_Buffer[12],v[1],125);throw End_of_object} - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - function buffer_object_sep$1(v,lexbuf) - {var ocaml_lex_state=480; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],44); - case 1:caml_call2(Stdlib_Buffer[12],v[1],125);throw End_of_object; - case 2:return long_error$1(cst_Expected_or_but_found$42,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$135,v,lexbuf)}}} - function buffer_array_end$1(v,lexbuf) - {var ocaml_lex_state=485; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0) - {caml_call2(Stdlib_Buffer[12],v[1],93);throw End_of_array} - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - function buffer_array_sep$1(v,lexbuf) - {var ocaml_lex_state=487; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],44); - case 1:caml_call2(Stdlib_Buffer[12],v[1],93);throw End_of_array; - case 2:return long_error$1(cst_Expected_or_but_found$43,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$136,v,lexbuf)}}} - function buffer_tuple_end$0(v,lexbuf) - {var ocaml_lex_state=492; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0) - {caml_call2(Stdlib_Buffer[12],v[1],41);throw End_of_tuple} - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - function buffer_tuple_sep$0(v,lexbuf) - {var ocaml_lex_state=494; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],44); - case 1:caml_call2(Stdlib_Buffer[12],v[1],41);throw End_of_tuple; - case 2:return long_error$1(cst_Expected_or_but_found$44,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$137,v,lexbuf)}}} - function buffer_colon$1(v,lexbuf) - {var ocaml_lex_state=499; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],58); - case 1:return long_error$1(cst_Expected_but_found$44,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$138,v,lexbuf)}}} - function finish_buffer_comment$1(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=507; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[16],v[1],cst$80); - case 1:return long_error$1(cst_Unterminated_comment$4,v,lexbuf); - case 2: - caml_call2(Stdlib_Buffer[12],v[1],10); - newline$1(v,lexbuf); - continue a; - default:add_lexeme$1(v[1],lexbuf);continue a}}}} - function junk$1(lexbuf) - {var ocaml_lex_state=513; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)return caml_call1(lexeme$1,lexbuf); - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue}} - read_junk$1[1] = junk$1; - function read_int8$1(v,lexbuf) - {var n=read_int$1(v,lexbuf); - if(0 <= n && ! (255 < n))return caml_call1(Stdlib[29],n); - return lexer_error$1(cst_Int8_overflow$1,v,lexbuf)} - function read_list$1(read_cell,v,lexbuf) - {var _eM_=read_list_rev$1(read_cell,v,lexbuf); - return caml_call1(Stdlib_List[9],_eM_)} - function read_array$1(read_cell,v,lexbuf) - {var l=read_list_rev$1(read_cell,v,lexbuf); - if(l) - {var - tl=l[2], - x=l[1], - len=caml_call1(Stdlib_List[1],l), - a=caml_make_vect(len,x), - r=[0,tl], - _eJ_=len - 2 | 0; - if(! (_eJ_ < 0)) - {var i=_eJ_; - for(;;) - {var _eK_=caml_call1(Stdlib_List[5],r[1]); - caml_check_bound(a,i)[1 + i] = _eK_; - r[1] = caml_call1(Stdlib_List[6],r[1]); - var _eL_=i - 1 | 0; - if(0 !== i){var i=_eL_;continue} - break}} - return a} - return [0]} - function read_fields$1(read_field,init_acc,v) - {return function(_eI_) - {return read_abstract_fields$1(read_ident$1,read_field,init_acc,v,_eI_)}} - function from_lexbuf$1(v,opt,lexbuf) - {if(opt)var sth=opt[1],stream=sth;else var stream=0; - read_space$1(v,lexbuf); - if(read_eof$1(lexbuf))throw End_of_input; - var x=read_json$1(v,lexbuf); - if(1 - stream) - {read_space$1(v,lexbuf); - if(1 - read_eof$1(lexbuf)) - long_error$1(cst_Junk_after_end_of_JSON_val$1,v,lexbuf)} - return x} - function from_string$4(buf,fname,lnum,s) - {try - {var - lexbuf=caml_call2(from_string$3,0,s), - v=init_lexer(buf,fname,lnum,0), - _eG_=from_lexbuf$1(v,0,lexbuf); - return _eG_} - catch(_eH_) - {_eH_ = caml_wrap_exception(_eH_); - if(_eH_ === End_of_input)return json_error(cst_Blank_input_data$3); - throw _eH_}} - function from_channel$4(buf,fname,lnum,ic) - {try - {var - lexbuf=caml_call2(from_channel$3,0,ic), - v=init_lexer(buf,fname,lnum,0), - _eE_=from_lexbuf$1(v,0,lexbuf); - return _eE_} - catch(_eF_) - {_eF_ = caml_wrap_exception(_eF_); - if(_eF_ === End_of_input)return json_error(cst_Blank_input_data$4); - throw _eF_}} - function from_file$1(buf,fname,lnum,file) - {var ic=caml_call1(Stdlib[79],file); - try - {var x=from_channel$4(buf,fname,lnum,ic); - caml_call1(Stdlib[93],ic); - return x} - catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[94],ic);throw e}} - var Finally$1=[248,cst_Yojson_Raw_Finally,caml_fresh_oo_id(0)]; - function seq_from_lexbuf$1(v,opt,lexbuf) - {if(opt)var sth=opt[1],fin=sth;else var fin=function(param){return 0}; - function f(param) - {try - {var _eD_=[0,from_lexbuf$1(v,stream$1,lexbuf),f];return _eD_} - catch(e) - {e = caml_wrap_exception(e); - if(e === End_of_input){caml_call1(fin,0);return 0} - try - {caml_call1(fin,0)} - catch(fin_e) - {fin_e = caml_wrap_exception(fin_e);throw [0,Finally$1,e,fin_e]} - throw e}} - return f} - function seq_from_string$1(buf,fname,lnum,s) - {var v=init_lexer(buf,fname,lnum,0); - return seq_from_lexbuf$1(v,0,caml_call2(from_string$3,0,s))} - function seq_from_channel$1(buf,fin,fname,lnum,ic) - {var - lexbuf=caml_call2(from_channel$3,0,ic), - v=init_lexer(buf,fname,lnum,0); - return seq_from_lexbuf$1(v,fin,lexbuf)} - function seq_from_file$1(buf,fname,lnum,file) - {var ic=caml_call1(Stdlib[79],file); - function fin(param){return caml_call1(Stdlib[93],ic)} + return long_error$1(cst_Expected_or_but_found$41, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$133, v, lexbuf); + } + } + case 6: + add_lexeme$1(v[1], lexbuf); continue a; + case 7: + caml_call2(Stdlib_Buffer[16], v[1], cst$78); + finish_buffer_comment$1(v, lexbuf); + continue a; + case 8: + caml_call2(Stdlib_Buffer[12], v[1], 10); + newline$1(v, lexbuf); + continue a; + case 9: + add_lexeme$1(v[1], lexbuf); continue a; + case 10: + return custom_error$1(cst_Unexpected_end_of_input$131, v, lexbuf); + default: return long_error$1(cst_Invalid_token$14, v, lexbuf); + } + } + } + } + function buffer_ident$1(v, lexbuf){ + var ocaml_lex_state = 466; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return finish_buffer_stringlit$1(v, lexbuf); + case 1: + return add_lexeme$1(v[1], lexbuf); + case 2: + return long_error$1(cst_Expected_string_or_identif$10, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$134, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function buffer_space$1(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 471; + for(;;){ var - fname$0=fname || [0,file], - lexbuf=caml_call2(from_channel$3,0,ic), - v=init_lexer(buf,fname$0,lnum,0); - return seq_from_lexbuf$1(v,[0,fin],lexbuf)} - function lineseq_from_channel$1(buf,opt,fname,_ev_,ic) - {if(opt)var sth=opt[1],fin=sth;else var fin=function(param){return 0}; - if(_ev_)var sth$0=_ev_[1],lnum0=sth$0;else var lnum0=1; - var buf$0=buf || [0,caml_call1(Stdlib_Buffer[1],256)]; - function f(lnum,param) - {try - {var - line=caml_call1(Stdlib[83],ic), - _ey_=lnum + 1 | 0, - _ez_=function(_eC_){return f(_ey_,_eC_)}, - _eA_= - [0,[0,826371656,from_string$4(buf$0,fname,[0,lnum],line)],_ez_]; - return _eA_} - catch(e) - {e = caml_wrap_exception(e); - if(e === Stdlib[12]){caml_call1(fin,0);return 0} - var _ex_=lnum + 1 | 0; - return [0,[0,3458171,e],function(_eB_){return f(_ex_,_eB_)}]}} - return function(_ew_){return f(lnum0,_ew_)}} - function lineseq_from_file$1(buf,fname,lnum,file) - {var ic=caml_call1(Stdlib[79],file); - function fin(param){return caml_call1(Stdlib[93],ic)} - var fname$0=fname || [0,file]; - return lineseq_from_channel$1(buf,[0,fin],fname$0,lnum,ic)} - function prettify$1(std,s) - {return pretty_to_string$2(std,from_string$4(0,0,0,s))} - function compact$1(std,s) - {return to_string$4(0,0,0,0,from_string$4(0,0,0,s))} + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + add_lexeme$1(v[1], lexbuf); newline$1(v, lexbuf); continue a; + case 1: + caml_call2(Stdlib_Buffer[16], v[1], cst$79); + finish_buffer_comment$1(v, lexbuf); + continue a; + case 2: + caml_call2(Stdlib_Buffer[12], v[1], 10); + newline$1(v, lexbuf); + continue a; + case 3: + add_lexeme$1(v[1], lexbuf); continue a; + default: return 0; + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function buffer_colon$1(v, lexbuf){ + var ocaml_lex_state = 499; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return caml_call2(Stdlib_Buffer[12], v[1], 58); + case 1: + return long_error$1(cst_Expected_but_found$44, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$138, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_buffer_comment$1(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 507; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return caml_call2(Stdlib_Buffer[16], v[1], cst$80); + case 1: + return long_error$1(cst_Unterminated_comment$4, v, lexbuf); + case 2: + caml_call2(Stdlib_Buffer[12], v[1], 10); + newline$1(v, lexbuf); + continue a; + default: add_lexeme$1(v[1], lexbuf); continue a; + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function junk$1(lexbuf){ + var ocaml_lex_state = 513; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) return caml_call1(lexeme$1, lexbuf); + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + read_junk$1[1] = junk$1; + function read_int8$1(v, lexbuf){ + var n = read_int$1(v, lexbuf); + if(0 <= n && 255 >= n) return caml_call1(Stdlib[29], n); + return lexer_error$1(cst_Int8_overflow$1, v, lexbuf); + } + function read_list$1(read_cell, v, lexbuf){ + var _eO_ = read_list_rev$1(read_cell, v, lexbuf); + return caml_call1(Stdlib_List[9], _eO_); + } + function read_array$1(read_cell, v, lexbuf){ + var l = read_list_rev$1(read_cell, v, lexbuf); + if(! l) return [0]; var - Yojson= + tl = l[2], + x = l[1], + len = caml_call1(Stdlib_List[1], l), + a = caml_make_vect(len, x), + r = [0, tl], + _eL_ = len - 2 | 0; + if(_eL_ >= 0){ + var i = _eL_; + for(;;){ + var _eM_ = caml_call1(Stdlib_List[5], r[1]); + caml_check_bound(a, i)[1 + i] = _eM_; + r[1] = caml_call1(Stdlib_List[6], r[1]); + var _eN_ = i - 1 | 0; + if(0 !== i){var i = _eN_; continue;} + break; + } + } + return a; + } + function read_fields$1(read_field, init_acc, v){ + return function(_eK_){ + return read_abstract_fields$1 + (read_ident$1, read_field, init_acc, v, _eK_);}; + } + function from_lexbuf$1(v, opt, lexbuf){ + if(opt) var sth = opt[1], stream = sth; else var stream = 0; + read_space$1(v, lexbuf); + if(read_eof$1(lexbuf)) throw caml_maybe_attach_backtrace(End_of_input, 1); + var x = read_json$1(v, lexbuf); + if(1 - stream){ + read_space$1(v, lexbuf); + if(1 - read_eof$1(lexbuf)) + long_error$1(cst_Junk_after_end_of_JSON_val$1, v, lexbuf); + } + return x; + } + function from_string$4(buf, fname, lnum, s){ + try{ + var + lexbuf = caml_call2(from_string$3, 0, s), + v = init_lexer(buf, fname, lnum, 0), + _eI_ = from_lexbuf$1(v, 0, lexbuf); + return _eI_; + } + catch(_eJ_){ + var _eH_ = caml_wrap_exception(_eJ_); + if(_eH_ === End_of_input) return json_error(cst_Blank_input_data$3); + throw caml_maybe_attach_backtrace(_eH_, 0); + } + } + function from_channel$4(buf, fname, lnum, ic){ + try{ + var + lexbuf = caml_call2(from_channel$3, 0, ic), + v = init_lexer(buf, fname, lnum, 0), + _eF_ = from_lexbuf$1(v, 0, lexbuf); + return _eF_; + } + catch(_eG_){ + var _eE_ = caml_wrap_exception(_eG_); + if(_eE_ === End_of_input) return json_error(cst_Blank_input_data$4); + throw caml_maybe_attach_backtrace(_eE_, 0); + } + } + function from_file$1(buf, fname, lnum, file){ + var ic = caml_call1(Stdlib[79], file); + try{ + var x = from_channel$4(buf, fname, lnum, ic); + caml_call1(Stdlib[93], ic); + return x; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + caml_call1(Stdlib[94], ic); + throw caml_maybe_attach_backtrace(e, 0); + } + } + var Finally$1 = [248, cst_Yojson_Raw_Finally, caml_fresh_oo_id(0)]; + function seq_from_lexbuf$1(v, opt, lexbuf){ + if(opt) + var sth = opt[1], fin = sth; + else + var fin = function(param){return 0;}; + function f(param){ + try{var _eD_ = [0, from_lexbuf$1(v, stream$1, lexbuf), f]; return _eD_;} + catch(e$0){ + var e = caml_wrap_exception(e$0); + if(e === End_of_input){caml_call1(fin, 0); return 0;} + try{caml_call1(fin, 0);} + catch(fin_e$0){ + var fin_e = caml_wrap_exception(fin_e$0); + throw caml_maybe_attach_backtrace([0, Finally$1, e, fin_e], 1); + } + throw caml_maybe_attach_backtrace(e, 0); + } + } + return f; + } + function seq_from_string$1(buf, fname, lnum, s){ + var v = init_lexer(buf, fname, lnum, 0); + return seq_from_lexbuf$1(v, 0, caml_call2(from_string$3, 0, s)); + } + function seq_from_channel$1(buf, fin, fname, lnum, ic){ + var + lexbuf = caml_call2(from_channel$3, 0, ic), + v = init_lexer(buf, fname, lnum, 0); + return seq_from_lexbuf$1(v, fin, lexbuf); + } + function seq_from_file$1(buf, fname, lnum, file){ + var ic = caml_call1(Stdlib[79], file); + function fin(param){return caml_call1(Stdlib[93], ic);} + var + fname$0 = fname || [0, file], + lexbuf = caml_call2(from_channel$3, 0, ic), + v = init_lexer(buf, fname$0, lnum, 0); + return seq_from_lexbuf$1(v, [0, fin], lexbuf); + } + function lineseq_from_channel$1(buf, opt, fname, _ev_, ic){ + if(opt) + var sth = opt[1], fin = sth; + else + var fin = function(param){return 0;}; + if(_ev_) var sth$0 = _ev_[1], lnum0 = sth$0; else var lnum0 = 1; + var buf$0 = buf || [0, caml_call1(Stdlib_Buffer[1], 256)]; + function f(lnum, param){ + try{ + var + line = caml_call1(Stdlib[83], ic), + _ey_ = lnum + 1 | 0, + _ez_ = function(_eC_){return f(_ey_, _eC_);}, + _eA_ = + [0, + [0, 826371656, from_string$4(buf$0, fname, [0, lnum], line)], + _ez_]; + return _eA_; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + if(e === Stdlib[12]){caml_call1(fin, 0); return 0;} + var _ex_ = lnum + 1 | 0; + return [0, [0, 3458171, e], function(_eB_){return f(_ex_, _eB_);}]; + } + } + return function(_ew_){return f(lnum0, _ew_);}; + } + function lineseq_from_file$1(buf, fname, lnum, file){ + var ic = caml_call1(Stdlib[79], file); + function fin(param){return caml_call1(Stdlib[93], ic);} + var fname$0 = fname || [0, file]; + return lineseq_from_channel$1(buf, [0, fin], fname$0, lnum, ic); + } + function prettify$1(std, s){ + return pretty_to_string$2(std, from_string$4(0, 0, 0, s)); + } + function compact$1(std, s){ + return to_string$4(0, 0, 0, 0, from_string$4(0, 0, 0, s)); + } + var + Yojson = [0, version, Json_error, @@ -42621,7 +42087,7 @@ seq_to_channel$0, seq_to_file$0, seq_to_buffer$0, - write_t$0, + write_json$0, sort$0, write_null$0, write_bool$0, @@ -42633,7 +42099,7 @@ write_string$0, write_assoc$0, write_list$0, - write_t$0, + write_json$0, write_std_json$0, pp$2, show$0, @@ -42656,7 +42122,7 @@ lineseq_from_channel, lineseq_from_file, read_json, - finish_string$1, + finish_string, read_string, read_ident, map_string, @@ -42755,7 +42221,7 @@ seq_to_channel$1, seq_to_file$1, seq_to_buffer$1, - write_t$1, + write_json$1, sort$1, write_null$1, write_bool$1, @@ -42772,7 +42238,7 @@ write_std_tuple$0, write_variant$0, write_std_variant$0, - write_t$1, + write_json$1, write_std_json$1, pretty_print$1, pretty_to_string$1, @@ -42792,7 +42258,7 @@ lineseq_from_channel$0, lineseq_from_file$0, read_json$0, - finish_string$3, + finish_string$0, read_string$0, read_ident$0, map_string$0, @@ -42890,7 +42356,7 @@ seq_to_channel$2, seq_to_file$2, seq_to_buffer$2, - write_t$2, + write_json$2, sort$2, write_null$2, write_bool$2, @@ -42903,7 +42369,7 @@ write_std_tuple$1, write_variant$1, write_std_variant$1, - write_t$2, + write_json$2, write_std_json$2, pretty_print$2, pretty_to_string$2, @@ -42923,7 +42389,7 @@ lineseq_from_channel$1, lineseq_from_file$1, read_json$1, - finish_string$5, + finish_string$1, read_string$1, read_ident$1, map_string$1, @@ -42986,7 +42452,7 @@ seq_to_channel, seq_to_file, seq_to_buffer, - write_t, + write_json, sort, write_null, write_bool, @@ -43005,407 +42471,367 @@ write_std_tuple, write_variant, write_std_variant, - write_t, + write_json, write_std_json, pretty_print, pretty_to_string, pretty_to_channel]; - runtime.caml_register_global(1068,Yojson,"Yojson"); - return} + runtime.caml_register_global(1068, Yojson, "Yojson"); + return; + } (globalThis)); -//# 1 "../../.js/ppx_yojson_conv_lib/ppx_yojson_conv_lib.cma.js" -(function(globalThis) - {"use strict"; +//# 1 "../../.js/default/ppx_yojson_conv_lib/ppx_yojson_conv_lib.cma.js" +// Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 + +//# 32 "../../.js/default/ppx_yojson_conv_lib/ppx_yojson_conv_lib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_check_bound = runtime.caml_check_bound, + caml_int_of_string = runtime.caml_int_of_string, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib_MoreLabels = global_data.Stdlib__MoreLabels, + Stdlib_ListLabels = global_data.Stdlib__ListLabels, + Stdlib_Lazy = global_data.Stdlib__Lazy, + Stdlib_BytesLabels = global_data.Stdlib__BytesLabels, + Stdlib = global_data.Stdlib, + CamlinternalLazy = global_data.CamlinternalLazy, + Stdlib_Nativeint = global_data.Stdlib__Nativeint, + Stdlib_Int64 = global_data.Stdlib__Int64, + Stdlib_Int32 = global_data.Stdlib__Int32, + Stdlib_StringLabels = global_data.Stdlib__StringLabels, + cst_fun_of_yojson_cannot_conve = + "fun_of_yojson: cannot convert function values", + cst_opaque_of_yojson_cannot_co = + "opaque_of_yojson: cannot convert opaque values", + cst_hashtbl_of_yojson_tuple_li = "hashtbl_of_yojson: tuple list needed", + cst_hashtbl_of_yojson_list_nee = "hashtbl_of_yojson: list needed", + cst_array_of_yojson_list_neede = "array_of_yojson: list needed", + cst_list_of_yojson_list_needed = "list_of_yojson: list needed", + cst_triple_of_yojson_invalid_f = "triple_of_yojson: invalid format", + cst_pair_of_yojson_invalid_for = "pair_of_yojson: invalid format", + cst_nativeint_of_yojson_intege = "nativeint_of_yojson: integer needed", + cst_int64_of_yojson_integer_ne = "int64_of_yojson: integer needed", + cst_int32_of_yojson_integer_ne = "int32_of_yojson: integer needed", + cst_float_of_yojson_float_need = "float_of_yojson: float needed", + cst_int_of_yojson_integer_need = "int_of_yojson: integer needed", + cst_char_of_yojson_string_must = + "char_of_yojson: string must contain one character only", + cst_char_of_yojson_string_of_s = + "char_of_yojson: string of size one needed", + cst_bytes_of_yojson_string_nee = "bytes_of_yojson: string needed", + cst_string_of_yojson_string_ne = "string_of_yojson: string needed", + cst_bool_of_yojson_true_false_ = "bool_of_yojson: true/false needed", + cst_unit_of_yojson_Null_needed = "unit_of_yojson: `Null needed", + _b_ = [0, -976970511, ""], + _a_ = [0, -976970511, ""], + cst_Ppx_yojson_conv_lib_Yojson = + "Ppx_yojson_conv_lib__Yojson_conv.Of_yojson_error"; + function yojson_of_unit(param){return 870828711;} + function yojson_of_bool(b){return [0, 737456202, b];} + function yojson_of_string(str){return [0, -976970511, str];} + function yojson_of_bytes(bytes){ + return [0, -976970511, caml_call1(Stdlib_BytesLabels[6], bytes)]; + } + function yojson_of_char(c){ + return [0, -976970511, caml_call2(Stdlib_StringLabels[1], 1, c)]; + } + function yojson_of_int(n){return [0, 3654863, n];} + function yojson_of_float(n){return [0, 365180284, n];} + function yojson_of_int32(n){ + return [0, -752863768, caml_call1(Stdlib_Int32[14], n)]; + } + function yojson_of_int64(n){ + return [0, -752863768, caml_call1(Stdlib_Int64[14], n)]; + } + function yojson_of_nativeint(n){ + return [0, -752863768, caml_call1(Stdlib_Nativeint[15], n)]; + } + function yojson_of_ref(yojson_of_a, rf){return caml_call1(yojson_of_a, rf[1]); + } + function yojson_of_lazy_t(yojson_of_a, lv){ var - runtime=globalThis.jsoo_runtime, - caml_check_bound=runtime.caml_check_bound, - caml_fresh_oo_id=runtime.caml_fresh_oo_id, - caml_int_of_string=runtime.caml_int_of_string, - caml_register_global=runtime.caml_register_global, - caml_string_of_jsbytes=runtime.caml_string_of_jsbytes; - function caml_call1(f,a0) - {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} - function caml_call2(f,a0,a1) - {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} - function caml_call3(f,a0,a1,a2) - {return f.length == 3?f(a0,a1,a2):runtime.caml_call_gen(f,[a0,a1,a2])} - function caml_call4(f,a0,a1,a2,a3) - {return f.length == 4 - ?f(a0,a1,a2,a3) - :runtime.caml_call_gen(f,[a0,a1,a2,a3])} + _z_ = runtime.caml_obj_tag(lv), + _A_ = + 250 === _z_ + ? lv[1] + : 246 === _z_ ? caml_call1(CamlinternalLazy[2], lv) : lv; + return caml_call1(yojson_of_a, _A_); + } + function yojson_of_option(yojson_of_a, param){ + if(! param) return 870828711; + var x = param[1]; + return caml_call1(yojson_of_a, x); + } + function yojson_of_pair(yojson_of_a, yojson_of_b, param){ + var b = param[2], a = param[1], _y_ = [0, caml_call1(yojson_of_b, b), 0]; + return [0, 848054398, [0, caml_call1(yojson_of_a, a), _y_]]; + } + function yojson_of_triple(yojson_of_a, yojson_of_b, yojson_of_c, param){ var - global_data=runtime.caml_get_global_data(), - cst_fun_of_yojson_cannot_conve= - caml_string_of_jsbytes("fun_of_yojson: cannot convert function values"), - cst_opaque_of_yojson_cannot_co= - caml_string_of_jsbytes("opaque_of_yojson: cannot convert opaque values"), - cst_hashtbl_of_yojson_tuple_li= - caml_string_of_jsbytes("hashtbl_of_yojson: tuple list needed"), - cst_hashtbl_of_yojson_list_nee= - caml_string_of_jsbytes("hashtbl_of_yojson: list needed"), - cst_array_of_yojson_list_neede= - caml_string_of_jsbytes("array_of_yojson: list needed"), - cst_list_of_yojson_list_needed= - caml_string_of_jsbytes("list_of_yojson: list needed"), - cst_triple_of_yojson_invalid_f= - caml_string_of_jsbytes("triple_of_yojson: invalid format"), - cst_pair_of_yojson_invalid_for= - caml_string_of_jsbytes("pair_of_yojson: invalid format"), - cst_nativeint_of_yojson_intege= - caml_string_of_jsbytes("nativeint_of_yojson: integer needed"), - cst_int64_of_yojson_integer_ne= - caml_string_of_jsbytes("int64_of_yojson: integer needed"), - cst_int32_of_yojson_integer_ne= - caml_string_of_jsbytes("int32_of_yojson: integer needed"), - cst_float_of_yojson_float_need= - caml_string_of_jsbytes("float_of_yojson: float needed"), - cst_int_of_yojson_integer_need= - caml_string_of_jsbytes("int_of_yojson: integer needed"), - cst_char_of_yojson_string_must= - caml_string_of_jsbytes - ("char_of_yojson: string must contain one character only"), - cst_char_of_yojson_string_of_s= - caml_string_of_jsbytes("char_of_yojson: string of size one needed"), - cst_bytes_of_yojson_string_nee= - caml_string_of_jsbytes("bytes_of_yojson: string needed"), - cst_string_of_yojson_string_ne= - caml_string_of_jsbytes("string_of_yojson: string needed"), - cst_bool_of_yojson_true_false_= - caml_string_of_jsbytes("bool_of_yojson: true/false needed"), - cst_unit_of_yojson_Null_needed= - caml_string_of_jsbytes("unit_of_yojson: `Null needed"), - cst_Ppx_yojson_conv_lib_Yojson= - caml_string_of_jsbytes - ("Ppx_yojson_conv_lib__Yojson_conv.Of_yojson_error"), - cst$0=caml_string_of_jsbytes(" "), - cst_of_yojson_trying_to_conver= - caml_string_of_jsbytes("_of_yojson: trying to convert an empty type"), - cst_of_yojson_the_empty_list_i= - caml_string_of_jsbytes - ("_of_yojson: the empty list is an invalid polymorphic variant"), - cst_of_yojson_a_nested_list_is= - caml_string_of_jsbytes - ("_of_yojson: a nested list is an invalid polymorphic variant"), - cst_of_yojson_polymorphic_vari$0= - caml_string_of_jsbytes - ("_of_yojson: polymorphic variant tag takes an argument"), - cst_of_yojson_polymorphic_vari= - caml_string_of_jsbytes - ("_of_yojson: polymorphic variant does not take arguments"), - cst_of_yojson_no_matching_vari= - caml_string_of_jsbytes("_of_yojson: no matching variant found"), - cst_of_yojson_cannot_convert_v= - caml_string_of_jsbytes - ("_of_yojson: cannot convert values of types resulting from polymorphic record fields"), - cst_of_yojson_list_instead_of_= - caml_string_of_jsbytes - ("_of_yojson: list instead of atom for record expected"), - cst_extra_fields=caml_string_of_jsbytes("extra fields"), - cst_duplicate_fields=caml_string_of_jsbytes("duplicate fields"), - cst=caml_string_of_jsbytes(" "), - cst_of_yojson_unexpected_varia= - caml_string_of_jsbytes("_of_yojson: unexpected variant constructor"), - cst_of_yojson_expected_a_varia$0= - caml_string_of_jsbytes - ("_of_yojson: expected a variant type, saw an empty list"), - cst_of_yojson_expected_a_varia= - caml_string_of_jsbytes - ("_of_yojson: expected a variant type, saw a nested list"), - cst_of_yojson_this_constructor$0= - caml_string_of_jsbytes - ("_of_yojson: this constructor requires arguments"), - cst_of_yojson_this_constructor= - caml_string_of_jsbytes - ("_of_yojson: this constructor does not take arguments"), - cst_Ppx_yojson_conv_lib_Yojson$0= - caml_string_of_jsbytes - ("Ppx_yojson_conv_lib__Yojson_conv_error.No_variant_match"), - Stdlib_MoreLabels=global_data.Stdlib__MoreLabels, - Stdlib_ListLabels=global_data.Stdlib__ListLabels, - Stdlib_Lazy=global_data.Stdlib__Lazy, - Stdlib_BytesLabels=global_data.Stdlib__BytesLabels, - Stdlib=global_data.Stdlib, - CamlinternalLazy=global_data.CamlinternalLazy, - Stdlib_Nativeint=global_data.Stdlib__Nativeint, - Stdlib_Int64=global_data.Stdlib__Int64, - Stdlib_Int32=global_data.Stdlib__Int32, - Stdlib_StringLabels=global_data.Stdlib__StringLabels, - Stdlib_Printf=global_data.Stdlib__Printf, - Ppx_yojson_conv_lib=[0]; - caml_register_global(45,Ppx_yojson_conv_lib,"Ppx_yojson_conv_lib__"); - var Ppx_yojson_conv_lib_Yojsonable=[0]; - caml_register_global - (46, - Ppx_yojson_conv_lib_Yojsonable, - "Ppx_yojson_conv_lib__Yojsonable_intf"); - var - _b_=[0,-976970511,caml_string_of_jsbytes("")], - _a_=[0,-976970511,caml_string_of_jsbytes("")], - _g_= - [0, - [2, - 0, - [11, - caml_string_of_jsbytes("_of_yojson: polymorphic variant tag "), - [3, - 0, - [11,caml_string_of_jsbytes(" has incorrect number of arguments"),0]]]], - caml_string_of_jsbytes - ("%s_of_yojson: polymorphic variant tag %S has incorrect number of arguments")], - _f_= - [0, - [2, - 0, - [11, - caml_string_of_jsbytes - ("_of_yojson: the following record elements were undefined: "), - [2,0,0]]], - caml_string_of_jsbytes - ("%s_of_yojson: the following record elements were undefined: %s")], - _e_= - [0, - [2, - 0, - [11, - caml_string_of_jsbytes("_of_yojson: "), - [2,0,[11,caml_string_of_jsbytes(": "),[2,0,0]]]]], - caml_string_of_jsbytes("%s_of_yojson: %s: %s")], - _d_= - [0, - [2, - 0, - [11, - caml_string_of_jsbytes("_of_yojson: sum tag "), - [3, - 0, - [11,caml_string_of_jsbytes(" has incorrect number of arguments"),0]]]], - caml_string_of_jsbytes - ("%s_of_yojson: sum tag %S has incorrect number of arguments")], - _c_= - [0, - [2, - 0, - [11, - caml_string_of_jsbytes("_of_yojson: tuple of size "), - [4,0,0,0,[11,caml_string_of_jsbytes(" expected"),0]]]], - caml_string_of_jsbytes("%s_of_yojson: tuple of size %d expected")]; - function yojson_of_unit(param){return 870828711} - function yojson_of_bool(b){return [0,737456202,b]} - function yojson_of_string(str){return [0,-976970511,str]} - function yojson_of_bytes(bytes) - {return [0,-976970511,caml_call1(Stdlib_BytesLabels[6],bytes)]} - function yojson_of_char(c) - {return [0,-976970511,caml_call2(Stdlib_StringLabels[1],1,c)]} - function yojson_of_int(n){return [0,3654863,n]} - function yojson_of_float(n){return [0,365180284,n]} - function yojson_of_int32(n) - {return [0,-752863768,caml_call1(Stdlib_Int32[14],n)]} - function yojson_of_int64(n) - {return [0,-752863768,caml_call1(Stdlib_Int64[14],n)]} - function yojson_of_nativeint(n) - {return [0,-752863768,caml_call1(Stdlib_Nativeint[15],n)]} - function yojson_of_ref(yojson_of_a,rf) - {return caml_call1(yojson_of_a,rf[1])} - function yojson_of_lazy_t(yojson_of_a,lv) - {var - _I_=runtime.caml_obj_tag(lv), - _J_=250 === _I_?lv[1]:246 === _I_?caml_call1(CamlinternalLazy[2],lv):lv; - return caml_call1(yojson_of_a,_J_)} - function yojson_of_option(yojson_of_a,param) - {if(param){var x=param[1];return caml_call1(yojson_of_a,x)} - return 870828711} - function yojson_of_pair(yojson_of_a,yojson_of_b,param) - {var b=param[2],a=param[1],_H_=[0,caml_call1(yojson_of_b,b),0]; - return [0,848054398,[0,caml_call1(yojson_of_a,a),_H_]]} - function yojson_of_triple(yojson_of_a,yojson_of_b,yojson_of_c,param) - {var - c=param[3], - b=param[2], - a=param[1], - _F_=[0,caml_call1(yojson_of_c,c),0], - _G_=[0,caml_call1(yojson_of_b,b),_F_]; - return [0,848054398,[0,caml_call1(yojson_of_a,a),_G_]]} - function yojson_of_list(yojson_of_a,lst) - {var _E_=caml_call2(Stdlib_ListLabels[21],yojson_of_a,lst); - return [0,848054398,caml_call1(Stdlib_ListLabels[9],_E_)]} - function yojson_of_array(yojson_of_a,ar) - {var lst_ref=[0,0],_B_=ar.length - 1 - 1 | 0; - if(! (_B_ < 0)) - {var i=_B_; - for(;;) - {var _C_=lst_ref[1]; - lst_ref[1] - = - [0,caml_call1(yojson_of_a,caml_check_bound(ar,i)[1 + i]),_C_]; - var _D_=i - 1 | 0; - if(0 !== i){var i=_D_;continue} - break}} - return [0,848054398,lst_ref[1]]} - function yojson_of_hashtbl(yojson_of_key,yojson_of_val,htbl) - {function coll(k,v,acc) - {var _A_=[0,caml_call1(yojson_of_val,v),0]; - return [0,[0,848054398,[0,caml_call1(yojson_of_key,k),_A_]],acc]} - return [0,848054398,caml_call3(Stdlib_MoreLabels[1][14],coll,htbl,0)]} - function yojson_of_opaque(param){return _a_} - function yojson_of_fun(param){return _b_} - var - Of_yojson_error=[248,cst_Ppx_yojson_conv_lib_Yojson,caml_fresh_oo_id(0)], - record_check_extra_fields=[0,1]; - function of_yojson_error_exn(exc,yojson) - {throw [0,Of_yojson_error,exc,yojson]} - function of_yojson_error(what,yojson) - {throw [0,Of_yojson_error,[0,Stdlib[7],what],yojson]} - function unit_of_yojson(yojson) - {return 870828711 === yojson - ?0 - :of_yojson_error(cst_unit_of_yojson_Null_needed,yojson)} - function bool_of_yojson(yojson) - {if(typeof yojson !== "number" && 737456202 === yojson[1]) - {var v=yojson[2];return v} - return of_yojson_error(cst_bool_of_yojson_true_false_,yojson)} - function string_of_yojson(yojson) - {if(typeof yojson !== "number" && -976970511 === yojson[1]) - {var str=yojson[2];return str} - return of_yojson_error(cst_string_of_yojson_string_ne,yojson)} - function bytes_of_yojson(yojson) - {if(typeof yojson !== "number" && -976970511 === yojson[1]) - {var str=yojson[2];return caml_call1(Stdlib_BytesLabels[5],str)} - return of_yojson_error(cst_bytes_of_yojson_string_nee,yojson)} - function char_of_yojson(yojson) - {if(typeof yojson !== "number" && -976970511 === yojson[1]) - {var str=yojson[2]; - if(1 !== runtime.caml_ml_string_length(str)) - of_yojson_error(cst_char_of_yojson_string_must,yojson); - return runtime.caml_string_get(str,0)} - return of_yojson_error(cst_char_of_yojson_string_of_s,yojson)} - function int_of_yojson(yojson) - {if(typeof yojson !== "number" && 3654863 === yojson[1]) - {var v=yojson[2];return v} - return of_yojson_error(cst_int_of_yojson_integer_need,yojson)} - function float_of_yojson(yojson) - {if(typeof yojson !== "number") - {var _z_=yojson[1]; - if(-752863768 === _z_) - {var str=yojson[2];return runtime.caml_float_of_string(str)} - if(3654863 === _z_){var i=yojson[2];return i} - if(365180284 === _z_){var v=yojson[2];return v}} - return of_yojson_error(cst_float_of_yojson_float_need,yojson)} - function int32_of_yojson(yojson) - {if(typeof yojson !== "number") - {var _y_=yojson[1]; - if(-752863768 === _y_) - {var str=yojson[2];return caml_int_of_string(str)} - if(3654863 === _y_){var v=yojson[2];return v}} - return of_yojson_error(cst_int32_of_yojson_integer_ne,yojson)} - function int64_of_yojson(yojson) - {if(typeof yojson !== "number") - {var _x_=yojson[1]; - if(-752863768 === _x_) - {var str=yojson[2];return runtime.caml_int64_of_string(str)} - if(3654863 === _x_) - {var v=yojson[2];return runtime.caml_int64_of_int32(v)}} - return of_yojson_error(cst_int64_of_yojson_integer_ne,yojson)} - function nativeint_of_yojson(yojson) - {if(typeof yojson !== "number") - {var _w_=yojson[1]; - if(-752863768 === _w_) - {var str=yojson[2];return caml_int_of_string(str)} - if(3654863 === _w_){var v=yojson[2];return v}} - return of_yojson_error(cst_nativeint_of_yojson_intege,yojson)} - function ref_of_yojson(a_of_yojson,yojson) - {return [0,caml_call1(a_of_yojson,yojson)]} - function lazy_t_of_yojson(a_of_yojson,yojson) - {var _v_=caml_call1(a_of_yojson,yojson); - return caml_call1(Stdlib_Lazy[4],_v_)} - function option_of_yojson(a_of_yojson,yojson) - {return 870828711 === yojson?0:[0,caml_call1(a_of_yojson,yojson)]} - function pair_of_yojson(a_of_yojson,b_of_yojson,yojson) - {if(typeof yojson !== "number" && 848054398 === yojson[1]) - {var _t_=yojson[2]; - if(_t_) - {var _u_=_t_[2]; - if(_u_ && ! _u_[2]) - {var - b_yojson=_u_[1], - a_yojson=_t_[1], - a=caml_call1(a_of_yojson,a_yojson), - b=caml_call1(b_of_yojson,b_yojson); - return [0,a,b]}}} - return of_yojson_error(cst_pair_of_yojson_invalid_for,yojson)} - function triple_of_yojson(a_of_yojson,b_of_yojson,c_of_yojson,yojson) - {if(typeof yojson !== "number" && 848054398 === yojson[1]) - {var _q_=yojson[2]; - if(_q_) - {var _r_=_q_[2]; - if(_r_) - {var _s_=_r_[2]; - if(_s_ && ! _s_[2]) - {var - c_yojson=_s_[1], - b_yojson=_r_[1], - a_yojson=_q_[1], - a=caml_call1(a_of_yojson,a_yojson), - b=caml_call1(b_of_yojson,b_yojson), - c=caml_call1(c_of_yojson,c_yojson); - return [0,a,b,c]}}}} - return of_yojson_error(cst_triple_of_yojson_invalid_f,yojson)} - function list_of_yojson(a_of_yojson,yojson) - {if(typeof yojson !== "number" && 848054398 === yojson[1]) - {var - lst=yojson[2], - rev_lst=caml_call2(Stdlib_ListLabels[21],a_of_yojson,lst); - return caml_call1(Stdlib_ListLabels[9],rev_lst)} - return of_yojson_error(cst_list_of_yojson_list_needed,yojson)} - function array_of_yojson(a_of_yojson,yojson) - {if(typeof yojson !== "number" && 848054398 === yojson[1]) - {var _o_=yojson[2]; - if(_o_) - {var - t=_o_[2], - h=_o_[1], - len=caml_call1(Stdlib_ListLabels[1],t) + 1 | 0, - res=runtime.caml_make_vect(len,caml_call1(a_of_yojson,h)), - i=1, - param=t; - for(;;) - {if(param) - {var t$0=param[2],h$0=param[1],_p_=caml_call1(a_of_yojson,h$0); - caml_check_bound(res,i)[1 + i] = _p_; - var i$0=i + 1 | 0,i=i$0,param=t$0; - continue} - return res}} - return [0]} - return of_yojson_error(cst_array_of_yojson_list_neede,yojson)} - function hashtbl_of_yojson(key_of_yojson,val_of_yojson,yojson) - {if(typeof yojson !== "number" && 848054398 === yojson[1]) - {var - lst=yojson[2], - htbl=caml_call2(Stdlib_MoreLabels[1][1],0,0), - act= - function(param) - {if(typeof param !== "number" && 848054398 === param[1]) - {var _k_=param[2]; - if(_k_) - {var _l_=_k_[2]; - if(_l_ && ! _l_[2]) - {var - v_yojson=_l_[1], - k_yojson=_k_[1], - _m_=caml_call1(val_of_yojson,v_yojson), - _n_=caml_call1(key_of_yojson,k_yojson); - return caml_call3(Stdlib_MoreLabels[1][5],htbl,_n_,_m_)}}} - return of_yojson_error(cst_hashtbl_of_yojson_tuple_li,yojson)}; - caml_call2(Stdlib_ListLabels[17],act,lst); - return htbl} - return of_yojson_error(cst_hashtbl_of_yojson_list_nee,yojson)} - function opaque_of_yojson(yojson) - {return of_yojson_error(cst_opaque_of_yojson_cannot_co,yojson)} - function fun_of_yojson(yojson) - {return of_yojson_error(cst_fun_of_yojson_cannot_conve,yojson)} - var - Ppx_yojson_conv_lib_Yojson_con= + c = param[3], + b = param[2], + a = param[1], + _w_ = [0, caml_call1(yojson_of_c, c), 0], + _x_ = [0, caml_call1(yojson_of_b, b), _w_]; + return [0, 848054398, [0, caml_call1(yojson_of_a, a), _x_]]; + } + function yojson_of_list(yojson_of_a, lst){ + var _v_ = caml_call2(Stdlib_ListLabels[21], yojson_of_a, lst); + return [0, 848054398, caml_call1(Stdlib_ListLabels[9], _v_)]; + } + function yojson_of_array(yojson_of_a, ar){ + var lst_ref = [0, 0], _s_ = ar.length - 1 - 1 | 0; + if(_s_ >= 0){ + var i = _s_; + for(;;){ + var _t_ = lst_ref[1]; + lst_ref[1] = + [0, caml_call1(yojson_of_a, caml_check_bound(ar, i)[1 + i]), _t_]; + var _u_ = i - 1 | 0; + if(0 !== i){var i = _u_; continue;} + break; + } + } + return [0, 848054398, lst_ref[1]]; + } + function yojson_of_hashtbl(yojson_of_key, yojson_of_val, htbl){ + function coll(k, v, acc){ + var _r_ = [0, caml_call1(yojson_of_val, v), 0]; + return [0, [0, 848054398, [0, caml_call1(yojson_of_key, k), _r_]], acc]; + } + return [0, 848054398, caml_call3(Stdlib_MoreLabels[1][14], coll, htbl, 0)]; + } + function yojson_of_opaque(param){return _a_;} + function yojson_of_fun(param){return _b_;} + var + Of_yojson_error = + [248, cst_Ppx_yojson_conv_lib_Yojson, runtime.caml_fresh_oo_id(0)], + record_check_extra_fields = [0, 1]; + function of_yojson_error_exn(exc, yojson){ + throw caml_maybe_attach_backtrace([0, Of_yojson_error, exc, yojson], 1); + } + function of_yojson_error(what, yojson){ + throw caml_maybe_attach_backtrace + ([0, Of_yojson_error, [0, Stdlib[7], what], yojson], 1); + } + function unit_of_yojson(yojson){ + return 870828711 === yojson + ? 0 + : of_yojson_error(cst_unit_of_yojson_Null_needed, yojson); + } + function bool_of_yojson(yojson){ + if(typeof yojson !== "number" && 737456202 === yojson[1]){var v = yojson[2]; return v;} + return of_yojson_error(cst_bool_of_yojson_true_false_, yojson); + } + function string_of_yojson(yojson){ + if(typeof yojson !== "number" && -976970511 === yojson[1]){var str = yojson[2]; return str;} + return of_yojson_error(cst_string_of_yojson_string_ne, yojson); + } + function bytes_of_yojson(yojson){ + if(typeof yojson !== "number" && -976970511 === yojson[1]){ + var str = yojson[2]; + return caml_call1(Stdlib_BytesLabels[5], str); + } + return of_yojson_error(cst_bytes_of_yojson_string_nee, yojson); + } + function char_of_yojson(yojson){ + if(typeof yojson !== "number" && -976970511 === yojson[1]){ + var str = yojson[2]; + if(1 !== runtime.caml_ml_string_length(str)) + of_yojson_error(cst_char_of_yojson_string_must, yojson); + return runtime.caml_string_get(str, 0); + } + return of_yojson_error(cst_char_of_yojson_string_of_s, yojson); + } + function int_of_yojson(yojson){ + if(typeof yojson !== "number" && 3654863 === yojson[1]){var v = yojson[2]; return v;} + return of_yojson_error(cst_int_of_yojson_integer_need, yojson); + } + function float_of_yojson(yojson){ + if(typeof yojson !== "number"){ + var _q_ = yojson[1]; + if(-752863768 === _q_){ + var str = yojson[2]; + return runtime.caml_float_of_string(str); + } + if(3654863 === _q_){var i = yojson[2]; return i;} + if(365180284 === _q_){var v = yojson[2]; return v;} + } + return of_yojson_error(cst_float_of_yojson_float_need, yojson); + } + function int32_of_yojson(yojson){ + if(typeof yojson !== "number"){ + var _p_ = yojson[1]; + if(-752863768 === _p_){ + var str = yojson[2]; + return caml_int_of_string(str); + } + if(3654863 === _p_){var v = yojson[2]; return v;} + } + return of_yojson_error(cst_int32_of_yojson_integer_ne, yojson); + } + function int64_of_yojson(yojson){ + if(typeof yojson !== "number"){ + var _o_ = yojson[1]; + if(-752863768 === _o_){ + var str = yojson[2]; + return runtime.caml_int64_of_string(str); + } + if(3654863 === _o_){ + var v = yojson[2]; + return runtime.caml_int64_of_int32(v); + } + } + return of_yojson_error(cst_int64_of_yojson_integer_ne, yojson); + } + function nativeint_of_yojson(yojson){ + if(typeof yojson !== "number"){ + var _n_ = yojson[1]; + if(-752863768 === _n_){ + var str = yojson[2]; + return caml_int_of_string(str); + } + if(3654863 === _n_){var v = yojson[2]; return v;} + } + return of_yojson_error(cst_nativeint_of_yojson_intege, yojson); + } + function ref_of_yojson(a_of_yojson, yojson){ + return [0, caml_call1(a_of_yojson, yojson)]; + } + function lazy_t_of_yojson(a_of_yojson, yojson){ + var _m_ = caml_call1(a_of_yojson, yojson); + return caml_call1(Stdlib_Lazy[4], _m_); + } + function option_of_yojson(a_of_yojson, yojson){ + return 870828711 === yojson ? 0 : [0, caml_call1(a_of_yojson, yojson)]; + } + function pair_of_yojson(a_of_yojson, b_of_yojson, yojson){ + if(typeof yojson !== "number" && 848054398 === yojson[1]){ + var _k_ = yojson[2]; + if(_k_){ + var _l_ = _k_[2]; + if(_l_ && ! _l_[2]){ + var + b_yojson = _l_[1], + a_yojson = _k_[1], + a = caml_call1(a_of_yojson, a_yojson), + b = caml_call1(b_of_yojson, b_yojson); + return [0, a, b]; + } + } + } + return of_yojson_error(cst_pair_of_yojson_invalid_for, yojson); + } + function triple_of_yojson(a_of_yojson, b_of_yojson, c_of_yojson, yojson){ + if(typeof yojson !== "number" && 848054398 === yojson[1]){ + var _h_ = yojson[2]; + if(_h_){ + var _i_ = _h_[2]; + if(_i_){ + var _j_ = _i_[2]; + if(_j_ && ! _j_[2]){ + var + c_yojson = _j_[1], + b_yojson = _i_[1], + a_yojson = _h_[1], + a = caml_call1(a_of_yojson, a_yojson), + b = caml_call1(b_of_yojson, b_yojson), + c = caml_call1(c_of_yojson, c_yojson); + return [0, a, b, c]; + } + } + } + } + return of_yojson_error(cst_triple_of_yojson_invalid_f, yojson); + } + function list_of_yojson(a_of_yojson, yojson){ + if(typeof yojson !== "number" && 848054398 === yojson[1]){ + var + lst = yojson[2], + rev_lst = caml_call2(Stdlib_ListLabels[21], a_of_yojson, lst); + return caml_call1(Stdlib_ListLabels[9], rev_lst); + } + return of_yojson_error(cst_list_of_yojson_list_needed, yojson); + } + function array_of_yojson(a_of_yojson, yojson){ + if(typeof yojson !== "number" && 848054398 === yojson[1]){ + var match = yojson[2]; + if(! match) return [0]; + var + t = match[2], + h = match[1], + len = caml_call1(Stdlib_ListLabels[1], t) + 1 | 0, + res = runtime.caml_make_vect(len, caml_call1(a_of_yojson, h)), + i = 1, + param = t; + for(;;){ + if(! param) return res; + var t$0 = param[2], h$0 = param[1], _g_ = caml_call1(a_of_yojson, h$0); + caml_check_bound(res, i)[1 + i] = _g_; + var i$0 = i + 1 | 0, i = i$0, param = t$0; + } + } + return of_yojson_error(cst_array_of_yojson_list_neede, yojson); + } + function hashtbl_of_yojson(key_of_yojson, val_of_yojson, yojson){ + if(typeof yojson !== "number" && 848054398 === yojson[1]){ + var + lst = yojson[2], + htbl = caml_call2(Stdlib_MoreLabels[1][1], 0, 0), + act = + function(param){ + if(typeof param !== "number" && 848054398 === param[1]){ + var _c_ = param[2]; + if(_c_){ + var _d_ = _c_[2]; + if(_d_ && ! _d_[2]){ + var + v_yojson = _d_[1], + k_yojson = _c_[1], + _e_ = caml_call1(val_of_yojson, v_yojson), + _f_ = caml_call1(key_of_yojson, k_yojson); + return caml_call3(Stdlib_MoreLabels[1][5], htbl, _f_, _e_); + } + } + } + return of_yojson_error(cst_hashtbl_of_yojson_tuple_li, yojson); + }; + caml_call2(Stdlib_ListLabels[17], act, lst); + return htbl; + } + return of_yojson_error(cst_hashtbl_of_yojson_list_nee, yojson); + } + function opaque_of_yojson(yojson){ + return of_yojson_error(cst_opaque_of_yojson_cannot_co, yojson); + } + function fun_of_yojson(yojson){ + return of_yojson_error(cst_fun_of_yojson_cannot_conve, yojson); + } + var + Ppx_yojson_conv_lib_Yojson_con = [0, yojson_of_unit, yojson_of_bool, @@ -43484,584 +42910,369 @@ list_of_yojson, array_of_yojson, hashtbl_of_yojson]]; - caml_register_global - (57,Ppx_yojson_conv_lib_Yojson_con,"Ppx_yojson_conv_lib__Yojson_conv"); - var sprintf=Stdlib_Printf[4]; - function tuple_of_size_n_expected(loc,n,yojson) - {return of_yojson_error(caml_call3(sprintf,_c_,loc,n),yojson)} - function stag_no_args(loc,yojson) - {return of_yojson_error - (caml_call2(Stdlib[28],loc,cst_of_yojson_this_constructor), - yojson)} - function stag_incorrect_n_args(loc,tag,yojson) - {var msg=caml_call3(sprintf,_d_,loc,tag); - return of_yojson_error(msg,yojson)} - function stag_takes_args(loc,yojson) - {return of_yojson_error - (caml_call2(Stdlib[28],loc,cst_of_yojson_this_constructor$0), - yojson)} - function nested_list_invalid_sum(loc,yojson) - {return of_yojson_error - (caml_call2(Stdlib[28],loc,cst_of_yojson_expected_a_varia), - yojson)} - function empty_list_invalid_sum(loc,yojson) - {return of_yojson_error - (caml_call2(Stdlib[28],loc,cst_of_yojson_expected_a_varia$0), - yojson)} - function unexpected_stag(loc,yojson) - {return of_yojson_error - (caml_call2(Stdlib[28],loc,cst_of_yojson_unexpected_varia), - yojson)} - function record_superfluous_fields(what,loc,rev_fld_names,yojson) - {var - _j_=caml_call1(Stdlib_ListLabels[9],rev_fld_names), - fld_names_str=caml_call2(Stdlib_StringLabels[6],cst,_j_), - msg=caml_call4(sprintf,_e_,loc,what,fld_names_str); - return of_yojson_error(msg,yojson)} - function record_duplicate_fields(loc,rev_fld_names,yojson) - {return record_superfluous_fields - (cst_duplicate_fields,loc,rev_fld_names,yojson)} - function record_extra_fields(loc,rev_fld_names,yojson) - {return record_superfluous_fields - (cst_extra_fields,loc,rev_fld_names,yojson)} - function record_get_undefined_loop(fields,param) - {var fields$0=fields,param$0=param; - for(;;) - {if(param$0) - {var _h_=param$0[1]; - if(_h_[1]) - {var - param$1=param$0[2], - field=_h_[2], - fields$1=[0,field,fields$0], - fields$0=fields$1, - param$0=param$1; - continue} - var param$2=param$0[2],param$0=param$2; - continue} - var _i_=caml_call1(Stdlib_ListLabels[9],fields$0); - return caml_call2(Stdlib_StringLabels[6],cst$0,_i_)}} - function record_undefined_elements(loc,yojson,lst) - {var - undefined$0=record_get_undefined_loop(0,lst), - msg=caml_call3(sprintf,_f_,loc,undefined$0); - return of_yojson_error(msg,yojson)} - function record_list_instead_atom(loc,yojson) - {var msg=caml_call2(Stdlib[28],loc,cst_of_yojson_list_instead_of_); - return of_yojson_error(msg,yojson)} - function record_poly_field_value(loc,yojson) - {var msg=caml_call2(Stdlib[28],loc,cst_of_yojson_cannot_convert_v); - return of_yojson_error(msg,yojson)} - var - No_variant_match= - [248,cst_Ppx_yojson_conv_lib_Yojson$0,caml_fresh_oo_id(0)]; - function no_variant_match(param){throw No_variant_match} - function no_matching_variant_found(loc,yojson) - {return of_yojson_error - (caml_call2(Stdlib[28],loc,cst_of_yojson_no_matching_vari), - yojson)} - function ptag_no_args(loc,yojson) - {return of_yojson_error - (caml_call2(Stdlib[28],loc,cst_of_yojson_polymorphic_vari), - yojson)} - function ptag_incorrect_n_args(loc,cnstr,yojson) - {var msg=caml_call3(sprintf,_g_,loc,cnstr); - return of_yojson_error(msg,yojson)} - function ptag_takes_args(loc,yojson) - {return of_yojson_error - (caml_call2(Stdlib[28],loc,cst_of_yojson_polymorphic_vari$0), - yojson)} - function nested_list_invalid_poly_var(loc,yojson) - {return of_yojson_error - (caml_call2(Stdlib[28],loc,cst_of_yojson_a_nested_list_is), - yojson)} - function empty_list_invalid_poly_var(loc,yojson) - {return of_yojson_error - (caml_call2(Stdlib[28],loc,cst_of_yojson_the_empty_list_i), - yojson)} - function empty_type(loc,yojson) - {return of_yojson_error - (caml_call2(Stdlib[28],loc,cst_of_yojson_trying_to_conver), - yojson)} - var - Ppx_yojson_conv_lib_Yojson_con$0= - [0, - sprintf, - tuple_of_size_n_expected, - stag_no_args, - stag_incorrect_n_args, - stag_takes_args, - nested_list_invalid_sum, - empty_list_invalid_sum, - unexpected_stag, - record_superfluous_fields, - record_duplicate_fields, - record_extra_fields, - record_get_undefined_loop, - record_undefined_elements, - record_list_instead_atom, - record_poly_field_value, - No_variant_match, - no_variant_match, - no_matching_variant_found, - ptag_no_args, - ptag_incorrect_n_args, - ptag_takes_args, - nested_list_invalid_poly_var, - empty_list_invalid_poly_var, - empty_type]; - caml_register_global - (59, - Ppx_yojson_conv_lib_Yojson_con$0, - "Ppx_yojson_conv_lib__Yojson_conv_error"); - var Option=[0]; - function symbol(x){return x[1]} - var Ppx_yojson_conv_lib$0=[0,Option,symbol]; - caml_register_global(60,Ppx_yojson_conv_lib$0,"Ppx_yojson_conv_lib"); - return} + runtime.caml_register_global + (32, Ppx_yojson_conv_lib_Yojson_con, "Ppx_yojson_conv_lib__Yojson_conv"); + return; + } (globalThis)); -//# 1 "../../runtimes/ocaml/.runtime_ocaml.objs/runtime_ocaml.cma.js" -(function(globalThis) - {"use strict"; - var - runtime=globalThis.jsoo_runtime, - caml_check_bound=runtime.caml_check_bound, - caml_equal=runtime.caml_equal, - caml_fresh_oo_id=runtime.caml_fresh_oo_id, - caml_register_global=runtime.caml_register_global, - caml_string_of_jsbytes=runtime.caml_string_of_jsbytes, - caml_wrap_exception=runtime.caml_wrap_exception; - function caml_call1(f,a0) - {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} - function caml_call2(f,a0,a1) - {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} - function caml_call3(f,a0,a1,a2) - {return f.length == 3?f(a0,a1,a2):runtime.caml_call_gen(f,[a0,a1,a2])} - function caml_call4(f,a0,a1,a2,a3) - {return f.length == 4 - ?f(a0,a1,a2,a3) - :runtime.caml_call_gen(f,[a0,a1,a2,a3])} - function caml_call5(f,a0,a1,a2,a3,a4) - {return f.length == 5 - ?f(a0,a1,a2,a3,a4) - :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4])} - function caml_call6(f,a0,a1,a2,a3,a4,a5) - {return f.length == 6 - ?f(a0,a1,a2,a3,a4,a5) - :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4,a5])} - function caml_call7(f,a0,a1,a2,a3,a4,a5,a6) - {return f.length == 7 - ?f(a0,a1,a2,a3,a4,a5,a6) - :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4,a5,a6])} - function caml_call9(f,a0,a1,a2,a3,a4,a5,a6,a7,a8) - {return f.length == 9 - ?f(a0,a1,a2,a3,a4,a5,a6,a7,a8) - :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4,a5,a6,a7,a8])} - var - global_data=runtime.caml_get_global_data(), - cst$3=caml_string_of_jsbytes("."), - cst$4=caml_string_of_jsbytes("."), - partial= +//# 1 "../../runtimes/ocaml/.runtime_ocaml.objs/jsoo/default/runtime_ocaml.cma.js" +// Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 + +//# 16 "../../runtimes/ocaml/.runtime_ocaml.objs/jsoo/default/runtime_ocaml.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst$24 = "", + cst$23 = " :=", + cst$26 = " ])", + cst_a = "%a", + cst_s = "%s", + cst$22 = "()", + cst$25 = ", ", + cst$18 = ".", + cst$20 = ": ", + cst_hov_1 = "", + cst_hov_2 = "", + cst_hv_1 = "", + cst_hv_2 = "", + cst$19 = "@ ", + cst$21 = "@,", + cst_1_2 = "@;<1 -2>", + cst_BeginCall = "BeginCall([ ", + cst_EndCall = "EndCall([ ", + cst_Invalid_function_call$1 = "Invalid function call ([ ", + cst_body$2 = "body", + cst_body$1 = "body:", + cst_fun = "fun", + cst_name$1 = "name", + cst_no_pos = "no_pos", + cst_output$0 = "output", + caml_check_bound = runtime.caml_check_bound, + caml_equal = runtime.caml_equal, + caml_fresh_oo_id = runtime.caml_fresh_oo_id, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + function caml_call4(f, a0, a1, a2, a3){ + return (f.l >= 0 ? f.l : f.l = f.length) == 4 + ? f(a0, a1, a2, a3) + : runtime.caml_call_gen(f, [a0, a1, a2, a3]); + } + function caml_call5(f, a0, a1, a2, a3, a4){ + return (f.l >= 0 ? f.l : f.l = f.length) == 5 + ? f(a0, a1, a2, a3, a4) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); + } + function caml_call6(f, a0, a1, a2, a3, a4, a5){ + return (f.l >= 0 ? f.l : f.l = f.length) == 6 + ? f(a0, a1, a2, a3, a4, a5) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5]); + } + function caml_call7(f, a0, a1, a2, a3, a4, a5, a6){ + return (f.l >= 0 ? f.l : f.l = f.length) == 7 + ? f(a0, a1, a2, a3, a4, a5, a6) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5, a6]); + } + function caml_call9(f, a0, a1, a2, a3, a4, a5, a6, a7, a8){ + return (f.l >= 0 ? f.l : f.l = f.length) == 9 + ? f(a0, a1, a2, a3, a4, a5, a6, a7, a8) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5, a6, a7, a8]); + } + var + global_data = runtime.caml_get_global_data(), + cst$3 = cst$18, + cst$4 = cst$18, + partial = [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], + [1, [0, [11, cst_hv_2, 0], cst_hv_2]], [12, 91, [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [15, - [17, - [0,caml_string_of_jsbytes("@;<1 -2>"),1,-2], - [12,93,[17,0,[12,32,[17,0,0]]]]]]]]]], - cst$5=caml_string_of_jsbytes("."), - cst$6=caml_string_of_jsbytes("; "), - cst$7=caml_string_of_jsbytes("."), - partial$0=[11,caml_string_of_jsbytes(""),0], - partial$1= + [17, [0, cst_1_2, 1, -2], [12, 93, [17, 0, [12, 32, [17, 0, 0]]]]]]]]]], + cst$5 = cst$18, + cst$6 = "; ", + cst$7 = cst$18, + partial$0 = [11, cst_hv_1, 0], + partial$1 = [12, 91, [17, - [0,caml_string_of_jsbytes("@,"),0,0], + [0, cst$21, 0, 0], [15, [12, 93, [17, 0, [17, - [0,caml_string_of_jsbytes("@,"),0,0], - [17,0,[17,[0,caml_string_of_jsbytes("@,"),0,0],[12,125,0]]]]]]]]], - partial$2=[0,caml_string_of_jsbytes("@ "),1,0], - partial$3= + [0, cst$21, 0, 0], + [17, 0, [17, [0, cst$21, 0, 0], [12, 125, 0]]]]]]]]], + partial$2 = [0, cst$19, 1, 0], + partial$3 = [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [15, [12, 44, [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [11, - caml_string_of_jsbytes("output:"), + "output:", [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [15, [12, 44, [17, - [0,caml_string_of_jsbytes("@ "),1,0], - [11,caml_string_of_jsbytes("body:"),[17,partial$2,partial$1]]]]]]]]]]], - cst$8=caml_string_of_jsbytes("."), - partial$4=[11,caml_string_of_jsbytes(""),0], - partial$5= + [0, cst$19, 1, 0], + [11, cst_body$1, [17, partial$2, partial$1]]]]]]]]]]], + cst$8 = cst$18, + partial$4 = [11, cst_hv_1, 0], + partial$5 = [12, 91, [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [15, [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [12, 93, - [17, - 0, - [17,0,[17,0,[17,[0,caml_string_of_jsbytes("@,"),0,0],[12,125,0]]]]]]]]]], - partial$6= - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - partial$7= + [17, 0, [17, 0, [17, 0, [17, [0, cst$21, 0, 0], [12, 125, 0]]]]]]]]]], + partial$6 = [1, [0, [11, cst_hv_2, 0], cst_hv_2]], + partial$7 = [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], + [1, [0, [11, cst_hv_2, 0], cst_hv_2]], [12, 91, [17, - [0,caml_string_of_jsbytes("@,"),0,0], + [0, cst$21, 0, 0], [15, [17, 0, [11, - caml_string_of_jsbytes("],"), + "],", [17, - [0,caml_string_of_jsbytes("@,"),0,0], + [0, cst$21, 0, 0], [11, - caml_string_of_jsbytes("body:"), - [17, - [0,caml_string_of_jsbytes("@ "),1,0], - [18,partial$6,partial$5]]]]]]]]]]], - cst_unreachable_due_to_the_is_= - caml_string_of_jsbytes("unreachable due to the [is_subscope_call] test"), - cst_unreachable_due_to_the_is_$0= - caml_string_of_jsbytes - ("unreachable due to the [is_subscope_input_var_def] test"), - cst$14=caml_string_of_jsbytes("]"), - cst$15=caml_string_of_jsbytes("["), - cst_expected_variable_definiti= - caml_string_of_jsbytes - (" ]): expected variable definition (function output), found: "), - cst$16=caml_string_of_jsbytes(", "), - cst_Invalid_function_call= - caml_string_of_jsbytes("Invalid function call ([ "), - cst_expected_variable_definiti$0= - caml_string_of_jsbytes - (" ]): expected variable definition (function output), found: end of tokens"), - cst$17=caml_string_of_jsbytes(", "), - cst_Invalid_function_call$0= - caml_string_of_jsbytes("Invalid function call ([ "), - cst_Unexpected_event=caml_string_of_jsbytes("Unexpected event: "), - cst_Missing_function_output_va= - caml_string_of_jsbytes("Missing function output variable definition."), - cst_Invalid_start_of_function_= - caml_string_of_jsbytes("Invalid start of function call."), - cst_input=caml_string_of_jsbytes("input"), - cst_output$0=caml_string_of_jsbytes("output"), - cst$9=caml_string_of_jsbytes(" ])"), - cst$10=caml_string_of_jsbytes(", "), - cst$11=caml_string_of_jsbytes(" ])"), - cst$12=caml_string_of_jsbytes(", "), - cst$13=caml_string_of_jsbytes(", "), - partial$8=[12,41,0], - cst_body=caml_string_of_jsbytes("body"), - cst_inputs=caml_string_of_jsbytes("inputs"), - cst_name=caml_string_of_jsbytes("name"), - cst_fun_calls=caml_string_of_jsbytes("fun_calls"), - cst_value=caml_string_of_jsbytes("value"), - cst_name$0=caml_string_of_jsbytes("name"), - cst_pos=caml_string_of_jsbytes("pos"), - cst_output=caml_string_of_jsbytes("output"), - cst_body$0=caml_string_of_jsbytes("body"), - cst_fun_inputs=caml_string_of_jsbytes("fun_inputs"), - cst_fun_name=caml_string_of_jsbytes("fun_name"), - cst=caml_string_of_jsbytes("\xe2\x80\xa6"), - cst$2=caml_string_of_jsbytes(""), - cst$1=caml_string_of_jsbytes("-"), - cst$0=caml_string_of_jsbytes(""), - cst_law_headings=caml_string_of_jsbytes("law_headings"), - cst_end_column=caml_string_of_jsbytes("end_column"), - cst_end_line=caml_string_of_jsbytes("end_line"), - cst_start_column=caml_string_of_jsbytes("start_column"), - cst_start_line=caml_string_of_jsbytes("start_line"), - cst_filename=caml_string_of_jsbytes("filename"), - cst_Runtime_ocaml_Runtime_Empt= - caml_string_of_jsbytes("Runtime_ocaml.Runtime.EmptyError"), - cst_Runtime_ocaml_Runtime_Asse= - caml_string_of_jsbytes("Runtime_ocaml.Runtime.AssertionFailed"), - cst_Runtime_ocaml_Runtime_Conf= - caml_string_of_jsbytes("Runtime_ocaml.Runtime.ConflictError"), - cst_Runtime_ocaml_Runtime_Unco= - caml_string_of_jsbytes("Runtime_ocaml.Runtime.UncomparableDurations"), - cst_Runtime_ocaml_Runtime_Indi= - caml_string_of_jsbytes("Runtime_ocaml.Runtime.IndivisibleDurations"), - cst_Runtime_ocaml_Runtime_Impo= - caml_string_of_jsbytes("Runtime_ocaml.Runtime.ImpossibleDate"), - cst_Runtime_ocaml_Runtime_NoVa= - caml_string_of_jsbytes("Runtime_ocaml.Runtime.NoValueProvided"), - Stdlib_String=global_data.Stdlib__String, - Stdlib_Format=global_data.Stdlib__Format, - Stdlib_Array=global_data.Stdlib__Array, - Stdlib_Option=global_data.Stdlib__Option, - Stdlib=global_data.Stdlib, - Dates_calc_Dates=global_data.Dates_calc__Dates, - Q=global_data.Q, - Z=global_data.Z, - Stdlib_List=global_data.Stdlib__List, - Assert_failure=global_data.Assert_failure, - Stdlib_ListLabels=global_data.Stdlib__ListLabels, - Stdlib_Printf=global_data.Stdlib__Printf, - Yojson=global_data.Yojson, - Ppx_yojson_conv_lib_Yojson_con= + cst_body$1, + [17, [0, cst$19, 1, 0], [18, partial$6, partial$5]]]]]]]]]]], + cst$14 = "]", + cst$15 = "[", + cst$16 = cst$25, + cst$17 = cst$25, + cst$9 = cst$26, + cst$10 = cst$25, + cst$11 = cst$26, + cst$12 = cst$25, + cst$13 = cst$25, + partial$8 = [12, 41, 0], + cst = "\xe2\x80\xa6", + cst$2 = cst$24, + cst$1 = "-", + cst$0 = cst$24, + Stdlib_String = global_data.Stdlib__String, + Stdlib_Format = global_data.Stdlib__Format, + Stdlib_Array = global_data.Stdlib__Array, + Stdlib_Option = global_data.Stdlib__Option, + Stdlib = global_data.Stdlib, + Dates_calc_Dates = global_data.Dates_calc__Dates, + Q = global_data.Q, + Z = global_data.Z, + Stdlib_List = global_data.Stdlib__List, + Assert_failure = global_data.Assert_failure, + Stdlib_ListLabels = global_data.Stdlib__ListLabels, + Stdlib_Printf = global_data.Stdlib__Printf, + Yojson = global_data.Yojson, + Ppx_yojson_conv_lib_Yojson_con = global_data.Ppx_yojson_conv_lib__Yojson_conv, - Stdlib_Map=global_data.Stdlib__Map, - Runtime_ocaml=[0]; - caml_register_global(115,Runtime_ocaml,"Runtime_ocaml"); - var - _u_= + Stdlib_Map = global_data.Stdlib__Map, + _u_ = [0, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], + [1, [0, [11, cst_hov_2, 0], cst_hov_2]], [11, - caml_string_of_jsbytes("@ %s:@ %a@]")], - _v_= + [0, cst$19, 1, 0], + [2, 0, [12, 58, [17, [0, cst$19, 1, 0], [15, [17, 0, 0]]]]]]]]]], + "@[@ %s:@ %a@]"], + _v_ = [0, - [2, - 0, - [11, - caml_string_of_jsbytes(" line "), - [4,0,0,0,[11,caml_string_of_jsbytes(" to "),[4,0,0,0,0]]]]], - caml_string_of_jsbytes("%s line %d to %d")], - _w_= - [0, - [11,caml_string_of_jsbytes("no_pos"),0], - caml_string_of_jsbytes("no_pos")], - _x_= - [0, - [17,[0,caml_string_of_jsbytes("@ "),1,0],0], - caml_string_of_jsbytes("@ ")], - _y_= - [0, - [12,44,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(",@ ")], - _z_= + [2, 0, [11, " line ", [4, 0, 0, 0, [11, " to ", [4, 0, 0, 0, 0]]]]], + "%s line %d to %d"], + _w_ = [0, [11, cst_no_pos, 0], cst_no_pos], + _x_ = [0, [17, [0, cst$19, 1, 0], 0], cst$19], + _y_ = [0, [12, 44, [17, [0, cst$19, 1, 0], 0]], ",@ "], + _z_ = [0, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], + [1, [0, [11, cst_hov_2, 0], cst_hov_2]], [11, - caml_string_of_jsbytes(""), + "", [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [2, 0, [11, - caml_string_of_jsbytes(": "), + cst$20, [15, [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [11, - caml_string_of_jsbytes("computed from"), - [17,[0,caml_string_of_jsbytes("@ "),1,0],[12,58,partial]]]]]]]]]], - caml_string_of_jsbytes - ("@[@ %s: %a@ computed from@ :@ @[[@ %a@;<1 -2>]@] @]")], - _M_= - [0, - [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(";@ ")], - _K_= - [0, - [12,44,[17,[0,caml_string_of_jsbytes("@,"),0,0],0]], - caml_string_of_jsbytes(",@,")], - _J_= - [0, - [2,0,[11,caml_string_of_jsbytes(": "),[15,0]]], - caml_string_of_jsbytes("%s: %a")], - _A_=[0,[11,caml_string_of_jsbytes("()"),0],caml_string_of_jsbytes("()")], - _B_= - [0,[11,caml_string_of_jsbytes("fun"),0],caml_string_of_jsbytes("fun")], - _C_=[0,[9,0,0],caml_string_of_jsbytes("%b")], - _D_= - [0, - [2,0,[11,caml_string_of_jsbytes("\xe2\x82\xac"),0]], - caml_string_of_jsbytes("%s\xe2\x82\xac")], - _E_=[0,[4,0,0,0,0],caml_string_of_jsbytes("%d")], - _F_=[0,[2,0,0],caml_string_of_jsbytes("%s")], - _G_=[0,[2,0,0],caml_string_of_jsbytes("%s")], - _H_=[0,[2,0,0],caml_string_of_jsbytes("%s")], - _I_=[0,[2,0,0],caml_string_of_jsbytes("%s")], - _L_= + "computed from", + [17, [0, cst$19, 1, 0], [12, 58, partial]]]]]]]]]], + "@[@ %s: %a@ computed from@ :@ @[[@ %a@;<1 -2>]@] @]"], + _M_ = [0, [12, 59, [17, [0, cst$19, 1, 0], 0]], ";@ "], + _K_ = [0, [12, 44, [17, [0, cst$21, 0, 0], 0]], ",@,"], + _J_ = [0, [2, 0, [11, cst$20, [15, 0]]], "%s: %a"], + _A_ = [0, [11, cst$22, 0], cst$22], + _B_ = [0, [11, cst_fun, 0], cst_fun], + _C_ = [0, [9, 0, 0], "%b"], + _D_ = [0, [2, 0, [11, "\xe2\x82\xac", 0]], "%s\xe2\x82\xac"], + _E_ = [0, [4, 0, 0, 0, 0], "%d"], + _F_ = [0, [2, 0, 0], cst_s], + _G_ = [0, [2, 0, 0], cst_s], + _H_ = [0, [2, 0, 0], cst_s], + _I_ = [0, [2, 0, 0], cst_s], + _L_ = [0, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], + [1, [0, [11, cst_hv_2, 0], cst_hv_2]], [2, 0, [11, - caml_string_of_jsbytes(" = {"), + " = {", [17, - [0,caml_string_of_jsbytes("@ "),1,0], - [15, - [17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,125,[17,0,0]]]]]]]], - caml_string_of_jsbytes("@[%s = {@ %a@;<1 -2>}@]")], - _N_= + [0, cst$19, 1, 0], + [15, [17, [0, cst_1_2, 1, -2], [12, 125, [17, 0, 0]]]]]]]], + "@[%s = {@ %a@;<1 -2>}@]"], + _N_ = [0, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], + [1, [0, [11, cst_hv_2, 0], cst_hv_2]], [12, 91, [17, - [0,caml_string_of_jsbytes("@ "),1,0], - [15, - [17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,[17,0,0]]]]]]], - caml_string_of_jsbytes("@[[@ %a@;<1 -2>]@]")], - _O_=[0,[15,0],caml_string_of_jsbytes("%a")], - _P_=[0,[15,0],caml_string_of_jsbytes("%a")], - _Q_=[0,0], - _R_= + [0, cst$19, 1, 0], + [15, [17, [0, cst_1_2, 1, -2], [12, 93, [17, 0, 0]]]]]]], + "@[[@ %a@;<1 -2>]@]"], + _O_ = [0, [15, 0], cst_a], + _P_ = [0, [15, 0], cst_a], + _Q_ = [0, 0], + _R_ = [0, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], + [1, [0, [11, cst_hov_1, 0], cst_hov_1]], [11, - caml_string_of_jsbytes(""), + "", [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [2, 0, [11, - caml_string_of_jsbytes(" :="), + cst$23, [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [12, 123, [18, - [1,[0,partial$0,caml_string_of_jsbytes("")]], - [17, - [0,caml_string_of_jsbytes("@ "),1,0], - [11,caml_string_of_jsbytes("input:"),partial$3]]]]]]]]]], - caml_string_of_jsbytes - ("@[@ %s :=@ {@[@ input:@ %a,@ output:@ %a,@ body:@ [@,%a]@]@,@]@,}")], - _S_=[0,0], - _T_= + [1, [0, partial$0, cst_hv_1]], + [17, [0, cst$19, 1, 0], [11, "input:", partial$3]]]]]]]]]], + "@[@ %s :=@ {@[@ input:@ %a,@ output:@ %a,@ body:@ [@,%a]@]@,@]@,}"], + _S_ = [0, 0], + _T_ = [0, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], + [1, [0, [11, cst_hv_2, 0], cst_hv_2]], [11, - caml_string_of_jsbytes(""), + "", [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [2, 0, [11, - caml_string_of_jsbytes(" :="), + cst$23, [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [12, 123, [18, - [1,[0,partial$4,caml_string_of_jsbytes("")]], - [17, - [0,caml_string_of_jsbytes("@,"),0,0], - [11,caml_string_of_jsbytes("inputs:"),partial$7]]]]]]]]]], - caml_string_of_jsbytes - ("@[@ %s :=@ {@[@,inputs:@ @[[@,%a@]],@,body:@ @[[@ %a@ ]@]@]@]@,}")], - _U_= + [1, [0, partial$4, cst_hv_1]], + [17, [0, cst$21, 0, 0], [11, "inputs:", partial$7]]]]]]]]]], + "@[@ %s :=@ {@[@,inputs:@ @[[@,%a@]],@,body:@ @[[@ %a@ ]@]@]@]@,}"], + _U_ = [0, [17, [0, cst$19, 1, 0], 0], cst$19], + _V_ = [0, [17, 4, 0], "@."], + _X_ = [0, 0, cst$24], + _W_ = [0, - [17,[0,caml_string_of_jsbytes("@ "),1,0],0], - caml_string_of_jsbytes("@ ")], - _V_=[0,[17,4,0],caml_string_of_jsbytes("@.")], - _X_=[0,0,caml_string_of_jsbytes("")], - _W_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15,[17,0,0]]], - caml_string_of_jsbytes("@[%a@]")], - _ae_=[0,0], - _af_=[0,0], - _ag_=[0,0], - _ab_=[0,0,0], - _ac_=[0,caml_string_of_jsbytes("runtimes/ocaml/runtime.ml"),513,19], - _ad_= + [18, [1, [0, [11, cst_hv_1, 0], cst_hv_1]], [15, [17, 0, 0]]], + "@[%a@]"], + _ae_ = [0, 0], + _af_ = [0, 0], + _ag_ = [0, 0], + _ab_ = [0, 0, 0], + cst_unreachable_due_to_the_is_ = + "unreachable due to the [is_subscope_call] test", + cst_unreachable_due_to_the_is_$0 = + "unreachable due to the [is_subscope_input_var_def] test", + cst_expected_variable_definiti = + " ]): expected variable definition (function output), found: ", + cst_Invalid_function_call = cst_Invalid_function_call$1, + cst_expected_variable_definiti$0 = + " ]): expected variable definition (function output), found: end of tokens", + cst_Invalid_function_call$0 = cst_Invalid_function_call$1, + cst_Unexpected_event = "Unexpected event: ", + _ac_ = [0, "runtimes/ocaml/runtime.ml", 513, 19], + cst_Missing_function_output_va = + "Missing function output variable definition.", + cst_Invalid_start_of_function_ = "Invalid start of function call.", + cst_input = "input", + _ad_ = [0, [11, - caml_string_of_jsbytes("An error occurred while parsing raw events: "), - [2,0,[12,10,0]]], - caml_string_of_jsbytes - ("An error occurred while parsing raw events: %s\n")], - _Z_= - [0, - [11,caml_string_of_jsbytes("BeginCall([ "),0], - caml_string_of_jsbytes("BeginCall([ ")], - ___= - [0, - [11,caml_string_of_jsbytes("EndCall([ "),0], - caml_string_of_jsbytes("EndCall([ ")], - _$_= + "An error occurred while parsing raw events: ", + [2, 0, [12, 10, 0]]], + "An error occurred while parsing raw events: %s\n"], + _Z_ = [0, [11, cst_BeginCall, 0], cst_BeginCall], + ___ = [0, [11, cst_EndCall, 0], cst_EndCall], + _$_ = [0, [11, - caml_string_of_jsbytes("VariableDefinition([ "), - [2,0,[11,caml_string_of_jsbytes(" ], "),[2,0,[12,41,0]]]]], - caml_string_of_jsbytes("VariableDefinition([ %s ], %s)")], - _aa_= + "VariableDefinition([ ", + [2, 0, [11, " ], ", [2, 0, [12, 41, 0]]]]], + "VariableDefinition([ %s ], %s)"], + _aa_ = [0, [11, - caml_string_of_jsbytes("DecisionTaken("), + "DecisionTaken(", [2, 0, [12, @@ -44070,969 +43281,1179 @@ 0, 0, 0, - [12,46,[4,0,0,0,[12,45,[4,0,0,0,[12,46,[4,0,0,0,partial$8]]]]]]]]]], - caml_string_of_jsbytes("DecisionTaken(%s:%d.%d-%d.%d)")], - _r_=[0,-976970511,caml_string_of_jsbytes("VarComputation")], - _s_=[0,-976970511,caml_string_of_jsbytes("FunCall")], - _t_=[0,-976970511,caml_string_of_jsbytes("SubScopeCall")], - _g_=[0,848054398,[0,[0,-976970511,caml_string_of_jsbytes("Unit")],0]], - _h_= - [0, - 848054398, - [0,[0,-976970511,caml_string_of_jsbytes("Unembeddable")],0]], - _i_=[0,-976970511,caml_string_of_jsbytes("Bool")], - _j_=[0,-976970511,caml_string_of_jsbytes("Money")], - _k_=[0,-976970511,caml_string_of_jsbytes("Integer")], - _l_=[0,-976970511,caml_string_of_jsbytes("Decimal")], - _m_=[0,-976970511,caml_string_of_jsbytes("Date")], - _n_=[0,-976970511,caml_string_of_jsbytes("Duration")], - _o_=[0,-976970511,caml_string_of_jsbytes("Enum")], - _p_=[0,-976970511,caml_string_of_jsbytes("Struct")], - _q_=[0,-976970511,caml_string_of_jsbytes("Array")], - _f_=[0,[15,0],caml_string_of_jsbytes("%a")], - _e_=[0,[15,0],caml_string_of_jsbytes("%a")], - _c_=[0,[15,0],caml_string_of_jsbytes("%a")], - _b_=[0,-1014801911,0], - _d_= - [0,[2,0,[15,[12,46,[15,[2,0,0]]]]],caml_string_of_jsbytes("%s%a.%a%s")], - _a_=[0,[8,[0,0,0],0,[0,2],0],caml_string_of_jsbytes("%.2f")]; - function yojson_of_source_position(param) - {var - v_law_headings=param[6], - v_end_column=param[5], - v_end_line=param[4], - v_start_column=param[3], - v_start_line=param[2], - v_filename=param[1], - arg= - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][14], - Ppx_yojson_conv_lib_Yojson_con[45][3], - v_law_headings), - bnds=[0,[0,cst_law_headings,arg],0], - arg$0=caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][6],v_end_column), - bnds$0=[0,[0,cst_end_column,arg$0],bnds], - arg$1=caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][6],v_end_line), - bnds$1=[0,[0,cst_end_line,arg$1],bnds$0], - arg$2=caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][6],v_start_column), - bnds$2=[0,[0,cst_start_column,arg$2],bnds$1], - arg$3=caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][6],v_start_line), - bnds$3=[0,[0,cst_start_line,arg$3],bnds$2], - arg$4=caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][3],v_filename), - bnds$4=[0,[0,cst_filename,arg$4],bnds$3]; - return [0,963043957,bnds$4]} + [12, + 46, + [4, + 0, + 0, + 0, + [12, 45, [4, 0, 0, 0, [12, 46, [4, 0, 0, 0, partial$8]]]]]]]]]], + "DecisionTaken(%s:%d.%d-%d.%d)"], + _r_ = [0, -976970511, "VarComputation"], + _s_ = [0, -976970511, "FunCall"], + cst_body = cst_body$2, + cst_inputs = "inputs", + cst_name = cst_name$1, + _t_ = [0, -976970511, "SubScopeCall"], + cst_fun_calls = "fun_calls", + cst_value = "value", + cst_name$0 = cst_name$1, + cst_pos = "pos", + cst_output = cst_output$0, + cst_body$0 = cst_body$2, + cst_fun_inputs = "fun_inputs", + cst_fun_name = "fun_name", + _g_ = [0, 848054398, [0, [0, -976970511, "Unit"], 0]], + _h_ = [0, 848054398, [0, [0, -976970511, "Unembeddable"], 0]], + _i_ = [0, -976970511, "Bool"], + _j_ = [0, -976970511, "Money"], + _k_ = [0, -976970511, "Integer"], + _l_ = [0, -976970511, "Decimal"], + _m_ = [0, -976970511, "Date"], + _n_ = [0, -976970511, "Duration"], + _o_ = [0, -976970511, "Enum"], + _p_ = [0, -976970511, "Struct"], + _q_ = [0, -976970511, "Array"], + _f_ = [0, [15, 0], cst_a], + _e_ = [0, [15, 0], cst_a], + _c_ = [0, [15, 0], cst_a], + _b_ = [0, -1014801911, 0], + _d_ = [0, [2, 0, [15, [12, 46, [15, [2, 0, 0]]]]], "%s%a.%a%s"], + _a_ = [0, [8, [0, 0, 0], 0, [0, 2], 0], "%.2f"], + cst_law_headings = "law_headings", + cst_end_column = "end_column", + cst_end_line = "end_line", + cst_start_column = "start_column", + cst_start_line = "start_line", + cst_filename = "filename", + cst_Runtime_ocaml_Runtime_Empt = "Runtime_ocaml.Runtime.EmptyError", + cst_Runtime_ocaml_Runtime_Asse = "Runtime_ocaml.Runtime.AssertionFailed", + cst_Runtime_ocaml_Runtime_Conf = "Runtime_ocaml.Runtime.ConflictError", + cst_Runtime_ocaml_Runtime_Unco = + "Runtime_ocaml.Runtime.UncomparableDurations", + cst_Runtime_ocaml_Runtime_Indi = + "Runtime_ocaml.Runtime.IndivisibleDurations", + cst_Runtime_ocaml_Runtime_Impo = "Runtime_ocaml.Runtime.ImpossibleDate", + cst_Runtime_ocaml_Runtime_NoVa = "Runtime_ocaml.Runtime.NoValueProvided"; + function yojson_of_source_position(param){ var - EmptyError=[248,cst_Runtime_ocaml_Runtime_Empt,caml_fresh_oo_id(0)], - AssertionFailed=[248,cst_Runtime_ocaml_Runtime_Asse,caml_fresh_oo_id(0)], - ConflictError=[248,cst_Runtime_ocaml_Runtime_Conf,caml_fresh_oo_id(0)], - UncomparableDurations= - [248,cst_Runtime_ocaml_Runtime_Unco,caml_fresh_oo_id(0)], - IndivisibleDurations= - [248,cst_Runtime_ocaml_Runtime_Indi,caml_fresh_oo_id(0)], - ImpossibleDate=[248,cst_Runtime_ocaml_Runtime_Impo,caml_fresh_oo_id(0)], - NoValueProvided=[248,cst_Runtime_ocaml_Runtime_NoVa,caml_fresh_oo_id(0)]; - function money_of_cents_string(cents){return caml_call1(Z[5],cents)} - function money_of_units_int(units){return caml_call2(Z[54],units,100)} - function money_of_cents_integer(cents){return cents} - function money_to_float(m){return caml_call1(Z[30],m) / 100.} - function money_of_decimal(d) - {var _cM_=caml_call1(Q[9],100),_cN_=caml_call2(Q[40],d,_cM_); - return caml_call1(Q[29],_cN_)} - function money_to_string(m) - {var - _cI_=caml_call1(Q[9],100), - _cJ_=caml_call1(Q[8],m), - _cK_=caml_call2(Q[55],_cJ_,_cI_), - _cL_=caml_call1(Q[35],_cK_); - return caml_call2(Stdlib_Format[133],_a_,_cL_)} - function money_to_cents(m){return m} - function money_round(m) - {var match=runtime.ml_z_div_rem(m,100),cents=match[2],units=match[1]; - if(runtime.caml_lessthan(caml_call1(Z[10],cents),50)) - return caml_call2(Z[54],units,100); - var _cG_=runtime.ml_z_sign(units),_cH_=caml_call2(Z[52],units,_cG_); - return caml_call2(Z[54],_cH_,100)} - function decimal_of_string(d){return caml_call1(Q[15],d)} - function decimal_to_float(d){return caml_call1(Q[35],d)} - function decimal_of_float(d){return caml_call1(Q[14],d)} - function decimal_of_integer(d){return caml_call1(Q[8],d)} - function decimal_to_string(max_prec_digits,i) - {var - sign=caml_call1(Q[20],i), - _ct_=caml_call1(Q[16],i), - n=caml_call1(Z[10],_ct_), - _cu_=caml_call1(Q[17],i), - d=caml_call1(Z[10],_cu_), - int_part=caml_call2(Z[18],n,d), - n$0=[0,caml_call2(Z[19],n,d)], - digits=[0,0]; - function leading_zeroes(digits) - {function _cF_(digit,num_leading_zeroes) - {if(3455931 <= num_leading_zeroes[1])return num_leading_zeroes; - var i=num_leading_zeroes[2]; - return caml_equal(digit,Z[2]) - ?[0,-1014801911,i + 1 | 0] - :[0,3455931,i]} - var match=caml_call3(Stdlib_List[26],_cF_,digits,_b_); - if(3455931 <= match[1]){var i=match[2];return i} - var i$0=match[2]; - return i$0} - for(;;) - {if(runtime.caml_notequal(n$0[1],Z[2])) - {var _cv_=leading_zeroes(digits[1]); - if - ((caml_call1(Stdlib_List[1],digits[1]) - _cv_ | 0) - < - max_prec_digits) - {n$0[1] = caml_call2(Z[14],n$0[1],10); - var _cw_=digits[1]; - digits[1] = [0,caml_call2(Z[18],n$0[1],d),_cw_]; - n$0[1] = caml_call2(Z[19],n$0[1],d); - continue}} - var - _cx_=leading_zeroes(digits[1]), - _cy_= - (caml_call1(Stdlib_List[1],digits[1]) - _cx_ | 0) - === - max_prec_digits - ?cst - :cst$2, - _cz_=caml_call1(Stdlib_List[9],digits[1]), - _cA_= - function(fmt,digit) - {return caml_call4(Stdlib_Format[129],fmt,_c_,Z[36],digit)}, - _cB_=[0,function(fmt,param){return 0}], - _cC_=caml_call2(Stdlib_Format[123],_cB_,_cA_), - _cD_=Z[36], - _cE_=0 <= sign?cst$0:cst$1; - return caml_call7 - (Stdlib_Format[133],_d_,_cE_,_cD_,int_part,_cC_,_cz_,_cy_)}} - function decimal_round(q) - {var - n=caml_call1(Q[16],q), - d=caml_call1(Q[17],q), - _cq_=caml_call2(Z[54],2,d), - _cr_=caml_call2(Z[54],2,n), - _cs_=runtime.ml_z_fdiv(caml_call2(Z[52],_cr_,d),_cq_); - return caml_call1(Q[8],_cs_)} - function decimal_of_money(m) - {var _co_=caml_call1(Q[9],100),_cp_=caml_call1(Q[8],m); - return caml_call2(Q[42],_cp_,_co_)} - function integer_of_string(s){return caml_call1(Z[5],s)} - function integer_to_string(i){return caml_call1(Z[31],i)} - function integer_to_int(i){return caml_call1(Z[29],i)} - function integer_of_int(i){return i} - function integer_exponentiation(i,e){return runtime.ml_z_pow(i,e)} - var integer_log2=Z[47]; - function year_of_date(d) - {var match=caml_call1(Dates_calc_Dates[7],d),y=match[1];return y} - function month_number_of_date(d) - {var match=caml_call1(Dates_calc_Dates[7],d),m=match[2];return m} - function is_leap_year(y) - {var y$0=caml_call1(Z[29],y);return caml_call1(Dates_calc_Dates[11],y$0)} - function day_of_month_of_date(d) - {var match=caml_call1(Dates_calc_Dates[7],d),d$0=match[3];return d$0} - function date_of_numbers(year,month,day) - {try - {var _cm_=caml_call3(Dates_calc_Dates[3],year,month,day);return _cm_} - catch(_cn_){throw ImpossibleDate}} - function date_to_string(d) - {return caml_call3(Stdlib_Format[133],_e_,Dates_calc_Dates[8],d)} + v_law_headings = param[6], + v_end_column = param[5], + v_end_line = param[4], + v_start_column = param[3], + v_start_line = param[2], + v_filename = param[1], + arg = + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][14], + Ppx_yojson_conv_lib_Yojson_con[45][3], + v_law_headings), + bnds = [0, [0, cst_law_headings, arg], 0], + arg$0 = caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][6], v_end_column), + bnds$0 = [0, [0, cst_end_column, arg$0], bnds], + arg$1 = caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][6], v_end_line), + bnds$1 = [0, [0, cst_end_line, arg$1], bnds$0], + arg$2 = caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][6], v_start_column), + bnds$2 = [0, [0, cst_start_column, arg$2], bnds$1], + arg$3 = caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][6], v_start_line), + bnds$3 = [0, [0, cst_start_line, arg$3], bnds$2], + arg$4 = caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][3], v_filename), + bnds$4 = [0, [0, cst_filename, arg$4], bnds$3]; + return [0, 963043957, bnds$4]; + } + var + EmptyError = [248, cst_Runtime_ocaml_Runtime_Empt, caml_fresh_oo_id(0)], + AssertionFailed = + [248, cst_Runtime_ocaml_Runtime_Asse, caml_fresh_oo_id(0)], + ConflictError = [248, cst_Runtime_ocaml_Runtime_Conf, caml_fresh_oo_id(0)], + UncomparableDurations = + [248, cst_Runtime_ocaml_Runtime_Unco, caml_fresh_oo_id(0)], + IndivisibleDurations = + [248, cst_Runtime_ocaml_Runtime_Indi, caml_fresh_oo_id(0)], + ImpossibleDate = + [248, cst_Runtime_ocaml_Runtime_Impo, caml_fresh_oo_id(0)], + NoValueProvided = + [248, cst_Runtime_ocaml_Runtime_NoVa, caml_fresh_oo_id(0)]; + function money_of_cents_string(cents){return caml_call1(Z[5], cents);} + function money_of_units_int(units){return caml_call2(Z[54], units, 100);} + function money_of_cents_integer(cents){return cents;} + function money_to_float(m){return caml_call1(Z[30], m) / 100.;} + function money_of_decimal(d){ + var _cG_ = caml_call1(Q[9], 100), _cH_ = caml_call2(Q[40], d, _cG_); + return caml_call1(Q[29], _cH_); + } + function money_to_string(m){ var - first_day_of_month=Dates_calc_Dates[9], - last_day_of_month=Dates_calc_Dates[10]; - function duration_of_numbers(year,month,day) - {return caml_call3(Dates_calc_Dates[12],year,month,day)} - function duration_to_string(d) - {return caml_call3(Stdlib_Format[133],_f_,Dates_calc_Dates[17],d)} - function duration_to_years_months_days(d) - {return caml_call1(Dates_calc_Dates[19],d)} - function yojson_of_runtime_value(param) - {if(typeof param === "number") - return 0 === param?_g_:_h_; - else - switch(param[0]) - {case 0: - var - v0$4=param[1], - v0$5=caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][2],v0$4); - return [0,848054398,[0,_i_,[0,v0$5,0]]]; - case 1: - var v0$6=param[1],v0=[0,365180284,money_to_float(v0$6)]; - return [0,848054398,[0,_j_,[0,v0,0]]]; - case 2: - var v0$7=param[1],v0$0=[0,3654863,integer_to_int(v0$7)]; - return [0,848054398,[0,_k_,[0,v0$0,0]]]; - case 3: - var v0$8=param[1],v0$1=[0,365180284,decimal_to_float(v0$8)]; - return [0,848054398,[0,_l_,[0,v0$1,0]]]; - case 4: - var v0$9=param[1],v0$2=[0,-976970511,date_to_string(v0$9)]; - return [0,848054398,[0,_m_,[0,v0$2,0]]]; - case 5: - var v0$10=param[1],v0$3=[0,-976970511,duration_to_string(v0$10)]; - return [0,848054398,[0,_n_,[0,v0$3,0]]]; - case 6: - var - v1=param[2], - v0$11=param[1], - v0$12= - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][14], - Ppx_yojson_conv_lib_Yojson_con[45][3], - v0$11), - v1$0=v1[2], - v0$13=v1[1], - v0$14=caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][3],v0$13), - v1$1=yojson_of_runtime_value(v1$0), - v1$2=[0,848054398,[0,v0$14,[0,v1$1,0]]]; - return [0,848054398,[0,_o_,[0,v0$12,[0,v1$2,0]]]]; - case 7: - var - v1$3=param[2], - v0$15=param[1], - v0$16= - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][14], - Ppx_yojson_conv_lib_Yojson_con[45][3], - v0$15), - _cl_= - function(param) - {var - v1=param[2], - v0=param[1], - v0$0=caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][3],v0), - v1$0=yojson_of_runtime_value(v1); - return [0,848054398,[0,v0$0,[0,v1$0,0]]]}, - v1$4=caml_call2(Ppx_yojson_conv_lib_Yojson_con[45][14],_cl_,v1$3); - return [0,848054398,[0,_p_,[0,v0$16,[0,v1$4,0]]]]; - default: - var - v0$17=param[1], - v0$18= - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][15], - yojson_of_runtime_value, - v0$17); - return [0,848054398,[0,_q_,[0,v0$18,0]]]}} - function unembeddable(param){return 1} - function embed_unit(param){return 0} - function embed_bool(x){return [0,x]} - function embed_money(x){return [1,x]} - function embed_integer(x){return [2,x]} - function embed_decimal(x){return [3,x]} - function embed_date(x){return [4,x]} - function embed_duration(x){return [5,x]} - function embed_array(f,x){return [8,caml_call2(Stdlib_Array[15],f,x)]} - function yojson_of_information(v) - {return caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][14], - Ppx_yojson_conv_lib_Yojson_con[45][3], - v)} - function yojson_of_event(param) - {switch(param[0]) - {case 0: - var v0=param[1],v0$0=yojson_of_var_def(v0); - return [0,848054398,[0,_r_,[0,v0$0,0]]]; - case 1: - var v0$1=param[1],v0$2=yojson_of_fun_call(v0$1); - return [0,848054398,[0,_s_,[0,v0$2,0]]]; - default: - var - v_body=param[3], - v_inputs=param[2], - v_name=param[1], - arg= - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][14],yojson_of_event,v_body), - bnds=[0,[0,cst_body,arg],0], - arg$0= - caml_call2 + _cC_ = caml_call1(Q[9], 100), + _cD_ = caml_call1(Q[8], m), + _cE_ = caml_call2(Q[55], _cD_, _cC_), + _cF_ = caml_call1(Q[35], _cE_); + return caml_call2(Stdlib_Format[133], _a_, _cF_); + } + function money_to_cents(m){return m;} + function money_round(m){ + var + match = runtime.ml_z_div_rem(m, 100), + cents = match[2], + units = match[1]; + if(runtime.caml_lessthan(caml_call1(Z[10], cents), 50)) + return caml_call2(Z[54], units, 100); + var + _cA_ = runtime.ml_z_sign(units), + _cB_ = caml_call2(Z[52], units, _cA_); + return caml_call2(Z[54], _cB_, 100); + } + function decimal_of_string(d){return caml_call1(Q[15], d);} + function decimal_to_float(d){return caml_call1(Q[35], d);} + function decimal_of_float(d){return caml_call1(Q[14], d);} + function decimal_of_integer(d){return caml_call1(Q[8], d);} + function decimal_to_string(max_prec_digits, i){ + var + sign = caml_call1(Q[20], i), + _cn_ = caml_call1(Q[16], i), + n = caml_call1(Z[10], _cn_), + _co_ = caml_call1(Q[17], i), + d = caml_call1(Z[10], _co_), + int_part = caml_call2(Z[18], n, d), + n$0 = [0, caml_call2(Z[19], n, d)], + digits = [0, 0]; + function leading_zeroes(digits){ + function _cz_(digit, num_leading_zeroes){ + if(3455931 <= num_leading_zeroes[1]) return num_leading_zeroes; + var i = num_leading_zeroes[2]; + return caml_equal(digit, Z[2]) + ? [0, -1014801911, i + 1 | 0] + : [0, 3455931, i]; + } + var match = caml_call3(Stdlib_List[26], _cz_, digits, _b_); + if(3455931 <= match[1]){var i = match[2]; return i;} + var i$0 = match[2]; + return i$0; + } + for(;;){ + if(runtime.caml_notequal(n$0[1], Z[2])){ + var _cp_ = leading_zeroes(digits[1]); + if((caml_call1(Stdlib_List[1], digits[1]) - _cp_ | 0) < max_prec_digits){ + n$0[1] = caml_call2(Z[14], n$0[1], 10); + var _cq_ = digits[1]; + digits[1] = [0, caml_call2(Z[18], n$0[1], d), _cq_]; + n$0[1] = caml_call2(Z[19], n$0[1], d); + continue; + } + } + var + _cr_ = leading_zeroes(digits[1]), + _cs_ = + (caml_call1(Stdlib_List[1], digits[1]) - _cr_ | 0) === max_prec_digits + ? cst + : cst$2, + _ct_ = caml_call1(Stdlib_List[9], digits[1]), + _cu_ = + function(fmt, digit){ + return caml_call4(Stdlib_Format[129], fmt, _c_, Z[36], digit); + }, + _cv_ = [0, function(fmt, param){return 0;}], + _cw_ = caml_call2(Stdlib_Format[123], _cv_, _cu_), + _cx_ = Z[36], + _cy_ = 0 <= sign ? cst$0 : cst$1; + return caml_call7 + (Stdlib_Format[133], _d_, _cy_, _cx_, int_part, _cw_, _ct_, _cs_); + } + } + function decimal_round(q){ + var + n = caml_call1(Q[16], q), + d = caml_call1(Q[17], q), + _ck_ = caml_call2(Z[54], 2, d), + _cl_ = caml_call2(Z[54], 2, n), + _cm_ = runtime.ml_z_fdiv(caml_call2(Z[52], _cl_, d), _ck_); + return caml_call1(Q[8], _cm_); + } + function decimal_of_money(m){ + var _ci_ = caml_call1(Q[9], 100), _cj_ = caml_call1(Q[8], m); + return caml_call2(Q[42], _cj_, _ci_); + } + function integer_of_string(s){return caml_call1(Z[5], s);} + function integer_to_string(i){return caml_call1(Z[31], i);} + function integer_to_int(i){return caml_call1(Z[29], i);} + function integer_of_int(i){return i;} + function integer_exponentiation(i, e){return runtime.ml_z_pow(i, e);} + var integer_log2 = Z[47]; + function year_of_date(d){ + var y = caml_call1(Dates_calc_Dates[7], d)[1]; + return y; + } + function month_number_of_date(d){ + var m = caml_call1(Dates_calc_Dates[7], d)[2]; + return m; + } + function is_leap_year(y){ + var y$0 = caml_call1(Z[29], y); + return caml_call1(Dates_calc_Dates[11], y$0); + } + function day_of_month_of_date(d){ + var d$0 = caml_call1(Dates_calc_Dates[7], d)[3]; + return d$0; + } + function date_of_numbers(year, month, day){ + try{ + var _cg_ = caml_call3(Dates_calc_Dates[3], year, month, day); + return _cg_; + } + catch(_ch_){throw caml_maybe_attach_backtrace(ImpossibleDate, 1);} + } + function date_to_string(d){ + return caml_call3(Stdlib_Format[133], _e_, Dates_calc_Dates[8], d); + } + var + first_day_of_month = Dates_calc_Dates[9], + last_day_of_month = Dates_calc_Dates[10]; + function duration_of_numbers(year, month, day){ + return caml_call3(Dates_calc_Dates[12], year, month, day); + } + function duration_to_string(d){ + return caml_call3(Stdlib_Format[133], _f_, Dates_calc_Dates[17], d); + } + function duration_to_years_months_days(d){ + return caml_call1(Dates_calc_Dates[19], d); + } + function yojson_of_runtime_value(param){ + if(typeof param === "number") return 0 === param ? _g_ : _h_; + switch(param[0]){ + case 0: + var + v0$4 = param[1], + v0$5 = caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][2], v0$4); + return [0, 848054398, [0, _i_, [0, v0$5, 0]]]; + case 1: + var v0$6 = param[1], v0 = [0, 365180284, money_to_float(v0$6)]; + return [0, 848054398, [0, _j_, [0, v0, 0]]]; + case 2: + var v0$7 = param[1], v0$0 = [0, 3654863, integer_to_int(v0$7)]; + return [0, 848054398, [0, _k_, [0, v0$0, 0]]]; + case 3: + var v0$8 = param[1], v0$1 = [0, 365180284, decimal_to_float(v0$8)]; + return [0, 848054398, [0, _l_, [0, v0$1, 0]]]; + case 4: + var v0$9 = param[1], v0$2 = [0, -976970511, date_to_string(v0$9)]; + return [0, 848054398, [0, _m_, [0, v0$2, 0]]]; + case 5: + var + v0$10 = param[1], + v0$3 = [0, -976970511, duration_to_string(v0$10)]; + return [0, 848054398, [0, _n_, [0, v0$3, 0]]]; + case 6: + var + v1 = param[2], + v0$11 = param[1], + v0$12 = + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][14], + Ppx_yojson_conv_lib_Yojson_con[45][3], + v0$11), + v1$0 = v1[2], + v0$13 = v1[1], + v0$14 = caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][3], v0$13), + v1$1 = yojson_of_runtime_value(v1$0), + v1$2 = [0, 848054398, [0, v0$14, [0, v1$1, 0]]]; + return [0, 848054398, [0, _o_, [0, v0$12, [0, v1$2, 0]]]]; + case 7: + var + v1$3 = param[2], + v0$15 = param[1], + v0$16 = + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][14], + Ppx_yojson_conv_lib_Yojson_con[45][3], + v0$15), + _cf_ = + function(param){ + var + v1 = param[2], + v0 = param[1], + v0$0 = caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][3], v0), + v1$0 = yojson_of_runtime_value(v1); + return [0, 848054398, [0, v0$0, [0, v1$0, 0]]]; + }, + v1$4 = caml_call2(Ppx_yojson_conv_lib_Yojson_con[45][14], _cf_, v1$3); + return [0, 848054398, [0, _p_, [0, v0$16, [0, v1$4, 0]]]]; + default: + var + v0$17 = param[1], + v0$18 = + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][15], + yojson_of_runtime_value, + v0$17); + return [0, 848054398, [0, _q_, [0, v0$18, 0]]]; + } + } + function unembeddable(param){return 1;} + function embed_unit(param){return 0;} + function embed_bool(x){return [0, x];} + function embed_money(x){return [1, x];} + function embed_integer(x){return [2, x];} + function embed_decimal(x){return [3, x];} + function embed_date(x){return [4, x];} + function embed_duration(x){return [5, x];} + function embed_array(f, x){return [8, caml_call2(Stdlib_Array[15], f, x)];} + function yojson_of_information(v){ + return caml_call2 (Ppx_yojson_conv_lib_Yojson_con[45][14], - yojson_of_var_def, - v_inputs), - bnds$0=[0,[0,cst_inputs,arg$0],bnds], - arg$1=yojson_of_information(v_name), - bnds$1=[0,[0,cst_name,arg$1],bnds$0]; - return [0,848054398,[0,_t_,[0,[0,963043957,bnds$1],0]]]}} - function yojson_of_var_def(param) - {var - v_fun_calls=param[4], - v_value=param[3], - v_name=param[2], - v_pos=param[1], - _ck_= - caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][14],yojson_of_fun_call), - arg=caml_call2(Ppx_yojson_conv_lib_Yojson_con[45][13],_ck_,v_fun_calls), - bnds=[0,[0,cst_fun_calls,arg],0], - arg$0=yojson_of_runtime_value(v_value), - bnds$0=[0,[0,cst_value,arg$0],bnds], - arg$1=yojson_of_information(v_name), - bnds$1=[0,[0,cst_name$0,arg$1],bnds$0], - arg$2= - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][13], - yojson_of_source_position, - v_pos), - bnds$2=[0,[0,cst_pos,arg$2],bnds$1]; - return [0,963043957,bnds$2]} - function yojson_of_fun_call(param) - {var - v_output=param[4], - v_body=param[3], - v_fun_inputs=param[2], - v_fun_name=param[1], - arg=yojson_of_var_def(v_output), - bnds=[0,[0,cst_output,arg],0], - arg$0= - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][14],yojson_of_event,v_body), - bnds$0=[0,[0,cst_body$0,arg$0],bnds], - arg$1= - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][14], - yojson_of_var_def, - v_fun_inputs), - bnds$1=[0,[0,cst_fun_inputs,arg$1],bnds$0], - arg$2=yojson_of_information(v_fun_name), - bnds$2=[0,[0,cst_fun_name,arg$2],bnds$1]; - return [0,963043957,bnds$2]} - var log_ref=[0,0]; - function reset_log(param){log_ref[1] = 0;return 0} - function retrieve_log(param){return caml_call1(Stdlib_List[9],log_ref[1])} - function log_begin_call(info,f) - {log_ref[1] = [0,[0,info],log_ref[1]];return f} - function log_end_call(info,x) - {log_ref[1] = [0,[1,info],log_ref[1]];return x} - function log_variable_definition(info,embed,x) - {var _cj_=log_ref[1]; - log_ref[1] = [0,[2,info,caml_call1(embed,x)],_cj_]; - return x} - function log_decision_taken(pos,x) - {if(x)log_ref[1] = [0,[3,pos],log_ref[1]];return x} - function pp_events(opt,ppf,events) - {if(opt)var sth=opt[1],is_first_call=sth;else var is_first_call=1; - function format_var_def(ppf,var$0) - {var _ch_=var$0[3],_ci_=caml_call2(Stdlib_String[6],cst$3,var$0[2]); + Ppx_yojson_conv_lib_Yojson_con[45][3], + v); + } + function yojson_of_event(param){ + switch(param[0]){ + case 0: + var v0 = param[1], v0$0 = yojson_of_var_def(v0); + return [0, 848054398, [0, _r_, [0, v0$0, 0]]]; + case 1: + var v0$1 = param[1], v0$2 = yojson_of_fun_call(v0$1); + return [0, 848054398, [0, _s_, [0, v0$2, 0]]]; + default: + var + v_body = param[3], + v_inputs = param[2], + v_name = param[1], + arg = + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][14], yojson_of_event, v_body), + bnds = [0, [0, cst_body, arg], 0], + arg$0 = + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][14], + yojson_of_var_def, + v_inputs), + bnds$0 = [0, [0, cst_inputs, arg$0], bnds], + arg$1 = yojson_of_information(v_name), + bnds$1 = [0, [0, cst_name, arg$1], bnds$0]; + return [0, 848054398, [0, _t_, [0, [0, 963043957, bnds$1], 0]]]; + } + } + function yojson_of_var_def(param){ + var + v_fun_calls = param[4], + v_value = param[3], + v_name = param[2], + v_pos = param[1], + _ce_ = + caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][14], yojson_of_fun_call), + arg = + caml_call2(Ppx_yojson_conv_lib_Yojson_con[45][13], _ce_, v_fun_calls), + bnds = [0, [0, cst_fun_calls, arg], 0], + arg$0 = yojson_of_runtime_value(v_value), + bnds$0 = [0, [0, cst_value, arg$0], bnds], + arg$1 = yojson_of_information(v_name), + bnds$1 = [0, [0, cst_name$0, arg$1], bnds$0], + arg$2 = + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][13], + yojson_of_source_position, + v_pos), + bnds$2 = [0, [0, cst_pos, arg$2], bnds$1]; + return [0, 963043957, bnds$2]; + } + function yojson_of_fun_call(param){ + var + v_output = param[4], + v_body = param[3], + v_fun_inputs = param[2], + v_fun_name = param[1], + arg = yojson_of_var_def(v_output), + bnds = [0, [0, cst_output, arg], 0], + arg$0 = + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][14], yojson_of_event, v_body), + bnds$0 = [0, [0, cst_body$0, arg$0], bnds], + arg$1 = + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][14], + yojson_of_var_def, + v_fun_inputs), + bnds$1 = [0, [0, cst_fun_inputs, arg$1], bnds$0], + arg$2 = yojson_of_information(v_fun_name), + bnds$2 = [0, [0, cst_fun_name, arg$2], bnds$1]; + return [0, 963043957, bnds$2]; + } + var log_ref = [0, 0]; + function reset_log(param){log_ref[1] = 0; return 0;} + function retrieve_log(param){ + return caml_call1(Stdlib_List[9], log_ref[1]); + } + function log_begin_call(info, f){ + log_ref[1] = [0, [0, info], log_ref[1]]; + return f; + } + function log_end_call(info, x){ + log_ref[1] = [0, [1, info], log_ref[1]]; + return x; + } + function log_variable_definition(info, embed, x){ + var _cd_ = log_ref[1]; + log_ref[1] = [0, [2, info, caml_call1(embed, x)], _cd_]; + return x; + } + function log_decision_taken(pos, x){ + if(x) log_ref[1] = [0, [3, pos], log_ref[1]]; + return x; + } + function pp_events(opt, ppf, events){ + if(opt) var sth = opt[1], is_first_call = sth; else var is_first_call = 1; + function format_var_def(ppf, var$0){ + var + _cb_ = var$0[3], + _cc_ = caml_call2(Stdlib_String[6], cst$3, var$0[2]); + return caml_call7 + (Stdlib_Format[129], + ppf, + _u_, + format_pos_opt, + var$0[1], + _cc_, + format_value, + _cb_); + } + function format_pos_opt(ppf, param){ + if(! param) return caml_call2(Stdlib_Format[129], ppf, _w_); + var pos = param[1]; + return caml_call5(Stdlib_Format[129], ppf, _v_, pos[1], pos[2], pos[4]); + } + function format_var_defs(ppf){ + var + _ca_ = + [0, + function(ppf, param){ + return caml_call2(Stdlib_Format[129], ppf, _x_); + }]; + return caml_call3(Stdlib_Format[123], _ca_, format_var_def, ppf); + } + function format_var_def_with_fun_calls(ppf, var_with_fun){ + var _b6_ = var_with_fun[4]; + if(_b6_){ + var fun_calls = _b6_[1]; + if(fun_calls){ + var + _b7_ = + function(ppf, fun_call){return format_event(ppf, [1, fun_call]);}, + _b8_ = + [0, + function(ppf, param){ + return caml_call2(Stdlib_Format[129], ppf, _y_); + }], + _b9_ = caml_call2(Stdlib_Format[123], _b8_, _b7_), + _b__ = var_with_fun[3], + _b$_ = caml_call2(Stdlib_String[6], cst$4, var_with_fun[2]); + return caml_call7 + (Stdlib_Format[129], + ppf, + _z_, + _b$_, + format_value, + _b__, + _b9_, + fun_calls); + } + } + return format_var_def(ppf, var_with_fun); + } + function format_value(ppf, param){ + if(typeof param === "number") + return 0 === param + ? caml_call2(Stdlib_Format[129], ppf, _A_) + : caml_call2(Stdlib_Format[129], ppf, _B_); + switch(param[0]){ + case 0: + var x = param[1]; return caml_call3(Stdlib_Format[129], ppf, _C_, x); + case 1: + var x$0 = param[1], _bU_ = money_to_string(x$0); + return caml_call3(Stdlib_Format[129], ppf, _D_, _bU_); + case 2: + var x$1 = param[1], _bV_ = integer_to_int(x$1); + return caml_call3(Stdlib_Format[129], ppf, _E_, _bV_); + case 3: + var x$2 = param[1], _bW_ = decimal_to_string(10, x$2); + return caml_call3(Stdlib_Format[129], ppf, _F_, _bW_); + case 4: + var x$3 = param[1], _bX_ = date_to_string(x$3); + return caml_call3(Stdlib_Format[129], ppf, _G_, _bX_); + case 5: + var x$4 = param[1], _bY_ = duration_to_string(x$4); + return caml_call3(Stdlib_Format[129], ppf, _H_, _bY_); + case 6: + var name = param[2][1]; + return caml_call3(Stdlib_Format[129], ppf, _I_, name); + case 7: + var + attrs = param[2], + name$0 = param[1], + _bZ_ = + function(fmt, param){ + var value = param[2], name = param[1]; + return caml_call5 + (Stdlib_Format[129], fmt, _J_, name, format_value, value); + }, + _b0_ = + [0, + function(ppf, param){ + return caml_call2(Stdlib_Format[129], ppf, _K_); + }], + _b1_ = caml_call2(Stdlib_Format[123], _b0_, _bZ_), + _b2_ = caml_call2(Stdlib_String[6], cst$5, name$0); + return caml_call5(Stdlib_Format[129], ppf, _L_, _b2_, _b1_, attrs); + default: + var + elts = param[1], + _b3_ = caml_call1(Stdlib_Array[11], elts), + _b4_ = + [0, + function(ppf, param){ + return caml_call2(Stdlib_Format[129], ppf, _M_); + }], + _b5_ = caml_call2(Stdlib_Format[123], _b4_, format_value); + return caml_call4(Stdlib_Format[129], ppf, _N_, _b5_, _b3_); + } + } + function format_event(ppf, param){ + switch(param[0]){ + case 0: + var var_def_with_fun = param[1]; + return caml_call1(Stdlib_Option[11], var_def_with_fun[4]) + ? caml_call4 + (Stdlib_Format[129], + ppf, + _O_, + format_var_def_with_fun_calls, + var_def_with_fun) + : caml_call4 + (Stdlib_Format[129], + ppf, + _P_, + format_var_def, + var_def_with_fun); + case 1: + var + match = param[1], + output = match[4], + body = match[3], + fun_inputs = match[2], + fun_name = match[1], + _bK_ = function(_bQ_, _bR_){return pp_events(_Q_, _bQ_, _bR_);}, + _bL_ = + [0, + function(fmt, param){ + return caml_call2(Stdlib_Format[13], fmt, cst$6); + }], + _bM_ = caml_call2(Stdlib_Format[123], _bL_, format_var_def), + _bN_ = caml_call2(Stdlib_String[6], cst$7, fun_name); + return caml_call9 + (Stdlib_Format[129], + ppf, + _R_, + _bN_, + _bM_, + fun_inputs, + format_var_def_with_fun_calls, + output, + _bK_, + body); + default: + var + body$0 = param[3], + inputs = param[2], + name = param[1], + _bO_ = function(_bS_, _bT_){return pp_events(_S_, _bS_, _bT_);}, + _bP_ = caml_call2(Stdlib_String[6], cst$8, name); return caml_call7 (Stdlib_Format[129], ppf, - _u_, - format_pos_opt, - var$0[1], - _ci_, - format_value, - _ch_)} - function format_pos_opt(ppf,param) - {if(param) - {var pos=param[1]; - return caml_call5(Stdlib_Format[129],ppf,_v_,pos[1],pos[2],pos[4])} - return caml_call2(Stdlib_Format[129],ppf,_w_)} - function format_var_defs(ppf) - {var - _cg_= - [0, - function(ppf,param){return caml_call2(Stdlib_Format[129],ppf,_x_)}]; - return caml_call3(Stdlib_Format[123],_cg_,format_var_def,ppf)} - function format_var_def_with_fun_calls(ppf,var_with_fun) - {var _b$_=var_with_fun[4]; - if(_b$_) - {var _ca_=_b$_[1]; - if(_ca_) - {var - _cb_= - function(ppf,fun_call){return format_event(ppf,[1,fun_call])}, - _cc_= - [0, - function(ppf,param) - {return caml_call2(Stdlib_Format[129],ppf,_y_)}], - _cd_=caml_call2(Stdlib_Format[123],_cc_,_cb_), - _ce_=var_with_fun[3], - _cf_=caml_call2(Stdlib_String[6],cst$4,var_with_fun[2]); - return caml_call7 - (Stdlib_Format[129], - ppf, - _z_, - _cf_, - format_value, - _ce_, - _cd_, - _ca_)}} - return format_var_def(ppf,var_with_fun)} - function format_value(ppf,param) - {if(typeof param === "number") - return 0 === param - ?caml_call2(Stdlib_Format[129],ppf,_A_) - :caml_call2(Stdlib_Format[129],ppf,_B_); - else - switch(param[0]) - {case 0: - var x=param[1];return caml_call3(Stdlib_Format[129],ppf,_C_,x); - case 1: - var x$0=param[1],_bZ_=money_to_string(x$0); - return caml_call3(Stdlib_Format[129],ppf,_D_,_bZ_); - case 2: - var x$1=param[1],_b0_=integer_to_int(x$1); - return caml_call3(Stdlib_Format[129],ppf,_E_,_b0_); - case 3: - var x$2=param[1],_b1_=decimal_to_string(10,x$2); - return caml_call3(Stdlib_Format[129],ppf,_F_,_b1_); - case 4: - var x$3=param[1],_b2_=date_to_string(x$3); - return caml_call3(Stdlib_Format[129],ppf,_G_,_b2_); - case 5: - var x$4=param[1],_b3_=duration_to_string(x$4); - return caml_call3(Stdlib_Format[129],ppf,_H_,_b3_); - case 6: - var match=param[2],name=match[1]; - return caml_call3(Stdlib_Format[129],ppf,_I_,name); - case 7: - var - attrs=param[2], - name$0=param[1], - _b4_= - function(fmt,param) - {var value=param[2],name=param[1]; - return caml_call5 - (Stdlib_Format[129],fmt,_J_,name,format_value,value)}, - _b5_= - [0, - function(ppf,param) - {return caml_call2(Stdlib_Format[129],ppf,_K_)}], - _b6_=caml_call2(Stdlib_Format[123],_b5_,_b4_), - _b7_=caml_call2(Stdlib_String[6],cst$5,name$0); - return caml_call5(Stdlib_Format[129],ppf,_L_,_b7_,_b6_,attrs); - default: - var - elts=param[1], - _b8_=caml_call1(Stdlib_Array[11],elts), - _b9_= - [0, - function(ppf,param) - {return caml_call2(Stdlib_Format[129],ppf,_M_)}], - _b__=caml_call2(Stdlib_Format[123],_b9_,format_value); - return caml_call4(Stdlib_Format[129],ppf,_N_,_b__,_b8_)}} - function format_event(ppf,param) - {switch(param[0]) - {case 0: - var var_def_with_fun=param[1]; - return caml_call1(Stdlib_Option[11],var_def_with_fun[4]) - ?caml_call4 - (Stdlib_Format[129], - ppf, - _O_, - format_var_def_with_fun_calls, - var_def_with_fun) - :caml_call4 - (Stdlib_Format[129],ppf,_P_,format_var_def,var_def_with_fun); - case 1: - var - match=param[1], - output=match[4], - body=match[3], - fun_inputs=match[2], - fun_name=match[1], - _bP_=function(_bV_,_bW_){return pp_events(_Q_,_bV_,_bW_)}, - _bQ_= - [0, - function(fmt,param) - {return caml_call2(Stdlib_Format[13],fmt,cst$6)}], - _bR_=caml_call2(Stdlib_Format[123],_bQ_,format_var_def), - _bS_=caml_call2(Stdlib_String[6],cst$7,fun_name); - return caml_call9 - (Stdlib_Format[129], - ppf, - _R_, - _bS_, - _bR_, - fun_inputs, - format_var_def_with_fun_calls, - output, - _bP_, - body); - default: - var - body$0=param[3], - inputs=param[2], - name=param[1], - _bT_=function(_bX_,_bY_){return pp_events(_S_,_bX_,_bY_)}, - _bU_=caml_call2(Stdlib_String[6],cst$8,name); - return caml_call7 - (Stdlib_Format[129], - ppf, - _T_, - _bU_, - format_var_defs, - inputs, - _bT_, - body$0)}} - var - _bL_= - [0,function(ppf,param){return caml_call2(Stdlib_Format[129],ppf,_U_)}], - _bM_=caml_call2(Stdlib_Format[123],_bL_,format_event), - _bN_=is_first_call?_V_:_X_, - _bO_=caml_call2(Stdlib[98],_W_,_bN_); - return caml_call4(Stdlib_Format[129],ppf,_bO_,_bM_,events)} + _T_, + _bP_, + format_var_defs, + inputs, + _bO_, + body$0); + } + } var - StringMap=caml_call1(Stdlib_Map[1],[0,Stdlib_String[9]]), - empty=StringMap[1], - empty_ctx=[0,empty,0,0], - _Y_=0; - function raw_event_to_string(param) - {switch(param[0]) - {case 0: - var - name=param[1], - _bC_=caml_call2(Stdlib_String[6],cst$10,name), - _bD_=caml_call2(Stdlib[28],_bC_,cst$9), - _bE_=caml_call1(Stdlib_Printf[4],_Z_); - return caml_call2(Stdlib[28],_bE_,_bD_); + _bG_ = + [0, + function(ppf, param){return caml_call2(Stdlib_Format[129], ppf, _U_);}], + _bH_ = caml_call2(Stdlib_Format[123], _bG_, format_event), + _bI_ = is_first_call ? _V_ : _X_, + _bJ_ = caml_call2(Stdlib[98], _W_, _bI_); + return caml_call4(Stdlib_Format[129], ppf, _bJ_, _bH_, events); + } + var + StringMap = caml_call1(Stdlib_Map[1], [0, Stdlib_String[9]]), + empty = StringMap[1], + empty_ctx = [0, empty, 0, 0], + _Y_ = 0; + function raw_event_to_string(param){ + switch(param[0]){ + case 0: + var + name = param[1], + _bx_ = caml_call2(Stdlib_String[6], cst$10, name), + _by_ = caml_call2(Stdlib[28], _bx_, cst$9), + _bz_ = caml_call1(Stdlib_Printf[4], _Z_); + return caml_call2(Stdlib[28], _bz_, _by_); + case 1: + var + name$0 = param[1], + _bA_ = caml_call2(Stdlib_String[6], cst$12, name$0), + _bB_ = caml_call2(Stdlib[28], _bA_, cst$11), + _bC_ = caml_call1(Stdlib_Printf[4], ___); + return caml_call2(Stdlib[28], _bC_, _bB_); + case 2: + var + value = param[2], + name$1 = param[1], + _bD_ = yojson_of_runtime_value(value), + _bE_ = caml_call5(Yojson[11][5], 0, 0, 0, 0, _bD_), + _bF_ = caml_call2(Stdlib_String[6], cst$13, name$1); + return caml_call3(Stdlib_Printf[4], _$_, _bF_, _bE_); + default: + var pos = param[1]; + return caml_call6 + (Stdlib_Printf[4], + _aa_, + pos[1], + pos[2], + pos[3], + pos[4], + pos[5]); + } + } + function take_while(p, l){ + if(! l) return _ab_; + var t = l[2], h = l[1]; + if(! caml_call1(p, h)) return [0, 0, l]; + var match = take_while(p, t), rest = match[2], t$0 = match[1]; + return [0, [0, h, t$0], rest]; + } + function parse_raw_events(raw_events){ + var nb_raw_events = caml_call1(Stdlib_List[1], raw_events); + function is_function_call(infos){ + return 2 === caml_call1(Stdlib_List[1], infos) ? 1 : 0; + } + function is_var_def(name){ + return 2 === caml_call1(Stdlib_List[1], name) ? 1 : 0; + } + function parse_events(ctx){ + var ctx$0 = ctx; + a: + for(;;){ + var match$1 = ctx$0[3]; + if(! match$1){ + var _bu_ = ctx$0[3], _bv_ = caml_call1(Stdlib_List[9], ctx$0[2]); + return [0, ctx$0[1], _bv_, _bu_]; + } + var event = match$1[1]; + switch(event[0]){ + case 0: + var rest = match$1[2], infos = event[1]; + if(3 === caml_call1(Stdlib_List[1], infos)){ + if(infos){ + var _a6_ = infos[2]; + if(_a6_){ + var _a7_ = _a6_[2]; + if(_a7_ && ! _a7_[2]){ + var + var_name = _a6_[1], + body_ctx = parse_events([0, empty, _Y_, rest]), + map = ctx$0[1], + match$0 = caml_call2(StringMap[29], var_name, map); + if(match$0) + var ls$0 = match$0[1], inputs = ls$0; + else + var inputs = 0; + var + ctx$1 = + [0, + ctx$0[1], + [0, [2, infos, inputs, body_ctx[2]], ctx$0[2]], + body_ctx[3]], + ctx$0 = ctx$1; + continue; + } + } + } + return caml_call1(Stdlib[2], cst_unreachable_due_to_the_is_); + } + break; case 1: - var - name$0=param[1], - _bF_=caml_call2(Stdlib_String[6],cst$12,name$0), - _bG_=caml_call2(Stdlib[28],_bF_,cst$11), - _bH_=caml_call1(Stdlib_Printf[4],___); - return caml_call2(Stdlib[28],_bH_,_bG_); + var rest$0 = match$1[2], _a__ = caml_call1(Stdlib_List[9], ctx$0[2]); + return [0, ctx$0[1], _a__, rest$0]; case 2: - var - value=param[2], - name$1=param[1], - _bI_=yojson_of_runtime_value(value), - _bJ_=caml_call5(Yojson[11][5],0,0,0,0,_bI_), - _bK_=caml_call2(Stdlib_String[6],cst$13,name$1); - return caml_call3(Stdlib_Printf[4],_$_,_bK_,_bJ_); - default: - var pos=param[1]; - return caml_call6 - (Stdlib_Printf[4],_aa_,pos[1],pos[2],pos[3],pos[4],pos[5])}} - function take_while(p,l) - {if(l) - {var t=l[2],h=l[1]; - if(caml_call1(p,h)) - {var match=take_while(p,t),rest=match[2],t$0=match[1]; - return [0,[0,h,t$0],rest]} - return [0,0,l]} - return _ab_} - function parse_raw_events(raw_events) - {var nb_raw_events=caml_call1(Stdlib_List[1],raw_events); - function is_function_call(infos) - {return 2 === caml_call1(Stdlib_List[1],infos)?1:0} - function is_var_def(name) - {return 2 === caml_call1(Stdlib_List[1],name)?1:0} - function parse_events(ctx) - {var ctx$0=ctx; - a: - for(;;) - {var _a3_=ctx$0[3]; - if(_a3_) - {var _a4_=_a3_[1]; - switch(_a4_[0]) - {case 0: - var rest=_a3_[2],infos=_a4_[1]; - if(3 === caml_call1(Stdlib_List[1],infos)) - {if(infos) - {var _a5_=infos[2]; - if(_a5_) - {var _a6_=_a5_[2]; - if(_a6_ && ! _a6_[2]) - {var - var_name=_a5_[1], - body_ctx=parse_events([0,empty,_Y_,rest]), - match$0=caml_call2(StringMap[29],var_name,ctx$0[1]); - if(match$0) - var ls$0=match$0[1],inputs=ls$0; - else - var inputs=0; - var - ctx$1= - [0, - ctx$0[1], - [0,[2,infos,inputs,body_ctx[2]],ctx$0[2]], - body_ctx[3]], - ctx$0=ctx$1; - continue}}} - return caml_call1(Stdlib[2],cst_unreachable_due_to_the_is_)} - break; - case 1: - var rest$0=_a3_[2],_a9_=caml_call1(Stdlib_List[9],ctx$0[2]); - return [0,ctx$0[1],_a9_,rest$0]; - case 2: - var rest$1=_a3_[2],name=_a4_[1]; - if(is_var_def(name)) - {var ctx$2=[0,ctx$0[1],ctx$0[2],rest$1],ctx$0=ctx$2;continue} - if(rest$1) - {var _a__=rest$1[1]; - if(0 === _a__[0]) - {var infos$0=_a__[1]; - if(is_function_call(infos$0)) - {var - match$1=parse_fun_call(ctx$0[3]), - fun_call=match$1[2], - rest$2=match$1[1], - ctx$3=[0,ctx$0[1],[0,[1,fun_call],ctx$0[2]],rest$2], - ctx$0=ctx$3; - continue}}} - break; - default: - var _a$_=_a3_[2]; - if(_a$_) - {var _ba_=_a$_[1]; - if(2 === _ba_[0]) - {var - rest$3=_a$_[2], - value=_ba_[2], - name$0=_ba_[1], - pos=_a4_[1], - _a1_=2 === caml_call1(Stdlib_List[1],name$0)?1:0; - if(_a1_) - var - _a2_=caml_call2(Stdlib_List[7],name$0,1), - _bb_=caml_call2(Stdlib_String[14],_a2_,46); - else - var _bb_=_a1_; - if(_bb_) - {if(name$0) - {var _bc_=name$0[2]; - if(_bc_ && ! _bc_[2]) - {var - var_dot_subscope_var_name=_bc_[1], - _bd_= - caml_call2(Stdlib_String[16],46,var_dot_subscope_var_name), - name$1=caml_call2(Stdlib_List[7],_bd_,0), - _bf_=ctx$0[1], - v=[0,[0,pos],name$0,value,0], - _be_=ctx$0[2], - match=caml_call2(StringMap[29],name$1,_bf_); - if(match) - var - ls=match[1], - _bB_=caml_call3(StringMap[4],name$1,[0,v,ls],_bf_); - else - var _bB_=caml_call3(StringMap[4],name$1,[0,v,0],_bf_); - var ctx$4=[0,_bB_,_be_,rest$3],ctx$0=ctx$4; - continue}} - return caml_call1 - (Stdlib[2],cst_unreachable_due_to_the_is_$0)} - var switch$0=0; - if(is_var_def(name$0)) - switch$0 = 1; - else - {var - _aZ_=3 === caml_call1(Stdlib_List[1],name$0)?1:0, - _a0_= - _aZ_ - ?runtime.caml_string_equal - (cst_output$0,caml_call2(Stdlib_List[7],name$0,2)) - :_aZ_; - if(_a0_) - switch$0 = 1; - else - if(rest$3) - {var _bg_=rest$3[1]; - if(0 === _bg_[0]) - {var infos$1=_bg_[1]; - if(is_function_call(infos$1)) - {var - raw_events$0=caml_call1(Stdlib_List[6],ctx$0[3]), - fun_calls=0, - rest$4=raw_events$0; - for(;;) - {var - match$2= - take_while - (function(param){return 2 === param[0]?1:0},rest$4), - _bh_=match$2[2]; - if(_bh_) - {var _bi_=_bh_[1]; - if(0 === _bi_[0]) - {var infos$2=_bi_[1]; - if(is_function_call(infos$2)) - {var - match$3=parse_fun_call(rest$4), - fun_call$0=match$3[2], - raw_events=match$3[1], - fun_calls$0=[0,fun_call$0,fun_calls], - fun_calls=fun_calls$0, - rest$4=raw_events; - continue}}} - var fun_calls$1=caml_call1(Stdlib_List[9],fun_calls); - if(rest$4) - {var _bj_=rest$4[1]; - if(2 === _bj_[0]) - var - rest$6=rest$4[2], - value$0=_bj_[2], - name$2=_bj_[1], - var_comp=[0,[0,[0,pos],name$2,value$0,[0,fun_calls$1]]], - rest$5=rest$6; - else - var - _bk_= - (nb_raw_events - caml_call1(Stdlib_List[1],rest$4) | 0) - + - 1 - | - 0, - _bl_=caml_call1(Stdlib[33],_bk_), - _bm_=caml_call2(Stdlib[28],_bl_,cst$14), - _bn_=caml_call2(Stdlib[28],cst$15,_bm_), - _bo_=raw_event_to_string(_bj_), - _bp_=caml_call2(Stdlib[28],_bo_,_bn_), - _bq_= - caml_call2(Stdlib[28],cst_expected_variable_definiti,_bp_), - _br_=caml_call2(Stdlib_String[6],cst$16,infos$1), - _bs_=caml_call2(Stdlib[28],_br_,_bq_), - _bt_=caml_call2(Stdlib[28],cst_Invalid_function_call,_bs_), - _bu_=caml_call1(Stdlib[2],_bt_), - var_comp=_bu_[2], - rest$5=_bu_[1]} - else - var - _bv_=caml_call2(Stdlib_String[6],cst$17,infos$1), - _bw_= - caml_call2(Stdlib[28],_bv_,cst_expected_variable_definiti$0), - _bx_=caml_call2(Stdlib[28],cst_Invalid_function_call$0,_bw_), - _by_=caml_call1(Stdlib[2],_bx_), - var_comp=_by_[2], - rest$5=_by_[1]; - var - ctx$6=[0,ctx$0[1],[0,var_comp,ctx$0[2]],rest$5], - ctx$0=ctx$6; - continue a}}}}} - if(switch$0) - {var - ctx$5= - [0, - ctx$0[1], - [0,[0,[0,[0,pos],name$0,value,0]],ctx$0[2]], - rest$3], - ctx$0=ctx$5; - continue}}}} + var rest$1 = match$1[2], name = event[1]; + if(is_var_def(name)){ + var ctx$2 = [0, ctx$0[1], ctx$0[2], rest$1], ctx$0 = ctx$2; + continue; + } + if(rest$1){ + var match$2 = rest$1[1]; + if(0 === match$2[0]){ + var infos$0 = match$2[1]; + if(is_function_call(infos$0)){ var - _a7_=raw_event_to_string(_a4_), - _a8_=caml_call2(Stdlib[28],cst_Unexpected_event,_a7_); - return caml_call1(Stdlib[2],_a8_)} - var _bz_=ctx$0[3],_bA_=caml_call1(Stdlib_List[9],ctx$0[2]); - return [0,ctx$0[1],_bA_,_bz_]}} - function parse_fun_call(events) - {var - match= - take_while - (function(param) - {if(2 === param[0]) - {var - name=param[1], - _aX_=3 === caml_call1(Stdlib_List[1],name)?1:0; - if(_aX_) - {var _aY_=caml_call2(Stdlib_List[7],name,2); - return caml_call2(Stdlib_String[10],cst_input,_aY_)} - return _aX_} - return 0}, - events), - _aT_=match[2]; - if(_aT_) - {var _aU_=_aT_[1]; - if(0 === _aU_[0]) - {var rest=_aT_[2],infos=_aU_[1],inputs=match[1]; - if(is_function_call(infos)) - {var - _aV_= - function(param) - {if(2 === param[0]) - {var value=param[2],name=param[1];return [0,0,name,value,0]} - throw [0,Assert_failure,_ac_]}, - fun_inputs=caml_call2(Stdlib_ListLabels[19],_aV_,inputs), - body_ctx=parse_events([0,empty,0,rest]), - body_rev=caml_call1(Stdlib_List[9],body_ctx[2]), - output=caml_call1(Stdlib_List[5],body_rev), - _aW_=caml_call1(Stdlib_List[6],body_rev), - body=caml_call1(Stdlib_List[9],_aW_), - rest$0=body_ctx[3]; - if(0 === output[0]) - var var_def=output[1],output$0=var_def; + match$3 = parse_fun_call(ctx$0[3]), + fun_call = match$3[2], + rest$2 = match$3[1], + ctx$3 = [0, ctx$0[1], [0, [1, fun_call], ctx$0[2]], rest$2], + ctx$0 = ctx$3; + continue; + } + } + } + break; + default: + var _a$_ = match$1[2]; + if(_a$_){ + var match$4 = _a$_[1]; + if(2 === match$4[0]){ + var + rest$3 = _a$_[2], + value = match$4[2], + name$0 = match$4[1], + pos = event[1], + _a4_ = 2 === caml_call1(Stdlib_List[1], name$0) ? 1 : 0; + if(_a4_) + var + _a5_ = caml_call2(Stdlib_List[7], name$0, 1), + _ba_ = caml_call2(Stdlib_String[14], _a5_, 46); + else + var _ba_ = _a4_; + if(_ba_){ + if(name$0){ + var _bb_ = name$0[2]; + if(_bb_ && ! _bb_[2]){ + var + var_dot_subscope_var_name = _bb_[1], + _bc_ = + caml_call2(Stdlib_String[16], 46, var_dot_subscope_var_name), + var_name$0 = caml_call2(Stdlib_List[7], _bc_, 0), + map$0 = ctx$0[1], + v = [0, [0, pos], name$0, value, 0], + _bd_ = ctx$0[2], + match = caml_call2(StringMap[29], var_name$0, map$0); + if(match) + var + ls = match[1], + _bw_ = caml_call3(StringMap[4], var_name$0, [0, v, ls], map$0); else var - output$0= - caml_call1(Stdlib[2],cst_Missing_function_output_va); - return [0,rest$0,[0,infos,fun_inputs,body,output$0]]}}} - return caml_call1(Stdlib[2],cst_Invalid_start_of_function_)} - try - {var _aS_=parse_events([0,empty,_Y_,raw_events]),ctx=_aS_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] !== Stdlib[7])throw exn; - var msg=exn[2]; - caml_call2(Stdlib_Printf[3],_ad_,msg); - var ctx=empty_ctx} - return ctx[2]} - function handle_default(pos,exceptions,just,cons) - {var _aO_=0; - function _aP_(acc,except) - {try - {var _aQ_=[0,caml_call1(except,0)],new_val=_aQ_} - catch(_aR_) - {_aR_ = caml_wrap_exception(_aR_); - if(_aR_ !== EmptyError)throw _aR_; - var new_val=0} - if(acc){if(new_val)throw [0,ConflictError,pos];return acc} - return new_val} - var except=caml_call3(Stdlib_Array[17],_aP_,_aO_,exceptions); - if(except){var x=except[1];return x} - if(caml_call1(just,0))return caml_call1(cons,0); - throw EmptyError} - function handle_default_opt(pos,exceptions,just,cons) - {function _aN_(acc,except) - {if(0 === acc[0])return except; - if(0 === except[0])return acc; - throw [0,ConflictError,pos]} - var except=caml_call3(Stdlib_Array[17],_aN_,_ae_,exceptions); - if(0 === except[0]) - {if(0 === just[0])return _af_;var b=just[1];return b?cons:_ag_} - return except} - function no_input(param){throw EmptyError} - function compare_periods(p1,p2) - {try - {var - p1_days=caml_call1(Dates_calc_Dates[18],p1), - p2_days=caml_call1(Dates_calc_Dates[18],p2), - _aL_=runtime.caml_int_compare(p1_days,p2_days); - return _aL_} - catch(_aM_) - {_aM_ = caml_wrap_exception(_aM_); - if(_aM_ === Dates_calc_Dates[2])throw UncomparableDurations; - throw _aM_}} - function equal_periods(p1,p2) - {try - {var - _aI_=caml_call2(Dates_calc_Dates[15],p1,p2), - _aJ_=0 === caml_call1(Dates_calc_Dates[18],_aI_)?1:0; - return _aJ_} - catch(_aK_) - {_aK_ = caml_wrap_exception(_aK_); - if(_aK_ === Dates_calc_Dates[2])throw UncomparableDurations; - throw _aK_}} - function o_not(_aH_){return 1 - _aH_} - function o_length(a){return a.length - 1} - function o_minus_int(i1){return caml_call2(Z[13],Z[2],i1)} - function o_minus_rat(i1){return caml_call2(Q[39],Q[2],i1)} - function o_minus_mon(m1){return caml_call2(Z[13],Z[2],m1)} - var o_minus_dur=Dates_calc_Dates[13]; - function o_and(_aF_,_aE_){var _aG_=_aF_?_aE_:_aF_;return _aG_} - function o_or(_aC_,_aB_){var _aD_=_aC_ || _aB_;return _aD_} - function o_xor(_aA_,_az_){return _aA_ !== _az_?1:0} - var o_eq=caml_equal,o_map=Stdlib_Array[15]; - function o_reduce(f,dft,a) - {var len=a.length - 1; - if(0 === len)return dft; - var r=[0,caml_check_bound(a,0)[1]],_aw_=len - 1 | 0,_av_=1; - if(! (_aw_ < 1)) - {var i=_av_; - for(;;) - {var _ax_=caml_check_bound(a,i)[1 + i]; - r[1] = caml_call2(f,r[1],_ax_); - var _ay_=i + 1 | 0; - if(_aw_ !== i){var i=_ay_;continue} - break}} - return r[1]} - var o_concat=Stdlib_Array[5]; - function o_filter(f,a) - {var - _at_=caml_call1(Stdlib_Array[11],a), - _au_=caml_call2(Stdlib_List[41],f,_at_); - return caml_call1(Stdlib_Array[12],_au_)} - function o_add_int_int(i1,i2){return caml_call2(Z[12],i1,i2)} - function o_add_rat_rat(i1,i2){return caml_call2(Q[38],i1,i2)} - function o_add_mon_mon(m1,m2){return caml_call2(Z[12],m1,m2)} - function o_add_dat_dur(r,da,du) - {return caml_call3(Dates_calc_Dates[4],[0,r],da,du)} - var o_add_dur_dur=Dates_calc_Dates[14]; - function o_sub_int_int(i1,i2){return caml_call2(Z[13],i1,i2)} - function o_sub_rat_rat(i1,i2){return caml_call2(Q[39],i1,i2)} - function o_sub_mon_mon(m1,m2){return caml_call2(Z[13],m1,m2)} - var o_sub_dat_dat=Dates_calc_Dates[5]; - function o_sub_dat_dur(dat,dur) - {var _as_=caml_call1(Dates_calc_Dates[13],dur); - return caml_call3(Dates_calc_Dates[4],0,dat,_as_)} - var o_sub_dur_dur=Dates_calc_Dates[15]; - function o_mult_int_int(i1,i2){return caml_call2(Z[14],i1,i2)} - function o_mult_rat_rat(i1,i2){return caml_call2(Q[40],i1,i2)} - function o_mult_mon_rat(i1,i2) - {var - i1_abs=caml_call1(Z[10],i1), - i2_abs=caml_call1(Q[37],i2), - _an_=caml_call1(Q[20],i2), - sign_int=runtime.caml_mul(runtime.ml_z_sign(i1),_an_), - _ao_=caml_call1(Q[8],i1_abs), - rat_result=caml_call2(Q[40],_ao_,i2_abs), - _ap_=caml_call1(Q[17],rat_result), - match=runtime.ml_z_div_rem(caml_call1(Q[16],rat_result),_ap_), - remainder=match[2], - res=match[1], - _aq_=caml_call1(Q[17],rat_result); - if(runtime.caml_greaterequal(caml_call2(Z[54],2,remainder),_aq_)) - {var _ar_=caml_call2(Z[12],res,1); - return caml_call2(Z[54],_ar_,sign_int)} - return caml_call2(Z[54],res,sign_int)} - function o_mult_dur_int(d,m) - {var _am_=caml_call1(Z[29],m); - return caml_call2(Dates_calc_Dates[16],d,_am_)} - function o_div_int_int(i1,i2) - {if(caml_equal(Z[2],i2))throw Stdlib[13]; - var _ak_=caml_call1(Q[8],i2),_al_=caml_call1(Q[8],i1); - return caml_call2(Q[42],_al_,_ak_)} - function o_div_rat_rat(i1,i2) - {if(caml_equal(Q[2],i2))throw Stdlib[13];return caml_call2(Q[42],i1,i2)} - function o_div_mon_mon(m1,m2) - {if(caml_equal(Z[2],m2))throw Stdlib[13]; - var _ai_=caml_call1(Q[8],m2),_aj_=caml_call1(Q[8],m1); - return caml_call2(Q[42],_aj_,_ai_)} - function o_div_mon_rat(m1,r1) - {if(caml_equal(Q[2],r1))throw Stdlib[13]; - return o_mult_mon_rat(m1,caml_call1(Q[41],r1))} - function o_div_dur_dur(d1,d2) - {try - {var - i2=caml_call1(Dates_calc_Dates[18],d2), - i1=caml_call1(Dates_calc_Dates[18],d1)} - catch(_ah_) - {_ah_ = caml_wrap_exception(_ah_); - if(_ah_ === Dates_calc_Dates[2])throw IndivisibleDurations; - throw _ah_} - return o_div_int_int(i1,i2)} - function o_lt_int_int(i1,i2){return runtime.ml_z_compare(i1,i2) < 0?1:0} - function o_lt_rat_rat(i1,i2){return caml_call2(Q[21],i1,i2) < 0?1:0} - function o_lt_mon_mon(m1,m2){return runtime.ml_z_compare(m1,m2) < 0?1:0} - function o_lt_dur_dur(d1,d2){return compare_periods(d1,d2) < 0?1:0} - function o_lt_dat_dat(d1,d2) - {return caml_call2(Dates_calc_Dates[6],d1,d2) < 0?1:0} - function o_lte_int_int(i1,i2){return runtime.ml_z_compare(i1,i2) <= 0?1:0} - function o_lte_rat_rat(i1,i2){return caml_call2(Q[21],i1,i2) <= 0?1:0} - function o_lte_mon_mon(m1,m2){return runtime.ml_z_compare(m1,m2) <= 0?1:0} - function o_lte_dur_dur(d1,d2){return compare_periods(d1,d2) <= 0?1:0} - function o_lte_dat_dat(d1,d2) - {return caml_call2(Dates_calc_Dates[6],d1,d2) <= 0?1:0} - function o_gt_int_int(i1,i2){return 0 < runtime.ml_z_compare(i1,i2)?1:0} - function o_gt_rat_rat(i1,i2){return 0 < caml_call2(Q[21],i1,i2)?1:0} - function o_gt_mon_mon(m1,m2){return 0 < runtime.ml_z_compare(m1,m2)?1:0} - function o_gt_dur_dur(d1,d2){return 0 < compare_periods(d1,d2)?1:0} - function o_gt_dat_dat(d1,d2) - {return 0 < caml_call2(Dates_calc_Dates[6],d1,d2)?1:0} - function o_gte_int_int(i1,i2){return 0 <= runtime.ml_z_compare(i1,i2)?1:0} - function o_gte_rat_rat(i1,i2){return 0 <= caml_call2(Q[21],i1,i2)?1:0} - function o_gte_mon_mon(m1,m2){return 0 <= runtime.ml_z_compare(m1,m2)?1:0} - function o_gte_dur_dur(d1,d2){return 0 <= compare_periods(d1,d2)?1:0} - function o_gte_dat_dat(d1,d2) - {return 0 <= caml_call2(Dates_calc_Dates[6],d1,d2)?1:0} - function o_eq_int_int(i1,i2){return runtime.ml_z_equal(i1,i2)} - function o_eq_rat_rat(i1,i2){return caml_call2(Q[22],i1,i2)} - function o_eq_mon_mon(m1,m2){return runtime.ml_z_equal(m1,m2)} - function o_eq_dur_dur(d1,d2){return equal_periods(d1,d2)} - function o_eq_dat_dat(d1,d2) - {return 0 === caml_call2(Dates_calc_Dates[6],d1,d2)?1:0} + _bw_ = caml_call3(StringMap[4], var_name$0, [0, v, 0], map$0); + var ctx$4 = [0, _bw_, _bd_, rest$3], ctx$0 = ctx$4; + continue; + } + } + return caml_call1(Stdlib[2], cst_unreachable_due_to_the_is_$0); + } + var switch$0 = 0; + if(is_var_def(name$0)) + switch$0 = 1; + else{ + var + _a2_ = 3 === caml_call1(Stdlib_List[1], name$0) ? 1 : 0, + _a3_ = + _a2_ + ? runtime.caml_string_equal + (cst_output$0, caml_call2(Stdlib_List[7], name$0, 2)) + : _a2_; + if(_a3_) + switch$0 = 1; + else if(rest$3){ + var match$5 = rest$3[1]; + if(0 === match$5[0]){ + var infos$1 = match$5[1]; + if(is_function_call(infos$1)){ + var + raw_events$1 = caml_call1(Stdlib_List[6], ctx$0[3]), + fun_calls = 0, + raw_events = raw_events$1; + for(;;){ + var + _be_ = + take_while + (function(param){return 2 === param[0] ? 1 : 0;}, + raw_events) + [2]; + if(_be_){ + var match$6 = _be_[1]; + if(0 === match$6[0]){ + var infos$2 = match$6[1]; + if(is_function_call(infos$2)){ + var + match$7 = parse_fun_call(raw_events), + fun_call$0 = match$7[2], + raw_events$0 = match$7[1], + fun_calls$0 = [0, fun_call$0, fun_calls], + fun_calls = fun_calls$0, + raw_events = raw_events$0; + continue; + } + } + } + var fun_calls$1 = caml_call1(Stdlib_List[9], fun_calls); + if(raw_events){ + var event$0 = raw_events[1]; + if(2 === event$0[0]) + var + rest$5 = raw_events[2], + value$0 = event$0[2], + name$1 = event$0[1], + var_comp = + [0, [0, [0, pos], name$1, value$0, [0, fun_calls$1]]], + rest$4 = rest$5; + else + var + _bf_ = + (nb_raw_events - caml_call1(Stdlib_List[1], raw_events) | 0) + + 1 + | 0, + _bg_ = caml_call1(Stdlib[33], _bf_), + _bh_ = caml_call2(Stdlib[28], _bg_, cst$14), + _bi_ = caml_call2(Stdlib[28], cst$15, _bh_), + _bj_ = raw_event_to_string(event$0), + _bk_ = caml_call2(Stdlib[28], _bj_, _bi_), + _bl_ = + caml_call2(Stdlib[28], cst_expected_variable_definiti, _bk_), + _bm_ = caml_call2(Stdlib_String[6], cst$16, infos$1), + _bn_ = caml_call2(Stdlib[28], _bm_, _bl_), + _bo_ = + caml_call2(Stdlib[28], cst_Invalid_function_call, _bn_), + _bp_ = caml_call1(Stdlib[2], _bo_), + var_comp = _bp_[2], + rest$4 = _bp_[1]; + } + else + var + _bq_ = caml_call2(Stdlib_String[6], cst$17, infos$1), + _br_ = + caml_call2 + (Stdlib[28], _bq_, cst_expected_variable_definiti$0), + _bs_ = + caml_call2(Stdlib[28], cst_Invalid_function_call$0, _br_), + _bt_ = caml_call1(Stdlib[2], _bs_), + var_comp$0 = _bt_[2], + rest$6 = _bt_[1], + var_comp = var_comp$0, + rest$4 = rest$6; + var + ctx$6 = [0, ctx$0[1], [0, var_comp, ctx$0[2]], rest$4], + ctx$0 = ctx$6; + continue a; + } + } + } + } + } + if(switch$0){ + var + ctx$5 = + [0, + ctx$0[1], + [0, [0, [0, [0, pos], name$0, value, 0]], ctx$0[2]], + rest$3], + ctx$0 = ctx$5; + continue; + } + } + } + } + var + _a8_ = raw_event_to_string(event), + _a9_ = caml_call2(Stdlib[28], cst_Unexpected_event, _a8_); + return caml_call1(Stdlib[2], _a9_); + } + } + function parse_fun_call(events){ + var + match = + take_while + (function(param){ + if(2 !== param[0]) return 0; + var + name = param[1], + _a0_ = 3 === caml_call1(Stdlib_List[1], name) ? 1 : 0; + if(! _a0_) return _a0_; + var _a1_ = caml_call2(Stdlib_List[7], name, 2); + return caml_call2(Stdlib_String[10], cst_input, _a1_); + }, + events), + _aX_ = match[2]; + if(_aX_){ + var match$0 = _aX_[1]; + if(0 === match$0[0]){ + var rest = _aX_[2], infos = match$0[1], inputs = match[1]; + if(is_function_call(infos)){ + var + _aY_ = + function(param){ + if(2 !== param[0]) + throw caml_maybe_attach_backtrace([0, Assert_failure, _ac_], 1); + var value = param[2], name = param[1]; + return [0, 0, name, value, 0]; + }, + fun_inputs = caml_call2(Stdlib_ListLabels[19], _aY_, inputs), + body_ctx = parse_events([0, empty, 0, rest]), + body_rev = caml_call1(Stdlib_List[9], body_ctx[2]), + output = caml_call1(Stdlib_List[5], body_rev), + _aZ_ = caml_call1(Stdlib_List[6], body_rev), + body = caml_call1(Stdlib_List[9], _aZ_), + rest$0 = body_ctx[3]; + if(0 === output[0]) + var var_def = output[1], output$0 = var_def; + else + var output$0 = caml_call1(Stdlib[2], cst_Missing_function_output_va); + return [0, rest$0, [0, infos, fun_inputs, body, output$0]]; + } + } + } + return caml_call1(Stdlib[2], cst_Invalid_start_of_function_); + } + try{var _aW_ = parse_events([0, empty, _Y_, raw_events]), ctx = _aW_;} + catch(exn$0){ + var exn = caml_wrap_exception(exn$0); + if(exn[1] !== Stdlib[7]) throw caml_maybe_attach_backtrace(exn, 0); + var msg = exn[2]; + caml_call2(Stdlib_Printf[3], _ad_, msg); + var ctx = empty_ctx; + } + return ctx[2]; + } + function handle_default(pos, exceptions, just, cons){ + var _aR_ = 0; + function _aS_(acc, except){ + try{var _aU_ = [0, caml_call1(except, 0)], new_val = _aU_;} + catch(_aV_){ + var _aT_ = caml_wrap_exception(_aV_); + if(_aT_ !== EmptyError) throw caml_maybe_attach_backtrace(_aT_, 0); + var new_val = 0; + } + if(! acc) return new_val; + if(new_val) + throw caml_maybe_attach_backtrace([0, ConflictError, pos], 1); + return acc; + } + var except = caml_call3(Stdlib_Array[17], _aS_, _aR_, exceptions); + if(except){var x = except[1]; return x;} + if(caml_call1(just, 0)) return caml_call1(cons, 0); + throw caml_maybe_attach_backtrace(EmptyError, 1); + } + function handle_default_opt(pos, exceptions, just, cons){ + function _aQ_(acc, except){ + if(0 === acc[0]) return except; + if(0 === except[0]) return acc; + throw caml_maybe_attach_backtrace([0, ConflictError, pos], 1); + } + var except = caml_call3(Stdlib_Array[17], _aQ_, _ae_, exceptions); + if(0 !== except[0]) return except; + if(0 === just[0]) return _af_; + var b = just[1]; + return b ? cons : _ag_; + } + function no_input(param){throw caml_maybe_attach_backtrace(EmptyError, 1);} + function compare_periods(p1, p2){ + try{ + var + p1_days = caml_call1(Dates_calc_Dates[18], p1), + p2_days = caml_call1(Dates_calc_Dates[18], p2), + _aO_ = runtime.caml_int_compare(p1_days, p2_days); + return _aO_; + } + catch(_aP_){ + var _aN_ = caml_wrap_exception(_aP_); + if(_aN_ === Dates_calc_Dates[2]) + throw caml_maybe_attach_backtrace(UncomparableDurations, 1); + throw caml_maybe_attach_backtrace(_aN_, 0); + } + } + function o_not(_aM_){return 1 - _aM_;} + function o_length(a){return a.length - 1;} + function o_minus_int(i1){return caml_call2(Z[13], Z[2], i1);} + function o_minus_rat(i1){return caml_call2(Q[39], Q[2], i1);} + function o_minus_mon(m1){return caml_call2(Z[13], Z[2], m1);} + var o_minus_dur = Dates_calc_Dates[13]; + function o_and(_aK_, _aJ_){var _aL_ = _aK_ ? _aJ_ : _aK_; return _aL_;} + function o_or(_aH_, _aG_){var _aI_ = _aH_ || _aG_; return _aI_;} + function o_xor(_aF_, _aE_){return _aF_ !== _aE_ ? 1 : 0;} + var o_eq = caml_equal, o_map = Stdlib_Array[15]; + function o_reduce(f, dft, a){ + var len = a.length - 1; + if(0 === len) return dft; + var r = [0, caml_check_bound(a, 0)[1]], _aB_ = len - 1 | 0, _aA_ = 1; + if(_aB_ >= 1){ + var i = _aA_; + for(;;){ + var _aC_ = caml_check_bound(a, i)[1 + i]; + r[1] = caml_call2(f, r[1], _aC_); + var _aD_ = i + 1 | 0; + if(_aB_ !== i){var i = _aD_; continue;} + break; + } + } + return r[1]; + } + var o_concat = Stdlib_Array[5]; + function o_filter(f, a){ var - o_fold=Stdlib_Array[17], - Oper= + _ay_ = caml_call1(Stdlib_Array[11], a), + _az_ = caml_call2(Stdlib_List[41], f, _ay_); + return caml_call1(Stdlib_Array[12], _az_); + } + function o_add_int_int(i1, i2){return caml_call2(Z[12], i1, i2);} + function o_add_rat_rat(i1, i2){return caml_call2(Q[38], i1, i2);} + function o_add_mon_mon(m1, m2){return caml_call2(Z[12], m1, m2);} + function o_add_dat_dur(r, da, du){ + return caml_call3(Dates_calc_Dates[4], [0, r], da, du); + } + var o_add_dur_dur = Dates_calc_Dates[14]; + function o_sub_int_int(i1, i2){return caml_call2(Z[13], i1, i2);} + function o_sub_rat_rat(i1, i2){return caml_call2(Q[39], i1, i2);} + function o_sub_mon_mon(m1, m2){return caml_call2(Z[13], m1, m2);} + var o_sub_dat_dat = Dates_calc_Dates[5]; + function o_sub_dat_dur(dat, dur){ + var _ax_ = caml_call1(Dates_calc_Dates[13], dur); + return caml_call3(Dates_calc_Dates[4], 0, dat, _ax_); + } + var o_sub_dur_dur = Dates_calc_Dates[15]; + function o_mult_int_int(i1, i2){return caml_call2(Z[14], i1, i2);} + function o_mult_rat_rat(i1, i2){return caml_call2(Q[40], i1, i2);} + function o_mult_mon_rat(i1, i2){ + var + i1_abs = caml_call1(Z[10], i1), + i2_abs = caml_call1(Q[37], i2), + _as_ = caml_call1(Q[20], i2), + sign_int = runtime.caml_mul(runtime.ml_z_sign(i1), _as_), + _at_ = caml_call1(Q[8], i1_abs), + rat_result = caml_call2(Q[40], _at_, i2_abs), + _au_ = caml_call1(Q[17], rat_result), + match = runtime.ml_z_div_rem(caml_call1(Q[16], rat_result), _au_), + remainder = match[2], + res = match[1], + _av_ = caml_call1(Q[17], rat_result); + if(! runtime.caml_greaterequal(caml_call2(Z[54], 2, remainder), _av_)) + return caml_call2(Z[54], res, sign_int); + var _aw_ = caml_call2(Z[12], res, 1); + return caml_call2(Z[54], _aw_, sign_int); + } + function o_mult_dur_int(d, m){ + var _ar_ = caml_call1(Z[29], m); + return caml_call2(Dates_calc_Dates[16], d, _ar_); + } + function o_div_int_int(i1, i2){ + if(caml_equal(Z[2], i2)) throw caml_maybe_attach_backtrace(Stdlib[13], 1); + var _ap_ = caml_call1(Q[8], i2), _aq_ = caml_call1(Q[8], i1); + return caml_call2(Q[42], _aq_, _ap_); + } + function o_div_rat_rat(i1, i2){ + if(caml_equal(Q[2], i2)) throw caml_maybe_attach_backtrace(Stdlib[13], 1); + return caml_call2(Q[42], i1, i2); + } + function o_div_mon_mon(m1, m2){ + if(caml_equal(Z[2], m2)) throw caml_maybe_attach_backtrace(Stdlib[13], 1); + var _an_ = caml_call1(Q[8], m2), _ao_ = caml_call1(Q[8], m1); + return caml_call2(Q[42], _ao_, _an_); + } + function o_div_mon_rat(m1, r1){ + if(caml_equal(Q[2], r1)) throw caml_maybe_attach_backtrace(Stdlib[13], 1); + return o_mult_mon_rat(m1, caml_call1(Q[41], r1)); + } + function o_div_dur_dur(d1, d2){ + try{ + var + i2 = caml_call1(Dates_calc_Dates[18], d2), + i1 = caml_call1(Dates_calc_Dates[18], d1); + } + catch(_am_){ + var _al_ = caml_wrap_exception(_am_); + if(_al_ === Dates_calc_Dates[2]) + throw caml_maybe_attach_backtrace(IndivisibleDurations, 1); + throw caml_maybe_attach_backtrace(_al_, 0); + } + return o_div_int_int(i1, i2); + } + function o_lt_int_int(i1, i2){ + return runtime.ml_z_compare(i1, i2) < 0 ? 1 : 0; + } + function o_lt_rat_rat(i1, i2){ + return caml_call2(Q[21], i1, i2) < 0 ? 1 : 0; + } + function o_lt_mon_mon(m1, m2){ + return runtime.ml_z_compare(m1, m2) < 0 ? 1 : 0; + } + function o_lt_dur_dur(d1, d2){return compare_periods(d1, d2) < 0 ? 1 : 0;} + function o_lt_dat_dat(d1, d2){ + return caml_call2(Dates_calc_Dates[6], d1, d2) < 0 ? 1 : 0; + } + function o_lte_int_int(i1, i2){ + return runtime.ml_z_compare(i1, i2) <= 0 ? 1 : 0; + } + function o_lte_rat_rat(i1, i2){ + return caml_call2(Q[21], i1, i2) <= 0 ? 1 : 0; + } + function o_lte_mon_mon(m1, m2){ + return runtime.ml_z_compare(m1, m2) <= 0 ? 1 : 0; + } + function o_lte_dur_dur(d1, d2){ + return compare_periods(d1, d2) <= 0 ? 1 : 0; + } + function o_lte_dat_dat(d1, d2){ + return caml_call2(Dates_calc_Dates[6], d1, d2) <= 0 ? 1 : 0; + } + function o_gt_int_int(i1, i2){ + return 0 < runtime.ml_z_compare(i1, i2) ? 1 : 0; + } + function o_gt_rat_rat(i1, i2){ + return 0 < caml_call2(Q[21], i1, i2) ? 1 : 0; + } + function o_gt_mon_mon(m1, m2){ + return 0 < runtime.ml_z_compare(m1, m2) ? 1 : 0; + } + function o_gt_dur_dur(d1, d2){return 0 < compare_periods(d1, d2) ? 1 : 0;} + function o_gt_dat_dat(d1, d2){ + return 0 < caml_call2(Dates_calc_Dates[6], d1, d2) ? 1 : 0; + } + function o_gte_int_int(i1, i2){ + return 0 <= runtime.ml_z_compare(i1, i2) ? 1 : 0; + } + function o_gte_rat_rat(i1, i2){ + return 0 <= caml_call2(Q[21], i1, i2) ? 1 : 0; + } + function o_gte_mon_mon(m1, m2){ + return 0 <= runtime.ml_z_compare(m1, m2) ? 1 : 0; + } + function o_gte_dur_dur(d1, d2){ + return 0 <= compare_periods(d1, d2) ? 1 : 0; + } + function o_gte_dat_dat(d1, d2){ + return 0 <= caml_call2(Dates_calc_Dates[6], d1, d2) ? 1 : 0; + } + function o_eq_int_int(i1, i2){return runtime.ml_z_equal(i1, i2);} + function o_eq_rat_rat(i1, i2){return caml_call2(Q[22], i1, i2);} + function o_eq_mon_mon(m1, m2){return runtime.ml_z_equal(m1, m2);} + function o_eq_dur_dur(d1, d2){ + try{ + var + _ai_ = caml_call2(Dates_calc_Dates[15], d1, d2), + _aj_ = 0 === caml_call1(Dates_calc_Dates[18], _ai_) ? 1 : 0; + return _aj_; + } + catch(_ak_){ + var _ah_ = caml_wrap_exception(_ak_); + if(_ah_ === Dates_calc_Dates[2]) + throw caml_maybe_attach_backtrace(UncomparableDurations, 1); + throw caml_maybe_attach_backtrace(_ah_, 0); + } + } + function o_eq_dat_dat(d1, d2){ + return 0 === caml_call2(Dates_calc_Dates[6], d1, d2) ? 1 : 0; + } + var + o_fold = Stdlib_Array[17], + Oper = [0, o_not, o_length, @@ -45104,77 +44525,77 @@ o_eq_dur_dur, o_eq_dat_dat, o_fold], - o_not$0=Oper[1], - o_length$0=Oper[2], - o_torat_int=Oper[3], - o_torat_mon=Oper[4], - o_tomoney_rat=Oper[5], - o_getDay=Oper[6], - o_getMonth=Oper[7], - o_getYear=Oper[8], - o_firstDayOfMonth=Oper[9], - o_lastDayOfMonth=Oper[10], - o_round_mon=Oper[11], - o_round_rat=Oper[12], - o_minus_int$0=Oper[13], - o_minus_rat$0=Oper[14], - o_minus_mon$0=Oper[15], - o_minus_dur$0=Oper[16], - o_and$0=Oper[17], - o_or$0=Oper[18], - o_xor$0=Oper[19], - o_eq$0=Oper[20], - o_map$0=Oper[21], - o_reduce$0=Oper[22], - o_concat$0=Oper[23], - o_filter$0=Oper[24], - o_add_int_int$0=Oper[25], - o_add_rat_rat$0=Oper[26], - o_add_mon_mon$0=Oper[27], - o_add_dat_dur$0=Oper[28], - o_add_dur_dur$0=Oper[29], - o_sub_int_int$0=Oper[30], - o_sub_rat_rat$0=Oper[31], - o_sub_mon_mon$0=Oper[32], - o_sub_dat_dat$0=Oper[33], - o_sub_dat_dur$0=Oper[34], - o_sub_dur_dur$0=Oper[35], - o_mult_int_int$0=Oper[36], - o_mult_rat_rat$0=Oper[37], - o_mult_mon_rat$0=Oper[38], - o_mult_dur_int$0=Oper[39], - o_div_int_int$0=Oper[40], - o_div_rat_rat$0=Oper[41], - o_div_mon_mon$0=Oper[42], - o_div_mon_rat$0=Oper[43], - o_div_dur_dur$0=Oper[44], - o_lt_int_int$0=Oper[45], - o_lt_rat_rat$0=Oper[46], - o_lt_mon_mon$0=Oper[47], - o_lt_dur_dur$0=Oper[48], - o_lt_dat_dat$0=Oper[49], - o_lte_int_int$0=Oper[50], - o_lte_rat_rat$0=Oper[51], - o_lte_mon_mon$0=Oper[52], - o_lte_dur_dur$0=Oper[53], - o_lte_dat_dat$0=Oper[54], - o_gt_int_int$0=Oper[55], - o_gt_rat_rat$0=Oper[56], - o_gt_mon_mon$0=Oper[57], - o_gt_dur_dur$0=Oper[58], - o_gt_dat_dat$0=Oper[59], - o_gte_int_int$0=Oper[60], - o_gte_rat_rat$0=Oper[61], - o_gte_mon_mon$0=Oper[62], - o_gte_dur_dur$0=Oper[63], - o_gte_dat_dat$0=Oper[64], - o_eq_int_int$0=Oper[65], - o_eq_rat_rat$0=Oper[66], - o_eq_mon_mon$0=Oper[67], - o_eq_dur_dur$0=Oper[68], - o_eq_dat_dat$0=Oper[69], - o_fold$0=Oper[70], - Runtime_ocaml_Runtime= + o_not$0 = Oper[1], + o_length$0 = Oper[2], + o_torat_int = Oper[3], + o_torat_mon = Oper[4], + o_tomoney_rat = Oper[5], + o_getDay = Oper[6], + o_getMonth = Oper[7], + o_getYear = Oper[8], + o_firstDayOfMonth = Oper[9], + o_lastDayOfMonth = Oper[10], + o_round_mon = Oper[11], + o_round_rat = Oper[12], + o_minus_int$0 = Oper[13], + o_minus_rat$0 = Oper[14], + o_minus_mon$0 = Oper[15], + o_minus_dur$0 = Oper[16], + o_and$0 = Oper[17], + o_or$0 = Oper[18], + o_xor$0 = Oper[19], + o_eq$0 = Oper[20], + o_map$0 = Oper[21], + o_reduce$0 = Oper[22], + o_concat$0 = Oper[23], + o_filter$0 = Oper[24], + o_add_int_int$0 = Oper[25], + o_add_rat_rat$0 = Oper[26], + o_add_mon_mon$0 = Oper[27], + o_add_dat_dur$0 = Oper[28], + o_add_dur_dur$0 = Oper[29], + o_sub_int_int$0 = Oper[30], + o_sub_rat_rat$0 = Oper[31], + o_sub_mon_mon$0 = Oper[32], + o_sub_dat_dat$0 = Oper[33], + o_sub_dat_dur$0 = Oper[34], + o_sub_dur_dur$0 = Oper[35], + o_mult_int_int$0 = Oper[36], + o_mult_rat_rat$0 = Oper[37], + o_mult_mon_rat$0 = Oper[38], + o_mult_dur_int$0 = Oper[39], + o_div_int_int$0 = Oper[40], + o_div_rat_rat$0 = Oper[41], + o_div_mon_mon$0 = Oper[42], + o_div_mon_rat$0 = Oper[43], + o_div_dur_dur$0 = Oper[44], + o_lt_int_int$0 = Oper[45], + o_lt_rat_rat$0 = Oper[46], + o_lt_mon_mon$0 = Oper[47], + o_lt_dur_dur$0 = Oper[48], + o_lt_dat_dat$0 = Oper[49], + o_lte_int_int$0 = Oper[50], + o_lte_rat_rat$0 = Oper[51], + o_lte_mon_mon$0 = Oper[52], + o_lte_dur_dur$0 = Oper[53], + o_lte_dat_dat$0 = Oper[54], + o_gt_int_int$0 = Oper[55], + o_gt_rat_rat$0 = Oper[56], + o_gt_mon_mon$0 = Oper[57], + o_gt_dur_dur$0 = Oper[58], + o_gt_dat_dat$0 = Oper[59], + o_gte_int_int$0 = Oper[60], + o_gte_rat_rat$0 = Oper[61], + o_gte_mon_mon$0 = Oper[62], + o_gte_dur_dur$0 = Oper[63], + o_gte_dat_dat$0 = Oper[64], + o_eq_int_int$0 = Oper[65], + o_eq_rat_rat$0 = Oper[66], + o_eq_mon_mon$0 = Oper[67], + o_eq_dur_dur$0 = Oper[68], + o_eq_dat_dat$0 = Oper[69], + o_fold$0 = Oper[70], + Runtime_ocaml_Runtime = [0, yojson_of_source_position, EmptyError, @@ -45199,7 +44620,7 @@ yojson_of_var_def, yojson_of_fun_call, retrieve_log, - [0,parse_raw_events], + [0, parse_raw_events], reset_log, log_begin_call, log_end_call, @@ -45312,1630 +44733,159 @@ o_eq_dur_dur$0, o_eq_dat_dat$0, o_fold$0]; - caml_register_global(131,Runtime_ocaml_Runtime,"Runtime_ocaml__Runtime"); - return} + runtime.caml_register_global + (130, Runtime_ocaml_Runtime, "Runtime_ocaml__Runtime"); + return; + } (globalThis)); -//# 1 "../../.js/js_of_ocaml-compiler.runtime/jsoo_runtime.cma.js" -(function(globalThis) - {"use strict"; - var - runtime=globalThis.jsoo_runtime, - caml_exn_with_js_backtrace=runtime.caml_exn_with_js_backtrace, - caml_register_global=runtime.caml_register_global, - caml_string_of_jsbytes=runtime.caml_string_of_jsbytes; - function caml_call2(f,a0,a1) - {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} - var - global_data=runtime.caml_get_global_data(), - version=caml_string_of_jsbytes("4.1.0"), - git_version=caml_string_of_jsbytes(""), - cst_Jsoo_runtime_Error_Exn= - caml_string_of_jsbytes("Jsoo_runtime.Error.Exn"), - cst_jsError=caml_string_of_jsbytes("jsError"), - Stdlib_Callback=global_data.Stdlib__Callback, - Jsoo_runtime=[0]; - caml_register_global(5,Jsoo_runtime,"Jsoo_runtime__"); - var Jsoo_runtime_Runtime_version=[0,version,git_version]; - caml_register_global - (6,Jsoo_runtime_Runtime_version,"Jsoo_runtime__Runtime_version"); - var - Js=[0], - Sys=[0,version,git_version], - Exn=[248,cst_Jsoo_runtime_Error_Exn,runtime.caml_fresh_oo_id(0)]; - caml_call2(Stdlib_Callback[2],cst_jsError,[0,Exn,[0]]); - function raise(exn){throw exn} - var - Error= +//# 1 "../../.js/default/js_of_ocaml-compiler.runtime/jsoo_runtime.cma.js" +// Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 + +//# 18 "../../.js/default/js_of_ocaml-compiler.runtime/jsoo_runtime.cma.js" +(function(globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + s = "5.1.1", + git_version = "", + Jsoo_runtime_Runtime_version = [0, s, git_version]; + runtime.caml_register_global + (2, Jsoo_runtime_Runtime_version, "Jsoo_runtime__Runtime_version"); + return; + } + (globalThis)); + +//# 33 "../../.js/default/js_of_ocaml-compiler.runtime/jsoo_runtime.cma.js" +(function + (globalThis){ + "use strict"; + var runtime = globalThis.jsoo_runtime; + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + var + global_data = runtime.caml_get_global_data(), + Jsoo_runtime_Runtime_version = global_data.Jsoo_runtime__Runtime_version, + Stdlib_Callback = global_data.Stdlib__Callback, + Js = [0], + Config = [0], + version = Jsoo_runtime_Runtime_version[1], + git_version = Jsoo_runtime_Runtime_version[2], + Sys = [0, Config, version, git_version], + Exn = [248, "Jsoo_runtime.Error.Exn", runtime.caml_fresh_oo_id(0)]; + caml_call2(Stdlib_Callback[2], "jsError", [0, Exn, [0]]); + function raise(exn){throw exn;} + var + Error = [0, raise, - caml_exn_with_js_backtrace, + runtime.caml_exn_with_js_backtrace, runtime.caml_js_error_option_of_exception, Exn], - For_compatibility_only=[0], - Bigstring=[0], - Typed_array=[0,Bigstring], - Int64=[0], - Jsoo_runtime$0=[0,Js,Sys,Error,For_compatibility_only,Typed_array,Int64]; - caml_register_global(8,Jsoo_runtime$0,"Jsoo_runtime"); - return} + For_compatibility_only = [0], + Bigstring = [0], + Typed_array = [0, Bigstring], + Int64 = [0], + Jsoo_runtime = + [0, Js, Sys, Error, For_compatibility_only, Typed_array, Int64]; + runtime.caml_register_global(5, Jsoo_runtime, "Jsoo_runtime"); + return; + } (globalThis)); -//# 1 "../../.js/js_of_ocaml/js_of_ocaml.cma.js" -(function(globalThis) - {"use strict"; - var - jsoo_exports=typeof module === "object" && module.exports || globalThis, - runtime=globalThis.jsoo_runtime, - caml_float_of_string=runtime.caml_float_of_string, - caml_fresh_oo_id=runtime.caml_fresh_oo_id, - caml_int_of_string=runtime.caml_int_of_string, - caml_js_from_array=runtime.caml_js_from_array, - caml_js_get=runtime.caml_js_get, - caml_js_html_escape=runtime.caml_js_html_escape, - caml_js_set=runtime.caml_js_set, - caml_js_wrap_callback=runtime.caml_js_wrap_callback, - caml_js_wrap_meth_callback=runtime.caml_js_wrap_meth_callback, - caml_jsbytes_of_string=runtime.caml_jsbytes_of_string, - caml_jsstring_of_string=runtime.caml_jsstring_of_string, - caml_list_of_js_array=runtime.caml_list_of_js_array, - caml_ml_string_length=runtime.caml_ml_string_length, - caml_register_global=runtime.caml_register_global, - caml_string_compare=runtime.caml_string_compare, - caml_string_notequal=runtime.caml_string_notequal, - caml_string_of_array=runtime.caml_string_of_array, - caml_string_of_jsbytes=runtime.caml_string_of_jsbytes, - caml_string_of_jsstring=runtime.caml_string_of_jsstring, - caml_wrap_exception=runtime.caml_wrap_exception; - function caml_call1(f,a0) - {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} - function caml_call2(f,a0,a1) - {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} - function caml_call3(f,a0,a1,a2) - {return f.length == 3?f(a0,a1,a2):runtime.caml_call_gen(f,[a0,a1,a2])} - function caml_call4(f,a0,a1,a2,a3) - {return f.length == 4 - ?f(a0,a1,a2,a3) - :runtime.caml_call_gen(f,[a0,a1,a2,a3])} - function caml_call5(f,a0,a1,a2,a3,a4) - {return f.length == 5 - ?f(a0,a1,a2,a3,a4) - :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4])} - var - global_data=runtime.caml_get_global_data(), - cst_parseFloat=caml_string_of_jsbytes("parseFloat"), - cst_parseInt=caml_string_of_jsbytes("parseInt"), - cst_can_t_retrieve_file_name_n= - caml_string_of_jsbytes("can't retrieve file name: not implemented"), - cst_endings=caml_string_of_jsbytes("endings"), - cst_type=caml_string_of_jsbytes("type"), - cst_loadstart=caml_string_of_jsbytes("loadstart"), - cst_progress=caml_string_of_jsbytes("progress"), - cst_abort=caml_string_of_jsbytes("abort"), - cst_error=caml_string_of_jsbytes("error"), - cst_load=caml_string_of_jsbytes("load"), - cst_loadend=caml_string_of_jsbytes("loadend"), - cst_a$1=caml_string_of_jsbytes("a"), - cst_area$1=caml_string_of_jsbytes("area"), - cst_audio$1=caml_string_of_jsbytes("audio"), - cst_base$1=caml_string_of_jsbytes("base"), - cst_blockquote$1=caml_string_of_jsbytes("blockquote"), - cst_body$1=caml_string_of_jsbytes("body"), - cst_br$1=caml_string_of_jsbytes("br"), - cst_button$1=caml_string_of_jsbytes("button"), - cst_canvas$1=caml_string_of_jsbytes("canvas"), - cst_caption$1=caml_string_of_jsbytes("caption"), - cst_col$1=caml_string_of_jsbytes("col"), - cst_colgroup$1=caml_string_of_jsbytes("colgroup"), - cst_del$1=caml_string_of_jsbytes("del"), - cst_div$1=caml_string_of_jsbytes("div"), - cst_dl$1=caml_string_of_jsbytes("dl"), - cst_embed$1=caml_string_of_jsbytes("embed"), - cst_fieldset$1=caml_string_of_jsbytes("fieldset"), - cst_form$1=caml_string_of_jsbytes("form"), - cst_frame$1=caml_string_of_jsbytes("frame"), - cst_frameset$1=caml_string_of_jsbytes("frameset"), - cst_h1$1=caml_string_of_jsbytes("h1"), - cst_h2$1=caml_string_of_jsbytes("h2"), - cst_h3$1=caml_string_of_jsbytes("h3"), - cst_h4$1=caml_string_of_jsbytes("h4"), - cst_h5$1=caml_string_of_jsbytes("h5"), - cst_h6$1=caml_string_of_jsbytes("h6"), - cst_head$1=caml_string_of_jsbytes("head"), - cst_hr$1=caml_string_of_jsbytes("hr"), - cst_html$1=caml_string_of_jsbytes("html"), - cst_iframe$1=caml_string_of_jsbytes("iframe"), - cst_img$1=caml_string_of_jsbytes("img"), - cst_input$2=caml_string_of_jsbytes("input"), - cst_ins$1=caml_string_of_jsbytes("ins"), - cst_label$1=caml_string_of_jsbytes("label"), - cst_legend$1=caml_string_of_jsbytes("legend"), - cst_li$1=caml_string_of_jsbytes("li"), - cst_link$1=caml_string_of_jsbytes("link"), - cst_map$1=caml_string_of_jsbytes("map"), - cst_meta$1=caml_string_of_jsbytes("meta"), - cst_object$1=caml_string_of_jsbytes("object"), - cst_ol$1=caml_string_of_jsbytes("ol"), - cst_optgroup$1=caml_string_of_jsbytes("optgroup"), - cst_option$1=caml_string_of_jsbytes("option"), - cst_p$1=caml_string_of_jsbytes("p"), - cst_param$1=caml_string_of_jsbytes("param"), - cst_pre$1=caml_string_of_jsbytes("pre"), - cst_q$1=caml_string_of_jsbytes("q"), - cst_script$1=caml_string_of_jsbytes("script"), - cst_select$2=caml_string_of_jsbytes("select"), - cst_style$1=caml_string_of_jsbytes("style"), - cst_table$1=caml_string_of_jsbytes("table"), - cst_tbody$1=caml_string_of_jsbytes("tbody"), - cst_td$1=caml_string_of_jsbytes("td"), - cst_textarea$1=caml_string_of_jsbytes("textarea"), - cst_tfoot$1=caml_string_of_jsbytes("tfoot"), - cst_th$1=caml_string_of_jsbytes("th"), - cst_thead$1=caml_string_of_jsbytes("thead"), - cst_title$1=caml_string_of_jsbytes("title"), - cst_tr$1=caml_string_of_jsbytes("tr"), - cst_ul$1=caml_string_of_jsbytes("ul"), - cst_video$1=caml_string_of_jsbytes("video"), - cst_KeyH=caml_string_of_jsbytes("KeyH"), - cst_Digit6=caml_string_of_jsbytes("Digit6"), - cst_BrowserRefresh=caml_string_of_jsbytes("BrowserRefresh"), - cst_Backslash=caml_string_of_jsbytes("Backslash"), - cst_AltLeft=caml_string_of_jsbytes("AltLeft"), - cst_AltRight=caml_string_of_jsbytes("AltRight"), - cst_ArrowDown=caml_string_of_jsbytes("ArrowDown"), - cst_ArrowLeft=caml_string_of_jsbytes("ArrowLeft"), - cst_ArrowRight=caml_string_of_jsbytes("ArrowRight"), - cst_ArrowUp=caml_string_of_jsbytes("ArrowUp"), - cst_Backquote=caml_string_of_jsbytes("Backquote"), - cst_Backspace=caml_string_of_jsbytes("Backspace"), - cst_BracketLeft=caml_string_of_jsbytes("BracketLeft"), - cst_BracketRight=caml_string_of_jsbytes("BracketRight"), - cst_BrowserBack=caml_string_of_jsbytes("BrowserBack"), - cst_BrowserFavorites=caml_string_of_jsbytes("BrowserFavorites"), - cst_BrowserForward=caml_string_of_jsbytes("BrowserForward"), - cst_BrowserHome=caml_string_of_jsbytes("BrowserHome"), - cst_Delete=caml_string_of_jsbytes("Delete"), - cst_BrowserSearch=caml_string_of_jsbytes("BrowserSearch"), - cst_BrowserStop=caml_string_of_jsbytes("BrowserStop"), - cst_CapsLock=caml_string_of_jsbytes("CapsLock"), - cst_Comma=caml_string_of_jsbytes("Comma"), - cst_ContextMenu=caml_string_of_jsbytes("ContextMenu"), - cst_ControlLeft=caml_string_of_jsbytes("ControlLeft"), - cst_ControlRight=caml_string_of_jsbytes("ControlRight"), - cst_Digit0=caml_string_of_jsbytes("Digit0"), - cst_Digit1=caml_string_of_jsbytes("Digit1"), - cst_Digit2=caml_string_of_jsbytes("Digit2"), - cst_Digit3=caml_string_of_jsbytes("Digit3"), - cst_Digit4=caml_string_of_jsbytes("Digit4"), - cst_Digit5=caml_string_of_jsbytes("Digit5"), - cst_F6=caml_string_of_jsbytes("F6"), - cst_F1=caml_string_of_jsbytes("F1"), - cst_Digit7=caml_string_of_jsbytes("Digit7"), - cst_Digit8=caml_string_of_jsbytes("Digit8"), - cst_Digit9=caml_string_of_jsbytes("Digit9"), - cst_End=caml_string_of_jsbytes("End"), - cst_Enter=caml_string_of_jsbytes("Enter"), - cst_Equal=caml_string_of_jsbytes("Equal"), - cst_Escape=caml_string_of_jsbytes("Escape"), - cst_F10=caml_string_of_jsbytes("F10"), - cst_F11=caml_string_of_jsbytes("F11"), - cst_F12=caml_string_of_jsbytes("F12"), - cst_F2=caml_string_of_jsbytes("F2"), - cst_F3=caml_string_of_jsbytes("F3"), - cst_F4=caml_string_of_jsbytes("F4"), - cst_F5=caml_string_of_jsbytes("F5"), - cst_KeyA=caml_string_of_jsbytes("KeyA"), - cst_F7=caml_string_of_jsbytes("F7"), - cst_F8=caml_string_of_jsbytes("F8"), - cst_F9=caml_string_of_jsbytes("F9"), - cst_Home=caml_string_of_jsbytes("Home"), - cst_Insert=caml_string_of_jsbytes("Insert"), - cst_IntlBackslash=caml_string_of_jsbytes("IntlBackslash"), - cst_IntlYen=caml_string_of_jsbytes("IntlYen"), - cst_KeyB=caml_string_of_jsbytes("KeyB"), - cst_KeyC=caml_string_of_jsbytes("KeyC"), - cst_KeyD=caml_string_of_jsbytes("KeyD"), - cst_KeyE=caml_string_of_jsbytes("KeyE"), - cst_KeyF=caml_string_of_jsbytes("KeyF"), - cst_KeyG=caml_string_of_jsbytes("KeyG"), - cst_Numpad4=caml_string_of_jsbytes("Numpad4"), - cst_KeyX=caml_string_of_jsbytes("KeyX"), - cst_KeyP=caml_string_of_jsbytes("KeyP"), - cst_KeyI=caml_string_of_jsbytes("KeyI"), - cst_KeyJ=caml_string_of_jsbytes("KeyJ"), - cst_KeyK=caml_string_of_jsbytes("KeyK"), - cst_KeyL=caml_string_of_jsbytes("KeyL"), - cst_KeyM=caml_string_of_jsbytes("KeyM"), - cst_KeyN=caml_string_of_jsbytes("KeyN"), - cst_KeyO=caml_string_of_jsbytes("KeyO"), - cst_KeyQ=caml_string_of_jsbytes("KeyQ"), - cst_KeyR=caml_string_of_jsbytes("KeyR"), - cst_KeyS=caml_string_of_jsbytes("KeyS"), - cst_KeyT=caml_string_of_jsbytes("KeyT"), - cst_KeyU=caml_string_of_jsbytes("KeyU"), - cst_KeyV=caml_string_of_jsbytes("KeyV"), - cst_KeyW=caml_string_of_jsbytes("KeyW"), - cst_MetaRight=caml_string_of_jsbytes("MetaRight"), - cst_KeyY=caml_string_of_jsbytes("KeyY"), - cst_KeyZ=caml_string_of_jsbytes("KeyZ"), - cst_MediaPlayPause=caml_string_of_jsbytes("MediaPlayPause"), - cst_MediaStop=caml_string_of_jsbytes("MediaStop"), - cst_MediaTrackNext=caml_string_of_jsbytes("MediaTrackNext"), - cst_MediaTrackPrevious=caml_string_of_jsbytes("MediaTrackPrevious"), - cst_MetaLeft=caml_string_of_jsbytes("MetaLeft"), - cst_Minus=caml_string_of_jsbytes("Minus"), - cst_NumLock=caml_string_of_jsbytes("NumLock"), - cst_Numpad0=caml_string_of_jsbytes("Numpad0"), - cst_Numpad1=caml_string_of_jsbytes("Numpad1"), - cst_Numpad2=caml_string_of_jsbytes("Numpad2"), - cst_Numpad3=caml_string_of_jsbytes("Numpad3"), - cst_PageUp=caml_string_of_jsbytes("PageUp"), - cst_NumpadDivide=caml_string_of_jsbytes("NumpadDivide"), - cst_Numpad5=caml_string_of_jsbytes("Numpad5"), - cst_Numpad6=caml_string_of_jsbytes("Numpad6"), - cst_Numpad7=caml_string_of_jsbytes("Numpad7"), - cst_Numpad8=caml_string_of_jsbytes("Numpad8"), - cst_Numpad9=caml_string_of_jsbytes("Numpad9"), - cst_NumpadAdd=caml_string_of_jsbytes("NumpadAdd"), - cst_NumpadDecimal=caml_string_of_jsbytes("NumpadDecimal"), - cst_NumpadEnter=caml_string_of_jsbytes("NumpadEnter"), - cst_NumpadEqual=caml_string_of_jsbytes("NumpadEqual"), - cst_NumpadMultiply=caml_string_of_jsbytes("NumpadMultiply"), - cst_NumpadSubtract=caml_string_of_jsbytes("NumpadSubtract"), - cst_OSLeft=caml_string_of_jsbytes("OSLeft"), - cst_OSRight=caml_string_of_jsbytes("OSRight"), - cst_PageDown=caml_string_of_jsbytes("PageDown"), - cst_ShiftRight=caml_string_of_jsbytes("ShiftRight"), - cst_Pause=caml_string_of_jsbytes("Pause"), - cst_Period=caml_string_of_jsbytes("Period"), - cst_PrintScreen=caml_string_of_jsbytes("PrintScreen"), - cst_Quote=caml_string_of_jsbytes("Quote"), - cst_ScrollLock=caml_string_of_jsbytes("ScrollLock"), - cst_Semicolon=caml_string_of_jsbytes("Semicolon"), - cst_ShiftLeft=caml_string_of_jsbytes("ShiftLeft"), - cst_Slash=caml_string_of_jsbytes("Slash"), - cst_Space=caml_string_of_jsbytes("Space"), - cst_Tab=caml_string_of_jsbytes("Tab"), - cst_VolumeDown=caml_string_of_jsbytes("VolumeDown"), - cst_VolumeMute=caml_string_of_jsbytes("VolumeMute"), - cst_VolumeUp=caml_string_of_jsbytes("VolumeUp"), - cst_mouseout$0=caml_string_of_jsbytes("mouseout"), - cst_mouseover$0=caml_string_of_jsbytes("mouseover"), - cst_video$0=caml_string_of_jsbytes("video"), - cst_audio$0=caml_string_of_jsbytes("audio"), - cst_ul$0=caml_string_of_jsbytes("ul"), - cst_tr$0=caml_string_of_jsbytes("tr"), - cst_title$0=caml_string_of_jsbytes("title"), - cst_thead$0=caml_string_of_jsbytes("thead"), - cst_th$0=caml_string_of_jsbytes("th"), - cst_tfoot$0=caml_string_of_jsbytes("tfoot"), - cst_textarea$0=caml_string_of_jsbytes("textarea"), - cst_td$0=caml_string_of_jsbytes("td"), - cst_tbody$0=caml_string_of_jsbytes("tbody"), - cst_table$0=caml_string_of_jsbytes("table"), - cst_style$0=caml_string_of_jsbytes("style"), - cst_select$1=caml_string_of_jsbytes("select"), - cst_script$0=caml_string_of_jsbytes("script"), - cst_q$0=caml_string_of_jsbytes("q"), - cst_pre$0=caml_string_of_jsbytes("pre"), - cst_param$0=caml_string_of_jsbytes("param"), - cst_p$0=caml_string_of_jsbytes("p"), - cst_option$0=caml_string_of_jsbytes("option"), - cst_optgroup$0=caml_string_of_jsbytes("optgroup"), - cst_ol$0=caml_string_of_jsbytes("ol"), - cst_object$0=caml_string_of_jsbytes("object"), - cst_meta$0=caml_string_of_jsbytes("meta"), - cst_map$0=caml_string_of_jsbytes("map"), - cst_link$0=caml_string_of_jsbytes("link"), - cst_li$0=caml_string_of_jsbytes("li"), - cst_legend$0=caml_string_of_jsbytes("legend"), - cst_label$0=caml_string_of_jsbytes("label"), - cst_ins$0=caml_string_of_jsbytes("ins"), - cst_input$1=caml_string_of_jsbytes("input"), - cst_img$0=caml_string_of_jsbytes("img"), - cst_iframe$0=caml_string_of_jsbytes("iframe"), - cst_html$0=caml_string_of_jsbytes("html"), - cst_hr$0=caml_string_of_jsbytes("hr"), - cst_head$0=caml_string_of_jsbytes("head"), - cst_h6$0=caml_string_of_jsbytes("h6"), - cst_h5$0=caml_string_of_jsbytes("h5"), - cst_h4$0=caml_string_of_jsbytes("h4"), - cst_h3$0=caml_string_of_jsbytes("h3"), - cst_h2$0=caml_string_of_jsbytes("h2"), - cst_h1$0=caml_string_of_jsbytes("h1"), - cst_frame$0=caml_string_of_jsbytes("frame"), - cst_frameset$0=caml_string_of_jsbytes("frameset"), - cst_form$0=caml_string_of_jsbytes("form"), - cst_embed$0=caml_string_of_jsbytes("embed"), - cst_fieldset$0=caml_string_of_jsbytes("fieldset"), - cst_dl$0=caml_string_of_jsbytes("dl"), - cst_div$0=caml_string_of_jsbytes("div"), - cst_del$0=caml_string_of_jsbytes("del"), - cst_colgroup$0=caml_string_of_jsbytes("colgroup"), - cst_col$0=caml_string_of_jsbytes("col"), - cst_caption$0=caml_string_of_jsbytes("caption"), - cst_canvas$0=caml_string_of_jsbytes("canvas"), - cst_button$0=caml_string_of_jsbytes("button"), - cst_br$0=caml_string_of_jsbytes("br"), - cst_body$0=caml_string_of_jsbytes("body"), - cst_blockquote$0=caml_string_of_jsbytes("blockquote"), - cst_base$0=caml_string_of_jsbytes("base"), - cst_area$0=caml_string_of_jsbytes("area"), - cst_a$0=caml_string_of_jsbytes("a"), - cst_canvas=caml_string_of_jsbytes("canvas"), - cst_video=caml_string_of_jsbytes("video"), - cst_audio=caml_string_of_jsbytes("audio"), - cst_iframe=caml_string_of_jsbytes("iframe"), - cst_frame=caml_string_of_jsbytes("frame"), - cst_frameset=caml_string_of_jsbytes("frameset"), - cst_address=caml_string_of_jsbytes("address"), - cst_noscript=caml_string_of_jsbytes("noscript"), - cst_dt=caml_string_of_jsbytes("dt"), - cst_dd=caml_string_of_jsbytes("dd"), - cst_abbr=caml_string_of_jsbytes("abbr"), - cst_var=caml_string_of_jsbytes("var"), - cst_kbd=caml_string_of_jsbytes("kbd"), - cst_samp=caml_string_of_jsbytes("samp"), - cst_code=caml_string_of_jsbytes("code"), - cst_dfn=caml_string_of_jsbytes("dfn"), - cst_cite=caml_string_of_jsbytes("cite"), - cst_strong=caml_string_of_jsbytes("strong"), - cst_em=caml_string_of_jsbytes("em"), - cst_small=caml_string_of_jsbytes("small"), - cst_big=caml_string_of_jsbytes("big"), - cst_b=caml_string_of_jsbytes("b"), - cst_i=caml_string_of_jsbytes("i"), - cst_tt=caml_string_of_jsbytes("tt"), - cst_span=caml_string_of_jsbytes("span"), - cst_sup=caml_string_of_jsbytes("sup"), - cst_sub=caml_string_of_jsbytes("sub"), - cst_td=caml_string_of_jsbytes("td"), - cst_th=caml_string_of_jsbytes("th"), - cst_tr=caml_string_of_jsbytes("tr"), - cst_tbody=caml_string_of_jsbytes("tbody"), - cst_tfoot=caml_string_of_jsbytes("tfoot"), - cst_thead=caml_string_of_jsbytes("thead"), - cst_colgroup=caml_string_of_jsbytes("colgroup"), - cst_col=caml_string_of_jsbytes("col"), - cst_caption=caml_string_of_jsbytes("caption"), - cst_table=caml_string_of_jsbytes("table"), - cst_script=caml_string_of_jsbytes("script"), - cst_area=caml_string_of_jsbytes("area"), - cst_map=caml_string_of_jsbytes("map"), - cst_param=caml_string_of_jsbytes("param"), - cst_object=caml_string_of_jsbytes("object"), - cst_img=caml_string_of_jsbytes("img"), - cst_a=caml_string_of_jsbytes("a"), - cst_del=caml_string_of_jsbytes("del"), - cst_ins=caml_string_of_jsbytes("ins"), - cst_hr=caml_string_of_jsbytes("hr"), - cst_br=caml_string_of_jsbytes("br"), - cst_pre=caml_string_of_jsbytes("pre"), - cst_blockquote=caml_string_of_jsbytes("blockquote"), - cst_q=caml_string_of_jsbytes("q"), - cst_h6=caml_string_of_jsbytes("h6"), - cst_h5=caml_string_of_jsbytes("h5"), - cst_h4=caml_string_of_jsbytes("h4"), - cst_h3=caml_string_of_jsbytes("h3"), - cst_h2=caml_string_of_jsbytes("h2"), - cst_h1=caml_string_of_jsbytes("h1"), - cst_p=caml_string_of_jsbytes("p"), - cst_embed=caml_string_of_jsbytes("embed"), - cst_div=caml_string_of_jsbytes("div"), - cst_li=caml_string_of_jsbytes("li"), - cst_dl=caml_string_of_jsbytes("dl"), - cst_ol=caml_string_of_jsbytes("ol"), - cst_ul=caml_string_of_jsbytes("ul"), - cst_legend=caml_string_of_jsbytes("legend"), - cst_fieldset=caml_string_of_jsbytes("fieldset"), - cst_label=caml_string_of_jsbytes("label"), - cst_button=caml_string_of_jsbytes("button"), - cst_textarea=caml_string_of_jsbytes("textarea"), - cst_input$0=caml_string_of_jsbytes("input"), - cst_select$0=caml_string_of_jsbytes("select"), - cst_option=caml_string_of_jsbytes("option"), - cst_optgroup=caml_string_of_jsbytes("optgroup"), - cst_form=caml_string_of_jsbytes("form"), - cst_body=caml_string_of_jsbytes("body"), - cst_style=caml_string_of_jsbytes("style"), - cst_base=caml_string_of_jsbytes("base"), - cst_meta=caml_string_of_jsbytes("meta"), - cst_title=caml_string_of_jsbytes("title"), - cst_link=caml_string_of_jsbytes("link"), - cst_head=caml_string_of_jsbytes("head"), - cst_html=caml_string_of_jsbytes("html"), - cst_click=caml_string_of_jsbytes("click"), - cst_copy=caml_string_of_jsbytes("copy"), - cst_cut=caml_string_of_jsbytes("cut"), - cst_paste=caml_string_of_jsbytes("paste"), - cst_dblclick=caml_string_of_jsbytes("dblclick"), - cst_mousedown=caml_string_of_jsbytes("mousedown"), - cst_mouseup=caml_string_of_jsbytes("mouseup"), - cst_mouseover=caml_string_of_jsbytes("mouseover"), - cst_mousemove=caml_string_of_jsbytes("mousemove"), - cst_mouseout=caml_string_of_jsbytes("mouseout"), - cst_keypress=caml_string_of_jsbytes("keypress"), - cst_keydown=caml_string_of_jsbytes("keydown"), - cst_keyup=caml_string_of_jsbytes("keyup"), - cst_mousewheel=caml_string_of_jsbytes("mousewheel"), - cst_wheel=caml_string_of_jsbytes("wheel"), - cst_DOMMouseScroll=caml_string_of_jsbytes("DOMMouseScroll"), - cst_touchstart=caml_string_of_jsbytes("touchstart"), - cst_touchmove=caml_string_of_jsbytes("touchmove"), - cst_touchend=caml_string_of_jsbytes("touchend"), - cst_touchcancel=caml_string_of_jsbytes("touchcancel"), - cst_dragstart=caml_string_of_jsbytes("dragstart"), - cst_dragend=caml_string_of_jsbytes("dragend"), - cst_dragenter=caml_string_of_jsbytes("dragenter"), - cst_dragover=caml_string_of_jsbytes("dragover"), - cst_dragleave=caml_string_of_jsbytes("dragleave"), - cst_drag=caml_string_of_jsbytes("drag"), - cst_drop=caml_string_of_jsbytes("drop"), - cst_hashchange=caml_string_of_jsbytes("hashchange"), - cst_change=caml_string_of_jsbytes("change"), - cst_input=caml_string_of_jsbytes("input"), - cst_timeupdate=caml_string_of_jsbytes("timeupdate"), - cst_submit=caml_string_of_jsbytes("submit"), - cst_scroll=caml_string_of_jsbytes("scroll"), - cst_focus=caml_string_of_jsbytes("focus"), - cst_blur=caml_string_of_jsbytes("blur"), - cst_load$0=caml_string_of_jsbytes("load"), - cst_unload=caml_string_of_jsbytes("unload"), - cst_beforeunload=caml_string_of_jsbytes("beforeunload"), - cst_resize=caml_string_of_jsbytes("resize"), - cst_orientationchange=caml_string_of_jsbytes("orientationchange"), - cst_popstate=caml_string_of_jsbytes("popstate"), - cst_error$0=caml_string_of_jsbytes("error"), - cst_abort$0=caml_string_of_jsbytes("abort"), - cst_select=caml_string_of_jsbytes("select"), - cst_online=caml_string_of_jsbytes("online"), - cst_offline=caml_string_of_jsbytes("offline"), - cst_checking=caml_string_of_jsbytes("checking"), - cst_noupdate=caml_string_of_jsbytes("noupdate"), - cst_downloading=caml_string_of_jsbytes("downloading"), - cst_progress$0=caml_string_of_jsbytes("progress"), - cst_updateready=caml_string_of_jsbytes("updateready"), - cst_cached=caml_string_of_jsbytes("cached"), - cst_obsolete=caml_string_of_jsbytes("obsolete"), - cst_DOMContentLoaded=caml_string_of_jsbytes("DOMContentLoaded"), - cst_animationstart=caml_string_of_jsbytes("animationstart"), - cst_animationend=caml_string_of_jsbytes("animationend"), - cst_animationiteration=caml_string_of_jsbytes("animationiteration"), - cst_animationcancel=caml_string_of_jsbytes("animationcancel"), - cst_transitionrun=caml_string_of_jsbytes("transitionrun"), - cst_transitionstart=caml_string_of_jsbytes("transitionstart"), - cst_transitionend=caml_string_of_jsbytes("transitionend"), - cst_transitioncancel=caml_string_of_jsbytes("transitioncancel"), - cst_canplay=caml_string_of_jsbytes("canplay"), - cst_canplaythrough=caml_string_of_jsbytes("canplaythrough"), - cst_durationchange=caml_string_of_jsbytes("durationchange"), - cst_emptied=caml_string_of_jsbytes("emptied"), - cst_ended=caml_string_of_jsbytes("ended"), - cst_gotpointercapture=caml_string_of_jsbytes("gotpointercapture"), - cst_loadeddata=caml_string_of_jsbytes("loadeddata"), - cst_loadedmetadata=caml_string_of_jsbytes("loadedmetadata"), - cst_loadstart$0=caml_string_of_jsbytes("loadstart"), - cst_lostpointercapture=caml_string_of_jsbytes("lostpointercapture"), - cst_message=caml_string_of_jsbytes("message"), - cst_pause=caml_string_of_jsbytes("pause"), - cst_play=caml_string_of_jsbytes("play"), - cst_playing=caml_string_of_jsbytes("playing"), - cst_pointerenter=caml_string_of_jsbytes("pointerenter"), - cst_pointercancel=caml_string_of_jsbytes("pointercancel"), - cst_pointerdown=caml_string_of_jsbytes("pointerdown"), - cst_pointerleave=caml_string_of_jsbytes("pointerleave"), - cst_pointermove=caml_string_of_jsbytes("pointermove"), - cst_pointerout=caml_string_of_jsbytes("pointerout"), - cst_pointerover=caml_string_of_jsbytes("pointerover"), - cst_pointerup=caml_string_of_jsbytes("pointerup"), - cst_ratechange=caml_string_of_jsbytes("ratechange"), - cst_seeked=caml_string_of_jsbytes("seeked"), - cst_seeking=caml_string_of_jsbytes("seeking"), - cst_stalled=caml_string_of_jsbytes("stalled"), - cst_suspend=caml_string_of_jsbytes("suspend"), - cst_volumechange=caml_string_of_jsbytes("volumechange"), - cst_waiting=caml_string_of_jsbytes("waiting"), - cst_Js_of_ocaml_Dom_html_Canva= - caml_string_of_jsbytes("Js_of_ocaml__Dom_html.Canvas_not_available"), - cst_checkbox=caml_string_of_jsbytes("checkbox"), - cst_file=caml_string_of_jsbytes("file"), - cst_password=caml_string_of_jsbytes("password"), - cst_radio=caml_string_of_jsbytes("radio"), - cst_reset=caml_string_of_jsbytes("reset"), - cst_submit$0=caml_string_of_jsbytes("submit"), - cst_text=caml_string_of_jsbytes("text"), - cst_readystatechange=caml_string_of_jsbytes("readystatechange"), - cst_loadstart$1=caml_string_of_jsbytes("loadstart"), - cst_progress$1=caml_string_of_jsbytes("progress"), - cst_abort$1=caml_string_of_jsbytes("abort"), - cst_error$1=caml_string_of_jsbytes("error"), - cst_load$1=caml_string_of_jsbytes("load"), - cst_timeout=caml_string_of_jsbytes("timeout"), - cst_loadend$0=caml_string_of_jsbytes("loadend"), - cst_Worker_onmessage_is_undefi$0= - caml_string_of_jsbytes("Worker.onmessage is undefined"), - cst_Worker_onmessage_is_undefi= - caml_string_of_jsbytes("Worker.onmessage is undefined"), - cst_Worker_import_scripts_is_u= - caml_string_of_jsbytes("Worker.import_scripts is undefined"), - cst_webglcontextlost=caml_string_of_jsbytes("webglcontextlost"), - cst_webglcontextrestored=caml_string_of_jsbytes("webglcontextrestored"), - cst_webglcontextcreationerror= - caml_string_of_jsbytes("webglcontextcreationerror"), - cst_g=caml_string_of_jsbytes("g"), - cst=caml_string_of_jsbytes("[\\][()\\\\|+*.?{}^$]"), - cst$37=caml_string_of_jsbytes(""), - cst$13=caml_string_of_jsbytes(""), - cst$21=caml_string_of_jsbytes(""), - cst$14=caml_string_of_jsbytes("#"), - cst$15=caml_string_of_jsbytes("?"), - cst$20=caml_string_of_jsbytes(""), - cst$16=caml_string_of_jsbytes("/"), - cst$17=caml_string_of_jsbytes("/"), - cst$19=caml_string_of_jsbytes(":"), - cst$18=caml_string_of_jsbytes(""), - cst_http$1=caml_string_of_jsbytes("http://"), - cst$22=caml_string_of_jsbytes(""), - cst$30=caml_string_of_jsbytes(""), - cst$23=caml_string_of_jsbytes("#"), - cst$24=caml_string_of_jsbytes("?"), - cst$29=caml_string_of_jsbytes(""), - cst$25=caml_string_of_jsbytes("/"), - cst$26=caml_string_of_jsbytes("/"), - cst$28=caml_string_of_jsbytes(":"), - cst$27=caml_string_of_jsbytes(""), - cst_https$1=caml_string_of_jsbytes("https://"), - cst$31=caml_string_of_jsbytes(""), - cst$36=caml_string_of_jsbytes(""), - cst$32=caml_string_of_jsbytes("#"), - cst$33=caml_string_of_jsbytes("?"), - cst$35=caml_string_of_jsbytes(""), - cst$34=caml_string_of_jsbytes("/"), - cst_file$2=caml_string_of_jsbytes("file://"), - cst$12=caml_string_of_jsbytes(""), - cst$11=caml_string_of_jsbytes(""), - cst$10=caml_string_of_jsbytes(""), - cst$9=caml_string_of_jsbytes(""), - cst$8=caml_string_of_jsbytes(""), - cst$7=caml_string_of_jsbytes(""), - cst$6=caml_string_of_jsbytes(""), - cst$4=caml_string_of_jsbytes("="), - cst$5=caml_string_of_jsbytes("&"), - cst$2=caml_string_of_jsbytes(""), - cst$3=caml_string_of_jsbytes(""), - cst_file$0=caml_string_of_jsbytes("file"), - cst_file$1=caml_string_of_jsbytes("file:"), - cst_http=caml_string_of_jsbytes("http"), - cst_http$0=caml_string_of_jsbytes("http:"), - cst_https=caml_string_of_jsbytes("https"), - cst_https$0=caml_string_of_jsbytes("https:"), - cst$1=caml_string_of_jsbytes(" "), - cst_2B=caml_string_of_jsbytes("%2B"), - cst_Js_of_ocaml_Url_Local_exn= - caml_string_of_jsbytes("Js_of_ocaml__Url.Local_exn"), - cst$0=caml_string_of_jsbytes("+"), - cst_Js_of_ocaml_Url_Not_an_htt= - caml_string_of_jsbytes("Js_of_ocaml__Url.Not_an_http_protocol"), - cst_Hh_Tt_Tt_Pp_Ss_0_9a_zA_Z_0= - caml_string_of_jsbytes - ("^([Hh][Tt][Tt][Pp][Ss]?)://([0-9a-zA-Z.-]+|\\[[0-9a-zA-Z.-]+\\]|\\[[0-9A-Fa-f:.]+\\])?(:([0-9]+))?(/([^\\?#]*)(\\?([^#]*))?(#(.*))?)?$"), - cst_Ff_Ii_Ll_Ee= - caml_string_of_jsbytes - ("^([Ff][Ii][Ll][Ee])://([^\\?#]*)(\\?([^#]*))?(#(.*))?$"), - s=caml_string_of_jsbytes("4.1.0"), - git_version=caml_string_of_jsbytes(""), - cst$38=caml_string_of_jsbytes(""), - cst$41=caml_string_of_jsbytes("+"), - cst_Jstable_keys=caml_string_of_jsbytes("Jstable.keys"), - t5=runtime.caml_int64_create_lo_mi_hi(1,0,0), - cst_is_not_a_valid_length$0= - caml_string_of_jsbytes(" is not a valid length"), - cst_d_d_deg_grad_rad_turns= - caml_string_of_jsbytes("^(\\d*(?:\\.\\d*))(deg|grad|rad|turns)$"), - cst_length_conversion_error$0= - caml_string_of_jsbytes("length conversion error: "), - cst_deg$0=caml_string_of_jsbytes("deg"), - cst_grad$0=caml_string_of_jsbytes("grad"), - cst_rad$0=caml_string_of_jsbytes("rad"), - cst_turns$0=caml_string_of_jsbytes("turns"), - cst_deg=caml_string_of_jsbytes("deg"), - cst_grad=caml_string_of_jsbytes("grad"), - cst_rad=caml_string_of_jsbytes("rad"), - cst_turns=caml_string_of_jsbytes("turns"), - cst_is_not_a_valid_length= - caml_string_of_jsbytes(" is not a valid length"), - cst_0$0=caml_string_of_jsbytes("0"), - cst_d_d_s_S=caml_string_of_jsbytes("^(\\d*(?:\\.\\d*)?)\\s*(\\S*)$"), - cst_length_conversion_error= - caml_string_of_jsbytes("length conversion error: "), - cst_pc$0=caml_string_of_jsbytes("pc"), - cst_ch$0=caml_string_of_jsbytes("ch"), - cst_cm$0=caml_string_of_jsbytes("cm"), - cst_em$1=caml_string_of_jsbytes("em"), - cst_ex$0=caml_string_of_jsbytes("ex"), - cst_gd$0=caml_string_of_jsbytes("gd"), - cst_in$0=caml_string_of_jsbytes("in"), - cst_mm$0=caml_string_of_jsbytes("mm"), - cst_pt$0=caml_string_of_jsbytes("pt"), - cst_px$0=caml_string_of_jsbytes("px"), - cst_rem$0=caml_string_of_jsbytes("rem"), - cst_vh$0=caml_string_of_jsbytes("vh"), - cst_vm$0=caml_string_of_jsbytes("vm"), - cst_vw$0=caml_string_of_jsbytes("vw"), - cst_0=caml_string_of_jsbytes("0"), - cst_em$0=caml_string_of_jsbytes("em"), - cst_ex=caml_string_of_jsbytes("ex"), - cst_px=caml_string_of_jsbytes("px"), - cst_gd=caml_string_of_jsbytes("gd"), - cst_rem=caml_string_of_jsbytes("rem"), - cst_vw=caml_string_of_jsbytes("vw"), - cst_vh=caml_string_of_jsbytes("vh"), - cst_vm=caml_string_of_jsbytes("vm"), - cst_ch=caml_string_of_jsbytes("ch"), - cst_mm=caml_string_of_jsbytes("mm"), - cst_cm=caml_string_of_jsbytes("cm"), - cst_in=caml_string_of_jsbytes("in"), - cst_pt=caml_string_of_jsbytes("pt"), - cst_pc=caml_string_of_jsbytes("pc"), - cst$40=caml_string_of_jsbytes("): "), - cst_color_conversion_error$0= - caml_string_of_jsbytes("color conversion error ("), - cst$39=caml_string_of_jsbytes("): "), - cst_color_conversion_error= - caml_string_of_jsbytes("color conversion error ("), - cst_is_not_a_valid_color$0= - caml_string_of_jsbytes(" is not a valid color"), - cst_rgba_d_d_d_d_d= - caml_string_of_jsbytes - ("(rgba?)\\((?:(\\d*),(\\d*),(\\d*)(?:,(\\d*(?:\\.\\d*)?))?)\\)"), - cst_rgba_d_d_d_d_d$0= - caml_string_of_jsbytes - ("(rgba?)\\((?:(\\d*)%,(\\d*)%,(\\d*)%(?:,(\\d*(?:\\.\\d*)?))?)\\)"), - cst_hsla_d_d_d_d_d= - caml_string_of_jsbytes - ("(hsla?)\\((?:(\\d*),(\\d*)%,(\\d*)%(?:,(\\d*(?:\\.\\d*)?))?)\\)"), - cst_rgb=caml_string_of_jsbytes("rgb"), - cst_rgba=caml_string_of_jsbytes("rgba"), - cst_rgb$0=caml_string_of_jsbytes("rgb"), - cst_rgba$0=caml_string_of_jsbytes("rgba"), - cst_hsl=caml_string_of_jsbytes("hsl"), - cst_hsla=caml_string_of_jsbytes("hsla"), - cst_rgb_s_d_s_d_s_d= - caml_string_of_jsbytes("^rgb\\(\\s*\\d*,\\s*\\d*,\\s*\\d*\\)$"), - cst_rgb_s_d_s_d_s_d$0= - caml_string_of_jsbytes("^rgb\\(\\s*\\d*%,\\s*\\d*%,\\s*\\d*%\\)$"), - cst_rgba_s_d_s_d_s_d_d_d= - caml_string_of_jsbytes - ("^rgba\\(\\s*\\d*,\\s*\\d*,\\s*\\d*,\\d*\\.?\\d*\\)$"), - cst_rgba_s_d_s_d_s_d_d_d$0= - caml_string_of_jsbytes - ("^rgba\\(\\s*\\d*%,\\s*\\d*%,\\s*\\d*%,\\d*\\.?\\d*\\)$"), - cst_hsl_s_d_s_d_s_d= - caml_string_of_jsbytes("^hsl\\(\\s*\\d*,\\s*\\d*%,\\s*\\d*%\\)$"), - cst_hsla_s_d_s_d_s_d_d_d= - caml_string_of_jsbytes - ("^hsla\\(\\s*\\d*,\\s*\\d*%,\\s*\\d*%,\\d*\\.?\\d*\\)$"), - cst_is_not_a_valid_color=caml_string_of_jsbytes(" is not a valid color"), - cst_is_out_of_valid_range= - caml_string_of_jsbytes(" is out of valid range"), - partial=[8,[0,0,0],0,0,[12,41,0]], - partial$0=[12,41,0], - partial$1=[0,0,0], - cst_lightgrey$0=caml_string_of_jsbytes("lightgrey"), - cst_darkslategray$0=caml_string_of_jsbytes("darkslategray"), - cst_cornsilk$0=caml_string_of_jsbytes("cornsilk"), - cst_blue$0=caml_string_of_jsbytes("blue"), - cst_aliceblue$0=caml_string_of_jsbytes("aliceblue"), - cst_antiquewhite$0=caml_string_of_jsbytes("antiquewhite"), - cst_aqua$0=caml_string_of_jsbytes("aqua"), - cst_aquamarine$0=caml_string_of_jsbytes("aquamarine"), - cst_azure$0=caml_string_of_jsbytes("azure"), - cst_beige$0=caml_string_of_jsbytes("beige"), - cst_bisque$0=caml_string_of_jsbytes("bisque"), - cst_black$0=caml_string_of_jsbytes("black"), - cst_blanchedalmond$0=caml_string_of_jsbytes("blanchedalmond"), - cst_blueviolet$0=caml_string_of_jsbytes("blueviolet"), - cst_brown$0=caml_string_of_jsbytes("brown"), - cst_burlywood$0=caml_string_of_jsbytes("burlywood"), - cst_cadetblue$0=caml_string_of_jsbytes("cadetblue"), - cst_chartreuse$0=caml_string_of_jsbytes("chartreuse"), - cst_chocolate$0=caml_string_of_jsbytes("chocolate"), - cst_coral$0=caml_string_of_jsbytes("coral"), - cst_cornflowerblue$0=caml_string_of_jsbytes("cornflowerblue"), - cst_darkkhaki$0=caml_string_of_jsbytes("darkkhaki"), - cst_crimson$0=caml_string_of_jsbytes("crimson"), - cst_cyan$0=caml_string_of_jsbytes("cyan"), - cst_darkblue$0=caml_string_of_jsbytes("darkblue"), - cst_darkcyan$0=caml_string_of_jsbytes("darkcyan"), - cst_darkgoldenrod$0=caml_string_of_jsbytes("darkgoldenrod"), - cst_darkgray$0=caml_string_of_jsbytes("darkgray"), - cst_darkgreen$0=caml_string_of_jsbytes("darkgreen"), - cst_darkgrey$0=caml_string_of_jsbytes("darkgrey"), - cst_darkmagenta$0=caml_string_of_jsbytes("darkmagenta"), - cst_darkolivegreen$0=caml_string_of_jsbytes("darkolivegreen"), - cst_darkorange$0=caml_string_of_jsbytes("darkorange"), - cst_darkorchid$0=caml_string_of_jsbytes("darkorchid"), - cst_darkred$0=caml_string_of_jsbytes("darkred"), - cst_darksalmon$0=caml_string_of_jsbytes("darksalmon"), - cst_darkseagreen$0=caml_string_of_jsbytes("darkseagreen"), - cst_darkslateblue$0=caml_string_of_jsbytes("darkslateblue"), - cst_greenyellow$0=caml_string_of_jsbytes("greenyellow"), - cst_floralwhite$0=caml_string_of_jsbytes("floralwhite"), - cst_darkslategrey$0=caml_string_of_jsbytes("darkslategrey"), - cst_darkturquoise$0=caml_string_of_jsbytes("darkturquoise"), - cst_darkviolet$0=caml_string_of_jsbytes("darkviolet"), - cst_deeppink$0=caml_string_of_jsbytes("deeppink"), - cst_deepskyblue$0=caml_string_of_jsbytes("deepskyblue"), - cst_dimgray$0=caml_string_of_jsbytes("dimgray"), - cst_dimgrey$0=caml_string_of_jsbytes("dimgrey"), - cst_dodgerblue$0=caml_string_of_jsbytes("dodgerblue"), - cst_firebrick$0=caml_string_of_jsbytes("firebrick"), - cst_forestgreen$0=caml_string_of_jsbytes("forestgreen"), - cst_fuchsia$0=caml_string_of_jsbytes("fuchsia"), - cst_gainsboro$0=caml_string_of_jsbytes("gainsboro"), - cst_ghostwhite$0=caml_string_of_jsbytes("ghostwhite"), - cst_gold$0=caml_string_of_jsbytes("gold"), - cst_goldenrod$0=caml_string_of_jsbytes("goldenrod"), - cst_gray$0=caml_string_of_jsbytes("gray"), - cst_green$0=caml_string_of_jsbytes("green"), - cst_lavenderblush$0=caml_string_of_jsbytes("lavenderblush"), - cst_grey$0=caml_string_of_jsbytes("grey"), - cst_honeydew$0=caml_string_of_jsbytes("honeydew"), - cst_hotpink$0=caml_string_of_jsbytes("hotpink"), - cst_indianred$0=caml_string_of_jsbytes("indianred"), - cst_indigo$0=caml_string_of_jsbytes("indigo"), - cst_ivory$0=caml_string_of_jsbytes("ivory"), - cst_khaki$0=caml_string_of_jsbytes("khaki"), - cst_lavender$0=caml_string_of_jsbytes("lavender"), - cst_lawngreen$0=caml_string_of_jsbytes("lawngreen"), - cst_lemonchiffon$0=caml_string_of_jsbytes("lemonchiffon"), - cst_lightblue$0=caml_string_of_jsbytes("lightblue"), - cst_lightcoral$0=caml_string_of_jsbytes("lightcoral"), - cst_lightcyan$0=caml_string_of_jsbytes("lightcyan"), - cst_lightgoldenrodyellow$0=caml_string_of_jsbytes("lightgoldenrodyellow"), - cst_lightgray$0=caml_string_of_jsbytes("lightgray"), - cst_lightgreen$0=caml_string_of_jsbytes("lightgreen"), - cst_paleturquoise$0=caml_string_of_jsbytes("paleturquoise"), - cst_mediumslateblue$0=caml_string_of_jsbytes("mediumslateblue"), - cst_limegreen$0=caml_string_of_jsbytes("limegreen"), - cst_lightpink$0=caml_string_of_jsbytes("lightpink"), - cst_lightsalmon$0=caml_string_of_jsbytes("lightsalmon"), - cst_lightseagreen$0=caml_string_of_jsbytes("lightseagreen"), - cst_lightskyblue$0=caml_string_of_jsbytes("lightskyblue"), - cst_lightslategray$0=caml_string_of_jsbytes("lightslategray"), - cst_lightslategrey$0=caml_string_of_jsbytes("lightslategrey"), - cst_lightsteelblue$0=caml_string_of_jsbytes("lightsteelblue"), - cst_lightyellow$0=caml_string_of_jsbytes("lightyellow"), - cst_lime$0=caml_string_of_jsbytes("lime"), - cst_linen$0=caml_string_of_jsbytes("linen"), - cst_magenta$0=caml_string_of_jsbytes("magenta"), - cst_maroon$0=caml_string_of_jsbytes("maroon"), - cst_mediumaquamarine$0=caml_string_of_jsbytes("mediumaquamarine"), - cst_mediumblue$0=caml_string_of_jsbytes("mediumblue"), - cst_mediumorchid$0=caml_string_of_jsbytes("mediumorchid"), - cst_mediumpurple$0=caml_string_of_jsbytes("mediumpurple"), - cst_mediumseagreen$0=caml_string_of_jsbytes("mediumseagreen"), - cst_navy$0=caml_string_of_jsbytes("navy"), - cst_mediumspringgreen$0=caml_string_of_jsbytes("mediumspringgreen"), - cst_mediumturquoise$0=caml_string_of_jsbytes("mediumturquoise"), - cst_mediumvioletred$0=caml_string_of_jsbytes("mediumvioletred"), - cst_midnightblue$0=caml_string_of_jsbytes("midnightblue"), - cst_mintcream$0=caml_string_of_jsbytes("mintcream"), - cst_mistyrose$0=caml_string_of_jsbytes("mistyrose"), - cst_moccasin$0=caml_string_of_jsbytes("moccasin"), - cst_navajowhite$0=caml_string_of_jsbytes("navajowhite"), - cst_oldlace$0=caml_string_of_jsbytes("oldlace"), - cst_olive$0=caml_string_of_jsbytes("olive"), - cst_olivedrab$0=caml_string_of_jsbytes("olivedrab"), - cst_orange$0=caml_string_of_jsbytes("orange"), - cst_orangered$0=caml_string_of_jsbytes("orangered"), - cst_orchid$0=caml_string_of_jsbytes("orchid"), - cst_palegoldenrod$0=caml_string_of_jsbytes("palegoldenrod"), - cst_palegreen$0=caml_string_of_jsbytes("palegreen"), - cst_skyblue$0=caml_string_of_jsbytes("skyblue"), - cst_rosybrown$0=caml_string_of_jsbytes("rosybrown"), - cst_palevioletred$0=caml_string_of_jsbytes("palevioletred"), - cst_papayawhip$0=caml_string_of_jsbytes("papayawhip"), - cst_peachpuff$0=caml_string_of_jsbytes("peachpuff"), - cst_peru$0=caml_string_of_jsbytes("peru"), - cst_pink$0=caml_string_of_jsbytes("pink"), - cst_plum$0=caml_string_of_jsbytes("plum"), - cst_powderblue$0=caml_string_of_jsbytes("powderblue"), - cst_purple$0=caml_string_of_jsbytes("purple"), - cst_red$0=caml_string_of_jsbytes("red"), - cst_royalblue$0=caml_string_of_jsbytes("royalblue"), - cst_saddlebrown$0=caml_string_of_jsbytes("saddlebrown"), - cst_salmon$0=caml_string_of_jsbytes("salmon"), - cst_sandybrown$0=caml_string_of_jsbytes("sandybrown"), - cst_seagreen$0=caml_string_of_jsbytes("seagreen"), - cst_seashell$0=caml_string_of_jsbytes("seashell"), - cst_sienna$0=caml_string_of_jsbytes("sienna"), - cst_silver$0=caml_string_of_jsbytes("silver"), - cst_thistle$0=caml_string_of_jsbytes("thistle"), - cst_slateblue$0=caml_string_of_jsbytes("slateblue"), - cst_slategray$0=caml_string_of_jsbytes("slategray"), - cst_slategrey$0=caml_string_of_jsbytes("slategrey"), - cst_snow$0=caml_string_of_jsbytes("snow"), - cst_springgreen$0=caml_string_of_jsbytes("springgreen"), - cst_steelblue$0=caml_string_of_jsbytes("steelblue"), - cst_tan$0=caml_string_of_jsbytes("tan"), - cst_teal$0=caml_string_of_jsbytes("teal"), - cst_tomato$0=caml_string_of_jsbytes("tomato"), - cst_turquoise$0=caml_string_of_jsbytes("turquoise"), - cst_violet$0=caml_string_of_jsbytes("violet"), - cst_wheat$0=caml_string_of_jsbytes("wheat"), - cst_white$0=caml_string_of_jsbytes("white"), - cst_whitesmoke$0=caml_string_of_jsbytes("whitesmoke"), - cst_yellow$0=caml_string_of_jsbytes("yellow"), - cst_yellowgreen$0=caml_string_of_jsbytes("yellowgreen"), - cst_is_not_a_valid_color_name= - caml_string_of_jsbytes(" is not a valid color name"), - cst_aliceblue=caml_string_of_jsbytes("aliceblue"), - cst_antiquewhite=caml_string_of_jsbytes("antiquewhite"), - cst_aqua=caml_string_of_jsbytes("aqua"), - cst_aquamarine=caml_string_of_jsbytes("aquamarine"), - cst_azure=caml_string_of_jsbytes("azure"), - cst_beige=caml_string_of_jsbytes("beige"), - cst_bisque=caml_string_of_jsbytes("bisque"), - cst_black=caml_string_of_jsbytes("black"), - cst_blanchedalmond=caml_string_of_jsbytes("blanchedalmond"), - cst_blue=caml_string_of_jsbytes("blue"), - cst_blueviolet=caml_string_of_jsbytes("blueviolet"), - cst_brown=caml_string_of_jsbytes("brown"), - cst_burlywood=caml_string_of_jsbytes("burlywood"), - cst_cadetblue=caml_string_of_jsbytes("cadetblue"), - cst_chartreuse=caml_string_of_jsbytes("chartreuse"), - cst_chocolate=caml_string_of_jsbytes("chocolate"), - cst_coral=caml_string_of_jsbytes("coral"), - cst_cornflowerblue=caml_string_of_jsbytes("cornflowerblue"), - cst_cornsilk=caml_string_of_jsbytes("cornsilk"), - cst_crimson=caml_string_of_jsbytes("crimson"), - cst_cyan=caml_string_of_jsbytes("cyan"), - cst_darkblue=caml_string_of_jsbytes("darkblue"), - cst_darkcyan=caml_string_of_jsbytes("darkcyan"), - cst_darkgoldenrod=caml_string_of_jsbytes("darkgoldenrod"), - cst_darkgray=caml_string_of_jsbytes("darkgray"), - cst_darkgreen=caml_string_of_jsbytes("darkgreen"), - cst_darkgrey=caml_string_of_jsbytes("darkgrey"), - cst_darkkhaki=caml_string_of_jsbytes("darkkhaki"), - cst_darkmagenta=caml_string_of_jsbytes("darkmagenta"), - cst_darkolivegreen=caml_string_of_jsbytes("darkolivegreen"), - cst_darkorange=caml_string_of_jsbytes("darkorange"), - cst_darkorchid=caml_string_of_jsbytes("darkorchid"), - cst_darkred=caml_string_of_jsbytes("darkred"), - cst_darksalmon=caml_string_of_jsbytes("darksalmon"), - cst_darkseagreen=caml_string_of_jsbytes("darkseagreen"), - cst_darkslateblue=caml_string_of_jsbytes("darkslateblue"), - cst_darkslategray=caml_string_of_jsbytes("darkslategray"), - cst_darkslategrey=caml_string_of_jsbytes("darkslategrey"), - cst_darkturquoise=caml_string_of_jsbytes("darkturquoise"), - cst_darkviolet=caml_string_of_jsbytes("darkviolet"), - cst_deeppink=caml_string_of_jsbytes("deeppink"), - cst_deepskyblue=caml_string_of_jsbytes("deepskyblue"), - cst_dimgray=caml_string_of_jsbytes("dimgray"), - cst_dimgrey=caml_string_of_jsbytes("dimgrey"), - cst_dodgerblue=caml_string_of_jsbytes("dodgerblue"), - cst_firebrick=caml_string_of_jsbytes("firebrick"), - cst_floralwhite=caml_string_of_jsbytes("floralwhite"), - cst_forestgreen=caml_string_of_jsbytes("forestgreen"), - cst_fuchsia=caml_string_of_jsbytes("fuchsia"), - cst_gainsboro=caml_string_of_jsbytes("gainsboro"), - cst_ghostwhite=caml_string_of_jsbytes("ghostwhite"), - cst_gold=caml_string_of_jsbytes("gold"), - cst_goldenrod=caml_string_of_jsbytes("goldenrod"), - cst_gray=caml_string_of_jsbytes("gray"), - cst_grey=caml_string_of_jsbytes("grey"), - cst_green=caml_string_of_jsbytes("green"), - cst_greenyellow=caml_string_of_jsbytes("greenyellow"), - cst_honeydew=caml_string_of_jsbytes("honeydew"), - cst_hotpink=caml_string_of_jsbytes("hotpink"), - cst_indianred=caml_string_of_jsbytes("indianred"), - cst_indigo=caml_string_of_jsbytes("indigo"), - cst_ivory=caml_string_of_jsbytes("ivory"), - cst_khaki=caml_string_of_jsbytes("khaki"), - cst_lavender=caml_string_of_jsbytes("lavender"), - cst_lavenderblush=caml_string_of_jsbytes("lavenderblush"), - cst_lawngreen=caml_string_of_jsbytes("lawngreen"), - cst_lemonchiffon=caml_string_of_jsbytes("lemonchiffon"), - cst_lightblue=caml_string_of_jsbytes("lightblue"), - cst_lightcoral=caml_string_of_jsbytes("lightcoral"), - cst_lightcyan=caml_string_of_jsbytes("lightcyan"), - cst_lightgoldenrodyellow=caml_string_of_jsbytes("lightgoldenrodyellow"), - cst_lightgray=caml_string_of_jsbytes("lightgray"), - cst_lightgreen=caml_string_of_jsbytes("lightgreen"), - cst_lightgrey=caml_string_of_jsbytes("lightgrey"), - cst_lightpink=caml_string_of_jsbytes("lightpink"), - cst_lightsalmon=caml_string_of_jsbytes("lightsalmon"), - cst_lightseagreen=caml_string_of_jsbytes("lightseagreen"), - cst_lightskyblue=caml_string_of_jsbytes("lightskyblue"), - cst_lightslategray=caml_string_of_jsbytes("lightslategray"), - cst_lightslategrey=caml_string_of_jsbytes("lightslategrey"), - cst_lightsteelblue=caml_string_of_jsbytes("lightsteelblue"), - cst_lightyellow=caml_string_of_jsbytes("lightyellow"), - cst_lime=caml_string_of_jsbytes("lime"), - cst_limegreen=caml_string_of_jsbytes("limegreen"), - cst_linen=caml_string_of_jsbytes("linen"), - cst_magenta=caml_string_of_jsbytes("magenta"), - cst_maroon=caml_string_of_jsbytes("maroon"), - cst_mediumaquamarine=caml_string_of_jsbytes("mediumaquamarine"), - cst_mediumblue=caml_string_of_jsbytes("mediumblue"), - cst_mediumorchid=caml_string_of_jsbytes("mediumorchid"), - cst_mediumpurple=caml_string_of_jsbytes("mediumpurple"), - cst_mediumseagreen=caml_string_of_jsbytes("mediumseagreen"), - cst_mediumslateblue=caml_string_of_jsbytes("mediumslateblue"), - cst_mediumspringgreen=caml_string_of_jsbytes("mediumspringgreen"), - cst_mediumturquoise=caml_string_of_jsbytes("mediumturquoise"), - cst_mediumvioletred=caml_string_of_jsbytes("mediumvioletred"), - cst_midnightblue=caml_string_of_jsbytes("midnightblue"), - cst_mintcream=caml_string_of_jsbytes("mintcream"), - cst_mistyrose=caml_string_of_jsbytes("mistyrose"), - cst_moccasin=caml_string_of_jsbytes("moccasin"), - cst_navajowhite=caml_string_of_jsbytes("navajowhite"), - cst_navy=caml_string_of_jsbytes("navy"), - cst_oldlace=caml_string_of_jsbytes("oldlace"), - cst_olive=caml_string_of_jsbytes("olive"), - cst_olivedrab=caml_string_of_jsbytes("olivedrab"), - cst_orange=caml_string_of_jsbytes("orange"), - cst_orangered=caml_string_of_jsbytes("orangered"), - cst_orchid=caml_string_of_jsbytes("orchid"), - cst_palegoldenrod=caml_string_of_jsbytes("palegoldenrod"), - cst_palegreen=caml_string_of_jsbytes("palegreen"), - cst_paleturquoise=caml_string_of_jsbytes("paleturquoise"), - cst_palevioletred=caml_string_of_jsbytes("palevioletred"), - cst_papayawhip=caml_string_of_jsbytes("papayawhip"), - cst_peachpuff=caml_string_of_jsbytes("peachpuff"), - cst_peru=caml_string_of_jsbytes("peru"), - cst_pink=caml_string_of_jsbytes("pink"), - cst_plum=caml_string_of_jsbytes("plum"), - cst_powderblue=caml_string_of_jsbytes("powderblue"), - cst_purple=caml_string_of_jsbytes("purple"), - cst_red=caml_string_of_jsbytes("red"), - cst_rosybrown=caml_string_of_jsbytes("rosybrown"), - cst_royalblue=caml_string_of_jsbytes("royalblue"), - cst_saddlebrown=caml_string_of_jsbytes("saddlebrown"), - cst_salmon=caml_string_of_jsbytes("salmon"), - cst_sandybrown=caml_string_of_jsbytes("sandybrown"), - cst_seagreen=caml_string_of_jsbytes("seagreen"), - cst_seashell=caml_string_of_jsbytes("seashell"), - cst_sienna=caml_string_of_jsbytes("sienna"), - cst_silver=caml_string_of_jsbytes("silver"), - cst_skyblue=caml_string_of_jsbytes("skyblue"), - cst_slateblue=caml_string_of_jsbytes("slateblue"), - cst_slategray=caml_string_of_jsbytes("slategray"), - cst_slategrey=caml_string_of_jsbytes("slategrey"), - cst_snow=caml_string_of_jsbytes("snow"), - cst_springgreen=caml_string_of_jsbytes("springgreen"), - cst_steelblue=caml_string_of_jsbytes("steelblue"), - cst_tan=caml_string_of_jsbytes("tan"), - cst_teal=caml_string_of_jsbytes("teal"), - cst_thistle=caml_string_of_jsbytes("thistle"), - cst_tomato=caml_string_of_jsbytes("tomato"), - cst_turquoise=caml_string_of_jsbytes("turquoise"), - cst_violet=caml_string_of_jsbytes("violet"), - cst_wheat=caml_string_of_jsbytes("wheat"), - cst_white=caml_string_of_jsbytes("white"), - cst_whitesmoke=caml_string_of_jsbytes("whitesmoke"), - cst_yellow=caml_string_of_jsbytes("yellow"), - cst_yellowgreen=caml_string_of_jsbytes("yellowgreen"), - cst_vkern$0=caml_string_of_jsbytes("vkern"), - cst_view$0=caml_string_of_jsbytes("view"), - cst_use$0=caml_string_of_jsbytes("use"), - cst_tspan$0=caml_string_of_jsbytes("tspan"), - cst_tref$0=caml_string_of_jsbytes("tref"), - cst_title$3=caml_string_of_jsbytes("title"), - cst_textpath$0=caml_string_of_jsbytes("textpath"), - cst_text$1=caml_string_of_jsbytes("text"), - cst_symbol$0=caml_string_of_jsbytes("symbol"), - cst_switch$0=caml_string_of_jsbytes("switch"), - cst_svg$0=caml_string_of_jsbytes("svg"), - cst_style$3=caml_string_of_jsbytes("style"), - cst_stop$0=caml_string_of_jsbytes("stop"), - cst_set$0=caml_string_of_jsbytes("set"), - cst_script$3=caml_string_of_jsbytes("script"), - cst_rect$0=caml_string_of_jsbytes("rect"), - cst_radialgradient$0=caml_string_of_jsbytes("radialgradient"), - cst_polyline$0=caml_string_of_jsbytes("polyline"), - cst_polygon$0=caml_string_of_jsbytes("polygon"), - cst_pattern$0=caml_string_of_jsbytes("pattern"), - cst_path$0=caml_string_of_jsbytes("path"), - cst_mpath$0=caml_string_of_jsbytes("mpath"), - cst_missing_glyph$0=caml_string_of_jsbytes("missing-glyph"), - cst_metadata$0=caml_string_of_jsbytes("metadata"), - cst_mask$0=caml_string_of_jsbytes("mask"), - cst_lineargradient$0=caml_string_of_jsbytes("lineargradient"), - cst_line$0=caml_string_of_jsbytes("line"), - cst_image$0=caml_string_of_jsbytes("image"), - cst_hkern$0=caml_string_of_jsbytes("hkern"), - cst_glyphref$0=caml_string_of_jsbytes("glyphref"), - cst_glyph$0=caml_string_of_jsbytes("glyph"), - cst_g$1=caml_string_of_jsbytes("g"), - cst_foreignobject=caml_string_of_jsbytes("foreignobject"), - cst_font_face_uri$0=caml_string_of_jsbytes("font-face-uri"), - cst_font_face_src$0=caml_string_of_jsbytes("font-face-src"), - cst_font_face_name$0=caml_string_of_jsbytes("font-face-name"), - cst_font_face_format$0=caml_string_of_jsbytes("font-face-format"), - cst_font_face$0=caml_string_of_jsbytes("font-face"), - cst_font$0=caml_string_of_jsbytes("font"), - cst_filter$0=caml_string_of_jsbytes("filter"), - cst_ellipse$0=caml_string_of_jsbytes("ellipse"), - cst_desc$0=caml_string_of_jsbytes("desc"), - cst_defs$0=caml_string_of_jsbytes("defs"), - cst_cursor$0=caml_string_of_jsbytes("cursor"), - cst_clippath$0=caml_string_of_jsbytes("clippath"), - cst_circle$0=caml_string_of_jsbytes("circle"), - cst_animatetransform$0=caml_string_of_jsbytes("animatetransform"), - cst_animatemotion$0=caml_string_of_jsbytes("animatemotion"), - cst_animatecolor$0=caml_string_of_jsbytes("animatecolor"), - cst_animate$0=caml_string_of_jsbytes("animate"), - cst_altglyphitem$0=caml_string_of_jsbytes("altglyphitem"), - cst_altglyphdef$0=caml_string_of_jsbytes("altglyphdef"), - cst_altglyph$0=caml_string_of_jsbytes("altglyph"), - cst_a$3=caml_string_of_jsbytes("a"), - cst_vkern=caml_string_of_jsbytes("vkern"), - cst_view=caml_string_of_jsbytes("view"), - cst_use=caml_string_of_jsbytes("use"), - cst_tspan=caml_string_of_jsbytes("tspan"), - cst_tref=caml_string_of_jsbytes("tref"), - cst_title$2=caml_string_of_jsbytes("title"), - cst_textpath=caml_string_of_jsbytes("textpath"), - cst_text$0=caml_string_of_jsbytes("text"), - cst_symbol=caml_string_of_jsbytes("symbol"), - cst_switch=caml_string_of_jsbytes("switch"), - cst_svg=caml_string_of_jsbytes("svg"), - cst_style$2=caml_string_of_jsbytes("style"), - cst_stop=caml_string_of_jsbytes("stop"), - cst_set=caml_string_of_jsbytes("set"), - cst_script$2=caml_string_of_jsbytes("script"), - cst_rect=caml_string_of_jsbytes("rect"), - cst_radialgradient=caml_string_of_jsbytes("radialgradient"), - cst_polyline=caml_string_of_jsbytes("polyline"), - cst_polygon=caml_string_of_jsbytes("polygon"), - cst_pattern=caml_string_of_jsbytes("pattern"), - cst_path=caml_string_of_jsbytes("path"), - cst_mpath=caml_string_of_jsbytes("mpath"), - cst_missing_glyph=caml_string_of_jsbytes("missing-glyph"), - cst_metadata=caml_string_of_jsbytes("metadata"), - cst_mask=caml_string_of_jsbytes("mask"), - cst_lineargradient=caml_string_of_jsbytes("lineargradient"), - cst_line=caml_string_of_jsbytes("line"), - cst_image=caml_string_of_jsbytes("image"), - cst_hkern=caml_string_of_jsbytes("hkern"), - cst_glyphref=caml_string_of_jsbytes("glyphref"), - cst_glyph=caml_string_of_jsbytes("glyph"), - cst_g$0=caml_string_of_jsbytes("g"), - cst_foreignObject=caml_string_of_jsbytes("foreignObject"), - cst_font_face_uri=caml_string_of_jsbytes("font-face-uri"), - cst_font_face_src=caml_string_of_jsbytes("font-face-src"), - cst_font_face_name=caml_string_of_jsbytes("font-face-name"), - cst_font_face_format=caml_string_of_jsbytes("font-face-format"), - cst_font_face=caml_string_of_jsbytes("font-face"), - cst_font=caml_string_of_jsbytes("font"), - cst_filter=caml_string_of_jsbytes("filter"), - cst_ellipse=caml_string_of_jsbytes("ellipse"), - cst_desc=caml_string_of_jsbytes("desc"), - cst_defs=caml_string_of_jsbytes("defs"), - cst_cursor=caml_string_of_jsbytes("cursor"), - cst_clippath=caml_string_of_jsbytes("clippath"), - cst_circle=caml_string_of_jsbytes("circle"), - cst_animatetransform=caml_string_of_jsbytes("animatetransform"), - cst_animatemotion=caml_string_of_jsbytes("animatemotion"), - cst_animatecolor=caml_string_of_jsbytes("animatecolor"), - cst_animate=caml_string_of_jsbytes("animate"), - cst_altglyphitem=caml_string_of_jsbytes("altglyphitem"), - cst_altglyphdef=caml_string_of_jsbytes("altglyphdef"), - cst_altglyph=caml_string_of_jsbytes("altglyph"), - cst_a$2=caml_string_of_jsbytes("a"), - cst_Js_of_ocaml_Dom_svg_SVGErr= - caml_string_of_jsbytes("Js_of_ocaml__Dom_svg.SVGError"), - Stdlib_String=global_data.Stdlib__String, - Stdlib_Char=global_data.Stdlib__Char, - Stdlib=global_data.Stdlib, - Jsoo_runtime=global_data.Jsoo_runtime, - Stdlib_Printexc=global_data.Stdlib__Printexc, - Assert_failure=global_data.Assert_failure, - Stdlib_List=global_data.Stdlib__List, - Stdlib_Array=global_data.Stdlib__Array, - Stdlib_Uchar=global_data.Stdlib__Uchar, - Stdlib_Printf=global_data.Stdlib__Printf; - global_data.CamlinternalOO; - var Stdlib_Obj=global_data.Stdlib__Obj,Js_of_ocaml=[0]; - caml_register_global(1653,Js_of_ocaml,"Js_of_ocaml__"); - var - Poly=[0], - _g_=[0,caml_string_of_jsbytes("lib/js_of_ocaml/dom.ml"),351,67], - _h_=[0,caml_string_of_jsbytes("transparent")], - _i_=[0,caml_string_of_jsbytes("native")], - _m_=[0,caml_string_of_jsbytes("lib/js_of_ocaml/dom_html.ml"),2894,58], - _l_=[0,caml_string_of_jsbytes("lib/js_of_ocaml/dom_html.ml"),2893,61], - _k_= - [0, - [11, - caml_string_of_jsbytes("getElementById_exn: "), - [3,0,[11,caml_string_of_jsbytes(" not found"),0]]], - caml_string_of_jsbytes("getElementById_exn: %S not found")], - _p_=[0,caml_string_of_jsbytes("lib/js_of_ocaml/form.ml"),178,13], - _o_=[0,1], - _q_=[0,caml_string_of_jsbytes("lib/js_of_ocaml/regexp.ml"),34,64], - _r_=[0,caml_string_of_jsbytes(""),0], - _cl_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _cm_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _cn_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _co_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _b9_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _b__=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _b$_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _ca_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _cb_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _cc_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _cd_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _ce_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _cf_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _cg_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _ch_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _ci_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _cj_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _ck_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _b8_= - caml_list_of_js_array - ([caml_string_of_jsbytes("aliceblue"), - caml_string_of_jsbytes("antiquewhite"), - caml_string_of_jsbytes("aqua"), - caml_string_of_jsbytes("aquamarine"), - caml_string_of_jsbytes("azure"), - caml_string_of_jsbytes("beige"), - caml_string_of_jsbytes("bisque"), - caml_string_of_jsbytes("black"), - caml_string_of_jsbytes("blanchedalmond"), - caml_string_of_jsbytes("blue"), - caml_string_of_jsbytes("blueviolet"), - caml_string_of_jsbytes("brown"), - caml_string_of_jsbytes("burlywood"), - caml_string_of_jsbytes("cadetblue"), - caml_string_of_jsbytes("chartreuse"), - caml_string_of_jsbytes("chocolate"), - caml_string_of_jsbytes("coral"), - caml_string_of_jsbytes("cornflowerblue"), - caml_string_of_jsbytes("cornsilk"), - caml_string_of_jsbytes("crimson"), - caml_string_of_jsbytes("cyan"), - caml_string_of_jsbytes("darkblue"), - caml_string_of_jsbytes("darkcyan"), - caml_string_of_jsbytes("darkgoldenrod"), - caml_string_of_jsbytes("darkgray"), - caml_string_of_jsbytes("darkgreen"), - caml_string_of_jsbytes("darkgrey"), - caml_string_of_jsbytes("darkkhaki"), - caml_string_of_jsbytes("darkmagenta"), - caml_string_of_jsbytes("darkolivegreen"), - caml_string_of_jsbytes("darkorange"), - caml_string_of_jsbytes("darkorchid"), - caml_string_of_jsbytes("darkred"), - caml_string_of_jsbytes("darksalmon"), - caml_string_of_jsbytes("darkseagreen"), - caml_string_of_jsbytes("darkslateblue"), - caml_string_of_jsbytes("darkslategray"), - caml_string_of_jsbytes("darkslategrey"), - caml_string_of_jsbytes("darkturquoise"), - caml_string_of_jsbytes("darkviolet"), - caml_string_of_jsbytes("deeppink"), - caml_string_of_jsbytes("deepskyblue"), - caml_string_of_jsbytes("dimgray"), - caml_string_of_jsbytes("dimgrey"), - caml_string_of_jsbytes("dodgerblue"), - caml_string_of_jsbytes("firebrick"), - caml_string_of_jsbytes("floralwhite"), - caml_string_of_jsbytes("forestgreen"), - caml_string_of_jsbytes("fuchsia"), - caml_string_of_jsbytes("gainsboro"), - caml_string_of_jsbytes("ghostwhite"), - caml_string_of_jsbytes("gold"), - caml_string_of_jsbytes("goldenrod"), - caml_string_of_jsbytes("gray"), - caml_string_of_jsbytes("green"), - caml_string_of_jsbytes("greenyellow"), - caml_string_of_jsbytes("grey"), - caml_string_of_jsbytes("honeydew"), - caml_string_of_jsbytes("hotpink"), - caml_string_of_jsbytes("indianred"), - caml_string_of_jsbytes("indigo"), - caml_string_of_jsbytes("ivory"), - caml_string_of_jsbytes("khaki"), - caml_string_of_jsbytes("lavender"), - caml_string_of_jsbytes("lavenderblush"), - caml_string_of_jsbytes("lawngreen"), - caml_string_of_jsbytes("lemonchiffon"), - caml_string_of_jsbytes("lightblue"), - caml_string_of_jsbytes("lightcoral"), - caml_string_of_jsbytes("lightcyan"), - caml_string_of_jsbytes("lightgoldenrodyellow"), - caml_string_of_jsbytes("lightgray"), - caml_string_of_jsbytes("lightgreen"), - caml_string_of_jsbytes("lightgrey"), - caml_string_of_jsbytes("lightpink"), - caml_string_of_jsbytes("lightsalmon"), - caml_string_of_jsbytes("lightseagreen"), - caml_string_of_jsbytes("lightskyblue"), - caml_string_of_jsbytes("lightslategray"), - caml_string_of_jsbytes("lightslategrey"), - caml_string_of_jsbytes("lightsteelblue"), - caml_string_of_jsbytes("lightyellow"), - caml_string_of_jsbytes("lime"), - caml_string_of_jsbytes("limegreen"), - caml_string_of_jsbytes("linen"), - caml_string_of_jsbytes("magenta"), - caml_string_of_jsbytes("maroon"), - caml_string_of_jsbytes("mediumaquamarine"), - caml_string_of_jsbytes("mediumblue"), - caml_string_of_jsbytes("mediumorchid"), - caml_string_of_jsbytes("mediumpurple"), - caml_string_of_jsbytes("mediumseagreen"), - caml_string_of_jsbytes("mediumslateblue"), - caml_string_of_jsbytes("mediumspringgreen"), - caml_string_of_jsbytes("mediumturquoise"), - caml_string_of_jsbytes("mediumvioletred"), - caml_string_of_jsbytes("midnightblue"), - caml_string_of_jsbytes("mintcream"), - caml_string_of_jsbytes("mistyrose"), - caml_string_of_jsbytes("moccasin"), - caml_string_of_jsbytes("navajowhite"), - caml_string_of_jsbytes("navy"), - caml_string_of_jsbytes("oldlace"), - caml_string_of_jsbytes("olive"), - caml_string_of_jsbytes("olivedrab"), - caml_string_of_jsbytes("orange"), - caml_string_of_jsbytes("orangered"), - caml_string_of_jsbytes("orchid"), - caml_string_of_jsbytes("palegoldenrod"), - caml_string_of_jsbytes("palegreen"), - caml_string_of_jsbytes("paleturquoise"), - caml_string_of_jsbytes("palevioletred"), - caml_string_of_jsbytes("papayawhip"), - caml_string_of_jsbytes("peachpuff"), - caml_string_of_jsbytes("peru"), - caml_string_of_jsbytes("pink"), - caml_string_of_jsbytes("plum"), - caml_string_of_jsbytes("powderblue"), - caml_string_of_jsbytes("purple"), - caml_string_of_jsbytes("red"), - caml_string_of_jsbytes("rosybrown"), - caml_string_of_jsbytes("royalblue"), - caml_string_of_jsbytes("saddlebrown"), - caml_string_of_jsbytes("salmon"), - caml_string_of_jsbytes("sandybrown"), - caml_string_of_jsbytes("seagreen"), - caml_string_of_jsbytes("seashell"), - caml_string_of_jsbytes("sienna"), - caml_string_of_jsbytes("silver"), - caml_string_of_jsbytes("skyblue"), - caml_string_of_jsbytes("slateblue"), - caml_string_of_jsbytes("slategray"), - caml_string_of_jsbytes("slategrey"), - caml_string_of_jsbytes("snow"), - caml_string_of_jsbytes("springgreen"), - caml_string_of_jsbytes("steelblue"), - caml_string_of_jsbytes("tan"), - caml_string_of_jsbytes("teal"), - caml_string_of_jsbytes("thistle"), - caml_string_of_jsbytes("tomato"), - caml_string_of_jsbytes("turquoise"), - caml_string_of_jsbytes("violet"), - caml_string_of_jsbytes("wheat"), - caml_string_of_jsbytes("white"), - caml_string_of_jsbytes("whitesmoke"), - caml_string_of_jsbytes("yellow"), - caml_string_of_jsbytes("yellowgreen")]), - _b7_= - [0, - [12,35,[4,8,[0,2,2],0,[4,8,[0,2,2],0,[4,8,[0,2,2],0,0]]]], - caml_string_of_jsbytes("#%02X%02X%02X")], - _b1_= - [0, - [11, - caml_string_of_jsbytes("rgb("), - [4,0,0,0,[12,44,[4,0,0,0,[12,44,[4,0,0,0,[12,41,0]]]]]]], - caml_string_of_jsbytes("rgb(%d,%d,%d)")], - _b2_= - [0, - [11, - caml_string_of_jsbytes("rgb("), - [4, - 0, - 0, - 0, - [12,37,[12,44,[4,0,0,0,[12,37,[12,44,[4,0,0,0,[12,37,[12,41,0]]]]]]]]]], - caml_string_of_jsbytes("rgb(%d%%,%d%%,%d%%)")], - _b3_= - [0, - [11, - caml_string_of_jsbytes("rgba("), - [4, - 0, - 0, - 0, - [12,44,[4,0,0,0,[12,44,[4,0,0,0,[12,44,[8,[0,0,0],0,0,[12,41,0]]]]]]]]], - caml_string_of_jsbytes("rgba(%d,%d,%d,%f)")], - _b4_= - [0, - [11, - caml_string_of_jsbytes("rgba("), - [4, - 0, - 0, - 0, - [12, - 37, - [12,44,[4,0,0,0,[12,37,[12,44,[4,0,0,0,[12,37,[12,44,partial]]]]]]]]]], - caml_string_of_jsbytes("rgba(%d%%,%d%%,%d%%,%f)")], - _b5_= - [0, - [11, - caml_string_of_jsbytes("hsl("), - [4, - 0, - 0, - 0, - [12,44,[4,0,0,0,[12,37,[12,44,[4,0,0,0,[12,37,[12,41,0]]]]]]]]], - caml_string_of_jsbytes("hsl(%d,%d%%,%d%%)")], - _b6_= - [0, - [11, - caml_string_of_jsbytes("hsla("), - [4, - 0, - 0, - 0, - [12, - 44, - [4, - 0, - 0, - 0, - [12, - 37, - [12,44,[4,0,0,0,[12,37,[12,44,[8,partial$1,0,0,partial$0]]]]]]]]]], - caml_string_of_jsbytes("hsla(%d,%d%%,%d%%,%f)")], - _y_=[0,240,248,255], - _z_=[0,250,235,215], - _A_=[0,0,255,255], - _B_=[0,127,255,212], - _C_=[0,240,255,255], - _D_=[0,245,245,220], - _E_=[0,255,228,196], - _F_=[0,0,0,0], - _G_=[0,255,235,205], - _H_=[0,0,0,255], - _I_=[0,138,43,226], - _J_=[0,165,42,42], - _K_=[0,222,184,135], - _L_=[0,95,158,160], - _M_=[0,127,255,0], - _N_=[0,210,105,30], - _O_=[0,255,127,80], - _P_=[0,100,149,237], - _Q_=[0,255,248,220], - _R_=[0,220,20,60], - _S_=[0,0,255,255], - _T_=[0,0,0,139], - _U_=[0,0,139,139], - _V_=[0,184,134,11], - _W_=[0,169,169,169], - _X_=[0,0,100,0], - _Y_=[0,169,169,169], - _Z_=[0,189,183,107], - ___=[0,139,0,139], - _$_=[0,85,107,47], - _aa_=[0,255,140,0], - _ab_=[0,153,50,204], - _ac_=[0,139,0,0], - _ad_=[0,233,150,122], - _ae_=[0,143,188,143], - _af_=[0,72,61,139], - _ag_=[0,47,79,79], - _ah_=[0,47,79,79], - _ai_=[0,0,206,209], - _aj_=[0,148,0,211], - _ak_=[0,255,20,147], - _al_=[0,0,191,255], - _am_=[0,105,105,105], - _an_=[0,105,105,105], - _ao_=[0,30,144,255], - _ap_=[0,178,34,34], - _aq_=[0,255,250,240], - _ar_=[0,34,139,34], - _as_=[0,255,0,255], - _at_=[0,220,220,220], - _au_=[0,248,248,255], - _av_=[0,255,215,0], - _aw_=[0,218,165,32], - _ax_=[0,128,128,128], - _ay_=[0,128,128,128], - _az_=[0,0,128,0], - _aA_=[0,173,255,47], - _aB_=[0,240,255,240], - _aC_=[0,255,105,180], - _aD_=[0,205,92,92], - _aE_=[0,75,0,130], - _aF_=[0,255,255,240], - _aG_=[0,240,230,140], - _aH_=[0,230,230,250], - _aI_=[0,255,240,245], - _aJ_=[0,124,252,0], - _aK_=[0,255,250,205], - _aL_=[0,173,216,230], - _aM_=[0,240,128,128], - _aN_=[0,224,255,255], - _aO_=[0,250,250,210], - _aP_=[0,211,211,211], - _aQ_=[0,144,238,144], - _aR_=[0,211,211,211], - _aS_=[0,255,182,193], - _aT_=[0,255,160,122], - _aU_=[0,32,178,170], - _aV_=[0,135,206,250], - _aW_=[0,119,136,153], - _aX_=[0,119,136,153], - _aY_=[0,176,196,222], - _aZ_=[0,255,255,224], - _a0_=[0,0,255,0], - _a1_=[0,50,205,50], - _a2_=[0,250,240,230], - _a3_=[0,255,0,255], - _a4_=[0,128,0,0], - _a5_=[0,102,205,170], - _a6_=[0,0,0,205], - _a7_=[0,186,85,211], - _a8_=[0,147,112,219], - _a9_=[0,60,179,113], - _a__=[0,123,104,238], - _a$_=[0,0,250,154], - _ba_=[0,72,209,204], - _bb_=[0,199,21,133], - _bc_=[0,25,25,112], - _bd_=[0,245,255,250], - _be_=[0,255,228,225], - _bf_=[0,255,228,181], - _bg_=[0,255,222,173], - _bh_=[0,0,0,128], - _bi_=[0,253,245,230], - _bj_=[0,128,128,0], - _bk_=[0,107,142,35], - _bl_=[0,255,165,0], - _bm_=[0,255,69,0], - _bn_=[0,218,112,214], - _bo_=[0,238,232,170], - _bp_=[0,152,251,152], - _bq_=[0,175,238,238], - _br_=[0,219,112,147], - _bs_=[0,255,239,213], - _bt_=[0,255,218,185], - _bu_=[0,205,133,63], - _bv_=[0,255,192,203], - _bw_=[0,221,160,221], - _bx_=[0,176,224,230], - _by_=[0,128,0,128], - _bz_=[0,255,0,0], - _bA_=[0,188,143,143], - _bB_=[0,65,105,225], - _bC_=[0,139,69,19], - _bD_=[0,250,128,114], - _bE_=[0,244,164,96], - _bF_=[0,46,139,87], - _bG_=[0,255,245,238], - _bH_=[0,160,82,45], - _bI_=[0,192,192,192], - _bJ_=[0,135,206,235], - _bK_=[0,106,90,205], - _bL_=[0,112,128,144], - _bM_=[0,112,128,144], - _bN_=[0,255,250,250], - _bO_=[0,0,255,127], - _bP_=[0,70,130,180], - _bQ_=[0,210,180,140], - _bR_=[0,0,128,128], - _bS_=[0,216,191,216], - _bT_=[0,255,99,71], - _bU_=[0,64,224,208], - _bV_=[0,238,130,238], - _bW_=[0,245,222,179], - _bX_=[0,255,255,255], - _bY_=[0,245,245,245], - _bZ_=[0,255,255,0], - _b0_=[0,154,205,50]; - function symbol(x,y){return x < y?1:0} - function symbol$0(x,y){return x <= y?1:0} - function symbol$1(x,y){return x !== y?1:0} - function symbol$2(x,y){return x === y?1:0} - function symbol$3(x,y){return y < x?1:0} - function symbol$4(x,y){return y <= x?1:0} - var compare=runtime.caml_int_compare; - function equal(x,y){return x === y?1:0} - function max(x,y){return y <= x?x:y} - function min(x,y){return x <= y?x:y} - var - Int_replace_polymorphic_compar= - [0, - symbol, - symbol$0, - symbol$1, - symbol$2, - symbol$3, - symbol$4, - compare, - equal, - max, - min], - make=Stdlib_String[1], - init=Stdlib_String[2], - empty=Stdlib_String[3], - of_bytes=Stdlib_String[4], - to_bytes=Stdlib_String[5], - concat=Stdlib_String[6], - cat=Stdlib_String[7], - compare$0=Stdlib_String[9], - starts_with=Stdlib_String[10], - ends_with=Stdlib_String[11], - contains_from=Stdlib_String[12], - rcontains_from=Stdlib_String[13], - contains=Stdlib_String[14], - sub=Stdlib_String[15], - split_on_char=Stdlib_String[16], - map=Stdlib_String[17], - mapi=Stdlib_String[18], - fold_left=Stdlib_String[19], - fold_right=Stdlib_String[20], - for_all=Stdlib_String[21], - exists=Stdlib_String[22], - trim=Stdlib_String[23], - escaped=Stdlib_String[24], - uppercase_ascii=Stdlib_String[25], - lowercase_ascii=Stdlib_String[26], - capitalize_ascii=Stdlib_String[27], - uncapitalize_ascii=Stdlib_String[28], - iter=Stdlib_String[29], - iteri=Stdlib_String[30], - index_from=Stdlib_String[31], - index_from_opt=Stdlib_String[32], - rindex_from=Stdlib_String[33], - rindex_from_opt=Stdlib_String[34], - index=Stdlib_String[35], - index_opt=Stdlib_String[36], - rindex=Stdlib_String[37], - rindex_opt=Stdlib_String[38], - to_seq=Stdlib_String[39], - to_seqi=Stdlib_String[40], - of_seq=Stdlib_String[41], - get_utf_8_uchar=Stdlib_String[42], - is_valid_utf_8=Stdlib_String[43], - get_utf_16be_uchar=Stdlib_String[44], - is_valid_utf_16be=Stdlib_String[45], - get_utf_16le_uchar=Stdlib_String[46], - is_valid_utf_16le=Stdlib_String[47], - blit=Stdlib_String[48], - copy=Stdlib_String[49], - fill=Stdlib_String[50], - uppercase=Stdlib_String[51], - lowercase=Stdlib_String[52], - capitalize=Stdlib_String[53], - uncapitalize=Stdlib_String[54], - get_uint8=Stdlib_String[55], - get_int8=Stdlib_String[56], - get_uint16_ne=Stdlib_String[57], - get_uint16_be=Stdlib_String[58], - get_uint16_le=Stdlib_String[59], - get_int16_ne=Stdlib_String[60], - get_int16_be=Stdlib_String[61], - get_int16_le=Stdlib_String[62], - get_int32_ne=Stdlib_String[63], - get_int32_be=Stdlib_String[64], - get_int32_le=Stdlib_String[65], - get_int64_ne=Stdlib_String[66], - get_int64_be=Stdlib_String[67], - get_int64_le=Stdlib_String[68]; - function equal$0(x,y){return runtime.caml_string_equal(x,y)} - var - String= +//# 1 "../../.js/default/js_of_ocaml/js_of_ocaml.cma.js" +// Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 + +//# 19 "../../.js/default/js_of_ocaml/js_of_ocaml.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + global_data = runtime.caml_get_global_data(), + Stdlib_String = global_data.Stdlib__String, + Stdlib_Char = global_data.Stdlib__Char, + Poly = [0]; + function max(x, y){return y <= x ? x : y;} + function min(x, y){return x <= y ? x : y;} + var + Int_replace_polymorphic_compar = [0, max, min], + make = Stdlib_String[1], + init = Stdlib_String[2], + empty = Stdlib_String[3], + of_bytes = Stdlib_String[4], + to_bytes = Stdlib_String[5], + concat = Stdlib_String[6], + cat = Stdlib_String[7], + compare = Stdlib_String[9], + starts_with = Stdlib_String[10], + ends_with = Stdlib_String[11], + contains_from = Stdlib_String[12], + rcontains_from = Stdlib_String[13], + contains = Stdlib_String[14], + sub = Stdlib_String[15], + split_on_char = Stdlib_String[16], + map = Stdlib_String[17], + mapi = Stdlib_String[18], + fold_left = Stdlib_String[19], + fold_right = Stdlib_String[20], + for_all = Stdlib_String[21], + exists = Stdlib_String[22], + trim = Stdlib_String[23], + escaped = Stdlib_String[24], + uppercase_ascii = Stdlib_String[25], + lowercase_ascii = Stdlib_String[26], + capitalize_ascii = Stdlib_String[27], + uncapitalize_ascii = Stdlib_String[28], + iter = Stdlib_String[29], + iteri = Stdlib_String[30], + index_from = Stdlib_String[31], + index_from_opt = Stdlib_String[32], + rindex_from = Stdlib_String[33], + rindex_from_opt = Stdlib_String[34], + index = Stdlib_String[35], + index_opt = Stdlib_String[36], + rindex = Stdlib_String[37], + rindex_opt = Stdlib_String[38], + to_seq = Stdlib_String[39], + to_seqi = Stdlib_String[40], + of_seq = Stdlib_String[41], + get_utf_8_uchar = Stdlib_String[42], + is_valid_utf_8 = Stdlib_String[43], + get_utf_16be_uchar = Stdlib_String[44], + is_valid_utf_16be = Stdlib_String[45], + get_utf_16le_uchar = Stdlib_String[46], + is_valid_utf_16le = Stdlib_String[47], + blit = Stdlib_String[48], + copy = Stdlib_String[49], + fill = Stdlib_String[50], + uppercase = Stdlib_String[51], + lowercase = Stdlib_String[52], + capitalize = Stdlib_String[53], + uncapitalize = Stdlib_String[54], + get_uint8 = Stdlib_String[55], + get_int8 = Stdlib_String[56], + get_uint16_ne = Stdlib_String[57], + get_uint16_be = Stdlib_String[58], + get_uint16_le = Stdlib_String[59], + get_int16_ne = Stdlib_String[60], + get_int16_be = Stdlib_String[61], + get_int16_le = Stdlib_String[62], + get_int32_ne = Stdlib_String[63], + get_int32_be = Stdlib_String[64], + get_int32_le = Stdlib_String[65], + get_int64_ne = Stdlib_String[66], + get_int64_be = Stdlib_String[67], + get_int64_le = Stdlib_String[68], + equal = runtime.caml_string_equal, + String = [0, make, init, @@ -46944,7 +44894,7 @@ to_bytes, concat, cat, - compare$0, + compare, starts_with, ends_with, contains_from, @@ -47004,17 +44954,17 @@ get_int64_ne, get_int64_be, get_int64_le, - equal$0], - chr=Stdlib_Char[1], - escaped$0=Stdlib_Char[2], - lowercase$0=Stdlib_Char[3], - uppercase$0=Stdlib_Char[4], - lowercase_ascii$0=Stdlib_Char[5], - uppercase_ascii$0=Stdlib_Char[6], - compare$1=Stdlib_Char[7]; - function equal$1(x,y){return x === y?1:0} - var - Char= + equal], + chr = Stdlib_Char[1], + escaped$0 = Stdlib_Char[2], + lowercase$0 = Stdlib_Char[3], + uppercase$0 = Stdlib_Char[4], + lowercase_ascii$0 = Stdlib_Char[5], + uppercase_ascii$0 = Stdlib_Char[6], + compare$0 = Stdlib_Char[7]; + function equal$0(x, y){return x === y ? 1 : 0;} + var + Char = [0, chr, escaped$0, @@ -47022,222 +44972,286 @@ uppercase$0, lowercase_ascii$0, uppercase_ascii$0, - compare$1, - equal$1], - symbol$5=Int_replace_polymorphic_compar[1], - symbol$6=Int_replace_polymorphic_compar[2], - symbol$7=Int_replace_polymorphic_compar[3], - symbol$8=Int_replace_polymorphic_compar[4], - symbol$9=Int_replace_polymorphic_compar[5], - symbol$10=Int_replace_polymorphic_compar[6], - compare$2=Int_replace_polymorphic_compar[7], - equal$2=Int_replace_polymorphic_compar[8], - max$0=Int_replace_polymorphic_compar[9], - min$0=Int_replace_polymorphic_compar[10], - Js_of_ocaml_Import= + compare$0, + equal$0], + max$0 = Int_replace_polymorphic_compar[1], + min$0 = Int_replace_polymorphic_compar[2], + Js_of_ocaml_Import = + [0, Poly, Int_replace_polymorphic_compar, String, Char, max$0, min$0]; + runtime.caml_register_global(2, Js_of_ocaml_Import, "Js_of_ocaml__Import"); + return; + } + (globalThis)); + +//# 200 "../../.js/default/js_of_ocaml/js_of_ocaml.cma.js" +(function + (globalThis){ + "use strict"; + var + jsoo_exports = typeof module === "object" && module.exports || globalThis, + runtime = globalThis.jsoo_runtime, + cst_parseFloat$0 = "parseFloat", + cst_parseInt$0 = "parseInt", + caml_js_get = runtime.caml_js_get, + caml_js_set = runtime.caml_js_set, + caml_js_wrap_callback = runtime.caml_js_wrap_callback, + caml_string_of_jsstring = runtime.caml_string_of_jsstring; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + var + global_data = runtime.caml_get_global_data(), + Js_of_ocaml_Import = global_data.Js_of_ocaml__Import, + Stdlib = global_data.Stdlib, + Jsoo_runtime = global_data.Jsoo_runtime, + Stdlib_Printexc = global_data.Stdlib__Printexc, + global = globalThis, + Unsafe = [0, global], + null$0 = null, + undefined$0 = undefined, + cst_function = "function", + cst_parseFloat = cst_parseFloat$0, + cst_parseInt = cst_parseInt$0; + function return$0(_z_){return _z_;} + function map(x, f){return x == null$0 ? null$0 : caml_call1(f, x);} + function bind(x, f){return x == null$0 ? null$0 : caml_call1(f, x);} + function test(x){return 1 - (x == null$0 ? 1 : 0);} + function iter(x, f){ + var _y_ = 1 - (x == null$0 ? 1 : 0); + return _y_ ? caml_call1(f, x) : _y_; + } + function case$0(x, f, g){ + return x == null$0 ? caml_call1(f, 0) : caml_call1(g, x); + } + function get(x, f){return x == null$0 ? caml_call1(f, 0) : x;} + function option(x){if(! x) return null$0; var x$0 = x[1]; return x$0;} + function to_option(x){ + function _x_(x){return [0, x];} + return case$0(x, function(param){return 0;}, _x_); + } + var + Opt = [0, - Poly, - Int_replace_polymorphic_compar, - String, - Char, - symbol$5, - symbol$6, - symbol$7, - symbol$8, - symbol$9, - symbol$10, - compare$2, - equal$2, - max$0, - min$0]; - caml_register_global(1656,Js_of_ocaml_Import,"Js_of_ocaml__Import"); - var global=globalThis,Unsafe=[0,global],no_handler=null,t39=undefined; - function return$0(_g2_){return _g2_} - function map$0(x,f){return x == no_handler?no_handler:caml_call1(f,x)} - function bind(x,f){return x == no_handler?no_handler:caml_call1(f,x)} - function test(x){return 1 - (x == no_handler?1:0)} - function iter$0(x,f) - {var _g1_=1 - (x == no_handler?1:0);return _g1_?caml_call1(f,x):_g1_} - function case$0(x,f,g) - {return x == no_handler?caml_call1(f,0):caml_call1(g,x)} - function get(x,f){return x == no_handler?caml_call1(f,0):x} - function option(x){if(x){var x$0=x[1];return x$0}return no_handler} - function to_option(x) - {function _g0_(x){return [0,x]} - return case$0(x,function(param){return 0},_g0_)} - var - Opt= - [0, - no_handler, + null$0, return$0, - map$0, + map, bind, test, - iter$0, + iter, case$0, get, option, to_option]; - function return$1(_gZ_){return _gZ_} - function map$1(x,f){return x === t39?t39:caml_call1(f,x)} - function bind$0(x,f){return x === t39?t39:caml_call1(f,x)} - function test$0(x){return x !== t39?1:0} - function iter$1(x,f) - {var _gY_=x !== t39?1:0;return _gY_?caml_call1(f,x):_gY_} - function case$1(x,f,g){return x === t39?caml_call1(f,0):caml_call1(g,x)} - function get$0(x,f){return x === t39?caml_call1(f,0):x} - function option$0(x){if(x){var x$0=x[1];return x$0}return t39} - function to_option$0(x) - {function _gX_(x){return [0,x]} - return case$1(x,function(param){return 0},_gX_)} - var - Optdef= + function return$1(_w_){return _w_;} + function map$0(x, f){ + return x === undefined$0 ? undefined$0 : caml_call1(f, x); + } + function bind$0(x, f){ + return x === undefined$0 ? undefined$0 : caml_call1(f, x); + } + function test$0(x){return x !== undefined$0 ? 1 : 0;} + function iter$0(x, f){ + var _v_ = x !== undefined$0 ? 1 : 0; + return _v_ ? caml_call1(f, x) : _v_; + } + function case$1(x, f, g){ + return x === undefined$0 ? caml_call1(f, 0) : caml_call1(g, x); + } + function get$0(x, f){return x === undefined$0 ? caml_call1(f, 0) : x;} + function option$0(x){ + if(! x) return undefined$0; + var x$0 = x[1]; + return x$0; + } + function to_option$0(x){ + function _u_(x){return [0, x];} + return case$1(x, function(param){return 0;}, _u_); + } + var + Optdef = [0, - t39, + undefined$0, return$1, - map$1, + map$0, bind$0, test$0, - iter$1, + iter$0, case$1, get$0, option$0, to_option$0]; - function coerce(x,f,g) - {function _gV_(param){return caml_call1(g,x)} - var _gW_=caml_call1(f,x); - return caml_call2(Opt[8],_gW_,_gV_)} - function coerce_opt(x,f,g) - {function _gT_(param){return caml_call1(g,x)} - var _gU_=caml_call2(Opt[4],x,f); - return caml_call2(Opt[8],_gU_,_gT_)} - var - t38=true, - t4=false, - nfc="NFC", - nfd="NFD", - nfkc="NFKC", - nfkd="NFKD", - string_constr=Unsafe[1].String, - t11=Unsafe[1].RegExp, - t4$0=Unsafe[1].Object; - function object_keys(t3){return t4$0.keys(t3)} - var - array_length=Unsafe[1].Array, - array_get=caml_js_get, - array_set=caml_js_set; - function array_map(f,a) - {return a.map - (caml_js_wrap_callback - (function(x,idx,param){return caml_call1(f,x)}))} - function array_mapi(f,a) - {return a.map - (caml_js_wrap_callback - (function(x,idx,param){return caml_call2(f,idx,x)}))} - function str_array(_gS_){return _gS_} - function match_result(_gR_){return _gR_} - var - t116=Unsafe[1].Date, - math=Unsafe[1].Math, - error_constr=Unsafe[1].Error, - include=Jsoo_runtime[3], - raise=include[1], - attach_js_backtrace=include[2], - of_exn=include[3], - Error=include[4]; - function name(e){return caml_string_of_jsstring(e.name)} - function message(e){return caml_string_of_jsstring(e.message)} - function stack(e) - {var _gQ_=caml_call2(Opt[3],e.stack,caml_string_of_jsstring); - return caml_call1(Opt[10],_gQ_)} - function to_string(e){return caml_string_of_jsstring(e.toString())} - function raise_js_error(e){return caml_call1(raise,e)} - function string_of_error(e){return to_string(e)} - var JSON=Unsafe[1].JSON; - function decodeURI(s){return Unsafe[1].decodeURI(s)} - function decodeURIComponent(s){return Unsafe[1].decodeURIComponent(s)} - function encodeURI(s){return Unsafe[1].encodeURI(s)} - function encodeURIComponent(s){return Unsafe[1].encodeURIComponent(s)} - function escape(s){return Unsafe[1].escape(s)} - function unescape(s){return Unsafe[1].unescape(s)} - function isNaN(i){return Unsafe[1].isNaN(i) | 0} - function parseInt(s) - {var s$0=Unsafe[1].parseInt(s); - return isNaN(s$0)?caml_call1(Stdlib[2],cst_parseInt):s$0} - function parseFloat(s) - {var s$0=Unsafe[1].parseFloat(s); - return isNaN(s$0)?caml_call1(Stdlib[2],cst_parseFloat):s$0} - function _a_(param) - {if(param[1] === Error){var e=param[2];return [0,to_string(e)]}return 0} - caml_call1(Stdlib_Printexc[9],_a_); - function _b_(e) - {return e instanceof array_length - ?0 - :[0,caml_string_of_jsstring(e.toString())]} - caml_call1(Stdlib_Printexc[9],_b_); - function export_js(field,x){return jsoo_exports[field] = x} - function export$0(field,x) - {return export_js(caml_jsstring_of_string(field),x)} - function export_all(obj) - {var - t27=object_keys(obj), - t26= - caml_js_wrap_callback - (function(key,param,_gP_){return export_js(key,obj[key])}); - return t27.forEach(t26)} - var _c_=runtime.caml_js_error_of_exception; - function _d_(_gO_){return _gO_} - var - _e_= + function coerce(x, f, g){ + function _s_(param){return caml_call1(g, x);} + var _t_ = caml_call1(f, x); + return caml_call2(Opt[8], _t_, _s_); + } + function coerce_opt(x, f, g){ + function _q_(param){return caml_call1(g, x);} + var _r_ = caml_call2(Opt[4], x, f); + return caml_call2(Opt[8], _r_, _q_); + } + var + true$0 = true, + false$0 = false, + nfc = "NFC", + nfd = "NFD", + nfkc = "NFKC", + nfkd = "NFKD", + t0 = Unsafe[1], + string_constr = t0.String, + t1 = Unsafe[1], + regExp = t1.RegExp, + t2 = Unsafe[1], + object_constructor = t2.Object; + function object_keys(o){return object_constructor.keys(o);} + var + t5 = Unsafe[1], + array_constructor = t5.Array, + array_get = caml_js_get, + array_set = caml_js_set; + function array_map(f, a){ + return a.map + (caml_js_wrap_callback + (function(x, idx, param){return caml_call1(f, x);})); + } + function array_mapi(f, a){ + return a.map + (caml_js_wrap_callback + (function(x, idx, param){return caml_call2(f, idx, x);})); + } + function str_array(_p_){return _p_;} + function match_result(_o_){return _o_;} + var + t8 = Unsafe[1], + date_constr = t8.Date, + t9 = Unsafe[1], + math = t9.Math, + t10 = Unsafe[1], + error_constr = t10.Error, + include = Jsoo_runtime[3], + raise = include[1], + exn_with_js_backtrace = include[2], + of_exn = include[3], + Error = include[4]; + function name(t11){return caml_string_of_jsstring(t11.name);} + function message(t12){return caml_string_of_jsstring(t12.message);} + function stack(t13){ + var _n_ = caml_call2(Opt[3], t13.stack, caml_string_of_jsstring); + return caml_call1(Opt[10], _n_); + } + function to_string(e){return caml_string_of_jsstring(e.toString());} + function raise_js_error(e){return caml_call1(raise, e);} + function string_of_error(e){return to_string(e);} + var t15 = Unsafe[1], JSON = t15.JSON; + function decodeURI(s){var t16 = Unsafe[1]; return t16.decodeURI(s);} + function decodeURIComponent(s){ + var t17 = Unsafe[1]; + return t17.decodeURIComponent(s); + } + function encodeURI(s){var t18 = Unsafe[1]; return t18.encodeURI(s);} + function encodeURIComponent(s){ + var t19 = Unsafe[1]; + return t19.encodeURIComponent(s); + } + function escape(s){var t20 = Unsafe[1]; return t20.escape(s);} + function unescape(s){var t21 = Unsafe[1]; return t21.unescape(s);} + function isNaN(i){var t22 = Unsafe[1]; return t22.isNaN(i) | 0;} + function parseInt(s){ + var t23 = Unsafe[1], s$0 = t23.parseInt(s); + return isNaN(s$0) ? caml_call1(Stdlib[2], cst_parseInt) : s$0; + } + function parseFloat(s){ + var t24 = Unsafe[1], s$0 = t24.parseFloat(s); + return isNaN(s$0) ? caml_call1(Stdlib[2], cst_parseFloat) : s$0; + } + function _a_(param){ + if(param[1] !== Error) return 0; + var e = param[2]; + return [0, to_string(e)]; + } + caml_call1(Stdlib_Printexc[9], _a_); + function _b_(e){ + return e instanceof array_constructor + ? 0 + : [0, caml_string_of_jsstring(e.toString())]; + } + caml_call1(Stdlib_Printexc[9], _b_); + function export_js(field, x){ + var _l_ = caml_string_of_jsstring(typeof x), switch$0 = 0; + if + (caml_call2(Js_of_ocaml_Import[3][68], _l_, cst_function) && 0 < x.length){var _m_ = caml_js_wrap_callback(x); switch$0 = 1;} + if(! switch$0) var _m_ = x; + return jsoo_exports[field] = _m_; + } + function export$0(field, x){ + return export_js(runtime.caml_jsstring_of_string(field), x); + } + function export_all(obj){ + var keys = object_keys(obj); + return keys.forEach + (caml_js_wrap_callback + (function(key, param, _k_){return export_js(key, obj[key]);})); + } + var _c_ = runtime.caml_js_error_of_exception; + function _d_(_j_){return _j_;} + var + _e_ = [0, to_string, name, message, stack, raise, - attach_js_backtrace, + exn_with_js_backtrace, of_exn, Error, - function(_gN_){return _gN_}, + function(_i_){return _i_;}, _d_]; - function _f_(_gM_){return _gM_} - var - Js_of_ocaml_Js= + function _f_(_h_){return _h_;} + var + Js_of_ocaml_Js = [0, - no_handler, - function(_gL_){return _gL_}, - t39, + null$0, + function(_g_){return _g_;}, + undefined$0, _f_, Opt, Optdef, - t38, - t4, + true$0, + false$0, nfd, nfc, nfkd, nfkc, string_constr, - t11, - t11, - t11, + regExp, + regExp, + regExp, object_keys, - array_length, - array_length, + array_constructor, + array_constructor, array_get, array_set, array_map, array_mapi, str_array, match_result, - t116, - t116, - t116, - t116, - t116, - t116, - t116, - t116, - t116, + date_constr, + date_constr, + date_constr, + date_constr, + date_constr, + date_constr, + date_constr, + date_constr, + date_constr, math, error_constr, _e_, @@ -47258,3961 +45272,265 @@ Unsafe, string_of_error, raise_js_error, - attach_js_backtrace, + exn_with_js_backtrace, _c_, Error]; - caml_register_global(1660,Js_of_ocaml_Js,"Js_of_ocaml__Js"); - function list_of_nodeList(nodeList) - {var length=nodeList.length,acc=0,i=0; - for(;;) - {if(caml_call2(symbol$5,i,length)) - {var _gK_=nodeList.item(i),match=caml_call1(Opt[10],_gK_); - if(match) - {var e=match[1],i$0=i + 1 | 0,acc$0=[0,e,acc],acc=acc$0,i=i$0; - continue} - var i$1=i + 1 | 0,i=i$1; - continue} - return caml_call1(Stdlib_List[9],acc)}} - var - disconnected=1, - preceding=2, - following=4, - contains$0=8, - contained_by=16, - implementation_specific=32; - function has(t,mask){return caml_call2(symbol$8,t & mask,mask)} - function add(x,y){return x | y} - var - DocumentPosition= - [0, - disconnected, - preceding, - following, - contains$0, - contained_by, - implementation_specific, - has, - add, - add]; - function appendChild(p,n){p.appendChild(n);return 0} - function removeChild(p,n){p.removeChild(n);return 0} - function replaceChild(p,n,o){p.replaceChild(n,o);return 0} - function insertBefore(p,n,o){p.insertBefore(n,o);return 0} - function nodeType(e) - {var match=e.nodeType; - if(match) - switch(match - 1 | 0) - {case 0:return [0,e];case 1:return [1,e];case 2:case 3:return [2,e]} - return [3,e]} - function cast(e,t){return e.nodeType === t?e:no_handler} - function element(e){return cast(e,1)} - function text(e) - {if(3 !== e.nodeType && 4 !== e.nodeType)return no_handler;return e} - function attr(e){return cast(e,2)} - function handler(f) - {return function(e) - {if(caml_call1(Opt[5],e)) - {var res=caml_call1(f,e); - if(1 - (res | 0))e.preventDefault(); - return res} - var t18=event,t17=caml_call1(f,t18); - if(1 - (t17 | 0))t18.returnValue = t17; - return t17}} - function full_handler(f) - {return runtime.caml_js_wrap_meth_callback_unsafe - (function(this$0,e) - {if(caml_call1(Opt[5],e)) - {var res=caml_call2(f,this$0,e); - if(1 - (res | 0))e.preventDefault(); - return res} - var t21=event,t20=caml_call2(f,this$0,t21); - if(1 - (t20 | 0))t21.returnValue = t20; - return t20})} - function invoke_handler(f,this$0,event){return f.call(this$0,event)} - function eventTarget(e) - {function _gH_(param) - {function _gJ_(param){throw Stdlib[8]} - return caml_call2(Opt[8],e.srcElement,_gJ_)} - var t27=caml_call2(Opt[8],e.target,_gH_); - if(t27 instanceof Unsafe[1].Node) - {if(3 === t27.nodeType) - {var _gI_=function(param){throw [0,Assert_failure,_g_]}; - return caml_call2(Opt[8],t27.parentNode,_gI_)} - return t27} - return t27} - function make$0(s){return caml_jsstring_of_string(s)} - var Event=[0,make$0]; - function addEventListenerWithOptions(t50,t47,capture,once,passive,t48) - {if(t50.addEventListener === t39) - {var - t34="on".concat(t47), - t35= - function(e) - {var _gE_=[0,t48,e,[0]]; - return function(_gF_,_gG_) - {return runtime.caml_js_call(_gE_,_gF_,_gG_)}}; - t50.attachEvent(t34,t35); - return function(param){return t50.detachEvent(t34,t35)}} - var t49={}; - function iter(t,f){if(t){var b=t[1];return caml_call1(f,b)}return 0} - iter(capture,function(t37){return t49.capture = t37}); - iter(once,function(t39){return t49.once = t39}); - iter(passive,function(t41){return t49.passive = t41}); - t50.addEventListener(t47,t48,t49); - return function(param){return t50.removeEventListener(t47,t48,t49)}} - function addEventListener(e,typ,h,capt) - {return addEventListenerWithOptions(e,typ,[0,capt],0,0,h)} - function removeEventListener(id){return caml_call1(id,0)} - function preventDefault(t54) - {if(caml_call1(Optdef[5],t54.preventDefault))return t54.preventDefault(); - var t53=! ! 0; - return t54.returnValue = t53} - function createCustomEvent(bubbles,cancelable,detail,t62) - {function opt_iter(f,param) - {if(param){var x=param[1];return caml_call1(f,x)}return 0} - var t63={}; - opt_iter(function(x){var t55=! ! x;return t63.bubbles = t55},bubbles); - opt_iter - (function(x){var t57=! ! x;return t63.cancelable = t57},cancelable); - opt_iter(function(t59){return t63.detail = t59},detail); - var t64=Unsafe[1].CustomEvent; - return new t64(t62,t63)} - var - Js_of_ocaml_Dom= - [0, - DocumentPosition, - insertBefore, - replaceChild, - removeChild, - appendChild, - list_of_nodeList, - nodeType, - [0,element,text,attr], - no_handler, - handler, - full_handler, - invoke_handler, - eventTarget, - Event, - addEventListenerWithOptions, - addEventListener, - removeEventListener, - preventDefault, - createCustomEvent]; - caml_register_global(1663,Js_of_ocaml_Dom,"Js_of_ocaml__Dom"); - var - arrayBuffer=Unsafe[1].ArrayBuffer, - int8Array_inBuffer=Unsafe[1].Int8Array, - t11$0=Unsafe[1].Uint8Array, - int16Array_inBuffer=Unsafe[1].Int16Array, - uint16Array_inBuffer=Unsafe[1].Uint16Array, - int32Array_inBuffer=Unsafe[1].Int32Array, - uint32Array_inBuffer=Unsafe[1].Uint32Array, - float32Array_inBuffer=Unsafe[1].Float32Array, - float64Array_inBuffer=Unsafe[1].Float64Array, - set=caml_js_set; - function get$1(a,i){return a[i]} - function unsafe_get(a,i){return a[i]} - var dataView=Unsafe[1].DataView; - function of_arrayBuffer(ab) - {var uint8=new t11$0(ab);return caml_string_of_array(uint8)} - var - Js_of_ocaml_Typed_array= - [0, - arrayBuffer, - runtime.caml_ba_kind_of_typed_array, - runtime.caml_ba_to_typed_array, - runtime.caml_ba_from_typed_array, - int8Array_inBuffer, - int8Array_inBuffer, - int8Array_inBuffer, - int8Array_inBuffer, - int8Array_inBuffer, - t11$0, - t11$0, - t11$0, - t11$0, - t11$0, - int16Array_inBuffer, - int16Array_inBuffer, - int16Array_inBuffer, - int16Array_inBuffer, - int16Array_inBuffer, - uint16Array_inBuffer, - uint16Array_inBuffer, - uint16Array_inBuffer, - uint16Array_inBuffer, - uint16Array_inBuffer, - int32Array_inBuffer, - int32Array_inBuffer, - int32Array_inBuffer, - int32Array_inBuffer, - int32Array_inBuffer, - uint32Array_inBuffer, - uint32Array_inBuffer, - uint32Array_inBuffer, - uint32Array_inBuffer, - uint32Array_inBuffer, - float32Array_inBuffer, - float32Array_inBuffer, - float32Array_inBuffer, - float32Array_inBuffer, - float32Array_inBuffer, - float64Array_inBuffer, - float64Array_inBuffer, - float64Array_inBuffer, - float64Array_inBuffer, - float64Array_inBuffer, - set, - get$1, - unsafe_get, - dataView, - dataView, - [0, - runtime.bigstring_to_array_buffer, - runtime.bigstring_to_typed_array, - runtime.bigstring_of_array_buffer, - runtime.bigstring_of_typed_array], - [0,of_arrayBuffer,caml_string_of_array]]; - caml_register_global - (1664,Js_of_ocaml_Typed_array,"Js_of_ocaml__Typed_array"); - var t3=Unsafe[1].Blob; - function filter_map(f,param) - {var param$0=param; - for(;;) - {if(param$0) - {var q=param$0[2],v=param$0[1],match=caml_call1(f,v); - if(match){var v$0=match[1];return [0,v$0,filter_map(f,q)]} - var param$0=q; - continue} - return 0}} - function blob_raw(contentType,endings,a) - {var _gA_=0; - if(endings) - var _gB_=116179762 <= endings[1]?_h_:_i_,_gC_=_gB_; - else - var _gC_=0; - var - _gD_=[0,[0,cst_type,contentType],[0,[0,cst_endings,_gC_],_gA_]], - options= - filter_map - (function(param) - {var v=param[2],name=param[1]; - if(v) - {var v$0=v[1];return [0,[0,name,caml_jsstring_of_string(v$0)]]} - return 0}, - _gD_), - options$0= - options - ?runtime.caml_js_object(caml_call1(Stdlib_Array[12],options)) - :t39, - t1=caml_js_from_array(a); - return new t3(t1,options$0)} - function blob_from_string(contentType,endings,s) - {return blob_raw(contentType,endings,[0,caml_jsstring_of_string(s)])} - function blob_from_any(contentType,endings,l) - {function _gy_(param) - {var _gz_=param[1]; - if(155580615 === _gz_){var s=param[2];return s} - if(486041214 <= _gz_) - {if(1037850489 <= _gz_){var a=param[2];return a} - var a$0=param[2]; - return a$0} - if(288368849 <= _gz_) - {var s$0=param[2];return caml_jsstring_of_string(s$0)} - var b=param[2]; - return b} - var l$0=caml_call2(Stdlib_List[19],_gy_,l); - return blob_raw(contentType,endings,caml_call1(Stdlib_Array[12],l$0))} - function filename(file) - {var match=caml_call1(Optdef[10],file.name); - if(match){var name=match[1];return name} - var match$0=caml_call1(Optdef[10],file.fileName); - if(match$0){var name$0=match$0[1];return name$0} - return caml_call1(Stdlib[2],cst_can_t_retrieve_file_name_n)} - var doc_constr=Unsafe[1].Document; - function document(e){return e instanceof doc_constr?e:no_handler} - function blob(e){return e instanceof t3?e:no_handler} - function string(e){return typeof e === "string"?e:no_handler} - function arrayBuffer$0(e){return e instanceof arrayBuffer?e:no_handler} - var - loadstart=caml_call1(Event[1],cst_loadstart), - progress=caml_call1(Event[1],cst_progress), - abort=caml_call1(Event[1],cst_abort), - error=caml_call1(Event[1],cst_error), - load=caml_call1(Event[1],cst_load), - loadend=caml_call1(Event[1],cst_loadend), - ReaderEvent=[0,loadstart,progress,abort,error,load,loadend], - fileReader=Unsafe[1].FileReader, - Js_of_ocaml_File= - [0, - blob_from_string, - blob_from_any, - [0,document,blob,function(_gx_){return _gx_},string,arrayBuffer$0], - ReaderEvent, - filename, - fileReader, - addEventListener]; - caml_register_global(1666,Js_of_ocaml_File,"Js_of_ocaml__File"); - var - onIE=runtime.caml_js_on_ie(0) | 0, - click=caml_call1(Event[1],cst_click), - copy$0=caml_call1(Event[1],cst_copy), - cut=caml_call1(Event[1],cst_cut), - paste=caml_call1(Event[1],cst_paste), - dblclick=caml_call1(Event[1],cst_dblclick), - mousedown=caml_call1(Event[1],cst_mousedown), - mouseup=caml_call1(Event[1],cst_mouseup), - mouseover=caml_call1(Event[1],cst_mouseover), - mousemove=caml_call1(Event[1],cst_mousemove), - mouseout=caml_call1(Event[1],cst_mouseout), - keypress=caml_call1(Event[1],cst_keypress), - keydown=caml_call1(Event[1],cst_keydown), - keyup=caml_call1(Event[1],cst_keyup), - mousewheel=caml_call1(Event[1],cst_mousewheel), - wheel=caml_call1(Event[1],cst_wheel), - DOMMouseScroll=caml_call1(Event[1],cst_DOMMouseScroll), - touchstart=caml_call1(Event[1],cst_touchstart), - touchmove=caml_call1(Event[1],cst_touchmove), - touchend=caml_call1(Event[1],cst_touchend), - touchcancel=caml_call1(Event[1],cst_touchcancel), - dragstart=caml_call1(Event[1],cst_dragstart), - dragend=caml_call1(Event[1],cst_dragend), - dragenter=caml_call1(Event[1],cst_dragenter), - dragover=caml_call1(Event[1],cst_dragover), - dragleave=caml_call1(Event[1],cst_dragleave), - drag=caml_call1(Event[1],cst_drag), - drop=caml_call1(Event[1],cst_drop), - hashchange=caml_call1(Event[1],cst_hashchange), - change=caml_call1(Event[1],cst_change), - input=caml_call1(Event[1],cst_input), - timeupdate=caml_call1(Event[1],cst_timeupdate), - submit=caml_call1(Event[1],cst_submit), - scroll=caml_call1(Event[1],cst_scroll), - focus=caml_call1(Event[1],cst_focus), - blur=caml_call1(Event[1],cst_blur), - load$0=caml_call1(Event[1],cst_load$0), - unload=caml_call1(Event[1],cst_unload), - beforeunload=caml_call1(Event[1],cst_beforeunload), - resize=caml_call1(Event[1],cst_resize), - orientationchange=caml_call1(Event[1],cst_orientationchange), - popstate=caml_call1(Event[1],cst_popstate), - error$0=caml_call1(Event[1],cst_error$0), - abort$0=caml_call1(Event[1],cst_abort$0), - select=caml_call1(Event[1],cst_select), - online=caml_call1(Event[1],cst_online), - offline=caml_call1(Event[1],cst_offline), - checking=caml_call1(Event[1],cst_checking), - noupdate=caml_call1(Event[1],cst_noupdate), - downloading=caml_call1(Event[1],cst_downloading), - progress$0=caml_call1(Event[1],cst_progress$0), - updateready=caml_call1(Event[1],cst_updateready), - cached=caml_call1(Event[1],cst_cached), - obsolete=caml_call1(Event[1],cst_obsolete), - domContentLoaded=caml_call1(Event[1],cst_DOMContentLoaded), - animationstart=caml_call1(Event[1],cst_animationstart), - animationend=caml_call1(Event[1],cst_animationend), - animationiteration=caml_call1(Event[1],cst_animationiteration), - animationcancel=caml_call1(Event[1],cst_animationcancel), - transitionrun=caml_call1(Event[1],cst_transitionrun), - transitionstart=caml_call1(Event[1],cst_transitionstart), - transitionend=caml_call1(Event[1],cst_transitionend), - transitioncancel=caml_call1(Event[1],cst_transitioncancel), - canplay=caml_call1(Event[1],cst_canplay), - canplaythrough=caml_call1(Event[1],cst_canplaythrough), - durationchange=caml_call1(Event[1],cst_durationchange), - emptied=caml_call1(Event[1],cst_emptied), - ended=caml_call1(Event[1],cst_ended), - gotpointercapture=caml_call1(Event[1],cst_gotpointercapture), - loadeddata=caml_call1(Event[1],cst_loadeddata), - loadedmetadata=caml_call1(Event[1],cst_loadedmetadata), - loadstart$0=caml_call1(Event[1],cst_loadstart$0), - lostpointercapture=caml_call1(Event[1],cst_lostpointercapture), - message$0=caml_call1(Event[1],cst_message), - pause=caml_call1(Event[1],cst_pause), - play=caml_call1(Event[1],cst_play), - playing=caml_call1(Event[1],cst_playing), - pointerenter=caml_call1(Event[1],cst_pointerenter), - pointercancel=caml_call1(Event[1],cst_pointercancel), - pointerdown=caml_call1(Event[1],cst_pointerdown), - pointerleave=caml_call1(Event[1],cst_pointerleave), - pointermove=caml_call1(Event[1],cst_pointermove), - pointerout=caml_call1(Event[1],cst_pointerout), - pointerover=caml_call1(Event[1],cst_pointerover), - pointerup=caml_call1(Event[1],cst_pointerup), - ratechange=caml_call1(Event[1],cst_ratechange), - seeked=caml_call1(Event[1],cst_seeked), - seeking=caml_call1(Event[1],cst_seeking), - stalled=caml_call1(Event[1],cst_stalled), - suspend=caml_call1(Event[1],cst_suspend), - volumechange=caml_call1(Event[1],cst_volumechange), - waiting=caml_call1(Event[1],cst_waiting), - make$1=Event[1], - d="2d"; - function location_origin(loc) - {function _gv_(o){return o} - function _gw_(param) - {var t8=loc.protocol,t7=loc.hostname,t9=loc.port; - if - (caml_call2(symbol$8,t8.length,0) - && - caml_call2(symbol$8,t7.length,0)) - return ""; - var t13=t8.concat("//",t7); - if(caml_call2(symbol$9,t9.length,0)) - {var t12=loc.port;return t13.concat(":",t12)} - return t13} - return caml_call3(Optdef[7],loc.origin,_gw_,_gv_)} - var _j_=Unsafe[1],t87=_j_.document; - function getElementById(id) - {function _gs_(pnode){return pnode} - function _gt_(param){throw Stdlib[8]} - var t15=caml_jsstring_of_string(id),_gu_=t87.getElementById(t15); - return caml_call3(Opt[7],_gu_,_gt_,_gs_)} - function getElementById_exn(id) - {function _go_(pnode){return pnode} - function _gp_(param) - {var _gr_=caml_call2(Stdlib_Printf[4],_k_,id); - return caml_call1(Stdlib[2],_gr_)} - var t17=caml_jsstring_of_string(id),_gq_=t87.getElementById(t17); - return caml_call3(Opt[7],_gq_,_gp_,_go_)} - function getElementById_opt(id) - {var t19=caml_jsstring_of_string(id),_gn_=t87.getElementById(t19); - return caml_call1(Opt[10],_gn_)} - function getElementById_coerce(id,coerce) - {function _gj_(e) - {var _gm_=caml_call1(coerce,e);return caml_call1(Opt[10],_gm_)} - function _gk_(param){return 0} - var t21=caml_jsstring_of_string(id),_gl_=t87.getElementById(t21); - return caml_call3(Opt[7],_gl_,_gk_,_gj_)} - function opt_iter(x,f){if(x){var v=x[1];return caml_call1(f,v)}return 0} - function createElement(t24,name) - {var t23=caml_jsstring_of_string(name);return t24.createElement(t23)} - function unsafeCreateElement(doc,name){return createElement(doc,name)} - var createElementSyntax=[0,785140586]; - function unsafeCreateElementEx(type,name,doc,elt) - {for(;;) - {if(0 === type && 0 === name)return createElement(doc,elt); - var _gd_=createElementSyntax[1]; - if(785140586 === _gd_) - {try - {var - el=t87.createElement(''), - _gg_=el.tagName.toLowerCase() === "input"?1:0, - _gh_=_gg_?el.name === "x"?1:0:_gg_, - _ge_=_gh_} - catch(_gi_){var _ge_=0} - var _gf_=_ge_?982028505:-1003883683; - createElementSyntax[1] = _gf_; - continue} - if(982028505 <= _gd_) - {var t40=new array_length(); - t40.push("<",caml_jsstring_of_string(elt)); - opt_iter - (type, - function(t) - {var t34=caml_js_html_escape(t); - t40.push(' type="',t34,'"'); - return 0}); - opt_iter - (name, - function(n) - {var t38=caml_js_html_escape(n); - t40.push(' name="',t38,'"'); - return 0}); - t40.push(">"); - return doc.createElement(t40.join(""))} - var t28=createElement(doc,elt); - opt_iter(type,function(t25){return t28.type = t25}); - opt_iter(name,function(t27){return t28.name = t27}); - return t28}} - function createHtml(doc){return unsafeCreateElement(doc,cst_html)} - function createHead(doc){return unsafeCreateElement(doc,cst_head)} - function createLink(doc){return unsafeCreateElement(doc,cst_link)} - function createTitle(doc){return unsafeCreateElement(doc,cst_title)} - function createMeta(doc){return unsafeCreateElement(doc,cst_meta)} - function createBase(doc){return unsafeCreateElement(doc,cst_base)} - function createStyle(doc){return unsafeCreateElement(doc,cst_style)} - function createBody(doc){return unsafeCreateElement(doc,cst_body)} - function createForm(doc){return unsafeCreateElement(doc,cst_form)} - function createOptgroup(doc){return unsafeCreateElement(doc,cst_optgroup)} - function createOption(doc){return unsafeCreateElement(doc,cst_option)} - function createSelect(type,name,doc) - {return unsafeCreateElementEx(type,name,doc,cst_select$0)} - function createInput(type,name,doc) - {return unsafeCreateElementEx(type,name,doc,cst_input$0)} - function createTextarea(type,name,doc) - {return unsafeCreateElementEx(type,name,doc,cst_textarea)} - function createButton(type,name,doc) - {return unsafeCreateElementEx(type,name,doc,cst_button)} - function createLabel(doc){return unsafeCreateElement(doc,cst_label)} - function createFieldset(doc){return unsafeCreateElement(doc,cst_fieldset)} - function createLegend(doc){return unsafeCreateElement(doc,cst_legend)} - function createUl(doc){return unsafeCreateElement(doc,cst_ul)} - function createOl(doc){return unsafeCreateElement(doc,cst_ol)} - function createDl(doc){return unsafeCreateElement(doc,cst_dl)} - function createLi(doc){return unsafeCreateElement(doc,cst_li)} - function createDiv(doc){return unsafeCreateElement(doc,cst_div)} - function createEmbed(doc){return unsafeCreateElement(doc,cst_embed)} - function createP(doc){return unsafeCreateElement(doc,cst_p)} - function createH1(doc){return unsafeCreateElement(doc,cst_h1)} - function createH2(doc){return unsafeCreateElement(doc,cst_h2)} - function createH3(doc){return unsafeCreateElement(doc,cst_h3)} - function createH4(doc){return unsafeCreateElement(doc,cst_h4)} - function createH5(doc){return unsafeCreateElement(doc,cst_h5)} - function createH6(doc){return unsafeCreateElement(doc,cst_h6)} - function createQ(doc){return unsafeCreateElement(doc,cst_q)} - function createBlockquote(doc) - {return unsafeCreateElement(doc,cst_blockquote)} - function createPre(doc){return unsafeCreateElement(doc,cst_pre)} - function createBr(doc){return unsafeCreateElement(doc,cst_br)} - function createHr(doc){return unsafeCreateElement(doc,cst_hr)} - function createIns(doc){return unsafeCreateElement(doc,cst_ins)} - function createDel(doc){return unsafeCreateElement(doc,cst_del)} - function createA(doc){return unsafeCreateElement(doc,cst_a)} - function createImg(doc){return unsafeCreateElement(doc,cst_img)} - function createObject(doc){return unsafeCreateElement(doc,cst_object)} - function createParam(doc){return unsafeCreateElement(doc,cst_param)} - function createMap(doc){return unsafeCreateElement(doc,cst_map)} - function createArea(doc){return unsafeCreateElement(doc,cst_area)} - function createScript(doc){return unsafeCreateElement(doc,cst_script)} - function createTable(doc){return unsafeCreateElement(doc,cst_table)} - function createCaption(doc){return unsafeCreateElement(doc,cst_caption)} - function createCol(doc){return unsafeCreateElement(doc,cst_col)} - function createColgroup(doc){return unsafeCreateElement(doc,cst_colgroup)} - function createThead(doc){return unsafeCreateElement(doc,cst_thead)} - function createTfoot(doc){return unsafeCreateElement(doc,cst_tfoot)} - function createTbody(doc){return unsafeCreateElement(doc,cst_tbody)} - function createTr(doc){return unsafeCreateElement(doc,cst_tr)} - function createTh(doc){return unsafeCreateElement(doc,cst_th)} - function createTd(doc){return unsafeCreateElement(doc,cst_td)} - function createSub(doc){return createElement(doc,cst_sub)} - function createSup(doc){return createElement(doc,cst_sup)} - function createSpan(doc){return createElement(doc,cst_span)} - function createTt(doc){return createElement(doc,cst_tt)} - function createI(doc){return createElement(doc,cst_i)} - function createB(doc){return createElement(doc,cst_b)} - function createBig(doc){return createElement(doc,cst_big)} - function createSmall(doc){return createElement(doc,cst_small)} - function createEm(doc){return createElement(doc,cst_em)} - function createStrong(doc){return createElement(doc,cst_strong)} - function createCite(doc){return createElement(doc,cst_cite)} - function createDfn(doc){return createElement(doc,cst_dfn)} - function createCode(doc){return createElement(doc,cst_code)} - function createSamp(doc){return createElement(doc,cst_samp)} - function createKbd(doc){return createElement(doc,cst_kbd)} - function createVar(doc){return createElement(doc,cst_var)} - function createAbbr(doc){return createElement(doc,cst_abbr)} - function createDd(doc){return createElement(doc,cst_dd)} - function createDt(doc){return createElement(doc,cst_dt)} - function createNoscript(doc){return createElement(doc,cst_noscript)} - function createAddress(doc){return createElement(doc,cst_address)} - function createFrameset(doc){return unsafeCreateElement(doc,cst_frameset)} - function createFrame(doc){return unsafeCreateElement(doc,cst_frame)} - function createIframe(doc){return unsafeCreateElement(doc,cst_iframe)} - function createAudio(doc){return unsafeCreateElement(doc,cst_audio)} - function createVideo(doc){return unsafeCreateElement(doc,cst_video)} - var - Canvas_not_available= - [248,cst_Js_of_ocaml_Dom_html_Canva,caml_fresh_oo_id(0)]; - function createCanvas(doc) - {var t52=unsafeCreateElement(doc,cst_canvas); - if(1 - caml_call1(Opt[5],t52.getContext))throw Canvas_not_available; - return t52} - var - html_element=Unsafe[1].HTMLElement, - element$0= - html_element === t39 - ?function(e){return e.innerHTML === t39?no_handler:e} - :function(e){return e instanceof html_element?e:no_handler}; - function unsafeCoerce(tag,e) - {var t56=e.tagName,_gc_=caml_jsstring_of_string(tag); - return t56.toLowerCase() === _gc_?e:no_handler} - function a(e){return unsafeCoerce(cst_a$0,e)} - function area(e){return unsafeCoerce(cst_area$0,e)} - function base(e){return unsafeCoerce(cst_base$0,e)} - function blockquote(e){return unsafeCoerce(cst_blockquote$0,e)} - function body(e){return unsafeCoerce(cst_body$0,e)} - function br(e){return unsafeCoerce(cst_br$0,e)} - function button(e){return unsafeCoerce(cst_button$0,e)} - function canvas(e){return unsafeCoerce(cst_canvas$0,e)} - function caption(e){return unsafeCoerce(cst_caption$0,e)} - function col(e){return unsafeCoerce(cst_col$0,e)} - function colgroup(e){return unsafeCoerce(cst_colgroup$0,e)} - function del(e){return unsafeCoerce(cst_del$0,e)} - function div(e){return unsafeCoerce(cst_div$0,e)} - function dl(e){return unsafeCoerce(cst_dl$0,e)} - function fieldset(e){return unsafeCoerce(cst_fieldset$0,e)} - function embed(e){return unsafeCoerce(cst_embed$0,e)} - function form(e){return unsafeCoerce(cst_form$0,e)} - function frameset(e){return unsafeCoerce(cst_frameset$0,e)} - function frame(e){return unsafeCoerce(cst_frame$0,e)} - function h1(e){return unsafeCoerce(cst_h1$0,e)} - function h2(e){return unsafeCoerce(cst_h2$0,e)} - function h3(e){return unsafeCoerce(cst_h3$0,e)} - function h4(e){return unsafeCoerce(cst_h4$0,e)} - function h5(e){return unsafeCoerce(cst_h5$0,e)} - function h6(e){return unsafeCoerce(cst_h6$0,e)} - function head(e){return unsafeCoerce(cst_head$0,e)} - function hr(e){return unsafeCoerce(cst_hr$0,e)} - function html(e){return unsafeCoerce(cst_html$0,e)} - function iframe(e){return unsafeCoerce(cst_iframe$0,e)} - function img(e){return unsafeCoerce(cst_img$0,e)} - function input$0(e){return unsafeCoerce(cst_input$1,e)} - function ins(e){return unsafeCoerce(cst_ins$0,e)} - function label(e){return unsafeCoerce(cst_label$0,e)} - function legend(e){return unsafeCoerce(cst_legend$0,e)} - function li(e){return unsafeCoerce(cst_li$0,e)} - function link(e){return unsafeCoerce(cst_link$0,e)} - function map$2(e){return unsafeCoerce(cst_map$0,e)} - function meta(e){return unsafeCoerce(cst_meta$0,e)} - function object(e){return unsafeCoerce(cst_object$0,e)} - function ol(e){return unsafeCoerce(cst_ol$0,e)} - function optgroup(e){return unsafeCoerce(cst_optgroup$0,e)} - function option$1(e){return unsafeCoerce(cst_option$0,e)} - function p(e){return unsafeCoerce(cst_p$0,e)} - function param(e){return unsafeCoerce(cst_param$0,e)} - function pre(e){return unsafeCoerce(cst_pre$0,e)} - function q(e){return unsafeCoerce(cst_q$0,e)} - function script(e){return unsafeCoerce(cst_script$0,e)} - function select$0(e){return unsafeCoerce(cst_select$1,e)} - function style(e){return unsafeCoerce(cst_style$0,e)} - function table(e){return unsafeCoerce(cst_table$0,e)} - function tbody(e){return unsafeCoerce(cst_tbody$0,e)} - function td(e){return unsafeCoerce(cst_td$0,e)} - function textarea(e){return unsafeCoerce(cst_textarea$0,e)} - function tfoot(e){return unsafeCoerce(cst_tfoot$0,e)} - function th(e){return unsafeCoerce(cst_th$0,e)} - function thead(e){return unsafeCoerce(cst_thead$0,e)} - function title(e){return unsafeCoerce(cst_title$0,e)} - function tr(e){return unsafeCoerce(cst_tr$0,e)} - function ul(e){return unsafeCoerce(cst_ul$0,e)} - function audio(e){return unsafeCoerce(cst_audio$0,e)} - function video(e){return unsafeCoerce(cst_video$0,e)} - function unsafeCoerceEvent(constr,ev) - {if(constr !== t39 && ev instanceof constr)return ev;return no_handler} - function mouseEvent(ev){return unsafeCoerceEvent(Unsafe[1].MouseEvent,ev)} - function keyboardEvent(ev) - {return unsafeCoerceEvent(Unsafe[1].KeyboardEvent,ev)} - function wheelEvent(ev){return unsafeCoerceEvent(Unsafe[1].WheelEvent,ev)} - function mouseScrollEvent(ev) - {return unsafeCoerceEvent(Unsafe[1].MouseScrollEvent,ev)} - function popStateEvent(ev) - {return unsafeCoerceEvent(Unsafe[1].PopStateEvent,ev)} - function messageEvent(ev) - {return unsafeCoerceEvent(Unsafe[1].MessageEvent,ev)} - function eventRelatedTarget(e) - {function _f$_(param) - {var match=caml_string_of_jsstring(e.type); - if(caml_string_notequal(match,cst_mouseout$0)) - {if(caml_string_notequal(match,cst_mouseover$0))return no_handler; - var _ga_=function(param){throw [0,Assert_failure,_l_]}; - return caml_call2(Optdef[8],e.fromElement,_ga_)} - function _gb_(param){throw [0,Assert_failure,_m_]} - return caml_call2(Optdef[8],e.toElement,_gb_)} - return caml_call2(Optdef[8],e.relatedTarget,_f$_)} - function eventAbsolutePosition(e) - {var t70=t87.body,t71=t87.documentElement; - return [0, - (e.clientX + t70.scrollLeft | 0) + t71.scrollLeft | 0, - (e.clientY + t70.scrollTop | 0) + t71.scrollTop | 0]} - function eventAbsolutePosition$0(e) - {function _f7_(x) - {function _f9_(y){return [0,x,y]} - function _f__(param){return eventAbsolutePosition(e)} - return caml_call3(Optdef[7],e.pageY,_f__,_f9_)} - function _f8_(param){return eventAbsolutePosition(e)} - return caml_call3(Optdef[7],e.pageX,_f8_,_f7_)} - function elementClientPosition(e) - {var t80=e.getBoundingClientRect(),t81=t87.body,t82=t87.documentElement; - return [0, - ((t80.left | 0) - t81.clientLeft | 0) - t82.clientLeft | 0, - ((t80.top | 0) - t81.clientTop | 0) - t82.clientTop | 0]} - function getDocumentScroll(param) - {var t88=t87.body,t89=t87.documentElement; - return [0, - t88.scrollLeft + t89.scrollLeft | 0, - t88.scrollTop + t89.scrollTop | 0]} - function buttonPressed(ev) - {function _f5_(x){return x} - function _f6_(param) - {var match=ev.button,switcher=match - 1 | 0; - if(! (3 < switcher >>> 0)) - switch(switcher) - {case 0:return 1;case 1:return 3;case 2:break;default:return 2} - return 0} - return caml_call3(Optdef[7],ev.which,_f6_,_f5_)} - function addMousewheelEventListenerWith(e,capture,once,passive,h) - {return addEventListenerWithOptions - (e, - wheel, - capture, - once, - passive, - handler - (function(e) - {function _f3_(param){return 0} - var - dx= - (- caml_call2(Optdef[8],e.wheelDeltaX,_f3_) | 0) / 40 | 0; - function _f4_(param){return e.wheelDelta} - var - dy= - (- caml_call2(Optdef[8],e.wheelDeltaY,_f4_) | 0) / 40 | 0; - return caml_call3(h,e,dx,dy)}))} - function addMousewheelEventListener(e,h,capt) - {return addMousewheelEventListenerWith(e,[0,capt],0,0,h)} - function f(v) - {var - match=caml_string_of_jsstring(v), - switch$0=caml_string_compare(match,cst_KeyH); - if(0 <= switch$0) - {if(! (0 < switch$0))return 8; - var switch$1=caml_string_compare(match,cst_Numpad4); - if(0 <= switch$1) - {if(! (0 < switch$1))return 72; - var switch$2=caml_string_compare(match,cst_PageUp); - if(0 <= switch$2) - {if(! (0 < switch$2))return 98; - var switch$3=caml_string_compare(match,cst_ShiftRight); - if(0 <= switch$3) - {if(! (0 < switch$3))return 91; - if(! caml_string_notequal(match,cst_Slash))return 55; - if(! caml_string_notequal(match,cst_Space))return 41; - if(! caml_string_notequal(match,cst_Tab))return 39; - if(! caml_string_notequal(match,cst_VolumeDown))return 103; - if(! caml_string_notequal(match,cst_VolumeMute))return 102; - if(! caml_string_notequal(match,cst_VolumeUp))return 104} - else - {if(! caml_string_notequal(match,cst_Pause))return 123; - if(! caml_string_notequal(match,cst_Period))return 54; - if(! caml_string_notequal(match,cst_PrintScreen))return 120; - if(! caml_string_notequal(match,cst_Quote))return 50; - if(! caml_string_notequal(match,cst_ScrollLock))return 119; - if(! caml_string_notequal(match,cst_Semicolon))return 49; - if(! caml_string_notequal(match,cst_ShiftLeft))return 90}} - else - {var switch$4=caml_string_compare(match,cst_NumpadDivide); - if(0 <= switch$4) - {if(! (0 < switch$4))return 84; - if(! caml_string_notequal(match,cst_NumpadEnter))return 83; - if(! caml_string_notequal(match,cst_NumpadEqual))return 82; - if(! caml_string_notequal(match,cst_NumpadMultiply))return 78; - if(! caml_string_notequal(match,cst_NumpadSubtract))return 79; - if(! caml_string_notequal(match,cst_OSLeft))return 117; - if(! caml_string_notequal(match,cst_OSRight))return 118; - if(! caml_string_notequal(match,cst_PageDown))return 99} - else - {if(! caml_string_notequal(match,cst_Numpad5))return 73; - if(! caml_string_notequal(match,cst_Numpad6))return 74; - if(! caml_string_notequal(match,cst_Numpad7))return 75; - if(! caml_string_notequal(match,cst_Numpad8))return 76; - if(! caml_string_notequal(match,cst_Numpad9))return 77; - if(! caml_string_notequal(match,cst_NumpadAdd))return 80; - if(! caml_string_notequal(match,cst_NumpadDecimal))return 81}}} - else - {var switch$5=caml_string_compare(match,cst_KeyX); - if(0 <= switch$5) - {if(! (0 < switch$5))return 24; - var switch$6=caml_string_compare(match,cst_MetaRight); - if(0 <= switch$6) - {if(! (0 < switch$6))return 89; - if(! caml_string_notequal(match,cst_Minus))return 37; - if(! caml_string_notequal(match,cst_NumLock))return 85; - if(! caml_string_notequal(match,cst_Numpad0))return 68; - if(! caml_string_notequal(match,cst_Numpad1))return 69; - if(! caml_string_notequal(match,cst_Numpad2))return 70; - if(! caml_string_notequal(match,cst_Numpad3))return 71} - else - {if(! caml_string_notequal(match,cst_KeyY))return 25; - if(! caml_string_notequal(match,cst_KeyZ))return 26; - if(! caml_string_notequal(match,cst_MediaPlayPause))return 107; - if(! caml_string_notequal(match,cst_MediaStop))return 108; - if(! caml_string_notequal(match,cst_MediaTrackNext))return 106; - if(! caml_string_notequal(match,cst_MediaTrackPrevious)) - return 105; - if(! caml_string_notequal(match,cst_MetaLeft))return 88}} - else - {var switch$7=caml_string_compare(match,cst_KeyP); - if(0 <= switch$7) - {if(! (0 < switch$7))return 16; - if(! caml_string_notequal(match,cst_KeyQ))return 17; - if(! caml_string_notequal(match,cst_KeyR))return 18; - if(! caml_string_notequal(match,cst_KeyS))return 19; - if(! caml_string_notequal(match,cst_KeyT))return 20; - if(! caml_string_notequal(match,cst_KeyU))return 21; - if(! caml_string_notequal(match,cst_KeyV))return 22; - if(! caml_string_notequal(match,cst_KeyW))return 23} - else - {if(! caml_string_notequal(match,cst_KeyI))return 9; - if(! caml_string_notequal(match,cst_KeyJ))return 10; - if(! caml_string_notequal(match,cst_KeyK))return 11; - if(! caml_string_notequal(match,cst_KeyL))return 12; - if(! caml_string_notequal(match,cst_KeyM))return 13; - if(! caml_string_notequal(match,cst_KeyN))return 14; - if(! caml_string_notequal(match,cst_KeyO))return 15}}}} - else - {var switch$8=caml_string_compare(match,cst_Digit6); - if(0 <= switch$8) - {if(! (0 < switch$8))return 33; - var switch$9=caml_string_compare(match,cst_F6); - if(0 <= switch$9) - {if(! (0 < switch$9))return 61; - var switch$10=caml_string_compare(match,cst_KeyA); - if(0 <= switch$10) - {if(! (0 < switch$10))return 1; - if(! caml_string_notequal(match,cst_KeyB))return 2; - if(! caml_string_notequal(match,cst_KeyC))return 3; - if(! caml_string_notequal(match,cst_KeyD))return 4; - if(! caml_string_notequal(match,cst_KeyE))return 5; - if(! caml_string_notequal(match,cst_KeyF))return 6; - if(! caml_string_notequal(match,cst_KeyG))return 7} - else - {if(! caml_string_notequal(match,cst_F7))return 62; - if(! caml_string_notequal(match,cst_F8))return 63; - if(! caml_string_notequal(match,cst_F9))return 64; - if(! caml_string_notequal(match,cst_Home))return 100; - if(! caml_string_notequal(match,cst_Insert))return 44; - if(! caml_string_notequal(match,cst_IntlBackslash))return 121; - if(! caml_string_notequal(match,cst_IntlYen))return 122}} - else - {var switch$11=caml_string_compare(match,cst_F1); - if(0 <= switch$11) - {if(! (0 < switch$11))return 56; - if(! caml_string_notequal(match,cst_F10))return 65; - if(! caml_string_notequal(match,cst_F11))return 66; - if(! caml_string_notequal(match,cst_F12))return 67; - if(! caml_string_notequal(match,cst_F2))return 57; - if(! caml_string_notequal(match,cst_F3))return 58; - if(! caml_string_notequal(match,cst_F4))return 59; - if(! caml_string_notequal(match,cst_F5))return 60} - else - {if(! caml_string_notequal(match,cst_Digit7))return 34; - if(! caml_string_notequal(match,cst_Digit8))return 35; - if(! caml_string_notequal(match,cst_Digit9))return 36; - if(! caml_string_notequal(match,cst_End))return 101; - if(! caml_string_notequal(match,cst_Enter))return 40; - if(! caml_string_notequal(match,cst_Equal))return 38; - if(! caml_string_notequal(match,cst_Escape))return 42}}} - else - {var switch$12=caml_string_compare(match,cst_BrowserRefresh); - if(0 <= switch$12) - {if(! (0 < switch$12))return 113; - var switch$13=caml_string_compare(match,cst_Delete); - if(0 <= switch$13) - {if(! (0 < switch$13))return 45; - if(! caml_string_notequal(match,cst_Digit0))return 27; - if(! caml_string_notequal(match,cst_Digit1))return 28; - if(! caml_string_notequal(match,cst_Digit2))return 29; - if(! caml_string_notequal(match,cst_Digit3))return 30; - if(! caml_string_notequal(match,cst_Digit4))return 31; - if(! caml_string_notequal(match,cst_Digit5))return 32} - else - {if(! caml_string_notequal(match,cst_BrowserSearch))return 110; - if(! caml_string_notequal(match,cst_BrowserStop))return 114; - if(! caml_string_notequal(match,cst_CapsLock))return 46; - if(! caml_string_notequal(match,cst_Comma))return 53; - if(! caml_string_notequal(match,cst_ContextMenu))return 109; - if(! caml_string_notequal(match,cst_ControlLeft))return 86; - if(! caml_string_notequal(match,cst_ControlRight))return 87}} - else - {var switch$14=caml_string_compare(match,cst_Backslash); - if(0 <= switch$14) - {if(! (0 < switch$14))return 52; - if(! caml_string_notequal(match,cst_Backspace))return 43; - if(! caml_string_notequal(match,cst_BracketLeft))return 47; - if(! caml_string_notequal(match,cst_BracketRight))return 48; - if(! caml_string_notequal(match,cst_BrowserBack))return 116; - if(! caml_string_notequal(match,cst_BrowserFavorites)) - return 112; - if(! caml_string_notequal(match,cst_BrowserForward))return 115; - if(! caml_string_notequal(match,cst_BrowserHome))return 111} - else - {if(! caml_string_notequal(match,cst_AltLeft))return 92; - if(! caml_string_notequal(match,cst_AltRight))return 93; - if(! caml_string_notequal(match,cst_ArrowDown))return 97; - if(! caml_string_notequal(match,cst_ArrowLeft))return 94; - if(! caml_string_notequal(match,cst_ArrowRight))return 95; - if(! caml_string_notequal(match,cst_ArrowUp))return 96; - if(! caml_string_notequal(match,cst_Backquote))return 51}}}} - return 0} - function try_key_code_left(param) - {if(19 <= param) - {if(91 === param)return 88} - else - if(16 <= param) - switch(param - 16 | 0) - {case 0:return 90;case 1:return 86;default:return 92} - return 0} - function try_key_code_right(param) - {if(19 <= param) - {if(91 === param)return 89} - else - if(16 <= param) - switch(param - 16 | 0) - {case 0:return 91;case 1:return 87;default:return 93} - return 0} - function try_key_code_numpad(param) - {if(47 <= param) - {var switcher=param - 96 | 0; - if(! (15 < switcher >>> 0)) - switch(switcher) - {case 0:return 68; - case 1:return 69; - case 2:return 70; - case 3:return 71; - case 4:return 72; - case 5:return 73; - case 6:return 74; - case 7:return 75; - case 8:return 76; - case 9:return 77; - case 10:return 78; - case 11:return 80; - case 12:break; - case 13:return 79; - case 14:return 81; - default:return 84}} - else - if(12 <= param) - switch(param - 12 | 0) - {case 0:return 73; - case 1:return 83; - case 21:return 77; - case 22:return 71; - case 23:return 69; - case 24:return 75; - case 25:return 72; - case 26:return 76; - case 27:return 74; - case 28:return 70; - case 33:return 68; - case 34:return 81 - } - return 0} - function try_key_code_normal(param) - {var switcher=param - 8 | 0; - if(! (214 < switcher >>> 0)) - {var _f2_=switcher; - if(67 <= _f2_) - switch(_f2_) - {case 67:return 11; - case 68:return 12; - case 69:return 13; - case 70:return 14; - case 71:return 15; - case 72:return 16; - case 73:return 17; - case 74:return 18; - case 75:return 19; - case 76:return 20; - case 77:return 21; - case 78:return 22; - case 79:return 23; - case 80:return 24; - case 81:return 25; - case 82:return 26; - case 85:return 109; - case 104:return 56; - case 105:return 57; - case 106:return 58; - case 107:return 59; - case 108:return 60; - case 109:return 61; - case 110:return 62; - case 111:return 63; - case 112:return 64; - case 113:return 65; - case 114:return 66; - case 115:return 67; - case 137:return 119; - case 178:return 49; - case 179:return 38; - case 180:return 53; - case 181:return 37; - case 182:return 54; - case 183:return 55; - case 184:return 51; - case 211:return 47; - case 212:return 52; - case 213:return 48; - case 214:return 50 - } - else - switch(_f2_) - {case 0:return 43; - case 1:return 39; - case 5:return 40; - case 11:return 123; - case 12:return 46; - case 19:return 42; - case 24:return 41; - case 25:return 98; - case 26:return 99; - case 27:return 101; - case 28:return 100; - case 29:return 94; - case 30:return 96; - case 31:return 95; - case 32:return 97; - case 34:return 120; - case 37:return 44; - case 38:return 45; - case 40:return 27; - case 41:return 28; - case 42:return 29; - case 43:return 30; - case 44:return 31; - case 45:return 32; - case 46:return 33; - case 47:return 34; - case 48:return 35; - case 49:return 36; - case 57:return 1; - case 58:return 2; - case 59:return 3; - case 60:return 4; - case 61:return 5; - case 62:return 6; - case 63:return 7; - case 64:return 8; - case 65:return 9; - case 66:return 10 - }} - return 0} - function make_unidentified(param){return 0} - function run_next(value,f,v){return v?v:caml_call1(f,value)} - function symbol$11(x,f){return caml_call1(f,x)} - function of_event(evt) - {var _fV_=evt.keyCode; - function _fW_(_f1_){return run_next(_fV_,try_key_code_normal,_f1_)} - var match=evt.location,switcher=match - 1 | 0; - if(2 < switcher >>> 0) - var _fX_=make_unidentified; - else - switch(switcher) - {case 0: - var - _fS_=evt.keyCode, - _fX_=function(_fZ_){return run_next(_fS_,try_key_code_left,_fZ_)}; - break; - case 1: - var - _fT_=evt.keyCode, - _fX_=function(_fY_){return run_next(_fT_,try_key_code_right,_fY_)}; - break; - default: - var - _fU_=evt.keyCode, - _fX_=function(_f0_){return run_next(_fU_,try_key_code_numpad,_f0_)}} - var value=evt.code; - return symbol$11 - (symbol$11 - (symbol$11 - (0, - function(v) - {return v?v:caml_call3(Optdef[7],value,make_unidentified,f)}), - _fX_), - _fW_)} - function char_of_int(value) - {if(caml_call2(symbol$5,0,value)) - try - {var _fQ_=[0,caml_call1(Stdlib_Uchar[8],value)];return _fQ_} - catch(_fR_){return 0} - return 0} - function empty_string(param){return ""} - function none(param){return 0} - function of_event$0(evt) - {var t104=caml_call2(Optdef[8],evt.key,empty_string),match=t104.length; - return 0 === match - ?caml_call3(Optdef[7],evt.charCode,none,char_of_int) - :1 === match?char_of_int(t104.charCodeAt(0) | 0):0} - function element$1(_fP_){return _fP_} - function tagged(e) - {var t106=e.tagName,tag=caml_string_of_jsbytes(t106.toLowerCase()); - if(caml_call2(symbol$8,caml_ml_string_length(tag),0))return [61,e]; - var match=runtime.caml_string_unsafe_get(tag,0),switcher=match - 97 | 0; - if(! (21 < switcher >>> 0)) - switch(switcher) - {case 0: - return caml_string_notequal(tag,cst_a$1) - ?caml_string_notequal(tag,cst_area$1) - ?caml_string_notequal(tag,cst_audio$1)?[61,e]:[2,e] - :[1,e] - :[0,e]; - case 1: - return caml_string_notequal(tag,cst_base$1) - ?caml_string_notequal(tag,cst_blockquote$1) - ?caml_string_notequal(tag,cst_body$1) - ?caml_string_notequal(tag,cst_br$1) - ?caml_string_notequal(tag,cst_button$1)?[61,e]:[7,e] - :[6,e] - :[5,e] - :[4,e] - :[3,e]; - case 2: - return caml_string_notequal(tag,cst_canvas$1) - ?caml_string_notequal(tag,cst_caption$1) - ?caml_string_notequal(tag,cst_col$1) - ?caml_string_notequal(tag,cst_colgroup$1)?[61,e]:[11,e] - :[10,e] - :[9,e] - :[8,e]; - case 3: - return caml_string_notequal(tag,cst_del$1) - ?caml_string_notequal(tag,cst_div$1) - ?caml_string_notequal(tag,cst_dl$1)?[61,e]:[14,e] - :[13,e] - :[12,e]; - case 4:return caml_string_notequal(tag,cst_embed$1)?[61,e]:[15,e]; - case 5: - return caml_string_notequal(tag,cst_fieldset$1) - ?caml_string_notequal(tag,cst_form$1) - ?caml_string_notequal(tag,cst_frame$1) - ?caml_string_notequal(tag,cst_frameset$1)?[61,e]:[18,e] - :[19,e] - :[17,e] - :[16,e]; - case 7: - return caml_string_notequal(tag,cst_h1$1) - ?caml_string_notequal(tag,cst_h2$1) - ?caml_string_notequal(tag,cst_h3$1) - ?caml_string_notequal(tag,cst_h4$1) - ?caml_string_notequal(tag,cst_h5$1) - ?caml_string_notequal(tag,cst_h6$1) - ?caml_string_notequal(tag,cst_head$1) - ?caml_string_notequal(tag,cst_hr$1) - ?caml_string_notequal(tag,cst_html$1)?[61,e]:[28,e] - :[27,e] - :[26,e] - :[25,e] - :[24,e] - :[23,e] - :[22,e] - :[21,e] - :[20,e]; - case 8: - return caml_string_notequal(tag,cst_iframe$1) - ?caml_string_notequal(tag,cst_img$1) - ?caml_string_notequal(tag,cst_input$2) - ?caml_string_notequal(tag,cst_ins$1)?[61,e]:[32,e] - :[31,e] - :[30,e] - :[29,e]; - case 11: - return caml_string_notequal(tag,cst_label$1) - ?caml_string_notequal(tag,cst_legend$1) - ?caml_string_notequal(tag,cst_li$1) - ?caml_string_notequal(tag,cst_link$1)?[61,e]:[36,e] - :[35,e] - :[34,e] - :[33,e]; - case 12: - return caml_string_notequal(tag,cst_map$1) - ?caml_string_notequal(tag,cst_meta$1)?[61,e]:[38,e] - :[37,e]; - case 14: - return caml_string_notequal(tag,cst_object$1) - ?caml_string_notequal(tag,cst_ol$1) - ?caml_string_notequal(tag,cst_optgroup$1) - ?caml_string_notequal(tag,cst_option$1)?[61,e]:[42,e] - :[41,e] - :[40,e] - :[39,e]; - case 15: - return caml_string_notequal(tag,cst_p$1) - ?caml_string_notequal(tag,cst_param$1) - ?caml_string_notequal(tag,cst_pre$1)?[61,e]:[45,e] - :[44,e] - :[43,e]; - case 16:return caml_string_notequal(tag,cst_q$1)?[61,e]:[46,e]; - case 18: - return caml_string_notequal(tag,cst_script$1) - ?caml_string_notequal(tag,cst_select$2) - ?caml_string_notequal(tag,cst_style$1)?[61,e]:[49,e] - :[48,e] - :[47,e]; - case 19: - return caml_string_notequal(tag,cst_table$1) - ?caml_string_notequal(tag,cst_tbody$1) - ?caml_string_notequal(tag,cst_td$1) - ?caml_string_notequal(tag,cst_textarea$1) - ?caml_string_notequal(tag,cst_tfoot$1) - ?caml_string_notequal(tag,cst_th$1) - ?caml_string_notequal(tag,cst_thead$1) - ?caml_string_notequal(tag,cst_title$1) - ?caml_string_notequal(tag,cst_tr$1)?[61,e]:[58,e] - :[57,e] - :[56,e] - :[55,e] - :[54,e] - :[53,e] - :[52,e] - :[51,e] - :[50,e]; - case 20:return caml_string_notequal(tag,cst_ul$1)?[61,e]:[59,e]; - case 21:return caml_string_notequal(tag,cst_video$1)?[61,e]:[60,e] - } - return [61,e]} - function opt_tagged(e) - {function _fN_(e){return [0,tagged(e)]} - function _fO_(param){return 0} - return caml_call3(Opt[7],e,_fO_,_fN_)} - function taggedEvent(ev) - {function _fv_(ev){return [0,ev]} - function _fw_(param) - {function _fy_(ev){return [1,ev]} - function _fz_(param) - {function _fB_(ev){return [3,ev]} - function _fC_(param) - {function _fE_(ev){return [4,ev]} - function _fF_(param) - {function _fH_(ev){return [5,ev]} - function _fI_(param) - {function _fK_(ev){return [2,ev]} - function _fL_(param){return [6,ev]} - var _fM_=messageEvent(ev); - return caml_call3(Opt[7],_fM_,_fL_,_fK_)} - var _fJ_=popStateEvent(ev); - return caml_call3(Opt[7],_fJ_,_fI_,_fH_)} - var _fG_=mouseScrollEvent(ev); - return caml_call3(Opt[7],_fG_,_fF_,_fE_)} - var _fD_=wheelEvent(ev); - return caml_call3(Opt[7],_fD_,_fC_,_fB_)} - var _fA_=keyboardEvent(ev); - return caml_call3(Opt[7],_fA_,_fz_,_fy_)} - var _fx_=mouseEvent(ev); - return caml_call3(Opt[7],_fx_,_fw_,_fv_)} - function opt_taggedEvent(ev) - {function _ft_(ev){return [0,taggedEvent(ev)]} - function _fu_(param){return 0} - return caml_call3(Opt[7],ev,_fu_,_ft_)} - function stopPropagation(ev) - {function _fr_(param){return ev.stopPropagation()} - function _fs_(param){return ev.cancelBubble = t38} - return caml_call3(Optdef[7],ev.stopPropagation,_fs_,_fr_)} - var - requestAnimationFrame= - runtime.caml_js_pure_expr - (function(param) - {var - l= - [0, - _j_.requestAnimationFrame, - [0, - _j_.mozRequestAnimationFrame, - [0, - _j_.webkitRequestAnimationFrame, - [0, - _j_.oRequestAnimationFrame, - [0,_j_.msRequestAnimationFrame,0]]]]]; - try - {var - _fo_=function(c){return caml_call1(Optdef[5],c)}, - req=caml_call2(Stdlib_List[38],_fo_,l), - _fp_=function(callback){return req(callback)}; - return _fp_} - catch(_fq_) - {_fq_ = caml_wrap_exception(_fq_); - if(_fq_ === Stdlib[8]) - {var - now=function(param){var t117=new t116();return t117.getTime()}, - last=[0,now(0)]; - return function(callback) - {var - t=now(0), - dt=last[1] + 16.6666666666666679 - t, - dt$0=dt < 0.?0.:dt; - last[1] = t; - _j_.setTimeout(callback,dt$0); - return 0}} - throw _fq_}}); - function hasPushState(param) - {var t122=_j_.history;return caml_call1(Optdef[5],t122.pushState)} - function hasPlaceholder(param) - {var t123=createInput(0,0,t87); - return caml_call1(Optdef[5],t123.placeholder)} - function hasRequired(param) - {var t124=createInput(0,0,t87); - return caml_call1(Optdef[5],t124.required)} - var overflow_limit=2147483000.; - function setTimeout(callback,d) - {var id=[0,0]; - function loop(step,param) - {if(2147483000. < step) - var remain=step - 2147483000.,step$0=overflow_limit; - else - var remain=0.,step$0=step; - var - cb=remain == 0.?callback:function(_fn_){return loop(remain,_fn_)}, - t125=caml_js_wrap_callback(cb); - id[1] = [0,_j_.setTimeout(t125,step$0)]; - return 0} - loop(d,0); - return id} - function clearTimeout(id) - {var _fm_=id[1]; - if(_fm_){var x=_fm_[1];id[1] = 0;return _j_.clearTimeout(x)} - return 0} - function js_array_of_collection(c){return [].slice.call(c)} - var - _n_= - [0, - click, - copy$0, - cut, - paste, - dblclick, - mousedown, - mouseup, - mouseover, - mousemove, - mouseout, - keypress, - keydown, - keyup, - mousewheel, - DOMMouseScroll, - wheel, - touchstart, - touchmove, - touchend, - touchcancel, - dragstart, - dragend, - dragenter, - dragover, - dragleave, - drag, - drop, - hashchange, - change, - input, - timeupdate, - submit, - scroll, - focus, - blur, - load$0, - unload, - beforeunload, - resize, - orientationchange, - popstate, - error$0, - abort$0, - select, - online, - offline, - checking, - noupdate, - downloading, - progress$0, - updateready, - cached, - obsolete, - domContentLoaded, - animationstart, - animationend, - animationiteration, - animationcancel, - transitionrun, - transitionstart, - transitionend, - transitioncancel, - canplay, - canplaythrough, - durationchange, - emptied, - ended, - gotpointercapture, - loadeddata, - loadedmetadata, - loadstart$0, - lostpointercapture, - message$0, - pause, - play, - playing, - pointerenter, - pointercancel, - pointerdown, - pointerleave, - pointermove, - pointerout, - pointerover, - pointerup, - ratechange, - seeked, - seeking, - stalled, - suspend, - volumechange, - waiting, - make$1], - Js_of_ocaml_Dom_html= - [0, - d, - t87, - getElementById_opt, - getElementById_exn, - getElementById_coerce, - getElementById, - location_origin, - _j_, - no_handler, - handler, - full_handler, - invoke_handler, - eventTarget, - eventRelatedTarget, - _n_, - addEventListenerWithOptions, - addEventListener, - removeEventListener, - addMousewheelEventListenerWith, - addMousewheelEventListener, - createCustomEvent, - buttonPressed, - eventAbsolutePosition$0, - elementClientPosition, - getDocumentScroll, - [0,of_event,try_key_code_normal], - [0,of_event$0], - createHtml, - createHead, - createLink, - createTitle, - createMeta, - createBase, - createStyle, - createBody, - createForm, - createOptgroup, - createOption, - createSelect, - createInput, - createTextarea, - createButton, - createLabel, - createFieldset, - createLegend, - createUl, - createOl, - createDl, - createLi, - createDiv, - createEmbed, - createP, - createH1, - createH2, - createH3, - createH4, - createH5, - createH6, - createQ, - createBlockquote, - createPre, - createBr, - createHr, - createIns, - createDel, - createA, - createImg, - createObject, - createParam, - createMap, - createArea, - createScript, - createTable, - createCaption, - createCol, - createColgroup, - createThead, - createTfoot, - createTbody, - createTr, - createTh, - createTd, - createSub, - createSup, - createSpan, - createTt, - createI, - createB, - createBig, - createSmall, - createEm, - createStrong, - createCite, - createDfn, - createCode, - createSamp, - createKbd, - createVar, - createAbbr, - createDd, - createDt, - createNoscript, - createAddress, - createFrameset, - createFrame, - createIframe, - createAudio, - createVideo, - Canvas_not_available, - createCanvas, - element$1, - tagged, - opt_tagged, - taggedEvent, - opt_taggedEvent, - stopPropagation, - [0, - element$0, - a, - area, - audio, - base, - blockquote, - body, - br, - button, - canvas, - caption, - col, - colgroup, - del, - div, - embed, - dl, - fieldset, - form, - frameset, - frame, - h1, - h2, - h3, - h4, - h5, - h6, - head, - hr, - html, - iframe, - img, - input$0, - ins, - label, - legend, - li, - link, - map$2, - meta, - object, - ol, - optgroup, - option$1, - p, - param, - pre, - q, - script, - select$0, - style, - table, - tbody, - td, - textarea, - tfoot, - th, - thead, - title, - tr, - ul, - video, - mouseEvent, - keyboardEvent, - wheelEvent, - mouseScrollEvent, - popStateEvent, - messageEvent], - setTimeout, - clearTimeout, - js_array_of_collection, - requestAnimationFrame, - runtime.caml_js_html_entities, - onIE, - hasPushState, - hasPlaceholder, - hasRequired]; - caml_register_global(1669,Js_of_ocaml_Dom_html,"Js_of_ocaml__Dom_html"); - var formData=Unsafe[1].FormData,formData_form=Unsafe[1].FormData; - function filter_map$0(f,param) - {var param$0=param; - for(;;) - {if(param$0) - {var q=param$0[2],v=param$0[1],match=caml_call1(f,v); - if(match){var v$0=match[1];return [0,v$0,filter_map$0(f,q)]} - var param$0=q; - continue} - return 0}} - function have_content(elt) - {var - t3=elt.name, - _fk_=caml_call2(symbol$9,t3.length,0), - _fl_=_fk_?1 - (elt.disabled | 0):_fk_; - return _fl_} - function form_elements(get,form) - {var t34=form.elements,i$2=t34.length - 1 | 0,acc=0,i=i$2; - for(;;) - {if(caml_call2(symbol$5,i,0)) - {var - _fb_= - function(v$2) - {var match$3=tagged(v$2); - switch(match$3[0]) - {case 31: - var v=match$3[1]; - if(get)var sth=get[1],get$0=sth;else var get$0=0; - if(have_content(v)) - {var - name$1=caml_string_of_jsstring(v.name), - value=v.value, - t20=v.type, - match=caml_string_of_jsbytes(t20.toLowerCase()); - if(caml_string_notequal(match,cst_checkbox)) - {if(! caml_string_notequal(match,cst_file)) - {if(get$0)return [0,[0,name$1,[0,-976970511,value]],0]; - var match$0=caml_call1(Optdef[10],v.files); - if(match$0) - {var list=match$0[1]; - if(caml_call2(symbol$8,list.length,0)) - return [0,[0,name$1,[0,-976970511,""]],0]; - var match$1=caml_call1(Optdef[10],v.multiple); - if(match$1 && match$1[1]) - {var - _ff_=function(t28){return list.item(t28)}, - _fg_=caml_call2(Stdlib_Array[2],list.length,_ff_), - _fh_=caml_call1(Stdlib_Array[11],_fg_); - return filter_map$0 - (function(f) - {var match=caml_call1(Opt[10],f); - if(match) - {var file=match[1];return [0,[0,name$1,[0,781515420,file]]]} - return 0}, - _fh_)} - var _fi_=list.item(0),match$2=caml_call1(Opt[10],_fi_); - if(match$2) - {var file=match$2[1]; - return [0,[0,name$1,[0,781515420,file]],0]} - return 0} - return 0} - var switch$0=0; - if(caml_string_notequal(match,cst_password)) - {if(caml_string_notequal(match,cst_radio)) - {var switch$1=0; - if - (caml_string_notequal(match,cst_reset) - && - caml_string_notequal(match,cst_submit$0)) - {if(caml_string_notequal(match,cst_text)) - return [0,[0,name$1,[0,-976970511,value]],0]; - switch$0 = 1; - switch$1 = 1} - if(! switch$1)return 0}} - else - switch$0 = 1; - if(switch$0)return [0,[0,name$1,[0,-976970511,value]],0]} - return v.checked | 0?[0,[0,name$1,[0,-976970511,value]],0]:0} - return 0; - case 48: - var v$0=match$3[1]; - if(have_content(v$0)) - {var name$0=caml_string_of_jsstring(v$0.name); - if(v$0.multiple | 0) - {var - _fd_= - function(i) - {var t13=v$0.options,_fj_=t13.item(i); - return caml_call1(Opt[10],_fj_)}, - t10=v$0.options, - options=caml_call2(Stdlib_Array[2],t10.length,_fd_), - _fe_=caml_call1(Stdlib_Array[11],options); - return filter_map$0 - (function(param) - {if(param) - {var e=param[1]; - return e.selected | 0 - ?[0,[0,name$0,[0,-976970511,e.value]]] - :0} - return 0}, - _fe_)} - return [0,[0,name$0,[0,-976970511,v$0.value]],0]} - return 0; - case 53: - var v$1=match$3[1]; - if(have_content(v$1)) - {var name=caml_string_of_jsstring(v$1.name); - return [0,[0,name,[0,-976970511,v$1.value]],0]} - return 0; - default:return 0}}, - _fc_=caml_call2(Stdlib_List[19],_fb_,acc); - return caml_call1(Stdlib_List[14],_fc_)} - var t32=form.elements,_fa_=t32.item(i),match=caml_call1(Opt[10],_fa_); - if(match) - {var x=match[1],i$0=i - 1 | 0,acc$0=[0,x,acc],acc=acc$0,i=i$0; - continue} - var i$1=i - i | 0,i=i$1; - continue}} - function append(form_contents,form_elt) - {if(891486873 <= form_contents[1]) - {var list=form_contents[2];list[1] = [0,form_elt,list[1]];return 0} - var f=form_contents[2],_e__=form_elt[2],_e$_=form_elt[1]; - if(781515420 <= _e__[1]) - {var file=_e__[2],t38=caml_jsstring_of_string(_e$_); - return f.append(t38,file)} - var s=_e__[2],t35=caml_jsstring_of_string(_e$_); - return f.append(t35,s)} - function empty_form_contents(param) - {var match=caml_call1(Optdef[10],formData); - if(match){var constr=match[1];return [0,808620462,new constr()]} - return [0,891486873,[0,0]]} - function post_form_contents(form) - {var contents=empty_form_contents(0),_e7_=form_elements(0,form); - function _e8_(_e9_){return append(contents,_e9_)} - caml_call2(Stdlib_List[17],_e8_,_e7_); - return contents} - function get_form_contents(form) - {var _e4_=form_elements(_o_,form); - function _e5_(param) - {var _e6_=param[2]; - if(typeof _e6_ !== "number" && -976970511 === _e6_[1]) - {var s=_e6_[2],name=param[1]; - return [0,name,caml_string_of_jsstring(s)]} - throw [0,Assert_failure,_p_]} - return caml_call2(Stdlib_List[19],_e5_,_e4_)} - var - Js_of_ocaml_Form= - [0, - formData, - formData_form, - append, - post_form_contents, - get_form_contents, - empty_form_contents, - form_elements]; - caml_register_global(1670,Js_of_ocaml_Form,"Js_of_ocaml__Form"); - var - readystatechange=caml_call1(Event[1],cst_readystatechange), - loadstart$1=caml_call1(Event[1],cst_loadstart$1), - progress$1=caml_call1(Event[1],cst_progress$1), - abort$1=caml_call1(Event[1],cst_abort$1), - error$1=caml_call1(Event[1],cst_error$1), - load$1=caml_call1(Event[1],cst_load$1), - timeout=caml_call1(Event[1],cst_timeout), - loadend$0=caml_call1(Event[1],cst_loadend$0), - Event$0= - [0, - readystatechange, - loadstart$1, - progress$1, - abort$1, - error$1, - load$1, - timeout, - loadend$0], - Js_of_ocaml_XmlHttpRequest=[0,runtime.caml_xmlhttprequest_create,Event$0]; - caml_register_global - (1671,Js_of_ocaml_XmlHttpRequest,"Js_of_ocaml__XmlHttpRequest"); - var t2=Unsafe[1].Worker; - function create(script) - {var t1=caml_jsstring_of_string(script);return new t2(t1)} - function import_scripts(scripts) - {if(Unsafe[1].importScripts === t39) - caml_call1(Stdlib[1],cst_Worker_import_scripts_is_u); - var _e1_=caml_call1(Stdlib_Array[12],scripts); - function _e2_(s){return caml_jsstring_of_string(s)} - var _e3_=caml_call2(Stdlib_Array[15],_e2_,_e1_); - return runtime.caml_js_fun_call(Unsafe[1].importScripts,_e3_)} - function set_onmessage(handler) - {if(Unsafe[1].onmessage === t39) - caml_call1(Stdlib[1],cst_Worker_onmessage_is_undefi); - function js_handler(ev){return caml_call1(handler,ev.data)} - var t7=caml_js_wrap_callback(js_handler); - return Unsafe[1].onmessage = t7} - function post_message(t10) - {if(Unsafe[1].postMessage === t39) - caml_call1(Stdlib[1],cst_Worker_onmessage_is_undefi$0); - return Unsafe[1].postMessage(t10)} - var - Js_of_ocaml_Worker= - [0,create,import_scripts,set_onmessage,post_message]; - caml_register_global(1672,Js_of_ocaml_Worker,"Js_of_ocaml__Worker"); - var webSocket=Unsafe[1].WebSocket; - function is_supported(param){return caml_call1(Optdef[5],webSocket)} - var Js_of_ocaml_WebSockets=[0,webSocket,webSocket,webSocket,is_supported]; - caml_register_global - (1673,Js_of_ocaml_WebSockets,"Js_of_ocaml__WebSockets"); - var - defaultContextAttributes= - {"alpha":t38, - "depth":t38, - "stencil":t4, - "antialias":t38, - "premultipliedAlpha":t4, - "preserveDrawingBuffer":t4, - "preferLowPowerToHighPerformance":t4, - "failIfMajorPerformanceCaveat":t4}, - webglcontextlost=caml_call1(_n_[92],cst_webglcontextlost), - webglcontextrestored=caml_call1(_n_[92],cst_webglcontextrestored), - webglcontextcreationerror= - caml_call1(_n_[92],cst_webglcontextcreationerror), - Event$1= - [0,webglcontextlost,webglcontextrestored,webglcontextcreationerror]; - function getContext(t3) - {var ctx=t3.getContext("webgl"); - return caml_call1(Opt[5],ctx)?ctx:t3.getContext("experimental-webgl")} - function getContextWithAttributes(t9,t8) - {var ctx=t9.getContext("webgl",t8); - return caml_call1(Opt[5],ctx)?ctx:t9.getContext("experimental-webgl",t8)} - var - Js_of_ocaml_WebGL= - [0,defaultContextAttributes,Event$1,getContext,getContextWithAttributes]; - caml_register_global(1674,Js_of_ocaml_WebGL,"Js_of_ocaml__WebGL"); - function regexp(s) - {var t0=caml_jsbytes_of_string(s);return new t11(t0,"g")} - function regexp_case_fold(s) - {var t3=caml_jsbytes_of_string(s);return new t11(t3,"gi")} - function regexp_with_flag(s,f) - {var - t7=caml_jsstring_of_string(caml_call2(Stdlib[28],cst_g,f)), - t6=caml_jsbytes_of_string(s); - return new t11(t6,t7)} - function blunt_str_array_get(a,i) - {function _eZ_(param){throw [0,Assert_failure,_q_]} - var _e0_=a[i]; - return caml_string_of_jsbytes(caml_call2(Optdef[8],_e0_,_eZ_))} - function string_match(r,s,i) - {r.lastIndex = i; - var - t11=caml_jsbytes_of_string(s), - _eX_=r.exec(t11), - _eY_=caml_call2(Opt[3],_eX_,match_result); - return caml_call1(Opt[10],_eY_)} - function search_forward(r,s,i) - {r.lastIndex = i; - var t15=caml_jsbytes_of_string(s); - function _eU_(t17){return [0,t17.index,t17]} - var _eV_=r.exec(t15),_eW_=caml_call2(Opt[3],_eV_,_eU_); - return caml_call1(Opt[10],_eW_)} - function matched_string(r){return blunt_str_array_get(r,0)} - function matched_group(r,i) - {var _eS_=r[i],_eT_=caml_call2(Optdef[3],_eS_,caml_string_of_jsbytes); - return caml_call1(Optdef[10],_eT_)} - var t21=new t11("[$]","g"); - function quote_repl(s) - {var t23=caml_jsbytes_of_string(s);return t23.replace(t21,"$$$$")} - function global_replace(r,s,s_by) - {r.lastIndex = 0; - var t27=quote_repl(s_by),t28=caml_jsbytes_of_string(s); - return caml_string_of_jsbytes(t28.replace(r,t27))} - function replace_first(r,s,s_by) - {var - match=r.ignoreCase | 0, - match$0=r.multiline | 0, - flags=match?match$0?"mi":"i":match$0?"m":"", - t32=r.source, - t35=new t11(t32,flags), - t36=quote_repl(s_by), - t37=caml_jsbytes_of_string(s); - return caml_string_of_jsbytes(t37.replace(t35,t36))} - function list_of_js_array(a) - {var idx$1=a.length - 1 | 0,accu=0,idx=idx$1; - for(;;) - {if(caml_call2(symbol$5,idx,0))return accu; - var - idx$0=idx - 1 | 0, - accu$0=[0,blunt_str_array_get(a,idx),accu], - accu=accu$0, - idx=idx$0; - continue}} - function split(r,s) - {r.lastIndex = 0; - var t42=caml_jsbytes_of_string(s); - return list_of_js_array(t42.split(r))} - function bounded_split(r,s,i) - {r.lastIndex = 0; - var t47=caml_jsbytes_of_string(s); - return list_of_js_array(t47.split(r,i))} - var t48=regexp(cst); - function quote(s) - {var t50=caml_jsbytes_of_string(s); - return caml_string_of_jsbytes(t50.replace(t48,"\\$&"))} - function regexp_string(s){return regexp(quote(s))} - function regexp_string_case_fold(s){return regexp_case_fold(quote(s))} - var - Js_of_ocaml_Regexp= - [0, - regexp, - regexp_case_fold, - regexp_with_flag, - quote, - regexp_string, - regexp_string_case_fold, - string_match, - search_forward, - search_forward, - matched_string, - matched_group, - global_replace, - replace_first, - split, - bounded_split]; - caml_register_global(1675,Js_of_ocaml_Regexp,"Js_of_ocaml__Regexp"); - var Local_exn=[248,cst_Js_of_ocaml_Url_Local_exn,caml_fresh_oo_id(0)]; - function interrupt(param){throw Local_exn} - var plus_re=regexp_string(cst$0),t14=new t11("\\+","g"); - function urldecode_js_string_string(s) - {t14.lastIndex = 0; - return caml_string_of_jsbytes(unescape(s.replace(t14," ")))} - function urldecode(s) - {return caml_string_of_jsbytes - (unescape - (caml_jsbytes_of_string(global_replace(plus_re,s,cst$1))))} - function urlencode(opt,s) - {if(opt)var sth=opt[1],with_plus=sth;else var with_plus=1; - if(with_plus) - {var s$0=caml_string_of_jsbytes(escape(caml_jsbytes_of_string(s))); - return global_replace(plus_re,s$0,cst_2B)} - return caml_string_of_jsbytes(escape(caml_jsbytes_of_string(s)))} - var - Not_an_http_protocol= - [248,cst_Js_of_ocaml_Url_Not_an_htt,caml_fresh_oo_id(0)], - default_http_port=80, - default_https_port=443; - function path_of_path_string(s) - {var l=caml_ml_string_length(s); - function aux(i) - {try - {var _eQ_=caml_call3(String[30],s,i,47),j=_eQ_} - catch(_eR_) - {_eR_ = caml_wrap_exception(_eR_); - if(_eR_ !== Stdlib[8])throw _eR_; - var j=l} - var word=caml_call3(String[14],s,i,j - i | 0); - return caml_call2(symbol$10,j,l)?[0,word,0]:[0,word,aux(j + 1 | 0)]} - var a=aux(0); - if(a && ! caml_string_notequal(a[1],cst$2)) - {var _eP_=a[2]; - if(! _eP_)return 0; - if(! caml_string_notequal(_eP_[1],cst$3) && ! _eP_[2])return _r_} - return a} - function encode_arguments(l) - {function _eK_(param) - {var - v=param[2], - n=param[1], - _eM_=urlencode(0,v), - _eN_=caml_call2(Stdlib[28],cst$4,_eM_), - _eO_=urlencode(0,n); - return caml_call2(Stdlib[28],_eO_,_eN_)} - var _eL_=caml_call2(Stdlib_List[19],_eK_,l); - return caml_call2(String[6],cst$5,_eL_)} - function decode_arguments_js_string(s) - {var - t0=caml_jsstring_of_string(caml_call2(String[1],1,38)), - t18=s.split(t0), - len=t18.length; - function aux(acc,idx) - {var idx$0=idx; - for(;;) - {if(caml_call2(symbol$5,idx$0,0))return acc; - try - {var - _eB_=idx$0 - 1 | 0, - _eC_= - function(s) - {function _eI_(param) - {var - y=param[2], - x=param[1], - _eJ_=urldecode_js_string_string(y); - return [0,urldecode_js_string_string(x),_eJ_]} - var - t2=caml_jsstring_of_string(caml_call2(String[1],1,61)), - t5=s.indexOf(t2); - if(caml_call2(symbol$5,t5,0)) - var _eH_=t39; - else - var - t7=t5 + 1 | 0, - _eG_=s.slice(t7), - _eH_=[0,s.slice(0,t5),_eG_]; - return caml_call3(Optdef[7],_eH_,interrupt,_eI_)}, - _eD_=t18[idx$0], - _eE_=aux([0,caml_call3(Optdef[7],_eD_,interrupt,_eC_),acc],_eB_); - return _eE_} - catch(_eF_) - {_eF_ = caml_wrap_exception(_eF_); - if(_eF_ === Local_exn) - {var idx$1=idx$0 - 1 | 0,idx$0=idx$1;continue} - throw _eF_}}} - return aux(0,len - 1 | 0)} - function decode_arguments(s) - {return decode_arguments_js_string(caml_jsbytes_of_string(s))} - var - t19=caml_jsbytes_of_string(cst_Hh_Tt_Tt_Pp_Ss_0_9a_zA_Z_0), - t24=new t11(t19), - t21$0=caml_jsbytes_of_string(cst_Ff_Ii_Ll_Ee), - t26=new t11(t21$0); - function url_of_js_string(s) - {function _d$_(res) - {var - _em_=res[1], - prot_string=caml_call2(Optdef[8],_em_,interrupt), - match=caml_string_of_jsbytes(prot_string.toLowerCase()); - if - (caml_string_notequal(match,cst_file$0) - && - caml_string_notequal(match,cst_file$1)) - {var switch$0=0; - if - (caml_string_notequal(match,cst_http) - && - caml_string_notequal(match,cst_http$0)) - {var switch$1=0; - if - (caml_string_notequal(match,cst_https) - && - caml_string_notequal(match,cst_https$0)) - switch$1 = 1; - if(! switch$1){var ssl=1;switch$0 = 2}} - else - switch$0 = 1; - var switch$2=0; - switch(switch$0) - {case 1:var ssl=0;switch$2 = 1;break; - case 0:break; - default:switch$2 = 1} - if(switch$2) - {var - _en_=function(param){return caml_jsbytes_of_string(cst$7)}, - _eo_=res[6], - path_str= - urldecode_js_string_string(caml_call2(Optdef[8],_eo_,_en_)), - _ep_=function(param){return caml_jsbytes_of_string(cst$8)}, - _eq_=res[10], - _er_=urldecode_js_string_string(caml_call2(Optdef[8],_eq_,_ep_)), - _es_=function(param){return caml_jsbytes_of_string(cst$9)}, - _et_=res[8], - _eu_=decode_arguments_js_string(caml_call2(Optdef[8],_et_,_es_)), - _ev_=path_of_path_string(path_str), - _ew_=function(param){return caml_jsbytes_of_string(cst$10)}, - _ex_=res[4], - s=caml_string_of_jsbytes(caml_call2(Optdef[8],_ex_,_ew_)), - _ey_= - caml_string_notequal(s,cst$6)?caml_int_of_string(s):ssl?443:80, - _ez_=res[2], - url= - [0, - urldecode_js_string_string - (caml_call2(Optdef[8],_ez_,interrupt)), - _ey_, - _ev_, - path_str, - _eu_, - _er_], - _eA_=ssl?[1,url]:[0,url]; - return [0,_eA_]}} - throw Not_an_http_protocol} - function _ea_(param) - {function _ec_(res) - {var - _ef_=res[2], - path_str= - urldecode_js_string_string(caml_call2(Optdef[8],_ef_,interrupt)); - function _eg_(param){return caml_jsbytes_of_string(cst$11)} - var - _eh_=res[6], - _ei_=caml_string_of_jsbytes(caml_call2(Optdef[8],_eh_,_eg_)); - function _ej_(param){return caml_jsbytes_of_string(cst$12)} - var - _ek_=res[4], - _el_=decode_arguments_js_string(caml_call2(Optdef[8],_ek_,_ej_)); - return [0,[2,[0,path_of_path_string(path_str),path_str,_el_,_ei_]]]} - function _ed_(param){return 0} - var _ee_=t26.exec(s); - return caml_call3(Opt[7],_ee_,_ed_,_ec_)} - var _eb_=t24.exec(s); - return caml_call3(Opt[7],_eb_,_ea_,_d$_)} - function url_of_string(s) - {return url_of_js_string(caml_jsbytes_of_string(s))} - function string_of_url(param) - {switch(param[0]) - {case 0: - var - match=param[1], - frag=match[6], - args=match[5], - path=match[3], - port=match[2], - host=match[1]; - if(caml_string_notequal(frag,cst$13)) - var _dy_=urlencode(0,frag),_dz_=caml_call2(Stdlib[28],cst$14,_dy_); - else - var _dz_=cst$21; - if(args) - var - _dA_=encode_arguments(args), - _dB_=caml_call2(Stdlib[28],cst$15,_dA_); - else - var _dB_=cst$20; - var - _dC_=caml_call2(Stdlib[28],_dB_,_dz_), - _dD_=function(x){return urlencode(0,x)}, - _dE_=caml_call2(Stdlib_List[19],_dD_,path), - _dF_=caml_call2(String[6],cst$16,_dE_), - _dG_=caml_call2(Stdlib[28],_dF_,_dC_), - _dH_=caml_call2(Stdlib[28],cst$17,_dG_); - if(80 === port) - var _dI_=cst$18; - else - var - _dM_=caml_call1(Stdlib[33],port), - _dI_=caml_call2(Stdlib[28],cst$19,_dM_); - var - _dJ_=caml_call2(Stdlib[28],_dI_,_dH_), - _dK_=urlencode(0,host), - _dL_=caml_call2(Stdlib[28],_dK_,_dJ_); - return caml_call2(Stdlib[28],cst_http$1,_dL_); - case 1: - var - match$0=param[1], - frag$0=match$0[6], - args$0=match$0[5], - path$0=match$0[3], - port$0=match$0[2], - host$0=match$0[1]; - if(caml_string_notequal(frag$0,cst$22)) - var - _dN_=urlencode(0,frag$0), - _dO_=caml_call2(Stdlib[28],cst$23,_dN_); - else - var _dO_=cst$30; - if(args$0) - var - _dP_=encode_arguments(args$0), - _dQ_=caml_call2(Stdlib[28],cst$24,_dP_); - else - var _dQ_=cst$29; - var - _dR_=caml_call2(Stdlib[28],_dQ_,_dO_), - _dS_=function(x){return urlencode(0,x)}, - _dT_=caml_call2(Stdlib_List[19],_dS_,path$0), - _dU_=caml_call2(String[6],cst$25,_dT_), - _dV_=caml_call2(Stdlib[28],_dU_,_dR_), - _dW_=caml_call2(Stdlib[28],cst$26,_dV_); - if(443 === port$0) - var _dX_=cst$27; - else - var - _d1_=caml_call1(Stdlib[33],port$0), - _dX_=caml_call2(Stdlib[28],cst$28,_d1_); - var - _dY_=caml_call2(Stdlib[28],_dX_,_dW_), - _dZ_=urlencode(0,host$0), - _d0_=caml_call2(Stdlib[28],_dZ_,_dY_); - return caml_call2(Stdlib[28],cst_https$1,_d0_); - default: - var - match$1=param[1], - frag$1=match$1[4], - args$1=match$1[3], - path$1=match$1[1]; - if(caml_string_notequal(frag$1,cst$31)) - var - _d2_=urlencode(0,frag$1), - _d3_=caml_call2(Stdlib[28],cst$32,_d2_); - else - var _d3_=cst$36; - if(args$1) - var - _d4_=encode_arguments(args$1), - _d5_=caml_call2(Stdlib[28],cst$33,_d4_); - else - var _d5_=cst$35; - var - _d6_=caml_call2(Stdlib[28],_d5_,_d3_), - _d7_=function(x){return urlencode(0,x)}, - _d8_=caml_call2(Stdlib_List[19],_d7_,path$1), - _d9_=caml_call2(String[6],cst$34,_d8_), - _d__=caml_call2(Stdlib[28],_d9_,_d6_); - return caml_call2(Stdlib[28],cst_file$2,_d__)}} - var _s_=caml_call1(Optdef[2],_j_.location); - if(caml_call1(Optdef[5],_s_)) - var _t_=_j_.location; - else - var - t42=function(param,_dx_){return 0}, - t41=function(param,_dw_){return 0}, - t40=function(param){return 0}, - _t_= - {"href":"", - "protocol":"", - "host":"", - "hostname":"", - "port":"", - "pathname":"", - "search":"", - "hash":"", - "origin":t39, - "reload":caml_js_wrap_meth_callback(t40), - "replace":caml_js_wrap_meth_callback(t41), - "assign":caml_js_wrap_meth_callback(t42)}; - var - host=urldecode_js_string_string(_t_.hostname), - protocol=urldecode_js_string_string(_t_.protocol), - _u_=0, - port= - function(param) - {try - {var _du_=[0,caml_int_of_string(caml_string_of_jsbytes(_t_.port))]; - return _du_} - catch(_dv_) - {_dv_ = caml_wrap_exception(_dv_); - if(_dv_[1] === Stdlib[7])return 0; - throw _dv_}} - (_u_), - path_string=urldecode_js_string_string(_t_.pathname), - path=path_of_path_string(path_string), - t49=_t_.search; - if(t49.charAt(0) === "?") - var t52=_t_.search,_v_=t52.slice(1); - else - var _v_=_t_.search; - var arguments$0=decode_arguments_js_string(_v_); - function get_fragment(param) - {function _dr_(res){return caml_string_of_jsstring(res[1])} - function _ds_(param){return cst$37} - var t57=new t11("#(.*)"),t58=_t_.href,_dt_=t58.match(t57); - return caml_call3(Opt[7],_dt_,_ds_,_dr_)} - function set_fragment(s) - {var t59=caml_jsbytes_of_string(urlencode(0,s));return _t_.hash = t59} - function get$2(param){return url_of_js_string(_t_.href)} - function set$0(u) - {var t62=caml_jsbytes_of_string(string_of_url(u));return _t_.href = t62} - var - as_string=urldecode_js_string_string(_t_.href), - Js_of_ocaml_Url= - [0, - urldecode, - urlencode, - default_http_port, - default_https_port, - path_of_path_string, - encode_arguments, - decode_arguments, - url_of_string, - string_of_url, - [0, - host, - port, - protocol, - path_string, - path, - arguments$0, - get_fragment, - set_fragment, - get$2, - set$0, - as_string]]; - caml_register_global(1677,Js_of_ocaml_Url,"Js_of_ocaml__Url"); - var Js_of_ocaml_Lib_version=[0,s,git_version]; - caml_register_global - (1678,Js_of_ocaml_Lib_version,"Js_of_ocaml__Lib_version"); - function update_file(name,content) - {var oc=caml_call1(Stdlib[60],name); - caml_call2(Stdlib[66],oc,content); - return caml_call1(Stdlib[76],oc)} - function set_channel_flusher(out_channel,f) - {var - f$0= - caml_js_wrap_callback - (function(s){return caml_call1(f,caml_string_of_jsbytes(s))}); - return runtime.caml_ml_set_channel_output(out_channel,f$0)} - function set_channel_filler(in_channel,f) - {var f$0=caml_js_wrap_callback(f); - return runtime.caml_ml_set_channel_refill(in_channel,f$0)} - function mount(path,f) - {return runtime.caml_mount_autoload - (path, - caml_js_wrap_callback - (function(prefix,path){return caml_call2(f,prefix,path)}))} - function unmount(path){return runtime.caml_unmount(path)} - if(caml_call2(String[68],git_version,cst$38)) - var js_of_ocaml_version=s; - else - var - _cp_=caml_call2(Stdlib[28],cst$41,git_version), - js_of_ocaml_version=caml_call2(Stdlib[28],s,_cp_); - var - _w_=runtime.caml_create_file, - _x_=runtime.caml_read_file_content, - Js_of_ocaml_Sys_js= - [0, - set_channel_flusher, - set_channel_filler, - function(_dq_){return runtime.caml_list_mount_point(_dq_)}, - unmount, - mount, - _x_, - _w_, - update_file, - js_of_ocaml_version]; - caml_register_global(1679,Js_of_ocaml_Sys_js,"Js_of_ocaml__Sys_js"); - function empty_resize_observer_options(param){return {}} - var t2$0=Unsafe[1].ResizeObserver; - function is_supported$0(param){return caml_call1(Optdef[5],t2$0)} - function observe(node,f,box,param) - {var t1=caml_js_wrap_callback(f),t4=new t2$0(t1); - if(box) - {var box$0=box[1],t8={};t8.box = box$0;t4.observe(node,t8)} - else - t4.observe(node); - return t4} - var - Js_of_ocaml_ResizeObserver= - [0,empty_resize_observer_options,t2$0,is_supported$0,observe]; - caml_register_global - (1680,Js_of_ocaml_ResizeObserver,"Js_of_ocaml__ResizeObserver"); - var t4$1=Unsafe[1].PerformanceObserver; - function is_supported$1(param){return caml_call1(Optdef[5],t4$1)} - function observe$0(entry_types,f) - {var - _dp_= - caml_call1 - (caml_call1(Stdlib_List[19],caml_jsstring_of_string),entry_types), - t1=caml_js_from_array(caml_call1(Stdlib_Array[12],_dp_)), - t5={}; - t5.entryTypes = t1; - var t3=caml_js_wrap_callback(f),t6=new t4$1(t3); - t6.observe(t5); - return t6} - var Js_of_ocaml_PerformanceObserve=[0,t4$1,is_supported$1,observe$0]; - caml_register_global - (1681,Js_of_ocaml_PerformanceObserve,"Js_of_ocaml__PerformanceObserver"); - function empty_mutation_observer_init(param){return {}} - var t2$1=Unsafe[1].MutationObserver; - function is_supported$2(param){return caml_call1(Optdef[5],t2$1)} - function observe$1 - (node, - f, - child_list, - attributes, - character_data, - subtree, - attribute_old_value, - character_data_old_value, - attribute_filter, - param) - {function opt_iter(x,f) - {if(x){var x$0=x[1];return caml_call1(f,x$0)}return 0} - var t1=caml_js_wrap_callback(f),t19=new t2$1(t1),t18={}; - opt_iter(child_list,function(t3){return t18.childList = t3}); - opt_iter(attributes,function(t5){return t18.attributes = t5}); - opt_iter(character_data,function(t7){return t18.characterData = t7}); - opt_iter(subtree,function(t9){return t18.subtree = t9}); - opt_iter - (attribute_old_value,function(t11){return t18.attributeOldValue = t11}); - opt_iter - (character_data_old_value, - function(t13){return t18.characterDataOldValue = t13}); - opt_iter - (attribute_filter, - function(l) - {var t15=caml_js_from_array(caml_call1(Stdlib_Array[12],l)); - return t18.attributeFilter = t15}); - t19.observe(node,t18); - return t19} - var - Js_of_ocaml_MutationObserver= - [0,empty_mutation_observer_init,t2$1,is_supported$2,observe$1]; - caml_register_global - (1682,Js_of_ocaml_MutationObserver,"Js_of_ocaml__MutationObserver"); - var t1=Unsafe[1].Object; - function create$0(param){return new t1()} - function add$0(t,k,v){return t[k.concat("_")] = v} - function remove(t,k){return delete t[k.concat("_")]} - function find(t,k){return t[k.concat("_")]} - function keys(t) - {var - t10=Unsafe[1].Object, - t11=t10.keys(t), - res=[0,0], - _dk_=t11.length - 1 | 0, - _dj_=0; - if(! (_dk_ < 0)) - {var i=_dj_; - for(;;) - {var - _dl_=function(param){return caml_call1(Stdlib[2],cst_Jstable_keys)}, - _dm_=t11[i], - t15=caml_call2(Optdef[8],_dm_,_dl_), - t14=t15.length - 1 | 0, - _dn_=res[1]; - res[1] = [0,t15.substring(0,t14),_dn_]; - var _do_=i + 1 | 0; - if(_dk_ !== i){var i=_do_;continue} - break}} - return caml_call1(Stdlib_List[9],res[1])} - var Js_of_ocaml_Jstable=[0,create$0,add$0,remove,find,keys]; - caml_register_global(1683,Js_of_ocaml_Jstable,"Js_of_ocaml__Jstable"); - var t11$1=Unsafe[1].JSON; - function reviver(this$0,key,value) - {if(typeof value === "string")return caml_string_of_jsbytes(value); - if - (value instanceof array_length - && - 4 - === - value.length - && - 255 - === - value[0]) - {var _dh_=value[3],_di_=value[2]; - return runtime.caml_int64_create_lo_mi_hi(value[1],_di_,_dh_)} - return value} - var t3$0=caml_js_wrap_meth_callback(reviver); - function unsafe_input(t2){return t11$1.parse(t2,t3$0)} - var mlInt64_constr=t5.constructor; - function t10(key,value) - {var _dg_=Stdlib_Obj[13]; - return caml_call2(symbol$8,runtime.caml_obj_tag(value),_dg_) - ?caml_jsbytes_of_string(value) - :value instanceof mlInt64_constr - ?caml_js_from_array([0,255,value.lo,value.mi,value.hi]) - :value} - function output(t9){return t11$1.stringify(t9,t10)} - var Js_of_ocaml_Json=[0,output,unsafe_input]; - caml_register_global(1685,Js_of_ocaml_Json,"Js_of_ocaml__Json"); - function string_of_name(param) - {var _df_=param; - if(74 <= _df_) - {if(111 <= _df_) - switch(_df_) - {case 111:return cst_palevioletred; - case 112:return cst_papayawhip; - case 113:return cst_peachpuff; - case 114:return cst_peru; - case 115:return cst_pink; - case 116:return cst_plum; - case 117:return cst_powderblue; - case 118:return cst_purple; - case 119:return cst_red; - case 120:return cst_rosybrown; - case 121:return cst_royalblue; - case 122:return cst_saddlebrown; - case 123:return cst_salmon; - case 124:return cst_sandybrown; - case 125:return cst_seagreen; - case 126:return cst_seashell; - case 127:return cst_sienna; - case 128:return cst_silver; - case 129:return cst_skyblue; - case 130:return cst_slateblue; - case 131:return cst_slategray; - case 132:return cst_slategrey; - case 133:return cst_snow; - case 134:return cst_springgreen; - case 135:return cst_steelblue; - case 136:return cst_tan; - case 137:return cst_teal; - case 138:return cst_thistle; - case 139:return cst_tomato; - case 140:return cst_turquoise; - case 141:return cst_violet; - case 142:return cst_wheat; - case 143:return cst_white; - case 144:return cst_whitesmoke; - case 145:return cst_yellow; - default:return cst_yellowgreen} - switch(_df_) - {case 74:return cst_lightpink; - case 75:return cst_lightsalmon; - case 76:return cst_lightseagreen; - case 77:return cst_lightskyblue; - case 78:return cst_lightslategray; - case 79:return cst_lightslategrey; - case 80:return cst_lightsteelblue; - case 81:return cst_lightyellow; - case 82:return cst_lime; - case 83:return cst_limegreen; - case 84:return cst_linen; - case 85:return cst_magenta; - case 86:return cst_maroon; - case 87:return cst_mediumaquamarine; - case 88:return cst_mediumblue; - case 89:return cst_mediumorchid; - case 90:return cst_mediumpurple; - case 91:return cst_mediumseagreen; - case 92:return cst_mediumslateblue; - case 93:return cst_mediumspringgreen; - case 94:return cst_mediumturquoise; - case 95:return cst_mediumvioletred; - case 96:return cst_midnightblue; - case 97:return cst_mintcream; - case 98:return cst_mistyrose; - case 99:return cst_moccasin; - case 100:return cst_navajowhite; - case 101:return cst_navy; - case 102:return cst_oldlace; - case 103:return cst_olive; - case 104:return cst_olivedrab; - case 105:return cst_orange; - case 106:return cst_orangered; - case 107:return cst_orchid; - case 108:return cst_palegoldenrod; - case 109:return cst_palegreen; - default:return cst_paleturquoise}} - if(37 <= _df_) - switch(_df_) - {case 37:return cst_darkslategrey; - case 38:return cst_darkturquoise; - case 39:return cst_darkviolet; - case 40:return cst_deeppink; - case 41:return cst_deepskyblue; - case 42:return cst_dimgray; - case 43:return cst_dimgrey; - case 44:return cst_dodgerblue; - case 45:return cst_firebrick; - case 46:return cst_floralwhite; - case 47:return cst_forestgreen; - case 48:return cst_fuchsia; - case 49:return cst_gainsboro; - case 50:return cst_ghostwhite; - case 51:return cst_gold; - case 52:return cst_goldenrod; - case 53:return cst_gray; - case 54:return cst_grey; - case 55:return cst_green; - case 56:return cst_greenyellow; - case 57:return cst_honeydew; - case 58:return cst_hotpink; - case 59:return cst_indianred; - case 60:return cst_indigo; - case 61:return cst_ivory; - case 62:return cst_khaki; - case 63:return cst_lavender; - case 64:return cst_lavenderblush; - case 65:return cst_lawngreen; - case 66:return cst_lemonchiffon; - case 67:return cst_lightblue; - case 68:return cst_lightcoral; - case 69:return cst_lightcyan; - case 70:return cst_lightgoldenrodyellow; - case 71:return cst_lightgray; - case 72:return cst_lightgreen; - default:return cst_lightgrey} - switch(_df_) - {case 0:return cst_aliceblue; - case 1:return cst_antiquewhite; - case 2:return cst_aqua; - case 3:return cst_aquamarine; - case 4:return cst_azure; - case 5:return cst_beige; - case 6:return cst_bisque; - case 7:return cst_black; - case 8:return cst_blanchedalmond; - case 9:return cst_blue; - case 10:return cst_blueviolet; - case 11:return cst_brown; - case 12:return cst_burlywood; - case 13:return cst_cadetblue; - case 14:return cst_chartreuse; - case 15:return cst_chocolate; - case 16:return cst_coral; - case 17:return cst_cornflowerblue; - case 18:return cst_cornsilk; - case 19:return cst_crimson; - case 20:return cst_cyan; - case 21:return cst_darkblue; - case 22:return cst_darkcyan; - case 23:return cst_darkgoldenrod; - case 24:return cst_darkgray; - case 25:return cst_darkgreen; - case 26:return cst_darkgrey; - case 27:return cst_darkkhaki; - case 28:return cst_darkmagenta; - case 29:return cst_darkolivegreen; - case 30:return cst_darkorange; - case 31:return cst_darkorchid; - case 32:return cst_darkred; - case 33:return cst_darksalmon; - case 34:return cst_darkseagreen; - case 35:return cst_darkslateblue; - default:return cst_darkslategray}} - function name_of_string(s) - {var switch$0=caml_string_compare(s,cst_lightgrey$0); - if(0 <= switch$0) - {if(! (0 < switch$0))return 73; - var switch$1=caml_string_compare(s,cst_paleturquoise$0); - if(0 <= switch$1) - {if(! (0 < switch$1))return 110; - var switch$2=caml_string_compare(s,cst_skyblue$0); - if(0 <= switch$2) - {if(! (0 < switch$2))return 129; - var switch$3=caml_string_compare(s,cst_thistle$0); - if(0 <= switch$3) - {if(! (0 < switch$3))return 138; - if(! caml_string_notequal(s,cst_tomato$0))return 139; - if(! caml_string_notequal(s,cst_turquoise$0))return 140; - if(! caml_string_notequal(s,cst_violet$0))return 141; - if(! caml_string_notequal(s,cst_wheat$0))return 142; - if(! caml_string_notequal(s,cst_white$0))return 143; - if(! caml_string_notequal(s,cst_whitesmoke$0))return 144; - if(! caml_string_notequal(s,cst_yellow$0))return 145; - if(! caml_string_notequal(s,cst_yellowgreen$0))return 146} - else - {if(! caml_string_notequal(s,cst_slateblue$0))return 130; - if(! caml_string_notequal(s,cst_slategray$0))return 131; - if(! caml_string_notequal(s,cst_slategrey$0))return 132; - if(! caml_string_notequal(s,cst_snow$0))return 133; - if(! caml_string_notequal(s,cst_springgreen$0))return 134; - if(! caml_string_notequal(s,cst_steelblue$0))return 135; - if(! caml_string_notequal(s,cst_tan$0))return 136; - if(! caml_string_notequal(s,cst_teal$0))return 137}} - else - {var switch$4=caml_string_compare(s,cst_rosybrown$0); - if(0 <= switch$4) - {if(! (0 < switch$4))return 120; - if(! caml_string_notequal(s,cst_royalblue$0))return 121; - if(! caml_string_notequal(s,cst_saddlebrown$0))return 122; - if(! caml_string_notequal(s,cst_salmon$0))return 123; - if(! caml_string_notequal(s,cst_sandybrown$0))return 124; - if(! caml_string_notequal(s,cst_seagreen$0))return 125; - if(! caml_string_notequal(s,cst_seashell$0))return 126; - if(! caml_string_notequal(s,cst_sienna$0))return 127; - if(! caml_string_notequal(s,cst_silver$0))return 128} - else - {if(! caml_string_notequal(s,cst_palevioletred$0))return 111; - if(! caml_string_notequal(s,cst_papayawhip$0))return 112; - if(! caml_string_notequal(s,cst_peachpuff$0))return 113; - if(! caml_string_notequal(s,cst_peru$0))return 114; - if(! caml_string_notequal(s,cst_pink$0))return 115; - if(! caml_string_notequal(s,cst_plum$0))return 116; - if(! caml_string_notequal(s,cst_powderblue$0))return 117; - if(! caml_string_notequal(s,cst_purple$0))return 118; - if(! caml_string_notequal(s,cst_red$0))return 119}}} - else - {var switch$5=caml_string_compare(s,cst_mediumslateblue$0); - if(0 <= switch$5) - {if(! (0 < switch$5))return 92; - var switch$6=caml_string_compare(s,cst_navy$0); - if(0 <= switch$6) - {if(! (0 < switch$6))return 101; - if(! caml_string_notequal(s,cst_oldlace$0))return 102; - if(! caml_string_notequal(s,cst_olive$0))return 103; - if(! caml_string_notequal(s,cst_olivedrab$0))return 104; - if(! caml_string_notequal(s,cst_orange$0))return 105; - if(! caml_string_notequal(s,cst_orangered$0))return 106; - if(! caml_string_notequal(s,cst_orchid$0))return 107; - if(! caml_string_notequal(s,cst_palegoldenrod$0))return 108; - if(! caml_string_notequal(s,cst_palegreen$0))return 109} - else - {if(! caml_string_notequal(s,cst_mediumspringgreen$0))return 93; - if(! caml_string_notequal(s,cst_mediumturquoise$0))return 94; - if(! caml_string_notequal(s,cst_mediumvioletred$0))return 95; - if(! caml_string_notequal(s,cst_midnightblue$0))return 96; - if(! caml_string_notequal(s,cst_mintcream$0))return 97; - if(! caml_string_notequal(s,cst_mistyrose$0))return 98; - if(! caml_string_notequal(s,cst_moccasin$0))return 99; - if(! caml_string_notequal(s,cst_navajowhite$0))return 100}} - else - {var switch$7=caml_string_compare(s,cst_limegreen$0); - if(0 <= switch$7) - {if(! (0 < switch$7))return 83; - if(! caml_string_notequal(s,cst_linen$0))return 84; - if(! caml_string_notequal(s,cst_magenta$0))return 85; - if(! caml_string_notequal(s,cst_maroon$0))return 86; - if(! caml_string_notequal(s,cst_mediumaquamarine$0))return 87; - if(! caml_string_notequal(s,cst_mediumblue$0))return 88; - if(! caml_string_notequal(s,cst_mediumorchid$0))return 89; - if(! caml_string_notequal(s,cst_mediumpurple$0))return 90; - if(! caml_string_notequal(s,cst_mediumseagreen$0))return 91} - else - {if(! caml_string_notequal(s,cst_lightpink$0))return 74; - if(! caml_string_notequal(s,cst_lightsalmon$0))return 75; - if(! caml_string_notequal(s,cst_lightseagreen$0))return 76; - if(! caml_string_notequal(s,cst_lightskyblue$0))return 77; - if(! caml_string_notequal(s,cst_lightslategray$0))return 78; - if(! caml_string_notequal(s,cst_lightslategrey$0))return 79; - if(! caml_string_notequal(s,cst_lightsteelblue$0))return 80; - if(! caml_string_notequal(s,cst_lightyellow$0))return 81; - if(! caml_string_notequal(s,cst_lime$0))return 82}}}} - else - {var switch$8=caml_string_compare(s,cst_darkslategray$0); - if(0 <= switch$8) - {if(! (0 < switch$8))return 36; - var switch$9=caml_string_compare(s,cst_greenyellow$0); - if(0 <= switch$9) - {if(! (0 < switch$9))return 56; - var switch$10=caml_string_compare(s,cst_lavenderblush$0); - if(0 <= switch$10) - {if(! (0 < switch$10))return 64; - if(! caml_string_notequal(s,cst_lawngreen$0))return 65; - if(! caml_string_notequal(s,cst_lemonchiffon$0))return 66; - if(! caml_string_notequal(s,cst_lightblue$0))return 67; - if(! caml_string_notequal(s,cst_lightcoral$0))return 68; - if(! caml_string_notequal(s,cst_lightcyan$0))return 69; - if(! caml_string_notequal(s,cst_lightgoldenrodyellow$0)) - return 70; - if(! caml_string_notequal(s,cst_lightgray$0))return 71; - if(! caml_string_notequal(s,cst_lightgreen$0))return 72} - else - {if(! caml_string_notequal(s,cst_grey$0))return 54; - if(! caml_string_notequal(s,cst_honeydew$0))return 57; - if(! caml_string_notequal(s,cst_hotpink$0))return 58; - if(! caml_string_notequal(s,cst_indianred$0))return 59; - if(! caml_string_notequal(s,cst_indigo$0))return 60; - if(! caml_string_notequal(s,cst_ivory$0))return 61; - if(! caml_string_notequal(s,cst_khaki$0))return 62; - if(! caml_string_notequal(s,cst_lavender$0))return 63}} - else - {var switch$11=caml_string_compare(s,cst_floralwhite$0); - if(0 <= switch$11) - {if(! (0 < switch$11))return 46; - if(! caml_string_notequal(s,cst_forestgreen$0))return 47; - if(! caml_string_notequal(s,cst_fuchsia$0))return 48; - if(! caml_string_notequal(s,cst_gainsboro$0))return 49; - if(! caml_string_notequal(s,cst_ghostwhite$0))return 50; - if(! caml_string_notequal(s,cst_gold$0))return 51; - if(! caml_string_notequal(s,cst_goldenrod$0))return 52; - if(! caml_string_notequal(s,cst_gray$0))return 53; - if(! caml_string_notequal(s,cst_green$0))return 55} - else - {if(! caml_string_notequal(s,cst_darkslategrey$0))return 37; - if(! caml_string_notequal(s,cst_darkturquoise$0))return 38; - if(! caml_string_notequal(s,cst_darkviolet$0))return 39; - if(! caml_string_notequal(s,cst_deeppink$0))return 40; - if(! caml_string_notequal(s,cst_deepskyblue$0))return 41; - if(! caml_string_notequal(s,cst_dimgray$0))return 42; - if(! caml_string_notequal(s,cst_dimgrey$0))return 43; - if(! caml_string_notequal(s,cst_dodgerblue$0))return 44; - if(! caml_string_notequal(s,cst_firebrick$0))return 45}}} - else - {var switch$12=caml_string_compare(s,cst_cornsilk$0); - if(0 <= switch$12) - {if(! (0 < switch$12))return 18; - var switch$13=caml_string_compare(s,cst_darkkhaki$0); - if(0 <= switch$13) - {if(! (0 < switch$13))return 27; - if(! caml_string_notequal(s,cst_darkmagenta$0))return 28; - if(! caml_string_notequal(s,cst_darkolivegreen$0))return 29; - if(! caml_string_notequal(s,cst_darkorange$0))return 30; - if(! caml_string_notequal(s,cst_darkorchid$0))return 31; - if(! caml_string_notequal(s,cst_darkred$0))return 32; - if(! caml_string_notequal(s,cst_darksalmon$0))return 33; - if(! caml_string_notequal(s,cst_darkseagreen$0))return 34; - if(! caml_string_notequal(s,cst_darkslateblue$0))return 35} - else - {if(! caml_string_notequal(s,cst_crimson$0))return 19; - if(! caml_string_notequal(s,cst_cyan$0))return 20; - if(! caml_string_notequal(s,cst_darkblue$0))return 21; - if(! caml_string_notequal(s,cst_darkcyan$0))return 22; - if(! caml_string_notequal(s,cst_darkgoldenrod$0))return 23; - if(! caml_string_notequal(s,cst_darkgray$0))return 24; - if(! caml_string_notequal(s,cst_darkgreen$0))return 25; - if(! caml_string_notequal(s,cst_darkgrey$0))return 26}} - else - {var switch$14=caml_string_compare(s,cst_blue$0); - if(0 <= switch$14) - {if(! (0 < switch$14))return 9; - if(! caml_string_notequal(s,cst_blueviolet$0))return 10; - if(! caml_string_notequal(s,cst_brown$0))return 11; - if(! caml_string_notequal(s,cst_burlywood$0))return 12; - if(! caml_string_notequal(s,cst_cadetblue$0))return 13; - if(! caml_string_notequal(s,cst_chartreuse$0))return 14; - if(! caml_string_notequal(s,cst_chocolate$0))return 15; - if(! caml_string_notequal(s,cst_coral$0))return 16; - if(! caml_string_notequal(s,cst_cornflowerblue$0))return 17} - else - {if(! caml_string_notequal(s,cst_aliceblue$0))return 0; - if(! caml_string_notequal(s,cst_antiquewhite$0))return 1; - if(! caml_string_notequal(s,cst_aqua$0))return 2; - if(! caml_string_notequal(s,cst_aquamarine$0))return 3; - if(! caml_string_notequal(s,cst_azure$0))return 4; - if(! caml_string_notequal(s,cst_beige$0))return 5; - if(! caml_string_notequal(s,cst_bisque$0))return 6; - if(! caml_string_notequal(s,cst_black$0))return 7; - if(! caml_string_notequal(s,cst_blanchedalmond$0))return 8}}}} - var _de_=caml_call2(Stdlib[28],s,cst_is_not_a_valid_color_name); - throw [0,Stdlib[6],_de_]} - function rgb_of_name(param) - {var _dd_=param; - if(74 <= _dd_) - {if(111 <= _dd_) - switch(_dd_) - {case 111:return _br_; - case 112:return _bs_; - case 113:return _bt_; - case 114:return _bu_; - case 115:return _bv_; - case 116:return _bw_; - case 117:return _bx_; - case 118:return _by_; - case 119:return _bz_; - case 120:return _bA_; - case 121:return _bB_; - case 122:return _bC_; - case 123:return _bD_; - case 124:return _bE_; - case 125:return _bF_; - case 126:return _bG_; - case 127:return _bH_; - case 128:return _bI_; - case 129:return _bJ_; - case 130:return _bK_; - case 131:return _bL_; - case 132:return _bM_; - case 133:return _bN_; - case 134:return _bO_; - case 135:return _bP_; - case 136:return _bQ_; - case 137:return _bR_; - case 138:return _bS_; - case 139:return _bT_; - case 140:return _bU_; - case 141:return _bV_; - case 142:return _bW_; - case 143:return _bX_; - case 144:return _bY_; - case 145:return _bZ_; - default:return _b0_} - switch(_dd_) - {case 74:return _aS_; - case 75:return _aT_; - case 76:return _aU_; - case 77:return _aV_; - case 78:return _aW_; - case 79:return _aX_; - case 80:return _aY_; - case 81:return _aZ_; - case 82:return _a0_; - case 83:return _a1_; - case 84:return _a2_; - case 85:return _a3_; - case 86:return _a4_; - case 87:return _a5_; - case 88:return _a6_; - case 89:return _a7_; - case 90:return _a8_; - case 91:return _a9_; - case 92:return _a__; - case 93:return _a$_; - case 94:return _ba_; - case 95:return _bb_; - case 96:return _bc_; - case 97:return _bd_; - case 98:return _be_; - case 99:return _bf_; - case 100:return _bg_; - case 101:return _bh_; - case 102:return _bi_; - case 103:return _bj_; - case 104:return _bk_; - case 105:return _bl_; - case 106:return _bm_; - case 107:return _bn_; - case 108:return _bo_; - case 109:return _bp_; - default:return _bq_}} - if(37 <= _dd_) - switch(_dd_) - {case 37:return _ah_; - case 38:return _ai_; - case 39:return _aj_; - case 40:return _ak_; - case 41:return _al_; - case 42:return _am_; - case 43:return _an_; - case 44:return _ao_; - case 45:return _ap_; - case 46:return _aq_; - case 47:return _ar_; - case 48:return _as_; - case 49:return _at_; - case 50:return _au_; - case 51:return _av_; - case 52:return _aw_; - case 53:return _ax_; - case 54:return _ay_; - case 55:return _az_; - case 56:return _aA_; - case 57:return _aB_; - case 58:return _aC_; - case 59:return _aD_; - case 60:return _aE_; - case 61:return _aF_; - case 62:return _aG_; - case 63:return _aH_; - case 64:return _aI_; - case 65:return _aJ_; - case 66:return _aK_; - case 67:return _aL_; - case 68:return _aM_; - case 69:return _aN_; - case 70:return _aO_; - case 71:return _aP_; - case 72:return _aQ_; - default:return _aR_} - switch(_dd_) - {case 0:return _y_; - case 1:return _z_; - case 2:return _A_; - case 3:return _B_; - case 4:return _C_; - case 5:return _D_; - case 6:return _E_; - case 7:return _F_; - case 8:return _G_; - case 9:return _H_; - case 10:return _I_; - case 11:return _J_; - case 12:return _K_; - case 13:return _L_; - case 14:return _M_; - case 15:return _N_; - case 16:return _O_; - case 17:return _P_; - case 18:return _Q_; - case 19:return _R_; - case 20:return _S_; - case 21:return _T_; - case 22:return _U_; - case 23:return _V_; - case 24:return _W_; - case 25:return _X_; - case 26:return _Y_; - case 27:return _Z_; - case 28:return ___; - case 29:return _$_; - case 30:return _aa_; - case 31:return _ab_; - case 32:return _ac_; - case 33:return _ad_; - case 34:return _ae_; - case 35:return _af_; - default:return _ag_}} - function rgb(a,r,g,b) - {if(a){var a$0=a[1];return [3,[0,r,g,b,a$0]]}return [1,[0,r,g,b]]} - function hsl(a,h,s,l) - {if(a){var a$0=a[1];return [6,[0,h,s,l,a$0]]}return [5,[0,h,s,l]]} - function string_of_t(param) - {switch(param[0]) - {case 0:var n=param[1];return string_of_name(n); - case 1: - var match=param[1],b=match[3],g=match[2],r=match[1]; - return caml_call4(Stdlib_Printf[4],_b1_,r,g,b); - case 2: - var match$0=param[1],b$0=match$0[3],g$0=match$0[2],r$0=match$0[1]; - return caml_call4(Stdlib_Printf[4],_b2_,r$0,g$0,b$0); - case 3: - var - match$1=param[1], - a=match$1[4], - b$1=match$1[3], - g$1=match$1[2], - r$1=match$1[1]; - return caml_call5(Stdlib_Printf[4],_b3_,r$1,g$1,b$1,a); - case 4: - var - match$2=param[1], - a$0=match$2[4], - b$2=match$2[3], - g$2=match$2[2], - r$2=match$2[1]; - return caml_call5(Stdlib_Printf[4],_b4_,r$2,g$2,b$2,a$0); - case 5: - var match$3=param[1],l=match$3[3],s=match$3[2],h=match$3[1]; - return caml_call4(Stdlib_Printf[4],_b5_,h,s,l); - default: - var - match$4=param[1], - a$1=match$4[4], - l$0=match$4[3], - s$0=match$4[2], - h$0=match$4[1]; - return caml_call5(Stdlib_Printf[4],_b6_,h$0,s$0,l$0,a$1)}} - function hex_of_rgb(param) - {var blue=param[3],green=param[2],red=param[1]; - function in_range(i) - {var - _c$_=caml_call2(symbol$5,i,0), - _da_=_c$_ || caml_call2(symbol$9,i,255); - if(_da_) - {var - _db_=caml_call1(Stdlib[33],i), - _dc_=caml_call2(Stdlib[28],_db_,cst_is_out_of_valid_range); - throw [0,Stdlib[6],_dc_]} - return _da_} - in_range(red); - in_range(green); - in_range(blue); - return caml_call4(Stdlib_Printf[4],_b7_,red,green,blue)} - function js_t_of_js_string(s) - {var - t0=caml_jsbytes_of_string(cst_rgb_s_d_s_d_s_d), - t13=new t11(t0), - t2=caml_jsbytes_of_string(cst_rgb_s_d_s_d_s_d$0), - t17=new t11(t2), - t4=caml_jsbytes_of_string(cst_rgba_s_d_s_d_s_d_d_d), - t15=new t11(t4), - t6=caml_jsbytes_of_string(cst_rgba_s_d_s_d_s_d_d_d$0), - t19=new t11(t6), - t8=caml_jsbytes_of_string(cst_hsl_s_d_s_d_s_d), - t21=new t11(t8), - t10=caml_jsbytes_of_string(cst_hsla_s_d_s_d_s_d_d_d), - t23=new t11(t10); - if - (! - (t13.test(s) | 0) - && - ! - (t15.test(s) | 0) - && - ! - (t17.test(s) | 0) - && - ! - (t19.test(s) | 0) - && - ! - (t21.test(s) | 0) - && - ! - (t23.test(s) | 0)) - {var _c8_=caml_string_of_jsstring(s); - if(caml_call2(Stdlib_List[36],_c8_,_b8_))return s; - var - _c9_=caml_string_of_jsstring(s), - _c__=caml_call2(Stdlib[28],_c9_,cst_is_not_a_valid_color); - throw [0,Stdlib[6],_c__]} - return s} - function js(c) - {if(0 === c[0]) - {var n=c[1];return caml_jsstring_of_string(string_of_name(n))} - return caml_jsstring_of_string(string_of_t(c))} - function ml(c) - {var s=caml_string_of_jsstring(c); - try - {var _cV_=[0,name_of_string(s)];return _cV_} - catch(_cW_) - {_cW_ = caml_wrap_exception(_cW_); - if(_cW_[1] === Stdlib[6]) - {var - fail= - function(param) - {var _c7_=caml_call2(Stdlib[28],s,cst_is_not_a_valid_color$0); - throw [0,Stdlib[6],_c7_]}, - re_rgb=regexp(cst_rgba_d_d_d_d_d), - re_rgb_pct=regexp(cst_rgba_d_d_d_d_d$0), - re_hsl=regexp(cst_hsla_d_d_d_d_d), - i_of_s_o= - function(param) - {if(param) - {var i=param[1]; - try - {var _c5_=caml_int_of_string(i);return _c5_} - catch(_c6_) - {_c6_ = caml_wrap_exception(_c6_); - if(_c6_[1] === Stdlib[6]) - var s=_c6_[2]; - else - {if(_c6_[1] !== Stdlib[7])throw _c6_;var s=_c6_[2]} - var - _c2_=caml_call2(Stdlib[28],cst$39,s), - _c3_=caml_call2(Stdlib[28],i,_c2_), - _c4_=caml_call2(Stdlib[28],cst_color_conversion_error,_c3_); - throw [0,Stdlib[6],_c4_]}} - return fail(0)}, - f_of_s= - function(f) - {try - {var _c0_=caml_float_of_string(f);return _c0_} - catch(_c1_) - {_c1_ = caml_wrap_exception(_c1_); - if(_c1_[1] === Stdlib[6]) - var s=_c1_[2]; - else - {if(_c1_[1] !== Stdlib[7])throw _c1_;var s=_c1_[2]} - var - _cX_=caml_call2(Stdlib[28],cst$40,s), - _cY_=caml_call2(Stdlib[28],f,_cX_), - _cZ_=caml_call2(Stdlib[28],cst_color_conversion_error$0,_cY_); - throw [0,Stdlib[6],_cZ_]}}, - match=string_match(re_rgb,s,0); - if(match) - {var - r=match[1], - red=matched_group(r,2), - green=matched_group(r,3), - blue=matched_group(r,4), - alpha=matched_group(r,5), - match$0=matched_group(r,1); - if(match$0) - {var _cD_=match$0[1]; - if(! caml_string_notequal(_cD_,cst_rgb)) - {if(alpha)return fail(0); - var _cH_=i_of_s_o(blue),_cI_=i_of_s_o(green); - return [1,[0,i_of_s_o(red),_cI_,_cH_]]} - if(! caml_string_notequal(_cD_,cst_rgba)) - {if(alpha) - {var - a=alpha[1], - _cE_=f_of_s(a), - _cF_=i_of_s_o(blue), - _cG_=i_of_s_o(green); - return [3,[0,i_of_s_o(red),_cG_,_cF_,_cE_]]} - return fail(0)}} - return fail(0)} - var match$1=string_match(re_rgb_pct,s,0); - if(match$1) - {var - r$0=match$1[1], - red$0=matched_group(r$0,2), - green$0=matched_group(r$0,3), - blue$0=matched_group(r$0,4), - alpha$0=matched_group(r$0,5), - match$2=matched_group(r$0,1); - if(match$2) - {var _cJ_=match$2[1]; - if(! caml_string_notequal(_cJ_,cst_rgb$0)) - {if(alpha$0)return fail(0); - var _cN_=i_of_s_o(blue$0),_cO_=i_of_s_o(green$0); - return [2,[0,i_of_s_o(red$0),_cO_,_cN_]]} - if(! caml_string_notequal(_cJ_,cst_rgba$0)) - {if(alpha$0) - {var - a$0=alpha$0[1], - _cK_=f_of_s(a$0), - _cL_=i_of_s_o(blue$0), - _cM_=i_of_s_o(green$0); - return [4,[0,i_of_s_o(red$0),_cM_,_cL_,_cK_]]} - return fail(0)}} - return fail(0)} - var match$3=string_match(re_hsl,s,0); - if(match$3) - {var - r$1=match$3[1], - red$1=matched_group(r$1,2), - green$1=matched_group(r$1,3), - blue$1=matched_group(r$1,4), - alpha$1=matched_group(r$1,5), - match$4=matched_group(r$1,1); - if(match$4) - {var _cP_=match$4[1]; - if(! caml_string_notequal(_cP_,cst_hsl)) - {if(alpha$1)return fail(0); - var _cT_=i_of_s_o(blue$1),_cU_=i_of_s_o(green$1); - return [5,[0,i_of_s_o(red$1),_cU_,_cT_]]} - if(! caml_string_notequal(_cP_,cst_hsla)) - {if(alpha$1) - {var - a$1=alpha$1[1], - _cQ_=f_of_s(a$1), - _cR_=i_of_s_o(blue$1), - _cS_=i_of_s_o(green$1); - return [6,[0,i_of_s_o(red$1),_cS_,_cR_,_cQ_]]} - return fail(0)}} - return fail(0)} - return fail(0)} - throw _cW_}} - function string_of_t$0(param) - {if(typeof param === "number") - return cst_0; - else - switch(param[0]) - {case 0: - var f=param[1];return caml_call3(Stdlib_Printf[4],_b9_,f,cst_em$0); - case 1: - var f$0=param[1]; - return caml_call3(Stdlib_Printf[4],_b__,f$0,cst_ex); - case 2: - var f$1=param[1]; - return caml_call3(Stdlib_Printf[4],_b$_,f$1,cst_px); - case 3: - var f$2=param[1]; - return caml_call3(Stdlib_Printf[4],_ca_,f$2,cst_gd); - case 4: - var f$3=param[1]; - return caml_call3(Stdlib_Printf[4],_cb_,f$3,cst_rem); - case 5: - var f$4=param[1]; - return caml_call3(Stdlib_Printf[4],_cc_,f$4,cst_vw); - case 6: - var f$5=param[1]; - return caml_call3(Stdlib_Printf[4],_cd_,f$5,cst_vh); - case 7: - var f$6=param[1]; - return caml_call3(Stdlib_Printf[4],_ce_,f$6,cst_vm); - case 8: - var f$7=param[1]; - return caml_call3(Stdlib_Printf[4],_cf_,f$7,cst_ch); - case 9: - var f$8=param[1]; - return caml_call3(Stdlib_Printf[4],_cg_,f$8,cst_mm); - case 10: - var f$9=param[1]; - return caml_call3(Stdlib_Printf[4],_ch_,f$9,cst_cm); - case 11: - var f$10=param[1]; - return caml_call3(Stdlib_Printf[4],_ci_,f$10,cst_in); - case 12: - var f$11=param[1]; - return caml_call3(Stdlib_Printf[4],_cj_,f$11,cst_pt); - default: - var f$12=param[1]; - return caml_call3(Stdlib_Printf[4],_ck_,f$12,cst_pc)}} - function js$0(t){return caml_jsstring_of_string(string_of_t$0(t))} - function ml$0(t) - {var s=caml_string_of_jsstring(t); - if(caml_call2(String[68],s,cst_0$0))return 0; - function fail(param) - {var _cC_=caml_call2(Stdlib[28],s,cst_is_not_a_valid_length); - throw [0,Stdlib[6],_cC_]} - var re=regexp(cst_d_d_s_S),match=string_match(re,s,0); - if(match) - {var r=match[1],match$0=matched_group(r,1); - if(match$0) - {var f=match$0[1]; - try - {var _cA_=caml_float_of_string(f)} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] === Stdlib[6]) - {var - s$0=exn[2], - _cz_=caml_call2(Stdlib[28],cst_length_conversion_error,s$0); - throw [0,Stdlib[6],_cz_]} - throw exn} - var f$0=_cA_} - else - var f$0=fail(0); - var match$1=matched_group(r,2); - if(match$1) - {var _cB_=match$1[1],switch$0=caml_string_compare(_cB_,cst_pc$0); - if(0 <= switch$0) - {if(! (0 < switch$0))return [13,f$0]; - if(! caml_string_notequal(_cB_,cst_pt$0))return [12,f$0]; - if(! caml_string_notequal(_cB_,cst_px$0))return [2,f$0]; - if(! caml_string_notequal(_cB_,cst_rem$0))return [4,f$0]; - if(! caml_string_notequal(_cB_,cst_vh$0))return [6,f$0]; - if(! caml_string_notequal(_cB_,cst_vm$0))return [7,f$0]; - if(! caml_string_notequal(_cB_,cst_vw$0))return [5,f$0]} - else - {if(! caml_string_notequal(_cB_,cst_ch$0))return [8,f$0]; - if(! caml_string_notequal(_cB_,cst_cm$0))return [10,f$0]; - if(! caml_string_notequal(_cB_,cst_em$1))return [0,f$0]; - if(! caml_string_notequal(_cB_,cst_ex$0))return [1,f$0]; - if(! caml_string_notequal(_cB_,cst_gd$0))return [3,f$0]; - if(! caml_string_notequal(_cB_,cst_in$0))return [11,f$0]; - if(! caml_string_notequal(_cB_,cst_mm$0))return [9,f$0]} - return fail(0)} - return fail(0)} - return fail(0)} - var Length=[0,string_of_t$0,js$0,ml$0]; - function string_of_t$1(param) - {switch(param[0]) - {case 0: - var f=param[1];return caml_call3(Stdlib_Printf[4],_cl_,f,cst_deg); - case 1: - var f$0=param[1]; - return caml_call3(Stdlib_Printf[4],_cm_,f$0,cst_grad); - case 2: - var f$1=param[1]; - return caml_call3(Stdlib_Printf[4],_cn_,f$1,cst_rad); - default: - var f$2=param[1]; - return caml_call3(Stdlib_Printf[4],_co_,f$2,cst_turns)}} - function js$1(t){return caml_jsstring_of_string(string_of_t$1(t))} - function ml$1(j) - {var s=caml_string_of_jsstring(j),re=regexp(cst_d_d_deg_grad_rad_turns); - function fail(param) - {var _cy_=caml_call2(Stdlib[28],s,cst_is_not_a_valid_length$0); - throw [0,Stdlib[6],_cy_]} - var match=string_match(re,s,0); - if(match) - {var r=match[1],match$0=matched_group(r,1); - if(match$0) - {var f=match$0[1]; - try - {var _cw_=caml_float_of_string(f)} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] === Stdlib[6]) - {var - s$0=exn[2], - _cv_=caml_call2(Stdlib[28],cst_length_conversion_error$0,s$0); - throw [0,Stdlib[6],_cv_]} - throw exn} - var f$0=_cw_} - else - var f$0=fail(0); - var match$1=matched_group(r,2); - if(match$1) - {var _cx_=match$1[1]; - if(! caml_string_notequal(_cx_,cst_deg$0))return [0,f$0]; - if(! caml_string_notequal(_cx_,cst_grad$0))return [1,f$0]; - if(! caml_string_notequal(_cx_,cst_rad$0))return [2,f$0]; - if(! caml_string_notequal(_cx_,cst_turns$0))return [3,f$0]} - return fail(0)} - return fail(0)} - var - Angle=[0,string_of_t$1,js$1,ml$1], - Js_of_ocaml_CSS= - [0, - [0, - string_of_name, - rgb_of_name, - hex_of_rgb, - rgb, - hsl, - string_of_t, - js, - ml, - js_t_of_js_string], - Length, - Angle]; - caml_register_global(1686,Js_of_ocaml_CSS,"Js_of_ocaml__CSS"); - function listen(opt,target,typ,cb) - {if(opt)var sth=opt[1],capture=sth;else var capture=0; - var _cu_=! ! capture; - return addEventListener - (target, - typ, - full_handler(function(n,e){return ! ! caml_call2(cb,n,e)}), - _cu_)} - var Js_of_ocaml_Dom_events=[0,_n_,listen,removeEventListener]; - caml_register_global - (1687,Js_of_ocaml_Dom_events,"Js_of_ocaml__Dom_events"); - var - t0="http://www.w3.org/2000/svg", - SVGError=[248,cst_Js_of_ocaml_Dom_svg_SVGErr,caml_fresh_oo_id(0)]; - function createElement$0(t2,name) - {var t1=caml_jsstring_of_string(name); - return t2.createElementNS("http://www.w3.org/2000/svg",t1)} - function unsafeCreateElement$0(doc,name){return createElement$0(doc,name)} - function createA$0(doc){return unsafeCreateElement$0(doc,cst_a$2)} - function createAltGlyph(doc) - {return unsafeCreateElement$0(doc,cst_altglyph)} - function createAltGlyphDef(doc) - {return unsafeCreateElement$0(doc,cst_altglyphdef)} - function createAltGlyphItem(doc) - {return unsafeCreateElement$0(doc,cst_altglyphitem)} - function createAnimate(doc){return unsafeCreateElement$0(doc,cst_animate)} - function createAnimateColor(doc) - {return unsafeCreateElement$0(doc,cst_animatecolor)} - function createAnimateMotion(doc) - {return unsafeCreateElement$0(doc,cst_animatemotion)} - function createAnimateTransform(doc) - {return unsafeCreateElement$0(doc,cst_animatetransform)} - function createCircle(doc){return unsafeCreateElement$0(doc,cst_circle)} - function createClipPath(doc) - {return unsafeCreateElement$0(doc,cst_clippath)} - function createCursor(doc){return unsafeCreateElement$0(doc,cst_cursor)} - function createDefs(doc){return unsafeCreateElement$0(doc,cst_defs)} - function createDesc(doc){return unsafeCreateElement$0(doc,cst_desc)} - function createEllipse(doc){return unsafeCreateElement$0(doc,cst_ellipse)} - function createFilter(doc){return unsafeCreateElement$0(doc,cst_filter)} - function createFont(doc){return unsafeCreateElement$0(doc,cst_font)} - function createFontFace(doc) - {return unsafeCreateElement$0(doc,cst_font_face)} - function createFontFaceFormat(doc) - {return unsafeCreateElement$0(doc,cst_font_face_format)} - function createFontFaceName(doc) - {return unsafeCreateElement$0(doc,cst_font_face_name)} - function createFontFaceSrc(doc) - {return unsafeCreateElement$0(doc,cst_font_face_src)} - function createFontFaceUri(doc) - {return unsafeCreateElement$0(doc,cst_font_face_uri)} - function createForeignObject(doc) - {return unsafeCreateElement$0(doc,cst_foreignObject)} - function createG(doc){return unsafeCreateElement$0(doc,cst_g$0)} - function createGlyph(doc){return unsafeCreateElement$0(doc,cst_glyph)} - function createGlyphRef(doc) - {return unsafeCreateElement$0(doc,cst_glyphref)} - function createhkern(doc){return unsafeCreateElement$0(doc,cst_hkern)} - function createImage(doc){return unsafeCreateElement$0(doc,cst_image)} - function createLineElement(doc) - {return unsafeCreateElement$0(doc,cst_line)} - function createLinearElement(doc) - {return unsafeCreateElement$0(doc,cst_lineargradient)} - function createMask(doc){return unsafeCreateElement$0(doc,cst_mask)} - function createMetaData(doc) - {return unsafeCreateElement$0(doc,cst_metadata)} - function createMissingGlyph(doc) - {return unsafeCreateElement$0(doc,cst_missing_glyph)} - function createMPath(doc){return unsafeCreateElement$0(doc,cst_mpath)} - function createPath(doc){return unsafeCreateElement$0(doc,cst_path)} - function createPattern(doc){return unsafeCreateElement$0(doc,cst_pattern)} - function createPolygon(doc){return unsafeCreateElement$0(doc,cst_polygon)} - function createPolyline(doc) - {return unsafeCreateElement$0(doc,cst_polyline)} - function createRadialgradient(doc) - {return unsafeCreateElement$0(doc,cst_radialgradient)} - function createRect(doc){return unsafeCreateElement$0(doc,cst_rect)} - function createScript$0(doc) - {return unsafeCreateElement$0(doc,cst_script$2)} - function createSet(doc){return unsafeCreateElement$0(doc,cst_set)} - function createStop(doc){return unsafeCreateElement$0(doc,cst_stop)} - function createStyle$0(doc){return unsafeCreateElement$0(doc,cst_style$2)} - function createSvg(doc){return unsafeCreateElement$0(doc,cst_svg)} - function createSwitch(doc){return unsafeCreateElement$0(doc,cst_switch)} - function createSymbol(doc){return unsafeCreateElement$0(doc,cst_symbol)} - function createTextElement(doc) - {return unsafeCreateElement$0(doc,cst_text$0)} - function createTextpath(doc) - {return unsafeCreateElement$0(doc,cst_textpath)} - function createTitle$0(doc){return unsafeCreateElement$0(doc,cst_title$2)} - function createTref(doc){return unsafeCreateElement$0(doc,cst_tref)} - function createTspan(doc){return unsafeCreateElement$0(doc,cst_tspan)} - function createUse(doc){return unsafeCreateElement$0(doc,cst_use)} - function createView(doc){return unsafeCreateElement$0(doc,cst_view)} - function createvkern(doc){return unsafeCreateElement$0(doc,cst_vkern)} - var svg_element=Unsafe[1].SVGElement,document$0=Unsafe[1].document; - function getElementById$0(id) - {function _cr_(e){if(e instanceof svg_element)return e;throw Stdlib[8]} - function _cs_(param){throw Stdlib[8]} - var - t6=caml_jsstring_of_string(id), - t7=Unsafe[1].document, - _ct_=t7.getElementById(t6); - return caml_call3(Opt[7],_ct_,_cs_,_cr_)} - function element$2(e){return e instanceof svg_element?e:no_handler} - function unsafeCoerce$0(e,tag) - {var t9=e.tagName,_cq_=caml_jsstring_of_string(tag); - return t9.toLowerCase() === _cq_?e:no_handler} - function a$0(e){return unsafeCoerce$0(e,cst_a$3)} - function altGlyph(e){return unsafeCoerce$0(e,cst_altglyph$0)} - function altGlyphDef(e){return unsafeCoerce$0(e,cst_altglyphdef$0)} - function altGlyphItem(e){return unsafeCoerce$0(e,cst_altglyphitem$0)} - function animate(e){return unsafeCoerce$0(e,cst_animate$0)} - function animateColor(e){return unsafeCoerce$0(e,cst_animatecolor$0)} - function animateMotion(e){return unsafeCoerce$0(e,cst_animatemotion$0)} - function animateTransform(e) - {return unsafeCoerce$0(e,cst_animatetransform$0)} - function circle(e){return unsafeCoerce$0(e,cst_circle$0)} - function clipPath(e){return unsafeCoerce$0(e,cst_clippath$0)} - function cursor(e){return unsafeCoerce$0(e,cst_cursor$0)} - function defs(e){return unsafeCoerce$0(e,cst_defs$0)} - function desc(e){return unsafeCoerce$0(e,cst_desc$0)} - function ellipse(e){return unsafeCoerce$0(e,cst_ellipse$0)} - function filter(e){return unsafeCoerce$0(e,cst_filter$0)} - function font(e){return unsafeCoerce$0(e,cst_font$0)} - function fontFace(e){return unsafeCoerce$0(e,cst_font_face$0)} - function fontFaceFormat(e) - {return unsafeCoerce$0(e,cst_font_face_format$0)} - function fontFaceName(e){return unsafeCoerce$0(e,cst_font_face_name$0)} - function fontFaceSrc(e){return unsafeCoerce$0(e,cst_font_face_src$0)} - function fontFaceUri(e){return unsafeCoerce$0(e,cst_font_face_uri$0)} - function foreignObject(e){return unsafeCoerce$0(e,cst_foreignobject)} - function g(e){return unsafeCoerce$0(e,cst_g$1)} - function glyph(e){return unsafeCoerce$0(e,cst_glyph$0)} - function glyphRef(e){return unsafeCoerce$0(e,cst_glyphref$0)} - function hkern(e){return unsafeCoerce$0(e,cst_hkern$0)} - function image(e){return unsafeCoerce$0(e,cst_image$0)} - function lineElement(e){return unsafeCoerce$0(e,cst_line$0)} - function linearElement(e){return unsafeCoerce$0(e,cst_lineargradient$0)} - function mask(e){return unsafeCoerce$0(e,cst_mask$0)} - function metaData(e){return unsafeCoerce$0(e,cst_metadata$0)} - function missingGlyph(e){return unsafeCoerce$0(e,cst_missing_glyph$0)} - function mPath(e){return unsafeCoerce$0(e,cst_mpath$0)} - function path$0(e){return unsafeCoerce$0(e,cst_path$0)} - function pattern(e){return unsafeCoerce$0(e,cst_pattern$0)} - function polygon(e){return unsafeCoerce$0(e,cst_polygon$0)} - function polyline(e){return unsafeCoerce$0(e,cst_polyline$0)} - function radialgradient(e){return unsafeCoerce$0(e,cst_radialgradient$0)} - function rect(e){return unsafeCoerce$0(e,cst_rect$0)} - function script$0(e){return unsafeCoerce$0(e,cst_script$3)} - function set$1(e){return unsafeCoerce$0(e,cst_set$0)} - function stop(e){return unsafeCoerce$0(e,cst_stop$0)} - function style$0(e){return unsafeCoerce$0(e,cst_style$3)} - function svg(e){return unsafeCoerce$0(e,cst_svg$0)} - function switch$0(e){return unsafeCoerce$0(e,cst_switch$0)} - function symbol$12(e){return unsafeCoerce$0(e,cst_symbol$0)} - function textElement(e){return unsafeCoerce$0(e,cst_text$1)} - function textpath(e){return unsafeCoerce$0(e,cst_textpath$0)} - function title$0(e){return unsafeCoerce$0(e,cst_title$3)} - function tref(e){return unsafeCoerce$0(e,cst_tref$0)} - function tspan(e){return unsafeCoerce$0(e,cst_tspan$0)} - function use(e){return unsafeCoerce$0(e,cst_use$0)} - function view(e){return unsafeCoerce$0(e,cst_view$0)} - function vkern(e){return unsafeCoerce$0(e,cst_vkern$0)} - var - Js_of_ocaml_Dom_svg= - [0, - t0, - SVGError, - createElement$0, - createA$0, - createAltGlyph, - createAltGlyphDef, - createAltGlyphItem, - createAnimate, - createAnimateColor, - createAnimateMotion, - createAnimateTransform, - createCircle, - createClipPath, - createCursor, - createDefs, - createDesc, - createEllipse, - createFilter, - createFont, - createFontFace, - createFontFaceFormat, - createFontFaceName, - createFontFaceSrc, - createFontFaceUri, - createForeignObject, - createG, - createGlyph, - createGlyphRef, - createhkern, - createImage, - createLineElement, - createLinearElement, - createMask, - createMetaData, - createMissingGlyph, - createMPath, - createPath, - createPattern, - createPolygon, - createPolyline, - createRadialgradient, - createRect, - createScript$0, - createSet, - createStop, - createStyle$0, - createSvg, - createSwitch, - createSymbol, - createTextElement, - createTextpath, - createTitle$0, - createTref, - createTspan, - createUse, - createView, - createvkern, - svg_element, - document$0, - getElementById$0, - [0, - element$2, - a$0, - altGlyph, - altGlyphDef, - altGlyphItem, - animate, - animateColor, - animateMotion, - animateTransform, - circle, - clipPath, - cursor, - defs, - desc, - ellipse, - filter, - font, - fontFace, - fontFaceFormat, - fontFaceName, - fontFaceSrc, - fontFaceUri, - foreignObject, - g, - glyph, - glyphRef, - hkern, - image, - lineElement, - linearElement, - mask, - metaData, - missingGlyph, - mPath, - path$0, - pattern, - polygon, - polyline, - radialgradient, - rect, - script$0, - set$1, - stop, - style$0, - svg, - switch$0, - symbol$12, - textElement, - textpath, - title$0, - tref, - tspan, - use, - view, - vkern]]; - caml_register_global(1688,Js_of_ocaml_Dom_svg,"Js_of_ocaml__Dom_svg"); - function withCredentials(b) - {var t1={},t0=! ! b;t1.withCredentials = t0;return t1} - var - eventSource=Unsafe[1].EventSource, - eventSource_options=Unsafe[1].EventSource, - Js_of_ocaml_EventSource= - [0,withCredentials,eventSource,eventSource_options,addEventListener]; - caml_register_global - (1689,Js_of_ocaml_EventSource,"Js_of_ocaml__EventSource"); - var - console=runtime.caml_js_get_console(0), - Js_of_ocaml_Firebug=[0,console]; - caml_register_global(1690,Js_of_ocaml_Firebug,"Js_of_ocaml__Firebug"); - function empty_position_options(param){return {}} - var - t1$0=Unsafe[1].navigator, - geolocation=caml_call1(Optdef[5],t1$0)?t1$0.geolocation:t1$0; - function is_supported$3(param){return caml_call1(Optdef[5],geolocation)} - var - Js_of_ocaml_Geolocation= - [0,empty_position_options,geolocation,is_supported$3]; - caml_register_global - (1691,Js_of_ocaml_Geolocation,"Js_of_ocaml__Geolocation"); - function empty_intersection_observer_op(param){return {}} - var intersectionObserver_unsafe=Unsafe[1].IntersectionObserver; - function is_supported$4(param) - {return caml_call1(Optdef[5],intersectionObserver_unsafe)} - var - Js_of_ocaml_IntersectionObserv= - [0, - empty_intersection_observer_op, - is_supported$4, - intersectionObserver_unsafe]; - caml_register_global - (1692,Js_of_ocaml_IntersectionObserv,"Js_of_ocaml__IntersectionObserver"); - function object_options(param){return {"localeMatcher":"best fit"}} - function options(param) - {return {"localeMatcher":"best fit", - "usage":"sort", - "sensitivity":"variant", - "ignorePunctuation":t4, - "numeric":t4, - "caseFirst":"false"}} - var Collator=[0,object_options,options]; - function options$0(param) - {return {"dateStyle":t39, - "timeStyle":t39, - "calendar":t39, - "dayPeriod":t39, - "numberingSystem":t39, - "localeMatcher":"best fit", - "timeZone":t39, - "hour12":t39, - "hourCycle":t39, - "formatMatcher":"best fit", - "weekday":t39, - "era":t39, - "year":t39, - "month":t39, - "day":t39, - "hour":t39, - "minute":t39, - "second":t39, - "fractionalSecondDigits":t39, - "timeZoneName":t39}} - var DateTimeFormat=[0,object_options,options$0]; - function options$1(param) - {return {"compactDisplay":t39, - "currency":t39, - "currencyDisplay":t39, - "currencySign":t39, - "localeMatcher":"best fit", - "notation":t39, - "numberingSystem":t39, - "signDisplay":t39, - "style":"decimal", - "unit":t39, - "unitDisplay":t39, - "useGrouping":t38, - "roundingMode":t39, - "roundingPriority":t39, - "roundingIncrement":t39, - "trailingZeroDisplay":t39, - "minimumIntegerDigits":t39, - "minimumFractionDigits":t39, - "maximumFractionDigits":t39, - "minimumSignificantDigits":t39, - "maximumSignificantDigits":t39}} - var NumberFormat=[0,object_options,options$1]; - function options$2(param) - {return {"localeMatcher":"best fit","type":"cardinal"}} - var - PluralRules=[0,object_options,options$2], - intl=Unsafe[1].Intl, - t52$0=Unsafe[1].Intl, - collator_constr=t52$0.Collator, - t54=Unsafe[1].Intl, - dateTimeFormat_constr=t54.DateTimeFormat, - t56=Unsafe[1].Intl, - numberFormat_constr=t56.NumberFormat, - t58=Unsafe[1].Intl, - pluralRules_constr=t58.PluralRules; - function is_supported$5(param){return caml_call1(Optdef[5],intl)} - var - Js_of_ocaml_Intl= - [0, - Collator, - DateTimeFormat, - NumberFormat, - PluralRules, - intl, - collator_constr, - dateTimeFormat_constr, - numberFormat_constr, - pluralRules_constr, - is_supported$5]; - caml_register_global(1693,Js_of_ocaml_Intl,"Js_of_ocaml__Intl"); - var Js_of_ocaml$0=[0]; - caml_register_global(1694,Js_of_ocaml$0,"Js_of_ocaml"); - return} + runtime.caml_register_global(43, Js_of_ocaml_Js, "Js_of_ocaml__Js"); + return; + } (globalThis)); -//# 1 "../../runtimes/jsoo/.runtime_jsoo.objs/runtime_jsoo.cma.js" -(function(globalThis) - {"use strict"; - var - runtime=globalThis.jsoo_runtime, - caml_int_of_string=runtime.caml_int_of_string, - caml_js_from_array=runtime.caml_js_from_array, - caml_js_wrap_meth_callback=runtime.caml_js_wrap_meth_callback, - caml_jsstring_of_string=runtime.caml_jsstring_of_string, - caml_register_global=runtime.caml_register_global, - caml_string_of_jsbytes=runtime.caml_string_of_jsbytes, - caml_wrap_exception=runtime.caml_wrap_exception; - function caml_call1(f,a0) - {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} - function caml_call2(f,a0,a1) - {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} - function caml_call3(f,a0,a1,a2) - {return f.length == 3?f(a0,a1,a2):runtime.caml_call_gen(f,[a0,a1,a2])} - function caml_call5(f,a0,a1,a2,a3,a4) - {return f.length == 5 - ?f(a0,a1,a2,a3,a4) - :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4])} - function caml_call7(f,a0,a1,a2,a3,a4,a5,a6) - {return f.length == 7 - ?f(a0,a1,a2,a3,a4,a5,a6) - :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4,a5,a6])} - var - global_data=runtime.caml_get_global_data(), - partial=[4,0,0,0,[12,46,0]], - cst_No_rule_applies_in_the_giv= - caml_string_of_jsbytes - ("No rule applies in the given context to give a value to the variable"), - cst_A_conflict_happened_betwee= - caml_string_of_jsbytes - ("A conflict happened between two rules giving a value to the variable"), - cst_A_failure_happened_in_the_= - caml_string_of_jsbytes("A failure happened in the assertion"), - cst_Begin_call=caml_string_of_jsbytes("Begin call"), - cst_End_call=caml_string_of_jsbytes("End call"), - cst_Variable_definition=caml_string_of_jsbytes("Variable definition"), - cst_Decision_taken=caml_string_of_jsbytes("Decision taken"), - cst_date_of_jsoo_invalid_date= - caml_string_of_jsbytes("date_of_jsoo: invalid date"); - global_data.CamlinternalOO; - var - Stdlib_Format=global_data.Stdlib__Format, - Js_of_ocaml_Js=global_data.Js_of_ocaml__Js, - Runtime_ocaml_Runtime=global_data.Runtime_ocaml__Runtime, - Yojson=global_data.Yojson, - Stdlib_List=global_data.Stdlib__List, - Stdlib_Array=global_data.Stdlib__Array, - Stdlib_String=global_data.Stdlib__String, - Stdlib=global_data.Stdlib, - Runtime_jsoo=[0]; - caml_register_global(52,Runtime_jsoo,"Runtime_jsoo"); - var - _a_= +//# 1 "../../runtimes/jsoo/.runtime_jsoo.objs/jsoo/default/runtime_jsoo.cma.js" +// Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 + +//# 16 "../../runtimes/jsoo/.runtime_jsoo.objs/jsoo/default/runtime_jsoo.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_int_of_string = runtime.caml_int_of_string, + caml_js_from_array = runtime.caml_js_from_array, + caml_js_wrap_meth_callback = runtime.caml_js_wrap_meth_callback, + caml_jsstring_of_string = runtime.caml_jsstring_of_string, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + function caml_call5(f, a0, a1, a2, a3, a4){ + return (f.l >= 0 ? f.l : f.l = f.length) == 5 + ? f(a0, a1, a2, a3, a4) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); + } + function caml_call7(f, a0, a1, a2, a3, a4, a5, a6){ + return (f.l >= 0 ? f.l : f.l = f.length) == 7 + ? f(a0, a1, a2, a3, a4, a5, a6) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5, a6]); + } + var + global_data = runtime.caml_get_global_data(), + partial = [4, 0, 0, 0, [12, 46, 0]]; + global_data.CamlinternalOO; + var + Stdlib_Format = global_data.Stdlib__Format, + Js_of_ocaml_Js = global_data.Js_of_ocaml__Js, + Runtime_ocaml_Runtime = global_data.Runtime_ocaml__Runtime, + Yojson = global_data.Yojson, + Stdlib_List = global_data.Stdlib__List, + Stdlib_Array = global_data.Stdlib__Array, + Stdlib_String = global_data.Stdlib__String, + Stdlib = global_data.Stdlib, + _a_ = [0, [2, 0, [11, - caml_string_of_jsbytes(" in file "), + " in file ", [2, 0, [11, - caml_string_of_jsbytes(", position "), + ", position ", [4, 0, 0, 0, [12, 58, - [4, - 0, - 0, - 0, - [11,caml_string_of_jsbytes("--"),[4,0,0,0,[12,58,partial]]]]]]]]]], - caml_string_of_jsbytes("%s in file %s, position %d:%d--%d:%d.")]; - function duration_of_jsoo(d) - {return caml_call3(Runtime_ocaml_Runtime[60],d.years,d.months,d.days)} - function duration_to_jsoo(d) - {var - match=caml_call1(Runtime_ocaml_Runtime[61],d), - days=match[3], - months=match[2], - years=match[1]; - return {"years":years,"months":months,"days":days}} - function date_of_jsoo(d) - {var d$0=runtime.caml_string_of_jsstring(d); - if(caml_call2(Stdlib_String[14],d$0,84)) + [4, 0, 0, 0, [11, "--", [4, 0, 0, 0, [12, 58, partial]]]]]]]]]], + "%s in file %s, position %d:%d--%d:%d."], + cst_No_rule_applies_in_the_giv = + "No rule applies in the given context to give a value to the variable", + cst_A_conflict_happened_betwee = + "A conflict happened between two rules giving a value to the variable", + cst_A_failure_happened_in_the_ = "A failure happened in the assertion", + cst_Begin_call = "Begin call", + cst_End_call = "End call", + cst_Variable_definition = "Variable definition", + cst_Decision_taken = "Decision taken", + cst_date_of_jsoo_invalid_date = "date_of_jsoo: invalid date"; + function duration_of_jsoo(t2){ + return caml_call3(Runtime_ocaml_Runtime[60], t2.years, t2.months, t2.days); + } + function duration_to_jsoo(d){ + var + match = caml_call1(Runtime_ocaml_Runtime[61], d), + days = match[3], + months = match[2], + years = match[1]; + return {years: years, months: months, days: days}; + } + function date_of_jsoo(d){ + var d$0 = runtime.caml_string_of_jsstring(d); + if(caml_call2(Stdlib_String[14], d$0, 84)) + var + _u_ = caml_call1(caml_call1(Stdlib_String[16], 84), d$0), + d$1 = caml_call1(Stdlib_List[5], _u_); + else + var d$1 = d$0; + var match = caml_call2(Stdlib_String[16], 45, d$1); + if(match){ + var _v_ = match[2]; + if(_v_){ + var _w_ = _v_[2]; + if(_w_ && ! _w_[2]){ var - _r_=caml_call1(caml_call1(Stdlib_String[16],84),d$0), - d$1=caml_call1(Stdlib_List[5],_r_); - else - var d$1=d$0; - var match=caml_call2(Stdlib_String[16],45,d$1); - if(match) - {var _s_=match[2]; - if(_s_) - {var _t_=_s_[2]; - if(_t_ && ! _t_[2]) - {var - day=_t_[1], - month=_s_[1], - year=match[1], - _u_=caml_int_of_string(day), - _v_=caml_int_of_string(month), - _w_=caml_int_of_string(year); - return caml_call3(Runtime_ocaml_Runtime[57],_w_,_v_,_u_)}}} - return caml_call1(Stdlib[2],cst_date_of_jsoo_invalid_date)} - function date_to_jsoo(d) - {return caml_jsstring_of_string(caml_call1(Runtime_ocaml_Runtime[56],d))} - function t19(param) - {return caml_js_wrap_meth_callback - (function(param) - {var _i_=caml_call1(Runtime_ocaml_Runtime[23],0); - function _j_(evt) - {if(3 === evt[0]) - var - pos=evt[1], - _q_= - caml_call2(Stdlib_List[19],caml_jsstring_of_string,pos[6]), - t12=caml_js_from_array(caml_call1(Stdlib_Array[12],_q_)), - t7=caml_jsstring_of_string(pos[1]), - _l_= - caml_call1 - (Js_of_ocaml_Js[4], - {"fileName":t7, - "startLine":pos[2], - "endLine":pos[4], - "startColumn":pos[3], - "endColumn":pos[5], - "lawHeadings":t12}); - else - var _l_=Js_of_ocaml_Js[3]; - if(2 === evt[0]) - var v=evt[2],_m_=v; - else - var _m_=caml_call1(Runtime_ocaml_Runtime[10],0); - var - _n_=caml_call1(Runtime_ocaml_Runtime[9],_m_), - t15= - caml_jsstring_of_string - (caml_call5(Yojson[11][5],0,0,0,0,_n_)); - if(3 === evt[0]) - var _o_=0; - else - var - info=evt[1], - _o_=caml_call2(Stdlib_List[19],caml_jsstring_of_string,info); - var - t14= - caml_js_from_array(caml_call1(Stdlib_Array[12],_o_)); - switch(evt[0]) - {case 0:var _p_=cst_Begin_call;break; - case 1:var _p_=cst_End_call;break; - case 2:var _p_=cst_Variable_definition;break; - default:var _p_=cst_Decision_taken} - var t13=caml_jsstring_of_string(_p_); - return {"eventType":t13, - "information":t14, - "loggedValueJson":t15, - "sourcePosition":_l_}} - var _k_=caml_call2(Stdlib_List[19],_j_,_i_); - return caml_js_from_array(caml_call1(Stdlib_Array[12],_k_))})} - function t18(param) - {return caml_js_wrap_meth_callback - (function(param) - {var - _d_=caml_call1(Runtime_ocaml_Runtime[23],0), - _e_=caml_call1(Runtime_ocaml_Runtime[24][1],_d_); - function _f_(event) - {var - _h_=caml_call1(Runtime_ocaml_Runtime[20],event), - t6= - caml_jsstring_of_string - (caml_call5(Yojson[11][5],0,0,0,0,_h_)); - return {"data":t6}} - var _g_=caml_call1(caml_call1(Stdlib_List[19],_f_),_e_); - return caml_js_from_array(caml_call1(Stdlib_Array[12],_g_))})} - function t17(param) - {return caml_js_wrap_meth_callback(Runtime_ocaml_Runtime[25])} - var - event_manager= - {"resetLog":caml_js_wrap_meth_callback(t17), - "retrieveEvents":caml_js_wrap_meth_callback(t18), - "retrieveRawEvents":caml_js_wrap_meth_callback(t19)}; - function execute_or_throw_error(f) - {function throw_error(descr,pos) - {var - t21= - caml_jsstring_of_string - (caml_call7 - (Stdlib_Format[133],_a_,descr,pos[1],pos[2],pos[3],pos[4],pos[5])); - function t23(param){return t21} - var - _c_= - caml_call1 - (Js_of_ocaml_Js[37][9], - {"name":"NoValueProvided", - "message":t21, - "stack":Js_of_ocaml_Js[6][1], - "toString":caml_js_wrap_meth_callback(t23)}); - return caml_call1(Js_of_ocaml_Js[37][5],_c_)} - try - {var _b_=caml_call1(f,0);return _b_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] === Runtime_ocaml_Runtime[8]) - {var pos=exn[2]; - return throw_error(cst_No_rule_applies_in_the_giv,pos)} - if(exn[1] === Runtime_ocaml_Runtime[4]) - {var pos$0=exn[2]; - return throw_error(cst_A_conflict_happened_betwee,pos$0)} - if(exn[1] === Runtime_ocaml_Runtime[3]) - {var pos$1=exn[2]; - return throw_error(cst_A_failure_happened_in_the_,pos$1)} - throw exn}} - var - Runtime_jsoo_Runtime= + day = _w_[1], + month = _v_[1], + year = match[1], + _x_ = caml_int_of_string(day), + _y_ = caml_int_of_string(month), + _z_ = caml_int_of_string(year); + return caml_call3(Runtime_ocaml_Runtime[57], _z_, _y_, _x_); + } + } + } + return caml_call1(Stdlib[2], cst_date_of_jsoo_invalid_date); + } + function date_to_jsoo(d){ + return caml_jsstring_of_string(caml_call1(Runtime_ocaml_Runtime[56], d)); + } + function t19(param){ + return caml_js_wrap_meth_callback + (function(param){ + var _i_ = caml_call1(Runtime_ocaml_Runtime[23], 0); + function _j_(evt){ + if(3 === evt[0]) + var + pos = evt[1], + _s_ = + caml_call2(Stdlib_List[19], caml_jsstring_of_string, pos[6]), + _t_ = caml_js_from_array(caml_call1(Stdlib_Array[12], _s_)), + _l_ = + caml_call1 + (Js_of_ocaml_Js[4], + {fileName: caml_jsstring_of_string(pos[1]), + startLine: pos[2], + endLine: pos[4], + startColumn: pos[3], + endColumn: pos[5], + lawHeadings: _t_}); + else + var _l_ = Js_of_ocaml_Js[3]; + if(2 === evt[0]) + var v = evt[2], _m_ = v; + else + var _m_ = caml_call1(Runtime_ocaml_Runtime[10], 0); + var + _n_ = caml_call1(Runtime_ocaml_Runtime[9], _m_), + _o_ = + caml_jsstring_of_string + (caml_call5(Yojson[11][5], 0, 0, 0, 0, _n_)); + if(3 === evt[0]) + var _p_ = 0; + else + var + info = evt[1], + _p_ = + caml_call2(Stdlib_List[19], caml_jsstring_of_string, info); + var + _q_ = caml_js_from_array(caml_call1(Stdlib_Array[12], _p_)); + switch(evt[0]){ + case 0: + var _r_ = cst_Begin_call; break; + case 1: + var _r_ = cst_End_call; break; + case 2: + var _r_ = cst_Variable_definition; break; + default: var _r_ = cst_Decision_taken; + } + return {eventType: caml_jsstring_of_string(_r_), + information: _q_, + loggedValueJson: _o_, + sourcePosition: _l_}; + } + var _k_ = caml_call2(Stdlib_List[19], _j_, _i_); + return caml_js_from_array(caml_call1(Stdlib_Array[12], _k_)); + }); + } + function t18(param){ + return caml_js_wrap_meth_callback + (function(param){ + var + _d_ = caml_call1(Runtime_ocaml_Runtime[23], 0), + _e_ = caml_call1(Runtime_ocaml_Runtime[24][1], _d_); + function _f_(event){ + var _h_ = caml_call1(Runtime_ocaml_Runtime[20], event); + return {data: + caml_jsstring_of_string + (caml_call5(Yojson[11][5], 0, 0, 0, 0, _h_))}; + } + var _g_ = caml_call1(caml_call1(Stdlib_List[19], _f_), _e_); + return caml_js_from_array(caml_call1(Stdlib_Array[12], _g_)); + }); + } + function t17(param){ + return caml_js_wrap_meth_callback(Runtime_ocaml_Runtime[25]); + } + var + event_manager = + {resetLog: caml_js_wrap_meth_callback(t17), + retrieveEvents: caml_js_wrap_meth_callback(t18), + retrieveRawEvents: caml_js_wrap_meth_callback(t19)}; + function execute_or_throw_error(f){ + function throw_error(descr, pos){ + var + msg = + caml_jsstring_of_string + (caml_call7 + (Stdlib_Format[133], + _a_, + descr, + pos[1], + pos[2], + pos[3], + pos[4], + pos[5])); + function t23(param){return msg;} + var + t22 = Js_of_ocaml_Js[6][1], + _c_ = + caml_call1 + (Js_of_ocaml_Js[37][9], + {name: "NoValueProvided", + message: msg, + stack: t22, + toString: caml_js_wrap_meth_callback(t23)}); + return caml_call1(Js_of_ocaml_Js[37][5], _c_); + } + try{var _b_ = caml_call1(f, 0); return _b_;} + catch(exn$0){ + var exn = caml_wrap_exception(exn$0); + if(exn[1] === Runtime_ocaml_Runtime[8]){ + var pos = exn[2]; + return throw_error(cst_No_rule_applies_in_the_giv, pos); + } + if(exn[1] === Runtime_ocaml_Runtime[4]){ + var pos$0 = exn[2]; + return throw_error(cst_A_conflict_happened_betwee, pos$0); + } + if(exn[1] !== Runtime_ocaml_Runtime[3]) + throw caml_maybe_attach_backtrace(exn, 0); + var pos$1 = exn[2]; + return throw_error(cst_A_failure_happened_in_the_, pos$1); + } + } + var + Runtime_jsoo_Runtime = [0, event_manager, duration_of_jsoo, @@ -51220,51555 +45538,11263 @@ date_of_jsoo, date_to_jsoo, execute_or_throw_error]; - caml_register_global(62,Runtime_jsoo_Runtime,"Runtime_jsoo__Runtime"); - return} + runtime.caml_register_global + (61, Runtime_jsoo_Runtime, "Runtime_jsoo__Runtime"); + return; + } (globalThis)); -//# 1 "law_source/.law_source.objs/law_source.cma.js" -(function(globalThis) - {"use strict"; - var - runtime=globalThis.jsoo_runtime, - caml_js_from_array=runtime.caml_js_from_array, - caml_js_to_array=runtime.caml_js_to_array, - caml_js_wrap_callback=runtime.caml_js_wrap_callback, - caml_js_wrap_meth_callback=runtime.caml_js_wrap_meth_callback, - caml_register_global=runtime.caml_register_global, - caml_string_notequal=runtime.caml_string_notequal, - caml_string_of_jsbytes=runtime.caml_string_of_jsbytes, - caml_string_of_jsstring=runtime.caml_string_of_jsstring, - caml_wrap_exception=runtime.caml_wrap_exception; - function caml_call1(f,a0) - {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} - function caml_call2(f,a0,a1) - {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} - function caml_call3(f,a0,a1,a2) - {return f.length == 3?f(a0,a1,a2):runtime.caml_call_gen(f,[a0,a1,a2])} - function caml_call4(f,a0,a1,a2,a3) - {return f.length == 4 - ?f(a0,a1,a2,a3) - :runtime.caml_call_gen(f,[a0,a1,a2,a3])} - var - global_data=runtime.caml_get_global_data(), - cst_0$66=caml_string_of_jsbytes("0"), - cst_0$65=caml_string_of_jsbytes("0"), - cst_0$63=caml_string_of_jsbytes("0"), - cst_0$64=caml_string_of_jsbytes("0"), - cst_0$62=caml_string_of_jsbytes("0"), - cst_1$27=caml_string_of_jsbytes("1."), - cst_0_5$0=caml_string_of_jsbytes("0.5"), - cst_0$61=caml_string_of_jsbytes("0."), - cst_12$10=caml_string_of_jsbytes("12."), - cst_12$8=caml_string_of_jsbytes("12."), - cst_1$26=caml_string_of_jsbytes("1."), - cst_12$9=caml_string_of_jsbytes("12."), - cst_12$7=caml_string_of_jsbytes("12."), - cst_12$5=caml_string_of_jsbytes("12."), - cst_1$25=caml_string_of_jsbytes("1."), - cst_12$6=caml_string_of_jsbytes("12."), - cst_0$60=caml_string_of_jsbytes("0"), - cst_1$24=caml_string_of_jsbytes("1"), - cst_0_0369=caml_string_of_jsbytes("0.0369"), - cst_1$23=caml_string_of_jsbytes("1"), - cst_0_0567=caml_string_of_jsbytes("0.0567"), - cst_1$22=caml_string_of_jsbytes("1"), - cst_0_16$1=caml_string_of_jsbytes("0.16"), - cst_0_08$0=caml_string_of_jsbytes("0.08"), - cst_0_04=caml_string_of_jsbytes("0.04"), - cst_0$59=caml_string_of_jsbytes("0"), - cst_0$57=caml_string_of_jsbytes("0."), - cst_0$58=caml_string_of_jsbytes("0."), - cst_1$21=caml_string_of_jsbytes("1"), - cst_0_232=caml_string_of_jsbytes("0.232"), - cst_0$56=caml_string_of_jsbytes("0"), - cst_1$20=caml_string_of_jsbytes("1"), - cst_0_2379=caml_string_of_jsbytes("0.2379"), - cst_0$55=caml_string_of_jsbytes("0"), - cst_1$19=caml_string_of_jsbytes("1"), - cst_0_2437=caml_string_of_jsbytes("0.2437"), - cst_0$54=caml_string_of_jsbytes("0"), - cst_1$18=caml_string_of_jsbytes("1"), - cst_0_2496=caml_string_of_jsbytes("0.2496"), - cst_0$53=caml_string_of_jsbytes("0"), - cst_1$17=caml_string_of_jsbytes("1"), - cst_0_2555=caml_string_of_jsbytes("0.2555"), - cst_0$52=caml_string_of_jsbytes("0"), - cst_1$16=caml_string_of_jsbytes("1"), - cst_0_2613=caml_string_of_jsbytes("0.2613"), - cst_0$51=caml_string_of_jsbytes("0"), - cst_1$15=caml_string_of_jsbytes("1"), - cst_0_2672=caml_string_of_jsbytes("0.2672"), - cst_0$50=caml_string_of_jsbytes("0"), - cst_1$14=caml_string_of_jsbytes("1"), - cst_0_2804=caml_string_of_jsbytes("0.2804"), - cst_0$49=caml_string_of_jsbytes("0"), - cst_1$13=caml_string_of_jsbytes("1"), - cst_0_2936=caml_string_of_jsbytes("0.2936"), - cst_0$48=caml_string_of_jsbytes("0"), - cst_1$12=caml_string_of_jsbytes("1"), - cst_0_3068=caml_string_of_jsbytes("0.3068"), - cst_0$47=caml_string_of_jsbytes("0"), - cst_1$11=caml_string_of_jsbytes("1"), - cst_0_32$0=caml_string_of_jsbytes("0.32"), - cst_0$46=caml_string_of_jsbytes("0"), - cst_1$10=caml_string_of_jsbytes("1"), - cst_0_32=caml_string_of_jsbytes("0.32"), - cst_0$45=caml_string_of_jsbytes("0"), - cst_1$9=caml_string_of_jsbytes("1"), - cst_0_16$0=caml_string_of_jsbytes("0.16"), - cst_0$44=caml_string_of_jsbytes("0"), - cst_1$8=caml_string_of_jsbytes("1"), - cst_0_08=caml_string_of_jsbytes("0.08"), - cst_0$43=caml_string_of_jsbytes("0"), - cst_2$15=caml_string_of_jsbytes("2"), - cst_2$16=caml_string_of_jsbytes("2"), - cst_0_41=caml_string_of_jsbytes("0.41"), - cst_0$42=caml_string_of_jsbytes("0"), - cst_2$13=caml_string_of_jsbytes("2"), - cst_2$14=caml_string_of_jsbytes("2"), - cst_0_205=caml_string_of_jsbytes("0.205"), - cst_0$41=caml_string_of_jsbytes("0"), - cst_2$11=caml_string_of_jsbytes("2"), - cst_2$12=caml_string_of_jsbytes("2"), - cst_0_1025=caml_string_of_jsbytes("0.1025"), - cst_0$40=caml_string_of_jsbytes("0"), - cst_0_20234=caml_string_of_jsbytes("0.20234"), - cst_0_10117=caml_string_of_jsbytes("0.10117"), - cst_0_05059=caml_string_of_jsbytes("0.05059"), - cst_12$4=caml_string_of_jsbytes("12."), - cst_12$2=caml_string_of_jsbytes("12."), - cst_1$7=caml_string_of_jsbytes("1."), - cst_12$3=caml_string_of_jsbytes("12."), - cst_12$1=caml_string_of_jsbytes("12."), - cst_12=caml_string_of_jsbytes("12."), - cst_1$6=caml_string_of_jsbytes("1."), - cst_12$0=caml_string_of_jsbytes("12."), - cst_0$39=caml_string_of_jsbytes("0"), - cst_1$5=caml_string_of_jsbytes("1"), - cst_1$4=caml_string_of_jsbytes("1"), - cst_2$10=caml_string_of_jsbytes("2"), - cst_0$37=caml_string_of_jsbytes("0"), - cst_0_145=caml_string_of_jsbytes("0.145"), - cst_0$38=caml_string_of_jsbytes("0"), - cst_0$35=caml_string_of_jsbytes("0"), - cst_0_1393=caml_string_of_jsbytes("0.1393"), - cst_0$36=caml_string_of_jsbytes("0"), - cst_0$33=caml_string_of_jsbytes("0"), - cst_0_1335=caml_string_of_jsbytes("0.1335"), - cst_0$34=caml_string_of_jsbytes("0"), - cst_0$31=caml_string_of_jsbytes("0"), - cst_0_1278=caml_string_of_jsbytes("0.1278"), - cst_0$32=caml_string_of_jsbytes("0"), - cst_0$29=caml_string_of_jsbytes("0"), - cst_0_122=caml_string_of_jsbytes("0.122"), - cst_0$30=caml_string_of_jsbytes("0"), - cst_0$27=caml_string_of_jsbytes("0"), - cst_0_1163=caml_string_of_jsbytes("0.1163"), - cst_0$28=caml_string_of_jsbytes("0"), - cst_0$25=caml_string_of_jsbytes("0"), - cst_0_1105=caml_string_of_jsbytes("0.1105"), - cst_0$26=caml_string_of_jsbytes("0"), - cst_0$23=caml_string_of_jsbytes("0"), - cst_0_0976=caml_string_of_jsbytes("0.0976"), - cst_0$24=caml_string_of_jsbytes("0"), - cst_0$21=caml_string_of_jsbytes("0"), - cst_0_0847=caml_string_of_jsbytes("0.0847"), - cst_0$22=caml_string_of_jsbytes("0"), - cst_0$19=caml_string_of_jsbytes("0"), - cst_0_0717=caml_string_of_jsbytes("0.0717"), - cst_0$20=caml_string_of_jsbytes("0"), - cst_0$17=caml_string_of_jsbytes("0"), - cst_5728=caml_string_of_jsbytes("5728"), - cst_0$18=caml_string_of_jsbytes("0"), - cst_0$15=caml_string_of_jsbytes("0"), - cst_0_0588$0=caml_string_of_jsbytes("0.0588"), - cst_0$16=caml_string_of_jsbytes("0"), - cst_1$3=caml_string_of_jsbytes("1"), - cst_0_0588=caml_string_of_jsbytes("0.0588"), - cst_0$14=caml_string_of_jsbytes("0"), - cst_1$2=caml_string_of_jsbytes("1."), - cst_0_5=caml_string_of_jsbytes("0.5"), - cst_0$12=caml_string_of_jsbytes("0."), - cst_0$13=caml_string_of_jsbytes("0."), - cst_2$9=caml_string_of_jsbytes("2"), - cst_0_0463$0=caml_string_of_jsbytes("0.0463"), - cst_0$11=caml_string_of_jsbytes("0"), - cst_2$8=caml_string_of_jsbytes("2"), - cst_0_0539=caml_string_of_jsbytes("0.0539"), - cst_0$10=caml_string_of_jsbytes("0"), - cst_2$7=caml_string_of_jsbytes("2"), - cst_0_0615=caml_string_of_jsbytes("0.0615"), - cst_0$9=caml_string_of_jsbytes("0"), - cst_2$6=caml_string_of_jsbytes("2"), - cst_0_069=caml_string_of_jsbytes("0.069"), - cst_0$8=caml_string_of_jsbytes("0"), - cst_2$5=caml_string_of_jsbytes("2"), - cst_0_0766=caml_string_of_jsbytes("0.0766"), - cst_0$7=caml_string_of_jsbytes("0"), - cst_2$4=caml_string_of_jsbytes("2"), - cst_0_0842=caml_string_of_jsbytes("0.0842"), - cst_0$6=caml_string_of_jsbytes("0"), - cst_2$3=caml_string_of_jsbytes("2"), - cst_0_0918=caml_string_of_jsbytes("0.0918"), - cst_0$5=caml_string_of_jsbytes("0"), - cst_2$2=caml_string_of_jsbytes("2"), - cst_0_1089=caml_string_of_jsbytes("0.1089"), - cst_0$4=caml_string_of_jsbytes("0"), - cst_2$1=caml_string_of_jsbytes("2"), - cst_0_1259=caml_string_of_jsbytes("0.1259"), - cst_0$3=caml_string_of_jsbytes("0"), - cst_2$0=caml_string_of_jsbytes("2"), - cst_0_143=caml_string_of_jsbytes("0.143"), - cst_0$2=caml_string_of_jsbytes("0"), - cst_2=caml_string_of_jsbytes("2"), - cst_0_16=caml_string_of_jsbytes("0.16"), - cst_0$1=caml_string_of_jsbytes("0"), - cst_3$1=caml_string_of_jsbytes("3"), - cst_3$2=caml_string_of_jsbytes("3"), - cst_0_0463=caml_string_of_jsbytes("0.0463"), - cst_0$0=caml_string_of_jsbytes("0"), - cst_1$1=caml_string_of_jsbytes("1"), - cst_1$0=caml_string_of_jsbytes("1"), - cst_562800$0=caml_string_of_jsbytes("562800"), - cst_5628600=caml_string_of_jsbytes("5628600"), - cst_568400$0=caml_string_of_jsbytes("568400"), - cst_5684900=caml_string_of_jsbytes("5684900"), - cst_577500$0=caml_string_of_jsbytes("577500"), - cst_5775900=caml_string_of_jsbytes("5775900"), - cst_582700$0=caml_string_of_jsbytes("582700"), - cst_5827900=caml_string_of_jsbytes("5827900"), - cst_559500$0=caml_string_of_jsbytes("559500"), - cst_5595000=caml_string_of_jsbytes("5595000"), - cst_562800=caml_string_of_jsbytes("562800"), - cst_7877000=caml_string_of_jsbytes("7877000"), - cst_568400=caml_string_of_jsbytes("568400"), - cst_7955800=caml_string_of_jsbytes("7955800"), - cst_577500=caml_string_of_jsbytes("577500"), - cst_8083100=caml_string_of_jsbytes("8083100"), - cst_582700=caml_string_of_jsbytes("582700"), - cst_8155800=caml_string_of_jsbytes("8155800"), - cst_559500=caml_string_of_jsbytes("559500"), - cst_7830000=caml_string_of_jsbytes("7830000"), - cst_3$0=caml_string_of_jsbytes("3"), - cst_3=caml_string_of_jsbytes("3"), - cst_169$0=caml_string_of_jsbytes("169."), - cst_0_55$0=caml_string_of_jsbytes("0.55"), - cst_169=caml_string_of_jsbytes("169."), - cst_0_55=caml_string_of_jsbytes("0.55"), - cst_41316=caml_string_of_jsbytes("41316"), - cst_41440=caml_string_of_jsbytes("41440"), - cst_41481=caml_string_of_jsbytes("41481"), - cst_42228=caml_string_of_jsbytes("42228"), - cst_1003=caml_string_of_jsbytes("1003"), - cst_757=caml_string_of_jsbytes("757"), - cst_1015=caml_string_of_jsbytes("1015"), - cst_766=caml_string_of_jsbytes("766"), - cst_1025=caml_string_of_jsbytes("1025"), - cst_774=caml_string_of_jsbytes("774"), - cst_1057=caml_string_of_jsbytes("1057"), - cst_798=caml_string_of_jsbytes("798"), - cst_1085=caml_string_of_jsbytes("1085"), - cst_819=caml_string_of_jsbytes("819"), - cst_1107=caml_string_of_jsbytes("1107"), - cst_835=caml_string_of_jsbytes("835"), - cst_1127=caml_string_of_jsbytes("1127"), - cst_851=caml_string_of_jsbytes("851"), - cst_0=caml_string_of_jsbytes("0"), - cst_1=caml_string_of_jsbytes("-1"), - cst_i_avait_enfant_charge_avan= - caml_string_of_jsbytes - ("i_avait_enfant_\xc3\xa0_charge_avant_1er_janvier_2012_in"), - cst_i_personne_charge_effectiv= - caml_string_of_jsbytes - ("i_personne_charge_effective_permanente_remplit_titre_I_in"), - cst_i_personne_charge_effectiv$0= - caml_string_of_jsbytes - ("i_personne_charge_effective_permanente_est_parent_in"), - cst_i_r_sidence_in=caml_string_of_jsbytes("i_r\xc3\xa9sidence_in"), - cst_i_ressources_m_nage_in= - caml_string_of_jsbytes("i_ressources_m\xc3\xa9nage_in"), - cst_i_enfants_in=caml_string_of_jsbytes("i_enfants_in"), - cst_i_date_courante_in=caml_string_of_jsbytes("i_date_courante_in"), - cst_date_courante_in$4=caml_string_of_jsbytes("date_courante_in"), - cst_r_sidence_in$1=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_date_courante_in$3=caml_string_of_jsbytes("date_courante_in"), - cst_ann_es_in$0=caml_string_of_jsbytes("ann\xc3\xa9es_in"), - cst_date_courante_in$2=caml_string_of_jsbytes("date_courante_in"), - cst_date_naissance_in$0=caml_string_of_jsbytes("date_naissance_in"), - cst_ann_es_in=caml_string_of_jsbytes("ann\xc3\xa9es_in"), - cst_date_courante_in$1=caml_string_of_jsbytes("date_courante_in"), - cst_date_naissance_in=caml_string_of_jsbytes("date_naissance_in"), - cst_avait_enfant_charge_avant_= - caml_string_of_jsbytes - ("avait_enfant_\xc3\xa0_charge_avant_1er_janvier_2012_in"), - cst_enfants_charge_in= - caml_string_of_jsbytes("enfants_\xc3\xa0_charge_in"), - cst_date_courante_in$0=caml_string_of_jsbytes("date_courante_in"), - cst_r_sidence_in$0=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_ressources_m_nage_in= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_in"), - cst_personne_charge_effective_= - caml_string_of_jsbytes - ("personne_charge_effective_permanente_remplit_titre_I_in"), - cst_personne_charge_effective_$0= - caml_string_of_jsbytes - ("personne_charge_effective_permanente_est_parent_in"), - cst_enfants_in=caml_string_of_jsbytes("enfants_in"), - cst_r_sidence_in=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_prestation_courante_in= - caml_string_of_jsbytes("prestation_courante_in"), - cst_date_courante_in=caml_string_of_jsbytes("date_courante_in"), - cst_r_gime_outre_mer_l751_1= - caml_string_of_jsbytes("r\xc3\xa9gime_outre_mer_l751_1"), - cst_ge_l512_3_2=caml_string_of_jsbytes("\xc3\xa2ge_l512_3_2"), - cst_conditions_hors_ge= - caml_string_of_jsbytes("conditions_hors_\xc3\xa2ge"), - cst_droit_ouvert=caml_string_of_jsbytes("droit_ouvert"), - cst_le_plus_g=caml_string_of_jsbytes("le_plus_\xc3\xa2g\xc3\xa9"), - cst_b_n_ficie_titre_personnel_= - caml_string_of_jsbytes - ("b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement"), - cst_a_d_j_ouvert_droit_aux_all= - caml_string_of_jsbytes - ("a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales"), - cst_prise_en_charge=caml_string_of_jsbytes("prise_en_charge"), - cst_date_de_naissance=caml_string_of_jsbytes("date_de_naissance"), - cst_r_muneration_mensuelle= - caml_string_of_jsbytes("r\xc3\xa9muneration_mensuelle"), - cst_obligation_scolaire=caml_string_of_jsbytes("obligation_scolaire"), - cst_identifiant=caml_string_of_jsbytes("identifiant"), - cst_d_b_n_ficie_titre_personne= - caml_string_of_jsbytes - ("d_b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement"), - cst_d_a_d_j_ouvert_droit_aux_a= - caml_string_of_jsbytes - ("d_a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales"), - cst_d_prise_en_charge=caml_string_of_jsbytes("d_prise_en_charge"), - cst_d_date_de_naissance=caml_string_of_jsbytes("d_date_de_naissance"), - cst_d_r_muneration_mensuelle= - caml_string_of_jsbytes("d_r\xc3\xa9muneration_mensuelle"), - cst_d_identifiant=caml_string_of_jsbytes("d_identifiant"), - cst_i_montant_vers=caml_string_of_jsbytes("i_montant_vers\xc3\xa9"), - cst_montant=caml_string_of_jsbytes("montant"), - cst_brut_horaire=caml_string_of_jsbytes("brut_horaire"), - cst_est_sup_rieur=caml_string_of_jsbytes("est_sup\xc3\xa9rieur"), - cst_est_inf_rieur_ou_gal= - caml_string_of_jsbytes("est_inf\xc3\xa9rieur_ou_\xc3\xa9gal"), - cst_montant_vers=caml_string_of_jsbytes("montant_vers\xc3\xa9"), - cst_ge_minimum_alin_a_1_l521_3= - caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), - cst_Guadeloupe=caml_string_of_jsbytes("Guadeloupe"), - cst_Guyane=caml_string_of_jsbytes("Guyane"), - cst_Martinique=caml_string_of_jsbytes("Martinique"), - cst_LaR_union=caml_string_of_jsbytes("LaR\xc3\xa9union"), - cst_SaintBarth_lemy=caml_string_of_jsbytes("SaintBarth\xc3\xa9lemy"), - cst_SaintMartin=caml_string_of_jsbytes("SaintMartin"), - cst_M_tropole=caml_string_of_jsbytes("M\xc3\xa9tropole"), - cst_SaintPierreEtMiquelon=caml_string_of_jsbytes("SaintPierreEtMiquelon"), - cst_Mayotte=caml_string_of_jsbytes("Mayotte"), - cst_PrestationAccueilJeuneEnfa= - caml_string_of_jsbytes("PrestationAccueilJeuneEnfant"), - cst_AllocationsFamiliales=caml_string_of_jsbytes("AllocationsFamiliales"), - cst_Compl_mentFamilial= - caml_string_of_jsbytes("Compl\xc3\xa9mentFamilial"), - cst_AllocationLogement=caml_string_of_jsbytes("AllocationLogement"), - cst_Allocation_ducationEnfantH= - caml_string_of_jsbytes - ("Allocation\xc3\x89ducationEnfantHandicap\xc3\xa9"), - cst_AllocationSoutienFamilial= - caml_string_of_jsbytes("AllocationSoutienFamilial"), - cst_AllocationRentr_eScolaire= - caml_string_of_jsbytes("AllocationRentr\xc3\xa9eScolaire"), - cst_AllocationJournali_rePrese= - caml_string_of_jsbytes("AllocationJournali\xc3\xa8rePresenceParentale"), - cst_Normal=caml_string_of_jsbytes("Normal"), - cst_AllocationVers_eAuxService= - caml_string_of_jsbytes("AllocationVers\xc3\xa9eAuxServicesSociaux"), - cst_Compl_te=caml_string_of_jsbytes("Compl\xc3\xa8te"), - cst_Partag_e=caml_string_of_jsbytes("Partag\xc3\xa9e"), - cst_Z_ro=caml_string_of_jsbytes("Z\xc3\xa9ro"), - cst_Avant=caml_string_of_jsbytes("Avant"), - cst_Pendant=caml_string_of_jsbytes("Pendant"), - cst_Apr_s=caml_string_of_jsbytes("Apr\xc3\xa8s"), - cst_GardeAltern_ePartageAlloca= - caml_string_of_jsbytes("GardeAltern\xc3\xa9ePartageAllocations"), - cst_GardeAltern_eAllocataireUn= - caml_string_of_jsbytes("GardeAltern\xc3\xa9eAllocataireUnique"), - cst_EffectiveEtPermanente=caml_string_of_jsbytes("EffectiveEtPermanente"), - cst_ServicesSociauxAllocationV= - caml_string_of_jsbytes - ("ServicesSociauxAllocationVers\xc3\xa9e\xc3\x80LaFamille"), - cst_ServicesSociauxAllocationV$0= - caml_string_of_jsbytes - ("ServicesSociauxAllocationVers\xc3\xa9eAuxServicesSociaux"), - cst_The_function_conditions_ho= - caml_string_of_jsbytes - ("The function 'conditions_hors_age' translation isn't yet supported..."), - cst_The_function_droit_ouvert_= - caml_string_of_jsbytes - ("The function 'droit_ouvert' translation isn't yet supported..."), - cst_Guadeloupe$0=caml_string_of_jsbytes("Guadeloupe"), - cst_Guyane$0=caml_string_of_jsbytes("Guyane"), - cst_LaReunion=caml_string_of_jsbytes("LaReunion"), - cst_Martinique$0=caml_string_of_jsbytes("Martinique"), - cst_Mayotte$0=caml_string_of_jsbytes("Mayotte"), - cst_Metropole=caml_string_of_jsbytes("Metropole"), - cst_SaintBarthelemy=caml_string_of_jsbytes("SaintBarthelemy"), - cst_SaintMartin$0=caml_string_of_jsbytes("SaintMartin"), - cst_SaintPierreEtMiquelon$0= - caml_string_of_jsbytes("SaintPierreEtMiquelon"), - cst_AllocationEducationEnfantH= - caml_string_of_jsbytes("AllocationEducationEnfantHandicape"), - cst_AllocationJournalierePrese= - caml_string_of_jsbytes("AllocationJournalierePresenceParentale"), - cst_AllocationLogement$0=caml_string_of_jsbytes("AllocationLogement"), - cst_AllocationRentreeScolaire= - caml_string_of_jsbytes("AllocationRentreeScolaire"), - cst_AllocationSoutienFamilial$0= - caml_string_of_jsbytes("AllocationSoutienFamilial"), - cst_AllocationsFamiliales$0= - caml_string_of_jsbytes("AllocationsFamiliales"), - cst_ComplementFamilial=caml_string_of_jsbytes("ComplementFamilial"), - cst_PrestationAccueilJeuneEnfa$0= - caml_string_of_jsbytes("PrestationAccueilJeuneEnfant"), - cst_AllocationVerseeAuxService= - caml_string_of_jsbytes("AllocationVerseeAuxServicesSociaux"), - cst_Normal$0=caml_string_of_jsbytes("Normal"), - cst_Complete=caml_string_of_jsbytes("Complete"), - cst_Partagee=caml_string_of_jsbytes("Partagee"), - cst_Zero=caml_string_of_jsbytes("Zero"), - cst_Apres=caml_string_of_jsbytes("Apres"), - cst_Avant$0=caml_string_of_jsbytes("Avant"), - cst_Pendant$0=caml_string_of_jsbytes("Pendant"), - cst_EffectiveEtPermanente$0= - caml_string_of_jsbytes("EffectiveEtPermanente"), - cst_GardeAlterneeAllocataireUn= - caml_string_of_jsbytes("GardeAlterneeAllocataireUnique"), - cst_GardeAlterneePartageAlloca= - caml_string_of_jsbytes("GardeAlterneePartageAllocations"), - cst_ServicesSociauxAllocationV$1= - caml_string_of_jsbytes("ServicesSociauxAllocationVerseeALaFamille"), - cst_ServicesSociauxAllocationV$2= - caml_string_of_jsbytes - ("ServicesSociauxAllocationVerseeAuxServicesSociaux"), - cst_AllocationsFamilialesLib= - caml_string_of_jsbytes("AllocationsFamilialesLib"), - cst_0$416=caml_string_of_jsbytes("0"), - cst_0$417=caml_string_of_jsbytes("0"), - cst_0$418=caml_string_of_jsbytes("0."), - cst_0$415=caml_string_of_jsbytes("0"), - cst_1$291=caml_string_of_jsbytes("1"), - cst_1$290=caml_string_of_jsbytes("1"), - cst_0$414=caml_string_of_jsbytes("0"), - cst_1$289=caml_string_of_jsbytes("1"), - cst_1$288=caml_string_of_jsbytes("1"), - cst_0$413=caml_string_of_jsbytes("0"), - cst_1$287=caml_string_of_jsbytes("1"), - cst_3$98=caml_string_of_jsbytes("3"), - cst_0_2$1=caml_string_of_jsbytes("0.2"), - cst_3$99=caml_string_of_jsbytes("3"), - cst_0$412=caml_string_of_jsbytes("0"), - cst_2_4=caml_string_of_jsbytes("2.4"), - cst_3$97=caml_string_of_jsbytes("3"), - cst_0$409=caml_string_of_jsbytes("0"), - cst_0$410=caml_string_of_jsbytes("0"), - cst_0$411=caml_string_of_jsbytes("0"), - cst_0$407=caml_string_of_jsbytes("0"), - cst_0$408=caml_string_of_jsbytes("0"), - cst_0$405=caml_string_of_jsbytes("0."), - cst_0$406=caml_string_of_jsbytes("0."), - cst_1_25$0=caml_string_of_jsbytes("1.25"), - cst_1_25=caml_string_of_jsbytes("1.25"), - cst_0$404=caml_string_of_jsbytes("0"), - cst_0$403=caml_string_of_jsbytes("0"), - cst_0$402=caml_string_of_jsbytes("0"), - cst_2$117=caml_string_of_jsbytes("2"), - cst_1$286=caml_string_of_jsbytes("1"), - cst_9$2=caml_string_of_jsbytes("9"), - cst_16$3=caml_string_of_jsbytes("16"), - cst_9=caml_string_of_jsbytes("9"), - cst_9$0=caml_string_of_jsbytes("9"), - cst_16=caml_string_of_jsbytes("16"), - cst_16$0=caml_string_of_jsbytes("16"), - cst_16$1=caml_string_of_jsbytes("16"), - cst_9$1=caml_string_of_jsbytes("9"), - cst_16$2=caml_string_of_jsbytes("16"), - cst_8=caml_string_of_jsbytes("8"), - cst_70=caml_string_of_jsbytes("70"), - cst_70$0=caml_string_of_jsbytes("70"), - cst_0$401=caml_string_of_jsbytes("0."), - cst_0$400=caml_string_of_jsbytes("0."), - cst_999840=caml_string_of_jsbytes("999840"), - cst_1041840=caml_string_of_jsbytes("1041840"), - cst_1083840=caml_string_of_jsbytes("1083840"), - cst_1153302=caml_string_of_jsbytes("1153302"), - cst_1100144=caml_string_of_jsbytes("1100144"), - cst_1088175=caml_string_of_jsbytes("1088175"), - cst_1$284=caml_string_of_jsbytes("1"), - cst_2$113=caml_string_of_jsbytes("2"), - cst_2$114=caml_string_of_jsbytes("2"), - cst_2$115=caml_string_of_jsbytes("2"), - cst_1$285=caml_string_of_jsbytes("1"), - cst_2$116=caml_string_of_jsbytes("2"), - cst_3000000=caml_string_of_jsbytes("3000000"), - cst_0_1$0=caml_string_of_jsbytes("0.1"), - cst_0_1=caml_string_of_jsbytes("0.1"), - cst_0_2=caml_string_of_jsbytes("0.2"), - cst_0_2$0=caml_string_of_jsbytes("0.2"), - cst_0$397=caml_string_of_jsbytes("0"), - cst_0$398=caml_string_of_jsbytes("0"), - cst_0$399=caml_string_of_jsbytes("0"), - cst_0$395=caml_string_of_jsbytes("0"), - cst_0$396=caml_string_of_jsbytes("0"), - cst_0$394=caml_string_of_jsbytes("0"), - cst_50$3=caml_string_of_jsbytes("50"), - cst_0$392=caml_string_of_jsbytes("0"), - cst_0$393=caml_string_of_jsbytes("0"), - cst_0$391=caml_string_of_jsbytes("0"), - cst_0$390=caml_string_of_jsbytes("0"), - cst_0$389=caml_string_of_jsbytes("0"), - cst_100$12=caml_string_of_jsbytes("100."), - cst_0_01$0=caml_string_of_jsbytes("0.01"), - cst_4999=caml_string_of_jsbytes("4999"), - cst_0_75$13=caml_string_of_jsbytes("0.75"), - cst_0_75$12=caml_string_of_jsbytes("0.75"), - cst_0_75$11=caml_string_of_jsbytes("0.75"), - cst_0$386=caml_string_of_jsbytes("0"), - cst_158700=caml_string_of_jsbytes("158700"), - cst_191300=caml_string_of_jsbytes("191300"), - cst_1$281=caml_string_of_jsbytes("1"), - cst_205500=caml_string_of_jsbytes("205500"), - cst_2$110=caml_string_of_jsbytes("2"), - cst_211300=caml_string_of_jsbytes("211300"), - cst_3$94=caml_string_of_jsbytes("3"), - cst_217100=caml_string_of_jsbytes("217100"), - cst_4$92=caml_string_of_jsbytes("4"), - cst_222900=caml_string_of_jsbytes("222900"), - cst_5$137=caml_string_of_jsbytes("5"), - cst_228000=caml_string_of_jsbytes("228000"), - cst_5$138=caml_string_of_jsbytes("5"), - cst_19800=caml_string_of_jsbytes("19800"), - cst_228000$0=caml_string_of_jsbytes("228000"), - cst_0$387=caml_string_of_jsbytes("0"), - cst_139300=caml_string_of_jsbytes("139300"), - cst_170600=caml_string_of_jsbytes("170600"), - cst_1$282=caml_string_of_jsbytes("1"), - cst_184700=caml_string_of_jsbytes("184700"), - cst_2$111=caml_string_of_jsbytes("2"), - cst_191200=caml_string_of_jsbytes("191200"), - cst_3$95=caml_string_of_jsbytes("3"), - cst_197700$0=caml_string_of_jsbytes("197700"), - cst_4$93=caml_string_of_jsbytes("4"), - cst_204200=caml_string_of_jsbytes("204200"), - cst_5$139=caml_string_of_jsbytes("5"), - cst_218700=caml_string_of_jsbytes("218700"), - cst_5$140=caml_string_of_jsbytes("5"), - cst_19100$1=caml_string_of_jsbytes("19100"), - cst_218700$0=caml_string_of_jsbytes("218700"), - cst_0$388=caml_string_of_jsbytes("0"), - cst_130600=caml_string_of_jsbytes("130600"), - cst_158400=caml_string_of_jsbytes("158400"), - cst_1$283=caml_string_of_jsbytes("1"), - cst_172600=caml_string_of_jsbytes("172600"), - cst_2$112=caml_string_of_jsbytes("2"), - cst_179800$0=caml_string_of_jsbytes("179800"), - cst_3$96=caml_string_of_jsbytes("3"), - cst_187000=caml_string_of_jsbytes("187000"), - cst_4$94=caml_string_of_jsbytes("4"), - cst_194200=caml_string_of_jsbytes("194200"), - cst_5$141=caml_string_of_jsbytes("5"), - cst_208600$0=caml_string_of_jsbytes("208600"), - cst_5$142=caml_string_of_jsbytes("5"), - cst_18200=caml_string_of_jsbytes("18200"), - cst_208600$1=caml_string_of_jsbytes("208600"), - cst_0$383=caml_string_of_jsbytes("0"), - cst_160400=caml_string_of_jsbytes("160400"), - cst_193400=caml_string_of_jsbytes("193400"), - cst_1$278=caml_string_of_jsbytes("1"), - cst_207800=caml_string_of_jsbytes("207800"), - cst_2$107=caml_string_of_jsbytes("2"), - cst_213700=caml_string_of_jsbytes("213700"), - cst_3$91=caml_string_of_jsbytes("3"), - cst_219600=caml_string_of_jsbytes("219600"), - cst_4$89=caml_string_of_jsbytes("4"), - cst_225500$0=caml_string_of_jsbytes("225500"), - cst_5$131=caml_string_of_jsbytes("5"), - cst_230500$1=caml_string_of_jsbytes("230500"), - cst_5$132=caml_string_of_jsbytes("5"), - cst_20000=caml_string_of_jsbytes("20000"), - cst_230500$2=caml_string_of_jsbytes("230500"), - cst_0$384=caml_string_of_jsbytes("0"), - cst_140800$0=caml_string_of_jsbytes("140800"), - cst_172500$0=caml_string_of_jsbytes("172500"), - cst_1$279=caml_string_of_jsbytes("1"), - cst_186700=caml_string_of_jsbytes("186700"), - cst_2$108=caml_string_of_jsbytes("2"), - cst_193300=caml_string_of_jsbytes("193300"), - cst_3$92=caml_string_of_jsbytes("3"), - cst_199900$1=caml_string_of_jsbytes("199900"), - cst_4$90=caml_string_of_jsbytes("4"), - cst_206500=caml_string_of_jsbytes("206500"), - cst_5$133=caml_string_of_jsbytes("5"), - cst_221100=caml_string_of_jsbytes("221100"), - cst_5$134=caml_string_of_jsbytes("5"), - cst_19300$0=caml_string_of_jsbytes("19300"), - cst_221100$0=caml_string_of_jsbytes("221100"), - cst_0$385=caml_string_of_jsbytes("0"), - cst_132000$0=caml_string_of_jsbytes("132000"), - cst_180100$1=caml_string_of_jsbytes("180100"), - cst_1$280=caml_string_of_jsbytes("1"), - cst_174500=caml_string_of_jsbytes("174500"), - cst_2$109=caml_string_of_jsbytes("2"), - cst_181800$0=caml_string_of_jsbytes("181800"), - cst_3$93=caml_string_of_jsbytes("3"), - cst_189100=caml_string_of_jsbytes("189100"), - cst_4$91=caml_string_of_jsbytes("4"), - cst_196400=caml_string_of_jsbytes("196400"), - cst_5$135=caml_string_of_jsbytes("5"), - cst_210900=caml_string_of_jsbytes("210900"), - cst_5$136=caml_string_of_jsbytes("5"), - cst_18400=caml_string_of_jsbytes("18400"), - cst_210900$0=caml_string_of_jsbytes("210900"), - cst_0$380=caml_string_of_jsbytes("0"), - cst_163300=caml_string_of_jsbytes("163300"), - cst_196900=caml_string_of_jsbytes("196900"), - cst_1$275=caml_string_of_jsbytes("1"), - cst_211600=caml_string_of_jsbytes("211600"), - cst_2$104=caml_string_of_jsbytes("2"), - cst_217600$0=caml_string_of_jsbytes("217600"), - cst_3$88=caml_string_of_jsbytes("3"), - cst_223600=caml_string_of_jsbytes("223600"), - cst_4$86=caml_string_of_jsbytes("4"), - cst_229600=caml_string_of_jsbytes("229600"), - cst_5$125=caml_string_of_jsbytes("5"), - cst_234600=caml_string_of_jsbytes("234600"), - cst_5$126=caml_string_of_jsbytes("5"), - cst_20400=caml_string_of_jsbytes("20400"), - cst_234600$0=caml_string_of_jsbytes("234600"), - cst_0$381=caml_string_of_jsbytes("0"), - cst_143300=caml_string_of_jsbytes("143300"), - cst_175600=caml_string_of_jsbytes("175600"), - cst_1$276=caml_string_of_jsbytes("1"), - cst_190100=caml_string_of_jsbytes("190100"), - cst_2$105=caml_string_of_jsbytes("2"), - cst_196600=caml_string_of_jsbytes("196600"), - cst_3$89=caml_string_of_jsbytes("3"), - cst_203500=caml_string_of_jsbytes("203500"), - cst_4$87=caml_string_of_jsbytes("4"), - cst_210200=caml_string_of_jsbytes("210200"), - cst_5$127=caml_string_of_jsbytes("5"), - cst_225100=caml_string_of_jsbytes("225100"), - cst_5$128=caml_string_of_jsbytes("5"), - cst_19600=caml_string_of_jsbytes("19600"), - cst_225100$0=caml_string_of_jsbytes("225100"), - cst_0$382=caml_string_of_jsbytes("0"), - cst_134400=caml_string_of_jsbytes("134400"), - cst_163000$0=caml_string_of_jsbytes("163000"), - cst_1$277=caml_string_of_jsbytes("1"), - cst_177700=caml_string_of_jsbytes("177700"), - cst_2$106=caml_string_of_jsbytes("2"), - cst_185100=caml_string_of_jsbytes("185100"), - cst_3$90=caml_string_of_jsbytes("3"), - cst_192500$0=caml_string_of_jsbytes("192500"), - cst_4$88=caml_string_of_jsbytes("4"), - cst_199900$0=caml_string_of_jsbytes("199900"), - cst_5$129=caml_string_of_jsbytes("5"), - cst_214700=caml_string_of_jsbytes("214700"), - cst_5$130=caml_string_of_jsbytes("5"), - cst_18700=caml_string_of_jsbytes("18700"), - cst_214700$0=caml_string_of_jsbytes("214700"), - cst_0$377=caml_string_of_jsbytes("0"), - cst_167200=caml_string_of_jsbytes("167200"), - cst_201600=caml_string_of_jsbytes("201600"), - cst_1$272=caml_string_of_jsbytes("1"), - cst_216700=caml_string_of_jsbytes("216700"), - cst_2$101=caml_string_of_jsbytes("2"), - cst_222800=caml_string_of_jsbytes("222800"), - cst_3$85=caml_string_of_jsbytes("3"), - cst_229000=caml_string_of_jsbytes("229000"), - cst_4$83=caml_string_of_jsbytes("4"), - cst_235100=caml_string_of_jsbytes("235100"), - cst_5$119=caml_string_of_jsbytes("5"), - cst_240200=caml_string_of_jsbytes("240200"), - cst_5$120=caml_string_of_jsbytes("5"), - cst_20900$0=caml_string_of_jsbytes("20900"), - cst_240200$0=caml_string_of_jsbytes("240200"), - cst_0$378=caml_string_of_jsbytes("0"), - cst_146700=caml_string_of_jsbytes("146700"), - cst_179800=caml_string_of_jsbytes("179800"), - cst_1$273=caml_string_of_jsbytes("1"), - cst_194700=caml_string_of_jsbytes("194700"), - cst_2$102=caml_string_of_jsbytes("2"), - cst_201500=caml_string_of_jsbytes("201500"), - cst_3$86=caml_string_of_jsbytes("3"), - cst_208400=caml_string_of_jsbytes("208400"), - cst_4$84=caml_string_of_jsbytes("4"), - cst_215200=caml_string_of_jsbytes("215200"), - cst_5$121=caml_string_of_jsbytes("5"), - cst_230500=caml_string_of_jsbytes("230500"), - cst_5$122=caml_string_of_jsbytes("5"), - cst_20100$0=caml_string_of_jsbytes("20100"), - cst_230500$0=caml_string_of_jsbytes("230500"), - cst_0$379=caml_string_of_jsbytes("0"), - cst_137600=caml_string_of_jsbytes("137600"), - cst_166900=caml_string_of_jsbytes("166900"), - cst_1$274=caml_string_of_jsbytes("1"), - cst_182000=caml_string_of_jsbytes("182000"), - cst_2$103=caml_string_of_jsbytes("2"), - cst_189500=caml_string_of_jsbytes("189500"), - cst_3$87=caml_string_of_jsbytes("3"), - cst_197100=caml_string_of_jsbytes("197100"), - cst_4$85=caml_string_of_jsbytes("4"), - cst_204700$0=caml_string_of_jsbytes("204700"), - cst_5$123=caml_string_of_jsbytes("5"), - cst_219900=caml_string_of_jsbytes("219900"), - cst_5$124=caml_string_of_jsbytes("5"), - cst_19100$0=caml_string_of_jsbytes("19100"), - cst_219900$0=caml_string_of_jsbytes("219900"), - cst_0$374=caml_string_of_jsbytes("0"), - cst_167400=caml_string_of_jsbytes("167400"), - cst_201800=caml_string_of_jsbytes("201800"), - cst_1$269=caml_string_of_jsbytes("1"), - cst_216900=caml_string_of_jsbytes("216900"), - cst_2$98=caml_string_of_jsbytes("2"), - cst_223000=caml_string_of_jsbytes("223000"), - cst_3$82=caml_string_of_jsbytes("3"), - cst_229200=caml_string_of_jsbytes("229200"), - cst_4$80=caml_string_of_jsbytes("4"), - cst_235300=caml_string_of_jsbytes("235300"), - cst_5$113=caml_string_of_jsbytes("5"), - cst_240400=caml_string_of_jsbytes("240400"), - cst_5$114=caml_string_of_jsbytes("5"), - cst_20900=caml_string_of_jsbytes("20900"), - cst_240400$0=caml_string_of_jsbytes("240400"), - cst_0$375=caml_string_of_jsbytes("0"), - cst_146800=caml_string_of_jsbytes("146800"), - cst_180000=caml_string_of_jsbytes("180000"), - cst_1$270=caml_string_of_jsbytes("1"), - cst_194900=caml_string_of_jsbytes("194900"), - cst_2$99=caml_string_of_jsbytes("2"), - cst_201700$0=caml_string_of_jsbytes("201700"), - cst_3$83=caml_string_of_jsbytes("3"), - cst_208600=caml_string_of_jsbytes("208600"), - cst_4$81=caml_string_of_jsbytes("4"), - cst_215400=caml_string_of_jsbytes("215400"), - cst_5$115=caml_string_of_jsbytes("5"), - cst_230700=caml_string_of_jsbytes("230700"), - cst_5$116=caml_string_of_jsbytes("5"), - cst_20100=caml_string_of_jsbytes("20100"), - cst_230700$0=caml_string_of_jsbytes("230700"), - cst_0$376=caml_string_of_jsbytes("0"), - cst_137700=caml_string_of_jsbytes("137700"), - cst_167100=caml_string_of_jsbytes("167100"), - cst_1$271=caml_string_of_jsbytes("1"), - cst_182200=caml_string_of_jsbytes("182200"), - cst_2$100=caml_string_of_jsbytes("2"), - cst_189700=caml_string_of_jsbytes("189700"), - cst_3$84=caml_string_of_jsbytes("3"), - cst_197300=caml_string_of_jsbytes("197300"), - cst_4$82=caml_string_of_jsbytes("4"), - cst_204900=caml_string_of_jsbytes("204900"), - cst_5$117=caml_string_of_jsbytes("5"), - cst_220100=caml_string_of_jsbytes("220100"), - cst_5$118=caml_string_of_jsbytes("5"), - cst_19100=caml_string_of_jsbytes("19100"), - cst_220100$0=caml_string_of_jsbytes("220100"), - cst_0$371=caml_string_of_jsbytes("0"), - cst_169100=caml_string_of_jsbytes("169100"), - cst_203800=caml_string_of_jsbytes("203800"), - cst_1$266=caml_string_of_jsbytes("1"), - cst_219100=caml_string_of_jsbytes("219100"), - cst_2$95=caml_string_of_jsbytes("2"), - cst_225200=caml_string_of_jsbytes("225200"), - cst_3$79=caml_string_of_jsbytes("3"), - cst_231500=caml_string_of_jsbytes("231500"), - cst_4$77=caml_string_of_jsbytes("4"), - cst_237700=caml_string_of_jsbytes("237700"), - cst_5$107=caml_string_of_jsbytes("5"), - cst_242800$1=caml_string_of_jsbytes("242800"), - cst_5$108=caml_string_of_jsbytes("5"), - cst_21100=caml_string_of_jsbytes("21100"), - cst_242800$2=caml_string_of_jsbytes("242800"), - cst_0$372=caml_string_of_jsbytes("0"), - cst_148300=caml_string_of_jsbytes("148300"), - cst_181800=caml_string_of_jsbytes("181800"), - cst_1$267=caml_string_of_jsbytes("1"), - cst_196800=caml_string_of_jsbytes("196800"), - cst_2$96=caml_string_of_jsbytes("2"), - cst_203700=caml_string_of_jsbytes("203700"), - cst_3$80=caml_string_of_jsbytes("3"), - cst_210700=caml_string_of_jsbytes("210700"), - cst_4$78=caml_string_of_jsbytes("4"), - cst_217600=caml_string_of_jsbytes("217600"), - cst_5$109=caml_string_of_jsbytes("5"), - cst_233000=caml_string_of_jsbytes("233000"), - cst_5$110=caml_string_of_jsbytes("5"), - cst_20300=caml_string_of_jsbytes("20300"), - cst_233000$0=caml_string_of_jsbytes("233000"), - cst_0$373=caml_string_of_jsbytes("0"), - cst_139100=caml_string_of_jsbytes("139100"), - cst_168800=caml_string_of_jsbytes("168800"), - cst_1$268=caml_string_of_jsbytes("1"), - cst_184000$1=caml_string_of_jsbytes("184000"), - cst_2$97=caml_string_of_jsbytes("2"), - cst_191600=caml_string_of_jsbytes("191600"), - cst_3$81=caml_string_of_jsbytes("3"), - cst_199300=caml_string_of_jsbytes("199300"), - cst_4$79=caml_string_of_jsbytes("4"), - cst_206900=caml_string_of_jsbytes("206900"), - cst_5$111=caml_string_of_jsbytes("5"), - cst_222300=caml_string_of_jsbytes("222300"), - cst_5$112=caml_string_of_jsbytes("5"), - cst_19300=caml_string_of_jsbytes("19300"), - cst_222300$0=caml_string_of_jsbytes("222300"), - cst_0$368=caml_string_of_jsbytes("0"), - cst_171100=caml_string_of_jsbytes("171100"), - cst_206200=caml_string_of_jsbytes("206200"), - cst_1$263=caml_string_of_jsbytes("1"), - cst_221700=caml_string_of_jsbytes("221700"), - cst_2$92=caml_string_of_jsbytes("2"), - cst_227900=caml_string_of_jsbytes("227900"), - cst_3$76=caml_string_of_jsbytes("3"), - cst_234300=caml_string_of_jsbytes("234300"), - cst_4$74=caml_string_of_jsbytes("4"), - cst_240600=caml_string_of_jsbytes("240600"), - cst_5$101=caml_string_of_jsbytes("5"), - cst_245700=caml_string_of_jsbytes("245700"), - cst_5$102=caml_string_of_jsbytes("5"), - cst_21400=caml_string_of_jsbytes("21400"), - cst_245700$0=caml_string_of_jsbytes("245700"), - cst_0$369=caml_string_of_jsbytes("0"), - cst_150100=caml_string_of_jsbytes("150100"), - cst_184000$0=caml_string_of_jsbytes("184000"), - cst_1$264=caml_string_of_jsbytes("1"), - cst_199200=caml_string_of_jsbytes("199200"), - cst_2$93=caml_string_of_jsbytes("2"), - cst_206100=caml_string_of_jsbytes("206100"), - cst_3$77=caml_string_of_jsbytes("3"), - cst_213200=caml_string_of_jsbytes("213200"), - cst_4$75=caml_string_of_jsbytes("4"), - cst_220200=caml_string_of_jsbytes("220200"), - cst_5$103=caml_string_of_jsbytes("5"), - cst_235800=caml_string_of_jsbytes("235800"), - cst_5$104=caml_string_of_jsbytes("5"), - cst_20500=caml_string_of_jsbytes("20500"), - cst_235800$0=caml_string_of_jsbytes("235800"), - cst_0$370=caml_string_of_jsbytes("0"), - cst_140800=caml_string_of_jsbytes("140800"), - cst_170800=caml_string_of_jsbytes("170800"), - cst_1$265=caml_string_of_jsbytes("1"), - cst_186200=caml_string_of_jsbytes("186200"), - cst_2$94=caml_string_of_jsbytes("2"), - cst_193900=caml_string_of_jsbytes("193900"), - cst_3$78=caml_string_of_jsbytes("3"), - cst_201700=caml_string_of_jsbytes("201700"), - cst_4$76=caml_string_of_jsbytes("4"), - cst_209400=caml_string_of_jsbytes("209400"), - cst_5$105=caml_string_of_jsbytes("5"), - cst_225000=caml_string_of_jsbytes("225000"), - cst_5$106=caml_string_of_jsbytes("5"), - cst_19500=caml_string_of_jsbytes("19500"), - cst_225000$0=caml_string_of_jsbytes("225000"), - cst_0$365=caml_string_of_jsbytes("0"), - cst_26084=caml_string_of_jsbytes("26084"), - cst_31435=caml_string_of_jsbytes("31435"), - cst_1$260=caml_string_of_jsbytes("1"), - cst_33798=caml_string_of_jsbytes("33798"), - cst_2$89=caml_string_of_jsbytes("2"), - cst_34743=caml_string_of_jsbytes("34743"), - cst_3$73=caml_string_of_jsbytes("3"), - cst_35719=caml_string_of_jsbytes("35719"), - cst_4$71=caml_string_of_jsbytes("4"), - cst_36679=caml_string_of_jsbytes("36679"), - cst_5$95=caml_string_of_jsbytes("5"), - cst_37457=caml_string_of_jsbytes("37457"), - cst_5$96=caml_string_of_jsbytes("5"), - cst_3262=caml_string_of_jsbytes("3262"), - cst_37457$0=caml_string_of_jsbytes("37457"), - cst_0$366=caml_string_of_jsbytes("0"), - cst_22883=caml_string_of_jsbytes("22883"), - cst_28051=caml_string_of_jsbytes("28051"), - cst_1$261=caml_string_of_jsbytes("1"), - cst_30368=caml_string_of_jsbytes("30368"), - cst_2$90=caml_string_of_jsbytes("2"), - cst_31420=caml_string_of_jsbytes("31420"), - cst_3$74=caml_string_of_jsbytes("3"), - cst_32502=caml_string_of_jsbytes("32502"), - cst_4$72=caml_string_of_jsbytes("4"), - cst_33569=caml_string_of_jsbytes("33569"), - cst_5$97=caml_string_of_jsbytes("5"), - cst_35947=caml_string_of_jsbytes("35947"), - cst_5$98=caml_string_of_jsbytes("5"), - cst_3125=caml_string_of_jsbytes("3125"), - cst_35947$0=caml_string_of_jsbytes("35947"), - cst_0$367=caml_string_of_jsbytes("0"), - cst_21465=caml_string_of_jsbytes("21465"), - cst_26038=caml_string_of_jsbytes("26038"), - cst_1$262=caml_string_of_jsbytes("1"), - cst_28386=caml_string_of_jsbytes("28386"), - cst_2$91=caml_string_of_jsbytes("2"), - cst_29560=caml_string_of_jsbytes("29560"), - cst_3$75=caml_string_of_jsbytes("3"), - cst_30749=caml_string_of_jsbytes("30749"), - cst_4$73=caml_string_of_jsbytes("4"), - cst_31923=caml_string_of_jsbytes("31923"), - cst_5$99=caml_string_of_jsbytes("5"), - cst_34301=caml_string_of_jsbytes("34301"), - cst_5$100=caml_string_of_jsbytes("5"), - cst_2973=caml_string_of_jsbytes("2973"), - cst_34301$0=caml_string_of_jsbytes("34301"), - cst_0$362=caml_string_of_jsbytes("0"), - cst_26397=caml_string_of_jsbytes("26397"), - cst_31812=caml_string_of_jsbytes("31812"), - cst_1$257=caml_string_of_jsbytes("1"), - cst_34204=caml_string_of_jsbytes("34204"), - cst_2$86=caml_string_of_jsbytes("2"), - cst_35160=caml_string_of_jsbytes("35160"), - cst_3$70=caml_string_of_jsbytes("3"), - cst_36148=caml_string_of_jsbytes("36148"), - cst_4$68=caml_string_of_jsbytes("4"), - cst_37119=caml_string_of_jsbytes("37119"), - cst_5$89=caml_string_of_jsbytes("5"), - cst_37906=caml_string_of_jsbytes("37906"), - cst_5$90=caml_string_of_jsbytes("5"), - cst_3301=caml_string_of_jsbytes("3301"), - cst_37906$0=caml_string_of_jsbytes("37906"), - cst_0$363=caml_string_of_jsbytes("0"), - cst_23158=caml_string_of_jsbytes("23158"), - cst_28388=caml_string_of_jsbytes("28388"), - cst_1$258=caml_string_of_jsbytes("1"), - cst_30732=caml_string_of_jsbytes("30732"), - cst_2$87=caml_string_of_jsbytes("2"), - cst_31797$2=caml_string_of_jsbytes("31797"), - cst_3$71=caml_string_of_jsbytes("3"), - cst_32892=caml_string_of_jsbytes("32892"), - cst_4$69=caml_string_of_jsbytes("4"), - cst_33972=caml_string_of_jsbytes("33972"), - cst_5$91=caml_string_of_jsbytes("5"), - cst_36378=caml_string_of_jsbytes("36378"), - cst_5$92=caml_string_of_jsbytes("5"), - cst_3163=caml_string_of_jsbytes("3163"), - cst_36378$0=caml_string_of_jsbytes("36378"), - cst_0$364=caml_string_of_jsbytes("0"), - cst_21723=caml_string_of_jsbytes("21723"), - cst_26350=caml_string_of_jsbytes("26350"), - cst_1$259=caml_string_of_jsbytes("1"), - cst_28727=caml_string_of_jsbytes("28727"), - cst_2$88=caml_string_of_jsbytes("2"), - cst_29915=caml_string_of_jsbytes("29915"), - cst_3$72=caml_string_of_jsbytes("3"), - cst_31118=caml_string_of_jsbytes("31118"), - cst_4$70=caml_string_of_jsbytes("4"), - cst_32306=caml_string_of_jsbytes("32306"), - cst_5$93=caml_string_of_jsbytes("5"), - cst_34713=caml_string_of_jsbytes("34713"), - cst_5$94=caml_string_of_jsbytes("5"), - cst_3009=caml_string_of_jsbytes("3009"), - cst_34713$0=caml_string_of_jsbytes("34713"), - cst_0$359=caml_string_of_jsbytes("0"), - cst_26714$0=caml_string_of_jsbytes("26714"), - cst_32194=caml_string_of_jsbytes("32194"), - cst_1$254=caml_string_of_jsbytes("1"), - cst_34614=caml_string_of_jsbytes("34614"), - cst_2$83=caml_string_of_jsbytes("2"), - cst_35582=caml_string_of_jsbytes("35582"), - cst_3$67=caml_string_of_jsbytes("3"), - cst_36582=caml_string_of_jsbytes("36582"), - cst_4$65=caml_string_of_jsbytes("4"), - cst_37564=caml_string_of_jsbytes("37564"), - cst_5$83=caml_string_of_jsbytes("5"), - cst_38361=caml_string_of_jsbytes("38361"), - cst_5$84=caml_string_of_jsbytes("5"), - cst_3341=caml_string_of_jsbytes("3341"), - cst_38361$0=caml_string_of_jsbytes("38361"), - cst_0$360=caml_string_of_jsbytes("0"), - cst_23436=caml_string_of_jsbytes("23436"), - cst_28729=caml_string_of_jsbytes("28729"), - cst_1$255=caml_string_of_jsbytes("1"), - cst_31101=caml_string_of_jsbytes("31101"), - cst_2$84=caml_string_of_jsbytes("2"), - cst_32179=caml_string_of_jsbytes("32179"), - cst_3$68=caml_string_of_jsbytes("3"), - cst_33287=caml_string_of_jsbytes("33287"), - cst_4$66=caml_string_of_jsbytes("4"), - cst_34380=caml_string_of_jsbytes("34380"), - cst_5$85=caml_string_of_jsbytes("5"), - cst_36815=caml_string_of_jsbytes("36815"), - cst_5$86=caml_string_of_jsbytes("5"), - cst_3201=caml_string_of_jsbytes("3201"), - cst_36815$0=caml_string_of_jsbytes("36815"), - cst_0$361=caml_string_of_jsbytes("0"), - cst_21984=caml_string_of_jsbytes("21984"), - cst_26666=caml_string_of_jsbytes("26666"), - cst_1$256=caml_string_of_jsbytes("1"), - cst_29072=caml_string_of_jsbytes("29072"), - cst_2$85=caml_string_of_jsbytes("2"), - cst_30274=caml_string_of_jsbytes("30274"), - cst_3$69=caml_string_of_jsbytes("3"), - cst_31491=caml_string_of_jsbytes("31491"), - cst_4$67=caml_string_of_jsbytes("4"), - cst_32694=caml_string_of_jsbytes("32694"), - cst_5$87=caml_string_of_jsbytes("5"), - cst_35130=caml_string_of_jsbytes("35130"), - cst_5$88=caml_string_of_jsbytes("5"), - cst_3045=caml_string_of_jsbytes("3045"), - cst_35130$0=caml_string_of_jsbytes("35130"), - cst_0$356=caml_string_of_jsbytes("0"), - cst_27195=caml_string_of_jsbytes("27195"), - cst_32773=caml_string_of_jsbytes("32773"), - cst_1$251=caml_string_of_jsbytes("1"), - cst_35237=caml_string_of_jsbytes("35237"), - cst_2$80=caml_string_of_jsbytes("2"), - cst_36222=caml_string_of_jsbytes("36222"), - cst_3$64=caml_string_of_jsbytes("3"), - cst_37240=caml_string_of_jsbytes("37240"), - cst_4$62=caml_string_of_jsbytes("4"), - cst_38240=caml_string_of_jsbytes("38240"), - cst_5$77=caml_string_of_jsbytes("5"), - cst_39051=caml_string_of_jsbytes("39051"), - cst_5$78=caml_string_of_jsbytes("5"), - cst_3401=caml_string_of_jsbytes("3401"), - cst_39051$0=caml_string_of_jsbytes("39051"), - cst_0$357=caml_string_of_jsbytes("0"), - cst_23858=caml_string_of_jsbytes("23858"), - cst_29246=caml_string_of_jsbytes("29246"), - cst_1$252=caml_string_of_jsbytes("1"), - cst_31661=caml_string_of_jsbytes("31661"), - cst_2$81=caml_string_of_jsbytes("2"), - cst_32758=caml_string_of_jsbytes("32758"), - cst_3$65=caml_string_of_jsbytes("3"), - cst_33886=caml_string_of_jsbytes("33886"), - cst_4$63=caml_string_of_jsbytes("4"), - cst_34999=caml_string_of_jsbytes("34999"), - cst_5$79=caml_string_of_jsbytes("5"), - cst_37478=caml_string_of_jsbytes("37478"), - cst_5$80=caml_string_of_jsbytes("5"), - cst_3259=caml_string_of_jsbytes("3259"), - cst_37478$0=caml_string_of_jsbytes("37478"), - cst_0$358=caml_string_of_jsbytes("0"), - cst_22380=caml_string_of_jsbytes("22380"), - cst_27146=caml_string_of_jsbytes("27146"), - cst_1$253=caml_string_of_jsbytes("1"), - cst_29595=caml_string_of_jsbytes("29595"), - cst_2$82=caml_string_of_jsbytes("2"), - cst_30819=caml_string_of_jsbytes("30819"), - cst_3$66=caml_string_of_jsbytes("3"), - cst_32058=caml_string_of_jsbytes("32058"), - cst_4$64=caml_string_of_jsbytes("4"), - cst_33282=caml_string_of_jsbytes("33282"), - cst_5$81=caml_string_of_jsbytes("5"), - cst_35762=caml_string_of_jsbytes("35762"), - cst_5$82=caml_string_of_jsbytes("5"), - cst_3100=caml_string_of_jsbytes("3100"), - cst_35762$0=caml_string_of_jsbytes("35762"), - cst_0$353=caml_string_of_jsbytes("0"), - cst_27956=caml_string_of_jsbytes("27956"), - cst_33691=caml_string_of_jsbytes("33691"), - cst_1$248=caml_string_of_jsbytes("1"), - cst_36224=caml_string_of_jsbytes("36224"), - cst_2$77=caml_string_of_jsbytes("2"), - cst_37236=caml_string_of_jsbytes("37236"), - cst_3$61=caml_string_of_jsbytes("3"), - cst_38283=caml_string_of_jsbytes("38283"), - cst_4$59=caml_string_of_jsbytes("4"), - cst_39311=caml_string_of_jsbytes("39311"), - cst_5$71=caml_string_of_jsbytes("5"), - cst_40144=caml_string_of_jsbytes("40144"), - cst_5$72=caml_string_of_jsbytes("5"), - cst_3496=caml_string_of_jsbytes("3496"), - cst_40144$0=caml_string_of_jsbytes("40144"), - cst_0$354=caml_string_of_jsbytes("0"), - cst_24526=caml_string_of_jsbytes("24526"), - cst_30065=caml_string_of_jsbytes("30065"), - cst_1$249=caml_string_of_jsbytes("1"), - cst_32548=caml_string_of_jsbytes("32548"), - cst_2$78=caml_string_of_jsbytes("2"), - cst_33675=caml_string_of_jsbytes("33675"), - cst_3$62=caml_string_of_jsbytes("3"), - cst_34865$0=caml_string_of_jsbytes("34865"), - cst_4$60=caml_string_of_jsbytes("4"), - cst_35979=caml_string_of_jsbytes("35979"), - cst_5$73=caml_string_of_jsbytes("5"), - cst_38527=caml_string_of_jsbytes("38527"), - cst_5$74=caml_string_of_jsbytes("5"), - cst_3350=caml_string_of_jsbytes("3350"), - cst_38527$0=caml_string_of_jsbytes("38527"), - cst_0$355=caml_string_of_jsbytes("0"), - cst_23007=caml_string_of_jsbytes("23007"), - cst_27906=caml_string_of_jsbytes("27906"), - cst_1$250=caml_string_of_jsbytes("1"), - cst_30424=caml_string_of_jsbytes("30424"), - cst_2$79=caml_string_of_jsbytes("2"), - cst_31682=caml_string_of_jsbytes("31682"), - cst_3$63=caml_string_of_jsbytes("3"), - cst_32956$0=caml_string_of_jsbytes("32956"), - cst_4$61=caml_string_of_jsbytes("4"), - cst_34214=caml_string_of_jsbytes("34214"), - cst_5$75=caml_string_of_jsbytes("5"), - cst_36733=caml_string_of_jsbytes("36733"), - cst_5$76=caml_string_of_jsbytes("5"), - cst_3187=caml_string_of_jsbytes("3187"), - cst_36733$0=caml_string_of_jsbytes("36733"), - cst_0$350=caml_string_of_jsbytes("0"), - cst_28728=caml_string_of_jsbytes("28728"), - cst_34621=caml_string_of_jsbytes("34621"), - cst_1$245=caml_string_of_jsbytes("1"), - cst_37224=caml_string_of_jsbytes("37224"), - cst_2$74=caml_string_of_jsbytes("2"), - cst_38264=caml_string_of_jsbytes("38264"), - cst_3$58=caml_string_of_jsbytes("3"), - cst_39340$0=caml_string_of_jsbytes("39340"), - cst_4$56=caml_string_of_jsbytes("4"), - cst_40396=caml_string_of_jsbytes("40396"), - cst_5$65=caml_string_of_jsbytes("5"), - cst_41252=caml_string_of_jsbytes("41252"), - cst_5$66=caml_string_of_jsbytes("5"), - cst_3592=caml_string_of_jsbytes("3592"), - cst_41252$0=caml_string_of_jsbytes("41252"), - cst_0$351=caml_string_of_jsbytes("0"), - cst_25203=caml_string_of_jsbytes("25203"), - cst_30895=caml_string_of_jsbytes("30895"), - cst_1$246=caml_string_of_jsbytes("1"), - cst_33446=caml_string_of_jsbytes("33446"), - cst_2$75=caml_string_of_jsbytes("2"), - cst_34604=caml_string_of_jsbytes("34604"), - cst_3$59=caml_string_of_jsbytes("3"), - cst_35796=caml_string_of_jsbytes("35796"), - cst_4$57=caml_string_of_jsbytes("4"), - cst_36972=caml_string_of_jsbytes("36972"), - cst_5$67=caml_string_of_jsbytes("5"), - cst_39590=caml_string_of_jsbytes("39590"), - cst_5$68=caml_string_of_jsbytes("5"), - cst_3442=caml_string_of_jsbytes("3442"), - cst_39590$0=caml_string_of_jsbytes("39590"), - cst_0$352=caml_string_of_jsbytes("0"), - cst_23642=caml_string_of_jsbytes("23642"), - cst_28676=caml_string_of_jsbytes("28676"), - cst_1$247=caml_string_of_jsbytes("1"), - cst_31264$0=caml_string_of_jsbytes("31264"), - cst_2$76=caml_string_of_jsbytes("2"), - cst_32556=caml_string_of_jsbytes("32556"), - cst_3$60=caml_string_of_jsbytes("3"), - cst_33866=caml_string_of_jsbytes("33866"), - cst_4$58=caml_string_of_jsbytes("4"), - cst_35158=caml_string_of_jsbytes("35158"), - cst_5$69=caml_string_of_jsbytes("5"), - cst_37778=caml_string_of_jsbytes("37778"), - cst_5$70=caml_string_of_jsbytes("5"), - cst_3275=caml_string_of_jsbytes("3275"), - cst_37778$0=caml_string_of_jsbytes("37778"), - cst_0$347=caml_string_of_jsbytes("0"), - cst_29575=caml_string_of_jsbytes("29575"), - cst_35642=caml_string_of_jsbytes("35642"), - cst_1$242=caml_string_of_jsbytes("1"), - cst_38322=caml_string_of_jsbytes("38322"), - cst_2$71=caml_string_of_jsbytes("2"), - cst_39393=caml_string_of_jsbytes("39393"), - cst_3$55=caml_string_of_jsbytes("3"), - cst_40501=caml_string_of_jsbytes("40501"), - cst_4$53=caml_string_of_jsbytes("4"), - cst_41588=caml_string_of_jsbytes("41588"), - cst_5$59=caml_string_of_jsbytes("5"), - cst_42469=caml_string_of_jsbytes("42469"), - cst_5$60=caml_string_of_jsbytes("5"), - cst_3698=caml_string_of_jsbytes("3698"), - cst_42469$0=caml_string_of_jsbytes("42469"), - cst_0$348=caml_string_of_jsbytes("0"), - cst_25946=caml_string_of_jsbytes("25946"), - cst_31806=caml_string_of_jsbytes("31806"), - cst_1$243=caml_string_of_jsbytes("1"), - cst_34433=caml_string_of_jsbytes("34433"), - cst_2$72=caml_string_of_jsbytes("2"), - cst_35625=caml_string_of_jsbytes("35625"), - cst_3$56=caml_string_of_jsbytes("3"), - cst_36852=caml_string_of_jsbytes("36852"), - cst_4$54=caml_string_of_jsbytes("4"), - cst_38063=caml_string_of_jsbytes("38063"), - cst_5$61=caml_string_of_jsbytes("5"), - cst_40758=caml_string_of_jsbytes("40758"), - cst_5$62=caml_string_of_jsbytes("5"), - cst_3544=caml_string_of_jsbytes("3544"), - cst_40758$0=caml_string_of_jsbytes("40758"), - cst_0$349=caml_string_of_jsbytes("0"), - cst_24339=caml_string_of_jsbytes("24339"), - cst_29522=caml_string_of_jsbytes("29522"), - cst_1$244=caml_string_of_jsbytes("1"), - cst_32186=caml_string_of_jsbytes("32186"), - cst_2$73=caml_string_of_jsbytes("2"), - cst_33516=caml_string_of_jsbytes("33516"), - cst_3$57=caml_string_of_jsbytes("3"), - cst_34865=caml_string_of_jsbytes("34865"), - cst_4$55=caml_string_of_jsbytes("4"), - cst_36195=caml_string_of_jsbytes("36195"), - cst_5$63=caml_string_of_jsbytes("5"), - cst_38892=caml_string_of_jsbytes("38892"), - cst_5$64=caml_string_of_jsbytes("5"), - cst_3372=caml_string_of_jsbytes("3372"), - cst_38892$0=caml_string_of_jsbytes("38892"), - cst_0$344=caml_string_of_jsbytes("0"), - cst_29670=caml_string_of_jsbytes("29670"), - cst_35757=caml_string_of_jsbytes("35757"), - cst_1$239=caml_string_of_jsbytes("1"), - cst_38445=caml_string_of_jsbytes("38445"), - cst_2$68=caml_string_of_jsbytes("2"), - cst_39519=caml_string_of_jsbytes("39519"), - cst_3$52=caml_string_of_jsbytes("3"), - cst_40601=caml_string_of_jsbytes("40601"), - cst_4$50=caml_string_of_jsbytes("4"), - cst_41721=caml_string_of_jsbytes("41721"), - cst_5$53=caml_string_of_jsbytes("5"), - cst_42605=caml_string_of_jsbytes("42605"), - cst_5$54=caml_string_of_jsbytes("5"), - cst_3710=caml_string_of_jsbytes("3710"), - cst_42605$0=caml_string_of_jsbytes("42605"), - cst_0$345=caml_string_of_jsbytes("0"), - cst_26029=caml_string_of_jsbytes("26029"), - cst_31908=caml_string_of_jsbytes("31908"), - cst_1$240=caml_string_of_jsbytes("1"), - cst_34643=caml_string_of_jsbytes("34643"), - cst_2$69=caml_string_of_jsbytes("2"), - cst_35739=caml_string_of_jsbytes("35739"), - cst_3$53=caml_string_of_jsbytes("3"), - cst_36970=caml_string_of_jsbytes("36970"), - cst_4$51=caml_string_of_jsbytes("4"), - cst_38185=caml_string_of_jsbytes("38185"), - cst_5$55=caml_string_of_jsbytes("5"), - cst_40888=caml_string_of_jsbytes("40888"), - cst_5$56=caml_string_of_jsbytes("5"), - cst_3555=caml_string_of_jsbytes("3555"), - cst_40888$0=caml_string_of_jsbytes("40888"), - cst_0$346=caml_string_of_jsbytes("0"), - cst_24417=caml_string_of_jsbytes("24417"), - cst_29616=caml_string_of_jsbytes("29616"), - cst_1$241=caml_string_of_jsbytes("1"), - cst_32289=caml_string_of_jsbytes("32289"), - cst_2$70=caml_string_of_jsbytes("2"), - cst_33623$0=caml_string_of_jsbytes("33623"), - cst_3$54=caml_string_of_jsbytes("3"), - cst_34977=caml_string_of_jsbytes("34977"), - cst_4$52=caml_string_of_jsbytes("4"), - cst_36311=caml_string_of_jsbytes("36311"), - cst_5$57=caml_string_of_jsbytes("5"), - cst_39016=caml_string_of_jsbytes("39016"), - cst_5$58=caml_string_of_jsbytes("5"), - cst_3383=caml_string_of_jsbytes("3383"), - cst_39016$0=caml_string_of_jsbytes("39016"), - cst_0$341=caml_string_of_jsbytes("0"), - cst_29996=caml_string_of_jsbytes("29996"), - cst_36149=caml_string_of_jsbytes("36149"), - cst_1$236=caml_string_of_jsbytes("1"), - cst_38868=caml_string_of_jsbytes("38868"), - cst_2$65=caml_string_of_jsbytes("2"), - cst_39954=caml_string_of_jsbytes("39954"), - cst_3$49=caml_string_of_jsbytes("3"), - cst_41078=caml_string_of_jsbytes("41078"), - cst_4$47=caml_string_of_jsbytes("4"), - cst_42180=caml_string_of_jsbytes("42180"), - cst_5$47=caml_string_of_jsbytes("5"), - cst_43074=caml_string_of_jsbytes("43074"), - cst_5$48=caml_string_of_jsbytes("5"), - cst_3751=caml_string_of_jsbytes("3751"), - cst_43074$0=caml_string_of_jsbytes("43074"), - cst_0$342=caml_string_of_jsbytes("0"), - cst_26315=caml_string_of_jsbytes("26315"), - cst_32259=caml_string_of_jsbytes("32259"), - cst_1$237=caml_string_of_jsbytes("1"), - cst_34923=caml_string_of_jsbytes("34923"), - cst_2$66=caml_string_of_jsbytes("2"), - cst_36132=caml_string_of_jsbytes("36132"), - cst_3$50=caml_string_of_jsbytes("3"), - cst_37373=caml_string_of_jsbytes("37373"), - cst_4$48=caml_string_of_jsbytes("4"), - cst_38605=caml_string_of_jsbytes("38605"), - cst_5$49=caml_string_of_jsbytes("5"), - cst_41338=caml_string_of_jsbytes("41338"), - cst_5$50=caml_string_of_jsbytes("5"), - cst_3594=caml_string_of_jsbytes("3594"), - cst_41338$0=caml_string_of_jsbytes("41338"), - cst_0$343=caml_string_of_jsbytes("0"), - cst_24686=caml_string_of_jsbytes("24686"), - cst_29942=caml_string_of_jsbytes("29942"), - cst_1$238=caml_string_of_jsbytes("1"), - cst_32644=caml_string_of_jsbytes("32644"), - cst_2$67=caml_string_of_jsbytes("2"), - cst_33993=caml_string_of_jsbytes("33993"), - cst_3$51=caml_string_of_jsbytes("3"), - cst_35362=caml_string_of_jsbytes("35362"), - cst_4$49=caml_string_of_jsbytes("4"), - cst_36710=caml_string_of_jsbytes("36710"), - cst_5$51=caml_string_of_jsbytes("5"), - cst_39445=caml_string_of_jsbytes("39445"), - cst_5$52=caml_string_of_jsbytes("5"), - cst_3420=caml_string_of_jsbytes("3420"), - cst_39445$0=caml_string_of_jsbytes("39445"), - cst_0$338=caml_string_of_jsbytes("0"), - cst_30296=caml_string_of_jsbytes("30296"), - cst_36510=caml_string_of_jsbytes("36510"), - cst_1$233=caml_string_of_jsbytes("1"), - cst_39257=caml_string_of_jsbytes("39257"), - cst_2$62=caml_string_of_jsbytes("2"), - cst_40354=caml_string_of_jsbytes("40354"), - cst_3$46=caml_string_of_jsbytes("3"), - cst_41489=caml_string_of_jsbytes("41489"), - cst_4$44=caml_string_of_jsbytes("4"), - cst_42602=caml_string_of_jsbytes("42602"), - cst_5$41=caml_string_of_jsbytes("5"), - cst_43505=caml_string_of_jsbytes("43505"), - cst_5$42=caml_string_of_jsbytes("5"), - cst_3789=caml_string_of_jsbytes("3789"), - cst_43505$0=caml_string_of_jsbytes("43505"), - cst_0$339=caml_string_of_jsbytes("0"), - cst_26578=caml_string_of_jsbytes("26578"), - cst_32582=caml_string_of_jsbytes("32582"), - cst_1$234=caml_string_of_jsbytes("1"), - cst_35272=caml_string_of_jsbytes("35272"), - cst_2$63=caml_string_of_jsbytes("2"), - cst_36493=caml_string_of_jsbytes("36493"), - cst_3$47=caml_string_of_jsbytes("3"), - cst_37751=caml_string_of_jsbytes("37751"), - cst_4$45=caml_string_of_jsbytes("4"), - cst_38991=caml_string_of_jsbytes("38991"), - cst_5$43=caml_string_of_jsbytes("5"), - cst_41751=caml_string_of_jsbytes("41751"), - cst_5$44=caml_string_of_jsbytes("5"), - cst_3630=caml_string_of_jsbytes("3630"), - cst_41751$0=caml_string_of_jsbytes("41751"), - cst_0$340=caml_string_of_jsbytes("0"), - cst_24933=caml_string_of_jsbytes("24933"), - cst_30241=caml_string_of_jsbytes("30241"), - cst_1$235=caml_string_of_jsbytes("1"), - cst_32970=caml_string_of_jsbytes("32970"), - cst_2$64=caml_string_of_jsbytes("2"), - cst_34333=caml_string_of_jsbytes("34333"), - cst_3$48=caml_string_of_jsbytes("3"), - cst_35716=caml_string_of_jsbytes("35716"), - cst_4$46=caml_string_of_jsbytes("4"), - cst_37077=caml_string_of_jsbytes("37077"), - cst_5$45=caml_string_of_jsbytes("5"), - cst_39839=caml_string_of_jsbytes("39839"), - cst_5$46=caml_string_of_jsbytes("5"), - cst_3454=caml_string_of_jsbytes("3454"), - cst_39839$0=caml_string_of_jsbytes("39839"), - cst_0$335=caml_string_of_jsbytes("0"), - cst_30947=caml_string_of_jsbytes("30947"), - cst_37295=caml_string_of_jsbytes("37295"), - cst_1$230=caml_string_of_jsbytes("1"), - cst_40101=caml_string_of_jsbytes("40101"), - cst_2$59=caml_string_of_jsbytes("2"), - cst_41222=caml_string_of_jsbytes("41222"), - cst_3$43=caml_string_of_jsbytes("3"), - cst_42381=caml_string_of_jsbytes("42381"), - cst_4$41=caml_string_of_jsbytes("4"), - cst_43518=caml_string_of_jsbytes("43518"), - cst_5$35=caml_string_of_jsbytes("5"), - cst_44440=caml_string_of_jsbytes("44440"), - cst_5$36=caml_string_of_jsbytes("5"), - cst_3870=caml_string_of_jsbytes("3870"), - cst_44440$0=caml_string_of_jsbytes("44440"), - cst_0$336=caml_string_of_jsbytes("0"), - cst_27149=caml_string_of_jsbytes("27149"), - cst_33283=caml_string_of_jsbytes("33283"), - cst_1$231=caml_string_of_jsbytes("1"), - cst_36030=caml_string_of_jsbytes("36030"), - cst_2$60=caml_string_of_jsbytes("2"), - cst_37278=caml_string_of_jsbytes("37278"), - cst_3$44=caml_string_of_jsbytes("3"), - cst_38563=caml_string_of_jsbytes("38563"), - cst_4$42=caml_string_of_jsbytes("4"), - cst_39829=caml_string_of_jsbytes("39829"), - cst_5$37=caml_string_of_jsbytes("5"), - cst_42649=caml_string_of_jsbytes("42649"), - cst_5$38=caml_string_of_jsbytes("5"), - cst_3708=caml_string_of_jsbytes("3708"), - cst_42659=caml_string_of_jsbytes("42659"), - cst_0$337=caml_string_of_jsbytes("0"), - cst_25469=caml_string_of_jsbytes("25469"), - cst_30891=caml_string_of_jsbytes("30891"), - cst_1$232=caml_string_of_jsbytes("1"), - cst_33679=caml_string_of_jsbytes("33679"), - cst_2$61=caml_string_of_jsbytes("2"), - cst_35071=caml_string_of_jsbytes("35071"), - cst_3$45=caml_string_of_jsbytes("3"), - cst_36484=caml_string_of_jsbytes("36484"), - cst_4$43=caml_string_of_jsbytes("4"), - cst_37874=caml_string_of_jsbytes("37874"), - cst_5$39=caml_string_of_jsbytes("5"), - cst_40696=caml_string_of_jsbytes("40696"), - cst_5$40=caml_string_of_jsbytes("5"), - cst_3528=caml_string_of_jsbytes("3528"), - cst_40696$0=caml_string_of_jsbytes("40696"), - cst_0$332=caml_string_of_jsbytes("0"), - cst_31123=caml_string_of_jsbytes("31123"), - cst_37508=caml_string_of_jsbytes("37508"), - cst_1$227=caml_string_of_jsbytes("1"), - cst_40330=caml_string_of_jsbytes("40330"), - cst_2$56=caml_string_of_jsbytes("2"), - cst_41457=caml_string_of_jsbytes("41457"), - cst_3$40=caml_string_of_jsbytes("3"), - cst_42623=caml_string_of_jsbytes("42623"), - cst_4$38=caml_string_of_jsbytes("4"), - cst_43766=caml_string_of_jsbytes("43766"), - cst_5$29=caml_string_of_jsbytes("5"), - cst_44693=caml_string_of_jsbytes("44693"), - cst_5$30=caml_string_of_jsbytes("5"), - cst_3892=caml_string_of_jsbytes("3892"), - cst_44693$0=caml_string_of_jsbytes("44693"), - cst_0$333=caml_string_of_jsbytes("0"), - cst_27304=caml_string_of_jsbytes("27304"), - cst_33473=caml_string_of_jsbytes("33473"), - cst_1$228=caml_string_of_jsbytes("1"), - cst_36235=caml_string_of_jsbytes("36235"), - cst_2$57=caml_string_of_jsbytes("2"), - cst_37490=caml_string_of_jsbytes("37490"), - cst_3$41=caml_string_of_jsbytes("3"), - cst_38783=caml_string_of_jsbytes("38783"), - cst_4$39=caml_string_of_jsbytes("4"), - cst_40056=caml_string_of_jsbytes("40056"), - cst_5$31=caml_string_of_jsbytes("5"), - cst_42892=caml_string_of_jsbytes("42892"), - cst_5$32=caml_string_of_jsbytes("5"), - cst_3729=caml_string_of_jsbytes("3729"), - cst_42892$0=caml_string_of_jsbytes("42892"), - cst_0$334=caml_string_of_jsbytes("0"), - cst_25614=caml_string_of_jsbytes("25614"), - cst_31067=caml_string_of_jsbytes("31067"), - cst_1$229=caml_string_of_jsbytes("1"), - cst_33871=caml_string_of_jsbytes("33871"), - cst_2$58=caml_string_of_jsbytes("2"), - cst_35271=caml_string_of_jsbytes("35271"), - cst_3$42=caml_string_of_jsbytes("3"), - cst_36692=caml_string_of_jsbytes("36692"), - cst_4$40=caml_string_of_jsbytes("4"), - cst_38090=caml_string_of_jsbytes("38090"), - cst_5$33=caml_string_of_jsbytes("5"), - cst_40928=caml_string_of_jsbytes("40928"), - cst_5$34=caml_string_of_jsbytes("5"), - cst_3548=caml_string_of_jsbytes("3548"), - cst_40928$0=caml_string_of_jsbytes("40928"), - cst_0$329=caml_string_of_jsbytes("0"), - cst_31148=caml_string_of_jsbytes("31148"), - cst_37538=caml_string_of_jsbytes("37538"), - cst_1$224=caml_string_of_jsbytes("1"), - cst_40362=caml_string_of_jsbytes("40362"), - cst_2$53=caml_string_of_jsbytes("2"), - cst_41490=caml_string_of_jsbytes("41490"), - cst_3$37=caml_string_of_jsbytes("3"), - cst_42657=caml_string_of_jsbytes("42657"), - cst_4$35=caml_string_of_jsbytes("4"), - cst_43801=caml_string_of_jsbytes("43801"), - cst_5$23=caml_string_of_jsbytes("5"), - cst_44729=caml_string_of_jsbytes("44729"), - cst_5$24=caml_string_of_jsbytes("5"), - cst_3895=caml_string_of_jsbytes("3895"), - cst_44729$0=caml_string_of_jsbytes("44729"), - cst_0$330=caml_string_of_jsbytes("0"), - cst_27326=caml_string_of_jsbytes("27326"), - cst_33500$0=caml_string_of_jsbytes("33500"), - cst_1$225=caml_string_of_jsbytes("1"), - cst_36264=caml_string_of_jsbytes("36264"), - cst_2$54=caml_string_of_jsbytes("2"), - cst_37520=caml_string_of_jsbytes("37520"), - cst_3$38=caml_string_of_jsbytes("3"), - cst_38814=caml_string_of_jsbytes("38814"), - cst_4$36=caml_string_of_jsbytes("4"), - cst_40088=caml_string_of_jsbytes("40088"), - cst_5$25=caml_string_of_jsbytes("5"), - cst_42926=caml_string_of_jsbytes("42926"), - cst_5$26=caml_string_of_jsbytes("5"), - cst_3732=caml_string_of_jsbytes("3732"), - cst_42926$0=caml_string_of_jsbytes("42926"), - cst_0$331=caml_string_of_jsbytes("0"), - cst_25634=caml_string_of_jsbytes("25634"), - cst_31092=caml_string_of_jsbytes("31092"), - cst_1$226=caml_string_of_jsbytes("1"), - cst_33898=caml_string_of_jsbytes("33898"), - cst_2$55=caml_string_of_jsbytes("2"), - cst_35299=caml_string_of_jsbytes("35299"), - cst_3$39=caml_string_of_jsbytes("3"), - cst_36721=caml_string_of_jsbytes("36721"), - cst_4$37=caml_string_of_jsbytes("4"), - cst_38120=caml_string_of_jsbytes("38120"), - cst_5$27=caml_string_of_jsbytes("5"), - cst_40961=caml_string_of_jsbytes("40961"), - cst_5$28=caml_string_of_jsbytes("5"), - cst_3551=caml_string_of_jsbytes("3551"), - cst_40961$0=caml_string_of_jsbytes("40961"), - cst_0$326=caml_string_of_jsbytes("0"), - cst_31382=caml_string_of_jsbytes("31382"), - cst_37820=caml_string_of_jsbytes("37820"), - cst_1$221=caml_string_of_jsbytes("1"), - cst_40665=caml_string_of_jsbytes("40665"), - cst_2$50=caml_string_of_jsbytes("2"), - cst_41801=caml_string_of_jsbytes("41801"), - cst_3$34=caml_string_of_jsbytes("3"), - cst_42977=caml_string_of_jsbytes("42977"), - cst_4$32=caml_string_of_jsbytes("4"), - cst_44130=caml_string_of_jsbytes("44130"), - cst_5$17=caml_string_of_jsbytes("5"), - cst_45064=caml_string_of_jsbytes("45064"), - cst_5$18=caml_string_of_jsbytes("5"), - cst_3924=caml_string_of_jsbytes("3924"), - cst_45064$0=caml_string_of_jsbytes("45064"), - cst_0$327=caml_string_of_jsbytes("0"), - cst_27531=caml_string_of_jsbytes("27531"), - cst_33751=caml_string_of_jsbytes("33751"), - cst_1$222=caml_string_of_jsbytes("1"), - cst_36536=caml_string_of_jsbytes("36536"), - cst_2$51=caml_string_of_jsbytes("2"), - cst_37801=caml_string_of_jsbytes("37801"), - cst_3$35=caml_string_of_jsbytes("3"), - cst_39105=caml_string_of_jsbytes("39105"), - cst_4$33=caml_string_of_jsbytes("4"), - cst_40389=caml_string_of_jsbytes("40389"), - cst_5$19=caml_string_of_jsbytes("5"), - cst_43248=caml_string_of_jsbytes("43248"), - cst_5$20=caml_string_of_jsbytes("5"), - cst_3760=caml_string_of_jsbytes("3760"), - cst_43248$0=caml_string_of_jsbytes("43248"), - cst_0$328=caml_string_of_jsbytes("0"), - cst_25826=caml_string_of_jsbytes("25826"), - cst_31325=caml_string_of_jsbytes("31325"), - cst_1$223=caml_string_of_jsbytes("1"), - cst_34152=caml_string_of_jsbytes("34152"), - cst_2$52=caml_string_of_jsbytes("2"), - cst_35564=caml_string_of_jsbytes("35564"), - cst_3$36=caml_string_of_jsbytes("3"), - cst_36996=caml_string_of_jsbytes("36996"), - cst_4$34=caml_string_of_jsbytes("4"), - cst_38406=caml_string_of_jsbytes("38406"), - cst_5$21=caml_string_of_jsbytes("5"), - cst_41268=caml_string_of_jsbytes("41268"), - cst_5$22=caml_string_of_jsbytes("5"), - cst_3578=caml_string_of_jsbytes("3578"), - cst_41268$0=caml_string_of_jsbytes("41268"), - cst_0$323=caml_string_of_jsbytes("0"), - cst_31476=caml_string_of_jsbytes("31476"), - cst_37933=caml_string_of_jsbytes("37933"), - cst_1$218=caml_string_of_jsbytes("1"), - cst_40787=caml_string_of_jsbytes("40787"), - cst_2$47=caml_string_of_jsbytes("2"), - cst_41927=caml_string_of_jsbytes("41927"), - cst_3$31=caml_string_of_jsbytes("3"), - cst_43106=caml_string_of_jsbytes("43106"), - cst_4$29=caml_string_of_jsbytes("4"), - cst_44262=caml_string_of_jsbytes("44262"), - cst_5$11=caml_string_of_jsbytes("5"), - cst_45200=caml_string_of_jsbytes("45200"), - cst_5$12=caml_string_of_jsbytes("5"), - cst_3936=caml_string_of_jsbytes("3936"), - cst_45200$0=caml_string_of_jsbytes("45200"), - cst_0$324=caml_string_of_jsbytes("0"), - cst_27614=caml_string_of_jsbytes("27614"), - cst_33853=caml_string_of_jsbytes("33853"), - cst_1$219=caml_string_of_jsbytes("1"), - cst_36646=caml_string_of_jsbytes("36646"), - cst_2$48=caml_string_of_jsbytes("2"), - cst_37915=caml_string_of_jsbytes("37915"), - cst_3$32=caml_string_of_jsbytes("3"), - cst_39222=caml_string_of_jsbytes("39222"), - cst_4$30=caml_string_of_jsbytes("4"), - cst_40510=caml_string_of_jsbytes("40510"), - cst_5$13=caml_string_of_jsbytes("5"), - cst_43378=caml_string_of_jsbytes("43378"), - cst_5$14=caml_string_of_jsbytes("5"), - cst_3771=caml_string_of_jsbytes("3771"), - cst_43378$0=caml_string_of_jsbytes("43378"), - cst_0$325=caml_string_of_jsbytes("0"), - cst_25904=caml_string_of_jsbytes("25904"), - cst_31419=caml_string_of_jsbytes("31419"), - cst_1$220=caml_string_of_jsbytes("1"), - cst_34255=caml_string_of_jsbytes("34255"), - cst_2$49=caml_string_of_jsbytes("2"), - cst_35670=caml_string_of_jsbytes("35670"), - cst_3$33=caml_string_of_jsbytes("3"), - cst_37107=caml_string_of_jsbytes("37107"), - cst_4$31=caml_string_of_jsbytes("4"), - cst_38521=caml_string_of_jsbytes("38521"), - cst_5$15=caml_string_of_jsbytes("5"), - cst_41392=caml_string_of_jsbytes("41392"), - cst_5$16=caml_string_of_jsbytes("5"), - cst_3588=caml_string_of_jsbytes("3588"), - cst_41392$0=caml_string_of_jsbytes("41392"), - cst_0$321=caml_string_of_jsbytes("0"), - cst_0$322=caml_string_of_jsbytes("0"), - cst_1272$8=caml_string_of_jsbytes("1272"), - cst_5612$10=caml_string_of_jsbytes("5612"), - cst_6$30=caml_string_of_jsbytes("6."), - cst_1272$9=caml_string_of_jsbytes("1272"), - cst_5612$11=caml_string_of_jsbytes("5612"), - cst_969$13=caml_string_of_jsbytes("969"), - cst_1938$4=caml_string_of_jsbytes("1938"), - cst_3767$13=caml_string_of_jsbytes("3767"), - cst_969$11=caml_string_of_jsbytes("969"), - cst_1938$2=caml_string_of_jsbytes("1938"), - cst_3767$12=caml_string_of_jsbytes("3767"), - cst_6$29=caml_string_of_jsbytes("6."), - cst_969$12=caml_string_of_jsbytes("969"), - cst_1938$3=caml_string_of_jsbytes("1938"), - cst_3767$11=caml_string_of_jsbytes("3767"), - cst_969$10=caml_string_of_jsbytes("969"), - cst_3767$10=caml_string_of_jsbytes("3767"), - cst_969$8=caml_string_of_jsbytes("969"), - cst_3767$8=caml_string_of_jsbytes("3767"), - cst_6$28=caml_string_of_jsbytes("6."), - cst_969$9=caml_string_of_jsbytes("969"), - cst_3767$9=caml_string_of_jsbytes("3767"), - cst_1272$7=caml_string_of_jsbytes("1272"), - cst_2805$1=caml_string_of_jsbytes("2805"), - cst_5612$9=caml_string_of_jsbytes("5612"), - cst_1229$5=caml_string_of_jsbytes("1229"), - cst_2710$1=caml_string_of_jsbytes("2710"), - cst_5422$7=caml_string_of_jsbytes("5422"), - cst_1224$5=caml_string_of_jsbytes("1224"), - cst_2699$1=caml_string_of_jsbytes("2699"), - cst_5399$7=caml_string_of_jsbytes("5399"), - cst_0$320=caml_string_of_jsbytes("0"), - cst_5612$7=caml_string_of_jsbytes("5612"), - cst_1272$6=caml_string_of_jsbytes("1272"), - cst_5612$8=caml_string_of_jsbytes("5612"), - cst_0$319=caml_string_of_jsbytes("0"), - cst_5422$5=caml_string_of_jsbytes("5422"), - cst_1229$4=caml_string_of_jsbytes("1229"), - cst_5422$6=caml_string_of_jsbytes("5422"), - cst_0$318=caml_string_of_jsbytes("0"), - cst_5399$5=caml_string_of_jsbytes("5399"), - cst_1224$4=caml_string_of_jsbytes("1224"), - cst_5399$6=caml_string_of_jsbytes("5399"), - cst_16_25$0=caml_string_of_jsbytes("16.25"), - cst_0_0234$1=caml_string_of_jsbytes("0.0234"), - cst_390000=caml_string_of_jsbytes("390000"), - cst_1500$1=caml_string_of_jsbytes("1500"), - cst_1000$4=caml_string_of_jsbytes("1000"), - cst_6_55957$0=caml_string_of_jsbytes("6.55957"), - cst_1$217=caml_string_of_jsbytes("1."), - cst_500$3=caml_string_of_jsbytes("500"), - cst_0$317=caml_string_of_jsbytes("0"), - cst_50$2=caml_string_of_jsbytes("50"), - cst_0$315=caml_string_of_jsbytes("0"), - cst_0$316=caml_string_of_jsbytes("0"), - cst_0$313=caml_string_of_jsbytes("0"), - cst_0$314=caml_string_of_jsbytes("0"), - cst_0$312=caml_string_of_jsbytes("0"), - cst_0$310=caml_string_of_jsbytes("0"), - cst_0$311=caml_string_of_jsbytes("0"), - cst_8708=caml_string_of_jsbytes("8708"), - cst_13559=caml_string_of_jsbytes("13559"), - cst_21362=caml_string_of_jsbytes("21362"), - cst_33196=caml_string_of_jsbytes("33196"), - cst_17607$0=caml_string_of_jsbytes("17607"), - cst_27365$0=caml_string_of_jsbytes("27365"), - cst_17607=caml_string_of_jsbytes("17607"), - cst_27365=caml_string_of_jsbytes("27365"), - cst_8414=caml_string_of_jsbytes("8414"), - cst_13100=caml_string_of_jsbytes("13100"), - cst_20640=caml_string_of_jsbytes("20640"), - cst_32073=caml_string_of_jsbytes("32073"), - cst_17012$0=caml_string_of_jsbytes("17012"), - cst_26440$0=caml_string_of_jsbytes("26440"), - cst_17012=caml_string_of_jsbytes("17012"), - cst_26440=caml_string_of_jsbytes("26440"), - cst_8379=caml_string_of_jsbytes("8379"), - cst_13045=caml_string_of_jsbytes("13045"), - cst_20554=caml_string_of_jsbytes("20554"), - cst_31939=caml_string_of_jsbytes("31939"), - cst_16941$0=caml_string_of_jsbytes("16941"), - cst_26329$0=caml_string_of_jsbytes("26329"), - cst_16941=caml_string_of_jsbytes("16941"), - cst_26329=caml_string_of_jsbytes("26329"), - cst_969$7=caml_string_of_jsbytes("969"), - cst_3767$7=caml_string_of_jsbytes("3767"), - cst_1272$4=caml_string_of_jsbytes("1272"), - cst_5612$5=caml_string_of_jsbytes("5612"), - cst_6$27=caml_string_of_jsbytes("6."), - cst_1272$5=caml_string_of_jsbytes("1272"), - cst_5612$6=caml_string_of_jsbytes("5612"), - cst_969$5=caml_string_of_jsbytes("969"), - cst_3767$5=caml_string_of_jsbytes("3767"), - cst_6$26=caml_string_of_jsbytes("6."), - cst_969$6=caml_string_of_jsbytes("969"), - cst_3767$6=caml_string_of_jsbytes("3767"), - cst_0$309=caml_string_of_jsbytes("0"), - cst_5612$3=caml_string_of_jsbytes("5612"), - cst_1272$3=caml_string_of_jsbytes("1272"), - cst_5612$4=caml_string_of_jsbytes("5612"), - cst_0$308=caml_string_of_jsbytes("0"), - cst_5422$3=caml_string_of_jsbytes("5422"), - cst_1229$3=caml_string_of_jsbytes("1229"), - cst_5422$4=caml_string_of_jsbytes("5422"), - cst_0$307=caml_string_of_jsbytes("0"), - cst_5399$3=caml_string_of_jsbytes("5399"), - cst_1224$3=caml_string_of_jsbytes("1224"), - cst_5399$4=caml_string_of_jsbytes("5399"), - cst_1500$0=caml_string_of_jsbytes("1500"), - cst_500$2=caml_string_of_jsbytes("500"), - cst_1000$3=caml_string_of_jsbytes("1000"), - cst_0$306=caml_string_of_jsbytes("0"), - cst_169$2=caml_string_of_jsbytes("169."), - cst_0_55$2=caml_string_of_jsbytes("0.55"), - cst_169$1=caml_string_of_jsbytes("169."), - cst_0_55$1=caml_string_of_jsbytes("0.55"), - cst_12$15=caml_string_of_jsbytes("12."), - cst_0$305=caml_string_of_jsbytes("0"), - cst_0$304=caml_string_of_jsbytes("0"), - cst_0$303=caml_string_of_jsbytes("0"), - cst_0$297=caml_string_of_jsbytes("0"), - cst_0$298=caml_string_of_jsbytes("0"), - cst_2$46=caml_string_of_jsbytes("2"), - cst_90100=caml_string_of_jsbytes("90100"), - cst_135000=caml_string_of_jsbytes("135000"), - cst_0$299=caml_string_of_jsbytes("0"), - cst_0$300=caml_string_of_jsbytes("0"), - cst_0$301=caml_string_of_jsbytes("0"), - cst_0$302=caml_string_of_jsbytes("0"), - cst_0$296=caml_string_of_jsbytes("0"), - cst_9500=caml_string_of_jsbytes("9500"), - cst_258900=caml_string_of_jsbytes("258900"), - cst_0$295=caml_string_of_jsbytes("0"), - cst_0$293=caml_string_of_jsbytes("0"), - cst_0$294=caml_string_of_jsbytes("0"), - cst_50$1=caml_string_of_jsbytes("50"), - cst_0$291=caml_string_of_jsbytes("0"), - cst_0$292=caml_string_of_jsbytes("0"), - cst_0_95$3=caml_string_of_jsbytes("0.95"), - cst_0_95$4=caml_string_of_jsbytes("0.95"), - cst_0$289=caml_string_of_jsbytes("0"), - cst_0$290=caml_string_of_jsbytes("0"), - cst_100$10=caml_string_of_jsbytes("100."), - cst_100$11=caml_string_of_jsbytes("100."), - cst_0_005$2=caml_string_of_jsbytes("0.005"), - cst_12$14=caml_string_of_jsbytes("12."), - cst_0$288=caml_string_of_jsbytes("0."), - cst_0_75$10=caml_string_of_jsbytes("0.75"), - cst_0_75$9=caml_string_of_jsbytes("0.75"), - cst_0_75$8=caml_string_of_jsbytes("0.75"), - cst_0$287=caml_string_of_jsbytes("0"), - cst_0_95$2=caml_string_of_jsbytes("0.95"), - cst_0$286=caml_string_of_jsbytes("0"), - cst_86900=caml_string_of_jsbytes("86900"), - cst_97100=caml_string_of_jsbytes("97100"), - cst_1$216=caml_string_of_jsbytes("1"), - cst_10200=caml_string_of_jsbytes("10200"), - cst_107300=caml_string_of_jsbytes("107300"), - cst_0$283=caml_string_of_jsbytes("0"), - cst_208500$0=caml_string_of_jsbytes("208500"), - cst_251500$0=caml_string_of_jsbytes("251500"), - cst_1$213=caml_string_of_jsbytes("1"), - cst_43000$0=caml_string_of_jsbytes("43000"), - cst_294500$0=caml_string_of_jsbytes("294500"), - cst_0$284=caml_string_of_jsbytes("0"), - cst_186000$0=caml_string_of_jsbytes("186000"), - cst_223900$0=caml_string_of_jsbytes("223900"), - cst_1$214=caml_string_of_jsbytes("1"), - cst_37900$0=caml_string_of_jsbytes("37900"), - cst_261800$0=caml_string_of_jsbytes("261800"), - cst_0$285=caml_string_of_jsbytes("0"), - cst_173600$0=caml_string_of_jsbytes("173600"), - cst_208200$0=caml_string_of_jsbytes("208200"), - cst_1$215=caml_string_of_jsbytes("1"), - cst_34600=caml_string_of_jsbytes("34600"), - cst_242800$0=caml_string_of_jsbytes("242800"), - cst_0$280=caml_string_of_jsbytes("0"), - cst_167800$0=caml_string_of_jsbytes("167800"), - cst_202500$1=caml_string_of_jsbytes("202500"), - cst_1$210=caml_string_of_jsbytes("1"), - cst_34700$0=caml_string_of_jsbytes("34700"), - cst_237200$0=caml_string_of_jsbytes("237200"), - cst_0$281=caml_string_of_jsbytes("0"), - cst_149600$0=caml_string_of_jsbytes("149600"), - cst_180100$0=caml_string_of_jsbytes("180100"), - cst_1$211=caml_string_of_jsbytes("1"), - cst_30500$2=caml_string_of_jsbytes("30500"), - cst_210600$0=caml_string_of_jsbytes("210600"), - cst_0$282=caml_string_of_jsbytes("0"), - cst_139700$0=caml_string_of_jsbytes("139700"), - cst_167600$0=caml_string_of_jsbytes("167600"), - cst_1$212=caml_string_of_jsbytes("1"), - cst_27900$0=caml_string_of_jsbytes("27900"), - cst_195500$0=caml_string_of_jsbytes("195500"), - cst_0$277=caml_string_of_jsbytes("0"), - cst_198100=caml_string_of_jsbytes("198100"), - cst_239000=caml_string_of_jsbytes("239000"), - cst_1$207=caml_string_of_jsbytes("1"), - cst_40900=caml_string_of_jsbytes("40900"), - cst_279900=caml_string_of_jsbytes("279900"), - cst_0$278=caml_string_of_jsbytes("0"), - cst_176800=caml_string_of_jsbytes("176800"), - cst_212800=caml_string_of_jsbytes("212800"), - cst_1$208=caml_string_of_jsbytes("1"), - cst_36000=caml_string_of_jsbytes("36000"), - cst_248800=caml_string_of_jsbytes("248800"), - cst_0$279=caml_string_of_jsbytes("0"), - cst_165000=caml_string_of_jsbytes("165000"), - cst_197900=caml_string_of_jsbytes("197900"), - cst_1$209=caml_string_of_jsbytes("1"), - cst_32900=caml_string_of_jsbytes("32900"), - cst_230800=caml_string_of_jsbytes("230800"), - cst_0$274=caml_string_of_jsbytes("0"), - cst_159500=caml_string_of_jsbytes("159500"), - cst_192500=caml_string_of_jsbytes("192500"), - cst_1$204=caml_string_of_jsbytes("1"), - cst_33000=caml_string_of_jsbytes("33000"), - cst_225500=caml_string_of_jsbytes("225500"), - cst_0$275=caml_string_of_jsbytes("0"), - cst_142200=caml_string_of_jsbytes("142200"), - cst_171200=caml_string_of_jsbytes("171200"), - cst_1$205=caml_string_of_jsbytes("1"), - cst_29000=caml_string_of_jsbytes("29000"), - cst_200200=caml_string_of_jsbytes("200200"), - cst_0$276=caml_string_of_jsbytes("0"), - cst_132800=caml_string_of_jsbytes("132800"), - cst_159300=caml_string_of_jsbytes("159300"), - cst_1$206=caml_string_of_jsbytes("1"), - cst_26500=caml_string_of_jsbytes("26500"), - cst_185800$0=caml_string_of_jsbytes("185800"), - cst_0$271=caml_string_of_jsbytes("0"), - cst_200100=caml_string_of_jsbytes("200100"), - cst_141400=caml_string_of_jsbytes("141400"), - cst_1$201=caml_string_of_jsbytes("1"), - cst_41300=caml_string_of_jsbytes("41300"), - cst_182700=caml_string_of_jsbytes("182700"), - cst_0$272=caml_string_of_jsbytes("0"), - cst_178600=caml_string_of_jsbytes("178600"), - cst_215000=caml_string_of_jsbytes("215000"), - cst_1$202=caml_string_of_jsbytes("1"), - cst_36400=caml_string_of_jsbytes("36400"), - cst_251400=caml_string_of_jsbytes("251400"), - cst_0$273=caml_string_of_jsbytes("0"), - cst_166700=caml_string_of_jsbytes("166700"), - cst_199900=caml_string_of_jsbytes("199900"), - cst_1$203=caml_string_of_jsbytes("1"), - cst_33200=caml_string_of_jsbytes("33200"), - cst_233100=caml_string_of_jsbytes("233100"), - cst_0$268=caml_string_of_jsbytes("0"), - cst_161100=caml_string_of_jsbytes("161100"), - cst_194400=caml_string_of_jsbytes("194400"), - cst_1$198=caml_string_of_jsbytes("1"), - cst_33300=caml_string_of_jsbytes("33300"), - cst_227700=caml_string_of_jsbytes("227700"), - cst_0$269=caml_string_of_jsbytes("0"), - cst_143600=caml_string_of_jsbytes("143600"), - cst_172900=caml_string_of_jsbytes("172900"), - cst_1$199=caml_string_of_jsbytes("1"), - cst_29300=caml_string_of_jsbytes("29300"), - cst_202200=caml_string_of_jsbytes("202200"), - cst_0$270=caml_string_of_jsbytes("0"), - cst_134100=caml_string_of_jsbytes("134100"), - cst_160900=caml_string_of_jsbytes("160900"), - cst_1$200=caml_string_of_jsbytes("1"), - cst_26800=caml_string_of_jsbytes("26800"), - cst_187700=caml_string_of_jsbytes("187700"), - cst_0$265=caml_string_of_jsbytes("0"), - cst_202500$0=caml_string_of_jsbytes("202500"), - cst_244300=caml_string_of_jsbytes("244300"), - cst_1$195=caml_string_of_jsbytes("1"), - cst_41800=caml_string_of_jsbytes("41800"), - cst_286100=caml_string_of_jsbytes("286100"), - cst_0$266=caml_string_of_jsbytes("0"), - cst_180700=caml_string_of_jsbytes("180700"), - cst_217500=caml_string_of_jsbytes("217500"), - cst_1$196=caml_string_of_jsbytes("1"), - cst_36800=caml_string_of_jsbytes("36800"), - cst_254300=caml_string_of_jsbytes("254300"), - cst_0$267=caml_string_of_jsbytes("0"), - cst_168700=caml_string_of_jsbytes("168700"), - cst_202300=caml_string_of_jsbytes("202300"), - cst_1$197=caml_string_of_jsbytes("1"), - cst_33600=caml_string_of_jsbytes("33600"), - cst_235900=caml_string_of_jsbytes("235900"), - cst_0$262=caml_string_of_jsbytes("0"), - cst_30871=caml_string_of_jsbytes("30871"), - cst_37243=caml_string_of_jsbytes("37243"), - cst_1$192=caml_string_of_jsbytes("1"), - cst_6372=caml_string_of_jsbytes("6372"), - cst_43615=caml_string_of_jsbytes("43615"), - cst_0$263=caml_string_of_jsbytes("0"), - cst_27548=caml_string_of_jsbytes("27548"), - cst_33148=caml_string_of_jsbytes("33148"), - cst_1$193=caml_string_of_jsbytes("1"), - cst_5610=caml_string_of_jsbytes("5610"), - cst_38768=caml_string_of_jsbytes("38768"), - cst_0$264=caml_string_of_jsbytes("0"), - cst_25718=caml_string_of_jsbytes("25718"), - cst_30840=caml_string_of_jsbytes("30840"), - cst_1$194=caml_string_of_jsbytes("1"), - cst_5122=caml_string_of_jsbytes("5122"), - cst_35962=caml_string_of_jsbytes("35962"), - cst_0$259=caml_string_of_jsbytes("0"), - cst_163000=caml_string_of_jsbytes("163000"), - cst_196700=caml_string_of_jsbytes("196700"), - cst_1$189=caml_string_of_jsbytes("1"), - cst_33700=caml_string_of_jsbytes("33700"), - cst_230400=caml_string_of_jsbytes("230400"), - cst_0$260=caml_string_of_jsbytes("0"), - cst_145300=caml_string_of_jsbytes("145300"), - cst_175000=caml_string_of_jsbytes("175000"), - cst_1$190=caml_string_of_jsbytes("1"), - cst_29700=caml_string_of_jsbytes("29700"), - cst_204700=caml_string_of_jsbytes("204700"), - cst_0$261=caml_string_of_jsbytes("0"), - cst_135700=caml_string_of_jsbytes("135700"), - cst_162800=caml_string_of_jsbytes("162800"), - cst_1$191=caml_string_of_jsbytes("1"), - cst_27100=caml_string_of_jsbytes("27100"), - cst_189900=caml_string_of_jsbytes("189900"), - cst_0$256=caml_string_of_jsbytes("0"), - cst_24849=caml_string_of_jsbytes("24849"), - cst_29987=caml_string_of_jsbytes("29987"), - cst_1$186=caml_string_of_jsbytes("1"), - cst_5138=caml_string_of_jsbytes("5138"), - cst_35125=caml_string_of_jsbytes("35125"), - cst_0$257=caml_string_of_jsbytes("0"), - cst_22151=caml_string_of_jsbytes("22151"), - cst_26679=caml_string_of_jsbytes("26679"), - cst_1$187=caml_string_of_jsbytes("1"), - cst_4528=caml_string_of_jsbytes("4528"), - cst_31207=caml_string_of_jsbytes("31207"), - cst_0$258=caml_string_of_jsbytes("0"), - cst_20687=caml_string_of_jsbytes("20687"), - cst_24818=caml_string_of_jsbytes("24818"), - cst_1$188=caml_string_of_jsbytes("1"), - cst_4131=caml_string_of_jsbytes("4131"), - cst_28949=caml_string_of_jsbytes("28949"), - cst_0$253=caml_string_of_jsbytes("0"), - cst_31241=caml_string_of_jsbytes("31241"), - cst_37689=caml_string_of_jsbytes("37689"), - cst_1$183=caml_string_of_jsbytes("1"), - cst_6448=caml_string_of_jsbytes("6448"), - cst_44137=caml_string_of_jsbytes("44137"), - cst_0$254=caml_string_of_jsbytes("0"), - cst_27879=caml_string_of_jsbytes("27879"), - cst_33556=caml_string_of_jsbytes("33556"), - cst_1$184=caml_string_of_jsbytes("1"), - cst_5677=caml_string_of_jsbytes("5677"), - cst_39233=caml_string_of_jsbytes("39233"), - cst_0$255=caml_string_of_jsbytes("0"), - cst_26027=caml_string_of_jsbytes("26027"), - cst_31210=caml_string_of_jsbytes("31210"), - cst_1$185=caml_string_of_jsbytes("1"), - cst_5183=caml_string_of_jsbytes("5183"), - cst_36393=caml_string_of_jsbytes("36393"), - cst_0$250=caml_string_of_jsbytes("0"), - cst_25147=caml_string_of_jsbytes("25147"), - cst_30347=caml_string_of_jsbytes("30347"), - cst_1$180=caml_string_of_jsbytes("1"), - cst_5200=caml_string_of_jsbytes("5200"), - cst_35547=caml_string_of_jsbytes("35547"), - cst_0$251=caml_string_of_jsbytes("0"), - cst_22417=caml_string_of_jsbytes("22417"), - cst_26999=caml_string_of_jsbytes("26999"), - cst_1$181=caml_string_of_jsbytes("1"), - cst_4582=caml_string_of_jsbytes("4582"), - cst_31581=caml_string_of_jsbytes("31581"), - cst_0$252=caml_string_of_jsbytes("0"), - cst_20935=caml_string_of_jsbytes("20935"), - cst_25116$0=caml_string_of_jsbytes("25116"), - cst_1$182=caml_string_of_jsbytes("1"), - cst_4181=caml_string_of_jsbytes("4181"), - cst_29297=caml_string_of_jsbytes("29297"), - cst_0$247=caml_string_of_jsbytes("0"), - cst_31616=caml_string_of_jsbytes("31616"), - cst_38141=caml_string_of_jsbytes("38141"), - cst_1$177=caml_string_of_jsbytes("1"), - cst_6525=caml_string_of_jsbytes("6525"), - cst_44666=caml_string_of_jsbytes("44666"), - cst_0$248=caml_string_of_jsbytes("0"), - cst_28214=caml_string_of_jsbytes("28214"), - cst_33959=caml_string_of_jsbytes("33959"), - cst_1$178=caml_string_of_jsbytes("1"), - cst_5745=caml_string_of_jsbytes("5745"), - cst_39704=caml_string_of_jsbytes("39704"), - cst_0$249=caml_string_of_jsbytes("0"), - cst_26339=caml_string_of_jsbytes("26339"), - cst_31584=caml_string_of_jsbytes("31584"), - cst_1$179=caml_string_of_jsbytes("1"), - cst_5245=caml_string_of_jsbytes("5245"), - cst_36829=caml_string_of_jsbytes("36829"), - cst_0$244=caml_string_of_jsbytes("0"), - cst_25449=caml_string_of_jsbytes("25449"), - cst_30711=caml_string_of_jsbytes("30711"), - cst_1$174=caml_string_of_jsbytes("1"), - cst_5262=caml_string_of_jsbytes("5262"), - cst_35973=caml_string_of_jsbytes("35973"), - cst_0$245=caml_string_of_jsbytes("0"), - cst_22686=caml_string_of_jsbytes("22686"), - cst_27323=caml_string_of_jsbytes("27323"), - cst_1$175=caml_string_of_jsbytes("1"), - cst_4637=caml_string_of_jsbytes("4637"), - cst_31960=caml_string_of_jsbytes("31960"), - cst_0$246=caml_string_of_jsbytes("0"), - cst_21186=caml_string_of_jsbytes("21186"), - cst_25417=caml_string_of_jsbytes("25417"), - cst_1$176=caml_string_of_jsbytes("1"), - cst_4231=caml_string_of_jsbytes("4231"), - cst_29648=caml_string_of_jsbytes("29648"), - cst_0$241=caml_string_of_jsbytes("0"), - cst_32185=caml_string_of_jsbytes("32185"), - cst_38827=caml_string_of_jsbytes("38827"), - cst_1$171=caml_string_of_jsbytes("1"), - cst_6642=caml_string_of_jsbytes("6642"), - cst_45469=caml_string_of_jsbytes("45469"), - cst_0$242=caml_string_of_jsbytes("0"), - cst_28722=caml_string_of_jsbytes("28722"), - cst_34570$0=caml_string_of_jsbytes("34570"), - cst_1$172=caml_string_of_jsbytes("1"), - cst_5848=caml_string_of_jsbytes("5848"), - cst_40418=caml_string_of_jsbytes("40418"), - cst_0$243=caml_string_of_jsbytes("0"), - cst_26813=caml_string_of_jsbytes("26813"), - cst_32152=caml_string_of_jsbytes("32152"), - cst_1$173=caml_string_of_jsbytes("1"), - cst_5339=caml_string_of_jsbytes("5339"), - cst_37491=caml_string_of_jsbytes("37491"), - cst_0$238=caml_string_of_jsbytes("0"), - cst_25907=caml_string_of_jsbytes("25907"), - cst_31264=caml_string_of_jsbytes("31264"), - cst_1$168=caml_string_of_jsbytes("1"), - cst_5357=caml_string_of_jsbytes("5357"), - cst_36621=caml_string_of_jsbytes("36621"), - cst_0$239=caml_string_of_jsbytes("0"), - cst_23094=caml_string_of_jsbytes("23094"), - cst_27814=caml_string_of_jsbytes("27814"), - cst_1$169=caml_string_of_jsbytes("1"), - cst_4720=caml_string_of_jsbytes("4720"), - cst_32534=caml_string_of_jsbytes("32534"), - cst_0$240=caml_string_of_jsbytes("0"), - cst_21567=caml_string_of_jsbytes("21567"), - cst_25874=caml_string_of_jsbytes("25874"), - cst_1$170=caml_string_of_jsbytes("1"), - cst_4307=caml_string_of_jsbytes("4307"), - cst_30181=caml_string_of_jsbytes("30181"), - cst_0$235=caml_string_of_jsbytes("0"), - cst_33086=caml_string_of_jsbytes("33086"), - cst_39914=caml_string_of_jsbytes("39914"), - cst_1$165=caml_string_of_jsbytes("1"), - cst_6828=caml_string_of_jsbytes("6828"), - cst_46742=caml_string_of_jsbytes("46742"), - cst_0$236=caml_string_of_jsbytes("0"), - cst_29526=caml_string_of_jsbytes("29526"), - cst_35538=caml_string_of_jsbytes("35538"), - cst_1$166=caml_string_of_jsbytes("1"), - cst_6012=caml_string_of_jsbytes("6012"), - cst_41550=caml_string_of_jsbytes("41550"), - cst_0$237=caml_string_of_jsbytes("0"), - cst_27564=caml_string_of_jsbytes("27564"), - cst_33052=caml_string_of_jsbytes("33052"), - cst_1$167=caml_string_of_jsbytes("1"), - cst_5488=caml_string_of_jsbytes("5488"), - cst_38541=caml_string_of_jsbytes("38541"), - cst_0$232=caml_string_of_jsbytes("0"), - cst_26632=caml_string_of_jsbytes("26632"), - cst_32139=caml_string_of_jsbytes("32139"), - cst_1$162=caml_string_of_jsbytes("1"), - cst_5507=caml_string_of_jsbytes("5507"), - cst_37646=caml_string_of_jsbytes("37646"), - cst_0$233=caml_string_of_jsbytes("0"), - cst_23741=caml_string_of_jsbytes("23741"), - cst_28593=caml_string_of_jsbytes("28593"), - cst_1$163=caml_string_of_jsbytes("1"), - cst_4852=caml_string_of_jsbytes("4852"), - cst_33445=caml_string_of_jsbytes("33445"), - cst_0$234=caml_string_of_jsbytes("0"), - cst_22171=caml_string_of_jsbytes("22171"), - cst_36598=caml_string_of_jsbytes("36598"), - cst_1$164=caml_string_of_jsbytes("1"), - cst_4428=caml_string_of_jsbytes("4428"), - cst_31026=caml_string_of_jsbytes("31026"), - cst_0$229=caml_string_of_jsbytes("0"), - cst_33999=caml_string_of_jsbytes("33999"), - cst_41016=caml_string_of_jsbytes("41016"), - cst_1$159=caml_string_of_jsbytes("1"), - cst_7016=caml_string_of_jsbytes("7016"), - cst_48032=caml_string_of_jsbytes("48032"), - cst_0$230=caml_string_of_jsbytes("0"), - cst_30341=caml_string_of_jsbytes("30341"), - cst_36519=caml_string_of_jsbytes("36519"), - cst_1$160=caml_string_of_jsbytes("1"), - cst_6178=caml_string_of_jsbytes("6178"), - cst_42697=caml_string_of_jsbytes("42697"), - cst_0$231=caml_string_of_jsbytes("0"), - cst_28325=caml_string_of_jsbytes("28325"), - cst_33964=caml_string_of_jsbytes("33964"), - cst_1$161=caml_string_of_jsbytes("1"), - cst_5639=caml_string_of_jsbytes("5639"), - cst_39605=caml_string_of_jsbytes("39605"), - cst_0$226=caml_string_of_jsbytes("0"), - cst_27367=caml_string_of_jsbytes("27367"), - cst_33026=caml_string_of_jsbytes("33026"), - cst_1$156=caml_string_of_jsbytes("1"), - cst_5659=caml_string_of_jsbytes("5659"), - cst_38685=caml_string_of_jsbytes("38685"), - cst_0$227=caml_string_of_jsbytes("0"), - cst_24396=caml_string_of_jsbytes("24396"), - cst_29382=caml_string_of_jsbytes("29382"), - cst_1$157=caml_string_of_jsbytes("1"), - cst_4986$0=caml_string_of_jsbytes("4986"), - cst_34368=caml_string_of_jsbytes("34368"), - cst_0$228=caml_string_of_jsbytes("0"), - cst_22783=caml_string_of_jsbytes("22783"), - cst_27332=caml_string_of_jsbytes("27332"), - cst_1$158=caml_string_of_jsbytes("1"), - cst_4550=caml_string_of_jsbytes("4550"), - cst_31882=caml_string_of_jsbytes("31882"), - cst_0$223=caml_string_of_jsbytes("0"), - cst_35002=caml_string_of_jsbytes("35002"), - cst_42226=caml_string_of_jsbytes("42226"), - cst_1$153=caml_string_of_jsbytes("1"), - cst_7223=caml_string_of_jsbytes("7223"), - cst_49449=caml_string_of_jsbytes("49449"), - cst_0$224=caml_string_of_jsbytes("0"), - cst_31236=caml_string_of_jsbytes("31236"), - cst_37596=caml_string_of_jsbytes("37596"), - cst_1$154=caml_string_of_jsbytes("1"), - cst_6360=caml_string_of_jsbytes("6360"), - cst_43957=caml_string_of_jsbytes("43957"), - cst_0$225=caml_string_of_jsbytes("0"), - cst_29161=caml_string_of_jsbytes("29161"), - cst_34966=caml_string_of_jsbytes("34966"), - cst_1$155=caml_string_of_jsbytes("1"), - cst_5805=caml_string_of_jsbytes("5805"), - cst_40773=caml_string_of_jsbytes("40773"), - cst_0$220=caml_string_of_jsbytes("0"), - cst_28174=caml_string_of_jsbytes("28174"), - cst_34000=caml_string_of_jsbytes("34000"), - cst_1$150=caml_string_of_jsbytes("1"), - cst_5826=caml_string_of_jsbytes("5826"), - cst_39826=caml_string_of_jsbytes("39826"), - cst_0$221=caml_string_of_jsbytes("0"), - cst_25116=caml_string_of_jsbytes("25116"), - cst_30249=caml_string_of_jsbytes("30249"), - cst_1$151=caml_string_of_jsbytes("1"), - cst_5133=caml_string_of_jsbytes("5133"), - cst_35382=caml_string_of_jsbytes("35382"), - cst_0$222=caml_string_of_jsbytes("0"), - cst_23455=caml_string_of_jsbytes("23455"), - cst_28138=caml_string_of_jsbytes("28138"), - cst_1$152=caml_string_of_jsbytes("1"), - cst_4684=caml_string_of_jsbytes("4684"), - cst_32823=caml_string_of_jsbytes("32823"), - cst_0$217=caml_string_of_jsbytes("0"), - cst_35114=caml_string_of_jsbytes("35114"), - cst_42361=caml_string_of_jsbytes("42361"), - cst_1$147=caml_string_of_jsbytes("1"), - cst_7246=caml_string_of_jsbytes("7246"), - cst_49607=caml_string_of_jsbytes("49607"), - cst_0$218=caml_string_of_jsbytes("0"), - cst_31336=caml_string_of_jsbytes("31336"), - cst_37716=caml_string_of_jsbytes("37716"), - cst_1$148=caml_string_of_jsbytes("1"), - cst_6380=caml_string_of_jsbytes("6380"), - cst_44098=caml_string_of_jsbytes("44098"), - cst_0$219=caml_string_of_jsbytes("0"), - cst_29254=caml_string_of_jsbytes("29254"), - cst_35078=caml_string_of_jsbytes("35078"), - cst_1$149=caml_string_of_jsbytes("1"), - cst_5824=caml_string_of_jsbytes("5824"), - cst_40903=caml_string_of_jsbytes("40903"), - cst_0$214=caml_string_of_jsbytes("0"), - cst_28264=caml_string_of_jsbytes("28264"), - cst_34109=caml_string_of_jsbytes("34109"), - cst_1$144=caml_string_of_jsbytes("1"), - cst_5845=caml_string_of_jsbytes("5845"), - cst_39953=caml_string_of_jsbytes("39953"), - cst_0$215=caml_string_of_jsbytes("0"), - cst_25196=caml_string_of_jsbytes("25196"), - cst_30346=caml_string_of_jsbytes("30346"), - cst_1$145=caml_string_of_jsbytes("1"), - cst_5149=caml_string_of_jsbytes("5149"), - cst_35495=caml_string_of_jsbytes("35495"), - cst_0$216=caml_string_of_jsbytes("0"), - cst_23530=caml_string_of_jsbytes("23530"), - cst_28228=caml_string_of_jsbytes("28228"), - cst_1$146=caml_string_of_jsbytes("1"), - cst_4699=caml_string_of_jsbytes("4699"), - cst_32928=caml_string_of_jsbytes("32928"), - cst_0$211=caml_string_of_jsbytes("0"), - cst_35500=caml_string_of_jsbytes("35500"), - cst_42827=caml_string_of_jsbytes("42827"), - cst_1$141=caml_string_of_jsbytes("1"), - cst_7326=caml_string_of_jsbytes("7326"), - cst_50153=caml_string_of_jsbytes("50153"), - cst_0$212=caml_string_of_jsbytes("0"), - cst_31681=caml_string_of_jsbytes("31681"), - cst_38131=caml_string_of_jsbytes("38131"), - cst_1$142=caml_string_of_jsbytes("1"), - cst_6450=caml_string_of_jsbytes("6450"), - cst_44583=caml_string_of_jsbytes("44583"), - cst_0$213=caml_string_of_jsbytes("0"), - cst_29576=caml_string_of_jsbytes("29576"), - cst_35464=caml_string_of_jsbytes("35464"), - cst_1$143=caml_string_of_jsbytes("1"), - cst_5888=caml_string_of_jsbytes("5888"), - cst_41353=caml_string_of_jsbytes("41353"), - cst_0$208=caml_string_of_jsbytes("0"), - cst_28575=caml_string_of_jsbytes("28575"), - cst_34484=caml_string_of_jsbytes("34484"), - cst_1$138=caml_string_of_jsbytes("1"), - cst_5909=caml_string_of_jsbytes("5909"), - cst_40392=caml_string_of_jsbytes("40392"), - cst_0$209=caml_string_of_jsbytes("0"), - cst_25473=caml_string_of_jsbytes("25473"), - cst_30680=caml_string_of_jsbytes("30680"), - cst_1$139=caml_string_of_jsbytes("1"), - cst_5206=caml_string_of_jsbytes("5206"), - cst_35885=caml_string_of_jsbytes("35885"), - cst_0$210=caml_string_of_jsbytes("0"), - cst_23789=caml_string_of_jsbytes("23789"), - cst_28539=caml_string_of_jsbytes("28539"), - cst_1$140=caml_string_of_jsbytes("1"), - cst_4751=caml_string_of_jsbytes("4751"), - cst_33290=caml_string_of_jsbytes("33290"), - cst_0$205=caml_string_of_jsbytes("0"), - cst_35855=caml_string_of_jsbytes("35855"), - cst_43255=caml_string_of_jsbytes("43255"), - cst_1$135=caml_string_of_jsbytes("1"), - cst_7399=caml_string_of_jsbytes("7399"), - cst_50655=caml_string_of_jsbytes("50655"), - cst_0$206=caml_string_of_jsbytes("0"), - cst_31998=caml_string_of_jsbytes("31998"), - cst_38512=caml_string_of_jsbytes("38512"), - cst_1$136=caml_string_of_jsbytes("1"), - cst_6515=caml_string_of_jsbytes("6515"), - cst_45029=caml_string_of_jsbytes("45029"), - cst_0$207=caml_string_of_jsbytes("0"), - cst_29872=caml_string_of_jsbytes("29872"), - cst_35819=caml_string_of_jsbytes("35819"), - cst_1$137=caml_string_of_jsbytes("1"), - cst_5947=caml_string_of_jsbytes("5947"), - cst_41767=caml_string_of_jsbytes("41767"), - cst_0$202=caml_string_of_jsbytes("0"), - cst_28861=caml_string_of_jsbytes("28861"), - cst_34829$0=caml_string_of_jsbytes("34829"), - cst_1$132=caml_string_of_jsbytes("1"), - cst_5968=caml_string_of_jsbytes("5968"), - cst_40796=caml_string_of_jsbytes("40796"), - cst_0$203=caml_string_of_jsbytes("0"), - cst_25728=caml_string_of_jsbytes("25728"), - cst_30987=caml_string_of_jsbytes("30987"), - cst_1$133=caml_string_of_jsbytes("1"), - cst_5258=caml_string_of_jsbytes("5258"), - cst_36244=caml_string_of_jsbytes("36244"), - cst_0$204=caml_string_of_jsbytes("0"), - cst_24027=caml_string_of_jsbytes("24027"), - cst_28824=caml_string_of_jsbytes("28824"), - cst_1$134=caml_string_of_jsbytes("1"), - cst_4799=caml_string_of_jsbytes("4799"), - cst_33623=caml_string_of_jsbytes("33623"), - cst_0$199=caml_string_of_jsbytes("0"), - cst_36626=caml_string_of_jsbytes("36626"), - cst_44185=caml_string_of_jsbytes("44185"), - cst_1$129=caml_string_of_jsbytes("1"), - cst_7558=caml_string_of_jsbytes("7558"), - cst_51744=caml_string_of_jsbytes("51744"), - cst_0$200=caml_string_of_jsbytes("0"), - cst_32686=caml_string_of_jsbytes("32686"), - cst_39340=caml_string_of_jsbytes("39340"), - cst_1$130=caml_string_of_jsbytes("1"), - cst_6655=caml_string_of_jsbytes("6655"), - cst_45997=caml_string_of_jsbytes("45997"), - cst_0$201=caml_string_of_jsbytes("0"), - cst_30514=caml_string_of_jsbytes("30514"), - cst_36589=caml_string_of_jsbytes("36589"), - cst_1$131=caml_string_of_jsbytes("1"), - cst_6075=caml_string_of_jsbytes("6075"), - cst_42665=caml_string_of_jsbytes("42665"), - cst_0$196=caml_string_of_jsbytes("0"), - cst_29482=caml_string_of_jsbytes("29482"), - cst_35578=caml_string_of_jsbytes("35578"), - cst_1$126=caml_string_of_jsbytes("1"), - cst_6096=caml_string_of_jsbytes("6096"), - cst_41673=caml_string_of_jsbytes("41673"), - cst_0$197=caml_string_of_jsbytes("0"), - cst_26281=caml_string_of_jsbytes("26281"), - cst_31653=caml_string_of_jsbytes("31653"), - cst_1$127=caml_string_of_jsbytes("1"), - cst_5371=caml_string_of_jsbytes("5371"), - cst_37023=caml_string_of_jsbytes("37023"), - cst_0$198=caml_string_of_jsbytes("0"), - cst_24544=caml_string_of_jsbytes("24544"), - cst_29444=caml_string_of_jsbytes("29444"), - cst_1$128=caml_string_of_jsbytes("1"), - cst_4902=caml_string_of_jsbytes("4902"), - cst_34346=caml_string_of_jsbytes("34346"), - cst_0$193=caml_string_of_jsbytes("0"), - cst_36835=caml_string_of_jsbytes("36835"), - cst_44437=caml_string_of_jsbytes("44437"), - cst_1$123=caml_string_of_jsbytes("1"), - cst_7601=caml_string_of_jsbytes("7601"), - cst_52039=caml_string_of_jsbytes("52039"), - cst_0$194=caml_string_of_jsbytes("0"), - cst_32872=caml_string_of_jsbytes("32872"), - cst_39564=caml_string_of_jsbytes("39564"), - cst_1$124=caml_string_of_jsbytes("1"), - cst_6693=caml_string_of_jsbytes("6693"), - cst_46259=caml_string_of_jsbytes("46259"), - cst_0$195=caml_string_of_jsbytes("0"), - cst_30688=caml_string_of_jsbytes("30688"), - cst_36798=caml_string_of_jsbytes("36798"), - cst_1$125=caml_string_of_jsbytes("1"), - cst_6110=caml_string_of_jsbytes("6110"), - cst_42908=caml_string_of_jsbytes("42908"), - cst_0$190=caml_string_of_jsbytes("0"), - cst_29650=caml_string_of_jsbytes("29650"), - cst_35781=caml_string_of_jsbytes("35781"), - cst_1$120=caml_string_of_jsbytes("1"), - cst_6131=caml_string_of_jsbytes("6131"), - cst_41911=caml_string_of_jsbytes("41911"), - cst_0$191=caml_string_of_jsbytes("0"), - cst_26431=caml_string_of_jsbytes("26431"), - cst_31833=caml_string_of_jsbytes("31833"), - cst_1$121=caml_string_of_jsbytes("1"), - cst_5402=caml_string_of_jsbytes("5402"), - cst_37234=caml_string_of_jsbytes("37234"), - cst_0$192=caml_string_of_jsbytes("0"), - cst_24684=caml_string_of_jsbytes("24684"), - cst_29612=caml_string_of_jsbytes("29612"), - cst_1$122=caml_string_of_jsbytes("1"), - cst_4930=caml_string_of_jsbytes("4930"), - cst_34542=caml_string_of_jsbytes("34542"), - cst_0$187=caml_string_of_jsbytes("0"), - cst_36864=caml_string_of_jsbytes("36864"), - cst_44473=caml_string_of_jsbytes("44473"), - cst_1$117=caml_string_of_jsbytes("1"), - cst_7607=caml_string_of_jsbytes("7607"), - cst_52081=caml_string_of_jsbytes("52081"), - cst_0$188=caml_string_of_jsbytes("0"), - cst_32898=caml_string_of_jsbytes("32898"), - cst_39596=caml_string_of_jsbytes("39596"), - cst_1$118=caml_string_of_jsbytes("1"), - cst_6698=caml_string_of_jsbytes("6698"), - cst_46296=caml_string_of_jsbytes("46296"), - cst_0$189=caml_string_of_jsbytes("0"), - cst_30713=caml_string_of_jsbytes("30713"), - cst_36827=caml_string_of_jsbytes("36827"), - cst_1$119=caml_string_of_jsbytes("1"), - cst_6115=caml_string_of_jsbytes("6115"), - cst_42942=caml_string_of_jsbytes("42942"), - cst_0$184=caml_string_of_jsbytes("0"), - cst_29674=caml_string_of_jsbytes("29674"), - cst_35810=caml_string_of_jsbytes("35810"), - cst_1$114=caml_string_of_jsbytes("1"), - cst_6136=caml_string_of_jsbytes("6136"), - cst_41945=caml_string_of_jsbytes("41945"), - cst_0$185=caml_string_of_jsbytes("0"), - cst_26452=caml_string_of_jsbytes("26452"), - cst_31858=caml_string_of_jsbytes("31858"), - cst_1$115=caml_string_of_jsbytes("1"), - cst_5406=caml_string_of_jsbytes("5406"), - cst_37264=caml_string_of_jsbytes("37264"), - cst_0$186=caml_string_of_jsbytes("0"), - cst_24704=caml_string_of_jsbytes("24704"), - cst_29636=caml_string_of_jsbytes("29636"), - cst_1$116=caml_string_of_jsbytes("1"), - cst_4934=caml_string_of_jsbytes("4934"), - cst_34570=caml_string_of_jsbytes("34570"), - cst_0$181=caml_string_of_jsbytes("0"), - cst_37140=caml_string_of_jsbytes("37140"), - cst_44807=caml_string_of_jsbytes("44807"), - cst_1$111=caml_string_of_jsbytes("1"), - cst_7664=caml_string_of_jsbytes("7664"), - cst_52472=caml_string_of_jsbytes("52472"), - cst_0$182=caml_string_of_jsbytes("0"), - cst_33145=caml_string_of_jsbytes("33145"), - cst_39893=caml_string_of_jsbytes("39893"), - cst_1$112=caml_string_of_jsbytes("1"), - cst_6748=caml_string_of_jsbytes("6748"), - cst_46643=caml_string_of_jsbytes("46643"), - cst_0$183=caml_string_of_jsbytes("0"), - cst_30943=caml_string_of_jsbytes("30943"), - cst_37103=caml_string_of_jsbytes("37103"), - cst_1$113=caml_string_of_jsbytes("1"), - cst_6161=caml_string_of_jsbytes("6161"), - cst_43264=caml_string_of_jsbytes("43264"), - cst_0$178=caml_string_of_jsbytes("0"), - cst_29897=caml_string_of_jsbytes("29897"), - cst_36079=caml_string_of_jsbytes("36079"), - cst_1$108=caml_string_of_jsbytes("1"), - cst_6182=caml_string_of_jsbytes("6182"), - cst_42260=caml_string_of_jsbytes("42260"), - cst_0$179=caml_string_of_jsbytes("0"), - cst_26650=caml_string_of_jsbytes("26650"), - cst_32097=caml_string_of_jsbytes("32097"), - cst_1$109=caml_string_of_jsbytes("1"), - cst_5447=caml_string_of_jsbytes("5447"), - cst_37543=caml_string_of_jsbytes("37543"), - cst_0$180=caml_string_of_jsbytes("0"), - cst_24889=caml_string_of_jsbytes("24889"), - cst_29858=caml_string_of_jsbytes("29858"), - cst_1$110=caml_string_of_jsbytes("1"), - cst_4971=caml_string_of_jsbytes("4971"), - cst_34829=caml_string_of_jsbytes("34829"), - cst_0$175=caml_string_of_jsbytes("0"), - cst_37252=caml_string_of_jsbytes("37252"), - cst_44941=caml_string_of_jsbytes("44941"), - cst_1$105=caml_string_of_jsbytes("1"), - cst_7687=caml_string_of_jsbytes("7687"), - cst_52629=caml_string_of_jsbytes("52629"), - cst_0$176=caml_string_of_jsbytes("0"), - cst_33244=caml_string_of_jsbytes("33244"), - cst_40013=caml_string_of_jsbytes("40013"), - cst_1$106=caml_string_of_jsbytes("1"), - cst_6768=caml_string_of_jsbytes("6768"), - cst_46783=caml_string_of_jsbytes("46783"), - cst_0$177=caml_string_of_jsbytes("0"), - cst_31036=caml_string_of_jsbytes("31036"), - cst_37215=caml_string_of_jsbytes("37215"), - cst_1$107=caml_string_of_jsbytes("1"), - cst_6179=caml_string_of_jsbytes("6179"), - cst_43394=caml_string_of_jsbytes("43394"), - cst_0$172=caml_string_of_jsbytes("0"), - cst_29986=caml_string_of_jsbytes("29986"), - cst_36187=caml_string_of_jsbytes("36187"), - cst_1$102=caml_string_of_jsbytes("1"), - cst_6201=caml_string_of_jsbytes("6201"), - cst_42386=caml_string_of_jsbytes("42386"), - cst_0$173=caml_string_of_jsbytes("0"), - cst_26730=caml_string_of_jsbytes("26730"), - cst_32193=caml_string_of_jsbytes("32193"), - cst_1$103=caml_string_of_jsbytes("1"), - cst_5463=caml_string_of_jsbytes("5463"), - cst_37656=caml_string_of_jsbytes("37656"), - cst_0$174=caml_string_of_jsbytes("0"), - cst_24964=caml_string_of_jsbytes("24964"), - cst_29948=caml_string_of_jsbytes("29948"), - cst_1$104=caml_string_of_jsbytes("1"), - cst_4986=caml_string_of_jsbytes("4986"), - cst_34934=caml_string_of_jsbytes("34934"), - cst_0$169=caml_string_of_jsbytes("0"), - cst_208500=caml_string_of_jsbytes("208500"), - cst_251500=caml_string_of_jsbytes("251500"), - cst_1$99=caml_string_of_jsbytes("1"), - cst_43000=caml_string_of_jsbytes("43000"), - cst_294500=caml_string_of_jsbytes("294500"), - cst_0$170=caml_string_of_jsbytes("0"), - cst_186000=caml_string_of_jsbytes("186000"), - cst_223900=caml_string_of_jsbytes("223900"), - cst_1$100=caml_string_of_jsbytes("1"), - cst_37900=caml_string_of_jsbytes("37900"), - cst_261800=caml_string_of_jsbytes("261800"), - cst_0$171=caml_string_of_jsbytes("0"), - cst_173600=caml_string_of_jsbytes("173600"), - cst_208200=caml_string_of_jsbytes("208200"), - cst_1$101=caml_string_of_jsbytes("1"), - cst_35600=caml_string_of_jsbytes("35600"), - cst_242800=caml_string_of_jsbytes("242800"), - cst_0$166=caml_string_of_jsbytes("0"), - cst_167800=caml_string_of_jsbytes("167800"), - cst_202500=caml_string_of_jsbytes("202500"), - cst_1$96=caml_string_of_jsbytes("1"), - cst_34700=caml_string_of_jsbytes("34700"), - cst_237200=caml_string_of_jsbytes("237200"), - cst_0$167=caml_string_of_jsbytes("0"), - cst_149600=caml_string_of_jsbytes("149600"), - cst_180100=caml_string_of_jsbytes("180100"), - cst_1$97=caml_string_of_jsbytes("1"), - cst_30500$1=caml_string_of_jsbytes("30500"), - cst_210600=caml_string_of_jsbytes("210600"), - cst_0$168=caml_string_of_jsbytes("0"), - cst_139700=caml_string_of_jsbytes("139700"), - cst_167600=caml_string_of_jsbytes("167600"), - cst_1$98=caml_string_of_jsbytes("1"), - cst_27900=caml_string_of_jsbytes("27900"), - cst_195500=caml_string_of_jsbytes("195500"), - cst_0$163=caml_string_of_jsbytes("0"), - cst_184000=caml_string_of_jsbytes("184000"), - cst_220000=caml_string_of_jsbytes("220000"), - cst_1$93=caml_string_of_jsbytes("1"), - cst_38000=caml_string_of_jsbytes("38000"), - cst_260000=caml_string_of_jsbytes("260000"), - cst_0$164=caml_string_of_jsbytes("0"), - cst_164200=caml_string_of_jsbytes("164200"), - cst_197700=caml_string_of_jsbytes("197700"), - cst_1$94=caml_string_of_jsbytes("1"), - cst_33500=caml_string_of_jsbytes("33500"), - cst_231200=caml_string_of_jsbytes("231200"), - cst_0$165=caml_string_of_jsbytes("0"), - cst_153200=caml_string_of_jsbytes("153200"), - cst_183700=caml_string_of_jsbytes("183700"), - cst_1$95=caml_string_of_jsbytes("1"), - cst_30500$0=caml_string_of_jsbytes("30500"), - cst_214200=caml_string_of_jsbytes("214200"), - cst_0$160=caml_string_of_jsbytes("0"), - cst_148100=caml_string_of_jsbytes("148100"), - cst_178700=caml_string_of_jsbytes("178700"), - cst_1$90=caml_string_of_jsbytes("1"), - cst_30600=caml_string_of_jsbytes("30600"), - cst_209300=caml_string_of_jsbytes("209300"), - cst_0$161=caml_string_of_jsbytes("0"), - cst_132000=caml_string_of_jsbytes("132000"), - cst_158900=caml_string_of_jsbytes("158900"), - cst_1$91=caml_string_of_jsbytes("1"), - cst_26900=caml_string_of_jsbytes("26900"), - cst_185800=caml_string_of_jsbytes("185800"), - cst_0$162=caml_string_of_jsbytes("0"), - cst_123300=caml_string_of_jsbytes("123300"), - cst_147900=caml_string_of_jsbytes("147900"), - cst_1$92=caml_string_of_jsbytes("1"), - cst_24600=caml_string_of_jsbytes("24600"), - cst_172500=caml_string_of_jsbytes("172500"), - cst_0$158=caml_string_of_jsbytes("0"), - cst_0$159=caml_string_of_jsbytes("0"), - cst_1272$2=caml_string_of_jsbytes("1272"), - cst_2805$0=caml_string_of_jsbytes("2805"), - cst_5612$2=caml_string_of_jsbytes("5612"), - cst_1229$2=caml_string_of_jsbytes("1229"), - cst_2710$0=caml_string_of_jsbytes("2710"), - cst_5422$2=caml_string_of_jsbytes("5422"), - cst_1224$2=caml_string_of_jsbytes("1224"), - cst_2699$0=caml_string_of_jsbytes("2699"), - cst_5399$2=caml_string_of_jsbytes("5399"), - cst_1272$1=caml_string_of_jsbytes("1272"), - cst_5612$1=caml_string_of_jsbytes("5612"), - cst_1229$1=caml_string_of_jsbytes("1229"), - cst_5422$1=caml_string_of_jsbytes("5422"), - cst_1224$1=caml_string_of_jsbytes("1224"), - cst_5399$1=caml_string_of_jsbytes("5399"), - cst_0_0226=caml_string_of_jsbytes("0.0226"), - cst_0_0234=caml_string_of_jsbytes("0.0234"), - cst_0_0172=caml_string_of_jsbytes("0.0172"), - cst_0_0226$0=caml_string_of_jsbytes("0.0226"), - cst_0_0234$0=caml_string_of_jsbytes("0.0234"), - cst_6_55957=caml_string_of_jsbytes("6.55957"), - cst_1$89=caml_string_of_jsbytes("1."), - cst_0_416=caml_string_of_jsbytes("0.416"), - cst_0_208$0=caml_string_of_jsbytes("0.208"), - cst_560085=caml_string_of_jsbytes("560085"), - cst_16_25=caml_string_of_jsbytes("16.25"), - cst_2211133=caml_string_of_jsbytes("2211133"), - cst_1000$2=caml_string_of_jsbytes("1000"), - cst_500$1=caml_string_of_jsbytes("500"), - cst_0$157=caml_string_of_jsbytes("0"), - cst_0$155=caml_string_of_jsbytes("0"), - cst_0$156=caml_string_of_jsbytes("0"), - cst_50$0=caml_string_of_jsbytes("50"), - cst_0$153=caml_string_of_jsbytes("0"), - cst_0$154=caml_string_of_jsbytes("0"), - cst_0_9$1=caml_string_of_jsbytes("0.9"), - cst_0_9$2=caml_string_of_jsbytes("0.9"), - cst_0_95$0=caml_string_of_jsbytes("0.95"), - cst_0_95$1=caml_string_of_jsbytes("0.95"), - cst_0$151=caml_string_of_jsbytes("0"), - cst_0$152=caml_string_of_jsbytes("0"), - cst_100$8=caml_string_of_jsbytes("100."), - cst_100$9=caml_string_of_jsbytes("100."), - cst_0_005$1=caml_string_of_jsbytes("0.005"), - cst_100$6=caml_string_of_jsbytes("100."), - cst_100$7=caml_string_of_jsbytes("100."), - cst_0_005$0=caml_string_of_jsbytes("0.005"), - cst_0$150=caml_string_of_jsbytes("0"), - cst_0_9$0=caml_string_of_jsbytes("0.9"), - cst_0$148=caml_string_of_jsbytes("0"), - cst_0$149=caml_string_of_jsbytes("0"), - cst_0_95=caml_string_of_jsbytes("0.95"), - cst_2142091=caml_string_of_jsbytes("2142091"), - cst_1339340=caml_string_of_jsbytes("1339340"), - cst_1500=caml_string_of_jsbytes("1500"), - cst_2668=caml_string_of_jsbytes("2668"), - cst_0$146=caml_string_of_jsbytes("0"), - cst_0$147=caml_string_of_jsbytes("0"), - cst_0$143=caml_string_of_jsbytes("0"), - cst_46192=caml_string_of_jsbytes("46192"), - cst_54152=caml_string_of_jsbytes("54152"), - cst_1$86=caml_string_of_jsbytes("1"), - cst_57741=caml_string_of_jsbytes("57741"), - cst_2$43=caml_string_of_jsbytes("2"), - cst_61794=caml_string_of_jsbytes("61794"), - cst_3$28=caml_string_of_jsbytes("3"), - cst_65862=caml_string_of_jsbytes("65862"), - cst_4$26=caml_string_of_jsbytes("4"), - cst_7368=caml_string_of_jsbytes("7368"), - cst_71039=caml_string_of_jsbytes("71039"), - cst_0$144=caml_string_of_jsbytes("0"), - cst_42242=caml_string_of_jsbytes("42242"), - cst_49299=caml_string_of_jsbytes("49299"), - cst_1$87=caml_string_of_jsbytes("1"), - cst_52565=caml_string_of_jsbytes("52565"), - cst_2$44=caml_string_of_jsbytes("2"), - cst_56268=caml_string_of_jsbytes("56268"), - cst_3$29=caml_string_of_jsbytes("3"), - cst_59957=caml_string_of_jsbytes("59957"), - cst_4$27=caml_string_of_jsbytes("4"), - cst_6659=caml_string_of_jsbytes("6659"), - cst_63887=caml_string_of_jsbytes("63887"), - cst_0$145=caml_string_of_jsbytes("0"), - cst_40096=caml_string_of_jsbytes("40096"), - cst_46634=caml_string_of_jsbytes("46634"), - cst_1$88=caml_string_of_jsbytes("1"), - cst_49475=caml_string_of_jsbytes("49475"), - cst_2$45=caml_string_of_jsbytes("2"), - cst_52740=caml_string_of_jsbytes("52740"), - cst_3$30=caml_string_of_jsbytes("3"), - cst_56004=caml_string_of_jsbytes("56004"), - cst_4$28=caml_string_of_jsbytes("4"), - cst_6180=caml_string_of_jsbytes("6180"), - cst_59675=caml_string_of_jsbytes("59675"), - cst_0$140=caml_string_of_jsbytes("0"), - cst_44630=caml_string_of_jsbytes("44630"), - cst_52321=caml_string_of_jsbytes("52321"), - cst_1$83=caml_string_of_jsbytes("1"), - cst_55788=caml_string_of_jsbytes("55788"), - cst_2$40=caml_string_of_jsbytes("2"), - cst_59704=caml_string_of_jsbytes("59704"), - cst_3$25=caml_string_of_jsbytes("3"), - cst_63635=caml_string_of_jsbytes("63635"), - cst_4$23=caml_string_of_jsbytes("4"), - cst_7119=caml_string_of_jsbytes("7119"), - cst_68637=caml_string_of_jsbytes("68637"), - cst_0$141=caml_string_of_jsbytes("0"), - cst_40814=caml_string_of_jsbytes("40814"), - cst_47632=caml_string_of_jsbytes("47632"), - cst_1$84=caml_string_of_jsbytes("1"), - cst_50787=caml_string_of_jsbytes("50787"), - cst_2$41=caml_string_of_jsbytes("2"), - cst_54365=caml_string_of_jsbytes("54365"), - cst_3$26=caml_string_of_jsbytes("3"), - cst_57929=caml_string_of_jsbytes("57929"), - cst_4$24=caml_string_of_jsbytes("4"), - cst_6434=caml_string_of_jsbytes("6434"), - cst_61727=caml_string_of_jsbytes("61727"), - cst_0$142=caml_string_of_jsbytes("0"), - cst_38740=caml_string_of_jsbytes("38740"), - cst_45057=caml_string_of_jsbytes("45057"), - cst_1$85=caml_string_of_jsbytes("1"), - cst_47802=caml_string_of_jsbytes("47802"), - cst_2$42=caml_string_of_jsbytes("2"), - cst_50957=caml_string_of_jsbytes("50957"), - cst_3$27=caml_string_of_jsbytes("3"), - cst_54110=caml_string_of_jsbytes("54110"), - cst_4$25=caml_string_of_jsbytes("4"), - cst_5971=caml_string_of_jsbytes("5971"), - cst_57657=caml_string_of_jsbytes("57657"), - cst_0$137=caml_string_of_jsbytes("0"), - cst_44443=caml_string_of_jsbytes("44443"), - cst_52101=caml_string_of_jsbytes("52101"), - cst_1$80=caml_string_of_jsbytes("1"), - cst_55555=caml_string_of_jsbytes("55555"), - cst_2$37=caml_string_of_jsbytes("2"), - cst_59454=caml_string_of_jsbytes("59454"), - cst_3$22=caml_string_of_jsbytes("3"), - cst_63369=caml_string_of_jsbytes("63369"), - cst_4$20=caml_string_of_jsbytes("4"), - cst_7089=caml_string_of_jsbytes("7089"), - cst_68350=caml_string_of_jsbytes("68350"), - cst_0$138=caml_string_of_jsbytes("0"), - cst_40643=caml_string_of_jsbytes("40643"), - cst_47433=caml_string_of_jsbytes("47433"), - cst_1$81=caml_string_of_jsbytes("1"), - cst_50575=caml_string_of_jsbytes("50575"), - cst_2$38=caml_string_of_jsbytes("2"), - cst_54138=caml_string_of_jsbytes("54138"), - cst_3$23=caml_string_of_jsbytes("3"), - cst_57687=caml_string_of_jsbytes("57687"), - cst_4$21=caml_string_of_jsbytes("4"), - cst_6407=caml_string_of_jsbytes("6407"), - cst_61469=caml_string_of_jsbytes("61469"), - cst_0$139=caml_string_of_jsbytes("0"), - cst_38578=caml_string_of_jsbytes("38578"), - cst_44869=caml_string_of_jsbytes("44869"), - cst_1$82=caml_string_of_jsbytes("1"), - cst_47602=caml_string_of_jsbytes("47602"), - cst_2$39=caml_string_of_jsbytes("2"), - cst_50744=caml_string_of_jsbytes("50744"), - cst_3$24=caml_string_of_jsbytes("3"), - cst_53884=caml_string_of_jsbytes("53884"), - cst_4$22=caml_string_of_jsbytes("4"), - cst_5946=caml_string_of_jsbytes("5946"), - cst_57416=caml_string_of_jsbytes("57416"), - cst_1000$1=caml_string_of_jsbytes("1000"), - cst_500$0=caml_string_of_jsbytes("500"), - cst_121726=caml_string_of_jsbytes("121726"), - cst_0$134=caml_string_of_jsbytes("0"), - cst_0$135=caml_string_of_jsbytes("0"), - cst_0$132=caml_string_of_jsbytes("0"), - cst_0$133=caml_string_of_jsbytes("0"), - cst_0$131=caml_string_of_jsbytes("0"), - cst_0$129=caml_string_of_jsbytes("0"), - cst_0$130=caml_string_of_jsbytes("0"), - cst_100000$3=caml_string_of_jsbytes("100000."), - cst_100000$4=caml_string_of_jsbytes("100000."), - cst_100000$1=caml_string_of_jsbytes("100000."), - cst_100000$2=caml_string_of_jsbytes("100000."), - cst_100000=caml_string_of_jsbytes("100000."), - cst_100000$0=caml_string_of_jsbytes("100000."), - cst_50=caml_string_of_jsbytes("50"), - cst_0$127=caml_string_of_jsbytes("0"), - cst_0$128=caml_string_of_jsbytes("0"), - cst_0_45$3=caml_string_of_jsbytes("0.45"), - cst_0$125=caml_string_of_jsbytes("0."), - cst_0_75$5=caml_string_of_jsbytes("0.75"), - cst_0_45$4=caml_string_of_jsbytes("0.45"), - cst_0_0045$5=caml_string_of_jsbytes("0.0045"), - cst_0_0045$6=caml_string_of_jsbytes("0.0045"), - cst_0_75$6=caml_string_of_jsbytes("0.75"), - cst_0_75$7=caml_string_of_jsbytes("0.75"), - cst_0_0068$1=caml_string_of_jsbytes("0.0068"), - cst_0_3$1=caml_string_of_jsbytes("0.3"), - cst_0_0045$7=caml_string_of_jsbytes("0.0045"), - cst_0$126=caml_string_of_jsbytes("0."), - cst_0_45$1=caml_string_of_jsbytes("0.45"), - cst_0$123=caml_string_of_jsbytes("0."), - cst_0_75$2=caml_string_of_jsbytes("0.75"), - cst_0_45$2=caml_string_of_jsbytes("0.45"), - cst_0_0045$2=caml_string_of_jsbytes("0.0045"), - cst_0_0045$3=caml_string_of_jsbytes("0.0045"), - cst_0_75$3=caml_string_of_jsbytes("0.75"), - cst_0_75$4=caml_string_of_jsbytes("0.75"), - cst_0_0068$0=caml_string_of_jsbytes("0.0068"), - cst_0_3$0=caml_string_of_jsbytes("0.3"), - cst_0_0045$4=caml_string_of_jsbytes("0.0045"), - cst_0$124=caml_string_of_jsbytes("0."), - cst_0_45=caml_string_of_jsbytes("0.45"), - cst_0$121=caml_string_of_jsbytes("0."), - cst_0_75=caml_string_of_jsbytes("0.75"), - cst_0_45$0=caml_string_of_jsbytes("0.45"), - cst_0_0045=caml_string_of_jsbytes("0.0045"), - cst_0_0045$0=caml_string_of_jsbytes("0.0045"), - cst_0_75$0=caml_string_of_jsbytes("0.75"), - cst_0_75$1=caml_string_of_jsbytes("0.75"), - cst_0_0068=caml_string_of_jsbytes("0.0068"), - cst_0_3=caml_string_of_jsbytes("0.3"), - cst_0_0045$1=caml_string_of_jsbytes("0.0045"), - cst_0$122=caml_string_of_jsbytes("0."), - cst_0$119=caml_string_of_jsbytes("0"), - cst_0$120=caml_string_of_jsbytes("0"), - cst_100$4=caml_string_of_jsbytes("100."), - cst_100$5=caml_string_of_jsbytes("100."), - cst_100$2=caml_string_of_jsbytes("100."), - cst_100$3=caml_string_of_jsbytes("100."), - cst_100$0=caml_string_of_jsbytes("100."), - cst_100$1=caml_string_of_jsbytes("100."), - cst_3663=caml_string_of_jsbytes("3663"), - cst_0_085$3=caml_string_of_jsbytes("0.085"), - cst_0_085$4=caml_string_of_jsbytes("0.085"), - cst_3663$0=caml_string_of_jsbytes("3663"), - cst_3539=caml_string_of_jsbytes("3539"), - cst_0_085$1=caml_string_of_jsbytes("0.085"), - cst_0_085$2=caml_string_of_jsbytes("0.085"), - cst_3539$0=caml_string_of_jsbytes("3539"), - cst_3524=caml_string_of_jsbytes("3524"), - cst_0_085=caml_string_of_jsbytes("0.085"), - cst_0_085$0=caml_string_of_jsbytes("0.085"), - cst_3524$0=caml_string_of_jsbytes("3524"), - cst_0$118=caml_string_of_jsbytes("0"), - cst_3_4=caml_string_of_jsbytes("3.4"), - cst_2_5$2=caml_string_of_jsbytes("2.5"), - cst_2_5$3=caml_string_of_jsbytes("2.5"), - cst_4$19=caml_string_of_jsbytes("4."), - cst_3_1=caml_string_of_jsbytes("3.1"), - cst_3_1$0=caml_string_of_jsbytes("3.1"), - cst_1$79=caml_string_of_jsbytes("1"), - cst_818100=caml_string_of_jsbytes("818100"), - cst_6$25=caml_string_of_jsbytes("6"), - cst_997500$1=caml_string_of_jsbytes("997500"), - cst_1$78=caml_string_of_jsbytes("1"), - cst_805100=caml_string_of_jsbytes("805100"), - cst_0$117=caml_string_of_jsbytes("0"), - cst_427400=caml_string_of_jsbytes("427400"), - cst_612200=caml_string_of_jsbytes("612200"), - cst_1$77=caml_string_of_jsbytes("1"), - cst_699000=caml_string_of_jsbytes("699000"), - cst_2$36=caml_string_of_jsbytes("2"), - cst_743200=caml_string_of_jsbytes("743200"), - cst_3$21=caml_string_of_jsbytes("3"), - cst_785400=caml_string_of_jsbytes("785400"), - cst_4$18=caml_string_of_jsbytes("4"), - cst_828300=caml_string_of_jsbytes("828300"), - cst_5$10=caml_string_of_jsbytes("5"), - cst_871100=caml_string_of_jsbytes("871100"), - cst_913900=caml_string_of_jsbytes("913900"), - cst_0$116=caml_string_of_jsbytes("0"), - cst_396000=caml_string_of_jsbytes("396000"), - cst_567300=caml_string_of_jsbytes("567300"), - cst_1$76=caml_string_of_jsbytes("1"), - cst_639600=caml_string_of_jsbytes("639600"), - cst_2$35=caml_string_of_jsbytes("2"), - cst_684900=caml_string_of_jsbytes("684900"), - cst_3$20=caml_string_of_jsbytes("3"), - cst_738600=caml_string_of_jsbytes("738600"), - cst_4$17=caml_string_of_jsbytes("4"), - cst_793500=caml_string_of_jsbytes("793500"), - cst_5$9=caml_string_of_jsbytes("5"), - cst_848400=caml_string_of_jsbytes("848400"), - cst_903200=caml_string_of_jsbytes("903200"), - cst_0$115=caml_string_of_jsbytes("0"), - cst_494900=caml_string_of_jsbytes("494900"), - cst_709000=caml_string_of_jsbytes("709000"), - cst_1$75=caml_string_of_jsbytes("1"), - cst_845600=caml_string_of_jsbytes("845600"), - cst_2$34=caml_string_of_jsbytes("2"), - cst_864600=caml_string_of_jsbytes("864600"), - cst_3$19=caml_string_of_jsbytes("3"), - cst_897700=caml_string_of_jsbytes("897700"), - cst_4$16=caml_string_of_jsbytes("4"), - cst_931100=caml_string_of_jsbytes("931100"), - cst_5$8=caml_string_of_jsbytes("5"), - cst_964200=caml_string_of_jsbytes("964200"), - cst_6$23=caml_string_of_jsbytes("6"), - cst_997500=caml_string_of_jsbytes("997500"), - cst_6$24=caml_string_of_jsbytes("6"), - cst_32800=caml_string_of_jsbytes("32800"), - cst_997500$0=caml_string_of_jsbytes("997500"), - cst_0$114=caml_string_of_jsbytes("0"), - cst_527200=caml_string_of_jsbytes("527200"), - cst_755200=caml_string_of_jsbytes("755200"), - cst_1$74=caml_string_of_jsbytes("1"), - cst_900800=caml_string_of_jsbytes("900800"), - cst_2$33=caml_string_of_jsbytes("2"), - cst_921100=caml_string_of_jsbytes("921100"), - cst_3$18=caml_string_of_jsbytes("3"), - cst_956300=caml_string_of_jsbytes("956300"), - cst_4$15=caml_string_of_jsbytes("4"), - cst_991900=caml_string_of_jsbytes("991900"), - cst_5$7=caml_string_of_jsbytes("5"), - cst_1027100=caml_string_of_jsbytes("1027100"), - cst_6$21=caml_string_of_jsbytes("6"), - cst_1062600=caml_string_of_jsbytes("1062600"), - cst_6$22=caml_string_of_jsbytes("6"), - cst_35000=caml_string_of_jsbytes("35000"), - cst_1062600$0=caml_string_of_jsbytes("1062600"), - cst_0$113=caml_string_of_jsbytes("0"), - cst_487000=caml_string_of_jsbytes("487000"), - cst_697700=caml_string_of_jsbytes("697700"), - cst_1$73=caml_string_of_jsbytes("1"), - cst_832200$0=caml_string_of_jsbytes("832200"), - cst_2$32=caml_string_of_jsbytes("2"), - cst_850900=caml_string_of_jsbytes("850900"), - cst_3$17=caml_string_of_jsbytes("3"), - cst_883400=caml_string_of_jsbytes("883400"), - cst_4$14=caml_string_of_jsbytes("4"), - cst_916300=caml_string_of_jsbytes("916300"), - cst_5$6=caml_string_of_jsbytes("5"), - cst_948800=caml_string_of_jsbytes("948800"), - cst_6$19=caml_string_of_jsbytes("6"), - cst_981600=caml_string_of_jsbytes("981600"), - cst_6$20=caml_string_of_jsbytes("6"), - cst_32300=caml_string_of_jsbytes("32300"), - cst_981600$0=caml_string_of_jsbytes("981600"), - cst_0$112=caml_string_of_jsbytes("0"), - cst_468300=caml_string_of_jsbytes("468300"), - cst_670900=caml_string_of_jsbytes("670900"), - cst_1$72=caml_string_of_jsbytes("1"), - cst_800200=caml_string_of_jsbytes("800200"), - cst_2$31=caml_string_of_jsbytes("2"), - cst_819200=caml_string_of_jsbytes("819200"), - cst_3$16=caml_string_of_jsbytes("3"), - cst_849500=caml_string_of_jsbytes("849500"), - cst_4$13=caml_string_of_jsbytes("4"), - cst_881100=caml_string_of_jsbytes("881100"), - cst_5$5=caml_string_of_jsbytes("5"), - cst_912400=caml_string_of_jsbytes("912400"), - cst_6$17=caml_string_of_jsbytes("6"), - cst_943900=caml_string_of_jsbytes("943900"), - cst_6$18=caml_string_of_jsbytes("6"), - cst_31100=caml_string_of_jsbytes("31100"), - cst_943900$0=caml_string_of_jsbytes("943900"), - cst_0$111=caml_string_of_jsbytes("0"), - cst_458800=caml_string_of_jsbytes("458800"), - cst_657200=caml_string_of_jsbytes("657200"), - cst_1$71=caml_string_of_jsbytes("1"), - cst_783900=caml_string_of_jsbytes("783900"), - cst_2$30=caml_string_of_jsbytes("2"), - cst_801500=caml_string_of_jsbytes("801500"), - cst_3$15=caml_string_of_jsbytes("3"), - cst_832200=caml_string_of_jsbytes("832200"), - cst_4$12=caml_string_of_jsbytes("4"), - cst_863100=caml_string_of_jsbytes("863100"), - cst_5$4=caml_string_of_jsbytes("5"), - cst_893800=caml_string_of_jsbytes("893800"), - cst_6$15=caml_string_of_jsbytes("6"), - cst_924600=caml_string_of_jsbytes("924600"), - cst_6$16=caml_string_of_jsbytes("6"), - cst_30500=caml_string_of_jsbytes("30500"), - cst_924600$0=caml_string_of_jsbytes("924600"), - cst_969$4=caml_string_of_jsbytes("969"), - cst_1938$1=caml_string_of_jsbytes("1938"), - cst_3767$4=caml_string_of_jsbytes("3767"), - cst_969$2=caml_string_of_jsbytes("969"), - cst_1938=caml_string_of_jsbytes("1938"), - cst_3767$3=caml_string_of_jsbytes("3767"), - cst_6$14=caml_string_of_jsbytes("6."), - cst_969$3=caml_string_of_jsbytes("969"), - cst_1938$0=caml_string_of_jsbytes("1938"), - cst_3767$2=caml_string_of_jsbytes("3767"), - cst_1272$0=caml_string_of_jsbytes("1272"), - cst_2805=caml_string_of_jsbytes("2805"), - cst_5612$0=caml_string_of_jsbytes("5612"), - cst_1229$0=caml_string_of_jsbytes("1229"), - cst_2710=caml_string_of_jsbytes("2710"), - cst_5422$0=caml_string_of_jsbytes("5422"), - cst_1224$0=caml_string_of_jsbytes("1224"), - cst_2699=caml_string_of_jsbytes("2699"), - cst_5399$0=caml_string_of_jsbytes("5399"), - cst_969$1=caml_string_of_jsbytes("969"), - cst_3767$1=caml_string_of_jsbytes("3767"), - cst_969=caml_string_of_jsbytes("969"), - cst_3767=caml_string_of_jsbytes("3767"), - cst_6$13=caml_string_of_jsbytes("6."), - cst_969$0=caml_string_of_jsbytes("969"), - cst_3767$0=caml_string_of_jsbytes("3767"), - cst_1272=caml_string_of_jsbytes("1272"), - cst_5612=caml_string_of_jsbytes("5612"), - cst_1229=caml_string_of_jsbytes("1229"), - cst_5422=caml_string_of_jsbytes("5422"), - cst_1224=caml_string_of_jsbytes("1224"), - cst_5399=caml_string_of_jsbytes("5399"), - cst_0$110=caml_string_of_jsbytes("0"), - cst_23138$0=caml_string_of_jsbytes("23138"), - cst_20165$0=caml_string_of_jsbytes("20165"), - cst_18900$0=caml_string_of_jsbytes("18900"), - cst_0$109=caml_string_of_jsbytes("0"), - cst_27905=caml_string_of_jsbytes("27905"), - cst_24683=caml_string_of_jsbytes("24683"), - cst_22911=caml_string_of_jsbytes("22911"), - cst_1$70=caml_string_of_jsbytes("1"), - cst_1$67=caml_string_of_jsbytes("1"), - cst_4576=caml_string_of_jsbytes("4576"), - cst_31539=caml_string_of_jsbytes("31539"), - cst_1$68=caml_string_of_jsbytes("1"), - cst_4043=caml_string_of_jsbytes("4043"), - cst_27774=caml_string_of_jsbytes("27774"), - cst_1$69=caml_string_of_jsbytes("1"), - cst_3682=caml_string_of_jsbytes("3682"), - cst_25689=caml_string_of_jsbytes("25689"), - cst_1$66=caml_string_of_jsbytes("1"), - cst_1$63=caml_string_of_jsbytes("1"), - cst_6101$0=caml_string_of_jsbytes("6101"), - cst_42052$0=caml_string_of_jsbytes("42052"), - cst_6$10=caml_string_of_jsbytes("6."), - cst_6101$1=caml_string_of_jsbytes("6101"), - cst_42052$1=caml_string_of_jsbytes("42052"), - cst_1$64=caml_string_of_jsbytes("1"), - cst_5390$1=caml_string_of_jsbytes("5390"), - cst_37032$1=caml_string_of_jsbytes("37032"), - cst_6$11=caml_string_of_jsbytes("6."), - cst_5390$2=caml_string_of_jsbytes("5390"), - cst_37032$2=caml_string_of_jsbytes("37032"), - cst_1$65=caml_string_of_jsbytes("1"), - cst_4909$0=caml_string_of_jsbytes("4909"), - cst_34252$0=caml_string_of_jsbytes("34252"), - cst_6$12=caml_string_of_jsbytes("6."), - cst_4909$1=caml_string_of_jsbytes("4909"), - cst_34252$1=caml_string_of_jsbytes("34252"), - cst_0$108=caml_string_of_jsbytes("0"), - cst_22355$0=caml_string_of_jsbytes("22355"), - cst_19484$0=caml_string_of_jsbytes("19484"), - cst_18261$0=caml_string_of_jsbytes("18261"), - cst_0$107=caml_string_of_jsbytes("0"), - cst_26962=caml_string_of_jsbytes("26962"), - cst_23848=caml_string_of_jsbytes("23848"), - cst_22136=caml_string_of_jsbytes("22136"), - cst_1$62=caml_string_of_jsbytes("1"), - cst_1$59=caml_string_of_jsbytes("1"), - cst_4421=caml_string_of_jsbytes("4421"), - cst_30473=caml_string_of_jsbytes("30473"), - cst_1$60=caml_string_of_jsbytes("1"), - cst_3906=caml_string_of_jsbytes("3906"), - cst_26835=caml_string_of_jsbytes("26835"), - cst_1$61=caml_string_of_jsbytes("1"), - cst_3557=caml_string_of_jsbytes("3557"), - cst_24821=caml_string_of_jsbytes("24821"), - cst_0$106=caml_string_of_jsbytes("0"), - cst_22262$0=caml_string_of_jsbytes("22262"), - cst_19402$0=caml_string_of_jsbytes("19402"), - cst_18185$0=caml_string_of_jsbytes("18185"), - cst_0$105=caml_string_of_jsbytes("0"), - cst_26849=caml_string_of_jsbytes("26849"), - cst_23748=caml_string_of_jsbytes("23748"), - cst_22044=caml_string_of_jsbytes("22044"), - cst_1$58=caml_string_of_jsbytes("1"), - cst_1$55=caml_string_of_jsbytes("1"), - cst_4403=caml_string_of_jsbytes("4403"), - cst_30345=caml_string_of_jsbytes("30345"), - cst_1$56=caml_string_of_jsbytes("1"), - cst_3890=caml_string_of_jsbytes("3890"), - cst_26723=caml_string_of_jsbytes("26723"), - cst_1$57=caml_string_of_jsbytes("1"), - cst_3542=caml_string_of_jsbytes("3542"), - cst_24717=caml_string_of_jsbytes("24717"), - cst_23138=caml_string_of_jsbytes("23138"), - cst_20165=caml_string_of_jsbytes("20165"), - cst_18900=caml_string_of_jsbytes("18900"), - cst_22355=caml_string_of_jsbytes("22355"), - cst_19484=caml_string_of_jsbytes("19484"), - cst_18261=caml_string_of_jsbytes("18261"), - cst_22262=caml_string_of_jsbytes("22262"), - cst_19402=caml_string_of_jsbytes("19402"), - cst_18185=caml_string_of_jsbytes("18185"), - cst_27765=caml_string_of_jsbytes("27765"), - cst_24198=caml_string_of_jsbytes("24198"), - cst_22680=caml_string_of_jsbytes("22680"), - cst_26826=caml_string_of_jsbytes("26826"), - cst_23380=caml_string_of_jsbytes("23380"), - cst_21913=caml_string_of_jsbytes("21913"), - cst_26714=caml_string_of_jsbytes("26714"), - cst_23282=caml_string_of_jsbytes("23282"), - cst_21821=caml_string_of_jsbytes("21821"), - cst_0$104=caml_string_of_jsbytes("0"), - cst_30850=caml_string_of_jsbytes("30850"), - cst_26887$0=caml_string_of_jsbytes("26887"), - cst_25200=caml_string_of_jsbytes("25200"), - cst_0$103=caml_string_of_jsbytes("0"), - cst_37207=caml_string_of_jsbytes("37207"), - cst_32910$0=caml_string_of_jsbytes("32910"), - cst_30548=caml_string_of_jsbytes("30548"), - cst_1$54=caml_string_of_jsbytes("1"), - cst_1$51=caml_string_of_jsbytes("1"), - cst_6101=caml_string_of_jsbytes("6101"), - cst_42052=caml_string_of_jsbytes("42052"), - cst_1$52=caml_string_of_jsbytes("1"), - cst_5390$0=caml_string_of_jsbytes("5390"), - cst_37032$0=caml_string_of_jsbytes("37032"), - cst_1$53=caml_string_of_jsbytes("1"), - cst_4909=caml_string_of_jsbytes("4909"), - cst_34252=caml_string_of_jsbytes("34252"), - cst_0$102=caml_string_of_jsbytes("0"), - cst_29807=caml_string_of_jsbytes("29807"), - cst_25978$1=caml_string_of_jsbytes("25978"), - cst_24348=caml_string_of_jsbytes("24348"), - cst_0$101=caml_string_of_jsbytes("0"), - cst_35949=caml_string_of_jsbytes("35949"), - cst_31797$1=caml_string_of_jsbytes("31797"), - cst_29515=caml_string_of_jsbytes("29515"), - cst_1$50=caml_string_of_jsbytes("1"), - cst_1$47=caml_string_of_jsbytes("1"), - cst_5895=caml_string_of_jsbytes("5895"), - cst_40630=caml_string_of_jsbytes("40630"), - cst_1$48=caml_string_of_jsbytes("1"), - cst_5208$2=caml_string_of_jsbytes("5208"), - cst_35780$2=caml_string_of_jsbytes("35780"), - cst_1$49=caml_string_of_jsbytes("1"), - cst_4743=caml_string_of_jsbytes("4743"), - cst_33094=caml_string_of_jsbytes("33094"), - cst_0$100=caml_string_of_jsbytes("0"), - cst_29682=caml_string_of_jsbytes("29682"), - cst_25859=caml_string_of_jsbytes("25859"), - cst_24246=caml_string_of_jsbytes("24246"), - cst_0$99=caml_string_of_jsbytes("0"), - cst_35799=caml_string_of_jsbytes("35799"), - cst_31664$0=caml_string_of_jsbytes("31664"), - cst_29392=caml_string_of_jsbytes("29392"), - cst_1$46=caml_string_of_jsbytes("1"), - cst_1$43=caml_string_of_jsbytes("1"), - cst_5870=caml_string_of_jsbytes("5870"), - cst_40460=caml_string_of_jsbytes("40460"), - cst_1$44=caml_string_of_jsbytes("1"), - cst_5186$0=caml_string_of_jsbytes("5186"), - cst_35630$0=caml_string_of_jsbytes("35630"), - cst_1$45=caml_string_of_jsbytes("1"), - cst_4723=caml_string_of_jsbytes("4723"), - cst_32956=caml_string_of_jsbytes("32956"), - cst_0$98=caml_string_of_jsbytes("0"), - cst_0_0281$0=caml_string_of_jsbytes("0.0281"), - cst_0_0299$0=caml_string_of_jsbytes("0.0299"), - cst_1$42=caml_string_of_jsbytes("1"), - cst_0_0238$3=caml_string_of_jsbytes("0.0238"), - cst_2$29=caml_string_of_jsbytes("2"), - cst_0_0217$0=caml_string_of_jsbytes("0.0217"), - cst_3$14=caml_string_of_jsbytes("3"), - cst_0_0194$0=caml_string_of_jsbytes("0.0194"), - cst_4$11=caml_string_of_jsbytes("4"), - cst_0_018$0=caml_string_of_jsbytes("0.018"), - cst_5$3=caml_string_of_jsbytes("5"), - cst_0_0169$0=caml_string_of_jsbytes("0.0169"), - cst_6$9=caml_string_of_jsbytes("6"), - cst_0_0162$0=caml_string_of_jsbytes("0.0162"), - cst_7=caml_string_of_jsbytes("7"), - cst_0_0167=caml_string_of_jsbytes("0.0167"), - cst_7$0=caml_string_of_jsbytes("7"), - cst_0_0006$2=caml_string_of_jsbytes("0.0006"), - cst_0_0167$0=caml_string_of_jsbytes("0.0167"), - cst_0$97=caml_string_of_jsbytes("0"), - cst_0_0281=caml_string_of_jsbytes("0.0281"), - cst_0_0299=caml_string_of_jsbytes("0.0299"), - cst_1$41=caml_string_of_jsbytes("1"), - cst_0_0238$2=caml_string_of_jsbytes("0.0238"), - cst_2$28=caml_string_of_jsbytes("2"), - cst_0_0217=caml_string_of_jsbytes("0.0217"), - cst_3$13=caml_string_of_jsbytes("3"), - cst_0_0194=caml_string_of_jsbytes("0.0194"), - cst_4$10=caml_string_of_jsbytes("4"), - cst_0_018=caml_string_of_jsbytes("0.018"), - cst_5$2=caml_string_of_jsbytes("5"), - cst_0_0169=caml_string_of_jsbytes("0.0169"), - cst_0_0162=caml_string_of_jsbytes("0.0162"), - cst_0$96=caml_string_of_jsbytes("0"), - cst_0_0283$1=caml_string_of_jsbytes("0.0283"), - cst_0_0315$1=caml_string_of_jsbytes("0.0315"), - cst_1$40=caml_string_of_jsbytes("1"), - cst_0_027$1=caml_string_of_jsbytes("0.027"), - cst_2$27=caml_string_of_jsbytes("2"), - cst_0_0238$1=caml_string_of_jsbytes("0.0238"), - cst_3$12=caml_string_of_jsbytes("3"), - cst_0_0201$1=caml_string_of_jsbytes("0.0201"), - cst_4$9=caml_string_of_jsbytes("4"), - cst_0_0185$1=caml_string_of_jsbytes("0.0185"), - cst_5$1=caml_string_of_jsbytes("5"), - cst_0_0179$1=caml_string_of_jsbytes("0.0179"), - cst_6$7=caml_string_of_jsbytes("6"), - cst_0_0173$3=caml_string_of_jsbytes("0.0173"), - cst_6$8=caml_string_of_jsbytes("6"), - cst_0_0006$1=caml_string_of_jsbytes("0.0006"), - cst_0_0173$4=caml_string_of_jsbytes("0.0173"), - cst_0$95=caml_string_of_jsbytes("0"), - cst_0_0283$0=caml_string_of_jsbytes("0.0283"), - cst_0_0315$0=caml_string_of_jsbytes("0.0315"), - cst_1$39=caml_string_of_jsbytes("1"), - cst_0_027$0=caml_string_of_jsbytes("0.027"), - cst_2$26=caml_string_of_jsbytes("2"), - cst_0_0238$0=caml_string_of_jsbytes("0.0238"), - cst_3$11=caml_string_of_jsbytes("3"), - cst_0_0201$0=caml_string_of_jsbytes("0.0201"), - cst_4$8=caml_string_of_jsbytes("4"), - cst_0_0185$0=caml_string_of_jsbytes("0.0185"), - cst_5$0=caml_string_of_jsbytes("5"), - cst_0_0179$0=caml_string_of_jsbytes("0.0179"), - cst_6$5=caml_string_of_jsbytes("6"), - cst_0_0173$1=caml_string_of_jsbytes("0.0173"), - cst_6$6=caml_string_of_jsbytes("6"), - cst_0_0006$0=caml_string_of_jsbytes("0.0006"), - cst_0_0173$2=caml_string_of_jsbytes("0.0173"), - cst_0$94=caml_string_of_jsbytes("0"), - cst_0_0283=caml_string_of_jsbytes("0.0283"), - cst_0_0315=caml_string_of_jsbytes("0.0315"), - cst_1$38=caml_string_of_jsbytes("1"), - cst_0_027=caml_string_of_jsbytes("0.027"), - cst_2$25=caml_string_of_jsbytes("2"), - cst_0_0238=caml_string_of_jsbytes("0.0238"), - cst_3$10=caml_string_of_jsbytes("3"), - cst_0_0201=caml_string_of_jsbytes("0.0201"), - cst_4$7=caml_string_of_jsbytes("4"), - cst_0_0185=caml_string_of_jsbytes("0.0185"), - cst_5=caml_string_of_jsbytes("5"), - cst_0_0179=caml_string_of_jsbytes("0.0179"), - cst_6$3=caml_string_of_jsbytes("6"), - cst_0_0173=caml_string_of_jsbytes("0.0173"), - cst_6$4=caml_string_of_jsbytes("6"), - cst_0_0006=caml_string_of_jsbytes("0.0006"), - cst_0_0173$0=caml_string_of_jsbytes("0.0173"), - cst_3$9=caml_string_of_jsbytes("3."), - cst_2$24=caml_string_of_jsbytes("2."), - cst_0$93=caml_string_of_jsbytes("0"), - cst_1000=caml_string_of_jsbytes("1000"), - cst_1000$0=caml_string_of_jsbytes("1000"), - cst_0$92=caml_string_of_jsbytes("0"), - cst_25978$0=caml_string_of_jsbytes("25978"), - cst_31797$0=caml_string_of_jsbytes("31797"), - cst_1$37=caml_string_of_jsbytes("1"), - cst_5208$0=caml_string_of_jsbytes("5208"), - cst_35780$0=caml_string_of_jsbytes("35780"), - cst_6$2=caml_string_of_jsbytes("6."), - cst_5208$1=caml_string_of_jsbytes("5208"), - cst_35780$1=caml_string_of_jsbytes("35780"), - cst_0$91=caml_string_of_jsbytes("0"), - cst_26887=caml_string_of_jsbytes("26887"), - cst_32910=caml_string_of_jsbytes("32910"), - cst_1$36=caml_string_of_jsbytes("1"), - cst_5390=caml_string_of_jsbytes("5390"), - cst_37032=caml_string_of_jsbytes("37032"), - cst_0$90=caml_string_of_jsbytes("0"), - cst_25978=caml_string_of_jsbytes("25978"), - cst_31797=caml_string_of_jsbytes("31797"), - cst_1$35=caml_string_of_jsbytes("1"), - cst_5208=caml_string_of_jsbytes("5208"), - cst_35780=caml_string_of_jsbytes("35780"), - cst_0$89=caml_string_of_jsbytes("0"), - cst_25869=caml_string_of_jsbytes("25869"), - cst_31664=caml_string_of_jsbytes("31664"), - cst_1$34=caml_string_of_jsbytes("1"), - cst_5186=caml_string_of_jsbytes("5186"), - cst_35630=caml_string_of_jsbytes("35630"), - cst_500=caml_string_of_jsbytes("500"), - cst_0_98=caml_string_of_jsbytes("0.98"), - cst_2_5$4=caml_string_of_jsbytes("2.5"), - cst_0_98$0=caml_string_of_jsbytes("0.98"), - cst_0_9=caml_string_of_jsbytes("0.9"), - cst_0$136=caml_string_of_jsbytes("0"), - cst_0$88=caml_string_of_jsbytes("0"), - cst_100=caml_string_of_jsbytes("100."), - cst_49=caml_string_of_jsbytes("49"), - cst_0_01=caml_string_of_jsbytes("0.01"), - cst_1003$0=caml_string_of_jsbytes("1003"), - cst_757$0=caml_string_of_jsbytes("757"), - cst_1015$0=caml_string_of_jsbytes("1015"), - cst_766$0=caml_string_of_jsbytes("766"), - cst_1025$0=caml_string_of_jsbytes("1025"), - cst_774$0=caml_string_of_jsbytes("774"), - cst_1057$0=caml_string_of_jsbytes("1057"), - cst_798$0=caml_string_of_jsbytes("798"), - cst_1085$0=caml_string_of_jsbytes("1085"), - cst_819$0=caml_string_of_jsbytes("819"), - cst_1107$0=caml_string_of_jsbytes("1107"), - cst_835$0=caml_string_of_jsbytes("835"), - cst_1127$0=caml_string_of_jsbytes("1127"), - cst_851$0=caml_string_of_jsbytes("851"), - cst_41316$0=caml_string_of_jsbytes("41316"), - cst_41440$0=caml_string_of_jsbytes("41440"), - cst_41481$0=caml_string_of_jsbytes("41481"), - cst_42228$0=caml_string_of_jsbytes("42228"), - cst_0$87=caml_string_of_jsbytes("0"), - cst_0$86=caml_string_of_jsbytes("0"), - cst_0$84=caml_string_of_jsbytes("0"), - cst_0$85=caml_string_of_jsbytes("0"), - cst_2$23=caml_string_of_jsbytes("2."), - cst_0$82=caml_string_of_jsbytes("0"), - cst_0$83=caml_string_of_jsbytes("0"), - cst_2$22=caml_string_of_jsbytes("2."), - cst_6$1=caml_string_of_jsbytes("6."), - cst_1$33=caml_string_of_jsbytes("1."), - cst_2$21=caml_string_of_jsbytes("2."), - cst_0$81=caml_string_of_jsbytes("0"), - cst_6$0=caml_string_of_jsbytes("6."), - cst_1$32=caml_string_of_jsbytes("1."), - cst_2$20=caml_string_of_jsbytes("2."), - cst_0$80=caml_string_of_jsbytes("0"), - cst_12$13=caml_string_of_jsbytes("12."), - cst_1952=caml_string_of_jsbytes("1952"), - cst_1953=caml_string_of_jsbytes("1953"), - cst_1954=caml_string_of_jsbytes("1954"), - cst_0$79=caml_string_of_jsbytes("0"), - cst_1_4$0=caml_string_of_jsbytes("1.4"), - cst_1_8$0=caml_string_of_jsbytes("1.8"), - cst_1$31=caml_string_of_jsbytes("1"), - cst_2_5$1=caml_string_of_jsbytes("2.5"), - cst_2$19=caml_string_of_jsbytes("2"), - cst_3$7=caml_string_of_jsbytes("3."), - cst_3$8=caml_string_of_jsbytes("3"), - cst_3_7$1=caml_string_of_jsbytes("3.7"), - cst_4$5=caml_string_of_jsbytes("4"), - cst_4_3$1=caml_string_of_jsbytes("4.3"), - cst_4$6=caml_string_of_jsbytes("4"), - cst_0_5$4=caml_string_of_jsbytes("0.5"), - cst_4_3$2=caml_string_of_jsbytes("4.3"), - cst_6=caml_string_of_jsbytes("6"), - cst_1$30=caml_string_of_jsbytes("1."), - cst_4$3=caml_string_of_jsbytes("4"), - cst_4$4=caml_string_of_jsbytes("4"), - cst_0_5$3=caml_string_of_jsbytes("0.5"), - cst_0$78=caml_string_of_jsbytes("0."), - cst_4$1=caml_string_of_jsbytes("4"), - cst_4$2=caml_string_of_jsbytes("4"), - cst_0_5$2=caml_string_of_jsbytes("0.5"), - cst_0$77=caml_string_of_jsbytes("0."), - cst_4=caml_string_of_jsbytes("4"), - cst_4$0=caml_string_of_jsbytes("4"), - cst_0_5$1=caml_string_of_jsbytes("0.5"), - cst_0$76=caml_string_of_jsbytes("0."), - cst_0$75=caml_string_of_jsbytes("0"), - cst_1_2=caml_string_of_jsbytes("1.2"), - cst_1_5=caml_string_of_jsbytes("1.5"), - cst_1$29=caml_string_of_jsbytes("1"), - cst_2_5$0=caml_string_of_jsbytes("2.5"), - cst_2$18=caml_string_of_jsbytes("2"), - cst_3$5=caml_string_of_jsbytes("3."), - cst_3$6=caml_string_of_jsbytes("3"), - cst_3_7$0=caml_string_of_jsbytes("3.7"), - cst_4_3$0=caml_string_of_jsbytes("4.3"), - cst_0$74=caml_string_of_jsbytes("0"), - cst_1_4=caml_string_of_jsbytes("1.4"), - cst_1_8=caml_string_of_jsbytes("1.8"), - cst_1$28=caml_string_of_jsbytes("1"), - cst_2_5=caml_string_of_jsbytes("2.5"), - cst_2$17=caml_string_of_jsbytes("2"), - cst_3$3=caml_string_of_jsbytes("3."), - cst_3$4=caml_string_of_jsbytes("3"), - cst_3_7=caml_string_of_jsbytes("3.7"), - cst_4_3=caml_string_of_jsbytes("4.3"), - cst_0$72=caml_string_of_jsbytes("0."), - cst_12$12=caml_string_of_jsbytes("12."), - cst_0$73=caml_string_of_jsbytes("0."), - cst_0$70=caml_string_of_jsbytes("0."), - cst_12$11=caml_string_of_jsbytes("12."), - cst_0$71=caml_string_of_jsbytes("0."), - cst_0_328=caml_string_of_jsbytes("0.328"), - cst_409505=caml_string_of_jsbytes("409505"), - cst_0_232$0=caml_string_of_jsbytes("0.232"), - cst_262985=caml_string_of_jsbytes("262985"), - cst_409505$0=caml_string_of_jsbytes("409505"), - cst_0_208=caml_string_of_jsbytes("0.208"), - cst_204761=caml_string_of_jsbytes("204761"), - cst_262985$0=caml_string_of_jsbytes("262985"), - cst_0_024=caml_string_of_jsbytes("0.024"), - cst_142303=caml_string_of_jsbytes("142303"), - cst_204761$0=caml_string_of_jsbytes("204761"), - cst_0$68=caml_string_of_jsbytes("0."), - cst_0$69=caml_string_of_jsbytes("0"), - cst_142303$0=caml_string_of_jsbytes("142303"), - cst_0_48=caml_string_of_jsbytes("0.48"), - cst_633129=caml_string_of_jsbytes("633129"), - cst_0_32$1=caml_string_of_jsbytes("0.32"), - cst_535744=caml_string_of_jsbytes("535744"), - cst_633129$0=caml_string_of_jsbytes("633129"), - cst_0_264=caml_string_of_jsbytes("0.264"), - cst_389618=caml_string_of_jsbytes("389618"), - cst_535744$0=caml_string_of_jsbytes("535744"), - cst_0_216=caml_string_of_jsbytes("0.216"), - cst_267871=caml_string_of_jsbytes("267871"), - cst_389618$0=caml_string_of_jsbytes("389618"), - cst_0_104=caml_string_of_jsbytes("0.104"), - cst_194810=caml_string_of_jsbytes("194810"), - cst_267871$0=caml_string_of_jsbytes("267871"), - cst_0_04$0=caml_string_of_jsbytes("0.04"), - cst_0$67=caml_string_of_jsbytes("0"), - cst_194810$0=caml_string_of_jsbytes("194810"), - cst_7632=caml_string_of_jsbytes("7632"), - cst_4557=caml_string_of_jsbytes("4557"), - cst_0_005=caml_string_of_jsbytes("0.005"), - cst_ge_l512_3_2_in=caml_string_of_jsbytes("\xc3\xa2ge_l512_3_2_in"), - cst_r_sidence_in$11=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_prestation_courante_in$0= - caml_string_of_jsbytes("prestation_courante_in"), - cst_date_courante_in$25=caml_string_of_jsbytes("date_courante_in"), - cst_r_sidence_in$10=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_date_courante_in$24=caml_string_of_jsbytes("date_courante_in"), - cst_ann_es_in$2=caml_string_of_jsbytes("ann\xc3\xa9es_in"), - cst_date_courante_in$23=caml_string_of_jsbytes("date_courante_in"), - cst_date_naissance_in$2=caml_string_of_jsbytes("date_naissance_in"), - cst_ann_es_in$1=caml_string_of_jsbytes("ann\xc3\xa9es_in"), - cst_date_courante_in$22=caml_string_of_jsbytes("date_courante_in"), - cst_date_naissance_in$1=caml_string_of_jsbytes("date_naissance_in"), - cst_date_courante_in$21=caml_string_of_jsbytes("date_courante_in"), - cst_ressources_m_nage_prises_e$0= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_prises_en_compte_in"), - cst_date_courante_in$20=caml_string_of_jsbytes("date_courante_in"), - cst_demandeur_in$4=caml_string_of_jsbytes("demandeur_in"), - cst_m_nage_in$4=caml_string_of_jsbytes("m\xc3\xa9nage_in"), - cst_ressources_m_nage_prises_e= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_prises_en_compte_in"), - cst_date_courante_in$19=caml_string_of_jsbytes("date_courante_in"), - cst_demandeur_in$3=caml_string_of_jsbytes("demandeur_in"), - cst_m_nage_in$3=caml_string_of_jsbytes("m\xc3\xa9nage_in"), - cst_montant_dette_in=caml_string_of_jsbytes("montant_dette_in"), - cst_d_pense_logement_in= - caml_string_of_jsbytes("d\xc3\xa9pense_logement_in"), - cst_montant_charges_in=caml_string_of_jsbytes("montant_charges_in"), - cst_montant_apl_in=caml_string_of_jsbytes("montant_apl_in"), - cst_aide_vers_e_in=caml_string_of_jsbytes("aide_vers\xc3\xa9e_in"), - cst_mode_occupation_in$2=caml_string_of_jsbytes("mode_occupation_in"), - cst_date_naissance_assur_in= - caml_string_of_jsbytes("date_naissance_assur\xc3\xa9_in"), - cst_r_sidence_in$9=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_type_aide_in$2=caml_string_of_jsbytes("type_aide_in"), - cst_date_courante_in$18=caml_string_of_jsbytes("date_courante_in"), - cst_zone_in$6=caml_string_of_jsbytes("zone_in"), - cst_nombre_personnes_charge_in$8= - caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), - cst_situation_familiale_in$1= - caml_string_of_jsbytes("situation_familiale_in"), - cst_ressources_m_nage_sans_arr$0= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_sans_arrondi_in"), - cst_mode_occupation_in$1=caml_string_of_jsbytes("mode_occupation_in"), - cst_cat_gorie_quivalence_loyer$0= - caml_string_of_jsbytes - ("cat\xc3\xa9gorie_\xc3\xa9quivalence_loyer_d842_16_in"), - cst_date_courante_in$17=caml_string_of_jsbytes("date_courante_in"), - cst_zone_in$5=caml_string_of_jsbytes("zone_in"), - cst_situation_familiale_calcul$6= - caml_string_of_jsbytes("situation_familiale_calcul_apl_in"), - cst_nombre_personnes_charge_in$7= - caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), - cst_ressources_m_nage_arrondie$6= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_in"), - cst_redevance_in$0=caml_string_of_jsbytes("redevance_in"), - cst_r_sidence_in$8=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_date_conventionnement_in$0= - caml_string_of_jsbytes("date_conventionnement_in"), - cst_type_logement_foyer_in$0= - caml_string_of_jsbytes("type_logement_foyer_in"), - cst_op_rations_logement_voluti$0= - caml_string_of_jsbytes - ("op\xc3\xa9rations_logement_\xc3\xa9volutifs_sociaux_accession_propri\xc3\xa9t\xc3\xa9_aid\xc3\xa9e_\xc3\x89tat_in"), - cst_copropri_t_in$0= - caml_string_of_jsbytes("copropri\xc3\xa9t\xc3\xa9_in"), - cst_charges_mensuelles_pr_t_in= - caml_string_of_jsbytes("charges_mensuelles_pr\xc3\xaat_in"), - cst_date_entr_e_logement_in$0= - caml_string_of_jsbytes("date_entr\xc3\xa9e_logement_in"), - cst_local_habit_premi_re_fois_$1= - caml_string_of_jsbytes - ("local_habit\xc3\xa9_premi\xc3\xa8re_fois_b\xc3\xa9n\xc3\xa9ficiaire_in"), - cst_type_travaux_logement_in$0= - caml_string_of_jsbytes("type_travaux_logement_in"), - cst_date_signature_pr_t_in$0= - caml_string_of_jsbytes("date_signature_pr\xc3\xaat_in"), - cst_situation_r822_11_13_17_in$0= - caml_string_of_jsbytes("situation_r822_11_13_17_in"), - cst_mensualit_principale_in$0= - caml_string_of_jsbytes("mensualit\xc3\xa9_principale_in"), - cst_date_courante_in$16=caml_string_of_jsbytes("date_courante_in"), - cst_r_sidence_in$7=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_zone_in$4=caml_string_of_jsbytes("zone_in"), - cst_situation_familiale_calcul$5= - caml_string_of_jsbytes("situation_familiale_calcul_apl_in"), - cst_nombre_personnes_charge_in$6= - caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), - cst_ressources_m_nage_arrondie$5= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_base_in"), - cst_changement_logement_d842_4$0= - caml_string_of_jsbytes("changement_logement_d842_4_in"), - cst_r_sidence_in$6=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_logement_meubl_d842_2_in$0= - caml_string_of_jsbytes("logement_meubl\xc3\xa9_d842_2_in"), - cst_r_duction_loyer_solidarit_$1= - caml_string_of_jsbytes("r\xc3\xa9duction_loyer_solidarit\xc3\xa9_in"), - cst_colocation_in$0=caml_string_of_jsbytes("colocation_in"), - cst_type_aide_in$1=caml_string_of_jsbytes("type_aide_in"), - cst_g_es_ou_handicap_adultes_h$1= - caml_string_of_jsbytes - ("\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers_in"), - cst_logement_est_chambre_in$0= - caml_string_of_jsbytes("logement_est_chambre_in"), - cst_zone_in$3=caml_string_of_jsbytes("zone_in"), - cst_situation_familiale_calcul$4= - caml_string_of_jsbytes("situation_familiale_calcul_apl_in"), - cst_nombre_personnes_charge_in$5= - caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), - cst_date_courante_in$15=caml_string_of_jsbytes("date_courante_in"), - cst_b_n_ficiaire_aide_adulte_o$2= - caml_string_of_jsbytes - ("b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s_in"), - cst_ressources_m_nage_arrondie$4= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_in"), - cst_loyer_principal_in=caml_string_of_jsbytes("loyer_principal_in"), - cst_r_sidence_in$5=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_date_courante_in$14=caml_string_of_jsbytes("date_courante_in"), - cst_zone_in$2=caml_string_of_jsbytes("zone_in"), - cst_nombre_personnes_charge_in$4= - caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), - cst_situation_familiale_in$0= - caml_string_of_jsbytes("situation_familiale_in"), - cst_ressources_m_nage_sans_arr= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_sans_arrondi_in"), - cst_type_aide_in$0=caml_string_of_jsbytes("type_aide_in"), - cst_mode_occupation_in$0=caml_string_of_jsbytes("mode_occupation_in"), - cst_date_courante_in$13=caml_string_of_jsbytes("date_courante_in"), - cst_anciennet_logement_in= - caml_string_of_jsbytes("anciennet\xc3\xa9_logement_in"), - cst_type_pr_t_in=caml_string_of_jsbytes("type_pr\xc3\xaat_in"), - cst_zone_in$1=caml_string_of_jsbytes("zone_in"), - cst_situation_r822_11_13_17_in= - caml_string_of_jsbytes("situation_r822_11_13_17_in"), - cst_copropri_t_in=caml_string_of_jsbytes("copropri\xc3\xa9t\xc3\xa9_in"), - cst_date_entr_e_logement_in= - caml_string_of_jsbytes("date_entr\xc3\xa9e_logement_in"), - cst_local_habit_premi_re_fois_$0= - caml_string_of_jsbytes - ("local_habit\xc3\xa9_premi\xc3\xa8re_fois_b\xc3\xa9n\xc3\xa9ficiaire_in"), - cst_date_signature_pr_t_in= - caml_string_of_jsbytes("date_signature_pr\xc3\xaat_in"), - cst_type_travaux_logement_in= - caml_string_of_jsbytes("type_travaux_logement_in"), - cst_situation_familiale_calcul$3= - caml_string_of_jsbytes("situation_familiale_calcul_apl_in"), - cst_nombre_personnes_charge_in$3= - caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), - cst_ressources_m_nage_arrondie$3= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_in"), - cst_mensualit_principale_in= - caml_string_of_jsbytes("mensualit\xc3\xa9_principale_in"), - cst_situation_familiale_calcul$2= - caml_string_of_jsbytes("situation_familiale_calcul_apl_in"), - cst_nombre_personnes_charge_in$2= - caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), - cst_n_nombre_parts_d832_25_in$0= - caml_string_of_jsbytes("n_nombre_parts_d832_25_in"), - cst_limitation_majoration_pers$0= - caml_string_of_jsbytes - ("limitation_majoration_personnes_\xc3\xa0_charge_in"), - cst_condition_2_du_832_25_in$1= - caml_string_of_jsbytes("condition_2_du_832_25_in"), - cst_r_sidence_in$4=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_redevance_in=caml_string_of_jsbytes("redevance_in"), - cst_date_courante_in$12=caml_string_of_jsbytes("date_courante_in"), - cst_zone_in$0=caml_string_of_jsbytes("zone_in"), - cst_situation_familiale_calcul$1= - caml_string_of_jsbytes("situation_familiale_calcul_apl_in"), - cst_nombre_personnes_charge_in$1= - caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), - cst_ressources_m_nage_arrondie$2= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_in"), - cst_date_conventionnement_in= - caml_string_of_jsbytes("date_conventionnement_in"), - cst_type_logement_foyer_in= - caml_string_of_jsbytes("type_logement_foyer_in"), - cst_limitation_majoration_pers= - caml_string_of_jsbytes - ("limitation_majoration_personnes_\xc3\xa0_charge_in"), - cst_r_sidence_in$3=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_situation_familiale_calcul$0= - caml_string_of_jsbytes("situation_familiale_calcul_apl_in"), - cst_nombre_personnes_charge_in$0= - caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), - cst_condition_2_du_832_25_in$0= - caml_string_of_jsbytes("condition_2_du_832_25_in"), - cst_n_nombre_parts_d832_25_in= - caml_string_of_jsbytes("n_nombre_parts_d832_25_in"), - cst_condition_2_du_832_25_in= - caml_string_of_jsbytes("condition_2_du_832_25_in"), - cst_ressources_m_nage_arrondie$1= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_in"), - cst_date_courante_in$11=caml_string_of_jsbytes("date_courante_in"), - cst_r_sidence_in$2=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_logement_meubl_d842_2_in= - caml_string_of_jsbytes("logement_meubl\xc3\xa9_d842_2_in"), - cst_r_duction_loyer_solidarit_$0= - caml_string_of_jsbytes("r\xc3\xa9duction_loyer_solidarit\xc3\xa9_in"), - cst_colocation_in=caml_string_of_jsbytes("colocation_in"), - cst_type_aide_in=caml_string_of_jsbytes("type_aide_in"), - cst_g_es_ou_handicap_adultes_h$0= - caml_string_of_jsbytes - ("\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers_in"), - cst_logement_est_chambre_in= - caml_string_of_jsbytes("logement_est_chambre_in"), - cst_zone_in=caml_string_of_jsbytes("zone_in"), - cst_situation_familiale_calcul= - caml_string_of_jsbytes("situation_familiale_calcul_apl_in"), - cst_nombre_personnes_charge_in= - caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), - cst_date_courante_in$10=caml_string_of_jsbytes("date_courante_in"), - cst_b_n_ficiaire_aide_adulte_o$1= - caml_string_of_jsbytes - ("b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s_in"), - cst_ressources_m_nage_arrondie$0= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_in"), - cst_loyer_principal_base_in= - caml_string_of_jsbytes("loyer_principal_base_in"), - cst_date_courante_in$9=caml_string_of_jsbytes("date_courante_in"), - cst_ressources_m_nage_arrondie= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_base_in"), - cst_paiement_logement_distinct= - caml_string_of_jsbytes("paiement_logement_distinct_professionnel_in"), - cst_date_demande_ou_reexamen_d= - caml_string_of_jsbytes("date_demande_ou_reexamen_droit_in"), - cst_demandeur_poursuit_des_tud= - caml_string_of_jsbytes("demandeur_poursuit_des_\xc3\xa9tudes_in"), - cst_condition_ge_bourse_enseig= - caml_string_of_jsbytes - ("condition_\xc3\xa2ge_bourse_enseignement_sup\xc3\xa9rieur_in"), - cst_mode_occupation_in=caml_string_of_jsbytes("mode_occupation_in"), - cst_situation_familiale_in= - caml_string_of_jsbytes("situation_familiale_in"), - cst_personnes_charge_in= - caml_string_of_jsbytes("personnes_\xc3\xa0_charge_in"), - cst_conjoint_exerce_activit_r_= - caml_string_of_jsbytes - ("conjoint_exerce_activit\xc3\xa9_r\xc3\xa9mun\xc3\xa9r\xc3\xa9e_in"), - cst_demandeur_exerce_activit_r= - caml_string_of_jsbytes - ("demandeur_exerce_activit\xc3\xa9_r\xc3\xa9mun\xc3\xa9r\xc3\xa9e_in"), - cst_personnes_vivant_habituell= - caml_string_of_jsbytes("personnes_vivant_habituellement_foyer_in"), - cst_ressources_conjoint_in= - caml_string_of_jsbytes("ressources_conjoint_in"), - cst_ressources_demandeur_in= - caml_string_of_jsbytes("ressources_demandeur_in"), - cst_d_penses_justifi_es_r_elle= - caml_string_of_jsbytes - ("d\xc3\xa9penses_justifi\xc3\xa9es_r\xc3\xa9ellement_engag\xc3\xa9es_in"), - cst_date_courante_in$8=caml_string_of_jsbytes("date_courante_in"), - cst_demandeur_in$2=caml_string_of_jsbytes("demandeur_in"), - cst_m_nage_in$2=caml_string_of_jsbytes("m\xc3\xa9nage_in"), - cst_date_emm_nagement_in= - caml_string_of_jsbytes("date_emm\xc3\xa9nagement_in"), - cst_informations_in=caml_string_of_jsbytes("informations_in"), - cst_b_n_ficie_aide_personnalis= - caml_string_of_jsbytes - ("b\xc3\xa9n\xc3\xa9ficie_aide_personnalis\xc3\xa9e_logement_in"), - cst_demandeur_in$1=caml_string_of_jsbytes("demandeur_in"), - cst_m_nage_in$1=caml_string_of_jsbytes("m\xc3\xa9nage_in"), - cst_date_courante_in$7=caml_string_of_jsbytes("date_courante_in"), - cst_date_courante_in$6=caml_string_of_jsbytes("date_courante_in"), - cst_demandeur_in$0=caml_string_of_jsbytes("demandeur_in"), - cst_m_nage_in$0=caml_string_of_jsbytes("m\xc3\xa9nage_in"), - cst_date_entr_e_vigueur_diff_r= - caml_string_of_jsbytes - ("date_entr\xc3\xa9e_vigueur_diff\xc3\xa9r\xc3\xa9e_cch_in"), - cst_condition_logement_surface= - caml_string_of_jsbytes("condition_logement_surface_in"), - cst_condition_logement_r_siden= - caml_string_of_jsbytes - ("condition_logement_r\xc3\xa9sidence_principale_in"), - cst_date_courante_in$5=caml_string_of_jsbytes("date_courante_in"), - cst_demandeur_in=caml_string_of_jsbytes("demandeur_in"), - cst_m_nage_in=caml_string_of_jsbytes("m\xc3\xa9nage_in"), - cst_r_sidence=caml_string_of_jsbytes("r\xc3\xa9sidence"), - cst_personnes_g_es_handicap_es= - caml_string_of_jsbytes - ("personnes_\xc3\xa2g\xc3\xa9es_handicap\xc3\xa9es_foyer_r844_4"), - cst_enfant_na_tre_apr_s_quatri= - caml_string_of_jsbytes - ("enfant_\xc3\xa0_na\xc3\xaetre_apr\xc3\xa8s_quatri\xc3\xa8me_mois_grossesse"), - cst_condition_rattach_foyer_fi= - caml_string_of_jsbytes - ("condition_rattach\xc3\xa9_foyer_fiscal_parent_ifi"), - cst_situation_familiale=caml_string_of_jsbytes("situation_familiale"), - cst_nombre_autres_occupants_lo= - caml_string_of_jsbytes("nombre_autres_occupants_logement"), - cst_personnes_charge=caml_string_of_jsbytes("personnes_\xc3\xa0_charge"), - cst_logement=caml_string_of_jsbytes("logement"), - cst_prestations_re_ues= - caml_string_of_jsbytes("prestations_re\xc3\xa7ues"), - cst_zone=caml_string_of_jsbytes("zone"), - cst_surface_m_carr_s=caml_string_of_jsbytes("surface_m_carr\xc3\xa9s"), - cst_logement_decent_l89_462= - caml_string_of_jsbytes("logement_decent_l89_462"), - cst_usufruit=caml_string_of_jsbytes("usufruit"), - cst_lou_ou_sous_lou_des_tiers= - caml_string_of_jsbytes - ("lou\xc3\xa9_ou_sous_lou\xc3\xa9_\xc3\xa0_des_tiers"), - cst_propri_taire=caml_string_of_jsbytes("propri\xc3\xa9taire"), - cst_mode_occupation=caml_string_of_jsbytes("mode_occupation"), - cst_est_ehpad_ou_maison_autono= - caml_string_of_jsbytes("est_ehpad_ou_maison_autonomie_l313_12_asf"), - cst_r_sidence_principale= - caml_string_of_jsbytes("r\xc3\xa9sidence_principale"), - cst_condition_2_r823_4=caml_string_of_jsbytes("condition_2_r823_4"), - cst_coefficents_enfants_garde_$2= - caml_string_of_jsbytes - ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), - cst_nombre_personnes_charge_pr$1= - caml_string_of_jsbytes - ("nombre_personnes_\xc3\xa0_charge_prises_en_compte"), - cst_ligibilit$3=caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"), - cst_date_courante$0=caml_string_of_jsbytes("date_courante"), - cst_Locataire=caml_string_of_jsbytes("Locataire"), - cst_R_sidentLogementFoyer= - caml_string_of_jsbytes("R\xc3\xa9sidentLogementFoyer"), - cst_AccessionPropri_t_LocalUsa= - caml_string_of_jsbytes - ("AccessionPropri\xc3\xa9t\xc3\xa9LocalUsageExclusifHabitation"), - cst_SousLocataire=caml_string_of_jsbytes("SousLocataire"), - cst_LocationAccession=caml_string_of_jsbytes("LocationAccession"), - cst_Location=caml_string_of_jsbytes("Location"), - cst_AccessionPropri_t= - caml_string_of_jsbytes("AccessionPropri\xc3\xa9t\xc3\xa9"), - cst_LogementFoyer=caml_string_of_jsbytes("LogementFoyer"), - cst_Enfant_Charge=caml_string_of_jsbytes("Enfant\xc3\x80Charge"), - cst_AutrePersonne_Charge= - caml_string_of_jsbytes("AutrePersonne\xc3\x80Charge"), - cst_changement_logement_d842_4= - caml_string_of_jsbytes("changement_logement_d842_4"), - cst_logement_meubl_d842_2$0= - caml_string_of_jsbytes("logement_meubl\xc3\xa9_d842_2"), - cst_g_es_ou_handicap_adultes_h= - caml_string_of_jsbytes - ("\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers"), - cst_colocation=caml_string_of_jsbytes("colocation"), - cst_logement_est_chambre=caml_string_of_jsbytes("logement_est_chambre"), - cst_b_n_ficiaire_aide_adulte_o$0= - caml_string_of_jsbytes - ("b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s"), - cst_loyer_principal=caml_string_of_jsbytes("loyer_principal"), - cst_bailleur=caml_string_of_jsbytes("bailleur"), - cst_tudes_apprentissage_stage_= - caml_string_of_jsbytes - ("\xc3\xa9tudes_apprentissage_stage_formation_pro_impossibilit\xc3\xa9_travail"), - cst_situation_garde_altern_e= - caml_string_of_jsbytes("situation_garde_altern\xc3\xa9e"), - cst_obligation_scolaire$1=caml_string_of_jsbytes("obligation_scolaire"), - cst_r_muneration_mensuelle$1= - caml_string_of_jsbytes("r\xc3\xa9muneration_mensuelle"), - cst_date_de_naissance$1=caml_string_of_jsbytes("date_de_naissance"), - cst_a_d_j_ouvert_droit_aux_all$1= - caml_string_of_jsbytes - ("a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales"), - cst_b_n_ficie_titre_personnel_$1= - caml_string_of_jsbytes - ("b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement"), - cst_nationalit$0=caml_string_of_jsbytes("nationalit\xc3\xa9"), - cst_identifiant$1=caml_string_of_jsbytes("identifiant"), - cst_magistrat_fonctionnaire_ce= - caml_string_of_jsbytes - ("magistrat_fonctionnaire_centre_int\xc3\xa9r\xc3\xaats_mat\xc3\xa9riels_familiaux_hors_mayotte"), - cst_est_non_salari_agricole_l7= - caml_string_of_jsbytes - ("est_non_salari\xc3\xa9_agricole_l781_8_l_781_46_code_rural"), - cst_personne_h_berg_e_centre_s= - caml_string_of_jsbytes - ("personne_h\xc3\xa9berg\xc3\xa9e_centre_soin_l_L162_22_3_s\xc3\xa9curit\xc3\xa9_sociale"), - cst_patrimoine=caml_string_of_jsbytes("patrimoine"), - cst_nationalit=caml_string_of_jsbytes("nationalit\xc3\xa9"), - cst_date_naissance$0=caml_string_of_jsbytes("date_naissance"), - cst_r_gime_outre_mer_l751_1$0= - caml_string_of_jsbytes("r\xc3\xa9gime_outre_mer_l751_1"), - cst_conditions_hors_ge$0= - caml_string_of_jsbytes("conditions_hors_\xc3\xa2ge"), - cst_droit_ouvert$0=caml_string_of_jsbytes("droit_ouvert"), - cst_ge_l512_3_2$0=caml_string_of_jsbytes("\xc3\xa2ge_l512_3_2"), - cst_op_rations_logement_voluti= - caml_string_of_jsbytes - ("op\xc3\xa9rations_logement_\xc3\xa9volutifs_sociaux_accession_propri\xc3\xa9t\xc3\xa9_aid\xc3\xa9e_\xc3\x89tat"), - cst_pr_t=caml_string_of_jsbytes("pr\xc3\xaat"), - cst_anciennet_logement= - caml_string_of_jsbytes("anciennet\xc3\xa9_logement"), - cst_situation_r822_11_13_17= - caml_string_of_jsbytes("situation_r822_11_13_17"), - cst_copropri_t=caml_string_of_jsbytes("copropri\xc3\xa9t\xc3\xa9"), - cst_local_habit_premi_re_fois_= - caml_string_of_jsbytes - ("local_habit\xc3\xa9_premi\xc3\xa8re_fois_b\xc3\xa9n\xc3\xa9ficiaire"), - cst_type_travaux_logement_r842= - caml_string_of_jsbytes("type_travaux_logement_r842_5"), - cst_type_travaux_logement_d832= - caml_string_of_jsbytes("type_travaux_logement_d832_15"), - cst_date_entr_e_logement= - caml_string_of_jsbytes("date_entr\xc3\xa9e_logement"), - cst_charges_mensuelles_pr_t= - caml_string_of_jsbytes("charges_mensuelles_pr\xc3\xaat"), - cst_mensualit_principale= - caml_string_of_jsbytes("mensualit\xc3\xa9_principale"), - cst_date_naissance_troisi_me_e= - caml_string_of_jsbytes - ("date_naissance_troisi\xc3\xa8me_enfant_ou_dernier_si_plus"), - cst_nombre_enfants_na_tre_apr_= - caml_string_of_jsbytes - ("nombre_enfants_\xc3\xa0_na\xc3\xaetre_apr\xc3\xa8s_troisi\xc3\xa8me_mois_grossesse"), - cst_Changement=caml_string_of_jsbytes("Changement"), - cst_PasDeChangement=caml_string_of_jsbytes("PasDeChangement"), - cst_Fran_aise=caml_string_of_jsbytes("Fran\xc3\xa7aise"), - cst_trang_re=caml_string_of_jsbytes("\xc3\x89trang\xc3\xa8re"), - cst_Non$1=caml_string_of_jsbytes("Non"), - cst_Oui$0=caml_string_of_jsbytes("Oui"), - cst_BailleurSocial=caml_string_of_jsbytes("BailleurSocial"), - cst_BailleurPriv_AvecConventio= - caml_string_of_jsbytes("BailleurPriv\xc3\xa9AvecConventionnementSocial"), - cst_BailleurPriv=caml_string_of_jsbytes("BailleurPriv\xc3\xa9"), - cst_b_n_ficie_titre_personnel_$0= - caml_string_of_jsbytes - ("b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement"), - cst_a_d_j_ouvert_droit_aux_all$0= - caml_string_of_jsbytes - ("a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales"), - cst_prise_en_charge$0=caml_string_of_jsbytes("prise_en_charge"), - cst_date_de_naissance$0=caml_string_of_jsbytes("date_de_naissance"), - cst_r_muneration_mensuelle$0= - caml_string_of_jsbytes("r\xc3\xa9muneration_mensuelle"), - cst_obligation_scolaire$0=caml_string_of_jsbytes("obligation_scolaire"), - cst_identifiant$0=caml_string_of_jsbytes("identifiant"), - cst_logement_meubl_d842_2= - caml_string_of_jsbytes("logement_meubl\xc3\xa9_d842_2"), - cst_b_n_ficiaire_aide_adulte_o= - caml_string_of_jsbytes - ("b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s"), - cst_cat_gorie_quivalence_loyer= - caml_string_of_jsbytes - ("cat\xc3\xa9gorie_\xc3\xa9quivalence_loyer_d842_16"), - cst_redevance=caml_string_of_jsbytes("redevance"), - cst_construit_application_loi_= - caml_string_of_jsbytes("construit_application_loi_1957_12_III"), - cst_date_conventionnement=caml_string_of_jsbytes("date_conventionnement"), - cst_conventionn_selon_r_gles_m= - caml_string_of_jsbytes - ("conventionn\xc3\xa9_selon_r\xc3\xa8gles_mayotte"), - cst_conventionn_livre_III_titr$1= - caml_string_of_jsbytes("conventionn\xc3\xa9_livre_III_titre_V_chap_III"), - cst_remplit_conditions_r832_21= - caml_string_of_jsbytes("remplit_conditions_r832_21"), - cst_type=caml_string_of_jsbytes("type"), - cst_accord_financement_repr_se= - caml_string_of_jsbytes - ("accord_financement_repr\xc3\xa9sentant_\xc3\x89tat_outre_mer"), - cst_titulaire_pr_t=caml_string_of_jsbytes("titulaire_pr\xc3\xaat"), - cst_date_signature=caml_string_of_jsbytes("date_signature"), - cst_type_pr_t=caml_string_of_jsbytes("type_pr\xc3\xaat"), - cst_coefficents_enfants_garde_$1= - caml_string_of_jsbytes - ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), - cst_nombre_personnes_charge_pr$0= - caml_string_of_jsbytes - ("nombre_personnes_\xc3\xa0_charge_prises_en_compte"), - cst_ligibilit$2=caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"), - cst_MoinsDeTroisEnfants=caml_string_of_jsbytes("MoinsDeTroisEnfants"), - cst_PlusDeTroisEnfants=caml_string_of_jsbytes("PlusDeTroisEnfants"), - cst_titulaire_allocation_perso= - caml_string_of_jsbytes - ("titulaire_allocation_personne_\xc3\xa2g\xc3\xa9e"), - cst_b_n_ficiaire_l161_19_l351_= - caml_string_of_jsbytes - ("b\xc3\xa9n\xc3\xa9ficiaire_l161_19_l351_8_l643_3_s\xc3\xa9cu"), - cst_incapacit_80_pourcent_ou_r= - caml_string_of_jsbytes - ("incapacit\xc3\xa9_80_pourcent_ou_restriction_emploi"), - cst_parent=caml_string_of_jsbytes("parent\xc3\xa9"), - cst_ascendant_descendant_colla= - caml_string_of_jsbytes - ("ascendant_descendant_collat\xc3\xa9ral_deuxi\xc3\xa8me_troisi\xc3\xa8me_degr\xc3\xa9"), - cst_ressources$0=caml_string_of_jsbytes("ressources"), - cst_date_naissance=caml_string_of_jsbytes("date_naissance"), - cst_taux$0=caml_string_of_jsbytes("taux"), - cst_bas$0=caml_string_of_jsbytes("bas"), - cst_haut$0=caml_string_of_jsbytes("haut"), - cst_taux=caml_string_of_jsbytes("taux"), - cst_bas=caml_string_of_jsbytes("bas"), - cst_haut=caml_string_of_jsbytes("haut"), - cst_Neuf=caml_string_of_jsbytes("Neuf"), - cst_Ancien=caml_string_of_jsbytes("Ancien"), - cst_brut_horaire$0=caml_string_of_jsbytes("brut_horaire"), - cst_est_sup_rieur$0=caml_string_of_jsbytes("est_sup\xc3\xa9rieur"), - cst_est_inf_rieur_ou_gal$0= - caml_string_of_jsbytes("est_inf\xc3\xa9rieur_ou_\xc3\xa9gal"), - cst_montant$2=caml_string_of_jsbytes("montant"), - cst_aide_finale=caml_string_of_jsbytes("aide_finale"), - cst_ligibilit$1=caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"), - cst_coefficents_enfants_garde_$0= - caml_string_of_jsbytes - ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), - cst_traitement_aide_finale$8= - caml_string_of_jsbytes("traitement_aide_finale"), - cst_aide_finale_formule$8=caml_string_of_jsbytes("aide_finale_formule"), - cst_ligibilit$0=caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"), - cst_montant_impay=caml_string_of_jsbytes("montant_impay\xc3\xa9"), - cst_ge_ouverture_droit= - caml_string_of_jsbytes("\xc3\xa2ge_ouverture_droit"), - cst_traitement_aide_finale$7= - caml_string_of_jsbytes("traitement_aide_finale"), - cst_aide_finale_formule$7=caml_string_of_jsbytes("aide_finale_formule"), - cst_traitement_aide_finale$6= - caml_string_of_jsbytes("traitement_aide_finale"), - cst_aide_finale_formule$6=caml_string_of_jsbytes("aide_finale_formule"), - cst_loyer_minimal=caml_string_of_jsbytes("loyer_minimal"), - cst_montant_forfaitaire_charge$0= - caml_string_of_jsbytes("montant_forfaitaire_charges"), - cst_quivalence_loyer=caml_string_of_jsbytes("\xc3\xa9quivalence_loyer"), - cst_coefficient_prise_en_charg$1= - caml_string_of_jsbytes("coefficient_prise_en_charge"), - cst_traitement_aide_finale$5= - caml_string_of_jsbytes("traitement_aide_finale"), - cst_aide_finale_formule$5=caml_string_of_jsbytes("aide_finale_formule"), - cst_traitement_aide_finale$4= - caml_string_of_jsbytes("traitement_aide_finale"), - cst_aide_finale_formule$4=caml_string_of_jsbytes("aide_finale_formule"), - cst_ancienne_allocation_logeme= - caml_string_of_jsbytes("ancienne_allocation_logement"), - cst_ancien_loyer_principal= - caml_string_of_jsbytes("ancien_loyer_principal"), - cst_traitement_aide_finale$3= - caml_string_of_jsbytes("traitement_aide_finale"), - cst_aide_finale_formule$3=caml_string_of_jsbytes("aide_finale_formule"), - cst_traitement_aide_finale$2= - caml_string_of_jsbytes("traitement_aide_finale"), - cst_aide_finale_formule$2=caml_string_of_jsbytes("aide_finale_formule"), - cst_traitement_aide_finale$1= - caml_string_of_jsbytes("traitement_aide_finale"), - cst_aide_finale_formule$1=caml_string_of_jsbytes("aide_finale_formule"), - cst_coefficient_prise_en_charg$0= - caml_string_of_jsbytes("coefficient_prise_en_charge_d832_10"), - cst_mensualit_minimale= - caml_string_of_jsbytes("mensualit\xc3\xa9_minimale"), - cst_mensualit_ligible= - caml_string_of_jsbytes("mensualit\xc3\xa9_\xc3\xa9ligible"), - cst_n_nombre_parts_d832_11= - caml_string_of_jsbytes("n_nombre_parts_d832_11"), - cst_traitement_aide_finale$0= - caml_string_of_jsbytes("traitement_aide_finale"), - cst_aide_finale_formule$0=caml_string_of_jsbytes("aide_finale_formule"), - cst_coefficient_prise_en_charg= - caml_string_of_jsbytes("coefficient_prise_en_charge_d832_25"), - cst_quivalence_loyer_minimale= - caml_string_of_jsbytes("\xc3\xa9quivalence_loyer_minimale"), - cst_plafond_quivalence_loyer_l= - caml_string_of_jsbytes - ("plafond_\xc3\xa9quivalence_loyer_\xc3\xa9ligible"), - cst_quivalence_loyer_ligible= - caml_string_of_jsbytes("\xc3\xa9quivalence_loyer_\xc3\xa9ligible"), - cst_n_nombre_parts_d832_25$0= - caml_string_of_jsbytes("n_nombre_parts_d832_25"), - cst_coefficient_r_d832_25=caml_string_of_jsbytes("coefficient_r_d832_25"), - cst_coefficient_multiplicateur= - caml_string_of_jsbytes("coefficient_multiplicateur_d832_25"), - cst_n_nombre_parts_d832_25= - caml_string_of_jsbytes("n_nombre_parts_d832_25"), - cst_montant$1=caml_string_of_jsbytes("montant"), - cst_traitement_aide_finale= - caml_string_of_jsbytes("traitement_aide_finale"), - cst_aide_finale_formule=caml_string_of_jsbytes("aide_finale_formule"), - cst_participation_personnelle= - caml_string_of_jsbytes("participation_personnelle"), - cst_taux_composition_familiale= - caml_string_of_jsbytes("taux_composition_familiale"), - cst_participation_minimale= - caml_string_of_jsbytes("participation_minimale"), - cst_plafond_loyer_d823_16_2= - caml_string_of_jsbytes("plafond_loyer_d823_16_2"), - cst_montant_forfaitaire_charge= - caml_string_of_jsbytes("montant_forfaitaire_charges_d823_16"), - cst_montant$0=caml_string_of_jsbytes("montant"), - cst_ressources_prises_en_compt= - caml_string_of_jsbytes("ressources_prises_en_compte"), - cst_montant_prime_d_m_nagement= - caml_string_of_jsbytes("montant_prime_d\xc3\xa9m\xc3\xa9nagement"), - cst_coefficents_enfants_garde_= - caml_string_of_jsbytes - ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), - cst_nombre_personnes_charge_pr= - caml_string_of_jsbytes - ("nombre_personnes_\xc3\xa0_charge_prises_en_compte"), - cst_ligibilit=caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"), - cst_date_courante=caml_string_of_jsbytes("date_courante"), - cst_ressources=caml_string_of_jsbytes("ressources"), - cst_dur_e_r_sidence_durant_p_r= - caml_string_of_jsbytes - ("dur\xc3\xa9e_r\xc3\xa9sidence_durant_p\xc3\xa9riode_r_822_3_1_sup\xc3\xa9rieure_\xc3\xa0_6_mois"), - cst_satisfait_art_4_ordonnance= - caml_string_of_jsbytes("satisfait_art_4_ordonnance_2002_mayotte"), - cst_satisfait_conditions_l512_= - caml_string_of_jsbytes - ("satisfait_conditions_l512_2_code_s\xc3\xa9curit\xc3\xa9_sociale"), - cst_ne_produisant_pas_revenu_p= - caml_string_of_jsbytes - ("ne_produisant_pas_revenu_p\xc3\xa9riode_r822_3_3_r822_4"), - cst_produisant_revenu_p_riode_= - caml_string_of_jsbytes - ("produisant_revenu_p\xc3\xa9riode_r822_3_3_r822_4"), - cst_conforme_article_l442_1= - caml_string_of_jsbytes("conforme_article_l442_1"), - cst_date_naissance_personne_so= - caml_string_of_jsbytes("date_naissance_personne_sous_location"), - cst_conventionn_livre_III_titr$0= - caml_string_of_jsbytes - ("conventionn\xc3\xa9_livre_III_titre_II_chap_I_sec_3"), - cst_r_duction_loyer_solidarit_= - caml_string_of_jsbytes - ("r\xc3\xa9duction_loyer_solidarit\xc3\xa9_per\xc3\xa7ue"), - cst_conventionn_livre_III_titr= - caml_string_of_jsbytes("conventionn\xc3\xa9_livre_III_titre_V_chap_III"), - cst_PrestationAccueilJeuneEnfa$1= - caml_string_of_jsbytes("PrestationAccueilJeuneEnfant"), - cst_AllocationsFamiliales$2= - caml_string_of_jsbytes("AllocationsFamiliales"), - cst_Compl_mentFamilial$1= - caml_string_of_jsbytes("Compl\xc3\xa9mentFamilial"), - cst_AllocationLogement$1=caml_string_of_jsbytes("AllocationLogement"), - cst_Allocation_ducationEnfantH$0= - caml_string_of_jsbytes - ("Allocation\xc3\x89ducationEnfantHandicap\xc3\xa9"), - cst_AllocationSoutienFamilial$2= - caml_string_of_jsbytes("AllocationSoutienFamilial"), - cst_AllocationRentr_eScolaire$0= - caml_string_of_jsbytes("AllocationRentr\xc3\xa9eScolaire"), - cst_AllocationJournali_rePrese$0= - caml_string_of_jsbytes("AllocationJournali\xc3\xa8rePresenceParentale"), - cst_Avant$1=caml_string_of_jsbytes("Avant"), - cst_Pendant$1=caml_string_of_jsbytes("Pendant"), - cst_Apr_s$0=caml_string_of_jsbytes("Apr\xc3\xa8s"), - cst_GardeAltern_ePartageAlloca$0= - caml_string_of_jsbytes("GardeAltern\xc3\xa9ePartageAllocations"), - cst_GardeAltern_eAllocataireUn$0= - caml_string_of_jsbytes("GardeAltern\xc3\xa9eAllocataireUnique"), - cst_EffectiveEtPermanente$2= - caml_string_of_jsbytes("EffectiveEtPermanente"), - cst_ServicesSociauxAllocationV$3= - caml_string_of_jsbytes - ("ServicesSociauxAllocationVers\xc3\xa9e\xc3\x80LaFamille"), - cst_ServicesSociauxAllocationV$4= - caml_string_of_jsbytes - ("ServicesSociauxAllocationVers\xc3\xa9eAuxServicesSociaux"), - cst_Guadeloupe$1=caml_string_of_jsbytes("Guadeloupe"), - cst_Guyane$1=caml_string_of_jsbytes("Guyane"), - cst_Martinique$1=caml_string_of_jsbytes("Martinique"), - cst_LaR_union$0=caml_string_of_jsbytes("LaR\xc3\xa9union"), - cst_SaintBarth_lemy$0=caml_string_of_jsbytes("SaintBarth\xc3\xa9lemy"), - cst_SaintMartin$1=caml_string_of_jsbytes("SaintMartin"), - cst_M_tropole$0=caml_string_of_jsbytes("M\xc3\xa9tropole"), - cst_SaintPierreEtMiquelon$1= - caml_string_of_jsbytes("SaintPierreEtMiquelon"), - cst_Mayotte$1=caml_string_of_jsbytes("Mayotte"), - cst_PersonneSeule=caml_string_of_jsbytes("PersonneSeule"), - cst_Couple=caml_string_of_jsbytes("Couple"), - cst_tudiantLog_EnChambreCROUS= - caml_string_of_jsbytes("\xc3\x89tudiantLog\xc3\xa9EnChambreCROUS"), - cst_tudiantLog_EnChambreCROUSR= - caml_string_of_jsbytes - ("\xc3\x89tudiantLog\xc3\xa9EnChambreCROUSR\xc3\xa9habilit\xc3\xa9e"), - cst_Personnes_g_esSelon3DeD842= - caml_string_of_jsbytes("Personnes\xc3\x82g\xc3\xa9esSelon3DeD842_16"), - cst_AutresPersonnes=caml_string_of_jsbytes("AutresPersonnes"), - cst_LogementPersonnes_g_esOuHa= - caml_string_of_jsbytes - ("LogementPersonnes\xc3\x82g\xc3\xa9esOuHandicap\xc3\xa9es"), - cst_R_sidenceSociale=caml_string_of_jsbytes("R\xc3\xa9sidenceSociale"), - cst_FoyerJeunesTrvailleursOuMi= - caml_string_of_jsbytes - ("FoyerJeunesTrvailleursOuMigrantsConventionn\xc3\xa9L353_2Avant1995"), - cst_Autre$1=caml_string_of_jsbytes("Autre"), - cst_EffectiveEtPermanente$1= - caml_string_of_jsbytes("EffectiveEtPermanente"), - cst_R_sidenceAltern_eAllocatai= - caml_string_of_jsbytes - ("R\xc3\xa9sidenceAltern\xc3\xa9eAllocataireUnique"), - cst_R_sidenceAltern_eAllocatio= - caml_string_of_jsbytes - ("R\xc3\xa9sidenceAltern\xc3\xa9eAllocationsPartag\xc3\xa9e"), - cst_C_libataire=caml_string_of_jsbytes("C\xc3\xa9libataire"), - cst_Mari_s=caml_string_of_jsbytes("Mari\xc3\xa9s"), - cst_Pacs_s=caml_string_of_jsbytes("Pacs\xc3\xa9s"), - cst_Concubins=caml_string_of_jsbytes("Concubins"), - cst_C_libataireS_par_DeFait= - caml_string_of_jsbytes("C\xc3\xa9libataireS\xc3\xa9par\xc3\xa9DeFait"), - cst_ConcubinageDontS_par_DeFai= - caml_string_of_jsbytes("ConcubinageDontS\xc3\xa9par\xc3\xa9DeFait"), - cst_AidePersonnalis_eLogement= - caml_string_of_jsbytes("AidePersonnalis\xc3\xa9eLogement"), - cst_AllocationLogementFamilial$0= - caml_string_of_jsbytes("AllocationLogementFamiliale"), - cst_AllocationLogementSociale$0= - caml_string_of_jsbytes("AllocationLogementSociale"), - cst_Accord=caml_string_of_jsbytes("Accord"), - cst_PasdAccord=caml_string_of_jsbytes("PasdAccord"), - cst_Pas_ligible=caml_string_of_jsbytes("Pas\xc3\x89ligible"), - cst_AllocationLogementFamilial= - caml_string_of_jsbytes("AllocationLogementFamiliale"), - cst_AllocationLogementSociale= - caml_string_of_jsbytes("AllocationLogementSociale"), - cst_Impay_Loyer=caml_string_of_jsbytes("Impay\xc3\xa9Loyer"), - cst_Impay_Pr_t=caml_string_of_jsbytes("Impay\xc3\xa9Pr\xc3\xaat"), - cst_TotalAnnuel_ch_ances= - caml_string_of_jsbytes("TotalAnnuel\xc3\x89ch\xc3\xa9ances"), - cst_Mensualit=caml_string_of_jsbytes("Mensualit\xc3\xa9"), - cst_Loyer=caml_string_of_jsbytes("Loyer"), - cst_Bailleur=caml_string_of_jsbytes("Bailleur"), - cst_B_n_ficiaire=caml_string_of_jsbytes("B\xc3\xa9n\xc3\xa9ficiaire"), - cst_tablissementHabilit= - caml_string_of_jsbytes("\xc3\x89tablissementHabilit\xc3\xa9"), - cst_OuiAvecLoyerOuCharges=caml_string_of_jsbytes("OuiAvecLoyerOuCharges"), - cst_Non$0=caml_string_of_jsbytes("Non"), - cst_Zone1=caml_string_of_jsbytes("Zone1"), - cst_Zone2=caml_string_of_jsbytes("Zone2"), - cst_Zone3=caml_string_of_jsbytes("Zone3"), - cst_DateDeNaissance=caml_string_of_jsbytes("DateDeNaissance"), - cst_AvantPremierJourMoisCivilT= - caml_string_of_jsbytes - ("AvantPremierJourMoisCivilTroisi\xc3\xa8meMoisDeGrossesse"), - cst_Apr_sPremierJourMoisCivilT= - caml_string_of_jsbytes - ("Apr\xc3\xa8sPremierJourMoisCivilTroisi\xc3\xa8meMoisDeGrossesse"), - cst_Ascendant=caml_string_of_jsbytes("Ascendant"), - cst_Descendant=caml_string_of_jsbytes("Descendant"), - cst_Collat_ralDeuxi_meTroisi_m= - caml_string_of_jsbytes - ("Collat\xc3\xa9ralDeuxi\xc3\xa8meTroisi\xc3\xa8meDegr\xc3\xa9"), - cst_PasDeGardeAltern_e= - caml_string_of_jsbytes("PasDeGardeAltern\xc3\xa9e"), - cst_GardeAltern_eCoefficientPr= - caml_string_of_jsbytes("GardeAltern\xc3\xa9eCoefficientPriseEnCharge"), - cst_DemandeurOuConjointOuParen= - caml_string_of_jsbytes - ("DemandeurOuConjointOuParentOuViaPartsSoci\xc3\xa9t\xc3\xa9s"), - cst_Autre$0=caml_string_of_jsbytes("Autre"), - cst_AllocationsFamiliales$1= - caml_string_of_jsbytes("AllocationsFamiliales"), - cst_Compl_mentFamilial$0= - caml_string_of_jsbytes("Compl\xc3\xa9mentFamilial"), - cst_AllocationJeuneEnfant=caml_string_of_jsbytes("AllocationJeuneEnfant"), - cst_AllocationSoutienFamilial$1= - caml_string_of_jsbytes("AllocationSoutienFamilial"), - cst_AllocationSoutienEnfantHan= - caml_string_of_jsbytes("AllocationSoutienEnfantHandicap\xc3\xa9"), - cst_AllocationAdulteHandicap= - caml_string_of_jsbytes("AllocationAdulteHandicap\xc3\xa9"), - cst_Revenu$0=caml_string_of_jsbytes("Revenu"), - cst_Infini$0=caml_string_of_jsbytes("Infini"), - cst_Revenu=caml_string_of_jsbytes("Revenu"), - cst_Infini=caml_string_of_jsbytes("Infini"), - cst_Oui=caml_string_of_jsbytes("Oui"), - cst_Non=caml_string_of_jsbytes("Non"), - cst_ObjectifD_cenceLogement= - caml_string_of_jsbytes("ObjectifD\xc3\xa9cenceLogement"), - cst_Pr_vuDansListeR321_15= - caml_string_of_jsbytes("Pr\xc3\xa9vuDansListeR321_15"), - cst_AgrandirOuRendreHabitableD= - caml_string_of_jsbytes("AgrandirOuRendreHabitableD331_63"), - cst_PasDeTravaux$0=caml_string_of_jsbytes("PasDeTravaux"), - cst_TravauxPourAcquisitionD832= - caml_string_of_jsbytes("TravauxPourAcquisitionD832_15_1"), - cst_TravauxSurLogementD_j_Acqu= - caml_string_of_jsbytes - ("TravauxSurLogementD\xc3\xa9j\xc3\xa0AcquisD832_15_2"), - cst_PasDeTravaux=caml_string_of_jsbytes("PasDeTravaux"), - cst_Demandeur=caml_string_of_jsbytes("Demandeur"), - cst_VendeurQuandDemandeurACont= - caml_string_of_jsbytes("VendeurQuandDemandeurAContratLocationAccession"), - cst_D331_32=caml_string_of_jsbytes("D331_32"), - cst_D331_63_64=caml_string_of_jsbytes("D331_63_64"), - cst_D331_59_8=caml_string_of_jsbytes("D331_59_8"), - cst_D331_76_1=caml_string_of_jsbytes("D331_76_1"), - cst_Autre=caml_string_of_jsbytes("Autre"), - cst_The_function_age_l512_3_2_= - caml_string_of_jsbytes - ("The function 'age_l512_3_2_in' translation isn't yet supported..."), - cst_The_function_n_nombre_part= - caml_string_of_jsbytes - ("The function 'n_nombre_parts_d832_25_in' translation isn't yet supported..."), - cst_The_function_limitation_ma$0= - caml_string_of_jsbytes - ("The function 'limitation_majoration_personnes_a_charge_in' translation isn't yet supported..."), - cst_The_function_condition_2_d= - caml_string_of_jsbytes - ("The function 'condition_2_du_832_25_in' translation isn't yet supported..."), - cst_The_function_limitation_ma= - caml_string_of_jsbytes - ("The function 'limitation_majoration_personnes_a_charge_in' translation isn't yet supported..."), - cst_The_function_date_entree_v= - caml_string_of_jsbytes - ("The function 'date_entree_vigueur_differee_cch_in' translation isn't yet supported..."), - cst_The_function_condition_log= - caml_string_of_jsbytes - ("The function 'condition_logement_surface_in' translation isn't yet supported..."), - cst_The_function_condition_log$0= - caml_string_of_jsbytes - ("The function 'condition_logement_residence_principale_in' translation isn't yet supported..."), - cst_The_function_condition_2_r= - caml_string_of_jsbytes - ("The function 'condition_2_r823_4' translation isn't yet supported..."), - cst_AccessionProprieteLocalUsa= - caml_string_of_jsbytes("AccessionProprieteLocalUsageExclusifHabitation"), - cst_Locataire$0=caml_string_of_jsbytes("Locataire"), - cst_LocationAccession$0=caml_string_of_jsbytes("LocationAccession"), - cst_ResidentLogementFoyer=caml_string_of_jsbytes("ResidentLogementFoyer"), - cst_SousLocataire$0=caml_string_of_jsbytes("SousLocataire"), - cst_AccessionPropriete=caml_string_of_jsbytes("AccessionPropriete"), - cst_Location$0=caml_string_of_jsbytes("Location"), - cst_LogementFoyer$0=caml_string_of_jsbytes("LogementFoyer"), - cst_AutrePersonneACharge=caml_string_of_jsbytes("AutrePersonneACharge"), - cst_EnfantACharge=caml_string_of_jsbytes("EnfantACharge"), - cst_The_function_conditions_ho$0= - caml_string_of_jsbytes - ("The function 'conditions_hors_age' translation isn't yet supported..."), - cst_The_function_droit_ouvert_$0= - caml_string_of_jsbytes - ("The function 'droit_ouvert' translation isn't yet supported..."), - cst_Changement$0=caml_string_of_jsbytes("Changement"), - cst_PasDeChangement$0=caml_string_of_jsbytes("PasDeChangement"), - cst_Etrangere=caml_string_of_jsbytes("Etrangere"), - cst_Francaise=caml_string_of_jsbytes("Francaise"), - cst_Non$4=caml_string_of_jsbytes("Non"), - cst_Oui$2=caml_string_of_jsbytes("Oui"), - cst_BailleurPrive=caml_string_of_jsbytes("BailleurPrive"), - cst_BailleurPriveAvecConventio= - caml_string_of_jsbytes("BailleurPriveAvecConventionnementSocial"), - cst_BailleurSocial$0=caml_string_of_jsbytes("BailleurSocial"), - cst_MoinsDeTroisEnfants$0=caml_string_of_jsbytes("MoinsDeTroisEnfants"), - cst_PlusDeTroisEnfants$0=caml_string_of_jsbytes("PlusDeTroisEnfants"), - cst_Ancien$0=caml_string_of_jsbytes("Ancien"), - cst_Neuf$0=caml_string_of_jsbytes("Neuf"), - cst_The_function_traitement_ai$8= - caml_string_of_jsbytes - ("The function 'traitement_aide_finale' translation isn't yet supported..."), - cst_The_function_traitement_ai$7= - caml_string_of_jsbytes - ("The function 'traitement_aide_finale' translation isn't yet supported..."), - cst_The_function_traitement_ai$6= - caml_string_of_jsbytes - ("The function 'traitement_aide_finale' translation isn't yet supported..."), - cst_The_function_traitement_ai$5= - caml_string_of_jsbytes - ("The function 'traitement_aide_finale' translation isn't yet supported..."), - cst_The_function_traitement_ai$4= - caml_string_of_jsbytes - ("The function 'traitement_aide_finale' translation isn't yet supported..."), - cst_The_function_traitement_ai$3= - caml_string_of_jsbytes - ("The function 'traitement_aide_finale' translation isn't yet supported..."), - cst_The_function_traitement_ai$2= - caml_string_of_jsbytes - ("The function 'traitement_aide_finale' translation isn't yet supported..."), - cst_The_function_traitement_ai$1= - caml_string_of_jsbytes - ("The function 'traitement_aide_finale' translation isn't yet supported..."), - cst_The_function_traitement_ai$0= - caml_string_of_jsbytes - ("The function 'traitement_aide_finale' translation isn't yet supported..."), - cst_The_function_traitement_ai= - caml_string_of_jsbytes - ("The function 'traitement_aide_finale' translation isn't yet supported..."), - cst_The_function_montant_trans= - caml_string_of_jsbytes - ("The function 'montant' translation isn't yet supported..."), - cst_AllocationEducationEnfantH$0= - caml_string_of_jsbytes("AllocationEducationEnfantHandicape"), - cst_AllocationJournalierePrese$0= - caml_string_of_jsbytes("AllocationJournalierePresenceParentale"), - cst_AllocationLogement$2=caml_string_of_jsbytes("AllocationLogement"), - cst_AllocationRentreeScolaire$0= - caml_string_of_jsbytes("AllocationRentreeScolaire"), - cst_AllocationSoutienFamilial$4= - caml_string_of_jsbytes("AllocationSoutienFamilial"), - cst_AllocationsFamiliales$4= - caml_string_of_jsbytes("AllocationsFamiliales"), - cst_ComplementFamilial$1=caml_string_of_jsbytes("ComplementFamilial"), - cst_PrestationAccueilJeuneEnfa$2= - caml_string_of_jsbytes("PrestationAccueilJeuneEnfant"), - cst_Apres$0=caml_string_of_jsbytes("Apres"), - cst_Avant$2=caml_string_of_jsbytes("Avant"), - cst_Pendant$2=caml_string_of_jsbytes("Pendant"), - cst_EffectiveEtPermanente$4= - caml_string_of_jsbytes("EffectiveEtPermanente"), - cst_GardeAlterneeAllocataireUn$0= - caml_string_of_jsbytes("GardeAlterneeAllocataireUnique"), - cst_GardeAlterneePartageAlloca$0= - caml_string_of_jsbytes("GardeAlterneePartageAllocations"), - cst_ServicesSociauxAllocationV$5= - caml_string_of_jsbytes("ServicesSociauxAllocationVerseeALaFamille"), - cst_ServicesSociauxAllocationV$6= - caml_string_of_jsbytes - ("ServicesSociauxAllocationVerseeAuxServicesSociaux"), - cst_Guadeloupe$2=caml_string_of_jsbytes("Guadeloupe"), - cst_Guyane$2=caml_string_of_jsbytes("Guyane"), - cst_LaReunion$0=caml_string_of_jsbytes("LaReunion"), - cst_Martinique$2=caml_string_of_jsbytes("Martinique"), - cst_Mayotte$2=caml_string_of_jsbytes("Mayotte"), - cst_Metropole$0=caml_string_of_jsbytes("Metropole"), - cst_SaintBarthelemy$0=caml_string_of_jsbytes("SaintBarthelemy"), - cst_SaintMartin$2=caml_string_of_jsbytes("SaintMartin"), - cst_SaintPierreEtMiquelon$2= - caml_string_of_jsbytes("SaintPierreEtMiquelon"), - cst_Couple$0=caml_string_of_jsbytes("Couple"), - cst_PersonneSeule$0=caml_string_of_jsbytes("PersonneSeule"), - cst_AutresPersonnes$0=caml_string_of_jsbytes("AutresPersonnes"), - cst_EtudiantLogeEnChambreCROUS= - caml_string_of_jsbytes("EtudiantLogeEnChambreCROUS"), - cst_EtudiantLogeEnChambreCROUS$0= - caml_string_of_jsbytes("EtudiantLogeEnChambreCROUSRehabilitee"), - cst_PersonnesAgeesSelon3DeD842= - caml_string_of_jsbytes("PersonnesAgeesSelon3DeD842_16"), - cst_Autre$4=caml_string_of_jsbytes("Autre"), - cst_FoyerJeunesTrvailleursOuMi$0= - caml_string_of_jsbytes - ("FoyerJeunesTrvailleursOuMigrantsConventionneL353_2Avant1995"), - cst_LogementPersonnesAgeesOuHa= - caml_string_of_jsbytes("LogementPersonnesAgeesOuHandicapees"), - cst_ResidenceSociale=caml_string_of_jsbytes("ResidenceSociale"), - cst_EffectiveEtPermanente$3= - caml_string_of_jsbytes("EffectiveEtPermanente"), - cst_ResidenceAlterneeAllocatai= - caml_string_of_jsbytes("ResidenceAlterneeAllocataireUnique"), - cst_ResidenceAlterneeAllocatio= - caml_string_of_jsbytes("ResidenceAlterneeAllocationsPartagee"), - cst_Celibataire=caml_string_of_jsbytes("Celibataire"), - cst_CelibataireSepareDeFait= - caml_string_of_jsbytes("CelibataireSepareDeFait"), - cst_ConcubinageDontSepareDeFai= - caml_string_of_jsbytes("ConcubinageDontSepareDeFait"), - cst_Concubins$0=caml_string_of_jsbytes("Concubins"), - cst_Maries=caml_string_of_jsbytes("Maries"), - cst_Pacses=caml_string_of_jsbytes("Pacses"), - cst_AidePersonnaliseeLogement= - caml_string_of_jsbytes("AidePersonnaliseeLogement"), - cst_AllocationLogementFamilial$2= - caml_string_of_jsbytes("AllocationLogementFamiliale"), - cst_AllocationLogementSociale$2= - caml_string_of_jsbytes("AllocationLogementSociale"), - cst_Accord$0=caml_string_of_jsbytes("Accord"), - cst_PasdAccord$0=caml_string_of_jsbytes("PasdAccord"), - cst_AllocationLogementFamilial$1= - caml_string_of_jsbytes("AllocationLogementFamiliale"), - cst_AllocationLogementSociale$1= - caml_string_of_jsbytes("AllocationLogementSociale"), - cst_PasEligible=caml_string_of_jsbytes("PasEligible"), - cst_ImpayeLoyer=caml_string_of_jsbytes("ImpayeLoyer"), - cst_ImpayePret=caml_string_of_jsbytes("ImpayePret"), - cst_Loyer$0=caml_string_of_jsbytes("Loyer"), - cst_Mensualite=caml_string_of_jsbytes("Mensualite"), - cst_TotalAnnuelEcheances=caml_string_of_jsbytes("TotalAnnuelEcheances"), - cst_Bailleur$0=caml_string_of_jsbytes("Bailleur"), - cst_Beneficiaire=caml_string_of_jsbytes("Beneficiaire"), - cst_EtablissementHabilite=caml_string_of_jsbytes("EtablissementHabilite"), - cst_Non$3=caml_string_of_jsbytes("Non"), - cst_OuiAvecLoyerOuCharges$0= - caml_string_of_jsbytes("OuiAvecLoyerOuCharges"), - cst_Zone1$0=caml_string_of_jsbytes("Zone1"), - cst_Zone2$0=caml_string_of_jsbytes("Zone2"), - cst_Zone3$0=caml_string_of_jsbytes("Zone3"), - cst_ApresPremierJourMoisCivilT= - caml_string_of_jsbytes - ("ApresPremierJourMoisCivilTroisiemeMoisDeGrossesse"), - cst_AvantPremierJourMoisCivilT$0= - caml_string_of_jsbytes - ("AvantPremierJourMoisCivilTroisiemeMoisDeGrossesse"), - cst_DateDeNaissance$0=caml_string_of_jsbytes("DateDeNaissance"), - cst_Ascendant$0=caml_string_of_jsbytes("Ascendant"), - cst_CollateralDeuxiemeTroisiem= - caml_string_of_jsbytes("CollateralDeuxiemeTroisiemeDegre"), - cst_Descendant$0=caml_string_of_jsbytes("Descendant"), - cst_GardeAlterneeCoefficientPr= - caml_string_of_jsbytes("GardeAlterneeCoefficientPriseEnCharge"), - cst_PasDeGardeAlternee=caml_string_of_jsbytes("PasDeGardeAlternee"), - cst_Autre$3=caml_string_of_jsbytes("Autre"), - cst_DemandeurOuConjointOuParen$0= - caml_string_of_jsbytes("DemandeurOuConjointOuParentOuViaPartsSocietes"), - cst_AllocationAdulteHandicape= - caml_string_of_jsbytes("AllocationAdulteHandicape"), - cst_AllocationJeuneEnfant$0= - caml_string_of_jsbytes("AllocationJeuneEnfant"), - cst_AllocationSoutienEnfantHan$0= - caml_string_of_jsbytes("AllocationSoutienEnfantHandicape"), - cst_AllocationSoutienFamilial$3= - caml_string_of_jsbytes("AllocationSoutienFamilial"), - cst_AllocationsFamiliales$3= - caml_string_of_jsbytes("AllocationsFamiliales"), - cst_ComplementFamilial$0=caml_string_of_jsbytes("ComplementFamilial"), - cst_Infini$2=caml_string_of_jsbytes("Infini"), - cst_Revenu$2=caml_string_of_jsbytes("Revenu"), - cst_Infini$1=caml_string_of_jsbytes("Infini"), - cst_Revenu$1=caml_string_of_jsbytes("Revenu"), - cst_Non$2=caml_string_of_jsbytes("Non"), - cst_Oui$1=caml_string_of_jsbytes("Oui"), - cst_AgrandirOuRendreHabitableD$0= - caml_string_of_jsbytes("AgrandirOuRendreHabitableD331_63"), - cst_ObjectifDecenceLogement= - caml_string_of_jsbytes("ObjectifDecenceLogement"), - cst_PasDeTravaux$2=caml_string_of_jsbytes("PasDeTravaux"), - cst_PrevuDansListeR321_15=caml_string_of_jsbytes("PrevuDansListeR321_15"), - cst_PasDeTravaux$1=caml_string_of_jsbytes("PasDeTravaux"), - cst_TravauxPourAcquisitionD832$0= - caml_string_of_jsbytes("TravauxPourAcquisitionD832_15_1"), - cst_TravauxSurLogementDejaAcqu= - caml_string_of_jsbytes("TravauxSurLogementDejaAcquisD832_15_2"), - cst_Demandeur$0=caml_string_of_jsbytes("Demandeur"), - cst_VendeurQuandDemandeurACont$0= - caml_string_of_jsbytes("VendeurQuandDemandeurAContratLocationAccession"), - cst_Autre$2=caml_string_of_jsbytes("Autre"), - cst_D331_32$0=caml_string_of_jsbytes("D331_32"), - cst_D331_59_8$0=caml_string_of_jsbytes("D331_59_8"), - cst_D331_63_64$0=caml_string_of_jsbytes("D331_63_64"), - cst_D331_76_1$0=caml_string_of_jsbytes("D331_76_1"), - cst_AidesLogementLib=caml_string_of_jsbytes("AidesLogementLib"), - Runtime_ocaml_Runtime=global_data.Runtime_ocaml__Runtime; - global_data.CamlinternalOO; - var - Stdlib_Array=global_data.Stdlib__Array, - Runtime_jsoo_Runtime=global_data.Runtime_jsoo__Runtime, - Stdlib=global_data.Stdlib, - Stdlib_Printf=global_data.Stdlib__Printf, - Js_of_ocaml_Js=global_data.Js_of_ocaml__Js, - Law_source=[0]; - caml_register_global(9315,Law_source,"Law_source"); - var - PriseEnCharge=[0], - _kl_= +//# 1 "law_source/.law_source.objs/jsoo/default/law_source.cma.js" +// Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 + +//# 16 "law_source/.law_source.objs/jsoo/default/law_source.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_Arr_t_du_14_d_cembre_2020_ = + "Arr\xc3\xaat\xc3\xa9 du 14 d\xc3\xa9cembre 2020 relatif au montant des plafonds de ressources de certaines prestations familiales et aux tranches du bar\xc3\xa8me applicable au recouvrement des indus et \xc3\xa0 la saisie des prestations", + cst_Arr_t_du_19_avril_2022_rel = + "Arr\xc3\xaat\xc3\xa9 du 19 avril 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance", + cst_Arr_t_du_29_juillet_2022_r = + "Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance", + cst_Chapitre_5_Prestations_fam = + "Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es", + cst_Circulaire_interminist_rie = + "Circulaire interminist\xc3\xa9rielle N\xc2\xb0 DSS/SD2B/2017/352 du 22 d\xc3\xa9cembre 2017 relative \xc3\xa0 la revalorisation au 1er janvier 2018 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte", + cst_Code_de_la_s_curit_sociale = + "Code de la s\xc3\xa9curit\xc3\xa9 sociale", + cst_Dispositions_sp_ciales_rel = + "Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte", + cst_D_cret_n_2018_1173_du_19_d = + "D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance", + cst_D_cret_n_2019_1387_du_18_d = + "D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance", + cst_D_cret_n_2020_1598_du_16_d = + "D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance", + cst_D_cret_n_2021_1741_du_22_d = + "D\xc3\xa9cret n\xc2\xb0 2021-1741 du 22 d\xc3\xa9cembre 2021 portant rel\xc3\xa8vement du salaire minimum de croissance", + cst_D_cret_n_2022_1608_du_22_d = + "D\xc3\xa9cret n\xc2\xb0 2022-1608 du 22 d\xc3\xa9cembre 2022 portant rel\xc3\xa8vement du salaire minimum de croissance", + cst_D_cret_n_2002_423_du_29_ma = + "D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte", + cst_EnfantLePlus_g = "EnfantLePlus\xc3\x82g\xc3\xa9", + cst_Instruction_interministeri = + "Instruction interministerielle no DSS/SD2B/2019/261 du 18 d\xc3\xa9cembre 2019 relative \xc3\xa0 la revalorisation au 1er janvier 2020 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte", + cst_Instruction_interminist_ri = + "Instruction interminist\xc3\xa9rielle n\xc2\xb0 DSS/SD2B/2018/279 du 17 d\xc3\xa9cembre 2018 relative \xc3\xa0 la revalorisation au 1er janvier 2019 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte", + cst_Livre_5_Prestations_famili = + "Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es", + cst_Livre_7_R_gimes_divers_Dis = + "Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses", + cst_Partie_l_gislative = "Partie l\xc3\xa9gislative", + cst_Partie_r_glementaire_D_cre$0 = + "Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat", + cst_Partie_r_glementaire_D_cre = + "Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples", + cst_R_gles_diverses = "R\xc3\xa8gles diverses", + cst_Titre_1_Champ_d_applicatio = + "Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s", + cst_Titre_2_Prestations_g_n_ra = + "Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien", + cst_Titre_5_Dispositions_parti = + "Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin", + cst_Titre_5_D_partements_d_out = + "Titre 5 : D\xc3\xa9partements d'outre-mer", + cst_V_rification_geInf_rieurOu = + "V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80", + cst_V_rification_geSup_rieur = + "V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80", + cst_ann_es_in$1 = "ann\xc3\xa9es_in", + cst_compl_ment_d_gressif = "compl\xc3\xa9ment_d\xc3\xa9gressif", + cst_conditions_hors_ge$0 = "conditions_hors_\xc3\xa2ge", + cst_enfant_le_plus_g = "enfant_le_plus_\xc3\xa2g\xc3\xa9", + cst_est_enfant_le_plus_g = "est_enfant_le_plus_\xc3\xa2g\xc3\xa9", + cst_est_inf_rieur_ou_gal$0 = "est_inf\xc3\xa9rieur_ou_\xc3\xa9gal", + cst_est_sup_rieur$0 = "est_sup\xc3\xa9rieur", + cst_i_montant_vers$0 = "i_montant_vers\xc3\xa9", + cst_le_plus_g$0 = "le_plus_\xc3\xa2g\xc3\xa9", + cst_montant_avec_garde_altern_ = + "montant_avec_garde_altern\xc3\xa9e_majoration", + cst_montant_initial_m_tropole_ = + "montant_initial_m\xc3\xa9tropole_majoration", + cst_montant_vers$0 = "montant_vers\xc3\xa9", + cst_r_gime_outre_mer_l751_1$0 = "r\xc3\xa9gime_outre_mer_l751_1", + cst_r_sidence_in$2 = "r\xc3\xa9sidence_in", + cst_pilogue = "\xc3\x89pilogue", + cst_ge_l512_3_2$0 = "\xc3\xa2ge_l512_3_2", + cst_ge_minimum_alin_a_1_l521_3$0 = + "\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3", + cst_0$67 = "0", + cst_0$68 = "0.", + cst_0_0463$1 = "0.0463", + cst_0_0588$1 = "0.0588", + cst_0_08$1 = "0.08", + cst_0_16$2 = "0.16", + cst_0_32$1 = "0.32", + cst_0_5$1 = "0.5", + cst_0_55$1 = "0.55", + cst_1$29 = "1", + cst_1$28 = "1.", + cst_12$11 = "12.", + cst_169$1 = "169.", + cst_2$17 = "2", + cst_3$3 = "3", + cst_559500$1 = "559500", + cst_562800$1 = "562800", + cst_568400$1 = "568400", + cst_577500$1 = "577500", + cst_582700$1 = "582700", + cst_AllocationFamilialesAvril2 = "AllocationFamilialesAvril2008", + cst_Allocations_familiales = "Allocations familiales", + cst_AllocationsFamiliales$0 = "AllocationsFamiliales", + cst_Annexe = "Annexe", + cst_Article_1 = "Article 1", + cst_Article_2 = "Article 2", + cst_Article_7 = "Article 7", + cst_Article_D521_1 = "Article D521-1", + cst_Article_D521_2 = "Article D521-2", + cst_Article_D521_3 = "Article D521-3", + cst_Article_D755_5 = "Article D755-5", + cst_Article_L512_3 = "Article L512-3", + cst_Article_L521_1 = "Article L521-1", + cst_Article_L521_2 = "Article L521-2", + cst_Article_L521_3 = "Article L521-3", + cst_Article_L755_12 = "Article L755-12", + cst_Article_R512_2 = "Article R512-2", + cst_Article_R521_1 = "Article R521-1", + cst_Article_R521_3 = "Article R521-3", + cst_BaseMensuelleAllocationsFa = "BaseMensuelleAllocationsFamiliales", + cst_Champs_d_applications = "Champs d'applications", + cst_Chapitre_1er_Allocations_f = "Chapitre 1er : Allocations familiales", + cst_Chapitre_2_Champ_d_applica = "Chapitre 2 : Champ d'application", + cst_Chapitre_2_Champ_d_applica$0 = "Chapitre 2 : Champ d'application.", + cst_Interface_du_programme = "Interface du programme", + cst_InterfaceAllocationsFamili = "InterfaceAllocationsFamiliales", + cst_Montant_de_la_base_mensuel = + "Montant de la base mensuelle des allocations familiales", + cst_Montant_des_plafonds_de_re = "Montant des plafonds de ressources", + cst_Montant_du_salaire_minimum = + "Montant du salaire minimum de croissance", + cst_Prestations_familiales = "Prestations familiales", + cst_PrestationsFamiliales = "PrestationsFamiliales", + cst_Prologue = "Prologue", + cst_Smic = "Smic", + cst_allocations_familiales = "allocations_familiales", + cst_bmaf = "bmaf", + cst_brut_horaire$0 = "brut_horaire", + cst_date_courante_in$5 = "date_courante_in", + cst_date_naissance_in$1 = "date_naissance_in", + cst_droit_ouvert$0 = "droit_ouvert", + cst_droit_ouvert_forfaitaire = "droit_ouvert_forfaitaire", + cst_droit_ouvert_majoration = "droit_ouvert_majoration", + cst_examples_allocations_famil$5 = + "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr", + cst_examples_allocations_famil$7 = + "examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr", + cst_examples_allocations_famil$6 = + "examples/allocations_familiales/../smic/smic.catala_fr", + cst_examples_allocations_famil$3 = + "examples/allocations_familiales/decrets_divers.catala_fr", + cst_examples_allocations_famil = + "examples/allocations_familiales/epilogue.catala_fr", + cst_examples_allocations_famil$2 = + "examples/allocations_familiales/prologue.catala_fr", + cst_examples_allocations_famil$0 = + "examples/allocations_familiales/securite_sociale_D.catala_fr", + cst_examples_allocations_famil$4 = + "examples/allocations_familiales/securite_sociale_L.catala_fr", + cst_examples_allocations_famil$1 = + "examples/allocations_familiales/securite_sociale_R.catala_fr", + cst_input0 = "input0", + cst_montant$0 = "montant", + cst_montant_initial_majoration = "montant_initial_majoration", + cst_output = "output", + cst_prestations_familiales = "prestations_familiales", + cst_prise_en_compte = "prise_en_compte", + cst_smic = "smic", + cst_version_avril_2008 = "version_avril_2008", + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + function caml_call4(f, a0, a1, a2, a3){ + return (f.l >= 0 ? f.l : f.l = f.length) == 4 + ? f(a0, a1, a2, a3) + : runtime.caml_call_gen(f, [a0, a1, a2, a3]); + } + var + global_data = runtime.caml_get_global_data(), + Runtime_ocaml_Runtime = global_data.Runtime_ocaml__Runtime, + PriseEnCharge = [0], + _kl_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 90, 14, 90, 29, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _ke_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _ke_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 101, 18, 101, 64, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _kf_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _kf_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 100, 5, 100, 72, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _kd_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _kd_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 100, 5, 100, 72, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _j$_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _j$_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 87, 14, 87, 53, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _j7_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _j7_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 86, 14, 86, 50, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _j3_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _j3_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 89, 14, 89, 46, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jZ_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jZ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 88, 14, 88, 54, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jU_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jU_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 97, 18, 97, 72, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jV_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jV_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 96, 5, 96, 80, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jT_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jT_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 96, 5, 96, 80, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jO_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jO_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 93, 18, 93, 67, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jP_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jP_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 92, 5, 92, 75, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jN_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jN_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 92, 5, 92, 75, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jJ_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jJ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 117, 14, 117, 30, [0, - caml_string_of_jsbytes("Article L131-1"), - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]]], - _jG_=[0,0], - _jH_=[1,0], - _jI_=[2,0], - _jK_= + "Article L131-1", + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]]], + _jG_ = [0, 0], + _jH_ = [1, 0], + _jI_ = [2, 0], + _jK_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 76, 11, 76, 27, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jF_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jF_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 76, 11, 76, 27, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jL_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jL_ = + [0, cst_InterfaceAllocationsFamili, [0, "enfants_\xc3\xa0_charge", 0]], + _jQ_ = [0, - caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), - [0,caml_string_of_jsbytes("enfants_\xc3\xa0_charge"),0]], - _jQ_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 92, 5, 92, 75, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jR_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jR_ = [0, - caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), + cst_InterfaceAllocationsFamili, [0, - caml_string_of_jsbytes - ("allocations_familiales.personne_charge_effective_permanente_est_parent"), + "allocations_familiales.personne_charge_effective_permanente_est_parent", 0]], - _jM_= + _jM_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 92, 5, 92, 75, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jW_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jW_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 96, 5, 96, 80, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jX_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jX_ = [0, - caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), + cst_InterfaceAllocationsFamili, [0, - caml_string_of_jsbytes - ("allocations_familiales.personne_charge_effective_permanente_remplit_titre_I"), + "allocations_familiales.personne_charge_effective_permanente_remplit_titre_I", 0]], - _jS_= + _jS_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 96, 5, 96, 80, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _j0_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _j0_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 88, 14, 88, 54, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _j1_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _j1_ = [0, - caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("allocations_familiales.ressources_m\xc3\xa9nage"), - 0]], - _jY_= + cst_InterfaceAllocationsFamili, + [0, "allocations_familiales.ressources_m\xc3\xa9nage", 0]], + _jY_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 88, 14, 88, 54, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _j4_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _j4_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 89, 14, 89, 46, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _j5_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _j5_ = [0, - caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), - [0,caml_string_of_jsbytes("allocations_familiales.r\xc3\xa9sidence"),0]], - _j2_= + cst_InterfaceAllocationsFamili, + [0, "allocations_familiales.r\xc3\xa9sidence", 0]], + _j2_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 89, 14, 89, 46, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _j8_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _j8_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 86, 14, 86, 50, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _j9_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _j9_ = [0, - caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), - [0,caml_string_of_jsbytes("allocations_familiales.date_courante"),0]], - _j6_= + cst_InterfaceAllocationsFamili, + [0, "allocations_familiales.date_courante", 0]], + _j6_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 86, 14, 86, 50, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _ka_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _ka_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 87, 14, 87, 53, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _kb_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _kb_ = [0, - caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("allocations_familiales.enfants_\xc3\xa0_charge"), - 0]], - _j__= + cst_InterfaceAllocationsFamili, + [0, "allocations_familiales.enfants_\xc3\xa0_charge", 0]], + _j__ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 87, 14, 87, 53, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _kg_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _kg_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 100, 5, 100, 72, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _kh_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _kh_ = [0, - caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), + cst_InterfaceAllocationsFamili, [0, - caml_string_of_jsbytes - ("allocations_familiales.avait_enfant_\xc3\xa0_charge_avant_1er_janvier_2012"), + "allocations_familiales.avait_enfant_\xc3\xa0_charge_avant_1er_janvier_2012", 0]], - _kc_= + _kc_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 100, 5, 100, 72, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _ki_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _ki_ = [0, - caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), - [0, - caml_string_of_jsbytes("allocations_familiales"), - [0,caml_string_of_jsbytes("AllocationsFamiliales"),0]]], - _kj_= + cst_InterfaceAllocationsFamili, + [0, cst_allocations_familiales, [0, cst_AllocationsFamiliales$0, 0]]], + _kj_ = [0, - caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), - [0, - caml_string_of_jsbytes("allocations_familiales"), - [0,caml_string_of_jsbytes("AllocationsFamiliales"),0]]], - _km_= + cst_InterfaceAllocationsFamili, + [0, cst_allocations_familiales, [0, cst_AllocationsFamiliales$0, 0]]], + _km_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 80, 12, 80, 27, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _kk_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _kk_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 80, 12, 80, 27, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _kn_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _kn_ = [0, cst_InterfaceAllocationsFamili, [0, cst_i_montant_vers$0, 0]], + _jA_ = [0, - caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), - [0,caml_string_of_jsbytes("i_montant_vers\xc3\xa9"),0]], - _jA_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 45, 14, 45, 27, - [0, - caml_string_of_jsbytes("R\xc3\xa8gles diverses"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jw_= + [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], + cst_0$66 = cst_0$67, + _jw_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 183, 14, 183, 62, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _js_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _js_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("compl\xc3\xa9ment_d\xc3\xa9gressif"), - [0,caml_string_of_jsbytes("input0"),0]]], - _jt_= + cst_AllocationsFamiliales$0, + [0, cst_compl_ment_d_gressif, [0, cst_input0, 0]]], + _jt_ = [0, cst_AllocationsFamiliales$0, [0, cst_compl_ment_d_gressif, 0]], + _ju_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("compl\xc3\xa9ment_d\xc3\xa9gressif"),0]], - _ju_= + cst_AllocationsFamiliales$0, + [0, cst_compl_ment_d_gressif, [0, cst_output, 0]]], + _jv_ = [0, cst_AllocationsFamiliales$0, [0, cst_compl_ment_d_gressif, 0]], + cst_0$65 = cst_0$67, + _jo_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("compl\xc3\xa9ment_d\xc3\xa9gressif"), - [0,caml_string_of_jsbytes("output"),0]]], - _jv_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("compl\xc3\xa9ment_d\xc3\xa9gressif"),0]], - _jo_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 189, 14, 189, 61, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _jk_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _jk_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 39, 14, 39, 38, - [0, - caml_string_of_jsbytes("R\xc3\xa8gles diverses"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jg_= + [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], + _jg_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("montant_avec_garde_altern\xc3\xa9e_majoration"), - [0,caml_string_of_jsbytes("input0"),0]]], - _jh_= + cst_AllocationsFamiliales$0, + [0, cst_montant_avec_garde_altern_, [0, cst_input0, 0]]], + _jh_ = + [0, cst_AllocationsFamiliales$0, [0, cst_montant_avec_garde_altern_, 0]], + _ji_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("montant_avec_garde_altern\xc3\xa9e_majoration"), - 0]], - _ji_= + cst_AllocationsFamiliales$0, + [0, cst_montant_avec_garde_altern_, [0, cst_output, 0]]], + _jj_ = + [0, cst_AllocationsFamiliales$0, [0, cst_montant_avec_garde_altern_, 0]], + cst_0$63 = cst_0$67, + cst_0$64 = cst_0$67, + _jc_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("montant_avec_garde_altern\xc3\xa9e_majoration"), - [0,caml_string_of_jsbytes("output"),0]]], - _jj_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("montant_avec_garde_altern\xc3\xa9e_majoration"), - 0]], - _jc_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 37, 14, 37, 32, - [0, - caml_string_of_jsbytes("R\xc3\xa8gles diverses"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _i__= + [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], + cst_0$62 = cst_0$67, + _i__ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_R.catala_fr"), + cst_examples_allocations_famil$1, 186, 5, 186, 43, [0, - caml_string_of_jsbytes("Article R521-4"), + "Article R521-4", [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _i2_= + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _i2_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("prise_en_compte"), - [0,caml_string_of_jsbytes("input0"),0]]], - _i3_= + cst_AllocationsFamiliales$0, + [0, cst_prise_en_compte, [0, cst_input0, 0]]], + _i3_ = [0, cst_AllocationsFamiliales$0, [0, cst_prise_en_compte, 0]], + _i4_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("prise_en_compte"),0]], - _i4_= + cst_AllocationsFamiliales$0, + [0, cst_prise_en_compte, [0, cst_output, 0]]], + _i5_ = [0, cst_AllocationsFamiliales$0, [0, cst_prise_en_compte, 0]], + cst_1$27 = cst_1$28, + cst_0_5$0 = cst_0_5$1, + cst_0$61 = cst_0$68, + _i6_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("prise_en_compte"), - [0,caml_string_of_jsbytes("output"),0]]], - _i5_= + cst_AllocationsFamiliales$0, + [0, cst_montant_initial_majoration, [0, cst_input0, 0]]], + _i7_ = + [0, cst_AllocationsFamiliales$0, [0, cst_montant_initial_majoration, 0]], + _i8_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("prise_en_compte"),0]], - _i6_= + cst_AllocationsFamiliales$0, + [0, cst_montant_initial_majoration, [0, cst_output, 0]]], + _i9_ = + [0, cst_AllocationsFamiliales$0, [0, cst_montant_initial_majoration, 0]], + _i$_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("montant_initial_majoration"), - [0,caml_string_of_jsbytes("input0"),0]]], - _i7_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("montant_initial_majoration"),0]], - _i8_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("montant_initial_majoration"), - [0,caml_string_of_jsbytes("output"),0]]], - _i9_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("montant_initial_majoration"),0]], - _i$_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 132, 11, 132, 49, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _i1_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _i1_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 132, 11, 132, 49, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _iY_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _iY_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_R.catala_fr"), + cst_examples_allocations_famil$1, 125, 14, 125, 46, [0, - caml_string_of_jsbytes("Article R521-3"), + cst_Article_R521_3, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _iS_= + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_12$10 = cst_12$11, + _iS_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 268, 5, 270, 41, [0, - caml_string_of_jsbytes("Article D521-2"), + cst_Article_D521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _iT_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_12$8 = cst_12$11, + cst_1$26 = cst_1$28, + cst_12$9 = cst_12$11, + _iT_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 142, 11, 142, 52, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _iQ_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + cst_12$7 = cst_12$11, + _iQ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 278, 5, 280, 40, [0, - caml_string_of_jsbytes("Article D521-2"), + cst_Article_D521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _iR_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_12$5 = cst_12$11, + cst_1$25 = cst_1$28, + cst_12$6 = cst_12$11, + _iR_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 142, 11, 142, 52, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _iU_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _iU_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 142, 11, 142, 52, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _iP_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _iP_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 286, 14, 286, 55, [0, - caml_string_of_jsbytes("Article D521-2"), + cst_Article_D521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _iF_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0$60 = cst_0$67, + cst_1$24 = cst_1$29, + _iF_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_majoration"), - [0,caml_string_of_jsbytes("input0"),0]]], - _iG_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_majoration, [0, cst_input0, 0]]], + _iG_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _iH_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _iH_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_majoration, [0, cst_output, 0]]], + _iI_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _iJ_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_majoration"), - [0,caml_string_of_jsbytes("output"),0]]], - _iI_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _iJ_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 379, 5, 383, 55, [0, - caml_string_of_jsbytes("Article D755-5"), + cst_Article_D755_5, [0, - caml_string_of_jsbytes - ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Chapitre_5_Prestations_fam, [0, - caml_string_of_jsbytes("Titre 5 : D\xc3\xa9partements d'outre-mer"), + cst_Titre_5_D_partements_d_out, [0, - caml_string_of_jsbytes - ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), + cst_Livre_7_R_gimes_divers_Dis, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _iK_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0_0369 = "0.0369", + _iK_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 130, 11, 130, 37, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _iz_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + cst_1$23 = cst_1$29, + _iz_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_majoration"), - [0,caml_string_of_jsbytes("input0"),0]]], - _iA_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_majoration, [0, cst_input0, 0]]], + _iA_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _iB_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _iB_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_majoration, [0, cst_output, 0]]], + _iC_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _iD_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_majoration"), - [0,caml_string_of_jsbytes("output"),0]]], - _iC_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _iD_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 389, 5, 392, 56, [0, - caml_string_of_jsbytes("Article D755-5"), + cst_Article_D755_5, [0, - caml_string_of_jsbytes - ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Chapitre_5_Prestations_fam, [0, - caml_string_of_jsbytes("Titre 5 : D\xc3\xa9partements d'outre-mer"), + cst_Titre_5_D_partements_d_out, [0, - caml_string_of_jsbytes - ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), + cst_Livre_7_R_gimes_divers_Dis, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _iE_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0_0567 = "0.0567", + _iE_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 130, 11, 130, 37, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _iL_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _iL_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 130, 11, 130, 37, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _iy_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _iy_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 22, 14, 22, 40, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _iu_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _iu_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("montant_initial_m\xc3\xa9tropole_majoration"), - [0,caml_string_of_jsbytes("input0"),0]]], - _iv_= + cst_AllocationsFamiliales$0, + [0, cst_montant_initial_m_tropole_, [0, cst_input0, 0]]], + _iv_ = + [0, cst_AllocationsFamiliales$0, [0, cst_montant_initial_m_tropole_, 0]], + _iw_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("montant_initial_m\xc3\xa9tropole_majoration"), - 0]], - _iw_= + cst_AllocationsFamiliales$0, + [0, cst_montant_initial_m_tropole_, [0, cst_output, 0]]], + _ix_ = + [0, cst_AllocationsFamiliales$0, [0, cst_montant_initial_m_tropole_, 0]], + _iM_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("montant_initial_m\xc3\xa9tropole_majoration"), - [0,caml_string_of_jsbytes("output"),0]]], - _ix_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("montant_initial_m\xc3\xa9tropole_majoration"), - 0]], - _iM_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 130, 11, 130, 37, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _it_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _it_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 130, 11, 130, 37, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _io_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + cst_1$22 = cst_1$29, + _io_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 356, 5, 357, 69, [0, - caml_string_of_jsbytes("Article D755-5"), + cst_Article_D755_5, [0, - caml_string_of_jsbytes - ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Chapitre_5_Prestations_fam, [0, - caml_string_of_jsbytes("Titre 5 : D\xc3\xa9partements d'outre-mer"), + cst_Titre_5_D_partements_d_out, [0, - caml_string_of_jsbytes - ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), + cst_Livre_7_R_gimes_divers_Dis, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _ip_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _ip_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 104, 11, 104, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _il_=[8,0], - _im_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _il_ = [8, 0], + _im_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 151, 24, 151, 44, [0, - caml_string_of_jsbytes("Article 7"), + cst_Article_7, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _in_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + _in_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 104, 11, 104, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _iq_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _iq_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 104, 11, 104, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ik_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ik_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 18, 14, 18, 34, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _ig_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _ig_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 199, 14, 199, 39, [0, - caml_string_of_jsbytes("Article D521-2"), + cst_Article_D521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _ic_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _ic_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_forfaitaire"), - [0,caml_string_of_jsbytes("input0"),0]]], - _id_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_forfaitaire, [0, cst_input0, 0]]], + _id_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_forfaitaire, 0]], + _ie_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_forfaitaire"),0]], - _ie_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_forfaitaire, [0, cst_output, 0]]], + _if_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_forfaitaire, 0]], + _h5_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_forfaitaire"), - [0,caml_string_of_jsbytes("output"),0]]], - _if_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_majoration, [0, cst_input0, 0]]], + _h6_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _h7_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_forfaitaire"),0]], - _h5_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_majoration, [0, cst_output, 0]]], + _h8_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _h9_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_majoration"), - [0,caml_string_of_jsbytes("input0"),0]]], - _h6_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _h7_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_majoration"), - [0,caml_string_of_jsbytes("output"),0]]], - _h8_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _h9_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 60, 5, 60, 38, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _h__= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0_16$1 = cst_0_16$2, + _h__ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 128, 11, 128, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hZ_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hZ_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_majoration"), - [0,caml_string_of_jsbytes("input0"),0]]], - _h0_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_majoration, [0, cst_input0, 0]]], + _h0_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _h1_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _h1_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_majoration, [0, cst_output, 0]]], + _h2_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _h3_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_majoration"), - [0,caml_string_of_jsbytes("output"),0]]], - _h2_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _h3_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 101, 5, 101, 38, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _h4_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0_08$0 = cst_0_08$1, + _h4_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 128, 11, 128, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hT_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hT_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_majoration"), - [0,caml_string_of_jsbytes("input0"),0]]], - _hU_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_majoration, [0, cst_input0, 0]]], + _hU_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _hV_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _hV_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_majoration, [0, cst_output, 0]]], + _hW_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _hX_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_majoration"), - [0,caml_string_of_jsbytes("output"),0]]], - _hW_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _hX_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 138, 5, 138, 38, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _hY_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0_04 = "0.04", + _hY_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 128, 11, 128, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hN_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hN_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_majoration"), - [0,caml_string_of_jsbytes("input0"),0]]], - _hO_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_majoration, [0, cst_input0, 0]]], + _hO_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _hP_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _hP_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_majoration, [0, cst_output, 0]]], + _hQ_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _hR_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_majoration"), - [0,caml_string_of_jsbytes("output"),0]]], - _hQ_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _hR_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 28, 5, 28, 44, - [0, - caml_string_of_jsbytes("R\xc3\xa8gles diverses"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _hS_= + [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], + cst_0$59 = cst_0$67, + _hS_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 128, 11, 128, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _h$_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _h$_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 128, 11, 128, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hM_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hM_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 128, 11, 128, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hJ_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hJ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_R.catala_fr"), + cst_examples_allocations_famil$1, 128, 14, 128, 41, [0, - caml_string_of_jsbytes("Article R521-3"), + cst_Article_R521_3, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _hB_=[8,0], - _hC_= + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0$57 = cst_0$68, + cst_0$58 = cst_0$68, + _hB_ = [8, 0], + _hC_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 350, 5, 350, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _hD_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_1$21 = cst_1$29, + cst_0_232 = "0.232", + cst_0$56 = cst_0$67, + _hD_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hy_=[8,0], - _hz_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hy_ = [8, 0], + _hz_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 358, 5, 358, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _hA_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_1$20 = cst_1$29, + cst_0_2379 = "0.2379", + cst_0$55 = cst_0$67, + _hA_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hv_=[8,0], - _hw_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hv_ = [8, 0], + _hw_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 366, 5, 366, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _hx_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_1$19 = cst_1$29, + cst_0_2437 = "0.2437", + cst_0$54 = cst_0$67, + _hx_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hs_=[8,0], - _ht_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hs_ = [8, 0], + _ht_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 374, 5, 374, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _hu_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_1$18 = cst_1$29, + cst_0_2496 = "0.2496", + cst_0$53 = cst_0$67, + _hu_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hp_=[8,0], - _hq_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hp_ = [8, 0], + _hq_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 382, 5, 382, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _hr_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_1$17 = cst_1$29, + cst_0_2555 = "0.2555", + cst_0$52 = cst_0$67, + _hr_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hm_=[8,0], - _hn_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hm_ = [8, 0], + _hn_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 390, 5, 390, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _ho_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_1$16 = cst_1$29, + cst_0_2613 = "0.2613", + cst_0$51 = cst_0$67, + _ho_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hj_=[8,0], - _hk_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hj_ = [8, 0], + _hk_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 398, 5, 398, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _hl_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_1$15 = cst_1$29, + cst_0_2672 = "0.2672", + cst_0$50 = cst_0$67, + _hl_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hg_=[8,0], - _hh_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hg_ = [8, 0], + _hh_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 406, 5, 406, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _hi_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_1$14 = cst_1$29, + cst_0_2804 = "0.2804", + cst_0$49 = cst_0$67, + _hi_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hd_=[8,0], - _he_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hd_ = [8, 0], + _he_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 414, 5, 414, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _hf_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_1$13 = cst_1$29, + cst_0_2936 = "0.2936", + cst_0$48 = cst_0$67, + _hf_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ha_=[8,0], - _hb_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ha_ = [8, 0], + _hb_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 422, 5, 422, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _hc_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_1$12 = cst_1$29, + cst_0_3068 = "0.3068", + cst_0$47 = cst_0$67, + _hc_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hE_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hE_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _g__=[8,0], - _g$_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _g__ = [8, 0], + _g$_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 177, 14, 177, 50, [0, - caml_string_of_jsbytes("Article 7"), + cst_Article_7, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _hF_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_1$11 = cst_1$29, + cst_0_32$0 = cst_0_32$1, + cst_0$46 = cst_0$67, + _hF_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _g7_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _g7_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 38, 14, 38, 50, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _g8_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_1$10 = cst_1$29, + cst_0_32 = cst_0_32$1, + cst_0$45 = cst_0$67, + _g8_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _g5_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _g5_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 79, 14, 79, 50, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _g6_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_1$9 = cst_1$29, + cst_0_16$0 = cst_0_16$2, + cst_0$44 = cst_0$67, + _g6_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _g3_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _g3_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 117, 14, 117, 50, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _g4_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_1$8 = cst_1$29, + cst_0_08 = cst_0_08$1, + cst_0$43 = cst_0$67, + _g4_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _g9_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _g9_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gY_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gY_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 43, 14, 43, 59, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _gZ_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_2$15 = cst_2$17, + cst_2$16 = cst_2$17, + cst_0_41 = "0.41", + cst_0$42 = cst_0$67, + _gZ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 107, 11, 107, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gW_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gW_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 84, 14, 84, 59, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _gX_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_2$13 = cst_2$17, + cst_2$14 = cst_2$17, + cst_0_205 = "0.205", + cst_0$41 = cst_0$67, + _gX_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 107, 11, 107, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gU_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gU_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 122, 14, 122, 59, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _gV_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_2$11 = cst_2$17, + cst_2$12 = cst_2$17, + cst_0_1025 = "0.1025", + cst_0$40 = cst_0$67, + _gV_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 107, 11, 107, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gP_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gP_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 221, 5, 221, 42, [0, - caml_string_of_jsbytes("Article D521-2"), + cst_Article_D521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _gQ_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0_20234 = "0.20234", + _gQ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 122, 11, 122, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gN_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gN_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 235, 5, 236, 45, [0, - caml_string_of_jsbytes("Article D521-2"), + cst_Article_D521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _gO_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0_10117 = "0.10117", + _gO_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 122, 11, 122, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gL_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gL_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 249, 5, 249, 42, [0, - caml_string_of_jsbytes("Article D521-2"), + cst_Article_D521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _gM_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0_05059 = "0.05059", + _gM_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 122, 11, 122, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gF_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + cst_12$4 = cst_12$11, + _gF_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 165, 5, 166, 65, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _gG_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_12$2 = cst_12$11, + cst_1$7 = cst_1$28, + cst_12$3 = cst_12$11, + _gG_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 139, 11, 139, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gD_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + cst_12$1 = cst_12$11, + _gD_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 174, 5, 175, 65, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _gE_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_12 = cst_12$11, + cst_1$6 = cst_1$28, + cst_12$0 = cst_12$11, + _gE_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 139, 11, 139, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gH_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gH_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 139, 11, 139, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gC_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gC_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 181, 14, 181, 34, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _gI_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0$39 = cst_0$67, + _gI_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 139, 11, 139, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gB_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gB_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 139, 11, 139, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gs_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gs_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), - [0,caml_string_of_jsbytes("input0"),0]]], - _gt_= + cst_AllocationsFamiliales$0, + [0, cst_ge_minimum_alin_a_1_l521_3$0, [0, cst_input0, 0]]], + _gt_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), - 0]], - _gu_= + cst_AllocationsFamiliales$0, + [0, cst_ge_minimum_alin_a_1_l521_3$0, 0]], + _gu_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), - [0,caml_string_of_jsbytes("output"),0]]], - _gv_= + cst_AllocationsFamiliales$0, + [0, cst_ge_minimum_alin_a_1_l521_3$0, [0, cst_output, 0]]], + _gv_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), - 0]], - _gw_= + cst_AllocationsFamiliales$0, + [0, cst_ge_minimum_alin_a_1_l521_3$0, 0]], + _gw_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 315, 5, 318, 21, [0, - caml_string_of_jsbytes("Article L521-3"), + cst_Article_L521_3, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _gx_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _gx_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 126, 11, 126, 34, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gj_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gj_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), - [0,caml_string_of_jsbytes("input0"),0]]], - _gk_= + cst_AllocationsFamiliales$0, + [0, cst_ge_minimum_alin_a_1_l521_3$0, [0, cst_input0, 0]]], + _gk_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), - 0]], - _gl_= + cst_AllocationsFamiliales$0, + [0, cst_ge_minimum_alin_a_1_l521_3$0, 0]], + _gl_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), - [0,caml_string_of_jsbytes("output"),0]]], - _gm_= + cst_AllocationsFamiliales$0, + [0, cst_ge_minimum_alin_a_1_l521_3$0, [0, cst_output, 0]]], + _gm_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), - 0]], - _gn_= + cst_AllocationsFamiliales$0, + [0, cst_ge_minimum_alin_a_1_l521_3$0, 0]], + _gn_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("est_enfant_le_plus_\xc3\xa2g\xc3\xa9"), - [0,caml_string_of_jsbytes("input0"),0]]], - _go_= + cst_AllocationsFamiliales$0, + [0, cst_est_enfant_le_plus_g, [0, cst_input0, 0]]], + _go_ = [0, cst_AllocationsFamiliales$0, [0, cst_est_enfant_le_plus_g, 0]], + _gp_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("est_enfant_le_plus_\xc3\xa2g\xc3\xa9"),0]], - _gp_= + cst_AllocationsFamiliales$0, + [0, cst_est_enfant_le_plus_g, [0, cst_output, 0]]], + _gq_ = [0, cst_AllocationsFamiliales$0, [0, cst_est_enfant_le_plus_g, 0]], + _gr_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("est_enfant_le_plus_\xc3\xa2g\xc3\xa9"), - [0,caml_string_of_jsbytes("output"),0]]], - _gq_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("est_enfant_le_plus_\xc3\xa2g\xc3\xa9"),0]], - _gr_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 300, 5, 302, 21, [0, - caml_string_of_jsbytes("Article L521-3"), + cst_Article_L521_3, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _gy_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _gy_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 126, 11, 126, 34, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gi_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gi_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 126, 11, 126, 34, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gz_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gz_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 126, 11, 126, 34, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gh_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gh_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 126, 11, 126, 34, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _f$_=[8,0], - _ga_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + cst_1$5 = cst_1$29, + _f$_ = [8, 0], + _ga_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 159, 6, 159, 71, [0, - caml_string_of_jsbytes("Article 7"), + cst_Article_7, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _gb_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + _gb_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 103, 11, 103, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _f__= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + cst_1$4 = cst_1$29, + _f__ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 409, 5, 410, 72, [0, - caml_string_of_jsbytes("Article L755-12"), + cst_Article_L755_12, [0, - caml_string_of_jsbytes - ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Chapitre_5_Prestations_fam, [0, - caml_string_of_jsbytes - ("Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin"), + cst_Titre_5_Dispositions_parti, [0, - caml_string_of_jsbytes - ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _gc_= + cst_Livre_7_R_gimes_divers_Dis, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _gc_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 103, 11, 103, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gd_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gd_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 103, 11, 103, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _f9_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + cst_2$10 = cst_2$17, + _f9_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 101, 5, 101, 70, [0, - caml_string_of_jsbytes("Article L521-1"), + cst_Article_L521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _ge_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _ge_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 103, 11, 103, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _f8_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _f8_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 103, 11, 103, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _f0_=[8,0], - _f1_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _f0_ = [8, 0], + _f1_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 251, 5, 252, 53, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _f2_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_0$37 = cst_0$67, + cst_0_145 = "0.145", + cst_0$38 = cst_0$67, + _f2_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fX_=[8,0], - _fY_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fX_ = [8, 0], + _fY_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 260, 5, 261, 53, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _fZ_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_0$35 = cst_0$67, + cst_0_1393 = "0.1393", + cst_0$36 = cst_0$67, + _fZ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fU_=[8,0], - _fV_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fU_ = [8, 0], + _fV_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 269, 5, 270, 53, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _fW_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_0$33 = cst_0$67, + cst_0_1335 = "0.1335", + cst_0$34 = cst_0$67, + _fW_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fR_=[8,0], - _fS_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fR_ = [8, 0], + _fS_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 278, 5, 279, 53, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _fT_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_0$31 = cst_0$67, + cst_0_1278 = "0.1278", + cst_0$32 = cst_0$67, + _fT_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fO_=[8,0], - _fP_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fO_ = [8, 0], + _fP_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 287, 5, 288, 53, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _fQ_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_0$29 = cst_0$67, + cst_0_122 = "0.122", + cst_0$30 = cst_0$67, + _fQ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fL_=[8,0], - _fM_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fL_ = [8, 0], + _fM_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 296, 5, 297, 53, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _fN_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_0$27 = cst_0$67, + cst_0_1163 = "0.1163", + cst_0$28 = cst_0$67, + _fN_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fI_=[8,0], - _fJ_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fI_ = [8, 0], + _fJ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 305, 5, 306, 53, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _fK_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_0$25 = cst_0$67, + cst_0_1105 = "0.1105", + cst_0$26 = cst_0$67, + _fK_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fF_=[8,0], - _fG_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fF_ = [8, 0], + _fG_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 314, 5, 315, 53, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _fH_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_0$23 = cst_0$67, + cst_0_0976 = "0.0976", + cst_0$24 = cst_0$67, + _fH_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fC_=[8,0], - _fD_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fC_ = [8, 0], + _fD_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 323, 5, 324, 53, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _fE_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_0$21 = cst_0$67, + cst_0_0847 = "0.0847", + cst_0$22 = cst_0$67, + _fE_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fz_=[8,0], - _fA_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fz_ = [8, 0], + _fA_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 332, 5, 333, 53, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _fB_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_0$19 = cst_0$67, + cst_0_0717 = "0.0717", + cst_0$20 = cst_0$67, + _fB_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fw_=[8,0], - _fx_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fw_ = [8, 0], + _fx_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 341, 5, 341, 49, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _fy_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_0$17 = cst_0$67, + cst_5728 = "5728", + cst_0$18 = cst_0$67, + _fy_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _f3_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _f3_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fu_=[8,0], - _fv_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fu_ = [8, 0], + _fv_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 167, 14, 167, 49, [0, - caml_string_of_jsbytes("Article 7"), + cst_Article_7, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _f4_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_0$15 = cst_0$67, + cst_0_0588$0 = cst_0_0588$1, + cst_0$16 = cst_0$67, + _f4_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fs_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + cst_1$3 = cst_1$29, + _fs_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 365, 5, 366, 71, [0, - caml_string_of_jsbytes("Article D755-5"), + cst_Article_D755_5, [0, - caml_string_of_jsbytes - ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Chapitre_5_Prestations_fam, [0, - caml_string_of_jsbytes("Titre 5 : D\xc3\xa9partements d'outre-mer"), + cst_Titre_5_D_partements_d_out, [0, - caml_string_of_jsbytes - ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), + cst_Livre_7_R_gimes_divers_Dis, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _ft_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0_0588 = cst_0_0588$1, + _ft_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fr_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fr_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 362, 29, 362, 64, [0, - caml_string_of_jsbytes("Article D755-5"), + cst_Article_D755_5, [0, - caml_string_of_jsbytes - ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Chapitre_5_Prestations_fam, [0, - caml_string_of_jsbytes("Titre 5 : D\xc3\xa9partements d'outre-mer"), + cst_Titre_5_D_partements_d_out, [0, - caml_string_of_jsbytes - ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), + cst_Livre_7_R_gimes_divers_Dis, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _fn_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0$14 = cst_0$67, + _fn_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_R.catala_fr"), + cst_examples_allocations_famil$1, 142, 14, 142, 34, [0, - caml_string_of_jsbytes("Article R521-3"), + cst_Article_R521_3, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _fj_= + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _fj_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("prise_en_compte"), - [0,caml_string_of_jsbytes("input0"),0]]], - _fk_= + cst_AllocationsFamiliales$0, + [0, cst_prise_en_compte, [0, cst_input0, 0]]], + _fk_ = [0, cst_AllocationsFamiliales$0, [0, cst_prise_en_compte, 0]], + _fl_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("prise_en_compte"),0]], - _fl_= + cst_AllocationsFamiliales$0, + [0, cst_prise_en_compte, [0, cst_output, 0]]], + _fm_ = [0, cst_AllocationsFamiliales$0, [0, cst_prise_en_compte, 0]], + cst_1$2 = cst_1$28, + cst_0_5 = cst_0_5$1, + cst_0$12 = cst_0$68, + cst_0$13 = cst_0$68, + _ff_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("prise_en_compte"), - [0,caml_string_of_jsbytes("output"),0]]], - _fm_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("prise_en_compte"),0]], - _ff_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_R.catala_fr"), + cst_examples_allocations_famil$1, 160, 14, 160, 34, [0, - caml_string_of_jsbytes("Article R521-3"), + cst_Article_R521_3, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _e__=[8,0], - _e$_= + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _e__ = [8, 0], + _e$_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 431, 5, 431, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _fa_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_2$9 = cst_2$17, + cst_0_0463$0 = cst_0_0463$1, + cst_0$11 = cst_0$67, + _fa_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _e7_=[8,0], - _e8_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _e7_ = [8, 0], + _e8_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 439, 5, 439, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _e9_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_2$8 = cst_2$17, + cst_0_0539 = "0.0539", + cst_0$10 = cst_0$67, + _e9_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _e4_=[8,0], - _e5_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _e4_ = [8, 0], + _e5_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 447, 5, 447, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _e6_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_2$7 = cst_2$17, + cst_0_0615 = "0.0615", + cst_0$9 = cst_0$67, + _e6_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _e1_=[8,0], - _e2_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _e1_ = [8, 0], + _e2_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 455, 5, 455, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _e3_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_2$6 = cst_2$17, + cst_0_069 = "0.069", + cst_0$8 = cst_0$67, + _e3_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eY_=[8,0], - _eZ_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eY_ = [8, 0], + _eZ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 463, 5, 463, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _e0_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_2$5 = cst_2$17, + cst_0_0766 = "0.0766", + cst_0$7 = cst_0$67, + _e0_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eV_=[8,0], - _eW_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eV_ = [8, 0], + _eW_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 471, 5, 471, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _eX_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_2$4 = cst_2$17, + cst_0_0842 = "0.0842", + cst_0$6 = cst_0$67, + _eX_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eS_=[8,0], - _eT_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eS_ = [8, 0], + _eT_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 479, 5, 479, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _eU_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_2$3 = cst_2$17, + cst_0_0918 = "0.0918", + cst_0$5 = cst_0$67, + _eU_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eP_=[8,0], - _eQ_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eP_ = [8, 0], + _eQ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 487, 5, 487, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _eR_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_2$2 = cst_2$17, + cst_0_1089 = "0.1089", + cst_0$4 = cst_0$67, + _eR_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eM_=[8,0], - _eN_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eM_ = [8, 0], + _eN_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 495, 5, 495, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _eO_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_2$1 = cst_2$17, + cst_0_1259 = "0.1259", + cst_0$3 = cst_0$67, + _eO_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eJ_=[8,0], - _eK_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eJ_ = [8, 0], + _eK_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 503, 5, 503, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _eL_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_2$0 = cst_2$17, + cst_0_143 = "0.143", + cst_0$2 = cst_0$67, + _eL_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fb_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fb_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eI_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eI_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 186, 14, 186, 59, [0, - caml_string_of_jsbytes("Article 7"), + cst_Article_7, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _eE_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_2 = cst_2$17, + cst_0_16 = cst_0_16$2, + cst_0$1 = cst_0$67, + _eE_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 195, 14, 195, 67, [0, - caml_string_of_jsbytes("Article 7"), + cst_Article_7, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _ey_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_3$1 = cst_3$3, + cst_3$2 = cst_3$3, + cst_0_0463 = cst_0_0463$1, + cst_0$0 = cst_0$67, + cst_1$1 = cst_1$29, + _ey_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 423, 6, 424, 72, [0, - caml_string_of_jsbytes("Article L755-12"), + cst_Article_L755_12, [0, - caml_string_of_jsbytes - ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Chapitre_5_Prestations_fam, [0, - caml_string_of_jsbytes - ("Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin"), + cst_Titre_5_Dispositions_parti, [0, - caml_string_of_jsbytes - ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _ez_= + cst_Livre_7_R_gimes_divers_Dis, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _ez_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 120, 11, 120, 35, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _et_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _et_ = [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("conditions_hors_\xc3\xa2ge"), - [0,caml_string_of_jsbytes("input0"),0]]], - _eu_= + cst_PrestationsFamiliales, + [0, cst_conditions_hors_ge$0, [0, cst_input0, 0]]], + _eu_ = [0, cst_PrestationsFamiliales, [0, cst_conditions_hors_ge$0, 0]], + _ev_ = [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("conditions_hors_\xc3\xa2ge"),0]], - _ev_= + cst_PrestationsFamiliales, + [0, cst_conditions_hors_ge$0, [0, cst_output, 0]]], + _ew_ = [0, cst_PrestationsFamiliales, [0, cst_conditions_hors_ge$0, 0]], + _ex_ = [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("conditions_hors_\xc3\xa2ge"), - [0,caml_string_of_jsbytes("output"),0]]], - _ew_= - [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("conditions_hors_\xc3\xa2ge"),0]], - _ex_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 119, 5, 126, 59, [0, - caml_string_of_jsbytes("Article L521-1"), + cst_Article_L521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _eA_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _eA_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 120, 11, 120, 35, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _es_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _es_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 120, 11, 120, 35, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eB_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eB_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 120, 11, 120, 35, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _er_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _er_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 120, 11, 120, 35, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _em_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + cst_1$0 = cst_1$29, + _em_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 429, 5, 430, 71, [0, - caml_string_of_jsbytes("Article L755-12"), + cst_Article_L755_12, [0, - caml_string_of_jsbytes - ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Chapitre_5_Prestations_fam, [0, - caml_string_of_jsbytes - ("Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin"), + cst_Titre_5_Dispositions_parti, [0, - caml_string_of_jsbytes - ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _en_= + cst_Livre_7_R_gimes_divers_Dis, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _en_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 137, 11, 137, 34, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _el_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _el_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 31, 9, 31, 32, - [0, - caml_string_of_jsbytes("R\xc3\xa8gles diverses"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _eo_= + [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], + _eo_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 137, 11, 137, 34, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ek_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ek_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 137, 11, 137, 34, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ee_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ee_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 23, 5, 23, 67, [0, - caml_string_of_jsbytes - ("Circulaire interminist\xc3\xa9rielle N\xc2\xb0 DSS/SD2B/2017/352 du 22 d\xc3\xa9cembre 2017 relative \xc3\xa0 la revalorisation au 1er janvier 2018 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte"), - [0,caml_string_of_jsbytes("Montant des plafonds de ressources"),0]]], - _ef_= + cst_Circulaire_interminist_rie, + [0, cst_Montant_des_plafonds_de_re, 0]]], + cst_562800$0 = cst_562800$1, + cst_5628600 = "5628600", + _ef_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 157, 11, 157, 27, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ec_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ec_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 56, 5, 56, 67, [0, - caml_string_of_jsbytes - ("Instruction interminist\xc3\xa9rielle n\xc2\xb0 DSS/SD2B/2018/279 du 17 d\xc3\xa9cembre 2018 relative \xc3\xa0 la revalorisation au 1er janvier 2019 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte"), - [0,caml_string_of_jsbytes("Montant des plafonds de ressources"),0]]], - _ed_= + cst_Instruction_interminist_ri, + [0, cst_Montant_des_plafonds_de_re, 0]]], + cst_568400$0 = cst_568400$1, + cst_5684900 = "5684900", + _ed_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 157, 11, 157, 27, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ea_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ea_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 89, 5, 89, 67, [0, - caml_string_of_jsbytes - ("Instruction interministerielle no DSS/SD2B/2019/261 du 18 d\xc3\xa9cembre 2019 relative \xc3\xa0 la revalorisation au 1er janvier 2020 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte"), - [0,caml_string_of_jsbytes("Montant des plafonds de ressources"),0]]], - _eb_= + cst_Instruction_interministeri, + [0, cst_Montant_des_plafonds_de_re, 0]]], + cst_577500$0 = cst_577500$1, + cst_5775900 = "5775900", + _eb_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 157, 11, 157, 27, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _d__= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _d__ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 116, 5, 116, 67, [0, - caml_string_of_jsbytes("Article 1"), + cst_Article_1, [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 14 d\xc3\xa9cembre 2020 relatif au montant des plafonds de ressources de certaines prestations familiales et aux tranches du bar\xc3\xa8me applicable au recouvrement des indus et \xc3\xa0 la saisie des prestations"), - [0,caml_string_of_jsbytes("Montant des plafonds de ressources"),0]]]], - _d$_= + cst_Arr_t_du_14_d_cembre_2020_, + [0, cst_Montant_des_plafonds_de_re, 0]]]], + cst_582700$0 = cst_582700$1, + cst_5827900 = "5827900", + _d$_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 157, 11, 157, 27, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eg_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eg_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 157, 11, 157, 27, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _d9_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _d9_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 304, 14, 304, 30, [0, - caml_string_of_jsbytes("Article D521-3"), + cst_Article_D521_3, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _d3_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_559500$0 = cst_559500$1, + cst_5595000 = "5595000", + _d3_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 30, 5, 30, 67, [0, - caml_string_of_jsbytes - ("Circulaire interminist\xc3\xa9rielle N\xc2\xb0 DSS/SD2B/2017/352 du 22 d\xc3\xa9cembre 2017 relative \xc3\xa0 la revalorisation au 1er janvier 2018 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte"), - [0,caml_string_of_jsbytes("Montant des plafonds de ressources"),0]]], - _d4_= + cst_Circulaire_interminist_rie, + [0, cst_Montant_des_plafonds_de_re, 0]]], + cst_562800 = cst_562800$1, + cst_7877000 = "7877000", + _d4_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 158, 11, 158, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _d1_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _d1_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 63, 5, 63, 67, [0, - caml_string_of_jsbytes - ("Instruction interminist\xc3\xa9rielle n\xc2\xb0 DSS/SD2B/2018/279 du 17 d\xc3\xa9cembre 2018 relative \xc3\xa0 la revalorisation au 1er janvier 2019 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte"), - [0,caml_string_of_jsbytes("Montant des plafonds de ressources"),0]]], - _d2_= + cst_Instruction_interminist_ri, + [0, cst_Montant_des_plafonds_de_re, 0]]], + cst_568400 = cst_568400$1, + cst_7955800 = "7955800", + _d2_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 158, 11, 158, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dZ_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dZ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 96, 5, 96, 67, [0, - caml_string_of_jsbytes - ("Instruction interministerielle no DSS/SD2B/2019/261 du 18 d\xc3\xa9cembre 2019 relative \xc3\xa0 la revalorisation au 1er janvier 2020 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte"), - [0,caml_string_of_jsbytes("Montant des plafonds de ressources"),0]]], - _d0_= + cst_Instruction_interministeri, + [0, cst_Montant_des_plafonds_de_re, 0]]], + cst_577500 = cst_577500$1, + cst_8083100 = "8083100", + _d0_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 158, 11, 158, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dX_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dX_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 132, 5, 132, 67, [0, - caml_string_of_jsbytes("Article 1"), + cst_Article_1, [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 14 d\xc3\xa9cembre 2020 relatif au montant des plafonds de ressources de certaines prestations familiales et aux tranches du bar\xc3\xa8me applicable au recouvrement des indus et \xc3\xa0 la saisie des prestations"), - [0,caml_string_of_jsbytes("Montant des plafonds de ressources"),0]]]], - _dY_= + cst_Arr_t_du_14_d_cembre_2020_, + [0, cst_Montant_des_plafonds_de_re, 0]]]], + cst_582700 = cst_582700$1, + cst_8155800 = "8155800", + _dY_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 158, 11, 158, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _d5_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _d5_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 158, 11, 158, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dW_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dW_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 314, 14, 314, 31, [0, - caml_string_of_jsbytes("Article D521-3"), + cst_Article_D521_3, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _dS_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_559500 = cst_559500$1, + cst_7830000 = "7830000", + _dS_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 34, 14, 34, 36, - [0, - caml_string_of_jsbytes("R\xc3\xa8gles diverses"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _dT_= + [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], + _dT_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 155, 11, 155, 33, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dR_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dR_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 155, 11, 155, 33, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dO_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dO_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 75, 14, 75, 64, [0, - caml_string_of_jsbytes("Article L512-3"), + cst_Article_L512_3, [0, - caml_string_of_jsbytes("Chapitre 2 : Champ d'application"), + cst_Chapitre_2_Champ_d_applica, [0, - caml_string_of_jsbytes - ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), + cst_Titre_1_Champ_d_applicatio, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _dK_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _dK_ = [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert"), - [0,caml_string_of_jsbytes("input0"),0]]], - _dL_= + cst_PrestationsFamiliales, + [0, cst_droit_ouvert$0, [0, cst_input0, 0]]], + _dL_ = [0, cst_PrestationsFamiliales, [0, cst_droit_ouvert$0, 0]], + _dM_ = [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _dM_= + cst_PrestationsFamiliales, + [0, cst_droit_ouvert$0, [0, cst_output, 0]]], + _dN_ = [0, cst_PrestationsFamiliales, [0, cst_droit_ouvert$0, 0]], + _dF_ = [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert"), - [0,caml_string_of_jsbytes("output"),0]]], - _dN_= - [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _dF_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_R.catala_fr"), + cst_examples_allocations_famil$1, 83, 19, 83, 67, [0, - caml_string_of_jsbytes("Article R521-1"), + cst_Article_R521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _dG_= + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _dG_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 152, 11, 152, 38, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dE_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dE_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_R.catala_fr"), + cst_examples_allocations_famil$1, 56, 14, 56, 41, [0, - caml_string_of_jsbytes("Article R521-1"), + cst_Article_R521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _dH_= + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _dH_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 152, 11, 152, 38, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dD_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dD_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 152, 11, 152, 38, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dy_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dy_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 33, 14, 33, 40, - [0, - caml_string_of_jsbytes("R\xc3\xa8gles diverses"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _ds_= + [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], + _ds_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 165, 14, 165, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _do_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _do_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 161, 14, 161, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dn_=[1,0], - _dj_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dn_ = [1, 0], + _dj_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 163, 14, 163, 50, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dd_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dd_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 167, 14, 167, 32, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _c9_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _c9_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_R.catala_fr"), + cst_examples_allocations_famil$1, 64, 14, 64, 44, [0, - caml_string_of_jsbytes("Article R521-1"), + cst_Article_R521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _c5_= + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_3$0 = cst_3$3, + _c5_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 294, 14, 294, 35, [0, - caml_string_of_jsbytes("Article D521-2"), + cst_Article_D521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _c0_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_3 = cst_3$3, + _c0_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 259, 5, 260, 56, [0, - caml_string_of_jsbytes("Article L521-2"), + cst_Article_L521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cZ_=[1,0], - _c1_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cZ_ = [1, 0], + _c1_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 98, 11, 98, 20, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cU_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cU_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 270, 5, 271, 48, [0, - caml_string_of_jsbytes("Article L521-2"), + cst_Article_L521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cT_=[0,0], - _cV_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cT_ = [0, 0], + _cV_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 98, 11, 98, 20, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cS_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cS_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 219, 5, 219, 70, [0, - caml_string_of_jsbytes("Article L521-2"), + cst_Article_L521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cR_=[0,0], - _cW_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cR_ = [0, 0], + _cW_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 98, 11, 98, 20, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cQ_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cQ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 209, 5, 209, 69, [0, - caml_string_of_jsbytes("Article L521-2"), + cst_Article_L521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cP_=[0,0], - _cX_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cP_ = [0, 0], + _cX_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 98, 11, 98, 20, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cO_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cO_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 189, 5, 189, 60, [0, - caml_string_of_jsbytes("Article L521-2"), + cst_Article_L521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cN_=[0,0], - _cY_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cN_ = [0, 0], + _cY_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 98, 11, 98, 20, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _c2_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _c2_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 98, 11, 98, 20, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cM_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cM_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 98, 11, 98, 20, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cI_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cI_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 215, 5, 215, 70, [0, - caml_string_of_jsbytes("Article L521-2"), + cst_Article_L521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cH_=[1,0], - _cJ_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cH_ = [1, 0], + _cJ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 97, 11, 97, 26, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cF_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cF_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 254, 5, 255, 56, [0, - caml_string_of_jsbytes("Article L521-2"), + cst_Article_L521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cE_=[2,0], - _cG_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cE_ = [2, 0], + _cG_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 97, 11, 97, 26, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cA_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cA_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 264, 5, 265, 48, [0, - caml_string_of_jsbytes("Article L521-2"), + cst_Article_L521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cz_=[0,0], - _cB_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cz_ = [0, 0], + _cB_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 97, 11, 97, 26, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cy_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cy_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 205, 5, 205, 69, [0, - caml_string_of_jsbytes("Article L521-2"), + cst_Article_L521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cx_=[0,0], - _cC_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cx_ = [0, 0], + _cC_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 97, 11, 97, 26, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cw_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cw_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 185, 5, 185, 60, [0, - caml_string_of_jsbytes("Article L521-2"), + cst_Article_L521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cv_=[0,0], - _cD_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cv_ = [0, 0], + _cD_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 97, 11, 97, 26, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cK_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cK_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 97, 11, 97, 26, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cu_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cu_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 97, 11, 97, 26, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cL_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cL_ = [0, cst_AllocationsFamiliales$0, [0, cst_prise_en_compte, 0]], + _c3_ = [0, cst_AllocationsFamiliales$0, [0, "versement", 0]], + _c6_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("prise_en_compte"),0]], - _c3_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("versement"),0]], - _c6_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 151, 11, 151, 32, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _c4_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _c4_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 151, 11, 151, 32, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _c7_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _c7_ = [0, cst_AllocationsFamiliales$0, [0, "nombre_enfants_l521_1", 0]], + _c__ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("nombre_enfants_l521_1"),0]], - _c__= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 154, 11, 154, 41, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _c8_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _c8_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 154, 11, 154, 41, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _c$_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _c$_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("nombre_enfants_alin\xc3\xa9a_2_l521_3"),0]], - _da_= + cst_AllocationsFamiliales$0, + [0, "nombre_enfants_alin\xc3\xa9a_2_l521_3", 0]], + _da_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("version_avril_2008"), - [0,caml_string_of_jsbytes("AllocationFamilialesAvril2008"),0]]], - _db_= + cst_AllocationsFamiliales$0, + [0, cst_version_avril_2008, [0, cst_AllocationFamilialesAvril2, 0]]], + _db_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("version_avril_2008"), - [0,caml_string_of_jsbytes("AllocationFamilialesAvril2008"),0]]], - _de_= + cst_AllocationsFamiliales$0, + [0, cst_version_avril_2008, [0, cst_AllocationFamilialesAvril2, 0]]], + _de_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 167, 14, 167, 32, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _df_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _df_ = [0, cst_AllocationsFamiliales$0, [0, "bmaf.date_courante", 0]], + _dc_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("bmaf.date_courante"),0]], - _dc_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 167, 14, 167, 32, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dg_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dg_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("bmaf"), - [0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"),0]]], - _dh_= + cst_AllocationsFamiliales$0, + [0, cst_bmaf, [0, cst_BaseMensuelleAllocationsFa, 0]]], + _dh_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("bmaf"), - [0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"),0]]], - _dk_= + cst_AllocationsFamiliales$0, + [0, cst_bmaf, [0, cst_BaseMensuelleAllocationsFa, 0]]], + _dk_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 163, 14, 163, 50, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dl_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dl_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("prestations_familiales.date_courante"),0]], - _di_= + cst_AllocationsFamiliales$0, + [0, "prestations_familiales.date_courante", 0]], + _di_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 163, 14, 163, 50, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dp_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dp_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 161, 14, 161, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dq_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dq_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("prestations_familiales.prestation_courante"), - 0]], - _dm_= + cst_AllocationsFamiliales$0, + [0, "prestations_familiales.prestation_courante", 0]], + _dm_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 161, 14, 161, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dt_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dt_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 165, 14, 165, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _du_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _du_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("prestations_familiales.r\xc3\xa9sidence"),0]], - _dr_= + cst_AllocationsFamiliales$0, + [0, "prestations_familiales.r\xc3\xa9sidence", 0]], + _dr_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 165, 14, 165, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dv_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dv_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("prestations_familiales"), - [0,caml_string_of_jsbytes("PrestationsFamiliales"),0]]], - _dw_= + cst_AllocationsFamiliales$0, + [0, cst_prestations_familiales, [0, cst_PrestationsFamiliales, 0]]], + _dw_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("prestations_familiales"), - [0,caml_string_of_jsbytes("PrestationsFamiliales"),0]]], - _dz_= + cst_AllocationsFamiliales$0, + [0, cst_prestations_familiales, [0, cst_PrestationsFamiliales, 0]]], + _dz_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 33, 14, 33, 40, - [0, - caml_string_of_jsbytes("R\xc3\xa8gles diverses"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _dA_= + [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], + _dA_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("enfant_le_plus_\xc3\xa2g\xc3\xa9.enfants"), - 0]], - _dx_= + cst_AllocationsFamiliales$0, + [0, "enfant_le_plus_\xc3\xa2g\xc3\xa9.enfants", 0]], + _dx_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 33, 14, 33, 40, - [0, - caml_string_of_jsbytes("R\xc3\xa8gles diverses"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _dB_= + [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], + _dB_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("enfant_le_plus_\xc3\xa2g\xc3\xa9"), - [0,caml_string_of_jsbytes("EnfantLePlus\xc3\x82g\xc3\xa9"),0]]], - _dC_= + cst_AllocationsFamiliales$0, + [0, cst_enfant_le_plus_g, [0, cst_EnfantLePlus_g, 0]]], + _dC_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("enfant_le_plus_\xc3\xa2g\xc3\xa9"), - [0,caml_string_of_jsbytes("EnfantLePlus\xc3\x82g\xc3\xa9"),0]]], - _dI_= + cst_AllocationsFamiliales$0, + [0, cst_enfant_le_plus_g, [0, cst_EnfantLePlus_g, 0]]], + _dI_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), - 0]], - _dP_= + cst_AllocationsFamiliales$0, + [0, cst_ge_minimum_alin_a_1_l521_3$0, 0]], + _dP_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 95, 11, 95, 61, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dJ_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dJ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 95, 11, 95, 61, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dQ_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dQ_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("enfants_\xc3\xa0_charge_droit_ouvert_prestation_familiale"), - 0]], - _dU_= + cst_AllocationsFamiliales$0, + [0, "enfants_\xc3\xa0_charge_droit_ouvert_prestation_familiale", 0]], + _dU_ = [0, cst_AllocationsFamiliales$0, [0, cst_est_enfant_le_plus_g, 0]], + _d6_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("est_enfant_le_plus_\xc3\xa2g\xc3\xa9"),0]], - _d6_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 158, 11, 158, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dV_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dV_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 158, 11, 158, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _d7_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _d7_ = [0, cst_AllocationsFamiliales$0, [0, "plafond_II_d521_3", 0]], + _eh_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("plafond_II_d521_3"),0]], - _eh_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 157, 11, 157, 27, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _d8_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _d8_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 157, 11, 157, 27, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ei_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ei_ = [0, cst_AllocationsFamiliales$0, [0, "plafond_I_d521_3", 0]], + _ep_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("plafond_I_d521_3"),0]], - _ep_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 137, 11, 137, 34, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ej_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ej_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 137, 11, 137, 34, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eq_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eq_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_compl\xc3\xa9ment"),0]], - _eC_= + cst_AllocationsFamiliales$0, + [0, "droit_ouvert_compl\xc3\xa9ment", 0]], + _eC_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_forfaitaire, 0]], + _eF_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_forfaitaire"),0]], - _eF_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 117, 11, 117, 64, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eD_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eD_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 117, 11, 117, 64, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eG_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eG_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("montant_initial_base_quatri\xc3\xa8me_enfant_et_plus_mayotte"), - 0]], - _fc_= + cst_AllocationsFamiliales$0, + [0, "montant_initial_base_quatri\xc3\xa8me_enfant_et_plus_mayotte", 0]], + _fc_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eH_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eH_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fd_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fd_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("montant_initial_base_troisi\xc3\xa8me_enfant_mayotte"), - 0]], - _fg_= + cst_AllocationsFamiliales$0, + [0, "montant_initial_base_troisi\xc3\xa8me_enfant_mayotte", 0]], + _fg_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 110, 11, 110, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fe_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fe_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 110, 11, 110, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fh_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fh_ = [0, cst_AllocationsFamiliales$0, [0, "nombre_total_enfants", 0]], + _fo_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("nombre_total_enfants"),0]], - _fo_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 109, 11, 109, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fi_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fi_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 109, 11, 109, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fp_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fp_ = [0, cst_AllocationsFamiliales$0, [0, "nombre_moyen_enfants", 0]], + _f5_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("nombre_moyen_enfants"),0]], - _f5_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fq_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fq_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _f6_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _f6_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("montant_initial_base_premier_enfant"),0]], - _gf_= + cst_AllocationsFamiliales$0, + [0, "montant_initial_base_premier_enfant", 0]], + _gf_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 103, 11, 103, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _f7_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _f7_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 103, 11, 103, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gg_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gg_ = [0, cst_AllocationsFamiliales$0, [0, "droit_ouvert_base", 0]], + _gA_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _gJ_ = [0, cst_AllocationsFamiliales$0, [0, cst_compl_ment_d_gressif, 0]], + _gR_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_base"),0]], - _gA_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _gJ_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("compl\xc3\xa9ment_d\xc3\xa9gressif"),0]], - _gR_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 122, 11, 122, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gK_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gK_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 122, 11, 122, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gS_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gS_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("montant_vers\xc3\xa9_forfaitaire_par_enfant"), - 0]], - _g0_= + cst_AllocationsFamiliales$0, + [0, "montant_vers\xc3\xa9_forfaitaire_par_enfant", 0]], + _g0_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 107, 11, 107, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gT_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gT_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 107, 11, 107, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _g1_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _g1_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("montant_initial_base_troisi\xc3\xa8me_enfant_et_plus"), - 0]], - _hG_= + cst_AllocationsFamiliales$0, + [0, "montant_initial_base_troisi\xc3\xa8me_enfant_et_plus", 0]], + _hG_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _g2_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _g2_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hH_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hH_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("montant_initial_base_deuxi\xc3\xa8me_enfant"), - 0]], - _hK_= + cst_AllocationsFamiliales$0, + [0, "montant_initial_base_deuxi\xc3\xa8me_enfant", 0]], + _hK_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 108, 11, 108, 38, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hI_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hI_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 108, 11, 108, 38, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hL_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hL_ = + [0, cst_AllocationsFamiliales$0, [0, "rapport_enfants_total_moyen", 0]], + _ia_ = + [0, cst_AllocationsFamiliales$0, [0, cst_montant_initial_m_tropole_, 0]], + _ih_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("rapport_enfants_total_moyen"),0]], - _ia_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("montant_initial_m\xc3\xa9tropole_majoration"), - 0]], - _ih_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 123, 11, 123, 36, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ib_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ib_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 123, 11, 123, 36, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ii_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ii_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("montant_vers\xc3\xa9_forfaitaire"),0]], - _ir_= + cst_AllocationsFamiliales$0, + [0, "montant_vers\xc3\xa9_forfaitaire", 0]], + _ir_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 104, 11, 104, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ij_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ij_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 104, 11, 104, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _is_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _is_ = [0, cst_AllocationsFamiliales$0, [0, "montant_initial_base", 0]], + _iN_ = + [0, cst_AllocationsFamiliales$0, [0, cst_montant_initial_majoration, 0]], + _iV_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("montant_initial_base"),0]], - _iN_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("montant_initial_majoration"),0]], - _iV_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 142, 11, 142, 52, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _iO_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _iO_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 142, 11, 142, 52, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _iW_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _iW_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("montant_vers\xc3\xa9_compl\xc3\xa9ment_pour_forfaitaire"), - 0]], - _iZ_= + cst_AllocationsFamiliales$0, + [0, "montant_vers\xc3\xa9_compl\xc3\xa9ment_pour_forfaitaire", 0]], + _iZ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 111, 11, 111, 43, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _iX_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _iX_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 111, 11, 111, 43, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _i0_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _i0_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("montant_avec_garde_altern\xc3\xa9e_base"),0]], - _ja_= + cst_AllocationsFamiliales$0, + [0, "montant_avec_garde_altern\xc3\xa9e_base", 0]], + _ja_ = + [0, cst_AllocationsFamiliales$0, [0, cst_montant_avec_garde_altern_, 0]], + _jd_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("montant_avec_garde_altern\xc3\xa9e_majoration"), - 0]], - _jd_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 112, 11, 112, 29, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _jb_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _jb_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 112, 11, 112, 29, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _je_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _je_ = + [0, cst_AllocationsFamiliales$0, [0, "montant_vers\xc3\xa9_base", 0]], + _jl_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("montant_vers\xc3\xa9_base"),0]], - _jl_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 134, 11, 134, 35, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _jf_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _jf_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 134, 11, 134, 35, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _jm_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _jm_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("montant_vers\xc3\xa9_majoration"),0]], - _jp_= + cst_AllocationsFamiliales$0, + [0, "montant_vers\xc3\xa9_majoration", 0]], + _jp_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 138, 11, 138, 58, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _jn_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _jn_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 138, 11, 138, 58, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _jq_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _jq_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("montant_base_compl\xc3\xa9ment_pour_base_et_majoration"), - 0]], - _jx_= + cst_AllocationsFamiliales$0, + [0, "montant_base_compl\xc3\xa9ment_pour_base_et_majoration", 0]], + _jx_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 141, 11, 141, 59, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _jr_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _jr_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 141, 11, 141, 59, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _jy_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _jy_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), + cst_AllocationsFamiliales$0, [0, - caml_string_of_jsbytes - ("montant_vers\xc3\xa9_compl\xc3\xa9ment_pour_base_et_majoration"), + "montant_vers\xc3\xa9_compl\xc3\xa9ment_pour_base_et_majoration", 0]], - _jB_= + _jB_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 100, 12, 100, 25, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _jz_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _jz_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 100, 12, 100, 25, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _jC_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _jC_ = [0, cst_AllocationsFamiliales$0, [0, cst_montant_vers$0, 0]], + _jD_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("montant_vers\xc3\xa9"),0]], - _jD_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 231, 5, 235, 6, [0, - caml_string_of_jsbytes("Article L521-2"), + cst_Article_L521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _jE_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _jE_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 231, 5, 235, 6, [0, - caml_string_of_jsbytes("Article L521-2"), + cst_Article_L521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cp_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cp_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/autres_codes.catala_fr"), + "examples/allocations_familiales/autres_codes.catala_fr", 24, 5, 24, 63, [0, - caml_string_of_jsbytes("Article L821-3"), + "Article L821-3", [0, - caml_string_of_jsbytes - ("Sous-section 1 : Aides personnelles au logement"), + "Sous-section 1 : Aides personnelles au logement", [0, - caml_string_of_jsbytes("Section 2 : R\xc3\xa8gles de non-cumul"), + "Section 2 : R\xc3\xa8gles de non-cumul", [0, - caml_string_of_jsbytes - ("Chapitre Ier : Principes g\xc3\xa9n\xc3\xa9raux"), + "Chapitre Ier : Principes g\xc3\xa9n\xc3\xa9raux", [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), + "Titre II : Dispositions communes aux aides personnelles au logement", [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), + "Livre VIII : Aides personnelles au logement", [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _cq_= + cst_Partie_l_gislative, + [0, "Code de la construction et de l'habitation", 0]]]]]]]]], + _cq_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 57, 12, 57, 24, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cl_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cl_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 60, 5, 62, 62, [0, - caml_string_of_jsbytes("Article L512-3"), + cst_Article_L512_3, [0, - caml_string_of_jsbytes("Chapitre 2 : Champ d'application"), + cst_Chapitre_2_Champ_d_applica, [0, - caml_string_of_jsbytes - ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), + cst_Titre_1_Champ_d_applicatio, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cm_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cm_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 57, 12, 57, 24, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ck_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ck_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 49, 5, 50, 50, [0, - caml_string_of_jsbytes("Article L512-3"), + cst_Article_L512_3, [0, - caml_string_of_jsbytes("Chapitre 2 : Champ d'application"), + cst_Chapitre_2_Champ_d_applica, [0, - caml_string_of_jsbytes - ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), + cst_Titre_1_Champ_d_applicatio, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cn_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cn_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 57, 12, 57, 24, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _co_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _co_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 57, 12, 57, 24, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cr_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cr_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 57, 12, 57, 24, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cj_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cj_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 57, 12, 57, 24, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cs_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cs_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 57, 12, 57, 24, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ci_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ci_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 57, 12, 57, 24, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ce_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ce_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 68, 5, 71, 56, [0, - caml_string_of_jsbytes("Article L512-3"), + cst_Article_L512_3, [0, - caml_string_of_jsbytes("Chapitre 2 : Champ d'application"), + cst_Chapitre_2_Champ_d_applica, [0, - caml_string_of_jsbytes - ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), + cst_Titre_1_Champ_d_applicatio, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cf_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cf_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 58, 12, 58, 31, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cd_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cd_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 58, 12, 58, 31, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cg_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cg_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 58, 12, 58, 31, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cc_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cc_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 58, 12, 58, 31, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _b__= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _b__ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_R.catala_fr"), + cst_examples_allocations_famil$1, 215, 18, 215, 41, [0, - caml_string_of_jsbytes("Article R755-0-2"), + "Article R755-0-2", [0, - caml_string_of_jsbytes - ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Chapitre_5_Prestations_fam, [0, - caml_string_of_jsbytes("Titre 5 : D\xc3\xa9partements d'outre-mer"), + cst_Titre_5_D_partements_d_out, [0, - caml_string_of_jsbytes - ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), + cst_Livre_7_R_gimes_divers_Dis, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _b$_= + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_169$0 = cst_169$1, + cst_0_55$0 = cst_0_55$1, + _b$_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 59, 11, 59, 27, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _b9_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _b9_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_R.catala_fr"), + cst_examples_allocations_famil$1, 31, 14, 31, 30, [0, - caml_string_of_jsbytes("Article R512-2"), + cst_Article_R512_2, [0, - caml_string_of_jsbytes("Chapitre 2 : Champ d'application."), + cst_Chapitre_2_Champ_d_applica$0, [0, - caml_string_of_jsbytes - ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), + cst_Titre_1_Champ_d_applicatio, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _bY_=[5,0], - _bZ_=[4,0], - _b0_=[3,0], - _b1_=[2,0], - _b2_=[1,0], - _b3_=[0,0], - _b4_= + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_169 = cst_169$1, + cst_0_55 = cst_0_55$1, + _bY_ = [5, 0], + _bZ_ = [4, 0], + _b0_ = [3, 0], + _b1_ = [2, 0], + _b2_ = [1, 0], + _b3_ = [0, 0], + _b4_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 357, 5, 362, 30, [0, - caml_string_of_jsbytes("Article L751-1"), + "Article L751-1", [0, - caml_string_of_jsbytes - ("Chapitre 1er : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), + "Chapitre 1er : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s", [0, - caml_string_of_jsbytes - ("Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin"), + cst_Titre_5_Dispositions_parti, [0, - caml_string_of_jsbytes - ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _b5_= + cst_Livre_7_R_gimes_divers_Dis, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _b5_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 61, 12, 61, 35, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _bX_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _bX_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 61, 12, 61, 35, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _bR_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _bR_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 68, 14, 68, 28, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _bN_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _bN_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 69, 14, 69, 32, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _bJ_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _bJ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_R.catala_fr"), + cst_examples_allocations_famil$1, 21, 14, 21, 26, [0, - caml_string_of_jsbytes("Article R512-2"), + cst_Article_R512_2, [0, - caml_string_of_jsbytes("Chapitre 2 : Champ d'application."), + cst_Chapitre_2_Champ_d_applica$0, [0, - caml_string_of_jsbytes - ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), + cst_Titre_1_Champ_d_applicatio, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _bK_= + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _bK_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 60, 12, 60, 24, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _bI_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _bI_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 60, 12, 60, 24, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _bL_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _bL_ = [0, cst_PrestationsFamiliales, [0, cst_ge_l512_3_2$0, 0]], + _bO_ = [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("\xc3\xa2ge_l512_3_2"),0]], - _bO_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 69, 14, 69, 32, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _bP_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _bP_ = [0, cst_PrestationsFamiliales, [0, "smic.date_courante", 0]], + _bM_ = [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("smic.date_courante"),0]], - _bM_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 69, 14, 69, 32, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _bS_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _bS_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 68, 14, 68, 28, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _bT_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _bT_ = [0, cst_PrestationsFamiliales, [0, "smic.r\xc3\xa9sidence", 0]], + _bQ_ = [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("smic.r\xc3\xa9sidence"),0]], - _bQ_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 68, 14, 68, 28, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _bU_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _bU_ = [0, cst_PrestationsFamiliales, [0, cst_smic, [0, cst_Smic, 0]]], + _bV_ = [0, cst_PrestationsFamiliales, [0, cst_smic, [0, cst_Smic, 0]]], + _b6_ = [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("smic"),[0,caml_string_of_jsbytes("Smic"),0]]], - _bV_= - [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("smic"),[0,caml_string_of_jsbytes("Smic"),0]]], - _b6_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 61, 12, 61, 35, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _bW_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _bW_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 61, 12, 61, 35, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _b7_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _b7_ = + [0, cst_PrestationsFamiliales, [0, cst_r_gime_outre_mer_l751_1$0, 0]], + _ca_ = [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("r\xc3\xa9gime_outre_mer_l751_1"),0]], - _ca_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 59, 11, 59, 27, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _b8_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _b8_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 59, 11, 59, 27, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cb_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cb_ = [0, cst_PrestationsFamiliales, [0, "plafond_l512_3_2", 0]], + _ch_ = [0, cst_PrestationsFamiliales, [0, cst_conditions_hors_ge$0, 0]], + _ct_ = [0, cst_PrestationsFamiliales, [0, cst_droit_ouvert$0, 0]], + _bC_ = [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("plafond_l512_3_2"),0]], - _ch_= - [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("conditions_hors_\xc3\xa2ge"),0]], - _ct_= - [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _bC_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + cst_examples_allocations_famil$5, 32, 5, 33, 33, [0, - caml_string_of_jsbytes - ("Instruction minist\xc3\xa9rielle N\xc2\xb0DSS/SD2B/2019/65 du 25 mars 2019 relative \xc3\xa0 la revalorisation au 1er avril 2019 des prestations familiales servies en m\xc3\xa9tropole"), - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]]], - _bD_= + "Instruction minist\xc3\xa9rielle N\xc2\xb0DSS/SD2B/2019/65 du 25 mars 2019 relative \xc3\xa0 la revalorisation au 1er avril 2019 des prestations familiales servies en m\xc3\xa9tropole", + [0, cst_Montant_de_la_base_mensuel, 0]]], + cst_41316 = "41316", + _bD_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + cst_examples_allocations_famil$5, 6, 12, 6, 19, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _bA_= + [0, cst_Montant_de_la_base_mensuel, 0]], + _bA_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + cst_examples_allocations_famil$5, 52, 5, 53, 33, [0, - caml_string_of_jsbytes - ("Instruction interminist\xc3\xa9rielle no DSS/SD2B/2020/33 du 18 f\xc3\xa9vrier 2020 relative \xc3\xa0 la revalorisation au 1er avril 2020 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte"), - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]]], - _bB_= + "Instruction interminist\xc3\xa9rielle no DSS/SD2B/2020/33 du 18 f\xc3\xa9vrier 2020 relative \xc3\xa0 la revalorisation au 1er avril 2020 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte", + [0, cst_Montant_de_la_base_mensuel, 0]]], + cst_41440 = "41440", + _bB_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + cst_examples_allocations_famil$5, 6, 12, 6, 19, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _by_= + [0, cst_Montant_de_la_base_mensuel, 0]], + _by_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + cst_examples_allocations_famil$5, 68, 5, 69, 33, [0, - caml_string_of_jsbytes - ("Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2021/65 du 19 mars 2021 relative \xc3\xa0 la revalorisation au 1er avril 2021 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte"), - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]]], - _bz_= + "Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2021/65 du 19 mars 2021 relative \xc3\xa0 la revalorisation au 1er avril 2021 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte", + [0, cst_Montant_de_la_base_mensuel, 0]]], + cst_41481 = "41481", + _bz_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + cst_examples_allocations_famil$5, 6, 12, 6, 19, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _bw_= + [0, cst_Montant_de_la_base_mensuel, 0]], + _bw_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + cst_examples_allocations_famil$5, 86, 5, 86, 34, [0, - caml_string_of_jsbytes - ("Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2022/82 du 28 mars 2022 relative \xc3\xa0 la revalorisation au 1er avril 2022 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte"), - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]]], - _bx_= + "Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2022/82 du 28 mars 2022 relative \xc3\xa0 la revalorisation au 1er avril 2022 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte", + [0, cst_Montant_de_la_base_mensuel, 0]]], + cst_42228 = "42228", + _bx_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + cst_examples_allocations_famil$5, 6, 12, 6, 19, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _bE_= + [0, cst_Montant_de_la_base_mensuel, 0]], + _bE_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + cst_examples_allocations_famil$5, 6, 12, 6, 19, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _bv_= + [0, cst_Montant_de_la_base_mensuel, 0]], + _bv_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + cst_examples_allocations_famil$5, 6, 12, 6, 19, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _bF_= + [0, cst_Montant_de_la_base_mensuel, 0]], + _bF_ = [0, cst_BaseMensuelleAllocationsFa, [0, cst_montant$0, 0]], + _bG_ = [0, - caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"), - [0,caml_string_of_jsbytes("montant"),0]], - _bG_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + cst_examples_allocations_famil$5, 10, 13, 10, 42, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _bH_= + [0, cst_Montant_de_la_base_mensuel, 0]], + _bH_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + cst_examples_allocations_famil$5, 10, 13, 10, 42, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _bh_=[7,0], - _bi_=[5,0], - _bj_=[4,0], - _bk_=[3,0], - _bl_=[2,0], - _bm_=[1,0], - _bn_=[0,0], - _bo_=[6,0], - _bp_= + [0, cst_Montant_de_la_base_mensuel, 0]], + _bh_ = [7, 0], + _bi_ = [5, 0], + _bj_ = [4, 0], + _bk_ = [3, 0], + _bl_ = [2, 0], + _bm_ = [1, 0], + _bn_ = [0, 0], + _bo_ = [6, 0], + _bp_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 34, 5, 43, 6, [0, - caml_string_of_jsbytes("Article 1"), + cst_Article_1, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _bq_= + cst_D_cret_n_2018_1173_du_19_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1003 = "1003", + _bq_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _be_=[8,0], - _bf_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _be_ = [8, 0], + _bf_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 52, 5, 54, 6, [0, - caml_string_of_jsbytes("Article 1"), + cst_Article_1, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _bg_= + cst_D_cret_n_2018_1173_du_19_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_757 = "757", + _bg_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _a6_=[7,0], - _a7_=[5,0], - _a8_=[4,0], - _a9_=[3,0], - _a__=[2,0], - _a$_=[1,0], - _ba_=[0,0], - _bb_=[6,0], - _bc_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _a6_ = [7, 0], + _a7_ = [5, 0], + _a8_ = [4, 0], + _a9_ = [3, 0], + _a__ = [2, 0], + _a$_ = [1, 0], + _ba_ = [0, 0], + _bb_ = [6, 0], + _bc_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 73, 5, 82, 6, [0, - caml_string_of_jsbytes("Article 1"), + cst_Article_1, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _bd_= + cst_D_cret_n_2019_1387_du_18_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1015 = "1015", + _bd_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _a3_=[8,0], - _a4_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _a3_ = [8, 0], + _a4_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 91, 5, 93, 6, [0, - caml_string_of_jsbytes("Article 1"), + cst_Article_1, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _a5_= + cst_D_cret_n_2019_1387_du_18_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_766 = "766", + _a5_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _aT_=[7,0], - _aU_=[5,0], - _aV_=[4,0], - _aW_=[3,0], - _aX_=[2,0], - _aY_=[1,0], - _aZ_=[0,0], - _a0_=[6,0], - _a1_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _aT_ = [7, 0], + _aU_ = [5, 0], + _aV_ = [4, 0], + _aW_ = [3, 0], + _aX_ = [2, 0], + _aY_ = [1, 0], + _aZ_ = [0, 0], + _a0_ = [6, 0], + _a1_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 112, 5, 121, 6, [0, - caml_string_of_jsbytes("Article 1"), + cst_Article_1, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _a2_= + cst_D_cret_n_2020_1598_du_16_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1025 = "1025", + _a2_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _aQ_=[8,0], - _aR_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _aQ_ = [8, 0], + _aR_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 130, 5, 132, 6, [0, - caml_string_of_jsbytes("Article 1"), + cst_Article_1, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _aS_= + cst_D_cret_n_2020_1598_du_16_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_774 = "774", + _aS_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _aG_=[7,0], - _aH_=[5,0], - _aI_=[4,0], - _aJ_=[3,0], - _aK_=[2,0], - _aL_=[1,0], - _aM_=[0,0], - _aN_=[6,0], - _aO_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _aG_ = [7, 0], + _aH_ = [5, 0], + _aI_ = [4, 0], + _aJ_ = [3, 0], + _aK_ = [2, 0], + _aL_ = [1, 0], + _aM_ = [0, 0], + _aN_ = [6, 0], + _aO_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 151, 5, 160, 6, [0, - caml_string_of_jsbytes("Article 1"), + cst_Article_1, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2021-1741 du 22 d\xc3\xa9cembre 2021 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _aP_= + cst_D_cret_n_2021_1741_du_22_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1057 = "1057", + _aP_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _aD_=[8,0], - _aE_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _aD_ = [8, 0], + _aE_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 170, 5, 172, 6, [0, - caml_string_of_jsbytes("Article 1"), + cst_Article_1, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2021-1741 du 22 d\xc3\xa9cembre 2021 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _aF_= + cst_D_cret_n_2021_1741_du_22_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_798 = "798", + _aF_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _at_=[7,0], - _au_=[5,0], - _av_=[4,0], - _aw_=[3,0], - _ax_=[2,0], - _ay_=[1,0], - _az_=[0,0], - _aA_=[6,0], - _aB_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _at_ = [7, 0], + _au_ = [5, 0], + _av_ = [4, 0], + _aw_ = [3, 0], + _ax_ = [2, 0], + _ay_ = [1, 0], + _az_ = [0, 0], + _aA_ = [6, 0], + _aB_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 191, 5, 200, 6, [0, - caml_string_of_jsbytes("Article 2"), + cst_Article_2, [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 19 avril 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _aC_= + cst_Arr_t_du_19_avril_2022_rel, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1085 = "1085", + _aC_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _aq_=[8,0], - _ar_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _aq_ = [8, 0], + _ar_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 209, 5, 211, 6, [0, - caml_string_of_jsbytes("Article 2"), + cst_Article_2, [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 19 avril 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _as_= + cst_Arr_t_du_19_avril_2022_rel, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_819 = "819", + _as_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _ag_=[7,0], - _ah_=[5,0], - _ai_=[4,0], - _aj_=[3,0], - _ak_=[2,0], - _al_=[1,0], - _am_=[0,0], - _an_=[6,0], - _ao_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _ag_ = [7, 0], + _ah_ = [5, 0], + _ai_ = [4, 0], + _aj_ = [3, 0], + _ak_ = [2, 0], + _al_ = [1, 0], + _am_ = [0, 0], + _an_ = [6, 0], + _ao_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 230, 5, 239, 6, [0, - caml_string_of_jsbytes("Article 2"), + cst_Article_2, [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _ap_= + cst_Arr_t_du_29_juillet_2022_r, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1107 = "1107", + _ap_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _ad_=[8,0], - _ae_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _ad_ = [8, 0], + _ae_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 248, 5, 250, 6, [0, - caml_string_of_jsbytes("Article 2"), + cst_Article_2, [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _af_= + cst_Arr_t_du_29_juillet_2022_r, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_835 = "835", + _af_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _V_=[7,0], - _W_=[5,0], - _X_=[4,0], - _Y_=[3,0], - _Z_=[2,0], - ___=[1,0], - _$_=[0,0], - _aa_=[6,0], - _ab_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _V_ = [7, 0], + _W_ = [5, 0], + _X_ = [4, 0], + _Y_ = [3, 0], + _Z_ = [2, 0], + ___ = [1, 0], + _$_ = [0, 0], + _aa_ = [6, 0], + _ab_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 270, 5, 279, 6, [0, - caml_string_of_jsbytes("Article 1"), + cst_Article_1, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2022-1608 du 22 d\xc3\xa9cembre 2022 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _ac_= + cst_D_cret_n_2022_1608_du_22_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1127 = "1127", + _ac_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _S_=[8,0], - _T_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _S_ = [8, 0], + _T_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 288, 5, 290, 6, [0, - caml_string_of_jsbytes("Article 1"), + cst_Article_1, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2022-1608 du 22 d\xc3\xa9cembre 2022 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _U_= + cst_D_cret_n_2022_1608_du_22_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_851 = "851", + _U_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _br_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _br_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _R_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _R_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _bs_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _bs_ = [0, cst_Smic, [0, cst_brut_horaire$0, 0]], + _bt_ = [0, - caml_string_of_jsbytes("Smic"), - [0,caml_string_of_jsbytes("brut_horaire"),0]], - _bt_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 16, 13, 16, 42, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _bu_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _bu_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 16, 13, 16, 42, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _O_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _O_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr"), - 35, + cst_examples_allocations_famil$7, + 36, 14, - 35, + 36, 27, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _P_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _P_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr"), - 32, + cst_examples_allocations_famil$7, + 33, 12, - 32, + 33, 25, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _N_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _N_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr"), - 32, + cst_examples_allocations_famil$7, + 33, 12, - 32, + 33, 25, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _Q_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _Q_ = [0, cst_V_rification_geSup_rieur, [0, cst_est_sup_rieur$0, 0]], + _K_ = [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), - [0,caml_string_of_jsbytes("est_sup\xc3\xa9rieur"),0]], - _K_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr"), + cst_examples_allocations_famil$7, 25, 14, 25, 35, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _L_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _L_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr"), + cst_examples_allocations_famil$7, 22, 12, 22, 33, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _J_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _J_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr"), + cst_examples_allocations_famil$7, 22, 12, 22, 33, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _M_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _M_ = + [0, cst_V_rification_geInf_rieurOu, [0, cst_est_inf_rieur_ou_gal$0, 0]], + _G_ = [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80"), - [0,caml_string_of_jsbytes("est_inf\xc3\xa9rieur_ou_\xc3\xa9gal"),0]], - _G_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 12, 14, 12, 25, - [0, - caml_string_of_jsbytes("R\xc3\xa8gles diverses"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _E_=[2,0], - _F_=[1,0], - _H_= + [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], + _E_ = [2, 0], + cst_0 = cst_0$67, + _F_ = [1, 0], + cst_1 = "-1", + _H_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 80, 12, 80, 23, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _D_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _D_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 80, 12, 80, 23, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _I_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _I_ = [0, cst_EnfantLePlus_g, [0, cst_le_plus_g$0, 0]], + _A_ = [0, - caml_string_of_jsbytes("EnfantLePlus\xc3\x82g\xc3\xa9"), - [0,caml_string_of_jsbytes("le_plus_\xc3\xa2g\xc3\xa9"),0]], - _A_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_R.catala_fr"), + cst_examples_allocations_famil$1, 78, 14, 78, 41, [0, - caml_string_of_jsbytes("Article R521-1"), + cst_Article_R521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _B_= + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _B_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 76, 12, 76, 39, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _z_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _z_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 76, 12, 76, 39, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _C_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _C_ = [0, - caml_string_of_jsbytes("AllocationFamilialesAvril2008"), - [0, - caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), - 0]], - _y_=[0,caml_string_of_jsbytes("InterfaceAllocationsFamiliales_in"),0], - _x_=[0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales_in"),0], - _w_=[0,caml_string_of_jsbytes("Smic_in"),0], - _v_= + cst_AllocationFamilialesAvril2, + [0, cst_ge_minimum_alin_a_1_l521_3$0, 0]], + cst_i_avait_enfant_charge_avan = + "i_avait_enfant_\xc3\xa0_charge_avant_1er_janvier_2012_in", + cst_i_personne_charge_effectiv = + "i_personne_charge_effective_permanente_remplit_titre_I_in", + cst_i_personne_charge_effectiv$0 = + "i_personne_charge_effective_permanente_est_parent_in", + cst_i_r_sidence_in = "i_r\xc3\xa9sidence_in", + cst_i_ressources_m_nage_in = "i_ressources_m\xc3\xa9nage_in", + cst_i_enfants_in = "i_enfants_in", + cst_i_date_courante_in = "i_date_courante_in", + _y_ = [0, "InterfaceAllocationsFamiliales_in", 0], + cst_date_courante_in$4 = cst_date_courante_in$5, + _x_ = [0, "BaseMensuelleAllocationsFamiliales_in", 0], + cst_r_sidence_in$1 = cst_r_sidence_in$2, + cst_date_courante_in$3 = cst_date_courante_in$5, + _w_ = [0, "Smic_in", 0], + cst_ann_es_in$0 = cst_ann_es_in$1, + cst_date_courante_in$2 = cst_date_courante_in$5, + cst_date_naissance_in$0 = cst_date_naissance_in$1, + _v_ = [0, "V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80_in", 0], + cst_ann_es_in = cst_ann_es_in$1, + cst_date_courante_in$1 = cst_date_courante_in$5, + cst_date_naissance_in = cst_date_naissance_in$1, + _u_ = [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80_in"), + "V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80_in", 0], - _u_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80_in"), - 0], - _t_=[0,caml_string_of_jsbytes("AllocationsFamiliales_in"),0], - _s_=[0,caml_string_of_jsbytes("EnfantLePlus\xc3\x82g\xc3\xa9_in"),0], - _r_=[0,caml_string_of_jsbytes("PrestationsFamiliales_in"),0], - _q_=[0,caml_string_of_jsbytes("PrestationsFamiliales"),0], - _p_=[0,caml_string_of_jsbytes("EnfantLePlus\xc3\x82g\xc3\xa9"),0], - _o_=[0,caml_string_of_jsbytes("Enfant"),0], - _n_=[0,caml_string_of_jsbytes("EnfantEntr\xc3\xa9e"),0], - _m_=[0,caml_string_of_jsbytes("InterfaceAllocationsFamiliales"),0], - _l_=[0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"),0], - _k_=[0,caml_string_of_jsbytes("Smic"),0], - _j_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), - 0], - _i_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80"), - 0], - _h_=[0,caml_string_of_jsbytes("AllocationsFamiliales"),0], - _g_=[0,caml_string_of_jsbytes("AllocationFamilialesAvril2008"),0], - _f_=[0,caml_string_of_jsbytes("Collectivit\xc3\xa9"),0], - _e_= - [0, - caml_string_of_jsbytes("\xc3\x89l\xc3\xa9mentPrestationsFamiliales"), - 0], - _d_=[0,caml_string_of_jsbytes("VersementAllocations"),0], - _c_=[0,caml_string_of_jsbytes("PriseEnCompte"),0], - _b_=[0,caml_string_of_jsbytes("SituationObligationScolaire"),0], - _a_=[0,caml_string_of_jsbytes("PriseEnCharge"),0], - _kP_=[7,0], - _kQ_=[5,0], - _kR_=[4,0], - _kS_=[6,0], - _kT_=[8,0], - _kU_=[2,0], - _kV_=[3,0], - _kW_=[1,0], - _kX_=[0,0], - _kO_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'Collectivite.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'Collectivite.t'")], - _kG_=[0,0], - _kH_=[2,0], - _kI_=[1,0], - _kJ_=[5,0], - _kK_=[6,0], - _kL_=[3,0], - _kM_=[7,0], - _kN_=[4,0], - _kF_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'ElementPrestationsFamiliales.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'ElementPrestationsFamiliales.t'")], - _kD_=[0,0], - _kE_=[1,0], - _kC_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'VersementAllocations.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'VersementAllocations.t'")], - _kz_=[2,0], - _kA_=[1,0], - _kB_=[0,0], - _ky_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'PriseEnCompte.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'PriseEnCompte.t'")], - _kv_=[1,0], - _kw_=[0,0], - _kx_=[2,0], - _ku_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'SituationObligationScolaire.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'SituationObligationScolaire.t'")], - _kp_=[4,0], - _kq_=[3,0], - _kr_=[0,0], - _ks_=[1,0], - _kt_=[2,0], - _ko_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'PriseEnCharge.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'PriseEnCharge.t'")], - _$m_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/autres_sources.catala_fr"), - 283, - 14, - 283, - 25, - [0, - caml_string_of_jsbytes - ("Conseil d'\xc3\x89tat, 5\xc3\xa8me - 4\xc3\xa8me chambres r\xc3\xa9unies, 21/07/2017, 398563"), - 0]], - _$i_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _$j_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _$k_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - _$l_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _$e_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1262, - 14, - 1262, - 63, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$a_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1293, - 14, - 1293, - 25, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1258, - 5, - 1258, - 70, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1255, - 14, - 1255, - 58, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __Y_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1253, - 14, - 1253, - 54, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __U_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1251, - 14, - 1251, - 51, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __O_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1249, - 14, - 1249, - 59, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __K_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1247, - 14, - 1247, - 38, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __G_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1245, - 14, - 1245, - 34, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __C_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1243, - 14, - 1243, - 31, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __y_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1264, - 14, - 1264, - 48, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __z_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1232, - 11, - 1232, - 45, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __x_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1232, - 11, - 1232, - 45, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __A_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0, - caml_string_of_jsbytes - ("m\xc3\xa9nage_sans_enfants_garde_altern\xc3\xa9e"), - 0]], - __D_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1243, - 14, - 1243, - 31, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __E_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0,caml_string_of_jsbytes("calculette.m\xc3\xa9nage"),0]], - __B_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1243, - 14, - 1243, - 31, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __H_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1245, - 14, - 1245, - 34, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __I_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0,caml_string_of_jsbytes("calculette.demandeur"),0]], - __F_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1245, - 14, - 1245, - 34, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __L_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1247, - 14, - 1247, - 38, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __M_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0,caml_string_of_jsbytes("calculette.date_courante"),0]], - __J_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1247, - 14, - 1247, - 38, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __P_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1249, - 14, - 1249, - 59, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __Q_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0, - caml_string_of_jsbytes - ("calculette.ressources_m\xc3\xa9nage_prises_en_compte"), - 0]], - __N_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1249, - 14, - 1249, - 59, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __R_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0, - caml_string_of_jsbytes("calculette"), - [0,caml_string_of_jsbytes("CalculetteAidesAuLogement"),0]]], - __S_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0, - caml_string_of_jsbytes("calculette"), - [0,caml_string_of_jsbytes("CalculetteAidesAuLogement"),0]]], - __V_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1251, - 14, - 1251, - 51, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __W_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0, - caml_string_of_jsbytes - ("calculette_sans_garde_altern\xc3\xa9e.m\xc3\xa9nage"), - 0]], - __T_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1251, - 14, - 1251, - 51, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __Z_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1253, - 14, - 1253, - 54, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __0_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0, - caml_string_of_jsbytes - ("calculette_sans_garde_altern\xc3\xa9e.demandeur"), - 0]], - __X_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1253, - 14, - 1253, - 54, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1255, - 14, - 1255, - 58, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __4_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0, - caml_string_of_jsbytes - ("calculette_sans_garde_altern\xc3\xa9e.date_courante"), - 0]], - __1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1255, - 14, - 1255, - 58, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1258, - 5, - 1258, - 70, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __8_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0, - caml_string_of_jsbytes - ("calculette_sans_garde_altern\xc3\xa9e.ressources_m\xc3\xa9nage_prises_en_compte"), - 0]], - __5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1258, - 5, - 1258, - 70, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __9_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0, - caml_string_of_jsbytes("calculette_sans_garde_altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("CalculetteAidesAuLogement"),0]]], - ____= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0, - caml_string_of_jsbytes("calculette_sans_garde_altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("CalculetteAidesAuLogement"),0]]], - _$b_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1239, - 12, - 1239, - 23, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1239, - 12, - 1239, - 23, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$c_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0,caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"),0]], - _$f_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1233, - 11, - 1233, - 60, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$d_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1233, - 11, - 1233, - 60, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$g_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0, - caml_string_of_jsbytes - ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), - 0]], - _$n_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1240, - 12, - 1240, - 23, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$h_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1240, - 12, - 1240, - 23, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$o_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0,caml_string_of_jsbytes("aide_finale"),0]], - __u_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1123, - 14, - 1123, - 33, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - __m_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - __n_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - __o_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - __p_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - __q_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - __r_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - __s_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - __t_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - __i_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1140, - 14, - 1140, - 36, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - __a_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - __b_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - __c_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - __d_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - __e_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - __f_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - __g_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - __h_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - __j_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1163, - 12, - 1163, - 34, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Z$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1163, - 12, - 1163, - 34, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Z8_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1102, - 14, - 1102, - 25, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Z4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1213, - 14, - 1213, - 63, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ZY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1208, - 14, - 1208, - 58, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ZU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1204, - 14, - 1204, - 62, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ZQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1200, - 14, - 1200, - 53, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ZM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1194, - 5, - 1194, - 65, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ZI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1189, - 14, - 1189, - 68, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ZE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1185, - 14, - 1185, - 66, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ZA_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1111, - 14, - 1111, - 58, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Zz_=[0,0], - _Zv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1181, - 14, - 1181, - 64, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Zp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1210, - 14, - 1210, - 50, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Zl_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1113, - 14, - 1113, - 50, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Zi_=[2,0], - _Zj_=[1,0], - _Zk_=[2,0], - _Ze_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1206, - 14, - 1206, - 54, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Za_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1202, - 14, - 1202, - 45, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Y8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1198, - 14, - 1198, - 66, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Y4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1191, - 14, - 1191, - 60, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Y0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1187, - 14, - 1187, - 58, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _YW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1183, - 14, - 1183, - 56, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _YQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1177, - 14, - 1177, - 67, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _YM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1173, - 14, - 1173, - 63, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _YI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1169, - 14, - 1169, - 60, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _YC_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1097, - 5, - 1097, - 74, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Yy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1175, - 14, - 1175, - 55, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Yu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1171, - 14, - 1171, - 52, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Yq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1179, - 14, - 1179, - 59, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Yr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1179, - 14, - 1179, - 59, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Ys_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.date_courante"), - 0]], - _Yp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1179, - 14, - 1179, - 59, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Yv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1171, - 14, - 1171, - 52, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Yw_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.m\xc3\xa9nage"), - 0]], - _Yt_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1171, - 14, - 1171, - 52, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Yz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1175, - 14, - 1175, - 55, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _YA_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.demandeur"), - 0]], - _Yx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1175, - 14, - 1175, - 55, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _YD_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1097, - 5, - 1097, - 74, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _YE_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.b\xc3\xa9n\xc3\xa9ficie_aide_personnalis\xc3\xa9e_logement"), - 0]], - _YB_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1097, - 5, - 1097, - 74, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _YF_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_allocation_logement"), - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - 0]]], - _YG_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_allocation_logement"), - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - 0]]], - _YJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1169, - 14, - 1169, - 60, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _YK_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.m\xc3\xa9nage"), - 0]], - _YH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1169, - 14, - 1169, - 60, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _YN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1173, - 14, - 1173, - 63, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _YO_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.demandeur"), - 0]], - _YL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1173, - 14, - 1173, - 63, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _YR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1177, - 14, - 1177, - 67, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _YS_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.date_courante"), - 0]], - _YP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1177, - 14, - 1177, - 67, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _YT_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement"), - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - 0]]], - _YU_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement"), - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - 0]]], - _YX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1183, - 14, - 1183, - 56, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _YY_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes("calcul_allocation_logement.mode_occupation"), - 0]], - _YV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1183, - 14, - 1183, - 56, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Y1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1187, - 14, - 1187, - 58, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Y2_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("calcul_allocation_logement.ressources_m\xc3\xa9nage_sans_arrondi"), - 0]], - _YZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1187, - 14, - 1187, - 58, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Y5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1191, - 14, - 1191, - 60, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Y6_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("calcul_allocation_logement.situation_familiale"), - 0]], - _Y3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1191, - 14, - 1191, - 60, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Y9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1198, - 14, - 1198, - 66, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Y__= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("calcul_allocation_logement.nombre_personnes_\xc3\xa0_charge"), - 0]], - _Y7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1198, - 14, - 1198, - 66, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Zb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1202, - 14, - 1202, - 45, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Zc_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0,caml_string_of_jsbytes("calcul_allocation_logement.zone"),0]], - _Y$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1202, - 14, - 1202, - 45, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Zf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1206, - 14, - 1206, - 54, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Zg_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes("calcul_allocation_logement.date_courante"), - 0]], - _Zd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1206, - 14, - 1206, - 54, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Zm_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1113, - 14, - 1113, - 50, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Zn_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0,caml_string_of_jsbytes("calcul_allocation_logement.type_aide"),0]], - _Zh_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1113, - 14, - 1113, - 50, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Zq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1210, - 14, - 1210, - 50, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Zr_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes("calcul_allocation_logement.r\xc3\xa9sidence"), - 0]], - _Zo_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1210, - 14, - 1210, - 50, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Zs_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes("calcul_allocation_logement"), - [0,caml_string_of_jsbytes("CalculAllocationLogement"),0]]], - _Zt_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes("calcul_allocation_logement"), - [0,caml_string_of_jsbytes("CalculAllocationLogement"),0]]], - _Zw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1181, - 14, - 1181, - 64, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Zx_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("calcul_aide_personnalis\xc3\xa9e_logement.mode_occupation"), - 0]], - _Zu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1181, - 14, - 1181, - 64, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ZB_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1111, - 14, - 1111, - 58, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _ZC_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("calcul_aide_personnalis\xc3\xa9e_logement.type_aide"), - 0]], - _Zy_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1111, - 14, - 1111, - 58, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _ZF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1185, - 14, - 1185, - 66, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ZG_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("calcul_aide_personnalis\xc3\xa9e_logement.ressources_m\xc3\xa9nage_sans_arrondi"), - 0]], - _ZD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1185, - 14, - 1185, - 66, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ZJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1189, - 14, - 1189, - 68, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ZK_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("calcul_aide_personnalis\xc3\xa9e_logement.situation_familiale"), - 0]], - _ZH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1189, - 14, - 1189, - 68, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ZN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1194, - 5, - 1194, - 65, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ZO_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("calcul_aide_personnalis\xc3\xa9e_logement.nombre_personnes_\xc3\xa0_charge"), - 0]], - _ZL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1194, - 5, - 1194, - 65, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ZR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1200, - 14, - 1200, - 53, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ZS_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("calcul_aide_personnalis\xc3\xa9e_logement.zone"), - 0]], - _ZP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1200, - 14, - 1200, - 53, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ZV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1204, - 14, - 1204, - 62, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ZW_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("calcul_aide_personnalis\xc3\xa9e_logement.date_courante"), - 0]], - _ZT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1204, - 14, - 1204, - 62, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ZZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1208, - 14, - 1208, - 58, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Z0_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("calcul_aide_personnalis\xc3\xa9e_logement.r\xc3\xa9sidence"), - 0]], - _ZX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1208, - 14, - 1208, - 58, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Z1_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes("calcul_aide_personnalis\xc3\xa9e_logement"), - [0,caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"),0]]], - _Z2_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes("calcul_aide_personnalis\xc3\xa9e_logement"), - [0,caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"),0]]], - _Z5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1165, - 12, - 1165, - 61, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Z3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1165, - 12, - 1165, - 61, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Z6_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), - 0]], - _Z9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1161, - 12, - 1161, - 23, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Z7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1161, - 12, - 1161, - 23, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _Z__= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0,caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"),0]], - __k_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - __v_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1162, - 12, - 1162, - 31, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __l_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1162, - 12, - 1162, - 31, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - __w_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0,caml_string_of_jsbytes("aide_finale_formule"),0]], - _Yk_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1279, - 5, - 1280, - 54, - [0, - caml_string_of_jsbytes("Article L860-3"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]], - _Yl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 402, - 12, - 402, - 23, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Yj_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 627, - 5, - 629, - 36, - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]], - _Ym_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 402, - 12, - 402, - 23, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Yi_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 402, - 12, - 402, - 23, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Yb_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 777, - 5, - 790, - 30, - [0, - caml_string_of_jsbytes("Article L831-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Yc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 396, - 11, - 396, - 34, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ya_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 758, - 5, - 763, - 30, - [0, - caml_string_of_jsbytes("Article L831-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Yd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 396, - 11, - 396, - 34, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _X$_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 753, - 31, - 753, - 54, - [0, - caml_string_of_jsbytes("Article L831-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Ye_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 396, - 11, - 396, - 34, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _X__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 396, - 11, - 396, - 34, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _X6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 413, - 14, - 413, - 56, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _X2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 415, - 14, - 415, - 63, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XW_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1413, - 5, - 1416, - 30, - [0, - caml_string_of_jsbytes("Article L861-5-1"), - [0, - caml_string_of_jsbytes - ("Section 3 : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _XX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 395, - 11, - 395, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XV_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 721, - 5, - 724, - 30, - [0, - caml_string_of_jsbytes("Article L831-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _XY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 395, - 11, - 395, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3688, - 5, - 3693, - 30, - [0, - caml_string_of_jsbytes("Article R832-21"), - [0, - caml_string_of_jsbytes - ("Sous-Section 1 : Conditions d'assimilation des logements-foyers aux logements \xc3\xa0 usage locatif"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _XQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 395, - 11, - 395, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XL_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_6"), - [0,caml_string_of_jsbytes("input0"),0]]], - _XM_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_6"), - 0]], - _XN_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_6"), - [0,caml_string_of_jsbytes("output"),0]]], - _XO_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_6"), - 0]], - _XK_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 738, - 5, - 741, - 30, - [0, - caml_string_of_jsbytes("Article L831-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _XR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 395, - 11, - 395, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XJ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 677, - 5, - 686, - 30, - [0, - caml_string_of_jsbytes("Article L831-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _XS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 395, - 11, - 395, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XF_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_1"), - [0,caml_string_of_jsbytes("input0"),0]]], - _XG_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_1"), - 0]], - _XH_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_1"), - [0,caml_string_of_jsbytes("output"),0]]], - _XI_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_1"), - 0]], - _XE_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 656, - 5, - 659, - 30, - [0, - caml_string_of_jsbytes("Article L831-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _XT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 395, - 11, - 395, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 395, - 11, - 395, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 395, - 11, - 395, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xy_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4560, - 6, - 4560, - 43, - [0, - caml_string_of_jsbytes("Article 49"), - [0, - caml_string_of_jsbytes("Chapitre XI : Dispositions communes"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Xz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 394, - 11, - 394, - 53, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 394, - 11, - 394, - 53, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xr_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5463, - 5, - 5464, - 53, - [0, - caml_string_of_jsbytes("Article R861-5"), - [0, - caml_string_of_jsbytes - ("Capitre I : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Xs_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5462, - 14, - 5462, - 66, - [0, - caml_string_of_jsbytes("Article R861-5"), - [0, - caml_string_of_jsbytes - ("Capitre I : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Xt_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_commune.date_entr\xc3\xa9e_vigueur_diff\xc3\xa9r\xc3\xa9e_cch"), - 0]], - _Xo_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 411, - 14, - 411, - 47, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 410, - 14, - 410, - 43, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 409, - 14, - 409, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 398, - 11, - 398, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 398, - 11, - 398, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 398, - 11, - 398, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _W7_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3016, - 5, - 3019, - 41, - [0, - caml_string_of_jsbytes("Article R832-7"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _W8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 397, - 11, - 397, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _W6_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2981, - 5, - 2983, - 42, - [0, - caml_string_of_jsbytes("Article R832-5"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _W9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 397, - 11, - 397, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _W__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 397, - 11, - 397, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _W5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 397, - 11, - 397, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _W$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 397, - 11, - 397, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _W4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 397, - 11, - 397, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xa_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_1"), - 0]], - _Xe_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_6"), - 0]], - _Xh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 409, - 14, - 409, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xi_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_commune.m\xc3\xa9nage"), - 0]], - _Xf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 409, - 14, - 409, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 410, - 14, - 410, - 43, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xm_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_commune.demandeur"), - 0]], - _Xj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 410, - 14, - 410, - 43, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 411, - 14, - 411, - 47, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xq_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_commune.date_courante"), - 0]], - _Xn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 411, - 14, - 411, - 47, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xu_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_commune"), - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - 0]]], - _Xv_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_commune"), - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - 0]]], - _XA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 394, - 11, - 394, - 53, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 394, - 11, - 394, - 53, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XB_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes - ("logement_situ\xc3\xa9_commune_d\xc3\xa9s\xc3\xa9quilibre_l831_2"), - 0]], - _XZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 395, - 11, - 395, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 395, - 11, - 395, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _X0_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("condition_logement_bailleur"),0]], - _X3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 404, - 12, - 404, - 61, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _X1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 404, - 12, - 404, - 61, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _X4_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes - ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), - 0]], - _X7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 403, - 12, - 403, - 54, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _X5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 403, - 12, - 403, - 54, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _X8_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes - ("nombre_personnes_\xc3\xa0_charge_prises_en_compte"), - 0]], - _Yf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 396, - 11, - 396, - 34, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _X9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 396, - 11, - 396, - 34, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Yg_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("condition_logement_pr\xc3\xaat"),0]], - _Yn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 402, - 12, - 402, - 23, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Yh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 402, - 12, - 402, - 23, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Yo_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"),0]], - _WY_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1632, - 5, - 1633, - 79, - [0, - caml_string_of_jsbytes("Article L816-8"), - [0, - caml_string_of_jsbytes("Section 4 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _WX_=[0,0], - _WZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 451, - 10, - 451, - 16, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _WW_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1598, - 5, - 1607, - 28, - [0, - caml_string_of_jsbytes("Article L861-6"), - [0, - caml_string_of_jsbytes("Section 4 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _WV_=[0,0], - _W0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 451, - 10, - 451, - 16, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _WT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1182, - 5, - 1182, - 73, - [0, - caml_string_of_jsbytes("Article L841-3"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _WS_=[2,0], - _WU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 451, - 10, - 451, - 16, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _WR_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1196, - 5, - 1199, - 28, - [0, - caml_string_of_jsbytes("Article L841-4"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _WQ_=[0,0], - _W1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 451, - 10, - 451, - 16, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _WP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1081, - 29, - 1081, - 40, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _WL_=[0,0], - _WM_=[0,0], - _WN_=[1,0], - _WO_=[2,0], - _Wz_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1812, - 5, - 1812, - 66, - [0, - caml_string_of_jsbytes("Article L862-3"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]], - _WA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ws_=[2,0], - _Wx_=[0,0], - _Wt_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Wu_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _Wv_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert"), - [0,caml_string_of_jsbytes("output"),0]]], - _Ww_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _Wy_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1772, - 5, - 1793, - 9, - [0, - caml_string_of_jsbytes("Article L862-3"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]], - _WB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Wp_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1522, - 5, - 1522, - 66, - [0, - caml_string_of_jsbytes("Article L861-6"), - [0, - caml_string_of_jsbytes("Section 4 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Wq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Wi_=[2,0], - _Wn_=[0,0], - _Wj_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Wk_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _Wl_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert"), - [0,caml_string_of_jsbytes("output"),0]]], - _Wm_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _Wo_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1480, - 5, - 1501, - 9, - [0, - caml_string_of_jsbytes("Article L861-6"), - [0, - caml_string_of_jsbytes("Section 4 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Wr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Wh_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1049, - 5, - 1054, - 29, - [0, - caml_string_of_jsbytes("Article L841-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _WC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Wg_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1023, - 5, - 1034, - 13, - [0, - caml_string_of_jsbytes("Article L841-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _WD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Wb_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("condition_2_r823_4"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Wc_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("condition_2_r823_4"),0]], - _Wd_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("condition_2_r823_4"), - [0,caml_string_of_jsbytes("output"),0]]], - _We_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("condition_2_r823_4"),0]], - _Wf_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1005, - 5, - 1007, - 9, - [0, - caml_string_of_jsbytes("Article L841-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _WE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _V6_=[2,0], - _V$_=[0,0], - _V7_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert"), - [0,caml_string_of_jsbytes("input0"),0]]], - _V8_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _V9_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert"), - [0,caml_string_of_jsbytes("output"),0]]], - _V__= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _Wa_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 965, - 5, - 991, - 29, - [0, - caml_string_of_jsbytes("Article L841-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _WF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _VZ_=[2,0], - _V4_=[0,0], - _V0_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert"), - [0,caml_string_of_jsbytes("input0"),0]]], - _V1_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _V2_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert"), - [0,caml_string_of_jsbytes("output"),0]]], - _V3_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _V5_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 932, - 5, - 954, - 8, - [0, - caml_string_of_jsbytes("Article L841-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _WG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _VU_=[4,0], - _VV_=[3,0], - _VW_=[1,0], - _VX_=[0,0], - _VY_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 909, - 5, - 915, - 6, - [0, - caml_string_of_jsbytes("Article L841-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _WH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _VT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _VP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 877, - 14, - 877, - 25, - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]], - _VN_=[0,0], - _VO_=[2,0], - _VJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 468, - 14, - 468, - 56, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _VF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 470, - 14, - 470, - 63, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Vz_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4773, - 9, - 4773, - 55, - [0, - caml_string_of_jsbytes("Article R842-14"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _VA_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4773, - 9, - 4773, - 55, - [0, - caml_string_of_jsbytes("Article R842-14"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _VB_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_commune.condition_logement_surface"), - 0]], - _Vw_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4772, - 9, - 4772, - 68, - [0, - caml_string_of_jsbytes("Article R842-14"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Vx_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4772, - 9, - 4772, - 68, - [0, - caml_string_of_jsbytes("Article R842-14"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Vy_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_commune.condition_logement_r\xc3\xa9sidence_principale"), - 0]], - _Vt_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 466, - 14, - 466, - 47, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Vp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 465, - 14, - 465, - 43, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Vl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 464, - 14, - 464, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Vc_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4370, - 5, - 4375, - 28, - [0, - caml_string_of_jsbytes("Article R842-5"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Vd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 437, - 11, - 437, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Vb_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4353, - 5, - 4358, - 28, - [0, - caml_string_of_jsbytes("Article R842-5"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ve_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 437, - 11, - 437, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Va_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4336, - 5, - 4343, - 28, - [0, - caml_string_of_jsbytes("Article R842-5"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Vf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 437, - 11, - 437, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Vg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 437, - 11, - 437, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _U$_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4306, - 5, - 4308, - 28, - [0, - caml_string_of_jsbytes("Article R842-5"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Vh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 437, - 11, - 437, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _U__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 437, - 11, - 437, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _U4_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 905, - 9, - 905, - 29, - [0, - caml_string_of_jsbytes("Article L841-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _U5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 438, - 11, - 438, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _U1_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1748, - 9, - 1748, - 29, - [0, - caml_string_of_jsbytes("Article L862-3"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]], - _U2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 438, - 11, - 438, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _U0_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1442, - 9, - 1442, - 29, - [0, - caml_string_of_jsbytes("Article L861-6"), - [0, - caml_string_of_jsbytes("Section 4 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _U3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 438, - 11, - 438, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _U6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 438, - 11, - 438, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _UZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 438, - 11, - 438, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _UT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 927, - 9, - 927, - 29, - [0, - caml_string_of_jsbytes("Article L841-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _UU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 439, - 11, - 439, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _UQ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1749, - 9, - 1749, - 29, - [0, - caml_string_of_jsbytes("Article L862-3"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]], - _UR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 439, - 11, - 439, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _UP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1443, - 9, - 1443, - 29, - [0, - caml_string_of_jsbytes("Article L861-6"), - [0, - caml_string_of_jsbytes("Section 4 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _US_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 439, - 11, - 439, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _UV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 439, - 11, - 439, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _UO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 439, - 11, - 439, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _UI_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1044, - 9, - 1044, - 29, - [0, - caml_string_of_jsbytes("Article L841-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _UJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 440, - 11, - 440, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _UF_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1750, - 9, - 1750, - 29, - [0, - caml_string_of_jsbytes("Article L862-3"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]], - _UG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 440, - 11, - 440, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _UE_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1444, - 9, - 1444, - 29, - [0, - caml_string_of_jsbytes("Article L861-6"), - [0, - caml_string_of_jsbytes("Section 4 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _UH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 440, - 11, - 440, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _UK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 440, - 11, - 440, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _UD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 440, - 11, - 440, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ux_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 462, - 14, - 462, - 46, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ut_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 460, - 14, - 460, - 56, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Us_=[3,0], - _Uo_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 459, - 14, - 459, - 50, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Uk_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4177, - 14, - 4177, - 28, - [0, - caml_string_of_jsbytes("Article D841-1"), - [0, - caml_string_of_jsbytes("Chapitre 1 : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Ul_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 443, - 11, - 443, - 25, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Uj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 443, - 11, - 443, - 25, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Um_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0,caml_string_of_jsbytes("dur\xc3\xa9e_l841_1_3"),0]], - _Up_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 459, - 14, - 459, - 50, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Uq_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0,caml_string_of_jsbytes("prestations_familiales.date_courante"),0]], - _Un_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 459, - 14, - 459, - 50, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Uu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 460, - 14, - 460, - 56, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Uv_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes("prestations_familiales.prestation_courante"), - 0]], - _Ur_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 460, - 14, - 460, - 56, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Uy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 462, - 14, - 462, - 46, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Uz_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0,caml_string_of_jsbytes("prestations_familiales.r\xc3\xa9sidence"),0]], - _Uw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 462, - 14, - 462, - 46, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _UA_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes("prestations_familiales"), - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - 0]]], - _UB_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes("prestations_familiales"), - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - 0]]], - _UL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 440, - 11, - 440, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _UC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 440, - 11, - 440, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _UM_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0,caml_string_of_jsbytes("l_841_1_6_applicable"),0]], - _UW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 439, - 11, - 439, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _UN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 439, - 11, - 439, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _UX_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0,caml_string_of_jsbytes("l_841_1_2_applicable"),0]], - _U7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 438, - 11, - 438, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _UY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 438, - 11, - 438, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _U8_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0,caml_string_of_jsbytes("l_841_1_1_applicable"),0]], - _Vi_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 437, - 11, - 437, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _U9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 437, - 11, - 437, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Vj_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes("condition_accession_propri\xc3\xa9t\xc3\xa9"), - 0]], - _Vm_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 464, - 14, - 464, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Vn_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_commune.m\xc3\xa9nage"), - 0]], - _Vk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 464, - 14, - 464, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Vq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 465, - 14, - 465, - 43, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Vr_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_commune.demandeur"), - 0]], - _Vo_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 465, - 14, - 465, - 43, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Vu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 466, - 14, - 466, - 47, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Vv_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_commune.date_courante"), - 0]], - _Vs_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 466, - 14, - 466, - 47, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _VC_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_commune"), - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - 0]]], - _VD_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_commune"), - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - 0]]], - _VG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 453, - 12, - 453, - 61, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _VE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 453, - 12, - 453, - 61, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _VH_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes - ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), - 0]], - _VK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 452, - 12, - 452, - 54, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _VI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 452, - 12, - 452, - 54, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _VL_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes - ("nombre_personnes_\xc3\xa0_charge_prises_en_compte"), - 0]], - _VQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 450, - 10, - 450, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _VM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 450, - 10, - 450, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _VR_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_dispositions_communes"), - 0]], - _WI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _VS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _WJ_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_allocation_logement_familiale"), - 0]], - _W2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 451, - 10, - 451, - 16, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _WK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 451, - 10, - 451, - 16, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _W3_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0,caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_l841_2"),0]], - _Ug_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2104, - 14, - 2104, - 40, - [0, - caml_string_of_jsbytes("Article D823-22"), - [0, - caml_string_of_jsbytes - ("Section 2 : Prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _T9_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5497, - 5, - 5497, - 40, - [0, - caml_string_of_jsbytes("Article D861-7"), - [0, - caml_string_of_jsbytes - ("Capitre I : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _T__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 493, - 11, - 493, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _T8_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1883, - 5, - 1883, - 54, - [0, - caml_string_of_jsbytes("Article L863-2"), - [0, - caml_string_of_jsbytes - ("Section 2 : Dispositions communes aux aides applicables \xc3\xa0 Saint-Pierre-et-Miquelon"), - [0, - caml_string_of_jsbytes("Chapitre III : Saint-Pierre-et-Miquelon"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _T$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 493, - 11, - 493, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _T7_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1315, - 5, - 1315, - 40, - [0, - caml_string_of_jsbytes("Article L861-4"), - [0, - caml_string_of_jsbytes - ("Section 2 : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ua_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 493, - 11, - 493, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ub_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 493, - 11, - 493, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _T6_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 599, - 5, - 602, - 42, - [0, - caml_string_of_jsbytes("Article L823-8"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Uc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 493, - 11, - 493, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _T5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 493, - 11, - 493, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _T1_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4215, - 14, - 4215, - 29, - [0, - caml_string_of_jsbytes("Article 45"), - [0, - caml_string_of_jsbytes - ("Chapitre VIII : Prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _TW_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2063, - 6, - 2074, - 75, - [0, - caml_string_of_jsbytes("Article D823-20"), - [0, - caml_string_of_jsbytes - ("Section 2 : Prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _TX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 492, - 11, - 492, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 492, - 11, - 492, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 506, - 14, - 506, - 43, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 505, - 14, - 505, - 39, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 504, - 14, - 504, - 36, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 508, - 14, - 508, - 65, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Tw_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2054, - 5, - 2059, - 77, - [0, - caml_string_of_jsbytes("Article D823-20"), - [0, - caml_string_of_jsbytes - ("Section 2 : Prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Tx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 491, - 11, - 491, - 32, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Tv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 491, - 11, - 491, - 32, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Tr_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2078, - 14, - 2078, - 47, - [0, - caml_string_of_jsbytes("Article D823-20"), - [0, - caml_string_of_jsbytes - ("Section 2 : Prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ts_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 494, - 11, - 494, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Tq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 494, - 11, - 494, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Tt_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("d\xc3\xa9lai_apr\xc3\xa8s_emm\xc3\xa9nagement_l823_8_2"), - 0]], - _Ty_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 491, - 11, - 491, - 32, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Tu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 491, - 11, - 491, - 32, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Tz_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0,caml_string_of_jsbytes("condition_rang_enfant"),0]], - _TC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 508, - 14, - 508, - 65, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TD_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("base_mensuelle_allocations_familiales.date_courante"), - 0]], - _TA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 508, - 14, - 508, - 65, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TE_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes("base_mensuelle_allocations_familiales"), - [0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"),0]]], - _TF_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes("base_mensuelle_allocations_familiales"), - [0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"),0]]], - _TI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 504, - 14, - 504, - 36, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TJ_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_apl.m\xc3\xa9nage"), - 0]], - _TG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 504, - 14, - 504, - 36, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 505, - 14, - 505, - 39, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TN_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0,caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_apl.demandeur"),0]], - _TK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 505, - 14, - 505, - 39, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 506, - 14, - 506, - 43, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TR_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_apl.date_courante"), - 0]], - _TO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 506, - 14, - 506, - 43, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TS_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_apl"), - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - 0]]], - _TT_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_apl"), - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - 0]]], - _TY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 492, - 11, - 492, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 492, - 11, - 492, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TZ_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("condition_p\xc3\xa9riode_d\xc3\xa9m\xc3\xa9nagement"), - 0]], - _T2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 495, - 11, - 495, - 26, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _T0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 495, - 11, - 495, - 26, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _T3_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0,caml_string_of_jsbytes("plafond_d823_22"),0]], - _Ud_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 493, - 11, - 493, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _T4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 493, - 11, - 493, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ue_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0,caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_logement"),0]], - _Uh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 501, - 12, - 501, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Uf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 501, - 12, - 501, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ui_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes("montant_prime_d\xc3\xa9m\xc3\xa9nagement"), - 0]], - _Tn_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1437, - 14, - 1437, - 33, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Tj_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1439, - 14, - 1439, - 36, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Tk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1099, - 12, - 1099, - 34, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Ti_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1099, - 12, - 1099, - 34, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Te_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 6408, - 24, - 6408, - 46, - [0, - caml_string_of_jsbytes("Article D863-7"), - [0, - caml_string_of_jsbytes - ("Sous-section III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Section II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Chapitre III : Saint-Pierre-et-Miquelon"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _S9_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _S__= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _S$_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - _Ta_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _S5_=[1,0], - _S6_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 6437, - 42, - 6437, - 45, - [0, - caml_string_of_jsbytes("Article D863-7"), - [0, - caml_string_of_jsbytes - ("Sous-section III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Section II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Chapitre III : Saint-Pierre-et-Miquelon"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _S7_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("input"),0]]], - _S8_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("direct"),0]], - _Tb_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 6412, - 9, - 6440, - 10, - [0, - caml_string_of_jsbytes("Article D863-7"), - [0, - caml_string_of_jsbytes - ("Sous-section III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Section II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Chapitre III : Saint-Pierre-et-Miquelon"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Tc_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("output"),0]]], - _Td_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("direct"),0]], - _Tf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1096, - 11, - 1096, - 33, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _S4_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1553, - 14, - 1553, - 36, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _SX_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _SY_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _SZ_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - _S0_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _SO_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _SP_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _SQ_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - _SR_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _SF_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _SG_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _SH_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - _SI_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _SC_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1573, - 16, - 1576, - 39, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _SD_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("input"),0]]], - _SE_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("direct"),0]], - _SJ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1557, - 9, - 1579, - 10, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _SK_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("output"),0]]], - _SL_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("direct"),0]], - _SM_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("input"),0]]], - _SN_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("direct"),0]], - _SS_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1612, - 10, - 1631, - 11, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _ST_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("output"),0]]], - _SU_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("direct"),0]], - _SV_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("input"),0]]], - _SW_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("direct"),0]], - _S1_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1590, - 9, - 1602, - 10, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _S2_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("output"),0]]], - _S3_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("direct"),0]], - _Sy_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 88, - 14, - 88, - 44, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Ss_=[0,0], - _St_=[1,0], - _Su_=[1,0], - _Sv_=[1,0], - _Sw_=[0,0], - _Sx_=[1,0], - _So_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1970, - 14, - 1970, - 31, - [0, - caml_string_of_jsbytes("Article D823-17"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _Sk_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1426, - 14, - 1426, - 34, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Sl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1093, - 11, - 1093, - 31, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Sj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1093, - 11, - 1093, - 31, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Sm_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0,caml_string_of_jsbytes("cat\xc3\xa9gorie_calcul_apl"),0]], - _Sp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1085, - 10, - 1085, - 22, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Sn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1085, - 10, - 1085, - 22, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Sq_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0,caml_string_of_jsbytes("ressources_m\xc3\xa9nage_avec_arrondi"),0]], - _Sz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1094, - 11, - 1094, - 41, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Sr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1094, - 11, - 1094, - 41, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _SA_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0,caml_string_of_jsbytes("situation_familiale_calcul_apl"),0]], - _Tg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1096, - 11, - 1096, - 33, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _SB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1096, - 11, - 1096, - 33, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Th_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0,caml_string_of_jsbytes("sous_calcul_traitement"),0]], - _Tl_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _To_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1098, - 12, - 1098, - 31, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Tm_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1098, - 12, - 1098, - 31, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Tp_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0,caml_string_of_jsbytes("aide_finale_formule"),0]], - _Sa_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 357, - 14, - 357, - 56, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _R8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 359, - 14, - 359, - 63, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _R4_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1139, - 14, - 1139, - 49, - [0, - caml_string_of_jsbytes("Article R823-4"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _R0_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("prise_en_compte_personne_\xc3\xa0_charge"), - [0,caml_string_of_jsbytes("input0"),0]]], - _R1_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("prise_en_compte_personne_\xc3\xa0_charge"), - 0]], - _R2_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("prise_en_compte_personne_\xc3\xa0_charge"), - [0,caml_string_of_jsbytes("output"),0]]], - _R3_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("prise_en_compte_personne_\xc3\xa0_charge"), - 0]], - _RU_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1244, - 4, - 1250, - 48, - [0, - caml_string_of_jsbytes("Article R823-4"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _RV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 321, - 11, - 321, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _RP_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("condition_2_r823_4"), - [0,caml_string_of_jsbytes("input0"),0]]], - _RQ_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("condition_2_r823_4"),0]], - _RR_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("condition_2_r823_4"), - [0,caml_string_of_jsbytes("output"),0]]], - _RS_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("condition_2_r823_4"),0]], - _RT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1225, - 5, - 1225, - 44, - [0, - caml_string_of_jsbytes("Article R823-4"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _RW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 321, - 11, - 321, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _RJ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1838, - 5, - 1844, - 34, - [0, - caml_string_of_jsbytes("Article L862-3"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]], - _RK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 321, - 11, - 321, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _RI_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1568, - 5, - 1574, - 34, - [0, - caml_string_of_jsbytes("Article L861-6"), - [0, - caml_string_of_jsbytes("Section 4 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _RL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 321, - 11, - 321, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _RH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 449, - 5, - 457, - 28, - [0, - caml_string_of_jsbytes("Article L823-1"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _RM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 321, - 11, - 321, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _RN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 321, - 11, - 321, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _RA_=[2,0], - _RG_=[0,0], - _RB_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert"), - [0,caml_string_of_jsbytes("input0"),0]]], - _RC_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _RD_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert"), - [0,caml_string_of_jsbytes("output"),0]]], - _RE_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _RF_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1156, - 5, - 1178, - 44, - [0, - caml_string_of_jsbytes("Article R823-4"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _RO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 321, - 11, - 321, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Rz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 321, - 11, - 321, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _RX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 321, - 11, - 321, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ry_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 321, - 11, - 321, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ru_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 353, - 5, - 355, - 25, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Rv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 342, - 12, - 342, - 23, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Rt_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 342, - 12, - 342, - 23, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ri_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1213, - 30, - 1213, - 35, - [0, - caml_string_of_jsbytes("Article R823-4"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Rj_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("input"),0]]], - _Rk_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80"), - [0,caml_string_of_jsbytes("direct"),0]], - _Rl_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1210, - 17, - 1213, - 37, - [0, - caml_string_of_jsbytes("Article R823-4"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Rm_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("output"),0]]], - _Rn_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80"), - [0,caml_string_of_jsbytes("direct"),0]], - _Ro_=[0,0], - _Rh_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1199, - 5, - 1220, - 10, - [0, - caml_string_of_jsbytes("Article R823-4"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Rp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 346, - 12, - 346, - 30, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Rg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 346, - 12, - 346, - 30, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Rq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 346, - 12, - 346, - 30, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Rf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 346, - 12, - 346, - 30, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ra_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 91, - 5, - 92, - 52, - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]], - _Rb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 320, - 11, - 320, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Q$_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 84, - 5, - 87, - 52, - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]], - _Rc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 320, - 11, - 320, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Q__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 320, - 11, - 320, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Q6_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 163, - 14, - 163, - 31, - [0, - caml_string_of_jsbytes("Article L351-8"), - [0, - caml_string_of_jsbytes("Section 5 : Taux et montant de la pension"), - [0, - caml_string_of_jsbytes - ("Chapitre 1er : Ouverture du droit, liquidation et calcul des pensions de retraite"), - [0, - caml_string_of_jsbytes - ("Titre V : Assurance vieillesse - Assurance veuvage"), - [0, - caml_string_of_jsbytes - ("Livre III : Dispositions relatives aux assurances sociales et \xc3\xa0 diverses cat\xc3\xa9gories de personnes rattach\xc3\xa9es au r\xc3\xa9gime g\xc3\xa9n\xc3\xa9rale"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]], - _Q1_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 401, - 18, - 401, - 44, - [0, - caml_string_of_jsbytes("Article L822-10"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Q2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 317, - 11, - 317, - 58, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Q0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 317, - 11, - 317, - 58, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _QS_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 302, - 18, - 302, - 75, - [0, - caml_string_of_jsbytes("Article L822-5"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _QT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 334, - 11, - 334, - 36, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _QP_=[5,0], - _QQ_=[4,0], - _QR_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 288, - 18, - 290, - 45, - [0, - caml_string_of_jsbytes("Article L822-5"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _QU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 334, - 11, - 334, - 36, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _QV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 334, - 11, - 334, - 36, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _QO_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 945, - 5, - 945, - 58, - [0, - caml_string_of_jsbytes("Article R822-22"), - [0, - caml_string_of_jsbytes - ("Sous-section 4 : Prise en compte du patrimoine"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _QW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 334, - 11, - 334, - 36, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _QN_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 271, - 33, - 271, - 58, - [0, - caml_string_of_jsbytes("Article L822-5"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _QJ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 125, - 14, - 125, - 32, - [0, - caml_string_of_jsbytes("Article L161-17-2"), - [0, - caml_string_of_jsbytes - ("Paragraphe 1 : Information et simplification des d\xc3\xa9marches des assur\xc3\xa9s."), - [0, - caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), - [0, - caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), - [0, - caml_string_of_jsbytes - ("Chapitre 1er : Dispositions relatives aux prestations"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), - [0, - caml_string_of_jsbytes - ("Titre III: Titre III : Dispositions communes relatives au financement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]]]], - _QB_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5275, - 5, - 5276, - 34, - [0, - caml_string_of_jsbytes("Article R844-4"), - [0, - caml_string_of_jsbytes("Chapitre IV : Conditions de peuplement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _QC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 314, - 12, - 314, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _QA_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5268, - 5, - 5270, - 58, - [0, - caml_string_of_jsbytes("Article R844-4"), - [0, - caml_string_of_jsbytes("Chapitre IV : Conditions de peuplement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _QD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 314, - 12, - 314, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Qz_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1048, - 5, - 1065, - 65, - [0, - caml_string_of_jsbytes("Article R822-25"), - [0, - caml_string_of_jsbytes - ("Section 3 : Conditions relatives au logement"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _QE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 314, - 12, - 314, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Qy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 314, - 12, - 314, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _QF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 314, - 12, - 314, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Qr_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 189, - 5, - 195, - 65, - [0, - caml_string_of_jsbytes("Article L822-3"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Qs_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 312, - 11, - 312, - 45, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Qq_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 174, - 5, - 176, - 30, - [0, - caml_string_of_jsbytes("Article L822-3"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Qt_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 312, - 11, - 312, - 45, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Qp_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 143, - 5, - 149, - 33, - [0, - caml_string_of_jsbytes("Article L822-2"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Qu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 312, - 11, - 312, - 45, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Qo_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 312, - 11, - 312, - 45, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Qf_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5721, - 5, - 5724, - 28, - [0, - caml_string_of_jsbytes("Article R862-2"), - [0, - caml_string_of_jsbytes - ("Section I : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Qg_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5720, - 24, - 5720, - 59, - [0, - caml_string_of_jsbytes("Article R862-2"), - [0, - caml_string_of_jsbytes - ("Section I : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Qe_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5626, - 6, - 5632, - 30, - [0, - caml_string_of_jsbytes("Article D861-9"), - [0, - caml_string_of_jsbytes("Section 2 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Qh_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5720, - 24, - 5720, - 59, - [0, - caml_string_of_jsbytes("Article R862-2"), - [0, - caml_string_of_jsbytes - ("Section I : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Qi_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5720, - 24, - 5720, - 59, - [0, - caml_string_of_jsbytes("Article R862-2"), - [0, - caml_string_of_jsbytes - ("Section I : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Qd_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1152, - 14, - 1152, - 49, - [0, - caml_string_of_jsbytes("Article R823-4"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Qj_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5720, - 24, - 5720, - 59, - [0, - caml_string_of_jsbytes("Article R862-2"), - [0, - caml_string_of_jsbytes - ("Section I : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Qk_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("prestations_familiales.\xc3\xa2ge_l512_3_2"), - 0]], - _Qa_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 383, - 14, - 383, - 46, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _P8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 381, - 14, - 381, - 56, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _P7_=[3,0], - _P3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 380, - 14, - 380, - 50, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _PS_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 227, - 22, - 227, - 27, - [0, - caml_string_of_jsbytes("Article L822-4"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _PT_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("input"),0]]], - _PU_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), - [0,caml_string_of_jsbytes("direct"),0]], - _PV_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 224, - 8, - 227, - 29, - [0, - caml_string_of_jsbytes("Article L822-4"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _PW_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("output"),0]]], - _PX_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), - [0,caml_string_of_jsbytes("direct"),0]], - _PR_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 221, - 5, - 229, - 39, - [0, - caml_string_of_jsbytes("Article L822-4"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _PY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 313, - 11, - 313, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _PQ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 215, - 5, - 216, - 34, - [0, - caml_string_of_jsbytes("Article L822-4"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _PZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 313, - 11, - 313, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _PP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 313, - 11, - 313, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _PK_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 329, - 5, - 330, - 34, - [0, - caml_string_of_jsbytes("Article D815-1"), - [0, - caml_string_of_jsbytes - ("Section 1 : Ouverture du droit et liquidation de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), - [0, - caml_string_of_jsbytes - ("Chapitre 5 : Allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), - [0, - caml_string_of_jsbytes - ("Titre I : Allocations aux personnes \xc3\xa2g\xc3\xa9es"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Allocations aux personnes \xc3\xa2g\xc3\xa9es - Allocation aux adultes handicap\xc3\xa9s - Aides \xc3\xa0 l'emploi pour la garde des jeunes enfants - Protection compl\xc3\xa9mentaire en mati\xc3\xa8re de sant\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]], - _PL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 337, - 11, - 337, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _PI_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 334, - 5, - 335, - 34, - [0, - caml_string_of_jsbytes("Article D815-1"), - [0, - caml_string_of_jsbytes - ("Section 1 : Ouverture du droit et liquidation de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), - [0, - caml_string_of_jsbytes - ("Chapitre 5 : Allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), - [0, - caml_string_of_jsbytes - ("Titre I : Allocations aux personnes \xc3\xa2g\xc3\xa9es"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Allocations aux personnes \xc3\xa2g\xc3\xa9es - Allocation aux adultes handicap\xc3\xa9s - Aides \xc3\xa0 l'emploi pour la garde des jeunes enfants - Protection compl\xc3\xa9mentaire en mati\xc3\xa8re de sant\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]], - _PJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 337, - 11, - 337, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _PG_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 339, - 5, - 340, - 34, - [0, - caml_string_of_jsbytes("Article D815-1"), - [0, - caml_string_of_jsbytes - ("Section 1 : Ouverture du droit et liquidation de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), - [0, - caml_string_of_jsbytes - ("Chapitre 5 : Allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), - [0, - caml_string_of_jsbytes - ("Titre I : Allocations aux personnes \xc3\xa2g\xc3\xa9es"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Allocations aux personnes \xc3\xa2g\xc3\xa9es - Allocation aux adultes handicap\xc3\xa9s - Aides \xc3\xa0 l'emploi pour la garde des jeunes enfants - Protection compl\xc3\xa9mentaire en mati\xc3\xa8re de sant\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]], - _PH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 337, - 11, - 337, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _PE_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/autres_sources.catala_fr"), - 58, - 5, - 58, - 34, - [0, - caml_string_of_jsbytes - ('Circulaire de la CNAV 2023-3 du 09/01/2022 "Revalorisation \xc3\xa0 compter du 1er janvier 2023"'), - [0, - caml_string_of_jsbytes - ("Montants revaloris\xc3\xa9s de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), - 0]]], - _PF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 337, - 11, - 337, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _PC_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/autres_sources.catala_fr"), - 89, - 5, - 90, - 33, - [0, - caml_string_of_jsbytes - ('Circulaire de la CNAV 2022-3 du 11/01/2022 "Revalorisation \xc3\xa0 compter du 1er janvier 2022"'), - [0, - caml_string_of_jsbytes - ("Montants revaloris\xc3\xa9s de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), - 0]]], - _PD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 337, - 11, - 337, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _PA_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/autres_sources.catala_fr"), - 122, - 5, - 123, - 33, - [0, - caml_string_of_jsbytes - ('Circulaire de la CNAV 2021-1 du 11/01/2021 "Revalorisation \xc3\xa0 compter du 1er janvier 2021"'), - [0, - caml_string_of_jsbytes - ("Montants revaloris\xc3\xa9s de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), - 0]]], - _PB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 337, - 11, - 337, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Pv_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1335, - 5, - 1335, - 40, - [0, - caml_string_of_jsbytes("Article L861-5"), - [0, - caml_string_of_jsbytes - ("Section 2 : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Pw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 310, - 11, - 310, - 32, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Pu_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 125, - 14, - 125, - 35, - [0, - caml_string_of_jsbytes("Article L822-2"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Pq_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 267, - 14, - 267, - 40, - [0, - caml_string_of_jsbytes("Article L822-5"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Pk_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 123, - 14, - 123, - 61, - [0, - caml_string_of_jsbytes("Article L161-17-2"), - [0, - caml_string_of_jsbytes - ("Paragraphe 1 : Information et simplification des d\xc3\xa9marches des assur\xc3\xa9s."), - [0, - caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), - [0, - caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), - [0, - caml_string_of_jsbytes - ("Chapitre 1er : Dispositions relatives aux prestations"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), - [0, - caml_string_of_jsbytes - ("Titre III: Titre III : Dispositions communes relatives au financement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]]]], - _Pe_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 46, - 5, - 46, - 41, - [0, - caml_string_of_jsbytes("Article L821-2"), - [0, - caml_string_of_jsbytes - ("Sous-section 1 : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Section 2 : R\xc3\xa8gles de non-cumul"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Principes g\xc3\xa9n\xc3\xa9raux"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _Pf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 311, - 12, - 311, - 51, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Pd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 311, - 12, - 311, - 51, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Pg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 311, - 12, - 311, - 51, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _O__= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 362, - 18, - 362, - 67, - [0, - caml_string_of_jsbytes("Article L822-8"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _O$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 315, - 11, - 315, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _O9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 315, - 11, - 315, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _O4_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 376, - 18, - 376, - 61, - [0, - caml_string_of_jsbytes("Article L822-9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _O5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 316, - 11, - 316, - 58, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _O3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 316, - 11, - 316, - 58, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OX_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1377, - 5, - 1377, - 40, - [0, - caml_string_of_jsbytes("Article L861-5"), - [0, - caml_string_of_jsbytes - ("Section 2 : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _OY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 319, - 11, - 319, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OW_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 445, - 9, - 445, - 42, - [0, - caml_string_of_jsbytes("Article L823-1"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _OZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 319, - 11, - 319, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 319, - 11, - 319, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OR_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1035, - 14, - 1035, - 39, - [0, - caml_string_of_jsbytes("Article R822-25"), - [0, - caml_string_of_jsbytes - ("Section 3 : Conditions relatives au logement"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _ON_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 164, - 14, - 164, - 43, - [0, - caml_string_of_jsbytes("Article L822-3"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _OJ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 928, - 14, - 928, - 37, - [0, - caml_string_of_jsbytes("Article R822-22"), - [0, - caml_string_of_jsbytes - ("Sous-section 4 : Prise en compte du patrimoine"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _OF_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 106, - 14, - 106, - 41, - [0, - caml_string_of_jsbytes("Article R822-1"), - [0, - caml_string_of_jsbytes - ("Section 1 : Conditions relatives au b\xc3\xa9n\xc3\xa9ficiaire"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _OB_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 105, - 14, - 105, - 42, - [0, - caml_string_of_jsbytes("Article R822-1"), - [0, - caml_string_of_jsbytes - ("Section 1 : Conditions relatives au b\xc3\xa9n\xc3\xa9ficiaire"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ow_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5459, - 14, - 5459, - 46, - [0, - caml_string_of_jsbytes("Article R861-5"), - [0, - caml_string_of_jsbytes - ("Capitre I : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Ox_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 325, - 12, - 325, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Os_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 318, - 11, - 318, - 48, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Oo_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 309, - 11, - 309, - 25, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Op_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 309, - 11, - 309, - 25, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _On_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 309, - 11, - 309, - 25, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Oq_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("condition_pr\xc3\xaat"),0]], - _Ot_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 318, - 11, - 318, - 48, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Or_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 318, - 11, - 318, - 48, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ou_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("condition_peuplement_logement_l822_10"),0]], - _Oy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 325, - 12, - 325, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ov_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 325, - 12, - 325, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Oz_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes - ("date_entr\xc3\xa9e_vigueur_diff\xc3\xa9r\xc3\xa9e_cch"), - 0]], - _OC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 331, - 11, - 331, - 39, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 331, - 11, - 331, - 39, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OD_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("seuil_l822_3_parts_propri\xc3\xa9t\xc3\xa9"), - 0]], - _OG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 332, - 11, - 332, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 332, - 11, - 332, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OH_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("seuil_l822_3_parts_usufruit"),0]], - _OK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 333, - 11, - 333, - 34, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 333, - 11, - 333, - 34, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OL_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("seuil_l822_5_patrimoine"),0]], - _OO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 330, - 11, - 330, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 330, - 11, - 330, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OP_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("usufruit_ou_propri\xc3\xa9t\xc3\xa9_famille"), - 0]], - _OS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 326, - 11, - 326, - 36, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 326, - 11, - 326, - 36, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OT_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("nombre_personnes_logement"),0]], - _O0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 319, - 11, - 319, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 319, - 11, - 319, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _O1_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes - ("septi\xc3\xa8me_alin\xc3\xa9a_l823_1_applicable"), - 0]], - _O6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 316, - 11, - 316, - 58, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _O2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 316, - 11, - 316, - 58, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _O7_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes - ("condition_non_ouverture_l822_9_decence_logement"), - 0]], - _Pa_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 315, - 11, - 315, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _O8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 315, - 11, - 315, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Pb_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("condition_non_ouverture_l822_8"),0]], - _Ph_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 311, - 12, - 311, - 51, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Pc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 311, - 12, - 311, - 51, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Pi_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes - ("condition_logement_r\xc3\xa9sidence_principale"), - 0]], - _Pl_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 123, - 14, - 123, - 61, - [0, - caml_string_of_jsbytes("Article L161-17-2"), - [0, - caml_string_of_jsbytes - ("Paragraphe 1 : Information et simplification des d\xc3\xa9marches des assur\xc3\xa9s."), - [0, - caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), - [0, - caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), - [0, - caml_string_of_jsbytes - ("Chapitre 1er : Dispositions relatives aux prestations"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), - [0, - caml_string_of_jsbytes - ("Titre III: Titre III : Dispositions communes relatives au financement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]]]], - _Pm_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes - ("ouverture_droits_retraite.date_naissance_assur\xc3\xa9"), - 0]], - _Pj_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 123, - 14, - 123, - 61, - [0, - caml_string_of_jsbytes("Article L161-17-2"), - [0, - caml_string_of_jsbytes - ("Paragraphe 1 : Information et simplification des d\xc3\xa9marches des assur\xc3\xa9s."), - [0, - caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), - [0, - caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), - [0, - caml_string_of_jsbytes - ("Chapitre 1er : Dispositions relatives aux prestations"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), - [0, - caml_string_of_jsbytes - ("Titre III: Titre III : Dispositions communes relatives au financement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]]]], - _Pn_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("ouverture_droits_retraite"), - [0,caml_string_of_jsbytes("OuvertureDroitsRetraite"),0]]], - _Po_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("ouverture_droits_retraite"), - [0,caml_string_of_jsbytes("OuvertureDroitsRetraite"),0]]], - _Pr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 329, - 11, - 329, - 37, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Pp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 329, - 11, - 329, - 37, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ps_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("patrimoine_total_demandeur"),0]], - _Px_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 310, - 11, - 310, - 32, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Pt_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 310, - 11, - 310, - 32, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Py_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("condition_nationalit\xc3\xa9"),0]], - _PM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 337, - 11, - 337, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Pz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 337, - 11, - 337, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _PN_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("plafond_individuel_l815_9_s\xc3\xa9cu"),0]], - _P0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 313, - 11, - 313, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _PO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 313, - 11, - 313, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _P1_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("condition_logement_location_tiers"),0]], - _P4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 380, - 14, - 380, - 50, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _P5_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("prestations_familiales.date_courante"),0]], - _P2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 380, - 14, - 380, - 50, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _P9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 381, - 14, - 381, - 56, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _P__= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("prestations_familiales.prestation_courante"), - 0]], - _P6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 381, - 14, - 381, - 56, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Qb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 383, - 14, - 383, - 46, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Qc_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("prestations_familiales.r\xc3\xa9sidence"),0]], - _P$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 383, - 14, - 383, - 46, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ql_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("prestations_familiales"), - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - 0]]], - _Qm_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("prestations_familiales"), - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - 0]]], - _Qv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 312, - 11, - 312, - 45, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Qn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 312, - 11, - 312, - 45, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Qw_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("condition_logement_mode_occupation"),0]], - _QG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 314, - 12, - 314, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Qx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 314, - 12, - 314, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _QH_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("condition_logement_surface"),0]], - _QK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 336, - 11, - 336, - 29, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _QI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 336, - 11, - 336, - 29, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _QL_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("\xc3\xa2ge_l161_17_2_s\xc3\xa9cu"),0]], - _QX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 334, - 11, - 334, - 36, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _QM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 334, - 11, - 334, - 36, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _QY_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("patrimoine_pris_en_compte"),0]], - _Q3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 317, - 11, - 317, - 58, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _QZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 317, - 11, - 317, - 58, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Q4_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes - ("condition_ouverture_l822_10_peuplement_logement"), - 0]], - _Q7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 335, - 11, - 335, - 28, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Q5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 335, - 11, - 335, - 28, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Q8_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("\xc3\xa2ge_l351_8_1_s\xc3\xa9cu"),0]], - _Rd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 320, - 11, - 320, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Q9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 320, - 11, - 320, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Re_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_logement"),0]], - _Rr_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("condition_2_r823_4"),0]], - _Rw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 342, - 12, - 342, - 23, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Rs_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 342, - 12, - 342, - 23, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Rx_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"),0]], - _RY_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("prise_en_compte_personne_\xc3\xa0_charge"), - 0]], - _R5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 323, - 11, - 323, - 46, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _RZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 323, - 11, - 323, - 46, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _R6_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("personnes_\xc3\xa0_charge_prises_en_compte"), - 0]], - _R9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 344, - 12, - 344, - 61, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _R7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 344, - 12, - 344, - 61, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _R__= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes - ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), - 0]], - _Sb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 343, - 12, - 343, - 54, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _R$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 343, - 12, - 343, - 54, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Sc_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes - ("nombre_personnes_\xc3\xa0_charge_prises_en_compte"), - 0]], - _Sd_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 200, - 13, - 200, - 47, - [0, - caml_string_of_jsbytes("Article L822-3"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Si_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 200, - 13, - 200, - 47, - [0, - caml_string_of_jsbytes("Article L822-3"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Se_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 199, - 13, - 199, - 48, - [0, - caml_string_of_jsbytes("Article L822-3"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Sh_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 199, - 13, - 199, - 48, - [0, - caml_string_of_jsbytes("Article L822-3"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Sf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 378, - 13, - 378, - 42, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Sg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 378, - 13, - 378, - 42, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ok_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1455, - 14, - 1455, - 33, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Og_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1457, - 14, - 1457, - 36, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Oh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 825, - 12, - 825, - 34, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Of_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 825, - 12, - 825, - 34, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Ob_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 6353, - 24, - 6353, - 46, - [0, - caml_string_of_jsbytes("Article D863-7"), - [0, - caml_string_of_jsbytes - ("Sous-section III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Section II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Chapitre III : Saint-Pierre-et-Miquelon"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _N6_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _N7_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _N8_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - _N9_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _N3_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 6393, - 42, - 6393, - 45, - [0, - caml_string_of_jsbytes("Article D863-7"), - [0, - caml_string_of_jsbytes - ("Sous-section III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Section II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Chapitre III : Saint-Pierre-et-Miquelon"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _N4_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("input"),0]]], - _N5_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("direct"),0]], - _N__= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 6369, - 9, - 6396, - 10, - [0, - caml_string_of_jsbytes("Article D863-7"), - [0, - caml_string_of_jsbytes - ("Sous-section III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Section II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Chapitre III : Saint-Pierre-et-Miquelon"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _N$_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("output"),0]]], - _Oa_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("direct"),0]], - _Oc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 822, - 11, - 822, - 33, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _N2_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1467, - 14, - 1467, - 36, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _NV_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _NW_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _NX_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - _NY_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _NM_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _NN_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _NO_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - _NP_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _ND_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _NE_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _NF_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - _NG_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _NA_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1486, - 16, - 1489, - 39, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _NB_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("input"),0]]], - _NC_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("direct"),0]], - _NH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1471, - 9, - 1492, - 10, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _NI_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("output"),0]]], - _NJ_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("direct"),0]], - _NK_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("input"),0]]], - _NL_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("direct"),0]], - _NQ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1524, - 10, - 1540, - 11, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _NR_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("output"),0]]], - _NS_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("direct"),0]], - _NT_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("input"),0]]], - _NU_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("direct"),0]], - _NZ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1503, - 9, - 1513, - 10, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _N0_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("output"),0]]], - _N1_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("direct"),0]], - _Nw_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 78, - 14, - 78, - 44, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Nq_=[0,0], - _Nr_=[1,0], - _Ns_=[1,0], - _Nt_=[1,0], - _Nu_=[0,0], - _Nv_=[1,0], - _Nm_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1966, - 14, - 1966, - 31, - [0, - caml_string_of_jsbytes("Article D823-17"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _Ni_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1444, - 14, - 1444, - 34, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Nj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 819, - 11, - 819, - 31, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Nh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 819, - 11, - 819, - 31, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Nk_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("cat\xc3\xa9gorie_calcul_apl"),0]], - _Nn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 812, - 10, - 812, - 22, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Nl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 812, - 10, - 812, - 22, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _No_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("ressources_m\xc3\xa9nage_avec_arrondi"),0]], - _Nx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 820, - 11, - 820, - 41, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Np_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 820, - 11, - 820, - 41, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Ny_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("situation_familiale_calcul_apl"),0]], - _Od_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 822, - 11, - 822, - 33, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Nz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 822, - 11, - 822, - 33, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Oe_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("sous_calcul_traitement"),0]], - _Oi_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _Ol_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 824, - 12, - 824, - 31, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Oj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 824, - 12, - 824, - 31, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Om_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("aide_finale_formule"),0]], - _Na_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4503, - 14, - 4503, - 36, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _M8_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - [0,caml_string_of_jsbytes("input0"),0]]], - _M9_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _M__= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - [0,caml_string_of_jsbytes("output"),0]]], - _M$_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _Nb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 973, - 10, - 973, - 25, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _M7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 973, - 10, - 973, - 25, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _M4_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4483, - 14, - 4483, - 36, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _MW_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _MX_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), - 0]], - _MY_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("output"),0]]], - _MZ_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), - 0]], - _M0_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("montant"), - [0,caml_string_of_jsbytes("input0"),0]]], - _M1_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant"),0]], - _M2_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("montant"), - [0,caml_string_of_jsbytes("output"),0]]], - _M3_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant"),0]], - _M5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 972, - 10, - 972, - 40, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _MV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 972, - 10, - 972, - 40, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _MS_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4469, - 14, - 4469, - 36, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _MK_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - [0,caml_string_of_jsbytes("input0"),0]]], - _ML_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _MM_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - [0,caml_string_of_jsbytes("output"),0]]], - _MN_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _MO_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _MP_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), - 0]], - _MQ_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("output"),0]]], - _MR_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), - 0]], - _MT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 971, - 10, - 971, - 32, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _MJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 971, - 10, - 971, - 32, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _MG_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4388, - 14, - 4388, - 33, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _MC_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4648, - 14, - 4648, - 47, - [0, - caml_string_of_jsbytes("Article D842-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _My_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Mz_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"),0]], - _MA_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("output"),0]]], - _MB_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"),0]], - _MD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 11, - 949, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Mx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 11, - 949, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Mu_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4410, - 14, - 4410, - 41, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Mq_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4436, - 14, - 4436, - 33, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Mm_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4421, - 14, - 4421, - 33, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Mh_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4678, - 7, - 4678, - 26, - [0, - caml_string_of_jsbytes("Article D842-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Mi_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 944, - 11, - 944, - 47, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Mg_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4659, - 14, - 4659, - 50, - [0, - caml_string_of_jsbytes("Article D842-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _L__= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5908, - 5, - 5911, - 28, - [0, - caml_string_of_jsbytes("Article D862-7"), - [0, - caml_string_of_jsbytes("Section III : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _L$_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5906, - 9, - 5906, - 75, - [0, - caml_string_of_jsbytes("Article D862-7"), - [0, - caml_string_of_jsbytes("Section III : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _L9_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5553, - 5, - 5559, - 28, - [0, - caml_string_of_jsbytes("Article D861-8"), - [0, - caml_string_of_jsbytes("Section 2 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Ma_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5906, - 9, - 5906, - 75, - [0, - caml_string_of_jsbytes("Article D862-7"), - [0, - caml_string_of_jsbytes("Section III : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Mb_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5906, - 9, - 5906, - 75, - [0, - caml_string_of_jsbytes("Article D862-7"), - [0, - caml_string_of_jsbytes("Section III : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Mc_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.limitation_majoration_personnes_\xc3\xa0_charge"), - 0]], - _L6_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4407, - 14, - 4407, - 61, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _L7_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4407, - 14, - 4407, - 61, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _L8_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.condition_2_du_832_25"), - 0]], - _L3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 996, - 14, - 996, - 49, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 986, - 14, - 986, - 49, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 997, - 14, - 997, - 53, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 994, - 14, - 994, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 992, - 14, - 992, - 70, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 990, - 14, - 990, - 65, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 988, - 14, - 988, - 67, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 984, - 14, - 984, - 61, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Lx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 982, - 14, - 982, - 59, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Lw_=[3,0], - _Lq_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4443, - 14, - 4443, - 70, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Lm_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4440, - 14, - 4440, - 69, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Li_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4441, - 14, - 4441, - 75, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Le_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1000, - 14, - 1000, - 61, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _K$_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4585, - 5, - 4585, - 44, - [0, - caml_string_of_jsbytes("Article D842-9"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _K3_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("input0"),0]]], - _K4_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - 0]], - _K5_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("output"),0]]], - _K6_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - 0]], - _K7_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("input0"),0]]], - _K8_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - 0]], - _K9_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("output"),0]]], - _K__= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - 0]], - _La_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 938, - 11, - 938, - 36, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _K2_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4567, - 14, - 4567, - 39, - [0, - caml_string_of_jsbytes("Article D842-9"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _KY_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("input0"),0]]], - _KZ_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - 0]], - _K0_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("output"),0]]], - _K1_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - 0]], - _KT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4739, - 5, - 4739, - 28, - [0, - caml_string_of_jsbytes("Article D842-12"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _KU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 917, - 10, - 917, - 15, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _KS_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4729, - 14, - 4729, - 41, - [0, - caml_string_of_jsbytes("Article D842-12"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _KK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1997, - 24, - 1997, - 56, - [0, - caml_string_of_jsbytes("Article 37"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _KC_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("input0"),0]]], - _KD_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - 0]], - _KE_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("output"),0]]], - _KF_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - 0]], - _KG_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("input0"),0]]], - _KH_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - 0]], - _KI_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("output"),0]]], - _KJ_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - 0]], - _KL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 10, - 942, - 26, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _KB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1042, - 24, - 1042, - 56, - [0, - caml_string_of_jsbytes("Article 37"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Kt_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Ku_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - 0]], - _Kv_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("output"),0]]], - _Kw_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - 0]], - _Kx_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Ky_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - 0]], - _Kz_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("output"),0]]], - _KA_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - 0]], - _KM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 10, - 942, - 26, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ks_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3993, - 24, - 3993, - 56, - [0, - caml_string_of_jsbytes("Article 37"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Kk_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Kl_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - 0]], - _Km_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("output"),0]]], - _Kn_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - 0]], - _Ko_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Kp_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - 0]], - _Kq_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("output"),0]]], - _Kr_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - 0]], - _KN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 10, - 942, - 26, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _KO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 10, - 942, - 26, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Kj_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3917, - 14, - 3917, - 46, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Kf_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Kg_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - 0]], - _Kh_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("output"),0]]], - _Ki_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - 0]], - _KP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 10, - 942, - 26, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ke_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 10, - 942, - 26, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Kb_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4636, - 15, - 4636, - 37, - [0, - caml_string_of_jsbytes("Article D842-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Kc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 947, - 11, - 947, - 33, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ka_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 947, - 11, - 947, - 33, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _J8_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4700, - 6, - 4706, - 6, - [0, - caml_string_of_jsbytes("Article D842-12"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _J9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 945, - 11, - 945, - 42, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _J6_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4718, - 5, - 4719, - 59, - [0, - caml_string_of_jsbytes("Article D842-12"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _J7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 945, - 11, - 945, - 42, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _J1_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2921, - 5, - 2921, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _J2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 10, - 941, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _JZ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2967, - 5, - 2967, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _J0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 10, - 941, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _JX_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3013, - 5, - 3013, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _JY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 10, - 941, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _JV_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3059, - 5, - 3059, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _JW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 10, - 941, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _JT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3105, - 5, - 3105, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _JU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 10, - 941, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _JR_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3151, - 5, - 3151, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _JS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 10, - 941, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _JP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3197, - 5, - 3197, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _JQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 10, - 941, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _JN_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3243, - 5, - 3243, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _JO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 10, - 941, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _JL_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3288, - 5, - 3288, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _JM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 10, - 941, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _JJ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3333, - 5, - 3333, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _JK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 10, - 941, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _JH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3378, - 5, - 3378, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _JI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 10, - 941, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _JF_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3423, - 5, - 3423, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _JG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 10, - 941, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _JD_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3468, - 5, - 3468, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _JE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 10, - 941, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _JB_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3513, - 5, - 3513, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _JC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 10, - 941, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Jz_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3558, - 5, - 3558, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _JA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 10, - 941, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Jx_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3603, - 5, - 3603, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Jy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 10, - 941, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Jv_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3648, - 5, - 3648, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Jw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 10, - 941, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Jt_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3693, - 5, - 3693, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Ju_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 10, - 941, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Jr_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3738, - 5, - 3738, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Js_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 10, - 941, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Jp_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3783, - 5, - 3783, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Jq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 10, - 941, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Jn_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3828, - 5, - 3828, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Jo_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 10, - 941, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Jl_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3873, - 5, - 3873, - 32, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Jm_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 10, - 941, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _J3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 10, - 941, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Jk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 10, - 941, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Jh_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4455, - 14, - 4455, - 36, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ji_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 970, - 10, - 970, - 32, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Jg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 970, - 10, - 970, - 32, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _I$_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5922, - 5, - 5926, - 73, - [0, - caml_string_of_jsbytes("Article D862-7"), - [0, - caml_string_of_jsbytes("Section III : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Ja_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 956, - 11, - 956, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _I__= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5570, - 5, - 5577, - 73, - [0, - caml_string_of_jsbytes("Article D861-8"), - [0, - caml_string_of_jsbytes("Section 2 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Jb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 956, - 11, - 956, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Jc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 956, - 11, - 956, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _I9_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4671, - 6, - 4674, - 44, - [0, - caml_string_of_jsbytes("Article D842-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Jd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 956, - 11, - 956, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _I8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 956, - 11, - 956, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _I3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 127, - 5, - 138, - 20, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er juillet 2022 au 31 d\xc3\xa9cembre 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _I4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 935, - 11, - 935, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IY_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4357, - 6, - 4364, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Chapitre IX : Calcul des allocations de logement en outre-mer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _IZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 935, - 11, - 935, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 356, - 6, - 363, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er juillet 2022 au 31 d\xc3\xa9cembre 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _IX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 935, - 11, - 935, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _I0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 935, - 11, - 935, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4298, - 6, - 4305, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Chapitre IX : Calcul des allocations de logement en outre-mer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _IU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 935, - 11, - 935, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 275, - 6, - 282, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er juillet 2022 au 31 d\xc3\xa9cembre 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _IS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 935, - 11, - 935, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 935, - 11, - 935, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _I1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 935, - 11, - 935, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IO_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4014, - 5, - 4014, - 16, - [0, - caml_string_of_jsbytes("Article 37"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _IP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 935, - 11, - 935, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1064, - 5, - 1064, - 16, - [0, - caml_string_of_jsbytes("Article 37"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _IN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 935, - 11, - 935, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2020, - 5, - 2020, - 16, - [0, - caml_string_of_jsbytes("Article 37"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _IL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 935, - 11, - 935, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 935, - 11, - 935, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _I2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 935, - 11, - 935, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3959, - 29, - 3959, - 56, - [0, - caml_string_of_jsbytes("Article 34"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _II_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 935, - 11, - 935, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1026, - 29, - 1026, - 56, - [0, - caml_string_of_jsbytes("Article 34"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _IG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 935, - 11, - 935, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _ID_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1980, - 29, - 1980, - 56, - [0, - caml_string_of_jsbytes("Article 34"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _IE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 935, - 11, - 935, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 935, - 11, - 935, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ix_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 999, - 14, - 999, - 50, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ir_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4447, - 14, - 4447, - 64, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _In_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4445, - 14, - 4445, - 59, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ij_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4054, - 14, - 4054, - 33, - [0, - caml_string_of_jsbytes("Article 39"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _If_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4043, - 14, - 4043, - 33, - [0, - caml_string_of_jsbytes("Article 38"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Ib_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4061, - 14, - 4061, - 41, - [0, - caml_string_of_jsbytes("Article 39"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _H9_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4036, - 14, - 4036, - 41, - [0, - caml_string_of_jsbytes("Article 38"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _H5_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3981, - 14, - 3981, - 41, - [0, - caml_string_of_jsbytes("Article 36"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _H1_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/autres_sources.catala_fr"), - 330, - 14, - 330, - 36, - [0, - caml_string_of_jsbytes("Article premier"), - [0, - caml_string_of_jsbytes - ("R\xc3\xa8glement (CE) n\xc2\xb02866/98 du conseil du 31 d\xc3\xa9cembre 1998 concernant les taux de conversion entre l'euro et les monnaies des \xc3\x89tats membres adoptant l'euro"), - 0]]], - _HX_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3971, - 14, - 3971, - 40, - [0, - caml_string_of_jsbytes("Article 35"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _HY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 943, - 11, - 943, - 37, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _HW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 943, - 11, - 943, - 37, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _HZ_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("montant_forfaitaire_d842_6"),0]], - _H2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 946, - 11, - 946, - 33, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _H0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 946, - 11, - 946, - 33, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _H3_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("taux_francs_vers_euros"),0]], - _H6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 951, - 11, - 951, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _H4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 951, - 11, - 951, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _H7_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("montant_minimal_aide_d842_6"),0]], - _H__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 952, - 11, - 952, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _H8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 952, - 11, - 952, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _H$_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("montant_forfaitaire_d842_11"),0]], - _Ic_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 953, - 11, - 953, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ia_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 953, - 11, - 953, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Id_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("montant_forfaitaire_d842_12"),0]], - _Ig_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 954, - 11, - 954, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ie_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 954, - 11, - 954, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ih_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("coefficient_d842_11"),0]], - _Ik_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 955, - 11, - 955, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ii_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 955, - 11, - 955, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Il_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("coefficient_d842_12"),0]], - _Io_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4445, - 14, - 4445, - 59, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ip_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_nombre_parts.nombre_personnes_\xc3\xa0_charge"), - 0]], - _Im_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4445, - 14, - 4445, - 59, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Is_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4447, - 14, - 4447, - 64, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _It_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_nombre_parts.situation_familiale_calcul_apl"), - 0]], - _Iq_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4447, - 14, - 4447, - 64, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Iu_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_nombre_parts"), - [0, - caml_string_of_jsbytes - ("CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9"), - 0]]], - _Iv_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_nombre_parts"), - [0, - caml_string_of_jsbytes - ("CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9"), - 0]]], - _Iy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 999, - 14, - 999, - 50, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Iz_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("contributions_sociales.date_courante"),0]], - _Iw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 999, - 14, - 999, - 50, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IA_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("contributions_sociales"), - [0, - caml_string_of_jsbytes - ("ContributionsSocialesAidesPersonnelleLogement"), - 0]]], - _IB_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("contributions_sociales"), - [0, - caml_string_of_jsbytes - ("ContributionsSocialesAidesPersonnelleLogement"), - 0]]], - _I5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 935, - 11, - 935, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 935, - 11, - 935, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _I6_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("montant_forfaitaire_charges"),0]], - _Je_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 956, - 11, - 956, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _I7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 956, - 11, - 956, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Jf_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("condition_d842_11_3"),0]], - _Jj_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _J4_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - 0]], - _J__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 945, - 11, - 945, - 42, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _J5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 945, - 11, - 945, - 42, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _J$_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("seuil_minimal_ressources_m\xc3\xa9nage"),0]], - _Kd_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"),0]], - _KQ_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - 0]], - _KV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 917, - 10, - 917, - 15, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _KR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 917, - 10, - 917, - 15, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _KW_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_seuil"), - 0]], - _Lb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 938, - 11, - 938, - 36, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _KX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 938, - 11, - 938, - 36, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Lc_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("plafond_mensualit\xc3\xa9_d842_6"),0]], - _Lf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1000, - 14, - 1000, - 61, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Lg_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.date_courante"), - 0]], - _Ld_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1000, - 14, - 1000, - 61, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Lj_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4441, - 14, - 4441, - 75, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Lk_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.ressources_m\xc3\xa9nage_arrondies"), - 0]], - _Lh_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4441, - 14, - 4441, - 75, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ln_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4440, - 14, - 4440, - 69, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Lo_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.condition_2_du_832_25"), - 0]], - _Ll_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4440, - 14, - 4440, - 69, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Lr_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4443, - 14, - 4443, - 70, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ls_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.n_nombre_parts_d832_25"), - 0]], - _Lp_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4443, - 14, - 4443, - 70, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Lt_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_\xc3\xa9quivalence_loyer_minimale"), - [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0]]], - _Lu_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_\xc3\xa9quivalence_loyer_minimale"), - [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0]]], - _Ly_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 982, - 14, - 982, - 59, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Lz_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.type_logement_foyer"), - 0]], - _Lv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 982, - 14, - 982, - 59, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 984, - 14, - 984, - 61, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LD_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.date_conventionnement"), - 0]], - _LA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 984, - 14, - 984, - 61, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 988, - 14, - 988, - 67, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LH_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.ressources_m\xc3\xa9nage_arrondies"), - 0]], - _LE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 988, - 14, - 988, - 67, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 990, - 14, - 990, - 65, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LL_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.nombre_personnes_\xc3\xa0_charge"), - 0]], - _LI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 990, - 14, - 990, - 65, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 992, - 14, - 992, - 70, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LP_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.situation_familiale_calcul_apl"), - 0]], - _LM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 992, - 14, - 992, - 70, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 994, - 14, - 994, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LT_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("calcul_apl_logement_foyer.zone"),0]], - _LQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 994, - 14, - 994, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 997, - 14, - 997, - 53, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LX_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("calcul_apl_logement_foyer.date_courante"),0]], - _LU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 997, - 14, - 997, - 53, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _L0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 986, - 14, - 986, - 49, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _L1_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("calcul_apl_logement_foyer.redevance"),0]], - _LY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 986, - 14, - 986, - 49, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _L4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 996, - 14, - 996, - 49, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _L5_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_apl_logement_foyer.r\xc3\xa9sidence"), - 0]], - _L2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 996, - 14, - 996, - 49, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Md_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_apl_logement_foyer"), - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - 0]]], - _Me_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_apl_logement_foyer"), - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - 0]]], - _Mj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 944, - 11, - 944, - 47, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Mf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 944, - 11, - 944, - 47, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Mk_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("seuil_minimal_d\xc3\xa9pense_nette_minimale"), - 0]], - _Mn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 934, - 11, - 934, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ml_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 934, - 11, - 934, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Mo_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("mensualit\xc3\xa9_\xc3\xa9ligible"),0]], - _Mr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 936, - 11, - 936, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Mp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 936, - 11, - 936, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ms_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("mensualit\xc3\xa9_minimale"),0]], - _Mv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 937, - 11, - 937, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Mt_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 937, - 11, - 937, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Mw_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("coefficient_prise_en_charge"),0]], - _ME_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), - 0]], - _MH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 966, - 12, - 966, - 31, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _MF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 966, - 12, - 966, - 31, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _MI_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("aide_finale_formule"),0]], - _MU_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), - 0]], - _M6_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _Nc_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"),0]], - _Nd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1005, - 13, - 1005, - 48, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ng_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1005, - 13, - 1005, - 48, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ne_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1004, - 13, - 1004, - 42, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Nf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1004, - 13, - 1004, - 42, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _HR_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4915, - 14, - 4915, - 36, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _HN_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - [0,caml_string_of_jsbytes("input0"),0]]], - _HO_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _HP_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - [0,caml_string_of_jsbytes("output"),0]]], - _HQ_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _HS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1051, - 10, - 1051, - 25, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _HM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1051, - 10, - 1051, - 25, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _HJ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4894, - 14, - 4894, - 36, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _HB_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("traitement_aide_finale_redevance"), - [0,caml_string_of_jsbytes("input0"),0]]], - _HC_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("traitement_aide_finale_redevance"),0]], - _HD_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("traitement_aide_finale_redevance"), - [0,caml_string_of_jsbytes("output"),0]]], - _HE_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("traitement_aide_finale_redevance"),0]], - _HF_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("montant"), - [0,caml_string_of_jsbytes("input0"),0]]], - _HG_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant"),0]], - _HH_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("montant"), - [0,caml_string_of_jsbytes("output"),0]]], - _HI_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant"),0]], - _HK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1050, - 10, - 1050, - 40, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _HA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1050, - 10, - 1050, - 40, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Hx_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4880, - 14, - 4880, - 36, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ht_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Hu_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), - 0]], - _Hv_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("output"),0]]], - _Hw_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), - 0]], - _Hy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1049, - 10, - 1049, - 19, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Hs_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1049, - 10, - 1049, - 19, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Hp_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4862, - 14, - 4862, - 36, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Hh_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Hi_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _Hj_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - [0,caml_string_of_jsbytes("output"),0]]], - _Hk_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _Hl_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Hm_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), - 0]], - _Hn_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("output"),0]]], - _Ho_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), - 0]], - _Hq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1048, - 10, - 1048, - 32, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Hg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1048, - 10, - 1048, - 32, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Hd_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4788, - 14, - 4788, - 33, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _G$_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4969, - 14, - 4969, - 47, - [0, - caml_string_of_jsbytes("Article D842-17"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _G3_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _G4_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"),0]], - _G5_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("output"),0]]], - _G6_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"),0]], - _G7_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _G8_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"),0]], - _G9_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("output"),0]]], - _G__= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"),0]], - _Ha_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1026, - 11, - 1026, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _G2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1026, - 11, - 1026, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GZ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4840, - 14, - 4840, - 27, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _GV_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4960, - 14, - 4960, - 36, - [0, - caml_string_of_jsbytes("Article D842-17"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _GW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1024, - 11, - 1024, - 33, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1024, - 11, - 1024, - 33, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GR_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4809, - 14, - 4809, - 41, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _GL_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4838, - 14, - 4838, - 70, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _GH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4827, - 14, - 4827, - 69, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _GD_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4828, - 14, - 4828, - 75, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Gz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1071, - 14, - 1071, - 61, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Gv_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4848, - 14, - 4848, - 36, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Gw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1047, - 10, - 1047, - 32, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Gu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1047, - 10, - 1047, - 32, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Gq_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4127, - 6, - 4127, - 79, - [0, - caml_string_of_jsbytes("Article 43"), - [0, - caml_string_of_jsbytes - ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Gr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1032, - 12, - 1032, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Go_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4162, - 6, - 4163, - 38, - [0, - caml_string_of_jsbytes("Article 43"), - [0, - caml_string_of_jsbytes - ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Gp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1032, - 12, - 1032, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Gl_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4180, - 6, - 4181, - 24, - [0, - caml_string_of_jsbytes("Article 43"), - [0, - caml_string_of_jsbytes - ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Gm_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1032, - 12, - 1032, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Gk_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4144, - 6, - 4145, - 46, - [0, - caml_string_of_jsbytes("Article 43"), - [0, - caml_string_of_jsbytes - ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Gn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1032, - 12, - 1032, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Gi_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1118, - 6, - 1118, - 79, - [0, - caml_string_of_jsbytes("Article 43"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Gj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1032, - 12, - 1032, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Gg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1155, - 6, - 1156, - 38, - [0, - caml_string_of_jsbytes("Article 43"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Gh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1032, - 12, - 1032, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Gd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1174, - 6, - 1175, - 24, - [0, - caml_string_of_jsbytes("Article 43"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Ge_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1032, - 12, - 1032, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Gc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1136, - 6, - 1137, - 46, - [0, - caml_string_of_jsbytes("Article 43"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Gf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1032, - 12, - 1032, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ga_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2070, - 6, - 2070, - 79, - [0, - caml_string_of_jsbytes("Article 43"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Gb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1032, - 12, - 1032, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _F__= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2107, - 6, - 2108, - 38, - [0, - caml_string_of_jsbytes("Article 43"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _F$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1032, - 12, - 1032, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _F7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2126, - 6, - 2127, - 24, - [0, - caml_string_of_jsbytes("Article 43"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _F8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1032, - 12, - 1032, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _F6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2088, - 6, - 2089, - 46, - [0, - caml_string_of_jsbytes("Article 43"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _F9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1032, - 12, - 1032, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _F0_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4312, - 6, - 4319, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Chapitre IX : Calcul des allocations de logement en outre-mer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _F1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1033, - 12, - 1033, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 149, - 6, - 156, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er juillet 2022 au 31 d\xc3\xa9cembre 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _FZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1033, - 12, - 1033, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 295, - 6, - 302, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er juillet 2022 au 31 d\xc3\xa9cembre 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _FX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1033, - 12, - 1033, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _F2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1033, - 12, - 1033, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4085, - 29, - 4085, - 56, - [0, - caml_string_of_jsbytes("Article 40"), - [0, - caml_string_of_jsbytes - ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _FU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1033, - 12, - 1033, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1095, - 29, - 1095, - 56, - [0, - caml_string_of_jsbytes("Article 40"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _FS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1033, - 12, - 1033, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2045, - 29, - 2045, - 56, - [0, - caml_string_of_jsbytes("Article 40"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _FQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1033, - 12, - 1033, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1033, - 12, - 1033, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FJ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5596, - 5, - 5602, - 28, - [0, - caml_string_of_jsbytes("Article D861-8"), - [0, - caml_string_of_jsbytes("Section 2 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _FK_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5594, - 9, - 5594, - 75, - [0, - caml_string_of_jsbytes("Article D861-8"), - [0, - caml_string_of_jsbytes("Section 2 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _FL_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.limitation_majoration_personnes_\xc3\xa0_charge"), - 0]], - _FG_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4806, - 14, - 4806, - 61, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _FH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4806, - 14, - 4806, - 61, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _FI_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.condition_2_du_832_25"), - 0]], - _FD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1067, - 14, - 1067, - 49, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1058, - 14, - 1058, - 49, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1068, - 14, - 1068, - 53, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1066, - 14, - 1066, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1064, - 14, - 1064, - 70, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1062, - 14, - 1062, - 65, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ff_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1060, - 14, - 1060, - 67, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1056, - 14, - 1056, - 61, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _E9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1054, - 14, - 1054, - 59, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _E3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1070, - 14, - 1070, - 50, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _EX_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4835, - 14, - 4835, - 43, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _ET_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4833, - 14, - 4833, - 64, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _EP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4831, - 14, - 4831, - 59, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _EL_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4836, - 14, - 4836, - 55, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _EH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4200, - 14, - 4200, - 51, - [0, - caml_string_of_jsbytes("Article 44"), - [0, - caml_string_of_jsbytes - ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _ED_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4098, - 14, - 4098, - 41, - [0, - caml_string_of_jsbytes("Article 41"), - [0, - caml_string_of_jsbytes - ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Ez_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4109, - 14, - 4109, - 42, - [0, - caml_string_of_jsbytes("Article 42"), - [0, - caml_string_of_jsbytes - ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _EA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1028, - 11, - 1028, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ey_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1028, - 11, - 1028, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _EB_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("montant_minimal_aide_d842_15"),0]], - _EE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1029, - 11, - 1029, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _EC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1029, - 11, - 1029, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _EF_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("montant_forfaitaire_d842_15"),0]], - _EI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1030, - 11, - 1030, - 48, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _EG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1030, - 11, - 1030, - 48, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _EJ_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("montant_minimal_d\xc3\xa9pense_nette_d842_17"), - 0]], - _EM_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4836, - 14, - 4836, - 55, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _EN_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_nombre_parts.condition_2_du_832_25"), - 0]], - _EK_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4836, - 14, - 4836, - 55, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _EQ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4831, - 14, - 4831, - 59, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _ER_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_nombre_parts.nombre_personnes_\xc3\xa0_charge"), - 0]], - _EO_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4831, - 14, - 4831, - 59, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _EU_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4833, - 14, - 4833, - 64, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _EV_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_nombre_parts.situation_familiale_calcul_apl"), - 0]], - _ES_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4833, - 14, - 4833, - 64, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _EY_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4835, - 14, - 4835, - 43, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _EZ_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("calcul_nombre_parts.r\xc3\xa9sidence"),0]], - _EW_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4835, - 14, - 4835, - 43, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _E0_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_nombre_parts"), - [0,caml_string_of_jsbytes("CalculNombrePartLogementFoyer"),0]]], - _E1_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_nombre_parts"), - [0,caml_string_of_jsbytes("CalculNombrePartLogementFoyer"),0]]], - _E4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1070, - 14, - 1070, - 50, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _E5_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("contributions_sociales.date_courante"),0]], - _E2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1070, - 14, - 1070, - 50, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _E6_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("contributions_sociales"), - [0, - caml_string_of_jsbytes - ("ContributionsSocialesAidesPersonnelleLogement"), - 0]]], - _E7_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("contributions_sociales"), - [0, - caml_string_of_jsbytes - ("ContributionsSocialesAidesPersonnelleLogement"), - 0]]], - _E__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1054, - 14, - 1054, - 59, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _E$_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.type_logement_foyer"), - 0]], - _E8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1054, - 14, - 1054, - 59, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1056, - 14, - 1056, - 61, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fd_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.date_conventionnement"), - 0]], - _Fa_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1056, - 14, - 1056, - 61, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1060, - 14, - 1060, - 67, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fh_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.ressources_m\xc3\xa9nage_arrondies"), - 0]], - _Fe_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1060, - 14, - 1060, - 67, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1062, - 14, - 1062, - 65, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fl_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.nombre_personnes_\xc3\xa0_charge"), - 0]], - _Fi_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1062, - 14, - 1062, - 65, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fo_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1064, - 14, - 1064, - 70, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fp_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.situation_familiale_calcul_apl"), - 0]], - _Fm_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1064, - 14, - 1064, - 70, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fs_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1066, - 14, - 1066, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ft_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("calcul_apl_logement_foyer.zone"),0]], - _Fq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1066, - 14, - 1066, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1068, - 14, - 1068, - 53, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fx_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("calcul_apl_logement_foyer.date_courante"),0]], - _Fu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1068, - 14, - 1068, - 53, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1058, - 14, - 1058, - 49, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FB_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("calcul_apl_logement_foyer.redevance"),0]], - _Fy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1058, - 14, - 1058, - 49, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1067, - 14, - 1067, - 49, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FF_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_apl_logement_foyer.r\xc3\xa9sidence"), - 0]], - _FC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1067, - 14, - 1067, - 49, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FM_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_apl_logement_foyer"), - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - 0]]], - _FN_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_apl_logement_foyer"), - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - 0]]], - _F3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1033, - 12, - 1033, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1033, - 12, - 1033, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _F4_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("montant_forfaitaire_charges"),0]], - _Gs_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1032, - 12, - 1032, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _F5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1032, - 12, - 1032, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Gt_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("\xc3\xa9quivalence_loyer"),0]], - _Gx_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _GA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1071, - 14, - 1071, - 61, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GB_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.date_courante"), - 0]], - _Gy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1071, - 14, - 1071, - 61, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GE_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4828, - 14, - 4828, - 75, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _GF_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.ressources_m\xc3\xa9nage_arrondies"), - 0]], - _GC_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4828, - 14, - 4828, - 75, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _GI_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4827, - 14, - 4827, - 69, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _GJ_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.condition_2_du_832_25"), - 0]], - _GG_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4827, - 14, - 4827, - 69, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _GM_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4838, - 14, - 4838, - 70, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _GN_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.n_nombre_parts_d832_25"), - 0]], - _GK_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4838, - 14, - 4838, - 70, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _GO_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_\xc3\xa9quivalence_loyer_minimale"), - [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0]]], - _GP_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_\xc3\xa9quivalence_loyer_minimale"), - [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0]]], - _GS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1031, - 12, - 1031, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1031, - 12, - 1031, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GT_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("coefficient_prise_en_charge"),0]], - _GX_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"),0]], - _G0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1034, - 12, - 1034, - 25, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1034, - 12, - 1034, - 25, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _G1_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("loyer_minimal"),0]], - _Hb_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), - 0]], - _He_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1044, - 12, - 1044, - 31, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Hc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1044, - 12, - 1044, - 31, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Hf_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("aide_finale_formule"),0]], - _Hr_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), - 0]], - _Hz_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("traitement_aide_finale_redevance"),0]], - _HL_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _HT_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"),0]], - _HU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1075, - 13, - 1075, - 42, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _HV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1075, - 13, - 1075, - 42, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Eu_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4279, - 24, - 4279, - 43, - [0, - caml_string_of_jsbytes("Article D842-4"), - [0, - caml_string_of_jsbytes("Section 1 : Secteur locatif ordinaire"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ev_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 867, - 12, - 867, - 31, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Et_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 906, - 14, - 906, - 33, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Eo_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4287, - 24, - 4287, - 46, - [0, - caml_string_of_jsbytes("Article D842-4"), - [0, - caml_string_of_jsbytes("Section 1 : Secteur locatif ordinaire"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ep_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 869, - 12, - 869, - 34, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _En_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 907, - 14, - 907, - 36, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ej_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Ek_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"),0]], - _El_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"), - [0,caml_string_of_jsbytes("output"),0]]], - _Em_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"),0]], - _Eq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 869, - 12, - 869, - 34, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ei_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 869, - 12, - 869, - 34, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ed_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 903, - 14, - 903, - 42, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _D$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 901, - 14, - 901, - 55, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _D7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 899, - 14, - 899, - 59, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _D3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 897, - 14, - 897, - 43, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 895, - 14, - 895, - 42, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 891, - 5, - 892, - 63, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 888, - 14, - 888, - 53, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 886, - 14, - 886, - 37, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 884, - 14, - 884, - 63, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 882, - 14, - 882, - 58, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 880, - 14, - 880, - 46, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Dx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 877, - 14, - 877, - 78, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Dt_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 875, - 14, - 875, - 60, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Dp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 873, - 14, - 873, - 48, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Dq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 873, - 14, - 873, - 48, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Dr_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("calcul_apl_locatif.loyer_principal_base"),0]], - _Do_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 873, - 14, - 873, - 48, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Du_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 875, - 14, - 875, - 60, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Dv_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes - ("calcul_apl_locatif.ressources_m\xc3\xa9nage_arrondies"), - 0]], - _Ds_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 875, - 14, - 875, - 60, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Dy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 877, - 14, - 877, - 78, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Dz_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes - ("calcul_apl_locatif.b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s"), - 0]], - _Dw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 877, - 14, - 877, - 78, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 880, - 14, - 880, - 46, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DD_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("calcul_apl_locatif.date_courante"),0]], - _DA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 880, - 14, - 880, - 46, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 882, - 14, - 882, - 58, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DH_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes - ("calcul_apl_locatif.nombre_personnes_\xc3\xa0_charge"), - 0]], - _DE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 882, - 14, - 882, - 58, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 884, - 14, - 884, - 63, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DL_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes - ("calcul_apl_locatif.situation_familiale_calcul_apl"), - 0]], - _DI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 884, - 14, - 884, - 63, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 886, - 14, - 886, - 37, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DP_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("calcul_apl_locatif.zone"),0]], - _DM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 886, - 14, - 886, - 37, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 888, - 14, - 888, - 53, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DT_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("calcul_apl_locatif.logement_est_chambre"),0]], - _DQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 888, - 14, - 888, - 53, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 891, - 5, - 892, - 63, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DX_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes - ("calcul_apl_locatif.\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers"), - 0]], - _DU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 891, - 5, - 892, - 63, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _D0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 895, - 14, - 895, - 42, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _D1_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("calcul_apl_locatif.type_aide"),0]], - _DY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 895, - 14, - 895, - 42, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _D4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 897, - 14, - 897, - 43, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _D5_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("calcul_apl_locatif.colocation"),0]], - _D2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 897, - 14, - 897, - 43, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _D8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 899, - 14, - 899, - 59, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _D9_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes - ("calcul_apl_locatif.r\xc3\xa9duction_loyer_solidarit\xc3\xa9"), - 0]], - _D6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 899, - 14, - 899, - 59, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ea_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 901, - 14, - 901, - 55, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Eb_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes - ("calcul_apl_locatif.logement_meubl\xc3\xa9_d842_2"), - 0]], - _D__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 901, - 14, - 901, - 55, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ee_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 903, - 14, - 903, - 42, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ef_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("calcul_apl_locatif.r\xc3\xa9sidence"),0]], - _Ec_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 903, - 14, - 903, - 42, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Eg_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes("calcul_apl_locatif"), - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - 0]]], - _Eh_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes("calcul_apl_locatif"), - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - 0]]], - _Er_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _Ew_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 867, - 12, - 867, - 31, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Es_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 867, - 12, - 867, - 31, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ex_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("aide_finale_formule"),0]], - _Dd_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("input"),0]]], - _De_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), - [0,caml_string_of_jsbytes("direct"),0]], - _Df_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_L.catala_fr"), - 69, - 6, - 72, - 44, - [0, - caml_string_of_jsbytes("Article L512-3"), - [0, - caml_string_of_jsbytes("Chapitre 2 : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), - [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _Dg_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("output"),0]]], - _Dh_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), - [0,caml_string_of_jsbytes("direct"),0]], - _Di_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_L.catala_fr"), - 67, - 5, - 72, - 59, - [0, - caml_string_of_jsbytes("Article L512-3"), - [0, - caml_string_of_jsbytes("Chapitre 2 : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), - [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _Dj_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 47, - 12, - 47, - 24, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _Dc_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_L.catala_fr"), - 56, - 5, - 57, - 50, - [0, - caml_string_of_jsbytes("Article L512-3"), - [0, - caml_string_of_jsbytes("Chapitre 2 : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), - [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _Dk_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 47, - 12, - 47, - 24, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _Dl_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 47, - 12, - 47, - 24, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _Db_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 47, - 12, - 47, - 24, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _Dm_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 47, - 12, - 47, - 24, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _Da_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 47, - 12, - 47, - 24, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _C8_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_L.catala_fr"), - 78, - 5, - 82, - 24, - [0, - caml_string_of_jsbytes("Article L512-3"), - [0, - caml_string_of_jsbytes("Chapitre 2 : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), - [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _C9_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 49, - 12, - 49, - 31, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _C7_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 49, - 12, - 49, - 31, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _C__= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 49, - 12, - 49, - 31, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _C6_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 49, - 12, - 49, - 31, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _C2_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_R.catala_fr"), - 62, - 18, - 62, - 41, - [0, - caml_string_of_jsbytes("Article R755-0-2"), - [0, - caml_string_of_jsbytes - ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Titre 5 : D\xc3\xa9partements d'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), - [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _C3_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 44, - 11, - 44, - 27, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _C1_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_R.catala_fr"), - 31, - 14, - 31, - 30, - [0, - caml_string_of_jsbytes("Article R512-2"), - [0, - caml_string_of_jsbytes("Chapitre 2 : Champ d'application."), - [0, - caml_string_of_jsbytes - ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), - [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _CQ_=[5,0], - _CR_=[4,0], - _CS_=[3,0], - _CT_=[2,0], - _CU_=[1,0], - _CV_=[0,0], - _CW_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_L.catala_fr"), - 127, - 5, - 132, - 30, - [0, - caml_string_of_jsbytes("Article L751-1"), - [0, - caml_string_of_jsbytes - ("Chapitre 1er : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), - [0, - caml_string_of_jsbytes - ("Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin"), - [0, - caml_string_of_jsbytes - ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _CX_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 51, - 12, - 51, - 35, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _CP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 51, - 12, - 51, - 35, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _CJ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 56, - 14, - 56, - 28, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _CF_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 57, - 14, - 57, - 32, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _CA_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_R.catala_fr"), - 21, - 14, - 21, - 26, - [0, - caml_string_of_jsbytes("Article R512-2"), - [0, - caml_string_of_jsbytes("Chapitre 2 : Champ d'application."), - [0, - caml_string_of_jsbytes - ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), - [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _CB_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 46, - 21, - 46, - 33, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _CC_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 46, - 21, - 46, - 33, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _Cz_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 46, - 21, - 46, - 33, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _CD_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("\xc3\xa2ge_l512_3_2"),0]], - _CG_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 57, - 14, - 57, - 32, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _CH_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("smic.date_courante"),0]], - _CE_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 57, - 14, - 57, - 32, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _CK_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 56, - 14, - 56, - 28, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _CL_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("smic.r\xc3\xa9sidence"),0]], - _CI_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 56, - 14, - 56, - 28, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _CM_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("smic"),[0,caml_string_of_jsbytes("Smic"),0]]], - _CN_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("smic"),[0,caml_string_of_jsbytes("Smic"),0]]], - _CY_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 51, - 12, - 51, - 35, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _CO_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 51, - 12, - 51, - 35, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _CZ_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("r\xc3\xa9gime_outre_mer_l751_1"),0]], - _C4_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 44, - 11, - 44, - 27, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _C0_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 44, - 11, - 44, - 27, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _C5_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("plafond_l512_3_2"),0]], - _C$_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("conditions_hors_\xc3\xa2ge"),0]], - _Dn_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _Cu_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 409, - 14, - 409, - 32, - [0, - caml_string_of_jsbytes("Article R822-7"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Principes de neutralisation et d'abattement"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _Cp_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 854, - 6, - 857, - 35, - [0, - caml_string_of_jsbytes("Article R822-20"), - [0, - caml_string_of_jsbytes - ("Sous-section 3 : Montant forfaitaire de ressources applicable aux \xc3\xa9tudiants"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _Cq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 545, - 12, - 545, - 39, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Co_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 124, - 14, - 124, - 41, - [0, - caml_string_of_jsbytes("Article R822-2"), - [0, - caml_string_of_jsbytes - ("Sous-section 1 : Modalit\xc3\xa9s g\xc3\xa9n\xc3\xa9rales de l'appr\xc3\xa9ciation des ressources"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _Ck_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 462, - 14, - 462, - 32, - [0, - caml_string_of_jsbytes("Article R822-8"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Principes de neutralisation et d'abattement"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _Ce_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 418, - 14, - 418, - 65, - [0, - caml_string_of_jsbytes("Article R822-7"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Principes de neutralisation et d'abattement"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _Ca_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 524, - 14, - 524, - 33, - [0, - caml_string_of_jsbytes("Article R822-10"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Principes de neutralisation et d'abattement"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _B8_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 129, - 14, - 129, - 62, - [0, - caml_string_of_jsbytes("Article R822-2"), - [0, - caml_string_of_jsbytes - ("Sous-section 1 : Modalit\xc3\xa9s g\xc3\xa9n\xc3\xa9rales de l'appr\xc3\xa9ciation des ressources"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _B4_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 11, - 14, - 11, - 41, - [0, - caml_string_of_jsbytes("Article 3"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Dispositions applicables aux ressources"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _B0_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 21, - 14, - 21, - 41, - [0, - caml_string_of_jsbytes("Article 4"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Dispositions applicables aux ressources"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _B1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 536, - 11, - 536, - 38, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _BZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 536, - 11, - 536, - 38, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _B2_= - [0, - caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant_forfaitaire_r_822_8"),0]], - _B5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 538, - 11, - 538, - 38, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _B3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 538, - 11, - 538, - 38, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _B6_= - [0, - caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant_forfaitaire_r_822_7"),0]], - _B9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 534, - 11, - 534, - 59, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _B7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 534, - 11, - 534, - 59, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _B__= - [0, - caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes - ("ressources_personnes_vivant_habituellement_foyer"), - 0]], - _Cb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 539, - 11, - 539, - 30, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _B$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 539, - 11, - 539, - 30, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Cc_= - [0, - caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("abattement_r_822_10"),0]], - _Cf_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 418, - 14, - 418, - 65, - [0, - caml_string_of_jsbytes("Article R822-7"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Principes de neutralisation et d'abattement"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _Cg_= - [0, - caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes - ("base_mensuelle_allocations_familiales.date_courante"), - 0]], - _Cd_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 418, - 14, - 418, - 65, - [0, - caml_string_of_jsbytes("Article R822-7"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Principes de neutralisation et d'abattement"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _Ch_= - [0, - caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("base_mensuelle_allocations_familiales"), - [0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"),0]]], - _Ci_= - [0, - caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("base_mensuelle_allocations_familiales"), - [0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"),0]]], - _Cl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 535, - 11, - 535, - 29, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Cj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 535, - 11, - 535, - 29, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Cm_= - [0, - caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("abattement_r_822_8"),0]], - _Cr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 545, - 12, - 545, - 39, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Cn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 545, - 12, - 545, - 39, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Cs_= - [0, - caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("ressources_prises_en_compte"),0]], - _Cv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 537, - 11, - 537, - 29, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ct_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 537, - 11, - 537, - 29, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Cw_= - [0, - caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("abattement_r_822_7"),0]], - _Cx_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 142, - 13, - 143, - 74, - [0, - caml_string_of_jsbytes("Article R822-2"), - [0, - caml_string_of_jsbytes - ("Sous-section 1 : Modalit\xc3\xa9s g\xc3\xa9n\xc3\xa9rales de l'appr\xc3\xa9ciation des ressources"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _Cy_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 142, - 13, - 143, - 74, - [0, - caml_string_of_jsbytes("Article R822-2"), - [0, - caml_string_of_jsbytes - ("Sous-section 1 : Modalit\xc3\xa9s g\xc3\xa9n\xc3\xa9rales de l'appr\xc3\xa9ciation des ressources"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _BU_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3173, - 14, - 3173, - 36, - [0, - caml_string_of_jsbytes("Article D832-10"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _BQ_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - [0,caml_string_of_jsbytes("input0"),0]]], - _BR_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _BS_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - [0,caml_string_of_jsbytes("output"),0]]], - _BT_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _BV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 788, - 10, - 788, - 25, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _BP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 788, - 10, - 788, - 25, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _BM_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3080, - 14, - 3080, - 33, - [0, - caml_string_of_jsbytes("Article D832-10"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _BI_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3153, - 14, - 3153, - 36, - [0, - caml_string_of_jsbytes("Article D832-10"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _BA_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("traitement_aide_finale_abattement"), - [0,caml_string_of_jsbytes("input0"),0]]], - _BB_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("traitement_aide_finale_abattement"),0]], - _BC_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("traitement_aide_finale_abattement"), - [0,caml_string_of_jsbytes("output"),0]]], - _BD_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("traitement_aide_finale_abattement"),0]], - _BE_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("montant"), - [0,caml_string_of_jsbytes("input0"),0]]], - _BF_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant"),0]], - _BG_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("montant"), - [0,caml_string_of_jsbytes("output"),0]]], - _BH_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant"),0]], - _BJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 787, - 10, - 787, - 40, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Bz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 787, - 10, - 787, - 40, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Bw_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3208, - 14, - 3208, - 49, - [0, - caml_string_of_jsbytes("Article D832-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Bs_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3100, - 14, - 3100, - 33, - [0, - caml_string_of_jsbytes("Article D832-10"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Bo_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3139, - 14, - 3139, - 36, - [0, - caml_string_of_jsbytes("Article D832-10"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Bg_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Bh_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _Bi_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - [0,caml_string_of_jsbytes("output"),0]]], - _Bj_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _Bk_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("abattement_d\xc3\xa9pense_nette_minimale_d832_10"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Bl_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("abattement_d\xc3\xa9pense_nette_minimale_d832_10"), - 0]], - _Bm_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("abattement_d\xc3\xa9pense_nette_minimale_d832_10"), - [0,caml_string_of_jsbytes("output"),0]]], - _Bn_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("abattement_d\xc3\xa9pense_nette_minimale_d832_10"), - 0]], - _Bp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 786, - 10, - 786, - 20, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Bf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 786, - 10, - 786, - 20, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Bc_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3205, - 14, - 3205, - 49, - [0, - caml_string_of_jsbytes("Article D832-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _A9_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3421, - 5, - 3433, - 77, - [0, - caml_string_of_jsbytes("Article D832-15"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _A__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 749, - 12, - 749, - 31, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _A7_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3476, - 5, - 3476, - 75, - [0, - caml_string_of_jsbytes("Article D832-15"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _A8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 749, - 12, - 749, - 31, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _A0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1861, - 14, - 1861, - 42, - [0, - caml_string_of_jsbytes("Article 24"), - [0, - caml_string_of_jsbytes("Article 19"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]]], - _A1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 752, - 10, - 752, - 25, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _AZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 906, - 14, - 906, - 42, - [0, - caml_string_of_jsbytes("Article 24"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _A2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 752, - 10, - 752, - 25, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _AY_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2394, - 14, - 2394, - 42, - [0, - caml_string_of_jsbytes("Article 24"), - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _A3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 752, - 10, - 752, - 25, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _AU_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3548, - 14, - 3548, - 55, - [0, - caml_string_of_jsbytes("Article D832-17"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _AQ_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_10"), - [0,caml_string_of_jsbytes("input0"),0]]], - _AR_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_10"),0]], - _AS_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_10"), - [0,caml_string_of_jsbytes("output"),0]]], - _AT_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_10"),0]], - _AV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 762, - 11, - 762, - 52, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _AP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 762, - 11, - 762, - 52, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _AM_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3189, - 14, - 3189, - 49, - [0, - caml_string_of_jsbytes("Article D832-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _AG_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3484, - 14, - 3484, - 70, - [0, - caml_string_of_jsbytes("Article D832-15"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _AC_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3481, - 14, - 3481, - 69, - [0, - caml_string_of_jsbytes("Article D832-15"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ay_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3482, - 14, - 3482, - 75, - [0, - caml_string_of_jsbytes("Article D832-15"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Au_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 792, - 14, - 792, - 61, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Ap_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3361, - 5, - 3361, - 44, - [0, - caml_string_of_jsbytes("Article D832-14"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ah_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Ai_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - 0]], - _Aj_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - [0,caml_string_of_jsbytes("output"),0]]], - _Ak_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - 0]], - _Al_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Am_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - 0]], - _An_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - [0,caml_string_of_jsbytes("output"),0]]], - _Ao_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - 0]], - _Aq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 751, - 10, - 751, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Ag_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3341, - 14, - 3341, - 42, - [0, - caml_string_of_jsbytes("Article D832-14"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ac_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Ad_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - 0]], - _Ae_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - [0,caml_string_of_jsbytes("output"),0]]], - _Af_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - 0]], - _z9_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3526, - 5, - 3526, - 40, - [0, - caml_string_of_jsbytes("Article D832-17"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _z__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 41, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _z8_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3537, - 14, - 3537, - 44, - [0, - caml_string_of_jsbytes("Article D832-17"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _z$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 41, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _z7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 41, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _z4_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3274, - 14, - 3274, - 36, - [0, - caml_string_of_jsbytes("Article D832-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _zY_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 807, - 5, - 822, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _zZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zV_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1062, - 5, - 1066, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _zW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1095, - 5, - 1099, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _zU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zR_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1128, - 5, - 1132, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _zS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1161, - 5, - 1165, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _zQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zN_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1194, - 5, - 1198, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _zO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zL_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1227, - 5, - 1231, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _zM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zJ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1260, - 5, - 1264, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _zK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1293, - 5, - 1297, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _zI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zF_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1326, - 5, - 1330, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _zG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zD_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1359, - 5, - 1363, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _zE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zB_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1392, - 5, - 1396, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _zC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zz_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1425, - 5, - 1429, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _zA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zx_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1458, - 5, - 1462, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _zy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zv_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1491, - 5, - 1495, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _zw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zt_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1524, - 5, - 1528, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _zu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zr_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1557, - 5, - 1561, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _zs_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zp_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1590, - 5, - 1594, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _zq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zn_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1623, - 5, - 1627, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _zo_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zl_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1656, - 5, - 1660, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _zm_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zj_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1689, - 5, - 1693, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _zk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zh_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1722, - 5, - 1726, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _zi_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zf_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1755, - 5, - 1759, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _zg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zd_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1788, - 5, - 1792, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _ze_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zb_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1821, - 5, - 1825, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _zc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _y$_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1854, - 5, - 1858, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _za_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _y9_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1887, - 5, - 1891, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _y__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _y7_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1920, - 5, - 1924, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _y8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _y5_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1953, - 5, - 1957, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _y6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _y3_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1986, - 5, - 1990, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _y4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _y1_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2019, - 5, - 2023, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _y2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yZ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2052, - 5, - 2056, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _y0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yX_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2085, - 5, - 2089, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _yY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yV_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2118, - 5, - 2122, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _yW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2151, - 5, - 2155, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _yU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yR_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2184, - 5, - 2188, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _yS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2217, - 5, - 2221, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _yQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yN_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2250, - 5, - 2253, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _yO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yL_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2282, - 5, - 2285, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]], - _yM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _z0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yI_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 619, - 5, - 622, - 33, - [0, - caml_string_of_jsbytes("Article 17"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _yJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yG_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 663, - 5, - 666, - 33, - [0, - caml_string_of_jsbytes("Article 17"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _yH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yE_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 708, - 5, - 710, - 33, - [0, - caml_string_of_jsbytes("Article 17"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _yF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yC_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 751, - 5, - 753, - 33, - [0, - caml_string_of_jsbytes("Article 17"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _yD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 55, - 753, - 61, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _z1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 753, - 11, - 753, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yw_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3590, - 5, - 3590, - 28, - [0, - caml_string_of_jsbytes("Article D832-18"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _yx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 764, - 11, - 764, - 41, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yv_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3582, - 14, - 3582, - 44, - [0, - caml_string_of_jsbytes("Article D832-18"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _yr_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3125, - 14, - 3125, - 36, - [0, - caml_string_of_jsbytes("Article D832-10"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _ys_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 785, - 10, - 785, - 32, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 785, - 10, - 785, - 32, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yl_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2413, - 7, - 2413, - 18, - [0, - caml_string_of_jsbytes("Article 24"), - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _ym_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 765, - 11, - 765, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 926, - 7, - 926, - 18, - [0, - caml_string_of_jsbytes("Article 24"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _yk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 765, - 11, - 765, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1881, - 7, - 1881, - 18, - [0, - caml_string_of_jsbytes("Article 24"), - [0, - caml_string_of_jsbytes("Article 19"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]]], - _yi_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 765, - 11, - 765, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 765, - 11, - 765, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _ye_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2334, - 29, - 2334, - 64, - [0, - caml_string_of_jsbytes("Article 19"), - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _yf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 765, - 11, - 765, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 892, - 29, - 892, - 64, - [0, - caml_string_of_jsbytes("Article 19"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _yd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 765, - 11, - 765, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _ya_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1847, - 29, - 1847, - 64, - [0, - caml_string_of_jsbytes("Article 19"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _yb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 765, - 11, - 765, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 765, - 11, - 765, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _x6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 791, - 14, - 791, - 50, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _x2_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2440, - 14, - 2440, - 50, - [0, - caml_string_of_jsbytes("Article 25"), - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _xW_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3278, - 14, - 3278, - 64, - [0, - caml_string_of_jsbytes("Article D832-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _xS_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3276, - 14, - 3276, - 59, - [0, - caml_string_of_jsbytes("Article D832-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _xO_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/autres_sources.catala_fr"), - 327, - 14, - 327, - 36, - [0, - caml_string_of_jsbytes("Article premier"), - [0, - caml_string_of_jsbytes - ("R\xc3\xa8glement (CE) n\xc2\xb02866/98 du conseil du 31 d\xc3\xa9cembre 1998 concernant les taux de conversion entre l'euro et les monnaies des \xc3\x89tats membres adoptant l'euro"), - 0]]], - _xK_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2382, - 14, - 2382, - 47, - [0, - caml_string_of_jsbytes("Article 23"), - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _xG_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2381, - 14, - 2381, - 47, - [0, - caml_string_of_jsbytes("Article 23"), - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _xC_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2380, - 14, - 2380, - 47, - [0, - caml_string_of_jsbytes("Article 23"), - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _xy_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2458, - 14, - 2458, - 48, - [0, - caml_string_of_jsbytes("Article 26"), - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _xu_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2365, - 15, - 2365, - 49, - [0, - caml_string_of_jsbytes("Article 22"), - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _xq_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2356, - 14, - 2356, - 42, - [0, - caml_string_of_jsbytes("Article 21"), - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _xm_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2345, - 14, - 2345, - 41, - [0, - caml_string_of_jsbytes("Article 20"), - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _xn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 766, - 11, - 766, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 766, - 11, - 766, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xo_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("montant_forfaitaire_d832_10"),0]], - _xr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 767, - 11, - 767, - 39, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 767, - 11, - 767, - 39, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xs_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("montant_minimal_aide_d832_10"),0]], - _xv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 769, - 11, - 769, - 45, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xt_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 769, - 11, - 769, - 45, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xw_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("coefficient_multiplicateur_d832_11"),0]], - _xz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 770, - 11, - 770, - 45, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 770, - 11, - 770, - 45, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xA_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("coefficient_multiplicateur_d832_18"),0]], - _xD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 771, - 11, - 771, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 771, - 11, - 771, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xE_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("montant_limite_tranches_d832_15_1"),0]], - _xH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 772, - 11, - 772, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 772, - 11, - 772, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xI_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("taux_tranche_inf\xc3\xa9rieure_d832_15_1"), - 0]], - _xL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 773, - 11, - 773, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 773, - 11, - 773, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xM_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("taux_tranche_sup\xc3\xa9rieure_d832_15_1"), - 0]], - _xP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 774, - 11, - 774, - 33, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 774, - 11, - 774, - 33, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xQ_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("taux_francs_vers_euros"),0]], - _xT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3276, - 14, - 3276, - 59, - [0, - caml_string_of_jsbytes("Article D832-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _xU_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_nombre_parts.nombre_personnes_\xc3\xa0_charge"), - 0]], - _xR_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3276, - 14, - 3276, - 59, - [0, - caml_string_of_jsbytes("Article D832-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _xX_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3278, - 14, - 3278, - 64, - [0, - caml_string_of_jsbytes("Article D832-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _xY_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_nombre_parts.situation_familiale_calcul_apl"), - 0]], - _xV_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3278, - 14, - 3278, - 64, - [0, - caml_string_of_jsbytes("Article D832-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _xZ_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_nombre_parts"), - [0, - caml_string_of_jsbytes - ("CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9"), - 0]]], - _x0_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_nombre_parts"), - [0, - caml_string_of_jsbytes - ("CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9"), - 0]]], - _x3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 768, - 11, - 768, - 47, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _x1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 768, - 11, - 768, - 47, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _x4_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("coefficient_multiplicateur_d832_17_3"),0]], - _x7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 791, - 14, - 791, - 50, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _x8_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("contributions_sociales.date_courante"),0]], - _x5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 791, - 14, - 791, - 50, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _x9_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("contributions_sociales"), - [0, - caml_string_of_jsbytes - ("ContributionsSocialesAidesPersonnelleLogement"), - 0]]], - _x__= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("contributions_sociales"), - [0, - caml_string_of_jsbytes - ("ContributionsSocialesAidesPersonnelleLogement"), - 0]]], - _yo_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 765, - 11, - 765, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _x$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 765, - 11, - 765, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yp_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("montant_forfaitaire_charges_d832_10"),0]], - _yt_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _yy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 764, - 11, - 764, - 41, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 764, - 11, - 764, - 41, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yz_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("ressources_m\xc3\xa9nage_avec_d832_18"),0]], - _z2_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - 0]], - _z5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 755, - 11, - 755, - 33, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _z3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 755, - 11, - 755, - 33, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _z6_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("n_nombre_parts_d832_11"),0]], - _Aa_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_10"),0]], - _Ar_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 751, - 10, - 751, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Ab_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 751, - 10, - 751, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _As_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("plafond_mensualit\xc3\xa9_d832_10_3_base"), - 0]], - _Av_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 792, - 14, - 792, - 61, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Aw_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.date_courante"), - 0]], - _At_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 792, - 14, - 792, - 61, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Az_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3482, - 14, - 3482, - 75, - [0, - caml_string_of_jsbytes("Article D832-15"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _AA_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.ressources_m\xc3\xa9nage_arrondies"), - 0]], - _Ax_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3482, - 14, - 3482, - 75, - [0, - caml_string_of_jsbytes("Article D832-15"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _AD_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3481, - 14, - 3481, - 69, - [0, - caml_string_of_jsbytes("Article D832-15"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _AE_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.condition_2_du_832_25"), - 0]], - _AB_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3481, - 14, - 3481, - 69, - [0, - caml_string_of_jsbytes("Article D832-15"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _AH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3484, - 14, - 3484, - 70, - [0, - caml_string_of_jsbytes("Article D832-15"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _AI_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.n_nombre_parts_d832_25"), - 0]], - _AF_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3484, - 14, - 3484, - 70, - [0, - caml_string_of_jsbytes("Article D832-15"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _AJ_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_\xc3\xa9quivalence_loyer_minimale"), - [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0]]], - _AK_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_\xc3\xa9quivalence_loyer_minimale"), - [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0]]], - _AN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 757, - 10, - 757, - 17, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _AL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 757, - 10, - 757, - 17, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _AO_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("coefficient_prise_en_charge_d832_10_formule"), - 0]], - _AW_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("abattement_d\xc3\xa9pense_nette_minimale_d832_10"), - 0]], - _A4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 752, - 10, - 752, - 25, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _AX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 752, - 10, - 752, - 25, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _A5_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("plafond_mensualit\xc3\xa9_d832_10_3_copropri\xc3\xa9taires"), - 0]], - _A$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 749, - 12, - 749, - 31, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _A6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 749, - 12, - 749, - 31, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Ba_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("mensualit\xc3\xa9_minimale"),0]], - _Bd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 758, - 10, - 758, - 23, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Bb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 758, - 10, - 758, - 23, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Be_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("coefficient_prise_en_charge_d832_10_coeff_arrondi"), - 0]], - _Bq_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("traitement_aide_finale_abattement"),0]], - _Bt_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 748, - 12, - 748, - 31, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Br_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 748, - 12, - 748, - 31, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Bu_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("mensualit\xc3\xa9_\xc3\xa9ligible"),0]], - _Bx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 759, - 10, - 759, - 15, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Bv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 759, - 10, - 759, - 15, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _By_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("coefficient_prise_en_charge_d832_10_seuil"), - 0]], - _BK_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _BN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 782, - 12, - 782, - 31, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _BL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 782, - 12, - 782, - 31, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _BO_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("aide_finale_formule"),0]], - _BW_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"),0]], - _BX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 796, - 13, - 796, - 42, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _BY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 796, - 13, - 796, - 42, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xg_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3827, - 14, - 3827, - 36, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _xc_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - [0,caml_string_of_jsbytes("input0"),0]]], - _xd_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _xe_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - [0,caml_string_of_jsbytes("output"),0]]], - _xf_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _xh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 710, - 10, - 710, - 25, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 710, - 10, - 710, - 25, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _w__= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3731, - 14, - 3731, - 33, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _w6_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3806, - 14, - 3806, - 36, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _wY_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("traitement_aide_finale_abattement"), - [0,caml_string_of_jsbytes("input0"),0]]], - _wZ_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("traitement_aide_finale_abattement"),0]], - _w0_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("traitement_aide_finale_abattement"), - [0,caml_string_of_jsbytes("output"),0]]], - _w1_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("traitement_aide_finale_abattement"),0]], - _w2_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("montant"), - [0,caml_string_of_jsbytes("input0"),0]]], - _w3_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant"),0]], - _w4_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("montant"), - [0,caml_string_of_jsbytes("output"),0]]], - _w5_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant"),0]], - _w7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 709, - 10, - 709, - 40, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 709, - 10, - 709, - 40, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3978, - 5, - 3978, - 26, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _wU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 703, - 10, - 703, - 15, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wS_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3884, - 14, - 3884, - 49, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _wO_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3792, - 14, - 3792, - 36, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _wG_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - [0,caml_string_of_jsbytes("input0"),0]]], - _wH_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _wI_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - [0,caml_string_of_jsbytes("output"),0]]], - _wJ_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _wK_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("abattement_d\xc3\xa9pense_nette_minimale_d832_27"), - [0,caml_string_of_jsbytes("input0"),0]]], - _wL_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("abattement_d\xc3\xa9pense_nette_minimale_d832_27"), - 0]], - _wM_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("abattement_d\xc3\xa9pense_nette_minimale_d832_27"), - [0,caml_string_of_jsbytes("output"),0]]], - _wN_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("abattement_d\xc3\xa9pense_nette_minimale_d832_27"), - 0]], - _wP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 708, - 10, - 708, - 20, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 708, - 10, - 708, - 20, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wB_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3972, - 5, - 3972, - 26, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _wC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 702, - 10, - 702, - 23, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wA_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3881, - 14, - 3881, - 49, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _ww_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3764, - 14, - 3764, - 40, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _ws_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4147, - 14, - 4147, - 55, - [0, - caml_string_of_jsbytes("Article D832-27"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _wo_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_27"), - [0,caml_string_of_jsbytes("input0"),0]]], - _wp_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_27"),0]], - _wq_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_27"), - [0,caml_string_of_jsbytes("output"),0]]], - _wr_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_27"),0]], - _wt_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 685, - 11, - 685, - 52, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 685, - 11, - 685, - 52, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wj_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3955, - 5, - 3955, - 26, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _wk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 701, - 10, - 701, - 17, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wi_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3860, - 14, - 3860, - 49, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _wc_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3770, - 14, - 3770, - 70, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _v__= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3766, - 14, - 3766, - 69, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _v6_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3768, - 14, - 3768, - 75, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _v2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 714, - 14, - 714, - 61, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vY_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4143, - 14, - 4143, - 44, - [0, - caml_string_of_jsbytes("Article D832-27"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _vZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 687, - 11, - 687, - 41, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 687, - 11, - 687, - 41, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3942, - 14, - 3942, - 36, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _vU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 682, - 21, - 682, - 43, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3752, - 14, - 3752, - 40, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _vL_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2576, - 14, - 2576, - 48, - [0, - caml_string_of_jsbytes("Article 30"), - [0, - caml_string_of_jsbytes - ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _vH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2722, - 14, - 2722, - 41, - [0, - caml_string_of_jsbytes("Article 32"), - [0, - caml_string_of_jsbytes - ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _vB_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5543, - 5, - 5543, - 45, - [0, - caml_string_of_jsbytes("Article D861-8"), - [0, - caml_string_of_jsbytes("Section 2 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _vC_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5541, - 5, - 5541, - 65, - [0, - caml_string_of_jsbytes("Article D861-8"), - [0, - caml_string_of_jsbytes("Section 2 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _vD_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_nombre_parts.limitation_majoration_personnes_\xc3\xa0_charge"), - 0]], - _vy_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3941, - 14, - 3941, - 43, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _vu_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3937, - 14, - 3937, - 64, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _vq_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3935, - 14, - 3935, - 59, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _vm_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3939, - 14, - 3939, - 55, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _vi_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3778, - 14, - 3778, - 36, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _vj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 707, - 10, - 707, - 32, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 707, - 10, - 707, - 32, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vd_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2487, - 14, - 2487, - 48, - [0, - caml_string_of_jsbytes("Article 27"), - [0, - caml_string_of_jsbytes - ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _ve_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 684, - 12, - 684, - 46, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 961, - 14, - 961, - 48, - [0, - caml_string_of_jsbytes("Article 27"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _vc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 684, - 12, - 684, - 46, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _u$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1916, - 14, - 1916, - 48, - [0, - caml_string_of_jsbytes("Article 27"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _va_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 684, - 12, - 684, - 46, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _u5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 713, - 14, - 713, - 50, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _u0_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3845, - 14, - 3845, - 35, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _u1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 677, - 12, - 677, - 33, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uW_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2552, - 14, - 2552, - 42, - [0, - caml_string_of_jsbytes("Article 29"), - [0, - caml_string_of_jsbytes - ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _uS_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2541, - 14, - 2541, - 41, - [0, - caml_string_of_jsbytes("Article 28"), - [0, - caml_string_of_jsbytes - ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _uO_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2566, - 14, - 2566, - 35, - [0, - caml_string_of_jsbytes("Article 30"), - [0, - caml_string_of_jsbytes - ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _uJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 678, - 12, - 678, - 52, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 678, - 12, - 678, - 52, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 678, - 12, - 678, - 52, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 678, - 12, - 678, - 52, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uM_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("limitation_majoration_personnes_\xc3\xa0_charge"), - 0]], - _uP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 681, - 12, - 681, - 33, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 681, - 12, - 681, - 33, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uQ_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("coefficient_r_d832_25"),0]], - _uT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 689, - 11, - 689, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 689, - 11, - 689, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uU_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("montant_forfaitaire_d832_24"),0]], - _uX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 691, - 11, - 691, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 691, - 11, - 691, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uY_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("montant_minimal_aide_d823_24"),0]], - _u2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 677, - 12, - 677, - 33, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 677, - 12, - 677, - 33, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _u3_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("condition_2_du_832_25"),0]], - _u6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 713, - 14, - 713, - 50, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _u7_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("contributions_sociales.date_courante"),0]], - _u4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 713, - 14, - 713, - 50, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _u8_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("contributions_sociales"), - [0, - caml_string_of_jsbytes - ("ContributionsSocialesAidesPersonnelleLogement"), - 0]]], - _u9_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("contributions_sociales"), - [0, - caml_string_of_jsbytes - ("ContributionsSocialesAidesPersonnelleLogement"), - 0]]], - _vf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 684, - 12, - 684, - 46, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _u__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 684, - 12, - 684, - 46, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vg_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("plafond_\xc3\xa9quivalence_loyer_\xc3\xa9ligible"), - 0]], - _vk_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _vn_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3939, - 14, - 3939, - 55, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _vo_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_nombre_parts.condition_2_du_832_25"), - 0]], - _vl_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3939, - 14, - 3939, - 55, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _vr_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3935, - 14, - 3935, - 59, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _vs_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_nombre_parts.nombre_personnes_\xc3\xa0_charge"), - 0]], - _vp_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3935, - 14, - 3935, - 59, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _vv_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3937, - 14, - 3937, - 64, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _vw_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_nombre_parts.situation_familiale_calcul_apl"), - 0]], - _vt_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3937, - 14, - 3937, - 64, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _vz_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3941, - 14, - 3941, - 43, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _vA_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("calcul_nombre_parts.r\xc3\xa9sidence"),0]], - _vx_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3941, - 14, - 3941, - 43, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _vE_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_nombre_parts"), - [0,caml_string_of_jsbytes("CalculNombrePartLogementFoyer"),0]]], - _vF_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_nombre_parts"), - [0,caml_string_of_jsbytes("CalculNombrePartLogementFoyer"),0]]], - _vI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 690, - 11, - 690, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 690, - 11, - 690, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vJ_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("montant_forfaitaire_d832_27"),0]], - _vM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 680, - 12, - 680, - 46, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 680, - 12, - 680, - 46, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vN_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("coefficient_multiplicateur_d832_25"),0]], - _vQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 683, - 12, - 683, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 683, - 12, - 683, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vR_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("\xc3\xa9quivalence_loyer_\xc3\xa9ligible"), - 0]], - _vV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 682, - 21, - 682, - 43, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 682, - 21, - 682, - 43, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vW_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("n_nombre_parts_d832_25"),0]], - _v0_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_27"),0]], - _v3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 714, - 14, - 714, - 61, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _v4_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.date_courante"), - 0]], - _v1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 714, - 14, - 714, - 61, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _v7_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3768, - 14, - 3768, - 75, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _v8_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.ressources_m\xc3\xa9nage_arrondies"), - 0]], - _v5_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3768, - 14, - 3768, - 75, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _v$_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3766, - 14, - 3766, - 69, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _wa_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.condition_2_du_832_25"), - 0]], - _v9_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3766, - 14, - 3766, - 69, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _wd_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3770, - 14, - 3770, - 70, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _we_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.n_nombre_parts_d832_25"), - 0]], - _wb_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3770, - 14, - 3770, - 70, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _wf_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_\xc3\xa9quivalence_loyer_minimale"), - [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0]]], - _wg_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_\xc3\xa9quivalence_loyer_minimale"), - [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0]]], - _wl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 701, - 10, - 701, - 17, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 701, - 10, - 701, - 17, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wm_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("coefficient_prise_en_charge_d832_25_formule"), - 0]], - _wu_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("abattement_d\xc3\xa9pense_nette_minimale_d832_27"), - 0]], - _wx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 692, - 12, - 692, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 692, - 12, - 692, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wy_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("\xc3\xa9quivalence_loyer_minimale"),0]], - _wD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 702, - 10, - 702, - 23, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 702, - 10, - 702, - 23, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wE_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("coefficient_prise_en_charge_d832_25_coeff_arrondi"), - 0]], - _wQ_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("traitement_aide_finale_abattement"),0]], - _wV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 703, - 10, - 703, - 15, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 703, - 10, - 703, - 15, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wW_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("coefficient_prise_en_charge_d832_25_seuil"), - 0]], - _w8_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _w$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 705, - 12, - 705, - 31, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _w9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 705, - 12, - 705, - 31, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xa_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("aide_finale_formule"),0]], - _xi_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"),0]], - _xj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 718, - 13, - 718, - 42, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 718, - 13, - 718, - 42, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uv_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1768, - 14, - 1768, - 33, - [0, - caml_string_of_jsbytes("Article D823-16"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _ur_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1911, - 14, - 1911, - 39, - [0, - caml_string_of_jsbytes("Article D823-17"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _un_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1894, - 14, - 1894, - 36, - [0, - caml_string_of_jsbytes("Article D823-16"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _uj_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_r\xc3\xa9duction_loyer_solidarit\xc3\xa9"), - [0,caml_string_of_jsbytes("input0"),0]]], - _uk_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_r\xc3\xa9duction_loyer_solidarit\xc3\xa9"), - 0]], - _ul_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_r\xc3\xa9duction_loyer_solidarit\xc3\xa9"), - [0,caml_string_of_jsbytes("output"),0]]], - _um_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_r\xc3\xa9duction_loyer_solidarit\xc3\xa9"), - 0]], - _uo_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 620, - 10, - 620, - 25, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _ui_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 620, - 10, - 620, - 25, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uf_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1945, - 14, - 1945, - 42, - [0, - caml_string_of_jsbytes("Article D823-17"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _ub_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 844, - 14, - 844, - 36, - [0, - caml_string_of_jsbytes("Article L832-3"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _t9_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - [0,caml_string_of_jsbytes("input0"),0]]], - _t__= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _t$_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - [0,caml_string_of_jsbytes("output"),0]]], - _ua_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _uc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 619, - 10, - 619, - 36, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _t8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 619, - 10, - 619, - 36, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _t2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1704, - 14, - 1704, - 33, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _t3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 593, - 10, - 593, - 22, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _t1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 749, - 14, - 749, - 33, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _t4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 593, - 10, - 593, - 22, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _t0_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 413, - 14, - 413, - 33, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _t5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 593, - 10, - 593, - 22, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tW_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1862, - 14, - 1862, - 36, - [0, - caml_string_of_jsbytes("Article D823-16"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _tO_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - [0,caml_string_of_jsbytes("input0"),0]]], - _tP_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _tQ_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - [0,caml_string_of_jsbytes("output"),0]]], - _tR_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _tS_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("montant"), - [0,caml_string_of_jsbytes("input0"),0]]], - _tT_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant"),0]], - _tU_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("montant"), - [0,caml_string_of_jsbytes("output"),0]]], - _tV_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant"),0]], - _tX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 618, - 10, - 618, - 40, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 618, - 10, - 618, - 40, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1697, - 14, - 1697, - 33, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 592, - 10, - 592, - 17, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 742, - 14, - 742, - 33, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 592, - 10, - 592, - 17, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tF_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 406, - 14, - 406, - 33, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 592, - 10, - 592, - 17, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tB_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1845, - 14, - 1845, - 36, - [0, - caml_string_of_jsbytes("Article D823-16"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _tx_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("traitement_aide_finale_diminu\xc3\xa9"), - [0,caml_string_of_jsbytes("input0"),0]]], - _ty_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale_diminu\xc3\xa9"),0]], - _tz_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("traitement_aide_finale_diminu\xc3\xa9"), - [0,caml_string_of_jsbytes("output"),0]]], - _tA_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale_diminu\xc3\xa9"),0]], - _tC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 617, - 10, - 617, - 32, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 617, - 10, - 617, - 32, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1673, - 14, - 1673, - 28, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 594, - 11, - 594, - 25, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 715, - 14, - 715, - 28, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _ts_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 594, - 11, - 594, - 25, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _to_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 380, - 14, - 380, - 28, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tt_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 594, - 11, - 594, - 25, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tj_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 302, - 14, - 302, - 36, - [0, - caml_string_of_jsbytes("Article 13"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 606, - 12, - 606, - 34, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _th_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 637, - 14, - 637, - 36, - [0, - caml_string_of_jsbytes("Article 13"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _ti_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 606, - 12, - 606, - 34, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1594, - 14, - 1594, - 36, - [0, - caml_string_of_jsbytes("Article 13"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 606, - 12, - 606, - 34, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _ta_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1835, - 5, - 1835, - 50, - [0, - caml_string_of_jsbytes("Article D823-16"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _tb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 616, - 10, - 616, - 17, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _s$_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1821, - 14, - 1821, - 36, - [0, - caml_string_of_jsbytes("Article D823-16"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _tc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 616, - 10, - 616, - 17, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _s__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 616, - 10, - 616, - 17, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _s7_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1786, - 14, - 1786, - 28, - [0, - caml_string_of_jsbytes("Article D823-16"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _s3_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 253, - 14, - 253, - 42, - [0, - caml_string_of_jsbytes("Article 10"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sZ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 259, - 14, - 259, - 41, - [0, - caml_string_of_jsbytes("Article 10"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4253, - 5, - 4261, - 34, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Chapitre IX : Calcul des allocations de logement en outre-mer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 601, - 11, - 601, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 194, - 5, - 202, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er juillet 2022 au 31 d\xc3\xa9cembre 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 601, - 11, - 601, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 226, - 5, - 234, - 34, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er juillet 2022 au 31 d\xc3\xa9cembre 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 601, - 11, - 601, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2296, - 5, - 2305, - 28, - [0, - caml_string_of_jsbytes("Article 47"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 01 janvier 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 31 d\xc3\xa9cembre 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2021 NOR : LOGL2028351A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 601, - 11, - 601, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2519, - 5, - 2528, - 28, - [0, - caml_string_of_jsbytes("Article 47"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 01 janvier 2020 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 601, - 11, - 601, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 601, - 11, - 601, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sI_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 467, - 14, - 467, - 44, - [0, - caml_string_of_jsbytes("Article 15"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 601, - 11, - 601, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sG_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4504, - 5, - 4506, - 28, - [0, - caml_string_of_jsbytes("Article 47"), - [0, - caml_string_of_jsbytes - ("Chapitre IX : Calcul des allocations de logement en outre-mer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 601, - 11, - 601, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 34, - 14, - 34, - 44, - [0, - caml_string_of_jsbytes("Article 15"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er juillet 2022 au 31 d\xc3\xa9cembre 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 601, - 11, - 601, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1292, - 14, - 1292, - 44, - [0, - caml_string_of_jsbytes("Article 15"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er janvier 2022 au 30 juin 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 601, - 11, - 601, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2353, - 14, - 2353, - 44, - [0, - caml_string_of_jsbytes("Article 15"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 01 janvier 2020 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 601, - 11, - 601, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 601, - 11, - 601, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _ss_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4339, - 6, - 4346, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Chapitre IX : Calcul des allocations de logement en outre-mer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _st_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 12, - 604, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 329, - 6, - 336, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er juillet 2022 au 31 d\xc3\xa9cembre 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 12, - 604, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _su_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 12, - 604, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sn_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 573, - 39, - 573, - 74, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _so_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 12, - 604, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 859, - 14, - 859, - 49, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sm_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 12, - 604, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1813, - 14, - 1813, - 49, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 12, - 604, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 12, - 604, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 12, - 604, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sg_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4283, - 6, - 4290, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Chapitre IX : Calcul des allocations de logement en outre-mer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 12, - 604, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _se_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 254, - 6, - 261, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er juillet 2022 au 31 d\xc3\xa9cembre 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 12, - 604, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _si_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 12, - 604, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 12, - 604, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sb_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 230, - 39, - 230, - 74, - [0, - caml_string_of_jsbytes("Article 9"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 12, - 604, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _r$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 623, - 14, - 623, - 49, - [0, - caml_string_of_jsbytes("Article 9"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sa_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 12, - 604, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _r9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1580, - 14, - 1580, - 49, - [0, - caml_string_of_jsbytes("Article 9"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _r__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 12, - 604, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 12, - 604, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _r3_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 529, - 5, - 530, - 34, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _r4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _r1_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 538, - 5, - 539, - 34, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _r2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rZ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 547, - 5, - 547, - 35, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _r0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 77, - 5, - 89, - 45, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er juillet 2022 au 31 d\xc3\xa9cembre 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 814, - 5, - 815, - 34, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 823, - 5, - 824, - 34, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 832, - 5, - 832, - 35, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1767, - 5, - 1768, - 34, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1776, - 5, - 1777, - 34, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1785, - 5, - 1785, - 35, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _r5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 195, - 5, - 195, - 61, - [0, - caml_string_of_jsbytes("Article 8"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 587, - 5, - 587, - 61, - [0, - caml_string_of_jsbytes("Article 8"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1544, - 5, - 1544, - 61, - [0, - caml_string_of_jsbytes("Article 8"), - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]]], - _rE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rA_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 188, - 14, - 188, - 37, - [0, - caml_string_of_jsbytes("Article 8"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _ry_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 580, - 14, - 580, - 37, - [0, - caml_string_of_jsbytes("Article 8"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1537, - 14, - 1537, - 37, - [0, - caml_string_of_jsbytes("Article 8"), - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]]], - _rx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rt_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 104, - 5, - 105, - 34, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _ru_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rr_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 114, - 5, - 115, - 34, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rs_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rp_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 124, - 5, - 124, - 35, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 495, - 5, - 496, - 34, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _ro_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 505, - 5, - 506, - 34, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rm_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 515, - 5, - 515, - 35, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1453, - 5, - 1454, - 34, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _ri_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1463, - 5, - 1464, - 34, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1473, - 5, - 1473, - 35, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _re_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _q9_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4400, - 6, - 4407, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Chapitre IX : Calcul des allocations de logement en outre-mer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _q__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 607, - 12, - 607, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _q7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 400, - 6, - 407, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er juillet 2022 au 31 d\xc3\xa9cembre 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _q8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 607, - 12, - 607, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _q$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 607, - 12, - 607, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _q2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1639, - 29, - 1639, - 55, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _q3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 607, - 12, - 607, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _q1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 681, - 29, - 681, - 55, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _q4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 607, - 12, - 607, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _q0_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 348, - 29, - 348, - 55, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _q5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 607, - 12, - 607, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _q6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 607, - 12, - 607, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qW_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4217, - 14, - 4217, - 29, - [0, - caml_string_of_jsbytes("Article D842-2"), - [0, - caml_string_of_jsbytes("Section 1 : Secteur locatif ordinaire"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _qS_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 286, - 14, - 286, - 42, - [0, - caml_string_of_jsbytes("Article 12"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _qN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 172, - 29, - 172, - 44, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er juillet 2022 au 31 d\xc3\xa9cembre 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _qO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 595, - 11, - 595, - 26, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qK_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 430, - 29, - 430, - 44, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _qL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 595, - 11, - 595, - 26, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 767, - 29, - 767, - 44, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2021 au 31 d\xc3\xa9cembre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _qJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 595, - 11, - 595, - 26, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1722, - 29, - 1722, - 44, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _qH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 595, - 11, - 595, - 26, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 595, - 11, - 595, - 26, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 623, - 14, - 623, - 50, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qw_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 274, - 14, - 274, - 41, - [0, - caml_string_of_jsbytes("Article 11"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _qs_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1885, - 14, - 1885, - 29, - [0, - caml_string_of_jsbytes("Article D823-16"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _qt_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 596, - 11, - 596, - 26, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 596, - 11, - 596, - 26, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qu_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("fraction_l832_3"),0]], - _qx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 599, - 11, - 599, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 599, - 11, - 599, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qy_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("montant_forfaitaire_d823_16"),0]], - _qB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 623, - 14, - 623, - 50, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qC_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("contributions_sociales.date_courante"),0]], - _qz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 623, - 14, - 623, - 50, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qD_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("contributions_sociales"), - [0, - caml_string_of_jsbytes - ("ContributionsSocialesAidesPersonnelleLogement"), - 0]]], - _qE_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("contributions_sociales"), - [0, - caml_string_of_jsbytes - ("ContributionsSocialesAidesPersonnelleLogement"), - 0]]], - _qP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 595, - 11, - 595, - 26, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 595, - 11, - 595, - 26, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qQ_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("loyer_r\xc3\xa9f\xc3\xa9rence"),0]], - _qT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 600, - 11, - 600, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 600, - 11, - 600, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qU_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("montant_minimal_aide_d823_16"),0]], - _qX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 573, - 10, - 573, - 31, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 573, - 10, - 573, - 31, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qY_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("loyer_principal_avec_r\xc3\xa9duction_meubl\xc3\xa9"), - 0]], - _ra_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 607, - 12, - 607, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 607, - 12, - 607, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rb_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("taux_composition_familiale"),0]], - _r6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 12, - 605, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _r7_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("plafond_loyer_d823_16_2"),0]], - _sx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 12, - 604, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _r8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 12, - 604, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sy_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("montant_forfaitaire_charges_d823_16"),0]], - _sW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 601, - 11, - 601, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 601, - 11, - 601, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sX_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("abattement_forfaitaire_d823_17"),0]], - _s0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 598, - 11, - 598, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 598, - 11, - 598, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _s1_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("plafond_suppression_d823_16"),0]], - _s4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 597, - 11, - 597, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _s2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 597, - 11, - 597, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _s5_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("plafond_d\xc3\xa9gressivit\xc3\xa9_d823_16"), - 0]], - _s8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 590, - 11, - 590, - 25, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _s6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 590, - 11, - 590, - 25, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _s9_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("loyer_\xc3\xa9ligible"),0]], - _td_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale_diminu\xc3\xa9"),0]], - _tl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 606, - 12, - 606, - 34, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _te_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 606, - 12, - 606, - 34, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tm_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("participation_minimale"),0]], - _tu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 594, - 11, - 594, - 25, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 594, - 11, - 594, - 25, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tv_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("rapport_loyers"),0]], - _tD_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _tL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 592, - 10, - 592, - 17, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 592, - 10, - 592, - 17, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tM_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("taux_loyer_\xc3\xa9ligible_formule"),0]], - _tY_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _t6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 593, - 10, - 593, - 22, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 593, - 10, - 593, - 22, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _t7_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("taux_loyer_\xc3\xa9ligible_taux_arrondi"),0]], - _ud_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_r\xc3\xa9duction_loyer_solidarit\xc3\xa9"), - 0]], - _ug_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 602, - 11, - 602, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _ue_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 602, - 11, - 602, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uh_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("taux_prise_compte_ressources"),0]], - _up_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"),0]], - _us_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 608, - 12, - 608, - 37, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 608, - 12, - 608, - 37, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _ut_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("participation_personnelle"),0]], - _uw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 613, - 12, - 613, - 31, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 613, - 12, - 613, - 31, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _ux_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("aide_finale_formule"),0]], - _uy_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1838, - 13, - 1838, - 74, - [0, - caml_string_of_jsbytes("Article D823-16"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _uH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1838, - 13, - 1838, - 74, - [0, - caml_string_of_jsbytes("Article D823-16"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _uz_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 854, - 13, - 854, - 61, - [0, - caml_string_of_jsbytes("Article L832-3"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _uG_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 854, - 13, - 854, - 61, - [0, - caml_string_of_jsbytes("Article L832-3"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _uA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 634, - 13, - 634, - 53, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 634, - 13, - 634, - 53, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 627, - 13, - 627, - 43, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 627, - 13, - 627, - 43, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 626, - 13, - 626, - 42, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 626, - 13, - 626, - 42, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qd_=[7,0], - _qe_=[5,0], - _qf_=[4,0], - _qg_=[3,0], - _qh_=[2,0], - _qi_=[1,0], - _qj_=[0,0], - _qk_=[6,0], - _ql_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 34, - 5, - 43, - 6, - [0, - caml_string_of_jsbytes("Article 1"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _qm_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _qa_=[8,0], - _qb_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 52, - 5, - 54, - 6, - [0, - caml_string_of_jsbytes("Article 1"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _qc_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _p2_=[7,0], - _p3_=[5,0], - _p4_=[4,0], - _p5_=[3,0], - _p6_=[2,0], - _p7_=[1,0], - _p8_=[0,0], - _p9_=[6,0], - _p__= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 73, - 5, - 82, - 6, - [0, - caml_string_of_jsbytes("Article 1"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _p$_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _pZ_=[8,0], - _p0_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 91, - 5, - 93, - 6, - [0, - caml_string_of_jsbytes("Article 1"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _p1_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _pP_=[7,0], - _pQ_=[5,0], - _pR_=[4,0], - _pS_=[3,0], - _pT_=[2,0], - _pU_=[1,0], - _pV_=[0,0], - _pW_=[6,0], - _pX_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 112, - 5, - 121, - 6, - [0, - caml_string_of_jsbytes("Article 1"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _pY_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _pM_=[8,0], - _pN_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 130, - 5, - 132, - 6, - [0, - caml_string_of_jsbytes("Article 1"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _pO_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _pC_=[7,0], - _pD_=[5,0], - _pE_=[4,0], - _pF_=[3,0], - _pG_=[2,0], - _pH_=[1,0], - _pI_=[0,0], - _pJ_=[6,0], - _pK_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 151, - 5, - 160, - 6, - [0, - caml_string_of_jsbytes("Article 1"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2021-1741 du 22 d\xc3\xa9cembre 2021 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _pL_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _pz_=[8,0], - _pA_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 170, - 5, - 172, - 6, - [0, - caml_string_of_jsbytes("Article 1"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2021-1741 du 22 d\xc3\xa9cembre 2021 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _pB_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _pp_=[7,0], - _pq_=[5,0], - _pr_=[4,0], - _ps_=[3,0], - _pt_=[2,0], - _pu_=[1,0], - _pv_=[0,0], - _pw_=[6,0], - _px_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 191, - 5, - 200, - 6, - [0, - caml_string_of_jsbytes("Article 2"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 19 avril 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _py_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _pm_=[8,0], - _pn_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 209, - 5, - 211, - 6, - [0, - caml_string_of_jsbytes("Article 2"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 19 avril 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _po_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _pc_=[7,0], - _pd_=[5,0], - _pe_=[4,0], - _pf_=[3,0], - _pg_=[2,0], - _ph_=[1,0], - _pi_=[0,0], - _pj_=[6,0], - _pk_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 230, - 5, - 239, - 6, - [0, - caml_string_of_jsbytes("Article 2"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _pl_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _o$_=[8,0], - _pa_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 248, - 5, - 250, - 6, - [0, - caml_string_of_jsbytes("Article 2"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _pb_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _o1_=[7,0], - _o2_=[5,0], - _o3_=[4,0], - _o4_=[3,0], - _o5_=[2,0], - _o6_=[1,0], - _o7_=[0,0], - _o8_=[6,0], - _o9_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 270, - 5, - 279, - 6, - [0, - caml_string_of_jsbytes("Article 1"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2022-1608 du 22 d\xc3\xa9cembre 2022 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _o__= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _oY_=[8,0], - _oZ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 288, - 5, - 290, - 6, - [0, - caml_string_of_jsbytes("Article 1"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2022-1608 du 22 d\xc3\xa9cembre 2022 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _o0_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _qn_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _oX_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _qo_= - [0, - caml_string_of_jsbytes("Smic"), - [0,caml_string_of_jsbytes("brut_horaire"),0]], - _qp_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 16, - 13, - 16, - 42, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _qq_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 16, - 13, - 16, - 42, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _oU_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr"), - 35, - 14, - 35, - 27, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _oV_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr"), - 32, - 12, - 32, - 25, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _oT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr"), - 32, - 12, - 32, - 25, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _oW_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), - [0,caml_string_of_jsbytes("est_sup\xc3\xa9rieur"),0]], - _oQ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr"), - 25, - 14, - 25, - 35, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _oR_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr"), - 22, - 12, - 22, - 33, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _oP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr"), - 22, - 12, - 22, - 33, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _oS_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80"), - [0,caml_string_of_jsbytes("est_inf\xc3\xa9rieur_ou_\xc3\xa9gal"),0]], - _oJ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), - 32, - 5, - 33, - 33, - [0, - caml_string_of_jsbytes - ("Instruction minist\xc3\xa9rielle N\xc2\xb0DSS/SD2B/2019/65 du 25 mars 2019 relative \xc3\xa0 la revalorisation au 1er avril 2019 des prestations familiales servies en m\xc3\xa9tropole"), - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]]], - _oK_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), - 6, - 12, - 6, - 19, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _oH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), - 52, - 5, - 53, - 33, - [0, - caml_string_of_jsbytes - ("Instruction interminist\xc3\xa9rielle no DSS/SD2B/2020/33 du 18 f\xc3\xa9vrier 2020 relative \xc3\xa0 la revalorisation au 1er avril 2020 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte"), - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]]], - _oI_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), - 6, - 12, - 6, - 19, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _oF_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), - 68, - 5, - 69, - 33, - [0, - caml_string_of_jsbytes - ("Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2021/65 du 19 mars 2021 relative \xc3\xa0 la revalorisation au 1er avril 2021 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte"), - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]]], - _oG_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), - 6, - 12, - 6, - 19, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _oD_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), - 86, - 5, - 86, - 34, - [0, - caml_string_of_jsbytes - ("Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2022/82 du 28 mars 2022 relative \xc3\xa0 la revalorisation au 1er avril 2022 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte"), - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]]], - _oE_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), - 6, - 12, - 6, - 19, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _oL_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), - 6, - 12, - 6, - 19, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _oC_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), - 6, - 12, - 6, - 19, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _oM_= - [0, - caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"), - [0,caml_string_of_jsbytes("montant"),0]], - _oN_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), - 10, - 13, - 10, - 42, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _oO_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), - 10, - 13, - 10, - 42, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _ox_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2240, - 14, - 2240, - 28, - [0, - caml_string_of_jsbytes("Article R824-2"), - [0, - caml_string_of_jsbytes - ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _oy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1127, - 12, - 1127, - 26, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _ow_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2177, - 14, - 2177, - 28, - [0, - caml_string_of_jsbytes("Article R824-1"), - [0, - caml_string_of_jsbytes - ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _oz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1127, - 12, - 1127, - 26, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _or_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2182, - 20, - 2182, - 55, - [0, - caml_string_of_jsbytes("Article R824-1"), - [0, - caml_string_of_jsbytes - ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _os_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1122, - 11, - 1122, - 43, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _op_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2198, - 20, - 2198, - 51, - [0, - caml_string_of_jsbytes("Article R824-1"), - [0, - caml_string_of_jsbytes - ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _oq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1122, - 11, - 1122, - 43, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _on_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2264, - 7, - 2264, - 42, - [0, - caml_string_of_jsbytes("Article R824-2"), - [0, - caml_string_of_jsbytes - ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _oo_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1122, - 11, - 1122, - 43, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _ol_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2292, - 7, - 2292, - 51, - [0, - caml_string_of_jsbytes("Article R824-2"), - [0, - caml_string_of_jsbytes - ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _om_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1122, - 11, - 1122, - 43, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _og_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2221, - 14, - 2221, - 36, - [0, - caml_string_of_jsbytes("Article R824-1"), - [0, - caml_string_of_jsbytes - ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _oh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1125, - 11, - 1125, - 33, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _oe_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2317, - 14, - 2317, - 36, - [0, - caml_string_of_jsbytes("Article R824-2"), - [0, - caml_string_of_jsbytes - ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _of_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1125, - 11, - 1125, - 33, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _n__= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2308, - 14, - 2308, - 36, - [0, - caml_string_of_jsbytes("Article R824-2"), - [0, - caml_string_of_jsbytes - ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _n$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1124, - 11, - 1124, - 33, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _n9_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2212, - 14, - 2212, - 36, - [0, - caml_string_of_jsbytes("Article R824-1"), - [0, - caml_string_of_jsbytes - ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _oa_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1124, - 11, - 1124, - 33, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _n5_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2340, - 14, - 2340, - 36, - [0, - caml_string_of_jsbytes("Article R824-3"), - [0, - caml_string_of_jsbytes - ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _n0_=[0,0], - _n1_=[1,0], - _n2_=[1,0], - _n3_=[0,0], - _n4_=[0,0], - _n6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1123, - 11, - 1123, - 33, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _nZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1123, - 11, - 1123, - 33, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _n7_= - [0, - caml_string_of_jsbytes("Impay\xc3\xa9D\xc3\xa9penseLogement"), - [0,caml_string_of_jsbytes("mode_occupation_impay\xc3\xa9"),0]], - _ob_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1124, - 11, - 1124, - 33, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _n8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1124, - 11, - 1124, - 33, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _oc_= - [0, - caml_string_of_jsbytes("Impay\xc3\xa9D\xc3\xa9penseLogement"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_logement_brute"),0]], - _oi_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1125, - 11, - 1125, - 33, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _od_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1125, - 11, - 1125, - 33, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _oj_= - [0, - caml_string_of_jsbytes("Impay\xc3\xa9D\xc3\xa9penseLogement"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_logement_nette"),0]], - _ot_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1122, - 11, - 1122, - 43, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _ok_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1122, - 11, - 1122, - 43, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _ou_= - [0, - caml_string_of_jsbytes("Impay\xc3\xa9D\xc3\xa9penseLogement"), - [0, - caml_string_of_jsbytes - ("seuil_impay\xc3\xa9_d\xc3\xa9pense_de_logement"), - 0]], - _oA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1127, - 12, - 1127, - 26, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _ov_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1127, - 12, - 1127, - 26, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _oB_= - [0, - caml_string_of_jsbytes("Impay\xc3\xa9D\xc3\xa9penseLogement"), - [0,caml_string_of_jsbytes("montant_impay\xc3\xa9"),0]], - _nV_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 119, - 5, - 119, - 42, - [0, - caml_string_of_jsbytes("Article L161-17-2"), - [0, - caml_string_of_jsbytes - ("Paragraphe 1 : Information et simplification des d\xc3\xa9marches des assur\xc3\xa9s."), - [0, - caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), - [0, - caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), - [0, - caml_string_of_jsbytes - ("Chapitre 1er : Dispositions relatives aux prestations"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), - [0, - caml_string_of_jsbytes - ("Titre III: Titre III : Dispositions communes relatives au financement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]]]], - _nW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1107, - 12, - 1107, - 31, - [0, - caml_string_of_jsbytes - ("Date d'ouverture des droits \xc3\xa0 la retraite"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _nT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 256, - 5, - 256, - 41, - [0, - caml_string_of_jsbytes("Article D161-2-1-9"), - [0, - caml_string_of_jsbytes - ("Paragraphe 2 : Ouverture du droit et liquidation."), - [0, - caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), - [0, - caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), - [0, - caml_string_of_jsbytes - ("Chapitre 1er : Dispositions relatives aux prestations"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), - [0, - caml_string_of_jsbytes - ("Livre I : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s - Dispositions communes \xc3\xa0 tout ou partie des r\xc3\xa9gimes de base"), - [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]]]], - _nU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1107, - 12, - 1107, - 31, - [0, - caml_string_of_jsbytes - ("Date d'ouverture des droits \xc3\xa0 la retraite"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _nR_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 266, - 5, - 267, - 42, - [0, - caml_string_of_jsbytes("Article D161-2-1-9"), - [0, - caml_string_of_jsbytes - ("Paragraphe 2 : Ouverture du droit et liquidation."), - [0, - caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), - [0, - caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), - [0, - caml_string_of_jsbytes - ("Chapitre 1er : Dispositions relatives aux prestations"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), - [0, - caml_string_of_jsbytes - ("Livre I : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s - Dispositions communes \xc3\xa0 tout ou partie des r\xc3\xa9gimes de base"), - [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]]]], - _nS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1107, - 12, - 1107, - 31, - [0, - caml_string_of_jsbytes - ("Date d'ouverture des droits \xc3\xa0 la retraite"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _nP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 276, - 5, - 276, - 48, - [0, - caml_string_of_jsbytes("Article D161-2-1-9"), - [0, - caml_string_of_jsbytes - ("Paragraphe 2 : Ouverture du droit et liquidation."), - [0, - caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), - [0, - caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), - [0, - caml_string_of_jsbytes - ("Chapitre 1er : Dispositions relatives aux prestations"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), - [0, - caml_string_of_jsbytes - ("Livre I : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s - Dispositions communes \xc3\xa0 tout ou partie des r\xc3\xa9gimes de base"), - [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]]]], - _nQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1107, - 12, - 1107, - 31, - [0, - caml_string_of_jsbytes - ("Date d'ouverture des droits \xc3\xa0 la retraite"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _nN_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 285, - 5, - 285, - 48, - [0, - caml_string_of_jsbytes("Article D161-2-1-9"), - [0, - caml_string_of_jsbytes - ("Paragraphe 2 : Ouverture du droit et liquidation."), - [0, - caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), - [0, - caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), - [0, - caml_string_of_jsbytes - ("Chapitre 1er : Dispositions relatives aux prestations"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), - [0, - caml_string_of_jsbytes - ("Livre I : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s - Dispositions communes \xc3\xa0 tout ou partie des r\xc3\xa9gimes de base"), - [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]]]], - _nO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1107, - 12, - 1107, - 31, - [0, - caml_string_of_jsbytes - ("Date d'ouverture des droits \xc3\xa0 la retraite"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _nL_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 294, - 5, - 294, - 48, - [0, - caml_string_of_jsbytes("Article D161-2-1-9"), - [0, - caml_string_of_jsbytes - ("Paragraphe 2 : Ouverture du droit et liquidation."), - [0, - caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), - [0, - caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), - [0, - caml_string_of_jsbytes - ("Chapitre 1er : Dispositions relatives aux prestations"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), - [0, - caml_string_of_jsbytes - ("Livre I : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s - Dispositions communes \xc3\xa0 tout ou partie des r\xc3\xa9gimes de base"), - [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]]]], - _nM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1107, - 12, - 1107, - 31, - [0, - caml_string_of_jsbytes - ("Date d'ouverture des droits \xc3\xa0 la retraite"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _nX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1107, - 12, - 1107, - 31, - [0, - caml_string_of_jsbytes - ("Date d'ouverture des droits \xc3\xa0 la retraite"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _nK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1107, - 12, - 1107, - 31, - [0, - caml_string_of_jsbytes - ("Date d'ouverture des droits \xc3\xa0 la retraite"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _nY_= - [0, - caml_string_of_jsbytes("OuvertureDroitsRetraite"), - [0,caml_string_of_jsbytes("\xc3\xa2ge_ouverture_droit"),0]], - _nH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3255, - 14, - 3255, - 36, - [0, - caml_string_of_jsbytes("Article D832-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _nI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 728, - 12, - 728, - 34, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 728, - 12, - 728, - 34, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nJ_= - [0, - caml_string_of_jsbytes - ("CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("n_nombre_parts_d832_11"),0]], - _nD_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3931, - 14, - 3931, - 36, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _nx_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5517, - 5, - 5523, - 28, - [0, - caml_string_of_jsbytes("Article D861-8"), - [0, - caml_string_of_jsbytes("Section 2 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _ny_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 662, - 11, - 662, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nw_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4022, - 5, - 4022, - 26, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _nz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 662, - 11, - 662, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nv_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3926, - 14, - 3926, - 47, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _nq_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4005, - 5, - 4005, - 26, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _nr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 661, - 11, - 661, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _np_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3911, - 14, - 3911, - 41, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _nk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 659, - 12, - 659, - 52, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 659, - 12, - 659, - 52, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nm_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 659, - 12, - 659, - 52, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 659, - 12, - 659, - 52, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nn_= - [0, - caml_string_of_jsbytes("CalculNombrePartLogementFoyer"), - [0, - caml_string_of_jsbytes - ("limitation_majoration_personnes_\xc3\xa0_charge"), - 0]], - _ns_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 661, - 11, - 661, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _no_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 661, - 11, - 661, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nt_= - [0, - caml_string_of_jsbytes("CalculNombrePartLogementFoyer"), - [0,caml_string_of_jsbytes("n_nombre_parts_d832_25_base"),0]], - _nA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 662, - 11, - 662, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 662, - 11, - 662, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nB_= - [0, - caml_string_of_jsbytes("CalculNombrePartLogementFoyer"), - [0,caml_string_of_jsbytes("n_nombre_parts_d832_25_majoration"),0]], - _nE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 664, - 12, - 664, - 34, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 664, - 12, - 664, - 34, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nF_= - [0, - caml_string_of_jsbytes("CalculNombrePartLogementFoyer"), - [0,caml_string_of_jsbytes("n_nombre_parts_d832_25"),0]], - _nf_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4095, - 5, - 4095, - 26, - [0, - caml_string_of_jsbytes("Article D832-26"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _ng_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 651, - 12, - 651, - 19, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _ne_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4057, - 14, - 4057, - 21, - [0, - caml_string_of_jsbytes("Article D832-26"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _na_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4044, - 14, - 4044, - 50, - [0, - caml_string_of_jsbytes("Article D832-26"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _m$_=[1,0], - _m6_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2653, - 5, - 2653, - 26, - [0, - caml_string_of_jsbytes("Article 31"), - [0, - caml_string_of_jsbytes - ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _m5_=[1,0], - _m7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 646, - 11, - 646, - 35, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _m4_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2603, - 14, - 2603, - 38, - [0, - caml_string_of_jsbytes("Article 31"), - [0, - caml_string_of_jsbytes - ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _m3_=[1,0], - _mZ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2689, - 14, - 2689, - 41, - [0, - caml_string_of_jsbytes("Article 31"), - [0, - caml_string_of_jsbytes - ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _m0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 649, - 11, - 649, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _mY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 649, - 11, - 649, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _m1_= - [0, - caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"), - [0,caml_string_of_jsbytes("montant_forfaitaire_d832_26"),0]], - _m8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 646, - 11, - 646, - 35, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _m2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 646, - 11, - 646, - 35, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _m9_= - [0, - caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"), - [0,caml_string_of_jsbytes("tranches_revenus_d832_26"),0]], - _nb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 647, - 11, - 647, - 47, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _m__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 647, - 11, - 647, - 47, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nc_= - [0, - caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"), - [0, - caml_string_of_jsbytes("tranches_revenus_d832_26_multipli\xc3\xa9es"), - 0]], - _nh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 651, - 12, - 651, - 19, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 651, - 12, - 651, - 19, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _ni_= - [0, - caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"), - [0,caml_string_of_jsbytes("montant"),0]], - _mS_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/autres_sources.catala_fr"), - 152, - 5, - 152, - 34, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Des contributions pour le remboursement de la dette sociale."), - [0, - caml_string_of_jsbytes - ("Ordonnance n\xc2\xb0 96-50 du 24 janvier 1996 relative au remboursement de la dette sociale"), - 0]]]], - _mT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 557, - 12, - 557, - 19, - [0, - caml_string_of_jsbytes - ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _mR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 557, - 12, - 557, - 19, - [0, - caml_string_of_jsbytes - ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _mO_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/autres_sources.catala_fr"), - 190, - 39, - 190, - 68, - [0, - caml_string_of_jsbytes("Article 19"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Des contributions pour le remboursement de la dette sociale."), - [0, - caml_string_of_jsbytes - ("Ordonnance n\xc2\xb0 96-50 du 24 janvier 1996 relative au remboursement de la dette sociale"), - 0]]]], - _mJ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 37, - 9, - 37, - 20, - [0, - caml_string_of_jsbytes("Article L136-1-3"), - [0, - caml_string_of_jsbytes - ("Section 1 : De la contribution sociale sur les revenus d'activit\xc3\xa9 et sur les revenus de remplacement"), - [0, - caml_string_of_jsbytes - ("Chapitre 6 : Contribution sociale g\xc3\xa9n\xc3\xa9ralis\xc3\xa9e"), - [0, - caml_string_of_jsbytes - ("Titre III: Titre III : Dispositions communes relatives au financement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _mK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 555, - 11, - 555, - 22, - [0, - caml_string_of_jsbytes - ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _mI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 555, - 11, - 555, - 22, - [0, - caml_string_of_jsbytes - ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _mL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 555, - 11, - 555, - 22, - [0, - caml_string_of_jsbytes - ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _mH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 555, - 11, - 555, - 22, - [0, - caml_string_of_jsbytes - ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _mM_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("exon\xc3\xa9r\xc3\xa9_csg"),0]], - _mP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 554, - 11, - 554, - 20, - [0, - caml_string_of_jsbytes - ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _mN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 554, - 11, - 554, - 20, - [0, - caml_string_of_jsbytes - ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _mQ_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("taux_crds"),0]], - _mU_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant"),0]], - _mX_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/autres_sources.catala_fr"), - 156, - 13, - 156, - 24, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Des contributions pour le remboursement de la dette sociale."), - [0, - caml_string_of_jsbytes - ("Ordonnance n\xc2\xb0 96-50 du 24 janvier 1996 relative au remboursement de la dette sociale"), - 0]]]], - _mV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 562, - 13, - 562, - 42, - [0, - caml_string_of_jsbytes - ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _mW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 562, - 13, - 562, - 42, - [0, - caml_string_of_jsbytes - ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _mG_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales_in"), - 0], - _mF_=[0,caml_string_of_jsbytes("Smic_in"),0], - _mE_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80_in"), - 0], - _mD_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80_in"), - 0], - _mC_= - [0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales_in"),0], - _mB_= - [0, - caml_string_of_jsbytes - ("CalculetteAidesAuLogementGardeAltern\xc3\xa9e_in"), - 0], - _mA_=[0,caml_string_of_jsbytes("CalculetteAidesAuLogement_in"),0], - _mz_= - [0,caml_string_of_jsbytes("Impay\xc3\xa9D\xc3\xa9penseLogement_in"),0], - _my_=[0,caml_string_of_jsbytes("OuvertureDroitsRetraite_in"),0], - _mx_=[0,caml_string_of_jsbytes("CalculAllocationLogement_in"),0], - _mw_=[0,caml_string_of_jsbytes("CalculAllocationLogementFoyer_in"),0], - _mv_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9_in"), - 0], - _mu_=[0,caml_string_of_jsbytes("CalculAllocationLogementLocatif_in"),0], - _mt_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement_in"), - 0], - _ms_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9_in"), - 0], - _mr_= - [0, - caml_string_of_jsbytes - ("CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9_in"), - 0], - _mq_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementFoyer_in"), - 0], - _mp_=[0,caml_string_of_jsbytes("CalculNombrePartLogementFoyer_in"),0], - _mo_= - [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale_in"),0], - _mn_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementLocatif_in"), - 0], - _mm_= - [0, - caml_string_of_jsbytes - ("ContributionsSocialesAidesPersonnelleLogement_in"), - 0], - _ml_= - [0,caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement_in"),0], - _mk_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement_in"), - 0], - _mj_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AllocationLogement_in"), - 0], - _mi_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement_in"), - 0], - _mh_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement_in"), - 0], - _mg_=[0,caml_string_of_jsbytes("M\xc3\xa9nage"),0], - _mf_=[0,caml_string_of_jsbytes("Logement"),0], - _me_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - 0], - _md_=[0,caml_string_of_jsbytes("ModeOccupation"),0], - _mc_=[0,caml_string_of_jsbytes("Cat\xc3\xa9gorieCalculAPL"),0], - _mb_=[0,caml_string_of_jsbytes("Personne\xc3\x80Charge"),0], - _ma_=[0,caml_string_of_jsbytes("Location"),0], - _l$_=[0,caml_string_of_jsbytes("Enfant\xc3\x80Charge"),0], - _l__=[0,caml_string_of_jsbytes("Demandeur"),0], - _l9_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - 0], - _l8_=[0,caml_string_of_jsbytes("Propri\xc3\xa9taire"),0], - _l7_= - [0, - caml_string_of_jsbytes("InformationsPrimeDeD\xc3\xa9m\xc3\xa9nagement"), - 0], - _l6_=[0,caml_string_of_jsbytes("ChangementLogementD842_4"),0], - _l5_=[0,caml_string_of_jsbytes("Nationalit\xc3\xa9"),0], - _l4_= - [0, - caml_string_of_jsbytes("Lou\xc3\xa9OuSousLou\xc3\xa9\xc3\x80DesTiers"), - 0], - _l3_=[0,caml_string_of_jsbytes("TypeBailleur"),0], - _l2_=[0,caml_string_of_jsbytes("EnfantPrestationsFamiliales"),0], - _l1_=[0,caml_string_of_jsbytes("LogementFoyer"),0], - _l0_=[0,caml_string_of_jsbytes("Pr\xc3\xaat"),0], - _lZ_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - 0], - _lY_= - [0, - caml_string_of_jsbytes - ("DateNaissanceTroisi\xc3\xa8meOuDernierPlusEnfant"), - 0], - _lX_=[0,caml_string_of_jsbytes("AutrePersonne\xc3\x80Charge"),0], - _lW_=[0,caml_string_of_jsbytes("TrancheRevenuD\xc3\xa9cimal"),0], - _lV_=[0,caml_string_of_jsbytes("TrancheRevenu"),0], - _lU_=[0,caml_string_of_jsbytes("NeufOuAncien"),0], - _lT_=[0,caml_string_of_jsbytes("Smic"),0], - _lS_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), - 0], - _lR_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80"), - 0], - _lQ_=[0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"),0], - _lP_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - 0], - _lO_=[0,caml_string_of_jsbytes("CalculetteAidesAuLogement"),0], - _lN_=[0,caml_string_of_jsbytes("Impay\xc3\xa9D\xc3\xa9penseLogement"),0], - _lM_=[0,caml_string_of_jsbytes("OuvertureDroitsRetraite"),0], - _lL_=[0,caml_string_of_jsbytes("CalculAllocationLogement"),0], - _lK_=[0,caml_string_of_jsbytes("CalculAllocationLogementFoyer"),0], - _lJ_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - 0], - _lI_=[0,caml_string_of_jsbytes("CalculAllocationLogementLocatif"),0], - _lH_=[0,caml_string_of_jsbytes("InfosChangementLogementD842_4"),0], - _lG_= - [0,caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"),0], - _lF_=[0,caml_string_of_jsbytes("Traitement_formule_aide_finale"),0], - _lE_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - 0], - _lD_= - [0, - caml_string_of_jsbytes - ("CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9"), - 0], - _lC_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - 0], - _lB_=[0,caml_string_of_jsbytes("CalculNombrePartLogementFoyer"),0], - _lA_= - [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0], - _lz_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - 0], - _ly_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - 0], - _lx_=[0,caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"),0], - _lw_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - 0], - _lv_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - 0], - _lu_=[0,caml_string_of_jsbytes("PersonneVivantHabituellementAuFoyer"),0], - _lt_=[0,caml_string_of_jsbytes("Conditions\xc3\x89trangers"),0], - _ls_=[0,caml_string_of_jsbytes("Patrimoine"),0], - _lr_=[0,caml_string_of_jsbytes("PersonneSousLocation"),0], - _lq_=[0,caml_string_of_jsbytes("ConventionANHA"),0], - _lp_=[0,caml_string_of_jsbytes("ConventionBailleurSocial"),0], - _lo_= - [0, - caml_string_of_jsbytes("\xc3\x89l\xc3\xa9mentPrestationsFamiliales"), - 0], - _ln_=[0,caml_string_of_jsbytes("SituationObligationScolaire"),0], - _lm_=[0,caml_string_of_jsbytes("PriseEnChargeEnfant"),0], - _ll_=[0,caml_string_of_jsbytes("Collectivit\xc3\xa9"),0], - _lk_=[0,caml_string_of_jsbytes("SituationFamilialeCalculAPL"),0], - _lj_= - [0, - caml_string_of_jsbytes - ("Cat\xc3\xa9gorie\xc3\x89quivalenceLoyerAllocationLogementFoyer"), - 0], - _li_=[0,caml_string_of_jsbytes("TypeLogementFoyer"),0], - _lh_=[0,caml_string_of_jsbytes("PriseEnCharge"),0], - _lg_=[0,caml_string_of_jsbytes("SituationFamiliale"),0], - _lf_=[0,caml_string_of_jsbytes("TypeAidesPersonnelleLogement"),0], - _le_= - [0, - caml_string_of_jsbytes - ("AccordFinancementRepr\xc3\xa9sentant\xc3\x89tatOutreMer"), - 0], - _ld_= - [0, - caml_string_of_jsbytes - ("Type\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - 0], - _lc_=[0,caml_string_of_jsbytes("ModeOccupationImpay\xc3\xa9"),0], - _lb_=[0,caml_string_of_jsbytes("D\xc3\xa9penseLogement"),0], - _la_=[0,caml_string_of_jsbytes("Versement\xc3\x80"),0], - _k$_= - [0,caml_string_of_jsbytes("PaiementLogementDistinctProfessionnel"),0], - _k__=[0,caml_string_of_jsbytes("ZoneDHabitation"),0], - _k9_=[0,caml_string_of_jsbytes("DateDeNaissanceOuMoisDeGrossesse"),0], - _k8_=[0,caml_string_of_jsbytes("Parent\xc3\xa9"),0], - _k7_=[0,caml_string_of_jsbytes("SituationGardeAltern\xc3\xa9e"),0], - _k6_=[0,caml_string_of_jsbytes("ParentOuAutre"),0], - _k5_=[0,caml_string_of_jsbytes("PrestationRe\xc3\xa7ue"),0], - _k4_=[0,caml_string_of_jsbytes("LimiteTrancheD\xc3\xa9cimal"),0], - _k3_=[0,caml_string_of_jsbytes("LimiteTranche"),0], - _k2_=[0,caml_string_of_jsbytes("Am\xc3\xa9lior\xc3\xa9ParOccupant"),0], - _k1_=[0,caml_string_of_jsbytes("TypeTravauxLogementR842_5"),0], - _k0_=[0,caml_string_of_jsbytes("TypeTravauxLogementD832_15"),0], - _kZ_=[0,caml_string_of_jsbytes("TitulairePr\xc3\xaat"),0], - _kY_=[0,caml_string_of_jsbytes("TypePr\xc3\xaat"),0], - _abu_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'ModeOccupation.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'ModeOccupation.t'")], - _abt_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'CategorieCalculAPL.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'CategorieCalculAPL.t'")], - _abs_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'PersonneACharge.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'PersonneACharge.t'")], - _abr_=[1,0], - _abq_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'ChangementLogementD8424.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'ChangementLogementD8424.t'")], - _abp_=[0,0], - _abo_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes("' kind for the enumeration 'Nationalite.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'Nationalite.t'")], - _abn_=[0,0], - _abm_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'LoueOuSousLoueADesTiers.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'LoueOuSousLoueADesTiers.t'")], - _abl_=[2,0], - _abk_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'TypeBailleur.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'TypeBailleur.t'")], - _abj_=[0,0], - _abi_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'DateNaissanceTroisiemeOuDernierPlusEnfant.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'DateNaissanceTroisiemeOuDernierPlusEnfant.t'")], - _abh_=[0,0], - _abg_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'NeufOuAncien.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'NeufOuAncien.t'")], - _aa__=[0,0], - _aa$_=[2,0], - _aba_=[1,0], - _abb_=[5,0], - _abc_=[6,0], - _abd_=[3,0], - _abe_=[7,0], - _abf_=[4,0], - _aa9_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'ElementPrestationsFamiliales.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'ElementPrestationsFamiliales.t'")], - _aa6_=[1,0], - _aa7_=[0,0], - _aa8_=[2,0], - _aa5_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'SituationObligationScolaire.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'SituationObligationScolaire.t'")], - _aa0_=[4,0], - _aa1_=[3,0], - _aa2_=[0,0], - _aa3_=[1,0], - _aa4_=[2,0], - _aaZ_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'PriseEnChargeEnfant.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'PriseEnChargeEnfant.t'")], - _aaQ_=[7,0], - _aaR_=[5,0], - _aaS_=[4,0], - _aaT_=[6,0], - _aaU_=[8,0], - _aaV_=[2,0], - _aaW_=[3,0], - _aaX_=[1,0], - _aaY_=[0,0], - _aaP_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'Collectivite.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'Collectivite.t'")], - _aaN_=[0,0], - _aaO_=[1,0], - _aaM_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'SituationFamilialeCalculAPL.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'SituationFamilialeCalculAPL.t'")], - _aaI_=[2,0], - _aaJ_=[1,0], - _aaK_=[0,0], - _aaL_=[3,0], - _aaH_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'CategorieEquivalenceLoyerAllocationLogementFoyer.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'CategorieEquivalenceLoyerAllocationLogementFoyer.t'")], - _aaD_=[1,0], - _aaE_=[0,0], - _aaF_=[2,0], - _aaG_=[3,0], - _aaC_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'TypeLogementFoyer.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'TypeLogementFoyer.t'")], - _aaz_=[2,0], - _aaA_=[1,0], - _aaB_=[0,0], - _aay_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'PriseEnCharge.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'PriseEnCharge.t'")], - _aat_=[2,0], - _aau_=[3,0], - _aav_=[5,0], - _aaw_=[4,0], - _aax_=[0,0], - _aas_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'SituationFamiliale.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'SituationFamiliale.t'")], - _aap_=[2,0], - _aaq_=[1,0], - _aar_=[0,0], - _aao_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'TypeAidesPersonnelleLogement.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'TypeAidesPersonnelleLogement.t'")], - _aan_=[1,0], - _aam_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'AccordFinancementRepresentantEtatOutreMer.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'AccordFinancementRepresentantEtatOutreMer.t'")], - _aaj_=[0,0], - _aak_=[2,0], - _aal_=[1,0], - _aai_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'TypeEligibiliteAllocationLogement.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'TypeEligibiliteAllocationLogement.t'")], - _aag_=[1,0], - _aah_=[0,0], - _aaf_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'ModeOccupationImpaye.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'ModeOccupationImpaye.t'")], - _aae_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'DepenseLogement.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'DepenseLogement.t'")], - _aab_=[2,0], - _aac_=[1,0], - _aad_=[0,0], - _aaa_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes("' kind for the enumeration 'VersementA.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'VersementA.t'")], - _$$_=[1,0], - _$__= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'PaiementLogementDistinctProfessionnel.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'PaiementLogementDistinctProfessionnel.t'")], - _$7_=[2,0], - _$8_=[1,0], - _$9_=[0,0], - _$6_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'ZoneDHabitation.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'ZoneDHabitation.t'")], - _$4_=[1,0], - _$5_=[2,0], - _$3_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'DateDeNaissanceOuMoisDeGrossesse.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'DateDeNaissanceOuMoisDeGrossesse.t'")], - _$0_=[1,0], - _$1_=[2,0], - _$2_=[0,0], - _$Z_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes("' kind for the enumeration 'Parente.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'Parente.t'")], - _$Y_=[0,0], - _$X_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'SituationGardeAlternee.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'SituationGardeAlternee.t'")], - _$W_=[1,0], - _$V_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'ParentOuAutre.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'ParentOuAutre.t'")], - _$P_=[1,0], - _$Q_=[0,0], - _$R_=[3,0], - _$S_=[4,0], - _$T_=[2,0], - _$U_=[5,0], - _$O_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'PrestationRecue.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'PrestationRecue.t'")], - _$N_=[1,0], - _$M_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'LimiteTrancheDecimal.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'LimiteTrancheDecimal.t'")], - _$L_=[1,0], - _$K_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'LimiteTranche.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'LimiteTranche.t'")], - _$I_=[0,0], - _$J_=[1,0], - _$H_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'AmelioreParOccupant.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'AmelioreParOccupant.t'")], - _$D_=[1,0], - _$E_=[3,0], - _$F_=[0,0], - _$G_=[2,0], - _$C_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'TypeTravauxLogementR8425.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'TypeTravauxLogementR8425.t'")], - _$z_=[1,0], - _$A_=[0,0], - _$B_=[2,0], - _$y_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'TypeTravauxLogementD83215.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'TypeTravauxLogementD83215.t'")], - _$w_=[1,0], - _$x_=[0,0], - _$v_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'TitulairePret.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'TitulairePret.t'")], - _$q_=[3,0], - _$r_=[1,0], - _$s_=[2,0], - _$t_=[0,0], - _$u_=[4,0], - _$p_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes("' kind for the enumeration 'TypePret.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'TypePret.t'")]; - function embed_prise_en_charge(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cEp_= - [0, - cst_GardeAltern_ePartageAlloca, - caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cEp_= - [0, - cst_GardeAltern_eAllocataireUn, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - case 2: - var - x$2=x[1], - _cEp_= - [0, - cst_EffectiveEtPermanente, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]; - break; - case 3: - var - x$3=x[1], - _cEp_= - [0, - cst_ServicesSociauxAllocationV, - caml_call1(Runtime_ocaml_Runtime[11],x$3)]; - break; - default: - var - x$4=x[1], - _cEp_= - [0, - cst_ServicesSociauxAllocationV$0, - caml_call1(Runtime_ocaml_Runtime[11],x$4)]} - return [6,_a_,_cEp_]} - var SituationObligationScolaire=[0]; - function embed_situation_obligation_sco(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cEo_=[0,cst_Avant,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cEo_=[0,cst_Pendant,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - default: - var - x$2=x[1], - _cEo_=[0,cst_Apr_s,caml_call1(Runtime_ocaml_Runtime[11],x$2)]} - return [6,_b_,_cEo_]} - var PriseEnCompte=[0]; - function embed_prise_en_compte(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cEn_=[0,cst_Compl_te,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cEn_=[0,cst_Partag_e,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - default: - var - x$2=x[1], - _cEn_=[0,cst_Z_ro,caml_call1(Runtime_ocaml_Runtime[11],x$2)]} - return [6,_c_,_cEn_]} - var VersementAllocations=[0]; - function embed_versement_allocations(x) - {if(0 === x[0]) + cst_avait_enfant_charge_avant_ = + "avait_enfant_\xc3\xa0_charge_avant_1er_janvier_2012_in", + cst_enfants_charge_in = "enfants_\xc3\xa0_charge_in", + cst_date_courante_in$0 = cst_date_courante_in$5, + cst_r_sidence_in$0 = cst_r_sidence_in$2, + cst_ressources_m_nage_in = "ressources_m\xc3\xa9nage_in", + cst_personne_charge_effective_ = + "personne_charge_effective_permanente_remplit_titre_I_in", + cst_personne_charge_effective_$0 = + "personne_charge_effective_permanente_est_parent_in", + _t_ = [0, "AllocationsFamiliales_in", 0], + cst_enfants_in = "enfants_in", + _s_ = [0, "EnfantLePlus\xc3\x82g\xc3\xa9_in", 0], + cst_r_sidence_in = cst_r_sidence_in$2, + cst_prestation_courante_in = "prestation_courante_in", + cst_date_courante_in = cst_date_courante_in$5, + _r_ = [0, "PrestationsFamiliales_in", 0], + cst_r_gime_outre_mer_l751_1 = cst_r_gime_outre_mer_l751_1$0, + cst_ge_l512_3_2 = cst_ge_l512_3_2$0, + cst_conditions_hors_ge = cst_conditions_hors_ge$0, + cst_droit_ouvert = cst_droit_ouvert$0, + _q_ = [0, cst_PrestationsFamiliales, 0], + cst_le_plus_g = cst_le_plus_g$0, + _p_ = [0, cst_EnfantLePlus_g, 0], + cst_b_n_ficie_titre_personnel_ = + "b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement", + cst_a_d_j_ouvert_droit_aux_all = + "a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales", + cst_prise_en_charge = "prise_en_charge", + cst_date_de_naissance = "date_de_naissance", + cst_r_muneration_mensuelle = "r\xc3\xa9muneration_mensuelle", + cst_obligation_scolaire = "obligation_scolaire", + cst_identifiant = "identifiant", + _o_ = [0, "Enfant", 0], + cst_d_b_n_ficie_titre_personne = + "d_b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement", + cst_d_a_d_j_ouvert_droit_aux_a = + "d_a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales", + cst_d_prise_en_charge = "d_prise_en_charge", + cst_d_date_de_naissance = "d_date_de_naissance", + cst_d_r_muneration_mensuelle = "d_r\xc3\xa9muneration_mensuelle", + cst_d_identifiant = "d_identifiant", + _n_ = [0, "EnfantEntr\xc3\xa9e", 0], + cst_i_montant_vers = cst_i_montant_vers$0, + _m_ = [0, cst_InterfaceAllocationsFamili, 0], + cst_montant = cst_montant$0, + _l_ = [0, cst_BaseMensuelleAllocationsFa, 0], + cst_brut_horaire = cst_brut_horaire$0, + _k_ = [0, cst_Smic, 0], + cst_est_sup_rieur = cst_est_sup_rieur$0, + _j_ = [0, cst_V_rification_geSup_rieur, 0], + cst_est_inf_rieur_ou_gal = cst_est_inf_rieur_ou_gal$0, + _i_ = [0, cst_V_rification_geInf_rieurOu, 0], + cst_montant_vers = cst_montant_vers$0, + _h_ = [0, cst_AllocationsFamiliales$0, 0], + cst_ge_minimum_alin_a_1_l521_3 = cst_ge_minimum_alin_a_1_l521_3$0, + _g_ = [0, cst_AllocationFamilialesAvril2, 0], + cst_Guadeloupe = "Guadeloupe", + cst_Guyane = "Guyane", + cst_Martinique = "Martinique", + cst_LaR_union = "LaR\xc3\xa9union", + cst_SaintBarth_lemy = "SaintBarth\xc3\xa9lemy", + cst_SaintMartin = "SaintMartin", + cst_M_tropole = "M\xc3\xa9tropole", + cst_SaintPierreEtMiquelon = "SaintPierreEtMiquelon", + cst_Mayotte = "Mayotte", + _f_ = [0, "Collectivit\xc3\xa9", 0], + cst_PrestationAccueilJeuneEnfa = "PrestationAccueilJeuneEnfant", + cst_AllocationsFamiliales = cst_AllocationsFamiliales$0, + cst_Compl_mentFamilial = "Compl\xc3\xa9mentFamilial", + cst_AllocationLogement = "AllocationLogement", + cst_Allocation_ducationEnfantH = + "Allocation\xc3\x89ducationEnfantHandicap\xc3\xa9", + cst_AllocationSoutienFamilial = "AllocationSoutienFamilial", + cst_AllocationRentr_eScolaire = "AllocationRentr\xc3\xa9eScolaire", + cst_AllocationJournali_rePrese = + "AllocationJournali\xc3\xa8rePresenceParentale", + _e_ = [0, "\xc3\x89l\xc3\xa9mentPrestationsFamiliales", 0], + cst_Normal = "Normal", + cst_AllocationVers_eAuxService = + "AllocationVers\xc3\xa9eAuxServicesSociaux", + _d_ = [0, "VersementAllocations", 0], + cst_Compl_te = "Compl\xc3\xa8te", + cst_Partag_e = "Partag\xc3\xa9e", + cst_Z_ro = "Z\xc3\xa9ro", + _c_ = [0, "PriseEnCompte", 0], + cst_Avant = "Avant", + cst_Pendant = "Pendant", + cst_Apr_s = "Apr\xc3\xa8s", + _b_ = [0, "SituationObligationScolaire", 0], + cst_GardeAltern_ePartageAlloca = "GardeAltern\xc3\xa9ePartageAllocations", + cst_GardeAltern_eAllocataireUn = "GardeAltern\xc3\xa9eAllocataireUnique", + cst_EffectiveEtPermanente = "EffectiveEtPermanente", + cst_ServicesSociauxAllocationV = + "ServicesSociauxAllocationVers\xc3\xa9e\xc3\x80LaFamille", + cst_ServicesSociauxAllocationV$0 = + "ServicesSociauxAllocationVers\xc3\xa9eAuxServicesSociaux", + _a_ = [0, "PriseEnCharge", 0]; + function embed_prise_en_charge(x){ + switch(x[0]){ + case 0: var - x$0=x[1], - _cEm_=[0,cst_Normal,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - else + x$0 = x[1], + _Ln_ = + [0, + cst_GardeAltern_ePartageAlloca, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: var - x$1=x[1], - _cEm_= - [0, - cst_AllocationVers_eAuxService, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - return [6,_d_,_cEm_]} - var ElementPrestationsFamiliales=[0]; - function embed_element_prestations_fami(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cEl_= - [0, - cst_PrestationAccueilJeuneEnfa, - caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cEl_= - [0, - cst_AllocationsFamiliales, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - case 2: - var - x$2=x[1], - _cEl_= - [0, - cst_Compl_mentFamilial, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]; - break; - case 3: - var - x$3=x[1], - _cEl_= - [0, - cst_AllocationLogement, - caml_call1(Runtime_ocaml_Runtime[11],x$3)]; - break; - case 4: - var - x$4=x[1], - _cEl_= - [0, - cst_Allocation_ducationEnfantH, - caml_call1(Runtime_ocaml_Runtime[11],x$4)]; - break; - case 5: - var - x$5=x[1], - _cEl_= - [0, - cst_AllocationSoutienFamilial, - caml_call1(Runtime_ocaml_Runtime[11],x$5)]; - break; - case 6: - var - x$6=x[1], - _cEl_= - [0, - cst_AllocationRentr_eScolaire, - caml_call1(Runtime_ocaml_Runtime[11],x$6)]; - break; - default: - var - x$7=x[1], - _cEl_= - [0, - cst_AllocationJournali_rePrese, - caml_call1(Runtime_ocaml_Runtime[11],x$7)]} - return [6,_e_,_cEl_]} - var Collectivite=[0]; - function embed_collectivite(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cEk_=[0,cst_Guadeloupe,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cEk_=[0,cst_Guyane,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - case 2: - var - x$2=x[1], - _cEk_=[0,cst_Martinique,caml_call1(Runtime_ocaml_Runtime[11],x$2)]; - break; - case 3: - var - x$3=x[1], - _cEk_=[0,cst_LaR_union,caml_call1(Runtime_ocaml_Runtime[11],x$3)]; - break; - case 4: - var - x$4=x[1], - _cEk_= - [0,cst_SaintBarth_lemy,caml_call1(Runtime_ocaml_Runtime[11],x$4)]; - break; - case 5: - var - x$5=x[1], - _cEk_=[0,cst_SaintMartin,caml_call1(Runtime_ocaml_Runtime[11],x$5)]; - break; - case 6: - var - x$6=x[1], - _cEk_=[0,cst_M_tropole,caml_call1(Runtime_ocaml_Runtime[11],x$6)]; - break; - case 7: - var - x$7=x[1], - _cEk_= - [0, - cst_SaintPierreEtMiquelon, - caml_call1(Runtime_ocaml_Runtime[11],x$7)]; - break; - default: - var - x$8=x[1], - _cEk_=[0,cst_Mayotte,caml_call1(Runtime_ocaml_Runtime[11],x$8)]} - return [6,_f_,_cEk_]} - var AllocationFamilialesAvril2008=[0]; - function embed_allocation_familiales_av(x) - {return [7, - _g_, - [0, - [0, - cst_ge_minimum_alin_a_1_l521_3, - caml_call1(Runtime_ocaml_Runtime[17],x[1])], - 0]]} - var AllocationsFamiliales=[0]; - function embed_allocations_familiales(x) - {return [7, - _h_, - [0, - [0,cst_montant_vers,caml_call1(Runtime_ocaml_Runtime[13],x[1])], - 0]]} - var VerificationAgeInferieurOuEgal=[0]; - function embed_verification_age_inferie(x) - {return [7, - _i_, - [0, - [0, - cst_est_inf_rieur_ou_gal, - caml_call1(Runtime_ocaml_Runtime[12],x[1])], - 0]]} - var VerificationAgeSuperieurA=[0]; - function embed_verification_age_superie(x) - {return [7, - _j_, - [0, - [0, - cst_est_sup_rieur, - caml_call1(Runtime_ocaml_Runtime[12],x[1])], - 0]]} - var Smic=[0]; - function embed_smic(x) - {return [7, - _k_, - [0, - [0,cst_brut_horaire,caml_call1(Runtime_ocaml_Runtime[13],x[1])], - 0]]} - var BaseMensuelleAllocationsFamili=[0]; - function embed_base_mensuelle_allocatio(x) - {return [7, - _l_, - [0,[0,cst_montant,caml_call1(Runtime_ocaml_Runtime[13],x[1])],0]]} - var InterfaceAllocationsFamiliales=[0]; - function embed_interface_allocations_fa(x) - {return [7, - _m_, - [0, - [0, - cst_i_montant_vers, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - 0]]} - var EnfantEntree=[0]; - function embed_enfant_entree(x) - {var - _cEf_= - [0, - [0, - cst_d_b_n_ficie_titre_personne, - caml_call1(Runtime_ocaml_Runtime[12],x[6])], - 0], - _cEg_= - [0, - [0, - cst_d_a_d_j_ouvert_droit_aux_a, - caml_call1(Runtime_ocaml_Runtime[12],x[5])], - _cEf_], - _cEh_=[0,[0,cst_d_prise_en_charge,embed_prise_en_charge(x[4])],_cEg_], - _cEi_= - [0, - [0, - cst_d_date_de_naissance, - caml_call1(Runtime_ocaml_Runtime[16],x[3])], - _cEh_], - _cEj_= - [0, - [0, - cst_d_r_muneration_mensuelle, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _cEi_]; - return [7, - _n_, - [0, - [0, - cst_d_identifiant, - caml_call1(Runtime_ocaml_Runtime[14],x[1])], - _cEj_]]} - var Enfant=[0]; - function embed_enfant(x) - {var - _cD$_= - [0, - [0, - cst_b_n_ficie_titre_personnel_, - caml_call1(Runtime_ocaml_Runtime[12],x[7])], - 0], - _cEa_= - [0, - [0, - cst_a_d_j_ouvert_droit_aux_all, - caml_call1(Runtime_ocaml_Runtime[12],x[6])], - _cD$_], - _cEb_=[0,[0,cst_prise_en_charge,embed_prise_en_charge(x[5])],_cEa_], - _cEc_= - [0, - [0,cst_date_de_naissance,caml_call1(Runtime_ocaml_Runtime[16],x[4])], - _cEb_], - _cEd_= - [0, - [0, - cst_r_muneration_mensuelle, - caml_call1(Runtime_ocaml_Runtime[13],x[3])], - _cEc_], - _cEe_= - [0, - [0,cst_obligation_scolaire,embed_situation_obligation_sco(x[2])], - _cEd_]; - return [7, - _o_, - [0, - [0,cst_identifiant,caml_call1(Runtime_ocaml_Runtime[14],x[1])], - _cEe_]]} - var EnfantLePlusAge=[0]; - function embed_enfant_le_plus_age(x) - {return [7,_p_,[0,[0,cst_le_plus_g,embed_enfant(x[1])],0]]} - var PrestationsFamiliales=[0]; - function embed_prestations_familiales(x) - {var - _cD8_= - [0, - [0, - cst_r_gime_outre_mer_l751_1, - caml_call1(Runtime_ocaml_Runtime[12],x[4])], - 0], - _cD9_= - [0, - [0,cst_ge_l512_3_2,caml_call1(Runtime_ocaml_Runtime[17],x[3])], - _cD8_], - _cD__= - [0, - [0,cst_conditions_hors_ge,caml_call1(Runtime_ocaml_Runtime[10],x[2])], - _cD9_]; - return [7, - _q_, - [0, - [0,cst_droit_ouvert,caml_call1(Runtime_ocaml_Runtime[10],x[1])], - _cD__]]} - var PrestationsFamilialesIn=[0]; - function embed_prestations_familiales_i(x) - {var - _cD6_=[0,[0,cst_r_sidence_in,embed_collectivite(x[3])],0], - _cD7_= - [0, - [0,cst_prestation_courante_in,embed_element_prestations_fami(x[2])], - _cD6_]; - return [7, - _r_, - [0, - [0, - cst_date_courante_in, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _cD7_]]} - var AllocationFamilialesAvril2008I=[0]; - function embed_allocation_familiales_av$0(param){return 0} - var EnfantLePlusAgeIn=[0]; - function embed_enfant_le_plus_age_in(x) - {return [7, - _s_, - [0, - [0, - cst_enfants_in, - caml_call2(Runtime_ocaml_Runtime[18],embed_enfant,x[1])], - 0]]} - var AllocationsFamilialesIn=[0]; - function embed_allocations_familiales_i(x) - {var - _cD0_= - [0, - [0, - cst_avait_enfant_charge_avant_, - caml_call1(Runtime_ocaml_Runtime[12],x[7])], - 0], - _cD1_= - [0, - [0, - cst_enfants_charge_in, - caml_call2(Runtime_ocaml_Runtime[18],embed_enfant,x[6])], - _cD0_], - _cD2_= - [0, - [0,cst_date_courante_in$0,caml_call1(Runtime_ocaml_Runtime[16],x[5])], - _cD1_], - _cD3_=[0,[0,cst_r_sidence_in$0,embed_collectivite(x[4])],_cD2_], - _cD4_= - [0, - [0, - cst_ressources_m_nage_in, - caml_call1(Runtime_ocaml_Runtime[13],x[3])], - _cD3_], - _cD5_= - [0, - [0, - cst_personne_charge_effective_, - caml_call1(Runtime_ocaml_Runtime[12],x[2])], - _cD4_]; - return [7, - _t_, - [0, - [0, - cst_personne_charge_effective_$0, - caml_call1(Runtime_ocaml_Runtime[12],x[1])], - _cD5_]]} - var VerificationAgeInferieurOuEgal$0=[0]; - function embed_verification_age_inferie$0(x) - {var - _cDY_= - [0,[0,cst_ann_es_in,caml_call1(Runtime_ocaml_Runtime[17],x[3])],0], - _cDZ_= - [0, - [0,cst_date_courante_in$1,caml_call1(Runtime_ocaml_Runtime[16],x[2])], - _cDY_]; - return [7, - _u_, - [0, - [0, - cst_date_naissance_in, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _cDZ_]]} - var VerificationAgeSuperieurAIn=[0]; - function embed_verification_age_superie$0(x) - {var - _cDW_= - [0,[0,cst_ann_es_in$0,caml_call1(Runtime_ocaml_Runtime[17],x[3])],0], - _cDX_= - [0, - [0,cst_date_courante_in$2,caml_call1(Runtime_ocaml_Runtime[16],x[2])], - _cDW_]; - return [7, - _v_, - [0, - [0, - cst_date_naissance_in$0, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _cDX_]]} - var SmicIn=[0]; - function embed_smic_in(x) - {var _cDV_=[0,[0,cst_r_sidence_in$1,embed_collectivite(x[2])],0]; - return [7, - _w_, - [0, - [0, - cst_date_courante_in$3, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _cDV_]]} - var BaseMensuelleAllocationsFamili$0=[0]; - function embed_base_mensuelle_allocatio$0(x) - {return [7, - _x_, - [0, - [0, - cst_date_courante_in$4, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - 0]]} - var InterfaceAllocationsFamiliales$0=[0]; - function embed_interface_allocations_fa$0(x) - {var - _cDP_= - [0, - [0, - cst_i_avait_enfant_charge_avan, - caml_call1(Runtime_ocaml_Runtime[12],x[7])], - 0], - _cDQ_= - [0, - [0, - cst_i_personne_charge_effectiv, - caml_call1(Runtime_ocaml_Runtime[12],x[6])], - _cDP_], - _cDR_= - [0, - [0, - cst_i_personne_charge_effectiv$0, - caml_call1(Runtime_ocaml_Runtime[12],x[5])], - _cDQ_], - _cDS_=[0,[0,cst_i_r_sidence_in,embed_collectivite(x[4])],_cDR_], - _cDT_= - [0, - [0, - cst_i_ressources_m_nage_in, - caml_call1(Runtime_ocaml_Runtime[13],x[3])], - _cDS_], - _cDU_= - [0, - [0, - cst_i_enfants_in, - caml_call2(Runtime_ocaml_Runtime[18],embed_enfant_entree,x[2])], - _cDT_]; - return [7, - _y_, - [0, - [0, - cst_i_date_courante_in, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _cDU_]]} - function allocation_familiales_avril200(allocation_familiales_avril200) - {try - {var - _cDL_= - function(param){return caml_call3(Runtime_ocaml_Runtime[60],16,0,0)}, - _cDM_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_A_,1)}, - _cDN_=caml_call4(Runtime_ocaml_Runtime[63],_B_,[0],_cDM_,_cDL_)} - catch(_cDO_) - {_cDO_ = caml_wrap_exception(_cDO_); - if(_cDO_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_z_]; - throw _cDO_} - var - age_minimum_alinea_1_l521_3= - caml_call3 - (Runtime_ocaml_Runtime[28],_C_,Runtime_ocaml_Runtime[17],_cDN_); - return [0,age_minimum_alinea_1_l521_3]} - function enfant_le_plus_age(enfant_le_plus_age_in) - {var enfants=enfant_le_plus_age_in[1]; - try - {var - _cDD_= - function(param) - {var - _cDH_=caml_call3(Runtime_ocaml_Runtime[57],2999,12,31), - _cDI_=caml_call1(Runtime_ocaml_Runtime[31],cst_0), - _cDJ_= - [0, - caml_call1(Runtime_ocaml_Runtime[46],cst_1), - _F_, - _cDI_, - _cDH_, - _E_, - 0, - 0]; - function _cDK_(potentiel_plus_age_1,potentiel_plus_age_2) - {return caml_call2 - (Runtime_ocaml_Runtime[115], - potentiel_plus_age_1[4], - potentiel_plus_age_2[4]) - ?potentiel_plus_age_1 - :potentiel_plus_age_2} - return caml_call3(Runtime_ocaml_Runtime[88],_cDK_,_cDJ_,enfants)}, - _cDE_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_G_,1)}, - _cDF_=caml_call4(Runtime_ocaml_Runtime[63],_H_,[0],_cDE_,_cDD_)} - catch(_cDG_) - {_cDG_ = caml_wrap_exception(_cDG_); - if(_cDG_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_D_]; - throw _cDG_} - var - le_plus_age= - caml_call3(Runtime_ocaml_Runtime[28],_I_,embed_enfant,_cDF_); - return [0,le_plus_age]} - function verification_age_inferieur_ou_(verification_age_inferieur_ou_) - {var - date_naissance=verification_age_inferieur_ou_[1], - date_courante=verification_age_inferieur_ou_[2], - annees=verification_age_inferieur_ou_[3]; - try - {var - _cDy_= - function(param) - {var - _cDC_= - caml_call3(Runtime_ocaml_Runtime[94],0,date_naissance,annees); - return caml_call2(Runtime_ocaml_Runtime[120],_cDC_,date_courante)}, - _cDz_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_K_,1)}, - _cDA_=caml_call4(Runtime_ocaml_Runtime[63],_L_,[0],_cDz_,_cDy_)} - catch(_cDB_) - {_cDB_ = caml_wrap_exception(_cDB_); - if(_cDB_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_J_]; - throw _cDB_} - var - est_inferieur_ou_egal= - caml_call3 - (Runtime_ocaml_Runtime[28],_M_,Runtime_ocaml_Runtime[12],_cDA_); - return [0,est_inferieur_ou_egal]} - function verification_age_superieur_a(verification_age_superieur_a_i) - {var - date_naissance=verification_age_superieur_a_i[1], - date_courante=verification_age_superieur_a_i[2], - annees=verification_age_superieur_a_i[3]; - try - {var - _cDt_= - function(param) - {var - _cDx_= - caml_call3(Runtime_ocaml_Runtime[94],0,date_naissance,annees); - return caml_call2(Runtime_ocaml_Runtime[125],_cDx_,date_courante)}, - _cDu_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_O_,1)}, - _cDv_=caml_call4(Runtime_ocaml_Runtime[63],_P_,[0],_cDu_,_cDt_)} - catch(_cDw_) - {_cDw_ = caml_wrap_exception(_cDw_); - if(_cDw_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_N_]; - throw _cDw_} - var - est_superieur= - caml_call3 - (Runtime_ocaml_Runtime[28],_Q_,Runtime_ocaml_Runtime[12],_cDv_); - return [0,est_superieur]} - function smic(smic_in) - {var date_courante=smic_in[1],residence=smic_in[2]; - try - {var - _czK_=function(param){throw Runtime_ocaml_Runtime[2]}, - _czL_=function(param){return 0}, - _czM_= - function(param) - {function _cDn_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_851)} - function _cDo_(param) - {var - _cDp_=caml_call2(Runtime_ocaml_Runtime[86],residence,_S_), - _cDq_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _cDr_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cDq_), - _cDs_=caml_call2(Runtime_ocaml_Runtime[83],_cDr_,_cDp_); - return caml_call2(Runtime_ocaml_Runtime[29],_T_,_cDs_)} - return caml_call4(Runtime_ocaml_Runtime[63],_U_,[0],_cDo_,_cDn_)}, - _czN_= - function(param) - {function _cC5_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1127)} - function _cC6_(param) - {var - _cC7_=caml_call2(Runtime_ocaml_Runtime[86],residence,_V_), - _cC8_=caml_call2(Runtime_ocaml_Runtime[86],residence,_W_), - _cC9_=caml_call2(Runtime_ocaml_Runtime[84],_cC8_,_cC7_), - _cC__=caml_call2(Runtime_ocaml_Runtime[86],residence,_X_), - _cC$_=caml_call2(Runtime_ocaml_Runtime[84],_cC__,_cC9_), - _cDa_=caml_call2(Runtime_ocaml_Runtime[86],residence,_Y_), - _cDb_=caml_call2(Runtime_ocaml_Runtime[84],_cDa_,_cC$_), - _cDc_=caml_call2(Runtime_ocaml_Runtime[86],residence,_Z_), - _cDd_=caml_call2(Runtime_ocaml_Runtime[84],_cDc_,_cDb_), - _cDe_=caml_call2(Runtime_ocaml_Runtime[86],residence,___), - _cDf_=caml_call2(Runtime_ocaml_Runtime[84],_cDe_,_cDd_), - _cDg_=caml_call2(Runtime_ocaml_Runtime[86],residence,_$_), - _cDh_=caml_call2(Runtime_ocaml_Runtime[84],_cDg_,_cDf_), - _cDi_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aa_), - _cDj_=caml_call2(Runtime_ocaml_Runtime[84],_cDi_,_cDh_), - _cDk_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _cDl_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cDk_), - _cDm_=caml_call2(Runtime_ocaml_Runtime[83],_cDl_,_cDj_); - return caml_call2(Runtime_ocaml_Runtime[29],_ab_,_cDm_)} - return caml_call4(Runtime_ocaml_Runtime[63],_ac_,[0],_cC6_,_cC5_)}, - _czO_= - function(param) - {function _cCW_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_835)} - function _cCX_(param) - {var - _cCY_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ad_), - _cCZ_=caml_call3(Runtime_ocaml_Runtime[57],2022,12,31), - _cC0_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cCZ_), - _cC1_=caml_call2(Runtime_ocaml_Runtime[83],_cC0_,_cCY_), - _cC2_=caml_call3(Runtime_ocaml_Runtime[57],2022,8,1), - _cC3_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cC2_), - _cC4_=caml_call2(Runtime_ocaml_Runtime[83],_cC3_,_cC1_); - return caml_call2(Runtime_ocaml_Runtime[29],_ae_,_cC4_)} - return caml_call4(Runtime_ocaml_Runtime[63],_af_,[0],_cCX_,_cCW_)}, - _czP_= - function(param) - {function _cCz_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1107)} - function _cCA_(param) - {var - _cCB_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ag_), - _cCC_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ah_), - _cCD_=caml_call2(Runtime_ocaml_Runtime[84],_cCC_,_cCB_), - _cCE_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ai_), - _cCF_=caml_call2(Runtime_ocaml_Runtime[84],_cCE_,_cCD_), - _cCG_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aj_), - _cCH_=caml_call2(Runtime_ocaml_Runtime[84],_cCG_,_cCF_), - _cCI_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ak_), - _cCJ_=caml_call2(Runtime_ocaml_Runtime[84],_cCI_,_cCH_), - _cCK_=caml_call2(Runtime_ocaml_Runtime[86],residence,_al_), - _cCL_=caml_call2(Runtime_ocaml_Runtime[84],_cCK_,_cCJ_), - _cCM_=caml_call2(Runtime_ocaml_Runtime[86],residence,_am_), - _cCN_=caml_call2(Runtime_ocaml_Runtime[84],_cCM_,_cCL_), - _cCO_=caml_call2(Runtime_ocaml_Runtime[86],residence,_an_), - _cCP_=caml_call2(Runtime_ocaml_Runtime[84],_cCO_,_cCN_), - _cCQ_=caml_call3(Runtime_ocaml_Runtime[57],2022,12,31), - _cCR_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cCQ_), - _cCS_=caml_call2(Runtime_ocaml_Runtime[83],_cCR_,_cCP_), - _cCT_=caml_call3(Runtime_ocaml_Runtime[57],2022,8,1), - _cCU_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cCT_), - _cCV_=caml_call2(Runtime_ocaml_Runtime[83],_cCU_,_cCS_); - return caml_call2(Runtime_ocaml_Runtime[29],_ao_,_cCV_)} - return caml_call4(Runtime_ocaml_Runtime[63],_ap_,[0],_cCA_,_cCz_)}, - _czQ_= - function(param) - {function _cCq_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_819)} - function _cCr_(param) - {var - _cCs_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aq_), - _cCt_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,31), - _cCu_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cCt_), - _cCv_=caml_call2(Runtime_ocaml_Runtime[83],_cCu_,_cCs_), - _cCw_=caml_call3(Runtime_ocaml_Runtime[57],2022,5,1), - _cCx_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cCw_), - _cCy_=caml_call2(Runtime_ocaml_Runtime[83],_cCx_,_cCv_); - return caml_call2(Runtime_ocaml_Runtime[29],_ar_,_cCy_)} - return caml_call4(Runtime_ocaml_Runtime[63],_as_,[0],_cCr_,_cCq_)}, - _czR_= - function(param) - {function _cB5_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1085)} - function _cB6_(param) - {var - _cB7_=caml_call2(Runtime_ocaml_Runtime[86],residence,_at_), - _cB8_=caml_call2(Runtime_ocaml_Runtime[86],residence,_au_), - _cB9_=caml_call2(Runtime_ocaml_Runtime[84],_cB8_,_cB7_), - _cB__=caml_call2(Runtime_ocaml_Runtime[86],residence,_av_), - _cB$_=caml_call2(Runtime_ocaml_Runtime[84],_cB__,_cB9_), - _cCa_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aw_), - _cCb_=caml_call2(Runtime_ocaml_Runtime[84],_cCa_,_cB$_), - _cCc_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ax_), - _cCd_=caml_call2(Runtime_ocaml_Runtime[84],_cCc_,_cCb_), - _cCe_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ay_), - _cCf_=caml_call2(Runtime_ocaml_Runtime[84],_cCe_,_cCd_), - _cCg_=caml_call2(Runtime_ocaml_Runtime[86],residence,_az_), - _cCh_=caml_call2(Runtime_ocaml_Runtime[84],_cCg_,_cCf_), - _cCi_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aA_), - _cCj_=caml_call2(Runtime_ocaml_Runtime[84],_cCi_,_cCh_), - _cCk_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,31), - _cCl_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cCk_), - _cCm_=caml_call2(Runtime_ocaml_Runtime[83],_cCl_,_cCj_), - _cCn_=caml_call3(Runtime_ocaml_Runtime[57],2022,5,1), - _cCo_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cCn_), - _cCp_=caml_call2(Runtime_ocaml_Runtime[83],_cCo_,_cCm_); - return caml_call2(Runtime_ocaml_Runtime[29],_aB_,_cCp_)} - return caml_call4(Runtime_ocaml_Runtime[63],_aC_,[0],_cB6_,_cB5_)}, - _czS_= - function(param) - {function _cBW_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_798)} - function _cBX_(param) - {var - _cBY_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aD_), - _cBZ_=caml_call3(Runtime_ocaml_Runtime[57],2022,4,30), - _cB0_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cBZ_), - _cB1_=caml_call2(Runtime_ocaml_Runtime[83],_cB0_,_cBY_), - _cB2_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _cB3_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cB2_), - _cB4_=caml_call2(Runtime_ocaml_Runtime[83],_cB3_,_cB1_); - return caml_call2(Runtime_ocaml_Runtime[29],_aE_,_cB4_)} - return caml_call4(Runtime_ocaml_Runtime[63],_aF_,[0],_cBX_,_cBW_)}, - _czT_= - function(param) - {function _cBz_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1057)} - function _cBA_(param) - {var - _cBB_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aG_), - _cBC_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aH_), - _cBD_=caml_call2(Runtime_ocaml_Runtime[84],_cBC_,_cBB_), - _cBE_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aI_), - _cBF_=caml_call2(Runtime_ocaml_Runtime[84],_cBE_,_cBD_), - _cBG_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aJ_), - _cBH_=caml_call2(Runtime_ocaml_Runtime[84],_cBG_,_cBF_), - _cBI_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aK_), - _cBJ_=caml_call2(Runtime_ocaml_Runtime[84],_cBI_,_cBH_), - _cBK_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aL_), - _cBL_=caml_call2(Runtime_ocaml_Runtime[84],_cBK_,_cBJ_), - _cBM_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aM_), - _cBN_=caml_call2(Runtime_ocaml_Runtime[84],_cBM_,_cBL_), - _cBO_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aN_), - _cBP_=caml_call2(Runtime_ocaml_Runtime[84],_cBO_,_cBN_), - _cBQ_=caml_call3(Runtime_ocaml_Runtime[57],2022,4,30), - _cBR_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cBQ_), - _cBS_=caml_call2(Runtime_ocaml_Runtime[83],_cBR_,_cBP_), - _cBT_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _cBU_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cBT_), - _cBV_=caml_call2(Runtime_ocaml_Runtime[83],_cBU_,_cBS_); - return caml_call2(Runtime_ocaml_Runtime[29],_aO_,_cBV_)} - return caml_call4(Runtime_ocaml_Runtime[63],_aP_,[0],_cBA_,_cBz_)}, - _czU_= - function(param) - {function _cBq_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_774)} - function _cBr_(param) - {var - _cBs_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aQ_), - _cBt_=caml_call3(Runtime_ocaml_Runtime[57],2021,12,31), - _cBu_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cBt_), - _cBv_=caml_call2(Runtime_ocaml_Runtime[83],_cBu_,_cBs_), - _cBw_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), - _cBx_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cBw_), - _cBy_=caml_call2(Runtime_ocaml_Runtime[83],_cBx_,_cBv_); - return caml_call2(Runtime_ocaml_Runtime[29],_aR_,_cBy_)} - return caml_call4(Runtime_ocaml_Runtime[63],_aS_,[0],_cBr_,_cBq_)}, - _czV_= - function(param) - {function _cA5_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1025)} - function _cA6_(param) - {var - _cA7_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aT_), - _cA8_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aU_), - _cA9_=caml_call2(Runtime_ocaml_Runtime[84],_cA8_,_cA7_), - _cA__=caml_call2(Runtime_ocaml_Runtime[86],residence,_aV_), - _cA$_=caml_call2(Runtime_ocaml_Runtime[84],_cA__,_cA9_), - _cBa_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aW_), - _cBb_=caml_call2(Runtime_ocaml_Runtime[84],_cBa_,_cA$_), - _cBc_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aX_), - _cBd_=caml_call2(Runtime_ocaml_Runtime[84],_cBc_,_cBb_), - _cBe_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aY_), - _cBf_=caml_call2(Runtime_ocaml_Runtime[84],_cBe_,_cBd_), - _cBg_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aZ_), - _cBh_=caml_call2(Runtime_ocaml_Runtime[84],_cBg_,_cBf_), - _cBi_=caml_call2(Runtime_ocaml_Runtime[86],residence,_a0_), - _cBj_=caml_call2(Runtime_ocaml_Runtime[84],_cBi_,_cBh_), - _cBk_=caml_call3(Runtime_ocaml_Runtime[57],2021,12,31), - _cBl_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cBk_), - _cBm_=caml_call2(Runtime_ocaml_Runtime[83],_cBl_,_cBj_), - _cBn_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), - _cBo_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cBn_), - _cBp_=caml_call2(Runtime_ocaml_Runtime[83],_cBo_,_cBm_); - return caml_call2(Runtime_ocaml_Runtime[29],_a1_,_cBp_)} - return caml_call4(Runtime_ocaml_Runtime[63],_a2_,[0],_cA6_,_cA5_)}, - _czW_= - function(param) - {function _cAW_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_766)} - function _cAX_(param) - {var - _cAY_=caml_call2(Runtime_ocaml_Runtime[86],residence,_a3_), - _cAZ_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), - _cA0_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cAZ_), - _cA1_=caml_call2(Runtime_ocaml_Runtime[83],_cA0_,_cAY_), - _cA2_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _cA3_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cA2_), - _cA4_=caml_call2(Runtime_ocaml_Runtime[83],_cA3_,_cA1_); - return caml_call2(Runtime_ocaml_Runtime[29],_a4_,_cA4_)} - return caml_call4(Runtime_ocaml_Runtime[63],_a5_,[0],_cAX_,_cAW_)}, - _czX_= - function(param) - {function _cAz_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1015)} - function _cAA_(param) - {var - _cAB_=caml_call2(Runtime_ocaml_Runtime[86],residence,_a6_), - _cAC_=caml_call2(Runtime_ocaml_Runtime[86],residence,_a7_), - _cAD_=caml_call2(Runtime_ocaml_Runtime[84],_cAC_,_cAB_), - _cAE_=caml_call2(Runtime_ocaml_Runtime[86],residence,_a8_), - _cAF_=caml_call2(Runtime_ocaml_Runtime[84],_cAE_,_cAD_), - _cAG_=caml_call2(Runtime_ocaml_Runtime[86],residence,_a9_), - _cAH_=caml_call2(Runtime_ocaml_Runtime[84],_cAG_,_cAF_), - _cAI_=caml_call2(Runtime_ocaml_Runtime[86],residence,_a__), - _cAJ_=caml_call2(Runtime_ocaml_Runtime[84],_cAI_,_cAH_), - _cAK_=caml_call2(Runtime_ocaml_Runtime[86],residence,_a$_), - _cAL_=caml_call2(Runtime_ocaml_Runtime[84],_cAK_,_cAJ_), - _cAM_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ba_), - _cAN_=caml_call2(Runtime_ocaml_Runtime[84],_cAM_,_cAL_), - _cAO_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bb_), - _cAP_=caml_call2(Runtime_ocaml_Runtime[84],_cAO_,_cAN_), - _cAQ_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), - _cAR_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cAQ_), - _cAS_=caml_call2(Runtime_ocaml_Runtime[83],_cAR_,_cAP_), - _cAT_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _cAU_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cAT_), - _cAV_=caml_call2(Runtime_ocaml_Runtime[83],_cAU_,_cAS_); - return caml_call2(Runtime_ocaml_Runtime[29],_bc_,_cAV_)} - return caml_call4(Runtime_ocaml_Runtime[63],_bd_,[0],_cAA_,_cAz_)}, - _czY_= - function(param) - {function _cAq_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_757)} - function _cAr_(param) - {var - _cAs_=caml_call2(Runtime_ocaml_Runtime[86],residence,_be_), - _cAt_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), - _cAu_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cAt_), - _cAv_=caml_call2(Runtime_ocaml_Runtime[83],_cAu_,_cAs_), - _cAw_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _cAx_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cAw_), - _cAy_=caml_call2(Runtime_ocaml_Runtime[83],_cAx_,_cAv_); - return caml_call2(Runtime_ocaml_Runtime[29],_bf_,_cAy_)} - return caml_call4(Runtime_ocaml_Runtime[63],_bg_,[0],_cAr_,_cAq_)}, - _czZ_= + x$1 = x[1], + _Ln_ = [0, - function(param) - {function _cz5_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1003)} - function _cz6_(param) - {var - _cz7_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bh_), - _cz8_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bi_), - _cz9_=caml_call2(Runtime_ocaml_Runtime[84],_cz8_,_cz7_), - _cz__=caml_call2(Runtime_ocaml_Runtime[86],residence,_bj_), - _cz$_=caml_call2(Runtime_ocaml_Runtime[84],_cz__,_cz9_), - _cAa_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bk_), - _cAb_=caml_call2(Runtime_ocaml_Runtime[84],_cAa_,_cz$_), - _cAc_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bl_), - _cAd_=caml_call2(Runtime_ocaml_Runtime[84],_cAc_,_cAb_), - _cAe_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bm_), - _cAf_=caml_call2(Runtime_ocaml_Runtime[84],_cAe_,_cAd_), - _cAg_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bn_), - _cAh_=caml_call2(Runtime_ocaml_Runtime[84],_cAg_,_cAf_), - _cAi_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bo_), - _cAj_=caml_call2(Runtime_ocaml_Runtime[84],_cAi_,_cAh_), - _cAk_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), - _cAl_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cAk_), - _cAm_=caml_call2(Runtime_ocaml_Runtime[83],_cAl_,_cAj_), - _cAn_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _cAo_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cAn_), - _cAp_=caml_call2(Runtime_ocaml_Runtime[83],_cAo_,_cAm_); - return caml_call2(Runtime_ocaml_Runtime[29],_bp_,_cAp_)} - return caml_call4(Runtime_ocaml_Runtime[63],_bq_,[0],_cz6_,_cz5_)}, - _czY_, - _czX_, - _czW_, - _czV_, - _czU_, - _czT_, - _czS_, - _czR_, - _czQ_, - _czP_, - _czO_, - _czN_, - _czM_], - _cz0_=caml_call4(Runtime_ocaml_Runtime[63],_br_,_czZ_,_czL_,_czK_)} - catch(_cz4_) - {_cz4_ = caml_wrap_exception(_cz4_); - if(_cz4_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_R_]; - throw _cz4_} - var - brut_horaire= - caml_call3 - (Runtime_ocaml_Runtime[28],_bs_,Runtime_ocaml_Runtime[13],_cz0_); - try - {var - _cz1_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _cz2_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cz1_)} - catch(_cz3_) - {_cz3_ = caml_wrap_exception(_cz3_); - if(_cz3_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_bt_]; - throw _cz3_} - if(_cz2_)return [0,brut_horaire]; - throw [0,Runtime_ocaml_Runtime[3],_bu_]} - function base_mensuelle_allocations_fam(base_mensuelle_allocations_fam) - {var date_courante=base_mensuelle_allocations_fam[1]; - try - {var - _cza_=function(param){throw Runtime_ocaml_Runtime[2]}, - _czb_=function(param){return 0}, - _czc_= - function(param) - {function _czG_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_42228)} - function _czH_(param) - {var - _czI_=caml_call3(Runtime_ocaml_Runtime[57],2022,4,1), - _czJ_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_czI_); - return caml_call2(Runtime_ocaml_Runtime[29],_bw_,_czJ_)} - return caml_call4(Runtime_ocaml_Runtime[63],_bx_,[0],_czH_,_czG_)}, - _czd_= - function(param) - {function _czz_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_41481)} - function _czA_(param) - {var - _czB_=caml_call3(Runtime_ocaml_Runtime[57],2022,4,1), - _czC_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_czB_), - _czD_=caml_call3(Runtime_ocaml_Runtime[57],2021,4,1), - _czE_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_czD_), - _czF_=caml_call2(Runtime_ocaml_Runtime[83],_czE_,_czC_); - return caml_call2(Runtime_ocaml_Runtime[29],_by_,_czF_)} - return caml_call4(Runtime_ocaml_Runtime[63],_bz_,[0],_czA_,_czz_)}, - _cze_= - function(param) - {function _czs_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_41440)} - function _czt_(param) - {var - _czu_=caml_call3(Runtime_ocaml_Runtime[57],2021,4,1), - _czv_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_czu_), - _czw_=caml_call3(Runtime_ocaml_Runtime[57],2020,4,1), - _czx_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_czw_), - _czy_=caml_call2(Runtime_ocaml_Runtime[83],_czx_,_czv_); - return caml_call2(Runtime_ocaml_Runtime[29],_bA_,_czy_)} - return caml_call4(Runtime_ocaml_Runtime[63],_bB_,[0],_czt_,_czs_)}, - _czf_= + cst_GardeAltern_eAllocataireUn, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + case 2: + var + x$2 = x[1], + _Ln_ = [0, - function(param) - {function _czl_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_41316)} - function _czm_(param) - {var - _czn_=caml_call3(Runtime_ocaml_Runtime[57],2020,4,1), - _czo_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_czn_), - _czp_=caml_call3(Runtime_ocaml_Runtime[57],2019,4,1), - _czq_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_czp_), - _czr_=caml_call2(Runtime_ocaml_Runtime[83],_czq_,_czo_); - return caml_call2(Runtime_ocaml_Runtime[29],_bC_,_czr_)} - return caml_call4(Runtime_ocaml_Runtime[63],_bD_,[0],_czm_,_czl_)}, - _cze_, - _czd_, - _czc_], - _czg_=caml_call4(Runtime_ocaml_Runtime[63],_bE_,_czf_,_czb_,_cza_)} - catch(_czk_) - {_czk_ = caml_wrap_exception(_czk_); - if(_czk_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_bv_]; - throw _czk_} - var - montant= - caml_call3 - (Runtime_ocaml_Runtime[28],_bF_,Runtime_ocaml_Runtime[13],_czg_); - try - {var - _czh_=caml_call3(Runtime_ocaml_Runtime[57],2019,4,1), - _czi_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_czh_)} - catch(_czj_) - {_czj_ = caml_wrap_exception(_czj_); - if(_czj_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_bG_]; - throw _czj_} - if(_czi_)return [0,montant]; - throw [0,Runtime_ocaml_Runtime[3],_bH_]} - function prestations_familiales(prestations_familiales_in) - {var - date_courante=prestations_familiales_in[1], - residence=prestations_familiales_in[3]; - try - {var - _cxP_= - function(param){return caml_call3(Runtime_ocaml_Runtime[60],20,0,0)}, - _cxQ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_bJ_,1)}, - _cxR_=caml_call4(Runtime_ocaml_Runtime[63],_bK_,[0],_cxQ_,_cxP_)} - catch(_cy$_) - {_cy$_ = caml_wrap_exception(_cy$_); - if(_cy$_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_bI_]; - throw _cy$_} - var - age_l512_3_2= - caml_call3 - (Runtime_ocaml_Runtime[28],_bL_,Runtime_ocaml_Runtime[17],_cxR_); - try - {var - _cxS_=function(param){return date_courante}, - _cxT_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_bN_,1)}, - _cxU_=caml_call4(Runtime_ocaml_Runtime[63],_bO_,[0],_cxT_,_cxS_), - smic_dot_date_courante= - caml_call3 - (Runtime_ocaml_Runtime[28],_bP_,Runtime_ocaml_Runtime[16],_cxU_)} - catch(_cy__) - {_cy__ = caml_wrap_exception(_cy__); - if(_cy__ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_bM_]; - throw _cy__} - try - {var - _cxV_=function(param){return residence}, - _cxW_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_bR_,1)}, - _cxX_=caml_call4(Runtime_ocaml_Runtime[63],_bS_,[0],_cxW_,_cxV_), - smic_dot_residence= - caml_call3(Runtime_ocaml_Runtime[28],_bT_,embed_collectivite,_cxX_)} - catch(_cy9_) - {_cy9_ = caml_wrap_exception(_cy9_); - if(_cy9_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_bQ_]; - throw _cy9_} - var - _cxY_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_bU_,smic), - [0,smic_dot_date_courante,smic_dot_residence]), - result=caml_call2(Runtime_ocaml_Runtime[27],_bV_,_cxY_), - smic_dot_brut_horaire=result[1]; - try - {var - _cxZ_=function(param){return 0}, - _cx0_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_bX_,1)}, - _cx1_= + cst_EffectiveEtPermanente, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + break; + case 3: + var + x$3 = x[1], + _Ln_ = [0, - function(param) - {function _cyW_(param){return 1} - function _cyX_(param) - {var - _cyY_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bY_), - _cyZ_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bZ_), - _cy0_=caml_call2(Runtime_ocaml_Runtime[84],_cyZ_,_cyY_), - _cy1_=caml_call2(Runtime_ocaml_Runtime[86],residence,_b0_), - _cy2_=caml_call2(Runtime_ocaml_Runtime[84],_cy1_,_cy0_), - _cy3_=caml_call2(Runtime_ocaml_Runtime[86],residence,_b1_), - _cy4_=caml_call2(Runtime_ocaml_Runtime[84],_cy3_,_cy2_), - _cy5_=caml_call2(Runtime_ocaml_Runtime[86],residence,_b2_), - _cy6_=caml_call2(Runtime_ocaml_Runtime[84],_cy5_,_cy4_), - _cy7_=caml_call2(Runtime_ocaml_Runtime[86],residence,_b3_), - _cy8_=caml_call2(Runtime_ocaml_Runtime[84],_cy7_,_cy6_); - return caml_call2(Runtime_ocaml_Runtime[29],_b4_,_cy8_)} - return caml_call4(Runtime_ocaml_Runtime[63],_b5_,[0],_cyX_,_cyW_)}], - _cx2_=caml_call4(Runtime_ocaml_Runtime[63],_b6_,_cx1_,_cx0_,_cxZ_)} - catch(_cyV_) - {_cyV_ = caml_wrap_exception(_cyV_); - if(_cyV_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_bW_]; - throw _cyV_} - var - regime_outre_mer_l751_1= + cst_ServicesSociauxAllocationV, + caml_call1(Runtime_ocaml_Runtime[11], x$3)]; + break; + default: + var + x$4 = x[1], + _Ln_ = + [0, + cst_ServicesSociauxAllocationV$0, + caml_call1(Runtime_ocaml_Runtime[11], x$4)]; + } + return [6, _a_, _Ln_]; + } + var SituationObligationScolaire = [0]; + function embed_situation_obligation_sco(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _Lm_ = [0, cst_Avant, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _Lm_ = [0, cst_Pendant, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + default: + var + x$2 = x[1], + _Lm_ = [0, cst_Apr_s, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + } + return [6, _b_, _Lm_]; + } + var PriseEnCompte = [0]; + function embed_prise_en_compte(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _Ll_ = [0, cst_Compl_te, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _Ll_ = [0, cst_Partag_e, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + default: + var + x$2 = x[1], + _Ll_ = [0, cst_Z_ro, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + } + return [6, _c_, _Ll_]; + } + var VersementAllocations = [0]; + function embed_versement_allocations(x){ + if(0 === x[0]) + var + x$0 = x[1], + _Lk_ = [0, cst_Normal, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + else + var + x$1 = x[1], + _Lk_ = + [0, + cst_AllocationVers_eAuxService, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + return [6, _d_, _Lk_]; + } + var ElementPrestationsFamiliales = [0]; + function embed_element_prestations_fami(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _Lj_ = + [0, + cst_PrestationAccueilJeuneEnfa, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _Lj_ = + [0, + cst_AllocationsFamiliales, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + case 2: + var + x$2 = x[1], + _Lj_ = + [0, + cst_Compl_mentFamilial, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + break; + case 3: + var + x$3 = x[1], + _Lj_ = + [0, + cst_AllocationLogement, + caml_call1(Runtime_ocaml_Runtime[11], x$3)]; + break; + case 4: + var + x$4 = x[1], + _Lj_ = + [0, + cst_Allocation_ducationEnfantH, + caml_call1(Runtime_ocaml_Runtime[11], x$4)]; + break; + case 5: + var + x$5 = x[1], + _Lj_ = + [0, + cst_AllocationSoutienFamilial, + caml_call1(Runtime_ocaml_Runtime[11], x$5)]; + break; + case 6: + var + x$6 = x[1], + _Lj_ = + [0, + cst_AllocationRentr_eScolaire, + caml_call1(Runtime_ocaml_Runtime[11], x$6)]; + break; + default: + var + x$7 = x[1], + _Lj_ = + [0, + cst_AllocationJournali_rePrese, + caml_call1(Runtime_ocaml_Runtime[11], x$7)]; + } + return [6, _e_, _Lj_]; + } + var Collectivite = [0]; + function embed_collectivite(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _Li_ = [0, cst_Guadeloupe, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _Li_ = [0, cst_Guyane, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + case 2: + var + x$2 = x[1], + _Li_ = [0, cst_Martinique, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + break; + case 3: + var + x$3 = x[1], + _Li_ = [0, cst_LaR_union, caml_call1(Runtime_ocaml_Runtime[11], x$3)]; + break; + case 4: + var + x$4 = x[1], + _Li_ = + [0, cst_SaintBarth_lemy, caml_call1(Runtime_ocaml_Runtime[11], x$4)]; + break; + case 5: + var + x$5 = x[1], + _Li_ = + [0, cst_SaintMartin, caml_call1(Runtime_ocaml_Runtime[11], x$5)]; + break; + case 6: + var + x$6 = x[1], + _Li_ = [0, cst_M_tropole, caml_call1(Runtime_ocaml_Runtime[11], x$6)]; + break; + case 7: + var + x$7 = x[1], + _Li_ = + [0, + cst_SaintPierreEtMiquelon, + caml_call1(Runtime_ocaml_Runtime[11], x$7)]; + break; + default: + var + x$8 = x[1], + _Li_ = [0, cst_Mayotte, caml_call1(Runtime_ocaml_Runtime[11], x$8)]; + } + return [6, _f_, _Li_]; + } + var AllocationFamilialesAvril2008 = [0]; + function embed_allocation_familiales_av(x){ + return [7, + _g_, + [0, + [0, + cst_ge_minimum_alin_a_1_l521_3, + caml_call1(Runtime_ocaml_Runtime[17], x[1])], + 0]]; + } + var AllocationsFamiliales = [0]; + function embed_allocations_familiales(x){ + return [7, + _h_, + [0, + [0, + cst_montant_vers, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + 0]]; + } + var VerificationAgeInferieurOuEgal = [0]; + function embed_verification_age_inferie(x){ + return [7, + _i_, + [0, + [0, + cst_est_inf_rieur_ou_gal, + caml_call1(Runtime_ocaml_Runtime[12], x[1])], + 0]]; + } + var VerificationAgeSuperieurA = [0]; + function embed_verification_age_superie(x){ + return [7, + _j_, + [0, + [0, + cst_est_sup_rieur, + caml_call1(Runtime_ocaml_Runtime[12], x[1])], + 0]]; + } + var Smic = [0]; + function embed_smic(x){ + return [7, + _k_, + [0, + [0, + cst_brut_horaire, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + 0]]; + } + var BaseMensuelleAllocationsFamili = [0]; + function embed_base_mensuelle_allocatio(x){ + return [7, + _l_, + [0, + [0, cst_montant, caml_call1(Runtime_ocaml_Runtime[13], x[1])], + 0]]; + } + var InterfaceAllocationsFamiliales = [0]; + function embed_interface_allocations_fa(x){ + return [7, + _m_, + [0, + [0, + cst_i_montant_vers, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + 0]]; + } + var EnfantEntree = [0]; + function embed_enfant_entree(x){ + var + _Ld_ = + [0, + [0, + cst_d_b_n_ficie_titre_personne, + caml_call1(Runtime_ocaml_Runtime[12], x[6])], + 0], + _Le_ = + [0, + [0, + cst_d_a_d_j_ouvert_droit_aux_a, + caml_call1(Runtime_ocaml_Runtime[12], x[5])], + _Ld_], + _Lf_ = [0, [0, cst_d_prise_en_charge, embed_prise_en_charge(x[4])], _Le_], + _Lg_ = + [0, + [0, + cst_d_date_de_naissance, + caml_call1(Runtime_ocaml_Runtime[16], x[3])], + _Lf_], + _Lh_ = + [0, + [0, + cst_d_r_muneration_mensuelle, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _Lg_]; + return [7, + _n_, + [0, + [0, + cst_d_identifiant, + caml_call1(Runtime_ocaml_Runtime[14], x[1])], + _Lh_]]; + } + var Enfant = [0]; + function embed_enfant(x){ + var + _K9_ = + [0, + [0, + cst_b_n_ficie_titre_personnel_, + caml_call1(Runtime_ocaml_Runtime[12], x[7])], + 0], + _K__ = + [0, + [0, + cst_a_d_j_ouvert_droit_aux_all, + caml_call1(Runtime_ocaml_Runtime[12], x[6])], + _K9_], + _K$_ = [0, [0, cst_prise_en_charge, embed_prise_en_charge(x[5])], _K__], + _La_ = + [0, + [0, + cst_date_de_naissance, + caml_call1(Runtime_ocaml_Runtime[16], x[4])], + _K$_], + _Lb_ = + [0, + [0, + cst_r_muneration_mensuelle, + caml_call1(Runtime_ocaml_Runtime[13], x[3])], + _La_], + _Lc_ = + [0, + [0, cst_obligation_scolaire, embed_situation_obligation_sco(x[2])], + _Lb_]; + return [7, + _o_, + [0, + [0, cst_identifiant, caml_call1(Runtime_ocaml_Runtime[14], x[1])], + _Lc_]]; + } + var EnfantLePlusAge = [0]; + function embed_enfant_le_plus_age(x){ + return [7, _p_, [0, [0, cst_le_plus_g, embed_enfant(x[1])], 0]]; + } + var PrestationsFamiliales = [0]; + function embed_prestations_familiales(x){ + var + _K6_ = + [0, + [0, + cst_r_gime_outre_mer_l751_1, + caml_call1(Runtime_ocaml_Runtime[12], x[4])], + 0], + _K7_ = + [0, + [0, cst_ge_l512_3_2, caml_call1(Runtime_ocaml_Runtime[17], x[3])], + _K6_], + _K8_ = + [0, + [0, + cst_conditions_hors_ge, + caml_call1(Runtime_ocaml_Runtime[10], x[2])], + _K7_]; + return [7, + _q_, + [0, + [0, + cst_droit_ouvert, + caml_call1(Runtime_ocaml_Runtime[10], x[1])], + _K8_]]; + } + var PrestationsFamilialesIn = [0]; + function embed_prestations_familiales_i(x){ + var + _K4_ = [0, [0, cst_r_sidence_in, embed_collectivite(x[3])], 0], + _K5_ = + [0, + [0, cst_prestation_courante_in, embed_element_prestations_fami(x[2])], + _K4_]; + return [7, + _r_, + [0, + [0, + cst_date_courante_in, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _K5_]]; + } + var AllocationFamilialesAvril2008I = [0]; + function embed_allocation_familiales_av$0(param){return 0;} + var EnfantLePlusAgeIn = [0]; + function embed_enfant_le_plus_age_in(x){ + return [7, + _s_, + [0, + [0, + cst_enfants_in, + caml_call2(Runtime_ocaml_Runtime[18], embed_enfant, x[1])], + 0]]; + } + var AllocationsFamilialesIn = [0]; + function embed_allocations_familiales_i(x){ + var + _KY_ = + [0, + [0, + cst_avait_enfant_charge_avant_, + caml_call1(Runtime_ocaml_Runtime[12], x[7])], + 0], + _KZ_ = + [0, + [0, + cst_enfants_charge_in, + caml_call2(Runtime_ocaml_Runtime[18], embed_enfant, x[6])], + _KY_], + _K0_ = + [0, + [0, + cst_date_courante_in$0, + caml_call1(Runtime_ocaml_Runtime[16], x[5])], + _KZ_], + _K1_ = [0, [0, cst_r_sidence_in$0, embed_collectivite(x[4])], _K0_], + _K2_ = + [0, + [0, + cst_ressources_m_nage_in, + caml_call1(Runtime_ocaml_Runtime[13], x[3])], + _K1_], + _K3_ = + [0, + [0, + cst_personne_charge_effective_, + caml_call1(Runtime_ocaml_Runtime[12], x[2])], + _K2_]; + return [7, + _t_, + [0, + [0, + cst_personne_charge_effective_$0, + caml_call1(Runtime_ocaml_Runtime[12], x[1])], + _K3_]]; + } + var VerificationAgeInferieurOuEgal$0 = [0]; + function embed_verification_age_inferie$0(x){ + var + _KW_ = + [0, [0, cst_ann_es_in, caml_call1(Runtime_ocaml_Runtime[17], x[3])], 0], + _KX_ = + [0, + [0, + cst_date_courante_in$1, + caml_call1(Runtime_ocaml_Runtime[16], x[2])], + _KW_]; + return [7, + _u_, + [0, + [0, + cst_date_naissance_in, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _KX_]]; + } + var VerificationAgeSuperieurAIn = [0]; + function embed_verification_age_superie$0(x){ + var + _KU_ = + [0, + [0, cst_ann_es_in$0, caml_call1(Runtime_ocaml_Runtime[17], x[3])], + 0], + _KV_ = + [0, + [0, + cst_date_courante_in$2, + caml_call1(Runtime_ocaml_Runtime[16], x[2])], + _KU_]; + return [7, + _v_, + [0, + [0, + cst_date_naissance_in$0, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _KV_]]; + } + var SmicIn = [0]; + function embed_smic_in(x){ + var _KT_ = [0, [0, cst_r_sidence_in$1, embed_collectivite(x[2])], 0]; + return [7, + _w_, + [0, + [0, + cst_date_courante_in$3, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _KT_]]; + } + var BaseMensuelleAllocationsFamili$0 = [0]; + function embed_base_mensuelle_allocatio$0(x){ + return [7, + _x_, + [0, + [0, + cst_date_courante_in$4, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + 0]]; + } + var InterfaceAllocationsFamiliales$0 = [0]; + function embed_interface_allocations_fa$0(x){ + var + _KN_ = + [0, + [0, + cst_i_avait_enfant_charge_avan, + caml_call1(Runtime_ocaml_Runtime[12], x[7])], + 0], + _KO_ = + [0, + [0, + cst_i_personne_charge_effectiv, + caml_call1(Runtime_ocaml_Runtime[12], x[6])], + _KN_], + _KP_ = + [0, + [0, + cst_i_personne_charge_effectiv$0, + caml_call1(Runtime_ocaml_Runtime[12], x[5])], + _KO_], + _KQ_ = [0, [0, cst_i_r_sidence_in, embed_collectivite(x[4])], _KP_], + _KR_ = + [0, + [0, + cst_i_ressources_m_nage_in, + caml_call1(Runtime_ocaml_Runtime[13], x[3])], + _KQ_], + _KS_ = + [0, + [0, + cst_i_enfants_in, + caml_call2(Runtime_ocaml_Runtime[18], embed_enfant_entree, x[2])], + _KR_]; + return [7, + _y_, + [0, + [0, + cst_i_date_courante_in, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _KS_]]; + } + function allocation_familiales_avril200(allocation_familiales_avril200){ + try{ + var + _KJ_ = + function(param){ + return caml_call3(Runtime_ocaml_Runtime[60], 16, 0, 0); + }, + _KK_ = + function(param){return caml_call2(Runtime_ocaml_Runtime[29], _A_, 1);}, + _KL_ = caml_call4(Runtime_ocaml_Runtime[63], _B_, [0], _KK_, _KJ_); + } + catch(_KM_){ + var _KI_ = caml_wrap_exception(_KM_); + if(_KI_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[8], _z_], 1); + throw caml_maybe_attach_backtrace(_KI_, 0); + } + var + age_minimum_alinea_1_l521_3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _C_, Runtime_ocaml_Runtime[17], _KL_); + return [0, age_minimum_alinea_1_l521_3]; + } + function enfant_le_plus_age(enfant_le_plus_age_in){ + var enfants = enfant_le_plus_age_in[1]; + try{ + var + _KA_ = + function(param){ + var + _KE_ = caml_call3(Runtime_ocaml_Runtime[57], 2999, 12, 31), + _KF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0), + _KG_ = + [0, + caml_call1(Runtime_ocaml_Runtime[46], cst_1), + _F_, + _KF_, + _KE_, + _E_, + 0, + 0]; + function _KH_(potentiel_plus_age_1, potentiel_plus_age_2){ + return caml_call2 + (Runtime_ocaml_Runtime[115], + potentiel_plus_age_1[4], + potentiel_plus_age_2[4]) + ? potentiel_plus_age_1 + : potentiel_plus_age_2; + } + return caml_call3(Runtime_ocaml_Runtime[88], _KH_, _KG_, enfants); + }, + _KB_ = + function(param){return caml_call2(Runtime_ocaml_Runtime[29], _G_, 1);}, + _KC_ = caml_call4(Runtime_ocaml_Runtime[63], _H_, [0], _KB_, _KA_); + } + catch(_KD_){ + var _Kz_ = caml_wrap_exception(_KD_); + if(_Kz_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[8], _D_], 1); + throw caml_maybe_attach_backtrace(_Kz_, 0); + } + var + le_plus_age = + caml_call3(Runtime_ocaml_Runtime[28], _I_, embed_enfant, _KC_); + return [0, le_plus_age]; + } + function verification_age_inferieur_ou_(verification_age_inferieur_ou_){ + var + date_naissance = verification_age_inferieur_ou_[1], + date_courante = verification_age_inferieur_ou_[2], + annees = verification_age_inferieur_ou_[3]; + try{ + var + _Ku_ = + function(param){ + var + _Ky_ = + caml_call3(Runtime_ocaml_Runtime[94], 0, date_naissance, annees); + return caml_call2(Runtime_ocaml_Runtime[120], _Ky_, date_courante); + }, + _Kv_ = + function(param){return caml_call2(Runtime_ocaml_Runtime[29], _K_, 1);}, + _Kw_ = caml_call4(Runtime_ocaml_Runtime[63], _L_, [0], _Kv_, _Ku_); + } + catch(_Kx_){ + var _Kt_ = caml_wrap_exception(_Kx_); + if(_Kt_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[8], _J_], 1); + throw caml_maybe_attach_backtrace(_Kt_, 0); + } + var + est_inferieur_ou_egal = + caml_call3 + (Runtime_ocaml_Runtime[28], _M_, Runtime_ocaml_Runtime[12], _Kw_); + return [0, est_inferieur_ou_egal]; + } + function verification_age_superieur_a(verification_age_superieur_a_i){ + var + date_naissance = verification_age_superieur_a_i[1], + date_courante = verification_age_superieur_a_i[2], + annees = verification_age_superieur_a_i[3]; + try{ + var + _Ko_ = + function(param){ + var + _Ks_ = + caml_call3(Runtime_ocaml_Runtime[94], 0, date_naissance, annees); + return caml_call2(Runtime_ocaml_Runtime[125], _Ks_, date_courante); + }, + _Kp_ = + function(param){return caml_call2(Runtime_ocaml_Runtime[29], _O_, 1);}, + _Kq_ = caml_call4(Runtime_ocaml_Runtime[63], _P_, [0], _Kp_, _Ko_); + } + catch(_Kr_){ + var _Kn_ = caml_wrap_exception(_Kr_); + if(_Kn_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[8], _N_], 1); + throw caml_maybe_attach_backtrace(_Kn_, 0); + } + var + est_superieur = + caml_call3 + (Runtime_ocaml_Runtime[28], _Q_, Runtime_ocaml_Runtime[12], _Kq_); + return [0, est_superieur]; + } + function smic(smic_in){ + var date_courante = smic_in[1], residence = smic_in[2]; + try{ + var + _GD_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _GE_ = function(param){return 0;}, + _GF_ = + function(param){ + function _Kh_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_851); + } + function _Ki_(param){ + var + _Kj_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _S_), + _Kk_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _Kl_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Kk_), + _Km_ = caml_call2(Runtime_ocaml_Runtime[83], _Kl_, _Kj_); + return caml_call2(Runtime_ocaml_Runtime[29], _T_, _Km_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _U_, [0], _Ki_, _Kh_); + }, + _GG_ = + function(param){ + function _JZ_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1127); + } + function _J0_(param){ + var + _J1_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _V_), + _J2_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _W_), + _J3_ = caml_call2(Runtime_ocaml_Runtime[84], _J2_, _J1_), + _J4_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _X_), + _J5_ = caml_call2(Runtime_ocaml_Runtime[84], _J4_, _J3_), + _J6_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _Y_), + _J7_ = caml_call2(Runtime_ocaml_Runtime[84], _J6_, _J5_), + _J8_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _Z_), + _J9_ = caml_call2(Runtime_ocaml_Runtime[84], _J8_, _J7_), + _J__ = caml_call2(Runtime_ocaml_Runtime[86], residence, ___), + _J$_ = caml_call2(Runtime_ocaml_Runtime[84], _J__, _J9_), + _Ka_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _$_), + _Kb_ = caml_call2(Runtime_ocaml_Runtime[84], _Ka_, _J$_), + _Kc_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aa_), + _Kd_ = caml_call2(Runtime_ocaml_Runtime[84], _Kc_, _Kb_), + _Ke_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _Kf_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Ke_), + _Kg_ = caml_call2(Runtime_ocaml_Runtime[83], _Kf_, _Kd_); + return caml_call2(Runtime_ocaml_Runtime[29], _ab_, _Kg_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _ac_, [0], _J0_, _JZ_); + }, + _GH_ = + function(param){ + function _JQ_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_835); + } + function _JR_(param){ + var + _JS_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ad_), + _JT_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 12, 31), + _JU_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _JT_), + _JV_ = caml_call2(Runtime_ocaml_Runtime[83], _JU_, _JS_), + _JW_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 8, 1), + _JX_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _JW_), + _JY_ = caml_call2(Runtime_ocaml_Runtime[83], _JX_, _JV_); + return caml_call2(Runtime_ocaml_Runtime[29], _ae_, _JY_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _af_, [0], _JR_, _JQ_); + }, + _GI_ = + function(param){ + function _Jt_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1107); + } + function _Ju_(param){ + var + _Jv_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ag_), + _Jw_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ah_), + _Jx_ = caml_call2(Runtime_ocaml_Runtime[84], _Jw_, _Jv_), + _Jy_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ai_), + _Jz_ = caml_call2(Runtime_ocaml_Runtime[84], _Jy_, _Jx_), + _JA_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aj_), + _JB_ = caml_call2(Runtime_ocaml_Runtime[84], _JA_, _Jz_), + _JC_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ak_), + _JD_ = caml_call2(Runtime_ocaml_Runtime[84], _JC_, _JB_), + _JE_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _al_), + _JF_ = caml_call2(Runtime_ocaml_Runtime[84], _JE_, _JD_), + _JG_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _am_), + _JH_ = caml_call2(Runtime_ocaml_Runtime[84], _JG_, _JF_), + _JI_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _an_), + _JJ_ = caml_call2(Runtime_ocaml_Runtime[84], _JI_, _JH_), + _JK_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 12, 31), + _JL_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _JK_), + _JM_ = caml_call2(Runtime_ocaml_Runtime[83], _JL_, _JJ_), + _JN_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 8, 1), + _JO_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _JN_), + _JP_ = caml_call2(Runtime_ocaml_Runtime[83], _JO_, _JM_); + return caml_call2(Runtime_ocaml_Runtime[29], _ao_, _JP_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _ap_, [0], _Ju_, _Jt_); + }, + _GJ_ = + function(param){ + function _Jk_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_819); + } + function _Jl_(param){ + var + _Jm_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aq_), + _Jn_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 31), + _Jo_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _Jn_), + _Jp_ = caml_call2(Runtime_ocaml_Runtime[83], _Jo_, _Jm_), + _Jq_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 5, 1), + _Jr_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Jq_), + _Js_ = caml_call2(Runtime_ocaml_Runtime[83], _Jr_, _Jp_); + return caml_call2(Runtime_ocaml_Runtime[29], _ar_, _Js_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _as_, [0], _Jl_, _Jk_); + }, + _GK_ = + function(param){ + function _IZ_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1085); + } + function _I0_(param){ + var + _I1_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _at_), + _I2_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _au_), + _I3_ = caml_call2(Runtime_ocaml_Runtime[84], _I2_, _I1_), + _I4_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _av_), + _I5_ = caml_call2(Runtime_ocaml_Runtime[84], _I4_, _I3_), + _I6_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aw_), + _I7_ = caml_call2(Runtime_ocaml_Runtime[84], _I6_, _I5_), + _I8_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ax_), + _I9_ = caml_call2(Runtime_ocaml_Runtime[84], _I8_, _I7_), + _I__ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ay_), + _I$_ = caml_call2(Runtime_ocaml_Runtime[84], _I__, _I9_), + _Ja_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _az_), + _Jb_ = caml_call2(Runtime_ocaml_Runtime[84], _Ja_, _I$_), + _Jc_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aA_), + _Jd_ = caml_call2(Runtime_ocaml_Runtime[84], _Jc_, _Jb_), + _Je_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 31), + _Jf_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _Je_), + _Jg_ = caml_call2(Runtime_ocaml_Runtime[83], _Jf_, _Jd_), + _Jh_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 5, 1), + _Ji_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Jh_), + _Jj_ = caml_call2(Runtime_ocaml_Runtime[83], _Ji_, _Jg_); + return caml_call2(Runtime_ocaml_Runtime[29], _aB_, _Jj_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _aC_, [0], _I0_, _IZ_); + }, + _GL_ = + function(param){ + function _IQ_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_798); + } + function _IR_(param){ + var + _IS_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aD_), + _IT_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 4, 30), + _IU_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _IT_), + _IV_ = caml_call2(Runtime_ocaml_Runtime[83], _IU_, _IS_), + _IW_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _IX_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _IW_), + _IY_ = caml_call2(Runtime_ocaml_Runtime[83], _IX_, _IV_); + return caml_call2(Runtime_ocaml_Runtime[29], _aE_, _IY_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _aF_, [0], _IR_, _IQ_); + }, + _GM_ = + function(param){ + function _It_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1057); + } + function _Iu_(param){ + var + _Iv_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aG_), + _Iw_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aH_), + _Ix_ = caml_call2(Runtime_ocaml_Runtime[84], _Iw_, _Iv_), + _Iy_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aI_), + _Iz_ = caml_call2(Runtime_ocaml_Runtime[84], _Iy_, _Ix_), + _IA_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aJ_), + _IB_ = caml_call2(Runtime_ocaml_Runtime[84], _IA_, _Iz_), + _IC_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aK_), + _ID_ = caml_call2(Runtime_ocaml_Runtime[84], _IC_, _IB_), + _IE_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aL_), + _IF_ = caml_call2(Runtime_ocaml_Runtime[84], _IE_, _ID_), + _IG_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aM_), + _IH_ = caml_call2(Runtime_ocaml_Runtime[84], _IG_, _IF_), + _II_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aN_), + _IJ_ = caml_call2(Runtime_ocaml_Runtime[84], _II_, _IH_), + _IK_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 4, 30), + _IL_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _IK_), + _IM_ = caml_call2(Runtime_ocaml_Runtime[83], _IL_, _IJ_), + _IN_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _IO_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _IN_), + _IP_ = caml_call2(Runtime_ocaml_Runtime[83], _IO_, _IM_); + return caml_call2(Runtime_ocaml_Runtime[29], _aO_, _IP_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _aP_, [0], _Iu_, _It_); + }, + _GN_ = + function(param){ + function _Ik_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_774); + } + function _Il_(param){ + var + _Im_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aQ_), + _In_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 12, 31), + _Io_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _In_), + _Ip_ = caml_call2(Runtime_ocaml_Runtime[83], _Io_, _Im_), + _Iq_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), + _Ir_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Iq_), + _Is_ = caml_call2(Runtime_ocaml_Runtime[83], _Ir_, _Ip_); + return caml_call2(Runtime_ocaml_Runtime[29], _aR_, _Is_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _aS_, [0], _Il_, _Ik_); + }, + _GO_ = + function(param){ + function _HZ_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1025); + } + function _H0_(param){ + var + _H1_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aT_), + _H2_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aU_), + _H3_ = caml_call2(Runtime_ocaml_Runtime[84], _H2_, _H1_), + _H4_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aV_), + _H5_ = caml_call2(Runtime_ocaml_Runtime[84], _H4_, _H3_), + _H6_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aW_), + _H7_ = caml_call2(Runtime_ocaml_Runtime[84], _H6_, _H5_), + _H8_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aX_), + _H9_ = caml_call2(Runtime_ocaml_Runtime[84], _H8_, _H7_), + _H__ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aY_), + _H$_ = caml_call2(Runtime_ocaml_Runtime[84], _H__, _H9_), + _Ia_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aZ_), + _Ib_ = caml_call2(Runtime_ocaml_Runtime[84], _Ia_, _H$_), + _Ic_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _a0_), + _Id_ = caml_call2(Runtime_ocaml_Runtime[84], _Ic_, _Ib_), + _Ie_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 12, 31), + _If_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _Ie_), + _Ig_ = caml_call2(Runtime_ocaml_Runtime[83], _If_, _Id_), + _Ih_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), + _Ii_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Ih_), + _Ij_ = caml_call2(Runtime_ocaml_Runtime[83], _Ii_, _Ig_); + return caml_call2(Runtime_ocaml_Runtime[29], _a1_, _Ij_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _a2_, [0], _H0_, _HZ_); + }, + _GP_ = + function(param){ + function _HQ_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_766); + } + function _HR_(param){ + var + _HS_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _a3_), + _HT_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), + _HU_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _HT_), + _HV_ = caml_call2(Runtime_ocaml_Runtime[83], _HU_, _HS_), + _HW_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _HX_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _HW_), + _HY_ = caml_call2(Runtime_ocaml_Runtime[83], _HX_, _HV_); + return caml_call2(Runtime_ocaml_Runtime[29], _a4_, _HY_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _a5_, [0], _HR_, _HQ_); + }, + _GQ_ = + function(param){ + function _Ht_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1015); + } + function _Hu_(param){ + var + _Hv_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _a6_), + _Hw_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _a7_), + _Hx_ = caml_call2(Runtime_ocaml_Runtime[84], _Hw_, _Hv_), + _Hy_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _a8_), + _Hz_ = caml_call2(Runtime_ocaml_Runtime[84], _Hy_, _Hx_), + _HA_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _a9_), + _HB_ = caml_call2(Runtime_ocaml_Runtime[84], _HA_, _Hz_), + _HC_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _a__), + _HD_ = caml_call2(Runtime_ocaml_Runtime[84], _HC_, _HB_), + _HE_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _a$_), + _HF_ = caml_call2(Runtime_ocaml_Runtime[84], _HE_, _HD_), + _HG_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ba_), + _HH_ = caml_call2(Runtime_ocaml_Runtime[84], _HG_, _HF_), + _HI_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bb_), + _HJ_ = caml_call2(Runtime_ocaml_Runtime[84], _HI_, _HH_), + _HK_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), + _HL_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _HK_), + _HM_ = caml_call2(Runtime_ocaml_Runtime[83], _HL_, _HJ_), + _HN_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _HO_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _HN_), + _HP_ = caml_call2(Runtime_ocaml_Runtime[83], _HO_, _HM_); + return caml_call2(Runtime_ocaml_Runtime[29], _bc_, _HP_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _bd_, [0], _Hu_, _Ht_); + }, + _GR_ = + function(param){ + function _Hk_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_757); + } + function _Hl_(param){ + var + _Hm_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _be_), + _Hn_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), + _Ho_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _Hn_), + _Hp_ = caml_call2(Runtime_ocaml_Runtime[83], _Ho_, _Hm_), + _Hq_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _Hr_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Hq_), + _Hs_ = caml_call2(Runtime_ocaml_Runtime[83], _Hr_, _Hp_); + return caml_call2(Runtime_ocaml_Runtime[29], _bf_, _Hs_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _bg_, [0], _Hl_, _Hk_); + }, + _GS_ = + [0, + function(param){ + function _GZ_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1003); + } + function _G0_(param){ + var + _G1_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bh_), + _G2_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bi_), + _G3_ = caml_call2(Runtime_ocaml_Runtime[84], _G2_, _G1_), + _G4_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bj_), + _G5_ = caml_call2(Runtime_ocaml_Runtime[84], _G4_, _G3_), + _G6_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bk_), + _G7_ = caml_call2(Runtime_ocaml_Runtime[84], _G6_, _G5_), + _G8_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bl_), + _G9_ = caml_call2(Runtime_ocaml_Runtime[84], _G8_, _G7_), + _G__ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bm_), + _G$_ = caml_call2(Runtime_ocaml_Runtime[84], _G__, _G9_), + _Ha_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bn_), + _Hb_ = caml_call2(Runtime_ocaml_Runtime[84], _Ha_, _G$_), + _Hc_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bo_), + _Hd_ = caml_call2(Runtime_ocaml_Runtime[84], _Hc_, _Hb_), + _He_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), + _Hf_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _He_), + _Hg_ = caml_call2(Runtime_ocaml_Runtime[83], _Hf_, _Hd_), + _Hh_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _Hi_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Hh_), + _Hj_ = caml_call2(Runtime_ocaml_Runtime[83], _Hi_, _Hg_); + return caml_call2(Runtime_ocaml_Runtime[29], _bp_, _Hj_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _bq_, [0], _G0_, _GZ_); + }, + _GR_, + _GQ_, + _GP_, + _GO_, + _GN_, + _GM_, + _GL_, + _GK_, + _GJ_, + _GI_, + _GH_, + _GG_, + _GF_], + _GT_ = caml_call4(Runtime_ocaml_Runtime[63], _br_, _GS_, _GE_, _GD_); + } + catch(_GY_){ + var _GC_ = caml_wrap_exception(_GY_); + if(_GC_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[8], _R_], 1); + throw caml_maybe_attach_backtrace(_GC_, 0); + } + var + brut_horaire = + caml_call3 + (Runtime_ocaml_Runtime[28], _bs_, Runtime_ocaml_Runtime[13], _GT_); + try{ + var + _GV_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _GW_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _GV_); + } + catch(_GX_){ + var _GU_ = caml_wrap_exception(_GX_); + if(_GU_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bt_], 1); + throw caml_maybe_attach_backtrace(_GU_, 0); + } + if(_GW_) return [0, brut_horaire]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _bu_], 1); + } + function base_mensuelle_allocations_fam(base_mensuelle_allocations_fam){ + var date_courante = base_mensuelle_allocations_fam[1]; + try{ + var + _F3_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _F4_ = function(param){return 0;}, + _F5_ = + function(param){ + function _Gy_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_42228); + } + function _Gz_(param){ + var + _GA_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 4, 1), + _GB_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _GA_); + return caml_call2(Runtime_ocaml_Runtime[29], _bw_, _GB_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _bx_, [0], _Gz_, _Gy_); + }, + _F6_ = + function(param){ + function _Gr_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_41481); + } + function _Gs_(param){ + var + _Gt_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 4, 1), + _Gu_ = caml_call2(Runtime_ocaml_Runtime[115], date_courante, _Gt_), + _Gv_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 4, 1), + _Gw_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Gv_), + _Gx_ = caml_call2(Runtime_ocaml_Runtime[83], _Gw_, _Gu_); + return caml_call2(Runtime_ocaml_Runtime[29], _by_, _Gx_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _bz_, [0], _Gs_, _Gr_); + }, + _F7_ = + function(param){ + function _Gk_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_41440); + } + function _Gl_(param){ + var + _Gm_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 4, 1), + _Gn_ = caml_call2(Runtime_ocaml_Runtime[115], date_courante, _Gm_), + _Go_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 4, 1), + _Gp_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Go_), + _Gq_ = caml_call2(Runtime_ocaml_Runtime[83], _Gp_, _Gn_); + return caml_call2(Runtime_ocaml_Runtime[29], _bA_, _Gq_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _bB_, [0], _Gl_, _Gk_); + }, + _F8_ = + [0, + function(param){ + function _Gd_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_41316); + } + function _Ge_(param){ + var + _Gf_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 4, 1), + _Gg_ = caml_call2(Runtime_ocaml_Runtime[115], date_courante, _Gf_), + _Gh_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 4, 1), + _Gi_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Gh_), + _Gj_ = caml_call2(Runtime_ocaml_Runtime[83], _Gi_, _Gg_); + return caml_call2(Runtime_ocaml_Runtime[29], _bC_, _Gj_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _bD_, [0], _Ge_, _Gd_); + }, + _F7_, + _F6_, + _F5_], + _F9_ = caml_call4(Runtime_ocaml_Runtime[63], _bE_, _F8_, _F4_, _F3_); + } + catch(_Gc_){ + var _F2_ = caml_wrap_exception(_Gc_); + if(_F2_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bv_], 1); + throw caml_maybe_attach_backtrace(_F2_, 0); + } + var + montant = + caml_call3 + (Runtime_ocaml_Runtime[28], _bF_, Runtime_ocaml_Runtime[13], _F9_); + try{ + var + _F$_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 4, 1), + _Ga_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _F$_); + } + catch(_Gb_){ + var _F__ = caml_wrap_exception(_Gb_); + if(_F__ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bG_], 1); + throw caml_maybe_attach_backtrace(_F__, 0); + } + if(_Ga_) return [0, montant]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _bH_], 1); + } + function prestations_familiales(prestations_familiales_in){ + var + date_courante = prestations_familiales_in[1], + residence = prestations_familiales_in[3]; + try{ + var + _Ez_ = + function(param){ + return caml_call3(Runtime_ocaml_Runtime[60], 20, 0, 0); + }, + _EA_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _bJ_, 1); + }, + _EB_ = caml_call4(Runtime_ocaml_Runtime[63], _bK_, [0], _EA_, _Ez_); + } + catch(_F1_){ + var _Ey_ = caml_wrap_exception(_F1_); + if(_Ey_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bI_], 1); + throw caml_maybe_attach_backtrace(_Ey_, 0); + } + var + age_l512_3_2 = + caml_call3 + (Runtime_ocaml_Runtime[28], _bL_, Runtime_ocaml_Runtime[17], _EB_); + try{ + var + _ED_ = function(param){return date_courante;}, + _EE_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _bN_, 1); + }, + _EF_ = caml_call4(Runtime_ocaml_Runtime[63], _bO_, [0], _EE_, _ED_), + smic_dot_date_courante = caml_call3 - (Runtime_ocaml_Runtime[28],_b7_,Runtime_ocaml_Runtime[12],_cx2_); - try - {var - _cx3_= - function(param) - {var - _cyS_=caml_call1(Runtime_ocaml_Runtime[39],cst_169), - _cyT_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_55), - _cyU_= + (Runtime_ocaml_Runtime[28], _bP_, Runtime_ocaml_Runtime[16], _EF_); + } + catch(_F0_){ + var _EC_ = caml_wrap_exception(_F0_); + if(_EC_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bM_], 1); + throw caml_maybe_attach_backtrace(_EC_, 0); + } + try{ + var + _EH_ = function(param){return residence;}, + _EI_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _bR_, 1); + }, + _EJ_ = caml_call4(Runtime_ocaml_Runtime[63], _bS_, [0], _EI_, _EH_), + smic_dot_residence = + caml_call3(Runtime_ocaml_Runtime[28], _bT_, embed_collectivite, _EJ_); + } + catch(_FZ_){ + var _EG_ = caml_wrap_exception(_FZ_); + if(_EG_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bQ_], 1); + throw caml_maybe_attach_backtrace(_EG_, 0); + } + var + _EK_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _bU_, smic), + [0, smic_dot_date_courante, smic_dot_residence]), + result = caml_call2(Runtime_ocaml_Runtime[27], _bV_, _EK_), + smic_dot_brut_horaire = result[1]; + try{ + var + _EM_ = function(param){return 0;}, + _EN_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _bX_, 1); + }, + _EO_ = + [0, + function(param){ + function _FM_(param){return 1;} + function _FN_(param){ + var + _FO_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bY_), + _FP_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bZ_), + _FQ_ = caml_call2(Runtime_ocaml_Runtime[84], _FP_, _FO_), + _FR_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _b0_), + _FS_ = caml_call2(Runtime_ocaml_Runtime[84], _FR_, _FQ_), + _FT_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _b1_), + _FU_ = caml_call2(Runtime_ocaml_Runtime[84], _FT_, _FS_), + _FV_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _b2_), + _FW_ = caml_call2(Runtime_ocaml_Runtime[84], _FV_, _FU_), + _FX_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _b3_), + _FY_ = caml_call2(Runtime_ocaml_Runtime[84], _FX_, _FW_); + return caml_call2(Runtime_ocaml_Runtime[29], _b4_, _FY_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _b5_, [0], _FN_, _FM_); + }], + _EP_ = caml_call4(Runtime_ocaml_Runtime[63], _b6_, _EO_, _EN_, _EM_); + } + catch(_FL_){ + var _EL_ = caml_wrap_exception(_FL_); + if(_EL_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bW_], 1); + throw caml_maybe_attach_backtrace(_EL_, 0); + } + var + regime_outre_mer_l751_1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _b7_, Runtime_ocaml_Runtime[12], _EP_); + try{ + var + _ER_ = + function(param){ + var + _FI_ = caml_call1(Runtime_ocaml_Runtime[39], cst_169), + _FJ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_55), + _FK_ = + caml_call2 + (Runtime_ocaml_Runtime[104], smic_dot_brut_horaire, _FJ_); + return caml_call2(Runtime_ocaml_Runtime[104], _FK_, _FI_); + }, + _ES_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _b9_, 1); + }, + _ET_ = + [0, + function(param){ + function _FD_(param){ + var + _FF_ = caml_call1(Runtime_ocaml_Runtime[39], cst_169$0), + _FG_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_55$0), + _FH_ = caml_call2 - (Runtime_ocaml_Runtime[104],smic_dot_brut_horaire,_cyT_); - return caml_call2(Runtime_ocaml_Runtime[104],_cyU_,_cyS_)}, - _cx4_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_b9_,1)}, - _cx5_= - [0, - function(param) - {function _cyN_(param) - {var - _cyP_=caml_call1(Runtime_ocaml_Runtime[39],cst_169$0), - _cyQ_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_55$0), - _cyR_= - caml_call2 - (Runtime_ocaml_Runtime[104],smic_dot_brut_horaire,_cyQ_); - return caml_call2(Runtime_ocaml_Runtime[104],_cyR_,_cyP_)} - function _cyO_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_b__,regime_outre_mer_l751_1)} - return caml_call4(Runtime_ocaml_Runtime[63],_b$_,[0],_cyO_,_cyN_)}], - _cx6_=caml_call4(Runtime_ocaml_Runtime[63],_ca_,_cx5_,_cx4_,_cx3_)} - catch(_cyM_) - {_cyM_ = caml_wrap_exception(_cyM_); - if(_cyM_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_b8_]; - throw _cyM_} + (Runtime_ocaml_Runtime[104], smic_dot_brut_horaire, _FG_); + return caml_call2(Runtime_ocaml_Runtime[104], _FH_, _FF_); + } + function _FE_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _b__, regime_outre_mer_l751_1); + } + return caml_call4(Runtime_ocaml_Runtime[63], _b$_, [0], _FE_, _FD_); + }], + _EU_ = caml_call4(Runtime_ocaml_Runtime[63], _ca_, _ET_, _ES_, _ER_); + } + catch(_FC_){ + var _EQ_ = caml_wrap_exception(_FC_); + if(_EQ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _b8_], 1); + throw caml_maybe_attach_backtrace(_EQ_, 0); + } + var + plafond_l512_3_2 = + caml_call3 + (Runtime_ocaml_Runtime[28], _cb_, Runtime_ocaml_Runtime[13], _EU_); + function _EV_(enfant){ + try{ var - plafond_l512_3_2= - caml_call3 - (Runtime_ocaml_Runtime[28],_cb_,Runtime_ocaml_Runtime[13],_cx6_); - function _cx7_(enfant) - {try - {var - _cyy_=function(param){return 0}, - _cyz_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_cd_,1)}, - _cyA_= - [0, - function(param) - {function _cyD_(param){return 1} - function _cyE_(param) - {var - _cyF_= - caml_call2 - (Runtime_ocaml_Runtime[118],enfant[3],plafond_l512_3_2); - switch(enfant[2][0]) - {case 0:var _cyG_=0;break; - case 1:var _cyG_=0;break; - default:var _cyG_=1} - switch(enfant[2][0]) - {case 0:var _cyH_=0;break; - case 1:var _cyH_=1;break; - default:var _cyH_=0} - var _cyI_=caml_call2(Runtime_ocaml_Runtime[84],_cyH_,_cyG_); - switch(enfant[2][0]) - {case 0:var _cyJ_=1;break; - case 1:var _cyJ_=0;break; - default:var _cyJ_=0} - var - _cyK_=caml_call2(Runtime_ocaml_Runtime[84],_cyJ_,_cyI_), - _cyL_=caml_call2(Runtime_ocaml_Runtime[83],_cyK_,_cyF_); - return caml_call2(Runtime_ocaml_Runtime[29],_ce_,_cyL_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_cf_,[0],_cyE_,_cyD_)}], - _cyB_=caml_call4(Runtime_ocaml_Runtime[63],_cg_,_cyA_,_cyz_,_cyy_); - return _cyB_} - catch(_cyC_) - {_cyC_ = caml_wrap_exception(_cyC_); - if(_cyC_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_cc_]; - throw _cyC_}} - var - conditions_hors_age= - caml_call3 - (Runtime_ocaml_Runtime[28],_ch_,Runtime_ocaml_Runtime[10],_cx7_); - function _cx8_(enfant) - {try - {var - _cx9_=function(param){return 0}, - _cx__= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_cj_,1)}, - _cx$_= - [0, - function(param) - {function _cyc_(param) - {function _cyh_(param){throw Runtime_ocaml_Runtime[2]} - function _cyi_(param){return 0} - var - _cyj_= - [0, - function(param) - {function _cyk_(param){return 1} - function _cyl_(param) - {switch(enfant[2][0]) - {case 0:var _cyv_=0;break; - case 1:var _cyv_=1;break; - default:var _cyv_=0} - switch(enfant[2][0]) - {case 0:var _cyw_=1;break; - case 1:var _cyw_=0;break; - default:var _cyw_=0} - var _cyx_=caml_call2(Runtime_ocaml_Runtime[84],_cyw_,_cyv_); - return caml_call2(Runtime_ocaml_Runtime[29],_ck_,_cyx_)} - var - _cym_= - [0, - function(param) - {function _cyn_(param){return 1} - function _cyo_(param) - {var - _cyp_= - caml_call3 - (Runtime_ocaml_Runtime[94],2,enfant[4],age_l512_3_2), - _cyq_= - caml_call2(Runtime_ocaml_Runtime[125],_cyp_,date_courante), - _cyr_= - caml_call2 - (Runtime_ocaml_Runtime[118],enfant[3],plafond_l512_3_2), - _cys_=caml_call2(Runtime_ocaml_Runtime[83],_cyr_,_cyq_); - switch(enfant[2][0]) - {case 0:var _cyt_=0;break; - case 1:var _cyt_=0;break; - default:var _cyt_=1} - var _cyu_=caml_call2(Runtime_ocaml_Runtime[83],_cyt_,_cys_); - return caml_call2(Runtime_ocaml_Runtime[29],_cl_,_cyu_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_cm_,[0],_cyo_,_cyn_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_cn_,_cym_,_cyl_,_cyk_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_co_,_cyj_,_cyi_,_cyh_)} - function _cyd_(param){return 1} - var - _cye_= - [0, - function(param) - {function _cyf_(param){return 0} - function _cyg_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_cp_,enfant[7])} - return caml_call4 - (Runtime_ocaml_Runtime[63],_cq_,[0],_cyg_,_cyf_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_cr_,_cye_,_cyd_,_cyc_)}], - _cya_=caml_call4(Runtime_ocaml_Runtime[63],_cs_,_cx$_,_cx__,_cx9_); - return _cya_} - catch(_cyb_) - {_cyb_ = caml_wrap_exception(_cyb_); - if(_cyb_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ci_]; - throw _cyb_}} - var - droit_ouvert= - caml_call3 - (Runtime_ocaml_Runtime[28],_ct_,Runtime_ocaml_Runtime[10],_cx8_); - return [0, - droit_ouvert, - conditions_hors_age, - age_l512_3_2, - regime_outre_mer_l751_1]} - function allocations_familiales(allocations_familiales_in) - {var - personne_charge_effective_perm=allocations_familiales_in[1], - personne_charge_effective_perm$0=allocations_familiales_in[2], - ressources_menage=allocations_familiales_in[3], - residence=allocations_familiales_in[4], - date_courante=allocations_familiales_in[5], - enfants_a_charge=allocations_familiales_in[6], - avait_enfant_a_charge_avant_1e=allocations_familiales_in[7]; - function _cfm_(enfant) - {try - {var - _cxr_=function(param){throw Runtime_ocaml_Runtime[2]}, - _cxs_=function(param){return 0}, - _cxt_= - function(param) - {function _cxE_(param){return _cv_} - function _cxF_(param) - {switch(enfant[5][0]) - {case 0:var _cxO_=0;break; - case 1:var _cxO_=0;break; - case 2:var _cxO_=1;break; - case 3:var _cxO_=0;break; - default:var _cxO_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_cw_,_cxO_)} - var - _cxG_= - [0, - function(param) - {function _cxH_(param){return _cx_} - function _cxI_(param) - {switch(enfant[5][0]) - {case 0:var _cxN_=0;break; - case 1:var _cxN_=1;break; - case 2:var _cxN_=0;break; - case 3:var _cxN_=0;break; - default:var _cxN_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_cy_,_cxN_)} - var - _cxJ_= - [0, - function(param) - {function _cxK_(param){return _cz_} - function _cxL_(param) - {switch(enfant[5][0]) - {case 0:var _cxM_=0;break; - case 1:var _cxM_=0;break; - case 2:var _cxM_=0;break; - case 3:var _cxM_=1;break; - default:var _cxM_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_cA_,_cxM_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_cB_,[0],_cxL_,_cxK_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_cC_,_cxJ_,_cxI_,_cxH_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_cD_,_cxG_,_cxF_,_cxE_)}, - _cxu_= - function(param) - {function _cxB_(param){return _cE_} - function _cxC_(param) - {switch(enfant[5][0]) - {case 0:var _cxD_=0;break; - case 1:var _cxD_=0;break; - case 2:var _cxD_=0;break; - case 3:var _cxD_=0;break; - default:var _cxD_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_cF_,_cxD_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_cG_,[0],_cxC_,_cxB_)}, - _cxv_= - [0, - function(param) - {function _cxy_(param){return _cH_} - function _cxz_(param) - {switch(enfant[5][0]) - {case 0:var _cxA_=1;break; - case 1:var _cxA_=0;break; - case 2:var _cxA_=0;break; - case 3:var _cxA_=0;break; - default:var _cxA_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_cI_,_cxA_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_cJ_,[0],_cxz_,_cxy_)}, - _cxu_, - _cxt_], - _cxw_=caml_call4(Runtime_ocaml_Runtime[63],_cK_,_cxv_,_cxs_,_cxr_); - return _cxw_} - catch(_cxx_) - {_cxx_ = caml_wrap_exception(_cxx_); - if(_cxx_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_cu_]; - throw _cxx_}} - var - prise_en_compte= - caml_call3 - (Runtime_ocaml_Runtime[28],_cL_,Runtime_ocaml_Runtime[10],_cfm_); - function _cfn_(enfant) - {try - {var - _cw5_=function(param){throw Runtime_ocaml_Runtime[2]}, - _cw6_=function(param){return 0}, - _cw7_= - function(param) - {function _cxc_(param){return _cN_} - function _cxd_(param) - {switch(enfant[5][0]) - {case 0:var _cxq_=0;break; - case 1:var _cxq_=0;break; - case 2:var _cxq_=1;break; - case 3:var _cxq_=0;break; - default:var _cxq_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_cO_,_cxq_)} - var - _cxe_= - [0, - function(param) - {function _cxf_(param){return _cP_} - function _cxg_(param) - {switch(enfant[5][0]) - {case 0:var _cxp_=0;break; - case 1:var _cxp_=1;break; - case 2:var _cxp_=0;break; - case 3:var _cxp_=0;break; - default:var _cxp_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_cQ_,_cxp_)} - var - _cxh_= - [0, - function(param) - {function _cxi_(param){return _cR_} - function _cxj_(param) - {switch(enfant[5][0]) - {case 0:var _cxo_=1;break; - case 1:var _cxo_=0;break; - case 2:var _cxo_=0;break; - case 3:var _cxo_=0;break; - default:var _cxo_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_cS_,_cxo_)} - var - _cxk_= - [0, - function(param) - {function _cxl_(param){return _cT_} - function _cxm_(param) - {switch(enfant[5][0]) - {case 0:var _cxn_=0;break; - case 1:var _cxn_=0;break; - case 2:var _cxn_=0;break; - case 3:var _cxn_=1;break; - default:var _cxn_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_cU_,_cxn_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_cV_,[0],_cxm_,_cxl_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_cW_,_cxk_,_cxj_,_cxi_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_cX_,_cxh_,_cxg_,_cxf_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_cY_,_cxe_,_cxd_,_cxc_)}, - _cw8_= - [0, - function(param) - {function _cw$_(param){return _cZ_} - function _cxa_(param) - {switch(enfant[5][0]) - {case 0:var _cxb_=0;break; - case 1:var _cxb_=0;break; - case 2:var _cxb_=0;break; - case 3:var _cxb_=0;break; - default:var _cxb_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_c0_,_cxb_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_c1_,[0],_cxa_,_cw$_)}, - _cw7_], - _cw9_=caml_call4(Runtime_ocaml_Runtime[63],_c2_,_cw8_,_cw6_,_cw5_); - return _cw9_} - catch(_cw__) - {_cw__ = caml_wrap_exception(_cw__); - if(_cw__ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_cM_]; - throw _cw__}} - caml_call3 - (Runtime_ocaml_Runtime[28],_c3_,Runtime_ocaml_Runtime[10],_cfn_); - try - {var - _cfo_= - function(param){return caml_call1(Runtime_ocaml_Runtime[46],cst_3)}, - _cfp_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_c5_,1)}, - _cfq_=caml_call4(Runtime_ocaml_Runtime[63],_c6_,[0],_cfp_,_cfo_)} - catch(_cw4_) - {_cw4_ = caml_wrap_exception(_cw4_); - if(_cw4_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_c4_]; - throw _cw4_} - caml_call3 - (Runtime_ocaml_Runtime[28],_c7_,Runtime_ocaml_Runtime[14],_cfq_); - try - {var - _cfr_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[46],cst_3$0)}, - _cfs_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_c9_,1)}, - _cft_=caml_call4(Runtime_ocaml_Runtime[63],_c__,[0],_cfs_,_cfr_)} - catch(_cw3_) - {_cw3_ = caml_wrap_exception(_cw3_); - if(_cw3_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_c8_]; - throw _cw3_} - var - nombre_enfants_alinea_2_l521_3= - caml_call3 - (Runtime_ocaml_Runtime[28],_c$_,Runtime_ocaml_Runtime[14],_cft_), - _cfu_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_da_,allocation_familiales_avril200), - 0), - result=caml_call2(Runtime_ocaml_Runtime[27],_db_,_cfu_), - version_avril_2008_dot_age_min=result[1]; - try - {var - _cfv_=function(param){return date_courante}, - _cfw_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_dd_,1)}, - _cfx_=caml_call4(Runtime_ocaml_Runtime[63],_de_,[0],_cfw_,_cfv_), - bmaf_dot_date_courante= - caml_call3 - (Runtime_ocaml_Runtime[28],_df_,Runtime_ocaml_Runtime[16],_cfx_)} - catch(_cw2_) - {_cw2_ = caml_wrap_exception(_cw2_); - if(_cw2_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_dc_]; - throw _cw2_} - var - _cfy_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_dg_,base_mensuelle_allocations_fam), - [0,bmaf_dot_date_courante]), - result$0=caml_call2(Runtime_ocaml_Runtime[27],_dh_,_cfy_), - bmaf_dot_montant=result$0[1]; - try - {var - _cfz_=function(param){return date_courante}, - _cfA_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_dj_,1)}, - _cfB_=caml_call4(Runtime_ocaml_Runtime[63],_dk_,[0],_cfA_,_cfz_), - prestations_familiales_dot_dat= - caml_call3 - (Runtime_ocaml_Runtime[28],_dl_,Runtime_ocaml_Runtime[16],_cfB_)} - catch(_cw1_) - {_cw1_ = caml_wrap_exception(_cw1_); - if(_cw1_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_di_]; - throw _cw1_} - try - {var - _cfC_=function(param){return _dn_}, - _cfD_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_do_,1)}, - _cfE_=caml_call4(Runtime_ocaml_Runtime[63],_dp_,[0],_cfD_,_cfC_), - prestations_familiales_dot_pre= - caml_call3 - (Runtime_ocaml_Runtime[28], - _dq_, - embed_element_prestations_fami, - _cfE_)} - catch(_cw0_) - {_cw0_ = caml_wrap_exception(_cw0_); - if(_cw0_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_dm_]; - throw _cw0_} - try - {var - _cfF_=function(param){return residence}, - _cfG_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ds_,1)}, - _cfH_=caml_call4(Runtime_ocaml_Runtime[63],_dt_,[0],_cfG_,_cfF_), - prestations_familiales_dot_res= - caml_call3(Runtime_ocaml_Runtime[28],_du_,embed_collectivite,_cfH_)} - catch(_cwZ_) - {_cwZ_ = caml_wrap_exception(_cwZ_); - if(_cwZ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_dr_]; - throw _cwZ_} - var - _cfI_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_dv_,prestations_familiales), - [0, - prestations_familiales_dot_dat, - prestations_familiales_dot_pre, - prestations_familiales_dot_res]), - result$1=caml_call2(Runtime_ocaml_Runtime[27],_dw_,_cfI_), - prestations_familiales_dot_dro=result$1[1], - prestations_familiales_dot_con=result$1[2], - prestations_familiales_dot_age=result$1[3], - prestations_familiales_dot_reg=result$1[4]; - try - {var - _cfJ_=function(param){return enfants_a_charge}, - _cfK_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_dy_,1)}, - _cfL_=caml_call4(Runtime_ocaml_Runtime[63],_dz_,[0],_cfK_,_cfJ_), - _cfM_=caml_call1(Runtime_ocaml_Runtime[18],embed_enfant), - enfant_le_plus_age_dot_enfants= - caml_call3(Runtime_ocaml_Runtime[28],_dA_,_cfM_,_cfL_)} - catch(_cwY_) - {_cwY_ = caml_wrap_exception(_cwY_); - if(_cwY_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_dx_]; - throw _cwY_} - var - _cfN_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_dB_,enfant_le_plus_age), - [0,enfant_le_plus_age_dot_enfants]), - result$2=caml_call2(Runtime_ocaml_Runtime[27],_dC_,_cfN_), - enfant_le_plus_age_dot_le_plus=result$2[1]; - function _cfO_(enfant) - {try - {var - _cwN_= - function(param) - {return caml_call3(Runtime_ocaml_Runtime[60],14,0,0)}, - _cwO_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_dE_,1)}, - _cwP_= - [0, - function(param) - {function _cwS_(param){return version_avril_2008_dot_age_min} - function _cwT_(param) - {var - _cwU_=caml_call3(Runtime_ocaml_Runtime[57],2008,4,30), - _cwV_=caml_call3(Runtime_ocaml_Runtime[60],11,0,0), - _cwW_= - caml_call3(Runtime_ocaml_Runtime[94],2,enfant[4],_cwV_), - _cwX_=caml_call2(Runtime_ocaml_Runtime[120],_cwW_,_cwU_); - return caml_call2(Runtime_ocaml_Runtime[29],_dF_,_cwX_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_dG_,[0],_cwT_,_cwS_)}], - _cwQ_=caml_call4(Runtime_ocaml_Runtime[63],_dH_,_cwP_,_cwO_,_cwN_); - return _cwQ_} - catch(_cwR_) - {_cwR_ = caml_wrap_exception(_cwR_); - if(_cwR_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_dD_]; - throw _cwR_}} - var - age_minimum_alinea_1_l521_3= - caml_call3 - (Runtime_ocaml_Runtime[28],_dI_,Runtime_ocaml_Runtime[10],_cfO_); - try - {var - _cfP_= - function(param) - {function _cwJ_(enfant) - {var - _cwK_= - caml_call3(Runtime_ocaml_Runtime[28],_dK_,embed_enfant,enfant), - _cwL_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _dL_, - prestations_familiales_dot_dro), - _cwK_), - _cwM_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _dM_, - Runtime_ocaml_Runtime[12], - _cwL_); - return caml_call2(Runtime_ocaml_Runtime[27],_dN_,_cwM_)} - return caml_call2 - (Runtime_ocaml_Runtime[90],_cwJ_,enfants_a_charge)}, - _cfQ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_dO_,1)}, - _cfR_=caml_call4(Runtime_ocaml_Runtime[63],_dP_,[0],_cfQ_,_cfP_)} - catch(_cwI_) - {_cwI_ = caml_wrap_exception(_cwI_); - if(_cwI_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_dJ_]; - throw _cwI_} - var - _cfS_=caml_call1(Runtime_ocaml_Runtime[18],embed_enfant), - enfants_a_charge_droit_ouvert_= - caml_call3(Runtime_ocaml_Runtime[28],_dQ_,_cfS_,_cfR_); - function _cfT_(enfant) - {try - {var - _cwE_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[86], - enfant_le_plus_age_dot_le_plus, - enfant)}, - _cwF_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_dS_,1)}, - _cwG_=caml_call4(Runtime_ocaml_Runtime[63],_dT_,[0],_cwF_,_cwE_); - return _cwG_} - catch(_cwH_) - {_cwH_ = caml_wrap_exception(_cwH_); - if(_cwH_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_dR_]; - throw _cwH_}} - var - est_enfant_le_plus_age= - caml_call3 - (Runtime_ocaml_Runtime[28],_dU_,Runtime_ocaml_Runtime[10],_cfT_); - try - {var - _cfU_= - function(param) - {var - _cwz_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cwA_=caml_call1(Runtime_ocaml_Runtime[69],_cwz_), - _cwB_=caml_call1(Runtime_ocaml_Runtime[31],cst_559500), - _cwC_=caml_call2(Runtime_ocaml_Runtime[104],_cwB_,_cwA_), - _cwD_=caml_call1(Runtime_ocaml_Runtime[31],cst_7830000); - return caml_call2(Runtime_ocaml_Runtime[93],_cwD_,_cwC_)}, - _cfV_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_dW_,1)}, - _cfW_= - [0, - function(param) - {function _cvJ_(param){throw Runtime_ocaml_Runtime[2]} - function _cvK_(param){return 0} - function _cvL_(param) - {function _cwn_(param) - {var - _cwu_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cwv_=caml_call1(Runtime_ocaml_Runtime[69],_cwu_), - _cww_=caml_call1(Runtime_ocaml_Runtime[31],cst_582700), - _cwx_=caml_call2(Runtime_ocaml_Runtime[104],_cww_,_cwv_), - _cwy_=caml_call1(Runtime_ocaml_Runtime[31],cst_8155800); - return caml_call2(Runtime_ocaml_Runtime[93],_cwy_,_cwx_)} - function _cwo_(param) - {var - _cwp_=caml_call3(Runtime_ocaml_Runtime[57],2021,12,31), - _cwq_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cwp_), - _cwr_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), - _cws_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cwr_), - _cwt_=caml_call2(Runtime_ocaml_Runtime[83],_cws_,_cwq_); - return caml_call2(Runtime_ocaml_Runtime[29],_dX_,_cwt_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_dY_,[0],_cwo_,_cwn_)} - function _cvM_(param) - {function _cwb_(param) - {var - _cwi_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cwj_=caml_call1(Runtime_ocaml_Runtime[69],_cwi_), - _cwk_=caml_call1(Runtime_ocaml_Runtime[31],cst_577500), - _cwl_=caml_call2(Runtime_ocaml_Runtime[104],_cwk_,_cwj_), - _cwm_=caml_call1(Runtime_ocaml_Runtime[31],cst_8083100); - return caml_call2(Runtime_ocaml_Runtime[93],_cwm_,_cwl_)} - function _cwc_(param) - {var - _cwd_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), - _cwe_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cwd_), - _cwf_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _cwg_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cwf_), - _cwh_=caml_call2(Runtime_ocaml_Runtime[83],_cwg_,_cwe_); - return caml_call2(Runtime_ocaml_Runtime[29],_dZ_,_cwh_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_d0_,[0],_cwc_,_cwb_)} - function _cvN_(param) - {function _cv1_(param) - {var - _cv8_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cv9_=caml_call1(Runtime_ocaml_Runtime[69],_cv8_), - _cv__=caml_call1(Runtime_ocaml_Runtime[31],cst_568400), - _cv$_=caml_call2(Runtime_ocaml_Runtime[104],_cv__,_cv9_), - _cwa_=caml_call1(Runtime_ocaml_Runtime[31],cst_7955800); - return caml_call2(Runtime_ocaml_Runtime[93],_cwa_,_cv$_)} - function _cv2_(param) - {var - _cv3_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), - _cv4_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cv3_), - _cv5_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _cv6_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cv5_), - _cv7_=caml_call2(Runtime_ocaml_Runtime[83],_cv6_,_cv4_); - return caml_call2(Runtime_ocaml_Runtime[29],_d1_,_cv7_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_d2_,[0],_cv2_,_cv1_)} - var - _cvO_= - [0, - function(param) - {function _cvP_(param) - {var - _cvW_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cvX_=caml_call1(Runtime_ocaml_Runtime[69],_cvW_), - _cvY_=caml_call1(Runtime_ocaml_Runtime[31],cst_562800), - _cvZ_=caml_call2(Runtime_ocaml_Runtime[104],_cvY_,_cvX_), - _cv0_=caml_call1(Runtime_ocaml_Runtime[31],cst_7877000); - return caml_call2(Runtime_ocaml_Runtime[93],_cv0_,_cvZ_)} - function _cvQ_(param) - {var - _cvR_=caml_call3(Runtime_ocaml_Runtime[57],2018,12,31), - _cvS_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cvR_), - _cvT_=caml_call3(Runtime_ocaml_Runtime[57],2018,1,1), - _cvU_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cvT_), - _cvV_=caml_call2(Runtime_ocaml_Runtime[83],_cvU_,_cvS_); - return caml_call2(Runtime_ocaml_Runtime[29],_d3_,_cvV_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_d4_,[0],_cvQ_,_cvP_)}, - _cvN_, - _cvM_, - _cvL_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_d5_,_cvO_,_cvK_,_cvJ_)}], - _cfX_=caml_call4(Runtime_ocaml_Runtime[63],_d6_,_cfW_,_cfV_,_cfU_)} - catch(_cvI_) - {_cvI_ = caml_wrap_exception(_cvI_); - if(_cvI_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_dV_]; - throw _cvI_} - var - plafond_i_i_d521_3= - caml_call3 - (Runtime_ocaml_Runtime[28],_d7_,Runtime_ocaml_Runtime[13],_cfX_); - try - {var - _cfY_= - function(param) - {var - _cvD_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cvE_=caml_call1(Runtime_ocaml_Runtime[69],_cvD_), - _cvF_=caml_call1(Runtime_ocaml_Runtime[31],cst_559500$0), - _cvG_=caml_call2(Runtime_ocaml_Runtime[104],_cvF_,_cvE_), - _cvH_=caml_call1(Runtime_ocaml_Runtime[31],cst_5595000); - return caml_call2(Runtime_ocaml_Runtime[93],_cvH_,_cvG_)}, - _cfZ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_d9_,1)}, - _cf0_= - [0, - function(param) - {function _cuN_(param){throw Runtime_ocaml_Runtime[2]} - function _cuO_(param){return 0} - function _cuP_(param) - {function _cvr_(param) - {var - _cvy_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cvz_=caml_call1(Runtime_ocaml_Runtime[69],_cvy_), - _cvA_=caml_call1(Runtime_ocaml_Runtime[31],cst_582700$0), - _cvB_=caml_call2(Runtime_ocaml_Runtime[104],_cvA_,_cvz_), - _cvC_=caml_call1(Runtime_ocaml_Runtime[31],cst_5827900); - return caml_call2(Runtime_ocaml_Runtime[93],_cvC_,_cvB_)} - function _cvs_(param) - {var - _cvt_=caml_call3(Runtime_ocaml_Runtime[57],2021,12,31), - _cvu_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cvt_), - _cvv_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), - _cvw_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cvv_), - _cvx_=caml_call2(Runtime_ocaml_Runtime[83],_cvw_,_cvu_); - return caml_call2(Runtime_ocaml_Runtime[29],_d__,_cvx_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_d$_,[0],_cvs_,_cvr_)} - function _cuQ_(param) - {function _cvf_(param) - {var - _cvm_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cvn_=caml_call1(Runtime_ocaml_Runtime[69],_cvm_), - _cvo_=caml_call1(Runtime_ocaml_Runtime[31],cst_577500$0), - _cvp_=caml_call2(Runtime_ocaml_Runtime[104],_cvo_,_cvn_), - _cvq_=caml_call1(Runtime_ocaml_Runtime[31],cst_5775900); - return caml_call2(Runtime_ocaml_Runtime[93],_cvq_,_cvp_)} - function _cvg_(param) - {var - _cvh_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), - _cvi_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cvh_), - _cvj_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _cvk_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cvj_), - _cvl_=caml_call2(Runtime_ocaml_Runtime[83],_cvk_,_cvi_); - return caml_call2(Runtime_ocaml_Runtime[29],_ea_,_cvl_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_eb_,[0],_cvg_,_cvf_)} - function _cuR_(param) - {function _cu5_(param) - {var - _cva_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cvb_=caml_call1(Runtime_ocaml_Runtime[69],_cva_), - _cvc_=caml_call1(Runtime_ocaml_Runtime[31],cst_568400$0), - _cvd_=caml_call2(Runtime_ocaml_Runtime[104],_cvc_,_cvb_), - _cve_=caml_call1(Runtime_ocaml_Runtime[31],cst_5684900); - return caml_call2(Runtime_ocaml_Runtime[93],_cve_,_cvd_)} - function _cu6_(param) - {var - _cu7_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), - _cu8_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cu7_), - _cu9_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _cu__= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cu9_), - _cu$_=caml_call2(Runtime_ocaml_Runtime[83],_cu__,_cu8_); - return caml_call2(Runtime_ocaml_Runtime[29],_ec_,_cu$_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ed_,[0],_cu6_,_cu5_)} - var - _cuS_= - [0, - function(param) - {function _cuT_(param) - {var - _cu0_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cu1_=caml_call1(Runtime_ocaml_Runtime[69],_cu0_), - _cu2_=caml_call1(Runtime_ocaml_Runtime[31],cst_562800$0), - _cu3_=caml_call2(Runtime_ocaml_Runtime[104],_cu2_,_cu1_), - _cu4_=caml_call1(Runtime_ocaml_Runtime[31],cst_5628600); - return caml_call2(Runtime_ocaml_Runtime[93],_cu4_,_cu3_)} - function _cuU_(param) - {var - _cuV_=caml_call3(Runtime_ocaml_Runtime[57],2018,12,31), - _cuW_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cuV_), - _cuX_=caml_call3(Runtime_ocaml_Runtime[57],2018,1,1), - _cuY_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cuX_), - _cuZ_=caml_call2(Runtime_ocaml_Runtime[83],_cuY_,_cuW_); - return caml_call2(Runtime_ocaml_Runtime[29],_ee_,_cuZ_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ef_,[0],_cuU_,_cuT_)}, - _cuR_, - _cuQ_, - _cuP_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_eg_,_cuS_,_cuO_,_cuN_)}], - _cf1_=caml_call4(Runtime_ocaml_Runtime[63],_eh_,_cf0_,_cfZ_,_cfY_)} - catch(_cuM_) - {_cuM_ = caml_wrap_exception(_cuM_); - if(_cuM_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_d8_]; - throw _cuM_} - var - plafond_i_d521_3= - caml_call3 - (Runtime_ocaml_Runtime[28],_ei_,Runtime_ocaml_Runtime[13],_cf1_); - try - {var - _cf2_=function(param){return 0}, - _cf3_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ek_,1)}, - _cf4_= - [0, - function(param) - {function _cuD_(param){return 1} - function _cuE_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_el_,1)} - var - _cuF_= - [0, - function(param) - {function _cuG_(param){return 0} - function _cuH_(param) - {var - _cuI_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$0), - _cuJ_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cuK_=caml_call2(Runtime_ocaml_Runtime[86],_cuJ_,_cuI_), - _cuL_= - caml_call2 - (Runtime_ocaml_Runtime[83], - prestations_familiales_dot_reg, - _cuK_); - return caml_call2(Runtime_ocaml_Runtime[29],_em_,_cuL_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_en_,[0],_cuH_,_cuG_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_eo_,_cuF_,_cuE_,_cuD_)}], - _cf5_=caml_call4(Runtime_ocaml_Runtime[63],_ep_,_cf4_,_cf3_,_cf2_)} - catch(_cuC_) - {_cuC_ = caml_wrap_exception(_cuC_); - if(_cuC_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ej_]; - throw _cuC_} - var - droit_ouvert_complement= - caml_call3 - (Runtime_ocaml_Runtime[28],_eq_,Runtime_ocaml_Runtime[12],_cf5_); - function _cf6_(enfant) - {try - {var - _cub_=function(param){return 0}, - _cuc_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_es_,1)}, - _cud_= - [0, - function(param) - {function _cug_(param){return 1} - function _cuh_(param) - {var - _cup_= - caml_call3 - (Runtime_ocaml_Runtime[28],_et_,embed_enfant,enfant), - _cuq_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _eu_, - prestations_familiales_dot_con), - _cup_), - _cur_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _ev_, - Runtime_ocaml_Runtime[12], - _cuq_), - _cus_=caml_call2(Runtime_ocaml_Runtime[27],_ew_,_cur_), - _cut_=caml_call2(Runtime_ocaml_Runtime[83],enfant[6],_cus_), - _cuu_=caml_call3(Runtime_ocaml_Runtime[60],0,0,365), - _cuv_= - caml_call3 - (Runtime_ocaml_Runtime[94], - 2, - enfant[4], - prestations_familiales_dot_age), - _cuw_= - caml_call2(Runtime_ocaml_Runtime[99],_cuv_,date_courante), - _cux_=caml_call2(Runtime_ocaml_Runtime[114],_cuw_,_cuu_), - _cuy_=caml_call2(Runtime_ocaml_Runtime[83],_cux_,_cut_), - _cuz_=caml_call1(Runtime_ocaml_Runtime[68],enfants_a_charge), - _cuA_= - caml_call2 - (Runtime_ocaml_Runtime[126], - _cuz_, - nombre_enfants_alinea_2_l521_3), - _cuB_=caml_call2(Runtime_ocaml_Runtime[83],_cuA_,_cuy_); - return caml_call2(Runtime_ocaml_Runtime[29],_ex_,_cuB_)} - var - _cui_= - [0, - function(param) - {function _cuj_(param){return 0} - function _cuk_(param) - {var - _cul_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$1), - _cum_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cun_=caml_call2(Runtime_ocaml_Runtime[86],_cum_,_cul_), - _cuo_= - caml_call2 - (Runtime_ocaml_Runtime[83], - prestations_familiales_dot_reg, - _cun_); - return caml_call2(Runtime_ocaml_Runtime[29],_ey_,_cuo_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ez_,[0],_cuk_,_cuj_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_eA_,_cui_,_cuh_,_cug_)}], - _cue_=caml_call4(Runtime_ocaml_Runtime[63],_eB_,_cud_,_cuc_,_cub_); - return _cue_} - catch(_cuf_) - {_cuf_ = caml_wrap_exception(_cuf_); - if(_cuf_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_er_]; - throw _cuf_}} - var - droit_ouvert_forfaitaire= - caml_call3 - (Runtime_ocaml_Runtime[28],_eC_,Runtime_ocaml_Runtime[10],_cf6_); - try - {var - _cf7_= - function(param) - {var - _ct5_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$1), - _ct6_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_ct6_,_ct5_)) - {var - _ct7_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$2), - _ct8_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _ct9_=caml_call2(Runtime_ocaml_Runtime[96],_ct8_,_ct7_), - _ct__=caml_call1(Runtime_ocaml_Runtime[69],_ct9_), - _ct$_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0463), - _cua_= - caml_call2(Runtime_ocaml_Runtime[104],bmaf_dot_montant,_ct$_); - return caml_call2(Runtime_ocaml_Runtime[104],_cua_,_ct__)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$0)}, - _cf8_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_eE_,1)}, - _cf9_=caml_call4(Runtime_ocaml_Runtime[63],_eF_,[0],_cf8_,_cf7_)} - catch(_ct4_) - {_ct4_ = caml_wrap_exception(_ct4_); - if(_ct4_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_eD_]; - throw _ct4_} - var - montant_initial_base_quatrieme= - caml_call3 - (Runtime_ocaml_Runtime[28],_eG_,Runtime_ocaml_Runtime[13],_cf9_); - try - {var - _cf__= - function(param) - {var - _ct1_=caml_call1(Runtime_ocaml_Runtime[46],cst_2), - _ct2_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_ct2_,_ct1_)) - {var _ct3_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_16); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_ct3_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$1)}, - _cf$_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_eI_,1)}, - _cga_= - [0, - function(param) - {function _crX_(param){throw Runtime_ocaml_Runtime[2]} - function _crY_(param){return 0} - function _crZ_(param) - {function _ctP_(param) - {var - _ctY_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$0), - _ctZ_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_ctZ_,_ctY_)) - {var _ct0_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_143); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_ct0_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$2)} - function _ctQ_(param) - {var - _ctR_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), - _ctS_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_ctR_), - _ctT_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _ctU_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ctT_), - _ctV_=caml_call2(Runtime_ocaml_Runtime[83],_ctU_,_ctS_), - _ctW_=caml_call2(Runtime_ocaml_Runtime[86],residence,_eJ_), - _ctX_=caml_call2(Runtime_ocaml_Runtime[83],_ctW_,_ctV_); - return caml_call2(Runtime_ocaml_Runtime[29],_eK_,_ctX_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_eL_,[0],_ctQ_,_ctP_)} - function _cr0_(param) - {function _ctD_(param) - {var - _ctM_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$1), - _ctN_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_ctN_,_ctM_)) - {var _ctO_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_1259); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_ctO_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$3)} - function _ctE_(param) - {var - _ctF_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), - _ctG_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_ctF_), - _ctH_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _ctI_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ctH_), - _ctJ_=caml_call2(Runtime_ocaml_Runtime[83],_ctI_,_ctG_), - _ctK_=caml_call2(Runtime_ocaml_Runtime[86],residence,_eM_), - _ctL_=caml_call2(Runtime_ocaml_Runtime[83],_ctK_,_ctJ_); - return caml_call2(Runtime_ocaml_Runtime[29],_eN_,_ctL_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_eO_,[0],_ctE_,_ctD_)} - function _cr1_(param) - {function _ctr_(param) - {var - _ctA_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$2), - _ctB_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_ctB_,_ctA_)) - {var _ctC_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_1089); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_ctC_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$4)} - function _cts_(param) - {var - _ctt_=caml_call3(Runtime_ocaml_Runtime[57],2018,12,31), - _ctu_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_ctt_), - _ctv_=caml_call3(Runtime_ocaml_Runtime[57],2018,1,1), - _ctw_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ctv_), - _ctx_=caml_call2(Runtime_ocaml_Runtime[83],_ctw_,_ctu_), - _cty_=caml_call2(Runtime_ocaml_Runtime[86],residence,_eP_), - _ctz_=caml_call2(Runtime_ocaml_Runtime[83],_cty_,_ctx_); - return caml_call2(Runtime_ocaml_Runtime[29],_eQ_,_ctz_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_eR_,[0],_cts_,_ctr_)} - function _cr2_(param) - {function _ctf_(param) - {var - _cto_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$3), - _ctp_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_ctp_,_cto_)) - {var _ctq_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0918); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_ctq_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$5)} - function _ctg_(param) - {var - _cth_=caml_call3(Runtime_ocaml_Runtime[57],2017,12,31), - _cti_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cth_), - _ctj_=caml_call3(Runtime_ocaml_Runtime[57],2017,1,1), - _ctk_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ctj_), - _ctl_=caml_call2(Runtime_ocaml_Runtime[83],_ctk_,_cti_), - _ctm_=caml_call2(Runtime_ocaml_Runtime[86],residence,_eS_), - _ctn_=caml_call2(Runtime_ocaml_Runtime[83],_ctm_,_ctl_); - return caml_call2(Runtime_ocaml_Runtime[29],_eT_,_ctn_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_eU_,[0],_ctg_,_ctf_)} - function _cr3_(param) - {function _cs5_(param) - {var - _ctc_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$4), - _ctd_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_ctd_,_ctc_)) - {var _cte_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0842); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cte_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$6)} - function _cs6_(param) - {var - _cs7_=caml_call3(Runtime_ocaml_Runtime[57],2016,12,31), - _cs8_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cs7_), - _cs9_=caml_call3(Runtime_ocaml_Runtime[57],2016,1,1), - _cs__= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cs9_), - _cs$_=caml_call2(Runtime_ocaml_Runtime[83],_cs__,_cs8_), - _cta_=caml_call2(Runtime_ocaml_Runtime[86],residence,_eV_), - _ctb_=caml_call2(Runtime_ocaml_Runtime[83],_cta_,_cs$_); - return caml_call2(Runtime_ocaml_Runtime[29],_eW_,_ctb_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_eX_,[0],_cs6_,_cs5_)} - function _cr4_(param) - {function _csT_(param) - {var - _cs2_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$5), - _cs3_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_cs3_,_cs2_)) - {var _cs4_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0766); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cs4_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$7)} - function _csU_(param) - {var - _csV_=caml_call3(Runtime_ocaml_Runtime[57],2015,12,31), - _csW_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_csV_), - _csX_=caml_call3(Runtime_ocaml_Runtime[57],2015,1,1), - _csY_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_csX_), - _csZ_=caml_call2(Runtime_ocaml_Runtime[83],_csY_,_csW_), - _cs0_=caml_call2(Runtime_ocaml_Runtime[86],residence,_eY_), - _cs1_=caml_call2(Runtime_ocaml_Runtime[83],_cs0_,_csZ_); - return caml_call2(Runtime_ocaml_Runtime[29],_eZ_,_cs1_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_e0_,[0],_csU_,_csT_)} - function _cr5_(param) - {function _csH_(param) - {var - _csQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$6), - _csR_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_csR_,_csQ_)) - {var _csS_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_069); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_csS_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$8)} - function _csI_(param) - {var - _csJ_=caml_call3(Runtime_ocaml_Runtime[57],2014,12,31), - _csK_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_csJ_), - _csL_=caml_call3(Runtime_ocaml_Runtime[57],2014,1,1), - _csM_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_csL_), - _csN_=caml_call2(Runtime_ocaml_Runtime[83],_csM_,_csK_), - _csO_=caml_call2(Runtime_ocaml_Runtime[86],residence,_e1_), - _csP_=caml_call2(Runtime_ocaml_Runtime[83],_csO_,_csN_); - return caml_call2(Runtime_ocaml_Runtime[29],_e2_,_csP_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_e3_,[0],_csI_,_csH_)} - function _cr6_(param) - {function _csv_(param) - {var - _csE_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$7), - _csF_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_csF_,_csE_)) - {var _csG_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0615); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_csG_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$9)} - function _csw_(param) - {var - _csx_=caml_call3(Runtime_ocaml_Runtime[57],2013,12,31), - _csy_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_csx_), - _csz_=caml_call3(Runtime_ocaml_Runtime[57],2013,1,1), - _csA_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_csz_), - _csB_=caml_call2(Runtime_ocaml_Runtime[83],_csA_,_csy_), - _csC_=caml_call2(Runtime_ocaml_Runtime[86],residence,_e4_), - _csD_=caml_call2(Runtime_ocaml_Runtime[83],_csC_,_csB_); - return caml_call2(Runtime_ocaml_Runtime[29],_e5_,_csD_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_e6_,[0],_csw_,_csv_)} - function _cr7_(param) - {function _csj_(param) - {var - _css_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$8), - _cst_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_cst_,_css_)) - {var _csu_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0539); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_csu_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$10)} - function _csk_(param) - {var - _csl_=caml_call3(Runtime_ocaml_Runtime[57],2012,12,31), - _csm_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_csl_), - _csn_=caml_call3(Runtime_ocaml_Runtime[57],2012,1,1), - _cso_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_csn_), - _csp_=caml_call2(Runtime_ocaml_Runtime[83],_cso_,_csm_), - _csq_=caml_call2(Runtime_ocaml_Runtime[86],residence,_e7_), - _csr_=caml_call2(Runtime_ocaml_Runtime[83],_csq_,_csp_); - return caml_call2(Runtime_ocaml_Runtime[29],_e8_,_csr_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_e9_,[0],_csk_,_csj_)} - var - _cr8_= - [0, - function(param) - {function _cr9_(param) - {var - _csg_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$9), - _csh_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_csh_,_csg_)) - {var - _csi_= - caml_call1(Runtime_ocaml_Runtime[39],cst_0_0463$0); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_csi_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$11)} - function _cr__(param) - {var - _cr$_=caml_call3(Runtime_ocaml_Runtime[57],2011,12,31), - _csa_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cr$_), - _csb_=caml_call3(Runtime_ocaml_Runtime[57],2011,1,1), - _csc_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_csb_), - _csd_=caml_call2(Runtime_ocaml_Runtime[83],_csc_,_csa_), - _cse_=caml_call2(Runtime_ocaml_Runtime[86],residence,_e__), - _csf_=caml_call2(Runtime_ocaml_Runtime[83],_cse_,_csd_); - return caml_call2(Runtime_ocaml_Runtime[29],_e$_,_csf_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_fa_,[0],_cr__,_cr9_)}, - _cr7_, - _cr6_, - _cr5_, - _cr4_, - _cr3_, - _cr2_, - _cr1_, - _cr0_, - _crZ_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_fb_,_cr8_,_crY_,_crX_)}], - _cgb_=caml_call4(Runtime_ocaml_Runtime[63],_fc_,_cga_,_cf$_,_cf__)} - catch(_crW_) - {_crW_ = caml_wrap_exception(_crW_); - if(_crW_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_eH_]; - throw _crW_} - var - montant_initial_base_troisieme= - caml_call3 - (Runtime_ocaml_Runtime[28],_fd_,Runtime_ocaml_Runtime[13],_cgb_); - try - {var - _cgc_= - function(param) - {var - _crV_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - return caml_call1(Runtime_ocaml_Runtime[69],_crV_)}, - _cgd_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ff_,1)}, - _cge_=caml_call4(Runtime_ocaml_Runtime[63],_fg_,[0],_cgd_,_cgc_)} - catch(_crU_) - {_crU_ = caml_wrap_exception(_crU_); - if(_crU_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_fe_]; - throw _crU_} - var - nombre_total_enfants= - caml_call3 - (Runtime_ocaml_Runtime[28],_fh_,Runtime_ocaml_Runtime[15],_cge_); - try - {var - _cgf_= - function(param) - {function _crN_(enfant) - {var - _crR_= - caml_call3(Runtime_ocaml_Runtime[28],_fj_,embed_enfant,enfant), - _crS_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_fk_,prise_en_compte), - _crR_), - _crT_= - caml_call3 - (Runtime_ocaml_Runtime[28],_fl_,embed_prise_en_compte,_crS_), - match=caml_call2(Runtime_ocaml_Runtime[27],_fm_,_crT_); - switch(match[0]) - {case 0:return caml_call1(Runtime_ocaml_Runtime[39],cst_1$2); - case 1:return caml_call1(Runtime_ocaml_Runtime[39],cst_0_5); - default:return caml_call1(Runtime_ocaml_Runtime[39],cst_0$12)}} + _Fo_ = function(param){return 0;}, + _Fp_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _cd_, 1); + }, + _Fq_ = + [0, + function(param){ + function _Ft_(param){return 1;} + function _Fu_(param){ var - _crO_= - caml_call2 - (Runtime_ocaml_Runtime[87], - _crN_, - enfants_a_charge_droit_ouvert_), - _crP_=caml_call1(Runtime_ocaml_Runtime[39],cst_0$13); - function _crQ_(sum1,sum2) - {return caml_call2(Runtime_ocaml_Runtime[92],sum1,sum2)} - return caml_call3(Runtime_ocaml_Runtime[88],_crQ_,_crP_,_crO_)}, - _cgg_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_fn_,1)}, - _cgh_=caml_call4(Runtime_ocaml_Runtime[63],_fo_,[0],_cgg_,_cgf_)} - catch(_crM_) - {_crM_ = caml_wrap_exception(_crM_); - if(_crM_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_fi_]; - throw _crM_} + _Fv_ = + caml_call2 + (Runtime_ocaml_Runtime[118], enfant[3], plafond_l512_3_2); + switch(enfant[2][0]){ + case 0: + var _Fw_ = 0; break; + case 1: + var _Fw_ = 0; break; + default: var _Fw_ = 1; + } + switch(enfant[2][0]){ + case 0: + var _Fx_ = 0; break; + case 1: + var _Fx_ = 1; break; + default: var _Fx_ = 0; + } + var _Fy_ = caml_call2(Runtime_ocaml_Runtime[84], _Fx_, _Fw_); + switch(enfant[2][0]){ + case 0: + var _Fz_ = 1; break; + case 1: + var _Fz_ = 0; break; + default: var _Fz_ = 0; + } + var + _FA_ = caml_call2(Runtime_ocaml_Runtime[84], _Fz_, _Fy_), + _FB_ = caml_call2(Runtime_ocaml_Runtime[83], _FA_, _Fv_); + return caml_call2(Runtime_ocaml_Runtime[29], _ce_, _FB_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _cf_, [0], _Fu_, _Ft_); + }], + _Fr_ = caml_call4(Runtime_ocaml_Runtime[63], _cg_, _Fq_, _Fp_, _Fo_); + return _Fr_; + } + catch(_Fs_){ + var _Fn_ = caml_wrap_exception(_Fs_); + if(_Fn_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _cc_], 1); + throw caml_maybe_attach_backtrace(_Fn_, 0); + } + } + var + conditions_hors_age = + caml_call3 + (Runtime_ocaml_Runtime[28], _ch_, Runtime_ocaml_Runtime[10], _EV_); + function _EW_(enfant){ + try{ var - nombre_moyen_enfants= - caml_call3 - (Runtime_ocaml_Runtime[28],_fp_,Runtime_ocaml_Runtime[15],_cgh_); - try - {var - _cgi_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$14)}, - _cgj_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_fr_,1)}, - _cgk_= - function(param) - {function _crF_(param) - {var _crL_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0588); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_crL_)} - function _crG_(param) - {var - _crH_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$3), - _crI_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _crJ_=caml_call2(Runtime_ocaml_Runtime[86],_crI_,_crH_), - _crK_= - caml_call2 - (Runtime_ocaml_Runtime[83], - prestations_familiales_dot_reg, - _crJ_); - return caml_call2(Runtime_ocaml_Runtime[29],_fs_,_crK_)} - return caml_call4(Runtime_ocaml_Runtime[63],_ft_,[0],_crG_,_crF_)}, - _cgl_= - [0, - function(param) - {function _co5_(param) - {var - _crC_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$15), - _crD_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_crD_,_crC_)) - {var _crE_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0588$0); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_crE_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$16)} - function _co6_(param) - {var _crB_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fu_); - return caml_call2(Runtime_ocaml_Runtime[29],_fv_,_crB_)} - var - _co7_= + _EY_ = function(param){return 0;}, + _EZ_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _cj_, 1); + }, + _E0_ = + [0, + function(param){ + function _E3_(param){ + function _E8_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _E9_(param){return 0;} + var + _E__ = [0, - function(param) - {function _co8_(param){throw Runtime_ocaml_Runtime[2]} - function _co9_(param){return 0} - function _co__(param) - {function _crv_(param) - {var - _crz_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$17), - _crA_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - return caml_call2(Runtime_ocaml_Runtime[121],_crA_,_crz_) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_5728) - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$18)} - function _crw_(param) - {var - _crx_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fw_), - _cry_= - caml_call2 - (Runtime_ocaml_Runtime[83], - _crx_, - avait_enfant_a_charge_avant_1e); - return caml_call2(Runtime_ocaml_Runtime[29],_fx_,_cry_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_fy_,[0],_crw_,_crv_)} - function _co$_(param) - {function _crh_(param) - {var - _crs_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$19), - _crt_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_crt_,_crs_)) - {var _cru_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0717); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cru_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$20)} - function _cri_(param) - {var - _crj_= - caml_call1 - (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), - _crk_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), - _crl_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_crk_), - _crm_=caml_call2(Runtime_ocaml_Runtime[83],_crl_,_crj_), - _crn_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _cro_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_crn_), - _crp_=caml_call2(Runtime_ocaml_Runtime[83],_cro_,_crm_), - _crq_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fz_), - _crr_=caml_call2(Runtime_ocaml_Runtime[83],_crq_,_crp_); - return caml_call2(Runtime_ocaml_Runtime[29],_fA_,_crr_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_fB_,[0],_cri_,_crh_)} - function _cpa_(param) - {function _cq5_(param) - {var - _cre_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$21), - _crf_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_crf_,_cre_)) - {var _crg_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0847); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_crg_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$22)} - function _cq6_(param) - {var - _cq7_= - caml_call1 - (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), - _cq8_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), - _cq9_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cq8_), - _cq__=caml_call2(Runtime_ocaml_Runtime[83],_cq9_,_cq7_), - _cq$_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _cra_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cq$_), - _crb_=caml_call2(Runtime_ocaml_Runtime[83],_cra_,_cq__), - _crc_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fC_), - _crd_=caml_call2(Runtime_ocaml_Runtime[83],_crc_,_crb_); - return caml_call2(Runtime_ocaml_Runtime[29],_fD_,_crd_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_fE_,[0],_cq6_,_cq5_)} - function _cpb_(param) - {function _cqR_(param) - {var - _cq2_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$23), - _cq3_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_cq3_,_cq2_)) - {var _cq4_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0976); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cq4_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$24)} - function _cqS_(param) - {var - _cqT_= - caml_call1 - (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), - _cqU_=caml_call3(Runtime_ocaml_Runtime[57],2018,12,31), - _cqV_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cqU_), - _cqW_=caml_call2(Runtime_ocaml_Runtime[83],_cqV_,_cqT_), - _cqX_=caml_call3(Runtime_ocaml_Runtime[57],2018,1,1), - _cqY_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cqX_), - _cqZ_=caml_call2(Runtime_ocaml_Runtime[83],_cqY_,_cqW_), - _cq0_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fF_), - _cq1_=caml_call2(Runtime_ocaml_Runtime[83],_cq0_,_cqZ_); - return caml_call2(Runtime_ocaml_Runtime[29],_fG_,_cq1_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_fH_,[0],_cqS_,_cqR_)} - function _cpc_(param) - {function _cqD_(param) - {var - _cqO_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$25), - _cqP_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_cqP_,_cqO_)) - {var _cqQ_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_1105); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cqQ_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$26)} - function _cqE_(param) - {var - _cqF_= - caml_call1 - (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), - _cqG_=caml_call3(Runtime_ocaml_Runtime[57],2017,12,31), - _cqH_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cqG_), - _cqI_=caml_call2(Runtime_ocaml_Runtime[83],_cqH_,_cqF_), - _cqJ_=caml_call3(Runtime_ocaml_Runtime[57],2017,1,1), - _cqK_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cqJ_), - _cqL_=caml_call2(Runtime_ocaml_Runtime[83],_cqK_,_cqI_), - _cqM_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fI_), - _cqN_=caml_call2(Runtime_ocaml_Runtime[83],_cqM_,_cqL_); - return caml_call2(Runtime_ocaml_Runtime[29],_fJ_,_cqN_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_fK_,[0],_cqE_,_cqD_)} - function _cpd_(param) - {function _cqp_(param) - {var - _cqA_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$27), - _cqB_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_cqB_,_cqA_)) - {var _cqC_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_1163); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cqC_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$28)} - function _cqq_(param) - {var - _cqr_= - caml_call1 - (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), - _cqs_=caml_call3(Runtime_ocaml_Runtime[57],2016,12,31), - _cqt_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cqs_), - _cqu_=caml_call2(Runtime_ocaml_Runtime[83],_cqt_,_cqr_), - _cqv_=caml_call3(Runtime_ocaml_Runtime[57],2016,1,1), - _cqw_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cqv_), - _cqx_=caml_call2(Runtime_ocaml_Runtime[83],_cqw_,_cqu_), - _cqy_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fL_), - _cqz_=caml_call2(Runtime_ocaml_Runtime[83],_cqy_,_cqx_); - return caml_call2(Runtime_ocaml_Runtime[29],_fM_,_cqz_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_fN_,[0],_cqq_,_cqp_)} - function _cpe_(param) - {function _cqb_(param) - {var - _cqm_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$29), - _cqn_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_cqn_,_cqm_)) - {var _cqo_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_122); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cqo_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$30)} - function _cqc_(param) - {var - _cqd_= - caml_call1 - (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), - _cqe_=caml_call3(Runtime_ocaml_Runtime[57],2015,12,31), - _cqf_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cqe_), - _cqg_=caml_call2(Runtime_ocaml_Runtime[83],_cqf_,_cqd_), - _cqh_=caml_call3(Runtime_ocaml_Runtime[57],2015,1,1), - _cqi_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cqh_), - _cqj_=caml_call2(Runtime_ocaml_Runtime[83],_cqi_,_cqg_), - _cqk_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fO_), - _cql_=caml_call2(Runtime_ocaml_Runtime[83],_cqk_,_cqj_); - return caml_call2(Runtime_ocaml_Runtime[29],_fP_,_cql_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_fQ_,[0],_cqc_,_cqb_)} - function _cpf_(param) - {function _cpZ_(param) - {var - _cp__=caml_call1(Runtime_ocaml_Runtime[46],cst_0$31), - _cp$_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_cp$_,_cp__)) - {var _cqa_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_1278); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cqa_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$32)} - function _cp0_(param) - {var - _cp1_= - caml_call1 - (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), - _cp2_=caml_call3(Runtime_ocaml_Runtime[57],2014,12,31), - _cp3_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cp2_), - _cp4_=caml_call2(Runtime_ocaml_Runtime[83],_cp3_,_cp1_), - _cp5_=caml_call3(Runtime_ocaml_Runtime[57],2014,1,1), - _cp6_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cp5_), - _cp7_=caml_call2(Runtime_ocaml_Runtime[83],_cp6_,_cp4_), - _cp8_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fR_), - _cp9_=caml_call2(Runtime_ocaml_Runtime[83],_cp8_,_cp7_); - return caml_call2(Runtime_ocaml_Runtime[29],_fS_,_cp9_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_fT_,[0],_cp0_,_cpZ_)} - function _cpg_(param) - {function _cpL_(param) - {var - _cpW_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$33), - _cpX_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_cpX_,_cpW_)) - {var _cpY_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_1335); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cpY_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$34)} - function _cpM_(param) - {var - _cpN_= - caml_call1 - (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), - _cpO_=caml_call3(Runtime_ocaml_Runtime[57],2013,12,31), - _cpP_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cpO_), - _cpQ_=caml_call2(Runtime_ocaml_Runtime[83],_cpP_,_cpN_), - _cpR_=caml_call3(Runtime_ocaml_Runtime[57],2013,1,1), - _cpS_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cpR_), - _cpT_=caml_call2(Runtime_ocaml_Runtime[83],_cpS_,_cpQ_), - _cpU_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fU_), - _cpV_=caml_call2(Runtime_ocaml_Runtime[83],_cpU_,_cpT_); - return caml_call2(Runtime_ocaml_Runtime[29],_fV_,_cpV_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_fW_,[0],_cpM_,_cpL_)} - function _cph_(param) - {function _cpx_(param) - {var - _cpI_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$35), - _cpJ_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_cpJ_,_cpI_)) - {var _cpK_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_1393); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cpK_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$36)} - function _cpy_(param) - {var - _cpz_= - caml_call1 - (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), - _cpA_=caml_call3(Runtime_ocaml_Runtime[57],2012,12,31), - _cpB_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cpA_), - _cpC_=caml_call2(Runtime_ocaml_Runtime[83],_cpB_,_cpz_), - _cpD_=caml_call3(Runtime_ocaml_Runtime[57],2012,1,1), - _cpE_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cpD_), - _cpF_=caml_call2(Runtime_ocaml_Runtime[83],_cpE_,_cpC_), - _cpG_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fX_), - _cpH_=caml_call2(Runtime_ocaml_Runtime[83],_cpG_,_cpF_); - return caml_call2(Runtime_ocaml_Runtime[29],_fY_,_cpH_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_fZ_,[0],_cpy_,_cpx_)} + function(param){ + function _E$_(param){return 1;} + function _Fa_(param){ + switch(enfant[2][0]){ + case 0: + var _Fk_ = 0; break; + case 1: + var _Fk_ = 1; break; + default: var _Fk_ = 0; + } + switch(enfant[2][0]){ + case 0: + var _Fl_ = 1; break; + case 1: + var _Fl_ = 0; break; + default: var _Fl_ = 0; + } var - _cpi_= + _Fm_ = caml_call2(Runtime_ocaml_Runtime[84], _Fl_, _Fk_); + return caml_call2(Runtime_ocaml_Runtime[29], _ck_, _Fm_); + } + var + _Fb_ = [0, - function(param) - {function _cpj_(param) - {var - _cpu_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$37), - _cpv_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_cpv_,_cpu_)) - {var _cpw_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_145); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cpw_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$38)} - function _cpk_(param) - {var - _cpl_= - caml_call1 - (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), - _cpm_=caml_call3(Runtime_ocaml_Runtime[57],2011,12,31), - _cpn_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cpm_), - _cpo_=caml_call2(Runtime_ocaml_Runtime[83],_cpn_,_cpl_), - _cpp_=caml_call3(Runtime_ocaml_Runtime[57],2011,1,1), - _cpq_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cpp_), - _cpr_=caml_call2(Runtime_ocaml_Runtime[83],_cpq_,_cpo_), - _cps_=caml_call2(Runtime_ocaml_Runtime[86],residence,_f0_), - _cpt_=caml_call2(Runtime_ocaml_Runtime[83],_cps_,_cpr_); - return caml_call2(Runtime_ocaml_Runtime[29],_f1_,_cpt_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_f2_,[0],_cpk_,_cpj_)}, - _cph_, - _cpg_, - _cpf_, - _cpe_, - _cpd_, - _cpc_, - _cpb_, - _cpa_, - _co$_, - _co__]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_f3_,_cpi_,_co9_,_co8_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_f4_,_co7_,_co6_,_co5_)}, - _cgk_], - _cgm_=caml_call4(Runtime_ocaml_Runtime[63],_f5_,_cgl_,_cgj_,_cgi_)} - catch(_co4_) - {_co4_ = caml_wrap_exception(_co4_); - if(_co4_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_fq_]; - throw _co4_} - var - montant_initial_base_premier_e= - caml_call3 - (Runtime_ocaml_Runtime[28],_f6_,Runtime_ocaml_Runtime[13],_cgm_); - try - {var - _cgn_=function(param){return 0}, - _cgo_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_f8_,1)}, - _cgp_= - [0, - function(param) - {function _coH_(param){return 1} - function _coI_(param) - {var - _co1_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$10), - _co2_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _co3_=caml_call2(Runtime_ocaml_Runtime[126],_co2_,_co1_); - return caml_call2(Runtime_ocaml_Runtime[29],_f9_,_co3_)} - var - _coJ_= - [0, - function(param) - {function _coK_(param){throw Runtime_ocaml_Runtime[2]} - function _coL_(param){return 0} - var - _coM_= - [0, - function(param) - {function _coN_(param){return 1} - function _coO_(param) - {var - _coX_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$4), - _coY_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _coZ_=caml_call2(Runtime_ocaml_Runtime[126],_coY_,_coX_), - _co0_= - caml_call2 - (Runtime_ocaml_Runtime[83], - prestations_familiales_dot_reg, - _coZ_); - return caml_call2(Runtime_ocaml_Runtime[29],_f__,_co0_)} + function(param){ + function _Fc_(param){return 1;} + function _Fd_(param){ var - _coP_= - [0, - function(param) - {function _coQ_(param){return 1} - function _coR_(param) - {var - _coS_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$5), - _coT_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _coU_=caml_call2(Runtime_ocaml_Runtime[126],_coT_,_coS_), - _coV_=caml_call2(Runtime_ocaml_Runtime[86],residence,_f$_), - _coW_=caml_call2(Runtime_ocaml_Runtime[83],_coV_,_coU_); - return caml_call2(Runtime_ocaml_Runtime[29],_ga_,_coW_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_gb_,[0],_coR_,_coQ_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_gc_,_coP_,_coO_,_coN_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_gd_,_coM_,_coL_,_coK_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_ge_,_coJ_,_coI_,_coH_)}], - _cgq_=caml_call4(Runtime_ocaml_Runtime[63],_gf_,_cgp_,_cgo_,_cgn_)} - catch(_coG_) - {_coG_ = caml_wrap_exception(_coG_); - if(_coG_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_f7_]; - throw _coG_} - var - droit_ouvert_base= - caml_call3 - (Runtime_ocaml_Runtime[28],_gg_,Runtime_ocaml_Runtime[12],_cgq_); - function _cgr_(enfant) - {try - {var - _cob_=function(param){return 0}, - _coc_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_gi_,1)}, - _cod_= - [0, - function(param) - {function _cog_(param){return 1} - function _coh_(param) - {var - _cou_= - caml_call3 - (Runtime_ocaml_Runtime[28],_gj_,embed_enfant,enfant), - _cov_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_gk_,age_minimum_alinea_1_l521_3), - _cou_), - _cow_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _gl_, - Runtime_ocaml_Runtime[17], - _cov_), - _cox_=caml_call2(Runtime_ocaml_Runtime[27],_gm_,_cow_), - _coy_= - caml_call3(Runtime_ocaml_Runtime[94],2,enfant[4],_cox_), - _coz_= - caml_call2(Runtime_ocaml_Runtime[120],_coy_,date_courante), - _coA_= - caml_call3 - (Runtime_ocaml_Runtime[28],_gn_,embed_enfant,enfant), - _coB_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_go_,est_enfant_le_plus_age), - _coA_), - _coC_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _gp_, - Runtime_ocaml_Runtime[12], - _coB_), - _coD_=caml_call2(Runtime_ocaml_Runtime[27],_gq_,_coC_), - _coE_=caml_call1(Runtime_ocaml_Runtime[67],_coD_), - _coF_=caml_call2(Runtime_ocaml_Runtime[83],_coE_,_coz_); - return caml_call2(Runtime_ocaml_Runtime[29],_gr_,_coF_)} - var - _coi_= - [0, - function(param) - {function _coj_(param){return 1} - function _cok_(param) - {var - _col_= - caml_call3 - (Runtime_ocaml_Runtime[28],_gs_,embed_enfant,enfant), - _com_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_gt_,age_minimum_alinea_1_l521_3), - _col_), - _con_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _gu_, - Runtime_ocaml_Runtime[17], - _com_), - _coo_=caml_call2(Runtime_ocaml_Runtime[27],_gv_,_con_), - _cop_= - caml_call3(Runtime_ocaml_Runtime[94],2,enfant[4],_coo_), - _coq_= - caml_call2(Runtime_ocaml_Runtime[120],_cop_,date_courante), - _cor_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cos_= - caml_call2 - (Runtime_ocaml_Runtime[126], - _cor_, - nombre_enfants_alinea_2_l521_3), - _cot_=caml_call2(Runtime_ocaml_Runtime[83],_cos_,_coq_); - return caml_call2(Runtime_ocaml_Runtime[29],_gw_,_cot_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_gx_,[0],_cok_,_coj_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_gy_,_coi_,_coh_,_cog_)}], - _coe_=caml_call4(Runtime_ocaml_Runtime[63],_gz_,_cod_,_coc_,_cob_); - return _coe_} - catch(_cof_) - {_cof_ = caml_wrap_exception(_cof_); - if(_cof_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_gh_]; - throw _cof_}} - var - droit_ouvert_majoration= - caml_call3 - (Runtime_ocaml_Runtime[28],_gA_,Runtime_ocaml_Runtime[10],_cgr_); - function _cgs_(allocation) - {try - {var - _cnA_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$39)}, - _cnB_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_gC_,1)}, - _cnC_= - [0, - function(param) - {function _cnF_(param){throw Runtime_ocaml_Runtime[2]} - function _cnG_(param){return 0} - function _cnH_(param) - {function _cnY_(param) - {var - _cn6_=caml_call1(Runtime_ocaml_Runtime[39],cst_12), - _cn7_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$6), - _cn8_=caml_call2(Runtime_ocaml_Runtime[107],_cn7_,_cn6_), - _cn9_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$0), - _cn__= - caml_call2(Runtime_ocaml_Runtime[104],allocation,_cn9_), - _cn$_= - caml_call2 - (Runtime_ocaml_Runtime[93],plafond_i_i_d521_3,_cn__), - _coa_= - caml_call2 - (Runtime_ocaml_Runtime[98],_cn$_,ressources_menage); - return caml_call2(Runtime_ocaml_Runtime[104],_coa_,_cn8_)} - function _cnZ_(param) - {var - _cn0_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$1), - _cn1_= - caml_call2(Runtime_ocaml_Runtime[104],allocation,_cn0_), - _cn2_= - caml_call2 - (Runtime_ocaml_Runtime[93],plafond_i_i_d521_3,_cn1_), - _cn3_= - caml_call2 - (Runtime_ocaml_Runtime[118],ressources_menage,_cn2_), - _cn4_= - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_i_d521_3), - _cn5_=caml_call2(Runtime_ocaml_Runtime[83],_cn4_,_cn3_); - return caml_call2(Runtime_ocaml_Runtime[29],_gD_,_cn5_)} + _Fe_ = + caml_call3 + (Runtime_ocaml_Runtime[94], 2, enfant[4], age_l512_3_2), + _Ff_ = + caml_call2(Runtime_ocaml_Runtime[125], _Fe_, date_courante), + _Fg_ = + caml_call2 + (Runtime_ocaml_Runtime[118], enfant[3], plafond_l512_3_2), + _Fh_ = caml_call2(Runtime_ocaml_Runtime[83], _Fg_, _Ff_); + switch(enfant[2][0]){ + case 0: + var _Fi_ = 0; break; + case 1: + var _Fi_ = 0; break; + default: var _Fi_ = 1; + } + var + _Fj_ = caml_call2(Runtime_ocaml_Runtime[83], _Fi_, _Fh_); + return caml_call2(Runtime_ocaml_Runtime[29], _cl_, _Fj_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _cm_, [0], _Fd_, _Fc_); + }]; return caml_call4 - (Runtime_ocaml_Runtime[63],_gE_,[0],_cnZ_,_cnY_)} - var - _cnI_= - [0, - function(param) - {function _cnJ_(param) - {var - _cnR_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$2), - _cnS_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$7), - _cnT_=caml_call2(Runtime_ocaml_Runtime[107],_cnS_,_cnR_), - _cnU_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$3), - _cnV_= - caml_call2(Runtime_ocaml_Runtime[104],allocation,_cnU_), - _cnW_= - caml_call2(Runtime_ocaml_Runtime[93],plafond_i_d521_3,_cnV_), - _cnX_= - caml_call2 - (Runtime_ocaml_Runtime[98],_cnW_,ressources_menage); - return caml_call2(Runtime_ocaml_Runtime[104],_cnX_,_cnT_)} - function _cnK_(param) - {var - _cnL_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$4), - _cnM_= - caml_call2(Runtime_ocaml_Runtime[104],allocation,_cnL_), - _cnN_= - caml_call2(Runtime_ocaml_Runtime[93],plafond_i_d521_3,_cnM_), - _cnO_= - caml_call2 - (Runtime_ocaml_Runtime[118],ressources_menage,_cnN_), - _cnP_= - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_d521_3), - _cnQ_=caml_call2(Runtime_ocaml_Runtime[83],_cnP_,_cnO_); - return caml_call2(Runtime_ocaml_Runtime[29],_gF_,_cnQ_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_gG_,[0],_cnK_,_cnJ_)}, - _cnH_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_gH_,_cnI_,_cnG_,_cnF_)}], - _cnD_=caml_call4(Runtime_ocaml_Runtime[63],_gI_,_cnC_,_cnB_,_cnA_); - return _cnD_} - catch(_cnE_) - {_cnE_ = caml_wrap_exception(_cnE_); - if(_cnE_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_gB_]; - throw _cnE_}} - var - complement_degressif= - caml_call3 - (Runtime_ocaml_Runtime[28],_gJ_,Runtime_ocaml_Runtime[10],_cgs_); - try - {var - _cgt_=function(param){throw Runtime_ocaml_Runtime[2]}, - _cgu_=function(param){return 0}, - _cgv_= - function(param) - {function _cnw_(param) - {var _cnz_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_05059); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cnz_)} - function _cnx_(param) - {var - _cny_= - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_i_d521_3); - return caml_call2(Runtime_ocaml_Runtime[29],_gL_,_cny_)} - return caml_call4(Runtime_ocaml_Runtime[63],_gM_,[0],_cnx_,_cnw_)}, - _cgw_= - function(param) - {function _cnq_(param) - {var _cnv_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_10117); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cnv_)} - function _cnr_(param) - {var - _cns_= - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage, - plafond_i_i_d521_3), - _cnt_= - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_d521_3), - _cnu_=caml_call2(Runtime_ocaml_Runtime[83],_cnt_,_cns_); - return caml_call2(Runtime_ocaml_Runtime[29],_gN_,_cnu_)} - return caml_call4(Runtime_ocaml_Runtime[63],_gO_,[0],_cnr_,_cnq_)}, - _cgx_= - [0, - function(param) - {function _cnm_(param) - {var _cnp_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_20234); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cnp_)} - function _cnn_(param) - {var - _cno_= - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage, - plafond_i_d521_3); - return caml_call2(Runtime_ocaml_Runtime[29],_gP_,_cno_)} - return caml_call4(Runtime_ocaml_Runtime[63],_gQ_,[0],_cnn_,_cnm_)}, - _cgw_, - _cgv_], - _cgy_=caml_call4(Runtime_ocaml_Runtime[63],_gR_,_cgx_,_cgu_,_cgt_)} - catch(_cnl_) - {_cnl_ = caml_wrap_exception(_cnl_); - if(_cnl_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_gK_]; - throw _cnl_} - var - montant_verse_forfaitaire_par_= - caml_call3 - (Runtime_ocaml_Runtime[28],_gS_,Runtime_ocaml_Runtime[13],_cgy_); - try - {var - _cgz_=function(param){throw Runtime_ocaml_Runtime[2]}, - _cgA_=function(param){return 0}, - _cgB_= - function(param) - {function _cna_(param) - {var - _cnd_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$11), - _cne_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_cne_,_cnd_)) - {var - _cnf_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$12), - _cng_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cnh_=caml_call2(Runtime_ocaml_Runtime[96],_cng_,_cnf_), - _cni_=caml_call1(Runtime_ocaml_Runtime[69],_cnh_), - _cnj_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_1025), - _cnk_= - caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cnj_); - return caml_call2(Runtime_ocaml_Runtime[104],_cnk_,_cni_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$40)} - function _cnb_(param) - {var - _cnc_= - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_i_d521_3); - return caml_call2(Runtime_ocaml_Runtime[29],_gU_,_cnc_)} - return caml_call4(Runtime_ocaml_Runtime[63],_gV_,[0],_cnb_,_cna_)}, - _cgC_= - function(param) - {function _cmZ_(param) - {var - _cm4_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$13), - _cm5_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_cm5_,_cm4_)) - {var - _cm6_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$14), - _cm7_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cm8_=caml_call2(Runtime_ocaml_Runtime[96],_cm7_,_cm6_), - _cm9_=caml_call1(Runtime_ocaml_Runtime[69],_cm8_), - _cm__=caml_call1(Runtime_ocaml_Runtime[39],cst_0_205), - _cm$_= - caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cm__); - return caml_call2(Runtime_ocaml_Runtime[104],_cm$_,_cm9_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$41)} - function _cm0_(param) - {var - _cm1_= - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage, - plafond_i_i_d521_3), - _cm2_= - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_d521_3), - _cm3_=caml_call2(Runtime_ocaml_Runtime[83],_cm2_,_cm1_); - return caml_call2(Runtime_ocaml_Runtime[29],_gW_,_cm3_)} - return caml_call4(Runtime_ocaml_Runtime[63],_gX_,[0],_cm0_,_cmZ_)}, - _cgD_= - [0, - function(param) - {function _cmO_(param) - {var - _cmR_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$15), - _cmS_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_cmS_,_cmR_)) - {var - _cmT_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$16), - _cmU_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cmV_=caml_call2(Runtime_ocaml_Runtime[96],_cmU_,_cmT_), - _cmW_=caml_call1(Runtime_ocaml_Runtime[69],_cmV_), - _cmX_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_41), - _cmY_= - caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cmX_); - return caml_call2(Runtime_ocaml_Runtime[104],_cmY_,_cmW_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$42)} - function _cmP_(param) - {var - _cmQ_= - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage, - plafond_i_d521_3); - return caml_call2(Runtime_ocaml_Runtime[29],_gY_,_cmQ_)} - return caml_call4(Runtime_ocaml_Runtime[63],_gZ_,[0],_cmP_,_cmO_)}, - _cgC_, - _cgB_], - _cgE_=caml_call4(Runtime_ocaml_Runtime[63],_g0_,_cgD_,_cgA_,_cgz_)} - catch(_cmN_) - {_cmN_ = caml_wrap_exception(_cmN_); - if(_cmN_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_gT_]; - throw _cmN_} - var - montant_initial_base_troisieme$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_g1_,Runtime_ocaml_Runtime[13],_cgE_); - try - {var - _cgF_= - function(param) - {function _cmo_(param){throw Runtime_ocaml_Runtime[2]} - function _cmp_(param){return 0} - function _cmq_(param) - {function _cmH_(param) - {var - _cmK_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$8), - _cmL_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_cmL_,_cmK_)) - {var _cmM_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_08); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cmM_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$43)} - function _cmI_(param) - {var - _cmJ_= - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_i_d521_3); - return caml_call2(Runtime_ocaml_Runtime[29],_g3_,_cmJ_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_g4_,[0],_cmI_,_cmH_)} - function _cmr_(param) - {function _cmz_(param) - {var - _cmE_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$9), - _cmF_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_cmF_,_cmE_)) - {var _cmG_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_16$0); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cmG_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$44)} - function _cmA_(param) - {var - _cmB_= - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage, - plafond_i_i_d521_3), - _cmC_= - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_d521_3), - _cmD_=caml_call2(Runtime_ocaml_Runtime[83],_cmC_,_cmB_); - return caml_call2(Runtime_ocaml_Runtime[29],_g5_,_cmD_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_g6_,[0],_cmA_,_cmz_)} - var - _cms_= - [0, - function(param) - {function _cmt_(param) - {var - _cmw_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$10), - _cmx_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_cmx_,_cmw_)) - {var _cmy_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_32); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cmy_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$45)} - function _cmu_(param) - {var - _cmv_= - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage, - plafond_i_d521_3); - return caml_call2(Runtime_ocaml_Runtime[29],_g7_,_cmv_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_g8_,[0],_cmu_,_cmt_)}, - _cmr_, - _cmq_]; + (Runtime_ocaml_Runtime[63], _cn_, _Fb_, _Fa_, _E$_); + }]; return caml_call4 - (Runtime_ocaml_Runtime[63],_g9_,_cms_,_cmp_,_cmo_)}, - _cgG_=function(param){return 1}, - _cgH_= - [0, - function(param) - {function _ckd_(param) - {var - _cml_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$11), - _cmm_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_cmm_,_cml_)) - {var _cmn_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_32$0); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cmn_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$46)} - function _cke_(param) - {var _cmk_=caml_call2(Runtime_ocaml_Runtime[86],residence,_g__); - return caml_call2(Runtime_ocaml_Runtime[29],_g$_,_cmk_)} - var - _ckf_= - [0, - function(param) - {function _ckg_(param){throw Runtime_ocaml_Runtime[2]} - function _ckh_(param){return 0} - function _cki_(param) - {function _cl__(param) - {var - _cmh_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$12), - _cmi_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_cmi_,_cmh_)) - {var _cmj_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_3068); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cmj_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$47)} - function _cl$_(param) - {var - _cma_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), - _cmb_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cma_), - _cmc_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _cmd_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cmc_), - _cme_=caml_call2(Runtime_ocaml_Runtime[83],_cmd_,_cmb_), - _cmf_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ha_), - _cmg_=caml_call2(Runtime_ocaml_Runtime[83],_cmf_,_cme_); - return caml_call2(Runtime_ocaml_Runtime[29],_hb_,_cmg_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_hc_,[0],_cl$_,_cl__)} - function _ckj_(param) - {function _clY_(param) - {var - _cl7_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$13), - _cl8_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_cl8_,_cl7_)) - {var _cl9_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2936); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cl9_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$48)} - function _clZ_(param) - {var - _cl0_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), - _cl1_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cl0_), - _cl2_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _cl3_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cl2_), - _cl4_=caml_call2(Runtime_ocaml_Runtime[83],_cl3_,_cl1_), - _cl5_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hd_), - _cl6_=caml_call2(Runtime_ocaml_Runtime[83],_cl5_,_cl4_); - return caml_call2(Runtime_ocaml_Runtime[29],_he_,_cl6_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_hf_,[0],_clZ_,_clY_)} - function _ckk_(param) - {function _clM_(param) - {var - _clV_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$14), - _clW_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_clW_,_clV_)) - {var _clX_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2804); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_clX_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$49)} - function _clN_(param) - {var - _clO_=caml_call3(Runtime_ocaml_Runtime[57],2018,12,31), - _clP_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_clO_), - _clQ_=caml_call3(Runtime_ocaml_Runtime[57],2018,1,1), - _clR_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_clQ_), - _clS_=caml_call2(Runtime_ocaml_Runtime[83],_clR_,_clP_), - _clT_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hg_), - _clU_=caml_call2(Runtime_ocaml_Runtime[83],_clT_,_clS_); - return caml_call2(Runtime_ocaml_Runtime[29],_hh_,_clU_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_hi_,[0],_clN_,_clM_)} - function _ckl_(param) - {function _clA_(param) - {var - _clJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$15), - _clK_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_clK_,_clJ_)) - {var _clL_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2672); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_clL_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$50)} - function _clB_(param) - {var - _clC_=caml_call3(Runtime_ocaml_Runtime[57],2017,12,31), - _clD_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_clC_), - _clE_=caml_call3(Runtime_ocaml_Runtime[57],2017,1,1), - _clF_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_clE_), - _clG_=caml_call2(Runtime_ocaml_Runtime[83],_clF_,_clD_), - _clH_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hj_), - _clI_=caml_call2(Runtime_ocaml_Runtime[83],_clH_,_clG_); - return caml_call2(Runtime_ocaml_Runtime[29],_hk_,_clI_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_hl_,[0],_clB_,_clA_)} - function _ckm_(param) - {function _clo_(param) - {var - _clx_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$16), - _cly_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_cly_,_clx_)) - {var _clz_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2613); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_clz_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$51)} - function _clp_(param) - {var - _clq_=caml_call3(Runtime_ocaml_Runtime[57],2016,12,31), - _clr_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_clq_), - _cls_=caml_call3(Runtime_ocaml_Runtime[57],2016,1,1), - _clt_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cls_), - _clu_=caml_call2(Runtime_ocaml_Runtime[83],_clt_,_clr_), - _clv_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hm_), - _clw_=caml_call2(Runtime_ocaml_Runtime[83],_clv_,_clu_); - return caml_call2(Runtime_ocaml_Runtime[29],_hn_,_clw_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ho_,[0],_clp_,_clo_)} - function _ckn_(param) - {function _clc_(param) - {var - _cll_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$17), - _clm_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_clm_,_cll_)) - {var _cln_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2555); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cln_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$52)} - function _cld_(param) - {var - _cle_=caml_call3(Runtime_ocaml_Runtime[57],2015,12,31), - _clf_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cle_), - _clg_=caml_call3(Runtime_ocaml_Runtime[57],2015,1,1), - _clh_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_clg_), - _cli_=caml_call2(Runtime_ocaml_Runtime[83],_clh_,_clf_), - _clj_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hp_), - _clk_=caml_call2(Runtime_ocaml_Runtime[83],_clj_,_cli_); - return caml_call2(Runtime_ocaml_Runtime[29],_hq_,_clk_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_hr_,[0],_cld_,_clc_)} - function _cko_(param) - {function _ck2_(param) - {var - _ck$_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$18), - _cla_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_cla_,_ck$_)) - {var _clb_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2496); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_clb_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$53)} - function _ck3_(param) - {var - _ck4_=caml_call3(Runtime_ocaml_Runtime[57],2014,12,31), - _ck5_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_ck4_), - _ck6_=caml_call3(Runtime_ocaml_Runtime[57],2014,1,1), - _ck7_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ck6_), - _ck8_=caml_call2(Runtime_ocaml_Runtime[83],_ck7_,_ck5_), - _ck9_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hs_), - _ck__=caml_call2(Runtime_ocaml_Runtime[83],_ck9_,_ck8_); - return caml_call2(Runtime_ocaml_Runtime[29],_ht_,_ck__)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_hu_,[0],_ck3_,_ck2_)} - function _ckp_(param) - {function _ckQ_(param) - {var - _ckZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$19), - _ck0_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_ck0_,_ckZ_)) - {var _ck1_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2437); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_ck1_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$54)} - function _ckR_(param) - {var - _ckS_=caml_call3(Runtime_ocaml_Runtime[57],2013,12,31), - _ckT_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_ckS_), - _ckU_=caml_call3(Runtime_ocaml_Runtime[57],2013,1,1), - _ckV_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ckU_), - _ckW_=caml_call2(Runtime_ocaml_Runtime[83],_ckV_,_ckT_), - _ckX_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hv_), - _ckY_=caml_call2(Runtime_ocaml_Runtime[83],_ckX_,_ckW_); - return caml_call2(Runtime_ocaml_Runtime[29],_hw_,_ckY_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_hx_,[0],_ckR_,_ckQ_)} - function _ckq_(param) - {function _ckE_(param) - {var - _ckN_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$20), - _ckO_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_ckO_,_ckN_)) - {var _ckP_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2379); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_ckP_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$55)} - function _ckF_(param) - {var - _ckG_=caml_call3(Runtime_ocaml_Runtime[57],2012,12,31), - _ckH_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_ckG_), - _ckI_=caml_call3(Runtime_ocaml_Runtime[57],2012,1,1), - _ckJ_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ckI_), - _ckK_=caml_call2(Runtime_ocaml_Runtime[83],_ckJ_,_ckH_), - _ckL_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hy_), - _ckM_=caml_call2(Runtime_ocaml_Runtime[83],_ckL_,_ckK_); - return caml_call2(Runtime_ocaml_Runtime[29],_hz_,_ckM_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_hA_,[0],_ckF_,_ckE_)} - var - _ckr_= - [0, - function(param) - {function _cks_(param) - {var - _ckB_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$21), - _ckC_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(caml_call2(Runtime_ocaml_Runtime[121],_ckC_,_ckB_)) - {var _ckD_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_232); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_ckD_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$56)} - function _ckt_(param) - {var - _cku_=caml_call3(Runtime_ocaml_Runtime[57],2011,12,31), - _ckv_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cku_), - _ckw_=caml_call3(Runtime_ocaml_Runtime[57],2011,1,1), - _ckx_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ckw_), - _cky_=caml_call2(Runtime_ocaml_Runtime[83],_ckx_,_ckv_), - _ckz_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hB_), - _ckA_=caml_call2(Runtime_ocaml_Runtime[83],_ckz_,_cky_); - return caml_call2(Runtime_ocaml_Runtime[29],_hC_,_ckA_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_hD_,[0],_ckt_,_cks_)}, - _ckq_, - _ckp_, - _cko_, - _ckn_, - _ckm_, - _ckl_, - _ckk_, - _ckj_, - _cki_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_hE_,_ckr_,_ckh_,_ckg_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_hF_,_ckf_,_cke_,_ckd_)}], - _cgI_=caml_call4(Runtime_ocaml_Runtime[63],_hG_,_cgH_,_cgG_,_cgF_)} - catch(_ckc_) - {_ckc_ = caml_wrap_exception(_ckc_); - if(_ckc_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_g2_]; - throw _ckc_} + (Runtime_ocaml_Runtime[63], _co_, _E__, _E9_, _E8_); + } + function _E4_(param){return 1;} + var + _E5_ = + [0, + function(param){ + function _E6_(param){return 0;} + function _E7_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _cp_, enfant[7]); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _cq_, [0], _E7_, _E6_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _cr_, _E5_, _E4_, _E3_); + }], + _E1_ = caml_call4(Runtime_ocaml_Runtime[63], _cs_, _E0_, _EZ_, _EY_); + return _E1_; + } + catch(_E2_){ + var _EX_ = caml_wrap_exception(_E2_); + if(_EX_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _ci_], 1); + throw caml_maybe_attach_backtrace(_EX_, 0); + } + } + var + droit_ouvert = + caml_call3 + (Runtime_ocaml_Runtime[28], _ct_, Runtime_ocaml_Runtime[10], _EW_); + return [0, + droit_ouvert, + conditions_hors_age, + age_l512_3_2, + regime_outre_mer_l751_1]; + } + function allocations_familiales(allocations_familiales_in){ + var + personne_charge_effective_perm = allocations_familiales_in[1], + personne_charge_effective_perm$0 = allocations_familiales_in[2], + ressources_menage = allocations_familiales_in[3], + residence = allocations_familiales_in[4], + date_courante = allocations_familiales_in[5], + enfants_a_charge = allocations_familiales_in[6], + avait_enfant_a_charge_avant_1e = allocations_familiales_in[7]; + function _ls_(enfant){ + try{ var - montant_initial_base_deuxieme_= - caml_call3 - (Runtime_ocaml_Runtime[28],_hH_,Runtime_ocaml_Runtime[13],_cgI_); - try - {var - _cgJ_= - function(param) - {var _ckb_=caml_call1(Runtime_ocaml_Runtime[39],cst_0$57); - return caml_call2 - (Runtime_ocaml_Runtime[86],nombre_total_enfants,_ckb_) - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0$58) - :caml_call2 - (Runtime_ocaml_Runtime[107], - nombre_moyen_enfants, - nombre_total_enfants)}, - _cgK_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_hJ_,1)}, - _cgL_=caml_call4(Runtime_ocaml_Runtime[63],_hK_,[0],_cgK_,_cgJ_)} - catch(_cka_) - {_cka_ = caml_wrap_exception(_cka_); - if(_cka_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_hI_]; - throw _cka_} - var - rapport_enfants_total_moyen= - caml_call3 - (Runtime_ocaml_Runtime[28],_hL_,Runtime_ocaml_Runtime[15],_cgL_); - function _cgM_(enfant) - {try - {var - _cju_=function(param){throw Runtime_ocaml_Runtime[2]}, - _cjv_=function(param){return 0}, - _cjw_= - function(param) - {function _cj5_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$59)} - function _cj6_(param) - {var - _cj7_= - caml_call3 - (Runtime_ocaml_Runtime[28],_hN_,embed_enfant,enfant), - _cj8_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_hO_,droit_ouvert_majoration), - _cj7_), - _cj9_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _hP_, - Runtime_ocaml_Runtime[12], - _cj8_), - _cj__=caml_call2(Runtime_ocaml_Runtime[27],_hQ_,_cj9_), - _cj$_=caml_call1(Runtime_ocaml_Runtime[67],_cj__); - return caml_call2(Runtime_ocaml_Runtime[29],_hR_,_cj$_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_hS_,[0],_cj6_,_cj5_)}, - _cjx_= - function(param) - {function _cjW_(param) - {var _cj4_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_04); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cj4_)} - function _cjX_(param) - {var - _cjY_= - caml_call3 - (Runtime_ocaml_Runtime[28],_hT_,embed_enfant,enfant), - _cjZ_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_hU_,droit_ouvert_majoration), - _cjY_), - _cj0_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _hV_, - Runtime_ocaml_Runtime[12], - _cjZ_), - _cj1_=caml_call2(Runtime_ocaml_Runtime[27],_hW_,_cj0_), - _cj2_= - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_i_d521_3), - _cj3_=caml_call2(Runtime_ocaml_Runtime[83],_cj2_,_cj1_); - return caml_call2(Runtime_ocaml_Runtime[29],_hX_,_cj3_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_hY_,[0],_cjX_,_cjW_)}, - _cjy_= - function(param) - {function _cjL_(param) - {var _cjV_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_08$0); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cjV_)} - function _cjM_(param) - {var - _cjN_= - caml_call3 - (Runtime_ocaml_Runtime[28],_hZ_,embed_enfant,enfant), - _cjO_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_h0_,droit_ouvert_majoration), - _cjN_), - _cjP_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _h1_, - Runtime_ocaml_Runtime[12], - _cjO_), - _cjQ_=caml_call2(Runtime_ocaml_Runtime[27],_h2_,_cjP_), - _cjR_= - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage, - plafond_i_i_d521_3), - _cjS_= - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_d521_3), - _cjT_=caml_call2(Runtime_ocaml_Runtime[83],_cjS_,_cjR_), - _cjU_=caml_call2(Runtime_ocaml_Runtime[83],_cjT_,_cjQ_); - return caml_call2(Runtime_ocaml_Runtime[29],_h3_,_cjU_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_h4_,[0],_cjM_,_cjL_)}, - _cjz_= - [0, - function(param) - {function _cjC_(param) - {var _cjK_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_16$1); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cjK_)} - function _cjD_(param) - {var - _cjE_= - caml_call3 - (Runtime_ocaml_Runtime[28],_h5_,embed_enfant,enfant), - _cjF_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_h6_,droit_ouvert_majoration), - _cjE_), - _cjG_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _h7_, - Runtime_ocaml_Runtime[12], - _cjF_), - _cjH_=caml_call2(Runtime_ocaml_Runtime[27],_h8_,_cjG_), - _cjI_= - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage, - plafond_i_d521_3), - _cjJ_=caml_call2(Runtime_ocaml_Runtime[83],_cjI_,_cjH_); - return caml_call2(Runtime_ocaml_Runtime[29],_h9_,_cjJ_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_h__,[0],_cjD_,_cjC_)}, - _cjy_, - _cjx_, - _cjw_], - _cjA_=caml_call4(Runtime_ocaml_Runtime[63],_h$_,_cjz_,_cjv_,_cju_); - return _cjA_} - catch(_cjB_) - {_cjB_ = caml_wrap_exception(_cjB_); - if(_cjB_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_hM_]; - throw _cjB_}} - var - montant_initial_metropole_majo= - caml_call3 - (Runtime_ocaml_Runtime[28],_ia_,Runtime_ocaml_Runtime[10],_cgM_); - try - {var - _cgN_= - function(param) - {function _cjn_(enfant) - {var - _cjr_= - caml_call3(Runtime_ocaml_Runtime[28],_ic_,embed_enfant,enfant), - _cjs_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_id_,droit_ouvert_forfaitaire), - _cjr_), - _cjt_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _ie_, - Runtime_ocaml_Runtime[12], - _cjs_); - return caml_call2(Runtime_ocaml_Runtime[27],_if_,_cjt_)} - var - _cjo_= - caml_call2(Runtime_ocaml_Runtime[90],_cjn_,enfants_a_charge), - _cjp_=caml_call1(Runtime_ocaml_Runtime[68],_cjo_), - _cjq_=caml_call1(Runtime_ocaml_Runtime[69],_cjp_); - return caml_call2 - (Runtime_ocaml_Runtime[104], - montant_verse_forfaitaire_par_, - _cjq_)}, - _cgO_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ig_,1)}, - _cgP_=caml_call4(Runtime_ocaml_Runtime[63],_ih_,[0],_cgO_,_cgN_)} - catch(_cjm_) - {_cjm_ = caml_wrap_exception(_cjm_); - if(_cjm_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ib_]; - throw _cjm_} - var - montant_verse_forfaitaire= - caml_call3 - (Runtime_ocaml_Runtime[28],_ii_,Runtime_ocaml_Runtime[13],_cgP_); - try - {var - _cgQ_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[93], - montant_initial_base_deuxieme_, - montant_initial_base_troisieme$0)}, - _cgR_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ik_,1)}, - _cgS_= - [0, - function(param) - {function _ci9_(param){throw Runtime_ocaml_Runtime[2]} - function _ci__(param){return 0} - function _ci$_(param) - {function _cjh_(param) - {var - _cjk_= - caml_call2 - (Runtime_ocaml_Runtime[93], - montant_initial_base_premier_e, - montant_initial_base_deuxieme_), - _cjl_= - caml_call2 - (Runtime_ocaml_Runtime[93], - _cjk_, - montant_initial_base_troisieme); - return caml_call2 - (Runtime_ocaml_Runtime[93], - _cjl_, - montant_initial_base_quatrieme)} - function _cji_(param) - {var - _cjj_= - caml_call2(Runtime_ocaml_Runtime[86],residence,_il_); - return caml_call2(Runtime_ocaml_Runtime[29],_im_,_cjj_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_in_,[0],_cji_,_cjh_)} - var - _cja_= - [0, - function(param) - {function _cjb_(param){return montant_initial_base_premier_e} - function _cjc_(param) - {var - _cjd_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$22), - _cje_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cjf_=caml_call2(Runtime_ocaml_Runtime[86],_cje_,_cjd_), - _cjg_= - caml_call2 - (Runtime_ocaml_Runtime[83], - prestations_familiales_dot_reg, - _cjf_); - return caml_call2(Runtime_ocaml_Runtime[29],_io_,_cjg_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ip_,[0],_cjc_,_cjb_)}, - _ci$_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_iq_,_cja_,_ci__,_ci9_)}], - _cgT_=caml_call4(Runtime_ocaml_Runtime[63],_ir_,_cgS_,_cgR_,_cgQ_)} - catch(_ci8_) - {_ci8_ = caml_wrap_exception(_ci8_); - if(_ci8_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ij_]; - throw _ci8_} - var - montant_initial_base= - caml_call3 - (Runtime_ocaml_Runtime[28],_is_,Runtime_ocaml_Runtime[13],_cgT_); - function _cgU_(enfant) - {try - {var - _cim_= - function(param) - {var - _ci5_= - caml_call3(Runtime_ocaml_Runtime[28],_iu_,embed_enfant,enfant), - _ci6_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _iv_, - montant_initial_metropole_majo), - _ci5_), - _ci7_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _iw_, - Runtime_ocaml_Runtime[13], - _ci6_); - return caml_call2(Runtime_ocaml_Runtime[27],_ix_,_ci7_)}, - _cin_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_iy_,1)}, - _cio_= - [0, - function(param) - {function _cir_(param){throw Runtime_ocaml_Runtime[2]} - function _cis_(param){return 0} - function _cit_(param) - {function _ciP_(param) - {var _ci4_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0567); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_ci4_)} - function _ciQ_(param) - {var - _ciR_=caml_call3(Runtime_ocaml_Runtime[60],16,0,0), - _ciS_= - caml_call3(Runtime_ocaml_Runtime[94],2,enfant[4],_ciR_), - _ciT_= - caml_call2(Runtime_ocaml_Runtime[120],_ciS_,date_courante), - _ciU_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$23), - _ciV_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _ciW_=caml_call2(Runtime_ocaml_Runtime[86],_ciV_,_ciU_), - _ciX_=caml_call2(Runtime_ocaml_Runtime[83],_ciW_,_ciT_), - _ciY_= - caml_call2 - (Runtime_ocaml_Runtime[83], - prestations_familiales_dot_reg, - _ciX_), - _ciZ_= - caml_call3 - (Runtime_ocaml_Runtime[28],_iz_,embed_enfant,enfant), - _ci0_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_iA_,droit_ouvert_majoration), - _ciZ_), - _ci1_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _iB_, - Runtime_ocaml_Runtime[12], - _ci0_), - _ci2_=caml_call2(Runtime_ocaml_Runtime[27],_iC_,_ci1_), - _ci3_=caml_call2(Runtime_ocaml_Runtime[83],_ci2_,_ciY_); - return caml_call2(Runtime_ocaml_Runtime[29],_iD_,_ci3_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_iE_,[0],_ciQ_,_ciP_)} + _Ea_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _Eb_ = function(param){return 0;}, + _Ec_ = + function(param){ + function _En_(param){return _cv_;} + function _Eo_(param){ + switch(enfant[5][0]){ + case 0: + var _Ex_ = 0; break; + case 1: + var _Ex_ = 0; break; + case 2: + var _Ex_ = 1; break; + case 3: + var _Ex_ = 0; break; + default: var _Ex_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _cw_, _Ex_); + } + var + _Ep_ = + [0, + function(param){ + function _Eq_(param){return _cx_;} + function _Er_(param){ + switch(enfant[5][0]){ + case 0: + var _Ew_ = 0; break; + case 1: + var _Ew_ = 1; break; + case 2: + var _Ew_ = 0; break; + case 3: + var _Ew_ = 0; break; + default: var _Ew_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _cy_, _Ew_); + } var - _ciu_= - [0, - function(param) - {function _civ_(param) - {var _ciO_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0369); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_ciO_)} - function _ciw_(param) - {var - _cix_=caml_call3(Runtime_ocaml_Runtime[60],16,0,0), - _ciy_= - caml_call3(Runtime_ocaml_Runtime[94],2,enfant[4],_cix_), - _ciz_= - caml_call2(Runtime_ocaml_Runtime[125],_ciy_,date_courante), - _ciA_=caml_call3(Runtime_ocaml_Runtime[60],11,0,0), - _ciB_= - caml_call3(Runtime_ocaml_Runtime[94],2,enfant[4],_ciA_), - _ciC_= - caml_call2(Runtime_ocaml_Runtime[120],_ciB_,date_courante), - _ciD_=caml_call2(Runtime_ocaml_Runtime[83],_ciC_,_ciz_), - _ciE_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$24), - _ciF_= + _Es_ = + [0, + function(param){ + function _Et_(param){return _cz_;} + function _Eu_(param){ + switch(enfant[5][0]){ + case 0: + var _Ev_ = 0; break; + case 1: + var _Ev_ = 0; break; + case 2: + var _Ev_ = 0; break; + case 3: + var _Ev_ = 1; break; + default: var _Ev_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _cA_, _Ev_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _cB_, [0], _Eu_, _Et_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _cC_, _Es_, _Er_, _Eq_); + }]; + return caml_call4(Runtime_ocaml_Runtime[63], _cD_, _Ep_, _Eo_, _En_); + }, + _Ed_ = + function(param){ + function _Ek_(param){return _cE_;} + function _El_(param){ + switch(enfant[5][0]){ + case 0: + var _Em_ = 0; break; + case 1: + var _Em_ = 0; break; + case 2: + var _Em_ = 0; break; + case 3: + var _Em_ = 0; break; + default: var _Em_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _cF_, _Em_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _cG_, [0], _El_, _Ek_); + }, + _Ee_ = + [0, + function(param){ + function _Eh_(param){return _cH_;} + function _Ei_(param){ + switch(enfant[5][0]){ + case 0: + var _Ej_ = 1; break; + case 1: + var _Ej_ = 0; break; + case 2: + var _Ej_ = 0; break; + case 3: + var _Ej_ = 0; break; + default: var _Ej_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _cI_, _Ej_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _cJ_, [0], _Ei_, _Eh_); + }, + _Ed_, + _Ec_], + _Ef_ = caml_call4(Runtime_ocaml_Runtime[63], _cK_, _Ee_, _Eb_, _Ea_); + return _Ef_; + } + catch(_Eg_){ + var _D$_ = caml_wrap_exception(_Eg_); + if(_D$_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _cu_], 1); + throw caml_maybe_attach_backtrace(_D$_, 0); + } + } + var + prise_en_compte = + caml_call3 + (Runtime_ocaml_Runtime[28], _cL_, Runtime_ocaml_Runtime[10], _ls_); + function _lt_(enfant){ + try{ + var + _DN_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _DO_ = function(param){return 0;}, + _DP_ = + function(param){ + function _DW_(param){return _cN_;} + function _DX_(param){ + switch(enfant[5][0]){ + case 0: + var _D__ = 0; break; + case 1: + var _D__ = 0; break; + case 2: + var _D__ = 1; break; + case 3: + var _D__ = 0; break; + default: var _D__ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _cO_, _D__); + } + var + _DY_ = + [0, + function(param){ + function _DZ_(param){return _cP_;} + function _D0_(param){ + switch(enfant[5][0]){ + case 0: + var _D9_ = 0; break; + case 1: + var _D9_ = 1; break; + case 2: + var _D9_ = 0; break; + case 3: + var _D9_ = 0; break; + default: var _D9_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _cQ_, _D9_); + } + var + _D1_ = + [0, + function(param){ + function _D2_(param){return _cR_;} + function _D3_(param){ + switch(enfant[5][0]){ + case 0: + var _D8_ = 1; break; + case 1: + var _D8_ = 0; break; + case 2: + var _D8_ = 0; break; + case 3: + var _D8_ = 0; break; + default: var _D8_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _cS_, _D8_); + } + var + _D4_ = + [0, + function(param){ + function _D5_(param){return _cT_;} + function _D6_(param){ + switch(enfant[5][0]){ + case 0: + var _D7_ = 0; break; + case 1: + var _D7_ = 0; break; + case 2: + var _D7_ = 0; break; + case 3: + var _D7_ = 1; break; + default: var _D7_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _cU_, _D7_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _cV_, [0], _D6_, _D5_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _cW_, _D4_, _D3_, _D2_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _cX_, _D1_, _D0_, _DZ_); + }]; + return caml_call4(Runtime_ocaml_Runtime[63], _cY_, _DY_, _DX_, _DW_); + }, + _DQ_ = + [0, + function(param){ + function _DT_(param){return _cZ_;} + function _DU_(param){ + switch(enfant[5][0]){ + case 0: + var _DV_ = 0; break; + case 1: + var _DV_ = 0; break; + case 2: + var _DV_ = 0; break; + case 3: + var _DV_ = 0; break; + default: var _DV_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _c0_, _DV_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _c1_, [0], _DU_, _DT_); + }, + _DP_], + _DR_ = caml_call4(Runtime_ocaml_Runtime[63], _c2_, _DQ_, _DO_, _DN_); + return _DR_; + } + catch(_DS_){ + var _DM_ = caml_wrap_exception(_DS_); + if(_DM_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _cM_], 1); + throw caml_maybe_attach_backtrace(_DM_, 0); + } + } + caml_call3 + (Runtime_ocaml_Runtime[28], _c3_, Runtime_ocaml_Runtime[10], _lt_); + try{ + var + _lv_ = + function(param){return caml_call1(Runtime_ocaml_Runtime[46], cst_3);}, + _lw_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _c5_, 1); + }, + _lx_ = caml_call4(Runtime_ocaml_Runtime[63], _c6_, [0], _lw_, _lv_); + } + catch(_DL_){ + var _lu_ = caml_wrap_exception(_DL_); + if(_lu_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _c4_], 1); + throw caml_maybe_attach_backtrace(_lu_, 0); + } + caml_call3 + (Runtime_ocaml_Runtime[28], _c7_, Runtime_ocaml_Runtime[14], _lx_); + try{ + var + _lz_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[46], cst_3$0); + }, + _lA_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _c9_, 1); + }, + _lB_ = caml_call4(Runtime_ocaml_Runtime[63], _c__, [0], _lA_, _lz_); + } + catch(_DK_){ + var _ly_ = caml_wrap_exception(_DK_); + if(_ly_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _c8_], 1); + throw caml_maybe_attach_backtrace(_ly_, 0); + } + var + nombre_enfants_alinea_2_l521_3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _c$_, Runtime_ocaml_Runtime[14], _lB_), + _lC_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _da_, allocation_familiales_avril200), + 0), + result = caml_call2(Runtime_ocaml_Runtime[27], _db_, _lC_), + version_avril_2008_dot_age_min = result[1]; + try{ + var + _lE_ = function(param){return date_courante;}, + _lF_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _dd_, 1); + }, + _lG_ = caml_call4(Runtime_ocaml_Runtime[63], _de_, [0], _lF_, _lE_), + bmaf_dot_date_courante = + caml_call3 + (Runtime_ocaml_Runtime[28], _df_, Runtime_ocaml_Runtime[16], _lG_); + } + catch(_DJ_){ + var _lD_ = caml_wrap_exception(_DJ_); + if(_lD_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _dc_], 1); + throw caml_maybe_attach_backtrace(_lD_, 0); + } + var + _lH_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _dg_, base_mensuelle_allocations_fam), + [0, bmaf_dot_date_courante]), + result$0 = caml_call2(Runtime_ocaml_Runtime[27], _dh_, _lH_), + bmaf_dot_montant = result$0[1]; + try{ + var + _lJ_ = function(param){return date_courante;}, + _lK_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _dj_, 1); + }, + _lL_ = caml_call4(Runtime_ocaml_Runtime[63], _dk_, [0], _lK_, _lJ_), + prestations_familiales_dot_dat = + caml_call3 + (Runtime_ocaml_Runtime[28], _dl_, Runtime_ocaml_Runtime[16], _lL_); + } + catch(_DI_){ + var _lI_ = caml_wrap_exception(_DI_); + if(_lI_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _di_], 1); + throw caml_maybe_attach_backtrace(_lI_, 0); + } + try{ + var + _lN_ = function(param){return _dn_;}, + _lO_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _do_, 1); + }, + _lP_ = caml_call4(Runtime_ocaml_Runtime[63], _dp_, [0], _lO_, _lN_), + prestations_familiales_dot_pre = + caml_call3 + (Runtime_ocaml_Runtime[28], + _dq_, + embed_element_prestations_fami, + _lP_); + } + catch(_DH_){ + var _lM_ = caml_wrap_exception(_DH_); + if(_lM_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _dm_], 1); + throw caml_maybe_attach_backtrace(_lM_, 0); + } + try{ + var + _lR_ = function(param){return residence;}, + _lS_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ds_, 1); + }, + _lT_ = caml_call4(Runtime_ocaml_Runtime[63], _dt_, [0], _lS_, _lR_), + prestations_familiales_dot_res = + caml_call3(Runtime_ocaml_Runtime[28], _du_, embed_collectivite, _lT_); + } + catch(_DG_){ + var _lQ_ = caml_wrap_exception(_DG_); + if(_lQ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _dr_], 1); + throw caml_maybe_attach_backtrace(_lQ_, 0); + } + var + _lU_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _dv_, prestations_familiales), + [0, + prestations_familiales_dot_dat, + prestations_familiales_dot_pre, + prestations_familiales_dot_res]), + result$1 = caml_call2(Runtime_ocaml_Runtime[27], _dw_, _lU_), + prestations_familiales_dot_dro = result$1[1], + prestations_familiales_dot_con = result$1[2], + prestations_familiales_dot_age = result$1[3], + prestations_familiales_dot_reg = result$1[4]; + try{ + var + _lW_ = function(param){return enfants_a_charge;}, + _lX_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _dy_, 1); + }, + _lY_ = caml_call4(Runtime_ocaml_Runtime[63], _dz_, [0], _lX_, _lW_), + _lZ_ = caml_call1(Runtime_ocaml_Runtime[18], embed_enfant), + enfant_le_plus_age_dot_enfants = + caml_call3(Runtime_ocaml_Runtime[28], _dA_, _lZ_, _lY_); + } + catch(_DF_){ + var _lV_ = caml_wrap_exception(_DF_); + if(_lV_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _dx_], 1); + throw caml_maybe_attach_backtrace(_lV_, 0); + } + var + _l0_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _dB_, enfant_le_plus_age), + [0, enfant_le_plus_age_dot_enfants]), + result$2 = caml_call2(Runtime_ocaml_Runtime[27], _dC_, _l0_), + enfant_le_plus_age_dot_le_plus = result$2[1]; + function _l1_(enfant){ + try{ + var + _Du_ = + function(param){ + return caml_call3(Runtime_ocaml_Runtime[60], 14, 0, 0); + }, + _Dv_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _dE_, 1); + }, + _Dw_ = + [0, + function(param){ + function _Dz_(param){return version_avril_2008_dot_age_min;} + function _DA_(param){ + var + _DB_ = caml_call3(Runtime_ocaml_Runtime[57], 2008, 4, 30), + _DC_ = caml_call3(Runtime_ocaml_Runtime[60], 11, 0, 0), + _DD_ = caml_call3(Runtime_ocaml_Runtime[94], 2, enfant[4], _DC_), + _DE_ = caml_call2(Runtime_ocaml_Runtime[120], _DD_, _DB_); + return caml_call2(Runtime_ocaml_Runtime[29], _dF_, _DE_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _dG_, [0], _DA_, _Dz_); + }], + _Dx_ = caml_call4(Runtime_ocaml_Runtime[63], _dH_, _Dw_, _Dv_, _Du_); + return _Dx_; + } + catch(_Dy_){ + var _Dt_ = caml_wrap_exception(_Dy_); + if(_Dt_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _dD_], 1); + throw caml_maybe_attach_backtrace(_Dt_, 0); + } + } + var + age_minimum_alinea_1_l521_3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _dI_, Runtime_ocaml_Runtime[10], _l1_); + try{ + var + _l3_ = + function(param){ + function _Dp_(enfant){ + var + _Dq_ = + caml_call3(Runtime_ocaml_Runtime[28], _dK_, embed_enfant, enfant), + _Dr_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _dL_, + prestations_familiales_dot_dro), + _Dq_), + _Ds_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _dM_, + Runtime_ocaml_Runtime[12], + _Dr_); + return caml_call2(Runtime_ocaml_Runtime[27], _dN_, _Ds_); + } + return caml_call2(Runtime_ocaml_Runtime[90], _Dp_, enfants_a_charge); + }, + _l4_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _dO_, 1); + }, + _l5_ = caml_call4(Runtime_ocaml_Runtime[63], _dP_, [0], _l4_, _l3_); + } + catch(_Do_){ + var _l2_ = caml_wrap_exception(_Do_); + if(_l2_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _dJ_], 1); + throw caml_maybe_attach_backtrace(_l2_, 0); + } + var + _l6_ = caml_call1(Runtime_ocaml_Runtime[18], embed_enfant), + enfants_a_charge_droit_ouvert_ = + caml_call3(Runtime_ocaml_Runtime[28], _dQ_, _l6_, _l5_); + function _l7_(enfant){ + try{ + var + _Dk_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[86], + enfant_le_plus_age_dot_le_plus, + enfant); + }, + _Dl_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _dS_, 1); + }, + _Dm_ = caml_call4(Runtime_ocaml_Runtime[63], _dT_, [0], _Dl_, _Dk_); + return _Dm_; + } + catch(_Dn_){ + var _Dj_ = caml_wrap_exception(_Dn_); + if(_Dj_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _dR_], 1); + throw caml_maybe_attach_backtrace(_Dj_, 0); + } + } + var + est_enfant_le_plus_age = + caml_call3 + (Runtime_ocaml_Runtime[28], _dU_, Runtime_ocaml_Runtime[10], _l7_); + try{ + var + _l9_ = + function(param){ + var + _De_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _Df_ = caml_call1(Runtime_ocaml_Runtime[69], _De_), + _Dg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_559500), + _Dh_ = caml_call2(Runtime_ocaml_Runtime[104], _Dg_, _Df_), + _Di_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7830000); + return caml_call2(Runtime_ocaml_Runtime[93], _Di_, _Dh_); + }, + _l__ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _dW_, 1); + }, + _l$_ = + [0, + function(param){ + function _Co_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _Cp_(param){return 0;} + function _Cq_(param){ + function _C4_(param){ + var + _C$_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _Da_ = caml_call1(Runtime_ocaml_Runtime[69], _C$_), + _Db_ = caml_call1(Runtime_ocaml_Runtime[31], cst_582700), + _Dc_ = caml_call2(Runtime_ocaml_Runtime[104], _Db_, _Da_), + _Dd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_8155800); + return caml_call2(Runtime_ocaml_Runtime[93], _Dd_, _Dc_); + } + function _C5_(param){ + var + _C6_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 12, 31), + _C7_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _C6_), + _C8_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), + _C9_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _C8_), + _C__ = caml_call2(Runtime_ocaml_Runtime[83], _C9_, _C7_); + return caml_call2(Runtime_ocaml_Runtime[29], _dX_, _C__); + } + return caml_call4(Runtime_ocaml_Runtime[63], _dY_, [0], _C5_, _C4_); + } + function _Cr_(param){ + function _CS_(param){ + var + _CZ_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _C0_ = caml_call1(Runtime_ocaml_Runtime[69], _CZ_), + _C1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_577500), + _C2_ = caml_call2(Runtime_ocaml_Runtime[104], _C1_, _C0_), + _C3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_8083100); + return caml_call2(Runtime_ocaml_Runtime[93], _C3_, _C2_); + } + function _CT_(param){ + var + _CU_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), + _CV_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _CU_), + _CW_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _CX_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _CW_), + _CY_ = caml_call2(Runtime_ocaml_Runtime[83], _CX_, _CV_); + return caml_call2(Runtime_ocaml_Runtime[29], _dZ_, _CY_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _d0_, [0], _CT_, _CS_); + } + function _Cs_(param){ + function _CG_(param){ + var + _CN_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _CO_ = caml_call1(Runtime_ocaml_Runtime[69], _CN_), + _CP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_568400), + _CQ_ = caml_call2(Runtime_ocaml_Runtime[104], _CP_, _CO_), + _CR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7955800); + return caml_call2(Runtime_ocaml_Runtime[93], _CR_, _CQ_); + } + function _CH_(param){ + var + _CI_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), + _CJ_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _CI_), + _CK_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _CL_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _CK_), + _CM_ = caml_call2(Runtime_ocaml_Runtime[83], _CL_, _CJ_); + return caml_call2(Runtime_ocaml_Runtime[29], _d1_, _CM_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _d2_, [0], _CH_, _CG_); + } + var + _Ct_ = + [0, + function(param){ + function _Cu_(param){ + var + _CB_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _CC_ = caml_call1(Runtime_ocaml_Runtime[69], _CB_), + _CD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_562800), + _CE_ = caml_call2(Runtime_ocaml_Runtime[104], _CD_, _CC_), + _CF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7877000); + return caml_call2(Runtime_ocaml_Runtime[93], _CF_, _CE_); + } + function _Cv_(param){ + var + _Cw_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 12, 31), + _Cx_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _Cw_), + _Cy_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 1, 1), + _Cz_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Cy_), + _CA_ = caml_call2(Runtime_ocaml_Runtime[83], _Cz_, _Cx_); + return caml_call2(Runtime_ocaml_Runtime[29], _d3_, _CA_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _d4_, [0], _Cv_, _Cu_); + }, + _Cs_, + _Cr_, + _Cq_]; + return caml_call4(Runtime_ocaml_Runtime[63], _d5_, _Ct_, _Cp_, _Co_); + }], + _ma_ = caml_call4(Runtime_ocaml_Runtime[63], _d6_, _l$_, _l__, _l9_); + } + catch(_Cn_){ + var _l8_ = caml_wrap_exception(_Cn_); + if(_l8_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _dV_], 1); + throw caml_maybe_attach_backtrace(_l8_, 0); + } + var + plafond_i_i_d521_3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _d7_, Runtime_ocaml_Runtime[13], _ma_); + try{ + var + _mc_ = + function(param){ + var + _Ci_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _Cj_ = caml_call1(Runtime_ocaml_Runtime[69], _Ci_), + _Ck_ = caml_call1(Runtime_ocaml_Runtime[31], cst_559500$0), + _Cl_ = caml_call2(Runtime_ocaml_Runtime[104], _Ck_, _Cj_), + _Cm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5595000); + return caml_call2(Runtime_ocaml_Runtime[93], _Cm_, _Cl_); + }, + _md_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _d9_, 1); + }, + _me_ = + [0, + function(param){ + function _Bs_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _Bt_(param){return 0;} + function _Bu_(param){ + function _B8_(param){ + var + _Cd_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _Ce_ = caml_call1(Runtime_ocaml_Runtime[69], _Cd_), + _Cf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_582700$0), + _Cg_ = caml_call2(Runtime_ocaml_Runtime[104], _Cf_, _Ce_), + _Ch_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5827900); + return caml_call2(Runtime_ocaml_Runtime[93], _Ch_, _Cg_); + } + function _B9_(param){ + var + _B__ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 12, 31), + _B$_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _B__), + _Ca_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), + _Cb_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Ca_), + _Cc_ = caml_call2(Runtime_ocaml_Runtime[83], _Cb_, _B$_); + return caml_call2(Runtime_ocaml_Runtime[29], _d__, _Cc_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _d$_, [0], _B9_, _B8_); + } + function _Bv_(param){ + function _BW_(param){ + var + _B3_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _B4_ = caml_call1(Runtime_ocaml_Runtime[69], _B3_), + _B5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_577500$0), + _B6_ = caml_call2(Runtime_ocaml_Runtime[104], _B5_, _B4_), + _B7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5775900); + return caml_call2(Runtime_ocaml_Runtime[93], _B7_, _B6_); + } + function _BX_(param){ + var + _BY_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), + _BZ_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _BY_), + _B0_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _B1_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _B0_), + _B2_ = caml_call2(Runtime_ocaml_Runtime[83], _B1_, _BZ_); + return caml_call2(Runtime_ocaml_Runtime[29], _ea_, _B2_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _eb_, [0], _BX_, _BW_); + } + function _Bw_(param){ + function _BK_(param){ + var + _BR_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _BS_ = caml_call1(Runtime_ocaml_Runtime[69], _BR_), + _BT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_568400$0), + _BU_ = caml_call2(Runtime_ocaml_Runtime[104], _BT_, _BS_), + _BV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5684900); + return caml_call2(Runtime_ocaml_Runtime[93], _BV_, _BU_); + } + function _BL_(param){ + var + _BM_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), + _BN_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _BM_), + _BO_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _BP_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _BO_), + _BQ_ = caml_call2(Runtime_ocaml_Runtime[83], _BP_, _BN_); + return caml_call2(Runtime_ocaml_Runtime[29], _ec_, _BQ_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _ed_, [0], _BL_, _BK_); + } + var + _Bx_ = + [0, + function(param){ + function _By_(param){ + var + _BF_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _BG_ = caml_call1(Runtime_ocaml_Runtime[69], _BF_), + _BH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_562800$0), + _BI_ = caml_call2(Runtime_ocaml_Runtime[104], _BH_, _BG_), + _BJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5628600); + return caml_call2(Runtime_ocaml_Runtime[93], _BJ_, _BI_); + } + function _Bz_(param){ + var + _BA_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 12, 31), + _BB_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _BA_), + _BC_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 1, 1), + _BD_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _BC_), + _BE_ = caml_call2(Runtime_ocaml_Runtime[83], _BD_, _BB_); + return caml_call2(Runtime_ocaml_Runtime[29], _ee_, _BE_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ef_, [0], _Bz_, _By_); + }, + _Bw_, + _Bv_, + _Bu_]; + return caml_call4(Runtime_ocaml_Runtime[63], _eg_, _Bx_, _Bt_, _Bs_); + }], + _mf_ = caml_call4(Runtime_ocaml_Runtime[63], _eh_, _me_, _md_, _mc_); + } + catch(_Br_){ + var _mb_ = caml_wrap_exception(_Br_); + if(_mb_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _d8_], 1); + throw caml_maybe_attach_backtrace(_mb_, 0); + } + var + plafond_i_d521_3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _ei_, Runtime_ocaml_Runtime[13], _mf_); + try{ + var + _mh_ = function(param){return 0;}, + _mi_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ek_, 1); + }, + _mj_ = + [0, + function(param){ + function _Bi_(param){return 1;} + function _Bj_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _el_, 1); + } + var + _Bk_ = + [0, + function(param){ + function _Bl_(param){return 0;} + function _Bm_(param){ + var + _Bn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$0), + _Bo_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _Bp_ = caml_call2(Runtime_ocaml_Runtime[86], _Bo_, _Bn_), + _Bq_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + prestations_familiales_dot_reg, + _Bp_); + return caml_call2(Runtime_ocaml_Runtime[29], _em_, _Bq_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _en_, [0], _Bm_, _Bl_); + }]; + return caml_call4(Runtime_ocaml_Runtime[63], _eo_, _Bk_, _Bj_, _Bi_); + }], + _mk_ = caml_call4(Runtime_ocaml_Runtime[63], _ep_, _mj_, _mi_, _mh_); + } + catch(_Bh_){ + var _mg_ = caml_wrap_exception(_Bh_); + if(_mg_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _ej_], 1); + throw caml_maybe_attach_backtrace(_mg_, 0); + } + var + droit_ouvert_complement = + caml_call3 + (Runtime_ocaml_Runtime[28], _eq_, Runtime_ocaml_Runtime[12], _mk_); + function _ml_(enfant){ + try{ + var + _AS_ = function(param){return 0;}, + _AT_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _es_, 1); + }, + _AU_ = + [0, + function(param){ + function _AX_(param){return 1;} + function _AY_(param){ + var + _A6_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _et_, embed_enfant, enfant), + _A7_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _eu_, + prestations_familiales_dot_con), + _A6_), + _A8_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _ev_, + Runtime_ocaml_Runtime[12], + _A7_), + _A9_ = caml_call2(Runtime_ocaml_Runtime[27], _ew_, _A8_), + _A__ = caml_call2(Runtime_ocaml_Runtime[83], enfant[6], _A9_), + _A$_ = caml_call3(Runtime_ocaml_Runtime[60], 0, 0, 365), + _Ba_ = + caml_call3 + (Runtime_ocaml_Runtime[94], + 2, + enfant[4], + prestations_familiales_dot_age), + _Bb_ = caml_call2(Runtime_ocaml_Runtime[99], _Ba_, date_courante), + _Bc_ = caml_call2(Runtime_ocaml_Runtime[114], _Bb_, _A$_), + _Bd_ = caml_call2(Runtime_ocaml_Runtime[83], _Bc_, _A__), + _Be_ = caml_call1(Runtime_ocaml_Runtime[68], enfants_a_charge), + _Bf_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + _Be_, + nombre_enfants_alinea_2_l521_3), + _Bg_ = caml_call2(Runtime_ocaml_Runtime[83], _Bf_, _Bd_); + return caml_call2(Runtime_ocaml_Runtime[29], _ex_, _Bg_); + } + var + _AZ_ = + [0, + function(param){ + function _A0_(param){return 0;} + function _A1_(param){ + var + _A2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$1), + _A3_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _A4_ = caml_call2(Runtime_ocaml_Runtime[86], _A3_, _A2_), + _A5_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + prestations_familiales_dot_reg, + _A4_); + return caml_call2(Runtime_ocaml_Runtime[29], _ey_, _A5_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ez_, [0], _A1_, _A0_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _eA_, _AZ_, _AY_, _AX_); + }], + _AV_ = caml_call4(Runtime_ocaml_Runtime[63], _eB_, _AU_, _AT_, _AS_); + return _AV_; + } + catch(_AW_){ + var _AR_ = caml_wrap_exception(_AW_); + if(_AR_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _er_], 1); + throw caml_maybe_attach_backtrace(_AR_, 0); + } + } + var + droit_ouvert_forfaitaire = + caml_call3 + (Runtime_ocaml_Runtime[28], _eC_, Runtime_ocaml_Runtime[10], _ml_); + try{ + var + _mn_ = + function(param){ + var + _AJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$1), + _AK_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _AK_, _AJ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$0); + var + _AL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$2), + _AM_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _AN_ = caml_call2(Runtime_ocaml_Runtime[96], _AM_, _AL_), + _AO_ = caml_call1(Runtime_ocaml_Runtime[69], _AN_), + _AP_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0463), + _AQ_ = + caml_call2(Runtime_ocaml_Runtime[104], bmaf_dot_montant, _AP_); + return caml_call2(Runtime_ocaml_Runtime[104], _AQ_, _AO_); + }, + _mo_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _eE_, 1); + }, + _mp_ = caml_call4(Runtime_ocaml_Runtime[63], _eF_, [0], _mo_, _mn_); + } + catch(_AI_){ + var _mm_ = caml_wrap_exception(_AI_); + if(_mm_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _eD_], 1); + throw caml_maybe_attach_backtrace(_mm_, 0); + } + var + montant_initial_base_quatrieme = + caml_call3 + (Runtime_ocaml_Runtime[28], _eG_, Runtime_ocaml_Runtime[13], _mp_); + try{ + var + _mr_ = + function(param){ + var + _AF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2), + _AG_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _AG_, _AF_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$1); + var _AH_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_16); + return caml_call2(Runtime_ocaml_Runtime[104], bmaf_dot_montant, _AH_); + }, + _ms_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _eI_, 1); + }, + _mt_ = + [0, + function(param){ + function _yB_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _yC_(param){return 0;} + function _yD_(param){ + function _At_(param){ + var + _AC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$0), + _AD_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _AD_, _AC_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$2); + var _AE_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_143); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _AE_); + } + function _Au_(param){ + var + _Av_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), + _Aw_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _Av_), + _Ax_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _Ay_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Ax_), + _Az_ = caml_call2(Runtime_ocaml_Runtime[83], _Ay_, _Aw_), + _AA_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eJ_), + _AB_ = caml_call2(Runtime_ocaml_Runtime[83], _AA_, _Az_); + return caml_call2(Runtime_ocaml_Runtime[29], _eK_, _AB_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _eL_, [0], _Au_, _At_); + } + function _yE_(param){ + function _Ah_(param){ + var + _Aq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$1), + _Ar_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _Ar_, _Aq_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$3); + var _As_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_1259); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _As_); + } + function _Ai_(param){ + var + _Aj_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), + _Ak_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _Aj_), + _Al_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _Am_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Al_), + _An_ = caml_call2(Runtime_ocaml_Runtime[83], _Am_, _Ak_), + _Ao_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eM_), + _Ap_ = caml_call2(Runtime_ocaml_Runtime[83], _Ao_, _An_); + return caml_call2(Runtime_ocaml_Runtime[29], _eN_, _Ap_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _eO_, [0], _Ai_, _Ah_); + } + function _yF_(param){ + function _z7_(param){ + var + _Ae_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$2), + _Af_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _Af_, _Ae_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$4); + var _Ag_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_1089); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _Ag_); + } + function _z8_(param){ + var + _z9_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 12, 31), + _z__ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _z9_), + _z$_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 1, 1), + _Aa_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _z$_), + _Ab_ = caml_call2(Runtime_ocaml_Runtime[83], _Aa_, _z__), + _Ac_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eP_), + _Ad_ = caml_call2(Runtime_ocaml_Runtime[83], _Ac_, _Ab_); + return caml_call2(Runtime_ocaml_Runtime[29], _eQ_, _Ad_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _eR_, [0], _z8_, _z7_); + } + function _yG_(param){ + function _zV_(param){ + var + _z4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$3), + _z5_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _z5_, _z4_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$5); + var _z6_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0918); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _z6_); + } + function _zW_(param){ + var + _zX_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 12, 31), + _zY_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _zX_), + _zZ_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 1, 1), + _z0_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _zZ_), + _z1_ = caml_call2(Runtime_ocaml_Runtime[83], _z0_, _zY_), + _z2_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eS_), + _z3_ = caml_call2(Runtime_ocaml_Runtime[83], _z2_, _z1_); + return caml_call2(Runtime_ocaml_Runtime[29], _eT_, _z3_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _eU_, [0], _zW_, _zV_); + } + function _yH_(param){ + function _zJ_(param){ + var + _zS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$4), + _zT_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _zT_, _zS_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$6); + var _zU_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0842); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _zU_); + } + function _zK_(param){ + var + _zL_ = caml_call3(Runtime_ocaml_Runtime[57], 2016, 12, 31), + _zM_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _zL_), + _zN_ = caml_call3(Runtime_ocaml_Runtime[57], 2016, 1, 1), + _zO_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _zN_), + _zP_ = caml_call2(Runtime_ocaml_Runtime[83], _zO_, _zM_), + _zQ_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eV_), + _zR_ = caml_call2(Runtime_ocaml_Runtime[83], _zQ_, _zP_); + return caml_call2(Runtime_ocaml_Runtime[29], _eW_, _zR_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _eX_, [0], _zK_, _zJ_); + } + function _yI_(param){ + function _zx_(param){ + var + _zG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$5), + _zH_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _zH_, _zG_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$7); + var _zI_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0766); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _zI_); + } + function _zy_(param){ + var + _zz_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 12, 31), + _zA_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _zz_), + _zB_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 1, 1), + _zC_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _zB_), + _zD_ = caml_call2(Runtime_ocaml_Runtime[83], _zC_, _zA_), + _zE_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eY_), + _zF_ = caml_call2(Runtime_ocaml_Runtime[83], _zE_, _zD_); + return caml_call2(Runtime_ocaml_Runtime[29], _eZ_, _zF_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _e0_, [0], _zy_, _zx_); + } + function _yJ_(param){ + function _zl_(param){ + var + _zu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$6), + _zv_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _zv_, _zu_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$8); + var _zw_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_069); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _zw_); + } + function _zm_(param){ + var + _zn_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 12, 31), + _zo_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _zn_), + _zp_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 1, 1), + _zq_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _zp_), + _zr_ = caml_call2(Runtime_ocaml_Runtime[83], _zq_, _zo_), + _zs_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _e1_), + _zt_ = caml_call2(Runtime_ocaml_Runtime[83], _zs_, _zr_); + return caml_call2(Runtime_ocaml_Runtime[29], _e2_, _zt_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _e3_, [0], _zm_, _zl_); + } + function _yK_(param){ + function _y$_(param){ + var + _zi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$7), + _zj_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _zj_, _zi_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$9); + var _zk_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0615); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _zk_); + } + function _za_(param){ + var + _zb_ = caml_call3(Runtime_ocaml_Runtime[57], 2013, 12, 31), + _zc_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _zb_), + _zd_ = caml_call3(Runtime_ocaml_Runtime[57], 2013, 1, 1), + _ze_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _zd_), + _zf_ = caml_call2(Runtime_ocaml_Runtime[83], _ze_, _zc_), + _zg_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _e4_), + _zh_ = caml_call2(Runtime_ocaml_Runtime[83], _zg_, _zf_); + return caml_call2(Runtime_ocaml_Runtime[29], _e5_, _zh_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _e6_, [0], _za_, _y$_); + } + function _yL_(param){ + function _yZ_(param){ + var + _y8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$8), + _y9_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _y9_, _y8_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$10); + var _y__ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0539); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _y__); + } + function _y0_(param){ + var + _y1_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 12, 31), + _y2_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _y1_), + _y3_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 1, 1), + _y4_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _y3_), + _y5_ = caml_call2(Runtime_ocaml_Runtime[83], _y4_, _y2_), + _y6_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _e7_), + _y7_ = caml_call2(Runtime_ocaml_Runtime[83], _y6_, _y5_); + return caml_call2(Runtime_ocaml_Runtime[29], _e8_, _y7_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _e9_, [0], _y0_, _yZ_); + } + var + _yM_ = + [0, + function(param){ + function _yN_(param){ + var + _yW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$9), + _yX_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _yX_, _yW_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$11); + var + _yY_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0463$0); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _yY_); + } + function _yO_(param){ + var + _yP_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 12, 31), + _yQ_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _yP_), + _yR_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 1, 1), + _yS_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _yR_), + _yT_ = caml_call2(Runtime_ocaml_Runtime[83], _yS_, _yQ_), + _yU_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _e__), + _yV_ = caml_call2(Runtime_ocaml_Runtime[83], _yU_, _yT_); + return caml_call2(Runtime_ocaml_Runtime[29], _e$_, _yV_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fa_, [0], _yO_, _yN_); + }, + _yL_, + _yK_, + _yJ_, + _yI_, + _yH_, + _yG_, + _yF_, + _yE_, + _yD_]; + return caml_call4(Runtime_ocaml_Runtime[63], _fb_, _yM_, _yC_, _yB_); + }], + _mu_ = caml_call4(Runtime_ocaml_Runtime[63], _fc_, _mt_, _ms_, _mr_); + } + catch(_yA_){ + var _mq_ = caml_wrap_exception(_yA_); + if(_mq_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _eH_], 1); + throw caml_maybe_attach_backtrace(_mq_, 0); + } + var + montant_initial_base_troisieme = + caml_call3 + (Runtime_ocaml_Runtime[28], _fd_, Runtime_ocaml_Runtime[13], _mu_); + try{ + var + _mw_ = + function(param){ + var + _yz_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + return caml_call1(Runtime_ocaml_Runtime[69], _yz_); + }, + _mx_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ff_, 1); + }, + _my_ = caml_call4(Runtime_ocaml_Runtime[63], _fg_, [0], _mx_, _mw_); + } + catch(_yy_){ + var _mv_ = caml_wrap_exception(_yy_); + if(_mv_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _fe_], 1); + throw caml_maybe_attach_backtrace(_mv_, 0); + } + var + nombre_total_enfants = + caml_call3 + (Runtime_ocaml_Runtime[28], _fh_, Runtime_ocaml_Runtime[15], _my_); + try{ + var + _mA_ = + function(param){ + function _yr_(enfant){ + var + _yv_ = + caml_call3(Runtime_ocaml_Runtime[28], _fj_, embed_enfant, enfant), + _yw_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _fk_, prise_en_compte), + _yv_), + _yx_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _fl_, embed_prise_en_compte, _yw_); + switch(caml_call2(Runtime_ocaml_Runtime[27], _fm_, _yx_)[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[39], cst_1$2); + case 1: + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_5); + default: return caml_call1(Runtime_ocaml_Runtime[39], cst_0$12); + } + } + var + _ys_ = + caml_call2 + (Runtime_ocaml_Runtime[87], _yr_, enfants_a_charge_droit_ouvert_), + _yt_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0$13); + function _yu_(sum1, sum2){ + return caml_call2(Runtime_ocaml_Runtime[92], sum1, sum2); + } + return caml_call3(Runtime_ocaml_Runtime[88], _yu_, _yt_, _ys_); + }, + _mB_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _fn_, 1); + }, + _mC_ = caml_call4(Runtime_ocaml_Runtime[63], _fo_, [0], _mB_, _mA_); + } + catch(_yq_){ + var _mz_ = caml_wrap_exception(_yq_); + if(_mz_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _fi_], 1); + throw caml_maybe_attach_backtrace(_mz_, 0); + } + var + nombre_moyen_enfants = + caml_call3 + (Runtime_ocaml_Runtime[28], _fp_, Runtime_ocaml_Runtime[15], _mC_); + try{ + var + _mE_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$14); + }, + _mF_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _fr_, 1); + }, + _mG_ = + function(param){ + function _yj_(param){ + var _yp_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0588); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _yp_); + } + function _yk_(param){ + var + _yl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$3), + _ym_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _yn_ = caml_call2(Runtime_ocaml_Runtime[86], _ym_, _yl_), + _yo_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + prestations_familiales_dot_reg, + _yn_); + return caml_call2(Runtime_ocaml_Runtime[29], _fs_, _yo_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _ft_, [0], _yk_, _yj_); + }, + _mH_ = + [0, + function(param){ + function _vJ_(param){ + var + _yg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$15), + _yh_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _yh_, _yg_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$16); + var _yi_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0588$0); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _yi_); + } + function _vK_(param){ + var _yf_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _fu_); + return caml_call2(Runtime_ocaml_Runtime[29], _fv_, _yf_); + } + var + _vL_ = + [0, + function(param){ + function _vM_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _vN_(param){return 0;} + function _vO_(param){ + function _x$_(param){ + var + _yd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$17), + _ye_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + return caml_call2(Runtime_ocaml_Runtime[121], _ye_, _yd_) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_5728) + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$18); + } + function _ya_(param){ + var + _yb_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _fw_), + _yc_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + _yb_, + avait_enfant_a_charge_avant_1e); + return caml_call2(Runtime_ocaml_Runtime[29], _fx_, _yc_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fy_, [0], _ya_, _x$_); + } + function _vP_(param){ + function _xX_(param){ + var + _x8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$19), + _x9_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _x9_, _x8_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$20); + var _x__ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0717); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _x__); + } + function _xY_(param){ + var + _xZ_ = + caml_call1 + (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), + _x0_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), + _x1_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _x0_), + _x2_ = caml_call2(Runtime_ocaml_Runtime[83], _x1_, _xZ_), + _x3_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _x4_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _x3_), + _x5_ = caml_call2(Runtime_ocaml_Runtime[83], _x4_, _x2_), + _x6_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _fz_), + _x7_ = caml_call2(Runtime_ocaml_Runtime[83], _x6_, _x5_); + return caml_call2(Runtime_ocaml_Runtime[29], _fA_, _x7_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fB_, [0], _xY_, _xX_); + } + function _vQ_(param){ + function _xJ_(param){ + var + _xU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$21), + _xV_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _xV_, _xU_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$22); + var _xW_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0847); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _xW_); + } + function _xK_(param){ + var + _xL_ = + caml_call1 + (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), + _xM_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), + _xN_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _xM_), + _xO_ = caml_call2(Runtime_ocaml_Runtime[83], _xN_, _xL_), + _xP_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _xQ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _xP_), + _xR_ = caml_call2(Runtime_ocaml_Runtime[83], _xQ_, _xO_), + _xS_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _fC_), + _xT_ = caml_call2(Runtime_ocaml_Runtime[83], _xS_, _xR_); + return caml_call2(Runtime_ocaml_Runtime[29], _fD_, _xT_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fE_, [0], _xK_, _xJ_); + } + function _vR_(param){ + function _xv_(param){ + var + _xG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$23), + _xH_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _xH_, _xG_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$24); + var _xI_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0976); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _xI_); + } + function _xw_(param){ + var + _xx_ = + caml_call1 + (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), + _xy_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 12, 31), + _xz_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _xy_), + _xA_ = caml_call2(Runtime_ocaml_Runtime[83], _xz_, _xx_), + _xB_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 1, 1), + _xC_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _xB_), + _xD_ = caml_call2(Runtime_ocaml_Runtime[83], _xC_, _xA_), + _xE_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _fF_), + _xF_ = caml_call2(Runtime_ocaml_Runtime[83], _xE_, _xD_); + return caml_call2(Runtime_ocaml_Runtime[29], _fG_, _xF_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fH_, [0], _xw_, _xv_); + } + function _vS_(param){ + function _xh_(param){ + var + _xs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$25), + _xt_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _xt_, _xs_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$26); + var _xu_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_1105); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _xu_); + } + function _xi_(param){ + var + _xj_ = + caml_call1 + (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), + _xk_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 12, 31), + _xl_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _xk_), + _xm_ = caml_call2(Runtime_ocaml_Runtime[83], _xl_, _xj_), + _xn_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 1, 1), + _xo_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _xn_), + _xp_ = caml_call2(Runtime_ocaml_Runtime[83], _xo_, _xm_), + _xq_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _fI_), + _xr_ = caml_call2(Runtime_ocaml_Runtime[83], _xq_, _xp_); + return caml_call2(Runtime_ocaml_Runtime[29], _fJ_, _xr_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fK_, [0], _xi_, _xh_); + } + function _vT_(param){ + function _w5_(param){ + var + _xe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$27), + _xf_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _xf_, _xe_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$28); + var _xg_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_1163); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _xg_); + } + function _w6_(param){ + var + _w7_ = + caml_call1 + (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), + _w8_ = caml_call3(Runtime_ocaml_Runtime[57], 2016, 12, 31), + _w9_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _w8_), + _w__ = caml_call2(Runtime_ocaml_Runtime[83], _w9_, _w7_), + _w$_ = caml_call3(Runtime_ocaml_Runtime[57], 2016, 1, 1), + _xa_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _w$_), + _xb_ = caml_call2(Runtime_ocaml_Runtime[83], _xa_, _w__), + _xc_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _fL_), + _xd_ = caml_call2(Runtime_ocaml_Runtime[83], _xc_, _xb_); + return caml_call2(Runtime_ocaml_Runtime[29], _fM_, _xd_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fN_, [0], _w6_, _w5_); + } + function _vU_(param){ + function _wR_(param){ + var + _w2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$29), + _w3_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _w3_, _w2_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$30); + var _w4_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_122); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _w4_); + } + function _wS_(param){ + var + _wT_ = + caml_call1 + (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), + _wU_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 12, 31), + _wV_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _wU_), + _wW_ = caml_call2(Runtime_ocaml_Runtime[83], _wV_, _wT_), + _wX_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 1, 1), + _wY_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _wX_), + _wZ_ = caml_call2(Runtime_ocaml_Runtime[83], _wY_, _wW_), + _w0_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _fO_), + _w1_ = caml_call2(Runtime_ocaml_Runtime[83], _w0_, _wZ_); + return caml_call2(Runtime_ocaml_Runtime[29], _fP_, _w1_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fQ_, [0], _wS_, _wR_); + } + function _vV_(param){ + function _wD_(param){ + var + _wO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$31), + _wP_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _wP_, _wO_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$32); + var _wQ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_1278); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _wQ_); + } + function _wE_(param){ + var + _wF_ = + caml_call1 + (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), + _wG_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 12, 31), + _wH_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _wG_), + _wI_ = caml_call2(Runtime_ocaml_Runtime[83], _wH_, _wF_), + _wJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 1, 1), + _wK_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _wJ_), + _wL_ = caml_call2(Runtime_ocaml_Runtime[83], _wK_, _wI_), + _wM_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _fR_), + _wN_ = caml_call2(Runtime_ocaml_Runtime[83], _wM_, _wL_); + return caml_call2(Runtime_ocaml_Runtime[29], _fS_, _wN_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fT_, [0], _wE_, _wD_); + } + function _vW_(param){ + function _wp_(param){ + var + _wA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$33), + _wB_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _wB_, _wA_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$34); + var _wC_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_1335); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _wC_); + } + function _wq_(param){ + var + _wr_ = + caml_call1 + (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), + _ws_ = caml_call3(Runtime_ocaml_Runtime[57], 2013, 12, 31), + _wt_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _ws_), + _wu_ = caml_call2(Runtime_ocaml_Runtime[83], _wt_, _wr_), + _wv_ = caml_call3(Runtime_ocaml_Runtime[57], 2013, 1, 1), + _ww_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _wv_), + _wx_ = caml_call2(Runtime_ocaml_Runtime[83], _ww_, _wu_), + _wy_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _fU_), + _wz_ = caml_call2(Runtime_ocaml_Runtime[83], _wy_, _wx_); + return caml_call2(Runtime_ocaml_Runtime[29], _fV_, _wz_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fW_, [0], _wq_, _wp_); + } + function _vX_(param){ + function _wb_(param){ + var + _wm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$35), + _wn_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _wn_, _wm_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$36); + var _wo_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_1393); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _wo_); + } + function _wc_(param){ + var + _wd_ = + caml_call1 + (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), + _we_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 12, 31), + _wf_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _we_), + _wg_ = caml_call2(Runtime_ocaml_Runtime[83], _wf_, _wd_), + _wh_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 1, 1), + _wi_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _wh_), + _wj_ = caml_call2(Runtime_ocaml_Runtime[83], _wi_, _wg_), + _wk_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _fX_), + _wl_ = caml_call2(Runtime_ocaml_Runtime[83], _wk_, _wj_); + return caml_call2(Runtime_ocaml_Runtime[29], _fY_, _wl_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fZ_, [0], _wc_, _wb_); + } + var + _vY_ = + [0, + function(param){ + function _vZ_(param){ + var + _v__ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$37), + _v$_ = caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _ciG_=caml_call2(Runtime_ocaml_Runtime[86],_ciF_,_ciE_), - _ciH_=caml_call2(Runtime_ocaml_Runtime[83],_ciG_,_ciD_), - _ciI_= + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _v$_, _v__)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$38); + var _wa_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_145); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _wa_); + } + function _v0_(param){ + var + _v1_ = + caml_call1 + (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), + _v2_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 12, 31), + _v3_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _v2_), + _v4_ = caml_call2(Runtime_ocaml_Runtime[83], _v3_, _v1_), + _v5_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 1, 1), + _v6_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _v5_), + _v7_ = caml_call2(Runtime_ocaml_Runtime[83], _v6_, _v4_), + _v8_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _f0_), + _v9_ = caml_call2(Runtime_ocaml_Runtime[83], _v8_, _v7_); + return caml_call2(Runtime_ocaml_Runtime[29], _f1_, _v9_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _f2_, [0], _v0_, _vZ_); + }, + _vX_, + _vW_, + _vV_, + _vU_, + _vT_, + _vS_, + _vR_, + _vQ_, + _vP_, + _vO_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _f3_, _vY_, _vN_, _vM_); + }]; + return caml_call4(Runtime_ocaml_Runtime[63], _f4_, _vL_, _vK_, _vJ_); + }, + _mG_], + _mI_ = caml_call4(Runtime_ocaml_Runtime[63], _f5_, _mH_, _mF_, _mE_); + } + catch(_vI_){ + var _mD_ = caml_wrap_exception(_vI_); + if(_mD_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _fq_], 1); + throw caml_maybe_attach_backtrace(_mD_, 0); + } + var + montant_initial_base_premier_e = + caml_call3 + (Runtime_ocaml_Runtime[28], _f6_, Runtime_ocaml_Runtime[13], _mI_); + try{ + var + _mK_ = function(param){return 0;}, + _mL_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _f8_, 1); + }, + _mM_ = + [0, + function(param){ + function _vl_(param){return 1;} + function _vm_(param){ + var + _vF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$10), + _vG_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _vH_ = caml_call2(Runtime_ocaml_Runtime[126], _vG_, _vF_); + return caml_call2(Runtime_ocaml_Runtime[29], _f9_, _vH_); + } + var + _vn_ = + [0, + function(param){ + function _vo_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _vp_(param){return 0;} + var + _vq_ = + [0, + function(param){ + function _vr_(param){return 1;} + function _vs_(param){ + var + _vB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$4), + _vC_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _vD_ = caml_call2(Runtime_ocaml_Runtime[126], _vC_, _vB_), + _vE_ = caml_call2 (Runtime_ocaml_Runtime[83], prestations_familiales_dot_reg, - _ciH_), - _ciJ_= - caml_call3 - (Runtime_ocaml_Runtime[28],_iF_,embed_enfant,enfant), - _ciK_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_iG_,droit_ouvert_majoration), - _ciJ_), - _ciL_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _iH_, - Runtime_ocaml_Runtime[12], - _ciK_), - _ciM_=caml_call2(Runtime_ocaml_Runtime[27],_iI_,_ciL_), - _ciN_=caml_call2(Runtime_ocaml_Runtime[83],_ciM_,_ciI_); - return caml_call2(Runtime_ocaml_Runtime[29],_iJ_,_ciN_)} + _vD_); + return caml_call2(Runtime_ocaml_Runtime[29], _f__, _vE_); + } + var + _vt_ = + [0, + function(param){ + function _vu_(param){return 1;} + function _vv_(param){ + var + _vw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$5), + _vx_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _vy_ = caml_call2(Runtime_ocaml_Runtime[126], _vx_, _vw_), + _vz_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _f$_), + _vA_ = caml_call2(Runtime_ocaml_Runtime[83], _vz_, _vy_); + return caml_call2(Runtime_ocaml_Runtime[29], _ga_, _vA_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gb_, [0], _vv_, _vu_); + }]; return caml_call4 - (Runtime_ocaml_Runtime[63],_iK_,[0],_ciw_,_civ_)}, - _cit_]; + (Runtime_ocaml_Runtime[63], _gc_, _vt_, _vs_, _vr_); + }]; return caml_call4 - (Runtime_ocaml_Runtime[63],_iL_,_ciu_,_cis_,_cir_)}], - _cip_=caml_call4(Runtime_ocaml_Runtime[63],_iM_,_cio_,_cin_,_cim_); - return _cip_} - catch(_ciq_) - {_ciq_ = caml_wrap_exception(_ciq_); - if(_ciq_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_it_]; - throw _ciq_}} + (Runtime_ocaml_Runtime[63], _gd_, _vq_, _vp_, _vo_); + }]; + return caml_call4(Runtime_ocaml_Runtime[63], _ge_, _vn_, _vm_, _vl_); + }], + _mN_ = caml_call4(Runtime_ocaml_Runtime[63], _gf_, _mM_, _mL_, _mK_); + } + catch(_vk_){ + var _mJ_ = caml_wrap_exception(_vk_); + if(_mJ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _f7_], 1); + throw caml_maybe_attach_backtrace(_mJ_, 0); + } + var + droit_ouvert_base = + caml_call3 + (Runtime_ocaml_Runtime[28], _gg_, Runtime_ocaml_Runtime[12], _mN_); + function _mO_(enfant){ + try{ var - montant_initial_majoration= - caml_call3 - (Runtime_ocaml_Runtime[28],_iN_,Runtime_ocaml_Runtime[10],_cgU_); - try - {var - _cgV_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$60)}, - _cgW_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_iP_,1)}, - _cgX_= - [0, - function(param) - {function _chQ_(param){throw Runtime_ocaml_Runtime[2]} - function _chR_(param){return 0} - function _chS_(param) - {function _ch9_(param) - {var - _cif_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$5), - _cig_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$25), - _cih_=caml_call2(Runtime_ocaml_Runtime[107],_cig_,_cif_), - _cii_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$6), - _cij_= - caml_call2 - (Runtime_ocaml_Runtime[104],montant_verse_forfaitaire,_cii_), - _cik_= - caml_call2 - (Runtime_ocaml_Runtime[93],plafond_i_i_d521_3,_cij_), - _cil_= - caml_call2 - (Runtime_ocaml_Runtime[98],_cik_,ressources_menage); - return caml_call2(Runtime_ocaml_Runtime[104],_cil_,_cih_)} - function _ch__(param) - {var - _ch$_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$7), - _cia_= - caml_call2 - (Runtime_ocaml_Runtime[104],montant_verse_forfaitaire,_ch$_), - _cib_= - caml_call2 - (Runtime_ocaml_Runtime[93],plafond_i_i_d521_3,_cia_), - _cic_= - caml_call2 - (Runtime_ocaml_Runtime[118],ressources_menage,_cib_), - _cid_= - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_i_d521_3), - _cie_=caml_call2(Runtime_ocaml_Runtime[83],_cid_,_cic_); - return caml_call2(Runtime_ocaml_Runtime[29],_iQ_,_cie_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_iR_,[0],_ch__,_ch9_)} - var - _chT_= - [0, - function(param) - {function _chU_(param) - {var - _ch2_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$8), - _ch3_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$26), - _ch4_=caml_call2(Runtime_ocaml_Runtime[107],_ch3_,_ch2_), - _ch5_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$9), - _ch6_= - caml_call2 - (Runtime_ocaml_Runtime[104],montant_verse_forfaitaire,_ch5_), - _ch7_= - caml_call2(Runtime_ocaml_Runtime[93],plafond_i_d521_3,_ch6_), - _ch8_= - caml_call2 - (Runtime_ocaml_Runtime[98],_ch7_,ressources_menage); - return caml_call2(Runtime_ocaml_Runtime[104],_ch8_,_ch4_)} - function _chV_(param) - {var - _chW_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$10), - _chX_= - caml_call2 - (Runtime_ocaml_Runtime[104],montant_verse_forfaitaire,_chW_), - _chY_= - caml_call2(Runtime_ocaml_Runtime[93],plafond_i_d521_3,_chX_), - _chZ_= - caml_call2 - (Runtime_ocaml_Runtime[118],ressources_menage,_chY_), - _ch0_= - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_d521_3), - _ch1_=caml_call2(Runtime_ocaml_Runtime[83],_ch0_,_chZ_); - return caml_call2(Runtime_ocaml_Runtime[29],_iS_,_ch1_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_iT_,[0],_chV_,_chU_)}, - _chS_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_iU_,_chT_,_chR_,_chQ_)}], - _cgY_=caml_call4(Runtime_ocaml_Runtime[63],_iV_,_cgX_,_cgW_,_cgV_)} - catch(_chP_) - {_chP_ = caml_wrap_exception(_chP_); - if(_chP_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_iO_]; - throw _chP_} - var - montant_verse_complement_pour_= - caml_call3 - (Runtime_ocaml_Runtime[28],_iW_,Runtime_ocaml_Runtime[13],_cgY_); - try - {var - _cgZ_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[104], - montant_initial_base, - rapport_enfants_total_moyen)}, - _cg0_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_iY_,1)}, - _cg1_=caml_call4(Runtime_ocaml_Runtime[63],_iZ_,[0],_cg0_,_cgZ_)} - catch(_chO_) - {_chO_ = caml_wrap_exception(_chO_); - if(_chO_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_iX_]; - throw _chO_} - var - montant_avec_garde_alternee_ba= - caml_call3 - (Runtime_ocaml_Runtime[28],_i0_,Runtime_ocaml_Runtime[13],_cg1_); - function _cg2_(enfant) - {try - {var - _chC_= - function(param) - {var - _chG_= - caml_call3(Runtime_ocaml_Runtime[28],_i2_,embed_enfant,enfant), - _chH_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_i3_,prise_en_compte), - _chG_), - _chI_= - caml_call3 - (Runtime_ocaml_Runtime[28],_i4_,embed_prise_en_compte,_chH_), - match=caml_call2(Runtime_ocaml_Runtime[27],_i5_,_chI_); - switch(match[0]) - {case 0: - var _chJ_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$27); - break; - case 1: - var _chJ_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_5$0); - break; - default: - var _chJ_=caml_call1(Runtime_ocaml_Runtime[39],cst_0$61)} - var - _chK_= - caml_call3(Runtime_ocaml_Runtime[28],_i6_,embed_enfant,enfant), - _chL_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_i7_,montant_initial_majoration), - _chK_), - _chM_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _i8_, - Runtime_ocaml_Runtime[13], - _chL_), - _chN_=caml_call2(Runtime_ocaml_Runtime[27],_i9_,_chM_); - return caml_call2(Runtime_ocaml_Runtime[104],_chN_,_chJ_)}, - _chD_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_i__,1)}, - _chE_=caml_call4(Runtime_ocaml_Runtime[63],_i$_,[0],_chD_,_chC_); - return _chE_} - catch(_chF_) - {_chF_ = caml_wrap_exception(_chF_); - if(_chF_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_i1_]; - throw _chF_}} - var - montant_avec_garde_alternee_ma= - caml_call3 - (Runtime_ocaml_Runtime[28],_ja_,Runtime_ocaml_Runtime[10],_cg2_); - try - {var - _cg3_= - function(param) - {return droit_ouvert_base - ?montant_avec_garde_alternee_ba - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$62)}, - _cg4_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jc_,1)}, - _cg5_=caml_call4(Runtime_ocaml_Runtime[63],_jd_,[0],_cg4_,_cg3_)} - catch(_chB_) - {_chB_ = caml_wrap_exception(_chB_); - if(_chB_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_jb_]; - throw _chB_} - var - montant_verse_base= - caml_call3 - (Runtime_ocaml_Runtime[28],_je_,Runtime_ocaml_Runtime[13],_cg5_); - try - {var - _cg6_= - function(param) - {if(droit_ouvert_base) - {var - _chu_= - function(enfant) - {var - _chy_= + _uR_ = function(param){return 0;}, + _uS_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _gi_, 1); + }, + _uT_ = + [0, + function(param){ + function _uW_(param){return 1;} + function _uX_(param){ + var + _u__ = + caml_call3 + (Runtime_ocaml_Runtime[28], _gj_, embed_enfant, enfant), + _u$_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _gk_, + age_minimum_alinea_1_l521_3), + _u__), + _va_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _gl_, + Runtime_ocaml_Runtime[17], + _u$_), + _vb_ = caml_call2(Runtime_ocaml_Runtime[27], _gm_, _va_), + _vc_ = caml_call3(Runtime_ocaml_Runtime[94], 2, enfant[4], _vb_), + _vd_ = + caml_call2(Runtime_ocaml_Runtime[120], _vc_, date_courante), + _ve_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _gn_, embed_enfant, enfant), + _vf_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _go_, est_enfant_le_plus_age), + _ve_), + _vg_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _gp_, + Runtime_ocaml_Runtime[12], + _vf_), + _vh_ = caml_call2(Runtime_ocaml_Runtime[27], _gq_, _vg_), + _vi_ = caml_call1(Runtime_ocaml_Runtime[67], _vh_), + _vj_ = caml_call2(Runtime_ocaml_Runtime[83], _vi_, _vd_); + return caml_call2(Runtime_ocaml_Runtime[29], _gr_, _vj_); + } + var + _uY_ = + [0, + function(param){ + function _uZ_(param){return 1;} + function _u0_(param){ + var + _u1_ = caml_call3 - (Runtime_ocaml_Runtime[28],_jg_,embed_enfant,enfant), - _chz_= + (Runtime_ocaml_Runtime[28], _gs_, embed_enfant, enfant), + _u2_ = caml_call1 (caml_call2 (Runtime_ocaml_Runtime[26], - _jh_, - montant_avec_garde_alternee_ma), - _chy_), - _chA_= + _gt_, + age_minimum_alinea_1_l521_3), + _u1_), + _u3_ = caml_call3 (Runtime_ocaml_Runtime[28], - _ji_, - Runtime_ocaml_Runtime[13], - _chz_); - return caml_call2(Runtime_ocaml_Runtime[27],_jj_,_chA_)}, - _chv_= - caml_call2(Runtime_ocaml_Runtime[87],_chu_,enfants_a_charge), - _chw_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$63), - _chx_= - function(sum1,sum2) - {return caml_call2(Runtime_ocaml_Runtime[93],sum1,sum2)}; - return caml_call3(Runtime_ocaml_Runtime[88],_chx_,_chw_,_chv_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$64)}, - _cg7_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jk_,1)}, - _cg8_=caml_call4(Runtime_ocaml_Runtime[63],_jl_,[0],_cg7_,_cg6_)} - catch(_cht_) - {_cht_ = caml_wrap_exception(_cht_); - if(_cht_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_jf_]; - throw _cht_} + _gu_, + Runtime_ocaml_Runtime[17], + _u2_), + _u4_ = caml_call2(Runtime_ocaml_Runtime[27], _gv_, _u3_), + _u5_ = + caml_call3(Runtime_ocaml_Runtime[94], 2, enfant[4], _u4_), + _u6_ = + caml_call2(Runtime_ocaml_Runtime[120], _u5_, date_courante), + _u7_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _u8_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + _u7_, + nombre_enfants_alinea_2_l521_3), + _u9_ = caml_call2(Runtime_ocaml_Runtime[83], _u8_, _u6_); + return caml_call2(Runtime_ocaml_Runtime[29], _gw_, _u9_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gx_, [0], _u0_, _uZ_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gy_, _uY_, _uX_, _uW_); + }], + _uU_ = caml_call4(Runtime_ocaml_Runtime[63], _gz_, _uT_, _uS_, _uR_); + return _uU_; + } + catch(_uV_){ + var _uQ_ = caml_wrap_exception(_uV_); + if(_uQ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _gh_], 1); + throw caml_maybe_attach_backtrace(_uQ_, 0); + } + } + var + droit_ouvert_majoration = + caml_call3 + (Runtime_ocaml_Runtime[28], _gA_, Runtime_ocaml_Runtime[10], _mO_); + function _mP_(allocation){ + try{ var - montant_verse_majoration= - caml_call3 - (Runtime_ocaml_Runtime[28],_jm_,Runtime_ocaml_Runtime[13],_cg8_); - try - {var - _cg9_= - function(param) - {return caml_call2 + _ud_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$39); + }, + _ue_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _gC_, 1); + }, + _uf_ = + [0, + function(param){ + function _ui_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _uj_(param){return 0;} + function _uk_(param){ + function _uB_(param){ + var + _uJ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12), + _uK_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$6), + _uL_ = caml_call2(Runtime_ocaml_Runtime[107], _uK_, _uJ_), + _uM_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$0), + _uN_ = caml_call2(Runtime_ocaml_Runtime[104], allocation, _uM_), + _uO_ = + caml_call2 + (Runtime_ocaml_Runtime[93], plafond_i_i_d521_3, _uN_), + _uP_ = + caml_call2(Runtime_ocaml_Runtime[98], _uO_, ressources_menage); + return caml_call2(Runtime_ocaml_Runtime[104], _uP_, _uL_); + } + function _uC_(param){ + var + _uD_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$1), + _uE_ = caml_call2(Runtime_ocaml_Runtime[104], allocation, _uD_), + _uF_ = + caml_call2 + (Runtime_ocaml_Runtime[93], plafond_i_i_d521_3, _uE_), + _uG_ = + caml_call2 + (Runtime_ocaml_Runtime[118], ressources_menage, _uF_), + _uH_ = + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_i_d521_3), + _uI_ = caml_call2(Runtime_ocaml_Runtime[83], _uH_, _uG_); + return caml_call2(Runtime_ocaml_Runtime[29], _gD_, _uI_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gE_, [0], _uC_, _uB_); + } + var + _ul_ = + [0, + function(param){ + function _um_(param){ + var + _uu_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$2), + _uv_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$7), + _uw_ = caml_call2(Runtime_ocaml_Runtime[107], _uv_, _uu_), + _ux_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$3), + _uy_ = + caml_call2(Runtime_ocaml_Runtime[104], allocation, _ux_), + _uz_ = + caml_call2 + (Runtime_ocaml_Runtime[93], plafond_i_d521_3, _uy_), + _uA_ = + caml_call2 + (Runtime_ocaml_Runtime[98], _uz_, ressources_menage); + return caml_call2(Runtime_ocaml_Runtime[104], _uA_, _uw_); + } + function _un_(param){ + var + _uo_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$4), + _up_ = + caml_call2(Runtime_ocaml_Runtime[104], allocation, _uo_), + _uq_ = + caml_call2 + (Runtime_ocaml_Runtime[93], plafond_i_d521_3, _up_), + _ur_ = + caml_call2 + (Runtime_ocaml_Runtime[118], ressources_menage, _uq_), + _us_ = + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_d521_3), + _ut_ = caml_call2(Runtime_ocaml_Runtime[83], _us_, _ur_); + return caml_call2(Runtime_ocaml_Runtime[29], _gF_, _ut_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gG_, [0], _un_, _um_); + }, + _uk_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gH_, _ul_, _uj_, _ui_); + }], + _ug_ = caml_call4(Runtime_ocaml_Runtime[63], _gI_, _uf_, _ue_, _ud_); + return _ug_; + } + catch(_uh_){ + var _uc_ = caml_wrap_exception(_uh_); + if(_uc_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _gB_], 1); + throw caml_maybe_attach_backtrace(_uc_, 0); + } + } + var + complement_degressif = + caml_call3 + (Runtime_ocaml_Runtime[28], _gJ_, Runtime_ocaml_Runtime[10], _mP_); + try{ + var + _mR_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _mS_ = function(param){return 0;}, + _mT_ = + function(param){ + function _t__(param){ + var _ub_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_05059); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _ub_); + } + function _t$_(param){ + var + _ua_ = + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_i_d521_3); + return caml_call2(Runtime_ocaml_Runtime[29], _gL_, _ua_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _gM_, [0], _t$_, _t__); + }, + _mU_ = + function(param){ + function _t4_(param){ + var _t9_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_10117); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _t9_); + } + function _t5_(param){ + var + _t6_ = + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage, + plafond_i_i_d521_3), + _t7_ = + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_d521_3), + _t8_ = caml_call2(Runtime_ocaml_Runtime[83], _t7_, _t6_); + return caml_call2(Runtime_ocaml_Runtime[29], _gN_, _t8_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _gO_, [0], _t5_, _t4_); + }, + _mV_ = + [0, + function(param){ + function _t0_(param){ + var _t3_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_20234); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _t3_); + } + function _t1_(param){ + var + _t2_ = + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage, + plafond_i_d521_3); + return caml_call2(Runtime_ocaml_Runtime[29], _gP_, _t2_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _gQ_, [0], _t1_, _t0_); + }, + _mU_, + _mT_], + _mW_ = caml_call4(Runtime_ocaml_Runtime[63], _gR_, _mV_, _mS_, _mR_); + } + catch(_tZ_){ + var _mQ_ = caml_wrap_exception(_tZ_); + if(_mQ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _gK_], 1); + throw caml_maybe_attach_backtrace(_mQ_, 0); + } + var + montant_verse_forfaitaire_par_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _gS_, Runtime_ocaml_Runtime[13], _mW_); + try{ + var + _mY_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _mZ_ = function(param){return 0;}, + _m0_ = + function(param){ + function _tO_(param){ + var + _tR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$11), + _tS_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _tS_, _tR_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$40); + var + _tT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$12), + _tU_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _tV_ = caml_call2(Runtime_ocaml_Runtime[96], _tU_, _tT_), + _tW_ = caml_call1(Runtime_ocaml_Runtime[69], _tV_), + _tX_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_1025), + _tY_ = + caml_call2(Runtime_ocaml_Runtime[104], bmaf_dot_montant, _tX_); + return caml_call2(Runtime_ocaml_Runtime[104], _tY_, _tW_); + } + function _tP_(param){ + var + _tQ_ = + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_i_d521_3); + return caml_call2(Runtime_ocaml_Runtime[29], _gU_, _tQ_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _gV_, [0], _tP_, _tO_); + }, + _m1_ = + function(param){ + function _tB_(param){ + var + _tG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$13), + _tH_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _tH_, _tG_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$41); + var + _tI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$14), + _tJ_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _tK_ = caml_call2(Runtime_ocaml_Runtime[96], _tJ_, _tI_), + _tL_ = caml_call1(Runtime_ocaml_Runtime[69], _tK_), + _tM_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_205), + _tN_ = + caml_call2(Runtime_ocaml_Runtime[104], bmaf_dot_montant, _tM_); + return caml_call2(Runtime_ocaml_Runtime[104], _tN_, _tL_); + } + function _tC_(param){ + var + _tD_ = + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage, + plafond_i_i_d521_3), + _tE_ = + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_d521_3), + _tF_ = caml_call2(Runtime_ocaml_Runtime[83], _tE_, _tD_); + return caml_call2(Runtime_ocaml_Runtime[29], _gW_, _tF_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _gX_, [0], _tC_, _tB_); + }, + _m2_ = + [0, + function(param){ + function _tq_(param){ + var + _tt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$15), + _tu_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _tu_, _tt_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$42); + var + _tv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$16), + _tw_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _tx_ = caml_call2(Runtime_ocaml_Runtime[96], _tw_, _tv_), + _ty_ = caml_call1(Runtime_ocaml_Runtime[69], _tx_), + _tz_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_41), + _tA_ = + caml_call2(Runtime_ocaml_Runtime[104], bmaf_dot_montant, _tz_); + return caml_call2(Runtime_ocaml_Runtime[104], _tA_, _ty_); + } + function _tr_(param){ + var + _ts_ = + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage, + plafond_i_d521_3); + return caml_call2(Runtime_ocaml_Runtime[29], _gY_, _ts_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _gZ_, [0], _tr_, _tq_); + }, + _m1_, + _m0_], + _m3_ = caml_call4(Runtime_ocaml_Runtime[63], _g0_, _m2_, _mZ_, _mY_); + } + catch(_tp_){ + var _mX_ = caml_wrap_exception(_tp_); + if(_mX_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _gT_], 1); + throw caml_maybe_attach_backtrace(_mX_, 0); + } + var + montant_initial_base_troisieme$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _g1_, Runtime_ocaml_Runtime[13], _m3_); + try{ + var + _m5_ = + function(param){ + function _s2_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _s3_(param){return 0;} + function _s4_(param){ + function _tj_(param){ + var + _tm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$8), + _tn_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _tn_, _tm_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$43); + var _to_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_08); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _to_); + } + function _tk_(param){ + var + _tl_ = + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_i_d521_3); + return caml_call2(Runtime_ocaml_Runtime[29], _g3_, _tl_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _g4_, [0], _tk_, _tj_); + } + function _s5_(param){ + function _tb_(param){ + var + _tg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$9), + _th_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _th_, _tg_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$44); + var _ti_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_16$0); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _ti_); + } + function _tc_(param){ + var + _td_ = + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage, + plafond_i_i_d521_3), + _te_ = + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_d521_3), + _tf_ = caml_call2(Runtime_ocaml_Runtime[83], _te_, _td_); + return caml_call2(Runtime_ocaml_Runtime[29], _g5_, _tf_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _g6_, [0], _tc_, _tb_); + } + var + _s6_ = + [0, + function(param){ + function _s7_(param){ + var + _s__ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$10), + _s$_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _s$_, _s__)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$45); + var _ta_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_32); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _ta_); + } + function _s8_(param){ + var + _s9_ = + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage, + plafond_i_d521_3); + return caml_call2(Runtime_ocaml_Runtime[29], _g7_, _s9_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _g8_, [0], _s8_, _s7_); + }, + _s5_, + _s4_]; + return caml_call4(Runtime_ocaml_Runtime[63], _g9_, _s6_, _s3_, _s2_); + }, + _m6_ = function(param){return 1;}, + _m7_ = + [0, + function(param){ + function _qR_(param){ + var + _sZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$11), + _s0_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _s0_, _sZ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$46); + var _s1_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_32$0); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _s1_); + } + function _qS_(param){ + var _sY_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _g__); + return caml_call2(Runtime_ocaml_Runtime[29], _g$_, _sY_); + } + var + _qT_ = + [0, + function(param){ + function _qU_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _qV_(param){return 0;} + function _qW_(param){ + function _sM_(param){ + var + _sV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$12), + _sW_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _sW_, _sV_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$47); + var _sX_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_3068); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _sX_); + } + function _sN_(param){ + var + _sO_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), + _sP_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _sO_), + _sQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _sR_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _sQ_), + _sS_ = caml_call2(Runtime_ocaml_Runtime[83], _sR_, _sP_), + _sT_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _ha_), + _sU_ = caml_call2(Runtime_ocaml_Runtime[83], _sT_, _sS_); + return caml_call2(Runtime_ocaml_Runtime[29], _hb_, _sU_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hc_, [0], _sN_, _sM_); + } + function _qX_(param){ + function _sA_(param){ + var + _sJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$13), + _sK_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _sK_, _sJ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$48); + var _sL_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2936); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _sL_); + } + function _sB_(param){ + var + _sC_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), + _sD_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _sC_), + _sE_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _sF_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _sE_), + _sG_ = caml_call2(Runtime_ocaml_Runtime[83], _sF_, _sD_), + _sH_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _hd_), + _sI_ = caml_call2(Runtime_ocaml_Runtime[83], _sH_, _sG_); + return caml_call2(Runtime_ocaml_Runtime[29], _he_, _sI_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hf_, [0], _sB_, _sA_); + } + function _qY_(param){ + function _so_(param){ + var + _sx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$14), + _sy_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _sy_, _sx_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$49); + var _sz_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2804); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _sz_); + } + function _sp_(param){ + var + _sq_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 12, 31), + _sr_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _sq_), + _ss_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 1, 1), + _st_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ss_), + _su_ = caml_call2(Runtime_ocaml_Runtime[83], _st_, _sr_), + _sv_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _hg_), + _sw_ = caml_call2(Runtime_ocaml_Runtime[83], _sv_, _su_); + return caml_call2(Runtime_ocaml_Runtime[29], _hh_, _sw_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hi_, [0], _sp_, _so_); + } + function _qZ_(param){ + function _sc_(param){ + var + _sl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$15), + _sm_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _sm_, _sl_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$50); + var _sn_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2672); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _sn_); + } + function _sd_(param){ + var + _se_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 12, 31), + _sf_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _se_), + _sg_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 1, 1), + _sh_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _sg_), + _si_ = caml_call2(Runtime_ocaml_Runtime[83], _sh_, _sf_), + _sj_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _hj_), + _sk_ = caml_call2(Runtime_ocaml_Runtime[83], _sj_, _si_); + return caml_call2(Runtime_ocaml_Runtime[29], _hk_, _sk_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hl_, [0], _sd_, _sc_); + } + function _q0_(param){ + function _r2_(param){ + var + _r$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$16), + _sa_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _sa_, _r$_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$51); + var _sb_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2613); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _sb_); + } + function _r3_(param){ + var + _r4_ = caml_call3(Runtime_ocaml_Runtime[57], 2016, 12, 31), + _r5_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _r4_), + _r6_ = caml_call3(Runtime_ocaml_Runtime[57], 2016, 1, 1), + _r7_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _r6_), + _r8_ = caml_call2(Runtime_ocaml_Runtime[83], _r7_, _r5_), + _r9_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _hm_), + _r__ = caml_call2(Runtime_ocaml_Runtime[83], _r9_, _r8_); + return caml_call2(Runtime_ocaml_Runtime[29], _hn_, _r__); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ho_, [0], _r3_, _r2_); + } + function _q1_(param){ + function _rQ_(param){ + var + _rZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$17), + _r0_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _r0_, _rZ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$52); + var _r1_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2555); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _r1_); + } + function _rR_(param){ + var + _rS_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 12, 31), + _rT_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _rS_), + _rU_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 1, 1), + _rV_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _rU_), + _rW_ = caml_call2(Runtime_ocaml_Runtime[83], _rV_, _rT_), + _rX_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _hp_), + _rY_ = caml_call2(Runtime_ocaml_Runtime[83], _rX_, _rW_); + return caml_call2(Runtime_ocaml_Runtime[29], _hq_, _rY_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hr_, [0], _rR_, _rQ_); + } + function _q2_(param){ + function _rE_(param){ + var + _rN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$18), + _rO_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _rO_, _rN_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$53); + var _rP_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2496); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _rP_); + } + function _rF_(param){ + var + _rG_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 12, 31), + _rH_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _rG_), + _rI_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 1, 1), + _rJ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _rI_), + _rK_ = caml_call2(Runtime_ocaml_Runtime[83], _rJ_, _rH_), + _rL_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _hs_), + _rM_ = caml_call2(Runtime_ocaml_Runtime[83], _rL_, _rK_); + return caml_call2(Runtime_ocaml_Runtime[29], _ht_, _rM_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hu_, [0], _rF_, _rE_); + } + function _q3_(param){ + function _rs_(param){ + var + _rB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$19), + _rC_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _rC_, _rB_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$54); + var _rD_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2437); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _rD_); + } + function _rt_(param){ + var + _ru_ = caml_call3(Runtime_ocaml_Runtime[57], 2013, 12, 31), + _rv_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _ru_), + _rw_ = caml_call3(Runtime_ocaml_Runtime[57], 2013, 1, 1), + _rx_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _rw_), + _ry_ = caml_call2(Runtime_ocaml_Runtime[83], _rx_, _rv_), + _rz_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _hv_), + _rA_ = caml_call2(Runtime_ocaml_Runtime[83], _rz_, _ry_); + return caml_call2(Runtime_ocaml_Runtime[29], _hw_, _rA_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hx_, [0], _rt_, _rs_); + } + function _q4_(param){ + function _rg_(param){ + var + _rp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$20), + _rq_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _rq_, _rp_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$55); + var _rr_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2379); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _rr_); + } + function _rh_(param){ + var + _ri_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 12, 31), + _rj_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _ri_), + _rk_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 1, 1), + _rl_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _rk_), + _rm_ = caml_call2(Runtime_ocaml_Runtime[83], _rl_, _rj_), + _rn_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _hy_), + _ro_ = caml_call2(Runtime_ocaml_Runtime[83], _rn_, _rm_); + return caml_call2(Runtime_ocaml_Runtime[29], _hz_, _ro_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hA_, [0], _rh_, _rg_); + } + var + _q5_ = + [0, + function(param){ + function _q6_(param){ + var + _rd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$21), + _re_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _re_, _rd_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$56); + var _rf_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_232); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _rf_); + } + function _q7_(param){ + var + _q8_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 12, 31), + _q9_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _q8_), + _q__ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 1, 1), + _q$_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _q__), + _ra_ = caml_call2(Runtime_ocaml_Runtime[83], _q$_, _q9_), + _rb_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _hB_), + _rc_ = caml_call2(Runtime_ocaml_Runtime[83], _rb_, _ra_); + return caml_call2(Runtime_ocaml_Runtime[29], _hC_, _rc_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hD_, [0], _q7_, _q6_); + }, + _q4_, + _q3_, + _q2_, + _q1_, + _q0_, + _qZ_, + _qY_, + _qX_, + _qW_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _hE_, _q5_, _qV_, _qU_); + }]; + return caml_call4(Runtime_ocaml_Runtime[63], _hF_, _qT_, _qS_, _qR_); + }], + _m8_ = caml_call4(Runtime_ocaml_Runtime[63], _hG_, _m7_, _m6_, _m5_); + } + catch(_qQ_){ + var _m4_ = caml_wrap_exception(_qQ_); + if(_m4_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _g2_], 1); + throw caml_maybe_attach_backtrace(_m4_, 0); + } + var + montant_initial_base_deuxieme_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _hH_, Runtime_ocaml_Runtime[13], _m8_); + try{ + var + _m__ = + function(param){ + var _qP_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0$57); + return caml_call2 + (Runtime_ocaml_Runtime[86], nombre_total_enfants, _qP_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0$58) + : caml_call2 + (Runtime_ocaml_Runtime[107], + nombre_moyen_enfants, + nombre_total_enfants); + }, + _m$_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _hJ_, 1); + }, + _na_ = caml_call4(Runtime_ocaml_Runtime[63], _hK_, [0], _m$_, _m__); + } + catch(_qO_){ + var _m9_ = caml_wrap_exception(_qO_); + if(_m9_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _hI_], 1); + throw caml_maybe_attach_backtrace(_m9_, 0); + } + var + rapport_enfants_total_moyen = + caml_call3 + (Runtime_ocaml_Runtime[28], _hL_, Runtime_ocaml_Runtime[15], _na_); + function _nb_(enfant){ + try{ + var + _p8_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _p9_ = function(param){return 0;}, + _p__ = + function(param){ + function _qH_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$59); + } + function _qI_(param){ + var + _qJ_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _hN_, embed_enfant, enfant), + _qK_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _hO_, droit_ouvert_majoration), + _qJ_), + _qL_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _hP_, + Runtime_ocaml_Runtime[12], + _qK_), + _qM_ = caml_call2(Runtime_ocaml_Runtime[27], _hQ_, _qL_), + _qN_ = caml_call1(Runtime_ocaml_Runtime[67], _qM_); + return caml_call2(Runtime_ocaml_Runtime[29], _hR_, _qN_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _hS_, [0], _qI_, _qH_); + }, + _p$_ = + function(param){ + function _qy_(param){ + var _qG_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_04); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _qG_); + } + function _qz_(param){ + var + _qA_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _hT_, embed_enfant, enfant), + _qB_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _hU_, droit_ouvert_majoration), + _qA_), + _qC_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _hV_, + Runtime_ocaml_Runtime[12], + _qB_), + _qD_ = caml_call2(Runtime_ocaml_Runtime[27], _hW_, _qC_), + _qE_ = + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_i_d521_3), + _qF_ = caml_call2(Runtime_ocaml_Runtime[83], _qE_, _qD_); + return caml_call2(Runtime_ocaml_Runtime[29], _hX_, _qF_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _hY_, [0], _qz_, _qy_); + }, + _qa_ = + function(param){ + function _qn_(param){ + var _qx_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_08$0); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _qx_); + } + function _qo_(param){ + var + _qp_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _hZ_, embed_enfant, enfant), + _qq_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _h0_, droit_ouvert_majoration), + _qp_), + _qr_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _h1_, + Runtime_ocaml_Runtime[12], + _qq_), + _qs_ = caml_call2(Runtime_ocaml_Runtime[27], _h2_, _qr_), + _qt_ = + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage, + plafond_i_i_d521_3), + _qu_ = + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_d521_3), + _qv_ = caml_call2(Runtime_ocaml_Runtime[83], _qu_, _qt_), + _qw_ = caml_call2(Runtime_ocaml_Runtime[83], _qv_, _qs_); + return caml_call2(Runtime_ocaml_Runtime[29], _h3_, _qw_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _h4_, [0], _qo_, _qn_); + }, + _qb_ = + [0, + function(param){ + function _qe_(param){ + var _qm_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_16$1); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _qm_); + } + function _qf_(param){ + var + _qg_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _h5_, embed_enfant, enfant), + _qh_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _h6_, droit_ouvert_majoration), + _qg_), + _qi_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _h7_, + Runtime_ocaml_Runtime[12], + _qh_), + _qj_ = caml_call2(Runtime_ocaml_Runtime[27], _h8_, _qi_), + _qk_ = + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage, + plafond_i_d521_3), + _ql_ = caml_call2(Runtime_ocaml_Runtime[83], _qk_, _qj_); + return caml_call2(Runtime_ocaml_Runtime[29], _h9_, _ql_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _h__, [0], _qf_, _qe_); + }, + _qa_, + _p$_, + _p__], + _qc_ = caml_call4(Runtime_ocaml_Runtime[63], _h$_, _qb_, _p9_, _p8_); + return _qc_; + } + catch(_qd_){ + var _p7_ = caml_wrap_exception(_qd_); + if(_p7_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _hM_], 1); + throw caml_maybe_attach_backtrace(_p7_, 0); + } + } + var + montant_initial_metropole_majo = + caml_call3 + (Runtime_ocaml_Runtime[28], _ia_, Runtime_ocaml_Runtime[10], _nb_); + try{ + var + _nd_ = + function(param){ + function _p0_(enfant){ + var + _p4_ = + caml_call3(Runtime_ocaml_Runtime[28], _ic_, embed_enfant, enfant), + _p5_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _id_, droit_ouvert_forfaitaire), + _p4_), + _p6_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _ie_, + Runtime_ocaml_Runtime[12], + _p5_); + return caml_call2(Runtime_ocaml_Runtime[27], _if_, _p6_); + } + var + _p1_ = caml_call2(Runtime_ocaml_Runtime[90], _p0_, enfants_a_charge), + _p2_ = caml_call1(Runtime_ocaml_Runtime[68], _p1_), + _p3_ = caml_call1(Runtime_ocaml_Runtime[69], _p2_); + return caml_call2 + (Runtime_ocaml_Runtime[104], + montant_verse_forfaitaire_par_, + _p3_); + }, + _ne_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ig_, 1); + }, + _nf_ = caml_call4(Runtime_ocaml_Runtime[63], _ih_, [0], _ne_, _nd_); + } + catch(_pZ_){ + var _nc_ = caml_wrap_exception(_pZ_); + if(_nc_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _ib_], 1); + throw caml_maybe_attach_backtrace(_nc_, 0); + } + var + montant_verse_forfaitaire = + caml_call3 + (Runtime_ocaml_Runtime[28], _ii_, Runtime_ocaml_Runtime[13], _nf_); + try{ + var + _nh_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[93], + montant_initial_base_deuxieme_, + montant_initial_base_troisieme$0); + }, + _ni_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ik_, 1); + }, + _nj_ = + [0, + function(param){ + function _pK_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _pL_(param){return 0;} + function _pM_(param){ + function _pU_(param){ + var + _pX_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + montant_initial_base_premier_e, + montant_initial_base_deuxieme_), + _pY_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + _pX_, + montant_initial_base_troisieme); + return caml_call2 (Runtime_ocaml_Runtime[93], - montant_verse_base, - montant_verse_majoration)}, - _cg__= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jo_,1)}, - _cg$_=caml_call4(Runtime_ocaml_Runtime[63],_jp_,[0],_cg__,_cg9_)} - catch(_chs_) - {_chs_ = caml_wrap_exception(_chs_); - if(_chs_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_jn_]; - throw _chs_} + _pY_, + montant_initial_base_quatrieme); + } + function _pV_(param){ + var _pW_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _il_); + return caml_call2(Runtime_ocaml_Runtime[29], _im_, _pW_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _in_, [0], _pV_, _pU_); + } + var + _pN_ = + [0, + function(param){ + function _pO_(param){return montant_initial_base_premier_e;} + function _pP_(param){ + var + _pQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$22), + _pR_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _pS_ = caml_call2(Runtime_ocaml_Runtime[86], _pR_, _pQ_), + _pT_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + prestations_familiales_dot_reg, + _pS_); + return caml_call2(Runtime_ocaml_Runtime[29], _io_, _pT_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ip_, [0], _pP_, _pO_); + }, + _pM_]; + return caml_call4(Runtime_ocaml_Runtime[63], _iq_, _pN_, _pL_, _pK_); + }], + _nk_ = caml_call4(Runtime_ocaml_Runtime[63], _ir_, _nj_, _ni_, _nh_); + } + catch(_pJ_){ + var _ng_ = caml_wrap_exception(_pJ_); + if(_ng_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _ij_], 1); + throw caml_maybe_attach_backtrace(_ng_, 0); + } + var + montant_initial_base = + caml_call3 + (Runtime_ocaml_Runtime[28], _is_, Runtime_ocaml_Runtime[13], _nk_); + function _nl_(enfant){ + try{ var - montant_base_complement_pour_b= - caml_call3 - (Runtime_ocaml_Runtime[28],_jq_,Runtime_ocaml_Runtime[13],_cg$_); - try - {var - _cha_= - function(param) - {if(droit_ouvert_complement) - {var - _chp_= + _oZ_ = + function(param){ + var + _pG_ = + caml_call3(Runtime_ocaml_Runtime[28], _iu_, embed_enfant, enfant), + _pH_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _iv_, + montant_initial_metropole_majo), + _pG_), + _pI_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _iw_, + Runtime_ocaml_Runtime[13], + _pH_); + return caml_call2(Runtime_ocaml_Runtime[27], _ix_, _pI_); + }, + _o0_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _iy_, 1); + }, + _o1_ = + [0, + function(param){ + function _o4_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _o5_(param){return 0;} + function _o6_(param){ + function _pq_(param){ + var _pF_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0567); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _pF_); + } + function _pr_(param){ + var + _ps_ = caml_call3(Runtime_ocaml_Runtime[60], 16, 0, 0), + _pt_ = caml_call3(Runtime_ocaml_Runtime[94], 2, enfant[4], _ps_), + _pu_ = + caml_call2(Runtime_ocaml_Runtime[120], _pt_, date_courante), + _pv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$23), + _pw_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _px_ = caml_call2(Runtime_ocaml_Runtime[86], _pw_, _pv_), + _py_ = caml_call2(Runtime_ocaml_Runtime[83], _px_, _pu_), + _pz_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + prestations_familiales_dot_reg, + _py_), + _pA_ = caml_call3 - (Runtime_ocaml_Runtime[28], - _js_, - Runtime_ocaml_Runtime[13], - montant_base_complement_pour_b), - _chq_= + (Runtime_ocaml_Runtime[28], _iz_, embed_enfant, enfant), + _pB_ = caml_call1 (caml_call2 - (Runtime_ocaml_Runtime[26],_jt_,complement_degressif), - _chp_), - _chr_= + (Runtime_ocaml_Runtime[26], _iA_, droit_ouvert_majoration), + _pA_), + _pC_ = caml_call3 (Runtime_ocaml_Runtime[28], - _ju_, - Runtime_ocaml_Runtime[13], - _chq_); - return caml_call2(Runtime_ocaml_Runtime[27],_jv_,_chr_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$65)}, - _chb_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jw_,1)}, - _chc_=caml_call4(Runtime_ocaml_Runtime[63],_jx_,[0],_chb_,_cha_)} - catch(_cho_) - {_cho_ = caml_wrap_exception(_cho_); - if(_cho_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_jr_]; - throw _cho_} + _iB_, + Runtime_ocaml_Runtime[12], + _pB_), + _pD_ = caml_call2(Runtime_ocaml_Runtime[27], _iC_, _pC_), + _pE_ = caml_call2(Runtime_ocaml_Runtime[83], _pD_, _pz_); + return caml_call2(Runtime_ocaml_Runtime[29], _iD_, _pE_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iE_, [0], _pr_, _pq_); + } + var + _o7_ = + [0, + function(param){ + function _o8_(param){ + var _pp_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0369); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _pp_); + } + function _o9_(param){ + var + _o__ = caml_call3(Runtime_ocaml_Runtime[60], 16, 0, 0), + _o$_ = + caml_call3(Runtime_ocaml_Runtime[94], 2, enfant[4], _o__), + _pa_ = + caml_call2(Runtime_ocaml_Runtime[125], _o$_, date_courante), + _pb_ = caml_call3(Runtime_ocaml_Runtime[60], 11, 0, 0), + _pc_ = + caml_call3(Runtime_ocaml_Runtime[94], 2, enfant[4], _pb_), + _pd_ = + caml_call2(Runtime_ocaml_Runtime[120], _pc_, date_courante), + _pe_ = caml_call2(Runtime_ocaml_Runtime[83], _pd_, _pa_), + _pf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$24), + _pg_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _ph_ = caml_call2(Runtime_ocaml_Runtime[86], _pg_, _pf_), + _pi_ = caml_call2(Runtime_ocaml_Runtime[83], _ph_, _pe_), + _pj_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + prestations_familiales_dot_reg, + _pi_), + _pk_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _iF_, embed_enfant, enfant), + _pl_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _iG_, droit_ouvert_majoration), + _pk_), + _pm_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _iH_, + Runtime_ocaml_Runtime[12], + _pl_), + _pn_ = caml_call2(Runtime_ocaml_Runtime[27], _iI_, _pm_), + _po_ = caml_call2(Runtime_ocaml_Runtime[83], _pn_, _pj_); + return caml_call2(Runtime_ocaml_Runtime[29], _iJ_, _po_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iK_, [0], _o9_, _o8_); + }, + _o6_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _iL_, _o7_, _o5_, _o4_); + }], + _o2_ = caml_call4(Runtime_ocaml_Runtime[63], _iM_, _o1_, _o0_, _oZ_); + return _o2_; + } + catch(_o3_){ + var _oY_ = caml_wrap_exception(_o3_); + if(_oY_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _it_], 1); + throw caml_maybe_attach_backtrace(_oY_, 0); + } + } + var + montant_initial_majoration = + caml_call3 + (Runtime_ocaml_Runtime[28], _iN_, Runtime_ocaml_Runtime[10], _nl_); + try{ + var + _nn_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$60); + }, + _no_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _iP_, 1); + }, + _np_ = + [0, + function(param){ + function _oq_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _or_(param){return 0;} + function _os_(param){ + function _oJ_(param){ + var + _oR_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$5), + _oS_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$25), + _oT_ = caml_call2(Runtime_ocaml_Runtime[107], _oS_, _oR_), + _oU_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$6), + _oV_ = + caml_call2 + (Runtime_ocaml_Runtime[104], montant_verse_forfaitaire, _oU_), + _oW_ = + caml_call2(Runtime_ocaml_Runtime[93], plafond_i_i_d521_3, _oV_), + _oX_ = + caml_call2(Runtime_ocaml_Runtime[98], _oW_, ressources_menage); + return caml_call2(Runtime_ocaml_Runtime[104], _oX_, _oT_); + } + function _oK_(param){ + var + _oL_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$7), + _oM_ = + caml_call2 + (Runtime_ocaml_Runtime[104], montant_verse_forfaitaire, _oL_), + _oN_ = + caml_call2(Runtime_ocaml_Runtime[93], plafond_i_i_d521_3, _oM_), + _oO_ = + caml_call2(Runtime_ocaml_Runtime[118], ressources_menage, _oN_), + _oP_ = + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_i_d521_3), + _oQ_ = caml_call2(Runtime_ocaml_Runtime[83], _oP_, _oO_); + return caml_call2(Runtime_ocaml_Runtime[29], _iQ_, _oQ_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _iR_, [0], _oK_, _oJ_); + } + var + _ot_ = + [0, + function(param){ + function _ou_(param){ + var + _oC_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$8), + _oD_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$26), + _oE_ = caml_call2(Runtime_ocaml_Runtime[107], _oD_, _oC_), + _oF_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$9), + _oG_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + montant_verse_forfaitaire, + _oF_), + _oH_ = + caml_call2 + (Runtime_ocaml_Runtime[93], plafond_i_d521_3, _oG_), + _oI_ = + caml_call2 + (Runtime_ocaml_Runtime[98], _oH_, ressources_menage); + return caml_call2(Runtime_ocaml_Runtime[104], _oI_, _oE_); + } + function _ov_(param){ + var + _ow_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$10), + _ox_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + montant_verse_forfaitaire, + _ow_), + _oy_ = + caml_call2 + (Runtime_ocaml_Runtime[93], plafond_i_d521_3, _ox_), + _oz_ = + caml_call2 + (Runtime_ocaml_Runtime[118], ressources_menage, _oy_), + _oA_ = + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_d521_3), + _oB_ = caml_call2(Runtime_ocaml_Runtime[83], _oA_, _oz_); + return caml_call2(Runtime_ocaml_Runtime[29], _iS_, _oB_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iT_, [0], _ov_, _ou_); + }, + _os_]; + return caml_call4(Runtime_ocaml_Runtime[63], _iU_, _ot_, _or_, _oq_); + }], + _nq_ = caml_call4(Runtime_ocaml_Runtime[63], _iV_, _np_, _no_, _nn_); + } + catch(_op_){ + var _nm_ = caml_wrap_exception(_op_); + if(_nm_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _iO_], 1); + throw caml_maybe_attach_backtrace(_nm_, 0); + } + var + montant_verse_complement_pour_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _iW_, Runtime_ocaml_Runtime[13], _nq_); + try{ + var + _ns_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[104], + montant_initial_base, + rapport_enfants_total_moyen); + }, + _nt_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _iY_, 1); + }, + _nu_ = caml_call4(Runtime_ocaml_Runtime[63], _iZ_, [0], _nt_, _ns_); + } + catch(_oo_){ + var _nr_ = caml_wrap_exception(_oo_); + if(_nr_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _iX_], 1); + throw caml_maybe_attach_backtrace(_nr_, 0); + } + var + montant_avec_garde_alternee_ba = + caml_call3 + (Runtime_ocaml_Runtime[28], _i0_, Runtime_ocaml_Runtime[13], _nu_); + function _nv_(enfant){ + try{ var - montant_verse_complement_pour_$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_jy_,Runtime_ocaml_Runtime[13],_chc_); - try - {var - _chd_= - function(param) - {if(droit_ouvert_base) - {var - _chl_= - caml_call2 + _oc_ = + function(param){ + var + _og_ = + caml_call3(Runtime_ocaml_Runtime[28], _i2_, embed_enfant, enfant), + _oh_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _i3_, prise_en_compte), + _og_), + _oi_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _i4_, embed_prise_en_compte, _oh_); + switch(caml_call2(Runtime_ocaml_Runtime[27], _i5_, _oi_)[0]){ + case 0: + var _oj_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$27); + break; + case 1: + var _oj_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_5$0); + break; + default: + var _oj_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0$61); + } + var + _ok_ = + caml_call3(Runtime_ocaml_Runtime[28], _i6_, embed_enfant, enfant), + _ol_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _i7_, montant_initial_majoration), + _ok_), + _om_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _i8_, + Runtime_ocaml_Runtime[13], + _ol_), + _on_ = caml_call2(Runtime_ocaml_Runtime[27], _i9_, _om_); + return caml_call2(Runtime_ocaml_Runtime[104], _on_, _oj_); + }, + _od_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _i__, 1); + }, + _oe_ = caml_call4(Runtime_ocaml_Runtime[63], _i$_, [0], _od_, _oc_); + return _oe_; + } + catch(_of_){ + var _ob_ = caml_wrap_exception(_of_); + if(_ob_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _i1_], 1); + throw caml_maybe_attach_backtrace(_ob_, 0); + } + } + var + montant_avec_garde_alternee_ma = + caml_call3 + (Runtime_ocaml_Runtime[28], _ja_, Runtime_ocaml_Runtime[10], _nv_); + try{ + var + _nx_ = + function(param){ + return droit_ouvert_base + ? montant_avec_garde_alternee_ba + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$62); + }, + _ny_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _jc_, 1); + }, + _nz_ = caml_call4(Runtime_ocaml_Runtime[63], _jd_, [0], _ny_, _nx_); + } + catch(_oa_){ + var _nw_ = caml_wrap_exception(_oa_); + if(_nw_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jb_], 1); + throw caml_maybe_attach_backtrace(_nw_, 0); + } + var + montant_verse_base = + caml_call3 + (Runtime_ocaml_Runtime[28], _je_, Runtime_ocaml_Runtime[13], _nz_); + try{ + var + _nB_ = + function(param){ + if(! droit_ouvert_base) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$64); + function _n5_(enfant){ + var + _n9_ = + caml_call3(Runtime_ocaml_Runtime[28], _jg_, embed_enfant, enfant), + _n__ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _jh_, + montant_avec_garde_alternee_ma), + _n9_), + _n$_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _ji_, + Runtime_ocaml_Runtime[13], + _n__); + return caml_call2(Runtime_ocaml_Runtime[27], _jj_, _n$_); + } + var + _n6_ = caml_call2(Runtime_ocaml_Runtime[87], _n5_, enfants_a_charge), + _n7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$63); + function _n8_(sum1, sum2){ + return caml_call2(Runtime_ocaml_Runtime[93], sum1, sum2); + } + return caml_call3(Runtime_ocaml_Runtime[88], _n8_, _n7_, _n6_); + }, + _nC_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _jk_, 1); + }, + _nD_ = caml_call4(Runtime_ocaml_Runtime[63], _jl_, [0], _nC_, _nB_); + } + catch(_n4_){ + var _nA_ = caml_wrap_exception(_n4_); + if(_nA_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jf_], 1); + throw caml_maybe_attach_backtrace(_nA_, 0); + } + var + montant_verse_majoration = + caml_call3 + (Runtime_ocaml_Runtime[28], _jm_, Runtime_ocaml_Runtime[13], _nD_); + try{ + var + _nF_ = + function(param){ + return caml_call2 (Runtime_ocaml_Runtime[93], montant_verse_base, - montant_verse_majoration), - _chm_= - caml_call2 - (Runtime_ocaml_Runtime[93],_chl_,montant_verse_forfaitaire), - _chn_= - caml_call2 - (Runtime_ocaml_Runtime[93], - _chm_, - montant_verse_complement_pour_$0); - return caml_call2 - (Runtime_ocaml_Runtime[93], - _chn_, - montant_verse_complement_pour_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$66)}, - _che_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jA_,1)}, - _chf_=caml_call4(Runtime_ocaml_Runtime[63],_jB_,[0],_che_,_chd_)} - catch(_chk_) - {_chk_ = caml_wrap_exception(_chk_); - if(_chk_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_jz_]; - throw _chk_} - var - montant_verse= - caml_call3 - (Runtime_ocaml_Runtime[28],_jC_,Runtime_ocaml_Runtime[13],_chf_); - try - {var - _chg_= - caml_call1(Runtime_ocaml_Runtime[67],personne_charge_effective_perm), - _chh_= - caml_call2 - (Runtime_ocaml_Runtime[83],_chg_,personne_charge_effective_perm$0), - _chi_= - caml_call2 - (Runtime_ocaml_Runtime[84],personne_charge_effective_perm,_chh_)} - catch(_chj_) - {_chj_ = caml_wrap_exception(_chj_); - if(_chj_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_jD_]; - throw _chj_} - if(_chi_)return [0,montant_verse]; - throw [0,Runtime_ocaml_Runtime[3],_jE_]} - function interface_allocations_familial(interface_allocations_familial) - {var - i_date_courante=interface_allocations_familial[1], - i_enfants=interface_allocations_familial[2], - i_ressources_menage=interface_allocations_familial[3], - i_residence=interface_allocations_familial[4], - i_personne_charge_effective_pe=interface_allocations_familial[5], - i_personne_charge_effective_pe$0=interface_allocations_familial[6], - i_avait_enfant_a_charge_avant_=interface_allocations_familial[7]; - try - {var - _cer_= - function(param) - {function _cfb_(enfant) - {var - _cfc_=enfant[6], - _cfd_=enfant[5], - _cfe_=enfant[4], - _cff_=enfant[3], - _cfg_=enfant[2], - _cfh_=caml_call3(Runtime_ocaml_Runtime[60],3,0,0), - _cfi_=caml_call3(Runtime_ocaml_Runtime[94],2,enfant[3],_cfh_); - if(caml_call2(Runtime_ocaml_Runtime[130],_cfi_,i_date_courante)) - var _cfj_=_jG_; - else - var - _cfk_=caml_call3(Runtime_ocaml_Runtime[60],16,0,0), - _cfl_=caml_call3(Runtime_ocaml_Runtime[94],2,enfant[3],_cfk_), - _cfj_= - caml_call2(Runtime_ocaml_Runtime[130],_cfl_,i_date_courante) - ?_jH_ - :_jI_; - return [0,enfant[1],_cfj_,_cfg_,_cff_,_cfe_,_cfd_,_cfc_]} - return caml_call2(Runtime_ocaml_Runtime[87],_cfb_,i_enfants)}, - _ces_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jJ_,1)}, - _cet_=caml_call4(Runtime_ocaml_Runtime[63],_jK_,[0],_ces_,_cer_)} - catch(_cfa_) - {_cfa_ = caml_wrap_exception(_cfa_); - if(_cfa_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_jF_]; - throw _cfa_} - var - _ceu_=caml_call1(Runtime_ocaml_Runtime[18],embed_enfant), - enfants_a_charge=caml_call3(Runtime_ocaml_Runtime[28],_jL_,_ceu_,_cet_); - try - {var - _cev_=function(param){return 0}, - _cew_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jN_,1)}, - _cex_= - [0, - function(param) - {function _ce__(param){return 1} - function _ce$_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29], - _jO_, - i_personne_charge_effective_pe)} - return caml_call4(Runtime_ocaml_Runtime[63],_jP_,[0],_ce$_,_ce__)}], - _cey_=caml_call4(Runtime_ocaml_Runtime[63],_jQ_,_cex_,_cew_,_cev_), - allocations_familiales_dot_per= - caml_call3 - (Runtime_ocaml_Runtime[28],_jR_,Runtime_ocaml_Runtime[12],_cey_)} - catch(_ce9_) - {_ce9_ = caml_wrap_exception(_ce9_); - if(_ce9_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_jM_]; - throw _ce9_} - try - {var - _cez_=function(param){return 0}, - _ceA_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jT_,1)}, - _ceB_= - [0, - function(param) - {function _ce7_(param){return 1} - function _ce8_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29], - _jU_, - i_personne_charge_effective_pe$0)} - return caml_call4(Runtime_ocaml_Runtime[63],_jV_,[0],_ce8_,_ce7_)}], - _ceC_=caml_call4(Runtime_ocaml_Runtime[63],_jW_,_ceB_,_ceA_,_cez_), - allocations_familiales_dot_per$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_jX_,Runtime_ocaml_Runtime[12],_ceC_)} - catch(_ce6_) - {_ce6_ = caml_wrap_exception(_ce6_); - if(_ce6_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_jS_]; - throw _ce6_} - try - {var - _ceD_=function(param){return i_ressources_menage}, - _ceE_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jZ_,1)}, - _ceF_=caml_call4(Runtime_ocaml_Runtime[63],_j0_,[0],_ceE_,_ceD_), - allocations_familiales_dot_res= - caml_call3 - (Runtime_ocaml_Runtime[28],_j1_,Runtime_ocaml_Runtime[13],_ceF_)} - catch(_ce5_) - {_ce5_ = caml_wrap_exception(_ce5_); - if(_ce5_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_jY_]; - throw _ce5_} - try - {var - _ceG_=function(param){return i_residence}, - _ceH_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_j3_,1)}, - _ceI_=caml_call4(Runtime_ocaml_Runtime[63],_j4_,[0],_ceH_,_ceG_), - allocations_familiales_dot_res$0= - caml_call3(Runtime_ocaml_Runtime[28],_j5_,embed_collectivite,_ceI_)} - catch(_ce4_) - {_ce4_ = caml_wrap_exception(_ce4_); - if(_ce4_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_j2_]; - throw _ce4_} - try - {var - _ceJ_=function(param){return i_date_courante}, - _ceK_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_j7_,1)}, - _ceL_=caml_call4(Runtime_ocaml_Runtime[63],_j8_,[0],_ceK_,_ceJ_), - allocations_familiales_dot_dat= - caml_call3 - (Runtime_ocaml_Runtime[28],_j9_,Runtime_ocaml_Runtime[16],_ceL_)} - catch(_ce3_) - {_ce3_ = caml_wrap_exception(_ce3_); - if(_ce3_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_j6_]; - throw _ce3_} - try - {var - _ceM_=function(param){return enfants_a_charge}, - _ceN_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_j$_,1)}, - _ceO_=caml_call4(Runtime_ocaml_Runtime[63],_ka_,[0],_ceN_,_ceM_), - _ceP_=caml_call1(Runtime_ocaml_Runtime[18],embed_enfant), - allocations_familiales_dot_enf= - caml_call3(Runtime_ocaml_Runtime[28],_kb_,_ceP_,_ceO_)} - catch(_ce2_) - {_ce2_ = caml_wrap_exception(_ce2_); - if(_ce2_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_j__]; - throw _ce2_} - try - {var - _ceQ_=function(param){return 0}, - _ceR_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_kd_,1)}, - _ceS_= - [0, - function(param) - {function _ce0_(param){return 1} - function _ce1_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29], - _ke_, - i_avait_enfant_a_charge_avant_)} - return caml_call4(Runtime_ocaml_Runtime[63],_kf_,[0],_ce1_,_ce0_)}], - _ceT_=caml_call4(Runtime_ocaml_Runtime[63],_kg_,_ceS_,_ceR_,_ceQ_), - allocations_familiales_dot_ava= - caml_call3 - (Runtime_ocaml_Runtime[28],_kh_,Runtime_ocaml_Runtime[12],_ceT_)} - catch(_ceZ_) - {_ceZ_ = caml_wrap_exception(_ceZ_); - if(_ceZ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_kc_]; - throw _ceZ_} - var - _ceU_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_ki_,allocations_familiales), - [0, - allocations_familiales_dot_per, - allocations_familiales_dot_per$0, - allocations_familiales_dot_res, - allocations_familiales_dot_res$0, - allocations_familiales_dot_dat, - allocations_familiales_dot_enf, - allocations_familiales_dot_ava]), - result=caml_call2(Runtime_ocaml_Runtime[27],_kj_,_ceU_), - allocations_familiales_dot_mon=result[1]; - try - {var - _ceV_=function(param){return allocations_familiales_dot_mon}, - _ceW_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_kl_,1)}, - _ceX_=caml_call4(Runtime_ocaml_Runtime[63],_km_,[0],_ceW_,_ceV_)} - catch(_ceY_) - {_ceY_ = caml_wrap_exception(_ceY_); - if(_ceY_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_kk_]; - throw _ceY_} - var - i_montant_verse= - caml_call3 - (Runtime_ocaml_Runtime[28],_kn_,Runtime_ocaml_Runtime[13],_ceX_); - return [0,i_montant_verse]} + montant_verse_majoration); + }, + _nG_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _jo_, 1); + }, + _nH_ = caml_call4(Runtime_ocaml_Runtime[63], _jp_, [0], _nG_, _nF_); + } + catch(_n3_){ + var _nE_ = caml_wrap_exception(_n3_); + if(_nE_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jn_], 1); + throw caml_maybe_attach_backtrace(_nE_, 0); + } var - Law_source_Allocations_familia= + montant_base_complement_pour_b = + caml_call3 + (Runtime_ocaml_Runtime[28], _jq_, Runtime_ocaml_Runtime[13], _nH_); + try{ + var + _nJ_ = + function(param){ + if(! droit_ouvert_complement) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$65); + var + _n0_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _js_, + Runtime_ocaml_Runtime[13], + montant_base_complement_pour_b), + _n1_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _jt_, complement_degressif), + _n0_), + _n2_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _ju_, + Runtime_ocaml_Runtime[13], + _n1_); + return caml_call2(Runtime_ocaml_Runtime[27], _jv_, _n2_); + }, + _nK_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _jw_, 1); + }, + _nL_ = caml_call4(Runtime_ocaml_Runtime[63], _jx_, [0], _nK_, _nJ_); + } + catch(_nZ_){ + var _nI_ = caml_wrap_exception(_nZ_); + if(_nI_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jr_], 1); + throw caml_maybe_attach_backtrace(_nI_, 0); + } + var + montant_verse_complement_pour_$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _jy_, Runtime_ocaml_Runtime[13], _nL_); + try{ + var + _nN_ = + function(param){ + if(! droit_ouvert_base) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$66); + var + _nW_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + montant_verse_base, + montant_verse_majoration), + _nX_ = + caml_call2 + (Runtime_ocaml_Runtime[93], _nW_, montant_verse_forfaitaire), + _nY_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + _nX_, + montant_verse_complement_pour_$0); + return caml_call2 + (Runtime_ocaml_Runtime[93], + _nY_, + montant_verse_complement_pour_); + }, + _nO_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _jA_, 1); + }, + _nP_ = caml_call4(Runtime_ocaml_Runtime[63], _jB_, [0], _nO_, _nN_); + } + catch(_nV_){ + var _nM_ = caml_wrap_exception(_nV_); + if(_nM_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jz_], 1); + throw caml_maybe_attach_backtrace(_nM_, 0); + } + var + montant_verse = + caml_call3 + (Runtime_ocaml_Runtime[28], _jC_, Runtime_ocaml_Runtime[13], _nP_); + try{ + var + _nR_ = + caml_call1(Runtime_ocaml_Runtime[67], personne_charge_effective_perm), + _nS_ = + caml_call2 + (Runtime_ocaml_Runtime[83], _nR_, personne_charge_effective_perm$0), + _nT_ = + caml_call2 + (Runtime_ocaml_Runtime[84], personne_charge_effective_perm, _nS_); + } + catch(_nU_){ + var _nQ_ = caml_wrap_exception(_nU_); + if(_nQ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jD_], 1); + throw caml_maybe_attach_backtrace(_nQ_, 0); + } + if(_nT_) return [0, montant_verse]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _jE_], 1); + } + function interface_allocations_familial(interface_allocations_familial){ + var + i_date_courante = interface_allocations_familial[1], + i_enfants = interface_allocations_familial[2], + i_ressources_menage = interface_allocations_familial[3], + i_residence = interface_allocations_familial[4], + i_personne_charge_effective_pe = interface_allocations_familial[5], + i_personne_charge_effective_pe$0 = interface_allocations_familial[6], + i_avait_enfant_a_charge_avant_ = interface_allocations_familial[7]; + try{ + var + _kp_ = + function(param){ + function _lh_(enfant){ + var + _li_ = enfant[6], + _lj_ = enfant[5], + _lk_ = enfant[4], + _ll_ = enfant[3], + _lm_ = enfant[2], + _ln_ = caml_call3(Runtime_ocaml_Runtime[60], 3, 0, 0), + _lo_ = caml_call3(Runtime_ocaml_Runtime[94], 2, enfant[3], _ln_); + if(caml_call2(Runtime_ocaml_Runtime[130], _lo_, i_date_courante)) + var _lp_ = _jG_; + else + var + _lq_ = caml_call3(Runtime_ocaml_Runtime[60], 16, 0, 0), + _lr_ = caml_call3(Runtime_ocaml_Runtime[94], 2, enfant[3], _lq_), + _lp_ = + caml_call2(Runtime_ocaml_Runtime[130], _lr_, i_date_courante) + ? _jH_ + : _jI_; + return [0, enfant[1], _lp_, _lm_, _ll_, _lk_, _lj_, _li_]; + } + return caml_call2(Runtime_ocaml_Runtime[87], _lh_, i_enfants); + }, + _kq_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _jJ_, 1); + }, + _kr_ = caml_call4(Runtime_ocaml_Runtime[63], _jK_, [0], _kq_, _kp_); + } + catch(_lg_){ + var _ko_ = caml_wrap_exception(_lg_); + if(_ko_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jF_], 1); + throw caml_maybe_attach_backtrace(_ko_, 0); + } + var + _ks_ = caml_call1(Runtime_ocaml_Runtime[18], embed_enfant), + enfants_a_charge = + caml_call3(Runtime_ocaml_Runtime[28], _jL_, _ks_, _kr_); + try{ + var + _ku_ = function(param){return 0;}, + _kv_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _jN_, 1); + }, + _kw_ = + [0, + function(param){ + function _le_(param){return 1;} + function _lf_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], + _jO_, + i_personne_charge_effective_pe); + } + return caml_call4(Runtime_ocaml_Runtime[63], _jP_, [0], _lf_, _le_); + }], + _kx_ = caml_call4(Runtime_ocaml_Runtime[63], _jQ_, _kw_, _kv_, _ku_), + allocations_familiales_dot_per = + caml_call3 + (Runtime_ocaml_Runtime[28], _jR_, Runtime_ocaml_Runtime[12], _kx_); + } + catch(_ld_){ + var _kt_ = caml_wrap_exception(_ld_); + if(_kt_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jM_], 1); + throw caml_maybe_attach_backtrace(_kt_, 0); + } + try{ + var + _kz_ = function(param){return 0;}, + _kA_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _jT_, 1); + }, + _kB_ = + [0, + function(param){ + function _lb_(param){return 1;} + function _lc_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], + _jU_, + i_personne_charge_effective_pe$0); + } + return caml_call4(Runtime_ocaml_Runtime[63], _jV_, [0], _lc_, _lb_); + }], + _kC_ = caml_call4(Runtime_ocaml_Runtime[63], _jW_, _kB_, _kA_, _kz_), + allocations_familiales_dot_per$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _jX_, Runtime_ocaml_Runtime[12], _kC_); + } + catch(_la_){ + var _ky_ = caml_wrap_exception(_la_); + if(_ky_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jS_], 1); + throw caml_maybe_attach_backtrace(_ky_, 0); + } + try{ + var + _kE_ = function(param){return i_ressources_menage;}, + _kF_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _jZ_, 1); + }, + _kG_ = caml_call4(Runtime_ocaml_Runtime[63], _j0_, [0], _kF_, _kE_), + allocations_familiales_dot_res = + caml_call3 + (Runtime_ocaml_Runtime[28], _j1_, Runtime_ocaml_Runtime[13], _kG_); + } + catch(_k$_){ + var _kD_ = caml_wrap_exception(_k$_); + if(_kD_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jY_], 1); + throw caml_maybe_attach_backtrace(_kD_, 0); + } + try{ + var + _kI_ = function(param){return i_residence;}, + _kJ_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _j3_, 1); + }, + _kK_ = caml_call4(Runtime_ocaml_Runtime[63], _j4_, [0], _kJ_, _kI_), + allocations_familiales_dot_res$0 = + caml_call3(Runtime_ocaml_Runtime[28], _j5_, embed_collectivite, _kK_); + } + catch(_k__){ + var _kH_ = caml_wrap_exception(_k__); + if(_kH_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _j2_], 1); + throw caml_maybe_attach_backtrace(_kH_, 0); + } + try{ + var + _kM_ = function(param){return i_date_courante;}, + _kN_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _j7_, 1); + }, + _kO_ = caml_call4(Runtime_ocaml_Runtime[63], _j8_, [0], _kN_, _kM_), + allocations_familiales_dot_dat = + caml_call3 + (Runtime_ocaml_Runtime[28], _j9_, Runtime_ocaml_Runtime[16], _kO_); + } + catch(_k9_){ + var _kL_ = caml_wrap_exception(_k9_); + if(_kL_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _j6_], 1); + throw caml_maybe_attach_backtrace(_kL_, 0); + } + try{ + var + _kQ_ = function(param){return enfants_a_charge;}, + _kR_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _j$_, 1); + }, + _kS_ = caml_call4(Runtime_ocaml_Runtime[63], _ka_, [0], _kR_, _kQ_), + _kT_ = caml_call1(Runtime_ocaml_Runtime[18], embed_enfant), + allocations_familiales_dot_enf = + caml_call3(Runtime_ocaml_Runtime[28], _kb_, _kT_, _kS_); + } + catch(_k8_){ + var _kP_ = caml_wrap_exception(_k8_); + if(_kP_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _j__], 1); + throw caml_maybe_attach_backtrace(_kP_, 0); + } + try{ + var + _kV_ = function(param){return 0;}, + _kW_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _kd_, 1); + }, + _kX_ = + [0, + function(param){ + function _k6_(param){return 1;} + function _k7_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], + _ke_, + i_avait_enfant_a_charge_avant_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _kf_, [0], _k7_, _k6_); + }], + _kY_ = caml_call4(Runtime_ocaml_Runtime[63], _kg_, _kX_, _kW_, _kV_), + allocations_familiales_dot_ava = + caml_call3 + (Runtime_ocaml_Runtime[28], _kh_, Runtime_ocaml_Runtime[12], _kY_); + } + catch(_k5_){ + var _kU_ = caml_wrap_exception(_k5_); + if(_kU_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kc_], 1); + throw caml_maybe_attach_backtrace(_kU_, 0); + } + var + _kZ_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _ki_, allocations_familiales), + [0, + allocations_familiales_dot_per, + allocations_familiales_dot_per$0, + allocations_familiales_dot_res, + allocations_familiales_dot_res$0, + allocations_familiales_dot_dat, + allocations_familiales_dot_enf, + allocations_familiales_dot_ava]), + result = caml_call2(Runtime_ocaml_Runtime[27], _kj_, _kZ_), + allocations_familiales_dot_mon = result[1]; + try{ + var + _k1_ = function(param){return allocations_familiales_dot_mon;}, + _k2_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _kl_, 1); + }, + _k3_ = caml_call4(Runtime_ocaml_Runtime[63], _km_, [0], _k2_, _k1_); + } + catch(_k4_){ + var _k0_ = caml_wrap_exception(_k4_); + if(_k0_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kk_], 1); + throw caml_maybe_attach_backtrace(_k0_, 0); + } + var + i_montant_verse = + caml_call3 + (Runtime_ocaml_Runtime[28], _kn_, Runtime_ocaml_Runtime[13], _k3_); + return [0, i_montant_verse]; + } + var + Law_source_Allocations_familia = [0, PriseEnCharge, embed_prise_en_charge, @@ -102831,606 +56857,795 @@ prestations_familiales, allocations_familiales, interface_allocations_familial]; - caml_register_global - (9317, - Law_source_Allocations_familia, - "Law_source__Allocations_familiales"); - function prise_en_charge_to_jsoo(param) - {switch(param[0]) - {case 0: - var arg=param[1]; - return {"kind":"GardeAlterneePartageAllocations","payload":arg}; - case 1: - var arg$0=param[1]; - return {"kind":"GardeAlterneeAllocataireUnique","payload":arg$0}; - case 2: - var arg$1=param[1]; - return {"kind":"EffectiveEtPermanente","payload":arg$1}; - case 3: - var arg$2=param[1]; - return {"kind":"ServicesSociauxAllocationVerseeALaFamille", - "payload":arg$2}; - default: - var arg$3=param[1]; - return {"kind":"ServicesSociauxAllocationVerseeAuxServicesSociaux", - "payload":arg$3}}} - function prise_en_charge_of_jsoo(prise_en_charge) - {var cons=caml_string_of_jsstring(prise_en_charge.kind); - if(caml_string_notequal(cons,cst_EffectiveEtPermanente$0)) - {if(caml_string_notequal(cons,cst_GardeAlterneeAllocataireUn)) - {if(caml_string_notequal(cons,cst_GardeAlterneePartageAlloca)) - {if(caml_string_notequal(cons,cst_ServicesSociauxAllocationV$1)) - {if(caml_string_notequal(cons,cst_ServicesSociauxAllocationV$2)) - {var _ceq_=caml_call2(Stdlib_Printf[4],_ko_,cons); - return caml_call1(Stdlib[2],_ceq_)} - return _kp_} - return _kq_} - return _kr_} - return _ks_} - return _kt_} - function situation_obligation_scolaire_(param) - {switch(param[0]) - {case 0:var arg=param[1];return {"kind":"Avant","payload":arg}; - case 1:var arg$0=param[1];return {"kind":"Pendant","payload":arg$0}; - default:var arg$1=param[1];return {"kind":"Apres","payload":arg$1}}} - function situation_obligation_scolaire_$0(situation_obligation_scolaire) - {var cons=caml_string_of_jsstring(situation_obligation_scolaire.kind); - if(caml_string_notequal(cons,cst_Apres)) - {if(caml_string_notequal(cons,cst_Avant$0)) - {if(caml_string_notequal(cons,cst_Pendant$0)) - {var _cep_=caml_call2(Stdlib_Printf[4],_ku_,cons); - return caml_call1(Stdlib[2],_cep_)} - return _kv_} - return _kw_} - return _kx_} - function prise_en_compte_to_jsoo(param) - {switch(param[0]) - {case 0:var arg=param[1];return {"kind":"Complete","payload":arg}; - case 1:var arg$0=param[1];return {"kind":"Partagee","payload":arg$0}; - default:var arg$1=param[1];return {"kind":"Zero","payload":arg$1}}} - function prise_en_compte_of_jsoo(prise_en_compte) - {var cons=caml_string_of_jsstring(prise_en_compte.kind); - if(caml_string_notequal(cons,cst_Complete)) - {if(caml_string_notequal(cons,cst_Partagee)) - {if(caml_string_notequal(cons,cst_Zero)) - {var _ceo_=caml_call2(Stdlib_Printf[4],_ky_,cons); - return caml_call1(Stdlib[2],_ceo_)} - return _kz_} - return _kA_} - return _kB_} - function versement_allocations_to_jsoo(param) - {if(0 === param[0]) - {var arg=param[1];return {"kind":"Normal","payload":arg}} - var arg$0=param[1]; - return {"kind":"AllocationVerseeAuxServicesSociaux","payload":arg$0}} - function versement_allocations_of_jsoo(versement_allocations) - {var cons=caml_string_of_jsstring(versement_allocations.kind); - if(caml_string_notequal(cons,cst_AllocationVerseeAuxService)) - {if(caml_string_notequal(cons,cst_Normal$0)) - {var _cen_=caml_call2(Stdlib_Printf[4],_kC_,cons); - return caml_call1(Stdlib[2],_cen_)} - return _kD_} - return _kE_} - function element_prestations_familiales(param) - {switch(param[0]) - {case 0: - var arg=param[1]; - return {"kind":"PrestationAccueilJeuneEnfant","payload":arg}; - case 1: - var arg$0=param[1]; - return {"kind":"AllocationsFamiliales","payload":arg$0}; - case 2: - var arg$1=param[1]; - return {"kind":"ComplementFamilial","payload":arg$1}; - case 3: - var arg$2=param[1]; - return {"kind":"AllocationLogement","payload":arg$2}; - case 4: - var arg$3=param[1]; - return {"kind":"AllocationEducationEnfantHandicape","payload":arg$3}; - case 5: - var arg$4=param[1]; - return {"kind":"AllocationSoutienFamilial","payload":arg$4}; - case 6: - var arg$5=param[1]; - return {"kind":"AllocationRentreeScolaire","payload":arg$5}; - default: - var arg$6=param[1]; - return {"kind":"AllocationJournalierePresenceParentale", - "payload":arg$6}}} - function element_prestations_familiales$0(element_prestations_familiales) - {var cons=caml_string_of_jsstring(element_prestations_familiales.kind); - if(caml_string_notequal(cons,cst_AllocationEducationEnfantH)) - {if(caml_string_notequal(cons,cst_AllocationJournalierePrese)) - {if(caml_string_notequal(cons,cst_AllocationLogement$0)) - {if(caml_string_notequal(cons,cst_AllocationRentreeScolaire)) - {if(caml_string_notequal(cons,cst_AllocationSoutienFamilial$0)) - {if(caml_string_notequal(cons,cst_AllocationsFamiliales$0)) - {if(caml_string_notequal(cons,cst_ComplementFamilial)) - {if - (caml_string_notequal(cons,cst_PrestationAccueilJeuneEnfa$0)) - {var _cem_=caml_call2(Stdlib_Printf[4],_kF_,cons); - return caml_call1(Stdlib[2],_cem_)} - return _kG_} - return _kH_} - return _kI_} - return _kJ_} - return _kK_} - return _kL_} - return _kM_} - return _kN_} - function collectivite_to_jsoo(param) - {switch(param[0]) - {case 0:var arg=param[1];return {"kind":"Guadeloupe","payload":arg}; - case 1:var arg$0=param[1];return {"kind":"Guyane","payload":arg$0}; - case 2: - var arg$1=param[1];return {"kind":"Martinique","payload":arg$1}; - case 3:var arg$2=param[1];return {"kind":"LaReunion","payload":arg$2}; - case 4: - var arg$3=param[1];return {"kind":"SaintBarthelemy","payload":arg$3}; - case 5: - var arg$4=param[1];return {"kind":"SaintMartin","payload":arg$4}; - case 6:var arg$5=param[1];return {"kind":"Metropole","payload":arg$5}; - case 7: - var arg$6=param[1]; - return {"kind":"SaintPierreEtMiquelon","payload":arg$6}; - default:var arg$7=param[1];return {"kind":"Mayotte","payload":arg$7}}} - function collectivite_of_jsoo(collectivite) - {var cons=caml_string_of_jsstring(collectivite.kind); - if(caml_string_notequal(cons,cst_Guadeloupe$0)) - {if(caml_string_notequal(cons,cst_Guyane$0)) - {if(caml_string_notequal(cons,cst_LaReunion)) - {if(caml_string_notequal(cons,cst_Martinique$0)) - {if(caml_string_notequal(cons,cst_Mayotte$0)) - {if(caml_string_notequal(cons,cst_Metropole)) - {if(caml_string_notequal(cons,cst_SaintBarthelemy)) - {if(caml_string_notequal(cons,cst_SaintMartin$0)) - {if(caml_string_notequal(cons,cst_SaintPierreEtMiquelon$0)) - {var _cel_=caml_call2(Stdlib_Printf[4],_kO_,cons); - return caml_call1(Stdlib[2],_cel_)} - return _kP_} - return _kQ_} - return _kR_} - return _kS_} - return _kT_} - return _kU_} - return _kV_} - return _kW_} - return _kX_} - function allocation_familiales_avril200$0(allocation_familiales_avril200) - {var - t66= - caml_call1(Runtime_jsoo_Runtime[3],allocation_familiales_avril200[1]); - return {"ageMinimumAlinea1L5213":t66}} - function allocation_familiales_avril200$1(allocation_familiales_avril200) - {return [0, - caml_call1 - (Runtime_jsoo_Runtime[2], - allocation_familiales_avril200.ageMinimumAlinea1L5213)]} - function allocations_familiales_to_jsoo(allocations_familiales) - {var t68=caml_call1(Runtime_ocaml_Runtime[35],allocations_familiales[1]); - return {"montantVerse":t68}} - function allocations_familiales_of_jsoo(allocations_familiales) - {var - _cek_= - caml_call1 - (Runtime_ocaml_Runtime[42],allocations_familiales.montantVerse); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_cek_)]} - function verification_age_inferieur_ou_$0(verification_age_inferieur_ou_) - {var t70=! ! verification_age_inferieur_ou_[1]; - return {"estInferieurOuEgal":t70}} - function verification_age_inferieur_ou_$1(verification_age_inferieur_ou_) - {return [0,verification_age_inferieur_ou_.estInferieurOuEgal | 0]} - function verification_age_superieur_a_t(verification_age_superieur_a) - {var t72=! ! verification_age_superieur_a[1];return {"estSuperieur":t72}} - function verification_age_superieur_a_o(verification_age_superieur_a) - {return [0,verification_age_superieur_a.estSuperieur | 0]} - function smic_to_jsoo(smic) - {var t74=caml_call1(Runtime_ocaml_Runtime[35],smic[1]); - return {"brutHoraire":t74}} - function smic_of_jsoo(smic) - {var _cej_=caml_call1(Runtime_ocaml_Runtime[42],smic.brutHoraire); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_cej_)]} - function base_mensuelle_allocations_fam$0(base_mensuelle_allocations_fam) - {var - t76= - caml_call1 - (Runtime_ocaml_Runtime[35],base_mensuelle_allocations_fam[1]); - return {"montant":t76}} - function base_mensuelle_allocations_fam$1(base_mensuelle_allocations_fam) - {var - _cei_= - caml_call1 - (Runtime_ocaml_Runtime[42],base_mensuelle_allocations_fam.montant); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_cei_)]} - function interface_allocations_familial$0(interface_allocations_familial) - {var - t78= - caml_call1 - (Runtime_ocaml_Runtime[35],interface_allocations_familial[1]); - return {"iMontantVerse":t78}} - function interface_allocations_familial$1(interface_allocations_familial) - {var - _ceh_= - caml_call1 - (Runtime_ocaml_Runtime[42], - interface_allocations_familial.iMontantVerse); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_ceh_)]} - function enfant_entree_to_jsoo(enfant_entree) - {var - t85=! ! enfant_entree[6], - t84=! ! enfant_entree[5], - t83=prise_en_charge_to_jsoo(enfant_entree[4]), - t82=caml_call1(Runtime_jsoo_Runtime[5],enfant_entree[3]), - t81=caml_call1(Runtime_ocaml_Runtime[35],enfant_entree[2]), - t80=caml_call1(Runtime_ocaml_Runtime[48],enfant_entree[1]); - return {"dIdentifiant":t80, - "dRemunerationMensuelle":t81, - "dDateDeNaissance":t82, - "dPriseEnCharge":t83, - "dADejaOuvertDroitAuxAllocationsFamiliales":t84, - "dBeneficieTitrePersonnelAidePersonnelleLogement":t85}} - function enfant_entree_of_jsoo(enfant_entree) - {var - _ceb_=enfant_entree.dBeneficieTitrePersonnelAidePersonnelleLogement | 0, - _cec_=enfant_entree.dADejaOuvertDroitAuxAllocationsFamiliales | 0, - _ced_=prise_en_charge_of_jsoo(enfant_entree.dPriseEnCharge), - _cee_= - caml_call1(Runtime_jsoo_Runtime[4],enfant_entree.dDateDeNaissance), - _cef_= - caml_call1 - (Runtime_ocaml_Runtime[42],enfant_entree.dRemunerationMensuelle), - _ceg_=caml_call1(Runtime_ocaml_Runtime[33],_cef_); - return [0, - caml_call1(Runtime_ocaml_Runtime[49],enfant_entree.dIdentifiant), - _ceg_, - _cee_, - _ced_, - _cec_, - _ceb_]} - function enfant_to_jsoo(enfant) - {var - t98=! ! enfant[7], - t97=! ! enfant[6], - t96=prise_en_charge_to_jsoo(enfant[5]), - t95=caml_call1(Runtime_jsoo_Runtime[5],enfant[4]), - t94=caml_call1(Runtime_ocaml_Runtime[35],enfant[3]), - t93=situation_obligation_scolaire_(enfant[2]), - t92=caml_call1(Runtime_ocaml_Runtime[48],enfant[1]); - return {"identifiant":t92, - "obligationScolaire":t93, - "remunerationMensuelle":t94, - "dateDeNaissance":t95, - "priseEnCharge":t96, - "aDejaOuvertDroitAuxAllocationsFamiliales":t97, - "beneficieTitrePersonnelAidePersonnelleLogement":t98}} - function enfant_of_jsoo(enfant) - {var - _cd6_=enfant.beneficieTitrePersonnelAidePersonnelleLogement | 0, - _cd7_=enfant.aDejaOuvertDroitAuxAllocationsFamiliales | 0, - _cd8_=prise_en_charge_of_jsoo(enfant.priseEnCharge), - _cd9_=caml_call1(Runtime_jsoo_Runtime[4],enfant.dateDeNaissance), - _cd__= - caml_call1(Runtime_ocaml_Runtime[42],enfant.remunerationMensuelle), - _cd$_=caml_call1(Runtime_ocaml_Runtime[33],_cd__), - _cea_=situation_obligation_scolaire_$0(enfant.obligationScolaire); - return [0, - caml_call1(Runtime_ocaml_Runtime[49],enfant.identifiant), - _cea_, - _cd$_, - _cd9_, - _cd8_, - _cd7_, - _cd6_]} - function enfant_le_plus_age_to_jsoo(enfant_le_plus_age) - {var t106=enfant_to_jsoo(enfant_le_plus_age[1]); - return {"lePlusAge":t106}} - function enfant_le_plus_age_of_jsoo(enfant_le_plus_age) - {return [0,enfant_of_jsoo(enfant_le_plus_age.lePlusAge)]} - function prestations_familiales_to_jsoo(prestations_familiales) - {var - t111=! ! prestations_familiales[4], - t110=caml_call1(Runtime_jsoo_Runtime[3],prestations_familiales[3]); - function t109(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var _cd5_=enfant_of_jsoo(function_input0); - return ! ! caml_call1(prestations_familiales[2],_cd5_)})} - function t108(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var _cd4_=enfant_of_jsoo(function_input0); - return ! ! caml_call1(prestations_familiales[1],_cd4_)})} - return {"droitOuvert":caml_js_wrap_meth_callback(t108), - "conditionsHorsAge":caml_js_wrap_meth_callback(t109), - "ageL51232":t110, - "regimeOutreMerL7511":t111}} - function prestations_familiales_of_jsoo(prestations_familiales) - {var - _cd1_=prestations_familiales.regimeOutreMerL7511 | 0, - _cd2_= - caml_call1(Runtime_jsoo_Runtime[2],prestations_familiales.ageL51232), - _cd3_=caml_call1(Stdlib[2],cst_The_function_conditions_ho); - return [0, - caml_call1(Stdlib[2],cst_The_function_droit_ouvert_), - _cd3_, - _cd2_, - _cd1_]} - function prestations_familiales_in_to_j(prestations_familiales_in) - {var - t116=collectivite_to_jsoo(prestations_familiales_in[3]), - t115=element_prestations_familiales(prestations_familiales_in[2]), - t114=caml_call1(Runtime_jsoo_Runtime[5],prestations_familiales_in[1]); - return {"dateCouranteIn":t114, - "prestationCouranteIn":t115, - "residenceIn":t116}} - function prestations_familiales_in_of_j(prestations_familiales_in) - {var - _cdZ_=collectivite_of_jsoo(prestations_familiales_in.residenceIn), - _cd0_= - element_prestations_familiales$0 - (prestations_familiales_in.prestationCouranteIn); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - prestations_familiales_in.dateCouranteIn), - _cd0_, - _cdZ_]} - function allocation_familiales_avril200$2(param){return {}} - function allocation_familiales_avril200$3(param){return 0} - function enfant_le_plus_age_in_to_jsoo(enfant_le_plus_age_in) - {var _cdX_=enfant_le_plus_age_in[1]; - function _cdY_(x){return enfant_to_jsoo(x)} - var t120=caml_js_from_array(caml_call2(Stdlib_Array[15],_cdY_,_cdX_)); - return {"enfantsIn":t120}} - function enfant_le_plus_age_in_of_jsoo(enfant_le_plus_age_in) - {var _cdV_=caml_js_to_array(enfant_le_plus_age_in.enfantsIn); - function _cdW_(x){return enfant_of_jsoo(x)} - return [0,caml_call1(caml_call1(Stdlib_Array[15],_cdW_),_cdV_)]} - function allocations_familiales_in_to_j(allocations_familiales_in) - {var - t128=! ! allocations_familiales_in[7], - _cdT_=allocations_familiales_in[6]; - function _cdU_(x){return enfant_to_jsoo(x)} - var - t127=caml_js_from_array(caml_call2(Stdlib_Array[15],_cdU_,_cdT_)), - t126=caml_call1(Runtime_jsoo_Runtime[5],allocations_familiales_in[5]), - t125=collectivite_to_jsoo(allocations_familiales_in[4]), - t124=caml_call1(Runtime_ocaml_Runtime[35],allocations_familiales_in[3]), - t123=! ! allocations_familiales_in[2], - t122=! ! allocations_familiales_in[1]; - return {"personneChargeEffectivePermanenteEstParentIn":t122, - "personneChargeEffectivePermanenteRemplitTitreIIn":t123, - "ressourcesMenageIn":t124, - "residenceIn":t125, - "dateCouranteIn":t126, - "enfantsAChargeIn":t127, - "avaitEnfantAChargeAvant1erJanvier2012In":t128}} - function allocations_familiales_in_of_j(allocations_familiales_in) - {var - _cdL_= - allocations_familiales_in.avaitEnfantAChargeAvant1erJanvier2012In - | - 0, - _cdM_=caml_js_to_array(allocations_familiales_in.enfantsAChargeIn); - function _cdN_(x){return enfant_of_jsoo(x)} - var - _cdO_=caml_call1(caml_call1(Stdlib_Array[15],_cdN_),_cdM_), - _cdP_= - caml_call1 - (Runtime_jsoo_Runtime[4],allocations_familiales_in.dateCouranteIn), - _cdQ_=collectivite_of_jsoo(allocations_familiales_in.residenceIn), - _cdR_= - caml_call1 - (Runtime_ocaml_Runtime[42], - allocations_familiales_in.ressourcesMenageIn), - _cdS_=caml_call1(Runtime_ocaml_Runtime[33],_cdR_); - return [0, - allocations_familiales_in.personneChargeEffectivePermanenteEstParentIn - | - 0, - allocations_familiales_in.personneChargeEffectivePermanenteRemplitTitreIIn - | - 0, - _cdS_, - _cdQ_, - _cdP_, - _cdO_, - _cdL_]} - function verification_age_inferieur_ou_$2(verification_age_inferieur_ou_) - {var - t138= - caml_call1(Runtime_jsoo_Runtime[3],verification_age_inferieur_ou_[3]), - t137= - caml_call1(Runtime_jsoo_Runtime[5],verification_age_inferieur_ou_[2]), - t136= - caml_call1(Runtime_jsoo_Runtime[5],verification_age_inferieur_ou_[1]); - return {"dateNaissanceIn":t136,"dateCouranteIn":t137,"anneesIn":t138}} - function verification_age_inferieur_ou_$3(verification_age_inferieur_ou_) - {var - _cdJ_= - caml_call1 - (Runtime_jsoo_Runtime[2],verification_age_inferieur_ou_.anneesIn), - _cdK_= - caml_call1 - (Runtime_jsoo_Runtime[4], - verification_age_inferieur_ou_.dateCouranteIn); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - verification_age_inferieur_ou_.dateNaissanceIn), - _cdK_, - _cdJ_]} - function verification_age_superieur_a_i(verification_age_superieur_a_i) - {var - t144= - caml_call1(Runtime_jsoo_Runtime[3],verification_age_superieur_a_i[3]), - t143= - caml_call1(Runtime_jsoo_Runtime[5],verification_age_superieur_a_i[2]), - t142= - caml_call1(Runtime_jsoo_Runtime[5],verification_age_superieur_a_i[1]); - return {"dateNaissanceIn":t142,"dateCouranteIn":t143,"anneesIn":t144}} - function verification_age_superieur_a_i$0(verification_age_superieur_a_i) - {var - _cdH_= - caml_call1 - (Runtime_jsoo_Runtime[2],verification_age_superieur_a_i.anneesIn), - _cdI_= - caml_call1 - (Runtime_jsoo_Runtime[4], - verification_age_superieur_a_i.dateCouranteIn); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - verification_age_superieur_a_i.dateNaissanceIn), - _cdI_, - _cdH_]} - function smic_in_to_jsoo(smic_in) - {var - t149=collectivite_to_jsoo(smic_in[2]), - t148=caml_call1(Runtime_jsoo_Runtime[5],smic_in[1]); - return {"dateCouranteIn":t148,"residenceIn":t149}} - function smic_in_of_jsoo(smic_in) - {var _cdG_=collectivite_of_jsoo(smic_in.residenceIn); - return [0, - caml_call1(Runtime_jsoo_Runtime[4],smic_in.dateCouranteIn), - _cdG_]} - function base_mensuelle_allocations_fam$2(base_mensuelle_allocations_fam) - {var - t152= - caml_call1(Runtime_jsoo_Runtime[5],base_mensuelle_allocations_fam[1]); - return {"dateCouranteIn":t152}} - function base_mensuelle_allocations_fam$3(base_mensuelle_allocations_fam) - {return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - base_mensuelle_allocations_fam.dateCouranteIn)]} - function interface_allocations_familial$2(interface_allocations_familial) - {var - t160=! ! interface_allocations_familial[7], - t159=! ! interface_allocations_familial[6], - t158=! ! interface_allocations_familial[5], - t157=collectivite_to_jsoo(interface_allocations_familial[4]), - t156= - caml_call1 - (Runtime_ocaml_Runtime[35],interface_allocations_familial[3]), - _cdE_=interface_allocations_familial[2]; - function _cdF_(x){return enfant_entree_to_jsoo(x)} - var - t155=caml_js_from_array(caml_call2(Stdlib_Array[15],_cdF_,_cdE_)), - t154= - caml_call1(Runtime_jsoo_Runtime[5],interface_allocations_familial[1]); - return {"iDateCouranteIn":t154, - "iEnfantsIn":t155, - "iRessourcesMenageIn":t156, - "iResidenceIn":t157, - "iPersonneChargeEffectivePermanenteEstParentIn":t158, - "iPersonneChargeEffectivePermanenteRemplitTitreIIn":t159, - "iAvaitEnfantAChargeAvant1erJanvier2012In":t160}} - function interface_allocations_familial$3(interface_allocations_familial) - {var - _cdv_= - interface_allocations_familial.iAvaitEnfantAChargeAvant1erJanvier2012In - | - 0, - _cdw_= - interface_allocations_familial.iPersonneChargeEffectivePermanenteRemplitTitreIIn - | - 0, - _cdx_= - interface_allocations_familial.iPersonneChargeEffectivePermanenteEstParentIn - | - 0, - _cdy_=collectivite_of_jsoo(interface_allocations_familial.iResidenceIn), - _cdz_= - caml_call1 - (Runtime_ocaml_Runtime[42], - interface_allocations_familial.iRessourcesMenageIn), - _cdA_=caml_call1(Runtime_ocaml_Runtime[33],_cdz_), - _cdB_=caml_js_to_array(interface_allocations_familial.iEnfantsIn); - function _cdC_(x){return enfant_entree_of_jsoo(x)} - var _cdD_=caml_call1(caml_call1(Stdlib_Array[15],_cdC_),_cdB_); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - interface_allocations_familial.iDateCouranteIn), - _cdD_, - _cdA_, - _cdy_, - _cdx_, - _cdw_, - _cdv_]} - function allocation_familiales_avril200$4 - (allocation_familiales_avril200$1) - {return allocation_familiales_avril200$0 - (allocation_familiales_avril200(0))} - function enfant_le_plus_age$0(enfant_le_plus_age_in) - {return enfant_le_plus_age_to_jsoo - (enfant_le_plus_age - (enfant_le_plus_age_in_of_jsoo(enfant_le_plus_age_in)))} - function verification_age_inferieur_ou_$4 - (verification_age_inferieur_ou_$1) - {return verification_age_inferieur_ou_$0 - (verification_age_inferieur_ou_ - (verification_age_inferieur_ou_$3 - (verification_age_inferieur_ou_$1)))} - function verification_age_superieur_a$0(verification_age_superieur_a_i) - {return verification_age_superieur_a_t - (verification_age_superieur_a - (verification_age_superieur_a_i$0 - (verification_age_superieur_a_i)))} - function smic$0(smic_in) - {return smic_to_jsoo(smic(smic_in_of_jsoo(smic_in)))} - function base_mensuelle_allocations_fam$4 - (base_mensuelle_allocations_fam$1) - {return base_mensuelle_allocations_fam$0 - (base_mensuelle_allocations_fam - (base_mensuelle_allocations_fam$3 - (base_mensuelle_allocations_fam$1)))} - function prestations_familiales$0(prestations_familiales_in) - {return prestations_familiales_to_jsoo - (prestations_familiales - (prestations_familiales_in_of_j(prestations_familiales_in)))} - function allocations_familiales$0(allocations_familiales_in) - {return allocations_familiales_to_jsoo - (allocations_familiales - (allocations_familiales_in_of_j(allocations_familiales_in)))} - function interface_allocations_familial$4 - (interface_allocations_familial$1) - {return interface_allocations_familial$0 - (interface_allocations_familial - (interface_allocations_familial$3 - (interface_allocations_familial$1)))} - function t176(param) - {return caml_js_wrap_callback(interface_allocations_familial$4)} - function t175(param) - {return caml_js_wrap_callback(allocations_familiales$0)} - function t174(param) - {return caml_js_wrap_callback(prestations_familiales$0)} - function t173(param) - {return caml_js_wrap_callback(base_mensuelle_allocations_fam$4)} - function t172(param){return caml_js_wrap_callback(smic$0)} - function t171(param) - {return caml_js_wrap_callback(verification_age_superieur_a$0)} - function t170(param) - {return caml_js_wrap_callback(verification_age_inferieur_ou_$4)} - function t169(param){return caml_js_wrap_callback(enfant_le_plus_age$0)} - function t168(param) - {return caml_js_wrap_callback(allocation_familiales_avril200$4)} - caml_call2 - (Js_of_ocaml_Js[50], - cst_AllocationsFamilialesLib, - {"allocationFamilialesAvril2008":caml_js_wrap_meth_callback(t168), - "enfantLePlusAge":caml_js_wrap_meth_callback(t169), - "verificationAgeInferieurOuEgalA":caml_js_wrap_meth_callback(t170), - "verificationAgeSuperieurA":caml_js_wrap_meth_callback(t171), - "smic":caml_js_wrap_meth_callback(t172), - "baseMensuelleAllocationsFamiliales":caml_js_wrap_meth_callback(t173), - "prestationsFamiliales":caml_js_wrap_meth_callback(t174), - "allocationsFamiliales":caml_js_wrap_meth_callback(t175), - "interfaceAllocationsFamiliales":caml_js_wrap_meth_callback(t176)}); + runtime.caml_register_global + (1028, + Law_source_Allocations_familia, + "Law_source__Allocations_familiales"); + return; + } + (globalThis)); + +//# 11333 "law_source/.law_source.objs/jsoo/default/law_source.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_AllocationEducationEnfantH = "AllocationEducationEnfantHandicape", + cst_AllocationJournalierePrese = "AllocationJournalierePresenceParentale", + cst_AllocationLogement = "AllocationLogement", + cst_AllocationRentreeScolaire = "AllocationRentreeScolaire", + cst_AllocationSoutienFamilial = "AllocationSoutienFamilial", + cst_AllocationVerseeAuxService = "AllocationVerseeAuxServicesSociaux", + cst_AllocationsFamiliales = "AllocationsFamiliales", + cst_Apres = "Apres", + cst_Avant = "Avant", + cst_ComplementFamilial = "ComplementFamilial", + cst_Complete = "Complete", + cst_EffectiveEtPermanente = "EffectiveEtPermanente", + cst_GardeAlterneeAllocataireUn = "GardeAlterneeAllocataireUnique", + cst_GardeAlterneePartageAlloca = "GardeAlterneePartageAllocations", + cst_Guadeloupe = "Guadeloupe", + cst_Guyane = "Guyane", + cst_LaReunion = "LaReunion", + cst_Martinique = "Martinique", + cst_Mayotte = "Mayotte", + cst_Metropole = "Metropole", + cst_Normal = "Normal", + cst_Partagee = "Partagee", + cst_Pendant = "Pendant", + cst_PrestationAccueilJeuneEnfa = "PrestationAccueilJeuneEnfant", + cst_SaintBarthelemy = "SaintBarthelemy", + cst_SaintMartin = "SaintMartin", + cst_SaintPierreEtMiquelon = "SaintPierreEtMiquelon", + cst_ServicesSociauxAllocationV = + "ServicesSociauxAllocationVerseeALaFamille", + cst_ServicesSociauxAllocationV$0 = + "ServicesSociauxAllocationVerseeAuxServicesSociaux", + cst_Unexpected = "Unexpected '", + cst_Zero = "Zero", + caml_js_from_array = runtime.caml_js_from_array, + caml_js_to_array = runtime.caml_js_to_array, + caml_js_wrap_callback = runtime.caml_js_wrap_callback, + caml_js_wrap_meth_callback = runtime.caml_js_wrap_meth_callback, + caml_string_notequal = runtime.caml_string_notequal, + caml_string_of_jsstring = runtime.caml_string_of_jsstring; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + var global_data = runtime.caml_get_global_data(); + global_data.CamlinternalOO; + var + Law_source_Allocations_familia = + global_data.Law_source__Allocations_familiales, + Runtime_ocaml_Runtime = global_data.Runtime_ocaml__Runtime, + Stdlib_Array = global_data.Stdlib__Array, + Runtime_jsoo_Runtime = global_data.Runtime_jsoo__Runtime, + Stdlib = global_data.Stdlib, + Stdlib_Printf = global_data.Stdlib__Printf, + Js_of_ocaml_Js = global_data.Js_of_ocaml__Js, + cst_The_function_conditions_ho = + "The function 'conditions_hors_age' translation isn't yet supported...", + cst_The_function_droit_ouvert_ = + "The function 'droit_ouvert' translation isn't yet supported...", + _B_ = [7, 0], + _C_ = [5, 0], + _D_ = [4, 0], + _E_ = [6, 0], + _F_ = [8, 0], + _G_ = [2, 0], + _H_ = [3, 0], + _I_ = [1, 0], + _J_ = [0, 0], + _A_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'Collectivite.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'Collectivite.t'"], + _s_ = [0, 0], + _t_ = [2, 0], + _u_ = [1, 0], + _v_ = [5, 0], + _w_ = [6, 0], + _x_ = [3, 0], + _y_ = [7, 0], + _z_ = [4, 0], + _r_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, + "' kind for the enumeration 'ElementPrestationsFamiliales.t'", + 0]]], + "Unexpected '%s' kind for the enumeration 'ElementPrestationsFamiliales.t'"], + _p_ = [0, 0], + _q_ = [1, 0], + _o_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'VersementAllocations.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'VersementAllocations.t'"], + _l_ = [2, 0], + _m_ = [1, 0], + _n_ = [0, 0], + _k_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'PriseEnCompte.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'PriseEnCompte.t'"], + _h_ = [1, 0], + _i_ = [0, 0], + _j_ = [2, 0], + _g_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, "' kind for the enumeration 'SituationObligationScolaire.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'SituationObligationScolaire.t'"], + _b_ = [4, 0], + _c_ = [3, 0], + _d_ = [0, 0], + _e_ = [1, 0], + _f_ = [2, 0], + _a_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'PriseEnCharge.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'PriseEnCharge.t'"], + cst_AllocationsFamilialesLib = "AllocationsFamilialesLib"; + function prise_en_charge_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_GardeAlterneePartageAlloca, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_GardeAlterneeAllocataireUn, payload: arg$0}; + case 2: + var arg$1 = param[1]; + return {kind: cst_EffectiveEtPermanente, payload: arg$1}; + case 3: + var arg$2 = param[1]; + return {kind: cst_ServicesSociauxAllocationV, payload: arg$2}; + default: + var arg$3 = param[1]; + return {kind: cst_ServicesSociauxAllocationV$0, payload: arg$3}; + } + } + function prise_en_charge_of_jsoo(prise_en_charge){ + var cons = caml_string_of_jsstring(prise_en_charge.kind); + if(! caml_string_notequal(cons, cst_EffectiveEtPermanente)) return _f_; + if(! caml_string_notequal(cons, cst_GardeAlterneeAllocataireUn)) + return _e_; + if(! caml_string_notequal(cons, cst_GardeAlterneePartageAlloca)) + return _d_; + if(! caml_string_notequal(cons, cst_ServicesSociauxAllocationV)) + return _c_; + if(! caml_string_notequal(cons, cst_ServicesSociauxAllocationV$0)) + return _b_; + var _bo_ = caml_call2(Stdlib_Printf[4], _a_, cons); + return caml_call1(Stdlib[2], _bo_); + } + function situation_obligation_scolaire_(param){ + switch(param[0]){ + case 0: + var arg = param[1]; return {kind: cst_Avant, payload: arg}; + case 1: + var arg$0 = param[1]; return {kind: cst_Pendant, payload: arg$0}; + default: var arg$1 = param[1]; return {kind: cst_Apres, payload: arg$1}; + } + } + function situation_obligation_scolaire_$0(situation_obligation_scolaire){ + var cons = caml_string_of_jsstring(situation_obligation_scolaire.kind); + if(! caml_string_notequal(cons, cst_Apres)) return _j_; + if(! caml_string_notequal(cons, cst_Avant)) return _i_; + if(! caml_string_notequal(cons, cst_Pendant)) return _h_; + var _bn_ = caml_call2(Stdlib_Printf[4], _g_, cons); + return caml_call1(Stdlib[2], _bn_); + } + function prise_en_compte_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; return {kind: cst_Complete, payload: arg}; + case 1: + var arg$0 = param[1]; return {kind: cst_Partagee, payload: arg$0}; + default: var arg$1 = param[1]; return {kind: cst_Zero, payload: arg$1}; + } + } + function prise_en_compte_of_jsoo(prise_en_compte){ + var cons = caml_string_of_jsstring(prise_en_compte.kind); + if(! caml_string_notequal(cons, cst_Complete)) return _n_; + if(! caml_string_notequal(cons, cst_Partagee)) return _m_; + if(! caml_string_notequal(cons, cst_Zero)) return _l_; + var _bm_ = caml_call2(Stdlib_Printf[4], _k_, cons); + return caml_call1(Stdlib[2], _bm_); + } + function versement_allocations_to_jsoo(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_Normal, payload: arg}; + } + var arg$0 = param[1]; + return {kind: cst_AllocationVerseeAuxService, payload: arg$0}; + } + function versement_allocations_of_jsoo(versement_allocations){ + var cons = caml_string_of_jsstring(versement_allocations.kind); + if(! caml_string_notequal(cons, cst_AllocationVerseeAuxService)) + return _q_; + if(! caml_string_notequal(cons, cst_Normal)) return _p_; + var _bl_ = caml_call2(Stdlib_Printf[4], _o_, cons); + return caml_call1(Stdlib[2], _bl_); + } + function element_prestations_familiales(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_PrestationAccueilJeuneEnfa, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_AllocationsFamiliales, payload: arg$0}; + case 2: + var arg$1 = param[1]; + return {kind: cst_ComplementFamilial, payload: arg$1}; + case 3: + var arg$2 = param[1]; + return {kind: cst_AllocationLogement, payload: arg$2}; + case 4: + var arg$3 = param[1]; + return {kind: cst_AllocationEducationEnfantH, payload: arg$3}; + case 5: + var arg$4 = param[1]; + return {kind: cst_AllocationSoutienFamilial, payload: arg$4}; + case 6: + var arg$5 = param[1]; + return {kind: cst_AllocationRentreeScolaire, payload: arg$5}; + default: + var arg$6 = param[1]; + return {kind: cst_AllocationJournalierePrese, payload: arg$6}; + } + } + function element_prestations_familiales$0(element_prestations_familiales){ + var cons = caml_string_of_jsstring(element_prestations_familiales.kind); + if(! caml_string_notequal(cons, cst_AllocationEducationEnfantH)) + return _z_; + if(! caml_string_notequal(cons, cst_AllocationJournalierePrese)) + return _y_; + if(! caml_string_notequal(cons, cst_AllocationLogement)) return _x_; + if(! caml_string_notequal(cons, cst_AllocationRentreeScolaire)) + return _w_; + if(! caml_string_notequal(cons, cst_AllocationSoutienFamilial)) + return _v_; + if(! caml_string_notequal(cons, cst_AllocationsFamiliales)) return _u_; + if(! caml_string_notequal(cons, cst_ComplementFamilial)) return _t_; + if(! caml_string_notequal(cons, cst_PrestationAccueilJeuneEnfa)) + return _s_; + var _bk_ = caml_call2(Stdlib_Printf[4], _r_, cons); + return caml_call1(Stdlib[2], _bk_); + } + function collectivite_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; return {kind: cst_Guadeloupe, payload: arg}; + case 1: + var arg$0 = param[1]; return {kind: cst_Guyane, payload: arg$0}; + case 2: + var arg$1 = param[1]; return {kind: cst_Martinique, payload: arg$1}; + case 3: + var arg$2 = param[1]; return {kind: cst_LaReunion, payload: arg$2}; + case 4: + var arg$3 = param[1]; + return {kind: cst_SaintBarthelemy, payload: arg$3}; + case 5: + var arg$4 = param[1]; return {kind: cst_SaintMartin, payload: arg$4}; + case 6: + var arg$5 = param[1]; return {kind: cst_Metropole, payload: arg$5}; + case 7: + var arg$6 = param[1]; + return {kind: cst_SaintPierreEtMiquelon, payload: arg$6}; + default: + var arg$7 = param[1]; return {kind: cst_Mayotte, payload: arg$7}; + } + } + function collectivite_of_jsoo(collectivite){ + var cons = caml_string_of_jsstring(collectivite.kind); + if(! caml_string_notequal(cons, cst_Guadeloupe)) return _J_; + if(! caml_string_notequal(cons, cst_Guyane)) return _I_; + if(! caml_string_notequal(cons, cst_LaReunion)) return _H_; + if(! caml_string_notequal(cons, cst_Martinique)) return _G_; + if(! caml_string_notequal(cons, cst_Mayotte)) return _F_; + if(! caml_string_notequal(cons, cst_Metropole)) return _E_; + if(! caml_string_notequal(cons, cst_SaintBarthelemy)) return _D_; + if(! caml_string_notequal(cons, cst_SaintMartin)) return _C_; + if(! caml_string_notequal(cons, cst_SaintPierreEtMiquelon)) return _B_; + var _bj_ = caml_call2(Stdlib_Printf[4], _A_, cons); + return caml_call1(Stdlib[2], _bj_); + } + function allocation_familiales_avril200(allocation_familiales_avril200){ + return {ageMinimumAlinea1L5213: + caml_call1 + (Runtime_jsoo_Runtime[3], allocation_familiales_avril200[1])}; + } + function allocation_familiales_avril200$0(allocation_familiales_avril200){ + return [0, + caml_call1 + (Runtime_jsoo_Runtime[2], + allocation_familiales_avril200.ageMinimumAlinea1L5213)]; + } + function allocations_familiales_to_jsoo(allocations_familiales){ + return {montantVerse: + caml_call1(Runtime_ocaml_Runtime[35], allocations_familiales[1])}; + } + function allocations_familiales_of_jsoo(allocations_familiales){ var - Law_source_Allocations_familia$0= + _bi_ = + caml_call1 + (Runtime_ocaml_Runtime[42], allocations_familiales.montantVerse); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _bi_)]; + } + function verification_age_inferieur_ou_(verification_age_inferieur_ou_){return {estInferieurOuEgal: ! ! verification_age_inferieur_ou_[1]}; + } + function verification_age_inferieur_ou_$0(verification_age_inferieur_ou_){return [0, verification_age_inferieur_ou_.estInferieurOuEgal | 0]; + } + function verification_age_superieur_a_t(verification_age_superieur_a){return {estSuperieur: ! ! verification_age_superieur_a[1]}; + } + function verification_age_superieur_a_o(verification_age_superieur_a){return [0, verification_age_superieur_a.estSuperieur | 0]; + } + function smic_to_jsoo(smic){ + return {brutHoraire: caml_call1(Runtime_ocaml_Runtime[35], smic[1])}; + } + function smic_of_jsoo(smic){ + var _bh_ = caml_call1(Runtime_ocaml_Runtime[42], smic.brutHoraire); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _bh_)]; + } + function base_mensuelle_allocations_fam(base_mensuelle_allocations_fam){ + return {montant: + caml_call1 + (Runtime_ocaml_Runtime[35], base_mensuelle_allocations_fam[1])}; + } + function base_mensuelle_allocations_fam$0(base_mensuelle_allocations_fam){ + var + _bg_ = + caml_call1 + (Runtime_ocaml_Runtime[42], base_mensuelle_allocations_fam.montant); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _bg_)]; + } + function interface_allocations_familial(interface_allocations_familial){ + return {iMontantVerse: + caml_call1 + (Runtime_ocaml_Runtime[35], interface_allocations_familial[1])}; + } + function interface_allocations_familial$0(interface_allocations_familial){ + var + _bf_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + interface_allocations_familial.iMontantVerse); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _bf_)]; + } + function enfant_entree_to_jsoo(enfant_entree){ + var + _ba_ = ! ! enfant_entree[6], + _bb_ = ! ! enfant_entree[5], + _bc_ = prise_en_charge_to_jsoo(enfant_entree[4]), + _bd_ = caml_call1(Runtime_jsoo_Runtime[5], enfant_entree[3]), + _be_ = caml_call1(Runtime_ocaml_Runtime[35], enfant_entree[2]); + return {dIdentifiant: + caml_call1(Runtime_ocaml_Runtime[48], enfant_entree[1]), + dRemunerationMensuelle: _be_, + dDateDeNaissance: _bd_, + dPriseEnCharge: _bc_, + dADejaOuvertDroitAuxAllocationsFamiliales: _bb_, + dBeneficieTitrePersonnelAidePersonnelleLogement: _ba_}; + } + function enfant_entree_of_jsoo(enfant_entree){ + var + _a6_ = enfant_entree.dBeneficieTitrePersonnelAidePersonnelleLogement | 0, + _a7_ = enfant_entree.dADejaOuvertDroitAuxAllocationsFamiliales | 0, + _a8_ = prise_en_charge_of_jsoo(enfant_entree.dPriseEnCharge), + _a9_ = + caml_call1(Runtime_jsoo_Runtime[4], enfant_entree.dDateDeNaissance), + _a__ = + caml_call1 + (Runtime_ocaml_Runtime[42], enfant_entree.dRemunerationMensuelle), + _a$_ = caml_call1(Runtime_ocaml_Runtime[33], _a__); + return [0, + caml_call1(Runtime_ocaml_Runtime[49], enfant_entree.dIdentifiant), + _a$_, + _a9_, + _a8_, + _a7_, + _a6_]; + } + function enfant_to_jsoo(enfant){ + var + _a0_ = ! ! enfant[7], + _a1_ = ! ! enfant[6], + _a2_ = prise_en_charge_to_jsoo(enfant[5]), + _a3_ = caml_call1(Runtime_jsoo_Runtime[5], enfant[4]), + _a4_ = caml_call1(Runtime_ocaml_Runtime[35], enfant[3]), + _a5_ = situation_obligation_scolaire_(enfant[2]); + return {identifiant: caml_call1(Runtime_ocaml_Runtime[48], enfant[1]), + obligationScolaire: _a5_, + remunerationMensuelle: _a4_, + dateDeNaissance: _a3_, + priseEnCharge: _a2_, + aDejaOuvertDroitAuxAllocationsFamiliales: _a1_, + beneficieTitrePersonnelAidePersonnelleLogement: _a0_}; + } + function enfant_of_jsoo(enfant){ + var + _aT_ = enfant.beneficieTitrePersonnelAidePersonnelleLogement | 0, + _aU_ = enfant.aDejaOuvertDroitAuxAllocationsFamiliales | 0, + _aV_ = prise_en_charge_of_jsoo(enfant.priseEnCharge), + _aW_ = caml_call1(Runtime_jsoo_Runtime[4], enfant.dateDeNaissance), + _aX_ = + caml_call1(Runtime_ocaml_Runtime[42], enfant.remunerationMensuelle), + _aY_ = caml_call1(Runtime_ocaml_Runtime[33], _aX_), + _aZ_ = situation_obligation_scolaire_$0(enfant.obligationScolaire); + return [0, + caml_call1(Runtime_ocaml_Runtime[49], enfant.identifiant), + _aZ_, + _aY_, + _aW_, + _aV_, + _aU_, + _aT_]; + } + function enfant_le_plus_age_to_jsoo(enfant_le_plus_age){ + return {lePlusAge: enfant_to_jsoo(enfant_le_plus_age[1])}; + } + function enfant_le_plus_age_of_jsoo(enfant_le_plus_age){ + return [0, enfant_of_jsoo(enfant_le_plus_age.lePlusAge)]; + } + function prestations_familiales_to_jsoo(prestations_familiales){ + var + t111 = ! ! prestations_familiales[4], + t110 = caml_call1(Runtime_jsoo_Runtime[3], prestations_familiales[3]); + function t109(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var _aS_ = enfant_of_jsoo(function_input0); + return ! ! caml_call1(prestations_familiales[2], _aS_); + }); + } + function t108(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var _aR_ = enfant_of_jsoo(function_input0); + return ! ! caml_call1(prestations_familiales[1], _aR_); + }); + } + return {droitOuvert: caml_js_wrap_meth_callback(t108), + conditionsHorsAge: caml_js_wrap_meth_callback(t109), + ageL51232: t110, + regimeOutreMerL7511: t111}; + } + function prestations_familiales_of_jsoo(prestations_familiales){ + var + _aO_ = prestations_familiales.regimeOutreMerL7511 | 0, + _aP_ = + caml_call1(Runtime_jsoo_Runtime[2], prestations_familiales.ageL51232), + _aQ_ = caml_call1(Stdlib[2], cst_The_function_conditions_ho); + return [0, + caml_call1(Stdlib[2], cst_The_function_droit_ouvert_), + _aQ_, + _aP_, + _aO_]; + } + function prestations_familiales_in_to_j(prestations_familiales_in){ + var + _aM_ = collectivite_to_jsoo(prestations_familiales_in[3]), + _aN_ = element_prestations_familiales(prestations_familiales_in[2]); + return {dateCouranteIn: + caml_call1(Runtime_jsoo_Runtime[5], prestations_familiales_in[1]), + prestationCouranteIn: _aN_, + residenceIn: _aM_}; + } + function prestations_familiales_in_of_j(prestations_familiales_in){ + var + _aK_ = collectivite_of_jsoo(prestations_familiales_in.residenceIn), + _aL_ = + element_prestations_familiales$0 + (prestations_familiales_in.prestationCouranteIn); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + prestations_familiales_in.dateCouranteIn), + _aL_, + _aK_]; + } + function allocation_familiales_avril200$1(param){return {};} + function allocation_familiales_avril200$2(param){return 0;} + function enfant_le_plus_age_in_to_jsoo(enfant_le_plus_age_in){ + var _aI_ = enfant_le_plus_age_in[1]; + function _aJ_(x){return enfant_to_jsoo(x);} + return {enfantsIn: + caml_js_from_array(caml_call2(Stdlib_Array[15], _aJ_, _aI_))}; + } + function enfant_le_plus_age_in_of_jsoo(enfant_le_plus_age_in){ + var _aG_ = caml_js_to_array(enfant_le_plus_age_in.enfantsIn); + function _aH_(x){return enfant_of_jsoo(x);} + return [0, caml_call1(caml_call1(Stdlib_Array[15], _aH_), _aG_)]; + } + function allocations_familiales_in_to_j(allocations_familiales_in){ + var + _az_ = ! ! allocations_familiales_in[7], + _aA_ = allocations_familiales_in[6]; + function _aB_(x){return enfant_to_jsoo(x);} + var + _aC_ = caml_js_from_array(caml_call2(Stdlib_Array[15], _aB_, _aA_)), + _aD_ = caml_call1(Runtime_jsoo_Runtime[5], allocations_familiales_in[5]), + _aE_ = collectivite_to_jsoo(allocations_familiales_in[4]), + _aF_ = + caml_call1(Runtime_ocaml_Runtime[35], allocations_familiales_in[3]); + return {personneChargeEffectivePermanenteEstParentIn: + ! + ! + allocations_familiales_in[1], + personneChargeEffectivePermanenteRemplitTitreIIn: + ! + ! + allocations_familiales_in[2], + ressourcesMenageIn: _aF_, + residenceIn: _aE_, + dateCouranteIn: _aD_, + enfantsAChargeIn: _aC_, + avaitEnfantAChargeAvant1erJanvier2012In: _az_}; + } + function allocations_familiales_in_of_j(allocations_familiales_in){ + var + _ar_ = + allocations_familiales_in.avaitEnfantAChargeAvant1erJanvier2012In | 0, + _as_ = caml_js_to_array(allocations_familiales_in.enfantsAChargeIn); + function _at_(x){return enfant_of_jsoo(x);} + var + _au_ = caml_call1(caml_call1(Stdlib_Array[15], _at_), _as_), + _av_ = + caml_call1 + (Runtime_jsoo_Runtime[4], allocations_familiales_in.dateCouranteIn), + _aw_ = collectivite_of_jsoo(allocations_familiales_in.residenceIn), + _ax_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + allocations_familiales_in.ressourcesMenageIn), + _ay_ = caml_call1(Runtime_ocaml_Runtime[33], _ax_); + return [0, + allocations_familiales_in.personneChargeEffectivePermanenteEstParentIn + | 0, + allocations_familiales_in.personneChargeEffectivePermanenteRemplitTitreIIn + | 0, + _ay_, + _aw_, + _av_, + _au_, + _ar_]; + } + function verification_age_inferieur_ou_$1(verification_age_inferieur_ou_){ + var + _ap_ = + caml_call1(Runtime_jsoo_Runtime[3], verification_age_inferieur_ou_[3]), + _aq_ = + caml_call1(Runtime_jsoo_Runtime[5], verification_age_inferieur_ou_[2]); + return {dateNaissanceIn: + caml_call1 + (Runtime_jsoo_Runtime[5], verification_age_inferieur_ou_[1]), + dateCouranteIn: _aq_, + anneesIn: _ap_}; + } + function verification_age_inferieur_ou_$2(verification_age_inferieur_ou_){ + var + _an_ = + caml_call1 + (Runtime_jsoo_Runtime[2], verification_age_inferieur_ou_.anneesIn), + _ao_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + verification_age_inferieur_ou_.dateCouranteIn); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + verification_age_inferieur_ou_.dateNaissanceIn), + _ao_, + _an_]; + } + function verification_age_superieur_a_i(verification_age_superieur_a_i){ + var + _al_ = + caml_call1(Runtime_jsoo_Runtime[3], verification_age_superieur_a_i[3]), + _am_ = + caml_call1(Runtime_jsoo_Runtime[5], verification_age_superieur_a_i[2]); + return {dateNaissanceIn: + caml_call1 + (Runtime_jsoo_Runtime[5], verification_age_superieur_a_i[1]), + dateCouranteIn: _am_, + anneesIn: _al_}; + } + function verification_age_superieur_a_i$0(verification_age_superieur_a_i){ + var + _aj_ = + caml_call1 + (Runtime_jsoo_Runtime[2], verification_age_superieur_a_i.anneesIn), + _ak_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + verification_age_superieur_a_i.dateCouranteIn); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + verification_age_superieur_a_i.dateNaissanceIn), + _ak_, + _aj_]; + } + function smic_in_to_jsoo(smic_in){ + var _ai_ = collectivite_to_jsoo(smic_in[2]); + return {dateCouranteIn: caml_call1(Runtime_jsoo_Runtime[5], smic_in[1]), + residenceIn: _ai_}; + } + function smic_in_of_jsoo(smic_in){ + var _ah_ = collectivite_of_jsoo(smic_in.residenceIn); + return [0, + caml_call1(Runtime_jsoo_Runtime[4], smic_in.dateCouranteIn), + _ah_]; + } + function base_mensuelle_allocations_fam$1(base_mensuelle_allocations_fam){ + return {dateCouranteIn: + caml_call1 + (Runtime_jsoo_Runtime[5], base_mensuelle_allocations_fam[1])}; + } + function base_mensuelle_allocations_fam$2(base_mensuelle_allocations_fam){ + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + base_mensuelle_allocations_fam.dateCouranteIn)]; + } + function interface_allocations_familial$1(interface_allocations_familial){ + var + _$_ = ! ! interface_allocations_familial[7], + _aa_ = ! ! interface_allocations_familial[6], + _ab_ = ! ! interface_allocations_familial[5], + _ac_ = collectivite_to_jsoo(interface_allocations_familial[4]), + _ad_ = + caml_call1 + (Runtime_ocaml_Runtime[35], interface_allocations_familial[3]), + _ae_ = interface_allocations_familial[2]; + function _af_(x){return enfant_entree_to_jsoo(x);} + var _ag_ = caml_js_from_array(caml_call2(Stdlib_Array[15], _af_, _ae_)); + return {iDateCouranteIn: + caml_call1 + (Runtime_jsoo_Runtime[5], interface_allocations_familial[1]), + iEnfantsIn: _ag_, + iRessourcesMenageIn: _ad_, + iResidenceIn: _ac_, + iPersonneChargeEffectivePermanenteEstParentIn: _ab_, + iPersonneChargeEffectivePermanenteRemplitTitreIIn: _aa_, + iAvaitEnfantAChargeAvant1erJanvier2012In: _$_}; + } + function interface_allocations_familial$2(interface_allocations_familial){ + var + _S_ = + interface_allocations_familial.iAvaitEnfantAChargeAvant1erJanvier2012In + | 0, + _T_ = + interface_allocations_familial.iPersonneChargeEffectivePermanenteRemplitTitreIIn + | 0, + _U_ = + interface_allocations_familial.iPersonneChargeEffectivePermanenteEstParentIn + | 0, + _V_ = collectivite_of_jsoo(interface_allocations_familial.iResidenceIn), + _W_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + interface_allocations_familial.iRessourcesMenageIn), + _X_ = caml_call1(Runtime_ocaml_Runtime[33], _W_), + _Y_ = caml_js_to_array(interface_allocations_familial.iEnfantsIn); + function _Z_(x){return enfant_entree_of_jsoo(x);} + var ___ = caml_call1(caml_call1(Stdlib_Array[15], _Z_), _Y_); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + interface_allocations_familial.iDateCouranteIn), + ___, + _X_, + _V_, + _U_, + _T_, + _S_]; + } + function allocation_familiales_avril200$3(allocation_familiales_avril200$0){ + return allocation_familiales_avril200 + (caml_call1(Law_source_Allocations_familia[53], 0)); + } + function enfant_le_plus_age(enfant_le_plus_age_in){ + var _R_ = enfant_le_plus_age_in_of_jsoo(enfant_le_plus_age_in); + return enfant_le_plus_age_to_jsoo + (caml_call1(Law_source_Allocations_familia[54], _R_)); + } + function verification_age_inferieur_ou_$3(verification_age_inferieur_ou_$0){ + var + _Q_ = verification_age_inferieur_ou_$2(verification_age_inferieur_ou_$0); + return verification_age_inferieur_ou_ + (caml_call1(Law_source_Allocations_familia[55], _Q_)); + } + function verification_age_superieur_a(verification_age_superieur_a_i){ + var + _P_ = verification_age_superieur_a_i$0(verification_age_superieur_a_i); + return verification_age_superieur_a_t + (caml_call1(Law_source_Allocations_familia[56], _P_)); + } + function smic(smic_in){ + var _O_ = smic_in_of_jsoo(smic_in); + return smic_to_jsoo(caml_call1(Law_source_Allocations_familia[57], _O_)); + } + function base_mensuelle_allocations_fam$3(base_mensuelle_allocations_fam$0){ + var + _N_ = base_mensuelle_allocations_fam$2(base_mensuelle_allocations_fam$0); + return base_mensuelle_allocations_fam + (caml_call1(Law_source_Allocations_familia[58], _N_)); + } + function prestations_familiales(prestations_familiales_in){ + var _M_ = prestations_familiales_in_of_j(prestations_familiales_in); + return prestations_familiales_to_jsoo + (caml_call1(Law_source_Allocations_familia[59], _M_)); + } + function allocations_familiales(allocations_familiales_in){ + var _L_ = allocations_familiales_in_of_j(allocations_familiales_in); + return allocations_familiales_to_jsoo + (caml_call1(Law_source_Allocations_familia[60], _L_)); + } + function interface_allocations_familial$3(interface_allocations_familial$0){ + var + _K_ = interface_allocations_familial$2(interface_allocations_familial$0); + return interface_allocations_familial + (caml_call1(Law_source_Allocations_familia[61], _K_)); + } + function t176(param){ + return caml_js_wrap_callback(interface_allocations_familial$3); + } + function t175(param){return caml_js_wrap_callback(allocations_familiales);} + function t174(param){return caml_js_wrap_callback(prestations_familiales);} + function t173(param){ + return caml_js_wrap_callback(base_mensuelle_allocations_fam$3); + } + function t172(param){return caml_js_wrap_callback(smic);} + function t171(param){ + return caml_js_wrap_callback(verification_age_superieur_a); + } + function t170(param){ + return caml_js_wrap_callback(verification_age_inferieur_ou_$3); + } + function t169(param){return caml_js_wrap_callback(enfant_le_plus_age);} + function t168(param){ + return caml_js_wrap_callback(allocation_familiales_avril200$3); + } + caml_call2 + (Js_of_ocaml_Js[50], + cst_AllocationsFamilialesLib, + {allocationFamilialesAvril2008: caml_js_wrap_meth_callback(t168), + enfantLePlusAge: caml_js_wrap_meth_callback(t169), + verificationAgeInferieurOuEgalA: caml_js_wrap_meth_callback(t170), + verificationAgeSuperieurA: caml_js_wrap_meth_callback(t171), + smic: caml_js_wrap_meth_callback(t172), + baseMensuelleAllocationsFamiliales: caml_js_wrap_meth_callback(t173), + prestationsFamiliales: caml_js_wrap_meth_callback(t174), + allocationsFamiliales: caml_js_wrap_meth_callback(t175), + interfaceAllocationsFamiliales: caml_js_wrap_meth_callback(t176)}); + var + Law_source_Allocations_familia$0 = [0, prise_en_charge_to_jsoo, prise_en_charge_of_jsoo, @@ -103444,20 +57659,20 @@ element_prestations_familiales$0, collectivite_to_jsoo, collectivite_of_jsoo, + allocation_familiales_avril200, allocation_familiales_avril200$0, - allocation_familiales_avril200$1, allocations_familiales_to_jsoo, allocations_familiales_of_jsoo, + verification_age_inferieur_ou_, verification_age_inferieur_ou_$0, - verification_age_inferieur_ou_$1, verification_age_superieur_a_t, verification_age_superieur_a_o, smic_to_jsoo, smic_of_jsoo, + base_mensuelle_allocations_fam, base_mensuelle_allocations_fam$0, - base_mensuelle_allocations_fam$1, + interface_allocations_familial, interface_allocations_familial$0, - interface_allocations_familial$1, enfant_entree_to_jsoo, enfant_entree_of_jsoo, enfant_to_jsoo, @@ -103468,21931 +57683,64100 @@ prestations_familiales_of_jsoo, prestations_familiales_in_to_j, prestations_familiales_in_of_j, + allocation_familiales_avril200$1, allocation_familiales_avril200$2, - allocation_familiales_avril200$3, enfant_le_plus_age_in_to_jsoo, enfant_le_plus_age_in_of_jsoo, allocations_familiales_in_to_j, allocations_familiales_in_of_j, + verification_age_inferieur_ou_$1, verification_age_inferieur_ou_$2, - verification_age_inferieur_ou_$3, verification_age_superieur_a_i, verification_age_superieur_a_i$0, smic_in_to_jsoo, smic_in_of_jsoo, + base_mensuelle_allocations_fam$1, base_mensuelle_allocations_fam$2, - base_mensuelle_allocations_fam$3, + interface_allocations_familial$1, interface_allocations_familial$2, - interface_allocations_familial$3, - allocation_familiales_avril200$4, - enfant_le_plus_age$0, - verification_age_inferieur_ou_$4, - verification_age_superieur_a$0, - smic$0, - base_mensuelle_allocations_fam$4, - prestations_familiales$0, - allocations_familiales$0, - interface_allocations_familial$4]; - caml_register_global - (9324, - Law_source_Allocations_familia$0, - "Law_source__Allocations_familiales_api_web"); - var TypePret=[0]; - function embed_type_pret(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cdu_=[0,cst_D331_32,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cdu_=[0,cst_D331_63_64,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - case 2: - var - x$2=x[1], - _cdu_=[0,cst_D331_59_8,caml_call1(Runtime_ocaml_Runtime[11],x$2)]; - break; - case 3: - var - x$3=x[1], - _cdu_=[0,cst_D331_76_1,caml_call1(Runtime_ocaml_Runtime[11],x$3)]; - break; - default: - var - x$4=x[1], - _cdu_=[0,cst_Autre,caml_call1(Runtime_ocaml_Runtime[11],x$4)]} - return [6,_kY_,_cdu_]} - var TitulairePret=[0]; - function embed_titulaire_pret(x) - {if(0 === x[0]) - var - x$0=x[1], - _cdt_=[0,cst_Demandeur,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - else - var - x$1=x[1], - _cdt_= - [0, - cst_VendeurQuandDemandeurACont, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - return [6,_kZ_,_cdt_]} - var TypeTravauxLogementD83215=[0]; - function embed_type_travaux_logement_d8(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cds_= - [0, - cst_TravauxPourAcquisitionD832, - caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cds_= - [0, - cst_TravauxSurLogementD_j_Acqu, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - default: - var - x$2=x[1], - _cds_=[0,cst_PasDeTravaux,caml_call1(Runtime_ocaml_Runtime[11],x$2)]} - return [6,_k0_,_cds_]} - var TypeTravauxLogementR8425=[0]; - function embed_type_travaux_logement_r8(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cdr_= - [0, - cst_ObjectifD_cenceLogement, - caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cdr_= - [0, - cst_Pr_vuDansListeR321_15, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - case 2: - var - x$2=x[1], - _cdr_= - [0, - cst_AgrandirOuRendreHabitableD, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]; - break; - default: - var - x$3=x[1], - _cdr_= - [0,cst_PasDeTravaux$0,caml_call1(Runtime_ocaml_Runtime[11],x$3)]} - return [6,_k1_,_cdr_]} - var AmelioreParOccupant=[0]; - function embed_ameliore_par_occupant(x) - {if(0 === x[0]) - var - x$0=x[1], - _cdq_=[0,cst_Oui,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - else - var - x$1=x[1], - _cdq_=[0,cst_Non,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - return [6,_k2_,_cdq_]} - var LimiteTranche=[0]; - function embed_limite_tranche(x) - {if(0 === x[0]) - var - x$0=x[1], - _cdp_=[0,cst_Revenu,caml_call1(Runtime_ocaml_Runtime[13],x$0)]; - else - var - x$1=x[1], - _cdp_=[0,cst_Infini,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - return [6,_k3_,_cdp_]} - var LimiteTrancheDecimal=[0]; - function embed_limite_tranche_decimal(x) - {if(0 === x[0]) - var - x$0=x[1], - _cdo_=[0,cst_Revenu$0,caml_call1(Runtime_ocaml_Runtime[15],x$0)]; - else - var - x$1=x[1], - _cdo_=[0,cst_Infini$0,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - return [6,_k4_,_cdo_]} - var PrestationRecue=[0]; - function embed_prestation_recue(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cdn_= - [0, - cst_AllocationsFamiliales$1, - caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cdn_= - [0, - cst_Compl_mentFamilial$0, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - case 2: - var - x$2=x[1], - _cdn_= - [0, - cst_AllocationJeuneEnfant, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]; - break; - case 3: - var - x$3=x[1], - _cdn_= - [0, - cst_AllocationSoutienFamilial$1, - caml_call1(Runtime_ocaml_Runtime[11],x$3)]; - break; - case 4: - var - x$4=x[1], - _cdn_= - [0, - cst_AllocationSoutienEnfantHan, - caml_call1(Runtime_ocaml_Runtime[11],x$4)]; - break; - default: - var - x$5=x[1], - _cdn_= - [0, - cst_AllocationAdulteHandicap, - caml_call1(Runtime_ocaml_Runtime[11],x$5)]} - return [6,_k5_,_cdn_]} - var ParentOuAutre=[0]; - function embed_parent_ou_autre(x) - {if(0 === x[0]) - var - x$0=x[1], - _cdm_= - [0, - cst_DemandeurOuConjointOuParen, - caml_call1(Runtime_ocaml_Runtime[15],x$0)]; - else - var - x$1=x[1], - _cdm_=[0,cst_Autre$0,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - return [6,_k6_,_cdm_]} - var SituationGardeAlternee=[0]; - function embed_situation_garde_alternee(x) - {if(0 === x[0]) - var - x$0=x[1], - _cdl_= - [0,cst_PasDeGardeAltern_e,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - else - var - x$1=x[1], - _cdl_= - [0, - cst_GardeAltern_eCoefficientPr, - caml_call1(Runtime_ocaml_Runtime[15],x$1)]; - return [6,_k7_,_cdl_]} - var Parente=[0]; - function embed_parente(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cdk_=[0,cst_Ascendant,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cdk_=[0,cst_Descendant,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - default: - var - x$2=x[1], - _cdk_= - [0, - cst_Collat_ralDeuxi_meTroisi_m, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]} - return [6,_k8_,_cdk_]} - var DateDeNaissanceOuMoisDeGrosses=[0]; - function embed_date_de_naissance_ou_moi(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cdj_= - [0,cst_DateDeNaissance,caml_call1(Runtime_ocaml_Runtime[16],x$0)]; - break; - case 1: - var - x$1=x[1], - _cdj_= - [0, - cst_AvantPremierJourMoisCivilT, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - default: - var - x$2=x[1], - _cdj_= - [0, - cst_Apr_sPremierJourMoisCivilT, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]} - return [6,_k9_,_cdj_]} - var ZoneDHabitation=[0]; - function embed_zone_d_habitation(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cdi_=[0,cst_Zone1,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cdi_=[0,cst_Zone2,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - default: - var - x$2=x[1], - _cdi_=[0,cst_Zone3,caml_call1(Runtime_ocaml_Runtime[11],x$2)]} - return [6,_k__,_cdi_]} - var PaiementLogementDistinctProfes=[0]; - function embed_paiement_logement_distin(x) - {if(0 === x[0]) - var - x$0=x[1], - _cdh_= - [0, - cst_OuiAvecLoyerOuCharges, - caml_call1(Runtime_ocaml_Runtime[13],x$0)]; - else - var - x$1=x[1], - _cdh_=[0,cst_Non$0,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - return [6,_k$_,_cdh_]} - var VersementA=[0]; - function embed_versement_a(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cdg_=[0,cst_Bailleur,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cdg_=[0,cst_B_n_ficiaire,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - default: - var - x$2=x[1], - _cdg_= - [0, - cst_tablissementHabilit, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]} - return [6,_la_,_cdg_]} - var DepenseLogement=[0]; - function embed_depense_logement(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cdf_= - [0, - cst_TotalAnnuel_ch_ances, - caml_call1(Runtime_ocaml_Runtime[13],x$0)]; - break; - case 1: - var - x$1=x[1], - _cdf_=[0,cst_Mensualit,caml_call1(Runtime_ocaml_Runtime[13],x$1)]; - break; - default: - var - x$2=x[1], - _cdf_=[0,cst_Loyer,caml_call1(Runtime_ocaml_Runtime[13],x$2)]} - return [6,_lb_,_cdf_]} - var ModeOccupationImpaye=[0]; - function embed_mode_occupation_impaye(x) - {if(0 === x[0]) - var - x$0=x[1], - _cde_=[0,cst_Impay_Loyer,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - else - var - x$1=x[1], - _cde_=[0,cst_Impay_Pr_t,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - return [6,_lc_,_cde_]} - var TypeEligibiliteAllocationLogem=[0]; - function embed_type_eligibilite_allocat(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cdd_=[0,cst_Pas_ligible,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cdd_= - [0, - cst_AllocationLogementFamilial, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - default: - var - x$2=x[1], - _cdd_= - [0, - cst_AllocationLogementSociale, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]} - return [6,_ld_,_cdd_]} - var AccordFinancementRepresentantE=[0]; - function embed_accord_financement_repre(x) - {if(0 === x[0]) - var - x$0=x[1], - _cdc_=[0,cst_Accord,caml_call1(Runtime_ocaml_Runtime[16],x$0)]; - else - var - x$1=x[1], - _cdc_=[0,cst_PasdAccord,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - return [6,_le_,_cdc_]} - var TypeAidesPersonnelleLogement=[0]; - function embed_type_aides_personnelle_l(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cdb_= - [0, - cst_AidePersonnalis_eLogement, - caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cdb_= - [0, - cst_AllocationLogementFamilial$0, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - default: - var - x$2=x[1], - _cdb_= - [0, - cst_AllocationLogementSociale$0, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]} - return [6,_lf_,_cdb_]} - var SituationFamiliale=[0]; - function embed_situation_familiale(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cda_=[0,cst_C_libataire,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cda_=[0,cst_Mari_s,caml_call1(Runtime_ocaml_Runtime[16],x$1)]; - break; - case 2: - var - x$2=x[1], - _cda_=[0,cst_Pacs_s,caml_call1(Runtime_ocaml_Runtime[11],x$2)]; - break; - case 3: - var - x$3=x[1], - _cda_=[0,cst_Concubins,caml_call1(Runtime_ocaml_Runtime[11],x$3)]; - break; - case 4: - var - x$4=x[1], - _cda_= - [0, - cst_C_libataireS_par_DeFait, - caml_call1(Runtime_ocaml_Runtime[11],x$4)]; - break; - default: - var - x$5=x[1], - _cda_= - [0, - cst_ConcubinageDontS_par_DeFai, - caml_call1(Runtime_ocaml_Runtime[11],x$5)]} - return [6,_lg_,_cda_]} - var PriseEnCharge$0=[0]; - function embed_prise_en_charge$0(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cc$_= - [0, - cst_EffectiveEtPermanente$1, - caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cc$_= - [0, - cst_R_sidenceAltern_eAllocatai, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - default: - var - x$2=x[1], - _cc$_= - [0, - cst_R_sidenceAltern_eAllocatio, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]} - return [6,_lh_,_cc$_]} - var TypeLogementFoyer=[0]; - function embed_type_logement_foyer(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cc__= - [0, - cst_LogementPersonnes_g_esOuHa, - caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cc__= - [0,cst_R_sidenceSociale,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - case 2: - var - x$2=x[1], - _cc__= - [0, - cst_FoyerJeunesTrvailleursOuMi, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]; - break; - default: - var - x$3=x[1], - _cc__=[0,cst_Autre$1,caml_call1(Runtime_ocaml_Runtime[11],x$3)]} - return [6,_li_,_cc__]} - var CategorieEquivalenceLoyerAlloc=[0]; - function embed_categorie_equivalence_lo(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cc9_= - [0, - cst_tudiantLog_EnChambreCROUS, - caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cc9_= - [0, - cst_tudiantLog_EnChambreCROUSR, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - case 2: - var - x$2=x[1], - _cc9_= - [0, - cst_Personnes_g_esSelon3DeD842, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]; - break; - default: - var - x$3=x[1], - _cc9_= - [0,cst_AutresPersonnes,caml_call1(Runtime_ocaml_Runtime[11],x$3)]} - return [6,_lj_,_cc9_]} - var SituationFamilialeCalculAPL=[0]; - function embed_situation_familiale_calc(x) - {if(0 === x[0]) - var - x$0=x[1], - _cc8_=[0,cst_PersonneSeule,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - else - var - x$1=x[1], - _cc8_=[0,cst_Couple,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - return [6,_lk_,_cc8_]} - var Collectivite$0=[0]; - function embed_collectivite$0(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cc7_=[0,cst_Guadeloupe$1,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cc7_=[0,cst_Guyane$1,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - case 2: - var - x$2=x[1], - _cc7_=[0,cst_Martinique$1,caml_call1(Runtime_ocaml_Runtime[11],x$2)]; - break; - case 3: - var - x$3=x[1], - _cc7_=[0,cst_LaR_union$0,caml_call1(Runtime_ocaml_Runtime[11],x$3)]; - break; - case 4: - var - x$4=x[1], - _cc7_= - [0,cst_SaintBarth_lemy$0,caml_call1(Runtime_ocaml_Runtime[11],x$4)]; - break; - case 5: - var - x$5=x[1], - _cc7_= - [0,cst_SaintMartin$1,caml_call1(Runtime_ocaml_Runtime[11],x$5)]; - break; - case 6: - var - x$6=x[1], - _cc7_=[0,cst_M_tropole$0,caml_call1(Runtime_ocaml_Runtime[11],x$6)]; - break; - case 7: - var - x$7=x[1], - _cc7_= - [0, - cst_SaintPierreEtMiquelon$1, - caml_call1(Runtime_ocaml_Runtime[11],x$7)]; - break; - default: - var - x$8=x[1], - _cc7_=[0,cst_Mayotte$1,caml_call1(Runtime_ocaml_Runtime[11],x$8)]} - return [6,_ll_,_cc7_]} - var PriseEnChargeEnfant=[0]; - function embed_prise_en_charge_enfant(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cc6_= - [0, - cst_GardeAltern_ePartageAlloca$0, - caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cc6_= - [0, - cst_GardeAltern_eAllocataireUn$0, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - case 2: - var - x$2=x[1], - _cc6_= - [0, - cst_EffectiveEtPermanente$2, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]; - break; - case 3: - var - x$3=x[1], - _cc6_= - [0, - cst_ServicesSociauxAllocationV$3, - caml_call1(Runtime_ocaml_Runtime[11],x$3)]; - break; - default: - var - x$4=x[1], - _cc6_= - [0, - cst_ServicesSociauxAllocationV$4, - caml_call1(Runtime_ocaml_Runtime[11],x$4)]} - return [6,_lm_,_cc6_]} - var SituationObligationScolaire$0=[0]; - function embed_situation_obligation_sco$0(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cc5_=[0,cst_Avant$1,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cc5_=[0,cst_Pendant$1,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - default: - var - x$2=x[1], - _cc5_=[0,cst_Apr_s$0,caml_call1(Runtime_ocaml_Runtime[11],x$2)]} - return [6,_ln_,_cc5_]} - var ElementPrestationsFamiliales$0=[0]; - function embed_element_prestations_fami$0(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cc4_= - [0, - cst_PrestationAccueilJeuneEnfa$1, - caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cc4_= - [0, - cst_AllocationsFamiliales$2, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - case 2: - var - x$2=x[1], - _cc4_= - [0, - cst_Compl_mentFamilial$1, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]; - break; - case 3: - var - x$3=x[1], - _cc4_= - [0, - cst_AllocationLogement$1, - caml_call1(Runtime_ocaml_Runtime[11],x$3)]; - break; - case 4: - var - x$4=x[1], - _cc4_= - [0, - cst_Allocation_ducationEnfantH$0, - caml_call1(Runtime_ocaml_Runtime[11],x$4)]; - break; - case 5: - var - x$5=x[1], - _cc4_= - [0, - cst_AllocationSoutienFamilial$2, - caml_call1(Runtime_ocaml_Runtime[11],x$5)]; - break; - case 6: - var - x$6=x[1], - _cc4_= - [0, - cst_AllocationRentr_eScolaire$0, - caml_call1(Runtime_ocaml_Runtime[11],x$6)]; - break; - default: - var - x$7=x[1], - _cc4_= - [0, - cst_AllocationJournali_rePrese$0, - caml_call1(Runtime_ocaml_Runtime[11],x$7)]} - return [6,_lo_,_cc4_]} - var ConventionBailleurSocial=[0]; - function embed_convention_bailleur_soci(x) - {var - _cc3_= - [0, - [0, - cst_r_duction_loyer_solidarit_, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - 0]; - return [7, - _lp_, - [0, - [0, - cst_conventionn_livre_III_titr, - caml_call1(Runtime_ocaml_Runtime[12],x[1])], - _cc3_]]} - var ConventionANHA=[0]; - function embed_convention_a_n_h_a(x) - {return [7, - _lq_, - [0, - [0, - cst_conventionn_livre_III_titr$0, - caml_call1(Runtime_ocaml_Runtime[12],x[1])], - 0]]} - var PersonneSousLocation=[0]; - function embed_personne_sous_location(x) - {var - _cc2_= - [0, - [0, - cst_conforme_article_l442_1, - caml_call1(Runtime_ocaml_Runtime[12],x[2])], - 0]; - return [7, - _lr_, - [0, - [0, - cst_date_naissance_personne_so, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _cc2_]]} - var Patrimoine=[0]; - function embed_patrimoine(x) - {var - _cc1_= - [0, - [0, - cst_ne_produisant_pas_revenu_p, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - 0]; - return [7, - _ls_, - [0, - [0, - cst_produisant_revenu_p_riode_, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _cc1_]]} - var ConditionsEtrangers=[0]; - function embed_conditions_etrangers(x) - {var - _cc0_= - [0, - [0, - cst_satisfait_art_4_ordonnance, - caml_call1(Runtime_ocaml_Runtime[12],x[2])], - 0]; - return [7, - _lt_, - [0, - [0, - cst_satisfait_conditions_l512_, - caml_call1(Runtime_ocaml_Runtime[12],x[1])], - _cc0_]]} - var PersonneVivantHabituellementAu=[0]; - function embed_personne_vivant_habituel(x) - {var - _ccZ_= - [0,[0,cst_ressources,caml_call1(Runtime_ocaml_Runtime[13],x[2])],0]; - return [7, - _lu_, - [0, - [0, - cst_dur_e_r_sidence_durant_p_r, - caml_call1(Runtime_ocaml_Runtime[12],x[1])], - _ccZ_]]} - var EligibiliteAidePersonnaliseeLo=[0]; - function embed_eligibilite_aide_personn(x) - {var - _ccW_= - [0, - [0, - cst_coefficents_enfants_garde_, - caml_call2(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15],x[4])], - 0], - _ccX_= - [0, - [0, - cst_nombre_personnes_charge_pr, - caml_call1(Runtime_ocaml_Runtime[14],x[3])], - _ccW_], - _ccY_= - [0,[0,cst_ligibilit,caml_call1(Runtime_ocaml_Runtime[12],x[2])],_ccX_]; - return [7, - _lv_, - [0, - [0, - cst_date_courante, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _ccY_]]} - var EligibilitePrimeDeDemenagement=[0]; - function embed_eligibilite_prime_de_dem(x) - {return [7, - _lw_, - [0, - [0, - cst_montant_prime_d_m_nagement, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - 0]]} - var RessourcesAidesPersonnelleLoge=[0]; - function embed_ressources_aides_personn(x) - {return [7, - _lx_, - [0, - [0, - cst_ressources_prises_en_compt, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - 0]]} - var ContributionsSocialesAidesPers=[0]; - function embed_contributions_sociales_a(x) - {return [7, - _ly_, - [0, - [0,cst_montant$0,caml_call1(Runtime_ocaml_Runtime[10],x[1])], - 0]]} - var CalculAidePersonnaliseeLogemen=[0]; - function embed_calcul_aide_personnalise(x) - {var - _ccQ_= - [0, - [0, - cst_traitement_aide_finale, - caml_call1(Runtime_ocaml_Runtime[10],x[7])], - 0], - _ccR_= - [0, - [0, - cst_aide_finale_formule, - caml_call1(Runtime_ocaml_Runtime[13],x[6])], - _ccQ_], - _ccS_= - [0, - [0, - cst_participation_personnelle, - caml_call1(Runtime_ocaml_Runtime[13],x[5])], - _ccR_], - _ccT_= - [0, - [0, - cst_taux_composition_familiale, - caml_call1(Runtime_ocaml_Runtime[15],x[4])], - _ccS_], - _ccU_= - [0, - [0, - cst_participation_minimale, - caml_call1(Runtime_ocaml_Runtime[13],x[3])], - _ccT_], - _ccV_= - [0, - [0, - cst_plafond_loyer_d823_16_2, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _ccU_]; - return [7, - _lz_, - [0, - [0, - cst_montant_forfaitaire_charge, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _ccV_]]} - var CalculEquivalenceLoyerMinimale=[0]; - function embed_calcul_equivalence_loyer(x) - {return [7, - _lA_, - [0, - [0,cst_montant$1,caml_call1(Runtime_ocaml_Runtime[13],x[1])], - 0]]} - var CalculNombrePartLogementFoyer=[0]; - function embed_calcul_nombre_part_logem(x) - {return [7, - _lB_, - [0, - [0, - cst_n_nombre_parts_d832_25, - caml_call1(Runtime_ocaml_Runtime[15],x[1])], - 0]]} - var CalculAidePersonnaliseeLogemen$0=[0]; - function embed_calcul_aide_personnalise$0(x) - {var - _ccI_= - [0, - [0, - cst_traitement_aide_finale$0, - caml_call1(Runtime_ocaml_Runtime[10],x[9])], - 0], - _ccJ_= - [0, - [0, - cst_aide_finale_formule$0, - caml_call1(Runtime_ocaml_Runtime[13],x[8])], - _ccI_], - _ccK_= - [0, - [0, - cst_coefficient_prise_en_charg, - caml_call1(Runtime_ocaml_Runtime[15],x[7])], - _ccJ_], - _ccL_= - [0, - [0, - cst_quivalence_loyer_minimale, - caml_call1(Runtime_ocaml_Runtime[13],x[6])], - _ccK_], - _ccM_= - [0, - [0, - cst_plafond_quivalence_loyer_l, - caml_call1(Runtime_ocaml_Runtime[13],x[5])], - _ccL_], - _ccN_= - [0, - [0, - cst_quivalence_loyer_ligible, - caml_call1(Runtime_ocaml_Runtime[13],x[4])], - _ccM_], - _ccO_= - [0, - [0, - cst_n_nombre_parts_d832_25$0, - caml_call1(Runtime_ocaml_Runtime[15],x[3])], - _ccN_], - _ccP_= - [0, - [0, - cst_coefficient_r_d832_25, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _ccO_]; - return [7, - _lC_, - [0, - [0, - cst_coefficient_multiplicateur, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _ccP_]]} - var CalculNombrePartsAccessionProp=[0]; - function embed_calcul_nombre_parts_acce(x) - {return [7, - _lD_, - [0, - [0, - cst_n_nombre_parts_d832_11, - caml_call1(Runtime_ocaml_Runtime[15],x[1])], - 0]]} - var CalculAidePersonnaliseeLogemen$1=[0]; - function embed_calcul_aide_personnalise$1(x) - {var - _ccE_= - [0, - [0, - cst_traitement_aide_finale$1, - caml_call1(Runtime_ocaml_Runtime[10],x[5])], - 0], - _ccF_= - [0, - [0, - cst_aide_finale_formule$1, - caml_call1(Runtime_ocaml_Runtime[13],x[4])], - _ccE_], - _ccG_= - [0, - [0, - cst_coefficient_prise_en_charg$0, - caml_call1(Runtime_ocaml_Runtime[15],x[3])], - _ccF_], - _ccH_= - [0, - [0,cst_mensualit_minimale,caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _ccG_]; - return [7, - _lE_, - [0, - [0, - cst_mensualit_ligible, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _ccH_]]} - var TraitementFormuleAideFinale=[0]; - function embed_traitement_formule_aide_(x) - {var - _ccD_= - [0, - [0, - cst_traitement_aide_finale$2, - caml_call1(Runtime_ocaml_Runtime[10],x[2])], - 0]; - return [7, - _lF_, - [0, - [0, - cst_aide_finale_formule$2, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _ccD_]]} - var CalculAidePersonnaliseeLogemen$2=[0]; - function embed_calcul_aide_personnalise$2(x) - {var - _ccC_= - [0, - [0, - cst_traitement_aide_finale$3, - caml_call1(Runtime_ocaml_Runtime[10],x[2])], - 0]; - return [7, - _lG_, - [0, - [0, - cst_aide_finale_formule$3, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _ccC_]]} - var InfosChangementLogementD8424=[0]; - function embed_infos_changement_logemen(x) - {var - _ccB_= - [0, - [0, - cst_ancienne_allocation_logeme, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - 0]; - return [7, - _lH_, - [0, - [0, - cst_ancien_loyer_principal, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _ccB_]]} - var CalculAllocationLogementLocati=[0]; - function embed_calcul_allocation_logeme(x) - {var - _ccA_= - [0, - [0, - cst_traitement_aide_finale$4, - caml_call1(Runtime_ocaml_Runtime[10],x[2])], - 0]; - return [7, - _lI_, - [0, - [0, - cst_aide_finale_formule$4, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _ccA_]]} - var CalculAllocationLogementAccess=[0]; - function embed_calcul_allocation_logeme$0(x) - {var - _ccz_= - [0, - [0, - cst_traitement_aide_finale$5, - caml_call1(Runtime_ocaml_Runtime[10],x[2])], - 0]; - return [7, - _lJ_, - [0, - [0, - cst_aide_finale_formule$5, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _ccz_]]} - var CalculAllocationLogementFoyer=[0]; - function embed_calcul_allocation_logeme$1(x) - {var - _ccu_= - [0, - [0, - cst_traitement_aide_finale$6, - caml_call1(Runtime_ocaml_Runtime[10],x[6])], - 0], - _ccv_= - [0, - [0, - cst_aide_finale_formule$6, - caml_call1(Runtime_ocaml_Runtime[13],x[5])], - _ccu_], - _ccw_= - [0, - [0,cst_loyer_minimal,caml_call1(Runtime_ocaml_Runtime[13],x[4])], - _ccv_], - _ccx_= - [0, - [0, - cst_montant_forfaitaire_charge$0, - caml_call1(Runtime_ocaml_Runtime[13],x[3])], - _ccw_], - _ccy_= - [0, - [0,cst_quivalence_loyer,caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _ccx_]; - return [7, - _lK_, - [0, - [0, - cst_coefficient_prise_en_charg$1, - caml_call1(Runtime_ocaml_Runtime[15],x[1])], - _ccy_]]} - var CalculAllocationLogement=[0]; - function embed_calcul_allocation_logeme$2(x) - {var - _cct_= - [0, - [0, - cst_traitement_aide_finale$7, - caml_call1(Runtime_ocaml_Runtime[10],x[2])], - 0]; - return [7, - _lL_, - [0, - [0, - cst_aide_finale_formule$7, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _cct_]]} - var OuvertureDroitsRetraite=[0]; - function embed_ouverture_droits_retrait(x) - {return [7, - _lM_, - [0, - [0, - cst_ge_ouverture_droit, - caml_call1(Runtime_ocaml_Runtime[17],x[1])], - 0]]} - var ImpayeDepenseLogement=[0]; - function embed_impaye_depense_logement(x) - {return [7, - _lN_, - [0, - [0, - cst_montant_impay, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - 0]]} - var CalculetteAidesAuLogement=[0]; - function embed_calculette_aides_au_loge(x) - {var - _ccq_= - [0, - [0, - cst_coefficents_enfants_garde_$0, - caml_call2(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15],x[4])], - 0], - _ccr_= - [0, - [0, - cst_traitement_aide_finale$8, - caml_call1(Runtime_ocaml_Runtime[10],x[3])], - _ccq_], - _ccs_= - [0, - [0, - cst_aide_finale_formule$8, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _ccr_]; - return [7, - _lO_, - [0, - [0,cst_ligibilit$0,caml_call1(Runtime_ocaml_Runtime[12],x[1])], - _ccs_]]} - var CalculetteAidesAuLogementGarde=[0]; - function embed_calculette_aides_au_loge$0(x) - {var - _ccp_= - [0,[0,cst_aide_finale,caml_call1(Runtime_ocaml_Runtime[13],x[2])],0]; - return [7, - _lP_, - [0, - [0,cst_ligibilit$1,caml_call1(Runtime_ocaml_Runtime[12],x[1])], - _ccp_]]} - var BaseMensuelleAllocationsFamili$1=[0]; - function embed_base_mensuelle_allocatio$1(x) - {return [7, - _lQ_, - [0, - [0,cst_montant$2,caml_call1(Runtime_ocaml_Runtime[13],x[1])], - 0]]} - var VerificationAgeInferieurOuEgal$1=[0]; - function embed_verification_age_inferie$1(x) - {return [7, - _lR_, - [0, - [0, - cst_est_inf_rieur_ou_gal$0, - caml_call1(Runtime_ocaml_Runtime[12],x[1])], - 0]]} - var VerificationAgeSuperieurA$0=[0]; - function embed_verification_age_superie$1(x) - {return [7, - _lS_, - [0, - [0, - cst_est_sup_rieur$0, - caml_call1(Runtime_ocaml_Runtime[12],x[1])], - 0]]} - var Smic$0=[0]; - function embed_smic$0(x) - {return [7, - _lT_, - [0, - [0, - cst_brut_horaire$0, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - 0]]} - var NeufOuAncien=[0]; - function embed_neuf_ou_ancien(x) - {if(0 === x[0]) - var - x$0=x[1], - _cco_=[0,cst_Neuf,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - else - var x$1=x[1],_cco_=[0,cst_Ancien,embed_ameliore_par_occupant(x$1)]; - return [6,_lU_,_cco_]} - var TrancheRevenu=[0]; - function embed_tranche_revenu(x) - {var - _ccm_=[0,[0,cst_taux,caml_call1(Runtime_ocaml_Runtime[15],x[3])],0], - _ccn_=[0,[0,cst_bas,caml_call1(Runtime_ocaml_Runtime[13],x[2])],_ccm_]; - return [7,_lV_,[0,[0,cst_haut,embed_limite_tranche(x[1])],_ccn_]]} - var TrancheRevenuDecimal=[0]; - function embed_tranche_revenu_decimal(x) - {var - _cck_=[0,[0,cst_taux$0,caml_call1(Runtime_ocaml_Runtime[15],x[3])],0], - _ccl_= - [0,[0,cst_bas$0,caml_call1(Runtime_ocaml_Runtime[15],x[2])],_cck_]; - return [7, - _lW_, - [0,[0,cst_haut$0,embed_limite_tranche_decimal(x[1])],_ccl_]]} - var AutrePersonneACharge=[0]; - function embed_autre_personne_a_charge(x) - {var - _cce_= - [0, - [0, - cst_titulaire_allocation_perso, - caml_call1(Runtime_ocaml_Runtime[12],x[7])], - 0], - _ccf_= - [0, - [0, - cst_b_n_ficiaire_l161_19_l351_, - caml_call1(Runtime_ocaml_Runtime[12],x[6])], - _cce_], - _ccg_= - [0, - [0, - cst_incapacit_80_pourcent_ou_r, - caml_call1(Runtime_ocaml_Runtime[12],x[5])], - _ccf_], - _cch_=[0,[0,cst_parent,embed_parente(x[4])],_ccg_], - _cci_= - [0, - [0, - cst_ascendant_descendant_colla, - caml_call1(Runtime_ocaml_Runtime[12],x[3])], - _cch_], - _ccj_= - [0, - [0,cst_ressources$0,caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _cci_]; - return [7, - _lX_, - [0, - [0, - cst_date_naissance, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _ccj_]]} - var DateNaissanceTroisiemeOuDernie=[0]; - function embed_date_naissance_troisieme(x) - {if(0 === x[0]) - var - x$0=x[1], - _ccd_= - [0,cst_MoinsDeTroisEnfants,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - else - var - x$1=x[1], - _ccd_=[0,cst_PlusDeTroisEnfants,embed_date_de_naissance_ou_moi(x$1)]; - return [6,_lY_,_ccd_]} - var EligibiliteAllocationLogement=[0]; - function embed_eligibilite_allocation_l(x) - {var - _ccb_= - [0, - [0, - cst_coefficents_enfants_garde_$1, - caml_call2(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15],x[3])], - 0], - _ccc_= - [0, - [0, - cst_nombre_personnes_charge_pr$0, - caml_call1(Runtime_ocaml_Runtime[14],x[2])], - _ccb_]; - return [7, - _lZ_, - [0, - [0,cst_ligibilit$2,embed_type_eligibilite_allocat(x[1])], - _ccc_]]} - var Pret=[0]; - function embed_pret(x) - {var - _cb__= - [0, - [0, - cst_accord_financement_repr_se, - embed_accord_financement_repre(x[4])], - 0], - _cb$_=[0,[0,cst_titulaire_pr_t,embed_titulaire_pret(x[3])],_cb__], - _cca_= - [0, - [0,cst_date_signature,caml_call1(Runtime_ocaml_Runtime[16],x[2])], - _cb$_]; - return [7,_l0_,[0,[0,cst_type_pr_t,embed_type_pret(x[1])],_cca_]]} - var LogementFoyer=[0]; - function embed_logement_foyer(x) - {var - _cb1_= - [0, - [0, - cst_logement_meubl_d842_2, - caml_call1(Runtime_ocaml_Runtime[12],x[10])], - 0], - _cb2_= - [0, - [0, - cst_b_n_ficiaire_aide_adulte_o, - caml_call1(Runtime_ocaml_Runtime[12],x[9])], - _cb1_], - _cb3_= - [0, - [0, - cst_cat_gorie_quivalence_loyer, - embed_categorie_equivalence_lo(x[8])], - _cb2_], - _cb4_= - [0,[0,cst_redevance,caml_call1(Runtime_ocaml_Runtime[13],x[7])],_cb3_], - _cb5_= - [0, - [0, - cst_construit_application_loi_, - caml_call1(Runtime_ocaml_Runtime[12],x[6])], - _cb4_], - _cb6_= - [0, - [0, - cst_date_conventionnement, - caml_call1(Runtime_ocaml_Runtime[16],x[5])], - _cb5_], - _cb7_= - [0, - [0, - cst_conventionn_selon_r_gles_m, - caml_call1(Runtime_ocaml_Runtime[12],x[4])], - _cb6_], - _cb8_= - [0, - [0, - cst_conventionn_livre_III_titr$1, - caml_call1(Runtime_ocaml_Runtime[12],x[3])], - _cb7_], - _cb9_= - [0, - [0, - cst_remplit_conditions_r832_21, - caml_call1(Runtime_ocaml_Runtime[12],x[2])], - _cb8_]; - return [7,_l1_,[0,[0,cst_type,embed_type_logement_foyer(x[1])],_cb9_]]} - var EnfantPrestationsFamiliales=[0]; - function embed_enfant_prestations_famil(x) - {var - _cbV_= - [0, - [0, - cst_b_n_ficie_titre_personnel_$0, - caml_call1(Runtime_ocaml_Runtime[12],x[7])], - 0], - _cbW_= - [0, - [0, - cst_a_d_j_ouvert_droit_aux_all$0, - caml_call1(Runtime_ocaml_Runtime[12],x[6])], - _cbV_], - _cbX_= - [0,[0,cst_prise_en_charge$0,embed_prise_en_charge_enfant(x[5])],_cbW_], - _cbY_= - [0, - [0, - cst_date_de_naissance$0, - caml_call1(Runtime_ocaml_Runtime[16],x[4])], - _cbX_], - _cbZ_= - [0, - [0, - cst_r_muneration_mensuelle$0, - caml_call1(Runtime_ocaml_Runtime[13],x[3])], - _cbY_], - _cb0_= - [0, - [0,cst_obligation_scolaire$0,embed_situation_obligation_sco$0(x[2])], - _cbZ_]; - return [7, - _l2_, - [0, - [0, - cst_identifiant$0, - caml_call1(Runtime_ocaml_Runtime[14],x[1])], - _cb0_]]} - var TypeBailleur=[0]; - function embed_type_bailleur(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cbU_=[0,cst_BailleurSocial,embed_convention_bailleur_soci(x$0)]; - break; - case 1: - var - x$1=x[1], - _cbU_= - [0,cst_BailleurPriv_AvecConventio,embed_convention_a_n_h_a(x$1)]; - break; - default: - var - x$2=x[1], - _cbU_=[0,cst_BailleurPriv,caml_call1(Runtime_ocaml_Runtime[11],x$2)]} - return [6,_l3_,_cbU_]} - var LoueOuSousLoueADesTiers=[0]; - function embed_loue_ou_sous_loue_a_des_(x) - {if(0 === x[0]) - var - x$0=x[1], - _cbT_=[0,cst_Non$1,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - else - var x$1=x[1],_cbT_=[0,cst_Oui$0,embed_personne_sous_location(x$1)]; - return [6,_l4_,_cbT_]} - var Nationalite=[0]; - function embed_nationalite(x) - {if(0 === x[0]) - var - x$0=x[1], - _cbS_=[0,cst_Fran_aise,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - else - var x$1=x[1],_cbS_=[0,cst_trang_re,embed_conditions_etrangers(x$1)]; - return [6,_l5_,_cbS_]} - var ChangementLogementD8424=[0]; - function embed_changement_logement_d842(x) - {if(0 === x[0]) - var - x$0=x[1], - _cbR_=[0,cst_Changement,embed_infos_changement_logemen(x$0)]; - else - var - x$1=x[1], - _cbR_= - [0,cst_PasDeChangement,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - return [6,_l6_,_cbR_]} - var InformationsPrimeDeDemenagemen=[0]; - function embed_informations_prime_de_de(x) - {var - _cbQ_= - [0, - [0, - cst_date_naissance_troisi_me_e, - embed_date_naissance_troisieme(x[2])], - 0]; - return [7, - _l7_, - [0, - [0, - cst_nombre_enfants_na_tre_apr_, - caml_call1(Runtime_ocaml_Runtime[14],x[1])], - _cbQ_]]} - var Proprietaire=[0]; - function embed_proprietaire(x) - {var - _cbG_= - [0, - [0, - cst_op_rations_logement_voluti, - caml_call1(Runtime_ocaml_Runtime[12],x[11])], - 0], - _cbH_=[0,[0,cst_pr_t,embed_pret(x[10])],_cbG_], - _cbI_=[0,[0,cst_anciennet_logement,embed_neuf_ou_ancien(x[9])],_cbH_], - _cbJ_= - [0, - [0, - cst_situation_r822_11_13_17, - caml_call1(Runtime_ocaml_Runtime[12],x[8])], - _cbI_], - _cbK_= - [0, - [0,cst_copropri_t,caml_call1(Runtime_ocaml_Runtime[12],x[7])], - _cbJ_], - _cbL_= - [0, - [0, - cst_local_habit_premi_re_fois_, - caml_call1(Runtime_ocaml_Runtime[12],x[6])], - _cbK_], - _cbM_= - [0, - [0, - cst_type_travaux_logement_r842, - embed_type_travaux_logement_r8(x[5])], - _cbL_], - _cbN_= - [0, - [0, - cst_type_travaux_logement_d832, - embed_type_travaux_logement_d8(x[4])], - _cbM_], - _cbO_= - [0, - [0, - cst_date_entr_e_logement, - caml_call1(Runtime_ocaml_Runtime[16],x[3])], - _cbN_], - _cbP_= - [0, - [0, - cst_charges_mensuelles_pr_t, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _cbO_]; - return [7, - _l8_, - [0, - [0, - cst_mensualit_principale, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _cbP_]]} - var EligibilitePrestationsFamilial=[0]; - function embed_eligibilite_prestations_(x) - {var - _cbD_= - [0, - [0, - cst_r_gime_outre_mer_l751_1$0, - caml_call1(Runtime_ocaml_Runtime[12],x[4])], - 0], - _cbE_= - [0, - [0, - cst_conditions_hors_ge$0, - caml_call1(Runtime_ocaml_Runtime[10],x[3])], - _cbD_], - _cbF_= - [0, - [0,cst_droit_ouvert$0,caml_call1(Runtime_ocaml_Runtime[10],x[2])], - _cbE_]; - return [7, - _l9_, - [0, - [0, - cst_ge_l512_3_2$0, - caml_call1(Runtime_ocaml_Runtime[17],x[1])], - _cbF_]]} - var Demandeur=[0]; - function embed_demandeur(x) - {var - _cby_= - [0, - [0, - cst_magistrat_fonctionnaire_ce, - caml_call1(Runtime_ocaml_Runtime[12],x[6])], - 0], - _cbz_= - [0, - [0, - cst_est_non_salari_agricole_l7, - caml_call1(Runtime_ocaml_Runtime[12],x[5])], - _cby_], - _cbA_= - [0, - [0, - cst_personne_h_berg_e_centre_s, - caml_call1(Runtime_ocaml_Runtime[12],x[4])], - _cbz_], - _cbB_=[0,[0,cst_patrimoine,embed_patrimoine(x[3])],_cbA_], - _cbC_=[0,[0,cst_nationalit,embed_nationalite(x[2])],_cbB_]; - return [7, - _l__, - [0, - [0, - cst_date_naissance$0, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _cbC_]]} - var EnfantACharge=[0]; - function embed_enfant_a_charge(x) - {var - _cbq_= - [0, - [0, - cst_tudes_apprentissage_stage_, - caml_call1(Runtime_ocaml_Runtime[12],x[9])], - 0], - _cbr_= - [0, - [0,cst_situation_garde_altern_e,embed_situation_garde_alternee(x[8])], - _cbq_], - _cbs_= - [0, - [0,cst_obligation_scolaire$1,embed_situation_obligation_sco$0(x[7])], - _cbr_], - _cbt_= - [0, - [0, - cst_r_muneration_mensuelle$1, - caml_call1(Runtime_ocaml_Runtime[13],x[6])], - _cbs_], - _cbu_= - [0, - [0, - cst_date_de_naissance$1, - caml_call1(Runtime_ocaml_Runtime[16],x[5])], - _cbt_], - _cbv_= - [0, - [0, - cst_a_d_j_ouvert_droit_aux_all$1, - caml_call1(Runtime_ocaml_Runtime[12],x[4])], - _cbu_], - _cbw_= - [0, - [0, - cst_b_n_ficie_titre_personnel_$1, - caml_call1(Runtime_ocaml_Runtime[12],x[3])], - _cbv_], - _cbx_=[0,[0,cst_nationalit$0,embed_nationalite(x[2])],_cbw_]; - return [7, - _l$_, - [0, - [0, - cst_identifiant$1, - caml_call1(Runtime_ocaml_Runtime[14],x[1])], - _cbx_]]} - var Location=[0]; - function embed_location(x) - {var - _cbj_= - [0, - [0, - cst_changement_logement_d842_4, - embed_changement_logement_d842(x[8])], - 0], - _cbk_= - [0, - [0, - cst_logement_meubl_d842_2$0, - caml_call1(Runtime_ocaml_Runtime[12],x[7])], - _cbj_], - _cbl_= - [0, - [0, - cst_g_es_ou_handicap_adultes_h, - caml_call1(Runtime_ocaml_Runtime[12],x[6])], - _cbk_], - _cbm_= - [0, - [0,cst_colocation,caml_call1(Runtime_ocaml_Runtime[12],x[5])], - _cbl_], - _cbn_= - [0, - [0, - cst_logement_est_chambre, - caml_call1(Runtime_ocaml_Runtime[12],x[4])], - _cbm_], - _cbo_= - [0, - [0, - cst_b_n_ficiaire_aide_adulte_o$0, - caml_call1(Runtime_ocaml_Runtime[12],x[3])], - _cbn_], - _cbp_= - [0, - [0,cst_loyer_principal,caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _cbo_]; - return [7,_ma_,[0,[0,cst_bailleur,embed_type_bailleur(x[1])],_cbp_]]} - var PersonneACharge=[0]; - function embed_personne_a_charge(x) - {if(0 === x[0]) - var x$0=x[1],_cbi_=[0,cst_Enfant_Charge,embed_enfant_a_charge(x$0)]; - else - var - x$1=x[1], - _cbi_=[0,cst_AutrePersonne_Charge,embed_autre_personne_a_charge(x$1)]; - return [6,_mb_,_cbi_]} - var CategorieCalculAPL=[0]; - function embed_categorie_calcul_a_p_l(x) - {switch(x[0]) - {case 0:var x$0=x[1],_cbh_=[0,cst_Location,embed_location(x$0)];break; - case 1: - var x$1=x[1],_cbh_=[0,cst_AccessionPropri_t,embed_proprietaire(x$1)]; - break; - default: - var x$2=x[1],_cbh_=[0,cst_LogementFoyer,embed_logement_foyer(x$2)]} - return [6,_mc_,_cbh_]} - var ModeOccupation=[0]; - function embed_mode_occupation(x) - {switch(x[0]) - {case 0:var x$0=x[1],_cbg_=[0,cst_Locataire,embed_location(x$0)];break; - case 1: - var - x$1=x[1], - _cbg_=[0,cst_R_sidentLogementFoyer,embed_logement_foyer(x$1)]; - break; - case 2: - var - x$2=x[1], - _cbg_=[0,cst_AccessionPropri_t_LocalUsa,embed_proprietaire(x$2)]; - break; - case 3: - var x$3=x[1],_cbg_=[0,cst_SousLocataire,embed_location(x$3)];break; - default: - var x$4=x[1],_cbg_=[0,cst_LocationAccession,embed_proprietaire(x$4)]} - return [6,_md_,_cbg_]} - var EligibiliteAidesPersonnelleLog=[0]; - function embed_eligibilite_aides_person(x) - {var - _cbc_= - [0, - [0,cst_condition_2_r823_4,caml_call1(Runtime_ocaml_Runtime[10],x[5])], - 0], - _cbd_= - [0, - [0, - cst_coefficents_enfants_garde_$2, - caml_call2(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15],x[4])], - _cbc_], - _cbe_= - [0, - [0, - cst_nombre_personnes_charge_pr$1, - caml_call1(Runtime_ocaml_Runtime[14],x[3])], - _cbd_], - _cbf_= - [0, - [0,cst_ligibilit$3,caml_call1(Runtime_ocaml_Runtime[12],x[2])], - _cbe_]; - return [7, - _me_, - [0, - [0, - cst_date_courante$0, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _cbf_]]} - var Logement=[0]; - function embed_logement(x) - {var - _ca6_=[0,[0,cst_zone,embed_zone_d_habitation(x[9])],0], - _ca7_= - [0, - [0,cst_surface_m_carr_s,caml_call1(Runtime_ocaml_Runtime[14],x[8])], - _ca6_], - _ca8_= - [0, - [0, - cst_logement_decent_l89_462, - caml_call1(Runtime_ocaml_Runtime[12],x[7])], - _ca7_], - _ca9_=[0,[0,cst_usufruit,embed_parent_ou_autre(x[6])],_ca8_], - _ca__= - [0, - [0, - cst_lou_ou_sous_lou_des_tiers, - embed_loue_ou_sous_loue_a_des_(x[5])], - _ca9_], - _ca$_=[0,[0,cst_propri_taire,embed_parent_ou_autre(x[4])],_ca__], - _cba_=[0,[0,cst_mode_occupation,embed_mode_occupation(x[3])],_ca$_], - _cbb_= - [0, - [0, - cst_est_ehpad_ou_maison_autono, - caml_call1(Runtime_ocaml_Runtime[12],x[2])], - _cba_]; - return [7, - _mf_, - [0, - [0, - cst_r_sidence_principale, - caml_call1(Runtime_ocaml_Runtime[12],x[1])], - _cbb_]]} - var Menage=[0]; - function embed_menage(x) - {var - _caY_=[0,[0,cst_r_sidence,embed_collectivite$0(x[9])],0], - _caZ_= - [0, - [0, - cst_personnes_g_es_handicap_es, - caml_call1(Runtime_ocaml_Runtime[12],x[8])], - _caY_], - _ca0_= - [0, - [0, - cst_enfant_na_tre_apr_s_quatri, - caml_call1(Runtime_ocaml_Runtime[12],x[7])], - _caZ_], - _ca1_= - [0, - [0, - cst_condition_rattach_foyer_fi, - caml_call1(Runtime_ocaml_Runtime[12],x[6])], - _ca0_], - _ca2_= - [0,[0,cst_situation_familiale,embed_situation_familiale(x[5])],_ca1_], - _ca3_= - [0, - [0, - cst_nombre_autres_occupants_lo, - caml_call1(Runtime_ocaml_Runtime[14],x[4])], - _ca2_], - _ca4_= - [0, - [0, - cst_personnes_charge, - caml_call2(Runtime_ocaml_Runtime[18],embed_personne_a_charge,x[3])], - _ca3_], - _ca5_=[0,[0,cst_logement,embed_logement(x[2])],_ca4_]; - return [7, - _mg_, - [0, - [0, - cst_prestations_re_ues, - caml_call2 - (Runtime_ocaml_Runtime[18],embed_prestation_recue,x[1])], - _ca5_]]} - var EligibiliteAidesPersonnelleLog$0=[0]; - function embed_eligibilite_aides_person$0(x) - {var - _caT_= - [0, - [0, - cst_date_entr_e_vigueur_diff_r, - caml_call1(Runtime_ocaml_Runtime[10],x[6])], - 0], - _caU_= - [0, - [0, - cst_condition_logement_surface, - caml_call1(Runtime_ocaml_Runtime[10],x[5])], - _caT_], - _caV_= - [0, - [0, - cst_condition_logement_r_siden, - caml_call1(Runtime_ocaml_Runtime[10],x[4])], - _caU_], - _caW_= - [0, - [0,cst_date_courante_in$5,caml_call1(Runtime_ocaml_Runtime[16],x[3])], - _caV_], - _caX_=[0,[0,cst_demandeur_in,embed_demandeur(x[2])],_caW_]; - return [7,_mh_,[0,[0,cst_m_nage_in,embed_menage(x[1])],_caX_]]} - var EligibiliteAidePersonnaliseeLo$0=[0]; - function embed_eligibilite_aide_personn$0(x) - {var - _caR_= - [0, - [0,cst_date_courante_in$6,caml_call1(Runtime_ocaml_Runtime[16],x[3])], - 0], - _caS_=[0,[0,cst_demandeur_in$0,embed_demandeur(x[2])],_caR_]; - return [7,_mi_,[0,[0,cst_m_nage_in$0,embed_menage(x[1])],_caS_]]} - var EligibiliteAllocationLogementI=[0]; - function embed_eligibilite_allocation_l$0(x) - {var - _caO_= - [0, - [0, - cst_b_n_ficie_aide_personnalis, - caml_call1(Runtime_ocaml_Runtime[12],x[4])], - 0], - _caP_=[0,[0,cst_demandeur_in$1,embed_demandeur(x[3])],_caO_], - _caQ_=[0,[0,cst_m_nage_in$1,embed_menage(x[2])],_caP_]; - return [7, - _mj_, - [0, - [0, - cst_date_courante_in$7, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _caQ_]]} - var EligibilitePrimeDeDemenagement$0=[0]; - function embed_eligibilite_prime_de_dem$0(x) - {var - _caJ_= - [0, - [0, - cst_d_penses_justifi_es_r_elle, - caml_call1(Runtime_ocaml_Runtime[13],x[6])], - 0], - _caK_= - [0, - [0,cst_date_courante_in$8,caml_call1(Runtime_ocaml_Runtime[16],x[5])], - _caJ_], - _caL_=[0,[0,cst_demandeur_in$2,embed_demandeur(x[4])],_caK_], - _caM_=[0,[0,cst_m_nage_in$2,embed_menage(x[3])],_caL_], - _caN_= - [0, - [0, - cst_date_emm_nagement_in, - caml_call1(Runtime_ocaml_Runtime[16],x[2])], - _caM_]; - return [7, - _mk_, - [0, - [0,cst_informations_in,embed_informations_prime_de_de(x[1])], - _caN_]]} - var RessourcesAidesPersonnelleLoge$0=[0]; - function embed_ressources_aides_personn$0(x) - {var - _cax_= - [0, - [0, - cst_ressources_m_nage_arrondie, - caml_call1(Runtime_ocaml_Runtime[13],x[13])], - 0], - _cay_= - [0, - [0, - cst_paiement_logement_distinct, - embed_paiement_logement_distin(x[12])], - _cax_], - _caz_= - [0, - [0, - cst_date_demande_ou_reexamen_d, - caml_call1(Runtime_ocaml_Runtime[16],x[11])], - _cay_], - _caA_= - [0, - [0, - cst_demandeur_poursuit_des_tud, - caml_call1(Runtime_ocaml_Runtime[12],x[10])], - _caz_], - _caB_= - [0, - [0, - cst_condition_ge_bourse_enseig, - caml_call1(Runtime_ocaml_Runtime[12],x[9])], - _caA_], - _caC_=[0,[0,cst_mode_occupation_in,embed_mode_occupation(x[8])],_caB_], - _caD_= - [0, - [0,cst_situation_familiale_in,embed_situation_familiale(x[7])], - _caC_], - _caE_= - [0, - [0, - cst_personnes_charge_in, - caml_call2(Runtime_ocaml_Runtime[18],embed_personne_a_charge,x[6])], - _caD_], - _caF_= - [0, - [0, - cst_conjoint_exerce_activit_r_, - caml_call1(Runtime_ocaml_Runtime[12],x[5])], - _caE_], - _caG_= - [0, - [0, - cst_demandeur_exerce_activit_r, - caml_call1(Runtime_ocaml_Runtime[12],x[4])], - _caF_], - _caH_= - [0, - [0, - cst_personnes_vivant_habituell, - caml_call2 - (Runtime_ocaml_Runtime[18],embed_personne_vivant_habituel,x[3])], - _caG_], - _caI_= - [0, - [0, - cst_ressources_conjoint_in, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _caH_]; - return [7, - _ml_, - [0, - [0, - cst_ressources_demandeur_in, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _caI_]]} - var ContributionsSocialesAidesPers$0=[0]; - function embed_contributions_sociales_a$0(x) - {return [7, - _mm_, - [0, - [0, - cst_date_courante_in$9, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - 0]]} - var CalculAidePersonnaliseeLogemen$3=[0]; - function embed_calcul_aide_personnalise$3(x) - {var - _cak_=[0,[0,cst_r_sidence_in$2,embed_collectivite$0(x[14])],0], - _cal_= - [0, - [0, - cst_logement_meubl_d842_2_in, - caml_call1(Runtime_ocaml_Runtime[12],x[13])], - _cak_], - _cam_= - [0, - [0, - cst_r_duction_loyer_solidarit_$0, - caml_call1(Runtime_ocaml_Runtime[13],x[12])], - _cal_], - _can_= - [0, - [0,cst_colocation_in,caml_call1(Runtime_ocaml_Runtime[12],x[11])], - _cam_], - _cao_= - [0,[0,cst_type_aide_in,embed_type_aides_personnelle_l(x[10])],_can_], - _cap_= - [0, - [0, - cst_g_es_ou_handicap_adultes_h$0, - caml_call1(Runtime_ocaml_Runtime[12],x[9])], - _cao_], - _caq_= - [0, - [0, - cst_logement_est_chambre_in, - caml_call1(Runtime_ocaml_Runtime[12],x[8])], - _cap_], - _car_=[0,[0,cst_zone_in,embed_zone_d_habitation(x[7])],_caq_], - _cas_= - [0, - [0, - cst_situation_familiale_calcul, - embed_situation_familiale_calc(x[6])], - _car_], - _cat_= - [0, - [0, - cst_nombre_personnes_charge_in, - caml_call1(Runtime_ocaml_Runtime[14],x[5])], - _cas_], - _cau_= - [0, - [0, - cst_date_courante_in$10, - caml_call1(Runtime_ocaml_Runtime[16],x[4])], - _cat_], - _cav_= - [0, - [0, - cst_b_n_ficiaire_aide_adulte_o$1, - caml_call1(Runtime_ocaml_Runtime[12],x[3])], - _cau_], - _caw_= - [0, - [0, - cst_ressources_m_nage_arrondie$0, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _cav_]; - return [7, - _mn_, - [0, - [0, - cst_loyer_principal_base_in, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _caw_]]} - var CalculEquivalenceLoyerMinimale$0=[0]; - function embed_calcul_equivalence_loyer$0(x) - {var - _cah_= - [0, - [0, - cst_n_nombre_parts_d832_25_in, - caml_call1(Runtime_ocaml_Runtime[15],x[4])], - 0], - _cai_= - [0, - [0, - cst_condition_2_du_832_25_in, - caml_call1(Runtime_ocaml_Runtime[12],x[3])], - _cah_], - _caj_= - [0, - [0, - cst_ressources_m_nage_arrondie$1, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _cai_]; - return [7, - _mo_, - [0, - [0, - cst_date_courante_in$11, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _caj_]]} - var CalculNombrePartLogementFoyerI=[0]; - function embed_calcul_nombre_part_logem$0(x) - {var - _cad_= - [0, - [0, - cst_limitation_majoration_pers, - caml_call1(Runtime_ocaml_Runtime[10],x[5])], - 0], - _cae_=[0,[0,cst_r_sidence_in$3,embed_collectivite$0(x[4])],_cad_], - _caf_= - [0, - [0, - cst_situation_familiale_calcul$0, - embed_situation_familiale_calc(x[3])], - _cae_], - _cag_= - [0, - [0, - cst_nombre_personnes_charge_in$0, - caml_call1(Runtime_ocaml_Runtime[14],x[2])], - _caf_]; - return [7, - _mp_, - [0, - [0, - cst_condition_2_du_832_25_in$0, - caml_call1(Runtime_ocaml_Runtime[12],x[1])], - _cag_]]} - var CalculAidePersonnaliseeLogemen$4=[0]; - function embed_calcul_aide_personnalise$4(x) - {var - _b$4_= - [0, - [0, - cst_n_nombre_parts_d832_25_in$0, - caml_call1(Runtime_ocaml_Runtime[10],x[12])], - 0], - _b$5_= - [0, - [0, - cst_limitation_majoration_pers$0, - caml_call1(Runtime_ocaml_Runtime[10],x[11])], - _b$4_], - _b$6_= - [0, - [0, - cst_condition_2_du_832_25_in$1, - caml_call1(Runtime_ocaml_Runtime[10],x[10])], - _b$5_], - _b$7_=[0,[0,cst_r_sidence_in$4,embed_collectivite$0(x[9])],_b$6_], - _b$8_= - [0, - [0,cst_redevance_in,caml_call1(Runtime_ocaml_Runtime[13],x[8])], - _b$7_], - _b$9_= - [0, - [0, - cst_date_courante_in$12, - caml_call1(Runtime_ocaml_Runtime[16],x[7])], - _b$8_], - _b$__=[0,[0,cst_zone_in$0,embed_zone_d_habitation(x[6])],_b$9_], - _b$$_= - [0, - [0, - cst_situation_familiale_calcul$1, - embed_situation_familiale_calc(x[5])], - _b$__], - _caa_= - [0, - [0, - cst_nombre_personnes_charge_in$1, - caml_call1(Runtime_ocaml_Runtime[14],x[4])], - _b$$_], - _cab_= - [0, - [0, - cst_ressources_m_nage_arrondie$2, - caml_call1(Runtime_ocaml_Runtime[13],x[3])], - _caa_], - _cac_= - [0, - [0, - cst_date_conventionnement_in, - caml_call1(Runtime_ocaml_Runtime[16],x[2])], - _cab_]; - return [7, - _mq_, - [0, - [0,cst_type_logement_foyer_in,embed_type_logement_foyer(x[1])], - _cac_]]} - var CalculNombrePartsAccessionProp$0=[0]; - function embed_calcul_nombre_parts_acce$0(x) - {var - _b$3_= - [0, - [0, - cst_situation_familiale_calcul$2, - embed_situation_familiale_calc(x[2])], - 0]; - return [7, - _mr_, - [0, - [0, - cst_nombre_personnes_charge_in$2, - caml_call1(Runtime_ocaml_Runtime[14],x[1])], - _b$3_]]} - var CalculAidePersonnaliseeLogemen$5=[0]; - function embed_calcul_aide_personnalise$5(x) - {var - _b$Q_= - [0, - [0, - cst_date_courante_in$13, - caml_call1(Runtime_ocaml_Runtime[16],x[14])], - 0], - _b$R_= - [0,[0,cst_anciennet_logement_in,embed_neuf_ou_ancien(x[13])],_b$Q_], - _b$S_=[0,[0,cst_type_pr_t_in,embed_type_pret(x[12])],_b$R_], - _b$T_=[0,[0,cst_zone_in$1,embed_zone_d_habitation(x[11])],_b$S_], - _b$U_= - [0, - [0, - cst_situation_r822_11_13_17_in, - caml_call1(Runtime_ocaml_Runtime[12],x[10])], - _b$T_], - _b$V_= - [0, - [0,cst_copropri_t_in,caml_call1(Runtime_ocaml_Runtime[12],x[9])], - _b$U_], - _b$W_= - [0, - [0, - cst_date_entr_e_logement_in, - caml_call1(Runtime_ocaml_Runtime[16],x[8])], - _b$V_], - _b$X_= - [0, - [0, - cst_local_habit_premi_re_fois_$0, - caml_call1(Runtime_ocaml_Runtime[12],x[7])], - _b$W_], - _b$Y_= - [0, - [0, - cst_date_signature_pr_t_in, - caml_call1(Runtime_ocaml_Runtime[16],x[6])], - _b$X_], - _b$Z_= - [0, - [0,cst_type_travaux_logement_in,embed_type_travaux_logement_d8(x[5])], - _b$Y_], - _b$0_= - [0, - [0, - cst_situation_familiale_calcul$3, - embed_situation_familiale_calc(x[4])], - _b$Z_], - _b$1_= - [0, - [0, - cst_nombre_personnes_charge_in$3, - caml_call1(Runtime_ocaml_Runtime[14],x[3])], - _b$0_], - _b$2_= - [0, - [0, - cst_ressources_m_nage_arrondie$3, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _b$1_]; - return [7, - _ms_, - [0, - [0, - cst_mensualit_principale_in, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _b$2_]]} - var CalculAidePersonnaliseeLogemen$6=[0]; - function embed_calcul_aide_personnalise$6(x) - {var - _b$J_=[0,[0,cst_r_sidence_in$5,embed_collectivite$0(x[8])],0], - _b$K_= - [0, - [0, - cst_date_courante_in$14, - caml_call1(Runtime_ocaml_Runtime[16],x[7])], - _b$J_], - _b$L_=[0,[0,cst_zone_in$2,embed_zone_d_habitation(x[6])],_b$K_], - _b$M_= - [0, - [0, - cst_nombre_personnes_charge_in$4, - caml_call1(Runtime_ocaml_Runtime[14],x[5])], - _b$L_], - _b$N_= - [0, - [0,cst_situation_familiale_in$0,embed_situation_familiale(x[4])], - _b$M_], - _b$O_= - [0, - [0, - cst_ressources_m_nage_sans_arr, - caml_call1(Runtime_ocaml_Runtime[13],x[3])], - _b$N_], - _b$P_= - [0,[0,cst_type_aide_in$0,embed_type_aides_personnelle_l(x[2])],_b$O_]; - return [7, - _mt_, - [0, - [0,cst_mode_occupation_in$0,embed_mode_occupation(x[1])], - _b$P_]]} - var CalculAllocationLogementLocati$0=[0]; - function embed_calcul_allocation_logeme$3(x) - {var - _b$v_= - [0, - [0, - cst_changement_logement_d842_4$0, - embed_changement_logement_d842(x[15])], - 0], - _b$w_=[0,[0,cst_r_sidence_in$6,embed_collectivite$0(x[14])],_b$v_], - _b$x_= - [0, - [0, - cst_logement_meubl_d842_2_in$0, - caml_call1(Runtime_ocaml_Runtime[12],x[13])], - _b$w_], - _b$y_= - [0, - [0, - cst_r_duction_loyer_solidarit_$1, - caml_call1(Runtime_ocaml_Runtime[13],x[12])], - _b$x_], - _b$z_= - [0, - [0,cst_colocation_in$0,caml_call1(Runtime_ocaml_Runtime[12],x[11])], - _b$y_], - _b$A_= - [0,[0,cst_type_aide_in$1,embed_type_aides_personnelle_l(x[10])],_b$z_], - _b$B_= - [0, - [0, - cst_g_es_ou_handicap_adultes_h$1, - caml_call1(Runtime_ocaml_Runtime[12],x[9])], - _b$A_], - _b$C_= - [0, - [0, - cst_logement_est_chambre_in$0, - caml_call1(Runtime_ocaml_Runtime[12],x[8])], - _b$B_], - _b$D_=[0,[0,cst_zone_in$3,embed_zone_d_habitation(x[7])],_b$C_], - _b$E_= - [0, - [0, - cst_situation_familiale_calcul$4, - embed_situation_familiale_calc(x[6])], - _b$D_], - _b$F_= - [0, - [0, - cst_nombre_personnes_charge_in$5, - caml_call1(Runtime_ocaml_Runtime[14],x[5])], - _b$E_], - _b$G_= - [0, - [0, - cst_date_courante_in$15, - caml_call1(Runtime_ocaml_Runtime[16],x[4])], - _b$F_], - _b$H_= - [0, - [0, - cst_b_n_ficiaire_aide_adulte_o$2, - caml_call1(Runtime_ocaml_Runtime[12],x[3])], - _b$G_], - _b$I_= - [0, - [0, - cst_ressources_m_nage_arrondie$4, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _b$H_]; - return [7, - _mu_, - [0, - [0, - cst_loyer_principal_in, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _b$I_]]} - var CalculAllocationLogementAccess$0=[0]; - function embed_calcul_allocation_logeme$4(x) - {var - _b$h_= - [0, - [0, - cst_op_rations_logement_voluti$0, - caml_call1(Runtime_ocaml_Runtime[12],x[15])], - 0], - _b$i_= - [0, - [0,cst_copropri_t_in$0,caml_call1(Runtime_ocaml_Runtime[12],x[14])], - _b$h_], - _b$j_= - [0, - [0, - cst_charges_mensuelles_pr_t_in, - caml_call1(Runtime_ocaml_Runtime[13],x[13])], - _b$i_], - _b$k_= - [0, - [0, - cst_date_entr_e_logement_in$0, - caml_call1(Runtime_ocaml_Runtime[16],x[12])], - _b$j_], - _b$l_= - [0, - [0, - cst_local_habit_premi_re_fois_$1, - caml_call1(Runtime_ocaml_Runtime[12],x[11])], - _b$k_], - _b$m_= - [0, - [0, - cst_type_travaux_logement_in$0, - embed_type_travaux_logement_r8(x[10])], - _b$l_], - _b$n_= - [0, - [0, - cst_date_signature_pr_t_in$0, - caml_call1(Runtime_ocaml_Runtime[16],x[9])], - _b$m_], - _b$o_= - [0, - [0, - cst_situation_r822_11_13_17_in$0, - caml_call1(Runtime_ocaml_Runtime[12],x[8])], - _b$n_], - _b$p_= - [0, - [0, - cst_mensualit_principale_in$0, - caml_call1(Runtime_ocaml_Runtime[13],x[7])], - _b$o_], - _b$q_= - [0, - [0, - cst_date_courante_in$16, - caml_call1(Runtime_ocaml_Runtime[16],x[6])], - _b$p_], - _b$r_=[0,[0,cst_r_sidence_in$7,embed_collectivite$0(x[5])],_b$q_], - _b$s_=[0,[0,cst_zone_in$4,embed_zone_d_habitation(x[4])],_b$r_], - _b$t_= - [0, - [0, - cst_situation_familiale_calcul$5, - embed_situation_familiale_calc(x[3])], - _b$s_], - _b$u_= - [0, - [0, - cst_nombre_personnes_charge_in$6, - caml_call1(Runtime_ocaml_Runtime[14],x[2])], - _b$t_]; - return [7, - _mv_, - [0, - [0, - cst_ressources_m_nage_arrondie$5, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _b$u_]]} - var CalculAllocationLogementFoyerI=[0]; - function embed_calcul_allocation_logeme$5(x) - {var - _b___= - [0, - [0, - cst_cat_gorie_quivalence_loyer$0, - embed_categorie_equivalence_lo(x[10])], - 0], - _b_$_= - [0, - [0, - cst_date_courante_in$17, - caml_call1(Runtime_ocaml_Runtime[16],x[9])], - _b___], - _b$a_=[0,[0,cst_zone_in$5,embed_zone_d_habitation(x[8])],_b_$_], - _b$b_= - [0, - [0, - cst_situation_familiale_calcul$6, - embed_situation_familiale_calc(x[7])], - _b$a_], - _b$c_= - [0, - [0, - cst_nombre_personnes_charge_in$7, - caml_call1(Runtime_ocaml_Runtime[14],x[6])], - _b$b_], - _b$d_= - [0, - [0, - cst_ressources_m_nage_arrondie$6, - caml_call1(Runtime_ocaml_Runtime[13],x[5])], - _b$c_], - _b$e_= - [0, - [0,cst_redevance_in$0,caml_call1(Runtime_ocaml_Runtime[13],x[4])], - _b$d_], - _b$f_=[0,[0,cst_r_sidence_in$8,embed_collectivite$0(x[3])],_b$e_], - _b$g_= - [0, - [0, - cst_date_conventionnement_in$0, - caml_call1(Runtime_ocaml_Runtime[16],x[2])], - _b$f_]; - return [7, - _mw_, - [0, - [0, - cst_type_logement_foyer_in$0, - embed_type_logement_foyer(x[1])], - _b$g_]]} - var CalculAllocationLogementIn=[0]; - function embed_calcul_allocation_logeme$6(x) - {var - _b_3_=[0,[0,cst_r_sidence_in$9,embed_collectivite$0(x[8])],0], - _b_4_= - [0,[0,cst_type_aide_in$2,embed_type_aides_personnelle_l(x[7])],_b_3_], - _b_5_= - [0, - [0, - cst_date_courante_in$18, - caml_call1(Runtime_ocaml_Runtime[16],x[6])], - _b_4_], - _b_6_=[0,[0,cst_zone_in$6,embed_zone_d_habitation(x[5])],_b_5_], - _b_7_= - [0, - [0, - cst_nombre_personnes_charge_in$8, - caml_call1(Runtime_ocaml_Runtime[14],x[4])], - _b_6_], - _b_8_= - [0, - [0,cst_situation_familiale_in$1,embed_situation_familiale(x[3])], - _b_7_], - _b_9_= - [0, - [0, - cst_ressources_m_nage_sans_arr$0, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _b_8_]; - return [7, - _mx_, - [0, - [0,cst_mode_occupation_in$1,embed_mode_occupation(x[1])], - _b_9_]]} - var OuvertureDroitsRetraiteIn=[0]; - function embed_ouverture_droits_retrait$0(x) - {return [7, - _my_, - [0, - [0, - cst_date_naissance_assur_in, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - 0]]} - var ImpayeDepenseLogementIn=[0]; - function embed_impaye_depense_logement_(x) - {var - _b_Y_= - [0, - [0,cst_montant_dette_in,caml_call1(Runtime_ocaml_Runtime[13],x[6])], - 0], - _b_Z_= - [0,[0,cst_d_pense_logement_in,embed_depense_logement(x[5])],_b_Y_], - _b_0_= - [0, - [0,cst_montant_charges_in,caml_call1(Runtime_ocaml_Runtime[13],x[4])], - _b_Z_], - _b_1_= - [0, - [0,cst_montant_apl_in,caml_call1(Runtime_ocaml_Runtime[13],x[3])], - _b_0_], - _b_2_=[0,[0,cst_aide_vers_e_in,embed_versement_a(x[2])],_b_1_]; - return [7, - _mz_, - [0, - [0,cst_mode_occupation_in$2,embed_mode_occupation(x[1])], - _b_2_]]} - var CalculetteAidesAuLogementIn=[0]; - function embed_calculette_aides_au_loge$1(x) - {var - _b_V_= - [0, - [0, - cst_ressources_m_nage_prises_e, - caml_call1(Runtime_ocaml_Runtime[13],x[4])], - 0], - _b_W_= - [0, - [0, - cst_date_courante_in$19, - caml_call1(Runtime_ocaml_Runtime[16],x[3])], - _b_V_], - _b_X_=[0,[0,cst_demandeur_in$3,embed_demandeur(x[2])],_b_W_]; - return [7,_mA_,[0,[0,cst_m_nage_in$3,embed_menage(x[1])],_b_X_]]} - var CalculetteAidesAuLogementGarde$0=[0]; - function embed_calculette_aides_au_loge$2(x) - {var - _b_S_= - [0, - [0, - cst_ressources_m_nage_prises_e$0, - caml_call1(Runtime_ocaml_Runtime[13],x[4])], - 0], - _b_T_= - [0, - [0, - cst_date_courante_in$20, - caml_call1(Runtime_ocaml_Runtime[16],x[3])], - _b_S_], - _b_U_=[0,[0,cst_demandeur_in$4,embed_demandeur(x[2])],_b_T_]; - return [7,_mB_,[0,[0,cst_m_nage_in$4,embed_menage(x[1])],_b_U_]]} - var BaseMensuelleAllocationsFamili$2=[0]; - function embed_base_mensuelle_allocatio$2(x) - {return [7, - _mC_, - [0, - [0, - cst_date_courante_in$21, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - 0]]} - var VerificationAgeInferieurOuEgal$2=[0]; - function embed_verification_age_inferie$2(x) - {var - _b_Q_= - [0,[0,cst_ann_es_in$1,caml_call1(Runtime_ocaml_Runtime[17],x[3])],0], - _b_R_= - [0, - [0, - cst_date_courante_in$22, - caml_call1(Runtime_ocaml_Runtime[16],x[2])], - _b_Q_]; - return [7, - _mD_, - [0, - [0, - cst_date_naissance_in$1, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _b_R_]]} - var VerificationAgeSuperieurAIn$0=[0]; - function embed_verification_age_superie$2(x) - {var - _b_O_= - [0,[0,cst_ann_es_in$2,caml_call1(Runtime_ocaml_Runtime[17],x[3])],0], - _b_P_= - [0, - [0, - cst_date_courante_in$23, - caml_call1(Runtime_ocaml_Runtime[16],x[2])], - _b_O_]; - return [7, - _mE_, - [0, - [0, - cst_date_naissance_in$2, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _b_P_]]} - var SmicIn$0=[0]; - function embed_smic_in$0(x) - {var _b_N_=[0,[0,cst_r_sidence_in$10,embed_collectivite$0(x[2])],0]; - return [7, - _mF_, - [0, - [0, - cst_date_courante_in$24, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _b_N_]]} - var EligibilitePrestationsFamilial$0=[0]; - function embed_eligibilite_prestations_$0(x) - {var - _b_K_= - [0, - [0,cst_ge_l512_3_2_in,caml_call1(Runtime_ocaml_Runtime[10],x[4])], - 0], - _b_L_=[0,[0,cst_r_sidence_in$11,embed_collectivite$0(x[3])],_b_K_], - _b_M_= - [0, - [0, - cst_prestation_courante_in$0, - embed_element_prestations_fami$0(x[2])], - _b_L_]; - return [7, - _mG_, - [0, - [0, - cst_date_courante_in$25, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _b_M_]]} - function contributions_sociales_aides_p(contributions_sociales_aides_p) - {var date_courante=contributions_sociales_aides_p[1]; - try - {var - _b_n_=function(param){return 0}, - _b_o_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_mI_,1)}, - _b_p_= + allocation_familiales_avril200$3, + enfant_le_plus_age, + verification_age_inferieur_ou_$3, + verification_age_superieur_a, + smic, + base_mensuelle_allocations_fam$3, + prestations_familiales, + allocations_familiales, + interface_allocations_familial$3]; + runtime.caml_register_global + (374, + Law_source_Allocations_familia$0, + "Law_source__Allocations_familiales_api_web"); + return; + } + (globalThis)); + +//# 12185 "law_source/.law_source.objs/jsoo/default/law_source.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_Archives_de_l_arr_t_du_27_ = + "Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement", + cst_Arr_t_du_19_avril_2022_rel = + "Arr\xc3\xaat\xc3\xa9 du 19 avril 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance", + cst_Arr_t_du_27_septembre_2019 = + "Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement", + cst_Arr_t_du_29_juillet_2022_r = + "Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance", + cst_Articles_en_vigueur_partir = + "Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A", + cst_Articles_en_vigueur_partir$2 = + "Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A", + cst_Articles_en_vigueur_partir$3 = + "Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A", + cst_Articles_en_vigueur_partir$1 = + "Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A", + cst_Articles_en_vigueur_partir$0 = + "Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A", + cst_AutrePersonne_Charge$0 = "AutrePersonne\xc3\x80Charge", + cst_Calcul_du_montant_de_l_aid = + "Calcul du montant de l'aide personnalis\xc3\xa9e au logement", + cst_CalculAidePersonnalis_eLog = "CalculAidePersonnalis\xc3\xa9eLogement", + cst_CalculAidePersonnalis_eLog$2 = + "CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9", + cst_CalculAidePersonnalis_eLog$1 = + "CalculAidePersonnalis\xc3\xa9eLogementFoyer", + cst_CalculAidePersonnalis_eLog$0 = + "CalculAidePersonnalis\xc3\xa9eLogementLocatif", + cst_CalculAllocationLogementAc = + "CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9", + cst_CalculNombrePartsAccession = + "CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9", + cst_Calculette_avec_garde_alte = "Calculette avec garde altern\xc3\xa9e", + cst_CalculetteAidesAuLogementG = + "CalculetteAidesAuLogementGardeAltern\xc3\xa9e", + cst_Calcul_quivalenceLoyerMini = "Calcul\xc3\x89quivalenceLoyerMinimale", + cst_Capitre_I_Guadeloupe_Guyan = + "Capitre I : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte", + cst_Chapitre_2_Modalit_s_de_li = + "Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement", + cst_Chapitre_5_Allocation_de_s = + "Chapitre 5 : Allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es", + cst_Chapitre_II_Conditions_g_n = + "Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution", + cst_Chapitre_II_Modalit_s_de_l = + "Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement", + cst_Chapitre_II_Saint_Barth_le = + "Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin", + cst_Chapitre_III_Modalit_s_de_ = + "Chapitre III : Modalit\xc3\xa9s de liquidation et de versement", + cst_Chapitre_IV_Calcul_de_l_ai = + "Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession", + cst_Chapitre_IV_Impay_s_de_d_p = + "Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement", + cst_Chapitre_Ier_Guadeloupe_Gu = + "Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte", + cst_Chapitre_V_Calcul_de_l_aid = + "Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer", + cst_Code_de_la_s_curit_sociale = + "Code de la s\xc3\xa9curit\xc3\xa9 sociale", + cst_Compl_mentFamilial$1 = "Compl\xc3\xa9mentFamilial", + cst_Date_d_ouverture_des_droit = + "Date d'ouverture des droits \xc3\xa0 la retraite", + cst_D_clarations_des_champs_d_ = + "D\xc3\xa9clarations des champs d'application", + cst_D_cret_n_2018_1173_du_19_d = + "D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance", + cst_D_cret_n_2019_1387_du_18_d = + "D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance", + cst_D_cret_n_2020_1598_du_16_d = + "D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance", + cst_D_cret_n_2021_1741_du_22_d = + "D\xc3\xa9cret n\xc2\xb0 2021-1741 du 22 d\xc3\xa9cembre 2021 portant rel\xc3\xa8vement du salaire minimum de croissance", + cst_D_cret_n_2022_1608_du_22_d = + "D\xc3\xa9cret n\xc2\xb0 2022-1608 du 22 d\xc3\xa9cembre 2022 portant rel\xc3\xa8vement du salaire minimum de croissance", + cst_Enfant_Charge$0 = "Enfant\xc3\x80Charge", + cst_Impay_D_penseLogement = "Impay\xc3\xa9D\xc3\xa9penseLogement", + cst_Livre_5_Prestations_famili = + "Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es", + cst_Livre_7_R_gimes_divers_Dis = + "Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses", + cst_Livre_I_G_n_ralit_s_Dispos = + "Livre I : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s - Dispositions communes \xc3\xa0 tout ou partie des r\xc3\xa9gimes de base", + cst_Livre_VIII_Allocations_aux = + "Livre VIII : Allocations aux personnes \xc3\xa2g\xc3\xa9es - Allocation aux adultes handicap\xc3\xa9s - Aides \xc3\xa0 l'emploi pour la garde des jeunes enfants - Protection compl\xc3\xa9mentaire en mati\xc3\xa8re de sant\xc3\xa9", + cst_Montants_revaloris_s_de_l_ = + "Montants revaloris\xc3\xa9s de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es", + cst_Ordonnance_n_96_50_du_24_j = + "Ordonnance n\xc2\xb0 96-50 du 24 janvier 1996 relative au remboursement de la dette sociale", + cst_Paragraphe_1_Information_e = + "Paragraphe 1 : Information et simplification des d\xc3\xa9marches des assur\xc3\xa9s.", + cst_Partie_l_gislative = "Partie l\xc3\xa9gislative", + cst_Partie_r_glementaire = "Partie r\xc3\xa9glementaire", + cst_Partie_r_glementaire_D_cre$0 = + "Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat", + cst_Partie_r_glementaire_D_cre = + "Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples", + cst_Quantification_des_impay_s = + "Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement", + cst_R_glement_CE_n_2866_98_du_ = + "R\xc3\xa8glement (CE) n\xc2\xb02866/98 du conseil du 31 d\xc3\xa9cembre 1998 concernant les taux de conversion entre l'euro et les monnaies des \xc3\x89tats membres adoptant l'euro", + cst_Secteur_accession_la_propr = + "Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9", + cst_Section_1_B_n_ficiaires = "Section 1 : B\xc3\xa9n\xc3\xa9ficiaires", + cst_Section_1_Conditions_relat = + "Section 1 : Conditions relatives au b\xc3\xa9n\xc3\xa9ficiaire", + cst_Section_1_Ouverture_du_dro = + "Section 1 : Ouverture du droit et liquidation de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es", + cst_Section_1_Seuils_de_consti = + "Section 1 : Seuils de constitution d'un impay\xc3\xa9", + cst_Section_2_Accession_la_pro = + "Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9", + cst_Section_2_Prime_de_d_m_nag = + "Section 2 : Prime de d\xc3\xa9m\xc3\xa9nagement", + cst_Sous_Section_2_Conditions_ = + "Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer", + cst_Sous_section_1_Modalit_s_g = + "Sous-section 1 : Modalit\xc3\xa9s g\xc3\xa9n\xc3\xa9rales de l'appr\xc3\xa9ciation des ressources", + cst_Sous_section_III_Modalit_s = + "Sous-section III : Modalit\xc3\xa9s de liquidation et de versement", + cst_Titre_1_Champ_d_applicatio = + "Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s", + cst_Titre_I_Allocations_aux_pe = + "Titre I : Allocations aux personnes \xc3\xa2g\xc3\xa9es", + cst_Titre_III_Aide_personnalis = + "Titre III : Aide personnalis\xc3\xa9e au logement", + cst_Titre_VI_Disposition_parti = + "Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer", + cst_Titre_VI_Dispositions_part = + "Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer", + cst_Titre_VI_Dispositions_rela = + "Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales", + cst_V_rification_geInf_rieurOu = + "V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80", + cst_V_rification_geSup_rieur = + "V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80", + cst_a_d_j_ouvert_droit_aux_all$1 = + "a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales", + cst_abattement_d_pense_nette_m = + "abattement_d\xc3\xa9pense_nette_minimale", + cst_abattement_d_pense_nette_m$0 = + "abattement_d\xc3\xa9pense_nette_minimale_d832_10", + cst_abattement_d_pense_nette_m$1 = + "abattement_d\xc3\xa9pense_nette_minimale_d832_27", + cst_ann_es_in$1 = "ann\xc3\xa9es_in", + cst_b_n_ficiaire_aide_adulte_o$4 = + "b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s", + cst_b_n_ficiaire_aide_adulte_o$3 = + "b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s_in", + cst_b_n_ficie_titre_personnel_$1 = + "b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement", + cst_calcul_aide_personnalis_e_ = + "calcul_aide_personnalis\xc3\xa9e_logement", + cst_calcul_apl_logement_foyer_ = + "calcul_apl_logement_foyer.limitation_majoration_personnes_\xc3\xa0_charge", + cst_calcul_apl_logement_foyer_$4 = + "calcul_apl_logement_foyer.nombre_personnes_\xc3\xa0_charge", + cst_calcul_apl_logement_foyer_$3 = + "calcul_apl_logement_foyer.ressources_m\xc3\xa9nage_arrondies", + cst_calcul_apl_logement_foyer_$9 = + "calcul_apl_logement_foyer.r\xc3\xa9sidence", + cst_calcul_nombre_parts_nombre = + "calcul_nombre_parts.nombre_personnes_\xc3\xa0_charge", + cst_calcul_nombre_parts_r_side = "calcul_nombre_parts.r\xc3\xa9sidence", + cst_calcul_plafond_mensualit_d$2 = + "calcul_plafond_mensualit\xc3\xa9_d832_10_3", + cst_calcul_plafond_mensualit_d$0 = + "calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9", + cst_calcul_plafond_mensualit_d = + "calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom", + cst_calcul_plafond_mensualit_d$1 = + "calcul_plafond_mensualit\xc3\xa9_d842_6_base", + cst_calcul_quivalence_loyer_mi$3 = + "calcul_\xc3\xa9quivalence_loyer_minimale", + cst_calcul_quivalence_loyer_mi$1 = + "calcul_\xc3\xa9quivalence_loyer_minimale.condition_2_du_832_25", + cst_calcul_quivalence_loyer_mi = + "calcul_\xc3\xa9quivalence_loyer_minimale.date_courante", + cst_calcul_quivalence_loyer_mi$2 = + "calcul_\xc3\xa9quivalence_loyer_minimale.n_nombre_parts_d832_25", + cst_calcul_quivalence_loyer_mi$0 = + "calcul_\xc3\xa9quivalence_loyer_minimale.ressources_m\xc3\xa9nage_arrondies", + cst_calculette_sans_garde_alte = "calculette_sans_garde_altern\xc3\xa9e", + cst_caract_ristiques_pr_t_l831$0 = + "caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_1", + cst_caract_ristiques_pr_t_l831 = + "caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_6", + cst_cat_gorie_calcul_apl = "cat\xc3\xa9gorie_calcul_apl", + cst_coefficents_enfants_garde_$3 = + "coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte", + cst_conditions_hors_ge$0 = "conditions_hors_\xc3\xa2ge", + cst_conventionn_livre_III_titr$2 = + "conventionn\xc3\xa9_livre_III_titre_V_chap_III", + cst_copropri_t_in$1 = "copropri\xc3\xa9t\xc3\xa9_in", + cst_date_entr_e_logement_in$1 = "date_entr\xc3\xa9e_logement_in", + cst_date_signature_pr_t_in$1 = "date_signature_pr\xc3\xaat_in", + cst_d_pense_nette_minimale = "d\xc3\xa9pense_nette_minimale", + cst_d_pense_nette_minimale_d83 = "d\xc3\xa9pense_nette_minimale_d832_10", + cst_d_pense_nette_minimale_d83$0 = "d\xc3\xa9pense_nette_minimale_d832_27", + cst_est_inf_rieur_ou_gal$0 = "est_inf\xc3\xa9rieur_ou_\xc3\xa9gal", + cst_est_sup_rieur$0 = "est_sup\xc3\xa9rieur", + cst_examples_aides_logement_pr$0 = + "examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_L.catala_fr", + cst_examples_aides_logement_pr$2 = + "examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_R.catala_fr", + cst_examples_aides_logement_co$1 = + "examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr", + cst_limitation_majoration_pers$1 = + "limitation_majoration_personnes_\xc3\xa0_charge", + cst_limitation_majoration_pers$2 = + "limitation_majoration_personnes_\xc3\xa0_charge_in", + cst_local_habit_premi_re_fois_$2 = + "local_habit\xc3\xa9_premi\xc3\xa8re_fois_b\xc3\xa9n\xc3\xa9ficiaire_in", + cst_logement_meubl_d842_2$1 = "logement_meubl\xc3\xa9_d842_2", + cst_logement_meubl_d842_2_in$1 = "logement_meubl\xc3\xa9_d842_2_in", + cst_mensualit_minimale$0 = "mensualit\xc3\xa9_minimale", + cst_mensualit_principale_in$1 = "mensualit\xc3\xa9_principale_in", + cst_mensualit_ligible$0 = "mensualit\xc3\xa9_\xc3\xa9ligible", + cst_montant_impay$0 = "montant_impay\xc3\xa9", + cst_montant_prime_d_m_nagement$0 = + "montant_prime_d\xc3\xa9m\xc3\xa9nagement", + cst_m_nage_in$5 = "m\xc3\xa9nage_in", + cst_nationalit$1 = "nationalit\xc3\xa9", + cst_nombre_personnes_charge_in$9 = "nombre_personnes_\xc3\xa0_charge_in", + cst_nombre_personnes_charge_pr$2 = + "nombre_personnes_\xc3\xa0_charge_prises_en_compte", + cst_plafond_quivalence_loyer_l$0 = + "plafond_\xc3\xa9quivalence_loyer_\xc3\xa9ligible", + cst_prestations_familiales_r_s = "prestations_familiales.r\xc3\xa9sidence", + cst_prise_en_compte_personne_c = + "prise_en_compte_personne_\xc3\xa0_charge", + cst_ressources_m_nage_arrondie$8 = + "ressources_m\xc3\xa9nage_arrondies_base_in", + cst_ressources_m_nage_arrondie$7 = "ressources_m\xc3\xa9nage_arrondies_in", + cst_ressources_m_nage_avec_arr = "ressources_m\xc3\xa9nage_avec_arrondi", + cst_ressources_m_nage_prises_e$1 = + "ressources_m\xc3\xa9nage_prises_en_compte_in", + cst_ressources_m_nage_sans_arr$1 = + "ressources_m\xc3\xa9nage_sans_arrondi_in", + cst_r_duction_loyer_solidarit_$2 = + "r\xc3\xa9duction_loyer_solidarit\xc3\xa9_in", + cst_r_gime_outre_mer_l751_1$0 = "r\xc3\xa9gime_outre_mer_l751_1", + cst_r_muneration_mensuelle$1 = "r\xc3\xa9muneration_mensuelle", + cst_r_sidence_in$9 = "r\xc3\xa9sidence_in", + cst_traitement_aide_finale_dim = "traitement_aide_finale_diminu\xc3\xa9", + cst_traitement_aide_finale_d_p = + "traitement_aide_finale_d\xc3\xa9pense_nette_minimale", + cst_traitement_aide_finale_r_d = + "traitement_aide_finale_r\xc3\xa9duction_loyer_solidarit\xc3\xa9", + cst_ligibilit_aux_aides_person = + "\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement", + cst_ligibilit_aux_allocations_ = + "\xc3\x89ligibilit\xc3\xa9 aux allocations de logement", + cst_ligibilit_l_aide_personnal = + "\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement", + cst_ligibilit_la_prime_de_d_m_ = + "\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement", + cst_ligibilit_AidePersonnalis_ = + "\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement", + cst_ligibilit_AidesPersonnelle = + "\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement", + cst_ligibilit_AllocationLogeme = + "\xc3\x89ligibilit\xc3\xa9AllocationLogement", + cst_ligibilit_PrestationsFamil = + "\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales", + cst_ligibilit_PrimeDeD_m_nagem = + "\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement", + cst_ge_l512_3_2$0 = "\xc3\xa2ge_l512_3_2", + cst_ge_ouverture_droit$0 = "\xc3\xa2ge_ouverture_droit", + cst_g_es_ou_handicap_adultes_h$2 = + "\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers_in", + cst_ligibilit$4 = "\xc3\xa9ligibilit\xc3\xa9", + cst_ligibilit_aide_personnalis = + "\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement", + cst_ligibilit_allocation_logem = + "\xc3\xa9ligibilit\xc3\xa9_allocation_logement", + cst_ligibilit_apl = "\xc3\xa9ligibilit\xc3\xa9_apl", + cst_ligibilit_commune = "\xc3\xa9ligibilit\xc3\xa9_commune", + cst_ligibilit_commune_date_cou = + "\xc3\xa9ligibilit\xc3\xa9_commune.date_courante", + cst_ligibilit_commune_demandeu = + "\xc3\xa9ligibilit\xc3\xa9_commune.demandeur", + cst_ligibilit_commune_m_nage = + "\xc3\xa9ligibilit\xc3\xa9_commune.m\xc3\xa9nage", + cst_ligibilit_logement = "\xc3\xa9ligibilit\xc3\xa9_logement", + cst_quivalence_loyer$0 = "\xc3\xa9quivalence_loyer", + cst_quivalence_loyer_minimale$0 = "\xc3\xa9quivalence_loyer_minimale", + cst_quivalence_loyer_ligible$0 = + "\xc3\xa9quivalence_loyer_\xc3\xa9ligible", + cst_0$360 = "0", + cst_0$361 = "0.", + cst_0_0006$3 = "0.0006", + cst_0_0045$8 = "0.0045", + cst_0_005$3 = "0.005", + cst_0_0068$2 = "0.0068", + cst_0_01$1 = "0.01", + cst_0_0162$5 = "0.0162", + cst_0_0167$1 = "0.0167", + cst_0_0169$5 = "0.0169", + cst_0_0173$5 = "0.0173", + cst_0_0179$2 = "0.0179", + cst_0_018$5 = "0.018", + cst_0_0185$2 = "0.0185", + cst_0_0194$5 = "0.0194", + cst_0_0201$2 = "0.0201", + cst_0_0217$5 = "0.0217", + cst_0_0226$1 = "0.0226", + cst_0_0234$2 = "0.0234", + cst_0_0238$8 = "0.0238", + cst_0_027$2 = "0.027", + cst_0_0281$5 = "0.0281", + cst_0_0283$2 = "0.0283", + cst_0_0299$5 = "0.0299", + cst_0_0315$2 = "0.0315", + cst_0_085$5 = "0.085", + cst_0_1$1 = "0.1", + cst_0_2$2 = "0.2", + cst_0_208$1 = "0.208", + cst_0_3$2 = "0.3", + cst_0_45$5 = "0.45", + cst_0_5$3 = "0.5", + cst_0_55$1 = "0.55", + cst_0_75$14 = "0.75", + cst_0_9$3 = "0.9", + cst_0_95$5 = "0.95", + cst_0_98$1 = "0.98", + cst_1$254 = "1", + cst_1$255 = "1.", + cst_1_25$1 = "1.25", + cst_1_4$1 = "1.4", + cst_1_8$1 = "1.8", + cst_100$13 = "100.", + cst_1000$5 = "1000", + cst_100000$5 = "100000.", + cst_1062600$1 = "1062600", + cst_12$4 = "12.", + cst_1224$6 = "1224", + cst_1229$6 = "1229", + cst_1272$6 = "1272", + cst_132000$1 = "132000", + cst_139700$1 = "139700", + cst_140800$1 = "140800", + cst_142303$1 = "142303", + cst_149600$1 = "149600", + cst_1500$2 = "1500", + cst_16$4 = "16", + cst_16_25$1 = "16.25", + cst_163000$1 = "163000", + cst_167600$1 = "167600", + cst_167800$1 = "167800", + cst_169$1 = "169.", + cst_16941$1 = "16941", + cst_17012$1 = "17012", + cst_172500$1 = "172500", + cst_173600$1 = "173600", + cst_17607$1 = "17607", + cst_179800$1 = "179800", + cst_180100$2 = "180100", + cst_181800$1 = "181800", + cst_18185$1 = "18185", + cst_18261$1 = "18261", + cst_184000$2 = "184000", + cst_1858$3 = "1858", + cst_185800$1 = "185800", + cst_186000$1 = "186000", + cst_1864$3 = "1864", + cst_1872$7 = "1872", + cst_18900$1 = "18900", + cst_19100$2 = "19100", + cst_192500$1 = "192500", + cst_19300$1 = "19300", + cst_1938$5 = "1938", + cst_19402$1 = "19402", + cst_194810$1 = "194810", + cst_19484$1 = "19484", + cst_195500$1 = "195500", + cst_197700$1 = "197700", + cst_199900$2 = "199900", + cst_2$105 = "2", + cst_2$106 = "2.", + cst_2_5$5 = "2.5", + cst_20100$1 = "20100", + cst_20165$1 = "20165", + cst_201700$1 = "201700", + cst_202500$2 = "202500", + cst_204700$1 = "204700", + cst_204761$1 = "204761", + cst_208200$1 = "208200", + cst_208500$1 = "208500", + cst_208600$2 = "208600", + cst_20900$1 = "20900", + cst_210600$1 = "210600", + cst_210900$1 = "210900", + cst_214700$1 = "214700", + cst_217600$1 = "217600", + cst_218700$1 = "218700", + cst_219900$1 = "219900", + cst_220100$1 = "220100", + cst_221100$1 = "221100", + cst_222300$1 = "222300", + cst_22262$1 = "22262", + cst_22355$1 = "22355", + cst_223900$1 = "223900", + cst_225000$1 = "225000", + cst_225100$1 = "225100", + cst_225500$1 = "225500", + cst_228000$1 = "228000", + cst_230500$3 = "230500", + cst_230700$1 = "230700", + cst_23138$1 = "23138", + cst_233000$1 = "233000", + cst_234600$1 = "234600", + cst_235800$1 = "235800", + cst_237200$1 = "237200", + cst_240200$1 = "240200", + cst_240400$1 = "240400", + cst_242800$3 = "242800", + cst_245700$1 = "245700", + cst_25116$1 = "25116", + cst_251500$1 = "251500", + cst_25978$1 = "25978", + cst_261800$1 = "261800", + cst_262985$1 = "262985", + cst_26329$1 = "26329", + cst_26440$1 = "26440", + cst_26714$1 = "26714", + cst_267871$1 = "267871", + cst_26887$1 = "26887", + cst_2699$2 = "2699", + cst_2710$2 = "2710", + cst_27365$1 = "27365", + cst_27900$1 = "27900", + cst_2805$2 = "2805", + cst_294500$1 = "294500", + cst_3$101 = "3", + cst_3$102 = "3.", + cst_3_1$1 = "3.1", + cst_3_7$2 = "3.7", + cst_30500$3 = "30500", + cst_31264$1 = "31264", + cst_31664$1 = "31664", + cst_31797$2 = "31797", + cst_32910$1 = "32910", + cst_32956$1 = "32956", + cst_33500$1 = "33500", + cst_33623$1 = "33623", + cst_34301$1 = "34301", + cst_34570$1 = "34570", + cst_34700$1 = "34700", + cst_34713$1 = "34713", + cst_34829$1 = "34829", + cst_34865$1 = "34865", + cst_35000$1 = "35000", + cst_35130$1 = "35130", + cst_3524$1 = "3524", + cst_3539$1 = "3539", + cst_35630$1 = "35630", + cst_35762$1 = "35762", + cst_35780$1 = "35780", + cst_35947$1 = "35947", + cst_3614$9 = "3614", + cst_3625$9 = "3625", + cst_36378$1 = "36378", + cst_3640$19 = "3640", + cst_3663$1 = "3663", + cst_36733$1 = "36733", + cst_36815$1 = "36815", + cst_37032$1 = "37032", + cst_37457$1 = "37457", + cst_37478$1 = "37478", + cst_3767$14 = "3767", + cst_37778$1 = "37778", + cst_37900$1 = "37900", + cst_37906$1 = "37906", + cst_38361$1 = "38361", + cst_38527$1 = "38527", + cst_38892$1 = "38892", + cst_389618$1 = "389618", + cst_39016$1 = "39016", + cst_39051$1 = "39051", + cst_39340$1 = "39340", + cst_39445$1 = "39445", + cst_39590$1 = "39590", + cst_39839$1 = "39839", + cst_4$100 = "4", + cst_4_3$3 = "4.3", + cst_40144$1 = "40144", + cst_40696$1 = "40696", + cst_40758$1 = "40758", + cst_40888$1 = "40888", + cst_40928$1 = "40928", + cst_409505$1 = "409505", + cst_40961$1 = "40961", + cst_41252$1 = "41252", + cst_41268$1 = "41268", + cst_41338$1 = "41338", + cst_41392$1 = "41392", + cst_41751$1 = "41751", + cst_42469$1 = "42469", + cst_42605$1 = "42605", + cst_42892$1 = "42892", + cst_42926$1 = "42926", + cst_43000$1 = "43000", + cst_43074$1 = "43074", + cst_43248$1 = "43248", + cst_43378$1 = "43378", + cst_43505$1 = "43505", + cst_44440$1 = "44440", + cst_44693$1 = "44693", + cst_44729$1 = "44729", + cst_45064$1 = "45064", + cst_45200$1 = "45200", + cst_487000$1 = "487000", + cst_4986$1 = "4986", + cst_5$158 = "5", + cst_5$159 = "5.", + cst_50$4 = "50", + cst_500$4 = "500", + cst_5186$1 = "5186", + cst_5208$1 = "5208", + cst_535744$1 = "535744", + cst_5390$1 = "5390", + cst_5399$8 = "5399", + cst_5422$8 = "5422", + cst_5612$8 = "5612", + cst_6$92 = "6", + cst_6$93 = "6.", + cst_6_55957$1 = "6.55957", + cst_633129$1 = "633129", + cst_697700$1 = "697700", + cst_7$1 = "7", + cst_70$1 = "70", + cst_758400$2 = "758400", + cst_832200$2 = "832200", + cst_850900$1 = "850900", + cst_883400$1 = "883400", + cst_9$3 = "9", + cst_916300$1 = "916300", + cst_924600$1 = "924600", + cst_929$9 = "929", + cst_932$9 = "932", + cst_936$19 = "936", + cst_943900$1 = "943900", + cst_948800$1 = "948800", + cst_969$14 = "969", + cst_981600$3 = "981600", + cst_997500$1 = "997500", + cst_AllocationLogementFamilial$1 = "AllocationLogementFamiliale", + cst_AllocationLogementSociale$1 = "AllocationLogementSociale", + cst_AllocationSoutienFamilial$1 = "AllocationSoutienFamilial", + cst_AllocationsFamiliales$1 = "AllocationsFamiliales", + cst_Article_1 = "Article 1", + cst_Article_10 = "Article 10", + cst_Article_13 = "Article 13", + cst_Article_14 = "Article 14", + cst_Article_15 = "Article 15", + cst_Article_16 = "Article 16", + cst_Article_17 = "Article 17", + cst_Article_18 = "Article 18", + cst_Article_19 = "Article 19", + cst_Article_2 = "Article 2", + cst_Article_23 = "Article 23", + cst_Article_24 = "Article 24", + cst_Article_27 = "Article 27", + cst_Article_30 = "Article 30", + cst_Article_31 = "Article 31", + cst_Article_33 = "Article 33", + cst_Article_34 = "Article 34", + cst_Article_37 = "Article 37", + cst_Article_38 = "Article 38", + cst_Article_39 = "Article 39", + cst_Article_40 = "Article 40", + cst_Article_43 = "Article 43", + cst_Article_46 = "Article 46", + cst_Article_47 = "Article 47", + cst_Article_7 = "Article 7", + cst_Article_8 = "Article 8", + cst_Article_9 = "Article 9", + cst_Article_D161_2_1_9 = "Article D161-2-1-9", + cst_Article_D815_1 = "Article D815-1", + cst_Article_D823_16 = "Article D823-16", + cst_Article_D823_17 = "Article D823-17", + cst_Article_D823_20 = "Article D823-20", + cst_Article_D823_9 = "Article D823-9", + cst_Article_D832_10 = "Article D832-10", + cst_Article_D832_11 = "Article D832-11", + cst_Article_D832_14 = "Article D832-14", + cst_Article_D832_15 = "Article D832-15", + cst_Article_D832_17 = "Article D832-17", + cst_Article_D832_18 = "Article D832-18", + cst_Article_D832_24 = "Article D832-24", + cst_Article_D832_25 = "Article D832-25", + cst_Article_D832_26 = "Article D832-26", + cst_Article_D832_27 = "Article D832-27", + cst_Article_D842_11 = "Article D842-11", + cst_Article_D842_12 = "Article D842-12", + cst_Article_D842_15 = "Article D842-15", + cst_Article_D842_17 = "Article D842-17", + cst_Article_D842_4 = "Article D842-4", + cst_Article_D842_6 = "Article D842-6", + cst_Article_D842_9 = "Article D842-9", + cst_Article_D861_8 = "Article D861-8", + cst_Article_D862_7 = "Article D862-7", + cst_Article_D863_7 = "Article D863-7", + cst_Article_L161_17_2 = "Article L161-17-2", + cst_Article_L512_3 = "Article L512-3", + cst_Article_L822_2 = "Article L822-2", + cst_Article_L822_3 = "Article L822-3", + cst_Article_L822_4 = "Article L822-4", + cst_Article_L822_5 = "Article L822-5", + cst_Article_L823_1 = "Article L823-1", + cst_Article_L831_1 = "Article L831-1", + cst_Article_L831_2 = "Article L831-2", + cst_Article_L832_3 = "Article L832-3", + cst_Article_L841_1 = "Article L841-1", + cst_Article_L841_2 = "Article L841-2", + cst_Article_L861_5 = "Article L861-5", + cst_Article_L861_6 = "Article L861-6", + cst_Article_L862_3 = "Article L862-3", + cst_Article_R512_2 = "Article R512-2", + cst_Article_R822_1 = "Article R822-1", + cst_Article_R822_2 = "Article R822-2", + cst_Article_R822_22 = "Article R822-22", + cst_Article_R822_25 = "Article R822-25", + cst_Article_R822_7 = "Article R822-7", + cst_Article_R823_4 = "Article R823-4", + cst_Article_R824_1 = "Article R824-1", + cst_Article_R824_2 = "Article R824-2", + cst_Article_R842_14 = "Article R842-14", + cst_Article_R842_5 = "Article R842-5", + cst_Article_R844_4 = "Article R844-4", + cst_Article_R861_5 = "Article R861-5", + cst_Article_R862_2 = "Article R862-2", + cst_Article_premier = "Article premier", + cst_Autre$2 = "Autre", + cst_BaseMensuelleAllocationsFa = "BaseMensuelleAllocationsFamiliales", + cst_Calcul_des_contributions_s = + "Calcul des contributions sociales s'appliquant aux aides personnelles au logement", + cst_Calcul_du_montant_de_l_all = + "Calcul du montant de l'allocation logement", + cst_CalculAllocationLogement = "CalculAllocationLogement", + cst_CalculAllocationLogementFo = "CalculAllocationLogementFoyer", + cst_CalculAllocationLogementLo = "CalculAllocationLogementLocatif", + cst_CalculNombrePartLogementFo = "CalculNombrePartLogementFoyer", + cst_Calculette_globale = "Calculette globale", + cst_CalculetteAidesAuLogement = "CalculetteAidesAuLogement", + cst_Chapitre_1er_Dispositions_ = + "Chapitre 1er : Dispositions relatives aux prestations", + cst_Chapitre_2_Champ_d_applica = "Chapitre 2 : Champ d'application", + cst_Chapitre_2_Champ_d_applica$0 = "Chapitre 2 : Champ d'application.", + cst_Chapitre_II_Des_contributi = + "Chapitre II : Des contributions pour le remboursement de la dette sociale.", + cst_Chapitre_II_Dispositions_a = + "Chapitre II : Dispositions applicables aux ressources", + cst_Chapitre_III_Calcul_des_ai = + "Chapitre III : Calcul des aides personnelles au logement en secteur locatif", + cst_Chapitre_III_Saint_Pierre_ = "Chapitre III : Saint-Pierre-et-Miquelon", + cst_Chapitre_IV_Calcul_des_all = + "Chapitre IV : Calcul des allocations de logement en secteur accession", + cst_Chapitre_IV_Conditions_de_ = "Chapitre IV : Conditions de peuplement", + cst_Chapitre_IX_Calcul_des_all = + "Chapitre IX : Calcul des allocations de logement en outre-mer", + cst_Chapitre_Ier_Champ_d_appli = "Chapitre Ier : Champ d'application", + cst_Chapitre_VII_Calcul_des_al = + "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer", + cst_Code_de_la_construction_et = + "Code de la construction et de l'habitation", + cst_ContributionsSocialesAides = + "ContributionsSocialesAidesPersonnelleLogement", + cst_Demandeur$0 = "Demandeur", + cst_EffectiveEtPermanente$1 = "EffectiveEtPermanente", + cst_Infini$1 = "Infini", + cst_Livre_VIII_Aides_personnel = + "Livre VIII : Aides personnelles au logement", + cst_Location$0 = "Location", + cst_LogementFoyer$0 = "LogementFoyer", + cst_Montant_de_la_base_mensuel = + "Montant de la base mensuelle des allocations familiales", + cst_Montant_du_salaire_minimum = + "Montant du salaire minimum de croissance", + cst_Non$2 = "Non", + cst_Oui$1 = "Oui", + cst_OuvertureDroitsRetraite = "OuvertureDroitsRetraite", + cst_Paragraphe_2_Ouverture_du_ = + "Paragraphe 2 : Ouverture du droit et liquidation.", + cst_PasDeTravaux$1 = "PasDeTravaux", + cst_Prise_en_compte_des_ressou = + "Prise en compte des ressources pour les aides personnelles au logement", + cst_Prologue = "Prologue", + cst_Prologue_aides_au_logement = "Prologue : aides au logement", + cst_Prologue_prestations_famil = "Prologue : prestations familiales", + cst_RessourcesAidesPersonnelle = "RessourcesAidesPersonnelleLogement", + cst_Revenu$1 = "Revenu", + cst_Secteur_locatif = "Secteur locatif", + cst_Secteur_logement_foyer = "Secteur logement-foyer", + cst_Section_1_Calcul_liquidati = + "Section 1 : Calcul, liquidation et versement des aides", + cst_Section_1_Secteur_locatif_ = "Section 1 : Secteur locatif ordinaire", + cst_Section_2_Allocations_de_l = "Section 2 : Allocations de logement", + cst_Section_2_Conditions_relat = + "Section 2 : Conditions relatives aux ressources", + cst_Section_2_Dispositions_com = + "Section 2 : Dispositions communes aux aides personnelles au logement", + cst_Section_3_Conditions_relat = + "Section 3 : Conditions relatives au logement", + cst_Section_3_Logements_foyers = "Section 3 : Logements-foyers", + cst_Section_4_Allocations_de_l = "Section 4 : Allocations de logement", + cst_Section_I_Dispositions_com = + "Section I : Dispositions communes aux aides personnelles au logement", + cst_Section_II_Dispositions_co = + "Section II : Dispositions communes aux aides personnelles au logement", + cst_Section_III_Allocations_de = "Section III : Allocations de logement", + cst_Smic = "Smic", + cst_Sous_section_2_Calcul_de_l = + "Sous-section 2 : Calcul de l'aide en secteur locatif", + cst_Sous_section_2_Principes_d = + "Sous-section 2 : Principes de neutralisation et d'abattement", + cst_Sous_section_4_Assurance_v = "Sous-section 4 : Assurance vieillesse", + cst_Sous_section_4_Prise_en_co = + "Sous-section 4 : Prise en compte du patrimoine", + cst_Titre_II_Dispositions_comm = + "Titre II : Dispositions communes aux aides personnelles au logement", + cst_Titre_III_Titre_III_Dispos = + "Titre III: Titre III : Dispositions communes relatives au financement", + cst_Titre_IV_Allocations_de_Lo = "Titre IV : Allocations de Logement", + cst_Titre_IV_Allocations_de_lo = "Titre IV : Allocations de logement", + cst_Tous_secteurs = "Tous secteurs", + cst_aide_finale$0 = "aide_finale", + cst_aide_finale_formule$9 = "aide_finale_formule", + cst_bas$1 = "bas", + cst_base_mensuelle_allocations$0 = "base_mensuelle_allocations_familiales", + cst_base_mensuelle_allocations = + "base_mensuelle_allocations_familiales.date_courante", + cst_brut_horaire$0 = "brut_horaire", + cst_calcul_allocation_logement = "calcul_allocation_logement", + cst_calcul_apl_locatif = "calcul_apl_locatif", + cst_calcul_apl_logement_foyer = "calcul_apl_logement_foyer", + cst_calcul_apl_logement_foyer_$0 = + "calcul_apl_logement_foyer.condition_2_du_832_25", + cst_calcul_apl_logement_foyer_$2 = + "calcul_apl_logement_foyer.date_conventionnement", + cst_calcul_apl_logement_foyer_$7 = + "calcul_apl_logement_foyer.date_courante", + cst_calcul_apl_logement_foyer_$8 = "calcul_apl_logement_foyer.redevance", + cst_calcul_apl_logement_foyer_$5 = + "calcul_apl_logement_foyer.situation_familiale_calcul_apl", + cst_calcul_apl_logement_foyer_$1 = + "calcul_apl_logement_foyer.type_logement_foyer", + cst_calcul_apl_logement_foyer_$6 = "calcul_apl_logement_foyer.zone", + cst_calcul_nombre_parts = "calcul_nombre_parts", + cst_calcul_nombre_parts_condit = + "calcul_nombre_parts.condition_2_du_832_25", + cst_calcul_nombre_parts_situat = + "calcul_nombre_parts.situation_familiale_calcul_apl", + cst_calculette = "calculette", + cst_coefficient_multiplicateur$0 = "coefficient_multiplicateur_d832_25", + cst_coefficient_prise_en_charg$2 = "coefficient_prise_en_charge", + cst_coefficient_r_d832_25$0 = "coefficient_r_d832_25", + cst_colocation_in$1 = "colocation_in", + cst_condition_2_du_832_25_in$2 = "condition_2_du_832_25_in", + cst_condition_2_r823_4$0 = "condition_2_r823_4", + cst_contributions_sociales = "contributions_sociales", + cst_contributions_sociales_dat = "contributions_sociales.date_courante", + cst_date_conventionnement_in$1 = "date_conventionnement_in", + cst_date_courante$1 = "date_courante", + cst_date_courante_in$21 = "date_courante_in", + cst_date_de_naissance$1 = "date_de_naissance", + cst_date_naissance$1 = "date_naissance", + cst_date_naissance_in$1 = "date_naissance_in", + cst_demandeur_in$5 = "demandeur_in", + cst_direct = "direct", + cst_droit_ouvert$0 = "droit_ouvert", + cst_examples_aides_logement_ba = + "examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr", + cst_examples_aides_logement_pr$4 = + "examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr", + cst_examples_aides_logement_pr$3 = + "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr", + cst_examples_aides_logement_pr$1 = + "examples/aides_logement/../prestations_familiales/prologue.catala_fr", + cst_examples_aides_logement_ar$0 = + "examples/aides_logement/archives.catala_fr", + cst_examples_aides_logement_ar = + "examples/aides_logement/arrete_2019-09-27.catala_fr", + cst_examples_aides_logement_au = + "examples/aides_logement/autres_sources.catala_fr", + cst_examples_aides_logement_co = + "examples/aides_logement/code_construction_legislatif.catala_fr", + cst_examples_aides_logement_co$0 = + "examples/aides_logement/code_construction_reglementaire.catala_fr", + cst_examples_aides_logement_pr = + "examples/aides_logement/prologue.catala_fr", + cst_haut$1 = "haut", + cst_identifiant$1 = "identifiant", + cst_input = "input", + cst_input0 = "input0", + cst_input1 = "input1", + cst_logement_est_chambre_in$1 = "logement_est_chambre_in", + cst_loyer_minimal$0 = "loyer_minimal", + cst_mode_occupation_in$3 = "mode_occupation_in", + cst_montant$2 = "montant", + cst_montant_forfaitaire_charge$1 = "montant_forfaitaire_charges", + cst_montant_forfaitaire_charge$2 = "montant_forfaitaire_charges_d823_16", + cst_multiplicateur_majoration_ = "multiplicateur_majoration_charges", + cst_n_nombre_parts_d832_11$0 = "n_nombre_parts_d832_11", + cst_n_nombre_parts_d832_25$1 = "n_nombre_parts_d832_25", + cst_n_nombre_parts_d832_25_in$1 = "n_nombre_parts_d832_25_in", + cst_obligation_scolaire$1 = "obligation_scolaire", + cst_output = "output", + cst_ouverture_droits_retraite = "ouverture_droits_retraite", + cst_participation_minimale$0 = "participation_minimale", + cst_participation_personnelle$0 = "participation_personnelle", + cst_plafond_loyer_d823_16_2$0 = "plafond_loyer_d823_16_2", + cst_prestations_familiales = "prestations_familiales", + cst_prestations_familiales_dat = "prestations_familiales.date_courante", + cst_prestations_familiales_pre = + "prestations_familiales.prestation_courante", + cst_redevance_in$1 = "redevance_in", + cst_ressources$1 = "ressources", + cst_ressources_prises_en_compt$0 = "ressources_prises_en_compte", + cst_situation_familiale_calcul$7 = "situation_familiale_calcul_apl", + cst_situation_familiale_calcul$8 = "situation_familiale_calcul_apl_in", + cst_situation_familiale_in$2 = "situation_familiale_in", + cst_situation_r822_11_13_17_in$1 = "situation_r822_11_13_17_in", + cst_smic = "smic", + cst_sous_calcul_traitement = "sous_calcul_traitement", + cst_taux$1 = "taux", + cst_taux_composition_familiale$0 = "taux_composition_familiale", + cst_taux_francs_vers_euros = "taux_francs_vers_euros", + cst_traitement_aide_finale$9 = "traitement_aide_finale", + cst_traitement_aide_finale_aba = "traitement_aide_finale_abattement", + cst_traitement_aide_finale_con = + "traitement_aide_finale_contributions_sociales_arrondi", + cst_traitement_aide_finale_min = + "traitement_aide_finale_minoration_forfaitaire", + cst_traitement_aide_finale_mon = "traitement_aide_finale_montant_minimal", + cst_traitement_aide_finale_red = "traitement_aide_finale_redevance", + cst_type_aide_in$3 = "type_aide_in", + cst_type_logement_foyer_in$1 = "type_logement_foyer_in", + cst_type_travaux_logement_in$1 = "type_travaux_logement_in", + cst_zone_in$7 = "zone_in", + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + function caml_call4(f, a0, a1, a2, a3){ + return (f.l >= 0 ? f.l : f.l = f.length) == 4 + ? f(a0, a1, a2, a3) + : runtime.caml_call_gen(f, [a0, a1, a2, a3]); + } + var + global_data = runtime.caml_get_global_data(), + Runtime_ocaml_Runtime = global_data.Runtime_ocaml__Runtime, + TypePret = [0], + _Te_ = + [0, + cst_examples_aides_logement_au, + 283, + 14, + 283, + 25, + [0, + "Conseil d'\xc3\x89tat, 5\xc3\xa8me - 4\xc3\xa8me chambres r\xc3\xa9unies, 21/07/2017, 398563", + 0]], + cst_0$357 = cst_0$360, + cst_0$358 = cst_0$360, + cst_0$359 = cst_0$361, + _Ta_ = + [0, + cst_CalculetteAidesAuLogement, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _Tb_ = + [0, cst_CalculetteAidesAuLogement, [0, cst_traitement_aide_finale$9, 0]], + _Tc_ = + [0, + cst_CalculetteAidesAuLogement, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _Td_ = + [0, cst_CalculetteAidesAuLogement, [0, cst_traitement_aide_finale$9, 0]], + _S8_ = + [0, + cst_examples_aides_logement_pr, + 1273, + 14, + 1273, + 63, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _S4_ = + [0, + cst_examples_aides_logement_pr, + 1304, + 14, + 1304, + 25, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _SY_ = + [0, + cst_examples_aides_logement_pr, + 1269, + 5, + 1269, + 70, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _SU_ = + [0, + cst_examples_aides_logement_pr, + 1266, + 14, + 1266, + 58, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _SQ_ = + [0, + cst_examples_aides_logement_pr, + 1264, + 14, + 1264, + 54, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _SM_ = + [0, + cst_examples_aides_logement_pr, + 1262, + 14, + 1262, + 51, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _SG_ = + [0, + cst_examples_aides_logement_pr, + 1260, + 14, + 1260, + 59, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _SC_ = + [0, + cst_examples_aides_logement_pr, + 1258, + 14, + 1258, + 38, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _Sy_ = + [0, + cst_examples_aides_logement_pr, + 1256, + 14, + 1256, + 34, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _Su_ = + [0, + cst_examples_aides_logement_pr, + 1254, + 14, + 1254, + 31, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _Sq_ = + [0, + cst_examples_aides_logement_pr, + 1275, + 14, + 1275, + 48, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _Sr_ = + [0, + cst_examples_aides_logement_pr, + 1243, + 11, + 1243, + 45, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _Sp_ = + [0, + cst_examples_aides_logement_pr, + 1243, + 11, + 1243, + 45, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _Ss_ = + [0, + cst_CalculetteAidesAuLogementG, + [0, "m\xc3\xa9nage_sans_enfants_garde_altern\xc3\xa9e", 0]], + _Sv_ = + [0, + cst_examples_aides_logement_pr, + 1254, + 14, + 1254, + 31, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _Sw_ = + [0, cst_CalculetteAidesAuLogementG, [0, "calculette.m\xc3\xa9nage", 0]], + _St_ = + [0, + cst_examples_aides_logement_pr, + 1254, + 14, + 1254, + 31, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _Sz_ = + [0, + cst_examples_aides_logement_pr, + 1256, + 14, + 1256, + 34, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _SA_ = [0, cst_CalculetteAidesAuLogementG, [0, "calculette.demandeur", 0]], + _Sx_ = + [0, + cst_examples_aides_logement_pr, + 1256, + 14, + 1256, + 34, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _SD_ = + [0, + cst_examples_aides_logement_pr, + 1258, + 14, + 1258, + 38, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _SE_ = + [0, cst_CalculetteAidesAuLogementG, [0, "calculette.date_courante", 0]], + _SB_ = + [0, + cst_examples_aides_logement_pr, + 1258, + 14, + 1258, + 38, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _SH_ = + [0, + cst_examples_aides_logement_pr, + 1260, + 14, + 1260, + 59, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _SI_ = + [0, + cst_CalculetteAidesAuLogementG, + [0, "calculette.ressources_m\xc3\xa9nage_prises_en_compte", 0]], + _SF_ = + [0, + cst_examples_aides_logement_pr, + 1260, + 14, + 1260, + 59, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _SJ_ = + [0, + cst_CalculetteAidesAuLogementG, + [0, cst_calculette, [0, cst_CalculetteAidesAuLogement, 0]]], + _SK_ = + [0, + cst_CalculetteAidesAuLogementG, + [0, cst_calculette, [0, cst_CalculetteAidesAuLogement, 0]]], + _SN_ = + [0, + cst_examples_aides_logement_pr, + 1262, + 14, + 1262, + 51, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _SO_ = + [0, + cst_CalculetteAidesAuLogementG, + [0, "calculette_sans_garde_altern\xc3\xa9e.m\xc3\xa9nage", 0]], + _SL_ = + [0, + cst_examples_aides_logement_pr, + 1262, + 14, + 1262, + 51, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _SR_ = + [0, + cst_examples_aides_logement_pr, + 1264, + 14, + 1264, + 54, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _SS_ = + [0, + cst_CalculetteAidesAuLogementG, + [0, "calculette_sans_garde_altern\xc3\xa9e.demandeur", 0]], + _SP_ = + [0, + cst_examples_aides_logement_pr, + 1264, + 14, + 1264, + 54, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _SV_ = + [0, + cst_examples_aides_logement_pr, + 1266, + 14, + 1266, + 58, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _SW_ = + [0, + cst_CalculetteAidesAuLogementG, + [0, "calculette_sans_garde_altern\xc3\xa9e.date_courante", 0]], + _ST_ = + [0, + cst_examples_aides_logement_pr, + 1266, + 14, + 1266, + 58, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _SZ_ = + [0, + cst_examples_aides_logement_pr, + 1269, + 5, + 1269, + 70, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _S0_ = + [0, + cst_CalculetteAidesAuLogementG, + [0, + "calculette_sans_garde_altern\xc3\xa9e.ressources_m\xc3\xa9nage_prises_en_compte", + 0]], + _SX_ = + [0, + cst_examples_aides_logement_pr, + 1269, + 5, + 1269, + 70, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _S1_ = + [0, + cst_CalculetteAidesAuLogementG, + [0, + cst_calculette_sans_garde_alte, + [0, cst_CalculetteAidesAuLogement, 0]]], + _S2_ = + [0, + cst_CalculetteAidesAuLogementG, + [0, + cst_calculette_sans_garde_alte, + [0, cst_CalculetteAidesAuLogement, 0]]], + _S5_ = + [0, + cst_examples_aides_logement_pr, + 1250, + 12, + 1250, + 23, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _S3_ = + [0, + cst_examples_aides_logement_pr, + 1250, + 12, + 1250, + 23, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _S6_ = [0, cst_CalculetteAidesAuLogementG, [0, cst_ligibilit$4, 0]], + _S9_ = + [0, + cst_examples_aides_logement_pr, + 1244, + 11, + 1244, + 60, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _S7_ = + [0, + cst_examples_aides_logement_pr, + 1244, + 11, + 1244, + 60, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _S__ = + [0, + cst_CalculetteAidesAuLogementG, + [0, cst_coefficents_enfants_garde_$3, 0]], + _Tf_ = + [0, + cst_examples_aides_logement_pr, + 1251, + 12, + 1251, + 23, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _S$_ = + [0, + cst_examples_aides_logement_pr, + 1251, + 12, + 1251, + 23, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _Tg_ = [0, cst_CalculetteAidesAuLogementG, [0, cst_aide_finale$0, 0]], + _Sm_ = + [0, + cst_examples_aides_logement_co, + 1123, + 14, + 1123, + 33, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, [0, - function(param) - {function _b_I_(param){return 1} - function _b_J_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_mJ_,1)} - return caml_call4(Runtime_ocaml_Runtime[63],_mK_,[0],_b_J_,_b_I_)}], - _b_q_=caml_call4(Runtime_ocaml_Runtime[63],_mL_,_b_p_,_b_o_,_b_n_)} - catch(_b_H_) - {_b_H_ = caml_wrap_exception(_b_H_); - if(_b_H_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_mH_]; - throw _b_H_} - var - exonere_csg= - caml_call3 - (Runtime_ocaml_Runtime[28],_mM_,Runtime_ocaml_Runtime[12],_b_q_); - try - {var - _b_r_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_0_005)}, - _b_s_= - function(param) - {var - _b_F_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _b_G_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b_F_); - return caml_call2(Runtime_ocaml_Runtime[29],_mO_,_b_G_)}, - _b_t_=caml_call4(Runtime_ocaml_Runtime[63],_mP_,[0],_b_s_,_b_r_)} - catch(_b_E_) - {_b_E_ = caml_wrap_exception(_b_E_); - if(_b_E_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_mN_]; - throw _b_E_} - var - taux_crds= - caml_call3 - (Runtime_ocaml_Runtime[28],_mQ_,Runtime_ocaml_Runtime[15],_b_t_); - function _b_u_(aide_finale) - {try - {var - _b_y_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[104],aide_finale,taux_crds)}, - _b_z_= - function(param) - {var - _b_C_=caml_call3(Runtime_ocaml_Runtime[57],2018,9,1), - _b_D_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b_C_); - return caml_call2(Runtime_ocaml_Runtime[29],_mS_,_b_D_)}, - _b_A_=caml_call4(Runtime_ocaml_Runtime[63],_mT_,[0],_b_z_,_b_y_); - return _b_A_} - catch(_b_B_) - {_b_B_ = caml_wrap_exception(_b_B_); - if(_b_B_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_mR_]; - throw _b_B_}} - var - montant= - caml_call3 - (Runtime_ocaml_Runtime[28],_mU_,Runtime_ocaml_Runtime[10],_b_u_); - if(exonere_csg) - {try - {var - _b_v_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _b_w_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b_v_)} - catch(_b_x_) - {_b_x_ = caml_wrap_exception(_b_x_); - if(_b_x_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_mV_]; - throw _b_x_} - if(_b_w_)return [0,montant]; - throw [0,Runtime_ocaml_Runtime[3],_mW_]} - throw [0,Runtime_ocaml_Runtime[3],_mX_]} - function calcul_equivalence_loyer_minim(calcul_equivalence_loyer_minim) - {var - date_courante=calcul_equivalence_loyer_minim[1], - ressources_menage_arrondies=calcul_equivalence_loyer_minim[2], - condition_2_du_832_25=calcul_equivalence_loyer_minim[3], - n_nombre_parts_d832_25=calcul_equivalence_loyer_minim[4]; - try - {var - _b8P_= - function(param) - {return condition_2_du_832_25 - ?caml_call1(Runtime_ocaml_Runtime[31],cst_7632) - :caml_call1(Runtime_ocaml_Runtime[31],cst_4557)}, - _b8Q_= - function(param) - {var - _b_l_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _b_m_=caml_call2(Runtime_ocaml_Runtime[125],date_courante,_b_l_); - return caml_call2(Runtime_ocaml_Runtime[29],_mZ_,_b_m_)}, - _b8R_=caml_call4(Runtime_ocaml_Runtime[63],_m0_,[0],_b8Q_,_b8P_)} - catch(_b_k_) - {_b_k_ = caml_wrap_exception(_b_k_); - if(_b_k_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_mY_]; - throw _b_k_} - var - montant_forfaitaire_d832_26= - caml_call3 - (Runtime_ocaml_Runtime[28],_m1_,Runtime_ocaml_Runtime[13],_b8R_); - try - {var - _b8S_= - function(param) - {var - _b96_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_48), - _b97_= - [0,_m3_,caml_call1(Runtime_ocaml_Runtime[31],cst_633129),_b96_], - _b98_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_32$1), - _b99_=caml_call1(Runtime_ocaml_Runtime[31],cst_535744), - _b9__= - [0, - [0,caml_call1(Runtime_ocaml_Runtime[31],cst_633129$0)], - _b99_, - _b98_], - _b9$_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_264), - _b_a_=caml_call1(Runtime_ocaml_Runtime[31],cst_389618), - _b_b_= - [0, - [0,caml_call1(Runtime_ocaml_Runtime[31],cst_535744$0)], - _b_a_, - _b9$_], - _b_c_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_216), - _b_d_=caml_call1(Runtime_ocaml_Runtime[31],cst_267871), - _b_e_= - [0, - [0,caml_call1(Runtime_ocaml_Runtime[31],cst_389618$0)], - _b_d_, - _b_c_], - _b_f_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_104), - _b_g_=caml_call1(Runtime_ocaml_Runtime[31],cst_194810), - _b_h_= - [0, - [0,caml_call1(Runtime_ocaml_Runtime[31],cst_267871$0)], - _b_g_, - _b_f_], - _b_i_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_04$0), - _b_j_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$67); - return [0, - [0, - [0,caml_call1(Runtime_ocaml_Runtime[31],cst_194810$0)], - _b_j_, - _b_i_], - _b_h_, - _b_e_, - _b_b_, - _b9__, - _b97_]}, - _b8T_= - function(param) - {var - _b94_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _b95_=caml_call2(Runtime_ocaml_Runtime[125],date_courante,_b94_); - return caml_call2(Runtime_ocaml_Runtime[29],_m4_,_b95_)}, - _b8U_= + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + cst_0$356 = cst_0$360, + _Se_ = + [0, + cst_CalculAllocationLogement, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _Sf_ = + [0, cst_CalculAllocationLogement, [0, cst_traitement_aide_finale$9, 0]], + _Sg_ = + [0, + cst_CalculAllocationLogement, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _Sh_ = + [0, cst_CalculAllocationLogement, [0, cst_traitement_aide_finale$9, 0]], + _Si_ = + [0, + cst_CalculAidePersonnalis_eLog, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _Sj_ = + [0, + cst_CalculAidePersonnalis_eLog, + [0, cst_traitement_aide_finale$9, 0]], + _Sk_ = + [0, + cst_CalculAidePersonnalis_eLog, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _Sl_ = + [0, + cst_CalculAidePersonnalis_eLog, + [0, cst_traitement_aide_finale$9, 0]], + _Sa_ = + [0, + cst_examples_aides_logement_co, + 1140, + 14, + 1140, + 36, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, [0, - function(param) - {function _b9M_(param) - {var - _b9R_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_328), - _b9S_= - [0, - _m5_, - caml_call1(Runtime_ocaml_Runtime[31],cst_409505), - _b9R_], - _b9T_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_232$0), - _b9U_=caml_call1(Runtime_ocaml_Runtime[31],cst_262985), - _b9V_= - [0, - [0,caml_call1(Runtime_ocaml_Runtime[31],cst_409505$0)], - _b9U_, - _b9T_], - _b9W_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_208), - _b9X_=caml_call1(Runtime_ocaml_Runtime[31],cst_204761), - _b9Y_= - [0, - [0,caml_call1(Runtime_ocaml_Runtime[31],cst_262985$0)], - _b9X_, - _b9W_], - _b9Z_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_024), - _b90_=caml_call1(Runtime_ocaml_Runtime[31],cst_142303), - _b91_= - [0, - [0,caml_call1(Runtime_ocaml_Runtime[31],cst_204761$0)], - _b90_, - _b9Z_], - _b92_=caml_call1(Runtime_ocaml_Runtime[39],cst_0$68), - _b93_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$69); - return [0, - [0, - [0,caml_call1(Runtime_ocaml_Runtime[31],cst_142303$0)], - _b93_, - _b92_], - _b91_, - _b9Y_, - _b9V_, - _b9S_]} - function _b9N_(param) - {var - _b9O_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _b9P_= - caml_call2(Runtime_ocaml_Runtime[125],date_courante,_b9O_), - _b9Q_= - caml_call2 - (Runtime_ocaml_Runtime[83],_b9P_,condition_2_du_832_25); - return caml_call2(Runtime_ocaml_Runtime[29],_m6_,_b9Q_)} - return caml_call4(Runtime_ocaml_Runtime[63],_m7_,[0],_b9N_,_b9M_)}], - _b8V_=caml_call4(Runtime_ocaml_Runtime[63],_m8_,_b8U_,_b8T_,_b8S_)} - catch(_b9L_) - {_b9L_ = caml_wrap_exception(_b9L_); - if(_b9L_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_m2_]; - throw _b9L_} - var - _b8W_=caml_call1(Runtime_ocaml_Runtime[18],embed_tranche_revenu), - tranches_revenus_d832_26= - caml_call3(Runtime_ocaml_Runtime[28],_m9_,_b8W_,_b8V_); - try - {var - _b8X_= - function(param) - {function _b9E_(tranche) - {var - _b9F_=tranche[3], - _b9G_=caml_call1(Runtime_ocaml_Runtime[70],tranche[2]), - _b9H_= - caml_call2 - (Runtime_ocaml_Runtime[103],_b9G_,n_nombre_parts_d832_25), - _b9I_=tranche[1]; - if(0 === _b9I_[0]) - var - tranche_haut=_b9I_[1], - _b9J_=caml_call1(Runtime_ocaml_Runtime[70],tranche_haut), - _b9K_= - [0, - caml_call2 - (Runtime_ocaml_Runtime[103],_b9J_,n_nombre_parts_d832_25)]; - else - var _b9K_=_m$_; - return [0,_b9K_,_b9H_,_b9F_]} - return caml_call2 - (Runtime_ocaml_Runtime[87],_b9E_,tranches_revenus_d832_26)}, - _b8Y_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_na_,1)}, - _b8Z_=caml_call4(Runtime_ocaml_Runtime[63],_nb_,[0],_b8Y_,_b8X_)} - catch(_b9D_) - {_b9D_ = caml_wrap_exception(_b9D_); - if(_b9D_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_m__]; - throw _b9D_} - var - _b80_= - caml_call1(Runtime_ocaml_Runtime[18],embed_tranche_revenu_decimal), - tranches_revenus_d832_26_multi= - caml_call3(Runtime_ocaml_Runtime[28],_nc_,_b80_,_b8Z_); - try - {var - _b81_= - function(param) - {var - ressources_menage_arrondies$0= - caml_call1 - (Runtime_ocaml_Runtime[70],ressources_menage_arrondies), - _b9m_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$11), - _b9n_= - caml_call1 - (Runtime_ocaml_Runtime[70],montant_forfaitaire_d832_26), - _b9o_= + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _R4_ = + [0, + cst_CalculAidePersonnalis_eLog, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _R5_ = + [0, + cst_CalculAidePersonnalis_eLog, + [0, cst_traitement_aide_finale$9, 0]], + _R6_ = + [0, + cst_CalculAidePersonnalis_eLog, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _R7_ = + [0, + cst_CalculAidePersonnalis_eLog, + [0, cst_traitement_aide_finale$9, 0]], + _R8_ = + [0, + cst_CalculAllocationLogement, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _R9_ = + [0, cst_CalculAllocationLogement, [0, cst_traitement_aide_finale$9, 0]], + _R__ = + [0, + cst_CalculAllocationLogement, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _R$_ = + [0, cst_CalculAllocationLogement, [0, cst_traitement_aide_finale$9, 0]], + _Sb_ = + [0, + cst_examples_aides_logement_pr, + 1174, + 12, + 1174, + 34, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _R3_ = + [0, + cst_examples_aides_logement_pr, + 1174, + 12, + 1174, + 34, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _R0_ = + [0, + cst_examples_aides_logement_co, + 1102, + 14, + 1102, + 25, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _RW_ = + [0, + cst_examples_aides_logement_pr, + 1224, + 14, + 1224, + 63, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _RQ_ = + [0, + cst_examples_aides_logement_pr, + 1219, + 14, + 1219, + 58, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _RM_ = + [0, + cst_examples_aides_logement_pr, + 1215, + 14, + 1215, + 62, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _RI_ = + [0, + cst_examples_aides_logement_pr, + 1211, + 14, + 1211, + 53, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _RE_ = + [0, + cst_examples_aides_logement_pr, + 1205, + 5, + 1205, + 65, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _RA_ = + [0, + cst_examples_aides_logement_pr, + 1200, + 14, + 1200, + 68, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Rw_ = + [0, + cst_examples_aides_logement_pr, + 1196, + 14, + 1196, + 66, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Rs_ = + [0, + cst_examples_aides_logement_co, + 1111, + 14, + 1111, + 58, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Rr_ = [0, 0], + _Rn_ = + [0, + cst_examples_aides_logement_pr, + 1192, + 14, + 1192, + 64, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Rh_ = + [0, + cst_examples_aides_logement_pr, + 1221, + 14, + 1221, + 50, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Rd_ = + [0, + cst_examples_aides_logement_co, + 1113, + 14, + 1113, + 50, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Ra_ = [2, 0], + _Rb_ = [1, 0], + _Rc_ = [2, 0], + _Q8_ = + [0, + cst_examples_aides_logement_pr, + 1217, + 14, + 1217, + 54, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Q4_ = + [0, + cst_examples_aides_logement_pr, + 1213, + 14, + 1213, + 45, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Q0_ = + [0, + cst_examples_aides_logement_pr, + 1209, + 14, + 1209, + 66, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QW_ = + [0, + cst_examples_aides_logement_pr, + 1202, + 14, + 1202, + 60, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QS_ = + [0, + cst_examples_aides_logement_pr, + 1198, + 14, + 1198, + 58, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QO_ = + [0, + cst_examples_aides_logement_pr, + 1194, + 14, + 1194, + 56, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QI_ = + [0, + cst_examples_aides_logement_pr, + 1188, + 14, + 1188, + 67, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QE_ = + [0, + cst_examples_aides_logement_pr, + 1184, + 14, + 1184, + 63, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QA_ = + [0, + cst_examples_aides_logement_pr, + 1180, + 14, + 1180, + 60, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qu_ = + [0, + cst_examples_aides_logement_co, + 1097, + 5, + 1097, + 74, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Qq_ = + [0, + cst_examples_aides_logement_pr, + 1186, + 14, + 1186, + 55, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qm_ = + [0, + cst_examples_aides_logement_pr, + 1182, + 14, + 1182, + 52, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qi_ = + [0, + cst_examples_aides_logement_pr, + 1190, + 14, + 1190, + 59, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qj_ = + [0, + cst_examples_aides_logement_pr, + 1190, + 14, + 1190, + 59, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qk_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "\xc3\xa9ligibilit\xc3\xa9_allocation_logement.date_courante", 0]], + _Qh_ = + [0, + cst_examples_aides_logement_pr, + 1190, + 14, + 1190, + 59, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qn_ = + [0, + cst_examples_aides_logement_pr, + 1182, + 14, + 1182, + 52, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qo_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "\xc3\xa9ligibilit\xc3\xa9_allocation_logement.m\xc3\xa9nage", 0]], + _Ql_ = + [0, + cst_examples_aides_logement_pr, + 1182, + 14, + 1182, + 52, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qr_ = + [0, + cst_examples_aides_logement_pr, + 1186, + 14, + 1186, + 55, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qs_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "\xc3\xa9ligibilit\xc3\xa9_allocation_logement.demandeur", 0]], + _Qp_ = + [0, + cst_examples_aides_logement_pr, + 1186, + 14, + 1186, + 55, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qv_ = + [0, + cst_examples_aides_logement_co, + 1097, + 5, + 1097, + 74, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Qw_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + "\xc3\xa9ligibilit\xc3\xa9_allocation_logement.b\xc3\xa9n\xc3\xa9ficie_aide_personnalis\xc3\xa9e_logement", + 0]], + _Qt_ = + [0, + cst_examples_aides_logement_co, + 1097, + 5, + 1097, + 74, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Qx_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + cst_ligibilit_allocation_logem, + [0, cst_ligibilit_AllocationLogeme, 0]]], + _Qy_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + cst_ligibilit_allocation_logem, + [0, cst_ligibilit_AllocationLogeme, 0]]], + _QB_ = + [0, + cst_examples_aides_logement_pr, + 1180, + 14, + 1180, + 60, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QC_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + "\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.m\xc3\xa9nage", + 0]], + _Qz_ = + [0, + cst_examples_aides_logement_pr, + 1180, + 14, + 1180, + 60, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QF_ = + [0, + cst_examples_aides_logement_pr, + 1184, + 14, + 1184, + 63, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QG_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + "\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.demandeur", + 0]], + _QD_ = + [0, + cst_examples_aides_logement_pr, + 1184, + 14, + 1184, + 63, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QJ_ = + [0, + cst_examples_aides_logement_pr, + 1188, + 14, + 1188, + 67, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QK_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + "\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.date_courante", + 0]], + _QH_ = + [0, + cst_examples_aides_logement_pr, + 1188, + 14, + 1188, + 67, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QL_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + cst_ligibilit_aide_personnalis, + [0, cst_ligibilit_AidePersonnalis_, 0]]], + _QM_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + cst_ligibilit_aide_personnalis, + [0, cst_ligibilit_AidePersonnalis_, 0]]], + _QP_ = + [0, + cst_examples_aides_logement_pr, + 1194, + 14, + 1194, + 56, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QQ_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_allocation_logement.mode_occupation", 0]], + _QN_ = + [0, + cst_examples_aides_logement_pr, + 1194, + 14, + 1194, + 56, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QT_ = + [0, + cst_examples_aides_logement_pr, + 1198, + 14, + 1198, + 58, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QU_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + "calcul_allocation_logement.ressources_m\xc3\xa9nage_sans_arrondi", + 0]], + _QR_ = + [0, + cst_examples_aides_logement_pr, + 1198, + 14, + 1198, + 58, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QX_ = + [0, + cst_examples_aides_logement_pr, + 1202, + 14, + 1202, + 60, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QY_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_allocation_logement.situation_familiale", 0]], + _QV_ = + [0, + cst_examples_aides_logement_pr, + 1202, + 14, + 1202, + 60, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Q1_ = + [0, + cst_examples_aides_logement_pr, + 1209, + 14, + 1209, + 66, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Q2_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_allocation_logement.nombre_personnes_\xc3\xa0_charge", 0]], + _QZ_ = + [0, + cst_examples_aides_logement_pr, + 1209, + 14, + 1209, + 66, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Q5_ = + [0, + cst_examples_aides_logement_pr, + 1213, + 14, + 1213, + 45, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Q6_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_allocation_logement.zone", 0]], + _Q3_ = + [0, + cst_examples_aides_logement_pr, + 1213, + 14, + 1213, + 45, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Q9_ = + [0, + cst_examples_aides_logement_pr, + 1217, + 14, + 1217, + 54, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Q__ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_allocation_logement.date_courante", 0]], + _Q7_ = + [0, + cst_examples_aides_logement_pr, + 1217, + 14, + 1217, + 54, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Re_ = + [0, + cst_examples_aides_logement_co, + 1113, + 14, + 1113, + 50, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Rf_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_allocation_logement.type_aide", 0]], + _Q$_ = + [0, + cst_examples_aides_logement_co, + 1113, + 14, + 1113, + 50, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Ri_ = + [0, + cst_examples_aides_logement_pr, + 1221, + 14, + 1221, + 50, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Rj_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_allocation_logement.r\xc3\xa9sidence", 0]], + _Rg_ = + [0, + cst_examples_aides_logement_pr, + 1221, + 14, + 1221, + 50, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Rk_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + cst_calcul_allocation_logement, + [0, cst_CalculAllocationLogement, 0]]], + _Rl_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + cst_calcul_allocation_logement, + [0, cst_CalculAllocationLogement, 0]]], + _Ro_ = + [0, + cst_examples_aides_logement_pr, + 1192, + 14, + 1192, + 64, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Rp_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_aide_personnalis\xc3\xa9e_logement.mode_occupation", 0]], + _Rm_ = + [0, + cst_examples_aides_logement_pr, + 1192, + 14, + 1192, + 64, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Rt_ = + [0, + cst_examples_aides_logement_co, + 1111, + 14, + 1111, + 58, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Ru_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_aide_personnalis\xc3\xa9e_logement.type_aide", 0]], + _Rq_ = + [0, + cst_examples_aides_logement_co, + 1111, + 14, + 1111, + 58, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Rx_ = + [0, + cst_examples_aides_logement_pr, + 1196, + 14, + 1196, + 66, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Ry_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + "calcul_aide_personnalis\xc3\xa9e_logement.ressources_m\xc3\xa9nage_sans_arrondi", + 0]], + _Rv_ = + [0, + cst_examples_aides_logement_pr, + 1196, + 14, + 1196, + 66, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _RB_ = + [0, + cst_examples_aides_logement_pr, + 1200, + 14, + 1200, + 68, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _RC_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_aide_personnalis\xc3\xa9e_logement.situation_familiale", 0]], + _Rz_ = + [0, + cst_examples_aides_logement_pr, + 1200, + 14, + 1200, + 68, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _RF_ = + [0, + cst_examples_aides_logement_pr, + 1205, + 5, + 1205, + 65, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _RG_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + "calcul_aide_personnalis\xc3\xa9e_logement.nombre_personnes_\xc3\xa0_charge", + 0]], + _RD_ = + [0, + cst_examples_aides_logement_pr, + 1205, + 5, + 1205, + 65, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _RJ_ = + [0, + cst_examples_aides_logement_pr, + 1211, + 14, + 1211, + 53, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _RK_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_aide_personnalis\xc3\xa9e_logement.zone", 0]], + _RH_ = + [0, + cst_examples_aides_logement_pr, + 1211, + 14, + 1211, + 53, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _RN_ = + [0, + cst_examples_aides_logement_pr, + 1215, + 14, + 1215, + 62, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _RO_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_aide_personnalis\xc3\xa9e_logement.date_courante", 0]], + _RL_ = + [0, + cst_examples_aides_logement_pr, + 1215, + 14, + 1215, + 62, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _RR_ = + [0, + cst_examples_aides_logement_pr, + 1219, + 14, + 1219, + 58, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _RS_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_aide_personnalis\xc3\xa9e_logement.r\xc3\xa9sidence", 0]], + _RP_ = + [0, + cst_examples_aides_logement_pr, + 1219, + 14, + 1219, + 58, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _RT_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + cst_calcul_aide_personnalis_e_, + [0, cst_CalculAidePersonnalis_eLog, 0]]], + _RU_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + cst_calcul_aide_personnalis_e_, + [0, cst_CalculAidePersonnalis_eLog, 0]]], + _RX_ = + [0, + cst_examples_aides_logement_pr, + 1176, + 12, + 1176, + 61, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _RV_ = + [0, + cst_examples_aides_logement_pr, + 1176, + 12, + 1176, + 61, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _RY_ = + [0, + cst_CalculetteAidesAuLogement, + [0, cst_coefficents_enfants_garde_$3, 0]], + _R1_ = + [0, + cst_examples_aides_logement_pr, + 1172, + 12, + 1172, + 23, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _RZ_ = + [0, + cst_examples_aides_logement_pr, + 1172, + 12, + 1172, + 23, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _R2_ = [0, cst_CalculetteAidesAuLogement, [0, cst_ligibilit$4, 0]], + _Sc_ = + [0, cst_CalculetteAidesAuLogement, [0, cst_traitement_aide_finale$9, 0]], + _Sn_ = + [0, + cst_examples_aides_logement_pr, + 1173, + 12, + 1173, + 31, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Sd_ = + [0, + cst_examples_aides_logement_pr, + 1173, + 12, + 1173, + 31, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _So_ = + [0, cst_CalculetteAidesAuLogement, [0, cst_aide_finale_formule$9, 0]], + _Qc_ = + [0, + cst_examples_aides_logement_co, + 1278, + 5, + 1279, + 54, + [0, + "Article L860-3", + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], + _Qd_ = + [0, + cst_examples_aides_logement_pr, + 402, + 12, + 402, + 23, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Qb_ = + [0, + cst_examples_aides_logement_co, + 627, + 5, + 629, + 36, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], + _Qe_ = + [0, + cst_examples_aides_logement_pr, + 402, + 12, + 402, + 23, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Qa_ = + [0, + cst_examples_aides_logement_pr, + 402, + 12, + 402, + 23, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _P5_ = + [0, + cst_examples_aides_logement_co, + 777, + 5, + 790, + 30, + [0, + cst_Article_L831_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _P6_ = + [0, + cst_examples_aides_logement_pr, + 396, + 11, + 396, + 34, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _P4_ = + [0, + cst_examples_aides_logement_co, + 758, + 5, + 763, + 30, + [0, + cst_Article_L831_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _P7_ = + [0, + cst_examples_aides_logement_pr, + 396, + 11, + 396, + 34, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _P3_ = + [0, + cst_examples_aides_logement_co, + 753, + 31, + 753, + 54, + [0, + cst_Article_L831_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _P8_ = + [0, + cst_examples_aides_logement_pr, + 396, + 11, + 396, + 34, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _P2_ = + [0, + cst_examples_aides_logement_pr, + 396, + 11, + 396, + 34, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _PY_ = + [0, + cst_examples_aides_logement_pr, + 413, + 14, + 413, + 56, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _PU_ = + [0, + cst_examples_aides_logement_pr, + 415, + 14, + 415, + 63, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _PO_ = + [0, + cst_examples_aides_logement_co, + 1412, + 5, + 1415, + 30, + [0, + "Article L861-5-1", + [0, + "Section 3 : Aide personnalis\xc3\xa9e au logement", + [0, + cst_Chapitre_Ier_Guadeloupe_Gu, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _PP_ = + [0, + cst_examples_aides_logement_pr, + 395, + 11, + 395, + 38, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _PN_ = + [0, + cst_examples_aides_logement_co, + 721, + 5, + 724, + 30, + [0, + cst_Article_L831_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _PQ_ = + [0, + cst_examples_aides_logement_pr, + 395, + 11, + 395, + 38, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _PH_ = + [0, + cst_examples_aides_logement_co$0, + 3690, + 5, + 3695, + 30, + [0, + "Article R832-21", + [0, + "Sous-Section 1 : Conditions d'assimilation des logements-foyers aux logements \xc3\xa0 usage locatif", + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _PI_ = + [0, + cst_examples_aides_logement_pr, + 395, + 11, + 395, + 38, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _PD_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_caract_ristiques_pr_t_l831, [0, cst_input0, 0]]], + _PE_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_caract_ristiques_pr_t_l831, 0]], + _PF_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_caract_ristiques_pr_t_l831, [0, cst_output, 0]]], + _PG_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_caract_ristiques_pr_t_l831, 0]], + _PC_ = + [0, + cst_examples_aides_logement_co, + 738, + 5, + 741, + 30, + [0, + cst_Article_L831_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _PJ_ = + [0, + cst_examples_aides_logement_pr, + 395, + 11, + 395, + 38, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _PB_ = + [0, + cst_examples_aides_logement_co, + 677, + 5, + 686, + 30, + [0, + cst_Article_L831_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _PK_ = + [0, + cst_examples_aides_logement_pr, + 395, + 11, + 395, + 38, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Px_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_caract_ristiques_pr_t_l831$0, [0, cst_input0, 0]]], + _Py_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_caract_ristiques_pr_t_l831$0, 0]], + _Pz_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_caract_ristiques_pr_t_l831$0, [0, cst_output, 0]]], + _PA_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_caract_ristiques_pr_t_l831$0, 0]], + _Pw_ = + [0, + cst_examples_aides_logement_co, + 656, + 5, + 659, + 30, + [0, + cst_Article_L831_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _PL_ = + [0, + cst_examples_aides_logement_pr, + 395, + 11, + 395, + 38, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _PM_ = + [0, + cst_examples_aides_logement_pr, + 395, + 11, + 395, + 38, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pv_ = + [0, + cst_examples_aides_logement_pr, + 395, + 11, + 395, + 38, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pq_ = + [0, + cst_examples_aides_logement_ar, + 4638, + 6, + 4638, + 43, + [0, + "Article 49", + [0, + "Chapitre XI : Dispositions communes", + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + _Pr_ = + [0, + cst_examples_aides_logement_pr, + 394, + 11, + 394, + 53, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pp_ = + [0, + cst_examples_aides_logement_pr, + 394, + 11, + 394, + 53, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pj_ = + [0, + cst_examples_aides_logement_co$0, + 5468, + 5, + 5469, + 53, + [0, + cst_Article_R861_5, + [0, + cst_Capitre_I_Guadeloupe_Guyan, + [0, + cst_Titre_VI_Disposition_parti, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Pk_ = + [0, + cst_examples_aides_logement_co$0, + 5467, + 14, + 5467, + 66, + [0, + cst_Article_R861_5, + [0, + cst_Capitre_I_Guadeloupe_Guyan, + [0, + cst_Titre_VI_Disposition_parti, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Pl_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, + "\xc3\xa9ligibilit\xc3\xa9_commune.date_entr\xc3\xa9e_vigueur_diff\xc3\xa9r\xc3\xa9e_cch", + 0]], + _Pg_ = + [0, + cst_examples_aides_logement_pr, + 411, + 14, + 411, + 47, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pc_ = + [0, + cst_examples_aides_logement_pr, + 410, + 14, + 410, + 43, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _O__ = + [0, + cst_examples_aides_logement_pr, + 409, + 14, + 409, + 40, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _O6_ = + [0, + cst_examples_aides_logement_pr, + 398, + 11, + 398, + 41, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _O7_ = + [0, + cst_examples_aides_logement_pr, + 398, + 11, + 398, + 41, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _O5_ = + [0, + cst_examples_aides_logement_pr, + 398, + 11, + 398, + 41, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _OZ_ = + [0, + cst_examples_aides_logement_co$0, + 3018, + 5, + 3021, + 41, + [0, + "Article R832-7", + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _O0_ = + [0, + cst_examples_aides_logement_pr, + 397, + 11, + 397, + 41, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _OY_ = + [0, + cst_examples_aides_logement_co$0, + 2983, + 5, + 2985, + 42, + [0, + "Article R832-5", + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _O1_ = + [0, + cst_examples_aides_logement_pr, + 397, + 11, + 397, + 41, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _O2_ = + [0, + cst_examples_aides_logement_pr, + 397, + 11, + 397, + 41, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _OX_ = + [0, + cst_examples_aides_logement_pr, + 397, + 11, + 397, + 41, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _O3_ = + [0, + cst_examples_aides_logement_pr, + 397, + 11, + 397, + 41, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _OW_ = + [0, + cst_examples_aides_logement_pr, + 397, + 11, + 397, + 41, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _O4_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_caract_ristiques_pr_t_l831$0, 0]], + _O8_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_caract_ristiques_pr_t_l831, 0]], + _O$_ = + [0, + cst_examples_aides_logement_pr, + 409, + 14, + 409, + 40, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pa_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_ligibilit_commune_m_nage, 0]], + _O9_ = + [0, + cst_examples_aides_logement_pr, + 409, + 14, + 409, + 40, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pd_ = + [0, + cst_examples_aides_logement_pr, + 410, + 14, + 410, + 43, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pe_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_ligibilit_commune_demandeu, 0]], + _Pb_ = + [0, + cst_examples_aides_logement_pr, + 410, + 14, + 410, + 43, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ph_ = + [0, + cst_examples_aides_logement_pr, + 411, + 14, + 411, + 47, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pi_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_ligibilit_commune_date_cou, 0]], + _Pf_ = + [0, + cst_examples_aides_logement_pr, + 411, + 14, + 411, + 47, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pm_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_ligibilit_commune, [0, cst_ligibilit_AidesPersonnelle, 0]]], + _Pn_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_ligibilit_commune, [0, cst_ligibilit_AidesPersonnelle, 0]]], + _Ps_ = + [0, + cst_examples_aides_logement_pr, + 394, + 11, + 394, + 53, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Po_ = + [0, + cst_examples_aides_logement_pr, + 394, + 11, + 394, + 53, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pt_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, + "logement_situ\xc3\xa9_commune_d\xc3\xa9s\xc3\xa9quilibre_l831_2", + 0]], + _PR_ = + [0, + cst_examples_aides_logement_pr, + 395, + 11, + 395, + 38, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pu_ = + [0, + cst_examples_aides_logement_pr, + 395, + 11, + 395, + 38, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _PS_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, "condition_logement_bailleur", 0]], + _PV_ = + [0, + cst_examples_aides_logement_pr, + 404, + 12, + 404, + 61, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _PT_ = + [0, + cst_examples_aides_logement_pr, + 404, + 12, + 404, + 61, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _PW_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_coefficents_enfants_garde_$3, 0]], + _PZ_ = + [0, + cst_examples_aides_logement_pr, + 403, + 12, + 403, + 54, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _PX_ = + [0, + cst_examples_aides_logement_pr, + 403, + 12, + 403, + 54, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _P0_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_nombre_personnes_charge_pr$2, 0]], + _P9_ = + [0, + cst_examples_aides_logement_pr, + 396, + 11, + 396, + 34, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _P1_ = + [0, + cst_examples_aides_logement_pr, + 396, + 11, + 396, + 34, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _P__ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, "condition_logement_pr\xc3\xaat", 0]], + _Qf_ = + [0, + cst_examples_aides_logement_pr, + 402, + 12, + 402, + 23, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _P$_ = + [0, + cst_examples_aides_logement_pr, + 402, + 12, + 402, + 23, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Qg_ = [0, cst_ligibilit_AidePersonnalis_, [0, cst_ligibilit$4, 0]], + _OQ_ = + [0, + cst_examples_aides_logement_co, + 1631, + 5, + 1632, + 79, + [0, + "Article L816-8", + [0, + cst_Section_4_Allocations_de_l, + [0, + cst_Chapitre_Ier_Guadeloupe_Gu, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _OP_ = [0, 0], + _OR_ = + [0, + cst_examples_aides_logement_pr, + 451, + 10, + 451, + 16, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _OO_ = + [0, + cst_examples_aides_logement_co, + 1597, + 5, + 1606, + 28, + [0, + cst_Article_L861_6, + [0, + cst_Section_4_Allocations_de_l, + [0, + cst_Chapitre_Ier_Guadeloupe_Gu, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _ON_ = [0, 0], + _OS_ = + [0, + cst_examples_aides_logement_pr, + 451, + 10, + 451, + 16, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _OL_ = + [0, + cst_examples_aides_logement_co, + 1181, + 5, + 1181, + 73, + [0, + "Article L841-3", + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _OK_ = [2, 0], + _OM_ = + [0, + cst_examples_aides_logement_pr, + 451, + 10, + 451, + 16, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _OJ_ = + [0, + cst_examples_aides_logement_co, + 1195, + 5, + 1198, + 28, + [0, + "Article L841-4", + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _OI_ = [0, 0], + _OT_ = + [0, + cst_examples_aides_logement_pr, + 451, + 10, + 451, + 16, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _OH_ = + [0, + cst_examples_aides_logement_co, + 1081, + 29, + 1081, + 40, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _OD_ = [0, 0], + _OE_ = [0, 0], + _OF_ = [1, 0], + _OG_ = [2, 0], + _Or_ = + [0, + cst_examples_aides_logement_co, + 1811, + 5, + 1811, + 66, + [0, + cst_Article_L862_3, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], + _Os_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ok_ = [2, 0], + _Op_ = [0, 0], + _Ol_ = + [0, + cst_ligibilit_PrestationsFamil, + [0, cst_droit_ouvert$0, [0, cst_input0, 0]]], + _Om_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], + _On_ = + [0, + cst_ligibilit_PrestationsFamil, + [0, cst_droit_ouvert$0, [0, cst_output, 0]]], + _Oo_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], + cst_1$253 = cst_1$254, + _Oq_ = + [0, + cst_examples_aides_logement_co, + 1771, + 5, + 1792, + 9, + [0, + cst_Article_L862_3, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], + _Ot_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Oh_ = + [0, + cst_examples_aides_logement_co, + 1521, + 5, + 1521, + 66, + [0, + cst_Article_L861_6, + [0, + cst_Section_4_Allocations_de_l, + [0, + cst_Chapitre_Ier_Guadeloupe_Gu, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Oi_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Oa_ = [2, 0], + _Of_ = [0, 0], + _Ob_ = + [0, + cst_ligibilit_PrestationsFamil, + [0, cst_droit_ouvert$0, [0, cst_input0, 0]]], + _Oc_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], + _Od_ = + [0, + cst_ligibilit_PrestationsFamil, + [0, cst_droit_ouvert$0, [0, cst_output, 0]]], + _Oe_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], + cst_1$252 = cst_1$254, + _Og_ = + [0, + cst_examples_aides_logement_co, + 1479, + 5, + 1500, + 9, + [0, + cst_Article_L861_6, + [0, + cst_Section_4_Allocations_de_l, + [0, + cst_Chapitre_Ier_Guadeloupe_Gu, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Oj_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_0$355 = cst_0$360, + _N$_ = + [0, + cst_examples_aides_logement_co, + 1049, + 5, + 1054, + 29, + [0, + cst_Article_L841_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Ou_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_1$251 = cst_1$254, + _N__ = + [0, + cst_examples_aides_logement_co, + 1023, + 5, + 1034, + 13, + [0, + cst_Article_L841_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Ov_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _N5_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_condition_2_r823_4$0, [0, cst_input0, 0]]], + _N6_ = + [0, cst_ligibilit_AidesPersonnelle, [0, cst_condition_2_r823_4$0, 0]], + _N7_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_condition_2_r823_4$0, [0, cst_output, 0]]], + _N8_ = + [0, cst_ligibilit_AidesPersonnelle, [0, cst_condition_2_r823_4$0, 0]], + cst_1$250 = cst_1$254, + _N9_ = + [0, + cst_examples_aides_logement_co, + 1005, + 5, + 1007, + 9, + [0, + cst_Article_L841_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Ow_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _NY_ = [2, 0], + _N3_ = [0, 0], + _NZ_ = + [0, + cst_ligibilit_PrestationsFamil, + [0, cst_droit_ouvert$0, [0, cst_input0, 0]]], + _N0_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], + _N1_ = + [0, + cst_ligibilit_PrestationsFamil, + [0, cst_droit_ouvert$0, [0, cst_output, 0]]], + _N2_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], + cst_0$354 = cst_0$360, + _N4_ = + [0, + cst_examples_aides_logement_co, + 965, + 5, + 991, + 29, + [0, + cst_Article_L841_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Ox_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _NR_ = [2, 0], + _NW_ = [0, 0], + _NS_ = + [0, + cst_ligibilit_PrestationsFamil, + [0, cst_droit_ouvert$0, [0, cst_input0, 0]]], + _NT_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], + _NU_ = + [0, + cst_ligibilit_PrestationsFamil, + [0, cst_droit_ouvert$0, [0, cst_output, 0]]], + _NV_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], + cst_1$249 = cst_1$254, + _NX_ = + [0, + cst_examples_aides_logement_co, + 932, + 5, + 954, + 8, + [0, + cst_Article_L841_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Oy_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _NM_ = [4, 0], + _NN_ = [3, 0], + _NO_ = [1, 0], + _NP_ = [0, 0], + _NQ_ = + [0, + cst_examples_aides_logement_co, + 909, + 5, + 915, + 6, + [0, + cst_Article_L841_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Oz_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _NL_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _NH_ = + [0, + cst_examples_aides_logement_co, + 877, + 14, + 877, + 25, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], + _NF_ = [0, 0], + _NG_ = [2, 0], + _NB_ = + [0, + cst_examples_aides_logement_pr, + 468, + 14, + 468, + 56, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Nx_ = + [0, + cst_examples_aides_logement_pr, + 470, + 14, + 470, + 63, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Nr_ = + [0, + cst_examples_aides_logement_co$0, + 4778, + 9, + 4778, + 55, + [0, + cst_Article_R842_14, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Ns_ = + [0, + cst_examples_aides_logement_co$0, + 4778, + 9, + 4778, + 55, + [0, + cst_Article_R842_14, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Nt_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, "\xc3\xa9ligibilit\xc3\xa9_commune.condition_logement_surface", 0]], + _No_ = + [0, + cst_examples_aides_logement_co$0, + 4777, + 9, + 4777, + 68, + [0, + cst_Article_R842_14, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Np_ = + [0, + cst_examples_aides_logement_co$0, + 4777, + 9, + 4777, + 68, + [0, + cst_Article_R842_14, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Nq_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, + "\xc3\xa9ligibilit\xc3\xa9_commune.condition_logement_r\xc3\xa9sidence_principale", + 0]], + _Nl_ = + [0, + cst_examples_aides_logement_pr, + 466, + 14, + 466, + 47, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Nh_ = + [0, + cst_examples_aides_logement_pr, + 465, + 14, + 465, + 43, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Nd_ = + [0, + cst_examples_aides_logement_pr, + 464, + 14, + 464, + 40, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _M6_ = + [0, + cst_examples_aides_logement_co$0, + 4372, + 5, + 4377, + 28, + [0, + cst_Article_R842_5, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _M7_ = + [0, + cst_examples_aides_logement_pr, + 437, + 11, + 437, + 40, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _M5_ = + [0, + cst_examples_aides_logement_co$0, + 4355, + 5, + 4360, + 28, + [0, + cst_Article_R842_5, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _M8_ = + [0, + cst_examples_aides_logement_pr, + 437, + 11, + 437, + 40, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _M4_ = + [0, + cst_examples_aides_logement_co$0, + 4338, + 5, + 4345, + 28, + [0, + cst_Article_R842_5, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _M9_ = + [0, + cst_examples_aides_logement_pr, + 437, + 11, + 437, + 40, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _M__ = + [0, + cst_examples_aides_logement_pr, + 437, + 11, + 437, + 40, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _M3_ = + [0, + cst_examples_aides_logement_co$0, + 4308, + 5, + 4310, + 28, + [0, + cst_Article_R842_5, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _M$_ = + [0, + cst_examples_aides_logement_pr, + 437, + 11, + 437, + 40, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _M2_ = + [0, + cst_examples_aides_logement_pr, + 437, + 11, + 437, + 40, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MW_ = + [0, + cst_examples_aides_logement_co, + 905, + 9, + 905, + 29, + [0, + cst_Article_L841_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _MX_ = + [0, + cst_examples_aides_logement_pr, + 438, + 11, + 438, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MT_ = + [0, + cst_examples_aides_logement_co, + 1747, + 9, + 1747, + 29, + [0, + cst_Article_L862_3, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], + _MU_ = + [0, + cst_examples_aides_logement_pr, + 438, + 11, + 438, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MS_ = + [0, + cst_examples_aides_logement_co, + 1441, + 9, + 1441, + 29, + [0, + cst_Article_L861_6, + [0, + cst_Section_4_Allocations_de_l, + [0, + cst_Chapitre_Ier_Guadeloupe_Gu, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _MV_ = + [0, + cst_examples_aides_logement_pr, + 438, + 11, + 438, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MY_ = + [0, + cst_examples_aides_logement_pr, + 438, + 11, + 438, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MR_ = + [0, + cst_examples_aides_logement_pr, + 438, + 11, + 438, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ML_ = + [0, + cst_examples_aides_logement_co, + 927, + 9, + 927, + 29, + [0, + cst_Article_L841_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _MM_ = + [0, + cst_examples_aides_logement_pr, + 439, + 11, + 439, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MI_ = + [0, + cst_examples_aides_logement_co, + 1748, + 9, + 1748, + 29, + [0, + cst_Article_L862_3, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], + _MJ_ = + [0, + cst_examples_aides_logement_pr, + 439, + 11, + 439, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MH_ = + [0, + cst_examples_aides_logement_co, + 1442, + 9, + 1442, + 29, + [0, + cst_Article_L861_6, + [0, + cst_Section_4_Allocations_de_l, + [0, + cst_Chapitre_Ier_Guadeloupe_Gu, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _MK_ = + [0, + cst_examples_aides_logement_pr, + 439, + 11, + 439, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MN_ = + [0, + cst_examples_aides_logement_pr, + 439, + 11, + 439, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MG_ = + [0, + cst_examples_aides_logement_pr, + 439, + 11, + 439, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MA_ = + [0, + cst_examples_aides_logement_co, + 1044, + 9, + 1044, + 29, + [0, + cst_Article_L841_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _MB_ = + [0, + cst_examples_aides_logement_pr, + 440, + 11, + 440, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Mx_ = + [0, + cst_examples_aides_logement_co, + 1749, + 9, + 1749, + 29, + [0, + cst_Article_L862_3, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], + _My_ = + [0, + cst_examples_aides_logement_pr, + 440, + 11, + 440, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Mw_ = + [0, + cst_examples_aides_logement_co, + 1443, + 9, + 1443, + 29, + [0, + cst_Article_L861_6, + [0, + cst_Section_4_Allocations_de_l, + [0, + cst_Chapitre_Ier_Guadeloupe_Gu, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Mz_ = + [0, + cst_examples_aides_logement_pr, + 440, + 11, + 440, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MC_ = + [0, + cst_examples_aides_logement_pr, + 440, + 11, + 440, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Mv_ = + [0, + cst_examples_aides_logement_pr, + 440, + 11, + 440, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Mp_ = + [0, + cst_examples_aides_logement_pr, + 462, + 14, + 462, + 46, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ml_ = + [0, + cst_examples_aides_logement_pr, + 460, + 14, + 460, + 56, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Mk_ = [3, 0], + _Mg_ = + [0, + cst_examples_aides_logement_pr, + 459, + 14, + 459, + 50, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Mc_ = + [0, + cst_examples_aides_logement_co$0, + 4179, + 14, + 4179, + 28, + [0, + "Article D841-1", + [0, + "Chapitre 1 : Champ d'application", + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Md_ = + [0, + cst_examples_aides_logement_pr, + 443, + 11, + 443, + 25, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Mb_ = + [0, + cst_examples_aides_logement_pr, + 443, + 11, + 443, + 25, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Me_ = + [0, cst_ligibilit_AllocationLogeme, [0, "dur\xc3\xa9e_l841_1_3", 0]], + _Mh_ = + [0, + cst_examples_aides_logement_pr, + 459, + 14, + 459, + 50, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Mi_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, cst_prestations_familiales_dat, 0]], + _Mf_ = + [0, + cst_examples_aides_logement_pr, + 459, + 14, + 459, + 50, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Mm_ = + [0, + cst_examples_aides_logement_pr, + 460, + 14, + 460, + 56, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Mn_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, cst_prestations_familiales_pre, 0]], + _Mj_ = + [0, + cst_examples_aides_logement_pr, + 460, + 14, + 460, + 56, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Mq_ = + [0, + cst_examples_aides_logement_pr, + 462, + 14, + 462, + 46, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Mr_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, cst_prestations_familiales_r_s, 0]], + _Mo_ = + [0, + cst_examples_aides_logement_pr, + 462, + 14, + 462, + 46, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ms_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, cst_prestations_familiales, [0, cst_ligibilit_PrestationsFamil, 0]]], + _Mt_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, cst_prestations_familiales, [0, cst_ligibilit_PrestationsFamil, 0]]], + _MD_ = + [0, + cst_examples_aides_logement_pr, + 440, + 11, + 440, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Mu_ = + [0, + cst_examples_aides_logement_pr, + 440, + 11, + 440, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ME_ = [0, cst_ligibilit_AllocationLogeme, [0, "l_841_1_6_applicable", 0]], + _MO_ = + [0, + cst_examples_aides_logement_pr, + 439, + 11, + 439, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MF_ = + [0, + cst_examples_aides_logement_pr, + 439, + 11, + 439, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MP_ = [0, cst_ligibilit_AllocationLogeme, [0, "l_841_1_2_applicable", 0]], + _MZ_ = + [0, + cst_examples_aides_logement_pr, + 438, + 11, + 438, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MQ_ = + [0, + cst_examples_aides_logement_pr, + 438, + 11, + 438, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _M0_ = [0, cst_ligibilit_AllocationLogeme, [0, "l_841_1_1_applicable", 0]], + _Na_ = + [0, + cst_examples_aides_logement_pr, + 437, + 11, + 437, + 40, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _M1_ = + [0, + cst_examples_aides_logement_pr, + 437, + 11, + 437, + 40, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Nb_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, "condition_accession_propri\xc3\xa9t\xc3\xa9", 0]], + _Ne_ = + [0, + cst_examples_aides_logement_pr, + 464, + 14, + 464, + 40, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Nf_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, cst_ligibilit_commune_m_nage, 0]], + _Nc_ = + [0, + cst_examples_aides_logement_pr, + 464, + 14, + 464, + 40, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ni_ = + [0, + cst_examples_aides_logement_pr, + 465, + 14, + 465, + 43, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Nj_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, cst_ligibilit_commune_demandeu, 0]], + _Ng_ = + [0, + cst_examples_aides_logement_pr, + 465, + 14, + 465, + 43, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Nm_ = + [0, + cst_examples_aides_logement_pr, + 466, + 14, + 466, + 47, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Nn_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, cst_ligibilit_commune_date_cou, 0]], + _Nk_ = + [0, + cst_examples_aides_logement_pr, + 466, + 14, + 466, + 47, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Nu_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, cst_ligibilit_commune, [0, cst_ligibilit_AidesPersonnelle, 0]]], + _Nv_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, cst_ligibilit_commune, [0, cst_ligibilit_AidesPersonnelle, 0]]], + _Ny_ = + [0, + cst_examples_aides_logement_pr, + 453, + 12, + 453, + 61, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Nw_ = + [0, + cst_examples_aides_logement_pr, + 453, + 12, + 453, + 61, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Nz_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, cst_coefficents_enfants_garde_$3, 0]], + _NC_ = + [0, + cst_examples_aides_logement_pr, + 452, + 12, + 452, + 54, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _NA_ = + [0, + cst_examples_aides_logement_pr, + 452, + 12, + 452, + 54, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ND_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, cst_nombre_personnes_charge_pr$2, 0]], + _NI_ = + [0, + cst_examples_aides_logement_pr, + 450, + 10, + 450, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _NE_ = + [0, + cst_examples_aides_logement_pr, + 450, + 10, + 450, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _NJ_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, "\xc3\xa9ligibilit\xc3\xa9_dispositions_communes", 0]], + _OA_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _NK_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _OB_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, "\xc3\xa9ligibilit\xc3\xa9_allocation_logement_familiale", 0]], + _OU_ = + [0, + cst_examples_aides_logement_pr, + 451, + 10, + 451, + 16, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _OC_ = + [0, + cst_examples_aides_logement_pr, + 451, + 10, + 451, + 16, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _OV_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, "\xc3\xa9ligibilit\xc3\xa9_l841_2", 0]], + _L__ = + [0, + cst_examples_aides_logement_co$0, + 2106, + 14, + 2106, + 40, + [0, + "Article D823-22", + [0, + cst_Section_2_Prime_de_d_m_nag, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _L1_ = + [0, + cst_examples_aides_logement_co$0, + 5502, + 5, + 5502, + 40, + [0, + "Article D861-7", + [0, + cst_Capitre_I_Guadeloupe_Guyan, + [0, + cst_Titre_VI_Disposition_parti, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _L2_ = + [0, + cst_examples_aides_logement_pr, + 493, + 11, + 493, + 31, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _L0_ = + [0, + cst_examples_aides_logement_co, + 1882, + 5, + 1882, + 54, + [0, + "Article L863-2", + [0, + "Section 2 : Dispositions communes aux aides applicables \xc3\xa0 Saint-Pierre-et-Miquelon", + [0, + cst_Chapitre_III_Saint_Pierre_, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _L3_ = + [0, + cst_examples_aides_logement_pr, + 493, + 11, + 493, + 31, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LZ_ = + [0, + cst_examples_aides_logement_co, + 1314, + 5, + 1314, + 40, + [0, + "Article L861-4", + [0, + cst_Section_2_Dispositions_com, + [0, + cst_Chapitre_Ier_Guadeloupe_Gu, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _L4_ = + [0, + cst_examples_aides_logement_pr, + 493, + 11, + 493, + 31, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _L5_ = + [0, + cst_examples_aides_logement_pr, + 493, + 11, + 493, + 31, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LY_ = + [0, + cst_examples_aides_logement_co, + 599, + 5, + 602, + 42, + [0, + "Article L823-8", + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _L6_ = + [0, + cst_examples_aides_logement_pr, + 493, + 11, + 493, + 31, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LX_ = + [0, + cst_examples_aides_logement_pr, + 493, + 11, + 493, + 31, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LT_ = + [0, + cst_examples_aides_logement_ar, + 4304, + 14, + 4304, + 29, + [0, + "Article 45", + [0, + "Chapitre VIII : Prime de d\xc3\xa9m\xc3\xa9nagement", + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_3$99 = cst_3$101, + cst_0_2$1 = cst_0_2$2, + cst_3$100 = cst_3$101, + cst_0$353 = cst_0$360, + cst_2_4 = "2.4", + _LO_ = + [0, + cst_examples_aides_logement_co$0, + 2065, + 6, + 2076, + 75, + [0, + cst_Article_D823_20, + [0, + cst_Section_2_Prime_de_d_m_nag, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _LP_ = + [0, + cst_examples_aides_logement_pr, + 492, + 11, + 492, + 41, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LN_ = + [0, + cst_examples_aides_logement_pr, + 492, + 11, + 492, + 41, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LH_ = + [0, + cst_examples_aides_logement_pr, + 506, + 14, + 506, + 43, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LD_ = + [0, + cst_examples_aides_logement_pr, + 505, + 14, + 505, + 39, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Lz_ = + [0, + cst_examples_aides_logement_pr, + 504, + 14, + 504, + 36, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Lt_ = + [0, + cst_examples_aides_logement_pr, + 508, + 14, + 508, + 65, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_3$98 = cst_3$101, + _Lo_ = + [0, + cst_examples_aides_logement_co$0, + 2056, + 5, + 2061, + 77, + [0, + cst_Article_D823_20, + [0, + cst_Section_2_Prime_de_d_m_nag, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Lp_ = + [0, + cst_examples_aides_logement_pr, + 491, + 11, + 491, + 32, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ln_ = + [0, + cst_examples_aides_logement_pr, + 491, + 11, + 491, + 32, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Lj_ = + [0, + cst_examples_aides_logement_co$0, + 2080, + 14, + 2080, + 47, + [0, + cst_Article_D823_20, + [0, + cst_Section_2_Prime_de_d_m_nag, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Lk_ = + [0, + cst_examples_aides_logement_pr, + 494, + 11, + 494, + 44, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Li_ = + [0, + cst_examples_aides_logement_pr, + 494, + 11, + 494, + 44, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ll_ = + [0, + cst_ligibilit_PrimeDeD_m_nagem, + [0, "d\xc3\xa9lai_apr\xc3\xa8s_emm\xc3\xa9nagement_l823_8_2", 0]], + _Lq_ = + [0, + cst_examples_aides_logement_pr, + 491, + 11, + 491, + 32, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Lm_ = + [0, + cst_examples_aides_logement_pr, + 491, + 11, + 491, + 32, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Lr_ = + [0, cst_ligibilit_PrimeDeD_m_nagem, [0, "condition_rang_enfant", 0]], + _Lu_ = + [0, + cst_examples_aides_logement_pr, + 508, + 14, + 508, + 65, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Lv_ = + [0, + cst_ligibilit_PrimeDeD_m_nagem, + [0, cst_base_mensuelle_allocations, 0]], + _Ls_ = + [0, + cst_examples_aides_logement_pr, + 508, + 14, + 508, + 65, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Lw_ = + [0, + cst_ligibilit_PrimeDeD_m_nagem, + [0, + cst_base_mensuelle_allocations$0, + [0, cst_BaseMensuelleAllocationsFa, 0]]], + _Lx_ = + [0, + cst_ligibilit_PrimeDeD_m_nagem, + [0, + cst_base_mensuelle_allocations$0, + [0, cst_BaseMensuelleAllocationsFa, 0]]], + _LA_ = + [0, + cst_examples_aides_logement_pr, + 504, + 14, + 504, + 36, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LB_ = + [0, + cst_ligibilit_PrimeDeD_m_nagem, + [0, "\xc3\xa9ligibilit\xc3\xa9_apl.m\xc3\xa9nage", 0]], + _Ly_ = + [0, + cst_examples_aides_logement_pr, + 504, + 14, + 504, + 36, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LE_ = + [0, + cst_examples_aides_logement_pr, + 505, + 14, + 505, + 39, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LF_ = + [0, + cst_ligibilit_PrimeDeD_m_nagem, + [0, "\xc3\xa9ligibilit\xc3\xa9_apl.demandeur", 0]], + _LC_ = + [0, + cst_examples_aides_logement_pr, + 505, + 14, + 505, + 39, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LI_ = + [0, + cst_examples_aides_logement_pr, + 506, + 14, + 506, + 43, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LJ_ = + [0, + cst_ligibilit_PrimeDeD_m_nagem, + [0, "\xc3\xa9ligibilit\xc3\xa9_apl.date_courante", 0]], + _LG_ = + [0, + cst_examples_aides_logement_pr, + 506, + 14, + 506, + 43, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LK_ = + [0, + cst_ligibilit_PrimeDeD_m_nagem, + [0, cst_ligibilit_apl, [0, cst_ligibilit_AidesPersonnelle, 0]]], + _LL_ = + [0, + cst_ligibilit_PrimeDeD_m_nagem, + [0, cst_ligibilit_apl, [0, cst_ligibilit_AidesPersonnelle, 0]]], + _LQ_ = + [0, + cst_examples_aides_logement_pr, + 492, + 11, + 492, + 41, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LM_ = + [0, + cst_examples_aides_logement_pr, + 492, + 11, + 492, + 41, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LR_ = + [0, + cst_ligibilit_PrimeDeD_m_nagem, + [0, "condition_p\xc3\xa9riode_d\xc3\xa9m\xc3\xa9nagement", 0]], + _LU_ = + [0, + cst_examples_aides_logement_pr, + 495, + 11, + 495, + 26, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LS_ = + [0, + cst_examples_aides_logement_pr, + 495, + 11, + 495, + 26, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LV_ = [0, cst_ligibilit_PrimeDeD_m_nagem, [0, "plafond_d823_22", 0]], + _L7_ = + [0, + cst_examples_aides_logement_pr, + 493, + 11, + 493, + 31, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LW_ = + [0, + cst_examples_aides_logement_pr, + 493, + 11, + 493, + 31, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _L8_ = [0, cst_ligibilit_PrimeDeD_m_nagem, [0, cst_ligibilit_logement, 0]], + _L$_ = + [0, + cst_examples_aides_logement_pr, + 501, + 12, + 501, + 38, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _L9_ = + [0, + cst_examples_aides_logement_pr, + 501, + 12, + 501, + 38, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ma_ = + [0, + cst_ligibilit_PrimeDeD_m_nagem, + [0, cst_montant_prime_d_m_nagement$0, 0]], + _Le_ = + [0, + cst_examples_aides_logement_au, + 372, + 5, + 373, + 34, + [0, + cst_Article_7, + [0, + "D\xc3\xa9cret n\xc2\xb0 2021-1750 du 21 d\xc3\xa9cembre 2021 portant diverses mesures sur les aides personnelles au logement et relatif aux aides personnelles au logement \xc3\xa0 Saint-Pierre-et-Miquelon", + 0]]], + cst_8$0 = "8.", + cst_2026 = "2026", + _Lf_ = + [0, + cst_examples_aides_logement_pr, + 1109, + 12, + 1109, + 31, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Ld_ = + [0, + cst_examples_aides_logement_co$0, + 1439, + 14, + 1439, + 33, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _K$_ = + [0, + cst_examples_aides_logement_co$0, + 1441, + 14, + 1441, + 36, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _La_ = + [0, + cst_examples_aides_logement_pr, + 1110, + 12, + 1110, + 34, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _K__ = + [0, + cst_examples_aides_logement_pr, + 1110, + 12, + 1110, + 34, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _K6_ = + [0, + cst_examples_aides_logement_co$0, + 6413, + 24, + 6413, + 46, + [0, + cst_Article_D863_7, + [0, + cst_Sous_section_III_Modalit_s, + [0, + cst_Section_II_Dispositions_co, + [0, + cst_Chapitre_III_Saint_Pierre_, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _KZ_ = + [0, + cst_CalculAllocationLogementLo, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _K0_ = + [0, + cst_CalculAllocationLogementLo, + [0, cst_traitement_aide_finale$9, 0]], + _K1_ = + [0, + cst_CalculAllocationLogementLo, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _K2_ = + [0, + cst_CalculAllocationLogementLo, + [0, cst_traitement_aide_finale$9, 0]], + cst_0$350 = cst_0$360, + cst_0$351 = cst_0$360, + _KV_ = [1, 0], + cst_0$352 = cst_0$360, + _KW_ = + [0, + cst_examples_aides_logement_co$0, + 6442, + 42, + 6442, + 45, + [0, + cst_Article_D863_7, + [0, + cst_Sous_section_III_Modalit_s, + [0, + cst_Section_II_Dispositions_co, + [0, + cst_Chapitre_III_Saint_Pierre_, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _KX_ = + [0, cst_CalculAllocationLogementLo, [0, cst_direct, [0, cst_input, 0]]], + _KY_ = [0, cst_CalculAllocationLogementLo, [0, cst_direct, 0]], + _K3_ = + [0, + cst_examples_aides_logement_co$0, + 6417, + 9, + 6445, + 10, + [0, + cst_Article_D863_7, + [0, + cst_Sous_section_III_Modalit_s, + [0, + cst_Section_II_Dispositions_co, + [0, + cst_Chapitre_III_Saint_Pierre_, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _K4_ = + [0, cst_CalculAllocationLogementLo, [0, cst_direct, [0, cst_output, 0]]], + _K5_ = [0, cst_CalculAllocationLogementLo, [0, cst_direct, 0]], + _K7_ = + [0, + cst_examples_aides_logement_pr, + 1107, + 11, + 1107, + 33, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _KU_ = + [0, + cst_examples_aides_logement_co$0, + 1555, + 14, + 1555, + 36, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _KN_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _KO_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale$9, 0]], + _KP_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _KQ_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale$9, 0]], + _KE_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _KF_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale$9, 0]], + _KG_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _KH_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale$9, 0]], + _Kv_ = + [0, + cst_CalculAllocationLogementLo, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _Kw_ = + [0, + cst_CalculAllocationLogementLo, + [0, cst_traitement_aide_finale$9, 0]], + _Kx_ = + [0, + cst_CalculAllocationLogementLo, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _Ky_ = + [0, + cst_CalculAllocationLogementLo, + [0, cst_traitement_aide_finale$9, 0]], + cst_0$348 = cst_0$360, + cst_0$349 = cst_0$360, + _Ks_ = + [0, + cst_examples_aides_logement_co$0, + 1575, + 16, + 1578, + 39, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Kt_ = + [0, cst_CalculAllocationLogementLo, [0, cst_direct, [0, cst_input, 0]]], + _Ku_ = [0, cst_CalculAllocationLogementLo, [0, cst_direct, 0]], + _Kz_ = + [0, + cst_examples_aides_logement_co$0, + 1559, + 9, + 1581, + 10, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _KA_ = + [0, cst_CalculAllocationLogementLo, [0, cst_direct, [0, cst_output, 0]]], + _KB_ = [0, cst_CalculAllocationLogementLo, [0, cst_direct, 0]], + _KC_ = + [0, cst_CalculAllocationLogementAc, [0, cst_direct, [0, cst_input, 0]]], + _KD_ = [0, cst_CalculAllocationLogementAc, [0, cst_direct, 0]], + _KI_ = + [0, + cst_examples_aides_logement_co$0, + 1614, + 10, + 1633, + 11, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _KJ_ = + [0, cst_CalculAllocationLogementAc, [0, cst_direct, [0, cst_output, 0]]], + _KK_ = [0, cst_CalculAllocationLogementAc, [0, cst_direct, 0]], + _KL_ = + [0, cst_CalculAllocationLogementFo, [0, cst_direct, [0, cst_input, 0]]], + _KM_ = [0, cst_CalculAllocationLogementFo, [0, cst_direct, 0]], + _KR_ = + [0, + cst_examples_aides_logement_co$0, + 1592, + 9, + 1604, + 10, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _KS_ = + [0, cst_CalculAllocationLogementFo, [0, cst_direct, [0, cst_output, 0]]], + _KT_ = [0, cst_CalculAllocationLogementFo, [0, cst_direct, 0]], + _Ko_ = + [0, + cst_examples_aides_logement_ar, + 90, + 14, + 90, + 44, + [0, + cst_Article_7, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + _Ki_ = [0, 0], + _Kj_ = [1, 0], + _Kk_ = [1, 0], + _Kl_ = [1, 0], + _Km_ = [0, 0], + _Kn_ = [1, 0], + _Ke_ = + [0, + cst_examples_aides_logement_co$0, + 1972, + 14, + 1972, + 31, + [0, + cst_Article_D823_17, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _Ka_ = + [0, + cst_examples_aides_logement_co$0, + 1428, + 14, + 1428, + 34, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Kb_ = + [0, + cst_examples_aides_logement_pr, + 1104, + 11, + 1104, + 31, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _J$_ = + [0, + cst_examples_aides_logement_pr, + 1104, + 11, + 1104, + 31, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Kc_ = [0, cst_CalculAllocationLogement, [0, cst_cat_gorie_calcul_apl, 0]], + _Kf_ = + [0, + cst_examples_aides_logement_pr, + 1096, + 10, + 1096, + 22, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Kd_ = + [0, + cst_examples_aides_logement_pr, + 1096, + 10, + 1096, + 22, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Kg_ = + [0, + cst_CalculAllocationLogement, + [0, cst_ressources_m_nage_avec_arr, 0]], + _Kp_ = + [0, + cst_examples_aides_logement_pr, + 1105, + 11, + 1105, + 41, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Kh_ = + [0, + cst_examples_aides_logement_pr, + 1105, + 11, + 1105, + 41, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Kq_ = + [0, + cst_CalculAllocationLogement, + [0, cst_situation_familiale_calcul$7, 0]], + _K8_ = + [0, + cst_examples_aides_logement_pr, + 1107, + 11, + 1107, + 33, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Kr_ = + [0, + cst_examples_aides_logement_pr, + 1107, + 11, + 1107, + 33, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _K9_ = + [0, cst_CalculAllocationLogement, [0, cst_sous_calcul_traitement, 0]], + _Lb_ = + [0, cst_CalculAllocationLogement, [0, cst_traitement_aide_finale$9, 0]], + _Lg_ = + [0, + cst_examples_aides_logement_pr, + 1109, + 12, + 1109, + 31, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Lc_ = + [0, + cst_examples_aides_logement_pr, + 1109, + 12, + 1109, + 31, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Lh_ = + [0, cst_CalculAllocationLogement, [0, cst_aide_finale_formule$9, 0]], + _J2_ = + [0, + cst_examples_aides_logement_pr, + 357, + 14, + 357, + 56, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _JY_ = + [0, + cst_examples_aides_logement_pr, + 359, + 14, + 359, + 63, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_0$346 = cst_0$361, + cst_0$347 = cst_0$361, + _JU_ = + [0, + cst_examples_aides_logement_co$0, + 1139, + 14, + 1139, + 49, + [0, + cst_Article_R823_4, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _JQ_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_prise_en_compte_personne_c, [0, cst_input0, 0]]], + _JR_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_prise_en_compte_personne_c, 0]], + _JS_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_prise_en_compte_personne_c, [0, cst_output, 0]]], + _JT_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_prise_en_compte_personne_c, 0]], + cst_1_25$0 = cst_1_25$1, + _JK_ = + [0, + cst_examples_aides_logement_co$0, + 1246, + 4, + 1252, + 48, + [0, + cst_Article_R823_4, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _JL_ = + [0, + cst_examples_aides_logement_pr, + 321, + 11, + 321, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _JF_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_condition_2_r823_4$0, [0, cst_input0, 0]]], + _JG_ = + [0, cst_ligibilit_AidesPersonnelle, [0, cst_condition_2_r823_4$0, 0]], + _JH_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_condition_2_r823_4$0, [0, cst_output, 0]]], + _JI_ = + [0, cst_ligibilit_AidesPersonnelle, [0, cst_condition_2_r823_4$0, 0]], + _JJ_ = + [0, + cst_examples_aides_logement_co$0, + 1227, + 5, + 1227, + 44, + [0, + cst_Article_R823_4, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _JM_ = + [0, + cst_examples_aides_logement_pr, + 321, + 11, + 321, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Jz_ = + [0, + cst_examples_aides_logement_co, + 1837, + 5, + 1843, + 34, + [0, + cst_Article_L862_3, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], + _JA_ = + [0, + cst_examples_aides_logement_pr, + 321, + 11, + 321, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Jy_ = + [0, + cst_examples_aides_logement_co, + 1567, + 5, + 1573, + 34, + [0, + cst_Article_L861_6, + [0, + cst_Section_4_Allocations_de_l, + [0, + cst_Chapitre_Ier_Guadeloupe_Gu, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _JB_ = + [0, + cst_examples_aides_logement_pr, + 321, + 11, + 321, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Jx_ = + [0, + cst_examples_aides_logement_co, + 449, + 5, + 457, + 28, + [0, + cst_Article_L823_1, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _JC_ = + [0, + cst_examples_aides_logement_pr, + 321, + 11, + 321, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _JD_ = + [0, + cst_examples_aides_logement_pr, + 321, + 11, + 321, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Jq_ = [2, 0], + _Jw_ = [0, 0], + _Jr_ = + [0, + cst_ligibilit_PrestationsFamil, + [0, cst_droit_ouvert$0, [0, cst_input0, 0]]], + _Js_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], + _Jt_ = + [0, + cst_ligibilit_PrestationsFamil, + [0, cst_droit_ouvert$0, [0, cst_output, 0]]], + _Ju_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], + _Jv_ = + [0, + cst_examples_aides_logement_co$0, + 1156, + 5, + 1178, + 44, + [0, + cst_Article_R823_4, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _JE_ = + [0, + cst_examples_aides_logement_pr, + 321, + 11, + 321, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Jp_ = + [0, + cst_examples_aides_logement_pr, + 321, + 11, + 321, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _JN_ = + [0, + cst_examples_aides_logement_pr, + 321, + 11, + 321, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Jo_ = + [0, + cst_examples_aides_logement_pr, + 321, + 11, + 321, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Jk_ = + [0, + cst_examples_aides_logement_pr, + 353, + 5, + 355, + 25, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Jl_ = + [0, + cst_examples_aides_logement_pr, + 342, + 12, + 342, + 23, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Jj_ = + [0, + cst_examples_aides_logement_pr, + 342, + 12, + 342, + 23, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _I__ = + [0, + cst_examples_aides_logement_co$0, + 1214, + 30, + 1214, + 35, + [0, + cst_Article_R823_4, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _I$_ = + [0, cst_V_rification_geInf_rieurOu, [0, cst_direct, [0, cst_input, 0]]], + _Ja_ = [0, cst_V_rification_geInf_rieurOu, [0, cst_direct, 0]], + _Jb_ = + [0, + cst_examples_aides_logement_co$0, + 1211, + 17, + 1214, + 37, + [0, + cst_Article_R823_4, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Jc_ = + [0, cst_V_rification_geInf_rieurOu, [0, cst_direct, [0, cst_output, 0]]], + _Jd_ = [0, cst_V_rification_geInf_rieurOu, [0, cst_direct, 0]], + cst_1_25 = cst_1_25$1, + _Je_ = [0, 0], + _I9_ = + [0, + cst_examples_aides_logement_co$0, + 1199, + 5, + 1222, + 10, + [0, + cst_Article_R823_4, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Jf_ = + [0, + cst_examples_aides_logement_pr, + 346, + 12, + 346, + 30, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _I8_ = + [0, + cst_examples_aides_logement_pr, + 346, + 12, + 346, + 30, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Jg_ = + [0, + cst_examples_aides_logement_pr, + 346, + 12, + 346, + 30, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _I7_ = + [0, + cst_examples_aides_logement_pr, + 346, + 12, + 346, + 30, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _I2_ = + [0, + cst_examples_aides_logement_co, + 91, + 5, + 92, + 52, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], + _I3_ = + [0, + cst_examples_aides_logement_pr, + 320, + 11, + 320, + 31, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _I1_ = + [0, + cst_examples_aides_logement_co, + 84, + 5, + 87, + 52, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], + _I4_ = + [0, + cst_examples_aides_logement_pr, + 320, + 11, + 320, + 31, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _I0_ = + [0, + cst_examples_aides_logement_pr, + 320, + 11, + 320, + 31, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _IW_ = + [0, + cst_examples_aides_logement_co$1, + 163, + 14, + 163, + 31, + [0, + "Article L351-8", + [0, + "Section 5 : Taux et montant de la pension", + [0, + "Chapitre 1er : Ouverture du droit, liquidation et calcul des pensions de retraite", + [0, + "Titre V : Assurance vieillesse - Assurance veuvage", + [0, + "Livre III : Dispositions relatives aux assurances sociales et \xc3\xa0 diverses cat\xc3\xa9gories de personnes rattach\xc3\xa9es au r\xc3\xa9gime g\xc3\xa9n\xc3\xa9rale", + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]], + _IR_ = + [0, + cst_examples_aides_logement_co, + 401, + 18, + 401, + 44, + [0, + "Article L822-10", + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _IS_ = + [0, + cst_examples_aides_logement_pr, + 317, + 11, + 317, + 58, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _IQ_ = + [0, + cst_examples_aides_logement_pr, + 317, + 11, + 317, + 58, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _II_ = + [0, + cst_examples_aides_logement_co, + 302, + 18, + 302, + 75, + [0, + cst_Article_L822_5, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + cst_0$345 = cst_0$360, + _IJ_ = + [0, + cst_examples_aides_logement_pr, + 334, + 11, + 334, + 36, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _IF_ = [5, 0], + _IG_ = [4, 0], + _IH_ = + [0, + cst_examples_aides_logement_co, + 288, + 18, + 290, + 45, + [0, + cst_Article_L822_5, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + cst_0$344 = cst_0$360, + _IK_ = + [0, + cst_examples_aides_logement_pr, + 334, + 11, + 334, + 36, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _IL_ = + [0, + cst_examples_aides_logement_pr, + 334, + 11, + 334, + 36, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _IE_ = + [0, + cst_examples_aides_logement_co$0, + 945, + 5, + 945, + 58, + [0, + cst_Article_R822_22, + [0, + cst_Sous_section_4_Prise_en_co, + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _IM_ = + [0, + cst_examples_aides_logement_pr, + 334, + 11, + 334, + 36, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ID_ = + [0, + cst_examples_aides_logement_co, + 271, + 33, + 271, + 58, + [0, + cst_Article_L822_5, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + cst_0$343 = cst_0$360, + _Iz_ = + [0, + cst_examples_aides_logement_co$1, + 125, + 14, + 125, + 32, + [0, + cst_Article_L161_17_2, + [0, + cst_Paragraphe_1_Information_e, + [0, + cst_Sous_section_4_Assurance_v, + [0, + cst_Section_1_B_n_ficiaires, + [0, + cst_Chapitre_1er_Dispositions_, + [0, + cst_Titre_VI_Dispositions_rela, + [0, + cst_Titre_III_Titre_III_Dispos, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], + cst_2$104 = cst_2$105, + _Ir_ = + [0, + cst_examples_aides_logement_co$0, + 5280, + 5, + 5281, + 34, + [0, + cst_Article_R844_4, + [0, + cst_Chapitre_IV_Conditions_de_, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Is_ = + [0, + cst_examples_aides_logement_pr, + 314, + 12, + 314, + 38, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_1$248 = cst_1$254, + cst_9$2 = cst_9$3, + cst_16$3 = cst_16$4, + _Iq_ = + [0, + cst_examples_aides_logement_co$0, + 5273, + 5, + 5275, + 58, + [0, + cst_Article_R844_4, + [0, + cst_Chapitre_IV_Conditions_de_, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _It_ = + [0, + cst_examples_aides_logement_pr, + 314, + 12, + 314, + 38, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_9 = cst_9$3, + cst_9$0 = cst_9$3, + cst_16 = cst_16$4, + cst_16$0 = cst_16$4, + cst_16$1 = cst_16$4, + cst_9$1 = cst_9$3, + cst_16$2 = cst_16$4, + cst_8 = "8", + cst_70 = cst_70$1, + cst_70$0 = cst_70$1, + _Ip_ = + [0, + cst_examples_aides_logement_co$0, + 1048, + 5, + 1065, + 65, + [0, + cst_Article_R822_25, + [0, + cst_Section_3_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Iu_ = + [0, + cst_examples_aides_logement_pr, + 314, + 12, + 314, + 38, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Io_ = + [0, + cst_examples_aides_logement_pr, + 314, + 12, + 314, + 38, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Iv_ = + [0, + cst_examples_aides_logement_pr, + 314, + 12, + 314, + 38, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_0$342 = cst_0$361, + cst_0$341 = cst_0$361, + _Ih_ = + [0, + cst_examples_aides_logement_co, + 189, + 5, + 195, + 65, + [0, + cst_Article_L822_3, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Ii_ = + [0, + cst_examples_aides_logement_pr, + 312, + 11, + 312, + 45, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ig_ = + [0, + cst_examples_aides_logement_co, + 174, + 5, + 176, + 30, + [0, + cst_Article_L822_3, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Ij_ = + [0, + cst_examples_aides_logement_pr, + 312, + 11, + 312, + 45, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _If_ = + [0, + cst_examples_aides_logement_co, + 143, + 5, + 149, + 33, + [0, + cst_Article_L822_2, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Ik_ = + [0, + cst_examples_aides_logement_pr, + 312, + 11, + 312, + 45, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ie_ = + [0, + cst_examples_aides_logement_pr, + 312, + 11, + 312, + 45, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _H7_ = + [0, + cst_examples_aides_logement_co$0, + 5726, + 5, + 5729, + 28, + [0, + cst_Article_R862_2, + [0, + cst_Section_I_Dispositions_com, + [0, + cst_Chapitre_II_Saint_Barth_le, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _H8_ = + [0, + cst_examples_aides_logement_co$0, + 5725, + 24, + 5725, + 59, + [0, + cst_Article_R862_2, + [0, + cst_Section_I_Dispositions_com, + [0, + cst_Chapitre_II_Saint_Barth_le, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _H6_ = + [0, + cst_examples_aides_logement_co$0, + 5631, + 6, + 5637, + 30, + [0, + "Article D861-9", + [0, + cst_Section_2_Allocations_de_l, + [0, + cst_Titre_VI_Disposition_parti, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _H9_ = + [0, + cst_examples_aides_logement_co$0, + 5725, + 24, + 5725, + 59, + [0, + cst_Article_R862_2, + [0, + cst_Section_I_Dispositions_com, + [0, + cst_Chapitre_II_Saint_Barth_le, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _H__ = + [0, + cst_examples_aides_logement_co$0, + 5725, + 24, + 5725, + 59, + [0, + cst_Article_R862_2, + [0, + cst_Section_I_Dispositions_com, + [0, + cst_Chapitre_II_Saint_Barth_le, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _H5_ = + [0, + cst_examples_aides_logement_co$0, + 1152, + 14, + 1152, + 49, + [0, + cst_Article_R823_4, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _H$_ = + [0, + cst_examples_aides_logement_co$0, + 5725, + 24, + 5725, + 59, + [0, + cst_Article_R862_2, + [0, + cst_Section_I_Dispositions_com, + [0, + cst_Chapitre_II_Saint_Barth_le, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Ia_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "prestations_familiales.\xc3\xa2ge_l512_3_2", 0]], + _H2_ = + [0, + cst_examples_aides_logement_pr, + 383, + 14, + 383, + 46, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _HY_ = + [0, + cst_examples_aides_logement_pr, + 381, + 14, + 381, + 56, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _HX_ = [3, 0], + _HT_ = + [0, + cst_examples_aides_logement_pr, + 380, + 14, + 380, + 50, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _HI_ = + [0, + cst_examples_aides_logement_co, + 227, + 22, + 227, + 27, + [0, + cst_Article_L822_4, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _HJ_ = + [0, cst_V_rification_geSup_rieur, [0, cst_direct, [0, cst_input, 0]]], + _HK_ = [0, cst_V_rification_geSup_rieur, [0, cst_direct, 0]], + _HL_ = + [0, + cst_examples_aides_logement_co, + 224, + 8, + 227, + 29, + [0, + cst_Article_L822_4, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _HM_ = + [0, cst_V_rification_geSup_rieur, [0, cst_direct, [0, cst_output, 0]]], + _HN_ = [0, cst_V_rification_geSup_rieur, [0, cst_direct, 0]], + _HH_ = + [0, + cst_examples_aides_logement_co, + 221, + 5, + 229, + 39, + [0, + cst_Article_L822_4, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _HO_ = + [0, + cst_examples_aides_logement_pr, + 313, + 11, + 313, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _HG_ = + [0, + cst_examples_aides_logement_co, + 215, + 5, + 216, + 34, + [0, + cst_Article_L822_4, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _HP_ = + [0, + cst_examples_aides_logement_pr, + 313, + 11, + 313, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _HF_ = + [0, + cst_examples_aides_logement_pr, + 313, + 11, + 313, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _HA_ = + [0, + cst_examples_aides_logement_co$1, + 329, + 5, + 330, + 34, + [0, + cst_Article_D815_1, + [0, + cst_Section_1_Ouverture_du_dro, + [0, + cst_Chapitre_5_Allocation_de_s, + [0, + cst_Titre_I_Allocations_aux_pe, + [0, + cst_Livre_VIII_Allocations_aux, + [0, + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]], + cst_999840 = "999840", + _HB_ = + [0, + cst_examples_aides_logement_pr, + 337, + 11, + 337, + 41, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Hy_ = + [0, + cst_examples_aides_logement_co$1, + 334, + 5, + 335, + 34, + [0, + cst_Article_D815_1, + [0, + cst_Section_1_Ouverture_du_dro, + [0, + cst_Chapitre_5_Allocation_de_s, + [0, + cst_Titre_I_Allocations_aux_pe, + [0, + cst_Livre_VIII_Allocations_aux, + [0, + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]], + cst_1041840 = "1041840", + _Hz_ = + [0, + cst_examples_aides_logement_pr, + 337, + 11, + 337, + 41, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Hw_ = + [0, + cst_examples_aides_logement_co$1, + 339, + 5, + 340, + 34, + [0, + cst_Article_D815_1, + [0, + cst_Section_1_Ouverture_du_dro, + [0, + cst_Chapitre_5_Allocation_de_s, + [0, + cst_Titre_I_Allocations_aux_pe, + [0, + cst_Livre_VIII_Allocations_aux, + [0, + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]], + cst_1083840 = "1083840", + _Hx_ = + [0, + cst_examples_aides_logement_pr, + 337, + 11, + 337, + 41, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Hu_ = + [0, + cst_examples_aides_logement_au, + 58, + 5, + 58, + 34, + [0, + 'Circulaire de la CNAV 2023-3 du 09/01/2022 "Revalorisation \xc3\xa0 compter du 1er janvier 2023"', + [0, cst_Montants_revaloris_s_de_l_, 0]]], + cst_1153302 = "1153302", + _Hv_ = + [0, + cst_examples_aides_logement_pr, + 337, + 11, + 337, + 41, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Hs_ = + [0, + cst_examples_aides_logement_au, + 89, + 5, + 90, + 33, + [0, + 'Circulaire de la CNAV 2022-3 du 11/01/2022 "Revalorisation \xc3\xa0 compter du 1er janvier 2022"', + [0, cst_Montants_revaloris_s_de_l_, 0]]], + cst_1100144 = "1100144", + _Ht_ = + [0, + cst_examples_aides_logement_pr, + 337, + 11, + 337, + 41, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Hq_ = + [0, + cst_examples_aides_logement_au, + 122, + 5, + 123, + 33, + [0, + 'Circulaire de la CNAV 2021-1 du 11/01/2021 "Revalorisation \xc3\xa0 compter du 1er janvier 2021"', + [0, cst_Montants_revaloris_s_de_l_, 0]]], + cst_1088175 = "1088175", + _Hr_ = + [0, + cst_examples_aides_logement_pr, + 337, + 11, + 337, + 41, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Hl_ = + [0, + cst_examples_aides_logement_co, + 1334, + 5, + 1334, + 40, + [0, + cst_Article_L861_5, + [0, + cst_Section_2_Dispositions_com, + [0, + cst_Chapitre_Ier_Guadeloupe_Gu, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Hm_ = + [0, + cst_examples_aides_logement_pr, + 310, + 11, + 310, + 32, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Hk_ = + [0, + cst_examples_aides_logement_co, + 125, + 14, + 125, + 35, + [0, + cst_Article_L822_2, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Hg_ = + [0, + cst_examples_aides_logement_co, + 267, + 14, + 267, + 40, + [0, + cst_Article_L822_5, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Ha_ = + [0, + cst_examples_aides_logement_co$1, + 123, + 14, + 123, + 61, + [0, + cst_Article_L161_17_2, + [0, + cst_Paragraphe_1_Information_e, + [0, + cst_Sous_section_4_Assurance_v, + [0, + cst_Section_1_B_n_ficiaires, + [0, + cst_Chapitre_1er_Dispositions_, + [0, + cst_Titre_VI_Dispositions_rela, + [0, + cst_Titre_III_Titre_III_Dispos, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], + _G6_ = + [0, + cst_examples_aides_logement_co, + 46, + 5, + 46, + 41, + [0, + "Article L821-2", + [0, + "Sous-section 1 : Aides personnelles au logement", + [0, + "Section 2 : R\xc3\xa8gles de non-cumul", + [0, + "Chapitre Ier : Principes g\xc3\xa9n\xc3\xa9raux", + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _G7_ = + [0, + cst_examples_aides_logement_pr, + 311, + 12, + 311, + 51, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _G5_ = + [0, + cst_examples_aides_logement_pr, + 311, + 12, + 311, + 51, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _G8_ = + [0, + cst_examples_aides_logement_pr, + 311, + 12, + 311, + 51, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _G0_ = + [0, + cst_examples_aides_logement_co, + 362, + 18, + 362, + 67, + [0, + "Article L822-8", + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _G1_ = + [0, + cst_examples_aides_logement_pr, + 315, + 11, + 315, + 41, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GZ_ = + [0, + cst_examples_aides_logement_pr, + 315, + 11, + 315, + 41, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GU_ = + [0, + cst_examples_aides_logement_co, + 376, + 18, + 376, + 61, + [0, + "Article L822-9", + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _GV_ = + [0, + cst_examples_aides_logement_pr, + 316, + 11, + 316, + 58, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GT_ = + [0, + cst_examples_aides_logement_pr, + 316, + 11, + 316, + 58, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GN_ = + [0, + cst_examples_aides_logement_co, + 1376, + 5, + 1376, + 40, + [0, + cst_Article_L861_5, + [0, + cst_Section_2_Dispositions_com, + [0, + cst_Chapitre_Ier_Guadeloupe_Gu, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _GO_ = + [0, + cst_examples_aides_logement_pr, + 319, + 11, + 319, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GM_ = + [0, + cst_examples_aides_logement_co, + 445, + 9, + 445, + 42, + [0, + cst_Article_L823_1, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _GP_ = + [0, + cst_examples_aides_logement_pr, + 319, + 11, + 319, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GL_ = + [0, + cst_examples_aides_logement_pr, + 319, + 11, + 319, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GH_ = + [0, + cst_examples_aides_logement_co$0, + 1035, + 14, + 1035, + 39, + [0, + cst_Article_R822_25, + [0, + cst_Section_3_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_1$246 = cst_1$254, + cst_2$100 = cst_2$105, + cst_2$101 = cst_2$105, + cst_2$102 = cst_2$105, + cst_1$247 = cst_1$254, + cst_2$103 = cst_2$105, + _GD_ = + [0, + cst_examples_aides_logement_co, + 164, + 14, + 164, + 43, + [0, + cst_Article_L822_3, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Gz_ = + [0, + cst_examples_aides_logement_co$0, + 928, + 14, + 928, + 37, + [0, + cst_Article_R822_22, + [0, + cst_Sous_section_4_Prise_en_co, + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_3000000 = "3000000", + _Gv_ = + [0, + cst_examples_aides_logement_co$0, + 106, + 14, + 106, + 41, + [0, + cst_Article_R822_1, + [0, + cst_Section_1_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0_1$0 = cst_0_1$1, + _Gr_ = + [0, + cst_examples_aides_logement_co$0, + 105, + 14, + 105, + 42, + [0, + cst_Article_R822_1, + [0, + cst_Section_1_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0_1 = cst_0_1$1, + _Gm_ = + [0, + cst_examples_aides_logement_co$0, + 5464, + 14, + 5464, + 46, + [0, + cst_Article_R861_5, + [0, + cst_Capitre_I_Guadeloupe_Guyan, + [0, + cst_Titre_VI_Disposition_parti, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Gn_ = + [0, + cst_examples_aides_logement_pr, + 325, + 12, + 325, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gi_ = + [0, + cst_examples_aides_logement_pr, + 318, + 11, + 318, + 48, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ge_ = + [0, + cst_examples_aides_logement_pr, + 309, + 11, + 309, + 25, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gf_ = + [0, + cst_examples_aides_logement_pr, + 309, + 11, + 309, + 25, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gd_ = + [0, + cst_examples_aides_logement_pr, + 309, + 11, + 309, + 25, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gg_ = + [0, cst_ligibilit_AidesPersonnelle, [0, "condition_pr\xc3\xaat", 0]], + _Gj_ = + [0, + cst_examples_aides_logement_pr, + 318, + 11, + 318, + 48, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gh_ = + [0, + cst_examples_aides_logement_pr, + 318, + 11, + 318, + 48, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gk_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "condition_peuplement_logement_l822_10", 0]], + _Go_ = + [0, + cst_examples_aides_logement_pr, + 325, + 12, + 325, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gl_ = + [0, + cst_examples_aides_logement_pr, + 325, + 12, + 325, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gp_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "date_entr\xc3\xa9e_vigueur_diff\xc3\xa9r\xc3\xa9e_cch", 0]], + _Gs_ = + [0, + cst_examples_aides_logement_pr, + 331, + 11, + 331, + 39, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gq_ = + [0, + cst_examples_aides_logement_pr, + 331, + 11, + 331, + 39, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gt_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "seuil_l822_3_parts_propri\xc3\xa9t\xc3\xa9", 0]], + _Gw_ = + [0, + cst_examples_aides_logement_pr, + 332, + 11, + 332, + 38, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gu_ = + [0, + cst_examples_aides_logement_pr, + 332, + 11, + 332, + 38, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gx_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "seuil_l822_3_parts_usufruit", 0]], + _GA_ = + [0, + cst_examples_aides_logement_pr, + 333, + 11, + 333, + 34, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gy_ = + [0, + cst_examples_aides_logement_pr, + 333, + 11, + 333, + 34, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GB_ = + [0, cst_ligibilit_AidesPersonnelle, [0, "seuil_l822_5_patrimoine", 0]], + _GE_ = + [0, + cst_examples_aides_logement_pr, + 330, + 11, + 330, + 40, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GC_ = + [0, + cst_examples_aides_logement_pr, + 330, + 11, + 330, + 40, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GF_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "usufruit_ou_propri\xc3\xa9t\xc3\xa9_famille", 0]], + _GI_ = + [0, + cst_examples_aides_logement_pr, + 326, + 11, + 326, + 36, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GG_ = + [0, + cst_examples_aides_logement_pr, + 326, + 11, + 326, + 36, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GJ_ = + [0, cst_ligibilit_AidesPersonnelle, [0, "nombre_personnes_logement", 0]], + _GQ_ = + [0, + cst_examples_aides_logement_pr, + 319, + 11, + 319, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GK_ = + [0, + cst_examples_aides_logement_pr, + 319, + 11, + 319, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GR_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "septi\xc3\xa8me_alin\xc3\xa9a_l823_1_applicable", 0]], + _GW_ = + [0, + cst_examples_aides_logement_pr, + 316, + 11, + 316, + 58, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GS_ = + [0, + cst_examples_aides_logement_pr, + 316, + 11, + 316, + 58, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GX_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "condition_non_ouverture_l822_9_decence_logement", 0]], + _G2_ = + [0, + cst_examples_aides_logement_pr, + 315, + 11, + 315, + 41, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GY_ = + [0, + cst_examples_aides_logement_pr, + 315, + 11, + 315, + 41, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _G3_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "condition_non_ouverture_l822_8", 0]], + _G9_ = + [0, + cst_examples_aides_logement_pr, + 311, + 12, + 311, + 51, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _G4_ = + [0, + cst_examples_aides_logement_pr, + 311, + 12, + 311, + 51, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _G__ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "condition_logement_r\xc3\xa9sidence_principale", 0]], + _Hb_ = + [0, + cst_examples_aides_logement_co$1, + 123, + 14, + 123, + 61, + [0, + cst_Article_L161_17_2, + [0, + cst_Paragraphe_1_Information_e, + [0, + cst_Sous_section_4_Assurance_v, + [0, + cst_Section_1_B_n_ficiaires, + [0, + cst_Chapitre_1er_Dispositions_, + [0, + cst_Titre_VI_Dispositions_rela, + [0, + cst_Titre_III_Titre_III_Dispos, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], + _Hc_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "ouverture_droits_retraite.date_naissance_assur\xc3\xa9", 0]], + _G$_ = + [0, + cst_examples_aides_logement_co$1, + 123, + 14, + 123, + 61, + [0, + cst_Article_L161_17_2, + [0, + cst_Paragraphe_1_Information_e, + [0, + cst_Sous_section_4_Assurance_v, + [0, + cst_Section_1_B_n_ficiaires, + [0, + cst_Chapitre_1er_Dispositions_, + [0, + cst_Titre_VI_Dispositions_rela, + [0, + cst_Titre_III_Titre_III_Dispos, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], + _Hd_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_ouverture_droits_retraite, [0, cst_OuvertureDroitsRetraite, 0]]], + _He_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_ouverture_droits_retraite, [0, cst_OuvertureDroitsRetraite, 0]]], + _Hh_ = + [0, + cst_examples_aides_logement_pr, + 329, + 11, + 329, + 37, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Hf_ = + [0, + cst_examples_aides_logement_pr, + 329, + 11, + 329, + 37, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Hi_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "patrimoine_total_demandeur", 0]], + _Hn_ = + [0, + cst_examples_aides_logement_pr, + 310, + 11, + 310, + 32, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Hj_ = + [0, + cst_examples_aides_logement_pr, + 310, + 11, + 310, + 32, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ho_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "condition_nationalit\xc3\xa9", 0]], + _HC_ = + [0, + cst_examples_aides_logement_pr, + 337, + 11, + 337, + 41, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Hp_ = + [0, + cst_examples_aides_logement_pr, + 337, + 11, + 337, + 41, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _HD_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "plafond_individuel_l815_9_s\xc3\xa9cu", 0]], + _HQ_ = + [0, + cst_examples_aides_logement_pr, + 313, + 11, + 313, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _HE_ = + [0, + cst_examples_aides_logement_pr, + 313, + 11, + 313, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _HR_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "condition_logement_location_tiers", 0]], + _HU_ = + [0, + cst_examples_aides_logement_pr, + 380, + 14, + 380, + 50, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _HV_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_prestations_familiales_dat, 0]], + _HS_ = + [0, + cst_examples_aides_logement_pr, + 380, + 14, + 380, + 50, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _HZ_ = + [0, + cst_examples_aides_logement_pr, + 381, + 14, + 381, + 56, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _H0_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_prestations_familiales_pre, 0]], + _HW_ = + [0, + cst_examples_aides_logement_pr, + 381, + 14, + 381, + 56, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _H3_ = + [0, + cst_examples_aides_logement_pr, + 383, + 14, + 383, + 46, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _H4_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_prestations_familiales_r_s, 0]], + _H1_ = + [0, + cst_examples_aides_logement_pr, + 383, + 14, + 383, + 46, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ib_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_prestations_familiales, [0, cst_ligibilit_PrestationsFamil, 0]]], + _Ic_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_prestations_familiales, [0, cst_ligibilit_PrestationsFamil, 0]]], + _Il_ = + [0, + cst_examples_aides_logement_pr, + 312, + 11, + 312, + 45, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Id_ = + [0, + cst_examples_aides_logement_pr, + 312, + 11, + 312, + 45, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Im_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "condition_logement_mode_occupation", 0]], + _Iw_ = + [0, + cst_examples_aides_logement_pr, + 314, + 12, + 314, + 38, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _In_ = + [0, + cst_examples_aides_logement_pr, + 314, + 12, + 314, + 38, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ix_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "condition_logement_surface", 0]], + _IA_ = + [0, + cst_examples_aides_logement_pr, + 336, + 11, + 336, + 29, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Iy_ = + [0, + cst_examples_aides_logement_pr, + 336, + 11, + 336, + 29, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _IB_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "\xc3\xa2ge_l161_17_2_s\xc3\xa9cu", 0]], + _IN_ = + [0, + cst_examples_aides_logement_pr, + 334, + 11, + 334, + 36, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _IC_ = + [0, + cst_examples_aides_logement_pr, + 334, + 11, + 334, + 36, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _IO_ = + [0, cst_ligibilit_AidesPersonnelle, [0, "patrimoine_pris_en_compte", 0]], + _IT_ = + [0, + cst_examples_aides_logement_pr, + 317, + 11, + 317, + 58, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _IP_ = + [0, + cst_examples_aides_logement_pr, + 317, + 11, + 317, + 58, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _IU_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "condition_ouverture_l822_10_peuplement_logement", 0]], + _IX_ = + [0, + cst_examples_aides_logement_pr, + 335, + 11, + 335, + 28, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _IV_ = + [0, + cst_examples_aides_logement_pr, + 335, + 11, + 335, + 28, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _IY_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "\xc3\xa2ge_l351_8_1_s\xc3\xa9cu", 0]], + _I5_ = + [0, + cst_examples_aides_logement_pr, + 320, + 11, + 320, + 31, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _IZ_ = + [0, + cst_examples_aides_logement_pr, + 320, + 11, + 320, + 31, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _I6_ = [0, cst_ligibilit_AidesPersonnelle, [0, cst_ligibilit_logement, 0]], + _Jh_ = + [0, cst_ligibilit_AidesPersonnelle, [0, cst_condition_2_r823_4$0, 0]], + _Jm_ = + [0, + cst_examples_aides_logement_pr, + 342, + 12, + 342, + 23, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ji_ = + [0, + cst_examples_aides_logement_pr, + 342, + 12, + 342, + 23, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Jn_ = [0, cst_ligibilit_AidesPersonnelle, [0, cst_ligibilit$4, 0]], + _JO_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_prise_en_compte_personne_c, 0]], + _JV_ = + [0, + cst_examples_aides_logement_pr, + 323, + 11, + 323, + 46, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _JP_ = + [0, + cst_examples_aides_logement_pr, + 323, + 11, + 323, + 46, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _JW_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "personnes_\xc3\xa0_charge_prises_en_compte", 0]], + _JZ_ = + [0, + cst_examples_aides_logement_pr, + 344, + 12, + 344, + 61, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _JX_ = + [0, + cst_examples_aides_logement_pr, + 344, + 12, + 344, + 61, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _J0_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_coefficents_enfants_garde_$3, 0]], + _J3_ = + [0, + cst_examples_aides_logement_pr, + 343, + 12, + 343, + 54, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _J1_ = + [0, + cst_examples_aides_logement_pr, + 343, + 12, + 343, + 54, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _J4_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_nombre_personnes_charge_pr$2, 0]], + cst_0_2 = cst_0_2$2, + _J5_ = + [0, + cst_examples_aides_logement_co, + 200, + 13, + 200, + 47, + [0, + cst_Article_L822_3, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _J__ = + [0, + cst_examples_aides_logement_co, + 200, + 13, + 200, + 47, + [0, + cst_Article_L822_3, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + cst_0_2$0 = cst_0_2$2, + _J6_ = + [0, + cst_examples_aides_logement_co, + 199, + 13, + 199, + 48, + [0, + cst_Article_L822_3, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _J9_ = + [0, + cst_examples_aides_logement_co, + 199, + 13, + 199, + 48, + [0, + cst_Article_L822_3, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _J7_ = + [0, + cst_examples_aides_logement_pr, + 378, + 13, + 378, + 42, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _J8_ = + [0, + cst_examples_aides_logement_pr, + 378, + 13, + 378, + 42, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ga_ = + [0, + cst_examples_aides_logement_co$0, + 1457, + 14, + 1457, + 33, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _F8_ = + [0, + cst_examples_aides_logement_co$0, + 1459, + 14, + 1459, + 36, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _F9_ = + [0, + cst_examples_aides_logement_pr, + 832, + 12, + 832, + 34, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _F7_ = + [0, + cst_examples_aides_logement_pr, + 832, + 12, + 832, + 34, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _F3_ = + [0, + cst_examples_aides_logement_co$0, + 6358, + 24, + 6358, + 46, + [0, + cst_Article_D863_7, + [0, + cst_Sous_section_III_Modalit_s, + [0, + cst_Section_II_Dispositions_co, + [0, + cst_Chapitre_III_Saint_Pierre_, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _FW_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _FX_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale$9, 0]], + _FY_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _FZ_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale$9, 0]], + cst_0$338 = cst_0$360, + cst_0$339 = cst_0$360, + cst_0$340 = cst_0$360, + _FT_ = + [0, + cst_examples_aides_logement_co$0, + 6398, + 42, + 6398, + 45, + [0, + cst_Article_D863_7, + [0, + cst_Sous_section_III_Modalit_s, + [0, + cst_Section_II_Dispositions_co, + [0, + cst_Chapitre_III_Saint_Pierre_, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _FU_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_direct, [0, cst_input, 0]]], + _FV_ = [0, cst_CalculAidePersonnalis_eLog$0, [0, cst_direct, 0]], + _F0_ = + [0, + cst_examples_aides_logement_co$0, + 6374, + 9, + 6401, + 10, + [0, + cst_Article_D863_7, + [0, + cst_Sous_section_III_Modalit_s, + [0, + cst_Section_II_Dispositions_co, + [0, + cst_Chapitre_III_Saint_Pierre_, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _F1_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_direct, [0, cst_output, 0]]], + _F2_ = [0, cst_CalculAidePersonnalis_eLog$0, [0, cst_direct, 0]], + _F4_ = + [0, + cst_examples_aides_logement_pr, + 829, + 11, + 829, + 33, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _FS_ = + [0, + cst_examples_aides_logement_co$0, + 1469, + 14, + 1469, + 36, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _FL_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _FM_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale$9, 0]], + _FN_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _FO_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale$9, 0]], + _FC_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _FD_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale$9, 0]], + _FE_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _FF_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale$9, 0]], + _Ft_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _Fu_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale$9, 0]], + _Fv_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _Fw_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale$9, 0]], + cst_0$336 = cst_0$360, + cst_0$337 = cst_0$360, + _Fq_ = + [0, + cst_examples_aides_logement_co$0, + 1488, + 16, + 1491, + 39, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Fr_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_direct, [0, cst_input, 0]]], + _Fs_ = [0, cst_CalculAidePersonnalis_eLog$0, [0, cst_direct, 0]], + _Fx_ = + [0, + cst_examples_aides_logement_co$0, + 1473, + 9, + 1494, + 10, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Fy_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_direct, [0, cst_output, 0]]], + _Fz_ = [0, cst_CalculAidePersonnalis_eLog$0, [0, cst_direct, 0]], + _FA_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_direct, [0, cst_input, 0]]], + _FB_ = [0, cst_CalculAidePersonnalis_eLog$2, [0, cst_direct, 0]], + _FG_ = + [0, + cst_examples_aides_logement_co$0, + 1526, + 10, + 1542, + 11, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _FH_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_direct, [0, cst_output, 0]]], + _FI_ = [0, cst_CalculAidePersonnalis_eLog$2, [0, cst_direct, 0]], + _FJ_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_direct, [0, cst_input, 0]]], + _FK_ = [0, cst_CalculAidePersonnalis_eLog$1, [0, cst_direct, 0]], + _FP_ = + [0, + cst_examples_aides_logement_co$0, + 1505, + 9, + 1515, + 10, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _FQ_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_direct, [0, cst_output, 0]]], + _FR_ = [0, cst_CalculAidePersonnalis_eLog$1, [0, cst_direct, 0]], + _Fm_ = + [0, + cst_examples_aides_logement_ar, + 80, + 14, + 80, + 44, + [0, + cst_Article_7, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + _Fg_ = [0, 0], + _Fh_ = [1, 0], + _Fi_ = [1, 0], + _Fj_ = [1, 0], + _Fk_ = [0, 0], + _Fl_ = [1, 0], + _Fc_ = + [0, + cst_examples_aides_logement_co$0, + 1968, + 14, + 1968, + 31, + [0, + cst_Article_D823_17, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _E__ = + [0, + cst_examples_aides_logement_co$0, + 1446, + 14, + 1446, + 34, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _E$_ = + [0, + cst_examples_aides_logement_pr, + 826, + 11, + 826, + 31, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _E9_ = + [0, + cst_examples_aides_logement_pr, + 826, + 11, + 826, + 31, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Fa_ = + [0, cst_CalculAidePersonnalis_eLog, [0, cst_cat_gorie_calcul_apl, 0]], + _Fd_ = + [0, + cst_examples_aides_logement_pr, + 819, + 10, + 819, + 22, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Fb_ = + [0, + cst_examples_aides_logement_pr, + 819, + 10, + 819, + 22, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Fe_ = + [0, + cst_CalculAidePersonnalis_eLog, + [0, cst_ressources_m_nage_avec_arr, 0]], + _Fn_ = + [0, + cst_examples_aides_logement_pr, + 827, + 11, + 827, + 41, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Ff_ = + [0, + cst_examples_aides_logement_pr, + 827, + 11, + 827, + 41, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Fo_ = + [0, + cst_CalculAidePersonnalis_eLog, + [0, cst_situation_familiale_calcul$7, 0]], + _F5_ = + [0, + cst_examples_aides_logement_pr, + 829, + 11, + 829, + 33, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Fp_ = + [0, + cst_examples_aides_logement_pr, + 829, + 11, + 829, + 33, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _F6_ = + [0, cst_CalculAidePersonnalis_eLog, [0, cst_sous_calcul_traitement, 0]], + _F__ = + [0, + cst_CalculAidePersonnalis_eLog, + [0, cst_traitement_aide_finale$9, 0]], + _Gb_ = + [0, + cst_examples_aides_logement_pr, + 831, + 12, + 831, + 31, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _F$_ = + [0, + cst_examples_aides_logement_pr, + 831, + 12, + 831, + 31, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Gc_ = + [0, cst_CalculAidePersonnalis_eLog, [0, cst_aide_finale_formule$9, 0]], + _E2_ = + [0, + cst_examples_aides_logement_co$0, + 4505, + 14, + 4505, + 36, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _EY_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_con, [0, cst_input0, 0]]], + _EZ_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_con, 0]], + _E0_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_con, [0, cst_output, 0]]], + _E1_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_con, 0]], + cst_0$335 = cst_0$360, + _E3_ = + [0, + cst_examples_aides_logement_pr, + 983, + 10, + 983, + 25, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _EX_ = + [0, + cst_examples_aides_logement_pr, + 983, + 10, + 983, + 25, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _EU_ = + [0, + cst_examples_aides_logement_co$0, + 4485, + 14, + 4485, + 36, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _EM_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_d_p, [0, cst_input0, 0]]], + _EN_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_d_p, 0]], + _EO_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_d_p, [0, cst_output, 0]]], + _EP_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_d_p, 0]], + _EQ_ = + [0, + cst_ContributionsSocialesAides, + [0, cst_montant$2, [0, cst_input0, 0]]], + _ER_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], + _ES_ = + [0, + cst_ContributionsSocialesAides, + [0, cst_montant$2, [0, cst_output, 0]]], + _ET_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], + cst_50$3 = cst_50$4, + cst_0$333 = cst_0$360, + cst_0$334 = cst_0$360, + _EV_ = + [0, + cst_examples_aides_logement_pr, + 982, + 10, + 982, + 40, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _EL_ = + [0, + cst_examples_aides_logement_pr, + 982, + 10, + 982, + 40, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _EI_ = + [0, + cst_examples_aides_logement_co$0, + 4390, + 14, + 4390, + 33, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _EE_ = + [0, + cst_examples_aides_logement_co$0, + 4471, + 14, + 4471, + 36, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Ew_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_min, [0, cst_input0, 0]]], + _Ex_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_min, 0]], + _Ey_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_min, [0, cst_output, 0]]], + _Ez_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_min, 0]], + _EA_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_abattement_d_pense_nette_m, [0, cst_input0, 0]]], + _EB_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_abattement_d_pense_nette_m, 0]], + _EC_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_abattement_d_pense_nette_m, [0, cst_output, 0]]], + _ED_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_abattement_d_pense_nette_m, 0]], + cst_0$332 = cst_0$360, + _EF_ = + [0, + cst_examples_aides_logement_pr, + 981, + 10, + 981, + 32, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ev_ = + [0, + cst_examples_aides_logement_pr, + 981, + 10, + 981, + 32, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Es_ = + [0, + cst_examples_aides_logement_co$0, + 4423, + 14, + 4423, + 33, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Eo_ = + [0, + cst_examples_aides_logement_co$0, + 4653, + 14, + 4653, + 47, + [0, + cst_Article_D842_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Ek_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_d_pense_nette_minimale, [0, cst_input0, 0]]], + _El_ = + [0, cst_CalculAllocationLogementAc, [0, cst_d_pense_nette_minimale, 0]], + _Em_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_d_pense_nette_minimale, [0, cst_output, 0]]], + _En_ = + [0, cst_CalculAllocationLogementAc, [0, cst_d_pense_nette_minimale, 0]], + cst_0$331 = cst_0$360, + _Ep_ = + [0, + cst_examples_aides_logement_pr, + 958, + 11, + 958, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ej_ = + [0, + cst_examples_aides_logement_pr, + 958, + 11, + 958, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Eg_ = + [0, + cst_examples_aides_logement_co$0, + 4412, + 14, + 4412, + 41, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Ec_ = + [0, + cst_examples_aides_logement_co$0, + 4438, + 14, + 4438, + 33, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _D9_ = + [0, + cst_examples_aides_logement_co$0, + 4588, + 5, + 4588, + 44, + [0, + cst_Article_D842_9, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _D1_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, [0, cst_input1, 0]]], + _D2_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, [0, cst_input0, 0]]], + _D3_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, [0, cst_output, 0]]], + _D4_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, 0]], + _D5_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, [0, cst_input1, 0]]], + _D6_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, [0, cst_input0, 0]]], + _D7_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, [0, cst_output, 0]]], + _D8_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, 0]], + _D__ = + [0, + cst_examples_aides_logement_pr, + 945, + 11, + 945, + 36, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _D0_ = + [0, + cst_examples_aides_logement_co$0, + 4569, + 14, + 4569, + 39, + [0, + cst_Article_D842_9, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _DW_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, [0, cst_input1, 0]]], + _DX_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, [0, cst_input0, 0]]], + _DY_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, [0, cst_output, 0]]], + _DZ_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, 0]], + _DR_ = + [0, + cst_examples_aides_logement_co$0, + 4683, + 7, + 4683, + 26, + [0, + cst_Article_D842_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _DS_ = + [0, + cst_examples_aides_logement_pr, + 953, + 11, + 953, + 47, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _DQ_ = + [0, + cst_examples_aides_logement_co$0, + 4664, + 14, + 4664, + 50, + [0, + cst_Article_D842_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _DI_ = + [0, + cst_examples_aides_logement_co$0, + 5913, + 5, + 5916, + 28, + [0, + cst_Article_D862_7, + [0, + cst_Section_III_Allocations_de, + [0, + cst_Chapitre_II_Saint_Barth_le, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _DJ_ = + [0, + cst_examples_aides_logement_co$0, + 5911, + 9, + 5911, + 75, + [0, + cst_Article_D862_7, + [0, + cst_Section_III_Allocations_de, + [0, + cst_Chapitre_II_Saint_Barth_le, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _DH_ = + [0, + cst_examples_aides_logement_co$0, + 5558, + 5, + 5564, + 28, + [0, + cst_Article_D861_8, + [0, + cst_Section_2_Allocations_de_l, + [0, + cst_Titre_VI_Disposition_parti, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _DK_ = + [0, + cst_examples_aides_logement_co$0, + 5911, + 9, + 5911, + 75, + [0, + cst_Article_D862_7, + [0, + cst_Section_III_Allocations_de, + [0, + cst_Chapitre_II_Saint_Barth_le, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _DL_ = + [0, + cst_examples_aides_logement_co$0, + 5911, + 9, + 5911, + 75, + [0, + cst_Article_D862_7, + [0, + cst_Section_III_Allocations_de, + [0, + cst_Chapitre_II_Saint_Barth_le, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _DM_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_apl_logement_foyer_, 0]], + _DE_ = + [0, + cst_examples_aides_logement_co$0, + 4409, + 14, + 4409, + 61, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _DF_ = + [0, + cst_examples_aides_logement_co$0, + 4409, + 14, + 4409, + 61, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _DG_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_apl_logement_foyer_$0, 0]], + _DB_ = + [0, + cst_examples_aides_logement_pr, + 1006, + 14, + 1006, + 49, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Dx_ = + [0, + cst_examples_aides_logement_pr, + 996, + 14, + 996, + 49, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_0$330 = cst_0$360, + _Dt_ = + [0, + cst_examples_aides_logement_pr, + 1007, + 14, + 1007, + 53, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Dp_ = + [0, + cst_examples_aides_logement_pr, + 1004, + 14, + 1004, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Dl_ = + [0, + cst_examples_aides_logement_pr, + 1002, + 14, + 1002, + 70, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Dh_ = + [0, + cst_examples_aides_logement_pr, + 1000, + 14, + 1000, + 65, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Dd_ = + [0, + cst_examples_aides_logement_pr, + 998, + 14, + 998, + 67, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _C$_ = + [0, + cst_examples_aides_logement_pr, + 994, + 14, + 994, + 61, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _C7_ = + [0, + cst_examples_aides_logement_pr, + 992, + 14, + 992, + 59, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _C6_ = [3, 0], + _C0_ = + [0, + cst_examples_aides_logement_co$0, + 4445, + 14, + 4445, + 70, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _CW_ = + [0, + cst_examples_aides_logement_co$0, + 4442, + 14, + 4442, + 69, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _CS_ = + [0, + cst_examples_aides_logement_co$0, + 4443, + 14, + 4443, + 75, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _CO_ = + [0, + cst_examples_aides_logement_pr, + 1010, + 14, + 1010, + 61, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _CE_ = + [0, + cst_examples_aides_logement_ar$0, + 3419, + 5, + 3426, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$90 = cst_6$92, + cst_6$91 = cst_6$92, + _Cw_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input1, 0]]], + _Cx_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input0, 0]]], + _Cy_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_output, 0]]], + _Cz_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, 0]], + _CA_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input1, 0]]], + _CB_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input0, 0]]], + _CC_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_output, 0]]], + _CD_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, 0]], + _CF_ = + [0, + cst_examples_aides_logement_pr, + 951, + 10, + 951, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Cv_ = + [0, + cst_examples_aides_logement_ar$0, + 2881, + 5, + 2888, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$88 = cst_6$92, + cst_6$89 = cst_6$92, + _Cn_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input1, 0]]], + _Co_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input0, 0]]], + _Cp_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_output, 0]]], + _Cq_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, 0]], + _Cr_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input1, 0]]], + _Cs_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input0, 0]]], + _Ct_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_output, 0]]], + _Cu_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, 0]], + _CG_ = + [0, + cst_examples_aides_logement_pr, + 951, + 10, + 951, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Cm_ = + [0, + cst_examples_aides_logement_ar$0, + 1807, + 5, + 1814, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$86 = cst_6$92, + cst_6$87 = cst_6$92, + _Ce_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input1, 0]]], + _Cf_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input0, 0]]], + _Cg_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_output, 0]]], + _Ch_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, 0]], + _Ci_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input1, 0]]], + _Cj_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input0, 0]]], + _Ck_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_output, 0]]], + _Cl_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, 0]], + _CH_ = + [0, + cst_examples_aides_logement_pr, + 951, + 10, + 951, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Cd_ = + [0, + cst_examples_aides_logement_ar$0, + 685, + 5, + 692, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$84 = cst_6$92, + cst_6$85 = cst_6$92, + _B7_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input1, 0]]], + _B8_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input0, 0]]], + _B9_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_output, 0]]], + _B__ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, 0]], + _B$_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input1, 0]]], + _Ca_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input0, 0]]], + _Cb_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_output, 0]]], + _Cc_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, 0]], + _CI_ = + [0, + cst_examples_aides_logement_pr, + 951, + 10, + 951, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _B6_ = + [0, + cst_examples_aides_logement_ar$0, + 189, + 5, + 196, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$82 = cst_6$92, + cst_6$83 = cst_6$92, + _BY_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input1, 0]]], + _BZ_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input0, 0]]], + _B0_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_output, 0]]], + _B1_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, 0]], + _B2_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input1, 0]]], + _B3_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input0, 0]]], + _B4_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_output, 0]]], + _B5_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, 0]], + _CJ_ = + [0, + cst_examples_aides_logement_pr, + 951, + 10, + 951, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _CK_ = + [0, + cst_examples_aides_logement_pr, + 951, + 10, + 951, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _BX_ = + [0, + cst_examples_aides_logement_ar, + 3987, + 14, + 3987, + 46, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + _BT_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input1, 0]]], + _BU_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input0, 0]]], + _BV_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_output, 0]]], + _BW_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, 0]], + _CL_ = + [0, + cst_examples_aides_logement_pr, + 951, + 10, + 951, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _BS_ = + [0, + cst_examples_aides_logement_pr, + 951, + 10, + 951, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _BO_ = + [0, + cst_examples_aides_logement_co$0, + 4744, + 5, + 4744, + 28, + [0, + cst_Article_D842_12, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _BP_ = + [0, + cst_examples_aides_logement_pr, + 924, + 10, + 924, + 15, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _BN_ = + [0, + cst_examples_aides_logement_co$0, + 4734, + 14, + 4734, + 41, + [0, + cst_Article_D842_12, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_100$12 = cst_100$13, + cst_0_01$0 = cst_0_01$1, + cst_4999 = "4999", + _BJ_ = + [0, + cst_examples_aides_logement_co$0, + 4641, + 15, + 4641, + 37, + [0, + cst_Article_D842_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _BK_ = + [0, + cst_examples_aides_logement_pr, + 956, + 11, + 956, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _BI_ = + [0, + cst_examples_aides_logement_pr, + 956, + 11, + 956, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _BB_ = + [0, + cst_examples_aides_logement_ar$0, + 2614, + 24, + 2614, + 56, + [0, + cst_Article_37, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0_75$13 = cst_0_75$14, + _Bt_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input1, 0]]], + _Bu_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input0, 0]]], + _Bv_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_output, 0]]], + _Bw_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, 0]], + _Bx_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input1, 0]]], + _By_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input0, 0]]], + _Bz_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_output, 0]]], + _BA_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, 0]], + _BC_ = + [0, + cst_examples_aides_logement_pr, + 950, + 10, + 950, + 26, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Bs_ = + [0, + cst_examples_aides_logement_ar$0, + 1534, + 24, + 1534, + 56, + [0, + cst_Article_37, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0_75$12 = cst_0_75$14, + _Bk_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input1, 0]]], + _Bl_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input0, 0]]], + _Bm_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_output, 0]]], + _Bn_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, 0]], + _Bo_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input1, 0]]], + _Bp_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input0, 0]]], + _Bq_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_output, 0]]], + _Br_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, 0]], + _BD_ = + [0, + cst_examples_aides_logement_pr, + 950, + 10, + 950, + 26, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Bj_ = + [0, + cst_examples_aides_logement_ar, + 4070, + 24, + 4070, + 56, + [0, + cst_Article_37, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0_75$11 = cst_0_75$14, + _Bb_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input1, 0]]], + _Bc_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input0, 0]]], + _Bd_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_output, 0]]], + _Be_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, 0]], + _Bf_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input1, 0]]], + _Bg_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input0, 0]]], + _Bh_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_output, 0]]], + _Bi_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, 0]], + _BE_ = + [0, + cst_examples_aides_logement_pr, + 950, + 10, + 950, + 26, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _BF_ = + [0, + cst_examples_aides_logement_pr, + 950, + 10, + 950, + 26, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ba_ = + [0, + cst_examples_aides_logement_ar, + 3981, + 14, + 3981, + 46, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + _A8_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input1, 0]]], + _A9_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input0, 0]]], + _A__ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_output, 0]]], + _A$_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, 0]], + _BG_ = + [0, + cst_examples_aides_logement_pr, + 950, + 10, + 950, + 26, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _A7_ = + [0, + cst_examples_aides_logement_pr, + 950, + 10, + 950, + 26, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _A4_ = + [0, + cst_examples_aides_logement_co$0, + 4457, + 14, + 4457, + 36, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0$328 = cst_0$360, + cst_0$329 = cst_0$360, + _A5_ = + [0, + cst_examples_aides_logement_pr, + 980, + 10, + 980, + 32, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _A3_ = + [0, + cst_examples_aides_logement_pr, + 980, + 10, + 980, + 32, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AZ_ = + [0, + cst_examples_aides_logement_co$0, + 4705, + 6, + 4711, + 6, + [0, + cst_Article_D842_12, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _A0_ = + [0, + cst_examples_aides_logement_pr, + 954, + 11, + 954, + 42, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AX_ = + [0, + cst_examples_aides_logement_co$0, + 4723, + 5, + 4724, + 59, + [0, + cst_Article_D842_12, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _AY_ = + [0, + cst_examples_aides_logement_pr, + 954, + 11, + 954, + 42, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AP_ = + [0, + cst_examples_aides_logement_ar, + 4442, + 5, + 4450, + 16, + [0, + cst_Article_46, + [0, + cst_Chapitre_IX_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_969$13 = cst_969$14, + cst_1938$4 = cst_1938$5, + cst_3767$13 = cst_3767$14, + _AQ_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AN_ = + [0, + cst_examples_aides_logement_ar$0, + 343, + 6, + 350, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_969$11 = cst_969$14, + cst_1938$2 = cst_1938$5, + cst_3767$12 = cst_3767$14, + cst_6$81 = cst_6$93, + cst_969$12 = cst_969$14, + cst_1938$3 = cst_1938$5, + cst_3767$11 = cst_3767$14, + _AO_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AK_ = + [0, + cst_examples_aides_logement_ar$0, + 1961, + 6, + 1968, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_936$17 = cst_936$19, + cst_1872$5 = cst_1872$7, + cst_3640$18 = cst_3640$19, + cst_6$80 = cst_6$93, + cst_936$18 = cst_936$19, + cst_1872$6 = cst_1872$7, + cst_3640$17 = cst_3640$19, + _AL_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AJ_ = + [0, + cst_examples_aides_logement_ar$0, + 841, + 6, + 848, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_936$15 = cst_936$19, + cst_1872$3 = cst_1872$7, + cst_3640$16 = cst_3640$19, + cst_6$79 = cst_6$93, + cst_936$16 = cst_936$19, + cst_1872$4 = cst_1872$7, + cst_3640$15 = cst_3640$19, + _AM_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AH_ = + [0, + cst_examples_aides_logement_ar$0, + 3036, + 6, + 3043, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_932$7 = cst_932$9, + cst_1864$1 = cst_1864$3, + cst_3625$8 = cst_3625$9, + cst_6$78 = cst_6$93, + cst_932$8 = cst_932$9, + cst_1864$2 = cst_1864$3, + cst_3625$7 = cst_3625$9, + _AI_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AF_ = + [0, + cst_examples_aides_logement_ar$0, + 3574, + 6, + 3581, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_929$7 = cst_929$9, + cst_1858$1 = cst_1858$3, + cst_3614$8 = cst_3614$9, + cst_6$77 = cst_6$93, + cst_929$8 = cst_929$9, + cst_1858$2 = cst_1858$3, + cst_3614$7 = cst_3614$9, + _AG_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AR_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AC_ = + [0, + cst_examples_aides_logement_ar, + 4382, + 6, + 4389, + 28, + [0, + cst_Article_46, + [0, + cst_Chapitre_IX_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_969$10 = cst_969$14, + cst_3767$10 = cst_3767$14, + _AD_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AA_ = + [0, + cst_examples_aides_logement_ar$0, + 262, + 6, + 269, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_969$8 = cst_969$14, + cst_3767$8 = cst_3767$14, + cst_6$76 = cst_6$93, + cst_969$9 = cst_969$14, + cst_3767$9 = cst_3767$14, + _AB_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ax_ = + [0, + cst_examples_aides_logement_ar$0, + 1881, + 6, + 1888, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_936$13 = cst_936$19, + cst_3640$13 = cst_3640$19, + cst_6$75 = cst_6$93, + cst_936$14 = cst_936$19, + cst_3640$14 = cst_3640$19, + _Ay_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Aw_ = + [0, + cst_examples_aides_logement_ar$0, + 760, + 6, + 767, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_936$11 = cst_936$19, + cst_3640$11 = cst_3640$19, + cst_6$74 = cst_6$93, + cst_936$12 = cst_936$19, + cst_3640$12 = cst_3640$19, + _Az_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Au_ = + [0, + cst_examples_aides_logement_ar$0, + 2956, + 6, + 2963, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_932$5 = cst_932$9, + cst_3625$5 = cst_3625$9, + cst_6$73 = cst_6$93, + cst_932$6 = cst_932$9, + cst_3625$6 = cst_3625$9, + _Av_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _As_ = + [0, + cst_examples_aides_logement_ar$0, + 3494, + 6, + 3501, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_929$5 = cst_929$9, + cst_3614$5 = cst_3614$9, + cst_6$72 = cst_6$93, + cst_929$6 = cst_929$9, + cst_3614$6 = cst_3614$9, + _At_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AE_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AS_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ap_ = + [0, + cst_examples_aides_logement_ar, + 4092, + 57, + 4092, + 68, + [0, + cst_Article_37, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1272$5 = cst_1272$6, + cst_2805$1 = cst_2805$2, + cst_5612$7 = cst_5612$8, + _Aq_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _An_ = + [0, + cst_examples_aides_logement_ar$0, + 1558, + 5, + 1558, + 16, + [0, + cst_Article_37, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1229$5 = cst_1229$6, + cst_2710$1 = cst_2710$2, + cst_5422$7 = cst_5422$8, + _Ao_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Al_ = + [0, + cst_examples_aides_logement_ar$0, + 2639, + 5, + 2639, + 16, + [0, + cst_Article_37, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1224$5 = cst_1224$6, + cst_2699$1 = cst_2699$2, + cst_5399$7 = cst_5399$8, + _Am_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ar_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AT_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ai_ = + [0, + cst_examples_aides_logement_ar, + 4035, + 29, + 4035, + 56, + [0, + cst_Article_34, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$327 = cst_0$360, + cst_5612$5 = cst_5612$8, + cst_1272$4 = cst_1272$6, + cst_5612$6 = cst_5612$8, + _Aj_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ag_ = + [0, + cst_examples_aides_logement_ar$0, + 1519, + 29, + 1519, + 56, + [0, + cst_Article_34, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$326 = cst_0$360, + cst_5422$5 = cst_5422$8, + cst_1229$4 = cst_1229$6, + cst_5422$6 = cst_5422$8, + _Ah_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ae_ = + [0, + cst_examples_aides_logement_ar$0, + 2597, + 29, + 2597, + 56, + [0, + cst_Article_34, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$325 = cst_0$360, + cst_5399$5 = cst_5399$8, + cst_1224$4 = cst_1224$6, + cst_5399$6 = cst_5399$8, + _Af_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ak_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _z$_ = + [0, + cst_examples_aides_logement_ar, + 2955, + 5, + 2955, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$322 = cst_0$360, + cst_158700 = "158700", + cst_191300 = "191300", + cst_1$243 = cst_1$254, + cst_205500 = "205500", + cst_2$97 = cst_2$105, + cst_211300 = "211300", + cst_3$95 = cst_3$101, + cst_217100 = "217100", + cst_4$97 = cst_4$100, + cst_222900 = "222900", + cst_5$152 = cst_5$158, + cst_228000 = cst_228000$1, + cst_5$153 = cst_5$158, + cst_19800 = "19800", + cst_228000$0 = cst_228000$1, + cst_0$323 = cst_0$360, + cst_139300 = "139300", + cst_170600 = "170600", + cst_1$244 = cst_1$254, + cst_184700 = "184700", + cst_2$98 = cst_2$105, + cst_191200 = "191200", + cst_3$96 = cst_3$101, + cst_197700$0 = cst_197700$1, + cst_4$98 = cst_4$100, + cst_204200 = "204200", + cst_5$154 = cst_5$158, + cst_218700 = cst_218700$1, + cst_5$155 = cst_5$158, + cst_19100$1 = cst_19100$2, + cst_218700$0 = cst_218700$1, + cst_0$324 = cst_0$360, + cst_130600 = "130600", + cst_158400 = "158400", + cst_1$245 = cst_1$254, + cst_172600 = "172600", + cst_2$99 = cst_2$105, + cst_179800$0 = cst_179800$1, + cst_3$97 = cst_3$101, + cst_187000 = "187000", + cst_4$99 = cst_4$100, + cst_194200 = "194200", + cst_5$156 = cst_5$158, + cst_208600$0 = cst_208600$2, + cst_5$157 = cst_5$158, + cst_18200 = "18200", + cst_208600$1 = cst_208600$2, + _Aa_ = + [0, + cst_examples_aides_logement_pr, + 949, + 10, + 949, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _z9_ = + [0, + cst_examples_aides_logement_ar, + 3000, + 5, + 3000, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$319 = cst_0$360, + cst_160400 = "160400", + cst_193400 = "193400", + cst_1$240 = cst_1$254, + cst_207800 = "207800", + cst_2$94 = cst_2$105, + cst_213700 = "213700", + cst_3$92 = cst_3$101, + cst_219600 = "219600", + cst_4$94 = cst_4$100, + cst_225500$0 = cst_225500$1, + cst_5$146 = cst_5$158, + cst_230500$1 = cst_230500$3, + cst_5$147 = cst_5$158, + cst_20000 = "20000", + cst_230500$2 = cst_230500$3, + cst_0$320 = cst_0$360, + cst_140800$0 = cst_140800$1, + cst_172500$0 = cst_172500$1, + cst_1$241 = cst_1$254, + cst_186700 = "186700", + cst_2$95 = cst_2$105, + cst_193300 = "193300", + cst_3$93 = cst_3$101, + cst_199900$1 = cst_199900$2, + cst_4$95 = cst_4$100, + cst_206500 = "206500", + cst_5$148 = cst_5$158, + cst_221100 = cst_221100$1, + cst_5$149 = cst_5$158, + cst_19300$0 = cst_19300$1, + cst_221100$0 = cst_221100$1, + cst_0$321 = cst_0$360, + cst_132000$0 = cst_132000$1, + cst_180100$1 = cst_180100$2, + cst_1$242 = cst_1$254, + cst_174500 = "174500", + cst_2$96 = cst_2$105, + cst_181800$0 = cst_181800$1, + cst_3$94 = cst_3$101, + cst_189100 = "189100", + cst_4$96 = cst_4$100, + cst_196400 = "196400", + cst_5$150 = cst_5$158, + cst_210900 = cst_210900$1, + cst_5$151 = cst_5$158, + cst_18400 = "18400", + cst_210900$0 = cst_210900$1, + _z__ = + [0, + cst_examples_aides_logement_pr, + 949, + 10, + 949, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _z7_ = + [0, + cst_examples_aides_logement_ar, + 3045, + 5, + 3045, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$316 = cst_0$360, + cst_163300 = "163300", + cst_196900 = "196900", + cst_1$237 = cst_1$254, + cst_211600 = "211600", + cst_2$91 = cst_2$105, + cst_217600$0 = cst_217600$1, + cst_3$89 = cst_3$101, + cst_223600 = "223600", + cst_4$91 = cst_4$100, + cst_229600 = "229600", + cst_5$140 = cst_5$158, + cst_234600 = cst_234600$1, + cst_5$141 = cst_5$158, + cst_20400 = "20400", + cst_234600$0 = cst_234600$1, + cst_0$317 = cst_0$360, + cst_143300 = "143300", + cst_175600 = "175600", + cst_1$238 = cst_1$254, + cst_190100 = "190100", + cst_2$92 = cst_2$105, + cst_196600 = "196600", + cst_3$90 = cst_3$101, + cst_203500 = "203500", + cst_4$92 = cst_4$100, + cst_210200 = "210200", + cst_5$142 = cst_5$158, + cst_225100 = cst_225100$1, + cst_5$143 = cst_5$158, + cst_19600 = "19600", + cst_225100$0 = cst_225100$1, + cst_0$318 = cst_0$360, + cst_134400 = "134400", + cst_163000$0 = cst_163000$1, + cst_1$239 = cst_1$254, + cst_177700 = "177700", + cst_2$93 = cst_2$105, + cst_185100 = "185100", + cst_3$91 = cst_3$101, + cst_192500$0 = cst_192500$1, + cst_4$93 = cst_4$100, + cst_199900$0 = cst_199900$2, + cst_5$144 = cst_5$158, + cst_214700 = cst_214700$1, + cst_5$145 = cst_5$158, + cst_18700 = "18700", + cst_214700$0 = cst_214700$1, + _z8_ = + [0, + cst_examples_aides_logement_pr, + 949, + 10, + 949, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _z5_ = + [0, + cst_examples_aides_logement_ar, + 3090, + 5, + 3090, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$313 = cst_0$360, + cst_167200 = "167200", + cst_201600 = "201600", + cst_1$234 = cst_1$254, + cst_216700 = "216700", + cst_2$88 = cst_2$105, + cst_222800 = "222800", + cst_3$86 = cst_3$101, + cst_229000 = "229000", + cst_4$88 = cst_4$100, + cst_235100 = "235100", + cst_5$134 = cst_5$158, + cst_240200 = cst_240200$1, + cst_5$135 = cst_5$158, + cst_20900$0 = cst_20900$1, + cst_240200$0 = cst_240200$1, + cst_0$314 = cst_0$360, + cst_146700 = "146700", + cst_179800 = cst_179800$1, + cst_1$235 = cst_1$254, + cst_194700 = "194700", + cst_2$89 = cst_2$105, + cst_201500 = "201500", + cst_3$87 = cst_3$101, + cst_208400 = "208400", + cst_4$89 = cst_4$100, + cst_215200 = "215200", + cst_5$136 = cst_5$158, + cst_230500 = cst_230500$3, + cst_5$137 = cst_5$158, + cst_20100$0 = cst_20100$1, + cst_230500$0 = cst_230500$3, + cst_0$315 = cst_0$360, + cst_137600 = "137600", + cst_166900 = "166900", + cst_1$236 = cst_1$254, + cst_182000 = "182000", + cst_2$90 = cst_2$105, + cst_189500 = "189500", + cst_3$88 = cst_3$101, + cst_197100 = "197100", + cst_4$90 = cst_4$100, + cst_204700$0 = cst_204700$1, + cst_5$138 = cst_5$158, + cst_219900 = cst_219900$1, + cst_5$139 = cst_5$158, + cst_19100$0 = cst_19100$2, + cst_219900$0 = cst_219900$1, + _z6_ = + [0, + cst_examples_aides_logement_pr, + 949, + 10, + 949, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _z3_ = + [0, + cst_examples_aides_logement_ar, + 3135, + 5, + 3135, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$310 = cst_0$360, + cst_167400 = "167400", + cst_201800 = "201800", + cst_1$231 = cst_1$254, + cst_216900 = "216900", + cst_2$85 = cst_2$105, + cst_223000 = "223000", + cst_3$83 = cst_3$101, + cst_229200 = "229200", + cst_4$85 = cst_4$100, + cst_235300 = "235300", + cst_5$128 = cst_5$158, + cst_240400 = cst_240400$1, + cst_5$129 = cst_5$158, + cst_20900 = cst_20900$1, + cst_240400$0 = cst_240400$1, + cst_0$311 = cst_0$360, + cst_146800 = "146800", + cst_180000 = "180000", + cst_1$232 = cst_1$254, + cst_194900 = "194900", + cst_2$86 = cst_2$105, + cst_201700$0 = cst_201700$1, + cst_3$84 = cst_3$101, + cst_208600 = cst_208600$2, + cst_4$86 = cst_4$100, + cst_215400 = "215400", + cst_5$130 = cst_5$158, + cst_230700 = cst_230700$1, + cst_5$131 = cst_5$158, + cst_20100 = cst_20100$1, + cst_230700$0 = cst_230700$1, + cst_0$312 = cst_0$360, + cst_137700 = "137700", + cst_167100 = "167100", + cst_1$233 = cst_1$254, + cst_182200 = "182200", + cst_2$87 = cst_2$105, + cst_189700 = "189700", + cst_3$85 = cst_3$101, + cst_197300 = "197300", + cst_4$87 = cst_4$100, + cst_204900 = "204900", + cst_5$132 = cst_5$158, + cst_220100 = cst_220100$1, + cst_5$133 = cst_5$158, + cst_19100 = cst_19100$2, + cst_220100$0 = cst_220100$1, + _z4_ = + [0, + cst_examples_aides_logement_pr, + 949, + 10, + 949, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _z1_ = + [0, + cst_examples_aides_logement_ar, + 3183, + 5, + 3183, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$307 = cst_0$360, + cst_169100 = "169100", + cst_203800 = "203800", + cst_1$228 = cst_1$254, + cst_219100 = "219100", + cst_2$82 = cst_2$105, + cst_225200 = "225200", + cst_3$80 = cst_3$101, + cst_231500 = "231500", + cst_4$82 = cst_4$100, + cst_237700 = "237700", + cst_5$122 = cst_5$158, + cst_242800$1 = cst_242800$3, + cst_5$123 = cst_5$158, + cst_21100 = "21100", + cst_242800$2 = cst_242800$3, + cst_0$308 = cst_0$360, + cst_148300 = "148300", + cst_181800 = cst_181800$1, + cst_1$229 = cst_1$254, + cst_196800 = "196800", + cst_2$83 = cst_2$105, + cst_203700 = "203700", + cst_3$81 = cst_3$101, + cst_210700 = "210700", + cst_4$83 = cst_4$100, + cst_217600 = cst_217600$1, + cst_5$124 = cst_5$158, + cst_233000 = cst_233000$1, + cst_5$125 = cst_5$158, + cst_20300 = "20300", + cst_233000$0 = cst_233000$1, + cst_0$309 = cst_0$360, + cst_139100 = "139100", + cst_168800 = "168800", + cst_1$230 = cst_1$254, + cst_184000$1 = cst_184000$2, + cst_2$84 = cst_2$105, + cst_191600 = "191600", + cst_3$82 = cst_3$101, + cst_199300 = "199300", + cst_4$84 = cst_4$100, + cst_206900 = "206900", + cst_5$126 = cst_5$158, + cst_222300 = cst_222300$1, + cst_5$127 = cst_5$158, + cst_19300 = cst_19300$1, + cst_222300$0 = cst_222300$1, + _z2_ = + [0, + cst_examples_aides_logement_pr, + 949, + 10, + 949, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zZ_ = + [0, + cst_examples_aides_logement_ar, + 3231, + 5, + 3231, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$304 = cst_0$360, + cst_171100 = "171100", + cst_206200 = "206200", + cst_1$225 = cst_1$254, + cst_221700 = "221700", + cst_2$79 = cst_2$105, + cst_227900 = "227900", + cst_3$77 = cst_3$101, + cst_234300 = "234300", + cst_4$79 = cst_4$100, + cst_240600 = "240600", + cst_5$116 = cst_5$158, + cst_245700 = cst_245700$1, + cst_5$117 = cst_5$158, + cst_21400 = "21400", + cst_245700$0 = cst_245700$1, + cst_0$305 = cst_0$360, + cst_150100 = "150100", + cst_184000$0 = cst_184000$2, + cst_1$226 = cst_1$254, + cst_199200 = "199200", + cst_2$80 = cst_2$105, + cst_206100 = "206100", + cst_3$78 = cst_3$101, + cst_213200 = "213200", + cst_4$80 = cst_4$100, + cst_220200 = "220200", + cst_5$118 = cst_5$158, + cst_235800 = cst_235800$1, + cst_5$119 = cst_5$158, + cst_20500 = "20500", + cst_235800$0 = cst_235800$1, + cst_0$306 = cst_0$360, + cst_140800 = cst_140800$1, + cst_170800 = "170800", + cst_1$227 = cst_1$254, + cst_186200 = "186200", + cst_2$81 = cst_2$105, + cst_193900 = "193900", + cst_3$79 = cst_3$101, + cst_201700 = cst_201700$1, + cst_4$81 = cst_4$100, + cst_209400 = "209400", + cst_5$120 = cst_5$158, + cst_225000 = cst_225000$1, + cst_5$121 = cst_5$158, + cst_19500 = "19500", + cst_225000$0 = cst_225000$1, + _z0_ = + [0, + cst_examples_aides_logement_pr, + 949, + 10, + 949, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zX_ = + [0, + cst_examples_aides_logement_ar, + 3279, + 5, + 3279, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$301 = cst_0$360, + cst_26084 = "26084", + cst_31435 = "31435", + cst_1$222 = cst_1$254, + cst_33798 = "33798", + cst_2$76 = cst_2$105, + cst_34743 = "34743", + cst_3$74 = cst_3$101, + cst_35719 = "35719", + cst_4$76 = cst_4$100, + cst_36679 = "36679", + cst_5$110 = cst_5$158, + cst_37457 = cst_37457$1, + cst_5$111 = cst_5$158, + cst_3262 = "3262", + cst_37457$0 = cst_37457$1, + cst_0$302 = cst_0$360, + cst_22883 = "22883", + cst_28051 = "28051", + cst_1$223 = cst_1$254, + cst_30368 = "30368", + cst_2$77 = cst_2$105, + cst_31420 = "31420", + cst_3$75 = cst_3$101, + cst_32502 = "32502", + cst_4$77 = cst_4$100, + cst_33569 = "33569", + cst_5$112 = cst_5$158, + cst_35947 = cst_35947$1, + cst_5$113 = cst_5$158, + cst_3125 = "3125", + cst_35947$0 = cst_35947$1, + cst_0$303 = cst_0$360, + cst_21465 = "21465", + cst_26038 = "26038", + cst_1$224 = cst_1$254, + cst_28386 = "28386", + cst_2$78 = cst_2$105, + cst_29560 = "29560", + cst_3$76 = cst_3$101, + cst_30749 = "30749", + cst_4$78 = cst_4$100, + cst_31923 = "31923", + cst_5$114 = cst_5$158, + cst_34301 = cst_34301$1, + cst_5$115 = cst_5$158, + cst_2973 = "2973", + cst_34301$0 = cst_34301$1, + _zY_ = + [0, + cst_examples_aides_logement_pr, + 949, + 10, + 949, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zV_ = + [0, + cst_examples_aides_logement_ar, + 3326, + 5, + 3326, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$298 = cst_0$360, + cst_26397 = "26397", + cst_31812 = "31812", + cst_1$219 = cst_1$254, + cst_34204 = "34204", + cst_2$73 = cst_2$105, + cst_35160 = "35160", + cst_3$71 = cst_3$101, + cst_36148 = "36148", + cst_4$73 = cst_4$100, + cst_37119 = "37119", + cst_5$104 = cst_5$158, + cst_37906 = cst_37906$1, + cst_5$105 = cst_5$158, + cst_3301 = "3301", + cst_37906$0 = cst_37906$1, + cst_0$299 = cst_0$360, + cst_23158 = "23158", + cst_28388 = "28388", + cst_1$220 = cst_1$254, + cst_30732 = "30732", + cst_2$74 = cst_2$105, + cst_31797$1 = cst_31797$2, + cst_3$72 = cst_3$101, + cst_32892 = "32892", + cst_4$74 = cst_4$100, + cst_33972 = "33972", + cst_5$106 = cst_5$158, + cst_36378 = cst_36378$1, + cst_5$107 = cst_5$158, + cst_3163 = "3163", + cst_36378$0 = cst_36378$1, + cst_0$300 = cst_0$360, + cst_21723 = "21723", + cst_26350 = "26350", + cst_1$221 = cst_1$254, + cst_28727 = "28727", + cst_2$75 = cst_2$105, + cst_29915 = "29915", + cst_3$73 = cst_3$101, + cst_31118 = "31118", + cst_4$75 = cst_4$100, + cst_32306 = "32306", + cst_5$108 = cst_5$158, + cst_34713 = cst_34713$1, + cst_5$109 = cst_5$158, + cst_3009 = "3009", + cst_34713$0 = cst_34713$1, + _zW_ = + [0, + cst_examples_aides_logement_pr, + 949, + 10, + 949, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zT_ = + [0, + cst_examples_aides_logement_ar, + 3373, + 5, + 3373, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$295 = cst_0$360, + cst_26714$0 = cst_26714$1, + cst_32194 = "32194", + cst_1$216 = cst_1$254, + cst_34614 = "34614", + cst_2$70 = cst_2$105, + cst_35582 = "35582", + cst_3$68 = cst_3$101, + cst_36582 = "36582", + cst_4$70 = cst_4$100, + cst_37564 = "37564", + cst_5$98 = cst_5$158, + cst_38361 = cst_38361$1, + cst_5$99 = cst_5$158, + cst_3341 = "3341", + cst_38361$0 = cst_38361$1, + cst_0$296 = cst_0$360, + cst_23436 = "23436", + cst_28729 = "28729", + cst_1$217 = cst_1$254, + cst_31101 = "31101", + cst_2$71 = cst_2$105, + cst_32179 = "32179", + cst_3$69 = cst_3$101, + cst_33287 = "33287", + cst_4$71 = cst_4$100, + cst_34380 = "34380", + cst_5$100 = cst_5$158, + cst_36815 = cst_36815$1, + cst_5$101 = cst_5$158, + cst_3201 = "3201", + cst_36815$0 = cst_36815$1, + cst_0$297 = cst_0$360, + cst_21984 = "21984", + cst_26666 = "26666", + cst_1$218 = cst_1$254, + cst_29072 = "29072", + cst_2$72 = cst_2$105, + cst_30274 = "30274", + cst_3$70 = cst_3$101, + cst_31491 = "31491", + cst_4$72 = cst_4$100, + cst_32694 = "32694", + cst_5$102 = cst_5$158, + cst_35130 = cst_35130$1, + cst_5$103 = cst_5$158, + cst_3045 = "3045", + cst_35130$0 = cst_35130$1, + _zU_ = + [0, + cst_examples_aides_logement_pr, + 949, + 10, + 949, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zR_ = + [0, + cst_examples_aides_logement_ar, + 3420, + 5, + 3420, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$292 = cst_0$360, + cst_27195 = "27195", + cst_32773 = "32773", + cst_1$213 = cst_1$254, + cst_35237 = "35237", + cst_2$67 = cst_2$105, + cst_36222 = "36222", + cst_3$65 = cst_3$101, + cst_37240 = "37240", + cst_4$67 = cst_4$100, + cst_38240 = "38240", + cst_5$92 = cst_5$158, + cst_39051 = cst_39051$1, + cst_5$93 = cst_5$158, + cst_3401 = "3401", + cst_39051$0 = cst_39051$1, + cst_0$293 = cst_0$360, + cst_23858 = "23858", + cst_29246 = "29246", + cst_1$214 = cst_1$254, + cst_31661 = "31661", + cst_2$68 = cst_2$105, + cst_32758 = "32758", + cst_3$66 = cst_3$101, + cst_33886 = "33886", + cst_4$68 = cst_4$100, + cst_34999 = "34999", + cst_5$94 = cst_5$158, + cst_37478 = cst_37478$1, + cst_5$95 = cst_5$158, + cst_3259 = "3259", + cst_37478$0 = cst_37478$1, + cst_0$294 = cst_0$360, + cst_22380 = "22380", + cst_27146 = "27146", + cst_1$215 = cst_1$254, + cst_29595 = "29595", + cst_2$69 = cst_2$105, + cst_30819 = "30819", + cst_3$67 = cst_3$101, + cst_32058 = "32058", + cst_4$69 = cst_4$100, + cst_33282 = "33282", + cst_5$96 = cst_5$158, + cst_35762 = cst_35762$1, + cst_5$97 = cst_5$158, + cst_3100 = "3100", + cst_35762$0 = cst_35762$1, + _zS_ = + [0, + cst_examples_aides_logement_pr, + 949, + 10, + 949, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zP_ = + [0, + cst_examples_aides_logement_ar, + 3467, + 5, + 3467, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$289 = cst_0$360, + cst_27956 = "27956", + cst_33691 = "33691", + cst_1$210 = cst_1$254, + cst_36224 = "36224", + cst_2$64 = cst_2$105, + cst_37236 = "37236", + cst_3$62 = cst_3$101, + cst_38283 = "38283", + cst_4$64 = cst_4$100, + cst_39311 = "39311", + cst_5$86 = cst_5$158, + cst_40144 = cst_40144$1, + cst_5$87 = cst_5$158, + cst_3496 = "3496", + cst_40144$0 = cst_40144$1, + cst_0$290 = cst_0$360, + cst_24526 = "24526", + cst_30065 = "30065", + cst_1$211 = cst_1$254, + cst_32548 = "32548", + cst_2$65 = cst_2$105, + cst_33675 = "33675", + cst_3$63 = cst_3$101, + cst_34865$0 = cst_34865$1, + cst_4$65 = cst_4$100, + cst_35979 = "35979", + cst_5$88 = cst_5$158, + cst_38527 = cst_38527$1, + cst_5$89 = cst_5$158, + cst_3350 = "3350", + cst_38527$0 = cst_38527$1, + cst_0$291 = cst_0$360, + cst_23007 = "23007", + cst_27906 = "27906", + cst_1$212 = cst_1$254, + cst_30424 = "30424", + cst_2$66 = cst_2$105, + cst_31682 = "31682", + cst_3$64 = cst_3$101, + cst_32956$0 = cst_32956$1, + cst_4$66 = cst_4$100, + cst_34214 = "34214", + cst_5$90 = cst_5$158, + cst_36733 = cst_36733$1, + cst_5$91 = cst_5$158, + cst_3187 = "3187", + cst_36733$0 = cst_36733$1, + _zQ_ = + [0, + cst_examples_aides_logement_pr, + 949, + 10, + 949, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zN_ = + [0, + cst_examples_aides_logement_ar, + 3514, + 5, + 3514, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$286 = cst_0$360, + cst_28728 = "28728", + cst_34621 = "34621", + cst_1$207 = cst_1$254, + cst_37224 = "37224", + cst_2$61 = cst_2$105, + cst_38264 = "38264", + cst_3$59 = cst_3$101, + cst_39340$0 = cst_39340$1, + cst_4$61 = cst_4$100, + cst_40396 = "40396", + cst_5$80 = cst_5$158, + cst_41252 = cst_41252$1, + cst_5$81 = cst_5$158, + cst_3592 = "3592", + cst_41252$0 = cst_41252$1, + cst_0$287 = cst_0$360, + cst_25203 = "25203", + cst_30895 = "30895", + cst_1$208 = cst_1$254, + cst_33446 = "33446", + cst_2$62 = cst_2$105, + cst_34604 = "34604", + cst_3$60 = cst_3$101, + cst_35796 = "35796", + cst_4$62 = cst_4$100, + cst_36972 = "36972", + cst_5$82 = cst_5$158, + cst_39590 = cst_39590$1, + cst_5$83 = cst_5$158, + cst_3442 = "3442", + cst_39590$0 = cst_39590$1, + cst_0$288 = cst_0$360, + cst_23642 = "23642", + cst_28676 = "28676", + cst_1$209 = cst_1$254, + cst_31264$0 = cst_31264$1, + cst_2$63 = cst_2$105, + cst_32556 = "32556", + cst_3$61 = cst_3$101, + cst_33866 = "33866", + cst_4$63 = cst_4$100, + cst_35158 = "35158", + cst_5$84 = cst_5$158, + cst_37778 = cst_37778$1, + cst_5$85 = cst_5$158, + cst_3275 = "3275", + cst_37778$0 = cst_37778$1, + _zO_ = + [0, + cst_examples_aides_logement_pr, + 949, + 10, + 949, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zL_ = + [0, + cst_examples_aides_logement_ar, + 3561, + 5, + 3561, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$283 = cst_0$360, + cst_29575 = "29575", + cst_35642 = "35642", + cst_1$204 = cst_1$254, + cst_38322 = "38322", + cst_2$58 = cst_2$105, + cst_39393 = "39393", + cst_3$56 = cst_3$101, + cst_40501 = "40501", + cst_4$58 = cst_4$100, + cst_41588 = "41588", + cst_5$74 = cst_5$158, + cst_42469 = cst_42469$1, + cst_5$75 = cst_5$158, + cst_3698 = "3698", + cst_42469$0 = cst_42469$1, + cst_0$284 = cst_0$360, + cst_25946 = "25946", + cst_31806 = "31806", + cst_1$205 = cst_1$254, + cst_34433 = "34433", + cst_2$59 = cst_2$105, + cst_35625 = "35625", + cst_3$57 = cst_3$101, + cst_36852 = "36852", + cst_4$59 = cst_4$100, + cst_38063 = "38063", + cst_5$76 = cst_5$158, + cst_40758 = cst_40758$1, + cst_5$77 = cst_5$158, + cst_3544 = "3544", + cst_40758$0 = cst_40758$1, + cst_0$285 = cst_0$360, + cst_24339 = "24339", + cst_29522 = "29522", + cst_1$206 = cst_1$254, + cst_32186 = "32186", + cst_2$60 = cst_2$105, + cst_33516 = "33516", + cst_3$58 = cst_3$101, + cst_34865 = cst_34865$1, + cst_4$60 = cst_4$100, + cst_36195 = "36195", + cst_5$78 = cst_5$158, + cst_38892 = cst_38892$1, + cst_5$79 = cst_5$158, + cst_3372 = "3372", + cst_38892$0 = cst_38892$1, + _zM_ = + [0, + cst_examples_aides_logement_pr, + 949, + 10, + 949, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zJ_ = + [0, + cst_examples_aides_logement_ar, + 3608, + 5, + 3608, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$280 = cst_0$360, + cst_29670 = "29670", + cst_35757 = "35757", + cst_1$201 = cst_1$254, + cst_38445 = "38445", + cst_2$55 = cst_2$105, + cst_39519 = "39519", + cst_3$53 = cst_3$101, + cst_40601 = "40601", + cst_4$55 = cst_4$100, + cst_41721 = "41721", + cst_5$68 = cst_5$158, + cst_42605 = cst_42605$1, + cst_5$69 = cst_5$158, + cst_3710 = "3710", + cst_42605$0 = cst_42605$1, + cst_0$281 = cst_0$360, + cst_26029 = "26029", + cst_31908 = "31908", + cst_1$202 = cst_1$254, + cst_34643 = "34643", + cst_2$56 = cst_2$105, + cst_35739 = "35739", + cst_3$54 = cst_3$101, + cst_36970 = "36970", + cst_4$56 = cst_4$100, + cst_38185 = "38185", + cst_5$70 = cst_5$158, + cst_40888 = cst_40888$1, + cst_5$71 = cst_5$158, + cst_3555 = "3555", + cst_40888$0 = cst_40888$1, + cst_0$282 = cst_0$360, + cst_24417 = "24417", + cst_29616 = "29616", + cst_1$203 = cst_1$254, + cst_32289 = "32289", + cst_2$57 = cst_2$105, + cst_33623$0 = cst_33623$1, + cst_3$55 = cst_3$101, + cst_34977 = "34977", + cst_4$57 = cst_4$100, + cst_36311 = "36311", + cst_5$72 = cst_5$158, + cst_39016 = cst_39016$1, + cst_5$73 = cst_5$158, + cst_3383 = "3383", + cst_39016$0 = cst_39016$1, + _zK_ = + [0, + cst_examples_aides_logement_pr, + 949, + 10, + 949, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zH_ = + [0, + cst_examples_aides_logement_ar, + 3655, + 5, + 3655, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$277 = cst_0$360, + cst_29996 = "29996", + cst_36149 = "36149", + cst_1$198 = cst_1$254, + cst_38868 = "38868", + cst_2$52 = cst_2$105, + cst_39954 = "39954", + cst_3$50 = cst_3$101, + cst_41078 = "41078", + cst_4$52 = cst_4$100, + cst_42180 = "42180", + cst_5$62 = cst_5$158, + cst_43074 = cst_43074$1, + cst_5$63 = cst_5$158, + cst_3751 = "3751", + cst_43074$0 = cst_43074$1, + cst_0$278 = cst_0$360, + cst_26315 = "26315", + cst_32259 = "32259", + cst_1$199 = cst_1$254, + cst_34923 = "34923", + cst_2$53 = cst_2$105, + cst_36132 = "36132", + cst_3$51 = cst_3$101, + cst_37373 = "37373", + cst_4$53 = cst_4$100, + cst_38605 = "38605", + cst_5$64 = cst_5$158, + cst_41338 = cst_41338$1, + cst_5$65 = cst_5$158, + cst_3594 = "3594", + cst_41338$0 = cst_41338$1, + cst_0$279 = cst_0$360, + cst_24686 = "24686", + cst_29942 = "29942", + cst_1$200 = cst_1$254, + cst_32644 = "32644", + cst_2$54 = cst_2$105, + cst_33993 = "33993", + cst_3$52 = cst_3$101, + cst_35362 = "35362", + cst_4$54 = cst_4$100, + cst_36710 = "36710", + cst_5$66 = cst_5$158, + cst_39445 = cst_39445$1, + cst_5$67 = cst_5$158, + cst_3420 = "3420", + cst_39445$0 = cst_39445$1, + _zI_ = + [0, + cst_examples_aides_logement_pr, + 949, + 10, + 949, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zF_ = + [0, + cst_examples_aides_logement_ar, + 3702, + 5, + 3702, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$274 = cst_0$360, + cst_30296 = "30296", + cst_36510 = "36510", + cst_1$195 = cst_1$254, + cst_39257 = "39257", + cst_2$49 = cst_2$105, + cst_40354 = "40354", + cst_3$47 = cst_3$101, + cst_41489 = "41489", + cst_4$49 = cst_4$100, + cst_42602 = "42602", + cst_5$56 = cst_5$158, + cst_43505 = cst_43505$1, + cst_5$57 = cst_5$158, + cst_3789 = "3789", + cst_43505$0 = cst_43505$1, + cst_0$275 = cst_0$360, + cst_26578 = "26578", + cst_32582 = "32582", + cst_1$196 = cst_1$254, + cst_35272 = "35272", + cst_2$50 = cst_2$105, + cst_36493 = "36493", + cst_3$48 = cst_3$101, + cst_37751 = "37751", + cst_4$50 = cst_4$100, + cst_38991 = "38991", + cst_5$58 = cst_5$158, + cst_41751 = cst_41751$1, + cst_5$59 = cst_5$158, + cst_3630 = "3630", + cst_41751$0 = cst_41751$1, + cst_0$276 = cst_0$360, + cst_24933 = "24933", + cst_30241 = "30241", + cst_1$197 = cst_1$254, + cst_32970 = "32970", + cst_2$51 = cst_2$105, + cst_34333 = "34333", + cst_3$49 = cst_3$101, + cst_35716 = "35716", + cst_4$51 = cst_4$100, + cst_37077 = "37077", + cst_5$60 = cst_5$158, + cst_39839 = cst_39839$1, + cst_5$61 = cst_5$158, + cst_3454 = "3454", + cst_39839$0 = cst_39839$1, + _zG_ = + [0, + cst_examples_aides_logement_pr, + 949, + 10, + 949, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zD_ = + [0, + cst_examples_aides_logement_ar, + 3749, + 5, + 3749, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$271 = cst_0$360, + cst_30947 = "30947", + cst_37295 = "37295", + cst_1$192 = cst_1$254, + cst_40101 = "40101", + cst_2$46 = cst_2$105, + cst_41222 = "41222", + cst_3$44 = cst_3$101, + cst_42381 = "42381", + cst_4$46 = cst_4$100, + cst_43518 = "43518", + cst_5$50 = cst_5$158, + cst_44440 = cst_44440$1, + cst_5$51 = cst_5$158, + cst_3870 = "3870", + cst_44440$0 = cst_44440$1, + cst_0$272 = cst_0$360, + cst_27149 = "27149", + cst_33283 = "33283", + cst_1$193 = cst_1$254, + cst_36030 = "36030", + cst_2$47 = cst_2$105, + cst_37278 = "37278", + cst_3$45 = cst_3$101, + cst_38563 = "38563", + cst_4$47 = cst_4$100, + cst_39829 = "39829", + cst_5$52 = cst_5$158, + cst_42649 = "42649", + cst_5$53 = cst_5$158, + cst_3708 = "3708", + cst_42659 = "42659", + cst_0$273 = cst_0$360, + cst_25469 = "25469", + cst_30891 = "30891", + cst_1$194 = cst_1$254, + cst_33679 = "33679", + cst_2$48 = cst_2$105, + cst_35071 = "35071", + cst_3$46 = cst_3$101, + cst_36484 = "36484", + cst_4$48 = cst_4$100, + cst_37874 = "37874", + cst_5$54 = cst_5$158, + cst_40696 = cst_40696$1, + cst_5$55 = cst_5$158, + cst_3528 = "3528", + cst_40696$0 = cst_40696$1, + _zE_ = + [0, + cst_examples_aides_logement_pr, + 949, + 10, + 949, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zB_ = + [0, + cst_examples_aides_logement_ar, + 3796, + 5, + 3796, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$268 = cst_0$360, + cst_31123 = "31123", + cst_37508 = "37508", + cst_1$189 = cst_1$254, + cst_40330 = "40330", + cst_2$43 = cst_2$105, + cst_41457 = "41457", + cst_3$41 = cst_3$101, + cst_42623 = "42623", + cst_4$43 = cst_4$100, + cst_43766 = "43766", + cst_5$44 = cst_5$158, + cst_44693 = cst_44693$1, + cst_5$45 = cst_5$158, + cst_3892 = "3892", + cst_44693$0 = cst_44693$1, + cst_0$269 = cst_0$360, + cst_27304 = "27304", + cst_33473 = "33473", + cst_1$190 = cst_1$254, + cst_36235 = "36235", + cst_2$44 = cst_2$105, + cst_37490 = "37490", + cst_3$42 = cst_3$101, + cst_38783 = "38783", + cst_4$44 = cst_4$100, + cst_40056 = "40056", + cst_5$46 = cst_5$158, + cst_42892 = cst_42892$1, + cst_5$47 = cst_5$158, + cst_3729 = "3729", + cst_42892$0 = cst_42892$1, + cst_0$270 = cst_0$360, + cst_25614 = "25614", + cst_31067 = "31067", + cst_1$191 = cst_1$254, + cst_33871 = "33871", + cst_2$45 = cst_2$105, + cst_35271 = "35271", + cst_3$43 = cst_3$101, + cst_36692 = "36692", + cst_4$45 = cst_4$100, + cst_38090 = "38090", + cst_5$48 = cst_5$158, + cst_40928 = cst_40928$1, + cst_5$49 = cst_5$158, + cst_3548 = "3548", + cst_40928$0 = cst_40928$1, + _zC_ = + [0, + cst_examples_aides_logement_pr, + 949, + 10, + 949, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zz_ = + [0, + cst_examples_aides_logement_ar, + 3843, + 5, + 3843, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$265 = cst_0$360, + cst_31148 = "31148", + cst_37538 = "37538", + cst_1$186 = cst_1$254, + cst_40362 = "40362", + cst_2$40 = cst_2$105, + cst_41490 = "41490", + cst_3$38 = cst_3$101, + cst_42657 = "42657", + cst_4$40 = cst_4$100, + cst_43801 = "43801", + cst_5$38 = cst_5$158, + cst_44729 = cst_44729$1, + cst_5$39 = cst_5$158, + cst_3895 = "3895", + cst_44729$0 = cst_44729$1, + cst_0$266 = cst_0$360, + cst_27326 = "27326", + cst_33500$0 = cst_33500$1, + cst_1$187 = cst_1$254, + cst_36264 = "36264", + cst_2$41 = cst_2$105, + cst_37520 = "37520", + cst_3$39 = cst_3$101, + cst_38814 = "38814", + cst_4$41 = cst_4$100, + cst_40088 = "40088", + cst_5$40 = cst_5$158, + cst_42926 = cst_42926$1, + cst_5$41 = cst_5$158, + cst_3732 = "3732", + cst_42926$0 = cst_42926$1, + cst_0$267 = cst_0$360, + cst_25634 = "25634", + cst_31092 = "31092", + cst_1$188 = cst_1$254, + cst_33898 = "33898", + cst_2$42 = cst_2$105, + cst_35299 = "35299", + cst_3$40 = cst_3$101, + cst_36721 = "36721", + cst_4$42 = cst_4$100, + cst_38120 = "38120", + cst_5$42 = cst_5$158, + cst_40961 = cst_40961$1, + cst_5$43 = cst_5$158, + cst_3551 = "3551", + cst_40961$0 = cst_40961$1, + _zA_ = + [0, + cst_examples_aides_logement_pr, + 949, + 10, + 949, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zx_ = + [0, + cst_examples_aides_logement_ar, + 3890, + 5, + 3890, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$262 = cst_0$360, + cst_31382 = "31382", + cst_37820 = "37820", + cst_1$183 = cst_1$254, + cst_40665 = "40665", + cst_2$37 = cst_2$105, + cst_41801 = "41801", + cst_3$35 = cst_3$101, + cst_42977 = "42977", + cst_4$37 = cst_4$100, + cst_44130 = "44130", + cst_5$32 = cst_5$158, + cst_45064 = cst_45064$1, + cst_5$33 = cst_5$158, + cst_3924 = "3924", + cst_45064$0 = cst_45064$1, + cst_0$263 = cst_0$360, + cst_27531 = "27531", + cst_33751 = "33751", + cst_1$184 = cst_1$254, + cst_36536 = "36536", + cst_2$38 = cst_2$105, + cst_37801 = "37801", + cst_3$36 = cst_3$101, + cst_39105 = "39105", + cst_4$38 = cst_4$100, + cst_40389 = "40389", + cst_5$34 = cst_5$158, + cst_43248 = cst_43248$1, + cst_5$35 = cst_5$158, + cst_3760 = "3760", + cst_43248$0 = cst_43248$1, + cst_0$264 = cst_0$360, + cst_25826 = "25826", + cst_31325 = "31325", + cst_1$185 = cst_1$254, + cst_34152 = "34152", + cst_2$39 = cst_2$105, + cst_35564 = "35564", + cst_3$37 = cst_3$101, + cst_36996 = "36996", + cst_4$39 = cst_4$100, + cst_38406 = "38406", + cst_5$36 = cst_5$158, + cst_41268 = cst_41268$1, + cst_5$37 = cst_5$158, + cst_3578 = "3578", + cst_41268$0 = cst_41268$1, + _zy_ = + [0, + cst_examples_aides_logement_pr, + 949, + 10, + 949, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zv_ = + [0, + cst_examples_aides_logement_ar, + 3937, + 5, + 3937, + 32, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$259 = cst_0$360, + cst_31476 = "31476", + cst_37933 = "37933", + cst_1$180 = cst_1$254, + cst_40787 = "40787", + cst_2$34 = cst_2$105, + cst_41927 = "41927", + cst_3$32 = cst_3$101, + cst_43106 = "43106", + cst_4$34 = cst_4$100, + cst_44262 = "44262", + cst_5$26 = cst_5$158, + cst_45200 = cst_45200$1, + cst_5$27 = cst_5$158, + cst_3936 = "3936", + cst_45200$0 = cst_45200$1, + cst_0$260 = cst_0$360, + cst_27614 = "27614", + cst_33853 = "33853", + cst_1$181 = cst_1$254, + cst_36646 = "36646", + cst_2$35 = cst_2$105, + cst_37915 = "37915", + cst_3$33 = cst_3$101, + cst_39222 = "39222", + cst_4$35 = cst_4$100, + cst_40510 = "40510", + cst_5$28 = cst_5$158, + cst_43378 = cst_43378$1, + cst_5$29 = cst_5$158, + cst_3771 = "3771", + cst_43378$0 = cst_43378$1, + cst_0$261 = cst_0$360, + cst_25904 = "25904", + cst_31419 = "31419", + cst_1$182 = cst_1$254, + cst_34255 = "34255", + cst_2$36 = cst_2$105, + cst_35670 = "35670", + cst_3$34 = cst_3$101, + cst_37107 = "37107", + cst_4$36 = cst_4$100, + cst_38521 = "38521", + cst_5$30 = cst_5$158, + cst_41392 = cst_41392$1, + cst_5$31 = cst_5$158, + cst_3588 = "3588", + cst_41392$0 = cst_41392$1, + _zw_ = + [0, + cst_examples_aides_logement_pr, + 949, + 10, + 949, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ab_ = + [0, + cst_examples_aides_logement_pr, + 949, + 10, + 949, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zu_ = + [0, + cst_examples_aides_logement_pr, + 949, + 10, + 949, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zn_ = + [0, + cst_examples_aides_logement_co$0, + 5927, + 5, + 5931, + 73, + [0, + cst_Article_D862_7, + [0, + cst_Section_III_Allocations_de, + [0, + cst_Chapitre_II_Saint_Barth_le, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _zo_ = + [0, + cst_examples_aides_logement_pr, + 965, + 11, + 965, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zm_ = + [0, + cst_examples_aides_logement_co$0, + 5575, + 5, + 5582, + 73, + [0, + cst_Article_D861_8, + [0, + cst_Section_2_Allocations_de_l, + [0, + cst_Titre_VI_Disposition_parti, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _zp_ = + [0, + cst_examples_aides_logement_pr, + 965, + 11, + 965, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zq_ = + [0, + cst_examples_aides_logement_pr, + 965, + 11, + 965, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zl_ = + [0, + cst_examples_aides_logement_co$0, + 4676, + 6, + 4679, + 44, + [0, + cst_Article_D842_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _zr_ = + [0, + cst_examples_aides_logement_pr, + 965, + 11, + 965, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zk_ = + [0, + cst_examples_aides_logement_pr, + 965, + 11, + 965, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zg_ = + [0, + cst_examples_aides_logement_ar, + 4047, + 14, + 4047, + 40, + [0, + "Article 35", + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_500$3 = cst_500$4, + _zc_ = + [0, + cst_examples_aides_logement_ar, + 4058, + 14, + 4058, + 41, + [0, + "Article 36", + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1000$4 = cst_1000$5, + _y__ = + [0, + cst_examples_aides_logement_ar, + 4114, + 14, + 4114, + 41, + [0, + cst_Article_38, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1500$1 = cst_1500$2, + _y6_ = + [0, + cst_examples_aides_logement_ar, + 4142, + 14, + 4142, + 41, + [0, + cst_Article_39, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_390000 = "390000", + _y2_ = + [0, + cst_examples_aides_logement_ar, + 4122, + 14, + 4122, + 33, + [0, + cst_Article_38, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0_0234$1 = cst_0_0234$2, + _yY_ = + [0, + cst_examples_aides_logement_ar, + 4134, + 14, + 4134, + 33, + [0, + cst_Article_39, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_16_25$0 = cst_16_25$1, + cst_6$71 = cst_6$92, + _yO_ = + [0, + cst_examples_aides_logement_ar$0, + 3340, + 5, + 3348, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$70 = cst_6$93, + _yP_ = + [0, + cst_examples_aides_logement_pr, + 966, + 11, + 966, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_6$69 = cst_6$92, + _yN_ = + [0, + cst_examples_aides_logement_ar$0, + 2803, + 5, + 2811, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$68 = cst_6$93, + _yQ_ = + [0, + cst_examples_aides_logement_pr, + 966, + 11, + 966, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_6$67 = cst_6$92, + _yM_ = + [0, + cst_examples_aides_logement_ar$0, + 1728, + 5, + 1736, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$66 = cst_6$93, + _yR_ = + [0, + cst_examples_aides_logement_pr, + 966, + 11, + 966, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_6$65 = cst_6$92, + _yL_ = + [0, + cst_examples_aides_logement_ar$0, + 606, + 5, + 614, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$64 = cst_6$93, + _yS_ = + [0, + cst_examples_aides_logement_pr, + 966, + 11, + 966, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_6$63 = cst_6$92, + _yK_ = + [0, + cst_examples_aides_logement_ar$0, + 111, + 5, + 119, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$62 = cst_6$93, + _yT_ = + [0, + cst_examples_aides_logement_pr, + 966, + 11, + 966, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yU_ = + [0, + cst_examples_aides_logement_pr, + 966, + 11, + 966, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yG_ = + [0, + cst_examples_aides_logement_ar$0, + 1516, + 14, + 1516, + 47, + [0, + cst_Article_34, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + _yH_ = + [0, + cst_examples_aides_logement_pr, + 966, + 11, + 966, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yF_ = + [0, + cst_examples_aides_logement_ar, + 4032, + 14, + 4032, + 47, + [0, + cst_Article_34, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + _yI_ = + [0, + cst_examples_aides_logement_pr, + 966, + 11, + 966, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yJ_ = + [0, + cst_examples_aides_logement_pr, + 966, + 11, + 966, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yz_ = + [0, + cst_examples_aides_logement_pr, + 1009, + 14, + 1009, + 50, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yt_ = + [0, + cst_examples_aides_logement_co$0, + 4449, + 14, + 4449, + 64, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _yp_ = + [0, + cst_examples_aides_logement_co$0, + 4447, + 14, + 4447, + 59, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _yl_ = + [0, + cst_examples_aides_logement_au, + 330, + 14, + 330, + 36, + [0, cst_Article_premier, [0, cst_R_glement_CE_n_2866_98_du_, 0]]], + cst_6_55957$0 = cst_6_55957$1, + cst_1$179 = cst_1$255, + _ym_ = + [0, + cst_examples_aides_logement_pr, + 955, + 11, + 955, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yk_ = + [0, + cst_examples_aides_logement_pr, + 955, + 11, + 955, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yn_ = + [0, cst_CalculAllocationLogementAc, [0, cst_taux_francs_vers_euros, 0]], + _yq_ = + [0, + cst_examples_aides_logement_co$0, + 4447, + 14, + 4447, + 59, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _yr_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_nombre_parts_nombre, 0]], + _yo_ = + [0, + cst_examples_aides_logement_co$0, + 4447, + 14, + 4447, + 59, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _yu_ = + [0, + cst_examples_aides_logement_co$0, + 4449, + 14, + 4449, + 64, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _yv_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_nombre_parts_situat, 0]], + _ys_ = + [0, + cst_examples_aides_logement_co$0, + 4449, + 14, + 4449, + 64, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _yw_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_nombre_parts, [0, cst_CalculNombrePartsAccession, 0]]], + _yx_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_nombre_parts, [0, cst_CalculNombrePartsAccession, 0]]], + _yA_ = + [0, + cst_examples_aides_logement_pr, + 1009, + 14, + 1009, + 50, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yB_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_contributions_sociales_dat, 0]], + _yy_ = + [0, + cst_examples_aides_logement_pr, + 1009, + 14, + 1009, + 50, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yC_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], + _yD_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], + _yV_ = + [0, + cst_examples_aides_logement_pr, + 966, + 11, + 966, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yE_ = + [0, + cst_examples_aides_logement_pr, + 966, + 11, + 966, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yW_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_multiplicateur_majoration_, 0]], + _yZ_ = + [0, + cst_examples_aides_logement_pr, + 964, + 11, + 964, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yX_ = + [0, + cst_examples_aides_logement_pr, + 964, + 11, + 964, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _y0_ = [0, cst_CalculAllocationLogementAc, [0, "coefficient_d842_12", 0]], + _y3_ = + [0, + cst_examples_aides_logement_pr, + 963, + 11, + 963, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _y1_ = + [0, + cst_examples_aides_logement_pr, + 963, + 11, + 963, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _y4_ = [0, cst_CalculAllocationLogementAc, [0, "coefficient_d842_11", 0]], + _y7_ = + [0, + cst_examples_aides_logement_pr, + 962, + 11, + 962, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _y5_ = + [0, + cst_examples_aides_logement_pr, + 962, + 11, + 962, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _y8_ = + [0, + cst_CalculAllocationLogementAc, + [0, "montant_forfaitaire_d842_12", 0]], + _y$_ = + [0, + cst_examples_aides_logement_pr, + 961, + 11, + 961, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _y9_ = + [0, + cst_examples_aides_logement_pr, + 961, + 11, + 961, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _za_ = + [0, + cst_CalculAllocationLogementAc, + [0, "montant_forfaitaire_d842_11", 0]], + _zd_ = + [0, + cst_examples_aides_logement_pr, + 960, + 11, + 960, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zb_ = + [0, + cst_examples_aides_logement_pr, + 960, + 11, + 960, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ze_ = + [0, + cst_CalculAllocationLogementAc, + [0, "montant_minimal_aide_d842_6", 0]], + _zh_ = + [0, + cst_examples_aides_logement_pr, + 952, + 11, + 952, + 37, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zf_ = + [0, + cst_examples_aides_logement_pr, + 952, + 11, + 952, + 37, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zi_ = + [0, + cst_CalculAllocationLogementAc, + [0, "montant_forfaitaire_d842_6", 0]], + _zs_ = + [0, + cst_examples_aides_logement_pr, + 965, + 11, + 965, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zj_ = + [0, + cst_examples_aides_logement_pr, + 965, + 11, + 965, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zt_ = [0, cst_CalculAllocationLogementAc, [0, "condition_d842_11_3", 0]], + _Ac_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, 0]], + _AU_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ad_ = + [0, + cst_examples_aides_logement_pr, + 942, + 11, + 942, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AV_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_montant_forfaitaire_charge$1, 0]], + _A1_ = + [0, + cst_examples_aides_logement_pr, + 954, + 11, + 954, + 42, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AW_ = + [0, + cst_examples_aides_logement_pr, + 954, + 11, + 954, + 42, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _A2_ = + [0, + cst_CalculAllocationLogementAc, + [0, "seuil_minimal_ressources_m\xc3\xa9nage", 0]], + _A6_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_min, 0]], + _BH_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, 0]], + _BL_ = + [0, cst_CalculAllocationLogementAc, [0, cst_d_pense_nette_minimale, 0]], + _BQ_ = + [0, + cst_examples_aides_logement_pr, + 924, + 10, + 924, + 15, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _BM_ = + [0, + cst_examples_aides_logement_pr, + 924, + 10, + 924, + 15, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _BR_ = + [0, + cst_CalculAllocationLogementAc, + [0, "ressources_m\xc3\xa9nage_arrondies_seuil", 0]], + _CM_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, 0]], + _CP_ = + [0, + cst_examples_aides_logement_pr, + 1010, + 14, + 1010, + 61, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _CQ_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_quivalence_loyer_mi, 0]], + _CN_ = + [0, + cst_examples_aides_logement_pr, + 1010, + 14, + 1010, + 61, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _CT_ = + [0, + cst_examples_aides_logement_co$0, + 4443, + 14, + 4443, + 75, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _CU_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_quivalence_loyer_mi$0, 0]], + _CR_ = + [0, + cst_examples_aides_logement_co$0, + 4443, + 14, + 4443, + 75, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _CX_ = + [0, + cst_examples_aides_logement_co$0, + 4442, + 14, + 4442, + 69, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _CY_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_quivalence_loyer_mi$1, 0]], + _CV_ = + [0, + cst_examples_aides_logement_co$0, + 4442, + 14, + 4442, + 69, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _C1_ = + [0, + cst_examples_aides_logement_co$0, + 4445, + 14, + 4445, + 70, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _C2_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_quivalence_loyer_mi$2, 0]], + _CZ_ = + [0, + cst_examples_aides_logement_co$0, + 4445, + 14, + 4445, + 70, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _C3_ = + [0, + cst_CalculAllocationLogementAc, + [0, + cst_calcul_quivalence_loyer_mi$3, + [0, cst_Calcul_quivalenceLoyerMini, 0]]], + _C4_ = + [0, + cst_CalculAllocationLogementAc, + [0, + cst_calcul_quivalence_loyer_mi$3, + [0, cst_Calcul_quivalenceLoyerMini, 0]]], + _C8_ = + [0, + cst_examples_aides_logement_pr, + 992, + 14, + 992, + 59, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _C9_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_apl_logement_foyer_$1, 0]], + _C5_ = + [0, + cst_examples_aides_logement_pr, + 992, + 14, + 992, + 59, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Da_ = + [0, + cst_examples_aides_logement_pr, + 994, + 14, + 994, + 61, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Db_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_apl_logement_foyer_$2, 0]], + _C__ = + [0, + cst_examples_aides_logement_pr, + 994, + 14, + 994, + 61, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _De_ = + [0, + cst_examples_aides_logement_pr, + 998, + 14, + 998, + 67, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Df_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_apl_logement_foyer_$3, 0]], + _Dc_ = + [0, + cst_examples_aides_logement_pr, + 998, + 14, + 998, + 67, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Di_ = + [0, + cst_examples_aides_logement_pr, + 1000, + 14, + 1000, + 65, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Dj_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_apl_logement_foyer_$4, 0]], + _Dg_ = + [0, + cst_examples_aides_logement_pr, + 1000, + 14, + 1000, + 65, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Dm_ = + [0, + cst_examples_aides_logement_pr, + 1002, + 14, + 1002, + 70, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Dn_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_apl_logement_foyer_$5, 0]], + _Dk_ = + [0, + cst_examples_aides_logement_pr, + 1002, + 14, + 1002, + 70, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Dq_ = + [0, + cst_examples_aides_logement_pr, + 1004, + 14, + 1004, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Dr_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_apl_logement_foyer_$6, 0]], + _Do_ = + [0, + cst_examples_aides_logement_pr, + 1004, + 14, + 1004, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Du_ = + [0, + cst_examples_aides_logement_pr, + 1007, + 14, + 1007, + 53, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Dv_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_apl_logement_foyer_$7, 0]], + _Ds_ = + [0, + cst_examples_aides_logement_pr, + 1007, + 14, + 1007, + 53, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Dy_ = + [0, + cst_examples_aides_logement_pr, + 996, + 14, + 996, + 49, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Dz_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_apl_logement_foyer_$8, 0]], + _Dw_ = + [0, + cst_examples_aides_logement_pr, + 996, + 14, + 996, + 49, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _DC_ = + [0, + cst_examples_aides_logement_pr, + 1006, + 14, + 1006, + 49, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _DD_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_apl_logement_foyer_$9, 0]], + _DA_ = + [0, + cst_examples_aides_logement_pr, + 1006, + 14, + 1006, + 49, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _DN_ = + [0, + cst_CalculAllocationLogementAc, + [0, + cst_calcul_apl_logement_foyer, + [0, cst_CalculAidePersonnalis_eLog$1, 0]]], + _DO_ = + [0, + cst_CalculAllocationLogementAc, + [0, + cst_calcul_apl_logement_foyer, + [0, cst_CalculAidePersonnalis_eLog$1, 0]]], + _DT_ = + [0, + cst_examples_aides_logement_pr, + 953, + 11, + 953, + 47, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _DP_ = + [0, + cst_examples_aides_logement_pr, + 953, + 11, + 953, + 47, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _DU_ = + [0, + cst_CalculAllocationLogementAc, + [0, "seuil_minimal_d\xc3\xa9pense_nette_minimale", 0]], + _D$_ = + [0, + cst_examples_aides_logement_pr, + 945, + 11, + 945, + 36, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _DV_ = + [0, + cst_examples_aides_logement_pr, + 945, + 11, + 945, + 36, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ea_ = + [0, + cst_CalculAllocationLogementAc, + [0, "plafond_mensualit\xc3\xa9_d842_6", 0]], + _Ed_ = + [0, + cst_examples_aides_logement_pr, + 943, + 11, + 943, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Eb_ = + [0, + cst_examples_aides_logement_pr, + 943, + 11, + 943, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ee_ = + [0, cst_CalculAllocationLogementAc, [0, cst_mensualit_minimale$0, 0]], + _Eh_ = + [0, + cst_examples_aides_logement_pr, + 944, + 11, + 944, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ef_ = + [0, + cst_examples_aides_logement_pr, + 944, + 11, + 944, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ei_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_coefficient_prise_en_charg$2, 0]], + _Eq_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_abattement_d_pense_nette_m, 0]], + _Et_ = + [0, + cst_examples_aides_logement_pr, + 941, + 11, + 941, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Er_ = + [0, + cst_examples_aides_logement_pr, + 941, + 11, + 941, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Eu_ = + [0, cst_CalculAllocationLogementAc, [0, cst_mensualit_ligible$0, 0]], + _EG_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_d_p, 0]], + _EJ_ = + [0, + cst_examples_aides_logement_pr, + 976, + 12, + 976, + 31, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _EH_ = + [0, + cst_examples_aides_logement_pr, + 976, + 12, + 976, + 31, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _EK_ = + [0, cst_CalculAllocationLogementAc, [0, cst_aide_finale_formule$9, 0]], + _EW_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_con, 0]], + _E4_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_mon, 0]], + _E5_ = + [0, + cst_examples_aides_logement_pr, + 1015, + 13, + 1015, + 48, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _E8_ = + [0, + cst_examples_aides_logement_pr, + 1015, + 13, + 1015, + 48, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _E6_ = + [0, + cst_examples_aides_logement_pr, + 1014, + 13, + 1014, + 42, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _E7_ = + [0, + cst_examples_aides_logement_pr, + 1014, + 13, + 1014, + 42, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yf_ = + [0, + cst_examples_aides_logement_co$0, + 4920, + 14, + 4920, + 36, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _yb_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_con, [0, cst_input0, 0]]], + _yc_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_con, 0]], + _yd_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_con, [0, cst_output, 0]]], + _ye_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_con, 0]], + cst_0$258 = cst_0$360, + _yg_ = + [0, + cst_examples_aides_logement_pr, + 1062, + 10, + 1062, + 25, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ya_ = + [0, + cst_examples_aides_logement_pr, + 1062, + 10, + 1062, + 25, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _x9_ = + [0, + cst_examples_aides_logement_co$0, + 4899, + 14, + 4899, + 36, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _x1_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_red, [0, cst_input0, 0]]], + _x2_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_red, 0]], + _x3_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_red, [0, cst_output, 0]]], + _x4_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_red, 0]], + _x5_ = + [0, + cst_ContributionsSocialesAides, + [0, cst_montant$2, [0, cst_input0, 0]]], + _x6_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], + _x7_ = + [0, + cst_ContributionsSocialesAides, + [0, cst_montant$2, [0, cst_output, 0]]], + _x8_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], + cst_50$2 = cst_50$4, + cst_0$256 = cst_0$360, + cst_0$257 = cst_0$360, + _x__ = + [0, + cst_examples_aides_logement_pr, + 1061, + 10, + 1061, + 40, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _x0_ = + [0, + cst_examples_aides_logement_pr, + 1061, + 10, + 1061, + 40, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xX_ = + [0, + cst_examples_aides_logement_co$0, + 4885, + 14, + 4885, + 36, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _xT_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_d_p, [0, cst_input0, 0]]], + _xU_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_d_p, 0]], + _xV_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_d_p, [0, cst_output, 0]]], + _xW_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_d_p, 0]], + _xY_ = + [0, + cst_examples_aides_logement_pr, + 1060, + 10, + 1060, + 19, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xS_ = + [0, + cst_examples_aides_logement_pr, + 1060, + 10, + 1060, + 19, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xP_ = + [0, + cst_examples_aides_logement_co$0, + 4867, + 14, + 4867, + 36, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _xH_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_min, [0, cst_input0, 0]]], + _xI_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_min, 0]], + _xJ_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_min, [0, cst_output, 0]]], + _xK_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_min, 0]], + _xL_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_abattement_d_pense_nette_m, [0, cst_input0, 0]]], + _xM_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_abattement_d_pense_nette_m, 0]], + _xN_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_abattement_d_pense_nette_m, [0, cst_output, 0]]], + _xO_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_abattement_d_pense_nette_m, 0]], + cst_0$254 = cst_0$360, + cst_0$255 = cst_0$360, + _xQ_ = + [0, + cst_examples_aides_logement_pr, + 1059, + 10, + 1059, + 32, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xG_ = + [0, + cst_examples_aides_logement_pr, + 1059, + 10, + 1059, + 32, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xD_ = + [0, + cst_examples_aides_logement_co$0, + 4974, + 14, + 4974, + 47, + [0, + cst_Article_D842_17, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _xv_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_d_pense_nette_minimale, [0, cst_input0, 0]]], + _xw_ = + [0, cst_CalculAllocationLogementFo, [0, cst_d_pense_nette_minimale, 0]], + _xx_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_d_pense_nette_minimale, [0, cst_output, 0]]], + _xy_ = + [0, cst_CalculAllocationLogementFo, [0, cst_d_pense_nette_minimale, 0]], + _xz_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_d_pense_nette_minimale, [0, cst_input0, 0]]], + _xA_ = + [0, cst_CalculAllocationLogementFo, [0, cst_d_pense_nette_minimale, 0]], + _xB_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_d_pense_nette_minimale, [0, cst_output, 0]]], + _xC_ = + [0, cst_CalculAllocationLogementFo, [0, cst_d_pense_nette_minimale, 0]], + cst_0$253 = cst_0$360, + _xE_ = + [0, + cst_examples_aides_logement_pr, + 1036, + 11, + 1036, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xu_ = + [0, + cst_examples_aides_logement_pr, + 1036, + 11, + 1036, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xr_ = + [0, + cst_examples_aides_logement_co$0, + 4793, + 14, + 4793, + 33, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _xn_ = + [0, + cst_examples_aides_logement_co$0, + 4965, + 14, + 4965, + 36, + [0, + cst_Article_D842_17, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _xo_ = + [0, + cst_examples_aides_logement_pr, + 1034, + 11, + 1034, + 33, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xm_ = + [0, + cst_examples_aides_logement_pr, + 1034, + 11, + 1034, + 33, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xj_ = + [0, + cst_examples_aides_logement_co$0, + 4845, + 14, + 4845, + 27, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _xf_ = + [0, + cst_examples_aides_logement_co$0, + 4853, + 14, + 4853, + 36, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0$251 = cst_0$360, + cst_0$252 = cst_0$360, + _xg_ = + [0, + cst_examples_aides_logement_pr, + 1058, + 10, + 1058, + 32, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xe_ = + [0, + cst_examples_aides_logement_pr, + 1058, + 10, + 1058, + 32, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _w$_ = + [0, + cst_examples_aides_logement_ar, + 4396, + 6, + 4403, + 28, + [0, + cst_Article_46, + [0, + cst_Chapitre_IX_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_969$7 = cst_969$14, + cst_3767$7 = cst_3767$14, + _xa_ = + [0, + cst_examples_aides_logement_pr, + 1044, + 12, + 1044, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _w9_ = + [0, + cst_examples_aides_logement_ar$0, + 282, + 6, + 289, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_969$5 = cst_969$14, + cst_3767$5 = cst_3767$14, + cst_6$61 = cst_6$93, + cst_969$6 = cst_969$14, + cst_3767$6 = cst_3767$14, + _w__ = + [0, + cst_examples_aides_logement_pr, + 1044, + 12, + 1044, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _w6_ = + [0, + cst_examples_aides_logement_ar$0, + 1901, + 6, + 1908, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_936$9 = cst_936$19, + cst_3640$9 = cst_3640$19, + cst_6$60 = cst_6$93, + cst_936$10 = cst_936$19, + cst_3640$10 = cst_3640$19, + _w7_ = + [0, + cst_examples_aides_logement_pr, + 1044, + 12, + 1044, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _w5_ = + [0, + cst_examples_aides_logement_ar$0, + 780, + 6, + 787, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_936$7 = cst_936$19, + cst_3640$7 = cst_3640$19, + cst_6$59 = cst_6$93, + cst_936$8 = cst_936$19, + cst_3640$8 = cst_3640$19, + _w8_ = + [0, + cst_examples_aides_logement_pr, + 1044, + 12, + 1044, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _w3_ = + [0, + cst_examples_aides_logement_ar$0, + 2976, + 6, + 2983, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_932$3 = cst_932$9, + cst_3625$3 = cst_3625$9, + cst_6$58 = cst_6$93, + cst_932$4 = cst_932$9, + cst_3625$4 = cst_3625$9, + _w4_ = + [0, + cst_examples_aides_logement_pr, + 1044, + 12, + 1044, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _w1_ = + [0, + cst_examples_aides_logement_ar$0, + 3514, + 6, + 3521, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_929$3 = cst_929$9, + cst_3614$3 = cst_3614$9, + cst_6$57 = cst_6$93, + cst_929$4 = cst_929$9, + cst_3614$4 = cst_3614$9, + _w2_ = + [0, + cst_examples_aides_logement_pr, + 1044, + 12, + 1044, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xb_ = + [0, + cst_examples_aides_logement_pr, + 1044, + 12, + 1044, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wY_ = + [0, + cst_examples_aides_logement_ar, + 4171, + 29, + 4171, + 56, + [0, + cst_Article_40, + [0, + cst_Chapitre_VII_Calcul_des_al, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$250 = cst_0$360, + cst_5612$3 = cst_5612$8, + cst_1272$3 = cst_1272$6, + cst_5612$4 = cst_5612$8, + _wZ_ = + [0, + cst_examples_aides_logement_pr, + 1044, + 12, + 1044, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wW_ = + [0, + cst_examples_aides_logement_ar$0, + 1594, + 29, + 1594, + 56, + [0, + cst_Article_40, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$249 = cst_0$360, + cst_5422$3 = cst_5422$8, + cst_1229$3 = cst_1229$6, + cst_5422$4 = cst_5422$8, + _wX_ = + [0, + cst_examples_aides_logement_pr, + 1044, + 12, + 1044, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wU_ = + [0, + cst_examples_aides_logement_ar$0, + 2664, + 29, + 2664, + 56, + [0, + cst_Article_40, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$248 = cst_0$360, + cst_5399$3 = cst_5399$8, + cst_1224$3 = cst_1224$6, + cst_5399$4 = cst_5399$8, + _wV_ = + [0, + cst_examples_aides_logement_pr, + 1044, + 12, + 1044, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _w0_ = + [0, + cst_examples_aides_logement_pr, + 1044, + 12, + 1044, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wQ_ = + [0, + cst_examples_aides_logement_co$0, + 4814, + 14, + 4814, + 41, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _wK_ = + [0, + cst_examples_aides_logement_co$0, + 4843, + 14, + 4843, + 70, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _wG_ = + [0, + cst_examples_aides_logement_co$0, + 4832, + 14, + 4832, + 69, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _wC_ = + [0, + cst_examples_aides_logement_co$0, + 4833, + 14, + 4833, + 75, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _wy_ = + [0, + cst_examples_aides_logement_pr, + 1082, + 14, + 1082, + 61, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wt_ = + [0, + cst_examples_aides_logement_ar, + 4214, + 6, + 4214, + 79, + [0, + cst_Article_43, + [0, + cst_Chapitre_VII_Calcul_des_al, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_8708 = "8708", + cst_13559 = "13559", + _wu_ = + [0, + cst_examples_aides_logement_pr, + 1043, + 12, + 1043, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wr_ = + [0, + cst_examples_aides_logement_ar, + 4249, + 6, + 4250, + 38, + [0, + cst_Article_43, + [0, + cst_Chapitre_VII_Calcul_des_al, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_21362 = "21362", + cst_33196 = "33196", + _ws_ = + [0, + cst_examples_aides_logement_pr, + 1043, + 12, + 1043, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wo_ = + [0, + cst_examples_aides_logement_ar, + 4267, + 6, + 4268, + 24, + [0, + cst_Article_43, + [0, + cst_Chapitre_VII_Calcul_des_al, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_17607$0 = cst_17607$1, + cst_27365$0 = cst_27365$1, + _wp_ = + [0, + cst_examples_aides_logement_pr, + 1043, + 12, + 1043, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wn_ = + [0, + cst_examples_aides_logement_ar, + 4231, + 6, + 4232, + 46, + [0, + cst_Article_43, + [0, + cst_Chapitre_VII_Calcul_des_al, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_17607 = cst_17607$1, + cst_27365 = cst_27365$1, + _wq_ = + [0, + cst_examples_aides_logement_pr, + 1043, + 12, + 1043, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wl_ = + [0, + cst_examples_aides_logement_ar$0, + 1616, + 6, + 1616, + 79, + [0, + cst_Article_43, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_8414 = "8414", + cst_13100 = "13100", + _wm_ = + [0, + cst_examples_aides_logement_pr, + 1043, + 12, + 1043, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wj_ = + [0, + cst_examples_aides_logement_ar$0, + 1653, + 6, + 1654, + 38, + [0, + cst_Article_43, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_20640 = "20640", + cst_32073 = "32073", + _wk_ = + [0, + cst_examples_aides_logement_pr, + 1043, + 12, + 1043, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wg_ = + [0, + cst_examples_aides_logement_ar$0, + 1672, + 6, + 1673, + 24, + [0, + cst_Article_43, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_17012$0 = cst_17012$1, + cst_26440$0 = cst_26440$1, + _wh_ = + [0, + cst_examples_aides_logement_pr, + 1043, + 12, + 1043, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wf_ = + [0, + cst_examples_aides_logement_ar$0, + 1634, + 6, + 1635, + 46, + [0, + cst_Article_43, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_17012 = cst_17012$1, + cst_26440 = cst_26440$1, + _wi_ = + [0, + cst_examples_aides_logement_pr, + 1043, + 12, + 1043, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wd_ = + [0, + cst_examples_aides_logement_ar$0, + 2689, + 6, + 2689, + 79, + [0, + cst_Article_43, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_8379 = "8379", + cst_13045 = "13045", + _we_ = + [0, + cst_examples_aides_logement_pr, + 1043, + 12, + 1043, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wb_ = + [0, + cst_examples_aides_logement_ar$0, + 2726, + 6, + 2727, + 38, + [0, + cst_Article_43, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_20554 = "20554", + cst_31939 = "31939", + _wc_ = + [0, + cst_examples_aides_logement_pr, + 1043, + 12, + 1043, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _v__ = + [0, + cst_examples_aides_logement_ar$0, + 2745, + 6, + 2746, + 24, + [0, + cst_Article_43, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_16941$0 = cst_16941$1, + cst_26329$0 = cst_26329$1, + _v$_ = + [0, + cst_examples_aides_logement_pr, + 1043, + 12, + 1043, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _v9_ = + [0, + cst_examples_aides_logement_ar$0, + 2707, + 6, + 2708, + 46, + [0, + cst_Article_43, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_16941 = cst_16941$1, + cst_26329 = cst_26329$1, + _wa_ = + [0, + cst_examples_aides_logement_pr, + 1043, + 12, + 1043, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _v5_ = + [0, + cst_examples_aides_logement_ar, + 4196, + 14, + 4196, + 42, + [0, + "Article 42", + [0, + cst_Chapitre_VII_Calcul_des_al, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1000$3 = cst_1000$5, + _v1_ = + [0, + cst_examples_aides_logement_ar, + 4184, + 14, + 4184, + 41, + [0, + "Article 41", + [0, + cst_Chapitre_VII_Calcul_des_al, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_500$2 = cst_500$4, + _vX_ = + [0, + cst_examples_aides_logement_ar, + 4288, + 14, + 4288, + 51, + [0, + "Article 44", + [0, + cst_Chapitre_VII_Calcul_des_al, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1500$0 = cst_1500$2, + cst_6$56 = cst_6$92, + _vN_ = + [0, + cst_examples_aides_logement_ar$0, + 3355, + 5, + 3363, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$55 = cst_6$93, + _vO_ = + [0, + cst_examples_aides_logement_pr, + 1041, + 11, + 1041, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_6$54 = cst_6$92, + _vM_ = + [0, + cst_examples_aides_logement_ar$0, + 2818, + 5, + 2826, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$53 = cst_6$93, + _vP_ = + [0, + cst_examples_aides_logement_pr, + 1041, + 11, + 1041, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_6$52 = cst_6$92, + _vL_ = + [0, + cst_examples_aides_logement_ar$0, + 1743, + 5, + 1751, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$51 = cst_6$93, + _vQ_ = + [0, + cst_examples_aides_logement_pr, + 1041, + 11, + 1041, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_6$50 = cst_6$92, + _vK_ = + [0, + cst_examples_aides_logement_ar$0, + 621, + 5, + 629, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$49 = cst_6$93, + _vR_ = + [0, + cst_examples_aides_logement_pr, + 1041, + 11, + 1041, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_6$48 = cst_6$92, + _vJ_ = + [0, + cst_examples_aides_logement_ar$0, + 126, + 5, + 134, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$47 = cst_6$93, + _vS_ = + [0, + cst_examples_aides_logement_pr, + 1041, + 11, + 1041, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vT_ = + [0, + cst_examples_aides_logement_pr, + 1041, + 11, + 1041, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vF_ = + [0, + cst_examples_aides_logement_ar$0, + 1591, + 14, + 1591, + 47, + [0, + cst_Article_40, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + _vG_ = + [0, + cst_examples_aides_logement_pr, + 1041, + 11, + 1041, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vE_ = + [0, + cst_examples_aides_logement_ar, + 4168, + 14, + 4168, + 47, + [0, + cst_Article_40, + [0, + cst_Chapitre_VII_Calcul_des_al, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + _vH_ = + [0, + cst_examples_aides_logement_pr, + 1041, + 11, + 1041, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vI_ = + [0, + cst_examples_aides_logement_pr, + 1041, + 11, + 1041, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vy_ = + [0, + cst_examples_aides_logement_co$0, + 5601, + 5, + 5607, + 28, + [0, + cst_Article_D861_8, + [0, + cst_Section_2_Allocations_de_l, + [0, + cst_Titre_VI_Disposition_parti, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _vz_ = + [0, + cst_examples_aides_logement_co$0, + 5599, + 9, + 5599, + 75, + [0, + cst_Article_D861_8, + [0, + cst_Section_2_Allocations_de_l, + [0, + cst_Titre_VI_Disposition_parti, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _vA_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_apl_logement_foyer_, 0]], + _vv_ = + [0, + cst_examples_aides_logement_co$0, + 4811, + 14, + 4811, + 61, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _vw_ = + [0, + cst_examples_aides_logement_co$0, + 4811, + 14, + 4811, + 61, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _vx_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_apl_logement_foyer_$0, 0]], + _vs_ = + [0, + cst_examples_aides_logement_pr, + 1078, + 14, + 1078, + 49, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vo_ = + [0, + cst_examples_aides_logement_pr, + 1069, + 14, + 1069, + 49, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vk_ = + [0, + cst_examples_aides_logement_pr, + 1079, + 14, + 1079, + 53, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vg_ = + [0, + cst_examples_aides_logement_pr, + 1077, + 14, + 1077, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vc_ = + [0, + cst_examples_aides_logement_pr, + 1075, + 14, + 1075, + 70, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _u__ = + [0, + cst_examples_aides_logement_pr, + 1073, + 14, + 1073, + 65, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _u6_ = + [0, + cst_examples_aides_logement_pr, + 1071, + 14, + 1071, + 67, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _u2_ = + [0, + cst_examples_aides_logement_pr, + 1067, + 14, + 1067, + 61, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _uY_ = + [0, + cst_examples_aides_logement_pr, + 1065, + 14, + 1065, + 59, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _uS_ = + [0, + cst_examples_aides_logement_pr, + 1081, + 14, + 1081, + 50, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _uM_ = + [0, + cst_examples_aides_logement_co$0, + 4840, + 14, + 4840, + 43, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uI_ = + [0, + cst_examples_aides_logement_co$0, + 4838, + 14, + 4838, + 64, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uE_ = + [0, + cst_examples_aides_logement_co$0, + 4836, + 14, + 4836, + 59, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uA_ = + [0, + cst_examples_aides_logement_co$0, + 4841, + 14, + 4841, + 55, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uB_ = + [0, + cst_examples_aides_logement_co$0, + 4841, + 14, + 4841, + 55, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uC_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_nombre_parts_condit, 0]], + _uz_ = + [0, + cst_examples_aides_logement_co$0, + 4841, + 14, + 4841, + 55, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uF_ = + [0, + cst_examples_aides_logement_co$0, + 4836, + 14, + 4836, + 59, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uG_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_nombre_parts_nombre, 0]], + _uD_ = + [0, + cst_examples_aides_logement_co$0, + 4836, + 14, + 4836, + 59, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uJ_ = + [0, + cst_examples_aides_logement_co$0, + 4838, + 14, + 4838, + 64, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uK_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_nombre_parts_situat, 0]], + _uH_ = + [0, + cst_examples_aides_logement_co$0, + 4838, + 14, + 4838, + 64, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uN_ = + [0, + cst_examples_aides_logement_co$0, + 4840, + 14, + 4840, + 43, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uO_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_nombre_parts_r_side, 0]], + _uL_ = + [0, + cst_examples_aides_logement_co$0, + 4840, + 14, + 4840, + 43, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uP_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_nombre_parts, [0, cst_CalculNombrePartLogementFo, 0]]], + _uQ_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_nombre_parts, [0, cst_CalculNombrePartLogementFo, 0]]], + _uT_ = + [0, + cst_examples_aides_logement_pr, + 1081, + 14, + 1081, + 50, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _uU_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_contributions_sociales_dat, 0]], + _uR_ = + [0, + cst_examples_aides_logement_pr, + 1081, + 14, + 1081, + 50, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _uV_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], + _uW_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], + _uZ_ = + [0, + cst_examples_aides_logement_pr, + 1065, + 14, + 1065, + 59, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _u0_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_apl_logement_foyer_$1, 0]], + _uX_ = + [0, + cst_examples_aides_logement_pr, + 1065, + 14, + 1065, + 59, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _u3_ = + [0, + cst_examples_aides_logement_pr, + 1067, + 14, + 1067, + 61, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _u4_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_apl_logement_foyer_$2, 0]], + _u1_ = + [0, + cst_examples_aides_logement_pr, + 1067, + 14, + 1067, + 61, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _u7_ = + [0, + cst_examples_aides_logement_pr, + 1071, + 14, + 1071, + 67, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _u8_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_apl_logement_foyer_$3, 0]], + _u5_ = + [0, + cst_examples_aides_logement_pr, + 1071, + 14, + 1071, + 67, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _u$_ = + [0, + cst_examples_aides_logement_pr, + 1073, + 14, + 1073, + 65, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _va_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_apl_logement_foyer_$4, 0]], + _u9_ = + [0, + cst_examples_aides_logement_pr, + 1073, + 14, + 1073, + 65, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vd_ = + [0, + cst_examples_aides_logement_pr, + 1075, + 14, + 1075, + 70, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ve_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_apl_logement_foyer_$5, 0]], + _vb_ = + [0, + cst_examples_aides_logement_pr, + 1075, + 14, + 1075, + 70, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vh_ = + [0, + cst_examples_aides_logement_pr, + 1077, + 14, + 1077, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vi_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_apl_logement_foyer_$6, 0]], + _vf_ = + [0, + cst_examples_aides_logement_pr, + 1077, + 14, + 1077, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vl_ = + [0, + cst_examples_aides_logement_pr, + 1079, + 14, + 1079, + 53, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vm_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_apl_logement_foyer_$7, 0]], + _vj_ = + [0, + cst_examples_aides_logement_pr, + 1079, + 14, + 1079, + 53, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vp_ = + [0, + cst_examples_aides_logement_pr, + 1069, + 14, + 1069, + 49, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vq_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_apl_logement_foyer_$8, 0]], + _vn_ = + [0, + cst_examples_aides_logement_pr, + 1069, + 14, + 1069, + 49, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vt_ = + [0, + cst_examples_aides_logement_pr, + 1078, + 14, + 1078, + 49, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vu_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_apl_logement_foyer_$9, 0]], + _vr_ = + [0, + cst_examples_aides_logement_pr, + 1078, + 14, + 1078, + 49, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vB_ = + [0, + cst_CalculAllocationLogementFo, + [0, + cst_calcul_apl_logement_foyer, + [0, cst_CalculAidePersonnalis_eLog$1, 0]]], + _vC_ = + [0, + cst_CalculAllocationLogementFo, + [0, + cst_calcul_apl_logement_foyer, + [0, cst_CalculAidePersonnalis_eLog$1, 0]]], + _vU_ = + [0, + cst_examples_aides_logement_pr, + 1041, + 11, + 1041, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vD_ = + [0, + cst_examples_aides_logement_pr, + 1041, + 11, + 1041, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vV_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_multiplicateur_majoration_, 0]], + _vY_ = + [0, + cst_examples_aides_logement_pr, + 1040, + 11, + 1040, + 48, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vW_ = + [0, + cst_examples_aides_logement_pr, + 1040, + 11, + 1040, + 48, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vZ_ = + [0, + cst_CalculAllocationLogementFo, + [0, "montant_minimal_d\xc3\xa9pense_nette_d842_17", 0]], + _v2_ = + [0, + cst_examples_aides_logement_pr, + 1039, + 11, + 1039, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _v0_ = + [0, + cst_examples_aides_logement_pr, + 1039, + 11, + 1039, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _v3_ = + [0, + cst_CalculAllocationLogementFo, + [0, "montant_forfaitaire_d842_15", 0]], + _v6_ = + [0, + cst_examples_aides_logement_pr, + 1038, + 11, + 1038, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _v4_ = + [0, + cst_examples_aides_logement_pr, + 1038, + 11, + 1038, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _v7_ = + [0, + cst_CalculAllocationLogementFo, + [0, "montant_minimal_aide_d842_15", 0]], + _wv_ = + [0, + cst_examples_aides_logement_pr, + 1043, + 12, + 1043, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _v8_ = + [0, + cst_examples_aides_logement_pr, + 1043, + 12, + 1043, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ww_ = [0, cst_CalculAllocationLogementFo, [0, cst_quivalence_loyer$0, 0]], + _wz_ = + [0, + cst_examples_aides_logement_pr, + 1082, + 14, + 1082, + 61, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wA_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_quivalence_loyer_mi, 0]], + _wx_ = + [0, + cst_examples_aides_logement_pr, + 1082, + 14, + 1082, + 61, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wD_ = + [0, + cst_examples_aides_logement_co$0, + 4833, + 14, + 4833, + 75, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _wE_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_quivalence_loyer_mi$0, 0]], + _wB_ = + [0, + cst_examples_aides_logement_co$0, + 4833, + 14, + 4833, + 75, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _wH_ = + [0, + cst_examples_aides_logement_co$0, + 4832, + 14, + 4832, + 69, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _wI_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_quivalence_loyer_mi$1, 0]], + _wF_ = + [0, + cst_examples_aides_logement_co$0, + 4832, + 14, + 4832, + 69, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _wL_ = + [0, + cst_examples_aides_logement_co$0, + 4843, + 14, + 4843, + 70, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _wM_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_quivalence_loyer_mi$2, 0]], + _wJ_ = + [0, + cst_examples_aides_logement_co$0, + 4843, + 14, + 4843, + 70, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _wN_ = + [0, + cst_CalculAllocationLogementFo, + [0, + cst_calcul_quivalence_loyer_mi$3, + [0, cst_Calcul_quivalenceLoyerMini, 0]]], + _wO_ = + [0, + cst_CalculAllocationLogementFo, + [0, + cst_calcul_quivalence_loyer_mi$3, + [0, cst_Calcul_quivalenceLoyerMini, 0]]], + _wR_ = + [0, + cst_examples_aides_logement_pr, + 1042, + 12, + 1042, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wP_ = + [0, + cst_examples_aides_logement_pr, + 1042, + 12, + 1042, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wS_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_coefficient_prise_en_charg$2, 0]], + _xc_ = + [0, + cst_examples_aides_logement_pr, + 1044, + 12, + 1044, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wT_ = + [0, + cst_examples_aides_logement_pr, + 1044, + 12, + 1044, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xd_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_montant_forfaitaire_charge$1, 0]], + _xh_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_min, 0]], + _xk_ = + [0, + cst_examples_aides_logement_pr, + 1045, + 12, + 1045, + 25, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xi_ = + [0, + cst_examples_aides_logement_pr, + 1045, + 12, + 1045, + 25, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xl_ = [0, cst_CalculAllocationLogementFo, [0, cst_loyer_minimal$0, 0]], + _xp_ = + [0, cst_CalculAllocationLogementFo, [0, cst_d_pense_nette_minimale, 0]], + _xs_ = + [0, + cst_examples_aides_logement_pr, + 1055, + 12, + 1055, + 31, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xq_ = + [0, + cst_examples_aides_logement_pr, + 1055, + 12, + 1055, + 31, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xt_ = + [0, cst_CalculAllocationLogementFo, [0, cst_aide_finale_formule$9, 0]], + _xF_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_abattement_d_pense_nette_m, 0]], + _xR_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_d_p, 0]], + _xZ_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_red, 0]], + _x$_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_con, 0]], + _yh_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_mon, 0]], + _yi_ = + [0, + cst_examples_aides_logement_pr, + 1086, + 13, + 1086, + 42, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yj_ = + [0, + cst_examples_aides_logement_pr, + 1086, + 13, + 1086, + 42, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _uv_ = + [0, + cst_examples_aides_logement_co$0, + 4281, + 24, + 4281, + 43, + [0, + cst_Article_D842_4, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0$247 = cst_0$360, + _uw_ = + [0, + cst_examples_aides_logement_pr, + 874, + 12, + 874, + 31, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _uu_ = + [0, + cst_examples_aides_logement_pr, + 913, + 14, + 913, + 33, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _up_ = + [0, + cst_examples_aides_logement_co$0, + 4289, + 24, + 4289, + 46, + [0, + cst_Article_D842_4, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uq_ = + [0, + cst_examples_aides_logement_pr, + 876, + 12, + 876, + 34, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _uo_ = + [0, + cst_examples_aides_logement_pr, + 914, + 14, + 914, + 36, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _uk_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_mon, [0, cst_input0, 0]]], + _ul_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_mon, 0]], + _um_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_mon, [0, cst_output, 0]]], + _un_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_mon, 0]], + _ur_ = + [0, + cst_examples_aides_logement_pr, + 876, + 12, + 876, + 34, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _uj_ = + [0, + cst_examples_aides_logement_pr, + 876, + 12, + 876, + 34, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ue_ = + [0, + cst_examples_aides_logement_pr, + 910, + 14, + 910, + 42, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ua_ = + [0, + cst_examples_aides_logement_pr, + 908, + 14, + 908, + 55, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _t8_ = + [0, + cst_examples_aides_logement_pr, + 906, + 14, + 906, + 59, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _t4_ = + [0, + cst_examples_aides_logement_pr, + 904, + 14, + 904, + 43, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _t0_ = + [0, + cst_examples_aides_logement_pr, + 902, + 14, + 902, + 42, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tW_ = + [0, + cst_examples_aides_logement_pr, + 898, + 5, + 899, + 63, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tS_ = + [0, + cst_examples_aides_logement_pr, + 895, + 14, + 895, + 53, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tO_ = + [0, + cst_examples_aides_logement_pr, + 893, + 14, + 893, + 37, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tK_ = + [0, + cst_examples_aides_logement_pr, + 891, + 14, + 891, + 63, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tG_ = + [0, + cst_examples_aides_logement_pr, + 889, + 14, + 889, + 58, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tC_ = + [0, + cst_examples_aides_logement_pr, + 887, + 14, + 887, + 46, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ty_ = + [0, + cst_examples_aides_logement_pr, + 884, + 14, + 884, + 78, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tu_ = + [0, + cst_examples_aides_logement_pr, + 882, + 14, + 882, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tq_ = + [0, + cst_examples_aides_logement_pr, + 880, + 14, + 880, + 48, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tr_ = + [0, + cst_examples_aides_logement_pr, + 880, + 14, + 880, + 48, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ts_ = + [0, + cst_CalculAllocationLogementLo, + [0, "calcul_apl_locatif.loyer_principal_base", 0]], + _tp_ = + [0, + cst_examples_aides_logement_pr, + 880, + 14, + 880, + 48, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tv_ = + [0, + cst_examples_aides_logement_pr, + 882, + 14, + 882, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tw_ = + [0, + cst_CalculAllocationLogementLo, + [0, "calcul_apl_locatif.ressources_m\xc3\xa9nage_arrondies", 0]], + _tt_ = + [0, + cst_examples_aides_logement_pr, + 882, + 14, + 882, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tz_ = + [0, + cst_examples_aides_logement_pr, + 884, + 14, + 884, + 78, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tA_ = + [0, + cst_CalculAllocationLogementLo, + [0, + "calcul_apl_locatif.b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s", + 0]], + _tx_ = + [0, + cst_examples_aides_logement_pr, + 884, + 14, + 884, + 78, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tD_ = + [0, + cst_examples_aides_logement_pr, + 887, + 14, + 887, + 46, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tE_ = + [0, + cst_CalculAllocationLogementLo, + [0, "calcul_apl_locatif.date_courante", 0]], + _tB_ = + [0, + cst_examples_aides_logement_pr, + 887, + 14, + 887, + 46, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tH_ = + [0, + cst_examples_aides_logement_pr, + 889, + 14, + 889, + 58, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tI_ = + [0, + cst_CalculAllocationLogementLo, + [0, "calcul_apl_locatif.nombre_personnes_\xc3\xa0_charge", 0]], + _tF_ = + [0, + cst_examples_aides_logement_pr, + 889, + 14, + 889, + 58, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tL_ = + [0, + cst_examples_aides_logement_pr, + 891, + 14, + 891, + 63, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tM_ = + [0, + cst_CalculAllocationLogementLo, + [0, "calcul_apl_locatif.situation_familiale_calcul_apl", 0]], + _tJ_ = + [0, + cst_examples_aides_logement_pr, + 891, + 14, + 891, + 63, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tP_ = + [0, + cst_examples_aides_logement_pr, + 893, + 14, + 893, + 37, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tQ_ = + [0, cst_CalculAllocationLogementLo, [0, "calcul_apl_locatif.zone", 0]], + _tN_ = + [0, + cst_examples_aides_logement_pr, + 893, + 14, + 893, + 37, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tT_ = + [0, + cst_examples_aides_logement_pr, + 895, + 14, + 895, + 53, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tU_ = + [0, + cst_CalculAllocationLogementLo, + [0, "calcul_apl_locatif.logement_est_chambre", 0]], + _tR_ = + [0, + cst_examples_aides_logement_pr, + 895, + 14, + 895, + 53, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tX_ = + [0, + cst_examples_aides_logement_pr, + 898, + 5, + 899, + 63, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _tY_ = + [0, + cst_CalculAllocationLogementLo, + [0, + "calcul_apl_locatif.\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers", + 0]], + _tV_ = + [0, + cst_examples_aides_logement_pr, + 898, + 5, + 899, + 63, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _t1_ = + [0, + cst_examples_aides_logement_pr, + 902, + 14, + 902, + 42, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _t2_ = + [0, + cst_CalculAllocationLogementLo, + [0, "calcul_apl_locatif.type_aide", 0]], + _tZ_ = + [0, + cst_examples_aides_logement_pr, + 902, + 14, + 902, + 42, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _t5_ = + [0, + cst_examples_aides_logement_pr, + 904, + 14, + 904, + 43, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _t6_ = + [0, + cst_CalculAllocationLogementLo, + [0, "calcul_apl_locatif.colocation", 0]], + _t3_ = + [0, + cst_examples_aides_logement_pr, + 904, + 14, + 904, + 43, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _t9_ = + [0, + cst_examples_aides_logement_pr, + 906, + 14, + 906, + 59, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _t__ = + [0, + cst_CalculAllocationLogementLo, + [0, "calcul_apl_locatif.r\xc3\xa9duction_loyer_solidarit\xc3\xa9", 0]], + _t7_ = + [0, + cst_examples_aides_logement_pr, + 906, + 14, + 906, + 59, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ub_ = + [0, + cst_examples_aides_logement_pr, + 908, + 14, + 908, + 55, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _uc_ = + [0, + cst_CalculAllocationLogementLo, + [0, "calcul_apl_locatif.logement_meubl\xc3\xa9_d842_2", 0]], + _t$_ = + [0, + cst_examples_aides_logement_pr, + 908, + 14, + 908, + 55, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _uf_ = + [0, + cst_examples_aides_logement_pr, + 910, + 14, + 910, + 42, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ug_ = + [0, + cst_CalculAllocationLogementLo, + [0, "calcul_apl_locatif.r\xc3\xa9sidence", 0]], + _ud_ = + [0, + cst_examples_aides_logement_pr, + 910, + 14, + 910, + 42, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _uh_ = + [0, + cst_CalculAllocationLogementLo, + [0, cst_calcul_apl_locatif, [0, cst_CalculAidePersonnalis_eLog$0, 0]]], + _ui_ = + [0, + cst_CalculAllocationLogementLo, + [0, cst_calcul_apl_locatif, [0, cst_CalculAidePersonnalis_eLog$0, 0]]], + _us_ = + [0, + cst_CalculAllocationLogementLo, + [0, cst_traitement_aide_finale$9, 0]], + _ux_ = + [0, + cst_examples_aides_logement_pr, + 874, + 12, + 874, + 31, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ut_ = + [0, + cst_examples_aides_logement_pr, + 874, + 12, + 874, + 31, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _uy_ = + [0, cst_CalculAllocationLogementLo, [0, cst_aide_finale_formule$9, 0]], + _te_ = + [0, cst_V_rification_geSup_rieur, [0, cst_direct, [0, cst_input, 0]]], + _tf_ = [0, cst_V_rification_geSup_rieur, [0, cst_direct, 0]], + _tg_ = + [0, + cst_examples_aides_logement_pr$0, + 69, + 6, + 72, + 44, + [0, + cst_Article_L512_3, + [0, + cst_Chapitre_2_Champ_d_applica, + [0, + cst_Titre_1_Champ_d_applicatio, + [0, + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _th_ = + [0, cst_V_rification_geSup_rieur, [0, cst_direct, [0, cst_output, 0]]], + _ti_ = [0, cst_V_rification_geSup_rieur, [0, cst_direct, 0]], + _tj_ = + [0, + cst_examples_aides_logement_pr$0, + 67, + 5, + 72, + 59, + [0, + cst_Article_L512_3, + [0, + cst_Chapitre_2_Champ_d_applica, + [0, + cst_Titre_1_Champ_d_applicatio, + [0, + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _tk_ = + [0, + cst_examples_aides_logement_pr$1, + 47, + 12, + 47, + 24, + [0, cst_Prologue_prestations_famil, 0]], + _td_ = + [0, + cst_examples_aides_logement_pr$0, + 56, + 5, + 57, + 50, + [0, + cst_Article_L512_3, + [0, + cst_Chapitre_2_Champ_d_applica, + [0, + cst_Titre_1_Champ_d_applicatio, + [0, + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _tl_ = + [0, + cst_examples_aides_logement_pr$1, + 47, + 12, + 47, + 24, + [0, cst_Prologue_prestations_famil, 0]], + _tm_ = + [0, + cst_examples_aides_logement_pr$1, + 47, + 12, + 47, + 24, + [0, cst_Prologue_prestations_famil, 0]], + _tc_ = + [0, + cst_examples_aides_logement_pr$1, + 47, + 12, + 47, + 24, + [0, cst_Prologue_prestations_famil, 0]], + _tn_ = + [0, + cst_examples_aides_logement_pr$1, + 47, + 12, + 47, + 24, + [0, cst_Prologue_prestations_famil, 0]], + _tb_ = + [0, + cst_examples_aides_logement_pr$1, + 47, + 12, + 47, + 24, + [0, cst_Prologue_prestations_famil, 0]], + _s9_ = + [0, + cst_examples_aides_logement_pr$0, + 78, + 5, + 82, + 24, + [0, + cst_Article_L512_3, + [0, + cst_Chapitre_2_Champ_d_applica, + [0, + cst_Titre_1_Champ_d_applicatio, + [0, + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _s__ = + [0, + cst_examples_aides_logement_pr$1, + 49, + 12, + 49, + 31, + [0, cst_Prologue_prestations_famil, 0]], + _s8_ = + [0, + cst_examples_aides_logement_pr$1, + 49, + 12, + 49, + 31, + [0, cst_Prologue_prestations_famil, 0]], + _s$_ = + [0, + cst_examples_aides_logement_pr$1, + 49, + 12, + 49, + 31, + [0, cst_Prologue_prestations_famil, 0]], + _s7_ = + [0, + cst_examples_aides_logement_pr$1, + 49, + 12, + 49, + 31, + [0, cst_Prologue_prestations_famil, 0]], + _s3_ = + [0, + cst_examples_aides_logement_pr$2, + 62, + 18, + 62, + 41, + [0, + "Article R755-0-2", + [0, + "Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es", + [0, + "Titre 5 : D\xc3\xa9partements d'outre-mer", + [0, + cst_Livre_7_R_gimes_divers_Dis, + [0, + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_169$0 = cst_169$1, + cst_0_55$0 = cst_0_55$1, + _s4_ = + [0, + cst_examples_aides_logement_pr$1, + 44, + 11, + 44, + 27, + [0, cst_Prologue_prestations_famil, 0]], + _s2_ = + [0, + cst_examples_aides_logement_pr$2, + 31, + 14, + 31, + 30, + [0, + cst_Article_R512_2, + [0, + cst_Chapitre_2_Champ_d_applica$0, + [0, + cst_Titre_1_Champ_d_applicatio, + [0, + cst_Livre_5_Prestations_famili, + [0, + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_169 = cst_169$1, + cst_0_55 = cst_0_55$1, + _sR_ = [5, 0], + _sS_ = [4, 0], + _sT_ = [3, 0], + _sU_ = [2, 0], + _sV_ = [1, 0], + _sW_ = [0, 0], + _sX_ = + [0, + cst_examples_aides_logement_pr$0, + 127, + 5, + 132, + 30, + [0, + "Article L751-1", + [0, + "Chapitre 1er : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s", + [0, + "Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin", + [0, + cst_Livre_7_R_gimes_divers_Dis, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _sY_ = + [0, + cst_examples_aides_logement_pr$1, + 51, + 12, + 51, + 35, + [0, cst_Prologue_prestations_famil, 0]], + _sQ_ = + [0, + cst_examples_aides_logement_pr$1, + 51, + 12, + 51, + 35, + [0, cst_Prologue_prestations_famil, 0]], + _sK_ = + [0, + cst_examples_aides_logement_pr$1, + 56, + 14, + 56, + 28, + [0, cst_Prologue_prestations_famil, 0]], + _sG_ = + [0, + cst_examples_aides_logement_pr$1, + 57, + 14, + 57, + 32, + [0, cst_Prologue_prestations_famil, 0]], + _sB_ = + [0, + cst_examples_aides_logement_pr$2, + 21, + 14, + 21, + 26, + [0, + cst_Article_R512_2, + [0, + cst_Chapitre_2_Champ_d_applica$0, + [0, + cst_Titre_1_Champ_d_applicatio, + [0, + cst_Livre_5_Prestations_famili, + [0, + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _sC_ = + [0, + cst_examples_aides_logement_pr$1, + 46, + 21, + 46, + 33, + [0, cst_Prologue_prestations_famil, 0]], + _sD_ = + [0, + cst_examples_aides_logement_pr$1, + 46, + 21, + 46, + 33, + [0, cst_Prologue_prestations_famil, 0]], + _sA_ = + [0, + cst_examples_aides_logement_pr$1, + 46, + 21, + 46, + 33, + [0, cst_Prologue_prestations_famil, 0]], + _sE_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_ge_l512_3_2$0, 0]], + _sH_ = + [0, + cst_examples_aides_logement_pr$1, + 57, + 14, + 57, + 32, + [0, cst_Prologue_prestations_famil, 0]], + _sI_ = [0, cst_ligibilit_PrestationsFamil, [0, "smic.date_courante", 0]], + _sF_ = + [0, + cst_examples_aides_logement_pr$1, + 57, + 14, + 57, + 32, + [0, cst_Prologue_prestations_famil, 0]], + _sL_ = + [0, + cst_examples_aides_logement_pr$1, + 56, + 14, + 56, + 28, + [0, cst_Prologue_prestations_famil, 0]], + _sM_ = + [0, cst_ligibilit_PrestationsFamil, [0, "smic.r\xc3\xa9sidence", 0]], + _sJ_ = + [0, + cst_examples_aides_logement_pr$1, + 56, + 14, + 56, + 28, + [0, cst_Prologue_prestations_famil, 0]], + _sN_ = + [0, cst_ligibilit_PrestationsFamil, [0, cst_smic, [0, cst_Smic, 0]]], + _sO_ = + [0, cst_ligibilit_PrestationsFamil, [0, cst_smic, [0, cst_Smic, 0]]], + _sZ_ = + [0, + cst_examples_aides_logement_pr$1, + 51, + 12, + 51, + 35, + [0, cst_Prologue_prestations_famil, 0]], + _sP_ = + [0, + cst_examples_aides_logement_pr$1, + 51, + 12, + 51, + 35, + [0, cst_Prologue_prestations_famil, 0]], + _s0_ = + [0, + cst_ligibilit_PrestationsFamil, + [0, cst_r_gime_outre_mer_l751_1$0, 0]], + _s5_ = + [0, + cst_examples_aides_logement_pr$1, + 44, + 11, + 44, + 27, + [0, cst_Prologue_prestations_famil, 0]], + _s1_ = + [0, + cst_examples_aides_logement_pr$1, + 44, + 11, + 44, + 27, + [0, cst_Prologue_prestations_famil, 0]], + _s6_ = [0, cst_ligibilit_PrestationsFamil, [0, "plafond_l512_3_2", 0]], + _ta_ = + [0, cst_ligibilit_PrestationsFamil, [0, cst_conditions_hors_ge$0, 0]], + _to_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], + _sv_ = + [0, + cst_examples_aides_logement_co$0, + 409, + 14, + 409, + 32, + [0, + cst_Article_R822_7, + [0, + cst_Sous_section_2_Principes_d, + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_12$3 = cst_12$4, + cst_0$246 = cst_0$360, + _sr_ = + [0, + cst_examples_aides_logement_co$0, + 462, + 14, + 462, + 32, + [0, + "Article R822-8", + [0, + cst_Sous_section_2_Principes_d, + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$245 = cst_0$360, + _sm_ = + [0, + cst_examples_aides_logement_co$0, + 854, + 6, + 857, + 35, + [0, + "Article R822-20", + [0, + "Sous-section 3 : Montant forfaitaire de ressources applicable aux \xc3\xa9tudiants", + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$244 = cst_0$360, + _sn_ = + [0, + cst_examples_aides_logement_pr, + 546, + 12, + 546, + 39, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _sl_ = + [0, + cst_examples_aides_logement_co$0, + 124, + 14, + 124, + 41, + [0, + cst_Article_R822_2, + [0, + cst_Sous_section_1_Modalit_s_g, + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _sf_ = + [0, + cst_examples_aides_logement_co$0, + 418, + 14, + 418, + 65, + [0, + cst_Article_R822_7, + [0, + cst_Sous_section_2_Principes_d, + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _sb_ = + [0, + cst_examples_aides_logement_ar, + 23, + 14, + 23, + 41, + [0, + "Article 4", + [0, + cst_Chapitre_II_Dispositions_a, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_258900 = "258900", + _r9_ = + [0, + cst_examples_aides_logement_ar, + 12, + 14, + 12, + 41, + [0, + "Article 3", + [0, + cst_Chapitre_II_Dispositions_a, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_9500 = "9500", + _r5_ = + [0, + cst_examples_aides_logement_co$0, + 524, + 14, + 524, + 33, + [0, + "Article R822-10", + [0, + cst_Sous_section_2_Principes_d, + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$238 = cst_0$360, + cst_0$239 = cst_0$360, + cst_2$33 = cst_2$105, + cst_90100 = "90100", + cst_135000 = "135000", + cst_0$240 = cst_0$360, + cst_0$241 = cst_0$360, + cst_0$242 = cst_0$360, + cst_0$243 = cst_0$360, + _r1_ = + [0, + cst_examples_aides_logement_co$0, + 129, + 14, + 129, + 62, + [0, + cst_Article_R822_2, + [0, + cst_Sous_section_1_Modalit_s_g, + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$237 = cst_0$360, + _r2_ = + [0, + cst_examples_aides_logement_pr, + 535, + 11, + 535, + 59, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _r0_ = + [0, + cst_examples_aides_logement_pr, + 535, + 11, + 535, + 59, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _r3_ = + [0, + cst_RessourcesAidesPersonnelle, + [0, "ressources_personnes_vivant_habituellement_foyer", 0]], + _r6_ = + [0, + cst_examples_aides_logement_pr, + 540, + 11, + 540, + 30, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _r4_ = + [0, + cst_examples_aides_logement_pr, + 540, + 11, + 540, + 30, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _r7_ = [0, cst_RessourcesAidesPersonnelle, [0, "abattement_r_822_10", 0]], + _r__ = + [0, + cst_examples_aides_logement_pr, + 539, + 11, + 539, + 38, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _r8_ = + [0, + cst_examples_aides_logement_pr, + 539, + 11, + 539, + 38, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _r$_ = + [0, + cst_RessourcesAidesPersonnelle, + [0, "montant_forfaitaire_r_822_7", 0]], + _sc_ = + [0, + cst_examples_aides_logement_pr, + 537, + 11, + 537, + 38, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _sa_ = + [0, + cst_examples_aides_logement_pr, + 537, + 11, + 537, + 38, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _sd_ = + [0, + cst_RessourcesAidesPersonnelle, + [0, "montant_forfaitaire_r_822_8", 0]], + _sg_ = + [0, + cst_examples_aides_logement_co$0, + 418, + 14, + 418, + 65, + [0, + cst_Article_R822_7, + [0, + cst_Sous_section_2_Principes_d, + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _sh_ = + [0, + cst_RessourcesAidesPersonnelle, + [0, cst_base_mensuelle_allocations, 0]], + _se_ = + [0, + cst_examples_aides_logement_co$0, + 418, + 14, + 418, + 65, + [0, + cst_Article_R822_7, + [0, + cst_Sous_section_2_Principes_d, + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _si_ = + [0, + cst_RessourcesAidesPersonnelle, + [0, + cst_base_mensuelle_allocations$0, + [0, cst_BaseMensuelleAllocationsFa, 0]]], + _sj_ = + [0, + cst_RessourcesAidesPersonnelle, + [0, + cst_base_mensuelle_allocations$0, + [0, cst_BaseMensuelleAllocationsFa, 0]]], + _so_ = + [0, + cst_examples_aides_logement_pr, + 546, + 12, + 546, + 39, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _sk_ = + [0, + cst_examples_aides_logement_pr, + 546, + 12, + 546, + 39, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _sp_ = + [0, + cst_RessourcesAidesPersonnelle, + [0, cst_ressources_prises_en_compt$0, 0]], + _ss_ = + [0, + cst_examples_aides_logement_pr, + 536, + 11, + 536, + 29, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _sq_ = + [0, + cst_examples_aides_logement_pr, + 536, + 11, + 536, + 29, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _st_ = [0, cst_RessourcesAidesPersonnelle, [0, "abattement_r_822_8", 0]], + _sw_ = + [0, + cst_examples_aides_logement_pr, + 538, + 11, + 538, + 29, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _su_ = + [0, + cst_examples_aides_logement_pr, + 538, + 11, + 538, + 29, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _sx_ = [0, cst_RessourcesAidesPersonnelle, [0, "abattement_r_822_7", 0]], + _sy_ = + [0, + cst_examples_aides_logement_co$0, + 142, + 13, + 143, + 74, + [0, + cst_Article_R822_2, + [0, + cst_Sous_section_1_Modalit_s_g, + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _sz_ = + [0, + cst_examples_aides_logement_co$0, + 142, + 13, + 143, + 74, + [0, + cst_Article_R822_2, + [0, + cst_Sous_section_1_Modalit_s_g, + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _rV_ = + [0, + cst_examples_aides_logement_co$0, + 3175, + 14, + 3175, + 36, + [0, + cst_Article_D832_10, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _rR_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_con, [0, cst_input0, 0]]], + _rS_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_con, 0]], + _rT_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_con, [0, cst_output, 0]]], + _rU_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_con, 0]], + cst_0$236 = cst_0$360, + _rW_ = + [0, + cst_examples_aides_logement_pr, + 795, + 10, + 795, + 25, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rQ_ = + [0, + cst_examples_aides_logement_pr, + 795, + 10, + 795, + 25, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rN_ = + [0, + cst_examples_aides_logement_co$0, + 3082, + 14, + 3082, + 33, + [0, + cst_Article_D832_10, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0$234 = cst_0$360, + cst_0$235 = cst_0$360, + _rJ_ = + [0, + cst_examples_aides_logement_co$0, + 3155, + 14, + 3155, + 36, + [0, + cst_Article_D832_10, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _rB_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_aba, [0, cst_input0, 0]]], + _rC_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_aba, 0]], + _rD_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_aba, [0, cst_output, 0]]], + _rE_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_aba, 0]], + _rF_ = + [0, + cst_ContributionsSocialesAides, + [0, cst_montant$2, [0, cst_input0, 0]]], + _rG_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], + _rH_ = + [0, + cst_ContributionsSocialesAides, + [0, cst_montant$2, [0, cst_output, 0]]], + _rI_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], + cst_50$1 = cst_50$4, + cst_0$232 = cst_0$360, + cst_0$233 = cst_0$360, + _rK_ = + [0, + cst_examples_aides_logement_pr, + 794, + 10, + 794, + 40, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rA_ = + [0, + cst_examples_aides_logement_pr, + 794, + 10, + 794, + 40, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rx_ = + [0, + cst_examples_aides_logement_co$0, + 3210, + 14, + 3210, + 49, + [0, + cst_Article_D832_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0_95$3 = cst_0_95$5, + cst_0_95$4 = cst_0_95$5, + _rt_ = + [0, + cst_examples_aides_logement_co$0, + 3102, + 14, + 3102, + 33, + [0, + cst_Article_D832_10, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _rp_ = + [0, + cst_examples_aides_logement_co$0, + 3141, + 14, + 3141, + 36, + [0, + cst_Article_D832_10, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _rh_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_min, [0, cst_input0, 0]]], + _ri_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_min, 0]], + _rj_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_min, [0, cst_output, 0]]], + _rk_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_min, 0]], + _rl_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_abattement_d_pense_nette_m$0, [0, cst_input0, 0]]], + _rm_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_abattement_d_pense_nette_m$0, 0]], + _rn_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_abattement_d_pense_nette_m$0, [0, cst_output, 0]]], + _ro_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_abattement_d_pense_nette_m$0, 0]], + cst_0$230 = cst_0$360, + cst_0$231 = cst_0$360, + _rq_ = + [0, + cst_examples_aides_logement_pr, + 793, + 10, + 793, + 20, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rg_ = + [0, + cst_examples_aides_logement_pr, + 793, + 10, + 793, + 20, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rd_ = + [0, + cst_examples_aides_logement_co$0, + 3207, + 14, + 3207, + 49, + [0, + cst_Article_D832_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_100$10 = cst_100$13, + cst_100$11 = cst_100$13, + cst_0_005$2 = cst_0_005$3, + _q__ = + [0, + cst_examples_aides_logement_co$0, + 3423, + 5, + 3435, + 77, + [0, + cst_Article_D832_15, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_12$2 = cst_12$4, + cst_0$229 = cst_0$361, + _q$_ = + [0, + cst_examples_aides_logement_pr, + 756, + 12, + 756, + 31, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _q8_ = + [0, + cst_examples_aides_logement_co$0, + 3478, + 5, + 3478, + 75, + [0, + cst_Article_D832_15, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _q9_ = + [0, + cst_examples_aides_logement_pr, + 756, + 12, + 756, + 31, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _q1_ = + [0, + cst_examples_aides_logement_ar$0, + 2482, + 14, + 2482, + 42, + [0, + cst_Article_24, + [0, + cst_Article_19, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]]], + cst_0_75$10 = cst_0_75$14, + _q2_ = + [0, + cst_examples_aides_logement_pr, + 759, + 10, + 759, + 25, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _q0_ = + [0, + cst_examples_aides_logement_ar$0, + 1398, + 14, + 1398, + 42, + [0, + cst_Article_24, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0_75$9 = cst_0_75$14, + _q3_ = + [0, + cst_examples_aides_logement_pr, + 759, + 10, + 759, + 25, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qZ_ = + [0, + cst_examples_aides_logement_ar, + 2419, + 14, + 2419, + 42, + [0, + cst_Article_24, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0_75$8 = cst_0_75$14, + _q4_ = + [0, + cst_examples_aides_logement_pr, + 759, + 10, + 759, + 25, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qV_ = + [0, + cst_examples_aides_logement_co$0, + 3550, + 14, + 3550, + 55, + [0, + cst_Article_D832_17, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qR_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_d_pense_nette_minimale_d83, [0, cst_input0, 0]]], + _qS_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_d_pense_nette_minimale_d83, 0]], + _qT_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_d_pense_nette_minimale_d83, [0, cst_output, 0]]], + _qU_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_d_pense_nette_minimale_d83, 0]], + cst_0$228 = cst_0$360, + _qW_ = + [0, + cst_examples_aides_logement_pr, + 769, + 11, + 769, + 52, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qQ_ = + [0, + cst_examples_aides_logement_pr, + 769, + 11, + 769, + 52, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qN_ = + [0, + cst_examples_aides_logement_co$0, + 3191, + 14, + 3191, + 49, + [0, + cst_Article_D832_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0_95$2 = cst_0_95$5, + _qH_ = + [0, + cst_examples_aides_logement_co$0, + 3486, + 14, + 3486, + 70, + [0, + cst_Article_D832_15, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qD_ = + [0, + cst_examples_aides_logement_co$0, + 3483, + 14, + 3483, + 69, + [0, + cst_Article_D832_15, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qz_ = + [0, + cst_examples_aides_logement_co$0, + 3484, + 14, + 3484, + 75, + [0, + cst_Article_D832_15, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qv_ = + [0, + cst_examples_aides_logement_pr, + 799, + 14, + 799, + 61, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qq_ = + [0, + cst_examples_aides_logement_co$0, + 3363, + 5, + 3363, + 44, + [0, + cst_Article_D832_14, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qi_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_calcul_plafond_mensualit_d$2, [0, cst_input0, 0]]], + _qj_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_calcul_plafond_mensualit_d$2, 0]], + _qk_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_calcul_plafond_mensualit_d$2, [0, cst_output, 0]]], + _ql_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_calcul_plafond_mensualit_d$2, 0]], + _qm_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_calcul_plafond_mensualit_d$2, [0, cst_input0, 0]]], + _qn_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_calcul_plafond_mensualit_d$2, 0]], + _qo_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_calcul_plafond_mensualit_d$2, [0, cst_output, 0]]], + _qp_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_calcul_plafond_mensualit_d$2, 0]], + _qr_ = + [0, + cst_examples_aides_logement_pr, + 758, + 10, + 758, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qh_ = + [0, + cst_examples_aides_logement_co$0, + 3343, + 14, + 3343, + 42, + [0, + cst_Article_D832_14, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qd_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_calcul_plafond_mensualit_d$2, [0, cst_input0, 0]]], + _qe_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_calcul_plafond_mensualit_d$2, 0]], + _qf_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_calcul_plafond_mensualit_d$2, [0, cst_output, 0]]], + _qg_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_calcul_plafond_mensualit_d$2, 0]], + _p__ = + [0, + cst_examples_aides_logement_co$0, + 3528, + 5, + 3528, + 40, + [0, + cst_Article_D832_17, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _p$_ = + [0, + cst_examples_aides_logement_pr, + 767, + 11, + 767, + 41, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _p9_ = + [0, + cst_examples_aides_logement_co$0, + 3539, + 14, + 3539, + 44, + [0, + cst_Article_D832_17, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qa_ = + [0, + cst_examples_aides_logement_pr, + 767, + 11, + 767, + 41, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _p8_ = + [0, + cst_examples_aides_logement_pr, + 767, + 11, + 767, + 41, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _p5_ = + [0, + cst_examples_aides_logement_co$0, + 3127, + 14, + 3127, + 36, + [0, + cst_Article_D832_10, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0$226 = cst_0$360, + cst_0$227 = cst_0$360, + _p6_ = + [0, + cst_examples_aides_logement_pr, + 792, + 10, + 792, + 32, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _p4_ = + [0, + cst_examples_aides_logement_pr, + 792, + 10, + 792, + 32, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _p0_ = + [0, + cst_examples_aides_logement_co$0, + 3592, + 5, + 3592, + 28, + [0, + cst_Article_D832_18, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _p1_ = + [0, + cst_examples_aides_logement_pr, + 771, + 11, + 771, + 41, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pZ_ = + [0, + cst_examples_aides_logement_co$0, + 3584, + 14, + 3584, + 44, + [0, + cst_Article_D832_18, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _pV_ = + [0, + cst_examples_aides_logement_co$0, + 3276, + 14, + 3276, + 36, + [0, + cst_Article_D832_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _pP_ = + [0, + cst_examples_aides_logement_ar, + 827, + 5, + 842, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$225 = cst_0$360, + cst_86900 = "86900", + cst_97100 = "97100", + cst_1$178 = cst_1$254, + cst_10200 = "10200", + cst_107300 = "107300", + _pQ_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pM_ = + [0, + cst_examples_aides_logement_ar, + 1083, + 5, + 1087, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$222 = cst_0$360, + cst_208500$0 = cst_208500$1, + cst_251500$0 = cst_251500$1, + cst_1$175 = cst_1$254, + cst_43000$0 = cst_43000$1, + cst_294500$0 = cst_294500$1, + cst_0$223 = cst_0$360, + cst_186000$0 = cst_186000$1, + cst_223900$0 = cst_223900$1, + cst_1$176 = cst_1$254, + cst_37900$0 = cst_37900$1, + cst_261800$0 = cst_261800$1, + cst_0$224 = cst_0$360, + cst_173600$0 = cst_173600$1, + cst_208200$0 = cst_208200$1, + cst_1$177 = cst_1$254, + cst_34600 = "34600", + cst_242800$0 = cst_242800$3, + _pN_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pK_ = + [0, + cst_examples_aides_logement_ar, + 1116, + 5, + 1120, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$219 = cst_0$360, + cst_167800$0 = cst_167800$1, + cst_202500$1 = cst_202500$2, + cst_1$172 = cst_1$254, + cst_34700$0 = cst_34700$1, + cst_237200$0 = cst_237200$1, + cst_0$220 = cst_0$360, + cst_149600$0 = cst_149600$1, + cst_180100$0 = cst_180100$2, + cst_1$173 = cst_1$254, + cst_30500$2 = cst_30500$3, + cst_210600$0 = cst_210600$1, + cst_0$221 = cst_0$360, + cst_139700$0 = cst_139700$1, + cst_167600$0 = cst_167600$1, + cst_1$174 = cst_1$254, + cst_27900$0 = cst_27900$1, + cst_195500$0 = cst_195500$1, + _pL_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pI_ = + [0, + cst_examples_aides_logement_ar, + 1149, + 5, + 1153, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$216 = cst_0$360, + cst_198100 = "198100", + cst_239000 = "239000", + cst_1$169 = cst_1$254, + cst_40900 = "40900", + cst_279900 = "279900", + cst_0$217 = cst_0$360, + cst_176800 = "176800", + cst_212800 = "212800", + cst_1$170 = cst_1$254, + cst_36000 = "36000", + cst_248800 = "248800", + cst_0$218 = cst_0$360, + cst_165000 = "165000", + cst_197900 = "197900", + cst_1$171 = cst_1$254, + cst_32900 = "32900", + cst_230800 = "230800", + _pJ_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pG_ = + [0, + cst_examples_aides_logement_ar, + 1182, + 5, + 1186, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$213 = cst_0$360, + cst_159500 = "159500", + cst_192500 = cst_192500$1, + cst_1$166 = cst_1$254, + cst_33000 = "33000", + cst_225500 = cst_225500$1, + cst_0$214 = cst_0$360, + cst_142200 = "142200", + cst_171200 = "171200", + cst_1$167 = cst_1$254, + cst_29000 = "29000", + cst_200200 = "200200", + cst_0$215 = cst_0$360, + cst_132800 = "132800", + cst_159300 = "159300", + cst_1$168 = cst_1$254, + cst_26500 = "26500", + cst_185800$0 = cst_185800$1, + _pH_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pE_ = + [0, + cst_examples_aides_logement_ar, + 1215, + 5, + 1219, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$210 = cst_0$360, + cst_200100 = "200100", + cst_141400 = "141400", + cst_1$163 = cst_1$254, + cst_41300 = "41300", + cst_182700 = "182700", + cst_0$211 = cst_0$360, + cst_178600 = "178600", + cst_215000 = "215000", + cst_1$164 = cst_1$254, + cst_36400 = "36400", + cst_251400 = "251400", + cst_0$212 = cst_0$360, + cst_166700 = "166700", + cst_199900 = cst_199900$2, + cst_1$165 = cst_1$254, + cst_33200 = "33200", + cst_233100 = "233100", + _pF_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pC_ = + [0, + cst_examples_aides_logement_ar, + 1248, + 5, + 1252, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$207 = cst_0$360, + cst_161100 = "161100", + cst_194400 = "194400", + cst_1$160 = cst_1$254, + cst_33300 = "33300", + cst_227700 = "227700", + cst_0$208 = cst_0$360, + cst_143600 = "143600", + cst_172900 = "172900", + cst_1$161 = cst_1$254, + cst_29300 = "29300", + cst_202200 = "202200", + cst_0$209 = cst_0$360, + cst_134100 = "134100", + cst_160900 = "160900", + cst_1$162 = cst_1$254, + cst_26800 = "26800", + cst_187700 = "187700", + _pD_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pA_ = + [0, + cst_examples_aides_logement_ar, + 1281, + 5, + 1285, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$204 = cst_0$360, + cst_202500$0 = cst_202500$2, + cst_244300 = "244300", + cst_1$157 = cst_1$254, + cst_41800 = "41800", + cst_286100 = "286100", + cst_0$205 = cst_0$360, + cst_180700 = "180700", + cst_217500 = "217500", + cst_1$158 = cst_1$254, + cst_36800 = "36800", + cst_254300 = "254300", + cst_0$206 = cst_0$360, + cst_168700 = "168700", + cst_202300 = "202300", + cst_1$159 = cst_1$254, + cst_33600 = "33600", + cst_235900 = "235900", + _pB_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _py_ = + [0, + cst_examples_aides_logement_ar, + 1314, + 5, + 1318, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$201 = cst_0$360, + cst_30871 = "30871", + cst_37243 = "37243", + cst_1$154 = cst_1$254, + cst_6372 = "6372", + cst_43615 = "43615", + cst_0$202 = cst_0$360, + cst_27548 = "27548", + cst_33148 = "33148", + cst_1$155 = cst_1$254, + cst_5610 = "5610", + cst_38768 = "38768", + cst_0$203 = cst_0$360, + cst_25718 = "25718", + cst_30840 = "30840", + cst_1$156 = cst_1$254, + cst_5122 = "5122", + cst_35962 = "35962", + _pz_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pw_ = + [0, + cst_examples_aides_logement_ar, + 1347, + 5, + 1351, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$198 = cst_0$360, + cst_163000 = cst_163000$1, + cst_196700 = "196700", + cst_1$151 = cst_1$254, + cst_33700 = "33700", + cst_230400 = "230400", + cst_0$199 = cst_0$360, + cst_145300 = "145300", + cst_175000 = "175000", + cst_1$152 = cst_1$254, + cst_29700 = "29700", + cst_204700 = cst_204700$1, + cst_0$200 = cst_0$360, + cst_135700 = "135700", + cst_162800 = "162800", + cst_1$153 = cst_1$254, + cst_27100 = "27100", + cst_189900 = "189900", + _px_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pu_ = + [0, + cst_examples_aides_logement_ar, + 1380, + 5, + 1384, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$195 = cst_0$360, + cst_24849 = "24849", + cst_29987 = "29987", + cst_1$148 = cst_1$254, + cst_5138 = "5138", + cst_35125 = "35125", + cst_0$196 = cst_0$360, + cst_22151 = "22151", + cst_26679 = "26679", + cst_1$149 = cst_1$254, + cst_4528 = "4528", + cst_31207 = "31207", + cst_0$197 = cst_0$360, + cst_20687 = "20687", + cst_24818 = "24818", + cst_1$150 = cst_1$254, + cst_4131 = "4131", + cst_28949 = "28949", + _pv_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ps_ = + [0, + cst_examples_aides_logement_ar, + 1413, + 5, + 1417, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$192 = cst_0$360, + cst_31241 = "31241", + cst_37689 = "37689", + cst_1$145 = cst_1$254, + cst_6448 = "6448", + cst_44137 = "44137", + cst_0$193 = cst_0$360, + cst_27879 = "27879", + cst_33556 = "33556", + cst_1$146 = cst_1$254, + cst_5677 = "5677", + cst_39233 = "39233", + cst_0$194 = cst_0$360, + cst_26027 = "26027", + cst_31210 = "31210", + cst_1$147 = cst_1$254, + cst_5183 = "5183", + cst_36393 = "36393", + _pt_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pq_ = + [0, + cst_examples_aides_logement_ar, + 1446, + 5, + 1450, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$189 = cst_0$360, + cst_25147 = "25147", + cst_30347 = "30347", + cst_1$142 = cst_1$254, + cst_5200 = "5200", + cst_35547 = "35547", + cst_0$190 = cst_0$360, + cst_22417 = "22417", + cst_26999 = "26999", + cst_1$143 = cst_1$254, + cst_4582 = "4582", + cst_31581 = "31581", + cst_0$191 = cst_0$360, + cst_20935 = "20935", + cst_25116$0 = cst_25116$1, + cst_1$144 = cst_1$254, + cst_4181 = "4181", + cst_29297 = "29297", + _pr_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _po_ = + [0, + cst_examples_aides_logement_ar, + 1479, + 5, + 1483, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$186 = cst_0$360, + cst_31616 = "31616", + cst_38141 = "38141", + cst_1$139 = cst_1$254, + cst_6525 = "6525", + cst_44666 = "44666", + cst_0$187 = cst_0$360, + cst_28214 = "28214", + cst_33959 = "33959", + cst_1$140 = cst_1$254, + cst_5745 = "5745", + cst_39704 = "39704", + cst_0$188 = cst_0$360, + cst_26339 = "26339", + cst_31584 = "31584", + cst_1$141 = cst_1$254, + cst_5245 = "5245", + cst_36829 = "36829", + _pp_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pm_ = + [0, + cst_examples_aides_logement_ar, + 1512, + 5, + 1516, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$183 = cst_0$360, + cst_25449 = "25449", + cst_30711 = "30711", + cst_1$136 = cst_1$254, + cst_5262 = "5262", + cst_35973 = "35973", + cst_0$184 = cst_0$360, + cst_22686 = "22686", + cst_27323 = "27323", + cst_1$137 = cst_1$254, + cst_4637 = "4637", + cst_31960 = "31960", + cst_0$185 = cst_0$360, + cst_21186 = "21186", + cst_25417 = "25417", + cst_1$138 = cst_1$254, + cst_4231 = "4231", + cst_29648 = "29648", + _pn_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pk_ = + [0, + cst_examples_aides_logement_ar, + 1545, + 5, + 1549, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$180 = cst_0$360, + cst_32185 = "32185", + cst_38827 = "38827", + cst_1$133 = cst_1$254, + cst_6642 = "6642", + cst_45469 = "45469", + cst_0$181 = cst_0$360, + cst_28722 = "28722", + cst_34570$0 = cst_34570$1, + cst_1$134 = cst_1$254, + cst_5848 = "5848", + cst_40418 = "40418", + cst_0$182 = cst_0$360, + cst_26813 = "26813", + cst_32152 = "32152", + cst_1$135 = cst_1$254, + cst_5339 = "5339", + cst_37491 = "37491", + _pl_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pi_ = + [0, + cst_examples_aides_logement_ar, + 1578, + 5, + 1582, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$177 = cst_0$360, + cst_25907 = "25907", + cst_31264 = cst_31264$1, + cst_1$130 = cst_1$254, + cst_5357 = "5357", + cst_36621 = "36621", + cst_0$178 = cst_0$360, + cst_23094 = "23094", + cst_27814 = "27814", + cst_1$131 = cst_1$254, + cst_4720 = "4720", + cst_32534 = "32534", + cst_0$179 = cst_0$360, + cst_21567 = "21567", + cst_25874 = "25874", + cst_1$132 = cst_1$254, + cst_4307 = "4307", + cst_30181 = "30181", + _pj_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pg_ = + [0, + cst_examples_aides_logement_ar, + 1611, + 5, + 1615, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$174 = cst_0$360, + cst_33086 = "33086", + cst_39914 = "39914", + cst_1$127 = cst_1$254, + cst_6828 = "6828", + cst_46742 = "46742", + cst_0$175 = cst_0$360, + cst_29526 = "29526", + cst_35538 = "35538", + cst_1$128 = cst_1$254, + cst_6012 = "6012", + cst_41550 = "41550", + cst_0$176 = cst_0$360, + cst_27564 = "27564", + cst_33052 = "33052", + cst_1$129 = cst_1$254, + cst_5488 = "5488", + cst_38541 = "38541", + _ph_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pe_ = + [0, + cst_examples_aides_logement_ar, + 1644, + 5, + 1648, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$171 = cst_0$360, + cst_26632 = "26632", + cst_32139 = "32139", + cst_1$124 = cst_1$254, + cst_5507 = "5507", + cst_37646 = "37646", + cst_0$172 = cst_0$360, + cst_23741 = "23741", + cst_28593 = "28593", + cst_1$125 = cst_1$254, + cst_4852 = "4852", + cst_33445 = "33445", + cst_0$173 = cst_0$360, + cst_22171 = "22171", + cst_36598 = "36598", + cst_1$126 = cst_1$254, + cst_4428 = "4428", + cst_31026 = "31026", + _pf_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pc_ = + [0, + cst_examples_aides_logement_ar, + 1677, + 5, + 1681, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$168 = cst_0$360, + cst_33999 = "33999", + cst_41016 = "41016", + cst_1$121 = cst_1$254, + cst_7016 = "7016", + cst_48032 = "48032", + cst_0$169 = cst_0$360, + cst_30341 = "30341", + cst_36519 = "36519", + cst_1$122 = cst_1$254, + cst_6178 = "6178", + cst_42697 = "42697", + cst_0$170 = cst_0$360, + cst_28325 = "28325", + cst_33964 = "33964", + cst_1$123 = cst_1$254, + cst_5639 = "5639", + cst_39605 = "39605", + _pd_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pa_ = + [0, + cst_examples_aides_logement_ar, + 1710, + 5, + 1714, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$165 = cst_0$360, + cst_27367 = "27367", + cst_33026 = "33026", + cst_1$118 = cst_1$254, + cst_5659 = "5659", + cst_38685 = "38685", + cst_0$166 = cst_0$360, + cst_24396 = "24396", + cst_29382 = "29382", + cst_1$119 = cst_1$254, + cst_4986$0 = cst_4986$1, + cst_34368 = "34368", + cst_0$167 = cst_0$360, + cst_22783 = "22783", + cst_27332 = "27332", + cst_1$120 = cst_1$254, + cst_4550 = "4550", + cst_31882 = "31882", + _pb_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _o__ = + [0, + cst_examples_aides_logement_ar, + 1743, + 5, + 1747, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$162 = cst_0$360, + cst_35002 = "35002", + cst_42226 = "42226", + cst_1$115 = cst_1$254, + cst_7223 = "7223", + cst_49449 = "49449", + cst_0$163 = cst_0$360, + cst_31236 = "31236", + cst_37596 = "37596", + cst_1$116 = cst_1$254, + cst_6360 = "6360", + cst_43957 = "43957", + cst_0$164 = cst_0$360, + cst_29161 = "29161", + cst_34966 = "34966", + cst_1$117 = cst_1$254, + cst_5805 = "5805", + cst_40773 = "40773", + _o$_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _o8_ = + [0, + cst_examples_aides_logement_ar, + 1776, + 5, + 1780, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$159 = cst_0$360, + cst_28174 = "28174", + cst_34000 = "34000", + cst_1$112 = cst_1$254, + cst_5826 = "5826", + cst_39826 = "39826", + cst_0$160 = cst_0$360, + cst_25116 = cst_25116$1, + cst_30249 = "30249", + cst_1$113 = cst_1$254, + cst_5133 = "5133", + cst_35382 = "35382", + cst_0$161 = cst_0$360, + cst_23455 = "23455", + cst_28138 = "28138", + cst_1$114 = cst_1$254, + cst_4684 = "4684", + cst_32823 = "32823", + _o9_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _o6_ = + [0, + cst_examples_aides_logement_ar, + 1809, + 5, + 1813, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$156 = cst_0$360, + cst_35114 = "35114", + cst_42361 = "42361", + cst_1$109 = cst_1$254, + cst_7246 = "7246", + cst_49607 = "49607", + cst_0$157 = cst_0$360, + cst_31336 = "31336", + cst_37716 = "37716", + cst_1$110 = cst_1$254, + cst_6380 = "6380", + cst_44098 = "44098", + cst_0$158 = cst_0$360, + cst_29254 = "29254", + cst_35078 = "35078", + cst_1$111 = cst_1$254, + cst_5824 = "5824", + cst_40903 = "40903", + _o7_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _o4_ = + [0, + cst_examples_aides_logement_ar, + 1842, + 5, + 1846, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$153 = cst_0$360, + cst_28264 = "28264", + cst_34109 = "34109", + cst_1$106 = cst_1$254, + cst_5845 = "5845", + cst_39953 = "39953", + cst_0$154 = cst_0$360, + cst_25196 = "25196", + cst_30346 = "30346", + cst_1$107 = cst_1$254, + cst_5149 = "5149", + cst_35495 = "35495", + cst_0$155 = cst_0$360, + cst_23530 = "23530", + cst_28228 = "28228", + cst_1$108 = cst_1$254, + cst_4699 = "4699", + cst_32928 = "32928", + _o5_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _o2_ = + [0, + cst_examples_aides_logement_ar, + 1875, + 5, + 1879, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$150 = cst_0$360, + cst_35500 = "35500", + cst_42827 = "42827", + cst_1$103 = cst_1$254, + cst_7326 = "7326", + cst_50153 = "50153", + cst_0$151 = cst_0$360, + cst_31681 = "31681", + cst_38131 = "38131", + cst_1$104 = cst_1$254, + cst_6450 = "6450", + cst_44583 = "44583", + cst_0$152 = cst_0$360, + cst_29576 = "29576", + cst_35464 = "35464", + cst_1$105 = cst_1$254, + cst_5888 = "5888", + cst_41353 = "41353", + _o3_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _o0_ = + [0, + cst_examples_aides_logement_ar, + 1908, + 5, + 1912, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$147 = cst_0$360, + cst_28575 = "28575", + cst_34484 = "34484", + cst_1$100 = cst_1$254, + cst_5909 = "5909", + cst_40392 = "40392", + cst_0$148 = cst_0$360, + cst_25473 = "25473", + cst_30680 = "30680", + cst_1$101 = cst_1$254, + cst_5206 = "5206", + cst_35885 = "35885", + cst_0$149 = cst_0$360, + cst_23789 = "23789", + cst_28539 = "28539", + cst_1$102 = cst_1$254, + cst_4751 = "4751", + cst_33290 = "33290", + _o1_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oY_ = + [0, + cst_examples_aides_logement_ar, + 1941, + 5, + 1945, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$144 = cst_0$360, + cst_35855 = "35855", + cst_43255 = "43255", + cst_1$97 = cst_1$254, + cst_7399 = "7399", + cst_50655 = "50655", + cst_0$145 = cst_0$360, + cst_31998 = "31998", + cst_38512 = "38512", + cst_1$98 = cst_1$254, + cst_6515 = "6515", + cst_45029 = "45029", + cst_0$146 = cst_0$360, + cst_29872 = "29872", + cst_35819 = "35819", + cst_1$99 = cst_1$254, + cst_5947 = "5947", + cst_41767 = "41767", + _oZ_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oW_ = + [0, + cst_examples_aides_logement_ar, + 1974, + 5, + 1978, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$141 = cst_0$360, + cst_28861 = "28861", + cst_34829$0 = cst_34829$1, + cst_1$94 = cst_1$254, + cst_5968 = "5968", + cst_40796 = "40796", + cst_0$142 = cst_0$360, + cst_25728 = "25728", + cst_30987 = "30987", + cst_1$95 = cst_1$254, + cst_5258 = "5258", + cst_36244 = "36244", + cst_0$143 = cst_0$360, + cst_24027 = "24027", + cst_28824 = "28824", + cst_1$96 = cst_1$254, + cst_4799 = "4799", + cst_33623 = cst_33623$1, + _oX_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oU_ = + [0, + cst_examples_aides_logement_ar, + 2007, + 5, + 2011, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$138 = cst_0$360, + cst_36626 = "36626", + cst_44185 = "44185", + cst_1$91 = cst_1$254, + cst_7558 = "7558", + cst_51744 = "51744", + cst_0$139 = cst_0$360, + cst_32686 = "32686", + cst_39340 = cst_39340$1, + cst_1$92 = cst_1$254, + cst_6655 = "6655", + cst_45997 = "45997", + cst_0$140 = cst_0$360, + cst_30514 = "30514", + cst_36589 = "36589", + cst_1$93 = cst_1$254, + cst_6075 = "6075", + cst_42665 = "42665", + _oV_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oS_ = + [0, + cst_examples_aides_logement_ar, + 2040, + 5, + 2044, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$135 = cst_0$360, + cst_29482 = "29482", + cst_35578 = "35578", + cst_1$88 = cst_1$254, + cst_6096 = "6096", + cst_41673 = "41673", + cst_0$136 = cst_0$360, + cst_26281 = "26281", + cst_31653 = "31653", + cst_1$89 = cst_1$254, + cst_5371 = "5371", + cst_37023 = "37023", + cst_0$137 = cst_0$360, + cst_24544 = "24544", + cst_29444 = "29444", + cst_1$90 = cst_1$254, + cst_4902 = "4902", + cst_34346 = "34346", + _oT_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oQ_ = + [0, + cst_examples_aides_logement_ar, + 2073, + 5, + 2077, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$132 = cst_0$360, + cst_36835 = "36835", + cst_44437 = "44437", + cst_1$85 = cst_1$254, + cst_7601 = "7601", + cst_52039 = "52039", + cst_0$133 = cst_0$360, + cst_32872 = "32872", + cst_39564 = "39564", + cst_1$86 = cst_1$254, + cst_6693 = "6693", + cst_46259 = "46259", + cst_0$134 = cst_0$360, + cst_30688 = "30688", + cst_36798 = "36798", + cst_1$87 = cst_1$254, + cst_6110 = "6110", + cst_42908 = "42908", + _oR_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oO_ = + [0, + cst_examples_aides_logement_ar, + 2106, + 5, + 2110, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$129 = cst_0$360, + cst_29650 = "29650", + cst_35781 = "35781", + cst_1$82 = cst_1$254, + cst_6131 = "6131", + cst_41911 = "41911", + cst_0$130 = cst_0$360, + cst_26431 = "26431", + cst_31833 = "31833", + cst_1$83 = cst_1$254, + cst_5402 = "5402", + cst_37234 = "37234", + cst_0$131 = cst_0$360, + cst_24684 = "24684", + cst_29612 = "29612", + cst_1$84 = cst_1$254, + cst_4930 = "4930", + cst_34542 = "34542", + _oP_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oM_ = + [0, + cst_examples_aides_logement_ar, + 2139, + 5, + 2143, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$126 = cst_0$360, + cst_36864 = "36864", + cst_44473 = "44473", + cst_1$79 = cst_1$254, + cst_7607 = "7607", + cst_52081 = "52081", + cst_0$127 = cst_0$360, + cst_32898 = "32898", + cst_39596 = "39596", + cst_1$80 = cst_1$254, + cst_6698 = "6698", + cst_46296 = "46296", + cst_0$128 = cst_0$360, + cst_30713 = "30713", + cst_36827 = "36827", + cst_1$81 = cst_1$254, + cst_6115 = "6115", + cst_42942 = "42942", + _oN_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oK_ = + [0, + cst_examples_aides_logement_ar, + 2172, + 5, + 2176, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$123 = cst_0$360, + cst_29674 = "29674", + cst_35810 = "35810", + cst_1$76 = cst_1$254, + cst_6136 = "6136", + cst_41945 = "41945", + cst_0$124 = cst_0$360, + cst_26452 = "26452", + cst_31858 = "31858", + cst_1$77 = cst_1$254, + cst_5406 = "5406", + cst_37264 = "37264", + cst_0$125 = cst_0$360, + cst_24704 = "24704", + cst_29636 = "29636", + cst_1$78 = cst_1$254, + cst_4934 = "4934", + cst_34570 = cst_34570$1, + _oL_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oI_ = + [0, + cst_examples_aides_logement_ar, + 2205, + 5, + 2209, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$120 = cst_0$360, + cst_37140 = "37140", + cst_44807 = "44807", + cst_1$73 = cst_1$254, + cst_7664 = "7664", + cst_52472 = "52472", + cst_0$121 = cst_0$360, + cst_33145 = "33145", + cst_39893 = "39893", + cst_1$74 = cst_1$254, + cst_6748 = "6748", + cst_46643 = "46643", + cst_0$122 = cst_0$360, + cst_30943 = "30943", + cst_37103 = "37103", + cst_1$75 = cst_1$254, + cst_6161 = "6161", + cst_43264 = "43264", + _oJ_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oG_ = + [0, + cst_examples_aides_logement_ar, + 2238, + 5, + 2242, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$117 = cst_0$360, + cst_29897 = "29897", + cst_36079 = "36079", + cst_1$70 = cst_1$254, + cst_6182 = "6182", + cst_42260 = "42260", + cst_0$118 = cst_0$360, + cst_26650 = "26650", + cst_32097 = "32097", + cst_1$71 = cst_1$254, + cst_5447 = "5447", + cst_37543 = "37543", + cst_0$119 = cst_0$360, + cst_24889 = "24889", + cst_29858 = "29858", + cst_1$72 = cst_1$254, + cst_4971 = "4971", + cst_34829 = cst_34829$1, + _oH_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oE_ = + [0, + cst_examples_aides_logement_ar, + 2271, + 5, + 2274, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$114 = cst_0$360, + cst_37252 = "37252", + cst_44941 = "44941", + cst_1$67 = cst_1$254, + cst_7687 = "7687", + cst_52629 = "52629", + cst_0$115 = cst_0$360, + cst_33244 = "33244", + cst_40013 = "40013", + cst_1$68 = cst_1$254, + cst_6768 = "6768", + cst_46783 = "46783", + cst_0$116 = cst_0$360, + cst_31036 = "31036", + cst_37215 = "37215", + cst_1$69 = cst_1$254, + cst_6179 = "6179", + cst_43394 = "43394", + _oF_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oC_ = + [0, + cst_examples_aides_logement_ar, + 2303, + 5, + 2306, + 36, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]], + cst_0$111 = cst_0$360, + cst_29986 = "29986", + cst_36187 = "36187", + cst_1$64 = cst_1$254, + cst_6201 = "6201", + cst_42386 = "42386", + cst_0$112 = cst_0$360, + cst_26730 = "26730", + cst_32193 = "32193", + cst_1$65 = cst_1$254, + cst_5463 = "5463", + cst_37656 = "37656", + cst_0$113 = cst_0$360, + cst_24964 = "24964", + cst_29948 = "29948", + cst_1$66 = cst_1$254, + cst_4986 = cst_4986$1, + cst_34934 = "34934", + _oD_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pO_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pR_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oz_ = + [0, + cst_examples_aides_logement_ar, + 635, + 5, + 638, + 33, + [0, + cst_Article_17, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$108 = cst_0$360, + cst_208500 = cst_208500$1, + cst_251500 = cst_251500$1, + cst_1$61 = cst_1$254, + cst_43000 = cst_43000$1, + cst_294500 = cst_294500$1, + cst_0$109 = cst_0$360, + cst_186000 = cst_186000$1, + cst_223900 = cst_223900$1, + cst_1$62 = cst_1$254, + cst_37900 = cst_37900$1, + cst_261800 = cst_261800$1, + cst_0$110 = cst_0$360, + cst_173600 = cst_173600$1, + cst_208200 = cst_208200$1, + cst_1$63 = cst_1$254, + cst_35600 = "35600", + cst_242800 = cst_242800$3, + _oA_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ox_ = + [0, + cst_examples_aides_logement_ar, + 680, + 5, + 683, + 33, + [0, + cst_Article_17, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$105 = cst_0$360, + cst_167800 = cst_167800$1, + cst_202500 = cst_202500$2, + cst_1$58 = cst_1$254, + cst_34700 = cst_34700$1, + cst_237200 = cst_237200$1, + cst_0$106 = cst_0$360, + cst_149600 = cst_149600$1, + cst_180100 = cst_180100$2, + cst_1$59 = cst_1$254, + cst_30500$1 = cst_30500$3, + cst_210600 = cst_210600$1, + cst_0$107 = cst_0$360, + cst_139700 = cst_139700$1, + cst_167600 = cst_167600$1, + cst_1$60 = cst_1$254, + cst_27900 = cst_27900$1, + cst_195500 = cst_195500$1, + _oy_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ov_ = + [0, + cst_examples_aides_logement_ar, + 726, + 5, + 728, + 33, + [0, + cst_Article_17, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$102 = cst_0$360, + cst_184000 = cst_184000$2, + cst_220000 = "220000", + cst_1$55 = cst_1$254, + cst_38000 = "38000", + cst_260000 = "260000", + cst_0$103 = cst_0$360, + cst_164200 = "164200", + cst_197700 = cst_197700$1, + cst_1$56 = cst_1$254, + cst_33500 = cst_33500$1, + cst_231200 = "231200", + cst_0$104 = cst_0$360, + cst_153200 = "153200", + cst_183700 = "183700", + cst_1$57 = cst_1$254, + cst_30500$0 = cst_30500$3, + cst_214200 = "214200", + _ow_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ot_ = + [0, + cst_examples_aides_logement_ar, + 770, + 5, + 772, + 33, + [0, + cst_Article_17, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$99 = cst_0$360, + cst_148100 = "148100", + cst_178700 = "178700", + cst_1$52 = cst_1$254, + cst_30600 = "30600", + cst_209300 = "209300", + cst_0$100 = cst_0$360, + cst_132000 = cst_132000$1, + cst_158900 = "158900", + cst_1$53 = cst_1$254, + cst_26900 = "26900", + cst_185800 = cst_185800$1, + cst_0$101 = cst_0$360, + cst_123300 = "123300", + cst_147900 = "147900", + cst_1$54 = cst_1$254, + cst_24600 = "24600", + cst_172500 = cst_172500$1, + _ou_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oB_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _os_ = + [0, + cst_examples_aides_logement_pr, + 760, + 55, + 760, + 61, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pS_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _or_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _om_ = + [0, + cst_examples_aides_logement_ar, + 2438, + 7, + 2438, + 18, + [0, + cst_Article_24, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1272$2 = cst_1272$6, + cst_2805$0 = cst_2805$2, + cst_5612$2 = cst_5612$8, + _on_ = + [0, + cst_examples_aides_logement_pr, + 772, + 11, + 772, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ok_ = + [0, + cst_examples_aides_logement_ar$0, + 1418, + 7, + 1418, + 18, + [0, + cst_Article_24, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1229$2 = cst_1229$6, + cst_2710$0 = cst_2710$2, + cst_5422$2 = cst_5422$8, + _ol_ = + [0, + cst_examples_aides_logement_pr, + 772, + 11, + 772, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oi_ = + [0, + cst_examples_aides_logement_ar$0, + 2502, + 7, + 2502, + 18, + [0, + cst_Article_24, + [0, + cst_Article_19, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]]], + cst_1224$2 = cst_1224$6, + cst_2699$0 = cst_2699$2, + cst_5399$2 = cst_5399$8, + _oj_ = + [0, + cst_examples_aides_logement_pr, + 772, + 11, + 772, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oo_ = + [0, + cst_examples_aides_logement_pr, + 772, + 11, + 772, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _of_ = + [0, + cst_examples_aides_logement_ar, + 2355, + 29, + 2355, + 64, + [0, + cst_Article_19, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1272$1 = cst_1272$6, + cst_5612$1 = cst_5612$8, + _og_ = + [0, + cst_examples_aides_logement_pr, + 772, + 11, + 772, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _od_ = + [0, + cst_examples_aides_logement_ar$0, + 1384, + 29, + 1384, + 64, + [0, + cst_Article_19, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1229$1 = cst_1229$6, + cst_5422$1 = cst_5422$8, + _oe_ = + [0, + cst_examples_aides_logement_pr, + 772, + 11, + 772, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ob_ = + [0, + cst_examples_aides_logement_ar$0, + 2468, + 29, + 2468, + 64, + [0, + cst_Article_19, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1224$1 = cst_1224$6, + cst_5399$1 = cst_5399$8, + _oc_ = + [0, + cst_examples_aides_logement_pr, + 772, + 11, + 772, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oh_ = + [0, + cst_examples_aides_logement_pr, + 772, + 11, + 772, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _n9_ = + [0, + cst_examples_aides_logement_ar, + 2367, + 14, + 2367, + 41, + [0, + "Article 20", + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_500$1 = cst_500$4, + _n5_ = + [0, + cst_examples_aides_logement_ar, + 2379, + 14, + 2379, + 42, + [0, + "Article 21", + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1000$2 = cst_1000$5, + _n1_ = + [0, + cst_examples_aides_logement_ar, + 2466, + 14, + 2466, + 50, + [0, + "Article 25", + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0_0226 = cst_0_0226$1, + cst_0_0234 = cst_0_0234$2, + cst_0_0172 = "0.0172", + cst_0_0226$0 = cst_0_0226$1, + cst_0_0234$0 = cst_0_0234$2, + _nX_ = + [0, + cst_examples_aides_logement_ar, + 2389, + 14, + 2389, + 48, + [0, + "Article 22", + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_2211133 = "2211133", + _nT_ = + [0, + cst_examples_aides_logement_ar, + 2485, + 14, + 2485, + 48, + [0, + "Article 26", + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_16_25 = cst_16_25$1, + _nP_ = + [0, + cst_examples_aides_logement_ar, + 2405, + 14, + 2405, + 47, + [0, + cst_Article_23, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_560085 = "560085", + _nL_ = + [0, + cst_examples_aides_logement_ar, + 2406, + 14, + 2406, + 47, + [0, + cst_Article_23, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0_208$0 = cst_0_208$1, + _nH_ = + [0, + cst_examples_aides_logement_ar, + 2407, + 14, + 2407, + 47, + [0, + cst_Article_23, + [0, cst_Article_18, [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0_416 = "0.416", + _nB_ = + [0, + cst_examples_aides_logement_pr, + 798, + 14, + 798, + 50, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nv_ = + [0, + cst_examples_aides_logement_co$0, + 3280, + 14, + 3280, + 64, + [0, + cst_Article_D832_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _nr_ = + [0, + cst_examples_aides_logement_co$0, + 3278, + 14, + 3278, + 59, + [0, + cst_Article_D832_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _nn_ = + [0, + cst_examples_aides_logement_au, + 327, + 14, + 327, + 36, + [0, cst_Article_premier, [0, cst_R_glement_CE_n_2866_98_du_, 0]]], + cst_6_55957 = cst_6_55957$1, + cst_1$51 = cst_1$255, + _no_ = + [0, + cst_examples_aides_logement_pr, + 781, + 11, + 781, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nm_ = + [0, + cst_examples_aides_logement_pr, + 781, + 11, + 781, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _np_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_taux_francs_vers_euros, 0]], + _ns_ = + [0, + cst_examples_aides_logement_co$0, + 3278, + 14, + 3278, + 59, + [0, + cst_Article_D832_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _nt_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_calcul_nombre_parts_nombre, 0]], + _nq_ = + [0, + cst_examples_aides_logement_co$0, + 3278, + 14, + 3278, + 59, + [0, + cst_Article_D832_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _nw_ = + [0, + cst_examples_aides_logement_co$0, + 3280, + 14, + 3280, + 64, + [0, + cst_Article_D832_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _nx_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_calcul_nombre_parts_situat, 0]], + _nu_ = + [0, + cst_examples_aides_logement_co$0, + 3280, + 14, + 3280, + 64, + [0, + cst_Article_D832_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _ny_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_calcul_nombre_parts, [0, cst_CalculNombrePartsAccession, 0]]], + _nz_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_calcul_nombre_parts, [0, cst_CalculNombrePartsAccession, 0]]], + _nC_ = + [0, + cst_examples_aides_logement_pr, + 798, + 14, + 798, + 50, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nD_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_contributions_sociales_dat, 0]], + _nA_ = + [0, + cst_examples_aides_logement_pr, + 798, + 14, + 798, + 50, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nE_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], + _nF_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], + _nI_ = + [0, + cst_examples_aides_logement_pr, + 780, + 11, + 780, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nG_ = + [0, + cst_examples_aides_logement_pr, + 780, + 11, + 780, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nJ_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "taux_tranche_sup\xc3\xa9rieure_d832_15_1", 0]], + _nM_ = + [0, + cst_examples_aides_logement_pr, + 779, + 11, + 779, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nK_ = + [0, + cst_examples_aides_logement_pr, + 779, + 11, + 779, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nN_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "taux_tranche_inf\xc3\xa9rieure_d832_15_1", 0]], + _nQ_ = + [0, + cst_examples_aides_logement_pr, + 778, + 11, + 778, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nO_ = + [0, + cst_examples_aides_logement_pr, + 778, + 11, + 778, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nR_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "montant_limite_tranches_d832_15_1", 0]], + _nU_ = + [0, + cst_examples_aides_logement_pr, + 777, + 11, + 777, + 45, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nS_ = + [0, + cst_examples_aides_logement_pr, + 777, + 11, + 777, + 45, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nV_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "coefficient_multiplicateur_d832_18", 0]], + _nY_ = + [0, + cst_examples_aides_logement_pr, + 776, + 11, + 776, + 45, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nW_ = + [0, + cst_examples_aides_logement_pr, + 776, + 11, + 776, + 45, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nZ_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "coefficient_multiplicateur_d832_11", 0]], + _n2_ = + [0, + cst_examples_aides_logement_pr, + 775, + 11, + 775, + 47, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _n0_ = + [0, + cst_examples_aides_logement_pr, + 775, + 11, + 775, + 47, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _n3_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "coefficient_multiplicateur_d832_17_3", 0]], + _n6_ = + [0, + cst_examples_aides_logement_pr, + 774, + 11, + 774, + 39, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _n4_ = + [0, + cst_examples_aides_logement_pr, + 774, + 11, + 774, + 39, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _n7_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "montant_minimal_aide_d832_10", 0]], + _n__ = + [0, + cst_examples_aides_logement_pr, + 773, + 11, + 773, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _n8_ = + [0, + cst_examples_aides_logement_pr, + 773, + 11, + 773, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _n$_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "montant_forfaitaire_d832_10", 0]], + _op_ = + [0, + cst_examples_aides_logement_pr, + 772, + 11, + 772, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oa_ = + [0, + cst_examples_aides_logement_pr, + 772, + 11, + 772, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oq_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "montant_forfaitaire_charges_d832_10", 0]], + _pT_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_calcul_plafond_mensualit_d$2, 0]], + _pW_ = + [0, + cst_examples_aides_logement_pr, + 762, + 11, + 762, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pU_ = + [0, + cst_examples_aides_logement_pr, + 762, + 11, + 762, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pX_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_n_nombre_parts_d832_11$0, 0]], + _p2_ = + [0, + cst_examples_aides_logement_pr, + 771, + 11, + 771, + 41, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pY_ = + [0, + cst_examples_aides_logement_pr, + 771, + 11, + 771, + 41, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _p3_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "ressources_m\xc3\xa9nage_avec_d832_18", 0]], + _p7_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_min, 0]], + _qb_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_d_pense_nette_minimale_d83, 0]], + _qs_ = + [0, + cst_examples_aides_logement_pr, + 758, + 10, + 758, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qc_ = + [0, + cst_examples_aides_logement_pr, + 758, + 10, + 758, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qt_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "plafond_mensualit\xc3\xa9_d832_10_3_base", 0]], + _qw_ = + [0, + cst_examples_aides_logement_pr, + 799, + 14, + 799, + 61, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qx_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_calcul_quivalence_loyer_mi, 0]], + _qu_ = + [0, + cst_examples_aides_logement_pr, + 799, + 14, + 799, + 61, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qA_ = + [0, + cst_examples_aides_logement_co$0, + 3484, + 14, + 3484, + 75, + [0, + cst_Article_D832_15, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qB_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_calcul_quivalence_loyer_mi$0, 0]], + _qy_ = + [0, + cst_examples_aides_logement_co$0, + 3484, + 14, + 3484, + 75, + [0, + cst_Article_D832_15, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qE_ = + [0, + cst_examples_aides_logement_co$0, + 3483, + 14, + 3483, + 69, + [0, + cst_Article_D832_15, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qF_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_calcul_quivalence_loyer_mi$1, 0]], + _qC_ = + [0, + cst_examples_aides_logement_co$0, + 3483, + 14, + 3483, + 69, + [0, + cst_Article_D832_15, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qI_ = + [0, + cst_examples_aides_logement_co$0, + 3486, + 14, + 3486, + 70, + [0, + cst_Article_D832_15, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qJ_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_calcul_quivalence_loyer_mi$2, 0]], + _qG_ = + [0, + cst_examples_aides_logement_co$0, + 3486, + 14, + 3486, + 70, + [0, + cst_Article_D832_15, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qK_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, + cst_calcul_quivalence_loyer_mi$3, + [0, cst_Calcul_quivalenceLoyerMini, 0]]], + _qL_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, + cst_calcul_quivalence_loyer_mi$3, + [0, cst_Calcul_quivalenceLoyerMini, 0]]], + _qO_ = + [0, + cst_examples_aides_logement_pr, + 764, + 10, + 764, + 17, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qM_ = + [0, + cst_examples_aides_logement_pr, + 764, + 10, + 764, + 17, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qP_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "coefficient_prise_en_charge_d832_10_formule", 0]], + _qX_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_abattement_d_pense_nette_m$0, 0]], + _q5_ = + [0, + cst_examples_aides_logement_pr, + 759, + 10, + 759, + 25, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qY_ = + [0, + cst_examples_aides_logement_pr, + 759, + 10, + 759, + 25, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _q6_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "plafond_mensualit\xc3\xa9_d832_10_3_copropri\xc3\xa9taires", 0]], + _ra_ = + [0, + cst_examples_aides_logement_pr, + 756, + 12, + 756, + 31, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _q7_ = + [0, + cst_examples_aides_logement_pr, + 756, + 12, + 756, + 31, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rb_ = + [0, cst_CalculAidePersonnalis_eLog$2, [0, cst_mensualit_minimale$0, 0]], + _re_ = + [0, + cst_examples_aides_logement_pr, + 765, + 10, + 765, + 23, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rc_ = + [0, + cst_examples_aides_logement_pr, + 765, + 10, + 765, + 23, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rf_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "coefficient_prise_en_charge_d832_10_coeff_arrondi", 0]], + _rr_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_aba, 0]], + _ru_ = + [0, + cst_examples_aides_logement_pr, + 755, + 12, + 755, + 31, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rs_ = + [0, + cst_examples_aides_logement_pr, + 755, + 12, + 755, + 31, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rv_ = + [0, cst_CalculAidePersonnalis_eLog$2, [0, cst_mensualit_ligible$0, 0]], + _ry_ = + [0, + cst_examples_aides_logement_pr, + 766, + 10, + 766, + 15, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rw_ = + [0, + cst_examples_aides_logement_pr, + 766, + 10, + 766, + 15, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rz_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "coefficient_prise_en_charge_d832_10_seuil", 0]], + _rL_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_con, 0]], + _rO_ = + [0, + cst_examples_aides_logement_pr, + 789, + 12, + 789, + 31, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rM_ = + [0, + cst_examples_aides_logement_pr, + 789, + 12, + 789, + 31, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rP_ = + [0, cst_CalculAidePersonnalis_eLog$2, [0, cst_aide_finale_formule$9, 0]], + _rX_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_mon, 0]], + _rY_ = + [0, + cst_examples_aides_logement_pr, + 803, + 13, + 803, + 42, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rZ_ = + [0, + cst_examples_aides_logement_pr, + 803, + 13, + 803, + 42, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nh_ = + [0, + cst_examples_aides_logement_co$0, + 3829, + 14, + 3829, + 36, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _nd_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_con, [0, cst_input0, 0]]], + _ne_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_con, 0]], + _nf_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_con, [0, cst_output, 0]]], + _ng_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_con, 0]], + cst_0$98 = cst_0$360, + _ni_ = + [0, + cst_examples_aides_logement_pr, + 717, + 10, + 717, + 25, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nc_ = + [0, + cst_examples_aides_logement_pr, + 717, + 10, + 717, + 25, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _m$_ = + [0, + cst_examples_aides_logement_co$0, + 3733, + 14, + 3733, + 33, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$96 = cst_0$360, + cst_0$97 = cst_0$360, + _m7_ = + [0, + cst_examples_aides_logement_co$0, + 3808, + 14, + 3808, + 36, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _mZ_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_aba, [0, cst_input0, 0]]], + _m0_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_aba, 0]], + _m1_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_aba, [0, cst_output, 0]]], + _m2_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_aba, 0]], + _m3_ = + [0, + cst_ContributionsSocialesAides, + [0, cst_montant$2, [0, cst_input0, 0]]], + _m4_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], + _m5_ = + [0, + cst_ContributionsSocialesAides, + [0, cst_montant$2, [0, cst_output, 0]]], + _m6_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], + cst_50$0 = cst_50$4, + cst_0$94 = cst_0$360, + cst_0$95 = cst_0$360, + _m8_ = + [0, + cst_examples_aides_logement_pr, + 716, + 10, + 716, + 40, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mY_ = + [0, + cst_examples_aides_logement_pr, + 716, + 10, + 716, + 40, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mU_ = + [0, + cst_examples_aides_logement_co$0, + 3980, + 5, + 3980, + 26, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0_9$1 = cst_0_9$3, + cst_0_9$2 = cst_0_9$3, + _mV_ = + [0, + cst_examples_aides_logement_pr, + 709, + 10, + 709, + 15, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mT_ = + [0, + cst_examples_aides_logement_co$0, + 3886, + 14, + 3886, + 49, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0_95$0 = cst_0_95$5, + cst_0_95$1 = cst_0_95$5, + _mP_ = + [0, + cst_examples_aides_logement_co$0, + 3794, + 14, + 3794, + 36, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _mH_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_min, [0, cst_input0, 0]]], + _mI_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_min, 0]], + _mJ_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_min, [0, cst_output, 0]]], + _mK_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_min, 0]], + _mL_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_abattement_d_pense_nette_m$1, [0, cst_input0, 0]]], + _mM_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_abattement_d_pense_nette_m$1, 0]], + _mN_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_abattement_d_pense_nette_m$1, [0, cst_output, 0]]], + _mO_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_abattement_d_pense_nette_m$1, 0]], + cst_0$92 = cst_0$360, + cst_0$93 = cst_0$360, + _mQ_ = + [0, + cst_examples_aides_logement_pr, + 715, + 10, + 715, + 20, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mG_ = + [0, + cst_examples_aides_logement_pr, + 715, + 10, + 715, + 20, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mC_ = + [0, + cst_examples_aides_logement_co$0, + 3974, + 5, + 3974, + 26, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_100$8 = cst_100$13, + cst_100$9 = cst_100$13, + cst_0_005$1 = cst_0_005$3, + _mD_ = + [0, + cst_examples_aides_logement_pr, + 708, + 10, + 708, + 23, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mB_ = + [0, + cst_examples_aides_logement_co$0, + 3883, + 14, + 3883, + 49, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_100$6 = cst_100$13, + cst_100$7 = cst_100$13, + cst_0_005$0 = cst_0_005$3, + _mx_ = + [0, + cst_examples_aides_logement_co$0, + 3766, + 14, + 3766, + 40, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _mt_ = + [0, + cst_examples_aides_logement_co$0, + 4149, + 14, + 4149, + 55, + [0, + cst_Article_D832_27, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _mp_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_d_pense_nette_minimale_d83$0, [0, cst_input0, 0]]], + _mq_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_d_pense_nette_minimale_d83$0, 0]], + _mr_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_d_pense_nette_minimale_d83$0, [0, cst_output, 0]]], + _ms_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_d_pense_nette_minimale_d83$0, 0]], + cst_0$91 = cst_0$360, + _mu_ = + [0, + cst_examples_aides_logement_pr, + 691, + 11, + 691, + 52, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mo_ = + [0, + cst_examples_aides_logement_pr, + 691, + 11, + 691, + 52, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mk_ = + [0, + cst_examples_aides_logement_co$0, + 3957, + 5, + 3957, + 26, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0_9$0 = cst_0_9$3, + _ml_ = + [0, + cst_examples_aides_logement_pr, + 707, + 10, + 707, + 17, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mj_ = + [0, + cst_examples_aides_logement_co$0, + 3862, + 14, + 3862, + 49, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$89 = cst_0$360, + cst_0$90 = cst_0$360, + cst_0_95 = cst_0_95$5, + _md_ = + [0, + cst_examples_aides_logement_co$0, + 3772, + 14, + 3772, + 70, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _l$_ = + [0, + cst_examples_aides_logement_co$0, + 3768, + 14, + 3768, + 69, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _l7_ = + [0, + cst_examples_aides_logement_co$0, + 3770, + 14, + 3770, + 75, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _l3_ = + [0, + cst_examples_aides_logement_pr, + 721, + 14, + 721, + 61, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lZ_ = + [0, + cst_examples_aides_logement_co$0, + 4145, + 14, + 4145, + 44, + [0, + cst_Article_D832_27, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _l0_ = + [0, + cst_examples_aides_logement_pr, + 693, + 11, + 693, + 41, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lY_ = + [0, + cst_examples_aides_logement_pr, + 693, + 11, + 693, + 41, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lU_ = + [0, + cst_examples_aides_logement_co$0, + 3944, + 14, + 3944, + 36, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _lV_ = + [0, + cst_examples_aides_logement_pr, + 688, + 21, + 688, + 43, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lQ_ = + [0, + cst_examples_aides_logement_co$0, + 3754, + 14, + 3754, + 40, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _lM_ = + [0, + cst_examples_aides_logement_co$0, + 3780, + 14, + 3780, + 36, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$87 = cst_0$360, + cst_0$88 = cst_0$360, + _lN_ = + [0, + cst_examples_aides_logement_pr, + 714, + 10, + 714, + 32, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lL_ = + [0, + cst_examples_aides_logement_pr, + 714, + 10, + 714, + 32, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lI_ = + [0, + cst_examples_aides_logement_ar, + 2607, + 14, + 2607, + 48, + [0, + cst_Article_30, + [0, + cst_Chapitre_V_Calcul_de_l_aid, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_2142091 = "2142091", + cst_1339340 = "1339340", + _lE_ = + [0, + cst_examples_aides_logement_ar, + 2754, + 14, + 2754, + 41, + [0, + "Article 32", + [0, + cst_Chapitre_V_Calcul_de_l_aid, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1500 = cst_1500$2, + cst_2668 = "2668", + _ly_ = + [0, + cst_examples_aides_logement_co$0, + 5548, + 5, + 5548, + 45, + [0, + cst_Article_D861_8, + [0, + cst_Section_2_Allocations_de_l, + [0, + cst_Titre_VI_Disposition_parti, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _lz_ = + [0, + cst_examples_aides_logement_co$0, + 5546, + 5, + 5546, + 65, + [0, + cst_Article_D861_8, + [0, + cst_Section_2_Allocations_de_l, + [0, + cst_Titre_VI_Disposition_parti, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _lA_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, + "calcul_nombre_parts.limitation_majoration_personnes_\xc3\xa0_charge", + 0]], + _lv_ = + [0, + cst_examples_aides_logement_co$0, + 3943, + 14, + 3943, + 43, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _lr_ = + [0, + cst_examples_aides_logement_co$0, + 3939, + 14, + 3939, + 64, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _ln_ = + [0, + cst_examples_aides_logement_co$0, + 3937, + 14, + 3937, + 59, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _lj_ = + [0, + cst_examples_aides_logement_co$0, + 3941, + 14, + 3941, + 55, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _lf_ = + [0, + cst_examples_aides_logement_ar, + 2596, + 14, + 2596, + 35, + [0, + cst_Article_30, + [0, + cst_Chapitre_V_Calcul_de_l_aid, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_121726 = "121726", + _la_ = + [0, + cst_examples_aides_logement_ar, + 2514, + 14, + 2514, + 48, + [0, + cst_Article_27, + [0, + cst_Chapitre_V_Calcul_de_l_aid, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$84 = cst_0$360, + cst_46192 = "46192", + cst_54152 = "54152", + cst_1$48 = cst_1$254, + cst_57741 = "57741", + cst_2$30 = cst_2$105, + cst_61794 = "61794", + cst_3$29 = cst_3$101, + cst_65862 = "65862", + cst_4$31 = cst_4$100, + cst_7368 = "7368", + cst_71039 = "71039", + cst_0$85 = cst_0$360, + cst_42242 = "42242", + cst_49299 = "49299", + cst_1$49 = cst_1$254, + cst_52565 = "52565", + cst_2$31 = cst_2$105, + cst_56268 = "56268", + cst_3$30 = cst_3$101, + cst_59957 = "59957", + cst_4$32 = cst_4$100, + cst_6659 = "6659", + cst_63887 = "63887", + cst_0$86 = cst_0$360, + cst_40096 = "40096", + cst_46634 = "46634", + cst_1$50 = cst_1$254, + cst_49475 = "49475", + cst_2$32 = cst_2$105, + cst_52740 = "52740", + cst_3$31 = cst_3$101, + cst_56004 = "56004", + cst_4$33 = cst_4$100, + cst_6180 = "6180", + cst_59675 = "59675", + _lb_ = + [0, + cst_examples_aides_logement_pr, + 690, + 12, + 690, + 46, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _k__ = + [0, + cst_examples_aides_logement_ar$0, + 1453, + 14, + 1453, + 48, + [0, + cst_Article_27, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$81 = cst_0$360, + cst_44630 = "44630", + cst_52321 = "52321", + cst_1$45 = cst_1$254, + cst_55788 = "55788", + cst_2$27 = cst_2$105, + cst_59704 = "59704", + cst_3$26 = cst_3$101, + cst_63635 = "63635", + cst_4$28 = cst_4$100, + cst_7119 = "7119", + cst_68637 = "68637", + cst_0$82 = cst_0$360, + cst_40814 = "40814", + cst_47632 = "47632", + cst_1$46 = cst_1$254, + cst_50787 = "50787", + cst_2$28 = cst_2$105, + cst_54365 = "54365", + cst_3$27 = cst_3$101, + cst_57929 = "57929", + cst_4$29 = cst_4$100, + cst_6434 = "6434", + cst_61727 = "61727", + cst_0$83 = cst_0$360, + cst_38740 = "38740", + cst_45057 = "45057", + cst_1$47 = cst_1$254, + cst_47802 = "47802", + cst_2$29 = cst_2$105, + cst_50957 = "50957", + cst_3$28 = cst_3$101, + cst_54110 = "54110", + cst_4$30 = cst_4$100, + cst_5971 = "5971", + cst_57657 = "57657", + _k$_ = + [0, + cst_examples_aides_logement_pr, + 690, + 12, + 690, + 46, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _k8_ = + [0, + cst_examples_aides_logement_ar$0, + 2537, + 14, + 2537, + 48, + [0, + cst_Article_27, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$78 = cst_0$360, + cst_44443 = "44443", + cst_52101 = "52101", + cst_1$42 = cst_1$254, + cst_55555 = "55555", + cst_2$24 = cst_2$105, + cst_59454 = "59454", + cst_3$23 = cst_3$101, + cst_63369 = "63369", + cst_4$25 = cst_4$100, + cst_7089 = "7089", + cst_68350 = "68350", + cst_0$79 = cst_0$360, + cst_40643 = "40643", + cst_47433 = "47433", + cst_1$43 = cst_1$254, + cst_50575 = "50575", + cst_2$25 = cst_2$105, + cst_54138 = "54138", + cst_3$24 = cst_3$101, + cst_57687 = "57687", + cst_4$26 = cst_4$100, + cst_6407 = "6407", + cst_61469 = "61469", + cst_0$80 = cst_0$360, + cst_38578 = "38578", + cst_44869 = "44869", + cst_1$44 = cst_1$254, + cst_47602 = "47602", + cst_2$26 = cst_2$105, + cst_50744 = "50744", + cst_3$25 = cst_3$101, + cst_53884 = "53884", + cst_4$27 = cst_4$100, + cst_5946 = "5946", + cst_57416 = "57416", + _k9_ = + [0, + cst_examples_aides_logement_pr, + 690, + 12, + 690, + 46, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _k4_ = + [0, + cst_examples_aides_logement_ar, + 2569, + 14, + 2569, + 41, + [0, + "Article 28", + [0, + cst_Chapitre_V_Calcul_de_l_aid, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_500$0 = cst_500$4, + _k0_ = + [0, + cst_examples_aides_logement_ar, + 2581, + 14, + 2581, + 42, + [0, + "Article 29", + [0, + cst_Chapitre_V_Calcul_de_l_aid, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1000$1 = cst_1000$5, + _kU_ = + [0, + cst_examples_aides_logement_pr, + 720, + 14, + 720, + 50, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kP_ = + [0, + cst_examples_aides_logement_co$0, + 3847, + 14, + 3847, + 35, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _kQ_ = + [0, + cst_examples_aides_logement_pr, + 683, + 12, + 683, + 33, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kK_ = + [0, + cst_examples_aides_logement_pr, + 684, + 12, + 684, + 52, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kL_ = + [0, + cst_examples_aides_logement_pr, + 684, + 12, + 684, + 52, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kM_ = + [0, + cst_examples_aides_logement_pr, + 684, + 12, + 684, + 52, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kJ_ = + [0, + cst_examples_aides_logement_pr, + 684, + 12, + 684, + 52, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kN_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_limitation_majoration_pers$1, 0]], + _kR_ = + [0, + cst_examples_aides_logement_pr, + 683, + 12, + 683, + 33, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kO_ = + [0, + cst_examples_aides_logement_pr, + 683, + 12, + 683, + 33, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kS_ = + [0, cst_CalculAidePersonnalis_eLog$1, [0, "condition_2_du_832_25", 0]], + _kV_ = + [0, + cst_examples_aides_logement_pr, + 720, + 14, + 720, + 50, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kW_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_contributions_sociales_dat, 0]], + _kT_ = + [0, + cst_examples_aides_logement_pr, + 720, + 14, + 720, + 50, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kX_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], + _kY_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], + _k1_ = + [0, + cst_examples_aides_logement_pr, + 697, + 11, + 697, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kZ_ = + [0, + cst_examples_aides_logement_pr, + 697, + 11, + 697, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _k2_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, "montant_minimal_aide_d823_24", 0]], + _k5_ = + [0, + cst_examples_aides_logement_pr, + 695, + 11, + 695, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _k3_ = + [0, + cst_examples_aides_logement_pr, + 695, + 11, + 695, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _k6_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, "montant_forfaitaire_d832_24", 0]], + _lc_ = + [0, + cst_examples_aides_logement_pr, + 690, + 12, + 690, + 46, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _k7_ = + [0, + cst_examples_aides_logement_pr, + 690, + 12, + 690, + 46, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ld_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_plafond_quivalence_loyer_l$0, 0]], + _lg_ = + [0, + cst_examples_aides_logement_pr, + 687, + 12, + 687, + 33, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _le_ = + [0, + cst_examples_aides_logement_pr, + 687, + 12, + 687, + 33, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lh_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_coefficient_r_d832_25$0, 0]], + _lk_ = + [0, + cst_examples_aides_logement_co$0, + 3941, + 14, + 3941, + 55, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _ll_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_nombre_parts_condit, 0]], + _li_ = + [0, + cst_examples_aides_logement_co$0, + 3941, + 14, + 3941, + 55, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _lo_ = + [0, + cst_examples_aides_logement_co$0, + 3937, + 14, + 3937, + 59, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _lp_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_nombre_parts_nombre, 0]], + _lm_ = + [0, + cst_examples_aides_logement_co$0, + 3937, + 14, + 3937, + 59, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _ls_ = + [0, + cst_examples_aides_logement_co$0, + 3939, + 14, + 3939, + 64, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _lt_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_nombre_parts_situat, 0]], + _lq_ = + [0, + cst_examples_aides_logement_co$0, + 3939, + 14, + 3939, + 64, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _lw_ = + [0, + cst_examples_aides_logement_co$0, + 3943, + 14, + 3943, + 43, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _lx_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_nombre_parts_r_side, 0]], + _lu_ = + [0, + cst_examples_aides_logement_co$0, + 3943, + 14, + 3943, + 43, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _lB_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_nombre_parts, [0, cst_CalculNombrePartLogementFo, 0]]], + _lC_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_nombre_parts, [0, cst_CalculNombrePartLogementFo, 0]]], + _lF_ = + [0, + cst_examples_aides_logement_pr, + 696, + 11, + 696, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lD_ = + [0, + cst_examples_aides_logement_pr, + 696, + 11, + 696, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lG_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, "montant_forfaitaire_d832_27", 0]], + _lJ_ = + [0, + cst_examples_aides_logement_pr, + 686, + 12, + 686, + 46, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lH_ = + [0, + cst_examples_aides_logement_pr, + 686, + 12, + 686, + 46, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lK_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_coefficient_multiplicateur$0, 0]], + _lO_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_min, 0]], + _lR_ = + [0, + cst_examples_aides_logement_pr, + 689, + 12, + 689, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lP_ = + [0, + cst_examples_aides_logement_pr, + 689, + 12, + 689, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lS_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_quivalence_loyer_ligible$0, 0]], + _lW_ = + [0, + cst_examples_aides_logement_pr, + 688, + 21, + 688, + 43, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lT_ = + [0, + cst_examples_aides_logement_pr, + 688, + 21, + 688, + 43, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lX_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_n_nombre_parts_d832_25$1, 0]], + _l1_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_d_pense_nette_minimale_d83$0, 0]], + _l4_ = + [0, + cst_examples_aides_logement_pr, + 721, + 14, + 721, + 61, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _l5_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_quivalence_loyer_mi, 0]], + _l2_ = + [0, + cst_examples_aides_logement_pr, + 721, + 14, + 721, + 61, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _l8_ = + [0, + cst_examples_aides_logement_co$0, + 3770, + 14, + 3770, + 75, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _l9_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_quivalence_loyer_mi$0, 0]], + _l6_ = + [0, + cst_examples_aides_logement_co$0, + 3770, + 14, + 3770, + 75, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _ma_ = + [0, + cst_examples_aides_logement_co$0, + 3768, + 14, + 3768, + 69, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _mb_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_quivalence_loyer_mi$1, 0]], + _l__ = + [0, + cst_examples_aides_logement_co$0, + 3768, + 14, + 3768, + 69, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _me_ = + [0, + cst_examples_aides_logement_co$0, + 3772, + 14, + 3772, + 70, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _mf_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_quivalence_loyer_mi$2, 0]], + _mc_ = + [0, + cst_examples_aides_logement_co$0, + 3772, + 14, + 3772, + 70, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _mg_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, + cst_calcul_quivalence_loyer_mi$3, + [0, cst_Calcul_quivalenceLoyerMini, 0]]], + _mh_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, + cst_calcul_quivalence_loyer_mi$3, + [0, cst_Calcul_quivalenceLoyerMini, 0]]], + _mm_ = + [0, + cst_examples_aides_logement_pr, + 707, + 10, + 707, + 17, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mi_ = + [0, + cst_examples_aides_logement_pr, + 707, + 10, + 707, + 17, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mn_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, "coefficient_prise_en_charge_d832_25_formule", 0]], + _mv_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_abattement_d_pense_nette_m$1, 0]], + _my_ = + [0, + cst_examples_aides_logement_pr, + 698, + 12, + 698, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mw_ = + [0, + cst_examples_aides_logement_pr, + 698, + 12, + 698, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mz_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_quivalence_loyer_minimale$0, 0]], + _mE_ = + [0, + cst_examples_aides_logement_pr, + 708, + 10, + 708, + 23, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mA_ = + [0, + cst_examples_aides_logement_pr, + 708, + 10, + 708, + 23, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mF_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, "coefficient_prise_en_charge_d832_25_coeff_arrondi", 0]], + _mR_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_aba, 0]], + _mW_ = + [0, + cst_examples_aides_logement_pr, + 709, + 10, + 709, + 15, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mS_ = + [0, + cst_examples_aides_logement_pr, + 709, + 10, + 709, + 15, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mX_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, "coefficient_prise_en_charge_d832_25_seuil", 0]], + _m9_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_con, 0]], + _na_ = + [0, + cst_examples_aides_logement_pr, + 711, + 12, + 711, + 31, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _m__ = + [0, + cst_examples_aides_logement_pr, + 711, + 12, + 711, + 31, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nb_ = + [0, cst_CalculAidePersonnalis_eLog$1, [0, cst_aide_finale_formule$9, 0]], + _nj_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_mon, 0]], + _nk_ = + [0, + cst_examples_aides_logement_pr, + 725, + 13, + 725, + 42, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nl_ = + [0, + cst_examples_aides_logement_pr, + 725, + 13, + 725, + 42, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kw_ = + [0, + cst_examples_aides_logement_co$0, + 1770, + 14, + 1770, + 33, + [0, + cst_Article_D823_16, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$75 = cst_0$360, + cst_0$76 = cst_0$360, + _ks_ = + [0, + cst_examples_aides_logement_co$0, + 1913, + 14, + 1913, + 39, + [0, + cst_Article_D823_17, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$73 = cst_0$360, + cst_0$74 = cst_0$360, + _ko_ = + [0, + cst_examples_aides_logement_co$0, + 1896, + 14, + 1896, + 36, + [0, + cst_Article_D823_16, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _kk_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_r_d, [0, cst_input0, 0]]], + _kl_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_r_d, 0]], + _km_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_r_d, [0, cst_output, 0]]], + _kn_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_r_d, 0]], + cst_0$72 = cst_0$360, + _kp_ = + [0, + cst_examples_aides_logement_pr, + 626, + 10, + 626, + 25, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kj_ = + [0, + cst_examples_aides_logement_pr, + 626, + 10, + 626, + 25, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kg_ = + [0, + cst_examples_aides_logement_co$0, + 1947, + 14, + 1947, + 42, + [0, + cst_Article_D823_17, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _kc_ = + [0, + cst_examples_aides_logement_co, + 844, + 14, + 844, + 36, + [0, + cst_Article_L832_3, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _j__ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_con, [0, cst_input0, 0]]], + _j$_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_con, 0]], + _ka_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_con, [0, cst_output, 0]]], + _kb_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_con, 0]], + cst_0$70 = cst_0$360, + cst_0$71 = cst_0$360, + _kd_ = + [0, + cst_examples_aides_logement_pr, + 625, + 10, + 625, + 36, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _j9_ = + [0, + cst_examples_aides_logement_pr, + 625, + 10, + 625, + 36, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _j3_ = + [0, + cst_examples_aides_logement_ar$0, + 2320, + 14, + 2320, + 33, + [0, + cst_Article_14, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_100000$3 = cst_100000$5, + cst_100000$4 = cst_100000$5, + _j4_ = + [0, + cst_examples_aides_logement_pr, + 594, + 10, + 594, + 22, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _j2_ = + [0, + cst_examples_aides_logement_ar$0, + 1236, + 14, + 1236, + 33, + [0, + cst_Article_14, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_100000$1 = cst_100000$5, + cst_100000$2 = cst_100000$5, + _j5_ = + [0, + cst_examples_aides_logement_pr, + 594, + 10, + 594, + 22, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _j1_ = + [0, + cst_examples_aides_logement_ar, + 423, + 14, + 423, + 33, + [0, + cst_Article_14, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_100000 = cst_100000$5, + cst_100000$0 = cst_100000$5, + _j6_ = + [0, + cst_examples_aides_logement_pr, + 594, + 10, + 594, + 22, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jX_ = + [0, + cst_examples_aides_logement_co$0, + 1864, + 14, + 1864, + 36, + [0, + cst_Article_D823_16, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _jP_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_min, [0, cst_input0, 0]]], + _jQ_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_min, 0]], + _jR_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_min, [0, cst_output, 0]]], + _jS_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_min, 0]], + _jT_ = + [0, + cst_ContributionsSocialesAides, + [0, cst_montant$2, [0, cst_input0, 0]]], + _jU_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], + _jV_ = + [0, + cst_ContributionsSocialesAides, + [0, cst_montant$2, [0, cst_output, 0]]], + _jW_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], + cst_50 = cst_50$4, + cst_0$68 = cst_0$360, + cst_0$69 = cst_0$360, + _jY_ = + [0, + cst_examples_aides_logement_pr, + 624, + 10, + 624, + 40, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jO_ = + [0, + cst_examples_aides_logement_pr, + 624, + 10, + 624, + 40, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jI_ = + [0, + cst_examples_aides_logement_ar$0, + 2313, + 14, + 2313, + 33, + [0, + cst_Article_14, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0_45$3 = cst_0_45$5, + cst_0$66 = cst_0$361, + cst_0_75$5 = cst_0_75$14, + cst_0_45$4 = cst_0_45$5, + cst_0_0045$5 = cst_0_0045$8, + cst_0_0045$6 = cst_0_0045$8, + cst_0_75$6 = cst_0_75$14, + cst_0_75$7 = cst_0_75$14, + cst_0_0068$1 = cst_0_0068$2, + cst_0_3$1 = cst_0_3$2, + cst_0_0045$7 = cst_0_0045$8, + cst_0$67 = cst_0$361, + _jJ_ = + [0, + cst_examples_aides_logement_pr, + 593, + 10, + 593, + 17, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jH_ = + [0, + cst_examples_aides_logement_ar$0, + 1229, + 14, + 1229, + 33, + [0, + cst_Article_14, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0_45$1 = cst_0_45$5, + cst_0$64 = cst_0$361, + cst_0_75$2 = cst_0_75$14, + cst_0_45$2 = cst_0_45$5, + cst_0_0045$2 = cst_0_0045$8, + cst_0_0045$3 = cst_0_0045$8, + cst_0_75$3 = cst_0_75$14, + cst_0_75$4 = cst_0_75$14, + cst_0_0068$0 = cst_0_0068$2, + cst_0_3$0 = cst_0_3$2, + cst_0_0045$4 = cst_0_0045$8, + cst_0$65 = cst_0$361, + _jK_ = + [0, + cst_examples_aides_logement_pr, + 593, + 10, + 593, + 17, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jG_ = + [0, + cst_examples_aides_logement_ar, + 416, + 14, + 416, + 33, + [0, + cst_Article_14, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0_45 = cst_0_45$5, + cst_0$62 = cst_0$361, + cst_0_75 = cst_0_75$14, + cst_0_45$0 = cst_0_45$5, + cst_0_0045 = cst_0_0045$8, + cst_0_0045$0 = cst_0_0045$8, + cst_0_75$0 = cst_0_75$14, + cst_0_75$1 = cst_0_75$14, + cst_0_0068 = cst_0_0068$2, + cst_0_3 = cst_0_3$2, + cst_0_0045$1 = cst_0_0045$8, + cst_0$63 = cst_0$361, + _jL_ = + [0, + cst_examples_aides_logement_pr, + 593, + 10, + 593, + 17, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jC_ = + [0, + cst_examples_aides_logement_co$0, + 1847, + 14, + 1847, + 36, + [0, + cst_Article_D823_16, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _jy_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_dim, [0, cst_input0, 0]]], + _jz_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_dim, 0]], + _jA_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_dim, [0, cst_output, 0]]], + _jB_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_dim, 0]], + cst_0$60 = cst_0$360, + cst_0$61 = cst_0$360, + _jD_ = + [0, + cst_examples_aides_logement_pr, + 623, + 10, + 623, + 32, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jx_ = + [0, + cst_examples_aides_logement_pr, + 623, + 10, + 623, + 32, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jr_ = + [0, + cst_examples_aides_logement_ar$0, + 2289, + 14, + 2289, + 28, + [0, + cst_Article_14, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_100$4 = cst_100$13, + cst_100$5 = cst_100$13, + _js_ = + [0, + cst_examples_aides_logement_pr, + 595, + 11, + 595, + 25, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jq_ = + [0, + cst_examples_aides_logement_ar$0, + 1202, + 14, + 1202, + 28, + [0, + cst_Article_14, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_100$2 = cst_100$13, + cst_100$3 = cst_100$13, + _jt_ = + [0, + cst_examples_aides_logement_pr, + 595, + 11, + 595, + 25, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jp_ = + [0, + cst_examples_aides_logement_ar, + 390, + 14, + 390, + 28, + [0, + cst_Article_14, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_100$0 = cst_100$13, + cst_100$1 = cst_100$13, + _ju_ = + [0, + cst_examples_aides_logement_pr, + 595, + 11, + 595, + 25, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jk_ = + [0, + cst_examples_aides_logement_ar, + 314, + 14, + 314, + 36, + [0, + cst_Article_13, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_3663 = cst_3663$1, + cst_0_085$3 = cst_0_085$5, + cst_0_085$4 = cst_0_085$5, + cst_3663$0 = cst_3663$1, + _jl_ = + [0, + cst_examples_aides_logement_pr, + 611, + 12, + 611, + 34, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ji_ = + [0, + cst_examples_aides_logement_ar$0, + 1128, + 14, + 1128, + 36, + [0, + cst_Article_13, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_3539 = cst_3539$1, + cst_0_085$1 = cst_0_085$5, + cst_0_085$2 = cst_0_085$5, + cst_3539$0 = cst_3539$1, + _jj_ = + [0, + cst_examples_aides_logement_pr, + 611, + 12, + 611, + 34, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jg_ = + [0, + cst_examples_aides_logement_ar$0, + 2214, + 14, + 2214, + 36, + [0, + cst_Article_13, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_3524 = cst_3524$1, + cst_0_085 = cst_0_085$5, + cst_0_085$0 = cst_0_085$5, + cst_3524$0 = cst_3524$1, + _jh_ = + [0, + cst_examples_aides_logement_pr, + 611, + 12, + 611, + 34, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jb_ = + [0, + cst_examples_aides_logement_co$0, + 1837, + 5, + 1837, + 50, + [0, + cst_Article_D823_16, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _jc_ = + [0, + cst_examples_aides_logement_pr, + 622, + 10, + 622, + 17, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ja_ = + [0, + cst_examples_aides_logement_co$0, + 1823, + 14, + 1823, + 36, + [0, + cst_Article_D823_16, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$59 = cst_0$360, + _jd_ = + [0, + cst_examples_aides_logement_pr, + 622, + 10, + 622, + 17, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _i$_ = + [0, + cst_examples_aides_logement_pr, + 622, + 10, + 622, + 17, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _i8_ = + [0, + cst_examples_aides_logement_co$0, + 1788, + 14, + 1788, + 28, + [0, + cst_Article_D823_16, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _i4_ = + [0, + cst_examples_aides_logement_ar, + 263, + 14, + 263, + 42, + [0, + cst_Article_10, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_3_4 = "3.4", + cst_2_5$2 = cst_2_5$5, + cst_2_5$3 = cst_2_5$5, + _i0_ = + [0, + cst_examples_aides_logement_ar, + 269, + 14, + 269, + 41, + [0, + cst_Article_10, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_4$24 = "4.", + cst_3_1 = cst_3_1$1, + cst_3_1$0 = cst_3_1$1, + cst_0$58 = cst_0$360, + _iU_ = + [0, + cst_examples_aides_logement_ar, + 546, + 5, + 547, + 34, + [0, + cst_Article_16, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_23138$0 = cst_23138$1, + cst_20165$0 = cst_20165$1, + cst_18900$0 = cst_18900$1, + _iV_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$57 = cst_0$360, + _iS_ = + [0, + cst_examples_aides_logement_ar, + 555, + 5, + 556, + 34, + [0, + cst_Article_16, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_27905 = "27905", + cst_24683 = "24683", + cst_22911 = "22911", + _iT_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_1$41 = cst_1$254, + _iQ_ = + [0, + cst_examples_aides_logement_ar, + 564, + 5, + 564, + 35, + [0, + cst_Article_16, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_4576 = "4576", + cst_31539 = "31539", + cst_4043 = "4043", + cst_27774 = "27774", + cst_3682 = "3682", + cst_25689 = "25689", + _iR_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$56 = cst_0$360, + _iO_ = + [0, + cst_examples_aides_logement_ar$0, + 1305, + 5, + 1306, + 34, + [0, + cst_Article_16, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_22355$0 = cst_22355$1, + cst_19484$0 = cst_19484$1, + cst_18261$0 = cst_18261$1, + _iP_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$55 = cst_0$360, + _iM_ = + [0, + cst_examples_aides_logement_ar$0, + 1314, + 5, + 1315, + 34, + [0, + cst_Article_16, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_26962 = "26962", + cst_23848 = "23848", + cst_22136 = "22136", + _iN_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_1$40 = cst_1$254, + _iK_ = + [0, + cst_examples_aides_logement_ar$0, + 1327, + 5, + 1327, + 35, + [0, + cst_Article_16, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_4421 = "4421", + cst_30473 = "30473", + cst_3906 = "3906", + cst_26835 = "26835", + cst_3557 = "3557", + cst_24821 = "24821", + _iL_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$54 = cst_0$360, + _iI_ = + [0, + cst_examples_aides_logement_ar$0, + 2387, + 5, + 2388, + 34, + [0, + cst_Article_16, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_22262$0 = cst_22262$1, + cst_19402$0 = cst_19402$1, + cst_18185$0 = cst_18185$1, + _iJ_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$53 = cst_0$360, + _iG_ = + [0, + cst_examples_aides_logement_ar$0, + 2396, + 5, + 2397, + 34, + [0, + cst_Article_16, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_26849 = "26849", + cst_23748 = "23748", + cst_22044 = "22044", + _iH_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_1$39 = cst_1$254, + _iE_ = + [0, + cst_examples_aides_logement_ar$0, + 2409, + 5, + 2409, + 35, + [0, + cst_Article_16, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_4403 = "4403", + cst_30345 = "30345", + cst_3890 = "3890", + cst_26723 = "26723", + cst_3542 = "3542", + cst_24717 = "24717", + _iF_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _iW_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _iA_ = + [0, + cst_examples_aides_logement_ar, + 198, + 5, + 198, + 61, + [0, + cst_Article_8, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_23138 = cst_23138$1, + cst_20165 = cst_20165$1, + cst_18900 = cst_18900$1, + _iB_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _iy_ = + [0, + cst_examples_aides_logement_ar$0, + 1073, + 5, + 1073, + 61, + [0, + cst_Article_8, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_22355 = cst_22355$1, + cst_19484 = cst_19484$1, + cst_18261 = cst_18261$1, + _iz_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _iw_ = + [0, + cst_examples_aides_logement_ar$0, + 2159, + 5, + 2159, + 61, + [0, + cst_Article_8, + [0, + cst_Article_7, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]]], + cst_22262 = cst_22262$1, + cst_19402 = cst_19402$1, + cst_18185 = cst_18185$1, + _ix_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _iC_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _it_ = + [0, + cst_examples_aides_logement_ar, + 191, + 14, + 191, + 37, + [0, + cst_Article_8, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_27765 = "27765", + cst_24198 = "24198", + cst_22680 = "22680", + _iu_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ir_ = + [0, + cst_examples_aides_logement_ar$0, + 1066, + 14, + 1066, + 37, + [0, + cst_Article_8, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_26826 = "26826", + cst_23380 = "23380", + cst_21913 = "21913", + _is_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ip_ = + [0, + cst_examples_aides_logement_ar$0, + 2152, + 14, + 2152, + 37, + [0, + cst_Article_8, + [0, + cst_Article_7, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]]], + cst_26714 = cst_26714$1, + cst_23282 = "23282", + cst_21821 = "21821", + _iq_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _iv_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _iD_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$52 = cst_0$360, + _im_ = + [0, + cst_examples_aides_logement_ar, + 106, + 5, + 107, + 34, + [0, + cst_Article_7, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_30850 = "30850", + cst_26887$0 = cst_26887$1, + cst_25200 = "25200", + _in_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$51 = cst_0$360, + _ik_ = + [0, + cst_examples_aides_logement_ar, + 116, + 5, + 117, + 34, + [0, + cst_Article_7, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_37207 = "37207", + cst_32910$0 = cst_32910$1, + cst_30548 = "30548", + _il_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_1$38 = cst_1$254, + _ii_ = + [0, + cst_examples_aides_logement_ar, + 130, + 5, + 130, + 35, + [0, + cst_Article_7, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_6101 = "6101", + cst_42052 = "42052", + cst_5390$0 = cst_5390$1, + cst_37032$0 = cst_37032$1, + cst_4909 = "4909", + cst_34252 = "34252", + _ij_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$50 = cst_0$360, + _ig_ = + [0, + cst_examples_aides_logement_ar$0, + 980, + 5, + 981, + 34, + [0, + cst_Article_7, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_29807 = "29807", + cst_25978$0 = cst_25978$1, + cst_24348 = "24348", + _ih_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$49 = cst_0$360, + _ie_ = + [0, + cst_examples_aides_logement_ar$0, + 990, + 5, + 991, + 34, + [0, + cst_Article_7, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_35949 = "35949", + cst_31797$0 = cst_31797$2, + cst_29515 = "29515", + _if_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_1$37 = cst_1$254, + _ic_ = + [0, + cst_examples_aides_logement_ar$0, + 1004, + 5, + 1004, + 35, + [0, + cst_Article_7, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_5895 = "5895", + cst_40630 = "40630", + cst_5208$0 = cst_5208$1, + cst_35780$0 = cst_35780$1, + cst_4743 = "4743", + cst_33094 = "33094", + _id_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$48 = cst_0$360, + _ia_ = + [0, + cst_examples_aides_logement_ar$0, + 2067, + 5, + 2068, + 34, + [0, + cst_Article_7, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_29682 = "29682", + cst_25859 = "25859", + cst_24246 = "24246", + _ib_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$47 = cst_0$360, + _h__ = + [0, + cst_examples_aides_logement_ar$0, + 2077, + 5, + 2078, + 34, + [0, + cst_Article_7, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_35799 = "35799", + cst_31664$0 = cst_31664$1, + cst_29392 = "29392", + _h$_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_1$36 = cst_1$254, + _h8_ = + [0, + cst_examples_aides_logement_ar$0, + 2091, + 5, + 2091, + 35, + [0, + cst_Article_7, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_5870 = "5870", + cst_40460 = "40460", + cst_5186$0 = cst_5186$1, + cst_35630$0 = cst_35630$1, + cst_4723 = "4723", + cst_32956 = cst_32956$1, + _h9_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _io_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _h3_ = + [0, + cst_examples_aides_logement_ar, + 445, + 14, + 445, + 29, + [0, + cst_Article_14, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$46 = cst_0$360, + cst_26887 = cst_26887$1, + cst_32910 = cst_32910$1, + cst_5390 = cst_5390$1, + cst_37032 = cst_37032$1, + _h4_ = + [0, + cst_examples_aides_logement_pr, + 596, + 11, + 596, + 26, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _h1_ = + [0, + cst_examples_aides_logement_ar$0, + 1259, + 14, + 1259, + 29, + [0, + cst_Article_14, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$45 = cst_0$360, + cst_25978 = cst_25978$1, + cst_31797 = cst_31797$2, + cst_5208 = cst_5208$1, + cst_35780 = cst_35780$1, + _h2_ = + [0, + cst_examples_aides_logement_pr, + 596, + 11, + 596, + 26, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hZ_ = + [0, + cst_examples_aides_logement_ar$0, + 2343, + 14, + 2343, + 29, + [0, + cst_Article_14, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$44 = cst_0$360, + cst_25869 = "25869", + cst_31664 = cst_31664$1, + cst_5186 = cst_5186$1, + cst_35630 = cst_35630$1, + _h0_ = + [0, + cst_examples_aides_logement_pr, + 596, + 11, + 596, + 26, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_1$35 = cst_1$254, + _hT_ = + [0, + cst_examples_aides_logement_ar, + 4337, + 5, + 4345, + 34, + [0, + cst_Article_46, + [0, + cst_Chapitre_IX_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_818100 = "818100", + _hU_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hR_ = + [0, + cst_examples_aides_logement_ar, + 4584, + 5, + 4586, + 28, + [0, + cst_Article_47, + [0, + cst_Chapitre_IX_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$43 = cst_0$360, + cst_527200 = "527200", + cst_755200 = "755200", + cst_1$34 = cst_1$254, + cst_900800 = "900800", + cst_2$23 = cst_2$105, + cst_921100 = "921100", + cst_3$22 = cst_3$101, + cst_956300 = "956300", + cst_4$23 = cst_4$100, + cst_991900 = "991900", + cst_5$25 = cst_5$158, + cst_1027100 = "1027100", + cst_6$45 = cst_6$92, + cst_1062600 = cst_1062600$1, + cst_6$46 = cst_6$92, + cst_35000$0 = cst_35000$1, + cst_1062600$0 = cst_1062600$1, + _hS_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_1$33 = cst_1$254, + _hP_ = + [0, + cst_examples_aides_logement_ar$0, + 213, + 5, + 221, + 34, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_805100 = "805100", + _hQ_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hN_ = + [0, + cst_examples_aides_logement_ar$0, + 461, + 5, + 463, + 28, + [0, + cst_Article_47, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$42 = cst_0$360, + cst_487000$0 = cst_487000$1, + cst_697700$0 = cst_697700$1, + cst_1$32 = cst_1$254, + cst_832200$1 = cst_832200$2, + cst_2$22 = cst_2$105, + cst_850900$0 = cst_850900$1, + cst_3$21 = cst_3$101, + cst_883400$0 = cst_883400$1, + cst_4$22 = cst_4$100, + cst_916300$0 = cst_916300$1, + cst_5$24 = cst_5$158, + cst_948800$0 = cst_948800$1, + cst_6$43 = cst_6$92, + cst_981600$1 = cst_981600$3, + cst_6$44 = cst_6$92, + cst_35000 = cst_35000$1, + cst_981600$2 = cst_981600$3, + _hO_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_1$31 = cst_1$254, + _hL_ = + [0, + cst_examples_aides_logement_ar$0, + 710, + 5, + 718, + 34, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_774200 = "774200", + _hM_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hJ_ = + [0, + cst_examples_aides_logement_ar$0, + 3195, + 5, + 3204, + 28, + [0, + cst_Article_47, + [0, + "Articles en vigueur \xc3\xa0 partir du 01 janvier 2021 - Arr\xc3\xaat\xc3\xa9 du 31 d\xc3\xa9cembre 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2021 NOR : LOGL2028351A", + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$41 = cst_0$360, + cst_427400 = "427400", + cst_612200 = "612200", + cst_1$30 = cst_1$254, + cst_699000 = "699000", + cst_2$21 = cst_2$105, + cst_743200 = "743200", + cst_3$20 = cst_3$101, + cst_785400 = "785400", + cst_4$21 = cst_4$100, + cst_828300 = "828300", + cst_5$23 = cst_5$158, + cst_871100 = "871100", + cst_913900 = "913900", + _hK_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_1$29 = cst_1$254, + _hF_ = + [0, + cst_examples_aides_logement_ar$0, + 3444, + 5, + 3452, + 34, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_758400$1 = cst_758400$2, + _hG_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_1$28 = cst_1$254, + _hE_ = + [0, + cst_examples_aides_logement_ar$0, + 2905, + 5, + 2913, + 34, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_758400$0 = cst_758400$2, + _hH_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_1$27 = cst_1$254, + _hD_ = + [0, + cst_examples_aides_logement_ar$0, + 1832, + 5, + 1840, + 34, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_758400 = cst_758400$2, + _hI_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hB_ = + [0, + cst_examples_aides_logement_ar$0, + 3706, + 5, + 3715, + 28, + [0, + cst_Article_47, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$40 = cst_0$360, + cst_396000 = "396000", + cst_567300 = "567300", + cst_1$26 = cst_1$254, + cst_639600 = "639600", + cst_2$20 = cst_2$105, + cst_684900 = "684900", + cst_3$19 = cst_3$101, + cst_738600 = "738600", + cst_4$20 = cst_4$100, + cst_793500 = "793500", + cst_5$22 = cst_5$158, + cst_848400 = "848400", + cst_903200 = "903200", + _hC_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hV_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hy_ = + [0, + cst_examples_aides_logement_ar, + 486, + 14, + 486, + 44, + [0, + cst_Article_15, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$39 = cst_0$360, + cst_494900 = "494900", + cst_709000 = "709000", + cst_1$25 = cst_1$254, + cst_845600 = "845600", + cst_2$19 = cst_2$105, + cst_864600 = "864600", + cst_3$18 = cst_3$101, + cst_897700 = "897700", + cst_4$19 = cst_4$100, + cst_931100 = "931100", + cst_5$21 = cst_5$158, + cst_964200 = "964200", + cst_6$42 = cst_6$92, + cst_997500 = cst_997500$1, + cst_32800 = "32800", + cst_997500$0 = cst_997500$1, + _hz_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hw_ = + [0, + cst_examples_aides_logement_ar$0, + 39, + 14, + 39, + 44, + [0, + cst_Article_15, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$38 = cst_0$360, + cst_487000 = cst_487000$1, + cst_697700 = cst_697700$1, + cst_1$24 = cst_1$254, + cst_832200$0 = cst_832200$2, + cst_2$18 = cst_2$105, + cst_850900 = cst_850900$1, + cst_3$17 = cst_3$101, + cst_883400 = cst_883400$1, + cst_4$18 = cst_4$100, + cst_916300 = cst_916300$1, + cst_5$20 = cst_5$158, + cst_948800 = cst_948800$1, + cst_6$41 = cst_6$92, + cst_981600 = cst_981600$3, + cst_32300 = "32300", + cst_981600$0 = cst_981600$3, + _hx_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hu_ = + [0, + cst_examples_aides_logement_ar$0, + 535, + 14, + 535, + 44, + [0, + cst_Article_15, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$37 = cst_0$360, + cst_468300 = "468300", + cst_670900 = "670900", + cst_1$23 = cst_1$254, + cst_800200 = "800200", + cst_2$17 = cst_2$105, + cst_819200 = "819200", + cst_3$16 = cst_3$101, + cst_849500 = "849500", + cst_4$17 = cst_4$100, + cst_881100 = "881100", + cst_5$19 = cst_5$158, + cst_912400 = "912400", + cst_6$40 = cst_6$92, + cst_943900 = cst_943900$1, + cst_31100 = "31100", + cst_943900$0 = cst_943900$1, + _hv_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hs_ = + [0, + cst_examples_aides_logement_ar$0, + 3257, + 14, + 3257, + 44, + [0, + cst_Article_15, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$36 = cst_0$360, + cst_458800 = "458800", + cst_657200 = "657200", + cst_1$22 = cst_1$254, + cst_783900 = "783900", + cst_2$16 = cst_2$105, + cst_801500 = "801500", + cst_3$15 = cst_3$101, + cst_832200 = cst_832200$2, + cst_4$16 = cst_4$100, + cst_863100 = "863100", + cst_5$18 = cst_5$158, + cst_893800 = "893800", + cst_6$38 = cst_6$92, + cst_924600 = cst_924600$1, + cst_6$39 = cst_6$92, + cst_30500 = cst_30500$3, + cst_924600$0 = cst_924600$1, + _ht_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hA_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hk_ = + [0, + cst_examples_aides_logement_ar, + 4423, + 5, + 4431, + 15, + [0, + cst_Article_46, + [0, + cst_Chapitre_IX_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_969$4 = cst_969$14, + cst_1938$1 = cst_1938$5, + cst_3767$4 = cst_3767$14, + _hl_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hi_ = + [0, + cst_examples_aides_logement_ar$0, + 316, + 6, + 323, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_969$2 = cst_969$14, + cst_1938 = cst_1938$5, + cst_3767$3 = cst_3767$14, + cst_6$37 = cst_6$93, + cst_969$3 = cst_969$14, + cst_1938$0 = cst_1938$5, + cst_3767$2 = cst_3767$14, + _hj_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hf_ = + [0, + cst_examples_aides_logement_ar$0, + 1934, + 6, + 1941, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_936$5 = cst_936$19, + cst_1872$1 = cst_1872$7, + cst_3640$6 = cst_3640$19, + cst_6$36 = cst_6$93, + cst_936$6 = cst_936$19, + cst_1872$2 = cst_1872$7, + cst_3640$5 = cst_3640$19, + _hg_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _he_ = + [0, + cst_examples_aides_logement_ar$0, + 814, + 6, + 821, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_936$3 = cst_936$19, + cst_1872 = cst_1872$7, + cst_3640$4 = cst_3640$19, + cst_6$35 = cst_6$93, + cst_936$4 = cst_936$19, + cst_1872$0 = cst_1872$7, + cst_3640$3 = cst_3640$19, + _hh_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hc_ = + [0, + cst_examples_aides_logement_ar$0, + 3009, + 6, + 3016, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_932$1 = cst_932$9, + cst_1864 = cst_1864$3, + cst_3625$2 = cst_3625$9, + cst_6$34 = cst_6$93, + cst_932$2 = cst_932$9, + cst_1864$0 = cst_1864$3, + cst_3625$1 = cst_3625$9, + _hd_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ha_ = + [0, + cst_examples_aides_logement_ar$0, + 3547, + 6, + 3554, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_929$1 = cst_929$9, + cst_1858 = cst_1858$3, + cst_3614$2 = cst_3614$9, + cst_6$33 = cst_6$93, + cst_929$2 = cst_929$9, + cst_1858$0 = cst_1858$3, + cst_3614$1 = cst_3614$9, + _hb_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hm_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _g9_ = + [0, + cst_examples_aides_logement_ar, + 588, + 14, + 588, + 49, + [0, + cst_Article_16, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1272$0 = cst_1272$6, + cst_2805 = cst_2805$2, + cst_5612$0 = cst_5612$8, + _g__ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _g7_ = + [0, + cst_examples_aides_logement_ar$0, + 1351, + 14, + 1351, + 49, + [0, + cst_Article_16, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1229$0 = cst_1229$6, + cst_2710 = cst_2710$2, + cst_5422$0 = cst_5422$8, + _g8_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _g5_ = + [0, + cst_examples_aides_logement_ar$0, + 2434, + 14, + 2434, + 49, + [0, + cst_Article_16, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1224$0 = cst_1224$6, + cst_2699 = cst_2699$2, + cst_5399$0 = cst_5399$8, + _g6_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _g$_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hn_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _g2_ = + [0, + cst_examples_aides_logement_ar, + 4367, + 6, + 4374, + 28, + [0, + cst_Article_46, + [0, + cst_Chapitre_IX_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_969$1 = cst_969$14, + cst_3767$1 = cst_3767$14, + _g3_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _g0_ = + [0, + cst_examples_aides_logement_ar$0, + 241, + 6, + 248, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_969 = cst_969$14, + cst_3767 = cst_3767$14, + cst_6$32 = cst_6$93, + cst_969$0 = cst_969$14, + cst_3767$0 = cst_3767$14, + _g1_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gX_ = + [0, + cst_examples_aides_logement_ar$0, + 1860, + 6, + 1867, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_936$1 = cst_936$19, + cst_3640$1 = cst_3640$19, + cst_6$31 = cst_6$93, + cst_936$2 = cst_936$19, + cst_3640$2 = cst_3640$19, + _gY_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gW_ = + [0, + cst_examples_aides_logement_ar$0, + 739, + 6, + 746, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_936 = cst_936$19, + cst_3640 = cst_3640$19, + cst_6$30 = cst_6$93, + cst_936$0 = cst_936$19, + cst_3640$0 = cst_3640$19, + _gZ_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gU_ = + [0, + cst_examples_aides_logement_ar$0, + 2935, + 6, + 2942, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_932 = cst_932$9, + cst_3625 = cst_3625$9, + cst_6$29 = cst_6$93, + cst_932$0 = cst_932$9, + cst_3625$0 = cst_3625$9, + _gV_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gS_ = + [0, + cst_examples_aides_logement_ar$0, + 3473, + 6, + 3480, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_929 = cst_929$9, + cst_3614 = cst_3614$9, + cst_6$28 = cst_6$93, + cst_929$0 = cst_929$9, + cst_3614$0 = cst_3614$9, + _gT_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _g4_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ho_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gP_ = + [0, + cst_examples_aides_logement_ar, + 239, + 14, + 239, + 49, + [0, + cst_Article_9, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1272 = cst_1272$6, + cst_5612 = cst_5612$8, + _gQ_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gN_ = + [0, + cst_examples_aides_logement_ar$0, + 1114, + 14, + 1114, + 49, + [0, + cst_Article_9, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1229 = cst_1229$6, + cst_5422 = cst_5422$8, + _gO_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gL_ = + [0, + cst_examples_aides_logement_ar$0, + 2200, + 14, + 2200, + 49, + [0, + cst_Article_9, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1224 = cst_1224$6, + cst_5399 = cst_5399$8, + _gM_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gR_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$27 = cst_6$92, + _gB_ = + [0, + cst_examples_aides_logement_ar$0, + 3311, + 5, + 3319, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_5$17 = cst_5$159, + _gC_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$26 = cst_6$92, + _gA_ = + [0, + cst_examples_aides_logement_ar$0, + 2774, + 5, + 2782, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_5$16 = cst_5$159, + _gD_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$25 = cst_6$92, + _gz_ = + [0, + cst_examples_aides_logement_ar$0, + 1700, + 5, + 1708, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_5$15 = cst_5$159, + _gE_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$24 = cst_6$92, + _gy_ = + [0, + cst_examples_aides_logement_ar$0, + 577, + 5, + 585, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_5$14 = cst_5$159, + _gF_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$23 = cst_6$92, + _gx_ = + [0, + cst_examples_aides_logement_ar$0, + 82, + 5, + 90, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_5$13 = cst_5$159, + _gG_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gH_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gq_ = + [0, + cst_examples_aides_logement_ar$0, + 2405, + 14, + 2405, + 63, + [0, + cst_Article_16, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1$21 = cst_1$254, + _gr_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gp_ = + [0, + cst_examples_aides_logement_ar$0, + 2086, + 14, + 2086, + 63, + [0, + cst_Article_7, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1$20 = cst_1$254, + _gs_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _go_ = + [0, + cst_examples_aides_logement_ar$0, + 1323, + 14, + 1323, + 63, + [0, + cst_Article_16, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1$19 = cst_1$254, + _gt_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gn_ = + [0, + cst_examples_aides_logement_ar$0, + 999, + 14, + 999, + 63, + [0, + cst_Article_7, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1$18 = cst_1$254, + _gu_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gm_ = + [0, + cst_examples_aides_logement_ar, + 125, + 14, + 125, + 63, + [0, + cst_Article_7, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1$17 = cst_1$254, + _gv_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gw_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$22 = cst_6$92, + _gc_ = + [0, + cst_examples_aides_logement_ar$0, + 3376, + 5, + 3384, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_5$12 = cst_5$159, + _gd_ = + [0, + cst_examples_aides_logement_pr, + 606, + 11, + 606, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$21 = cst_6$92, + _gb_ = + [0, + cst_examples_aides_logement_ar$0, + 2839, + 5, + 2847, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_5$11 = cst_5$159, + _ge_ = + [0, + cst_examples_aides_logement_pr, + 606, + 11, + 606, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$20 = cst_6$92, + _ga_ = + [0, + cst_examples_aides_logement_ar$0, + 1764, + 5, + 1772, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_5$10 = cst_5$159, + _gf_ = + [0, + cst_examples_aides_logement_pr, + 606, + 11, + 606, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$19 = cst_6$92, + _f$_ = + [0, + cst_examples_aides_logement_ar$0, + 642, + 5, + 650, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_5$9 = cst_5$159, + _gg_ = + [0, + cst_examples_aides_logement_pr, + 606, + 11, + 606, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$18 = cst_6$92, + _f__ = + [0, + cst_examples_aides_logement_ar$0, + 147, + 5, + 155, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_5$8 = cst_5$159, + _gh_ = + [0, + cst_examples_aides_logement_pr, + 606, + 11, + 606, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gi_ = + [0, + cst_examples_aides_logement_pr, + 606, + 11, + 606, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _f5_ = + [0, + cst_examples_aides_logement_ar$0, + 2340, + 14, + 2340, + 55, + [0, + cst_Article_14, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1$16 = cst_1$254, + _f6_ = + [0, + cst_examples_aides_logement_pr, + 606, + 11, + 606, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _f4_ = + [0, + cst_examples_aides_logement_ar$0, + 1256, + 14, + 1256, + 55, + [0, + cst_Article_14, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1$15 = cst_1$254, + _f7_ = + [0, + cst_examples_aides_logement_pr, + 606, + 11, + 606, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _f3_ = + [0, + cst_examples_aides_logement_ar, + 442, + 14, + 442, + 55, + [0, + cst_Article_14, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1$14 = cst_1$254, + _f8_ = + [0, + cst_examples_aides_logement_pr, + 606, + 11, + 606, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _f9_ = + [0, + cst_examples_aides_logement_pr, + 606, + 11, + 606, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$17 = cst_6$92, + _fT_ = + [0, + cst_examples_aides_logement_ar$0, + 3398, + 5, + 3406, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$35 = cst_0$361, + _fU_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$16 = cst_6$92, + _fS_ = + [0, + cst_examples_aides_logement_ar$0, + 2860, + 5, + 2868, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$34 = cst_0$361, + _fV_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$15 = cst_6$92, + _fR_ = + [0, + cst_examples_aides_logement_ar$0, + 1785, + 5, + 1793, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$33 = cst_0$361, + _fW_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$14 = cst_6$92, + _fQ_ = + [0, + cst_examples_aides_logement_ar$0, + 664, + 5, + 672, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$32 = cst_0$361, + _fX_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$13 = cst_6$92, + _fP_ = + [0, + cst_examples_aides_logement_ar$0, + 168, + 5, + 176, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$31 = cst_0$361, + _fY_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fZ_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fJ_ = + [0, + cst_examples_aides_logement_ar$0, + 3253, + 14, + 3253, + 42, + [0, + cst_Article_15, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$12 = cst_6$92, + _fK_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fI_ = + [0, + cst_examples_aides_logement_ar$0, + 531, + 14, + 531, + 42, + [0, + cst_Article_15, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$11 = cst_6$92, + _fL_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fH_ = + [0, + cst_examples_aides_logement_ar$0, + 35, + 14, + 35, + 42, + [0, + cst_Article_15, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$10 = cst_6$92, + _fM_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fG_ = + [0, + cst_examples_aides_logement_ar, + 482, + 14, + 482, + 42, + [0, + cst_Article_15, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_6$9 = cst_6$92, + _fN_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fO_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fA_ = + [0, + cst_examples_aides_logement_ar, + 4486, + 6, + 4493, + 28, + [0, + cst_Article_46, + [0, + cst_Chapitre_IX_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$30 = cst_0$360, + cst_0_0281$4 = cst_0_0281$5, + cst_0_0299$4 = cst_0_0299$5, + cst_1$13 = cst_1$254, + cst_0_0238$7 = cst_0_0238$8, + cst_2$15 = cst_2$105, + cst_0_0217$4 = cst_0_0217$5, + cst_3$14 = cst_3$101, + cst_0_0194$4 = cst_0_0194$5, + cst_4$15 = cst_4$100, + cst_0_018$4 = cst_0_018$5, + cst_5$7 = cst_5$158, + cst_0_0169$4 = cst_0_0169$5, + cst_6$8 = cst_6$92, + cst_0_0162$4 = cst_0_0162$5, + cst_7 = cst_7$1, + cst_0_0167 = cst_0_0167$1, + cst_7$0 = cst_7$1, + cst_0_0006$2 = cst_0_0006$3, + cst_0_0167$0 = cst_0_0167$1, + _fB_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fu_ = + [0, + cst_examples_aides_logement_ar$0, + 3618, + 6, + 3625, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$29 = cst_0$360, + cst_0_0281$3 = cst_0_0281$5, + cst_0_0299$3 = cst_0_0299$5, + cst_1$12 = cst_1$254, + cst_0_0238$6 = cst_0_0238$8, + cst_2$14 = cst_2$105, + cst_0_0217$3 = cst_0_0217$5, + cst_3$13 = cst_3$101, + cst_0_0194$3 = cst_0_0194$5, + cst_4$14 = cst_4$100, + cst_0_018$3 = cst_0_018$5, + cst_5$6 = cst_5$158, + cst_0_0169$3 = cst_0_0169$5, + cst_0_0162$3 = cst_0_0162$5, + _fv_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ft_ = + [0, + cst_examples_aides_logement_ar$0, + 3079, + 6, + 3086, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$28 = cst_0$360, + cst_0_0281$2 = cst_0_0281$5, + cst_0_0299$2 = cst_0_0299$5, + cst_1$11 = cst_1$254, + cst_0_0238$5 = cst_0_0238$8, + cst_2$13 = cst_2$105, + cst_0_0217$2 = cst_0_0217$5, + cst_3$12 = cst_3$101, + cst_0_0194$2 = cst_0_0194$5, + cst_4$13 = cst_4$100, + cst_0_018$2 = cst_0_018$5, + cst_5$5 = cst_5$158, + cst_0_0169$2 = cst_0_0169$5, + cst_0_0162$2 = cst_0_0162$5, + _fw_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fs_ = + [0, + cst_examples_aides_logement_ar$0, + 2004, + 6, + 2011, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$27 = cst_0$360, + cst_0_0281$1 = cst_0_0281$5, + cst_0_0299$1 = cst_0_0299$5, + cst_1$10 = cst_1$254, + cst_0_0238$4 = cst_0_0238$8, + cst_2$12 = cst_2$105, + cst_0_0217$1 = cst_0_0217$5, + cst_3$11 = cst_3$101, + cst_0_0194$1 = cst_0_0194$5, + cst_4$12 = cst_4$100, + cst_0_018$1 = cst_0_018$5, + cst_5$4 = cst_5$158, + cst_0_0169$1 = cst_0_0169$5, + cst_0_0162$1 = cst_0_0162$5, + _fx_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fr_ = + [0, + cst_examples_aides_logement_ar$0, + 885, + 6, + 892, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$26 = cst_0$360, + cst_0_0281$0 = cst_0_0281$5, + cst_0_0299$0 = cst_0_0299$5, + cst_1$9 = cst_1$254, + cst_0_0238$3 = cst_0_0238$8, + cst_2$11 = cst_2$105, + cst_0_0217$0 = cst_0_0217$5, + cst_3$10 = cst_3$101, + cst_0_0194$0 = cst_0_0194$5, + cst_4$11 = cst_4$100, + cst_0_018$0 = cst_0_018$5, + cst_5$3 = cst_5$158, + cst_0_0169$0 = cst_0_0169$5, + cst_0_0162$0 = cst_0_0162$5, + _fy_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fq_ = + [0, + cst_examples_aides_logement_ar$0, + 387, + 6, + 394, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$25 = cst_0$360, + cst_0_0281 = cst_0_0281$5, + cst_0_0299 = cst_0_0299$5, + cst_1$8 = cst_1$254, + cst_0_0238$2 = cst_0_0238$8, + cst_2$10 = cst_2$105, + cst_0_0217 = cst_0_0217$5, + cst_3$9 = cst_3$101, + cst_0_0194 = cst_0_0194$5, + cst_4$10 = cst_4$100, + cst_0_018 = cst_0_018$5, + cst_5$2 = cst_5$158, + cst_0_0169 = cst_0_0169$5, + cst_0_0162 = cst_0_0162$5, + _fz_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fC_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fl_ = + [0, + cst_examples_aides_logement_ar$0, + 2259, + 29, + 2259, + 55, + [0, + cst_Article_14, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$24 = cst_0$360, + cst_0_0283$1 = cst_0_0283$2, + cst_0_0315$1 = cst_0_0315$2, + cst_1$7 = cst_1$254, + cst_0_027$1 = cst_0_027$2, + cst_2$9 = cst_2$105, + cst_0_0238$1 = cst_0_0238$8, + cst_3$8 = cst_3$101, + cst_0_0201$1 = cst_0_0201$2, + cst_4$9 = cst_4$100, + cst_0_0185$1 = cst_0_0185$2, + cst_5$1 = cst_5$158, + cst_0_0179$1 = cst_0_0179$2, + cst_6$6 = cst_6$92, + cst_0_0173$3 = cst_0_0173$5, + cst_6$7 = cst_6$92, + cst_0_0006$1 = cst_0_0006$3, + cst_0_0173$4 = cst_0_0173$5, + _fm_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fk_ = + [0, + cst_examples_aides_logement_ar$0, + 1172, + 29, + 1172, + 55, + [0, + cst_Article_14, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$23 = cst_0$360, + cst_0_0283$0 = cst_0_0283$2, + cst_0_0315$0 = cst_0_0315$2, + cst_1$6 = cst_1$254, + cst_0_027$0 = cst_0_027$2, + cst_2$8 = cst_2$105, + cst_0_0238$0 = cst_0_0238$8, + cst_3$7 = cst_3$101, + cst_0_0201$0 = cst_0_0201$2, + cst_4$8 = cst_4$100, + cst_0_0185$0 = cst_0_0185$2, + cst_5$0 = cst_5$158, + cst_0_0179$0 = cst_0_0179$2, + cst_6$4 = cst_6$92, + cst_0_0173$1 = cst_0_0173$5, + cst_6$5 = cst_6$92, + cst_0_0006$0 = cst_0_0006$3, + cst_0_0173$2 = cst_0_0173$5, + _fn_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fj_ = + [0, + cst_examples_aides_logement_ar, + 360, + 29, + 360, + 55, + [0, + cst_Article_14, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$22 = cst_0$360, + cst_0_0283 = cst_0_0283$2, + cst_0_0315 = cst_0_0315$2, + cst_1$5 = cst_1$254, + cst_0_027 = cst_0_027$2, + cst_2$7 = cst_2$105, + cst_0_0238 = cst_0_0238$8, + cst_3$6 = cst_3$101, + cst_0_0201 = cst_0_0201$2, + cst_4$7 = cst_4$100, + cst_0_0185 = cst_0_0185$2, + cst_5 = cst_5$158, + cst_0_0179 = cst_0_0179$2, + cst_6$2 = cst_6$92, + cst_0_0173 = cst_0_0173$5, + cst_6$3 = cst_6$92, + cst_0_0006 = cst_0_0006$3, + cst_0_0173$0 = cst_0_0173$5, + _fo_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fp_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ff_ = + [0, + cst_examples_aides_logement_co$0, + 4219, + 14, + 4219, + 29, + [0, + "Article D842-2", + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_3$5 = cst_3$102, + cst_2$6 = cst_2$106, + _fb_ = + [0, + cst_examples_aides_logement_ar, + 298, + 14, + 298, + 42, + [0, + "Article 12", + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$21 = cst_0$360, + cst_1000 = cst_1000$5, + cst_1000$0 = cst_1000$5, + _e6_ = + [0, + cst_examples_aides_logement_ar$0, + 2196, + 14, + 2196, + 55, + [0, + cst_Article_9, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + _e7_ = + [0, + cst_examples_aides_logement_pr, + 605, + 11, + 605, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _e5_ = + [0, + cst_examples_aides_logement_ar$0, + 1110, + 14, + 1110, + 55, + [0, + cst_Article_9, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + _e8_ = + [0, + cst_examples_aides_logement_pr, + 605, + 11, + 605, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _e4_ = + [0, + cst_examples_aides_logement_ar, + 235, + 14, + 235, + 55, + [0, + cst_Article_9, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + _e9_ = + [0, + cst_examples_aides_logement_pr, + 605, + 11, + 605, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _e0_ = + [0, + cst_examples_aides_logement_ar, + 285, + 14, + 285, + 41, + [0, + "Article 11", + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_500 = cst_500$4, + _eU_ = + [0, + cst_examples_aides_logement_pr, + 629, + 14, + 629, + 50, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _eQ_ = + [0, + cst_examples_aides_logement_co$0, + 1887, + 14, + 1887, + 29, + [0, + cst_Article_D823_16, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0_98 = cst_0_98$1, + _eR_ = + [0, + cst_examples_aides_logement_pr, + 597, + 11, + 597, + 26, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _eP_ = + [0, + cst_examples_aides_logement_pr, + 597, + 11, + 597, + 26, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _eS_ = [0, cst_CalculAidePersonnalis_eLog$0, [0, "fraction_l832_3", 0]], + _eV_ = + [0, + cst_examples_aides_logement_pr, + 629, + 14, + 629, + 50, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _eW_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_contributions_sociales_dat, 0]], + _eT_ = + [0, + cst_examples_aides_logement_pr, + 629, + 14, + 629, + 50, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _eX_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], + _eY_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], + _e1_ = + [0, + cst_examples_aides_logement_pr, + 600, + 11, + 600, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _eZ_ = + [0, + cst_examples_aides_logement_pr, + 600, + 11, + 600, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _e2_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, "montant_forfaitaire_d823_16", 0]], + _e__ = + [0, + cst_examples_aides_logement_pr, + 605, + 11, + 605, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _e3_ = + [0, + cst_examples_aides_logement_pr, + 605, + 11, + 605, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _e$_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, "multiplicateur_majoration_charges_d823_16", 0]], + _fc_ = + [0, + cst_examples_aides_logement_pr, + 601, + 11, + 601, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fa_ = + [0, + cst_examples_aides_logement_pr, + 601, + 11, + 601, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fd_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, "montant_minimal_aide_d823_16", 0]], + _fg_ = + [0, + cst_examples_aides_logement_pr, + 574, + 10, + 574, + 31, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fe_ = + [0, + cst_examples_aides_logement_pr, + 574, + 10, + 574, + 31, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fh_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, "loyer_principal_avec_r\xc3\xa9duction_meubl\xc3\xa9", 0]], + _fD_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fi_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fE_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_taux_composition_familiale$0, 0]], + _f0_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fF_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _f1_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, "multiplicateur_majoration_r0", 0]], + _gj_ = + [0, + cst_examples_aides_logement_pr, + 606, + 11, + 606, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _f2_ = + [0, + cst_examples_aides_logement_pr, + 606, + 11, + 606, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gk_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, "multiplicateur_majoration_loyer_r\xc3\xa9f\xc3\xa9rence", 0]], + _gI_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gl_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gJ_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, "multiplicateur_majoration_plafond_loyer_d823_16_2", 0]], + _hp_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gK_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hq_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_montant_forfaitaire_charge$2, 0]], + _hW_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hr_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hX_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, "abattement_forfaitaire_d823_17", 0]], + _h5_ = + [0, + cst_examples_aides_logement_pr, + 596, + 11, + 596, + 26, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hY_ = + [0, + cst_examples_aides_logement_pr, + 596, + 11, + 596, + 26, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _h6_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, "loyer_r\xc3\xa9f\xc3\xa9rence", 0]], + _iX_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _h7_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _iY_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_plafond_loyer_d823_16_2$0, 0]], + _i1_ = + [0, + cst_examples_aides_logement_pr, + 599, + 11, + 599, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _iZ_ = + [0, + cst_examples_aides_logement_pr, + 599, + 11, + 599, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _i2_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, "plafond_suppression_d823_16", 0]], + _i5_ = + [0, + cst_examples_aides_logement_pr, + 598, + 11, + 598, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _i3_ = + [0, + cst_examples_aides_logement_pr, + 598, + 11, + 598, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _i6_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, "plafond_d\xc3\xa9gressivit\xc3\xa9_d823_16", 0]], + _i9_ = + [0, + cst_examples_aides_logement_pr, + 591, + 11, + 591, + 25, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _i7_ = + [0, + cst_examples_aides_logement_pr, + 591, + 11, + 591, + 25, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _i__ = + [0, cst_CalculAidePersonnalis_eLog$0, [0, "loyer_\xc3\xa9ligible", 0]], + _je_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_dim, 0]], + _jm_ = + [0, + cst_examples_aides_logement_pr, + 611, + 12, + 611, + 34, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jf_ = + [0, + cst_examples_aides_logement_pr, + 611, + 12, + 611, + 34, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jn_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_participation_minimale$0, 0]], + _jv_ = + [0, + cst_examples_aides_logement_pr, + 595, + 11, + 595, + 25, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jo_ = + [0, + cst_examples_aides_logement_pr, + 595, + 11, + 595, + 25, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jw_ = [0, cst_CalculAidePersonnalis_eLog$0, [0, "rapport_loyers", 0]], + _jE_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_min, 0]], + _jM_ = + [0, + cst_examples_aides_logement_pr, + 593, + 10, + 593, + 17, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jF_ = + [0, + cst_examples_aides_logement_pr, + 593, + 10, + 593, + 17, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jN_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, "taux_loyer_\xc3\xa9ligible_formule", 0]], + _jZ_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_con, 0]], + _j7_ = + [0, + cst_examples_aides_logement_pr, + 594, + 10, + 594, + 22, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _j0_ = + [0, + cst_examples_aides_logement_pr, + 594, + 10, + 594, + 22, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _j8_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, "taux_loyer_\xc3\xa9ligible_taux_arrondi", 0]], + _ke_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_r_d, 0]], + _kh_ = + [0, + cst_examples_aides_logement_pr, + 603, + 11, + 603, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kf_ = + [0, + cst_examples_aides_logement_pr, + 603, + 11, + 603, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ki_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, "taux_prise_compte_ressources", 0]], + _kq_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_mon, 0]], + _kt_ = + [0, + cst_examples_aides_logement_pr, + 613, + 12, + 613, + 37, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kr_ = + [0, + cst_examples_aides_logement_pr, + 613, + 12, + 613, + 37, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ku_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_participation_personnelle$0, 0]], + _kx_ = + [0, + cst_examples_aides_logement_pr, + 618, + 12, + 618, + 31, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kv_ = + [0, + cst_examples_aides_logement_pr, + 618, + 12, + 618, + 31, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ky_ = + [0, cst_CalculAidePersonnalis_eLog$0, [0, cst_aide_finale_formule$9, 0]], + cst_2_5$4 = cst_2_5$5, + _kz_ = + [0, + cst_examples_aides_logement_co$0, + 1840, + 13, + 1840, + 74, + [0, + cst_Article_D823_16, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _kI_ = + [0, + cst_examples_aides_logement_co$0, + 1840, + 13, + 1840, + 74, + [0, + cst_Article_D823_16, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0_98$0 = cst_0_98$1, + cst_0_9 = cst_0_9$3, + _kA_ = + [0, + cst_examples_aides_logement_co, + 854, + 13, + 854, + 61, + [0, + cst_Article_L832_3, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _kH_ = + [0, + cst_examples_aides_logement_co, + 854, + 13, + 854, + 61, + [0, + cst_Article_L832_3, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _kB_ = + [0, + cst_examples_aides_logement_pr, + 640, + 13, + 640, + 53, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kG_ = + [0, + cst_examples_aides_logement_pr, + 640, + 13, + 640, + 53, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$77 = cst_0$360, + _kC_ = + [0, + cst_examples_aides_logement_pr, + 633, + 13, + 633, + 43, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kF_ = + [0, + cst_examples_aides_logement_pr, + 633, + 13, + 633, + 43, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kD_ = + [0, + cst_examples_aides_logement_pr, + 632, + 13, + 632, + 42, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kE_ = + [0, + cst_examples_aides_logement_pr, + 632, + 13, + 632, + 42, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$20 = cst_0$360, + cst_100 = cst_100$13, + cst_49 = "49", + cst_0_01 = cst_0_01$1, + _eB_ = [7, 0], + _eC_ = [5, 0], + _eD_ = [4, 0], + _eE_ = [3, 0], + _eF_ = [2, 0], + _eG_ = [1, 0], + _eH_ = [0, 0], + _eI_ = [6, 0], + _eJ_ = + [0, + cst_examples_aides_logement_pr$3, + 34, + 5, + 43, + 6, + [0, + cst_Article_1, + [0, + cst_D_cret_n_2018_1173_du_19_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1003 = "1003", + _eK_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _ey_ = [8, 0], + _ez_ = + [0, + cst_examples_aides_logement_pr$3, + 52, + 5, + 54, + 6, + [0, + cst_Article_1, + [0, + cst_D_cret_n_2018_1173_du_19_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_757 = "757", + _eA_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _eo_ = [7, 0], + _ep_ = [5, 0], + _eq_ = [4, 0], + _er_ = [3, 0], + _es_ = [2, 0], + _et_ = [1, 0], + _eu_ = [0, 0], + _ev_ = [6, 0], + _ew_ = + [0, + cst_examples_aides_logement_pr$3, + 73, + 5, + 82, + 6, + [0, + cst_Article_1, + [0, + cst_D_cret_n_2019_1387_du_18_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1015 = "1015", + _ex_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _el_ = [8, 0], + _em_ = + [0, + cst_examples_aides_logement_pr$3, + 91, + 5, + 93, + 6, + [0, + cst_Article_1, + [0, + cst_D_cret_n_2019_1387_du_18_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_766 = "766", + _en_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _eb_ = [7, 0], + _ec_ = [5, 0], + _ed_ = [4, 0], + _ee_ = [3, 0], + _ef_ = [2, 0], + _eg_ = [1, 0], + _eh_ = [0, 0], + _ei_ = [6, 0], + _ej_ = + [0, + cst_examples_aides_logement_pr$3, + 112, + 5, + 121, + 6, + [0, + cst_Article_1, + [0, + cst_D_cret_n_2020_1598_du_16_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1025 = "1025", + _ek_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _d__ = [8, 0], + _d$_ = + [0, + cst_examples_aides_logement_pr$3, + 130, + 5, + 132, + 6, + [0, + cst_Article_1, + [0, + cst_D_cret_n_2020_1598_du_16_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_774 = "774", + _ea_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _d0_ = [7, 0], + _d1_ = [5, 0], + _d2_ = [4, 0], + _d3_ = [3, 0], + _d4_ = [2, 0], + _d5_ = [1, 0], + _d6_ = [0, 0], + _d7_ = [6, 0], + _d8_ = + [0, + cst_examples_aides_logement_pr$3, + 151, + 5, + 160, + 6, + [0, + cst_Article_1, + [0, + cst_D_cret_n_2021_1741_du_22_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1057 = "1057", + _d9_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _dX_ = [8, 0], + _dY_ = + [0, + cst_examples_aides_logement_pr$3, + 170, + 5, + 172, + 6, + [0, + cst_Article_1, + [0, + cst_D_cret_n_2021_1741_du_22_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_798 = "798", + _dZ_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _dN_ = [7, 0], + _dO_ = [5, 0], + _dP_ = [4, 0], + _dQ_ = [3, 0], + _dR_ = [2, 0], + _dS_ = [1, 0], + _dT_ = [0, 0], + _dU_ = [6, 0], + _dV_ = + [0, + cst_examples_aides_logement_pr$3, + 191, + 5, + 200, + 6, + [0, + cst_Article_2, + [0, + cst_Arr_t_du_19_avril_2022_rel, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1085 = "1085", + _dW_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _dK_ = [8, 0], + _dL_ = + [0, + cst_examples_aides_logement_pr$3, + 209, + 5, + 211, + 6, + [0, + cst_Article_2, + [0, + cst_Arr_t_du_19_avril_2022_rel, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_819 = "819", + _dM_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _dA_ = [7, 0], + _dB_ = [5, 0], + _dC_ = [4, 0], + _dD_ = [3, 0], + _dE_ = [2, 0], + _dF_ = [1, 0], + _dG_ = [0, 0], + _dH_ = [6, 0], + _dI_ = + [0, + cst_examples_aides_logement_pr$3, + 230, + 5, + 239, + 6, + [0, + cst_Article_2, + [0, + cst_Arr_t_du_29_juillet_2022_r, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1107 = "1107", + _dJ_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _dx_ = [8, 0], + _dy_ = + [0, + cst_examples_aides_logement_pr$3, + 248, + 5, + 250, + 6, + [0, + cst_Article_2, + [0, + cst_Arr_t_du_29_juillet_2022_r, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_835 = "835", + _dz_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _dn_ = [7, 0], + _do_ = [5, 0], + _dp_ = [4, 0], + _dq_ = [3, 0], + _dr_ = [2, 0], + _ds_ = [1, 0], + _dt_ = [0, 0], + _du_ = [6, 0], + _dv_ = + [0, + cst_examples_aides_logement_pr$3, + 270, + 5, + 279, + 6, + [0, + cst_Article_1, + [0, + cst_D_cret_n_2022_1608_du_22_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1127 = "1127", + _dw_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _dk_ = [8, 0], + _dl_ = + [0, + cst_examples_aides_logement_pr$3, + 288, + 5, + 290, + 6, + [0, + cst_Article_1, + [0, + cst_D_cret_n_2022_1608_du_22_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_851 = "851", + _dm_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _eL_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _dj_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _eM_ = [0, cst_Smic, [0, cst_brut_horaire$0, 0]], + _eN_ = + [0, + cst_examples_aides_logement_pr$3, + 16, + 13, + 16, + 42, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _eO_ = + [0, + cst_examples_aides_logement_pr$3, + 16, + 13, + 16, + 42, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _dg_ = + [0, + cst_examples_aides_logement_pr$4, + 36, + 14, + 36, + 27, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _dh_ = + [0, + cst_examples_aides_logement_pr$4, + 33, + 12, + 33, + 25, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _df_ = + [0, + cst_examples_aides_logement_pr$4, + 33, + 12, + 33, + 25, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _di_ = [0, cst_V_rification_geSup_rieur, [0, cst_est_sup_rieur$0, 0]], + _dc_ = + [0, + cst_examples_aides_logement_pr$4, + 25, + 14, + 25, + 35, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _dd_ = + [0, + cst_examples_aides_logement_pr$4, + 22, + 12, + 22, + 33, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _db_ = + [0, + cst_examples_aides_logement_pr$4, + 22, + 12, + 22, + 33, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _de_ = + [0, cst_V_rification_geInf_rieurOu, [0, cst_est_inf_rieur_ou_gal$0, 0]], + _c7_ = + [0, + cst_examples_aides_logement_ba, + 32, + 5, + 33, + 33, + [0, + "Instruction minist\xc3\xa9rielle N\xc2\xb0DSS/SD2B/2019/65 du 25 mars 2019 relative \xc3\xa0 la revalorisation au 1er avril 2019 des prestations familiales servies en m\xc3\xa9tropole", + [0, cst_Montant_de_la_base_mensuel, 0]]], + cst_41316 = "41316", + _c8_ = + [0, + cst_examples_aides_logement_ba, + 6, + 12, + 6, + 19, + [0, cst_Montant_de_la_base_mensuel, 0]], + _c5_ = + [0, + cst_examples_aides_logement_ba, + 52, + 5, + 53, + 33, + [0, + "Instruction interminist\xc3\xa9rielle no DSS/SD2B/2020/33 du 18 f\xc3\xa9vrier 2020 relative \xc3\xa0 la revalorisation au 1er avril 2020 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte", + [0, cst_Montant_de_la_base_mensuel, 0]]], + cst_41440 = "41440", + _c6_ = + [0, + cst_examples_aides_logement_ba, + 6, + 12, + 6, + 19, + [0, cst_Montant_de_la_base_mensuel, 0]], + _c3_ = + [0, + cst_examples_aides_logement_ba, + 68, + 5, + 69, + 33, + [0, + "Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2021/65 du 19 mars 2021 relative \xc3\xa0 la revalorisation au 1er avril 2021 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte", + [0, cst_Montant_de_la_base_mensuel, 0]]], + cst_41481 = "41481", + _c4_ = + [0, + cst_examples_aides_logement_ba, + 6, + 12, + 6, + 19, + [0, cst_Montant_de_la_base_mensuel, 0]], + _c1_ = + [0, + cst_examples_aides_logement_ba, + 86, + 5, + 86, + 34, + [0, + "Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2022/82 du 28 mars 2022 relative \xc3\xa0 la revalorisation au 1er avril 2022 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte", + [0, cst_Montant_de_la_base_mensuel, 0]]], + cst_42228 = "42228", + _c2_ = + [0, + cst_examples_aides_logement_ba, + 6, + 12, + 6, + 19, + [0, cst_Montant_de_la_base_mensuel, 0]], + _c9_ = + [0, + cst_examples_aides_logement_ba, + 6, + 12, + 6, + 19, + [0, cst_Montant_de_la_base_mensuel, 0]], + _c0_ = + [0, + cst_examples_aides_logement_ba, + 6, + 12, + 6, + 19, + [0, cst_Montant_de_la_base_mensuel, 0]], + _c__ = [0, cst_BaseMensuelleAllocationsFa, [0, cst_montant$2, 0]], + _c$_ = + [0, + cst_examples_aides_logement_ba, + 10, + 13, + 10, + 42, + [0, cst_Montant_de_la_base_mensuel, 0]], + _da_ = + [0, + cst_examples_aides_logement_ba, + 10, + 13, + 10, + 42, + [0, cst_Montant_de_la_base_mensuel, 0]], + _cV_ = + [0, + cst_examples_aides_logement_co$0, + 2242, + 14, + 2242, + 28, + [0, + cst_Article_R824_2, + [0, + cst_Section_1_Seuils_de_consti, + [0, + cst_Chapitre_IV_Impay_s_de_d_p, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0$19 = cst_0$360, + _cW_ = + [0, + cst_examples_aides_logement_pr, + 1138, + 12, + 1138, + 26, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cU_ = + [0, + cst_examples_aides_logement_co$0, + 2179, + 14, + 2179, + 28, + [0, + cst_Article_R824_1, + [0, + cst_Section_1_Seuils_de_consti, + [0, + cst_Chapitre_IV_Impay_s_de_d_p, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0$18 = cst_0$360, + _cX_ = + [0, + cst_examples_aides_logement_pr, + 1138, + 12, + 1138, + 26, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cP_ = + [0, + cst_examples_aides_logement_co$0, + 2184, + 20, + 2184, + 55, + [0, + cst_Article_R824_1, + [0, + cst_Section_1_Seuils_de_consti, + [0, + cst_Chapitre_IV_Impay_s_de_d_p, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0$16 = cst_0$360, + cst_0$17 = cst_0$360, + cst_2$5 = cst_2$106, + _cQ_ = + [0, + cst_examples_aides_logement_pr, + 1133, + 11, + 1133, + 43, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cN_ = + [0, + cst_examples_aides_logement_co$0, + 2200, + 20, + 2200, + 51, + [0, + cst_Article_R824_1, + [0, + cst_Section_1_Seuils_de_consti, + [0, + cst_Chapitre_IV_Impay_s_de_d_p, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0$14 = cst_0$360, + cst_0$15 = cst_0$360, + cst_2$4 = cst_2$106, + _cO_ = + [0, + cst_examples_aides_logement_pr, + 1133, + 11, + 1133, + 43, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cL_ = + [0, + cst_examples_aides_logement_co$0, + 2266, + 7, + 2266, + 42, + [0, + cst_Article_R824_2, + [0, + cst_Section_1_Seuils_de_consti, + [0, + cst_Chapitre_IV_Impay_s_de_d_p, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_6$1 = cst_6$93, + cst_1$4 = cst_1$255, + cst_2$3 = cst_2$106, + cst_0$13 = cst_0$360, + _cM_ = + [0, + cst_examples_aides_logement_pr, + 1133, + 11, + 1133, + 43, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cJ_ = + [0, + cst_examples_aides_logement_co$0, + 2294, + 7, + 2294, + 51, + [0, + cst_Article_R824_2, + [0, + cst_Section_1_Seuils_de_consti, + [0, + cst_Chapitre_IV_Impay_s_de_d_p, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_6$0 = cst_6$93, + cst_1$3 = cst_1$255, + cst_2$2 = cst_2$106, + cst_0$12 = cst_0$360, + _cK_ = + [0, + cst_examples_aides_logement_pr, + 1133, + 11, + 1133, + 43, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cE_ = + [0, + cst_examples_aides_logement_co$0, + 2223, + 14, + 2223, + 36, + [0, + cst_Article_R824_1, + [0, + cst_Section_1_Seuils_de_consti, + [0, + cst_Chapitre_IV_Impay_s_de_d_p, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _cF_ = + [0, + cst_examples_aides_logement_pr, + 1136, + 11, + 1136, + 33, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cC_ = + [0, + cst_examples_aides_logement_co$0, + 2319, + 14, + 2319, + 36, + [0, + cst_Article_R824_2, + [0, + cst_Section_1_Seuils_de_consti, + [0, + cst_Chapitre_IV_Impay_s_de_d_p, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_12$1 = cst_12$4, + _cD_ = + [0, + cst_examples_aides_logement_pr, + 1136, + 11, + 1136, + 33, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cw_ = + [0, + cst_examples_aides_logement_co$0, + 2310, + 14, + 2310, + 36, + [0, + cst_Article_R824_2, + [0, + cst_Section_1_Seuils_de_consti, + [0, + cst_Chapitre_IV_Impay_s_de_d_p, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _cx_ = + [0, + cst_examples_aides_logement_pr, + 1135, + 11, + 1135, + 33, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cv_ = + [0, + cst_examples_aides_logement_co$0, + 2214, + 14, + 2214, + 36, + [0, + cst_Article_R824_1, + [0, + cst_Section_1_Seuils_de_consti, + [0, + cst_Chapitre_IV_Impay_s_de_d_p, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _cy_ = + [0, + cst_examples_aides_logement_pr, + 1135, + 11, + 1135, + 33, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cr_ = + [0, + cst_examples_aides_logement_co$0, + 2342, + 14, + 2342, + 36, + [0, + "Article R824-3", + [0, + cst_Section_1_Seuils_de_consti, + [0, + cst_Chapitre_IV_Impay_s_de_d_p, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _cm_ = [0, 0], + _cn_ = [1, 0], + _co_ = [1, 0], + _cp_ = [0, 0], + _cq_ = [0, 0], + _cs_ = + [0, + cst_examples_aides_logement_pr, + 1134, + 11, + 1134, + 33, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cl_ = + [0, + cst_examples_aides_logement_pr, + 1134, + 11, + 1134, + 33, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ct_ = + [0, cst_Impay_D_penseLogement, [0, "mode_occupation_impay\xc3\xa9", 0]], + _cz_ = + [0, + cst_examples_aides_logement_pr, + 1135, + 11, + 1135, + 33, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cu_ = + [0, + cst_examples_aides_logement_pr, + 1135, + 11, + 1135, + 33, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cA_ = + [0, cst_Impay_D_penseLogement, [0, "d\xc3\xa9pense_logement_brute", 0]], + _cG_ = + [0, + cst_examples_aides_logement_pr, + 1136, + 11, + 1136, + 33, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cB_ = + [0, + cst_examples_aides_logement_pr, + 1136, + 11, + 1136, + 33, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cH_ = + [0, cst_Impay_D_penseLogement, [0, "d\xc3\xa9pense_logement_nette", 0]], + _cR_ = + [0, + cst_examples_aides_logement_pr, + 1133, + 11, + 1133, + 43, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cI_ = + [0, + cst_examples_aides_logement_pr, + 1133, + 11, + 1133, + 43, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cS_ = + [0, + cst_Impay_D_penseLogement, + [0, "seuil_impay\xc3\xa9_d\xc3\xa9pense_de_logement", 0]], + _cY_ = + [0, + cst_examples_aides_logement_pr, + 1138, + 12, + 1138, + 26, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cT_ = + [0, + cst_examples_aides_logement_pr, + 1138, + 12, + 1138, + 26, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cZ_ = [0, cst_Impay_D_penseLogement, [0, cst_montant_impay$0, 0]], + _ch_ = + [0, + cst_examples_aides_logement_co$1, + 119, + 5, + 119, + 42, + [0, + cst_Article_L161_17_2, + [0, + cst_Paragraphe_1_Information_e, + [0, + cst_Sous_section_4_Assurance_v, + [0, + cst_Section_1_B_n_ficiaires, + [0, + cst_Chapitre_1er_Dispositions_, + [0, + cst_Titre_VI_Dispositions_rela, + [0, + cst_Titre_III_Titre_III_Dispos, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], + _ci_ = + [0, + cst_examples_aides_logement_pr, + 1118, + 12, + 1118, + 31, + [0, + cst_Date_d_ouverture_des_droit, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cf_ = + [0, + cst_examples_aides_logement_co$1, + 256, + 5, + 256, + 41, + [0, + cst_Article_D161_2_1_9, + [0, + cst_Paragraphe_2_Ouverture_du_, + [0, + cst_Sous_section_4_Assurance_v, + [0, + cst_Section_1_B_n_ficiaires, + [0, + cst_Chapitre_1er_Dispositions_, + [0, + cst_Titre_VI_Dispositions_rela, + [0, + cst_Livre_I_G_n_ralit_s_Dispos, + [0, + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], + _cg_ = + [0, + cst_examples_aides_logement_pr, + 1118, + 12, + 1118, + 31, + [0, + cst_Date_d_ouverture_des_droit, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cd_ = + [0, + cst_examples_aides_logement_co$1, + 266, + 5, + 267, + 42, + [0, + cst_Article_D161_2_1_9, + [0, + cst_Paragraphe_2_Ouverture_du_, + [0, + cst_Sous_section_4_Assurance_v, + [0, + cst_Section_1_B_n_ficiaires, + [0, + cst_Chapitre_1er_Dispositions_, + [0, + cst_Titre_VI_Dispositions_rela, + [0, + cst_Livre_I_G_n_ralit_s_Dispos, + [0, + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], + _ce_ = + [0, + cst_examples_aides_logement_pr, + 1118, + 12, + 1118, + 31, + [0, + cst_Date_d_ouverture_des_droit, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_1952 = "1952", + _cb_ = + [0, + cst_examples_aides_logement_co$1, + 276, + 5, + 276, + 48, + [0, + cst_Article_D161_2_1_9, + [0, + cst_Paragraphe_2_Ouverture_du_, + [0, + cst_Sous_section_4_Assurance_v, + [0, + cst_Section_1_B_n_ficiaires, + [0, + cst_Chapitre_1er_Dispositions_, + [0, + cst_Titre_VI_Dispositions_rela, + [0, + cst_Livre_I_G_n_ralit_s_Dispos, + [0, + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], + _cc_ = + [0, + cst_examples_aides_logement_pr, + 1118, + 12, + 1118, + 31, + [0, + cst_Date_d_ouverture_des_droit, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_1953 = "1953", + _b$_ = + [0, + cst_examples_aides_logement_co$1, + 285, + 5, + 285, + 48, + [0, + cst_Article_D161_2_1_9, + [0, + cst_Paragraphe_2_Ouverture_du_, + [0, + cst_Sous_section_4_Assurance_v, + [0, + cst_Section_1_B_n_ficiaires, + [0, + cst_Chapitre_1er_Dispositions_, + [0, + cst_Titre_VI_Dispositions_rela, + [0, + cst_Livre_I_G_n_ralit_s_Dispos, + [0, + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], + _ca_ = + [0, + cst_examples_aides_logement_pr, + 1118, + 12, + 1118, + 31, + [0, + cst_Date_d_ouverture_des_droit, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_1954 = "1954", + _b9_ = + [0, + cst_examples_aides_logement_co$1, + 294, + 5, + 294, + 48, + [0, + cst_Article_D161_2_1_9, + [0, + cst_Paragraphe_2_Ouverture_du_, + [0, + cst_Sous_section_4_Assurance_v, + [0, + cst_Section_1_B_n_ficiaires, + [0, + cst_Chapitre_1er_Dispositions_, + [0, + cst_Titre_VI_Dispositions_rela, + [0, + cst_Livre_I_G_n_ralit_s_Dispos, + [0, + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], + _b__ = + [0, + cst_examples_aides_logement_pr, + 1118, + 12, + 1118, + 31, + [0, + cst_Date_d_ouverture_des_droit, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cj_ = + [0, + cst_examples_aides_logement_pr, + 1118, + 12, + 1118, + 31, + [0, + cst_Date_d_ouverture_des_droit, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _b8_ = + [0, + cst_examples_aides_logement_pr, + 1118, + 12, + 1118, + 31, + [0, + cst_Date_d_ouverture_des_droit, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ck_ = [0, cst_OuvertureDroitsRetraite, [0, cst_ge_ouverture_droit$0, 0]], + _b5_ = + [0, + cst_examples_aides_logement_co$0, + 3257, + 14, + 3257, + 36, + [0, + cst_Article_D832_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0$11 = cst_0$360, + cst_1_4$0 = cst_1_4$1, + cst_1_8$0 = cst_1_8$1, + cst_1$2 = cst_1$254, + cst_2_5$1 = cst_2_5$5, + cst_2$1 = cst_2$105, + cst_3$3 = cst_3$102, + cst_3$4 = cst_3$101, + cst_3_7$1 = cst_3_7$2, + cst_4$5 = cst_4$100, + cst_4_3$1 = cst_4_3$3, + cst_4$6 = cst_4$100, + cst_0_5$2 = cst_0_5$3, + cst_4_3$2 = cst_4_3$3, + _b6_ = + [0, + cst_examples_aides_logement_pr, + 735, + 12, + 735, + 34, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _b4_ = + [0, + cst_examples_aides_logement_pr, + 735, + 12, + 735, + 34, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _b7_ = + [0, + cst_CalculNombrePartsAccession, + [0, cst_n_nombre_parts_d832_11$0, 0]], + _b1_ = + [0, + cst_examples_aides_logement_co$0, + 3933, + 14, + 3933, + 36, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _bV_ = + [0, + cst_examples_aides_logement_co$0, + 5522, + 5, + 5528, + 28, + [0, + cst_Article_D861_8, + [0, + cst_Section_2_Allocations_de_l, + [0, + cst_Titre_VI_Disposition_parti, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + cst_6 = cst_6$92, + cst_1$1 = cst_1$255, + cst_4$3 = cst_4$100, + cst_4$4 = cst_4$100, + cst_0_5$1 = cst_0_5$3, + cst_0$10 = cst_0$361, + _bW_ = + [0, + cst_examples_aides_logement_pr, + 668, + 11, + 668, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bU_ = + [0, + cst_examples_aides_logement_co$0, + 4024, + 5, + 4024, + 26, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_4$1 = cst_4$100, + cst_4$2 = cst_4$100, + cst_0_5$0 = cst_0_5$3, + cst_0$9 = cst_0$361, + _bX_ = + [0, + cst_examples_aides_logement_pr, + 668, + 11, + 668, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bT_ = + [0, + cst_examples_aides_logement_co$0, + 3928, + 14, + 3928, + 47, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_4 = cst_4$100, + cst_4$0 = cst_4$100, + cst_0_5 = cst_0_5$3, + cst_0$8 = cst_0$361, + _bO_ = + [0, + cst_examples_aides_logement_co$0, + 4007, + 5, + 4007, + 26, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$7 = cst_0$360, + cst_1_2 = "1.2", + cst_1_5 = "1.5", + cst_1$0 = cst_1$254, + cst_2_5$0 = cst_2_5$5, + cst_2$0 = cst_2$105, + cst_3$1 = cst_3$102, + cst_3$2 = cst_3$101, + cst_3_7$0 = cst_3_7$2, + cst_4_3$0 = cst_4_3$3, + _bP_ = + [0, + cst_examples_aides_logement_pr, + 667, + 11, + 667, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bN_ = + [0, + cst_examples_aides_logement_co$0, + 3913, + 14, + 3913, + 41, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$6 = cst_0$360, + cst_1_4 = cst_1_4$1, + cst_1_8 = cst_1_8$1, + cst_1 = cst_1$254, + cst_2_5 = cst_2_5$5, + cst_2 = cst_2$105, + cst_3 = cst_3$102, + cst_3$0 = cst_3$101, + cst_3_7 = cst_3_7$2, + cst_4_3 = cst_4_3$3, + _bI_ = + [0, + cst_examples_aides_logement_pr, + 665, + 12, + 665, + 52, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bJ_ = + [0, + cst_examples_aides_logement_pr, + 665, + 12, + 665, + 52, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bK_ = + [0, + cst_examples_aides_logement_pr, + 665, + 12, + 665, + 52, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bH_ = + [0, + cst_examples_aides_logement_pr, + 665, + 12, + 665, + 52, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bL_ = + [0, + cst_CalculNombrePartLogementFo, + [0, cst_limitation_majoration_pers$1, 0]], + _bQ_ = + [0, + cst_examples_aides_logement_pr, + 667, + 11, + 667, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bM_ = + [0, + cst_examples_aides_logement_pr, + 667, + 11, + 667, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bR_ = + [0, + cst_CalculNombrePartLogementFo, + [0, "n_nombre_parts_d832_25_base", 0]], + _bY_ = + [0, + cst_examples_aides_logement_pr, + 668, + 11, + 668, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bS_ = + [0, + cst_examples_aides_logement_pr, + 668, + 11, + 668, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bZ_ = + [0, + cst_CalculNombrePartLogementFo, + [0, "n_nombre_parts_d832_25_majoration", 0]], + _b2_ = + [0, + cst_examples_aides_logement_pr, + 670, + 12, + 670, + 34, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _b0_ = + [0, + cst_examples_aides_logement_pr, + 670, + 12, + 670, + 34, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _b3_ = + [0, + cst_CalculNombrePartLogementFo, + [0, cst_n_nombre_parts_d832_25$1, 0]], + _bD_ = + [0, + cst_examples_aides_logement_co$0, + 4097, + 5, + 4097, + 26, + [0, + cst_Article_D832_26, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$4 = cst_0$361, + cst_12$0 = cst_12$4, + cst_0$5 = cst_0$361, + _bE_ = + [0, + cst_examples_aides_logement_pr, + 657, + 12, + 657, + 19, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bC_ = + [0, + cst_examples_aides_logement_co$0, + 4059, + 14, + 4059, + 21, + [0, + cst_Article_D832_26, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$2 = cst_0$361, + cst_12 = cst_12$4, + cst_0$3 = cst_0$361, + _by_ = + [0, + cst_examples_aides_logement_co$0, + 4046, + 14, + 4046, + 50, + [0, + cst_Article_D832_26, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _bx_ = [1, 0], + _bs_ = + [0, + cst_examples_aides_logement_ar, + 2684, + 5, + 2684, + 26, + [0, + cst_Article_31, + [0, + cst_Chapitre_V_Calcul_de_l_aid, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0_328 = "0.328", + cst_409505 = cst_409505$1, + _br_ = [1, 0], + cst_0_232 = "0.232", + cst_262985 = cst_262985$1, + cst_409505$0 = cst_409505$1, + cst_0_208 = cst_0_208$1, + cst_204761 = cst_204761$1, + cst_262985$0 = cst_262985$1, + cst_0_024 = "0.024", + cst_142303 = cst_142303$1, + cst_204761$0 = cst_204761$1, + cst_0$0 = cst_0$361, + cst_0$1 = cst_0$360, + cst_142303$0 = cst_142303$1, + _bt_ = + [0, + cst_examples_aides_logement_pr, + 652, + 11, + 652, + 35, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bq_ = + [0, + cst_examples_aides_logement_ar, + 2634, + 14, + 2634, + 38, + [0, + cst_Article_31, + [0, + cst_Chapitre_V_Calcul_de_l_aid, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0_48 = "0.48", + cst_633129 = cst_633129$1, + _bp_ = [1, 0], + cst_0_32 = "0.32", + cst_535744 = cst_535744$1, + cst_633129$0 = cst_633129$1, + cst_0_264 = "0.264", + cst_389618 = cst_389618$1, + cst_535744$0 = cst_535744$1, + cst_0_216 = "0.216", + cst_267871 = cst_267871$1, + cst_389618$0 = cst_389618$1, + cst_0_104 = "0.104", + cst_194810 = cst_194810$1, + cst_267871$0 = cst_267871$1, + cst_0_04 = "0.04", + cst_0 = cst_0$360, + cst_194810$0 = cst_194810$1, + _bl_ = + [0, + cst_examples_aides_logement_ar, + 2720, + 14, + 2720, + 41, + [0, + cst_Article_31, + [0, + cst_Chapitre_V_Calcul_de_l_aid, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_7632 = "7632", + cst_4557 = "4557", + _bm_ = + [0, + cst_examples_aides_logement_pr, + 655, + 11, + 655, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bk_ = + [0, + cst_examples_aides_logement_pr, + 655, + 11, + 655, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bn_ = + [0, + cst_Calcul_quivalenceLoyerMini, + [0, "montant_forfaitaire_d832_26", 0]], + _bu_ = + [0, + cst_examples_aides_logement_pr, + 652, + 11, + 652, + 35, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bo_ = + [0, + cst_examples_aides_logement_pr, + 652, + 11, + 652, + 35, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bv_ = + [0, cst_Calcul_quivalenceLoyerMini, [0, "tranches_revenus_d832_26", 0]], + _bz_ = + [0, + cst_examples_aides_logement_pr, + 653, + 11, + 653, + 47, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bw_ = + [0, + cst_examples_aides_logement_pr, + 653, + 11, + 653, + 47, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bA_ = + [0, + cst_Calcul_quivalenceLoyerMini, + [0, "tranches_revenus_d832_26_multipli\xc3\xa9es", 0]], + _bF_ = + [0, + cst_examples_aides_logement_pr, + 657, + 12, + 657, + 19, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bB_ = + [0, + cst_examples_aides_logement_pr, + 657, + 12, + 657, + 19, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bG_ = [0, cst_Calcul_quivalenceLoyerMini, [0, cst_montant$2, 0]], + _be_ = + [0, + cst_examples_aides_logement_au, + 152, + 5, + 152, + 34, + [0, + cst_Article_14, + [0, + cst_Chapitre_II_Des_contributi, + [0, cst_Ordonnance_n_96_50_du_24_j, 0]]]], + _bf_ = + [0, + cst_examples_aides_logement_pr, + 558, + 12, + 558, + 19, + [0, + cst_Calcul_des_contributions_s, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _bd_ = + [0, + cst_examples_aides_logement_pr, + 558, + 12, + 558, + 19, + [0, + cst_Calcul_des_contributions_s, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ba_ = + [0, + cst_examples_aides_logement_au, + 190, + 39, + 190, + 68, + [0, + cst_Article_19, + [0, + cst_Chapitre_II_Des_contributi, + [0, cst_Ordonnance_n_96_50_du_24_j, 0]]]], + cst_0_005 = cst_0_005$3, + _a7_ = + [0, + cst_examples_aides_logement_co$1, + 37, + 9, + 37, + 20, + [0, + "Article L136-1-3", + [0, + "Section 1 : De la contribution sociale sur les revenus d'activit\xc3\xa9 et sur les revenus de remplacement", + [0, + "Chapitre 6 : Contribution sociale g\xc3\xa9n\xc3\xa9ralis\xc3\xa9e", + [0, + cst_Titre_III_Titre_III_Dispos, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _a8_ = + [0, + cst_examples_aides_logement_pr, + 556, + 11, + 556, + 22, + [0, + cst_Calcul_des_contributions_s, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _a6_ = + [0, + cst_examples_aides_logement_pr, + 556, + 11, + 556, + 22, + [0, + cst_Calcul_des_contributions_s, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _a9_ = + [0, + cst_examples_aides_logement_pr, + 556, + 11, + 556, + 22, + [0, + cst_Calcul_des_contributions_s, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _a5_ = + [0, + cst_examples_aides_logement_pr, + 556, + 11, + 556, + 22, + [0, + cst_Calcul_des_contributions_s, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _a__ = + [0, cst_ContributionsSocialesAides, [0, "exon\xc3\xa9r\xc3\xa9_csg", 0]], + _bb_ = + [0, + cst_examples_aides_logement_pr, + 555, + 11, + 555, + 20, + [0, + cst_Calcul_des_contributions_s, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _a$_ = + [0, + cst_examples_aides_logement_pr, + 555, + 11, + 555, + 20, + [0, + cst_Calcul_des_contributions_s, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _bc_ = [0, cst_ContributionsSocialesAides, [0, "taux_crds", 0]], + _bg_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], + _bj_ = + [0, + cst_examples_aides_logement_au, + 156, + 13, + 156, + 24, + [0, + cst_Article_14, + [0, + cst_Chapitre_II_Des_contributi, + [0, cst_Ordonnance_n_96_50_du_24_j, 0]]]], + _bh_ = + [0, + cst_examples_aides_logement_pr, + 563, + 13, + 563, + 42, + [0, + cst_Calcul_des_contributions_s, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _bi_ = + [0, + cst_examples_aides_logement_pr, + 563, + 13, + 563, + 42, + [0, + cst_Calcul_des_contributions_s, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_ge_l512_3_2_in = "\xc3\xa2ge_l512_3_2_in", + cst_r_sidence_in$8 = cst_r_sidence_in$9, + cst_prestation_courante_in = "prestation_courante_in", + cst_date_courante_in$20 = cst_date_courante_in$21, + _a4_ = [0, "\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales_in", 0], + cst_r_sidence_in$7 = cst_r_sidence_in$9, + cst_date_courante_in$19 = cst_date_courante_in$21, + _a3_ = [0, "Smic_in", 0], + cst_ann_es_in$0 = cst_ann_es_in$1, + cst_date_courante_in$18 = cst_date_courante_in$21, + cst_date_naissance_in$0 = cst_date_naissance_in$1, + _a2_ = [0, "V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80_in", 0], + cst_ann_es_in = cst_ann_es_in$1, + cst_date_courante_in$17 = cst_date_courante_in$21, + cst_date_naissance_in = cst_date_naissance_in$1, + _a1_ = + [0, + "V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80_in", + 0], + cst_date_courante_in$16 = cst_date_courante_in$21, + _a0_ = [0, "BaseMensuelleAllocationsFamiliales_in", 0], + cst_ressources_m_nage_prises_e$0 = cst_ressources_m_nage_prises_e$1, + cst_date_courante_in$15 = cst_date_courante_in$21, + cst_demandeur_in$4 = cst_demandeur_in$5, + cst_m_nage_in$4 = cst_m_nage_in$5, + _aZ_ = [0, "CalculetteAidesAuLogementGardeAltern\xc3\xa9e_in", 0], + cst_ressources_m_nage_prises_e = cst_ressources_m_nage_prises_e$1, + cst_date_courante_in$14 = cst_date_courante_in$21, + cst_demandeur_in$3 = cst_demandeur_in$5, + cst_m_nage_in$3 = cst_m_nage_in$5, + _aY_ = [0, "CalculetteAidesAuLogement_in", 0], + cst_montant_dette_in = "montant_dette_in", + cst_d_pense_logement_in = "d\xc3\xa9pense_logement_in", + cst_montant_charges_in = "montant_charges_in", + cst_montant_apl_in = "montant_apl_in", + cst_aide_vers_e_in = "aide_vers\xc3\xa9e_in", + cst_mode_occupation_in$2 = cst_mode_occupation_in$3, + _aX_ = [0, "Impay\xc3\xa9D\xc3\xa9penseLogement_in", 0], + cst_date_naissance_assur_in = "date_naissance_assur\xc3\xa9_in", + _aW_ = [0, "OuvertureDroitsRetraite_in", 0], + cst_r_sidence_in$6 = cst_r_sidence_in$9, + cst_type_aide_in$2 = cst_type_aide_in$3, + cst_date_courante_in$13 = cst_date_courante_in$21, + cst_zone_in$6 = cst_zone_in$7, + cst_nombre_personnes_charge_in$8 = cst_nombre_personnes_charge_in$9, + cst_situation_familiale_in$1 = cst_situation_familiale_in$2, + cst_ressources_m_nage_sans_arr$0 = cst_ressources_m_nage_sans_arr$1, + cst_mode_occupation_in$1 = cst_mode_occupation_in$3, + _aV_ = [0, "CalculAllocationLogement_in", 0], + cst_cat_gorie_quivalence_loyer$0 = + "cat\xc3\xa9gorie_\xc3\xa9quivalence_loyer_d842_16_in", + cst_date_courante_in$12 = cst_date_courante_in$21, + cst_zone_in$5 = cst_zone_in$7, + cst_situation_familiale_calcul$6 = cst_situation_familiale_calcul$8, + cst_nombre_personnes_charge_in$7 = cst_nombre_personnes_charge_in$9, + cst_ressources_m_nage_arrondie$6 = cst_ressources_m_nage_arrondie$7, + cst_redevance_in$0 = cst_redevance_in$1, + cst_r_sidence_in$5 = cst_r_sidence_in$9, + cst_date_conventionnement_in$0 = cst_date_conventionnement_in$1, + cst_type_logement_foyer_in$0 = cst_type_logement_foyer_in$1, + _aU_ = [0, "CalculAllocationLogementFoyer_in", 0], + cst_op_rations_logement_voluti$0 = + "op\xc3\xa9rations_logement_\xc3\xa9volutifs_sociaux_accession_propri\xc3\xa9t\xc3\xa9_aid\xc3\xa9e_\xc3\x89tat_in", + cst_copropri_t_in$0 = cst_copropri_t_in$1, + cst_charges_mensuelles_pr_t_in = "charges_mensuelles_pr\xc3\xaat_in", + cst_date_entr_e_logement_in$0 = cst_date_entr_e_logement_in$1, + cst_local_habit_premi_re_fois_$1 = cst_local_habit_premi_re_fois_$2, + cst_type_travaux_logement_in$0 = cst_type_travaux_logement_in$1, + cst_date_signature_pr_t_in$0 = cst_date_signature_pr_t_in$1, + cst_situation_r822_11_13_17_in$0 = cst_situation_r822_11_13_17_in$1, + cst_mensualit_principale_in$0 = cst_mensualit_principale_in$1, + cst_date_courante_in$11 = cst_date_courante_in$21, + cst_r_sidence_in$4 = cst_r_sidence_in$9, + cst_zone_in$4 = cst_zone_in$7, + cst_situation_familiale_calcul$5 = cst_situation_familiale_calcul$8, + cst_nombre_personnes_charge_in$6 = cst_nombre_personnes_charge_in$9, + cst_ressources_m_nage_arrondie$5 = cst_ressources_m_nage_arrondie$8, + _aT_ = + [0, "CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9_in", 0], + cst_changement_logement_d842_4$0 = "changement_logement_d842_4_in", + cst_r_sidence_in$3 = cst_r_sidence_in$9, + cst_logement_meubl_d842_2_in$0 = cst_logement_meubl_d842_2_in$1, + cst_r_duction_loyer_solidarit_$1 = cst_r_duction_loyer_solidarit_$2, + cst_colocation_in$0 = cst_colocation_in$1, + cst_type_aide_in$1 = cst_type_aide_in$3, + cst_g_es_ou_handicap_adultes_h$1 = cst_g_es_ou_handicap_adultes_h$2, + cst_logement_est_chambre_in$0 = cst_logement_est_chambre_in$1, + cst_zone_in$3 = cst_zone_in$7, + cst_situation_familiale_calcul$4 = cst_situation_familiale_calcul$8, + cst_nombre_personnes_charge_in$5 = cst_nombre_personnes_charge_in$9, + cst_date_courante_in$10 = cst_date_courante_in$21, + cst_b_n_ficiaire_aide_adulte_o$2 = cst_b_n_ficiaire_aide_adulte_o$3, + cst_ressources_m_nage_arrondie$4 = cst_ressources_m_nage_arrondie$7, + cst_loyer_principal_in = "loyer_principal_in", + _aS_ = [0, "CalculAllocationLogementLocatif_in", 0], + cst_r_sidence_in$2 = cst_r_sidence_in$9, + cst_date_courante_in$9 = cst_date_courante_in$21, + cst_zone_in$2 = cst_zone_in$7, + cst_nombre_personnes_charge_in$4 = cst_nombre_personnes_charge_in$9, + cst_situation_familiale_in$0 = cst_situation_familiale_in$2, + cst_ressources_m_nage_sans_arr = cst_ressources_m_nage_sans_arr$1, + cst_type_aide_in$0 = cst_type_aide_in$3, + cst_mode_occupation_in$0 = cst_mode_occupation_in$3, + _aR_ = [0, "CalculAidePersonnalis\xc3\xa9eLogement_in", 0], + cst_date_courante_in$8 = cst_date_courante_in$21, + cst_anciennet_logement_in = "anciennet\xc3\xa9_logement_in", + cst_type_pr_t_in = "type_pr\xc3\xaat_in", + cst_zone_in$1 = cst_zone_in$7, + cst_situation_r822_11_13_17_in = cst_situation_r822_11_13_17_in$1, + cst_copropri_t_in = cst_copropri_t_in$1, + cst_date_entr_e_logement_in = cst_date_entr_e_logement_in$1, + cst_local_habit_premi_re_fois_$0 = cst_local_habit_premi_re_fois_$2, + cst_date_signature_pr_t_in = cst_date_signature_pr_t_in$1, + cst_type_travaux_logement_in = cst_type_travaux_logement_in$1, + cst_situation_familiale_calcul$3 = cst_situation_familiale_calcul$8, + cst_nombre_personnes_charge_in$3 = cst_nombre_personnes_charge_in$9, + cst_ressources_m_nage_arrondie$3 = cst_ressources_m_nage_arrondie$7, + cst_mensualit_principale_in = cst_mensualit_principale_in$1, + _aQ_ = + [0, + "CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9_in", + 0], + cst_situation_familiale_calcul$2 = cst_situation_familiale_calcul$8, + cst_nombre_personnes_charge_in$2 = cst_nombre_personnes_charge_in$9, + _aP_ = [0, "CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9_in", 0], + cst_n_nombre_parts_d832_25_in$0 = cst_n_nombre_parts_d832_25_in$1, + cst_limitation_majoration_pers$0 = cst_limitation_majoration_pers$2, + cst_condition_2_du_832_25_in$1 = cst_condition_2_du_832_25_in$2, + cst_r_sidence_in$1 = cst_r_sidence_in$9, + cst_redevance_in = cst_redevance_in$1, + cst_date_courante_in$7 = cst_date_courante_in$21, + cst_zone_in$0 = cst_zone_in$7, + cst_situation_familiale_calcul$1 = cst_situation_familiale_calcul$8, + cst_nombre_personnes_charge_in$1 = cst_nombre_personnes_charge_in$9, + cst_ressources_m_nage_arrondie$2 = cst_ressources_m_nage_arrondie$7, + cst_date_conventionnement_in = cst_date_conventionnement_in$1, + cst_type_logement_foyer_in = cst_type_logement_foyer_in$1, + _aO_ = [0, "CalculAidePersonnalis\xc3\xa9eLogementFoyer_in", 0], + cst_limitation_majoration_pers = cst_limitation_majoration_pers$2, + cst_r_sidence_in$0 = cst_r_sidence_in$9, + cst_situation_familiale_calcul$0 = cst_situation_familiale_calcul$8, + cst_nombre_personnes_charge_in$0 = cst_nombre_personnes_charge_in$9, + cst_condition_2_du_832_25_in$0 = cst_condition_2_du_832_25_in$2, + _aN_ = [0, "CalculNombrePartLogementFoyer_in", 0], + cst_n_nombre_parts_d832_25_in = cst_n_nombre_parts_d832_25_in$1, + cst_condition_2_du_832_25_in = cst_condition_2_du_832_25_in$2, + cst_ressources_m_nage_arrondie$1 = cst_ressources_m_nage_arrondie$7, + cst_date_courante_in$6 = cst_date_courante_in$21, + _aM_ = [0, "Calcul\xc3\x89quivalenceLoyerMinimale_in", 0], + cst_r_sidence_in = cst_r_sidence_in$9, + cst_logement_meubl_d842_2_in = cst_logement_meubl_d842_2_in$1, + cst_r_duction_loyer_solidarit_$0 = cst_r_duction_loyer_solidarit_$2, + cst_colocation_in = cst_colocation_in$1, + cst_type_aide_in = cst_type_aide_in$3, + cst_g_es_ou_handicap_adultes_h$0 = cst_g_es_ou_handicap_adultes_h$2, + cst_logement_est_chambre_in = cst_logement_est_chambre_in$1, + cst_zone_in = cst_zone_in$7, + cst_situation_familiale_calcul = cst_situation_familiale_calcul$8, + cst_nombre_personnes_charge_in = cst_nombre_personnes_charge_in$9, + cst_date_courante_in$5 = cst_date_courante_in$21, + cst_b_n_ficiaire_aide_adulte_o$1 = cst_b_n_ficiaire_aide_adulte_o$3, + cst_ressources_m_nage_arrondie$0 = cst_ressources_m_nage_arrondie$7, + cst_loyer_principal_base_in = "loyer_principal_base_in", + _aL_ = [0, "CalculAidePersonnalis\xc3\xa9eLogementLocatif_in", 0], + cst_date_courante_in$4 = cst_date_courante_in$21, + _aK_ = [0, "ContributionsSocialesAidesPersonnelleLogement_in", 0], + cst_ressources_m_nage_arrondie = cst_ressources_m_nage_arrondie$8, + cst_paiement_logement_distinct = + "paiement_logement_distinct_professionnel_in", + cst_date_demande_ou_reexamen_d = "date_demande_ou_reexamen_droit_in", + cst_demandeur_poursuit_des_tud = "demandeur_poursuit_des_\xc3\xa9tudes_in", + cst_condition_ge_bourse_enseig = + "condition_\xc3\xa2ge_bourse_enseignement_sup\xc3\xa9rieur_in", + cst_date_courante_in$3 = cst_date_courante_in$21, + cst_mode_occupation_in = cst_mode_occupation_in$3, + cst_situation_familiale_in = cst_situation_familiale_in$2, + cst_personnes_charge_in = "personnes_\xc3\xa0_charge_in", + cst_conjoint_exerce_activit_r_ = + "conjoint_exerce_activit\xc3\xa9_r\xc3\xa9mun\xc3\xa9r\xc3\xa9e_in", + cst_demandeur_exerce_activit_r = + "demandeur_exerce_activit\xc3\xa9_r\xc3\xa9mun\xc3\xa9r\xc3\xa9e_in", + cst_personnes_vivant_habituell = + "personnes_vivant_habituellement_foyer_in", + cst_ressources_conjoint_in = "ressources_conjoint_in", + cst_ressources_demandeur_in = "ressources_demandeur_in", + _aJ_ = [0, "RessourcesAidesPersonnelleLogement_in", 0], + cst_d_penses_justifi_es_r_elle = + "d\xc3\xa9penses_justifi\xc3\xa9es_r\xc3\xa9ellement_engag\xc3\xa9es_in", + cst_date_courante_in$2 = cst_date_courante_in$21, + cst_demandeur_in$2 = cst_demandeur_in$5, + cst_m_nage_in$2 = cst_m_nage_in$5, + cst_date_emm_nagement_in = "date_emm\xc3\xa9nagement_in", + cst_informations_in = "informations_in", + _aI_ = + [0, "\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement_in", 0], + cst_b_n_ficie_aide_personnalis = + "b\xc3\xa9n\xc3\xa9ficie_aide_personnalis\xc3\xa9e_logement_in", + cst_demandeur_in$1 = cst_demandeur_in$5, + cst_m_nage_in$1 = cst_m_nage_in$5, + cst_date_courante_in$1 = cst_date_courante_in$21, + _aH_ = [0, "\xc3\x89ligibilit\xc3\xa9AllocationLogement_in", 0], + cst_date_courante_in$0 = cst_date_courante_in$21, + cst_demandeur_in$0 = cst_demandeur_in$5, + cst_m_nage_in$0 = cst_m_nage_in$5, + _aG_ = + [0, "\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement_in", 0], + cst_date_entr_e_vigueur_diff_r = + "date_entr\xc3\xa9e_vigueur_diff\xc3\xa9r\xc3\xa9e_cch_in", + cst_condition_logement_surface = "condition_logement_surface_in", + cst_condition_logement_r_siden = + "condition_logement_r\xc3\xa9sidence_principale_in", + cst_date_courante_in = cst_date_courante_in$21, + cst_demandeur_in = cst_demandeur_in$5, + cst_m_nage_in = cst_m_nage_in$5, + _aF_ = [0, "\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement_in", 0], + cst_r_sidence = "r\xc3\xa9sidence", + cst_personnes_g_es_handicap_es = + "personnes_\xc3\xa2g\xc3\xa9es_handicap\xc3\xa9es_foyer_r844_4", + cst_enfant_na_tre_apr_s_quatri = + "enfant_\xc3\xa0_na\xc3\xaetre_apr\xc3\xa8s_quatri\xc3\xa8me_mois_grossesse", + cst_condition_rattach_foyer_fi = + "condition_rattach\xc3\xa9_foyer_fiscal_parent_ifi", + cst_situation_familiale = "situation_familiale", + cst_nombre_autres_occupants_lo = "nombre_autres_occupants_logement", + cst_personnes_charge = "personnes_\xc3\xa0_charge", + cst_logement = "logement", + cst_prestations_re_ues = "prestations_re\xc3\xa7ues", + _aE_ = [0, "M\xc3\xa9nage", 0], + cst_zone = "zone", + cst_surface_m_carr_s = "surface_m_carr\xc3\xa9s", + cst_logement_decent_l89_462 = "logement_decent_l89_462", + cst_usufruit = "usufruit", + cst_lou_ou_sous_lou_des_tiers = + "lou\xc3\xa9_ou_sous_lou\xc3\xa9_\xc3\xa0_des_tiers", + cst_propri_taire = "propri\xc3\xa9taire", + cst_mode_occupation = "mode_occupation", + cst_est_ehpad_ou_maison_autono = + "est_ehpad_ou_maison_autonomie_l313_12_asf", + cst_r_sidence_principale = "r\xc3\xa9sidence_principale", + _aD_ = [0, "Logement", 0], + cst_condition_2_r823_4 = cst_condition_2_r823_4$0, + cst_coefficents_enfants_garde_$2 = cst_coefficents_enfants_garde_$3, + cst_nombre_personnes_charge_pr$1 = cst_nombre_personnes_charge_pr$2, + cst_ligibilit$3 = cst_ligibilit$4, + cst_date_courante$0 = cst_date_courante$1, + _aC_ = [0, cst_ligibilit_AidesPersonnelle, 0], + cst_Locataire = "Locataire", + cst_R_sidentLogementFoyer = "R\xc3\xa9sidentLogementFoyer", + cst_AccessionPropri_t_LocalUsa = + "AccessionPropri\xc3\xa9t\xc3\xa9LocalUsageExclusifHabitation", + cst_SousLocataire = "SousLocataire", + cst_LocationAccession = "LocationAccession", + _aB_ = [0, "ModeOccupation", 0], + cst_Location = cst_Location$0, + cst_AccessionPropri_t = "AccessionPropri\xc3\xa9t\xc3\xa9", + cst_LogementFoyer = cst_LogementFoyer$0, + _aA_ = [0, "Cat\xc3\xa9gorieCalculAPL", 0], + cst_Enfant_Charge = cst_Enfant_Charge$0, + cst_AutrePersonne_Charge = cst_AutrePersonne_Charge$0, + _az_ = [0, "Personne\xc3\x80Charge", 0], + cst_changement_logement_d842_4 = "changement_logement_d842_4", + cst_logement_meubl_d842_2$0 = cst_logement_meubl_d842_2$1, + cst_g_es_ou_handicap_adultes_h = + "\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers", + cst_colocation = "colocation", + cst_logement_est_chambre = "logement_est_chambre", + cst_b_n_ficiaire_aide_adulte_o$0 = cst_b_n_ficiaire_aide_adulte_o$4, + cst_loyer_principal = "loyer_principal", + cst_bailleur = "bailleur", + _ay_ = [0, cst_Location$0, 0], + cst_tudes_apprentissage_stage_ = + "\xc3\xa9tudes_apprentissage_stage_formation_pro_impossibilit\xc3\xa9_travail", + cst_situation_garde_altern_e = "situation_garde_altern\xc3\xa9e", + cst_obligation_scolaire$0 = cst_obligation_scolaire$1, + cst_r_muneration_mensuelle$0 = cst_r_muneration_mensuelle$1, + cst_date_de_naissance$0 = cst_date_de_naissance$1, + cst_a_d_j_ouvert_droit_aux_all$0 = cst_a_d_j_ouvert_droit_aux_all$1, + cst_b_n_ficie_titre_personnel_$0 = cst_b_n_ficie_titre_personnel_$1, + cst_nationalit$0 = cst_nationalit$1, + cst_identifiant$0 = cst_identifiant$1, + _ax_ = [0, cst_Enfant_Charge$0, 0], + cst_magistrat_fonctionnaire_ce = + "magistrat_fonctionnaire_centre_int\xc3\xa9r\xc3\xaats_mat\xc3\xa9riels_familiaux_hors_mayotte", + cst_est_non_salari_agricole_l7 = + "est_non_salari\xc3\xa9_agricole_l781_8_l_781_46_code_rural", + cst_personne_h_berg_e_centre_s = + "personne_h\xc3\xa9berg\xc3\xa9e_centre_soin_l_L162_22_3_s\xc3\xa9curit\xc3\xa9_sociale", + cst_patrimoine = "patrimoine", + cst_nationalit = cst_nationalit$1, + cst_date_naissance$0 = cst_date_naissance$1, + _aw_ = [0, cst_Demandeur$0, 0], + cst_r_gime_outre_mer_l751_1 = cst_r_gime_outre_mer_l751_1$0, + cst_conditions_hors_ge = cst_conditions_hors_ge$0, + cst_droit_ouvert = cst_droit_ouvert$0, + cst_ge_l512_3_2 = cst_ge_l512_3_2$0, + _av_ = [0, cst_ligibilit_PrestationsFamil, 0], + cst_op_rations_logement_voluti = + "op\xc3\xa9rations_logement_\xc3\xa9volutifs_sociaux_accession_propri\xc3\xa9t\xc3\xa9_aid\xc3\xa9e_\xc3\x89tat", + cst_pr_t = "pr\xc3\xaat", + cst_anciennet_logement = "anciennet\xc3\xa9_logement", + cst_situation_r822_11_13_17 = "situation_r822_11_13_17", + cst_copropri_t = "copropri\xc3\xa9t\xc3\xa9", + cst_local_habit_premi_re_fois_ = + "local_habit\xc3\xa9_premi\xc3\xa8re_fois_b\xc3\xa9n\xc3\xa9ficiaire", + cst_type_travaux_logement_r842 = "type_travaux_logement_r842_5", + cst_type_travaux_logement_d832 = "type_travaux_logement_d832_15", + cst_date_entr_e_logement = "date_entr\xc3\xa9e_logement", + cst_charges_mensuelles_pr_t = "charges_mensuelles_pr\xc3\xaat", + cst_mensualit_principale = "mensualit\xc3\xa9_principale", + _au_ = [0, "Propri\xc3\xa9taire", 0], + cst_date_naissance_troisi_me_e = + "date_naissance_troisi\xc3\xa8me_enfant_ou_dernier_si_plus", + cst_nombre_enfants_na_tre_apr_ = + "nombre_enfants_\xc3\xa0_na\xc3\xaetre_apr\xc3\xa8s_troisi\xc3\xa8me_mois_grossesse", + _at_ = [0, "InformationsPrimeDeD\xc3\xa9m\xc3\xa9nagement", 0], + cst_Changement = "Changement", + cst_PasDeChangement = "PasDeChangement", + _as_ = [0, "ChangementLogementD842_4", 0], + cst_Fran_aise = "Fran\xc3\xa7aise", + cst_trang_re = "\xc3\x89trang\xc3\xa8re", + _ar_ = [0, "Nationalit\xc3\xa9", 0], + cst_Non$1 = cst_Non$2, + cst_Oui$0 = cst_Oui$1, + _aq_ = [0, "Lou\xc3\xa9OuSousLou\xc3\xa9\xc3\x80DesTiers", 0], + cst_BailleurSocial = "BailleurSocial", + cst_BailleurPriv_AvecConventio = + "BailleurPriv\xc3\xa9AvecConventionnementSocial", + cst_BailleurPriv = "BailleurPriv\xc3\xa9", + _ap_ = [0, "TypeBailleur", 0], + cst_b_n_ficie_titre_personnel_ = cst_b_n_ficie_titre_personnel_$1, + cst_a_d_j_ouvert_droit_aux_all = cst_a_d_j_ouvert_droit_aux_all$1, + cst_prise_en_charge = "prise_en_charge", + cst_date_de_naissance = cst_date_de_naissance$1, + cst_r_muneration_mensuelle = cst_r_muneration_mensuelle$1, + cst_obligation_scolaire = cst_obligation_scolaire$1, + cst_identifiant = cst_identifiant$1, + _ao_ = [0, "EnfantPrestationsFamiliales", 0], + cst_logement_meubl_d842_2 = cst_logement_meubl_d842_2$1, + cst_b_n_ficiaire_aide_adulte_o = cst_b_n_ficiaire_aide_adulte_o$4, + cst_cat_gorie_quivalence_loyer = + "cat\xc3\xa9gorie_\xc3\xa9quivalence_loyer_d842_16", + cst_redevance = "redevance", + cst_construit_application_loi_ = "construit_application_loi_1957_12_III", + cst_date_conventionnement = "date_conventionnement", + cst_conventionn_selon_r_gles_m = + "conventionn\xc3\xa9_selon_r\xc3\xa8gles_mayotte", + cst_conventionn_livre_III_titr$1 = cst_conventionn_livre_III_titr$2, + cst_remplit_conditions_r832_21 = "remplit_conditions_r832_21", + cst_type = "type", + _an_ = [0, cst_LogementFoyer$0, 0], + cst_accord_financement_repr_se = + "accord_financement_repr\xc3\xa9sentant_\xc3\x89tat_outre_mer", + cst_titulaire_pr_t = "titulaire_pr\xc3\xaat", + cst_date_signature = "date_signature", + cst_type_pr_t = "type_pr\xc3\xaat", + _am_ = [0, "Pr\xc3\xaat", 0], + cst_coefficents_enfants_garde_$1 = cst_coefficents_enfants_garde_$3, + cst_nombre_personnes_charge_pr$0 = cst_nombre_personnes_charge_pr$2, + cst_ligibilit$2 = cst_ligibilit$4, + _al_ = [0, cst_ligibilit_AllocationLogeme, 0], + cst_MoinsDeTroisEnfants = "MoinsDeTroisEnfants", + cst_PlusDeTroisEnfants = "PlusDeTroisEnfants", + _ak_ = [0, "DateNaissanceTroisi\xc3\xa8meOuDernierPlusEnfant", 0], + cst_titulaire_allocation_perso = + "titulaire_allocation_personne_\xc3\xa2g\xc3\xa9e", + cst_b_n_ficiaire_l161_19_l351_ = + "b\xc3\xa9n\xc3\xa9ficiaire_l161_19_l351_8_l643_3_s\xc3\xa9cu", + cst_incapacit_80_pourcent_ou_r = + "incapacit\xc3\xa9_80_pourcent_ou_restriction_emploi", + cst_parent = "parent\xc3\xa9", + cst_ascendant_descendant_colla = + "ascendant_descendant_collat\xc3\xa9ral_deuxi\xc3\xa8me_troisi\xc3\xa8me_degr\xc3\xa9", + cst_ressources$0 = cst_ressources$1, + cst_date_naissance = cst_date_naissance$1, + _aj_ = [0, cst_AutrePersonne_Charge$0, 0], + cst_taux$0 = cst_taux$1, + cst_bas$0 = cst_bas$1, + cst_haut$0 = cst_haut$1, + _ai_ = [0, "TrancheRevenuD\xc3\xa9cimal", 0], + cst_taux = cst_taux$1, + cst_bas = cst_bas$1, + cst_haut = cst_haut$1, + _ah_ = [0, "TrancheRevenu", 0], + cst_Neuf = "Neuf", + cst_Ancien = "Ancien", + _ag_ = [0, "NeufOuAncien", 0], + cst_brut_horaire = cst_brut_horaire$0, + _af_ = [0, cst_Smic, 0], + cst_est_sup_rieur = cst_est_sup_rieur$0, + _ae_ = [0, cst_V_rification_geSup_rieur, 0], + cst_est_inf_rieur_ou_gal = cst_est_inf_rieur_ou_gal$0, + _ad_ = [0, cst_V_rification_geInf_rieurOu, 0], + cst_montant$1 = cst_montant$2, + _ac_ = [0, cst_BaseMensuelleAllocationsFa, 0], + cst_aide_finale = cst_aide_finale$0, + cst_ligibilit$1 = cst_ligibilit$4, + _ab_ = [0, cst_CalculetteAidesAuLogementG, 0], + cst_coefficents_enfants_garde_$0 = cst_coefficents_enfants_garde_$3, + cst_traitement_aide_finale$8 = cst_traitement_aide_finale$9, + cst_aide_finale_formule$8 = cst_aide_finale_formule$9, + cst_ligibilit$0 = cst_ligibilit$4, + _aa_ = [0, cst_CalculetteAidesAuLogement, 0], + cst_montant_impay = cst_montant_impay$0, + _$_ = [0, cst_Impay_D_penseLogement, 0], + cst_ge_ouverture_droit = cst_ge_ouverture_droit$0, + ___ = [0, cst_OuvertureDroitsRetraite, 0], + cst_traitement_aide_finale$7 = cst_traitement_aide_finale$9, + cst_aide_finale_formule$7 = cst_aide_finale_formule$9, + _Z_ = [0, cst_CalculAllocationLogement, 0], + cst_traitement_aide_finale$6 = cst_traitement_aide_finale$9, + cst_aide_finale_formule$6 = cst_aide_finale_formule$9, + cst_loyer_minimal = cst_loyer_minimal$0, + cst_montant_forfaitaire_charge$0 = cst_montant_forfaitaire_charge$1, + cst_quivalence_loyer = cst_quivalence_loyer$0, + cst_coefficient_prise_en_charg$1 = cst_coefficient_prise_en_charg$2, + _Y_ = [0, cst_CalculAllocationLogementFo, 0], + cst_traitement_aide_finale$5 = cst_traitement_aide_finale$9, + cst_aide_finale_formule$5 = cst_aide_finale_formule$9, + _X_ = [0, cst_CalculAllocationLogementAc, 0], + cst_traitement_aide_finale$4 = cst_traitement_aide_finale$9, + cst_aide_finale_formule$4 = cst_aide_finale_formule$9, + _W_ = [0, cst_CalculAllocationLogementLo, 0], + cst_ancienne_allocation_logeme = "ancienne_allocation_logement", + cst_ancien_loyer_principal = "ancien_loyer_principal", + _V_ = [0, "InfosChangementLogementD842_4", 0], + cst_traitement_aide_finale$3 = cst_traitement_aide_finale$9, + cst_aide_finale_formule$3 = cst_aide_finale_formule$9, + _U_ = [0, cst_CalculAidePersonnalis_eLog, 0], + cst_traitement_aide_finale$2 = cst_traitement_aide_finale$9, + cst_aide_finale_formule$2 = cst_aide_finale_formule$9, + _T_ = [0, "Traitement_formule_aide_finale", 0], + cst_traitement_aide_finale$1 = cst_traitement_aide_finale$9, + cst_aide_finale_formule$1 = cst_aide_finale_formule$9, + cst_coefficient_prise_en_charg$0 = "coefficient_prise_en_charge_d832_10", + cst_mensualit_minimale = cst_mensualit_minimale$0, + cst_mensualit_ligible = cst_mensualit_ligible$0, + _S_ = [0, cst_CalculAidePersonnalis_eLog$2, 0], + cst_n_nombre_parts_d832_11 = cst_n_nombre_parts_d832_11$0, + _R_ = [0, cst_CalculNombrePartsAccession, 0], + cst_traitement_aide_finale$0 = cst_traitement_aide_finale$9, + cst_aide_finale_formule$0 = cst_aide_finale_formule$9, + cst_coefficient_prise_en_charg = "coefficient_prise_en_charge_d832_25", + cst_quivalence_loyer_minimale = cst_quivalence_loyer_minimale$0, + cst_plafond_quivalence_loyer_l = cst_plafond_quivalence_loyer_l$0, + cst_quivalence_loyer_ligible = cst_quivalence_loyer_ligible$0, + cst_n_nombre_parts_d832_25$0 = cst_n_nombre_parts_d832_25$1, + cst_coefficient_r_d832_25 = cst_coefficient_r_d832_25$0, + cst_coefficient_multiplicateur = cst_coefficient_multiplicateur$0, + _Q_ = [0, cst_CalculAidePersonnalis_eLog$1, 0], + cst_n_nombre_parts_d832_25 = cst_n_nombre_parts_d832_25$1, + _P_ = [0, cst_CalculNombrePartLogementFo, 0], + cst_montant$0 = cst_montant$2, + _O_ = [0, cst_Calcul_quivalenceLoyerMini, 0], + cst_traitement_aide_finale = cst_traitement_aide_finale$9, + cst_aide_finale_formule = cst_aide_finale_formule$9, + cst_participation_personnelle = cst_participation_personnelle$0, + cst_taux_composition_familiale = cst_taux_composition_familiale$0, + cst_participation_minimale = cst_participation_minimale$0, + cst_plafond_loyer_d823_16_2 = cst_plafond_loyer_d823_16_2$0, + cst_montant_forfaitaire_charge = cst_montant_forfaitaire_charge$2, + _N_ = [0, cst_CalculAidePersonnalis_eLog$0, 0], + cst_montant = cst_montant$2, + _M_ = [0, cst_ContributionsSocialesAides, 0], + cst_ressources_prises_en_compt = cst_ressources_prises_en_compt$0, + _L_ = [0, cst_RessourcesAidesPersonnelle, 0], + cst_montant_prime_d_m_nagement = cst_montant_prime_d_m_nagement$0, + _K_ = [0, cst_ligibilit_PrimeDeD_m_nagem, 0], + cst_coefficents_enfants_garde_ = cst_coefficents_enfants_garde_$3, + cst_nombre_personnes_charge_pr = cst_nombre_personnes_charge_pr$2, + cst_ligibilit = cst_ligibilit$4, + cst_date_courante = cst_date_courante$1, + _J_ = [0, cst_ligibilit_AidePersonnalis_, 0], + cst_ressources = cst_ressources$1, + cst_dur_e_r_sidence_durant_p_r = + "dur\xc3\xa9e_r\xc3\xa9sidence_durant_p\xc3\xa9riode_r_822_3_1_sup\xc3\xa9rieure_\xc3\xa0_6_mois", + _I_ = [0, "PersonneVivantHabituellementAuFoyer", 0], + cst_satisfait_art_4_ordonnance = "satisfait_art_4_ordonnance_2002_mayotte", + cst_satisfait_conditions_l512_ = + "satisfait_conditions_l512_2_code_s\xc3\xa9curit\xc3\xa9_sociale", + _H_ = [0, "Conditions\xc3\x89trangers", 0], + cst_ne_produisant_pas_revenu_p = + "ne_produisant_pas_revenu_p\xc3\xa9riode_r822_3_3_r822_4", + cst_produisant_revenu_p_riode_ = + "produisant_revenu_p\xc3\xa9riode_r822_3_3_r822_4", + _G_ = [0, "Patrimoine", 0], + cst_conforme_article_l442_1 = "conforme_article_l442_1", + cst_date_naissance_personne_so = "date_naissance_personne_sous_location", + _F_ = [0, "PersonneSousLocation", 0], + cst_conventionn_livre_III_titr$0 = + "conventionn\xc3\xa9_livre_III_titre_II_chap_I_sec_3", + _E_ = [0, "ConventionANHA", 0], + cst_r_duction_loyer_solidarit_ = + "r\xc3\xa9duction_loyer_solidarit\xc3\xa9_per\xc3\xa7ue", + cst_conventionn_livre_III_titr = cst_conventionn_livre_III_titr$2, + _D_ = [0, "ConventionBailleurSocial", 0], + cst_PrestationAccueilJeuneEnfa = "PrestationAccueilJeuneEnfant", + cst_AllocationsFamiliales$0 = cst_AllocationsFamiliales$1, + cst_Compl_mentFamilial$0 = cst_Compl_mentFamilial$1, + cst_AllocationLogement = "AllocationLogement", + cst_Allocation_ducationEnfantH = + "Allocation\xc3\x89ducationEnfantHandicap\xc3\xa9", + cst_AllocationSoutienFamilial$0 = cst_AllocationSoutienFamilial$1, + cst_AllocationRentr_eScolaire = "AllocationRentr\xc3\xa9eScolaire", + cst_AllocationJournali_rePrese = + "AllocationJournali\xc3\xa8rePresenceParentale", + _C_ = [0, "\xc3\x89l\xc3\xa9mentPrestationsFamiliales", 0], + cst_Avant = "Avant", + cst_Pendant = "Pendant", + cst_Apr_s = "Apr\xc3\xa8s", + _B_ = [0, "SituationObligationScolaire", 0], + cst_GardeAltern_ePartageAlloca = "GardeAltern\xc3\xa9ePartageAllocations", + cst_GardeAltern_eAllocataireUn = "GardeAltern\xc3\xa9eAllocataireUnique", + cst_EffectiveEtPermanente$0 = cst_EffectiveEtPermanente$1, + cst_ServicesSociauxAllocationV = + "ServicesSociauxAllocationVers\xc3\xa9e\xc3\x80LaFamille", + cst_ServicesSociauxAllocationV$0 = + "ServicesSociauxAllocationVers\xc3\xa9eAuxServicesSociaux", + _A_ = [0, "PriseEnChargeEnfant", 0], + cst_Guadeloupe = "Guadeloupe", + cst_Guyane = "Guyane", + cst_Martinique = "Martinique", + cst_LaR_union = "LaR\xc3\xa9union", + cst_SaintBarth_lemy = "SaintBarth\xc3\xa9lemy", + cst_SaintMartin = "SaintMartin", + cst_M_tropole = "M\xc3\xa9tropole", + cst_SaintPierreEtMiquelon = "SaintPierreEtMiquelon", + cst_Mayotte = "Mayotte", + _z_ = [0, "Collectivit\xc3\xa9", 0], + cst_PersonneSeule = "PersonneSeule", + cst_Couple = "Couple", + _y_ = [0, "SituationFamilialeCalculAPL", 0], + cst_tudiantLog_EnChambreCROUS = "\xc3\x89tudiantLog\xc3\xa9EnChambreCROUS", + cst_tudiantLog_EnChambreCROUSR = + "\xc3\x89tudiantLog\xc3\xa9EnChambreCROUSR\xc3\xa9habilit\xc3\xa9e", + cst_Personnes_g_esSelon3DeD842 = + "Personnes\xc3\x82g\xc3\xa9esSelon3DeD842_16", + cst_AutresPersonnes = "AutresPersonnes", + _x_ = + [0, "Cat\xc3\xa9gorie\xc3\x89quivalenceLoyerAllocationLogementFoyer", 0], + cst_LogementPersonnes_g_esOuHa = + "LogementPersonnes\xc3\x82g\xc3\xa9esOuHandicap\xc3\xa9es", + cst_R_sidenceSociale = "R\xc3\xa9sidenceSociale", + cst_FoyerJeunesTrvailleursOuMi = + "FoyerJeunesTrvailleursOuMigrantsConventionn\xc3\xa9L353_2Avant1995", + cst_Autre$1 = cst_Autre$2, + _w_ = [0, "TypeLogementFoyer", 0], + cst_EffectiveEtPermanente = cst_EffectiveEtPermanente$1, + cst_R_sidenceAltern_eAllocatai = + "R\xc3\xa9sidenceAltern\xc3\xa9eAllocataireUnique", + cst_R_sidenceAltern_eAllocatio = + "R\xc3\xa9sidenceAltern\xc3\xa9eAllocationsPartag\xc3\xa9e", + _v_ = [0, "PriseEnCharge", 0], + cst_C_libataire = "C\xc3\xa9libataire", + cst_Mari_s = "Mari\xc3\xa9s", + cst_Pacs_s = "Pacs\xc3\xa9s", + cst_Concubins = "Concubins", + cst_C_libataireS_par_DeFait = + "C\xc3\xa9libataireS\xc3\xa9par\xc3\xa9DeFait", + cst_ConcubinageDontS_par_DeFai = + "ConcubinageDontS\xc3\xa9par\xc3\xa9DeFait", + _u_ = [0, "SituationFamiliale", 0], + cst_AidePersonnalis_eLogement = "AidePersonnalis\xc3\xa9eLogement", + cst_AllocationLogementFamilial$0 = cst_AllocationLogementFamilial$1, + cst_AllocationLogementSociale$0 = cst_AllocationLogementSociale$1, + _t_ = [0, "TypeAidesPersonnelleLogement", 0], + cst_Accord = "Accord", + cst_PasdAccord = "PasdAccord", + _s_ = [0, "AccordFinancementRepr\xc3\xa9sentant\xc3\x89tatOutreMer", 0], + cst_Pas_ligible = "Pas\xc3\x89ligible", + cst_AllocationLogementFamilial = cst_AllocationLogementFamilial$1, + cst_AllocationLogementSociale = cst_AllocationLogementSociale$1, + _r_ = [0, "Type\xc3\x89ligibilit\xc3\xa9AllocationLogement", 0], + cst_Impay_Loyer = "Impay\xc3\xa9Loyer", + cst_Impay_Pr_t = "Impay\xc3\xa9Pr\xc3\xaat", + _q_ = [0, "ModeOccupationImpay\xc3\xa9", 0], + cst_TotalAnnuel_ch_ances = "TotalAnnuel\xc3\x89ch\xc3\xa9ances", + cst_Mensualit = "Mensualit\xc3\xa9", + cst_Loyer = "Loyer", + _p_ = [0, "D\xc3\xa9penseLogement", 0], + cst_Bailleur = "Bailleur", + cst_B_n_ficiaire = "B\xc3\xa9n\xc3\xa9ficiaire", + cst_tablissementHabilit = "\xc3\x89tablissementHabilit\xc3\xa9", + _o_ = [0, "Versement\xc3\x80", 0], + cst_OuiAvecLoyerOuCharges = "OuiAvecLoyerOuCharges", + cst_Non$0 = cst_Non$2, + _n_ = [0, "PaiementLogementDistinctProfessionnel", 0], + cst_Zone1 = "Zone1", + cst_Zone2 = "Zone2", + cst_Zone3 = "Zone3", + _m_ = [0, "ZoneDHabitation", 0], + cst_DateDeNaissance = "DateDeNaissance", + cst_AvantPremierJourMoisCivilT = + "AvantPremierJourMoisCivilTroisi\xc3\xa8meMoisDeGrossesse", + cst_Apr_sPremierJourMoisCivilT = + "Apr\xc3\xa8sPremierJourMoisCivilTroisi\xc3\xa8meMoisDeGrossesse", + _l_ = [0, "DateDeNaissanceOuMoisDeGrossesse", 0], + cst_Ascendant = "Ascendant", + cst_Descendant = "Descendant", + cst_Collat_ralDeuxi_meTroisi_m = + "Collat\xc3\xa9ralDeuxi\xc3\xa8meTroisi\xc3\xa8meDegr\xc3\xa9", + _k_ = [0, "Parent\xc3\xa9", 0], + cst_PasDeGardeAltern_e = "PasDeGardeAltern\xc3\xa9e", + cst_GardeAltern_eCoefficientPr = + "GardeAltern\xc3\xa9eCoefficientPriseEnCharge", + _j_ = [0, "SituationGardeAltern\xc3\xa9e", 0], + cst_DemandeurOuConjointOuParen = + "DemandeurOuConjointOuParentOuViaPartsSoci\xc3\xa9t\xc3\xa9s", + cst_Autre$0 = cst_Autre$2, + _i_ = [0, "ParentOuAutre", 0], + cst_AllocationsFamiliales = cst_AllocationsFamiliales$1, + cst_Compl_mentFamilial = cst_Compl_mentFamilial$1, + cst_AllocationJeuneEnfant = "AllocationJeuneEnfant", + cst_AllocationSoutienFamilial = cst_AllocationSoutienFamilial$1, + cst_AllocationSoutienEnfantHan = "AllocationSoutienEnfantHandicap\xc3\xa9", + cst_AllocationAdulteHandicap = "AllocationAdulteHandicap\xc3\xa9", + _h_ = [0, "PrestationRe\xc3\xa7ue", 0], + cst_Revenu$0 = cst_Revenu$1, + cst_Infini$0 = cst_Infini$1, + _g_ = [0, "LimiteTrancheD\xc3\xa9cimal", 0], + cst_Revenu = cst_Revenu$1, + cst_Infini = cst_Infini$1, + _f_ = [0, "LimiteTranche", 0], + cst_Oui = cst_Oui$1, + cst_Non = cst_Non$2, + _e_ = [0, "Am\xc3\xa9lior\xc3\xa9ParOccupant", 0], + cst_ObjectifD_cenceLogement = "ObjectifD\xc3\xa9cenceLogement", + cst_Pr_vuDansListeR321_15 = "Pr\xc3\xa9vuDansListeR321_15", + cst_AgrandirOuRendreHabitableD = "AgrandirOuRendreHabitableD331_63", + cst_PasDeTravaux$0 = cst_PasDeTravaux$1, + _d_ = [0, "TypeTravauxLogementR842_5", 0], + cst_TravauxPourAcquisitionD832 = "TravauxPourAcquisitionD832_15_1", + cst_TravauxSurLogementD_j_Acqu = + "TravauxSurLogementD\xc3\xa9j\xc3\xa0AcquisD832_15_2", + cst_PasDeTravaux = cst_PasDeTravaux$1, + _c_ = [0, "TypeTravauxLogementD832_15", 0], + cst_Demandeur = cst_Demandeur$0, + cst_VendeurQuandDemandeurACont = + "VendeurQuandDemandeurAContratLocationAccession", + _b_ = [0, "TitulairePr\xc3\xaat", 0], + cst_D331_32 = "D331_32", + cst_D331_63_64 = "D331_63_64", + cst_D331_59_8 = "D331_59_8", + cst_D331_76_1 = "D331_76_1", + cst_Autre = cst_Autre$2, + _a_ = [0, "TypePr\xc3\xaat", 0]; + function embed_type_pret(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _cja_ = [0, cst_D331_32, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _cja_ = + [0, cst_D331_63_64, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + case 2: + var + x$2 = x[1], + _cja_ = [0, cst_D331_59_8, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + break; + case 3: + var + x$3 = x[1], + _cja_ = [0, cst_D331_76_1, caml_call1(Runtime_ocaml_Runtime[11], x$3)]; + break; + default: + var + x$4 = x[1], + _cja_ = [0, cst_Autre, caml_call1(Runtime_ocaml_Runtime[11], x$4)]; + } + return [6, _a_, _cja_]; + } + var TitulairePret = [0]; + function embed_titulaire_pret(x){ + if(0 === x[0]) + var + x$0 = x[1], + _ci$_ = [0, cst_Demandeur, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + else + var + x$1 = x[1], + _ci$_ = + [0, + cst_VendeurQuandDemandeurACont, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + return [6, _b_, _ci$_]; + } + var TypeTravauxLogementD83215 = [0]; + function embed_type_travaux_logement_d8(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ci__ = + [0, + cst_TravauxPourAcquisitionD832, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ci__ = + [0, + cst_TravauxSurLogementD_j_Acqu, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + default: + var + x$2 = x[1], + _ci__ = + [0, cst_PasDeTravaux, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + } + return [6, _c_, _ci__]; + } + var TypeTravauxLogementR8425 = [0]; + function embed_type_travaux_logement_r8(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ci9_ = + [0, + cst_ObjectifD_cenceLogement, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ci9_ = + [0, + cst_Pr_vuDansListeR321_15, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + case 2: + var + x$2 = x[1], + _ci9_ = + [0, + cst_AgrandirOuRendreHabitableD, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + break; + default: + var + x$3 = x[1], + _ci9_ = + [0, cst_PasDeTravaux$0, caml_call1(Runtime_ocaml_Runtime[11], x$3)]; + } + return [6, _d_, _ci9_]; + } + var AmelioreParOccupant = [0]; + function embed_ameliore_par_occupant(x){ + if(0 === x[0]) + var + x$0 = x[1], + _ci8_ = [0, cst_Oui, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + else + var + x$1 = x[1], + _ci8_ = [0, cst_Non, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + return [6, _e_, _ci8_]; + } + var LimiteTranche = [0]; + function embed_limite_tranche(x){ + if(0 === x[0]) + var + x$0 = x[1], + _ci7_ = [0, cst_Revenu, caml_call1(Runtime_ocaml_Runtime[13], x$0)]; + else + var + x$1 = x[1], + _ci7_ = [0, cst_Infini, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + return [6, _f_, _ci7_]; + } + var LimiteTrancheDecimal = [0]; + function embed_limite_tranche_decimal(x){ + if(0 === x[0]) + var + x$0 = x[1], + _ci6_ = [0, cst_Revenu$0, caml_call1(Runtime_ocaml_Runtime[15], x$0)]; + else + var + x$1 = x[1], + _ci6_ = [0, cst_Infini$0, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + return [6, _g_, _ci6_]; + } + var PrestationRecue = [0]; + function embed_prestation_recue(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ci5_ = + [0, + cst_AllocationsFamiliales, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ci5_ = + [0, + cst_Compl_mentFamilial, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + case 2: + var + x$2 = x[1], + _ci5_ = + [0, + cst_AllocationJeuneEnfant, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + break; + case 3: + var + x$3 = x[1], + _ci5_ = + [0, + cst_AllocationSoutienFamilial, + caml_call1(Runtime_ocaml_Runtime[11], x$3)]; + break; + case 4: + var + x$4 = x[1], + _ci5_ = + [0, + cst_AllocationSoutienEnfantHan, + caml_call1(Runtime_ocaml_Runtime[11], x$4)]; + break; + default: + var + x$5 = x[1], + _ci5_ = + [0, + cst_AllocationAdulteHandicap, + caml_call1(Runtime_ocaml_Runtime[11], x$5)]; + } + return [6, _h_, _ci5_]; + } + var ParentOuAutre = [0]; + function embed_parent_ou_autre(x){ + if(0 === x[0]) + var + x$0 = x[1], + _ci4_ = + [0, + cst_DemandeurOuConjointOuParen, + caml_call1(Runtime_ocaml_Runtime[15], x$0)]; + else + var + x$1 = x[1], + _ci4_ = [0, cst_Autre$0, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + return [6, _i_, _ci4_]; + } + var SituationGardeAlternee = [0]; + function embed_situation_garde_alternee(x){ + if(0 === x[0]) + var + x$0 = x[1], + _ci3_ = + [0, + cst_PasDeGardeAltern_e, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + else + var + x$1 = x[1], + _ci3_ = + [0, + cst_GardeAltern_eCoefficientPr, + caml_call1(Runtime_ocaml_Runtime[15], x$1)]; + return [6, _j_, _ci3_]; + } + var Parente = [0]; + function embed_parente(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ci2_ = [0, cst_Ascendant, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ci2_ = + [0, cst_Descendant, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + default: + var + x$2 = x[1], + _ci2_ = + [0, + cst_Collat_ralDeuxi_meTroisi_m, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + } + return [6, _k_, _ci2_]; + } + var DateDeNaissanceOuMoisDeGrosses = [0]; + function embed_date_de_naissance_ou_moi(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ci1_ = + [0, cst_DateDeNaissance, caml_call1(Runtime_ocaml_Runtime[16], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ci1_ = + [0, + cst_AvantPremierJourMoisCivilT, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + default: + var + x$2 = x[1], + _ci1_ = + [0, + cst_Apr_sPremierJourMoisCivilT, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + } + return [6, _l_, _ci1_]; + } + var ZoneDHabitation = [0]; + function embed_zone_d_habitation(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ci0_ = [0, cst_Zone1, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ci0_ = [0, cst_Zone2, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + default: + var + x$2 = x[1], + _ci0_ = [0, cst_Zone3, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + } + return [6, _m_, _ci0_]; + } + var PaiementLogementDistinctProfes = [0]; + function embed_paiement_logement_distin(x){ + if(0 === x[0]) + var + x$0 = x[1], + _ciZ_ = + [0, + cst_OuiAvecLoyerOuCharges, + caml_call1(Runtime_ocaml_Runtime[13], x$0)]; + else + var + x$1 = x[1], + _ciZ_ = [0, cst_Non$0, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + return [6, _n_, _ciZ_]; + } + var VersementA = [0]; + function embed_versement_a(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ciY_ = [0, cst_Bailleur, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ciY_ = + [0, cst_B_n_ficiaire, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + default: + var + x$2 = x[1], + _ciY_ = + [0, + cst_tablissementHabilit, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + } + return [6, _o_, _ciY_]; + } + var DepenseLogement = [0]; + function embed_depense_logement(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ciX_ = + [0, + cst_TotalAnnuel_ch_ances, + caml_call1(Runtime_ocaml_Runtime[13], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ciX_ = [0, cst_Mensualit, caml_call1(Runtime_ocaml_Runtime[13], x$1)]; + break; + default: + var + x$2 = x[1], + _ciX_ = [0, cst_Loyer, caml_call1(Runtime_ocaml_Runtime[13], x$2)]; + } + return [6, _p_, _ciX_]; + } + var ModeOccupationImpaye = [0]; + function embed_mode_occupation_impaye(x){ + if(0 === x[0]) + var + x$0 = x[1], + _ciW_ = [0, cst_Impay_Loyer, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + else + var + x$1 = x[1], + _ciW_ = [0, cst_Impay_Pr_t, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + return [6, _q_, _ciW_]; + } + var TypeEligibiliteAllocationLogem = [0]; + function embed_type_eligibilite_allocat(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ciV_ = + [0, cst_Pas_ligible, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ciV_ = + [0, + cst_AllocationLogementFamilial, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + default: + var + x$2 = x[1], + _ciV_ = + [0, + cst_AllocationLogementSociale, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + } + return [6, _r_, _ciV_]; + } + var AccordFinancementRepresentantE = [0]; + function embed_accord_financement_repre(x){ + if(0 === x[0]) + var + x$0 = x[1], + _ciU_ = [0, cst_Accord, caml_call1(Runtime_ocaml_Runtime[16], x$0)]; + else + var + x$1 = x[1], + _ciU_ = [0, cst_PasdAccord, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + return [6, _s_, _ciU_]; + } + var TypeAidesPersonnelleLogement = [0]; + function embed_type_aides_personnelle_l(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ciT_ = + [0, + cst_AidePersonnalis_eLogement, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ciT_ = + [0, + cst_AllocationLogementFamilial$0, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + default: + var + x$2 = x[1], + _ciT_ = + [0, + cst_AllocationLogementSociale$0, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + } + return [6, _t_, _ciT_]; + } + var SituationFamiliale = [0]; + function embed_situation_familiale(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ciS_ = + [0, cst_C_libataire, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ciS_ = [0, cst_Mari_s, caml_call1(Runtime_ocaml_Runtime[16], x$1)]; + break; + case 2: + var + x$2 = x[1], + _ciS_ = [0, cst_Pacs_s, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + break; + case 3: + var + x$3 = x[1], + _ciS_ = [0, cst_Concubins, caml_call1(Runtime_ocaml_Runtime[11], x$3)]; + break; + case 4: + var + x$4 = x[1], + _ciS_ = + [0, + cst_C_libataireS_par_DeFait, + caml_call1(Runtime_ocaml_Runtime[11], x$4)]; + break; + default: + var + x$5 = x[1], + _ciS_ = + [0, + cst_ConcubinageDontS_par_DeFai, + caml_call1(Runtime_ocaml_Runtime[11], x$5)]; + } + return [6, _u_, _ciS_]; + } + var PriseEnCharge = [0]; + function embed_prise_en_charge(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ciR_ = + [0, + cst_EffectiveEtPermanente, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ciR_ = + [0, + cst_R_sidenceAltern_eAllocatai, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + default: + var + x$2 = x[1], + _ciR_ = + [0, + cst_R_sidenceAltern_eAllocatio, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + } + return [6, _v_, _ciR_]; + } + var TypeLogementFoyer = [0]; + function embed_type_logement_foyer(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ciQ_ = + [0, + cst_LogementPersonnes_g_esOuHa, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ciQ_ = + [0, + cst_R_sidenceSociale, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + case 2: + var + x$2 = x[1], + _ciQ_ = + [0, + cst_FoyerJeunesTrvailleursOuMi, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + break; + default: + var + x$3 = x[1], + _ciQ_ = [0, cst_Autre$1, caml_call1(Runtime_ocaml_Runtime[11], x$3)]; + } + return [6, _w_, _ciQ_]; + } + var CategorieEquivalenceLoyerAlloc = [0]; + function embed_categorie_equivalence_lo(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ciP_ = + [0, + cst_tudiantLog_EnChambreCROUS, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ciP_ = + [0, + cst_tudiantLog_EnChambreCROUSR, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + case 2: + var + x$2 = x[1], + _ciP_ = + [0, + cst_Personnes_g_esSelon3DeD842, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + break; + default: + var + x$3 = x[1], + _ciP_ = + [0, cst_AutresPersonnes, caml_call1(Runtime_ocaml_Runtime[11], x$3)]; + } + return [6, _x_, _ciP_]; + } + var SituationFamilialeCalculAPL = [0]; + function embed_situation_familiale_calc(x){ + if(0 === x[0]) + var + x$0 = x[1], + _ciO_ = + [0, cst_PersonneSeule, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + else + var + x$1 = x[1], + _ciO_ = [0, cst_Couple, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + return [6, _y_, _ciO_]; + } + var Collectivite = [0]; + function embed_collectivite(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ciN_ = + [0, cst_Guadeloupe, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ciN_ = [0, cst_Guyane, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + case 2: + var + x$2 = x[1], + _ciN_ = + [0, cst_Martinique, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + break; + case 3: + var + x$3 = x[1], + _ciN_ = [0, cst_LaR_union, caml_call1(Runtime_ocaml_Runtime[11], x$3)]; + break; + case 4: + var + x$4 = x[1], + _ciN_ = + [0, cst_SaintBarth_lemy, caml_call1(Runtime_ocaml_Runtime[11], x$4)]; + break; + case 5: + var + x$5 = x[1], + _ciN_ = + [0, cst_SaintMartin, caml_call1(Runtime_ocaml_Runtime[11], x$5)]; + break; + case 6: + var + x$6 = x[1], + _ciN_ = [0, cst_M_tropole, caml_call1(Runtime_ocaml_Runtime[11], x$6)]; + break; + case 7: + var + x$7 = x[1], + _ciN_ = + [0, + cst_SaintPierreEtMiquelon, + caml_call1(Runtime_ocaml_Runtime[11], x$7)]; + break; + default: + var + x$8 = x[1], + _ciN_ = [0, cst_Mayotte, caml_call1(Runtime_ocaml_Runtime[11], x$8)]; + } + return [6, _z_, _ciN_]; + } + var PriseEnChargeEnfant = [0]; + function embed_prise_en_charge_enfant(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ciM_ = + [0, + cst_GardeAltern_ePartageAlloca, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ciM_ = + [0, + cst_GardeAltern_eAllocataireUn, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + case 2: + var + x$2 = x[1], + _ciM_ = + [0, + cst_EffectiveEtPermanente$0, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + break; + case 3: + var + x$3 = x[1], + _ciM_ = + [0, + cst_ServicesSociauxAllocationV, + caml_call1(Runtime_ocaml_Runtime[11], x$3)]; + break; + default: + var + x$4 = x[1], + _ciM_ = + [0, + cst_ServicesSociauxAllocationV$0, + caml_call1(Runtime_ocaml_Runtime[11], x$4)]; + } + return [6, _A_, _ciM_]; + } + var SituationObligationScolaire = [0]; + function embed_situation_obligation_sco(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ciL_ = [0, cst_Avant, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ciL_ = [0, cst_Pendant, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + default: + var + x$2 = x[1], + _ciL_ = [0, cst_Apr_s, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + } + return [6, _B_, _ciL_]; + } + var ElementPrestationsFamiliales = [0]; + function embed_element_prestations_fami(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ciK_ = + [0, + cst_PrestationAccueilJeuneEnfa, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ciK_ = + [0, + cst_AllocationsFamiliales$0, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + case 2: + var + x$2 = x[1], + _ciK_ = + [0, + cst_Compl_mentFamilial$0, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + break; + case 3: + var + x$3 = x[1], + _ciK_ = + [0, + cst_AllocationLogement, + caml_call1(Runtime_ocaml_Runtime[11], x$3)]; + break; + case 4: + var + x$4 = x[1], + _ciK_ = + [0, + cst_Allocation_ducationEnfantH, + caml_call1(Runtime_ocaml_Runtime[11], x$4)]; + break; + case 5: + var + x$5 = x[1], + _ciK_ = + [0, + cst_AllocationSoutienFamilial$0, + caml_call1(Runtime_ocaml_Runtime[11], x$5)]; + break; + case 6: + var + x$6 = x[1], + _ciK_ = + [0, + cst_AllocationRentr_eScolaire, + caml_call1(Runtime_ocaml_Runtime[11], x$6)]; + break; + default: + var + x$7 = x[1], + _ciK_ = + [0, + cst_AllocationJournali_rePrese, + caml_call1(Runtime_ocaml_Runtime[11], x$7)]; + } + return [6, _C_, _ciK_]; + } + var ConventionBailleurSocial = [0]; + function embed_convention_bailleur_soci(x){ + var + _ciJ_ = + [0, + [0, + cst_r_duction_loyer_solidarit_, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + 0]; + return [7, + _D_, + [0, + [0, + cst_conventionn_livre_III_titr, + caml_call1(Runtime_ocaml_Runtime[12], x[1])], + _ciJ_]]; + } + var ConventionANHA = [0]; + function embed_convention_a_n_h_a(x){ + return [7, + _E_, + [0, + [0, + cst_conventionn_livre_III_titr$0, + caml_call1(Runtime_ocaml_Runtime[12], x[1])], + 0]]; + } + var PersonneSousLocation = [0]; + function embed_personne_sous_location(x){ + var + _ciI_ = + [0, + [0, + cst_conforme_article_l442_1, + caml_call1(Runtime_ocaml_Runtime[12], x[2])], + 0]; + return [7, + _F_, + [0, + [0, + cst_date_naissance_personne_so, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _ciI_]]; + } + var Patrimoine = [0]; + function embed_patrimoine(x){ + var + _ciH_ = + [0, + [0, + cst_ne_produisant_pas_revenu_p, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + 0]; + return [7, + _G_, + [0, + [0, + cst_produisant_revenu_p_riode_, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _ciH_]]; + } + var ConditionsEtrangers = [0]; + function embed_conditions_etrangers(x){ + var + _ciG_ = + [0, + [0, + cst_satisfait_art_4_ordonnance, + caml_call1(Runtime_ocaml_Runtime[12], x[2])], + 0]; + return [7, + _H_, + [0, + [0, + cst_satisfait_conditions_l512_, + caml_call1(Runtime_ocaml_Runtime[12], x[1])], + _ciG_]]; + } + var PersonneVivantHabituellementAu = [0]; + function embed_personne_vivant_habituel(x){ + var + _ciF_ = + [0, + [0, cst_ressources, caml_call1(Runtime_ocaml_Runtime[13], x[2])], + 0]; + return [7, + _I_, + [0, + [0, + cst_dur_e_r_sidence_durant_p_r, + caml_call1(Runtime_ocaml_Runtime[12], x[1])], + _ciF_]]; + } + var EligibiliteAidePersonnaliseeLo = [0]; + function embed_eligibilite_aide_personn(x){ + var + _ciC_ = + [0, + [0, + cst_coefficents_enfants_garde_, + caml_call2 + (Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15], x[4])], + 0], + _ciD_ = + [0, + [0, + cst_nombre_personnes_charge_pr, + caml_call1(Runtime_ocaml_Runtime[14], x[3])], + _ciC_], + _ciE_ = + [0, + [0, cst_ligibilit, caml_call1(Runtime_ocaml_Runtime[12], x[2])], + _ciD_]; + return [7, + _J_, + [0, + [0, + cst_date_courante, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _ciE_]]; + } + var EligibilitePrimeDeDemenagement = [0]; + function embed_eligibilite_prime_de_dem(x){ + return [7, + _K_, + [0, + [0, + cst_montant_prime_d_m_nagement, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + 0]]; + } + var RessourcesAidesPersonnelleLoge = [0]; + function embed_ressources_aides_personn(x){ + return [7, + _L_, + [0, + [0, + cst_ressources_prises_en_compt, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + 0]]; + } + var ContributionsSocialesAidesPers = [0]; + function embed_contributions_sociales_a(x){ + return [7, + _M_, + [0, + [0, cst_montant, caml_call1(Runtime_ocaml_Runtime[10], x[1])], + 0]]; + } + var CalculAidePersonnaliseeLogemen = [0]; + function embed_calcul_aide_personnalise(x){ + var + _ciw_ = + [0, + [0, + cst_traitement_aide_finale, + caml_call1(Runtime_ocaml_Runtime[10], x[7])], + 0], + _cix_ = + [0, + [0, + cst_aide_finale_formule, + caml_call1(Runtime_ocaml_Runtime[13], x[6])], + _ciw_], + _ciy_ = + [0, + [0, + cst_participation_personnelle, + caml_call1(Runtime_ocaml_Runtime[13], x[5])], + _cix_], + _ciz_ = + [0, + [0, + cst_taux_composition_familiale, + caml_call1(Runtime_ocaml_Runtime[15], x[4])], + _ciy_], + _ciA_ = + [0, + [0, + cst_participation_minimale, + caml_call1(Runtime_ocaml_Runtime[13], x[3])], + _ciz_], + _ciB_ = + [0, + [0, + cst_plafond_loyer_d823_16_2, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _ciA_]; + return [7, + _N_, + [0, + [0, + cst_montant_forfaitaire_charge, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _ciB_]]; + } + var CalculEquivalenceLoyerMinimale = [0]; + function embed_calcul_equivalence_loyer(x){ + return [7, + _O_, + [0, + [0, cst_montant$0, caml_call1(Runtime_ocaml_Runtime[13], x[1])], + 0]]; + } + var CalculNombrePartLogementFoyer = [0]; + function embed_calcul_nombre_part_logem(x){ + return [7, + _P_, + [0, + [0, + cst_n_nombre_parts_d832_25, + caml_call1(Runtime_ocaml_Runtime[15], x[1])], + 0]]; + } + var CalculAidePersonnaliseeLogemen$0 = [0]; + function embed_calcul_aide_personnalise$0(x){ + var + _cio_ = + [0, + [0, + cst_traitement_aide_finale$0, + caml_call1(Runtime_ocaml_Runtime[10], x[9])], + 0], + _cip_ = + [0, + [0, + cst_aide_finale_formule$0, + caml_call1(Runtime_ocaml_Runtime[13], x[8])], + _cio_], + _ciq_ = + [0, + [0, + cst_coefficient_prise_en_charg, + caml_call1(Runtime_ocaml_Runtime[15], x[7])], + _cip_], + _cir_ = + [0, + [0, + cst_quivalence_loyer_minimale, + caml_call1(Runtime_ocaml_Runtime[13], x[6])], + _ciq_], + _cis_ = + [0, + [0, + cst_plafond_quivalence_loyer_l, + caml_call1(Runtime_ocaml_Runtime[13], x[5])], + _cir_], + _cit_ = + [0, + [0, + cst_quivalence_loyer_ligible, + caml_call1(Runtime_ocaml_Runtime[13], x[4])], + _cis_], + _ciu_ = + [0, + [0, + cst_n_nombre_parts_d832_25$0, + caml_call1(Runtime_ocaml_Runtime[15], x[3])], + _cit_], + _civ_ = + [0, + [0, + cst_coefficient_r_d832_25, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _ciu_]; + return [7, + _Q_, + [0, + [0, + cst_coefficient_multiplicateur, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _civ_]]; + } + var CalculNombrePartsAccessionProp = [0]; + function embed_calcul_nombre_parts_acce(x){ + return [7, + _R_, + [0, + [0, + cst_n_nombre_parts_d832_11, + caml_call1(Runtime_ocaml_Runtime[15], x[1])], + 0]]; + } + var CalculAidePersonnaliseeLogemen$1 = [0]; + function embed_calcul_aide_personnalise$1(x){ + var + _cik_ = + [0, + [0, + cst_traitement_aide_finale$1, + caml_call1(Runtime_ocaml_Runtime[10], x[5])], + 0], + _cil_ = + [0, + [0, + cst_aide_finale_formule$1, + caml_call1(Runtime_ocaml_Runtime[13], x[4])], + _cik_], + _cim_ = + [0, + [0, + cst_coefficient_prise_en_charg$0, + caml_call1(Runtime_ocaml_Runtime[15], x[3])], + _cil_], + _cin_ = + [0, + [0, + cst_mensualit_minimale, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _cim_]; + return [7, + _S_, + [0, + [0, + cst_mensualit_ligible, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _cin_]]; + } + var TraitementFormuleAideFinale = [0]; + function embed_traitement_formule_aide_(x){ + var + _cij_ = + [0, + [0, + cst_traitement_aide_finale$2, + caml_call1(Runtime_ocaml_Runtime[10], x[2])], + 0]; + return [7, + _T_, + [0, + [0, + cst_aide_finale_formule$2, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _cij_]]; + } + var CalculAidePersonnaliseeLogemen$2 = [0]; + function embed_calcul_aide_personnalise$2(x){ + var + _cii_ = + [0, + [0, + cst_traitement_aide_finale$3, + caml_call1(Runtime_ocaml_Runtime[10], x[2])], + 0]; + return [7, + _U_, + [0, + [0, + cst_aide_finale_formule$3, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _cii_]]; + } + var InfosChangementLogementD8424 = [0]; + function embed_infos_changement_logemen(x){ + var + _cih_ = + [0, + [0, + cst_ancienne_allocation_logeme, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + 0]; + return [7, + _V_, + [0, + [0, + cst_ancien_loyer_principal, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _cih_]]; + } + var CalculAllocationLogementLocati = [0]; + function embed_calcul_allocation_logeme(x){ + var + _cig_ = + [0, + [0, + cst_traitement_aide_finale$4, + caml_call1(Runtime_ocaml_Runtime[10], x[2])], + 0]; + return [7, + _W_, + [0, + [0, + cst_aide_finale_formule$4, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _cig_]]; + } + var CalculAllocationLogementAccess = [0]; + function embed_calcul_allocation_logeme$0(x){ + var + _cif_ = + [0, + [0, + cst_traitement_aide_finale$5, + caml_call1(Runtime_ocaml_Runtime[10], x[2])], + 0]; + return [7, + _X_, + [0, + [0, + cst_aide_finale_formule$5, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _cif_]]; + } + var CalculAllocationLogementFoyer = [0]; + function embed_calcul_allocation_logeme$1(x){ + var + _cia_ = + [0, + [0, + cst_traitement_aide_finale$6, + caml_call1(Runtime_ocaml_Runtime[10], x[6])], + 0], + _cib_ = + [0, + [0, + cst_aide_finale_formule$6, + caml_call1(Runtime_ocaml_Runtime[13], x[5])], + _cia_], + _cic_ = + [0, + [0, cst_loyer_minimal, caml_call1(Runtime_ocaml_Runtime[13], x[4])], + _cib_], + _cid_ = + [0, + [0, + cst_montant_forfaitaire_charge$0, + caml_call1(Runtime_ocaml_Runtime[13], x[3])], + _cic_], + _cie_ = + [0, + [0, cst_quivalence_loyer, caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _cid_]; + return [7, + _Y_, + [0, + [0, + cst_coefficient_prise_en_charg$1, + caml_call1(Runtime_ocaml_Runtime[15], x[1])], + _cie_]]; + } + var CalculAllocationLogement = [0]; + function embed_calcul_allocation_logeme$2(x){ + var + _ch$_ = + [0, + [0, + cst_traitement_aide_finale$7, + caml_call1(Runtime_ocaml_Runtime[10], x[2])], + 0]; + return [7, + _Z_, + [0, + [0, + cst_aide_finale_formule$7, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _ch$_]]; + } + var OuvertureDroitsRetraite = [0]; + function embed_ouverture_droits_retrait(x){ + return [7, + ___, + [0, + [0, + cst_ge_ouverture_droit, + caml_call1(Runtime_ocaml_Runtime[17], x[1])], + 0]]; + } + var ImpayeDepenseLogement = [0]; + function embed_impaye_depense_logement(x){ + return [7, + _$_, + [0, + [0, + cst_montant_impay, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + 0]]; + } + var CalculetteAidesAuLogement = [0]; + function embed_calculette_aides_au_loge(x){ + var + _ch8_ = + [0, + [0, + cst_coefficents_enfants_garde_$0, + caml_call2 + (Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15], x[4])], + 0], + _ch9_ = + [0, + [0, + cst_traitement_aide_finale$8, + caml_call1(Runtime_ocaml_Runtime[10], x[3])], + _ch8_], + _ch__ = + [0, + [0, + cst_aide_finale_formule$8, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _ch9_]; + return [7, + _aa_, + [0, + [0, cst_ligibilit$0, caml_call1(Runtime_ocaml_Runtime[12], x[1])], + _ch__]]; + } + var CalculetteAidesAuLogementGarde = [0]; + function embed_calculette_aides_au_loge$0(x){ + var + _ch7_ = + [0, + [0, cst_aide_finale, caml_call1(Runtime_ocaml_Runtime[13], x[2])], + 0]; + return [7, + _ab_, + [0, + [0, cst_ligibilit$1, caml_call1(Runtime_ocaml_Runtime[12], x[1])], + _ch7_]]; + } + var BaseMensuelleAllocationsFamili = [0]; + function embed_base_mensuelle_allocatio(x){ + return [7, + _ac_, + [0, + [0, cst_montant$1, caml_call1(Runtime_ocaml_Runtime[13], x[1])], + 0]]; + } + var VerificationAgeInferieurOuEgal = [0]; + function embed_verification_age_inferie(x){ + return [7, + _ad_, + [0, + [0, + cst_est_inf_rieur_ou_gal, + caml_call1(Runtime_ocaml_Runtime[12], x[1])], + 0]]; + } + var VerificationAgeSuperieurA = [0]; + function embed_verification_age_superie(x){ + return [7, + _ae_, + [0, + [0, + cst_est_sup_rieur, + caml_call1(Runtime_ocaml_Runtime[12], x[1])], + 0]]; + } + var Smic = [0]; + function embed_smic(x){ + return [7, + _af_, + [0, + [0, + cst_brut_horaire, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + 0]]; + } + var NeufOuAncien = [0]; + function embed_neuf_ou_ancien(x){ + if(0 === x[0]) + var + x$0 = x[1], + _ch6_ = [0, cst_Neuf, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + else + var + x$1 = x[1], + _ch6_ = [0, cst_Ancien, embed_ameliore_par_occupant(x$1)]; + return [6, _ag_, _ch6_]; + } + var TrancheRevenu = [0]; + function embed_tranche_revenu(x){ + var + _ch4_ = + [0, [0, cst_taux, caml_call1(Runtime_ocaml_Runtime[15], x[3])], 0], + _ch5_ = + [0, [0, cst_bas, caml_call1(Runtime_ocaml_Runtime[13], x[2])], _ch4_]; + return [7, _ah_, [0, [0, cst_haut, embed_limite_tranche(x[1])], _ch5_]]; + } + var TrancheRevenuDecimal = [0]; + function embed_tranche_revenu_decimal(x){ + var + _ch2_ = + [0, [0, cst_taux$0, caml_call1(Runtime_ocaml_Runtime[15], x[3])], 0], + _ch3_ = + [0, [0, cst_bas$0, caml_call1(Runtime_ocaml_Runtime[15], x[2])], _ch2_]; + return [7, + _ai_, + [0, [0, cst_haut$0, embed_limite_tranche_decimal(x[1])], _ch3_]]; + } + var AutrePersonneACharge = [0]; + function embed_autre_personne_a_charge(x){ + var + _chW_ = + [0, + [0, + cst_titulaire_allocation_perso, + caml_call1(Runtime_ocaml_Runtime[12], x[7])], + 0], + _chX_ = + [0, + [0, + cst_b_n_ficiaire_l161_19_l351_, + caml_call1(Runtime_ocaml_Runtime[12], x[6])], + _chW_], + _chY_ = + [0, + [0, + cst_incapacit_80_pourcent_ou_r, + caml_call1(Runtime_ocaml_Runtime[12], x[5])], + _chX_], + _chZ_ = [0, [0, cst_parent, embed_parente(x[4])], _chY_], + _ch0_ = + [0, + [0, + cst_ascendant_descendant_colla, + caml_call1(Runtime_ocaml_Runtime[12], x[3])], + _chZ_], + _ch1_ = + [0, + [0, cst_ressources$0, caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _ch0_]; + return [7, + _aj_, + [0, + [0, + cst_date_naissance, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _ch1_]]; + } + var DateNaissanceTroisiemeOuDernie = [0]; + function embed_date_naissance_troisieme(x){ + if(0 === x[0]) + var + x$0 = x[1], + _chV_ = + [0, + cst_MoinsDeTroisEnfants, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + else + var + x$1 = x[1], + _chV_ = [0, cst_PlusDeTroisEnfants, embed_date_de_naissance_ou_moi(x$1)]; + return [6, _ak_, _chV_]; + } + var EligibiliteAllocationLogement = [0]; + function embed_eligibilite_allocation_l(x){ + var + _chT_ = + [0, + [0, + cst_coefficents_enfants_garde_$1, + caml_call2 + (Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15], x[3])], + 0], + _chU_ = + [0, + [0, + cst_nombre_personnes_charge_pr$0, + caml_call1(Runtime_ocaml_Runtime[14], x[2])], + _chT_]; + return [7, + _al_, + [0, + [0, cst_ligibilit$2, embed_type_eligibilite_allocat(x[1])], + _chU_]]; + } + var Pret = [0]; + function embed_pret(x){ + var + _chQ_ = + [0, + [0, + cst_accord_financement_repr_se, + embed_accord_financement_repre(x[4])], + 0], + _chR_ = [0, [0, cst_titulaire_pr_t, embed_titulaire_pret(x[3])], _chQ_], + _chS_ = + [0, + [0, cst_date_signature, caml_call1(Runtime_ocaml_Runtime[16], x[2])], + _chR_]; + return [7, _am_, [0, [0, cst_type_pr_t, embed_type_pret(x[1])], _chS_]]; + } + var LogementFoyer = [0]; + function embed_logement_foyer(x){ + var + _chH_ = + [0, + [0, + cst_logement_meubl_d842_2, + caml_call1(Runtime_ocaml_Runtime[12], x[10])], + 0], + _chI_ = + [0, + [0, + cst_b_n_ficiaire_aide_adulte_o, + caml_call1(Runtime_ocaml_Runtime[12], x[9])], + _chH_], + _chJ_ = + [0, + [0, + cst_cat_gorie_quivalence_loyer, + embed_categorie_equivalence_lo(x[8])], + _chI_], + _chK_ = + [0, + [0, cst_redevance, caml_call1(Runtime_ocaml_Runtime[13], x[7])], + _chJ_], + _chL_ = + [0, + [0, + cst_construit_application_loi_, + caml_call1(Runtime_ocaml_Runtime[12], x[6])], + _chK_], + _chM_ = + [0, + [0, + cst_date_conventionnement, + caml_call1(Runtime_ocaml_Runtime[16], x[5])], + _chL_], + _chN_ = + [0, + [0, + cst_conventionn_selon_r_gles_m, + caml_call1(Runtime_ocaml_Runtime[12], x[4])], + _chM_], + _chO_ = + [0, + [0, + cst_conventionn_livre_III_titr$1, + caml_call1(Runtime_ocaml_Runtime[12], x[3])], + _chN_], + _chP_ = + [0, + [0, + cst_remplit_conditions_r832_21, + caml_call1(Runtime_ocaml_Runtime[12], x[2])], + _chO_]; + return [7, + _an_, + [0, [0, cst_type, embed_type_logement_foyer(x[1])], _chP_]]; + } + var EnfantPrestationsFamiliales = [0]; + function embed_enfant_prestations_famil(x){ + var + _chB_ = + [0, + [0, + cst_b_n_ficie_titre_personnel_, + caml_call1(Runtime_ocaml_Runtime[12], x[7])], + 0], + _chC_ = + [0, + [0, + cst_a_d_j_ouvert_droit_aux_all, + caml_call1(Runtime_ocaml_Runtime[12], x[6])], + _chB_], + _chD_ = + [0, + [0, cst_prise_en_charge, embed_prise_en_charge_enfant(x[5])], + _chC_], + _chE_ = + [0, + [0, + cst_date_de_naissance, + caml_call1(Runtime_ocaml_Runtime[16], x[4])], + _chD_], + _chF_ = + [0, + [0, + cst_r_muneration_mensuelle, + caml_call1(Runtime_ocaml_Runtime[13], x[3])], + _chE_], + _chG_ = + [0, + [0, cst_obligation_scolaire, embed_situation_obligation_sco(x[2])], + _chF_]; + return [7, + _ao_, + [0, + [0, cst_identifiant, caml_call1(Runtime_ocaml_Runtime[14], x[1])], + _chG_]]; + } + var TypeBailleur = [0]; + function embed_type_bailleur(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _chA_ = [0, cst_BailleurSocial, embed_convention_bailleur_soci(x$0)]; + break; + case 1: + var + x$1 = x[1], + _chA_ = + [0, cst_BailleurPriv_AvecConventio, embed_convention_a_n_h_a(x$1)]; + break; + default: + var + x$2 = x[1], + _chA_ = + [0, cst_BailleurPriv, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + } + return [6, _ap_, _chA_]; + } + var LoueOuSousLoueADesTiers = [0]; + function embed_loue_ou_sous_loue_a_des_(x){ + if(0 === x[0]) + var + x$0 = x[1], + _chz_ = [0, cst_Non$1, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + else + var + x$1 = x[1], + _chz_ = [0, cst_Oui$0, embed_personne_sous_location(x$1)]; + return [6, _aq_, _chz_]; + } + var Nationalite = [0]; + function embed_nationalite(x){ + if(0 === x[0]) + var + x$0 = x[1], + _chy_ = [0, cst_Fran_aise, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + else + var + x$1 = x[1], + _chy_ = [0, cst_trang_re, embed_conditions_etrangers(x$1)]; + return [6, _ar_, _chy_]; + } + var ChangementLogementD8424 = [0]; + function embed_changement_logement_d842(x){ + if(0 === x[0]) + var + x$0 = x[1], + _chx_ = [0, cst_Changement, embed_infos_changement_logemen(x$0)]; + else + var + x$1 = x[1], + _chx_ = + [0, cst_PasDeChangement, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + return [6, _as_, _chx_]; + } + var InformationsPrimeDeDemenagemen = [0]; + function embed_informations_prime_de_de(x){ + var + _chw_ = + [0, + [0, + cst_date_naissance_troisi_me_e, + embed_date_naissance_troisieme(x[2])], + 0]; + return [7, + _at_, + [0, + [0, + cst_nombre_enfants_na_tre_apr_, + caml_call1(Runtime_ocaml_Runtime[14], x[1])], + _chw_]]; + } + var Proprietaire = [0]; + function embed_proprietaire(x){ + var + _chm_ = + [0, + [0, + cst_op_rations_logement_voluti, + caml_call1(Runtime_ocaml_Runtime[12], x[11])], + 0], + _chn_ = [0, [0, cst_pr_t, embed_pret(x[10])], _chm_], + _cho_ = + [0, [0, cst_anciennet_logement, embed_neuf_ou_ancien(x[9])], _chn_], + _chp_ = + [0, + [0, + cst_situation_r822_11_13_17, + caml_call1(Runtime_ocaml_Runtime[12], x[8])], + _cho_], + _chq_ = + [0, + [0, cst_copropri_t, caml_call1(Runtime_ocaml_Runtime[12], x[7])], + _chp_], + _chr_ = + [0, + [0, + cst_local_habit_premi_re_fois_, + caml_call1(Runtime_ocaml_Runtime[12], x[6])], + _chq_], + _chs_ = + [0, + [0, + cst_type_travaux_logement_r842, + embed_type_travaux_logement_r8(x[5])], + _chr_], + _cht_ = + [0, + [0, + cst_type_travaux_logement_d832, + embed_type_travaux_logement_d8(x[4])], + _chs_], + _chu_ = + [0, + [0, + cst_date_entr_e_logement, + caml_call1(Runtime_ocaml_Runtime[16], x[3])], + _cht_], + _chv_ = + [0, + [0, + cst_charges_mensuelles_pr_t, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _chu_]; + return [7, + _au_, + [0, + [0, + cst_mensualit_principale, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _chv_]]; + } + var EligibilitePrestationsFamilial = [0]; + function embed_eligibilite_prestations_(x){ + var + _chj_ = + [0, + [0, + cst_r_gime_outre_mer_l751_1, + caml_call1(Runtime_ocaml_Runtime[12], x[4])], + 0], + _chk_ = + [0, + [0, + cst_conditions_hors_ge, + caml_call1(Runtime_ocaml_Runtime[10], x[3])], + _chj_], + _chl_ = + [0, + [0, cst_droit_ouvert, caml_call1(Runtime_ocaml_Runtime[10], x[2])], + _chk_]; + return [7, + _av_, + [0, + [0, cst_ge_l512_3_2, caml_call1(Runtime_ocaml_Runtime[17], x[1])], + _chl_]]; + } + var Demandeur = [0]; + function embed_demandeur(x){ + var + _che_ = + [0, + [0, + cst_magistrat_fonctionnaire_ce, + caml_call1(Runtime_ocaml_Runtime[12], x[6])], + 0], + _chf_ = + [0, + [0, + cst_est_non_salari_agricole_l7, + caml_call1(Runtime_ocaml_Runtime[12], x[5])], + _che_], + _chg_ = + [0, + [0, + cst_personne_h_berg_e_centre_s, + caml_call1(Runtime_ocaml_Runtime[12], x[4])], + _chf_], + _chh_ = [0, [0, cst_patrimoine, embed_patrimoine(x[3])], _chg_], + _chi_ = [0, [0, cst_nationalit, embed_nationalite(x[2])], _chh_]; + return [7, + _aw_, + [0, + [0, + cst_date_naissance$0, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _chi_]]; + } + var EnfantACharge = [0]; + function embed_enfant_a_charge(x){ + var + _cg8_ = + [0, + [0, + cst_tudes_apprentissage_stage_, + caml_call1(Runtime_ocaml_Runtime[12], x[9])], + 0], + _cg9_ = + [0, + [0, + cst_situation_garde_altern_e, + embed_situation_garde_alternee(x[8])], + _cg8_], + _cg__ = + [0, + [0, cst_obligation_scolaire$0, embed_situation_obligation_sco(x[7])], + _cg9_], + _cg$_ = + [0, + [0, + cst_r_muneration_mensuelle$0, + caml_call1(Runtime_ocaml_Runtime[13], x[6])], + _cg__], + _cha_ = + [0, + [0, + cst_date_de_naissance$0, + caml_call1(Runtime_ocaml_Runtime[16], x[5])], + _cg$_], + _chb_ = + [0, + [0, + cst_a_d_j_ouvert_droit_aux_all$0, + caml_call1(Runtime_ocaml_Runtime[12], x[4])], + _cha_], + _chc_ = + [0, + [0, + cst_b_n_ficie_titre_personnel_$0, + caml_call1(Runtime_ocaml_Runtime[12], x[3])], + _chb_], + _chd_ = [0, [0, cst_nationalit$0, embed_nationalite(x[2])], _chc_]; + return [7, + _ax_, + [0, + [0, + cst_identifiant$0, + caml_call1(Runtime_ocaml_Runtime[14], x[1])], + _chd_]]; + } + var Location = [0]; + function embed_location(x){ + var + _cg1_ = + [0, + [0, + cst_changement_logement_d842_4, + embed_changement_logement_d842(x[8])], + 0], + _cg2_ = + [0, + [0, + cst_logement_meubl_d842_2$0, + caml_call1(Runtime_ocaml_Runtime[12], x[7])], + _cg1_], + _cg3_ = + [0, + [0, + cst_g_es_ou_handicap_adultes_h, + caml_call1(Runtime_ocaml_Runtime[12], x[6])], + _cg2_], + _cg4_ = + [0, + [0, cst_colocation, caml_call1(Runtime_ocaml_Runtime[12], x[5])], + _cg3_], + _cg5_ = + [0, + [0, + cst_logement_est_chambre, + caml_call1(Runtime_ocaml_Runtime[12], x[4])], + _cg4_], + _cg6_ = + [0, + [0, + cst_b_n_ficiaire_aide_adulte_o$0, + caml_call1(Runtime_ocaml_Runtime[12], x[3])], + _cg5_], + _cg7_ = + [0, + [0, cst_loyer_principal, caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _cg6_]; + return [7, _ay_, [0, [0, cst_bailleur, embed_type_bailleur(x[1])], _cg7_]]; + } + var PersonneACharge = [0]; + function embed_personne_a_charge(x){ + if(0 === x[0]) + var + x$0 = x[1], + _cg0_ = [0, cst_Enfant_Charge, embed_enfant_a_charge(x$0)]; + else + var + x$1 = x[1], + _cg0_ = + [0, cst_AutrePersonne_Charge, embed_autre_personne_a_charge(x$1)]; + return [6, _az_, _cg0_]; + } + var CategorieCalculAPL = [0]; + function embed_categorie_calcul_a_p_l(x){ + switch(x[0]){ + case 0: + var x$0 = x[1], _cgZ_ = [0, cst_Location, embed_location(x$0)]; break; + case 1: + var + x$1 = x[1], + _cgZ_ = [0, cst_AccessionPropri_t, embed_proprietaire(x$1)]; + break; + default: + var + x$2 = x[1], + _cgZ_ = [0, cst_LogementFoyer, embed_logement_foyer(x$2)]; + } + return [6, _aA_, _cgZ_]; + } + var ModeOccupation = [0]; + function embed_mode_occupation(x){ + switch(x[0]){ + case 0: + var x$0 = x[1], _cgY_ = [0, cst_Locataire, embed_location(x$0)]; break; + case 1: + var + x$1 = x[1], + _cgY_ = [0, cst_R_sidentLogementFoyer, embed_logement_foyer(x$1)]; + break; + case 2: + var + x$2 = x[1], + _cgY_ = [0, cst_AccessionPropri_t_LocalUsa, embed_proprietaire(x$2)]; + break; + case 3: + var x$3 = x[1], _cgY_ = [0, cst_SousLocataire, embed_location(x$3)]; + break; + default: + var + x$4 = x[1], + _cgY_ = [0, cst_LocationAccession, embed_proprietaire(x$4)]; + } + return [6, _aB_, _cgY_]; + } + var EligibiliteAidesPersonnelleLog = [0]; + function embed_eligibilite_aides_person(x){ + var + _cgU_ = + [0, + [0, + cst_condition_2_r823_4, + caml_call1(Runtime_ocaml_Runtime[10], x[5])], + 0], + _cgV_ = + [0, + [0, + cst_coefficents_enfants_garde_$2, + caml_call2 + (Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15], x[4])], + _cgU_], + _cgW_ = + [0, + [0, + cst_nombre_personnes_charge_pr$1, + caml_call1(Runtime_ocaml_Runtime[14], x[3])], + _cgV_], + _cgX_ = + [0, + [0, cst_ligibilit$3, caml_call1(Runtime_ocaml_Runtime[12], x[2])], + _cgW_]; + return [7, + _aC_, + [0, + [0, + cst_date_courante$0, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _cgX_]]; + } + var Logement = [0]; + function embed_logement(x){ + var + _cgM_ = [0, [0, cst_zone, embed_zone_d_habitation(x[9])], 0], + _cgN_ = + [0, + [0, cst_surface_m_carr_s, caml_call1(Runtime_ocaml_Runtime[14], x[8])], + _cgM_], + _cgO_ = + [0, + [0, + cst_logement_decent_l89_462, + caml_call1(Runtime_ocaml_Runtime[12], x[7])], + _cgN_], + _cgP_ = [0, [0, cst_usufruit, embed_parent_ou_autre(x[6])], _cgO_], + _cgQ_ = + [0, + [0, + cst_lou_ou_sous_lou_des_tiers, + embed_loue_ou_sous_loue_a_des_(x[5])], + _cgP_], + _cgR_ = [0, [0, cst_propri_taire, embed_parent_ou_autre(x[4])], _cgQ_], + _cgS_ = [0, [0, cst_mode_occupation, embed_mode_occupation(x[3])], _cgR_], + _cgT_ = + [0, + [0, + cst_est_ehpad_ou_maison_autono, + caml_call1(Runtime_ocaml_Runtime[12], x[2])], + _cgS_]; + return [7, + _aD_, + [0, + [0, + cst_r_sidence_principale, + caml_call1(Runtime_ocaml_Runtime[12], x[1])], + _cgT_]]; + } + var Menage = [0]; + function embed_menage(x){ + var + _cgE_ = [0, [0, cst_r_sidence, embed_collectivite(x[9])], 0], + _cgF_ = + [0, + [0, + cst_personnes_g_es_handicap_es, + caml_call1(Runtime_ocaml_Runtime[12], x[8])], + _cgE_], + _cgG_ = + [0, + [0, + cst_enfant_na_tre_apr_s_quatri, + caml_call1(Runtime_ocaml_Runtime[12], x[7])], + _cgF_], + _cgH_ = + [0, + [0, + cst_condition_rattach_foyer_fi, + caml_call1(Runtime_ocaml_Runtime[12], x[6])], + _cgG_], + _cgI_ = + [0, + [0, cst_situation_familiale, embed_situation_familiale(x[5])], + _cgH_], + _cgJ_ = + [0, + [0, + cst_nombre_autres_occupants_lo, + caml_call1(Runtime_ocaml_Runtime[14], x[4])], + _cgI_], + _cgK_ = + [0, + [0, + cst_personnes_charge, + caml_call2(Runtime_ocaml_Runtime[18], embed_personne_a_charge, x[3])], + _cgJ_], + _cgL_ = [0, [0, cst_logement, embed_logement(x[2])], _cgK_]; + return [7, + _aE_, + [0, + [0, + cst_prestations_re_ues, caml_call2 - (Runtime_ocaml_Runtime[103],_b9n_,n_nombre_parts_d832_25); - function _b9p_(tranche) - {if - (caml_call2 - (Runtime_ocaml_Runtime[117], - ressources_menage_arrondies$0, - tranche[2])) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$70); - var _b9w_=tranche[1]; - if(0 === _b9w_[0]) - {var tranche_haut=_b9w_[1]; - if - (caml_call2 - (Runtime_ocaml_Runtime[127], - ressources_menage_arrondies$0, - tranche_haut)) - {var - _b9x_=tranche[3], - _b9y_= - caml_call2 - (Runtime_ocaml_Runtime[97],tranche_haut,tranche[2]); - return caml_call2(Runtime_ocaml_Runtime[103],_b9y_,_b9x_)} - var - _b9z_=tranche[3], - _b9A_= - caml_call2 - (Runtime_ocaml_Runtime[97], - ressources_menage_arrondies$0, - tranche[2]); - return caml_call2(Runtime_ocaml_Runtime[103],_b9A_,_b9z_)} - var - _b9B_=tranche[3], - _b9C_= + (Runtime_ocaml_Runtime[18], embed_prestation_recue, x[1])], + _cgL_]]; + } + var EligibiliteAidesPersonnelleLog$0 = [0]; + function embed_eligibilite_aides_person$0(x){ + var + _cgz_ = + [0, + [0, + cst_date_entr_e_vigueur_diff_r, + caml_call1(Runtime_ocaml_Runtime[10], x[6])], + 0], + _cgA_ = + [0, + [0, + cst_condition_logement_surface, + caml_call1(Runtime_ocaml_Runtime[10], x[5])], + _cgz_], + _cgB_ = + [0, + [0, + cst_condition_logement_r_siden, + caml_call1(Runtime_ocaml_Runtime[10], x[4])], + _cgA_], + _cgC_ = + [0, + [0, cst_date_courante_in, caml_call1(Runtime_ocaml_Runtime[16], x[3])], + _cgB_], + _cgD_ = [0, [0, cst_demandeur_in, embed_demandeur(x[2])], _cgC_]; + return [7, _aF_, [0, [0, cst_m_nage_in, embed_menage(x[1])], _cgD_]]; + } + var EligibiliteAidePersonnaliseeLo$0 = [0]; + function embed_eligibilite_aide_personn$0(x){ + var + _cgx_ = + [0, + [0, + cst_date_courante_in$0, + caml_call1(Runtime_ocaml_Runtime[16], x[3])], + 0], + _cgy_ = [0, [0, cst_demandeur_in$0, embed_demandeur(x[2])], _cgx_]; + return [7, _aG_, [0, [0, cst_m_nage_in$0, embed_menage(x[1])], _cgy_]]; + } + var EligibiliteAllocationLogementI = [0]; + function embed_eligibilite_allocation_l$0(x){ + var + _cgu_ = + [0, + [0, + cst_b_n_ficie_aide_personnalis, + caml_call1(Runtime_ocaml_Runtime[12], x[4])], + 0], + _cgv_ = [0, [0, cst_demandeur_in$1, embed_demandeur(x[3])], _cgu_], + _cgw_ = [0, [0, cst_m_nage_in$1, embed_menage(x[2])], _cgv_]; + return [7, + _aH_, + [0, + [0, + cst_date_courante_in$1, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _cgw_]]; + } + var EligibilitePrimeDeDemenagement$0 = [0]; + function embed_eligibilite_prime_de_dem$0(x){ + var + _cgp_ = + [0, + [0, + cst_d_penses_justifi_es_r_elle, + caml_call1(Runtime_ocaml_Runtime[13], x[6])], + 0], + _cgq_ = + [0, + [0, + cst_date_courante_in$2, + caml_call1(Runtime_ocaml_Runtime[16], x[5])], + _cgp_], + _cgr_ = [0, [0, cst_demandeur_in$2, embed_demandeur(x[4])], _cgq_], + _cgs_ = [0, [0, cst_m_nage_in$2, embed_menage(x[3])], _cgr_], + _cgt_ = + [0, + [0, + cst_date_emm_nagement_in, + caml_call1(Runtime_ocaml_Runtime[16], x[2])], + _cgs_]; + return [7, + _aI_, + [0, + [0, cst_informations_in, embed_informations_prime_de_de(x[1])], + _cgt_]]; + } + var RessourcesAidesPersonnelleLoge$0 = [0]; + function embed_ressources_aides_personn$0(x){ + var + _cgc_ = + [0, + [0, + cst_ressources_m_nage_arrondie, + caml_call1(Runtime_ocaml_Runtime[13], x[14])], + 0], + _cgd_ = + [0, + [0, + cst_paiement_logement_distinct, + embed_paiement_logement_distin(x[13])], + _cgc_], + _cge_ = + [0, + [0, + cst_date_demande_ou_reexamen_d, + caml_call1(Runtime_ocaml_Runtime[16], x[12])], + _cgd_], + _cgf_ = + [0, + [0, + cst_demandeur_poursuit_des_tud, + caml_call1(Runtime_ocaml_Runtime[12], x[11])], + _cge_], + _cgg_ = + [0, + [0, + cst_condition_ge_bourse_enseig, + caml_call1(Runtime_ocaml_Runtime[12], x[10])], + _cgf_], + _cgh_ = + [0, + [0, + cst_date_courante_in$3, + caml_call1(Runtime_ocaml_Runtime[16], x[9])], + _cgg_], + _cgi_ = + [0, [0, cst_mode_occupation_in, embed_mode_occupation(x[8])], _cgh_], + _cgj_ = + [0, + [0, cst_situation_familiale_in, embed_situation_familiale(x[7])], + _cgi_], + _cgk_ = + [0, + [0, + cst_personnes_charge_in, + caml_call2(Runtime_ocaml_Runtime[18], embed_personne_a_charge, x[6])], + _cgj_], + _cgl_ = + [0, + [0, + cst_conjoint_exerce_activit_r_, + caml_call1(Runtime_ocaml_Runtime[12], x[5])], + _cgk_], + _cgm_ = + [0, + [0, + cst_demandeur_exerce_activit_r, + caml_call1(Runtime_ocaml_Runtime[12], x[4])], + _cgl_], + _cgn_ = + [0, + [0, + cst_personnes_vivant_habituell, + caml_call2 + (Runtime_ocaml_Runtime[18], embed_personne_vivant_habituel, x[3])], + _cgm_], + _cgo_ = + [0, + [0, + cst_ressources_conjoint_in, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _cgn_]; + return [7, + _aJ_, + [0, + [0, + cst_ressources_demandeur_in, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _cgo_]]; + } + var ContributionsSocialesAidesPers$0 = [0]; + function embed_contributions_sociales_a$0(x){ + return [7, + _aK_, + [0, + [0, + cst_date_courante_in$4, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + 0]]; + } + var CalculAidePersonnaliseeLogemen$3 = [0]; + function embed_calcul_aide_personnalise$3(x){ + var + _cf1_ = [0, [0, cst_r_sidence_in, embed_collectivite(x[14])], 0], + _cf2_ = + [0, + [0, + cst_logement_meubl_d842_2_in, + caml_call1(Runtime_ocaml_Runtime[12], x[13])], + _cf1_], + _cf3_ = + [0, + [0, + cst_r_duction_loyer_solidarit_$0, + caml_call1(Runtime_ocaml_Runtime[13], x[12])], + _cf2_], + _cf4_ = + [0, + [0, cst_colocation_in, caml_call1(Runtime_ocaml_Runtime[12], x[11])], + _cf3_], + _cf5_ = + [0, + [0, cst_type_aide_in, embed_type_aides_personnelle_l(x[10])], + _cf4_], + _cf6_ = + [0, + [0, + cst_g_es_ou_handicap_adultes_h$0, + caml_call1(Runtime_ocaml_Runtime[12], x[9])], + _cf5_], + _cf7_ = + [0, + [0, + cst_logement_est_chambre_in, + caml_call1(Runtime_ocaml_Runtime[12], x[8])], + _cf6_], + _cf8_ = [0, [0, cst_zone_in, embed_zone_d_habitation(x[7])], _cf7_], + _cf9_ = + [0, + [0, + cst_situation_familiale_calcul, + embed_situation_familiale_calc(x[6])], + _cf8_], + _cf__ = + [0, + [0, + cst_nombre_personnes_charge_in, + caml_call1(Runtime_ocaml_Runtime[14], x[5])], + _cf9_], + _cf$_ = + [0, + [0, + cst_date_courante_in$5, + caml_call1(Runtime_ocaml_Runtime[16], x[4])], + _cf__], + _cga_ = + [0, + [0, + cst_b_n_ficiaire_aide_adulte_o$1, + caml_call1(Runtime_ocaml_Runtime[12], x[3])], + _cf$_], + _cgb_ = + [0, + [0, + cst_ressources_m_nage_arrondie$0, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _cga_]; + return [7, + _aL_, + [0, + [0, + cst_loyer_principal_base_in, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _cgb_]]; + } + var CalculEquivalenceLoyerMinimale$0 = [0]; + function embed_calcul_equivalence_loyer$0(x){ + var + _cfY_ = + [0, + [0, + cst_n_nombre_parts_d832_25_in, + caml_call1(Runtime_ocaml_Runtime[15], x[4])], + 0], + _cfZ_ = + [0, + [0, + cst_condition_2_du_832_25_in, + caml_call1(Runtime_ocaml_Runtime[12], x[3])], + _cfY_], + _cf0_ = + [0, + [0, + cst_ressources_m_nage_arrondie$1, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _cfZ_]; + return [7, + _aM_, + [0, + [0, + cst_date_courante_in$6, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _cf0_]]; + } + var CalculNombrePartLogementFoyerI = [0]; + function embed_calcul_nombre_part_logem$0(x){ + var + _cfU_ = + [0, + [0, + cst_limitation_majoration_pers, + caml_call1(Runtime_ocaml_Runtime[10], x[5])], + 0], + _cfV_ = [0, [0, cst_r_sidence_in$0, embed_collectivite(x[4])], _cfU_], + _cfW_ = + [0, + [0, + cst_situation_familiale_calcul$0, + embed_situation_familiale_calc(x[3])], + _cfV_], + _cfX_ = + [0, + [0, + cst_nombre_personnes_charge_in$0, + caml_call1(Runtime_ocaml_Runtime[14], x[2])], + _cfW_]; + return [7, + _aN_, + [0, + [0, + cst_condition_2_du_832_25_in$0, + caml_call1(Runtime_ocaml_Runtime[12], x[1])], + _cfX_]]; + } + var CalculAidePersonnaliseeLogemen$4 = [0]; + function embed_calcul_aide_personnalise$4(x){ + var + _cfJ_ = + [0, + [0, + cst_n_nombre_parts_d832_25_in$0, + caml_call1(Runtime_ocaml_Runtime[10], x[12])], + 0], + _cfK_ = + [0, + [0, + cst_limitation_majoration_pers$0, + caml_call1(Runtime_ocaml_Runtime[10], x[11])], + _cfJ_], + _cfL_ = + [0, + [0, + cst_condition_2_du_832_25_in$1, + caml_call1(Runtime_ocaml_Runtime[10], x[10])], + _cfK_], + _cfM_ = [0, [0, cst_r_sidence_in$1, embed_collectivite(x[9])], _cfL_], + _cfN_ = + [0, + [0, cst_redevance_in, caml_call1(Runtime_ocaml_Runtime[13], x[8])], + _cfM_], + _cfO_ = + [0, + [0, + cst_date_courante_in$7, + caml_call1(Runtime_ocaml_Runtime[16], x[7])], + _cfN_], + _cfP_ = [0, [0, cst_zone_in$0, embed_zone_d_habitation(x[6])], _cfO_], + _cfQ_ = + [0, + [0, + cst_situation_familiale_calcul$1, + embed_situation_familiale_calc(x[5])], + _cfP_], + _cfR_ = + [0, + [0, + cst_nombre_personnes_charge_in$1, + caml_call1(Runtime_ocaml_Runtime[14], x[4])], + _cfQ_], + _cfS_ = + [0, + [0, + cst_ressources_m_nage_arrondie$2, + caml_call1(Runtime_ocaml_Runtime[13], x[3])], + _cfR_], + _cfT_ = + [0, + [0, + cst_date_conventionnement_in, + caml_call1(Runtime_ocaml_Runtime[16], x[2])], + _cfS_]; + return [7, + _aO_, + [0, + [0, cst_type_logement_foyer_in, embed_type_logement_foyer(x[1])], + _cfT_]]; + } + var CalculNombrePartsAccessionProp$0 = [0]; + function embed_calcul_nombre_parts_acce$0(x){ + var + _cfI_ = + [0, + [0, + cst_situation_familiale_calcul$2, + embed_situation_familiale_calc(x[2])], + 0]; + return [7, + _aP_, + [0, + [0, + cst_nombre_personnes_charge_in$2, + caml_call1(Runtime_ocaml_Runtime[14], x[1])], + _cfI_]]; + } + var CalculAidePersonnaliseeLogemen$5 = [0]; + function embed_calcul_aide_personnalise$5(x){ + var + _cfv_ = + [0, + [0, + cst_date_courante_in$8, + caml_call1(Runtime_ocaml_Runtime[16], x[14])], + 0], + _cfw_ = + [0, [0, cst_anciennet_logement_in, embed_neuf_ou_ancien(x[13])], _cfv_], + _cfx_ = [0, [0, cst_type_pr_t_in, embed_type_pret(x[12])], _cfw_], + _cfy_ = [0, [0, cst_zone_in$1, embed_zone_d_habitation(x[11])], _cfx_], + _cfz_ = + [0, + [0, + cst_situation_r822_11_13_17_in, + caml_call1(Runtime_ocaml_Runtime[12], x[10])], + _cfy_], + _cfA_ = + [0, + [0, cst_copropri_t_in, caml_call1(Runtime_ocaml_Runtime[12], x[9])], + _cfz_], + _cfB_ = + [0, + [0, + cst_date_entr_e_logement_in, + caml_call1(Runtime_ocaml_Runtime[16], x[8])], + _cfA_], + _cfC_ = + [0, + [0, + cst_local_habit_premi_re_fois_$0, + caml_call1(Runtime_ocaml_Runtime[12], x[7])], + _cfB_], + _cfD_ = + [0, + [0, + cst_date_signature_pr_t_in, + caml_call1(Runtime_ocaml_Runtime[16], x[6])], + _cfC_], + _cfE_ = + [0, + [0, + cst_type_travaux_logement_in, + embed_type_travaux_logement_d8(x[5])], + _cfD_], + _cfF_ = + [0, + [0, + cst_situation_familiale_calcul$3, + embed_situation_familiale_calc(x[4])], + _cfE_], + _cfG_ = + [0, + [0, + cst_nombre_personnes_charge_in$3, + caml_call1(Runtime_ocaml_Runtime[14], x[3])], + _cfF_], + _cfH_ = + [0, + [0, + cst_ressources_m_nage_arrondie$3, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _cfG_]; + return [7, + _aQ_, + [0, + [0, + cst_mensualit_principale_in, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _cfH_]]; + } + var CalculAidePersonnaliseeLogemen$6 = [0]; + function embed_calcul_aide_personnalise$6(x){ + var + _cfo_ = [0, [0, cst_r_sidence_in$2, embed_collectivite(x[8])], 0], + _cfp_ = + [0, + [0, + cst_date_courante_in$9, + caml_call1(Runtime_ocaml_Runtime[16], x[7])], + _cfo_], + _cfq_ = [0, [0, cst_zone_in$2, embed_zone_d_habitation(x[6])], _cfp_], + _cfr_ = + [0, + [0, + cst_nombre_personnes_charge_in$4, + caml_call1(Runtime_ocaml_Runtime[14], x[5])], + _cfq_], + _cfs_ = + [0, + [0, cst_situation_familiale_in$0, embed_situation_familiale(x[4])], + _cfr_], + _cft_ = + [0, + [0, + cst_ressources_m_nage_sans_arr, + caml_call1(Runtime_ocaml_Runtime[13], x[3])], + _cfs_], + _cfu_ = + [0, + [0, cst_type_aide_in$0, embed_type_aides_personnelle_l(x[2])], + _cft_]; + return [7, + _aR_, + [0, + [0, cst_mode_occupation_in$0, embed_mode_occupation(x[1])], + _cfu_]]; + } + var CalculAllocationLogementLocati$0 = [0]; + function embed_calcul_allocation_logeme$3(x){ + var + _cfa_ = + [0, + [0, + cst_changement_logement_d842_4$0, + embed_changement_logement_d842(x[15])], + 0], + _cfb_ = [0, [0, cst_r_sidence_in$3, embed_collectivite(x[14])], _cfa_], + _cfc_ = + [0, + [0, + cst_logement_meubl_d842_2_in$0, + caml_call1(Runtime_ocaml_Runtime[12], x[13])], + _cfb_], + _cfd_ = + [0, + [0, + cst_r_duction_loyer_solidarit_$1, + caml_call1(Runtime_ocaml_Runtime[13], x[12])], + _cfc_], + _cfe_ = + [0, + [0, cst_colocation_in$0, caml_call1(Runtime_ocaml_Runtime[12], x[11])], + _cfd_], + _cff_ = + [0, + [0, cst_type_aide_in$1, embed_type_aides_personnelle_l(x[10])], + _cfe_], + _cfg_ = + [0, + [0, + cst_g_es_ou_handicap_adultes_h$1, + caml_call1(Runtime_ocaml_Runtime[12], x[9])], + _cff_], + _cfh_ = + [0, + [0, + cst_logement_est_chambre_in$0, + caml_call1(Runtime_ocaml_Runtime[12], x[8])], + _cfg_], + _cfi_ = [0, [0, cst_zone_in$3, embed_zone_d_habitation(x[7])], _cfh_], + _cfj_ = + [0, + [0, + cst_situation_familiale_calcul$4, + embed_situation_familiale_calc(x[6])], + _cfi_], + _cfk_ = + [0, + [0, + cst_nombre_personnes_charge_in$5, + caml_call1(Runtime_ocaml_Runtime[14], x[5])], + _cfj_], + _cfl_ = + [0, + [0, + cst_date_courante_in$10, + caml_call1(Runtime_ocaml_Runtime[16], x[4])], + _cfk_], + _cfm_ = + [0, + [0, + cst_b_n_ficiaire_aide_adulte_o$2, + caml_call1(Runtime_ocaml_Runtime[12], x[3])], + _cfl_], + _cfn_ = + [0, + [0, + cst_ressources_m_nage_arrondie$4, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _cfm_]; + return [7, + _aS_, + [0, + [0, + cst_loyer_principal_in, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _cfn_]]; + } + var CalculAllocationLogementAccess$0 = [0]; + function embed_calcul_allocation_logeme$4(x){ + var + _ceY_ = + [0, + [0, + cst_op_rations_logement_voluti$0, + caml_call1(Runtime_ocaml_Runtime[12], x[15])], + 0], + _ceZ_ = + [0, + [0, cst_copropri_t_in$0, caml_call1(Runtime_ocaml_Runtime[12], x[14])], + _ceY_], + _ce0_ = + [0, + [0, + cst_charges_mensuelles_pr_t_in, + caml_call1(Runtime_ocaml_Runtime[13], x[13])], + _ceZ_], + _ce1_ = + [0, + [0, + cst_date_entr_e_logement_in$0, + caml_call1(Runtime_ocaml_Runtime[16], x[12])], + _ce0_], + _ce2_ = + [0, + [0, + cst_local_habit_premi_re_fois_$1, + caml_call1(Runtime_ocaml_Runtime[12], x[11])], + _ce1_], + _ce3_ = + [0, + [0, + cst_type_travaux_logement_in$0, + embed_type_travaux_logement_r8(x[10])], + _ce2_], + _ce4_ = + [0, + [0, + cst_date_signature_pr_t_in$0, + caml_call1(Runtime_ocaml_Runtime[16], x[9])], + _ce3_], + _ce5_ = + [0, + [0, + cst_situation_r822_11_13_17_in$0, + caml_call1(Runtime_ocaml_Runtime[12], x[8])], + _ce4_], + _ce6_ = + [0, + [0, + cst_mensualit_principale_in$0, + caml_call1(Runtime_ocaml_Runtime[13], x[7])], + _ce5_], + _ce7_ = + [0, + [0, + cst_date_courante_in$11, + caml_call1(Runtime_ocaml_Runtime[16], x[6])], + _ce6_], + _ce8_ = [0, [0, cst_r_sidence_in$4, embed_collectivite(x[5])], _ce7_], + _ce9_ = [0, [0, cst_zone_in$4, embed_zone_d_habitation(x[4])], _ce8_], + _ce__ = + [0, + [0, + cst_situation_familiale_calcul$5, + embed_situation_familiale_calc(x[3])], + _ce9_], + _ce$_ = + [0, + [0, + cst_nombre_personnes_charge_in$6, + caml_call1(Runtime_ocaml_Runtime[14], x[2])], + _ce__]; + return [7, + _aT_, + [0, + [0, + cst_ressources_m_nage_arrondie$5, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _ce$_]]; + } + var CalculAllocationLogementFoyerI = [0]; + function embed_calcul_allocation_logeme$5(x){ + var + _ceP_ = + [0, + [0, + cst_cat_gorie_quivalence_loyer$0, + embed_categorie_equivalence_lo(x[10])], + 0], + _ceQ_ = + [0, + [0, + cst_date_courante_in$12, + caml_call1(Runtime_ocaml_Runtime[16], x[9])], + _ceP_], + _ceR_ = [0, [0, cst_zone_in$5, embed_zone_d_habitation(x[8])], _ceQ_], + _ceS_ = + [0, + [0, + cst_situation_familiale_calcul$6, + embed_situation_familiale_calc(x[7])], + _ceR_], + _ceT_ = + [0, + [0, + cst_nombre_personnes_charge_in$7, + caml_call1(Runtime_ocaml_Runtime[14], x[6])], + _ceS_], + _ceU_ = + [0, + [0, + cst_ressources_m_nage_arrondie$6, + caml_call1(Runtime_ocaml_Runtime[13], x[5])], + _ceT_], + _ceV_ = + [0, + [0, cst_redevance_in$0, caml_call1(Runtime_ocaml_Runtime[13], x[4])], + _ceU_], + _ceW_ = [0, [0, cst_r_sidence_in$5, embed_collectivite(x[3])], _ceV_], + _ceX_ = + [0, + [0, + cst_date_conventionnement_in$0, + caml_call1(Runtime_ocaml_Runtime[16], x[2])], + _ceW_]; + return [7, + _aU_, + [0, + [0, + cst_type_logement_foyer_in$0, + embed_type_logement_foyer(x[1])], + _ceX_]]; + } + var CalculAllocationLogementIn = [0]; + function embed_calcul_allocation_logeme$6(x){ + var + _ceI_ = [0, [0, cst_r_sidence_in$6, embed_collectivite(x[8])], 0], + _ceJ_ = + [0, + [0, cst_type_aide_in$2, embed_type_aides_personnelle_l(x[7])], + _ceI_], + _ceK_ = + [0, + [0, + cst_date_courante_in$13, + caml_call1(Runtime_ocaml_Runtime[16], x[6])], + _ceJ_], + _ceL_ = [0, [0, cst_zone_in$6, embed_zone_d_habitation(x[5])], _ceK_], + _ceM_ = + [0, + [0, + cst_nombre_personnes_charge_in$8, + caml_call1(Runtime_ocaml_Runtime[14], x[4])], + _ceL_], + _ceN_ = + [0, + [0, cst_situation_familiale_in$1, embed_situation_familiale(x[3])], + _ceM_], + _ceO_ = + [0, + [0, + cst_ressources_m_nage_sans_arr$0, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _ceN_]; + return [7, + _aV_, + [0, + [0, cst_mode_occupation_in$1, embed_mode_occupation(x[1])], + _ceO_]]; + } + var OuvertureDroitsRetraiteIn = [0]; + function embed_ouverture_droits_retrait$0(x){ + return [7, + _aW_, + [0, + [0, + cst_date_naissance_assur_in, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + 0]]; + } + var ImpayeDepenseLogementIn = [0]; + function embed_impaye_depense_logement_(x){ + var + _ceD_ = + [0, + [0, cst_montant_dette_in, caml_call1(Runtime_ocaml_Runtime[13], x[6])], + 0], + _ceE_ = + [0, [0, cst_d_pense_logement_in, embed_depense_logement(x[5])], _ceD_], + _ceF_ = + [0, + [0, + cst_montant_charges_in, + caml_call1(Runtime_ocaml_Runtime[13], x[4])], + _ceE_], + _ceG_ = + [0, + [0, cst_montant_apl_in, caml_call1(Runtime_ocaml_Runtime[13], x[3])], + _ceF_], + _ceH_ = [0, [0, cst_aide_vers_e_in, embed_versement_a(x[2])], _ceG_]; + return [7, + _aX_, + [0, + [0, cst_mode_occupation_in$2, embed_mode_occupation(x[1])], + _ceH_]]; + } + var CalculetteAidesAuLogementIn = [0]; + function embed_calculette_aides_au_loge$1(x){ + var + _ceA_ = + [0, + [0, + cst_ressources_m_nage_prises_e, + caml_call1(Runtime_ocaml_Runtime[13], x[4])], + 0], + _ceB_ = + [0, + [0, + cst_date_courante_in$14, + caml_call1(Runtime_ocaml_Runtime[16], x[3])], + _ceA_], + _ceC_ = [0, [0, cst_demandeur_in$3, embed_demandeur(x[2])], _ceB_]; + return [7, _aY_, [0, [0, cst_m_nage_in$3, embed_menage(x[1])], _ceC_]]; + } + var CalculetteAidesAuLogementGarde$0 = [0]; + function embed_calculette_aides_au_loge$2(x){ + var + _cex_ = + [0, + [0, + cst_ressources_m_nage_prises_e$0, + caml_call1(Runtime_ocaml_Runtime[13], x[4])], + 0], + _cey_ = + [0, + [0, + cst_date_courante_in$15, + caml_call1(Runtime_ocaml_Runtime[16], x[3])], + _cex_], + _cez_ = [0, [0, cst_demandeur_in$4, embed_demandeur(x[2])], _cey_]; + return [7, _aZ_, [0, [0, cst_m_nage_in$4, embed_menage(x[1])], _cez_]]; + } + var BaseMensuelleAllocationsFamili$0 = [0]; + function embed_base_mensuelle_allocatio$0(x){ + return [7, + _a0_, + [0, + [0, + cst_date_courante_in$16, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + 0]]; + } + var VerificationAgeInferieurOuEgal$0 = [0]; + function embed_verification_age_inferie$0(x){ + var + _cev_ = + [0, [0, cst_ann_es_in, caml_call1(Runtime_ocaml_Runtime[17], x[3])], 0], + _cew_ = + [0, + [0, + cst_date_courante_in$17, + caml_call1(Runtime_ocaml_Runtime[16], x[2])], + _cev_]; + return [7, + _a1_, + [0, + [0, + cst_date_naissance_in, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _cew_]]; + } + var VerificationAgeSuperieurAIn = [0]; + function embed_verification_age_superie$0(x){ + var + _cet_ = + [0, + [0, cst_ann_es_in$0, caml_call1(Runtime_ocaml_Runtime[17], x[3])], + 0], + _ceu_ = + [0, + [0, + cst_date_courante_in$18, + caml_call1(Runtime_ocaml_Runtime[16], x[2])], + _cet_]; + return [7, + _a2_, + [0, + [0, + cst_date_naissance_in$0, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _ceu_]]; + } + var SmicIn = [0]; + function embed_smic_in(x){ + var _ces_ = [0, [0, cst_r_sidence_in$7, embed_collectivite(x[2])], 0]; + return [7, + _a3_, + [0, + [0, + cst_date_courante_in$19, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _ces_]]; + } + var EligibilitePrestationsFamilial$0 = [0]; + function embed_eligibilite_prestations_$0(x){ + var + _cep_ = + [0, + [0, cst_ge_l512_3_2_in, caml_call1(Runtime_ocaml_Runtime[10], x[4])], + 0], + _ceq_ = [0, [0, cst_r_sidence_in$8, embed_collectivite(x[3])], _cep_], + _cer_ = + [0, + [0, cst_prestation_courante_in, embed_element_prestations_fami(x[2])], + _ceq_]; + return [7, + _a4_, + [0, + [0, + cst_date_courante_in$20, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _cer_]]; + } + function contributions_sociales_aides_p(contributions_sociales_aides_p){ + var date_courante = contributions_sociales_aides_p[1]; + try{ + var + _cd1_ = function(param){return 0;}, + _cd2_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _a6_, 1); + }, + _cd3_ = + [0, + function(param){ + function _cen_(param){return 1;} + function _ceo_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _a7_, 1); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _a8_, [0], _ceo_, _cen_); + }], + _cd4_ = caml_call4(Runtime_ocaml_Runtime[63], _a9_, _cd3_, _cd2_, _cd1_); + } + catch(_cem_){ + var _cd0_ = caml_wrap_exception(_cem_); + if(_cd0_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _a5_], 1); + throw caml_maybe_attach_backtrace(_cd0_, 0); + } + var + exonere_csg = + caml_call3 + (Runtime_ocaml_Runtime[28], _a__, Runtime_ocaml_Runtime[12], _cd4_); + try{ + var + _cd6_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_005); + }, + _cd7_ = + function(param){ + var + _cek_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _cel_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _cek_); + return caml_call2(Runtime_ocaml_Runtime[29], _ba_, _cel_); + }, + _cd8_ = caml_call4(Runtime_ocaml_Runtime[63], _bb_, [0], _cd7_, _cd6_); + } + catch(_cej_){ + var _cd5_ = caml_wrap_exception(_cej_); + if(_cd5_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _a$_], 1); + throw caml_maybe_attach_backtrace(_cd5_, 0); + } + var + taux_crds = + caml_call3 + (Runtime_ocaml_Runtime[28], _bc_, Runtime_ocaml_Runtime[15], _cd8_); + function _cd9_(aide_finale){ + try{ + var + _ced_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[104], aide_finale, taux_crds); + }, + _cee_ = + function(param){ + var + _ceh_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 9, 1), + _cei_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ceh_); + return caml_call2(Runtime_ocaml_Runtime[29], _be_, _cei_); + }, + _cef_ = caml_call4(Runtime_ocaml_Runtime[63], _bf_, [0], _cee_, _ced_); + return _cef_; + } + catch(_ceg_){ + var _cec_ = caml_wrap_exception(_ceg_); + if(_cec_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bd_], 1); + throw caml_maybe_attach_backtrace(_cec_, 0); + } + } + var + montant = + caml_call3 + (Runtime_ocaml_Runtime[28], _bg_, Runtime_ocaml_Runtime[10], _cd9_); + if(! exonere_csg) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _bj_], 1); + try{ + var + _cd$_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _cea_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _cd$_); + } + catch(_ceb_){ + var _cd__ = caml_wrap_exception(_ceb_); + if(_cd__ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bh_], 1); + throw caml_maybe_attach_backtrace(_cd__, 0); + } + if(_cea_) return [0, montant]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _bi_], 1); + } + function calcul_equivalence_loyer_minim(calcul_equivalence_loyer_minim){ + var + date_courante = calcul_equivalence_loyer_minim[1], + ressources_menage_arrondies = calcul_equivalence_loyer_minim[2], + condition_2_du_832_25 = calcul_equivalence_loyer_minim[3], + n_nombre_parts_d832_25 = calcul_equivalence_loyer_minim[4]; + try{ + var + _ccq_ = + function(param){ + return condition_2_du_832_25 + ? caml_call1(Runtime_ocaml_Runtime[31], cst_7632) + : caml_call1(Runtime_ocaml_Runtime[31], cst_4557); + }, + _ccr_ = + function(param){ + var + _cdY_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _cdZ_ = caml_call2(Runtime_ocaml_Runtime[125], date_courante, _cdY_); + return caml_call2(Runtime_ocaml_Runtime[29], _bl_, _cdZ_); + }, + _ccs_ = caml_call4(Runtime_ocaml_Runtime[63], _bm_, [0], _ccr_, _ccq_); + } + catch(_cdX_){ + var _ccp_ = caml_wrap_exception(_cdX_); + if(_ccp_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bk_], 1); + throw caml_maybe_attach_backtrace(_ccp_, 0); + } + var + montant_forfaitaire_d832_26 = + caml_call3 + (Runtime_ocaml_Runtime[28], _bn_, Runtime_ocaml_Runtime[13], _ccs_); + try{ + var + _ccu_ = + function(param){ + var + _cdH_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_48), + _cdI_ = + [0, + _bp_, + caml_call1(Runtime_ocaml_Runtime[31], cst_633129), + _cdH_], + _cdJ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_32), + _cdK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_535744), + _cdL_ = + [0, + [0, caml_call1(Runtime_ocaml_Runtime[31], cst_633129$0)], + _cdK_, + _cdJ_], + _cdM_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_264), + _cdN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_389618), + _cdO_ = + [0, + [0, caml_call1(Runtime_ocaml_Runtime[31], cst_535744$0)], + _cdN_, + _cdM_], + _cdP_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_216), + _cdQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_267871), + _cdR_ = + [0, + [0, caml_call1(Runtime_ocaml_Runtime[31], cst_389618$0)], + _cdQ_, + _cdP_], + _cdS_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_104), + _cdT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_194810), + _cdU_ = + [0, + [0, caml_call1(Runtime_ocaml_Runtime[31], cst_267871$0)], + _cdT_, + _cdS_], + _cdV_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_04), + _cdW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0); + return [0, + [0, + [0, caml_call1(Runtime_ocaml_Runtime[31], cst_194810$0)], + _cdW_, + _cdV_], + _cdU_, + _cdR_, + _cdO_, + _cdL_, + _cdI_]; + }, + _ccv_ = + function(param){ + var + _cdF_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _cdG_ = caml_call2(Runtime_ocaml_Runtime[125], date_courante, _cdF_); + return caml_call2(Runtime_ocaml_Runtime[29], _bq_, _cdG_); + }, + _ccw_ = + [0, + function(param){ + function _cdn_(param){ + var + _cds_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_328), + _cdt_ = + [0, + _br_, + caml_call1(Runtime_ocaml_Runtime[31], cst_409505), + _cds_], + _cdu_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_232), + _cdv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_262985), + _cdw_ = + [0, + [0, caml_call1(Runtime_ocaml_Runtime[31], cst_409505$0)], + _cdv_, + _cdu_], + _cdx_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_208), + _cdy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_204761), + _cdz_ = + [0, + [0, caml_call1(Runtime_ocaml_Runtime[31], cst_262985$0)], + _cdy_, + _cdx_], + _cdA_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_024), + _cdB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_142303), + _cdC_ = + [0, + [0, caml_call1(Runtime_ocaml_Runtime[31], cst_204761$0)], + _cdB_, + _cdA_], + _cdD_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0$0), + _cdE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$1); + return [0, + [0, + [0, caml_call1(Runtime_ocaml_Runtime[31], cst_142303$0)], + _cdE_, + _cdD_], + _cdC_, + _cdz_, + _cdw_, + _cdt_]; + } + function _cdo_(param){ + var + _cdp_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _cdq_ = + caml_call2(Runtime_ocaml_Runtime[125], date_courante, _cdp_), + _cdr_ = + caml_call2 + (Runtime_ocaml_Runtime[83], _cdq_, condition_2_du_832_25); + return caml_call2(Runtime_ocaml_Runtime[29], _bs_, _cdr_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _bt_, [0], _cdo_, _cdn_); + }], + _ccx_ = caml_call4(Runtime_ocaml_Runtime[63], _bu_, _ccw_, _ccv_, _ccu_); + } + catch(_cdm_){ + var _cct_ = caml_wrap_exception(_cdm_); + if(_cct_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bo_], 1); + throw caml_maybe_attach_backtrace(_cct_, 0); + } + var + _ccy_ = caml_call1(Runtime_ocaml_Runtime[18], embed_tranche_revenu), + tranches_revenus_d832_26 = + caml_call3(Runtime_ocaml_Runtime[28], _bv_, _ccy_, _ccx_); + try{ + var + _ccA_ = + function(param){ + function _cdg_(tranche){ + var + _cdh_ = tranche[3], + _cdi_ = caml_call1(Runtime_ocaml_Runtime[70], tranche[2]), + _cdj_ = + caml_call2 + (Runtime_ocaml_Runtime[103], _cdi_, n_nombre_parts_d832_25), + match = tranche[1]; + if(0 === match[0]) + var + tranche_haut = match[1], + _cdk_ = caml_call1(Runtime_ocaml_Runtime[70], tranche_haut), + _cdl_ = + [0, + caml_call2 + (Runtime_ocaml_Runtime[103], _cdk_, n_nombre_parts_d832_25)]; + else + var _cdl_ = _bx_; + return [0, _cdl_, _cdj_, _cdh_]; + } + return caml_call2 + (Runtime_ocaml_Runtime[87], _cdg_, tranches_revenus_d832_26); + }, + _ccB_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _by_, 1); + }, + _ccC_ = caml_call4(Runtime_ocaml_Runtime[63], _bz_, [0], _ccB_, _ccA_); + } + catch(_cdf_){ + var _ccz_ = caml_wrap_exception(_cdf_); + if(_ccz_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bw_], 1); + throw caml_maybe_attach_backtrace(_ccz_, 0); + } + var + _ccD_ = + caml_call1(Runtime_ocaml_Runtime[18], embed_tranche_revenu_decimal), + tranches_revenus_d832_26_multi = + caml_call3(Runtime_ocaml_Runtime[28], _bA_, _ccD_, _ccC_); + try{ + var + _ccF_ = + function(param){ + var + ressources_menage_arrondies$0 = + caml_call1(Runtime_ocaml_Runtime[70], ressources_menage_arrondies), + _cc1_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12), + _cc2_ = + caml_call1(Runtime_ocaml_Runtime[70], montant_forfaitaire_d832_26), + _cc3_ = + caml_call2 + (Runtime_ocaml_Runtime[103], _cc2_, n_nombre_parts_d832_25); + function _cc4_(tranche){ + if + (caml_call2 + (Runtime_ocaml_Runtime[117], + ressources_menage_arrondies$0, + tranche[2])) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$2); + var match = tranche[1]; + if(0 !== match[0]){ + var + _cdd_ = tranche[3], + _cde_ = + caml_call2 + (Runtime_ocaml_Runtime[97], + ressources_menage_arrondies$0, + tranche[2]); + return caml_call2(Runtime_ocaml_Runtime[103], _cde_, _cdd_); + } + var tranche_haut = match[1]; + if + (caml_call2 + (Runtime_ocaml_Runtime[127], + ressources_menage_arrondies$0, + tranche_haut)){ + var + _cc$_ = tranche[3], + _cda_ = + caml_call2(Runtime_ocaml_Runtime[97], tranche_haut, tranche[2]); + return caml_call2(Runtime_ocaml_Runtime[103], _cda_, _cc$_); + } + var + _cdb_ = tranche[3], + _cdc_ = + caml_call2 + (Runtime_ocaml_Runtime[97], + ressources_menage_arrondies$0, + tranche[2]); + return caml_call2(Runtime_ocaml_Runtime[103], _cdc_, _cdb_); + } + var + _cc5_ = + caml_call2 + (Runtime_ocaml_Runtime[87], + _cc4_, + tranches_revenus_d832_26_multi), + _cc6_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0$3); + function _cc7_(sum1, sum2){ + return caml_call2(Runtime_ocaml_Runtime[92], sum1, sum2); + } + var + _cc8_ = caml_call3(Runtime_ocaml_Runtime[88], _cc7_, _cc6_, _cc5_), + _cc9_ = caml_call2(Runtime_ocaml_Runtime[92], _cc8_, _cc3_), + _cc__ = caml_call2(Runtime_ocaml_Runtime[107], _cc9_, _cc1_); + return caml_call1(Runtime_ocaml_Runtime[71], _cc__); + }, + _ccG_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _bC_, 1); + }, + _ccH_ = + [0, + function(param){ + function _ccK_(param){ + var + ressources_menage_arrondies$0 = + caml_call1 + (Runtime_ocaml_Runtime[70], ressources_menage_arrondies), + _ccM_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$0), + _ccN_ = + caml_call1 + (Runtime_ocaml_Runtime[70], montant_forfaitaire_d832_26); + function _ccO_(tranche){ + if + (caml_call2 + (Runtime_ocaml_Runtime[117], + ressources_menage_arrondies$0, + tranche[2])) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$4); + var match = tranche[1]; + if(0 !== match[0]){ + var + _ccZ_ = tranche[3], + _cc0_ = caml_call2 (Runtime_ocaml_Runtime[97], ressources_menage_arrondies$0, tranche[2]); - return caml_call2(Runtime_ocaml_Runtime[103],_b9C_,_b9B_)} + return caml_call2(Runtime_ocaml_Runtime[103], _cc0_, _ccZ_); + } + var tranche_haut = match[1]; + if + (caml_call2 + (Runtime_ocaml_Runtime[127], + ressources_menage_arrondies$0, + tranche_haut)){ + var + _ccV_ = tranche[3], + _ccW_ = + caml_call2 + (Runtime_ocaml_Runtime[97], tranche_haut, tranche[2]); + return caml_call2(Runtime_ocaml_Runtime[103], _ccW_, _ccV_); + } var - _b9q_= + _ccX_ = tranche[3], + _ccY_ = + caml_call2 + (Runtime_ocaml_Runtime[97], + ressources_menage_arrondies$0, + tranche[2]); + return caml_call2(Runtime_ocaml_Runtime[103], _ccY_, _ccX_); + } + var + _ccP_ = caml_call2 (Runtime_ocaml_Runtime[87], - _b9p_, + _ccO_, tranches_revenus_d832_26_multi), - _b9r_=caml_call1(Runtime_ocaml_Runtime[39],cst_0$71); - function _b9s_(sum1,sum2) - {return caml_call2(Runtime_ocaml_Runtime[92],sum1,sum2)} - var - _b9t_=caml_call3(Runtime_ocaml_Runtime[88],_b9s_,_b9r_,_b9q_), - _b9u_=caml_call2(Runtime_ocaml_Runtime[92],_b9t_,_b9o_), - _b9v_=caml_call2(Runtime_ocaml_Runtime[107],_b9u_,_b9m_); - return caml_call1(Runtime_ocaml_Runtime[71],_b9v_)}, - _b82_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ne_,1)}, - _b83_= - [0, - function(param) - {function _b86_(param) - {var - ressources_menage_arrondies$0= - caml_call1 - (Runtime_ocaml_Runtime[70],ressources_menage_arrondies), - _b88_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$12), - _b89_= - caml_call1 - (Runtime_ocaml_Runtime[70],montant_forfaitaire_d832_26); - function _b8__(tranche) - {if - (caml_call2 - (Runtime_ocaml_Runtime[117], - ressources_menage_arrondies$0, - tranche[2])) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$72); - var _b9f_=tranche[1]; - if(0 === _b9f_[0]) - {var tranche_haut=_b9f_[1]; - if - (caml_call2 - (Runtime_ocaml_Runtime[127], - ressources_menage_arrondies$0, - tranche_haut)) - {var - _b9g_=tranche[3], - _b9h_= - caml_call2 - (Runtime_ocaml_Runtime[97],tranche_haut,tranche[2]); - return caml_call2(Runtime_ocaml_Runtime[103],_b9h_,_b9g_)} - var - _b9i_=tranche[3], - _b9j_= - caml_call2 - (Runtime_ocaml_Runtime[97], - ressources_menage_arrondies$0, - tranche[2]); - return caml_call2(Runtime_ocaml_Runtime[103],_b9j_,_b9i_)} - var - _b9k_=tranche[3], - _b9l_= - caml_call2 - (Runtime_ocaml_Runtime[97], - ressources_menage_arrondies$0, - tranche[2]); - return caml_call2(Runtime_ocaml_Runtime[103],_b9l_,_b9k_)} - var - _b8$_= - caml_call2 - (Runtime_ocaml_Runtime[87], - _b8__, - tranches_revenus_d832_26_multi), - _b9a_=caml_call1(Runtime_ocaml_Runtime[39],cst_0$73); - function _b9b_(sum1,sum2) - {return caml_call2(Runtime_ocaml_Runtime[92],sum1,sum2)} - var - _b9c_=caml_call3(Runtime_ocaml_Runtime[88],_b9b_,_b9a_,_b8$_), - _b9d_=caml_call2(Runtime_ocaml_Runtime[92],_b9c_,_b89_), - _b9e_=caml_call2(Runtime_ocaml_Runtime[107],_b9d_,_b88_); - return caml_call1(Runtime_ocaml_Runtime[71],_b9e_)} - function _b87_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_nf_,condition_2_du_832_25)} - return caml_call4(Runtime_ocaml_Runtime[63],_ng_,[0],_b87_,_b86_)}], - _b84_=caml_call4(Runtime_ocaml_Runtime[63],_nh_,_b83_,_b82_,_b81_)} - catch(_b85_) - {_b85_ = caml_wrap_exception(_b85_); - if(_b85_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_nd_]; - throw _b85_} - var - montant= - caml_call3 - (Runtime_ocaml_Runtime[28],_ni_,Runtime_ocaml_Runtime[13],_b84_); - return [0,montant]} - function calcul_nombre_part_logement_fo(calcul_nombre_part_logement_fo) - {var - condition_2_du_832_25=calcul_nombre_part_logement_fo[1], - nombre_personnes_a_charge=calcul_nombre_part_logement_fo[2], - situation_familiale_calcul_apl=calcul_nombre_part_logement_fo[3], - residence=calcul_nombre_part_logement_fo[4], - limitation_majoration_personne=calcul_nombre_part_logement_fo[5]; - try - {var - _b70_= - function(param) - {function _b8N_(param){return 0} - function _b8O_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_nk_,1)} - return caml_call4(Runtime_ocaml_Runtime[63],_nl_,[0],_b8O_,_b8N_)}, - _b71_=function(param){return 1}, - _b72_= - [0, - function(param) - {return caml_call1(limitation_majoration_personne,0)}], - _b73_=caml_call4(Runtime_ocaml_Runtime[63],_nm_,_b72_,_b71_,_b70_)} - catch(_b8M_) - {_b8M_ = caml_wrap_exception(_b8M_); - if(_b8M_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_nj_]; - throw _b8M_} - caml_call3 - (Runtime_ocaml_Runtime[28],_nn_,Runtime_ocaml_Runtime[12],_b73_); - try - {var - _b74_= - function(param) - {var _b8I_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$74); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8I_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[39],cst_1_4) - :caml_call1(Runtime_ocaml_Runtime[39],cst_1_8); - var _b8J_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$28); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8J_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_2_5); - var _b8K_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$17); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8K_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_3$3); - var _b8L_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$4); - return caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8L_) - ?caml_call1(Runtime_ocaml_Runtime[39],cst_3_7) - :caml_call1(Runtime_ocaml_Runtime[39],cst_4_3)}, - _b75_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_np_,1)}, - _b76_= - [0, - function(param) - {function _b8C_(param) - {var _b8E_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$75); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8E_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[39],cst_1_2) - :caml_call1(Runtime_ocaml_Runtime[39],cst_1_5); - var _b8F_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$29); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8F_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_2_5$0); - var _b8G_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$18); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8G_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_3$5); - var _b8H_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$6); - return caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8H_) - ?caml_call1(Runtime_ocaml_Runtime[39],cst_3_7$0) - :caml_call1(Runtime_ocaml_Runtime[39],cst_4_3$0)} - function _b8D_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_nq_,condition_2_du_832_25)} - return caml_call4(Runtime_ocaml_Runtime[63],_nr_,[0],_b8D_,_b8C_)}], - _b77_=caml_call4(Runtime_ocaml_Runtime[63],_ns_,_b76_,_b75_,_b74_)} - catch(_b8B_) - {_b8B_ = caml_wrap_exception(_b8B_); - if(_b8B_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_no_]; - throw _b8B_} - var - n_nombre_parts_d832_25_base= - caml_call3 - (Runtime_ocaml_Runtime[28],_nt_,Runtime_ocaml_Runtime[15],_b77_); - try - {var - _b78_= - function(param) - {var _b8w_=caml_call1(Runtime_ocaml_Runtime[46],cst_4); - if - (caml_call2 - (Runtime_ocaml_Runtime[121],nombre_personnes_a_charge,_b8w_)) - {var - _b8x_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$0), - _b8y_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_b8x_), - _b8z_=caml_call1(Runtime_ocaml_Runtime[69],_b8y_), - _b8A_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_5$1); - return caml_call2(Runtime_ocaml_Runtime[103],_b8A_,_b8z_)} - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$76)}, - _b79_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_nv_,1)}, - _b7__= - [0, - function(param) - {function _b8f_(param) - {var _b8r_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$1); - if - (caml_call2 - (Runtime_ocaml_Runtime[121],nombre_personnes_a_charge,_b8r_)) - {var - _b8s_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$2), - _b8t_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_b8s_), - _b8u_=caml_call1(Runtime_ocaml_Runtime[69],_b8t_), - _b8v_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_5$2); - return caml_call2(Runtime_ocaml_Runtime[103],_b8v_,_b8u_)} - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$77)} - function _b8g_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_nw_,condition_2_du_832_25)} - var - _b8h_= - [0, - function(param) - {function _b8i_(param) - {var _b8l_=caml_call1(Runtime_ocaml_Runtime[46],cst_6); - if - (caml_call2 - (Runtime_ocaml_Runtime[121],nombre_personnes_a_charge,_b8l_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_1$30); - var _b8m_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$3); - if - (caml_call2 - (Runtime_ocaml_Runtime[121],nombre_personnes_a_charge,_b8m_)) - {var - _b8n_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$4), - _b8o_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_b8n_), - _b8p_=caml_call1(Runtime_ocaml_Runtime[69],_b8o_), - _b8q_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_5$3); - return caml_call2(Runtime_ocaml_Runtime[103],_b8q_,_b8p_)} - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$78)} - function _b8j_(param) - {switch(residence[0]) - {case 0:var _b8k_=1;break; - case 1:var _b8k_=1;break; - case 2:var _b8k_=1;break; - case 3:var _b8k_=1;break; - case 4:var _b8k_=0;break; - case 5:var _b8k_=0;break; - case 6:var _b8k_=0;break; - case 7:var _b8k_=0;break; - default:var _b8k_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_nx_,_b8k_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ny_,[0],_b8j_,_b8i_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_nz_,_b8h_,_b8g_,_b8f_)}], - _b7$_=caml_call4(Runtime_ocaml_Runtime[63],_nA_,_b7__,_b79_,_b78_)} - catch(_b8e_) - {_b8e_ = caml_wrap_exception(_b8e_); - if(_b8e_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_nu_]; - throw _b8e_} - var - n_nombre_parts_d832_25_majorat= - caml_call3 - (Runtime_ocaml_Runtime[28],_nB_,Runtime_ocaml_Runtime[15],_b7$_); - try - {var - _b8a_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[92], - n_nombre_parts_d832_25_base, - n_nombre_parts_d832_25_majorat)}, - _b8b_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_nD_,1)}, - _b8c_=caml_call4(Runtime_ocaml_Runtime[63],_nE_,[0],_b8b_,_b8a_)} - catch(_b8d_) - {_b8d_ = caml_wrap_exception(_b8d_); - if(_b8d_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_nC_]; - throw _b8d_} - var - n_nombre_parts_d832_25= - caml_call3 - (Runtime_ocaml_Runtime[28],_nF_,Runtime_ocaml_Runtime[15],_b8c_); - return [0,n_nombre_parts_d832_25]} - function calcul_nombre_parts_accession_(calcul_nombre_parts_accession_) - {var - nombre_personnes_a_charge=calcul_nombre_parts_accession_[1], - situation_familiale_calcul_apl=calcul_nombre_parts_accession_[2]; - try - {var - _b7L_= - function(param) - {var _b7P_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$79); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b7P_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[39],cst_1_4$0) - :caml_call1(Runtime_ocaml_Runtime[39],cst_1_8$0); - var _b7Q_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$31); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b7Q_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_2_5$1); - var _b7R_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$19); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b7R_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_3$7); - var _b7S_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$8); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b7S_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_3_7$1); - var _b7T_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$5); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b7T_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_4_3$1); - var - _b7U_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$6), - _b7V_= + _ccQ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0$5); + function _ccR_(sum1, sum2){ + return caml_call2(Runtime_ocaml_Runtime[92], sum1, sum2); + } + var + _ccS_ = caml_call3(Runtime_ocaml_Runtime[88], _ccR_, _ccQ_, _ccP_), + _ccT_ = caml_call2(Runtime_ocaml_Runtime[92], _ccS_, _ccN_), + _ccU_ = caml_call2(Runtime_ocaml_Runtime[107], _ccT_, _ccM_); + return caml_call1(Runtime_ocaml_Runtime[71], _ccU_); + } + function _ccL_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _bD_, condition_2_du_832_25); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _bE_, [0], _ccL_, _ccK_); + }], + _ccI_ = caml_call4(Runtime_ocaml_Runtime[63], _bF_, _ccH_, _ccG_, _ccF_); + } + catch(_ccJ_){ + var _ccE_ = caml_wrap_exception(_ccJ_); + if(_ccE_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bB_], 1); + throw caml_maybe_attach_backtrace(_ccE_, 0); + } + var + montant = + caml_call3 + (Runtime_ocaml_Runtime[28], _bG_, Runtime_ocaml_Runtime[13], _ccI_); + return [0, montant]; + } + function calcul_nombre_part_logement_fo(calcul_nombre_part_logement_fo){ + var + condition_2_du_832_25 = calcul_nombre_part_logement_fo[1], + nombre_personnes_a_charge = calcul_nombre_part_logement_fo[2], + situation_familiale_calcul_apl = calcul_nombre_part_logement_fo[3], + residence = calcul_nombre_part_logement_fo[4], + limitation_majoration_personne = calcul_nombre_part_logement_fo[5]; + try{ + var + _cbx_ = + function(param){ + function _ccn_(param){return 0;} + function _cco_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _bI_, 1); + } + return caml_call4(Runtime_ocaml_Runtime[63], _bJ_, [0], _cco_, _ccn_); + }, + _cby_ = function(param){return 1;}, + _cbz_ = + [0, + function(param){ + return caml_call1(limitation_majoration_personne, 0); + }], + _cbA_ = caml_call4(Runtime_ocaml_Runtime[63], _bK_, _cbz_, _cby_, _cbx_); + } + catch(_ccm_){ + var _cbw_ = caml_wrap_exception(_ccm_); + if(_cbw_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bH_], 1); + throw caml_maybe_attach_backtrace(_cbw_, 0); + } + caml_call3 + (Runtime_ocaml_Runtime[28], _bL_, Runtime_ocaml_Runtime[12], _cbA_); + try{ + var + _cbC_ = + function(param){ + var _cci_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$6); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _cci_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[39], cst_1_4) + : caml_call1(Runtime_ocaml_Runtime[39], cst_1_8); + var _ccj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _ccj_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_2_5); + var _cck_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _cck_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_3); + var _ccl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$0); + return caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _ccl_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_3_7) + : caml_call1(Runtime_ocaml_Runtime[39], cst_4_3); + }, + _cbD_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _bN_, 1); + }, + _cbE_ = + [0, + function(param){ + function _ccc_(param){ + var _cce_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$7); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _cce_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[39], cst_1_2) + : caml_call1(Runtime_ocaml_Runtime[39], cst_1_5); + var _ccf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$0); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _ccf_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_2_5$0); + var _ccg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$0); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _ccg_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_3$1); + var _cch_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$2); + return caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _cch_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_3_7$0) + : caml_call1(Runtime_ocaml_Runtime[39], cst_4_3$0); + } + function _ccd_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _bO_, condition_2_du_832_25); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _bP_, [0], _ccd_, _ccc_); + }], + _cbF_ = caml_call4(Runtime_ocaml_Runtime[63], _bQ_, _cbE_, _cbD_, _cbC_); + } + catch(_ccb_){ + var _cbB_ = caml_wrap_exception(_ccb_); + if(_cbB_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bM_], 1); + throw caml_maybe_attach_backtrace(_cbB_, 0); + } + var + n_nombre_parts_d832_25_base = + caml_call3 + (Runtime_ocaml_Runtime[28], _bR_, Runtime_ocaml_Runtime[15], _cbF_); + try{ + var + _cbH_ = + function(param){ + var _cb8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4); + if + (! + caml_call2 + (Runtime_ocaml_Runtime[121], nombre_personnes_a_charge, _cb8_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$8); + var + _cb9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$0), + _cb__ = + caml_call2 + (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _cb9_), + _cb$_ = caml_call1(Runtime_ocaml_Runtime[69], _cb__), + _cca_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_5); + return caml_call2(Runtime_ocaml_Runtime[103], _cca_, _cb$_); + }, + _cbI_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _bT_, 1); + }, + _cbJ_ = + [0, + function(param){ + function _cbR_(param){ + var _cb3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$1); + if + (! + caml_call2 + (Runtime_ocaml_Runtime[121], nombre_personnes_a_charge, _cb3_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$9); + var + _cb4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$2), + _cb5_ = caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_b7U_), - _b7W_=caml_call1(Runtime_ocaml_Runtime[69],_b7V_), - _b7X_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_5$4), - _b7Y_=caml_call2(Runtime_ocaml_Runtime[103],_b7X_,_b7W_), - _b7Z_=caml_call1(Runtime_ocaml_Runtime[39],cst_4_3$2); - return caml_call2(Runtime_ocaml_Runtime[92],_b7Z_,_b7Y_)}, - _b7M_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_nH_,1)}, - _b7N_=caml_call4(Runtime_ocaml_Runtime[63],_nI_,[0],_b7M_,_b7L_)} - catch(_b7O_) - {_b7O_ = caml_wrap_exception(_b7O_); - if(_b7O_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_nG_]; - throw _b7O_} - var - n_nombre_parts_d832_11= - caml_call3 - (Runtime_ocaml_Runtime[28],_nJ_,Runtime_ocaml_Runtime[15],_b7N_); - return [0,n_nombre_parts_d832_11]} - function ouverture_droits_retraite(ouverture_droits_retraite_in) - {var date_naissance_assure=ouverture_droits_retraite_in[1]; - try - {var - _b61_=function(param){throw Runtime_ocaml_Runtime[2]}, - _b62_=function(param){return 0}, - _b63_= - function(param) - {function _b7E_(param) - {var - _b7J_=caml_call3(Runtime_ocaml_Runtime[60],0,7,0), - _b7K_=caml_call3(Runtime_ocaml_Runtime[60],61,0,0); - return caml_call2(Runtime_ocaml_Runtime[95],_b7K_,_b7J_)} - function _b7F_(param) - {var - _b7G_=caml_call1(Runtime_ocaml_Runtime[46],cst_1954), - _b7H_= - caml_call1(Runtime_ocaml_Runtime[74],date_naissance_assure), - _b7I_=caml_call2(Runtime_ocaml_Runtime[86],_b7H_,_b7G_); - return caml_call2(Runtime_ocaml_Runtime[29],_nL_,_b7I_)} - return caml_call4(Runtime_ocaml_Runtime[63],_nM_,[0],_b7F_,_b7E_)}, - _b64_= - function(param) - {function _b7x_(param) - {var - _b7C_=caml_call3(Runtime_ocaml_Runtime[60],0,2,0), - _b7D_=caml_call3(Runtime_ocaml_Runtime[60],61,0,0); - return caml_call2(Runtime_ocaml_Runtime[95],_b7D_,_b7C_)} - function _b7y_(param) - {var - _b7z_=caml_call1(Runtime_ocaml_Runtime[46],cst_1953), - _b7A_= - caml_call1(Runtime_ocaml_Runtime[74],date_naissance_assure), - _b7B_=caml_call2(Runtime_ocaml_Runtime[86],_b7A_,_b7z_); - return caml_call2(Runtime_ocaml_Runtime[29],_nN_,_b7B_)} - return caml_call4(Runtime_ocaml_Runtime[63],_nO_,[0],_b7y_,_b7x_)}, - _b65_= - function(param) - {function _b7q_(param) - {var - _b7v_=caml_call3(Runtime_ocaml_Runtime[60],0,9,0), - _b7w_=caml_call3(Runtime_ocaml_Runtime[60],60,0,0); - return caml_call2(Runtime_ocaml_Runtime[95],_b7w_,_b7v_)} - function _b7r_(param) - {var - _b7s_=caml_call1(Runtime_ocaml_Runtime[46],cst_1952), - _b7t_= - caml_call1(Runtime_ocaml_Runtime[74],date_naissance_assure), - _b7u_=caml_call2(Runtime_ocaml_Runtime[86],_b7t_,_b7s_); - return caml_call2(Runtime_ocaml_Runtime[29],_nP_,_b7u_)} - return caml_call4(Runtime_ocaml_Runtime[63],_nQ_,[0],_b7r_,_b7q_)}, - _b66_= - function(param) - {function _b7h_(param) - {var - _b7o_=caml_call3(Runtime_ocaml_Runtime[60],0,4,0), - _b7p_=caml_call3(Runtime_ocaml_Runtime[60],60,0,0); - return caml_call2(Runtime_ocaml_Runtime[95],_b7p_,_b7o_)} - function _b7i_(param) - {var - _b7j_=caml_call3(Runtime_ocaml_Runtime[57],1951,12,31), - _b7k_= - caml_call2 - (Runtime_ocaml_Runtime[120],date_naissance_assure,_b7j_), - _b7l_=caml_call3(Runtime_ocaml_Runtime[57],1951,7,1), - _b7m_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_naissance_assure,_b7l_), - _b7n_=caml_call2(Runtime_ocaml_Runtime[83],_b7m_,_b7k_); - return caml_call2(Runtime_ocaml_Runtime[29],_nR_,_b7n_)} - return caml_call4(Runtime_ocaml_Runtime[63],_nS_,[0],_b7i_,_b7h_)}, - _b67_= - function(param) - {function _b7d_(param) - {return caml_call3(Runtime_ocaml_Runtime[60],60,0,0)} - function _b7e_(param) - {var - _b7f_=caml_call3(Runtime_ocaml_Runtime[57],1951,7,1), - _b7g_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_naissance_assure,_b7f_); - return caml_call2(Runtime_ocaml_Runtime[29],_nT_,_b7g_)} - return caml_call4(Runtime_ocaml_Runtime[63],_nU_,[0],_b7e_,_b7d_)}, - _b68_= - [0, - function(param) - {function _b6$_(param) - {return caml_call3(Runtime_ocaml_Runtime[60],62,0,0)} - function _b7a_(param) - {var - _b7b_=caml_call3(Runtime_ocaml_Runtime[57],1955,1,1), - _b7c_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_naissance_assure,_b7b_); - return caml_call2(Runtime_ocaml_Runtime[29],_nV_,_b7c_)} - return caml_call4(Runtime_ocaml_Runtime[63],_nW_,[0],_b7a_,_b6$_)}, - _b67_, - _b66_, - _b65_, - _b64_, - _b63_], - _b69_=caml_call4(Runtime_ocaml_Runtime[63],_nX_,_b68_,_b62_,_b61_)} - catch(_b6__) - {_b6__ = caml_wrap_exception(_b6__); - if(_b6__ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_nK_]; - throw _b6__} - var - age_ouverture_droit= - caml_call3 - (Runtime_ocaml_Runtime[28],_nY_,Runtime_ocaml_Runtime[17],_b69_); - return [0,age_ouverture_droit]} - function impaye_depense_logement(impaye_depense_logement_in) - {var - mode_occupation=impaye_depense_logement_in[1], - aide_versee=impaye_depense_logement_in[2], - montant_apl=impaye_depense_logement_in[3], - montant_charges=impaye_depense_logement_in[4], - depense_logement=impaye_depense_logement_in[5], - montant_dette=impaye_depense_logement_in[6]; - try - {var - _b5J_= - function(param) - {switch(mode_occupation[0]) - {case 0:return _n0_; - case 1:return _n1_; - case 2:return _n2_; - case 3:return _n3_; - default:return _n4_}}, - _b5K_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_n5_,1)}, - _b5L_=caml_call4(Runtime_ocaml_Runtime[63],_n6_,[0],_b5K_,_b5J_)} - catch(_b60_) - {_b60_ = caml_wrap_exception(_b60_); - if(_b60_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_nZ_]; - throw _b60_} - var - mode_occupation_impaye= - caml_call3 - (Runtime_ocaml_Runtime[28],_n7_,embed_mode_occupation_impaye,_b5L_); - try - {var - _b5M_=function(param){throw Runtime_ocaml_Runtime[2]}, - _b5N_=function(param){return 0}, - _b5O_= - [0, - function(param) - {function _b6T_(param){return depense_logement} - function _b6U_(param) - {var _b6Z_=0 === mode_occupation_impaye[0]?1:0; - return caml_call2(Runtime_ocaml_Runtime[29],_n9_,_b6Z_)} - var - _b6V_= - [0, - function(param) - {function _b6W_(param){return depense_logement} - function _b6X_(param) - {var _b6Y_=0 === mode_occupation_impaye[0]?0:1; - return caml_call2(Runtime_ocaml_Runtime[29],_n__,_b6Y_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_n$_,[0],_b6X_,_b6W_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_oa_,_b6V_,_b6U_,_b6T_)}], - _b5P_=caml_call4(Runtime_ocaml_Runtime[63],_ob_,_b5O_,_b5N_,_b5M_)} - catch(_b6S_) - {_b6S_ = caml_wrap_exception(_b6S_); - if(_b6S_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_n8_]; - throw _b6S_} - var - depense_logement_brute= - caml_call3 - (Runtime_ocaml_Runtime[28],_oc_,embed_depense_logement,_b5P_); - try - {var - _b5Q_=function(param){throw Runtime_ocaml_Runtime[2]}, - _b5R_=function(param){return 0}, - _b5S_= - function(param) - {function _b6N_(param) - {switch(depense_logement[0]) - {case 0: - var - total_echeances=depense_logement[1], - _b6Q_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$13), - _b6R_= - caml_call2(Runtime_ocaml_Runtime[104],montant_apl,_b6Q_); - return [0, - caml_call2(Runtime_ocaml_Runtime[98],total_echeances,_b6R_)]; - case 1: - var mensualite=depense_logement[1]; - return [1, - caml_call2(Runtime_ocaml_Runtime[98],mensualite,montant_apl)]; - default:var loyer=depense_logement[1];return [2,loyer]}} - function _b6O_(param) - {var _b6P_=0 === mode_occupation_impaye[0]?0:1; - return caml_call2(Runtime_ocaml_Runtime[29],_oe_,_b6P_)} - return caml_call4(Runtime_ocaml_Runtime[63],_of_,[0],_b6O_,_b6N_)}, - _b5T_= - [0, - function(param) - {function _b6K_(param) - {switch(depense_logement_brute[0]) - {case 0:var total=depense_logement_brute[1];return [0,total]; - case 1: - var mensualite=depense_logement_brute[1]; - return [1,mensualite]; - default: - var montant_loyer=depense_logement_brute[1]; - return [2, - caml_call2 - (Runtime_ocaml_Runtime[98],montant_loyer,montant_apl)]}} - function _b6L_(param) - {var _b6M_=0 === mode_occupation_impaye[0]?1:0; - return caml_call2(Runtime_ocaml_Runtime[29],_og_,_b6M_)} - return caml_call4(Runtime_ocaml_Runtime[63],_oh_,[0],_b6L_,_b6K_)}, - _b5S_], - _b5U_=caml_call4(Runtime_ocaml_Runtime[63],_oi_,_b5T_,_b5R_,_b5Q_)} - catch(_b6J_) - {_b6J_ = caml_wrap_exception(_b6J_); - if(_b6J_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_od_]; - throw _b6J_} - var - depense_logement_nette= - caml_call3 - (Runtime_ocaml_Runtime[28],_oj_,embed_depense_logement,_b5U_); - try - {var - _b5V_=function(param){throw Runtime_ocaml_Runtime[2]}, - _b5W_=function(param){return 0}, - _b5X_= - function(param) - {function _b6A_(param) - {switch(depense_logement_nette[0]) - {case 0: - var - echeance_pret_nette=depense_logement_nette[1], - _b6F_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$0), - _b6G_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$32), - _b6H_=caml_call2(Runtime_ocaml_Runtime[107],_b6G_,_b6F_); - return caml_call2 - (Runtime_ocaml_Runtime[104],echeance_pret_nette,_b6H_); - case 1: - var - mensualite_nette=depense_logement_nette[1], - _b6I_=caml_call1(Runtime_ocaml_Runtime[39],cst_2$20); - return caml_call2 - (Runtime_ocaml_Runtime[104],mensualite_nette,_b6I_); - default:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$80)}} - function _b6B_(param) - {switch(aide_versee[0]) - {case 0:var _b6C_=0;break; - case 1:var _b6C_=0;break; - default:var _b6C_=1} - var - _b6D_=0 === mode_occupation_impaye[0]?0:1, - _b6E_=caml_call2(Runtime_ocaml_Runtime[83],_b6D_,_b6C_); - return caml_call2(Runtime_ocaml_Runtime[29],_ol_,_b6E_)} - return caml_call4(Runtime_ocaml_Runtime[63],_om_,[0],_b6B_,_b6A_)}, - _b5Y_= - function(param) - {function _b6r_(param) - {switch(depense_logement_brute[0]) - {case 0: - var - echeance_pret_brute=depense_logement_brute[1], - _b6w_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$1), - _b6x_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$33), - _b6y_=caml_call2(Runtime_ocaml_Runtime[107],_b6x_,_b6w_); - return caml_call2 - (Runtime_ocaml_Runtime[104],echeance_pret_brute,_b6y_); - case 1: - var - mensualite_brute=depense_logement_brute[1], - _b6z_=caml_call1(Runtime_ocaml_Runtime[39],cst_2$21); - return caml_call2 - (Runtime_ocaml_Runtime[104],mensualite_brute,_b6z_); - default:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$81)}} - function _b6s_(param) - {switch(aide_versee[0]) - {case 0:var _b6t_=0;break; - case 1:var _b6t_=1;break; - default:var _b6t_=0} - var - _b6u_=0 === mode_occupation_impaye[0]?0:1, - _b6v_=caml_call2(Runtime_ocaml_Runtime[83],_b6u_,_b6t_); - return caml_call2(Runtime_ocaml_Runtime[29],_on_,_b6v_)} - return caml_call4(Runtime_ocaml_Runtime[63],_oo_,[0],_b6s_,_b6r_)}, - _b5Z_= - function(param) - {function _b6k_(param) - {switch(depense_logement_nette[0]) - {case 0:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$82); - case 1:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$83); - default: - var - loyer_net=depense_logement_nette[1], - _b6p_=caml_call1(Runtime_ocaml_Runtime[39],cst_2$22), - _b6q_= + (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _cb4_), + _cb6_ = caml_call1(Runtime_ocaml_Runtime[69], _cb5_), + _cb7_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_5$0); + return caml_call2(Runtime_ocaml_Runtime[103], _cb7_, _cb6_); + } + function _cbS_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _bU_, condition_2_du_832_25); + } + var + _cbT_ = + [0, + function(param){ + function _cbU_(param){ + var _cbX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6); + if + (caml_call2 + (Runtime_ocaml_Runtime[121], + nombre_personnes_a_charge, + _cbX_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_1$1); + var _cbY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$3); + if + (! + caml_call2 + (Runtime_ocaml_Runtime[121], + nombre_personnes_a_charge, + _cbY_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$10); + var + _cbZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$4), + _cb0_ = caml_call2 - (Runtime_ocaml_Runtime[93],loyer_net,montant_charges); - return caml_call2(Runtime_ocaml_Runtime[104],_b6q_,_b6p_)}} - function _b6l_(param) - {switch(aide_versee[0]) - {case 0:var _b6m_=1;break; - case 1:var _b6m_=0;break; - default:var _b6m_=0} - var - _b6n_=0 === mode_occupation_impaye[0]?1:0, - _b6o_=caml_call2(Runtime_ocaml_Runtime[83],_b6n_,_b6m_); - return caml_call2(Runtime_ocaml_Runtime[29],_op_,_b6o_)} - return caml_call4(Runtime_ocaml_Runtime[63],_oq_,[0],_b6l_,_b6k_)}, - _b50_= - [0, - function(param) - {function _b6d_(param) - {switch(depense_logement_brute[0]) - {case 0:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$84); - case 1:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$85); - default: - var - loyer_brut=depense_logement_brute[1], - _b6i_=caml_call1(Runtime_ocaml_Runtime[39],cst_2$23), - _b6j_= - caml_call2 - (Runtime_ocaml_Runtime[93],loyer_brut,montant_charges); - return caml_call2(Runtime_ocaml_Runtime[104],_b6j_,_b6i_)}} - function _b6e_(param) - {switch(aide_versee[0]) - {case 0:var _b6f_=0;break; - case 1:var _b6f_=1;break; - default:var _b6f_=0} - var - _b6g_=0 === mode_occupation_impaye[0]?1:0, - _b6h_=caml_call2(Runtime_ocaml_Runtime[83],_b6g_,_b6f_); - return caml_call2(Runtime_ocaml_Runtime[29],_or_,_b6h_)} - return caml_call4(Runtime_ocaml_Runtime[63],_os_,[0],_b6e_,_b6d_)}, - _b5Z_, - _b5Y_, - _b5X_], - _b51_=caml_call4(Runtime_ocaml_Runtime[63],_ot_,_b50_,_b5W_,_b5V_)} - catch(_b6c_) - {_b6c_ = caml_wrap_exception(_b6c_); - if(_b6c_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ok_]; - throw _b6c_} - var - seuil_impaye_depense_de_logeme= - caml_call3 - (Runtime_ocaml_Runtime[28],_ou_,Runtime_ocaml_Runtime[13],_b51_); - try - {var - _b52_=function(param){throw Runtime_ocaml_Runtime[2]}, - _b53_=function(param){return 0}, - _b54_= - [0, - function(param) - {function _b57_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[128], - montant_dette, - seuil_impaye_depense_de_logeme) - ?montant_dette - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$86)} - function _b58_(param) - {var _b6b_=0 === mode_occupation_impaye[0]?1:0; - return caml_call2(Runtime_ocaml_Runtime[29],_ow_,_b6b_)} + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _cbZ_), + _cb1_ = caml_call1(Runtime_ocaml_Runtime[69], _cb0_), + _cb2_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_5$1); + return caml_call2(Runtime_ocaml_Runtime[103], _cb2_, _cb1_); + } + function _cbV_(param){ + switch(residence[0]){ + case 0: + var _cbW_ = 1; break; + case 1: + var _cbW_ = 1; break; + case 2: + var _cbW_ = 1; break; + case 3: + var _cbW_ = 1; break; + case 4: + var _cbW_ = 0; break; + case 5: + var _cbW_ = 0; break; + case 6: + var _cbW_ = 0; break; + case 7: + var _cbW_ = 0; break; + default: var _cbW_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _bV_, _cbW_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _bW_, [0], _cbV_, _cbU_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _bX_, _cbT_, _cbS_, _cbR_); + }], + _cbK_ = caml_call4(Runtime_ocaml_Runtime[63], _bY_, _cbJ_, _cbI_, _cbH_); + } + catch(_cbQ_){ + var _cbG_ = caml_wrap_exception(_cbQ_); + if(_cbG_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bS_], 1); + throw caml_maybe_attach_backtrace(_cbG_, 0); + } + var + n_nombre_parts_d832_25_majorat = + caml_call3 + (Runtime_ocaml_Runtime[28], _bZ_, Runtime_ocaml_Runtime[15], _cbK_); + try{ + var + _cbM_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[92], + n_nombre_parts_d832_25_base, + n_nombre_parts_d832_25_majorat); + }, + _cbN_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _b1_, 1); + }, + _cbO_ = caml_call4(Runtime_ocaml_Runtime[63], _b2_, [0], _cbN_, _cbM_); + } + catch(_cbP_){ + var _cbL_ = caml_wrap_exception(_cbP_); + if(_cbL_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _b0_], 1); + throw caml_maybe_attach_backtrace(_cbL_, 0); + } + var + n_nombre_parts_d832_25 = + caml_call3 + (Runtime_ocaml_Runtime[28], _b3_, Runtime_ocaml_Runtime[15], _cbO_); + return [0, n_nombre_parts_d832_25]; + } + function calcul_nombre_parts_accession_(calcul_nombre_parts_accession_){ + var + nombre_personnes_a_charge = calcul_nombre_parts_accession_[1], + situation_familiale_calcul_apl = calcul_nombre_parts_accession_[2]; + try{ + var + _cbh_ = + function(param){ + var _cbl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$11); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _cbl_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[39], cst_1_4$0) + : caml_call1(Runtime_ocaml_Runtime[39], cst_1_8$0); + var _cbm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$2); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _cbm_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_2_5$1); + var _cbn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$1); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _cbn_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_3$3); + var _cbo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$4); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _cbo_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_3_7$1); + var _cbp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$5); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _cbp_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_4_3$1); + var + _cbq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$6), + _cbr_ = + caml_call2 + (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _cbq_), + _cbs_ = caml_call1(Runtime_ocaml_Runtime[69], _cbr_), + _cbt_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_5$2), + _cbu_ = caml_call2(Runtime_ocaml_Runtime[103], _cbt_, _cbs_), + _cbv_ = caml_call1(Runtime_ocaml_Runtime[39], cst_4_3$2); + return caml_call2(Runtime_ocaml_Runtime[92], _cbv_, _cbu_); + }, + _cbi_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _b5_, 1); + }, + _cbj_ = caml_call4(Runtime_ocaml_Runtime[63], _b6_, [0], _cbi_, _cbh_); + } + catch(_cbk_){ + var _cbg_ = caml_wrap_exception(_cbk_); + if(_cbg_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _b4_], 1); + throw caml_maybe_attach_backtrace(_cbg_, 0); + } + var + n_nombre_parts_d832_11 = + caml_call3 + (Runtime_ocaml_Runtime[28], _b7_, Runtime_ocaml_Runtime[15], _cbj_); + return [0, n_nombre_parts_d832_11]; + } + function ouverture_droits_retraite(ouverture_droits_retraite_in){ + var date_naissance_assure = ouverture_droits_retraite_in[1]; + try{ + var + _caw_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _cax_ = function(param){return 0;}, + _cay_ = + function(param){ + function _ca$_(param){ + var + _cbe_ = caml_call3(Runtime_ocaml_Runtime[60], 0, 7, 0), + _cbf_ = caml_call3(Runtime_ocaml_Runtime[60], 61, 0, 0); + return caml_call2(Runtime_ocaml_Runtime[95], _cbf_, _cbe_); + } + function _cba_(param){ + var + _cbb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1954), + _cbc_ = + caml_call1(Runtime_ocaml_Runtime[74], date_naissance_assure), + _cbd_ = caml_call2(Runtime_ocaml_Runtime[86], _cbc_, _cbb_); + return caml_call2(Runtime_ocaml_Runtime[29], _b9_, _cbd_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _b__, [0], _cba_, _ca$_); + }, + _caz_ = + function(param){ + function _ca4_(param){ + var + _ca9_ = caml_call3(Runtime_ocaml_Runtime[60], 0, 2, 0), + _ca__ = caml_call3(Runtime_ocaml_Runtime[60], 61, 0, 0); + return caml_call2(Runtime_ocaml_Runtime[95], _ca__, _ca9_); + } + function _ca5_(param){ + var + _ca6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1953), + _ca7_ = + caml_call1(Runtime_ocaml_Runtime[74], date_naissance_assure), + _ca8_ = caml_call2(Runtime_ocaml_Runtime[86], _ca7_, _ca6_); + return caml_call2(Runtime_ocaml_Runtime[29], _b$_, _ca8_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _ca_, [0], _ca5_, _ca4_); + }, + _caA_ = + function(param){ + function _caX_(param){ + var + _ca2_ = caml_call3(Runtime_ocaml_Runtime[60], 0, 9, 0), + _ca3_ = caml_call3(Runtime_ocaml_Runtime[60], 60, 0, 0); + return caml_call2(Runtime_ocaml_Runtime[95], _ca3_, _ca2_); + } + function _caY_(param){ + var + _caZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1952), + _ca0_ = + caml_call1(Runtime_ocaml_Runtime[74], date_naissance_assure), + _ca1_ = caml_call2(Runtime_ocaml_Runtime[86], _ca0_, _caZ_); + return caml_call2(Runtime_ocaml_Runtime[29], _cb_, _ca1_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _cc_, [0], _caY_, _caX_); + }, + _caB_ = + function(param){ + function _caO_(param){ + var + _caV_ = caml_call3(Runtime_ocaml_Runtime[60], 0, 4, 0), + _caW_ = caml_call3(Runtime_ocaml_Runtime[60], 60, 0, 0); + return caml_call2(Runtime_ocaml_Runtime[95], _caW_, _caV_); + } + function _caP_(param){ + var + _caQ_ = caml_call3(Runtime_ocaml_Runtime[57], 1951, 12, 31), + _caR_ = + caml_call2 + (Runtime_ocaml_Runtime[120], date_naissance_assure, _caQ_), + _caS_ = caml_call3(Runtime_ocaml_Runtime[57], 1951, 7, 1), + _caT_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_naissance_assure, _caS_), + _caU_ = caml_call2(Runtime_ocaml_Runtime[83], _caT_, _caR_); + return caml_call2(Runtime_ocaml_Runtime[29], _cd_, _caU_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _ce_, [0], _caP_, _caO_); + }, + _caC_ = + function(param){ + function _caK_(param){ + return caml_call3(Runtime_ocaml_Runtime[60], 60, 0, 0); + } + function _caL_(param){ + var + _caM_ = caml_call3(Runtime_ocaml_Runtime[57], 1951, 7, 1), + _caN_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_naissance_assure, _caM_); + return caml_call2(Runtime_ocaml_Runtime[29], _cf_, _caN_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _cg_, [0], _caL_, _caK_); + }, + _caD_ = + [0, + function(param){ + function _caG_(param){ + return caml_call3(Runtime_ocaml_Runtime[60], 62, 0, 0); + } + function _caH_(param){ + var + _caI_ = caml_call3(Runtime_ocaml_Runtime[57], 1955, 1, 1), + _caJ_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_naissance_assure, _caI_); + return caml_call2(Runtime_ocaml_Runtime[29], _ch_, _caJ_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ci_, [0], _caH_, _caG_); + }, + _caC_, + _caB_, + _caA_, + _caz_, + _cay_], + _caE_ = caml_call4(Runtime_ocaml_Runtime[63], _cj_, _caD_, _cax_, _caw_); + } + catch(_caF_){ + var _cav_ = caml_wrap_exception(_caF_); + if(_cav_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _b8_], 1); + throw caml_maybe_attach_backtrace(_cav_, 0); + } + var + age_ouverture_droit = + caml_call3 + (Runtime_ocaml_Runtime[28], _ck_, Runtime_ocaml_Runtime[17], _caE_); + return [0, age_ouverture_droit]; + } + function impaye_depense_logement(impaye_depense_logement_in){ + var + mode_occupation = impaye_depense_logement_in[1], + aide_versee = impaye_depense_logement_in[2], + montant_apl = impaye_depense_logement_in[3], + montant_charges = impaye_depense_logement_in[4], + depense_logement = impaye_depense_logement_in[5], + montant_dette = impaye_depense_logement_in[6]; + try{ + var + _b_$_ = + function(param){ + switch(mode_occupation[0]){ + case 0: + return _cm_; + case 1: + return _cn_; + case 2: + return _co_; + case 3: + return _cp_; + default: return _cq_; + } + }, + _b$a_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _cr_, 1); + }, + _b$b_ = caml_call4(Runtime_ocaml_Runtime[63], _cs_, [0], _b$a_, _b_$_); + } + catch(_cau_){ + var _b___ = caml_wrap_exception(_cau_); + if(_b___ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _cl_], 1); + throw caml_maybe_attach_backtrace(_b___, 0); + } + var + mode_occupation_impaye = + caml_call3 + (Runtime_ocaml_Runtime[28], _ct_, embed_mode_occupation_impaye, _b$b_); + try{ + var + _b$d_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _b$e_ = function(param){return 0;}, + _b$f_ = + [0, + function(param){ + function _can_(param){return depense_logement;} + function _cao_(param){ + var _cat_ = 0 === mode_occupation_impaye[0] ? 1 : 0; + return caml_call2(Runtime_ocaml_Runtime[29], _cv_, _cat_); + } + var + _cap_ = + [0, + function(param){ + function _caq_(param){return depense_logement;} + function _car_(param){ + var _cas_ = 0 === mode_occupation_impaye[0] ? 0 : 1; + return caml_call2(Runtime_ocaml_Runtime[29], _cw_, _cas_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _cx_, [0], _car_, _caq_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _cy_, _cap_, _cao_, _can_); + }], + _b$g_ = caml_call4(Runtime_ocaml_Runtime[63], _cz_, _b$f_, _b$e_, _b$d_); + } + catch(_cam_){ + var _b$c_ = caml_wrap_exception(_cam_); + if(_b$c_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _cu_], 1); + throw caml_maybe_attach_backtrace(_b$c_, 0); + } + var + depense_logement_brute = + caml_call3 + (Runtime_ocaml_Runtime[28], _cA_, embed_depense_logement, _b$g_); + try{ + var + _b$i_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _b$j_ = function(param){return 0;}, + _b$k_ = + function(param){ + function _cah_(param){ + switch(depense_logement[0]){ + case 0: var - _b59_= - [0, - function(param) - {function _b5__(param) - {return caml_call2 - (Runtime_ocaml_Runtime[128], - montant_dette, - seuil_impaye_depense_de_logeme) - ?montant_dette - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$87)} - function _b5$_(param) - {var _b6a_=0 === mode_occupation_impaye[0]?0:1; - return caml_call2(Runtime_ocaml_Runtime[29],_ox_,_b6a_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_oy_,[0],_b5$_,_b5__)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_oz_,_b59_,_b58_,_b57_)}], - _b55_=caml_call4(Runtime_ocaml_Runtime[63],_oA_,_b54_,_b53_,_b52_)} - catch(_b56_) - {_b56_ = caml_wrap_exception(_b56_); - if(_b56_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ov_]; - throw _b56_} - var - montant_impaye= - caml_call3 - (Runtime_ocaml_Runtime[28],_oB_,Runtime_ocaml_Runtime[13],_b55_); - return [0,montant_impaye]} - function base_mensuelle_allocations_fam$5(base_mensuelle_allocations_fam) - {var date_courante=base_mensuelle_allocations_fam[1]; - try - {var - _b4$_=function(param){throw Runtime_ocaml_Runtime[2]}, - _b5a_=function(param){return 0}, - _b5b_= - function(param) - {function _b5F_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_42228$0)} - function _b5G_(param) - {var - _b5H_=caml_call3(Runtime_ocaml_Runtime[57],2022,4,1), - _b5I_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b5H_); - return caml_call2(Runtime_ocaml_Runtime[29],_oD_,_b5I_)} - return caml_call4(Runtime_ocaml_Runtime[63],_oE_,[0],_b5G_,_b5F_)}, - _b5c_= - function(param) - {function _b5y_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_41481$0)} - function _b5z_(param) - {var - _b5A_=caml_call3(Runtime_ocaml_Runtime[57],2022,4,1), - _b5B_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b5A_), - _b5C_=caml_call3(Runtime_ocaml_Runtime[57],2021,4,1), - _b5D_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b5C_), - _b5E_=caml_call2(Runtime_ocaml_Runtime[83],_b5D_,_b5B_); - return caml_call2(Runtime_ocaml_Runtime[29],_oF_,_b5E_)} - return caml_call4(Runtime_ocaml_Runtime[63],_oG_,[0],_b5z_,_b5y_)}, - _b5d_= - function(param) - {function _b5r_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_41440$0)} - function _b5s_(param) - {var - _b5t_=caml_call3(Runtime_ocaml_Runtime[57],2021,4,1), - _b5u_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b5t_), - _b5v_=caml_call3(Runtime_ocaml_Runtime[57],2020,4,1), - _b5w_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b5v_), - _b5x_=caml_call2(Runtime_ocaml_Runtime[83],_b5w_,_b5u_); - return caml_call2(Runtime_ocaml_Runtime[29],_oH_,_b5x_)} - return caml_call4(Runtime_ocaml_Runtime[63],_oI_,[0],_b5s_,_b5r_)}, - _b5e_= - [0, - function(param) - {function _b5k_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_41316$0)} - function _b5l_(param) - {var - _b5m_=caml_call3(Runtime_ocaml_Runtime[57],2020,4,1), - _b5n_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b5m_), - _b5o_=caml_call3(Runtime_ocaml_Runtime[57],2019,4,1), - _b5p_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b5o_), - _b5q_=caml_call2(Runtime_ocaml_Runtime[83],_b5p_,_b5n_); - return caml_call2(Runtime_ocaml_Runtime[29],_oJ_,_b5q_)} - return caml_call4(Runtime_ocaml_Runtime[63],_oK_,[0],_b5l_,_b5k_)}, - _b5d_, - _b5c_, - _b5b_], - _b5f_=caml_call4(Runtime_ocaml_Runtime[63],_oL_,_b5e_,_b5a_,_b4$_)} - catch(_b5j_) - {_b5j_ = caml_wrap_exception(_b5j_); - if(_b5j_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_oC_]; - throw _b5j_} - var - montant= - caml_call3 - (Runtime_ocaml_Runtime[28],_oM_,Runtime_ocaml_Runtime[13],_b5f_); - try - {var - _b5g_=caml_call3(Runtime_ocaml_Runtime[57],2019,4,1), - _b5h_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b5g_)} - catch(_b5i_) - {_b5i_ = caml_wrap_exception(_b5i_); - if(_b5i_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_oN_]; - throw _b5i_} - if(_b5h_)return [0,montant]; - throw [0,Runtime_ocaml_Runtime[3],_oO_]} - function verification_age_inferieur_ou_$5(verification_age_inferieur_ou_) - {var - date_naissance=verification_age_inferieur_ou_[1], - date_courante=verification_age_inferieur_ou_[2], - annees=verification_age_inferieur_ou_[3]; - try - {var - _b46_= - function(param) - {var - _b4__= - caml_call3(Runtime_ocaml_Runtime[94],0,date_naissance,annees); - return caml_call2(Runtime_ocaml_Runtime[120],_b4__,date_courante)}, - _b47_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_oQ_,1)}, - _b48_=caml_call4(Runtime_ocaml_Runtime[63],_oR_,[0],_b47_,_b46_)} - catch(_b49_) - {_b49_ = caml_wrap_exception(_b49_); - if(_b49_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_oP_]; - throw _b49_} - var - est_inferieur_ou_egal= - caml_call3 - (Runtime_ocaml_Runtime[28],_oS_,Runtime_ocaml_Runtime[12],_b48_); - return [0,est_inferieur_ou_egal]} - function verification_age_superieur_a$1(verification_age_superieur_a_i) - {var - date_naissance=verification_age_superieur_a_i[1], - date_courante=verification_age_superieur_a_i[2], - annees=verification_age_superieur_a_i[3]; - try - {var - _b41_= - function(param) - {var - _b45_= - caml_call3(Runtime_ocaml_Runtime[94],0,date_naissance,annees); - return caml_call2(Runtime_ocaml_Runtime[125],_b45_,date_courante)}, - _b42_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_oU_,1)}, - _b43_=caml_call4(Runtime_ocaml_Runtime[63],_oV_,[0],_b42_,_b41_)} - catch(_b44_) - {_b44_ = caml_wrap_exception(_b44_); - if(_b44_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_oT_]; - throw _b44_} - var - est_superieur= - caml_call3 - (Runtime_ocaml_Runtime[28],_oW_,Runtime_ocaml_Runtime[12],_b43_); - return [0,est_superieur]} - function smic$1(smic_in) - {var date_courante=smic_in[1],residence=smic_in[2]; - try - {var - _b1g_=function(param){throw Runtime_ocaml_Runtime[2]}, - _b1h_=function(param){return 0}, - _b1i_= - function(param) - {function _b4V_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_851$0)} - function _b4W_(param) - {var - _b4X_=caml_call2(Runtime_ocaml_Runtime[86],residence,_oY_), - _b4Y_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _b4Z_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b4Y_), - _b40_=caml_call2(Runtime_ocaml_Runtime[83],_b4Z_,_b4X_); - return caml_call2(Runtime_ocaml_Runtime[29],_oZ_,_b40_)} - return caml_call4(Runtime_ocaml_Runtime[63],_o0_,[0],_b4W_,_b4V_)}, - _b1j_= - function(param) - {function _b4B_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1127$0)} - function _b4C_(param) - {var - _b4D_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o1_), - _b4E_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o2_), - _b4F_=caml_call2(Runtime_ocaml_Runtime[84],_b4E_,_b4D_), - _b4G_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o3_), - _b4H_=caml_call2(Runtime_ocaml_Runtime[84],_b4G_,_b4F_), - _b4I_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o4_), - _b4J_=caml_call2(Runtime_ocaml_Runtime[84],_b4I_,_b4H_), - _b4K_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o5_), - _b4L_=caml_call2(Runtime_ocaml_Runtime[84],_b4K_,_b4J_), - _b4M_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o6_), - _b4N_=caml_call2(Runtime_ocaml_Runtime[84],_b4M_,_b4L_), - _b4O_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o7_), - _b4P_=caml_call2(Runtime_ocaml_Runtime[84],_b4O_,_b4N_), - _b4Q_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o8_), - _b4R_=caml_call2(Runtime_ocaml_Runtime[84],_b4Q_,_b4P_), - _b4S_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _b4T_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b4S_), - _b4U_=caml_call2(Runtime_ocaml_Runtime[83],_b4T_,_b4R_); - return caml_call2(Runtime_ocaml_Runtime[29],_o9_,_b4U_)} - return caml_call4(Runtime_ocaml_Runtime[63],_o__,[0],_b4C_,_b4B_)}, - _b1k_= - function(param) - {function _b4s_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_835$0)} - function _b4t_(param) - {var - _b4u_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o$_), - _b4v_=caml_call3(Runtime_ocaml_Runtime[57],2022,12,31), - _b4w_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_b4v_), - _b4x_=caml_call2(Runtime_ocaml_Runtime[83],_b4w_,_b4u_), - _b4y_=caml_call3(Runtime_ocaml_Runtime[57],2022,8,1), - _b4z_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b4y_), - _b4A_=caml_call2(Runtime_ocaml_Runtime[83],_b4z_,_b4x_); - return caml_call2(Runtime_ocaml_Runtime[29],_pa_,_b4A_)} - return caml_call4(Runtime_ocaml_Runtime[63],_pb_,[0],_b4t_,_b4s_)}, - _b1l_= - function(param) - {function _b37_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1107$0)} - function _b38_(param) - {var - _b39_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pc_), - _b3__=caml_call2(Runtime_ocaml_Runtime[86],residence,_pd_), - _b3$_=caml_call2(Runtime_ocaml_Runtime[84],_b3__,_b39_), - _b4a_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pe_), - _b4b_=caml_call2(Runtime_ocaml_Runtime[84],_b4a_,_b3$_), - _b4c_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pf_), - _b4d_=caml_call2(Runtime_ocaml_Runtime[84],_b4c_,_b4b_), - _b4e_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pg_), - _b4f_=caml_call2(Runtime_ocaml_Runtime[84],_b4e_,_b4d_), - _b4g_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ph_), - _b4h_=caml_call2(Runtime_ocaml_Runtime[84],_b4g_,_b4f_), - _b4i_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pi_), - _b4j_=caml_call2(Runtime_ocaml_Runtime[84],_b4i_,_b4h_), - _b4k_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pj_), - _b4l_=caml_call2(Runtime_ocaml_Runtime[84],_b4k_,_b4j_), - _b4m_=caml_call3(Runtime_ocaml_Runtime[57],2022,12,31), - _b4n_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_b4m_), - _b4o_=caml_call2(Runtime_ocaml_Runtime[83],_b4n_,_b4l_), - _b4p_=caml_call3(Runtime_ocaml_Runtime[57],2022,8,1), - _b4q_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b4p_), - _b4r_=caml_call2(Runtime_ocaml_Runtime[83],_b4q_,_b4o_); - return caml_call2(Runtime_ocaml_Runtime[29],_pk_,_b4r_)} - return caml_call4(Runtime_ocaml_Runtime[63],_pl_,[0],_b38_,_b37_)}, - _b1m_= - function(param) - {function _b3Y_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_819$0)} - function _b3Z_(param) - {var - _b30_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pm_), - _b31_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,31), - _b32_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_b31_), - _b33_=caml_call2(Runtime_ocaml_Runtime[83],_b32_,_b30_), - _b34_=caml_call3(Runtime_ocaml_Runtime[57],2022,5,1), - _b35_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b34_), - _b36_=caml_call2(Runtime_ocaml_Runtime[83],_b35_,_b33_); - return caml_call2(Runtime_ocaml_Runtime[29],_pn_,_b36_)} - return caml_call4(Runtime_ocaml_Runtime[63],_po_,[0],_b3Z_,_b3Y_)}, - _b1n_= - function(param) - {function _b3B_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1085$0)} - function _b3C_(param) - {var - _b3D_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pp_), - _b3E_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pq_), - _b3F_=caml_call2(Runtime_ocaml_Runtime[84],_b3E_,_b3D_), - _b3G_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pr_), - _b3H_=caml_call2(Runtime_ocaml_Runtime[84],_b3G_,_b3F_), - _b3I_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ps_), - _b3J_=caml_call2(Runtime_ocaml_Runtime[84],_b3I_,_b3H_), - _b3K_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pt_), - _b3L_=caml_call2(Runtime_ocaml_Runtime[84],_b3K_,_b3J_), - _b3M_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pu_), - _b3N_=caml_call2(Runtime_ocaml_Runtime[84],_b3M_,_b3L_), - _b3O_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pv_), - _b3P_=caml_call2(Runtime_ocaml_Runtime[84],_b3O_,_b3N_), - _b3Q_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pw_), - _b3R_=caml_call2(Runtime_ocaml_Runtime[84],_b3Q_,_b3P_), - _b3S_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,31), - _b3T_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_b3S_), - _b3U_=caml_call2(Runtime_ocaml_Runtime[83],_b3T_,_b3R_), - _b3V_=caml_call3(Runtime_ocaml_Runtime[57],2022,5,1), - _b3W_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b3V_), - _b3X_=caml_call2(Runtime_ocaml_Runtime[83],_b3W_,_b3U_); - return caml_call2(Runtime_ocaml_Runtime[29],_px_,_b3X_)} - return caml_call4(Runtime_ocaml_Runtime[63],_py_,[0],_b3C_,_b3B_)}, - _b1o_= - function(param) - {function _b3s_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_798$0)} - function _b3t_(param) - {var - _b3u_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pz_), - _b3v_=caml_call3(Runtime_ocaml_Runtime[57],2022,4,30), - _b3w_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_b3v_), - _b3x_=caml_call2(Runtime_ocaml_Runtime[83],_b3w_,_b3u_), - _b3y_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _b3z_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b3y_), - _b3A_=caml_call2(Runtime_ocaml_Runtime[83],_b3z_,_b3x_); - return caml_call2(Runtime_ocaml_Runtime[29],_pA_,_b3A_)} - return caml_call4(Runtime_ocaml_Runtime[63],_pB_,[0],_b3t_,_b3s_)}, - _b1p_= - function(param) - {function _b27_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1057$0)} - function _b28_(param) - {var - _b29_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pC_), - _b2__=caml_call2(Runtime_ocaml_Runtime[86],residence,_pD_), - _b2$_=caml_call2(Runtime_ocaml_Runtime[84],_b2__,_b29_), - _b3a_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pE_), - _b3b_=caml_call2(Runtime_ocaml_Runtime[84],_b3a_,_b2$_), - _b3c_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pF_), - _b3d_=caml_call2(Runtime_ocaml_Runtime[84],_b3c_,_b3b_), - _b3e_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pG_), - _b3f_=caml_call2(Runtime_ocaml_Runtime[84],_b3e_,_b3d_), - _b3g_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pH_), - _b3h_=caml_call2(Runtime_ocaml_Runtime[84],_b3g_,_b3f_), - _b3i_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pI_), - _b3j_=caml_call2(Runtime_ocaml_Runtime[84],_b3i_,_b3h_), - _b3k_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pJ_), - _b3l_=caml_call2(Runtime_ocaml_Runtime[84],_b3k_,_b3j_), - _b3m_=caml_call3(Runtime_ocaml_Runtime[57],2022,4,30), - _b3n_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_b3m_), - _b3o_=caml_call2(Runtime_ocaml_Runtime[83],_b3n_,_b3l_), - _b3p_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _b3q_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b3p_), - _b3r_=caml_call2(Runtime_ocaml_Runtime[83],_b3q_,_b3o_); - return caml_call2(Runtime_ocaml_Runtime[29],_pK_,_b3r_)} - return caml_call4(Runtime_ocaml_Runtime[63],_pL_,[0],_b28_,_b27_)}, - _b1q_= - function(param) - {function _b2Y_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_774$0)} - function _b2Z_(param) - {var - _b20_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pM_), - _b21_=caml_call3(Runtime_ocaml_Runtime[57],2021,12,31), - _b22_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_b21_), - _b23_=caml_call2(Runtime_ocaml_Runtime[83],_b22_,_b20_), - _b24_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), - _b25_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b24_), - _b26_=caml_call2(Runtime_ocaml_Runtime[83],_b25_,_b23_); - return caml_call2(Runtime_ocaml_Runtime[29],_pN_,_b26_)} - return caml_call4(Runtime_ocaml_Runtime[63],_pO_,[0],_b2Z_,_b2Y_)}, - _b1r_= - function(param) - {function _b2B_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1025$0)} - function _b2C_(param) - {var - _b2D_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pP_), - _b2E_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pQ_), - _b2F_=caml_call2(Runtime_ocaml_Runtime[84],_b2E_,_b2D_), - _b2G_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pR_), - _b2H_=caml_call2(Runtime_ocaml_Runtime[84],_b2G_,_b2F_), - _b2I_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pS_), - _b2J_=caml_call2(Runtime_ocaml_Runtime[84],_b2I_,_b2H_), - _b2K_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pT_), - _b2L_=caml_call2(Runtime_ocaml_Runtime[84],_b2K_,_b2J_), - _b2M_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pU_), - _b2N_=caml_call2(Runtime_ocaml_Runtime[84],_b2M_,_b2L_), - _b2O_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pV_), - _b2P_=caml_call2(Runtime_ocaml_Runtime[84],_b2O_,_b2N_), - _b2Q_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pW_), - _b2R_=caml_call2(Runtime_ocaml_Runtime[84],_b2Q_,_b2P_), - _b2S_=caml_call3(Runtime_ocaml_Runtime[57],2021,12,31), - _b2T_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_b2S_), - _b2U_=caml_call2(Runtime_ocaml_Runtime[83],_b2T_,_b2R_), - _b2V_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), - _b2W_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b2V_), - _b2X_=caml_call2(Runtime_ocaml_Runtime[83],_b2W_,_b2U_); - return caml_call2(Runtime_ocaml_Runtime[29],_pX_,_b2X_)} - return caml_call4(Runtime_ocaml_Runtime[63],_pY_,[0],_b2C_,_b2B_)}, - _b1s_= - function(param) - {function _b2s_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_766$0)} - function _b2t_(param) - {var - _b2u_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pZ_), - _b2v_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), - _b2w_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_b2v_), - _b2x_=caml_call2(Runtime_ocaml_Runtime[83],_b2w_,_b2u_), - _b2y_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _b2z_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b2y_), - _b2A_=caml_call2(Runtime_ocaml_Runtime[83],_b2z_,_b2x_); - return caml_call2(Runtime_ocaml_Runtime[29],_p0_,_b2A_)} - return caml_call4(Runtime_ocaml_Runtime[63],_p1_,[0],_b2t_,_b2s_)}, - _b1t_= - function(param) - {function _b17_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1015$0)} - function _b18_(param) - {var - _b19_=caml_call2(Runtime_ocaml_Runtime[86],residence,_p2_), - _b1__=caml_call2(Runtime_ocaml_Runtime[86],residence,_p3_), - _b1$_=caml_call2(Runtime_ocaml_Runtime[84],_b1__,_b19_), - _b2a_=caml_call2(Runtime_ocaml_Runtime[86],residence,_p4_), - _b2b_=caml_call2(Runtime_ocaml_Runtime[84],_b2a_,_b1$_), - _b2c_=caml_call2(Runtime_ocaml_Runtime[86],residence,_p5_), - _b2d_=caml_call2(Runtime_ocaml_Runtime[84],_b2c_,_b2b_), - _b2e_=caml_call2(Runtime_ocaml_Runtime[86],residence,_p6_), - _b2f_=caml_call2(Runtime_ocaml_Runtime[84],_b2e_,_b2d_), - _b2g_=caml_call2(Runtime_ocaml_Runtime[86],residence,_p7_), - _b2h_=caml_call2(Runtime_ocaml_Runtime[84],_b2g_,_b2f_), - _b2i_=caml_call2(Runtime_ocaml_Runtime[86],residence,_p8_), - _b2j_=caml_call2(Runtime_ocaml_Runtime[84],_b2i_,_b2h_), - _b2k_=caml_call2(Runtime_ocaml_Runtime[86],residence,_p9_), - _b2l_=caml_call2(Runtime_ocaml_Runtime[84],_b2k_,_b2j_), - _b2m_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), - _b2n_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_b2m_), - _b2o_=caml_call2(Runtime_ocaml_Runtime[83],_b2n_,_b2l_), - _b2p_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _b2q_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b2p_), - _b2r_=caml_call2(Runtime_ocaml_Runtime[83],_b2q_,_b2o_); - return caml_call2(Runtime_ocaml_Runtime[29],_p__,_b2r_)} - return caml_call4(Runtime_ocaml_Runtime[63],_p$_,[0],_b18_,_b17_)}, - _b1u_= - function(param) - {function _b1Y_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_757$0)} - function _b1Z_(param) - {var - _b10_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qa_), - _b11_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), - _b12_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_b11_), - _b13_=caml_call2(Runtime_ocaml_Runtime[83],_b12_,_b10_), - _b14_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _b15_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b14_), - _b16_=caml_call2(Runtime_ocaml_Runtime[83],_b15_,_b13_); - return caml_call2(Runtime_ocaml_Runtime[29],_qb_,_b16_)} - return caml_call4(Runtime_ocaml_Runtime[63],_qc_,[0],_b1Z_,_b1Y_)}, - _b1v_= - [0, - function(param) - {function _b1B_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1003$0)} - function _b1C_(param) - {var - _b1D_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qd_), - _b1E_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qe_), - _b1F_=caml_call2(Runtime_ocaml_Runtime[84],_b1E_,_b1D_), - _b1G_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qf_), - _b1H_=caml_call2(Runtime_ocaml_Runtime[84],_b1G_,_b1F_), - _b1I_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qg_), - _b1J_=caml_call2(Runtime_ocaml_Runtime[84],_b1I_,_b1H_), - _b1K_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qh_), - _b1L_=caml_call2(Runtime_ocaml_Runtime[84],_b1K_,_b1J_), - _b1M_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qi_), - _b1N_=caml_call2(Runtime_ocaml_Runtime[84],_b1M_,_b1L_), - _b1O_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qj_), - _b1P_=caml_call2(Runtime_ocaml_Runtime[84],_b1O_,_b1N_), - _b1Q_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qk_), - _b1R_=caml_call2(Runtime_ocaml_Runtime[84],_b1Q_,_b1P_), - _b1S_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), - _b1T_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_b1S_), - _b1U_=caml_call2(Runtime_ocaml_Runtime[83],_b1T_,_b1R_), - _b1V_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _b1W_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b1V_), - _b1X_=caml_call2(Runtime_ocaml_Runtime[83],_b1W_,_b1U_); - return caml_call2(Runtime_ocaml_Runtime[29],_ql_,_b1X_)} - return caml_call4(Runtime_ocaml_Runtime[63],_qm_,[0],_b1C_,_b1B_)}, - _b1u_, - _b1t_, - _b1s_, - _b1r_, - _b1q_, - _b1p_, - _b1o_, - _b1n_, - _b1m_, - _b1l_, - _b1k_, - _b1j_, - _b1i_], - _b1w_=caml_call4(Runtime_ocaml_Runtime[63],_qn_,_b1v_,_b1h_,_b1g_)} - catch(_b1A_) - {_b1A_ = caml_wrap_exception(_b1A_); - if(_b1A_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_oX_]; - throw _b1A_} - var - brut_horaire= - caml_call3 - (Runtime_ocaml_Runtime[28],_qo_,Runtime_ocaml_Runtime[13],_b1w_); - try - {var - _b1x_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _b1y_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b1x_)} - catch(_b1z_) - {_b1z_ = caml_wrap_exception(_b1z_); - if(_b1z_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_qp_]; - throw _b1z_} - if(_b1y_)return [0,brut_horaire]; - throw [0,Runtime_ocaml_Runtime[3],_qq_]} - function arrondi_centaine_superieure(ressources_menage) - {var - _b1a_=caml_call1(Runtime_ocaml_Runtime[39],cst_100), - _b1b_=caml_call1(Runtime_ocaml_Runtime[31],cst_49), - _b1c_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_01), - _b1d_=caml_call2(Runtime_ocaml_Runtime[104],ressources_menage,_b1c_), - _b1e_=caml_call2(Runtime_ocaml_Runtime[93],_b1d_,_b1b_), - _b1f_=caml_call1(Runtime_ocaml_Runtime[77],_b1e_); - return caml_call2(Runtime_ocaml_Runtime[104],_b1f_,_b1a_)} - function traitement_nul_tout_le_temps(aide_finale) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$88)} - function calcul_aide_personnalisee_loge(calcul_aide_personnalisee_loge) - {var - loyer_principal_base=calcul_aide_personnalisee_loge[1], - ressources_menage_arrondies=calcul_aide_personnalisee_loge[2], - beneficiaire_aide_adulte_ou_en=calcul_aide_personnalisee_loge[3], - date_courante=calcul_aide_personnalisee_loge[4], - nombre_personnes_a_charge=calcul_aide_personnalisee_loge[5], - situation_familiale_calcul_apl=calcul_aide_personnalisee_loge[6], - zone=calcul_aide_personnalisee_loge[7], - logement_est_chambre=calcul_aide_personnalisee_loge[8], - agees_ou_handicap_adultes_hebe=calcul_aide_personnalisee_loge[9], - type_aide=calcul_aide_personnalisee_loge[10], - colocation=calcul_aide_personnalisee_loge[11], - reduction_loyer_solidarite=calcul_aide_personnalisee_loge[12], - logement_meuble_d842_2=calcul_aide_personnalisee_loge[13], - residence=calcul_aide_personnalisee_loge[14]; - try - {var - _bHu_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_0_98)}, - _bHv_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_qs_,1)}, - _bHw_=caml_call4(Runtime_ocaml_Runtime[63],_qt_,[0],_bHv_,_bHu_)} - catch(_b0$_) - {_b0$_ = caml_wrap_exception(_b0$_); - if(_b0$_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_qr_]; - throw _b0$_} - var - fraction_l832_3= - caml_call3 - (Runtime_ocaml_Runtime[28],_qu_,Runtime_ocaml_Runtime[15],_bHw_); - try - {var - _bHx_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_500)}, - _bHy_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_qw_,1)}, - _bHz_=caml_call4(Runtime_ocaml_Runtime[63],_qx_,[0],_bHy_,_bHx_)} - catch(_b0__) - {_b0__ = caml_wrap_exception(_b0__); - if(_b0__ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_qv_]; - throw _b0__} - var - montant_forfaitaire_d823_16= - caml_call3 - (Runtime_ocaml_Runtime[28],_qy_,Runtime_ocaml_Runtime[13],_bHz_); - try - {var - _bHA_=function(param){return date_courante}, - _bHB_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_qA_,1)}, - _bHC_=caml_call4(Runtime_ocaml_Runtime[63],_qB_,[0],_bHB_,_bHA_), - contributions_sociales_dot_dat= - caml_call3 - (Runtime_ocaml_Runtime[28],_qC_,Runtime_ocaml_Runtime[16],_bHC_)} - catch(_b09_) - {_b09_ = caml_wrap_exception(_b09_); - if(_b09_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_qz_]; - throw _b09_} - var - _bHD_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_qD_,contributions_sociales_aides_p), - [0,contributions_sociales_dot_dat]), - result=caml_call2(Runtime_ocaml_Runtime[27],_qE_,_bHD_), - contributions_sociales_dot_mon=result[1]; - try - {var - _bHE_= - function(param) - {function _b0r_(param){throw Runtime_ocaml_Runtime[2]} - function _b0s_(param){return 0} - function _b0t_(param) - {function _b0V_(param) - {var _b02_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$89); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b02_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25869) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31664); - var - _b03_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$34), - _b04_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_b03_), - _b05_=caml_call1(Runtime_ocaml_Runtime[69],_b04_), - _b06_=caml_call1(Runtime_ocaml_Runtime[31],cst_5186), - _b07_=caml_call2(Runtime_ocaml_Runtime[104],_b06_,_b05_), - _b08_=caml_call1(Runtime_ocaml_Runtime[31],cst_35630); - return caml_call2(Runtime_ocaml_Runtime[93],_b08_,_b07_)} - function _b0W_(param) - {var - _b0X_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b0Y_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b0X_), - _b0Z_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _b00_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b0Z_), - _b01_=caml_call2(Runtime_ocaml_Runtime[83],_b00_,_b0Y_); - return caml_call2(Runtime_ocaml_Runtime[29],_qG_,_b01_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_qH_,[0],_b0W_,_b0V_)} - function _b0u_(param) - {function _b0H_(param) - {var _b0O_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$90); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b0O_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25978) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31797); - var - _b0P_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$35), - _b0Q_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_b0P_), - _b0R_=caml_call1(Runtime_ocaml_Runtime[69],_b0Q_), - _b0S_=caml_call1(Runtime_ocaml_Runtime[31],cst_5208), - _b0T_=caml_call2(Runtime_ocaml_Runtime[104],_b0S_,_b0R_), - _b0U_=caml_call1(Runtime_ocaml_Runtime[31],cst_35780); - return caml_call2(Runtime_ocaml_Runtime[93],_b0U_,_b0T_)} - function _b0I_(param) - {var - _b0J_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b0K_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b0J_), - _b0L_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b0M_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b0L_), - _b0N_=caml_call2(Runtime_ocaml_Runtime[83],_b0M_,_b0K_); - return caml_call2(Runtime_ocaml_Runtime[29],_qI_,_b0N_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_qJ_,[0],_b0I_,_b0H_)} - var - _b0v_= - [0, - function(param) - {function _b0w_(param) - {var _b0A_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$91); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b0A_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26887) - :caml_call1(Runtime_ocaml_Runtime[31],cst_32910); - var - _b0B_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$36), - _b0C_= + total_echeances = depense_logement[1], + _cak_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$1), + _cal_ = + caml_call2(Runtime_ocaml_Runtime[104], montant_apl, _cak_); + return [0, caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_b0B_), - _b0D_=caml_call1(Runtime_ocaml_Runtime[69],_b0C_), - _b0E_=caml_call1(Runtime_ocaml_Runtime[31],cst_5390), - _b0F_=caml_call2(Runtime_ocaml_Runtime[104],_b0E_,_b0D_), - _b0G_=caml_call1(Runtime_ocaml_Runtime[31],cst_37032); - return caml_call2(Runtime_ocaml_Runtime[93],_b0G_,_b0F_)} - function _b0x_(param) - {var - _b0y_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b0z_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b0y_); - return caml_call2(Runtime_ocaml_Runtime[29],_qK_,_b0z_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_qL_,[0],_b0x_,_b0w_)}, - _b0u_, - _b0t_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_qM_,_b0v_,_b0s_,_b0r_)}, - _bHF_=function(param){return 1}, - _bHG_= - [0, - function(param) - {function _bZ$_(param) - {var _b0g_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$92); + (Runtime_ocaml_Runtime[98], total_echeances, _cal_)]; + case 1: + var mensualite = depense_logement[1]; + return [1, + caml_call2 + (Runtime_ocaml_Runtime[98], mensualite, montant_apl)]; + default: var loyer = depense_logement[1]; return [2, loyer]; + } + } + function _cai_(param){ + var _caj_ = 0 === mode_occupation_impaye[0] ? 0 : 1; + return caml_call2(Runtime_ocaml_Runtime[29], _cC_, _caj_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _cD_, [0], _cai_, _cah_); + }, + _b$l_ = + [0, + function(param){ + function _cae_(param){ + switch(depense_logement_brute[0]){ + case 0: + var total = depense_logement_brute[1]; return [0, total]; + case 1: + var mensualite = depense_logement_brute[1]; + return [1, mensualite]; + default: + var montant_loyer = depense_logement_brute[1]; + return [2, + caml_call2 + (Runtime_ocaml_Runtime[98], montant_loyer, montant_apl)]; + } + } + function _caf_(param){ + var _cag_ = 0 === mode_occupation_impaye[0] ? 1 : 0; + return caml_call2(Runtime_ocaml_Runtime[29], _cE_, _cag_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _cF_, [0], _caf_, _cae_); + }, + _b$k_], + _b$m_ = caml_call4(Runtime_ocaml_Runtime[63], _cG_, _b$l_, _b$j_, _b$i_); + } + catch(_cad_){ + var _b$h_ = caml_wrap_exception(_cad_); + if(_b$h_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _cB_], 1); + throw caml_maybe_attach_backtrace(_b$h_, 0); + } + var + depense_logement_nette = + caml_call3 + (Runtime_ocaml_Runtime[28], _cH_, embed_depense_logement, _b$m_); + try{ + var + _b$o_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _b$p_ = function(param){return 0;}, + _b$q_ = + function(param){ + function _b$6_(param){ + switch(depense_logement_nette[0]){ + case 0: + var + echeance_pret_nette = depense_logement_nette[1], + _b$$_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$0), + _caa_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$3), + _cab_ = caml_call2(Runtime_ocaml_Runtime[107], _caa_, _b$$_); + return caml_call2 + (Runtime_ocaml_Runtime[104], echeance_pret_nette, _cab_); + case 1: + var + mensualite_nette = depense_logement_nette[1], + _cac_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2$2); + return caml_call2 + (Runtime_ocaml_Runtime[104], mensualite_nette, _cac_); + default: return caml_call1(Runtime_ocaml_Runtime[31], cst_0$12); + } + } + function _b$7_(param){ + switch(aide_versee[0]){ + case 0: + var _b$8_ = 0; break; + case 1: + var _b$8_ = 0; break; + default: var _b$8_ = 1; + } + var + _b$9_ = 0 === mode_occupation_impaye[0] ? 0 : 1, + _b$__ = caml_call2(Runtime_ocaml_Runtime[83], _b$9_, _b$8_); + return caml_call2(Runtime_ocaml_Runtime[29], _cJ_, _b$__); + } + return caml_call4(Runtime_ocaml_Runtime[63], _cK_, [0], _b$7_, _b$6_); + }, + _b$r_ = + function(param){ + function _b$X_(param){ + switch(depense_logement_brute[0]){ + case 0: + var + echeance_pret_brute = depense_logement_brute[1], + _b$2_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$1), + _b$3_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$4), + _b$4_ = caml_call2(Runtime_ocaml_Runtime[107], _b$3_, _b$2_); + return caml_call2 + (Runtime_ocaml_Runtime[104], echeance_pret_brute, _b$4_); + case 1: + var + mensualite_brute = depense_logement_brute[1], + _b$5_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2$3); + return caml_call2 + (Runtime_ocaml_Runtime[104], mensualite_brute, _b$5_); + default: return caml_call1(Runtime_ocaml_Runtime[31], cst_0$13); + } + } + function _b$Y_(param){ + switch(aide_versee[0]){ + case 0: + var _b$Z_ = 0; break; + case 1: + var _b$Z_ = 1; break; + default: var _b$Z_ = 0; + } + var + _b$0_ = 0 === mode_occupation_impaye[0] ? 0 : 1, + _b$1_ = caml_call2(Runtime_ocaml_Runtime[83], _b$0_, _b$Z_); + return caml_call2(Runtime_ocaml_Runtime[29], _cL_, _b$1_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _cM_, [0], _b$Y_, _b$X_); + }, + _b$s_ = + function(param){ + function _b$Q_(param){ + switch(depense_logement_nette[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$14); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$15); + default: + var + loyer_net = depense_logement_nette[1], + _b$V_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2$4), + _b$W_ = + caml_call2 + (Runtime_ocaml_Runtime[93], loyer_net, montant_charges); + return caml_call2(Runtime_ocaml_Runtime[104], _b$W_, _b$V_); + } + } + function _b$R_(param){ + switch(aide_versee[0]){ + case 0: + var _b$S_ = 1; break; + case 1: + var _b$S_ = 0; break; + default: var _b$S_ = 0; + } + var + _b$T_ = 0 === mode_occupation_impaye[0] ? 1 : 0, + _b$U_ = caml_call2(Runtime_ocaml_Runtime[83], _b$T_, _b$S_); + return caml_call2(Runtime_ocaml_Runtime[29], _cN_, _b$U_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _cO_, [0], _b$R_, _b$Q_); + }, + _b$t_ = + [0, + function(param){ + function _b$J_(param){ + switch(depense_logement_brute[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$16); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$17); + default: + var + loyer_brut = depense_logement_brute[1], + _b$O_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2$5), + _b$P_ = + caml_call2 + (Runtime_ocaml_Runtime[93], loyer_brut, montant_charges); + return caml_call2(Runtime_ocaml_Runtime[104], _b$P_, _b$O_); + } + } + function _b$K_(param){ + switch(aide_versee[0]){ + case 0: + var _b$L_ = 0; break; + case 1: + var _b$L_ = 1; break; + default: var _b$L_ = 0; + } + var + _b$M_ = 0 === mode_occupation_impaye[0] ? 1 : 0, + _b$N_ = caml_call2(Runtime_ocaml_Runtime[83], _b$M_, _b$L_); + return caml_call2(Runtime_ocaml_Runtime[29], _cP_, _b$N_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _cQ_, [0], _b$K_, _b$J_); + }, + _b$s_, + _b$r_, + _b$q_], + _b$u_ = caml_call4(Runtime_ocaml_Runtime[63], _cR_, _b$t_, _b$p_, _b$o_); + } + catch(_b$I_){ + var _b$n_ = caml_wrap_exception(_b$I_); + if(_b$n_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _cI_], 1); + throw caml_maybe_attach_backtrace(_b$n_, 0); + } + var + seuil_impaye_depense_de_logeme = + caml_call3 + (Runtime_ocaml_Runtime[28], _cS_, Runtime_ocaml_Runtime[13], _b$u_); + try{ + var + _b$w_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _b$x_ = function(param){return 0;}, + _b$y_ = + [0, + function(param){ + function _b$B_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[128], + montant_dette, + seuil_impaye_depense_de_logeme) + ? montant_dette + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$18); + } + function _b$C_(param){ + var _b$H_ = 0 === mode_occupation_impaye[0] ? 1 : 0; + return caml_call2(Runtime_ocaml_Runtime[29], _cU_, _b$H_); + } + var + _b$D_ = + [0, + function(param){ + function _b$E_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[128], + montant_dette, + seuil_impaye_depense_de_logeme) + ? montant_dette + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$19); + } + function _b$F_(param){ + var _b$G_ = 0 === mode_occupation_impaye[0] ? 0 : 1; + return caml_call2(Runtime_ocaml_Runtime[29], _cV_, _b$G_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _cW_, [0], _b$F_, _b$E_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _cX_, _b$D_, _b$C_, _b$B_); + }], + _b$z_ = caml_call4(Runtime_ocaml_Runtime[63], _cY_, _b$y_, _b$x_, _b$w_); + } + catch(_b$A_){ + var _b$v_ = caml_wrap_exception(_b$A_); + if(_b$v_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _cT_], 1); + throw caml_maybe_attach_backtrace(_b$v_, 0); + } + var + montant_impaye = + caml_call3 + (Runtime_ocaml_Runtime[28], _cZ_, Runtime_ocaml_Runtime[13], _b$z_); + return [0, montant_impaye]; + } + function base_mensuelle_allocations_fam(base_mensuelle_allocations_fam){ + var date_courante = base_mensuelle_allocations_fam[1]; + try{ + var + _b_z_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _b_A_ = function(param){return 0;}, + _b_B_ = + function(param){ + function _b_6_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_42228); + } + function _b_7_(param){ + var + _b_8_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 4, 1), + _b_9_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b_8_); + return caml_call2(Runtime_ocaml_Runtime[29], _c1_, _b_9_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _c2_, [0], _b_7_, _b_6_); + }, + _b_C_ = + function(param){ + function _b_Z_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_41481); + } + function _b_0_(param){ + var + _b_1_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 4, 1), + _b_2_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b_1_), + _b_3_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 4, 1), + _b_4_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b_3_), + _b_5_ = caml_call2(Runtime_ocaml_Runtime[83], _b_4_, _b_2_); + return caml_call2(Runtime_ocaml_Runtime[29], _c3_, _b_5_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _c4_, [0], _b_0_, _b_Z_); + }, + _b_D_ = + function(param){ + function _b_S_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_41440); + } + function _b_T_(param){ + var + _b_U_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 4, 1), + _b_V_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b_U_), + _b_W_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 4, 1), + _b_X_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b_W_), + _b_Y_ = caml_call2(Runtime_ocaml_Runtime[83], _b_X_, _b_V_); + return caml_call2(Runtime_ocaml_Runtime[29], _c5_, _b_Y_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _c6_, [0], _b_T_, _b_S_); + }, + _b_E_ = + [0, + function(param){ + function _b_L_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_41316); + } + function _b_M_(param){ + var + _b_N_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 4, 1), + _b_O_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b_N_), + _b_P_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 4, 1), + _b_Q_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b_P_), + _b_R_ = caml_call2(Runtime_ocaml_Runtime[83], _b_Q_, _b_O_); + return caml_call2(Runtime_ocaml_Runtime[29], _c7_, _b_R_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _c8_, [0], _b_M_, _b_L_); + }, + _b_D_, + _b_C_, + _b_B_], + _b_F_ = caml_call4(Runtime_ocaml_Runtime[63], _c9_, _b_E_, _b_A_, _b_z_); + } + catch(_b_K_){ + var _b_y_ = caml_wrap_exception(_b_K_); + if(_b_y_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _c0_], 1); + throw caml_maybe_attach_backtrace(_b_y_, 0); + } + var + montant = + caml_call3 + (Runtime_ocaml_Runtime[28], _c__, Runtime_ocaml_Runtime[13], _b_F_); + try{ + var + _b_H_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 4, 1), + _b_I_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b_H_); + } + catch(_b_J_){ + var _b_G_ = caml_wrap_exception(_b_J_); + if(_b_G_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _c$_], 1); + throw caml_maybe_attach_backtrace(_b_G_, 0); + } + if(_b_I_) return [0, montant]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _da_], 1); + } + function verification_age_inferieur_ou_(verification_age_inferieur_ou_){ + var + date_naissance = verification_age_inferieur_ou_[1], + date_courante = verification_age_inferieur_ou_[2], + annees = verification_age_inferieur_ou_[3]; + try{ + var + _b_t_ = + function(param){ + var + _b_x_ = + caml_call3(Runtime_ocaml_Runtime[94], 0, date_naissance, annees); + return caml_call2(Runtime_ocaml_Runtime[120], _b_x_, date_courante); + }, + _b_u_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _dc_, 1); + }, + _b_v_ = caml_call4(Runtime_ocaml_Runtime[63], _dd_, [0], _b_u_, _b_t_); + } + catch(_b_w_){ + var _b_s_ = caml_wrap_exception(_b_w_); + if(_b_s_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _db_], 1); + throw caml_maybe_attach_backtrace(_b_s_, 0); + } + var + est_inferieur_ou_egal = + caml_call3 + (Runtime_ocaml_Runtime[28], _de_, Runtime_ocaml_Runtime[12], _b_v_); + return [0, est_inferieur_ou_egal]; + } + function verification_age_superieur_a(verification_age_superieur_a_i){ + var + date_naissance = verification_age_superieur_a_i[1], + date_courante = verification_age_superieur_a_i[2], + annees = verification_age_superieur_a_i[3]; + try{ + var + _b_n_ = + function(param){ + var + _b_r_ = + caml_call3(Runtime_ocaml_Runtime[94], 0, date_naissance, annees); + return caml_call2(Runtime_ocaml_Runtime[125], _b_r_, date_courante); + }, + _b_o_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _dg_, 1); + }, + _b_p_ = caml_call4(Runtime_ocaml_Runtime[63], _dh_, [0], _b_o_, _b_n_); + } + catch(_b_q_){ + var _b_m_ = caml_wrap_exception(_b_q_); + if(_b_m_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _df_], 1); + throw caml_maybe_attach_backtrace(_b_m_, 0); + } + var + est_superieur = + caml_call3 + (Runtime_ocaml_Runtime[28], _di_, Runtime_ocaml_Runtime[12], _b_p_); + return [0, est_superieur]; + } + function smic(smic_in){ + var date_courante = smic_in[1], residence = smic_in[2]; + try{ + var + _b6C_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _b6D_ = function(param){return 0;}, + _b6E_ = + function(param){ + function _b_g_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_851); + } + function _b_h_(param){ + var + _b_i_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dk_), + _b_j_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _b_k_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b_j_), + _b_l_ = caml_call2(Runtime_ocaml_Runtime[83], _b_k_, _b_i_); + return caml_call2(Runtime_ocaml_Runtime[29], _dl_, _b_l_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _dm_, [0], _b_h_, _b_g_); + }, + _b6F_ = + function(param){ + function _b9Y_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1127); + } + function _b9Z_(param){ + var + _b90_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dn_), + _b91_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _do_), + _b92_ = caml_call2(Runtime_ocaml_Runtime[84], _b91_, _b90_), + _b93_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dp_), + _b94_ = caml_call2(Runtime_ocaml_Runtime[84], _b93_, _b92_), + _b95_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dq_), + _b96_ = caml_call2(Runtime_ocaml_Runtime[84], _b95_, _b94_), + _b97_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dr_), + _b98_ = caml_call2(Runtime_ocaml_Runtime[84], _b97_, _b96_), + _b99_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ds_), + _b9__ = caml_call2(Runtime_ocaml_Runtime[84], _b99_, _b98_), + _b9$_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dt_), + _b_a_ = caml_call2(Runtime_ocaml_Runtime[84], _b9$_, _b9__), + _b_b_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _du_), + _b_c_ = caml_call2(Runtime_ocaml_Runtime[84], _b_b_, _b_a_), + _b_d_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _b_e_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b_d_), + _b_f_ = caml_call2(Runtime_ocaml_Runtime[83], _b_e_, _b_c_); + return caml_call2(Runtime_ocaml_Runtime[29], _dv_, _b_f_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _dw_, [0], _b9Z_, _b9Y_); + }, + _b6G_ = + function(param){ + function _b9P_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_835); + } + function _b9Q_(param){ + var + _b9R_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dx_), + _b9S_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 12, 31), + _b9T_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b9S_), + _b9U_ = caml_call2(Runtime_ocaml_Runtime[83], _b9T_, _b9R_), + _b9V_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 8, 1), + _b9W_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b9V_), + _b9X_ = caml_call2(Runtime_ocaml_Runtime[83], _b9W_, _b9U_); + return caml_call2(Runtime_ocaml_Runtime[29], _dy_, _b9X_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _dz_, [0], _b9Q_, _b9P_); + }, + _b6H_ = + function(param){ + function _b9s_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1107); + } + function _b9t_(param){ + var + _b9u_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dA_), + _b9v_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dB_), + _b9w_ = caml_call2(Runtime_ocaml_Runtime[84], _b9v_, _b9u_), + _b9x_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dC_), + _b9y_ = caml_call2(Runtime_ocaml_Runtime[84], _b9x_, _b9w_), + _b9z_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dD_), + _b9A_ = caml_call2(Runtime_ocaml_Runtime[84], _b9z_, _b9y_), + _b9B_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dE_), + _b9C_ = caml_call2(Runtime_ocaml_Runtime[84], _b9B_, _b9A_), + _b9D_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dF_), + _b9E_ = caml_call2(Runtime_ocaml_Runtime[84], _b9D_, _b9C_), + _b9F_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dG_), + _b9G_ = caml_call2(Runtime_ocaml_Runtime[84], _b9F_, _b9E_), + _b9H_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dH_), + _b9I_ = caml_call2(Runtime_ocaml_Runtime[84], _b9H_, _b9G_), + _b9J_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 12, 31), + _b9K_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b9J_), + _b9L_ = caml_call2(Runtime_ocaml_Runtime[83], _b9K_, _b9I_), + _b9M_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 8, 1), + _b9N_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b9M_), + _b9O_ = caml_call2(Runtime_ocaml_Runtime[83], _b9N_, _b9L_); + return caml_call2(Runtime_ocaml_Runtime[29], _dI_, _b9O_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _dJ_, [0], _b9t_, _b9s_); + }, + _b6I_ = + function(param){ + function _b9j_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_819); + } + function _b9k_(param){ + var + _b9l_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dK_), + _b9m_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 31), + _b9n_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b9m_), + _b9o_ = caml_call2(Runtime_ocaml_Runtime[83], _b9n_, _b9l_), + _b9p_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 5, 1), + _b9q_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b9p_), + _b9r_ = caml_call2(Runtime_ocaml_Runtime[83], _b9q_, _b9o_); + return caml_call2(Runtime_ocaml_Runtime[29], _dL_, _b9r_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _dM_, [0], _b9k_, _b9j_); + }, + _b6J_ = + function(param){ + function _b8Y_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1085); + } + function _b8Z_(param){ + var + _b80_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dN_), + _b81_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dO_), + _b82_ = caml_call2(Runtime_ocaml_Runtime[84], _b81_, _b80_), + _b83_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dP_), + _b84_ = caml_call2(Runtime_ocaml_Runtime[84], _b83_, _b82_), + _b85_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dQ_), + _b86_ = caml_call2(Runtime_ocaml_Runtime[84], _b85_, _b84_), + _b87_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dR_), + _b88_ = caml_call2(Runtime_ocaml_Runtime[84], _b87_, _b86_), + _b89_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dS_), + _b8__ = caml_call2(Runtime_ocaml_Runtime[84], _b89_, _b88_), + _b8$_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dT_), + _b9a_ = caml_call2(Runtime_ocaml_Runtime[84], _b8$_, _b8__), + _b9b_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dU_), + _b9c_ = caml_call2(Runtime_ocaml_Runtime[84], _b9b_, _b9a_), + _b9d_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 31), + _b9e_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b9d_), + _b9f_ = caml_call2(Runtime_ocaml_Runtime[83], _b9e_, _b9c_), + _b9g_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 5, 1), + _b9h_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b9g_), + _b9i_ = caml_call2(Runtime_ocaml_Runtime[83], _b9h_, _b9f_); + return caml_call2(Runtime_ocaml_Runtime[29], _dV_, _b9i_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _dW_, [0], _b8Z_, _b8Y_); + }, + _b6K_ = + function(param){ + function _b8P_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_798); + } + function _b8Q_(param){ + var + _b8R_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dX_), + _b8S_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 4, 30), + _b8T_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b8S_), + _b8U_ = caml_call2(Runtime_ocaml_Runtime[83], _b8T_, _b8R_), + _b8V_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _b8W_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b8V_), + _b8X_ = caml_call2(Runtime_ocaml_Runtime[83], _b8W_, _b8U_); + return caml_call2(Runtime_ocaml_Runtime[29], _dY_, _b8X_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _dZ_, [0], _b8Q_, _b8P_); + }, + _b6L_ = + function(param){ + function _b8s_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1057); + } + function _b8t_(param){ + var + _b8u_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d0_), + _b8v_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d1_), + _b8w_ = caml_call2(Runtime_ocaml_Runtime[84], _b8v_, _b8u_), + _b8x_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d2_), + _b8y_ = caml_call2(Runtime_ocaml_Runtime[84], _b8x_, _b8w_), + _b8z_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d3_), + _b8A_ = caml_call2(Runtime_ocaml_Runtime[84], _b8z_, _b8y_), + _b8B_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d4_), + _b8C_ = caml_call2(Runtime_ocaml_Runtime[84], _b8B_, _b8A_), + _b8D_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d5_), + _b8E_ = caml_call2(Runtime_ocaml_Runtime[84], _b8D_, _b8C_), + _b8F_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d6_), + _b8G_ = caml_call2(Runtime_ocaml_Runtime[84], _b8F_, _b8E_), + _b8H_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d7_), + _b8I_ = caml_call2(Runtime_ocaml_Runtime[84], _b8H_, _b8G_), + _b8J_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 4, 30), + _b8K_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b8J_), + _b8L_ = caml_call2(Runtime_ocaml_Runtime[83], _b8K_, _b8I_), + _b8M_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _b8N_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b8M_), + _b8O_ = caml_call2(Runtime_ocaml_Runtime[83], _b8N_, _b8L_); + return caml_call2(Runtime_ocaml_Runtime[29], _d8_, _b8O_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _d9_, [0], _b8t_, _b8s_); + }, + _b6M_ = + function(param){ + function _b8j_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_774); + } + function _b8k_(param){ + var + _b8l_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d__), + _b8m_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 12, 31), + _b8n_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b8m_), + _b8o_ = caml_call2(Runtime_ocaml_Runtime[83], _b8n_, _b8l_), + _b8p_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), + _b8q_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b8p_), + _b8r_ = caml_call2(Runtime_ocaml_Runtime[83], _b8q_, _b8o_); + return caml_call2(Runtime_ocaml_Runtime[29], _d$_, _b8r_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _ea_, [0], _b8k_, _b8j_); + }, + _b6N_ = + function(param){ + function _b7Y_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1025); + } + function _b7Z_(param){ + var + _b70_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eb_), + _b71_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ec_), + _b72_ = caml_call2(Runtime_ocaml_Runtime[84], _b71_, _b70_), + _b73_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ed_), + _b74_ = caml_call2(Runtime_ocaml_Runtime[84], _b73_, _b72_), + _b75_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ee_), + _b76_ = caml_call2(Runtime_ocaml_Runtime[84], _b75_, _b74_), + _b77_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ef_), + _b78_ = caml_call2(Runtime_ocaml_Runtime[84], _b77_, _b76_), + _b79_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eg_), + _b7__ = caml_call2(Runtime_ocaml_Runtime[84], _b79_, _b78_), + _b7$_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eh_), + _b8a_ = caml_call2(Runtime_ocaml_Runtime[84], _b7$_, _b7__), + _b8b_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ei_), + _b8c_ = caml_call2(Runtime_ocaml_Runtime[84], _b8b_, _b8a_), + _b8d_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 12, 31), + _b8e_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b8d_), + _b8f_ = caml_call2(Runtime_ocaml_Runtime[83], _b8e_, _b8c_), + _b8g_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), + _b8h_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b8g_), + _b8i_ = caml_call2(Runtime_ocaml_Runtime[83], _b8h_, _b8f_); + return caml_call2(Runtime_ocaml_Runtime[29], _ej_, _b8i_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _ek_, [0], _b7Z_, _b7Y_); + }, + _b6O_ = + function(param){ + function _b7P_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_766); + } + function _b7Q_(param){ + var + _b7R_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _el_), + _b7S_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), + _b7T_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b7S_), + _b7U_ = caml_call2(Runtime_ocaml_Runtime[83], _b7T_, _b7R_), + _b7V_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _b7W_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b7V_), + _b7X_ = caml_call2(Runtime_ocaml_Runtime[83], _b7W_, _b7U_); + return caml_call2(Runtime_ocaml_Runtime[29], _em_, _b7X_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _en_, [0], _b7Q_, _b7P_); + }, + _b6P_ = + function(param){ + function _b7s_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1015); + } + function _b7t_(param){ + var + _b7u_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eo_), + _b7v_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ep_), + _b7w_ = caml_call2(Runtime_ocaml_Runtime[84], _b7v_, _b7u_), + _b7x_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eq_), + _b7y_ = caml_call2(Runtime_ocaml_Runtime[84], _b7x_, _b7w_), + _b7z_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _er_), + _b7A_ = caml_call2(Runtime_ocaml_Runtime[84], _b7z_, _b7y_), + _b7B_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _es_), + _b7C_ = caml_call2(Runtime_ocaml_Runtime[84], _b7B_, _b7A_), + _b7D_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _et_), + _b7E_ = caml_call2(Runtime_ocaml_Runtime[84], _b7D_, _b7C_), + _b7F_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eu_), + _b7G_ = caml_call2(Runtime_ocaml_Runtime[84], _b7F_, _b7E_), + _b7H_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ev_), + _b7I_ = caml_call2(Runtime_ocaml_Runtime[84], _b7H_, _b7G_), + _b7J_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), + _b7K_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b7J_), + _b7L_ = caml_call2(Runtime_ocaml_Runtime[83], _b7K_, _b7I_), + _b7M_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _b7N_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b7M_), + _b7O_ = caml_call2(Runtime_ocaml_Runtime[83], _b7N_, _b7L_); + return caml_call2(Runtime_ocaml_Runtime[29], _ew_, _b7O_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _ex_, [0], _b7t_, _b7s_); + }, + _b6Q_ = + function(param){ + function _b7j_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_757); + } + function _b7k_(param){ + var + _b7l_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ey_), + _b7m_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), + _b7n_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b7m_), + _b7o_ = caml_call2(Runtime_ocaml_Runtime[83], _b7n_, _b7l_), + _b7p_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _b7q_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b7p_), + _b7r_ = caml_call2(Runtime_ocaml_Runtime[83], _b7q_, _b7o_); + return caml_call2(Runtime_ocaml_Runtime[29], _ez_, _b7r_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _eA_, [0], _b7k_, _b7j_); + }, + _b6R_ = + [0, + function(param){ + function _b6Y_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1003); + } + function _b6Z_(param){ + var + _b60_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eB_), + _b61_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eC_), + _b62_ = caml_call2(Runtime_ocaml_Runtime[84], _b61_, _b60_), + _b63_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eD_), + _b64_ = caml_call2(Runtime_ocaml_Runtime[84], _b63_, _b62_), + _b65_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eE_), + _b66_ = caml_call2(Runtime_ocaml_Runtime[84], _b65_, _b64_), + _b67_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eF_), + _b68_ = caml_call2(Runtime_ocaml_Runtime[84], _b67_, _b66_), + _b69_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eG_), + _b6__ = caml_call2(Runtime_ocaml_Runtime[84], _b69_, _b68_), + _b6$_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eH_), + _b7a_ = caml_call2(Runtime_ocaml_Runtime[84], _b6$_, _b6__), + _b7b_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eI_), + _b7c_ = caml_call2(Runtime_ocaml_Runtime[84], _b7b_, _b7a_), + _b7d_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), + _b7e_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b7d_), + _b7f_ = caml_call2(Runtime_ocaml_Runtime[83], _b7e_, _b7c_), + _b7g_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _b7h_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b7g_), + _b7i_ = caml_call2(Runtime_ocaml_Runtime[83], _b7h_, _b7f_); + return caml_call2(Runtime_ocaml_Runtime[29], _eJ_, _b7i_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _eK_, [0], _b6Z_, _b6Y_); + }, + _b6Q_, + _b6P_, + _b6O_, + _b6N_, + _b6M_, + _b6L_, + _b6K_, + _b6J_, + _b6I_, + _b6H_, + _b6G_, + _b6F_, + _b6E_], + _b6S_ = caml_call4(Runtime_ocaml_Runtime[63], _eL_, _b6R_, _b6D_, _b6C_); + } + catch(_b6X_){ + var _b6B_ = caml_wrap_exception(_b6X_); + if(_b6B_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _dj_], 1); + throw caml_maybe_attach_backtrace(_b6B_, 0); + } + var + brut_horaire = + caml_call3 + (Runtime_ocaml_Runtime[28], _eM_, Runtime_ocaml_Runtime[13], _b6S_); + try{ + var + _b6U_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _b6V_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b6U_); + } + catch(_b6W_){ + var _b6T_ = caml_wrap_exception(_b6W_); + if(_b6T_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _eN_], 1); + throw caml_maybe_attach_backtrace(_b6T_, 0); + } + if(_b6V_) return [0, brut_horaire]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _eO_], 1); + } + function arrondi_centaine_superieure(ressources_menage){ + var + _b6v_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100), + _b6w_ = caml_call1(Runtime_ocaml_Runtime[31], cst_49), + _b6x_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_01), + _b6y_ = caml_call2(Runtime_ocaml_Runtime[104], ressources_menage, _b6x_), + _b6z_ = caml_call2(Runtime_ocaml_Runtime[93], _b6y_, _b6w_), + _b6A_ = caml_call1(Runtime_ocaml_Runtime[77], _b6z_); + return caml_call2(Runtime_ocaml_Runtime[104], _b6A_, _b6v_); + } + function traitement_nul_tout_le_temps(aide_finale){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$20); + } + function calcul_aide_personnalisee_loge(calcul_aide_personnalisee_loge){ + var + loyer_principal_base = calcul_aide_personnalisee_loge[1], + ressources_menage_arrondies = calcul_aide_personnalisee_loge[2], + beneficiaire_aide_adulte_ou_en = calcul_aide_personnalisee_loge[3], + date_courante = calcul_aide_personnalisee_loge[4], + nombre_personnes_a_charge = calcul_aide_personnalisee_loge[5], + situation_familiale_calcul_apl = calcul_aide_personnalisee_loge[6], + zone = calcul_aide_personnalisee_loge[7], + logement_est_chambre = calcul_aide_personnalisee_loge[8], + agees_ou_handicap_adultes_hebe = calcul_aide_personnalisee_loge[9], + type_aide = calcul_aide_personnalisee_loge[10], + colocation = calcul_aide_personnalisee_loge[11], + reduction_loyer_solidarite = calcul_aide_personnalisee_loge[12], + logement_meuble_d842_2 = calcul_aide_personnalisee_loge[13], + residence = calcul_aide_personnalisee_loge[14]; + try{ + var + _bEC_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_98); + }, + _bED_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _eQ_, 1); + }, + _bEE_ = caml_call4(Runtime_ocaml_Runtime[63], _eR_, [0], _bED_, _bEC_); + } + catch(_b6u_){ + var _bEB_ = caml_wrap_exception(_b6u_); + if(_bEB_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _eP_], 1); + throw caml_maybe_attach_backtrace(_bEB_, 0); + } + var + fraction_l832_3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _eS_, Runtime_ocaml_Runtime[15], _bEE_); + try{ + var + _bEG_ = function(param){return date_courante;}, + _bEH_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _eU_, 1); + }, + _bEI_ = caml_call4(Runtime_ocaml_Runtime[63], _eV_, [0], _bEH_, _bEG_), + contributions_sociales_dot_dat = + caml_call3 + (Runtime_ocaml_Runtime[28], _eW_, Runtime_ocaml_Runtime[16], _bEI_); + } + catch(_b6t_){ + var _bEF_ = caml_wrap_exception(_b6t_); + if(_bEF_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _eT_], 1); + throw caml_maybe_attach_backtrace(_bEF_, 0); + } + var + _bEJ_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _eX_, contributions_sociales_aides_p), + [0, contributions_sociales_dot_dat]), + result = caml_call2(Runtime_ocaml_Runtime[27], _eY_, _bEJ_), + contributions_sociales_dot_mon = result[1]; + try{ + var + _bEL_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_500); + }, + _bEM_ = + function(param){ + var + _b6r_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _b6s_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b6r_); + return caml_call2(Runtime_ocaml_Runtime[29], _e0_, _b6s_); + }, + _bEN_ = caml_call4(Runtime_ocaml_Runtime[63], _e1_, [0], _bEM_, _bEL_); + } + catch(_b6q_){ + var _bEK_ = caml_wrap_exception(_b6q_); + if(_bEK_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _eZ_], 1); + throw caml_maybe_attach_backtrace(_bEK_, 0); + } + var + montant_forfaitaire_d823_16 = + caml_call3 + (Runtime_ocaml_Runtime[28], _e2_, Runtime_ocaml_Runtime[13], _bEN_); + try{ + var + _bEP_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _bEQ_ = function(param){return 0;}, + _bER_ = + [0, + function(param){ + function _b58_(param){ + return caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge); + } + function _b59_(param){ + var + _b6o_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b6p_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b6o_); + return caml_call2(Runtime_ocaml_Runtime[29], _e4_, _b6p_); + } + var + _b5__ = + [0, + function(param){ + function _b5$_(param){ + return caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge); + } + function _b6a_(param){ + var + _b6j_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b6k_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b6j_), + _b6l_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _b6m_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b6l_), + _b6n_ = caml_call2(Runtime_ocaml_Runtime[83], _b6m_, _b6k_); + return caml_call2(Runtime_ocaml_Runtime[29], _e5_, _b6n_); + } + var + _b6b_ = + [0, + function(param){ + function _b6c_(param){ + return caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge); + } + function _b6d_(param){ + var + _b6e_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _b6f_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b6e_), + _b6g_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _b6h_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b6g_), + _b6i_ = caml_call2(Runtime_ocaml_Runtime[83], _b6h_, _b6f_); + return caml_call2(Runtime_ocaml_Runtime[29], _e6_, _b6i_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _e7_, [0], _b6d_, _b6c_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _e8_, _b6b_, _b6a_, _b5$_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _e9_, _b5__, _b59_, _b58_); + }], + _bES_ = caml_call4(Runtime_ocaml_Runtime[63], _e__, _bER_, _bEQ_, _bEP_); + } + catch(_b57_){ + var _bEO_ = caml_wrap_exception(_b57_); + if(_bEO_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _e3_], 1); + throw caml_maybe_attach_backtrace(_bEO_, 0); + } + var + multiplicateur_majoration_char = + caml_call3 + (Runtime_ocaml_Runtime[28], _e$_, Runtime_ocaml_Runtime[15], _bES_); + try{ + var + _bEU_ = + function(param){ + switch(type_aide[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$21); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_1000); + default: return caml_call1(Runtime_ocaml_Runtime[31], cst_1000$0); + } + }, + _bEV_ = + function(param){ + var + _b55_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _b56_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b55_); + return caml_call2(Runtime_ocaml_Runtime[29], _fb_, _b56_); + }, + _bEW_ = caml_call4(Runtime_ocaml_Runtime[63], _fc_, [0], _bEV_, _bEU_); + } + catch(_b54_){ + var _bET_ = caml_wrap_exception(_b54_); + if(_bET_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _fa_], 1); + throw caml_maybe_attach_backtrace(_bET_, 0); + } + var + montant_minimal_aide_d823_16 = + caml_call3 + (Runtime_ocaml_Runtime[28], _fd_, Runtime_ocaml_Runtime[13], _bEW_); + try{ + var + _bEY_ = + function(param){ + if(! logement_meuble_d842_2) return loyer_principal_base; + var + _b51_ = caml_call1(Runtime_ocaml_Runtime[39], cst_3$5), + _b52_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2$6), + _b53_ = caml_call2(Runtime_ocaml_Runtime[107], _b52_, _b51_); + return caml_call2 + (Runtime_ocaml_Runtime[104], loyer_principal_base, _b53_); + }, + _bEZ_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ff_, 1); + }, + _bE0_ = caml_call4(Runtime_ocaml_Runtime[63], _fg_, [0], _bEZ_, _bEY_); + } + catch(_b50_){ + var _bEX_ = caml_wrap_exception(_b50_); + if(_bEX_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _fe_], 1); + throw caml_maybe_attach_backtrace(_bEX_, 0); + } + var + loyer_principal_avec_reduction = + caml_call3 + (Runtime_ocaml_Runtime[28], _fh_, Runtime_ocaml_Runtime[13], _bE0_); + try{ + var + _bE2_ = + function(param){ + function _b42_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _b43_(param){return 0;} + var + _b44_ = + [0, + function(param){ + function _b45_(param){ + var _b5N_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$22); if (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b0g_)) + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b5N_)) return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25978$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31797$0); + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0283) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0315); + var _b5O_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$5); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b5O_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_027); + var _b5P_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$7); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b5P_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238); + var _b5Q_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$6); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b5Q_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0201); + var _b5R_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$7); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b5R_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0185); + var _b5S_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b5S_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0179); + var _b5T_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$2); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b5T_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0173); var - _b0h_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$37), - _b0i_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_b0h_), - _b0j_=caml_call1(Runtime_ocaml_Runtime[69],_b0i_), - _b0k_=caml_call1(Runtime_ocaml_Runtime[31],cst_5208$0), - _b0l_=caml_call2(Runtime_ocaml_Runtime[104],_b0k_,_b0j_), - _b0m_=caml_call1(Runtime_ocaml_Runtime[31],cst_35780$0), - montant=caml_call2(Runtime_ocaml_Runtime[93],_b0m_,_b0l_), - _b0n_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$2), - _b0o_=caml_call1(Runtime_ocaml_Runtime[31],cst_5208$1), - _b0p_=caml_call2(Runtime_ocaml_Runtime[104],_b0o_,_b0n_), - _b0q_=caml_call1(Runtime_ocaml_Runtime[31],cst_35780$1), - limite=caml_call2(Runtime_ocaml_Runtime[93],_b0q_,_b0p_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _b0a_(param) - {var - _b0b_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _b0c_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b0b_), - _b0d_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b0e_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b0d_), - _b0f_=caml_call2(Runtime_ocaml_Runtime[83],_b0e_,_b0c_); - return caml_call2(Runtime_ocaml_Runtime[29],_qN_,_b0f_)} - return caml_call4(Runtime_ocaml_Runtime[63],_qO_,[0],_b0a_,_bZ$_)}], - _bHH_=caml_call4(Runtime_ocaml_Runtime[63],_qP_,_bHG_,_bHF_,_bHE_)} - catch(_bZ__) - {_bZ__ = caml_wrap_exception(_bZ__); - if(_bZ__ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_qF_]; - throw _bZ__} - var - loyer_reference= - caml_call3 - (Runtime_ocaml_Runtime[28],_qQ_,Runtime_ocaml_Runtime[13],_bHH_); - try - {var - _bHI_= - function(param) - {switch(type_aide[0]) - {case 0:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$93); - case 1:return caml_call1(Runtime_ocaml_Runtime[31],cst_1000); - default:return caml_call1(Runtime_ocaml_Runtime[31],cst_1000$0)}}, - _bHJ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_qS_,1)}, - _bHK_=caml_call4(Runtime_ocaml_Runtime[63],_qT_,[0],_bHJ_,_bHI_)} - catch(_bZ9_) - {_bZ9_ = caml_wrap_exception(_bZ9_); - if(_bZ9_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_qR_]; - throw _bZ9_} - var - montant_minimal_aide_d823_16= - caml_call3 - (Runtime_ocaml_Runtime[28],_qU_,Runtime_ocaml_Runtime[13],_bHK_); - try - {var - _bHL_= - function(param) - {if(logement_meuble_d842_2) - {var - _bZ6_=caml_call1(Runtime_ocaml_Runtime[39],cst_3$9), - _bZ7_=caml_call1(Runtime_ocaml_Runtime[39],cst_2$24), - _bZ8_=caml_call2(Runtime_ocaml_Runtime[107],_bZ7_,_bZ6_); - return caml_call2 - (Runtime_ocaml_Runtime[104],loyer_principal_base,_bZ8_)} - return loyer_principal_base}, - _bHM_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_qW_,1)}, - _bHN_=caml_call4(Runtime_ocaml_Runtime[63],_qX_,[0],_bHM_,_bHL_)} - catch(_bZ5_) - {_bZ5_ = caml_wrap_exception(_bZ5_); - if(_bZ5_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_qV_]; - throw _bZ5_} - var - loyer_principal_avec_reduction= - caml_call3 - (Runtime_ocaml_Runtime[28],_qY_,Runtime_ocaml_Runtime[13],_bHN_); - try - {var - _bHO_= - function(param) - {function _bY7_(param){throw Runtime_ocaml_Runtime[2]} - function _bY8_(param){return 0} - var - _bY9_= - [0, - function(param) - {function _bY__(param) - {var _bZS_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$94); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bZS_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0283) - :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0315); - var _bZT_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$38); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bZT_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_027); - var _bZU_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$25); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bZU_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0238); - var _bZV_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$10); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bZV_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0201); - var _bZW_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$7); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bZW_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0185); - var _bZX_=caml_call1(Runtime_ocaml_Runtime[46],cst_5); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bZX_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0179); - var _bZY_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$3); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bZY_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0173); - var - _bZZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$4), - _bZ0_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bZZ_), - _bZ1_=caml_call1(Runtime_ocaml_Runtime[69],_bZ0_), - _bZ2_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0006), - _bZ3_=caml_call2(Runtime_ocaml_Runtime[103],_bZ2_,_bZ1_), - _bZ4_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0173$0); - return caml_call2(Runtime_ocaml_Runtime[97],_bZ4_,_bZ3_)} - function _bY$_(param) - {var - _bZQ_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bZR_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bZQ_); - return caml_call2(Runtime_ocaml_Runtime[29],_q0_,_bZR_)} - var - _bZa_= - [0, - function(param) - {function _bZb_(param) - {var _bZD_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$95); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bZD_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0283$0) - :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0315$0); - var _bZE_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$39); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bZE_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_027$0); - var _bZF_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$26); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bZF_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0238$0); - var _bZG_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$11); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bZG_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0201$0); - var _bZH_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$8); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bZH_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0185$0); - var _bZI_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$0); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bZI_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0179$0); - var _bZJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$5); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bZJ_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0173$1); - var - _bZK_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$6), - _bZL_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bZK_), - _bZM_=caml_call1(Runtime_ocaml_Runtime[69],_bZL_), - _bZN_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0006$0), - _bZO_=caml_call2(Runtime_ocaml_Runtime[103],_bZN_,_bZM_), - _bZP_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0173$2); - return caml_call2(Runtime_ocaml_Runtime[97],_bZP_,_bZO_)} - function _bZc_(param) - {var - _bZy_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bZz_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bZy_), - _bZA_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bZB_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bZA_), - _bZC_=caml_call2(Runtime_ocaml_Runtime[83],_bZB_,_bZz_); - return caml_call2(Runtime_ocaml_Runtime[29],_q1_,_bZC_)} - var - _bZd_= - [0, - function(param) - {function _bZe_(param) - {var _bZl_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$96); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bZl_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0283$1) - :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0315$1); - var _bZm_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$40); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bZm_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_027$1); - var _bZn_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$27); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bZn_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0238$1); - var _bZo_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$12); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bZo_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0201$1); - var _bZp_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$9); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bZp_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0185$1); - var _bZq_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$1); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bZq_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0179$1); - var _bZr_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$7); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bZr_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0173$3); - var - _bZs_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$8), - _bZt_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bZs_), - _bZu_=caml_call1(Runtime_ocaml_Runtime[69],_bZt_), - _bZv_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0006$1), - _bZw_=caml_call2(Runtime_ocaml_Runtime[103],_bZv_,_bZu_), - _bZx_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0173$4); - return caml_call2(Runtime_ocaml_Runtime[97],_bZx_,_bZw_)} - function _bZf_(param) - {var - _bZg_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bZh_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bZg_), - _bZi_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bZj_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bZi_), - _bZk_=caml_call2(Runtime_ocaml_Runtime[83],_bZj_,_bZh_); - return caml_call2(Runtime_ocaml_Runtime[29],_q2_,_bZk_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_q3_,[0],_bZf_,_bZe_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_q4_,_bZd_,_bZc_,_bZb_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_q5_,_bZa_,_bY$_,_bY__)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_q6_,_bY9_,_bY8_,_bY7_)}, - _bHP_=function(param){return 1}, - _bHQ_= - [0, - function(param) - {function _bYu_(param){throw Runtime_ocaml_Runtime[2]} - function _bYv_(param){return 0} - function _bYw_(param) - {function _bYS_(param) - {var _bY1_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$97); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bY1_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0281) - :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0299); - var _bY2_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$41); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bY2_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0238$2); - var _bY3_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$28); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bY3_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0217); - var _bY4_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$13); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bY4_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0194); - var _bY5_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$10); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bY5_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_018); - var _bY6_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$2); - return caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bY6_) - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0169) - :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0162)} - function _bYT_(param) - {switch(residence[0]) - {case 0:var _bYU_=1;break; - case 1:var _bYU_=0;break; - case 2:var _bYU_=1;break; - case 3:var _bYU_=1;break; - case 4:var _bYU_=1;break; - case 5:var _bYU_=1;break; - case 6:var _bYU_=0;break; - case 7:var _bYU_=0;break; - default:var _bYU_=1} - var - _bYV_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _bYW_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bYV_), - _bYX_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bYY_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bYX_), - _bYZ_=caml_call2(Runtime_ocaml_Runtime[83],_bYY_,_bYW_), - _bY0_=caml_call2(Runtime_ocaml_Runtime[83],_bYZ_,_bYU_); - return caml_call2(Runtime_ocaml_Runtime[29],_q7_,_bY0_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_q8_,[0],_bYT_,_bYS_)} - var - _bYx_= - [0, - function(param) - {function _bYy_(param) - {var _bYE_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$98); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bYE_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0281$0) - :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0299$0); - var _bYF_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$42); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bYF_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0238$3); - var _bYG_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$29); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bYG_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0217$0); - var _bYH_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$14); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bYH_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0194$0); - var _bYI_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$11); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bYI_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_018$0); - var _bYJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$3); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bYJ_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0169$0); - var _bYK_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$9); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bYK_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0162$0); - var _bYL_=caml_call1(Runtime_ocaml_Runtime[46],cst_7); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bYL_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0167); - var - _bYM_=caml_call1(Runtime_ocaml_Runtime[46],cst_7$0), - _bYN_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bYM_), - _bYO_=caml_call1(Runtime_ocaml_Runtime[69],_bYN_), - _bYP_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0006$2), - _bYQ_=caml_call2(Runtime_ocaml_Runtime[103],_bYP_,_bYO_), - _bYR_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0167$0); - return caml_call2(Runtime_ocaml_Runtime[97],_bYR_,_bYQ_)} - function _bYz_(param) - {switch(residence[0]) - {case 0:var _bYA_=1;break; - case 1:var _bYA_=0;break; - case 2:var _bYA_=1;break; - case 3:var _bYA_=1;break; - case 4:var _bYA_=1;break; - case 5:var _bYA_=1;break; - case 6:var _bYA_=0;break; - case 7:var _bYA_=0;break; - default:var _bYA_=1} - var - _bYB_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _bYC_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bYB_), - _bYD_=caml_call2(Runtime_ocaml_Runtime[83],_bYC_,_bYA_); - return caml_call2(Runtime_ocaml_Runtime[29],_q9_,_bYD_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_q__,[0],_bYz_,_bYy_)}, - _bYw_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_q$_,_bYx_,_bYv_,_bYu_)}], - _bHR_=caml_call4(Runtime_ocaml_Runtime[63],_ra_,_bHQ_,_bHP_,_bHO_)} - catch(_bYt_) - {_bYt_ = caml_wrap_exception(_bYt_); - if(_bYt_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_qZ_]; - throw _bYt_} - var - taux_composition_familiale= - caml_call3 - (Runtime_ocaml_Runtime[28],_rb_,Runtime_ocaml_Runtime[15],_bHR_); - try - {var - _bHS_= - function(param) - {function _bV1_(param){throw Runtime_ocaml_Runtime[2]} - function _bV2_(param){return 0} - function _bV3_(param) - {function _bX3_(param) - {switch(zone[0]) - {case 0: - var - _bYb_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$43), - _bYc_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bYb_), - _bYd_=caml_call1(Runtime_ocaml_Runtime[69],_bYc_), - _bYe_=caml_call1(Runtime_ocaml_Runtime[31],cst_5870), - _bYf_=caml_call2(Runtime_ocaml_Runtime[104],_bYe_,_bYd_), - _bYg_=caml_call1(Runtime_ocaml_Runtime[31],cst_40460); - return caml_call2(Runtime_ocaml_Runtime[93],_bYg_,_bYf_); - case 1: - var - _bYh_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$44), - _bYi_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bYh_), - _bYj_=caml_call1(Runtime_ocaml_Runtime[69],_bYi_), - _bYk_=caml_call1(Runtime_ocaml_Runtime[31],cst_5186$0), - _bYl_=caml_call2(Runtime_ocaml_Runtime[104],_bYk_,_bYj_), - _bYm_=caml_call1(Runtime_ocaml_Runtime[31],cst_35630$0); - return caml_call2(Runtime_ocaml_Runtime[93],_bYm_,_bYl_); - default: - var - _bYn_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$45), - _bYo_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bYn_), - _bYp_=caml_call1(Runtime_ocaml_Runtime[69],_bYo_), - _bYq_=caml_call1(Runtime_ocaml_Runtime[31],cst_4723), - _bYr_=caml_call2(Runtime_ocaml_Runtime[104],_bYq_,_bYp_), - _bYs_=caml_call1(Runtime_ocaml_Runtime[31],cst_32956); - return caml_call2(Runtime_ocaml_Runtime[93],_bYs_,_bYr_)}} - function _bX4_(param) - {var - _bX5_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$46), - _bX6_= + _b5U_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$3), + _b5V_ = caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_bX5_), - _bX7_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bX8_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bX7_), - _bX9_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bX__= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bX9_), - _bX$_=caml_call2(Runtime_ocaml_Runtime[83],_bX__,_bX8_), - _bYa_=caml_call2(Runtime_ocaml_Runtime[83],_bX$_,_bX6_); - return caml_call2(Runtime_ocaml_Runtime[29],_rd_,_bYa_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_re_,[0],_bX4_,_bX3_)} - function _bV4_(param) - {function _bXR_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_35799); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_31664$0); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_29392)}} - function _bXS_(param) - {var - _bXT_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$99), - _bXU_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bXT_), - _bXV_=0 === situation_familiale_calcul_apl[0]?0:1, - _bXW_=caml_call2(Runtime_ocaml_Runtime[83],_bXV_,_bXU_), - _bXX_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bXY_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bXX_), - _bXZ_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bX0_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bXZ_), - _bX1_=caml_call2(Runtime_ocaml_Runtime[83],_bX0_,_bXY_), - _bX2_=caml_call2(Runtime_ocaml_Runtime[83],_bX1_,_bXW_); - return caml_call2(Runtime_ocaml_Runtime[29],_rf_,_bX2_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_rg_,[0],_bXS_,_bXR_)} - function _bV5_(param) - {function _bXF_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_29682); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_25859); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_24246)}} - function _bXG_(param) - {var - _bXH_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$100), - _bXI_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bXH_), - _bXJ_=0 === situation_familiale_calcul_apl[0]?1:0, - _bXK_=caml_call2(Runtime_ocaml_Runtime[83],_bXJ_,_bXI_), - _bXL_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bXM_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bXL_), - _bXN_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bXO_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bXN_), - _bXP_=caml_call2(Runtime_ocaml_Runtime[83],_bXO_,_bXM_), - _bXQ_=caml_call2(Runtime_ocaml_Runtime[83],_bXP_,_bXK_); - return caml_call2(Runtime_ocaml_Runtime[29],_rh_,_bXQ_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ri_,[0],_bXG_,_bXF_)} - function _bV6_(param) - {function _bXd_(param) - {switch(zone[0]) - {case 0: - var - _bXn_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$47), - _bXo_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bXn_), - _bXp_=caml_call1(Runtime_ocaml_Runtime[69],_bXo_), - _bXq_=caml_call1(Runtime_ocaml_Runtime[31],cst_5895), - _bXr_=caml_call2(Runtime_ocaml_Runtime[104],_bXq_,_bXp_), - _bXs_=caml_call1(Runtime_ocaml_Runtime[31],cst_40630); - return caml_call2(Runtime_ocaml_Runtime[93],_bXs_,_bXr_); - case 1: - var - _bXt_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$48), - _bXu_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bXt_), - _bXv_=caml_call1(Runtime_ocaml_Runtime[69],_bXu_), - _bXw_=caml_call1(Runtime_ocaml_Runtime[31],cst_5208$2), - _bXx_=caml_call2(Runtime_ocaml_Runtime[104],_bXw_,_bXv_), - _bXy_=caml_call1(Runtime_ocaml_Runtime[31],cst_35780$2); - return caml_call2(Runtime_ocaml_Runtime[93],_bXy_,_bXx_); - default: - var - _bXz_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$49), - _bXA_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bXz_), - _bXB_=caml_call1(Runtime_ocaml_Runtime[69],_bXA_), - _bXC_=caml_call1(Runtime_ocaml_Runtime[31],cst_4743), - _bXD_=caml_call2(Runtime_ocaml_Runtime[104],_bXC_,_bXB_), - _bXE_=caml_call1(Runtime_ocaml_Runtime[31],cst_33094); - return caml_call2(Runtime_ocaml_Runtime[93],_bXE_,_bXD_)}} - function _bXe_(param) - {var - _bXf_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$50), - _bXg_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_bXf_), - _bXh_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bXi_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bXh_), - _bXj_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bXk_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bXj_), - _bXl_=caml_call2(Runtime_ocaml_Runtime[83],_bXk_,_bXi_), - _bXm_=caml_call2(Runtime_ocaml_Runtime[83],_bXl_,_bXg_); - return caml_call2(Runtime_ocaml_Runtime[29],_rj_,_bXm_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_rk_,[0],_bXe_,_bXd_)} - function _bV7_(param) - {function _bW3_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_35949); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_31797$1); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_29515)}} - function _bW4_(param) - {var - _bW5_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$101), - _bW6_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bW5_), - _bW7_=0 === situation_familiale_calcul_apl[0]?0:1, - _bW8_=caml_call2(Runtime_ocaml_Runtime[83],_bW7_,_bW6_), - _bW9_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bW__= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bW9_), - _bW$_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bXa_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bW$_), - _bXb_=caml_call2(Runtime_ocaml_Runtime[83],_bXa_,_bW__), - _bXc_=caml_call2(Runtime_ocaml_Runtime[83],_bXb_,_bW8_); - return caml_call2(Runtime_ocaml_Runtime[29],_rl_,_bXc_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_rm_,[0],_bW4_,_bW3_)} - function _bV8_(param) - {function _bWR_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_29807); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_25978$1); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_24348)}} - function _bWS_(param) - {var - _bWT_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$102), - _bWU_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bWT_), - _bWV_=0 === situation_familiale_calcul_apl[0]?1:0, - _bWW_=caml_call2(Runtime_ocaml_Runtime[83],_bWV_,_bWU_), - _bWX_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bWY_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bWX_), - _bWZ_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bW0_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bWZ_), - _bW1_=caml_call2(Runtime_ocaml_Runtime[83],_bW0_,_bWY_), - _bW2_=caml_call2(Runtime_ocaml_Runtime[83],_bW1_,_bWW_); - return caml_call2(Runtime_ocaml_Runtime[29],_rn_,_bW2_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ro_,[0],_bWS_,_bWR_)} - function _bV9_(param) - {function _bWs_(param) - {switch(zone[0]) - {case 0: - var - _bWz_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$51), - _bWA_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bWz_), - _bWB_=caml_call1(Runtime_ocaml_Runtime[69],_bWA_), - _bWC_=caml_call1(Runtime_ocaml_Runtime[31],cst_6101), - _bWD_=caml_call2(Runtime_ocaml_Runtime[104],_bWC_,_bWB_), - _bWE_=caml_call1(Runtime_ocaml_Runtime[31],cst_42052); - return caml_call2(Runtime_ocaml_Runtime[93],_bWE_,_bWD_); - case 1: - var - _bWF_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$52), - _bWG_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bWF_), - _bWH_=caml_call1(Runtime_ocaml_Runtime[69],_bWG_), - _bWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_5390$0), - _bWJ_=caml_call2(Runtime_ocaml_Runtime[104],_bWI_,_bWH_), - _bWK_=caml_call1(Runtime_ocaml_Runtime[31],cst_37032$0); - return caml_call2(Runtime_ocaml_Runtime[93],_bWK_,_bWJ_); - default: - var - _bWL_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$53), - _bWM_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bWL_), - _bWN_=caml_call1(Runtime_ocaml_Runtime[69],_bWM_), - _bWO_=caml_call1(Runtime_ocaml_Runtime[31],cst_4909), - _bWP_=caml_call2(Runtime_ocaml_Runtime[104],_bWO_,_bWN_), - _bWQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_34252); - return caml_call2(Runtime_ocaml_Runtime[93],_bWQ_,_bWP_)}} - function _bWt_(param) - {var - _bWu_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$54), - _bWv_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_bWu_), - _bWw_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bWx_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bWw_), - _bWy_=caml_call2(Runtime_ocaml_Runtime[83],_bWx_,_bWv_); - return caml_call2(Runtime_ocaml_Runtime[29],_rp_,_bWy_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_rq_,[0],_bWt_,_bWs_)} - function _bV__(param) - {function _bWj_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_37207); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_32910$0); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_30548)}} - function _bWk_(param) - {var - _bWl_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$103), - _bWm_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bWl_), - _bWn_=0 === situation_familiale_calcul_apl[0]?0:1, - _bWo_=caml_call2(Runtime_ocaml_Runtime[83],_bWn_,_bWm_), - _bWp_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bWq_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bWp_), - _bWr_=caml_call2(Runtime_ocaml_Runtime[83],_bWq_,_bWo_); - return caml_call2(Runtime_ocaml_Runtime[29],_rr_,_bWr_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_rs_,[0],_bWk_,_bWj_)} - var - _bV$_= - [0, - function(param) - {function _bWa_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_30850); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_26887$0); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_25200)}} - function _bWb_(param) - {var - _bWc_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$104), - _bWd_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bWc_), - _bWe_=0 === situation_familiale_calcul_apl[0]?1:0, - _bWf_=caml_call2(Runtime_ocaml_Runtime[83],_bWe_,_bWd_), - _bWg_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bWh_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bWg_), - _bWi_=caml_call2(Runtime_ocaml_Runtime[83],_bWh_,_bWf_); - return caml_call2(Runtime_ocaml_Runtime[29],_rt_,_bWi_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ru_,[0],_bWb_,_bWa_)}, - _bV__, - _bV9_, - _bV8_, - _bV7_, - _bV6_, - _bV5_, - _bV4_, - _bV3_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_rv_,_bV$_,_bV2_,_bV1_)}, - _bHT_=function(param){return 1}, - _bHU_= - function(param) - {function _bU7_(param) - {function _bVB_(param){throw Runtime_ocaml_Runtime[2]} - function _bVC_(param){return 0} - function _bVD_(param) - {function _bVT_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_26714); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_23282); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_21821)}} - function _bVU_(param) - {var - _bVV_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bVW_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bVV_), - _bVX_= - caml_call2 - (Runtime_ocaml_Runtime[83],_bVW_,logement_est_chambre), - _bVY_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bVZ_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bVY_), - _bV0_=caml_call2(Runtime_ocaml_Runtime[83],_bVZ_,_bVX_); - return caml_call2(Runtime_ocaml_Runtime[29],_rw_,_bV0_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_rx_,[0],_bVU_,_bVT_)} - function _bVE_(param) - {function _bVL_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_26826); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_23380); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_21913)}} - function _bVM_(param) - {var - _bVN_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bVO_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bVN_), - _bVP_= - caml_call2 - (Runtime_ocaml_Runtime[83],_bVO_,logement_est_chambre), - _bVQ_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bVR_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bVQ_), - _bVS_=caml_call2(Runtime_ocaml_Runtime[83],_bVR_,_bVP_); - return caml_call2(Runtime_ocaml_Runtime[29],_ry_,_bVS_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_rz_,[0],_bVM_,_bVL_)} + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _b5U_), + _b5W_ = caml_call1(Runtime_ocaml_Runtime[69], _b5V_), + _b5X_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0006), + _b5Y_ = caml_call2(Runtime_ocaml_Runtime[103], _b5X_, _b5W_), + _b5Z_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0173$0); + return caml_call2(Runtime_ocaml_Runtime[97], _b5Z_, _b5Y_); + } + function _b46_(param){ + var + _b5L_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b5M_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b5L_); + return caml_call2(Runtime_ocaml_Runtime[29], _fj_, _b5M_); + } var - _bVF_= - [0, - function(param) - {function _bVG_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_27765); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_24198); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_22680)}} - function _bVH_(param) - {var - _bVI_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bVJ_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bVI_), - _bVK_= - caml_call2 - (Runtime_ocaml_Runtime[83],_bVJ_,logement_est_chambre); - return caml_call2(Runtime_ocaml_Runtime[29],_rA_,_bVK_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_rB_,[0],_bVH_,_bVG_)}, - _bVE_, - _bVD_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_rC_,_bVF_,_bVC_,_bVB_)} - function _bU8_(param){return 1} - var - _bU9_= - [0, - function(param) - {function _bU__(param){throw Runtime_ocaml_Runtime[2]} - function _bU$_(param){return 0} - function _bVa_(param) - {function _bVs_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_22262); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_19402); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_18185)}} - function _bVt_(param) - {var - _bVu_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bVv_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bVu_), - _bVw_= - caml_call2 - (Runtime_ocaml_Runtime[83],_bVv_,logement_est_chambre), - _bVx_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bVy_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bVx_), - _bVz_=caml_call2(Runtime_ocaml_Runtime[83],_bVy_,_bVw_), - _bVA_= - caml_call2 - (Runtime_ocaml_Runtime[83], - _bVz_, - agees_ou_handicap_adultes_hebe); - return caml_call2(Runtime_ocaml_Runtime[29],_rD_,_bVA_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_rE_,[0],_bVt_,_bVs_)} - function _bVb_(param) - {function _bVj_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_22355); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_19484); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_18261)}} - function _bVk_(param) - {var - _bVl_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bVm_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bVl_), - _bVn_= - caml_call2 - (Runtime_ocaml_Runtime[83],_bVm_,logement_est_chambre), - _bVo_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bVp_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bVo_), - _bVq_=caml_call2(Runtime_ocaml_Runtime[83],_bVp_,_bVn_), - _bVr_= - caml_call2 - (Runtime_ocaml_Runtime[83], - _bVq_, - agees_ou_handicap_adultes_hebe); - return caml_call2(Runtime_ocaml_Runtime[29],_rF_,_bVr_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_rG_,[0],_bVk_,_bVj_)} - var - _bVc_= - [0, - function(param) - {function _bVd_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_23138); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_20165); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_18900)}} - function _bVe_(param) - {var - _bVf_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bVg_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bVf_), - _bVh_= - caml_call2 - (Runtime_ocaml_Runtime[83],_bVg_,logement_est_chambre), - _bVi_= - caml_call2 - (Runtime_ocaml_Runtime[83], - _bVh_, - agees_ou_handicap_adultes_hebe); - return caml_call2(Runtime_ocaml_Runtime[29],_rH_,_bVi_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_rI_,[0],_bVe_,_bVd_)}, - _bVb_, - _bVa_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_rJ_,_bVc_,_bU$_,_bU__)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_rK_,_bU9_,_bU8_,_bU7_)}, - _bHV_= - [0, - function(param) - {function _bRM_(param){throw Runtime_ocaml_Runtime[2]} - function _bRN_(param){return 0} - function _bRO_(param) - {function _bUE_(param) - {switch(zone[0]) - {case 0: - var - _bUP_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$55), - _bUQ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bUP_), - _bUR_=caml_call1(Runtime_ocaml_Runtime[69],_bUQ_), - _bUS_=caml_call1(Runtime_ocaml_Runtime[31],cst_4403), - _bUT_=caml_call2(Runtime_ocaml_Runtime[104],_bUS_,_bUR_), - _bUU_=caml_call1(Runtime_ocaml_Runtime[31],cst_30345); - return caml_call2(Runtime_ocaml_Runtime[93],_bUU_,_bUT_); - case 1: - var - _bUV_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$56), - _bUW_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bUV_), - _bUX_=caml_call1(Runtime_ocaml_Runtime[69],_bUW_), - _bUY_=caml_call1(Runtime_ocaml_Runtime[31],cst_3890), - _bUZ_=caml_call2(Runtime_ocaml_Runtime[104],_bUY_,_bUX_), - _bU0_=caml_call1(Runtime_ocaml_Runtime[31],cst_26723); - return caml_call2(Runtime_ocaml_Runtime[93],_bU0_,_bUZ_); - default: - var - _bU1_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$57), - _bU2_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bU1_), - _bU3_=caml_call1(Runtime_ocaml_Runtime[69],_bU2_), - _bU4_=caml_call1(Runtime_ocaml_Runtime[31],cst_3542), - _bU5_=caml_call2(Runtime_ocaml_Runtime[104],_bU4_,_bU3_), - _bU6_=caml_call1(Runtime_ocaml_Runtime[31],cst_24717); - return caml_call2(Runtime_ocaml_Runtime[93],_bU6_,_bU5_)}} - function _bUF_(param) - {var - _bUG_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$58), - _bUH_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_bUG_), - _bUI_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bUJ_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bUI_), - _bUK_=caml_call2(Runtime_ocaml_Runtime[83],_bUJ_,colocation), - _bUL_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bUM_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bUL_), - _bUN_=caml_call2(Runtime_ocaml_Runtime[83],_bUM_,_bUK_), - _bUO_=caml_call2(Runtime_ocaml_Runtime[83],_bUN_,_bUH_); - return caml_call2(Runtime_ocaml_Runtime[29],_rL_,_bUO_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_rM_,[0],_bUF_,_bUE_)} - function _bRP_(param) - {function _bUr_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_26849); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_23748); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_22044)}} - function _bUs_(param) - {var - _bUt_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$105), - _bUu_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bUt_), - _bUv_=0 === situation_familiale_calcul_apl[0]?0:1, - _bUw_=caml_call2(Runtime_ocaml_Runtime[83],_bUv_,_bUu_), - _bUx_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bUy_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bUx_), - _bUz_=caml_call2(Runtime_ocaml_Runtime[83],_bUy_,colocation), - _bUA_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bUB_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bUA_), - _bUC_=caml_call2(Runtime_ocaml_Runtime[83],_bUB_,_bUz_), - _bUD_=caml_call2(Runtime_ocaml_Runtime[83],_bUC_,_bUw_); - return caml_call2(Runtime_ocaml_Runtime[29],_rN_,_bUD_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_rO_,[0],_bUs_,_bUr_)} - function _bRQ_(param) - {function _bUe_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_22262$0); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_19402$0); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_18185$0)}} - function _bUf_(param) - {var - _bUg_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$106), - _bUh_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bUg_), - _bUi_=0 === situation_familiale_calcul_apl[0]?1:0, - _bUj_=caml_call2(Runtime_ocaml_Runtime[83],_bUi_,_bUh_), - _bUk_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bUl_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bUk_), - _bUm_=caml_call2(Runtime_ocaml_Runtime[83],_bUl_,colocation), - _bUn_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bUo_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bUn_), - _bUp_=caml_call2(Runtime_ocaml_Runtime[83],_bUo_,_bUm_), - _bUq_=caml_call2(Runtime_ocaml_Runtime[83],_bUp_,_bUj_); - return caml_call2(Runtime_ocaml_Runtime[29],_rP_,_bUq_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_rQ_,[0],_bUf_,_bUe_)} - function _bRR_(param) - {function _bTN_(param) - {switch(zone[0]) - {case 0: - var - _bTY_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$59), - _bTZ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bTY_), - _bT0_=caml_call1(Runtime_ocaml_Runtime[69],_bTZ_), - _bT1_=caml_call1(Runtime_ocaml_Runtime[31],cst_4421), - _bT2_=caml_call2(Runtime_ocaml_Runtime[104],_bT1_,_bT0_), - _bT3_=caml_call1(Runtime_ocaml_Runtime[31],cst_30473); - return caml_call2(Runtime_ocaml_Runtime[93],_bT3_,_bT2_); - case 1: - var - _bT4_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$60), - _bT5_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bT4_), - _bT6_=caml_call1(Runtime_ocaml_Runtime[69],_bT5_), - _bT7_=caml_call1(Runtime_ocaml_Runtime[31],cst_3906), - _bT8_=caml_call2(Runtime_ocaml_Runtime[104],_bT7_,_bT6_), - _bT9_=caml_call1(Runtime_ocaml_Runtime[31],cst_26835); - return caml_call2(Runtime_ocaml_Runtime[93],_bT9_,_bT8_); - default: - var - _bT__=caml_call1(Runtime_ocaml_Runtime[46],cst_1$61), - _bT$_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bT__), - _bUa_=caml_call1(Runtime_ocaml_Runtime[69],_bT$_), - _bUb_=caml_call1(Runtime_ocaml_Runtime[31],cst_3557), - _bUc_=caml_call2(Runtime_ocaml_Runtime[104],_bUb_,_bUa_), - _bUd_=caml_call1(Runtime_ocaml_Runtime[31],cst_24821); - return caml_call2(Runtime_ocaml_Runtime[93],_bUd_,_bUc_)}} - function _bTO_(param) - {var - _bTP_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$62), - _bTQ_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_bTP_), - _bTR_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bTS_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bTR_), - _bTT_=caml_call2(Runtime_ocaml_Runtime[83],_bTS_,colocation), - _bTU_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bTV_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bTU_), - _bTW_=caml_call2(Runtime_ocaml_Runtime[83],_bTV_,_bTT_), - _bTX_=caml_call2(Runtime_ocaml_Runtime[83],_bTW_,_bTQ_); - return caml_call2(Runtime_ocaml_Runtime[29],_rR_,_bTX_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_rS_,[0],_bTO_,_bTN_)} - function _bRS_(param) - {function _bTA_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_26962); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_23848); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_22136)}} - function _bTB_(param) - {var - _bTC_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$107), - _bTD_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTC_), - _bTE_=0 === situation_familiale_calcul_apl[0]?0:1, - _bTF_=caml_call2(Runtime_ocaml_Runtime[83],_bTE_,_bTD_), - _bTG_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bTH_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bTG_), - _bTI_=caml_call2(Runtime_ocaml_Runtime[83],_bTH_,colocation), - _bTJ_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bTK_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bTJ_), - _bTL_=caml_call2(Runtime_ocaml_Runtime[83],_bTK_,_bTI_), - _bTM_=caml_call2(Runtime_ocaml_Runtime[83],_bTL_,_bTF_); - return caml_call2(Runtime_ocaml_Runtime[29],_rT_,_bTM_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_rU_,[0],_bTB_,_bTA_)} - function _bRT_(param) - {function _bTn_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_22355$0); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_19484$0); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_18261$0)}} - function _bTo_(param) - {var - _bTp_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$108), - _bTq_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTp_), - _bTr_=0 === situation_familiale_calcul_apl[0]?1:0, - _bTs_=caml_call2(Runtime_ocaml_Runtime[83],_bTr_,_bTq_), - _bTt_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bTu_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bTt_), - _bTv_=caml_call2(Runtime_ocaml_Runtime[83],_bTu_,colocation), - _bTw_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bTx_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bTw_), - _bTy_=caml_call2(Runtime_ocaml_Runtime[83],_bTx_,_bTv_), - _bTz_=caml_call2(Runtime_ocaml_Runtime[83],_bTy_,_bTs_); - return caml_call2(Runtime_ocaml_Runtime[29],_rV_,_bTz_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_rW_,[0],_bTo_,_bTn_)} - function _bRU_(param) - {function _bSG_(param) - {switch(zone[0]) - {case 0: - var - _bSV_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$63), - _bSW_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bSV_), - _bSX_=caml_call1(Runtime_ocaml_Runtime[69],_bSW_), - _bSY_=caml_call1(Runtime_ocaml_Runtime[31],cst_6101$0), - _bSZ_=caml_call2(Runtime_ocaml_Runtime[104],_bSY_,_bSX_), - _bS0_=caml_call1(Runtime_ocaml_Runtime[31],cst_42052$0), - montant=caml_call2(Runtime_ocaml_Runtime[93],_bS0_,_bSZ_), - _bS1_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$10), - _bS2_=caml_call1(Runtime_ocaml_Runtime[31],cst_6101$1), - _bS3_=caml_call2(Runtime_ocaml_Runtime[104],_bS2_,_bS1_), - _bS4_=caml_call1(Runtime_ocaml_Runtime[31],cst_42052$1), - limite=caml_call2(Runtime_ocaml_Runtime[93],_bS4_,_bS3_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant; - case 1: - var - _bS5_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$64), - _bS6_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bS5_), - _bS7_=caml_call1(Runtime_ocaml_Runtime[69],_bS6_), - _bS8_=caml_call1(Runtime_ocaml_Runtime[31],cst_5390$1), - _bS9_=caml_call2(Runtime_ocaml_Runtime[104],_bS8_,_bS7_), - _bS__=caml_call1(Runtime_ocaml_Runtime[31],cst_37032$1), - montant$0=caml_call2(Runtime_ocaml_Runtime[93],_bS__,_bS9_), - _bS$_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$11), - _bTa_=caml_call1(Runtime_ocaml_Runtime[31],cst_5390$2), - _bTb_=caml_call2(Runtime_ocaml_Runtime[104],_bTa_,_bS$_), - _bTc_=caml_call1(Runtime_ocaml_Runtime[31],cst_37032$2), - limite$0=caml_call2(Runtime_ocaml_Runtime[93],_bTc_,_bTb_); - return caml_call2 - (Runtime_ocaml_Runtime[123],montant$0,limite$0) - ?limite$0 - :montant$0; - default: - var - _bTd_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$65), - _bTe_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bTd_), - _bTf_=caml_call1(Runtime_ocaml_Runtime[69],_bTe_), - _bTg_=caml_call1(Runtime_ocaml_Runtime[31],cst_4909$0), - _bTh_=caml_call2(Runtime_ocaml_Runtime[104],_bTg_,_bTf_), - _bTi_=caml_call1(Runtime_ocaml_Runtime[31],cst_34252$0), - montant$1=caml_call2(Runtime_ocaml_Runtime[93],_bTi_,_bTh_), - _bTj_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$12), - _bTk_=caml_call1(Runtime_ocaml_Runtime[31],cst_4909$1), - _bTl_=caml_call2(Runtime_ocaml_Runtime[104],_bTk_,_bTj_), - _bTm_=caml_call1(Runtime_ocaml_Runtime[31],cst_34252$1), - limite$1=caml_call2(Runtime_ocaml_Runtime[93],_bTm_,_bTl_); - return caml_call2 - (Runtime_ocaml_Runtime[123],montant$1,limite$1) - ?limite$1 - :montant$1}} - function _bSH_(param) - {var - _bSI_= - caml_call2 - (Runtime_ocaml_Runtime[84],logement_est_chambre,colocation), - _bSJ_=caml_call1(Runtime_ocaml_Runtime[67],_bSI_), - _bSK_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$66), - _bSL_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_bSK_), - _bSM_=caml_call2(Runtime_ocaml_Runtime[83],_bSL_,_bSJ_); - switch(residence[0]) - {case 0:var _bSN_=1;break; - case 1:var _bSN_=0;break; - case 2:var _bSN_=1;break; - case 3:var _bSN_=1;break; - case 4:var _bSN_=1;break; - case 5:var _bSN_=1;break; - case 6:var _bSN_=0;break; - case 7:var _bSN_=0;break; - default:var _bSN_=1} - var - _bSO_=caml_call2(Runtime_ocaml_Runtime[83],_bSN_,_bSM_), - _bSP_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _bSQ_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bSP_), - _bSR_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bSS_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bSR_), - _bST_=caml_call2(Runtime_ocaml_Runtime[83],_bSS_,_bSQ_), - _bSU_=caml_call2(Runtime_ocaml_Runtime[83],_bST_,_bSO_); - return caml_call2(Runtime_ocaml_Runtime[29],_rX_,_bSU_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_rY_,[0],_bSH_,_bSG_)} - function _bRV_(param) - {function _bSg_(param) - {switch(zone[0]) - {case 0: - var - _bSo_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$67), - _bSp_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bSo_), - _bSq_=caml_call1(Runtime_ocaml_Runtime[69],_bSp_), - _bSr_=caml_call1(Runtime_ocaml_Runtime[31],cst_4576), - _bSs_=caml_call2(Runtime_ocaml_Runtime[104],_bSr_,_bSq_), - _bSt_=caml_call1(Runtime_ocaml_Runtime[31],cst_31539); - return caml_call2(Runtime_ocaml_Runtime[93],_bSt_,_bSs_); - case 1: - var - _bSu_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$68), - _bSv_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bSu_), - _bSw_=caml_call1(Runtime_ocaml_Runtime[69],_bSv_), - _bSx_=caml_call1(Runtime_ocaml_Runtime[31],cst_4043), - _bSy_=caml_call2(Runtime_ocaml_Runtime[104],_bSx_,_bSw_), - _bSz_=caml_call1(Runtime_ocaml_Runtime[31],cst_27774); - return caml_call2(Runtime_ocaml_Runtime[93],_bSz_,_bSy_); - default: - var - _bSA_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$69), - _bSB_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bSA_), - _bSC_=caml_call1(Runtime_ocaml_Runtime[69],_bSB_), - _bSD_=caml_call1(Runtime_ocaml_Runtime[31],cst_3682), - _bSE_=caml_call2(Runtime_ocaml_Runtime[104],_bSD_,_bSC_), - _bSF_=caml_call1(Runtime_ocaml_Runtime[31],cst_25689); - return caml_call2(Runtime_ocaml_Runtime[93],_bSF_,_bSE_)}} - function _bSh_(param) - {var - _bSi_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$70), - _bSj_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_bSi_), - _bSk_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bSl_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bSk_), - _bSm_=caml_call2(Runtime_ocaml_Runtime[83],_bSl_,colocation), - _bSn_=caml_call2(Runtime_ocaml_Runtime[83],_bSm_,_bSj_); - return caml_call2(Runtime_ocaml_Runtime[29],_rZ_,_bSn_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_r0_,[0],_bSh_,_bSg_)} - function _bRW_(param) - {function _bR8_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_27905); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_24683); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_22911)}} - function _bR9_(param) - {var - _bR__=caml_call1(Runtime_ocaml_Runtime[46],cst_0$109), - _bR$_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bR__), - _bSa_=0 === situation_familiale_calcul_apl[0]?0:1, - _bSb_=caml_call2(Runtime_ocaml_Runtime[83],_bSa_,_bR$_), - _bSc_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bSd_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bSc_), - _bSe_=caml_call2(Runtime_ocaml_Runtime[83],_bSd_,colocation), - _bSf_=caml_call2(Runtime_ocaml_Runtime[83],_bSe_,_bSb_); - return caml_call2(Runtime_ocaml_Runtime[29],_r1_,_bSf_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_r2_,[0],_bR9_,_bR8_)} - var - _bRX_= - [0, - function(param) - {function _bRY_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_23138$0); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_20165$0); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_18900$0)}} - function _bRZ_(param) - {var - _bR0_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$110), - _bR1_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bR0_), - _bR2_=0 === situation_familiale_calcul_apl[0]?1:0, - _bR3_=caml_call2(Runtime_ocaml_Runtime[83],_bR2_,_bR1_), - _bR4_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bR5_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bR4_), - _bR6_=caml_call2(Runtime_ocaml_Runtime[83],_bR5_,colocation), - _bR7_=caml_call2(Runtime_ocaml_Runtime[83],_bR6_,_bR3_); - return caml_call2(Runtime_ocaml_Runtime[29],_r3_,_bR7_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_r4_,[0],_bRZ_,_bRY_)}, - _bRW_, - _bRV_, - _bRU_, - _bRT_, - _bRS_, - _bRR_, - _bRQ_, - _bRP_, - _bRO_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_r5_,_bRX_,_bRN_,_bRM_)}, - _bHU_], - _bHW_=caml_call4(Runtime_ocaml_Runtime[63],_r6_,_bHV_,_bHT_,_bHS_)} - catch(_bRL_) - {_bRL_ = caml_wrap_exception(_bRL_); - if(_bRL_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_rc_]; - throw _bRL_} - var - plafond_loyer_d823_16_2= - caml_call3 - (Runtime_ocaml_Runtime[28],_r7_,Runtime_ocaml_Runtime[13],_bHW_); - try - {var - _bHX_= - function(param) - {function _bRc_(param){throw Runtime_ocaml_Runtime[2]} - function _bRd_(param){return 0} - function _bRe_(param) - {function _bRA_(param) - {var - _bRH_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bRI_=caml_call1(Runtime_ocaml_Runtime[31],cst_1224), - _bRJ_=caml_call2(Runtime_ocaml_Runtime[104],_bRI_,_bRH_), - _bRK_=caml_call1(Runtime_ocaml_Runtime[31],cst_5399); - return caml_call2(Runtime_ocaml_Runtime[93],_bRK_,_bRJ_)} - function _bRB_(param) - {var - _bRC_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bRD_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bRC_), - _bRE_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bRF_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bRE_), - _bRG_=caml_call2(Runtime_ocaml_Runtime[83],_bRF_,_bRD_); - return caml_call2(Runtime_ocaml_Runtime[29],_r9_,_bRG_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_r__,[0],_bRB_,_bRA_)} - function _bRf_(param) - {function _bRp_(param) - {var - _bRw_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bRx_=caml_call1(Runtime_ocaml_Runtime[31],cst_1229), - _bRy_=caml_call2(Runtime_ocaml_Runtime[104],_bRx_,_bRw_), - _bRz_=caml_call1(Runtime_ocaml_Runtime[31],cst_5422); - return caml_call2(Runtime_ocaml_Runtime[93],_bRz_,_bRy_)} - function _bRq_(param) - {var - _bRr_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bRs_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bRr_), - _bRt_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bRu_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bRt_), - _bRv_=caml_call2(Runtime_ocaml_Runtime[83],_bRu_,_bRs_); - return caml_call2(Runtime_ocaml_Runtime[29],_r$_,_bRv_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sa_,[0],_bRq_,_bRp_)} - var - _bRg_= - [0, - function(param) - {function _bRh_(param) - {var - _bRl_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bRm_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272), - _bRn_=caml_call2(Runtime_ocaml_Runtime[104],_bRm_,_bRl_), - _bRo_=caml_call1(Runtime_ocaml_Runtime[31],cst_5612); - return caml_call2(Runtime_ocaml_Runtime[93],_bRo_,_bRn_)} - function _bRi_(param) - {var - _bRj_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bRk_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bRj_); - return caml_call2(Runtime_ocaml_Runtime[29],_sb_,_bRk_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sc_,[0],_bRi_,_bRh_)}, - _bRf_, - _bRe_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_sd_,_bRg_,_bRd_,_bRc_)}, - _bHY_=function(param){return 1}, - _bHZ_= - [0, - function(param) - {function _bPy_(param) - {function _bQJ_(param){throw Runtime_ocaml_Runtime[2]} - function _bQK_(param){return 0} - function _bQL_(param) - {function _bQX_(param) - {var - _bQ6_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bQ7_=caml_call1(Runtime_ocaml_Runtime[31],cst_969), - _bQ8_=caml_call2(Runtime_ocaml_Runtime[104],_bQ7_,_bQ6_), - _bQ9_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767), - montant=caml_call2(Runtime_ocaml_Runtime[93],_bQ9_,_bQ8_), - _bQ__=caml_call1(Runtime_ocaml_Runtime[39],cst_6$13), - _bQ$_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$0), - _bRa_=caml_call2(Runtime_ocaml_Runtime[104],_bQ$_,_bQ__), - _bRb_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767$0), - limite=caml_call2(Runtime_ocaml_Runtime[93],_bRb_,_bRa_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _bQY_(param) - {switch(residence[0]) - {case 0:var _bQZ_=1;break; - case 1:var _bQZ_=0;break; - case 2:var _bQZ_=1;break; - case 3:var _bQZ_=1;break; - case 4:var _bQZ_=1;break; - case 5:var _bQZ_=1;break; - case 6:var _bQZ_=0;break; - case 7:var _bQZ_=0;break; - default:var _bQZ_=1} - var - _bQ0_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _bQ1_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bQ0_), - _bQ2_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bQ3_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bQ2_), - _bQ4_=caml_call2(Runtime_ocaml_Runtime[83],_bQ3_,_bQ1_), - _bQ5_=caml_call2(Runtime_ocaml_Runtime[83],_bQ4_,_bQZ_); - return caml_call2(Runtime_ocaml_Runtime[29],_se_,_bQ5_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sf_,[0],_bQY_,_bQX_)} - var - _bQM_= + _b47_ = [0, - function(param) - {function _bQN_(param) - {var - _bQT_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bQU_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$1), - _bQV_=caml_call2(Runtime_ocaml_Runtime[104],_bQU_,_bQT_), - _bQW_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767$1); - return caml_call2(Runtime_ocaml_Runtime[93],_bQW_,_bQV_)} - function _bQO_(param) - {switch(residence[0]) - {case 0:var _bQP_=1;break; - case 1:var _bQP_=0;break; - case 2:var _bQP_=1;break; - case 3:var _bQP_=1;break; - case 4:var _bQP_=1;break; - case 5:var _bQP_=1;break; - case 6:var _bQP_=0;break; - case 7:var _bQP_=0;break; - default:var _bQP_=1} - var - _bQQ_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _bQR_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bQQ_), - _bQS_=caml_call2(Runtime_ocaml_Runtime[83],_bQR_,_bQP_); - return caml_call2(Runtime_ocaml_Runtime[29],_sg_,_bQS_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sh_,[0],_bQO_,_bQN_)}, - _bQL_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_si_,_bQM_,_bQK_,_bQJ_)} - function _bPz_(param){return 1} - var - _bPA_= - [0, - function(param) - {function _bPB_(param) - {function _bP9_(param){throw Runtime_ocaml_Runtime[2]} - function _bP__(param){return 0} - function _bP$_(param) - {function _bQx_(param) - {var - _bQF_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bQG_=caml_call1(Runtime_ocaml_Runtime[31],cst_1224$0), - _bQH_=caml_call2(Runtime_ocaml_Runtime[104],_bQG_,_bQF_), - _bQI_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_2699) - :caml_call1(Runtime_ocaml_Runtime[31],cst_5399$0); - return caml_call2(Runtime_ocaml_Runtime[93],_bQI_,_bQH_)} - function _bQy_(param) - {var - _bQz_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bQA_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bQz_), - _bQB_=caml_call2(Runtime_ocaml_Runtime[83],_bQA_,colocation), - _bQC_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bQD_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bQC_), - _bQE_=caml_call2(Runtime_ocaml_Runtime[83],_bQD_,_bQB_); - return caml_call2(Runtime_ocaml_Runtime[29],_sj_,_bQE_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sk_,[0],_bQy_,_bQx_)} - function _bQa_(param) - {function _bQl_(param) - {var - _bQt_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bQu_=caml_call1(Runtime_ocaml_Runtime[31],cst_1229$0), - _bQv_=caml_call2(Runtime_ocaml_Runtime[104],_bQu_,_bQt_), - _bQw_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_2710) - :caml_call1(Runtime_ocaml_Runtime[31],cst_5422$0); - return caml_call2(Runtime_ocaml_Runtime[93],_bQw_,_bQv_)} - function _bQm_(param) - {var - _bQn_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bQo_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bQn_), - _bQp_=caml_call2(Runtime_ocaml_Runtime[83],_bQo_,colocation), - _bQq_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bQr_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bQq_), - _bQs_=caml_call2(Runtime_ocaml_Runtime[83],_bQr_,_bQp_); - return caml_call2(Runtime_ocaml_Runtime[29],_sl_,_bQs_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sm_,[0],_bQm_,_bQl_)} + function(param){ + function _b48_(param){ + var _b5y_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$23); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b5y_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0283$0) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0315$0); + var _b5z_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$6); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b5z_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_027$0); + var _b5A_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$8); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b5A_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238$0); + var _b5B_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$7); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b5B_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0201$0); + var _b5C_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$8); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b5C_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0185$0); + var _b5D_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$0); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b5D_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0179$0); + var _b5E_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$4); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b5E_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0173$1); var - _bQb_= - [0, - function(param) - {function _bQc_(param) - {var - _bQh_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bQi_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272$0), - _bQj_=caml_call2(Runtime_ocaml_Runtime[104],_bQi_,_bQh_), - _bQk_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_2805) - :caml_call1(Runtime_ocaml_Runtime[31],cst_5612$0); - return caml_call2(Runtime_ocaml_Runtime[93],_bQk_,_bQj_)} - function _bQd_(param) - {var - _bQe_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bQf_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bQe_), - _bQg_=caml_call2(Runtime_ocaml_Runtime[83],_bQf_,colocation); - return caml_call2(Runtime_ocaml_Runtime[29],_sn_,_bQg_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_so_,[0],_bQd_,_bQc_)}, - _bQa_, - _bP$_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_sp_,_bQb_,_bP__,_bP9_)} - function _bPC_(param){return 1} - var - _bPD_= - [0, - function(param) - {function _bPE_(param){throw Runtime_ocaml_Runtime[2]} - function _bPF_(param){return 0} - function _bPG_(param) - {function _bPS_(param) - {var - _bP1_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bP2_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$2), - _bP3_=caml_call2(Runtime_ocaml_Runtime[104],_bP2_,_bP1_), - _bP4_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1938) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3767$3), - montant=caml_call2(Runtime_ocaml_Runtime[93],_bP4_,_bP3_), - _bP5_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$14), - _bP6_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$3), - _bP7_=caml_call2(Runtime_ocaml_Runtime[104],_bP6_,_bP5_), - _bP8_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1938$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3767$2), - limite=caml_call2(Runtime_ocaml_Runtime[93],_bP8_,_bP7_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _bPT_(param) - {switch(residence[0]) - {case 0:var _bPU_=1;break; - case 1:var _bPU_=0;break; - case 2:var _bPU_=1;break; - case 3:var _bPU_=1;break; - case 4:var _bPU_=1;break; - case 5:var _bPU_=1;break; - case 6:var _bPU_=0;break; - case 7:var _bPU_=0;break; - default:var _bPU_=1} - var - _bPV_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _bPW_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bPV_), - _bPX_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bPY_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bPX_), - _bPZ_=caml_call2(Runtime_ocaml_Runtime[83],_bPY_,_bPW_), - _bP0_=caml_call2(Runtime_ocaml_Runtime[83],_bPZ_,_bPU_); - return caml_call2(Runtime_ocaml_Runtime[29],_sq_,_bP0_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sr_,[0],_bPT_,_bPS_)} - var - _bPH_= - [0, - function(param) - {function _bPI_(param) - {var - _bPO_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bPP_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$4), - _bPQ_=caml_call2(Runtime_ocaml_Runtime[104],_bPP_,_bPO_), - _bPR_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1938$1) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3767$4); - return caml_call2(Runtime_ocaml_Runtime[93],_bPR_,_bPQ_)} - function _bPJ_(param) - {switch(residence[0]) - {case 0:var _bPK_=1;break; - case 1:var _bPK_=0;break; - case 2:var _bPK_=1;break; - case 3:var _bPK_=1;break; - case 4:var _bPK_=1;break; - case 5:var _bPK_=1;break; - case 6:var _bPK_=0;break; - case 7:var _bPK_=0;break; - default:var _bPK_=1} - var - _bPL_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _bPM_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bPL_), - _bPN_=caml_call2(Runtime_ocaml_Runtime[83],_bPM_,_bPK_); - return caml_call2(Runtime_ocaml_Runtime[29],_ss_,_bPN_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_st_,[0],_bPJ_,_bPI_)}, - _bPG_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_su_,_bPH_,_bPF_,_bPE_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_sv_,_bPD_,_bPC_,_bPB_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_sw_,_bPA_,_bPz_,_bPy_)}], - _bH0_=caml_call4(Runtime_ocaml_Runtime[63],_sx_,_bHZ_,_bHY_,_bHX_)} - catch(_bPx_) - {_bPx_ = caml_wrap_exception(_bPx_); - if(_bPx_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_r8_]; - throw _bPx_} - var - montant_forfaitaire_charges_d8= - caml_call3 - (Runtime_ocaml_Runtime[28],_sy_,Runtime_ocaml_Runtime[13],_bH0_); - try - {var - _bH1_= - function(param) - {function _bNW_(param){throw Runtime_ocaml_Runtime[2]} - function _bNX_(param){return 0} - function _bNY_(param) - {function _bPd_(param) - {var _bPk_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$111); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bPk_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_458800) - :caml_call1(Runtime_ocaml_Runtime[31],cst_657200); - var _bPl_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$71); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bPl_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_783900); - var _bPm_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$30); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bPm_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_801500); - var _bPn_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$15); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bPn_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_832200); - var _bPo_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$12); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bPo_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_863100); - var _bPp_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$4); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bPp_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_893800); - var _bPq_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$15); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bPq_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_924600); - var - _bPr_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$16), - _bPs_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bPr_), - _bPt_=caml_call1(Runtime_ocaml_Runtime[69],_bPs_), - _bPu_=caml_call1(Runtime_ocaml_Runtime[31],cst_30500), - _bPv_=caml_call2(Runtime_ocaml_Runtime[104],_bPu_,_bPt_), - _bPw_=caml_call1(Runtime_ocaml_Runtime[31],cst_924600$0); - return caml_call2(Runtime_ocaml_Runtime[93],_bPw_,_bPv_)} - function _bPe_(param) - {var - _bPf_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _bPg_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bPf_), - _bPh_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _bPi_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bPh_), - _bPj_=caml_call2(Runtime_ocaml_Runtime[83],_bPi_,_bPg_); - return caml_call2(Runtime_ocaml_Runtime[29],_sA_,_bPj_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sB_,[0],_bPe_,_bPd_)} - function _bNZ_(param) - {function _bOV_(param) - {var _bO2_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$112); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bO2_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_468300) - :caml_call1(Runtime_ocaml_Runtime[31],cst_670900); - var _bO3_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$72); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bO3_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_800200); - var _bO4_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$31); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bO4_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_819200); - var _bO5_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$16); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bO5_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_849500); - var _bO6_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$13); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bO6_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_881100); - var _bO7_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$5); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bO7_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_912400); - var _bO8_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$17); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bO8_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_943900); - var - _bO9_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$18), - _bO__= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bO9_), - _bO$_=caml_call1(Runtime_ocaml_Runtime[69],_bO__), - _bPa_=caml_call1(Runtime_ocaml_Runtime[31],cst_31100), - _bPb_=caml_call2(Runtime_ocaml_Runtime[104],_bPa_,_bO$_), - _bPc_=caml_call1(Runtime_ocaml_Runtime[31],cst_943900$0); - return caml_call2(Runtime_ocaml_Runtime[93],_bPc_,_bPb_)} - function _bOW_(param) - {var - _bOX_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bOY_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bOX_), - _bOZ_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _bO0_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bOZ_), - _bO1_=caml_call2(Runtime_ocaml_Runtime[83],_bO0_,_bOY_); - return caml_call2(Runtime_ocaml_Runtime[29],_sC_,_bO1_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sD_,[0],_bOW_,_bOV_)} - function _bN0_(param) - {function _bOB_(param) - {var _bOI_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$113); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bOI_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_487000) - :caml_call1(Runtime_ocaml_Runtime[31],cst_697700); - var _bOJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$73); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bOJ_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_832200$0); - var _bOK_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$32); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bOK_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_850900); - var _bOL_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$17); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bOL_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_883400); - var _bOM_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$14); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bOM_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_916300); - var _bON_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$6); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bON_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_948800); - var _bOO_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$19); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bOO_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_981600); - var - _bOP_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$20), - _bOQ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bOP_), - _bOR_=caml_call1(Runtime_ocaml_Runtime[69],_bOQ_), - _bOS_=caml_call1(Runtime_ocaml_Runtime[31],cst_32300), - _bOT_=caml_call2(Runtime_ocaml_Runtime[104],_bOS_,_bOR_), - _bOU_=caml_call1(Runtime_ocaml_Runtime[31],cst_981600$0); - return caml_call2(Runtime_ocaml_Runtime[93],_bOU_,_bOT_)} - function _bOC_(param) - {var - _bOD_=caml_call3(Runtime_ocaml_Runtime[57],2022,12,31), - _bOE_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_bOD_), - _bOF_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bOG_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bOF_), - _bOH_=caml_call2(Runtime_ocaml_Runtime[83],_bOG_,_bOE_); - return caml_call2(Runtime_ocaml_Runtime[29],_sE_,_bOH_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sF_,[0],_bOC_,_bOB_)} - function _bN1_(param) - {function _bOi_(param) - {var _bOo_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$114); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bOo_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_527200) - :caml_call1(Runtime_ocaml_Runtime[31],cst_755200); - var _bOp_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$74); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bOp_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_900800); - var _bOq_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$33); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bOq_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_921100); - var _bOr_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$18); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bOr_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_956300); - var _bOs_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$15); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bOs_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_991900); - var _bOt_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$7); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bOt_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_1027100); - var _bOu_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$21); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bOu_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_1062600); - var - _bOv_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$22), - _bOw_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bOv_), - _bOx_=caml_call1(Runtime_ocaml_Runtime[69],_bOw_), - _bOy_=caml_call1(Runtime_ocaml_Runtime[31],cst_35000), - _bOz_=caml_call2(Runtime_ocaml_Runtime[104],_bOy_,_bOx_), - _bOA_=caml_call1(Runtime_ocaml_Runtime[31],cst_1062600$0); - return caml_call2(Runtime_ocaml_Runtime[93],_bOA_,_bOz_)} - function _bOj_(param) - {switch(residence[0]) - {case 0:var _bOk_=0;break; - case 1:var _bOk_=0;break; - case 2:var _bOk_=0;break; - case 3:var _bOk_=0;break; - case 4:var _bOk_=0;break; - case 5:var _bOk_=0;break; - case 6:var _bOk_=0;break; - case 7:var _bOk_=1;break; - default:var _bOk_=0} - var - _bOl_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _bOm_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bOl_), - _bOn_=caml_call2(Runtime_ocaml_Runtime[83],_bOm_,_bOk_); - return caml_call2(Runtime_ocaml_Runtime[29],_sG_,_bOn_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sH_,[0],_bOj_,_bOi_)} - var - _bN2_= - [0, - function(param) - {function _bN3_(param) - {var _bN7_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$115); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bN7_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_494900) - :caml_call1(Runtime_ocaml_Runtime[31],cst_709000); - var _bN8_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$75); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bN8_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_845600); - var _bN9_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$34); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bN9_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_864600); - var _bN__=caml_call1(Runtime_ocaml_Runtime[46],cst_3$19); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bN__)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_897700); - var _bN$_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$16); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bN$_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_931100); - var _bOa_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$8); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bOa_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_964200); - var _bOb_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$23); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bOb_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_997500); + _b5F_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$5), + _b5G_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _b5F_), + _b5H_ = caml_call1(Runtime_ocaml_Runtime[69], _b5G_), + _b5I_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0006$0), + _b5J_ = caml_call2(Runtime_ocaml_Runtime[103], _b5I_, _b5H_), + _b5K_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0173$2); + return caml_call2(Runtime_ocaml_Runtime[97], _b5K_, _b5J_); + } + function _b49_(param){ + var + _b5t_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b5u_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b5t_), + _b5v_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _b5w_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b5v_), + _b5x_ = caml_call2(Runtime_ocaml_Runtime[83], _b5w_, _b5u_); + return caml_call2(Runtime_ocaml_Runtime[29], _fk_, _b5x_); + } var - _bOc_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$24), - _bOd_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bOc_), - _bOe_=caml_call1(Runtime_ocaml_Runtime[69],_bOd_), - _bOf_=caml_call1(Runtime_ocaml_Runtime[31],cst_32800), - _bOg_=caml_call2(Runtime_ocaml_Runtime[104],_bOf_,_bOe_), - _bOh_=caml_call1(Runtime_ocaml_Runtime[31],cst_997500$0); - return caml_call2(Runtime_ocaml_Runtime[93],_bOh_,_bOg_)} - function _bN4_(param) - {var - _bN5_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _bN6_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bN5_); - return caml_call2(Runtime_ocaml_Runtime[29],_sI_,_bN6_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sJ_,[0],_bN4_,_bN3_)}, - _bN1_, - _bN0_, - _bNZ_, - _bNY_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_sK_,_bN2_,_bNX_,_bNW_)}, - _bH2_=function(param){return 1}, - _bH3_= - [0, - function(param) - {function _bMQ_(param){throw Runtime_ocaml_Runtime[2]} - function _bMR_(param){return 0} - function _bMS_(param) - {function _bNH_(param) - {var _bNQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$116); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bNQ_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_396000) - :caml_call1(Runtime_ocaml_Runtime[31],cst_567300); - var _bNR_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$76); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bNR_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_639600); - var _bNS_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$35); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bNS_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_684900); - var _bNT_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$20); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bNT_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_738600); - var _bNU_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$17); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bNU_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_793500); - var _bNV_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$9); - return caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bNV_) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_848400) - :caml_call1(Runtime_ocaml_Runtime[31],cst_903200)} - function _bNI_(param) - {switch(residence[0]) - {case 0:var _bNJ_=1;break; - case 1:var _bNJ_=0;break; - case 2:var _bNJ_=1;break; - case 3:var _bNJ_=1;break; - case 4:var _bNJ_=1;break; - case 5:var _bNJ_=1;break; - case 6:var _bNJ_=0;break; - case 7:var _bNJ_=0;break; - default:var _bNJ_=1} - var - _bNK_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), - _bNL_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bNK_), - _bNM_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _bNN_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bNM_), - _bNO_=caml_call2(Runtime_ocaml_Runtime[83],_bNN_,_bNL_), - _bNP_=caml_call2(Runtime_ocaml_Runtime[83],_bNO_,_bNJ_); - return caml_call2(Runtime_ocaml_Runtime[29],_sL_,_bNP_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sM_,[0],_bNI_,_bNH_)} - function _bMT_(param) - {function _bNs_(param) - {var _bNB_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$117); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bNB_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_427400) - :caml_call1(Runtime_ocaml_Runtime[31],cst_612200); - var _bNC_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$77); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bNC_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_699000); - var _bND_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$36); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bND_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_743200); - var _bNE_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$21); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bNE_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_785400); - var _bNF_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$18); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bNF_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_828300); - var _bNG_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$10); - return caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bNG_) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_871100) - :caml_call1(Runtime_ocaml_Runtime[31],cst_913900)} - function _bNt_(param) - {switch(residence[0]) - {case 0:var _bNu_=1;break; - case 1:var _bNu_=0;break; - case 2:var _bNu_=1;break; - case 3:var _bNu_=1;break; - case 4:var _bNu_=1;break; - case 5:var _bNu_=1;break; - case 6:var _bNu_=0;break; - case 7:var _bNu_=0;break; - default:var _bNu_=1} - var - _bNv_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _bNw_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bNv_), - _bNx_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), - _bNy_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bNx_), - _bNz_=caml_call2(Runtime_ocaml_Runtime[83],_bNy_,_bNw_), - _bNA_=caml_call2(Runtime_ocaml_Runtime[83],_bNz_,_bNu_); - return caml_call2(Runtime_ocaml_Runtime[29],_sN_,_bNA_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sO_,[0],_bNt_,_bNs_)} - function _bMU_(param) - {function _bNg_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_805100)} - function _bNh_(param) - {var - _bNi_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$78), - _bNj_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bNi_); - switch(residence[0]) - {case 0:var _bNk_=1;break; - case 1:var _bNk_=0;break; - case 2:var _bNk_=1;break; - case 3:var _bNk_=1;break; - case 4:var _bNk_=1;break; - case 5:var _bNk_=1;break; - case 6:var _bNk_=0;break; - case 7:var _bNk_=0;break; - default:var _bNk_=1} - var - _bNl_=caml_call2(Runtime_ocaml_Runtime[83],_bNk_,_bNj_), - _bNm_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _bNn_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bNm_), - _bNo_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bNp_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bNo_), - _bNq_=caml_call2(Runtime_ocaml_Runtime[83],_bNp_,_bNn_), - _bNr_=caml_call2(Runtime_ocaml_Runtime[83],_bNq_,_bNl_); - return caml_call2(Runtime_ocaml_Runtime[29],_sP_,_bNr_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sQ_,[0],_bNh_,_bNg_)} - function _bMV_(param) - {function _bM6_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_997500$1)} - function _bM7_(param) - {var - _bM8_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$25), - _bM9_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_bM8_); - switch(residence[0]) - {case 0:var _bM__=1;break; - case 1:var _bM__=0;break; - case 2:var _bM__=1;break; - case 3:var _bM__=1;break; - case 4:var _bM__=1;break; - case 5:var _bM__=1;break; - case 6:var _bM__=0;break; - case 7:var _bM__=0;break; - default:var _bM__=1} - var - _bM$_=caml_call2(Runtime_ocaml_Runtime[83],_bM__,_bM9_), - _bNa_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _bNb_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bNa_), - _bNc_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bNd_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bNc_), - _bNe_=caml_call2(Runtime_ocaml_Runtime[83],_bNd_,_bNb_), - _bNf_=caml_call2(Runtime_ocaml_Runtime[83],_bNe_,_bM$_); - return caml_call2(Runtime_ocaml_Runtime[29],_sR_,_bNf_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sS_,[0],_bM7_,_bM6_)} - var - _bMW_= - [0, - function(param) - {function _bMX_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_818100)} - function _bMY_(param) - {var - _bMZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$79), - _bM0_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bMZ_); - switch(residence[0]) - {case 0:var _bM1_=1;break; - case 1:var _bM1_=0;break; - case 2:var _bM1_=1;break; - case 3:var _bM1_=1;break; - case 4:var _bM1_=1;break; - case 5:var _bM1_=1;break; - case 6:var _bM1_=0;break; - case 7:var _bM1_=0;break; - default:var _bM1_=1} - var - _bM2_=caml_call2(Runtime_ocaml_Runtime[83],_bM1_,_bM0_), - _bM3_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _bM4_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bM3_), - _bM5_=caml_call2(Runtime_ocaml_Runtime[83],_bM4_,_bM2_); - return caml_call2(Runtime_ocaml_Runtime[29],_sT_,_bM5_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sU_,[0],_bMY_,_bMX_)}, - _bMV_, - _bMU_, - _bMT_, - _bMS_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_sV_,_bMW_,_bMR_,_bMQ_)}], - _bH4_=caml_call4(Runtime_ocaml_Runtime[63],_sW_,_bH3_,_bH2_,_bH1_)} - catch(_bMP_) - {_bMP_ = caml_wrap_exception(_bMP_); - if(_bMP_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_sz_]; - throw _bMP_} - var - abattement_forfaitaire_d823_17= - caml_call3 - (Runtime_ocaml_Runtime[28],_sX_,Runtime_ocaml_Runtime[13],_bH4_); - try - {var - _bH5_= - function(param) - {switch(zone[0]) - {case 0: - var _bMM_=caml_call1(Runtime_ocaml_Runtime[39],cst_4$19); - return caml_call2 - (Runtime_ocaml_Runtime[104],plafond_loyer_d823_16_2,_bMM_); - case 1: - var _bMN_=caml_call1(Runtime_ocaml_Runtime[39],cst_3_1); - return caml_call2 - (Runtime_ocaml_Runtime[104],plafond_loyer_d823_16_2,_bMN_); - default: - var _bMO_=caml_call1(Runtime_ocaml_Runtime[39],cst_3_1$0); - return caml_call2 - (Runtime_ocaml_Runtime[104],plafond_loyer_d823_16_2,_bMO_)}}, - _bH6_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_sZ_,1)}, - _bH7_=caml_call4(Runtime_ocaml_Runtime[63],_s0_,[0],_bH6_,_bH5_)} - catch(_bML_) - {_bML_ = caml_wrap_exception(_bML_); - if(_bML_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_sY_]; - throw _bML_} - var - plafond_suppression_d823_16= - caml_call3 - (Runtime_ocaml_Runtime[28],_s1_,Runtime_ocaml_Runtime[13],_bH7_); - try - {var - _bH8_= - function(param) - {switch(zone[0]) - {case 0: - var _bMI_=caml_call1(Runtime_ocaml_Runtime[39],cst_3_4); - return caml_call2 - (Runtime_ocaml_Runtime[104],plafond_loyer_d823_16_2,_bMI_); - case 1: - var _bMJ_=caml_call1(Runtime_ocaml_Runtime[39],cst_2_5$2); - return caml_call2 - (Runtime_ocaml_Runtime[104],plafond_loyer_d823_16_2,_bMJ_); - default: - var _bMK_=caml_call1(Runtime_ocaml_Runtime[39],cst_2_5$3); - return caml_call2 - (Runtime_ocaml_Runtime[104],plafond_loyer_d823_16_2,_bMK_)}}, - _bH9_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_s3_,1)}, - _bH__=caml_call4(Runtime_ocaml_Runtime[63],_s4_,[0],_bH9_,_bH8_)} - catch(_bMH_) - {_bMH_ = caml_wrap_exception(_bMH_); - if(_bMH_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_s2_]; - throw _bMH_} - var - plafond_degressivite_d823_16= - caml_call3 - (Runtime_ocaml_Runtime[28],_s5_,Runtime_ocaml_Runtime[13],_bH__); - try - {var - _bH$_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[123], - loyer_principal_avec_reduction, - plafond_loyer_d823_16_2) - ?plafond_loyer_d823_16_2 - :loyer_principal_avec_reduction}, - _bIa_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_s7_,1)}, - _bIb_=caml_call4(Runtime_ocaml_Runtime[63],_s8_,[0],_bIa_,_bH$_)} - catch(_bMG_) - {_bMG_ = caml_wrap_exception(_bMG_); - if(_bMG_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_s6_]; - throw _bMG_} - var - loyer_eligible= - caml_call3 - (Runtime_ocaml_Runtime[28],_s9_,Runtime_ocaml_Runtime[13],_bIb_); - function _bIc_(aide_finale) - {try - {var - _bMv_= - function(param) - {if - (caml_call2 - (Runtime_ocaml_Runtime[123], - loyer_principal_avec_reduction, - plafond_suppression_d823_16)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$118); - if - (caml_call2 - (Runtime_ocaml_Runtime[123], - loyer_principal_avec_reduction, - plafond_degressivite_d823_16)) - {var - _bMC_= - caml_call2 - (Runtime_ocaml_Runtime[98], - plafond_suppression_d823_16, - plafond_degressivite_d823_16), - _bMD_= - caml_call2 - (Runtime_ocaml_Runtime[98], - loyer_principal_avec_reduction, - plafond_degressivite_d823_16), - _bME_=caml_call2(Runtime_ocaml_Runtime[108],_bMD_,_bMC_), - _bMF_= - caml_call2(Runtime_ocaml_Runtime[104],aide_finale,_bME_); - return caml_call2(Runtime_ocaml_Runtime[98],aide_finale,_bMF_)} - return aide_finale}, - _bMw_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_s$_,1)}, - _bMx_= - [0, - function(param) - {function _bMA_(param){return aide_finale} - function _bMB_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29], - _ta_, - beneficiaire_aide_adulte_ou_en)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_tb_,[0],_bMB_,_bMA_)}], - _bMy_=caml_call4(Runtime_ocaml_Runtime[63],_tc_,_bMx_,_bMw_,_bMv_); - return _bMy_} - catch(_bMz_) - {_bMz_ = caml_wrap_exception(_bMz_); - if(_bMz_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_s__]; - throw _bMz_}} - var - traitement_aide_finale_diminue= - caml_call3 - (Runtime_ocaml_Runtime[28],_td_,Runtime_ocaml_Runtime[10],_bIc_); - try - {var - _bId_=function(param){throw Runtime_ocaml_Runtime[2]}, - _bIe_=function(param){return 0}, - _bIf_= - function(param) - {function _bMi_(param) - {var - _bMp_=caml_call1(Runtime_ocaml_Runtime[31],cst_3524), - _bMq_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_085), - _bMr_= - caml_call2 - (Runtime_ocaml_Runtime[93], - loyer_eligible, - montant_forfaitaire_charges_d8), - _bMs_=caml_call2(Runtime_ocaml_Runtime[104],_bMr_,_bMq_); - if(caml_call2(Runtime_ocaml_Runtime[128],_bMs_,_bMp_)) - {var - _bMt_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_085$0), - _bMu_= - caml_call2 - (Runtime_ocaml_Runtime[93], - loyer_eligible, - montant_forfaitaire_charges_d8); - return caml_call2(Runtime_ocaml_Runtime[104],_bMu_,_bMt_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_3524$0)} - function _bMj_(param) - {var - _bMk_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bMl_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bMk_), - _bMm_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bMn_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bMm_), - _bMo_=caml_call2(Runtime_ocaml_Runtime[83],_bMn_,_bMl_); - return caml_call2(Runtime_ocaml_Runtime[29],_tf_,_bMo_)} - return caml_call4(Runtime_ocaml_Runtime[63],_tg_,[0],_bMj_,_bMi_)}, - _bIg_= - function(param) - {function _bL7_(param) - {var - _bMc_=caml_call1(Runtime_ocaml_Runtime[31],cst_3539), - _bMd_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_085$1), - _bMe_= - caml_call2 - (Runtime_ocaml_Runtime[93], - loyer_eligible, - montant_forfaitaire_charges_d8), - _bMf_=caml_call2(Runtime_ocaml_Runtime[104],_bMe_,_bMd_); - if(caml_call2(Runtime_ocaml_Runtime[128],_bMf_,_bMc_)) - {var - _bMg_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_085$2), - _bMh_= - caml_call2 - (Runtime_ocaml_Runtime[93], - loyer_eligible, - montant_forfaitaire_charges_d8); - return caml_call2(Runtime_ocaml_Runtime[104],_bMh_,_bMg_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_3539$0)} - function _bL8_(param) - {var - _bL9_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bL__= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bL9_), - _bL$_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bMa_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bL$_), - _bMb_=caml_call2(Runtime_ocaml_Runtime[83],_bMa_,_bL__); - return caml_call2(Runtime_ocaml_Runtime[29],_th_,_bMb_)} - return caml_call4(Runtime_ocaml_Runtime[63],_ti_,[0],_bL8_,_bL7_)}, - _bIh_= - [0, - function(param) - {function _bLX_(param) - {var - _bL1_=caml_call1(Runtime_ocaml_Runtime[31],cst_3663), - _bL2_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_085$3), - _bL3_= - caml_call2 - (Runtime_ocaml_Runtime[93], - loyer_eligible, - montant_forfaitaire_charges_d8), - _bL4_=caml_call2(Runtime_ocaml_Runtime[104],_bL3_,_bL2_); - if(caml_call2(Runtime_ocaml_Runtime[128],_bL4_,_bL1_)) - {var - _bL5_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_085$4), - _bL6_= - caml_call2 - (Runtime_ocaml_Runtime[93], - loyer_eligible, - montant_forfaitaire_charges_d8); - return caml_call2(Runtime_ocaml_Runtime[104],_bL6_,_bL5_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_3663$0)} - function _bLY_(param) - {var - _bLZ_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bL0_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bLZ_); - return caml_call2(Runtime_ocaml_Runtime[29],_tj_,_bL0_)} - return caml_call4(Runtime_ocaml_Runtime[63],_tk_,[0],_bLY_,_bLX_)}, - _bIg_, - _bIf_], - _bIi_=caml_call4(Runtime_ocaml_Runtime[63],_tl_,_bIh_,_bIe_,_bId_)} - catch(_bLW_) - {_bLW_ = caml_wrap_exception(_bLW_); - if(_bLW_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_te_]; - throw _bLW_} - var - participation_minimale= - caml_call3 - (Runtime_ocaml_Runtime[28],_tm_,Runtime_ocaml_Runtime[13],_bIi_); - try - {var - _bIj_=function(param){throw Runtime_ocaml_Runtime[2]}, - _bIk_=function(param){return 0}, - _bIl_= - [0, - function(param) - {function _bLn_(param) - {var - _bLR_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$0), - _bLS_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$1), - _bLT_= - caml_call2 - (Runtime_ocaml_Runtime[108],loyer_eligible,loyer_reference), - _bLU_=caml_call2(Runtime_ocaml_Runtime[103],_bLT_,_bLS_), - _bLV_=caml_call1(Runtime_ocaml_Runtime[78],_bLU_); - return caml_call2(Runtime_ocaml_Runtime[107],_bLV_,_bLR_)} - function _bLo_(param) - {var - _bLP_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bLQ_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bLP_); - return caml_call2(Runtime_ocaml_Runtime[29],_to_,_bLQ_)} - var - _bLp_= - [0, - function(param) - {function _bLq_(param) - {var - _bLK_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$2), - _bLL_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$3), - _bLM_= - caml_call2 - (Runtime_ocaml_Runtime[108],loyer_eligible,loyer_reference), - _bLN_=caml_call2(Runtime_ocaml_Runtime[103],_bLM_,_bLL_), - _bLO_=caml_call1(Runtime_ocaml_Runtime[78],_bLN_); - return caml_call2(Runtime_ocaml_Runtime[107],_bLO_,_bLK_)} - function _bLr_(param) - {var - _bLF_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bLG_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bLF_), - _bLH_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bLI_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bLH_), - _bLJ_=caml_call2(Runtime_ocaml_Runtime[83],_bLI_,_bLG_); - return caml_call2(Runtime_ocaml_Runtime[29],_tp_,_bLJ_)} - var - _bLs_= - [0, - function(param) - {function _bLt_(param) - {var - _bLA_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$4), - _bLB_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$5), - _bLC_= - caml_call2 - (Runtime_ocaml_Runtime[108],loyer_eligible,loyer_reference), - _bLD_=caml_call2(Runtime_ocaml_Runtime[103],_bLC_,_bLB_), - _bLE_=caml_call1(Runtime_ocaml_Runtime[78],_bLD_); - return caml_call2(Runtime_ocaml_Runtime[107],_bLE_,_bLA_)} - function _bLu_(param) - {var - _bLv_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bLw_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bLv_), - _bLx_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bLy_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bLx_), - _bLz_=caml_call2(Runtime_ocaml_Runtime[83],_bLy_,_bLw_); - return caml_call2(Runtime_ocaml_Runtime[29],_tq_,_bLz_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_tr_,[0],_bLu_,_bLt_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_ts_,_bLs_,_bLr_,_bLq_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_tt_,_bLp_,_bLo_,_bLn_)}], - _bIm_=caml_call4(Runtime_ocaml_Runtime[63],_tu_,_bIl_,_bIk_,_bIj_)} - catch(_bLm_) - {_bLm_ = caml_wrap_exception(_bLm_); - if(_bLm_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_tn_]; - throw _bLm_} - var - rapport_loyers= - caml_call3 - (Runtime_ocaml_Runtime[28],_tv_,Runtime_ocaml_Runtime[15],_bIm_); - function _bIn_(aide_finale) - {try - {var - _bLd_= - function(param) - {var - _bLh_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _tx_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bLi_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _ty_, - traitement_aide_finale_diminue), - _bLh_), - _bLj_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _tz_, - Runtime_ocaml_Runtime[13], - _bLi_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_tA_,_bLj_), - _bLk_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$119), - _bLl_= - caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale$0, - montant_forfaitaire_d823_16); - return caml_call2(Runtime_ocaml_Runtime[128],_bLl_,_bLk_) - ?caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale$0, - montant_forfaitaire_d823_16) - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$120)}, - _bLe_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_tB_,1)}, - _bLf_=caml_call4(Runtime_ocaml_Runtime[63],_tC_,[0],_bLe_,_bLd_); - return _bLf_} - catch(_bLg_) - {_bLg_ = caml_wrap_exception(_bLg_); - if(_bLg_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_tw_]; - throw _bLg_}} - var - traitement_aide_finale_minorat= - caml_call3 - (Runtime_ocaml_Runtime[28],_tD_,Runtime_ocaml_Runtime[10],_bIn_); - try - {var - _bIo_=function(param){throw Runtime_ocaml_Runtime[2]}, - _bIp_=function(param){return 0}, - _bIq_= - [0, - function(param) - {function _bJ$_(param) - {var _bKZ_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_45); - if(caml_call2(Runtime_ocaml_Runtime[112],rapport_loyers,_bKZ_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$121); - var - _bK0_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75), - _bK1_= - caml_call2(Runtime_ocaml_Runtime[112],rapport_loyers,_bK0_), - _bK2_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_45$0), - _bK3_= - caml_call2(Runtime_ocaml_Runtime[127],rapport_loyers,_bK2_); - if(caml_call2(Runtime_ocaml_Runtime[83],_bK3_,_bK1_)) - {var - _bK4_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045), - _bK5_= - caml_call2(Runtime_ocaml_Runtime[97],rapport_loyers,_bK4_), - _bK6_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045$0); - return caml_call2(Runtime_ocaml_Runtime[103],_bK6_,_bK5_)} - var _bK7_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$0); - if(caml_call2(Runtime_ocaml_Runtime[127],rapport_loyers,_bK7_)) - {var - _bK8_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$1), - _bK9_= - caml_call2(Runtime_ocaml_Runtime[97],rapport_loyers,_bK8_), - _bK__=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0068), - _bK$_=caml_call2(Runtime_ocaml_Runtime[103],_bK__,_bK9_), - _bLa_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_3), - _bLb_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045$1), - _bLc_=caml_call2(Runtime_ocaml_Runtime[103],_bLb_,_bLa_); - return caml_call2(Runtime_ocaml_Runtime[92],_bLc_,_bK$_)} - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$122)} - function _bKa_(param) - {var - _bKX_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bKY_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bKX_); - return caml_call2(Runtime_ocaml_Runtime[29],_tF_,_bKY_)} - var - _bKb_= - [0, - function(param) - {function _bKc_(param) - {var _bKH_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_45$1); - if - (caml_call2(Runtime_ocaml_Runtime[112],rapport_loyers,_bKH_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$123); - var - _bKI_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$2), - _bKJ_= - caml_call2(Runtime_ocaml_Runtime[112],rapport_loyers,_bKI_), - _bKK_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_45$2), - _bKL_= - caml_call2(Runtime_ocaml_Runtime[127],rapport_loyers,_bKK_); - if(caml_call2(Runtime_ocaml_Runtime[83],_bKL_,_bKJ_)) - {var - _bKM_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045$2), - _bKN_= - caml_call2(Runtime_ocaml_Runtime[97],rapport_loyers,_bKM_), - _bKO_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045$3); - return caml_call2(Runtime_ocaml_Runtime[103],_bKO_,_bKN_)} - var _bKP_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$3); - if - (caml_call2(Runtime_ocaml_Runtime[127],rapport_loyers,_bKP_)) - {var - _bKQ_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$4), - _bKR_= - caml_call2(Runtime_ocaml_Runtime[97],rapport_loyers,_bKQ_), - _bKS_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0068$0), - _bKT_=caml_call2(Runtime_ocaml_Runtime[103],_bKS_,_bKR_), - _bKU_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_3$0), - _bKV_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045$4), - _bKW_=caml_call2(Runtime_ocaml_Runtime[103],_bKV_,_bKU_); - return caml_call2(Runtime_ocaml_Runtime[92],_bKW_,_bKT_)} - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$124)} - function _bKd_(param) - {var - _bKC_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bKD_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bKC_), - _bKE_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bKF_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bKE_), - _bKG_=caml_call2(Runtime_ocaml_Runtime[83],_bKF_,_bKD_); - return caml_call2(Runtime_ocaml_Runtime[29],_tG_,_bKG_)} - var - _bKe_= - [0, - function(param) - {function _bKf_(param) - {var _bKm_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_45$3); + _b4__ = + [0, + function(param){ + function _b4$_(param){ + var _b5g_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$24); if - (caml_call2(Runtime_ocaml_Runtime[112],rapport_loyers,_bKm_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$125); + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b5g_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0283$1) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0315$1); + var _b5h_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$7); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b5h_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_027$1); + var _b5i_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$9); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b5i_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238$1); + var _b5j_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$8); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b5j_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0201$1); + var _b5k_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$9); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b5k_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0185$1); + var _b5l_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$1); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b5l_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0179$1); + var _b5m_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$6); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b5m_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0173$3); var - _bKn_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$5), - _bKo_= - caml_call2(Runtime_ocaml_Runtime[112],rapport_loyers,_bKn_), - _bKp_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_45$4), - _bKq_= - caml_call2(Runtime_ocaml_Runtime[127],rapport_loyers,_bKp_); - if(caml_call2(Runtime_ocaml_Runtime[83],_bKq_,_bKo_)) - {var - _bKr_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045$5), - _bKs_= - caml_call2(Runtime_ocaml_Runtime[97],rapport_loyers,_bKr_), - _bKt_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045$6); - return caml_call2(Runtime_ocaml_Runtime[103],_bKt_,_bKs_)} - var _bKu_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$6); - if - (caml_call2(Runtime_ocaml_Runtime[127],rapport_loyers,_bKu_)) - {var - _bKv_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$7), - _bKw_= - caml_call2(Runtime_ocaml_Runtime[97],rapport_loyers,_bKv_), - _bKx_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0068$1), - _bKy_=caml_call2(Runtime_ocaml_Runtime[103],_bKx_,_bKw_), - _bKz_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_3$1), - _bKA_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045$7), - _bKB_=caml_call2(Runtime_ocaml_Runtime[103],_bKA_,_bKz_); - return caml_call2(Runtime_ocaml_Runtime[92],_bKB_,_bKy_)} - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$126)} - function _bKg_(param) - {var - _bKh_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bKi_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bKh_), - _bKj_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bKk_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bKj_), - _bKl_=caml_call2(Runtime_ocaml_Runtime[83],_bKk_,_bKi_); - return caml_call2(Runtime_ocaml_Runtime[29],_tH_,_bKl_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_tI_,[0],_bKg_,_bKf_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_tJ_,_bKe_,_bKd_,_bKc_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_tK_,_bKb_,_bKa_,_bJ$_)}], - _bIr_=caml_call4(Runtime_ocaml_Runtime[63],_tL_,_bIq_,_bIp_,_bIo_)} - catch(_bJ__) - {_bJ__ = caml_wrap_exception(_bJ__); - if(_bJ__ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_tE_]; - throw _bJ__} - var - taux_loyer_eligible_formule= - caml_call3 - (Runtime_ocaml_Runtime[28],_tM_,Runtime_ocaml_Runtime[15],_bIr_); - function _bIs_(aide_finale) - {try - {var - _bJV_= - function(param) - {var - _bJZ_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _tO_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bJ0_= - caml_call1 + _b5n_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$7), + _b5o_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _b5n_), + _b5p_ = caml_call1(Runtime_ocaml_Runtime[69], _b5o_), + _b5q_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0006$1), + _b5r_ = caml_call2(Runtime_ocaml_Runtime[103], _b5q_, _b5p_), + _b5s_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0173$4); + return caml_call2(Runtime_ocaml_Runtime[97], _b5s_, _b5r_); + } + function _b5a_(param){ + var + _b5b_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _b5c_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b5b_), + _b5d_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _b5e_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b5d_), + _b5f_ = caml_call2(Runtime_ocaml_Runtime[83], _b5e_, _b5c_); + return caml_call2(Runtime_ocaml_Runtime[29], _fl_, _b5f_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fm_, [0], _b5a_, _b4$_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fn_, _b4__, _b49_, _b48_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fo_, _b47_, _b46_, _b45_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fp_, _b44_, _b43_, _b42_); + }, + _bE3_ = function(param){return 1;}, + _bE4_ = + [0, + function(param){ + function _b3p_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _b3q_(param){return 0;} + function _b3r_(param){ + function _b3N_(param){ + var _b4W_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$25); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _b4W_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0281) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0299); + var _b4X_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$8); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _b4X_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238$2); + var _b4Y_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$10); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _b4Y_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0217); + var _b4Z_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$9); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _b4Z_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0194); + var _b40_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$10); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _b40_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_018); + var _b41_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$2); + return caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b41_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0169) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0162); + } + function _b3O_(param){ + switch(residence[0]){ + case 0: + var _b4P_ = 1; break; + case 1: + var _b4P_ = 0; break; + case 2: + var _b4P_ = 1; break; + case 3: + var _b4P_ = 1; break; + case 4: + var _b4P_ = 1; break; + case 5: + var _b4P_ = 1; break; + case 6: + var _b4P_ = 0; break; + case 7: + var _b4P_ = 0; break; + default: var _b4P_ = 1; + } + var + _b4Q_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _b4R_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b4Q_), + _b4S_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b4T_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b4S_), + _b4U_ = caml_call2(Runtime_ocaml_Runtime[83], _b4T_, _b4R_), + _b4V_ = caml_call2(Runtime_ocaml_Runtime[83], _b4U_, _b4P_); + return caml_call2(Runtime_ocaml_Runtime[29], _fq_, _b4V_); + } + var + _b3P_ = + [0, + function(param){ + function _b3Q_(param){ + var _b4J_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$26); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4J_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0281$0) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0299$0); + var _b4K_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$9); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4K_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238$3); + var _b4L_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$11); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4L_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0217$0); + var _b4M_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$10); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4M_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0194$0); + var _b4N_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$11); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4N_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_018$0); + var _b4O_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$3); + return caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4O_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0169$0) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0162$0); + } + function _b3R_(param){ + switch(residence[0]){ + case 0: + var _b4C_ = 1; break; + case 1: + var _b4C_ = 0; break; + case 2: + var _b4C_ = 1; break; + case 3: + var _b4C_ = 1; break; + case 4: + var _b4C_ = 1; break; + case 5: + var _b4C_ = 1; break; + case 6: + var _b4C_ = 0; break; + case 7: + var _b4C_ = 0; break; + default: var _b4C_ = 1; + } + var + _b4D_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b4E_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b4D_), + _b4F_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _b4G_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b4F_), + _b4H_ = caml_call2(Runtime_ocaml_Runtime[83], _b4G_, _b4E_), + _b4I_ = caml_call2(Runtime_ocaml_Runtime[83], _b4H_, _b4C_); + return caml_call2(Runtime_ocaml_Runtime[29], _fr_, _b4I_); + } + var + _b3S_ = + [0, + function(param){ + function _b3T_(param){ + var _b4w_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$27); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4w_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0281$1) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0299$1); + var _b4x_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$10); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4x_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238$4); + var _b4y_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$12); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4y_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0217$1); + var _b4z_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$11); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4z_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0194$1); + var _b4A_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$12); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4A_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_018$1); + var _b4B_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$4); + return caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4B_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0169$1) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0162$1); + } + function _b3U_(param){ + switch(residence[0]){ + case 0: + var _b4p_ = 1; break; + case 1: + var _b4p_ = 0; break; + case 2: + var _b4p_ = 1; break; + case 3: + var _b4p_ = 1; break; + case 4: + var _b4p_ = 1; break; + case 5: + var _b4p_ = 1; break; + case 6: + var _b4p_ = 0; break; + case 7: + var _b4p_ = 0; break; + default: var _b4p_ = 1; + } + var + _b4q_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _b4r_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b4q_), + _b4s_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _b4t_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b4s_), + _b4u_ = caml_call2(Runtime_ocaml_Runtime[83], _b4t_, _b4r_), + _b4v_ = caml_call2(Runtime_ocaml_Runtime[83], _b4u_, _b4p_); + return caml_call2(Runtime_ocaml_Runtime[29], _fs_, _b4v_); + } + var + _b3V_ = + [0, + function(param){ + function _b3W_(param){ + var _b4j_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$28); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4j_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0281$2) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0299$2); + var _b4k_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$11); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4k_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238$5); + var _b4l_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$13); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4l_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0217$2); + var _b4m_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$12); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4m_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0194$2); + var _b4n_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$13); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4n_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_018$2); + var _b4o_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$5); + return caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4o_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0169$2) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0162$2); + } + function _b3X_(param){ + switch(residence[0]){ + case 0: + var _b4c_ = 1; break; + case 1: + var _b4c_ = 0; break; + case 2: + var _b4c_ = 1; break; + case 3: + var _b4c_ = 1; break; + case 4: + var _b4c_ = 1; break; + case 5: + var _b4c_ = 1; break; + case 6: + var _b4c_ = 0; break; + case 7: + var _b4c_ = 0; break; + default: var _b4c_ = 1; + } + var + _b4d_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _b4e_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b4d_), + _b4f_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _b4g_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b4f_), + _b4h_ = caml_call2(Runtime_ocaml_Runtime[83], _b4g_, _b4e_), + _b4i_ = caml_call2(Runtime_ocaml_Runtime[83], _b4h_, _b4c_); + return caml_call2(Runtime_ocaml_Runtime[29], _ft_, _b4i_); + } + var + _b3Y_ = + [0, + function(param){ + function _b3Z_(param){ + var _b38_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$29); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b38_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0281$3) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0299$3); + var _b39_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$12); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b39_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238$6); + var _b3__ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$14); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3__)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0217$3); + var _b3$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$13); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3$_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0194$3); + var _b4a_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$14); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4a_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_018$3); + var _b4b_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$6); + return caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4b_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0169$3) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0162$3); + } + function _b30_(param){ + switch(residence[0]){ + case 0: + var _b31_ = 1; break; + case 1: + var _b31_ = 0; break; + case 2: + var _b31_ = 1; break; + case 3: + var _b31_ = 1; break; + case 4: + var _b31_ = 1; break; + case 5: + var _b31_ = 1; break; + case 6: + var _b31_ = 0; break; + case 7: + var _b31_ = 0; break; + default: var _b31_ = 1; + } + var + _b32_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _b33_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b32_), + _b34_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _b35_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b34_), + _b36_ = caml_call2(Runtime_ocaml_Runtime[83], _b35_, _b33_), + _b37_ = caml_call2(Runtime_ocaml_Runtime[83], _b36_, _b31_); + return caml_call2(Runtime_ocaml_Runtime[29], _fu_, _b37_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fv_, [0], _b30_, _b3Z_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fw_, _b3Y_, _b3X_, _b3W_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fx_, _b3V_, _b3U_, _b3T_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fy_, _b3S_, _b3R_, _b3Q_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fz_, _b3P_, _b3O_, _b3N_); + } + var + _b3s_ = + [0, + function(param){ + function _b3t_(param){ + var _b3z_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$30); + if (caml_call2 - (Runtime_ocaml_Runtime[26], - _tP_, - traitement_aide_finale_minorat), - _bJZ_), - _bJ1_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _tQ_, - Runtime_ocaml_Runtime[13], - _bJ0_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_tR_,_bJ1_), - _bJ2_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _tS_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _bJ3_= - caml_call1 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3z_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0281$4) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0299$4); + var _b3A_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$13); + if (caml_call2 - (Runtime_ocaml_Runtime[26], - _tT_, - contributions_sociales_dot_mon), - _bJ2_), - _bJ4_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _tU_, - Runtime_ocaml_Runtime[13], - _bJ3_), - crds=caml_call2(Runtime_ocaml_Runtime[27],_tV_,_bJ4_), - _bJ5_=caml_call1(Runtime_ocaml_Runtime[31],cst_50), - _bJ6_=caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,crds), - _bJ7_=caml_call2(Runtime_ocaml_Runtime[98],_bJ6_,_bJ5_), - aide_finale_moins_crds_arrondi= - caml_call1(Runtime_ocaml_Runtime[77],_bJ7_), - _bJ8_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$127), - _bJ9_= - caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds); - return caml_call2(Runtime_ocaml_Runtime[128],_bJ9_,_bJ8_) - ?caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds) - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$128)}, - _bJW_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_tW_,1)}, - _bJX_=caml_call4(Runtime_ocaml_Runtime[63],_tX_,[0],_bJW_,_bJV_); - return _bJX_} - catch(_bJY_) - {_bJY_ = caml_wrap_exception(_bJY_); - if(_bJY_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_tN_]; - throw _bJY_}} - var - traitement_aide_finale_contrib= - caml_call3 - (Runtime_ocaml_Runtime[28],_tY_,Runtime_ocaml_Runtime[10],_bIs_); - try - {var - _bIt_=function(param){throw Runtime_ocaml_Runtime[2]}, - _bIu_=function(param){return 0}, - _bIv_= - [0, - function(param) - {function _bJp_(param) - {var - _bJR_=caml_call1(Runtime_ocaml_Runtime[39],cst_100000), - _bJS_=caml_call1(Runtime_ocaml_Runtime[39],cst_100000$0), - _bJT_= - caml_call2 - (Runtime_ocaml_Runtime[103], - taux_loyer_eligible_formule, - _bJS_), - _bJU_=caml_call1(Runtime_ocaml_Runtime[78],_bJT_); - return caml_call2(Runtime_ocaml_Runtime[107],_bJU_,_bJR_)} - function _bJq_(param) - {var - _bJP_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bJQ_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bJP_); - return caml_call2(Runtime_ocaml_Runtime[29],_t0_,_bJQ_)} - var - _bJr_= - [0, - function(param) - {function _bJs_(param) - {var - _bJL_=caml_call1(Runtime_ocaml_Runtime[39],cst_100000$1), - _bJM_=caml_call1(Runtime_ocaml_Runtime[39],cst_100000$2), - _bJN_= - caml_call2 - (Runtime_ocaml_Runtime[103], - taux_loyer_eligible_formule, - _bJM_), - _bJO_=caml_call1(Runtime_ocaml_Runtime[78],_bJN_); - return caml_call2(Runtime_ocaml_Runtime[107],_bJO_,_bJL_)} - function _bJt_(param) - {var - _bJG_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bJH_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bJG_), - _bJI_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bJJ_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bJI_), - _bJK_=caml_call2(Runtime_ocaml_Runtime[83],_bJJ_,_bJH_); - return caml_call2(Runtime_ocaml_Runtime[29],_t1_,_bJK_)} - var - _bJu_= - [0, - function(param) - {function _bJv_(param) - {var - _bJC_=caml_call1(Runtime_ocaml_Runtime[39],cst_100000$3), - _bJD_=caml_call1(Runtime_ocaml_Runtime[39],cst_100000$4), - _bJE_= - caml_call2 - (Runtime_ocaml_Runtime[103], - taux_loyer_eligible_formule, - _bJD_), - _bJF_=caml_call1(Runtime_ocaml_Runtime[78],_bJE_); - return caml_call2(Runtime_ocaml_Runtime[107],_bJF_,_bJC_)} - function _bJw_(param) - {var - _bJx_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bJy_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bJx_), - _bJz_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bJA_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bJz_), - _bJB_=caml_call2(Runtime_ocaml_Runtime[83],_bJA_,_bJy_); - return caml_call2(Runtime_ocaml_Runtime[29],_t2_,_bJB_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_t3_,[0],_bJw_,_bJv_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_t4_,_bJu_,_bJt_,_bJs_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_t5_,_bJr_,_bJq_,_bJp_)}], - _bIw_=caml_call4(Runtime_ocaml_Runtime[63],_t6_,_bIv_,_bIu_,_bIt_)} - catch(_bJo_) - {_bJo_ = caml_wrap_exception(_bJo_); - if(_bJo_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_tZ_]; - throw _bJo_} - var - taux_loyer_eligible_taux_arron= - caml_call3 - (Runtime_ocaml_Runtime[28],_t7_,Runtime_ocaml_Runtime[15],_bIw_); - function _bIx_(aide_finale) - {try - {var - _bJd_= - function(param) - {var - _bJh_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _t9_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bJi_= - caml_call1 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3A_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238$7); + var _b3B_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$15); + if (caml_call2 - (Runtime_ocaml_Runtime[26], - _t__, - traitement_aide_finale_contrib), - _bJh_), - _bJj_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _t$_, - Runtime_ocaml_Runtime[13], - _bJi_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_ua_,_bJj_), - _bJk_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$129), - _bJl_= - caml_call2 - (Runtime_ocaml_Runtime[104], - reduction_loyer_solidarite, - fraction_l832_3), - _bJm_=caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,_bJl_); - if(caml_call2(Runtime_ocaml_Runtime[128],_bJm_,_bJk_)) - {var - _bJn_= + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3B_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0217$4); + var _b3C_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$14); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3C_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0194$4); + var _b3D_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$15); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3D_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_018$4); + var _b3E_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$7); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3E_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0169$4); + var _b3F_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$8); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3F_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0162$4); + var _b3G_ = caml_call1(Runtime_ocaml_Runtime[46], cst_7); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3G_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0167); + var + _b3H_ = caml_call1(Runtime_ocaml_Runtime[46], cst_7$0), + _b3I_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _b3H_), + _b3J_ = caml_call1(Runtime_ocaml_Runtime[69], _b3I_), + _b3K_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0006$2), + _b3L_ = caml_call2(Runtime_ocaml_Runtime[103], _b3K_, _b3J_), + _b3M_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0167$0); + return caml_call2(Runtime_ocaml_Runtime[97], _b3M_, _b3L_); + } + function _b3u_(param){ + switch(residence[0]){ + case 0: + var _b3v_ = 1; break; + case 1: + var _b3v_ = 0; break; + case 2: + var _b3v_ = 1; break; + case 3: + var _b3v_ = 1; break; + case 4: + var _b3v_ = 1; break; + case 5: + var _b3v_ = 1; break; + case 6: + var _b3v_ = 0; break; + case 7: + var _b3v_ = 0; break; + default: var _b3v_ = 1; + } + var + _b3w_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _b3x_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b3w_), + _b3y_ = caml_call2(Runtime_ocaml_Runtime[83], _b3x_, _b3v_); + return caml_call2(Runtime_ocaml_Runtime[29], _fA_, _b3y_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fB_, [0], _b3u_, _b3t_); + }, + _b3r_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fC_, _b3s_, _b3q_, _b3p_); + }], + _bE5_ = caml_call4(Runtime_ocaml_Runtime[63], _fD_, _bE4_, _bE3_, _bE2_); + } + catch(_b3o_){ + var _bE1_ = caml_wrap_exception(_b3o_); + if(_bE1_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _fi_], 1); + throw caml_maybe_attach_backtrace(_bE1_, 0); + } + var + taux_composition_familiale = + caml_call3 + (Runtime_ocaml_Runtime[28], _fE_, Runtime_ocaml_Runtime[15], _bE5_); + try{ + var + _bE7_ = + function(param){ + function _b2N_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _b2O_(param){return 0;} + var + _b2P_ = + [0, + function(param){ + function _b2Q_(param){ + var + _b3m_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$9), + _b3n_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _b3m_); + return caml_call1(Runtime_ocaml_Runtime[69], _b3n_); + } + function _b2R_(param){ + var + _b3k_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _b3l_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b3k_); + return caml_call2(Runtime_ocaml_Runtime[29], _fG_, _b3l_); + } + var + _b2S_ = + [0, + function(param){ + function _b2T_(param){ + var + _b3i_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$10), + _b3j_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _b3i_); + return caml_call1(Runtime_ocaml_Runtime[69], _b3j_); + } + function _b2U_(param){ + var + _b3d_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 12, 31), + _b3e_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b3d_), + _b3f_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b3g_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b3f_), + _b3h_ = caml_call2(Runtime_ocaml_Runtime[83], _b3g_, _b3e_); + return caml_call2(Runtime_ocaml_Runtime[29], _fH_, _b3h_); + } + var + _b2V_ = + [0, + function(param){ + function _b2W_(param){ + var + _b3b_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$11), + _b3c_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _b3b_); + return caml_call1(Runtime_ocaml_Runtime[69], _b3c_); + } + function _b2X_(param){ + var + _b28_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b29_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b28_), + _b2__ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _b2$_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b2__), + _b3a_ = caml_call2(Runtime_ocaml_Runtime[83], _b2$_, _b29_); + return caml_call2(Runtime_ocaml_Runtime[29], _fI_, _b3a_); + } + var + _b2Y_ = + [0, + function(param){ + function _b2Z_(param){ + var + _b26_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$12), + _b27_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _b26_); + return caml_call1(Runtime_ocaml_Runtime[69], _b27_); + } + function _b20_(param){ + var + _b21_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _b22_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b21_), + _b23_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _b24_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b23_), + _b25_ = caml_call2(Runtime_ocaml_Runtime[83], _b24_, _b22_); + return caml_call2(Runtime_ocaml_Runtime[29], _fJ_, _b25_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fK_, [0], _b20_, _b2Z_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fL_, _b2Y_, _b2X_, _b2W_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fM_, _b2V_, _b2U_, _b2T_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fN_, _b2S_, _b2R_, _b2Q_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fO_, _b2P_, _b2O_, _b2N_); + }, + _bE8_ = function(param){return 1;}, + _bE9_ = + [0, + function(param){ + function _b1K_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _b1L_(param){return 0;} + var + _b1M_ = + [0, + function(param){ + function _b1N_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$31); + } + function _b1O_(param){ + var + _b2D_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$13), + _b2E_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _b2D_); + switch(residence[0]){ + case 0: + var _b2F_ = 1; break; + case 1: + var _b2F_ = 0; break; + case 2: + var _b2F_ = 1; break; + case 3: + var _b2F_ = 1; break; + case 4: + var _b2F_ = 1; break; + case 5: + var _b2F_ = 1; break; + case 6: + var _b2F_ = 0; break; + case 7: + var _b2F_ = 0; break; + default: var _b2F_ = 1; + } + var + _b2G_ = caml_call2(Runtime_ocaml_Runtime[83], _b2F_, _b2E_), + _b2H_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _b2I_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b2H_), + _b2J_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b2K_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b2J_), + _b2L_ = caml_call2(Runtime_ocaml_Runtime[83], _b2K_, _b2I_), + _b2M_ = caml_call2(Runtime_ocaml_Runtime[83], _b2L_, _b2G_); + return caml_call2(Runtime_ocaml_Runtime[29], _fP_, _b2M_); + } + var + _b1P_ = + [0, + function(param){ + function _b1Q_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$32); + } + function _b1R_(param){ + var + _b2t_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$14), + _b2u_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _b2t_); + switch(residence[0]){ + case 0: + var _b2v_ = 1; break; + case 1: + var _b2v_ = 0; break; + case 2: + var _b2v_ = 1; break; + case 3: + var _b2v_ = 1; break; + case 4: + var _b2v_ = 1; break; + case 5: + var _b2v_ = 1; break; + case 6: + var _b2v_ = 0; break; + case 7: + var _b2v_ = 0; break; + default: var _b2v_ = 1; + } + var + _b2w_ = caml_call2(Runtime_ocaml_Runtime[83], _b2v_, _b2u_), + _b2x_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b2y_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b2x_), + _b2z_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _b2A_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b2z_), + _b2B_ = caml_call2(Runtime_ocaml_Runtime[83], _b2A_, _b2y_), + _b2C_ = caml_call2(Runtime_ocaml_Runtime[83], _b2B_, _b2w_); + return caml_call2(Runtime_ocaml_Runtime[29], _fQ_, _b2C_); + } + var + _b1S_ = + [0, + function(param){ + function _b1T_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$33); + } + function _b1U_(param){ + var + _b2j_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$15), + _b2k_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _b2j_); + switch(residence[0]){ + case 0: + var _b2l_ = 1; break; + case 1: + var _b2l_ = 0; break; + case 2: + var _b2l_ = 1; break; + case 3: + var _b2l_ = 1; break; + case 4: + var _b2l_ = 1; break; + case 5: + var _b2l_ = 1; break; + case 6: + var _b2l_ = 0; break; + case 7: + var _b2l_ = 0; break; + default: var _b2l_ = 1; + } + var + _b2m_ = caml_call2(Runtime_ocaml_Runtime[83], _b2l_, _b2k_), + _b2n_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _b2o_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b2n_), + _b2p_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _b2q_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b2p_), + _b2r_ = caml_call2(Runtime_ocaml_Runtime[83], _b2q_, _b2o_), + _b2s_ = caml_call2(Runtime_ocaml_Runtime[83], _b2r_, _b2m_); + return caml_call2(Runtime_ocaml_Runtime[29], _fR_, _b2s_); + } + var + _b1V_ = + [0, + function(param){ + function _b1W_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$34); + } + function _b1X_(param){ + var + _b1$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$16), + _b2a_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _b1$_); + switch(residence[0]){ + case 0: + var _b2b_ = 1; break; + case 1: + var _b2b_ = 0; break; + case 2: + var _b2b_ = 1; break; + case 3: + var _b2b_ = 1; break; + case 4: + var _b2b_ = 1; break; + case 5: + var _b2b_ = 1; break; + case 6: + var _b2b_ = 0; break; + case 7: + var _b2b_ = 0; break; + default: var _b2b_ = 1; + } + var + _b2c_ = caml_call2(Runtime_ocaml_Runtime[83], _b2b_, _b2a_), + _b2d_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _b2e_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b2d_), + _b2f_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _b2g_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b2f_), + _b2h_ = caml_call2(Runtime_ocaml_Runtime[83], _b2g_, _b2e_), + _b2i_ = caml_call2(Runtime_ocaml_Runtime[83], _b2h_, _b2c_); + return caml_call2(Runtime_ocaml_Runtime[29], _fS_, _b2i_); + } + var + _b1Y_ = + [0, + function(param){ + function _b1Z_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$35); + } + function _b10_(param){ + var + _b11_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$17), + _b12_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _b11_); + switch(residence[0]){ + case 0: + var _b13_ = 1; break; + case 1: + var _b13_ = 0; break; + case 2: + var _b13_ = 1; break; + case 3: + var _b13_ = 1; break; + case 4: + var _b13_ = 1; break; + case 5: + var _b13_ = 1; break; + case 6: + var _b13_ = 0; break; + case 7: + var _b13_ = 0; break; + default: var _b13_ = 1; + } + var + _b14_ = caml_call2(Runtime_ocaml_Runtime[83], _b13_, _b12_), + _b15_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _b16_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b15_), + _b17_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _b18_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b17_), + _b19_ = caml_call2(Runtime_ocaml_Runtime[83], _b18_, _b16_), + _b1__ = caml_call2(Runtime_ocaml_Runtime[83], _b19_, _b14_); + return caml_call2(Runtime_ocaml_Runtime[29], _fT_, _b1__); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fU_, [0], _b10_, _b1Z_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fV_, _b1Y_, _b1X_, _b1W_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fW_, _b1V_, _b1U_, _b1T_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fX_, _b1S_, _b1R_, _b1Q_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fY_, _b1P_, _b1O_, _b1N_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fZ_, _b1M_, _b1L_, _b1K_); + }], + _bE__ = caml_call4(Runtime_ocaml_Runtime[63], _f0_, _bE9_, _bE8_, _bE7_); + } + catch(_b1J_){ + var _bE6_ = caml_wrap_exception(_b1J_); + if(_bE6_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _fF_], 1); + throw caml_maybe_attach_backtrace(_bE6_, 0); + } + var + multiplicateur_majoration_r0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _f1_, Runtime_ocaml_Runtime[15], _bE__); + try{ + var + _bFa_ = + function(param){ + function _b1g_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _b1h_(param){return 0;} + var + _b1i_ = + [0, + function(param){ + function _b1j_(param){ + var + _b1H_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$14), + _b1I_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _b1H_); + return caml_call1(Runtime_ocaml_Runtime[69], _b1I_); + } + function _b1k_(param){ + var + _b1F_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b1G_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b1F_); + return caml_call2(Runtime_ocaml_Runtime[29], _f3_, _b1G_); + } + var + _b1l_ = + [0, + function(param){ + function _b1m_(param){ + var + _b1D_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$15), + _b1E_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _b1D_); + return caml_call1(Runtime_ocaml_Runtime[69], _b1E_); + } + function _b1n_(param){ + var + _b1y_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b1z_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b1y_), + _b1A_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _b1B_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b1A_), + _b1C_ = caml_call2(Runtime_ocaml_Runtime[83], _b1B_, _b1z_); + return caml_call2(Runtime_ocaml_Runtime[29], _f4_, _b1C_); + } + var + _b1o_ = + [0, + function(param){ + function _b1p_(param){ + var + _b1w_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$16), + _b1x_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _b1w_); + return caml_call1(Runtime_ocaml_Runtime[69], _b1x_); + } + function _b1q_(param){ + var + _b1r_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _b1s_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b1r_), + _b1t_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _b1u_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b1t_), + _b1v_ = caml_call2(Runtime_ocaml_Runtime[83], _b1u_, _b1s_); + return caml_call2(Runtime_ocaml_Runtime[29], _f5_, _b1v_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _f6_, [0], _b1q_, _b1p_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _f7_, _b1o_, _b1n_, _b1m_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _f8_, _b1l_, _b1k_, _b1j_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _f9_, _b1i_, _b1h_, _b1g_); + }, + _bFb_ = function(param){return 1;}, + _bFc_ = + [0, + function(param){ + function _b0d_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _b0e_(param){return 0;} + var + _b0f_ = + [0, + function(param){ + function _b0g_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_5$8); + } + function _b0h_(param){ + var + _b08_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$18), + _b09_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _b08_); + switch(residence[0]){ + case 0: + var _b0__ = 1; break; + case 1: + var _b0__ = 0; break; + case 2: + var _b0__ = 1; break; + case 3: + var _b0__ = 1; break; + case 4: + var _b0__ = 1; break; + case 5: + var _b0__ = 1; break; + case 6: + var _b0__ = 0; break; + case 7: + var _b0__ = 0; break; + default: var _b0__ = 1; + } + var + _b0$_ = caml_call2(Runtime_ocaml_Runtime[83], _b0__, _b09_), + _b1a_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _b1b_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b1a_), + _b1c_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b1d_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b1c_), + _b1e_ = caml_call2(Runtime_ocaml_Runtime[83], _b1d_, _b1b_), + _b1f_ = caml_call2(Runtime_ocaml_Runtime[83], _b1e_, _b0$_); + return caml_call2(Runtime_ocaml_Runtime[29], _f__, _b1f_); + } + var + _b0i_ = + [0, + function(param){ + function _b0j_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_5$9); + } + function _b0k_(param){ + var + _b0Y_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$19), + _b0Z_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _b0Y_); + switch(residence[0]){ + case 0: + var _b00_ = 1; break; + case 1: + var _b00_ = 0; break; + case 2: + var _b00_ = 1; break; + case 3: + var _b00_ = 1; break; + case 4: + var _b00_ = 1; break; + case 5: + var _b00_ = 1; break; + case 6: + var _b00_ = 0; break; + case 7: + var _b00_ = 0; break; + default: var _b00_ = 1; + } + var + _b01_ = caml_call2(Runtime_ocaml_Runtime[83], _b00_, _b0Z_), + _b02_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b03_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b02_), + _b04_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _b05_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b04_), + _b06_ = caml_call2(Runtime_ocaml_Runtime[83], _b05_, _b03_), + _b07_ = caml_call2(Runtime_ocaml_Runtime[83], _b06_, _b01_); + return caml_call2(Runtime_ocaml_Runtime[29], _f$_, _b07_); + } + var + _b0l_ = + [0, + function(param){ + function _b0m_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_5$10); + } + function _b0n_(param){ + var + _b0O_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$20), + _b0P_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _b0O_); + switch(residence[0]){ + case 0: + var _b0Q_ = 1; break; + case 1: + var _b0Q_ = 0; break; + case 2: + var _b0Q_ = 1; break; + case 3: + var _b0Q_ = 1; break; + case 4: + var _b0Q_ = 1; break; + case 5: + var _b0Q_ = 1; break; + case 6: + var _b0Q_ = 0; break; + case 7: + var _b0Q_ = 0; break; + default: var _b0Q_ = 1; + } + var + _b0R_ = caml_call2(Runtime_ocaml_Runtime[83], _b0Q_, _b0P_), + _b0S_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _b0T_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b0S_), + _b0U_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _b0V_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b0U_), + _b0W_ = caml_call2(Runtime_ocaml_Runtime[83], _b0V_, _b0T_), + _b0X_ = caml_call2(Runtime_ocaml_Runtime[83], _b0W_, _b0R_); + return caml_call2(Runtime_ocaml_Runtime[29], _ga_, _b0X_); + } + var + _b0o_ = + [0, + function(param){ + function _b0p_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_5$11); + } + function _b0q_(param){ + var + _b0E_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$21), + _b0F_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _b0E_); + switch(residence[0]){ + case 0: + var _b0G_ = 1; break; + case 1: + var _b0G_ = 0; break; + case 2: + var _b0G_ = 1; break; + case 3: + var _b0G_ = 1; break; + case 4: + var _b0G_ = 1; break; + case 5: + var _b0G_ = 1; break; + case 6: + var _b0G_ = 0; break; + case 7: + var _b0G_ = 0; break; + default: var _b0G_ = 1; + } + var + _b0H_ = caml_call2(Runtime_ocaml_Runtime[83], _b0G_, _b0F_), + _b0I_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _b0J_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b0I_), + _b0K_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _b0L_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b0K_), + _b0M_ = caml_call2(Runtime_ocaml_Runtime[83], _b0L_, _b0J_), + _b0N_ = caml_call2(Runtime_ocaml_Runtime[83], _b0M_, _b0H_); + return caml_call2(Runtime_ocaml_Runtime[29], _gb_, _b0N_); + } + var + _b0r_ = + [0, + function(param){ + function _b0s_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_5$12); + } + function _b0t_(param){ + var + _b0u_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$22), + _b0v_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _b0u_); + switch(residence[0]){ + case 0: + var _b0w_ = 1; break; + case 1: + var _b0w_ = 0; break; + case 2: + var _b0w_ = 1; break; + case 3: + var _b0w_ = 1; break; + case 4: + var _b0w_ = 1; break; + case 5: + var _b0w_ = 1; break; + case 6: + var _b0w_ = 0; break; + case 7: + var _b0w_ = 0; break; + default: var _b0w_ = 1; + } + var + _b0x_ = caml_call2(Runtime_ocaml_Runtime[83], _b0w_, _b0v_), + _b0y_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _b0z_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b0y_), + _b0A_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _b0B_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b0A_), + _b0C_ = caml_call2(Runtime_ocaml_Runtime[83], _b0B_, _b0z_), + _b0D_ = caml_call2(Runtime_ocaml_Runtime[83], _b0C_, _b0x_); + return caml_call2(Runtime_ocaml_Runtime[29], _gc_, _b0D_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gd_, [0], _b0t_, _b0s_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _ge_, _b0r_, _b0q_, _b0p_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gf_, _b0o_, _b0n_, _b0m_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gg_, _b0l_, _b0k_, _b0j_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gh_, _b0i_, _b0h_, _b0g_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gi_, _b0f_, _b0e_, _b0d_); + }], + _bFd_ = caml_call4(Runtime_ocaml_Runtime[63], _gj_, _bFc_, _bFb_, _bFa_); + } + catch(_b0c_){ + var _bE$_ = caml_wrap_exception(_b0c_); + if(_bE$_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _f2_], 1); + throw caml_maybe_attach_backtrace(_bE$_, 0); + } + var + multiplicateur_majoration_loye = + caml_call3 + (Runtime_ocaml_Runtime[28], _gk_, Runtime_ocaml_Runtime[15], _bFd_); + try{ + var + _bFf_ = + function(param){ + function _bZp_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bZq_(param){return 0;} + var + _bZr_ = + [0, + function(param){ + function _bZs_(param){ + var + _b0a_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$17), + _b0b_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _b0a_); + return caml_call1(Runtime_ocaml_Runtime[69], _b0b_); + } + function _bZt_(param){ + var + _bZ__ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bZ$_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bZ__); + return caml_call2(Runtime_ocaml_Runtime[29], _gm_, _bZ$_); + } + var + _bZu_ = + [0, + function(param){ + function _bZv_(param){ + var + _bZ8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$18), + _bZ9_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bZ8_); + return caml_call1(Runtime_ocaml_Runtime[69], _bZ9_); + } + function _bZw_(param){ + var + _bZ3_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bZ4_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bZ3_), + _bZ5_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bZ6_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bZ5_), + _bZ7_ = caml_call2(Runtime_ocaml_Runtime[83], _bZ6_, _bZ4_); + return caml_call2(Runtime_ocaml_Runtime[29], _gn_, _bZ7_); + } + var + _bZx_ = + [0, + function(param){ + function _bZy_(param){ + var + _bZ1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$19), + _bZ2_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bZ1_); + return caml_call1(Runtime_ocaml_Runtime[69], _bZ2_); + } + function _bZz_(param){ + var + _bZV_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bZW_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bZV_), + _bZX_ = + caml_call2(Runtime_ocaml_Runtime[83], _bZW_, colocation), + _bZY_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bZZ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bZY_), + _bZ0_ = caml_call2(Runtime_ocaml_Runtime[83], _bZZ_, _bZX_); + return caml_call2(Runtime_ocaml_Runtime[29], _go_, _bZ0_); + } + var + _bZA_ = + [0, + function(param){ + function _bZB_(param){ + var + _bZT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$20), + _bZU_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bZT_); + return caml_call1(Runtime_ocaml_Runtime[69], _bZU_); + } + function _bZC_(param){ + var + _bZO_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bZP_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bZO_), + _bZQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bZR_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bZQ_), + _bZS_ = caml_call2(Runtime_ocaml_Runtime[83], _bZR_, _bZP_); + return caml_call2(Runtime_ocaml_Runtime[29], _gp_, _bZS_); + } + var + _bZD_ = + [0, + function(param){ + function _bZE_(param){ + var + _bZM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$21), + _bZN_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bZM_); + return caml_call1(Runtime_ocaml_Runtime[69], _bZN_); + } + function _bZF_(param){ + var + _bZG_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bZH_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bZG_), + _bZI_ = + caml_call2(Runtime_ocaml_Runtime[83], _bZH_, colocation), + _bZJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bZK_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bZJ_), + _bZL_ = caml_call2(Runtime_ocaml_Runtime[83], _bZK_, _bZI_); + return caml_call2(Runtime_ocaml_Runtime[29], _gq_, _bZL_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gr_, [0], _bZF_, _bZE_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gs_, _bZD_, _bZC_, _bZB_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gt_, _bZA_, _bZz_, _bZy_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gu_, _bZx_, _bZw_, _bZv_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gv_, _bZu_, _bZt_, _bZs_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gw_, _bZr_, _bZq_, _bZp_); + }, + _bFg_ = function(param){return 1;}, + _bFh_ = + [0, + function(param){ + function _bYm_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bYn_(param){return 0;} + var + _bYo_ = + [0, + function(param){ + function _bYp_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_5$13); + } + function _bYq_(param){ + var + _bZf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$23), + _bZg_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _bZf_); + switch(residence[0]){ + case 0: + var _bZh_ = 1; break; + case 1: + var _bZh_ = 0; break; + case 2: + var _bZh_ = 1; break; + case 3: + var _bZh_ = 1; break; + case 4: + var _bZh_ = 1; break; + case 5: + var _bZh_ = 1; break; + case 6: + var _bZh_ = 0; break; + case 7: + var _bZh_ = 0; break; + default: var _bZh_ = 1; + } + var + _bZi_ = caml_call2(Runtime_ocaml_Runtime[83], _bZh_, _bZg_), + _bZj_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _bZk_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bZj_), + _bZl_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bZm_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bZl_), + _bZn_ = caml_call2(Runtime_ocaml_Runtime[83], _bZm_, _bZk_), + _bZo_ = caml_call2(Runtime_ocaml_Runtime[83], _bZn_, _bZi_); + return caml_call2(Runtime_ocaml_Runtime[29], _gx_, _bZo_); + } + var + _bYr_ = + [0, + function(param){ + function _bYs_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_5$14); + } + function _bYt_(param){ + var + _bY7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$24), + _bY8_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _bY7_); + switch(residence[0]){ + case 0: + var _bY9_ = 1; break; + case 1: + var _bY9_ = 0; break; + case 2: + var _bY9_ = 1; break; + case 3: + var _bY9_ = 1; break; + case 4: + var _bY9_ = 1; break; + case 5: + var _bY9_ = 1; break; + case 6: + var _bY9_ = 0; break; + case 7: + var _bY9_ = 0; break; + default: var _bY9_ = 1; + } + var + _bY__ = caml_call2(Runtime_ocaml_Runtime[83], _bY9_, _bY8_), + _bY$_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bZa_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bY$_), + _bZb_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _bZc_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bZb_), + _bZd_ = caml_call2(Runtime_ocaml_Runtime[83], _bZc_, _bZa_), + _bZe_ = caml_call2(Runtime_ocaml_Runtime[83], _bZd_, _bY__); + return caml_call2(Runtime_ocaml_Runtime[29], _gy_, _bZe_); + } + var + _bYu_ = + [0, + function(param){ + function _bYv_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_5$15); + } + function _bYw_(param){ + var + _bYX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$25), + _bYY_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _bYX_); + switch(residence[0]){ + case 0: + var _bYZ_ = 1; break; + case 1: + var _bYZ_ = 0; break; + case 2: + var _bYZ_ = 1; break; + case 3: + var _bYZ_ = 1; break; + case 4: + var _bYZ_ = 1; break; + case 5: + var _bYZ_ = 1; break; + case 6: + var _bYZ_ = 0; break; + case 7: + var _bYZ_ = 0; break; + default: var _bYZ_ = 1; + } + var + _bY0_ = caml_call2(Runtime_ocaml_Runtime[83], _bYZ_, _bYY_), + _bY1_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _bY2_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bY1_), + _bY3_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bY4_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bY3_), + _bY5_ = caml_call2(Runtime_ocaml_Runtime[83], _bY4_, _bY2_), + _bY6_ = caml_call2(Runtime_ocaml_Runtime[83], _bY5_, _bY0_); + return caml_call2(Runtime_ocaml_Runtime[29], _gz_, _bY6_); + } + var + _bYx_ = + [0, + function(param){ + function _bYy_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_5$16); + } + function _bYz_(param){ + var + _bYN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$26), + _bYO_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _bYN_); + switch(residence[0]){ + case 0: + var _bYP_ = 1; break; + case 1: + var _bYP_ = 0; break; + case 2: + var _bYP_ = 1; break; + case 3: + var _bYP_ = 1; break; + case 4: + var _bYP_ = 1; break; + case 5: + var _bYP_ = 1; break; + case 6: + var _bYP_ = 0; break; + case 7: + var _bYP_ = 0; break; + default: var _bYP_ = 1; + } + var + _bYQ_ = caml_call2(Runtime_ocaml_Runtime[83], _bYP_, _bYO_), + _bYR_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bYS_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bYR_), + _bYT_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bYU_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bYT_), + _bYV_ = caml_call2(Runtime_ocaml_Runtime[83], _bYU_, _bYS_), + _bYW_ = caml_call2(Runtime_ocaml_Runtime[83], _bYV_, _bYQ_); + return caml_call2(Runtime_ocaml_Runtime[29], _gA_, _bYW_); + } + var + _bYA_ = + [0, + function(param){ + function _bYB_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_5$17); + } + function _bYC_(param){ + var + _bYD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$27), + _bYE_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _bYD_); + switch(residence[0]){ + case 0: + var _bYF_ = 1; break; + case 1: + var _bYF_ = 0; break; + case 2: + var _bYF_ = 1; break; + case 3: + var _bYF_ = 1; break; + case 4: + var _bYF_ = 1; break; + case 5: + var _bYF_ = 1; break; + case 6: + var _bYF_ = 0; break; + case 7: + var _bYF_ = 0; break; + default: var _bYF_ = 1; + } + var + _bYG_ = caml_call2(Runtime_ocaml_Runtime[83], _bYF_, _bYE_), + _bYH_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bYI_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bYH_), + _bYJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _bYK_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bYJ_), + _bYL_ = caml_call2(Runtime_ocaml_Runtime[83], _bYK_, _bYI_), + _bYM_ = caml_call2(Runtime_ocaml_Runtime[83], _bYL_, _bYG_); + return caml_call2(Runtime_ocaml_Runtime[29], _gB_, _bYM_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gC_, [0], _bYC_, _bYB_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gD_, _bYA_, _bYz_, _bYy_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gE_, _bYx_, _bYw_, _bYv_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gF_, _bYu_, _bYt_, _bYs_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gG_, _bYr_, _bYq_, _bYp_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gH_, _bYo_, _bYn_, _bYm_); + }], + _bFi_ = caml_call4(Runtime_ocaml_Runtime[63], _gI_, _bFh_, _bFg_, _bFf_); + } + catch(_bYl_){ + var _bFe_ = caml_wrap_exception(_bYl_); + if(_bFe_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _gl_], 1); + throw caml_maybe_attach_backtrace(_bFe_, 0); + } + var + multiplicateur_majoration_plaf = + caml_call3 + (Runtime_ocaml_Runtime[28], _gJ_, Runtime_ocaml_Runtime[15], _bFi_); + try{ + var + _bFk_ = + function(param){ + function _bXR_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bXS_(param){return 0;} + function _bXT_(param){ + function _bYb_(param){ + var + _bYi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1224), + _bYj_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bYi_, + multiplicateur_majoration_char), + _bYk_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5399); + return caml_call2(Runtime_ocaml_Runtime[93], _bYk_, _bYj_); + } + function _bYc_(param){ + var + _bYd_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bYe_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bYd_), + _bYf_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bYg_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bYf_), + _bYh_ = caml_call2(Runtime_ocaml_Runtime[83], _bYg_, _bYe_); + return caml_call2(Runtime_ocaml_Runtime[29], _gL_, _bYh_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gM_, [0], _bYc_, _bYb_); + } + function _bXU_(param){ + function _bX3_(param){ + var + _bX__ = caml_call1(Runtime_ocaml_Runtime[31], cst_1229), + _bX$_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bX__, + multiplicateur_majoration_char), + _bYa_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5422); + return caml_call2(Runtime_ocaml_Runtime[93], _bYa_, _bX$_); + } + function _bX4_(param){ + var + _bX5_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bX6_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bX5_), + _bX7_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bX8_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bX7_), + _bX9_ = caml_call2(Runtime_ocaml_Runtime[83], _bX8_, _bX6_); + return caml_call2(Runtime_ocaml_Runtime[29], _gN_, _bX9_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gO_, [0], _bX4_, _bX3_); + } + var + _bXV_ = + [0, + function(param){ + function _bXW_(param){ + var + _bX0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1272), + _bX1_ = caml_call2 (Runtime_ocaml_Runtime[104], - reduction_loyer_solidarite, - fraction_l832_3); - return caml_call2 - (Runtime_ocaml_Runtime[98],aide_finale$0,_bJn_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$130)}, - _bJe_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_ub_,1)}, - _bJf_=caml_call4(Runtime_ocaml_Runtime[63],_uc_,[0],_bJe_,_bJd_); - return _bJf_} - catch(_bJg_) - {_bJg_ = caml_wrap_exception(_bJg_); - if(_bJg_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_t8_]; - throw _bJg_}} - var - traitement_aide_finale_reducti= - caml_call3 - (Runtime_ocaml_Runtime[28],_ud_,Runtime_ocaml_Runtime[10],_bIx_); - try - {var - _bIy_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[92], - taux_composition_familiale, - taux_loyer_eligible_taux_arron)}, - _bIz_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_uf_,1)}, - _bIA_=caml_call4(Runtime_ocaml_Runtime[63],_ug_,[0],_bIz_,_bIy_)} - catch(_bJc_) - {_bJc_ = caml_wrap_exception(_bJc_); - if(_bJc_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ue_]; - throw _bJc_} - var - taux_prise_compte_ressources= - caml_call3 - (Runtime_ocaml_Runtime[28],_uh_,Runtime_ocaml_Runtime[15],_bIA_); - function _bIB_(aide_finale) - {try - {var - _bI7_= - function(param) - {var - _bI$_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _uj_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bJa_= + _bX0_, + multiplicateur_majoration_char), + _bX2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5612); + return caml_call2(Runtime_ocaml_Runtime[93], _bX2_, _bX1_); + } + function _bXX_(param){ + var + _bXY_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bXZ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bXY_); + return caml_call2(Runtime_ocaml_Runtime[29], _gP_, _bXZ_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gQ_, [0], _bXX_, _bXW_); + }, + _bXU_, + _bXT_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gR_, _bXV_, _bXS_, _bXR_); + }, + _bFl_ = function(param){return 1;}, + _bFm_ = + [0, + function(param){ + function _bT1_(param){ + function _bWf_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bWg_(param){return 0;} + function _bWh_(param){ + function _bXA_(param){ + var + _bXJ_ = caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _uk_, - traitement_aide_finale_reducti), - _bI$_), - _bJb_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _ul_, - Runtime_ocaml_Runtime[13], - _bJa_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_um_,_bJb_); - return caml_call2 - (Runtime_ocaml_Runtime[113], - aide_finale$0, - montant_minimal_aide_d823_16) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$131) - :aide_finale$0}, - _bI8_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_un_,1)}, - _bI9_=caml_call4(Runtime_ocaml_Runtime[63],_uo_,[0],_bI8_,_bI7_); - return _bI9_} - catch(_bI__) - {_bI__ = caml_wrap_exception(_bI__); - if(_bI__ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ui_]; - throw _bI__}} - var - traitement_aide_finale_montant= - caml_call3 - (Runtime_ocaml_Runtime[28],_up_,Runtime_ocaml_Runtime[10],_bIB_); - try - {var - _bIC_= - function(param) - {var - _bI5_= + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bXK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929), + _bXL_ = caml_call2(Runtime_ocaml_Runtime[104], _bXK_, _bXJ_), + _bXM_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3614), + montant = caml_call2(Runtime_ocaml_Runtime[93], _bXM_, _bXL_), + _bXN_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$28), + _bXO_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$0), + _bXP_ = caml_call2(Runtime_ocaml_Runtime[104], _bXO_, _bXN_), + _bXQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3614$0), + limite = caml_call2(Runtime_ocaml_Runtime[93], _bXQ_, _bXP_); + return caml_call2(Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _bXB_(param){ + switch(residence[0]){ + case 0: + var _bXC_ = 1; break; + case 1: + var _bXC_ = 0; break; + case 2: + var _bXC_ = 1; break; + case 3: + var _bXC_ = 1; break; + case 4: + var _bXC_ = 1; break; + case 5: + var _bXC_ = 1; break; + case 6: + var _bXC_ = 0; break; + case 7: + var _bXC_ = 0; break; + default: var _bXC_ = 1; + } + var + _bXD_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bXE_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bXD_), + _bXF_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _bXG_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bXF_), + _bXH_ = caml_call2(Runtime_ocaml_Runtime[83], _bXG_, _bXE_), + _bXI_ = caml_call2(Runtime_ocaml_Runtime[83], _bXH_, _bXC_); + return caml_call2(Runtime_ocaml_Runtime[29], _gS_, _bXI_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gT_, [0], _bXB_, _bXA_); + } + function _bWi_(param){ + function _bXj_(param){ + var + _bXs_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bXt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932), + _bXu_ = caml_call2(Runtime_ocaml_Runtime[104], _bXt_, _bXs_), + _bXv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3625), + montant = caml_call2(Runtime_ocaml_Runtime[93], _bXv_, _bXu_), + _bXw_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$29), + _bXx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$0), + _bXy_ = caml_call2(Runtime_ocaml_Runtime[104], _bXx_, _bXw_), + _bXz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3625$0), + limite = caml_call2(Runtime_ocaml_Runtime[93], _bXz_, _bXy_); + return caml_call2(Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _bXk_(param){ + switch(residence[0]){ + case 0: + var _bXl_ = 1; break; + case 1: + var _bXl_ = 0; break; + case 2: + var _bXl_ = 1; break; + case 3: + var _bXl_ = 1; break; + case 4: + var _bXl_ = 1; break; + case 5: + var _bXl_ = 1; break; + case 6: + var _bXl_ = 0; break; + case 7: + var _bXl_ = 0; break; + default: var _bXl_ = 1; + } + var + _bXm_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bXn_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bXm_), + _bXo_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bXp_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bXo_), + _bXq_ = caml_call2(Runtime_ocaml_Runtime[83], _bXp_, _bXn_), + _bXr_ = caml_call2(Runtime_ocaml_Runtime[83], _bXq_, _bXl_); + return caml_call2(Runtime_ocaml_Runtime[29], _gU_, _bXr_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gV_, [0], _bXk_, _bXj_); + } + function _bWj_(param){ + function _bWM_(param){ + var + _bXb_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bXc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936), + _bXd_ = caml_call2(Runtime_ocaml_Runtime[104], _bXc_, _bXb_), + _bXe_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640), + montant = caml_call2(Runtime_ocaml_Runtime[93], _bXe_, _bXd_), + _bXf_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$30), + _bXg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$0), + _bXh_ = caml_call2(Runtime_ocaml_Runtime[104], _bXg_, _bXf_), + _bXi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$0), + limite = caml_call2(Runtime_ocaml_Runtime[93], _bXi_, _bXh_); + return caml_call2(Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _bWN_(param){ + switch(residence[0]){ + case 0: + var _bW6_ = 1; break; + case 1: + var _bW6_ = 0; break; + case 2: + var _bW6_ = 1; break; + case 3: + var _bW6_ = 1; break; + case 4: + var _bW6_ = 1; break; + case 5: + var _bW6_ = 1; break; + case 6: + var _bW6_ = 0; break; + case 7: + var _bW6_ = 0; break; + default: var _bW6_ = 1; + } + var + _bW7_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bW8_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bW7_), + _bW9_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _bW__ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bW9_), + _bW$_ = caml_call2(Runtime_ocaml_Runtime[83], _bW__, _bW8_), + _bXa_ = caml_call2(Runtime_ocaml_Runtime[83], _bW$_, _bW6_); + return caml_call2(Runtime_ocaml_Runtime[29], _gW_, _bXa_); + } + var + _bWO_ = + [0, + function(param){ + function _bWP_(param){ + var + _bWY_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bWZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$1), + _bW0_ = caml_call2(Runtime_ocaml_Runtime[104], _bWZ_, _bWY_), + _bW1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$1), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _bW1_, _bW0_), + _bW2_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$31), + _bW3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$2), + _bW4_ = caml_call2(Runtime_ocaml_Runtime[104], _bW3_, _bW2_), + _bW5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$2), + limite = caml_call2(Runtime_ocaml_Runtime[93], _bW5_, _bW4_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _bWQ_(param){ + switch(residence[0]){ + case 0: + var _bWR_ = 1; break; + case 1: + var _bWR_ = 0; break; + case 2: + var _bWR_ = 1; break; + case 3: + var _bWR_ = 1; break; + case 4: + var _bWR_ = 1; break; + case 5: + var _bWR_ = 1; break; + case 6: + var _bWR_ = 0; break; + case 7: + var _bWR_ = 0; break; + default: var _bWR_ = 1; + } + var + _bWS_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _bWT_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bWS_), + _bWU_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bWV_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bWU_), + _bWW_ = caml_call2(Runtime_ocaml_Runtime[83], _bWV_, _bWT_), + _bWX_ = caml_call2(Runtime_ocaml_Runtime[83], _bWW_, _bWR_); + return caml_call2(Runtime_ocaml_Runtime[29], _gX_, _bWX_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gY_, [0], _bWQ_, _bWP_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gZ_, _bWO_, _bWN_, _bWM_); + } + function _bWk_(param){ + function _bWv_(param){ + var + _bWE_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bWF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969), + _bWG_ = caml_call2(Runtime_ocaml_Runtime[104], _bWF_, _bWE_), + _bWH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767), + montant = caml_call2(Runtime_ocaml_Runtime[93], _bWH_, _bWG_), + _bWI_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$32), + _bWJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$0), + _bWK_ = caml_call2(Runtime_ocaml_Runtime[104], _bWJ_, _bWI_), + _bWL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767$0), + limite = caml_call2(Runtime_ocaml_Runtime[93], _bWL_, _bWK_); + return caml_call2(Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _bWw_(param){ + switch(residence[0]){ + case 0: + var _bWx_ = 1; break; + case 1: + var _bWx_ = 0; break; + case 2: + var _bWx_ = 1; break; + case 3: + var _bWx_ = 1; break; + case 4: + var _bWx_ = 1; break; + case 5: + var _bWx_ = 1; break; + case 6: + var _bWx_ = 0; break; + case 7: + var _bWx_ = 0; break; + default: var _bWx_ = 1; + } + var + _bWy_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _bWz_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bWy_), + _bWA_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bWB_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bWA_), + _bWC_ = caml_call2(Runtime_ocaml_Runtime[83], _bWB_, _bWz_), + _bWD_ = caml_call2(Runtime_ocaml_Runtime[83], _bWC_, _bWx_); + return caml_call2(Runtime_ocaml_Runtime[29], _g0_, _bWD_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _g1_, [0], _bWw_, _bWv_); + } + var + _bWl_ = + [0, + function(param){ + function _bWm_(param){ + var + _bWs_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$1), + _bWt_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bWs_, + multiplicateur_majoration_char), + _bWu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767$1); + return caml_call2(Runtime_ocaml_Runtime[93], _bWu_, _bWt_); + } + function _bWn_(param){ + switch(residence[0]){ + case 0: + var _bWo_ = 1; break; + case 1: + var _bWo_ = 0; break; + case 2: + var _bWo_ = 1; break; + case 3: + var _bWo_ = 1; break; + case 4: + var _bWo_ = 1; break; + case 5: + var _bWo_ = 1; break; + case 6: + var _bWo_ = 0; break; + case 7: + var _bWo_ = 0; break; + default: var _bWo_ = 1; + } + var + _bWp_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _bWq_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bWp_), + _bWr_ = caml_call2(Runtime_ocaml_Runtime[83], _bWq_, _bWo_); + return caml_call2(Runtime_ocaml_Runtime[29], _g2_, _bWr_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _g3_, [0], _bWn_, _bWm_); + }, + _bWk_, + _bWj_, + _bWi_, + _bWh_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _g4_, _bWl_, _bWg_, _bWf_); + } + function _bT2_(param){return 1;} + var + _bT3_ = + [0, + function(param){ + function _bT4_(param){ + function _bVI_(param){ + throw caml_maybe_attach_backtrace + (Runtime_ocaml_Runtime[2], 1); + } + function _bVJ_(param){return 0;} + function _bVK_(param){ + function _bV6_(param){ + var + _bWc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1224$0), + _bWd_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bWc_, + multiplicateur_majoration_char), + _bWe_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_2699) + : caml_call1(Runtime_ocaml_Runtime[31], cst_5399$0); + return caml_call2(Runtime_ocaml_Runtime[93], _bWe_, _bWd_); + } + function _bV7_(param){ + var + _bV8_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bV9_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bV8_), + _bV__ = + caml_call2(Runtime_ocaml_Runtime[83], _bV9_, colocation), + _bV$_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bWa_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bV$_), + _bWb_ = caml_call2(Runtime_ocaml_Runtime[83], _bWa_, _bV__); + return caml_call2(Runtime_ocaml_Runtime[29], _g5_, _bWb_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _g6_, [0], _bV7_, _bV6_); + } + function _bVL_(param){ + function _bVV_(param){ + var + _bV3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1229$0), + _bV4_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bV3_, + multiplicateur_majoration_char), + _bV5_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_2710) + : caml_call1(Runtime_ocaml_Runtime[31], cst_5422$0); + return caml_call2(Runtime_ocaml_Runtime[93], _bV5_, _bV4_); + } + function _bVW_(param){ + var + _bVX_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bVY_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bVX_), + _bVZ_ = + caml_call2(Runtime_ocaml_Runtime[83], _bVY_, colocation), + _bV0_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bV1_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bV0_), + _bV2_ = caml_call2(Runtime_ocaml_Runtime[83], _bV1_, _bVZ_); + return caml_call2(Runtime_ocaml_Runtime[29], _g7_, _bV2_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _g8_, [0], _bVW_, _bVV_); + } + var + _bVM_ = + [0, + function(param){ + function _bVN_(param){ + var + _bVS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1272$0), + _bVT_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bVS_, + multiplicateur_majoration_char), + _bVU_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_2805) + : caml_call1(Runtime_ocaml_Runtime[31], cst_5612$0); + return caml_call2(Runtime_ocaml_Runtime[93], _bVU_, _bVT_); + } + function _bVO_(param){ + var + _bVP_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bVQ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bVP_), + _bVR_ = + caml_call2(Runtime_ocaml_Runtime[83], _bVQ_, colocation); + return caml_call2(Runtime_ocaml_Runtime[29], _g9_, _bVR_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _g__, [0], _bVO_, _bVN_); + }, + _bVL_, + _bVK_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _g$_, _bVM_, _bVJ_, _bVI_); + } + function _bT5_(param){return 1;} + var + _bT6_ = + [0, + function(param){ + function _bT7_(param){ + throw caml_maybe_attach_backtrace + (Runtime_ocaml_Runtime[2], 1); + } + function _bT8_(param){return 0;} + function _bT9_(param){ + function _bVr_(param){ + var + _bVA_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bVB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$1), + _bVC_ = caml_call2(Runtime_ocaml_Runtime[104], _bVB_, _bVA_), + _bVD_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1858) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3614$2), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _bVD_, _bVC_), + _bVE_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$33), + _bVF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$2), + _bVG_ = caml_call2(Runtime_ocaml_Runtime[104], _bVF_, _bVE_), + _bVH_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1858$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3614$1), + limite = caml_call2(Runtime_ocaml_Runtime[93], _bVH_, _bVG_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _bVs_(param){ + switch(residence[0]){ + case 0: + var _bVt_ = 1; break; + case 1: + var _bVt_ = 0; break; + case 2: + var _bVt_ = 1; break; + case 3: + var _bVt_ = 1; break; + case 4: + var _bVt_ = 1; break; + case 5: + var _bVt_ = 1; break; + case 6: + var _bVt_ = 0; break; + case 7: + var _bVt_ = 0; break; + default: var _bVt_ = 1; + } + var + _bVu_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bVv_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bVu_), + _bVw_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _bVx_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bVw_), + _bVy_ = caml_call2(Runtime_ocaml_Runtime[83], _bVx_, _bVv_), + _bVz_ = caml_call2(Runtime_ocaml_Runtime[83], _bVy_, _bVt_); + return caml_call2(Runtime_ocaml_Runtime[29], _ha_, _bVz_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hb_, [0], _bVs_, _bVr_); + } + function _bT__(param){ + function _bVa_(param){ + var + _bVj_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bVk_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$1), + _bVl_ = caml_call2(Runtime_ocaml_Runtime[104], _bVk_, _bVj_), + _bVm_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1864) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3625$2), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _bVm_, _bVl_), + _bVn_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$34), + _bVo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$2), + _bVp_ = caml_call2(Runtime_ocaml_Runtime[104], _bVo_, _bVn_), + _bVq_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1864$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3625$1), + limite = caml_call2(Runtime_ocaml_Runtime[93], _bVq_, _bVp_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _bVb_(param){ + switch(residence[0]){ + case 0: + var _bVc_ = 1; break; + case 1: + var _bVc_ = 0; break; + case 2: + var _bVc_ = 1; break; + case 3: + var _bVc_ = 1; break; + case 4: + var _bVc_ = 1; break; + case 5: + var _bVc_ = 1; break; + case 6: + var _bVc_ = 0; break; + case 7: + var _bVc_ = 0; break; + default: var _bVc_ = 1; + } + var + _bVd_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bVe_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bVd_), + _bVf_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bVg_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bVf_), + _bVh_ = caml_call2(Runtime_ocaml_Runtime[83], _bVg_, _bVe_), + _bVi_ = caml_call2(Runtime_ocaml_Runtime[83], _bVh_, _bVc_); + return caml_call2(Runtime_ocaml_Runtime[29], _hc_, _bVi_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hd_, [0], _bVb_, _bVa_); + } + function _bT$_(param){ + function _bUD_(param){ + var + _bU4_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bU5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$3), + _bU6_ = caml_call2(Runtime_ocaml_Runtime[104], _bU5_, _bU4_), + _bU7_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1872) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3640$4), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _bU7_, _bU6_), + _bU8_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$35), + _bU9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$4), + _bU__ = caml_call2(Runtime_ocaml_Runtime[104], _bU9_, _bU8_), + _bU$_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1872$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3640$3), + limite = caml_call2(Runtime_ocaml_Runtime[93], _bU$_, _bU__); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _bUE_(param){ + switch(residence[0]){ + case 0: + var _bUX_ = 1; break; + case 1: + var _bUX_ = 0; break; + case 2: + var _bUX_ = 1; break; + case 3: + var _bUX_ = 1; break; + case 4: + var _bUX_ = 1; break; + case 5: + var _bUX_ = 1; break; + case 6: + var _bUX_ = 0; break; + case 7: + var _bUX_ = 0; break; + default: var _bUX_ = 1; + } + var + _bUY_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bUZ_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bUY_), + _bU0_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _bU1_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bU0_), + _bU2_ = caml_call2(Runtime_ocaml_Runtime[83], _bU1_, _bUZ_), + _bU3_ = caml_call2(Runtime_ocaml_Runtime[83], _bU2_, _bUX_); + return caml_call2(Runtime_ocaml_Runtime[29], _he_, _bU3_); + } + var + _bUF_ = + [0, + function(param){ + function _bUG_(param){ + var + _bUP_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bUQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$5), + _bUR_ = caml_call2(Runtime_ocaml_Runtime[104], _bUQ_, _bUP_), + _bUS_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1872$1) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3640$6), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _bUS_, _bUR_), + _bUT_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$36), + _bUU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$6), + _bUV_ = caml_call2(Runtime_ocaml_Runtime[104], _bUU_, _bUT_), + _bUW_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1872$2) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3640$5), + limite = caml_call2(Runtime_ocaml_Runtime[93], _bUW_, _bUV_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _bUH_(param){ + switch(residence[0]){ + case 0: + var _bUI_ = 1; break; + case 1: + var _bUI_ = 0; break; + case 2: + var _bUI_ = 1; break; + case 3: + var _bUI_ = 1; break; + case 4: + var _bUI_ = 1; break; + case 5: + var _bUI_ = 1; break; + case 6: + var _bUI_ = 0; break; + case 7: + var _bUI_ = 0; break; + default: var _bUI_ = 1; + } + var + _bUJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _bUK_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bUJ_), + _bUL_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bUM_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bUL_), + _bUN_ = caml_call2(Runtime_ocaml_Runtime[83], _bUM_, _bUK_), + _bUO_ = caml_call2(Runtime_ocaml_Runtime[83], _bUN_, _bUI_); + return caml_call2(Runtime_ocaml_Runtime[29], _hf_, _bUO_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hg_, [0], _bUH_, _bUG_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _hh_, _bUF_, _bUE_, _bUD_); + } + function _bUa_(param){ + function _bUm_(param){ + var + _bUv_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bUw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$2), + _bUx_ = caml_call2(Runtime_ocaml_Runtime[104], _bUw_, _bUv_), + _bUy_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1938) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3767$3), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _bUy_, _bUx_), + _bUz_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$37), + _bUA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$3), + _bUB_ = caml_call2(Runtime_ocaml_Runtime[104], _bUA_, _bUz_), + _bUC_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1938$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3767$2), + limite = caml_call2(Runtime_ocaml_Runtime[93], _bUC_, _bUB_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _bUn_(param){ + switch(residence[0]){ + case 0: + var _bUo_ = 1; break; + case 1: + var _bUo_ = 0; break; + case 2: + var _bUo_ = 1; break; + case 3: + var _bUo_ = 1; break; + case 4: + var _bUo_ = 1; break; + case 5: + var _bUo_ = 1; break; + case 6: + var _bUo_ = 0; break; + case 7: + var _bUo_ = 0; break; + default: var _bUo_ = 1; + } + var + _bUp_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _bUq_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bUp_), + _bUr_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bUs_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bUr_), + _bUt_ = caml_call2(Runtime_ocaml_Runtime[83], _bUs_, _bUq_), + _bUu_ = caml_call2(Runtime_ocaml_Runtime[83], _bUt_, _bUo_); + return caml_call2(Runtime_ocaml_Runtime[29], _hi_, _bUu_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hj_, [0], _bUn_, _bUm_); + } + var + _bUb_ = + [0, + function(param){ + function _bUc_(param){ + var + _bUj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$4), + _bUk_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bUj_, + multiplicateur_majoration_char), + _bUl_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1938$1) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3767$4); + return caml_call2(Runtime_ocaml_Runtime[93], _bUl_, _bUk_); + } + function _bUd_(param){ + switch(residence[0]){ + case 0: + var _bUe_ = 1; break; + case 1: + var _bUe_ = 0; break; + case 2: + var _bUe_ = 1; break; + case 3: + var _bUe_ = 1; break; + case 4: + var _bUe_ = 1; break; + case 5: + var _bUe_ = 1; break; + case 6: + var _bUe_ = 0; break; + case 7: + var _bUe_ = 0; break; + default: var _bUe_ = 1; + } + var + _bUf_ = + caml_call2(Runtime_ocaml_Runtime[83], _bUe_, colocation), + _bUg_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _bUh_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bUg_), + _bUi_ = caml_call2(Runtime_ocaml_Runtime[83], _bUh_, _bUf_); + return caml_call2(Runtime_ocaml_Runtime[29], _hk_, _bUi_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hl_, [0], _bUd_, _bUc_); + }, + _bUa_, + _bT$_, + _bT__, + _bT9_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _hm_, _bUb_, _bT8_, _bT7_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _hn_, _bT6_, _bT5_, _bT4_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _ho_, _bT3_, _bT2_, _bT1_); + }], + _bFn_ = caml_call4(Runtime_ocaml_Runtime[63], _hp_, _bFm_, _bFl_, _bFk_); + } + catch(_bT0_){ + var _bFj_ = caml_wrap_exception(_bT0_); + if(_bFj_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _gK_], 1); + throw caml_maybe_attach_backtrace(_bFj_, 0); + } + var + montant_forfaitaire_charges_d8 = + caml_call3 + (Runtime_ocaml_Runtime[28], _hq_, Runtime_ocaml_Runtime[13], _bFn_); + try{ + var + _bFp_ = + function(param){ + function _bSQ_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bSR_(param){return 0;} + function _bSS_(param){ + function _bTG_(param){ + var _bTN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$36); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTN_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_458800) + : caml_call1(Runtime_ocaml_Runtime[31], cst_657200); + var _bTO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$22); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTO_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_783900); + var _bTP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$16); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTP_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_801500); + var _bTQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$15); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTQ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_832200); + var _bTR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$16); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTR_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_863100); + var _bTS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$18); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTS_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_893800); + var _bTT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$38); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTT_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_924600); + var + _bTU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$39), + _bTV_ = caml_call2 - (Runtime_ocaml_Runtime[98], - ressources_menage_arrondies, - abattement_forfaitaire_d823_17), - participation_ressources= + (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bTU_), + _bTW_ = caml_call1(Runtime_ocaml_Runtime[69], _bTV_), + _bTX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_30500), + _bTY_ = caml_call2(Runtime_ocaml_Runtime[104], _bTX_, _bTW_), + _bTZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_924600$0); + return caml_call2(Runtime_ocaml_Runtime[93], _bTZ_, _bTY_); + } + function _bTH_(param){ + var + _bTI_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _bTJ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bTI_), + _bTK_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _bTL_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bTK_), + _bTM_ = caml_call2(Runtime_ocaml_Runtime[83], _bTL_, _bTJ_); + return caml_call2(Runtime_ocaml_Runtime[29], _hs_, _bTM_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ht_, [0], _bTH_, _bTG_); + } + function _bST_(param){ + function _bTp_(param){ + var _bTw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$37); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTw_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_468300) + : caml_call1(Runtime_ocaml_Runtime[31], cst_670900); + var _bTx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$23); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTx_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_800200); + var _bTy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$17); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTy_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_819200); + var _bTz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$16); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTz_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_849500); + var _bTA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$17); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTA_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_881100); + var _bTB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$19); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTB_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_912400); + var _bTC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$40); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTC_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_943900); + var + _bTD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_31100), + _bTE_ = caml_call2 - (Runtime_ocaml_Runtime[104],_bI5_,taux_prise_compte_ressources), - _bI6_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$132), - participation_ressources$0= + (Runtime_ocaml_Runtime[104], + _bTD_, + multiplicateur_majoration_r0), + _bTF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_943900$0); + return caml_call2(Runtime_ocaml_Runtime[93], _bTF_, _bTE_); + } + function _bTq_(param){ + var + _bTr_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bTs_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bTr_), + _bTt_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _bTu_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bTt_), + _bTv_ = caml_call2(Runtime_ocaml_Runtime[83], _bTu_, _bTs_); + return caml_call2(Runtime_ocaml_Runtime[29], _hu_, _bTv_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hv_, [0], _bTq_, _bTp_); + } + function _bSU_(param){ + function _bS__(param){ + var _bTf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$38); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTf_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_487000) + : caml_call1(Runtime_ocaml_Runtime[31], cst_697700); + var _bTg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$24); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTg_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_832200$0); + var _bTh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$18); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTh_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_850900); + var _bTi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$17); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTi_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_883400); + var _bTj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$18); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTj_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_916300); + var _bTk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$20); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTk_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_948800); + var _bTl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$41); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bTl_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_981600); + var + _bTm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_32300), + _bTn_ = caml_call2 - (Runtime_ocaml_Runtime[113],participation_ressources,_bI6_) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$133) - :participation_ressources; + (Runtime_ocaml_Runtime[104], + _bTm_, + multiplicateur_majoration_r0), + _bTo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_981600$0); + return caml_call2(Runtime_ocaml_Runtime[93], _bTo_, _bTn_); + } + function _bS$_(param){ + var + _bTa_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 12, 31), + _bTb_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _bTa_), + _bTc_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bTd_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bTc_), + _bTe_ = caml_call2(Runtime_ocaml_Runtime[83], _bTd_, _bTb_); + return caml_call2(Runtime_ocaml_Runtime[29], _hw_, _bTe_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hx_, [0], _bS$_, _bS__); + } + var + _bSV_ = + [0, + function(param){ + function _bSW_(param){ + var _bS0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$39); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bS0_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_494900) + : caml_call1(Runtime_ocaml_Runtime[31], cst_709000); + var _bS1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$25); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bS1_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_845600); + var _bS2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$19); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bS2_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_864600); + var _bS3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$18); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bS3_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_897700); + var _bS4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$19); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bS4_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_931100); + var _bS5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$21); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bS5_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_964200); + var _bS6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$42); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bS6_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_997500); + var + _bS7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_32800), + _bS8_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bS7_, + multiplicateur_majoration_r0), + _bS9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_997500$0); + return caml_call2(Runtime_ocaml_Runtime[93], _bS9_, _bS8_); + } + function _bSX_(param){ + var + _bSY_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _bSZ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bSY_); + return caml_call2(Runtime_ocaml_Runtime[29], _hy_, _bSZ_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hz_, [0], _bSX_, _bSW_); + }, + _bSU_, + _bST_, + _bSS_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _hA_, _bSV_, _bSR_, _bSQ_); + }, + _bFq_ = function(param){return 1;}, + _bFr_ = + [0, + function(param){ + function _bQs_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bQt_(param){return 0;} + function _bQu_(param){ + function _bSB_(param){ + var _bSK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$40); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSK_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_396000) + : caml_call1(Runtime_ocaml_Runtime[31], cst_567300); + var _bSL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$26); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSL_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_639600); + var _bSM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$20); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSM_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_684900); + var _bSN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$19); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSN_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_738600); + var _bSO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$20); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSO_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_793500); + var _bSP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$22); return caml_call2 - (Runtime_ocaml_Runtime[93], - participation_minimale, - participation_ressources$0)}, - _bID_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ur_,1)}, - _bIE_=caml_call4(Runtime_ocaml_Runtime[63],_us_,[0],_bID_,_bIC_)} - catch(_bI4_) - {_bI4_ = caml_wrap_exception(_bI4_); - if(_bI4_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_uq_]; - throw _bI4_} + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bSP_) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_848400) + : caml_call1(Runtime_ocaml_Runtime[31], cst_903200); + } + function _bSC_(param){ + switch(residence[0]){ + case 0: + var _bSD_ = 1; break; + case 1: + var _bSD_ = 0; break; + case 2: + var _bSD_ = 1; break; + case 3: + var _bSD_ = 1; break; + case 4: + var _bSD_ = 1; break; + case 5: + var _bSD_ = 1; break; + case 6: + var _bSD_ = 0; break; + case 7: + var _bSD_ = 0; break; + default: var _bSD_ = 1; + } + var + _bSE_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), + _bSF_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bSE_), + _bSG_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _bSH_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bSG_), + _bSI_ = caml_call2(Runtime_ocaml_Runtime[83], _bSH_, _bSF_), + _bSJ_ = caml_call2(Runtime_ocaml_Runtime[83], _bSI_, _bSD_); + return caml_call2(Runtime_ocaml_Runtime[29], _hB_, _bSJ_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hC_, [0], _bSC_, _bSB_); + } + function _bQv_(param){ + function _bR1_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_758400); + } + function _bR2_(param){ + var + _bSr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$27), + _bSs_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSr_); + switch(residence[0]){ + case 0: + var _bSt_ = 1; break; + case 1: + var _bSt_ = 0; break; + case 2: + var _bSt_ = 1; break; + case 3: + var _bSt_ = 1; break; + case 4: + var _bSt_ = 1; break; + case 5: + var _bSt_ = 1; break; + case 6: + var _bSt_ = 0; break; + case 7: + var _bSt_ = 0; break; + default: var _bSt_ = 1; + } + var + _bSu_ = caml_call2(Runtime_ocaml_Runtime[83], _bSt_, _bSs_), + _bSv_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _bSw_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bSv_), + _bSx_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bSy_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bSx_), + _bSz_ = caml_call2(Runtime_ocaml_Runtime[83], _bSy_, _bSw_), + _bSA_ = caml_call2(Runtime_ocaml_Runtime[83], _bSz_, _bSu_); + return caml_call2(Runtime_ocaml_Runtime[29], _hD_, _bSA_); + } + var + _bR3_ = + [0, + function(param){ + function _bR4_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_758400$0); + } + function _bR5_(param){ + var + _bSh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$28), + _bSi_ = + caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bSh_); + switch(residence[0]){ + case 0: + var _bSj_ = 1; break; + case 1: + var _bSj_ = 0; break; + case 2: + var _bSj_ = 1; break; + case 3: + var _bSj_ = 1; break; + case 4: + var _bSj_ = 1; break; + case 5: + var _bSj_ = 1; break; + case 6: + var _bSj_ = 0; break; + case 7: + var _bSj_ = 0; break; + default: var _bSj_ = 1; + } + var + _bSk_ = caml_call2(Runtime_ocaml_Runtime[83], _bSj_, _bSi_), + _bSl_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bSm_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bSl_), + _bSn_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bSo_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bSn_), + _bSp_ = caml_call2(Runtime_ocaml_Runtime[83], _bSo_, _bSm_), + _bSq_ = caml_call2(Runtime_ocaml_Runtime[83], _bSp_, _bSk_); + return caml_call2(Runtime_ocaml_Runtime[29], _hE_, _bSq_); + } + var + _bR6_ = + [0, + function(param){ + function _bR7_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_758400$1); + } + function _bR8_(param){ + var + _bR9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$29), + _bR__ = + caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bR9_); + switch(residence[0]){ + case 0: + var _bR$_ = 1; break; + case 1: + var _bR$_ = 0; break; + case 2: + var _bR$_ = 1; break; + case 3: + var _bR$_ = 1; break; + case 4: + var _bR$_ = 1; break; + case 5: + var _bR$_ = 1; break; + case 6: + var _bR$_ = 0; break; + case 7: + var _bR$_ = 0; break; + default: var _bR$_ = 1; + } + var + _bSa_ = caml_call2(Runtime_ocaml_Runtime[83], _bR$_, _bR__), + _bSb_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bSc_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bSb_), + _bSd_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _bSe_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bSd_), + _bSf_ = caml_call2(Runtime_ocaml_Runtime[83], _bSe_, _bSc_), + _bSg_ = caml_call2(Runtime_ocaml_Runtime[83], _bSf_, _bSa_); + return caml_call2(Runtime_ocaml_Runtime[29], _hF_, _bSg_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hG_, [0], _bR8_, _bR7_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _hH_, _bR6_, _bR5_, _bR4_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _hI_, _bR3_, _bR2_, _bR1_); + } + function _bQw_(param){ + function _bRM_(param){ + var _bRV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$41); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRV_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_427400) + : caml_call1(Runtime_ocaml_Runtime[31], cst_612200); + var _bRW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$30); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRW_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_699000); + var _bRX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$21); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRX_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_743200); + var _bRY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$20); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRY_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_785400); + var _bRZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$21); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRZ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_828300); + var _bR0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$23); + return caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bR0_) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_871100) + : caml_call1(Runtime_ocaml_Runtime[31], cst_913900); + } + function _bRN_(param){ + switch(residence[0]){ + case 0: + var _bRO_ = 1; break; + case 1: + var _bRO_ = 0; break; + case 2: + var _bRO_ = 1; break; + case 3: + var _bRO_ = 1; break; + case 4: + var _bRO_ = 1; break; + case 5: + var _bRO_ = 1; break; + case 6: + var _bRO_ = 0; break; + case 7: + var _bRO_ = 0; break; + default: var _bRO_ = 1; + } + var + _bRP_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _bRQ_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bRP_), + _bRR_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), + _bRS_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bRR_), + _bRT_ = caml_call2(Runtime_ocaml_Runtime[83], _bRS_, _bRQ_), + _bRU_ = caml_call2(Runtime_ocaml_Runtime[83], _bRT_, _bRO_); + return caml_call2(Runtime_ocaml_Runtime[29], _hJ_, _bRU_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hK_, [0], _bRN_, _bRM_); + } + function _bQx_(param){ + function _bRA_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_774200); + } + function _bRB_(param){ + var + _bRC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$31), + _bRD_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRC_); + switch(residence[0]){ + case 0: + var _bRE_ = 1; break; + case 1: + var _bRE_ = 0; break; + case 2: + var _bRE_ = 1; break; + case 3: + var _bRE_ = 1; break; + case 4: + var _bRE_ = 1; break; + case 5: + var _bRE_ = 1; break; + case 6: + var _bRE_ = 0; break; + case 7: + var _bRE_ = 0; break; + default: var _bRE_ = 1; + } + var + _bRF_ = caml_call2(Runtime_ocaml_Runtime[83], _bRE_, _bRD_), + _bRG_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bRH_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bRG_), + _bRI_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _bRJ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bRI_), + _bRK_ = caml_call2(Runtime_ocaml_Runtime[83], _bRJ_, _bRH_), + _bRL_ = caml_call2(Runtime_ocaml_Runtime[83], _bRK_, _bRF_); + return caml_call2(Runtime_ocaml_Runtime[29], _hL_, _bRL_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hM_, [0], _bRB_, _bRA_); + } + function _bQy_(param){ + function _bRe_(param){ + var _bRn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$42); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRn_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_487000$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_697700$0); + var _bRo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$32); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRo_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_832200$1); + var _bRp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$22); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRp_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_850900$0); + var _bRq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$21); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRq_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_883400$0); + var _bRr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$22); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRr_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_916300$0); + var _bRs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$24); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRs_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_948800$0); + var _bRt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$43); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRt_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_981600$1); + var + _bRu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$44), + _bRv_ = + caml_call2 + (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bRu_), + _bRw_ = caml_call1(Runtime_ocaml_Runtime[69], _bRv_), + _bRx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35000), + _bRy_ = caml_call2(Runtime_ocaml_Runtime[104], _bRx_, _bRw_), + _bRz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_981600$2); + return caml_call2(Runtime_ocaml_Runtime[93], _bRz_, _bRy_); + } + function _bRf_(param){ + switch(residence[0]){ + case 0: + var _bRg_ = 0; break; + case 1: + var _bRg_ = 0; break; + case 2: + var _bRg_ = 0; break; + case 3: + var _bRg_ = 0; break; + case 4: + var _bRg_ = 0; break; + case 5: + var _bRg_ = 0; break; + case 6: + var _bRg_ = 0; break; + case 7: + var _bRg_ = 1; break; + default: var _bRg_ = 0; + } + var + _bRh_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _bRi_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bRh_), + _bRj_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bRk_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bRj_), + _bRl_ = caml_call2(Runtime_ocaml_Runtime[83], _bRk_, _bRi_), + _bRm_ = caml_call2(Runtime_ocaml_Runtime[83], _bRl_, _bRg_); + return caml_call2(Runtime_ocaml_Runtime[29], _hN_, _bRm_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hO_, [0], _bRf_, _bRe_); + } + function _bQz_(param){ + function _bQ4_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_805100); + } + function _bQ5_(param){ + var + _bQ6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$33), + _bQ7_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQ6_); + switch(residence[0]){ + case 0: + var _bQ8_ = 1; break; + case 1: + var _bQ8_ = 0; break; + case 2: + var _bQ8_ = 1; break; + case 3: + var _bQ8_ = 1; break; + case 4: + var _bQ8_ = 1; break; + case 5: + var _bQ8_ = 1; break; + case 6: + var _bQ8_ = 0; break; + case 7: + var _bQ8_ = 0; break; + default: var _bQ8_ = 1; + } + var + _bQ9_ = caml_call2(Runtime_ocaml_Runtime[83], _bQ8_, _bQ7_), + _bQ__ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _bQ$_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bQ__), + _bRa_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bRb_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bRa_), + _bRc_ = caml_call2(Runtime_ocaml_Runtime[83], _bRb_, _bQ$_), + _bRd_ = caml_call2(Runtime_ocaml_Runtime[83], _bRc_, _bQ9_); + return caml_call2(Runtime_ocaml_Runtime[29], _hP_, _bRd_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hQ_, [0], _bQ5_, _bQ4_); + } + function _bQA_(param){ + function _bQL_(param){ + var _bQR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$43); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQR_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_527200) + : caml_call1(Runtime_ocaml_Runtime[31], cst_755200); + var _bQS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$34); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQS_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_900800); + var _bQT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$23); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQT_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_921100); + var _bQU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$22); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQU_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_956300); + var _bQV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$23); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQV_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_991900); + var _bQW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$25); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQW_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_1027100); + var _bQX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$45); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQX_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_1062600); + var + _bQY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$46), + _bQZ_ = + caml_call2 + (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bQY_), + _bQ0_ = caml_call1(Runtime_ocaml_Runtime[69], _bQZ_), + _bQ1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35000$0), + _bQ2_ = caml_call2(Runtime_ocaml_Runtime[104], _bQ1_, _bQ0_), + _bQ3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1062600$0); + return caml_call2(Runtime_ocaml_Runtime[93], _bQ3_, _bQ2_); + } + function _bQM_(param){ + switch(residence[0]){ + case 0: + var _bQN_ = 0; break; + case 1: + var _bQN_ = 0; break; + case 2: + var _bQN_ = 0; break; + case 3: + var _bQN_ = 0; break; + case 4: + var _bQN_ = 0; break; + case 5: + var _bQN_ = 0; break; + case 6: + var _bQN_ = 0; break; + case 7: + var _bQN_ = 1; break; + default: var _bQN_ = 0; + } + var + _bQO_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _bQP_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bQO_), + _bQQ_ = caml_call2(Runtime_ocaml_Runtime[83], _bQP_, _bQN_); + return caml_call2(Runtime_ocaml_Runtime[29], _hR_, _bQQ_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hS_, [0], _bQM_, _bQL_); + } + var + _bQB_ = + [0, + function(param){ + function _bQC_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_818100); + } + function _bQD_(param){ + var + _bQE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$35), + _bQF_ = + caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bQE_); + switch(residence[0]){ + case 0: + var _bQG_ = 1; break; + case 1: + var _bQG_ = 0; break; + case 2: + var _bQG_ = 1; break; + case 3: + var _bQG_ = 1; break; + case 4: + var _bQG_ = 1; break; + case 5: + var _bQG_ = 1; break; + case 6: + var _bQG_ = 0; break; + case 7: + var _bQG_ = 0; break; + default: var _bQG_ = 1; + } + var + _bQH_ = caml_call2(Runtime_ocaml_Runtime[83], _bQG_, _bQF_), + _bQI_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _bQJ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bQI_), + _bQK_ = caml_call2(Runtime_ocaml_Runtime[83], _bQJ_, _bQH_); + return caml_call2(Runtime_ocaml_Runtime[29], _hT_, _bQK_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hU_, [0], _bQD_, _bQC_); + }, + _bQA_, + _bQz_, + _bQy_, + _bQx_, + _bQw_, + _bQv_, + _bQu_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _hV_, _bQB_, _bQt_, _bQs_); + }], + _bFs_ = caml_call4(Runtime_ocaml_Runtime[63], _hW_, _bFr_, _bFq_, _bFp_); + } + catch(_bQr_){ + var _bFo_ = caml_wrap_exception(_bQr_); + if(_bFo_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _hr_], 1); + throw caml_maybe_attach_backtrace(_bFo_, 0); + } + var + abattement_forfaitaire_d823_17 = + caml_call3 + (Runtime_ocaml_Runtime[28], _hX_, Runtime_ocaml_Runtime[13], _bFs_); + try{ + var + _bFu_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _bFv_ = function(param){return 0;}, + _bFw_ = + function(param){ + function _bQg_(param){ + var _bQn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$44); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQn_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25869) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31664); + var + _bQo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5186), + _bQp_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bQo_, + multiplicateur_majoration_loye), + _bQq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35630); + return caml_call2(Runtime_ocaml_Runtime[93], _bQq_, _bQp_); + } + function _bQh_(param){ + var + _bQi_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bQj_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bQi_), + _bQk_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bQl_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bQk_), + _bQm_ = caml_call2(Runtime_ocaml_Runtime[83], _bQl_, _bQj_); + return caml_call2(Runtime_ocaml_Runtime[29], _hZ_, _bQm_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _h0_, [0], _bQh_, _bQg_); + }, + _bFx_ = + function(param){ + function _bP7_(param){ + var _bQc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$45); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQc_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25978) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31797); + var + _bQd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5208), + _bQe_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bQd_, + multiplicateur_majoration_loye), + _bQf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35780); + return caml_call2(Runtime_ocaml_Runtime[93], _bQf_, _bQe_); + } + function _bP8_(param){ + var + _bP9_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bP__ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bP9_), + _bP$_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bQa_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bP$_), + _bQb_ = caml_call2(Runtime_ocaml_Runtime[83], _bQa_, _bP__); + return caml_call2(Runtime_ocaml_Runtime[29], _h1_, _bQb_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _h2_, [0], _bP8_, _bP7_); + }, + _bFy_ = + [0, + function(param){ + function _bPZ_(param){ + var _bP3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$46); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bP3_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26887) + : caml_call1(Runtime_ocaml_Runtime[31], cst_32910); + var + _bP4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5390), + _bP5_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bP4_, + multiplicateur_majoration_loye), + _bP6_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37032); + return caml_call2(Runtime_ocaml_Runtime[93], _bP6_, _bP5_); + } + function _bP0_(param){ + var + _bP1_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bP2_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bP1_); + return caml_call2(Runtime_ocaml_Runtime[29], _h3_, _bP2_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _h4_, [0], _bP0_, _bPZ_); + }, + _bFx_, + _bFw_], + _bFz_ = caml_call4(Runtime_ocaml_Runtime[63], _h5_, _bFy_, _bFv_, _bFu_); + } + catch(_bPY_){ + var _bFt_ = caml_wrap_exception(_bPY_); + if(_bFt_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _hY_], 1); + throw caml_maybe_attach_backtrace(_bFt_, 0); + } + var + loyer_reference = + caml_call3 + (Runtime_ocaml_Runtime[28], _h6_, Runtime_ocaml_Runtime[13], _bFz_); + try{ + var + _bFB_ = + function(param){ + function _bNV_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bNW_(param){return 0;} + function _bNX_(param){ + function _bPF_(param){ + switch(zone[0]){ + case 0: + var + _bPP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5870), + _bPQ_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bPP_, + multiplicateur_majoration_plaf), + _bPR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40460); + return caml_call2(Runtime_ocaml_Runtime[93], _bPR_, _bPQ_); + case 1: + var + _bPS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5186$0), + _bPT_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bPS_, + multiplicateur_majoration_plaf), + _bPU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35630$0); + return caml_call2(Runtime_ocaml_Runtime[93], _bPU_, _bPT_); + default: + var + _bPV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4723), + _bPW_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bPV_, + multiplicateur_majoration_plaf), + _bPX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_32956); + return caml_call2(Runtime_ocaml_Runtime[93], _bPX_, _bPW_); + } + } + function _bPG_(param){ + var + _bPH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$36), + _bPI_ = + caml_call2 + (Runtime_ocaml_Runtime[126], nombre_personnes_a_charge, _bPH_), + _bPJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bPK_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bPJ_), + _bPL_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bPM_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bPL_), + _bPN_ = caml_call2(Runtime_ocaml_Runtime[83], _bPM_, _bPK_), + _bPO_ = caml_call2(Runtime_ocaml_Runtime[83], _bPN_, _bPI_); + return caml_call2(Runtime_ocaml_Runtime[29], _h8_, _bPO_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _h9_, [0], _bPG_, _bPF_); + } + function _bNY_(param){ + function _bPt_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_35799); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_31664$0); + default: return caml_call1(Runtime_ocaml_Runtime[31], cst_29392); + } + } + function _bPu_(param){ + var + _bPv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$47), + _bPw_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bPv_), + _bPx_ = 0 === situation_familiale_calcul_apl[0] ? 0 : 1, + _bPy_ = caml_call2(Runtime_ocaml_Runtime[83], _bPx_, _bPw_), + _bPz_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bPA_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bPz_), + _bPB_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bPC_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bPB_), + _bPD_ = caml_call2(Runtime_ocaml_Runtime[83], _bPC_, _bPA_), + _bPE_ = caml_call2(Runtime_ocaml_Runtime[83], _bPD_, _bPy_); + return caml_call2(Runtime_ocaml_Runtime[29], _h__, _bPE_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _h$_, [0], _bPu_, _bPt_); + } + function _bNZ_(param){ + function _bPh_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_29682); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_25859); + default: return caml_call1(Runtime_ocaml_Runtime[31], cst_24246); + } + } + function _bPi_(param){ + var + _bPj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$48), + _bPk_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bPj_), + _bPl_ = 0 === situation_familiale_calcul_apl[0] ? 1 : 0, + _bPm_ = caml_call2(Runtime_ocaml_Runtime[83], _bPl_, _bPk_), + _bPn_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bPo_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bPn_), + _bPp_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bPq_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bPp_), + _bPr_ = caml_call2(Runtime_ocaml_Runtime[83], _bPq_, _bPo_), + _bPs_ = caml_call2(Runtime_ocaml_Runtime[83], _bPr_, _bPm_); + return caml_call2(Runtime_ocaml_Runtime[29], _ia_, _bPs_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ib_, [0], _bPi_, _bPh_); + } + function _bN0_(param){ + function _bO0_(param){ + switch(zone[0]){ + case 0: + var + _bO__ = caml_call1(Runtime_ocaml_Runtime[31], cst_5895), + _bO$_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bO__, + multiplicateur_majoration_plaf), + _bPa_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40630); + return caml_call2(Runtime_ocaml_Runtime[93], _bPa_, _bO$_); + case 1: + var + _bPb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5208$0), + _bPc_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bPb_, + multiplicateur_majoration_plaf), + _bPd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35780$0); + return caml_call2(Runtime_ocaml_Runtime[93], _bPd_, _bPc_); + default: + var + _bPe_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4743), + _bPf_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bPe_, + multiplicateur_majoration_plaf), + _bPg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33094); + return caml_call2(Runtime_ocaml_Runtime[93], _bPg_, _bPf_); + } + } + function _bO1_(param){ + var + _bO2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$37), + _bO3_ = + caml_call2 + (Runtime_ocaml_Runtime[126], nombre_personnes_a_charge, _bO2_), + _bO4_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bO5_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bO4_), + _bO6_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bO7_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bO6_), + _bO8_ = caml_call2(Runtime_ocaml_Runtime[83], _bO7_, _bO5_), + _bO9_ = caml_call2(Runtime_ocaml_Runtime[83], _bO8_, _bO3_); + return caml_call2(Runtime_ocaml_Runtime[29], _ic_, _bO9_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _id_, [0], _bO1_, _bO0_); + } + function _bN1_(param){ + function _bOO_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_35949); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_31797$0); + default: return caml_call1(Runtime_ocaml_Runtime[31], cst_29515); + } + } + function _bOP_(param){ + var + _bOQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$49), + _bOR_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bOQ_), + _bOS_ = 0 === situation_familiale_calcul_apl[0] ? 0 : 1, + _bOT_ = caml_call2(Runtime_ocaml_Runtime[83], _bOS_, _bOR_), + _bOU_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bOV_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bOU_), + _bOW_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bOX_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bOW_), + _bOY_ = caml_call2(Runtime_ocaml_Runtime[83], _bOX_, _bOV_), + _bOZ_ = caml_call2(Runtime_ocaml_Runtime[83], _bOY_, _bOT_); + return caml_call2(Runtime_ocaml_Runtime[29], _ie_, _bOZ_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _if_, [0], _bOP_, _bOO_); + } + function _bN2_(param){ + function _bOC_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_29807); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_25978$0); + default: return caml_call1(Runtime_ocaml_Runtime[31], cst_24348); + } + } + function _bOD_(param){ + var + _bOE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$50), + _bOF_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bOE_), + _bOG_ = 0 === situation_familiale_calcul_apl[0] ? 1 : 0, + _bOH_ = caml_call2(Runtime_ocaml_Runtime[83], _bOG_, _bOF_), + _bOI_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bOJ_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bOI_), + _bOK_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bOL_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bOK_), + _bOM_ = caml_call2(Runtime_ocaml_Runtime[83], _bOL_, _bOJ_), + _bON_ = caml_call2(Runtime_ocaml_Runtime[83], _bOM_, _bOH_); + return caml_call2(Runtime_ocaml_Runtime[29], _ig_, _bON_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ih_, [0], _bOD_, _bOC_); + } + function _bN3_(param){ + function _bOm_(param){ + switch(zone[0]){ + case 0: + var + _bOt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6101), + _bOu_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bOt_, + multiplicateur_majoration_plaf), + _bOv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42052); + return caml_call2(Runtime_ocaml_Runtime[93], _bOv_, _bOu_); + case 1: + var + _bOw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5390$0), + _bOx_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bOw_, + multiplicateur_majoration_plaf), + _bOy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37032$0); + return caml_call2(Runtime_ocaml_Runtime[93], _bOy_, _bOx_); + default: + var + _bOz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4909), + _bOA_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bOz_, + multiplicateur_majoration_plaf), + _bOB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34252); + return caml_call2(Runtime_ocaml_Runtime[93], _bOB_, _bOA_); + } + } + function _bOn_(param){ + var + _bOo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$38), + _bOp_ = + caml_call2 + (Runtime_ocaml_Runtime[126], nombre_personnes_a_charge, _bOo_), + _bOq_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bOr_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bOq_), + _bOs_ = caml_call2(Runtime_ocaml_Runtime[83], _bOr_, _bOp_); + return caml_call2(Runtime_ocaml_Runtime[29], _ii_, _bOs_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ij_, [0], _bOn_, _bOm_); + } + function _bN4_(param){ + function _bOd_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_37207); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_32910$0); + default: return caml_call1(Runtime_ocaml_Runtime[31], cst_30548); + } + } + function _bOe_(param){ + var + _bOf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$51), + _bOg_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bOf_), + _bOh_ = 0 === situation_familiale_calcul_apl[0] ? 0 : 1, + _bOi_ = caml_call2(Runtime_ocaml_Runtime[83], _bOh_, _bOg_), + _bOj_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bOk_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bOj_), + _bOl_ = caml_call2(Runtime_ocaml_Runtime[83], _bOk_, _bOi_); + return caml_call2(Runtime_ocaml_Runtime[29], _ik_, _bOl_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _il_, [0], _bOe_, _bOd_); + } + var + _bN5_ = + [0, + function(param){ + function _bN6_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_30850); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_26887$0); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_25200); + } + } + function _bN7_(param){ + var + _bN8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$52), + _bN9_ = + caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bN8_), + _bN__ = 0 === situation_familiale_calcul_apl[0] ? 1 : 0, + _bN$_ = caml_call2(Runtime_ocaml_Runtime[83], _bN__, _bN9_), + _bOa_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bOb_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bOa_), + _bOc_ = caml_call2(Runtime_ocaml_Runtime[83], _bOb_, _bN$_); + return caml_call2(Runtime_ocaml_Runtime[29], _im_, _bOc_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _in_, [0], _bN7_, _bN6_); + }, + _bN4_, + _bN3_, + _bN2_, + _bN1_, + _bN0_, + _bNZ_, + _bNY_, + _bNX_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _io_, _bN5_, _bNW_, _bNV_); + }, + _bFC_ = function(param){return 1;}, + _bFD_ = + function(param){ + function _bM1_(param){ + function _bNv_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bNw_(param){return 0;} + function _bNx_(param){ + function _bNN_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_26714); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_23282); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_21821); + } + } + function _bNO_(param){ + var + _bNP_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bNQ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bNP_), + _bNR_ = + caml_call2 + (Runtime_ocaml_Runtime[83], _bNQ_, logement_est_chambre), + _bNS_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bNT_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bNS_), + _bNU_ = caml_call2(Runtime_ocaml_Runtime[83], _bNT_, _bNR_); + return caml_call2(Runtime_ocaml_Runtime[29], _ip_, _bNU_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iq_, [0], _bNO_, _bNN_); + } + function _bNy_(param){ + function _bNF_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_26826); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_23380); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_21913); + } + } + function _bNG_(param){ + var + _bNH_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bNI_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bNH_), + _bNJ_ = + caml_call2 + (Runtime_ocaml_Runtime[83], _bNI_, logement_est_chambre), + _bNK_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bNL_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bNK_), + _bNM_ = caml_call2(Runtime_ocaml_Runtime[83], _bNL_, _bNJ_); + return caml_call2(Runtime_ocaml_Runtime[29], _ir_, _bNM_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _is_, [0], _bNG_, _bNF_); + } + var + _bNz_ = + [0, + function(param){ + function _bNA_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_27765); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_24198); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_22680); + } + } + function _bNB_(param){ + var + _bNC_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bND_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bNC_), + _bNE_ = + caml_call2 + (Runtime_ocaml_Runtime[83], _bND_, logement_est_chambre); + return caml_call2(Runtime_ocaml_Runtime[29], _it_, _bNE_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iu_, [0], _bNB_, _bNA_); + }, + _bNy_, + _bNx_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _iv_, _bNz_, _bNw_, _bNv_); + } + function _bM2_(param){return 1;} + var + _bM3_ = + [0, + function(param){ + function _bM4_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bM5_(param){return 0;} + function _bM6_(param){ + function _bNm_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_22262); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_19402); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_18185); + } + } + function _bNn_(param){ + var + _bNo_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bNp_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bNo_), + _bNq_ = + caml_call2 + (Runtime_ocaml_Runtime[83], _bNp_, logement_est_chambre), + _bNr_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bNs_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bNr_), + _bNt_ = caml_call2(Runtime_ocaml_Runtime[83], _bNs_, _bNq_), + _bNu_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + _bNt_, + agees_ou_handicap_adultes_hebe); + return caml_call2(Runtime_ocaml_Runtime[29], _iw_, _bNu_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ix_, [0], _bNn_, _bNm_); + } + function _bM7_(param){ + function _bNd_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_22355); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_19484); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_18261); + } + } + function _bNe_(param){ + var + _bNf_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bNg_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bNf_), + _bNh_ = + caml_call2 + (Runtime_ocaml_Runtime[83], _bNg_, logement_est_chambre), + _bNi_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bNj_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bNi_), + _bNk_ = caml_call2(Runtime_ocaml_Runtime[83], _bNj_, _bNh_), + _bNl_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + _bNk_, + agees_ou_handicap_adultes_hebe); + return caml_call2(Runtime_ocaml_Runtime[29], _iy_, _bNl_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iz_, [0], _bNe_, _bNd_); + } + var + _bM8_ = + [0, + function(param){ + function _bM9_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_23138); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_20165); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_18900); + } + } + function _bM__(param){ + var + _bM$_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bNa_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bM$_), + _bNb_ = + caml_call2 + (Runtime_ocaml_Runtime[83], _bNa_, logement_est_chambre), + _bNc_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + _bNb_, + agees_ou_handicap_adultes_hebe); + return caml_call2(Runtime_ocaml_Runtime[29], _iA_, _bNc_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iB_, [0], _bM__, _bM9_); + }, + _bM7_, + _bM6_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _iC_, _bM8_, _bM5_, _bM4_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _iD_, _bM3_, _bM2_, _bM1_); + }, + _bFE_ = + [0, + function(param){ + function _bKP_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bKQ_(param){return 0;} + function _bKR_(param){ + function _bMH_(param){ + switch(zone[0]){ + case 0: + var + _bMS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4403), + _bMT_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bMS_, + multiplicateur_majoration_plaf), + _bMU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_30345); + return caml_call2(Runtime_ocaml_Runtime[93], _bMU_, _bMT_); + case 1: + var + _bMV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3890), + _bMW_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bMV_, + multiplicateur_majoration_plaf), + _bMX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_26723); + return caml_call2(Runtime_ocaml_Runtime[93], _bMX_, _bMW_); + default: + var + _bMY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3542), + _bMZ_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bMY_, + multiplicateur_majoration_plaf), + _bM0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_24717); + return caml_call2(Runtime_ocaml_Runtime[93], _bM0_, _bMZ_); + } + } + function _bMI_(param){ + var + _bMJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$39), + _bMK_ = + caml_call2 + (Runtime_ocaml_Runtime[126], nombre_personnes_a_charge, _bMJ_), + _bML_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bMM_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bML_), + _bMN_ = caml_call2(Runtime_ocaml_Runtime[83], _bMM_, colocation), + _bMO_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bMP_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bMO_), + _bMQ_ = caml_call2(Runtime_ocaml_Runtime[83], _bMP_, _bMN_), + _bMR_ = caml_call2(Runtime_ocaml_Runtime[83], _bMQ_, _bMK_); + return caml_call2(Runtime_ocaml_Runtime[29], _iE_, _bMR_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iF_, [0], _bMI_, _bMH_); + } + function _bKS_(param){ + function _bMu_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_26849); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_23748); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_22044); + } + } + function _bMv_(param){ + var + _bMw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$53), + _bMx_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bMw_), + _bMy_ = 0 === situation_familiale_calcul_apl[0] ? 0 : 1, + _bMz_ = caml_call2(Runtime_ocaml_Runtime[83], _bMy_, _bMx_), + _bMA_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bMB_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bMA_), + _bMC_ = caml_call2(Runtime_ocaml_Runtime[83], _bMB_, colocation), + _bMD_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bME_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bMD_), + _bMF_ = caml_call2(Runtime_ocaml_Runtime[83], _bME_, _bMC_), + _bMG_ = caml_call2(Runtime_ocaml_Runtime[83], _bMF_, _bMz_); + return caml_call2(Runtime_ocaml_Runtime[29], _iG_, _bMG_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iH_, [0], _bMv_, _bMu_); + } + function _bKT_(param){ + function _bMh_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_22262$0); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_19402$0); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_18185$0); + } + } + function _bMi_(param){ + var + _bMj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$54), + _bMk_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bMj_), + _bMl_ = 0 === situation_familiale_calcul_apl[0] ? 1 : 0, + _bMm_ = caml_call2(Runtime_ocaml_Runtime[83], _bMl_, _bMk_), + _bMn_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bMo_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bMn_), + _bMp_ = caml_call2(Runtime_ocaml_Runtime[83], _bMo_, colocation), + _bMq_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bMr_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bMq_), + _bMs_ = caml_call2(Runtime_ocaml_Runtime[83], _bMr_, _bMp_), + _bMt_ = caml_call2(Runtime_ocaml_Runtime[83], _bMs_, _bMm_); + return caml_call2(Runtime_ocaml_Runtime[29], _iI_, _bMt_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iJ_, [0], _bMi_, _bMh_); + } + function _bKU_(param){ + function _bLZ_(param){ + switch(zone[0]){ + case 0: + var + _bL__ = caml_call1(Runtime_ocaml_Runtime[31], cst_4421), + _bL$_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bL__, + multiplicateur_majoration_plaf), + _bMa_ = caml_call1(Runtime_ocaml_Runtime[31], cst_30473); + return caml_call2(Runtime_ocaml_Runtime[93], _bMa_, _bL$_); + case 1: + var + _bMb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3906), + _bMc_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bMb_, + multiplicateur_majoration_plaf), + _bMd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_26835); + return caml_call2(Runtime_ocaml_Runtime[93], _bMd_, _bMc_); + default: + var + _bMe_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3557), + _bMf_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bMe_, + multiplicateur_majoration_plaf), + _bMg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_24821); + return caml_call2(Runtime_ocaml_Runtime[93], _bMg_, _bMf_); + } + } + function _bL0_(param){ + var + _bL1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$40), + _bL2_ = + caml_call2 + (Runtime_ocaml_Runtime[126], nombre_personnes_a_charge, _bL1_), + _bL3_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bL4_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bL3_), + _bL5_ = caml_call2(Runtime_ocaml_Runtime[83], _bL4_, colocation), + _bL6_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bL7_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bL6_), + _bL8_ = caml_call2(Runtime_ocaml_Runtime[83], _bL7_, _bL5_), + _bL9_ = caml_call2(Runtime_ocaml_Runtime[83], _bL8_, _bL2_); + return caml_call2(Runtime_ocaml_Runtime[29], _iK_, _bL9_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iL_, [0], _bL0_, _bLZ_); + } + function _bKV_(param){ + function _bLM_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_26962); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_23848); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_22136); + } + } + function _bLN_(param){ + var + _bLO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$55), + _bLP_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bLO_), + _bLQ_ = 0 === situation_familiale_calcul_apl[0] ? 0 : 1, + _bLR_ = caml_call2(Runtime_ocaml_Runtime[83], _bLQ_, _bLP_), + _bLS_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bLT_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bLS_), + _bLU_ = caml_call2(Runtime_ocaml_Runtime[83], _bLT_, colocation), + _bLV_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bLW_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bLV_), + _bLX_ = caml_call2(Runtime_ocaml_Runtime[83], _bLW_, _bLU_), + _bLY_ = caml_call2(Runtime_ocaml_Runtime[83], _bLX_, _bLR_); + return caml_call2(Runtime_ocaml_Runtime[29], _iM_, _bLY_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iN_, [0], _bLN_, _bLM_); + } + function _bKW_(param){ + function _bLz_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_22355$0); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_19484$0); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_18261$0); + } + } + function _bLA_(param){ + var + _bLB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$56), + _bLC_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bLB_), + _bLD_ = 0 === situation_familiale_calcul_apl[0] ? 1 : 0, + _bLE_ = caml_call2(Runtime_ocaml_Runtime[83], _bLD_, _bLC_), + _bLF_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bLG_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bLF_), + _bLH_ = caml_call2(Runtime_ocaml_Runtime[83], _bLG_, colocation), + _bLI_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bLJ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bLI_), + _bLK_ = caml_call2(Runtime_ocaml_Runtime[83], _bLJ_, _bLH_), + _bLL_ = caml_call2(Runtime_ocaml_Runtime[83], _bLK_, _bLE_); + return caml_call2(Runtime_ocaml_Runtime[29], _iO_, _bLL_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iP_, [0], _bLA_, _bLz_); + } + function _bKX_(param){ + function _bLi_(param){ + switch(zone[0]){ + case 0: + var + _bLq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4576), + _bLr_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bLq_, + multiplicateur_majoration_plaf), + _bLs_ = caml_call1(Runtime_ocaml_Runtime[31], cst_31539); + return caml_call2(Runtime_ocaml_Runtime[93], _bLs_, _bLr_); + case 1: + var + _bLt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4043), + _bLu_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bLt_, + multiplicateur_majoration_plaf), + _bLv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_27774); + return caml_call2(Runtime_ocaml_Runtime[93], _bLv_, _bLu_); + default: + var + _bLw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3682), + _bLx_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bLw_, + multiplicateur_majoration_plaf), + _bLy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_25689); + return caml_call2(Runtime_ocaml_Runtime[93], _bLy_, _bLx_); + } + } + function _bLj_(param){ + var + _bLk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$41), + _bLl_ = + caml_call2 + (Runtime_ocaml_Runtime[126], nombre_personnes_a_charge, _bLk_), + _bLm_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bLn_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bLm_), + _bLo_ = caml_call2(Runtime_ocaml_Runtime[83], _bLn_, colocation), + _bLp_ = caml_call2(Runtime_ocaml_Runtime[83], _bLo_, _bLl_); + return caml_call2(Runtime_ocaml_Runtime[29], _iQ_, _bLp_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iR_, [0], _bLj_, _bLi_); + } + function _bKY_(param){ + function _bK__(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_27905); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_24683); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_22911); + } + } + function _bK$_(param){ + var + _bLa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$57), + _bLb_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bLa_), + _bLc_ = 0 === situation_familiale_calcul_apl[0] ? 0 : 1, + _bLd_ = caml_call2(Runtime_ocaml_Runtime[83], _bLc_, _bLb_), + _bLe_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bLf_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bLe_), + _bLg_ = caml_call2(Runtime_ocaml_Runtime[83], _bLf_, colocation), + _bLh_ = caml_call2(Runtime_ocaml_Runtime[83], _bLg_, _bLd_); + return caml_call2(Runtime_ocaml_Runtime[29], _iS_, _bLh_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iT_, [0], _bK$_, _bK__); + } + var + _bKZ_ = + [0, + function(param){ + function _bK0_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_23138$0); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_20165$0); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_18900$0); + } + } + function _bK1_(param){ + var + _bK2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$58), + _bK3_ = + caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bK2_), + _bK4_ = 0 === situation_familiale_calcul_apl[0] ? 1 : 0, + _bK5_ = caml_call2(Runtime_ocaml_Runtime[83], _bK4_, _bK3_), + _bK6_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bK7_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bK6_), + _bK8_ = + caml_call2(Runtime_ocaml_Runtime[83], _bK7_, colocation), + _bK9_ = caml_call2(Runtime_ocaml_Runtime[83], _bK8_, _bK5_); + return caml_call2(Runtime_ocaml_Runtime[29], _iU_, _bK9_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iV_, [0], _bK1_, _bK0_); + }, + _bKY_, + _bKX_, + _bKW_, + _bKV_, + _bKU_, + _bKT_, + _bKS_, + _bKR_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _iW_, _bKZ_, _bKQ_, _bKP_); + }, + _bFD_], + _bFF_ = caml_call4(Runtime_ocaml_Runtime[63], _iX_, _bFE_, _bFC_, _bFB_); + } + catch(_bKO_){ + var _bFA_ = caml_wrap_exception(_bKO_); + if(_bFA_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _h7_], 1); + throw caml_maybe_attach_backtrace(_bFA_, 0); + } + var + plafond_loyer_d823_16_2 = + caml_call3 + (Runtime_ocaml_Runtime[28], _iY_, Runtime_ocaml_Runtime[13], _bFF_); + try{ + var + _bFH_ = + function(param){ + switch(zone[0]){ + case 0: + var _bKL_ = caml_call1(Runtime_ocaml_Runtime[39], cst_4$24); + return caml_call2 + (Runtime_ocaml_Runtime[104], plafond_loyer_d823_16_2, _bKL_); + case 1: + var _bKM_ = caml_call1(Runtime_ocaml_Runtime[39], cst_3_1); + return caml_call2 + (Runtime_ocaml_Runtime[104], plafond_loyer_d823_16_2, _bKM_); + default: + var _bKN_ = caml_call1(Runtime_ocaml_Runtime[39], cst_3_1$0); + return caml_call2 + (Runtime_ocaml_Runtime[104], plafond_loyer_d823_16_2, _bKN_); + } + }, + _bFI_ = + function(param){ + var + _bKJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bKK_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bKJ_); + return caml_call2(Runtime_ocaml_Runtime[29], _i0_, _bKK_); + }, + _bFJ_ = caml_call4(Runtime_ocaml_Runtime[63], _i1_, [0], _bFI_, _bFH_); + } + catch(_bKI_){ + var _bFG_ = caml_wrap_exception(_bKI_); + if(_bFG_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _iZ_], 1); + throw caml_maybe_attach_backtrace(_bFG_, 0); + } + var + plafond_suppression_d823_16 = + caml_call3 + (Runtime_ocaml_Runtime[28], _i2_, Runtime_ocaml_Runtime[13], _bFJ_); + try{ + var + _bFL_ = + function(param){ + switch(zone[0]){ + case 0: + var _bKF_ = caml_call1(Runtime_ocaml_Runtime[39], cst_3_4); + return caml_call2 + (Runtime_ocaml_Runtime[104], plafond_loyer_d823_16_2, _bKF_); + case 1: + var _bKG_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2_5$2); + return caml_call2 + (Runtime_ocaml_Runtime[104], plafond_loyer_d823_16_2, _bKG_); + default: + var _bKH_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2_5$3); + return caml_call2 + (Runtime_ocaml_Runtime[104], plafond_loyer_d823_16_2, _bKH_); + } + }, + _bFM_ = + function(param){ + var + _bKD_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bKE_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bKD_); + return caml_call2(Runtime_ocaml_Runtime[29], _i4_, _bKE_); + }, + _bFN_ = caml_call4(Runtime_ocaml_Runtime[63], _i5_, [0], _bFM_, _bFL_); + } + catch(_bKC_){ + var _bFK_ = caml_wrap_exception(_bKC_); + if(_bFK_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _i3_], 1); + throw caml_maybe_attach_backtrace(_bFK_, 0); + } + var + plafond_degressivite_d823_16 = + caml_call3 + (Runtime_ocaml_Runtime[28], _i6_, Runtime_ocaml_Runtime[13], _bFN_); + try{ + var + _bFP_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[123], + loyer_principal_avec_reduction, + plafond_loyer_d823_16_2) + ? plafond_loyer_d823_16_2 + : loyer_principal_avec_reduction; + }, + _bFQ_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _i8_, 1); + }, + _bFR_ = caml_call4(Runtime_ocaml_Runtime[63], _i9_, [0], _bFQ_, _bFP_); + } + catch(_bKB_){ + var _bFO_ = caml_wrap_exception(_bKB_); + if(_bFO_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _i7_], 1); + throw caml_maybe_attach_backtrace(_bFO_, 0); + } + var + loyer_eligible = + caml_call3 + (Runtime_ocaml_Runtime[28], _i__, Runtime_ocaml_Runtime[13], _bFR_); + function _bFS_(aide_finale){ + try{ var - participation_personnelle= - caml_call3 - (Runtime_ocaml_Runtime[28],_ut_,Runtime_ocaml_Runtime[13],_bIE_); - try - {var - _bIF_= - function(param) - {var - _bI2_= + _bKq_ = + function(param){ + if + (caml_call2 + (Runtime_ocaml_Runtime[123], + loyer_principal_avec_reduction, + plafond_suppression_d823_16)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$59); + if + (! + caml_call2 + (Runtime_ocaml_Runtime[123], + loyer_principal_avec_reduction, + plafond_degressivite_d823_16)) + return aide_finale; + var + _bKx_ = + caml_call2 + (Runtime_ocaml_Runtime[98], + plafond_suppression_d823_16, + plafond_degressivite_d823_16), + _bKy_ = + caml_call2 + (Runtime_ocaml_Runtime[98], + loyer_principal_avec_reduction, + plafond_degressivite_d823_16), + _bKz_ = caml_call2(Runtime_ocaml_Runtime[108], _bKy_, _bKx_), + _bKA_ = caml_call2(Runtime_ocaml_Runtime[104], aide_finale, _bKz_); + return caml_call2(Runtime_ocaml_Runtime[98], aide_finale, _bKA_); + }, + _bKr_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ja_, 1); + }, + _bKs_ = + [0, + function(param){ + function _bKv_(param){return aide_finale;} + function _bKw_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], + _jb_, + beneficiaire_aide_adulte_ou_en); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _jc_, [0], _bKw_, _bKv_); + }], + _bKt_ = + caml_call4(Runtime_ocaml_Runtime[63], _jd_, _bKs_, _bKr_, _bKq_); + return _bKt_; + } + catch(_bKu_){ + var _bKp_ = caml_wrap_exception(_bKu_); + if(_bKp_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _i$_], 1); + throw caml_maybe_attach_backtrace(_bKp_, 0); + } + } + var + traitement_aide_finale_diminue = + caml_call3 + (Runtime_ocaml_Runtime[28], _je_, Runtime_ocaml_Runtime[10], _bFS_); + try{ + var + _bFU_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _bFV_ = function(param){return 0;}, + _bFW_ = + function(param){ + function _bKc_(param){ + var + _bKj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3524), + _bKk_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_085), + _bKl_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + loyer_eligible, + montant_forfaitaire_charges_d8), + _bKm_ = caml_call2(Runtime_ocaml_Runtime[104], _bKl_, _bKk_); + if(! caml_call2(Runtime_ocaml_Runtime[128], _bKm_, _bKj_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_3524$0); + var + _bKn_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_085$0), + _bKo_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + loyer_eligible, + montant_forfaitaire_charges_d8); + return caml_call2(Runtime_ocaml_Runtime[104], _bKo_, _bKn_); + } + function _bKd_(param){ + var + _bKe_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bKf_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bKe_), + _bKg_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bKh_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bKg_), + _bKi_ = caml_call2(Runtime_ocaml_Runtime[83], _bKh_, _bKf_); + return caml_call2(Runtime_ocaml_Runtime[29], _jg_, _bKi_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _jh_, [0], _bKd_, _bKc_); + }, + _bFX_ = + function(param){ + function _bJ1_(param){ + var + _bJ8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3539), + _bJ9_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_085$1), + _bJ__ = + caml_call2 + (Runtime_ocaml_Runtime[93], + loyer_eligible, + montant_forfaitaire_charges_d8), + _bJ$_ = caml_call2(Runtime_ocaml_Runtime[104], _bJ__, _bJ9_); + if(! caml_call2(Runtime_ocaml_Runtime[128], _bJ$_, _bJ8_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_3539$0); + var + _bKa_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_085$2), + _bKb_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + loyer_eligible, + montant_forfaitaire_charges_d8); + return caml_call2(Runtime_ocaml_Runtime[104], _bKb_, _bKa_); + } + function _bJ2_(param){ + var + _bJ3_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bJ4_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bJ3_), + _bJ5_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bJ6_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bJ5_), + _bJ7_ = caml_call2(Runtime_ocaml_Runtime[83], _bJ6_, _bJ4_); + return caml_call2(Runtime_ocaml_Runtime[29], _ji_, _bJ7_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _jj_, [0], _bJ2_, _bJ1_); + }, + _bFY_ = + [0, + function(param){ + function _bJR_(param){ + var + _bJV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3663), + _bJW_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_085$3), + _bJX_ = caml_call2 (Runtime_ocaml_Runtime[93], loyer_eligible, montant_forfaitaire_charges_d8), - aide_finale= + _bJY_ = caml_call2(Runtime_ocaml_Runtime[104], _bJX_, _bJW_); + if(! caml_call2(Runtime_ocaml_Runtime[128], _bJY_, _bJV_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_3663$0); + var + _bJZ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_085$4), + _bJ0_ = caml_call2 - (Runtime_ocaml_Runtime[98],_bI2_,participation_personnelle), - _bI3_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$134); - return caml_call2(Runtime_ocaml_Runtime[113],aide_finale,_bI3_) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$135) - :aide_finale}, - _bIG_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_uv_,1)}, - _bIH_=caml_call4(Runtime_ocaml_Runtime[63],_uw_,[0],_bIG_,_bIF_)} - catch(_bI1_) - {_bI1_ = caml_wrap_exception(_bI1_); - if(_bI1_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_uu_]; - throw _bI1_} + (Runtime_ocaml_Runtime[93], + loyer_eligible, + montant_forfaitaire_charges_d8); + return caml_call2(Runtime_ocaml_Runtime[104], _bJ0_, _bJZ_); + } + function _bJS_(param){ + var + _bJT_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bJU_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bJT_); + return caml_call2(Runtime_ocaml_Runtime[29], _jk_, _bJU_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _jl_, [0], _bJS_, _bJR_); + }, + _bFX_, + _bFW_], + _bFZ_ = caml_call4(Runtime_ocaml_Runtime[63], _jm_, _bFY_, _bFV_, _bFU_); + } + catch(_bJQ_){ + var _bFT_ = caml_wrap_exception(_bJQ_); + if(_bFT_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jf_], 1); + throw caml_maybe_attach_backtrace(_bFT_, 0); + } + var + participation_minimale = + caml_call3 + (Runtime_ocaml_Runtime[28], _jn_, Runtime_ocaml_Runtime[13], _bFZ_); + try{ + var + _bF1_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _bF2_ = function(param){return 0;}, + _bF3_ = + [0, + function(param){ + function _bJh_(param){ + var + _bJL_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$0), + _bJM_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$1), + _bJN_ = + caml_call2 + (Runtime_ocaml_Runtime[108], loyer_eligible, loyer_reference), + _bJO_ = caml_call2(Runtime_ocaml_Runtime[103], _bJN_, _bJM_), + _bJP_ = caml_call1(Runtime_ocaml_Runtime[78], _bJO_); + return caml_call2(Runtime_ocaml_Runtime[107], _bJP_, _bJL_); + } + function _bJi_(param){ + var + _bJJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bJK_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bJJ_); + return caml_call2(Runtime_ocaml_Runtime[29], _jp_, _bJK_); + } + var + _bJj_ = + [0, + function(param){ + function _bJk_(param){ + var + _bJE_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$2), + _bJF_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$3), + _bJG_ = + caml_call2 + (Runtime_ocaml_Runtime[108], + loyer_eligible, + loyer_reference), + _bJH_ = caml_call2(Runtime_ocaml_Runtime[103], _bJG_, _bJF_), + _bJI_ = caml_call1(Runtime_ocaml_Runtime[78], _bJH_); + return caml_call2(Runtime_ocaml_Runtime[107], _bJI_, _bJE_); + } + function _bJl_(param){ + var + _bJz_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bJA_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bJz_), + _bJB_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bJC_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bJB_), + _bJD_ = caml_call2(Runtime_ocaml_Runtime[83], _bJC_, _bJA_); + return caml_call2(Runtime_ocaml_Runtime[29], _jq_, _bJD_); + } + var + _bJm_ = + [0, + function(param){ + function _bJn_(param){ + var + _bJu_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$4), + _bJv_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$5), + _bJw_ = + caml_call2 + (Runtime_ocaml_Runtime[108], + loyer_eligible, + loyer_reference), + _bJx_ = caml_call2(Runtime_ocaml_Runtime[103], _bJw_, _bJv_), + _bJy_ = caml_call1(Runtime_ocaml_Runtime[78], _bJx_); + return caml_call2(Runtime_ocaml_Runtime[107], _bJy_, _bJu_); + } + function _bJo_(param){ + var + _bJp_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bJq_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bJp_), + _bJr_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bJs_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bJr_), + _bJt_ = caml_call2(Runtime_ocaml_Runtime[83], _bJs_, _bJq_); + return caml_call2(Runtime_ocaml_Runtime[29], _jr_, _bJt_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _js_, [0], _bJo_, _bJn_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _jt_, _bJm_, _bJl_, _bJk_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _ju_, _bJj_, _bJi_, _bJh_); + }], + _bF4_ = caml_call4(Runtime_ocaml_Runtime[63], _jv_, _bF3_, _bF2_, _bF1_); + } + catch(_bJg_){ + var _bF0_ = caml_wrap_exception(_bJg_); + if(_bF0_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jo_], 1); + throw caml_maybe_attach_backtrace(_bF0_, 0); + } + var + rapport_loyers = + caml_call3 + (Runtime_ocaml_Runtime[28], _jw_, Runtime_ocaml_Runtime[15], _bF4_); + function _bF5_(aide_finale){ + try{ var - aide_finale_formule= - caml_call3 - (Runtime_ocaml_Runtime[28],_ux_,Runtime_ocaml_Runtime[13],_bIH_); - try - {var - _bII_=caml_call1(Runtime_ocaml_Runtime[39],cst_2_5$4), - _bIJ_= - caml_call2(Runtime_ocaml_Runtime[104],plafond_loyer_d823_16_2,_bII_), - _bIK_= - caml_call2 - (Runtime_ocaml_Runtime[128],plafond_degressivite_d823_16,_bIJ_)} - catch(_bI0_) - {_bI0_ = caml_wrap_exception(_bI0_); - if(_bI0_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_uy_]; - throw _bI0_} - if(_bIK_) - {try - {var - _bIL_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_98$0), - _bIM_=caml_call2(Runtime_ocaml_Runtime[117],fraction_l832_3,_bIL_), - _bIN_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_9), - _bIO_=caml_call2(Runtime_ocaml_Runtime[127],fraction_l832_3,_bIN_), - _bIP_=caml_call2(Runtime_ocaml_Runtime[83],_bIO_,_bIM_)} - catch(_bIZ_) - {_bIZ_ = caml_wrap_exception(_bIZ_); - if(_bIZ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_uz_]; - throw _bIZ_} - if(_bIP_) - {try - {var - _bIQ_= + _bI9_ = + function(param){ + var + _bJb_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _jy_, + Runtime_ocaml_Runtime[13], + aide_finale), + _bJc_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _jz_, + traitement_aide_finale_diminue), + _bJb_), + _bJd_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _jA_, + Runtime_ocaml_Runtime[13], + _bJc_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _jB_, _bJd_), + _bJe_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$60), + _bJf_ = + caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale$0, + montant_forfaitaire_d823_16); + return caml_call2(Runtime_ocaml_Runtime[128], _bJf_, _bJe_) + ? caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale$0, + montant_forfaitaire_d823_16) + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$61); + }, + _bI__ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _jC_, 1); + }, + _bI$_ = caml_call4(Runtime_ocaml_Runtime[63], _jD_, [0], _bI__, _bI9_); + return _bI$_; + } + catch(_bJa_){ + var _bI8_ = caml_wrap_exception(_bJa_); + if(_bI8_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jx_], 1); + throw caml_maybe_attach_backtrace(_bI8_, 0); + } + } + var + traitement_aide_finale_minorat = + caml_call3 + (Runtime_ocaml_Runtime[28], _jE_, Runtime_ocaml_Runtime[10], _bF5_); + try{ + var + _bF7_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _bF8_ = function(param){return 0;}, + _bF9_ = + [0, + function(param){ + function _bH4_(param){ + var _bIS_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_45); + if(caml_call2(Runtime_ocaml_Runtime[112], rapport_loyers, _bIS_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$62); + var + _bIT_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75), + _bIU_ = + caml_call2(Runtime_ocaml_Runtime[112], rapport_loyers, _bIT_), + _bIV_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_45$0), + _bIW_ = + caml_call2(Runtime_ocaml_Runtime[127], rapport_loyers, _bIV_); + if(caml_call2(Runtime_ocaml_Runtime[83], _bIW_, _bIU_)){ + var + _bIX_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045), + _bIY_ = + caml_call2(Runtime_ocaml_Runtime[97], rapport_loyers, _bIX_), + _bIZ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045$0); + return caml_call2(Runtime_ocaml_Runtime[103], _bIZ_, _bIY_); + } + var _bI0_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$0); + if(! caml_call2(Runtime_ocaml_Runtime[127], rapport_loyers, _bI0_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$63); + var + _bI1_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$1), + _bI2_ = + caml_call2(Runtime_ocaml_Runtime[97], rapport_loyers, _bI1_), + _bI3_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0068), + _bI4_ = caml_call2(Runtime_ocaml_Runtime[103], _bI3_, _bI2_), + _bI5_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_3), + _bI6_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045$1), + _bI7_ = caml_call2(Runtime_ocaml_Runtime[103], _bI6_, _bI5_); + return caml_call2(Runtime_ocaml_Runtime[92], _bI7_, _bI4_); + } + function _bH5_(param){ + var + _bIQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bIR_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bIQ_); + return caml_call2(Runtime_ocaml_Runtime[29], _jG_, _bIR_); + } + var + _bH6_ = + [0, + function(param){ + function _bH7_(param){ + var _bIA_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_45$1); + if + (caml_call2 + (Runtime_ocaml_Runtime[112], rapport_loyers, _bIA_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$64); + var + _bIB_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$2), + _bIC_ = + caml_call2 + (Runtime_ocaml_Runtime[112], rapport_loyers, _bIB_), + _bID_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_45$2), + _bIE_ = + caml_call2 + (Runtime_ocaml_Runtime[127], rapport_loyers, _bID_); + if(caml_call2(Runtime_ocaml_Runtime[83], _bIE_, _bIC_)){ + var + _bIF_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045$2), + _bIG_ = + caml_call2(Runtime_ocaml_Runtime[97], rapport_loyers, _bIF_), + _bIH_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045$3); + return caml_call2(Runtime_ocaml_Runtime[103], _bIH_, _bIG_); + } + var _bII_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$3); + if + (! + caml_call2 + (Runtime_ocaml_Runtime[127], rapport_loyers, _bII_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$65); + var + _bIJ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$4), + _bIK_ = + caml_call2(Runtime_ocaml_Runtime[97], rapport_loyers, _bIJ_), + _bIL_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0068$0), + _bIM_ = caml_call2(Runtime_ocaml_Runtime[103], _bIL_, _bIK_), + _bIN_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_3$0), + _bIO_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045$4), + _bIP_ = caml_call2(Runtime_ocaml_Runtime[103], _bIO_, _bIN_); + return caml_call2(Runtime_ocaml_Runtime[92], _bIP_, _bIM_); + } + function _bH8_(param){ + var + _bIv_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bIw_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bIv_), + _bIx_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bIy_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bIx_), + _bIz_ = caml_call2(Runtime_ocaml_Runtime[83], _bIy_, _bIw_); + return caml_call2(Runtime_ocaml_Runtime[29], _jH_, _bIz_); + } + var + _bH9_ = + [0, + function(param){ + function _bH__(param){ + var + _bIf_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_45$3); + if + (caml_call2 + (Runtime_ocaml_Runtime[112], rapport_loyers, _bIf_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$66); + var + _bIg_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$5), + _bIh_ = + caml_call2 + (Runtime_ocaml_Runtime[112], rapport_loyers, _bIg_), + _bIi_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_45$4), + _bIj_ = + caml_call2 + (Runtime_ocaml_Runtime[127], rapport_loyers, _bIi_); + if(caml_call2(Runtime_ocaml_Runtime[83], _bIj_, _bIh_)){ + var + _bIk_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045$5), + _bIl_ = + caml_call2(Runtime_ocaml_Runtime[97], rapport_loyers, _bIk_), + _bIm_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045$6); + return caml_call2(Runtime_ocaml_Runtime[103], _bIm_, _bIl_); + } + var + _bIn_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$6); + if + (! + caml_call2 + (Runtime_ocaml_Runtime[127], rapport_loyers, _bIn_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$67); + var + _bIo_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$7), + _bIp_ = + caml_call2(Runtime_ocaml_Runtime[97], rapport_loyers, _bIo_), + _bIq_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0068$1), + _bIr_ = caml_call2(Runtime_ocaml_Runtime[103], _bIq_, _bIp_), + _bIs_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_3$1), + _bIt_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045$7), + _bIu_ = caml_call2(Runtime_ocaml_Runtime[103], _bIt_, _bIs_); + return caml_call2(Runtime_ocaml_Runtime[92], _bIu_, _bIr_); + } + function _bH$_(param){ + var + _bIa_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bIb_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bIa_), + _bIc_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bId_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bIc_), + _bIe_ = caml_call2(Runtime_ocaml_Runtime[83], _bId_, _bIb_); + return caml_call2(Runtime_ocaml_Runtime[29], _jI_, _bIe_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _jJ_, [0], _bH$_, _bH__); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _jK_, _bH9_, _bH8_, _bH7_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _jL_, _bH6_, _bH5_, _bH4_); + }], + _bF__ = caml_call4(Runtime_ocaml_Runtime[63], _jM_, _bF9_, _bF8_, _bF7_); + } + catch(_bH3_){ + var _bF6_ = caml_wrap_exception(_bH3_); + if(_bF6_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jF_], 1); + throw caml_maybe_attach_backtrace(_bF6_, 0); + } + var + taux_loyer_eligible_formule = + caml_call3 + (Runtime_ocaml_Runtime[28], _jN_, Runtime_ocaml_Runtime[15], _bF__); + function _bF$_(aide_finale){ + try{ + var + _bHO_ = + function(param){ + var + _bHS_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _jP_, + Runtime_ocaml_Runtime[13], + aide_finale), + _bHT_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _jQ_, + traitement_aide_finale_minorat), + _bHS_), + _bHU_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _jR_, + Runtime_ocaml_Runtime[13], + _bHT_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _jS_, _bHU_), + _bHV_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _jT_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _bHW_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _jU_, + contributions_sociales_dot_mon), + _bHV_), + _bHX_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _jV_, + Runtime_ocaml_Runtime[13], + _bHW_), + crds = caml_call2(Runtime_ocaml_Runtime[27], _jW_, _bHX_), + _bHY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_50), + _bHZ_ = caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, crds), + _bH0_ = caml_call2(Runtime_ocaml_Runtime[98], _bHZ_, _bHY_), + aide_finale_moins_crds_arrondi = + caml_call1(Runtime_ocaml_Runtime[77], _bH0_), + _bH1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$68), + _bH2_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds); + return caml_call2(Runtime_ocaml_Runtime[128], _bH2_, _bH1_) + ? caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds) + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$69); + }, + _bHP_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _jX_, 1); + }, + _bHQ_ = caml_call4(Runtime_ocaml_Runtime[63], _jY_, [0], _bHP_, _bHO_); + return _bHQ_; + } + catch(_bHR_){ + var _bHN_ = caml_wrap_exception(_bHR_); + if(_bHN_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jO_], 1); + throw caml_maybe_attach_backtrace(_bHN_, 0); + } + } + var + traitement_aide_finale_contrib = + caml_call3 + (Runtime_ocaml_Runtime[28], _jZ_, Runtime_ocaml_Runtime[10], _bF$_); + try{ + var + _bGb_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _bGc_ = function(param){return 0;}, + _bGd_ = + [0, + function(param){ + function _bHh_(param){ + var + _bHJ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100000), + _bHK_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100000$0), + _bHL_ = caml_call2 - (Runtime_ocaml_Runtime[83],logement_est_chambre,colocation), - _bIR_=caml_call1(Runtime_ocaml_Runtime[67],_bIQ_)} - catch(_bIY_) - {_bIY_ = caml_wrap_exception(_bIY_); - if(_bIY_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_uA_]; - throw _bIY_} - if(_bIR_) - {try - {var - _bIS_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$136), - _bIT_= + (Runtime_ocaml_Runtime[103], + taux_loyer_eligible_formule, + _bHK_), + _bHM_ = caml_call1(Runtime_ocaml_Runtime[78], _bHL_); + return caml_call2(Runtime_ocaml_Runtime[107], _bHM_, _bHJ_); + } + function _bHi_(param){ + var + _bHH_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bHI_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bHH_); + return caml_call2(Runtime_ocaml_Runtime[29], _j1_, _bHI_); + } + var + _bHj_ = + [0, + function(param){ + function _bHk_(param){ + var + _bHD_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100000$1), + _bHE_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100000$2), + _bHF_ = + caml_call2 + (Runtime_ocaml_Runtime[103], + taux_loyer_eligible_formule, + _bHE_), + _bHG_ = caml_call1(Runtime_ocaml_Runtime[78], _bHF_); + return caml_call2(Runtime_ocaml_Runtime[107], _bHG_, _bHD_); + } + function _bHl_(param){ + var + _bHy_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bHz_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bHy_), + _bHA_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bHB_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bHA_), + _bHC_ = caml_call2(Runtime_ocaml_Runtime[83], _bHB_, _bHz_); + return caml_call2(Runtime_ocaml_Runtime[29], _j2_, _bHC_); + } + var + _bHm_ = + [0, + function(param){ + function _bHn_(param){ + var + _bHu_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100000$3), + _bHv_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100000$4), + _bHw_ = + caml_call2 + (Runtime_ocaml_Runtime[103], + taux_loyer_eligible_formule, + _bHv_), + _bHx_ = caml_call1(Runtime_ocaml_Runtime[78], _bHw_); + return caml_call2(Runtime_ocaml_Runtime[107], _bHx_, _bHu_); + } + function _bHo_(param){ + var + _bHp_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bHq_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bHp_), + _bHr_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bHs_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bHr_), + _bHt_ = caml_call2(Runtime_ocaml_Runtime[83], _bHs_, _bHq_); + return caml_call2(Runtime_ocaml_Runtime[29], _j3_, _bHt_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _j4_, [0], _bHo_, _bHn_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _j5_, _bHm_, _bHl_, _bHk_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _j6_, _bHj_, _bHi_, _bHh_); + }], + _bGe_ = caml_call4(Runtime_ocaml_Runtime[63], _j7_, _bGd_, _bGc_, _bGb_); + } + catch(_bHg_){ + var _bGa_ = caml_wrap_exception(_bHg_); + if(_bGa_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _j0_], 1); + throw caml_maybe_attach_backtrace(_bGa_, 0); + } + var + taux_loyer_eligible_taux_arron = + caml_call3 + (Runtime_ocaml_Runtime[28], _j8_, Runtime_ocaml_Runtime[15], _bGe_); + function _bGf_(aide_finale){ + try{ + var + _bG7_ = + function(param){ + var + _bG$_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _j__, + Runtime_ocaml_Runtime[13], + aide_finale), + _bHa_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _j$_, + traitement_aide_finale_contrib), + _bG$_), + _bHb_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _ka_, + Runtime_ocaml_Runtime[13], + _bHa_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _kb_, _bHb_), + _bHc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$70), + _bHd_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + reduction_loyer_solidarite, + fraction_l832_3), + _bHe_ = caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, _bHd_); + if(! caml_call2(Runtime_ocaml_Runtime[128], _bHe_, _bHc_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$71); + var + _bHf_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + reduction_loyer_solidarite, + fraction_l832_3); + return caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, _bHf_); + }, + _bG8_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _kc_, 1); + }, + _bG9_ = caml_call4(Runtime_ocaml_Runtime[63], _kd_, [0], _bG8_, _bG7_); + return _bG9_; + } + catch(_bG__){ + var _bG6_ = caml_wrap_exception(_bG__); + if(_bG6_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _j9_], 1); + throw caml_maybe_attach_backtrace(_bG6_, 0); + } + } + var + traitement_aide_finale_reducti = + caml_call3 + (Runtime_ocaml_Runtime[28], _ke_, Runtime_ocaml_Runtime[10], _bGf_); + try{ + var + _bGh_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[92], + taux_composition_familiale, + taux_loyer_eligible_taux_arron); + }, + _bGi_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _kg_, 1); + }, + _bGj_ = caml_call4(Runtime_ocaml_Runtime[63], _kh_, [0], _bGi_, _bGh_); + } + catch(_bG5_){ + var _bGg_ = caml_wrap_exception(_bG5_); + if(_bGg_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kf_], 1); + throw caml_maybe_attach_backtrace(_bGg_, 0); + } + var + taux_prise_compte_ressources = + caml_call3 + (Runtime_ocaml_Runtime[28], _ki_, Runtime_ocaml_Runtime[15], _bGj_); + function _bGk_(aide_finale){ + try{ + var + _bGY_ = + function(param){ + var + _bG2_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _kk_, + Runtime_ocaml_Runtime[13], + aide_finale), + _bG3_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _kl_, + traitement_aide_finale_reducti), + _bG2_), + _bG4_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _km_, + Runtime_ocaml_Runtime[13], + _bG3_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _kn_, _bG4_); + return caml_call2 + (Runtime_ocaml_Runtime[113], + aide_finale$0, + montant_minimal_aide_d823_16) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$72) + : aide_finale$0; + }, + _bGZ_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ko_, 1); + }, + _bG0_ = caml_call4(Runtime_ocaml_Runtime[63], _kp_, [0], _bGZ_, _bGY_); + return _bG0_; + } + catch(_bG1_){ + var _bGX_ = caml_wrap_exception(_bG1_); + if(_bGX_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kj_], 1); + throw caml_maybe_attach_backtrace(_bGX_, 0); + } + } + var + traitement_aide_finale_montant = + caml_call3 + (Runtime_ocaml_Runtime[28], _kq_, Runtime_ocaml_Runtime[10], _bGk_); + try{ + var + _bGm_ = + function(param){ + var + _bGV_ = + caml_call2 + (Runtime_ocaml_Runtime[98], + ressources_menage_arrondies, + abattement_forfaitaire_d823_17), + participation_ressources = + caml_call2 + (Runtime_ocaml_Runtime[104], _bGV_, taux_prise_compte_ressources), + _bGW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$73), + participation_ressources$0 = + caml_call2 + (Runtime_ocaml_Runtime[113], participation_ressources, _bGW_) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$74) + : participation_ressources; + return caml_call2 + (Runtime_ocaml_Runtime[93], + participation_minimale, + participation_ressources$0); + }, + _bGn_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ks_, 1); + }, + _bGo_ = caml_call4(Runtime_ocaml_Runtime[63], _kt_, [0], _bGn_, _bGm_); + } + catch(_bGU_){ + var _bGl_ = caml_wrap_exception(_bGU_); + if(_bGl_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kr_], 1); + throw caml_maybe_attach_backtrace(_bGl_, 0); + } + var + participation_personnelle = + caml_call3 + (Runtime_ocaml_Runtime[28], _ku_, Runtime_ocaml_Runtime[13], _bGo_); + try{ + var + _bGq_ = + function(param){ + var + _bGS_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + loyer_eligible, + montant_forfaitaire_charges_d8), + aide_finale = + caml_call2 + (Runtime_ocaml_Runtime[98], _bGS_, participation_personnelle), + _bGT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$75); + return caml_call2(Runtime_ocaml_Runtime[113], aide_finale, _bGT_) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$76) + : aide_finale; + }, + _bGr_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _kw_, 1); + }, + _bGs_ = caml_call4(Runtime_ocaml_Runtime[63], _kx_, [0], _bGr_, _bGq_); + } + catch(_bGR_){ + var _bGp_ = caml_wrap_exception(_bGR_); + if(_bGp_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kv_], 1); + throw caml_maybe_attach_backtrace(_bGp_, 0); + } + var + aide_finale_formule = + caml_call3 + (Runtime_ocaml_Runtime[28], _ky_, Runtime_ocaml_Runtime[13], _bGs_); + try{ + var + _bGu_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2_5$4), + _bGv_ = + caml_call2(Runtime_ocaml_Runtime[104], plafond_loyer_d823_16_2, _bGu_), + _bGw_ = + caml_call2 + (Runtime_ocaml_Runtime[128], plafond_degressivite_d823_16, _bGv_); + } + catch(_bGQ_){ + var _bGt_ = caml_wrap_exception(_bGQ_); + if(_bGt_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kz_], 1); + throw caml_maybe_attach_backtrace(_bGt_, 0); + } + if(! _bGw_) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _kI_], 1); + try{ + var + _bGy_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_98$0), + _bGz_ = caml_call2(Runtime_ocaml_Runtime[117], fraction_l832_3, _bGy_), + _bGA_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_9), + _bGB_ = caml_call2(Runtime_ocaml_Runtime[127], fraction_l832_3, _bGA_), + _bGC_ = caml_call2(Runtime_ocaml_Runtime[83], _bGB_, _bGz_); + } + catch(_bGP_){ + var _bGx_ = caml_wrap_exception(_bGP_); + if(_bGx_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kA_], 1); + throw caml_maybe_attach_backtrace(_bGx_, 0); + } + if(! _bGC_) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _kH_], 1); + try{ + var + _bGE_ = + caml_call2 + (Runtime_ocaml_Runtime[83], logement_est_chambre, colocation), + _bGF_ = caml_call1(Runtime_ocaml_Runtime[67], _bGE_); + } + catch(_bGO_){ + var _bGD_ = caml_wrap_exception(_bGO_); + if(_bGD_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kB_], 1); + throw caml_maybe_attach_backtrace(_bGD_, 0); + } + if(! _bGF_) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _kG_], 1); + try{ + var + _bGH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$77), + _bGI_ = + caml_call2 + (Runtime_ocaml_Runtime[126], nombre_personnes_a_charge, _bGH_); + } + catch(_bGN_){ + var _bGG_ = caml_wrap_exception(_bGN_); + if(_bGG_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kC_], 1); + throw caml_maybe_attach_backtrace(_bGG_, 0); + } + if(! _bGI_) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _kF_], 1); + try{ + var + _bGK_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bGL_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bGK_); + } + catch(_bGM_){ + var _bGJ_ = caml_wrap_exception(_bGM_); + if(_bGJ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kD_], 1); + throw caml_maybe_attach_backtrace(_bGJ_, 0); + } + if(_bGL_) + return [0, + montant_forfaitaire_charges_d8, + plafond_loyer_d823_16_2, + participation_minimale, + taux_composition_familiale, + participation_personnelle, + aide_finale_formule, + traitement_aide_finale_montant]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _kE_], 1); + } + function calcul_aide_personnalisee_loge$0(calcul_aide_personnalisee_loge){ + var + type_logement_foyer = calcul_aide_personnalisee_loge[1], + date_conventionnement = calcul_aide_personnalisee_loge[2], + ressources_menage_arrondies = calcul_aide_personnalisee_loge[3], + nombre_personnes_a_charge = calcul_aide_personnalisee_loge[4], + situation_familiale_calcul_apl = calcul_aide_personnalisee_loge[5], + zone = calcul_aide_personnalisee_loge[6], + date_courante = calcul_aide_personnalisee_loge[7], + redevance = calcul_aide_personnalisee_loge[8], + residence = calcul_aide_personnalisee_loge[9], + condition_2_du_832_25 = calcul_aide_personnalisee_loge[10], + limitation_majoration_personne = calcul_aide_personnalisee_loge[11], + n_nombre_parts_d832_25 = calcul_aide_personnalisee_loge[12]; + try{ + var + _by2_ = + function(param){ + function _bEz_(param){return 0;} + function _bEA_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _kK_, 1); + } + return caml_call4(Runtime_ocaml_Runtime[63], _kL_, [0], _bEA_, _bEz_); + }, + _by3_ = function(param){return 1;}, + _by4_ = + [0, + function(param){ + return caml_call1(limitation_majoration_personne, 0); + }], + _by5_ = caml_call4(Runtime_ocaml_Runtime[63], _kM_, _by4_, _by3_, _by2_); + } + catch(_bEy_){ + var _by1_ = caml_wrap_exception(_bEy_); + if(_by1_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kJ_], 1); + throw caml_maybe_attach_backtrace(_by1_, 0); + } + var + limitation_majoration_personne$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _kN_, Runtime_ocaml_Runtime[12], _by5_); + try{ + var + _by7_ = + function(param){ + function _bEu_(param){ + switch(type_logement_foyer[0]){ + case 0: + return 0; + case 1: + var _bEw_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 12, 31); + return caml_call2 + (Runtime_ocaml_Runtime[130], date_conventionnement, _bEw_); + case 2: + var _bEx_ = caml_call3(Runtime_ocaml_Runtime[57], 1990, 9, 30); + return caml_call2 + (Runtime_ocaml_Runtime[130], date_conventionnement, _bEx_); + default: return 0; + } + } + function _bEv_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _kP_, 1); + } + return caml_call4(Runtime_ocaml_Runtime[63], _kQ_, [0], _bEv_, _bEu_); + }, + _by8_ = function(param){return 1;}, + _by9_ = + [0, function(param){return caml_call1(condition_2_du_832_25, 0);}], + _by__ = caml_call4(Runtime_ocaml_Runtime[63], _kR_, _by9_, _by8_, _by7_); + } + catch(_bEt_){ + var _by6_ = caml_wrap_exception(_bEt_); + if(_by6_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kO_], 1); + throw caml_maybe_attach_backtrace(_by6_, 0); + } + var + condition_2_du_832_25$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _kS_, Runtime_ocaml_Runtime[12], _by__); + try{ + var + _bza_ = function(param){return date_courante;}, + _bzb_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _kU_, 1); + }, + _bzc_ = caml_call4(Runtime_ocaml_Runtime[63], _kV_, [0], _bzb_, _bza_), + contributions_sociales_dot_dat = + caml_call3 + (Runtime_ocaml_Runtime[28], _kW_, Runtime_ocaml_Runtime[16], _bzc_); + } + catch(_bEs_){ + var _by$_ = caml_wrap_exception(_bEs_); + if(_by$_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kT_], 1); + throw caml_maybe_attach_backtrace(_by$_, 0); + } + var + _bzd_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _kX_, contributions_sociales_aides_p), + [0, contributions_sociales_dot_dat]), + result = caml_call2(Runtime_ocaml_Runtime[27], _kY_, _bzd_), + contributions_sociales_dot_mon = result[1]; + try{ + var + _bzf_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1000$1); + }, + _bzg_ = + function(param){ + var + _bEq_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bEr_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bEq_); + return caml_call2(Runtime_ocaml_Runtime[29], _k0_, _bEr_); + }, + _bzh_ = caml_call4(Runtime_ocaml_Runtime[63], _k1_, [0], _bzg_, _bzf_); + } + catch(_bEp_){ + var _bze_ = caml_wrap_exception(_bEp_); + if(_bze_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kZ_], 1); + throw caml_maybe_attach_backtrace(_bze_, 0); + } + var + montant_minimal_aide_d823_24 = + caml_call3 + (Runtime_ocaml_Runtime[28], _k2_, Runtime_ocaml_Runtime[13], _bzh_); + try{ + var + _bzj_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_500$0); + }, + _bzk_ = + function(param){ + var + _bEn_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bEo_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bEn_); + return caml_call2(Runtime_ocaml_Runtime[29], _k4_, _bEo_); + }, + _bzl_ = caml_call4(Runtime_ocaml_Runtime[63], _k5_, [0], _bzk_, _bzj_); + } + catch(_bEm_){ + var _bzi_ = caml_wrap_exception(_bEm_); + if(_bzi_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _k3_], 1); + throw caml_maybe_attach_backtrace(_bzi_, 0); + } + var + montant_forfaitaire_d832_24 = + caml_call3 + (Runtime_ocaml_Runtime[28], _k6_, Runtime_ocaml_Runtime[13], _bzl_); + try{ + var + _bzn_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _bzo_ = function(param){return 0;}, + _bzp_ = + function(param){ + function _bDN_(param){ + switch(zone[0]){ + case 0: + var _bDU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$78); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDU_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_44443) + : caml_call1(Runtime_ocaml_Runtime[31], cst_52101); + var _bDV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$42); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDV_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_55555); + var _bDW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$24); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDW_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_59454); + var _bDX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$23); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDX_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_63369); + var + _bDY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$25), + _bDZ_ = caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_bIS_)} - catch(_bIX_) - {_bIX_ = caml_wrap_exception(_bIX_); - if(_bIX_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_uB_]; - throw _bIX_} - if(_bIT_) - {try - {var - _bIU_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bIV_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bIU_)} - catch(_bIW_) - {_bIW_ = caml_wrap_exception(_bIW_); - if(_bIW_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_uC_]; - throw _bIW_} - if(_bIV_) - return [0, - montant_forfaitaire_charges_d8, - plafond_loyer_d823_16_2, - participation_minimale, - taux_composition_familiale, - participation_personnelle, - aide_finale_formule, - traitement_aide_finale_montant]; - throw [0,Runtime_ocaml_Runtime[3],_uD_]} - throw [0,Runtime_ocaml_Runtime[3],_uE_]} - throw [0,Runtime_ocaml_Runtime[3],_uF_]} - throw [0,Runtime_ocaml_Runtime[3],_uG_]} - throw [0,Runtime_ocaml_Runtime[3],_uH_]} - function calcul_aide_personnalisee_loge$0(calcul_aide_personnalisee_loge) - {var - type_logement_foyer=calcul_aide_personnalisee_loge[1], - date_conventionnement=calcul_aide_personnalisee_loge[2], - ressources_menage_arrondies=calcul_aide_personnalisee_loge[3], - nombre_personnes_a_charge=calcul_aide_personnalisee_loge[4], - situation_familiale_calcul_apl=calcul_aide_personnalisee_loge[5], - zone=calcul_aide_personnalisee_loge[6], - date_courante=calcul_aide_personnalisee_loge[7], - redevance=calcul_aide_personnalisee_loge[8], - residence=calcul_aide_personnalisee_loge[9], - condition_2_du_832_25=calcul_aide_personnalisee_loge[10], - limitation_majoration_personne=calcul_aide_personnalisee_loge[11], - n_nombre_parts_d832_25=calcul_aide_personnalisee_loge[12]; - try - {var - _bCx_= - function(param) - {function _bHs_(param){return 0} - function _bHt_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_uJ_,1)} - return caml_call4(Runtime_ocaml_Runtime[63],_uK_,[0],_bHt_,_bHs_)}, - _bCy_=function(param){return 1}, - _bCz_= - [0, - function(param) - {return caml_call1(limitation_majoration_personne,0)}], - _bCA_=caml_call4(Runtime_ocaml_Runtime[63],_uL_,_bCz_,_bCy_,_bCx_)} - catch(_bHr_) - {_bHr_ = caml_wrap_exception(_bHr_); - if(_bHr_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_uI_]; - throw _bHr_} - var - limitation_majoration_personne$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_uM_,Runtime_ocaml_Runtime[12],_bCA_); - try - {var - _bCB_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_121726)}, - _bCC_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_uO_,1)}, - _bCD_=caml_call4(Runtime_ocaml_Runtime[63],_uP_,[0],_bCC_,_bCB_)} - catch(_bHq_) - {_bHq_ = caml_wrap_exception(_bHq_); - if(_bHq_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_uN_]; - throw _bHq_} - var - coefficient_r_d832_25= - caml_call3 - (Runtime_ocaml_Runtime[28],_uQ_,Runtime_ocaml_Runtime[13],_bCD_); - try - {var - _bCE_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_500$0)}, - _bCF_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_uS_,1)}, - _bCG_=caml_call4(Runtime_ocaml_Runtime[63],_uT_,[0],_bCF_,_bCE_)} - catch(_bHp_) - {_bHp_ = caml_wrap_exception(_bHp_); - if(_bHp_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_uR_]; - throw _bHp_} - var - montant_forfaitaire_d832_24= - caml_call3 - (Runtime_ocaml_Runtime[28],_uU_,Runtime_ocaml_Runtime[13],_bCG_); - try - {var - _bCH_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1000$1)}, - _bCI_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_uW_,1)}, - _bCJ_=caml_call4(Runtime_ocaml_Runtime[63],_uX_,[0],_bCI_,_bCH_)} - catch(_bHo_) - {_bHo_ = caml_wrap_exception(_bHo_); - if(_bHo_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_uV_]; - throw _bHo_} - var - montant_minimal_aide_d823_24= - caml_call3 - (Runtime_ocaml_Runtime[28],_uY_,Runtime_ocaml_Runtime[13],_bCJ_); - try - {var - _bCK_= - function(param) - {function _bHk_(param) - {switch(type_logement_foyer[0]) - {case 0:return 0; - case 1: - var _bHm_=caml_call3(Runtime_ocaml_Runtime[57],1994,12,31); - return caml_call2 - (Runtime_ocaml_Runtime[130],date_conventionnement,_bHm_); - case 2: - var _bHn_=caml_call3(Runtime_ocaml_Runtime[57],1990,9,30); - return caml_call2 - (Runtime_ocaml_Runtime[130],date_conventionnement,_bHn_); - default:return 0}} - function _bHl_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_u0_,1)} - return caml_call4(Runtime_ocaml_Runtime[63],_u1_,[0],_bHl_,_bHk_)}, - _bCL_=function(param){return 1}, - _bCM_=[0,function(param){return caml_call1(condition_2_du_832_25,0)}], - _bCN_=caml_call4(Runtime_ocaml_Runtime[63],_u2_,_bCM_,_bCL_,_bCK_)} - catch(_bHj_) - {_bHj_ = caml_wrap_exception(_bHj_); - if(_bHj_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_uZ_]; - throw _bHj_} - var - condition_2_du_832_25$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_u3_,Runtime_ocaml_Runtime[12],_bCN_); - try - {var - _bCO_=function(param){return date_courante}, - _bCP_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_u5_,1)}, - _bCQ_=caml_call4(Runtime_ocaml_Runtime[63],_u6_,[0],_bCP_,_bCO_), - contributions_sociales_dot_dat= - caml_call3 - (Runtime_ocaml_Runtime[28],_u7_,Runtime_ocaml_Runtime[16],_bCQ_)} - catch(_bHi_) - {_bHi_ = caml_wrap_exception(_bHi_); - if(_bHi_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_u4_]; - throw _bHi_} - var - _bCR_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_u8_,contributions_sociales_aides_p), - [0,contributions_sociales_dot_dat]), - result=caml_call2(Runtime_ocaml_Runtime[27],_u9_,_bCR_), - contributions_sociales_dot_mon=result[1]; - try - {var - _bCS_=function(param){throw Runtime_ocaml_Runtime[2]}, - _bCT_=function(param){return 0}, - _bCU_= - function(param) - {function _bGJ_(param) - {switch(zone[0]) - {case 0: - var _bGQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$137); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bGQ_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_44443) - :caml_call1(Runtime_ocaml_Runtime[31],cst_52101); - var _bGR_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$80); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bGR_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_55555); - var _bGS_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$37); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bGS_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_59454); - var _bGT_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$22); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bGT_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_63369); - var - _bGU_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$20), - _bGV_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bGU_), - _bGW_=caml_call1(Runtime_ocaml_Runtime[69],_bGV_), - _bGX_=caml_call1(Runtime_ocaml_Runtime[31],cst_7089), - _bGY_=caml_call2(Runtime_ocaml_Runtime[104],_bGX_,_bGW_), - _bGZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_68350); - return caml_call2(Runtime_ocaml_Runtime[93],_bGZ_,_bGY_); - case 1: - var _bG0_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$138); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bG0_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_40643) - :caml_call1(Runtime_ocaml_Runtime[31],cst_47433); - var _bG1_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$81); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bG1_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_50575); - var _bG2_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$38); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bG2_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_54138); - var _bG3_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$23); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bG3_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_57687); - var - _bG4_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$21), - _bG5_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bG4_), - _bG6_=caml_call1(Runtime_ocaml_Runtime[69],_bG5_), - _bG7_=caml_call1(Runtime_ocaml_Runtime[31],cst_6407), - _bG8_=caml_call2(Runtime_ocaml_Runtime[104],_bG7_,_bG6_), - _bG9_=caml_call1(Runtime_ocaml_Runtime[31],cst_61469); - return caml_call2(Runtime_ocaml_Runtime[93],_bG9_,_bG8_); - default: - var _bG__=caml_call1(Runtime_ocaml_Runtime[46],cst_0$139); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bG__)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_38578) - :caml_call1(Runtime_ocaml_Runtime[31],cst_44869); - var _bG$_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$82); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bG$_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_47602); - var _bHa_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$39); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bHa_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_50744); - var _bHb_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$24); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bHb_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_53884); - var - _bHc_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$22), - _bHd_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bHc_), - _bHe_=caml_call1(Runtime_ocaml_Runtime[69],_bHd_), - _bHf_=caml_call1(Runtime_ocaml_Runtime[31],cst_5946), - _bHg_=caml_call2(Runtime_ocaml_Runtime[104],_bHf_,_bHe_), - _bHh_=caml_call1(Runtime_ocaml_Runtime[31],cst_57416); - return caml_call2(Runtime_ocaml_Runtime[93],_bHh_,_bHg_)}} - function _bGK_(param) - {var - _bGL_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bGM_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bGL_), - _bGN_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bGO_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bGN_), - _bGP_=caml_call2(Runtime_ocaml_Runtime[83],_bGO_,_bGM_); - return caml_call2(Runtime_ocaml_Runtime[29],_u$_,_bGP_)} - return caml_call4(Runtime_ocaml_Runtime[63],_va_,[0],_bGK_,_bGJ_)}, - _bCV_= - function(param) - {function _bF__(param) - {switch(zone[0]) - {case 0: - var _bGf_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$140); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bGf_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_44630) - :caml_call1(Runtime_ocaml_Runtime[31],cst_52321); - var _bGg_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$83); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bGg_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_55788); - var _bGh_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$40); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bGh_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_59704); - var _bGi_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$25); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bGi_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_63635); - var - _bGj_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$23), - _bGk_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bGj_), - _bGl_=caml_call1(Runtime_ocaml_Runtime[69],_bGk_), - _bGm_=caml_call1(Runtime_ocaml_Runtime[31],cst_7119), - _bGn_=caml_call2(Runtime_ocaml_Runtime[104],_bGm_,_bGl_), - _bGo_=caml_call1(Runtime_ocaml_Runtime[31],cst_68637); - return caml_call2(Runtime_ocaml_Runtime[93],_bGo_,_bGn_); - case 1: - var _bGp_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$141); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bGp_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_40814) - :caml_call1(Runtime_ocaml_Runtime[31],cst_47632); - var _bGq_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$84); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bGq_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_50787); - var _bGr_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$41); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bGr_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_54365); - var _bGs_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$26); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bGs_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_57929); - var - _bGt_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$24), - _bGu_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bGt_), - _bGv_=caml_call1(Runtime_ocaml_Runtime[69],_bGu_), - _bGw_=caml_call1(Runtime_ocaml_Runtime[31],cst_6434), - _bGx_=caml_call2(Runtime_ocaml_Runtime[104],_bGw_,_bGv_), - _bGy_=caml_call1(Runtime_ocaml_Runtime[31],cst_61727); - return caml_call2(Runtime_ocaml_Runtime[93],_bGy_,_bGx_); - default: - var _bGz_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$142); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bGz_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_38740) - :caml_call1(Runtime_ocaml_Runtime[31],cst_45057); - var _bGA_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$85); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bGA_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_47802); - var _bGB_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$42); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bGB_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_50957); - var _bGC_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$27); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bGC_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_54110); - var - _bGD_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$25), - _bGE_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bGD_), - _bGF_=caml_call1(Runtime_ocaml_Runtime[69],_bGE_), - _bGG_=caml_call1(Runtime_ocaml_Runtime[31],cst_5971), - _bGH_=caml_call2(Runtime_ocaml_Runtime[104],_bGG_,_bGF_), - _bGI_=caml_call1(Runtime_ocaml_Runtime[31],cst_57657); - return caml_call2(Runtime_ocaml_Runtime[93],_bGI_,_bGH_)}} - function _bF$_(param) - {var - _bGa_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bGb_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bGa_), - _bGc_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bGd_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bGc_), - _bGe_=caml_call2(Runtime_ocaml_Runtime[83],_bGd_,_bGb_); - return caml_call2(Runtime_ocaml_Runtime[29],_vb_,_bGe_)} - return caml_call4(Runtime_ocaml_Runtime[63],_vc_,[0],_bF$_,_bF__)}, - _bCW_= - [0, - function(param) - {function _bFC_(param) - {switch(zone[0]) - {case 0: - var _bFG_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$143); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bFG_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_46192) - :caml_call1(Runtime_ocaml_Runtime[31],cst_54152); - var _bFH_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$86); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bFH_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_57741); - var _bFI_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$43); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bFI_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_61794); - var _bFJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$28); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bFJ_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_65862); - var - _bFK_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$26), - _bFL_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bFK_), - _bFM_=caml_call1(Runtime_ocaml_Runtime[69],_bFL_), - _bFN_=caml_call1(Runtime_ocaml_Runtime[31],cst_7368), - _bFO_=caml_call2(Runtime_ocaml_Runtime[104],_bFN_,_bFM_), - _bFP_=caml_call1(Runtime_ocaml_Runtime[31],cst_71039); - return caml_call2(Runtime_ocaml_Runtime[93],_bFP_,_bFO_); - case 1: - var _bFQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$144); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bFQ_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_42242) - :caml_call1(Runtime_ocaml_Runtime[31],cst_49299); - var _bFR_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$87); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bFR_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_52565); - var _bFS_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$44); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bFS_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_56268); - var _bFT_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$29); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bFT_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_59957); - var - _bFU_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$27), - _bFV_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bFU_), - _bFW_=caml_call1(Runtime_ocaml_Runtime[69],_bFV_), - _bFX_=caml_call1(Runtime_ocaml_Runtime[31],cst_6659), - _bFY_=caml_call2(Runtime_ocaml_Runtime[104],_bFX_,_bFW_), - _bFZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_63887); - return caml_call2(Runtime_ocaml_Runtime[93],_bFZ_,_bFY_); - default: - var _bF0_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$145); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bF0_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_40096) - :caml_call1(Runtime_ocaml_Runtime[31],cst_46634); - var _bF1_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$88); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bF1_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_49475); - var _bF2_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$45); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bF2_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_52740); - var _bF3_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$30); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bF3_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_56004); - var - _bF4_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$28), - _bF5_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bF4_), - _bF6_=caml_call1(Runtime_ocaml_Runtime[69],_bF5_), - _bF7_=caml_call1(Runtime_ocaml_Runtime[31],cst_6180), - _bF8_=caml_call2(Runtime_ocaml_Runtime[104],_bF7_,_bF6_), - _bF9_=caml_call1(Runtime_ocaml_Runtime[31],cst_59675); - return caml_call2(Runtime_ocaml_Runtime[93],_bF9_,_bF8_)}} - function _bFD_(param) - {var - _bFE_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bFF_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bFE_); - return caml_call2(Runtime_ocaml_Runtime[29],_vd_,_bFF_)} - return caml_call4(Runtime_ocaml_Runtime[63],_ve_,[0],_bFD_,_bFC_)}, - _bCV_, - _bCU_], - _bCX_=caml_call4(Runtime_ocaml_Runtime[63],_vf_,_bCW_,_bCT_,_bCS_)} - catch(_bFB_) - {_bFB_ = caml_wrap_exception(_bFB_); - if(_bFB_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_u__]; - throw _bFB_} - var - plafond_equivalence_loyer_elig= - caml_call3 - (Runtime_ocaml_Runtime[28],_vg_,Runtime_ocaml_Runtime[13],_bCX_); - function _bCY_(aide_finale) - {try - {var - _bFv_= - function(param) - {var - _bFz_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$146), - _bFA_= + (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bDY_), + _bD0_ = caml_call1(Runtime_ocaml_Runtime[69], _bDZ_), + _bD1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7089), + _bD2_ = caml_call2(Runtime_ocaml_Runtime[104], _bD1_, _bD0_), + _bD3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_68350); + return caml_call2(Runtime_ocaml_Runtime[93], _bD3_, _bD2_); + case 1: + var _bD4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$79); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bD4_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_40643) + : caml_call1(Runtime_ocaml_Runtime[31], cst_47433); + var _bD5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$43); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bD5_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_50575); + var _bD6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$25); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bD6_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_54138); + var _bD7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$24); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bD7_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_57687); + var + _bD8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$26), + _bD9_ = caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale, - montant_forfaitaire_d832_24); - return caml_call2(Runtime_ocaml_Runtime[128],_bFA_,_bFz_) - ?caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale, - montant_forfaitaire_d832_24) - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$147)}, - _bFw_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_vi_,1)}, - _bFx_=caml_call4(Runtime_ocaml_Runtime[63],_vj_,[0],_bFw_,_bFv_); - return _bFx_} - catch(_bFy_) - {_bFy_ = caml_wrap_exception(_bFy_); - if(_bFy_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_vh_]; - throw _bFy_}} - var - traitement_aide_finale_minorat= + (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bD8_), + _bD__ = caml_call1(Runtime_ocaml_Runtime[69], _bD9_), + _bD$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6407), + _bEa_ = caml_call2(Runtime_ocaml_Runtime[104], _bD$_, _bD__), + _bEb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_61469); + return caml_call2(Runtime_ocaml_Runtime[93], _bEb_, _bEa_); + default: + var _bEc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$80); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bEc_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_38578) + : caml_call1(Runtime_ocaml_Runtime[31], cst_44869); + var _bEd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$44); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bEd_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_47602); + var _bEe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$26); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bEe_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_50744); + var _bEf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$25); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bEf_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_53884); + var + _bEg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$27), + _bEh_ = + caml_call2 + (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bEg_), + _bEi_ = caml_call1(Runtime_ocaml_Runtime[69], _bEh_), + _bEj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5946), + _bEk_ = caml_call2(Runtime_ocaml_Runtime[104], _bEj_, _bEi_), + _bEl_ = caml_call1(Runtime_ocaml_Runtime[31], cst_57416); + return caml_call2(Runtime_ocaml_Runtime[93], _bEl_, _bEk_); + } + } + function _bDO_(param){ + var + _bDP_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bDQ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bDP_), + _bDR_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bDS_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bDR_), + _bDT_ = caml_call2(Runtime_ocaml_Runtime[83], _bDS_, _bDQ_); + return caml_call2(Runtime_ocaml_Runtime[29], _k8_, _bDT_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _k9_, [0], _bDO_, _bDN_); + }, + _bzq_ = + function(param){ + function _bDc_(param){ + switch(zone[0]){ + case 0: + var _bDj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$81); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDj_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_44630) + : caml_call1(Runtime_ocaml_Runtime[31], cst_52321); + var _bDk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$45); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDk_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_55788); + var _bDl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$27); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDl_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_59704); + var _bDm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$26); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDm_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_63635); + var + _bDn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$28), + _bDo_ = + caml_call2 + (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bDn_), + _bDp_ = caml_call1(Runtime_ocaml_Runtime[69], _bDo_), + _bDq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7119), + _bDr_ = caml_call2(Runtime_ocaml_Runtime[104], _bDq_, _bDp_), + _bDs_ = caml_call1(Runtime_ocaml_Runtime[31], cst_68637); + return caml_call2(Runtime_ocaml_Runtime[93], _bDs_, _bDr_); + case 1: + var _bDt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$82); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDt_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_40814) + : caml_call1(Runtime_ocaml_Runtime[31], cst_47632); + var _bDu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$46); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDu_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_50787); + var _bDv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$28); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDv_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_54365); + var _bDw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$27); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDw_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_57929); + var + _bDx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$29), + _bDy_ = + caml_call2 + (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bDx_), + _bDz_ = caml_call1(Runtime_ocaml_Runtime[69], _bDy_), + _bDA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6434), + _bDB_ = caml_call2(Runtime_ocaml_Runtime[104], _bDA_, _bDz_), + _bDC_ = caml_call1(Runtime_ocaml_Runtime[31], cst_61727); + return caml_call2(Runtime_ocaml_Runtime[93], _bDC_, _bDB_); + default: + var _bDD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$83); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDD_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_38740) + : caml_call1(Runtime_ocaml_Runtime[31], cst_45057); + var _bDE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$47); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDE_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_47802); + var _bDF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$29); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDF_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_50957); + var _bDG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$28); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDG_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_54110); + var + _bDH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$30), + _bDI_ = + caml_call2 + (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bDH_), + _bDJ_ = caml_call1(Runtime_ocaml_Runtime[69], _bDI_), + _bDK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5971), + _bDL_ = caml_call2(Runtime_ocaml_Runtime[104], _bDK_, _bDJ_), + _bDM_ = caml_call1(Runtime_ocaml_Runtime[31], cst_57657); + return caml_call2(Runtime_ocaml_Runtime[93], _bDM_, _bDL_); + } + } + function _bDd_(param){ + var + _bDe_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bDf_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bDe_), + _bDg_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bDh_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bDg_), + _bDi_ = caml_call2(Runtime_ocaml_Runtime[83], _bDh_, _bDf_); + return caml_call2(Runtime_ocaml_Runtime[29], _k__, _bDi_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _k$_, [0], _bDd_, _bDc_); + }, + _bzr_ = + [0, + function(param){ + function _bCG_(param){ + switch(zone[0]){ + case 0: + var _bCK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$84); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCK_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_46192) + : caml_call1(Runtime_ocaml_Runtime[31], cst_54152); + var _bCL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$48); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCL_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_57741); + var _bCM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$30); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCM_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_61794); + var _bCN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$29); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCN_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_65862); + var + _bCO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$31), + _bCP_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bCO_), + _bCQ_ = caml_call1(Runtime_ocaml_Runtime[69], _bCP_), + _bCR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7368), + _bCS_ = caml_call2(Runtime_ocaml_Runtime[104], _bCR_, _bCQ_), + _bCT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_71039); + return caml_call2(Runtime_ocaml_Runtime[93], _bCT_, _bCS_); + case 1: + var _bCU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$85); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCU_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_42242) + : caml_call1(Runtime_ocaml_Runtime[31], cst_49299); + var _bCV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$49); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCV_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_52565); + var _bCW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$31); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCW_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_56268); + var _bCX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$30); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCX_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_59957); + var + _bCY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$32), + _bCZ_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bCY_), + _bC0_ = caml_call1(Runtime_ocaml_Runtime[69], _bCZ_), + _bC1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6659), + _bC2_ = caml_call2(Runtime_ocaml_Runtime[104], _bC1_, _bC0_), + _bC3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_63887); + return caml_call2(Runtime_ocaml_Runtime[93], _bC3_, _bC2_); + default: + var _bC4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$86); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bC4_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_40096) + : caml_call1(Runtime_ocaml_Runtime[31], cst_46634); + var _bC5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$50); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bC5_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_49475); + var _bC6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$32); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bC6_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_52740); + var _bC7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$31); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bC7_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_56004); + var + _bC8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$33), + _bC9_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bC8_), + _bC__ = caml_call1(Runtime_ocaml_Runtime[69], _bC9_), + _bC$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6180), + _bDa_ = caml_call2(Runtime_ocaml_Runtime[104], _bC$_, _bC__), + _bDb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_59675); + return caml_call2(Runtime_ocaml_Runtime[93], _bDb_, _bDa_); + } + } + function _bCH_(param){ + var + _bCI_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bCJ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bCI_); + return caml_call2(Runtime_ocaml_Runtime[29], _la_, _bCJ_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _lb_, [0], _bCH_, _bCG_); + }, + _bzq_, + _bzp_], + _bzs_ = caml_call4(Runtime_ocaml_Runtime[63], _lc_, _bzr_, _bzo_, _bzn_); + } + catch(_bCF_){ + var _bzm_ = caml_wrap_exception(_bCF_); + if(_bzm_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _k7_], 1); + throw caml_maybe_attach_backtrace(_bzm_, 0); + } + var + plafond_equivalence_loyer_elig = + caml_call3 + (Runtime_ocaml_Runtime[28], _ld_, Runtime_ocaml_Runtime[13], _bzs_); + try{ + var + _bzu_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_121726); + }, + _bzv_ = + function(param){ + var + _bCD_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bCE_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bCD_); + return caml_call2(Runtime_ocaml_Runtime[29], _lf_, _bCE_); + }, + _bzw_ = caml_call4(Runtime_ocaml_Runtime[63], _lg_, [0], _bzv_, _bzu_); + } + catch(_bCC_){ + var _bzt_ = caml_wrap_exception(_bCC_); + if(_bzt_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _le_], 1); + throw caml_maybe_attach_backtrace(_bzt_, 0); + } + var + coefficient_r_d832_25 = + caml_call3 + (Runtime_ocaml_Runtime[28], _lh_, Runtime_ocaml_Runtime[13], _bzw_); + try{ + var + _bzy_ = function(param){return condition_2_du_832_25$0;}, + _bzz_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _lj_, 1); + }, + _bzA_ = caml_call4(Runtime_ocaml_Runtime[63], _lk_, [0], _bzz_, _bzy_), + calcul_nombre_parts_dot_condit = caml_call3 - (Runtime_ocaml_Runtime[28],_vk_,Runtime_ocaml_Runtime[10],_bCY_); - try - {var - _bCZ_=function(param){return condition_2_du_832_25$0}, - _bC0_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_vm_,1)}, - _bC1_=caml_call4(Runtime_ocaml_Runtime[63],_vn_,[0],_bC0_,_bCZ_), - calcul_nombre_parts_dot_condit= - caml_call3 - (Runtime_ocaml_Runtime[28],_vo_,Runtime_ocaml_Runtime[12],_bC1_)} - catch(_bFu_) - {_bFu_ = caml_wrap_exception(_bFu_); - if(_bFu_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_vl_]; - throw _bFu_} - try - {var - _bC2_=function(param){return nombre_personnes_a_charge}, - _bC3_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_vq_,1)}, - _bC4_=caml_call4(Runtime_ocaml_Runtime[63],_vr_,[0],_bC3_,_bC2_), - calcul_nombre_parts_dot_nombre= - caml_call3 - (Runtime_ocaml_Runtime[28],_vs_,Runtime_ocaml_Runtime[14],_bC4_)} - catch(_bFt_) - {_bFt_ = caml_wrap_exception(_bFt_); - if(_bFt_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_vp_]; - throw _bFt_} - try - {var - _bC5_=function(param){return situation_familiale_calcul_apl}, - _bC6_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_vu_,1)}, - _bC7_=caml_call4(Runtime_ocaml_Runtime[63],_vv_,[0],_bC6_,_bC5_), - calcul_nombre_parts_dot_situat= - caml_call3 - (Runtime_ocaml_Runtime[28], - _vw_, - embed_situation_familiale_calc, - _bC7_)} - catch(_bFs_) - {_bFs_ = caml_wrap_exception(_bFs_); - if(_bFs_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_vt_]; - throw _bFs_} - try - {var - _bC8_=function(param){return residence}, - _bC9_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_vy_,1)}, - _bC__=caml_call4(Runtime_ocaml_Runtime[63],_vz_,[0],_bC9_,_bC8_), - calcul_nombre_parts_dot_reside= - caml_call3 - (Runtime_ocaml_Runtime[28],_vA_,embed_collectivite$0,_bC__)} - catch(_bFr_) - {_bFr_ = caml_wrap_exception(_bFr_); - if(_bFr_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_vx_]; - throw _bFr_} - function calcul_nombre_parts_dot_limita(param) - {function _bFo_(param){return 1} - function _bFp_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29], - _vB_, - limitation_majoration_personne$0)} - var _bFq_=caml_call4(Runtime_ocaml_Runtime[63],_vC_,[0],_bFp_,_bFo_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _vD_, - Runtime_ocaml_Runtime[12], - _bFq_)} - var - _bC$_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_vE_,calcul_nombre_part_logement_fo), - [0, - calcul_nombre_parts_dot_condit, - calcul_nombre_parts_dot_nombre, - calcul_nombre_parts_dot_situat, - calcul_nombre_parts_dot_reside, - calcul_nombre_parts_dot_limita]), - result$0=caml_call2(Runtime_ocaml_Runtime[27],_vF_,_bC$_), - calcul_nombre_parts_dot_n_nomb=result$0[1]; - try - {var - _bDa_= - function(param) - {return condition_2_du_832_25$0 - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1500) - :caml_call1(Runtime_ocaml_Runtime[31],cst_2668)}, - _bDb_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_vH_,1)}, - _bDc_=caml_call4(Runtime_ocaml_Runtime[63],_vI_,[0],_bDb_,_bDa_)} - catch(_bFn_) - {_bFn_ = caml_wrap_exception(_bFn_); - if(_bFn_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_vG_]; - throw _bFn_} - var - montant_forfaitaire_d832_27= + (Runtime_ocaml_Runtime[28], _ll_, Runtime_ocaml_Runtime[12], _bzA_); + } + catch(_bCB_){ + var _bzx_ = caml_wrap_exception(_bCB_); + if(_bzx_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _li_], 1); + throw caml_maybe_attach_backtrace(_bzx_, 0); + } + try{ + var + _bzC_ = function(param){return nombre_personnes_a_charge;}, + _bzD_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ln_, 1); + }, + _bzE_ = caml_call4(Runtime_ocaml_Runtime[63], _lo_, [0], _bzD_, _bzC_), + calcul_nombre_parts_dot_nombre = caml_call3 - (Runtime_ocaml_Runtime[28],_vJ_,Runtime_ocaml_Runtime[13],_bDc_); - try - {var - _bDd_= - function(param) - {return condition_2_du_832_25$0 - ?caml_call1(Runtime_ocaml_Runtime[31],cst_2142091) - :caml_call1(Runtime_ocaml_Runtime[31],cst_1339340)}, - _bDe_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_vL_,1)}, - _bDf_=caml_call4(Runtime_ocaml_Runtime[63],_vM_,[0],_bDe_,_bDd_)} - catch(_bFm_) - {_bFm_ = caml_wrap_exception(_bFm_); - if(_bFm_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_vK_]; - throw _bFm_} - var - coefficient_multiplicateur_d83= + (Runtime_ocaml_Runtime[28], _lp_, Runtime_ocaml_Runtime[14], _bzE_); + } + catch(_bCA_){ + var _bzB_ = caml_wrap_exception(_bCA_); + if(_bzB_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _lm_], 1); + throw caml_maybe_attach_backtrace(_bzB_, 0); + } + try{ + var + _bzG_ = function(param){return situation_familiale_calcul_apl;}, + _bzH_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _lr_, 1); + }, + _bzI_ = caml_call4(Runtime_ocaml_Runtime[63], _ls_, [0], _bzH_, _bzG_), + calcul_nombre_parts_dot_situat = caml_call3 - (Runtime_ocaml_Runtime[28],_vN_,Runtime_ocaml_Runtime[13],_bDf_); - try - {var - _bDg_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[128], - redevance, - plafond_equivalence_loyer_elig) - ?plafond_equivalence_loyer_elig - :redevance}, - _bDh_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_vP_,1)}, - _bDi_=caml_call4(Runtime_ocaml_Runtime[63],_vQ_,[0],_bDh_,_bDg_)} - catch(_bFl_) - {_bFl_ = caml_wrap_exception(_bFl_); - if(_bFl_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_vO_]; - throw _bFl_} + (Runtime_ocaml_Runtime[28], + _lt_, + embed_situation_familiale_calc, + _bzI_); + } + catch(_bCz_){ + var _bzF_ = caml_wrap_exception(_bCz_); + if(_bzF_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _lq_], 1); + throw caml_maybe_attach_backtrace(_bzF_, 0); + } + try{ + var + _bzK_ = function(param){return residence;}, + _bzL_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _lv_, 1); + }, + _bzM_ = caml_call4(Runtime_ocaml_Runtime[63], _lw_, [0], _bzL_, _bzK_), + calcul_nombre_parts_dot_reside = + caml_call3(Runtime_ocaml_Runtime[28], _lx_, embed_collectivite, _bzM_); + } + catch(_bCy_){ + var _bzJ_ = caml_wrap_exception(_bCy_); + if(_bzJ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _lu_], 1); + throw caml_maybe_attach_backtrace(_bzJ_, 0); + } + function calcul_nombre_parts_dot_limita(param){ + function _bCv_(param){return 1;} + function _bCw_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], + _ly_, + limitation_majoration_personne$0); + } + var + _bCx_ = caml_call4(Runtime_ocaml_Runtime[63], _lz_, [0], _bCw_, _bCv_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _lA_, + Runtime_ocaml_Runtime[12], + _bCx_); + } + var + _bzN_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _lB_, calcul_nombre_part_logement_fo), + [0, + calcul_nombre_parts_dot_condit, + calcul_nombre_parts_dot_nombre, + calcul_nombre_parts_dot_situat, + calcul_nombre_parts_dot_reside, + calcul_nombre_parts_dot_limita]), + result$0 = caml_call2(Runtime_ocaml_Runtime[27], _lC_, _bzN_), + calcul_nombre_parts_dot_n_nomb = result$0[1]; + try{ + var + _bzP_ = + function(param){ + return condition_2_du_832_25$0 + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1500) + : caml_call1(Runtime_ocaml_Runtime[31], cst_2668); + }, + _bzQ_ = + function(param){ + var + _bCt_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bCu_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bCt_); + return caml_call2(Runtime_ocaml_Runtime[29], _lE_, _bCu_); + }, + _bzR_ = caml_call4(Runtime_ocaml_Runtime[63], _lF_, [0], _bzQ_, _bzP_); + } + catch(_bCs_){ + var _bzO_ = caml_wrap_exception(_bCs_); + if(_bzO_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _lD_], 1); + throw caml_maybe_attach_backtrace(_bzO_, 0); + } + var + montant_forfaitaire_d832_27 = + caml_call3 + (Runtime_ocaml_Runtime[28], _lG_, Runtime_ocaml_Runtime[13], _bzR_); + try{ + var + _bzT_ = + function(param){ + return condition_2_du_832_25$0 + ? caml_call1(Runtime_ocaml_Runtime[31], cst_2142091) + : caml_call1(Runtime_ocaml_Runtime[31], cst_1339340); + }, + _bzU_ = + function(param){ + var + _bCq_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bCr_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bCq_); + return caml_call2(Runtime_ocaml_Runtime[29], _lI_, _bCr_); + }, + _bzV_ = caml_call4(Runtime_ocaml_Runtime[63], _lJ_, [0], _bzU_, _bzT_); + } + catch(_bCp_){ + var _bzS_ = caml_wrap_exception(_bCp_); + if(_bzS_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _lH_], 1); + throw caml_maybe_attach_backtrace(_bzS_, 0); + } + var + coefficient_multiplicateur_d83 = + caml_call3 + (Runtime_ocaml_Runtime[28], _lK_, Runtime_ocaml_Runtime[13], _bzV_); + function _bzW_(aide_finale){ + try{ var - equivalence_loyer_eligible= + _bCj_ = + function(param){ + var + _bCn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$87), + _bCo_ = + caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale, + montant_forfaitaire_d832_24); + return caml_call2(Runtime_ocaml_Runtime[128], _bCo_, _bCn_) + ? caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale, + montant_forfaitaire_d832_24) + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$88); + }, + _bCk_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _lM_, 1); + }, + _bCl_ = caml_call4(Runtime_ocaml_Runtime[63], _lN_, [0], _bCk_, _bCj_); + return _bCl_; + } + catch(_bCm_){ + var _bCi_ = caml_wrap_exception(_bCm_); + if(_bCi_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _lL_], 1); + throw caml_maybe_attach_backtrace(_bCi_, 0); + } + } + var + traitement_aide_finale_minorat = + caml_call3 + (Runtime_ocaml_Runtime[28], _lO_, Runtime_ocaml_Runtime[10], _bzW_); + try{ + var + _bzY_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[128], + redevance, + plafond_equivalence_loyer_elig) + ? plafond_equivalence_loyer_elig + : redevance; + }, + _bzZ_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _lQ_, 1); + }, + _bz0_ = caml_call4(Runtime_ocaml_Runtime[63], _lR_, [0], _bzZ_, _bzY_); + } + catch(_bCh_){ + var _bzX_ = caml_wrap_exception(_bCh_); + if(_bzX_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _lP_], 1); + throw caml_maybe_attach_backtrace(_bzX_, 0); + } + var + equivalence_loyer_eligible = + caml_call3 + (Runtime_ocaml_Runtime[28], _lS_, Runtime_ocaml_Runtime[13], _bz0_); + try{ + var + _bz2_ = + function(param){ + function _bCf_(param){return calcul_nombre_parts_dot_n_nomb;} + function _bCg_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _lU_, 1); + } + return caml_call4(Runtime_ocaml_Runtime[63], _lV_, [0], _bCg_, _bCf_); + }, + _bz3_ = function(param){return 1;}, + _bz4_ = + [0, function(param){return caml_call1(n_nombre_parts_d832_25, 0);}], + _bz5_ = caml_call4(Runtime_ocaml_Runtime[63], _lW_, _bz4_, _bz3_, _bz2_); + } + catch(_bCe_){ + var _bz1_ = caml_wrap_exception(_bCe_); + if(_bz1_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _lT_], 1); + throw caml_maybe_attach_backtrace(_bz1_, 0); + } + var + n_nombre_parts_d832_25$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _lX_, Runtime_ocaml_Runtime[15], _bz5_); + function _bz6_(allocation_mensuelle){ + try{ + var + _bCa_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[98], + equivalence_loyer_eligible, + allocation_mensuelle); + }, + _bCb_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _lZ_, 1); + }, + _bCc_ = caml_call4(Runtime_ocaml_Runtime[63], _l0_, [0], _bCb_, _bCa_); + return _bCc_; + } + catch(_bCd_){ + var _bB$_ = caml_wrap_exception(_bCd_); + if(_bB$_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _lY_], 1); + throw caml_maybe_attach_backtrace(_bB$_, 0); + } + } + var + depense_nette_minimale_d832_27 = + caml_call3 + (Runtime_ocaml_Runtime[28], _l1_, Runtime_ocaml_Runtime[10], _bz6_); + try{ + var + _bz8_ = function(param){return date_courante;}, + _bz9_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _l3_, 1); + }, + _bz__ = caml_call4(Runtime_ocaml_Runtime[63], _l4_, [0], _bz9_, _bz8_), + calcul_equivalence_loyer_minim$0 = caml_call3 - (Runtime_ocaml_Runtime[28],_vR_,Runtime_ocaml_Runtime[13],_bDi_); - try - {var - _bDj_= - function(param) - {function _bFj_(param){return calcul_nombre_parts_dot_n_nomb} - function _bFk_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_vT_,1)} - return caml_call4(Runtime_ocaml_Runtime[63],_vU_,[0],_bFk_,_bFj_)}, - _bDk_=function(param){return 1}, - _bDl_= - [0,function(param){return caml_call1(n_nombre_parts_d832_25,0)}], - _bDm_=caml_call4(Runtime_ocaml_Runtime[63],_vV_,_bDl_,_bDk_,_bDj_)} - catch(_bFi_) - {_bFi_ = caml_wrap_exception(_bFi_); - if(_bFi_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_vS_]; - throw _bFi_} - var - n_nombre_parts_d832_25$0= + (Runtime_ocaml_Runtime[28], _l5_, Runtime_ocaml_Runtime[16], _bz__); + } + catch(_bB__){ + var _bz7_ = caml_wrap_exception(_bB__); + if(_bz7_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _l2_], 1); + throw caml_maybe_attach_backtrace(_bz7_, 0); + } + try{ + var + _bAa_ = function(param){return ressources_menage_arrondies;}, + _bAb_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _l7_, 1); + }, + _bAc_ = caml_call4(Runtime_ocaml_Runtime[63], _l8_, [0], _bAb_, _bAa_), + calcul_equivalence_loyer_minim$1 = caml_call3 - (Runtime_ocaml_Runtime[28],_vW_,Runtime_ocaml_Runtime[15],_bDm_); - function _bDn_(allocation_mensuelle) - {try - {var - _bFe_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[98], - equivalence_loyer_eligible, - allocation_mensuelle)}, - _bFf_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_vY_,1)}, - _bFg_=caml_call4(Runtime_ocaml_Runtime[63],_vZ_,[0],_bFf_,_bFe_); - return _bFg_} - catch(_bFh_) - {_bFh_ = caml_wrap_exception(_bFh_); - if(_bFh_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_vX_]; - throw _bFh_}} - var - depense_nette_minimale_d832_27= + (Runtime_ocaml_Runtime[28], _l9_, Runtime_ocaml_Runtime[13], _bAc_); + } + catch(_bB9_){ + var _bz$_ = caml_wrap_exception(_bB9_); + if(_bz$_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _l6_], 1); + throw caml_maybe_attach_backtrace(_bz$_, 0); + } + try{ + var + _bAe_ = function(param){return condition_2_du_832_25$0;}, + _bAf_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _l$_, 1); + }, + _bAg_ = caml_call4(Runtime_ocaml_Runtime[63], _ma_, [0], _bAf_, _bAe_), + calcul_equivalence_loyer_minim$2 = caml_call3 - (Runtime_ocaml_Runtime[28],_v0_,Runtime_ocaml_Runtime[10],_bDn_); - try - {var - _bDo_=function(param){return date_courante}, - _bDp_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_v2_,1)}, - _bDq_=caml_call4(Runtime_ocaml_Runtime[63],_v3_,[0],_bDp_,_bDo_), - calcul_equivalence_loyer_minim$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_v4_,Runtime_ocaml_Runtime[16],_bDq_)} - catch(_bFd_) - {_bFd_ = caml_wrap_exception(_bFd_); - if(_bFd_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_v1_]; - throw _bFd_} - try - {var - _bDr_=function(param){return ressources_menage_arrondies}, - _bDs_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_v6_,1)}, - _bDt_=caml_call4(Runtime_ocaml_Runtime[63],_v7_,[0],_bDs_,_bDr_), - calcul_equivalence_loyer_minim$1= - caml_call3 - (Runtime_ocaml_Runtime[28],_v8_,Runtime_ocaml_Runtime[13],_bDt_)} - catch(_bFc_) - {_bFc_ = caml_wrap_exception(_bFc_); - if(_bFc_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_v5_]; - throw _bFc_} - try - {var - _bDu_=function(param){return condition_2_du_832_25$0}, - _bDv_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_v__,1)}, - _bDw_=caml_call4(Runtime_ocaml_Runtime[63],_v$_,[0],_bDv_,_bDu_), - calcul_equivalence_loyer_minim$2= - caml_call3 - (Runtime_ocaml_Runtime[28],_wa_,Runtime_ocaml_Runtime[12],_bDw_)} - catch(_bFb_) - {_bFb_ = caml_wrap_exception(_bFb_); - if(_bFb_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_v9_]; - throw _bFb_} - try - {var - _bDx_=function(param){return n_nombre_parts_d832_25$0}, - _bDy_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_wc_,1)}, - _bDz_=caml_call4(Runtime_ocaml_Runtime[63],_wd_,[0],_bDy_,_bDx_), - calcul_equivalence_loyer_minim$3= - caml_call3 - (Runtime_ocaml_Runtime[28],_we_,Runtime_ocaml_Runtime[15],_bDz_)} - catch(_bFa_) - {_bFa_ = caml_wrap_exception(_bFa_); - if(_bFa_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_wb_]; - throw _bFa_} - var - _bDA_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_wf_,calcul_equivalence_loyer_minim), - [0, - calcul_equivalence_loyer_minim$0, - calcul_equivalence_loyer_minim$1, - calcul_equivalence_loyer_minim$2, - calcul_equivalence_loyer_minim$3]), - result$1=caml_call2(Runtime_ocaml_Runtime[27],_wg_,_bDA_), - calcul_equivalence_loyer_minim$4=result$1[1]; - try - {var - _bDB_= - function(param) - {var - _bE7_= - caml_call2 - (Runtime_ocaml_Runtime[104], - coefficient_r_d832_25, - n_nombre_parts_d832_25$0), - denominateur= - caml_call2 - (Runtime_ocaml_Runtime[98],ressources_menage_arrondies,_bE7_), - _bE8_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$148), - denominateur$0= - caml_call2(Runtime_ocaml_Runtime[113],denominateur,_bE8_) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$149) - :denominateur, - _bE9_= + (Runtime_ocaml_Runtime[28], _mb_, Runtime_ocaml_Runtime[12], _bAg_); + } + catch(_bB8_){ + var _bAd_ = caml_wrap_exception(_bB8_); + if(_bAd_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _l__], 1); + throw caml_maybe_attach_backtrace(_bAd_, 0); + } + try{ + var + _bAi_ = function(param){return n_nombre_parts_d832_25$0;}, + _bAj_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _md_, 1); + }, + _bAk_ = caml_call4(Runtime_ocaml_Runtime[63], _me_, [0], _bAj_, _bAi_), + calcul_equivalence_loyer_minim$3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _mf_, Runtime_ocaml_Runtime[15], _bAk_); + } + catch(_bB7_){ + var _bAh_ = caml_wrap_exception(_bB7_); + if(_bAh_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _mc_], 1); + throw caml_maybe_attach_backtrace(_bAh_, 0); + } + var + _bAl_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _mg_, calcul_equivalence_loyer_minim), + [0, + calcul_equivalence_loyer_minim$0, + calcul_equivalence_loyer_minim$1, + calcul_equivalence_loyer_minim$2, + calcul_equivalence_loyer_minim$3]), + result$1 = caml_call2(Runtime_ocaml_Runtime[27], _mh_, _bAl_), + calcul_equivalence_loyer_minim$4 = result$1[1]; + try{ + var + _bAn_ = + function(param){ + var + _bB2_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + coefficient_r_d832_25, + n_nombre_parts_d832_25$0), + denominateur = + caml_call2 + (Runtime_ocaml_Runtime[98], ressources_menage_arrondies, _bB2_), + _bB3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$89), + denominateur$0 = + caml_call2(Runtime_ocaml_Runtime[113], denominateur, _bB3_) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$90) + : denominateur, + _bB4_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + coefficient_multiplicateur_d83, + n_nombre_parts_d832_25$0), + _bB5_ = + caml_call2(Runtime_ocaml_Runtime[108], denominateur$0, _bB4_), + _bB6_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_95); + return caml_call2(Runtime_ocaml_Runtime[97], _bB6_, _bB5_); + }, + _bAo_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _mj_, 1); + }, + _bAp_ = + [0, + function(param){ + function _bBX_(param){ + var + _bBZ_ = caml_call2 (Runtime_ocaml_Runtime[104], coefficient_multiplicateur_d83, n_nombre_parts_d832_25$0), - _bE__=caml_call2(Runtime_ocaml_Runtime[108],denominateur$0,_bE9_), - _bE$_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_95); - return caml_call2(Runtime_ocaml_Runtime[97],_bE$_,_bE__)}, - _bDC_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_wi_,1)}, - _bDD_= - [0, - function(param) - {function _bE2_(param) - {var - _bE4_= - caml_call2 - (Runtime_ocaml_Runtime[104], - coefficient_multiplicateur_d83, - n_nombre_parts_d832_25$0), - _bE5_= - caml_call2 - (Runtime_ocaml_Runtime[108], - ressources_menage_arrondies, - _bE4_), - _bE6_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_9$0); - return caml_call2(Runtime_ocaml_Runtime[97],_bE6_,_bE5_)} - function _bE3_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_wj_,condition_2_du_832_25$0)} - return caml_call4(Runtime_ocaml_Runtime[63],_wk_,[0],_bE3_,_bE2_)}], - _bDE_=caml_call4(Runtime_ocaml_Runtime[63],_wl_,_bDD_,_bDC_,_bDB_)} - catch(_bE1_) - {_bE1_ = caml_wrap_exception(_bE1_); - if(_bE1_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_wh_]; - throw _bE1_} + _bB0_ = + caml_call2 + (Runtime_ocaml_Runtime[108], + ressources_menage_arrondies, + _bBZ_), + _bB1_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_9$0); + return caml_call2(Runtime_ocaml_Runtime[97], _bB1_, _bB0_); + } + function _bBY_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _mk_, condition_2_du_832_25$0); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ml_, [0], _bBY_, _bBX_); + }], + _bAq_ = caml_call4(Runtime_ocaml_Runtime[63], _mm_, _bAp_, _bAo_, _bAn_); + } + catch(_bBW_){ + var _bAm_ = caml_wrap_exception(_bBW_); + if(_bAm_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _mi_], 1); + throw caml_maybe_attach_backtrace(_bAm_, 0); + } + var + coefficient_prise_en_charge_d8 = + caml_call3 + (Runtime_ocaml_Runtime[28], _mn_, Runtime_ocaml_Runtime[15], _bAq_); + function _bAr_(allocation_mensuelle){ + try{ var - coefficient_prise_en_charge_d8= - caml_call3 - (Runtime_ocaml_Runtime[28],_wm_,Runtime_ocaml_Runtime[15],_bDE_); - function _bDF_(allocation_mensuelle) - {try - {var - _bEU_= - function(param) - {var - _bEY_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _wo_, - Runtime_ocaml_Runtime[13], - allocation_mensuelle), - _bEZ_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _wp_, - depense_nette_minimale_d832_27), - _bEY_), - _bE0_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _wq_, - Runtime_ocaml_Runtime[13], - _bEZ_), - depense_nette_minimale= - caml_call2(Runtime_ocaml_Runtime[27],_wr_,_bE0_); - return caml_call2 - (Runtime_ocaml_Runtime[118], - depense_nette_minimale, - montant_forfaitaire_d832_27) - ?caml_call2 - (Runtime_ocaml_Runtime[98], - montant_forfaitaire_d832_27, - depense_nette_minimale) - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$150)}, - _bEV_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_ws_,1)}, - _bEW_=caml_call4(Runtime_ocaml_Runtime[63],_wt_,[0],_bEV_,_bEU_); - return _bEW_} - catch(_bEX_) - {_bEX_ = caml_wrap_exception(_bEX_); - if(_bEX_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_wn_]; - throw _bEX_}} - var - abattement_depense_nette_minim= - caml_call3 - (Runtime_ocaml_Runtime[28],_wu_,Runtime_ocaml_Runtime[10],_bDF_); - try - {var - _bDG_=function(param){return calcul_equivalence_loyer_minim$4}, - _bDH_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ww_,1)}, - _bDI_=caml_call4(Runtime_ocaml_Runtime[63],_wx_,[0],_bDH_,_bDG_)} - catch(_bET_) - {_bET_ = caml_wrap_exception(_bET_); - if(_bET_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_wv_]; - throw _bET_} - var - equivalence_loyer_minimale= - caml_call3 - (Runtime_ocaml_Runtime[28],_wy_,Runtime_ocaml_Runtime[13],_bDI_); - try - {var - _bDJ_= - function(param) - {var - _bEN_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$6), - _bEO_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$7), - _bEP_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_005$0), - _bEQ_= + _bBP_ = + function(param){ + var + _bBT_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _mp_, + Runtime_ocaml_Runtime[13], + allocation_mensuelle), + _bBU_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _mq_, + depense_nette_minimale_d832_27), + _bBT_), + _bBV_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _mr_, + Runtime_ocaml_Runtime[13], + _bBU_), + depense_nette_minimale = + caml_call2(Runtime_ocaml_Runtime[27], _ms_, _bBV_); + return caml_call2 + (Runtime_ocaml_Runtime[118], + depense_nette_minimale, + montant_forfaitaire_d832_27) + ? caml_call2 + (Runtime_ocaml_Runtime[98], + montant_forfaitaire_d832_27, + depense_nette_minimale) + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$91); + }, + _bBQ_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _mt_, 1); + }, + _bBR_ = caml_call4(Runtime_ocaml_Runtime[63], _mu_, [0], _bBQ_, _bBP_); + return _bBR_; + } + catch(_bBS_){ + var _bBO_ = caml_wrap_exception(_bBS_); + if(_bBO_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _mo_], 1); + throw caml_maybe_attach_backtrace(_bBO_, 0); + } + } + var + abattement_depense_nette_minim = + caml_call3 + (Runtime_ocaml_Runtime[28], _mv_, Runtime_ocaml_Runtime[10], _bAr_); + try{ + var + _bAt_ = function(param){return calcul_equivalence_loyer_minim$4;}, + _bAu_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _mx_, 1); + }, + _bAv_ = caml_call4(Runtime_ocaml_Runtime[63], _my_, [0], _bAu_, _bAt_); + } + catch(_bBN_){ + var _bAs_ = caml_wrap_exception(_bBN_); + if(_bAs_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _mw_], 1); + throw caml_maybe_attach_backtrace(_bAs_, 0); + } + var + equivalence_loyer_minimale = + caml_call3 + (Runtime_ocaml_Runtime[28], _mz_, Runtime_ocaml_Runtime[13], _bAv_); + try{ + var + _bAx_ = + function(param){ + var + _bBH_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$6), + _bBI_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$7), + _bBJ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_005$0), + _bBK_ = + caml_call2 + (Runtime_ocaml_Runtime[97], + coefficient_prise_en_charge_d8, + _bBJ_), + _bBL_ = caml_call2(Runtime_ocaml_Runtime[103], _bBK_, _bBI_), + _bBM_ = caml_call1(Runtime_ocaml_Runtime[78], _bBL_); + return caml_call2(Runtime_ocaml_Runtime[107], _bBM_, _bBH_); + }, + _bAy_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _mB_, 1); + }, + _bAz_ = + [0, + function(param){ + function _bBz_(param){ + var + _bBB_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$8), + _bBC_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$9), + _bBD_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_005$1), + _bBE_ = caml_call2 (Runtime_ocaml_Runtime[97], coefficient_prise_en_charge_d8, - _bEP_), - _bER_=caml_call2(Runtime_ocaml_Runtime[103],_bEQ_,_bEO_), - _bES_=caml_call1(Runtime_ocaml_Runtime[78],_bER_); - return caml_call2(Runtime_ocaml_Runtime[107],_bES_,_bEN_)}, - _bDK_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_wA_,1)}, - _bDL_= - [0, - function(param) - {function _bEF_(param) - {var - _bEH_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$8), - _bEI_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$9), - _bEJ_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_005$1), - _bEK_= - caml_call2 - (Runtime_ocaml_Runtime[97], - coefficient_prise_en_charge_d8, - _bEJ_), - _bEL_=caml_call2(Runtime_ocaml_Runtime[103],_bEK_,_bEI_), - _bEM_=caml_call1(Runtime_ocaml_Runtime[78],_bEL_); - return caml_call2(Runtime_ocaml_Runtime[107],_bEM_,_bEH_)} - function _bEG_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_wB_,condition_2_du_832_25$0)} - return caml_call4(Runtime_ocaml_Runtime[63],_wC_,[0],_bEG_,_bEF_)}], - _bDM_=caml_call4(Runtime_ocaml_Runtime[63],_wD_,_bDL_,_bDK_,_bDJ_)} - catch(_bEE_) - {_bEE_ = caml_wrap_exception(_bEE_); - if(_bEE_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_wz_]; - throw _bEE_} + _bBD_), + _bBF_ = caml_call2(Runtime_ocaml_Runtime[103], _bBE_, _bBC_), + _bBG_ = caml_call1(Runtime_ocaml_Runtime[78], _bBF_); + return caml_call2(Runtime_ocaml_Runtime[107], _bBG_, _bBB_); + } + function _bBA_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _mC_, condition_2_du_832_25$0); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _mD_, [0], _bBA_, _bBz_); + }], + _bAA_ = caml_call4(Runtime_ocaml_Runtime[63], _mE_, _bAz_, _bAy_, _bAx_); + } + catch(_bBy_){ + var _bAw_ = caml_wrap_exception(_bBy_); + if(_bAw_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _mA_], 1); + throw caml_maybe_attach_backtrace(_bAw_, 0); + } + var + coefficient_prise_en_charge_d8$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _mF_, Runtime_ocaml_Runtime[15], _bAA_); + function _bAB_(aide_finale){ + try{ var - coefficient_prise_en_charge_d8$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_wE_,Runtime_ocaml_Runtime[15],_bDM_); - function _bDN_(aide_finale) - {try - {var - _bEs_= - function(param) - {var - _bEw_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _wG_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bEx_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _wH_, - traitement_aide_finale_minorat), - _bEw_), - _bEy_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _wI_, - Runtime_ocaml_Runtime[13], - _bEx_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_wJ_,_bEy_), - _bEz_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _wK_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _bEA_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _wL_, - abattement_depense_nette_minim), - _bEz_), - _bEB_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _wM_, - Runtime_ocaml_Runtime[13], - _bEA_), - _bEC_=caml_call2(Runtime_ocaml_Runtime[27],_wN_,_bEB_), - aide_finale$1= - caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,_bEC_), - _bED_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$151); - return caml_call2 - (Runtime_ocaml_Runtime[128],aide_finale$1,_bED_) - ?aide_finale$1 - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$152)}, - _bEt_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_wO_,1)}, - _bEu_=caml_call4(Runtime_ocaml_Runtime[63],_wP_,[0],_bEt_,_bEs_); - return _bEu_} - catch(_bEv_) - {_bEv_ = caml_wrap_exception(_bEv_); - if(_bEv_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_wF_]; - throw _bEv_}} + _bBm_ = + function(param){ + var + _bBq_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _mH_, + Runtime_ocaml_Runtime[13], + aide_finale), + _bBr_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _mI_, + traitement_aide_finale_minorat), + _bBq_), + _bBs_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _mJ_, + Runtime_ocaml_Runtime[13], + _bBr_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _mK_, _bBs_), + _bBt_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _mL_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _bBu_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _mM_, + abattement_depense_nette_minim), + _bBt_), + _bBv_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _mN_, + Runtime_ocaml_Runtime[13], + _bBu_), + _bBw_ = caml_call2(Runtime_ocaml_Runtime[27], _mO_, _bBv_), + aide_finale$1 = + caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, _bBw_), + _bBx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$92); + return caml_call2(Runtime_ocaml_Runtime[128], aide_finale$1, _bBx_) + ? aide_finale$1 + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$93); + }, + _bBn_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _mP_, 1); + }, + _bBo_ = caml_call4(Runtime_ocaml_Runtime[63], _mQ_, [0], _bBn_, _bBm_); + return _bBo_; + } + catch(_bBp_){ + var _bBl_ = caml_wrap_exception(_bBp_); + if(_bBl_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _mG_], 1); + throw caml_maybe_attach_backtrace(_bBl_, 0); + } + } + var + traitement_aide_finale_abattem = + caml_call3 + (Runtime_ocaml_Runtime[28], _mR_, Runtime_ocaml_Runtime[10], _bAB_); + try{ + var + _bAD_ = + function(param){ + var _bBk_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_95$0); + return caml_call2 + (Runtime_ocaml_Runtime[127], + coefficient_prise_en_charge_d8$0, + _bBk_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_95$1) + : coefficient_prise_en_charge_d8$0; + }, + _bAE_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _mT_, 1); + }, + _bAF_ = + [0, + function(param){ + function _bBh_(param){ + var _bBj_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_9$1); + return caml_call2 + (Runtime_ocaml_Runtime[127], + coefficient_prise_en_charge_d8$0, + _bBj_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_9$2) + : coefficient_prise_en_charge_d8$0; + } + function _bBi_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _mU_, condition_2_du_832_25$0); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _mV_, [0], _bBi_, _bBh_); + }], + _bAG_ = caml_call4(Runtime_ocaml_Runtime[63], _mW_, _bAF_, _bAE_, _bAD_); + } + catch(_bBg_){ + var _bAC_ = caml_wrap_exception(_bBg_); + if(_bAC_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _mS_], 1); + throw caml_maybe_attach_backtrace(_bAC_, 0); + } + var + coefficient_prise_en_charge_d8$1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _mX_, Runtime_ocaml_Runtime[15], _bAG_); + function _bAH_(aide_finale){ + try{ var - traitement_aide_finale_abattem= - caml_call3 - (Runtime_ocaml_Runtime[28],_wQ_,Runtime_ocaml_Runtime[10],_bDN_); - try - {var - _bDO_= - function(param) - {var _bEr_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_95$0); - return caml_call2 - (Runtime_ocaml_Runtime[127], - coefficient_prise_en_charge_d8$0, - _bEr_) - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_95$1) - :coefficient_prise_en_charge_d8$0}, - _bDP_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_wS_,1)}, - _bDQ_= - [0, - function(param) - {function _bEo_(param) - {var _bEq_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_9$1); - return caml_call2 - (Runtime_ocaml_Runtime[127], - coefficient_prise_en_charge_d8$0, - _bEq_) - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_9$2) - :coefficient_prise_en_charge_d8$0} - function _bEp_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_wT_,condition_2_du_832_25$0)} - return caml_call4(Runtime_ocaml_Runtime[63],_wU_,[0],_bEp_,_bEo_)}], - _bDR_=caml_call4(Runtime_ocaml_Runtime[63],_wV_,_bDQ_,_bDP_,_bDO_)} - catch(_bEn_) - {_bEn_ = caml_wrap_exception(_bEn_); - if(_bEn_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_wR_]; - throw _bEn_} - var - coefficient_prise_en_charge_d8$1= - caml_call3 - (Runtime_ocaml_Runtime[28],_wW_,Runtime_ocaml_Runtime[15],_bDR_); - function _bDS_(aide_finale) - {try - {var - _bD__= - function(param) - {var - _bEc_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _wY_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bEd_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _wZ_, - traitement_aide_finale_abattem), - _bEc_), - _bEe_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _w0_, - Runtime_ocaml_Runtime[13], - _bEd_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_w1_,_bEe_), - _bEf_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _w2_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _bEg_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _w3_, - contributions_sociales_dot_mon), - _bEf_), - _bEh_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _w4_, - Runtime_ocaml_Runtime[13], - _bEg_), - crds=caml_call2(Runtime_ocaml_Runtime[27],_w5_,_bEh_), - _bEi_=caml_call1(Runtime_ocaml_Runtime[31],cst_50$0), - _bEj_=caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,crds), - _bEk_=caml_call2(Runtime_ocaml_Runtime[98],_bEj_,_bEi_), - aide_finale_moins_crds_arrondi= - caml_call1(Runtime_ocaml_Runtime[77],_bEk_), - _bEl_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$153), - _bEm_= - caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds); - return caml_call2(Runtime_ocaml_Runtime[128],_bEm_,_bEl_) - ?caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds) - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$154)}, - _bD$_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_w6_,1)}, - _bEa_=caml_call4(Runtime_ocaml_Runtime[63],_w7_,[0],_bD$_,_bD__); - return _bEa_} - catch(_bEb_) - {_bEb_ = caml_wrap_exception(_bEb_); - if(_bEb_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_wX_]; - throw _bEb_}} - var - traitement_aide_finale_contrib= - caml_call3 - (Runtime_ocaml_Runtime[28],_w8_,Runtime_ocaml_Runtime[10],_bDS_); - try - {var - _bDT_= - function(param) - {var - _bD8_= - caml_call2 - (Runtime_ocaml_Runtime[98], - equivalence_loyer_eligible, - equivalence_loyer_minimale), - aide_finale= - caml_call2 - (Runtime_ocaml_Runtime[104], - _bD8_, - coefficient_prise_en_charge_d8$1), - _bD9_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$155); - return caml_call2(Runtime_ocaml_Runtime[113],aide_finale,_bD9_) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$156) - :aide_finale}, - _bDU_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_w__,1)}, - _bDV_=caml_call4(Runtime_ocaml_Runtime[63],_w$_,[0],_bDU_,_bDT_)} - catch(_bD7_) - {_bD7_ = caml_wrap_exception(_bD7_); - if(_bD7_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_w9_]; - throw _bD7_} - var - aide_finale_formule= - caml_call3 - (Runtime_ocaml_Runtime[28],_xa_,Runtime_ocaml_Runtime[13],_bDV_); - function _bDW_(aide_finale) - {try - {var - _bD0_= - function(param) - {var - _bD4_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _xc_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bD5_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _xd_, - traitement_aide_finale_contrib), - _bD4_), - _bD6_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _xe_, - Runtime_ocaml_Runtime[13], - _bD5_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_xf_,_bD6_); - return caml_call2 - (Runtime_ocaml_Runtime[113], - aide_finale$0, - montant_minimal_aide_d823_24) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$157) - :aide_finale$0}, - _bD1_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_xg_,1)}, - _bD2_=caml_call4(Runtime_ocaml_Runtime[63],_xh_,[0],_bD1_,_bD0_); - return _bD2_} - catch(_bD3_) - {_bD3_ = caml_wrap_exception(_bD3_); - if(_bD3_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_xb_]; - throw _bD3_}} - var - traitement_aide_finale_montant= - caml_call3 - (Runtime_ocaml_Runtime[28],_xi_,Runtime_ocaml_Runtime[10],_bDW_); - try - {var - _bDX_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bDY_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bDX_)} - catch(_bDZ_) - {_bDZ_ = caml_wrap_exception(_bDZ_); - if(_bDZ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_xj_]; - throw _bDZ_} - if(_bDY_) - return [0, - coefficient_multiplicateur_d83, - coefficient_r_d832_25, - n_nombre_parts_d832_25$0, - equivalence_loyer_eligible, - plafond_equivalence_loyer_elig, - equivalence_loyer_minimale, - coefficient_prise_en_charge_d8$1, - aide_finale_formule, - traitement_aide_finale_montant]; - throw [0,Runtime_ocaml_Runtime[3],_xk_]} - function calcul_aide_personnalisee_loge$1(calcul_aide_personnalisee_loge) - {var - mensualite_principale=calcul_aide_personnalisee_loge[1], - ressources_menage_arrondies=calcul_aide_personnalisee_loge[2], - nombre_personnes_a_charge=calcul_aide_personnalisee_loge[3], - situation_familiale_calcul_apl=calcul_aide_personnalisee_loge[4], - type_travaux_logement=calcul_aide_personnalisee_loge[5], - date_signature_pret=calcul_aide_personnalisee_loge[6], - local_habite_premiere_fois_ben=calcul_aide_personnalisee_loge[7], - date_entree_logement=calcul_aide_personnalisee_loge[8], - copropriete=calcul_aide_personnalisee_loge[9], - situation_r822_11_13_17=calcul_aide_personnalisee_loge[10], - zone=calcul_aide_personnalisee_loge[11], - type_pret=calcul_aide_personnalisee_loge[12], - anciennete_logement=calcul_aide_personnalisee_loge[13], - date_courante=calcul_aide_personnalisee_loge[14]; - try - {var - _a$m_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_500$1)}, - _a$n_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_xm_,1)}, - _a$o_=caml_call4(Runtime_ocaml_Runtime[63],_xn_,[0],_a$n_,_a$m_)} - catch(_bCw_) - {_bCw_ = caml_wrap_exception(_bCw_); - if(_bCw_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_xl_]; - throw _bCw_} - var - montant_forfaitaire_d832_10= - caml_call3 - (Runtime_ocaml_Runtime[28],_xo_,Runtime_ocaml_Runtime[13],_a$o_); - try - {var - _a$p_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1000$2)}, - _a$q_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_xq_,1)}, - _a$r_=caml_call4(Runtime_ocaml_Runtime[63],_xr_,[0],_a$q_,_a$p_)} - catch(_bCv_) - {_bCv_ = caml_wrap_exception(_bCv_); - if(_bCv_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_xp_]; - throw _bCv_} - var - montant_minimal_aide_d832_10= - caml_call3 - (Runtime_ocaml_Runtime[28],_xs_,Runtime_ocaml_Runtime[13],_a$r_); - try - {var - _a$s_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_2211133)}, - _a$t_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_xu_,1)}, - _a$u_=caml_call4(Runtime_ocaml_Runtime[63],_xv_,[0],_a$t_,_a$s_)} - catch(_bCu_) - {_bCu_ = caml_wrap_exception(_bCu_); - if(_bCu_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_xt_]; - throw _bCu_} - var - coefficient_multiplicateur_d83= - caml_call3 - (Runtime_ocaml_Runtime[28],_xw_,Runtime_ocaml_Runtime[13],_a$u_); - try - {var - _a$v_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_16_25)}, - _a$w_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_xy_,1)}, - _a$x_=caml_call4(Runtime_ocaml_Runtime[63],_xz_,[0],_a$w_,_a$v_)} - catch(_bCt_) - {_bCt_ = caml_wrap_exception(_bCt_); - if(_bCt_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_xx_]; - throw _bCt_} - var - coefficient_multiplicateur_d83$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_xA_,Runtime_ocaml_Runtime[15],_a$x_); - try - {var - _a$y_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_560085)}, - _a$z_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_xC_,1)}, - _a$A_=caml_call4(Runtime_ocaml_Runtime[63],_xD_,[0],_a$z_,_a$y_)} - catch(_bCs_) - {_bCs_ = caml_wrap_exception(_bCs_); - if(_bCs_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_xB_]; - throw _bCs_} - var - montant_limite_tranches_d832_1= - caml_call3 - (Runtime_ocaml_Runtime[28],_xE_,Runtime_ocaml_Runtime[13],_a$A_); - try - {var - _a$B_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_0_208$0)}, - _a$C_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_xG_,1)}, - _a$D_=caml_call4(Runtime_ocaml_Runtime[63],_xH_,[0],_a$C_,_a$B_)} - catch(_bCr_) - {_bCr_ = caml_wrap_exception(_bCr_); - if(_bCr_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_xF_]; - throw _bCr_} - var - taux_tranche_inferieure_d832_1= - caml_call3 - (Runtime_ocaml_Runtime[28],_xI_,Runtime_ocaml_Runtime[15],_a$D_); - try - {var - _a$E_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_0_416)}, - _a$F_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_xK_,1)}, - _a$G_=caml_call4(Runtime_ocaml_Runtime[63],_xL_,[0],_a$F_,_a$E_)} - catch(_bCq_) - {_bCq_ = caml_wrap_exception(_bCq_); - if(_bCq_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_xJ_]; - throw _bCq_} - var - taux_tranche_superieure_d832_1= - caml_call3 - (Runtime_ocaml_Runtime[28],_xM_,Runtime_ocaml_Runtime[15],_a$G_); - try - {var - _a$H_= - function(param) - {var - _bCo_=caml_call1(Runtime_ocaml_Runtime[39],cst_6_55957), - _bCp_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$89); - return caml_call2(Runtime_ocaml_Runtime[107],_bCp_,_bCo_)}, - _a$I_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_xO_,1)}, - _a$J_=caml_call4(Runtime_ocaml_Runtime[63],_xP_,[0],_a$I_,_a$H_)} - catch(_bCn_) - {_bCn_ = caml_wrap_exception(_bCn_); - if(_bCn_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_xN_]; - throw _bCn_} - var - taux_francs_vers_euros= - caml_call3 - (Runtime_ocaml_Runtime[28],_xQ_,Runtime_ocaml_Runtime[15],_a$J_); - try - {var - _a$K_=function(param){return nombre_personnes_a_charge}, - _a$L_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_xS_,1)}, - _a$M_=caml_call4(Runtime_ocaml_Runtime[63],_xT_,[0],_a$L_,_a$K_), - calcul_nombre_parts_dot_nombre= - caml_call3 - (Runtime_ocaml_Runtime[28],_xU_,Runtime_ocaml_Runtime[14],_a$M_)} - catch(_bCm_) - {_bCm_ = caml_wrap_exception(_bCm_); - if(_bCm_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_xR_]; - throw _bCm_} - try - {var - _a$N_=function(param){return situation_familiale_calcul_apl}, - _a$O_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_xW_,1)}, - _a$P_=caml_call4(Runtime_ocaml_Runtime[63],_xX_,[0],_a$O_,_a$N_), - calcul_nombre_parts_dot_situat= - caml_call3 - (Runtime_ocaml_Runtime[28], - _xY_, - embed_situation_familiale_calc, - _a$P_)} - catch(_bCl_) - {_bCl_ = caml_wrap_exception(_bCl_); - if(_bCl_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_xV_]; - throw _bCl_} - var - _a$Q_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_xZ_,calcul_nombre_parts_accession_), - [0,calcul_nombre_parts_dot_nombre,calcul_nombre_parts_dot_situat]), - result=caml_call2(Runtime_ocaml_Runtime[27],_x0_,_a$Q_), - calcul_nombre_parts_dot_n_nomb=result[1]; - try - {var - _a$R_= - function(param) - {if(0 === anciennete_logement[0]) - {var _bCj_=caml_call3(Runtime_ocaml_Runtime[57],1998,10,1); - return caml_call2 - (Runtime_ocaml_Runtime[120],date_signature_pret,_bCj_) - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0226) - :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0234)} - var ameliore_par_occupant=anciennete_logement[1]; - if(0 === ameliore_par_occupant[0]) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0172); - var _bCk_=caml_call3(Runtime_ocaml_Runtime[57],1998,10,1); - return caml_call2 - (Runtime_ocaml_Runtime[120],date_signature_pret,_bCk_) - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0226$0) - :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0234$0)}, - _a$S_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_x2_,1)}, - _a$T_=caml_call4(Runtime_ocaml_Runtime[63],_x3_,[0],_a$S_,_a$R_)} - catch(_bCi_) - {_bCi_ = caml_wrap_exception(_bCi_); - if(_bCi_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_x1_]; - throw _bCi_} - var - coefficient_multiplicateur_d83$1= - caml_call3 - (Runtime_ocaml_Runtime[28],_x4_,Runtime_ocaml_Runtime[15],_a$T_); - try - {var - _a$U_=function(param){return date_courante}, - _a$V_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_x6_,1)}, - _a$W_=caml_call4(Runtime_ocaml_Runtime[63],_x7_,[0],_a$V_,_a$U_), - contributions_sociales_dot_dat= - caml_call3 - (Runtime_ocaml_Runtime[28],_x8_,Runtime_ocaml_Runtime[16],_a$W_)} - catch(_bCh_) - {_bCh_ = caml_wrap_exception(_bCh_); - if(_bCh_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_x5_]; - throw _bCh_} - var - _a$X_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_x9_,contributions_sociales_aides_p), - [0,contributions_sociales_dot_dat]), - result$0=caml_call2(Runtime_ocaml_Runtime[27],_x__,_a$X_), - contributions_sociales_dot_mon=result$0[1]; - try - {var - _a$Y_= - function(param) - {function _bBK_(param){throw Runtime_ocaml_Runtime[2]} - function _bBL_(param){return 0} - function _bBM_(param) - {function _bB8_(param) - {var - _bCd_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bCe_=caml_call1(Runtime_ocaml_Runtime[31],cst_1224$1), - _bCf_=caml_call2(Runtime_ocaml_Runtime[104],_bCe_,_bCd_), - _bCg_=caml_call1(Runtime_ocaml_Runtime[31],cst_5399$1); - return caml_call2(Runtime_ocaml_Runtime[93],_bCg_,_bCf_)} - function _bB9_(param) - {var - _bB__=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bB$_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bB__), - _bCa_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bCb_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bCa_), - _bCc_=caml_call2(Runtime_ocaml_Runtime[83],_bCb_,_bB$_); - return caml_call2(Runtime_ocaml_Runtime[29],_ya_,_bCc_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_yb_,[0],_bB9_,_bB8_)} - function _bBN_(param) - {function _bBX_(param) - {var - _bB4_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bB5_=caml_call1(Runtime_ocaml_Runtime[31],cst_1229$1), - _bB6_=caml_call2(Runtime_ocaml_Runtime[104],_bB5_,_bB4_), - _bB7_=caml_call1(Runtime_ocaml_Runtime[31],cst_5422$1); - return caml_call2(Runtime_ocaml_Runtime[93],_bB7_,_bB6_)} - function _bBY_(param) - {var - _bBZ_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bB0_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bBZ_), - _bB1_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bB2_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bB1_), - _bB3_=caml_call2(Runtime_ocaml_Runtime[83],_bB2_,_bB0_); - return caml_call2(Runtime_ocaml_Runtime[29],_yc_,_bB3_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_yd_,[0],_bBY_,_bBX_)} - var - _bBO_= - [0, - function(param) - {function _bBP_(param) - {var - _bBT_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bBU_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272$1), - _bBV_=caml_call2(Runtime_ocaml_Runtime[104],_bBU_,_bBT_), - _bBW_=caml_call1(Runtime_ocaml_Runtime[31],cst_5612$1); - return caml_call2(Runtime_ocaml_Runtime[93],_bBW_,_bBV_)} - function _bBQ_(param) - {var - _bBR_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bBS_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bBR_); - return caml_call2(Runtime_ocaml_Runtime[29],_ye_,_bBS_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_yf_,[0],_bBQ_,_bBP_)}, - _bBN_, - _bBM_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_yg_,_bBO_,_bBL_,_bBK_)}, - _a$Z_=function(param){return 1}, - _a$0_= - [0, - function(param) - {function _bA__(param){throw Runtime_ocaml_Runtime[2]} - function _bA$_(param){return 0} - function _bBa_(param) - {function _bBy_(param) - {var - _bBG_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bBH_=caml_call1(Runtime_ocaml_Runtime[31],cst_1224$2), - _bBI_=caml_call2(Runtime_ocaml_Runtime[104],_bBH_,_bBG_), - _bBJ_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_2699$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_5399$2); - return caml_call2(Runtime_ocaml_Runtime[93],_bBJ_,_bBI_)} - function _bBz_(param) - {var - _bBA_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bBB_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bBA_), - _bBC_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bBD_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bBC_), - _bBE_=caml_call2(Runtime_ocaml_Runtime[83],_bBD_,_bBB_), - _bBF_= - caml_call2(Runtime_ocaml_Runtime[83],_bBE_,copropriete); - return caml_call2(Runtime_ocaml_Runtime[29],_yh_,_bBF_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_yi_,[0],_bBz_,_bBy_)} - function _bBb_(param) - {function _bBm_(param) - {var - _bBu_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bBv_=caml_call1(Runtime_ocaml_Runtime[31],cst_1229$2), - _bBw_=caml_call2(Runtime_ocaml_Runtime[104],_bBv_,_bBu_), - _bBx_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_2710$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_5422$2); - return caml_call2(Runtime_ocaml_Runtime[93],_bBx_,_bBw_)} - function _bBn_(param) - {var - _bBo_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bBp_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bBo_), - _bBq_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bBr_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bBq_), - _bBs_=caml_call2(Runtime_ocaml_Runtime[83],_bBr_,_bBp_), - _bBt_= - caml_call2(Runtime_ocaml_Runtime[83],_bBs_,copropriete); - return caml_call2(Runtime_ocaml_Runtime[29],_yj_,_bBt_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_yk_,[0],_bBn_,_bBm_)} - var - _bBc_= - [0, - function(param) - {function _bBd_(param) - {var - _bBi_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bBj_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272$2), - _bBk_=caml_call2(Runtime_ocaml_Runtime[104],_bBj_,_bBi_), - _bBl_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_2805$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_5612$2); - return caml_call2(Runtime_ocaml_Runtime[93],_bBl_,_bBk_)} - function _bBe_(param) - {var - _bBf_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bBg_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bBf_), - _bBh_= - caml_call2(Runtime_ocaml_Runtime[83],_bBg_,copropriete); - return caml_call2(Runtime_ocaml_Runtime[29],_yl_,_bBh_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ym_,[0],_bBe_,_bBd_)}, - _bBb_, - _bBa_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_yn_,_bBc_,_bA$_,_bA__)}], - _a$1_=caml_call4(Runtime_ocaml_Runtime[63],_yo_,_a$0_,_a$Z_,_a$Y_)} - catch(_bA9_) - {_bA9_ = caml_wrap_exception(_bA9_); - if(_bA9_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_x$_]; - throw _bA9_} - var - montant_forfaitaire_charges_d8= - caml_call3 - (Runtime_ocaml_Runtime[28],_yp_,Runtime_ocaml_Runtime[13],_a$1_); - function _a$2_(aide_finale) - {try - {var - _bA3_= - function(param) - {var - _bA7_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$158), - _bA8_= - caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale, - montant_forfaitaire_d832_10); - return caml_call2(Runtime_ocaml_Runtime[128],_bA8_,_bA7_) - ?caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale, - montant_forfaitaire_d832_10) - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$159)}, - _bA4_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_yr_,1)}, - _bA5_=caml_call4(Runtime_ocaml_Runtime[63],_ys_,[0],_bA4_,_bA3_); - return _bA5_} - catch(_bA6_) - {_bA6_ = caml_wrap_exception(_bA6_); - if(_bA6_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_yq_]; - throw _bA6_}} - var - traitement_aide_finale_minorat= - caml_call3 - (Runtime_ocaml_Runtime[28],_yt_,Runtime_ocaml_Runtime[10],_a$2_); - try - {var - _a$3_= - function(param) - {var - _bA2_= - caml_call2 - (Runtime_ocaml_Runtime[104], - mensualite_principale, - coefficient_multiplicateur_d83$0); - return caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage_arrondies, - _bA2_) - ?caml_call2 - (Runtime_ocaml_Runtime[104], - mensualite_principale, - coefficient_multiplicateur_d83$0) - :ressources_menage_arrondies}, - _a$4_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_yv_,1)}, - _a$5_= - [0, - function(param) - {function _bA0_(param){return ressources_menage_arrondies} - function _bA1_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_yw_,situation_r822_11_13_17)} - return caml_call4(Runtime_ocaml_Runtime[63],_yx_,[0],_bA1_,_bA0_)}], - _a$6_=caml_call4(Runtime_ocaml_Runtime[63],_yy_,_a$5_,_a$4_,_a$3_)} - catch(_bAZ_) - {_bAZ_ = caml_wrap_exception(_bAZ_); - if(_bAZ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_yu_]; - throw _bAZ_} - var - ressources_menage_avec_d832_18= - caml_call3 - (Runtime_ocaml_Runtime[28],_yz_,Runtime_ocaml_Runtime[13],_a$6_); - function _a$7_(date_signature_pret) - {try - {var - _bcZ_=function(param){throw Runtime_ocaml_Runtime[2]}, - _bc0_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_yB_,0)}, - _bc1_= - function(param) - {function _byV_(param){throw Runtime_ocaml_Runtime[2]} - function _byW_(param){return 0} - function _byX_(param) - {function _bAv_(param) - {switch(zone[0]) - {case 0: - var _bAD_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$160); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bAD_)) - var - _bAE_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_148100) - :caml_call1(Runtime_ocaml_Runtime[31],cst_178700); - else - var - _bAF_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$90), - _bAG_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bAF_), - _bAH_=caml_call1(Runtime_ocaml_Runtime[69],_bAG_), - _bAI_=caml_call1(Runtime_ocaml_Runtime[31],cst_30600), - _bAJ_=caml_call2(Runtime_ocaml_Runtime[104],_bAI_,_bAH_), - _bAK_=caml_call1(Runtime_ocaml_Runtime[31],cst_209300), - _bAE_=caml_call2(Runtime_ocaml_Runtime[93],_bAK_,_bAJ_); - break; - case 1: - var _bAL_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$161); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bAL_)) - var - _bAE_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_132000) - :caml_call1(Runtime_ocaml_Runtime[31],cst_158900); - else - var - _bAM_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$91), - _bAN_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bAM_), - _bAO_=caml_call1(Runtime_ocaml_Runtime[69],_bAN_), - _bAP_=caml_call1(Runtime_ocaml_Runtime[31],cst_26900), - _bAQ_=caml_call2(Runtime_ocaml_Runtime[104],_bAP_,_bAO_), - _bAR_=caml_call1(Runtime_ocaml_Runtime[31],cst_185800), - _bAE_=caml_call2(Runtime_ocaml_Runtime[93],_bAR_,_bAQ_); - break; - default: - var _bAS_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$162); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bAS_)) - var - _bAE_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_123300) - :caml_call1(Runtime_ocaml_Runtime[31],cst_147900); - else - var - _bAT_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$92), - _bAU_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bAT_), - _bAV_=caml_call1(Runtime_ocaml_Runtime[69],_bAU_), - _bAW_=caml_call1(Runtime_ocaml_Runtime[31],cst_24600), - _bAX_=caml_call2(Runtime_ocaml_Runtime[104],_bAW_,_bAV_), - _bAY_=caml_call1(Runtime_ocaml_Runtime[31],cst_172500), - _bAE_=caml_call2(Runtime_ocaml_Runtime[93],_bAY_,_bAX_)} - return caml_call2 - (Runtime_ocaml_Runtime[104],_bAE_,taux_francs_vers_euros)} - function _bAw_(param) - {switch(type_pret[0]) - {case 0:var _bAx_=1;break; - case 1:var _bAx_=0;break; - case 2:var _bAx_=0;break; - case 3:var _bAx_=0;break; - default:var _bAx_=0} - var - _bAy_=0 === anciennete_logement[0]?0:1, - _bAz_=caml_call2(Runtime_ocaml_Runtime[83],_bAy_,_bAx_), - _bAA_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), - _bAB_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bAA_), - _bAC_=caml_call2(Runtime_ocaml_Runtime[83],_bAB_,_bAz_); - return caml_call2(Runtime_ocaml_Runtime[29],_yC_,_bAC_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_yD_,[0],_bAw_,_bAv_)} - function _byY_(param) - {function _bz3_(param) - {switch(zone[0]) - {case 0: - var _bz$_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$163); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bz$_)) - var - _bAa_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_184000) - :caml_call1(Runtime_ocaml_Runtime[31],cst_220000); - else - var - _bAb_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$93), - _bAc_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bAb_), - _bAd_=caml_call1(Runtime_ocaml_Runtime[69],_bAc_), - _bAe_=caml_call1(Runtime_ocaml_Runtime[31],cst_38000), - _bAf_=caml_call2(Runtime_ocaml_Runtime[104],_bAe_,_bAd_), - _bAg_=caml_call1(Runtime_ocaml_Runtime[31],cst_260000), - _bAa_=caml_call2(Runtime_ocaml_Runtime[93],_bAg_,_bAf_); - break; - case 1: - var _bAh_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$164); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bAh_)) - var - _bAa_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_164200) - :caml_call1(Runtime_ocaml_Runtime[31],cst_197700); - else - var - _bAi_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$94), - _bAj_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bAi_), - _bAk_=caml_call1(Runtime_ocaml_Runtime[69],_bAj_), - _bAl_=caml_call1(Runtime_ocaml_Runtime[31],cst_33500), - _bAm_=caml_call2(Runtime_ocaml_Runtime[104],_bAl_,_bAk_), - _bAn_=caml_call1(Runtime_ocaml_Runtime[31],cst_231200), - _bAa_=caml_call2(Runtime_ocaml_Runtime[93],_bAn_,_bAm_); - break; - default: - var _bAo_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$165); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bAo_)) - var - _bAa_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_153200) - :caml_call1(Runtime_ocaml_Runtime[31],cst_183700); - else - var - _bAp_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$95), - _bAq_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bAp_), - _bAr_=caml_call1(Runtime_ocaml_Runtime[69],_bAq_), - _bAs_=caml_call1(Runtime_ocaml_Runtime[31],cst_30500$0), - _bAt_=caml_call2(Runtime_ocaml_Runtime[104],_bAs_,_bAr_), - _bAu_=caml_call1(Runtime_ocaml_Runtime[31],cst_214200), - _bAa_=caml_call2(Runtime_ocaml_Runtime[93],_bAu_,_bAt_)} - return caml_call2 - (Runtime_ocaml_Runtime[104],_bAa_,taux_francs_vers_euros)} - function _bz4_(param) - {switch(type_pret[0]) - {case 0:var _bz5_=1;break; - case 1:var _bz5_=0;break; - case 2:var _bz5_=0;break; - case 3:var _bz5_=0;break; - default:var _bz5_=0} - var - _bz6_=0 === anciennete_logement[0]?1:0, - _bz7_=caml_call2(Runtime_ocaml_Runtime[83],_bz6_,_bz5_), - _bz8_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), - _bz9_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bz8_), - _bz__=caml_call2(Runtime_ocaml_Runtime[83],_bz9_,_bz7_); - return caml_call2(Runtime_ocaml_Runtime[29],_yE_,_bz__)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_yF_,[0],_bz4_,_bz3_)} - function _byZ_(param) - {function _bzw_(param) - {switch(zone[0]) - {case 0: - var _bzH_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$166); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bzH_)) - var - _bzI_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_167800) - :caml_call1(Runtime_ocaml_Runtime[31],cst_202500); - else - var - _bzJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$96), - _bzK_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bzJ_), - _bzL_=caml_call1(Runtime_ocaml_Runtime[69],_bzK_), - _bzM_=caml_call1(Runtime_ocaml_Runtime[31],cst_34700), - _bzN_=caml_call2(Runtime_ocaml_Runtime[104],_bzM_,_bzL_), - _bzO_=caml_call1(Runtime_ocaml_Runtime[31],cst_237200), - _bzI_=caml_call2(Runtime_ocaml_Runtime[93],_bzO_,_bzN_); - break; - case 1: - var _bzP_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$167); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bzP_)) - var - _bzI_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_149600) - :caml_call1(Runtime_ocaml_Runtime[31],cst_180100); - else - var - _bzQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$97), - _bzR_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bzQ_), - _bzS_=caml_call1(Runtime_ocaml_Runtime[69],_bzR_), - _bzT_=caml_call1(Runtime_ocaml_Runtime[31],cst_30500$1), - _bzU_=caml_call2(Runtime_ocaml_Runtime[104],_bzT_,_bzS_), - _bzV_=caml_call1(Runtime_ocaml_Runtime[31],cst_210600), - _bzI_=caml_call2(Runtime_ocaml_Runtime[93],_bzV_,_bzU_); - break; - default: - var _bzW_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$168); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bzW_)) - var - _bzI_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_139700) - :caml_call1(Runtime_ocaml_Runtime[31],cst_167600); - else - var - _bzX_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$98), - _bzY_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bzX_), - _bzZ_=caml_call1(Runtime_ocaml_Runtime[69],_bzY_), - _bz0_=caml_call1(Runtime_ocaml_Runtime[31],cst_27900), - _bz1_=caml_call2(Runtime_ocaml_Runtime[104],_bz0_,_bzZ_), - _bz2_=caml_call1(Runtime_ocaml_Runtime[31],cst_195500), - _bzI_=caml_call2(Runtime_ocaml_Runtime[93],_bz2_,_bz1_)} - return caml_call2 - (Runtime_ocaml_Runtime[104],_bzI_,taux_francs_vers_euros)} - function _bzx_(param) - {switch(type_pret[0]) - {case 0:var _bzy_=1;break; - case 1:var _bzy_=0;break; - case 2:var _bzy_=0;break; - case 3:var _bzy_=0;break; - default:var _bzy_=0} - var - _bzz_=0 === anciennete_logement[0]?0:1, - _bzA_=caml_call2(Runtime_ocaml_Runtime[83],_bzz_,_bzy_), - _bzB_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), - _bzC_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bzB_), - _bzD_=caml_call2(Runtime_ocaml_Runtime[83],_bzC_,_bzA_), - _bzE_=caml_call3(Runtime_ocaml_Runtime[57],1992,6,30), - _bzF_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bzE_), - _bzG_=caml_call2(Runtime_ocaml_Runtime[83],_bzF_,_bzD_); - return caml_call2(Runtime_ocaml_Runtime[29],_yG_,_bzG_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_yH_,[0],_bzx_,_bzw_)} - var - _by0_= - [0, - function(param) - {function _by1_(param) - {switch(zone[0]) - {case 0: - var _bza_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$169); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bza_)) - var - _bzb_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_208500) - :caml_call1(Runtime_ocaml_Runtime[31],cst_251500); - else - var - _bzc_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$99), - _bzd_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bzc_), - _bze_=caml_call1(Runtime_ocaml_Runtime[69],_bzd_), - _bzf_=caml_call1(Runtime_ocaml_Runtime[31],cst_43000), - _bzg_=caml_call2(Runtime_ocaml_Runtime[104],_bzf_,_bze_), - _bzh_=caml_call1(Runtime_ocaml_Runtime[31],cst_294500), - _bzb_=caml_call2(Runtime_ocaml_Runtime[93],_bzh_,_bzg_); - break; - case 1: - var _bzi_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$170); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bzi_)) - var - _bzb_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_186000) - :caml_call1(Runtime_ocaml_Runtime[31],cst_223900); - else - var - _bzj_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$100), - _bzk_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bzj_), - _bzl_=caml_call1(Runtime_ocaml_Runtime[69],_bzk_), - _bzm_=caml_call1(Runtime_ocaml_Runtime[31],cst_37900), - _bzn_=caml_call2(Runtime_ocaml_Runtime[104],_bzm_,_bzl_), - _bzo_=caml_call1(Runtime_ocaml_Runtime[31],cst_261800), - _bzb_=caml_call2(Runtime_ocaml_Runtime[93],_bzo_,_bzn_); - break; - default: - var _bzp_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$171); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bzp_)) - var - _bzb_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_173600) - :caml_call1(Runtime_ocaml_Runtime[31],cst_208200); - else - var - _bzq_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$101), - _bzr_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bzq_), - _bzs_=caml_call1(Runtime_ocaml_Runtime[69],_bzr_), - _bzt_=caml_call1(Runtime_ocaml_Runtime[31],cst_35600), - _bzu_=caml_call2(Runtime_ocaml_Runtime[104],_bzt_,_bzs_), - _bzv_=caml_call1(Runtime_ocaml_Runtime[31],cst_242800), - _bzb_=caml_call2(Runtime_ocaml_Runtime[93],_bzv_,_bzu_)} - return caml_call2 - (Runtime_ocaml_Runtime[104],_bzb_,taux_francs_vers_euros)} - function _by2_(param) - {switch(type_pret[0]) - {case 0:var _by3_=1;break; - case 1:var _by3_=0;break; - case 2:var _by3_=0;break; - case 3:var _by3_=0;break; - default:var _by3_=0} - var - _by4_=0 === anciennete_logement[0]?1:0, - _by5_=caml_call2(Runtime_ocaml_Runtime[83],_by4_,_by3_), - _by6_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), - _by7_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_by6_), - _by8_=caml_call2(Runtime_ocaml_Runtime[83],_by7_,_by5_), - _by9_=caml_call3(Runtime_ocaml_Runtime[57],1992,6,30), - _by__= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_by9_), - _by$_=caml_call2(Runtime_ocaml_Runtime[83],_by__,_by8_); - return caml_call2(Runtime_ocaml_Runtime[29],_yI_,_by$_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_yJ_,[0],_by2_,_by1_)}, - _byZ_, - _byY_, - _byX_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_yK_,_by0_,_byW_,_byV_)}, - _bc2_= - [0, - function(param) - {function _bc5_(param) - {function _bdt_(param){throw Runtime_ocaml_Runtime[2]} - function _bdu_(param){return 0} - function _bdv_(param) - {function _byp_(param) - {switch(zone[0]) - {case 0: - var _byA_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$172); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_byA_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29986) - :caml_call1(Runtime_ocaml_Runtime[31],cst_36187); - var - _byB_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$102), - _byC_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_byB_), - _byD_=caml_call1(Runtime_ocaml_Runtime[69],_byC_), - _byE_=caml_call1(Runtime_ocaml_Runtime[31],cst_6201), - _byF_=caml_call2(Runtime_ocaml_Runtime[104],_byE_,_byD_), - _byG_=caml_call1(Runtime_ocaml_Runtime[31],cst_42386); - return caml_call2(Runtime_ocaml_Runtime[93],_byG_,_byF_); - case 1: - var _byH_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$173); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_byH_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26730) - :caml_call1(Runtime_ocaml_Runtime[31],cst_32193); - var - _byI_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$103), - _byJ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_byI_), - _byK_=caml_call1(Runtime_ocaml_Runtime[69],_byJ_), - _byL_=caml_call1(Runtime_ocaml_Runtime[31],cst_5463), - _byM_=caml_call2(Runtime_ocaml_Runtime[104],_byL_,_byK_), - _byN_=caml_call1(Runtime_ocaml_Runtime[31],cst_37656); - return caml_call2(Runtime_ocaml_Runtime[93],_byN_,_byM_); - default: - var _byO_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$174); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_byO_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24964) - :caml_call1(Runtime_ocaml_Runtime[31],cst_29948); - var - _byP_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$104), - _byQ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_byP_), - _byR_=caml_call1(Runtime_ocaml_Runtime[69],_byQ_), - _byS_=caml_call1(Runtime_ocaml_Runtime[31],cst_4986), - _byT_=caml_call2(Runtime_ocaml_Runtime[104],_byS_,_byR_), - _byU_=caml_call1(Runtime_ocaml_Runtime[31],cst_34934); - return caml_call2(Runtime_ocaml_Runtime[93],_byU_,_byT_)}} - function _byq_(param) - {switch(type_pret[0]) - {case 0:var _byr_=0;break; - case 1:var _byr_=1;break; - case 2:var _byr_=0;break; - case 3:var _byr_=0;break; - default:var _byr_=0} - var - _bys_=0 === anciennete_logement[0]?0:1, - _byt_=caml_call2(Runtime_ocaml_Runtime[83],_bys_,_byr_), - _byu_=caml_call3(Runtime_ocaml_Runtime[57],2019,9,30), - _byv_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_byu_), - _byw_=caml_call2(Runtime_ocaml_Runtime[83],_byv_,_byt_), - _byx_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _byy_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_byx_), - _byz_=caml_call2(Runtime_ocaml_Runtime[83],_byy_,_byw_); - return caml_call2(Runtime_ocaml_Runtime[29],_yL_,_byz_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_yM_,[0],_byq_,_byp_)} - function _bdw_(param) - {function _bxV_(param) - {switch(zone[0]) - {case 0: - var _bx6_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$175); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bx6_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_37252) - :caml_call1(Runtime_ocaml_Runtime[31],cst_44941); - var - _bx7_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$105), - _bx8_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bx7_), - _bx9_=caml_call1(Runtime_ocaml_Runtime[69],_bx8_), - _bx__=caml_call1(Runtime_ocaml_Runtime[31],cst_7687), - _bx$_=caml_call2(Runtime_ocaml_Runtime[104],_bx__,_bx9_), - _bya_=caml_call1(Runtime_ocaml_Runtime[31],cst_52629); - return caml_call2(Runtime_ocaml_Runtime[93],_bya_,_bx$_); - case 1: - var _byb_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$176); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_byb_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_33244) - :caml_call1(Runtime_ocaml_Runtime[31],cst_40013); - var - _byc_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$106), - _byd_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_byc_), - _bye_=caml_call1(Runtime_ocaml_Runtime[69],_byd_), - _byf_=caml_call1(Runtime_ocaml_Runtime[31],cst_6768), - _byg_=caml_call2(Runtime_ocaml_Runtime[104],_byf_,_bye_), - _byh_=caml_call1(Runtime_ocaml_Runtime[31],cst_46783); - return caml_call2(Runtime_ocaml_Runtime[93],_byh_,_byg_); - default: - var _byi_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$177); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_byi_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_31036) - :caml_call1(Runtime_ocaml_Runtime[31],cst_37215); - var - _byj_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$107), - _byk_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_byj_), - _byl_=caml_call1(Runtime_ocaml_Runtime[69],_byk_), - _bym_=caml_call1(Runtime_ocaml_Runtime[31],cst_6179), - _byn_=caml_call2(Runtime_ocaml_Runtime[104],_bym_,_byl_), - _byo_=caml_call1(Runtime_ocaml_Runtime[31],cst_43394); - return caml_call2(Runtime_ocaml_Runtime[93],_byo_,_byn_)}} - function _bxW_(param) - {switch(type_pret[0]) - {case 0:var _bxX_=0;break; - case 1:var _bxX_=1;break; - case 2:var _bxX_=0;break; - case 3:var _bxX_=0;break; - default:var _bxX_=0} - var - _bxY_=0 === anciennete_logement[0]?1:0, - _bxZ_=caml_call2(Runtime_ocaml_Runtime[83],_bxY_,_bxX_), - _bx0_=caml_call3(Runtime_ocaml_Runtime[57],2019,9,30), - _bx1_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bx0_), - _bx2_=caml_call2(Runtime_ocaml_Runtime[83],_bx1_,_bxZ_), - _bx3_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bx4_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bx3_), - _bx5_=caml_call2(Runtime_ocaml_Runtime[83],_bx4_,_bx2_); - return caml_call2(Runtime_ocaml_Runtime[29],_yN_,_bx5_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_yO_,[0],_bxW_,_bxV_)} - function _bdx_(param) - {function _bxm_(param) - {switch(zone[0]) - {case 0: - var _bxA_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$178); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bxA_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29897) - :caml_call1(Runtime_ocaml_Runtime[31],cst_36079); - var - _bxB_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$108), - _bxC_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bxB_), - _bxD_=caml_call1(Runtime_ocaml_Runtime[69],_bxC_), - _bxE_=caml_call1(Runtime_ocaml_Runtime[31],cst_6182), - _bxF_=caml_call2(Runtime_ocaml_Runtime[104],_bxE_,_bxD_), - _bxG_=caml_call1(Runtime_ocaml_Runtime[31],cst_42260); - return caml_call2(Runtime_ocaml_Runtime[93],_bxG_,_bxF_); - case 1: - var _bxH_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$179); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bxH_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26650) - :caml_call1(Runtime_ocaml_Runtime[31],cst_32097); - var - _bxI_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$109), - _bxJ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bxI_), - _bxK_=caml_call1(Runtime_ocaml_Runtime[69],_bxJ_), - _bxL_=caml_call1(Runtime_ocaml_Runtime[31],cst_5447), - _bxM_=caml_call2(Runtime_ocaml_Runtime[104],_bxL_,_bxK_), - _bxN_=caml_call1(Runtime_ocaml_Runtime[31],cst_37543); - return caml_call2(Runtime_ocaml_Runtime[93],_bxN_,_bxM_); - default: - var _bxO_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$180); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bxO_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24889) - :caml_call1(Runtime_ocaml_Runtime[31],cst_29858); - var - _bxP_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$110), - _bxQ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bxP_), - _bxR_=caml_call1(Runtime_ocaml_Runtime[69],_bxQ_), - _bxS_=caml_call1(Runtime_ocaml_Runtime[31],cst_4971), - _bxT_=caml_call2(Runtime_ocaml_Runtime[104],_bxS_,_bxR_), - _bxU_=caml_call1(Runtime_ocaml_Runtime[31],cst_34829); - return caml_call2(Runtime_ocaml_Runtime[93],_bxU_,_bxT_)}} - function _bxn_(param) - {switch(type_pret[0]) - {case 0:var _bxo_=0;break; - case 1:var _bxo_=1;break; - case 2:var _bxo_=0;break; - case 3:var _bxo_=0;break; - default:var _bxo_=0} - var - _bxp_=0 === anciennete_logement[0]?0:1, - _bxq_=caml_call2(Runtime_ocaml_Runtime[83],_bxp_,_bxo_), - _bxr_=caml_call3(Runtime_ocaml_Runtime[57],2019,9,30), - _bxs_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bxr_), - _bxt_=caml_call2(Runtime_ocaml_Runtime[83],_bxs_,_bxq_), - _bxu_=caml_call3(Runtime_ocaml_Runtime[57],2017,9,30), - _bxv_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bxu_), - _bxw_=caml_call2(Runtime_ocaml_Runtime[83],_bxv_,_bxt_), - _bxx_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bxy_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bxx_), - _bxz_=caml_call2(Runtime_ocaml_Runtime[83],_bxy_,_bxw_); - return caml_call2(Runtime_ocaml_Runtime[29],_yP_,_bxz_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_yQ_,[0],_bxn_,_bxm_)} - function _bdy_(param) - {function _bwP_(param) - {switch(zone[0]) - {case 0: - var _bw3_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$181); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bw3_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_37140) - :caml_call1(Runtime_ocaml_Runtime[31],cst_44807); - var - _bw4_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$111), - _bw5_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bw4_), - _bw6_=caml_call1(Runtime_ocaml_Runtime[69],_bw5_), - _bw7_=caml_call1(Runtime_ocaml_Runtime[31],cst_7664), - _bw8_=caml_call2(Runtime_ocaml_Runtime[104],_bw7_,_bw6_), - _bw9_=caml_call1(Runtime_ocaml_Runtime[31],cst_52472); - return caml_call2(Runtime_ocaml_Runtime[93],_bw9_,_bw8_); - case 1: - var _bw__=caml_call1(Runtime_ocaml_Runtime[46],cst_0$182); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bw__)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_33145) - :caml_call1(Runtime_ocaml_Runtime[31],cst_39893); - var - _bw$_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$112), - _bxa_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bw$_), - _bxb_=caml_call1(Runtime_ocaml_Runtime[69],_bxa_), - _bxc_=caml_call1(Runtime_ocaml_Runtime[31],cst_6748), - _bxd_=caml_call2(Runtime_ocaml_Runtime[104],_bxc_,_bxb_), - _bxe_=caml_call1(Runtime_ocaml_Runtime[31],cst_46643); - return caml_call2(Runtime_ocaml_Runtime[93],_bxe_,_bxd_); - default: - var _bxf_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$183); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bxf_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_30943) - :caml_call1(Runtime_ocaml_Runtime[31],cst_37103); - var - _bxg_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$113), - _bxh_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bxg_), - _bxi_=caml_call1(Runtime_ocaml_Runtime[69],_bxh_), - _bxj_=caml_call1(Runtime_ocaml_Runtime[31],cst_6161), - _bxk_=caml_call2(Runtime_ocaml_Runtime[104],_bxj_,_bxi_), - _bxl_=caml_call1(Runtime_ocaml_Runtime[31],cst_43264); - return caml_call2(Runtime_ocaml_Runtime[93],_bxl_,_bxk_)}} - function _bwQ_(param) - {switch(type_pret[0]) - {case 0:var _bwR_=0;break; - case 1:var _bwR_=1;break; - case 2:var _bwR_=0;break; - case 3:var _bwR_=0;break; - default:var _bwR_=0} - var - _bwS_=0 === anciennete_logement[0]?1:0, - _bwT_=caml_call2(Runtime_ocaml_Runtime[83],_bwS_,_bwR_), - _bwU_=caml_call3(Runtime_ocaml_Runtime[57],2019,9,30), - _bwV_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bwU_), - _bwW_=caml_call2(Runtime_ocaml_Runtime[83],_bwV_,_bwT_), - _bwX_=caml_call3(Runtime_ocaml_Runtime[57],2017,9,30), - _bwY_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bwX_), - _bwZ_=caml_call2(Runtime_ocaml_Runtime[83],_bwY_,_bwW_), - _bw0_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bw1_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bw0_), - _bw2_=caml_call2(Runtime_ocaml_Runtime[83],_bw1_,_bwZ_); - return caml_call2(Runtime_ocaml_Runtime[29],_yR_,_bw2_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_yS_,[0],_bwQ_,_bwP_)} - function _bdz_(param) - {function _bwg_(param) - {switch(zone[0]) - {case 0: - var _bwu_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$184); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bwu_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29674) - :caml_call1(Runtime_ocaml_Runtime[31],cst_35810); - var - _bwv_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$114), - _bww_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bwv_), - _bwx_=caml_call1(Runtime_ocaml_Runtime[69],_bww_), - _bwy_=caml_call1(Runtime_ocaml_Runtime[31],cst_6136), - _bwz_=caml_call2(Runtime_ocaml_Runtime[104],_bwy_,_bwx_), - _bwA_=caml_call1(Runtime_ocaml_Runtime[31],cst_41945); - return caml_call2(Runtime_ocaml_Runtime[93],_bwA_,_bwz_); - case 1: - var _bwB_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$185); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bwB_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26452) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31858); - var - _bwC_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$115), - _bwD_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bwC_), - _bwE_=caml_call1(Runtime_ocaml_Runtime[69],_bwD_), - _bwF_=caml_call1(Runtime_ocaml_Runtime[31],cst_5406), - _bwG_=caml_call2(Runtime_ocaml_Runtime[104],_bwF_,_bwE_), - _bwH_=caml_call1(Runtime_ocaml_Runtime[31],cst_37264); - return caml_call2(Runtime_ocaml_Runtime[93],_bwH_,_bwG_); - default: - var _bwI_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$186); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bwI_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24704) - :caml_call1(Runtime_ocaml_Runtime[31],cst_29636); - var - _bwJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$116), - _bwK_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bwJ_), - _bwL_=caml_call1(Runtime_ocaml_Runtime[69],_bwK_), - _bwM_=caml_call1(Runtime_ocaml_Runtime[31],cst_4934), - _bwN_=caml_call2(Runtime_ocaml_Runtime[104],_bwM_,_bwL_), - _bwO_=caml_call1(Runtime_ocaml_Runtime[31],cst_34570); - return caml_call2(Runtime_ocaml_Runtime[93],_bwO_,_bwN_)}} - function _bwh_(param) - {switch(type_pret[0]) - {case 0:var _bwi_=0;break; - case 1:var _bwi_=1;break; - case 2:var _bwi_=0;break; - case 3:var _bwi_=0;break; - default:var _bwi_=0} - var - _bwj_=0 === anciennete_logement[0]?0:1, - _bwk_=caml_call2(Runtime_ocaml_Runtime[83],_bwj_,_bwi_), - _bwl_=caml_call3(Runtime_ocaml_Runtime[57],2017,9,30), - _bwm_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bwl_), - _bwn_=caml_call2(Runtime_ocaml_Runtime[83],_bwm_,_bwk_), - _bwo_=caml_call3(Runtime_ocaml_Runtime[57],2015,9,30), - _bwp_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bwo_), - _bwq_=caml_call2(Runtime_ocaml_Runtime[83],_bwp_,_bwn_), - _bwr_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bws_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bwr_), - _bwt_=caml_call2(Runtime_ocaml_Runtime[83],_bws_,_bwq_); - return caml_call2(Runtime_ocaml_Runtime[29],_yT_,_bwt_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_yU_,[0],_bwh_,_bwg_)} - function _bdA_(param) - {function _bvJ_(param) - {switch(zone[0]) - {case 0: - var _bvX_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$187); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bvX_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_36864) - :caml_call1(Runtime_ocaml_Runtime[31],cst_44473); - var - _bvY_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$117), - _bvZ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bvY_), - _bv0_=caml_call1(Runtime_ocaml_Runtime[69],_bvZ_), - _bv1_=caml_call1(Runtime_ocaml_Runtime[31],cst_7607), - _bv2_=caml_call2(Runtime_ocaml_Runtime[104],_bv1_,_bv0_), - _bv3_=caml_call1(Runtime_ocaml_Runtime[31],cst_52081); - return caml_call2(Runtime_ocaml_Runtime[93],_bv3_,_bv2_); - case 1: - var _bv4_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$188); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bv4_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_32898) - :caml_call1(Runtime_ocaml_Runtime[31],cst_39596); - var - _bv5_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$118), - _bv6_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bv5_), - _bv7_=caml_call1(Runtime_ocaml_Runtime[69],_bv6_), - _bv8_=caml_call1(Runtime_ocaml_Runtime[31],cst_6698), - _bv9_=caml_call2(Runtime_ocaml_Runtime[104],_bv8_,_bv7_), - _bv__=caml_call1(Runtime_ocaml_Runtime[31],cst_46296); - return caml_call2(Runtime_ocaml_Runtime[93],_bv__,_bv9_); - default: - var _bv$_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$189); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bv$_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_30713) - :caml_call1(Runtime_ocaml_Runtime[31],cst_36827); - var - _bwa_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$119), - _bwb_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bwa_), - _bwc_=caml_call1(Runtime_ocaml_Runtime[69],_bwb_), - _bwd_=caml_call1(Runtime_ocaml_Runtime[31],cst_6115), - _bwe_=caml_call2(Runtime_ocaml_Runtime[104],_bwd_,_bwc_), - _bwf_=caml_call1(Runtime_ocaml_Runtime[31],cst_42942); - return caml_call2(Runtime_ocaml_Runtime[93],_bwf_,_bwe_)}} - function _bvK_(param) - {switch(type_pret[0]) - {case 0:var _bvL_=0;break; - case 1:var _bvL_=1;break; - case 2:var _bvL_=0;break; - case 3:var _bvL_=0;break; - default:var _bvL_=0} - var - _bvM_=0 === anciennete_logement[0]?1:0, - _bvN_=caml_call2(Runtime_ocaml_Runtime[83],_bvM_,_bvL_), - _bvO_=caml_call3(Runtime_ocaml_Runtime[57],2017,9,30), - _bvP_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bvO_), - _bvQ_=caml_call2(Runtime_ocaml_Runtime[83],_bvP_,_bvN_), - _bvR_=caml_call3(Runtime_ocaml_Runtime[57],2015,9,30), - _bvS_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bvR_), - _bvT_=caml_call2(Runtime_ocaml_Runtime[83],_bvS_,_bvQ_), - _bvU_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bvV_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bvU_), - _bvW_=caml_call2(Runtime_ocaml_Runtime[83],_bvV_,_bvT_); - return caml_call2(Runtime_ocaml_Runtime[29],_yV_,_bvW_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_yW_,[0],_bvK_,_bvJ_)} - function _bdB_(param) - {function _bva_(param) - {switch(zone[0]) - {case 0: - var _bvo_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$190); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bvo_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29650) - :caml_call1(Runtime_ocaml_Runtime[31],cst_35781); - var - _bvp_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$120), - _bvq_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bvp_), - _bvr_=caml_call1(Runtime_ocaml_Runtime[69],_bvq_), - _bvs_=caml_call1(Runtime_ocaml_Runtime[31],cst_6131), - _bvt_=caml_call2(Runtime_ocaml_Runtime[104],_bvs_,_bvr_), - _bvu_=caml_call1(Runtime_ocaml_Runtime[31],cst_41911); - return caml_call2(Runtime_ocaml_Runtime[93],_bvu_,_bvt_); - case 1: - var _bvv_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$191); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bvv_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26431) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31833); - var - _bvw_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$121), - _bvx_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bvw_), - _bvy_=caml_call1(Runtime_ocaml_Runtime[69],_bvx_), - _bvz_=caml_call1(Runtime_ocaml_Runtime[31],cst_5402), - _bvA_=caml_call2(Runtime_ocaml_Runtime[104],_bvz_,_bvy_), - _bvB_=caml_call1(Runtime_ocaml_Runtime[31],cst_37234); - return caml_call2(Runtime_ocaml_Runtime[93],_bvB_,_bvA_); - default: - var _bvC_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$192); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bvC_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24684) - :caml_call1(Runtime_ocaml_Runtime[31],cst_29612); - var - _bvD_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$122), - _bvE_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bvD_), - _bvF_=caml_call1(Runtime_ocaml_Runtime[69],_bvE_), - _bvG_=caml_call1(Runtime_ocaml_Runtime[31],cst_4930), - _bvH_=caml_call2(Runtime_ocaml_Runtime[104],_bvG_,_bvF_), - _bvI_=caml_call1(Runtime_ocaml_Runtime[31],cst_34542); - return caml_call2(Runtime_ocaml_Runtime[93],_bvI_,_bvH_)}} - function _bvb_(param) - {switch(type_pret[0]) - {case 0:var _bvc_=0;break; - case 1:var _bvc_=1;break; - case 2:var _bvc_=0;break; - case 3:var _bvc_=0;break; - default:var _bvc_=0} - var - _bvd_=0 === anciennete_logement[0]?0:1, - _bve_=caml_call2(Runtime_ocaml_Runtime[83],_bvd_,_bvc_), - _bvf_=caml_call3(Runtime_ocaml_Runtime[57],2015,9,30), - _bvg_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bvf_), - _bvh_=caml_call2(Runtime_ocaml_Runtime[83],_bvg_,_bve_), - _bvi_=caml_call3(Runtime_ocaml_Runtime[57],2014,9,30), - _bvj_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bvi_), - _bvk_=caml_call2(Runtime_ocaml_Runtime[83],_bvj_,_bvh_), - _bvl_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bvm_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bvl_), - _bvn_=caml_call2(Runtime_ocaml_Runtime[83],_bvm_,_bvk_); - return caml_call2(Runtime_ocaml_Runtime[29],_yX_,_bvn_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_yY_,[0],_bvb_,_bva_)} - function _bdC_(param) - {function _buD_(param) - {switch(zone[0]) - {case 0: - var _buR_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$193); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_buR_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_36835) - :caml_call1(Runtime_ocaml_Runtime[31],cst_44437); - var - _buS_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$123), - _buT_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_buS_), - _buU_=caml_call1(Runtime_ocaml_Runtime[69],_buT_), - _buV_=caml_call1(Runtime_ocaml_Runtime[31],cst_7601), - _buW_=caml_call2(Runtime_ocaml_Runtime[104],_buV_,_buU_), - _buX_=caml_call1(Runtime_ocaml_Runtime[31],cst_52039); - return caml_call2(Runtime_ocaml_Runtime[93],_buX_,_buW_); - case 1: - var _buY_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$194); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_buY_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_32872) - :caml_call1(Runtime_ocaml_Runtime[31],cst_39564); - var - _buZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$124), - _bu0_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_buZ_), - _bu1_=caml_call1(Runtime_ocaml_Runtime[69],_bu0_), - _bu2_=caml_call1(Runtime_ocaml_Runtime[31],cst_6693), - _bu3_=caml_call2(Runtime_ocaml_Runtime[104],_bu2_,_bu1_), - _bu4_=caml_call1(Runtime_ocaml_Runtime[31],cst_46259); - return caml_call2(Runtime_ocaml_Runtime[93],_bu4_,_bu3_); - default: - var _bu5_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$195); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bu5_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_30688) - :caml_call1(Runtime_ocaml_Runtime[31],cst_36798); - var - _bu6_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$125), - _bu7_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bu6_), - _bu8_=caml_call1(Runtime_ocaml_Runtime[69],_bu7_), - _bu9_=caml_call1(Runtime_ocaml_Runtime[31],cst_6110), - _bu__=caml_call2(Runtime_ocaml_Runtime[104],_bu9_,_bu8_), - _bu$_=caml_call1(Runtime_ocaml_Runtime[31],cst_42908); - return caml_call2(Runtime_ocaml_Runtime[93],_bu$_,_bu__)}} - function _buE_(param) - {switch(type_pret[0]) - {case 0:var _buF_=0;break; - case 1:var _buF_=1;break; - case 2:var _buF_=0;break; - case 3:var _buF_=0;break; - default:var _buF_=0} - var - _buG_=0 === anciennete_logement[0]?1:0, - _buH_=caml_call2(Runtime_ocaml_Runtime[83],_buG_,_buF_), - _buI_=caml_call3(Runtime_ocaml_Runtime[57],2015,9,30), - _buJ_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_buI_), - _buK_=caml_call2(Runtime_ocaml_Runtime[83],_buJ_,_buH_), - _buL_=caml_call3(Runtime_ocaml_Runtime[57],2014,9,30), - _buM_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_buL_), - _buN_=caml_call2(Runtime_ocaml_Runtime[83],_buM_,_buK_), - _buO_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _buP_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_buO_), - _buQ_=caml_call2(Runtime_ocaml_Runtime[83],_buP_,_buN_); - return caml_call2(Runtime_ocaml_Runtime[29],_yZ_,_buQ_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_y0_,[0],_buE_,_buD_)} - function _bdD_(param) - {function _bt6_(param) - {switch(zone[0]) - {case 0: - var _bui_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$196); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bui_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29482) - :caml_call1(Runtime_ocaml_Runtime[31],cst_35578); - var - _buj_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$126), - _buk_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_buj_), - _bul_=caml_call1(Runtime_ocaml_Runtime[69],_buk_), - _bum_=caml_call1(Runtime_ocaml_Runtime[31],cst_6096), - _bun_=caml_call2(Runtime_ocaml_Runtime[104],_bum_,_bul_), - _buo_=caml_call1(Runtime_ocaml_Runtime[31],cst_41673); - return caml_call2(Runtime_ocaml_Runtime[93],_buo_,_bun_); - case 1: - var _bup_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$197); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bup_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26281) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31653); - var - _buq_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$127), - _bur_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_buq_), - _bus_=caml_call1(Runtime_ocaml_Runtime[69],_bur_), - _but_=caml_call1(Runtime_ocaml_Runtime[31],cst_5371), - _buu_=caml_call2(Runtime_ocaml_Runtime[104],_but_,_bus_), - _buv_=caml_call1(Runtime_ocaml_Runtime[31],cst_37023); - return caml_call2(Runtime_ocaml_Runtime[93],_buv_,_buu_); - default: - var _buw_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$198); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_buw_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24544) - :caml_call1(Runtime_ocaml_Runtime[31],cst_29444); - var - _bux_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$128), - _buy_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bux_), - _buz_=caml_call1(Runtime_ocaml_Runtime[69],_buy_), - _buA_=caml_call1(Runtime_ocaml_Runtime[31],cst_4902), - _buB_=caml_call2(Runtime_ocaml_Runtime[104],_buA_,_buz_), - _buC_=caml_call1(Runtime_ocaml_Runtime[31],cst_34346); - return caml_call2(Runtime_ocaml_Runtime[93],_buC_,_buB_)}} - function _bt7_(param) - {switch(type_pret[0]) - {case 0:var _bt8_=0;break; - case 1:var _bt8_=1;break; - case 2:var _bt8_=0;break; - case 3:var _bt8_=0;break; - default:var _bt8_=0} - var - _bt9_=0 === anciennete_logement[0]?0:1, - _bt__=caml_call2(Runtime_ocaml_Runtime[83],_bt9_,_bt8_), - _bt$_=caml_call3(Runtime_ocaml_Runtime[57],2014,9,30), - _bua_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bt$_), - _bub_=caml_call2(Runtime_ocaml_Runtime[83],_bua_,_bt__), - _buc_=caml_call3(Runtime_ocaml_Runtime[57],2012,12,31), - _bud_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_buc_), - _bue_=caml_call2(Runtime_ocaml_Runtime[83],_bud_,_bub_), - _buf_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bug_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_buf_), - _buh_=caml_call2(Runtime_ocaml_Runtime[83],_bug_,_bue_); - return caml_call2(Runtime_ocaml_Runtime[29],_y1_,_buh_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_y2_,[0],_bt7_,_bt6_)} - function _bdE_(param) - {function _btx_(param) - {switch(zone[0]) - {case 0: - var _btL_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$199); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_btL_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_36626) - :caml_call1(Runtime_ocaml_Runtime[31],cst_44185); - var - _btM_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$129), - _btN_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_btM_), - _btO_=caml_call1(Runtime_ocaml_Runtime[69],_btN_), - _btP_=caml_call1(Runtime_ocaml_Runtime[31],cst_7558), - _btQ_=caml_call2(Runtime_ocaml_Runtime[104],_btP_,_btO_), - _btR_=caml_call1(Runtime_ocaml_Runtime[31],cst_51744); - return caml_call2(Runtime_ocaml_Runtime[93],_btR_,_btQ_); - case 1: - var _btS_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$200); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_btS_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_32686) - :caml_call1(Runtime_ocaml_Runtime[31],cst_39340); - var - _btT_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$130), - _btU_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_btT_), - _btV_=caml_call1(Runtime_ocaml_Runtime[69],_btU_), - _btW_=caml_call1(Runtime_ocaml_Runtime[31],cst_6655), - _btX_=caml_call2(Runtime_ocaml_Runtime[104],_btW_,_btV_), - _btY_=caml_call1(Runtime_ocaml_Runtime[31],cst_45997); - return caml_call2(Runtime_ocaml_Runtime[93],_btY_,_btX_); - default: - var _btZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$201); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_btZ_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_30514) - :caml_call1(Runtime_ocaml_Runtime[31],cst_36589); - var - _bt0_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$131), - _bt1_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bt0_), - _bt2_=caml_call1(Runtime_ocaml_Runtime[69],_bt1_), - _bt3_=caml_call1(Runtime_ocaml_Runtime[31],cst_6075), - _bt4_=caml_call2(Runtime_ocaml_Runtime[104],_bt3_,_bt2_), - _bt5_=caml_call1(Runtime_ocaml_Runtime[31],cst_42665); - return caml_call2(Runtime_ocaml_Runtime[93],_bt5_,_bt4_)}} - function _bty_(param) - {switch(type_pret[0]) - {case 0:var _btz_=0;break; - case 1:var _btz_=1;break; - case 2:var _btz_=0;break; - case 3:var _btz_=0;break; - default:var _btz_=0} - var - _btA_=0 === anciennete_logement[0]?1:0, - _btB_=caml_call2(Runtime_ocaml_Runtime[83],_btA_,_btz_), - _btC_=caml_call3(Runtime_ocaml_Runtime[57],2014,9,30), - _btD_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_btC_), - _btE_=caml_call2(Runtime_ocaml_Runtime[83],_btD_,_btB_), - _btF_=caml_call3(Runtime_ocaml_Runtime[57],2012,12,31), - _btG_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_btF_), - _btH_=caml_call2(Runtime_ocaml_Runtime[83],_btG_,_btE_), - _btI_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _btJ_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_btI_), - _btK_=caml_call2(Runtime_ocaml_Runtime[83],_btJ_,_btH_); - return caml_call2(Runtime_ocaml_Runtime[29],_y3_,_btK_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_y4_,[0],_bty_,_btx_)} - function _bdF_(param) - {function _bs0_(param) - {switch(zone[0]) - {case 0: - var _btc_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$202); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_btc_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_28861) - :caml_call1(Runtime_ocaml_Runtime[31],cst_34829$0); - var - _btd_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$132), - _bte_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_btd_), - _btf_=caml_call1(Runtime_ocaml_Runtime[69],_bte_), - _btg_=caml_call1(Runtime_ocaml_Runtime[31],cst_5968), - _bth_=caml_call2(Runtime_ocaml_Runtime[104],_btg_,_btf_), - _bti_=caml_call1(Runtime_ocaml_Runtime[31],cst_40796); - return caml_call2(Runtime_ocaml_Runtime[93],_bti_,_bth_); - case 1: - var _btj_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$203); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_btj_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25728) - :caml_call1(Runtime_ocaml_Runtime[31],cst_30987); - var - _btk_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$133), - _btl_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_btk_), - _btm_=caml_call1(Runtime_ocaml_Runtime[69],_btl_), - _btn_=caml_call1(Runtime_ocaml_Runtime[31],cst_5258), - _bto_=caml_call2(Runtime_ocaml_Runtime[104],_btn_,_btm_), - _btp_=caml_call1(Runtime_ocaml_Runtime[31],cst_36244); - return caml_call2(Runtime_ocaml_Runtime[93],_btp_,_bto_); - default: - var _btq_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$204); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_btq_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24027) - :caml_call1(Runtime_ocaml_Runtime[31],cst_28824); - var - _btr_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$134), - _bts_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_btr_), - _btt_=caml_call1(Runtime_ocaml_Runtime[69],_bts_), - _btu_=caml_call1(Runtime_ocaml_Runtime[31],cst_4799), - _btv_=caml_call2(Runtime_ocaml_Runtime[104],_btu_,_btt_), - _btw_=caml_call1(Runtime_ocaml_Runtime[31],cst_33623); - return caml_call2(Runtime_ocaml_Runtime[93],_btw_,_btv_)}} - function _bs1_(param) - {switch(type_pret[0]) - {case 0:var _bs2_=0;break; - case 1:var _bs2_=1;break; - case 2:var _bs2_=0;break; - case 3:var _bs2_=0;break; - default:var _bs2_=0} - var - _bs3_=0 === anciennete_logement[0]?0:1, - _bs4_=caml_call2(Runtime_ocaml_Runtime[83],_bs3_,_bs2_), - _bs5_=caml_call3(Runtime_ocaml_Runtime[57],2012,12,31), - _bs6_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bs5_), - _bs7_=caml_call2(Runtime_ocaml_Runtime[83],_bs6_,_bs4_), - _bs8_=caml_call3(Runtime_ocaml_Runtime[57],2011,12,31), - _bs9_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bs8_), - _bs__=caml_call2(Runtime_ocaml_Runtime[83],_bs9_,_bs7_), - _bs$_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bta_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bs$_), - _btb_=caml_call2(Runtime_ocaml_Runtime[83],_bta_,_bs__); - return caml_call2(Runtime_ocaml_Runtime[29],_y5_,_btb_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_y6_,[0],_bs1_,_bs0_)} - function _bdG_(param) - {function _bsr_(param) - {switch(zone[0]) - {case 0: - var _bsF_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$205); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bsF_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_35855) - :caml_call1(Runtime_ocaml_Runtime[31],cst_43255); - var - _bsG_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$135), - _bsH_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bsG_), - _bsI_=caml_call1(Runtime_ocaml_Runtime[69],_bsH_), - _bsJ_=caml_call1(Runtime_ocaml_Runtime[31],cst_7399), - _bsK_=caml_call2(Runtime_ocaml_Runtime[104],_bsJ_,_bsI_), - _bsL_=caml_call1(Runtime_ocaml_Runtime[31],cst_50655); - return caml_call2(Runtime_ocaml_Runtime[93],_bsL_,_bsK_); - case 1: - var _bsM_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$206); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bsM_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_31998) - :caml_call1(Runtime_ocaml_Runtime[31],cst_38512); - var - _bsN_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$136), - _bsO_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bsN_), - _bsP_=caml_call1(Runtime_ocaml_Runtime[69],_bsO_), - _bsQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_6515), - _bsR_=caml_call2(Runtime_ocaml_Runtime[104],_bsQ_,_bsP_), - _bsS_=caml_call1(Runtime_ocaml_Runtime[31],cst_45029); - return caml_call2(Runtime_ocaml_Runtime[93],_bsS_,_bsR_); - default: - var _bsT_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$207); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bsT_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29872) - :caml_call1(Runtime_ocaml_Runtime[31],cst_35819); - var - _bsU_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$137), - _bsV_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bsU_), - _bsW_=caml_call1(Runtime_ocaml_Runtime[69],_bsV_), - _bsX_=caml_call1(Runtime_ocaml_Runtime[31],cst_5947), - _bsY_=caml_call2(Runtime_ocaml_Runtime[104],_bsX_,_bsW_), - _bsZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_41767); - return caml_call2(Runtime_ocaml_Runtime[93],_bsZ_,_bsY_)}} - function _bss_(param) - {switch(type_pret[0]) - {case 0:var _bst_=0;break; - case 1:var _bst_=1;break; - case 2:var _bst_=0;break; - case 3:var _bst_=0;break; - default:var _bst_=0} - var - _bsu_=0 === anciennete_logement[0]?1:0, - _bsv_=caml_call2(Runtime_ocaml_Runtime[83],_bsu_,_bst_), - _bsw_=caml_call3(Runtime_ocaml_Runtime[57],2012,12,31), - _bsx_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bsw_), - _bsy_=caml_call2(Runtime_ocaml_Runtime[83],_bsx_,_bsv_), - _bsz_=caml_call3(Runtime_ocaml_Runtime[57],2011,12,31), - _bsA_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bsz_), - _bsB_=caml_call2(Runtime_ocaml_Runtime[83],_bsA_,_bsy_), - _bsC_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bsD_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bsC_), - _bsE_=caml_call2(Runtime_ocaml_Runtime[83],_bsD_,_bsB_); - return caml_call2(Runtime_ocaml_Runtime[29],_y7_,_bsE_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_y8_,[0],_bss_,_bsr_)} - function _bdH_(param) - {function _brU_(param) - {switch(zone[0]) - {case 0: - var _br8_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$208); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_br8_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_28575) - :caml_call1(Runtime_ocaml_Runtime[31],cst_34484); - var - _br9_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$138), - _br__= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_br9_), - _br$_=caml_call1(Runtime_ocaml_Runtime[69],_br__), - _bsa_=caml_call1(Runtime_ocaml_Runtime[31],cst_5909), - _bsb_=caml_call2(Runtime_ocaml_Runtime[104],_bsa_,_br$_), - _bsc_=caml_call1(Runtime_ocaml_Runtime[31],cst_40392); - return caml_call2(Runtime_ocaml_Runtime[93],_bsc_,_bsb_); - case 1: - var _bsd_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$209); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bsd_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25473) - :caml_call1(Runtime_ocaml_Runtime[31],cst_30680); - var - _bse_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$139), - _bsf_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bse_), - _bsg_=caml_call1(Runtime_ocaml_Runtime[69],_bsf_), - _bsh_=caml_call1(Runtime_ocaml_Runtime[31],cst_5206), - _bsi_=caml_call2(Runtime_ocaml_Runtime[104],_bsh_,_bsg_), - _bsj_=caml_call1(Runtime_ocaml_Runtime[31],cst_35885); - return caml_call2(Runtime_ocaml_Runtime[93],_bsj_,_bsi_); - default: - var _bsk_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$210); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bsk_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_23789) - :caml_call1(Runtime_ocaml_Runtime[31],cst_28539); - var - _bsl_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$140), - _bsm_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bsl_), - _bsn_=caml_call1(Runtime_ocaml_Runtime[69],_bsm_), - _bso_=caml_call1(Runtime_ocaml_Runtime[31],cst_4751), - _bsp_=caml_call2(Runtime_ocaml_Runtime[104],_bso_,_bsn_), - _bsq_=caml_call1(Runtime_ocaml_Runtime[31],cst_33290); - return caml_call2(Runtime_ocaml_Runtime[93],_bsq_,_bsp_)}} - function _brV_(param) - {switch(type_pret[0]) - {case 0:var _brW_=0;break; - case 1:var _brW_=1;break; - case 2:var _brW_=0;break; - case 3:var _brW_=0;break; - default:var _brW_=0} - var - _brX_=0 === anciennete_logement[0]?0:1, - _brY_=caml_call2(Runtime_ocaml_Runtime[83],_brX_,_brW_), - _brZ_=caml_call3(Runtime_ocaml_Runtime[57],2011,12,31), - _br0_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_brZ_), - _br1_=caml_call2(Runtime_ocaml_Runtime[83],_br0_,_brY_), - _br2_=caml_call3(Runtime_ocaml_Runtime[57],2010,12,31), - _br3_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_br2_), - _br4_=caml_call2(Runtime_ocaml_Runtime[83],_br3_,_br1_), - _br5_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _br6_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_br5_), - _br7_=caml_call2(Runtime_ocaml_Runtime[83],_br6_,_br4_); - return caml_call2(Runtime_ocaml_Runtime[29],_y9_,_br7_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_y__,[0],_brV_,_brU_)} - function _bdI_(param) - {function _brl_(param) - {switch(zone[0]) - {case 0: - var _brz_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$211); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_brz_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_35500) - :caml_call1(Runtime_ocaml_Runtime[31],cst_42827); - var - _brA_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$141), - _brB_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_brA_), - _brC_=caml_call1(Runtime_ocaml_Runtime[69],_brB_), - _brD_=caml_call1(Runtime_ocaml_Runtime[31],cst_7326), - _brE_=caml_call2(Runtime_ocaml_Runtime[104],_brD_,_brC_), - _brF_=caml_call1(Runtime_ocaml_Runtime[31],cst_50153); - return caml_call2(Runtime_ocaml_Runtime[93],_brF_,_brE_); - case 1: - var _brG_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$212); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_brG_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_31681) - :caml_call1(Runtime_ocaml_Runtime[31],cst_38131); - var - _brH_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$142), - _brI_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_brH_), - _brJ_=caml_call1(Runtime_ocaml_Runtime[69],_brI_), - _brK_=caml_call1(Runtime_ocaml_Runtime[31],cst_6450), - _brL_=caml_call2(Runtime_ocaml_Runtime[104],_brK_,_brJ_), - _brM_=caml_call1(Runtime_ocaml_Runtime[31],cst_44583); - return caml_call2(Runtime_ocaml_Runtime[93],_brM_,_brL_); - default: - var _brN_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$213); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_brN_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29576) - :caml_call1(Runtime_ocaml_Runtime[31],cst_35464); - var - _brO_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$143), - _brP_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_brO_), - _brQ_=caml_call1(Runtime_ocaml_Runtime[69],_brP_), - _brR_=caml_call1(Runtime_ocaml_Runtime[31],cst_5888), - _brS_=caml_call2(Runtime_ocaml_Runtime[104],_brR_,_brQ_), - _brT_=caml_call1(Runtime_ocaml_Runtime[31],cst_41353); - return caml_call2(Runtime_ocaml_Runtime[93],_brT_,_brS_)}} - function _brm_(param) - {switch(type_pret[0]) - {case 0:var _brn_=0;break; - case 1:var _brn_=1;break; - case 2:var _brn_=0;break; - case 3:var _brn_=0;break; - default:var _brn_=0} - var - _bro_=0 === anciennete_logement[0]?1:0, - _brp_=caml_call2(Runtime_ocaml_Runtime[83],_bro_,_brn_), - _brq_=caml_call3(Runtime_ocaml_Runtime[57],2011,12,31), - _brr_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_brq_), - _brs_=caml_call2(Runtime_ocaml_Runtime[83],_brr_,_brp_), - _brt_=caml_call3(Runtime_ocaml_Runtime[57],2010,12,31), - _bru_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_brt_), - _brv_=caml_call2(Runtime_ocaml_Runtime[83],_bru_,_brs_), - _brw_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _brx_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_brw_), - _bry_=caml_call2(Runtime_ocaml_Runtime[83],_brx_,_brv_); - return caml_call2(Runtime_ocaml_Runtime[29],_y$_,_bry_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_za_,[0],_brm_,_brl_)} - function _bdJ_(param) - {function _bqO_(param) - {switch(zone[0]) - {case 0: - var _bq2_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$214); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bq2_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_28264) - :caml_call1(Runtime_ocaml_Runtime[31],cst_34109); - var - _bq3_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$144), - _bq4_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bq3_), - _bq5_=caml_call1(Runtime_ocaml_Runtime[69],_bq4_), - _bq6_=caml_call1(Runtime_ocaml_Runtime[31],cst_5845), - _bq7_=caml_call2(Runtime_ocaml_Runtime[104],_bq6_,_bq5_), - _bq8_=caml_call1(Runtime_ocaml_Runtime[31],cst_39953); - return caml_call2(Runtime_ocaml_Runtime[93],_bq8_,_bq7_); - case 1: - var _bq9_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$215); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bq9_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25196) - :caml_call1(Runtime_ocaml_Runtime[31],cst_30346); - var - _bq__=caml_call1(Runtime_ocaml_Runtime[46],cst_1$145), - _bq$_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bq__), - _bra_=caml_call1(Runtime_ocaml_Runtime[69],_bq$_), - _brb_=caml_call1(Runtime_ocaml_Runtime[31],cst_5149), - _brc_=caml_call2(Runtime_ocaml_Runtime[104],_brb_,_bra_), - _brd_=caml_call1(Runtime_ocaml_Runtime[31],cst_35495); - return caml_call2(Runtime_ocaml_Runtime[93],_brd_,_brc_); - default: - var _bre_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$216); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bre_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_23530) - :caml_call1(Runtime_ocaml_Runtime[31],cst_28228); - var - _brf_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$146), - _brg_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_brf_), - _brh_=caml_call1(Runtime_ocaml_Runtime[69],_brg_), - _bri_=caml_call1(Runtime_ocaml_Runtime[31],cst_4699), - _brj_=caml_call2(Runtime_ocaml_Runtime[104],_bri_,_brh_), - _brk_=caml_call1(Runtime_ocaml_Runtime[31],cst_32928); - return caml_call2(Runtime_ocaml_Runtime[93],_brk_,_brj_)}} - function _bqP_(param) - {switch(type_pret[0]) - {case 0:var _bqQ_=0;break; - case 1:var _bqQ_=1;break; - case 2:var _bqQ_=0;break; - case 3:var _bqQ_=0;break; - default:var _bqQ_=0} - var - _bqR_=0 === anciennete_logement[0]?0:1, - _bqS_=caml_call2(Runtime_ocaml_Runtime[83],_bqR_,_bqQ_), - _bqT_=caml_call3(Runtime_ocaml_Runtime[57],2010,12,31), - _bqU_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bqT_), - _bqV_=caml_call2(Runtime_ocaml_Runtime[83],_bqU_,_bqS_), - _bqW_=caml_call3(Runtime_ocaml_Runtime[57],2009,12,31), - _bqX_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bqW_), - _bqY_=caml_call2(Runtime_ocaml_Runtime[83],_bqX_,_bqV_), - _bqZ_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bq0_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bqZ_), - _bq1_=caml_call2(Runtime_ocaml_Runtime[83],_bq0_,_bqY_); - return caml_call2(Runtime_ocaml_Runtime[29],_zb_,_bq1_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zc_,[0],_bqP_,_bqO_)} - function _bdK_(param) - {function _bqf_(param) - {switch(zone[0]) - {case 0: - var _bqt_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$217); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bqt_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_35114) - :caml_call1(Runtime_ocaml_Runtime[31],cst_42361); - var - _bqu_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$147), - _bqv_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bqu_), - _bqw_=caml_call1(Runtime_ocaml_Runtime[69],_bqv_), - _bqx_=caml_call1(Runtime_ocaml_Runtime[31],cst_7246), - _bqy_=caml_call2(Runtime_ocaml_Runtime[104],_bqx_,_bqw_), - _bqz_=caml_call1(Runtime_ocaml_Runtime[31],cst_49607); - return caml_call2(Runtime_ocaml_Runtime[93],_bqz_,_bqy_); - case 1: - var _bqA_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$218); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bqA_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_31336) - :caml_call1(Runtime_ocaml_Runtime[31],cst_37716); - var - _bqB_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$148), - _bqC_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bqB_), - _bqD_=caml_call1(Runtime_ocaml_Runtime[69],_bqC_), - _bqE_=caml_call1(Runtime_ocaml_Runtime[31],cst_6380), - _bqF_=caml_call2(Runtime_ocaml_Runtime[104],_bqE_,_bqD_), - _bqG_=caml_call1(Runtime_ocaml_Runtime[31],cst_44098); - return caml_call2(Runtime_ocaml_Runtime[93],_bqG_,_bqF_); - default: - var _bqH_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$219); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bqH_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29254) - :caml_call1(Runtime_ocaml_Runtime[31],cst_35078); - var - _bqI_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$149), - _bqJ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bqI_), - _bqK_=caml_call1(Runtime_ocaml_Runtime[69],_bqJ_), - _bqL_=caml_call1(Runtime_ocaml_Runtime[31],cst_5824), - _bqM_=caml_call2(Runtime_ocaml_Runtime[104],_bqL_,_bqK_), - _bqN_=caml_call1(Runtime_ocaml_Runtime[31],cst_40903); - return caml_call2(Runtime_ocaml_Runtime[93],_bqN_,_bqM_)}} - function _bqg_(param) - {switch(type_pret[0]) - {case 0:var _bqh_=0;break; - case 1:var _bqh_=1;break; - case 2:var _bqh_=0;break; - case 3:var _bqh_=0;break; - default:var _bqh_=0} - var - _bqi_=0 === anciennete_logement[0]?1:0, - _bqj_=caml_call2(Runtime_ocaml_Runtime[83],_bqi_,_bqh_), - _bqk_=caml_call3(Runtime_ocaml_Runtime[57],2010,12,31), - _bql_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bqk_), - _bqm_=caml_call2(Runtime_ocaml_Runtime[83],_bql_,_bqj_), - _bqn_=caml_call3(Runtime_ocaml_Runtime[57],2009,12,31), - _bqo_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bqn_), - _bqp_=caml_call2(Runtime_ocaml_Runtime[83],_bqo_,_bqm_), - _bqq_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bqr_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bqq_), - _bqs_=caml_call2(Runtime_ocaml_Runtime[83],_bqr_,_bqp_); - return caml_call2(Runtime_ocaml_Runtime[29],_zd_,_bqs_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ze_,[0],_bqg_,_bqf_)} - function _bdL_(param) - {function _bpI_(param) - {switch(zone[0]) - {case 0: - var _bpW_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$220); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bpW_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_28174) - :caml_call1(Runtime_ocaml_Runtime[31],cst_34000); - var - _bpX_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$150), - _bpY_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bpX_), - _bpZ_=caml_call1(Runtime_ocaml_Runtime[69],_bpY_), - _bp0_=caml_call1(Runtime_ocaml_Runtime[31],cst_5826), - _bp1_=caml_call2(Runtime_ocaml_Runtime[104],_bp0_,_bpZ_), - _bp2_=caml_call1(Runtime_ocaml_Runtime[31],cst_39826); - return caml_call2(Runtime_ocaml_Runtime[93],_bp2_,_bp1_); - case 1: - var _bp3_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$221); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bp3_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25116) - :caml_call1(Runtime_ocaml_Runtime[31],cst_30249); - var - _bp4_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$151), - _bp5_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bp4_), - _bp6_=caml_call1(Runtime_ocaml_Runtime[69],_bp5_), - _bp7_=caml_call1(Runtime_ocaml_Runtime[31],cst_5133), - _bp8_=caml_call2(Runtime_ocaml_Runtime[104],_bp7_,_bp6_), - _bp9_=caml_call1(Runtime_ocaml_Runtime[31],cst_35382); - return caml_call2(Runtime_ocaml_Runtime[93],_bp9_,_bp8_); - default: - var _bp__=caml_call1(Runtime_ocaml_Runtime[46],cst_0$222); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bp__)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_23455) - :caml_call1(Runtime_ocaml_Runtime[31],cst_28138); - var - _bp$_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$152), - _bqa_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bp$_), - _bqb_=caml_call1(Runtime_ocaml_Runtime[69],_bqa_), - _bqc_=caml_call1(Runtime_ocaml_Runtime[31],cst_4684), - _bqd_=caml_call2(Runtime_ocaml_Runtime[104],_bqc_,_bqb_), - _bqe_=caml_call1(Runtime_ocaml_Runtime[31],cst_32823); - return caml_call2(Runtime_ocaml_Runtime[93],_bqe_,_bqd_)}} - function _bpJ_(param) - {switch(type_pret[0]) - {case 0:var _bpK_=0;break; - case 1:var _bpK_=1;break; - case 2:var _bpK_=0;break; - case 3:var _bpK_=0;break; - default:var _bpK_=0} - var - _bpL_=0 === anciennete_logement[0]?0:1, - _bpM_=caml_call2(Runtime_ocaml_Runtime[83],_bpL_,_bpK_), - _bpN_=caml_call3(Runtime_ocaml_Runtime[57],2009,12,31), - _bpO_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bpN_), - _bpP_=caml_call2(Runtime_ocaml_Runtime[83],_bpO_,_bpM_), - _bpQ_=caml_call3(Runtime_ocaml_Runtime[57],2008,12,31), - _bpR_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bpQ_), - _bpS_=caml_call2(Runtime_ocaml_Runtime[83],_bpR_,_bpP_), - _bpT_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bpU_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bpT_), - _bpV_=caml_call2(Runtime_ocaml_Runtime[83],_bpU_,_bpS_); - return caml_call2(Runtime_ocaml_Runtime[29],_zf_,_bpV_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zg_,[0],_bpJ_,_bpI_)} - function _bdM_(param) - {function _bo$_(param) - {switch(zone[0]) - {case 0: - var _bpn_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$223); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bpn_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_35002) - :caml_call1(Runtime_ocaml_Runtime[31],cst_42226); - var - _bpo_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$153), - _bpp_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bpo_), - _bpq_=caml_call1(Runtime_ocaml_Runtime[69],_bpp_), - _bpr_=caml_call1(Runtime_ocaml_Runtime[31],cst_7223), - _bps_=caml_call2(Runtime_ocaml_Runtime[104],_bpr_,_bpq_), - _bpt_=caml_call1(Runtime_ocaml_Runtime[31],cst_49449); - return caml_call2(Runtime_ocaml_Runtime[93],_bpt_,_bps_); - case 1: - var _bpu_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$224); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bpu_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_31236) - :caml_call1(Runtime_ocaml_Runtime[31],cst_37596); - var - _bpv_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$154), - _bpw_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bpv_), - _bpx_=caml_call1(Runtime_ocaml_Runtime[69],_bpw_), - _bpy_=caml_call1(Runtime_ocaml_Runtime[31],cst_6360), - _bpz_=caml_call2(Runtime_ocaml_Runtime[104],_bpy_,_bpx_), - _bpA_=caml_call1(Runtime_ocaml_Runtime[31],cst_43957); - return caml_call2(Runtime_ocaml_Runtime[93],_bpA_,_bpz_); - default: - var _bpB_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$225); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bpB_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29161) - :caml_call1(Runtime_ocaml_Runtime[31],cst_34966); - var - _bpC_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$155), - _bpD_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bpC_), - _bpE_=caml_call1(Runtime_ocaml_Runtime[69],_bpD_), - _bpF_=caml_call1(Runtime_ocaml_Runtime[31],cst_5805), - _bpG_=caml_call2(Runtime_ocaml_Runtime[104],_bpF_,_bpE_), - _bpH_=caml_call1(Runtime_ocaml_Runtime[31],cst_40773); - return caml_call2(Runtime_ocaml_Runtime[93],_bpH_,_bpG_)}} - function _bpa_(param) - {switch(type_pret[0]) - {case 0:var _bpb_=0;break; - case 1:var _bpb_=1;break; - case 2:var _bpb_=0;break; - case 3:var _bpb_=0;break; - default:var _bpb_=0} - var - _bpc_=0 === anciennete_logement[0]?1:0, - _bpd_=caml_call2(Runtime_ocaml_Runtime[83],_bpc_,_bpb_), - _bpe_=caml_call3(Runtime_ocaml_Runtime[57],2009,12,31), - _bpf_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bpe_), - _bpg_=caml_call2(Runtime_ocaml_Runtime[83],_bpf_,_bpd_), - _bph_=caml_call3(Runtime_ocaml_Runtime[57],2008,12,31), - _bpi_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bph_), - _bpj_=caml_call2(Runtime_ocaml_Runtime[83],_bpi_,_bpg_), - _bpk_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bpl_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bpk_), - _bpm_=caml_call2(Runtime_ocaml_Runtime[83],_bpl_,_bpj_); - return caml_call2(Runtime_ocaml_Runtime[29],_zh_,_bpm_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zi_,[0],_bpa_,_bo$_)} - function _bdN_(param) - {function _boC_(param) - {switch(zone[0]) - {case 0: - var _boQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$226); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_boQ_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_27367) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33026); - var - _boR_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$156), - _boS_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_boR_), - _boT_=caml_call1(Runtime_ocaml_Runtime[69],_boS_), - _boU_=caml_call1(Runtime_ocaml_Runtime[31],cst_5659), - _boV_=caml_call2(Runtime_ocaml_Runtime[104],_boU_,_boT_), - _boW_=caml_call1(Runtime_ocaml_Runtime[31],cst_38685); - return caml_call2(Runtime_ocaml_Runtime[93],_boW_,_boV_); - case 1: - var _boX_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$227); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_boX_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24396) - :caml_call1(Runtime_ocaml_Runtime[31],cst_29382); - var - _boY_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$157), - _boZ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_boY_), - _bo0_=caml_call1(Runtime_ocaml_Runtime[69],_boZ_), - _bo1_=caml_call1(Runtime_ocaml_Runtime[31],cst_4986$0), - _bo2_=caml_call2(Runtime_ocaml_Runtime[104],_bo1_,_bo0_), - _bo3_=caml_call1(Runtime_ocaml_Runtime[31],cst_34368); - return caml_call2(Runtime_ocaml_Runtime[93],_bo3_,_bo2_); - default: - var _bo4_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$228); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bo4_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_22783) - :caml_call1(Runtime_ocaml_Runtime[31],cst_27332); - var - _bo5_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$158), - _bo6_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bo5_), - _bo7_=caml_call1(Runtime_ocaml_Runtime[69],_bo6_), - _bo8_=caml_call1(Runtime_ocaml_Runtime[31],cst_4550), - _bo9_=caml_call2(Runtime_ocaml_Runtime[104],_bo8_,_bo7_), - _bo__=caml_call1(Runtime_ocaml_Runtime[31],cst_31882); - return caml_call2(Runtime_ocaml_Runtime[93],_bo__,_bo9_)}} - function _boD_(param) - {switch(type_pret[0]) - {case 0:var _boE_=0;break; - case 1:var _boE_=1;break; - case 2:var _boE_=0;break; - case 3:var _boE_=0;break; - default:var _boE_=0} - var - _boF_=0 === anciennete_logement[0]?0:1, - _boG_=caml_call2(Runtime_ocaml_Runtime[83],_boF_,_boE_), - _boH_=caml_call3(Runtime_ocaml_Runtime[57],2008,12,31), - _boI_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_boH_), - _boJ_=caml_call2(Runtime_ocaml_Runtime[83],_boI_,_boG_), - _boK_=caml_call3(Runtime_ocaml_Runtime[57],2007,12,31), - _boL_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_boK_), - _boM_=caml_call2(Runtime_ocaml_Runtime[83],_boL_,_boJ_), - _boN_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _boO_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_boN_), - _boP_=caml_call2(Runtime_ocaml_Runtime[83],_boO_,_boM_); - return caml_call2(Runtime_ocaml_Runtime[29],_zj_,_boP_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zk_,[0],_boD_,_boC_)} - function _bdO_(param) - {function _bn5_(param) - {switch(zone[0]) - {case 0: - var _boh_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$229); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_boh_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_33999) - :caml_call1(Runtime_ocaml_Runtime[31],cst_41016); - var - _boi_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$159), - _boj_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_boi_), - _bok_=caml_call1(Runtime_ocaml_Runtime[69],_boj_), - _bol_=caml_call1(Runtime_ocaml_Runtime[31],cst_7016), - _bom_=caml_call2(Runtime_ocaml_Runtime[104],_bol_,_bok_), - _bon_=caml_call1(Runtime_ocaml_Runtime[31],cst_48032); - return caml_call2(Runtime_ocaml_Runtime[93],_bon_,_bom_); - case 1: - var _boo_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$230); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_boo_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_30341) - :caml_call1(Runtime_ocaml_Runtime[31],cst_36519); - var - _bop_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$160), - _boq_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bop_), - _bor_=caml_call1(Runtime_ocaml_Runtime[69],_boq_), - _bos_=caml_call1(Runtime_ocaml_Runtime[31],cst_6178), - _bot_=caml_call2(Runtime_ocaml_Runtime[104],_bos_,_bor_), - _bou_=caml_call1(Runtime_ocaml_Runtime[31],cst_42697); - return caml_call2(Runtime_ocaml_Runtime[93],_bou_,_bot_); - default: - var _bov_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$231); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bov_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_28325) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33964); - var - _bow_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$161), - _box_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bow_), - _boy_=caml_call1(Runtime_ocaml_Runtime[69],_box_), - _boz_=caml_call1(Runtime_ocaml_Runtime[31],cst_5639), - _boA_=caml_call2(Runtime_ocaml_Runtime[104],_boz_,_boy_), - _boB_=caml_call1(Runtime_ocaml_Runtime[31],cst_39605); - return caml_call2(Runtime_ocaml_Runtime[93],_boB_,_boA_)}} - function _bn6_(param) - {switch(type_pret[0]) - {case 0:var _bn7_=0;break; - case 1:var _bn7_=1;break; - case 2:var _bn7_=0;break; - case 3:var _bn7_=0;break; - default:var _bn7_=0} - var - _bn8_=0 === anciennete_logement[0]?1:0, - _bn9_=caml_call2(Runtime_ocaml_Runtime[83],_bn8_,_bn7_), - _bn__=caml_call3(Runtime_ocaml_Runtime[57],2008,12,31), - _bn$_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bn__), - _boa_=caml_call2(Runtime_ocaml_Runtime[83],_bn$_,_bn9_), - _bob_=caml_call3(Runtime_ocaml_Runtime[57],2007,12,31), - _boc_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bob_), - _bod_=caml_call2(Runtime_ocaml_Runtime[83],_boc_,_boa_), - _boe_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bof_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_boe_), - _bog_=caml_call2(Runtime_ocaml_Runtime[83],_bof_,_bod_); - return caml_call2(Runtime_ocaml_Runtime[29],_zl_,_bog_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zm_,[0],_bn6_,_bn5_)} - function _bdP_(param) - {function _bnw_(param) - {switch(zone[0]) - {case 0: - var _bnK_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$232); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bnK_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26632) - :caml_call1(Runtime_ocaml_Runtime[31],cst_32139); - var - _bnL_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$162), - _bnM_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bnL_), - _bnN_=caml_call1(Runtime_ocaml_Runtime[69],_bnM_), - _bnO_=caml_call1(Runtime_ocaml_Runtime[31],cst_5507), - _bnP_=caml_call2(Runtime_ocaml_Runtime[104],_bnO_,_bnN_), - _bnQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_37646); - return caml_call2(Runtime_ocaml_Runtime[93],_bnQ_,_bnP_); - case 1: - var _bnR_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$233); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bnR_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_23741) - :caml_call1(Runtime_ocaml_Runtime[31],cst_28593); - var - _bnS_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$163), - _bnT_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bnS_), - _bnU_=caml_call1(Runtime_ocaml_Runtime[69],_bnT_), - _bnV_=caml_call1(Runtime_ocaml_Runtime[31],cst_4852), - _bnW_=caml_call2(Runtime_ocaml_Runtime[104],_bnV_,_bnU_), - _bnX_=caml_call1(Runtime_ocaml_Runtime[31],cst_33445); - return caml_call2(Runtime_ocaml_Runtime[93],_bnX_,_bnW_); - default: - var _bnY_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$234); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bnY_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_22171) - :caml_call1(Runtime_ocaml_Runtime[31],cst_36598); - var - _bnZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$164), - _bn0_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bnZ_), - _bn1_=caml_call1(Runtime_ocaml_Runtime[69],_bn0_), - _bn2_=caml_call1(Runtime_ocaml_Runtime[31],cst_4428), - _bn3_=caml_call2(Runtime_ocaml_Runtime[104],_bn2_,_bn1_), - _bn4_=caml_call1(Runtime_ocaml_Runtime[31],cst_31026); - return caml_call2(Runtime_ocaml_Runtime[93],_bn4_,_bn3_)}} - function _bnx_(param) - {switch(type_pret[0]) - {case 0:var _bny_=0;break; - case 1:var _bny_=1;break; - case 2:var _bny_=0;break; - case 3:var _bny_=0;break; - default:var _bny_=0} - var - _bnz_=0 === anciennete_logement[0]?0:1, - _bnA_=caml_call2(Runtime_ocaml_Runtime[83],_bnz_,_bny_), - _bnB_=caml_call3(Runtime_ocaml_Runtime[57],2007,12,31), - _bnC_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bnB_), - _bnD_=caml_call2(Runtime_ocaml_Runtime[83],_bnC_,_bnA_), - _bnE_=caml_call3(Runtime_ocaml_Runtime[57],2006,12,31), - _bnF_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bnE_), - _bnG_=caml_call2(Runtime_ocaml_Runtime[83],_bnF_,_bnD_), - _bnH_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bnI_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bnH_), - _bnJ_=caml_call2(Runtime_ocaml_Runtime[83],_bnI_,_bnG_); - return caml_call2(Runtime_ocaml_Runtime[29],_zn_,_bnJ_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zo_,[0],_bnx_,_bnw_)} - function _bdQ_(param) - {function _bmZ_(param) - {switch(zone[0]) - {case 0: - var _bnb_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$235); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bnb_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_33086) - :caml_call1(Runtime_ocaml_Runtime[31],cst_39914); - var - _bnc_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$165), - _bnd_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bnc_), - _bne_=caml_call1(Runtime_ocaml_Runtime[69],_bnd_), - _bnf_=caml_call1(Runtime_ocaml_Runtime[31],cst_6828), - _bng_=caml_call2(Runtime_ocaml_Runtime[104],_bnf_,_bne_), - _bnh_=caml_call1(Runtime_ocaml_Runtime[31],cst_46742); - return caml_call2(Runtime_ocaml_Runtime[93],_bnh_,_bng_); - case 1: - var _bni_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$236); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bni_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29526) - :caml_call1(Runtime_ocaml_Runtime[31],cst_35538); - var - _bnj_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$166), - _bnk_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bnj_), - _bnl_=caml_call1(Runtime_ocaml_Runtime[69],_bnk_), - _bnm_=caml_call1(Runtime_ocaml_Runtime[31],cst_6012), - _bnn_=caml_call2(Runtime_ocaml_Runtime[104],_bnm_,_bnl_), - _bno_=caml_call1(Runtime_ocaml_Runtime[31],cst_41550); - return caml_call2(Runtime_ocaml_Runtime[93],_bno_,_bnn_); - default: - var _bnp_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$237); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bnp_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_27564) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33052); - var - _bnq_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$167), - _bnr_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bnq_), - _bns_=caml_call1(Runtime_ocaml_Runtime[69],_bnr_), - _bnt_=caml_call1(Runtime_ocaml_Runtime[31],cst_5488), - _bnu_=caml_call2(Runtime_ocaml_Runtime[104],_bnt_,_bns_), - _bnv_=caml_call1(Runtime_ocaml_Runtime[31],cst_38541); - return caml_call2(Runtime_ocaml_Runtime[93],_bnv_,_bnu_)}} - function _bm0_(param) - {switch(type_pret[0]) - {case 0:var _bm1_=0;break; - case 1:var _bm1_=1;break; - case 2:var _bm1_=0;break; - case 3:var _bm1_=0;break; - default:var _bm1_=0} - var - _bm2_=0 === anciennete_logement[0]?1:0, - _bm3_=caml_call2(Runtime_ocaml_Runtime[83],_bm2_,_bm1_), - _bm4_=caml_call3(Runtime_ocaml_Runtime[57],2007,12,31), - _bm5_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bm4_), - _bm6_=caml_call2(Runtime_ocaml_Runtime[83],_bm5_,_bm3_), - _bm7_=caml_call3(Runtime_ocaml_Runtime[57],2006,12,31), - _bm8_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bm7_), - _bm9_=caml_call2(Runtime_ocaml_Runtime[83],_bm8_,_bm6_), - _bm__=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bm$_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bm__), - _bna_=caml_call2(Runtime_ocaml_Runtime[83],_bm$_,_bm9_); - return caml_call2(Runtime_ocaml_Runtime[29],_zp_,_bna_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zq_,[0],_bm0_,_bmZ_)} - function _bdR_(param) - {function _bmq_(param) - {switch(zone[0]) - {case 0: - var _bmE_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$238); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bmE_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25907) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31264); - var - _bmF_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$168), - _bmG_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bmF_), - _bmH_=caml_call1(Runtime_ocaml_Runtime[69],_bmG_), - _bmI_=caml_call1(Runtime_ocaml_Runtime[31],cst_5357), - _bmJ_=caml_call2(Runtime_ocaml_Runtime[104],_bmI_,_bmH_), - _bmK_=caml_call1(Runtime_ocaml_Runtime[31],cst_36621); - return caml_call2(Runtime_ocaml_Runtime[93],_bmK_,_bmJ_); - case 1: - var _bmL_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$239); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bmL_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_23094) - :caml_call1(Runtime_ocaml_Runtime[31],cst_27814); - var - _bmM_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$169), - _bmN_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bmM_), - _bmO_=caml_call1(Runtime_ocaml_Runtime[69],_bmN_), - _bmP_=caml_call1(Runtime_ocaml_Runtime[31],cst_4720), - _bmQ_=caml_call2(Runtime_ocaml_Runtime[104],_bmP_,_bmO_), - _bmR_=caml_call1(Runtime_ocaml_Runtime[31],cst_32534); - return caml_call2(Runtime_ocaml_Runtime[93],_bmR_,_bmQ_); - default: - var _bmS_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$240); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bmS_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_21567) - :caml_call1(Runtime_ocaml_Runtime[31],cst_25874); - var - _bmT_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$170), - _bmU_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bmT_), - _bmV_=caml_call1(Runtime_ocaml_Runtime[69],_bmU_), - _bmW_=caml_call1(Runtime_ocaml_Runtime[31],cst_4307), - _bmX_=caml_call2(Runtime_ocaml_Runtime[104],_bmW_,_bmV_), - _bmY_=caml_call1(Runtime_ocaml_Runtime[31],cst_30181); - return caml_call2(Runtime_ocaml_Runtime[93],_bmY_,_bmX_)}} - function _bmr_(param) - {switch(type_pret[0]) - {case 0:var _bms_=0;break; - case 1:var _bms_=1;break; - case 2:var _bms_=0;break; - case 3:var _bms_=0;break; - default:var _bms_=0} - var - _bmt_=0 === anciennete_logement[0]?0:1, - _bmu_=caml_call2(Runtime_ocaml_Runtime[83],_bmt_,_bms_), - _bmv_=caml_call3(Runtime_ocaml_Runtime[57],2006,12,31), - _bmw_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bmv_), - _bmx_=caml_call2(Runtime_ocaml_Runtime[83],_bmw_,_bmu_), - _bmy_=caml_call3(Runtime_ocaml_Runtime[57],2005,8,31), - _bmz_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bmy_), - _bmA_=caml_call2(Runtime_ocaml_Runtime[83],_bmz_,_bmx_), - _bmB_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bmC_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bmB_), - _bmD_=caml_call2(Runtime_ocaml_Runtime[83],_bmC_,_bmA_); - return caml_call2(Runtime_ocaml_Runtime[29],_zr_,_bmD_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zs_,[0],_bmr_,_bmq_)} - function _bdS_(param) - {function _blT_(param) - {switch(zone[0]) - {case 0: - var _bl7_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$241); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bl7_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_32185) - :caml_call1(Runtime_ocaml_Runtime[31],cst_38827); - var - _bl8_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$171), - _bl9_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bl8_), - _bl__=caml_call1(Runtime_ocaml_Runtime[69],_bl9_), - _bl$_=caml_call1(Runtime_ocaml_Runtime[31],cst_6642), - _bma_=caml_call2(Runtime_ocaml_Runtime[104],_bl$_,_bl__), - _bmb_=caml_call1(Runtime_ocaml_Runtime[31],cst_45469); - return caml_call2(Runtime_ocaml_Runtime[93],_bmb_,_bma_); - case 1: - var _bmc_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$242); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bmc_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_28722) - :caml_call1(Runtime_ocaml_Runtime[31],cst_34570$0); - var - _bmd_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$172), - _bme_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bmd_), - _bmf_=caml_call1(Runtime_ocaml_Runtime[69],_bme_), - _bmg_=caml_call1(Runtime_ocaml_Runtime[31],cst_5848), - _bmh_=caml_call2(Runtime_ocaml_Runtime[104],_bmg_,_bmf_), - _bmi_=caml_call1(Runtime_ocaml_Runtime[31],cst_40418); - return caml_call2(Runtime_ocaml_Runtime[93],_bmi_,_bmh_); - default: - var _bmj_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$243); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bmj_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26813) - :caml_call1(Runtime_ocaml_Runtime[31],cst_32152); - var - _bmk_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$173), - _bml_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bmk_), - _bmm_=caml_call1(Runtime_ocaml_Runtime[69],_bml_), - _bmn_=caml_call1(Runtime_ocaml_Runtime[31],cst_5339), - _bmo_=caml_call2(Runtime_ocaml_Runtime[104],_bmn_,_bmm_), - _bmp_=caml_call1(Runtime_ocaml_Runtime[31],cst_37491); - return caml_call2(Runtime_ocaml_Runtime[93],_bmp_,_bmo_)}} - function _blU_(param) - {switch(type_pret[0]) - {case 0:var _blV_=0;break; - case 1:var _blV_=1;break; - case 2:var _blV_=0;break; - case 3:var _blV_=0;break; - default:var _blV_=0} - var - _blW_=0 === anciennete_logement[0]?1:0, - _blX_=caml_call2(Runtime_ocaml_Runtime[83],_blW_,_blV_), - _blY_=caml_call3(Runtime_ocaml_Runtime[57],2006,12,31), - _blZ_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_blY_), - _bl0_=caml_call2(Runtime_ocaml_Runtime[83],_blZ_,_blX_), - _bl1_=caml_call3(Runtime_ocaml_Runtime[57],2005,8,31), - _bl2_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bl1_), - _bl3_=caml_call2(Runtime_ocaml_Runtime[83],_bl2_,_bl0_), - _bl4_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bl5_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bl4_), - _bl6_=caml_call2(Runtime_ocaml_Runtime[83],_bl5_,_bl3_); - return caml_call2(Runtime_ocaml_Runtime[29],_zt_,_bl6_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zu_,[0],_blU_,_blT_)} - function _bdT_(param) - {function _blk_(param) - {switch(zone[0]) - {case 0: - var _bly_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$244); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bly_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25449) - :caml_call1(Runtime_ocaml_Runtime[31],cst_30711); - var - _blz_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$174), - _blA_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_blz_), - _blB_=caml_call1(Runtime_ocaml_Runtime[69],_blA_), - _blC_=caml_call1(Runtime_ocaml_Runtime[31],cst_5262), - _blD_=caml_call2(Runtime_ocaml_Runtime[104],_blC_,_blB_), - _blE_=caml_call1(Runtime_ocaml_Runtime[31],cst_35973); - return caml_call2(Runtime_ocaml_Runtime[93],_blE_,_blD_); - case 1: - var _blF_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$245); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_blF_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_22686) - :caml_call1(Runtime_ocaml_Runtime[31],cst_27323); - var - _blG_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$175), - _blH_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_blG_), - _blI_=caml_call1(Runtime_ocaml_Runtime[69],_blH_), - _blJ_=caml_call1(Runtime_ocaml_Runtime[31],cst_4637), - _blK_=caml_call2(Runtime_ocaml_Runtime[104],_blJ_,_blI_), - _blL_=caml_call1(Runtime_ocaml_Runtime[31],cst_31960); - return caml_call2(Runtime_ocaml_Runtime[93],_blL_,_blK_); - default: - var _blM_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$246); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_blM_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_21186) - :caml_call1(Runtime_ocaml_Runtime[31],cst_25417); - var - _blN_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$176), - _blO_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_blN_), - _blP_=caml_call1(Runtime_ocaml_Runtime[69],_blO_), - _blQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_4231), - _blR_=caml_call2(Runtime_ocaml_Runtime[104],_blQ_,_blP_), - _blS_=caml_call1(Runtime_ocaml_Runtime[31],cst_29648); - return caml_call2(Runtime_ocaml_Runtime[93],_blS_,_blR_)}} - function _bll_(param) - {switch(type_pret[0]) - {case 0:var _blm_=0;break; - case 1:var _blm_=1;break; - case 2:var _blm_=0;break; - case 3:var _blm_=0;break; - default:var _blm_=0} - var - _bln_=0 === anciennete_logement[0]?0:1, - _blo_=caml_call2(Runtime_ocaml_Runtime[83],_bln_,_blm_), - _blp_=caml_call3(Runtime_ocaml_Runtime[57],2005,8,31), - _blq_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_blp_), - _blr_=caml_call2(Runtime_ocaml_Runtime[83],_blq_,_blo_), - _bls_=caml_call3(Runtime_ocaml_Runtime[57],2003,6,30), - _blt_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bls_), - _blu_=caml_call2(Runtime_ocaml_Runtime[83],_blt_,_blr_), - _blv_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _blw_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_blv_), - _blx_=caml_call2(Runtime_ocaml_Runtime[83],_blw_,_blu_); - return caml_call2(Runtime_ocaml_Runtime[29],_zv_,_blx_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zw_,[0],_bll_,_blk_)} - function _bdU_(param) - {function _bkN_(param) - {switch(zone[0]) - {case 0: - var _bk1_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$247); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bk1_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_31616) - :caml_call1(Runtime_ocaml_Runtime[31],cst_38141); - var - _bk2_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$177), - _bk3_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bk2_), - _bk4_=caml_call1(Runtime_ocaml_Runtime[69],_bk3_), - _bk5_=caml_call1(Runtime_ocaml_Runtime[31],cst_6525), - _bk6_=caml_call2(Runtime_ocaml_Runtime[104],_bk5_,_bk4_), - _bk7_=caml_call1(Runtime_ocaml_Runtime[31],cst_44666); - return caml_call2(Runtime_ocaml_Runtime[93],_bk7_,_bk6_); - case 1: - var _bk8_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$248); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bk8_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_28214) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33959); - var - _bk9_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$178), - _bk__= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bk9_), - _bk$_=caml_call1(Runtime_ocaml_Runtime[69],_bk__), - _bla_=caml_call1(Runtime_ocaml_Runtime[31],cst_5745), - _blb_=caml_call2(Runtime_ocaml_Runtime[104],_bla_,_bk$_), - _blc_=caml_call1(Runtime_ocaml_Runtime[31],cst_39704); - return caml_call2(Runtime_ocaml_Runtime[93],_blc_,_blb_); - default: - var _bld_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$249); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bld_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26339) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31584); - var - _ble_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$179), - _blf_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_ble_), - _blg_=caml_call1(Runtime_ocaml_Runtime[69],_blf_), - _blh_=caml_call1(Runtime_ocaml_Runtime[31],cst_5245), - _bli_=caml_call2(Runtime_ocaml_Runtime[104],_blh_,_blg_), - _blj_=caml_call1(Runtime_ocaml_Runtime[31],cst_36829); - return caml_call2(Runtime_ocaml_Runtime[93],_blj_,_bli_)}} - function _bkO_(param) - {switch(type_pret[0]) - {case 0:var _bkP_=0;break; - case 1:var _bkP_=1;break; - case 2:var _bkP_=0;break; - case 3:var _bkP_=0;break; - default:var _bkP_=0} - var - _bkQ_=0 === anciennete_logement[0]?1:0, - _bkR_=caml_call2(Runtime_ocaml_Runtime[83],_bkQ_,_bkP_), - _bkS_=caml_call3(Runtime_ocaml_Runtime[57],2005,8,31), - _bkT_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bkS_), - _bkU_=caml_call2(Runtime_ocaml_Runtime[83],_bkT_,_bkR_), - _bkV_=caml_call3(Runtime_ocaml_Runtime[57],2003,6,30), - _bkW_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bkV_), - _bkX_=caml_call2(Runtime_ocaml_Runtime[83],_bkW_,_bkU_), - _bkY_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bkZ_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bkY_), - _bk0_=caml_call2(Runtime_ocaml_Runtime[83],_bkZ_,_bkX_); - return caml_call2(Runtime_ocaml_Runtime[29],_zx_,_bk0_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zy_,[0],_bkO_,_bkN_)} - function _bdV_(param) - {function _bke_(param) - {switch(zone[0]) - {case 0: - var _bks_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$250); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bks_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25147) - :caml_call1(Runtime_ocaml_Runtime[31],cst_30347); - var - _bkt_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$180), - _bku_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bkt_), - _bkv_=caml_call1(Runtime_ocaml_Runtime[69],_bku_), - _bkw_=caml_call1(Runtime_ocaml_Runtime[31],cst_5200), - _bkx_=caml_call2(Runtime_ocaml_Runtime[104],_bkw_,_bkv_), - _bky_=caml_call1(Runtime_ocaml_Runtime[31],cst_35547); - return caml_call2(Runtime_ocaml_Runtime[93],_bky_,_bkx_); - case 1: - var _bkz_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$251); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bkz_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_22417) - :caml_call1(Runtime_ocaml_Runtime[31],cst_26999); - var - _bkA_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$181), - _bkB_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bkA_), - _bkC_=caml_call1(Runtime_ocaml_Runtime[69],_bkB_), - _bkD_=caml_call1(Runtime_ocaml_Runtime[31],cst_4582), - _bkE_=caml_call2(Runtime_ocaml_Runtime[104],_bkD_,_bkC_), - _bkF_=caml_call1(Runtime_ocaml_Runtime[31],cst_31581); - return caml_call2(Runtime_ocaml_Runtime[93],_bkF_,_bkE_); - default: - var _bkG_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$252); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bkG_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_20935) - :caml_call1(Runtime_ocaml_Runtime[31],cst_25116$0); - var - _bkH_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$182), - _bkI_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bkH_), - _bkJ_=caml_call1(Runtime_ocaml_Runtime[69],_bkI_), - _bkK_=caml_call1(Runtime_ocaml_Runtime[31],cst_4181), - _bkL_=caml_call2(Runtime_ocaml_Runtime[104],_bkK_,_bkJ_), - _bkM_=caml_call1(Runtime_ocaml_Runtime[31],cst_29297); - return caml_call2(Runtime_ocaml_Runtime[93],_bkM_,_bkL_)}} - function _bkf_(param) - {switch(type_pret[0]) - {case 0:var _bkg_=0;break; - case 1:var _bkg_=1;break; - case 2:var _bkg_=0;break; - case 3:var _bkg_=0;break; - default:var _bkg_=0} - var - _bkh_=0 === anciennete_logement[0]?0:1, - _bki_=caml_call2(Runtime_ocaml_Runtime[83],_bkh_,_bkg_), - _bkj_=caml_call3(Runtime_ocaml_Runtime[57],2003,6,30), - _bkk_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bkj_), - _bkl_=caml_call2(Runtime_ocaml_Runtime[83],_bkk_,_bki_), - _bkm_=caml_call3(Runtime_ocaml_Runtime[57],2002,6,30), - _bkn_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bkm_), - _bko_=caml_call2(Runtime_ocaml_Runtime[83],_bkn_,_bkl_), - _bkp_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bkq_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bkp_), - _bkr_=caml_call2(Runtime_ocaml_Runtime[83],_bkq_,_bko_); - return caml_call2(Runtime_ocaml_Runtime[29],_zz_,_bkr_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zA_,[0],_bkf_,_bke_)} - function _bdW_(param) - {function _bjH_(param) - {switch(zone[0]) - {case 0: - var _bjV_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$253); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bjV_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_31241) - :caml_call1(Runtime_ocaml_Runtime[31],cst_37689); - var - _bjW_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$183), - _bjX_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bjW_), - _bjY_=caml_call1(Runtime_ocaml_Runtime[69],_bjX_), - _bjZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_6448), - _bj0_=caml_call2(Runtime_ocaml_Runtime[104],_bjZ_,_bjY_), - _bj1_=caml_call1(Runtime_ocaml_Runtime[31],cst_44137); - return caml_call2(Runtime_ocaml_Runtime[93],_bj1_,_bj0_); - case 1: - var _bj2_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$254); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bj2_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_27879) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33556); - var - _bj3_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$184), - _bj4_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bj3_), - _bj5_=caml_call1(Runtime_ocaml_Runtime[69],_bj4_), - _bj6_=caml_call1(Runtime_ocaml_Runtime[31],cst_5677), - _bj7_=caml_call2(Runtime_ocaml_Runtime[104],_bj6_,_bj5_), - _bj8_=caml_call1(Runtime_ocaml_Runtime[31],cst_39233); - return caml_call2(Runtime_ocaml_Runtime[93],_bj8_,_bj7_); - default: - var _bj9_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$255); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bj9_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26027) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31210); - var - _bj__=caml_call1(Runtime_ocaml_Runtime[46],cst_1$185), - _bj$_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bj__), - _bka_=caml_call1(Runtime_ocaml_Runtime[69],_bj$_), - _bkb_=caml_call1(Runtime_ocaml_Runtime[31],cst_5183), - _bkc_=caml_call2(Runtime_ocaml_Runtime[104],_bkb_,_bka_), - _bkd_=caml_call1(Runtime_ocaml_Runtime[31],cst_36393); - return caml_call2(Runtime_ocaml_Runtime[93],_bkd_,_bkc_)}} - function _bjI_(param) - {switch(type_pret[0]) - {case 0:var _bjJ_=0;break; - case 1:var _bjJ_=1;break; - case 2:var _bjJ_=0;break; - case 3:var _bjJ_=0;break; - default:var _bjJ_=0} - var - _bjK_=0 === anciennete_logement[0]?1:0, - _bjL_=caml_call2(Runtime_ocaml_Runtime[83],_bjK_,_bjJ_), - _bjM_=caml_call3(Runtime_ocaml_Runtime[57],2003,6,30), - _bjN_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bjM_), - _bjO_=caml_call2(Runtime_ocaml_Runtime[83],_bjN_,_bjL_), - _bjP_=caml_call3(Runtime_ocaml_Runtime[57],2002,6,30), - _bjQ_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bjP_), - _bjR_=caml_call2(Runtime_ocaml_Runtime[83],_bjQ_,_bjO_), - _bjS_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bjT_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bjS_), - _bjU_=caml_call2(Runtime_ocaml_Runtime[83],_bjT_,_bjR_); - return caml_call2(Runtime_ocaml_Runtime[29],_zB_,_bjU_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zC_,[0],_bjI_,_bjH_)} - function _bdX_(param) - {function _bi__(param) - {switch(zone[0]) - {case 0: - var _bjm_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$256); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bjm_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24849) - :caml_call1(Runtime_ocaml_Runtime[31],cst_29987); - var - _bjn_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$186), - _bjo_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bjn_), - _bjp_=caml_call1(Runtime_ocaml_Runtime[69],_bjo_), - _bjq_=caml_call1(Runtime_ocaml_Runtime[31],cst_5138), - _bjr_=caml_call2(Runtime_ocaml_Runtime[104],_bjq_,_bjp_), - _bjs_=caml_call1(Runtime_ocaml_Runtime[31],cst_35125); - return caml_call2(Runtime_ocaml_Runtime[93],_bjs_,_bjr_); - case 1: - var _bjt_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$257); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bjt_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_22151) - :caml_call1(Runtime_ocaml_Runtime[31],cst_26679); - var - _bju_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$187), - _bjv_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bju_), - _bjw_=caml_call1(Runtime_ocaml_Runtime[69],_bjv_), - _bjx_=caml_call1(Runtime_ocaml_Runtime[31],cst_4528), - _bjy_=caml_call2(Runtime_ocaml_Runtime[104],_bjx_,_bjw_), - _bjz_=caml_call1(Runtime_ocaml_Runtime[31],cst_31207); - return caml_call2(Runtime_ocaml_Runtime[93],_bjz_,_bjy_); - default: - var _bjA_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$258); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bjA_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_20687) - :caml_call1(Runtime_ocaml_Runtime[31],cst_24818); - var - _bjB_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$188), - _bjC_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bjB_), - _bjD_=caml_call1(Runtime_ocaml_Runtime[69],_bjC_), - _bjE_=caml_call1(Runtime_ocaml_Runtime[31],cst_4131), - _bjF_=caml_call2(Runtime_ocaml_Runtime[104],_bjE_,_bjD_), - _bjG_=caml_call1(Runtime_ocaml_Runtime[31],cst_28949); - return caml_call2(Runtime_ocaml_Runtime[93],_bjG_,_bjF_)}} - function _bi$_(param) - {switch(type_pret[0]) - {case 0:var _bja_=0;break; - case 1:var _bja_=1;break; - case 2:var _bja_=0;break; - case 3:var _bja_=0;break; - default:var _bja_=0} - var - _bjb_=0 === anciennete_logement[0]?0:1, - _bjc_=caml_call2(Runtime_ocaml_Runtime[83],_bjb_,_bja_), - _bjd_=caml_call3(Runtime_ocaml_Runtime[57],2002,6,30), - _bje_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bjd_), - _bjf_=caml_call2(Runtime_ocaml_Runtime[83],_bje_,_bjc_), - _bjg_=caml_call3(Runtime_ocaml_Runtime[57],2002,1,1), - _bjh_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bjg_), - _bji_=caml_call2(Runtime_ocaml_Runtime[83],_bjh_,_bjf_), - _bjj_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bjk_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bjj_), - _bjl_=caml_call2(Runtime_ocaml_Runtime[83],_bjk_,_bji_); - return caml_call2(Runtime_ocaml_Runtime[29],_zD_,_bjl_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zE_,[0],_bi$_,_bi__)} - function _bdY_(param) - {function _biA_(param) - {switch(zone[0]) - {case 0: - var _biO_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$259); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_biO_)) - var - _biP_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_163000) - :caml_call1(Runtime_ocaml_Runtime[31],cst_196700); - else - var - _biQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$189), - _biR_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_biQ_), - _biS_=caml_call1(Runtime_ocaml_Runtime[69],_biR_), - _biT_=caml_call1(Runtime_ocaml_Runtime[31],cst_33700), - _biU_=caml_call2(Runtime_ocaml_Runtime[104],_biT_,_biS_), - _biV_=caml_call1(Runtime_ocaml_Runtime[31],cst_230400), - _biP_=caml_call2(Runtime_ocaml_Runtime[93],_biV_,_biU_); - break; - case 1: - var _biW_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$260); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_biW_)) - var - _biP_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_145300) - :caml_call1(Runtime_ocaml_Runtime[31],cst_175000); - else - var - _biX_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$190), - _biY_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_biX_), - _biZ_=caml_call1(Runtime_ocaml_Runtime[69],_biY_), - _bi0_=caml_call1(Runtime_ocaml_Runtime[31],cst_29700), - _bi1_=caml_call2(Runtime_ocaml_Runtime[104],_bi0_,_biZ_), - _bi2_=caml_call1(Runtime_ocaml_Runtime[31],cst_204700), - _biP_=caml_call2(Runtime_ocaml_Runtime[93],_bi2_,_bi1_); - break; - default: - var _bi3_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$261); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bi3_)) - var - _biP_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_135700) - :caml_call1(Runtime_ocaml_Runtime[31],cst_162800); - else - var - _bi4_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$191), - _bi5_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bi4_), - _bi6_=caml_call1(Runtime_ocaml_Runtime[69],_bi5_), - _bi7_=caml_call1(Runtime_ocaml_Runtime[31],cst_27100), - _bi8_=caml_call2(Runtime_ocaml_Runtime[104],_bi7_,_bi6_), - _bi9_=caml_call1(Runtime_ocaml_Runtime[31],cst_189900), - _biP_=caml_call2(Runtime_ocaml_Runtime[93],_bi9_,_bi8_)} - return caml_call2 - (Runtime_ocaml_Runtime[104],_biP_,taux_francs_vers_euros)} - function _biB_(param) - {switch(type_pret[0]) - {case 0:var _biC_=0;break; - case 1:var _biC_=1;break; - case 2:var _biC_=0;break; - case 3:var _biC_=0;break; - default:var _biC_=0} - var - _biD_=0 === anciennete_logement[0]?0:1, - _biE_=caml_call2(Runtime_ocaml_Runtime[83],_biD_,_biC_), - _biF_=caml_call3(Runtime_ocaml_Runtime[57],2001,12,31), - _biG_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_biF_), - _biH_=caml_call2(Runtime_ocaml_Runtime[83],_biG_,_biE_), - _biI_=caml_call3(Runtime_ocaml_Runtime[57],2001,7,1), - _biJ_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_biI_), - _biK_=caml_call2(Runtime_ocaml_Runtime[83],_biJ_,_biH_), - _biL_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _biM_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_biL_), - _biN_=caml_call2(Runtime_ocaml_Runtime[83],_biM_,_biK_); - return caml_call2(Runtime_ocaml_Runtime[29],_zF_,_biN_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zG_,[0],_biB_,_biA_)} - function _bdZ_(param) - {function _bh3_(param) - {switch(zone[0]) - {case 0: - var _bif_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$262); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bif_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_30871) - :caml_call1(Runtime_ocaml_Runtime[31],cst_37243); - var - _big_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$192), - _bih_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_big_), - _bii_=caml_call1(Runtime_ocaml_Runtime[69],_bih_), - _bij_=caml_call1(Runtime_ocaml_Runtime[31],cst_6372), - _bik_=caml_call2(Runtime_ocaml_Runtime[104],_bij_,_bii_), - _bil_=caml_call1(Runtime_ocaml_Runtime[31],cst_43615); - return caml_call2(Runtime_ocaml_Runtime[93],_bil_,_bik_); - case 1: - var _bim_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$263); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bim_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_27548) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33148); - var - _bin_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$193), - _bio_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bin_), - _bip_=caml_call1(Runtime_ocaml_Runtime[69],_bio_), - _biq_=caml_call1(Runtime_ocaml_Runtime[31],cst_5610), - _bir_=caml_call2(Runtime_ocaml_Runtime[104],_biq_,_bip_), - _bis_=caml_call1(Runtime_ocaml_Runtime[31],cst_38768); - return caml_call2(Runtime_ocaml_Runtime[93],_bis_,_bir_); - default: - var _bit_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$264); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bit_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25718) - :caml_call1(Runtime_ocaml_Runtime[31],cst_30840); - var - _biu_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$194), - _biv_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_biu_), - _biw_=caml_call1(Runtime_ocaml_Runtime[69],_biv_), - _bix_=caml_call1(Runtime_ocaml_Runtime[31],cst_5122), - _biy_=caml_call2(Runtime_ocaml_Runtime[104],_bix_,_biw_), - _biz_=caml_call1(Runtime_ocaml_Runtime[31],cst_35962); - return caml_call2(Runtime_ocaml_Runtime[93],_biz_,_biy_)}} - function _bh4_(param) - {switch(type_pret[0]) - {case 0:var _bh5_=0;break; - case 1:var _bh5_=1;break; - case 2:var _bh5_=0;break; - case 3:var _bh5_=0;break; - default:var _bh5_=0} - var - _bh6_=0 === anciennete_logement[0]?1:0, - _bh7_=caml_call2(Runtime_ocaml_Runtime[83],_bh6_,_bh5_), - _bh8_=caml_call3(Runtime_ocaml_Runtime[57],2002,6,30), - _bh9_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bh8_), - _bh__=caml_call2(Runtime_ocaml_Runtime[83],_bh9_,_bh7_), - _bh$_=caml_call3(Runtime_ocaml_Runtime[57],2002,1,1), - _bia_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bh$_), - _bib_=caml_call2(Runtime_ocaml_Runtime[83],_bia_,_bh__), - _bic_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bid_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bic_), - _bie_=caml_call2(Runtime_ocaml_Runtime[83],_bid_,_bib_); - return caml_call2(Runtime_ocaml_Runtime[29],_zH_,_bie_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zI_,[0],_bh4_,_bh3_)} - function _bd0_(param) - {function _bht_(param) - {switch(zone[0]) - {case 0: - var _bhH_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$265); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bhH_)) - var - _bhI_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_202500$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_244300); - else - var - _bhJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$195), - _bhK_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bhJ_), - _bhL_=caml_call1(Runtime_ocaml_Runtime[69],_bhK_), - _bhM_=caml_call1(Runtime_ocaml_Runtime[31],cst_41800), - _bhN_=caml_call2(Runtime_ocaml_Runtime[104],_bhM_,_bhL_), - _bhO_=caml_call1(Runtime_ocaml_Runtime[31],cst_286100), - _bhI_=caml_call2(Runtime_ocaml_Runtime[93],_bhO_,_bhN_); - break; - case 1: - var _bhP_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$266); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bhP_)) - var - _bhI_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_180700) - :caml_call1(Runtime_ocaml_Runtime[31],cst_217500); - else - var - _bhQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$196), - _bhR_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bhQ_), - _bhS_=caml_call1(Runtime_ocaml_Runtime[69],_bhR_), - _bhT_=caml_call1(Runtime_ocaml_Runtime[31],cst_36800), - _bhU_=caml_call2(Runtime_ocaml_Runtime[104],_bhT_,_bhS_), - _bhV_=caml_call1(Runtime_ocaml_Runtime[31],cst_254300), - _bhI_=caml_call2(Runtime_ocaml_Runtime[93],_bhV_,_bhU_); - break; - default: - var _bhW_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$267); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bhW_)) - var - _bhI_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_168700) - :caml_call1(Runtime_ocaml_Runtime[31],cst_202300); - else - var - _bhX_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$197), - _bhY_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bhX_), - _bhZ_=caml_call1(Runtime_ocaml_Runtime[69],_bhY_), - _bh0_=caml_call1(Runtime_ocaml_Runtime[31],cst_33600), - _bh1_=caml_call2(Runtime_ocaml_Runtime[104],_bh0_,_bhZ_), - _bh2_=caml_call1(Runtime_ocaml_Runtime[31],cst_235900), - _bhI_=caml_call2(Runtime_ocaml_Runtime[93],_bh2_,_bh1_)} - return caml_call2 - (Runtime_ocaml_Runtime[104],_bhI_,taux_francs_vers_euros)} - function _bhu_(param) - {switch(type_pret[0]) - {case 0:var _bhv_=0;break; - case 1:var _bhv_=1;break; - case 2:var _bhv_=0;break; - case 3:var _bhv_=0;break; - default:var _bhv_=0} - var - _bhw_=0 === anciennete_logement[0]?1:0, - _bhx_=caml_call2(Runtime_ocaml_Runtime[83],_bhw_,_bhv_), - _bhy_=caml_call3(Runtime_ocaml_Runtime[57],2001,12,31), - _bhz_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bhy_), - _bhA_=caml_call2(Runtime_ocaml_Runtime[83],_bhz_,_bhx_), - _bhB_=caml_call3(Runtime_ocaml_Runtime[57],2001,7,1), - _bhC_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bhB_), - _bhD_=caml_call2(Runtime_ocaml_Runtime[83],_bhC_,_bhA_), - _bhE_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bhF_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bhE_), - _bhG_=caml_call2(Runtime_ocaml_Runtime[83],_bhF_,_bhD_); - return caml_call2(Runtime_ocaml_Runtime[29],_zJ_,_bhG_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zK_,[0],_bhu_,_bht_)} - function _bd1_(param) - {function _bgV_(param) - {switch(zone[0]) - {case 0: - var _bg9_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$268); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bg9_)) - var - _bg__= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_161100) - :caml_call1(Runtime_ocaml_Runtime[31],cst_194400); - else - var - _bg$_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$198), - _bha_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bg$_), - _bhb_=caml_call1(Runtime_ocaml_Runtime[69],_bha_), - _bhc_=caml_call1(Runtime_ocaml_Runtime[31],cst_33300), - _bhd_=caml_call2(Runtime_ocaml_Runtime[104],_bhc_,_bhb_), - _bhe_=caml_call1(Runtime_ocaml_Runtime[31],cst_227700), - _bg__=caml_call2(Runtime_ocaml_Runtime[93],_bhe_,_bhd_); - break; - case 1: - var _bhf_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$269); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bhf_)) - var - _bg__= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_143600) - :caml_call1(Runtime_ocaml_Runtime[31],cst_172900); - else - var - _bhg_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$199), - _bhh_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bhg_), - _bhi_=caml_call1(Runtime_ocaml_Runtime[69],_bhh_), - _bhj_=caml_call1(Runtime_ocaml_Runtime[31],cst_29300), - _bhk_=caml_call2(Runtime_ocaml_Runtime[104],_bhj_,_bhi_), - _bhl_=caml_call1(Runtime_ocaml_Runtime[31],cst_202200), - _bg__=caml_call2(Runtime_ocaml_Runtime[93],_bhl_,_bhk_); - break; - default: - var _bhm_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$270); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bhm_)) - var - _bg__= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_134100) - :caml_call1(Runtime_ocaml_Runtime[31],cst_160900); - else - var - _bhn_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$200), - _bho_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bhn_), - _bhp_=caml_call1(Runtime_ocaml_Runtime[69],_bho_), - _bhq_=caml_call1(Runtime_ocaml_Runtime[31],cst_26800), - _bhr_=caml_call2(Runtime_ocaml_Runtime[104],_bhq_,_bhp_), - _bhs_=caml_call1(Runtime_ocaml_Runtime[31],cst_187700), - _bg__=caml_call2(Runtime_ocaml_Runtime[93],_bhs_,_bhr_)} - return caml_call2 - (Runtime_ocaml_Runtime[104],_bg__,taux_francs_vers_euros)} - function _bgW_(param) - {switch(type_pret[0]) - {case 0:var _bgX_=0;break; - case 1:var _bgX_=1;break; - case 2:var _bgX_=0;break; - case 3:var _bgX_=0;break; - default:var _bgX_=0} - var - _bgY_=0 === anciennete_logement[0]?0:1, - _bgZ_=caml_call2(Runtime_ocaml_Runtime[83],_bgY_,_bgX_), - _bg0_=caml_call3(Runtime_ocaml_Runtime[57],2001,6,30), - _bg1_= - caml_call2 - (Runtime_ocaml_Runtime[120],date_signature_pret,_bg0_), - _bg2_=caml_call2(Runtime_ocaml_Runtime[83],_bg1_,_bgZ_), - _bg3_=caml_call3(Runtime_ocaml_Runtime[57],2000,6,30), - _bg4_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bg3_), - _bg5_=caml_call2(Runtime_ocaml_Runtime[83],_bg4_,_bg2_), - _bg6_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bg7_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bg6_), - _bg8_=caml_call2(Runtime_ocaml_Runtime[83],_bg7_,_bg5_); - return caml_call2(Runtime_ocaml_Runtime[29],_zL_,_bg8_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zM_,[0],_bgW_,_bgV_)} - function _bd2_(param) - {function _bgl_(param) - {switch(zone[0]) - {case 0: - var _bgz_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$271); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bgz_)) - var - _bgA_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_200100) - :caml_call1(Runtime_ocaml_Runtime[31],cst_141400); - else - var - _bgB_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$201), - _bgC_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bgB_), - _bgD_=caml_call1(Runtime_ocaml_Runtime[69],_bgC_), - _bgE_=caml_call1(Runtime_ocaml_Runtime[31],cst_41300), - _bgF_=caml_call2(Runtime_ocaml_Runtime[104],_bgE_,_bgD_), - _bgG_=caml_call1(Runtime_ocaml_Runtime[31],cst_182700), - _bgA_=caml_call2(Runtime_ocaml_Runtime[93],_bgG_,_bgF_); - break; - case 1: - var _bgH_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$272); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bgH_)) - var - _bgA_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_178600) - :caml_call1(Runtime_ocaml_Runtime[31],cst_215000); - else - var - _bgI_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$202), - _bgJ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bgI_), - _bgK_=caml_call1(Runtime_ocaml_Runtime[69],_bgJ_), - _bgL_=caml_call1(Runtime_ocaml_Runtime[31],cst_36400), - _bgM_=caml_call2(Runtime_ocaml_Runtime[104],_bgL_,_bgK_), - _bgN_=caml_call1(Runtime_ocaml_Runtime[31],cst_251400), - _bgA_=caml_call2(Runtime_ocaml_Runtime[93],_bgN_,_bgM_); - break; - default: - var _bgO_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$273); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bgO_)) - var - _bgA_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_166700) - :caml_call1(Runtime_ocaml_Runtime[31],cst_199900); - else - var - _bgP_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$203), - _bgQ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bgP_), - _bgR_=caml_call1(Runtime_ocaml_Runtime[69],_bgQ_), - _bgS_=caml_call1(Runtime_ocaml_Runtime[31],cst_33200), - _bgT_=caml_call2(Runtime_ocaml_Runtime[104],_bgS_,_bgR_), - _bgU_=caml_call1(Runtime_ocaml_Runtime[31],cst_233100), - _bgA_=caml_call2(Runtime_ocaml_Runtime[93],_bgU_,_bgT_)} - return caml_call2 - (Runtime_ocaml_Runtime[104],_bgA_,taux_francs_vers_euros)} - function _bgm_(param) - {switch(type_pret[0]) - {case 0:var _bgn_=0;break; - case 1:var _bgn_=1;break; - case 2:var _bgn_=0;break; - case 3:var _bgn_=0;break; - default:var _bgn_=0} - var - _bgo_=0 === anciennete_logement[0]?1:0, - _bgp_=caml_call2(Runtime_ocaml_Runtime[83],_bgo_,_bgn_), - _bgq_=caml_call3(Runtime_ocaml_Runtime[57],2001,6,30), - _bgr_= - caml_call2 - (Runtime_ocaml_Runtime[120],date_signature_pret,_bgq_), - _bgs_=caml_call2(Runtime_ocaml_Runtime[83],_bgr_,_bgp_), - _bgt_=caml_call3(Runtime_ocaml_Runtime[57],2000,6,30), - _bgu_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bgt_), - _bgv_=caml_call2(Runtime_ocaml_Runtime[83],_bgu_,_bgs_), - _bgw_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bgx_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bgw_), - _bgy_=caml_call2(Runtime_ocaml_Runtime[83],_bgx_,_bgv_); - return caml_call2(Runtime_ocaml_Runtime[29],_zN_,_bgy_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zO_,[0],_bgm_,_bgl_)} - function _bd3_(param) - {function _bfN_(param) - {switch(zone[0]) - {case 0: - var _bf1_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$274); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bf1_)) - var - _bf2_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_159500) - :caml_call1(Runtime_ocaml_Runtime[31],cst_192500); - else - var - _bf3_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$204), - _bf4_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bf3_), - _bf5_=caml_call1(Runtime_ocaml_Runtime[69],_bf4_), - _bf6_=caml_call1(Runtime_ocaml_Runtime[31],cst_33000), - _bf7_=caml_call2(Runtime_ocaml_Runtime[104],_bf6_,_bf5_), - _bf8_=caml_call1(Runtime_ocaml_Runtime[31],cst_225500), - _bf2_=caml_call2(Runtime_ocaml_Runtime[93],_bf8_,_bf7_); - break; - case 1: - var _bf9_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$275); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bf9_)) - var - _bf2_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_142200) - :caml_call1(Runtime_ocaml_Runtime[31],cst_171200); - else - var - _bf__=caml_call1(Runtime_ocaml_Runtime[46],cst_1$205), - _bf$_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bf__), - _bga_=caml_call1(Runtime_ocaml_Runtime[69],_bf$_), - _bgb_=caml_call1(Runtime_ocaml_Runtime[31],cst_29000), - _bgc_=caml_call2(Runtime_ocaml_Runtime[104],_bgb_,_bga_), - _bgd_=caml_call1(Runtime_ocaml_Runtime[31],cst_200200), - _bf2_=caml_call2(Runtime_ocaml_Runtime[93],_bgd_,_bgc_); - break; - default: - var _bge_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$276); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bge_)) - var - _bf2_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_132800) - :caml_call1(Runtime_ocaml_Runtime[31],cst_159300); - else - var - _bgf_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$206), - _bgg_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bgf_), - _bgh_=caml_call1(Runtime_ocaml_Runtime[69],_bgg_), - _bgi_=caml_call1(Runtime_ocaml_Runtime[31],cst_26500), - _bgj_=caml_call2(Runtime_ocaml_Runtime[104],_bgi_,_bgh_), - _bgk_=caml_call1(Runtime_ocaml_Runtime[31],cst_185800$0), - _bf2_=caml_call2(Runtime_ocaml_Runtime[93],_bgk_,_bgj_)} - return caml_call2 - (Runtime_ocaml_Runtime[104],_bf2_,taux_francs_vers_euros)} - function _bfO_(param) - {switch(type_pret[0]) - {case 0:var _bfP_=0;break; - case 1:var _bfP_=1;break; - case 2:var _bfP_=0;break; - case 3:var _bfP_=0;break; - default:var _bfP_=0} - var - _bfQ_=0 === anciennete_logement[0]?0:1, - _bfR_=caml_call2(Runtime_ocaml_Runtime[83],_bfQ_,_bfP_), - _bfS_=caml_call3(Runtime_ocaml_Runtime[57],2000,6,30), - _bfT_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bfS_), - _bfU_=caml_call2(Runtime_ocaml_Runtime[83],_bfT_,_bfR_), - _bfV_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), - _bfW_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bfV_), - _bfX_=caml_call2(Runtime_ocaml_Runtime[83],_bfW_,_bfU_), - _bfY_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bfZ_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bfY_), - _bf0_=caml_call2(Runtime_ocaml_Runtime[83],_bfZ_,_bfX_); - return caml_call2(Runtime_ocaml_Runtime[29],_zP_,_bf0_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zQ_,[0],_bfO_,_bfN_)} - function _bd4_(param) - {function _bfd_(param) - {switch(zone[0]) - {case 0: - var _bfr_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$277); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bfr_)) - var - _bfs_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_198100) - :caml_call1(Runtime_ocaml_Runtime[31],cst_239000); - else - var - _bft_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$207), - _bfu_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bft_), - _bfv_=caml_call1(Runtime_ocaml_Runtime[69],_bfu_), - _bfw_=caml_call1(Runtime_ocaml_Runtime[31],cst_40900), - _bfx_=caml_call2(Runtime_ocaml_Runtime[104],_bfw_,_bfv_), - _bfy_=caml_call1(Runtime_ocaml_Runtime[31],cst_279900), - _bfs_=caml_call2(Runtime_ocaml_Runtime[93],_bfy_,_bfx_); - break; - case 1: - var _bfz_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$278); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bfz_)) - var - _bfs_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_176800) - :caml_call1(Runtime_ocaml_Runtime[31],cst_212800); - else - var - _bfA_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$208), - _bfB_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bfA_), - _bfC_=caml_call1(Runtime_ocaml_Runtime[69],_bfB_), - _bfD_=caml_call1(Runtime_ocaml_Runtime[31],cst_36000), - _bfE_=caml_call2(Runtime_ocaml_Runtime[104],_bfD_,_bfC_), - _bfF_=caml_call1(Runtime_ocaml_Runtime[31],cst_248800), - _bfs_=caml_call2(Runtime_ocaml_Runtime[93],_bfF_,_bfE_); - break; - default: - var _bfG_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$279); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bfG_)) - var - _bfs_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_165000) - :caml_call1(Runtime_ocaml_Runtime[31],cst_197900); - else - var - _bfH_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$209), - _bfI_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bfH_), - _bfJ_=caml_call1(Runtime_ocaml_Runtime[69],_bfI_), - _bfK_=caml_call1(Runtime_ocaml_Runtime[31],cst_32900), - _bfL_=caml_call2(Runtime_ocaml_Runtime[104],_bfK_,_bfJ_), - _bfM_=caml_call1(Runtime_ocaml_Runtime[31],cst_230800), - _bfs_=caml_call2(Runtime_ocaml_Runtime[93],_bfM_,_bfL_)} - return caml_call2 - (Runtime_ocaml_Runtime[104],_bfs_,taux_francs_vers_euros)} - function _bfe_(param) - {switch(type_pret[0]) - {case 0:var _bff_=0;break; - case 1:var _bff_=1;break; - case 2:var _bff_=0;break; - case 3:var _bff_=0;break; - default:var _bff_=0} - var - _bfg_=0 === anciennete_logement[0]?1:0, - _bfh_=caml_call2(Runtime_ocaml_Runtime[83],_bfg_,_bff_), - _bfi_=caml_call3(Runtime_ocaml_Runtime[57],2000,6,30), - _bfj_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bfi_), - _bfk_=caml_call2(Runtime_ocaml_Runtime[83],_bfj_,_bfh_), - _bfl_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), - _bfm_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bfl_), - _bfn_=caml_call2(Runtime_ocaml_Runtime[83],_bfm_,_bfk_), - _bfo_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bfp_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bfo_), - _bfq_=caml_call2(Runtime_ocaml_Runtime[83],_bfp_,_bfn_); - return caml_call2(Runtime_ocaml_Runtime[29],_zR_,_bfq_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zS_,[0],_bfe_,_bfd_)} - function _bd5_(param) - {function _beF_(param) - {switch(zone[0]) - {case 0: - var _beT_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$280); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_beT_)) - var - _beU_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_167800$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_202500$1); - else - var - _beV_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$210), - _beW_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_beV_), - _beX_=caml_call1(Runtime_ocaml_Runtime[69],_beW_), - _beY_=caml_call1(Runtime_ocaml_Runtime[31],cst_34700$0), - _beZ_=caml_call2(Runtime_ocaml_Runtime[104],_beY_,_beX_), - _be0_=caml_call1(Runtime_ocaml_Runtime[31],cst_237200$0), - _beU_=caml_call2(Runtime_ocaml_Runtime[93],_be0_,_beZ_); - break; - case 1: - var _be1_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$281); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_be1_)) - var - _beU_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_149600$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_180100$0); - else - var - _be2_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$211), - _be3_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_be2_), - _be4_=caml_call1(Runtime_ocaml_Runtime[69],_be3_), - _be5_=caml_call1(Runtime_ocaml_Runtime[31],cst_30500$2), - _be6_=caml_call2(Runtime_ocaml_Runtime[104],_be5_,_be4_), - _be7_=caml_call1(Runtime_ocaml_Runtime[31],cst_210600$0), - _beU_=caml_call2(Runtime_ocaml_Runtime[93],_be7_,_be6_); - break; - default: - var _be8_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$282); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_be8_)) - var - _beU_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_139700$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_167600$0); - else - var - _be9_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$212), - _be__= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_be9_), - _be$_=caml_call1(Runtime_ocaml_Runtime[69],_be__), - _bfa_=caml_call1(Runtime_ocaml_Runtime[31],cst_27900$0), - _bfb_=caml_call2(Runtime_ocaml_Runtime[104],_bfa_,_be$_), - _bfc_=caml_call1(Runtime_ocaml_Runtime[31],cst_195500$0), - _beU_=caml_call2(Runtime_ocaml_Runtime[93],_bfc_,_bfb_)} - return caml_call2 - (Runtime_ocaml_Runtime[104],_beU_,taux_francs_vers_euros)} - function _beG_(param) - {switch(type_pret[0]) - {case 0:var _beH_=0;break; - case 1:var _beH_=1;break; - case 2:var _beH_=0;break; - case 3:var _beH_=0;break; - default:var _beH_=0} - var - _beI_=0 === anciennete_logement[0]?0:1, - _beJ_=caml_call2(Runtime_ocaml_Runtime[83],_beI_,_beH_), - _beK_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), - _beL_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_beK_), - _beM_=caml_call2(Runtime_ocaml_Runtime[83],_beL_,_beJ_), - _beN_=caml_call3(Runtime_ocaml_Runtime[57],1992,6,30), - _beO_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_beN_), - _beP_=caml_call2(Runtime_ocaml_Runtime[83],_beO_,_beM_), - _beQ_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _beR_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_beQ_), - _beS_=caml_call2(Runtime_ocaml_Runtime[83],_beR_,_beP_); - return caml_call2(Runtime_ocaml_Runtime[29],_zT_,_beS_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zU_,[0],_beG_,_beF_)} - var - _bd6_= - [0, - function(param) - {function _bd7_(param) - {switch(zone[0]) - {case 0: - var _bej_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$283); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bej_)) - var - _bek_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_208500$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_251500$0); - else - var - _bel_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$213), - _bem_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bel_), - _ben_=caml_call1(Runtime_ocaml_Runtime[69],_bem_), - _beo_=caml_call1(Runtime_ocaml_Runtime[31],cst_43000$0), - _bep_=caml_call2(Runtime_ocaml_Runtime[104],_beo_,_ben_), - _beq_=caml_call1(Runtime_ocaml_Runtime[31],cst_294500$0), - _bek_=caml_call2(Runtime_ocaml_Runtime[93],_beq_,_bep_); - break; - case 1: - var _ber_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$284); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ber_)) - var - _bek_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_186000$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_223900$0); - else - var - _bes_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$214), - _bet_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bes_), - _beu_=caml_call1(Runtime_ocaml_Runtime[69],_bet_), - _bev_=caml_call1(Runtime_ocaml_Runtime[31],cst_37900$0), - _bew_=caml_call2(Runtime_ocaml_Runtime[104],_bev_,_beu_), - _bex_=caml_call1(Runtime_ocaml_Runtime[31],cst_261800$0), - _bek_=caml_call2(Runtime_ocaml_Runtime[93],_bex_,_bew_); - break; - default: - var _bey_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$285); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bey_)) - var - _bek_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_173600$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_208200$0); - else - var - _bez_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$215), - _beA_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bez_), - _beB_=caml_call1(Runtime_ocaml_Runtime[69],_beA_), - _beC_=caml_call1(Runtime_ocaml_Runtime[31],cst_34600), - _beD_=caml_call2(Runtime_ocaml_Runtime[104],_beC_,_beB_), - _beE_=caml_call1(Runtime_ocaml_Runtime[31],cst_242800$0), - _bek_=caml_call2(Runtime_ocaml_Runtime[93],_beE_,_beD_)} - return caml_call2 - (Runtime_ocaml_Runtime[104],_bek_,taux_francs_vers_euros)} - function _bd8_(param) - {switch(type_pret[0]) - {case 0:var _bd9_=0;break; - case 1:var _bd9_=1;break; - case 2:var _bd9_=0;break; - case 3:var _bd9_=0;break; - default:var _bd9_=0} - var - _bd__=0 === anciennete_logement[0]?1:0, - _bd$_=caml_call2(Runtime_ocaml_Runtime[83],_bd__,_bd9_), - _bea_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), - _beb_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bea_), - _bec_=caml_call2(Runtime_ocaml_Runtime[83],_beb_,_bd$_), - _bed_=caml_call3(Runtime_ocaml_Runtime[57],1992,6,30), - _bee_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bed_), - _bef_=caml_call2(Runtime_ocaml_Runtime[83],_bee_,_bec_), - _beg_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _beh_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_beg_), - _bei_=caml_call2(Runtime_ocaml_Runtime[83],_beh_,_bef_); - return caml_call2(Runtime_ocaml_Runtime[29],_zV_,_bei_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zW_,[0],_bd8_,_bd7_)}, - _bd5_, - _bd4_, - _bd3_, - _bd2_, - _bd1_, - _bd0_, - _bdZ_, - _bdY_, - _bdX_, - _bdW_, - _bdV_, - _bdU_, - _bdT_, - _bdS_, - _bdR_, - _bdQ_, - _bdP_, - _bdO_, - _bdN_, - _bdM_, - _bdL_, - _bdK_, - _bdJ_, - _bdI_, - _bdH_, - _bdG_, - _bdF_, - _bdE_, - _bdD_, - _bdC_, - _bdB_, - _bdA_, - _bdz_, - _bdy_, - _bdx_, - _bdw_, - _bdv_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_zX_,_bd6_,_bdu_,_bdt_)} - function _bc6_(param){return 1} - var - _bc7_= - [0, - function(param) - {function _bc8_(param) - {var _bdl_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$286); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bdl_)) - var - _bdm_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_86900) - :caml_call1(Runtime_ocaml_Runtime[31],cst_97100); - else - var - _bdn_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$216), - _bdo_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bdn_), - _bdp_=caml_call1(Runtime_ocaml_Runtime[69],_bdo_), - _bdq_=caml_call1(Runtime_ocaml_Runtime[31],cst_10200), - _bdr_=caml_call2(Runtime_ocaml_Runtime[104],_bdq_,_bdp_), - _bds_=caml_call1(Runtime_ocaml_Runtime[31],cst_107300), - _bdm_=caml_call2(Runtime_ocaml_Runtime[93],_bds_,_bdr_); - return caml_call2 - (Runtime_ocaml_Runtime[104],_bdm_,taux_francs_vers_euros)} - function _bc9_(param) - {switch(type_pret[0]) - {case 0:var _bc__=0;break; - case 1:var _bc__=1;break; - case 2:var _bc__=0;break; - case 3:var _bc__=0;break; - default:var _bc__=0} - if(0 === anciennete_logement[0]) - var _bc$_=0; - else - var - ameliore_par_occupant=anciennete_logement[1], - _bdk_=0 === ameliore_par_occupant[0]?1:0, - _bc$_=_bdk_; - var - _bda_=caml_call2(Runtime_ocaml_Runtime[83],_bc$_,_bc__), - _bdb_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), - _bdc_= - caml_call2 - (Runtime_ocaml_Runtime[120],date_signature_pret,_bdb_), - _bdd_=caml_call2(Runtime_ocaml_Runtime[83],_bdc_,_bda_), - _bde_=caml_call3(Runtime_ocaml_Runtime[57],1992,6,30), - _bdf_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bde_), - _bdg_=caml_call2(Runtime_ocaml_Runtime[83],_bdf_,_bdd_), - _bdh_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _bdi_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bdh_), - _bdj_=caml_call2(Runtime_ocaml_Runtime[83],_bdi_,_bdg_); - return caml_call2(Runtime_ocaml_Runtime[29],_zY_,_bdj_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zZ_,[0],_bc9_,_bc8_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_z0_,_bc7_,_bc6_,_bc5_)}, - _bc1_], - _bc3_=caml_call4(Runtime_ocaml_Runtime[63],_z1_,_bc2_,_bc0_,_bcZ_); - return _bc3_} - catch(_bc4_) - {_bc4_ = caml_wrap_exception(_bc4_); - if(_bc4_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_yA_]; - throw _bc4_}} - var - calcul_plafond_mensualite_d832= - caml_call3 - (Runtime_ocaml_Runtime[28],_z2_,Runtime_ocaml_Runtime[10],_a$7_); - try - {var - _a$8_=function(param){return calcul_nombre_parts_dot_n_nomb}, - _a$9_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_z4_,1)}, - _a$__=caml_call4(Runtime_ocaml_Runtime[63],_z5_,[0],_a$9_,_a$8_)} - catch(_bcY_) - {_bcY_ = caml_wrap_exception(_bcY_); - if(_bcY_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_z3_]; - throw _bcY_} - var - n_nombre_parts_d832_11= - caml_call3 - (Runtime_ocaml_Runtime[28],_z6_,Runtime_ocaml_Runtime[15],_a$__); - function _a$$_(allocation_mensuelle) - {try - {var - _bcO_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[98], - mensualite_principale, - allocation_mensuelle)}, - _bcP_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_z8_,1)}, - _bcQ_= - [0, - function(param) - {function _bcT_(param) - {var - _bcX_= - caml_call2 + _bA3_ = + function(param){ + var + _bA7_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _mZ_, + Runtime_ocaml_Runtime[13], + aide_finale), + _bA8_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _m0_, + traitement_aide_finale_abattem), + _bA7_), + _bA9_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _m1_, + Runtime_ocaml_Runtime[13], + _bA8_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _m2_, _bA9_), + _bA__ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _m3_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _bA$_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _m4_, + contributions_sociales_dot_mon), + _bA__), + _bBa_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _m5_, + Runtime_ocaml_Runtime[13], + _bA$_), + crds = caml_call2(Runtime_ocaml_Runtime[27], _m6_, _bBa_), + _bBb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_50$0), + _bBc_ = caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, crds), + _bBd_ = caml_call2(Runtime_ocaml_Runtime[98], _bBc_, _bBb_), + aide_finale_moins_crds_arrondi = + caml_call1(Runtime_ocaml_Runtime[77], _bBd_), + _bBe_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$94), + _bBf_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds); + return caml_call2(Runtime_ocaml_Runtime[128], _bBf_, _bBe_) + ? caml_call2 (Runtime_ocaml_Runtime[93], - mensualite_principale, - montant_forfaitaire_charges_d8); - return caml_call2 - (Runtime_ocaml_Runtime[98],_bcX_,allocation_mensuelle)} - function _bcU_(param) - {var - _bcV_=caml_call3(Runtime_ocaml_Runtime[57],1999,6,30), - _bcW_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bcV_); - return caml_call2(Runtime_ocaml_Runtime[29],_z9_,_bcW_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_z__,[0],_bcU_,_bcT_)}], - _bcR_=caml_call4(Runtime_ocaml_Runtime[63],_z$_,_bcQ_,_bcP_,_bcO_); - return _bcR_} - catch(_bcS_) - {_bcS_ = caml_wrap_exception(_bcS_); - if(_bcS_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_z7_]; - throw _bcS_}} + aide_finale_moins_crds_arrondi, + crds) + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$95); + }, + _bA4_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _m7_, 1); + }, + _bA5_ = caml_call4(Runtime_ocaml_Runtime[63], _m8_, [0], _bA4_, _bA3_); + return _bA5_; + } + catch(_bA6_){ + var _bA2_ = caml_wrap_exception(_bA6_); + if(_bA2_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _mY_], 1); + throw caml_maybe_attach_backtrace(_bA2_, 0); + } + } + var + traitement_aide_finale_contrib = + caml_call3 + (Runtime_ocaml_Runtime[28], _m9_, Runtime_ocaml_Runtime[10], _bAH_); + try{ + var + _bAJ_ = + function(param){ + var + _bA0_ = + caml_call2 + (Runtime_ocaml_Runtime[98], + equivalence_loyer_eligible, + equivalence_loyer_minimale), + aide_finale = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bA0_, + coefficient_prise_en_charge_d8$1), + _bA1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$96); + return caml_call2(Runtime_ocaml_Runtime[113], aide_finale, _bA1_) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$97) + : aide_finale; + }, + _bAK_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _m$_, 1); + }, + _bAL_ = caml_call4(Runtime_ocaml_Runtime[63], _na_, [0], _bAK_, _bAJ_); + } + catch(_bAZ_){ + var _bAI_ = caml_wrap_exception(_bAZ_); + if(_bAI_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _m__], 1); + throw caml_maybe_attach_backtrace(_bAI_, 0); + } + var + aide_finale_formule = + caml_call3 + (Runtime_ocaml_Runtime[28], _nb_, Runtime_ocaml_Runtime[13], _bAL_); + function _bAM_(aide_finale){ + try{ var - depense_nette_minimale_d832_10= + _bAS_ = + function(param){ + var + _bAW_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _nd_, + Runtime_ocaml_Runtime[13], + aide_finale), + _bAX_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _ne_, + traitement_aide_finale_contrib), + _bAW_), + _bAY_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _nf_, + Runtime_ocaml_Runtime[13], + _bAX_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _ng_, _bAY_); + return caml_call2 + (Runtime_ocaml_Runtime[113], + aide_finale$0, + montant_minimal_aide_d823_24) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$98) + : aide_finale$0; + }, + _bAT_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _nh_, 1); + }, + _bAU_ = caml_call4(Runtime_ocaml_Runtime[63], _ni_, [0], _bAT_, _bAS_); + return _bAU_; + } + catch(_bAV_){ + var _bAR_ = caml_wrap_exception(_bAV_); + if(_bAR_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _nc_], 1); + throw caml_maybe_attach_backtrace(_bAR_, 0); + } + } + var + traitement_aide_finale_montant = + caml_call3 + (Runtime_ocaml_Runtime[28], _nj_, Runtime_ocaml_Runtime[10], _bAM_); + try{ + var + _bAO_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bAP_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bAO_); + } + catch(_bAQ_){ + var _bAN_ = caml_wrap_exception(_bAQ_); + if(_bAN_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _nk_], 1); + throw caml_maybe_attach_backtrace(_bAN_, 0); + } + if(_bAP_) + return [0, + coefficient_multiplicateur_d83, + coefficient_r_d832_25, + n_nombre_parts_d832_25$0, + equivalence_loyer_eligible, + plafond_equivalence_loyer_elig, + equivalence_loyer_minimale, + coefficient_prise_en_charge_d8$1, + aide_finale_formule, + traitement_aide_finale_montant]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _nl_], 1); + } + function calcul_aide_personnalisee_loge$1(calcul_aide_personnalisee_loge){ + var + mensualite_principale = calcul_aide_personnalisee_loge[1], + ressources_menage_arrondies = calcul_aide_personnalisee_loge[2], + nombre_personnes_a_charge = calcul_aide_personnalisee_loge[3], + situation_familiale_calcul_apl = calcul_aide_personnalisee_loge[4], + type_travaux_logement = calcul_aide_personnalisee_loge[5], + date_signature_pret = calcul_aide_personnalisee_loge[6], + local_habite_premiere_fois_ben = calcul_aide_personnalisee_loge[7], + date_entree_logement = calcul_aide_personnalisee_loge[8], + copropriete = calcul_aide_personnalisee_loge[9], + situation_r822_11_13_17 = calcul_aide_personnalisee_loge[10], + zone = calcul_aide_personnalisee_loge[11], + type_pret = calcul_aide_personnalisee_loge[12], + anciennete_logement = calcul_aide_personnalisee_loge[13], + date_courante = calcul_aide_personnalisee_loge[14]; + try{ + var + _a43_ = + function(param){ + var + _byZ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6_55957), + _by0_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$51); + return caml_call2(Runtime_ocaml_Runtime[107], _by0_, _byZ_); + }, + _a44_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _nn_, 1); + }, + _a45_ = caml_call4(Runtime_ocaml_Runtime[63], _no_, [0], _a44_, _a43_); + } + catch(_byY_){ + var _a42_ = caml_wrap_exception(_byY_); + if(_a42_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _nm_], 1); + throw caml_maybe_attach_backtrace(_a42_, 0); + } + var + taux_francs_vers_euros = + caml_call3 + (Runtime_ocaml_Runtime[28], _np_, Runtime_ocaml_Runtime[15], _a45_); + try{ + var + _a47_ = function(param){return nombre_personnes_a_charge;}, + _a48_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _nr_, 1); + }, + _a49_ = caml_call4(Runtime_ocaml_Runtime[63], _ns_, [0], _a48_, _a47_), + calcul_nombre_parts_dot_nombre = caml_call3 - (Runtime_ocaml_Runtime[28],_Aa_,Runtime_ocaml_Runtime[10],_a$$_); - try - {var - _baa_= - function(param) - {var - _bcL_= + (Runtime_ocaml_Runtime[28], _nt_, Runtime_ocaml_Runtime[14], _a49_); + } + catch(_byX_){ + var _a46_ = caml_wrap_exception(_byX_); + if(_a46_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _nq_], 1); + throw caml_maybe_attach_backtrace(_a46_, 0); + } + try{ + var + _a4$_ = function(param){return situation_familiale_calcul_apl;}, + _a5a_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _nv_, 1); + }, + _a5b_ = caml_call4(Runtime_ocaml_Runtime[63], _nw_, [0], _a5a_, _a4$_), + calcul_nombre_parts_dot_situat = + caml_call3 + (Runtime_ocaml_Runtime[28], + _nx_, + embed_situation_familiale_calc, + _a5b_); + } + catch(_byW_){ + var _a4__ = caml_wrap_exception(_byW_); + if(_a4__ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _nu_], 1); + throw caml_maybe_attach_backtrace(_a4__, 0); + } + var + _a5c_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _ny_, calcul_nombre_parts_accession_), + [0, calcul_nombre_parts_dot_nombre, calcul_nombre_parts_dot_situat]), + result = caml_call2(Runtime_ocaml_Runtime[27], _nz_, _a5c_), + calcul_nombre_parts_dot_n_nomb = result[1]; + try{ + var + _a5e_ = function(param){return date_courante;}, + _a5f_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _nB_, 1); + }, + _a5g_ = caml_call4(Runtime_ocaml_Runtime[63], _nC_, [0], _a5f_, _a5e_), + contributions_sociales_dot_dat = + caml_call3 + (Runtime_ocaml_Runtime[28], _nD_, Runtime_ocaml_Runtime[16], _a5g_); + } + catch(_byV_){ + var _a5d_ = caml_wrap_exception(_byV_); + if(_a5d_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _nA_], 1); + throw caml_maybe_attach_backtrace(_a5d_, 0); + } + var + _a5h_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _nE_, contributions_sociales_aides_p), + [0, contributions_sociales_dot_dat]), + result$0 = caml_call2(Runtime_ocaml_Runtime[27], _nF_, _a5h_), + contributions_sociales_dot_mon = result$0[1]; + try{ + var + _a5j_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_416); + }, + _a5k_ = + function(param){ + var + _byT_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _byU_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _byT_); + return caml_call2(Runtime_ocaml_Runtime[29], _nH_, _byU_); + }, + _a5l_ = caml_call4(Runtime_ocaml_Runtime[63], _nI_, [0], _a5k_, _a5j_); + } + catch(_byS_){ + var _a5i_ = caml_wrap_exception(_byS_); + if(_a5i_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _nG_], 1); + throw caml_maybe_attach_backtrace(_a5i_, 0); + } + var + taux_tranche_superieure_d832_1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _nJ_, Runtime_ocaml_Runtime[15], _a5l_); + try{ + var + _a5n_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_208$0); + }, + _a5o_ = + function(param){ + var + _byQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _byR_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _byQ_); + return caml_call2(Runtime_ocaml_Runtime[29], _nL_, _byR_); + }, + _a5p_ = caml_call4(Runtime_ocaml_Runtime[63], _nM_, [0], _a5o_, _a5n_); + } + catch(_byP_){ + var _a5m_ = caml_wrap_exception(_byP_); + if(_a5m_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _nK_], 1); + throw caml_maybe_attach_backtrace(_a5m_, 0); + } + var + taux_tranche_inferieure_d832_1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _nN_, Runtime_ocaml_Runtime[15], _a5p_); + try{ + var + _a5r_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_560085); + }, + _a5s_ = + function(param){ + var + _byN_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _byO_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _byN_); + return caml_call2(Runtime_ocaml_Runtime[29], _nP_, _byO_); + }, + _a5t_ = caml_call4(Runtime_ocaml_Runtime[63], _nQ_, [0], _a5s_, _a5r_); + } + catch(_byM_){ + var _a5q_ = caml_wrap_exception(_byM_); + if(_a5q_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _nO_], 1); + throw caml_maybe_attach_backtrace(_a5q_, 0); + } + var + montant_limite_tranches_d832_1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _nR_, Runtime_ocaml_Runtime[13], _a5t_); + try{ + var + _a5v_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_16_25); + }, + _a5w_ = + function(param){ + var + _byK_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _byL_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _byK_); + return caml_call2(Runtime_ocaml_Runtime[29], _nT_, _byL_); + }, + _a5x_ = caml_call4(Runtime_ocaml_Runtime[63], _nU_, [0], _a5w_, _a5v_); + } + catch(_byJ_){ + var _a5u_ = caml_wrap_exception(_byJ_); + if(_a5u_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _nS_], 1); + throw caml_maybe_attach_backtrace(_a5u_, 0); + } + var + coefficient_multiplicateur_d83 = + caml_call3 + (Runtime_ocaml_Runtime[28], _nV_, Runtime_ocaml_Runtime[15], _a5x_); + try{ + var + _a5z_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_2211133); + }, + _a5A_ = + function(param){ + var + _byH_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _byI_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _byH_); + return caml_call2(Runtime_ocaml_Runtime[29], _nX_, _byI_); + }, + _a5B_ = caml_call4(Runtime_ocaml_Runtime[63], _nY_, [0], _a5A_, _a5z_); + } + catch(_byG_){ + var _a5y_ = caml_wrap_exception(_byG_); + if(_a5y_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _nW_], 1); + throw caml_maybe_attach_backtrace(_a5y_, 0); + } + var + coefficient_multiplicateur_d83$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _nZ_, Runtime_ocaml_Runtime[13], _a5B_); + try{ + var + _a5D_ = + function(param){ + if(0 === anciennete_logement[0]){ + var _byE_ = caml_call3(Runtime_ocaml_Runtime[57], 1998, 10, 1); + return caml_call2 + (Runtime_ocaml_Runtime[120], date_signature_pret, _byE_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0226) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0234); + } + var ameliore_par_occupant = anciennete_logement[1]; + if(0 === ameliore_par_occupant[0]) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0172); + var _byF_ = caml_call3(Runtime_ocaml_Runtime[57], 1998, 10, 1); + return caml_call2 + (Runtime_ocaml_Runtime[120], date_signature_pret, _byF_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0226$0) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0234$0); + }, + _a5E_ = + function(param){ + var + _byC_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _byD_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _byC_); + return caml_call2(Runtime_ocaml_Runtime[29], _n1_, _byD_); + }, + _a5F_ = caml_call4(Runtime_ocaml_Runtime[63], _n2_, [0], _a5E_, _a5D_); + } + catch(_byB_){ + var _a5C_ = caml_wrap_exception(_byB_); + if(_a5C_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _n0_], 1); + throw caml_maybe_attach_backtrace(_a5C_, 0); + } + var + coefficient_multiplicateur_d83$1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _n3_, Runtime_ocaml_Runtime[15], _a5F_); + try{ + var + _a5H_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1000$2); + }, + _a5I_ = + function(param){ + var + _byz_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _byA_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _byz_); + return caml_call2(Runtime_ocaml_Runtime[29], _n5_, _byA_); + }, + _a5J_ = caml_call4(Runtime_ocaml_Runtime[63], _n6_, [0], _a5I_, _a5H_); + } + catch(_byy_){ + var _a5G_ = caml_wrap_exception(_byy_); + if(_a5G_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _n4_], 1); + throw caml_maybe_attach_backtrace(_a5G_, 0); + } + var + montant_minimal_aide_d832_10 = + caml_call3 + (Runtime_ocaml_Runtime[28], _n7_, Runtime_ocaml_Runtime[13], _a5J_); + try{ + var + _a5L_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_500$1); + }, + _a5M_ = + function(param){ + var + _byw_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _byx_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _byw_); + return caml_call2(Runtime_ocaml_Runtime[29], _n9_, _byx_); + }, + _a5N_ = caml_call4(Runtime_ocaml_Runtime[63], _n__, [0], _a5M_, _a5L_); + } + catch(_byv_){ + var _a5K_ = caml_wrap_exception(_byv_); + if(_a5K_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _n8_], 1); + throw caml_maybe_attach_backtrace(_a5K_, 0); + } + var + montant_forfaitaire_d832_10 = + caml_call3 + (Runtime_ocaml_Runtime[28], _n$_, Runtime_ocaml_Runtime[13], _a5N_); + try{ + var + _a5P_ = + function(param){ + function _bxY_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bxZ_(param){return 0;} + function _bx0_(param){ + function _byk_(param){ + var + _byr_ = + caml_call1(Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bys_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1224$1), + _byt_ = caml_call2(Runtime_ocaml_Runtime[104], _bys_, _byr_), + _byu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5399$1); + return caml_call2(Runtime_ocaml_Runtime[93], _byu_, _byt_); + } + function _byl_(param){ + var + _bym_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _byn_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bym_), + _byo_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _byp_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _byo_), + _byq_ = caml_call2(Runtime_ocaml_Runtime[83], _byp_, _byn_); + return caml_call2(Runtime_ocaml_Runtime[29], _ob_, _byq_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oc_, [0], _byl_, _byk_); + } + function _bx1_(param){ + function _bx$_(param){ + var + _byg_ = + caml_call1(Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _byh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1229$1), + _byi_ = caml_call2(Runtime_ocaml_Runtime[104], _byh_, _byg_), + _byj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5422$1); + return caml_call2(Runtime_ocaml_Runtime[93], _byj_, _byi_); + } + function _bya_(param){ + var + _byb_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _byc_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _byb_), + _byd_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bye_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _byd_), + _byf_ = caml_call2(Runtime_ocaml_Runtime[83], _bye_, _byc_); + return caml_call2(Runtime_ocaml_Runtime[29], _od_, _byf_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oe_, [0], _bya_, _bx$_); + } + var + _bx2_ = + [0, + function(param){ + function _bx3_(param){ + var + _bx7_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bx8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1272$1), + _bx9_ = caml_call2(Runtime_ocaml_Runtime[104], _bx8_, _bx7_), + _bx__ = caml_call1(Runtime_ocaml_Runtime[31], cst_5612$1); + return caml_call2(Runtime_ocaml_Runtime[93], _bx__, _bx9_); + } + function _bx4_(param){ + var + _bx5_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bx6_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bx5_); + return caml_call2(Runtime_ocaml_Runtime[29], _of_, _bx6_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _og_, [0], _bx4_, _bx3_); + }, + _bx1_, + _bx0_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _oh_, _bx2_, _bxZ_, _bxY_); + }, + _a5Q_ = function(param){return 1;}, + _a5R_ = + [0, + function(param){ + function _bxm_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bxn_(param){return 0;} + function _bxo_(param){ + function _bxM_(param){ + var + _bxU_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bxV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1224$2), + _bxW_ = caml_call2(Runtime_ocaml_Runtime[104], _bxV_, _bxU_), + _bxX_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_2699$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_5399$2); + return caml_call2(Runtime_ocaml_Runtime[93], _bxX_, _bxW_); + } + function _bxN_(param){ + var + _bxO_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bxP_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bxO_), + _bxQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bxR_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bxQ_), + _bxS_ = caml_call2(Runtime_ocaml_Runtime[83], _bxR_, _bxP_), + _bxT_ = caml_call2(Runtime_ocaml_Runtime[83], _bxS_, copropriete); + return caml_call2(Runtime_ocaml_Runtime[29], _oi_, _bxT_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oj_, [0], _bxN_, _bxM_); + } + function _bxp_(param){ + function _bxA_(param){ + var + _bxI_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bxJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1229$2), + _bxK_ = caml_call2(Runtime_ocaml_Runtime[104], _bxJ_, _bxI_), + _bxL_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_2710$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_5422$2); + return caml_call2(Runtime_ocaml_Runtime[93], _bxL_, _bxK_); + } + function _bxB_(param){ + var + _bxC_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bxD_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bxC_), + _bxE_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bxF_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bxE_), + _bxG_ = caml_call2(Runtime_ocaml_Runtime[83], _bxF_, _bxD_), + _bxH_ = caml_call2(Runtime_ocaml_Runtime[83], _bxG_, copropriete); + return caml_call2(Runtime_ocaml_Runtime[29], _ok_, _bxH_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ol_, [0], _bxB_, _bxA_); + } + var + _bxq_ = + [0, + function(param){ + function _bxr_(param){ + var + _bxw_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bxx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1272$2), + _bxy_ = caml_call2(Runtime_ocaml_Runtime[104], _bxx_, _bxw_), + _bxz_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_2805$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_5612$2); + return caml_call2(Runtime_ocaml_Runtime[93], _bxz_, _bxy_); + } + function _bxs_(param){ + var + _bxt_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bxu_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bxt_), + _bxv_ = + caml_call2(Runtime_ocaml_Runtime[83], _bxu_, copropriete); + return caml_call2(Runtime_ocaml_Runtime[29], _om_, _bxv_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _on_, [0], _bxs_, _bxr_); + }, + _bxp_, + _bxo_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _oo_, _bxq_, _bxn_, _bxm_); + }], + _a5S_ = caml_call4(Runtime_ocaml_Runtime[63], _op_, _a5R_, _a5Q_, _a5P_); + } + catch(_bxl_){ + var _a5O_ = caml_wrap_exception(_bxl_); + if(_a5O_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _oa_], 1); + throw caml_maybe_attach_backtrace(_a5O_, 0); + } + var + montant_forfaitaire_charges_d8 = + caml_call3 + (Runtime_ocaml_Runtime[28], _oq_, Runtime_ocaml_Runtime[13], _a5S_); + function _a5T_(date_signature_pret){ + try{ + var + _a9k_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _a9l_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _os_, 0); + }, + _a9m_ = + function(param){ + function _bu7_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bu8_(param){return 0;} + function _bu9_(param){ + function _bwQ_(param){ + switch(zone[0]){ + case 0: + var _bw1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$99); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bw1_)) + var + _bw2_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_148100) + : caml_call1(Runtime_ocaml_Runtime[31], cst_178700); + else + var + _bw3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$52), + _bw4_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bw3_), + _bw5_ = caml_call1(Runtime_ocaml_Runtime[69], _bw4_), + _bw6_ = caml_call1(Runtime_ocaml_Runtime[31], cst_30600), + _bw7_ = caml_call2(Runtime_ocaml_Runtime[104], _bw6_, _bw5_), + _bw8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_209300), + _bw2_ = caml_call2(Runtime_ocaml_Runtime[93], _bw8_, _bw7_); + break; + case 1: + var _bw9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$100); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bw9_)) + var + _bw2_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_132000) + : caml_call1(Runtime_ocaml_Runtime[31], cst_158900); + else + var + _bw__ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$53), + _bw$_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bw__), + _bxa_ = caml_call1(Runtime_ocaml_Runtime[69], _bw$_), + _bxb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_26900), + _bxc_ = caml_call2(Runtime_ocaml_Runtime[104], _bxb_, _bxa_), + _bxd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_185800), + _bw2_ = caml_call2(Runtime_ocaml_Runtime[93], _bxd_, _bxc_); + break; + default: + var _bxe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$101); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bxe_)) + var + _bw2_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_123300) + : caml_call1(Runtime_ocaml_Runtime[31], cst_147900); + else + var + _bxf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$54), + _bxg_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bxf_), + _bxh_ = caml_call1(Runtime_ocaml_Runtime[69], _bxg_), + _bxi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_24600), + _bxj_ = caml_call2(Runtime_ocaml_Runtime[104], _bxi_, _bxh_), + _bxk_ = caml_call1(Runtime_ocaml_Runtime[31], cst_172500), + _bw2_ = caml_call2(Runtime_ocaml_Runtime[93], _bxk_, _bxj_); + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _bw2_, taux_francs_vers_euros); + } + function _bwR_(param){ + switch(type_pret[0]){ + case 0: + var _bwS_ = 1; break; + case 1: + var _bwS_ = 0; break; + case 2: + var _bwS_ = 0; break; + case 3: + var _bwS_ = 0; break; + default: var _bwS_ = 0; + } + var + _bwT_ = 0 === anciennete_logement[0] ? 0 : 1, + _bwU_ = caml_call2(Runtime_ocaml_Runtime[83], _bwT_, _bwS_), + _bwV_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), + _bwW_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bwV_), + _bwX_ = caml_call2(Runtime_ocaml_Runtime[83], _bwW_, _bwU_), + _bwY_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bwZ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bwY_), + _bw0_ = caml_call2(Runtime_ocaml_Runtime[83], _bwZ_, _bwX_); + return caml_call2(Runtime_ocaml_Runtime[29], _ot_, _bw0_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ou_, [0], _bwR_, _bwQ_); + } + function _bu__(param){ + function _bwj_(param){ + switch(zone[0]){ + case 0: + var _bwu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$102); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bwu_)) + var + _bwv_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_184000) + : caml_call1(Runtime_ocaml_Runtime[31], cst_220000); + else + var + _bww_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$55), + _bwx_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bww_), + _bwy_ = caml_call1(Runtime_ocaml_Runtime[69], _bwx_), + _bwz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_38000), + _bwA_ = caml_call2(Runtime_ocaml_Runtime[104], _bwz_, _bwy_), + _bwB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_260000), + _bwv_ = caml_call2(Runtime_ocaml_Runtime[93], _bwB_, _bwA_); + break; + case 1: + var _bwC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$103); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bwC_)) + var + _bwv_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_164200) + : caml_call1(Runtime_ocaml_Runtime[31], cst_197700); + else + var + _bwD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$56), + _bwE_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bwD_), + _bwF_ = caml_call1(Runtime_ocaml_Runtime[69], _bwE_), + _bwG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33500), + _bwH_ = caml_call2(Runtime_ocaml_Runtime[104], _bwG_, _bwF_), + _bwI_ = caml_call1(Runtime_ocaml_Runtime[31], cst_231200), + _bwv_ = caml_call2(Runtime_ocaml_Runtime[93], _bwI_, _bwH_); + break; + default: + var _bwJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$104); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bwJ_)) + var + _bwv_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_153200) + : caml_call1(Runtime_ocaml_Runtime[31], cst_183700); + else + var + _bwK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$57), + _bwL_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bwK_), + _bwM_ = caml_call1(Runtime_ocaml_Runtime[69], _bwL_), + _bwN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_30500$0), + _bwO_ = caml_call2(Runtime_ocaml_Runtime[104], _bwN_, _bwM_), + _bwP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_214200), + _bwv_ = caml_call2(Runtime_ocaml_Runtime[93], _bwP_, _bwO_); + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _bwv_, taux_francs_vers_euros); + } + function _bwk_(param){ + switch(type_pret[0]){ + case 0: + var _bwl_ = 1; break; + case 1: + var _bwl_ = 0; break; + case 2: + var _bwl_ = 0; break; + case 3: + var _bwl_ = 0; break; + default: var _bwl_ = 0; + } + var + _bwm_ = 0 === anciennete_logement[0] ? 1 : 0, + _bwn_ = caml_call2(Runtime_ocaml_Runtime[83], _bwm_, _bwl_), + _bwo_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), + _bwp_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bwo_), + _bwq_ = caml_call2(Runtime_ocaml_Runtime[83], _bwp_, _bwn_), + _bwr_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bws_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bwr_), + _bwt_ = caml_call2(Runtime_ocaml_Runtime[83], _bws_, _bwq_); + return caml_call2(Runtime_ocaml_Runtime[29], _ov_, _bwt_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ow_, [0], _bwk_, _bwj_); + } + function _bu$_(param){ + function _bvL_(param){ + switch(zone[0]){ + case 0: + var _bvZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$105); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bvZ_)) + var + _bv0_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_167800) + : caml_call1(Runtime_ocaml_Runtime[31], cst_202500); + else + var + _bv1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$58), + _bv2_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bv1_), + _bv3_ = caml_call1(Runtime_ocaml_Runtime[69], _bv2_), + _bv4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34700), + _bv5_ = caml_call2(Runtime_ocaml_Runtime[104], _bv4_, _bv3_), + _bv6_ = caml_call1(Runtime_ocaml_Runtime[31], cst_237200), + _bv0_ = caml_call2(Runtime_ocaml_Runtime[93], _bv6_, _bv5_); + break; + case 1: + var _bv7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$106); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bv7_)) + var + _bv0_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_149600) + : caml_call1(Runtime_ocaml_Runtime[31], cst_180100); + else + var + _bv8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$59), + _bv9_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bv8_), + _bv__ = caml_call1(Runtime_ocaml_Runtime[69], _bv9_), + _bv$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_30500$1), + _bwa_ = caml_call2(Runtime_ocaml_Runtime[104], _bv$_, _bv__), + _bwb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_210600), + _bv0_ = caml_call2(Runtime_ocaml_Runtime[93], _bwb_, _bwa_); + break; + default: + var _bwc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$107); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bwc_)) + var + _bv0_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_139700) + : caml_call1(Runtime_ocaml_Runtime[31], cst_167600); + else + var + _bwd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$60), + _bwe_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bwd_), + _bwf_ = caml_call1(Runtime_ocaml_Runtime[69], _bwe_), + _bwg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_27900), + _bwh_ = caml_call2(Runtime_ocaml_Runtime[104], _bwg_, _bwf_), + _bwi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_195500), + _bv0_ = caml_call2(Runtime_ocaml_Runtime[93], _bwi_, _bwh_); + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _bv0_, taux_francs_vers_euros); + } + function _bvM_(param){ + switch(type_pret[0]){ + case 0: + var _bvN_ = 1; break; + case 1: + var _bvN_ = 0; break; + case 2: + var _bvN_ = 0; break; + case 3: + var _bvN_ = 0; break; + default: var _bvN_ = 0; + } + var + _bvO_ = 0 === anciennete_logement[0] ? 0 : 1, + _bvP_ = caml_call2(Runtime_ocaml_Runtime[83], _bvO_, _bvN_), + _bvQ_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), + _bvR_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bvQ_), + _bvS_ = caml_call2(Runtime_ocaml_Runtime[83], _bvR_, _bvP_), + _bvT_ = caml_call3(Runtime_ocaml_Runtime[57], 1992, 6, 30), + _bvU_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bvT_), + _bvV_ = caml_call2(Runtime_ocaml_Runtime[83], _bvU_, _bvS_), + _bvW_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bvX_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bvW_), + _bvY_ = caml_call2(Runtime_ocaml_Runtime[83], _bvX_, _bvV_); + return caml_call2(Runtime_ocaml_Runtime[29], _ox_, _bvY_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oy_, [0], _bvM_, _bvL_); + } + var + _bva_ = + [0, + function(param){ + function _bvb_(param){ + switch(zone[0]){ + case 0: + var + _bvp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$108); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bvp_)) + var + _bvq_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_208500) + : caml_call1(Runtime_ocaml_Runtime[31], cst_251500); + else + var + _bvr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$61), + _bvs_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bvr_), + _bvt_ = caml_call1(Runtime_ocaml_Runtime[69], _bvs_), + _bvu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43000), + _bvv_ = caml_call2(Runtime_ocaml_Runtime[104], _bvu_, _bvt_), + _bvw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_294500), + _bvq_ = caml_call2(Runtime_ocaml_Runtime[93], _bvw_, _bvv_); + break; + case 1: + var + _bvx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$109); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bvx_)) + var + _bvq_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_186000) + : caml_call1(Runtime_ocaml_Runtime[31], cst_223900); + else + var + _bvy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$62), + _bvz_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bvy_), + _bvA_ = caml_call1(Runtime_ocaml_Runtime[69], _bvz_), + _bvB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37900), + _bvC_ = caml_call2(Runtime_ocaml_Runtime[104], _bvB_, _bvA_), + _bvD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_261800), + _bvq_ = caml_call2(Runtime_ocaml_Runtime[93], _bvD_, _bvC_); + break; + default: + var + _bvE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$110); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bvE_)) + var + _bvq_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_173600) + : caml_call1(Runtime_ocaml_Runtime[31], cst_208200); + else + var + _bvF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$63), + _bvG_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bvF_), + _bvH_ = caml_call1(Runtime_ocaml_Runtime[69], _bvG_), + _bvI_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35600), + _bvJ_ = caml_call2(Runtime_ocaml_Runtime[104], _bvI_, _bvH_), + _bvK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_242800), + _bvq_ = caml_call2(Runtime_ocaml_Runtime[93], _bvK_, _bvJ_); + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _bvq_, taux_francs_vers_euros); + } + function _bvc_(param){ + switch(type_pret[0]){ + case 0: + var _bvd_ = 1; break; + case 1: + var _bvd_ = 0; break; + case 2: + var _bvd_ = 0; break; + case 3: + var _bvd_ = 0; break; + default: var _bvd_ = 0; + } + var + _bve_ = 0 === anciennete_logement[0] ? 1 : 0, + _bvf_ = caml_call2(Runtime_ocaml_Runtime[83], _bve_, _bvd_), + _bvg_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), + _bvh_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bvg_), + _bvi_ = caml_call2(Runtime_ocaml_Runtime[83], _bvh_, _bvf_), + _bvj_ = caml_call3(Runtime_ocaml_Runtime[57], 1992, 6, 30), + _bvk_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bvj_), + _bvl_ = caml_call2(Runtime_ocaml_Runtime[83], _bvk_, _bvi_), + _bvm_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bvn_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bvm_), + _bvo_ = caml_call2(Runtime_ocaml_Runtime[83], _bvn_, _bvl_); + return caml_call2(Runtime_ocaml_Runtime[29], _oz_, _bvo_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oA_, [0], _bvc_, _bvb_); + }, + _bu$_, + _bu__, + _bu9_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _oB_, _bva_, _bu8_, _bu7_); + }, + _a9n_ = + [0, + function(param){ + function _a9q_(param){ + function _a9T_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _a9U_(param){return 0;} + function _a9V_(param){ + function _buy_(param){ + switch(zone[0]){ + case 0: + var _buM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$111); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _buM_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29986) + : caml_call1(Runtime_ocaml_Runtime[31], cst_36187); + var + _buN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$64), + _buO_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _buN_), + _buP_ = caml_call1(Runtime_ocaml_Runtime[69], _buO_), + _buQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6201), + _buR_ = caml_call2(Runtime_ocaml_Runtime[104], _buQ_, _buP_), + _buS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42386); + return caml_call2(Runtime_ocaml_Runtime[93], _buS_, _buR_); + case 1: + var _buT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$112); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _buT_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26730) + : caml_call1(Runtime_ocaml_Runtime[31], cst_32193); + var + _buU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$65), + _buV_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _buU_), + _buW_ = caml_call1(Runtime_ocaml_Runtime[69], _buV_), + _buX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5463), + _buY_ = caml_call2(Runtime_ocaml_Runtime[104], _buX_, _buW_), + _buZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37656); + return caml_call2(Runtime_ocaml_Runtime[93], _buZ_, _buY_); + default: + var _bu0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$113); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bu0_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24964) + : caml_call1(Runtime_ocaml_Runtime[31], cst_29948); + var + _bu1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$66), + _bu2_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bu1_), + _bu3_ = caml_call1(Runtime_ocaml_Runtime[69], _bu2_), + _bu4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4986), + _bu5_ = caml_call2(Runtime_ocaml_Runtime[104], _bu4_, _bu3_), + _bu6_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34934); + return caml_call2(Runtime_ocaml_Runtime[93], _bu6_, _bu5_); + } + } + function _buz_(param){ + switch(type_pret[0]){ + case 0: + var _buA_ = 0; break; + case 1: + var _buA_ = 1; break; + case 2: + var _buA_ = 0; break; + case 3: + var _buA_ = 0; break; + default: var _buA_ = 0; + } + var + _buB_ = 0 === anciennete_logement[0] ? 0 : 1, + _buC_ = caml_call2(Runtime_ocaml_Runtime[83], _buB_, _buA_), + _buD_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 9, 30), + _buE_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _buD_), + _buF_ = caml_call2(Runtime_ocaml_Runtime[83], _buE_, _buC_), + _buG_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _buH_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _buG_), + _buI_ = caml_call2(Runtime_ocaml_Runtime[83], _buH_, _buF_), + _buJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _buK_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _buJ_), + _buL_ = caml_call2(Runtime_ocaml_Runtime[83], _buK_, _buI_); + return caml_call2(Runtime_ocaml_Runtime[29], _oC_, _buL_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oD_, [0], _buz_, _buy_); + } + function _a9W_(param){ + function _bt1_(param){ + switch(zone[0]){ + case 0: + var _bud_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$114); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bud_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_37252) + : caml_call1(Runtime_ocaml_Runtime[31], cst_44941); + var + _bue_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$67), + _buf_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bue_), + _bug_ = caml_call1(Runtime_ocaml_Runtime[69], _buf_), + _buh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7687), + _bui_ = caml_call2(Runtime_ocaml_Runtime[104], _buh_, _bug_), + _buj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_52629); + return caml_call2(Runtime_ocaml_Runtime[93], _buj_, _bui_); + case 1: + var _buk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$115); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _buk_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_33244) + : caml_call1(Runtime_ocaml_Runtime[31], cst_40013); + var + _bul_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$68), + _bum_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bul_), + _bun_ = caml_call1(Runtime_ocaml_Runtime[69], _bum_), + _buo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6768), + _bup_ = caml_call2(Runtime_ocaml_Runtime[104], _buo_, _bun_), + _buq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_46783); + return caml_call2(Runtime_ocaml_Runtime[93], _buq_, _bup_); + default: + var _bur_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$116); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bur_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_31036) + : caml_call1(Runtime_ocaml_Runtime[31], cst_37215); + var + _bus_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$69), + _but_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bus_), + _buu_ = caml_call1(Runtime_ocaml_Runtime[69], _but_), + _buv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6179), + _buw_ = caml_call2(Runtime_ocaml_Runtime[104], _buv_, _buu_), + _bux_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43394); + return caml_call2(Runtime_ocaml_Runtime[93], _bux_, _buw_); + } + } + function _bt2_(param){ + switch(type_pret[0]){ + case 0: + var _bt3_ = 0; break; + case 1: + var _bt3_ = 1; break; + case 2: + var _bt3_ = 0; break; + case 3: + var _bt3_ = 0; break; + default: var _bt3_ = 0; + } + var + _bt4_ = 0 === anciennete_logement[0] ? 1 : 0, + _bt5_ = caml_call2(Runtime_ocaml_Runtime[83], _bt4_, _bt3_), + _bt6_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 9, 30), + _bt7_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bt6_), + _bt8_ = caml_call2(Runtime_ocaml_Runtime[83], _bt7_, _bt5_), + _bt9_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bt__ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bt9_), + _bt$_ = caml_call2(Runtime_ocaml_Runtime[83], _bt__, _bt8_), + _bua_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bub_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bua_), + _buc_ = caml_call2(Runtime_ocaml_Runtime[83], _bub_, _bt$_); + return caml_call2(Runtime_ocaml_Runtime[29], _oE_, _buc_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oF_, [0], _bt2_, _bt1_); + } + function _a9X_(param){ + function _btp_(param){ + switch(zone[0]){ + case 0: + var _btG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$117); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _btG_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29897) + : caml_call1(Runtime_ocaml_Runtime[31], cst_36079); + var + _btH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$70), + _btI_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _btH_), + _btJ_ = caml_call1(Runtime_ocaml_Runtime[69], _btI_), + _btK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6182), + _btL_ = caml_call2(Runtime_ocaml_Runtime[104], _btK_, _btJ_), + _btM_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42260); + return caml_call2(Runtime_ocaml_Runtime[93], _btM_, _btL_); + case 1: + var _btN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$118); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _btN_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26650) + : caml_call1(Runtime_ocaml_Runtime[31], cst_32097); + var + _btO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$71), + _btP_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _btO_), + _btQ_ = caml_call1(Runtime_ocaml_Runtime[69], _btP_), + _btR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5447), + _btS_ = caml_call2(Runtime_ocaml_Runtime[104], _btR_, _btQ_), + _btT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37543); + return caml_call2(Runtime_ocaml_Runtime[93], _btT_, _btS_); + default: + var _btU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$119); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _btU_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24889) + : caml_call1(Runtime_ocaml_Runtime[31], cst_29858); + var + _btV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$72), + _btW_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _btV_), + _btX_ = caml_call1(Runtime_ocaml_Runtime[69], _btW_), + _btY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4971), + _btZ_ = caml_call2(Runtime_ocaml_Runtime[104], _btY_, _btX_), + _bt0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34829); + return caml_call2(Runtime_ocaml_Runtime[93], _bt0_, _btZ_); + } + } + function _btq_(param){ + switch(type_pret[0]){ + case 0: + var _btr_ = 0; break; + case 1: + var _btr_ = 1; break; + case 2: + var _btr_ = 0; break; + case 3: + var _btr_ = 0; break; + default: var _btr_ = 0; + } + var + _bts_ = 0 === anciennete_logement[0] ? 0 : 1, + _btt_ = caml_call2(Runtime_ocaml_Runtime[83], _bts_, _btr_), + _btu_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 9, 30), + _btv_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _btu_), + _btw_ = caml_call2(Runtime_ocaml_Runtime[83], _btv_, _btt_), + _btx_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 9, 30), + _bty_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _btx_), + _btz_ = caml_call2(Runtime_ocaml_Runtime[83], _bty_, _btw_), + _btA_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _btB_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _btA_), + _btC_ = caml_call2(Runtime_ocaml_Runtime[83], _btB_, _btz_), + _btD_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _btE_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _btD_), + _btF_ = caml_call2(Runtime_ocaml_Runtime[83], _btE_, _btC_); + return caml_call2(Runtime_ocaml_Runtime[29], _oG_, _btF_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oH_, [0], _btq_, _btp_); + } + function _a9Y_(param){ + function _bsP_(param){ + switch(zone[0]){ + case 0: + var _bs6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$120); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bs6_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_37140) + : caml_call1(Runtime_ocaml_Runtime[31], cst_44807); + var + _bs7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$73), + _bs8_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bs7_), + _bs9_ = caml_call1(Runtime_ocaml_Runtime[69], _bs8_), + _bs__ = caml_call1(Runtime_ocaml_Runtime[31], cst_7664), + _bs$_ = caml_call2(Runtime_ocaml_Runtime[104], _bs__, _bs9_), + _bta_ = caml_call1(Runtime_ocaml_Runtime[31], cst_52472); + return caml_call2(Runtime_ocaml_Runtime[93], _bta_, _bs$_); + case 1: + var _btb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$121); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _btb_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_33145) + : caml_call1(Runtime_ocaml_Runtime[31], cst_39893); + var + _btc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$74), + _btd_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _btc_), + _bte_ = caml_call1(Runtime_ocaml_Runtime[69], _btd_), + _btf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6748), + _btg_ = caml_call2(Runtime_ocaml_Runtime[104], _btf_, _bte_), + _bth_ = caml_call1(Runtime_ocaml_Runtime[31], cst_46643); + return caml_call2(Runtime_ocaml_Runtime[93], _bth_, _btg_); + default: + var _bti_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$122); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bti_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_30943) + : caml_call1(Runtime_ocaml_Runtime[31], cst_37103); + var + _btj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$75), + _btk_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _btj_), + _btl_ = caml_call1(Runtime_ocaml_Runtime[69], _btk_), + _btm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6161), + _btn_ = caml_call2(Runtime_ocaml_Runtime[104], _btm_, _btl_), + _bto_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43264); + return caml_call2(Runtime_ocaml_Runtime[93], _bto_, _btn_); + } + } + function _bsQ_(param){ + switch(type_pret[0]){ + case 0: + var _bsR_ = 0; break; + case 1: + var _bsR_ = 1; break; + case 2: + var _bsR_ = 0; break; + case 3: + var _bsR_ = 0; break; + default: var _bsR_ = 0; + } + var + _bsS_ = 0 === anciennete_logement[0] ? 1 : 0, + _bsT_ = caml_call2(Runtime_ocaml_Runtime[83], _bsS_, _bsR_), + _bsU_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 9, 30), + _bsV_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bsU_), + _bsW_ = caml_call2(Runtime_ocaml_Runtime[83], _bsV_, _bsT_), + _bsX_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 9, 30), + _bsY_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bsX_), + _bsZ_ = caml_call2(Runtime_ocaml_Runtime[83], _bsY_, _bsW_), + _bs0_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bs1_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bs0_), + _bs2_ = caml_call2(Runtime_ocaml_Runtime[83], _bs1_, _bsZ_), + _bs3_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bs4_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bs3_), + _bs5_ = caml_call2(Runtime_ocaml_Runtime[83], _bs4_, _bs2_); + return caml_call2(Runtime_ocaml_Runtime[29], _oI_, _bs5_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oJ_, [0], _bsQ_, _bsP_); + } + function _a9Z_(param){ + function _bsd_(param){ + switch(zone[0]){ + case 0: + var _bsu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$123); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bsu_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29674) + : caml_call1(Runtime_ocaml_Runtime[31], cst_35810); + var + _bsv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$76), + _bsw_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bsv_), + _bsx_ = caml_call1(Runtime_ocaml_Runtime[69], _bsw_), + _bsy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6136), + _bsz_ = caml_call2(Runtime_ocaml_Runtime[104], _bsy_, _bsx_), + _bsA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41945); + return caml_call2(Runtime_ocaml_Runtime[93], _bsA_, _bsz_); + case 1: + var _bsB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$124); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bsB_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26452) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31858); + var + _bsC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$77), + _bsD_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bsC_), + _bsE_ = caml_call1(Runtime_ocaml_Runtime[69], _bsD_), + _bsF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5406), + _bsG_ = caml_call2(Runtime_ocaml_Runtime[104], _bsF_, _bsE_), + _bsH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37264); + return caml_call2(Runtime_ocaml_Runtime[93], _bsH_, _bsG_); + default: + var _bsI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$125); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bsI_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24704) + : caml_call1(Runtime_ocaml_Runtime[31], cst_29636); + var + _bsJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$78), + _bsK_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bsJ_), + _bsL_ = caml_call1(Runtime_ocaml_Runtime[69], _bsK_), + _bsM_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4934), + _bsN_ = caml_call2(Runtime_ocaml_Runtime[104], _bsM_, _bsL_), + _bsO_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34570); + return caml_call2(Runtime_ocaml_Runtime[93], _bsO_, _bsN_); + } + } + function _bse_(param){ + switch(type_pret[0]){ + case 0: + var _bsf_ = 0; break; + case 1: + var _bsf_ = 1; break; + case 2: + var _bsf_ = 0; break; + case 3: + var _bsf_ = 0; break; + default: var _bsf_ = 0; + } + var + _bsg_ = 0 === anciennete_logement[0] ? 0 : 1, + _bsh_ = caml_call2(Runtime_ocaml_Runtime[83], _bsg_, _bsf_), + _bsi_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 9, 30), + _bsj_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bsi_), + _bsk_ = caml_call2(Runtime_ocaml_Runtime[83], _bsj_, _bsh_), + _bsl_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 9, 30), + _bsm_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bsl_), + _bsn_ = caml_call2(Runtime_ocaml_Runtime[83], _bsm_, _bsk_), + _bso_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bsp_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bso_), + _bsq_ = caml_call2(Runtime_ocaml_Runtime[83], _bsp_, _bsn_), + _bsr_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bss_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bsr_), + _bst_ = caml_call2(Runtime_ocaml_Runtime[83], _bss_, _bsq_); + return caml_call2(Runtime_ocaml_Runtime[29], _oK_, _bst_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oL_, [0], _bse_, _bsd_); + } + function _a90_(param){ + function _brD_(param){ + switch(zone[0]){ + case 0: + var _brU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$126); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _brU_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_36864) + : caml_call1(Runtime_ocaml_Runtime[31], cst_44473); + var + _brV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$79), + _brW_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _brV_), + _brX_ = caml_call1(Runtime_ocaml_Runtime[69], _brW_), + _brY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7607), + _brZ_ = caml_call2(Runtime_ocaml_Runtime[104], _brY_, _brX_), + _br0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_52081); + return caml_call2(Runtime_ocaml_Runtime[93], _br0_, _brZ_); + case 1: + var _br1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$127); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _br1_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_32898) + : caml_call1(Runtime_ocaml_Runtime[31], cst_39596); + var + _br2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$80), + _br3_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _br2_), + _br4_ = caml_call1(Runtime_ocaml_Runtime[69], _br3_), + _br5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6698), + _br6_ = caml_call2(Runtime_ocaml_Runtime[104], _br5_, _br4_), + _br7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_46296); + return caml_call2(Runtime_ocaml_Runtime[93], _br7_, _br6_); + default: + var _br8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$128); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _br8_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_30713) + : caml_call1(Runtime_ocaml_Runtime[31], cst_36827); + var + _br9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$81), + _br__ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _br9_), + _br$_ = caml_call1(Runtime_ocaml_Runtime[69], _br__), + _bsa_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6115), + _bsb_ = caml_call2(Runtime_ocaml_Runtime[104], _bsa_, _br$_), + _bsc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42942); + return caml_call2(Runtime_ocaml_Runtime[93], _bsc_, _bsb_); + } + } + function _brE_(param){ + switch(type_pret[0]){ + case 0: + var _brF_ = 0; break; + case 1: + var _brF_ = 1; break; + case 2: + var _brF_ = 0; break; + case 3: + var _brF_ = 0; break; + default: var _brF_ = 0; + } + var + _brG_ = 0 === anciennete_logement[0] ? 1 : 0, + _brH_ = caml_call2(Runtime_ocaml_Runtime[83], _brG_, _brF_), + _brI_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 9, 30), + _brJ_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _brI_), + _brK_ = caml_call2(Runtime_ocaml_Runtime[83], _brJ_, _brH_), + _brL_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 9, 30), + _brM_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _brL_), + _brN_ = caml_call2(Runtime_ocaml_Runtime[83], _brM_, _brK_), + _brO_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _brP_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _brO_), + _brQ_ = caml_call2(Runtime_ocaml_Runtime[83], _brP_, _brN_), + _brR_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _brS_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _brR_), + _brT_ = caml_call2(Runtime_ocaml_Runtime[83], _brS_, _brQ_); + return caml_call2(Runtime_ocaml_Runtime[29], _oM_, _brT_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oN_, [0], _brE_, _brD_); + } + function _a91_(param){ + function _bq3_(param){ + switch(zone[0]){ + case 0: + var _bri_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$129); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bri_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29650) + : caml_call1(Runtime_ocaml_Runtime[31], cst_35781); + var + _brj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$82), + _brk_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _brj_), + _brl_ = caml_call1(Runtime_ocaml_Runtime[69], _brk_), + _brm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6131), + _brn_ = caml_call2(Runtime_ocaml_Runtime[104], _brm_, _brl_), + _bro_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41911); + return caml_call2(Runtime_ocaml_Runtime[93], _bro_, _brn_); + case 1: + var _brp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$130); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _brp_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26431) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31833); + var + _brq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$83), + _brr_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _brq_), + _brs_ = caml_call1(Runtime_ocaml_Runtime[69], _brr_), + _brt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5402), + _bru_ = caml_call2(Runtime_ocaml_Runtime[104], _brt_, _brs_), + _brv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37234); + return caml_call2(Runtime_ocaml_Runtime[93], _brv_, _bru_); + default: + var _brw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$131); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _brw_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24684) + : caml_call1(Runtime_ocaml_Runtime[31], cst_29612); + var + _brx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$84), + _bry_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _brx_), + _brz_ = caml_call1(Runtime_ocaml_Runtime[69], _bry_), + _brA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4930), + _brB_ = caml_call2(Runtime_ocaml_Runtime[104], _brA_, _brz_), + _brC_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34542); + return caml_call2(Runtime_ocaml_Runtime[93], _brC_, _brB_); + } + } + function _bq4_(param){ + switch(type_pret[0]){ + case 0: + var _bq5_ = 0; break; + case 1: + var _bq5_ = 1; break; + case 2: + var _bq5_ = 0; break; + case 3: + var _bq5_ = 0; break; + default: var _bq5_ = 0; + } + var + _bq6_ = 0 === anciennete_logement[0] ? 0 : 1, + _bq7_ = caml_call2(Runtime_ocaml_Runtime[83], _bq6_, _bq5_), + _bq8_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 9, 30), + _bq9_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bq8_), + _bq__ = caml_call2(Runtime_ocaml_Runtime[83], _bq9_, _bq7_), + _bq$_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 9, 30), + _bra_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bq$_), + _brb_ = caml_call2(Runtime_ocaml_Runtime[83], _bra_, _bq__), + _brc_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _brd_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _brc_), + _bre_ = caml_call2(Runtime_ocaml_Runtime[83], _brd_, _brb_), + _brf_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _brg_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _brf_), + _brh_ = caml_call2(Runtime_ocaml_Runtime[83], _brg_, _bre_); + return caml_call2(Runtime_ocaml_Runtime[29], _oO_, _brh_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oP_, [0], _bq4_, _bq3_); + } + function _a92_(param){ + function _bqr_(param){ + switch(zone[0]){ + case 0: + var _bqI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$132); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bqI_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_36835) + : caml_call1(Runtime_ocaml_Runtime[31], cst_44437); + var + _bqJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$85), + _bqK_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bqJ_), + _bqL_ = caml_call1(Runtime_ocaml_Runtime[69], _bqK_), + _bqM_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7601), + _bqN_ = caml_call2(Runtime_ocaml_Runtime[104], _bqM_, _bqL_), + _bqO_ = caml_call1(Runtime_ocaml_Runtime[31], cst_52039); + return caml_call2(Runtime_ocaml_Runtime[93], _bqO_, _bqN_); + case 1: + var _bqP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$133); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bqP_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_32872) + : caml_call1(Runtime_ocaml_Runtime[31], cst_39564); + var + _bqQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$86), + _bqR_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bqQ_), + _bqS_ = caml_call1(Runtime_ocaml_Runtime[69], _bqR_), + _bqT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6693), + _bqU_ = caml_call2(Runtime_ocaml_Runtime[104], _bqT_, _bqS_), + _bqV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_46259); + return caml_call2(Runtime_ocaml_Runtime[93], _bqV_, _bqU_); + default: + var _bqW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$134); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bqW_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_30688) + : caml_call1(Runtime_ocaml_Runtime[31], cst_36798); + var + _bqX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$87), + _bqY_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bqX_), + _bqZ_ = caml_call1(Runtime_ocaml_Runtime[69], _bqY_), + _bq0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6110), + _bq1_ = caml_call2(Runtime_ocaml_Runtime[104], _bq0_, _bqZ_), + _bq2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42908); + return caml_call2(Runtime_ocaml_Runtime[93], _bq2_, _bq1_); + } + } + function _bqs_(param){ + switch(type_pret[0]){ + case 0: + var _bqt_ = 0; break; + case 1: + var _bqt_ = 1; break; + case 2: + var _bqt_ = 0; break; + case 3: + var _bqt_ = 0; break; + default: var _bqt_ = 0; + } + var + _bqu_ = 0 === anciennete_logement[0] ? 1 : 0, + _bqv_ = caml_call2(Runtime_ocaml_Runtime[83], _bqu_, _bqt_), + _bqw_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 9, 30), + _bqx_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bqw_), + _bqy_ = caml_call2(Runtime_ocaml_Runtime[83], _bqx_, _bqv_), + _bqz_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 9, 30), + _bqA_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bqz_), + _bqB_ = caml_call2(Runtime_ocaml_Runtime[83], _bqA_, _bqy_), + _bqC_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bqD_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bqC_), + _bqE_ = caml_call2(Runtime_ocaml_Runtime[83], _bqD_, _bqB_), + _bqF_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bqG_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bqF_), + _bqH_ = caml_call2(Runtime_ocaml_Runtime[83], _bqG_, _bqE_); + return caml_call2(Runtime_ocaml_Runtime[29], _oQ_, _bqH_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oR_, [0], _bqs_, _bqr_); + } + function _a93_(param){ + function _bpR_(param){ + switch(zone[0]){ + case 0: + var _bp8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$135); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bp8_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29482) + : caml_call1(Runtime_ocaml_Runtime[31], cst_35578); + var + _bp9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$88), + _bp__ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bp9_), + _bp$_ = caml_call1(Runtime_ocaml_Runtime[69], _bp__), + _bqa_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6096), + _bqb_ = caml_call2(Runtime_ocaml_Runtime[104], _bqa_, _bp$_), + _bqc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41673); + return caml_call2(Runtime_ocaml_Runtime[93], _bqc_, _bqb_); + case 1: + var _bqd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$136); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bqd_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26281) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31653); + var + _bqe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$89), + _bqf_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bqe_), + _bqg_ = caml_call1(Runtime_ocaml_Runtime[69], _bqf_), + _bqh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5371), + _bqi_ = caml_call2(Runtime_ocaml_Runtime[104], _bqh_, _bqg_), + _bqj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37023); + return caml_call2(Runtime_ocaml_Runtime[93], _bqj_, _bqi_); + default: + var _bqk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$137); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bqk_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24544) + : caml_call1(Runtime_ocaml_Runtime[31], cst_29444); + var + _bql_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$90), + _bqm_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bql_), + _bqn_ = caml_call1(Runtime_ocaml_Runtime[69], _bqm_), + _bqo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4902), + _bqp_ = caml_call2(Runtime_ocaml_Runtime[104], _bqo_, _bqn_), + _bqq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34346); + return caml_call2(Runtime_ocaml_Runtime[93], _bqq_, _bqp_); + } + } + function _bpS_(param){ + switch(type_pret[0]){ + case 0: + var _bpT_ = 0; break; + case 1: + var _bpT_ = 1; break; + case 2: + var _bpT_ = 0; break; + case 3: + var _bpT_ = 0; break; + default: var _bpT_ = 0; + } + var + _bpU_ = 0 === anciennete_logement[0] ? 0 : 1, + _bpV_ = caml_call2(Runtime_ocaml_Runtime[83], _bpU_, _bpT_), + _bpW_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 9, 30), + _bpX_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bpW_), + _bpY_ = caml_call2(Runtime_ocaml_Runtime[83], _bpX_, _bpV_), + _bpZ_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 12, 31), + _bp0_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bpZ_), + _bp1_ = caml_call2(Runtime_ocaml_Runtime[83], _bp0_, _bpY_), + _bp2_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bp3_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bp2_), + _bp4_ = caml_call2(Runtime_ocaml_Runtime[83], _bp3_, _bp1_), + _bp5_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bp6_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bp5_), + _bp7_ = caml_call2(Runtime_ocaml_Runtime[83], _bp6_, _bp4_); + return caml_call2(Runtime_ocaml_Runtime[29], _oS_, _bp7_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oT_, [0], _bpS_, _bpR_); + } + function _a94_(param){ + function _bpf_(param){ + switch(zone[0]){ + case 0: + var _bpw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$138); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bpw_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_36626) + : caml_call1(Runtime_ocaml_Runtime[31], cst_44185); + var + _bpx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$91), + _bpy_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bpx_), + _bpz_ = caml_call1(Runtime_ocaml_Runtime[69], _bpy_), + _bpA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7558), + _bpB_ = caml_call2(Runtime_ocaml_Runtime[104], _bpA_, _bpz_), + _bpC_ = caml_call1(Runtime_ocaml_Runtime[31], cst_51744); + return caml_call2(Runtime_ocaml_Runtime[93], _bpC_, _bpB_); + case 1: + var _bpD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$139); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bpD_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_32686) + : caml_call1(Runtime_ocaml_Runtime[31], cst_39340); + var + _bpE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$92), + _bpF_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bpE_), + _bpG_ = caml_call1(Runtime_ocaml_Runtime[69], _bpF_), + _bpH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6655), + _bpI_ = caml_call2(Runtime_ocaml_Runtime[104], _bpH_, _bpG_), + _bpJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_45997); + return caml_call2(Runtime_ocaml_Runtime[93], _bpJ_, _bpI_); + default: + var _bpK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$140); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bpK_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_30514) + : caml_call1(Runtime_ocaml_Runtime[31], cst_36589); + var + _bpL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$93), + _bpM_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bpL_), + _bpN_ = caml_call1(Runtime_ocaml_Runtime[69], _bpM_), + _bpO_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6075), + _bpP_ = caml_call2(Runtime_ocaml_Runtime[104], _bpO_, _bpN_), + _bpQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42665); + return caml_call2(Runtime_ocaml_Runtime[93], _bpQ_, _bpP_); + } + } + function _bpg_(param){ + switch(type_pret[0]){ + case 0: + var _bph_ = 0; break; + case 1: + var _bph_ = 1; break; + case 2: + var _bph_ = 0; break; + case 3: + var _bph_ = 0; break; + default: var _bph_ = 0; + } + var + _bpi_ = 0 === anciennete_logement[0] ? 1 : 0, + _bpj_ = caml_call2(Runtime_ocaml_Runtime[83], _bpi_, _bph_), + _bpk_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 9, 30), + _bpl_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bpk_), + _bpm_ = caml_call2(Runtime_ocaml_Runtime[83], _bpl_, _bpj_), + _bpn_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 12, 31), + _bpo_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bpn_), + _bpp_ = caml_call2(Runtime_ocaml_Runtime[83], _bpo_, _bpm_), + _bpq_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bpr_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bpq_), + _bps_ = caml_call2(Runtime_ocaml_Runtime[83], _bpr_, _bpp_), + _bpt_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bpu_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bpt_), + _bpv_ = caml_call2(Runtime_ocaml_Runtime[83], _bpu_, _bps_); + return caml_call2(Runtime_ocaml_Runtime[29], _oU_, _bpv_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oV_, [0], _bpg_, _bpf_); + } + function _a95_(param){ + function _boF_(param){ + switch(zone[0]){ + case 0: + var _boW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$141); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _boW_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_28861) + : caml_call1(Runtime_ocaml_Runtime[31], cst_34829$0); + var + _boX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$94), + _boY_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _boX_), + _boZ_ = caml_call1(Runtime_ocaml_Runtime[69], _boY_), + _bo0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5968), + _bo1_ = caml_call2(Runtime_ocaml_Runtime[104], _bo0_, _boZ_), + _bo2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40796); + return caml_call2(Runtime_ocaml_Runtime[93], _bo2_, _bo1_); + case 1: + var _bo3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$142); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bo3_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25728) + : caml_call1(Runtime_ocaml_Runtime[31], cst_30987); + var + _bo4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$95), + _bo5_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bo4_), + _bo6_ = caml_call1(Runtime_ocaml_Runtime[69], _bo5_), + _bo7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5258), + _bo8_ = caml_call2(Runtime_ocaml_Runtime[104], _bo7_, _bo6_), + _bo9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36244); + return caml_call2(Runtime_ocaml_Runtime[93], _bo9_, _bo8_); + default: + var _bo__ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$143); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bo__)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24027) + : caml_call1(Runtime_ocaml_Runtime[31], cst_28824); + var + _bo$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$96), + _bpa_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bo$_), + _bpb_ = caml_call1(Runtime_ocaml_Runtime[69], _bpa_), + _bpc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4799), + _bpd_ = caml_call2(Runtime_ocaml_Runtime[104], _bpc_, _bpb_), + _bpe_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33623); + return caml_call2(Runtime_ocaml_Runtime[93], _bpe_, _bpd_); + } + } + function _boG_(param){ + switch(type_pret[0]){ + case 0: + var _boH_ = 0; break; + case 1: + var _boH_ = 1; break; + case 2: + var _boH_ = 0; break; + case 3: + var _boH_ = 0; break; + default: var _boH_ = 0; + } + var + _boI_ = 0 === anciennete_logement[0] ? 0 : 1, + _boJ_ = caml_call2(Runtime_ocaml_Runtime[83], _boI_, _boH_), + _boK_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 12, 31), + _boL_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _boK_), + _boM_ = caml_call2(Runtime_ocaml_Runtime[83], _boL_, _boJ_), + _boN_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 12, 31), + _boO_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _boN_), + _boP_ = caml_call2(Runtime_ocaml_Runtime[83], _boO_, _boM_), + _boQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _boR_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _boQ_), + _boS_ = caml_call2(Runtime_ocaml_Runtime[83], _boR_, _boP_), + _boT_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _boU_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _boT_), + _boV_ = caml_call2(Runtime_ocaml_Runtime[83], _boU_, _boS_); + return caml_call2(Runtime_ocaml_Runtime[29], _oW_, _boV_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oX_, [0], _boG_, _boF_); + } + function _a96_(param){ + function _bn5_(param){ + switch(zone[0]){ + case 0: + var _bok_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$144); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bok_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_35855) + : caml_call1(Runtime_ocaml_Runtime[31], cst_43255); + var + _bol_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$97), + _bom_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bol_), + _bon_ = caml_call1(Runtime_ocaml_Runtime[69], _bom_), + _boo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7399), + _bop_ = caml_call2(Runtime_ocaml_Runtime[104], _boo_, _bon_), + _boq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_50655); + return caml_call2(Runtime_ocaml_Runtime[93], _boq_, _bop_); + case 1: + var _bor_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$145); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bor_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_31998) + : caml_call1(Runtime_ocaml_Runtime[31], cst_38512); + var + _bos_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$98), + _bot_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bos_), + _bou_ = caml_call1(Runtime_ocaml_Runtime[69], _bot_), + _bov_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6515), + _bow_ = caml_call2(Runtime_ocaml_Runtime[104], _bov_, _bou_), + _box_ = caml_call1(Runtime_ocaml_Runtime[31], cst_45029); + return caml_call2(Runtime_ocaml_Runtime[93], _box_, _bow_); + default: + var _boy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$146); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _boy_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29872) + : caml_call1(Runtime_ocaml_Runtime[31], cst_35819); + var + _boz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$99), + _boA_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _boz_), + _boB_ = caml_call1(Runtime_ocaml_Runtime[69], _boA_), + _boC_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5947), + _boD_ = caml_call2(Runtime_ocaml_Runtime[104], _boC_, _boB_), + _boE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41767); + return caml_call2(Runtime_ocaml_Runtime[93], _boE_, _boD_); + } + } + function _bn6_(param){ + switch(type_pret[0]){ + case 0: + var _bn7_ = 0; break; + case 1: + var _bn7_ = 1; break; + case 2: + var _bn7_ = 0; break; + case 3: + var _bn7_ = 0; break; + default: var _bn7_ = 0; + } + var + _bn8_ = 0 === anciennete_logement[0] ? 1 : 0, + _bn9_ = caml_call2(Runtime_ocaml_Runtime[83], _bn8_, _bn7_), + _bn__ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 12, 31), + _bn$_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bn__), + _boa_ = caml_call2(Runtime_ocaml_Runtime[83], _bn$_, _bn9_), + _bob_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 12, 31), + _boc_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bob_), + _bod_ = caml_call2(Runtime_ocaml_Runtime[83], _boc_, _boa_), + _boe_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bof_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _boe_), + _bog_ = caml_call2(Runtime_ocaml_Runtime[83], _bof_, _bod_), + _boh_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _boi_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _boh_), + _boj_ = caml_call2(Runtime_ocaml_Runtime[83], _boi_, _bog_); + return caml_call2(Runtime_ocaml_Runtime[29], _oY_, _boj_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oZ_, [0], _bn6_, _bn5_); + } + function _a97_(param){ + function _bnt_(param){ + switch(zone[0]){ + case 0: + var _bnK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$147); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bnK_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_28575) + : caml_call1(Runtime_ocaml_Runtime[31], cst_34484); + var + _bnL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$100), + _bnM_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bnL_), + _bnN_ = caml_call1(Runtime_ocaml_Runtime[69], _bnM_), + _bnO_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5909), + _bnP_ = caml_call2(Runtime_ocaml_Runtime[104], _bnO_, _bnN_), + _bnQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40392); + return caml_call2(Runtime_ocaml_Runtime[93], _bnQ_, _bnP_); + case 1: + var _bnR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$148); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bnR_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25473) + : caml_call1(Runtime_ocaml_Runtime[31], cst_30680); + var + _bnS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$101), + _bnT_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bnS_), + _bnU_ = caml_call1(Runtime_ocaml_Runtime[69], _bnT_), + _bnV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5206), + _bnW_ = caml_call2(Runtime_ocaml_Runtime[104], _bnV_, _bnU_), + _bnX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35885); + return caml_call2(Runtime_ocaml_Runtime[93], _bnX_, _bnW_); + default: + var _bnY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$149); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bnY_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_23789) + : caml_call1(Runtime_ocaml_Runtime[31], cst_28539); + var + _bnZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$102), + _bn0_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bnZ_), + _bn1_ = caml_call1(Runtime_ocaml_Runtime[69], _bn0_), + _bn2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4751), + _bn3_ = caml_call2(Runtime_ocaml_Runtime[104], _bn2_, _bn1_), + _bn4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33290); + return caml_call2(Runtime_ocaml_Runtime[93], _bn4_, _bn3_); + } + } + function _bnu_(param){ + switch(type_pret[0]){ + case 0: + var _bnv_ = 0; break; + case 1: + var _bnv_ = 1; break; + case 2: + var _bnv_ = 0; break; + case 3: + var _bnv_ = 0; break; + default: var _bnv_ = 0; + } + var + _bnw_ = 0 === anciennete_logement[0] ? 0 : 1, + _bnx_ = caml_call2(Runtime_ocaml_Runtime[83], _bnw_, _bnv_), + _bny_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 12, 31), + _bnz_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bny_), + _bnA_ = caml_call2(Runtime_ocaml_Runtime[83], _bnz_, _bnx_), + _bnB_ = caml_call3(Runtime_ocaml_Runtime[57], 2010, 12, 31), + _bnC_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bnB_), + _bnD_ = caml_call2(Runtime_ocaml_Runtime[83], _bnC_, _bnA_), + _bnE_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bnF_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bnE_), + _bnG_ = caml_call2(Runtime_ocaml_Runtime[83], _bnF_, _bnD_), + _bnH_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bnI_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bnH_), + _bnJ_ = caml_call2(Runtime_ocaml_Runtime[83], _bnI_, _bnG_); + return caml_call2(Runtime_ocaml_Runtime[29], _o0_, _bnJ_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _o1_, [0], _bnu_, _bnt_); + } + function _a98_(param){ + function _bmT_(param){ + switch(zone[0]){ + case 0: + var _bm__ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$150); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bm__)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_35500) + : caml_call1(Runtime_ocaml_Runtime[31], cst_42827); + var + _bm$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$103), + _bna_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bm$_), + _bnb_ = caml_call1(Runtime_ocaml_Runtime[69], _bna_), + _bnc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7326), + _bnd_ = caml_call2(Runtime_ocaml_Runtime[104], _bnc_, _bnb_), + _bne_ = caml_call1(Runtime_ocaml_Runtime[31], cst_50153); + return caml_call2(Runtime_ocaml_Runtime[93], _bne_, _bnd_); + case 1: + var _bnf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$151); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bnf_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_31681) + : caml_call1(Runtime_ocaml_Runtime[31], cst_38131); + var + _bng_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$104), + _bnh_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bng_), + _bni_ = caml_call1(Runtime_ocaml_Runtime[69], _bnh_), + _bnj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6450), + _bnk_ = caml_call2(Runtime_ocaml_Runtime[104], _bnj_, _bni_), + _bnl_ = caml_call1(Runtime_ocaml_Runtime[31], cst_44583); + return caml_call2(Runtime_ocaml_Runtime[93], _bnl_, _bnk_); + default: + var _bnm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$152); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bnm_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29576) + : caml_call1(Runtime_ocaml_Runtime[31], cst_35464); + var + _bnn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$105), + _bno_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bnn_), + _bnp_ = caml_call1(Runtime_ocaml_Runtime[69], _bno_), + _bnq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5888), + _bnr_ = caml_call2(Runtime_ocaml_Runtime[104], _bnq_, _bnp_), + _bns_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41353); + return caml_call2(Runtime_ocaml_Runtime[93], _bns_, _bnr_); + } + } + function _bmU_(param){ + switch(type_pret[0]){ + case 0: + var _bmV_ = 0; break; + case 1: + var _bmV_ = 1; break; + case 2: + var _bmV_ = 0; break; + case 3: + var _bmV_ = 0; break; + default: var _bmV_ = 0; + } + var + _bmW_ = 0 === anciennete_logement[0] ? 1 : 0, + _bmX_ = caml_call2(Runtime_ocaml_Runtime[83], _bmW_, _bmV_), + _bmY_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 12, 31), + _bmZ_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bmY_), + _bm0_ = caml_call2(Runtime_ocaml_Runtime[83], _bmZ_, _bmX_), + _bm1_ = caml_call3(Runtime_ocaml_Runtime[57], 2010, 12, 31), + _bm2_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bm1_), + _bm3_ = caml_call2(Runtime_ocaml_Runtime[83], _bm2_, _bm0_), + _bm4_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bm5_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bm4_), + _bm6_ = caml_call2(Runtime_ocaml_Runtime[83], _bm5_, _bm3_), + _bm7_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bm8_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bm7_), + _bm9_ = caml_call2(Runtime_ocaml_Runtime[83], _bm8_, _bm6_); + return caml_call2(Runtime_ocaml_Runtime[29], _o2_, _bm9_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _o3_, [0], _bmU_, _bmT_); + } + function _a99_(param){ + function _bmh_(param){ + switch(zone[0]){ + case 0: + var _bmy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$153); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bmy_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_28264) + : caml_call1(Runtime_ocaml_Runtime[31], cst_34109); + var + _bmz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$106), + _bmA_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bmz_), + _bmB_ = caml_call1(Runtime_ocaml_Runtime[69], _bmA_), + _bmC_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5845), + _bmD_ = caml_call2(Runtime_ocaml_Runtime[104], _bmC_, _bmB_), + _bmE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39953); + return caml_call2(Runtime_ocaml_Runtime[93], _bmE_, _bmD_); + case 1: + var _bmF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$154); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bmF_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25196) + : caml_call1(Runtime_ocaml_Runtime[31], cst_30346); + var + _bmG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$107), + _bmH_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bmG_), + _bmI_ = caml_call1(Runtime_ocaml_Runtime[69], _bmH_), + _bmJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5149), + _bmK_ = caml_call2(Runtime_ocaml_Runtime[104], _bmJ_, _bmI_), + _bmL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35495); + return caml_call2(Runtime_ocaml_Runtime[93], _bmL_, _bmK_); + default: + var _bmM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$155); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bmM_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_23530) + : caml_call1(Runtime_ocaml_Runtime[31], cst_28228); + var + _bmN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$108), + _bmO_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bmN_), + _bmP_ = caml_call1(Runtime_ocaml_Runtime[69], _bmO_), + _bmQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4699), + _bmR_ = caml_call2(Runtime_ocaml_Runtime[104], _bmQ_, _bmP_), + _bmS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_32928); + return caml_call2(Runtime_ocaml_Runtime[93], _bmS_, _bmR_); + } + } + function _bmi_(param){ + switch(type_pret[0]){ + case 0: + var _bmj_ = 0; break; + case 1: + var _bmj_ = 1; break; + case 2: + var _bmj_ = 0; break; + case 3: + var _bmj_ = 0; break; + default: var _bmj_ = 0; + } + var + _bmk_ = 0 === anciennete_logement[0] ? 0 : 1, + _bml_ = caml_call2(Runtime_ocaml_Runtime[83], _bmk_, _bmj_), + _bmm_ = caml_call3(Runtime_ocaml_Runtime[57], 2010, 12, 31), + _bmn_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bmm_), + _bmo_ = caml_call2(Runtime_ocaml_Runtime[83], _bmn_, _bml_), + _bmp_ = caml_call3(Runtime_ocaml_Runtime[57], 2009, 12, 31), + _bmq_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bmp_), + _bmr_ = caml_call2(Runtime_ocaml_Runtime[83], _bmq_, _bmo_), + _bms_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bmt_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bms_), + _bmu_ = caml_call2(Runtime_ocaml_Runtime[83], _bmt_, _bmr_), + _bmv_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bmw_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bmv_), + _bmx_ = caml_call2(Runtime_ocaml_Runtime[83], _bmw_, _bmu_); + return caml_call2(Runtime_ocaml_Runtime[29], _o4_, _bmx_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _o5_, [0], _bmi_, _bmh_); + } + function _a9__(param){ + function _blH_(param){ + switch(zone[0]){ + case 0: + var _blY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$156); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _blY_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_35114) + : caml_call1(Runtime_ocaml_Runtime[31], cst_42361); + var + _blZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$109), + _bl0_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _blZ_), + _bl1_ = caml_call1(Runtime_ocaml_Runtime[69], _bl0_), + _bl2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7246), + _bl3_ = caml_call2(Runtime_ocaml_Runtime[104], _bl2_, _bl1_), + _bl4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_49607); + return caml_call2(Runtime_ocaml_Runtime[93], _bl4_, _bl3_); + case 1: + var _bl5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$157); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bl5_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_31336) + : caml_call1(Runtime_ocaml_Runtime[31], cst_37716); + var + _bl6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$110), + _bl7_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bl6_), + _bl8_ = caml_call1(Runtime_ocaml_Runtime[69], _bl7_), + _bl9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6380), + _bl__ = caml_call2(Runtime_ocaml_Runtime[104], _bl9_, _bl8_), + _bl$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_44098); + return caml_call2(Runtime_ocaml_Runtime[93], _bl$_, _bl__); + default: + var _bma_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$158); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bma_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29254) + : caml_call1(Runtime_ocaml_Runtime[31], cst_35078); + var + _bmb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$111), + _bmc_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bmb_), + _bmd_ = caml_call1(Runtime_ocaml_Runtime[69], _bmc_), + _bme_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5824), + _bmf_ = caml_call2(Runtime_ocaml_Runtime[104], _bme_, _bmd_), + _bmg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40903); + return caml_call2(Runtime_ocaml_Runtime[93], _bmg_, _bmf_); + } + } + function _blI_(param){ + switch(type_pret[0]){ + case 0: + var _blJ_ = 0; break; + case 1: + var _blJ_ = 1; break; + case 2: + var _blJ_ = 0; break; + case 3: + var _blJ_ = 0; break; + default: var _blJ_ = 0; + } + var + _blK_ = 0 === anciennete_logement[0] ? 1 : 0, + _blL_ = caml_call2(Runtime_ocaml_Runtime[83], _blK_, _blJ_), + _blM_ = caml_call3(Runtime_ocaml_Runtime[57], 2010, 12, 31), + _blN_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _blM_), + _blO_ = caml_call2(Runtime_ocaml_Runtime[83], _blN_, _blL_), + _blP_ = caml_call3(Runtime_ocaml_Runtime[57], 2009, 12, 31), + _blQ_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _blP_), + _blR_ = caml_call2(Runtime_ocaml_Runtime[83], _blQ_, _blO_), + _blS_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _blT_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _blS_), + _blU_ = caml_call2(Runtime_ocaml_Runtime[83], _blT_, _blR_), + _blV_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _blW_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _blV_), + _blX_ = caml_call2(Runtime_ocaml_Runtime[83], _blW_, _blU_); + return caml_call2(Runtime_ocaml_Runtime[29], _o6_, _blX_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _o7_, [0], _blI_, _blH_); + } + function _a9$_(param){ + function _bk7_(param){ + switch(zone[0]){ + case 0: + var _blm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$159); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _blm_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_28174) + : caml_call1(Runtime_ocaml_Runtime[31], cst_34000); + var + _bln_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$112), + _blo_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bln_), + _blp_ = caml_call1(Runtime_ocaml_Runtime[69], _blo_), + _blq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5826), + _blr_ = caml_call2(Runtime_ocaml_Runtime[104], _blq_, _blp_), + _bls_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39826); + return caml_call2(Runtime_ocaml_Runtime[93], _bls_, _blr_); + case 1: + var _blt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$160); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _blt_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25116) + : caml_call1(Runtime_ocaml_Runtime[31], cst_30249); + var + _blu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$113), + _blv_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _blu_), + _blw_ = caml_call1(Runtime_ocaml_Runtime[69], _blv_), + _blx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5133), + _bly_ = caml_call2(Runtime_ocaml_Runtime[104], _blx_, _blw_), + _blz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35382); + return caml_call2(Runtime_ocaml_Runtime[93], _blz_, _bly_); + default: + var _blA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$161); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _blA_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_23455) + : caml_call1(Runtime_ocaml_Runtime[31], cst_28138); + var + _blB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$114), + _blC_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _blB_), + _blD_ = caml_call1(Runtime_ocaml_Runtime[69], _blC_), + _blE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4684), + _blF_ = caml_call2(Runtime_ocaml_Runtime[104], _blE_, _blD_), + _blG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_32823); + return caml_call2(Runtime_ocaml_Runtime[93], _blG_, _blF_); + } + } + function _bk8_(param){ + switch(type_pret[0]){ + case 0: + var _bk9_ = 0; break; + case 1: + var _bk9_ = 1; break; + case 2: + var _bk9_ = 0; break; + case 3: + var _bk9_ = 0; break; + default: var _bk9_ = 0; + } + var + _bk__ = 0 === anciennete_logement[0] ? 0 : 1, + _bk$_ = caml_call2(Runtime_ocaml_Runtime[83], _bk__, _bk9_), + _bla_ = caml_call3(Runtime_ocaml_Runtime[57], 2009, 12, 31), + _blb_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bla_), + _blc_ = caml_call2(Runtime_ocaml_Runtime[83], _blb_, _bk$_), + _bld_ = caml_call3(Runtime_ocaml_Runtime[57], 2008, 12, 31), + _ble_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bld_), + _blf_ = caml_call2(Runtime_ocaml_Runtime[83], _ble_, _blc_), + _blg_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _blh_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _blg_), + _bli_ = caml_call2(Runtime_ocaml_Runtime[83], _blh_, _blf_), + _blj_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _blk_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _blj_), + _bll_ = caml_call2(Runtime_ocaml_Runtime[83], _blk_, _bli_); + return caml_call2(Runtime_ocaml_Runtime[29], _o8_, _bll_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _o9_, [0], _bk8_, _bk7_); + } + function _a_a_(param){ + function _bkv_(param){ + switch(zone[0]){ + case 0: + var _bkM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$162); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bkM_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_35002) + : caml_call1(Runtime_ocaml_Runtime[31], cst_42226); + var + _bkN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$115), + _bkO_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bkN_), + _bkP_ = caml_call1(Runtime_ocaml_Runtime[69], _bkO_), + _bkQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7223), + _bkR_ = caml_call2(Runtime_ocaml_Runtime[104], _bkQ_, _bkP_), + _bkS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_49449); + return caml_call2(Runtime_ocaml_Runtime[93], _bkS_, _bkR_); + case 1: + var _bkT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$163); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bkT_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_31236) + : caml_call1(Runtime_ocaml_Runtime[31], cst_37596); + var + _bkU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$116), + _bkV_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bkU_), + _bkW_ = caml_call1(Runtime_ocaml_Runtime[69], _bkV_), + _bkX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6360), + _bkY_ = caml_call2(Runtime_ocaml_Runtime[104], _bkX_, _bkW_), + _bkZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43957); + return caml_call2(Runtime_ocaml_Runtime[93], _bkZ_, _bkY_); + default: + var _bk0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$164); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bk0_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29161) + : caml_call1(Runtime_ocaml_Runtime[31], cst_34966); + var + _bk1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$117), + _bk2_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bk1_), + _bk3_ = caml_call1(Runtime_ocaml_Runtime[69], _bk2_), + _bk4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5805), + _bk5_ = caml_call2(Runtime_ocaml_Runtime[104], _bk4_, _bk3_), + _bk6_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40773); + return caml_call2(Runtime_ocaml_Runtime[93], _bk6_, _bk5_); + } + } + function _bkw_(param){ + switch(type_pret[0]){ + case 0: + var _bkx_ = 0; break; + case 1: + var _bkx_ = 1; break; + case 2: + var _bkx_ = 0; break; + case 3: + var _bkx_ = 0; break; + default: var _bkx_ = 0; + } + var + _bky_ = 0 === anciennete_logement[0] ? 1 : 0, + _bkz_ = caml_call2(Runtime_ocaml_Runtime[83], _bky_, _bkx_), + _bkA_ = caml_call3(Runtime_ocaml_Runtime[57], 2009, 12, 31), + _bkB_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bkA_), + _bkC_ = caml_call2(Runtime_ocaml_Runtime[83], _bkB_, _bkz_), + _bkD_ = caml_call3(Runtime_ocaml_Runtime[57], 2008, 12, 31), + _bkE_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bkD_), + _bkF_ = caml_call2(Runtime_ocaml_Runtime[83], _bkE_, _bkC_), + _bkG_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bkH_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bkG_), + _bkI_ = caml_call2(Runtime_ocaml_Runtime[83], _bkH_, _bkF_), + _bkJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bkK_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bkJ_), + _bkL_ = caml_call2(Runtime_ocaml_Runtime[83], _bkK_, _bkI_); + return caml_call2(Runtime_ocaml_Runtime[29], _o__, _bkL_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _o$_, [0], _bkw_, _bkv_); + } + function _a_b_(param){ + function _bjV_(param){ + switch(zone[0]){ + case 0: + var _bka_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$165); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bka_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_27367) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33026); + var + _bkb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$118), + _bkc_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bkb_), + _bkd_ = caml_call1(Runtime_ocaml_Runtime[69], _bkc_), + _bke_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5659), + _bkf_ = caml_call2(Runtime_ocaml_Runtime[104], _bke_, _bkd_), + _bkg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_38685); + return caml_call2(Runtime_ocaml_Runtime[93], _bkg_, _bkf_); + case 1: + var _bkh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$166); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bkh_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24396) + : caml_call1(Runtime_ocaml_Runtime[31], cst_29382); + var + _bki_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$119), + _bkj_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bki_), + _bkk_ = caml_call1(Runtime_ocaml_Runtime[69], _bkj_), + _bkl_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4986$0), + _bkm_ = caml_call2(Runtime_ocaml_Runtime[104], _bkl_, _bkk_), + _bkn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34368); + return caml_call2(Runtime_ocaml_Runtime[93], _bkn_, _bkm_); + default: + var _bko_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$167); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bko_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_22783) + : caml_call1(Runtime_ocaml_Runtime[31], cst_27332); + var + _bkp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$120), + _bkq_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bkp_), + _bkr_ = caml_call1(Runtime_ocaml_Runtime[69], _bkq_), + _bks_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4550), + _bkt_ = caml_call2(Runtime_ocaml_Runtime[104], _bks_, _bkr_), + _bku_ = caml_call1(Runtime_ocaml_Runtime[31], cst_31882); + return caml_call2(Runtime_ocaml_Runtime[93], _bku_, _bkt_); + } + } + function _bjW_(param){ + switch(type_pret[0]){ + case 0: + var _bjX_ = 0; break; + case 1: + var _bjX_ = 1; break; + case 2: + var _bjX_ = 0; break; + case 3: + var _bjX_ = 0; break; + default: var _bjX_ = 0; + } + var + _bjY_ = 0 === anciennete_logement[0] ? 0 : 1, + _bjZ_ = caml_call2(Runtime_ocaml_Runtime[83], _bjY_, _bjX_), + _bj0_ = caml_call3(Runtime_ocaml_Runtime[57], 2008, 12, 31), + _bj1_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bj0_), + _bj2_ = caml_call2(Runtime_ocaml_Runtime[83], _bj1_, _bjZ_), + _bj3_ = caml_call3(Runtime_ocaml_Runtime[57], 2007, 12, 31), + _bj4_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bj3_), + _bj5_ = caml_call2(Runtime_ocaml_Runtime[83], _bj4_, _bj2_), + _bj6_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bj7_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bj6_), + _bj8_ = caml_call2(Runtime_ocaml_Runtime[83], _bj7_, _bj5_), + _bj9_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bj__ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bj9_), + _bj$_ = caml_call2(Runtime_ocaml_Runtime[83], _bj__, _bj8_); + return caml_call2(Runtime_ocaml_Runtime[29], _pa_, _bj$_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pb_, [0], _bjW_, _bjV_); + } + function _a_c_(param){ + function _bjj_(param){ + switch(zone[0]){ + case 0: + var _bjA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$168); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bjA_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_33999) + : caml_call1(Runtime_ocaml_Runtime[31], cst_41016); + var + _bjB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$121), + _bjC_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bjB_), + _bjD_ = caml_call1(Runtime_ocaml_Runtime[69], _bjC_), + _bjE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7016), + _bjF_ = caml_call2(Runtime_ocaml_Runtime[104], _bjE_, _bjD_), + _bjG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_48032); + return caml_call2(Runtime_ocaml_Runtime[93], _bjG_, _bjF_); + case 1: + var _bjH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$169); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bjH_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_30341) + : caml_call1(Runtime_ocaml_Runtime[31], cst_36519); + var + _bjI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$122), + _bjJ_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bjI_), + _bjK_ = caml_call1(Runtime_ocaml_Runtime[69], _bjJ_), + _bjL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6178), + _bjM_ = caml_call2(Runtime_ocaml_Runtime[104], _bjL_, _bjK_), + _bjN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42697); + return caml_call2(Runtime_ocaml_Runtime[93], _bjN_, _bjM_); + default: + var _bjO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$170); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bjO_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_28325) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33964); + var + _bjP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$123), + _bjQ_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bjP_), + _bjR_ = caml_call1(Runtime_ocaml_Runtime[69], _bjQ_), + _bjS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5639), + _bjT_ = caml_call2(Runtime_ocaml_Runtime[104], _bjS_, _bjR_), + _bjU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39605); + return caml_call2(Runtime_ocaml_Runtime[93], _bjU_, _bjT_); + } + } + function _bjk_(param){ + switch(type_pret[0]){ + case 0: + var _bjl_ = 0; break; + case 1: + var _bjl_ = 1; break; + case 2: + var _bjl_ = 0; break; + case 3: + var _bjl_ = 0; break; + default: var _bjl_ = 0; + } + var + _bjm_ = 0 === anciennete_logement[0] ? 1 : 0, + _bjn_ = caml_call2(Runtime_ocaml_Runtime[83], _bjm_, _bjl_), + _bjo_ = caml_call3(Runtime_ocaml_Runtime[57], 2008, 12, 31), + _bjp_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bjo_), + _bjq_ = caml_call2(Runtime_ocaml_Runtime[83], _bjp_, _bjn_), + _bjr_ = caml_call3(Runtime_ocaml_Runtime[57], 2007, 12, 31), + _bjs_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bjr_), + _bjt_ = caml_call2(Runtime_ocaml_Runtime[83], _bjs_, _bjq_), + _bju_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bjv_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bju_), + _bjw_ = caml_call2(Runtime_ocaml_Runtime[83], _bjv_, _bjt_), + _bjx_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bjy_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bjx_), + _bjz_ = caml_call2(Runtime_ocaml_Runtime[83], _bjy_, _bjw_); + return caml_call2(Runtime_ocaml_Runtime[29], _pc_, _bjz_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pd_, [0], _bjk_, _bjj_); + } + function _a_d_(param){ + function _biJ_(param){ + switch(zone[0]){ + case 0: + var _bi0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$171); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bi0_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26632) + : caml_call1(Runtime_ocaml_Runtime[31], cst_32139); + var + _bi1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$124), + _bi2_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bi1_), + _bi3_ = caml_call1(Runtime_ocaml_Runtime[69], _bi2_), + _bi4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5507), + _bi5_ = caml_call2(Runtime_ocaml_Runtime[104], _bi4_, _bi3_), + _bi6_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37646); + return caml_call2(Runtime_ocaml_Runtime[93], _bi6_, _bi5_); + case 1: + var _bi7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$172); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bi7_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_23741) + : caml_call1(Runtime_ocaml_Runtime[31], cst_28593); + var + _bi8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$125), + _bi9_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bi8_), + _bi__ = caml_call1(Runtime_ocaml_Runtime[69], _bi9_), + _bi$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4852), + _bja_ = caml_call2(Runtime_ocaml_Runtime[104], _bi$_, _bi__), + _bjb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33445); + return caml_call2(Runtime_ocaml_Runtime[93], _bjb_, _bja_); + default: + var _bjc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$173); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bjc_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_22171) + : caml_call1(Runtime_ocaml_Runtime[31], cst_36598); + var + _bjd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$126), + _bje_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bjd_), + _bjf_ = caml_call1(Runtime_ocaml_Runtime[69], _bje_), + _bjg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4428), + _bjh_ = caml_call2(Runtime_ocaml_Runtime[104], _bjg_, _bjf_), + _bji_ = caml_call1(Runtime_ocaml_Runtime[31], cst_31026); + return caml_call2(Runtime_ocaml_Runtime[93], _bji_, _bjh_); + } + } + function _biK_(param){ + switch(type_pret[0]){ + case 0: + var _biL_ = 0; break; + case 1: + var _biL_ = 1; break; + case 2: + var _biL_ = 0; break; + case 3: + var _biL_ = 0; break; + default: var _biL_ = 0; + } + var + _biM_ = 0 === anciennete_logement[0] ? 0 : 1, + _biN_ = caml_call2(Runtime_ocaml_Runtime[83], _biM_, _biL_), + _biO_ = caml_call3(Runtime_ocaml_Runtime[57], 2007, 12, 31), + _biP_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _biO_), + _biQ_ = caml_call2(Runtime_ocaml_Runtime[83], _biP_, _biN_), + _biR_ = caml_call3(Runtime_ocaml_Runtime[57], 2006, 12, 31), + _biS_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _biR_), + _biT_ = caml_call2(Runtime_ocaml_Runtime[83], _biS_, _biQ_), + _biU_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _biV_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _biU_), + _biW_ = caml_call2(Runtime_ocaml_Runtime[83], _biV_, _biT_), + _biX_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _biY_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _biX_), + _biZ_ = caml_call2(Runtime_ocaml_Runtime[83], _biY_, _biW_); + return caml_call2(Runtime_ocaml_Runtime[29], _pe_, _biZ_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pf_, [0], _biK_, _biJ_); + } + function _a_e_(param){ + function _bh9_(param){ + switch(zone[0]){ + case 0: + var _bio_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$174); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bio_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_33086) + : caml_call1(Runtime_ocaml_Runtime[31], cst_39914); + var + _bip_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$127), + _biq_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bip_), + _bir_ = caml_call1(Runtime_ocaml_Runtime[69], _biq_), + _bis_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6828), + _bit_ = caml_call2(Runtime_ocaml_Runtime[104], _bis_, _bir_), + _biu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_46742); + return caml_call2(Runtime_ocaml_Runtime[93], _biu_, _bit_); + case 1: + var _biv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$175); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _biv_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29526) + : caml_call1(Runtime_ocaml_Runtime[31], cst_35538); + var + _biw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$128), + _bix_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _biw_), + _biy_ = caml_call1(Runtime_ocaml_Runtime[69], _bix_), + _biz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6012), + _biA_ = caml_call2(Runtime_ocaml_Runtime[104], _biz_, _biy_), + _biB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41550); + return caml_call2(Runtime_ocaml_Runtime[93], _biB_, _biA_); + default: + var _biC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$176); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _biC_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_27564) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33052); + var + _biD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$129), + _biE_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _biD_), + _biF_ = caml_call1(Runtime_ocaml_Runtime[69], _biE_), + _biG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5488), + _biH_ = caml_call2(Runtime_ocaml_Runtime[104], _biG_, _biF_), + _biI_ = caml_call1(Runtime_ocaml_Runtime[31], cst_38541); + return caml_call2(Runtime_ocaml_Runtime[93], _biI_, _biH_); + } + } + function _bh__(param){ + switch(type_pret[0]){ + case 0: + var _bh$_ = 0; break; + case 1: + var _bh$_ = 1; break; + case 2: + var _bh$_ = 0; break; + case 3: + var _bh$_ = 0; break; + default: var _bh$_ = 0; + } + var + _bia_ = 0 === anciennete_logement[0] ? 1 : 0, + _bib_ = caml_call2(Runtime_ocaml_Runtime[83], _bia_, _bh$_), + _bic_ = caml_call3(Runtime_ocaml_Runtime[57], 2007, 12, 31), + _bid_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bic_), + _bie_ = caml_call2(Runtime_ocaml_Runtime[83], _bid_, _bib_), + _bif_ = caml_call3(Runtime_ocaml_Runtime[57], 2006, 12, 31), + _big_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bif_), + _bih_ = caml_call2(Runtime_ocaml_Runtime[83], _big_, _bie_), + _bii_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bij_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bii_), + _bik_ = caml_call2(Runtime_ocaml_Runtime[83], _bij_, _bih_), + _bil_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bim_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bil_), + _bin_ = caml_call2(Runtime_ocaml_Runtime[83], _bim_, _bik_); + return caml_call2(Runtime_ocaml_Runtime[29], _pg_, _bin_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ph_, [0], _bh__, _bh9_); + } + function _a_f_(param){ + function _bhx_(param){ + switch(zone[0]){ + case 0: + var _bhO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$177); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bhO_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25907) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31264); + var + _bhP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$130), + _bhQ_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bhP_), + _bhR_ = caml_call1(Runtime_ocaml_Runtime[69], _bhQ_), + _bhS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5357), + _bhT_ = caml_call2(Runtime_ocaml_Runtime[104], _bhS_, _bhR_), + _bhU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36621); + return caml_call2(Runtime_ocaml_Runtime[93], _bhU_, _bhT_); + case 1: + var _bhV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$178); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bhV_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_23094) + : caml_call1(Runtime_ocaml_Runtime[31], cst_27814); + var + _bhW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$131), + _bhX_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bhW_), + _bhY_ = caml_call1(Runtime_ocaml_Runtime[69], _bhX_), + _bhZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4720), + _bh0_ = caml_call2(Runtime_ocaml_Runtime[104], _bhZ_, _bhY_), + _bh1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_32534); + return caml_call2(Runtime_ocaml_Runtime[93], _bh1_, _bh0_); + default: + var _bh2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$179); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bh2_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_21567) + : caml_call1(Runtime_ocaml_Runtime[31], cst_25874); + var + _bh3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$132), + _bh4_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bh3_), + _bh5_ = caml_call1(Runtime_ocaml_Runtime[69], _bh4_), + _bh6_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4307), + _bh7_ = caml_call2(Runtime_ocaml_Runtime[104], _bh6_, _bh5_), + _bh8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_30181); + return caml_call2(Runtime_ocaml_Runtime[93], _bh8_, _bh7_); + } + } + function _bhy_(param){ + switch(type_pret[0]){ + case 0: + var _bhz_ = 0; break; + case 1: + var _bhz_ = 1; break; + case 2: + var _bhz_ = 0; break; + case 3: + var _bhz_ = 0; break; + default: var _bhz_ = 0; + } + var + _bhA_ = 0 === anciennete_logement[0] ? 0 : 1, + _bhB_ = caml_call2(Runtime_ocaml_Runtime[83], _bhA_, _bhz_), + _bhC_ = caml_call3(Runtime_ocaml_Runtime[57], 2006, 12, 31), + _bhD_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bhC_), + _bhE_ = caml_call2(Runtime_ocaml_Runtime[83], _bhD_, _bhB_), + _bhF_ = caml_call3(Runtime_ocaml_Runtime[57], 2005, 8, 31), + _bhG_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bhF_), + _bhH_ = caml_call2(Runtime_ocaml_Runtime[83], _bhG_, _bhE_), + _bhI_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bhJ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bhI_), + _bhK_ = caml_call2(Runtime_ocaml_Runtime[83], _bhJ_, _bhH_), + _bhL_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bhM_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bhL_), + _bhN_ = caml_call2(Runtime_ocaml_Runtime[83], _bhM_, _bhK_); + return caml_call2(Runtime_ocaml_Runtime[29], _pi_, _bhN_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pj_, [0], _bhy_, _bhx_); + } + function _a_g_(param){ + function _bgX_(param){ + switch(zone[0]){ + case 0: + var _bhc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$180); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bhc_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_32185) + : caml_call1(Runtime_ocaml_Runtime[31], cst_38827); + var + _bhd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$133), + _bhe_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bhd_), + _bhf_ = caml_call1(Runtime_ocaml_Runtime[69], _bhe_), + _bhg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6642), + _bhh_ = caml_call2(Runtime_ocaml_Runtime[104], _bhg_, _bhf_), + _bhi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_45469); + return caml_call2(Runtime_ocaml_Runtime[93], _bhi_, _bhh_); + case 1: + var _bhj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$181); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bhj_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_28722) + : caml_call1(Runtime_ocaml_Runtime[31], cst_34570$0); + var + _bhk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$134), + _bhl_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bhk_), + _bhm_ = caml_call1(Runtime_ocaml_Runtime[69], _bhl_), + _bhn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5848), + _bho_ = caml_call2(Runtime_ocaml_Runtime[104], _bhn_, _bhm_), + _bhp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40418); + return caml_call2(Runtime_ocaml_Runtime[93], _bhp_, _bho_); + default: + var _bhq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$182); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bhq_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26813) + : caml_call1(Runtime_ocaml_Runtime[31], cst_32152); + var + _bhr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$135), + _bhs_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bhr_), + _bht_ = caml_call1(Runtime_ocaml_Runtime[69], _bhs_), + _bhu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5339), + _bhv_ = caml_call2(Runtime_ocaml_Runtime[104], _bhu_, _bht_), + _bhw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37491); + return caml_call2(Runtime_ocaml_Runtime[93], _bhw_, _bhv_); + } + } + function _bgY_(param){ + switch(type_pret[0]){ + case 0: + var _bgZ_ = 0; break; + case 1: + var _bgZ_ = 1; break; + case 2: + var _bgZ_ = 0; break; + case 3: + var _bgZ_ = 0; break; + default: var _bgZ_ = 0; + } + var + _bg0_ = 0 === anciennete_logement[0] ? 1 : 0, + _bg1_ = caml_call2(Runtime_ocaml_Runtime[83], _bg0_, _bgZ_), + _bg2_ = caml_call3(Runtime_ocaml_Runtime[57], 2006, 12, 31), + _bg3_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bg2_), + _bg4_ = caml_call2(Runtime_ocaml_Runtime[83], _bg3_, _bg1_), + _bg5_ = caml_call3(Runtime_ocaml_Runtime[57], 2005, 8, 31), + _bg6_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bg5_), + _bg7_ = caml_call2(Runtime_ocaml_Runtime[83], _bg6_, _bg4_), + _bg8_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bg9_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bg8_), + _bg__ = caml_call2(Runtime_ocaml_Runtime[83], _bg9_, _bg7_), + _bg$_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bha_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bg$_), + _bhb_ = caml_call2(Runtime_ocaml_Runtime[83], _bha_, _bg__); + return caml_call2(Runtime_ocaml_Runtime[29], _pk_, _bhb_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pl_, [0], _bgY_, _bgX_); + } + function _a_h_(param){ + function _bgl_(param){ + switch(zone[0]){ + case 0: + var _bgC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$183); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bgC_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25449) + : caml_call1(Runtime_ocaml_Runtime[31], cst_30711); + var + _bgD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$136), + _bgE_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bgD_), + _bgF_ = caml_call1(Runtime_ocaml_Runtime[69], _bgE_), + _bgG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5262), + _bgH_ = caml_call2(Runtime_ocaml_Runtime[104], _bgG_, _bgF_), + _bgI_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35973); + return caml_call2(Runtime_ocaml_Runtime[93], _bgI_, _bgH_); + case 1: + var _bgJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$184); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bgJ_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_22686) + : caml_call1(Runtime_ocaml_Runtime[31], cst_27323); + var + _bgK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$137), + _bgL_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bgK_), + _bgM_ = caml_call1(Runtime_ocaml_Runtime[69], _bgL_), + _bgN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4637), + _bgO_ = caml_call2(Runtime_ocaml_Runtime[104], _bgN_, _bgM_), + _bgP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_31960); + return caml_call2(Runtime_ocaml_Runtime[93], _bgP_, _bgO_); + default: + var _bgQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$185); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bgQ_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_21186) + : caml_call1(Runtime_ocaml_Runtime[31], cst_25417); + var + _bgR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$138), + _bgS_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bgR_), + _bgT_ = caml_call1(Runtime_ocaml_Runtime[69], _bgS_), + _bgU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4231), + _bgV_ = caml_call2(Runtime_ocaml_Runtime[104], _bgU_, _bgT_), + _bgW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_29648); + return caml_call2(Runtime_ocaml_Runtime[93], _bgW_, _bgV_); + } + } + function _bgm_(param){ + switch(type_pret[0]){ + case 0: + var _bgn_ = 0; break; + case 1: + var _bgn_ = 1; break; + case 2: + var _bgn_ = 0; break; + case 3: + var _bgn_ = 0; break; + default: var _bgn_ = 0; + } + var + _bgo_ = 0 === anciennete_logement[0] ? 0 : 1, + _bgp_ = caml_call2(Runtime_ocaml_Runtime[83], _bgo_, _bgn_), + _bgq_ = caml_call3(Runtime_ocaml_Runtime[57], 2005, 8, 31), + _bgr_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bgq_), + _bgs_ = caml_call2(Runtime_ocaml_Runtime[83], _bgr_, _bgp_), + _bgt_ = caml_call3(Runtime_ocaml_Runtime[57], 2003, 6, 30), + _bgu_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bgt_), + _bgv_ = caml_call2(Runtime_ocaml_Runtime[83], _bgu_, _bgs_), + _bgw_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bgx_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bgw_), + _bgy_ = caml_call2(Runtime_ocaml_Runtime[83], _bgx_, _bgv_), + _bgz_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bgA_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bgz_), + _bgB_ = caml_call2(Runtime_ocaml_Runtime[83], _bgA_, _bgy_); + return caml_call2(Runtime_ocaml_Runtime[29], _pm_, _bgB_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pn_, [0], _bgm_, _bgl_); + } + function _a_i_(param){ + function _bfL_(param){ + switch(zone[0]){ + case 0: + var _bf2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$186); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bf2_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_31616) + : caml_call1(Runtime_ocaml_Runtime[31], cst_38141); + var + _bf3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$139), + _bf4_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bf3_), + _bf5_ = caml_call1(Runtime_ocaml_Runtime[69], _bf4_), + _bf6_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6525), + _bf7_ = caml_call2(Runtime_ocaml_Runtime[104], _bf6_, _bf5_), + _bf8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_44666); + return caml_call2(Runtime_ocaml_Runtime[93], _bf8_, _bf7_); + case 1: + var _bf9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$187); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bf9_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_28214) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33959); + var + _bf__ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$140), + _bf$_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bf__), + _bga_ = caml_call1(Runtime_ocaml_Runtime[69], _bf$_), + _bgb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5745), + _bgc_ = caml_call2(Runtime_ocaml_Runtime[104], _bgb_, _bga_), + _bgd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39704); + return caml_call2(Runtime_ocaml_Runtime[93], _bgd_, _bgc_); + default: + var _bge_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$188); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bge_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26339) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31584); + var + _bgf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$141), + _bgg_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bgf_), + _bgh_ = caml_call1(Runtime_ocaml_Runtime[69], _bgg_), + _bgi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5245), + _bgj_ = caml_call2(Runtime_ocaml_Runtime[104], _bgi_, _bgh_), + _bgk_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36829); + return caml_call2(Runtime_ocaml_Runtime[93], _bgk_, _bgj_); + } + } + function _bfM_(param){ + switch(type_pret[0]){ + case 0: + var _bfN_ = 0; break; + case 1: + var _bfN_ = 1; break; + case 2: + var _bfN_ = 0; break; + case 3: + var _bfN_ = 0; break; + default: var _bfN_ = 0; + } + var + _bfO_ = 0 === anciennete_logement[0] ? 1 : 0, + _bfP_ = caml_call2(Runtime_ocaml_Runtime[83], _bfO_, _bfN_), + _bfQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2005, 8, 31), + _bfR_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bfQ_), + _bfS_ = caml_call2(Runtime_ocaml_Runtime[83], _bfR_, _bfP_), + _bfT_ = caml_call3(Runtime_ocaml_Runtime[57], 2003, 6, 30), + _bfU_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bfT_), + _bfV_ = caml_call2(Runtime_ocaml_Runtime[83], _bfU_, _bfS_), + _bfW_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bfX_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bfW_), + _bfY_ = caml_call2(Runtime_ocaml_Runtime[83], _bfX_, _bfV_), + _bfZ_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bf0_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bfZ_), + _bf1_ = caml_call2(Runtime_ocaml_Runtime[83], _bf0_, _bfY_); + return caml_call2(Runtime_ocaml_Runtime[29], _po_, _bf1_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pp_, [0], _bfM_, _bfL_); + } + function _a_j_(param){ + function _be$_(param){ + switch(zone[0]){ + case 0: + var _bfq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$189); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bfq_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25147) + : caml_call1(Runtime_ocaml_Runtime[31], cst_30347); + var + _bfr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$142), + _bfs_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bfr_), + _bft_ = caml_call1(Runtime_ocaml_Runtime[69], _bfs_), + _bfu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5200), + _bfv_ = caml_call2(Runtime_ocaml_Runtime[104], _bfu_, _bft_), + _bfw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35547); + return caml_call2(Runtime_ocaml_Runtime[93], _bfw_, _bfv_); + case 1: + var _bfx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$190); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bfx_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_22417) + : caml_call1(Runtime_ocaml_Runtime[31], cst_26999); + var + _bfy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$143), + _bfz_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bfy_), + _bfA_ = caml_call1(Runtime_ocaml_Runtime[69], _bfz_), + _bfB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4582), + _bfC_ = caml_call2(Runtime_ocaml_Runtime[104], _bfB_, _bfA_), + _bfD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_31581); + return caml_call2(Runtime_ocaml_Runtime[93], _bfD_, _bfC_); + default: + var _bfE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$191); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bfE_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_20935) + : caml_call1(Runtime_ocaml_Runtime[31], cst_25116$0); + var + _bfF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$144), + _bfG_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bfF_), + _bfH_ = caml_call1(Runtime_ocaml_Runtime[69], _bfG_), + _bfI_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4181), + _bfJ_ = caml_call2(Runtime_ocaml_Runtime[104], _bfI_, _bfH_), + _bfK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_29297); + return caml_call2(Runtime_ocaml_Runtime[93], _bfK_, _bfJ_); + } + } + function _bfa_(param){ + switch(type_pret[0]){ + case 0: + var _bfb_ = 0; break; + case 1: + var _bfb_ = 1; break; + case 2: + var _bfb_ = 0; break; + case 3: + var _bfb_ = 0; break; + default: var _bfb_ = 0; + } + var + _bfc_ = 0 === anciennete_logement[0] ? 0 : 1, + _bfd_ = caml_call2(Runtime_ocaml_Runtime[83], _bfc_, _bfb_), + _bfe_ = caml_call3(Runtime_ocaml_Runtime[57], 2003, 6, 30), + _bff_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bfe_), + _bfg_ = caml_call2(Runtime_ocaml_Runtime[83], _bff_, _bfd_), + _bfh_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 6, 30), + _bfi_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bfh_), + _bfj_ = caml_call2(Runtime_ocaml_Runtime[83], _bfi_, _bfg_), + _bfk_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bfl_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bfk_), + _bfm_ = caml_call2(Runtime_ocaml_Runtime[83], _bfl_, _bfj_), + _bfn_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bfo_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bfn_), + _bfp_ = caml_call2(Runtime_ocaml_Runtime[83], _bfo_, _bfm_); + return caml_call2(Runtime_ocaml_Runtime[29], _pq_, _bfp_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pr_, [0], _bfa_, _be$_); + } + function _a_k_(param){ + function _bez_(param){ + switch(zone[0]){ + case 0: + var _beQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$192); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _beQ_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_31241) + : caml_call1(Runtime_ocaml_Runtime[31], cst_37689); + var + _beR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$145), + _beS_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _beR_), + _beT_ = caml_call1(Runtime_ocaml_Runtime[69], _beS_), + _beU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6448), + _beV_ = caml_call2(Runtime_ocaml_Runtime[104], _beU_, _beT_), + _beW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_44137); + return caml_call2(Runtime_ocaml_Runtime[93], _beW_, _beV_); + case 1: + var _beX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$193); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _beX_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_27879) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33556); + var + _beY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$146), + _beZ_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _beY_), + _be0_ = caml_call1(Runtime_ocaml_Runtime[69], _beZ_), + _be1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5677), + _be2_ = caml_call2(Runtime_ocaml_Runtime[104], _be1_, _be0_), + _be3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39233); + return caml_call2(Runtime_ocaml_Runtime[93], _be3_, _be2_); + default: + var _be4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$194); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _be4_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26027) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31210); + var + _be5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$147), + _be6_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _be5_), + _be7_ = caml_call1(Runtime_ocaml_Runtime[69], _be6_), + _be8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5183), + _be9_ = caml_call2(Runtime_ocaml_Runtime[104], _be8_, _be7_), + _be__ = caml_call1(Runtime_ocaml_Runtime[31], cst_36393); + return caml_call2(Runtime_ocaml_Runtime[93], _be__, _be9_); + } + } + function _beA_(param){ + switch(type_pret[0]){ + case 0: + var _beB_ = 0; break; + case 1: + var _beB_ = 1; break; + case 2: + var _beB_ = 0; break; + case 3: + var _beB_ = 0; break; + default: var _beB_ = 0; + } + var + _beC_ = 0 === anciennete_logement[0] ? 1 : 0, + _beD_ = caml_call2(Runtime_ocaml_Runtime[83], _beC_, _beB_), + _beE_ = caml_call3(Runtime_ocaml_Runtime[57], 2003, 6, 30), + _beF_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _beE_), + _beG_ = caml_call2(Runtime_ocaml_Runtime[83], _beF_, _beD_), + _beH_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 6, 30), + _beI_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _beH_), + _beJ_ = caml_call2(Runtime_ocaml_Runtime[83], _beI_, _beG_), + _beK_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _beL_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _beK_), + _beM_ = caml_call2(Runtime_ocaml_Runtime[83], _beL_, _beJ_), + _beN_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _beO_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _beN_), + _beP_ = caml_call2(Runtime_ocaml_Runtime[83], _beO_, _beM_); + return caml_call2(Runtime_ocaml_Runtime[29], _ps_, _beP_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pt_, [0], _beA_, _bez_); + } + function _a_l_(param){ + function _bdZ_(param){ + switch(zone[0]){ + case 0: + var _bee_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$195); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bee_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24849) + : caml_call1(Runtime_ocaml_Runtime[31], cst_29987); + var + _bef_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$148), + _beg_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bef_), + _beh_ = caml_call1(Runtime_ocaml_Runtime[69], _beg_), + _bei_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5138), + _bej_ = caml_call2(Runtime_ocaml_Runtime[104], _bei_, _beh_), + _bek_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35125); + return caml_call2(Runtime_ocaml_Runtime[93], _bek_, _bej_); + case 1: + var _bel_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$196); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bel_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_22151) + : caml_call1(Runtime_ocaml_Runtime[31], cst_26679); + var + _bem_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$149), + _ben_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bem_), + _beo_ = caml_call1(Runtime_ocaml_Runtime[69], _ben_), + _bep_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4528), + _beq_ = caml_call2(Runtime_ocaml_Runtime[104], _bep_, _beo_), + _ber_ = caml_call1(Runtime_ocaml_Runtime[31], cst_31207); + return caml_call2(Runtime_ocaml_Runtime[93], _ber_, _beq_); + default: + var _bes_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$197); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bes_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_20687) + : caml_call1(Runtime_ocaml_Runtime[31], cst_24818); + var + _bet_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$150), + _beu_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bet_), + _bev_ = caml_call1(Runtime_ocaml_Runtime[69], _beu_), + _bew_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4131), + _bex_ = caml_call2(Runtime_ocaml_Runtime[104], _bew_, _bev_), + _bey_ = caml_call1(Runtime_ocaml_Runtime[31], cst_28949); + return caml_call2(Runtime_ocaml_Runtime[93], _bey_, _bex_); + } + } + function _bd0_(param){ + switch(type_pret[0]){ + case 0: + var _bd1_ = 0; break; + case 1: + var _bd1_ = 1; break; + case 2: + var _bd1_ = 0; break; + case 3: + var _bd1_ = 0; break; + default: var _bd1_ = 0; + } + var + _bd2_ = 0 === anciennete_logement[0] ? 0 : 1, + _bd3_ = caml_call2(Runtime_ocaml_Runtime[83], _bd2_, _bd1_), + _bd4_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 6, 30), + _bd5_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bd4_), + _bd6_ = caml_call2(Runtime_ocaml_Runtime[83], _bd5_, _bd3_), + _bd7_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 1, 1), + _bd8_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bd7_), + _bd9_ = caml_call2(Runtime_ocaml_Runtime[83], _bd8_, _bd6_), + _bd__ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bd$_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bd__), + _bea_ = caml_call2(Runtime_ocaml_Runtime[83], _bd$_, _bd9_), + _beb_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bec_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _beb_), + _bed_ = caml_call2(Runtime_ocaml_Runtime[83], _bec_, _bea_); + return caml_call2(Runtime_ocaml_Runtime[29], _pu_, _bed_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pv_, [0], _bd0_, _bdZ_); + } + function _a_m_(param){ + function _bdm_(param){ + switch(zone[0]){ + case 0: + var _bdD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$198); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bdD_)) + var + _bdE_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_163000) + : caml_call1(Runtime_ocaml_Runtime[31], cst_196700); + else + var + _bdF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$151), + _bdG_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bdF_), + _bdH_ = caml_call1(Runtime_ocaml_Runtime[69], _bdG_), + _bdI_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33700), + _bdJ_ = caml_call2(Runtime_ocaml_Runtime[104], _bdI_, _bdH_), + _bdK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_230400), + _bdE_ = caml_call2(Runtime_ocaml_Runtime[93], _bdK_, _bdJ_); + break; + case 1: + var _bdL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$199); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bdL_)) + var + _bdE_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_145300) + : caml_call1(Runtime_ocaml_Runtime[31], cst_175000); + else + var + _bdM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$152), + _bdN_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bdM_), + _bdO_ = caml_call1(Runtime_ocaml_Runtime[69], _bdN_), + _bdP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_29700), + _bdQ_ = caml_call2(Runtime_ocaml_Runtime[104], _bdP_, _bdO_), + _bdR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_204700), + _bdE_ = caml_call2(Runtime_ocaml_Runtime[93], _bdR_, _bdQ_); + break; + default: + var _bdS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$200); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bdS_)) + var + _bdE_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_135700) + : caml_call1(Runtime_ocaml_Runtime[31], cst_162800); + else + var + _bdT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$153), + _bdU_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bdT_), + _bdV_ = caml_call1(Runtime_ocaml_Runtime[69], _bdU_), + _bdW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_27100), + _bdX_ = caml_call2(Runtime_ocaml_Runtime[104], _bdW_, _bdV_), + _bdY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_189900), + _bdE_ = caml_call2(Runtime_ocaml_Runtime[93], _bdY_, _bdX_); + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _bdE_, taux_francs_vers_euros); + } + function _bdn_(param){ + switch(type_pret[0]){ + case 0: + var _bdo_ = 0; break; + case 1: + var _bdo_ = 1; break; + case 2: + var _bdo_ = 0; break; + case 3: + var _bdo_ = 0; break; + default: var _bdo_ = 0; + } + var + _bdp_ = 0 === anciennete_logement[0] ? 0 : 1, + _bdq_ = caml_call2(Runtime_ocaml_Runtime[83], _bdp_, _bdo_), + _bdr_ = caml_call3(Runtime_ocaml_Runtime[57], 2001, 12, 31), + _bds_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bdr_), + _bdt_ = caml_call2(Runtime_ocaml_Runtime[83], _bds_, _bdq_), + _bdu_ = caml_call3(Runtime_ocaml_Runtime[57], 2001, 7, 1), + _bdv_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bdu_), + _bdw_ = caml_call2(Runtime_ocaml_Runtime[83], _bdv_, _bdt_), + _bdx_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bdy_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bdx_), + _bdz_ = caml_call2(Runtime_ocaml_Runtime[83], _bdy_, _bdw_), + _bdA_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bdB_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bdA_), + _bdC_ = caml_call2(Runtime_ocaml_Runtime[83], _bdB_, _bdz_); + return caml_call2(Runtime_ocaml_Runtime[29], _pw_, _bdC_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _px_, [0], _bdn_, _bdm_); + } + function _a_n_(param){ + function _bcM_(param){ + switch(zone[0]){ + case 0: + var _bc3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$201); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bc3_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_30871) + : caml_call1(Runtime_ocaml_Runtime[31], cst_37243); + var + _bc4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$154), + _bc5_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bc4_), + _bc6_ = caml_call1(Runtime_ocaml_Runtime[69], _bc5_), + _bc7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6372), + _bc8_ = caml_call2(Runtime_ocaml_Runtime[104], _bc7_, _bc6_), + _bc9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43615); + return caml_call2(Runtime_ocaml_Runtime[93], _bc9_, _bc8_); + case 1: + var _bc__ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$202); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bc__)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_27548) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33148); + var + _bc$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$155), + _bda_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bc$_), + _bdb_ = caml_call1(Runtime_ocaml_Runtime[69], _bda_), + _bdc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5610), + _bdd_ = caml_call2(Runtime_ocaml_Runtime[104], _bdc_, _bdb_), + _bde_ = caml_call1(Runtime_ocaml_Runtime[31], cst_38768); + return caml_call2(Runtime_ocaml_Runtime[93], _bde_, _bdd_); + default: + var _bdf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$203); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bdf_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25718) + : caml_call1(Runtime_ocaml_Runtime[31], cst_30840); + var + _bdg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$156), + _bdh_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bdg_), + _bdi_ = caml_call1(Runtime_ocaml_Runtime[69], _bdh_), + _bdj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5122), + _bdk_ = caml_call2(Runtime_ocaml_Runtime[104], _bdj_, _bdi_), + _bdl_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35962); + return caml_call2(Runtime_ocaml_Runtime[93], _bdl_, _bdk_); + } + } + function _bcN_(param){ + switch(type_pret[0]){ + case 0: + var _bcO_ = 0; break; + case 1: + var _bcO_ = 1; break; + case 2: + var _bcO_ = 0; break; + case 3: + var _bcO_ = 0; break; + default: var _bcO_ = 0; + } + var + _bcP_ = 0 === anciennete_logement[0] ? 1 : 0, + _bcQ_ = caml_call2(Runtime_ocaml_Runtime[83], _bcP_, _bcO_), + _bcR_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 6, 30), + _bcS_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bcR_), + _bcT_ = caml_call2(Runtime_ocaml_Runtime[83], _bcS_, _bcQ_), + _bcU_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 1, 1), + _bcV_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bcU_), + _bcW_ = caml_call2(Runtime_ocaml_Runtime[83], _bcV_, _bcT_), + _bcX_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bcY_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bcX_), + _bcZ_ = caml_call2(Runtime_ocaml_Runtime[83], _bcY_, _bcW_), + _bc0_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bc1_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bc0_), + _bc2_ = caml_call2(Runtime_ocaml_Runtime[83], _bc1_, _bcZ_); + return caml_call2(Runtime_ocaml_Runtime[29], _py_, _bc2_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pz_, [0], _bcN_, _bcM_); + } + function _a_o_(param){ + function _bb$_(param){ + switch(zone[0]){ + case 0: + var _bcq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$204); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bcq_)) + var + _bcr_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_202500$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_244300); + else + var + _bcs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$157), + _bct_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bcs_), + _bcu_ = caml_call1(Runtime_ocaml_Runtime[69], _bct_), + _bcv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41800), + _bcw_ = caml_call2(Runtime_ocaml_Runtime[104], _bcv_, _bcu_), + _bcx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_286100), + _bcr_ = caml_call2(Runtime_ocaml_Runtime[93], _bcx_, _bcw_); + break; + case 1: + var _bcy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$205); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bcy_)) + var + _bcr_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_180700) + : caml_call1(Runtime_ocaml_Runtime[31], cst_217500); + else + var + _bcz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$158), + _bcA_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bcz_), + _bcB_ = caml_call1(Runtime_ocaml_Runtime[69], _bcA_), + _bcC_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36800), + _bcD_ = caml_call2(Runtime_ocaml_Runtime[104], _bcC_, _bcB_), + _bcE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_254300), + _bcr_ = caml_call2(Runtime_ocaml_Runtime[93], _bcE_, _bcD_); + break; + default: + var _bcF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$206); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bcF_)) + var + _bcr_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_168700) + : caml_call1(Runtime_ocaml_Runtime[31], cst_202300); + else + var + _bcG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$159), + _bcH_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bcG_), + _bcI_ = caml_call1(Runtime_ocaml_Runtime[69], _bcH_), + _bcJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33600), + _bcK_ = caml_call2(Runtime_ocaml_Runtime[104], _bcJ_, _bcI_), + _bcL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_235900), + _bcr_ = caml_call2(Runtime_ocaml_Runtime[93], _bcL_, _bcK_); + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _bcr_, taux_francs_vers_euros); + } + function _bca_(param){ + switch(type_pret[0]){ + case 0: + var _bcb_ = 0; break; + case 1: + var _bcb_ = 1; break; + case 2: + var _bcb_ = 0; break; + case 3: + var _bcb_ = 0; break; + default: var _bcb_ = 0; + } + var + _bcc_ = 0 === anciennete_logement[0] ? 1 : 0, + _bcd_ = caml_call2(Runtime_ocaml_Runtime[83], _bcc_, _bcb_), + _bce_ = caml_call3(Runtime_ocaml_Runtime[57], 2001, 12, 31), + _bcf_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bce_), + _bcg_ = caml_call2(Runtime_ocaml_Runtime[83], _bcf_, _bcd_), + _bch_ = caml_call3(Runtime_ocaml_Runtime[57], 2001, 7, 1), + _bci_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bch_), + _bcj_ = caml_call2(Runtime_ocaml_Runtime[83], _bci_, _bcg_), + _bck_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bcl_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bck_), + _bcm_ = caml_call2(Runtime_ocaml_Runtime[83], _bcl_, _bcj_), + _bcn_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bco_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bcn_), + _bcp_ = caml_call2(Runtime_ocaml_Runtime[83], _bco_, _bcm_); + return caml_call2(Runtime_ocaml_Runtime[29], _pA_, _bcp_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pB_, [0], _bca_, _bb$_); + } + function _a_p_(param){ + function _bby_(param){ + switch(zone[0]){ + case 0: + var _bbP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$207); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bbP_)) + var + _bbQ_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_161100) + : caml_call1(Runtime_ocaml_Runtime[31], cst_194400); + else + var + _bbR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$160), + _bbS_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bbR_), + _bbT_ = caml_call1(Runtime_ocaml_Runtime[69], _bbS_), + _bbU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33300), + _bbV_ = caml_call2(Runtime_ocaml_Runtime[104], _bbU_, _bbT_), + _bbW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_227700), + _bbQ_ = caml_call2(Runtime_ocaml_Runtime[93], _bbW_, _bbV_); + break; + case 1: + var _bbX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$208); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bbX_)) + var + _bbQ_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_143600) + : caml_call1(Runtime_ocaml_Runtime[31], cst_172900); + else + var + _bbY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$161), + _bbZ_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bbY_), + _bb0_ = caml_call1(Runtime_ocaml_Runtime[69], _bbZ_), + _bb1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_29300), + _bb2_ = caml_call2(Runtime_ocaml_Runtime[104], _bb1_, _bb0_), + _bb3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_202200), + _bbQ_ = caml_call2(Runtime_ocaml_Runtime[93], _bb3_, _bb2_); + break; + default: + var _bb4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$209); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bb4_)) + var + _bbQ_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_134100) + : caml_call1(Runtime_ocaml_Runtime[31], cst_160900); + else + var + _bb5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$162), + _bb6_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bb5_), + _bb7_ = caml_call1(Runtime_ocaml_Runtime[69], _bb6_), + _bb8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_26800), + _bb9_ = caml_call2(Runtime_ocaml_Runtime[104], _bb8_, _bb7_), + _bb__ = caml_call1(Runtime_ocaml_Runtime[31], cst_187700), + _bbQ_ = caml_call2(Runtime_ocaml_Runtime[93], _bb__, _bb9_); + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _bbQ_, taux_francs_vers_euros); + } + function _bbz_(param){ + switch(type_pret[0]){ + case 0: + var _bbA_ = 0; break; + case 1: + var _bbA_ = 1; break; + case 2: + var _bbA_ = 0; break; + case 3: + var _bbA_ = 0; break; + default: var _bbA_ = 0; + } + var + _bbB_ = 0 === anciennete_logement[0] ? 0 : 1, + _bbC_ = caml_call2(Runtime_ocaml_Runtime[83], _bbB_, _bbA_), + _bbD_ = caml_call3(Runtime_ocaml_Runtime[57], 2001, 6, 30), + _bbE_ = + caml_call2 + (Runtime_ocaml_Runtime[120], date_signature_pret, _bbD_), + _bbF_ = caml_call2(Runtime_ocaml_Runtime[83], _bbE_, _bbC_), + _bbG_ = caml_call3(Runtime_ocaml_Runtime[57], 2000, 6, 30), + _bbH_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bbG_), + _bbI_ = caml_call2(Runtime_ocaml_Runtime[83], _bbH_, _bbF_), + _bbJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bbK_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bbJ_), + _bbL_ = caml_call2(Runtime_ocaml_Runtime[83], _bbK_, _bbI_), + _bbM_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bbN_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bbM_), + _bbO_ = caml_call2(Runtime_ocaml_Runtime[83], _bbN_, _bbL_); + return caml_call2(Runtime_ocaml_Runtime[29], _pC_, _bbO_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pD_, [0], _bbz_, _bby_); + } + function _a_q_(param){ + function _baX_(param){ + switch(zone[0]){ + case 0: + var _bbc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$210); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bbc_)) + var + _bbd_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_200100) + : caml_call1(Runtime_ocaml_Runtime[31], cst_141400); + else + var + _bbe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$163), + _bbf_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bbe_), + _bbg_ = caml_call1(Runtime_ocaml_Runtime[69], _bbf_), + _bbh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41300), + _bbi_ = caml_call2(Runtime_ocaml_Runtime[104], _bbh_, _bbg_), + _bbj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_182700), + _bbd_ = caml_call2(Runtime_ocaml_Runtime[93], _bbj_, _bbi_); + break; + case 1: + var _bbk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$211); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bbk_)) + var + _bbd_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_178600) + : caml_call1(Runtime_ocaml_Runtime[31], cst_215000); + else + var + _bbl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$164), + _bbm_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bbl_), + _bbn_ = caml_call1(Runtime_ocaml_Runtime[69], _bbm_), + _bbo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36400), + _bbp_ = caml_call2(Runtime_ocaml_Runtime[104], _bbo_, _bbn_), + _bbq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_251400), + _bbd_ = caml_call2(Runtime_ocaml_Runtime[93], _bbq_, _bbp_); + break; + default: + var _bbr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$212); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bbr_)) + var + _bbd_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_166700) + : caml_call1(Runtime_ocaml_Runtime[31], cst_199900); + else + var + _bbs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$165), + _bbt_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bbs_), + _bbu_ = caml_call1(Runtime_ocaml_Runtime[69], _bbt_), + _bbv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33200), + _bbw_ = caml_call2(Runtime_ocaml_Runtime[104], _bbv_, _bbu_), + _bbx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_233100), + _bbd_ = caml_call2(Runtime_ocaml_Runtime[93], _bbx_, _bbw_); + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _bbd_, taux_francs_vers_euros); + } + function _baY_(param){ + switch(type_pret[0]){ + case 0: + var _baZ_ = 0; break; + case 1: + var _baZ_ = 1; break; + case 2: + var _baZ_ = 0; break; + case 3: + var _baZ_ = 0; break; + default: var _baZ_ = 0; + } + var + _ba0_ = 0 === anciennete_logement[0] ? 1 : 0, + _ba1_ = caml_call2(Runtime_ocaml_Runtime[83], _ba0_, _baZ_), + _ba2_ = caml_call3(Runtime_ocaml_Runtime[57], 2001, 6, 30), + _ba3_ = + caml_call2 + (Runtime_ocaml_Runtime[120], date_signature_pret, _ba2_), + _ba4_ = caml_call2(Runtime_ocaml_Runtime[83], _ba3_, _ba1_), + _ba5_ = caml_call3(Runtime_ocaml_Runtime[57], 2000, 6, 30), + _ba6_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _ba5_), + _ba7_ = caml_call2(Runtime_ocaml_Runtime[83], _ba6_, _ba4_), + _ba8_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _ba9_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ba8_), + _ba__ = caml_call2(Runtime_ocaml_Runtime[83], _ba9_, _ba7_), + _ba$_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bba_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ba$_), + _bbb_ = caml_call2(Runtime_ocaml_Runtime[83], _bba_, _ba__); + return caml_call2(Runtime_ocaml_Runtime[29], _pE_, _bbb_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pF_, [0], _baY_, _baX_); + } + function _a_r_(param){ + function _bak_(param){ + switch(zone[0]){ + case 0: + var _baB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$213); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _baB_)) + var + _baC_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_159500) + : caml_call1(Runtime_ocaml_Runtime[31], cst_192500); + else + var + _baD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$166), + _baE_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _baD_), + _baF_ = caml_call1(Runtime_ocaml_Runtime[69], _baE_), + _baG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33000), + _baH_ = caml_call2(Runtime_ocaml_Runtime[104], _baG_, _baF_), + _baI_ = caml_call1(Runtime_ocaml_Runtime[31], cst_225500), + _baC_ = caml_call2(Runtime_ocaml_Runtime[93], _baI_, _baH_); + break; + case 1: + var _baJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$214); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _baJ_)) + var + _baC_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_142200) + : caml_call1(Runtime_ocaml_Runtime[31], cst_171200); + else + var + _baK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$167), + _baL_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _baK_), + _baM_ = caml_call1(Runtime_ocaml_Runtime[69], _baL_), + _baN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_29000), + _baO_ = caml_call2(Runtime_ocaml_Runtime[104], _baN_, _baM_), + _baP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_200200), + _baC_ = caml_call2(Runtime_ocaml_Runtime[93], _baP_, _baO_); + break; + default: + var _baQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$215); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _baQ_)) + var + _baC_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_132800) + : caml_call1(Runtime_ocaml_Runtime[31], cst_159300); + else + var + _baR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$168), + _baS_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _baR_), + _baT_ = caml_call1(Runtime_ocaml_Runtime[69], _baS_), + _baU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_26500), + _baV_ = caml_call2(Runtime_ocaml_Runtime[104], _baU_, _baT_), + _baW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_185800$0), + _baC_ = caml_call2(Runtime_ocaml_Runtime[93], _baW_, _baV_); + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _baC_, taux_francs_vers_euros); + } + function _bal_(param){ + switch(type_pret[0]){ + case 0: + var _bam_ = 0; break; + case 1: + var _bam_ = 1; break; + case 2: + var _bam_ = 0; break; + case 3: + var _bam_ = 0; break; + default: var _bam_ = 0; + } + var + _ban_ = 0 === anciennete_logement[0] ? 0 : 1, + _bao_ = caml_call2(Runtime_ocaml_Runtime[83], _ban_, _bam_), + _bap_ = caml_call3(Runtime_ocaml_Runtime[57], 2000, 6, 30), + _baq_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bap_), + _bar_ = caml_call2(Runtime_ocaml_Runtime[83], _baq_, _bao_), + _bas_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), + _bat_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bas_), + _bau_ = caml_call2(Runtime_ocaml_Runtime[83], _bat_, _bar_), + _bav_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _baw_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bav_), + _bax_ = caml_call2(Runtime_ocaml_Runtime[83], _baw_, _bau_), + _bay_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _baz_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bay_), + _baA_ = caml_call2(Runtime_ocaml_Runtime[83], _baz_, _bax_); + return caml_call2(Runtime_ocaml_Runtime[29], _pG_, _baA_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pH_, [0], _bal_, _bak_); + } + function _a_s_(param){ + function _a$J_(param){ + switch(zone[0]){ + case 0: + var _a$0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$216); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _a$0_)) + var + _a$1_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_198100) + : caml_call1(Runtime_ocaml_Runtime[31], cst_239000); + else + var + _a$2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$169), + _a$3_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _a$2_), + _a$4_ = caml_call1(Runtime_ocaml_Runtime[69], _a$3_), + _a$5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40900), + _a$6_ = caml_call2(Runtime_ocaml_Runtime[104], _a$5_, _a$4_), + _a$7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_279900), + _a$1_ = caml_call2(Runtime_ocaml_Runtime[93], _a$7_, _a$6_); + break; + case 1: + var _a$8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$217); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _a$8_)) + var + _a$1_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_176800) + : caml_call1(Runtime_ocaml_Runtime[31], cst_212800); + else + var + _a$9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$170), + _a$__ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _a$9_), + _a$$_ = caml_call1(Runtime_ocaml_Runtime[69], _a$__), + _baa_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36000), + _bab_ = caml_call2(Runtime_ocaml_Runtime[104], _baa_, _a$$_), + _bac_ = caml_call1(Runtime_ocaml_Runtime[31], cst_248800), + _a$1_ = caml_call2(Runtime_ocaml_Runtime[93], _bac_, _bab_); + break; + default: + var _bad_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$218); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bad_)) + var + _a$1_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_165000) + : caml_call1(Runtime_ocaml_Runtime[31], cst_197900); + else + var + _bae_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$171), + _baf_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bae_), + _bag_ = caml_call1(Runtime_ocaml_Runtime[69], _baf_), + _bah_ = caml_call1(Runtime_ocaml_Runtime[31], cst_32900), + _bai_ = caml_call2(Runtime_ocaml_Runtime[104], _bah_, _bag_), + _baj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_230800), + _a$1_ = caml_call2(Runtime_ocaml_Runtime[93], _baj_, _bai_); + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _a$1_, taux_francs_vers_euros); + } + function _a$K_(param){ + switch(type_pret[0]){ + case 0: + var _a$L_ = 0; break; + case 1: + var _a$L_ = 1; break; + case 2: + var _a$L_ = 0; break; + case 3: + var _a$L_ = 0; break; + default: var _a$L_ = 0; + } + var + _a$M_ = 0 === anciennete_logement[0] ? 1 : 0, + _a$N_ = caml_call2(Runtime_ocaml_Runtime[83], _a$M_, _a$L_), + _a$O_ = caml_call3(Runtime_ocaml_Runtime[57], 2000, 6, 30), + _a$P_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _a$O_), + _a$Q_ = caml_call2(Runtime_ocaml_Runtime[83], _a$P_, _a$N_), + _a$R_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), + _a$S_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _a$R_), + _a$T_ = caml_call2(Runtime_ocaml_Runtime[83], _a$S_, _a$Q_), + _a$U_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _a$V_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a$U_), + _a$W_ = caml_call2(Runtime_ocaml_Runtime[83], _a$V_, _a$T_), + _a$X_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _a$Y_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a$X_), + _a$Z_ = caml_call2(Runtime_ocaml_Runtime[83], _a$Y_, _a$W_); + return caml_call2(Runtime_ocaml_Runtime[29], _pI_, _a$Z_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pJ_, [0], _a$K_, _a$J_); + } + function _a_t_(param){ + function _a_8_(param){ + switch(zone[0]){ + case 0: + var _a$n_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$219); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _a$n_)) + var + _a$o_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_167800$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_202500$1); + else + var + _a$p_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$172), + _a$q_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _a$p_), + _a$r_ = caml_call1(Runtime_ocaml_Runtime[69], _a$q_), + _a$s_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34700$0), + _a$t_ = caml_call2(Runtime_ocaml_Runtime[104], _a$s_, _a$r_), + _a$u_ = caml_call1(Runtime_ocaml_Runtime[31], cst_237200$0), + _a$o_ = caml_call2(Runtime_ocaml_Runtime[93], _a$u_, _a$t_); + break; + case 1: + var _a$v_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$220); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _a$v_)) + var + _a$o_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_149600$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_180100$0); + else + var + _a$w_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$173), + _a$x_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _a$w_), + _a$y_ = caml_call1(Runtime_ocaml_Runtime[69], _a$x_), + _a$z_ = caml_call1(Runtime_ocaml_Runtime[31], cst_30500$2), + _a$A_ = caml_call2(Runtime_ocaml_Runtime[104], _a$z_, _a$y_), + _a$B_ = caml_call1(Runtime_ocaml_Runtime[31], cst_210600$0), + _a$o_ = caml_call2(Runtime_ocaml_Runtime[93], _a$B_, _a$A_); + break; + default: + var _a$C_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$221); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _a$C_)) + var + _a$o_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_139700$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_167600$0); + else + var + _a$D_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$174), + _a$E_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _a$D_), + _a$F_ = caml_call1(Runtime_ocaml_Runtime[69], _a$E_), + _a$G_ = caml_call1(Runtime_ocaml_Runtime[31], cst_27900$0), + _a$H_ = caml_call2(Runtime_ocaml_Runtime[104], _a$G_, _a$F_), + _a$I_ = caml_call1(Runtime_ocaml_Runtime[31], cst_195500$0), + _a$o_ = caml_call2(Runtime_ocaml_Runtime[93], _a$I_, _a$H_); + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _a$o_, taux_francs_vers_euros); + } + function _a_9_(param){ + switch(type_pret[0]){ + case 0: + var _a___ = 0; break; + case 1: + var _a___ = 1; break; + case 2: + var _a___ = 0; break; + case 3: + var _a___ = 0; break; + default: var _a___ = 0; + } + var + _a_$_ = 0 === anciennete_logement[0] ? 0 : 1, + _a$a_ = caml_call2(Runtime_ocaml_Runtime[83], _a_$_, _a___), + _a$b_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), + _a$c_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _a$b_), + _a$d_ = caml_call2(Runtime_ocaml_Runtime[83], _a$c_, _a$a_), + _a$e_ = caml_call3(Runtime_ocaml_Runtime[57], 1992, 6, 30), + _a$f_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _a$e_), + _a$g_ = caml_call2(Runtime_ocaml_Runtime[83], _a$f_, _a$d_), + _a$h_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _a$i_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a$h_), + _a$j_ = caml_call2(Runtime_ocaml_Runtime[83], _a$i_, _a$g_), + _a$k_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _a$l_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a$k_), + _a$m_ = caml_call2(Runtime_ocaml_Runtime[83], _a$l_, _a$j_); + return caml_call2(Runtime_ocaml_Runtime[29], _pK_, _a$m_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pL_, [0], _a_9_, _a_8_); + } + var + _a_u_ = + [0, + function(param){ + function _a_v_(param){ + switch(zone[0]){ + case 0: + var + _a_M_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$222); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _a_M_)) + var + _a_N_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_208500$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_251500$0); + else + var + _a_O_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$175), + _a_P_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _a_O_), + _a_Q_ = caml_call1(Runtime_ocaml_Runtime[69], _a_P_), + _a_R_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43000$0), + _a_S_ = caml_call2(Runtime_ocaml_Runtime[104], _a_R_, _a_Q_), + _a_T_ = caml_call1(Runtime_ocaml_Runtime[31], cst_294500$0), + _a_N_ = caml_call2(Runtime_ocaml_Runtime[93], _a_T_, _a_S_); + break; + case 1: + var + _a_U_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$223); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _a_U_)) + var + _a_N_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_186000$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_223900$0); + else + var + _a_V_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$176), + _a_W_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _a_V_), + _a_X_ = caml_call1(Runtime_ocaml_Runtime[69], _a_W_), + _a_Y_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37900$0), + _a_Z_ = caml_call2(Runtime_ocaml_Runtime[104], _a_Y_, _a_X_), + _a_0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_261800$0), + _a_N_ = caml_call2(Runtime_ocaml_Runtime[93], _a_0_, _a_Z_); + break; + default: + var + _a_1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$224); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _a_1_)) + var + _a_N_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_173600$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_208200$0); + else + var + _a_2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$177), + _a_3_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _a_2_), + _a_4_ = caml_call1(Runtime_ocaml_Runtime[69], _a_3_), + _a_5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34600), + _a_6_ = caml_call2(Runtime_ocaml_Runtime[104], _a_5_, _a_4_), + _a_7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_242800$0), + _a_N_ = caml_call2(Runtime_ocaml_Runtime[93], _a_7_, _a_6_); + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _a_N_, taux_francs_vers_euros); + } + function _a_w_(param){ + switch(type_pret[0]){ + case 0: + var _a_x_ = 0; break; + case 1: + var _a_x_ = 1; break; + case 2: + var _a_x_ = 0; break; + case 3: + var _a_x_ = 0; break; + default: var _a_x_ = 0; + } + var + _a_y_ = 0 === anciennete_logement[0] ? 1 : 0, + _a_z_ = caml_call2(Runtime_ocaml_Runtime[83], _a_y_, _a_x_), + _a_A_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), + _a_B_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _a_A_), + _a_C_ = caml_call2(Runtime_ocaml_Runtime[83], _a_B_, _a_z_), + _a_D_ = caml_call3(Runtime_ocaml_Runtime[57], 1992, 6, 30), + _a_E_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _a_D_), + _a_F_ = caml_call2(Runtime_ocaml_Runtime[83], _a_E_, _a_C_), + _a_G_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _a_H_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a_G_), + _a_I_ = caml_call2(Runtime_ocaml_Runtime[83], _a_H_, _a_F_), + _a_J_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _a_K_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a_J_), + _a_L_ = caml_call2(Runtime_ocaml_Runtime[83], _a_K_, _a_I_); + return caml_call2(Runtime_ocaml_Runtime[29], _pM_, _a_L_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pN_, [0], _a_w_, _a_v_); + }, + _a_t_, + _a_s_, + _a_r_, + _a_q_, + _a_p_, + _a_o_, + _a_n_, + _a_m_, + _a_l_, + _a_k_, + _a_j_, + _a_i_, + _a_h_, + _a_g_, + _a_f_, + _a_e_, + _a_d_, + _a_c_, + _a_b_, + _a_a_, + _a9$_, + _a9__, + _a99_, + _a98_, + _a97_, + _a96_, + _a95_, + _a94_, + _a93_, + _a92_, + _a91_, + _a90_, + _a9Z_, + _a9Y_, + _a9X_, + _a9W_, + _a9V_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _pO_, _a_u_, _a9U_, _a9T_); + } + function _a9r_(param){return 1;} + var + _a9s_ = + [0, + function(param){ + function _a9t_(param){ + var _a9L_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$225); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _a9L_)) + var + _a9M_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_86900) + : caml_call1(Runtime_ocaml_Runtime[31], cst_97100); + else + var + _a9N_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$178), + _a9O_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _a9N_), + _a9P_ = caml_call1(Runtime_ocaml_Runtime[69], _a9O_), + _a9Q_ = caml_call1(Runtime_ocaml_Runtime[31], cst_10200), + _a9R_ = caml_call2(Runtime_ocaml_Runtime[104], _a9Q_, _a9P_), + _a9S_ = caml_call1(Runtime_ocaml_Runtime[31], cst_107300), + _a9M_ = caml_call2(Runtime_ocaml_Runtime[93], _a9S_, _a9R_); + return caml_call2 + (Runtime_ocaml_Runtime[104], _a9M_, taux_francs_vers_euros); + } + function _a9u_(param){ + switch(type_pret[0]){ + case 0: + var _a9v_ = 0; break; + case 1: + var _a9v_ = 1; break; + case 2: + var _a9v_ = 0; break; + case 3: + var _a9v_ = 0; break; + default: var _a9v_ = 0; + } + if(0 === anciennete_logement[0]) + var _a9w_ = 0; + else + var + ameliore_par_occupant = anciennete_logement[1], + _a9K_ = 0 === ameliore_par_occupant[0] ? 1 : 0, + _a9w_ = _a9K_; + var + _a9x_ = caml_call2(Runtime_ocaml_Runtime[83], _a9w_, _a9v_), + _a9y_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), + _a9z_ = + caml_call2 + (Runtime_ocaml_Runtime[120], date_signature_pret, _a9y_), + _a9A_ = caml_call2(Runtime_ocaml_Runtime[83], _a9z_, _a9x_), + _a9B_ = caml_call3(Runtime_ocaml_Runtime[57], 1992, 6, 30), + _a9C_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _a9B_), + _a9D_ = caml_call2(Runtime_ocaml_Runtime[83], _a9C_, _a9A_), + _a9E_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _a9F_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a9E_), + _a9G_ = caml_call2(Runtime_ocaml_Runtime[83], _a9F_, _a9D_), + _a9H_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _a9I_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a9H_), + _a9J_ = caml_call2(Runtime_ocaml_Runtime[83], _a9I_, _a9G_); + return caml_call2(Runtime_ocaml_Runtime[29], _pP_, _a9J_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pQ_, [0], _a9u_, _a9t_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _pR_, _a9s_, _a9r_, _a9q_); + }, + _a9m_], + _a9o_ = + caml_call4(Runtime_ocaml_Runtime[63], _pS_, _a9n_, _a9l_, _a9k_); + return _a9o_; + } + catch(_a9p_){ + var _a9j_ = caml_wrap_exception(_a9p_); + if(_a9j_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _or_], 1); + throw caml_maybe_attach_backtrace(_a9j_, 0); + } + } + var + calcul_plafond_mensualite_d832 = + caml_call3 + (Runtime_ocaml_Runtime[28], _pT_, Runtime_ocaml_Runtime[10], _a5T_); + try{ + var + _a5V_ = function(param){return calcul_nombre_parts_dot_n_nomb;}, + _a5W_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _pV_, 1); + }, + _a5X_ = caml_call4(Runtime_ocaml_Runtime[63], _pW_, [0], _a5W_, _a5V_); + } + catch(_a9i_){ + var _a5U_ = caml_wrap_exception(_a9i_); + if(_a5U_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _pU_], 1); + throw caml_maybe_attach_backtrace(_a5U_, 0); + } + var + n_nombre_parts_d832_11 = + caml_call3 + (Runtime_ocaml_Runtime[28], _pX_, Runtime_ocaml_Runtime[15], _a5X_); + try{ + var + _a5Z_ = + function(param){ + var + _a9h_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + mensualite_principale, + coefficient_multiplicateur_d83); + return caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage_arrondies, + _a9h_) + ? caml_call2 + (Runtime_ocaml_Runtime[104], + mensualite_principale, + coefficient_multiplicateur_d83) + : ressources_menage_arrondies; + }, + _a50_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _pZ_, 1); + }, + _a51_ = + [0, + function(param){ + function _a9f_(param){return ressources_menage_arrondies;} + function _a9g_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _p0_, situation_r822_11_13_17); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _p1_, [0], _a9g_, _a9f_); + }], + _a52_ = caml_call4(Runtime_ocaml_Runtime[63], _p2_, _a51_, _a50_, _a5Z_); + } + catch(_a9e_){ + var _a5Y_ = caml_wrap_exception(_a9e_); + if(_a5Y_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _pY_], 1); + throw caml_maybe_attach_backtrace(_a5Y_, 0); + } + var + ressources_menage_avec_d832_18 = + caml_call3 + (Runtime_ocaml_Runtime[28], _p3_, Runtime_ocaml_Runtime[13], _a52_); + function _a53_(aide_finale){ + try{ + var + _a8__ = + function(param){ + var + _a9c_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$226), + _a9d_ = + caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale, + montant_forfaitaire_d832_10); + return caml_call2(Runtime_ocaml_Runtime[128], _a9d_, _a9c_) + ? caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale, + montant_forfaitaire_d832_10) + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$227); + }, + _a8$_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _p5_, 1); + }, + _a9a_ = caml_call4(Runtime_ocaml_Runtime[63], _p6_, [0], _a8$_, _a8__); + return _a9a_; + } + catch(_a9b_){ + var _a89_ = caml_wrap_exception(_a9b_); + if(_a89_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _p4_], 1); + throw caml_maybe_attach_backtrace(_a89_, 0); + } + } + var + traitement_aide_finale_minorat = + caml_call3 + (Runtime_ocaml_Runtime[28], _p7_, Runtime_ocaml_Runtime[10], _a53_); + function _a54_(allocation_mensuelle){ + try{ + var + _a8Z_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[98], + mensualite_principale, + allocation_mensuelle); + }, + _a80_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _p9_, 1); + }, + _a81_ = + [0, + function(param){ + function _a84_(param){ + var + _a88_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + mensualite_principale, + montant_forfaitaire_charges_d8); + return caml_call2 + (Runtime_ocaml_Runtime[98], _a88_, allocation_mensuelle); + } + function _a85_(param){ + var + _a86_ = caml_call3(Runtime_ocaml_Runtime[57], 1999, 6, 30), + _a87_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _a86_); + return caml_call2(Runtime_ocaml_Runtime[29], _p__, _a87_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _p$_, [0], _a85_, _a84_); + }], + _a82_ = + caml_call4(Runtime_ocaml_Runtime[63], _qa_, _a81_, _a80_, _a8Z_); + return _a82_; + } + catch(_a83_){ + var _a8Y_ = caml_wrap_exception(_a83_); + if(_a8Y_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _p8_], 1); + throw caml_maybe_attach_backtrace(_a8Y_, 0); + } + } + var + depense_nette_minimale_d832_10 = + caml_call3 + (Runtime_ocaml_Runtime[28], _qb_, Runtime_ocaml_Runtime[10], _a54_); + try{ + var + _a56_ = + function(param){ + var + _a8V_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _qd_, + Runtime_ocaml_Runtime[16], + date_signature_pret), + _a8W_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _qe_, + calcul_plafond_mensualite_d832), + _a8V_), + _a8X_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _qf_, + Runtime_ocaml_Runtime[13], + _a8W_); + return caml_call2(Runtime_ocaml_Runtime[27], _qg_, _a8X_); + }, + _a57_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _qh_, 1); + }, + _a58_ = + [0, + function(param){ + function _a8N_(param){ + var + _a8P_ = caml_call3 (Runtime_ocaml_Runtime[28], - _Ac_, + _qi_, Runtime_ocaml_Runtime[16], date_signature_pret), - _bcM_= + _a8Q_ = caml_call1 (caml_call2 (Runtime_ocaml_Runtime[26], - _Ad_, + _qj_, calcul_plafond_mensualite_d832), - _bcL_), - _bcN_= + _a8P_), + _a8R_ = caml_call3 (Runtime_ocaml_Runtime[28], - _Ae_, + _qk_, Runtime_ocaml_Runtime[13], - _bcM_); - return caml_call2(Runtime_ocaml_Runtime[27],_Af_,_bcN_)}, - _bab_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ag_,1)}, - _bac_= - [0, - function(param) - {function _bcD_(param) - {var - _bcF_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Ah_, - Runtime_ocaml_Runtime[16], - date_signature_pret), - _bcG_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Ai_, - calcul_plafond_mensualite_d832), - _bcF_), - _bcH_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Aj_, - Runtime_ocaml_Runtime[13], - _bcG_), - plafond_signature= - caml_call2(Runtime_ocaml_Runtime[27],_Ak_,_bcH_), - _bcI_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Al_, - Runtime_ocaml_Runtime[16], - date_entree_logement), - _bcJ_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Am_, - calcul_plafond_mensualite_d832), - _bcI_), - _bcK_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _An_, - Runtime_ocaml_Runtime[13], - _bcJ_), - plafond_entree= - caml_call2(Runtime_ocaml_Runtime[27],_Ao_,_bcK_); - return caml_call2 - (Runtime_ocaml_Runtime[113], - plafond_signature, - plafond_entree) - ?plafond_entree - :plafond_signature} - function _bcE_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29], - _Ap_, - local_habite_premiere_fois_ben)} - return caml_call4(Runtime_ocaml_Runtime[63],_Aq_,[0],_bcE_,_bcD_)}], - _bad_=caml_call4(Runtime_ocaml_Runtime[63],_Ar_,_bac_,_bab_,_baa_)} - catch(_bcC_) - {_bcC_ = caml_wrap_exception(_bcC_); - if(_bcC_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ab_]; - throw _bcC_} - var - plafond_mensualite_d832_10_3_b= - caml_call3 - (Runtime_ocaml_Runtime[28],_As_,Runtime_ocaml_Runtime[13],_bad_); - try - {var - _bae_=function(param){return date_courante}, - _baf_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Au_,1)}, - _bag_=caml_call4(Runtime_ocaml_Runtime[63],_Av_,[0],_baf_,_bae_), - calcul_equivalence_loyer_minim$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_Aw_,Runtime_ocaml_Runtime[16],_bag_)} - catch(_bcB_) - {_bcB_ = caml_wrap_exception(_bcB_); - if(_bcB_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_At_]; - throw _bcB_} - try - {var - _bah_=function(param){return ressources_menage_arrondies}, - _bai_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ay_,1)}, - _baj_=caml_call4(Runtime_ocaml_Runtime[63],_Az_,[0],_bai_,_bah_), - calcul_equivalence_loyer_minim$1= - caml_call3 - (Runtime_ocaml_Runtime[28],_AA_,Runtime_ocaml_Runtime[13],_baj_)} - catch(_bcA_) - {_bcA_ = caml_wrap_exception(_bcA_); - if(_bcA_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ax_]; - throw _bcA_} - try - {var - _bak_=function(param){return 0}, - _bal_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_AC_,1)}, - _bam_=caml_call4(Runtime_ocaml_Runtime[63],_AD_,[0],_bal_,_bak_), - calcul_equivalence_loyer_minim$2= - caml_call3 - (Runtime_ocaml_Runtime[28],_AE_,Runtime_ocaml_Runtime[12],_bam_)} - catch(_bcz_) - {_bcz_ = caml_wrap_exception(_bcz_); - if(_bcz_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_AB_]; - throw _bcz_} - try - {var - _ban_=function(param){return n_nombre_parts_d832_11}, - _bao_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_AG_,1)}, - _bap_=caml_call4(Runtime_ocaml_Runtime[63],_AH_,[0],_bao_,_ban_), - calcul_equivalence_loyer_minim$3= - caml_call3 - (Runtime_ocaml_Runtime[28],_AI_,Runtime_ocaml_Runtime[15],_bap_)} - catch(_bcy_) - {_bcy_ = caml_wrap_exception(_bcy_); - if(_bcy_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_AF_]; - throw _bcy_} - var - _baq_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_AJ_,calcul_equivalence_loyer_minim), - [0, - calcul_equivalence_loyer_minim$0, - calcul_equivalence_loyer_minim$1, - calcul_equivalence_loyer_minim$2, - calcul_equivalence_loyer_minim$3]), - result$1=caml_call2(Runtime_ocaml_Runtime[27],_AK_,_baq_), - calcul_equivalence_loyer_minim$4=result$1[1]; - try - {var - _bar_= - function(param) - {var - _bcv_= - caml_call2 - (Runtime_ocaml_Runtime[104], - coefficient_multiplicateur_d83, - n_nombre_parts_d832_11), - _bcw_= - caml_call2 - (Runtime_ocaml_Runtime[108],ressources_menage_arrondies,_bcv_), - _bcx_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_95$2); - return caml_call2(Runtime_ocaml_Runtime[97],_bcx_,_bcw_)}, - _bas_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_AM_,1)}, - _bat_=caml_call4(Runtime_ocaml_Runtime[63],_AN_,[0],_bas_,_bar_)} - catch(_bcu_) - {_bcu_ = caml_wrap_exception(_bcu_); - if(_bcu_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_AL_]; - throw _bcu_} - var - coefficient_prise_en_charge_d8= - caml_call3 - (Runtime_ocaml_Runtime[28],_AO_,Runtime_ocaml_Runtime[15],_bat_); - function _bau_(allocation_mensuelle) - {try - {var - _bcl_= - function(param) - {var - _bcp_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _AQ_, - Runtime_ocaml_Runtime[13], - allocation_mensuelle), - _bcq_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _AR_, - depense_nette_minimale_d832_10), - _bcp_), - _bcr_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _AS_, - Runtime_ocaml_Runtime[13], - _bcq_), - depense_nette_minimale= - caml_call2(Runtime_ocaml_Runtime[27],_AT_,_bcr_), - _bcs_= - caml_call2 - (Runtime_ocaml_Runtime[104], - ressources_menage_avec_d832_18, - coefficient_multiplicateur_d83$1); - if + _a8Q_), + plafond_signature = + caml_call2(Runtime_ocaml_Runtime[27], _ql_, _a8R_), + _a8S_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _qm_, + Runtime_ocaml_Runtime[16], + date_entree_logement), + _a8T_ = + caml_call1 (caml_call2 - (Runtime_ocaml_Runtime[118],depense_nette_minimale,_bcs_)) - {var - _bct_= - caml_call2 + (Runtime_ocaml_Runtime[26], + _qn_, + calcul_plafond_mensualite_d832), + _a8S_), + _a8U_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _qo_, + Runtime_ocaml_Runtime[13], + _a8T_), + plafond_entree = + caml_call2(Runtime_ocaml_Runtime[27], _qp_, _a8U_); + return caml_call2 + (Runtime_ocaml_Runtime[113], + plafond_signature, + plafond_entree) + ? plafond_entree + : plafond_signature; + } + function _a8O_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], + _qq_, + local_habite_premiere_fois_ben); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _qr_, [0], _a8O_, _a8N_); + }], + _a59_ = caml_call4(Runtime_ocaml_Runtime[63], _qs_, _a58_, _a57_, _a56_); + } + catch(_a8M_){ + var _a55_ = caml_wrap_exception(_a8M_); + if(_a55_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _qc_], 1); + throw caml_maybe_attach_backtrace(_a55_, 0); + } + var + plafond_mensualite_d832_10_3_b = + caml_call3 + (Runtime_ocaml_Runtime[28], _qt_, Runtime_ocaml_Runtime[13], _a59_); + try{ + var + _a5$_ = function(param){return date_courante;}, + _a6a_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _qv_, 1); + }, + _a6b_ = caml_call4(Runtime_ocaml_Runtime[63], _qw_, [0], _a6a_, _a5$_), + calcul_equivalence_loyer_minim$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _qx_, Runtime_ocaml_Runtime[16], _a6b_); + } + catch(_a8L_){ + var _a5__ = caml_wrap_exception(_a8L_); + if(_a5__ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _qu_], 1); + throw caml_maybe_attach_backtrace(_a5__, 0); + } + try{ + var + _a6d_ = function(param){return ressources_menage_arrondies;}, + _a6e_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _qz_, 1); + }, + _a6f_ = caml_call4(Runtime_ocaml_Runtime[63], _qA_, [0], _a6e_, _a6d_), + calcul_equivalence_loyer_minim$1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _qB_, Runtime_ocaml_Runtime[13], _a6f_); + } + catch(_a8K_){ + var _a6c_ = caml_wrap_exception(_a8K_); + if(_a6c_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _qy_], 1); + throw caml_maybe_attach_backtrace(_a6c_, 0); + } + try{ + var + _a6h_ = function(param){return 0;}, + _a6i_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _qD_, 1); + }, + _a6j_ = caml_call4(Runtime_ocaml_Runtime[63], _qE_, [0], _a6i_, _a6h_), + calcul_equivalence_loyer_minim$2 = + caml_call3 + (Runtime_ocaml_Runtime[28], _qF_, Runtime_ocaml_Runtime[12], _a6j_); + } + catch(_a8J_){ + var _a6g_ = caml_wrap_exception(_a8J_); + if(_a6g_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _qC_], 1); + throw caml_maybe_attach_backtrace(_a6g_, 0); + } + try{ + var + _a6l_ = function(param){return n_nombre_parts_d832_11;}, + _a6m_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _qH_, 1); + }, + _a6n_ = caml_call4(Runtime_ocaml_Runtime[63], _qI_, [0], _a6m_, _a6l_), + calcul_equivalence_loyer_minim$3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _qJ_, Runtime_ocaml_Runtime[15], _a6n_); + } + catch(_a8I_){ + var _a6k_ = caml_wrap_exception(_a8I_); + if(_a6k_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _qG_], 1); + throw caml_maybe_attach_backtrace(_a6k_, 0); + } + var + _a6o_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _qK_, calcul_equivalence_loyer_minim), + [0, + calcul_equivalence_loyer_minim$0, + calcul_equivalence_loyer_minim$1, + calcul_equivalence_loyer_minim$2, + calcul_equivalence_loyer_minim$3]), + result$1 = caml_call2(Runtime_ocaml_Runtime[27], _qL_, _a6o_), + calcul_equivalence_loyer_minim$4 = result$1[1]; + try{ + var + _a6q_ = + function(param){ + var + _a8F_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + coefficient_multiplicateur_d83$0, + n_nombre_parts_d832_11), + _a8G_ = + caml_call2 + (Runtime_ocaml_Runtime[108], ressources_menage_arrondies, _a8F_), + _a8H_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_95$2); + return caml_call2(Runtime_ocaml_Runtime[97], _a8H_, _a8G_); + }, + _a6r_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _qN_, 1); + }, + _a6s_ = caml_call4(Runtime_ocaml_Runtime[63], _qO_, [0], _a6r_, _a6q_); + } + catch(_a8E_){ + var _a6p_ = caml_wrap_exception(_a8E_); + if(_a6p_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _qM_], 1); + throw caml_maybe_attach_backtrace(_a6p_, 0); + } + var + coefficient_prise_en_charge_d8 = + caml_call3 + (Runtime_ocaml_Runtime[28], _qP_, Runtime_ocaml_Runtime[15], _a6s_); + function _a6t_(allocation_mensuelle){ + try{ + var + _a8v_ = + function(param){ + var + _a8z_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _qR_, + Runtime_ocaml_Runtime[13], + allocation_mensuelle), + _a8A_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _qS_, + depense_nette_minimale_d832_10), + _a8z_), + _a8B_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _qT_, + Runtime_ocaml_Runtime[13], + _a8A_), + depense_nette_minimale = + caml_call2(Runtime_ocaml_Runtime[27], _qU_, _a8B_), + _a8C_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + ressources_menage_avec_d832_18, + coefficient_multiplicateur_d83$1); + if + (! + caml_call2 + (Runtime_ocaml_Runtime[118], depense_nette_minimale, _a8C_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$228); + var + _a8D_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + ressources_menage_avec_d832_18, + coefficient_multiplicateur_d83$1); + return caml_call2 + (Runtime_ocaml_Runtime[98], _a8D_, depense_nette_minimale); + }, + _a8w_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _qV_, 1); + }, + _a8x_ = caml_call4(Runtime_ocaml_Runtime[63], _qW_, [0], _a8w_, _a8v_); + return _a8x_; + } + catch(_a8y_){ + var _a8u_ = caml_wrap_exception(_a8y_); + if(_a8u_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _qQ_], 1); + throw caml_maybe_attach_backtrace(_a8u_, 0); + } + } + var + abattement_depense_nette_minim = + caml_call3 + (Runtime_ocaml_Runtime[28], _qX_, Runtime_ocaml_Runtime[10], _a6t_); + try{ + var + _a6v_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _a6w_ = function(param){return 0;}, + _a6x_ = + [0, + function(param){ + function _a79_(param){ + if(! copropriete) return plafond_mensualite_d832_10_3_b; + var _a8t_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$8); + return caml_call2 (Runtime_ocaml_Runtime[104], - ressources_menage_avec_d832_18, - coefficient_multiplicateur_d83$1); + plafond_mensualite_d832_10_3_b, + _a8t_); + } + function _a7__(param){ + var + _a8r_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _a8s_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a8r_); + return caml_call2(Runtime_ocaml_Runtime[29], _qZ_, _a8s_); + } + var + _a7$_ = + [0, + function(param){ + function _a8a_(param){ + if(! copropriete) return plafond_mensualite_d832_10_3_b; + var _a8q_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$9); return caml_call2 - (Runtime_ocaml_Runtime[98],_bct_,depense_nette_minimale)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$287)}, - _bcm_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_AU_,1)}, - _bcn_=caml_call4(Runtime_ocaml_Runtime[63],_AV_,[0],_bcm_,_bcl_); - return _bcn_} - catch(_bco_) - {_bco_ = caml_wrap_exception(_bco_); - if(_bco_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_AP_]; - throw _bco_}} - var - abattement_depense_nette_minim= - caml_call3 - (Runtime_ocaml_Runtime[28],_AW_,Runtime_ocaml_Runtime[10],_bau_); - try - {var - _bav_=function(param){throw Runtime_ocaml_Runtime[2]}, - _baw_=function(param){return 0}, - _bax_= - [0, - function(param) - {function _bb0_(param) - {if(copropriete) - {var _bck_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$8); - return caml_call2 - (Runtime_ocaml_Runtime[104], - plafond_mensualite_d832_10_3_b, - _bck_)} - return plafond_mensualite_d832_10_3_b} - function _bb1_(param) - {var - _bci_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bcj_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bci_); - return caml_call2(Runtime_ocaml_Runtime[29],_AY_,_bcj_)} - var - _bb2_= - [0, - function(param) - {function _bb3_(param) - {if(copropriete) - {var _bch_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$9); - return caml_call2 - (Runtime_ocaml_Runtime[104], - plafond_mensualite_d832_10_3_b, - _bch_)} - return plafond_mensualite_d832_10_3_b} - function _bb4_(param) - {var - _bcc_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bcd_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bcc_), - _bce_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bcf_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bce_), - _bcg_=caml_call2(Runtime_ocaml_Runtime[83],_bcf_,_bcd_); - return caml_call2(Runtime_ocaml_Runtime[29],_AZ_,_bcg_)} - var - _bb5_= - [0, - function(param) - {function _bb6_(param) - {if(copropriete) - {var - _bcb_= - caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$10); - return caml_call2 - (Runtime_ocaml_Runtime[104], - plafond_mensualite_d832_10_3_b, - _bcb_)} - return plafond_mensualite_d832_10_3_b} - function _bb7_(param) - {var - _bb8_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bb9_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bb8_), - _bb__=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bb$_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bb__), - _bca_=caml_call2(Runtime_ocaml_Runtime[83],_bb$_,_bb9_); - return caml_call2(Runtime_ocaml_Runtime[29],_A0_,_bca_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_A1_,[0],_bb7_,_bb6_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_A2_,_bb5_,_bb4_,_bb3_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_A3_,_bb2_,_bb1_,_bb0_)}], - _bay_=caml_call4(Runtime_ocaml_Runtime[63],_A4_,_bax_,_baw_,_bav_)} - catch(_bbZ_) - {_bbZ_ = caml_wrap_exception(_bbZ_); - if(_bbZ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_AX_]; - throw _bbZ_} - var - plafond_mensualite_d832_10_3_c= - caml_call3 - (Runtime_ocaml_Runtime[28],_A5_,Runtime_ocaml_Runtime[13],_bay_); - try - {var - _baz_=function(param){throw Runtime_ocaml_Runtime[2]}, - _baA_=function(param){return 0}, - _baB_= - function(param) - {function _bbW_(param){return calcul_equivalence_loyer_minim$4} - function _bbX_(param) - {switch(type_travaux_logement[0]) - {case 0:var _bbY_=0;break; - case 1:var _bbY_=1;break; - default:var _bbY_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_A7_,_bbY_)} - return caml_call4(Runtime_ocaml_Runtime[63],_A8_,[0],_bbX_,_bbW_)}, - _baC_= - [0, - function(param) - {function _bbH_(param) - {var - ressources_menage_arrondies$0= - caml_call1 - (Runtime_ocaml_Runtime[70],ressources_menage_arrondies), - montant_limite_tranches_d832_1$0= - caml_call1 - (Runtime_ocaml_Runtime[70],montant_limite_tranches_d832_1), - _bbM_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$14), - _bbN_= - caml_call2 - (Runtime_ocaml_Runtime[103], - montant_limite_tranches_d832_1$0, - n_nombre_parts_d832_11); - if - (caml_call2 - (Runtime_ocaml_Runtime[117], - ressources_menage_arrondies$0, - _bbN_)) + (Runtime_ocaml_Runtime[104], + plafond_mensualite_d832_10_3_b, + _a8q_); + } + function _a8b_(param){ var - _bbO_= - caml_call2 - (Runtime_ocaml_Runtime[103], - ressources_menage_arrondies$0, - taux_tranche_inferieure_d832_1); - else - var - _bbV_= - caml_call2 - (Runtime_ocaml_Runtime[103], - montant_limite_tranches_d832_1$0, - n_nombre_parts_d832_11), - _bbO_= - caml_call2 - (Runtime_ocaml_Runtime[103], - _bbV_, - taux_tranche_inferieure_d832_1); + _a8l_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _a8m_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _a8l_), + _a8n_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _a8o_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a8n_), + _a8p_ = caml_call2(Runtime_ocaml_Runtime[83], _a8o_, _a8m_); + return caml_call2(Runtime_ocaml_Runtime[29], _q0_, _a8p_); + } var - _bbP_= - caml_call2 - (Runtime_ocaml_Runtime[103], - montant_limite_tranches_d832_1$0, - n_nombre_parts_d832_11); - if - (caml_call2 - (Runtime_ocaml_Runtime[127], - ressources_menage_arrondies$0, - _bbP_)) - var - _bbQ_= - caml_call2 - (Runtime_ocaml_Runtime[103], - montant_limite_tranches_d832_1$0, - n_nombre_parts_d832_11), - _bbR_= - caml_call2 - (Runtime_ocaml_Runtime[97], - ressources_menage_arrondies$0, - _bbQ_), - _bbS_= - caml_call2 - (Runtime_ocaml_Runtime[103], - _bbR_, - taux_tranche_superieure_d832_1); - else - var _bbS_=caml_call1(Runtime_ocaml_Runtime[39],cst_0$288); - var - _bbT_=caml_call2(Runtime_ocaml_Runtime[92],_bbS_,_bbO_), - _bbU_=caml_call2(Runtime_ocaml_Runtime[107],_bbT_,_bbM_); - return caml_call1(Runtime_ocaml_Runtime[71],_bbU_)} - function _bbI_(param) - {switch(type_travaux_logement[0]) - {case 0:var _bbJ_=0;break; - case 1:var _bbJ_=0;break; - default:var _bbJ_=1} - switch(type_travaux_logement[0]) - {case 0:var _bbK_=1;break; - case 1:var _bbK_=0;break; - default:var _bbK_=0} - var _bbL_=caml_call2(Runtime_ocaml_Runtime[84],_bbK_,_bbJ_); - return caml_call2(Runtime_ocaml_Runtime[29],_A9_,_bbL_)} - return caml_call4(Runtime_ocaml_Runtime[63],_A__,[0],_bbI_,_bbH_)}, - _baB_], - _baD_=caml_call4(Runtime_ocaml_Runtime[63],_A$_,_baC_,_baA_,_baz_)} - catch(_bbG_) - {_bbG_ = caml_wrap_exception(_bbG_); - if(_bbG_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_A6_]; - throw _bbG_} - var - mensualite_minimale= - caml_call3 - (Runtime_ocaml_Runtime[28],_Ba_,Runtime_ocaml_Runtime[13],_baD_); - try - {var - _baE_= - function(param) - {var - _bbA_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$10), - _bbB_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$11), - _bbC_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_005$2), - _bbD_= + _a8c_ = + [0, + function(param){ + function _a8d_(param){ + if(! copropriete) return plafond_mensualite_d832_10_3_b; + var + _a8k_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$10); + return caml_call2 + (Runtime_ocaml_Runtime[104], + plafond_mensualite_d832_10_3_b, + _a8k_); + } + function _a8e_(param){ + var + _a8f_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _a8g_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a8f_), + _a8h_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _a8i_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _a8h_), + _a8j_ = caml_call2(Runtime_ocaml_Runtime[83], _a8i_, _a8g_); + return caml_call2(Runtime_ocaml_Runtime[29], _q1_, _a8j_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _q2_, [0], _a8e_, _a8d_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _q3_, _a8c_, _a8b_, _a8a_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _q4_, _a7$_, _a7__, _a79_); + }], + _a6y_ = caml_call4(Runtime_ocaml_Runtime[63], _q5_, _a6x_, _a6w_, _a6v_); + } + catch(_a78_){ + var _a6u_ = caml_wrap_exception(_a78_); + if(_a6u_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _qY_], 1); + throw caml_maybe_attach_backtrace(_a6u_, 0); + } + var + plafond_mensualite_d832_10_3_c = + caml_call3 + (Runtime_ocaml_Runtime[28], _q6_, Runtime_ocaml_Runtime[13], _a6y_); + try{ + var + _a6A_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _a6B_ = function(param){return 0;}, + _a6C_ = + function(param){ + function _a75_(param){return calcul_equivalence_loyer_minim$4;} + function _a76_(param){ + switch(type_travaux_logement[0]){ + case 0: + var _a77_ = 0; break; + case 1: + var _a77_ = 1; break; + default: var _a77_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _q8_, _a77_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _q9_, [0], _a76_, _a75_); + }, + _a6D_ = + [0, + function(param){ + function _a7Q_(param){ + var + ressources_menage_arrondies$0 = + caml_call1 + (Runtime_ocaml_Runtime[70], ressources_menage_arrondies), + montant_limite_tranches_d832_1$0 = + caml_call1 + (Runtime_ocaml_Runtime[70], montant_limite_tranches_d832_1), + _a7V_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$2), + _a7W_ = caml_call2 - (Runtime_ocaml_Runtime[97], - coefficient_prise_en_charge_d8, - _bbC_), - _bbE_=caml_call2(Runtime_ocaml_Runtime[103],_bbD_,_bbB_), - _bbF_=caml_call1(Runtime_ocaml_Runtime[78],_bbE_); - return caml_call2(Runtime_ocaml_Runtime[107],_bbF_,_bbA_)}, - _baF_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Bc_,1)}, - _baG_=caml_call4(Runtime_ocaml_Runtime[63],_Bd_,[0],_baF_,_baE_)} - catch(_bbz_) - {_bbz_ = caml_wrap_exception(_bbz_); - if(_bbz_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Bb_]; - throw _bbz_} - var - coefficient_prise_en_charge_d8$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_Be_,Runtime_ocaml_Runtime[15],_baG_); - function _baH_(aide_finale) - {try - {var - _bbn_= - function(param) - {var - _bbr_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Bg_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bbs_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Bh_, - traitement_aide_finale_minorat), - _bbr_), - _bbt_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Bi_, - Runtime_ocaml_Runtime[13], - _bbs_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_Bj_,_bbt_), - _bbu_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Bk_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _bbv_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Bl_, - abattement_depense_nette_minim), - _bbu_), - _bbw_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Bm_, - Runtime_ocaml_Runtime[13], - _bbv_), - _bbx_=caml_call2(Runtime_ocaml_Runtime[27],_Bn_,_bbw_), - aide_finale$1= - caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,_bbx_), - _bby_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$289); - return caml_call2 - (Runtime_ocaml_Runtime[128],aide_finale$1,_bby_) - ?aide_finale$1 - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$290)}, - _bbo_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Bo_,1)}, - _bbp_=caml_call4(Runtime_ocaml_Runtime[63],_Bp_,[0],_bbo_,_bbn_); - return _bbp_} - catch(_bbq_) - {_bbq_ = caml_wrap_exception(_bbq_); - if(_bbq_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Bf_]; - throw _bbq_}} - var - traitement_aide_finale_abattem= - caml_call3 - (Runtime_ocaml_Runtime[28],_Bq_,Runtime_ocaml_Runtime[10],_baH_); - try - {var - _baI_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[123], - mensualite_principale, - plafond_mensualite_d832_10_3_c) - ?plafond_mensualite_d832_10_3_c - :mensualite_principale}, - _baJ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Bs_,1)}, - _baK_=caml_call4(Runtime_ocaml_Runtime[63],_Bt_,[0],_baJ_,_baI_)} - catch(_bbm_) - {_bbm_ = caml_wrap_exception(_bbm_); - if(_bbm_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Br_]; - throw _bbm_} - var - mensualite_eligible= - caml_call3 - (Runtime_ocaml_Runtime[28],_Bu_,Runtime_ocaml_Runtime[13],_baK_); - try - {var - _baL_= - function(param) - {var _bbl_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_95$3); - return caml_call2 - (Runtime_ocaml_Runtime[127], - coefficient_prise_en_charge_d8$0, - _bbl_) - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_95$4) - :coefficient_prise_en_charge_d8$0}, - _baM_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Bw_,1)}, - _baN_=caml_call4(Runtime_ocaml_Runtime[63],_Bx_,[0],_baM_,_baL_)} - catch(_bbk_) - {_bbk_ = caml_wrap_exception(_bbk_); - if(_bbk_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Bv_]; - throw _bbk_} - var - coefficient_prise_en_charge_d8$1= - caml_call3 - (Runtime_ocaml_Runtime[28],_By_,Runtime_ocaml_Runtime[15],_baN_); - function _baO_(aide_finale) - {try - {var - _ba7_= - function(param) - {var - _ba$_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _BA_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bba_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _BB_, - traitement_aide_finale_abattem), - _ba$_), - _bbb_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _BC_, - Runtime_ocaml_Runtime[13], - _bba_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_BD_,_bbb_), - _bbc_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _BE_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _bbd_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _BF_, - contributions_sociales_dot_mon), - _bbc_), - _bbe_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _BG_, - Runtime_ocaml_Runtime[13], - _bbd_), - crds=caml_call2(Runtime_ocaml_Runtime[27],_BH_,_bbe_), - _bbf_=caml_call1(Runtime_ocaml_Runtime[31],cst_50$1), - _bbg_=caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,crds), - _bbh_=caml_call2(Runtime_ocaml_Runtime[98],_bbg_,_bbf_), - aide_finale_moins_crds_arrondi= - caml_call1(Runtime_ocaml_Runtime[77],_bbh_), - _bbi_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$291), - _bbj_= - caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds); - return caml_call2(Runtime_ocaml_Runtime[128],_bbj_,_bbi_) - ?caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds) - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$292)}, - _ba8_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_BI_,1)}, - _ba9_=caml_call4(Runtime_ocaml_Runtime[63],_BJ_,[0],_ba8_,_ba7_); - return _ba9_} - catch(_ba__) - {_ba__ = caml_wrap_exception(_ba__); - if(_ba__ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Bz_]; - throw _ba__}} - var - traitement_aide_finale_contrib= - caml_call3 - (Runtime_ocaml_Runtime[28],_BK_,Runtime_ocaml_Runtime[10],_baO_); - try - {var - _baP_= - function(param) - {var - _ba4_= - caml_call2 - (Runtime_ocaml_Runtime[93], - mensualite_eligible, - montant_forfaitaire_charges_d8), - _ba5_= - caml_call2(Runtime_ocaml_Runtime[98],_ba4_,mensualite_minimale), - aide_finale= - caml_call2 - (Runtime_ocaml_Runtime[104], - _ba5_, - coefficient_prise_en_charge_d8$1), - _ba6_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$293); - return caml_call2(Runtime_ocaml_Runtime[113],aide_finale,_ba6_) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$294) - :aide_finale}, - _baQ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_BM_,1)}, - _baR_=caml_call4(Runtime_ocaml_Runtime[63],_BN_,[0],_baQ_,_baP_)} - catch(_ba3_) - {_ba3_ = caml_wrap_exception(_ba3_); - if(_ba3_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_BL_]; - throw _ba3_} - var - aide_finale_formule= - caml_call3 - (Runtime_ocaml_Runtime[28],_BO_,Runtime_ocaml_Runtime[13],_baR_); - function _baS_(aide_finale) - {try - {var - _baW_= - function(param) - {var - _ba0_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _BQ_, - Runtime_ocaml_Runtime[13], - aide_finale), - _ba1_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _BR_, - traitement_aide_finale_contrib), - _ba0_), - _ba2_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _BS_, - Runtime_ocaml_Runtime[13], - _ba1_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_BT_,_ba2_); - return caml_call2 - (Runtime_ocaml_Runtime[113], - aide_finale$0, - montant_minimal_aide_d832_10) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$295) - :aide_finale$0}, - _baX_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_BU_,1)}, - _baY_=caml_call4(Runtime_ocaml_Runtime[63],_BV_,[0],_baX_,_baW_); - return _baY_} - catch(_baZ_) - {_baZ_ = caml_wrap_exception(_baZ_); - if(_baZ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_BP_]; - throw _baZ_}} - var - traitement_aide_finale_montant= - caml_call3 - (Runtime_ocaml_Runtime[28],_BW_,Runtime_ocaml_Runtime[10],_baS_); - try - {var - _baT_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _baU_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_baT_)} - catch(_baV_) - {_baV_ = caml_wrap_exception(_baV_); - if(_baV_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_BX_]; - throw _baV_} - if(_baU_) - return [0, - mensualite_eligible, - mensualite_minimale, - coefficient_prise_en_charge_d8$1, - aide_finale_formule, - traitement_aide_finale_montant]; - throw [0,Runtime_ocaml_Runtime[3],_BY_]} - function ressources_aides_personnelle_l(ressources_aides_personnelle_l) - {var - ressources_demandeur=ressources_aides_personnelle_l[1], - ressources_conjoint=ressources_aides_personnelle_l[2], - personnes_vivant_habituellemen=ressources_aides_personnelle_l[3], - demandeur_exerce_activite_remu=ressources_aides_personnelle_l[4], - conjoint_exerce_activite_remun=ressources_aides_personnelle_l[5], - personnes_a_charge=ressources_aides_personnelle_l[6], - situation_familiale=ressources_aides_personnelle_l[7], - mode_occupation=ressources_aides_personnelle_l[8], - condition_age_bourse_enseignem=ressources_aides_personnelle_l[9], - demandeur_poursuit_des_etudes=ressources_aides_personnelle_l[10], - date_demande_ou_reexamen_droit=ressources_aides_personnelle_l[11], - paiement_logement_distinct_pro=ressources_aides_personnelle_l[12]; - try - {var - _a_r_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_258900)}, - _a_s_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_B0_,1)}, - _a_t_=caml_call4(Runtime_ocaml_Runtime[63],_B1_,[0],_a_s_,_a_r_)} - catch(_a$l_) - {_a$l_ = caml_wrap_exception(_a$l_); - if(_a$l_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_BZ_]; - throw _a$l_} - var - montant_forfaitaire_r_822_8= - caml_call3 - (Runtime_ocaml_Runtime[28],_B2_,Runtime_ocaml_Runtime[13],_a_t_); - try - {var - _a_u_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_9500)}, - _a_v_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_B4_,1)}, - _a_w_=caml_call4(Runtime_ocaml_Runtime[63],_B5_,[0],_a_v_,_a_u_)} - catch(_a$k_) - {_a$k_ = caml_wrap_exception(_a$k_); - if(_a$k_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_B3_]; - throw _a$k_} - var - montant_forfaitaire_r_822_7= - caml_call3 - (Runtime_ocaml_Runtime[28],_B6_,Runtime_ocaml_Runtime[13],_a_w_); - try - {var - _a_x_= - function(param) - {function _a$g_(personne){return personne[2]} + (Runtime_ocaml_Runtime[103], + montant_limite_tranches_d832_1$0, + n_nombre_parts_d832_11); + if + (caml_call2 + (Runtime_ocaml_Runtime[117], + ressources_menage_arrondies$0, + _a7W_)) var - _a$h_= + _a7X_ = + caml_call2 + (Runtime_ocaml_Runtime[103], + ressources_menage_arrondies$0, + taux_tranche_inferieure_d832_1); + else + var + _a74_ = + caml_call2 + (Runtime_ocaml_Runtime[103], + montant_limite_tranches_d832_1$0, + n_nombre_parts_d832_11), + _a7X_ = + caml_call2 + (Runtime_ocaml_Runtime[103], + _a74_, + taux_tranche_inferieure_d832_1); + var + _a7Y_ = caml_call2 - (Runtime_ocaml_Runtime[87], - _a$g_, - personnes_vivant_habituellemen), - _a$i_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$296); - function _a$j_(sum1,sum2) - {return caml_call2(Runtime_ocaml_Runtime[93],sum1,sum2)} - return caml_call3(Runtime_ocaml_Runtime[88],_a$j_,_a$i_,_a$h_)}, - _a_y_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_B8_,1)}, - _a_z_=caml_call4(Runtime_ocaml_Runtime[63],_B9_,[0],_a_y_,_a_x_)} - catch(_a$f_) - {_a$f_ = caml_wrap_exception(_a$f_); - if(_a$f_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_B7_]; - throw _a$f_} + (Runtime_ocaml_Runtime[103], + montant_limite_tranches_d832_1$0, + n_nombre_parts_d832_11); + if + (caml_call2 + (Runtime_ocaml_Runtime[127], + ressources_menage_arrondies$0, + _a7Y_)) + var + _a7Z_ = + caml_call2 + (Runtime_ocaml_Runtime[103], + montant_limite_tranches_d832_1$0, + n_nombre_parts_d832_11), + _a70_ = + caml_call2 + (Runtime_ocaml_Runtime[97], + ressources_menage_arrondies$0, + _a7Z_), + _a71_ = + caml_call2 + (Runtime_ocaml_Runtime[103], + _a70_, + taux_tranche_superieure_d832_1); + else + var _a71_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0$229); + var + _a72_ = caml_call2(Runtime_ocaml_Runtime[92], _a71_, _a7X_), + _a73_ = caml_call2(Runtime_ocaml_Runtime[107], _a72_, _a7V_); + return caml_call1(Runtime_ocaml_Runtime[71], _a73_); + } + function _a7R_(param){ + switch(type_travaux_logement[0]){ + case 0: + var _a7S_ = 0; break; + case 1: + var _a7S_ = 0; break; + default: var _a7S_ = 1; + } + switch(type_travaux_logement[0]){ + case 0: + var _a7T_ = 1; break; + case 1: + var _a7T_ = 0; break; + default: var _a7T_ = 0; + } + var _a7U_ = caml_call2(Runtime_ocaml_Runtime[84], _a7T_, _a7S_); + return caml_call2(Runtime_ocaml_Runtime[29], _q__, _a7U_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _q$_, [0], _a7R_, _a7Q_); + }, + _a6C_], + _a6E_ = caml_call4(Runtime_ocaml_Runtime[63], _ra_, _a6D_, _a6B_, _a6A_); + } + catch(_a7P_){ + var _a6z_ = caml_wrap_exception(_a7P_); + if(_a6z_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _q7_], 1); + throw caml_maybe_attach_backtrace(_a6z_, 0); + } + var + mensualite_minimale = + caml_call3 + (Runtime_ocaml_Runtime[28], _rb_, Runtime_ocaml_Runtime[13], _a6E_); + try{ + var + _a6G_ = + function(param){ + var + _a7J_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$10), + _a7K_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$11), + _a7L_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_005$2), + _a7M_ = + caml_call2 + (Runtime_ocaml_Runtime[97], + coefficient_prise_en_charge_d8, + _a7L_), + _a7N_ = caml_call2(Runtime_ocaml_Runtime[103], _a7M_, _a7K_), + _a7O_ = caml_call1(Runtime_ocaml_Runtime[78], _a7N_); + return caml_call2(Runtime_ocaml_Runtime[107], _a7O_, _a7J_); + }, + _a6H_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _rd_, 1); + }, + _a6I_ = caml_call4(Runtime_ocaml_Runtime[63], _re_, [0], _a6H_, _a6G_); + } + catch(_a7I_){ + var _a6F_ = caml_wrap_exception(_a7I_); + if(_a6F_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _rc_], 1); + throw caml_maybe_attach_backtrace(_a6F_, 0); + } + var + coefficient_prise_en_charge_d8$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _rf_, Runtime_ocaml_Runtime[15], _a6I_); + function _a6J_(aide_finale){ + try{ var - ressources_personnes_vivant_ha= - caml_call3 - (Runtime_ocaml_Runtime[28],_B__,Runtime_ocaml_Runtime[13],_a_z_); - try - {var - _a_A_= - function(param) - {var - _a$b_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$297), - _a$c_=caml_call1(Runtime_ocaml_Runtime[68],personnes_a_charge); - if(caml_call2(Runtime_ocaml_Runtime[86],_a$c_,_a$b_)) - var abattement=caml_call1(Runtime_ocaml_Runtime[31],cst_0$298); - else - var - _a$d_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$46), - _a$e_=caml_call1(Runtime_ocaml_Runtime[68],personnes_a_charge), - abattement= - caml_call2(Runtime_ocaml_Runtime[116],_a$e_,_a$d_) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_90100) - :caml_call1(Runtime_ocaml_Runtime[31],cst_135000); - switch(situation_familiale[0]) - {case 0:return abattement; - case 1:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$299); - case 2:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$300); - case 3:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$301); - case 4:return abattement; - default:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$302)}}, - _a_B_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ca_,1)}, - _a_C_=caml_call4(Runtime_ocaml_Runtime[63],_Cb_,[0],_a_B_,_a_A_)} - catch(_a$a_) - {_a$a_ = caml_wrap_exception(_a$a_); - if(_a$a_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_B$_]; - throw _a$a_} - caml_call3 - (Runtime_ocaml_Runtime[28],_Cc_,Runtime_ocaml_Runtime[13],_a_C_); - try - {var - _a_D_=function(param){return date_demande_ou_reexamen_droit}, - _a_E_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ce_,1)}, - _a_F_=caml_call4(Runtime_ocaml_Runtime[63],_Cf_,[0],_a_E_,_a_D_), - base_mensuelle_allocations_fam= - caml_call3 - (Runtime_ocaml_Runtime[28],_Cg_,Runtime_ocaml_Runtime[16],_a_F_)} - catch(_a_$_) - {_a_$_ = caml_wrap_exception(_a_$_); - if(_a_$_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Cd_]; - throw _a_$_} + _a7w_ = + function(param){ + var + _a7A_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _rh_, + Runtime_ocaml_Runtime[13], + aide_finale), + _a7B_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _ri_, + traitement_aide_finale_minorat), + _a7A_), + _a7C_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _rj_, + Runtime_ocaml_Runtime[13], + _a7B_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _rk_, _a7C_), + _a7D_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _rl_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _a7E_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _rm_, + abattement_depense_nette_minim), + _a7D_), + _a7F_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _rn_, + Runtime_ocaml_Runtime[13], + _a7E_), + _a7G_ = caml_call2(Runtime_ocaml_Runtime[27], _ro_, _a7F_), + aide_finale$1 = + caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, _a7G_), + _a7H_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$230); + return caml_call2(Runtime_ocaml_Runtime[128], aide_finale$1, _a7H_) + ? aide_finale$1 + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$231); + }, + _a7x_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _rp_, 1); + }, + _a7y_ = caml_call4(Runtime_ocaml_Runtime[63], _rq_, [0], _a7x_, _a7w_); + return _a7y_; + } + catch(_a7z_){ + var _a7v_ = caml_wrap_exception(_a7z_); + if(_a7v_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _rg_], 1); + throw caml_maybe_attach_backtrace(_a7v_, 0); + } + } + var + traitement_aide_finale_abattem = + caml_call3 + (Runtime_ocaml_Runtime[28], _rr_, Runtime_ocaml_Runtime[10], _a6J_); + try{ + var + _a6L_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[123], + mensualite_principale, + plafond_mensualite_d832_10_3_c) + ? plafond_mensualite_d832_10_3_c + : mensualite_principale; + }, + _a6M_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _rt_, 1); + }, + _a6N_ = caml_call4(Runtime_ocaml_Runtime[63], _ru_, [0], _a6M_, _a6L_); + } + catch(_a7u_){ + var _a6K_ = caml_wrap_exception(_a7u_); + if(_a6K_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _rs_], 1); + throw caml_maybe_attach_backtrace(_a6K_, 0); + } + var + mensualite_eligible = + caml_call3 + (Runtime_ocaml_Runtime[28], _rv_, Runtime_ocaml_Runtime[13], _a6N_); + try{ + var + _a6P_ = + function(param){ + var _a7t_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_95$3); + return caml_call2 + (Runtime_ocaml_Runtime[127], + coefficient_prise_en_charge_d8$0, + _a7t_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_95$4) + : coefficient_prise_en_charge_d8$0; + }, + _a6Q_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _rx_, 1); + }, + _a6R_ = caml_call4(Runtime_ocaml_Runtime[63], _ry_, [0], _a6Q_, _a6P_); + } + catch(_a7s_){ + var _a6O_ = caml_wrap_exception(_a7s_); + if(_a6O_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _rw_], 1); + throw caml_maybe_attach_backtrace(_a6O_, 0); + } + var + coefficient_prise_en_charge_d8$1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _rz_, Runtime_ocaml_Runtime[15], _a6R_); + function _a6S_(aide_finale){ + try{ var - _a_G_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_Ch_,base_mensuelle_allocations_fam$5), - [0,base_mensuelle_allocations_fam]), - result=caml_call2(Runtime_ocaml_Runtime[27],_Ci_,_a_G_), - base_mensuelle_allocations_fam$0=result[1]; - try - {var - _a_H_= - function(param) - {return 0 === paiement_logement_distinct_pro[0] - ?montant_forfaitaire_r_822_8 - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$303)}, - _a_I_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ck_,1)}, - _a_J_=caml_call4(Runtime_ocaml_Runtime[63],_Cl_,[0],_a_I_,_a_H_)} - catch(_a___) - {_a___ = caml_wrap_exception(_a___); - if(_a___ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Cj_]; - throw _a___} - caml_call3 - (Runtime_ocaml_Runtime[28],_Cm_,Runtime_ocaml_Runtime[13],_a_J_); - try - {var - _a_K_= - function(param) - {var - _a_9_= - caml_call2 - (Runtime_ocaml_Runtime[93], - ressources_demandeur, - ressources_conjoint); - return caml_call2 + _a7d_ = + function(param){ + var + _a7h_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _rB_, + Runtime_ocaml_Runtime[13], + aide_finale), + _a7i_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _rC_, + traitement_aide_finale_abattem), + _a7h_), + _a7j_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _rD_, + Runtime_ocaml_Runtime[13], + _a7i_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _rE_, _a7j_), + _a7k_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _rF_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _a7l_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _rG_, + contributions_sociales_dot_mon), + _a7k_), + _a7m_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _rH_, + Runtime_ocaml_Runtime[13], + _a7l_), + crds = caml_call2(Runtime_ocaml_Runtime[27], _rI_, _a7m_), + _a7n_ = caml_call1(Runtime_ocaml_Runtime[31], cst_50$1), + _a7o_ = caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, crds), + _a7p_ = caml_call2(Runtime_ocaml_Runtime[98], _a7o_, _a7n_), + aide_finale_moins_crds_arrondi = + caml_call1(Runtime_ocaml_Runtime[77], _a7p_), + _a7q_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$232), + _a7r_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds); + return caml_call2(Runtime_ocaml_Runtime[128], _a7r_, _a7q_) + ? caml_call2 (Runtime_ocaml_Runtime[93], - _a_9_, - ressources_personnes_vivant_ha)}, - _a_L_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Co_,1)}, - _a_M_= - [0, - function(param) - {function _a_2_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$304)} - function _a_3_(param) - {var - _a_4_= - caml_call2 - (Runtime_ocaml_Runtime[83], - condition_age_bourse_enseignem, - demandeur_poursuit_des_etudes); - switch(mode_occupation[0]) - {case 0:var _a_5_=0;break; - case 1:var _a_5_=1;break; - case 2:var _a_5_=0;break; - case 3:var _a_5_=0;break; - default:var _a_5_=0} - switch(mode_occupation[0]) - {case 0:var _a_6_=1;break; - case 1:var _a_6_=0;break; - case 2:var _a_6_=0;break; - case 3:var _a_6_=0;break; - default:var _a_6_=0} - var - _a_7_=caml_call2(Runtime_ocaml_Runtime[84],_a_6_,_a_5_), - _a_8_=caml_call2(Runtime_ocaml_Runtime[83],_a_7_,_a_4_); - return caml_call2(Runtime_ocaml_Runtime[29],_Cp_,_a_8_)} - return caml_call4(Runtime_ocaml_Runtime[63],_Cq_,[0],_a_3_,_a_2_)}], - _a_N_=caml_call4(Runtime_ocaml_Runtime[63],_Cr_,_a_M_,_a_L_,_a_K_)} - catch(_a_1_) - {_a_1_ = caml_wrap_exception(_a_1_); - if(_a_1_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Cn_]; - throw _a_1_} + aide_finale_moins_crds_arrondi, + crds) + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$233); + }, + _a7e_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _rJ_, 1); + }, + _a7f_ = caml_call4(Runtime_ocaml_Runtime[63], _rK_, [0], _a7e_, _a7d_); + return _a7f_; + } + catch(_a7g_){ + var _a7c_ = caml_wrap_exception(_a7g_); + if(_a7c_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _rA_], 1); + throw caml_maybe_attach_backtrace(_a7c_, 0); + } + } + var + traitement_aide_finale_contrib = + caml_call3 + (Runtime_ocaml_Runtime[28], _rL_, Runtime_ocaml_Runtime[10], _a6S_); + try{ + var + _a6U_ = + function(param){ + var + _a6$_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + mensualite_eligible, + montant_forfaitaire_charges_d8), + _a7a_ = + caml_call2(Runtime_ocaml_Runtime[98], _a6$_, mensualite_minimale), + aide_finale = + caml_call2 + (Runtime_ocaml_Runtime[104], + _a7a_, + coefficient_prise_en_charge_d8$1), + _a7b_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$234); + return caml_call2(Runtime_ocaml_Runtime[113], aide_finale, _a7b_) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$235) + : aide_finale; + }, + _a6V_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _rN_, 1); + }, + _a6W_ = caml_call4(Runtime_ocaml_Runtime[63], _rO_, [0], _a6V_, _a6U_); + } + catch(_a6__){ + var _a6T_ = caml_wrap_exception(_a6__); + if(_a6T_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _rM_], 1); + throw caml_maybe_attach_backtrace(_a6T_, 0); + } + var + aide_finale_formule = + caml_call3 + (Runtime_ocaml_Runtime[28], _rP_, Runtime_ocaml_Runtime[13], _a6W_); + function _a6X_(aide_finale){ + try{ var - ressources_prises_en_compte= + _a63_ = + function(param){ + var + _a67_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _rR_, + Runtime_ocaml_Runtime[13], + aide_finale), + _a68_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _rS_, + traitement_aide_finale_contrib), + _a67_), + _a69_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _rT_, + Runtime_ocaml_Runtime[13], + _a68_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _rU_, _a69_); + return caml_call2 + (Runtime_ocaml_Runtime[113], + aide_finale$0, + montant_minimal_aide_d832_10) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$236) + : aide_finale$0; + }, + _a64_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _rV_, 1); + }, + _a65_ = caml_call4(Runtime_ocaml_Runtime[63], _rW_, [0], _a64_, _a63_); + return _a65_; + } + catch(_a66_){ + var _a62_ = caml_wrap_exception(_a66_); + if(_a62_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _rQ_], 1); + throw caml_maybe_attach_backtrace(_a62_, 0); + } + } + var + traitement_aide_finale_montant = + caml_call3 + (Runtime_ocaml_Runtime[28], _rX_, Runtime_ocaml_Runtime[10], _a6X_); + try{ + var + _a6Z_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _a60_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a6Z_); + } + catch(_a61_){ + var _a6Y_ = caml_wrap_exception(_a61_); + if(_a6Y_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _rY_], 1); + throw caml_maybe_attach_backtrace(_a6Y_, 0); + } + if(_a60_) + return [0, + mensualite_eligible, + mensualite_minimale, + coefficient_prise_en_charge_d8$1, + aide_finale_formule, + traitement_aide_finale_montant]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _rZ_], 1); + } + function ressources_aides_personnelle_l(ressources_aides_personnelle_l){ + var + ressources_demandeur = ressources_aides_personnelle_l[1], + ressources_conjoint = ressources_aides_personnelle_l[2], + personnes_vivant_habituellemen = ressources_aides_personnelle_l[3], + demandeur_exerce_activite_remu = ressources_aides_personnelle_l[4], + conjoint_exerce_activite_remun = ressources_aides_personnelle_l[5], + personnes_a_charge = ressources_aides_personnelle_l[6], + situation_familiale = ressources_aides_personnelle_l[7], + mode_occupation = ressources_aides_personnelle_l[8], + date_courante = ressources_aides_personnelle_l[9], + condition_age_bourse_enseignem = ressources_aides_personnelle_l[10], + demandeur_poursuit_des_etudes = ressources_aides_personnelle_l[11], + date_demande_ou_reexamen_droit = ressources_aides_personnelle_l[12], + paiement_logement_distinct_pro = ressources_aides_personnelle_l[13]; + try{ + var + _a3V_ = + function(param){ + function _a4Y_(personne){return personne[2];} + var + _a4Z_ = + caml_call2 + (Runtime_ocaml_Runtime[87], + _a4Y_, + personnes_vivant_habituellemen), + _a40_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$237); + function _a41_(sum1, sum2){ + return caml_call2(Runtime_ocaml_Runtime[93], sum1, sum2); + } + return caml_call3(Runtime_ocaml_Runtime[88], _a41_, _a40_, _a4Z_); + }, + _a3W_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _r1_, 1); + }, + _a3X_ = caml_call4(Runtime_ocaml_Runtime[63], _r2_, [0], _a3W_, _a3V_); + } + catch(_a4X_){ + var _a3U_ = caml_wrap_exception(_a4X_); + if(_a3U_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _r0_], 1); + throw caml_maybe_attach_backtrace(_a3U_, 0); + } + var + ressources_personnes_vivant_ha = + caml_call3 + (Runtime_ocaml_Runtime[28], _r3_, Runtime_ocaml_Runtime[13], _a3X_); + try{ + var + _a3Z_ = + function(param){ + var + _a4T_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$238), + _a4U_ = caml_call1(Runtime_ocaml_Runtime[68], personnes_a_charge); + if(caml_call2(Runtime_ocaml_Runtime[86], _a4U_, _a4T_)) + var abattement = caml_call1(Runtime_ocaml_Runtime[31], cst_0$239); + else + var + _a4V_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$33), + _a4W_ = caml_call1(Runtime_ocaml_Runtime[68], personnes_a_charge), + abattement = + caml_call2(Runtime_ocaml_Runtime[116], _a4W_, _a4V_) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_90100) + : caml_call1(Runtime_ocaml_Runtime[31], cst_135000); + switch(situation_familiale[0]){ + case 0: + return abattement; + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$240); + case 2: + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$241); + case 3: + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$242); + case 4: + return abattement; + default: return caml_call1(Runtime_ocaml_Runtime[31], cst_0$243); + } + }, + _a30_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _r5_, 1); + }, + _a31_ = caml_call4(Runtime_ocaml_Runtime[63], _r6_, [0], _a30_, _a3Z_); + } + catch(_a4S_){ + var _a3Y_ = caml_wrap_exception(_a4S_); + if(_a3Y_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _r4_], 1); + throw caml_maybe_attach_backtrace(_a3Y_, 0); + } + caml_call3 + (Runtime_ocaml_Runtime[28], _r7_, Runtime_ocaml_Runtime[13], _a31_); + try{ + var + _a33_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_9500); + }, + _a34_ = + function(param){ + var + _a4Q_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _a4R_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a4Q_); + return caml_call2(Runtime_ocaml_Runtime[29], _r9_, _a4R_); + }, + _a35_ = caml_call4(Runtime_ocaml_Runtime[63], _r__, [0], _a34_, _a33_); + } + catch(_a4P_){ + var _a32_ = caml_wrap_exception(_a4P_); + if(_a32_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _r8_], 1); + throw caml_maybe_attach_backtrace(_a32_, 0); + } + var + montant_forfaitaire_r_822_7 = + caml_call3 + (Runtime_ocaml_Runtime[28], _r$_, Runtime_ocaml_Runtime[13], _a35_); + try{ + var + _a37_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_258900); + }, + _a38_ = + function(param){ + var + _a4N_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _a4O_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a4N_); + return caml_call2(Runtime_ocaml_Runtime[29], _sb_, _a4O_); + }, + _a39_ = caml_call4(Runtime_ocaml_Runtime[63], _sc_, [0], _a38_, _a37_); + } + catch(_a4M_){ + var _a36_ = caml_wrap_exception(_a4M_); + if(_a36_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _sa_], 1); + throw caml_maybe_attach_backtrace(_a36_, 0); + } + var + montant_forfaitaire_r_822_8 = + caml_call3 + (Runtime_ocaml_Runtime[28], _sd_, Runtime_ocaml_Runtime[13], _a39_); + try{ + var + _a3$_ = function(param){return date_demande_ou_reexamen_droit;}, + _a4a_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _sf_, 1); + }, + _a4b_ = caml_call4(Runtime_ocaml_Runtime[63], _sg_, [0], _a4a_, _a3$_), + base_mensuelle_allocations_fam$0 = caml_call3 - (Runtime_ocaml_Runtime[28],_Cs_,Runtime_ocaml_Runtime[13],_a_N_); - try - {var - _a_O_= - function(param) - {var - _a_W_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$15), - _a_X_= - caml_call2 - (Runtime_ocaml_Runtime[104], - base_mensuelle_allocations_fam$0, - _a_W_), - _a_Y_= - caml_call2 - (Runtime_ocaml_Runtime[93], - ressources_demandeur, - ressources_conjoint), - _a_Z_=caml_call2(Runtime_ocaml_Runtime[128],_a_Y_,_a_X_), - _a_0_= + (Runtime_ocaml_Runtime[28], _sh_, Runtime_ocaml_Runtime[16], _a4b_); + } + catch(_a4L_){ + var _a3__ = caml_wrap_exception(_a4L_); + if(_a3__ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _se_], 1); + throw caml_maybe_attach_backtrace(_a3__, 0); + } + var + _a4c_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _si_, base_mensuelle_allocations_fam), + [0, base_mensuelle_allocations_fam$0]), + result = caml_call2(Runtime_ocaml_Runtime[27], _sj_, _a4c_), + base_mensuelle_allocations_fam$1 = result[1]; + try{ + var + _a4e_ = + function(param){ + var + _a4K_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + ressources_demandeur, + ressources_conjoint); + return caml_call2 + (Runtime_ocaml_Runtime[93], + _a4K_, + ressources_personnes_vivant_ha); + }, + _a4f_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _sl_, 1); + }, + _a4g_ = + [0, + function(param){ + function _a4D_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$244); + } + function _a4E_(param){ + var + _a4F_ = caml_call2 (Runtime_ocaml_Runtime[83], - conjoint_exerce_activite_remun, - _a_Z_); - return caml_call2 - (Runtime_ocaml_Runtime[83], - demandeur_exerce_activite_remu, - _a_0_) - ?montant_forfaitaire_r_822_7 - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$305)}, - _a_P_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Cu_,1)}, - _a_Q_=caml_call4(Runtime_ocaml_Runtime[63],_Cv_,[0],_a_P_,_a_O_)} - catch(_a_V_) - {_a_V_ = caml_wrap_exception(_a_V_); - if(_a_V_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ct_]; - throw _a_V_} - caml_call3 - (Runtime_ocaml_Runtime[28],_Cw_,Runtime_ocaml_Runtime[13],_a_Q_); - try - {var - _a_R_=1, - _a_S_= - function(acc,personne) - {return caml_call2(Runtime_ocaml_Runtime[83],acc,personne[1])}, - _a_T_= - caml_call3 - (Runtime_ocaml_Runtime[136], - _a_S_, - _a_R_, - personnes_vivant_habituellemen)} - catch(_a_U_) - {_a_U_ = caml_wrap_exception(_a_U_); - if(_a_U_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Cx_]; - throw _a_U_} - if(_a_T_)return [0,ressources_prises_en_compte]; - throw [0,Runtime_ocaml_Runtime[3],_Cy_]} - function eligibilite_prestations_famili(eligibilite_prestations_famili) - {var - date_courante=eligibilite_prestations_famili[1], - residence=eligibilite_prestations_famili[3], - age_l512_3_2=eligibilite_prestations_famili[4]; - try - {var - _a87_= - function(param) - {function _a_p_(param) - {return caml_call3(Runtime_ocaml_Runtime[60],20,0,0)} - function _a_q_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_CA_,1)} - return caml_call4(Runtime_ocaml_Runtime[63],_CB_,[0],_a_q_,_a_p_)}, - _a88_=function(param){return 1}, - _a89_=[0,function(param){return caml_call1(age_l512_3_2,0)}], - _a8__=caml_call4(Runtime_ocaml_Runtime[63],_CC_,_a89_,_a88_,_a87_)} - catch(_a_o_) - {_a_o_ = caml_wrap_exception(_a_o_); - if(_a_o_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Cz_]; - throw _a_o_} - var - age_l512_3_2$0= + condition_age_bourse_enseignem, + demandeur_poursuit_des_etudes); + switch(mode_occupation[0]){ + case 0: + var _a4G_ = 0; break; + case 1: + var _a4G_ = 1; break; + case 2: + var _a4G_ = 0; break; + case 3: + var _a4G_ = 0; break; + default: var _a4G_ = 0; + } + switch(mode_occupation[0]){ + case 0: + var _a4H_ = 1; break; + case 1: + var _a4H_ = 0; break; + case 2: + var _a4H_ = 0; break; + case 3: + var _a4H_ = 0; break; + default: var _a4H_ = 0; + } + var + _a4I_ = caml_call2(Runtime_ocaml_Runtime[84], _a4H_, _a4G_), + _a4J_ = caml_call2(Runtime_ocaml_Runtime[83], _a4I_, _a4F_); + return caml_call2(Runtime_ocaml_Runtime[29], _sm_, _a4J_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _sn_, [0], _a4E_, _a4D_); + }], + _a4h_ = caml_call4(Runtime_ocaml_Runtime[63], _so_, _a4g_, _a4f_, _a4e_); + } + catch(_a4C_){ + var _a4d_ = caml_wrap_exception(_a4C_); + if(_a4d_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _sk_], 1); + throw caml_maybe_attach_backtrace(_a4d_, 0); + } + var + ressources_prises_en_compte = + caml_call3 + (Runtime_ocaml_Runtime[28], _sp_, Runtime_ocaml_Runtime[13], _a4h_); + try{ + var + _a4j_ = + function(param){ + return 0 === paiement_logement_distinct_pro[0] + ? montant_forfaitaire_r_822_8 + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$245); + }, + _a4k_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _sr_, 1); + }, + _a4l_ = caml_call4(Runtime_ocaml_Runtime[63], _ss_, [0], _a4k_, _a4j_); + } + catch(_a4B_){ + var _a4i_ = caml_wrap_exception(_a4B_); + if(_a4i_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _sq_], 1); + throw caml_maybe_attach_backtrace(_a4i_, 0); + } + caml_call3 + (Runtime_ocaml_Runtime[28], _st_, Runtime_ocaml_Runtime[13], _a4l_); + try{ + var + _a4n_ = + function(param){ + var + _a4w_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$3), + _a4x_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + base_mensuelle_allocations_fam$1, + _a4w_), + _a4y_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + ressources_demandeur, + ressources_conjoint), + _a4z_ = caml_call2(Runtime_ocaml_Runtime[128], _a4y_, _a4x_), + _a4A_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + conjoint_exerce_activite_remun, + _a4z_); + return caml_call2 + (Runtime_ocaml_Runtime[83], + demandeur_exerce_activite_remu, + _a4A_) + ? montant_forfaitaire_r_822_7 + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$246); + }, + _a4o_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _sv_, 1); + }, + _a4p_ = caml_call4(Runtime_ocaml_Runtime[63], _sw_, [0], _a4o_, _a4n_); + } + catch(_a4v_){ + var _a4m_ = caml_wrap_exception(_a4v_); + if(_a4m_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _su_], 1); + throw caml_maybe_attach_backtrace(_a4m_, 0); + } + caml_call3 + (Runtime_ocaml_Runtime[28], _sx_, Runtime_ocaml_Runtime[13], _a4p_); + try{ + var + _a4r_ = 1, + _a4s_ = + function(acc, personne){ + return caml_call2(Runtime_ocaml_Runtime[83], acc, personne[1]); + }, + _a4t_ = caml_call3 - (Runtime_ocaml_Runtime[28],_CD_,Runtime_ocaml_Runtime[17],_a8__); - try - {var - _a8$_=function(param){return date_courante}, - _a9a_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_CF_,1)}, - _a9b_=caml_call4(Runtime_ocaml_Runtime[63],_CG_,[0],_a9a_,_a8$_), - smic_dot_date_courante= - caml_call3 - (Runtime_ocaml_Runtime[28],_CH_,Runtime_ocaml_Runtime[16],_a9b_)} - catch(_a_n_) - {_a_n_ = caml_wrap_exception(_a_n_); - if(_a_n_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_CE_]; - throw _a_n_} - try - {var - _a9c_=function(param){return residence}, - _a9d_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_CJ_,1)}, - _a9e_=caml_call4(Runtime_ocaml_Runtime[63],_CK_,[0],_a9d_,_a9c_), - smic_dot_residence= - caml_call3 - (Runtime_ocaml_Runtime[28],_CL_,embed_collectivite$0,_a9e_)} - catch(_a_m_) - {_a_m_ = caml_wrap_exception(_a_m_); - if(_a_m_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_CI_]; - throw _a_m_} - var - _a9f_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_CM_,smic$1), - [0,smic_dot_date_courante,smic_dot_residence]), - result=caml_call2(Runtime_ocaml_Runtime[27],_CN_,_a9f_), - smic_dot_brut_horaire=result[1]; - try - {var - _a9g_=function(param){return 0}, - _a9h_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_CP_,1)}, - _a9i_= - [0, - function(param) - {function _a9$_(param){return 1} - function _a_a_(param) - {var - _a_b_=caml_call2(Runtime_ocaml_Runtime[86],residence,_CQ_), - _a_c_=caml_call2(Runtime_ocaml_Runtime[86],residence,_CR_), - _a_d_=caml_call2(Runtime_ocaml_Runtime[84],_a_c_,_a_b_), - _a_e_=caml_call2(Runtime_ocaml_Runtime[86],residence,_CS_), - _a_f_=caml_call2(Runtime_ocaml_Runtime[84],_a_e_,_a_d_), - _a_g_=caml_call2(Runtime_ocaml_Runtime[86],residence,_CT_), - _a_h_=caml_call2(Runtime_ocaml_Runtime[84],_a_g_,_a_f_), - _a_i_=caml_call2(Runtime_ocaml_Runtime[86],residence,_CU_), - _a_j_=caml_call2(Runtime_ocaml_Runtime[84],_a_i_,_a_h_), - _a_k_=caml_call2(Runtime_ocaml_Runtime[86],residence,_CV_), - _a_l_=caml_call2(Runtime_ocaml_Runtime[84],_a_k_,_a_j_); - return caml_call2(Runtime_ocaml_Runtime[29],_CW_,_a_l_)} - return caml_call4(Runtime_ocaml_Runtime[63],_CX_,[0],_a_a_,_a9$_)}], - _a9j_=caml_call4(Runtime_ocaml_Runtime[63],_CY_,_a9i_,_a9h_,_a9g_)} - catch(_a9__) - {_a9__ = caml_wrap_exception(_a9__); - if(_a9__ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_CO_]; - throw _a9__} - var - regime_outre_mer_l751_1= + (Runtime_ocaml_Runtime[136], + _a4s_, + _a4r_, + personnes_vivant_habituellemen); + } + catch(_a4u_){ + var _a4q_ = caml_wrap_exception(_a4u_); + if(_a4q_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _sy_], 1); + throw caml_maybe_attach_backtrace(_a4q_, 0); + } + if(_a4t_) return [0, ressources_prises_en_compte]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _sz_], 1); + } + function eligibilite_prestations_famili(eligibilite_prestations_famili){ + var + date_courante = eligibilite_prestations_famili[1], + residence = eligibilite_prestations_famili[3], + age_l512_3_2 = eligibilite_prestations_famili[4]; + try{ + var + _a2s_ = + function(param){ + function _a3S_(param){ + return caml_call3(Runtime_ocaml_Runtime[60], 20, 0, 0); + } + function _a3T_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _sB_, 1); + } + return caml_call4(Runtime_ocaml_Runtime[63], _sC_, [0], _a3T_, _a3S_); + }, + _a2t_ = function(param){return 1;}, + _a2u_ = [0, function(param){return caml_call1(age_l512_3_2, 0);}], + _a2v_ = caml_call4(Runtime_ocaml_Runtime[63], _sD_, _a2u_, _a2t_, _a2s_); + } + catch(_a3R_){ + var _a2r_ = caml_wrap_exception(_a3R_); + if(_a2r_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _sA_], 1); + throw caml_maybe_attach_backtrace(_a2r_, 0); + } + var + age_l512_3_2$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _sE_, Runtime_ocaml_Runtime[17], _a2v_); + try{ + var + _a2x_ = function(param){return date_courante;}, + _a2y_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _sG_, 1); + }, + _a2z_ = caml_call4(Runtime_ocaml_Runtime[63], _sH_, [0], _a2y_, _a2x_), + smic_dot_date_courante = caml_call3 - (Runtime_ocaml_Runtime[28],_CZ_,Runtime_ocaml_Runtime[12],_a9j_); - try - {var - _a9k_= - function(param) - {var - _a97_=caml_call1(Runtime_ocaml_Runtime[39],cst_169$1), - _a98_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_55$1), - _a99_= + (Runtime_ocaml_Runtime[28], _sI_, Runtime_ocaml_Runtime[16], _a2z_); + } + catch(_a3Q_){ + var _a2w_ = caml_wrap_exception(_a3Q_); + if(_a2w_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _sF_], 1); + throw caml_maybe_attach_backtrace(_a2w_, 0); + } + try{ + var + _a2B_ = function(param){return residence;}, + _a2C_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _sK_, 1); + }, + _a2D_ = caml_call4(Runtime_ocaml_Runtime[63], _sL_, [0], _a2C_, _a2B_), + smic_dot_residence = + caml_call3(Runtime_ocaml_Runtime[28], _sM_, embed_collectivite, _a2D_); + } + catch(_a3P_){ + var _a2A_ = caml_wrap_exception(_a3P_); + if(_a2A_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _sJ_], 1); + throw caml_maybe_attach_backtrace(_a2A_, 0); + } + var + _a2E_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _sN_, smic), + [0, smic_dot_date_courante, smic_dot_residence]), + result = caml_call2(Runtime_ocaml_Runtime[27], _sO_, _a2E_), + smic_dot_brut_horaire = result[1]; + try{ + var + _a2G_ = function(param){return 0;}, + _a2H_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _sQ_, 1); + }, + _a2I_ = + [0, + function(param){ + function _a3C_(param){return 1;} + function _a3D_(param){ + var + _a3E_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _sR_), + _a3F_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _sS_), + _a3G_ = caml_call2(Runtime_ocaml_Runtime[84], _a3F_, _a3E_), + _a3H_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _sT_), + _a3I_ = caml_call2(Runtime_ocaml_Runtime[84], _a3H_, _a3G_), + _a3J_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _sU_), + _a3K_ = caml_call2(Runtime_ocaml_Runtime[84], _a3J_, _a3I_), + _a3L_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _sV_), + _a3M_ = caml_call2(Runtime_ocaml_Runtime[84], _a3L_, _a3K_), + _a3N_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _sW_), + _a3O_ = caml_call2(Runtime_ocaml_Runtime[84], _a3N_, _a3M_); + return caml_call2(Runtime_ocaml_Runtime[29], _sX_, _a3O_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _sY_, [0], _a3D_, _a3C_); + }], + _a2J_ = caml_call4(Runtime_ocaml_Runtime[63], _sZ_, _a2I_, _a2H_, _a2G_); + } + catch(_a3B_){ + var _a2F_ = caml_wrap_exception(_a3B_); + if(_a2F_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _sP_], 1); + throw caml_maybe_attach_backtrace(_a2F_, 0); + } + var + regime_outre_mer_l751_1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _s0_, Runtime_ocaml_Runtime[12], _a2J_); + try{ + var + _a2L_ = + function(param){ + var + _a3y_ = caml_call1(Runtime_ocaml_Runtime[39], cst_169), + _a3z_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_55), + _a3A_ = + caml_call2 + (Runtime_ocaml_Runtime[104], smic_dot_brut_horaire, _a3z_); + return caml_call2(Runtime_ocaml_Runtime[104], _a3A_, _a3y_); + }, + _a2M_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _s2_, 1); + }, + _a2N_ = + [0, + function(param){ + function _a3t_(param){ + var + _a3v_ = caml_call1(Runtime_ocaml_Runtime[39], cst_169$0), + _a3w_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_55$0), + _a3x_ = caml_call2 - (Runtime_ocaml_Runtime[104],smic_dot_brut_horaire,_a98_); - return caml_call2(Runtime_ocaml_Runtime[104],_a99_,_a97_)}, - _a9l_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_C1_,1)}, - _a9m_= - [0, - function(param) - {function _a92_(param) - {var - _a94_=caml_call1(Runtime_ocaml_Runtime[39],cst_169$2), - _a95_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_55$2), - _a96_= - caml_call2 - (Runtime_ocaml_Runtime[104],smic_dot_brut_horaire,_a95_); - return caml_call2(Runtime_ocaml_Runtime[104],_a96_,_a94_)} - function _a93_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_C2_,regime_outre_mer_l751_1)} - return caml_call4(Runtime_ocaml_Runtime[63],_C3_,[0],_a93_,_a92_)}], - _a9n_=caml_call4(Runtime_ocaml_Runtime[63],_C4_,_a9m_,_a9l_,_a9k_)} - catch(_a91_) - {_a91_ = caml_wrap_exception(_a91_); - if(_a91_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_C0_]; - throw _a91_} + (Runtime_ocaml_Runtime[104], smic_dot_brut_horaire, _a3w_); + return caml_call2(Runtime_ocaml_Runtime[104], _a3x_, _a3v_); + } + function _a3u_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _s3_, regime_outre_mer_l751_1); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _s4_, [0], _a3u_, _a3t_); + }], + _a2O_ = caml_call4(Runtime_ocaml_Runtime[63], _s5_, _a2N_, _a2M_, _a2L_); + } + catch(_a3s_){ + var _a2K_ = caml_wrap_exception(_a3s_); + if(_a2K_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _s1_], 1); + throw caml_maybe_attach_backtrace(_a2K_, 0); + } + var + plafond_l512_3_2 = + caml_call3 + (Runtime_ocaml_Runtime[28], _s6_, Runtime_ocaml_Runtime[13], _a2O_); + function _a2P_(enfant){ + try{ var - plafond_l512_3_2= - caml_call3 - (Runtime_ocaml_Runtime[28],_C5_,Runtime_ocaml_Runtime[13],_a9n_); - function _a9o_(enfant) - {try - {var - _a9N_=function(param){return 0}, - _a9O_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_C7_,1)}, - _a9P_= - [0, - function(param) - {function _a9S_(param){return 1} - function _a9T_(param) - {var - _a9U_= - caml_call2 - (Runtime_ocaml_Runtime[118],enfant[3],plafond_l512_3_2); - switch(enfant[2][0]) - {case 0:var _a9V_=0;break; - case 1:var _a9V_=0;break; - default:var _a9V_=1} - switch(enfant[2][0]) - {case 0:var _a9W_=0;break; - case 1:var _a9W_=1;break; - default:var _a9W_=0} - var _a9X_=caml_call2(Runtime_ocaml_Runtime[84],_a9W_,_a9V_); - switch(enfant[2][0]) - {case 0:var _a9Y_=1;break; - case 1:var _a9Y_=0;break; - default:var _a9Y_=0} - var - _a9Z_=caml_call2(Runtime_ocaml_Runtime[84],_a9Y_,_a9X_), - _a90_=caml_call2(Runtime_ocaml_Runtime[83],_a9Z_,_a9U_); - return caml_call2(Runtime_ocaml_Runtime[29],_C8_,_a90_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_C9_,[0],_a9T_,_a9S_)}], - _a9Q_=caml_call4(Runtime_ocaml_Runtime[63],_C__,_a9P_,_a9O_,_a9N_); - return _a9Q_} - catch(_a9R_) - {_a9R_ = caml_wrap_exception(_a9R_); - if(_a9R_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_C6_]; - throw _a9R_}} - var - conditions_hors_age= - caml_call3 - (Runtime_ocaml_Runtime[28],_C$_,Runtime_ocaml_Runtime[10],_a9o_); - function _a9p_(enfant) - {try - {var - _a9q_=function(param){return 0}, - _a9r_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Db_,1)}, - _a9s_= - [0, - function(param) - {function _a9v_(param){throw Runtime_ocaml_Runtime[2]} - function _a9w_(param){return 0} - var - _a9x_= - [0, - function(param) - {function _a9y_(param){return 1} - function _a9z_(param) - {switch(enfant[2][0]) - {case 0:var _a9K_=0;break; - case 1:var _a9K_=1;break; - default:var _a9K_=0} - switch(enfant[2][0]) - {case 0:var _a9L_=1;break; - case 1:var _a9L_=0;break; - default:var _a9L_=0} - var _a9M_=caml_call2(Runtime_ocaml_Runtime[84],_a9L_,_a9K_); - return caml_call2(Runtime_ocaml_Runtime[29],_Dc_,_a9M_)} - var - _a9A_= - [0, - function(param) - {function _a9B_(param){return 1} - function _a9C_(param) - {var - _a9D_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Dd_, - embed_verification_age_superie$2, - [0,enfant[4],date_courante,age_l512_3_2$0]), - result= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _De_, - verification_age_superieur_a$1), - _a9D_), - result$0=[0,result[1]]; - caml_call2(Runtime_ocaml_Runtime[29],_Df_,1); - var - _a9E_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Dg_, - embed_verification_age_superie$1, - result$0), - _a9F_=caml_call2(Runtime_ocaml_Runtime[27],_Dh_,_a9E_)[1], - _a9G_= - caml_call2 - (Runtime_ocaml_Runtime[118],enfant[3],plafond_l512_3_2), - _a9H_=caml_call2(Runtime_ocaml_Runtime[83],_a9G_,_a9F_); - switch(enfant[2][0]) - {case 0:var _a9I_=0;break; - case 1:var _a9I_=0;break; - default:var _a9I_=1} - var _a9J_=caml_call2(Runtime_ocaml_Runtime[83],_a9I_,_a9H_); - return caml_call2(Runtime_ocaml_Runtime[29],_Di_,_a9J_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Dj_,[0],_a9C_,_a9B_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Dk_,_a9A_,_a9z_,_a9y_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Dl_,_a9x_,_a9w_,_a9v_)}], - _a9t_=caml_call4(Runtime_ocaml_Runtime[63],_Dm_,_a9s_,_a9r_,_a9q_); - return _a9t_} - catch(_a9u_) - {_a9u_ = caml_wrap_exception(_a9u_); - if(_a9u_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Da_]; - throw _a9u_}} - var - droit_ouvert= - caml_call3 - (Runtime_ocaml_Runtime[28],_Dn_,Runtime_ocaml_Runtime[10],_a9p_); - return [0, - age_l512_3_2$0, - droit_ouvert, - conditions_hors_age, - regime_outre_mer_l751_1]} - function calcul_allocation_logement_loc(calcul_allocation_logement_loc) - {var - loyer_principal=calcul_allocation_logement_loc[1], - ressources_menage_arrondies=calcul_allocation_logement_loc[2], - beneficiaire_aide_adulte_ou_en=calcul_allocation_logement_loc[3], - date_courante=calcul_allocation_logement_loc[4], - nombre_personnes_a_charge=calcul_allocation_logement_loc[5], - situation_familiale_calcul_apl=calcul_allocation_logement_loc[6], - zone=calcul_allocation_logement_loc[7], - logement_est_chambre=calcul_allocation_logement_loc[8], - agees_ou_handicap_adultes_hebe=calcul_allocation_logement_loc[9], - type_aide=calcul_allocation_logement_loc[10], - colocation=calcul_allocation_logement_loc[11], - reduction_loyer_solidarite=calcul_allocation_logement_loc[12], - logement_meuble_d842_2=calcul_allocation_logement_loc[13], - residence=calcul_allocation_logement_loc[14], - changement_logement_d842_4=calcul_allocation_logement_loc[15]; - try - {var - _a7T_=function(param){return loyer_principal}, - _a7U_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Dp_,1)}, - _a7V_=caml_call4(Runtime_ocaml_Runtime[63],_Dq_,[0],_a7U_,_a7T_), - calcul_apl_locatif_dot_loyer_p= - caml_call3 - (Runtime_ocaml_Runtime[28],_Dr_,Runtime_ocaml_Runtime[13],_a7V_)} - catch(_a86_) - {_a86_ = caml_wrap_exception(_a86_); - if(_a86_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Do_]; - throw _a86_} - try - {var - _a7W_=function(param){return ressources_menage_arrondies}, - _a7X_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Dt_,1)}, - _a7Y_=caml_call4(Runtime_ocaml_Runtime[63],_Du_,[0],_a7X_,_a7W_), - calcul_apl_locatif_dot_ressour= - caml_call3 - (Runtime_ocaml_Runtime[28],_Dv_,Runtime_ocaml_Runtime[13],_a7Y_)} - catch(_a85_) - {_a85_ = caml_wrap_exception(_a85_); - if(_a85_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ds_]; - throw _a85_} - try - {var - _a7Z_=function(param){return beneficiaire_aide_adulte_ou_en}, - _a70_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Dx_,1)}, - _a71_=caml_call4(Runtime_ocaml_Runtime[63],_Dy_,[0],_a70_,_a7Z_), - calcul_apl_locatif_dot_benefic= - caml_call3 - (Runtime_ocaml_Runtime[28],_Dz_,Runtime_ocaml_Runtime[12],_a71_)} - catch(_a84_) - {_a84_ = caml_wrap_exception(_a84_); - if(_a84_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Dw_]; - throw _a84_} - try - {var - _a72_=function(param){return date_courante}, - _a73_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_DB_,1)}, - _a74_=caml_call4(Runtime_ocaml_Runtime[63],_DC_,[0],_a73_,_a72_), - calcul_apl_locatif_dot_date_co= - caml_call3 - (Runtime_ocaml_Runtime[28],_DD_,Runtime_ocaml_Runtime[16],_a74_)} - catch(_a83_) - {_a83_ = caml_wrap_exception(_a83_); - if(_a83_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_DA_]; - throw _a83_} - try - {var - _a75_=function(param){return nombre_personnes_a_charge}, - _a76_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_DF_,1)}, - _a77_=caml_call4(Runtime_ocaml_Runtime[63],_DG_,[0],_a76_,_a75_), - calcul_apl_locatif_dot_nombre_= - caml_call3 - (Runtime_ocaml_Runtime[28],_DH_,Runtime_ocaml_Runtime[14],_a77_)} - catch(_a82_) - {_a82_ = caml_wrap_exception(_a82_); - if(_a82_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_DE_]; - throw _a82_} - try - {var - _a78_=function(param){return situation_familiale_calcul_apl}, - _a79_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_DJ_,1)}, - _a7__=caml_call4(Runtime_ocaml_Runtime[63],_DK_,[0],_a79_,_a78_), - calcul_apl_locatif_dot_situati= - caml_call3 - (Runtime_ocaml_Runtime[28], - _DL_, - embed_situation_familiale_calc, - _a7__)} - catch(_a81_) - {_a81_ = caml_wrap_exception(_a81_); - if(_a81_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_DI_]; - throw _a81_} - try - {var - _a7$_=function(param){return zone}, - _a8a_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_DN_,1)}, - _a8b_=caml_call4(Runtime_ocaml_Runtime[63],_DO_,[0],_a8a_,_a7$_), - calcul_apl_locatif_dot_zone= - caml_call3 - (Runtime_ocaml_Runtime[28],_DP_,embed_zone_d_habitation,_a8b_)} - catch(_a80_) - {_a80_ = caml_wrap_exception(_a80_); - if(_a80_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_DM_]; - throw _a80_} - try - {var - _a8c_=function(param){return logement_est_chambre}, - _a8d_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_DR_,1)}, - _a8e_=caml_call4(Runtime_ocaml_Runtime[63],_DS_,[0],_a8d_,_a8c_), - calcul_apl_locatif_dot_logemen= - caml_call3 - (Runtime_ocaml_Runtime[28],_DT_,Runtime_ocaml_Runtime[12],_a8e_)} - catch(_a8Z_) - {_a8Z_ = caml_wrap_exception(_a8Z_); - if(_a8Z_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_DQ_]; - throw _a8Z_} - try - {var - _a8f_=function(param){return agees_ou_handicap_adultes_hebe}, - _a8g_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_DV_,1)}, - _a8h_=caml_call4(Runtime_ocaml_Runtime[63],_DW_,[0],_a8g_,_a8f_), - calcul_apl_locatif_dot_agees_o= - caml_call3 - (Runtime_ocaml_Runtime[28],_DX_,Runtime_ocaml_Runtime[12],_a8h_)} - catch(_a8Y_) - {_a8Y_ = caml_wrap_exception(_a8Y_); - if(_a8Y_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_DU_]; - throw _a8Y_} - try - {var - _a8i_=function(param){return type_aide}, - _a8j_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_DZ_,1)}, - _a8k_=caml_call4(Runtime_ocaml_Runtime[63],_D0_,[0],_a8j_,_a8i_), - calcul_apl_locatif_dot_type_ai= - caml_call3 - (Runtime_ocaml_Runtime[28], - _D1_, - embed_type_aides_personnelle_l, - _a8k_)} - catch(_a8X_) - {_a8X_ = caml_wrap_exception(_a8X_); - if(_a8X_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_DY_]; - throw _a8X_} - try - {var - _a8l_=function(param){return colocation}, - _a8m_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_D3_,1)}, - _a8n_=caml_call4(Runtime_ocaml_Runtime[63],_D4_,[0],_a8m_,_a8l_), - calcul_apl_locatif_dot_colocat= - caml_call3 - (Runtime_ocaml_Runtime[28],_D5_,Runtime_ocaml_Runtime[12],_a8n_)} - catch(_a8W_) - {_a8W_ = caml_wrap_exception(_a8W_); - if(_a8W_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_D2_]; - throw _a8W_} - try - {var - _a8o_=function(param){return reduction_loyer_solidarite}, - _a8p_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_D7_,1)}, - _a8q_=caml_call4(Runtime_ocaml_Runtime[63],_D8_,[0],_a8p_,_a8o_), - calcul_apl_locatif_dot_reducti= - caml_call3 - (Runtime_ocaml_Runtime[28],_D9_,Runtime_ocaml_Runtime[13],_a8q_)} - catch(_a8V_) - {_a8V_ = caml_wrap_exception(_a8V_); - if(_a8V_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_D6_]; - throw _a8V_} - try - {var - _a8r_=function(param){return logement_meuble_d842_2}, - _a8s_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_D$_,1)}, - _a8t_=caml_call4(Runtime_ocaml_Runtime[63],_Ea_,[0],_a8s_,_a8r_), - calcul_apl_locatif_dot_logemen$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_Eb_,Runtime_ocaml_Runtime[12],_a8t_)} - catch(_a8U_) - {_a8U_ = caml_wrap_exception(_a8U_); - if(_a8U_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_D__]; - throw _a8U_} - try - {var - _a8u_=function(param){return residence}, - _a8v_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ed_,1)}, - _a8w_=caml_call4(Runtime_ocaml_Runtime[63],_Ee_,[0],_a8v_,_a8u_), - calcul_apl_locatif_dot_residen= - caml_call3 - (Runtime_ocaml_Runtime[28],_Ef_,embed_collectivite$0,_a8w_)} - catch(_a8T_) - {_a8T_ = caml_wrap_exception(_a8T_); - if(_a8T_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ec_]; - throw _a8T_} - var - _a8x_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_Eg_,calcul_aide_personnalisee_loge), - [0, - calcul_apl_locatif_dot_loyer_p, - calcul_apl_locatif_dot_ressour, - calcul_apl_locatif_dot_benefic, - calcul_apl_locatif_dot_date_co, - calcul_apl_locatif_dot_nombre_, - calcul_apl_locatif_dot_situati, - calcul_apl_locatif_dot_zone, - calcul_apl_locatif_dot_logemen, - calcul_apl_locatif_dot_agees_o, - calcul_apl_locatif_dot_type_ai, - calcul_apl_locatif_dot_colocat, - calcul_apl_locatif_dot_reducti, - calcul_apl_locatif_dot_logemen$0, - calcul_apl_locatif_dot_residen]), - result=caml_call2(Runtime_ocaml_Runtime[27],_Eh_,_a8x_), - calcul_apl_locatif_dot_aide_fi=result[6], - calcul_apl_locatif_dot_traitem=result[7]; - function _a8y_(aide_finale) - {try - {var - _a8I_= - function(param) - {var - _a8Q_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Ej_, - Runtime_ocaml_Runtime[13], - aide_finale), - _a8R_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Ek_, - calcul_apl_locatif_dot_traitem), - _a8Q_), - _a8S_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _El_, - Runtime_ocaml_Runtime[13], - _a8R_); - return caml_call2(Runtime_ocaml_Runtime[27],_Em_,_a8S_)}, - _a8J_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_En_,1)}, - _a8K_= - [0, - function(param) - {function _a8N_(param){return aide_finale} - function _a8O_(param) - {if(0 === changement_logement_d842_4[0]) - var - infos=changement_logement_d842_4[1], - _a8P_= - caml_call2 - (Runtime_ocaml_Runtime[128],loyer_principal,infos[1]); - else - var _a8P_=0; - return caml_call2(Runtime_ocaml_Runtime[29],_Eo_,_a8P_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ep_,[0],_a8O_,_a8N_)}], - _a8L_=caml_call4(Runtime_ocaml_Runtime[63],_Eq_,_a8K_,_a8J_,_a8I_); - return _a8L_} - catch(_a8M_) - {_a8M_ = caml_wrap_exception(_a8M_); - if(_a8M_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ei_]; - throw _a8M_}} - var - traitement_aide_finale= - caml_call3 - (Runtime_ocaml_Runtime[28],_Er_,Runtime_ocaml_Runtime[10],_a8y_); - try - {var - _a8z_=function(param){return calcul_apl_locatif_dot_aide_fi}, - _a8A_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Et_,1)}, - _a8B_= - [0, - function(param) - {function _a8E_(param) - {if(0 === changement_logement_d842_4[0]) - {var - infos=changement_logement_d842_4[1], - _a8H_= - caml_call2(Runtime_ocaml_Runtime[98],infos[1],infos[2]); - return caml_call2 - (Runtime_ocaml_Runtime[98],loyer_principal,_a8H_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$306)} - function _a8F_(param) - {if(0 === changement_logement_d842_4[0]) - var - infos=changement_logement_d842_4[1], - _a8G_= - caml_call2 - (Runtime_ocaml_Runtime[128],loyer_principal,infos[1]); - else - var _a8G_=0; - return caml_call2(Runtime_ocaml_Runtime[29],_Eu_,_a8G_)} - return caml_call4(Runtime_ocaml_Runtime[63],_Ev_,[0],_a8F_,_a8E_)}], - _a8C_=caml_call4(Runtime_ocaml_Runtime[63],_Ew_,_a8B_,_a8A_,_a8z_)} - catch(_a8D_) - {_a8D_ = caml_wrap_exception(_a8D_); - if(_a8D_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Es_]; - throw _a8D_} - var - aide_finale_formule= - caml_call3 - (Runtime_ocaml_Runtime[28],_Ex_,Runtime_ocaml_Runtime[13],_a8C_); - return [0,aide_finale_formule,traitement_aide_finale]} - function calcul_allocation_logement_foy(calcul_allocation_logement_foy) - {var - type_logement_foyer=calcul_allocation_logement_foy[1], - date_conventionnement=calcul_allocation_logement_foy[2], - residence=calcul_allocation_logement_foy[3], - redevance=calcul_allocation_logement_foy[4], - ressources_menage_arrondies=calcul_allocation_logement_foy[5], - nombre_personnes_a_charge=calcul_allocation_logement_foy[6], - situation_familiale_calcul_apl=calcul_allocation_logement_foy[7], - zone=calcul_allocation_logement_foy[8], - date_courante=calcul_allocation_logement_foy[9], - categorie_equivalence_loyer_d8=calcul_allocation_logement_foy[10]; - try - {var - _a1Q_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1000$3)}, - _a1R_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ez_,1)}, - _a1S_=caml_call4(Runtime_ocaml_Runtime[63],_EA_,[0],_a1R_,_a1Q_)} - catch(_a7S_) - {_a7S_ = caml_wrap_exception(_a7S_); - if(_a7S_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ey_]; - throw _a7S_} - var - montant_minimal_aide_d842_15= - caml_call3 - (Runtime_ocaml_Runtime[28],_EB_,Runtime_ocaml_Runtime[13],_a1S_); - try - {var - _a1T_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_500$2)}, - _a1U_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ED_,1)}, - _a1V_=caml_call4(Runtime_ocaml_Runtime[63],_EE_,[0],_a1U_,_a1T_)} - catch(_a7R_) - {_a7R_ = caml_wrap_exception(_a7R_); - if(_a7R_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_EC_]; - throw _a7R_} - var - montant_forfaitaire_d842_15= - caml_call3 - (Runtime_ocaml_Runtime[28],_EF_,Runtime_ocaml_Runtime[13],_a1V_); - try - {var - _a1W_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1500$0)}, - _a1X_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_EH_,1)}, - _a1Y_=caml_call4(Runtime_ocaml_Runtime[63],_EI_,[0],_a1X_,_a1W_)} - catch(_a7Q_) - {_a7Q_ = caml_wrap_exception(_a7Q_); - if(_a7Q_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_EG_]; - throw _a7Q_} - var - montant_minimal_depense_nette_= - caml_call3 - (Runtime_ocaml_Runtime[28],_EJ_,Runtime_ocaml_Runtime[13],_a1Y_); - try - {var - _a1Z_=function(param){return 1}, - _a10_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_EL_,1)}, - _a11_=caml_call4(Runtime_ocaml_Runtime[63],_EM_,[0],_a10_,_a1Z_), - calcul_nombre_parts_dot_condit= - caml_call3 - (Runtime_ocaml_Runtime[28],_EN_,Runtime_ocaml_Runtime[12],_a11_)} - catch(_a7P_) - {_a7P_ = caml_wrap_exception(_a7P_); - if(_a7P_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_EK_]; - throw _a7P_} - try - {var - _a12_=function(param){return nombre_personnes_a_charge}, - _a13_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_EP_,1)}, - _a14_=caml_call4(Runtime_ocaml_Runtime[63],_EQ_,[0],_a13_,_a12_), - calcul_nombre_parts_dot_nombre= - caml_call3 - (Runtime_ocaml_Runtime[28],_ER_,Runtime_ocaml_Runtime[14],_a14_)} - catch(_a7O_) - {_a7O_ = caml_wrap_exception(_a7O_); - if(_a7O_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_EO_]; - throw _a7O_} - try - {var - _a15_=function(param){return situation_familiale_calcul_apl}, - _a16_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ET_,1)}, - _a17_=caml_call4(Runtime_ocaml_Runtime[63],_EU_,[0],_a16_,_a15_), - calcul_nombre_parts_dot_situat= - caml_call3 - (Runtime_ocaml_Runtime[28], - _EV_, - embed_situation_familiale_calc, - _a17_)} - catch(_a7N_) - {_a7N_ = caml_wrap_exception(_a7N_); - if(_a7N_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ES_]; - throw _a7N_} - try - {var - _a18_=function(param){return residence}, - _a19_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_EX_,1)}, - _a1__=caml_call4(Runtime_ocaml_Runtime[63],_EY_,[0],_a19_,_a18_), - calcul_nombre_parts_dot_reside= - caml_call3 - (Runtime_ocaml_Runtime[28],_EZ_,embed_collectivite$0,_a1__)} - catch(_a7M_) - {_a7M_ = caml_wrap_exception(_a7M_); - if(_a7M_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_EW_]; - throw _a7M_} - function calcul_nombre_parts_dot_limita(param) - {throw Runtime_ocaml_Runtime[2]} - var - _a1$_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_E0_,calcul_nombre_part_logement_fo), - [0, - calcul_nombre_parts_dot_condit, - calcul_nombre_parts_dot_nombre, - calcul_nombre_parts_dot_situat, - calcul_nombre_parts_dot_reside, - calcul_nombre_parts_dot_limita]), - result=caml_call2(Runtime_ocaml_Runtime[27],_E1_,_a1$_), - calcul_nombre_parts_dot_n_nomb=result[1]; - try - {var - _a2a_=function(param){return date_courante}, - _a2b_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_E3_,1)}, - _a2c_=caml_call4(Runtime_ocaml_Runtime[63],_E4_,[0],_a2b_,_a2a_), - contributions_sociales_dot_dat= - caml_call3 - (Runtime_ocaml_Runtime[28],_E5_,Runtime_ocaml_Runtime[16],_a2c_)} - catch(_a7L_) - {_a7L_ = caml_wrap_exception(_a7L_); - if(_a7L_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_E2_]; - throw _a7L_} - var - _a2d_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_E6_,contributions_sociales_aides_p), - [0,contributions_sociales_dot_dat]), - result$0=caml_call2(Runtime_ocaml_Runtime[27],_E7_,_a2d_), - contributions_sociales_dot_mon=result$0[1]; - try - {var - _a2e_=function(param){return type_logement_foyer}, - _a2f_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_E9_,1)}, - _a2g_=caml_call4(Runtime_ocaml_Runtime[63],_E__,[0],_a2f_,_a2e_), - calcul_apl_logement_foyer_dot_= - caml_call3 - (Runtime_ocaml_Runtime[28],_E$_,embed_type_logement_foyer,_a2g_)} - catch(_a7K_) - {_a7K_ = caml_wrap_exception(_a7K_); - if(_a7K_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_E8_]; - throw _a7K_} - try - {var - _a2h_=function(param){return date_conventionnement}, - _a2i_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Fb_,1)}, - _a2j_=caml_call4(Runtime_ocaml_Runtime[63],_Fc_,[0],_a2i_,_a2h_), - calcul_apl_logement_foyer_dot_$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_Fd_,Runtime_ocaml_Runtime[16],_a2j_)} - catch(_a7J_) - {_a7J_ = caml_wrap_exception(_a7J_); - if(_a7J_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Fa_]; - throw _a7J_} - try - {var - _a2k_=function(param){return ressources_menage_arrondies}, - _a2l_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ff_,1)}, - _a2m_=caml_call4(Runtime_ocaml_Runtime[63],_Fg_,[0],_a2l_,_a2k_), - calcul_apl_logement_foyer_dot_$1= - caml_call3 - (Runtime_ocaml_Runtime[28],_Fh_,Runtime_ocaml_Runtime[13],_a2m_)} - catch(_a7I_) - {_a7I_ = caml_wrap_exception(_a7I_); - if(_a7I_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Fe_]; - throw _a7I_} - try - {var - _a2n_=function(param){return nombre_personnes_a_charge}, - _a2o_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Fj_,1)}, - _a2p_=caml_call4(Runtime_ocaml_Runtime[63],_Fk_,[0],_a2o_,_a2n_), - calcul_apl_logement_foyer_dot_$2= - caml_call3 - (Runtime_ocaml_Runtime[28],_Fl_,Runtime_ocaml_Runtime[14],_a2p_)} - catch(_a7H_) - {_a7H_ = caml_wrap_exception(_a7H_); - if(_a7H_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Fi_]; - throw _a7H_} - try - {var - _a2q_=function(param){return situation_familiale_calcul_apl}, - _a2r_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Fn_,1)}, - _a2s_=caml_call4(Runtime_ocaml_Runtime[63],_Fo_,[0],_a2r_,_a2q_), - calcul_apl_logement_foyer_dot_$3= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Fp_, - embed_situation_familiale_calc, - _a2s_)} - catch(_a7G_) - {_a7G_ = caml_wrap_exception(_a7G_); - if(_a7G_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Fm_]; - throw _a7G_} - try - {var - _a2t_=function(param){return zone}, - _a2u_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Fr_,1)}, - _a2v_=caml_call4(Runtime_ocaml_Runtime[63],_Fs_,[0],_a2u_,_a2t_), - calcul_apl_logement_foyer_dot_$4= - caml_call3 - (Runtime_ocaml_Runtime[28],_Ft_,embed_zone_d_habitation,_a2v_)} - catch(_a7F_) - {_a7F_ = caml_wrap_exception(_a7F_); - if(_a7F_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Fq_]; - throw _a7F_} - try - {var - _a2w_=function(param){return date_courante}, - _a2x_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Fv_,1)}, - _a2y_=caml_call4(Runtime_ocaml_Runtime[63],_Fw_,[0],_a2x_,_a2w_), - calcul_apl_logement_foyer_dot_$5= - caml_call3 - (Runtime_ocaml_Runtime[28],_Fx_,Runtime_ocaml_Runtime[16],_a2y_)} - catch(_a7E_) - {_a7E_ = caml_wrap_exception(_a7E_); - if(_a7E_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Fu_]; - throw _a7E_} - try - {var - _a2z_=function(param){return redevance}, - _a2A_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Fz_,1)}, - _a2B_=caml_call4(Runtime_ocaml_Runtime[63],_FA_,[0],_a2A_,_a2z_), - calcul_apl_logement_foyer_dot_$6= - caml_call3 - (Runtime_ocaml_Runtime[28],_FB_,Runtime_ocaml_Runtime[13],_a2B_)} - catch(_a7D_) - {_a7D_ = caml_wrap_exception(_a7D_); - if(_a7D_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Fy_]; - throw _a7D_} - try - {var - _a2C_=function(param){return residence}, - _a2D_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_FD_,1)}, - _a2E_=caml_call4(Runtime_ocaml_Runtime[63],_FE_,[0],_a2D_,_a2C_), - calcul_apl_logement_foyer_dot_$7= - caml_call3 - (Runtime_ocaml_Runtime[28],_FF_,embed_collectivite$0,_a2E_)} - catch(_a7C_) - {_a7C_ = caml_wrap_exception(_a7C_); - if(_a7C_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_FC_]; - throw _a7C_} - function calcul_apl_logement_foyer_dot_$8(param) - {function _a7z_(param){return 1} - function _a7A_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_FG_,1)} - var _a7B_=caml_call4(Runtime_ocaml_Runtime[63],_FH_,[0],_a7A_,_a7z_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _FI_, - Runtime_ocaml_Runtime[12], - _a7B_)} - function calcul_apl_logement_foyer_dot_$9(param) - {function _a7v_(param){return 1} - function _a7w_(param) - {switch(residence[0]) - {case 0:var _a7y_=1;break; - case 1:var _a7y_=1;break; - case 2:var _a7y_=1;break; - case 3:var _a7y_=1;break; - case 4:var _a7y_=0;break; - case 5:var _a7y_=0;break; - case 6:var _a7y_=0;break; - case 7:var _a7y_=0;break; - default:var _a7y_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_FJ_,_a7y_)} - var _a7x_=caml_call4(Runtime_ocaml_Runtime[63],_FK_,[0],_a7w_,_a7v_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _FL_, - Runtime_ocaml_Runtime[12], - _a7x_)} - function calcul_apl_logement_foyer_dot_$10(param) - {throw Runtime_ocaml_Runtime[2]} - var - _a2F_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_FM_,calcul_aide_personnalisee_loge$0), - [0, - calcul_apl_logement_foyer_dot_, - calcul_apl_logement_foyer_dot_$0, - calcul_apl_logement_foyer_dot_$1, - calcul_apl_logement_foyer_dot_$2, - calcul_apl_logement_foyer_dot_$3, - calcul_apl_logement_foyer_dot_$4, - calcul_apl_logement_foyer_dot_$5, - calcul_apl_logement_foyer_dot_$6, - calcul_apl_logement_foyer_dot_$7, - calcul_apl_logement_foyer_dot_$8, - calcul_apl_logement_foyer_dot_$9, - calcul_apl_logement_foyer_dot_$10]), - result$1=caml_call2(Runtime_ocaml_Runtime[27],_FN_,_a2F_), - calcul_apl_logement_foyer_dot_$11=result$1[7]; - try - {var - _a2G_= - function(param) - {function _a6V_(param){throw Runtime_ocaml_Runtime[2]} - function _a6W_(param){return 0} - function _a6X_(param) - {function _a7j_(param) - {var _a7q_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$307); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7q_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_5399$3); - var - _a7r_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _a7s_=caml_call1(Runtime_ocaml_Runtime[31],cst_1224$3), - _a7t_=caml_call2(Runtime_ocaml_Runtime[104],_a7s_,_a7r_), - _a7u_=caml_call1(Runtime_ocaml_Runtime[31],cst_5399$4); - return caml_call2(Runtime_ocaml_Runtime[93],_a7u_,_a7t_)} - function _a7k_(param) - {var - _a7l_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _a7m_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a7l_), - _a7n_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _a7o_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a7n_), - _a7p_=caml_call2(Runtime_ocaml_Runtime[83],_a7o_,_a7m_); - return caml_call2(Runtime_ocaml_Runtime[29],_FP_,_a7p_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_FQ_,[0],_a7k_,_a7j_)} - function _a6Y_(param) - {function _a69_(param) - {var _a7e_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$308); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7e_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_5422$3); - var - _a7f_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _a7g_=caml_call1(Runtime_ocaml_Runtime[31],cst_1229$3), - _a7h_=caml_call2(Runtime_ocaml_Runtime[104],_a7g_,_a7f_), - _a7i_=caml_call1(Runtime_ocaml_Runtime[31],cst_5422$4); - return caml_call2(Runtime_ocaml_Runtime[93],_a7i_,_a7h_)} - function _a6__(param) - {var - _a6$_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _a7a_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a6$_), - _a7b_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _a7c_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a7b_), - _a7d_=caml_call2(Runtime_ocaml_Runtime[83],_a7c_,_a7a_); - return caml_call2(Runtime_ocaml_Runtime[29],_FR_,_a7d_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_FS_,[0],_a6__,_a69_)} + _a3e_ = function(param){return 0;}, + _a3f_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _s8_, 1); + }, + _a3g_ = + [0, + function(param){ + function _a3j_(param){return 1;} + function _a3k_(param){ var - _a6Z_= + _a3l_ = + caml_call2 + (Runtime_ocaml_Runtime[118], enfant[3], plafond_l512_3_2); + switch(enfant[2][0]){ + case 0: + var _a3m_ = 0; break; + case 1: + var _a3m_ = 0; break; + default: var _a3m_ = 1; + } + switch(enfant[2][0]){ + case 0: + var _a3n_ = 0; break; + case 1: + var _a3n_ = 1; break; + default: var _a3n_ = 0; + } + var _a3o_ = caml_call2(Runtime_ocaml_Runtime[84], _a3n_, _a3m_); + switch(enfant[2][0]){ + case 0: + var _a3p_ = 1; break; + case 1: + var _a3p_ = 0; break; + default: var _a3p_ = 0; + } + var + _a3q_ = caml_call2(Runtime_ocaml_Runtime[84], _a3p_, _a3o_), + _a3r_ = caml_call2(Runtime_ocaml_Runtime[83], _a3q_, _a3l_); + return caml_call2(Runtime_ocaml_Runtime[29], _s9_, _a3r_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _s__, [0], _a3k_, _a3j_); + }], + _a3h_ = + caml_call4(Runtime_ocaml_Runtime[63], _s$_, _a3g_, _a3f_, _a3e_); + return _a3h_; + } + catch(_a3i_){ + var _a3d_ = caml_wrap_exception(_a3i_); + if(_a3d_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _s7_], 1); + throw caml_maybe_attach_backtrace(_a3d_, 0); + } + } + var + conditions_hors_age = + caml_call3 + (Runtime_ocaml_Runtime[28], _ta_, Runtime_ocaml_Runtime[10], _a2P_); + function _a2Q_(enfant){ + try{ + var + _a2S_ = function(param){return 0;}, + _a2T_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _tc_, 1); + }, + _a2U_ = + [0, + function(param){ + function _a2X_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _a2Y_(param){return 0;} + var + _a2Z_ = [0, - function(param) - {function _a60_(param) - {var _a64_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$309); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a64_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_5612$3); - var - _a65_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _a66_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272$3), - _a67_=caml_call2(Runtime_ocaml_Runtime[104],_a66_,_a65_), - _a68_=caml_call1(Runtime_ocaml_Runtime[31],cst_5612$4); - return caml_call2(Runtime_ocaml_Runtime[93],_a68_,_a67_)} - function _a61_(param) - {var - _a62_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _a63_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a62_); - return caml_call2(Runtime_ocaml_Runtime[29],_FT_,_a63_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_FU_,[0],_a61_,_a60_)}, - _a6Y_, - _a6X_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_FV_,_a6Z_,_a6W_,_a6V_)}, - _a2H_=function(param){return 1}, - _a2I_= - [0, - function(param) - {function _a5__(param){throw Runtime_ocaml_Runtime[2]} - function _a5$_(param){return 0} - function _a6a_(param) - {function _a6E_(param) - {var - _a6N_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _a6O_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$5), - _a6P_=caml_call2(Runtime_ocaml_Runtime[104],_a6O_,_a6N_), - _a6Q_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767$5), - montant=caml_call2(Runtime_ocaml_Runtime[93],_a6Q_,_a6P_), - _a6R_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$26), - _a6S_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$6), - _a6T_=caml_call2(Runtime_ocaml_Runtime[104],_a6S_,_a6R_), - _a6U_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767$6), - limite=caml_call2(Runtime_ocaml_Runtime[93],_a6U_,_a6T_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _a6F_(param) - {switch(residence[0]) - {case 0:var _a6G_=1;break; - case 1:var _a6G_=0;break; - case 2:var _a6G_=1;break; - case 3:var _a6G_=1;break; - case 4:var _a6G_=1;break; - case 5:var _a6G_=1;break; - case 6:var _a6G_=0;break; - case 7:var _a6G_=0;break; - default:var _a6G_=1} + function(param){ + function _a20_(param){return 1;} + function _a21_(param){ + switch(enfant[2][0]){ + case 0: + var _a3a_ = 0; break; + case 1: + var _a3a_ = 1; break; + default: var _a3a_ = 0; + } + switch(enfant[2][0]){ + case 0: + var _a3b_ = 1; break; + case 1: + var _a3b_ = 0; break; + default: var _a3b_ = 0; + } var - _a6H_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _a6I_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a6H_), - _a6J_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _a6K_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a6J_), - _a6L_=caml_call2(Runtime_ocaml_Runtime[83],_a6K_,_a6I_), - _a6M_=caml_call2(Runtime_ocaml_Runtime[83],_a6L_,_a6G_); - return caml_call2(Runtime_ocaml_Runtime[29],_FW_,_a6M_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_FX_,[0],_a6F_,_a6E_)} - function _a6b_(param) - {function _a6n_(param) - {var - _a6w_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _a6x_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272$4), - _a6y_=caml_call2(Runtime_ocaml_Runtime[104],_a6x_,_a6w_), - _a6z_=caml_call1(Runtime_ocaml_Runtime[31],cst_5612$5), - montant=caml_call2(Runtime_ocaml_Runtime[93],_a6z_,_a6y_), - _a6A_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$27), - _a6B_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272$5), - _a6C_=caml_call2(Runtime_ocaml_Runtime[104],_a6B_,_a6A_), - _a6D_=caml_call1(Runtime_ocaml_Runtime[31],cst_5612$6), - limite=caml_call2(Runtime_ocaml_Runtime[93],_a6D_,_a6C_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _a6o_(param) - {switch(residence[0]) - {case 0:var _a6p_=1;break; - case 1:var _a6p_=0;break; - case 2:var _a6p_=1;break; - case 3:var _a6p_=1;break; - case 4:var _a6p_=1;break; - case 5:var _a6p_=1;break; - case 6:var _a6p_=0;break; - case 7:var _a6p_=0;break; - default:var _a6p_=1} - var - _a6q_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _a6r_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a6q_), - _a6s_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _a6t_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a6s_), - _a6u_=caml_call2(Runtime_ocaml_Runtime[83],_a6t_,_a6r_), - _a6v_=caml_call2(Runtime_ocaml_Runtime[83],_a6u_,_a6p_); - return caml_call2(Runtime_ocaml_Runtime[29],_FY_,_a6v_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_FZ_,[0],_a6o_,_a6n_)} + _a3c_ = caml_call2(Runtime_ocaml_Runtime[84], _a3b_, _a3a_); + return caml_call2(Runtime_ocaml_Runtime[29], _td_, _a3c_); + } + var + _a22_ = + [0, + function(param){ + function _a23_(param){return 1;} + function _a24_(param){ + var + _a25_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _te_, + embed_verification_age_superie$0, + [0, enfant[4], date_courante, age_l512_3_2$0]), + result = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _tf_, + verification_age_superieur_a), + _a25_), + result$0 = [0, result[1]]; + caml_call2(Runtime_ocaml_Runtime[29], _tg_, 1); + var + _a26_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _th_, + embed_verification_age_superie, + result$0), + _a27_ = + caml_call2(Runtime_ocaml_Runtime[27], _ti_, _a26_)[1], + _a28_ = + caml_call2 + (Runtime_ocaml_Runtime[118], enfant[3], plafond_l512_3_2), + _a29_ = caml_call2(Runtime_ocaml_Runtime[83], _a28_, _a27_); + switch(enfant[2][0]){ + case 0: + var _a2__ = 0; break; + case 1: + var _a2__ = 0; break; + default: var _a2__ = 1; + } + var + _a2$_ = caml_call2(Runtime_ocaml_Runtime[83], _a2__, _a29_); + return caml_call2(Runtime_ocaml_Runtime[29], _tj_, _a2$_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _tk_, [0], _a24_, _a23_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _tl_, _a22_, _a21_, _a20_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _tm_, _a2Z_, _a2Y_, _a2X_); + }], + _a2V_ = + caml_call4(Runtime_ocaml_Runtime[63], _tn_, _a2U_, _a2T_, _a2S_); + return _a2V_; + } + catch(_a2W_){ + var _a2R_ = caml_wrap_exception(_a2W_); + if(_a2R_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _tb_], 1); + throw caml_maybe_attach_backtrace(_a2R_, 0); + } + } + var + droit_ouvert = + caml_call3 + (Runtime_ocaml_Runtime[28], _to_, Runtime_ocaml_Runtime[10], _a2Q_); + return [0, + age_l512_3_2$0, + droit_ouvert, + conditions_hors_age, + regime_outre_mer_l751_1]; + } + function calcul_allocation_logement_loc(calcul_allocation_logement_loc){ + var + loyer_principal = calcul_allocation_logement_loc[1], + ressources_menage_arrondies = calcul_allocation_logement_loc[2], + beneficiaire_aide_adulte_ou_en = calcul_allocation_logement_loc[3], + date_courante = calcul_allocation_logement_loc[4], + nombre_personnes_a_charge = calcul_allocation_logement_loc[5], + situation_familiale_calcul_apl = calcul_allocation_logement_loc[6], + zone = calcul_allocation_logement_loc[7], + logement_est_chambre = calcul_allocation_logement_loc[8], + agees_ou_handicap_adultes_hebe = calcul_allocation_logement_loc[9], + type_aide = calcul_allocation_logement_loc[10], + colocation = calcul_allocation_logement_loc[11], + reduction_loyer_solidarite = calcul_allocation_logement_loc[12], + logement_meuble_d842_2 = calcul_allocation_logement_loc[13], + residence = calcul_allocation_logement_loc[14], + changement_logement_d842_4 = calcul_allocation_logement_loc[15]; + try{ + var + _a00_ = function(param){return loyer_principal;}, + _a01_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _tq_, 1); + }, + _a02_ = caml_call4(Runtime_ocaml_Runtime[63], _tr_, [0], _a01_, _a00_), + calcul_apl_locatif_dot_loyer_p = + caml_call3 + (Runtime_ocaml_Runtime[28], _ts_, Runtime_ocaml_Runtime[13], _a02_); + } + catch(_a2q_){ + var _a0Z_ = caml_wrap_exception(_a2q_); + if(_a0Z_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _tp_], 1); + throw caml_maybe_attach_backtrace(_a0Z_, 0); + } + try{ + var + _a04_ = function(param){return ressources_menage_arrondies;}, + _a05_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _tu_, 1); + }, + _a06_ = caml_call4(Runtime_ocaml_Runtime[63], _tv_, [0], _a05_, _a04_), + calcul_apl_locatif_dot_ressour = + caml_call3 + (Runtime_ocaml_Runtime[28], _tw_, Runtime_ocaml_Runtime[13], _a06_); + } + catch(_a2p_){ + var _a03_ = caml_wrap_exception(_a2p_); + if(_a03_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _tt_], 1); + throw caml_maybe_attach_backtrace(_a03_, 0); + } + try{ + var + _a08_ = function(param){return beneficiaire_aide_adulte_ou_en;}, + _a09_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ty_, 1); + }, + _a0__ = caml_call4(Runtime_ocaml_Runtime[63], _tz_, [0], _a09_, _a08_), + calcul_apl_locatif_dot_benefic = + caml_call3 + (Runtime_ocaml_Runtime[28], _tA_, Runtime_ocaml_Runtime[12], _a0__); + } + catch(_a2o_){ + var _a07_ = caml_wrap_exception(_a2o_); + if(_a07_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _tx_], 1); + throw caml_maybe_attach_backtrace(_a07_, 0); + } + try{ + var + _a1a_ = function(param){return date_courante;}, + _a1b_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _tC_, 1); + }, + _a1c_ = caml_call4(Runtime_ocaml_Runtime[63], _tD_, [0], _a1b_, _a1a_), + calcul_apl_locatif_dot_date_co = + caml_call3 + (Runtime_ocaml_Runtime[28], _tE_, Runtime_ocaml_Runtime[16], _a1c_); + } + catch(_a2n_){ + var _a0$_ = caml_wrap_exception(_a2n_); + if(_a0$_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _tB_], 1); + throw caml_maybe_attach_backtrace(_a0$_, 0); + } + try{ + var + _a1e_ = function(param){return nombre_personnes_a_charge;}, + _a1f_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _tG_, 1); + }, + _a1g_ = caml_call4(Runtime_ocaml_Runtime[63], _tH_, [0], _a1f_, _a1e_), + calcul_apl_locatif_dot_nombre_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _tI_, Runtime_ocaml_Runtime[14], _a1g_); + } + catch(_a2m_){ + var _a1d_ = caml_wrap_exception(_a2m_); + if(_a1d_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _tF_], 1); + throw caml_maybe_attach_backtrace(_a1d_, 0); + } + try{ + var + _a1i_ = function(param){return situation_familiale_calcul_apl;}, + _a1j_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _tK_, 1); + }, + _a1k_ = caml_call4(Runtime_ocaml_Runtime[63], _tL_, [0], _a1j_, _a1i_), + calcul_apl_locatif_dot_situati = + caml_call3 + (Runtime_ocaml_Runtime[28], + _tM_, + embed_situation_familiale_calc, + _a1k_); + } + catch(_a2l_){ + var _a1h_ = caml_wrap_exception(_a2l_); + if(_a1h_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _tJ_], 1); + throw caml_maybe_attach_backtrace(_a1h_, 0); + } + try{ + var + _a1m_ = function(param){return zone;}, + _a1n_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _tO_, 1); + }, + _a1o_ = caml_call4(Runtime_ocaml_Runtime[63], _tP_, [0], _a1n_, _a1m_), + calcul_apl_locatif_dot_zone = + caml_call3 + (Runtime_ocaml_Runtime[28], _tQ_, embed_zone_d_habitation, _a1o_); + } + catch(_a2k_){ + var _a1l_ = caml_wrap_exception(_a2k_); + if(_a1l_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _tN_], 1); + throw caml_maybe_attach_backtrace(_a1l_, 0); + } + try{ + var + _a1q_ = function(param){return logement_est_chambre;}, + _a1r_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _tS_, 1); + }, + _a1s_ = caml_call4(Runtime_ocaml_Runtime[63], _tT_, [0], _a1r_, _a1q_), + calcul_apl_locatif_dot_logemen = + caml_call3 + (Runtime_ocaml_Runtime[28], _tU_, Runtime_ocaml_Runtime[12], _a1s_); + } + catch(_a2j_){ + var _a1p_ = caml_wrap_exception(_a2j_); + if(_a1p_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _tR_], 1); + throw caml_maybe_attach_backtrace(_a1p_, 0); + } + try{ + var + _a1u_ = function(param){return agees_ou_handicap_adultes_hebe;}, + _a1v_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _tW_, 1); + }, + _a1w_ = caml_call4(Runtime_ocaml_Runtime[63], _tX_, [0], _a1v_, _a1u_), + calcul_apl_locatif_dot_agees_o = + caml_call3 + (Runtime_ocaml_Runtime[28], _tY_, Runtime_ocaml_Runtime[12], _a1w_); + } + catch(_a2i_){ + var _a1t_ = caml_wrap_exception(_a2i_); + if(_a1t_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _tV_], 1); + throw caml_maybe_attach_backtrace(_a1t_, 0); + } + try{ + var + _a1y_ = function(param){return type_aide;}, + _a1z_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _t0_, 1); + }, + _a1A_ = caml_call4(Runtime_ocaml_Runtime[63], _t1_, [0], _a1z_, _a1y_), + calcul_apl_locatif_dot_type_ai = + caml_call3 + (Runtime_ocaml_Runtime[28], + _t2_, + embed_type_aides_personnelle_l, + _a1A_); + } + catch(_a2h_){ + var _a1x_ = caml_wrap_exception(_a2h_); + if(_a1x_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _tZ_], 1); + throw caml_maybe_attach_backtrace(_a1x_, 0); + } + try{ + var + _a1C_ = function(param){return colocation;}, + _a1D_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _t4_, 1); + }, + _a1E_ = caml_call4(Runtime_ocaml_Runtime[63], _t5_, [0], _a1D_, _a1C_), + calcul_apl_locatif_dot_colocat = + caml_call3 + (Runtime_ocaml_Runtime[28], _t6_, Runtime_ocaml_Runtime[12], _a1E_); + } + catch(_a2g_){ + var _a1B_ = caml_wrap_exception(_a2g_); + if(_a1B_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _t3_], 1); + throw caml_maybe_attach_backtrace(_a1B_, 0); + } + try{ + var + _a1G_ = function(param){return reduction_loyer_solidarite;}, + _a1H_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _t8_, 1); + }, + _a1I_ = caml_call4(Runtime_ocaml_Runtime[63], _t9_, [0], _a1H_, _a1G_), + calcul_apl_locatif_dot_reducti = + caml_call3 + (Runtime_ocaml_Runtime[28], _t__, Runtime_ocaml_Runtime[13], _a1I_); + } + catch(_a2f_){ + var _a1F_ = caml_wrap_exception(_a2f_); + if(_a1F_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _t7_], 1); + throw caml_maybe_attach_backtrace(_a1F_, 0); + } + try{ + var + _a1K_ = function(param){return logement_meuble_d842_2;}, + _a1L_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ua_, 1); + }, + _a1M_ = caml_call4(Runtime_ocaml_Runtime[63], _ub_, [0], _a1L_, _a1K_), + calcul_apl_locatif_dot_logemen$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _uc_, Runtime_ocaml_Runtime[12], _a1M_); + } + catch(_a2e_){ + var _a1J_ = caml_wrap_exception(_a2e_); + if(_a1J_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _t$_], 1); + throw caml_maybe_attach_backtrace(_a1J_, 0); + } + try{ + var + _a1O_ = function(param){return residence;}, + _a1P_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ue_, 1); + }, + _a1Q_ = caml_call4(Runtime_ocaml_Runtime[63], _uf_, [0], _a1P_, _a1O_), + calcul_apl_locatif_dot_residen = + caml_call3(Runtime_ocaml_Runtime[28], _ug_, embed_collectivite, _a1Q_); + } + catch(_a2d_){ + var _a1N_ = caml_wrap_exception(_a2d_); + if(_a1N_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _ud_], 1); + throw caml_maybe_attach_backtrace(_a1N_, 0); + } + var + _a1R_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _uh_, calcul_aide_personnalisee_loge), + [0, + calcul_apl_locatif_dot_loyer_p, + calcul_apl_locatif_dot_ressour, + calcul_apl_locatif_dot_benefic, + calcul_apl_locatif_dot_date_co, + calcul_apl_locatif_dot_nombre_, + calcul_apl_locatif_dot_situati, + calcul_apl_locatif_dot_zone, + calcul_apl_locatif_dot_logemen, + calcul_apl_locatif_dot_agees_o, + calcul_apl_locatif_dot_type_ai, + calcul_apl_locatif_dot_colocat, + calcul_apl_locatif_dot_reducti, + calcul_apl_locatif_dot_logemen$0, + calcul_apl_locatif_dot_residen]), + result = caml_call2(Runtime_ocaml_Runtime[27], _ui_, _a1R_), + calcul_apl_locatif_dot_aide_fi = result[6], + calcul_apl_locatif_dot_traitem = result[7]; + function _a1S_(aide_finale){ + try{ + var + _a14_ = + function(param){ + var + _a2a_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _uk_, + Runtime_ocaml_Runtime[13], + aide_finale), + _a2b_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _ul_, + calcul_apl_locatif_dot_traitem), + _a2a_), + _a2c_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _um_, + Runtime_ocaml_Runtime[13], + _a2b_); + return caml_call2(Runtime_ocaml_Runtime[27], _un_, _a2c_); + }, + _a15_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _uo_, 1); + }, + _a16_ = + [0, + function(param){ + function _a19_(param){return aide_finale;} + function _a1__(param){ + if(0 === changement_logement_d842_4[0]) var - _a6c_= - [0, - function(param) - {function _a6d_(param) - {var - _a6j_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _a6k_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$7), - _a6l_=caml_call2(Runtime_ocaml_Runtime[104],_a6k_,_a6j_), - _a6m_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767$7); - return caml_call2(Runtime_ocaml_Runtime[93],_a6m_,_a6l_)} - function _a6e_(param) - {switch(residence[0]) - {case 0:var _a6f_=1;break; - case 1:var _a6f_=0;break; - case 2:var _a6f_=1;break; - case 3:var _a6f_=1;break; - case 4:var _a6f_=1;break; - case 5:var _a6f_=1;break; - case 6:var _a6f_=0;break; - case 7:var _a6f_=0;break; - default:var _a6f_=1} - var - _a6g_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _a6h_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a6g_), - _a6i_=caml_call2(Runtime_ocaml_Runtime[83],_a6h_,_a6f_); - return caml_call2(Runtime_ocaml_Runtime[29],_F0_,_a6i_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_F1_,[0],_a6e_,_a6d_)}, - _a6b_, - _a6a_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_F2_,_a6c_,_a5$_,_a5__)}], - _a2J_=caml_call4(Runtime_ocaml_Runtime[63],_F3_,_a2I_,_a2H_,_a2G_)} - catch(_a59_) - {_a59_ = caml_wrap_exception(_a59_); - if(_a59_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_FO_]; - throw _a59_} - var - montant_forfaitaire_charges= + infos = changement_logement_d842_4[1], + _a1$_ = + caml_call2 + (Runtime_ocaml_Runtime[128], loyer_principal, infos[1]); + else + var _a1$_ = 0; + return caml_call2(Runtime_ocaml_Runtime[29], _up_, _a1$_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _uq_, [0], _a1__, _a19_); + }], + _a17_ = + caml_call4(Runtime_ocaml_Runtime[63], _ur_, _a16_, _a15_, _a14_); + return _a17_; + } + catch(_a18_){ + var _a13_ = caml_wrap_exception(_a18_); + if(_a13_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _uj_], 1); + throw caml_maybe_attach_backtrace(_a13_, 0); + } + } + var + traitement_aide_finale = + caml_call3 + (Runtime_ocaml_Runtime[28], _us_, Runtime_ocaml_Runtime[10], _a1S_); + try{ + var + _a1U_ = function(param){return calcul_apl_locatif_dot_aide_fi;}, + _a1V_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _uu_, 1); + }, + _a1W_ = + [0, + function(param){ + function _a1Z_(param){ + if(0 !== changement_logement_d842_4[0]) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$247); + var + infos = changement_logement_d842_4[1], + _a12_ = caml_call2(Runtime_ocaml_Runtime[98], infos[1], infos[2]); + return caml_call2 + (Runtime_ocaml_Runtime[98], loyer_principal, _a12_); + } + function _a10_(param){ + if(0 === changement_logement_d842_4[0]) + var + infos = changement_logement_d842_4[1], + _a11_ = + caml_call2 + (Runtime_ocaml_Runtime[128], loyer_principal, infos[1]); + else + var _a11_ = 0; + return caml_call2(Runtime_ocaml_Runtime[29], _uv_, _a11_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _uw_, [0], _a10_, _a1Z_); + }], + _a1X_ = caml_call4(Runtime_ocaml_Runtime[63], _ux_, _a1W_, _a1V_, _a1U_); + } + catch(_a1Y_){ + var _a1T_ = caml_wrap_exception(_a1Y_); + if(_a1T_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _ut_], 1); + throw caml_maybe_attach_backtrace(_a1T_, 0); + } + var + aide_finale_formule = + caml_call3 + (Runtime_ocaml_Runtime[28], _uy_, Runtime_ocaml_Runtime[13], _a1X_); + return [0, aide_finale_formule, traitement_aide_finale]; + } + function calcul_allocation_logement_foy(calcul_allocation_logement_foy){ + var + type_logement_foyer = calcul_allocation_logement_foy[1], + date_conventionnement = calcul_allocation_logement_foy[2], + residence = calcul_allocation_logement_foy[3], + redevance = calcul_allocation_logement_foy[4], + ressources_menage_arrondies = calcul_allocation_logement_foy[5], + nombre_personnes_a_charge = calcul_allocation_logement_foy[6], + situation_familiale_calcul_apl = calcul_allocation_logement_foy[7], + zone = calcul_allocation_logement_foy[8], + date_courante = calcul_allocation_logement_foy[9], + categorie_equivalence_loyer_d8 = calcul_allocation_logement_foy[10]; + try{ + var + _aR__ = function(param){return 1;}, + _aR$_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _uA_, 1); + }, + _aSa_ = caml_call4(Runtime_ocaml_Runtime[63], _uB_, [0], _aR$_, _aR__), + calcul_nombre_parts_dot_condit = caml_call3 - (Runtime_ocaml_Runtime[28],_F4_,Runtime_ocaml_Runtime[13],_a2J_); - try - {var - _a2K_=function(param){throw Runtime_ocaml_Runtime[2]}, - _a2L_=function(param){return 0}, - _a2M_= - function(param) - {function _a5Q_(param) - {return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_16941) - :caml_call1(Runtime_ocaml_Runtime[31],cst_26329)} - function _a5R_(param) - {switch(categorie_equivalence_loyer_d8[0]) - {case 0:var _a52_=0;break; - case 1:var _a52_=1;break; - case 2:var _a52_=0;break; - default:var _a52_=0} - var - _a53_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _a54_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a53_), - _a55_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _a56_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a55_), - _a57_=caml_call2(Runtime_ocaml_Runtime[83],_a56_,_a54_), - _a58_=caml_call2(Runtime_ocaml_Runtime[83],_a57_,_a52_); - return caml_call2(Runtime_ocaml_Runtime[29],_F6_,_a58_)} - var - _a5S_= - [0, - function(param) - {function _a5T_(param) - {return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_16941$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_26329$0)} - function _a5U_(param) - {switch(categorie_equivalence_loyer_d8[0]) - {case 0:var _a5V_=0;break; - case 1:var _a5V_=0;break; - case 2:var _a5V_=0;break; - default:var _a5V_=1} - var - _a5W_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _a5X_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a5W_), - _a5Y_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _a5Z_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a5Y_), - _a50_=caml_call2(Runtime_ocaml_Runtime[83],_a5Z_,_a5X_), - _a51_=caml_call2(Runtime_ocaml_Runtime[83],_a50_,_a5V_); - return caml_call2(Runtime_ocaml_Runtime[29],_F7_,_a51_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_F8_,[0],_a5U_,_a5T_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_F9_,_a5S_,_a5R_,_a5Q_)}, - _a2N_= - function(param) - {function _a5H_(param) - {return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_20554) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31939)} - function _a5I_(param) - {switch(categorie_equivalence_loyer_d8[0]) - {case 0:var _a5J_=0;break; - case 1:var _a5J_=0;break; - case 2:var _a5J_=1;break; - default:var _a5J_=0} - var - _a5K_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _a5L_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a5K_), - _a5M_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _a5N_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a5M_), - _a5O_=caml_call2(Runtime_ocaml_Runtime[83],_a5N_,_a5L_), - _a5P_=caml_call2(Runtime_ocaml_Runtime[83],_a5O_,_a5J_); - return caml_call2(Runtime_ocaml_Runtime[29],_F__,_a5P_)} - return caml_call4(Runtime_ocaml_Runtime[63],_F$_,[0],_a5I_,_a5H_)}, - _a2O_= - function(param) - {function _a5y_(param) - {return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_8379) - :caml_call1(Runtime_ocaml_Runtime[31],cst_13045)} - function _a5z_(param) - {switch(categorie_equivalence_loyer_d8[0]) - {case 0:var _a5A_=1;break; - case 1:var _a5A_=0;break; - case 2:var _a5A_=0;break; - default:var _a5A_=0} - var - _a5B_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _a5C_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a5B_), - _a5D_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _a5E_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a5D_), - _a5F_=caml_call2(Runtime_ocaml_Runtime[83],_a5E_,_a5C_), - _a5G_=caml_call2(Runtime_ocaml_Runtime[83],_a5F_,_a5A_); - return caml_call2(Runtime_ocaml_Runtime[29],_Ga_,_a5G_)} - return caml_call4(Runtime_ocaml_Runtime[63],_Gb_,[0],_a5z_,_a5y_)}, - _a2P_= - function(param) - {function _a5f_(param) - {return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_17012) - :caml_call1(Runtime_ocaml_Runtime[31],cst_26440)} - function _a5g_(param) - {switch(categorie_equivalence_loyer_d8[0]) - {case 0:var _a5r_=0;break; - case 1:var _a5r_=1;break; - case 2:var _a5r_=0;break; - default:var _a5r_=0} - var - _a5s_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _a5t_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a5s_), - _a5u_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _a5v_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a5u_), - _a5w_=caml_call2(Runtime_ocaml_Runtime[83],_a5v_,_a5t_), - _a5x_=caml_call2(Runtime_ocaml_Runtime[83],_a5w_,_a5r_); - return caml_call2(Runtime_ocaml_Runtime[29],_Gc_,_a5x_)} - var - _a5h_= - [0, - function(param) - {function _a5i_(param) - {return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_17012$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_26440$0)} - function _a5j_(param) - {switch(categorie_equivalence_loyer_d8[0]) - {case 0:var _a5k_=0;break; - case 1:var _a5k_=0;break; - case 2:var _a5k_=0;break; - default:var _a5k_=1} - var - _a5l_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _a5m_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a5l_), - _a5n_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _a5o_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a5n_), - _a5p_=caml_call2(Runtime_ocaml_Runtime[83],_a5o_,_a5m_), - _a5q_=caml_call2(Runtime_ocaml_Runtime[83],_a5p_,_a5k_); - return caml_call2(Runtime_ocaml_Runtime[29],_Gd_,_a5q_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ge_,[0],_a5j_,_a5i_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Gf_,_a5h_,_a5g_,_a5f_)}, - _a2Q_= - function(param) - {function _a48_(param) - {return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_20640) - :caml_call1(Runtime_ocaml_Runtime[31],cst_32073)} - function _a49_(param) - {switch(categorie_equivalence_loyer_d8[0]) - {case 0:var _a4__=0;break; - case 1:var _a4__=0;break; - case 2:var _a4__=1;break; - default:var _a4__=0} - var - _a4$_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _a5a_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a4$_), - _a5b_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _a5c_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a5b_), - _a5d_=caml_call2(Runtime_ocaml_Runtime[83],_a5c_,_a5a_), - _a5e_=caml_call2(Runtime_ocaml_Runtime[83],_a5d_,_a4__); - return caml_call2(Runtime_ocaml_Runtime[29],_Gg_,_a5e_)} - return caml_call4(Runtime_ocaml_Runtime[63],_Gh_,[0],_a49_,_a48_)}, - _a2R_= - function(param) - {function _a4Z_(param) - {return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_8414) - :caml_call1(Runtime_ocaml_Runtime[31],cst_13100)} - function _a40_(param) - {switch(categorie_equivalence_loyer_d8[0]) - {case 0:var _a41_=1;break; - case 1:var _a41_=0;break; - case 2:var _a41_=0;break; - default:var _a41_=0} - var - _a42_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _a43_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a42_), - _a44_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _a45_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a44_), - _a46_=caml_call2(Runtime_ocaml_Runtime[83],_a45_,_a43_), - _a47_=caml_call2(Runtime_ocaml_Runtime[83],_a46_,_a41_); - return caml_call2(Runtime_ocaml_Runtime[29],_Gi_,_a47_)} - return caml_call4(Runtime_ocaml_Runtime[63],_Gj_,[0],_a40_,_a4Z_)}, - _a2S_= - function(param) - {function _a4M_(param) - {return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_17607) - :caml_call1(Runtime_ocaml_Runtime[31],cst_27365)} - function _a4N_(param) - {switch(categorie_equivalence_loyer_d8[0]) - {case 0:var _a4V_=0;break; - case 1:var _a4V_=1;break; - case 2:var _a4V_=0;break; - default:var _a4V_=0} - var - _a4W_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _a4X_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a4W_), - _a4Y_=caml_call2(Runtime_ocaml_Runtime[83],_a4X_,_a4V_); - return caml_call2(Runtime_ocaml_Runtime[29],_Gk_,_a4Y_)} - var - _a4O_= - [0, - function(param) - {function _a4P_(param) - {return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_17607$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_27365$0)} - function _a4Q_(param) - {switch(categorie_equivalence_loyer_d8[0]) - {case 0:var _a4R_=0;break; - case 1:var _a4R_=0;break; - case 2:var _a4R_=0;break; - default:var _a4R_=1} - var - _a4S_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _a4T_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a4S_), - _a4U_=caml_call2(Runtime_ocaml_Runtime[83],_a4T_,_a4R_); - return caml_call2(Runtime_ocaml_Runtime[29],_Gl_,_a4U_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Gm_,[0],_a4Q_,_a4P_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Gn_,_a4O_,_a4N_,_a4M_)}, - _a2T_= - function(param) - {function _a4G_(param) - {return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_21362) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33196)} - function _a4H_(param) - {switch(categorie_equivalence_loyer_d8[0]) - {case 0:var _a4I_=0;break; - case 1:var _a4I_=0;break; - case 2:var _a4I_=1;break; - default:var _a4I_=0} - var - _a4J_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _a4K_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a4J_), - _a4L_=caml_call2(Runtime_ocaml_Runtime[83],_a4K_,_a4I_); - return caml_call2(Runtime_ocaml_Runtime[29],_Go_,_a4L_)} - return caml_call4(Runtime_ocaml_Runtime[63],_Gp_,[0],_a4H_,_a4G_)}, - _a2U_= - [0, - function(param) - {function _a4A_(param) - {return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_8708) - :caml_call1(Runtime_ocaml_Runtime[31],cst_13559)} - function _a4B_(param) - {switch(categorie_equivalence_loyer_d8[0]) - {case 0:var _a4C_=1;break; - case 1:var _a4C_=0;break; - case 2:var _a4C_=0;break; - default:var _a4C_=0} + (Runtime_ocaml_Runtime[28], _uC_, Runtime_ocaml_Runtime[12], _aSa_); + } + catch(_a0Y_){ + var _aR9_ = caml_wrap_exception(_a0Y_); + if(_aR9_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _uz_], 1); + throw caml_maybe_attach_backtrace(_aR9_, 0); + } + try{ + var + _aSc_ = function(param){return nombre_personnes_a_charge;}, + _aSd_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _uE_, 1); + }, + _aSe_ = caml_call4(Runtime_ocaml_Runtime[63], _uF_, [0], _aSd_, _aSc_), + calcul_nombre_parts_dot_nombre = + caml_call3 + (Runtime_ocaml_Runtime[28], _uG_, Runtime_ocaml_Runtime[14], _aSe_); + } + catch(_a0X_){ + var _aSb_ = caml_wrap_exception(_a0X_); + if(_aSb_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _uD_], 1); + throw caml_maybe_attach_backtrace(_aSb_, 0); + } + try{ + var + _aSg_ = function(param){return situation_familiale_calcul_apl;}, + _aSh_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _uI_, 1); + }, + _aSi_ = caml_call4(Runtime_ocaml_Runtime[63], _uJ_, [0], _aSh_, _aSg_), + calcul_nombre_parts_dot_situat = + caml_call3 + (Runtime_ocaml_Runtime[28], + _uK_, + embed_situation_familiale_calc, + _aSi_); + } + catch(_a0W_){ + var _aSf_ = caml_wrap_exception(_a0W_); + if(_aSf_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _uH_], 1); + throw caml_maybe_attach_backtrace(_aSf_, 0); + } + try{ + var + _aSk_ = function(param){return residence;}, + _aSl_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _uM_, 1); + }, + _aSm_ = caml_call4(Runtime_ocaml_Runtime[63], _uN_, [0], _aSl_, _aSk_), + calcul_nombre_parts_dot_reside = + caml_call3(Runtime_ocaml_Runtime[28], _uO_, embed_collectivite, _aSm_); + } + catch(_a0V_){ + var _aSj_ = caml_wrap_exception(_a0V_); + if(_aSj_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _uL_], 1); + throw caml_maybe_attach_backtrace(_aSj_, 0); + } + function calcul_nombre_parts_dot_limita(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + var + _aSn_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _uP_, calcul_nombre_part_logement_fo), + [0, + calcul_nombre_parts_dot_condit, + calcul_nombre_parts_dot_nombre, + calcul_nombre_parts_dot_situat, + calcul_nombre_parts_dot_reside, + calcul_nombre_parts_dot_limita]), + result = caml_call2(Runtime_ocaml_Runtime[27], _uQ_, _aSn_), + calcul_nombre_parts_dot_n_nomb = result[1]; + try{ + var + _aSp_ = function(param){return date_courante;}, + _aSq_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _uS_, 1); + }, + _aSr_ = caml_call4(Runtime_ocaml_Runtime[63], _uT_, [0], _aSq_, _aSp_), + contributions_sociales_dot_dat = + caml_call3 + (Runtime_ocaml_Runtime[28], _uU_, Runtime_ocaml_Runtime[16], _aSr_); + } + catch(_a0U_){ + var _aSo_ = caml_wrap_exception(_a0U_); + if(_aSo_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _uR_], 1); + throw caml_maybe_attach_backtrace(_aSo_, 0); + } + var + _aSs_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _uV_, contributions_sociales_aides_p), + [0, contributions_sociales_dot_dat]), + result$0 = caml_call2(Runtime_ocaml_Runtime[27], _uW_, _aSs_), + contributions_sociales_dot_mon = result$0[1]; + try{ + var + _aSu_ = function(param){return type_logement_foyer;}, + _aSv_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _uY_, 1); + }, + _aSw_ = caml_call4(Runtime_ocaml_Runtime[63], _uZ_, [0], _aSv_, _aSu_), + calcul_apl_logement_foyer_dot_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _u0_, embed_type_logement_foyer, _aSw_); + } + catch(_a0T_){ + var _aSt_ = caml_wrap_exception(_a0T_); + if(_aSt_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _uX_], 1); + throw caml_maybe_attach_backtrace(_aSt_, 0); + } + try{ + var + _aSy_ = function(param){return date_conventionnement;}, + _aSz_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _u2_, 1); + }, + _aSA_ = caml_call4(Runtime_ocaml_Runtime[63], _u3_, [0], _aSz_, _aSy_), + calcul_apl_logement_foyer_dot_$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _u4_, Runtime_ocaml_Runtime[16], _aSA_); + } + catch(_a0S_){ + var _aSx_ = caml_wrap_exception(_a0S_); + if(_aSx_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _u1_], 1); + throw caml_maybe_attach_backtrace(_aSx_, 0); + } + try{ + var + _aSC_ = function(param){return ressources_menage_arrondies;}, + _aSD_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _u6_, 1); + }, + _aSE_ = caml_call4(Runtime_ocaml_Runtime[63], _u7_, [0], _aSD_, _aSC_), + calcul_apl_logement_foyer_dot_$1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _u8_, Runtime_ocaml_Runtime[13], _aSE_); + } + catch(_a0R_){ + var _aSB_ = caml_wrap_exception(_a0R_); + if(_aSB_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _u5_], 1); + throw caml_maybe_attach_backtrace(_aSB_, 0); + } + try{ + var + _aSG_ = function(param){return nombre_personnes_a_charge;}, + _aSH_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _u__, 1); + }, + _aSI_ = caml_call4(Runtime_ocaml_Runtime[63], _u$_, [0], _aSH_, _aSG_), + calcul_apl_logement_foyer_dot_$2 = + caml_call3 + (Runtime_ocaml_Runtime[28], _va_, Runtime_ocaml_Runtime[14], _aSI_); + } + catch(_a0Q_){ + var _aSF_ = caml_wrap_exception(_a0Q_); + if(_aSF_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _u9_], 1); + throw caml_maybe_attach_backtrace(_aSF_, 0); + } + try{ + var + _aSK_ = function(param){return situation_familiale_calcul_apl;}, + _aSL_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _vc_, 1); + }, + _aSM_ = caml_call4(Runtime_ocaml_Runtime[63], _vd_, [0], _aSL_, _aSK_), + calcul_apl_logement_foyer_dot_$3 = + caml_call3 + (Runtime_ocaml_Runtime[28], + _ve_, + embed_situation_familiale_calc, + _aSM_); + } + catch(_a0P_){ + var _aSJ_ = caml_wrap_exception(_a0P_); + if(_aSJ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _vb_], 1); + throw caml_maybe_attach_backtrace(_aSJ_, 0); + } + try{ + var + _aSO_ = function(param){return zone;}, + _aSP_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _vg_, 1); + }, + _aSQ_ = caml_call4(Runtime_ocaml_Runtime[63], _vh_, [0], _aSP_, _aSO_), + calcul_apl_logement_foyer_dot_$4 = + caml_call3 + (Runtime_ocaml_Runtime[28], _vi_, embed_zone_d_habitation, _aSQ_); + } + catch(_a0O_){ + var _aSN_ = caml_wrap_exception(_a0O_); + if(_aSN_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _vf_], 1); + throw caml_maybe_attach_backtrace(_aSN_, 0); + } + try{ + var + _aSS_ = function(param){return date_courante;}, + _aST_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _vk_, 1); + }, + _aSU_ = caml_call4(Runtime_ocaml_Runtime[63], _vl_, [0], _aST_, _aSS_), + calcul_apl_logement_foyer_dot_$5 = + caml_call3 + (Runtime_ocaml_Runtime[28], _vm_, Runtime_ocaml_Runtime[16], _aSU_); + } + catch(_a0N_){ + var _aSR_ = caml_wrap_exception(_a0N_); + if(_aSR_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _vj_], 1); + throw caml_maybe_attach_backtrace(_aSR_, 0); + } + try{ + var + _aSW_ = function(param){return redevance;}, + _aSX_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _vo_, 1); + }, + _aSY_ = caml_call4(Runtime_ocaml_Runtime[63], _vp_, [0], _aSX_, _aSW_), + calcul_apl_logement_foyer_dot_$6 = + caml_call3 + (Runtime_ocaml_Runtime[28], _vq_, Runtime_ocaml_Runtime[13], _aSY_); + } + catch(_a0M_){ + var _aSV_ = caml_wrap_exception(_a0M_); + if(_aSV_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _vn_], 1); + throw caml_maybe_attach_backtrace(_aSV_, 0); + } + try{ + var + _aS0_ = function(param){return residence;}, + _aS1_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _vs_, 1); + }, + _aS2_ = caml_call4(Runtime_ocaml_Runtime[63], _vt_, [0], _aS1_, _aS0_), + calcul_apl_logement_foyer_dot_$7 = + caml_call3(Runtime_ocaml_Runtime[28], _vu_, embed_collectivite, _aS2_); + } + catch(_a0L_){ + var _aSZ_ = caml_wrap_exception(_a0L_); + if(_aSZ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _vr_], 1); + throw caml_maybe_attach_backtrace(_aSZ_, 0); + } + function calcul_apl_logement_foyer_dot_$8(param){ + function _a0I_(param){return 1;} + function _a0J_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _vv_, 1); + } + var + _a0K_ = caml_call4(Runtime_ocaml_Runtime[63], _vw_, [0], _a0J_, _a0I_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _vx_, + Runtime_ocaml_Runtime[12], + _a0K_); + } + function calcul_apl_logement_foyer_dot_$9(param){ + function _a0E_(param){return 1;} + function _a0F_(param){ + switch(residence[0]){ + case 0: + var _a0H_ = 1; break; + case 1: + var _a0H_ = 1; break; + case 2: + var _a0H_ = 1; break; + case 3: + var _a0H_ = 1; break; + case 4: + var _a0H_ = 0; break; + case 5: + var _a0H_ = 0; break; + case 6: + var _a0H_ = 0; break; + case 7: + var _a0H_ = 0; break; + default: var _a0H_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _vy_, _a0H_); + } + var + _a0G_ = caml_call4(Runtime_ocaml_Runtime[63], _vz_, [0], _a0F_, _a0E_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _vA_, + Runtime_ocaml_Runtime[12], + _a0G_); + } + function calcul_apl_logement_foyer_dot_$10(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + var + _aS3_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _vB_, calcul_aide_personnalisee_loge$0), + [0, + calcul_apl_logement_foyer_dot_, + calcul_apl_logement_foyer_dot_$0, + calcul_apl_logement_foyer_dot_$1, + calcul_apl_logement_foyer_dot_$2, + calcul_apl_logement_foyer_dot_$3, + calcul_apl_logement_foyer_dot_$4, + calcul_apl_logement_foyer_dot_$5, + calcul_apl_logement_foyer_dot_$6, + calcul_apl_logement_foyer_dot_$7, + calcul_apl_logement_foyer_dot_$8, + calcul_apl_logement_foyer_dot_$9, + calcul_apl_logement_foyer_dot_$10]), + result$1 = caml_call2(Runtime_ocaml_Runtime[27], _vC_, _aS3_), + calcul_apl_logement_foyer_dot_$11 = result$1[7]; + try{ + var + _aS5_ = + function(param){ + function _a0p_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _a0q_(param){return 0;} + var + _a0r_ = + [0, + function(param){ + function _a0s_(param){ + return caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge); + } + function _a0t_(param){ var - _a4D_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _a4E_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a4D_), - _a4F_=caml_call2(Runtime_ocaml_Runtime[83],_a4E_,_a4C_); - return caml_call2(Runtime_ocaml_Runtime[29],_Gq_,_a4F_)} - return caml_call4(Runtime_ocaml_Runtime[63],_Gr_,[0],_a4B_,_a4A_)}, - _a2T_, - _a2S_, - _a2R_, - _a2Q_, - _a2P_, - _a2O_, - _a2N_, - _a2M_], - _a2V_=caml_call4(Runtime_ocaml_Runtime[63],_Gs_,_a2U_,_a2L_,_a2K_)} - catch(_a4z_) - {_a4z_ = caml_wrap_exception(_a4z_); - if(_a4z_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_F5_]; - throw _a4z_} - var - equivalence_loyer= + _a0C_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _a0D_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a0C_); + return caml_call2(Runtime_ocaml_Runtime[29], _vE_, _a0D_); + } + var + _a0u_ = + [0, + function(param){ + function _a0v_(param){ + return caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge); + } + function _a0w_(param){ + var + _a0x_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _a0y_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _a0x_), + _a0z_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _a0A_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a0z_), + _a0B_ = caml_call2(Runtime_ocaml_Runtime[83], _a0A_, _a0y_); + return caml_call2(Runtime_ocaml_Runtime[29], _vF_, _a0B_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _vG_, [0], _a0w_, _a0v_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _vH_, _a0u_, _a0t_, _a0s_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _vI_, _a0r_, _a0q_, _a0p_); + }, + _aS6_ = function(param){return 1;}, + _aS7_ = + [0, + function(param){ + function _aZm_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _aZn_(param){return 0;} + var + _aZo_ = + [0, + function(param){ + function _aZp_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_6$47); + } + function _aZq_(param){ + var + _a0f_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$48), + _a0g_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _a0f_); + switch(residence[0]){ + case 0: + var _a0h_ = 1; break; + case 1: + var _a0h_ = 0; break; + case 2: + var _a0h_ = 1; break; + case 3: + var _a0h_ = 1; break; + case 4: + var _a0h_ = 1; break; + case 5: + var _a0h_ = 1; break; + case 6: + var _a0h_ = 0; break; + case 7: + var _a0h_ = 0; break; + default: var _a0h_ = 1; + } + var + _a0i_ = caml_call2(Runtime_ocaml_Runtime[83], _a0h_, _a0g_), + _a0j_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _a0k_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _a0j_), + _a0l_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _a0m_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a0l_), + _a0n_ = caml_call2(Runtime_ocaml_Runtime[83], _a0m_, _a0k_), + _a0o_ = caml_call2(Runtime_ocaml_Runtime[83], _a0n_, _a0i_); + return caml_call2(Runtime_ocaml_Runtime[29], _vJ_, _a0o_); + } + var + _aZr_ = + [0, + function(param){ + function _aZs_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_6$49); + } + function _aZt_(param){ + var + _aZ7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$50), + _aZ8_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _aZ7_); + switch(residence[0]){ + case 0: + var _aZ9_ = 1; break; + case 1: + var _aZ9_ = 0; break; + case 2: + var _aZ9_ = 1; break; + case 3: + var _aZ9_ = 1; break; + case 4: + var _aZ9_ = 1; break; + case 5: + var _aZ9_ = 1; break; + case 6: + var _aZ9_ = 0; break; + case 7: + var _aZ9_ = 0; break; + default: var _aZ9_ = 1; + } + var + _aZ__ = caml_call2(Runtime_ocaml_Runtime[83], _aZ9_, _aZ8_), + _aZ$_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _a0a_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aZ$_), + _a0b_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _a0c_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a0b_), + _a0d_ = caml_call2(Runtime_ocaml_Runtime[83], _a0c_, _a0a_), + _a0e_ = caml_call2(Runtime_ocaml_Runtime[83], _a0d_, _aZ__); + return caml_call2(Runtime_ocaml_Runtime[29], _vK_, _a0e_); + } + var + _aZu_ = + [0, + function(param){ + function _aZv_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_6$51); + } + function _aZw_(param){ + var + _aZX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$52), + _aZY_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _aZX_); + switch(residence[0]){ + case 0: + var _aZZ_ = 1; break; + case 1: + var _aZZ_ = 0; break; + case 2: + var _aZZ_ = 1; break; + case 3: + var _aZZ_ = 1; break; + case 4: + var _aZZ_ = 1; break; + case 5: + var _aZZ_ = 1; break; + case 6: + var _aZZ_ = 0; break; + case 7: + var _aZZ_ = 0; break; + default: var _aZZ_ = 1; + } + var + _aZ0_ = caml_call2(Runtime_ocaml_Runtime[83], _aZZ_, _aZY_), + _aZ1_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _aZ2_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aZ1_), + _aZ3_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aZ4_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aZ3_), + _aZ5_ = caml_call2(Runtime_ocaml_Runtime[83], _aZ4_, _aZ2_), + _aZ6_ = caml_call2(Runtime_ocaml_Runtime[83], _aZ5_, _aZ0_); + return caml_call2(Runtime_ocaml_Runtime[29], _vL_, _aZ6_); + } + var + _aZx_ = + [0, + function(param){ + function _aZy_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_6$53); + } + function _aZz_(param){ + var + _aZN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$54), + _aZO_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _aZN_); + switch(residence[0]){ + case 0: + var _aZP_ = 1; break; + case 1: + var _aZP_ = 0; break; + case 2: + var _aZP_ = 1; break; + case 3: + var _aZP_ = 1; break; + case 4: + var _aZP_ = 1; break; + case 5: + var _aZP_ = 1; break; + case 6: + var _aZP_ = 0; break; + case 7: + var _aZP_ = 0; break; + default: var _aZP_ = 1; + } + var + _aZQ_ = caml_call2(Runtime_ocaml_Runtime[83], _aZP_, _aZO_), + _aZR_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aZS_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aZR_), + _aZT_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _aZU_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aZT_), + _aZV_ = caml_call2(Runtime_ocaml_Runtime[83], _aZU_, _aZS_), + _aZW_ = caml_call2(Runtime_ocaml_Runtime[83], _aZV_, _aZQ_); + return caml_call2(Runtime_ocaml_Runtime[29], _vM_, _aZW_); + } + var + _aZA_ = + [0, + function(param){ + function _aZB_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_6$55); + } + function _aZC_(param){ + var + _aZD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$56), + _aZE_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _aZD_); + switch(residence[0]){ + case 0: + var _aZF_ = 1; break; + case 1: + var _aZF_ = 0; break; + case 2: + var _aZF_ = 1; break; + case 3: + var _aZF_ = 1; break; + case 4: + var _aZF_ = 1; break; + case 5: + var _aZF_ = 1; break; + case 6: + var _aZF_ = 0; break; + case 7: + var _aZF_ = 0; break; + default: var _aZF_ = 1; + } + var + _aZG_ = caml_call2(Runtime_ocaml_Runtime[83], _aZF_, _aZE_), + _aZH_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _aZI_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aZH_), + _aZJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aZK_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aZJ_), + _aZL_ = caml_call2(Runtime_ocaml_Runtime[83], _aZK_, _aZI_), + _aZM_ = caml_call2(Runtime_ocaml_Runtime[83], _aZL_, _aZG_); + return caml_call2(Runtime_ocaml_Runtime[29], _vN_, _aZM_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _vO_, [0], _aZC_, _aZB_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _vP_, _aZA_, _aZz_, _aZy_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _vQ_, _aZx_, _aZw_, _aZv_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _vR_, _aZu_, _aZt_, _aZs_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _vS_, _aZr_, _aZq_, _aZp_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _vT_, _aZo_, _aZn_, _aZm_); + }], + _aS8_ = caml_call4(Runtime_ocaml_Runtime[63], _vU_, _aS7_, _aS6_, _aS5_); + } + catch(_aZl_){ + var _aS4_ = caml_wrap_exception(_aZl_); + if(_aS4_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _vD_], 1); + throw caml_maybe_attach_backtrace(_aS4_, 0); + } + var + multiplicateur_majoration_char = + caml_call3 + (Runtime_ocaml_Runtime[28], _vV_, Runtime_ocaml_Runtime[15], _aS8_); + try{ + var + _aS__ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1500$0); + }, + _aS$_ = + function(param){ + var + _aZj_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _aZk_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aZj_); + return caml_call2(Runtime_ocaml_Runtime[29], _vX_, _aZk_); + }, + _aTa_ = caml_call4(Runtime_ocaml_Runtime[63], _vY_, [0], _aS$_, _aS__); + } + catch(_aZi_){ + var _aS9_ = caml_wrap_exception(_aZi_); + if(_aS9_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _vW_], 1); + throw caml_maybe_attach_backtrace(_aS9_, 0); + } + var + montant_minimal_depense_nette_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _vZ_, Runtime_ocaml_Runtime[13], _aTa_); + try{ + var + _aTc_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_500$2); + }, + _aTd_ = + function(param){ + var + _aZg_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _aZh_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aZg_); + return caml_call2(Runtime_ocaml_Runtime[29], _v1_, _aZh_); + }, + _aTe_ = caml_call4(Runtime_ocaml_Runtime[63], _v2_, [0], _aTd_, _aTc_); + } + catch(_aZf_){ + var _aTb_ = caml_wrap_exception(_aZf_); + if(_aTb_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _v0_], 1); + throw caml_maybe_attach_backtrace(_aTb_, 0); + } + var + montant_forfaitaire_d842_15 = + caml_call3 + (Runtime_ocaml_Runtime[28], _v3_, Runtime_ocaml_Runtime[13], _aTe_); + try{ + var + _aTg_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1000$3); + }, + _aTh_ = + function(param){ + var + _aZd_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _aZe_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aZd_); + return caml_call2(Runtime_ocaml_Runtime[29], _v5_, _aZe_); + }, + _aTi_ = caml_call4(Runtime_ocaml_Runtime[63], _v6_, [0], _aTh_, _aTg_); + } + catch(_aZc_){ + var _aTf_ = caml_wrap_exception(_aZc_); + if(_aTf_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _v4_], 1); + throw caml_maybe_attach_backtrace(_aTf_, 0); + } + var + montant_minimal_aide_d842_15 = + caml_call3 + (Runtime_ocaml_Runtime[28], _v7_, Runtime_ocaml_Runtime[13], _aTi_); + try{ + var + _aTk_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _aTl_ = function(param){return 0;}, + _aTm_ = + function(param){ + function _aYV_(param){ + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_16941) + : caml_call1(Runtime_ocaml_Runtime[31], cst_26329); + } + function _aYW_(param){ + switch(categorie_equivalence_loyer_d8[0]){ + case 0: + var _aY7_ = 0; break; + case 1: + var _aY7_ = 1; break; + case 2: + var _aY7_ = 0; break; + default: var _aY7_ = 0; + } + var + _aY8_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aY9_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aY8_), + _aY__ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _aY$_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aY__), + _aZa_ = caml_call2(Runtime_ocaml_Runtime[83], _aY$_, _aY9_), + _aZb_ = caml_call2(Runtime_ocaml_Runtime[83], _aZa_, _aY7_); + return caml_call2(Runtime_ocaml_Runtime[29], _v9_, _aZb_); + } + var + _aYX_ = + [0, + function(param){ + function _aYY_(param){ + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_16941$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_26329$0); + } + function _aYZ_(param){ + switch(categorie_equivalence_loyer_d8[0]){ + case 0: + var _aY0_ = 0; break; + case 1: + var _aY0_ = 0; break; + case 2: + var _aY0_ = 0; break; + default: var _aY0_ = 1; + } + var + _aY1_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aY2_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aY1_), + _aY3_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _aY4_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aY3_), + _aY5_ = caml_call2(Runtime_ocaml_Runtime[83], _aY4_, _aY2_), + _aY6_ = caml_call2(Runtime_ocaml_Runtime[83], _aY5_, _aY0_); + return caml_call2(Runtime_ocaml_Runtime[29], _v__, _aY6_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _v$_, [0], _aYZ_, _aYY_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _wa_, _aYX_, _aYW_, _aYV_); + }, + _aTn_ = + function(param){ + function _aYM_(param){ + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_20554) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31939); + } + function _aYN_(param){ + switch(categorie_equivalence_loyer_d8[0]){ + case 0: + var _aYO_ = 0; break; + case 1: + var _aYO_ = 0; break; + case 2: + var _aYO_ = 1; break; + default: var _aYO_ = 0; + } + var + _aYP_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aYQ_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aYP_), + _aYR_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _aYS_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aYR_), + _aYT_ = caml_call2(Runtime_ocaml_Runtime[83], _aYS_, _aYQ_), + _aYU_ = caml_call2(Runtime_ocaml_Runtime[83], _aYT_, _aYO_); + return caml_call2(Runtime_ocaml_Runtime[29], _wb_, _aYU_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _wc_, [0], _aYN_, _aYM_); + }, + _aTo_ = + function(param){ + function _aYD_(param){ + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_8379) + : caml_call1(Runtime_ocaml_Runtime[31], cst_13045); + } + function _aYE_(param){ + switch(categorie_equivalence_loyer_d8[0]){ + case 0: + var _aYF_ = 1; break; + case 1: + var _aYF_ = 0; break; + case 2: + var _aYF_ = 0; break; + default: var _aYF_ = 0; + } + var + _aYG_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aYH_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aYG_), + _aYI_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _aYJ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aYI_), + _aYK_ = caml_call2(Runtime_ocaml_Runtime[83], _aYJ_, _aYH_), + _aYL_ = caml_call2(Runtime_ocaml_Runtime[83], _aYK_, _aYF_); + return caml_call2(Runtime_ocaml_Runtime[29], _wd_, _aYL_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _we_, [0], _aYE_, _aYD_); + }, + _aTp_ = + function(param){ + function _aYk_(param){ + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_17012) + : caml_call1(Runtime_ocaml_Runtime[31], cst_26440); + } + function _aYl_(param){ + switch(categorie_equivalence_loyer_d8[0]){ + case 0: + var _aYw_ = 0; break; + case 1: + var _aYw_ = 1; break; + case 2: + var _aYw_ = 0; break; + default: var _aYw_ = 0; + } + var + _aYx_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aYy_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aYx_), + _aYz_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aYA_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aYz_), + _aYB_ = caml_call2(Runtime_ocaml_Runtime[83], _aYA_, _aYy_), + _aYC_ = caml_call2(Runtime_ocaml_Runtime[83], _aYB_, _aYw_); + return caml_call2(Runtime_ocaml_Runtime[29], _wf_, _aYC_); + } + var + _aYm_ = + [0, + function(param){ + function _aYn_(param){ + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_17012$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_26440$0); + } + function _aYo_(param){ + switch(categorie_equivalence_loyer_d8[0]){ + case 0: + var _aYp_ = 0; break; + case 1: + var _aYp_ = 0; break; + case 2: + var _aYp_ = 0; break; + default: var _aYp_ = 1; + } + var + _aYq_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aYr_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aYq_), + _aYs_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aYt_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aYs_), + _aYu_ = caml_call2(Runtime_ocaml_Runtime[83], _aYt_, _aYr_), + _aYv_ = caml_call2(Runtime_ocaml_Runtime[83], _aYu_, _aYp_); + return caml_call2(Runtime_ocaml_Runtime[29], _wg_, _aYv_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _wh_, [0], _aYo_, _aYn_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _wi_, _aYm_, _aYl_, _aYk_); + }, + _aTq_ = + function(param){ + function _aYb_(param){ + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_20640) + : caml_call1(Runtime_ocaml_Runtime[31], cst_32073); + } + function _aYc_(param){ + switch(categorie_equivalence_loyer_d8[0]){ + case 0: + var _aYd_ = 0; break; + case 1: + var _aYd_ = 0; break; + case 2: + var _aYd_ = 1; break; + default: var _aYd_ = 0; + } + var + _aYe_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aYf_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aYe_), + _aYg_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aYh_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aYg_), + _aYi_ = caml_call2(Runtime_ocaml_Runtime[83], _aYh_, _aYf_), + _aYj_ = caml_call2(Runtime_ocaml_Runtime[83], _aYi_, _aYd_); + return caml_call2(Runtime_ocaml_Runtime[29], _wj_, _aYj_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _wk_, [0], _aYc_, _aYb_); + }, + _aTr_ = + function(param){ + function _aX4_(param){ + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_8414) + : caml_call1(Runtime_ocaml_Runtime[31], cst_13100); + } + function _aX5_(param){ + switch(categorie_equivalence_loyer_d8[0]){ + case 0: + var _aX6_ = 1; break; + case 1: + var _aX6_ = 0; break; + case 2: + var _aX6_ = 0; break; + default: var _aX6_ = 0; + } + var + _aX7_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aX8_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aX7_), + _aX9_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aX__ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aX9_), + _aX$_ = caml_call2(Runtime_ocaml_Runtime[83], _aX__, _aX8_), + _aYa_ = caml_call2(Runtime_ocaml_Runtime[83], _aX$_, _aX6_); + return caml_call2(Runtime_ocaml_Runtime[29], _wl_, _aYa_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _wm_, [0], _aX5_, _aX4_); + }, + _aTs_ = + function(param){ + function _aXR_(param){ + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_17607) + : caml_call1(Runtime_ocaml_Runtime[31], cst_27365); + } + function _aXS_(param){ + switch(categorie_equivalence_loyer_d8[0]){ + case 0: + var _aX0_ = 0; break; + case 1: + var _aX0_ = 1; break; + case 2: + var _aX0_ = 0; break; + default: var _aX0_ = 0; + } + var + _aX1_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aX2_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aX1_), + _aX3_ = caml_call2(Runtime_ocaml_Runtime[83], _aX2_, _aX0_); + return caml_call2(Runtime_ocaml_Runtime[29], _wn_, _aX3_); + } + var + _aXT_ = + [0, + function(param){ + function _aXU_(param){ + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_17607$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_27365$0); + } + function _aXV_(param){ + switch(categorie_equivalence_loyer_d8[0]){ + case 0: + var _aXW_ = 0; break; + case 1: + var _aXW_ = 0; break; + case 2: + var _aXW_ = 0; break; + default: var _aXW_ = 1; + } + var + _aXX_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aXY_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aXX_), + _aXZ_ = caml_call2(Runtime_ocaml_Runtime[83], _aXY_, _aXW_); + return caml_call2(Runtime_ocaml_Runtime[29], _wo_, _aXZ_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _wp_, [0], _aXV_, _aXU_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _wq_, _aXT_, _aXS_, _aXR_); + }, + _aTt_ = + function(param){ + function _aXL_(param){ + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_21362) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33196); + } + function _aXM_(param){ + switch(categorie_equivalence_loyer_d8[0]){ + case 0: + var _aXN_ = 0; break; + case 1: + var _aXN_ = 0; break; + case 2: + var _aXN_ = 1; break; + default: var _aXN_ = 0; + } + var + _aXO_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aXP_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aXO_), + _aXQ_ = caml_call2(Runtime_ocaml_Runtime[83], _aXP_, _aXN_); + return caml_call2(Runtime_ocaml_Runtime[29], _wr_, _aXQ_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _ws_, [0], _aXM_, _aXL_); + }, + _aTu_ = + [0, + function(param){ + function _aXF_(param){ + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_8708) + : caml_call1(Runtime_ocaml_Runtime[31], cst_13559); + } + function _aXG_(param){ + switch(categorie_equivalence_loyer_d8[0]){ + case 0: + var _aXH_ = 1; break; + case 1: + var _aXH_ = 0; break; + case 2: + var _aXH_ = 0; break; + default: var _aXH_ = 0; + } + var + _aXI_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aXJ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aXI_), + _aXK_ = caml_call2(Runtime_ocaml_Runtime[83], _aXJ_, _aXH_); + return caml_call2(Runtime_ocaml_Runtime[29], _wt_, _aXK_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _wu_, [0], _aXG_, _aXF_); + }, + _aTt_, + _aTs_, + _aTr_, + _aTq_, + _aTp_, + _aTo_, + _aTn_, + _aTm_], + _aTv_ = caml_call4(Runtime_ocaml_Runtime[63], _wv_, _aTu_, _aTl_, _aTk_); + } + catch(_aXE_){ + var _aTj_ = caml_wrap_exception(_aXE_); + if(_aTj_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _v8_], 1); + throw caml_maybe_attach_backtrace(_aTj_, 0); + } + var + equivalence_loyer = + caml_call3 + (Runtime_ocaml_Runtime[28], _ww_, Runtime_ocaml_Runtime[13], _aTv_); + try{ + var + _aTx_ = function(param){return date_courante;}, + _aTy_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _wy_, 1); + }, + _aTz_ = caml_call4(Runtime_ocaml_Runtime[63], _wz_, [0], _aTy_, _aTx_), + calcul_equivalence_loyer_minim$0 = caml_call3 - (Runtime_ocaml_Runtime[28],_Gt_,Runtime_ocaml_Runtime[13],_a2V_); - function _a2W_(aide_finale) - {try - {var - _a4t_= - function(param) - {var - _a4x_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$310), - _a4y_= - caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale, - montant_forfaitaire_d842_15); - return caml_call2(Runtime_ocaml_Runtime[113],_a4y_,_a4x_) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$311) - :caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale, - montant_forfaitaire_d842_15)}, - _a4u_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Gv_,1)}, - _a4v_=caml_call4(Runtime_ocaml_Runtime[63],_Gw_,[0],_a4u_,_a4t_); - return _a4v_} - catch(_a4w_) - {_a4w_ = caml_wrap_exception(_a4w_); - if(_a4w_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Gu_]; - throw _a4w_}} - var - traitement_aide_finale_minorat= + (Runtime_ocaml_Runtime[28], _wA_, Runtime_ocaml_Runtime[16], _aTz_); + } + catch(_aXD_){ + var _aTw_ = caml_wrap_exception(_aXD_); + if(_aTw_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _wx_], 1); + throw caml_maybe_attach_backtrace(_aTw_, 0); + } + try{ + var + _aTB_ = function(param){return ressources_menage_arrondies;}, + _aTC_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _wC_, 1); + }, + _aTD_ = caml_call4(Runtime_ocaml_Runtime[63], _wD_, [0], _aTC_, _aTB_), + calcul_equivalence_loyer_minim$1 = caml_call3 - (Runtime_ocaml_Runtime[28],_Gx_,Runtime_ocaml_Runtime[10],_a2W_); - try - {var - _a2X_=function(param){return date_courante}, - _a2Y_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Gz_,1)}, - _a2Z_=caml_call4(Runtime_ocaml_Runtime[63],_GA_,[0],_a2Y_,_a2X_), - calcul_equivalence_loyer_minim$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_GB_,Runtime_ocaml_Runtime[16],_a2Z_)} - catch(_a4s_) - {_a4s_ = caml_wrap_exception(_a4s_); - if(_a4s_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Gy_]; - throw _a4s_} - try - {var - _a20_=function(param){return ressources_menage_arrondies}, - _a21_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_GD_,1)}, - _a22_=caml_call4(Runtime_ocaml_Runtime[63],_GE_,[0],_a21_,_a20_), - calcul_equivalence_loyer_minim$1= - caml_call3 - (Runtime_ocaml_Runtime[28],_GF_,Runtime_ocaml_Runtime[13],_a22_)} - catch(_a4r_) - {_a4r_ = caml_wrap_exception(_a4r_); - if(_a4r_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_GC_]; - throw _a4r_} - try - {var - _a23_=function(param){return 1}, - _a24_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_GH_,1)}, - _a25_=caml_call4(Runtime_ocaml_Runtime[63],_GI_,[0],_a24_,_a23_), - calcul_equivalence_loyer_minim$2= - caml_call3 - (Runtime_ocaml_Runtime[28],_GJ_,Runtime_ocaml_Runtime[12],_a25_)} - catch(_a4q_) - {_a4q_ = caml_wrap_exception(_a4q_); - if(_a4q_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_GG_]; - throw _a4q_} - try - {var - _a26_=function(param){return calcul_nombre_parts_dot_n_nomb}, - _a27_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_GL_,1)}, - _a28_=caml_call4(Runtime_ocaml_Runtime[63],_GM_,[0],_a27_,_a26_), - calcul_equivalence_loyer_minim$3= - caml_call3 - (Runtime_ocaml_Runtime[28],_GN_,Runtime_ocaml_Runtime[15],_a28_)} - catch(_a4p_) - {_a4p_ = caml_wrap_exception(_a4p_); - if(_a4p_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_GK_]; - throw _a4p_} - var - _a29_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_GO_,calcul_equivalence_loyer_minim), - [0, - calcul_equivalence_loyer_minim$0, - calcul_equivalence_loyer_minim$1, - calcul_equivalence_loyer_minim$2, - calcul_equivalence_loyer_minim$3]), - result$2=caml_call2(Runtime_ocaml_Runtime[27],_GP_,_a29_), - calcul_equivalence_loyer_minim$4=result$2[1]; - try - {var - _a2__=function(param){return calcul_apl_logement_foyer_dot_$11}, - _a2$_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_GR_,1)}, - _a3a_=caml_call4(Runtime_ocaml_Runtime[63],_GS_,[0],_a2$_,_a2__)} - catch(_a4o_) - {_a4o_ = caml_wrap_exception(_a4o_); - if(_a4o_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_GQ_]; - throw _a4o_} - var - coefficient_prise_en_charge= + (Runtime_ocaml_Runtime[28], _wE_, Runtime_ocaml_Runtime[13], _aTD_); + } + catch(_aXC_){ + var _aTA_ = caml_wrap_exception(_aXC_); + if(_aTA_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _wB_], 1); + throw caml_maybe_attach_backtrace(_aTA_, 0); + } + try{ + var + _aTF_ = function(param){return 1;}, + _aTG_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _wG_, 1); + }, + _aTH_ = caml_call4(Runtime_ocaml_Runtime[63], _wH_, [0], _aTG_, _aTF_), + calcul_equivalence_loyer_minim$2 = caml_call3 - (Runtime_ocaml_Runtime[28],_GT_,Runtime_ocaml_Runtime[15],_a3a_); - function _a3b_(allocation_mensuelle) - {try - {var - _a4j_= - function(param) - {var - _a4n_= - caml_call2 - (Runtime_ocaml_Runtime[93], - equivalence_loyer, - montant_forfaitaire_charges); - return caml_call2 - (Runtime_ocaml_Runtime[98],_a4n_,allocation_mensuelle)}, - _a4k_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_GV_,1)}, - _a4l_=caml_call4(Runtime_ocaml_Runtime[63],_GW_,[0],_a4k_,_a4j_); - return _a4l_} - catch(_a4m_) - {_a4m_ = caml_wrap_exception(_a4m_); - if(_a4m_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_GU_]; - throw _a4m_}} - var - depense_nette_minimale= + (Runtime_ocaml_Runtime[28], _wI_, Runtime_ocaml_Runtime[12], _aTH_); + } + catch(_aXB_){ + var _aTE_ = caml_wrap_exception(_aXB_); + if(_aTE_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _wF_], 1); + throw caml_maybe_attach_backtrace(_aTE_, 0); + } + try{ + var + _aTJ_ = function(param){return calcul_nombre_parts_dot_n_nomb;}, + _aTK_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _wK_, 1); + }, + _aTL_ = caml_call4(Runtime_ocaml_Runtime[63], _wL_, [0], _aTK_, _aTJ_), + calcul_equivalence_loyer_minim$3 = caml_call3 - (Runtime_ocaml_Runtime[28],_GX_,Runtime_ocaml_Runtime[10],_a3b_); - try - {var - _a3c_=function(param){return calcul_equivalence_loyer_minim$4}, - _a3d_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_GZ_,1)}, - _a3e_=caml_call4(Runtime_ocaml_Runtime[63],_G0_,[0],_a3d_,_a3c_)} - catch(_a4i_) - {_a4i_ = caml_wrap_exception(_a4i_); - if(_a4i_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_GY_]; - throw _a4i_} + (Runtime_ocaml_Runtime[28], _wM_, Runtime_ocaml_Runtime[15], _aTL_); + } + catch(_aXA_){ + var _aTI_ = caml_wrap_exception(_aXA_); + if(_aTI_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _wJ_], 1); + throw caml_maybe_attach_backtrace(_aTI_, 0); + } + var + _aTM_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _wN_, calcul_equivalence_loyer_minim), + [0, + calcul_equivalence_loyer_minim$0, + calcul_equivalence_loyer_minim$1, + calcul_equivalence_loyer_minim$2, + calcul_equivalence_loyer_minim$3]), + result$2 = caml_call2(Runtime_ocaml_Runtime[27], _wO_, _aTM_), + calcul_equivalence_loyer_minim$4 = result$2[1]; + try{ + var + _aTO_ = function(param){return calcul_apl_logement_foyer_dot_$11;}, + _aTP_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _wQ_, 1); + }, + _aTQ_ = caml_call4(Runtime_ocaml_Runtime[63], _wR_, [0], _aTP_, _aTO_); + } + catch(_aXz_){ + var _aTN_ = caml_wrap_exception(_aXz_); + if(_aTN_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _wP_], 1); + throw caml_maybe_attach_backtrace(_aTN_, 0); + } + var + coefficient_prise_en_charge = + caml_call3 + (Runtime_ocaml_Runtime[28], _wS_, Runtime_ocaml_Runtime[15], _aTQ_); + try{ + var + _aTS_ = + function(param){ + function _aW1_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _aW2_(param){return 0;} + function _aW3_(param){ + function _aXn_(param){ + var _aXu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$248); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aXu_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_5399$3); + var + _aXv_ = + caml_call1(Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _aXw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1224$3), + _aXx_ = caml_call2(Runtime_ocaml_Runtime[104], _aXw_, _aXv_), + _aXy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5399$4); + return caml_call2(Runtime_ocaml_Runtime[93], _aXy_, _aXx_); + } + function _aXo_(param){ + var + _aXp_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aXq_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aXp_), + _aXr_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _aXs_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aXr_), + _aXt_ = caml_call2(Runtime_ocaml_Runtime[83], _aXs_, _aXq_); + return caml_call2(Runtime_ocaml_Runtime[29], _wU_, _aXt_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _wV_, [0], _aXo_, _aXn_); + } + function _aW4_(param){ + function _aXc_(param){ + var _aXj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$249); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aXj_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_5422$3); + var + _aXk_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1229$3), + _aXl_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _aXk_, + multiplicateur_majoration_char), + _aXm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5422$4); + return caml_call2(Runtime_ocaml_Runtime[93], _aXm_, _aXl_); + } + function _aXd_(param){ + var + _aXe_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aXf_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aXe_), + _aXg_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aXh_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aXg_), + _aXi_ = caml_call2(Runtime_ocaml_Runtime[83], _aXh_, _aXf_); + return caml_call2(Runtime_ocaml_Runtime[29], _wW_, _aXi_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _wX_, [0], _aXd_, _aXc_); + } + var + _aW5_ = + [0, + function(param){ + function _aW6_(param){ + var _aW__ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$250); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aW__)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_5612$3); + var + _aW$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1272$3), + _aXa_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _aW$_, + multiplicateur_majoration_char), + _aXb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5612$4); + return caml_call2(Runtime_ocaml_Runtime[93], _aXb_, _aXa_); + } + function _aW7_(param){ + var + _aW8_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aW9_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aW8_); + return caml_call2(Runtime_ocaml_Runtime[29], _wY_, _aW9_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _wZ_, [0], _aW7_, _aW6_); + }, + _aW4_, + _aW3_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _w0_, _aW5_, _aW2_, _aW1_); + }, + _aTT_ = function(param){return 1;}, + _aTU_ = + [0, + function(param){ + function _aVp_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _aVq_(param){return 0;} + function _aVr_(param){ + function _aWK_(param){ + var + _aWT_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _aWU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$3), + _aWV_ = caml_call2(Runtime_ocaml_Runtime[104], _aWU_, _aWT_), + _aWW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3614$3), + montant = caml_call2(Runtime_ocaml_Runtime[93], _aWW_, _aWV_), + _aWX_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$57), + _aWY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$4), + _aWZ_ = caml_call2(Runtime_ocaml_Runtime[104], _aWY_, _aWX_), + _aW0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3614$4), + limite = caml_call2(Runtime_ocaml_Runtime[93], _aW0_, _aWZ_); + return caml_call2(Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _aWL_(param){ + switch(residence[0]){ + case 0: + var _aWM_ = 1; break; + case 1: + var _aWM_ = 0; break; + case 2: + var _aWM_ = 1; break; + case 3: + var _aWM_ = 1; break; + case 4: + var _aWM_ = 1; break; + case 5: + var _aWM_ = 1; break; + case 6: + var _aWM_ = 0; break; + case 7: + var _aWM_ = 0; break; + default: var _aWM_ = 1; + } + var + _aWN_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _aWO_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aWN_), + _aWP_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aWQ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aWP_), + _aWR_ = caml_call2(Runtime_ocaml_Runtime[83], _aWQ_, _aWO_), + _aWS_ = caml_call2(Runtime_ocaml_Runtime[83], _aWR_, _aWM_); + return caml_call2(Runtime_ocaml_Runtime[29], _w1_, _aWS_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _w2_, [0], _aWL_, _aWK_); + } + function _aVs_(param){ + function _aWt_(param){ + var + _aWC_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _aWD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$3), + _aWE_ = caml_call2(Runtime_ocaml_Runtime[104], _aWD_, _aWC_), + _aWF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3625$3), + montant = caml_call2(Runtime_ocaml_Runtime[93], _aWF_, _aWE_), + _aWG_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$58), + _aWH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$4), + _aWI_ = caml_call2(Runtime_ocaml_Runtime[104], _aWH_, _aWG_), + _aWJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3625$4), + limite = caml_call2(Runtime_ocaml_Runtime[93], _aWJ_, _aWI_); + return caml_call2(Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _aWu_(param){ + switch(residence[0]){ + case 0: + var _aWv_ = 1; break; + case 1: + var _aWv_ = 0; break; + case 2: + var _aWv_ = 1; break; + case 3: + var _aWv_ = 1; break; + case 4: + var _aWv_ = 1; break; + case 5: + var _aWv_ = 1; break; + case 6: + var _aWv_ = 0; break; + case 7: + var _aWv_ = 0; break; + default: var _aWv_ = 1; + } + var + _aWw_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aWx_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aWw_), + _aWy_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _aWz_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aWy_), + _aWA_ = caml_call2(Runtime_ocaml_Runtime[83], _aWz_, _aWx_), + _aWB_ = caml_call2(Runtime_ocaml_Runtime[83], _aWA_, _aWv_); + return caml_call2(Runtime_ocaml_Runtime[29], _w3_, _aWB_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _w4_, [0], _aWu_, _aWt_); + } + function _aVt_(param){ + function _aVW_(param){ + var + _aWl_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _aWm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$7), + _aWn_ = caml_call2(Runtime_ocaml_Runtime[104], _aWm_, _aWl_), + _aWo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$7), + montant = caml_call2(Runtime_ocaml_Runtime[93], _aWo_, _aWn_), + _aWp_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$59), + _aWq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$8), + _aWr_ = caml_call2(Runtime_ocaml_Runtime[104], _aWq_, _aWp_), + _aWs_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$8), + limite = caml_call2(Runtime_ocaml_Runtime[93], _aWs_, _aWr_); + return caml_call2(Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _aVX_(param){ + switch(residence[0]){ + case 0: + var _aWe_ = 1; break; + case 1: + var _aWe_ = 0; break; + case 2: + var _aWe_ = 1; break; + case 3: + var _aWe_ = 1; break; + case 4: + var _aWe_ = 1; break; + case 5: + var _aWe_ = 1; break; + case 6: + var _aWe_ = 0; break; + case 7: + var _aWe_ = 0; break; + default: var _aWe_ = 1; + } + var + _aWf_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aWg_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aWf_), + _aWh_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _aWi_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aWh_), + _aWj_ = caml_call2(Runtime_ocaml_Runtime[83], _aWi_, _aWg_), + _aWk_ = caml_call2(Runtime_ocaml_Runtime[83], _aWj_, _aWe_); + return caml_call2(Runtime_ocaml_Runtime[29], _w5_, _aWk_); + } + var + _aVY_ = + [0, + function(param){ + function _aVZ_(param){ + var + _aV8_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _aV9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$9), + _aV__ = caml_call2(Runtime_ocaml_Runtime[104], _aV9_, _aV8_), + _aV$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$9), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _aV$_, _aV__), + _aWa_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$60), + _aWb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$10), + _aWc_ = caml_call2(Runtime_ocaml_Runtime[104], _aWb_, _aWa_), + _aWd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$10), + limite = caml_call2(Runtime_ocaml_Runtime[93], _aWd_, _aWc_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _aV0_(param){ + switch(residence[0]){ + case 0: + var _aV1_ = 1; break; + case 1: + var _aV1_ = 0; break; + case 2: + var _aV1_ = 1; break; + case 3: + var _aV1_ = 1; break; + case 4: + var _aV1_ = 1; break; + case 5: + var _aV1_ = 1; break; + case 6: + var _aV1_ = 0; break; + case 7: + var _aV1_ = 0; break; + default: var _aV1_ = 1; + } + var + _aV2_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _aV3_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aV2_), + _aV4_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aV5_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aV4_), + _aV6_ = caml_call2(Runtime_ocaml_Runtime[83], _aV5_, _aV3_), + _aV7_ = caml_call2(Runtime_ocaml_Runtime[83], _aV6_, _aV1_); + return caml_call2(Runtime_ocaml_Runtime[29], _w6_, _aV7_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _w7_, [0], _aV0_, _aVZ_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _w8_, _aVY_, _aVX_, _aVW_); + } + function _aVu_(param){ + function _aVF_(param){ + var + _aVO_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _aVP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$5), + _aVQ_ = caml_call2(Runtime_ocaml_Runtime[104], _aVP_, _aVO_), + _aVR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767$5), + montant = caml_call2(Runtime_ocaml_Runtime[93], _aVR_, _aVQ_), + _aVS_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$61), + _aVT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$6), + _aVU_ = caml_call2(Runtime_ocaml_Runtime[104], _aVT_, _aVS_), + _aVV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767$6), + limite = caml_call2(Runtime_ocaml_Runtime[93], _aVV_, _aVU_); + return caml_call2(Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _aVG_(param){ + switch(residence[0]){ + case 0: + var _aVH_ = 1; break; + case 1: + var _aVH_ = 0; break; + case 2: + var _aVH_ = 1; break; + case 3: + var _aVH_ = 1; break; + case 4: + var _aVH_ = 1; break; + case 5: + var _aVH_ = 1; break; + case 6: + var _aVH_ = 0; break; + case 7: + var _aVH_ = 0; break; + default: var _aVH_ = 1; + } + var + _aVI_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _aVJ_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aVI_), + _aVK_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aVL_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aVK_), + _aVM_ = caml_call2(Runtime_ocaml_Runtime[83], _aVL_, _aVJ_), + _aVN_ = caml_call2(Runtime_ocaml_Runtime[83], _aVM_, _aVH_); + return caml_call2(Runtime_ocaml_Runtime[29], _w9_, _aVN_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _w__, [0], _aVG_, _aVF_); + } + var + _aVv_ = + [0, + function(param){ + function _aVw_(param){ + var + _aVC_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$7), + _aVD_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _aVC_, + multiplicateur_majoration_char), + _aVE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767$7); + return caml_call2(Runtime_ocaml_Runtime[93], _aVE_, _aVD_); + } + function _aVx_(param){ + switch(residence[0]){ + case 0: + var _aVy_ = 1; break; + case 1: + var _aVy_ = 0; break; + case 2: + var _aVy_ = 1; break; + case 3: + var _aVy_ = 1; break; + case 4: + var _aVy_ = 1; break; + case 5: + var _aVy_ = 1; break; + case 6: + var _aVy_ = 0; break; + case 7: + var _aVy_ = 0; break; + default: var _aVy_ = 1; + } + var + _aVz_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _aVA_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aVz_), + _aVB_ = caml_call2(Runtime_ocaml_Runtime[83], _aVA_, _aVy_); + return caml_call2(Runtime_ocaml_Runtime[29], _w$_, _aVB_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _xa_, [0], _aVx_, _aVw_); + }, + _aVu_, + _aVt_, + _aVs_, + _aVr_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _xb_, _aVv_, _aVq_, _aVp_); + }], + _aTV_ = caml_call4(Runtime_ocaml_Runtime[63], _xc_, _aTU_, _aTT_, _aTS_); + } + catch(_aVo_){ + var _aTR_ = caml_wrap_exception(_aVo_); + if(_aTR_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _wT_], 1); + throw caml_maybe_attach_backtrace(_aTR_, 0); + } + var + montant_forfaitaire_charges = + caml_call3 + (Runtime_ocaml_Runtime[28], _xd_, Runtime_ocaml_Runtime[13], _aTV_); + function _aTW_(aide_finale){ + try{ var - loyer_minimal= + _aVi_ = + function(param){ + var + _aVm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$251), + _aVn_ = + caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale, + montant_forfaitaire_d842_15); + return caml_call2(Runtime_ocaml_Runtime[113], _aVn_, _aVm_) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$252) + : caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale, + montant_forfaitaire_d842_15); + }, + _aVj_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _xf_, 1); + }, + _aVk_ = caml_call4(Runtime_ocaml_Runtime[63], _xg_, [0], _aVj_, _aVi_); + return _aVk_; + } + catch(_aVl_){ + var _aVh_ = caml_wrap_exception(_aVl_); + if(_aVh_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _xe_], 1); + throw caml_maybe_attach_backtrace(_aVh_, 0); + } + } + var + traitement_aide_finale_minorat = + caml_call3 + (Runtime_ocaml_Runtime[28], _xh_, Runtime_ocaml_Runtime[10], _aTW_); + try{ + var + _aTY_ = function(param){return calcul_equivalence_loyer_minim$4;}, + _aTZ_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _xj_, 1); + }, + _aT0_ = caml_call4(Runtime_ocaml_Runtime[63], _xk_, [0], _aTZ_, _aTY_); + } + catch(_aVg_){ + var _aTX_ = caml_wrap_exception(_aVg_); + if(_aTX_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _xi_], 1); + throw caml_maybe_attach_backtrace(_aTX_, 0); + } + var + loyer_minimal = + caml_call3 + (Runtime_ocaml_Runtime[28], _xl_, Runtime_ocaml_Runtime[13], _aT0_); + function _aT1_(allocation_mensuelle){ + try{ + var + _aVb_ = + function(param){ + var + _aVf_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + equivalence_loyer, + montant_forfaitaire_charges); + return caml_call2 + (Runtime_ocaml_Runtime[98], _aVf_, allocation_mensuelle); + }, + _aVc_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _xn_, 1); + }, + _aVd_ = caml_call4(Runtime_ocaml_Runtime[63], _xo_, [0], _aVc_, _aVb_); + return _aVd_; + } + catch(_aVe_){ + var _aVa_ = caml_wrap_exception(_aVe_); + if(_aVa_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _xm_], 1); + throw caml_maybe_attach_backtrace(_aVa_, 0); + } + } + var + depense_nette_minimale = + caml_call3 + (Runtime_ocaml_Runtime[28], _xp_, Runtime_ocaml_Runtime[10], _aT1_); + try{ + var + _aT3_ = + function(param){ + var + _aU__ = + caml_call2 + (Runtime_ocaml_Runtime[93], + equivalence_loyer, + montant_forfaitaire_charges), + _aU$_ = caml_call2(Runtime_ocaml_Runtime[98], _aU__, loyer_minimal); + return caml_call2 + (Runtime_ocaml_Runtime[104], + _aU$_, + coefficient_prise_en_charge); + }, + _aT4_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _xr_, 1); + }, + _aT5_ = caml_call4(Runtime_ocaml_Runtime[63], _xs_, [0], _aT4_, _aT3_); + } + catch(_aU9_){ + var _aT2_ = caml_wrap_exception(_aU9_); + if(_aT2_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _xq_], 1); + throw caml_maybe_attach_backtrace(_aT2_, 0); + } + var + aide_finale_formule = + caml_call3 + (Runtime_ocaml_Runtime[28], _xt_, Runtime_ocaml_Runtime[13], _aT5_); + function _aT6_(allocation_mensuelle){ + try{ + var + _aUX_ = + function(param){ + var + _aU1_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _xv_, + Runtime_ocaml_Runtime[13], + allocation_mensuelle), + _aU2_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _xw_, depense_nette_minimale), + _aU1_), + _aU3_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _xx_, + Runtime_ocaml_Runtime[13], + _aU2_), + _aU4_ = caml_call2(Runtime_ocaml_Runtime[27], _xy_, _aU3_); + if + (! + caml_call2 + (Runtime_ocaml_Runtime[113], + _aU4_, + montant_minimal_depense_nette_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$253); + var + _aU5_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _xz_, + Runtime_ocaml_Runtime[13], + allocation_mensuelle), + _aU6_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _xA_, depense_nette_minimale), + _aU5_), + _aU7_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _xB_, + Runtime_ocaml_Runtime[13], + _aU6_), + _aU8_ = caml_call2(Runtime_ocaml_Runtime[27], _xC_, _aU7_); + return caml_call2 + (Runtime_ocaml_Runtime[98], + montant_minimal_depense_nette_, + _aU8_); + }, + _aUY_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _xD_, 1); + }, + _aUZ_ = caml_call4(Runtime_ocaml_Runtime[63], _xE_, [0], _aUY_, _aUX_); + return _aUZ_; + } + catch(_aU0_){ + var _aUW_ = caml_wrap_exception(_aU0_); + if(_aUW_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _xu_], 1); + throw caml_maybe_attach_backtrace(_aUW_, 0); + } + } + var + abattement_depense_nette_minim = + caml_call3 + (Runtime_ocaml_Runtime[28], _xF_, Runtime_ocaml_Runtime[10], _aT6_); + function _aT7_(aide_finale){ + try{ + var + _aUK_ = + function(param){ + var + _aUO_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _xH_, + Runtime_ocaml_Runtime[13], + aide_finale), + _aUP_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _xI_, + traitement_aide_finale_minorat), + _aUO_), + _aUQ_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _xJ_, + Runtime_ocaml_Runtime[13], + _aUP_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _xK_, _aUQ_), + _aUR_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _xL_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _aUS_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _xM_, + abattement_depense_nette_minim), + _aUR_), + _aUT_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _xN_, + Runtime_ocaml_Runtime[13], + _aUS_), + abattement = caml_call2(Runtime_ocaml_Runtime[27], _xO_, _aUT_), + _aUU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$254), + _aUV_ = + caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, abattement); + return caml_call2(Runtime_ocaml_Runtime[113], _aUV_, _aUU_) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$255) + : caml_call2 + (Runtime_ocaml_Runtime[98], aide_finale$0, abattement); + }, + _aUL_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _xP_, 1); + }, + _aUM_ = caml_call4(Runtime_ocaml_Runtime[63], _xQ_, [0], _aUL_, _aUK_); + return _aUM_; + } + catch(_aUN_){ + var _aUJ_ = caml_wrap_exception(_aUN_); + if(_aUJ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _xG_], 1); + throw caml_maybe_attach_backtrace(_aUJ_, 0); + } + } + var + traitement_aide_finale_depense = + caml_call3 + (Runtime_ocaml_Runtime[28], _xR_, Runtime_ocaml_Runtime[10], _aT7_); + function _aT8_(aide_finale){ + try{ + var + _aUC_ = + function(param){ + var + _aUG_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _xT_, + Runtime_ocaml_Runtime[13], + aide_finale), + _aUH_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _xU_, + traitement_aide_finale_depense), + _aUG_), + _aUI_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _xV_, + Runtime_ocaml_Runtime[13], + _aUH_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _xW_, _aUI_); + return caml_call2 + (Runtime_ocaml_Runtime[123], aide_finale$0, redevance) + ? redevance + : aide_finale$0; + }, + _aUD_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _xX_, 1); + }, + _aUE_ = caml_call4(Runtime_ocaml_Runtime[63], _xY_, [0], _aUD_, _aUC_); + return _aUE_; + } + catch(_aUF_){ + var _aUB_ = caml_wrap_exception(_aUF_); + if(_aUB_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _xS_], 1); + throw caml_maybe_attach_backtrace(_aUB_, 0); + } + } + var + traitement_aide_finale_redevan = + caml_call3 + (Runtime_ocaml_Runtime[28], _xZ_, Runtime_ocaml_Runtime[10], _aT8_); + function _aT9_(aide_finale){ + try{ + var + _aUm_ = + function(param){ + var + _aUq_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _x1_, + Runtime_ocaml_Runtime[13], + aide_finale), + _aUr_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _x2_, + traitement_aide_finale_redevan), + _aUq_), + _aUs_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _x3_, + Runtime_ocaml_Runtime[13], + _aUr_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _x4_, _aUs_), + _aUt_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _x5_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _aUu_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _x6_, + contributions_sociales_dot_mon), + _aUt_), + _aUv_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _x7_, + Runtime_ocaml_Runtime[13], + _aUu_), + crds = caml_call2(Runtime_ocaml_Runtime[27], _x8_, _aUv_), + _aUw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_50$2), + _aUx_ = caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, crds), + _aUy_ = caml_call2(Runtime_ocaml_Runtime[98], _aUx_, _aUw_), + aide_finale_moins_crds_arrondi = + caml_call1(Runtime_ocaml_Runtime[77], _aUy_), + _aUz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$256), + _aUA_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds); + return caml_call2(Runtime_ocaml_Runtime[128], _aUA_, _aUz_) + ? caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds) + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$257); + }, + _aUn_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _x9_, 1); + }, + _aUo_ = caml_call4(Runtime_ocaml_Runtime[63], _x__, [0], _aUn_, _aUm_); + return _aUo_; + } + catch(_aUp_){ + var _aUl_ = caml_wrap_exception(_aUp_); + if(_aUl_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _x0_], 1); + throw caml_maybe_attach_backtrace(_aUl_, 0); + } + } + var + traitement_aide_finale_contrib = + caml_call3 + (Runtime_ocaml_Runtime[28], _x$_, Runtime_ocaml_Runtime[10], _aT9_); + function _aT__(aide_finale){ + try{ + var + _aUe_ = + function(param){ + var + _aUi_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _yb_, + Runtime_ocaml_Runtime[13], + aide_finale), + _aUj_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _yc_, + traitement_aide_finale_contrib), + _aUi_), + _aUk_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _yd_, + Runtime_ocaml_Runtime[13], + _aUj_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _ye_, _aUk_); + return caml_call2 + (Runtime_ocaml_Runtime[113], + aide_finale$0, + montant_minimal_aide_d842_15) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$258) + : aide_finale$0; + }, + _aUf_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _yf_, 1); + }, + _aUg_ = caml_call4(Runtime_ocaml_Runtime[63], _yg_, [0], _aUf_, _aUe_); + return _aUg_; + } + catch(_aUh_){ + var _aUd_ = caml_wrap_exception(_aUh_); + if(_aUd_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _ya_], 1); + throw caml_maybe_attach_backtrace(_aUd_, 0); + } + } + var + traitement_aide_finale_montant = + caml_call3 + (Runtime_ocaml_Runtime[28], _yh_, Runtime_ocaml_Runtime[10], _aT__); + try{ + var + _aUa_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aUb_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aUa_); + } + catch(_aUc_){ + var _aT$_ = caml_wrap_exception(_aUc_); + if(_aT$_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _yi_], 1); + throw caml_maybe_attach_backtrace(_aT$_, 0); + } + if(_aUb_) + return [0, + coefficient_prise_en_charge, + equivalence_loyer, + montant_forfaitaire_charges, + loyer_minimal, + aide_finale_formule, + traitement_aide_finale_montant]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _yj_], 1); + } + function calcul_allocation_logement_acc(calcul_allocation_logement_acc){ + var + ressources_menage_arrondies_ba = calcul_allocation_logement_acc[1], + nombre_personnes_a_charge = calcul_allocation_logement_acc[2], + situation_familiale_calcul_apl = calcul_allocation_logement_acc[3], + zone = calcul_allocation_logement_acc[4], + residence = calcul_allocation_logement_acc[5], + date_courante = calcul_allocation_logement_acc[6], + mensualite_principale = calcul_allocation_logement_acc[7], + situation_r822_11_13_17 = calcul_allocation_logement_acc[8], + date_signature_pret = calcul_allocation_logement_acc[9], + type_travaux_logement = calcul_allocation_logement_acc[10], + local_habite_premiere_fois_ben = calcul_allocation_logement_acc[11], + date_entree_logement = calcul_allocation_logement_acc[12], + charges_mensuelles_pret = calcul_allocation_logement_acc[13], + copropriete = calcul_allocation_logement_acc[14], + operations_logement_evolutifs_ = calcul_allocation_logement_acc[15]; + try{ + var + _an9_ = + function(param){ + var + _aR7_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6_55957$0), + _aR8_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$179); + return caml_call2(Runtime_ocaml_Runtime[107], _aR8_, _aR7_); + }, + _an__ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _yl_, 1); + }, + _an$_ = caml_call4(Runtime_ocaml_Runtime[63], _ym_, [0], _an__, _an9_); + } + catch(_aR6_){ + var _an8_ = caml_wrap_exception(_aR6_); + if(_an8_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _yk_], 1); + throw caml_maybe_attach_backtrace(_an8_, 0); + } + var + taux_francs_vers_euros = + caml_call3 + (Runtime_ocaml_Runtime[28], _yn_, Runtime_ocaml_Runtime[15], _an$_); + try{ + var + _aob_ = function(param){return nombre_personnes_a_charge;}, + _aoc_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _yp_, 1); + }, + _aod_ = caml_call4(Runtime_ocaml_Runtime[63], _yq_, [0], _aoc_, _aob_), + calcul_nombre_parts_dot_nombre = caml_call3 - (Runtime_ocaml_Runtime[28],_G1_,Runtime_ocaml_Runtime[13],_a3e_); - function _a3f_(allocation_mensuelle) - {try - {var - _a38_= - function(param) - {var - _a4a_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _G3_, - Runtime_ocaml_Runtime[13], - allocation_mensuelle), - _a4b_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_G4_,depense_nette_minimale), - _a4a_), - _a4c_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _G5_, - Runtime_ocaml_Runtime[13], - _a4b_), - _a4d_=caml_call2(Runtime_ocaml_Runtime[27],_G6_,_a4c_); + (Runtime_ocaml_Runtime[28], _yr_, Runtime_ocaml_Runtime[14], _aod_); + } + catch(_aR5_){ + var _aoa_ = caml_wrap_exception(_aR5_); + if(_aoa_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _yo_], 1); + throw caml_maybe_attach_backtrace(_aoa_, 0); + } + try{ + var + _aof_ = function(param){return situation_familiale_calcul_apl;}, + _aog_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _yt_, 1); + }, + _aoh_ = caml_call4(Runtime_ocaml_Runtime[63], _yu_, [0], _aog_, _aof_), + calcul_nombre_parts_dot_situat = + caml_call3 + (Runtime_ocaml_Runtime[28], + _yv_, + embed_situation_familiale_calc, + _aoh_); + } + catch(_aR4_){ + var _aoe_ = caml_wrap_exception(_aR4_); + if(_aoe_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _ys_], 1); + throw caml_maybe_attach_backtrace(_aoe_, 0); + } + var + _aoi_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _yw_, calcul_nombre_parts_accession_), + [0, calcul_nombre_parts_dot_nombre, calcul_nombre_parts_dot_situat]), + result = caml_call2(Runtime_ocaml_Runtime[27], _yx_, _aoi_), + calcul_nombre_parts_dot_n_nomb = result[1]; + try{ + var + _aok_ = function(param){return date_courante;}, + _aol_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _yz_, 1); + }, + _aom_ = caml_call4(Runtime_ocaml_Runtime[63], _yA_, [0], _aol_, _aok_), + contributions_sociales_dot_dat = + caml_call3 + (Runtime_ocaml_Runtime[28], _yB_, Runtime_ocaml_Runtime[16], _aom_); + } + catch(_aR3_){ + var _aoj_ = caml_wrap_exception(_aR3_); + if(_aoj_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _yy_], 1); + throw caml_maybe_attach_backtrace(_aoj_, 0); + } + var + _aon_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _yC_, contributions_sociales_aides_p), + [0, contributions_sociales_dot_dat]), + result$0 = caml_call2(Runtime_ocaml_Runtime[27], _yD_, _aon_), + contributions_sociales_dot_mon = result$0[1]; + try{ + var + _aop_ = + function(param){ + function _aRO_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _aRP_(param){return 0;} + var + _aRQ_ = + [0, + function(param){ + function _aRR_(param){ + return caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge); + } + function _aRS_(param){ + var + _aR1_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aR2_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aR1_); + return caml_call2(Runtime_ocaml_Runtime[29], _yF_, _aR2_); + } + var + _aRT_ = + [0, + function(param){ + function _aRU_(param){ + return caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge); + } + function _aRV_(param){ + var + _aRW_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aRX_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aRW_), + _aRY_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aRZ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aRY_), + _aR0_ = caml_call2(Runtime_ocaml_Runtime[83], _aRZ_, _aRX_); + return caml_call2(Runtime_ocaml_Runtime[29], _yG_, _aR0_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _yH_, [0], _aRV_, _aRU_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _yI_, _aRT_, _aRS_, _aRR_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _yJ_, _aRQ_, _aRP_, _aRO_); + }, + _aoq_ = function(param){return 1;}, + _aor_ = + [0, + function(param){ + function _aQL_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _aQM_(param){return 0;} + var + _aQN_ = + [0, + function(param){ + function _aQO_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_6$62); + } + function _aQP_(param){ + var + _aRE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$63), + _aRF_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _aRE_); + switch(residence[0]){ + case 0: + var _aRG_ = 1; break; + case 1: + var _aRG_ = 0; break; + case 2: + var _aRG_ = 1; break; + case 3: + var _aRG_ = 1; break; + case 4: + var _aRG_ = 1; break; + case 5: + var _aRG_ = 1; break; + case 6: + var _aRG_ = 0; break; + case 7: + var _aRG_ = 0; break; + default: var _aRG_ = 1; + } + var + _aRH_ = caml_call2(Runtime_ocaml_Runtime[83], _aRG_, _aRF_), + _aRI_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _aRJ_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aRI_), + _aRK_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aRL_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aRK_), + _aRM_ = caml_call2(Runtime_ocaml_Runtime[83], _aRL_, _aRJ_), + _aRN_ = caml_call2(Runtime_ocaml_Runtime[83], _aRM_, _aRH_); + return caml_call2(Runtime_ocaml_Runtime[29], _yK_, _aRN_); + } + var + _aQQ_ = + [0, + function(param){ + function _aQR_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_6$64); + } + function _aQS_(param){ + var + _aRu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$65), + _aRv_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _aRu_); + switch(residence[0]){ + case 0: + var _aRw_ = 1; break; + case 1: + var _aRw_ = 0; break; + case 2: + var _aRw_ = 1; break; + case 3: + var _aRw_ = 1; break; + case 4: + var _aRw_ = 1; break; + case 5: + var _aRw_ = 1; break; + case 6: + var _aRw_ = 0; break; + case 7: + var _aRw_ = 0; break; + default: var _aRw_ = 1; + } + var + _aRx_ = caml_call2(Runtime_ocaml_Runtime[83], _aRw_, _aRv_), + _aRy_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aRz_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aRy_), + _aRA_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _aRB_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aRA_), + _aRC_ = caml_call2(Runtime_ocaml_Runtime[83], _aRB_, _aRz_), + _aRD_ = caml_call2(Runtime_ocaml_Runtime[83], _aRC_, _aRx_); + return caml_call2(Runtime_ocaml_Runtime[29], _yL_, _aRD_); + } + var + _aQT_ = + [0, + function(param){ + function _aQU_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_6$66); + } + function _aQV_(param){ + var + _aRk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$67), + _aRl_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _aRk_); + switch(residence[0]){ + case 0: + var _aRm_ = 1; break; + case 1: + var _aRm_ = 0; break; + case 2: + var _aRm_ = 1; break; + case 3: + var _aRm_ = 1; break; + case 4: + var _aRm_ = 1; break; + case 5: + var _aRm_ = 1; break; + case 6: + var _aRm_ = 0; break; + case 7: + var _aRm_ = 0; break; + default: var _aRm_ = 1; + } + var + _aRn_ = caml_call2(Runtime_ocaml_Runtime[83], _aRm_, _aRl_), + _aRo_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _aRp_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aRo_), + _aRq_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aRr_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aRq_), + _aRs_ = caml_call2(Runtime_ocaml_Runtime[83], _aRr_, _aRp_), + _aRt_ = caml_call2(Runtime_ocaml_Runtime[83], _aRs_, _aRn_); + return caml_call2(Runtime_ocaml_Runtime[29], _yM_, _aRt_); + } + var + _aQW_ = + [0, + function(param){ + function _aQX_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_6$68); + } + function _aQY_(param){ + var + _aRa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$69), + _aRb_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _aRa_); + switch(residence[0]){ + case 0: + var _aRc_ = 1; break; + case 1: + var _aRc_ = 0; break; + case 2: + var _aRc_ = 1; break; + case 3: + var _aRc_ = 1; break; + case 4: + var _aRc_ = 1; break; + case 5: + var _aRc_ = 1; break; + case 6: + var _aRc_ = 0; break; + case 7: + var _aRc_ = 0; break; + default: var _aRc_ = 1; + } + var + _aRd_ = caml_call2(Runtime_ocaml_Runtime[83], _aRc_, _aRb_), + _aRe_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aRf_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aRe_), + _aRg_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _aRh_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aRg_), + _aRi_ = caml_call2(Runtime_ocaml_Runtime[83], _aRh_, _aRf_), + _aRj_ = caml_call2(Runtime_ocaml_Runtime[83], _aRi_, _aRd_); + return caml_call2(Runtime_ocaml_Runtime[29], _yN_, _aRj_); + } + var + _aQZ_ = + [0, + function(param){ + function _aQ0_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_6$70); + } + function _aQ1_(param){ + var + _aQ2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$71), + _aQ3_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _aQ2_); + switch(residence[0]){ + case 0: + var _aQ4_ = 1; break; + case 1: + var _aQ4_ = 0; break; + case 2: + var _aQ4_ = 1; break; + case 3: + var _aQ4_ = 1; break; + case 4: + var _aQ4_ = 1; break; + case 5: + var _aQ4_ = 1; break; + case 6: + var _aQ4_ = 0; break; + case 7: + var _aQ4_ = 0; break; + default: var _aQ4_ = 1; + } + var + _aQ5_ = caml_call2(Runtime_ocaml_Runtime[83], _aQ4_, _aQ3_), + _aQ6_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _aQ7_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aQ6_), + _aQ8_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aQ9_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aQ8_), + _aQ__ = caml_call2(Runtime_ocaml_Runtime[83], _aQ9_, _aQ7_), + _aQ$_ = caml_call2(Runtime_ocaml_Runtime[83], _aQ__, _aQ5_); + return caml_call2(Runtime_ocaml_Runtime[29], _yO_, _aQ$_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _yP_, [0], _aQ1_, _aQ0_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _yQ_, _aQZ_, _aQY_, _aQX_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _yR_, _aQW_, _aQV_, _aQU_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _yS_, _aQT_, _aQS_, _aQR_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _yT_, _aQQ_, _aQP_, _aQO_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _yU_, _aQN_, _aQM_, _aQL_); + }], + _aos_ = caml_call4(Runtime_ocaml_Runtime[63], _yV_, _aor_, _aoq_, _aop_); + } + catch(_aQK_){ + var _aoo_ = caml_wrap_exception(_aQK_); + if(_aoo_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _yE_], 1); + throw caml_maybe_attach_backtrace(_aoo_, 0); + } + var + multiplicateur_majoration_char = + caml_call3 + (Runtime_ocaml_Runtime[28], _yW_, Runtime_ocaml_Runtime[15], _aos_); + try{ + var + _aou_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_16_25$0); + }, + _aov_ = + function(param){ + var + _aQI_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _aQJ_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aQI_); + return caml_call2(Runtime_ocaml_Runtime[29], _yY_, _aQJ_); + }, + _aow_ = caml_call4(Runtime_ocaml_Runtime[63], _yZ_, [0], _aov_, _aou_); + } + catch(_aQH_){ + var _aot_ = caml_wrap_exception(_aQH_); + if(_aot_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _yX_], 1); + throw caml_maybe_attach_backtrace(_aot_, 0); + } + var + coefficient_d842_12 = + caml_call3 + (Runtime_ocaml_Runtime[28], _y0_, Runtime_ocaml_Runtime[15], _aow_); + try{ + var + _aoy_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0234$1); + }, + _aoz_ = + function(param){ + var + _aQF_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _aQG_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aQF_); + return caml_call2(Runtime_ocaml_Runtime[29], _y2_, _aQG_); + }, + _aoA_ = caml_call4(Runtime_ocaml_Runtime[63], _y3_, [0], _aoz_, _aoy_); + } + catch(_aQE_){ + var _aox_ = caml_wrap_exception(_aQE_); + if(_aox_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _y1_], 1); + throw caml_maybe_attach_backtrace(_aox_, 0); + } + var + coefficient_d842_11 = + caml_call3 + (Runtime_ocaml_Runtime[28], _y4_, Runtime_ocaml_Runtime[15], _aoA_); + try{ + var + _aoC_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_390000); + }, + _aoD_ = + function(param){ + var + _aQC_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _aQD_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aQC_); + return caml_call2(Runtime_ocaml_Runtime[29], _y6_, _aQD_); + }, + _aoE_ = caml_call4(Runtime_ocaml_Runtime[63], _y7_, [0], _aoD_, _aoC_); + } + catch(_aQB_){ + var _aoB_ = caml_wrap_exception(_aQB_); + if(_aoB_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _y5_], 1); + throw caml_maybe_attach_backtrace(_aoB_, 0); + } + var + montant_forfaitaire_d842_12 = + caml_call3 + (Runtime_ocaml_Runtime[28], _y8_, Runtime_ocaml_Runtime[13], _aoE_); + try{ + var + _aoG_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1500$1); + }, + _aoH_ = + function(param){ + var + _aQz_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _aQA_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aQz_); + return caml_call2(Runtime_ocaml_Runtime[29], _y__, _aQA_); + }, + _aoI_ = caml_call4(Runtime_ocaml_Runtime[63], _y$_, [0], _aoH_, _aoG_); + } + catch(_aQy_){ + var _aoF_ = caml_wrap_exception(_aQy_); + if(_aoF_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _y9_], 1); + throw caml_maybe_attach_backtrace(_aoF_, 0); + } + var + montant_forfaitaire_d842_11 = + caml_call3 + (Runtime_ocaml_Runtime[28], _za_, Runtime_ocaml_Runtime[13], _aoI_); + try{ + var + _aoK_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1000$4); + }, + _aoL_ = + function(param){ + var + _aQw_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _aQx_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aQw_); + return caml_call2(Runtime_ocaml_Runtime[29], _zc_, _aQx_); + }, + _aoM_ = caml_call4(Runtime_ocaml_Runtime[63], _zd_, [0], _aoL_, _aoK_); + } + catch(_aQv_){ + var _aoJ_ = caml_wrap_exception(_aQv_); + if(_aoJ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _zb_], 1); + throw caml_maybe_attach_backtrace(_aoJ_, 0); + } + var + montant_minimal_aide_d842_6 = + caml_call3 + (Runtime_ocaml_Runtime[28], _ze_, Runtime_ocaml_Runtime[13], _aoM_); + try{ + var + _aoO_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_500$3); + }, + _aoP_ = + function(param){ + var + _aQt_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _aQu_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aQt_); + return caml_call2(Runtime_ocaml_Runtime[29], _zg_, _aQu_); + }, + _aoQ_ = caml_call4(Runtime_ocaml_Runtime[63], _zh_, [0], _aoP_, _aoO_); + } + catch(_aQs_){ + var _aoN_ = caml_wrap_exception(_aQs_); + if(_aoN_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _zf_], 1); + throw caml_maybe_attach_backtrace(_aoN_, 0); + } + var + montant_forfaitaire_d842_6 = + caml_call3 + (Runtime_ocaml_Runtime[28], _zi_, Runtime_ocaml_Runtime[13], _aoQ_); + try{ + var + _aoS_ = function(param){return 0;}, + _aoT_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _zk_, 1); + }, + _aoU_ = + [0, + function(param){ + function _aP7_(param){return 1;} + function _aP8_(param){ + var + _aQk_ = caml_call3(Runtime_ocaml_Runtime[57], 1999, 7, 1), + _aQl_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _aQk_); + switch(type_travaux_logement[0]){ + case 0: + var _aQm_ = 0; break; + case 1: + var _aQm_ = 0; break; + case 2: + var _aQm_ = 1; break; + default: var _aQm_ = 0; + } + switch(type_travaux_logement[0]){ + case 0: + var _aQn_ = 1; break; + case 1: + var _aQn_ = 0; break; + case 2: + var _aQn_ = 0; break; + default: var _aQn_ = 0; + } + var _aQo_ = caml_call2(Runtime_ocaml_Runtime[84], _aQn_, _aQm_); + switch(type_travaux_logement[0]){ + case 0: + var _aQp_ = 0; break; + case 1: + var _aQp_ = 0; break; + case 2: + var _aQp_ = 0; break; + default: var _aQp_ = 1; + } + var + _aQq_ = caml_call2(Runtime_ocaml_Runtime[84], _aQp_, _aQo_), + _aQr_ = caml_call2(Runtime_ocaml_Runtime[83], _aQq_, _aQl_); + return caml_call2(Runtime_ocaml_Runtime[29], _zl_, _aQr_); + } + var + _aP9_ = + [0, + function(param){ + function _aP__(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _aP$_(param){return 0;} + var + _aQa_ = + [0, + function(param){ + function _aQb_(param){return 0;} + function _aQc_(param){ + switch(residence[0]){ + case 0: + var _aQi_ = 1; break; + case 1: + var _aQi_ = 1; break; + case 2: + var _aQi_ = 1; break; + case 3: + var _aQi_ = 1; break; + case 4: + var _aQi_ = 0; break; + case 5: + var _aQi_ = 0; break; + case 6: + var _aQi_ = 0; break; + case 7: + var _aQi_ = 0; break; + default: var _aQi_ = 1; + } + var + _aQj_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + _aQi_, + operations_logement_evolutifs_); + return caml_call2(Runtime_ocaml_Runtime[29], _zm_, _aQj_); + } + var + _aQd_ = + [0, + function(param){ + function _aQe_(param){return 0;} + function _aQf_(param){ + switch(residence[0]){ + case 0: + var _aQg_ = 0; break; + case 1: + var _aQg_ = 0; break; + case 2: + var _aQg_ = 0; break; + case 3: + var _aQg_ = 0; break; + case 4: + var _aQg_ = 1; break; + case 5: + var _aQg_ = 1; break; + case 6: + var _aQg_ = 0; break; + case 7: + var _aQg_ = 0; break; + default: var _aQg_ = 0; + } + var + _aQh_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + _aQg_, + operations_logement_evolutifs_); + return caml_call2(Runtime_ocaml_Runtime[29], _zn_, _aQh_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zo_, [0], _aQf_, _aQe_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _zp_, _aQd_, _aQc_, _aQb_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _zq_, _aQa_, _aP$_, _aP__); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _zr_, _aP9_, _aP8_, _aP7_); + }], + _aoV_ = caml_call4(Runtime_ocaml_Runtime[63], _zs_, _aoU_, _aoT_, _aoS_); + } + catch(_aP6_){ + var _aoR_ = caml_wrap_exception(_aP6_); + if(_aoR_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _zj_], 1); + throw caml_maybe_attach_backtrace(_aoR_, 0); + } + var + condition_d842_11_3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _zt_, Runtime_ocaml_Runtime[12], _aoV_); + function _aoW_(date_calcul, nombre_personnes_a_charge){ + try{ + var + _azO_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _azP_ = function(param){return 0;}, + _azQ_ = + function(param){ + function _aPp_(param){ + switch(zone[0]){ + case 0: + var _aPw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$259); if (caml_call2 - (Runtime_ocaml_Runtime[113], - _a4d_, - montant_minimal_depense_nette_)) - {var - _a4e_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _G7_, - Runtime_ocaml_Runtime[13], - allocation_mensuelle), - _a4f_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_G8_,depense_nette_minimale), - _a4e_), - _a4g_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _G9_, - Runtime_ocaml_Runtime[13], - _a4f_), - _a4h_=caml_call2(Runtime_ocaml_Runtime[27],_G__,_a4g_); - return caml_call2 - (Runtime_ocaml_Runtime[98], - montant_minimal_depense_nette_, - _a4h_)} - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$312)}, - _a39_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_G$_,1)}, - _a3__=caml_call4(Runtime_ocaml_Runtime[63],_Ha_,[0],_a39_,_a38_); - return _a3__} - catch(_a3$_) - {_a3$_ = caml_wrap_exception(_a3$_); - if(_a3$_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_G2_]; - throw _a3$_}} - var - abattement_depense_nette_minim= - caml_call3 - (Runtime_ocaml_Runtime[28],_Hb_,Runtime_ocaml_Runtime[10],_a3f_); - try - {var - _a3g_= - function(param) - {var - _a36_= - caml_call2 - (Runtime_ocaml_Runtime[93], - equivalence_loyer, - montant_forfaitaire_charges), - _a37_=caml_call2(Runtime_ocaml_Runtime[98],_a36_,loyer_minimal); - return caml_call2 - (Runtime_ocaml_Runtime[104], - _a37_, - coefficient_prise_en_charge)}, - _a3h_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Hd_,1)}, - _a3i_=caml_call4(Runtime_ocaml_Runtime[63],_He_,[0],_a3h_,_a3g_)} - catch(_a35_) - {_a35_ = caml_wrap_exception(_a35_); - if(_a35_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Hc_]; - throw _a35_} - var - aide_finale_formule= - caml_call3 - (Runtime_ocaml_Runtime[28],_Hf_,Runtime_ocaml_Runtime[13],_a3i_); - function _a3j_(aide_finale) - {try - {var - _a3T_= - function(param) - {var - _a3X_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Hh_, - Runtime_ocaml_Runtime[13], - aide_finale), - _a3Y_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Hi_, - traitement_aide_finale_minorat), - _a3X_), - _a3Z_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Hj_, - Runtime_ocaml_Runtime[13], - _a3Y_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_Hk_,_a3Z_), - _a30_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Hl_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _a31_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Hm_, - abattement_depense_nette_minim), - _a30_), - _a32_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Hn_, - Runtime_ocaml_Runtime[13], - _a31_), - abattement=caml_call2(Runtime_ocaml_Runtime[27],_Ho_,_a32_), - _a33_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$313), - _a34_= - caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,abattement); - return caml_call2(Runtime_ocaml_Runtime[113],_a34_,_a33_) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$314) - :caml_call2 - (Runtime_ocaml_Runtime[98],aide_finale$0,abattement)}, - _a3U_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Hp_,1)}, - _a3V_=caml_call4(Runtime_ocaml_Runtime[63],_Hq_,[0],_a3U_,_a3T_); - return _a3V_} - catch(_a3W_) - {_a3W_ = caml_wrap_exception(_a3W_); - if(_a3W_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Hg_]; - throw _a3W_}} - var - traitement_aide_finale_depense= - caml_call3 - (Runtime_ocaml_Runtime[28],_Hr_,Runtime_ocaml_Runtime[10],_a3j_); - function _a3k_(aide_finale) - {try - {var - _a3M_= - function(param) - {var - _a3Q_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Ht_, - Runtime_ocaml_Runtime[13], - aide_finale), - _a3R_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Hu_, - traitement_aide_finale_depense), - _a3Q_), - _a3S_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Hv_, - Runtime_ocaml_Runtime[13], - _a3R_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_Hw_,_a3S_); - return caml_call2 - (Runtime_ocaml_Runtime[123],aide_finale$0,redevance) - ?redevance - :aide_finale$0}, - _a3N_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Hx_,1)}, - _a3O_=caml_call4(Runtime_ocaml_Runtime[63],_Hy_,[0],_a3N_,_a3M_); - return _a3O_} - catch(_a3P_) - {_a3P_ = caml_wrap_exception(_a3P_); - if(_a3P_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Hs_]; - throw _a3P_}} - var - traitement_aide_finale_redevan= - caml_call3 - (Runtime_ocaml_Runtime[28],_Hz_,Runtime_ocaml_Runtime[10],_a3k_); - function _a3l_(aide_finale) - {try - {var - _a3x_= - function(param) - {var - _a3B_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _HB_, - Runtime_ocaml_Runtime[13], - aide_finale), - _a3C_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _HC_, - traitement_aide_finale_redevan), - _a3B_), - _a3D_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _HD_, - Runtime_ocaml_Runtime[13], - _a3C_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_HE_,_a3D_), - _a3E_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _HF_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _a3F_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _HG_, - contributions_sociales_dot_mon), - _a3E_), - _a3G_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _HH_, - Runtime_ocaml_Runtime[13], - _a3F_), - crds=caml_call2(Runtime_ocaml_Runtime[27],_HI_,_a3G_), - _a3H_=caml_call1(Runtime_ocaml_Runtime[31],cst_50$2), - _a3I_=caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,crds), - _a3J_=caml_call2(Runtime_ocaml_Runtime[98],_a3I_,_a3H_), - aide_finale_moins_crds_arrondi= - caml_call1(Runtime_ocaml_Runtime[77],_a3J_), - _a3K_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$315), - _a3L_= - caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds); - return caml_call2(Runtime_ocaml_Runtime[128],_a3L_,_a3K_) - ?caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds) - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$316)}, - _a3y_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_HJ_,1)}, - _a3z_=caml_call4(Runtime_ocaml_Runtime[63],_HK_,[0],_a3y_,_a3x_); - return _a3z_} - catch(_a3A_) - {_a3A_ = caml_wrap_exception(_a3A_); - if(_a3A_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_HA_]; - throw _a3A_}} - var - traitement_aide_finale_contrib= - caml_call3 - (Runtime_ocaml_Runtime[28],_HL_,Runtime_ocaml_Runtime[10],_a3l_); - function _a3m_(aide_finale) - {try - {var - _a3q_= - function(param) - {var - _a3u_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _HN_, - Runtime_ocaml_Runtime[13], - aide_finale), - _a3v_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _HO_, - traitement_aide_finale_contrib), - _a3u_), - _a3w_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _HP_, - Runtime_ocaml_Runtime[13], - _a3v_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_HQ_,_a3w_); - return caml_call2 - (Runtime_ocaml_Runtime[113], - aide_finale$0, - montant_minimal_aide_d842_15) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$317) - :aide_finale$0}, - _a3r_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_HR_,1)}, - _a3s_=caml_call4(Runtime_ocaml_Runtime[63],_HS_,[0],_a3r_,_a3q_); - return _a3s_} - catch(_a3t_) - {_a3t_ = caml_wrap_exception(_a3t_); - if(_a3t_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_HM_]; - throw _a3t_}} - var - traitement_aide_finale_montant= - caml_call3 - (Runtime_ocaml_Runtime[28],_HT_,Runtime_ocaml_Runtime[10],_a3m_); - try - {var - _a3n_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _a3o_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a3n_)} - catch(_a3p_) - {_a3p_ = caml_wrap_exception(_a3p_); - if(_a3p_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_HU_]; - throw _a3p_} - if(_a3o_) - return [0, - coefficient_prise_en_charge, - equivalence_loyer, - montant_forfaitaire_charges, - loyer_minimal, - aide_finale_formule, - traitement_aide_finale_montant]; - throw [0,Runtime_ocaml_Runtime[3],_HV_]} - function calcul_allocation_logement_acc(calcul_allocation_logement_acc) - {var - ressources_menage_arrondies_ba=calcul_allocation_logement_acc[1], - nombre_personnes_a_charge=calcul_allocation_logement_acc[2], - situation_familiale_calcul_apl=calcul_allocation_logement_acc[3], - zone=calcul_allocation_logement_acc[4], - residence=calcul_allocation_logement_acc[5], - date_courante=calcul_allocation_logement_acc[6], - mensualite_principale=calcul_allocation_logement_acc[7], - situation_r822_11_13_17=calcul_allocation_logement_acc[8], - date_signature_pret=calcul_allocation_logement_acc[9], - type_travaux_logement=calcul_allocation_logement_acc[10], - local_habite_premiere_fois_ben=calcul_allocation_logement_acc[11], - date_entree_logement=calcul_allocation_logement_acc[12], - charges_mensuelles_pret=calcul_allocation_logement_acc[13], - copropriete=calcul_allocation_logement_acc[14], - operations_logement_evolutifs_=calcul_allocation_logement_acc[15]; - try - {var - _aDy_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_500$3)}, - _aDz_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_HX_,1)}, - _aDA_=caml_call4(Runtime_ocaml_Runtime[63],_HY_,[0],_aDz_,_aDy_)} - catch(_a1P_) - {_a1P_ = caml_wrap_exception(_a1P_); - if(_a1P_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_HW_]; - throw _a1P_} - var - montant_forfaitaire_d842_6= - caml_call3 - (Runtime_ocaml_Runtime[28],_HZ_,Runtime_ocaml_Runtime[13],_aDA_); - try - {var - _aDB_= - function(param) - {var - _a1N_=caml_call1(Runtime_ocaml_Runtime[39],cst_6_55957$0), - _a1O_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$217); - return caml_call2(Runtime_ocaml_Runtime[107],_a1O_,_a1N_)}, - _aDC_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_H1_,1)}, - _aDD_=caml_call4(Runtime_ocaml_Runtime[63],_H2_,[0],_aDC_,_aDB_)} - catch(_a1M_) - {_a1M_ = caml_wrap_exception(_a1M_); - if(_a1M_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_H0_]; - throw _a1M_} - var - taux_francs_vers_euros= - caml_call3 - (Runtime_ocaml_Runtime[28],_H3_,Runtime_ocaml_Runtime[15],_aDD_); - try - {var - _aDE_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1000$4)}, - _aDF_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_H5_,1)}, - _aDG_=caml_call4(Runtime_ocaml_Runtime[63],_H6_,[0],_aDF_,_aDE_)} - catch(_a1L_) - {_a1L_ = caml_wrap_exception(_a1L_); - if(_a1L_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_H4_]; - throw _a1L_} - var - montant_minimal_aide_d842_6= - caml_call3 - (Runtime_ocaml_Runtime[28],_H7_,Runtime_ocaml_Runtime[13],_aDG_); - try - {var - _aDH_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1500$1)}, - _aDI_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_H9_,1)}, - _aDJ_=caml_call4(Runtime_ocaml_Runtime[63],_H__,[0],_aDI_,_aDH_)} - catch(_a1K_) - {_a1K_ = caml_wrap_exception(_a1K_); - if(_a1K_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_H8_]; - throw _a1K_} - var - montant_forfaitaire_d842_11= - caml_call3 - (Runtime_ocaml_Runtime[28],_H$_,Runtime_ocaml_Runtime[13],_aDJ_); - try - {var - _aDK_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_390000)}, - _aDL_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ib_,1)}, - _aDM_=caml_call4(Runtime_ocaml_Runtime[63],_Ic_,[0],_aDL_,_aDK_)} - catch(_a1J_) - {_a1J_ = caml_wrap_exception(_a1J_); - if(_a1J_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ia_]; - throw _a1J_} - var - montant_forfaitaire_d842_12= - caml_call3 - (Runtime_ocaml_Runtime[28],_Id_,Runtime_ocaml_Runtime[13],_aDM_); - try - {var - _aDN_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0234$1)}, - _aDO_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_If_,1)}, - _aDP_=caml_call4(Runtime_ocaml_Runtime[63],_Ig_,[0],_aDO_,_aDN_)} - catch(_a1I_) - {_a1I_ = caml_wrap_exception(_a1I_); - if(_a1I_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ie_]; - throw _a1I_} - var - coefficient_d842_11= - caml_call3 - (Runtime_ocaml_Runtime[28],_Ih_,Runtime_ocaml_Runtime[15],_aDP_); - try - {var - _aDQ_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_16_25$0)}, - _aDR_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ij_,1)}, - _aDS_=caml_call4(Runtime_ocaml_Runtime[63],_Ik_,[0],_aDR_,_aDQ_)} - catch(_a1H_) - {_a1H_ = caml_wrap_exception(_a1H_); - if(_a1H_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ii_]; - throw _a1H_} - var - coefficient_d842_12= - caml_call3 - (Runtime_ocaml_Runtime[28],_Il_,Runtime_ocaml_Runtime[15],_aDS_); - try - {var - _aDT_=function(param){return nombre_personnes_a_charge}, - _aDU_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_In_,1)}, - _aDV_=caml_call4(Runtime_ocaml_Runtime[63],_Io_,[0],_aDU_,_aDT_), - calcul_nombre_parts_dot_nombre= - caml_call3 - (Runtime_ocaml_Runtime[28],_Ip_,Runtime_ocaml_Runtime[14],_aDV_)} - catch(_a1G_) - {_a1G_ = caml_wrap_exception(_a1G_); - if(_a1G_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Im_]; - throw _a1G_} - try - {var - _aDW_=function(param){return situation_familiale_calcul_apl}, - _aDX_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ir_,1)}, - _aDY_=caml_call4(Runtime_ocaml_Runtime[63],_Is_,[0],_aDX_,_aDW_), - calcul_nombre_parts_dot_situat= - caml_call3 - (Runtime_ocaml_Runtime[28], - _It_, - embed_situation_familiale_calc, - _aDY_)} - catch(_a1F_) - {_a1F_ = caml_wrap_exception(_a1F_); - if(_a1F_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Iq_]; - throw _a1F_} - var - _aDZ_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_Iu_,calcul_nombre_parts_accession_), - [0,calcul_nombre_parts_dot_nombre,calcul_nombre_parts_dot_situat]), - result=caml_call2(Runtime_ocaml_Runtime[27],_Iv_,_aDZ_), - calcul_nombre_parts_dot_n_nomb=result[1]; - try - {var - _aD0_=function(param){return date_courante}, - _aD1_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ix_,1)}, - _aD2_=caml_call4(Runtime_ocaml_Runtime[63],_Iy_,[0],_aD1_,_aD0_), - contributions_sociales_dot_dat= - caml_call3 - (Runtime_ocaml_Runtime[28],_Iz_,Runtime_ocaml_Runtime[16],_aD2_)} - catch(_a1E_) - {_a1E_ = caml_wrap_exception(_a1E_); - if(_a1E_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Iw_]; - throw _a1E_} - var - _aD3_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_IA_,contributions_sociales_aides_p), - [0,contributions_sociales_dot_dat]), - result$0=caml_call2(Runtime_ocaml_Runtime[27],_IB_,_aD3_), - contributions_sociales_dot_mon=result$0[1]; - try - {var - _aD4_= - function(param) - {function _a04_(param){throw Runtime_ocaml_Runtime[2]} - function _a05_(param){return 0} - function _a06_(param) - {function _a1s_(param) - {var _a1z_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$318); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1z_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_5399$5); - var - _a1A_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _a1B_=caml_call1(Runtime_ocaml_Runtime[31],cst_1224$4), - _a1C_=caml_call2(Runtime_ocaml_Runtime[104],_a1B_,_a1A_), - _a1D_=caml_call1(Runtime_ocaml_Runtime[31],cst_5399$6); - return caml_call2(Runtime_ocaml_Runtime[93],_a1D_,_a1C_)} - function _a1t_(param) - {var - _a1u_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _a1v_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a1u_), - _a1w_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _a1x_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a1w_), - _a1y_=caml_call2(Runtime_ocaml_Runtime[83],_a1x_,_a1v_); - return caml_call2(Runtime_ocaml_Runtime[29],_ID_,_a1y_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_IE_,[0],_a1t_,_a1s_)} - function _a07_(param) - {function _a1g_(param) - {var _a1n_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$319); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1n_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_5422$5); - var - _a1o_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _a1p_=caml_call1(Runtime_ocaml_Runtime[31],cst_1229$4), - _a1q_=caml_call2(Runtime_ocaml_Runtime[104],_a1p_,_a1o_), - _a1r_=caml_call1(Runtime_ocaml_Runtime[31],cst_5422$6); - return caml_call2(Runtime_ocaml_Runtime[93],_a1r_,_a1q_)} - function _a1h_(param) - {var - _a1i_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _a1j_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a1i_), - _a1k_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _a1l_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a1k_), - _a1m_=caml_call2(Runtime_ocaml_Runtime[83],_a1l_,_a1j_); - return caml_call2(Runtime_ocaml_Runtime[29],_IF_,_a1m_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_IG_,[0],_a1h_,_a1g_)} - var - _a08_= - [0, - function(param) - {function _a09_(param) - {var _a1b_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$320); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1b_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_5612$7); - var - _a1c_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _a1d_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272$6), - _a1e_=caml_call2(Runtime_ocaml_Runtime[104],_a1d_,_a1c_), - _a1f_=caml_call1(Runtime_ocaml_Runtime[31],cst_5612$8); - return caml_call2(Runtime_ocaml_Runtime[93],_a1f_,_a1e_)} - function _a0__(param) - {var - _a0$_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _a1a_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a0$_); - return caml_call2(Runtime_ocaml_Runtime[29],_IH_,_a1a_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_II_,[0],_a0__,_a09_)}, - _a07_, - _a06_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_IJ_,_a08_,_a05_,_a04_)}, - _aD5_=function(param){return 1}, - _aD6_= - function(param) - {function _aZo_(param) - {function _a0s_(param){throw Runtime_ocaml_Runtime[2]} - function _a0t_(param){return 0} - function _a0u_(param) - {function _a0S_(param) - {var - _a00_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _a01_=caml_call1(Runtime_ocaml_Runtime[31],cst_1224$5), - _a02_=caml_call2(Runtime_ocaml_Runtime[104],_a01_,_a00_), - _a03_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_2699$1) - :caml_call1(Runtime_ocaml_Runtime[31],cst_5399$7); - return caml_call2(Runtime_ocaml_Runtime[93],_a03_,_a02_)} - function _a0T_(param) - {var - _a0U_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _a0V_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a0U_), - _a0W_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _a0X_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a0W_), - _a0Y_=caml_call2(Runtime_ocaml_Runtime[83],_a0X_,_a0V_), - _a0Z_= - caml_call2(Runtime_ocaml_Runtime[83],_a0Y_,copropriete); - return caml_call2(Runtime_ocaml_Runtime[29],_IK_,_a0Z_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_IL_,[0],_a0T_,_a0S_)} - function _a0v_(param) - {function _a0G_(param) - {var - _a0O_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _a0P_=caml_call1(Runtime_ocaml_Runtime[31],cst_1229$5), - _a0Q_=caml_call2(Runtime_ocaml_Runtime[104],_a0P_,_a0O_), - _a0R_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_2710$1) - :caml_call1(Runtime_ocaml_Runtime[31],cst_5422$7); - return caml_call2(Runtime_ocaml_Runtime[93],_a0R_,_a0Q_)} - function _a0H_(param) - {var - _a0I_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _a0J_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a0I_), - _a0K_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _a0L_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a0K_), - _a0M_=caml_call2(Runtime_ocaml_Runtime[83],_a0L_,_a0J_), - _a0N_= - caml_call2(Runtime_ocaml_Runtime[83],_a0M_,copropriete); - return caml_call2(Runtime_ocaml_Runtime[29],_IM_,_a0N_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_IN_,[0],_a0H_,_a0G_)} + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPw_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_31476) + : caml_call1(Runtime_ocaml_Runtime[31], cst_37933); + var _aPx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$180); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPx_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40787); + var _aPy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$34); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPy_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41927); + var _aPz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$32); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPz_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_43106); + var _aPA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$34); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPA_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_44262); + var _aPB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$26); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPB_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_45200); var - _a0w_= - [0, - function(param) - {function _a0x_(param) - {var - _a0C_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _a0D_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272$7), - _a0E_=caml_call2(Runtime_ocaml_Runtime[104],_a0D_,_a0C_), - _a0F_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_2805$1) - :caml_call1(Runtime_ocaml_Runtime[31],cst_5612$9); - return caml_call2(Runtime_ocaml_Runtime[93],_a0F_,_a0E_)} - function _a0y_(param) - {var - _a0z_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _a0A_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a0z_), - _a0B_= - caml_call2(Runtime_ocaml_Runtime[83],_a0A_,copropriete); - return caml_call2(Runtime_ocaml_Runtime[29],_IO_,_a0B_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_IP_,[0],_a0y_,_a0x_)}, - _a0v_, - _a0u_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_IQ_,_a0w_,_a0t_,_a0s_)} - function _aZp_(param){return 1} - var - _aZq_= - [0, - function(param) - {function _aZr_(param) - {function _aZZ_(param){throw Runtime_ocaml_Runtime[2]} - function _aZ0_(param){return 0} - function _aZ1_(param) - {function _a0b_(param) - {var - _a0k_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _a0l_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$8), - _a0m_=caml_call2(Runtime_ocaml_Runtime[104],_a0l_,_a0k_), - _a0n_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767$8), - montant=caml_call2(Runtime_ocaml_Runtime[93],_a0n_,_a0m_), - _a0o_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$28), - _a0p_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$9), - _a0q_=caml_call2(Runtime_ocaml_Runtime[104],_a0p_,_a0o_), - _a0r_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767$9), - limite=caml_call2(Runtime_ocaml_Runtime[93],_a0r_,_a0q_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _a0c_(param) - {switch(residence[0]) - {case 0:var _a0d_=1;break; - case 1:var _a0d_=0;break; - case 2:var _a0d_=1;break; - case 3:var _a0d_=1;break; - case 4:var _a0d_=1;break; - case 5:var _a0d_=1;break; - case 6:var _a0d_=0;break; - case 7:var _a0d_=0;break; - default:var _a0d_=1} - var - _a0e_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _a0f_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a0e_), - _a0g_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _a0h_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a0g_), - _a0i_=caml_call2(Runtime_ocaml_Runtime[83],_a0h_,_a0f_), - _a0j_=caml_call2(Runtime_ocaml_Runtime[83],_a0i_,_a0d_); - return caml_call2(Runtime_ocaml_Runtime[29],_IR_,_a0j_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_IS_,[0],_a0c_,_a0b_)} - var - _aZ2_= - [0, - function(param) - {function _aZ3_(param) - {var - _aZ9_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _aZ__=caml_call1(Runtime_ocaml_Runtime[31],cst_969$10), - _aZ$_=caml_call2(Runtime_ocaml_Runtime[104],_aZ__,_aZ9_), - _a0a_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767$10); - return caml_call2(Runtime_ocaml_Runtime[93],_a0a_,_aZ$_)} - function _aZ4_(param) - {switch(residence[0]) - {case 0:var _aZ5_=1;break; - case 1:var _aZ5_=0;break; - case 2:var _aZ5_=1;break; - case 3:var _aZ5_=1;break; - case 4:var _aZ5_=1;break; - case 5:var _aZ5_=1;break; - case 6:var _aZ5_=0;break; - case 7:var _aZ5_=0;break; - default:var _aZ5_=1} - var - _aZ6_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _aZ7_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aZ6_), - _aZ8_=caml_call2(Runtime_ocaml_Runtime[83],_aZ7_,_aZ5_); - return caml_call2(Runtime_ocaml_Runtime[29],_IT_,_aZ8_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_IU_,[0],_aZ4_,_aZ3_)}, - _aZ1_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_IV_,_aZ2_,_aZ0_,_aZZ_)} - function _aZs_(param){return 1} + _aPC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$27), + _aPD_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aPC_), + _aPE_ = caml_call1(Runtime_ocaml_Runtime[69], _aPD_), + _aPF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3936), + _aPG_ = caml_call2(Runtime_ocaml_Runtime[104], _aPF_, _aPE_), + _aPH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_45200$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aPH_, _aPG_); + case 1: + var _aPI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$260); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPI_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_27614) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33853); + var _aPJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$181); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPJ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36646); + var _aPK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$35); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPK_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37915); + var _aPL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$33); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPL_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39222); + var _aPM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$35); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPM_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40510); + var _aPN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$28); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPN_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_43378); + var + _aPO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$29), + _aPP_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aPO_), + _aPQ_ = caml_call1(Runtime_ocaml_Runtime[69], _aPP_), + _aPR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3771), + _aPS_ = caml_call2(Runtime_ocaml_Runtime[104], _aPR_, _aPQ_), + _aPT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43378$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aPT_, _aPS_); + default: + var _aPU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$261); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPU_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25904) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31419); + var _aPV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$182); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPV_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34255); + var _aPW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$36); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPW_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35670); + var _aPX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$34); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPX_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37107); + var _aPY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$36); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPY_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38521); + var _aPZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$30); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPZ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41392); + var + _aP0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$31), + _aP1_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aP0_), + _aP2_ = caml_call1(Runtime_ocaml_Runtime[69], _aP1_), + _aP3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3588), + _aP4_ = caml_call2(Runtime_ocaml_Runtime[104], _aP3_, _aP2_), + _aP5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41392$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aP5_, _aP4_); + } + } + function _aPq_(param){ + var + _aPr_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _aPs_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aPr_), + _aPt_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aPu_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aPt_), + _aPv_ = caml_call2(Runtime_ocaml_Runtime[83], _aPu_, _aPs_); + return caml_call2(Runtime_ocaml_Runtime[29], _zv_, _aPv_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zw_, [0], _aPq_, _aPp_); + }, + _azR_ = + function(param){ + function _aOH_(param){ + switch(zone[0]){ + case 0: + var _aOR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$262); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOR_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_31382) + : caml_call1(Runtime_ocaml_Runtime[31], cst_37820); + var _aOS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$183); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOS_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40665); + var _aOT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$37); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOT_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41801); + var _aOU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$35); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOU_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_42977); + var _aOV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$37); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOV_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_44130); + var _aOW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$32); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOW_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_45064); + var + _aOX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$33), + _aOY_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aOX_), + _aOZ_ = caml_call1(Runtime_ocaml_Runtime[69], _aOY_), + _aO0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3924), + _aO1_ = caml_call2(Runtime_ocaml_Runtime[104], _aO0_, _aOZ_), + _aO2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_45064$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aO2_, _aO1_); + case 1: + var _aO3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$263); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aO3_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_27531) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33751); + var _aO4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$184); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aO4_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36536); + var _aO5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$38); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aO5_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37801); + var _aO6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$36); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aO6_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39105); + var _aO7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$38); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aO7_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40389); + var _aO8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$34); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aO8_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_43248); + var + _aO9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$35), + _aO__ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aO9_), + _aO$_ = caml_call1(Runtime_ocaml_Runtime[69], _aO__), + _aPa_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3760), + _aPb_ = caml_call2(Runtime_ocaml_Runtime[104], _aPa_, _aO$_), + _aPc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43248$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aPc_, _aPb_); + default: + var _aPd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$264); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPd_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25826) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31325); + var _aPe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$185); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPe_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34152); + var _aPf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$39); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPf_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35564); + var _aPg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$37); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPg_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36996); + var _aPh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$39); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPh_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38406); + var _aPi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$36); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aPi_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41268); + var + _aPj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$37), + _aPk_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aPj_), + _aPl_ = caml_call1(Runtime_ocaml_Runtime[69], _aPk_), + _aPm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3578), + _aPn_ = caml_call2(Runtime_ocaml_Runtime[104], _aPm_, _aPl_), + _aPo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41268$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aPo_, _aPn_); + } + } + function _aOI_(param){ + var + _aOJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _aOK_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aOJ_), + _aOL_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 10, 1), + _aOM_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aOL_), + _aON_ = caml_call2(Runtime_ocaml_Runtime[83], _aOM_, _aOK_), + _aOO_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aOP_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aOO_), + _aOQ_ = caml_call2(Runtime_ocaml_Runtime[83], _aOP_, _aON_); + return caml_call2(Runtime_ocaml_Runtime[29], _zx_, _aOQ_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zy_, [0], _aOI_, _aOH_); + }, + _azS_ = + function(param){ + function _aNZ_(param){ + switch(zone[0]){ + case 0: + var _aN9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$265); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aN9_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_31148) + : caml_call1(Runtime_ocaml_Runtime[31], cst_37538); + var _aN__ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$186); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aN__)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40362); + var _aN$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$40); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aN$_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41490); + var _aOa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$38); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOa_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_42657); + var _aOb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$40); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOb_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_43801); + var _aOc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$38); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOc_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_44729); + var + _aOd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$39), + _aOe_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aOd_), + _aOf_ = caml_call1(Runtime_ocaml_Runtime[69], _aOe_), + _aOg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3895), + _aOh_ = caml_call2(Runtime_ocaml_Runtime[104], _aOg_, _aOf_), + _aOi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_44729$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aOi_, _aOh_); + case 1: + var _aOj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$266); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOj_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_27326) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33500$0); + var _aOk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$187); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOk_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36264); + var _aOl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$41); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOl_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37520); + var _aOm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$39); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOm_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38814); + var _aOn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$41); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOn_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40088); + var _aOo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$40); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOo_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_42926); + var + _aOp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$41), + _aOq_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aOp_), + _aOr_ = caml_call1(Runtime_ocaml_Runtime[69], _aOq_), + _aOs_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3732), + _aOt_ = caml_call2(Runtime_ocaml_Runtime[104], _aOs_, _aOr_), + _aOu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42926$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aOu_, _aOt_); + default: + var _aOv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$267); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOv_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25634) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31092); + var _aOw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$188); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOw_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33898); + var _aOx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$42); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOx_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35299); + var _aOy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$40); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOy_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36721); + var _aOz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$42); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOz_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38120); + var _aOA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$42); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOA_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40961); + var + _aOB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$43), + _aOC_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aOB_), + _aOD_ = caml_call1(Runtime_ocaml_Runtime[69], _aOC_), + _aOE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3551), + _aOF_ = caml_call2(Runtime_ocaml_Runtime[104], _aOE_, _aOD_), + _aOG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40961$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aOG_, _aOF_); + } + } + function _aN0_(param){ + var + _aN1_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 10, 1), + _aN2_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aN1_), + _aN3_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 10, 1), + _aN4_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aN3_), + _aN5_ = caml_call2(Runtime_ocaml_Runtime[83], _aN4_, _aN2_), + _aN6_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aN7_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aN6_), + _aN8_ = caml_call2(Runtime_ocaml_Runtime[83], _aN7_, _aN5_); + return caml_call2(Runtime_ocaml_Runtime[29], _zz_, _aN8_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zA_, [0], _aN0_, _aNZ_); + }, + _azT_ = + function(param){ + function _aNf_(param){ + switch(zone[0]){ + case 0: + var _aNp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$268); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNp_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_31123) + : caml_call1(Runtime_ocaml_Runtime[31], cst_37508); + var _aNq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$189); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNq_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40330); + var _aNr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$43); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNr_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41457); + var _aNs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$41); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNs_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_42623); + var _aNt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$43); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNt_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_43766); + var _aNu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$44); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNu_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_44693); + var + _aNv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$45), + _aNw_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aNv_), + _aNx_ = caml_call1(Runtime_ocaml_Runtime[69], _aNw_), + _aNy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3892), + _aNz_ = caml_call2(Runtime_ocaml_Runtime[104], _aNy_, _aNx_), + _aNA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_44693$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aNA_, _aNz_); + case 1: + var _aNB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$269); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNB_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_27304) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33473); + var _aNC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$190); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNC_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36235); + var _aND_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$44); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aND_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37490); + var _aNE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$42); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNE_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38783); + var _aNF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$44); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNF_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40056); + var _aNG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$46); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNG_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_42892); + var + _aNH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$47), + _aNI_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aNH_), + _aNJ_ = caml_call1(Runtime_ocaml_Runtime[69], _aNI_), + _aNK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3729), + _aNL_ = caml_call2(Runtime_ocaml_Runtime[104], _aNK_, _aNJ_), + _aNM_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42892$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aNM_, _aNL_); + default: + var _aNN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$270); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNN_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25614) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31067); + var _aNO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$191); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNO_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33871); + var _aNP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$45); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNP_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35271); + var _aNQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$43); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNQ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36692); + var _aNR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$45); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNR_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38090); + var _aNS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$48); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNS_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40928); + var + _aNT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$49), + _aNU_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aNT_), + _aNV_ = caml_call1(Runtime_ocaml_Runtime[69], _aNU_), + _aNW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3548), + _aNX_ = caml_call2(Runtime_ocaml_Runtime[104], _aNW_, _aNV_), + _aNY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40928$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aNY_, _aNX_); + } + } + function _aNg_(param){ + var + _aNh_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 10, 1), + _aNi_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aNh_), + _aNj_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 10, 1), + _aNk_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aNj_), + _aNl_ = caml_call2(Runtime_ocaml_Runtime[83], _aNk_, _aNi_), + _aNm_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aNn_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aNm_), + _aNo_ = caml_call2(Runtime_ocaml_Runtime[83], _aNn_, _aNl_); + return caml_call2(Runtime_ocaml_Runtime[29], _zB_, _aNo_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zC_, [0], _aNg_, _aNf_); + }, + _azU_ = + function(param){ + function _aMx_(param){ + switch(zone[0]){ + case 0: + var _aMH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$271); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMH_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_30947) + : caml_call1(Runtime_ocaml_Runtime[31], cst_37295); + var _aMI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$192); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMI_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40101); + var _aMJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$46); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMJ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41222); + var _aMK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$44); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMK_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_42381); + var _aML_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$46); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aML_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_43518); + var _aMM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$50); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMM_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_44440); + var + _aMN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$51), + _aMO_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aMN_), + _aMP_ = caml_call1(Runtime_ocaml_Runtime[69], _aMO_), + _aMQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3870), + _aMR_ = caml_call2(Runtime_ocaml_Runtime[104], _aMQ_, _aMP_), + _aMS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_44440$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aMS_, _aMR_); + case 1: + var _aMT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$272); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMT_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_27149) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33283); + var _aMU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$193); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMU_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36030); + var _aMV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$47); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMV_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37278); + var _aMW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$45); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMW_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38563); + var _aMX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$47); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMX_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39829); + var _aMY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$52); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMY_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_42649); + var + _aMZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$53), + _aM0_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aMZ_), + _aM1_ = caml_call1(Runtime_ocaml_Runtime[69], _aM0_), + _aM2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3708), + _aM3_ = caml_call2(Runtime_ocaml_Runtime[104], _aM2_, _aM1_), + _aM4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42659); + return caml_call2(Runtime_ocaml_Runtime[93], _aM4_, _aM3_); + default: + var _aM5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$273); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aM5_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25469) + : caml_call1(Runtime_ocaml_Runtime[31], cst_30891); + var _aM6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$194); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aM6_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33679); + var _aM7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$48); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aM7_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35071); + var _aM8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$46); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aM8_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36484); + var _aM9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$48); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aM9_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37874); + var _aM__ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$54); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aM__)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40696); + var + _aM$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$55), + _aNa_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aM$_), + _aNb_ = caml_call1(Runtime_ocaml_Runtime[69], _aNa_), + _aNc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3528), + _aNd_ = caml_call2(Runtime_ocaml_Runtime[104], _aNc_, _aNb_), + _aNe_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40696$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aNe_, _aNd_); + } + } + function _aMy_(param){ + var + _aMz_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 10, 1), + _aMA_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aMz_), + _aMB_ = caml_call3(Runtime_ocaml_Runtime[57], 2013, 1, 1), + _aMC_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aMB_), + _aMD_ = caml_call2(Runtime_ocaml_Runtime[83], _aMC_, _aMA_), + _aME_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aMF_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aME_), + _aMG_ = caml_call2(Runtime_ocaml_Runtime[83], _aMF_, _aMD_); + return caml_call2(Runtime_ocaml_Runtime[29], _zD_, _aMG_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zE_, [0], _aMy_, _aMx_); + }, + _azV_ = + function(param){ + function _aLP_(param){ + switch(zone[0]){ + case 0: + var _aLZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$274); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLZ_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_30296) + : caml_call1(Runtime_ocaml_Runtime[31], cst_36510); + var _aL0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$195); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aL0_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39257); + var _aL1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$49); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aL1_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40354); + var _aL2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$47); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aL2_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41489); + var _aL3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$49); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aL3_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_42602); + var _aL4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$56); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aL4_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_43505); + var + _aL5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$57), + _aL6_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aL5_), + _aL7_ = caml_call1(Runtime_ocaml_Runtime[69], _aL6_), + _aL8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3789), + _aL9_ = caml_call2(Runtime_ocaml_Runtime[104], _aL8_, _aL7_), + _aL__ = caml_call1(Runtime_ocaml_Runtime[31], cst_43505$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aL__, _aL9_); + case 1: + var _aL$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$275); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aL$_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26578) + : caml_call1(Runtime_ocaml_Runtime[31], cst_32582); + var _aMa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$196); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMa_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35272); + var _aMb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$50); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMb_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36493); + var _aMc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$48); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMc_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37751); + var _aMd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$50); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMd_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38991); + var _aMe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$58); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMe_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41751); + var + _aMf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$59), + _aMg_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aMf_), + _aMh_ = caml_call1(Runtime_ocaml_Runtime[69], _aMg_), + _aMi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3630), + _aMj_ = caml_call2(Runtime_ocaml_Runtime[104], _aMi_, _aMh_), + _aMk_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41751$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aMk_, _aMj_); + default: + var _aMl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$276); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMl_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24933) + : caml_call1(Runtime_ocaml_Runtime[31], cst_30241); + var _aMm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$197); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMm_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32970); + var _aMn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$51); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMn_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34333); + var _aMo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$49); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMo_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35716); + var _aMp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$51); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMp_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37077); + var _aMq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$60); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMq_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39839); + var + _aMr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$61), + _aMs_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aMr_), + _aMt_ = caml_call1(Runtime_ocaml_Runtime[69], _aMs_), + _aMu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3454), + _aMv_ = caml_call2(Runtime_ocaml_Runtime[104], _aMu_, _aMt_), + _aMw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39839$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aMw_, _aMv_); + } + } + function _aLQ_(param){ + var + _aLR_ = caml_call3(Runtime_ocaml_Runtime[57], 2013, 1, 1), + _aLS_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aLR_), + _aLT_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 1, 1), + _aLU_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aLT_), + _aLV_ = caml_call2(Runtime_ocaml_Runtime[83], _aLU_, _aLS_), + _aLW_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aLX_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aLW_), + _aLY_ = caml_call2(Runtime_ocaml_Runtime[83], _aLX_, _aLV_); + return caml_call2(Runtime_ocaml_Runtime[29], _zF_, _aLY_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zG_, [0], _aLQ_, _aLP_); + }, + _azW_ = + function(param){ + function _aK7_(param){ + switch(zone[0]){ + case 0: + var _aLf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$277); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLf_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29996) + : caml_call1(Runtime_ocaml_Runtime[31], cst_36149); + var _aLg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$198); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLg_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38868); + var _aLh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$52); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLh_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39954); + var _aLi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$50); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLi_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41078); + var _aLj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$52); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLj_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_42180); + var _aLk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$62); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLk_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_43074); + var + _aLl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$63), + _aLm_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aLl_), + _aLn_ = caml_call1(Runtime_ocaml_Runtime[69], _aLm_), + _aLo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3751), + _aLp_ = caml_call2(Runtime_ocaml_Runtime[104], _aLo_, _aLn_), + _aLq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43074$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aLq_, _aLp_); + case 1: + var _aLr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$278); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLr_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26315) + : caml_call1(Runtime_ocaml_Runtime[31], cst_32259); + var _aLs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$199); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLs_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34923); + var _aLt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$53); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLt_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36132); + var _aLu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$51); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLu_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37373); + var _aLv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$53); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLv_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38605); + var _aLw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$64); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLw_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41338); + var + _aLx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$65), + _aLy_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aLx_), + _aLz_ = caml_call1(Runtime_ocaml_Runtime[69], _aLy_), + _aLA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3594), + _aLB_ = caml_call2(Runtime_ocaml_Runtime[104], _aLA_, _aLz_), + _aLC_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41338$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aLC_, _aLB_); + default: + var _aLD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$279); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLD_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24686) + : caml_call1(Runtime_ocaml_Runtime[31], cst_29942); + var _aLE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$200); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLE_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32644); + var _aLF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$54); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLF_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33993); + var _aLG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$52); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLG_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35362); + var _aLH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$54); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLH_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36710); + var _aLI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$66); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLI_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39445); + var + _aLJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$67), + _aLK_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aLJ_), + _aLL_ = caml_call1(Runtime_ocaml_Runtime[69], _aLK_), + _aLM_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3420), + _aLN_ = caml_call2(Runtime_ocaml_Runtime[104], _aLM_, _aLL_), + _aLO_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39445$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aLO_, _aLN_); + } + } + function _aK8_(param){ + var + _aK9_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 1, 1), + _aK__ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aK9_), + _aK$_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 1, 1), + _aLa_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aK$_), + _aLb_ = caml_call2(Runtime_ocaml_Runtime[83], _aLa_, _aK__), + _aLc_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aLd_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aLc_), + _aLe_ = caml_call2(Runtime_ocaml_Runtime[83], _aLd_, _aLb_); + return caml_call2(Runtime_ocaml_Runtime[29], _zH_, _aLe_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zI_, [0], _aK8_, _aK7_); + }, + _azX_ = + function(param){ + function _aKn_(param){ + switch(zone[0]){ + case 0: + var _aKx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$280); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKx_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29670) + : caml_call1(Runtime_ocaml_Runtime[31], cst_35757); + var _aKy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$201); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKy_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38445); + var _aKz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$55); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKz_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39519); + var _aKA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$53); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKA_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40601); + var _aKB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$55); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKB_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41721); + var _aKC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$68); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKC_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_42605); + var + _aKD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$69), + _aKE_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aKD_), + _aKF_ = caml_call1(Runtime_ocaml_Runtime[69], _aKE_), + _aKG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3710), + _aKH_ = caml_call2(Runtime_ocaml_Runtime[104], _aKG_, _aKF_), + _aKI_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42605$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aKI_, _aKH_); + case 1: + var _aKJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$281); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKJ_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26029) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31908); + var _aKK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$202); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKK_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34643); + var _aKL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$56); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKL_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35739); + var _aKM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$54); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKM_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36970); + var _aKN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$56); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKN_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38185); + var _aKO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$70); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKO_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40888); + var + _aKP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$71), + _aKQ_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aKP_), + _aKR_ = caml_call1(Runtime_ocaml_Runtime[69], _aKQ_), + _aKS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3555), + _aKT_ = caml_call2(Runtime_ocaml_Runtime[104], _aKS_, _aKR_), + _aKU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40888$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aKU_, _aKT_); + default: + var _aKV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$282); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKV_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24417) + : caml_call1(Runtime_ocaml_Runtime[31], cst_29616); + var _aKW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$203); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKW_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32289); + var _aKX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$57); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKX_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33623$0); + var _aKY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$55); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKY_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34977); + var _aKZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$57); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKZ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36311); + var _aK0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$72); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aK0_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39016); + var + _aK1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$73), + _aK2_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aK1_), + _aK3_ = caml_call1(Runtime_ocaml_Runtime[69], _aK2_), + _aK4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3383), + _aK5_ = caml_call2(Runtime_ocaml_Runtime[104], _aK4_, _aK3_), + _aK6_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39016$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aK6_, _aK5_); + } + } + function _aKo_(param){ + var + _aKp_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 1, 1), + _aKq_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aKp_), + _aKr_ = caml_call3(Runtime_ocaml_Runtime[57], 2010, 1, 1), + _aKs_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aKr_), + _aKt_ = caml_call2(Runtime_ocaml_Runtime[83], _aKs_, _aKq_), + _aKu_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aKv_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aKu_), + _aKw_ = caml_call2(Runtime_ocaml_Runtime[83], _aKv_, _aKt_); + return caml_call2(Runtime_ocaml_Runtime[29], _zJ_, _aKw_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zK_, [0], _aKo_, _aKn_); + }, + _azY_ = + function(param){ + function _aJF_(param){ + switch(zone[0]){ + case 0: + var _aJP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$283); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJP_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29575) + : caml_call1(Runtime_ocaml_Runtime[31], cst_35642); + var _aJQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$204); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJQ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38322); + var _aJR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$58); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJR_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39393); + var _aJS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$56); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJS_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40501); + var _aJT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$58); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJT_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41588); + var _aJU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$74); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJU_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_42469); + var + _aJV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$75), + _aJW_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aJV_), + _aJX_ = caml_call1(Runtime_ocaml_Runtime[69], _aJW_), + _aJY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3698), + _aJZ_ = caml_call2(Runtime_ocaml_Runtime[104], _aJY_, _aJX_), + _aJ0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42469$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aJ0_, _aJZ_); + case 1: + var _aJ1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$284); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJ1_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25946) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31806); + var _aJ2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$205); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJ2_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34433); + var _aJ3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$59); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJ3_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35625); + var _aJ4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$57); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJ4_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36852); + var _aJ5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$59); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJ5_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38063); + var _aJ6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$76); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJ6_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40758); + var + _aJ7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$77), + _aJ8_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aJ7_), + _aJ9_ = caml_call1(Runtime_ocaml_Runtime[69], _aJ8_), + _aJ__ = caml_call1(Runtime_ocaml_Runtime[31], cst_3544), + _aJ$_ = caml_call2(Runtime_ocaml_Runtime[104], _aJ__, _aJ9_), + _aKa_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40758$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aKa_, _aJ$_); + default: + var _aKb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$285); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKb_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24339) + : caml_call1(Runtime_ocaml_Runtime[31], cst_29522); + var _aKc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$206); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKc_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32186); + var _aKd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$60); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKd_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33516); + var _aKe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$58); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKe_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34865); + var _aKf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$60); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKf_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36195); + var _aKg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$78); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKg_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38892); + var + _aKh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$79), + _aKi_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aKh_), + _aKj_ = caml_call1(Runtime_ocaml_Runtime[69], _aKi_), + _aKk_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3372), + _aKl_ = caml_call2(Runtime_ocaml_Runtime[104], _aKk_, _aKj_), + _aKm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_38892$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aKm_, _aKl_); + } + } + function _aJG_(param){ + var + _aJH_ = caml_call3(Runtime_ocaml_Runtime[57], 2010, 1, 1), + _aJI_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aJH_), + _aJJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2009, 1, 1), + _aJK_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aJJ_), + _aJL_ = caml_call2(Runtime_ocaml_Runtime[83], _aJK_, _aJI_), + _aJM_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aJN_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aJM_), + _aJO_ = caml_call2(Runtime_ocaml_Runtime[83], _aJN_, _aJL_); + return caml_call2(Runtime_ocaml_Runtime[29], _zL_, _aJO_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zM_, [0], _aJG_, _aJF_); + }, + _azZ_ = + function(param){ + function _aIX_(param){ + switch(zone[0]){ + case 0: + var _aI7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$286); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aI7_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_28728) + : caml_call1(Runtime_ocaml_Runtime[31], cst_34621); + var _aI8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$207); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aI8_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37224); + var _aI9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$61); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aI9_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38264); + var _aI__ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$59); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aI__)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39340$0); + var _aI$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$61); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aI$_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40396); + var _aJa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$80); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJa_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41252); + var + _aJb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$81), + _aJc_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aJb_), + _aJd_ = caml_call1(Runtime_ocaml_Runtime[69], _aJc_), + _aJe_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3592), + _aJf_ = caml_call2(Runtime_ocaml_Runtime[104], _aJe_, _aJd_), + _aJg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41252$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aJg_, _aJf_); + case 1: + var _aJh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$287); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJh_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25203) + : caml_call1(Runtime_ocaml_Runtime[31], cst_30895); + var _aJi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$208); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJi_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33446); + var _aJj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$62); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJj_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34604); + var _aJk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$60); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJk_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35796); + var _aJl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$62); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJl_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36972); + var _aJm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$82); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJm_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39590); + var + _aJn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$83), + _aJo_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aJn_), + _aJp_ = caml_call1(Runtime_ocaml_Runtime[69], _aJo_), + _aJq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3442), + _aJr_ = caml_call2(Runtime_ocaml_Runtime[104], _aJq_, _aJp_), + _aJs_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39590$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aJs_, _aJr_); + default: + var _aJt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$288); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJt_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_23642) + : caml_call1(Runtime_ocaml_Runtime[31], cst_28676); + var _aJu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$209); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJu_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_31264$0); + var _aJv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$63); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJv_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32556); + var _aJw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$61); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJw_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33866); + var _aJx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$63); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJx_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35158); + var _aJy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$84); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJy_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37778); + var + _aJz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$85), + _aJA_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aJz_), + _aJB_ = caml_call1(Runtime_ocaml_Runtime[69], _aJA_), + _aJC_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3275), + _aJD_ = caml_call2(Runtime_ocaml_Runtime[104], _aJC_, _aJB_), + _aJE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37778$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aJE_, _aJD_); + } + } + function _aIY_(param){ + var + _aIZ_ = caml_call3(Runtime_ocaml_Runtime[57], 2009, 1, 1), + _aI0_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aIZ_), + _aI1_ = caml_call3(Runtime_ocaml_Runtime[57], 2008, 1, 1), + _aI2_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aI1_), + _aI3_ = caml_call2(Runtime_ocaml_Runtime[83], _aI2_, _aI0_), + _aI4_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aI5_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aI4_), + _aI6_ = caml_call2(Runtime_ocaml_Runtime[83], _aI5_, _aI3_); + return caml_call2(Runtime_ocaml_Runtime[29], _zN_, _aI6_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zO_, [0], _aIY_, _aIX_); + }, + _az0_ = + function(param){ + function _aId_(param){ + switch(zone[0]){ + case 0: + var _aIn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$289); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIn_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_27956) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33691); + var _aIo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$210); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIo_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36224); + var _aIp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$64); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIp_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37236); + var _aIq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$62); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIq_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38283); + var _aIr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$64); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIr_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39311); + var _aIs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$86); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIs_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40144); + var + _aIt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$87), + _aIu_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aIt_), + _aIv_ = caml_call1(Runtime_ocaml_Runtime[69], _aIu_), + _aIw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3496), + _aIx_ = caml_call2(Runtime_ocaml_Runtime[104], _aIw_, _aIv_), + _aIy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40144$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aIy_, _aIx_); + case 1: + var _aIz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$290); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIz_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24526) + : caml_call1(Runtime_ocaml_Runtime[31], cst_30065); + var _aIA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$211); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIA_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32548); + var _aIB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$65); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIB_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33675); + var _aIC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$63); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIC_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34865$0); + var _aID_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$65); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aID_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35979); + var _aIE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$88); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIE_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38527); + var + _aIF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$89), + _aIG_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aIF_), + _aIH_ = caml_call1(Runtime_ocaml_Runtime[69], _aIG_), + _aII_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3350), + _aIJ_ = caml_call2(Runtime_ocaml_Runtime[104], _aII_, _aIH_), + _aIK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_38527$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aIK_, _aIJ_); + default: + var _aIL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$291); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIL_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_23007) + : caml_call1(Runtime_ocaml_Runtime[31], cst_27906); + var _aIM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$212); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIM_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_30424); + var _aIN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$66); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIN_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_31682); + var _aIO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$64); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIO_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32956$0); + var _aIP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$66); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIP_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34214); + var _aIQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$90); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIQ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36733); + var + _aIR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$91), + _aIS_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aIR_), + _aIT_ = caml_call1(Runtime_ocaml_Runtime[69], _aIS_), + _aIU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3187), + _aIV_ = caml_call2(Runtime_ocaml_Runtime[104], _aIU_, _aIT_), + _aIW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36733$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aIW_, _aIV_); + } + } + function _aIe_(param){ + var + _aIf_ = caml_call3(Runtime_ocaml_Runtime[57], 2008, 1, 1), + _aIg_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aIf_), + _aIh_ = caml_call3(Runtime_ocaml_Runtime[57], 2007, 1, 1), + _aIi_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aIh_), + _aIj_ = caml_call2(Runtime_ocaml_Runtime[83], _aIi_, _aIg_), + _aIk_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aIl_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aIk_), + _aIm_ = caml_call2(Runtime_ocaml_Runtime[83], _aIl_, _aIj_); + return caml_call2(Runtime_ocaml_Runtime[29], _zP_, _aIm_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zQ_, [0], _aIe_, _aId_); + }, + _az1_ = + function(param){ + function _aHv_(param){ + switch(zone[0]){ + case 0: + var _aHF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$292); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHF_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_27195) + : caml_call1(Runtime_ocaml_Runtime[31], cst_32773); + var _aHG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$213); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHG_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35237); + var _aHH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$67); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHH_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36222); + var _aHI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$65); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHI_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37240); + var _aHJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$67); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHJ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38240); + var _aHK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$92); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHK_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39051); + var + _aHL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$93), + _aHM_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aHL_), + _aHN_ = caml_call1(Runtime_ocaml_Runtime[69], _aHM_), + _aHO_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3401), + _aHP_ = caml_call2(Runtime_ocaml_Runtime[104], _aHO_, _aHN_), + _aHQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39051$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aHQ_, _aHP_); + case 1: + var _aHR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$293); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHR_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_23858) + : caml_call1(Runtime_ocaml_Runtime[31], cst_29246); + var _aHS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$214); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHS_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_31661); + var _aHT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$68); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHT_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32758); + var _aHU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$66); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHU_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33886); + var _aHV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$68); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHV_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34999); + var _aHW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$94); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHW_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37478); + var + _aHX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$95), + _aHY_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aHX_), + _aHZ_ = caml_call1(Runtime_ocaml_Runtime[69], _aHY_), + _aH0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3259), + _aH1_ = caml_call2(Runtime_ocaml_Runtime[104], _aH0_, _aHZ_), + _aH2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37478$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aH2_, _aH1_); + default: + var _aH3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$294); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aH3_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_22380) + : caml_call1(Runtime_ocaml_Runtime[31], cst_27146); + var _aH4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$215); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aH4_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_29595); + var _aH5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$69); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aH5_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_30819); + var _aH6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$67); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aH6_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32058); + var _aH7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$69); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aH7_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33282); + var _aH8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$96); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aH8_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35762); + var + _aH9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$97), + _aH__ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aH9_), + _aH$_ = caml_call1(Runtime_ocaml_Runtime[69], _aH__), + _aIa_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3100), + _aIb_ = caml_call2(Runtime_ocaml_Runtime[104], _aIa_, _aH$_), + _aIc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35762$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aIc_, _aIb_); + } + } + function _aHw_(param){ + var + _aHx_ = caml_call3(Runtime_ocaml_Runtime[57], 2007, 1, 1), + _aHy_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aHx_), + _aHz_ = caml_call3(Runtime_ocaml_Runtime[57], 2005, 9, 1), + _aHA_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aHz_), + _aHB_ = caml_call2(Runtime_ocaml_Runtime[83], _aHA_, _aHy_), + _aHC_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aHD_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aHC_), + _aHE_ = caml_call2(Runtime_ocaml_Runtime[83], _aHD_, _aHB_); + return caml_call2(Runtime_ocaml_Runtime[29], _zR_, _aHE_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zS_, [0], _aHw_, _aHv_); + }, + _az2_ = + function(param){ + function _aGN_(param){ + switch(zone[0]){ + case 0: + var _aGX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$295); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGX_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26714$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_32194); + var _aGY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$216); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGY_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34614); + var _aGZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$70); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGZ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35582); + var _aG0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$68); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aG0_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36582); + var _aG1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$70); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aG1_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37564); + var _aG2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$98); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aG2_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38361); + var + _aG3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$99), + _aG4_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aG3_), + _aG5_ = caml_call1(Runtime_ocaml_Runtime[69], _aG4_), + _aG6_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3341), + _aG7_ = caml_call2(Runtime_ocaml_Runtime[104], _aG6_, _aG5_), + _aG8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_38361$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aG8_, _aG7_); + case 1: + var _aG9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$296); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aG9_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_23436) + : caml_call1(Runtime_ocaml_Runtime[31], cst_28729); + var _aG__ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$217); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aG__)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_31101); + var _aG$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$71); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aG$_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32179); + var _aHa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$69); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHa_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33287); + var _aHb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$71); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHb_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34380); + var _aHc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$100); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHc_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36815); + var + _aHd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$101), + _aHe_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aHd_), + _aHf_ = caml_call1(Runtime_ocaml_Runtime[69], _aHe_), + _aHg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3201), + _aHh_ = caml_call2(Runtime_ocaml_Runtime[104], _aHg_, _aHf_), + _aHi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36815$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aHi_, _aHh_); + default: + var _aHj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$297); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHj_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_21984) + : caml_call1(Runtime_ocaml_Runtime[31], cst_26666); + var _aHk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$218); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHk_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_29072); + var _aHl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$72); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHl_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_30274); + var _aHm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$70); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHm_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_31491); + var _aHn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$72); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHn_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32694); + var _aHo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$102); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHo_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35130); + var + _aHp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$103), + _aHq_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aHp_), + _aHr_ = caml_call1(Runtime_ocaml_Runtime[69], _aHq_), + _aHs_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3045), + _aHt_ = caml_call2(Runtime_ocaml_Runtime[104], _aHs_, _aHr_), + _aHu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35130$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aHu_, _aHt_); + } + } + function _aGO_(param){ + var + _aGP_ = caml_call3(Runtime_ocaml_Runtime[57], 2005, 9, 1), + _aGQ_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aGP_), + _aGR_ = caml_call3(Runtime_ocaml_Runtime[57], 2003, 7, 1), + _aGS_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aGR_), + _aGT_ = caml_call2(Runtime_ocaml_Runtime[83], _aGS_, _aGQ_), + _aGU_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aGV_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aGU_), + _aGW_ = caml_call2(Runtime_ocaml_Runtime[83], _aGV_, _aGT_); + return caml_call2(Runtime_ocaml_Runtime[29], _zT_, _aGW_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zU_, [0], _aGO_, _aGN_); + }, + _az3_ = + function(param){ + function _aF5_(param){ + switch(zone[0]){ + case 0: + var _aGd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$298); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGd_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26397) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31812); + var _aGe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$219); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGe_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34204); + var _aGf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$73); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGf_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35160); + var _aGg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$71); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGg_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36148); + var _aGh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$73); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGh_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37119); + var _aGi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$104); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGi_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37906); + var + _aGj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$105), + _aGk_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aGj_), + _aGl_ = caml_call1(Runtime_ocaml_Runtime[69], _aGk_), + _aGm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3301), + _aGn_ = caml_call2(Runtime_ocaml_Runtime[104], _aGm_, _aGl_), + _aGo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37906$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aGo_, _aGn_); + case 1: + var _aGp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$299); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGp_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_23158) + : caml_call1(Runtime_ocaml_Runtime[31], cst_28388); + var _aGq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$220); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGq_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_30732); + var _aGr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$74); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGr_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_31797$1); + var _aGs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$72); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGs_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32892); + var _aGt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$74); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGt_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33972); + var _aGu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$106); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGu_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36378); + var + _aGv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$107), + _aGw_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aGv_), + _aGx_ = caml_call1(Runtime_ocaml_Runtime[69], _aGw_), + _aGy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3163), + _aGz_ = caml_call2(Runtime_ocaml_Runtime[104], _aGy_, _aGx_), + _aGA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36378$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aGA_, _aGz_); + default: + var _aGB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$300); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGB_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_21723) + : caml_call1(Runtime_ocaml_Runtime[31], cst_26350); + var _aGC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$221); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGC_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_28727); + var _aGD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$75); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGD_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_29915); + var _aGE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$73); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGE_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_31118); + var _aGF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$75); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGF_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32306); + var _aGG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$108); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGG_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34713); + var + _aGH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$109), + _aGI_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aGH_), + _aGJ_ = caml_call1(Runtime_ocaml_Runtime[69], _aGI_), + _aGK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3009), + _aGL_ = caml_call2(Runtime_ocaml_Runtime[104], _aGK_, _aGJ_), + _aGM_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34713$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aGM_, _aGL_); + } + } + function _aF6_(param){ + var + _aF7_ = caml_call3(Runtime_ocaml_Runtime[57], 2003, 7, 1), + _aF8_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aF7_), + _aF9_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 7, 1), + _aF__ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aF9_), + _aF$_ = caml_call2(Runtime_ocaml_Runtime[83], _aF__, _aF8_), + _aGa_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aGb_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aGa_), + _aGc_ = caml_call2(Runtime_ocaml_Runtime[83], _aGb_, _aF$_); + return caml_call2(Runtime_ocaml_Runtime[29], _zV_, _aGc_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zW_, [0], _aF6_, _aF5_); + }, + _az4_ = + function(param){ + function _aFl_(param){ + switch(zone[0]){ + case 0: + var _aFv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$301); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFv_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26084) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31435); + var _aFw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$222); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFw_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33798); + var _aFx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$76); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFx_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34743); + var _aFy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$74); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFy_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35719); + var _aFz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$76); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFz_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36679); + var _aFA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$110); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFA_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37457); + var + _aFB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$111), + _aFC_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aFB_), + _aFD_ = caml_call1(Runtime_ocaml_Runtime[69], _aFC_), + _aFE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3262), + _aFF_ = caml_call2(Runtime_ocaml_Runtime[104], _aFE_, _aFD_), + _aFG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37457$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aFG_, _aFF_); + case 1: + var _aFH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$302); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFH_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_22883) + : caml_call1(Runtime_ocaml_Runtime[31], cst_28051); + var _aFI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$223); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFI_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_30368); + var _aFJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$77); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFJ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_31420); + var _aFK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$75); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFK_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32502); + var _aFL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$77); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFL_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33569); + var _aFM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$112); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFM_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35947); + var + _aFN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$113), + _aFO_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aFN_), + _aFP_ = caml_call1(Runtime_ocaml_Runtime[69], _aFO_), + _aFQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3125), + _aFR_ = caml_call2(Runtime_ocaml_Runtime[104], _aFQ_, _aFP_), + _aFS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35947$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aFS_, _aFR_); + default: + var _aFT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$303); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFT_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_21465) + : caml_call1(Runtime_ocaml_Runtime[31], cst_26038); + var _aFU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$224); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFU_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_28386); + var _aFV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$78); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFV_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_29560); + var _aFW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$76); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFW_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_30749); + var _aFX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$78); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFX_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_31923); + var _aFY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$114); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFY_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34301); + var + _aFZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$115), + _aF0_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aFZ_), + _aF1_ = caml_call1(Runtime_ocaml_Runtime[69], _aF0_), + _aF2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_2973), + _aF3_ = caml_call2(Runtime_ocaml_Runtime[104], _aF2_, _aF1_), + _aF4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34301$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aF4_, _aF3_); + } + } + function _aFm_(param){ + var + _aFn_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 7, 1), + _aFo_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aFn_), + _aFp_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 1, 1), + _aFq_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aFp_), + _aFr_ = caml_call2(Runtime_ocaml_Runtime[83], _aFq_, _aFo_), + _aFs_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aFt_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aFs_), + _aFu_ = caml_call2(Runtime_ocaml_Runtime[83], _aFt_, _aFr_); + return caml_call2(Runtime_ocaml_Runtime[29], _zX_, _aFu_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zY_, [0], _aFm_, _aFl_); + }, + _az5_ = + function(param){ + function _aEC_(param){ + switch(zone[0]){ + case 0: + var _aEM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$304); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aEM_)) + var + _aEN_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_171100) + : caml_call1(Runtime_ocaml_Runtime[31], cst_206200); + else{ + var _aEO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$225); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aEO_)) + var _aEN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_221700); + else{ + var _aEP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$79); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aEP_)) var - _aZt_= - [0, - function(param) - {function _aZu_(param){throw Runtime_ocaml_Runtime[2]} - function _aZv_(param){return 0} - function _aZw_(param) - {function _aZI_(param) - {var - _aZR_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _aZS_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$11), - _aZT_=caml_call2(Runtime_ocaml_Runtime[104],_aZS_,_aZR_), - _aZU_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1938$2) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3767$12), - montant=caml_call2(Runtime_ocaml_Runtime[93],_aZU_,_aZT_), - _aZV_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$29), - _aZW_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$12), - _aZX_=caml_call2(Runtime_ocaml_Runtime[104],_aZW_,_aZV_), - _aZY_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1938$3) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3767$11), - limite=caml_call2(Runtime_ocaml_Runtime[93],_aZY_,_aZX_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _aZJ_(param) - {switch(residence[0]) - {case 0:var _aZK_=1;break; - case 1:var _aZK_=0;break; - case 2:var _aZK_=1;break; - case 3:var _aZK_=1;break; - case 4:var _aZK_=1;break; - case 5:var _aZK_=1;break; - case 6:var _aZK_=0;break; - case 7:var _aZK_=0;break; - default:var _aZK_=1} - var - _aZL_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _aZM_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aZL_), - _aZN_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _aZO_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aZN_), - _aZP_=caml_call2(Runtime_ocaml_Runtime[83],_aZO_,_aZM_), - _aZQ_=caml_call2(Runtime_ocaml_Runtime[83],_aZP_,_aZK_); - return caml_call2(Runtime_ocaml_Runtime[29],_IW_,_aZQ_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_IX_,[0],_aZJ_,_aZI_)} - var - _aZx_= - [0, - function(param) - {function _aZy_(param) - {var - _aZE_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _aZF_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$13), - _aZG_=caml_call2(Runtime_ocaml_Runtime[104],_aZF_,_aZE_), - _aZH_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1938$4) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3767$13); - return caml_call2(Runtime_ocaml_Runtime[93],_aZH_,_aZG_)} - function _aZz_(param) - {switch(residence[0]) - {case 0:var _aZA_=1;break; - case 1:var _aZA_=0;break; - case 2:var _aZA_=1;break; - case 3:var _aZA_=1;break; - case 4:var _aZA_=1;break; - case 5:var _aZA_=1;break; - case 6:var _aZA_=0;break; - case 7:var _aZA_=0;break; - default:var _aZA_=1} - var - _aZB_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _aZC_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aZB_), - _aZD_=caml_call2(Runtime_ocaml_Runtime[83],_aZC_,_aZA_); - return caml_call2(Runtime_ocaml_Runtime[29],_IY_,_aZD_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_IZ_,[0],_aZz_,_aZy_)}, - _aZw_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_I0_,_aZx_,_aZv_,_aZu_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_I1_,_aZt_,_aZs_,_aZr_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_I2_,_aZq_,_aZp_,_aZo_)}, - _aD7_= - [0, - function(param) - {function _aY7_(param) - {var - _aZg_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _aZh_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272$8), - _aZi_=caml_call2(Runtime_ocaml_Runtime[104],_aZh_,_aZg_), - _aZj_=caml_call1(Runtime_ocaml_Runtime[31],cst_5612$10), - montant=caml_call2(Runtime_ocaml_Runtime[93],_aZj_,_aZi_), - _aZk_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$30), - _aZl_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272$9), - _aZm_=caml_call2(Runtime_ocaml_Runtime[104],_aZl_,_aZk_), - _aZn_=caml_call1(Runtime_ocaml_Runtime[31],cst_5612$11), - limite=caml_call2(Runtime_ocaml_Runtime[93],_aZn_,_aZm_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _aY8_(param) - {var _aY9_=caml_call1(Runtime_ocaml_Runtime[67],copropriete); - switch(residence[0]) - {case 0:var _aY__=1;break; - case 1:var _aY__=0;break; - case 2:var _aY__=1;break; - case 3:var _aY__=1;break; - case 4:var _aY__=1;break; - case 5:var _aY__=1;break; - case 6:var _aY__=0;break; - case 7:var _aY__=0;break; - default:var _aY__=1} - var - _aY$_=caml_call2(Runtime_ocaml_Runtime[83],_aY__,_aY9_), - _aZa_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _aZb_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aZa_), - _aZc_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _aZd_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aZc_), - _aZe_=caml_call2(Runtime_ocaml_Runtime[83],_aZd_,_aZb_), - _aZf_=caml_call2(Runtime_ocaml_Runtime[83],_aZe_,_aY$_); - return caml_call2(Runtime_ocaml_Runtime[29],_I3_,_aZf_)} - return caml_call4(Runtime_ocaml_Runtime[63],_I4_,[0],_aY8_,_aY7_)}, - _aD6_], - _aD8_=caml_call4(Runtime_ocaml_Runtime[63],_I5_,_aD7_,_aD5_,_aD4_)} - catch(_aY6_) - {_aY6_ = caml_wrap_exception(_aY6_); - if(_aY6_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_IC_]; - throw _aY6_} - var - montant_forfaitaire_charges= - caml_call3 - (Runtime_ocaml_Runtime[28],_I6_,Runtime_ocaml_Runtime[13],_aD8_); - try - {var - _aD9_=function(param){return 0}, - _aD__= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_I8_,1)}, - _aD$_= - [0, - function(param) - {function _aYJ_(param){return 1} - function _aYK_(param) - {var - _aYY_=caml_call3(Runtime_ocaml_Runtime[57],1999,7,1), - _aYZ_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_aYY_); - switch(type_travaux_logement[0]) - {case 0:var _aY0_=0;break; - case 1:var _aY0_=0;break; - case 2:var _aY0_=1;break; - default:var _aY0_=0} - switch(type_travaux_logement[0]) - {case 0:var _aY1_=1;break; - case 1:var _aY1_=0;break; - case 2:var _aY1_=0;break; - default:var _aY1_=0} - var _aY2_=caml_call2(Runtime_ocaml_Runtime[84],_aY1_,_aY0_); - switch(type_travaux_logement[0]) - {case 0:var _aY3_=0;break; - case 1:var _aY3_=0;break; - case 2:var _aY3_=0;break; - default:var _aY3_=1} - var - _aY4_=caml_call2(Runtime_ocaml_Runtime[84],_aY3_,_aY2_), - _aY5_=caml_call2(Runtime_ocaml_Runtime[83],_aY4_,_aYZ_); - return caml_call2(Runtime_ocaml_Runtime[29],_I9_,_aY5_)} - var - _aYL_= - [0, - function(param) - {function _aYM_(param){throw Runtime_ocaml_Runtime[2]} - function _aYN_(param){return 0} + _aEN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_227900); + else{ + var _aEQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$77); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aEQ_)) var - _aYO_= - [0, - function(param) - {function _aYP_(param){return 0} - function _aYQ_(param) - {switch(residence[0]) - {case 0:var _aYW_=1;break; - case 1:var _aYW_=1;break; - case 2:var _aYW_=1;break; - case 3:var _aYW_=1;break; - case 4:var _aYW_=0;break; - case 5:var _aYW_=0;break; - case 6:var _aYW_=0;break; - case 7:var _aYW_=0;break; - default:var _aYW_=1} - var - _aYX_= - caml_call2 - (Runtime_ocaml_Runtime[83], - _aYW_, - operations_logement_evolutifs_); - return caml_call2(Runtime_ocaml_Runtime[29],_I__,_aYX_)} - var - _aYR_= - [0, - function(param) - {function _aYS_(param){return 0} - function _aYT_(param) - {switch(residence[0]) - {case 0:var _aYU_=0;break; - case 1:var _aYU_=0;break; - case 2:var _aYU_=0;break; - case 3:var _aYU_=0;break; - case 4:var _aYU_=1;break; - case 5:var _aYU_=1;break; - case 6:var _aYU_=0;break; - case 7:var _aYU_=0;break; - default:var _aYU_=0} - var - _aYV_= - caml_call2 - (Runtime_ocaml_Runtime[83], - _aYU_, - operations_logement_evolutifs_); - return caml_call2(Runtime_ocaml_Runtime[29],_I$_,_aYV_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ja_,[0],_aYT_,_aYS_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Jb_,_aYR_,_aYQ_,_aYP_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Jc_,_aYO_,_aYN_,_aYM_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Jd_,_aYL_,_aYK_,_aYJ_)}], - _aEa_=caml_call4(Runtime_ocaml_Runtime[63],_Je_,_aD$_,_aD__,_aD9_)} - catch(_aYI_) - {_aYI_ = caml_wrap_exception(_aYI_); - if(_aYI_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_I7_]; - throw _aYI_} - var - condition_d842_11_3= - caml_call3 - (Runtime_ocaml_Runtime[28],_Jf_,Runtime_ocaml_Runtime[12],_aEa_); - function _aEb_(aide_finale) - {try - {var - _aYC_= - function(param) - {var - _aYG_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$321), - _aYH_= - caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale, - montant_forfaitaire_d842_6); - return caml_call2(Runtime_ocaml_Runtime[113],_aYH_,_aYG_) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$322) - :caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale, - montant_forfaitaire_d842_6)}, - _aYD_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Jh_,1)}, - _aYE_=caml_call4(Runtime_ocaml_Runtime[63],_Ji_,[0],_aYD_,_aYC_); - return _aYE_} - catch(_aYF_) - {_aYF_ = caml_wrap_exception(_aYF_); - if(_aYF_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Jg_]; - throw _aYF_}} - var - traitement_aide_finale_minorat= - caml_call3 - (Runtime_ocaml_Runtime[28],_Jj_,Runtime_ocaml_Runtime[10],_aEb_); - function _aEc_(date_calcul) - {try - {var - _aIk_=function(param){throw Runtime_ocaml_Runtime[2]}, - _aIl_=function(param){return 0}, - _aIm_= - function(param) - {function _aXX_(param) - {switch(zone[0]) - {case 0: - var _aX4_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$323); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aX4_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_31476) - :caml_call1(Runtime_ocaml_Runtime[31],cst_37933); - var _aX5_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$218); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aX5_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40787); - var _aX6_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$47); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aX6_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41927); - var _aX7_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$31); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aX7_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_43106); - var _aX8_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$29); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aX8_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_44262); - var _aX9_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$11); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aX9_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_45200); + _aEN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_234300); + else{ + var _aER_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$79); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aER_)) var - _aX__=caml_call1(Runtime_ocaml_Runtime[46],cst_5$12), - _aX$_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aX__), - _aYa_=caml_call1(Runtime_ocaml_Runtime[69],_aX$_), - _aYb_=caml_call1(Runtime_ocaml_Runtime[31],cst_3936), - _aYc_=caml_call2(Runtime_ocaml_Runtime[104],_aYb_,_aYa_), - _aYd_=caml_call1(Runtime_ocaml_Runtime[31],cst_45200$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aYd_,_aYc_); - case 1: - var _aYe_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$324); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYe_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_27614) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33853); - var _aYf_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$219); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYf_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36646); - var _aYg_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$48); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYg_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37915); - var _aYh_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$32); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYh_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39222); - var _aYi_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$30); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYi_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40510); - var _aYj_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$13); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYj_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_43378); + _aEN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_240600); + else{ var - _aYk_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$14), - _aYl_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aYk_), - _aYm_=caml_call1(Runtime_ocaml_Runtime[69],_aYl_), - _aYn_=caml_call1(Runtime_ocaml_Runtime[31],cst_3771), - _aYo_=caml_call2(Runtime_ocaml_Runtime[104],_aYn_,_aYm_), - _aYp_=caml_call1(Runtime_ocaml_Runtime[31],cst_43378$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aYp_,_aYo_); - default: - var _aYq_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$325); + _aES_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$116); if (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYq_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25904) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31419); - var _aYr_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$220); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYr_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34255); - var _aYs_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$49); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYs_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35670); - var _aYt_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$33); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYt_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37107); - var _aYu_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$31); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYu_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38521); - var _aYv_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$15); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYv_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41392); - var - _aYw_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$16), - _aYx_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aYw_), - _aYy_=caml_call1(Runtime_ocaml_Runtime[69],_aYx_), - _aYz_=caml_call1(Runtime_ocaml_Runtime[31],cst_3588), - _aYA_=caml_call2(Runtime_ocaml_Runtime[104],_aYz_,_aYy_), - _aYB_=caml_call1(Runtime_ocaml_Runtime[31],cst_41392$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aYB_,_aYA_)}} - function _aXY_(param) - {var - _aXZ_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _aX0_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aXZ_), - _aX1_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aX2_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aX1_), - _aX3_=caml_call2(Runtime_ocaml_Runtime[83],_aX2_,_aX0_); - return caml_call2(Runtime_ocaml_Runtime[29],_Jl_,_aX3_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Jm_,[0],_aXY_,_aXX_)}, - _aIn_= - function(param) - {function _aXd_(param) - {switch(zone[0]) - {case 0: - var _aXn_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$326); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXn_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_31382) - :caml_call1(Runtime_ocaml_Runtime[31],cst_37820); - var _aXo_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$221); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXo_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40665); - var _aXp_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$50); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXp_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41801); - var _aXq_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$34); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXq_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_42977); - var _aXr_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$32); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXr_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_44130); - var _aXs_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$17); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXs_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_45064); - var - _aXt_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$18), - _aXu_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aXt_), - _aXv_=caml_call1(Runtime_ocaml_Runtime[69],_aXu_), - _aXw_=caml_call1(Runtime_ocaml_Runtime[31],cst_3924), - _aXx_=caml_call2(Runtime_ocaml_Runtime[104],_aXw_,_aXv_), - _aXy_=caml_call1(Runtime_ocaml_Runtime[31],cst_45064$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aXy_,_aXx_); - case 1: - var _aXz_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$327); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXz_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_27531) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33751); - var _aXA_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$222); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXA_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36536); - var _aXB_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$51); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXB_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37801); - var _aXC_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$35); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXC_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39105); - var _aXD_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$33); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXD_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40389); - var _aXE_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$19); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXE_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_43248); - var - _aXF_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$20), - _aXG_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aXF_), - _aXH_=caml_call1(Runtime_ocaml_Runtime[69],_aXG_), - _aXI_=caml_call1(Runtime_ocaml_Runtime[31],cst_3760), - _aXJ_=caml_call2(Runtime_ocaml_Runtime[104],_aXI_,_aXH_), - _aXK_=caml_call1(Runtime_ocaml_Runtime[31],cst_43248$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aXK_,_aXJ_); - default: - var _aXL_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$328); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXL_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25826) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31325); - var _aXM_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$223); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXM_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34152); - var _aXN_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$52); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXN_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35564); - var _aXO_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$36); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXO_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36996); - var _aXP_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$34); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXP_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38406); - var _aXQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$21); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXQ_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41268); - var - _aXR_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$22), - _aXS_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aXR_), - _aXT_=caml_call1(Runtime_ocaml_Runtime[69],_aXS_), - _aXU_=caml_call1(Runtime_ocaml_Runtime[31],cst_3578), - _aXV_=caml_call2(Runtime_ocaml_Runtime[104],_aXU_,_aXT_), - _aXW_=caml_call1(Runtime_ocaml_Runtime[31],cst_41268$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aXW_,_aXV_)}} - function _aXe_(param) - {var - _aXf_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _aXg_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aXf_), - _aXh_=caml_call3(Runtime_ocaml_Runtime[57],2017,10,1), - _aXi_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aXh_), - _aXj_=caml_call2(Runtime_ocaml_Runtime[83],_aXi_,_aXg_), - _aXk_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aXl_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aXk_), - _aXm_=caml_call2(Runtime_ocaml_Runtime[83],_aXl_,_aXj_); - return caml_call2(Runtime_ocaml_Runtime[29],_Jn_,_aXm_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Jo_,[0],_aXe_,_aXd_)}, - _aIo_= - function(param) - {function _aWv_(param) - {switch(zone[0]) - {case 0: - var _aWF_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$329); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWF_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_31148) - :caml_call1(Runtime_ocaml_Runtime[31],cst_37538); - var _aWG_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$224); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWG_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40362); - var _aWH_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$53); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWH_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41490); - var _aWI_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$37); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWI_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_42657); - var _aWJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$35); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWJ_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_43801); - var _aWK_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$23); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWK_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_44729); - var - _aWL_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$24), - _aWM_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aWL_), - _aWN_=caml_call1(Runtime_ocaml_Runtime[69],_aWM_), - _aWO_=caml_call1(Runtime_ocaml_Runtime[31],cst_3895), - _aWP_=caml_call2(Runtime_ocaml_Runtime[104],_aWO_,_aWN_), - _aWQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_44729$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aWQ_,_aWP_); - case 1: - var _aWR_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$330); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWR_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_27326) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33500$0); - var _aWS_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$225); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWS_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36264); - var _aWT_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$54); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWT_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37520); - var _aWU_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$38); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWU_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38814); - var _aWV_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$36); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWV_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40088); - var _aWW_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$25); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWW_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_42926); - var - _aWX_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$26), - _aWY_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aWX_), - _aWZ_=caml_call1(Runtime_ocaml_Runtime[69],_aWY_), - _aW0_=caml_call1(Runtime_ocaml_Runtime[31],cst_3732), - _aW1_=caml_call2(Runtime_ocaml_Runtime[104],_aW0_,_aWZ_), - _aW2_=caml_call1(Runtime_ocaml_Runtime[31],cst_42926$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aW2_,_aW1_); - default: - var _aW3_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$331); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aW3_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25634) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31092); - var _aW4_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$226); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aW4_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33898); - var _aW5_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$55); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aW5_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35299); - var _aW6_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$39); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aW6_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36721); - var _aW7_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$37); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aW7_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38120); - var _aW8_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$27); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aW8_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40961); - var - _aW9_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$28), - _aW__= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aW9_), - _aW$_=caml_call1(Runtime_ocaml_Runtime[69],_aW__), - _aXa_=caml_call1(Runtime_ocaml_Runtime[31],cst_3551), - _aXb_=caml_call2(Runtime_ocaml_Runtime[104],_aXa_,_aW$_), - _aXc_=caml_call1(Runtime_ocaml_Runtime[31],cst_40961$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aXc_,_aXb_)}} - function _aWw_(param) - {var - _aWx_=caml_call3(Runtime_ocaml_Runtime[57],2017,10,1), - _aWy_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aWx_), - _aWz_=caml_call3(Runtime_ocaml_Runtime[57],2015,10,1), - _aWA_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aWz_), - _aWB_=caml_call2(Runtime_ocaml_Runtime[83],_aWA_,_aWy_), - _aWC_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aWD_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aWC_), - _aWE_=caml_call2(Runtime_ocaml_Runtime[83],_aWD_,_aWB_); - return caml_call2(Runtime_ocaml_Runtime[29],_Jp_,_aWE_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Jq_,[0],_aWw_,_aWv_)}, - _aIp_= - function(param) - {function _aVN_(param) - {switch(zone[0]) - {case 0: - var _aVX_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$332); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVX_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_31123) - :caml_call1(Runtime_ocaml_Runtime[31],cst_37508); - var _aVY_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$227); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVY_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40330); - var _aVZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$56); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVZ_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41457); - var _aV0_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$40); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aV0_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_42623); - var _aV1_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$38); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aV1_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_43766); - var _aV2_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$29); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aV2_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_44693); - var - _aV3_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$30), - _aV4_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aV3_), - _aV5_=caml_call1(Runtime_ocaml_Runtime[69],_aV4_), - _aV6_=caml_call1(Runtime_ocaml_Runtime[31],cst_3892), - _aV7_=caml_call2(Runtime_ocaml_Runtime[104],_aV6_,_aV5_), - _aV8_=caml_call1(Runtime_ocaml_Runtime[31],cst_44693$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aV8_,_aV7_); - case 1: - var _aV9_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$333); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aV9_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_27304) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33473); - var _aV__=caml_call1(Runtime_ocaml_Runtime[46],cst_1$228); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aV__)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36235); - var _aV$_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$57); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aV$_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37490); - var _aWa_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$41); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWa_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38783); - var _aWb_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$39); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWb_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40056); - var _aWc_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$31); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWc_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_42892); - var - _aWd_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$32), - _aWe_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aWd_), - _aWf_=caml_call1(Runtime_ocaml_Runtime[69],_aWe_), - _aWg_=caml_call1(Runtime_ocaml_Runtime[31],cst_3729), - _aWh_=caml_call2(Runtime_ocaml_Runtime[104],_aWg_,_aWf_), - _aWi_=caml_call1(Runtime_ocaml_Runtime[31],cst_42892$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aWi_,_aWh_); - default: - var _aWj_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$334); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWj_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25614) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31067); - var _aWk_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$229); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWk_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33871); - var _aWl_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$58); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWl_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35271); - var _aWm_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$42); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWm_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36692); - var _aWn_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$40); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWn_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38090); - var _aWo_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$33); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWo_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40928); - var - _aWp_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$34), - _aWq_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aWp_), - _aWr_=caml_call1(Runtime_ocaml_Runtime[69],_aWq_), - _aWs_=caml_call1(Runtime_ocaml_Runtime[31],cst_3548), - _aWt_=caml_call2(Runtime_ocaml_Runtime[104],_aWs_,_aWr_), - _aWu_=caml_call1(Runtime_ocaml_Runtime[31],cst_40928$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aWu_,_aWt_)}} - function _aVO_(param) - {var - _aVP_=caml_call3(Runtime_ocaml_Runtime[57],2015,10,1), - _aVQ_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aVP_), - _aVR_=caml_call3(Runtime_ocaml_Runtime[57],2014,10,1), - _aVS_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aVR_), - _aVT_=caml_call2(Runtime_ocaml_Runtime[83],_aVS_,_aVQ_), - _aVU_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aVV_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aVU_), - _aVW_=caml_call2(Runtime_ocaml_Runtime[83],_aVV_,_aVT_); - return caml_call2(Runtime_ocaml_Runtime[29],_Jr_,_aVW_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Js_,[0],_aVO_,_aVN_)}, - _aIq_= - function(param) - {function _aU5_(param) - {switch(zone[0]) - {case 0: - var _aVd_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$335); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVd_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_30947) - :caml_call1(Runtime_ocaml_Runtime[31],cst_37295); - var _aVe_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$230); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVe_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40101); - var _aVf_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$59); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVf_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41222); - var _aVg_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$43); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVg_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_42381); - var _aVh_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$41); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVh_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_43518); - var _aVi_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$35); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVi_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_44440); - var - _aVj_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$36), - _aVk_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aVj_), - _aVl_=caml_call1(Runtime_ocaml_Runtime[69],_aVk_), - _aVm_=caml_call1(Runtime_ocaml_Runtime[31],cst_3870), - _aVn_=caml_call2(Runtime_ocaml_Runtime[104],_aVm_,_aVl_), - _aVo_=caml_call1(Runtime_ocaml_Runtime[31],cst_44440$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aVo_,_aVn_); - case 1: - var _aVp_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$336); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVp_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_27149) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33283); - var _aVq_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$231); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVq_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36030); - var _aVr_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$60); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVr_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37278); - var _aVs_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$44); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVs_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38563); - var _aVt_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$42); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVt_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39829); - var _aVu_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$37); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVu_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_42649); - var - _aVv_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$38), - _aVw_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aVv_), - _aVx_=caml_call1(Runtime_ocaml_Runtime[69],_aVw_), - _aVy_=caml_call1(Runtime_ocaml_Runtime[31],cst_3708), - _aVz_=caml_call2(Runtime_ocaml_Runtime[104],_aVy_,_aVx_), - _aVA_=caml_call1(Runtime_ocaml_Runtime[31],cst_42659); - return caml_call2(Runtime_ocaml_Runtime[93],_aVA_,_aVz_); - default: - var _aVB_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$337); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVB_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25469) - :caml_call1(Runtime_ocaml_Runtime[31],cst_30891); - var _aVC_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$232); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVC_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33679); - var _aVD_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$61); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVD_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35071); - var _aVE_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$45); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVE_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36484); - var _aVF_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$43); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVF_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37874); - var _aVG_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$39); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVG_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40696); - var - _aVH_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$40), - _aVI_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aVH_), - _aVJ_=caml_call1(Runtime_ocaml_Runtime[69],_aVI_), - _aVK_=caml_call1(Runtime_ocaml_Runtime[31],cst_3528), - _aVL_=caml_call2(Runtime_ocaml_Runtime[104],_aVK_,_aVJ_), - _aVM_=caml_call1(Runtime_ocaml_Runtime[31],cst_40696$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aVM_,_aVL_)}} - function _aU6_(param) - {var - _aU7_=caml_call3(Runtime_ocaml_Runtime[57],2014,10,1), - _aU8_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aU7_), - _aU9_=caml_call3(Runtime_ocaml_Runtime[57],2013,1,1), - _aU__= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aU9_), - _aU$_=caml_call2(Runtime_ocaml_Runtime[83],_aU__,_aU8_), - _aVa_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aVb_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aVa_), - _aVc_=caml_call2(Runtime_ocaml_Runtime[83],_aVb_,_aU$_); - return caml_call2(Runtime_ocaml_Runtime[29],_Jt_,_aVc_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ju_,[0],_aU6_,_aU5_)}, - _aIr_= - function(param) - {function _aUl_(param) - {switch(zone[0]) - {case 0: - var _aUv_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$338); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUv_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_30296) - :caml_call1(Runtime_ocaml_Runtime[31],cst_36510); - var _aUw_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$233); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUw_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39257); - var _aUx_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$62); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUx_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40354); - var _aUy_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$46); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUy_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41489); - var _aUz_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$44); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUz_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_42602); - var _aUA_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$41); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUA_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_43505); - var - _aUB_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$42), - _aUC_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aUB_), - _aUD_=caml_call1(Runtime_ocaml_Runtime[69],_aUC_), - _aUE_=caml_call1(Runtime_ocaml_Runtime[31],cst_3789), - _aUF_=caml_call2(Runtime_ocaml_Runtime[104],_aUE_,_aUD_), - _aUG_=caml_call1(Runtime_ocaml_Runtime[31],cst_43505$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aUG_,_aUF_); - case 1: - var _aUH_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$339); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUH_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26578) - :caml_call1(Runtime_ocaml_Runtime[31],cst_32582); - var _aUI_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$234); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUI_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35272); - var _aUJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$63); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUJ_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36493); - var _aUK_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$47); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUK_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37751); - var _aUL_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$45); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUL_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38991); - var _aUM_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$43); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUM_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41751); - var - _aUN_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$44), - _aUO_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aUN_), - _aUP_=caml_call1(Runtime_ocaml_Runtime[69],_aUO_), - _aUQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_3630), - _aUR_=caml_call2(Runtime_ocaml_Runtime[104],_aUQ_,_aUP_), - _aUS_=caml_call1(Runtime_ocaml_Runtime[31],cst_41751$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aUS_,_aUR_); - default: - var _aUT_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$340); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUT_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24933) - :caml_call1(Runtime_ocaml_Runtime[31],cst_30241); - var _aUU_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$235); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUU_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32970); - var _aUV_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$64); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUV_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34333); - var _aUW_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$48); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUW_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35716); - var _aUX_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$46); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUX_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37077); - var _aUY_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$45); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUY_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39839); - var - _aUZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$46), - _aU0_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aUZ_), - _aU1_=caml_call1(Runtime_ocaml_Runtime[69],_aU0_), - _aU2_=caml_call1(Runtime_ocaml_Runtime[31],cst_3454), - _aU3_=caml_call2(Runtime_ocaml_Runtime[104],_aU2_,_aU1_), - _aU4_=caml_call1(Runtime_ocaml_Runtime[31],cst_39839$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aU4_,_aU3_)}} - function _aUm_(param) - {var - _aUn_=caml_call3(Runtime_ocaml_Runtime[57],2013,1,1), - _aUo_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aUn_), - _aUp_=caml_call3(Runtime_ocaml_Runtime[57],2012,1,1), - _aUq_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aUp_), - _aUr_=caml_call2(Runtime_ocaml_Runtime[83],_aUq_,_aUo_), - _aUs_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aUt_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aUs_), - _aUu_=caml_call2(Runtime_ocaml_Runtime[83],_aUt_,_aUr_); - return caml_call2(Runtime_ocaml_Runtime[29],_Jv_,_aUu_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Jw_,[0],_aUm_,_aUl_)}, - _aIs_= - function(param) - {function _aTD_(param) - {switch(zone[0]) - {case 0: - var _aTN_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$341); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTN_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29996) - :caml_call1(Runtime_ocaml_Runtime[31],cst_36149); - var _aTO_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$236); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTO_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38868); - var _aTP_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$65); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTP_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39954); - var _aTQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$49); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTQ_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41078); - var _aTR_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$47); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTR_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_42180); - var _aTS_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$47); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTS_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_43074); - var - _aTT_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$48), - _aTU_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aTT_), - _aTV_=caml_call1(Runtime_ocaml_Runtime[69],_aTU_), - _aTW_=caml_call1(Runtime_ocaml_Runtime[31],cst_3751), - _aTX_=caml_call2(Runtime_ocaml_Runtime[104],_aTW_,_aTV_), - _aTY_=caml_call1(Runtime_ocaml_Runtime[31],cst_43074$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aTY_,_aTX_); - case 1: - var _aTZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$342); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTZ_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26315) - :caml_call1(Runtime_ocaml_Runtime[31],cst_32259); - var _aT0_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$237); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aT0_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34923); - var _aT1_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$66); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aT1_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36132); - var _aT2_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$50); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aT2_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37373); - var _aT3_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$48); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aT3_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38605); - var _aT4_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$49); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aT4_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41338); - var - _aT5_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$50), - _aT6_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aT5_), - _aT7_=caml_call1(Runtime_ocaml_Runtime[69],_aT6_), - _aT8_=caml_call1(Runtime_ocaml_Runtime[31],cst_3594), - _aT9_=caml_call2(Runtime_ocaml_Runtime[104],_aT8_,_aT7_), - _aT__=caml_call1(Runtime_ocaml_Runtime[31],cst_41338$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aT__,_aT9_); - default: - var _aT$_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$343); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aT$_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24686) - :caml_call1(Runtime_ocaml_Runtime[31],cst_29942); - var _aUa_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$238); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUa_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32644); - var _aUb_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$67); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUb_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33993); - var _aUc_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$51); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUc_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35362); - var _aUd_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$49); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUd_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36710); - var _aUe_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$51); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUe_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39445); - var - _aUf_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$52), - _aUg_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aUf_), - _aUh_=caml_call1(Runtime_ocaml_Runtime[69],_aUg_), - _aUi_=caml_call1(Runtime_ocaml_Runtime[31],cst_3420), - _aUj_=caml_call2(Runtime_ocaml_Runtime[104],_aUi_,_aUh_), - _aUk_=caml_call1(Runtime_ocaml_Runtime[31],cst_39445$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aUk_,_aUj_)}} - function _aTE_(param) - {var - _aTF_=caml_call3(Runtime_ocaml_Runtime[57],2012,1,1), - _aTG_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aTF_), - _aTH_=caml_call3(Runtime_ocaml_Runtime[57],2011,1,1), - _aTI_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aTH_), - _aTJ_=caml_call2(Runtime_ocaml_Runtime[83],_aTI_,_aTG_), - _aTK_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aTL_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aTK_), - _aTM_=caml_call2(Runtime_ocaml_Runtime[83],_aTL_,_aTJ_); - return caml_call2(Runtime_ocaml_Runtime[29],_Jx_,_aTM_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Jy_,[0],_aTE_,_aTD_)}, - _aIt_= - function(param) - {function _aSV_(param) - {switch(zone[0]) - {case 0: - var _aS5_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$344); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aS5_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29670) - :caml_call1(Runtime_ocaml_Runtime[31],cst_35757); - var _aS6_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$239); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aS6_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38445); - var _aS7_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$68); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aS7_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39519); - var _aS8_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$52); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aS8_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40601); - var _aS9_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$50); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aS9_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41721); - var _aS__=caml_call1(Runtime_ocaml_Runtime[46],cst_5$53); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aS__)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_42605); - var - _aS$_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$54), - _aTa_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aS$_), - _aTb_=caml_call1(Runtime_ocaml_Runtime[69],_aTa_), - _aTc_=caml_call1(Runtime_ocaml_Runtime[31],cst_3710), - _aTd_=caml_call2(Runtime_ocaml_Runtime[104],_aTc_,_aTb_), - _aTe_=caml_call1(Runtime_ocaml_Runtime[31],cst_42605$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aTe_,_aTd_); - case 1: - var _aTf_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$345); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTf_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26029) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31908); - var _aTg_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$240); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTg_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34643); - var _aTh_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$69); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTh_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35739); - var _aTi_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$53); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTi_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36970); - var _aTj_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$51); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTj_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38185); - var _aTk_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$55); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTk_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40888); - var - _aTl_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$56), - _aTm_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aTl_), - _aTn_=caml_call1(Runtime_ocaml_Runtime[69],_aTm_), - _aTo_=caml_call1(Runtime_ocaml_Runtime[31],cst_3555), - _aTp_=caml_call2(Runtime_ocaml_Runtime[104],_aTo_,_aTn_), - _aTq_=caml_call1(Runtime_ocaml_Runtime[31],cst_40888$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aTq_,_aTp_); - default: - var _aTr_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$346); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTr_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24417) - :caml_call1(Runtime_ocaml_Runtime[31],cst_29616); - var _aTs_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$241); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTs_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32289); - var _aTt_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$70); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTt_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33623$0); - var _aTu_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$54); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTu_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34977); - var _aTv_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$52); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTv_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36311); - var _aTw_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$57); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTw_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39016); - var - _aTx_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$58), - _aTy_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aTx_), - _aTz_=caml_call1(Runtime_ocaml_Runtime[69],_aTy_), - _aTA_=caml_call1(Runtime_ocaml_Runtime[31],cst_3383), - _aTB_=caml_call2(Runtime_ocaml_Runtime[104],_aTA_,_aTz_), - _aTC_=caml_call1(Runtime_ocaml_Runtime[31],cst_39016$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aTC_,_aTB_)}} - function _aSW_(param) - {var - _aSX_=caml_call3(Runtime_ocaml_Runtime[57],2011,1,1), - _aSY_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aSX_), - _aSZ_=caml_call3(Runtime_ocaml_Runtime[57],2010,1,1), - _aS0_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aSZ_), - _aS1_=caml_call2(Runtime_ocaml_Runtime[83],_aS0_,_aSY_), - _aS2_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aS3_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aS2_), - _aS4_=caml_call2(Runtime_ocaml_Runtime[83],_aS3_,_aS1_); - return caml_call2(Runtime_ocaml_Runtime[29],_Jz_,_aS4_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_JA_,[0],_aSW_,_aSV_)}, - _aIu_= - function(param) - {function _aSb_(param) - {switch(zone[0]) - {case 0: - var _aSl_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$347); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSl_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29575) - :caml_call1(Runtime_ocaml_Runtime[31],cst_35642); - var _aSm_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$242); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSm_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38322); - var _aSn_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$71); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSn_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39393); - var _aSo_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$55); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSo_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40501); - var _aSp_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$53); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSp_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41588); - var _aSq_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$59); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSq_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_42469); - var - _aSr_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$60), - _aSs_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aSr_), - _aSt_=caml_call1(Runtime_ocaml_Runtime[69],_aSs_), - _aSu_=caml_call1(Runtime_ocaml_Runtime[31],cst_3698), - _aSv_=caml_call2(Runtime_ocaml_Runtime[104],_aSu_,_aSt_), - _aSw_=caml_call1(Runtime_ocaml_Runtime[31],cst_42469$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aSw_,_aSv_); - case 1: - var _aSx_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$348); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSx_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25946) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31806); - var _aSy_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$243); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSy_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34433); - var _aSz_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$72); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSz_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35625); - var _aSA_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$56); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSA_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36852); - var _aSB_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$54); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSB_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38063); - var _aSC_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$61); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSC_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40758); - var - _aSD_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$62), - _aSE_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aSD_), - _aSF_=caml_call1(Runtime_ocaml_Runtime[69],_aSE_), - _aSG_=caml_call1(Runtime_ocaml_Runtime[31],cst_3544), - _aSH_=caml_call2(Runtime_ocaml_Runtime[104],_aSG_,_aSF_), - _aSI_=caml_call1(Runtime_ocaml_Runtime[31],cst_40758$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aSI_,_aSH_); - default: - var _aSJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$349); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSJ_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24339) - :caml_call1(Runtime_ocaml_Runtime[31],cst_29522); - var _aSK_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$244); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSK_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32186); - var _aSL_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$73); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSL_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33516); - var _aSM_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$57); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSM_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34865); - var _aSN_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$55); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSN_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36195); - var _aSO_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$63); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSO_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38892); - var - _aSP_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$64), - _aSQ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aSP_), - _aSR_=caml_call1(Runtime_ocaml_Runtime[69],_aSQ_), - _aSS_=caml_call1(Runtime_ocaml_Runtime[31],cst_3372), - _aST_=caml_call2(Runtime_ocaml_Runtime[104],_aSS_,_aSR_), - _aSU_=caml_call1(Runtime_ocaml_Runtime[31],cst_38892$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aSU_,_aST_)}} - function _aSc_(param) - {var - _aSd_=caml_call3(Runtime_ocaml_Runtime[57],2010,1,1), - _aSe_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aSd_), - _aSf_=caml_call3(Runtime_ocaml_Runtime[57],2009,1,1), - _aSg_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aSf_), - _aSh_=caml_call2(Runtime_ocaml_Runtime[83],_aSg_,_aSe_), - _aSi_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aSj_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aSi_), - _aSk_=caml_call2(Runtime_ocaml_Runtime[83],_aSj_,_aSh_); - return caml_call2(Runtime_ocaml_Runtime[29],_JB_,_aSk_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_JC_,[0],_aSc_,_aSb_)}, - _aIv_= - function(param) - {function _aRt_(param) - {switch(zone[0]) - {case 0: - var _aRD_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$350); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRD_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_28728) - :caml_call1(Runtime_ocaml_Runtime[31],cst_34621); - var _aRE_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$245); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRE_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37224); - var _aRF_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$74); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRF_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38264); - var _aRG_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$58); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRG_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39340$0); - var _aRH_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$56); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRH_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40396); - var _aRI_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$65); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRI_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41252); - var - _aRJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$66), - _aRK_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aRJ_), - _aRL_=caml_call1(Runtime_ocaml_Runtime[69],_aRK_), - _aRM_=caml_call1(Runtime_ocaml_Runtime[31],cst_3592), - _aRN_=caml_call2(Runtime_ocaml_Runtime[104],_aRM_,_aRL_), - _aRO_=caml_call1(Runtime_ocaml_Runtime[31],cst_41252$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aRO_,_aRN_); - case 1: - var _aRP_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$351); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRP_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25203) - :caml_call1(Runtime_ocaml_Runtime[31],cst_30895); - var _aRQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$246); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRQ_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33446); - var _aRR_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$75); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRR_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34604); - var _aRS_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$59); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRS_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35796); - var _aRT_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$57); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRT_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36972); - var _aRU_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$67); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRU_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39590); - var - _aRV_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$68), - _aRW_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aRV_), - _aRX_=caml_call1(Runtime_ocaml_Runtime[69],_aRW_), - _aRY_=caml_call1(Runtime_ocaml_Runtime[31],cst_3442), - _aRZ_=caml_call2(Runtime_ocaml_Runtime[104],_aRY_,_aRX_), - _aR0_=caml_call1(Runtime_ocaml_Runtime[31],cst_39590$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aR0_,_aRZ_); - default: - var _aR1_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$352); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aR1_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_23642) - :caml_call1(Runtime_ocaml_Runtime[31],cst_28676); - var _aR2_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$247); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aR2_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_31264$0); - var _aR3_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$76); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aR3_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32556); - var _aR4_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$60); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aR4_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33866); - var _aR5_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$58); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aR5_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35158); - var _aR6_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$69); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aR6_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37778); - var - _aR7_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$70), - _aR8_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aR7_), - _aR9_=caml_call1(Runtime_ocaml_Runtime[69],_aR8_), - _aR__=caml_call1(Runtime_ocaml_Runtime[31],cst_3275), - _aR$_=caml_call2(Runtime_ocaml_Runtime[104],_aR__,_aR9_), - _aSa_=caml_call1(Runtime_ocaml_Runtime[31],cst_37778$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aSa_,_aR$_)}} - function _aRu_(param) - {var - _aRv_=caml_call3(Runtime_ocaml_Runtime[57],2009,1,1), - _aRw_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aRv_), - _aRx_=caml_call3(Runtime_ocaml_Runtime[57],2008,1,1), - _aRy_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aRx_), - _aRz_=caml_call2(Runtime_ocaml_Runtime[83],_aRy_,_aRw_), - _aRA_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aRB_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aRA_), - _aRC_=caml_call2(Runtime_ocaml_Runtime[83],_aRB_,_aRz_); - return caml_call2(Runtime_ocaml_Runtime[29],_JD_,_aRC_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_JE_,[0],_aRu_,_aRt_)}, - _aIw_= - function(param) - {function _aQL_(param) - {switch(zone[0]) - {case 0: - var _aQV_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$353); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQV_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_27956) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33691); - var _aQW_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$248); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQW_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36224); - var _aQX_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$77); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQX_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37236); - var _aQY_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$61); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQY_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38283); - var _aQZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$59); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQZ_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39311); - var _aQ0_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$71); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQ0_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40144); - var - _aQ1_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$72), - _aQ2_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aQ1_), - _aQ3_=caml_call1(Runtime_ocaml_Runtime[69],_aQ2_), - _aQ4_=caml_call1(Runtime_ocaml_Runtime[31],cst_3496), - _aQ5_=caml_call2(Runtime_ocaml_Runtime[104],_aQ4_,_aQ3_), - _aQ6_=caml_call1(Runtime_ocaml_Runtime[31],cst_40144$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aQ6_,_aQ5_); - case 1: - var _aQ7_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$354); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQ7_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24526) - :caml_call1(Runtime_ocaml_Runtime[31],cst_30065); - var _aQ8_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$249); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQ8_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32548); - var _aQ9_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$78); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQ9_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33675); - var _aQ__=caml_call1(Runtime_ocaml_Runtime[46],cst_3$62); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQ__)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34865$0); - var _aQ$_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$60); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQ$_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35979); - var _aRa_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$73); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRa_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38527); - var - _aRb_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$74), - _aRc_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aRb_), - _aRd_=caml_call1(Runtime_ocaml_Runtime[69],_aRc_), - _aRe_=caml_call1(Runtime_ocaml_Runtime[31],cst_3350), - _aRf_=caml_call2(Runtime_ocaml_Runtime[104],_aRe_,_aRd_), - _aRg_=caml_call1(Runtime_ocaml_Runtime[31],cst_38527$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aRg_,_aRf_); - default: - var _aRh_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$355); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRh_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_23007) - :caml_call1(Runtime_ocaml_Runtime[31],cst_27906); - var _aRi_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$250); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRi_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_30424); - var _aRj_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$79); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRj_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_31682); - var _aRk_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$63); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRk_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32956$0); - var _aRl_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$61); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRl_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34214); - var _aRm_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$75); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRm_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36733); - var - _aRn_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$76), - _aRo_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aRn_), - _aRp_=caml_call1(Runtime_ocaml_Runtime[69],_aRo_), - _aRq_=caml_call1(Runtime_ocaml_Runtime[31],cst_3187), - _aRr_=caml_call2(Runtime_ocaml_Runtime[104],_aRq_,_aRp_), - _aRs_=caml_call1(Runtime_ocaml_Runtime[31],cst_36733$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aRs_,_aRr_)}} - function _aQM_(param) - {var - _aQN_=caml_call3(Runtime_ocaml_Runtime[57],2008,1,1), - _aQO_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aQN_), - _aQP_=caml_call3(Runtime_ocaml_Runtime[57],2007,1,1), - _aQQ_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aQP_), - _aQR_=caml_call2(Runtime_ocaml_Runtime[83],_aQQ_,_aQO_), - _aQS_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aQT_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aQS_), - _aQU_=caml_call2(Runtime_ocaml_Runtime[83],_aQT_,_aQR_); - return caml_call2(Runtime_ocaml_Runtime[29],_JF_,_aQU_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_JG_,[0],_aQM_,_aQL_)}, - _aIx_= - function(param) - {function _aP3_(param) - {switch(zone[0]) - {case 0: - var _aQb_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$356); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQb_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_27195) - :caml_call1(Runtime_ocaml_Runtime[31],cst_32773); - var _aQc_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$251); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQc_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35237); - var _aQd_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$80); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQd_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36222); - var _aQe_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$64); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQe_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37240); - var _aQf_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$62); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQf_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38240); - var _aQg_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$77); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQg_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39051); - var - _aQh_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$78), - _aQi_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aQh_), - _aQj_=caml_call1(Runtime_ocaml_Runtime[69],_aQi_), - _aQk_=caml_call1(Runtime_ocaml_Runtime[31],cst_3401), - _aQl_=caml_call2(Runtime_ocaml_Runtime[104],_aQk_,_aQj_), - _aQm_=caml_call1(Runtime_ocaml_Runtime[31],cst_39051$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aQm_,_aQl_); - case 1: - var _aQn_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$357); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQn_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_23858) - :caml_call1(Runtime_ocaml_Runtime[31],cst_29246); - var _aQo_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$252); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQo_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_31661); - var _aQp_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$81); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQp_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32758); - var _aQq_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$65); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQq_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33886); - var _aQr_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$63); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQr_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34999); - var _aQs_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$79); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQs_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37478); - var - _aQt_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$80), - _aQu_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aQt_), - _aQv_=caml_call1(Runtime_ocaml_Runtime[69],_aQu_), - _aQw_=caml_call1(Runtime_ocaml_Runtime[31],cst_3259), - _aQx_=caml_call2(Runtime_ocaml_Runtime[104],_aQw_,_aQv_), - _aQy_=caml_call1(Runtime_ocaml_Runtime[31],cst_37478$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aQy_,_aQx_); - default: - var _aQz_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$358); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQz_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_22380) - :caml_call1(Runtime_ocaml_Runtime[31],cst_27146); - var _aQA_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$253); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQA_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_29595); - var _aQB_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$82); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQB_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_30819); - var _aQC_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$66); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQC_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32058); - var _aQD_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$64); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQD_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33282); - var _aQE_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$81); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aQE_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35762); - var - _aQF_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$82), - _aQG_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aQF_), - _aQH_=caml_call1(Runtime_ocaml_Runtime[69],_aQG_), - _aQI_=caml_call1(Runtime_ocaml_Runtime[31],cst_3100), - _aQJ_=caml_call2(Runtime_ocaml_Runtime[104],_aQI_,_aQH_), - _aQK_=caml_call1(Runtime_ocaml_Runtime[31],cst_35762$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aQK_,_aQJ_)}} - function _aP4_(param) - {var - _aP5_=caml_call3(Runtime_ocaml_Runtime[57],2007,1,1), - _aP6_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aP5_), - _aP7_=caml_call3(Runtime_ocaml_Runtime[57],2005,9,1), - _aP8_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aP7_), - _aP9_=caml_call2(Runtime_ocaml_Runtime[83],_aP8_,_aP6_), - _aP__=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aP$_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aP__), - _aQa_=caml_call2(Runtime_ocaml_Runtime[83],_aP$_,_aP9_); - return caml_call2(Runtime_ocaml_Runtime[29],_JH_,_aQa_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_JI_,[0],_aP4_,_aP3_)}, - _aIy_= - function(param) - {function _aPj_(param) - {switch(zone[0]) - {case 0: - var _aPt_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$359); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aPt_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26714$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_32194); - var _aPu_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$254); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aPu_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34614); - var _aPv_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$83); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aPv_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35582); - var _aPw_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$67); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aPw_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36582); - var _aPx_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$65); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aPx_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37564); - var _aPy_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$83); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aPy_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38361); - var - _aPz_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$84), - _aPA_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aPz_), - _aPB_=caml_call1(Runtime_ocaml_Runtime[69],_aPA_), - _aPC_=caml_call1(Runtime_ocaml_Runtime[31],cst_3341), - _aPD_=caml_call2(Runtime_ocaml_Runtime[104],_aPC_,_aPB_), - _aPE_=caml_call1(Runtime_ocaml_Runtime[31],cst_38361$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aPE_,_aPD_); - case 1: - var _aPF_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$360); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aPF_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_23436) - :caml_call1(Runtime_ocaml_Runtime[31],cst_28729); - var _aPG_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$255); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aPG_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_31101); - var _aPH_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$84); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aPH_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32179); - var _aPI_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$68); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aPI_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33287); - var _aPJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$66); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aPJ_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34380); - var _aPK_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$85); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aPK_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36815); - var - _aPL_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$86), - _aPM_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aPL_), - _aPN_=caml_call1(Runtime_ocaml_Runtime[69],_aPM_), - _aPO_=caml_call1(Runtime_ocaml_Runtime[31],cst_3201), - _aPP_=caml_call2(Runtime_ocaml_Runtime[104],_aPO_,_aPN_), - _aPQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_36815$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aPQ_,_aPP_); - default: - var _aPR_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$361); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aPR_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_21984) - :caml_call1(Runtime_ocaml_Runtime[31],cst_26666); - var _aPS_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$256); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aPS_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_29072); - var _aPT_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$85); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aPT_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_30274); - var _aPU_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$69); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aPU_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_31491); - var _aPV_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$67); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aPV_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32694); - var _aPW_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$87); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aPW_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35130); - var - _aPX_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$88), - _aPY_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aPX_), - _aPZ_=caml_call1(Runtime_ocaml_Runtime[69],_aPY_), - _aP0_=caml_call1(Runtime_ocaml_Runtime[31],cst_3045), - _aP1_=caml_call2(Runtime_ocaml_Runtime[104],_aP0_,_aPZ_), - _aP2_=caml_call1(Runtime_ocaml_Runtime[31],cst_35130$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aP2_,_aP1_)}} - function _aPk_(param) - {var - _aPl_=caml_call3(Runtime_ocaml_Runtime[57],2005,9,1), - _aPm_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aPl_), - _aPn_=caml_call3(Runtime_ocaml_Runtime[57],2003,7,1), - _aPo_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aPn_), - _aPp_=caml_call2(Runtime_ocaml_Runtime[83],_aPo_,_aPm_), - _aPq_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aPr_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aPq_), - _aPs_=caml_call2(Runtime_ocaml_Runtime[83],_aPr_,_aPp_); - return caml_call2(Runtime_ocaml_Runtime[29],_JJ_,_aPs_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_JK_,[0],_aPk_,_aPj_)}, - _aIz_= - function(param) - {function _aOB_(param) - {switch(zone[0]) - {case 0: - var _aOL_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$362); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aOL_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26397) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31812); - var _aOM_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$257); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aOM_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34204); - var _aON_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$86); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aON_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35160); - var _aOO_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$70); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aOO_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36148); - var _aOP_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$68); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aOP_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37119); - var _aOQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$89); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aOQ_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37906); - var - _aOR_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$90), - _aOS_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aOR_), - _aOT_=caml_call1(Runtime_ocaml_Runtime[69],_aOS_), - _aOU_=caml_call1(Runtime_ocaml_Runtime[31],cst_3301), - _aOV_=caml_call2(Runtime_ocaml_Runtime[104],_aOU_,_aOT_), - _aOW_=caml_call1(Runtime_ocaml_Runtime[31],cst_37906$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aOW_,_aOV_); - case 1: - var _aOX_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$363); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aOX_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_23158) - :caml_call1(Runtime_ocaml_Runtime[31],cst_28388); - var _aOY_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$258); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aOY_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_30732); - var _aOZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$87); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aOZ_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_31797$2); - var _aO0_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$71); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aO0_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32892); - var _aO1_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$69); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aO1_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33972); - var _aO2_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$91); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aO2_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36378); - var - _aO3_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$92), - _aO4_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aO3_), - _aO5_=caml_call1(Runtime_ocaml_Runtime[69],_aO4_), - _aO6_=caml_call1(Runtime_ocaml_Runtime[31],cst_3163), - _aO7_=caml_call2(Runtime_ocaml_Runtime[104],_aO6_,_aO5_), - _aO8_=caml_call1(Runtime_ocaml_Runtime[31],cst_36378$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aO8_,_aO7_); - default: - var _aO9_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$364); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aO9_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_21723) - :caml_call1(Runtime_ocaml_Runtime[31],cst_26350); - var _aO__=caml_call1(Runtime_ocaml_Runtime[46],cst_1$259); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aO__)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_28727); - var _aO$_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$88); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aO$_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_29915); - var _aPa_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$72); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aPa_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_31118); - var _aPb_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$70); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aPb_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32306); - var _aPc_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$93); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aPc_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34713); - var - _aPd_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$94), - _aPe_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aPd_), - _aPf_=caml_call1(Runtime_ocaml_Runtime[69],_aPe_), - _aPg_=caml_call1(Runtime_ocaml_Runtime[31],cst_3009), - _aPh_=caml_call2(Runtime_ocaml_Runtime[104],_aPg_,_aPf_), - _aPi_=caml_call1(Runtime_ocaml_Runtime[31],cst_34713$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aPi_,_aPh_)}} - function _aOC_(param) - {var - _aOD_=caml_call3(Runtime_ocaml_Runtime[57],2003,7,1), - _aOE_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aOD_), - _aOF_=caml_call3(Runtime_ocaml_Runtime[57],2002,7,1), - _aOG_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aOF_), - _aOH_=caml_call2(Runtime_ocaml_Runtime[83],_aOG_,_aOE_), - _aOI_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aOJ_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aOI_), - _aOK_=caml_call2(Runtime_ocaml_Runtime[83],_aOJ_,_aOH_); - return caml_call2(Runtime_ocaml_Runtime[29],_JL_,_aOK_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_JM_,[0],_aOC_,_aOB_)}, - _aIA_= - function(param) - {function _aNT_(param) - {switch(zone[0]) - {case 0: - var _aN3_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$365); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aN3_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26084) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31435); - var _aN4_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$260); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aN4_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33798); - var _aN5_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$89); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aN5_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34743); - var _aN6_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$73); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aN6_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35719); - var _aN7_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$71); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aN7_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36679); - var _aN8_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$95); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aN8_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37457); - var - _aN9_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$96), - _aN__= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aN9_), - _aN$_=caml_call1(Runtime_ocaml_Runtime[69],_aN__), - _aOa_=caml_call1(Runtime_ocaml_Runtime[31],cst_3262), - _aOb_=caml_call2(Runtime_ocaml_Runtime[104],_aOa_,_aN$_), - _aOc_=caml_call1(Runtime_ocaml_Runtime[31],cst_37457$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aOc_,_aOb_); - case 1: - var _aOd_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$366); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aOd_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_22883) - :caml_call1(Runtime_ocaml_Runtime[31],cst_28051); - var _aOe_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$261); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aOe_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_30368); - var _aOf_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$90); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aOf_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_31420); - var _aOg_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$74); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aOg_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32502); - var _aOh_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$72); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aOh_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33569); - var _aOi_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$97); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aOi_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35947); - var - _aOj_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$98), - _aOk_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aOj_), - _aOl_=caml_call1(Runtime_ocaml_Runtime[69],_aOk_), - _aOm_=caml_call1(Runtime_ocaml_Runtime[31],cst_3125), - _aOn_=caml_call2(Runtime_ocaml_Runtime[104],_aOm_,_aOl_), - _aOo_=caml_call1(Runtime_ocaml_Runtime[31],cst_35947$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aOo_,_aOn_); - default: - var _aOp_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$367); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aOp_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_21465) - :caml_call1(Runtime_ocaml_Runtime[31],cst_26038); - var _aOq_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$262); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aOq_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_28386); - var _aOr_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$91); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aOr_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_29560); - var _aOs_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$75); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aOs_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_30749); - var _aOt_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$73); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aOt_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_31923); - var _aOu_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$99); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aOu_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34301); - var - _aOv_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$100), - _aOw_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aOv_), - _aOx_=caml_call1(Runtime_ocaml_Runtime[69],_aOw_), - _aOy_=caml_call1(Runtime_ocaml_Runtime[31],cst_2973), - _aOz_=caml_call2(Runtime_ocaml_Runtime[104],_aOy_,_aOx_), - _aOA_=caml_call1(Runtime_ocaml_Runtime[31],cst_34301$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aOA_,_aOz_)}} - function _aNU_(param) - {var - _aNV_=caml_call3(Runtime_ocaml_Runtime[57],2002,7,1), - _aNW_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aNV_), - _aNX_=caml_call3(Runtime_ocaml_Runtime[57],2002,1,1), - _aNY_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aNX_), - _aNZ_=caml_call2(Runtime_ocaml_Runtime[83],_aNY_,_aNW_), - _aN0_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aN1_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aN0_), - _aN2_=caml_call2(Runtime_ocaml_Runtime[83],_aN1_,_aNZ_); - return caml_call2(Runtime_ocaml_Runtime[29],_JN_,_aN2_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_JO_,[0],_aNU_,_aNT_)}, - _aIB_= - function(param) - {function _aM__(param) - {switch(zone[0]) - {case 0: - var _aNi_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$368); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aNi_)) + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aES_)) var - _aNj_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_171100) - :caml_call1(Runtime_ocaml_Runtime[31],cst_206200); + _aEN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_245700); else - {var _aNk_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$263); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aNk_)) - var _aNj_=caml_call1(Runtime_ocaml_Runtime[31],cst_221700); - else - {var _aNl_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$92); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aNl_)) - var _aNj_=caml_call1(Runtime_ocaml_Runtime[31],cst_227900); - else - {var _aNm_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$76); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aNm_)) - var _aNj_=caml_call1(Runtime_ocaml_Runtime[31],cst_234300); - else - {var _aNn_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$74); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aNn_)) - var _aNj_=caml_call1(Runtime_ocaml_Runtime[31],cst_240600); - else - {var _aNo_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$101); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aNo_)) - var _aNj_=caml_call1(Runtime_ocaml_Runtime[31],cst_245700); - else - var - _aNp_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$102), - _aNq_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aNp_), - _aNr_=caml_call1(Runtime_ocaml_Runtime[69],_aNq_), - _aNs_=caml_call1(Runtime_ocaml_Runtime[31],cst_21400), - _aNt_=caml_call2(Runtime_ocaml_Runtime[104],_aNs_,_aNr_), - _aNu_=caml_call1(Runtime_ocaml_Runtime[31],cst_245700$0), - _aNj_=caml_call2(Runtime_ocaml_Runtime[93],_aNu_,_aNt_)}}}}} - break; - case 1: - var _aNv_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$369); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aNv_)) var - _aNj_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_150100) - :caml_call1(Runtime_ocaml_Runtime[31],cst_184000$0); - else - {var _aNw_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$264); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aNw_)) - var _aNj_=caml_call1(Runtime_ocaml_Runtime[31],cst_199200); - else - {var _aNx_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$93); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aNx_)) - var _aNj_=caml_call1(Runtime_ocaml_Runtime[31],cst_206100); - else - {var _aNy_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$77); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aNy_)) - var _aNj_=caml_call1(Runtime_ocaml_Runtime[31],cst_213200); - else - {var _aNz_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$75); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aNz_)) - var _aNj_=caml_call1(Runtime_ocaml_Runtime[31],cst_220200); - else - {var _aNA_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$103); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aNA_)) - var _aNj_=caml_call1(Runtime_ocaml_Runtime[31],cst_235800); - else - var - _aNB_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$104), - _aNC_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aNB_), - _aND_=caml_call1(Runtime_ocaml_Runtime[69],_aNC_), - _aNE_=caml_call1(Runtime_ocaml_Runtime[31],cst_20500), - _aNF_=caml_call2(Runtime_ocaml_Runtime[104],_aNE_,_aND_), - _aNG_=caml_call1(Runtime_ocaml_Runtime[31],cst_235800$0), - _aNj_=caml_call2(Runtime_ocaml_Runtime[93],_aNG_,_aNF_)}}}}} - break; - default: - var _aNH_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$370); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aNH_)) - var - _aNj_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_140800) - :caml_call1(Runtime_ocaml_Runtime[31],cst_170800); - else - {var _aNI_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$265); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aNI_)) - var _aNj_=caml_call1(Runtime_ocaml_Runtime[31],cst_186200); - else - {var _aNJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$94); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aNJ_)) - var _aNj_=caml_call1(Runtime_ocaml_Runtime[31],cst_193900); - else - {var _aNK_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$78); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aNK_)) - var _aNj_=caml_call1(Runtime_ocaml_Runtime[31],cst_201700); - else - {var _aNL_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$76); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aNL_)) - var _aNj_=caml_call1(Runtime_ocaml_Runtime[31],cst_209400); - else - {var _aNM_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$105); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aNM_)) - var _aNj_=caml_call1(Runtime_ocaml_Runtime[31],cst_225000); - else - var - _aNN_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$106), - _aNO_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aNN_), - _aNP_=caml_call1(Runtime_ocaml_Runtime[69],_aNO_), - _aNQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_19500), - _aNR_=caml_call2(Runtime_ocaml_Runtime[104],_aNQ_,_aNP_), - _aNS_=caml_call1(Runtime_ocaml_Runtime[31],cst_225000$0), - _aNj_=caml_call2(Runtime_ocaml_Runtime[93],_aNS_,_aNR_)}}}}}} - return caml_call2 - (Runtime_ocaml_Runtime[104],_aNj_,taux_francs_vers_euros)} - function _aM$_(param) - {var - _aNa_=caml_call3(Runtime_ocaml_Runtime[57],2002,1,1), - _aNb_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aNa_), - _aNc_=caml_call3(Runtime_ocaml_Runtime[57],2001,7,1), - _aNd_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aNc_), - _aNe_=caml_call2(Runtime_ocaml_Runtime[83],_aNd_,_aNb_), - _aNf_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aNg_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aNf_), - _aNh_=caml_call2(Runtime_ocaml_Runtime[83],_aNg_,_aNe_); - return caml_call2(Runtime_ocaml_Runtime[29],_JP_,_aNh_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_JQ_,[0],_aM$_,_aM__)}, - _aIC_= - function(param) - {function _aMp_(param) - {switch(zone[0]) - {case 0: - var _aMz_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$371); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aMz_)) - var - _aMA_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_169100) - :caml_call1(Runtime_ocaml_Runtime[31],cst_203800); - else - {var _aMB_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$266); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aMB_)) - var _aMA_=caml_call1(Runtime_ocaml_Runtime[31],cst_219100); - else - {var _aMC_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$95); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aMC_)) - var _aMA_=caml_call1(Runtime_ocaml_Runtime[31],cst_225200); - else - {var _aMD_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$79); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aMD_)) - var _aMA_=caml_call1(Runtime_ocaml_Runtime[31],cst_231500); - else - {var _aME_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$77); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aME_)) - var _aMA_=caml_call1(Runtime_ocaml_Runtime[31],cst_237700); - else - {var _aMF_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$107); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aMF_)) - var - _aMA_= - caml_call1(Runtime_ocaml_Runtime[31],cst_242800$1); - else - var - _aMG_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$108), - _aMH_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aMG_), - _aMI_=caml_call1(Runtime_ocaml_Runtime[69],_aMH_), - _aMJ_=caml_call1(Runtime_ocaml_Runtime[31],cst_21100), - _aMK_=caml_call2(Runtime_ocaml_Runtime[104],_aMJ_,_aMI_), - _aML_=caml_call1(Runtime_ocaml_Runtime[31],cst_242800$2), - _aMA_=caml_call2(Runtime_ocaml_Runtime[93],_aML_,_aMK_)}}}}} - break; - case 1: - var _aMM_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$372); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aMM_)) - var - _aMA_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_148300) - :caml_call1(Runtime_ocaml_Runtime[31],cst_181800); - else - {var _aMN_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$267); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aMN_)) - var _aMA_=caml_call1(Runtime_ocaml_Runtime[31],cst_196800); - else - {var _aMO_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$96); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aMO_)) - var _aMA_=caml_call1(Runtime_ocaml_Runtime[31],cst_203700); - else - {var _aMP_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$80); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aMP_)) - var _aMA_=caml_call1(Runtime_ocaml_Runtime[31],cst_210700); - else - {var _aMQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$78); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aMQ_)) - var _aMA_=caml_call1(Runtime_ocaml_Runtime[31],cst_217600); - else - {var _aMR_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$109); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aMR_)) - var _aMA_=caml_call1(Runtime_ocaml_Runtime[31],cst_233000); - else - var - _aMS_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$110), - _aMT_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aMS_), - _aMU_=caml_call1(Runtime_ocaml_Runtime[69],_aMT_), - _aMV_=caml_call1(Runtime_ocaml_Runtime[31],cst_20300), - _aMW_=caml_call2(Runtime_ocaml_Runtime[104],_aMV_,_aMU_), - _aMX_=caml_call1(Runtime_ocaml_Runtime[31],cst_233000$0), - _aMA_=caml_call2(Runtime_ocaml_Runtime[93],_aMX_,_aMW_)}}}}} - break; - default: - var _aMY_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$373); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aMY_)) - var - _aMA_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_139100) - :caml_call1(Runtime_ocaml_Runtime[31],cst_168800); - else - {var _aMZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$268); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aMZ_)) - var - _aMA_= - caml_call1(Runtime_ocaml_Runtime[31],cst_184000$1); - else - {var _aM0_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$97); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aM0_)) - var _aMA_=caml_call1(Runtime_ocaml_Runtime[31],cst_191600); - else - {var _aM1_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$81); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aM1_)) - var _aMA_=caml_call1(Runtime_ocaml_Runtime[31],cst_199300); - else - {var _aM2_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$79); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aM2_)) - var _aMA_=caml_call1(Runtime_ocaml_Runtime[31],cst_206900); - else - {var _aM3_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$111); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aM3_)) - var _aMA_=caml_call1(Runtime_ocaml_Runtime[31],cst_222300); - else - var - _aM4_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$112), - _aM5_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aM4_), - _aM6_=caml_call1(Runtime_ocaml_Runtime[69],_aM5_), - _aM7_=caml_call1(Runtime_ocaml_Runtime[31],cst_19300), - _aM8_=caml_call2(Runtime_ocaml_Runtime[104],_aM7_,_aM6_), - _aM9_=caml_call1(Runtime_ocaml_Runtime[31],cst_222300$0), - _aMA_=caml_call2(Runtime_ocaml_Runtime[93],_aM9_,_aM8_)}}}}}} - return caml_call2 - (Runtime_ocaml_Runtime[104],_aMA_,taux_francs_vers_euros)} - function _aMq_(param) - {var - _aMr_=caml_call3(Runtime_ocaml_Runtime[57],2001,7,1), - _aMs_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aMr_), - _aMt_=caml_call3(Runtime_ocaml_Runtime[57],2000,7,1), - _aMu_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aMt_), - _aMv_=caml_call2(Runtime_ocaml_Runtime[83],_aMu_,_aMs_), - _aMw_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aMx_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aMw_), - _aMy_=caml_call2(Runtime_ocaml_Runtime[83],_aMx_,_aMv_); - return caml_call2(Runtime_ocaml_Runtime[29],_JR_,_aMy_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_JS_,[0],_aMq_,_aMp_)}, - _aID_= - function(param) - {function _aLG_(param) - {switch(zone[0]) - {case 0: - var _aLQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$374); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aLQ_)) - var - _aLR_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_167400) - :caml_call1(Runtime_ocaml_Runtime[31],cst_201800); - else - {var _aLS_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$269); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aLS_)) - var _aLR_=caml_call1(Runtime_ocaml_Runtime[31],cst_216900); - else - {var _aLT_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$98); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aLT_)) - var _aLR_=caml_call1(Runtime_ocaml_Runtime[31],cst_223000); - else - {var _aLU_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$82); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aLU_)) - var _aLR_=caml_call1(Runtime_ocaml_Runtime[31],cst_229200); - else - {var _aLV_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$80); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aLV_)) - var _aLR_=caml_call1(Runtime_ocaml_Runtime[31],cst_235300); - else - {var _aLW_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$113); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aLW_)) - var _aLR_=caml_call1(Runtime_ocaml_Runtime[31],cst_240400); - else - var - _aLX_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$114), - _aLY_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aLX_), - _aLZ_=caml_call1(Runtime_ocaml_Runtime[69],_aLY_), - _aL0_=caml_call1(Runtime_ocaml_Runtime[31],cst_20900), - _aL1_=caml_call2(Runtime_ocaml_Runtime[104],_aL0_,_aLZ_), - _aL2_=caml_call1(Runtime_ocaml_Runtime[31],cst_240400$0), - _aLR_=caml_call2(Runtime_ocaml_Runtime[93],_aL2_,_aL1_)}}}}} - break; - case 1: - var _aL3_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$375); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aL3_)) - var - _aLR_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_146800) - :caml_call1(Runtime_ocaml_Runtime[31],cst_180000); - else - {var _aL4_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$270); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aL4_)) - var _aLR_=caml_call1(Runtime_ocaml_Runtime[31],cst_194900); - else - {var _aL5_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$99); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aL5_)) - var - _aLR_= - caml_call1(Runtime_ocaml_Runtime[31],cst_201700$0); - else - {var _aL6_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$83); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aL6_)) - var _aLR_=caml_call1(Runtime_ocaml_Runtime[31],cst_208600); - else - {var _aL7_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$81); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aL7_)) - var _aLR_=caml_call1(Runtime_ocaml_Runtime[31],cst_215400); - else - {var _aL8_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$115); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aL8_)) - var _aLR_=caml_call1(Runtime_ocaml_Runtime[31],cst_230700); - else - var - _aL9_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$116), - _aL__= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aL9_), - _aL$_=caml_call1(Runtime_ocaml_Runtime[69],_aL__), - _aMa_=caml_call1(Runtime_ocaml_Runtime[31],cst_20100), - _aMb_=caml_call2(Runtime_ocaml_Runtime[104],_aMa_,_aL$_), - _aMc_=caml_call1(Runtime_ocaml_Runtime[31],cst_230700$0), - _aLR_=caml_call2(Runtime_ocaml_Runtime[93],_aMc_,_aMb_)}}}}} - break; - default: - var _aMd_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$376); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aMd_)) - var - _aLR_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_137700) - :caml_call1(Runtime_ocaml_Runtime[31],cst_167100); - else - {var _aMe_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$271); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aMe_)) - var _aLR_=caml_call1(Runtime_ocaml_Runtime[31],cst_182200); - else - {var _aMf_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$100); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aMf_)) - var _aLR_=caml_call1(Runtime_ocaml_Runtime[31],cst_189700); - else - {var _aMg_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$84); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aMg_)) - var _aLR_=caml_call1(Runtime_ocaml_Runtime[31],cst_197300); - else - {var _aMh_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$82); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aMh_)) - var _aLR_=caml_call1(Runtime_ocaml_Runtime[31],cst_204900); - else - {var _aMi_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$117); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aMi_)) - var _aLR_=caml_call1(Runtime_ocaml_Runtime[31],cst_220100); - else - var - _aMj_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$118), - _aMk_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aMj_), - _aMl_=caml_call1(Runtime_ocaml_Runtime[69],_aMk_), - _aMm_=caml_call1(Runtime_ocaml_Runtime[31],cst_19100), - _aMn_=caml_call2(Runtime_ocaml_Runtime[104],_aMm_,_aMl_), - _aMo_=caml_call1(Runtime_ocaml_Runtime[31],cst_220100$0), - _aLR_=caml_call2(Runtime_ocaml_Runtime[93],_aMo_,_aMn_)}}}}}} - return caml_call2 - (Runtime_ocaml_Runtime[104],_aLR_,taux_francs_vers_euros)} - function _aLH_(param) - {var - _aLI_=caml_call3(Runtime_ocaml_Runtime[57],2000,7,1), - _aLJ_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aLI_), - _aLK_=caml_call3(Runtime_ocaml_Runtime[57],1999,7,1), - _aLL_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aLK_), - _aLM_=caml_call2(Runtime_ocaml_Runtime[83],_aLL_,_aLJ_), - _aLN_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aLO_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aLN_), - _aLP_=caml_call2(Runtime_ocaml_Runtime[83],_aLO_,_aLM_); - return caml_call2(Runtime_ocaml_Runtime[29],_JT_,_aLP_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_JU_,[0],_aLH_,_aLG_)}, - _aIE_= - function(param) - {function _aKX_(param) - {switch(zone[0]) - {case 0: - var _aK7_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$377); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aK7_)) - var - _aK8_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_167200) - :caml_call1(Runtime_ocaml_Runtime[31],cst_201600); - else - {var _aK9_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$272); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aK9_)) - var _aK8_=caml_call1(Runtime_ocaml_Runtime[31],cst_216700); - else - {var _aK__=caml_call1(Runtime_ocaml_Runtime[46],cst_2$101); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aK__)) - var _aK8_=caml_call1(Runtime_ocaml_Runtime[31],cst_222800); - else - {var _aK$_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$85); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aK$_)) - var _aK8_=caml_call1(Runtime_ocaml_Runtime[31],cst_229000); - else - {var _aLa_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$83); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aLa_)) - var _aK8_=caml_call1(Runtime_ocaml_Runtime[31],cst_235100); - else - {var _aLb_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$119); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aLb_)) - var _aK8_=caml_call1(Runtime_ocaml_Runtime[31],cst_240200); - else - var - _aLc_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$120), - _aLd_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aLc_), - _aLe_=caml_call1(Runtime_ocaml_Runtime[69],_aLd_), - _aLf_=caml_call1(Runtime_ocaml_Runtime[31],cst_20900$0), - _aLg_=caml_call2(Runtime_ocaml_Runtime[104],_aLf_,_aLe_), - _aLh_=caml_call1(Runtime_ocaml_Runtime[31],cst_240200$0), - _aK8_=caml_call2(Runtime_ocaml_Runtime[93],_aLh_,_aLg_)}}}}} - break; - case 1: - var _aLi_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$378); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aLi_)) - var - _aK8_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_146700) - :caml_call1(Runtime_ocaml_Runtime[31],cst_179800); - else - {var _aLj_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$273); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aLj_)) - var _aK8_=caml_call1(Runtime_ocaml_Runtime[31],cst_194700); - else - {var _aLk_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$102); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aLk_)) - var _aK8_=caml_call1(Runtime_ocaml_Runtime[31],cst_201500); - else - {var _aLl_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$86); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aLl_)) - var _aK8_=caml_call1(Runtime_ocaml_Runtime[31],cst_208400); - else - {var _aLm_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$84); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aLm_)) - var _aK8_=caml_call1(Runtime_ocaml_Runtime[31],cst_215200); - else - {var _aLn_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$121); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aLn_)) - var _aK8_=caml_call1(Runtime_ocaml_Runtime[31],cst_230500); - else - var - _aLo_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$122), - _aLp_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aLo_), - _aLq_=caml_call1(Runtime_ocaml_Runtime[69],_aLp_), - _aLr_=caml_call1(Runtime_ocaml_Runtime[31],cst_20100$0), - _aLs_=caml_call2(Runtime_ocaml_Runtime[104],_aLr_,_aLq_), - _aLt_=caml_call1(Runtime_ocaml_Runtime[31],cst_230500$0), - _aK8_=caml_call2(Runtime_ocaml_Runtime[93],_aLt_,_aLs_)}}}}} - break; - default: - var _aLu_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$379); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aLu_)) - var - _aK8_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_137600) - :caml_call1(Runtime_ocaml_Runtime[31],cst_166900); - else - {var _aLv_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$274); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aLv_)) - var _aK8_=caml_call1(Runtime_ocaml_Runtime[31],cst_182000); - else - {var _aLw_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$103); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aLw_)) - var _aK8_=caml_call1(Runtime_ocaml_Runtime[31],cst_189500); - else - {var _aLx_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$87); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aLx_)) - var _aK8_=caml_call1(Runtime_ocaml_Runtime[31],cst_197100); - else - {var _aLy_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$85); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aLy_)) - var - _aK8_= - caml_call1(Runtime_ocaml_Runtime[31],cst_204700$0); - else - {var _aLz_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$123); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aLz_)) - var _aK8_=caml_call1(Runtime_ocaml_Runtime[31],cst_219900); - else - var - _aLA_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$124), - _aLB_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aLA_), - _aLC_=caml_call1(Runtime_ocaml_Runtime[69],_aLB_), - _aLD_=caml_call1(Runtime_ocaml_Runtime[31],cst_19100$0), - _aLE_=caml_call2(Runtime_ocaml_Runtime[104],_aLD_,_aLC_), - _aLF_=caml_call1(Runtime_ocaml_Runtime[31],cst_219900$0), - _aK8_=caml_call2(Runtime_ocaml_Runtime[93],_aLF_,_aLE_)}}}}}} - return caml_call2 - (Runtime_ocaml_Runtime[104],_aK8_,taux_francs_vers_euros)} - function _aKY_(param) - {var - _aKZ_=caml_call3(Runtime_ocaml_Runtime[57],1999,7,1), - _aK0_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aKZ_), - _aK1_=caml_call3(Runtime_ocaml_Runtime[57],1998,7,1), - _aK2_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aK1_), - _aK3_=caml_call2(Runtime_ocaml_Runtime[83],_aK2_,_aK0_), - _aK4_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aK5_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aK4_), - _aK6_=caml_call2(Runtime_ocaml_Runtime[83],_aK5_,_aK3_); - return caml_call2(Runtime_ocaml_Runtime[29],_JV_,_aK6_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_JW_,[0],_aKY_,_aKX_)}, - _aIF_= - function(param) - {function _aKc_(param) - {switch(zone[0]) - {case 0: - var _aKm_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$380); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aKm_)) - var - _aKn_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_163300) - :caml_call1(Runtime_ocaml_Runtime[31],cst_196900); - else - {var _aKo_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$275); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aKo_)) - var _aKn_=caml_call1(Runtime_ocaml_Runtime[31],cst_211600); - else - {var _aKp_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$104); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aKp_)) - var - _aKn_= - caml_call1(Runtime_ocaml_Runtime[31],cst_217600$0); - else - {var _aKq_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$88); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aKq_)) - var _aKn_=caml_call1(Runtime_ocaml_Runtime[31],cst_223600); - else - {var _aKr_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$86); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aKr_)) - var _aKn_=caml_call1(Runtime_ocaml_Runtime[31],cst_229600); - else - {var _aKs_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$125); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aKs_)) - var _aKn_=caml_call1(Runtime_ocaml_Runtime[31],cst_234600); - else - var - _aKt_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$126), - _aKu_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aKt_), - _aKv_=caml_call1(Runtime_ocaml_Runtime[69],_aKu_), - _aKw_=caml_call1(Runtime_ocaml_Runtime[31],cst_20400), - _aKx_=caml_call2(Runtime_ocaml_Runtime[104],_aKw_,_aKv_), - _aKy_=caml_call1(Runtime_ocaml_Runtime[31],cst_234600$0), - _aKn_=caml_call2(Runtime_ocaml_Runtime[93],_aKy_,_aKx_)}}}}} - break; - case 1: - var _aKz_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$381); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aKz_)) - var - _aKn_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_143300) - :caml_call1(Runtime_ocaml_Runtime[31],cst_175600); - else - {var _aKA_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$276); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aKA_)) - var _aKn_=caml_call1(Runtime_ocaml_Runtime[31],cst_190100); - else - {var _aKB_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$105); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aKB_)) - var _aKn_=caml_call1(Runtime_ocaml_Runtime[31],cst_196600); - else - {var _aKC_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$89); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aKC_)) - var _aKn_=caml_call1(Runtime_ocaml_Runtime[31],cst_203500); - else - {var _aKD_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$87); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aKD_)) - var _aKn_=caml_call1(Runtime_ocaml_Runtime[31],cst_210200); - else - {var _aKE_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$127); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aKE_)) - var _aKn_=caml_call1(Runtime_ocaml_Runtime[31],cst_225100); - else - var - _aKF_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$128), - _aKG_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aKF_), - _aKH_=caml_call1(Runtime_ocaml_Runtime[69],_aKG_), - _aKI_=caml_call1(Runtime_ocaml_Runtime[31],cst_19600), - _aKJ_=caml_call2(Runtime_ocaml_Runtime[104],_aKI_,_aKH_), - _aKK_=caml_call1(Runtime_ocaml_Runtime[31],cst_225100$0), - _aKn_=caml_call2(Runtime_ocaml_Runtime[93],_aKK_,_aKJ_)}}}}} - break; - default: - var _aKL_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$382); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aKL_)) - var - _aKn_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_134400) - :caml_call1(Runtime_ocaml_Runtime[31],cst_163000$0); - else - {var _aKM_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$277); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aKM_)) - var _aKn_=caml_call1(Runtime_ocaml_Runtime[31],cst_177700); - else - {var _aKN_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$106); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aKN_)) - var _aKn_=caml_call1(Runtime_ocaml_Runtime[31],cst_185100); - else - {var _aKO_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$90); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aKO_)) - var - _aKn_= - caml_call1(Runtime_ocaml_Runtime[31],cst_192500$0); - else - {var _aKP_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$88); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aKP_)) - var - _aKn_= - caml_call1(Runtime_ocaml_Runtime[31],cst_199900$0); - else - {var _aKQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$129); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aKQ_)) - var _aKn_=caml_call1(Runtime_ocaml_Runtime[31],cst_214700); - else - var - _aKR_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$130), - _aKS_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aKR_), - _aKT_=caml_call1(Runtime_ocaml_Runtime[69],_aKS_), - _aKU_=caml_call1(Runtime_ocaml_Runtime[31],cst_18700), - _aKV_=caml_call2(Runtime_ocaml_Runtime[104],_aKU_,_aKT_), - _aKW_=caml_call1(Runtime_ocaml_Runtime[31],cst_214700$0), - _aKn_=caml_call2(Runtime_ocaml_Runtime[93],_aKW_,_aKV_)}}}}}} - return caml_call2 - (Runtime_ocaml_Runtime[104],_aKn_,taux_francs_vers_euros)} - function _aKd_(param) - {var - _aKe_=caml_call3(Runtime_ocaml_Runtime[57],1998,7,1), - _aKf_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aKe_), - _aKg_=caml_call3(Runtime_ocaml_Runtime[57],1997,7,1), - _aKh_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aKg_), - _aKi_=caml_call2(Runtime_ocaml_Runtime[83],_aKh_,_aKf_), - _aKj_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aKk_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aKj_), - _aKl_=caml_call2(Runtime_ocaml_Runtime[83],_aKk_,_aKi_); - return caml_call2(Runtime_ocaml_Runtime[29],_JX_,_aKl_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_JY_,[0],_aKd_,_aKc_)}, - _aIG_= - function(param) - {function _aJt_(param) - {switch(zone[0]) - {case 0: - var _aJD_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$383); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJD_)) - var - _aJE_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_160400) - :caml_call1(Runtime_ocaml_Runtime[31],cst_193400); - else - {var _aJF_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$278); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJF_)) - var _aJE_=caml_call1(Runtime_ocaml_Runtime[31],cst_207800); - else - {var _aJG_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$107); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJG_)) - var _aJE_=caml_call1(Runtime_ocaml_Runtime[31],cst_213700); - else - {var _aJH_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$91); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJH_)) - var _aJE_=caml_call1(Runtime_ocaml_Runtime[31],cst_219600); - else - {var _aJI_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$89); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJI_)) - var - _aJE_= - caml_call1(Runtime_ocaml_Runtime[31],cst_225500$0); - else - {var _aJJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$131); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJJ_)) - var - _aJE_= - caml_call1(Runtime_ocaml_Runtime[31],cst_230500$1); - else - var - _aJK_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$132), - _aJL_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aJK_), - _aJM_=caml_call1(Runtime_ocaml_Runtime[69],_aJL_), - _aJN_=caml_call1(Runtime_ocaml_Runtime[31],cst_20000), - _aJO_=caml_call2(Runtime_ocaml_Runtime[104],_aJN_,_aJM_), - _aJP_=caml_call1(Runtime_ocaml_Runtime[31],cst_230500$2), - _aJE_=caml_call2(Runtime_ocaml_Runtime[93],_aJP_,_aJO_)}}}}} - break; - case 1: - var _aJQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$384); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJQ_)) - var - _aJE_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_140800$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_172500$0); - else - {var _aJR_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$279); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJR_)) - var _aJE_=caml_call1(Runtime_ocaml_Runtime[31],cst_186700); - else - {var _aJS_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$108); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJS_)) - var _aJE_=caml_call1(Runtime_ocaml_Runtime[31],cst_193300); - else - {var _aJT_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$92); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJT_)) - var - _aJE_= - caml_call1(Runtime_ocaml_Runtime[31],cst_199900$1); - else - {var _aJU_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$90); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJU_)) - var _aJE_=caml_call1(Runtime_ocaml_Runtime[31],cst_206500); - else - {var _aJV_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$133); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJV_)) - var _aJE_=caml_call1(Runtime_ocaml_Runtime[31],cst_221100); - else - var - _aJW_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$134), - _aJX_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aJW_), - _aJY_=caml_call1(Runtime_ocaml_Runtime[69],_aJX_), - _aJZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_19300$0), - _aJ0_=caml_call2(Runtime_ocaml_Runtime[104],_aJZ_,_aJY_), - _aJ1_=caml_call1(Runtime_ocaml_Runtime[31],cst_221100$0), - _aJE_=caml_call2(Runtime_ocaml_Runtime[93],_aJ1_,_aJ0_)}}}}} - break; - default: - var _aJ2_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$385); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJ2_)) - var - _aJE_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_132000$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_180100$1); - else - {var _aJ3_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$280); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJ3_)) - var _aJE_=caml_call1(Runtime_ocaml_Runtime[31],cst_174500); - else - {var _aJ4_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$109); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJ4_)) - var - _aJE_= - caml_call1(Runtime_ocaml_Runtime[31],cst_181800$0); - else - {var _aJ5_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$93); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJ5_)) - var _aJE_=caml_call1(Runtime_ocaml_Runtime[31],cst_189100); - else - {var _aJ6_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$91); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJ6_)) - var _aJE_=caml_call1(Runtime_ocaml_Runtime[31],cst_196400); - else - {var _aJ7_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$135); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJ7_)) - var _aJE_=caml_call1(Runtime_ocaml_Runtime[31],cst_210900); - else - var - _aJ8_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$136), - _aJ9_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aJ8_), - _aJ__=caml_call1(Runtime_ocaml_Runtime[69],_aJ9_), - _aJ$_=caml_call1(Runtime_ocaml_Runtime[31],cst_18400), - _aKa_=caml_call2(Runtime_ocaml_Runtime[104],_aJ$_,_aJ__), - _aKb_=caml_call1(Runtime_ocaml_Runtime[31],cst_210900$0), - _aJE_=caml_call2(Runtime_ocaml_Runtime[93],_aKb_,_aKa_)}}}}}} - return caml_call2 - (Runtime_ocaml_Runtime[104],_aJE_,taux_francs_vers_euros)} - function _aJu_(param) - {var - _aJv_=caml_call3(Runtime_ocaml_Runtime[57],1997,7,1), - _aJw_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aJv_), - _aJx_=caml_call3(Runtime_ocaml_Runtime[57],1994,7,1), - _aJy_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aJx_), - _aJz_=caml_call2(Runtime_ocaml_Runtime[83],_aJy_,_aJw_), - _aJA_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aJB_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aJA_), - _aJC_=caml_call2(Runtime_ocaml_Runtime[83],_aJB_,_aJz_); - return caml_call2(Runtime_ocaml_Runtime[29],_JZ_,_aJC_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_J0_,[0],_aJu_,_aJt_)}, - _aIH_= - [0, - function(param) - {function _aIK_(param) - {switch(zone[0]) - {case 0: - var _aIU_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$386); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aIU_)) - var - _aIV_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_158700) - :caml_call1(Runtime_ocaml_Runtime[31],cst_191300); - else - {var _aIW_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$281); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aIW_)) - var _aIV_=caml_call1(Runtime_ocaml_Runtime[31],cst_205500); - else - {var _aIX_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$110); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aIX_)) - var _aIV_=caml_call1(Runtime_ocaml_Runtime[31],cst_211300); - else - {var _aIY_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$94); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aIY_)) - var _aIV_=caml_call1(Runtime_ocaml_Runtime[31],cst_217100); - else - {var _aIZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$92); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aIZ_)) - var _aIV_=caml_call1(Runtime_ocaml_Runtime[31],cst_222900); - else - {var _aI0_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$137); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aI0_)) - var _aIV_=caml_call1(Runtime_ocaml_Runtime[31],cst_228000); - else - var - _aI1_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$138), - _aI2_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aI1_), - _aI3_=caml_call1(Runtime_ocaml_Runtime[69],_aI2_), - _aI4_=caml_call1(Runtime_ocaml_Runtime[31],cst_19800), - _aI5_=caml_call2(Runtime_ocaml_Runtime[104],_aI4_,_aI3_), - _aI6_=caml_call1(Runtime_ocaml_Runtime[31],cst_228000$0), - _aIV_=caml_call2(Runtime_ocaml_Runtime[93],_aI6_,_aI5_)}}}}} - break; - case 1: - var _aI7_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$387); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aI7_)) - var - _aIV_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_139300) - :caml_call1(Runtime_ocaml_Runtime[31],cst_170600); - else - {var _aI8_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$282); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aI8_)) - var _aIV_=caml_call1(Runtime_ocaml_Runtime[31],cst_184700); - else - {var _aI9_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$111); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aI9_)) - var _aIV_=caml_call1(Runtime_ocaml_Runtime[31],cst_191200); - else - {var _aI__=caml_call1(Runtime_ocaml_Runtime[46],cst_3$95); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aI__)) - var - _aIV_= - caml_call1(Runtime_ocaml_Runtime[31],cst_197700$0); - else - {var _aI$_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$93); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aI$_)) - var _aIV_=caml_call1(Runtime_ocaml_Runtime[31],cst_204200); - else - {var _aJa_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$139); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJa_)) - var _aIV_=caml_call1(Runtime_ocaml_Runtime[31],cst_218700); - else - var - _aJb_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$140), - _aJc_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aJb_), - _aJd_=caml_call1(Runtime_ocaml_Runtime[69],_aJc_), - _aJe_=caml_call1(Runtime_ocaml_Runtime[31],cst_19100$1), - _aJf_=caml_call2(Runtime_ocaml_Runtime[104],_aJe_,_aJd_), - _aJg_=caml_call1(Runtime_ocaml_Runtime[31],cst_218700$0), - _aIV_=caml_call2(Runtime_ocaml_Runtime[93],_aJg_,_aJf_)}}}}} - break; - default: - var _aJh_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$388); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJh_)) - var - _aIV_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_130600) - :caml_call1(Runtime_ocaml_Runtime[31],cst_158400); - else - {var _aJi_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$283); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJi_)) - var _aIV_=caml_call1(Runtime_ocaml_Runtime[31],cst_172600); - else - {var _aJj_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$112); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJj_)) - var - _aIV_= - caml_call1(Runtime_ocaml_Runtime[31],cst_179800$0); - else - {var _aJk_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$96); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJk_)) - var _aIV_=caml_call1(Runtime_ocaml_Runtime[31],cst_187000); - else - {var _aJl_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$94); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJl_)) - var _aIV_=caml_call1(Runtime_ocaml_Runtime[31],cst_194200); - else - {var _aJm_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$141); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aJm_)) - var - _aIV_= - caml_call1(Runtime_ocaml_Runtime[31],cst_208600$0); - else - var - _aJn_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$142), - _aJo_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aJn_), - _aJp_=caml_call1(Runtime_ocaml_Runtime[69],_aJo_), - _aJq_=caml_call1(Runtime_ocaml_Runtime[31],cst_18200), - _aJr_=caml_call2(Runtime_ocaml_Runtime[104],_aJq_,_aJp_), - _aJs_=caml_call1(Runtime_ocaml_Runtime[31],cst_208600$1), - _aIV_=caml_call2(Runtime_ocaml_Runtime[93],_aJs_,_aJr_)}}}}}} - return caml_call2 - (Runtime_ocaml_Runtime[104],_aIV_,taux_francs_vers_euros)} - function _aIL_(param) - {var - _aIM_=caml_call3(Runtime_ocaml_Runtime[57],1994,7,1), - _aIN_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aIM_), - _aIO_=caml_call3(Runtime_ocaml_Runtime[57],1992,7,1), - _aIP_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aIO_), - _aIQ_=caml_call2(Runtime_ocaml_Runtime[83],_aIP_,_aIN_), - _aIR_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aIS_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aIR_), - _aIT_=caml_call2(Runtime_ocaml_Runtime[83],_aIS_,_aIQ_); - return caml_call2(Runtime_ocaml_Runtime[29],_J1_,_aIT_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_J2_,[0],_aIL_,_aIK_)}, - _aIG_, - _aIF_, - _aIE_, - _aID_, - _aIC_, - _aIB_, - _aIA_, - _aIz_, - _aIy_, - _aIx_, - _aIw_, - _aIv_, - _aIu_, - _aIt_, - _aIs_, - _aIr_, - _aIq_, - _aIp_, - _aIo_, - _aIn_, - _aIm_], - _aII_=caml_call4(Runtime_ocaml_Runtime[63],_J3_,_aIH_,_aIl_,_aIk_); - return _aII_} - catch(_aIJ_) - {_aIJ_ = caml_wrap_exception(_aIJ_); - if(_aIJ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Jk_]; - throw _aIJ_}} - var - calcul_plafond_mensualite_d842= - caml_call3 - (Runtime_ocaml_Runtime[28],_J4_,Runtime_ocaml_Runtime[10],_aEc_); - try - {var - _aEd_=function(param){throw Runtime_ocaml_Runtime[2]}, - _aEe_=function(param){return 0}, - _aEf_= - function(param) - {function _aIe_(param){return montant_forfaitaire_d842_12} - function _aIf_(param) - {switch(type_travaux_logement[0]) - {case 0:var _aIg_=0;break; - case 1:var _aIg_=1;break; - case 2:var _aIg_=0;break; - default:var _aIg_=0} - var - _aIh_=caml_call3(Runtime_ocaml_Runtime[57],1994,9,30), - _aIi_= - caml_call2 - (Runtime_ocaml_Runtime[125],date_signature_pret,_aIh_), - _aIj_=caml_call2(Runtime_ocaml_Runtime[83],_aIi_,_aIg_); - return caml_call2(Runtime_ocaml_Runtime[29],_J6_,_aIj_)} - return caml_call4(Runtime_ocaml_Runtime[63],_J7_,[0],_aIf_,_aIe_)}, - _aEg_= - [0, - function(param) - {function _aH0_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[104], - mensualite_principale, - coefficient_d842_12)} - function _aH1_(param) - {switch(type_travaux_logement[0]) - {case 0:var _aH2_=0;break; - case 1:var _aH2_=0;break; - case 2:var _aH2_=1;break; - default:var _aH2_=0} - switch(type_travaux_logement[0]) - {case 0:var _aH3_=1;break; - case 1:var _aH3_=0;break; - case 2:var _aH3_=0;break; - default:var _aH3_=0} - var _aH4_=caml_call2(Runtime_ocaml_Runtime[84],_aH3_,_aH2_); - switch(type_travaux_logement[0]) - {case 0:var _aH5_=0;break; - case 1:var _aH5_=0;break; - case 2:var _aH5_=0;break; - default:var _aH5_=1} + _aET_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$117), + _aEU_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aET_), + _aEV_ = caml_call1(Runtime_ocaml_Runtime[69], _aEU_), + _aEW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_21400), + _aEX_ = caml_call2(Runtime_ocaml_Runtime[104], _aEW_, _aEV_), + _aEY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_245700$0), + _aEN_ = caml_call2(Runtime_ocaml_Runtime[93], _aEY_, _aEX_); + } + } + } + } + } + break; + case 1: + var _aEZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$305); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aEZ_)) var - _aH6_=caml_call2(Runtime_ocaml_Runtime[84],_aH5_,_aH4_), - _aH7_=caml_call3(Runtime_ocaml_Runtime[57],1994,9,30), - _aH8_= - caml_call2 - (Runtime_ocaml_Runtime[125],date_signature_pret,_aH7_), - _aH9_=caml_call2(Runtime_ocaml_Runtime[83],_aH8_,_aH6_), - _aH__=caml_call3(Runtime_ocaml_Runtime[57],1994,9,30), - _aH$_= - caml_call2 - (Runtime_ocaml_Runtime[120],date_signature_pret,_aH__), - _aIa_=caml_call3(Runtime_ocaml_Runtime[57],1992,9,30), - _aIb_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_aIa_), - _aIc_=caml_call2(Runtime_ocaml_Runtime[83],_aIb_,_aH$_), - _aId_=caml_call2(Runtime_ocaml_Runtime[84],_aIc_,_aH9_); - return caml_call2(Runtime_ocaml_Runtime[29],_J8_,_aId_)} - return caml_call4(Runtime_ocaml_Runtime[63],_J9_,[0],_aH1_,_aH0_)}, - _aEf_], - _aEh_=caml_call4(Runtime_ocaml_Runtime[63],_J__,_aEg_,_aEe_,_aEd_)} - catch(_aHZ_) - {_aHZ_ = caml_wrap_exception(_aHZ_); - if(_aHZ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_J5_]; - throw _aHZ_} - var - seuil_minimal_ressources_menag= - caml_call3 - (Runtime_ocaml_Runtime[28],_J$_,Runtime_ocaml_Runtime[13],_aEh_); - function _aEi_(allocation_mensuelle) - {try - {var - _aHU_= - function(param) - {var - _aHY_= - caml_call2 - (Runtime_ocaml_Runtime[93], - charges_mensuelles_pret, - montant_forfaitaire_charges); - return caml_call2 - (Runtime_ocaml_Runtime[98],_aHY_,allocation_mensuelle)}, - _aHV_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Kb_,1)}, - _aHW_=caml_call4(Runtime_ocaml_Runtime[63],_Kc_,[0],_aHV_,_aHU_); - return _aHW_} - catch(_aHX_) - {_aHX_ = caml_wrap_exception(_aHX_); - if(_aHX_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ka_]; - throw _aHX_}} - var - depense_nette_minimale= - caml_call3 - (Runtime_ocaml_Runtime[28],_Kd_,Runtime_ocaml_Runtime[10],_aEi_); - function _aEj_(date_calcul) - {try - {var - _aG1_= - function(param) - {var - _aHR_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Kf_, - Runtime_ocaml_Runtime[16], - date_calcul), - _aHS_= - caml_call1 + _aEN_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_150100) + : caml_call1(Runtime_ocaml_Runtime[31], cst_184000$0); + else{ + var _aE0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$226); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aE0_)) + var _aEN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_199200); + else{ + var _aE1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$80); + if (caml_call2 - (Runtime_ocaml_Runtime[26], - _Kg_, - calcul_plafond_mensualite_d842), - _aHR_), - _aHT_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Kh_, - Runtime_ocaml_Runtime[13], - _aHS_); - return caml_call2(Runtime_ocaml_Runtime[27],_Ki_,_aHT_)}, - _aG2_= - function(param) - {var - _aHP_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aHQ_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aHP_); - return caml_call2(Runtime_ocaml_Runtime[29],_Kj_,_aHQ_)}, - _aG3_= - [0, - function(param) - {function _aG6_(param){throw Runtime_ocaml_Runtime[2]} - function _aG7_(param){return 0} - var - _aG8_= - [0, - function(param) - {function _aG9_(param) - {if(copropriete) - {var - _aHH_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$11), - _aHI_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Kk_, - Runtime_ocaml_Runtime[16], - date_calcul), - _aHJ_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Kl_, - calcul_plafond_mensualite_d842), - _aHI_), - _aHK_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Km_, - Runtime_ocaml_Runtime[13], - _aHJ_), - _aHL_=caml_call2(Runtime_ocaml_Runtime[27],_Kn_,_aHK_); - return caml_call2(Runtime_ocaml_Runtime[104],_aHL_,_aHH_)} - var - _aHM_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Ko_, - Runtime_ocaml_Runtime[16], - date_calcul), - _aHN_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Kp_, - calcul_plafond_mensualite_d842), - _aHM_), - _aHO_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Kq_, - Runtime_ocaml_Runtime[13], - _aHN_); - return caml_call2(Runtime_ocaml_Runtime[27],_Kr_,_aHO_)} - function _aG__(param) - {var - _aHF_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _aHG_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aHF_); - return caml_call2(Runtime_ocaml_Runtime[29],_Ks_,_aHG_)} + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aE1_)) + var + _aEN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_206100); + else{ + var _aE2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$78); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aE2_)) + var + _aEN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_213200); + else{ + var _aE3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$80); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aE3_)) + var + _aEN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_220200); + else{ + var + _aE4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$118); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aE4_)) var - _aG$_= - [0, - function(param) - {function _aHa_(param) - {if(copropriete) - {var - _aHx_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$12), - _aHy_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Kt_, - Runtime_ocaml_Runtime[16], - date_calcul), - _aHz_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Ku_, - calcul_plafond_mensualite_d842), - _aHy_), - _aHA_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Kv_, - Runtime_ocaml_Runtime[13], - _aHz_), - _aHB_=caml_call2(Runtime_ocaml_Runtime[27],_Kw_,_aHA_); - return caml_call2(Runtime_ocaml_Runtime[104],_aHB_,_aHx_)} + _aEN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_235800); + else + var + _aE5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$119), + _aE6_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aE5_), + _aE7_ = caml_call1(Runtime_ocaml_Runtime[69], _aE6_), + _aE8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_20500), + _aE9_ = caml_call2(Runtime_ocaml_Runtime[104], _aE8_, _aE7_), + _aE__ = caml_call1(Runtime_ocaml_Runtime[31], cst_235800$0), + _aEN_ = caml_call2(Runtime_ocaml_Runtime[93], _aE__, _aE9_); + } + } + } + } + } + break; + default: + var _aE$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$306); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aE$_)) + var + _aEN_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_140800) + : caml_call1(Runtime_ocaml_Runtime[31], cst_170800); + else{ + var _aFa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$227); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aFa_)) + var _aEN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_186200); + else{ + var _aFb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$81); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aFb_)) + var + _aEN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_193900); + else{ + var _aFc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$79); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aFc_)) + var + _aEN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_201700); + else{ + var _aFd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$81); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aFd_)) + var + _aEN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_209400); + else{ + var + _aFe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$120); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aFe_)) + var + _aEN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_225000); + else + var + _aFf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$121), + _aFg_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aFf_), + _aFh_ = caml_call1(Runtime_ocaml_Runtime[69], _aFg_), + _aFi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_19500), + _aFj_ = caml_call2(Runtime_ocaml_Runtime[104], _aFi_, _aFh_), + _aFk_ = caml_call1(Runtime_ocaml_Runtime[31], cst_225000$0), + _aEN_ = caml_call2(Runtime_ocaml_Runtime[93], _aFk_, _aFj_); + } + } + } + } + } + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _aEN_, taux_francs_vers_euros); + } + function _aED_(param){ + var + _aEE_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 1, 1), + _aEF_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aEE_), + _aEG_ = caml_call3(Runtime_ocaml_Runtime[57], 2001, 7, 1), + _aEH_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aEG_), + _aEI_ = caml_call2(Runtime_ocaml_Runtime[83], _aEH_, _aEF_), + _aEJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aEK_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aEJ_), + _aEL_ = caml_call2(Runtime_ocaml_Runtime[83], _aEK_, _aEI_); + return caml_call2(Runtime_ocaml_Runtime[29], _zZ_, _aEL_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _z0_, [0], _aED_, _aEC_); + }, + _az6_ = + function(param){ + function _aDT_(param){ + switch(zone[0]){ + case 0: + var _aD3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$307); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aD3_)) + var + _aD4_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_169100) + : caml_call1(Runtime_ocaml_Runtime[31], cst_203800); + else{ + var _aD5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$228); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aD5_)) + var _aD4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_219100); + else{ + var _aD6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$82); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aD6_)) + var + _aD4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_225200); + else{ + var _aD7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$80); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aD7_)) + var + _aD4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_231500); + else{ + var _aD8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$82); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aD8_)) + var + _aD4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_237700); + else{ + var + _aD9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$122); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aD9_)) + var + _aD4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_242800$1); + else + var + _aD__ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$123), + _aD$_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aD__), + _aEa_ = caml_call1(Runtime_ocaml_Runtime[69], _aD$_), + _aEb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_21100), + _aEc_ = caml_call2(Runtime_ocaml_Runtime[104], _aEb_, _aEa_), + _aEd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_242800$2), + _aD4_ = caml_call2(Runtime_ocaml_Runtime[93], _aEd_, _aEc_); + } + } + } + } + } + break; + case 1: + var _aEe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$308); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aEe_)) + var + _aD4_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_148300) + : caml_call1(Runtime_ocaml_Runtime[31], cst_181800); + else{ + var _aEf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$229); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aEf_)) + var _aD4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_196800); + else{ + var _aEg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$83); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aEg_)) + var + _aD4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_203700); + else{ + var _aEh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$81); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aEh_)) + var + _aD4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_210700); + else{ + var _aEi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$83); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aEi_)) + var + _aD4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_217600); + else{ + var + _aEj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$124); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aEj_)) + var + _aD4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_233000); + else + var + _aEk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$125), + _aEl_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aEk_), + _aEm_ = caml_call1(Runtime_ocaml_Runtime[69], _aEl_), + _aEn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_20300), + _aEo_ = caml_call2(Runtime_ocaml_Runtime[104], _aEn_, _aEm_), + _aEp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_233000$0), + _aD4_ = caml_call2(Runtime_ocaml_Runtime[93], _aEp_, _aEo_); + } + } + } + } + } + break; + default: + var _aEq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$309); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aEq_)) + var + _aD4_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_139100) + : caml_call1(Runtime_ocaml_Runtime[31], cst_168800); + else{ + var _aEr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$230); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aEr_)) + var + _aD4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_184000$1); + else{ + var _aEs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$84); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aEs_)) + var + _aD4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_191600); + else{ + var _aEt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$82); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aEt_)) + var + _aD4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_199300); + else{ + var _aEu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$84); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aEu_)) + var + _aD4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_206900); + else{ + var + _aEv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$126); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aEv_)) + var + _aD4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_222300); + else + var + _aEw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$127), + _aEx_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aEw_), + _aEy_ = caml_call1(Runtime_ocaml_Runtime[69], _aEx_), + _aEz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_19300), + _aEA_ = caml_call2(Runtime_ocaml_Runtime[104], _aEz_, _aEy_), + _aEB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_222300$0), + _aD4_ = caml_call2(Runtime_ocaml_Runtime[93], _aEB_, _aEA_); + } + } + } + } + } + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _aD4_, taux_francs_vers_euros); + } + function _aDU_(param){ + var + _aDV_ = caml_call3(Runtime_ocaml_Runtime[57], 2001, 7, 1), + _aDW_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aDV_), + _aDX_ = caml_call3(Runtime_ocaml_Runtime[57], 2000, 7, 1), + _aDY_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aDX_), + _aDZ_ = caml_call2(Runtime_ocaml_Runtime[83], _aDY_, _aDW_), + _aD0_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aD1_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aD0_), + _aD2_ = caml_call2(Runtime_ocaml_Runtime[83], _aD1_, _aDZ_); + return caml_call2(Runtime_ocaml_Runtime[29], _z1_, _aD2_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _z2_, [0], _aDU_, _aDT_); + }, + _az7_ = + function(param){ + function _aC__(param){ + switch(zone[0]){ + case 0: + var _aDi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$310); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aDi_)) + var + _aDj_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_167400) + : caml_call1(Runtime_ocaml_Runtime[31], cst_201800); + else{ + var _aDk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$231); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDk_)) + var _aDj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_216900); + else{ + var _aDl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$85); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDl_)) + var + _aDj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_223000); + else{ + var _aDm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$83); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDm_)) + var + _aDj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_229200); + else{ + var _aDn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$85); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDn_)) + var + _aDj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_235300); + else{ + var + _aDo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$128); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDo_)) + var + _aDj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_240400); + else + var + _aDp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$129), + _aDq_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aDp_), + _aDr_ = caml_call1(Runtime_ocaml_Runtime[69], _aDq_), + _aDs_ = caml_call1(Runtime_ocaml_Runtime[31], cst_20900), + _aDt_ = caml_call2(Runtime_ocaml_Runtime[104], _aDs_, _aDr_), + _aDu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_240400$0), + _aDj_ = caml_call2(Runtime_ocaml_Runtime[93], _aDu_, _aDt_); + } + } + } + } + } + break; + case 1: + var _aDv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$311); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aDv_)) + var + _aDj_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_146800) + : caml_call1(Runtime_ocaml_Runtime[31], cst_180000); + else{ + var _aDw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$232); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDw_)) + var _aDj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_194900); + else{ + var _aDx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$86); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDx_)) + var + _aDj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_201700$0); + else{ + var _aDy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$84); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDy_)) + var + _aDj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_208600); + else{ + var _aDz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$86); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDz_)) + var + _aDj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_215400); + else{ + var + _aDA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$130); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDA_)) + var + _aDj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_230700); + else + var + _aDB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$131), + _aDC_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aDB_), + _aDD_ = caml_call1(Runtime_ocaml_Runtime[69], _aDC_), + _aDE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_20100), + _aDF_ = caml_call2(Runtime_ocaml_Runtime[104], _aDE_, _aDD_), + _aDG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_230700$0), + _aDj_ = caml_call2(Runtime_ocaml_Runtime[93], _aDG_, _aDF_); + } + } + } + } + } + break; + default: + var _aDH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$312); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aDH_)) + var + _aDj_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_137700) + : caml_call1(Runtime_ocaml_Runtime[31], cst_167100); + else{ + var _aDI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$233); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDI_)) + var _aDj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_182200); + else{ + var _aDJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$87); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDJ_)) + var + _aDj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_189700); + else{ + var _aDK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$85); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDK_)) + var + _aDj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_197300); + else{ + var _aDL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$87); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDL_)) + var + _aDj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_204900); + else{ + var + _aDM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$132); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDM_)) + var + _aDj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_220100); + else + var + _aDN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$133), + _aDO_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aDN_), + _aDP_ = caml_call1(Runtime_ocaml_Runtime[69], _aDO_), + _aDQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_19100), + _aDR_ = caml_call2(Runtime_ocaml_Runtime[104], _aDQ_, _aDP_), + _aDS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_220100$0), + _aDj_ = caml_call2(Runtime_ocaml_Runtime[93], _aDS_, _aDR_); + } + } + } + } + } + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _aDj_, taux_francs_vers_euros); + } + function _aC$_(param){ + var + _aDa_ = caml_call3(Runtime_ocaml_Runtime[57], 2000, 7, 1), + _aDb_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aDa_), + _aDc_ = caml_call3(Runtime_ocaml_Runtime[57], 1999, 7, 1), + _aDd_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aDc_), + _aDe_ = caml_call2(Runtime_ocaml_Runtime[83], _aDd_, _aDb_), + _aDf_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aDg_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aDf_), + _aDh_ = caml_call2(Runtime_ocaml_Runtime[83], _aDg_, _aDe_); + return caml_call2(Runtime_ocaml_Runtime[29], _z3_, _aDh_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _z4_, [0], _aC$_, _aC__); + }, + _az8_ = + function(param){ + function _aCp_(param){ + switch(zone[0]){ + case 0: + var _aCz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$313); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aCz_)) + var + _aCA_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_167200) + : caml_call1(Runtime_ocaml_Runtime[31], cst_201600); + else{ + var _aCB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$234); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCB_)) + var _aCA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_216700); + else{ + var _aCC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$88); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCC_)) + var + _aCA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_222800); + else{ + var _aCD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$86); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCD_)) + var + _aCA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_229000); + else{ + var _aCE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$88); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCE_)) + var + _aCA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_235100); + else{ + var + _aCF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$134); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCF_)) + var + _aCA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_240200); + else + var + _aCG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$135), + _aCH_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aCG_), + _aCI_ = caml_call1(Runtime_ocaml_Runtime[69], _aCH_), + _aCJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_20900$0), + _aCK_ = caml_call2(Runtime_ocaml_Runtime[104], _aCJ_, _aCI_), + _aCL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_240200$0), + _aCA_ = caml_call2(Runtime_ocaml_Runtime[93], _aCL_, _aCK_); + } + } + } + } + } + break; + case 1: + var _aCM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$314); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aCM_)) + var + _aCA_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_146700) + : caml_call1(Runtime_ocaml_Runtime[31], cst_179800); + else{ + var _aCN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$235); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCN_)) + var _aCA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_194700); + else{ + var _aCO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$89); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCO_)) + var + _aCA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_201500); + else{ + var _aCP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$87); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCP_)) + var + _aCA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_208400); + else{ + var _aCQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$89); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCQ_)) + var + _aCA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_215200); + else{ + var + _aCR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$136); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCR_)) + var + _aCA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_230500); + else + var + _aCS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$137), + _aCT_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aCS_), + _aCU_ = caml_call1(Runtime_ocaml_Runtime[69], _aCT_), + _aCV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_20100$0), + _aCW_ = caml_call2(Runtime_ocaml_Runtime[104], _aCV_, _aCU_), + _aCX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_230500$0), + _aCA_ = caml_call2(Runtime_ocaml_Runtime[93], _aCX_, _aCW_); + } + } + } + } + } + break; + default: + var _aCY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$315); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aCY_)) + var + _aCA_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_137600) + : caml_call1(Runtime_ocaml_Runtime[31], cst_166900); + else{ + var _aCZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$236); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCZ_)) + var _aCA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_182000); + else{ + var _aC0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$90); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aC0_)) + var + _aCA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_189500); + else{ + var _aC1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$88); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aC1_)) + var + _aCA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_197100); + else{ + var _aC2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$90); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aC2_)) + var + _aCA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_204700$0); + else{ + var + _aC3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$138); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aC3_)) + var + _aCA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_219900); + else + var + _aC4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$139), + _aC5_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aC4_), + _aC6_ = caml_call1(Runtime_ocaml_Runtime[69], _aC5_), + _aC7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_19100$0), + _aC8_ = caml_call2(Runtime_ocaml_Runtime[104], _aC7_, _aC6_), + _aC9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_219900$0), + _aCA_ = caml_call2(Runtime_ocaml_Runtime[93], _aC9_, _aC8_); + } + } + } + } + } + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _aCA_, taux_francs_vers_euros); + } + function _aCq_(param){ + var + _aCr_ = caml_call3(Runtime_ocaml_Runtime[57], 1999, 7, 1), + _aCs_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aCr_), + _aCt_ = caml_call3(Runtime_ocaml_Runtime[57], 1998, 7, 1), + _aCu_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aCt_), + _aCv_ = caml_call2(Runtime_ocaml_Runtime[83], _aCu_, _aCs_), + _aCw_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aCx_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aCw_), + _aCy_ = caml_call2(Runtime_ocaml_Runtime[83], _aCx_, _aCv_); + return caml_call2(Runtime_ocaml_Runtime[29], _z5_, _aCy_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _z6_, [0], _aCq_, _aCp_); + }, + _az9_ = + function(param){ + function _aBG_(param){ + switch(zone[0]){ + case 0: + var _aBQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$316); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aBQ_)) + var + _aBR_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_163300) + : caml_call1(Runtime_ocaml_Runtime[31], cst_196900); + else{ + var _aBS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$237); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBS_)) + var _aBR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_211600); + else{ + var _aBT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$91); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBT_)) + var + _aBR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_217600$0); + else{ + var _aBU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$89); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBU_)) + var + _aBR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_223600); + else{ + var _aBV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$91); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBV_)) + var + _aBR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_229600); + else{ + var + _aBW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$140); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBW_)) + var + _aBR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_234600); + else + var + _aBX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$141), + _aBY_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aBX_), + _aBZ_ = caml_call1(Runtime_ocaml_Runtime[69], _aBY_), + _aB0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_20400), + _aB1_ = caml_call2(Runtime_ocaml_Runtime[104], _aB0_, _aBZ_), + _aB2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_234600$0), + _aBR_ = caml_call2(Runtime_ocaml_Runtime[93], _aB2_, _aB1_); + } + } + } + } + } + break; + case 1: + var _aB3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$317); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aB3_)) + var + _aBR_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_143300) + : caml_call1(Runtime_ocaml_Runtime[31], cst_175600); + else{ + var _aB4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$238); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aB4_)) + var _aBR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_190100); + else{ + var _aB5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$92); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aB5_)) + var + _aBR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_196600); + else{ + var _aB6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$90); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aB6_)) + var + _aBR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_203500); + else{ + var _aB7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$92); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aB7_)) + var + _aBR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_210200); + else{ + var + _aB8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$142); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aB8_)) + var + _aBR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_225100); + else + var + _aB9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$143), + _aB__ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aB9_), + _aB$_ = caml_call1(Runtime_ocaml_Runtime[69], _aB__), + _aCa_ = caml_call1(Runtime_ocaml_Runtime[31], cst_19600), + _aCb_ = caml_call2(Runtime_ocaml_Runtime[104], _aCa_, _aB$_), + _aCc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_225100$0), + _aBR_ = caml_call2(Runtime_ocaml_Runtime[93], _aCc_, _aCb_); + } + } + } + } + } + break; + default: + var _aCd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$318); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aCd_)) + var + _aBR_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_134400) + : caml_call1(Runtime_ocaml_Runtime[31], cst_163000$0); + else{ + var _aCe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$239); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCe_)) + var _aBR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_177700); + else{ + var _aCf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$93); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCf_)) + var + _aBR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_185100); + else{ + var _aCg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$91); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCg_)) + var + _aBR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_192500$0); + else{ + var _aCh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$93); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCh_)) + var + _aBR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_199900$0); + else{ + var + _aCi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$144); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCi_)) + var + _aBR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_214700); + else + var + _aCj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$145), + _aCk_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aCj_), + _aCl_ = caml_call1(Runtime_ocaml_Runtime[69], _aCk_), + _aCm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_18700), + _aCn_ = caml_call2(Runtime_ocaml_Runtime[104], _aCm_, _aCl_), + _aCo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_214700$0), + _aBR_ = caml_call2(Runtime_ocaml_Runtime[93], _aCo_, _aCn_); + } + } + } + } + } + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _aBR_, taux_francs_vers_euros); + } + function _aBH_(param){ + var + _aBI_ = caml_call3(Runtime_ocaml_Runtime[57], 1998, 7, 1), + _aBJ_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aBI_), + _aBK_ = caml_call3(Runtime_ocaml_Runtime[57], 1997, 7, 1), + _aBL_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aBK_), + _aBM_ = caml_call2(Runtime_ocaml_Runtime[83], _aBL_, _aBJ_), + _aBN_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aBO_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aBN_), + _aBP_ = caml_call2(Runtime_ocaml_Runtime[83], _aBO_, _aBM_); + return caml_call2(Runtime_ocaml_Runtime[29], _z7_, _aBP_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _z8_, [0], _aBH_, _aBG_); + }, + _az__ = + function(param){ + function _aAX_(param){ + switch(zone[0]){ + case 0: + var _aA7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$319); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aA7_)) + var + _aA8_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_160400) + : caml_call1(Runtime_ocaml_Runtime[31], cst_193400); + else{ + var _aA9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$240); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aA9_)) + var _aA8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_207800); + else{ + var _aA__ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$94); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aA__)) + var + _aA8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_213700); + else{ + var _aA$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$92); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aA$_)) + var + _aA8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_219600); + else{ + var _aBa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$94); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBa_)) + var + _aA8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_225500$0); + else{ + var + _aBb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$146); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBb_)) + var + _aA8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_230500$1); + else + var + _aBc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$147), + _aBd_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aBc_), + _aBe_ = caml_call1(Runtime_ocaml_Runtime[69], _aBd_), + _aBf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_20000), + _aBg_ = caml_call2(Runtime_ocaml_Runtime[104], _aBf_, _aBe_), + _aBh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_230500$2), + _aA8_ = caml_call2(Runtime_ocaml_Runtime[93], _aBh_, _aBg_); + } + } + } + } + } + break; + case 1: + var _aBi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$320); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aBi_)) + var + _aA8_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_140800$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_172500$0); + else{ + var _aBj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$241); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBj_)) + var _aA8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_186700); + else{ + var _aBk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$95); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBk_)) + var + _aA8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_193300); + else{ + var _aBl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$93); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBl_)) + var + _aA8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_199900$1); + else{ + var _aBm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$95); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBm_)) + var + _aA8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_206500); + else{ + var + _aBn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$148); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBn_)) + var + _aA8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_221100); + else + var + _aBo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$149), + _aBp_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aBo_), + _aBq_ = caml_call1(Runtime_ocaml_Runtime[69], _aBp_), + _aBr_ = caml_call1(Runtime_ocaml_Runtime[31], cst_19300$0), + _aBs_ = caml_call2(Runtime_ocaml_Runtime[104], _aBr_, _aBq_), + _aBt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_221100$0), + _aA8_ = caml_call2(Runtime_ocaml_Runtime[93], _aBt_, _aBs_); + } + } + } + } + } + break; + default: + var _aBu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$321); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aBu_)) + var + _aA8_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_132000$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_180100$1); + else{ + var _aBv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$242); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBv_)) + var _aA8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_174500); + else{ + var _aBw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$96); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBw_)) + var + _aA8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_181800$0); + else{ + var _aBx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$94); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBx_)) + var + _aA8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_189100); + else{ + var _aBy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$96); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBy_)) + var + _aA8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_196400); + else{ + var + _aBz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$150); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBz_)) + var + _aA8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_210900); + else + var + _aBA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$151), + _aBB_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aBA_), + _aBC_ = caml_call1(Runtime_ocaml_Runtime[69], _aBB_), + _aBD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_18400), + _aBE_ = caml_call2(Runtime_ocaml_Runtime[104], _aBD_, _aBC_), + _aBF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_210900$0), + _aA8_ = caml_call2(Runtime_ocaml_Runtime[93], _aBF_, _aBE_); + } + } + } + } + } + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _aA8_, taux_francs_vers_euros); + } + function _aAY_(param){ + var + _aAZ_ = caml_call3(Runtime_ocaml_Runtime[57], 1997, 7, 1), + _aA0_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aAZ_), + _aA1_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 7, 1), + _aA2_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aA1_), + _aA3_ = caml_call2(Runtime_ocaml_Runtime[83], _aA2_, _aA0_), + _aA4_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aA5_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aA4_), + _aA6_ = caml_call2(Runtime_ocaml_Runtime[83], _aA5_, _aA3_); + return caml_call2(Runtime_ocaml_Runtime[29], _z9_, _aA6_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _z__, [0], _aAY_, _aAX_); + }, + _az$_ = + [0, + function(param){ + function _aAc_(param){ + switch(zone[0]){ + case 0: + var _aAm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$322); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAm_)) + var + _aAn_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_158700) + : caml_call1(Runtime_ocaml_Runtime[31], cst_191300); + else{ + var _aAo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$243); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAo_)) + var + _aAn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_205500); + else{ + var _aAp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$97); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAp_)) + var + _aAn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_211300); + else{ + var _aAq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$95); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAq_)) + var + _aAn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_217100); + else{ + var _aAr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$97); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAr_)) + var + _aAn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_222900); + else{ + var + _aAs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$152); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAs_)) + var + _aAn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_228000); + else + var + _aAt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$153), + _aAu_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aAt_), + _aAv_ = caml_call1(Runtime_ocaml_Runtime[69], _aAu_), + _aAw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_19800), + _aAx_ = caml_call2(Runtime_ocaml_Runtime[104], _aAw_, _aAv_), + _aAy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_228000$0), + _aAn_ = caml_call2(Runtime_ocaml_Runtime[93], _aAy_, _aAx_); + } + } + } + } + } + break; + case 1: + var _aAz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$323); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAz_)) + var + _aAn_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_139300) + : caml_call1(Runtime_ocaml_Runtime[31], cst_170600); + else{ + var _aAA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$244); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAA_)) + var + _aAn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_184700); + else{ + var _aAB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$98); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAB_)) + var + _aAn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_191200); + else{ + var _aAC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$96); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAC_)) + var + _aAn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_197700$0); + else{ + var _aAD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$98); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAD_)) + var + _aAn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_204200); + else{ + var + _aAE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$154); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAE_)) + var + _aAn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_218700); + else + var + _aAF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$155), + _aAG_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aAF_), + _aAH_ = caml_call1(Runtime_ocaml_Runtime[69], _aAG_), + _aAI_ = caml_call1(Runtime_ocaml_Runtime[31], cst_19100$1), + _aAJ_ = caml_call2(Runtime_ocaml_Runtime[104], _aAI_, _aAH_), + _aAK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_218700$0), + _aAn_ = caml_call2(Runtime_ocaml_Runtime[93], _aAK_, _aAJ_); + } + } + } + } + } + break; + default: + var _aAL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$324); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAL_)) + var + _aAn_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_130600) + : caml_call1(Runtime_ocaml_Runtime[31], cst_158400); + else{ + var _aAM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$245); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAM_)) + var + _aAn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_172600); + else{ + var _aAN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$99); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAN_)) + var + _aAn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_179800$0); + else{ + var _aAO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$97); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAO_)) + var + _aAn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_187000); + else{ + var _aAP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$99); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAP_)) + var + _aAn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_194200); + else{ + var + _aAQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$156); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAQ_)) + var + _aAn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_208600$0); + else + var + _aAR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$157), + _aAS_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aAR_), + _aAT_ = caml_call1(Runtime_ocaml_Runtime[69], _aAS_), + _aAU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_18200), + _aAV_ = caml_call2(Runtime_ocaml_Runtime[104], _aAU_, _aAT_), + _aAW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_208600$1), + _aAn_ = caml_call2(Runtime_ocaml_Runtime[93], _aAW_, _aAV_); + } + } + } + } + } + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _aAn_, taux_francs_vers_euros); + } + function _aAd_(param){ + var + _aAe_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 7, 1), + _aAf_ = + caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aAe_), + _aAg_ = caml_call3(Runtime_ocaml_Runtime[57], 1992, 7, 1), + _aAh_ = + caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aAg_), + _aAi_ = caml_call2(Runtime_ocaml_Runtime[83], _aAh_, _aAf_), + _aAj_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aAk_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aAj_), + _aAl_ = caml_call2(Runtime_ocaml_Runtime[83], _aAk_, _aAi_); + return caml_call2(Runtime_ocaml_Runtime[29], _z$_, _aAl_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Aa_, [0], _aAd_, _aAc_); + }, + _az__, + _az9_, + _az8_, + _az7_, + _az6_, + _az5_, + _az4_, + _az3_, + _az2_, + _az1_, + _az0_, + _azZ_, + _azY_, + _azX_, + _azW_, + _azV_, + _azU_, + _azT_, + _azS_, + _azR_, + _azQ_], + _aAa_ = + caml_call4(Runtime_ocaml_Runtime[63], _Ab_, _az$_, _azP_, _azO_); + return _aAa_; + } + catch(_aAb_){ + var _azN_ = caml_wrap_exception(_aAb_); + if(_azN_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _zu_], 1); + throw caml_maybe_attach_backtrace(_azN_, 0); + } + } + var + calcul_plafond_mensualite_d842 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Ac_, Runtime_ocaml_Runtime[10], _aoW_); + try{ + var + _aoY_ = + function(param){ + function _azd_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _aze_(param){return 0;} + function _azf_(param){ + function _azB_(param){ + var _azI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$325); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _azI_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_5399$5); + var + _azJ_ = + caml_call1(Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _azK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1224$4), + _azL_ = caml_call2(Runtime_ocaml_Runtime[104], _azK_, _azJ_), + _azM_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5399$6); + return caml_call2(Runtime_ocaml_Runtime[93], _azM_, _azL_); + } + function _azC_(param){ + var + _azD_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _azE_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _azD_), + _azF_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _azG_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _azF_), + _azH_ = caml_call2(Runtime_ocaml_Runtime[83], _azG_, _azE_); + return caml_call2(Runtime_ocaml_Runtime[29], _Ae_, _azH_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Af_, [0], _azC_, _azB_); + } + function _azg_(param){ + function _azq_(param){ + var _azx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$326); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _azx_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_5422$5); + var + _azy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1229$4), + _azz_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _azy_, + multiplicateur_majoration_char), + _azA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5422$6); + return caml_call2(Runtime_ocaml_Runtime[93], _azA_, _azz_); + } + function _azr_(param){ + var + _azs_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _azt_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _azs_), + _azu_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _azv_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _azu_), + _azw_ = caml_call2(Runtime_ocaml_Runtime[83], _azv_, _azt_); + return caml_call2(Runtime_ocaml_Runtime[29], _Ag_, _azw_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ah_, [0], _azr_, _azq_); + } + var + _azh_ = + [0, + function(param){ + function _azi_(param){ + var _azm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$327); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _azm_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_5612$5); + var + _azn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1272$4), + _azo_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _azn_, + multiplicateur_majoration_char), + _azp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5612$6); + return caml_call2(Runtime_ocaml_Runtime[93], _azp_, _azo_); + } + function _azj_(param){ + var + _azk_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _azl_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _azk_); + return caml_call2(Runtime_ocaml_Runtime[29], _Ai_, _azl_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Aj_, [0], _azj_, _azi_); + }, + _azg_, + _azf_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ak_, _azh_, _aze_, _azd_); + }, + _aoZ_ = function(param){return 1;}, + _ao0_ = + [0, + function(param){ + function _avl_(param){ + function _ayE_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _ayF_(param){return 0;} + function _ayG_(param){ + function _ay3_(param){ + var + _ay$_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _aza_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1224$5), + _azb_ = caml_call2(Runtime_ocaml_Runtime[104], _aza_, _ay$_), + _azc_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_2699$1) + : caml_call1(Runtime_ocaml_Runtime[31], cst_5399$7); + return caml_call2(Runtime_ocaml_Runtime[93], _azc_, _azb_); + } + function _ay4_(param){ + var + _ay5_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _ay6_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _ay5_), + _ay7_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _ay8_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ay7_), + _ay9_ = caml_call2(Runtime_ocaml_Runtime[83], _ay8_, _ay6_), + _ay__ = + caml_call2(Runtime_ocaml_Runtime[83], _ay9_, copropriete); + return caml_call2(Runtime_ocaml_Runtime[29], _Al_, _ay__); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Am_, [0], _ay4_, _ay3_); + } + function _ayH_(param){ + function _ayR_(param){ + var + _ayZ_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _ay0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1229$5), + _ay1_ = caml_call2(Runtime_ocaml_Runtime[104], _ay0_, _ayZ_), + _ay2_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_2710$1) + : caml_call1(Runtime_ocaml_Runtime[31], cst_5422$7); + return caml_call2(Runtime_ocaml_Runtime[93], _ay2_, _ay1_); + } + function _ayS_(param){ + var + _ayT_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _ayU_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _ayT_), + _ayV_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _ayW_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ayV_), + _ayX_ = caml_call2(Runtime_ocaml_Runtime[83], _ayW_, _ayU_), + _ayY_ = + caml_call2(Runtime_ocaml_Runtime[83], _ayX_, copropriete); + return caml_call2(Runtime_ocaml_Runtime[29], _An_, _ayY_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ao_, [0], _ayS_, _ayR_); + } + var + _ayI_ = + [0, + function(param){ + function _ayJ_(param){ + var + _ayO_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1272$5), + _ayP_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _ayO_, + multiplicateur_majoration_char), + _ayQ_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_2805$1) + : caml_call1(Runtime_ocaml_Runtime[31], cst_5612$7); + return caml_call2(Runtime_ocaml_Runtime[93], _ayQ_, _ayP_); + } + function _ayK_(param){ + var + _ayL_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _ayM_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ayL_), + _ayN_ = + caml_call2(Runtime_ocaml_Runtime[83], _ayM_, copropriete); + return caml_call2(Runtime_ocaml_Runtime[29], _Ap_, _ayN_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Aq_, [0], _ayK_, _ayJ_); + }, + _ayH_, + _ayG_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ar_, _ayI_, _ayF_, _ayE_); + } + function _avm_(param){return 1;} + var + _avn_ = + [0, + function(param){ + function _avo_(param){ + function _aw4_(param){ + throw caml_maybe_attach_backtrace + (Runtime_ocaml_Runtime[2], 1); + } + function _aw5_(param){return 0;} + function _aw6_(param){ + function _ayn_(param){ + var + _ayw_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _ayx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$5), + _ayy_ = caml_call2(Runtime_ocaml_Runtime[104], _ayx_, _ayw_), + _ayz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3614$5), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _ayz_, _ayy_), + _ayA_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$72), + _ayB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$6), + _ayC_ = caml_call2(Runtime_ocaml_Runtime[104], _ayB_, _ayA_), + _ayD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3614$6), + limite = caml_call2(Runtime_ocaml_Runtime[93], _ayD_, _ayC_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _ayo_(param){ + switch(residence[0]){ + case 0: + var _ayp_ = 1; break; + case 1: + var _ayp_ = 0; break; + case 2: + var _ayp_ = 1; break; + case 3: + var _ayp_ = 1; break; + case 4: + var _ayp_ = 1; break; + case 5: + var _ayp_ = 1; break; + case 6: + var _ayp_ = 0; break; + case 7: + var _ayp_ = 0; break; + default: var _ayp_ = 1; + } + var + _ayq_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _ayr_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _ayq_), + _ays_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _ayt_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ays_), + _ayu_ = caml_call2(Runtime_ocaml_Runtime[83], _ayt_, _ayr_), + _ayv_ = caml_call2(Runtime_ocaml_Runtime[83], _ayu_, _ayp_); + return caml_call2(Runtime_ocaml_Runtime[29], _As_, _ayv_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _At_, [0], _ayo_, _ayn_); + } + function _aw7_(param){ + function _ax8_(param){ + var + _ayf_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _ayg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$5), + _ayh_ = caml_call2(Runtime_ocaml_Runtime[104], _ayg_, _ayf_), + _ayi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3625$5), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _ayi_, _ayh_), + _ayj_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$73), + _ayk_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$6), + _ayl_ = caml_call2(Runtime_ocaml_Runtime[104], _ayk_, _ayj_), + _aym_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3625$6), + limite = caml_call2(Runtime_ocaml_Runtime[93], _aym_, _ayl_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _ax9_(param){ + switch(residence[0]){ + case 0: + var _ax__ = 1; break; + case 1: + var _ax__ = 0; break; + case 2: + var _ax__ = 1; break; + case 3: + var _ax__ = 1; break; + case 4: + var _ax__ = 1; break; + case 5: + var _ax__ = 1; break; + case 6: + var _ax__ = 0; break; + case 7: + var _ax__ = 0; break; + default: var _ax__ = 1; + } + var + _ax$_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aya_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _ax$_), + _ayb_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _ayc_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ayb_), + _ayd_ = caml_call2(Runtime_ocaml_Runtime[83], _ayc_, _aya_), + _aye_ = caml_call2(Runtime_ocaml_Runtime[83], _ayd_, _ax__); + return caml_call2(Runtime_ocaml_Runtime[29], _Au_, _aye_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Av_, [0], _ax9_, _ax8_); + } + function _aw8_(param){ + function _axz_(param){ + var + _ax0_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _ax1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$11), + _ax2_ = caml_call2(Runtime_ocaml_Runtime[104], _ax1_, _ax0_), + _ax3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$11), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _ax3_, _ax2_), + _ax4_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$74), + _ax5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$12), + _ax6_ = caml_call2(Runtime_ocaml_Runtime[104], _ax5_, _ax4_), + _ax7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$12), + limite = caml_call2(Runtime_ocaml_Runtime[93], _ax7_, _ax6_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _axA_(param){ + switch(residence[0]){ + case 0: + var _axT_ = 1; break; + case 1: + var _axT_ = 0; break; + case 2: + var _axT_ = 1; break; + case 3: + var _axT_ = 1; break; + case 4: + var _axT_ = 1; break; + case 5: + var _axT_ = 1; break; + case 6: + var _axT_ = 0; break; + case 7: + var _axT_ = 0; break; + default: var _axT_ = 1; + } + var + _axU_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _axV_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _axU_), + _axW_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _axX_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _axW_), + _axY_ = caml_call2(Runtime_ocaml_Runtime[83], _axX_, _axV_), + _axZ_ = caml_call2(Runtime_ocaml_Runtime[83], _axY_, _axT_); + return caml_call2(Runtime_ocaml_Runtime[29], _Aw_, _axZ_); + } + var + _axB_ = + [0, + function(param){ + function _axC_(param){ + var + _axL_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _axM_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$13), + _axN_ = caml_call2(Runtime_ocaml_Runtime[104], _axM_, _axL_), + _axO_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$13), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _axO_, _axN_), + _axP_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$75), + _axQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$14), + _axR_ = caml_call2(Runtime_ocaml_Runtime[104], _axQ_, _axP_), + _axS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$14), + limite = caml_call2(Runtime_ocaml_Runtime[93], _axS_, _axR_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _axD_(param){ + switch(residence[0]){ + case 0: + var _axE_ = 1; break; + case 1: + var _axE_ = 0; break; + case 2: + var _axE_ = 1; break; + case 3: + var _axE_ = 1; break; + case 4: + var _axE_ = 1; break; + case 5: + var _axE_ = 1; break; + case 6: + var _axE_ = 0; break; + case 7: + var _axE_ = 0; break; + default: var _axE_ = 1; + } + var + _axF_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _axG_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _axF_), + _axH_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _axI_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _axH_), + _axJ_ = caml_call2(Runtime_ocaml_Runtime[83], _axI_, _axG_), + _axK_ = caml_call2(Runtime_ocaml_Runtime[83], _axJ_, _axE_); + return caml_call2(Runtime_ocaml_Runtime[29], _Ax_, _axK_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ay_, [0], _axD_, _axC_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Az_, _axB_, _axA_, _axz_); + } + function _aw9_(param){ + function _axi_(param){ + var + _axr_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _axs_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$8), + _axt_ = caml_call2(Runtime_ocaml_Runtime[104], _axs_, _axr_), + _axu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767$8), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _axu_, _axt_), + _axv_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$76), + _axw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$9), + _axx_ = caml_call2(Runtime_ocaml_Runtime[104], _axw_, _axv_), + _axy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767$9), + limite = caml_call2(Runtime_ocaml_Runtime[93], _axy_, _axx_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _axj_(param){ + switch(residence[0]){ + case 0: + var _axk_ = 1; break; + case 1: + var _axk_ = 0; break; + case 2: + var _axk_ = 1; break; + case 3: + var _axk_ = 1; break; + case 4: + var _axk_ = 1; break; + case 5: + var _axk_ = 1; break; + case 6: + var _axk_ = 0; break; + case 7: + var _axk_ = 0; break; + default: var _axk_ = 1; + } + var + _axl_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _axm_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _axl_), + _axn_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _axo_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _axn_), + _axp_ = caml_call2(Runtime_ocaml_Runtime[83], _axo_, _axm_), + _axq_ = caml_call2(Runtime_ocaml_Runtime[83], _axp_, _axk_); + return caml_call2(Runtime_ocaml_Runtime[29], _AA_, _axq_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _AB_, [0], _axj_, _axi_); + } + var + _aw__ = + [0, + function(param){ + function _aw$_(param){ + var + _axf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$10), + _axg_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _axf_, + multiplicateur_majoration_char), + _axh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767$10); + return caml_call2(Runtime_ocaml_Runtime[93], _axh_, _axg_); + } + function _axa_(param){ + switch(residence[0]){ + case 0: + var _axb_ = 1; break; + case 1: + var _axb_ = 0; break; + case 2: + var _axb_ = 1; break; + case 3: + var _axb_ = 1; break; + case 4: + var _axb_ = 1; break; + case 5: + var _axb_ = 1; break; + case 6: + var _axb_ = 0; break; + case 7: + var _axb_ = 0; break; + default: var _axb_ = 1; + } + var + _axc_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _axd_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _axc_), + _axe_ = caml_call2(Runtime_ocaml_Runtime[83], _axd_, _axb_); + return caml_call2(Runtime_ocaml_Runtime[29], _AC_, _axe_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _AD_, [0], _axa_, _aw$_); + }, + _aw9_, + _aw8_, + _aw7_, + _aw6_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _AE_, _aw__, _aw5_, _aw4_); + } + function _avp_(param){return 1;} + var + _avq_ = + [0, + function(param){ + function _avr_(param){ + throw caml_maybe_attach_backtrace + (Runtime_ocaml_Runtime[2], 1); + } + function _avs_(param){return 0;} + function _avt_(param){ + function _awN_(param){ + var + _awW_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _awX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$7), + _awY_ = caml_call2(Runtime_ocaml_Runtime[104], _awX_, _awW_), + _awZ_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1858$1) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3614$8), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _awZ_, _awY_), + _aw0_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$77), + _aw1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$8), + _aw2_ = caml_call2(Runtime_ocaml_Runtime[104], _aw1_, _aw0_), + _aw3_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1858$2) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3614$7), + limite = caml_call2(Runtime_ocaml_Runtime[93], _aw3_, _aw2_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _awO_(param){ + switch(residence[0]){ + case 0: + var _awP_ = 1; break; + case 1: + var _awP_ = 0; break; + case 2: + var _awP_ = 1; break; + case 3: + var _awP_ = 1; break; + case 4: + var _awP_ = 1; break; + case 5: + var _awP_ = 1; break; + case 6: + var _awP_ = 0; break; + case 7: + var _awP_ = 0; break; + default: var _awP_ = 1; + } + var + _awQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _awR_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _awQ_), + _awS_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _awT_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _awS_), + _awU_ = caml_call2(Runtime_ocaml_Runtime[83], _awT_, _awR_), + _awV_ = caml_call2(Runtime_ocaml_Runtime[83], _awU_, _awP_); + return caml_call2(Runtime_ocaml_Runtime[29], _AF_, _awV_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _AG_, [0], _awO_, _awN_); + } + function _avu_(param){ + function _aww_(param){ + var + _awF_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _awG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$7), + _awH_ = caml_call2(Runtime_ocaml_Runtime[104], _awG_, _awF_), + _awI_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1864$1) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3625$8), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _awI_, _awH_), + _awJ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$78), + _awK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$8), + _awL_ = caml_call2(Runtime_ocaml_Runtime[104], _awK_, _awJ_), + _awM_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1864$2) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3625$7), + limite = caml_call2(Runtime_ocaml_Runtime[93], _awM_, _awL_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _awx_(param){ + switch(residence[0]){ + case 0: + var _awy_ = 1; break; + case 1: + var _awy_ = 0; break; + case 2: + var _awy_ = 1; break; + case 3: + var _awy_ = 1; break; + case 4: + var _awy_ = 1; break; + case 5: + var _awy_ = 1; break; + case 6: + var _awy_ = 0; break; + case 7: + var _awy_ = 0; break; + default: var _awy_ = 1; + } + var + _awz_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _awA_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _awz_), + _awB_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _awC_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _awB_), + _awD_ = caml_call2(Runtime_ocaml_Runtime[83], _awC_, _awA_), + _awE_ = caml_call2(Runtime_ocaml_Runtime[83], _awD_, _awy_); + return caml_call2(Runtime_ocaml_Runtime[29], _AH_, _awE_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _AI_, [0], _awx_, _aww_); + } + function _avv_(param){ + function _avZ_(param){ + var + _awo_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _awp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$15), + _awq_ = caml_call2(Runtime_ocaml_Runtime[104], _awp_, _awo_), + _awr_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1872$3) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3640$16), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _awr_, _awq_), + _aws_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$79), + _awt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$16), + _awu_ = caml_call2(Runtime_ocaml_Runtime[104], _awt_, _aws_), + _awv_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1872$4) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3640$15), + limite = caml_call2(Runtime_ocaml_Runtime[93], _awv_, _awu_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _av0_(param){ + switch(residence[0]){ + case 0: + var _awh_ = 1; break; + case 1: + var _awh_ = 0; break; + case 2: + var _awh_ = 1; break; + case 3: + var _awh_ = 1; break; + case 4: + var _awh_ = 1; break; + case 5: + var _awh_ = 1; break; + case 6: + var _awh_ = 0; break; + case 7: + var _awh_ = 0; break; + default: var _awh_ = 1; + } + var + _awi_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _awj_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _awi_), + _awk_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _awl_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _awk_), + _awm_ = caml_call2(Runtime_ocaml_Runtime[83], _awl_, _awj_), + _awn_ = caml_call2(Runtime_ocaml_Runtime[83], _awm_, _awh_); + return caml_call2(Runtime_ocaml_Runtime[29], _AJ_, _awn_); + } + var + _av1_ = + [0, + function(param){ + function _av2_(param){ var - _aHC_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Kx_, - Runtime_ocaml_Runtime[16], - date_calcul), - _aHD_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Ky_, - calcul_plafond_mensualite_d842), - _aHC_), - _aHE_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Kz_, - Runtime_ocaml_Runtime[13], - _aHD_); - return caml_call2(Runtime_ocaml_Runtime[27],_KA_,_aHE_)} - function _aHb_(param) - {var - _aHs_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _aHt_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aHs_), - _aHu_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _aHv_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aHu_), - _aHw_=caml_call2(Runtime_ocaml_Runtime[83],_aHv_,_aHt_); - return caml_call2(Runtime_ocaml_Runtime[29],_KB_,_aHw_)} - var - _aHc_= - [0, - function(param) - {function _aHd_(param) - {if(copropriete) - {var - _aHk_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$13), - _aHl_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _KC_, - Runtime_ocaml_Runtime[16], - date_calcul), - _aHm_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _KD_, - calcul_plafond_mensualite_d842), - _aHl_), - _aHn_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _KE_, - Runtime_ocaml_Runtime[13], - _aHm_), - _aHo_=caml_call2(Runtime_ocaml_Runtime[27],_KF_,_aHn_); - return caml_call2(Runtime_ocaml_Runtime[104],_aHo_,_aHk_)} - var - _aHp_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _KG_, - Runtime_ocaml_Runtime[16], - date_calcul), - _aHq_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _KH_, - calcul_plafond_mensualite_d842), - _aHp_), - _aHr_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _KI_, - Runtime_ocaml_Runtime[13], - _aHq_); - return caml_call2(Runtime_ocaml_Runtime[27],_KJ_,_aHr_)} - function _aHe_(param) - {var - _aHf_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _aHg_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aHf_), - _aHh_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _aHi_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aHh_), - _aHj_=caml_call2(Runtime_ocaml_Runtime[83],_aHi_,_aHg_); - return caml_call2(Runtime_ocaml_Runtime[29],_KK_,_aHj_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_KL_,[0],_aHe_,_aHd_)}]; + _av$_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _awa_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$17), + _awb_ = caml_call2(Runtime_ocaml_Runtime[104], _awa_, _av$_), + _awc_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1872$5) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3640$18), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _awc_, _awb_), + _awd_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$80), + _awe_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$18), + _awf_ = caml_call2(Runtime_ocaml_Runtime[104], _awe_, _awd_), + _awg_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1872$6) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3640$17), + limite = caml_call2(Runtime_ocaml_Runtime[93], _awg_, _awf_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _av3_(param){ + switch(residence[0]){ + case 0: + var _av4_ = 1; break; + case 1: + var _av4_ = 0; break; + case 2: + var _av4_ = 1; break; + case 3: + var _av4_ = 1; break; + case 4: + var _av4_ = 1; break; + case 5: + var _av4_ = 1; break; + case 6: + var _av4_ = 0; break; + case 7: + var _av4_ = 0; break; + default: var _av4_ = 1; + } + var + _av5_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _av6_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _av5_), + _av7_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _av8_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _av7_), + _av9_ = caml_call2(Runtime_ocaml_Runtime[83], _av8_, _av6_), + _av__ = caml_call2(Runtime_ocaml_Runtime[83], _av9_, _av4_); + return caml_call2(Runtime_ocaml_Runtime[29], _AK_, _av__); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _AL_, [0], _av3_, _av2_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _AM_, _av1_, _av0_, _avZ_); + } + function _avw_(param){ + function _avI_(param){ + var + _avR_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _avS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$11), + _avT_ = caml_call2(Runtime_ocaml_Runtime[104], _avS_, _avR_), + _avU_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1938$2) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3767$12), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _avU_, _avT_), + _avV_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$81), + _avW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$12), + _avX_ = caml_call2(Runtime_ocaml_Runtime[104], _avW_, _avV_), + _avY_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1938$3) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3767$11), + limite = caml_call2(Runtime_ocaml_Runtime[93], _avY_, _avX_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _avJ_(param){ + switch(residence[0]){ + case 0: + var _avK_ = 1; break; + case 1: + var _avK_ = 0; break; + case 2: + var _avK_ = 1; break; + case 3: + var _avK_ = 1; break; + case 4: + var _avK_ = 1; break; + case 5: + var _avK_ = 1; break; + case 6: + var _avK_ = 0; break; + case 7: + var _avK_ = 0; break; + default: var _avK_ = 1; + } + var + _avL_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _avM_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _avL_), + _avN_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _avO_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _avN_), + _avP_ = caml_call2(Runtime_ocaml_Runtime[83], _avO_, _avM_), + _avQ_ = caml_call2(Runtime_ocaml_Runtime[83], _avP_, _avK_); + return caml_call2(Runtime_ocaml_Runtime[29], _AN_, _avQ_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _AO_, [0], _avJ_, _avI_); + } + var + _avx_ = + [0, + function(param){ + function _avy_(param){ + var + _avF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$13), + _avG_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _avF_, + multiplicateur_majoration_char), + _avH_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1938$4) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3767$13); + return caml_call2(Runtime_ocaml_Runtime[93], _avH_, _avG_); + } + function _avz_(param){ + switch(residence[0]){ + case 0: + var _avA_ = 1; break; + case 1: + var _avA_ = 0; break; + case 2: + var _avA_ = 1; break; + case 3: + var _avA_ = 1; break; + case 4: + var _avA_ = 1; break; + case 5: + var _avA_ = 1; break; + case 6: + var _avA_ = 0; break; + case 7: + var _avA_ = 0; break; + default: var _avA_ = 1; + } + var + _avB_ = + caml_call2(Runtime_ocaml_Runtime[83], _avA_, copropriete), + _avC_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _avD_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _avC_), + _avE_ = caml_call2(Runtime_ocaml_Runtime[83], _avD_, _avB_); + return caml_call2(Runtime_ocaml_Runtime[29], _AP_, _avE_); + } return caml_call4 - (Runtime_ocaml_Runtime[63],_KM_,_aHc_,_aHb_,_aHa_)}]; + (Runtime_ocaml_Runtime[63], _AQ_, [0], _avz_, _avy_); + }, + _avw_, + _avv_, + _avu_, + _avt_]; return caml_call4 - (Runtime_ocaml_Runtime[63],_KN_,_aG$_,_aG__,_aG9_)}]; + (Runtime_ocaml_Runtime[63], _AR_, _avx_, _avs_, _avr_); + }]; return caml_call4 - (Runtime_ocaml_Runtime[63],_KO_,_aG8_,_aG7_,_aG6_)}], - _aG4_=caml_call4(Runtime_ocaml_Runtime[63],_KP_,_aG3_,_aG2_,_aG1_); - return _aG4_} - catch(_aG5_) - {_aG5_ = caml_wrap_exception(_aG5_); - if(_aG5_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ke_]; - throw _aG5_}} + (Runtime_ocaml_Runtime[63], _AS_, _avq_, _avp_, _avo_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _AT_, _avn_, _avm_, _avl_); + }], + _ao1_ = caml_call4(Runtime_ocaml_Runtime[63], _AU_, _ao0_, _aoZ_, _aoY_); + } + catch(_avk_){ + var _aoX_ = caml_wrap_exception(_avk_); + if(_aoX_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ad_], 1); + throw caml_maybe_attach_backtrace(_aoX_, 0); + } + var + montant_forfaitaire_charges = + caml_call3 + (Runtime_ocaml_Runtime[28], _AV_, Runtime_ocaml_Runtime[13], _ao1_); + try{ + var + _ao3_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _ao4_ = function(param){return 0;}, + _ao5_ = + function(param){ + function _ave_(param){return montant_forfaitaire_d842_12;} + function _avf_(param){ + switch(type_travaux_logement[0]){ + case 0: + var _avg_ = 0; break; + case 1: + var _avg_ = 1; break; + case 2: + var _avg_ = 0; break; + default: var _avg_ = 0; + } + var + _avh_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 9, 30), + _avi_ = + caml_call2 + (Runtime_ocaml_Runtime[125], date_signature_pret, _avh_), + _avj_ = caml_call2(Runtime_ocaml_Runtime[83], _avi_, _avg_); + return caml_call2(Runtime_ocaml_Runtime[29], _AX_, _avj_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _AY_, [0], _avf_, _ave_); + }, + _ao6_ = + [0, + function(param){ + function _au0_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[104], + mensualite_principale, + coefficient_d842_12); + } + function _au1_(param){ + switch(type_travaux_logement[0]){ + case 0: + var _au2_ = 0; break; + case 1: + var _au2_ = 0; break; + case 2: + var _au2_ = 1; break; + default: var _au2_ = 0; + } + switch(type_travaux_logement[0]){ + case 0: + var _au3_ = 1; break; + case 1: + var _au3_ = 0; break; + case 2: + var _au3_ = 0; break; + default: var _au3_ = 0; + } + var _au4_ = caml_call2(Runtime_ocaml_Runtime[84], _au3_, _au2_); + switch(type_travaux_logement[0]){ + case 0: + var _au5_ = 0; break; + case 1: + var _au5_ = 0; break; + case 2: + var _au5_ = 0; break; + default: var _au5_ = 1; + } + var + _au6_ = caml_call2(Runtime_ocaml_Runtime[84], _au5_, _au4_), + _au7_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 9, 30), + _au8_ = + caml_call2 + (Runtime_ocaml_Runtime[125], date_signature_pret, _au7_), + _au9_ = caml_call2(Runtime_ocaml_Runtime[83], _au8_, _au6_), + _au__ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 9, 30), + _au$_ = + caml_call2 + (Runtime_ocaml_Runtime[120], date_signature_pret, _au__), + _ava_ = caml_call3(Runtime_ocaml_Runtime[57], 1992, 9, 30), + _avb_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _ava_), + _avc_ = caml_call2(Runtime_ocaml_Runtime[83], _avb_, _au$_), + _avd_ = caml_call2(Runtime_ocaml_Runtime[84], _avc_, _au9_); + return caml_call2(Runtime_ocaml_Runtime[29], _AZ_, _avd_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _A0_, [0], _au1_, _au0_); + }, + _ao5_], + _ao7_ = caml_call4(Runtime_ocaml_Runtime[63], _A1_, _ao6_, _ao4_, _ao3_); + } + catch(_auZ_){ + var _ao2_ = caml_wrap_exception(_auZ_); + if(_ao2_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _AW_], 1); + throw caml_maybe_attach_backtrace(_ao2_, 0); + } + var + seuil_minimal_ressources_menag = + caml_call3 + (Runtime_ocaml_Runtime[28], _A2_, Runtime_ocaml_Runtime[13], _ao7_); + function _ao8_(aide_finale){ + try{ var - calcul_plafond_mensualite_d842$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_KQ_,Runtime_ocaml_Runtime[10],_aEj_); - try - {var - _aEk_= - function(param) - {if - (caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage_arrondies_ba, - seuil_minimal_ressources_menag)) - {var - _aGV_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$12), - _aGW_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_01$0), - _aGX_=caml_call1(Runtime_ocaml_Runtime[31],cst_4999), - _aGY_= - caml_call2 - (Runtime_ocaml_Runtime[93], - seuil_minimal_ressources_menag, - _aGX_), - _aGZ_=caml_call2(Runtime_ocaml_Runtime[104],_aGY_,_aGW_), - _aG0_=caml_call1(Runtime_ocaml_Runtime[77],_aGZ_); - return caml_call2(Runtime_ocaml_Runtime[104],_aG0_,_aGV_)} - return ressources_menage_arrondies_ba}, - _aEl_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_KS_,1)}, - _aEm_= - [0, - function(param) - {function _aGT_(param){return ressources_menage_arrondies_ba} - function _aGU_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_KT_,situation_r822_11_13_17)} - return caml_call4(Runtime_ocaml_Runtime[63],_KU_,[0],_aGU_,_aGT_)}], - _aEn_=caml_call4(Runtime_ocaml_Runtime[63],_KV_,_aEm_,_aEl_,_aEk_)} - catch(_aGS_) - {_aGS_ = caml_wrap_exception(_aGS_); - if(_aGS_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_KR_]; - throw _aGS_} + _auT_ = + function(param){ + var + _auX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$328), + _auY_ = + caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale, + montant_forfaitaire_d842_6); + return caml_call2(Runtime_ocaml_Runtime[113], _auY_, _auX_) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$329) + : caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale, + montant_forfaitaire_d842_6); + }, + _auU_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _A4_, 1); + }, + _auV_ = caml_call4(Runtime_ocaml_Runtime[63], _A5_, [0], _auU_, _auT_); + return _auV_; + } + catch(_auW_){ + var _auS_ = caml_wrap_exception(_auW_); + if(_auS_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _A3_], 1); + throw caml_maybe_attach_backtrace(_auS_, 0); + } + } + var + traitement_aide_finale_minorat = + caml_call3 + (Runtime_ocaml_Runtime[28], _A6_, Runtime_ocaml_Runtime[10], _ao8_); + function _ao9_(date_calcul, nombre_personnes_a_charge){ + try{ var - ressources_menage_arrondies_se= + _atZ_ = + function(param){ + var + _auP_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _A8_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _auQ_ = + caml_call2 + (calcul_plafond_mensualite_d842, + caml_call3 + (Runtime_ocaml_Runtime[28], + _A9_, + Runtime_ocaml_Runtime[16], + date_calcul), + _auP_), + _auR_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _A__, + Runtime_ocaml_Runtime[13], + _auQ_); + return caml_call2(Runtime_ocaml_Runtime[27], _A$_, _auR_); + }, + _at0_ = + function(param){ + var + _auN_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _auO_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _auN_); + return caml_call2(Runtime_ocaml_Runtime[29], _Ba_, _auO_); + }, + _at1_ = + [0, + function(param){ + function _at4_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _at5_(param){return 0;} + var + _at6_ = + [0, + function(param){ + function _at7_(param){ + if(copropriete){ + var + _auF_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$11), + _auG_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bb_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _auH_ = + caml_call2 + (calcul_plafond_mensualite_d842, + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bc_, + Runtime_ocaml_Runtime[16], + date_calcul), + _auG_), + _auI_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bd_, + Runtime_ocaml_Runtime[13], + _auH_), + _auJ_ = caml_call2(Runtime_ocaml_Runtime[27], _Be_, _auI_); + return caml_call2(Runtime_ocaml_Runtime[104], _auJ_, _auF_); + } + var + _auK_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bf_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _auL_ = + caml_call2 + (calcul_plafond_mensualite_d842, + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bg_, + Runtime_ocaml_Runtime[16], + date_calcul), + _auK_), + _auM_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bh_, + Runtime_ocaml_Runtime[13], + _auL_); + return caml_call2(Runtime_ocaml_Runtime[27], _Bi_, _auM_); + } + function _at8_(param){ + var + _auD_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _auE_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _auD_); + return caml_call2(Runtime_ocaml_Runtime[29], _Bj_, _auE_); + } + var + _at9_ = + [0, + function(param){ + function _at__(param){ + if(copropriete){ + var + _auv_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$12), + _auw_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bk_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _aux_ = + caml_call2 + (calcul_plafond_mensualite_d842, + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bl_, + Runtime_ocaml_Runtime[16], + date_calcul), + _auw_), + _auy_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bm_, + Runtime_ocaml_Runtime[13], + _aux_), + _auz_ = caml_call2(Runtime_ocaml_Runtime[27], _Bn_, _auy_); + return caml_call2(Runtime_ocaml_Runtime[104], _auz_, _auv_); + } + var + _auA_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bo_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _auB_ = + caml_call2 + (calcul_plafond_mensualite_d842, + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bp_, + Runtime_ocaml_Runtime[16], + date_calcul), + _auA_), + _auC_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bq_, + Runtime_ocaml_Runtime[13], + _auB_); + return caml_call2(Runtime_ocaml_Runtime[27], _Br_, _auC_); + } + function _at$_(param){ + var + _auq_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aur_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _auq_), + _aus_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aut_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aus_), + _auu_ = caml_call2(Runtime_ocaml_Runtime[83], _aut_, _aur_); + return caml_call2(Runtime_ocaml_Runtime[29], _Bs_, _auu_); + } + var + _aua_ = + [0, + function(param){ + function _aub_(param){ + if(copropriete){ + var + _aui_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$13), + _auj_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bt_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _auk_ = + caml_call2 + (calcul_plafond_mensualite_d842, + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bu_, + Runtime_ocaml_Runtime[16], + date_calcul), + _auj_), + _aul_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bv_, + Runtime_ocaml_Runtime[13], + _auk_), + _aum_ = caml_call2(Runtime_ocaml_Runtime[27], _Bw_, _aul_); + return caml_call2(Runtime_ocaml_Runtime[104], _aum_, _aui_); + } + var + _aun_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bx_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _auo_ = + caml_call2 + (calcul_plafond_mensualite_d842, + caml_call3 + (Runtime_ocaml_Runtime[28], + _By_, + Runtime_ocaml_Runtime[16], + date_calcul), + _aun_), + _aup_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bz_, + Runtime_ocaml_Runtime[13], + _auo_); + return caml_call2(Runtime_ocaml_Runtime[27], _BA_, _aup_); + } + function _auc_(param){ + var + _aud_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aue_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aud_), + _auf_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _aug_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _auf_), + _auh_ = caml_call2(Runtime_ocaml_Runtime[83], _aug_, _aue_); + return caml_call2(Runtime_ocaml_Runtime[29], _BB_, _auh_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _BC_, [0], _auc_, _aub_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _BD_, _aua_, _at$_, _at__); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _BE_, _at9_, _at8_, _at7_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _BF_, _at6_, _at5_, _at4_); + }], + _at2_ = + caml_call4(Runtime_ocaml_Runtime[63], _BG_, _at1_, _at0_, _atZ_); + return _at2_; + } + catch(_at3_){ + var _atY_ = caml_wrap_exception(_at3_); + if(_atY_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _A7_], 1); + throw caml_maybe_attach_backtrace(_atY_, 0); + } + } + var + calcul_plafond_mensualite_d842$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _BH_, Runtime_ocaml_Runtime[10], _ao9_); + function _ao__(allocation_mensuelle){ + try{ + var + _atT_ = + function(param){ + var + _atX_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + charges_mensuelles_pret, + montant_forfaitaire_charges); + return caml_call2 + (Runtime_ocaml_Runtime[98], _atX_, allocation_mensuelle); + }, + _atU_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _BJ_, 1); + }, + _atV_ = caml_call4(Runtime_ocaml_Runtime[63], _BK_, [0], _atU_, _atT_); + return _atV_; + } + catch(_atW_){ + var _atS_ = caml_wrap_exception(_atW_); + if(_atS_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _BI_], 1); + throw caml_maybe_attach_backtrace(_atS_, 0); + } + } + var + depense_nette_minimale = + caml_call3 + (Runtime_ocaml_Runtime[28], _BL_, Runtime_ocaml_Runtime[10], _ao__); + try{ + var + _apa_ = + function(param){ + if + (! + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage_arrondies_ba, + seuil_minimal_ressources_menag)) + return ressources_menage_arrondies_ba; + var + _atM_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$12), + _atN_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_01$0), + _atO_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4999), + _atP_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + seuil_minimal_ressources_menag, + _atO_), + _atQ_ = caml_call2(Runtime_ocaml_Runtime[104], _atP_, _atN_), + _atR_ = caml_call1(Runtime_ocaml_Runtime[77], _atQ_); + return caml_call2(Runtime_ocaml_Runtime[104], _atR_, _atM_); + }, + _apb_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _BN_, 1); + }, + _apc_ = + [0, + function(param){ + function _atK_(param){return ressources_menage_arrondies_ba;} + function _atL_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _BO_, situation_r822_11_13_17); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _BP_, [0], _atL_, _atK_); + }], + _apd_ = caml_call4(Runtime_ocaml_Runtime[63], _BQ_, _apc_, _apb_, _apa_); + } + catch(_atJ_){ + var _ao$_ = caml_wrap_exception(_atJ_); + if(_ao$_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _BM_], 1); + throw caml_maybe_attach_backtrace(_ao$_, 0); + } + var + ressources_menage_arrondies_se = + caml_call3 + (Runtime_ocaml_Runtime[28], _BR_, Runtime_ocaml_Runtime[13], _apd_); + function _ape_(date_calcul, nombre_personnes_a_charge){ + try{ + var + _ar9_ = + function(param){ + var + _atG_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _BT_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _atH_ = + caml_call2 + (calcul_plafond_mensualite_d842$0, + caml_call3 + (Runtime_ocaml_Runtime[28], + _BU_, + Runtime_ocaml_Runtime[16], + date_calcul), + _atG_), + _atI_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _BV_, + Runtime_ocaml_Runtime[13], + _atH_); + return caml_call2(Runtime_ocaml_Runtime[27], _BW_, _atI_); + }, + _ar__ = + function(param){ + var + _atE_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _atF_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _atE_); + return caml_call2(Runtime_ocaml_Runtime[29], _BX_, _atF_); + }, + _ar$_ = + [0, + function(param){ + function _asc_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _asd_(param){return 0;} + var + _ase_ = + [0, + function(param){ + function _asf_(param){ + var _atw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$82); + if + (caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _atw_)){ + var + _atx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$83), + _aty_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _BY_, + Runtime_ocaml_Runtime[14], + _atx_), + _atz_ = + caml_call2 + (calcul_plafond_mensualite_d842$0, + caml_call3 + (Runtime_ocaml_Runtime[28], + _BZ_, + Runtime_ocaml_Runtime[16], + date_calcul), + _aty_), + _atA_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _B0_, + Runtime_ocaml_Runtime[13], + _atz_); + return caml_call2(Runtime_ocaml_Runtime[27], _B1_, _atA_); + } + var + _atB_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _B2_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _atC_ = + caml_call2 + (calcul_plafond_mensualite_d842$0, + caml_call3 + (Runtime_ocaml_Runtime[28], + _B3_, + Runtime_ocaml_Runtime[16], + date_calcul), + _atB_), + _atD_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _B4_, + Runtime_ocaml_Runtime[13], + _atC_); + return caml_call2(Runtime_ocaml_Runtime[27], _B5_, _atD_); + } + function _asg_(param){ + switch(residence[0]){ + case 0: + var _atp_ = 1; break; + case 1: + var _atp_ = 0; break; + case 2: + var _atp_ = 1; break; + case 3: + var _atp_ = 1; break; + case 4: + var _atp_ = 1; break; + case 5: + var _atp_ = 1; break; + case 6: + var _atp_ = 0; break; + case 7: + var _atp_ = 0; break; + default: var _atp_ = 1; + } + var + _atq_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _atr_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _atq_), + _ats_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _att_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ats_), + _atu_ = caml_call2(Runtime_ocaml_Runtime[83], _att_, _atr_), + _atv_ = caml_call2(Runtime_ocaml_Runtime[83], _atu_, _atp_); + return caml_call2(Runtime_ocaml_Runtime[29], _B6_, _atv_); + } + var + _ash_ = + [0, + function(param){ + function _asi_(param){ + var _ath_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$84); + if + (caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _ath_)){ + var + _ati_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$85), + _atj_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _B7_, + Runtime_ocaml_Runtime[14], + _ati_), + _atk_ = + caml_call2 + (calcul_plafond_mensualite_d842$0, + caml_call3 + (Runtime_ocaml_Runtime[28], + _B8_, + Runtime_ocaml_Runtime[16], + date_calcul), + _atj_), + _atl_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _B9_, + Runtime_ocaml_Runtime[13], + _atk_); + return caml_call2(Runtime_ocaml_Runtime[27], _B__, _atl_); + } + var + _atm_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _B$_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _atn_ = + caml_call2 + (calcul_plafond_mensualite_d842$0, + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ca_, + Runtime_ocaml_Runtime[16], + date_calcul), + _atm_), + _ato_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Cb_, + Runtime_ocaml_Runtime[13], + _atn_); + return caml_call2(Runtime_ocaml_Runtime[27], _Cc_, _ato_); + } + function _asj_(param){ + switch(residence[0]){ + case 0: + var _ata_ = 1; break; + case 1: + var _ata_ = 0; break; + case 2: + var _ata_ = 1; break; + case 3: + var _ata_ = 1; break; + case 4: + var _ata_ = 1; break; + case 5: + var _ata_ = 1; break; + case 6: + var _ata_ = 0; break; + case 7: + var _ata_ = 0; break; + default: var _ata_ = 1; + } + var + _atb_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _atc_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _atb_), + _atd_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _ate_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _atd_), + _atf_ = caml_call2(Runtime_ocaml_Runtime[83], _ate_, _atc_), + _atg_ = caml_call2(Runtime_ocaml_Runtime[83], _atf_, _ata_); + return caml_call2(Runtime_ocaml_Runtime[29], _Cd_, _atg_); + } + var + _ask_ = + [0, + function(param){ + function _asl_(param){ + var _as4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$86); + if + (caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _as4_)){ + var + _as5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$87), + _as6_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ce_, + Runtime_ocaml_Runtime[14], + _as5_), + _as7_ = + caml_call2 + (calcul_plafond_mensualite_d842$0, + caml_call3 + (Runtime_ocaml_Runtime[28], + _Cf_, + Runtime_ocaml_Runtime[16], + date_calcul), + _as6_), + _as8_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Cg_, + Runtime_ocaml_Runtime[13], + _as7_); + return caml_call2(Runtime_ocaml_Runtime[27], _Ch_, _as8_); + } + var + _as9_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ci_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _as__ = + caml_call2 + (calcul_plafond_mensualite_d842$0, + caml_call3 + (Runtime_ocaml_Runtime[28], + _Cj_, + Runtime_ocaml_Runtime[16], + date_calcul), + _as9_), + _as$_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ck_, + Runtime_ocaml_Runtime[13], + _as__); + return caml_call2(Runtime_ocaml_Runtime[27], _Cl_, _as$_); + } + function _asm_(param){ + switch(residence[0]){ + case 0: + var _asX_ = 1; break; + case 1: + var _asX_ = 0; break; + case 2: + var _asX_ = 1; break; + case 3: + var _asX_ = 1; break; + case 4: + var _asX_ = 1; break; + case 5: + var _asX_ = 1; break; + case 6: + var _asX_ = 0; break; + case 7: + var _asX_ = 0; break; + default: var _asX_ = 1; + } + var + _asY_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _asZ_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _asY_), + _as0_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _as1_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _as0_), + _as2_ = caml_call2(Runtime_ocaml_Runtime[83], _as1_, _asZ_), + _as3_ = caml_call2(Runtime_ocaml_Runtime[83], _as2_, _asX_); + return caml_call2(Runtime_ocaml_Runtime[29], _Cm_, _as3_); + } + var + _asn_ = + [0, + function(param){ + function _aso_(param){ + var _asP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$88); + if + (caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _asP_)){ + var + _asQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$89), + _asR_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Cn_, + Runtime_ocaml_Runtime[14], + _asQ_), + _asS_ = + caml_call2 + (calcul_plafond_mensualite_d842$0, + caml_call3 + (Runtime_ocaml_Runtime[28], + _Co_, + Runtime_ocaml_Runtime[16], + date_calcul), + _asR_), + _asT_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Cp_, + Runtime_ocaml_Runtime[13], + _asS_); + return caml_call2(Runtime_ocaml_Runtime[27], _Cq_, _asT_); + } + var + _asU_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Cr_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _asV_ = + caml_call2 + (calcul_plafond_mensualite_d842$0, + caml_call3 + (Runtime_ocaml_Runtime[28], + _Cs_, + Runtime_ocaml_Runtime[16], + date_calcul), + _asU_), + _asW_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ct_, + Runtime_ocaml_Runtime[13], + _asV_); + return caml_call2(Runtime_ocaml_Runtime[27], _Cu_, _asW_); + } + function _asp_(param){ + switch(residence[0]){ + case 0: + var _asI_ = 1; break; + case 1: + var _asI_ = 0; break; + case 2: + var _asI_ = 1; break; + case 3: + var _asI_ = 1; break; + case 4: + var _asI_ = 1; break; + case 5: + var _asI_ = 1; break; + case 6: + var _asI_ = 0; break; + case 7: + var _asI_ = 0; break; + default: var _asI_ = 1; + } + var + _asJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _asK_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _asJ_), + _asL_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _asM_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _asL_), + _asN_ = caml_call2(Runtime_ocaml_Runtime[83], _asM_, _asK_), + _asO_ = caml_call2(Runtime_ocaml_Runtime[83], _asN_, _asI_); + return caml_call2(Runtime_ocaml_Runtime[29], _Cv_, _asO_); + } + var + _asq_ = + [0, + function(param){ + function _asr_(param){ + var _asA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$90); + if + (caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _asA_)){ + var + _asB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$91), + _asC_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Cw_, + Runtime_ocaml_Runtime[14], + _asB_), + _asD_ = + caml_call2 + (calcul_plafond_mensualite_d842$0, + caml_call3 + (Runtime_ocaml_Runtime[28], + _Cx_, + Runtime_ocaml_Runtime[16], + date_calcul), + _asC_), + _asE_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Cy_, + Runtime_ocaml_Runtime[13], + _asD_); + return caml_call2(Runtime_ocaml_Runtime[27], _Cz_, _asE_); + } + var + _asF_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _CA_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _asG_ = + caml_call2 + (calcul_plafond_mensualite_d842$0, + caml_call3 + (Runtime_ocaml_Runtime[28], + _CB_, + Runtime_ocaml_Runtime[16], + date_calcul), + _asF_), + _asH_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _CC_, + Runtime_ocaml_Runtime[13], + _asG_); + return caml_call2(Runtime_ocaml_Runtime[27], _CD_, _asH_); + } + function _ass_(param){ + switch(residence[0]){ + case 0: + var _ast_ = 1; break; + case 1: + var _ast_ = 0; break; + case 2: + var _ast_ = 1; break; + case 3: + var _ast_ = 1; break; + case 4: + var _ast_ = 1; break; + case 5: + var _ast_ = 1; break; + case 6: + var _ast_ = 0; break; + case 7: + var _ast_ = 0; break; + default: var _ast_ = 1; + } + var + _asu_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _asv_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _asu_), + _asw_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _asx_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _asw_), + _asy_ = caml_call2(Runtime_ocaml_Runtime[83], _asx_, _asv_), + _asz_ = caml_call2(Runtime_ocaml_Runtime[83], _asy_, _ast_); + return caml_call2(Runtime_ocaml_Runtime[29], _CE_, _asz_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _CF_, [0], _ass_, _asr_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _CG_, _asq_, _asp_, _aso_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _CH_, _asn_, _asm_, _asl_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _CI_, _ask_, _asj_, _asi_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _CJ_, _ash_, _asg_, _asf_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _CK_, _ase_, _asd_, _asc_); + }], + _asa_ = + caml_call4(Runtime_ocaml_Runtime[63], _CL_, _ar$_, _ar__, _ar9_); + return _asa_; + } + catch(_asb_){ + var _ar8_ = caml_wrap_exception(_asb_); + if(_ar8_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _BS_], 1); + throw caml_maybe_attach_backtrace(_ar8_, 0); + } + } + var + calcul_plafond_mensualite_d842$1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _CM_, Runtime_ocaml_Runtime[10], _ape_); + try{ + var + _apg_ = function(param){return date_courante;}, + _aph_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _CO_, 1); + }, + _api_ = caml_call4(Runtime_ocaml_Runtime[63], _CP_, [0], _aph_, _apg_), + calcul_equivalence_loyer_minim$0 = caml_call3 - (Runtime_ocaml_Runtime[28],_KW_,Runtime_ocaml_Runtime[13],_aEn_); - try - {var - _aEo_= - function(param) - {var - _aGP_= + (Runtime_ocaml_Runtime[28], _CQ_, Runtime_ocaml_Runtime[16], _api_); + } + catch(_ar7_){ + var _apf_ = caml_wrap_exception(_ar7_); + if(_apf_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _CN_], 1); + throw caml_maybe_attach_backtrace(_apf_, 0); + } + try{ + var + _apk_ = function(param){return ressources_menage_arrondies_se;}, + _apl_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _CS_, 1); + }, + _apm_ = caml_call4(Runtime_ocaml_Runtime[63], _CT_, [0], _apl_, _apk_), + calcul_equivalence_loyer_minim$1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _CU_, Runtime_ocaml_Runtime[13], _apm_); + } + catch(_ar6_){ + var _apj_ = caml_wrap_exception(_ar6_); + if(_apj_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _CR_], 1); + throw caml_maybe_attach_backtrace(_apj_, 0); + } + try{ + var + _apo_ = function(param){return 1;}, + _app_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _CW_, 1); + }, + _apq_ = caml_call4(Runtime_ocaml_Runtime[63], _CX_, [0], _app_, _apo_), + calcul_equivalence_loyer_minim$2 = + caml_call3 + (Runtime_ocaml_Runtime[28], _CY_, Runtime_ocaml_Runtime[12], _apq_); + } + catch(_ar5_){ + var _apn_ = caml_wrap_exception(_ar5_); + if(_apn_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _CV_], 1); + throw caml_maybe_attach_backtrace(_apn_, 0); + } + try{ + var + _aps_ = function(param){return calcul_nombre_parts_dot_n_nomb;}, + _apt_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _C0_, 1); + }, + _apu_ = caml_call4(Runtime_ocaml_Runtime[63], _C1_, [0], _apt_, _aps_), + calcul_equivalence_loyer_minim$3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _C2_, Runtime_ocaml_Runtime[15], _apu_); + } + catch(_ar4_){ + var _apr_ = caml_wrap_exception(_ar4_); + if(_apr_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _CZ_], 1); + throw caml_maybe_attach_backtrace(_apr_, 0); + } + var + _apv_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _C3_, calcul_equivalence_loyer_minim), + [0, + calcul_equivalence_loyer_minim$0, + calcul_equivalence_loyer_minim$1, + calcul_equivalence_loyer_minim$2, + calcul_equivalence_loyer_minim$3]), + result$1 = caml_call2(Runtime_ocaml_Runtime[27], _C4_, _apv_), + calcul_equivalence_loyer_minim$4 = result$1[1]; + try{ + var + _apx_ = function(param){return _C6_;}, + _apy_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _C7_, 1); + }, + _apz_ = caml_call4(Runtime_ocaml_Runtime[63], _C8_, [0], _apy_, _apx_), + calcul_apl_logement_foyer_dot_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _C9_, embed_type_logement_foyer, _apz_); + } + catch(_ar3_){ + var _apw_ = caml_wrap_exception(_ar3_); + if(_apw_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _C5_], 1); + throw caml_maybe_attach_backtrace(_apw_, 0); + } + try{ + var + _apB_ = + function(param){ + return caml_call3(Runtime_ocaml_Runtime[57], 1970, 1, 1); + }, + _apC_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _C$_, 1); + }, + _apD_ = caml_call4(Runtime_ocaml_Runtime[63], _Da_, [0], _apC_, _apB_), + calcul_apl_logement_foyer_dot_$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Db_, Runtime_ocaml_Runtime[16], _apD_); + } + catch(_ar2_){ + var _apA_ = caml_wrap_exception(_ar2_); + if(_apA_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _C__], 1); + throw caml_maybe_attach_backtrace(_apA_, 0); + } + try{ + var + _apF_ = function(param){return ressources_menage_arrondies_se;}, + _apG_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Dd_, 1); + }, + _apH_ = caml_call4(Runtime_ocaml_Runtime[63], _De_, [0], _apG_, _apF_), + calcul_apl_logement_foyer_dot_$1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Df_, Runtime_ocaml_Runtime[13], _apH_); + } + catch(_ar1_){ + var _apE_ = caml_wrap_exception(_ar1_); + if(_apE_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Dc_], 1); + throw caml_maybe_attach_backtrace(_apE_, 0); + } + try{ + var + _apJ_ = function(param){return nombre_personnes_a_charge;}, + _apK_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Dh_, 1); + }, + _apL_ = caml_call4(Runtime_ocaml_Runtime[63], _Di_, [0], _apK_, _apJ_), + calcul_apl_logement_foyer_dot_$2 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Dj_, Runtime_ocaml_Runtime[14], _apL_); + } + catch(_ar0_){ + var _apI_ = caml_wrap_exception(_ar0_); + if(_apI_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Dg_], 1); + throw caml_maybe_attach_backtrace(_apI_, 0); + } + try{ + var + _apN_ = function(param){return situation_familiale_calcul_apl;}, + _apO_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Dl_, 1); + }, + _apP_ = caml_call4(Runtime_ocaml_Runtime[63], _Dm_, [0], _apO_, _apN_), + calcul_apl_logement_foyer_dot_$3 = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Dn_, + embed_situation_familiale_calc, + _apP_); + } + catch(_arZ_){ + var _apM_ = caml_wrap_exception(_arZ_); + if(_apM_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Dk_], 1); + throw caml_maybe_attach_backtrace(_apM_, 0); + } + try{ + var + _apR_ = function(param){return zone;}, + _apS_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Dp_, 1); + }, + _apT_ = caml_call4(Runtime_ocaml_Runtime[63], _Dq_, [0], _apS_, _apR_), + calcul_apl_logement_foyer_dot_$4 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Dr_, embed_zone_d_habitation, _apT_); + } + catch(_arY_){ + var _apQ_ = caml_wrap_exception(_arY_); + if(_apQ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Do_], 1); + throw caml_maybe_attach_backtrace(_apQ_, 0); + } + try{ + var + _apV_ = function(param){return date_courante;}, + _apW_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Dt_, 1); + }, + _apX_ = caml_call4(Runtime_ocaml_Runtime[63], _Du_, [0], _apW_, _apV_), + calcul_apl_logement_foyer_dot_$5 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Dv_, Runtime_ocaml_Runtime[16], _apX_); + } + catch(_arX_){ + var _apU_ = caml_wrap_exception(_arX_); + if(_apU_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ds_], 1); + throw caml_maybe_attach_backtrace(_apU_, 0); + } + try{ + var + _apZ_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$330); + }, + _ap0_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Dx_, 1); + }, + _ap1_ = caml_call4(Runtime_ocaml_Runtime[63], _Dy_, [0], _ap0_, _apZ_), + calcul_apl_logement_foyer_dot_$6 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Dz_, Runtime_ocaml_Runtime[13], _ap1_); + } + catch(_arW_){ + var _apY_ = caml_wrap_exception(_arW_); + if(_apY_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Dw_], 1); + throw caml_maybe_attach_backtrace(_apY_, 0); + } + try{ + var + _ap3_ = function(param){return residence;}, + _ap4_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _DB_, 1); + }, + _ap5_ = caml_call4(Runtime_ocaml_Runtime[63], _DC_, [0], _ap4_, _ap3_), + calcul_apl_logement_foyer_dot_$7 = + caml_call3(Runtime_ocaml_Runtime[28], _DD_, embed_collectivite, _ap5_); + } + catch(_arV_){ + var _ap2_ = caml_wrap_exception(_arV_); + if(_ap2_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _DA_], 1); + throw caml_maybe_attach_backtrace(_ap2_, 0); + } + function calcul_apl_logement_foyer_dot_$8(param){ + function _arS_(param){return 1;} + function _arT_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _DE_, 1); + } + var + _arU_ = caml_call4(Runtime_ocaml_Runtime[63], _DF_, [0], _arT_, _arS_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _DG_, + Runtime_ocaml_Runtime[12], + _arU_); + } + function calcul_apl_logement_foyer_dot_$9(param){ + function _arH_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _arI_(param){return 0;} + var + _arJ_ = + [0, + function(param){ + function _arL_(param){return 1;} + function _arM_(param){ + switch(residence[0]){ + case 0: + var _arR_ = 1; break; + case 1: + var _arR_ = 1; break; + case 2: + var _arR_ = 1; break; + case 3: + var _arR_ = 1; break; + case 4: + var _arR_ = 0; break; + case 5: + var _arR_ = 0; break; + case 6: + var _arR_ = 0; break; + case 7: + var _arR_ = 0; break; + default: var _arR_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _DH_, _arR_); + } + var + _arN_ = + [0, + function(param){ + function _arO_(param){return 1;} + function _arP_(param){ + switch(residence[0]){ + case 0: + var _arQ_ = 0; break; + case 1: + var _arQ_ = 0; break; + case 2: + var _arQ_ = 0; break; + case 3: + var _arQ_ = 0; break; + case 4: + var _arQ_ = 1; break; + case 5: + var _arQ_ = 1; break; + case 6: + var _arQ_ = 0; break; + case 7: + var _arQ_ = 0; break; + default: var _arQ_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _DI_, _arQ_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _DJ_, [0], _arP_, _arO_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _DK_, _arN_, _arM_, _arL_); + }], + _arK_ = caml_call4(Runtime_ocaml_Runtime[63], _DL_, _arJ_, _arI_, _arH_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _DM_, + Runtime_ocaml_Runtime[12], + _arK_); + } + function calcul_apl_logement_foyer_dot_$10(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + var + _ap6_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _DN_, calcul_aide_personnalisee_loge$0), + [0, + calcul_apl_logement_foyer_dot_, + calcul_apl_logement_foyer_dot_$0, + calcul_apl_logement_foyer_dot_$1, + calcul_apl_logement_foyer_dot_$2, + calcul_apl_logement_foyer_dot_$3, + calcul_apl_logement_foyer_dot_$4, + calcul_apl_logement_foyer_dot_$5, + calcul_apl_logement_foyer_dot_$6, + calcul_apl_logement_foyer_dot_$7, + calcul_apl_logement_foyer_dot_$8, + calcul_apl_logement_foyer_dot_$9, + calcul_apl_logement_foyer_dot_$10]), + result$2 = caml_call2(Runtime_ocaml_Runtime[27], _DO_, _ap6_), + calcul_apl_logement_foyer_dot_$11 = result$2[7]; + try{ + var + _ap8_ = function(param){return montant_forfaitaire_d842_11;}, + _ap9_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _DQ_, 1); + }, + _ap__ = + [0, + function(param){ + function _arF_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[104], + ressources_menage_arrondies_se, + coefficient_d842_11); + } + function _arG_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _DR_, condition_d842_11_3); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _DS_, [0], _arG_, _arF_); + }], + _ap$_ = caml_call4(Runtime_ocaml_Runtime[63], _DT_, _ap__, _ap9_, _ap8_); + } + catch(_arE_){ + var _ap7_ = caml_wrap_exception(_arE_); + if(_ap7_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _DP_], 1); + throw caml_maybe_attach_backtrace(_ap7_, 0); + } + var + seuil_minimal_depense_nette_mi = + caml_call3 + (Runtime_ocaml_Runtime[28], _DU_, Runtime_ocaml_Runtime[13], _ap$_); + try{ + var + _aqb_ = + function(param){ + var + _arB_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _DW_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _arC_ = + caml_call2 + (calcul_plafond_mensualite_d842$1, caml_call3 (Runtime_ocaml_Runtime[28], - _KY_, + _DX_, Runtime_ocaml_Runtime[16], date_signature_pret), - _aGQ_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _KZ_, - calcul_plafond_mensualite_d842$0), - _aGP_), - _aGR_= + _arB_), + _arD_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _DY_, + Runtime_ocaml_Runtime[13], + _arC_); + return caml_call2(Runtime_ocaml_Runtime[27], _DZ_, _arD_); + }, + _aqc_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _D0_, 1); + }, + _aqd_ = + [0, + function(param){ + function _art_(param){ + var + _arv_ = caml_call3 (Runtime_ocaml_Runtime[28], - _K0_, - Runtime_ocaml_Runtime[13], - _aGQ_); - return caml_call2(Runtime_ocaml_Runtime[27],_K1_,_aGR_)}, - _aEp_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_K2_,1)}, - _aEq_= - [0, - function(param) - {function _aGH_(param) - {var - _aGJ_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _K3_, - Runtime_ocaml_Runtime[16], - date_signature_pret), - _aGK_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _K4_, - calcul_plafond_mensualite_d842$0), - _aGJ_), - _aGL_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _K5_, - Runtime_ocaml_Runtime[13], - _aGK_), - plafond_signature= - caml_call2(Runtime_ocaml_Runtime[27],_K6_,_aGL_), - _aGM_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _K7_, - Runtime_ocaml_Runtime[16], - date_entree_logement), - _aGN_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _K8_, - calcul_plafond_mensualite_d842$0), - _aGM_), - _aGO_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _K9_, - Runtime_ocaml_Runtime[13], - _aGN_), - plafond_entree= - caml_call2(Runtime_ocaml_Runtime[27],_K__,_aGO_); - return caml_call2 - (Runtime_ocaml_Runtime[113], - plafond_signature, - plafond_entree) - ?plafond_entree - :plafond_signature} - function _aGI_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29], - _K$_, - local_habite_premiere_fois_ben)} - return caml_call4(Runtime_ocaml_Runtime[63],_La_,[0],_aGI_,_aGH_)}], - _aEr_=caml_call4(Runtime_ocaml_Runtime[63],_Lb_,_aEq_,_aEp_,_aEo_)} - catch(_aGG_) - {_aGG_ = caml_wrap_exception(_aGG_); - if(_aGG_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_KX_]; - throw _aGG_} - var - plafond_mensualite_d842_6= - caml_call3 - (Runtime_ocaml_Runtime[28],_Lc_,Runtime_ocaml_Runtime[13],_aEr_); - try - {var - _aEs_=function(param){return date_courante}, - _aEt_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Le_,1)}, - _aEu_=caml_call4(Runtime_ocaml_Runtime[63],_Lf_,[0],_aEt_,_aEs_), - calcul_equivalence_loyer_minim$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_Lg_,Runtime_ocaml_Runtime[16],_aEu_)} - catch(_aGF_) - {_aGF_ = caml_wrap_exception(_aGF_); - if(_aGF_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ld_]; - throw _aGF_} - try - {var - _aEv_=function(param){return ressources_menage_arrondies_se}, - _aEw_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Li_,1)}, - _aEx_=caml_call4(Runtime_ocaml_Runtime[63],_Lj_,[0],_aEw_,_aEv_), - calcul_equivalence_loyer_minim$1= - caml_call3 - (Runtime_ocaml_Runtime[28],_Lk_,Runtime_ocaml_Runtime[13],_aEx_)} - catch(_aGE_) - {_aGE_ = caml_wrap_exception(_aGE_); - if(_aGE_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Lh_]; - throw _aGE_} - try - {var - _aEy_=function(param){return 1}, - _aEz_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Lm_,1)}, - _aEA_=caml_call4(Runtime_ocaml_Runtime[63],_Ln_,[0],_aEz_,_aEy_), - calcul_equivalence_loyer_minim$2= - caml_call3 - (Runtime_ocaml_Runtime[28],_Lo_,Runtime_ocaml_Runtime[12],_aEA_)} - catch(_aGD_) - {_aGD_ = caml_wrap_exception(_aGD_); - if(_aGD_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ll_]; - throw _aGD_} - try - {var - _aEB_=function(param){return calcul_nombre_parts_dot_n_nomb}, - _aEC_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Lq_,1)}, - _aED_=caml_call4(Runtime_ocaml_Runtime[63],_Lr_,[0],_aEC_,_aEB_), - calcul_equivalence_loyer_minim$3= - caml_call3 - (Runtime_ocaml_Runtime[28],_Ls_,Runtime_ocaml_Runtime[15],_aED_)} - catch(_aGC_) - {_aGC_ = caml_wrap_exception(_aGC_); - if(_aGC_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Lp_]; - throw _aGC_} - var - _aEE_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_Lt_,calcul_equivalence_loyer_minim), - [0, - calcul_equivalence_loyer_minim$0, - calcul_equivalence_loyer_minim$1, - calcul_equivalence_loyer_minim$2, - calcul_equivalence_loyer_minim$3]), - result$1=caml_call2(Runtime_ocaml_Runtime[27],_Lu_,_aEE_), - calcul_equivalence_loyer_minim$4=result$1[1]; - try - {var - _aEF_=function(param){return _Lw_}, - _aEG_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Lx_,1)}, - _aEH_=caml_call4(Runtime_ocaml_Runtime[63],_Ly_,[0],_aEG_,_aEF_), - calcul_apl_logement_foyer_dot_= - caml_call3 - (Runtime_ocaml_Runtime[28],_Lz_,embed_type_logement_foyer,_aEH_)} - catch(_aGB_) - {_aGB_ = caml_wrap_exception(_aGB_); - if(_aGB_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Lv_]; - throw _aGB_} - try - {var - _aEI_= - function(param) - {return caml_call3(Runtime_ocaml_Runtime[57],1970,1,1)}, - _aEJ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_LB_,1)}, - _aEK_=caml_call4(Runtime_ocaml_Runtime[63],_LC_,[0],_aEJ_,_aEI_), - calcul_apl_logement_foyer_dot_$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_LD_,Runtime_ocaml_Runtime[16],_aEK_)} - catch(_aGA_) - {_aGA_ = caml_wrap_exception(_aGA_); - if(_aGA_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_LA_]; - throw _aGA_} - try - {var - _aEL_=function(param){return ressources_menage_arrondies_se}, - _aEM_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_LF_,1)}, - _aEN_=caml_call4(Runtime_ocaml_Runtime[63],_LG_,[0],_aEM_,_aEL_), - calcul_apl_logement_foyer_dot_$1= - caml_call3 - (Runtime_ocaml_Runtime[28],_LH_,Runtime_ocaml_Runtime[13],_aEN_)} - catch(_aGz_) - {_aGz_ = caml_wrap_exception(_aGz_); - if(_aGz_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_LE_]; - throw _aGz_} - try - {var - _aEO_=function(param){return nombre_personnes_a_charge}, - _aEP_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_LJ_,1)}, - _aEQ_=caml_call4(Runtime_ocaml_Runtime[63],_LK_,[0],_aEP_,_aEO_), - calcul_apl_logement_foyer_dot_$2= - caml_call3 - (Runtime_ocaml_Runtime[28],_LL_,Runtime_ocaml_Runtime[14],_aEQ_)} - catch(_aGy_) - {_aGy_ = caml_wrap_exception(_aGy_); - if(_aGy_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_LI_]; - throw _aGy_} - try - {var - _aER_=function(param){return situation_familiale_calcul_apl}, - _aES_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_LN_,1)}, - _aET_=caml_call4(Runtime_ocaml_Runtime[63],_LO_,[0],_aES_,_aER_), - calcul_apl_logement_foyer_dot_$3= - caml_call3 - (Runtime_ocaml_Runtime[28], - _LP_, - embed_situation_familiale_calc, - _aET_)} - catch(_aGx_) - {_aGx_ = caml_wrap_exception(_aGx_); - if(_aGx_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_LM_]; - throw _aGx_} - try - {var - _aEU_=function(param){return zone}, - _aEV_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_LR_,1)}, - _aEW_=caml_call4(Runtime_ocaml_Runtime[63],_LS_,[0],_aEV_,_aEU_), - calcul_apl_logement_foyer_dot_$4= - caml_call3 - (Runtime_ocaml_Runtime[28],_LT_,embed_zone_d_habitation,_aEW_)} - catch(_aGw_) - {_aGw_ = caml_wrap_exception(_aGw_); - if(_aGw_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_LQ_]; - throw _aGw_} - try - {var - _aEX_=function(param){return date_courante}, - _aEY_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_LV_,1)}, - _aEZ_=caml_call4(Runtime_ocaml_Runtime[63],_LW_,[0],_aEY_,_aEX_), - calcul_apl_logement_foyer_dot_$5= - caml_call3 - (Runtime_ocaml_Runtime[28],_LX_,Runtime_ocaml_Runtime[16],_aEZ_)} - catch(_aGv_) - {_aGv_ = caml_wrap_exception(_aGv_); - if(_aGv_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_LU_]; - throw _aGv_} - try - {var - _aE0_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$389)}, - _aE1_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_LZ_,1)}, - _aE2_=caml_call4(Runtime_ocaml_Runtime[63],_L0_,[0],_aE1_,_aE0_), - calcul_apl_logement_foyer_dot_$6= - caml_call3 - (Runtime_ocaml_Runtime[28],_L1_,Runtime_ocaml_Runtime[13],_aE2_)} - catch(_aGu_) - {_aGu_ = caml_wrap_exception(_aGu_); - if(_aGu_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_LY_]; - throw _aGu_} - try - {var - _aE3_=function(param){return residence}, - _aE4_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_L3_,1)}, - _aE5_=caml_call4(Runtime_ocaml_Runtime[63],_L4_,[0],_aE4_,_aE3_), - calcul_apl_logement_foyer_dot_$7= - caml_call3 - (Runtime_ocaml_Runtime[28],_L5_,embed_collectivite$0,_aE5_)} - catch(_aGt_) - {_aGt_ = caml_wrap_exception(_aGt_); - if(_aGt_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_L2_]; - throw _aGt_} - function calcul_apl_logement_foyer_dot_$8(param) - {function _aGq_(param){return 1} - function _aGr_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_L6_,1)} - var _aGs_=caml_call4(Runtime_ocaml_Runtime[63],_L7_,[0],_aGr_,_aGq_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _L8_, - Runtime_ocaml_Runtime[12], - _aGs_)} - function calcul_apl_logement_foyer_dot_$9(param) - {function _aGf_(param){throw Runtime_ocaml_Runtime[2]} - function _aGg_(param){return 0} - var - _aGh_= - [0, - function(param) - {function _aGj_(param){return 1} - function _aGk_(param) - {switch(residence[0]) - {case 0:var _aGp_=1;break; - case 1:var _aGp_=1;break; - case 2:var _aGp_=1;break; - case 3:var _aGp_=1;break; - case 4:var _aGp_=0;break; - case 5:var _aGp_=0;break; - case 6:var _aGp_=0;break; - case 7:var _aGp_=0;break; - default:var _aGp_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_L9_,_aGp_)} - var - _aGl_= - [0, - function(param) - {function _aGm_(param){return 1} - function _aGn_(param) - {switch(residence[0]) - {case 0:var _aGo_=0;break; - case 1:var _aGo_=0;break; - case 2:var _aGo_=0;break; - case 3:var _aGo_=0;break; - case 4:var _aGo_=1;break; - case 5:var _aGo_=1;break; - case 6:var _aGo_=0;break; - case 7:var _aGo_=0;break; - default:var _aGo_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_L__,_aGo_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_L$_,[0],_aGn_,_aGm_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ma_,_aGl_,_aGk_,_aGj_)}], - _aGi_=caml_call4(Runtime_ocaml_Runtime[63],_Mb_,_aGh_,_aGg_,_aGf_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _Mc_, - Runtime_ocaml_Runtime[12], - _aGi_)} - function calcul_apl_logement_foyer_dot_$10(param) - {throw Runtime_ocaml_Runtime[2]} - var - _aE6_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_Md_,calcul_aide_personnalisee_loge$0), - [0, - calcul_apl_logement_foyer_dot_, - calcul_apl_logement_foyer_dot_$0, - calcul_apl_logement_foyer_dot_$1, - calcul_apl_logement_foyer_dot_$2, - calcul_apl_logement_foyer_dot_$3, - calcul_apl_logement_foyer_dot_$4, - calcul_apl_logement_foyer_dot_$5, - calcul_apl_logement_foyer_dot_$6, - calcul_apl_logement_foyer_dot_$7, - calcul_apl_logement_foyer_dot_$8, - calcul_apl_logement_foyer_dot_$9, - calcul_apl_logement_foyer_dot_$10]), - result$2=caml_call2(Runtime_ocaml_Runtime[27],_Me_,_aE6_), - calcul_apl_logement_foyer_dot_$11=result$2[7]; - try - {var - _aE7_=function(param){return montant_forfaitaire_d842_11}, - _aE8_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Mg_,1)}, - _aE9_= - [0, - function(param) - {function _aGd_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[104], - ressources_menage_arrondies_se, - coefficient_d842_11)} - function _aGe_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_Mh_,condition_d842_11_3)} - return caml_call4(Runtime_ocaml_Runtime[63],_Mi_,[0],_aGe_,_aGd_)}], - _aE__=caml_call4(Runtime_ocaml_Runtime[63],_Mj_,_aE9_,_aE8_,_aE7_)} - catch(_aGc_) - {_aGc_ = caml_wrap_exception(_aGc_); - if(_aGc_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Mf_]; - throw _aGc_} - var - seuil_minimal_depense_nette_mi= - caml_call3 - (Runtime_ocaml_Runtime[28],_Mk_,Runtime_ocaml_Runtime[13],_aE__); - try - {var - _aE$_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[123], - mensualite_principale, - plafond_mensualite_d842_6) - ?plafond_mensualite_d842_6 - :mensualite_principale}, - _aFa_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Mm_,1)}, - _aFb_=caml_call4(Runtime_ocaml_Runtime[63],_Mn_,[0],_aFa_,_aE$_)} - catch(_aGb_) - {_aGb_ = caml_wrap_exception(_aGb_); - if(_aGb_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ml_]; - throw _aGb_} - var - mensualite_eligible= - caml_call3 - (Runtime_ocaml_Runtime[28],_Mo_,Runtime_ocaml_Runtime[13],_aFb_); - try - {var - _aFc_=function(param){return calcul_equivalence_loyer_minim$4}, - _aFd_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Mq_,1)}, - _aFe_=caml_call4(Runtime_ocaml_Runtime[63],_Mr_,[0],_aFd_,_aFc_)} - catch(_aGa_) - {_aGa_ = caml_wrap_exception(_aGa_); - if(_aGa_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Mp_]; - throw _aGa_} - var - mensualite_minimale= - caml_call3 - (Runtime_ocaml_Runtime[28],_Ms_,Runtime_ocaml_Runtime[13],_aFe_); - try - {var - _aFf_=function(param){return calcul_apl_logement_foyer_dot_$11}, - _aFg_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Mu_,1)}, - _aFh_=caml_call4(Runtime_ocaml_Runtime[63],_Mv_,[0],_aFg_,_aFf_)} - catch(_aF$_) - {_aF$_ = caml_wrap_exception(_aF$_); - if(_aF$_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Mt_]; - throw _aF$_} - var - coefficient_prise_en_charge= - caml_call3 - (Runtime_ocaml_Runtime[28],_Mw_,Runtime_ocaml_Runtime[15],_aFh_); - function _aFi_(allocation_mensuelle) - {try - {var - _aF4_= - function(param) - {var - _aF8_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _My_, - Runtime_ocaml_Runtime[13], - allocation_mensuelle), - _aF9_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_Mz_,depense_nette_minimale), - _aF8_), - _aF__= - caml_call3 - (Runtime_ocaml_Runtime[28], - _MA_, - Runtime_ocaml_Runtime[13], - _aF9_), - depense_nette_minimale$0= - caml_call2(Runtime_ocaml_Runtime[27],_MB_,_aF__); - return caml_call2 - (Runtime_ocaml_Runtime[113], - depense_nette_minimale$0, - seuil_minimal_depense_nette_mi) - ?caml_call2 - (Runtime_ocaml_Runtime[98], - seuil_minimal_depense_nette_mi, - depense_nette_minimale$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$390)}, - _aF5_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_MC_,1)}, - _aF6_=caml_call4(Runtime_ocaml_Runtime[63],_MD_,[0],_aF5_,_aF4_); - return _aF6_} - catch(_aF7_) - {_aF7_ = caml_wrap_exception(_aF7_); - if(_aF7_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Mx_]; - throw _aF7_}} - var - abattement_depense_nette_minim= - caml_call3 - (Runtime_ocaml_Runtime[28],_ME_,Runtime_ocaml_Runtime[10],_aFi_); - try - {var - _aFj_= - function(param) - {var - _aF2_= + _D1_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _arw_ = caml_call2 - (Runtime_ocaml_Runtime[93], - mensualite_eligible, - montant_forfaitaire_charges), - _aF3_= - caml_call2(Runtime_ocaml_Runtime[98],_aF2_,mensualite_minimale); - return caml_call2 - (Runtime_ocaml_Runtime[104], - _aF3_, - coefficient_prise_en_charge)}, - _aFk_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_MG_,1)}, - _aFl_=caml_call4(Runtime_ocaml_Runtime[63],_MH_,[0],_aFk_,_aFj_)} - catch(_aF1_) - {_aF1_ = caml_wrap_exception(_aF1_); - if(_aF1_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_MF_]; - throw _aF1_} + (calcul_plafond_mensualite_d842$1, + caml_call3 + (Runtime_ocaml_Runtime[28], + _D2_, + Runtime_ocaml_Runtime[16], + date_signature_pret), + _arv_), + _arx_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _D3_, + Runtime_ocaml_Runtime[13], + _arw_), + plafond_signature = + caml_call2(Runtime_ocaml_Runtime[27], _D4_, _arx_), + _ary_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _D5_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _arz_ = + caml_call2 + (calcul_plafond_mensualite_d842$1, + caml_call3 + (Runtime_ocaml_Runtime[28], + _D6_, + Runtime_ocaml_Runtime[16], + date_entree_logement), + _ary_), + _arA_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _D7_, + Runtime_ocaml_Runtime[13], + _arz_), + plafond_entree = + caml_call2(Runtime_ocaml_Runtime[27], _D8_, _arA_); + return caml_call2 + (Runtime_ocaml_Runtime[113], + plafond_signature, + plafond_entree) + ? plafond_entree + : plafond_signature; + } + function _aru_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], + _D9_, + local_habite_premiere_fois_ben); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _D__, [0], _aru_, _art_); + }], + _aqe_ = caml_call4(Runtime_ocaml_Runtime[63], _D$_, _aqd_, _aqc_, _aqb_); + } + catch(_ars_){ + var _aqa_ = caml_wrap_exception(_ars_); + if(_aqa_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _DV_], 1); + throw caml_maybe_attach_backtrace(_aqa_, 0); + } + var + plafond_mensualite_d842_6 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Ea_, Runtime_ocaml_Runtime[13], _aqe_); + try{ + var + _aqg_ = function(param){return calcul_equivalence_loyer_minim$4;}, + _aqh_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Ec_, 1); + }, + _aqi_ = caml_call4(Runtime_ocaml_Runtime[63], _Ed_, [0], _aqh_, _aqg_); + } + catch(_arr_){ + var _aqf_ = caml_wrap_exception(_arr_); + if(_aqf_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Eb_], 1); + throw caml_maybe_attach_backtrace(_aqf_, 0); + } + var + mensualite_minimale = + caml_call3 + (Runtime_ocaml_Runtime[28], _Ee_, Runtime_ocaml_Runtime[13], _aqi_); + try{ + var + _aqk_ = function(param){return calcul_apl_logement_foyer_dot_$11;}, + _aql_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Eg_, 1); + }, + _aqm_ = caml_call4(Runtime_ocaml_Runtime[63], _Eh_, [0], _aql_, _aqk_); + } + catch(_arq_){ + var _aqj_ = caml_wrap_exception(_arq_); + if(_aqj_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ef_], 1); + throw caml_maybe_attach_backtrace(_aqj_, 0); + } + var + coefficient_prise_en_charge = + caml_call3 + (Runtime_ocaml_Runtime[28], _Ei_, Runtime_ocaml_Runtime[15], _aqm_); + function _aqn_(allocation_mensuelle){ + try{ var - aide_finale_formule= - caml_call3 - (Runtime_ocaml_Runtime[28],_MI_,Runtime_ocaml_Runtime[13],_aFl_); - function _aFm_(aide_finale) - {try - {var - _aFR_= - function(param) - {var - _aFV_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _MK_, - Runtime_ocaml_Runtime[13], - aide_finale), - _aFW_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _ML_, - traitement_aide_finale_minorat), - _aFV_), - _aFX_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _MM_, - Runtime_ocaml_Runtime[13], - _aFW_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_MN_,_aFX_), - _aFY_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _MO_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _aFZ_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _MP_, - abattement_depense_nette_minim), - _aFY_), - _aF0_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _MQ_, - Runtime_ocaml_Runtime[13], - _aFZ_), - abattement=caml_call2(Runtime_ocaml_Runtime[27],_MR_,_aF0_); - return caml_call2 - (Runtime_ocaml_Runtime[113],aide_finale$0,abattement) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$391) - :caml_call2 - (Runtime_ocaml_Runtime[98],aide_finale$0,abattement)}, - _aFS_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_MS_,1)}, - _aFT_=caml_call4(Runtime_ocaml_Runtime[63],_MT_,[0],_aFS_,_aFR_); - return _aFT_} - catch(_aFU_) - {_aFU_ = caml_wrap_exception(_aFU_); - if(_aFU_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_MJ_]; - throw _aFU_}} + _arj_ = + function(param){ + var + _arn_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ek_, + Runtime_ocaml_Runtime[13], + allocation_mensuelle), + _aro_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _El_, depense_nette_minimale), + _arn_), + _arp_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Em_, + Runtime_ocaml_Runtime[13], + _aro_), + depense_nette_minimale$0 = + caml_call2(Runtime_ocaml_Runtime[27], _En_, _arp_); + return caml_call2 + (Runtime_ocaml_Runtime[113], + depense_nette_minimale$0, + seuil_minimal_depense_nette_mi) + ? caml_call2 + (Runtime_ocaml_Runtime[98], + seuil_minimal_depense_nette_mi, + depense_nette_minimale$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$331); + }, + _ark_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Eo_, 1); + }, + _arl_ = caml_call4(Runtime_ocaml_Runtime[63], _Ep_, [0], _ark_, _arj_); + return _arl_; + } + catch(_arm_){ + var _ari_ = caml_wrap_exception(_arm_); + if(_ari_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ej_], 1); + throw caml_maybe_attach_backtrace(_ari_, 0); + } + } + var + abattement_depense_nette_minim = + caml_call3 + (Runtime_ocaml_Runtime[28], _Eq_, Runtime_ocaml_Runtime[10], _aqn_); + try{ + var + _aqp_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[123], + mensualite_principale, + plafond_mensualite_d842_6) + ? plafond_mensualite_d842_6 + : mensualite_principale; + }, + _aqq_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Es_, 1); + }, + _aqr_ = caml_call4(Runtime_ocaml_Runtime[63], _Et_, [0], _aqq_, _aqp_); + } + catch(_arh_){ + var _aqo_ = caml_wrap_exception(_arh_); + if(_aqo_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Er_], 1); + throw caml_maybe_attach_backtrace(_aqo_, 0); + } + var + mensualite_eligible = + caml_call3 + (Runtime_ocaml_Runtime[28], _Eu_, Runtime_ocaml_Runtime[13], _aqr_); + function _aqs_(aide_finale){ + try{ var - traitement_aide_finale_depense= - caml_call3 - (Runtime_ocaml_Runtime[28],_MU_,Runtime_ocaml_Runtime[10],_aFm_); - function _aFn_(aide_finale) - {try - {var - _aFC_= - function(param) - {var - _aFG_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _MW_, - Runtime_ocaml_Runtime[13], - aide_finale), - _aFH_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _MX_, - traitement_aide_finale_depense), - _aFG_), - _aFI_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _MY_, - Runtime_ocaml_Runtime[13], - _aFH_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_MZ_,_aFI_), - _aFJ_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _M0_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _aFK_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _M1_, - contributions_sociales_dot_mon), - _aFJ_), - _aFL_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _M2_, - Runtime_ocaml_Runtime[13], - _aFK_), - crds=caml_call2(Runtime_ocaml_Runtime[27],_M3_,_aFL_), - _aFM_=caml_call1(Runtime_ocaml_Runtime[31],cst_50$3), - _aFN_=caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,crds), - _aFO_=caml_call2(Runtime_ocaml_Runtime[98],_aFN_,_aFM_), - aide_finale_moins_crds_arrondi= - caml_call1(Runtime_ocaml_Runtime[77],_aFO_), - _aFP_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$392), - _aFQ_= - caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds); - return caml_call2(Runtime_ocaml_Runtime[128],_aFQ_,_aFP_) - ?caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds) - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$393)}, - _aFD_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_M4_,1)}, - _aFE_=caml_call4(Runtime_ocaml_Runtime[63],_M5_,[0],_aFD_,_aFC_); - return _aFE_} - catch(_aFF_) - {_aFF_ = caml_wrap_exception(_aFF_); - if(_aFF_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_MV_]; - throw _aFF_}} + _aq9_ = + function(param){ + var + _arb_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ew_, + Runtime_ocaml_Runtime[13], + aide_finale), + _arc_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Ex_, + traitement_aide_finale_minorat), + _arb_), + _ard_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ey_, + Runtime_ocaml_Runtime[13], + _arc_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _Ez_, _ard_), + _are_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _EA_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _arf_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _EB_, + abattement_depense_nette_minim), + _are_), + _arg_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _EC_, + Runtime_ocaml_Runtime[13], + _arf_), + abattement = caml_call2(Runtime_ocaml_Runtime[27], _ED_, _arg_); + return caml_call2 + (Runtime_ocaml_Runtime[113], aide_finale$0, abattement) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$332) + : caml_call2 + (Runtime_ocaml_Runtime[98], aide_finale$0, abattement); + }, + _aq__ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _EE_, 1); + }, + _aq$_ = caml_call4(Runtime_ocaml_Runtime[63], _EF_, [0], _aq__, _aq9_); + return _aq$_; + } + catch(_ara_){ + var _aq8_ = caml_wrap_exception(_ara_); + if(_aq8_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ev_], 1); + throw caml_maybe_attach_backtrace(_aq8_, 0); + } + } + var + traitement_aide_finale_depense = + caml_call3 + (Runtime_ocaml_Runtime[28], _EG_, Runtime_ocaml_Runtime[10], _aqs_); + try{ + var + _aqu_ = + function(param){ + var + _aq6_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + mensualite_eligible, + montant_forfaitaire_charges), + _aq7_ = + caml_call2(Runtime_ocaml_Runtime[98], _aq6_, mensualite_minimale); + return caml_call2 + (Runtime_ocaml_Runtime[104], + _aq7_, + coefficient_prise_en_charge); + }, + _aqv_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _EI_, 1); + }, + _aqw_ = caml_call4(Runtime_ocaml_Runtime[63], _EJ_, [0], _aqv_, _aqu_); + } + catch(_aq5_){ + var _aqt_ = caml_wrap_exception(_aq5_); + if(_aqt_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _EH_], 1); + throw caml_maybe_attach_backtrace(_aqt_, 0); + } + var + aide_finale_formule = + caml_call3 + (Runtime_ocaml_Runtime[28], _EK_, Runtime_ocaml_Runtime[13], _aqw_); + function _aqx_(aide_finale){ + try{ var - traitement_aide_finale_contrib= - caml_call3 - (Runtime_ocaml_Runtime[28],_M6_,Runtime_ocaml_Runtime[10],_aFn_); - function _aFo_(aide_finale) - {try - {var - _aFv_= - function(param) - {var - _aFz_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _M8_, - Runtime_ocaml_Runtime[13], - aide_finale), - _aFA_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _M9_, - traitement_aide_finale_contrib), - _aFz_), - _aFB_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _M__, - Runtime_ocaml_Runtime[13], - _aFA_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_M$_,_aFB_); - return caml_call2 - (Runtime_ocaml_Runtime[113], - aide_finale$0, - montant_minimal_aide_d842_6) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$394) - :aide_finale$0}, - _aFw_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Na_,1)}, - _aFx_=caml_call4(Runtime_ocaml_Runtime[63],_Nb_,[0],_aFw_,_aFv_); - return _aFx_} - catch(_aFy_) - {_aFy_ = caml_wrap_exception(_aFy_); - if(_aFy_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_M7_]; - throw _aFy_}} + _aqQ_ = + function(param){ + var + _aqU_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _EM_, + Runtime_ocaml_Runtime[13], + aide_finale), + _aqV_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _EN_, + traitement_aide_finale_depense), + _aqU_), + _aqW_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _EO_, + Runtime_ocaml_Runtime[13], + _aqV_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _EP_, _aqW_), + _aqX_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _EQ_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _aqY_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _ER_, + contributions_sociales_dot_mon), + _aqX_), + _aqZ_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _ES_, + Runtime_ocaml_Runtime[13], + _aqY_), + crds = caml_call2(Runtime_ocaml_Runtime[27], _ET_, _aqZ_), + _aq0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_50$3), + _aq1_ = caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, crds), + _aq2_ = caml_call2(Runtime_ocaml_Runtime[98], _aq1_, _aq0_), + aide_finale_moins_crds_arrondi = + caml_call1(Runtime_ocaml_Runtime[77], _aq2_), + _aq3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$333), + _aq4_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds); + return caml_call2(Runtime_ocaml_Runtime[128], _aq4_, _aq3_) + ? caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds) + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$334); + }, + _aqR_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _EU_, 1); + }, + _aqS_ = caml_call4(Runtime_ocaml_Runtime[63], _EV_, [0], _aqR_, _aqQ_); + return _aqS_; + } + catch(_aqT_){ + var _aqP_ = caml_wrap_exception(_aqT_); + if(_aqP_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _EL_], 1); + throw caml_maybe_attach_backtrace(_aqP_, 0); + } + } + var + traitement_aide_finale_contrib = + caml_call3 + (Runtime_ocaml_Runtime[28], _EW_, Runtime_ocaml_Runtime[10], _aqx_); + function _aqy_(aide_finale){ + try{ var - traitement_aide_finale_montant= - caml_call3 - (Runtime_ocaml_Runtime[28],_Nc_,Runtime_ocaml_Runtime[10],_aFo_); - try - {var - _aFp_=caml_call3(Runtime_ocaml_Runtime[57],1992,9,30), - _aFq_= - caml_call2(Runtime_ocaml_Runtime[130],date_signature_pret,_aFp_)} - catch(_aFu_) - {_aFu_ = caml_wrap_exception(_aFu_); - if(_aFu_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Nd_]; - throw _aFu_} - if(_aFq_) - {try - {var - _aFr_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _aFs_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aFr_)} - catch(_aFt_) - {_aFt_ = caml_wrap_exception(_aFt_); - if(_aFt_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ne_]; - throw _aFt_} - if(_aFs_) - return [0,aide_finale_formule,traitement_aide_finale_montant]; - throw [0,Runtime_ocaml_Runtime[3],_Nf_]} - throw [0,Runtime_ocaml_Runtime[3],_Ng_]} - function calcul_aide_personnalisee_loge$2 - (calcul_aide_personnalisee_loge$2) - {var - mode_occupation=calcul_aide_personnalisee_loge$2[1], - type_aide=calcul_aide_personnalisee_loge$2[2], - ressources_menage_sans_arrondi=calcul_aide_personnalisee_loge$2[3], - situation_familiale=calcul_aide_personnalisee_loge$2[4], - nombre_personnes_a_charge=calcul_aide_personnalisee_loge$2[5], - zone=calcul_aide_personnalisee_loge$2[6], - date_courante=calcul_aide_personnalisee_loge$2[7], - residence=calcul_aide_personnalisee_loge$2[8]; - try - {var - _aCx_= - function(param) - {switch(mode_occupation[0]) - {case 0:var location=mode_occupation[1];return [0,location]; - case 1: - var logementfoyer=mode_occupation[1];return [2,logementfoyer]; - case 2: - var proprietaire=mode_occupation[1];return [1,proprietaire]; - case 3:var location$0=mode_occupation[1];return [0,location$0]; - default: - var proprietaire$0=mode_occupation[1];return [1,proprietaire$0]}}, - _aCy_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ni_,1)}, - _aCz_=caml_call4(Runtime_ocaml_Runtime[63],_Nj_,[0],_aCy_,_aCx_)} - catch(_aDx_) - {_aDx_ = caml_wrap_exception(_aDx_); - if(_aDx_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Nh_]; - throw _aDx_} - var - categorie_calcul_apl= - caml_call3 - (Runtime_ocaml_Runtime[28],_Nk_,embed_categorie_calcul_a_p_l,_aCz_); - try - {var - _aCA_= - function(param) - {return arrondi_centaine_superieure(ressources_menage_sans_arrondi)}, - _aCB_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Nm_,1)}, - _aCC_=caml_call4(Runtime_ocaml_Runtime[63],_Nn_,[0],_aCB_,_aCA_)} - catch(_aDw_) - {_aDw_ = caml_wrap_exception(_aDw_); - if(_aDw_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Nl_]; - throw _aDw_} - var - ressources_menage_avec_arrondi= - caml_call3 - (Runtime_ocaml_Runtime[28],_No_,Runtime_ocaml_Runtime[13],_aCC_); - try - {var - _aCD_= - function(param) - {switch(situation_familiale[0]) - {case 0:return _Nq_; - case 1:return _Nr_; - case 2:return _Ns_; - case 3:return _Nt_; - case 4:return _Nu_; - default:return _Nv_}}, - _aCE_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Nw_,1)}, - _aCF_=caml_call4(Runtime_ocaml_Runtime[63],_Nx_,[0],_aCE_,_aCD_)} - catch(_aDv_) - {_aDv_ = caml_wrap_exception(_aDv_); - if(_aDv_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Np_]; - throw _aDv_} - var - situation_familiale_calcul_apl= - caml_call3 - (Runtime_ocaml_Runtime[28],_Ny_,embed_situation_familiale_calc,_aCF_); - try - {var - _aCG_= - function(param) - {switch(categorie_calcul_apl[0]) - {case 0: - var location=categorie_calcul_apl[1],_aC8_=location[7]; - try - {var _aC9_=location[1]; - switch(_aC9_[0]) - {case 0:var bailleur=_aC9_[1],_aC__=bailleur[2];break; - case 1: - var _aC__=caml_call1(Runtime_ocaml_Runtime[31],cst_0$395); - break; - default: - var _aC__=caml_call1(Runtime_ocaml_Runtime[31],cst_0$396)}} - catch(_aDr_) - {_aDr_ = caml_wrap_exception(_aDr_); - if(_aDr_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_NA_]; - throw _aDr_} - var - _aC$_= + _aqI_ = + function(param){ + var + _aqM_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _EY_, + Runtime_ocaml_Runtime[13], + aide_finale), + _aqN_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _EZ_, + traitement_aide_finale_contrib), + _aqM_), + _aqO_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _E0_, + Runtime_ocaml_Runtime[13], + _aqN_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _E1_, _aqO_); + return caml_call2 + (Runtime_ocaml_Runtime[113], + aide_finale$0, + montant_minimal_aide_d842_6) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$335) + : aide_finale$0; + }, + _aqJ_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _E2_, 1); + }, + _aqK_ = caml_call4(Runtime_ocaml_Runtime[63], _E3_, [0], _aqJ_, _aqI_); + return _aqK_; + } + catch(_aqL_){ + var _aqH_ = caml_wrap_exception(_aqL_); + if(_aqH_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _EX_], 1); + throw caml_maybe_attach_backtrace(_aqH_, 0); + } + } + var + traitement_aide_finale_montant = + caml_call3 + (Runtime_ocaml_Runtime[28], _E4_, Runtime_ocaml_Runtime[10], _aqy_); + try{ + var + _aqA_ = caml_call3(Runtime_ocaml_Runtime[57], 1992, 9, 30), + _aqB_ = + caml_call2(Runtime_ocaml_Runtime[130], date_signature_pret, _aqA_); + } + catch(_aqG_){ + var _aqz_ = caml_wrap_exception(_aqG_); + if(_aqz_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _E5_], 1); + throw caml_maybe_attach_backtrace(_aqz_, 0); + } + if(! _aqB_) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _E8_], 1); + try{ + var + _aqD_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aqE_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aqD_); + } + catch(_aqF_){ + var _aqC_ = caml_wrap_exception(_aqF_); + if(_aqC_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _E6_], 1); + throw caml_maybe_attach_backtrace(_aqC_, 0); + } + if(_aqE_) return [0, aide_finale_formule, traitement_aide_finale_montant]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _E7_], 1); + } + function calcul_aide_personnalisee_loge$2(calcul_aide_personnalisee_loge$2){ + var + mode_occupation = calcul_aide_personnalisee_loge$2[1], + type_aide = calcul_aide_personnalisee_loge$2[2], + ressources_menage_sans_arrondi = calcul_aide_personnalisee_loge$2[3], + situation_familiale = calcul_aide_personnalisee_loge$2[4], + nombre_personnes_a_charge = calcul_aide_personnalisee_loge$2[5], + zone = calcul_aide_personnalisee_loge$2[6], + date_courante = calcul_aide_personnalisee_loge$2[7], + residence = calcul_aide_personnalisee_loge$2[8]; + try{ + var + _am1_ = + function(param){ + switch(mode_occupation[0]){ + case 0: + var location = mode_occupation[1]; return [0, location]; + case 1: + var logementfoyer = mode_occupation[1]; return [2, logementfoyer]; + case 2: + var proprietaire = mode_occupation[1]; return [1, proprietaire]; + case 3: + var location$0 = mode_occupation[1]; return [0, location$0]; + default: + var proprietaire$0 = mode_occupation[1]; + return [1, proprietaire$0]; + } + }, + _am2_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _E__, 1); + }, + _am3_ = caml_call4(Runtime_ocaml_Runtime[63], _E$_, [0], _am2_, _am1_); + } + catch(_an7_){ + var _am0_ = caml_wrap_exception(_an7_); + if(_am0_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _E9_], 1); + throw caml_maybe_attach_backtrace(_am0_, 0); + } + var + categorie_calcul_apl = + caml_call3 + (Runtime_ocaml_Runtime[28], _Fa_, embed_categorie_calcul_a_p_l, _am3_); + try{ + var + _am5_ = + function(param){ + return arrondi_centaine_superieure(ressources_menage_sans_arrondi); + }, + _am6_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Fc_, 1); + }, + _am7_ = caml_call4(Runtime_ocaml_Runtime[63], _Fd_, [0], _am6_, _am5_); + } + catch(_an6_){ + var _am4_ = caml_wrap_exception(_an6_); + if(_am4_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Fb_], 1); + throw caml_maybe_attach_backtrace(_am4_, 0); + } + var + ressources_menage_avec_arrondi = + caml_call3 + (Runtime_ocaml_Runtime[28], _Fe_, Runtime_ocaml_Runtime[13], _am7_); + try{ + var + _am9_ = + function(param){ + switch(situation_familiale[0]){ + case 0: + return _Fg_; + case 1: + return _Fh_; + case 2: + return _Fi_; + case 3: + return _Fj_; + case 4: + return _Fk_; + default: return _Fl_; + } + }, + _am__ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Fm_, 1); + }, + _am$_ = caml_call4(Runtime_ocaml_Runtime[63], _Fn_, [0], _am__, _am9_); + } + catch(_an5_){ + var _am8_ = caml_wrap_exception(_an5_); + if(_am8_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ff_], 1); + throw caml_maybe_attach_backtrace(_am8_, 0); + } + var + situation_familiale_calcul_apl = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Fo_, + embed_situation_familiale_calc, + _am$_); + try{ + var + _anb_ = + function(param){ + switch(categorie_calcul_apl[0]){ + case 0: + var location = categorie_calcul_apl[1], _anG_ = location[7]; + try{ + var match = location[1]; + switch(match[0]){ + case 0: + var bailleur = match[1], _anI_ = bailleur[2]; break; + case 1: + var _anI_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$336); + break; + default: + var _anI_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$337); + } + } + catch(_an1_){ + var _anH_ = caml_wrap_exception(_an1_); + if(_anH_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Fq_], 1); + throw caml_maybe_attach_backtrace(_anH_, 0); + } + var + _anJ_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Fr_, + embed_calcul_aide_personnalise$3, + [0, + location[2], + ressources_menage_avec_arrondi, + location[3], + date_courante, + nombre_personnes_a_charge, + situation_familiale_calcul_apl, + zone, + location[4], + location[6], + type_aide, + location[5], + _anI_, + _anG_, + residence]), + result = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Fs_, + calcul_aide_personnalisee_loge), + _anJ_), + _anK_ = + function(param0){ + var + _anY_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ft_, + Runtime_ocaml_Runtime[13], + param0), + _anZ_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _Fu_, result[7]), + _anY_), + _an0_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Fv_, + Runtime_ocaml_Runtime[13], + _anZ_); + return caml_call2(Runtime_ocaml_Runtime[27], _Fw_, _an0_); + }, + result$0 = + [0, + result[1], + result[2], + result[3], + result[4], + result[5], + result[6], + _anK_]; + caml_call2(Runtime_ocaml_Runtime[29], _Fx_, 1); + var + _anL_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Fy_, + embed_calcul_aide_personnalise, + result$0), + traitement_formule = + caml_call2(Runtime_ocaml_Runtime[27], _Fz_, _anL_); + return [0, traitement_formule[6], traitement_formule[7]]; + case 1: + var + proprietaire = categorie_calcul_apl[1], + _anM_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _FA_, + embed_calcul_aide_personnalise$5, + [0, + proprietaire[1], + ressources_menage_avec_arrondi, + nombre_personnes_a_charge, + situation_familiale_calcul_apl, + proprietaire[4], + proprietaire[10][2], + proprietaire[6], + proprietaire[3], + proprietaire[7], + proprietaire[8], + zone, + proprietaire[10][1], + proprietaire[9], + date_courante]), + result$1 = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _FB_, + calcul_aide_personnalisee_loge$1), + _anM_), + _anN_ = + function(param0){ + var + _anV_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _FC_, + Runtime_ocaml_Runtime[13], + param0), + _anW_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _FD_, result$1[5]), + _anV_), + _anX_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _FE_, + Runtime_ocaml_Runtime[13], + _anW_); + return caml_call2(Runtime_ocaml_Runtime[27], _FF_, _anX_); + }, + result$2 = + [0, result$1[1], result$1[2], result$1[3], result$1[4], _anN_]; + caml_call2(Runtime_ocaml_Runtime[29], _FG_, 1); + var + _anO_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _FH_, + embed_calcul_aide_personnalise$1, + result$2), + traitement_formule$0 = + caml_call2(Runtime_ocaml_Runtime[27], _FI_, _anO_); + return [0, traitement_formule$0[4], traitement_formule$0[5]]; + default: + var + logement_foyer = categorie_calcul_apl[1], + _anP_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _anQ_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _anR_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _anS_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _FJ_, + embed_calcul_aide_personnalise$4, + [0, + logement_foyer[1], + logement_foyer[5], + ressources_menage_avec_arrondi, + nombre_personnes_a_charge, + situation_familiale_calcul_apl, + zone, + date_courante, + logement_foyer[7], + residence, + _anR_, + _anQ_, + _anP_]), + result$3 = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _FK_, + calcul_aide_personnalisee_loge$0), + _anS_), + _anT_ = + function(param0){ + var + _an2_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _FL_, + Runtime_ocaml_Runtime[13], + param0), + _an3_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _FM_, result$3[9]), + _an2_), + _an4_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _FN_, + Runtime_ocaml_Runtime[13], + _an3_); + return caml_call2(Runtime_ocaml_Runtime[27], _FO_, _an4_); + }, + result$4 = + [0, + result$3[1], + result$3[2], + result$3[3], + result$3[4], + result$3[5], + result$3[6], + result$3[7], + result$3[8], + _anT_]; + caml_call2(Runtime_ocaml_Runtime[29], _FP_, 1); + var + _anU_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _FQ_, + embed_calcul_aide_personnalise$0, + result$4), + traitement_formule$1 = + caml_call2(Runtime_ocaml_Runtime[27], _FR_, _anU_); + return [0, traitement_formule$1[8], traitement_formule$1[9]]; + } + }, + _anc_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _FS_, 1); + }, + _and_ = + [0, + function(param){ + function _anr_(param){ + switch(categorie_calcul_apl[0]){ + case 0: + return [0, + caml_call1(Runtime_ocaml_Runtime[31], cst_0$338), + traitement_nul_tout_le_temps]; + case 1: + return [0, + caml_call1(Runtime_ocaml_Runtime[31], cst_0$339), + traitement_nul_tout_le_temps]; + default: + var + logement_foyer = categorie_calcul_apl[1], + _anw_ = logement_foyer[10]; + try{ + var _any_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$340); + } + catch(_anF_){ + var _anx_ = caml_wrap_exception(_anF_); + if(_anx_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _FT_], 1); + throw caml_maybe_attach_backtrace(_anx_, 0); + } + var + _anz_ = caml_call3 (Runtime_ocaml_Runtime[28], - _NB_, + _FU_, embed_calcul_aide_personnalise$3, [0, - location[2], + logement_foyer[7], ressources_menage_avec_arrondi, - location[3], + logement_foyer[9], date_courante, nombre_personnes_a_charge, situation_familiale_calcul_apl, zone, - location[4], - location[6], + 1, + 0, type_aide, - location[5], - _aC__, - _aC8_, + 0, + _any_, + _anw_, residence]), - result= + result = caml_call1 (caml_call2 (Runtime_ocaml_Runtime[26], - _NC_, + _FV_, calcul_aide_personnalisee_loge), - _aC$_), - _aDa_= - function(param0) - {var - _aDo_= + _anz_), + _anA_ = + function(param0){ + var + _anC_ = caml_call3 (Runtime_ocaml_Runtime[28], - _ND_, + _FW_, Runtime_ocaml_Runtime[13], param0), - _aDp_= + _anD_ = caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_NE_,result[7]),_aDo_), - _aDq_= + (caml_call2(Runtime_ocaml_Runtime[26], _FX_, result[7]), + _anC_), + _anE_ = caml_call3 (Runtime_ocaml_Runtime[28], - _NF_, + _FY_, Runtime_ocaml_Runtime[13], - _aDp_); - return caml_call2(Runtime_ocaml_Runtime[27],_NG_,_aDq_)}, - result$0= + _anD_); + return caml_call2(Runtime_ocaml_Runtime[27], _FZ_, _anE_); + }, + result$0 = [0, result[1], result[2], @@ -125400,5191 +121784,6355 @@ result[4], result[5], result[6], - _aDa_]; - caml_call2(Runtime_ocaml_Runtime[29],_NH_,1); - var - _aDb_= + _anA_]; + caml_call2(Runtime_ocaml_Runtime[29], _F0_, 1); + var + _anB_ = caml_call3 (Runtime_ocaml_Runtime[28], - _NI_, + _F1_, embed_calcul_aide_personnalise, result$0), - traitement_formule= - caml_call2(Runtime_ocaml_Runtime[27],_NJ_,_aDb_); - return [0,traitement_formule[6],traitement_formule[7]]; - case 1: - var - proprietaire=categorie_calcul_apl[1], - _aDc_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _NK_, - embed_calcul_aide_personnalise$5, - [0, - proprietaire[1], - ressources_menage_avec_arrondi, - nombre_personnes_a_charge, - situation_familiale_calcul_apl, - proprietaire[4], - proprietaire[10][2], - proprietaire[6], - proprietaire[3], - proprietaire[7], - proprietaire[8], - zone, - proprietaire[10][1], - proprietaire[9], - date_courante]), - result$1= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _NL_, - calcul_aide_personnalisee_loge$1), - _aDc_), - _aDd_= - function(param0) - {var - _aDl_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _NM_, - Runtime_ocaml_Runtime[13], - param0), - _aDm_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_NN_,result$1[5]), - _aDl_), - _aDn_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _NO_, - Runtime_ocaml_Runtime[13], - _aDm_); - return caml_call2(Runtime_ocaml_Runtime[27],_NP_,_aDn_)}, - result$2= - [0,result$1[1],result$1[2],result$1[3],result$1[4],_aDd_]; - caml_call2(Runtime_ocaml_Runtime[29],_NQ_,1); - var - _aDe_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _NR_, - embed_calcul_aide_personnalise$1, - result$2), - traitement_formule$0= - caml_call2(Runtime_ocaml_Runtime[27],_NS_,_aDe_); - return [0,traitement_formule$0[4],traitement_formule$0[5]]; - default: - var - logement_foyer=categorie_calcul_apl[1], - _aDf_=function(param){throw Runtime_ocaml_Runtime[2]}, - _aDg_=function(param){throw Runtime_ocaml_Runtime[2]}, - _aDh_=function(param){throw Runtime_ocaml_Runtime[2]}, - _aDi_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _NT_, - embed_calcul_aide_personnalise$4, - [0, - logement_foyer[1], - logement_foyer[5], - ressources_menage_avec_arrondi, - nombre_personnes_a_charge, - situation_familiale_calcul_apl, - zone, - date_courante, - logement_foyer[7], - residence, - _aDh_, - _aDg_, - _aDf_]), - result$3= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _NU_, - calcul_aide_personnalisee_loge$0), - _aDi_), - _aDj_= - function(param0) - {var - _aDs_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _NV_, - Runtime_ocaml_Runtime[13], - param0), - _aDt_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_NW_,result$3[9]), - _aDs_), - _aDu_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _NX_, - Runtime_ocaml_Runtime[13], - _aDt_); - return caml_call2(Runtime_ocaml_Runtime[27],_NY_,_aDu_)}, - result$4= - [0, - result$3[1], - result$3[2], - result$3[3], - result$3[4], - result$3[5], - result$3[6], - result$3[7], - result$3[8], - _aDj_]; - caml_call2(Runtime_ocaml_Runtime[29],_NZ_,1); - var - _aDk_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _N0_, - embed_calcul_aide_personnalise$0, - result$4), - traitement_formule$1= - caml_call2(Runtime_ocaml_Runtime[27],_N1_,_aDk_); - return [0,traitement_formule$1[8],traitement_formule$1[9]]}}, - _aCH_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_N2_,1)}, - _aCI_= - [0, - function(param) - {function _aCU_(param) - {switch(categorie_calcul_apl[0]) - {case 0: - return [0, - caml_call1(Runtime_ocaml_Runtime[31],cst_0$397), - traitement_nul_tout_le_temps]; - case 1: - return [0, - caml_call1(Runtime_ocaml_Runtime[31],cst_0$398), - traitement_nul_tout_le_temps]; - default: - var - logement_foyer=categorie_calcul_apl[1], - _aCZ_=logement_foyer[10]; - try - {var _aC0_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$399)} - catch(_aC7_) - {_aC7_ = caml_wrap_exception(_aC7_); - if(_aC7_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_N3_]; - throw _aC7_} - var - _aC1_= + traitement_formule = + caml_call2(Runtime_ocaml_Runtime[27], _F2_, _anB_); + return [0, traitement_formule[6], traitement_formule[7]]; + } + } + function _ans_(param){ + switch(categorie_calcul_apl[0]){ + case 0: + var _ant_ = 0; break; + case 1: + var _ant_ = 0; break; + default: var _ant_ = 1; + } + switch(residence[0]){ + case 0: + var _anu_ = 0; break; + case 1: + var _anu_ = 0; break; + case 2: + var _anu_ = 0; break; + case 3: + var _anu_ = 0; break; + case 4: + var _anu_ = 0; break; + case 5: + var _anu_ = 0; break; + case 6: + var _anu_ = 0; break; + case 7: + var _anu_ = 1; break; + default: var _anu_ = 0; + } + var _anv_ = caml_call2(Runtime_ocaml_Runtime[83], _anu_, _ant_); + return caml_call2(Runtime_ocaml_Runtime[29], _F3_, _anv_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _F4_, [0], _ans_, _anr_); + }], + _ane_ = caml_call4(Runtime_ocaml_Runtime[63], _F5_, _and_, _anc_, _anb_); + } + catch(_anq_){ + var _ana_ = caml_wrap_exception(_anq_); + if(_ana_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Fp_], 1); + throw caml_maybe_attach_backtrace(_ana_, 0); + } + var + sous_calcul_traitement = + caml_call3 + (Runtime_ocaml_Runtime[28], + _F6_, + embed_traitement_formule_aide_, + _ane_); + function _anf_(arg){ + try{ + var + _anm_ = + function(param){return caml_call1(sous_calcul_traitement[2], arg);}, + _ann_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _F8_, 1); + }, + _ano_ = caml_call4(Runtime_ocaml_Runtime[63], _F9_, [0], _ann_, _anm_); + return _ano_; + } + catch(_anp_){ + var _anl_ = caml_wrap_exception(_anp_); + if(_anl_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _F7_], 1); + throw caml_maybe_attach_backtrace(_anl_, 0); + } + } + var + traitement_aide_finale = + caml_call3 + (Runtime_ocaml_Runtime[28], _F__, Runtime_ocaml_Runtime[10], _anf_); + try{ + var + _anh_ = function(param){return sous_calcul_traitement[1];}, + _ani_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Ga_, 1); + }, + _anj_ = caml_call4(Runtime_ocaml_Runtime[63], _Gb_, [0], _ani_, _anh_); + } + catch(_ank_){ + var _ang_ = caml_wrap_exception(_ank_); + if(_ang_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _F$_], 1); + throw caml_maybe_attach_backtrace(_ang_, 0); + } + var + aide_finale_formule = + caml_call3 + (Runtime_ocaml_Runtime[28], _Gc_, Runtime_ocaml_Runtime[13], _anj_); + return [0, aide_finale_formule, traitement_aide_finale]; + } + function eligibilite_aides_personnelle_(eligibilite_aides_personnelle_){ + var + menage = eligibilite_aides_personnelle_[1], + demandeur = eligibilite_aides_personnelle_[2], + date_courante = eligibilite_aides_personnelle_[3], + condition_logement_residence_p = eligibilite_aides_personnelle_[4], + condition_logement_surface = eligibilite_aides_personnelle_[5], + date_entree_vigueur_differee_c = eligibilite_aides_personnelle_[6]; + function _afL_(pret){ + try{ + var + _amW_ = function(param){return 0;}, + _amX_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Ge_, 1); + }, + _amY_ = caml_call4(Runtime_ocaml_Runtime[63], _Gf_, [0], _amX_, _amW_); + return _amY_; + } + catch(_amZ_){ + var _amV_ = caml_wrap_exception(_amZ_); + if(_amV_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Gd_], 1); + throw caml_maybe_attach_backtrace(_amV_, 0); + } + } + caml_call3 + (Runtime_ocaml_Runtime[28], _Gg_, Runtime_ocaml_Runtime[10], _afL_); + try{ + var + _afN_ = function(param){return 0;}, + _afO_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Gi_, 1); + }, + _afP_ = caml_call4(Runtime_ocaml_Runtime[63], _Gj_, [0], _afO_, _afN_); + } + catch(_amU_){ + var _afM_ = caml_wrap_exception(_amU_); + if(_afM_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Gh_], 1); + throw caml_maybe_attach_backtrace(_afM_, 0); + } + caml_call3 + (Runtime_ocaml_Runtime[28], _Gk_, Runtime_ocaml_Runtime[12], _afP_); + try{ + var + _afR_ = + function(param){ + function _amS_(param){ + return caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1); + } + function _amT_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Gm_, 1); + } + return caml_call4(Runtime_ocaml_Runtime[63], _Gn_, [0], _amT_, _amS_); + }, + _afS_ = function(param){return 1;}, + _afT_ = + [0, + function(param){ + return caml_call1(date_entree_vigueur_differee_c, 0); + }], + _afU_ = caml_call4(Runtime_ocaml_Runtime[63], _Go_, _afT_, _afS_, _afR_); + } + catch(_amR_){ + var _afQ_ = caml_wrap_exception(_amR_); + if(_afQ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Gl_], 1); + throw caml_maybe_attach_backtrace(_afQ_, 0); + } + var + date_entree_vigueur_differee_c$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Gp_, Runtime_ocaml_Runtime[16], _afU_); + try{ + var + _afW_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_1); + }, + _afX_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Gr_, 1); + }, + _afY_ = caml_call4(Runtime_ocaml_Runtime[63], _Gs_, [0], _afX_, _afW_); + } + catch(_amQ_){ + var _afV_ = caml_wrap_exception(_amQ_); + if(_afV_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Gq_], 1); + throw caml_maybe_attach_backtrace(_afV_, 0); + } + var + seuil_l822_3_parts_propriete = + caml_call3 + (Runtime_ocaml_Runtime[28], _Gt_, Runtime_ocaml_Runtime[15], _afY_); + try{ + var + _af0_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_1$0); + }, + _af1_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Gv_, 1); + }, + _af2_ = caml_call4(Runtime_ocaml_Runtime[63], _Gw_, [0], _af1_, _af0_); + } + catch(_amP_){ + var _afZ_ = caml_wrap_exception(_amP_); + if(_afZ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Gu_], 1); + throw caml_maybe_attach_backtrace(_afZ_, 0); + } + var + seuil_l822_3_parts_usufruit = + caml_call3 + (Runtime_ocaml_Runtime[28], _Gx_, Runtime_ocaml_Runtime[15], _af2_); + try{ + var + _af4_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_3000000); + }, + _af5_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Gz_, 1); + }, + _af6_ = caml_call4(Runtime_ocaml_Runtime[63], _GA_, [0], _af5_, _af4_); + } + catch(_amO_){ + var _af3_ = caml_wrap_exception(_amO_); + if(_af3_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Gy_], 1); + throw caml_maybe_attach_backtrace(_af3_, 0); + } + var + seuil_l822_5_patrimoine = + caml_call3 + (Runtime_ocaml_Runtime[28], _GB_, Runtime_ocaml_Runtime[13], _af6_); + try{ + var + _af8_ = + function(param){ + var + _amM_ = 0 === menage[2][6][0] ? 1 : 0, + _amN_ = 0 === menage[2][4][0] ? 1 : 0; + return caml_call2(Runtime_ocaml_Runtime[84], _amN_, _amM_); + }, + _af9_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _GD_, 1); + }, + _af__ = caml_call4(Runtime_ocaml_Runtime[63], _GE_, [0], _af9_, _af8_); + } + catch(_amL_){ + var _af7_ = caml_wrap_exception(_amL_); + if(_af7_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _GC_], 1); + throw caml_maybe_attach_backtrace(_af7_, 0); + } + var + usufruit_ou_propriete_famille = + caml_call3 + (Runtime_ocaml_Runtime[28], _GF_, Runtime_ocaml_Runtime[12], _af__); + try{ + var + _aga_ = + function(param){ + var + _amH_ = caml_call1(Runtime_ocaml_Runtime[68], menage[3]), + _amI_ = menage[4]; + switch(menage[5][0]){ + case 0: + var _amJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$246); + break; + case 1: + var _amJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$100); + break; + case 2: + var _amJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$101); + break; + case 3: + var _amJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$102); + break; + case 4: + var _amJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$247); + break; + default: + var _amJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$103); + } + var _amK_ = caml_call2(Runtime_ocaml_Runtime[91], _amJ_, _amI_); + return caml_call2(Runtime_ocaml_Runtime[91], _amK_, _amH_); + }, + _agb_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _GH_, 1); + }, + _agc_ = caml_call4(Runtime_ocaml_Runtime[63], _GI_, [0], _agb_, _aga_); + } + catch(_amG_){ + var _af$_ = caml_wrap_exception(_amG_); + if(_af$_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _GG_], 1); + throw caml_maybe_attach_backtrace(_af$_, 0); + } + var + nombre_personnes_logement = + caml_call3 + (Runtime_ocaml_Runtime[28], _GJ_, Runtime_ocaml_Runtime[14], _agc_); + try{ + var + _age_ = function(param){return 0;}, + _agf_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _GL_, 1); + }, + _agg_ = + [0, + function(param){ + function _amA_(param){return 1;} + function _amB_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _GM_, 1); + } + var + _amC_ = + [0, + function(param){ + function _amD_(param){return 0;} + function _amE_(param){ + switch(menage[9][0]){ + case 0: + var _amF_ = 0; break; + case 1: + var _amF_ = 0; break; + case 2: + var _amF_ = 0; break; + case 3: + var _amF_ = 0; break; + case 4: + var _amF_ = 0; break; + case 5: + var _amF_ = 0; break; + case 6: + var _amF_ = 0; break; + case 7: + var _amF_ = 0; break; + default: var _amF_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _GN_, _amF_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _GO_, [0], _amE_, _amD_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _GP_, _amC_, _amB_, _amA_); + }], + _agh_ = caml_call4(Runtime_ocaml_Runtime[63], _GQ_, _agg_, _agf_, _age_); + } + catch(_amz_){ + var _agd_ = caml_wrap_exception(_amz_); + if(_agd_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _GK_], 1); + throw caml_maybe_attach_backtrace(_agd_, 0); + } + var + septieme_alinea_l823_1_applica = + caml_call3 + (Runtime_ocaml_Runtime[28], _GR_, Runtime_ocaml_Runtime[12], _agh_); + try{ + var + _agj_ = function(param){return 0;}, + _agk_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _GT_, 1); + }, + _agl_ = + [0, + function(param){ + function _amw_(param){return 1;} + function _amx_(param){ + var _amy_ = caml_call1(Runtime_ocaml_Runtime[67], menage[2][7]); + return caml_call2(Runtime_ocaml_Runtime[29], _GU_, _amy_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _GV_, [0], _amx_, _amw_); + }], + _agm_ = caml_call4(Runtime_ocaml_Runtime[63], _GW_, _agl_, _agk_, _agj_); + } + catch(_amv_){ + var _agi_ = caml_wrap_exception(_amv_); + if(_agi_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _GS_], 1); + throw caml_maybe_attach_backtrace(_agi_, 0); + } + var + condition_non_ouverture_l822_9 = + caml_call3 + (Runtime_ocaml_Runtime[28], _GX_, Runtime_ocaml_Runtime[12], _agm_); + try{ + var + _ago_ = function(param){return 0;}, + _agp_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _GZ_, 1); + }, + _agq_ = + [0, + function(param){ + function _amt_(param){return 1;} + function _amu_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _G0_, menage[6]); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _G1_, [0], _amu_, _amt_); + }], + _agr_ = caml_call4(Runtime_ocaml_Runtime[63], _G2_, _agq_, _agp_, _ago_); + } + catch(_ams_){ + var _agn_ = caml_wrap_exception(_ams_); + if(_agn_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _GY_], 1); + throw caml_maybe_attach_backtrace(_agn_, 0); + } + var + condition_non_ouverture_l822_8 = + caml_call3 + (Runtime_ocaml_Runtime[28], _G3_, Runtime_ocaml_Runtime[12], _agr_); + try{ + var + _agt_ = + function(param){ + function _amn_(param){return 0;} + function _amo_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _G5_, 1); + } + var + _amp_ = + [0, + function(param){ + function _amq_(param){return 1;} + function _amr_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _G6_, menage[2][1]); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _G7_, [0], _amr_, _amq_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _G8_, _amp_, _amo_, _amn_); + }, + _agu_ = function(param){return 1;}, + _agv_ = + [0, + function(param){ + return caml_call1(condition_logement_residence_p, 0); + }], + _agw_ = caml_call4(Runtime_ocaml_Runtime[63], _G9_, _agv_, _agu_, _agt_); + } + catch(_amm_){ + var _ags_ = caml_wrap_exception(_amm_); + if(_ags_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _G4_], 1); + throw caml_maybe_attach_backtrace(_ags_, 0); + } + var + condition_logement_residence_p$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _G__, Runtime_ocaml_Runtime[12], _agw_); + try{ + var + _agy_ = function(param){return demandeur[1];}, + _agz_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Ha_, 1); + }, + _agA_ = caml_call4(Runtime_ocaml_Runtime[63], _Hb_, [0], _agz_, _agy_), + ouverture_droits_retraite_dot_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _Hc_, Runtime_ocaml_Runtime[16], _agA_); + } + catch(_aml_){ + var _agx_ = caml_wrap_exception(_aml_); + if(_agx_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _G$_], 1); + throw caml_maybe_attach_backtrace(_agx_, 0); + } + var + _agB_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _Hd_, ouverture_droits_retraite), + [0, ouverture_droits_retraite_dot_]), + result = caml_call2(Runtime_ocaml_Runtime[27], _He_, _agB_), + ouverture_droits_retraite_dot_$0 = result[1]; + try{ + var + _agD_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[93], demandeur[3][1], demandeur[3][2]); + }, + _agE_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Hg_, 1); + }, + _agF_ = caml_call4(Runtime_ocaml_Runtime[63], _Hh_, [0], _agE_, _agD_); + } + catch(_amk_){ + var _agC_ = caml_wrap_exception(_amk_); + if(_agC_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Hf_], 1); + throw caml_maybe_attach_backtrace(_agC_, 0); + } + var + patrimoine_total_demandeur = + caml_call3 + (Runtime_ocaml_Runtime[28], _Hi_, Runtime_ocaml_Runtime[13], _agF_); + try{ + var + _agH_ = + function(param){ + var match = demandeur[2]; + if(0 === match[0]) return 1; + var conditions = match[1]; + return conditions[1]; + }, + _agI_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Hk_, 1); + }, + _agJ_ = + [0, + function(param){ + function _amh_(param){ + var match = demandeur[2]; + if(0 === match[0]) return 0; + var conditions = match[1]; + return conditions[2]; + } + function _ami_(param){ + switch(menage[9][0]){ + case 0: + var _amj_ = 0; break; + case 1: + var _amj_ = 0; break; + case 2: + var _amj_ = 0; break; + case 3: + var _amj_ = 0; break; + case 4: + var _amj_ = 0; break; + case 5: + var _amj_ = 0; break; + case 6: + var _amj_ = 0; break; + case 7: + var _amj_ = 0; break; + default: var _amj_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _Hl_, _amj_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Hm_, [0], _ami_, _amh_); + }], + _agK_ = caml_call4(Runtime_ocaml_Runtime[63], _Hn_, _agJ_, _agI_, _agH_); + } + catch(_amg_){ + var _agG_ = caml_wrap_exception(_amg_); + if(_agG_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Hj_], 1); + throw caml_maybe_attach_backtrace(_agG_, 0); + } + var + condition_nationalite = + caml_call3 + (Runtime_ocaml_Runtime[28], _Ho_, Runtime_ocaml_Runtime[12], _agK_); + try{ + var + _agM_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _agN_ = function(param){return 0;}, + _agO_ = + function(param){ + function _al$_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1088175); + } + function _ama_(param){ + var + _amb_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _amc_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _amb_), + _amd_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), + _ame_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _amd_), + _amf_ = caml_call2(Runtime_ocaml_Runtime[83], _ame_, _amc_); + return caml_call2(Runtime_ocaml_Runtime[29], _Hq_, _amf_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _Hr_, [0], _ama_, _al$_); + }, + _agP_ = + function(param){ + function _al4_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1100144); + } + function _al5_(param){ + var + _al6_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _al7_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _al6_), + _al8_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _al9_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _al8_), + _al__ = caml_call2(Runtime_ocaml_Runtime[83], _al9_, _al7_); + return caml_call2(Runtime_ocaml_Runtime[29], _Hs_, _al__); + } + return caml_call4(Runtime_ocaml_Runtime[63], _Ht_, [0], _al5_, _al4_); + }, + _agQ_ = + function(param){ + function _al0_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1153302); + } + function _al1_(param){ + var + _al2_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _al3_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _al2_); + return caml_call2(Runtime_ocaml_Runtime[29], _Hu_, _al3_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _Hv_, [0], _al1_, _al0_); + }, + _agR_ = + function(param){ + function _alT_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1083840); + } + function _alU_(param){ + var + _alV_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), + _alW_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _alV_), + _alX_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _alY_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _alX_), + _alZ_ = caml_call2(Runtime_ocaml_Runtime[83], _alY_, _alW_); + return caml_call2(Runtime_ocaml_Runtime[29], _Hw_, _alZ_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _Hx_, [0], _alU_, _alT_); + }, + _agS_ = + function(param){ + function _alM_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1041840); + } + function _alN_(param){ + var + _alO_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _alP_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _alO_), + _alQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _alR_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _alQ_), + _alS_ = caml_call2(Runtime_ocaml_Runtime[83], _alR_, _alP_); + return caml_call2(Runtime_ocaml_Runtime[29], _Hy_, _alS_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _Hz_, [0], _alN_, _alM_); + }, + _agT_ = + [0, + function(param){ + function _alF_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_999840); + } + function _alG_(param){ + var + _alH_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _alI_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _alH_), + _alJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 4, 1), + _alK_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _alJ_), + _alL_ = caml_call2(Runtime_ocaml_Runtime[83], _alK_, _alI_); + return caml_call2(Runtime_ocaml_Runtime[29], _HA_, _alL_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _HB_, [0], _alG_, _alF_); + }, + _agS_, + _agR_, + _agQ_, + _agP_, + _agO_], + _agU_ = caml_call4(Runtime_ocaml_Runtime[63], _HC_, _agT_, _agN_, _agM_); + } + catch(_alE_){ + var _agL_ = caml_wrap_exception(_alE_); + if(_agL_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Hp_], 1); + throw caml_maybe_attach_backtrace(_agL_, 0); + } + var + plafond_individuel_l815_9_secu = + caml_call3 + (Runtime_ocaml_Runtime[28], _HD_, Runtime_ocaml_Runtime[13], _agU_); + try{ + var + _agW_ = function(param){return 0;}, + _agX_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _HF_, 1); + }, + _agY_ = + [0, + function(param){ + function _alq_(param){return 0;} + function _alr_(param){ + var _alD_ = 0 === menage[2][5][0] ? 1 : 0; + return caml_call2(Runtime_ocaml_Runtime[29], _HG_, _alD_); + } + var + _als_ = + [0, + function(param){ + function _alt_(param){return 1;} + function _alu_(param){ + var match = menage[2][5]; + if(0 === match[0]) + var _alv_ = 1; + else{ + var personne = match[1], _alw_ = personne[2]; + try{ + var _aly_ = caml_call3(Runtime_ocaml_Runtime[60], 30, 0, 0); + } + catch(_alC_){ + var _alx_ = caml_wrap_exception(_alC_); + if(_alx_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _HI_], 1); + throw caml_maybe_attach_backtrace(_alx_, 0); + } + var + _alz_ = caml_call3 (Runtime_ocaml_Runtime[28], - _N4_, - embed_calcul_aide_personnalise$3, - [0, - logement_foyer[7], - ressources_menage_avec_arrondi, - logement_foyer[9], - date_courante, - nombre_personnes_a_charge, - situation_familiale_calcul_apl, - zone, - 1, - 0, - type_aide, - 0, - _aC0_, - _aCZ_, - residence]), - result= + _HJ_, + embed_verification_age_superie$0, + [0, personne[1], date_courante, _aly_]), + result = caml_call1 (caml_call2 (Runtime_ocaml_Runtime[26], - _N5_, - calcul_aide_personnalisee_loge), - _aC1_), - _aC2_= - function(param0) - {var - _aC4_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _N6_, - Runtime_ocaml_Runtime[13], - param0), - _aC5_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_N7_,result[7]),_aC4_), - _aC6_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _N8_, - Runtime_ocaml_Runtime[13], - _aC5_); - return caml_call2(Runtime_ocaml_Runtime[27],_N9_,_aC6_)}, - result$0= - [0, - result[1], - result[2], - result[3], - result[4], - result[5], - result[6], - _aC2_]; - caml_call2(Runtime_ocaml_Runtime[29],_N__,1); - var - _aC3_= + _HK_, + verification_age_superieur_a), + _alz_), + result$0 = [0, result[1]]; + caml_call2(Runtime_ocaml_Runtime[29], _HL_, 1); + var + _alA_ = caml_call3 (Runtime_ocaml_Runtime[28], - _N$_, - embed_calcul_aide_personnalise, + _HM_, + embed_verification_age_superie, result$0), - traitement_formule= - caml_call2(Runtime_ocaml_Runtime[27],_Oa_,_aC3_); - return [0,traitement_formule[6],traitement_formule[7]]}} - function _aCV_(param) - {switch(categorie_calcul_apl[0]) - {case 0:var _aCW_=0;break; - case 1:var _aCW_=0;break; - default:var _aCW_=1} - switch(residence[0]) - {case 0:var _aCX_=0;break; - case 1:var _aCX_=0;break; - case 2:var _aCX_=0;break; - case 3:var _aCX_=0;break; - case 4:var _aCX_=0;break; - case 5:var _aCX_=0;break; - case 6:var _aCX_=0;break; - case 7:var _aCX_=1;break; - default:var _aCX_=0} - var _aCY_=caml_call2(Runtime_ocaml_Runtime[83],_aCX_,_aCW_); - return caml_call2(Runtime_ocaml_Runtime[29],_Ob_,_aCY_)} - return caml_call4(Runtime_ocaml_Runtime[63],_Oc_,[0],_aCV_,_aCU_)}], - _aCJ_=caml_call4(Runtime_ocaml_Runtime[63],_Od_,_aCI_,_aCH_,_aCG_)} - catch(_aCT_) - {_aCT_ = caml_wrap_exception(_aCT_); - if(_aCT_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Nz_]; - throw _aCT_} - var - sous_calcul_traitement= - caml_call3 - (Runtime_ocaml_Runtime[28],_Oe_,embed_traitement_formule_aide_,_aCJ_); - function _aCK_(arg) - {try - {var - _aCP_= - function(param){return caml_call1(sous_calcul_traitement[2],arg)}, - _aCQ_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Og_,1)}, - _aCR_=caml_call4(Runtime_ocaml_Runtime[63],_Oh_,[0],_aCQ_,_aCP_); - return _aCR_} - catch(_aCS_) - {_aCS_ = caml_wrap_exception(_aCS_); - if(_aCS_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Of_]; - throw _aCS_}} - var - traitement_aide_finale= - caml_call3 - (Runtime_ocaml_Runtime[28],_Oi_,Runtime_ocaml_Runtime[10],_aCK_); - try - {var - _aCL_=function(param){return sous_calcul_traitement[1]}, - _aCM_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ok_,1)}, - _aCN_=caml_call4(Runtime_ocaml_Runtime[63],_Ol_,[0],_aCM_,_aCL_)} - catch(_aCO_) - {_aCO_ = caml_wrap_exception(_aCO_); - if(_aCO_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Oj_]; - throw _aCO_} - var - aide_finale_formule= - caml_call3 - (Runtime_ocaml_Runtime[28],_Om_,Runtime_ocaml_Runtime[13],_aCN_); - return [0,aide_finale_formule,traitement_aide_finale]} - function eligibilite_aides_personnelle_(eligibilite_aides_personnelle_) - {var - menage=eligibilite_aides_personnelle_[1], - demandeur=eligibilite_aides_personnelle_[2], - date_courante=eligibilite_aides_personnelle_[3], - condition_logement_residence_p=eligibilite_aides_personnelle_[4], - condition_logement_surface=eligibilite_aides_personnelle_[5], - date_entree_vigueur_differee_c=eligibilite_aides_personnelle_[6]; - function _avN_(pret) - {try - {var - _aCt_=function(param){return 0}, - _aCu_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Oo_,1)}, - _aCv_=caml_call4(Runtime_ocaml_Runtime[63],_Op_,[0],_aCu_,_aCt_); - return _aCv_} - catch(_aCw_) - {_aCw_ = caml_wrap_exception(_aCw_); - if(_aCw_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_On_]; - throw _aCw_}} - caml_call3 - (Runtime_ocaml_Runtime[28],_Oq_,Runtime_ocaml_Runtime[10],_avN_); - try - {var - _avO_=function(param){return 0}, - _avP_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Os_,1)}, - _avQ_=caml_call4(Runtime_ocaml_Runtime[63],_Ot_,[0],_avP_,_avO_)} - catch(_aCs_) - {_aCs_ = caml_wrap_exception(_aCs_); - if(_aCs_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Or_]; - throw _aCs_} - caml_call3 - (Runtime_ocaml_Runtime[28],_Ou_,Runtime_ocaml_Runtime[12],_avQ_); - try - {var - _avR_= - function(param) - {function _aCq_(param) - {return caml_call3(Runtime_ocaml_Runtime[57],2021,1,1)} - function _aCr_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Ow_,1)} - return caml_call4(Runtime_ocaml_Runtime[63],_Ox_,[0],_aCr_,_aCq_)}, - _avS_=function(param){return 1}, - _avT_= - [0, - function(param) - {return caml_call1(date_entree_vigueur_differee_c,0)}], - _avU_=caml_call4(Runtime_ocaml_Runtime[63],_Oy_,_avT_,_avS_,_avR_)} - catch(_aCp_) - {_aCp_ = caml_wrap_exception(_aCp_); - if(_aCp_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ov_]; - throw _aCp_} - var - date_entree_vigueur_differee_c$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_Oz_,Runtime_ocaml_Runtime[16],_avU_); - try - {var - _avV_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_0_1)}, - _avW_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_OB_,1)}, - _avX_=caml_call4(Runtime_ocaml_Runtime[63],_OC_,[0],_avW_,_avV_)} - catch(_aCo_) - {_aCo_ = caml_wrap_exception(_aCo_); - if(_aCo_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_OA_]; - throw _aCo_} - var - seuil_l822_3_parts_propriete= - caml_call3 - (Runtime_ocaml_Runtime[28],_OD_,Runtime_ocaml_Runtime[15],_avX_); - try - {var - _avY_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_0_1$0)}, - _avZ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_OF_,1)}, - _av0_=caml_call4(Runtime_ocaml_Runtime[63],_OG_,[0],_avZ_,_avY_)} - catch(_aCn_) - {_aCn_ = caml_wrap_exception(_aCn_); - if(_aCn_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_OE_]; - throw _aCn_} - var - seuil_l822_3_parts_usufruit= - caml_call3 - (Runtime_ocaml_Runtime[28],_OH_,Runtime_ocaml_Runtime[15],_av0_); - try - {var - _av1_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_3000000)}, - _av2_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_OJ_,1)}, - _av3_=caml_call4(Runtime_ocaml_Runtime[63],_OK_,[0],_av2_,_av1_)} - catch(_aCm_) - {_aCm_ = caml_wrap_exception(_aCm_); - if(_aCm_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_OI_]; - throw _aCm_} - var - seuil_l822_5_patrimoine= - caml_call3 - (Runtime_ocaml_Runtime[28],_OL_,Runtime_ocaml_Runtime[13],_av3_); - try - {var - _av4_= - function(param) - {var - _aCk_=0 === menage[2][6][0]?1:0, - _aCl_=0 === menage[2][4][0]?1:0; - return caml_call2(Runtime_ocaml_Runtime[84],_aCl_,_aCk_)}, - _av5_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ON_,1)}, - _av6_=caml_call4(Runtime_ocaml_Runtime[63],_OO_,[0],_av5_,_av4_)} - catch(_aCj_) - {_aCj_ = caml_wrap_exception(_aCj_); - if(_aCj_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_OM_]; - throw _aCj_} - var - usufruit_ou_propriete_famille= - caml_call3 - (Runtime_ocaml_Runtime[28],_OP_,Runtime_ocaml_Runtime[12],_av6_); - try - {var - _av7_= - function(param) - {var - _aCf_=caml_call1(Runtime_ocaml_Runtime[68],menage[3]), - _aCg_=menage[4]; - switch(menage[5][0]) - {case 0: - var _aCh_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$284); - break; - case 1: - var _aCh_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$113); - break; - case 2: - var _aCh_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$114); - break; - case 3: - var _aCh_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$115); - break; - case 4: - var _aCh_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$285); - break; - default: - var _aCh_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$116)} - var _aCi_=caml_call2(Runtime_ocaml_Runtime[91],_aCh_,_aCg_); - return caml_call2(Runtime_ocaml_Runtime[91],_aCi_,_aCf_)}, - _av8_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_OR_,1)}, - _av9_=caml_call4(Runtime_ocaml_Runtime[63],_OS_,[0],_av8_,_av7_)} - catch(_aCe_) - {_aCe_ = caml_wrap_exception(_aCe_); - if(_aCe_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_OQ_]; - throw _aCe_} - var - nombre_personnes_logement= - caml_call3 - (Runtime_ocaml_Runtime[28],_OT_,Runtime_ocaml_Runtime[14],_av9_); - try - {var - _av__=function(param){return 0}, - _av$_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_OV_,1)}, - _awa_= - [0, - function(param) - {function _aB__(param){return 1} - function _aB$_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_OW_,1)} - var - _aCa_= - [0, - function(param) - {function _aCb_(param){return 0} - function _aCc_(param) - {switch(menage[9][0]) - {case 0:var _aCd_=0;break; - case 1:var _aCd_=0;break; - case 2:var _aCd_=0;break; - case 3:var _aCd_=0;break; - case 4:var _aCd_=0;break; - case 5:var _aCd_=0;break; - case 6:var _aCd_=0;break; - case 7:var _aCd_=0;break; - default:var _aCd_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_OX_,_aCd_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_OY_,[0],_aCc_,_aCb_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_OZ_,_aCa_,_aB$_,_aB__)}], - _awb_=caml_call4(Runtime_ocaml_Runtime[63],_O0_,_awa_,_av$_,_av__)} - catch(_aB9_) - {_aB9_ = caml_wrap_exception(_aB9_); - if(_aB9_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_OU_]; - throw _aB9_} - var - septieme_alinea_l823_1_applica= - caml_call3 - (Runtime_ocaml_Runtime[28],_O1_,Runtime_ocaml_Runtime[12],_awb_); - try - {var - _awc_=function(param){return 0}, - _awd_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_O3_,1)}, - _awe_= - [0, - function(param) - {function _aB6_(param){return 1} - function _aB7_(param) - {var _aB8_=caml_call1(Runtime_ocaml_Runtime[67],menage[2][7]); - return caml_call2(Runtime_ocaml_Runtime[29],_O4_,_aB8_)} - return caml_call4(Runtime_ocaml_Runtime[63],_O5_,[0],_aB7_,_aB6_)}], - _awf_=caml_call4(Runtime_ocaml_Runtime[63],_O6_,_awe_,_awd_,_awc_)} - catch(_aB5_) - {_aB5_ = caml_wrap_exception(_aB5_); - if(_aB5_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_O2_]; - throw _aB5_} - var - condition_non_ouverture_l822_9= - caml_call3 - (Runtime_ocaml_Runtime[28],_O7_,Runtime_ocaml_Runtime[12],_awf_); - try - {var - _awg_=function(param){return 0}, - _awh_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_O9_,1)}, - _awi_= - [0, - function(param) - {function _aB3_(param){return 1} - function _aB4_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_O__,menage[6])} - return caml_call4(Runtime_ocaml_Runtime[63],_O$_,[0],_aB4_,_aB3_)}], - _awj_=caml_call4(Runtime_ocaml_Runtime[63],_Pa_,_awi_,_awh_,_awg_)} - catch(_aB2_) - {_aB2_ = caml_wrap_exception(_aB2_); - if(_aB2_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_O8_]; - throw _aB2_} - var - condition_non_ouverture_l822_8= - caml_call3 - (Runtime_ocaml_Runtime[28],_Pb_,Runtime_ocaml_Runtime[12],_awj_); - try - {var - _awk_= - function(param) - {function _aBX_(param){return 0} - function _aBY_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Pd_,1)} - var - _aBZ_= - [0, - function(param) - {function _aB0_(param){return 1} - function _aB1_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_Pe_,menage[2][1])} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Pf_,[0],_aB1_,_aB0_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Pg_,_aBZ_,_aBY_,_aBX_)}, - _awl_=function(param){return 1}, - _awm_= - [0, - function(param) - {return caml_call1(condition_logement_residence_p,0)}], - _awn_=caml_call4(Runtime_ocaml_Runtime[63],_Ph_,_awm_,_awl_,_awk_)} - catch(_aBW_) - {_aBW_ = caml_wrap_exception(_aBW_); - if(_aBW_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Pc_]; - throw _aBW_} - var - condition_logement_residence_p$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_Pi_,Runtime_ocaml_Runtime[12],_awn_); - try - {var - _awo_=function(param){return demandeur[1]}, - _awp_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Pk_,1)}, - _awq_=caml_call4(Runtime_ocaml_Runtime[63],_Pl_,[0],_awp_,_awo_), - ouverture_droits_retraite_dot_= - caml_call3 - (Runtime_ocaml_Runtime[28],_Pm_,Runtime_ocaml_Runtime[16],_awq_)} - catch(_aBV_) - {_aBV_ = caml_wrap_exception(_aBV_); - if(_aBV_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Pj_]; - throw _aBV_} - var - _awr_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_Pn_,ouverture_droits_retraite), - [0,ouverture_droits_retraite_dot_]), - result=caml_call2(Runtime_ocaml_Runtime[27],_Po_,_awr_), - ouverture_droits_retraite_dot_$0=result[1]; - try - {var - _aws_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[93],demandeur[3][1],demandeur[3][2])}, - _awt_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Pq_,1)}, - _awu_=caml_call4(Runtime_ocaml_Runtime[63],_Pr_,[0],_awt_,_aws_)} - catch(_aBU_) - {_aBU_ = caml_wrap_exception(_aBU_); - if(_aBU_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Pp_]; - throw _aBU_} - var - patrimoine_total_demandeur= - caml_call3 - (Runtime_ocaml_Runtime[28],_Ps_,Runtime_ocaml_Runtime[13],_awu_); - try - {var - _awv_= - function(param) - {var _aBT_=demandeur[2]; - if(0 === _aBT_[0])return 1; - var conditions=_aBT_[1]; - return conditions[1]}, - _aww_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Pu_,1)}, - _awx_= - [0, - function(param) - {function _aBP_(param) - {var _aBS_=demandeur[2]; - if(0 === _aBS_[0])return 0; - var conditions=_aBS_[1]; - return conditions[2]} - function _aBQ_(param) - {switch(menage[9][0]) - {case 0:var _aBR_=0;break; - case 1:var _aBR_=0;break; - case 2:var _aBR_=0;break; - case 3:var _aBR_=0;break; - case 4:var _aBR_=0;break; - case 5:var _aBR_=0;break; - case 6:var _aBR_=0;break; - case 7:var _aBR_=0;break; - default:var _aBR_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_Pv_,_aBR_)} - return caml_call4(Runtime_ocaml_Runtime[63],_Pw_,[0],_aBQ_,_aBP_)}], - _awy_=caml_call4(Runtime_ocaml_Runtime[63],_Px_,_awx_,_aww_,_awv_)} - catch(_aBO_) - {_aBO_ = caml_wrap_exception(_aBO_); - if(_aBO_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Pt_]; - throw _aBO_} - var - condition_nationalite= - caml_call3 - (Runtime_ocaml_Runtime[28],_Py_,Runtime_ocaml_Runtime[12],_awy_); - try - {var - _awz_=function(param){throw Runtime_ocaml_Runtime[2]}, - _awA_=function(param){return 0}, - _awB_= - function(param) - {function _aBH_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1088175)} - function _aBI_(param) - {var - _aBJ_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _aBK_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aBJ_), - _aBL_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), - _aBM_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aBL_), - _aBN_=caml_call2(Runtime_ocaml_Runtime[83],_aBM_,_aBK_); - return caml_call2(Runtime_ocaml_Runtime[29],_PA_,_aBN_)} - return caml_call4(Runtime_ocaml_Runtime[63],_PB_,[0],_aBI_,_aBH_)}, - _awC_= - function(param) - {function _aBA_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1100144)} - function _aBB_(param) - {var - _aBC_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _aBD_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aBC_), - _aBE_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _aBF_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aBE_), - _aBG_=caml_call2(Runtime_ocaml_Runtime[83],_aBF_,_aBD_); - return caml_call2(Runtime_ocaml_Runtime[29],_PC_,_aBG_)} - return caml_call4(Runtime_ocaml_Runtime[63],_PD_,[0],_aBB_,_aBA_)}, - _awD_= - function(param) - {function _aBw_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1153302)} - function _aBx_(param) - {var - _aBy_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _aBz_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aBy_); - return caml_call2(Runtime_ocaml_Runtime[29],_PE_,_aBz_)} - return caml_call4(Runtime_ocaml_Runtime[63],_PF_,[0],_aBx_,_aBw_)}, - _awE_= - function(param) - {function _aBp_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1083840)} - function _aBq_(param) - {var - _aBr_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), - _aBs_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aBr_), - _aBt_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aBu_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aBt_), - _aBv_=caml_call2(Runtime_ocaml_Runtime[83],_aBu_,_aBs_); - return caml_call2(Runtime_ocaml_Runtime[29],_PG_,_aBv_)} - return caml_call4(Runtime_ocaml_Runtime[63],_PH_,[0],_aBq_,_aBp_)}, - _awF_= - function(param) - {function _aBi_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1041840)} - function _aBj_(param) - {var - _aBk_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aBl_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aBk_), - _aBm_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _aBn_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aBm_), - _aBo_=caml_call2(Runtime_ocaml_Runtime[83],_aBn_,_aBl_); - return caml_call2(Runtime_ocaml_Runtime[29],_PI_,_aBo_)} - return caml_call4(Runtime_ocaml_Runtime[63],_PJ_,[0],_aBj_,_aBi_)}, - _awG_= - [0, - function(param) - {function _aBb_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_999840)} - function _aBc_(param) - {var - _aBd_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _aBe_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aBd_), - _aBf_=caml_call3(Runtime_ocaml_Runtime[57],2018,4,1), - _aBg_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aBf_), - _aBh_=caml_call2(Runtime_ocaml_Runtime[83],_aBg_,_aBe_); - return caml_call2(Runtime_ocaml_Runtime[29],_PK_,_aBh_)} - return caml_call4(Runtime_ocaml_Runtime[63],_PL_,[0],_aBc_,_aBb_)}, - _awF_, - _awE_, - _awD_, - _awC_, - _awB_], - _awH_=caml_call4(Runtime_ocaml_Runtime[63],_PM_,_awG_,_awA_,_awz_)} - catch(_aBa_) - {_aBa_ = caml_wrap_exception(_aBa_); - if(_aBa_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Pz_]; - throw _aBa_} - var - plafond_individuel_l815_9_secu= - caml_call3 - (Runtime_ocaml_Runtime[28],_PN_,Runtime_ocaml_Runtime[13],_awH_); - try - {var - _awI_=function(param){return 0}, - _awJ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_PP_,1)}, - _awK_= - [0, - function(param) - {function _aAY_(param){return 0} - function _aAZ_(param) - {var _aA$_=0 === menage[2][5][0]?1:0; - return caml_call2(Runtime_ocaml_Runtime[29],_PQ_,_aA$_)} - var - _aA0_= - [0, - function(param) - {function _aA1_(param){return 1} - function _aA2_(param) - {var _aA3_=menage[2][5]; - if(0 === _aA3_[0]) - var _aA4_=1; - else - {var personne=_aA3_[1],_aA5_=personne[2]; - try - {var _aA6_=caml_call3(Runtime_ocaml_Runtime[60],30,0,0)} - catch(_aA__) - {_aA__ = caml_wrap_exception(_aA__); - if(_aA__ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_PS_]; - throw _aA__} - var - _aA7_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _PT_, - embed_verification_age_superie$2, - [0,personne[1],date_courante,_aA6_]), - result= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _PU_, - verification_age_superieur_a$1), - _aA7_), - result$0=[0,result[1]]; - caml_call2(Runtime_ocaml_Runtime[29],_PV_,1); - var - _aA8_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _PW_, - embed_verification_age_superie$1, - result$0), - _aA9_=caml_call2(Runtime_ocaml_Runtime[27],_PX_,_aA8_)[1], - _aA4_=caml_call2(Runtime_ocaml_Runtime[84],_aA9_,_aA5_)} - return caml_call2(Runtime_ocaml_Runtime[29],_PR_,_aA4_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_PY_,[0],_aA2_,_aA1_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_PZ_,_aA0_,_aAZ_,_aAY_)}], - _awL_=caml_call4(Runtime_ocaml_Runtime[63],_P0_,_awK_,_awJ_,_awI_)} - catch(_aAX_) - {_aAX_ = caml_wrap_exception(_aAX_); - if(_aAX_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_PO_]; - throw _aAX_} - var - condition_logement_location_ti= - caml_call3 - (Runtime_ocaml_Runtime[28],_P1_,Runtime_ocaml_Runtime[12],_awL_); - try - {var - _awM_=function(param){return date_courante}, - _awN_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_P3_,1)}, - _awO_=caml_call4(Runtime_ocaml_Runtime[63],_P4_,[0],_awN_,_awM_), - prestations_familiales_dot_dat= - caml_call3 - (Runtime_ocaml_Runtime[28],_P5_,Runtime_ocaml_Runtime[16],_awO_)} - catch(_aAW_) - {_aAW_ = caml_wrap_exception(_aAW_); - if(_aAW_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_P2_]; - throw _aAW_} - try - {var - _awP_=function(param){return _P7_}, - _awQ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_P8_,1)}, - _awR_=caml_call4(Runtime_ocaml_Runtime[63],_P9_,[0],_awQ_,_awP_), - prestations_familiales_dot_pre= - caml_call3 - (Runtime_ocaml_Runtime[28], - _P__, - embed_element_prestations_fami$0, - _awR_)} - catch(_aAV_) - {_aAV_ = caml_wrap_exception(_aAV_); - if(_aAV_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_P6_]; - throw _aAV_} - try - {var - _awS_=function(param){return menage[9]}, - _awT_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Qa_,1)}, - _awU_=caml_call4(Runtime_ocaml_Runtime[63],_Qb_,[0],_awT_,_awS_), - prestations_familiales_dot_res= - caml_call3 - (Runtime_ocaml_Runtime[28],_Qc_,embed_collectivite$0,_awU_)} - catch(_aAU_) - {_aAU_ = caml_wrap_exception(_aAU_); - if(_aAU_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_P$_]; - throw _aAU_} - function prestations_familiales_dot_age(param) - {function _aAE_(param) - {return caml_call3(Runtime_ocaml_Runtime[60],21,0,0)} - function _aAF_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Qd_,1)} - var - _aAG_= - [0, - function(param) - {function _aAI_(param){throw Runtime_ocaml_Runtime[2]} - function _aAJ_(param){return 0} - var - _aAK_= - [0, - function(param) - {function _aAL_(param) - {return caml_call3(Runtime_ocaml_Runtime[60],22,0,0)} - function _aAM_(param) - {switch(menage[9][0]) - {case 0:var _aAT_=1;break; - case 1:var _aAT_=1;break; - case 2:var _aAT_=1;break; - case 3:var _aAT_=1;break; - case 4:var _aAT_=0;break; - case 5:var _aAT_=0;break; - case 6:var _aAT_=0;break; - case 7:var _aAT_=0;break; - default:var _aAT_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_Qe_,_aAT_)} - var - _aAN_= - [0, - function(param) - {function _aAO_(param) - {return caml_call3(Runtime_ocaml_Runtime[60],22,0,0)} - function _aAP_(param) - {switch(menage[9][0]) - {case 0:var _aAQ_=0;break; - case 1:var _aAQ_=0;break; - case 2:var _aAQ_=0;break; - case 3:var _aAQ_=0;break; - case 4:var _aAQ_=1;break; - case 5:var _aAQ_=1;break; - case 6:var _aAQ_=0;break; - case 7:var _aAQ_=0;break; - default:var _aAQ_=0} - var - _aAR_= - caml_call2 - (Runtime_ocaml_Runtime[130], - date_courante, - date_entree_vigueur_differee_c$0), - _aAS_=caml_call2(Runtime_ocaml_Runtime[83],_aAR_,_aAQ_); - return caml_call2(Runtime_ocaml_Runtime[29],_Qf_,_aAS_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Qg_,[0],_aAP_,_aAO_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Qh_,_aAN_,_aAM_,_aAL_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Qi_,_aAK_,_aAJ_,_aAI_)}], - _aAH_=caml_call4(Runtime_ocaml_Runtime[63],_Qj_,_aAG_,_aAF_,_aAE_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _Qk_, - Runtime_ocaml_Runtime[17], - _aAH_)} - var - _awV_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_Ql_,eligibilite_prestations_famili), - [0, - prestations_familiales_dot_dat, - prestations_familiales_dot_pre, - prestations_familiales_dot_res, - prestations_familiales_dot_age]), - result$0=caml_call2(Runtime_ocaml_Runtime[27],_Qm_,_awV_), - prestations_familiales_dot_age$0=result$0[1], - prestations_familiales_dot_dro=result$0[2]; - try - {var - _awW_=function(param){return 0}, - _awX_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Qo_,1)}, - _awY_= - [0, - function(param) - {function _aAp_(param){return 1} - function _aAq_(param) - {switch(menage[2][3][0]) - {case 0:var _aAD_=1;break; - case 1:var _aAD_=1;break; - case 2:var _aAD_=menage[2][1];break; - case 3:var _aAD_=1;break; - default:var _aAD_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_Qp_,_aAD_)} - var - _aAr_= - [0, - function(param) - {function _aAs_(param){return 0} - function _aAt_(param) - {switch(menage[2][3][0]) - {case 0: - var - usufruit_ou_propriete_famille$0= - usufruit_ou_propriete_famille; - break; - case 1:var usufruit_ou_propriete_famille$0=0;break; - case 2:var usufruit_ou_propriete_famille$0=0;break; - case 3:var usufruit_ou_propriete_famille$0=0;break; - default:var usufruit_ou_propriete_famille$0=0} - return caml_call2 - (Runtime_ocaml_Runtime[29], - _Qq_, - usufruit_ou_propriete_famille$0)} - var - _aAu_= - [0, - function(param) - {function _aAv_(param){return 1} - function _aAw_(param) - {var _aAx_=menage[2][6]; - if(0 === _aAx_[0]) - var parts=_aAx_[1],parts$0=parts; - else - var parts$0=caml_call1(Runtime_ocaml_Runtime[39],cst_0$401); - var - _aAy_= - caml_call2 - (Runtime_ocaml_Runtime[112], - parts$0, - seuil_l822_3_parts_usufruit), - _aAz_=menage[2][4]; - if(0 === _aAz_[0]) - var parts$1=_aAz_[1],parts$2=parts$1; - else - var parts$2=caml_call1(Runtime_ocaml_Runtime[39],cst_0$400); - var - _aAA_= - caml_call2 - (Runtime_ocaml_Runtime[112], - parts$2, - seuil_l822_3_parts_propriete), - _aAB_=caml_call2(Runtime_ocaml_Runtime[83],_aAA_,_aAy_), - _aAC_= - caml_call2 - (Runtime_ocaml_Runtime[83], - usufruit_ou_propriete_famille, - _aAB_); - return caml_call2(Runtime_ocaml_Runtime[29],_Qr_,_aAC_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Qs_,[0],_aAw_,_aAv_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Qt_,_aAu_,_aAt_,_aAs_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Qu_,_aAr_,_aAq_,_aAp_)}], - _awZ_=caml_call4(Runtime_ocaml_Runtime[63],_Qv_,_awY_,_awX_,_awW_)} - catch(_aAo_) - {_aAo_ = caml_wrap_exception(_aAo_); - if(_aAo_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Qn_]; - throw _aAo_} - var - condition_logement_mode_occupa= - caml_call3 - (Runtime_ocaml_Runtime[28],_Qw_,Runtime_ocaml_Runtime[12],_awZ_); - try - {var - _aw0_= - function(param) - {function _azX_(param){return 0} - function _azY_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Qy_,1)} - var - _azZ_= - [0, - function(param) - {function _az0_(param){return 1} - function _az1_(param) - {var - _aAd_=caml_call1(Runtime_ocaml_Runtime[46],cst_9), - _aAe_=caml_call1(Runtime_ocaml_Runtime[68],menage[3]), - _aAf_=caml_call2(Runtime_ocaml_Runtime[91],menage[4],_aAe_), - _aAg_=caml_call2(Runtime_ocaml_Runtime[102],_aAf_,_aAd_); - switch(menage[5][0]) - {case 0: - var _aAh_=caml_call1(Runtime_ocaml_Runtime[46],cst_9$0); - break; - case 1: - var _aAh_=caml_call1(Runtime_ocaml_Runtime[46],cst_16); - break; - case 2: - var _aAh_=caml_call1(Runtime_ocaml_Runtime[46],cst_16$0); - break; - case 3: - var _aAh_=caml_call1(Runtime_ocaml_Runtime[46],cst_16$1); - break; - case 4: - var _aAh_=caml_call1(Runtime_ocaml_Runtime[46],cst_9$1); - break; - default: - var _aAh_=caml_call1(Runtime_ocaml_Runtime[46],cst_16$2)} - var - condition_logement_surface_min= - caml_call2(Runtime_ocaml_Runtime[91],_aAh_,_aAg_), - _aAi_=caml_call1(Runtime_ocaml_Runtime[46],cst_8), - _aAj_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_logement,_aAi_), - _aAk_=caml_call1(Runtime_ocaml_Runtime[46],cst_70), - _aAl_= - caml_call2 - (Runtime_ocaml_Runtime[126], - condition_logement_surface_min, - _aAk_); - if(caml_call2(Runtime_ocaml_Runtime[83],_aAl_,_aAj_)) - var - _aAm_=caml_call1(Runtime_ocaml_Runtime[46],cst_70$0), - _aAn_= - caml_call2(Runtime_ocaml_Runtime[126],menage[2][8],_aAm_); - else - var - _aAn_= - caml_call2 - (Runtime_ocaml_Runtime[126], - menage[2][8], - condition_logement_surface_min); - return caml_call2(Runtime_ocaml_Runtime[29],_Qz_,_aAn_)} - var - _az2_= - [0, - function(param) - {function _az3_(param){return 1} - function _az4_(param) - {var - _az$_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$286), - _aAa_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_logement,_az$_) - ?caml_call1(Runtime_ocaml_Runtime[46],cst_9$2) - :caml_call1(Runtime_ocaml_Runtime[46],cst_16$3), - _aAb_= - caml_call2(Runtime_ocaml_Runtime[126],menage[2][8],_aAa_), - _aAc_=caml_call2(Runtime_ocaml_Runtime[83],menage[8],_aAb_); - return caml_call2(Runtime_ocaml_Runtime[29],_QA_,_aAc_)} - var - _az5_= - [0, - function(param) - {function _az6_(param){return 0} - function _az7_(param) - {var - _az8_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$117), - _az9_= - caml_call2 - (Runtime_ocaml_Runtime[121],nombre_personnes_logement,_az8_), - _az__=caml_call2(Runtime_ocaml_Runtime[83],menage[8],_az9_); - return caml_call2(Runtime_ocaml_Runtime[29],_QB_,_az__)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_QC_,[0],_az7_,_az6_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_QD_,_az5_,_az4_,_az3_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_QE_,_az2_,_az1_,_az0_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_QF_,_azZ_,_azY_,_azX_)}, - _aw1_=function(param){return 1}, - _aw2_= - [0,function(param){return caml_call1(condition_logement_surface,0)}], - _aw3_=caml_call4(Runtime_ocaml_Runtime[63],_QG_,_aw2_,_aw1_,_aw0_)} - catch(_azW_) - {_azW_ = caml_wrap_exception(_azW_); - if(_azW_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Qx_]; - throw _azW_} - var - condition_logement_surface$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_QH_,Runtime_ocaml_Runtime[12],_aw3_); - try - {var - _aw4_=function(param){return ouverture_droits_retraite_dot_$0}, - _aw5_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_QJ_,1)}, - _aw6_=caml_call4(Runtime_ocaml_Runtime[63],_QK_,[0],_aw5_,_aw4_)} - catch(_azV_) - {_azV_ = caml_wrap_exception(_azV_); - if(_azV_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_QI_]; - throw _azV_} - var - age_l161_17_2_secu= - caml_call3 - (Runtime_ocaml_Runtime[28],_QL_,Runtime_ocaml_Runtime[17],_aw6_); - try - {var - _aw7_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[123], - patrimoine_total_demandeur, - seuil_l822_5_patrimoine) - ?patrimoine_total_demandeur - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$402)}, - _aw8_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_QN_,1)}, - _aw9_= - [0, - function(param) - {function _azC_(param){return demandeur[3][2]} - function _azD_(param) - {var - _azU_= - caml_call2 - (Runtime_ocaml_Runtime[128], - patrimoine_total_demandeur, - seuil_l822_5_patrimoine); - return caml_call2(Runtime_ocaml_Runtime[29],_QO_,_azU_)} - var - _azE_= - [0, - function(param) - {function _azF_(param){throw Runtime_ocaml_Runtime[2]} - function _azG_(param){return 0} - var - _azH_= - [0, - function(param) - {function _azI_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$403)} - function _azJ_(param) - {var _azN_=menage[1],_azO_=0; - function _azP_(acc,prestation) - {var - _azR_=caml_call2(Runtime_ocaml_Runtime[86],prestation,_QP_), - _azS_=caml_call2(Runtime_ocaml_Runtime[86],prestation,_QQ_), - _azT_=caml_call2(Runtime_ocaml_Runtime[84],_azS_,_azR_); - return caml_call2(Runtime_ocaml_Runtime[84],acc,_azT_)} - var - _azQ_= - caml_call3(Runtime_ocaml_Runtime[136],_azP_,_azO_,_azN_); - return caml_call2(Runtime_ocaml_Runtime[29],_QR_,_azQ_)} - var - _azK_= - [0, - function(param) - {function _azL_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$404)} - function _azM_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_QS_,menage[2][2])} - return caml_call4 - (Runtime_ocaml_Runtime[63],_QT_,[0],_azM_,_azL_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_QU_,_azK_,_azJ_,_azI_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_QV_,_azH_,_azG_,_azF_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_QW_,_azE_,_azD_,_azC_)}], - _aw__=caml_call4(Runtime_ocaml_Runtime[63],_QX_,_aw9_,_aw8_,_aw7_)} - catch(_azB_) - {_azB_ = caml_wrap_exception(_azB_); - if(_azB_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_QM_]; - throw _azB_} - caml_call3 - (Runtime_ocaml_Runtime[28],_QY_,Runtime_ocaml_Runtime[13],_aw__); - try - {var - _aw$_=function(param){return 0}, - _axa_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Q0_,1)}, - _axb_= - [0, - function(param) - {function _azz_(param){return 1} - function _azA_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29], - _Q1_, - condition_logement_surface$0)} - return caml_call4(Runtime_ocaml_Runtime[63],_Q2_,[0],_azA_,_azz_)}], - _axc_=caml_call4(Runtime_ocaml_Runtime[63],_Q3_,_axb_,_axa_,_aw$_)} - catch(_azy_) - {_azy_ = caml_wrap_exception(_azy_); - if(_azy_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_QZ_]; - throw _azy_} - var - condition_ouverture_l822_10_pe= - caml_call3 - (Runtime_ocaml_Runtime[28],_Q4_,Runtime_ocaml_Runtime[12],_axc_); - try - {var - _axd_= - function(param) - {var _azx_=caml_call3(Runtime_ocaml_Runtime[60],5,0,0); - return caml_call2 - (Runtime_ocaml_Runtime[95],age_l161_17_2_secu,_azx_)}, - _axe_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Q6_,1)}, - _axf_=caml_call4(Runtime_ocaml_Runtime[63],_Q7_,[0],_axe_,_axd_)} - catch(_azw_) - {_azw_ = caml_wrap_exception(_azw_); - if(_azw_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Q5_]; - throw _azw_} - var - age_l351_8_1_secu= - caml_call3 - (Runtime_ocaml_Runtime[28],_Q8_,Runtime_ocaml_Runtime[17],_axf_); - try - {var - _axg_=function(param){return 0}, - _axh_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Q__,1)}, - _axi_= - [0, - function(param) - {function _azn_(param){return 1} - function _azo_(param) - {var - _azt_= - caml_call2 - (Runtime_ocaml_Runtime[83], - condition_logement_location_ti, - condition_ouverture_l822_10_pe), - _azu_= - caml_call2 - (Runtime_ocaml_Runtime[83], - condition_logement_mode_occupa, - _azt_), - _azv_= - caml_call2 - (Runtime_ocaml_Runtime[83], - condition_logement_residence_p$0, - _azu_); - return caml_call2(Runtime_ocaml_Runtime[29],_Q$_,_azv_)} - var - _azp_= - [0, - function(param) - {function _azq_(param){return 0} - function _azr_(param) - {var - _azs_= - caml_call2 - (Runtime_ocaml_Runtime[84], - condition_non_ouverture_l822_8, - condition_non_ouverture_l822_9); - return caml_call2(Runtime_ocaml_Runtime[29],_Ra_,_azs_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Rb_,[0],_azr_,_azq_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Rc_,_azp_,_azo_,_azn_)}], - _axj_=caml_call4(Runtime_ocaml_Runtime[63],_Rd_,_axi_,_axh_,_axg_)} - catch(_azm_) - {_azm_ = caml_wrap_exception(_azm_); - if(_azm_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Q9_]; - throw _azm_} - var - eligibilite_logement= - caml_call3 - (Runtime_ocaml_Runtime[28],_Re_,Runtime_ocaml_Runtime[12],_axj_); - function _axk_(personne_a_charge) - {try - {var - _ayX_=function(param){return 0}, - _ayY_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Rg_,1)}, - _ayZ_= - [0, - function(param) - {function _ay2_(param){return 1} - function _ay3_(param) - {if(0 === personne_a_charge[0]) - var _ay4_=0; - else - {var - parent=personne_a_charge[1], - _ay5_=parent[6], - _ay6_= - caml_call3 - (Runtime_ocaml_Runtime[94],2,parent[1],age_l161_17_2_secu), - _ay7_= - caml_call2(Runtime_ocaml_Runtime[120],_ay6_,date_courante), - _ay8_=caml_call2(Runtime_ocaml_Runtime[83],_ay7_,_ay5_); - try - {var _ay9_=caml_call3(Runtime_ocaml_Runtime[60],65,0,0)} - catch(_azl_) - {_azl_ = caml_wrap_exception(_azl_); - if(_azl_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ri_]; - throw _azl_} - var - _ay__= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Rj_, - embed_verification_age_inferie$2, - [0,parent[1],date_courante,_ay9_]), - result= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Rk_, - verification_age_inferieur_ou_$5), - _ay__), - result$0=[0,result[1]]; - caml_call2(Runtime_ocaml_Runtime[29],_Rl_,1); - var - _ay$_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Rm_, - embed_verification_age_inferie$1, - result$0), - _aza_=caml_call2(Runtime_ocaml_Runtime[27],_Rn_,_ay$_)[1], - _azb_=caml_call2(Runtime_ocaml_Runtime[83],parent[7],_aza_), - _azc_= - caml_call3 - (Runtime_ocaml_Runtime[94],2,parent[1],age_l351_8_1_secu), - _azd_= - caml_call2(Runtime_ocaml_Runtime[120],_azc_,date_courante), - _aze_=caml_call2(Runtime_ocaml_Runtime[84],_azd_,_azb_), - _azf_=caml_call2(Runtime_ocaml_Runtime[84],_aze_,_ay8_), - _azg_=caml_call1(Runtime_ocaml_Runtime[39],cst_1_25), - _azh_= - caml_call2 - (Runtime_ocaml_Runtime[104], - plafond_individuel_l815_9_secu, - _azg_), - _azi_=caml_call2(Runtime_ocaml_Runtime[118],parent[2],_azh_), - _azj_=caml_call2(Runtime_ocaml_Runtime[83],_azi_,_azf_), - _azk_=caml_call2(Runtime_ocaml_Runtime[86],parent[4],_Ro_), - _ay4_=caml_call2(Runtime_ocaml_Runtime[83],_azk_,_azj_)} - return caml_call2(Runtime_ocaml_Runtime[29],_Rh_,_ay4_)} + _alB_ = + caml_call2(Runtime_ocaml_Runtime[27], _HN_, _alA_)[1], + _alv_ = caml_call2(Runtime_ocaml_Runtime[84], _alB_, _alw_); + } + return caml_call2(Runtime_ocaml_Runtime[29], _HH_, _alv_); + } return caml_call4 - (Runtime_ocaml_Runtime[63],_Rp_,[0],_ay3_,_ay2_)}], - _ay0_=caml_call4(Runtime_ocaml_Runtime[63],_Rq_,_ayZ_,_ayY_,_ayX_); - return _ay0_} - catch(_ay1_) - {_ay1_ = caml_wrap_exception(_ay1_); - if(_ay1_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Rf_]; - throw _ay1_}} - var - condition_2_r823_4= + (Runtime_ocaml_Runtime[63], _HO_, [0], _alu_, _alt_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _HP_, _als_, _alr_, _alq_); + }], + _agZ_ = caml_call4(Runtime_ocaml_Runtime[63], _HQ_, _agY_, _agX_, _agW_); + } + catch(_alp_){ + var _agV_ = caml_wrap_exception(_alp_); + if(_agV_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _HE_], 1); + throw caml_maybe_attach_backtrace(_agV_, 0); + } + var + condition_logement_location_ti = + caml_call3 + (Runtime_ocaml_Runtime[28], _HR_, Runtime_ocaml_Runtime[12], _agZ_); + try{ + var + _ag1_ = function(param){return date_courante;}, + _ag2_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _HT_, 1); + }, + _ag3_ = caml_call4(Runtime_ocaml_Runtime[63], _HU_, [0], _ag2_, _ag1_), + prestations_familiales_dot_dat = caml_call3 - (Runtime_ocaml_Runtime[28],_Rr_,Runtime_ocaml_Runtime[10],_axk_); - try - {var - _axl_=function(param){return 0}, - _axm_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Rt_,1)}, - _axn_= - [0, - function(param) - {function _ayT_(param){return 1} - function _ayU_(param) - {var - _ayV_= - caml_call2 - (Runtime_ocaml_Runtime[83], - condition_logement_mode_occupa, - eligibilite_logement), - _ayW_= - caml_call2 - (Runtime_ocaml_Runtime[83],condition_nationalite,_ayV_); - return caml_call2(Runtime_ocaml_Runtime[29],_Ru_,_ayW_)} - return caml_call4(Runtime_ocaml_Runtime[63],_Rv_,[0],_ayU_,_ayT_)}], - _axo_=caml_call4(Runtime_ocaml_Runtime[63],_Rw_,_axn_,_axm_,_axl_)} - catch(_ayS_) - {_ayS_ = caml_wrap_exception(_ayS_); - if(_ayS_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Rs_]; - throw _ayS_} - var - eligibilite= + (Runtime_ocaml_Runtime[28], _HV_, Runtime_ocaml_Runtime[16], _ag3_); + } + catch(_alo_){ + var _ag0_ = caml_wrap_exception(_alo_); + if(_ag0_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _HS_], 1); + throw caml_maybe_attach_backtrace(_ag0_, 0); + } + try{ + var + _ag5_ = function(param){return _HX_;}, + _ag6_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _HY_, 1); + }, + _ag7_ = caml_call4(Runtime_ocaml_Runtime[63], _HZ_, [0], _ag6_, _ag5_), + prestations_familiales_dot_pre = caml_call3 - (Runtime_ocaml_Runtime[28],_Rx_,Runtime_ocaml_Runtime[12],_axo_); - function _axp_(personne_a_charge) - {try - {var - _axW_=function(param){return 0}, - _axX_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Rz_,1)}, - _axY_= - function(param) - {function _ayd_(param){return 1} - function _aye_(param) - {if(0 === personne_a_charge[0]) - var - enfant=personne_a_charge[1], - _ayL_=enfant[3], - _ayM_=enfant[4], - _ayN_=0 === enfant[8][0]?_RA_:_RG_, - _ayO_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _RB_, - embed_enfant_prestations_famil, - [0, - enfant[1], - enfant[7], - enfant[6], - enfant[5], - _ayN_, - _ayM_, - _ayL_]), - _ayP_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _RC_, - prestations_familiales_dot_dro), - _ayO_), - _ayQ_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _RD_, - Runtime_ocaml_Runtime[12], - _ayP_), - _ayR_=caml_call2(Runtime_ocaml_Runtime[27],_RE_,_ayQ_); - else - var _ayR_=0; - return caml_call2(Runtime_ocaml_Runtime[29],_RF_,_ayR_)} - var - _ayf_= - [0, - function(param) - {function _ayg_(param){throw Runtime_ocaml_Runtime[2]} - function _ayh_(param){return 0} + (Runtime_ocaml_Runtime[28], + _H0_, + embed_element_prestations_fami, + _ag7_); + } + catch(_aln_){ + var _ag4_ = caml_wrap_exception(_aln_); + if(_ag4_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _HW_], 1); + throw caml_maybe_attach_backtrace(_ag4_, 0); + } + try{ + var + _ag9_ = function(param){return menage[9];}, + _ag__ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _H2_, 1); + }, + _ag$_ = caml_call4(Runtime_ocaml_Runtime[63], _H3_, [0], _ag__, _ag9_), + prestations_familiales_dot_res = + caml_call3(Runtime_ocaml_Runtime[28], _H4_, embed_collectivite, _ag$_); + } + catch(_alm_){ + var _ag8_ = caml_wrap_exception(_alm_); + if(_ag8_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _H1_], 1); + throw caml_maybe_attach_backtrace(_ag8_, 0); + } + function prestations_familiales_dot_age(param){ + function _ak8_(param){ + return caml_call3(Runtime_ocaml_Runtime[60], 21, 0, 0); + } + function _ak9_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _H5_, 1); + } + var + _ak__ = + [0, + function(param){ + function _ala_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _alb_(param){return 0;} + var + _alc_ = + [0, + function(param){ + function _ald_(param){ + return caml_call3(Runtime_ocaml_Runtime[60], 22, 0, 0); + } + function _ale_(param){ + switch(menage[9][0]){ + case 0: + var _all_ = 1; break; + case 1: + var _all_ = 1; break; + case 2: + var _all_ = 1; break; + case 3: + var _all_ = 1; break; + case 4: + var _all_ = 0; break; + case 5: + var _all_ = 0; break; + case 6: + var _all_ = 0; break; + case 7: + var _all_ = 0; break; + default: var _all_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _H6_, _all_); + } + var + _alf_ = + [0, + function(param){ + function _alg_(param){ + return caml_call3(Runtime_ocaml_Runtime[60], 22, 0, 0); + } + function _alh_(param){ + switch(menage[9][0]){ + case 0: + var _ali_ = 0; break; + case 1: + var _ali_ = 0; break; + case 2: + var _ali_ = 0; break; + case 3: + var _ali_ = 0; break; + case 4: + var _ali_ = 1; break; + case 5: + var _ali_ = 1; break; + case 6: + var _ali_ = 0; break; + case 7: + var _ali_ = 0; break; + default: var _ali_ = 0; + } + var + _alj_ = + caml_call2 + (Runtime_ocaml_Runtime[130], + date_courante, + date_entree_vigueur_differee_c$0), + _alk_ = caml_call2(Runtime_ocaml_Runtime[83], _alj_, _ali_); + return caml_call2(Runtime_ocaml_Runtime[29], _H7_, _alk_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _H8_, [0], _alh_, _alg_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _H9_, _alf_, _ale_, _ald_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _H__, _alc_, _alb_, _ala_); + }], + _ak$_ = caml_call4(Runtime_ocaml_Runtime[63], _H$_, _ak__, _ak9_, _ak8_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _Ia_, + Runtime_ocaml_Runtime[17], + _ak$_); + } + var + _aha_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _Ib_, eligibilite_prestations_famili), + [0, + prestations_familiales_dot_dat, + prestations_familiales_dot_pre, + prestations_familiales_dot_res, + prestations_familiales_dot_age]), + result$0 = caml_call2(Runtime_ocaml_Runtime[27], _Ic_, _aha_), + prestations_familiales_dot_age$0 = result$0[1], + prestations_familiales_dot_dro = result$0[2]; + try{ + var + _ahc_ = function(param){return 0;}, + _ahd_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Ie_, 1); + }, + _ahe_ = + [0, + function(param){ + function _akV_(param){return 1;} + function _akW_(param){ + switch(menage[2][3][0]){ + case 0: + var _ak7_ = 1; break; + case 1: + var _ak7_ = 1; break; + case 2: + var _ak7_ = menage[2][1]; break; + case 3: + var _ak7_ = 1; break; + default: var _ak7_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _If_, _ak7_); + } + var + _akX_ = + [0, + function(param){ + function _akY_(param){return 0;} + function _akZ_(param){ + switch(menage[2][3][0]){ + case 0: var - _ayi_= - [0, - function(param) - {function _ayj_(param){return 0} - function _ayk_(param) - {if(0 === personne_a_charge[0]) - {var enfant=personne_a_charge[1],_ayH_=enfant[2]; - if(0 === _ayH_[0]) - var _ayI_=0; - else - var - conditions=_ayH_[1], - _ayI_=caml_call1(Runtime_ocaml_Runtime[67],conditions[1]); - var _ayJ_=_ayI_} - else - var _ayJ_=0; - var - _ayK_= + usufruit_ou_propriete_famille$0 = usufruit_ou_propriete_famille; + break; + case 1: + var usufruit_ou_propriete_famille$0 = 0; break; + case 2: + var usufruit_ou_propriete_famille$0 = 0; break; + case 3: + var usufruit_ou_propriete_famille$0 = 0; break; + default: var usufruit_ou_propriete_famille$0 = 0; + } + return caml_call2 + (Runtime_ocaml_Runtime[29], + _Ig_, + usufruit_ou_propriete_famille$0); + } + var + _ak0_ = + [0, + function(param){ + function _ak1_(param){return 1;} + function _ak2_(param){ + var match = menage[2][6]; + if(0 === match[0]) + var parts = match[1], parts$0 = parts; + else + var + parts$0 = caml_call1(Runtime_ocaml_Runtime[39], cst_0$342); + var + _ak3_ = + caml_call2 + (Runtime_ocaml_Runtime[112], + parts$0, + seuil_l822_3_parts_usufruit), + match$0 = menage[2][4]; + if(0 === match$0[0]) + var parts$1 = match$0[1], parts$2 = parts$1; + else + var + parts$2 = caml_call1(Runtime_ocaml_Runtime[39], cst_0$341); + var + _ak4_ = + caml_call2 + (Runtime_ocaml_Runtime[112], + parts$2, + seuil_l822_3_parts_propriete), + _ak5_ = caml_call2(Runtime_ocaml_Runtime[83], _ak4_, _ak3_), + _ak6_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + usufruit_ou_propriete_famille, + _ak5_); + return caml_call2(Runtime_ocaml_Runtime[29], _Ih_, _ak6_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ii_, [0], _ak2_, _ak1_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ij_, _ak0_, _akZ_, _akY_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ik_, _akX_, _akW_, _akV_); + }], + _ahf_ = caml_call4(Runtime_ocaml_Runtime[63], _Il_, _ahe_, _ahd_, _ahc_); + } + catch(_akU_){ + var _ahb_ = caml_wrap_exception(_akU_); + if(_ahb_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Id_], 1); + throw caml_maybe_attach_backtrace(_ahb_, 0); + } + var + condition_logement_mode_occupa = + caml_call3 + (Runtime_ocaml_Runtime[28], _Im_, Runtime_ocaml_Runtime[12], _ahf_); + try{ + var + _ahh_ = + function(param){ + function _akr_(param){return 0;} + function _aks_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Io_, 1); + } + var + _akt_ = + [0, + function(param){ + function _aku_(param){return 1;} + function _akv_(param){ + var + _akJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_9), + _akK_ = caml_call1(Runtime_ocaml_Runtime[68], menage[3]), + _akL_ = + caml_call2(Runtime_ocaml_Runtime[91], menage[4], _akK_), + _akM_ = caml_call2(Runtime_ocaml_Runtime[102], _akL_, _akJ_); + switch(menage[5][0]){ + case 0: + var _akN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_9$0); + break; + case 1: + var _akN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_16); + break; + case 2: + var _akN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_16$0); + break; + case 3: + var _akN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_16$1); + break; + case 4: + var _akN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_9$1); + break; + default: + var _akN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_16$2); + } + var + condition_logement_surface_min = + caml_call2(Runtime_ocaml_Runtime[91], _akN_, _akM_), + _akO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_8), + _akP_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_logement, + _akO_), + _akQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_70), + _akR_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + condition_logement_surface_min, + _akQ_); + if(caml_call2(Runtime_ocaml_Runtime[83], _akR_, _akP_)) + var + _akS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_70$0), + _akT_ = + caml_call2(Runtime_ocaml_Runtime[126], menage[2][8], _akS_); + else + var + _akT_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + menage[2][8], + condition_logement_surface_min); + return caml_call2(Runtime_ocaml_Runtime[29], _Ip_, _akT_); + } + var + _akw_ = + [0, + function(param){ + function _akx_(param){return 1;} + function _aky_(param){ + var + _akF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$248), + _akG_ = + caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_logement, + _akF_) + ? caml_call1(Runtime_ocaml_Runtime[46], cst_9$2) + : caml_call1(Runtime_ocaml_Runtime[46], cst_16$3), + _akH_ = + caml_call2(Runtime_ocaml_Runtime[126], menage[2][8], _akG_), + _akI_ = + caml_call2(Runtime_ocaml_Runtime[83], menage[8], _akH_); + return caml_call2(Runtime_ocaml_Runtime[29], _Iq_, _akI_); + } + var + _akz_ = + [0, + function(param){ + function _akA_(param){return 0;} + function _akB_(param){ + var + _akC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$104), + _akD_ = caml_call2 - (Runtime_ocaml_Runtime[83], - septieme_alinea_l823_1_applica, - _ayJ_); - return caml_call2(Runtime_ocaml_Runtime[29],_RH_,_ayK_)} - var - _ayl_= - [0, - function(param) - {function _aym_(param){return 0} - function _ayn_(param) - {if(0 === personne_a_charge[0]) - {var - enfant=personne_a_charge[1], - _ayz_=enfant[9], - _ayA_= + (Runtime_ocaml_Runtime[121], + nombre_personnes_logement, + _akC_), + _akE_ = + caml_call2(Runtime_ocaml_Runtime[83], menage[8], _akD_); + return caml_call2(Runtime_ocaml_Runtime[29], _Ir_, _akE_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Is_, [0], _akB_, _akA_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _It_, _akz_, _aky_, _akx_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Iu_, _akw_, _akv_, _aku_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Iv_, _akt_, _aks_, _akr_); + }, + _ahi_ = function(param){return 1;}, + _ahj_ = + [0, + function(param){return caml_call1(condition_logement_surface, 0);}], + _ahk_ = caml_call4(Runtime_ocaml_Runtime[63], _Iw_, _ahj_, _ahi_, _ahh_); + } + catch(_akq_){ + var _ahg_ = caml_wrap_exception(_akq_); + if(_ahg_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _In_], 1); + throw caml_maybe_attach_backtrace(_ahg_, 0); + } + var + condition_logement_surface$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Ix_, Runtime_ocaml_Runtime[12], _ahk_); + try{ + var + _ahm_ = function(param){return ouverture_droits_retraite_dot_$0;}, + _ahn_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Iz_, 1); + }, + _aho_ = caml_call4(Runtime_ocaml_Runtime[63], _IA_, [0], _ahn_, _ahm_); + } + catch(_akp_){ + var _ahl_ = caml_wrap_exception(_akp_); + if(_ahl_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Iy_], 1); + throw caml_maybe_attach_backtrace(_ahl_, 0); + } + var + age_l161_17_2_secu = + caml_call3 + (Runtime_ocaml_Runtime[28], _IB_, Runtime_ocaml_Runtime[17], _aho_); + try{ + var + _ahq_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[123], + patrimoine_total_demandeur, + seuil_l822_5_patrimoine) + ? patrimoine_total_demandeur + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$343); + }, + _ahr_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ID_, 1); + }, + _ahs_ = + [0, + function(param){ + function _aj8_(param){return demandeur[3][2];} + function _aj9_(param){ + var + _ako_ = + caml_call2 + (Runtime_ocaml_Runtime[128], + patrimoine_total_demandeur, + seuil_l822_5_patrimoine); + return caml_call2(Runtime_ocaml_Runtime[29], _IE_, _ako_); + } + var + _aj__ = + [0, + function(param){ + function _aj$_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _aka_(param){return 0;} + var + _akb_ = + [0, + function(param){ + function _akc_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$344); + } + function _akd_(param){ + var _akh_ = menage[1], _aki_ = 0; + function _akj_(acc, prestation){ + var + _akl_ = + caml_call2(Runtime_ocaml_Runtime[86], prestation, _IF_), + _akm_ = + caml_call2(Runtime_ocaml_Runtime[86], prestation, _IG_), + _akn_ = caml_call2(Runtime_ocaml_Runtime[84], _akm_, _akl_); + return caml_call2(Runtime_ocaml_Runtime[84], acc, _akn_); + } + var + _akk_ = + caml_call3(Runtime_ocaml_Runtime[136], _akj_, _aki_, _akh_); + return caml_call2(Runtime_ocaml_Runtime[29], _IH_, _akk_); + } + var + _ake_ = + [0, + function(param){ + function _akf_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$345); + } + function _akg_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _II_, menage[2][2]); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _IJ_, [0], _akg_, _akf_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _IK_, _ake_, _akd_, _akc_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _IL_, _akb_, _aka_, _aj$_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _IM_, _aj__, _aj9_, _aj8_); + }], + _aht_ = caml_call4(Runtime_ocaml_Runtime[63], _IN_, _ahs_, _ahr_, _ahq_); + } + catch(_aj7_){ + var _ahp_ = caml_wrap_exception(_aj7_); + if(_ahp_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _IC_], 1); + throw caml_maybe_attach_backtrace(_ahp_, 0); + } + caml_call3 + (Runtime_ocaml_Runtime[28], _IO_, Runtime_ocaml_Runtime[13], _aht_); + try{ + var + _ahv_ = function(param){return 0;}, + _ahw_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _IQ_, 1); + }, + _ahx_ = + [0, + function(param){ + function _aj5_(param){return 1;} + function _aj6_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], + _IR_, + condition_logement_surface$0); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _IS_, [0], _aj6_, _aj5_); + }], + _ahy_ = caml_call4(Runtime_ocaml_Runtime[63], _IT_, _ahx_, _ahw_, _ahv_); + } + catch(_aj4_){ + var _ahu_ = caml_wrap_exception(_aj4_); + if(_ahu_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _IP_], 1); + throw caml_maybe_attach_backtrace(_ahu_, 0); + } + var + condition_ouverture_l822_10_pe = + caml_call3 + (Runtime_ocaml_Runtime[28], _IU_, Runtime_ocaml_Runtime[12], _ahy_); + try{ + var + _ahA_ = + function(param){ + var _aj3_ = caml_call3(Runtime_ocaml_Runtime[60], 5, 0, 0); + return caml_call2 + (Runtime_ocaml_Runtime[95], age_l161_17_2_secu, _aj3_); + }, + _ahB_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _IW_, 1); + }, + _ahC_ = caml_call4(Runtime_ocaml_Runtime[63], _IX_, [0], _ahB_, _ahA_); + } + catch(_aj2_){ + var _ahz_ = caml_wrap_exception(_aj2_); + if(_ahz_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _IV_], 1); + throw caml_maybe_attach_backtrace(_ahz_, 0); + } + var + age_l351_8_1_secu = + caml_call3 + (Runtime_ocaml_Runtime[28], _IY_, Runtime_ocaml_Runtime[17], _ahC_); + try{ + var + _ahE_ = function(param){return 0;}, + _ahF_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _I0_, 1); + }, + _ahG_ = + [0, + function(param){ + function _ajT_(param){return 1;} + function _ajU_(param){ + var + _ajZ_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + condition_logement_location_ti, + condition_ouverture_l822_10_pe), + _aj0_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + condition_logement_mode_occupa, + _ajZ_), + _aj1_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + condition_logement_residence_p$0, + _aj0_); + return caml_call2(Runtime_ocaml_Runtime[29], _I1_, _aj1_); + } + var + _ajV_ = + [0, + function(param){ + function _ajW_(param){return 0;} + function _ajX_(param){ + var + _ajY_ = + caml_call2 + (Runtime_ocaml_Runtime[84], + condition_non_ouverture_l822_8, + condition_non_ouverture_l822_9); + return caml_call2(Runtime_ocaml_Runtime[29], _I2_, _ajY_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _I3_, [0], _ajX_, _ajW_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _I4_, _ajV_, _ajU_, _ajT_); + }], + _ahH_ = caml_call4(Runtime_ocaml_Runtime[63], _I5_, _ahG_, _ahF_, _ahE_); + } + catch(_ajS_){ + var _ahD_ = caml_wrap_exception(_ajS_); + if(_ahD_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _IZ_], 1); + throw caml_maybe_attach_backtrace(_ahD_, 0); + } + var + eligibilite_logement = + caml_call3 + (Runtime_ocaml_Runtime[28], _I6_, Runtime_ocaml_Runtime[12], _ahH_); + function _ahI_(personne_a_charge){ + try{ + var + _ajq_ = function(param){return 0;}, + _ajr_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _I8_, 1); + }, + _ajs_ = + [0, + function(param){ + function _ajv_(param){return 1;} + function _ajw_(param){ + if(0 === personne_a_charge[0]) + var _ajx_ = 0; + else{ + var + parent = personne_a_charge[1], + _ajy_ = parent[6], + _ajz_ = + caml_call3 + (Runtime_ocaml_Runtime[94], 2, parent[1], age_l161_17_2_secu), + _ajA_ = + caml_call2(Runtime_ocaml_Runtime[120], _ajz_, date_courante), + _ajB_ = caml_call2(Runtime_ocaml_Runtime[83], _ajA_, _ajy_); + try{var _ajD_ = caml_call3(Runtime_ocaml_Runtime[60], 65, 0, 0);} + catch(_ajR_){ + var _ajC_ = caml_wrap_exception(_ajR_); + if(_ajC_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _I__], 1); + throw caml_maybe_attach_backtrace(_ajC_, 0); + } + var + _ajE_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _I$_, + embed_verification_age_inferie$0, + [0, parent[1], date_courante, _ajD_]), + result = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Ja_, + verification_age_inferieur_ou_), + _ajE_), + result$0 = [0, result[1]]; + caml_call2(Runtime_ocaml_Runtime[29], _Jb_, 1); + var + _ajF_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Jc_, + embed_verification_age_inferie, + result$0), + _ajG_ = caml_call2(Runtime_ocaml_Runtime[27], _Jd_, _ajF_)[1], + _ajH_ = caml_call2(Runtime_ocaml_Runtime[83], parent[7], _ajG_), + _ajI_ = + caml_call3 + (Runtime_ocaml_Runtime[94], 2, parent[1], age_l351_8_1_secu), + _ajJ_ = + caml_call2(Runtime_ocaml_Runtime[120], _ajI_, date_courante), + _ajK_ = caml_call2(Runtime_ocaml_Runtime[84], _ajJ_, _ajH_), + _ajL_ = caml_call2(Runtime_ocaml_Runtime[84], _ajK_, _ajB_), + _ajM_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1_25), + _ajN_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + plafond_individuel_l815_9_secu, + _ajM_), + _ajO_ = caml_call2(Runtime_ocaml_Runtime[118], parent[2], _ajN_), + _ajP_ = caml_call2(Runtime_ocaml_Runtime[83], _ajO_, _ajL_), + _ajQ_ = caml_call2(Runtime_ocaml_Runtime[86], parent[4], _Je_), + _ajx_ = caml_call2(Runtime_ocaml_Runtime[83], _ajQ_, _ajP_); + } + return caml_call2(Runtime_ocaml_Runtime[29], _I9_, _ajx_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Jf_, [0], _ajw_, _ajv_); + }], + _ajt_ = + caml_call4(Runtime_ocaml_Runtime[63], _Jg_, _ajs_, _ajr_, _ajq_); + return _ajt_; + } + catch(_aju_){ + var _ajp_ = caml_wrap_exception(_aju_); + if(_ajp_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _I7_], 1); + throw caml_maybe_attach_backtrace(_ajp_, 0); + } + } + var + condition_2_r823_4 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Jh_, Runtime_ocaml_Runtime[10], _ahI_); + try{ + var + _ahK_ = function(param){return 0;}, + _ahL_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Jj_, 1); + }, + _ahM_ = + [0, + function(param){ + function _ajl_(param){return 1;} + function _ajm_(param){ + var + _ajn_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + condition_logement_mode_occupa, + eligibilite_logement), + _ajo_ = + caml_call2 + (Runtime_ocaml_Runtime[83], condition_nationalite, _ajn_); + return caml_call2(Runtime_ocaml_Runtime[29], _Jk_, _ajo_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Jl_, [0], _ajm_, _ajl_); + }], + _ahN_ = caml_call4(Runtime_ocaml_Runtime[63], _Jm_, _ahM_, _ahL_, _ahK_); + } + catch(_ajk_){ + var _ahJ_ = caml_wrap_exception(_ajk_); + if(_ahJ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ji_], 1); + throw caml_maybe_attach_backtrace(_ahJ_, 0); + } + var + eligibilite = + caml_call3 + (Runtime_ocaml_Runtime[28], _Jn_, Runtime_ocaml_Runtime[12], _ahN_); + function _ahO_(personne_a_charge){ + try{ + var + _aip_ = function(param){return 0;}, + _aiq_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Jp_, 1); + }, + _air_ = + function(param){ + function _aiI_(param){return 1;} + function _aiJ_(param){ + if(0 === personne_a_charge[0]) + var + enfant = personne_a_charge[1], + _ajd_ = enfant[3], + _aje_ = enfant[4], + _ajf_ = 0 === enfant[8][0] ? _Jq_ : _Jw_, + _ajg_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Jr_, + embed_enfant_prestations_famil, + [0, + enfant[1], + enfant[7], + enfant[6], + enfant[5], + _ajf_, + _aje_, + _ajd_]), + _ajh_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Js_, + prestations_familiales_dot_dro), + _ajg_), + _aji_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Jt_, + Runtime_ocaml_Runtime[12], + _ajh_), + _ajj_ = caml_call2(Runtime_ocaml_Runtime[27], _Ju_, _aji_); + else + var _ajj_ = 0; + return caml_call2(Runtime_ocaml_Runtime[29], _Jv_, _ajj_); + } + var + _aiK_ = + [0, + function(param){ + function _aiL_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _aiM_(param){return 0;} + var + _aiN_ = + [0, + function(param){ + function _aiO_(param){return 0;} + function _aiP_(param){ + if(0 === personne_a_charge[0]){ + var enfant = personne_a_charge[1], match = enfant[2]; + if(0 === match[0]) + var _aja_ = 0; + else + var + conditions = match[1], + _aja_ = caml_call1(Runtime_ocaml_Runtime[67], conditions[1]); + var _ajb_ = _aja_; + } + else + var _ajb_ = 0; + var + _ajc_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + septieme_alinea_l823_1_applica, + _ajb_); + return caml_call2(Runtime_ocaml_Runtime[29], _Jx_, _ajc_); + } + var + _aiQ_ = + [0, + function(param){ + function _aiR_(param){return 0;} + function _aiS_(param){ + if(0 === personne_a_charge[0]){ + var + enfant = personne_a_charge[1], + _ai4_ = enfant[9], + _ai5_ = + caml_call3 + (Runtime_ocaml_Runtime[94], + 2, + enfant[5], + prestations_familiales_dot_age$0), + _ai6_ = + caml_call2(Runtime_ocaml_Runtime[125], _ai5_, date_courante), + _ai7_ = caml_call2(Runtime_ocaml_Runtime[83], _ai6_, _ai4_); + switch(enfant[7][0]){ + case 0: + var _ai8_ = 0; break; + case 1: + var _ai8_ = 0; break; + default: var _ai8_ = 1; + } + var + _ai9_ = caml_call2(Runtime_ocaml_Runtime[83], _ai8_, _ai7_); + } + else + var _ai9_ = 0; + switch(menage[9][0]){ + case 0: + var _ai__ = 1; break; + case 1: + var _ai__ = 1; break; + case 2: + var _ai__ = 1; break; + case 3: + var _ai__ = 1; break; + case 4: + var _ai__ = 0; break; + case 5: + var _ai__ = 0; break; + case 6: + var _ai__ = 0; break; + case 7: + var _ai__ = 0; break; + default: var _ai__ = 1; + } + var + _ai$_ = caml_call2(Runtime_ocaml_Runtime[83], _ai__, _ai9_); + return caml_call2(Runtime_ocaml_Runtime[29], _Jy_, _ai$_); + } + var + _aiT_ = + [0, + function(param){ + function _aiU_(param){return 0;} + function _aiV_(param){ + if(0 === personne_a_charge[0]){ + var + enfant = personne_a_charge[1], + _aiW_ = enfant[9], + _aiX_ = caml_call3 (Runtime_ocaml_Runtime[94], 2, enfant[5], prestations_familiales_dot_age$0), - _ayB_= - caml_call2(Runtime_ocaml_Runtime[125],_ayA_,date_courante), - _ayC_=caml_call2(Runtime_ocaml_Runtime[83],_ayB_,_ayz_); - switch(enfant[7][0]) - {case 0:var _ayD_=0;break; - case 1:var _ayD_=0;break; - default:var _ayD_=1} - var _ayE_=caml_call2(Runtime_ocaml_Runtime[83],_ayD_,_ayC_)} + _aiY_ = + caml_call2(Runtime_ocaml_Runtime[125], _aiX_, date_courante), + _aiZ_ = caml_call2(Runtime_ocaml_Runtime[83], _aiY_, _aiW_); + switch(enfant[7][0]){ + case 0: + var _ai0_ = 0; break; + case 1: + var _ai0_ = 0; break; + default: var _ai0_ = 1; + } + var + _ai1_ = caml_call2(Runtime_ocaml_Runtime[83], _ai0_, _aiZ_); + } else - var _ayE_=0; - switch(menage[9][0]) - {case 0:var _ayF_=1;break; - case 1:var _ayF_=1;break; - case 2:var _ayF_=1;break; - case 3:var _ayF_=1;break; - case 4:var _ayF_=0;break; - case 5:var _ayF_=0;break; - case 6:var _ayF_=0;break; - case 7:var _ayF_=0;break; - default:var _ayF_=1} - var _ayG_=caml_call2(Runtime_ocaml_Runtime[83],_ayF_,_ayE_); - return caml_call2(Runtime_ocaml_Runtime[29],_RI_,_ayG_)} - var - _ayo_= - [0, - function(param) - {function _ayp_(param){return 0} - function _ayq_(param) - {if(0 === personne_a_charge[0]) - {var - enfant=personne_a_charge[1], - _ayr_=enfant[9], - _ays_= - caml_call3 - (Runtime_ocaml_Runtime[94], - 2, - enfant[5], - prestations_familiales_dot_age$0), - _ayt_= - caml_call2(Runtime_ocaml_Runtime[125],_ays_,date_courante), - _ayu_=caml_call2(Runtime_ocaml_Runtime[83],_ayt_,_ayr_); - switch(enfant[7][0]) - {case 0:var _ayv_=0;break; - case 1:var _ayv_=0;break; - default:var _ayv_=1} - var _ayw_=caml_call2(Runtime_ocaml_Runtime[83],_ayv_,_ayu_)} - else - var _ayw_=0; - switch(menage[9][0]) - {case 0:var _ayx_=0;break; - case 1:var _ayx_=0;break; - case 2:var _ayx_=0;break; - case 3:var _ayx_=0;break; - case 4:var _ayx_=1;break; - case 5:var _ayx_=1;break; - case 6:var _ayx_=0;break; - case 7:var _ayx_=0;break; - default:var _ayx_=0} - var _ayy_=caml_call2(Runtime_ocaml_Runtime[83],_ayx_,_ayw_); - return caml_call2(Runtime_ocaml_Runtime[29],_RJ_,_ayy_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_RK_,[0],_ayq_,_ayp_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_RL_,_ayo_,_ayn_,_aym_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_RM_,_ayl_,_ayk_,_ayj_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_RN_,_ayi_,_ayh_,_ayg_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_RO_,_ayf_,_aye_,_ayd_)}, - _axZ_= - [0, - function(param) - {function _ax2_(param){return 1} - function _ax3_(param) - {var - _ax$_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _RP_, - embed_personne_a_charge, - personne_a_charge), - _aya_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_RQ_,condition_2_r823_4), - _ax$_), - _ayb_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _RR_, - Runtime_ocaml_Runtime[12], - _aya_), - _ayc_=caml_call2(Runtime_ocaml_Runtime[27],_RS_,_ayb_); - return caml_call2(Runtime_ocaml_Runtime[29],_RT_,_ayc_)} - var - _ax4_= - [0, - function(param) - {function _ax5_(param){return 1} - function _ax6_(param) - {if(0 === personne_a_charge[0]) - var _ax7_=0; - else - var - parent=personne_a_charge[1], - _ax8_=caml_call1(Runtime_ocaml_Runtime[39],cst_1_25$0), - _ax9_= - caml_call2 - (Runtime_ocaml_Runtime[104], - plafond_individuel_l815_9_secu, - _ax8_), - _ax__=caml_call2(Runtime_ocaml_Runtime[118],parent[2],_ax9_), - _ax7_=caml_call2(Runtime_ocaml_Runtime[83],parent[5],_ax__); - return caml_call2(Runtime_ocaml_Runtime[29],_RU_,_ax7_)} + var _ai1_ = 0; + switch(menage[9][0]){ + case 0: + var _ai2_ = 0; break; + case 1: + var _ai2_ = 0; break; + case 2: + var _ai2_ = 0; break; + case 3: + var _ai2_ = 0; break; + case 4: + var _ai2_ = 1; break; + case 5: + var _ai2_ = 1; break; + case 6: + var _ai2_ = 0; break; + case 7: + var _ai2_ = 0; break; + default: var _ai2_ = 0; + } + var + _ai3_ = caml_call2(Runtime_ocaml_Runtime[83], _ai2_, _ai1_); + return caml_call2(Runtime_ocaml_Runtime[29], _Jz_, _ai3_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _JA_, [0], _aiV_, _aiU_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _JB_, _aiT_, _aiS_, _aiR_); + }]; return caml_call4 - (Runtime_ocaml_Runtime[63],_RV_,[0],_ax6_,_ax5_)}]; + (Runtime_ocaml_Runtime[63], _JC_, _aiQ_, _aiP_, _aiO_); + }]; return caml_call4 - (Runtime_ocaml_Runtime[63],_RW_,_ax4_,_ax3_,_ax2_)}, - _axY_], - _ax0_=caml_call4(Runtime_ocaml_Runtime[63],_RX_,_axZ_,_axX_,_axW_); - return _ax0_} - catch(_ax1_) - {_ax1_ = caml_wrap_exception(_ax1_); - if(_ax1_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ry_]; - throw _ax1_}} - var - prise_en_compte_personne_a_cha= - caml_call3 - (Runtime_ocaml_Runtime[28],_RY_,Runtime_ocaml_Runtime[10],_axp_); - try - {var - _axq_= - function(param) - {var _axR_=menage[3]; - function _axS_(personne_a_charge) - {var - _axT_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _R0_, - embed_personne_a_charge, - personne_a_charge), - _axU_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _R1_, - prise_en_compte_personne_a_cha), - _axT_), - _axV_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _R2_, - Runtime_ocaml_Runtime[12], - _axU_); - return caml_call2(Runtime_ocaml_Runtime[27],_R3_,_axV_)} - return caml_call2(Runtime_ocaml_Runtime[90],_axS_,_axR_)}, - _axr_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_R4_,1)}, - _axs_=caml_call4(Runtime_ocaml_Runtime[63],_R5_,[0],_axr_,_axq_)} - catch(_axQ_) - {_axQ_ = caml_wrap_exception(_axQ_); - if(_axQ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_RZ_]; - throw _axQ_} - var - _axt_=caml_call1(Runtime_ocaml_Runtime[18],embed_personne_a_charge), - personnes_a_charge_prises_en_c= - caml_call3(Runtime_ocaml_Runtime[28],_R6_,_axt_,_axs_); - try - {var - _axu_= - function(param) - {function _axM_(personne_a_charge) - {if(0 === personne_a_charge[0]) - {var enfant=personne_a_charge[1];return 0 === enfant[8][0]?0:1} - return 0} + (Runtime_ocaml_Runtime[63], _JD_, _aiN_, _aiM_, _aiL_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _JE_, _aiK_, _aiJ_, _aiI_); + }, + _ais_ = + [0, + function(param){ + function _aiv_(param){return 1;} + function _aiw_(param){ var - _axN_= - caml_call2 - (Runtime_ocaml_Runtime[90], - _axM_, - personnes_a_charge_prises_en_c); - function _axO_(personne_a_charge) - {if(0 === personne_a_charge[0]) - {var enfant=personne_a_charge[1],_axP_=enfant[8]; - if(0 === _axP_[0]) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$405); - var coeff=_axP_[1]; - return coeff} - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$406)} - return caml_call2(Runtime_ocaml_Runtime[87],_axO_,_axN_)}, - _axv_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_R8_,1)}, - _axw_=caml_call4(Runtime_ocaml_Runtime[63],_R9_,[0],_axv_,_axu_)} - catch(_axL_) - {_axL_ = caml_wrap_exception(_axL_); - if(_axL_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_R7_]; - throw _axL_} - var - _axx_=caml_call1(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15]), - coefficents_enfants_garde_alte= - caml_call3(Runtime_ocaml_Runtime[28],_R__,_axx_,_axw_); - try - {var - _axy_= - function(param) - {return caml_call1 - (Runtime_ocaml_Runtime[68],personnes_a_charge_prises_en_c)}, - _axz_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Sa_,1)}, - _axA_=caml_call4(Runtime_ocaml_Runtime[63],_Sb_,[0],_axz_,_axy_)} - catch(_axK_) - {_axK_ = caml_wrap_exception(_axK_); - if(_axK_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_R$_]; - throw _axK_} - var - nombre_personnes_a_charge_pris= - caml_call3 - (Runtime_ocaml_Runtime[28],_Sc_,Runtime_ocaml_Runtime[14],_axA_); - try - {var - _axB_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2), - _axC_= - caml_call2 - (Runtime_ocaml_Runtime[112],seuil_l822_3_parts_usufruit,_axB_)} - catch(_axJ_) - {_axJ_ = caml_wrap_exception(_axJ_); - if(_axJ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Sd_]; - throw _axJ_} - if(_axC_) - {try - {var - _axD_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2$0), - _axE_= + _aiE_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _JF_, + embed_personne_a_charge, + personne_a_charge), + _aiF_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _JG_, condition_2_r823_4), + _aiE_), + _aiG_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _JH_, + Runtime_ocaml_Runtime[12], + _aiF_), + _aiH_ = caml_call2(Runtime_ocaml_Runtime[27], _JI_, _aiG_); + return caml_call2(Runtime_ocaml_Runtime[29], _JJ_, _aiH_); + } + var + _aix_ = + [0, + function(param){ + function _aiy_(param){return 1;} + function _aiz_(param){ + if(0 === personne_a_charge[0]) + var _aiA_ = 0; + else + var + parent = personne_a_charge[1], + _aiB_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1_25$0), + _aiC_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + plafond_individuel_l815_9_secu, + _aiB_), + _aiD_ = + caml_call2(Runtime_ocaml_Runtime[118], parent[2], _aiC_), + _aiA_ = + caml_call2(Runtime_ocaml_Runtime[83], parent[5], _aiD_); + return caml_call2(Runtime_ocaml_Runtime[29], _JK_, _aiA_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _JL_, [0], _aiz_, _aiy_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _JM_, _aix_, _aiw_, _aiv_); + }, + _air_], + _ait_ = + caml_call4(Runtime_ocaml_Runtime[63], _JN_, _ais_, _aiq_, _aip_); + return _ait_; + } + catch(_aiu_){ + var _aio_ = caml_wrap_exception(_aiu_); + if(_aio_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Jo_], 1); + throw caml_maybe_attach_backtrace(_aio_, 0); + } + } + var + prise_en_compte_personne_a_cha = + caml_call3 + (Runtime_ocaml_Runtime[28], _JO_, Runtime_ocaml_Runtime[10], _ahO_); + try{ + var + _ahQ_ = + function(param){ + var _aij_ = menage[3]; + function _aik_(personne_a_charge){ + var + _ail_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _JQ_, + embed_personne_a_charge, + personne_a_charge), + _aim_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _JR_, + prise_en_compte_personne_a_cha), + _ail_), + _ain_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _JS_, + Runtime_ocaml_Runtime[12], + _aim_); + return caml_call2(Runtime_ocaml_Runtime[27], _JT_, _ain_); + } + return caml_call2(Runtime_ocaml_Runtime[90], _aik_, _aij_); + }, + _ahR_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _JU_, 1); + }, + _ahS_ = caml_call4(Runtime_ocaml_Runtime[63], _JV_, [0], _ahR_, _ahQ_); + } + catch(_aii_){ + var _ahP_ = caml_wrap_exception(_aii_); + if(_ahP_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _JP_], 1); + throw caml_maybe_attach_backtrace(_ahP_, 0); + } + var + _ahT_ = caml_call1(Runtime_ocaml_Runtime[18], embed_personne_a_charge), + personnes_a_charge_prises_en_c = + caml_call3(Runtime_ocaml_Runtime[28], _JW_, _ahT_, _ahS_); + try{ + var + _ahV_ = + function(param){ + function _aif_(personne_a_charge){ + if(0 !== personne_a_charge[0]) return 0; + var enfant = personne_a_charge[1]; + return 0 === enfant[8][0] ? 0 : 1; + } + var + _aig_ = caml_call2 - (Runtime_ocaml_Runtime[112],seuil_l822_3_parts_propriete,_axD_)} - catch(_axI_) - {_axI_ = caml_wrap_exception(_axI_); - if(_axI_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Se_]; - throw _axI_} - if(_axE_) - {try - {var - _axF_=caml_call3(Runtime_ocaml_Runtime[57],2018,4,1), - _axG_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_axF_)} - catch(_axH_) - {_axH_ = caml_wrap_exception(_axH_); - if(_axH_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Sf_]; - throw _axH_} - if(_axG_) - return [0, - date_courante, - eligibilite, - nombre_personnes_a_charge_pris, - coefficents_enfants_garde_alte, - condition_2_r823_4]; - throw [0,Runtime_ocaml_Runtime[3],_Sg_]} - throw [0,Runtime_ocaml_Runtime[3],_Sh_]} - throw [0,Runtime_ocaml_Runtime[3],_Si_]} - function calcul_allocation_logement(calcul_allocation_logement_in) - {var - mode_occupation=calcul_allocation_logement_in[1], - ressources_menage_sans_arrondi=calcul_allocation_logement_in[2], - situation_familiale=calcul_allocation_logement_in[3], - nombre_personnes_a_charge=calcul_allocation_logement_in[4], - zone=calcul_allocation_logement_in[5], - date_courante=calcul_allocation_logement_in[6], - type_aide=calcul_allocation_logement_in[7], - residence=calcul_allocation_logement_in[8]; - try - {var - _auQ_= - function(param) - {switch(mode_occupation[0]) - {case 0:var location=mode_occupation[1];return [0,location]; - case 1: - var logementfoyer=mode_occupation[1];return [2,logementfoyer]; - case 2: - var proprietaire=mode_occupation[1];return [1,proprietaire]; - case 3:var location$0=mode_occupation[1];return [0,location$0]; - default: - var proprietaire$0=mode_occupation[1];return [1,proprietaire$0]}}, - _auR_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Sk_,1)}, - _auS_=caml_call4(Runtime_ocaml_Runtime[63],_Sl_,[0],_auR_,_auQ_)} - catch(_avM_) - {_avM_ = caml_wrap_exception(_avM_); - if(_avM_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Sj_]; - throw _avM_} - var - categorie_calcul_apl= - caml_call3 - (Runtime_ocaml_Runtime[28],_Sm_,embed_categorie_calcul_a_p_l,_auS_); - try - {var - _auT_= - function(param) - {return arrondi_centaine_superieure(ressources_menage_sans_arrondi)}, - _auU_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_So_,1)}, - _auV_=caml_call4(Runtime_ocaml_Runtime[63],_Sp_,[0],_auU_,_auT_)} - catch(_avL_) - {_avL_ = caml_wrap_exception(_avL_); - if(_avL_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Sn_]; - throw _avL_} - var - ressources_menage_avec_arrondi= - caml_call3 - (Runtime_ocaml_Runtime[28],_Sq_,Runtime_ocaml_Runtime[13],_auV_); - try - {var - _auW_= - function(param) - {switch(situation_familiale[0]) - {case 0:return _Ss_; - case 1:return _St_; - case 2:return _Su_; - case 3:return _Sv_; - case 4:return _Sw_; - default:return _Sx_}}, - _auX_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Sy_,1)}, - _auY_=caml_call4(Runtime_ocaml_Runtime[63],_Sz_,[0],_auX_,_auW_)} - catch(_avK_) - {_avK_ = caml_wrap_exception(_avK_); - if(_avK_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Sr_]; - throw _avK_} - var - situation_familiale_calcul_apl= - caml_call3 - (Runtime_ocaml_Runtime[28],_SA_,embed_situation_familiale_calc,_auY_); - try - {var - _auZ_= - function(param) - {switch(categorie_calcul_apl[0]) - {case 0: - var - location=categorie_calcul_apl[1], - _avn_=location[8], - _avo_=location[7]; - try - {var _avp_=location[1]; - switch(_avp_[0]) - {case 0:var bailleur=_avp_[1],_avq_=bailleur[2];break; - case 1: - var _avq_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$407); - break; - default: - var _avq_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$408)}} - catch(_avG_) - {_avG_ = caml_wrap_exception(_avG_); - if(_avG_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_SC_]; - throw _avG_} - var - _avr_= + (Runtime_ocaml_Runtime[90], + _aif_, + personnes_a_charge_prises_en_c); + function _aih_(personne_a_charge){ + if(0 !== personne_a_charge[0]) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$347); + var enfant = personne_a_charge[1], match = enfant[8]; + if(0 === match[0]) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$346); + var coeff = match[1]; + return coeff; + } + return caml_call2(Runtime_ocaml_Runtime[87], _aih_, _aig_); + }, + _ahW_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _JY_, 1); + }, + _ahX_ = caml_call4(Runtime_ocaml_Runtime[63], _JZ_, [0], _ahW_, _ahV_); + } + catch(_aie_){ + var _ahU_ = caml_wrap_exception(_aie_); + if(_ahU_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _JX_], 1); + throw caml_maybe_attach_backtrace(_ahU_, 0); + } + var + _ahY_ = caml_call1(Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15]), + coefficents_enfants_garde_alte = + caml_call3(Runtime_ocaml_Runtime[28], _J0_, _ahY_, _ahX_); + try{ + var + _ah0_ = + function(param){ + return caml_call1 + (Runtime_ocaml_Runtime[68], personnes_a_charge_prises_en_c); + }, + _ah1_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _J2_, 1); + }, + _ah2_ = caml_call4(Runtime_ocaml_Runtime[63], _J3_, [0], _ah1_, _ah0_); + } + catch(_aid_){ + var _ahZ_ = caml_wrap_exception(_aid_); + if(_ahZ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _J1_], 1); + throw caml_maybe_attach_backtrace(_ahZ_, 0); + } + var + nombre_personnes_a_charge_pris = + caml_call3 + (Runtime_ocaml_Runtime[28], _J4_, Runtime_ocaml_Runtime[14], _ah2_); + try{ + var + _ah4_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2), + _ah5_ = + caml_call2 + (Runtime_ocaml_Runtime[112], seuil_l822_3_parts_usufruit, _ah4_); + } + catch(_aic_){ + var _ah3_ = caml_wrap_exception(_aic_); + if(_ah3_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _J5_], 1); + throw caml_maybe_attach_backtrace(_ah3_, 0); + } + if(! _ah5_) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _J__], 1); + try{ + var + _ah7_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2$0), + _ah8_ = + caml_call2 + (Runtime_ocaml_Runtime[112], seuil_l822_3_parts_propriete, _ah7_); + } + catch(_aib_){ + var _ah6_ = caml_wrap_exception(_aib_); + if(_ah6_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _J6_], 1); + throw caml_maybe_attach_backtrace(_ah6_, 0); + } + if(! _ah8_) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _J9_], 1); + try{ + var + _ah__ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 4, 1), + _ah$_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ah__); + } + catch(_aia_){ + var _ah9_ = caml_wrap_exception(_aia_); + if(_ah9_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _J7_], 1); + throw caml_maybe_attach_backtrace(_ah9_, 0); + } + if(_ah$_) + return [0, + date_courante, + eligibilite, + nombre_personnes_a_charge_pris, + coefficents_enfants_garde_alte, + condition_2_r823_4]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _J8_], 1); + } + function calcul_allocation_logement(calcul_allocation_logement_in){ + var + mode_occupation = calcul_allocation_logement_in[1], + ressources_menage_sans_arrondi = calcul_allocation_logement_in[2], + situation_familiale = calcul_allocation_logement_in[3], + nombre_personnes_a_charge = calcul_allocation_logement_in[4], + zone = calcul_allocation_logement_in[5], + date_courante = calcul_allocation_logement_in[6], + type_aide = calcul_allocation_logement_in[7], + residence = calcul_allocation_logement_in[8]; + try{ + var + _aev_ = + function(param){ + switch(mode_occupation[0]){ + case 0: + var location = mode_occupation[1]; return [0, location]; + case 1: + var logementfoyer = mode_occupation[1]; return [2, logementfoyer]; + case 2: + var proprietaire = mode_occupation[1]; return [1, proprietaire]; + case 3: + var location$0 = mode_occupation[1]; return [0, location$0]; + default: + var proprietaire$0 = mode_occupation[1]; + return [1, proprietaire$0]; + } + }, + _aew_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Ka_, 1); + }, + _aex_ = caml_call4(Runtime_ocaml_Runtime[63], _Kb_, [0], _aew_, _aev_); + } + catch(_afK_){ + var _aeu_ = caml_wrap_exception(_afK_); + if(_aeu_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _J$_], 1); + throw caml_maybe_attach_backtrace(_aeu_, 0); + } + var + categorie_calcul_apl = + caml_call3 + (Runtime_ocaml_Runtime[28], _Kc_, embed_categorie_calcul_a_p_l, _aex_); + try{ + var + _aez_ = + function(param){ + return arrondi_centaine_superieure(ressources_menage_sans_arrondi); + }, + _aeA_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Ke_, 1); + }, + _aeB_ = caml_call4(Runtime_ocaml_Runtime[63], _Kf_, [0], _aeA_, _aez_); + } + catch(_afJ_){ + var _aey_ = caml_wrap_exception(_afJ_); + if(_aey_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Kd_], 1); + throw caml_maybe_attach_backtrace(_aey_, 0); + } + var + ressources_menage_avec_arrondi = + caml_call3 + (Runtime_ocaml_Runtime[28], _Kg_, Runtime_ocaml_Runtime[13], _aeB_); + try{ + var + _aeD_ = + function(param){ + switch(situation_familiale[0]){ + case 0: + return _Ki_; + case 1: + return _Kj_; + case 2: + return _Kk_; + case 3: + return _Kl_; + case 4: + return _Km_; + default: return _Kn_; + } + }, + _aeE_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Ko_, 1); + }, + _aeF_ = caml_call4(Runtime_ocaml_Runtime[63], _Kp_, [0], _aeE_, _aeD_); + } + catch(_afI_){ + var _aeC_ = caml_wrap_exception(_afI_); + if(_aeC_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Kh_], 1); + throw caml_maybe_attach_backtrace(_aeC_, 0); + } + var + situation_familiale_calcul_apl = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Kq_, + embed_situation_familiale_calc, + _aeF_); + try{ + var + _aeH_ = + function(param){ + switch(categorie_calcul_apl[0]){ + case 0: + var + location = categorie_calcul_apl[1], + _afl_ = location[8], + _afm_ = location[7]; + try{ + var match = location[1]; + switch(match[0]){ + case 0: + var bailleur = match[1], _afo_ = bailleur[2]; break; + case 1: + var _afo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$348); + break; + default: + var _afo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$349); + } + } + catch(_afE_){ + var _afn_ = caml_wrap_exception(_afE_); + if(_afn_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ks_], 1); + throw caml_maybe_attach_backtrace(_afn_, 0); + } + var + _afp_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Kt_, + embed_calcul_allocation_logeme$3, + [0, + location[2], + ressources_menage_avec_arrondi, + location[3], + date_courante, + nombre_personnes_a_charge, + situation_familiale_calcul_apl, + zone, + location[4], + location[6], + type_aide, + location[5], + _afo_, + _afm_, + residence, + _afl_]), + result = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Ku_, + calcul_allocation_logement_loc), + _afp_), + _afq_ = + function(param0){ + var + _afB_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Kv_, + Runtime_ocaml_Runtime[13], + param0), + _afC_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _Kw_, result[2]), + _afB_), + _afD_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Kx_, + Runtime_ocaml_Runtime[13], + _afC_); + return caml_call2(Runtime_ocaml_Runtime[27], _Ky_, _afD_); + }, + result$0 = [0, result[1], _afq_]; + caml_call2(Runtime_ocaml_Runtime[29], _Kz_, 1); + var + _afr_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _KA_, + embed_calcul_allocation_logeme, + result$0), + traitement_formule = + caml_call2(Runtime_ocaml_Runtime[27], _KB_, _afr_); + return [0, traitement_formule[1], traitement_formule[2]]; + case 1: + var + proprietaire = categorie_calcul_apl[1], + _afs_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _KC_, + embed_calcul_allocation_logeme$4, + [0, + ressources_menage_avec_arrondi, + nombre_personnes_a_charge, + situation_familiale_calcul_apl, + zone, + residence, + date_courante, + proprietaire[1], + proprietaire[8], + proprietaire[10][2], + proprietaire[5], + proprietaire[6], + proprietaire[3], + proprietaire[2], + proprietaire[7], + proprietaire[11]]), + result$1 = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _KD_, + calcul_allocation_logement_acc), + _afs_), + _aft_ = + function(param0){ + var + _afy_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _KE_, + Runtime_ocaml_Runtime[13], + param0), + _afz_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _KF_, result$1[2]), + _afy_), + _afA_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _KG_, + Runtime_ocaml_Runtime[13], + _afz_); + return caml_call2(Runtime_ocaml_Runtime[27], _KH_, _afA_); + }, + result$2 = [0, result$1[1], _aft_]; + caml_call2(Runtime_ocaml_Runtime[29], _KI_, 1); + var + _afu_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _KJ_, + embed_calcul_allocation_logeme$0, + result$2), + traitement_formule$0 = + caml_call2(Runtime_ocaml_Runtime[27], _KK_, _afu_); + return [0, traitement_formule$0[1], traitement_formule$0[2]]; + default: + var + logement_foyer = categorie_calcul_apl[1], + _afv_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _KL_, + embed_calcul_allocation_logeme$5, + [0, + logement_foyer[1], + logement_foyer[5], + residence, + logement_foyer[7], + ressources_menage_avec_arrondi, + nombre_personnes_a_charge, + situation_familiale_calcul_apl, + zone, + date_courante, + logement_foyer[8]]), + result$3 = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _KM_, + calcul_allocation_logement_foy), + _afv_), + _afw_ = + function(param0){ + var + _afF_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _KN_, + Runtime_ocaml_Runtime[13], + param0), + _afG_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _KO_, result$3[6]), + _afF_), + _afH_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _KP_, + Runtime_ocaml_Runtime[13], + _afG_); + return caml_call2(Runtime_ocaml_Runtime[27], _KQ_, _afH_); + }, + result$4 = + [0, + result$3[1], + result$3[2], + result$3[3], + result$3[4], + result$3[5], + _afw_]; + caml_call2(Runtime_ocaml_Runtime[29], _KR_, 1); + var + _afx_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _KS_, + embed_calcul_allocation_logeme$1, + result$4), + traitement_formule$1 = + caml_call2(Runtime_ocaml_Runtime[27], _KT_, _afx_); + return [0, traitement_formule$1[5], traitement_formule$1[6]]; + } + }, + _aeI_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _KU_, 1); + }, + _aeJ_ = + [0, + function(param){ + function _ae__(param){ + switch(categorie_calcul_apl[0]){ + case 0: + return [0, + caml_call1(Runtime_ocaml_Runtime[31], cst_0$350), + traitement_nul_tout_le_temps]; + case 1: + return [0, + caml_call1(Runtime_ocaml_Runtime[31], cst_0$351), + traitement_nul_tout_le_temps]; + default: + var + logement_foyer = categorie_calcul_apl[1], + _afb_ = logement_foyer[10]; + try{ + var _afd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$352); + } + catch(_afk_){ + var _afc_ = caml_wrap_exception(_afk_); + if(_afc_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _KW_], 1); + throw caml_maybe_attach_backtrace(_afc_, 0); + } + var + _afe_ = caml_call3 (Runtime_ocaml_Runtime[28], - _SD_, + _KX_, embed_calcul_allocation_logeme$3, [0, - location[2], - ressources_menage_avec_arrondi, - location[3], - date_courante, - nombre_personnes_a_charge, - situation_familiale_calcul_apl, - zone, - location[4], - location[6], - type_aide, - location[5], - _avq_, - _avo_, - residence, - _avn_]), - result= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _SE_, - calcul_allocation_logement_loc), - _avr_), - _avs_= - function(param0) - {var - _avD_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _SF_, - Runtime_ocaml_Runtime[13], - param0), - _avE_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_SG_,result[2]),_avD_), - _avF_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _SH_, - Runtime_ocaml_Runtime[13], - _avE_); - return caml_call2(Runtime_ocaml_Runtime[27],_SI_,_avF_)}, - result$0=[0,result[1],_avs_]; - caml_call2(Runtime_ocaml_Runtime[29],_SJ_,1); - var - _avt_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _SK_, - embed_calcul_allocation_logeme, - result$0), - traitement_formule= - caml_call2(Runtime_ocaml_Runtime[27],_SL_,_avt_); - return [0,traitement_formule[1],traitement_formule[2]]; - case 1: - var - proprietaire=categorie_calcul_apl[1], - _avu_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _SM_, - embed_calcul_allocation_logeme$4, - [0, - ressources_menage_avec_arrondi, - nombre_personnes_a_charge, - situation_familiale_calcul_apl, - zone, - residence, - date_courante, - proprietaire[1], - proprietaire[8], - proprietaire[10][2], - proprietaire[5], - proprietaire[6], - proprietaire[3], - proprietaire[2], - proprietaire[7], - proprietaire[11]]), - result$1= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _SN_, - calcul_allocation_logement_acc), - _avu_), - _avv_= - function(param0) - {var - _avA_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _SO_, - Runtime_ocaml_Runtime[13], - param0), - _avB_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_SP_,result$1[2]), - _avA_), - _avC_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _SQ_, - Runtime_ocaml_Runtime[13], - _avB_); - return caml_call2(Runtime_ocaml_Runtime[27],_SR_,_avC_)}, - result$2=[0,result$1[1],_avv_]; - caml_call2(Runtime_ocaml_Runtime[29],_SS_,1); - var - _avw_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _ST_, - embed_calcul_allocation_logeme$0, - result$2), - traitement_formule$0= - caml_call2(Runtime_ocaml_Runtime[27],_SU_,_avw_); - return [0,traitement_formule$0[1],traitement_formule$0[2]]; - default: - var - logement_foyer=categorie_calcul_apl[1], - _avx_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _SV_, - embed_calcul_allocation_logeme$5, - [0, - logement_foyer[1], - logement_foyer[5], - residence, logement_foyer[7], ressources_menage_avec_arrondi, + logement_foyer[9], + date_courante, nombre_personnes_a_charge, situation_familiale_calcul_apl, zone, - date_courante, - logement_foyer[8]]), - result$3= + 1, + 0, + type_aide, + 0, + _afd_, + _afb_, + residence, + _KV_]), + result = caml_call1 (caml_call2 (Runtime_ocaml_Runtime[26], - _SW_, - calcul_allocation_logement_foy), - _avx_), - _avy_= - function(param0) - {var - _avH_= + _KY_, + calcul_allocation_logement_loc), + _afe_), + _aff_ = + function(param0){ + var + _afh_ = caml_call3 (Runtime_ocaml_Runtime[28], - _SX_, + _KZ_, Runtime_ocaml_Runtime[13], param0), - _avI_= + _afi_ = caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_SY_,result$3[6]), - _avH_), - _avJ_= + (caml_call2(Runtime_ocaml_Runtime[26], _K0_, result[2]), + _afh_), + _afj_ = caml_call3 (Runtime_ocaml_Runtime[28], - _SZ_, + _K1_, Runtime_ocaml_Runtime[13], - _avI_); - return caml_call2(Runtime_ocaml_Runtime[27],_S0_,_avJ_)}, - result$4= - [0, - result$3[1], - result$3[2], - result$3[3], - result$3[4], - result$3[5], - _avy_]; - caml_call2(Runtime_ocaml_Runtime[29],_S1_,1); - var - _avz_= + _afi_); + return caml_call2(Runtime_ocaml_Runtime[27], _K2_, _afj_); + }, + result$0 = [0, result[1], _aff_]; + caml_call2(Runtime_ocaml_Runtime[29], _K3_, 1); + var + _afg_ = caml_call3 (Runtime_ocaml_Runtime[28], - _S2_, - embed_calcul_allocation_logeme$1, - result$4), - traitement_formule$1= - caml_call2(Runtime_ocaml_Runtime[27],_S3_,_avz_); - return [0,traitement_formule$1[5],traitement_formule$1[6]]}}, - _au0_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_S4_,1)}, - _au1_= - [0, - function(param) - {function _avb_(param) - {switch(categorie_calcul_apl[0]) - {case 0: - return [0, - caml_call1(Runtime_ocaml_Runtime[31],cst_0$409), - traitement_nul_tout_le_temps]; - case 1: - return [0, - caml_call1(Runtime_ocaml_Runtime[31],cst_0$410), - traitement_nul_tout_le_temps]; - default: - var - logement_foyer=categorie_calcul_apl[1], - _ave_=logement_foyer[10]; - try - {var _avf_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$411)} - catch(_avm_) - {_avm_ = caml_wrap_exception(_avm_); - if(_avm_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_S6_]; - throw _avm_} - var - _avg_= + _K4_, + embed_calcul_allocation_logeme, + result$0), + traitement_formule = + caml_call2(Runtime_ocaml_Runtime[27], _K5_, _afg_); + return [0, traitement_formule[1], traitement_formule[2]]; + } + } + function _ae$_(param){ + switch(residence[0]){ + case 0: + var _afa_ = 0; break; + case 1: + var _afa_ = 0; break; + case 2: + var _afa_ = 0; break; + case 3: + var _afa_ = 0; break; + case 4: + var _afa_ = 0; break; + case 5: + var _afa_ = 0; break; + case 6: + var _afa_ = 0; break; + case 7: + var _afa_ = 1; break; + default: var _afa_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _K6_, _afa_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _K7_, [0], _ae$_, _ae__); + }], + _aeK_ = caml_call4(Runtime_ocaml_Runtime[63], _K8_, _aeJ_, _aeI_, _aeH_); + } + catch(_ae9_){ + var _aeG_ = caml_wrap_exception(_ae9_); + if(_aeG_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Kr_], 1); + throw caml_maybe_attach_backtrace(_aeG_, 0); + } + var + sous_calcul_traitement = + caml_call3 + (Runtime_ocaml_Runtime[28], + _K9_, + embed_traitement_formule_aide_, + _aeK_); + function _aeL_(arg){ + try{ + var + _ae5_ = + function(param){return caml_call1(sous_calcul_traitement[2], arg);}, + _ae6_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _K$_, 1); + }, + _ae7_ = caml_call4(Runtime_ocaml_Runtime[63], _La_, [0], _ae6_, _ae5_); + return _ae7_; + } + catch(_ae8_){ + var _ae4_ = caml_wrap_exception(_ae8_); + if(_ae4_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _K__], 1); + throw caml_maybe_attach_backtrace(_ae4_, 0); + } + } + var + traitement_aide_finale = + caml_call3 + (Runtime_ocaml_Runtime[28], _Lb_, Runtime_ocaml_Runtime[10], _aeL_); + try{ + var + _aeN_ = function(param){return sous_calcul_traitement[1];}, + _aeO_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Ld_, 1); + }, + _aeP_ = + [0, + function(param){ + function _aeS_(param){ + var + _aeY_ = caml_call1(Runtime_ocaml_Runtime[39], cst_8$0), + _aeZ_ = caml_call1(Runtime_ocaml_Runtime[74], date_courante), + _ae0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2026), + _ae1_ = caml_call2(Runtime_ocaml_Runtime[96], _ae0_, _aeZ_), + _ae2_ = caml_call1(Runtime_ocaml_Runtime[69], _ae1_), + _ae3_ = caml_call2(Runtime_ocaml_Runtime[107], _ae2_, _aeY_); + return caml_call2 + (Runtime_ocaml_Runtime[104], + sous_calcul_traitement[1], + _ae3_); + } + function _aeT_(param){ + var + _aeU_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _aeV_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aeU_); + switch(residence[0]){ + case 0: + var _aeW_ = 0; break; + case 1: + var _aeW_ = 0; break; + case 2: + var _aeW_ = 0; break; + case 3: + var _aeW_ = 0; break; + case 4: + var _aeW_ = 0; break; + case 5: + var _aeW_ = 0; break; + case 6: + var _aeW_ = 0; break; + case 7: + var _aeW_ = 1; break; + default: var _aeW_ = 0; + } + var _aeX_ = caml_call2(Runtime_ocaml_Runtime[83], _aeW_, _aeV_); + return caml_call2(Runtime_ocaml_Runtime[29], _Le_, _aeX_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Lf_, [0], _aeT_, _aeS_); + }], + _aeQ_ = caml_call4(Runtime_ocaml_Runtime[63], _Lg_, _aeP_, _aeO_, _aeN_); + } + catch(_aeR_){ + var _aeM_ = caml_wrap_exception(_aeR_); + if(_aeM_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Lc_], 1); + throw caml_maybe_attach_backtrace(_aeM_, 0); + } + var + aide_finale_formule = + caml_call3 + (Runtime_ocaml_Runtime[28], _Lh_, Runtime_ocaml_Runtime[13], _aeQ_); + return [0, aide_finale_formule, traitement_aide_finale]; + } + function eligibilite_prime_de_demenagem(eligibilite_prime_de_demenagem){ + var + informations = eligibilite_prime_de_demenagem[1], + date_emmenagement = eligibilite_prime_de_demenagem[2], + menage = eligibilite_prime_de_demenagem[3], + demandeur = eligibilite_prime_de_demenagem[4], + date_courante = eligibilite_prime_de_demenagem[5], + depenses_justifiees_reellement = eligibilite_prime_de_demenagem[6]; + try{ + var + _acC_ = + function(param){ + return caml_call3(Runtime_ocaml_Runtime[60], 0, 6, 0); + }, + _acD_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Lj_, 1); + }, + _acE_ = caml_call4(Runtime_ocaml_Runtime[63], _Lk_, [0], _acD_, _acC_); + } + catch(_aet_){ + var _acB_ = caml_wrap_exception(_aet_); + if(_acB_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Li_], 1); + throw caml_maybe_attach_backtrace(_acB_, 0); + } + var + delai_apres_emmenagement_l823_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _Ll_, Runtime_ocaml_Runtime[17], _acE_); + try{ + var + _acG_ = function(param){return 0;}, + _acH_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Ln_, 1); + }, + _acI_ = + [0, + function(param){ + function _aej_(param){return 1;} + function _aek_(param){ + var + _ael_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$98), + _aem_ = informations[1], + _aen_ = menage[3]; + function _aeo_(personne_a_charge){ + return 0 === personne_a_charge[0] ? 1 : 0; + } + var + _aep_ = caml_call2(Runtime_ocaml_Runtime[90], _aeo_, _aen_), + _aeq_ = caml_call1(Runtime_ocaml_Runtime[68], _aep_), + _aer_ = caml_call2(Runtime_ocaml_Runtime[91], _aeq_, _aem_), + _aes_ = caml_call2(Runtime_ocaml_Runtime[126], _aer_, _ael_); + return caml_call2(Runtime_ocaml_Runtime[29], _Lo_, _aes_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Lp_, [0], _aek_, _aej_); + }], + _acJ_ = caml_call4(Runtime_ocaml_Runtime[63], _Lq_, _acI_, _acH_, _acG_); + } + catch(_aei_){ + var _acF_ = caml_wrap_exception(_aei_); + if(_acF_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Lm_], 1); + throw caml_maybe_attach_backtrace(_acF_, 0); + } + var + condition_rang_enfant = + caml_call3 + (Runtime_ocaml_Runtime[28], _Lr_, Runtime_ocaml_Runtime[12], _acJ_); + try{ + var + _acL_ = function(param){return date_courante;}, + _acM_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Lt_, 1); + }, + _acN_ = caml_call4(Runtime_ocaml_Runtime[63], _Lu_, [0], _acM_, _acL_), + base_mensuelle_allocations_fam$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Lv_, Runtime_ocaml_Runtime[16], _acN_); + } + catch(_aeh_){ + var _acK_ = caml_wrap_exception(_aeh_); + if(_acK_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ls_], 1); + throw caml_maybe_attach_backtrace(_acK_, 0); + } + var + _acO_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _Lw_, base_mensuelle_allocations_fam), + [0, base_mensuelle_allocations_fam$0]), + result = caml_call2(Runtime_ocaml_Runtime[27], _Lx_, _acO_), + base_mensuelle_allocations_fam$1 = result[1]; + try{ + var + _acQ_ = function(param){return menage;}, + _acR_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Lz_, 1); + }, + _acS_ = caml_call4(Runtime_ocaml_Runtime[63], _LA_, [0], _acR_, _acQ_), + eligibilite_apl_dot_menage = + caml_call3(Runtime_ocaml_Runtime[28], _LB_, embed_menage, _acS_); + } + catch(_aeg_){ + var _acP_ = caml_wrap_exception(_aeg_); + if(_acP_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ly_], 1); + throw caml_maybe_attach_backtrace(_acP_, 0); + } + try{ + var + _acU_ = function(param){return demandeur;}, + _acV_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _LD_, 1); + }, + _acW_ = caml_call4(Runtime_ocaml_Runtime[63], _LE_, [0], _acV_, _acU_), + eligibilite_apl_dot_demandeur = + caml_call3(Runtime_ocaml_Runtime[28], _LF_, embed_demandeur, _acW_); + } + catch(_aef_){ + var _acT_ = caml_wrap_exception(_aef_); + if(_acT_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _LC_], 1); + throw caml_maybe_attach_backtrace(_acT_, 0); + } + try{ + var + _acY_ = function(param){return date_courante;}, + _acZ_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _LH_, 1); + }, + _ac0_ = caml_call4(Runtime_ocaml_Runtime[63], _LI_, [0], _acZ_, _acY_), + eligibilite_apl_dot_date_coura = + caml_call3 + (Runtime_ocaml_Runtime[28], _LJ_, Runtime_ocaml_Runtime[16], _ac0_); + } + catch(_aee_){ + var _acX_ = caml_wrap_exception(_aee_); + if(_acX_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _LG_], 1); + throw caml_maybe_attach_backtrace(_acX_, 0); + } + function eligibilite_apl_dot_condition_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function eligibilite_apl_dot_condition_$0(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function eligibilite_apl_dot_date_entre(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + var + _ac1_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _LK_, eligibilite_aides_personnelle_), + [0, + eligibilite_apl_dot_menage, + eligibilite_apl_dot_demandeur, + eligibilite_apl_dot_date_coura, + eligibilite_apl_dot_condition_, + eligibilite_apl_dot_condition_$0, + eligibilite_apl_dot_date_entre]), + result$0 = caml_call2(Runtime_ocaml_Runtime[27], _LL_, _ac1_), + eligibilite_apl_dot_date_coura$0 = result$0[1], + eligibilite_apl_dot_eligibilit = result$0[2]; + try{ + var + _ac3_ = function(param){return 0;}, + _ac4_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _LN_, 1); + }, + _ac5_ = + [0, + function(param){ + function _ad7_(param){return 1;} + function _ad8_(param){ + var match = informations[2]; + if(0 === match[0]) + var _ad9_ = 0; + else{ + var date_naissance_ou_grossesse = match[1]; + switch(date_naissance_ou_grossesse[0]){ + case 0: + var + date_naissance = date_naissance_ou_grossesse[1], + _ad__ = caml_call3(Runtime_ocaml_Runtime[60], 0, 0, -1), + _ad$_ = caml_call3(Runtime_ocaml_Runtime[60], 2, 0, 0), + _aea_ = + caml_call3 + (Runtime_ocaml_Runtime[94], 2, date_naissance, _ad$_), + _aeb_ = caml_call1(Runtime_ocaml_Runtime[75], _aea_), + _aec_ = caml_call3(Runtime_ocaml_Runtime[94], 2, _aeb_, _ad__), + _aed_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _aec_); + break; + case 1: + var _aed_ = 0; break; + default: var _aed_ = 1; + } + var _ad9_ = _aed_; + } + return caml_call2(Runtime_ocaml_Runtime[29], _LO_, _ad9_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _LP_, [0], _ad8_, _ad7_); + }], + _ac6_ = caml_call4(Runtime_ocaml_Runtime[63], _LQ_, _ac5_, _ac4_, _ac3_); + } + catch(_ad6_){ + var _ac2_ = caml_wrap_exception(_ad6_); + if(_ac2_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _LM_], 1); + throw caml_maybe_attach_backtrace(_ac2_, 0); + } + var + condition_periode_demenagement = + caml_call3 + (Runtime_ocaml_Runtime[28], _LR_, Runtime_ocaml_Runtime[12], _ac6_); + try{ + var + _ac8_ = + function(param){ + var + _adP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$99), + _adQ_ = menage[3]; + function _adR_(personne_a_charge){ + return 0 === personne_a_charge[0] ? 1 : 0; + } + var + _adS_ = caml_call2(Runtime_ocaml_Runtime[90], _adR_, _adQ_), + _adT_ = caml_call1(Runtime_ocaml_Runtime[68], _adS_); + if(caml_call2(Runtime_ocaml_Runtime[121], _adT_, _adP_)) + var + _adU_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2$1), + _adV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$100), + _adW_ = menage[3], + _adX_ = + function(personne_a_charge){ + return 0 === personne_a_charge[0] ? 1 : 0; + }, + _adY_ = caml_call2(Runtime_ocaml_Runtime[90], _adX_, _adW_), + _adZ_ = caml_call1(Runtime_ocaml_Runtime[68], _adY_), + _ad0_ = caml_call2(Runtime_ocaml_Runtime[96], _adZ_, _adV_), + _ad1_ = caml_call1(Runtime_ocaml_Runtime[69], _ad0_), + _ad2_ = caml_call2(Runtime_ocaml_Runtime[103], _ad1_, _adU_), + _ad3_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + base_mensuelle_allocations_fam$1, + _ad2_); + else + var _ad3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$353); + var + _ad4_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2_4), + _ad5_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + base_mensuelle_allocations_fam$1, + _ad4_); + return caml_call2(Runtime_ocaml_Runtime[93], _ad5_, _ad3_); + }, + _ac9_ = + function(param){ + var + _adN_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _adO_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _adN_); + return caml_call2(Runtime_ocaml_Runtime[29], _LT_, _adO_); + }, + _ac__ = caml_call4(Runtime_ocaml_Runtime[63], _LU_, [0], _ac9_, _ac8_); + } + catch(_adM_){ + var _ac7_ = caml_wrap_exception(_adM_); + if(_ac7_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _LS_], 1); + throw caml_maybe_attach_backtrace(_ac7_, 0); + } + var + plafond_d823_22 = + caml_call3 + (Runtime_ocaml_Runtime[28], _LV_, Runtime_ocaml_Runtime[13], _ac__); + try{ + var + _ada_ = function(param){return 0;}, + _adb_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _LX_, 1); + }, + _adc_ = + [0, + function(param){ + function _adk_(param){return 1;} + function _adl_(param){ + var + _adH_ = + caml_call2 + (Runtime_ocaml_Runtime[99], + eligibilite_apl_dot_date_coura$0, + date_emmenagement), + _adI_ = + caml_call2 + (Runtime_ocaml_Runtime[119], + _adH_, + delai_apres_emmenagement_l823_), + _adJ_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + condition_periode_demenagement, + _adI_), + _adK_ = + caml_call2 + (Runtime_ocaml_Runtime[83], condition_rang_enfant, _adJ_), + _adL_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + eligibilite_apl_dot_eligibilit, + _adK_); + return caml_call2(Runtime_ocaml_Runtime[29], _LY_, _adL_); + } + var + _adm_ = + [0, + function(param){ + function _adn_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _ado_(param){return 0;} + var + _adp_ = + [0, + function(param){ + function _adq_(param){return 0;} + function _adr_(param){ + switch(menage[9][0]){ + case 0: + var _adG_ = 0; break; + case 1: + var _adG_ = 0; break; + case 2: + var _adG_ = 0; break; + case 3: + var _adG_ = 0; break; + case 4: + var _adG_ = 0; break; + case 5: + var _adG_ = 0; break; + case 6: + var _adG_ = 0; break; + case 7: + var _adG_ = 0; break; + default: var _adG_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _LZ_, _adG_); + } + var + _ads_ = + [0, + function(param){ + function _adt_(param){return 0;} + function _adu_(param){ + switch(menage[9][0]){ + case 0: + var _adC_ = 0; break; + case 1: + var _adC_ = 0; break; + case 2: + var _adC_ = 0; break; + case 3: + var _adC_ = 0; break; + case 4: + var _adC_ = 0; break; + case 5: + var _adC_ = 0; break; + case 6: + var _adC_ = 0; break; + case 7: + var _adC_ = 1; break; + default: var _adC_ = 0; + } + var + _adD_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _adE_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _adD_), + _adF_ = caml_call2(Runtime_ocaml_Runtime[83], _adE_, _adC_); + return caml_call2(Runtime_ocaml_Runtime[29], _L0_, _adF_); + } + var + _adv_ = + [0, + function(param){ + function _adw_(param){return 0;} + function _adx_(param){ + switch(menage[9][0]){ + case 0: + var _ady_ = 0; break; + case 1: + var _ady_ = 0; break; + case 2: + var _ady_ = 0; break; + case 3: + var _ady_ = 0; break; + case 4: + var _ady_ = 0; break; + case 5: + var _ady_ = 0; break; + case 6: + var _ady_ = 0; break; + case 7: + var _ady_ = 0; break; + default: var _ady_ = 1; + } + var + _adz_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _adA_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _adz_), + _adB_ = caml_call2(Runtime_ocaml_Runtime[83], _adA_, _ady_); + return caml_call2(Runtime_ocaml_Runtime[29], _L1_, _adB_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _L2_, [0], _adx_, _adw_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _L3_, _adv_, _adu_, _adt_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _L4_, _ads_, _adr_, _adq_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _L5_, _adp_, _ado_, _adn_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _L6_, _adm_, _adl_, _adk_); + }], + _add_ = caml_call4(Runtime_ocaml_Runtime[63], _L7_, _adc_, _adb_, _ada_); + } + catch(_adj_){ + var _ac$_ = caml_wrap_exception(_adj_); + if(_ac$_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _LW_], 1); + throw caml_maybe_attach_backtrace(_ac$_, 0); + } + caml_call3 + (Runtime_ocaml_Runtime[28], _L8_, Runtime_ocaml_Runtime[12], _add_); + try{ + var + _adf_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[118], + depenses_justifiees_reellement, + plafond_d823_22) + ? depenses_justifiees_reellement + : plafond_d823_22; + }, + _adg_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _L__, 1); + }, + _adh_ = caml_call4(Runtime_ocaml_Runtime[63], _L$_, [0], _adg_, _adf_); + } + catch(_adi_){ + var _ade_ = caml_wrap_exception(_adi_); + if(_ade_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _L9_], 1); + throw caml_maybe_attach_backtrace(_ade_, 0); + } + var + montant_prime_demenagement = + caml_call3 + (Runtime_ocaml_Runtime[28], _Ma_, Runtime_ocaml_Runtime[13], _adh_); + return [0, montant_prime_demenagement]; + } + function eligibilite_allocation_logemen(eligibilite_allocation_logemen){ + var + date_courante = eligibilite_allocation_logemen[1], + menage = eligibilite_allocation_logemen[2], + demandeur = eligibilite_allocation_logemen[3], + beneficie_aide_personnalisee_l = eligibilite_allocation_logemen[4]; + try{ + var + _ZG_ = + function(param){ + return caml_call3(Runtime_ocaml_Runtime[60], 5, 0, 0); + }, + _ZH_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Mc_, 1); + }, + _ZI_ = caml_call4(Runtime_ocaml_Runtime[63], _Md_, [0], _ZH_, _ZG_); + } + catch(_acA_){ + var _ZF_ = caml_wrap_exception(_acA_); + if(_ZF_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Mb_], 1); + throw caml_maybe_attach_backtrace(_ZF_, 0); + } + var + duree_l841_1_3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Me_, Runtime_ocaml_Runtime[17], _ZI_); + try{ + var + _ZK_ = function(param){return date_courante;}, + _ZL_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Mg_, 1); + }, + _ZM_ = caml_call4(Runtime_ocaml_Runtime[63], _Mh_, [0], _ZL_, _ZK_), + prestations_familiales_dot_dat = + caml_call3 + (Runtime_ocaml_Runtime[28], _Mi_, Runtime_ocaml_Runtime[16], _ZM_); + } + catch(_acz_){ + var _ZJ_ = caml_wrap_exception(_acz_); + if(_ZJ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Mf_], 1); + throw caml_maybe_attach_backtrace(_ZJ_, 0); + } + try{ + var + _ZO_ = function(param){return _Mk_;}, + _ZP_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Ml_, 1); + }, + _ZQ_ = caml_call4(Runtime_ocaml_Runtime[63], _Mm_, [0], _ZP_, _ZO_), + prestations_familiales_dot_pre = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Mn_, + embed_element_prestations_fami, + _ZQ_); + } + catch(_acy_){ + var _ZN_ = caml_wrap_exception(_acy_); + if(_ZN_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Mj_], 1); + throw caml_maybe_attach_backtrace(_ZN_, 0); + } + try{ + var + _ZS_ = function(param){return menage[9];}, + _ZT_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Mp_, 1); + }, + _ZU_ = caml_call4(Runtime_ocaml_Runtime[63], _Mq_, [0], _ZT_, _ZS_), + prestations_familiales_dot_res = + caml_call3(Runtime_ocaml_Runtime[28], _Mr_, embed_collectivite, _ZU_); + } + catch(_acx_){ + var _ZR_ = caml_wrap_exception(_acx_); + if(_ZR_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Mo_], 1); + throw caml_maybe_attach_backtrace(_ZR_, 0); + } + function prestations_familiales_dot_age(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + var + _ZV_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _Ms_, eligibilite_prestations_famili), + [0, + prestations_familiales_dot_dat, + prestations_familiales_dot_pre, + prestations_familiales_dot_res, + prestations_familiales_dot_age]), + result = caml_call2(Runtime_ocaml_Runtime[27], _Mt_, _ZV_), + prestations_familiales_dot_dro = result[2]; + try{ + var + _ZX_ = function(param){return 0;}, + _ZY_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Mv_, 1); + }, + _ZZ_ = + [0, + function(param){ + function _ack_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _acl_(param){return 0;} + function _acm_(param){ + function _acq_(param){return 0;} + function _acr_(param){ + switch(menage[9][0]){ + case 0: + var _acw_ = 1; break; + case 1: + var _acw_ = 1; break; + case 2: + var _acw_ = 1; break; + case 3: + var _acw_ = 1; break; + case 4: + var _acw_ = 0; break; + case 5: + var _acw_ = 0; break; + case 6: + var _acw_ = 0; break; + case 7: + var _acw_ = 0; break; + default: var _acw_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _Mw_, _acw_); + } + var + _acs_ = + [0, + function(param){ + function _act_(param){return 0;} + function _acu_(param){ + switch(menage[9][0]){ + case 0: + var _acv_ = 0; break; + case 1: + var _acv_ = 0; break; + case 2: + var _acv_ = 0; break; + case 3: + var _acv_ = 0; break; + case 4: + var _acv_ = 1; break; + case 5: + var _acv_ = 1; break; + case 6: + var _acv_ = 0; break; + case 7: + var _acv_ = 0; break; + default: var _acv_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _Mx_, _acv_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _My_, [0], _acu_, _act_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Mz_, _acs_, _acr_, _acq_); + } + var + _acn_ = + [0, + function(param){ + function _aco_(param){return 1;} + function _acp_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _MA_, 1); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _MB_, [0], _acp_, _aco_); + }, + _acm_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _MC_, _acn_, _acl_, _ack_); + }], + _Z0_ = caml_call4(Runtime_ocaml_Runtime[63], _MD_, _ZZ_, _ZY_, _ZX_); + } + catch(_acj_){ + var _ZW_ = caml_wrap_exception(_acj_); + if(_ZW_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Mu_], 1); + throw caml_maybe_attach_backtrace(_ZW_, 0); + } + var + l_841_1_6_applicable = + caml_call3 + (Runtime_ocaml_Runtime[28], _ME_, Runtime_ocaml_Runtime[12], _Z0_); + try{ + var + _Z2_ = function(param){return 0;}, + _Z3_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _MG_, 1); + }, + _Z4_ = + [0, + function(param){ + function _ab8_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _ab9_(param){return 0;} + function _ab__(param){ + function _acc_(param){return 0;} + function _acd_(param){ + switch(menage[9][0]){ + case 0: + var _aci_ = 1; break; + case 1: + var _aci_ = 1; break; + case 2: + var _aci_ = 1; break; + case 3: + var _aci_ = 1; break; + case 4: + var _aci_ = 0; break; + case 5: + var _aci_ = 0; break; + case 6: + var _aci_ = 0; break; + case 7: + var _aci_ = 0; break; + default: var _aci_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _MH_, _aci_); + } + var + _ace_ = + [0, + function(param){ + function _acf_(param){return 0;} + function _acg_(param){ + switch(menage[9][0]){ + case 0: + var _ach_ = 0; break; + case 1: + var _ach_ = 0; break; + case 2: + var _ach_ = 0; break; + case 3: + var _ach_ = 0; break; + case 4: + var _ach_ = 1; break; + case 5: + var _ach_ = 1; break; + case 6: + var _ach_ = 0; break; + case 7: + var _ach_ = 0; break; + default: var _ach_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _MI_, _ach_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _MJ_, [0], _acg_, _acf_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _MK_, _ace_, _acd_, _acc_); + } + var + _ab$_ = + [0, + function(param){ + function _aca_(param){return 1;} + function _acb_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ML_, 1); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _MM_, [0], _acb_, _aca_); + }, + _ab__]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _MN_, _ab$_, _ab9_, _ab8_); + }], + _Z5_ = caml_call4(Runtime_ocaml_Runtime[63], _MO_, _Z4_, _Z3_, _Z2_); + } + catch(_ab7_){ + var _Z1_ = caml_wrap_exception(_ab7_); + if(_Z1_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _MF_], 1); + throw caml_maybe_attach_backtrace(_Z1_, 0); + } + var + l_841_1_2_applicable = + caml_call3 + (Runtime_ocaml_Runtime[28], _MP_, Runtime_ocaml_Runtime[12], _Z5_); + try{ + var + _Z7_ = function(param){return 0;}, + _Z8_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _MR_, 1); + }, + _Z9_ = + [0, + function(param){ + function _abU_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _abV_(param){return 0;} + function _abW_(param){ + function _ab0_(param){return 0;} + function _ab1_(param){ + switch(menage[9][0]){ + case 0: + var _ab6_ = 1; break; + case 1: + var _ab6_ = 1; break; + case 2: + var _ab6_ = 1; break; + case 3: + var _ab6_ = 1; break; + case 4: + var _ab6_ = 0; break; + case 5: + var _ab6_ = 0; break; + case 6: + var _ab6_ = 0; break; + case 7: + var _ab6_ = 0; break; + default: var _ab6_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _MS_, _ab6_); + } + var + _ab2_ = + [0, + function(param){ + function _ab3_(param){return 0;} + function _ab4_(param){ + switch(menage[9][0]){ + case 0: + var _ab5_ = 0; break; + case 1: + var _ab5_ = 0; break; + case 2: + var _ab5_ = 0; break; + case 3: + var _ab5_ = 0; break; + case 4: + var _ab5_ = 1; break; + case 5: + var _ab5_ = 1; break; + case 6: + var _ab5_ = 0; break; + case 7: + var _ab5_ = 0; break; + default: var _ab5_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _MT_, _ab5_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _MU_, [0], _ab4_, _ab3_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _MV_, _ab2_, _ab1_, _ab0_); + } + var + _abX_ = + [0, + function(param){ + function _abY_(param){return 1;} + function _abZ_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _MW_, 1); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _MX_, [0], _abZ_, _abY_); + }, + _abW_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _MY_, _abX_, _abV_, _abU_); + }], + _Z__ = caml_call4(Runtime_ocaml_Runtime[63], _MZ_, _Z9_, _Z8_, _Z7_); + } + catch(_abT_){ + var _Z6_ = caml_wrap_exception(_abT_); + if(_Z6_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _MQ_], 1); + throw caml_maybe_attach_backtrace(_Z6_, 0); + } + var + l_841_1_1_applicable = + caml_call3 + (Runtime_ocaml_Runtime[28], _M0_, Runtime_ocaml_Runtime[12], _Z__); + try{ + var + __a_ = function(param){return 0;}, + __b_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _M2_, 1); + }, + __c_ = + [0, + function(param){ + function _abt_(param){return 1;} + function _abu_(param){ + switch(menage[2][3][0]){ + case 0: + var _abS_ = 1; break; + case 1: + var _abS_ = 1; break; + case 2: + var _abS_ = 0; break; + case 3: + var _abS_ = 1; break; + default: var _abS_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _M3_, _abS_); + } + var + _abv_ = + [0, + function(param){ + function _abw_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _abx_(param){return 0;} + var + _aby_ = + [0, + function(param){ + function _abz_(param){return 1;} + function _abA_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _abN_ = 0; break; + case 1: + var _abN_ = 0; break; + case 2: + var proprietaire = match[1]; + switch(proprietaire[5][0]){ + case 0: + var _abO_ = 1; break; + case 1: + var _abO_ = 0; break; + case 2: + var _abO_ = 0; break; + default: var _abO_ = 0; + } + switch(proprietaire[5][0]){ + case 0: + var _abP_ = 0; break; + case 1: + var _abP_ = 0; break; + case 2: + var _abP_ = 0; break; + default: var _abP_ = 1; + } + var + _abQ_ = caml_call2(Runtime_ocaml_Runtime[84], _abP_, _abO_), + _abR_ = 0 === proprietaire[10][3][0] ? 1 : 0, + _abN_ = caml_call2(Runtime_ocaml_Runtime[83], _abR_, _abQ_); + break; + case 3: + var _abN_ = 0; break; + default: var _abN_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _M4_, _abN_); + } + var + _abB_ = + [0, + function(param){ + function _abC_(param){return 1;} + function _abD_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _abK_ = 0; break; + case 1: + var _abK_ = 0; break; + case 2: + var proprietaire = match[1]; + switch(proprietaire[5][0]){ + case 0: + var _abL_ = 0; break; + case 1: + var _abL_ = 1; break; + case 2: + var _abL_ = 0; break; + default: var _abL_ = 0; + } + var + _abM_ = 0 === proprietaire[10][3][0] ? 1 : 0, + _abK_ = caml_call2(Runtime_ocaml_Runtime[83], _abM_, _abL_); + break; + case 3: + var _abK_ = 0; break; + default: var _abK_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _M5_, _abK_); + } + var + _abE_ = + [0, + function(param){ + function _abF_(param){return 1;} + function _abG_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _abH_ = 0; break; + case 1: + var _abH_ = 0; break; + case 2: + var proprietaire = match[1]; + switch(proprietaire[5][0]){ + case 0: + var _abI_ = 0; break; + case 1: + var _abI_ = 0; break; + case 2: + var _abI_ = 1; break; + default: var _abI_ = 0; + } + var + _abJ_ = 0 === proprietaire[10][3][0] ? 1 : 0, + _abH_ = caml_call2(Runtime_ocaml_Runtime[83], _abJ_, _abI_); + break; + case 3: + var _abH_ = 0; break; + default: var _abH_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _M6_, _abH_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _M7_, [0], _abG_, _abF_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _M8_, _abE_, _abD_, _abC_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _M9_, _abB_, _abA_, _abz_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _M__, _aby_, _abx_, _abw_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _M$_, _abv_, _abu_, _abt_); + }], + __d_ = caml_call4(Runtime_ocaml_Runtime[63], _Na_, __c_, __b_, __a_); + } + catch(_abs_){ + var _Z$_ = caml_wrap_exception(_abs_); + if(_Z$_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _M1_], 1); + throw caml_maybe_attach_backtrace(_Z$_, 0); + } + var + condition_accession_propriete = + caml_call3 + (Runtime_ocaml_Runtime[28], _Nb_, Runtime_ocaml_Runtime[12], __d_); + try{ + var + __f_ = function(param){return menage;}, + __g_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Nd_, 1); + }, + __h_ = caml_call4(Runtime_ocaml_Runtime[63], _Ne_, [0], __g_, __f_), + eligibilite_commune_dot_menage = + caml_call3(Runtime_ocaml_Runtime[28], _Nf_, embed_menage, __h_); + } + catch(_abr_){ + var __e_ = caml_wrap_exception(_abr_); + if(__e_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Nc_], 1); + throw caml_maybe_attach_backtrace(__e_, 0); + } + try{ + var + __j_ = function(param){return demandeur;}, + __k_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Nh_, 1); + }, + __l_ = caml_call4(Runtime_ocaml_Runtime[63], _Ni_, [0], __k_, __j_), + eligibilite_commune_dot_demand = + caml_call3(Runtime_ocaml_Runtime[28], _Nj_, embed_demandeur, __l_); + } + catch(_abq_){ + var __i_ = caml_wrap_exception(_abq_); + if(__i_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ng_], 1); + throw caml_maybe_attach_backtrace(__i_, 0); + } + try{ + var + __n_ = function(param){return date_courante;}, + __o_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Nl_, 1); + }, + __p_ = caml_call4(Runtime_ocaml_Runtime[63], _Nm_, [0], __o_, __n_), + eligibilite_commune_dot_date_c = + caml_call3 + (Runtime_ocaml_Runtime[28], _Nn_, Runtime_ocaml_Runtime[16], __p_); + } + catch(_abp_){ + var __m_ = caml_wrap_exception(_abp_); + if(__m_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Nk_], 1); + throw caml_maybe_attach_backtrace(__m_, 0); + } + function eligibilite_commune_dot_condit(param){ + function _abl_(param){return 1;} + function _abm_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _abo_ = 0; break; + case 1: + var logement_foyer = match[1], _abo_ = logement_foyer[6]; break; + case 2: + var _abo_ = 0; break; + case 3: + var _abo_ = 0; break; + default: var _abo_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _No_, _abo_); + } + var + _abn_ = caml_call4(Runtime_ocaml_Runtime[63], _Np_, [0], _abm_, _abl_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _Nq_, + Runtime_ocaml_Runtime[12], + _abn_); + } + function eligibilite_commune_dot_condit$0(param){ + function _abh_(param){return 1;} + function _abi_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _abk_ = 0; break; + case 1: + var logement_foyer = match[1], _abk_ = logement_foyer[6]; break; + case 2: + var _abk_ = 0; break; + case 3: + var _abk_ = 0; break; + default: var _abk_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _Nr_, _abk_); + } + var + _abj_ = caml_call4(Runtime_ocaml_Runtime[63], _Ns_, [0], _abi_, _abh_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _Nt_, + Runtime_ocaml_Runtime[12], + _abj_); + } + function eligibilite_commune_dot_date_e(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + var + __q_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _Nu_, eligibilite_aides_personnelle_), + [0, + eligibilite_commune_dot_menage, + eligibilite_commune_dot_demand, + eligibilite_commune_dot_date_c, + eligibilite_commune_dot_condit, + eligibilite_commune_dot_condit$0, + eligibilite_commune_dot_date_e]), + result$0 = caml_call2(Runtime_ocaml_Runtime[27], _Nv_, __q_), + eligibilite_commune_dot_eligib = result$0[2], + eligibilite_commune_dot_nombre = result$0[3], + eligibilite_commune_dot_coeffi = result$0[4], + eligibilite_commune_dot_condit$1 = result$0[5]; + try{ + var + __s_ = function(param){return eligibilite_commune_dot_coeffi;}, + __t_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Nx_, 1); + }, + __u_ = caml_call4(Runtime_ocaml_Runtime[63], _Ny_, [0], __t_, __s_); + } + catch(_abg_){ + var __r_ = caml_wrap_exception(_abg_); + if(__r_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Nw_], 1); + throw caml_maybe_attach_backtrace(__r_, 0); + } + var + __v_ = caml_call1(Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15]), + coefficents_enfants_garde_alte = + caml_call3(Runtime_ocaml_Runtime[28], _Nz_, __v_, __u_); + try{ + var + __x_ = function(param){return eligibilite_commune_dot_nombre;}, + __y_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _NB_, 1); + }, + __z_ = caml_call4(Runtime_ocaml_Runtime[63], _NC_, [0], __y_, __x_); + } + catch(_abf_){ + var __w_ = caml_wrap_exception(_abf_); + if(__w_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _NA_], 1); + throw caml_maybe_attach_backtrace(__w_, 0); + } + var + nombre_personnes_a_charge_pris = + caml_call3 + (Runtime_ocaml_Runtime[28], _ND_, Runtime_ocaml_Runtime[14], __z_); + try{ + var + __B_ = + function(param){ + var + _abd_ = + caml_call1 + (Runtime_ocaml_Runtime[67], condition_accession_propriete), + _abe_ = + caml_call1 + (Runtime_ocaml_Runtime[67], eligibilite_commune_dot_eligib); + return caml_call2(Runtime_ocaml_Runtime[84], _abe_, _abd_) + ? _NF_ + : _NG_; + }, + __C_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _NH_, 1); + }, + __D_ = caml_call4(Runtime_ocaml_Runtime[63], _NI_, [0], __C_, __B_); + } + catch(_abc_){ + var __A_ = caml_wrap_exception(_abc_); + if(__A_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _NE_], 1); + throw caml_maybe_attach_backtrace(__A_, 0); + } + var + eligibilite_dispositions_commu = + caml_call3 + (Runtime_ocaml_Runtime[28], + _NJ_, + embed_type_eligibilite_allocat, + __D_); + try{ + var + __F_ = function(param){return 0;}, + __G_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _NL_, 1); + }, + __H_ = + [0, + function(param){ + function _$f_(param){return 1;} + function _$g_(param){ + var _aa2_ = menage[1], _aa3_ = 0; + function _aa4_(acc, prestation){ + var + _aa7_ = caml_call2(Runtime_ocaml_Runtime[86], prestation, _NM_), + _aa8_ = caml_call2(Runtime_ocaml_Runtime[86], prestation, _NN_), + _aa9_ = caml_call2(Runtime_ocaml_Runtime[84], _aa8_, _aa7_), + _aa__ = caml_call2(Runtime_ocaml_Runtime[86], prestation, _NO_), + _aa$_ = caml_call2(Runtime_ocaml_Runtime[84], _aa__, _aa9_), + _aba_ = caml_call2(Runtime_ocaml_Runtime[86], prestation, _NP_), + _abb_ = caml_call2(Runtime_ocaml_Runtime[84], _aba_, _aa$_); + return caml_call2(Runtime_ocaml_Runtime[84], acc, _abb_); + } + var + _aa5_ = + caml_call3(Runtime_ocaml_Runtime[136], _aa4_, _aa3_, _aa2_), + _aa6_ = + caml_call2 + (Runtime_ocaml_Runtime[83], l_841_1_1_applicable, _aa5_); + return caml_call2(Runtime_ocaml_Runtime[29], _NQ_, _aa6_); + } + var + _$h_ = + [0, + function(param){ + function _$i_(param){return 1;} + function _$j_(param){ + var + _aaP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$249), + _aaQ_ = menage[3]; + function _aaR_(personne_a_charge){ + if(0 !== personne_a_charge[0]) return 0; + var + enfant = personne_a_charge[1], + _aaW_ = enfant[3], + _aaX_ = enfant[4], + _aaY_ = 0 === enfant[8][0] ? _NR_ : _NW_, + _aaZ_ = caml_call3 (Runtime_ocaml_Runtime[28], - _S7_, - embed_calcul_allocation_logeme$3, + _NS_, + embed_enfant_prestations_famil, [0, - logement_foyer[7], - ressources_menage_avec_arrondi, - logement_foyer[9], - date_courante, - nombre_personnes_a_charge, - situation_familiale_calcul_apl, - zone, - 1, - 0, - type_aide, - 0, - _avf_, - _ave_, - residence, - _S5_]), - result= + enfant[1], + enfant[7], + enfant[6], + enfant[5], + _aaY_, + _aaX_, + _aaW_]), + _aa0_ = caml_call1 (caml_call2 (Runtime_ocaml_Runtime[26], - _S8_, - calcul_allocation_logement_loc), - _avg_), - _avh_= - function(param0) - {var - _avj_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _S9_, - Runtime_ocaml_Runtime[13], - param0), - _avk_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_S__,result[2]),_avj_), - _avl_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _S$_, - Runtime_ocaml_Runtime[13], - _avk_); - return caml_call2(Runtime_ocaml_Runtime[27],_Ta_,_avl_)}, - result$0=[0,result[1],_avh_]; - caml_call2(Runtime_ocaml_Runtime[29],_Tb_,1); - var - _avi_= + _NT_, + prestations_familiales_dot_dro), + _aaZ_), + _aa1_ = caml_call3 (Runtime_ocaml_Runtime[28], - _Tc_, - embed_calcul_allocation_logeme, - result$0), - traitement_formule= - caml_call2(Runtime_ocaml_Runtime[27],_Td_,_avi_); - return [0,traitement_formule[1],traitement_formule[2]]}} - function _avc_(param) - {switch(residence[0]) - {case 0:var _avd_=0;break; - case 1:var _avd_=0;break; - case 2:var _avd_=0;break; - case 3:var _avd_=0;break; - case 4:var _avd_=0;break; - case 5:var _avd_=0;break; - case 6:var _avd_=0;break; - case 7:var _avd_=1;break; - default:var _avd_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_Te_,_avd_)} - return caml_call4(Runtime_ocaml_Runtime[63],_Tf_,[0],_avc_,_avb_)}], - _au2_=caml_call4(Runtime_ocaml_Runtime[63],_Tg_,_au1_,_au0_,_auZ_)} - catch(_ava_) - {_ava_ = caml_wrap_exception(_ava_); - if(_ava_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_SB_]; - throw _ava_} - var - sous_calcul_traitement= - caml_call3 - (Runtime_ocaml_Runtime[28],_Th_,embed_traitement_formule_aide_,_au2_); - function _au3_(arg) - {try - {var - _au8_= - function(param){return caml_call1(sous_calcul_traitement[2],arg)}, - _au9_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Tj_,1)}, - _au__=caml_call4(Runtime_ocaml_Runtime[63],_Tk_,[0],_au9_,_au8_); - return _au__} - catch(_au$_) - {_au$_ = caml_wrap_exception(_au$_); - if(_au$_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ti_]; - throw _au$_}} - var - traitement_aide_finale= - caml_call3 - (Runtime_ocaml_Runtime[28],_Tl_,Runtime_ocaml_Runtime[10],_au3_); - try - {var - _au4_=function(param){return sous_calcul_traitement[1]}, - _au5_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Tn_,1)}, - _au6_=caml_call4(Runtime_ocaml_Runtime[63],_To_,[0],_au5_,_au4_)} - catch(_au7_) - {_au7_ = caml_wrap_exception(_au7_); - if(_au7_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Tm_]; - throw _au7_} - var - aide_finale_formule= - caml_call3 - (Runtime_ocaml_Runtime[28],_Tp_,Runtime_ocaml_Runtime[13],_au6_); - return [0,aide_finale_formule,traitement_aide_finale]} - function eligibilite_prime_de_demenagem(eligibilite_prime_de_demenagem) - {var - informations=eligibilite_prime_de_demenagem[1], - date_emmenagement=eligibilite_prime_de_demenagem[2], - menage=eligibilite_prime_de_demenagem[3], - demandeur=eligibilite_prime_de_demenagem[4], - date_courante=eligibilite_prime_de_demenagem[5], - depenses_justifiees_reellement=eligibilite_prime_de_demenagem[6]; - try - {var - _as8_= - function(param){return caml_call3(Runtime_ocaml_Runtime[60],0,6,0)}, - _as9_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Tr_,1)}, - _as__=caml_call4(Runtime_ocaml_Runtime[63],_Ts_,[0],_as9_,_as8_)} - catch(_auP_) - {_auP_ = caml_wrap_exception(_auP_); - if(_auP_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Tq_]; - throw _auP_} - var - delai_apres_emmenagement_l823_= - caml_call3 - (Runtime_ocaml_Runtime[28],_Tt_,Runtime_ocaml_Runtime[17],_as__); - try - {var - _as$_=function(param){return 0}, - _ata_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Tv_,1)}, - _atb_= - [0, - function(param) - {function _auF_(param){return 1} - function _auG_(param) - {var - _auH_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$97), - _auI_=informations[1], - _auJ_=menage[3]; - function _auK_(personne_a_charge) - {return 0 === personne_a_charge[0]?1:0} + _NU_, + Runtime_ocaml_Runtime[12], + _aa0_); + return caml_call2(Runtime_ocaml_Runtime[27], _NV_, _aa1_); + } + var + _aaS_ = caml_call2(Runtime_ocaml_Runtime[90], _aaR_, _aaQ_), + _aaT_ = caml_call1(Runtime_ocaml_Runtime[68], _aaS_), + _aaU_ = caml_call2(Runtime_ocaml_Runtime[86], _aaT_, _aaP_), + _aaV_ = + caml_call2 + (Runtime_ocaml_Runtime[83], l_841_1_2_applicable, _aaU_); + return caml_call2(Runtime_ocaml_Runtime[29], _NX_, _aaV_); + } var - _auL_=caml_call2(Runtime_ocaml_Runtime[90],_auK_,_auJ_), - _auM_=caml_call1(Runtime_ocaml_Runtime[68],_auL_), - _auN_=caml_call2(Runtime_ocaml_Runtime[91],_auM_,_auI_), - _auO_=caml_call2(Runtime_ocaml_Runtime[126],_auN_,_auH_); - return caml_call2(Runtime_ocaml_Runtime[29],_Tw_,_auO_)} - return caml_call4(Runtime_ocaml_Runtime[63],_Tx_,[0],_auG_,_auF_)}], - _atc_=caml_call4(Runtime_ocaml_Runtime[63],_Ty_,_atb_,_ata_,_as$_)} - catch(_auE_) - {_auE_ = caml_wrap_exception(_auE_); - if(_auE_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Tu_]; - throw _auE_} - var - condition_rang_enfant= - caml_call3 - (Runtime_ocaml_Runtime[28],_Tz_,Runtime_ocaml_Runtime[12],_atc_); - try - {var - _atd_=function(param){return date_courante}, - _ate_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_TB_,1)}, - _atf_=caml_call4(Runtime_ocaml_Runtime[63],_TC_,[0],_ate_,_atd_), - base_mensuelle_allocations_fam= - caml_call3 - (Runtime_ocaml_Runtime[28],_TD_,Runtime_ocaml_Runtime[16],_atf_)} - catch(_auD_) - {_auD_ = caml_wrap_exception(_auD_); - if(_auD_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_TA_]; - throw _auD_} - var - _atg_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_TE_,base_mensuelle_allocations_fam$5), - [0,base_mensuelle_allocations_fam]), - result=caml_call2(Runtime_ocaml_Runtime[27],_TF_,_atg_), - base_mensuelle_allocations_fam$0=result[1]; - try - {var - _ath_=function(param){return menage}, - _ati_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_TH_,1)}, - _atj_=caml_call4(Runtime_ocaml_Runtime[63],_TI_,[0],_ati_,_ath_), - eligibilite_apl_dot_menage= - caml_call3(Runtime_ocaml_Runtime[28],_TJ_,embed_menage,_atj_)} - catch(_auC_) - {_auC_ = caml_wrap_exception(_auC_); - if(_auC_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_TG_]; - throw _auC_} - try - {var - _atk_=function(param){return demandeur}, - _atl_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_TL_,1)}, - _atm_=caml_call4(Runtime_ocaml_Runtime[63],_TM_,[0],_atl_,_atk_), - eligibilite_apl_dot_demandeur= - caml_call3(Runtime_ocaml_Runtime[28],_TN_,embed_demandeur,_atm_)} - catch(_auB_) - {_auB_ = caml_wrap_exception(_auB_); - if(_auB_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_TK_]; - throw _auB_} - try - {var - _atn_=function(param){return date_courante}, - _ato_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_TP_,1)}, - _atp_=caml_call4(Runtime_ocaml_Runtime[63],_TQ_,[0],_ato_,_atn_), - eligibilite_apl_dot_date_coura= - caml_call3 - (Runtime_ocaml_Runtime[28],_TR_,Runtime_ocaml_Runtime[16],_atp_)} - catch(_auA_) - {_auA_ = caml_wrap_exception(_auA_); - if(_auA_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_TO_]; - throw _auA_} - function eligibilite_apl_dot_condition_(param) - {throw Runtime_ocaml_Runtime[2]} - function eligibilite_apl_dot_condition_$0(param) - {throw Runtime_ocaml_Runtime[2]} - function eligibilite_apl_dot_date_entre(param) - {throw Runtime_ocaml_Runtime[2]} - var - _atq_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_TS_,eligibilite_aides_personnelle_), - [0, - eligibilite_apl_dot_menage, - eligibilite_apl_dot_demandeur, - eligibilite_apl_dot_date_coura, - eligibilite_apl_dot_condition_, - eligibilite_apl_dot_condition_$0, - eligibilite_apl_dot_date_entre]), - result$0=caml_call2(Runtime_ocaml_Runtime[27],_TT_,_atq_), - eligibilite_apl_dot_date_coura$0=result$0[1], - eligibilite_apl_dot_eligibilit=result$0[2]; - try - {var - _atr_=function(param){return 0}, - _ats_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_TV_,1)}, - _att_= - [0, - function(param) - {function _auq_(param){return 1} - function _aur_(param) - {var _aus_=informations[2]; - if(0 === _aus_[0]) - var _aut_=0; - else - {var date_naissance_ou_grossesse=_aus_[1]; - switch(date_naissance_ou_grossesse[0]) - {case 0: + _$k_ = + [0, + function(param){ + function _$l_(param){return 1;} + function _$m_(param){ + var match = menage[5]; + switch(match[0]){ + case 0: + var _aaz_ = 0; break; + case 1: + var + date_mariage = match[1], + _aaH_ = + caml_call3 + (Runtime_ocaml_Runtime[94], 2, date_mariage, duree_l841_1_3), + _aaz_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _aaH_); + break; + case 2: + var _aaz_ = 0; break; + case 3: + var _aaz_ = 0; break; + case 4: + var _aaz_ = 0; break; + default: var _aaz_ = 0; + } + var + _aaA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$354), + _aaB_ = menage[3]; + function _aaC_(personne_a_charge){ + if(0 !== personne_a_charge[0]) return 0; + var + enfant = personne_a_charge[1], + _aaI_ = enfant[3], + _aaJ_ = enfant[4], + _aaK_ = 0 === enfant[8][0] ? _NY_ : _N3_, + _aaL_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _NZ_, + embed_enfant_prestations_famil, + [0, + enfant[1], + enfant[7], + enfant[6], + enfant[5], + _aaK_, + _aaJ_, + _aaI_]), + _aaM_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _N0_, + prestations_familiales_dot_dro), + _aaL_), + _aaN_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _N1_, + Runtime_ocaml_Runtime[12], + _aaM_), + _aaO_ = caml_call2(Runtime_ocaml_Runtime[27], _N2_, _aaN_); + return caml_call1(Runtime_ocaml_Runtime[67], _aaO_); + } + var + _aaD_ = caml_call2(Runtime_ocaml_Runtime[90], _aaC_, _aaB_), + _aaE_ = caml_call1(Runtime_ocaml_Runtime[68], _aaD_), + _aaF_ = caml_call2(Runtime_ocaml_Runtime[86], _aaE_, _aaA_), + _aaG_ = caml_call2(Runtime_ocaml_Runtime[83], _aaF_, _aaz_); + return caml_call2(Runtime_ocaml_Runtime[29], _N4_, _aaG_); + } var - date_naissance=date_naissance_ou_grossesse[1], - _auu_=caml_call3(Runtime_ocaml_Runtime[60],0,0,-1), - _auv_=caml_call3(Runtime_ocaml_Runtime[60],2,0,0), - _auw_= - caml_call3(Runtime_ocaml_Runtime[94],2,date_naissance,_auv_), - _aux_=caml_call1(Runtime_ocaml_Runtime[75],_auw_), - _auy_=caml_call3(Runtime_ocaml_Runtime[94],2,_aux_,_auu_), - _auz_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_auy_); - break; - case 1:var _auz_=0;break; - default:var _auz_=1} - var _aut_=_auz_} - return caml_call2(Runtime_ocaml_Runtime[29],_TW_,_aut_)} - return caml_call4(Runtime_ocaml_Runtime[63],_TX_,[0],_aur_,_auq_)}], - _atu_=caml_call4(Runtime_ocaml_Runtime[63],_TY_,_att_,_ats_,_atr_)} - catch(_aup_) - {_aup_ = caml_wrap_exception(_aup_); - if(_aup_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_TU_]; - throw _aup_} - var - condition_periode_demenagement= - caml_call3 - (Runtime_ocaml_Runtime[28],_TZ_,Runtime_ocaml_Runtime[12],_atu_); - try - {var - _atv_= - function(param) - {var - _at__=caml_call1(Runtime_ocaml_Runtime[46],cst_3$98), - _at$_=menage[3]; - function _aua_(personne_a_charge) - {return 0 === personne_a_charge[0]?1:0} - var - _aub_=caml_call2(Runtime_ocaml_Runtime[90],_aua_,_at$_), - _auc_=caml_call1(Runtime_ocaml_Runtime[68],_aub_); - if(caml_call2(Runtime_ocaml_Runtime[121],_auc_,_at__)) - var - _aud_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2$1), - _aue_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$99), - _auf_=menage[3], - _aug_= - function(personne_a_charge) - {return 0 === personne_a_charge[0]?1:0}, - _auh_=caml_call2(Runtime_ocaml_Runtime[90],_aug_,_auf_), - _aui_=caml_call1(Runtime_ocaml_Runtime[68],_auh_), - _auj_=caml_call2(Runtime_ocaml_Runtime[96],_aui_,_aue_), - _auk_=caml_call1(Runtime_ocaml_Runtime[69],_auj_), - _aul_=caml_call2(Runtime_ocaml_Runtime[103],_auk_,_aud_), - _aum_= - caml_call2 - (Runtime_ocaml_Runtime[104], - base_mensuelle_allocations_fam$0, - _aul_); - else - var _aum_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$412); - var - _aun_=caml_call1(Runtime_ocaml_Runtime[39],cst_2_4), - _auo_= - caml_call2 - (Runtime_ocaml_Runtime[104], - base_mensuelle_allocations_fam$0, - _aun_); - return caml_call2(Runtime_ocaml_Runtime[93],_auo_,_aum_)}, - _atw_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_T1_,1)}, - _atx_=caml_call4(Runtime_ocaml_Runtime[63],_T2_,[0],_atw_,_atv_)} - catch(_at9_) - {_at9_ = caml_wrap_exception(_at9_); - if(_at9_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_T0_]; - throw _at9_} - var - plafond_d823_22= - caml_call3 - (Runtime_ocaml_Runtime[28],_T3_,Runtime_ocaml_Runtime[13],_atx_); - try - {var - _aty_=function(param){return 0}, - _atz_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_T5_,1)}, - _atA_= - [0, - function(param) - {function _atH_(param){return 1} - function _atI_(param) - {var - _at4_= - caml_call2 - (Runtime_ocaml_Runtime[99], - eligibilite_apl_dot_date_coura$0, - date_emmenagement), - _at5_= - caml_call2 - (Runtime_ocaml_Runtime[119], - _at4_, - delai_apres_emmenagement_l823_), - _at6_= - caml_call2 - (Runtime_ocaml_Runtime[83], - condition_periode_demenagement, - _at5_), - _at7_= - caml_call2 - (Runtime_ocaml_Runtime[83],condition_rang_enfant,_at6_), - _at8_= - caml_call2 - (Runtime_ocaml_Runtime[83], - eligibilite_apl_dot_eligibilit, - _at7_); - return caml_call2(Runtime_ocaml_Runtime[29],_T6_,_at8_)} - var - _atJ_= - [0, - function(param) - {function _atK_(param){throw Runtime_ocaml_Runtime[2]} - function _atL_(param){return 0} - var - _atM_= - [0, - function(param) - {function _atN_(param){return 0} - function _atO_(param) - {switch(menage[9][0]) - {case 0:var _at3_=0;break; - case 1:var _at3_=0;break; - case 2:var _at3_=0;break; - case 3:var _at3_=0;break; - case 4:var _at3_=0;break; - case 5:var _at3_=0;break; - case 6:var _at3_=0;break; - case 7:var _at3_=0;break; - default:var _at3_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_T7_,_at3_)} - var - _atP_= - [0, - function(param) - {function _atQ_(param){return 0} - function _atR_(param) - {switch(menage[9][0]) - {case 0:var _atZ_=0;break; - case 1:var _atZ_=0;break; - case 2:var _atZ_=0;break; - case 3:var _atZ_=0;break; - case 4:var _atZ_=0;break; - case 5:var _atZ_=0;break; - case 6:var _atZ_=0;break; - case 7:var _atZ_=1;break; - default:var _atZ_=0} - var - _at0_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _at1_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_at0_), - _at2_=caml_call2(Runtime_ocaml_Runtime[83],_at1_,_atZ_); - return caml_call2(Runtime_ocaml_Runtime[29],_T8_,_at2_)} - var - _atS_= - [0, - function(param) - {function _atT_(param){return 0} - function _atU_(param) - {switch(menage[9][0]) - {case 0:var _atV_=0;break; - case 1:var _atV_=0;break; - case 2:var _atV_=0;break; - case 3:var _atV_=0;break; - case 4:var _atV_=0;break; - case 5:var _atV_=0;break; - case 6:var _atV_=0;break; - case 7:var _atV_=0;break; - default:var _atV_=1} - var - _atW_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _atX_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_atW_), - _atY_=caml_call2(Runtime_ocaml_Runtime[83],_atX_,_atV_); - return caml_call2(Runtime_ocaml_Runtime[29],_T9_,_atY_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_T__,[0],_atU_,_atT_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_T$_,_atS_,_atR_,_atQ_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ua_,_atP_,_atO_,_atN_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ub_,_atM_,_atL_,_atK_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Uc_,_atJ_,_atI_,_atH_)}], - _atB_=caml_call4(Runtime_ocaml_Runtime[63],_Ud_,_atA_,_atz_,_aty_)} - catch(_atG_) - {_atG_ = caml_wrap_exception(_atG_); - if(_atG_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_T4_]; - throw _atG_} - caml_call3 - (Runtime_ocaml_Runtime[28],_Ue_,Runtime_ocaml_Runtime[12],_atB_); - try - {var - _atC_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[118], - depenses_justifiees_reellement, - plafond_d823_22) - ?depenses_justifiees_reellement - :plafond_d823_22}, - _atD_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ug_,1)}, - _atE_=caml_call4(Runtime_ocaml_Runtime[63],_Uh_,[0],_atD_,_atC_)} - catch(_atF_) - {_atF_ = caml_wrap_exception(_atF_); - if(_atF_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Uf_]; - throw _atF_} - var - montant_prime_demenagement= - caml_call3 - (Runtime_ocaml_Runtime[28],_Ui_,Runtime_ocaml_Runtime[13],_atE_); - return [0,montant_prime_demenagement]} - function eligibilite_allocation_logemen(eligibilite_allocation_logemen) - {var - date_courante=eligibilite_allocation_logemen[1], - menage=eligibilite_allocation_logemen[2], - demandeur=eligibilite_allocation_logemen[3], - beneficie_aide_personnalisee_l=eligibilite_allocation_logemen[4]; - try - {var - _aoh_= - function(param){return caml_call3(Runtime_ocaml_Runtime[60],5,0,0)}, - _aoi_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Uk_,1)}, - _aoj_=caml_call4(Runtime_ocaml_Runtime[63],_Ul_,[0],_aoi_,_aoh_)} - catch(_as7_) - {_as7_ = caml_wrap_exception(_as7_); - if(_as7_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Uj_]; - throw _as7_} - var - duree_l841_1_3= - caml_call3 - (Runtime_ocaml_Runtime[28],_Um_,Runtime_ocaml_Runtime[17],_aoj_); - try - {var - _aok_=function(param){return date_courante}, - _aol_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Uo_,1)}, - _aom_=caml_call4(Runtime_ocaml_Runtime[63],_Up_,[0],_aol_,_aok_), - prestations_familiales_dot_dat= - caml_call3 - (Runtime_ocaml_Runtime[28],_Uq_,Runtime_ocaml_Runtime[16],_aom_)} - catch(_as6_) - {_as6_ = caml_wrap_exception(_as6_); - if(_as6_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Un_]; - throw _as6_} - try - {var - _aon_=function(param){return _Us_}, - _aoo_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ut_,1)}, - _aop_=caml_call4(Runtime_ocaml_Runtime[63],_Uu_,[0],_aoo_,_aon_), - prestations_familiales_dot_pre= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Uv_, - embed_element_prestations_fami$0, - _aop_)} - catch(_as5_) - {_as5_ = caml_wrap_exception(_as5_); - if(_as5_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ur_]; - throw _as5_} - try - {var - _aoq_=function(param){return menage[9]}, - _aor_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ux_,1)}, - _aos_=caml_call4(Runtime_ocaml_Runtime[63],_Uy_,[0],_aor_,_aoq_), - prestations_familiales_dot_res= - caml_call3 - (Runtime_ocaml_Runtime[28],_Uz_,embed_collectivite$0,_aos_)} - catch(_as4_) - {_as4_ = caml_wrap_exception(_as4_); - if(_as4_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Uw_]; - throw _as4_} - function prestations_familiales_dot_age(param) - {throw Runtime_ocaml_Runtime[2]} - var - _aot_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_UA_,eligibilite_prestations_famili), - [0, - prestations_familiales_dot_dat, - prestations_familiales_dot_pre, - prestations_familiales_dot_res, - prestations_familiales_dot_age]), - result=caml_call2(Runtime_ocaml_Runtime[27],_UB_,_aot_), - prestations_familiales_dot_dro=result[2]; - try - {var - _aou_=function(param){return 0}, - _aov_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_UD_,1)}, - _aow_= - [0, - function(param) - {function _asR_(param){throw Runtime_ocaml_Runtime[2]} - function _asS_(param){return 0} - function _asT_(param) - {function _asX_(param){return 0} - function _asY_(param) - {switch(menage[9][0]) - {case 0:var _as3_=1;break; - case 1:var _as3_=1;break; - case 2:var _as3_=1;break; - case 3:var _as3_=1;break; - case 4:var _as3_=0;break; - case 5:var _as3_=0;break; - case 6:var _as3_=0;break; - case 7:var _as3_=0;break; - default:var _as3_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_UE_,_as3_)} - var - _asZ_= - [0, - function(param) - {function _as0_(param){return 0} - function _as1_(param) - {switch(menage[9][0]) - {case 0:var _as2_=0;break; - case 1:var _as2_=0;break; - case 2:var _as2_=0;break; - case 3:var _as2_=0;break; - case 4:var _as2_=1;break; - case 5:var _as2_=1;break; - case 6:var _as2_=0;break; - case 7:var _as2_=0;break; - default:var _as2_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_UF_,_as2_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_UG_,[0],_as1_,_as0_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_UH_,_asZ_,_asY_,_asX_)} - var - _asU_= - [0, - function(param) - {function _asV_(param){return 1} - function _asW_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_UI_,1)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_UJ_,[0],_asW_,_asV_)}, - _asT_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_UK_,_asU_,_asS_,_asR_)}], - _aox_=caml_call4(Runtime_ocaml_Runtime[63],_UL_,_aow_,_aov_,_aou_)} - catch(_asQ_) - {_asQ_ = caml_wrap_exception(_asQ_); - if(_asQ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_UC_]; - throw _asQ_} - var - l_841_1_6_applicable= - caml_call3 - (Runtime_ocaml_Runtime[28],_UM_,Runtime_ocaml_Runtime[12],_aox_); - try - {var - _aoy_=function(param){return 0}, - _aoz_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_UO_,1)}, - _aoA_= - [0, - function(param) - {function _asD_(param){throw Runtime_ocaml_Runtime[2]} - function _asE_(param){return 0} - function _asF_(param) - {function _asJ_(param){return 0} - function _asK_(param) - {switch(menage[9][0]) - {case 0:var _asP_=1;break; - case 1:var _asP_=1;break; - case 2:var _asP_=1;break; - case 3:var _asP_=1;break; - case 4:var _asP_=0;break; - case 5:var _asP_=0;break; - case 6:var _asP_=0;break; - case 7:var _asP_=0;break; - default:var _asP_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_UP_,_asP_)} - var - _asL_= - [0, - function(param) - {function _asM_(param){return 0} - function _asN_(param) - {switch(menage[9][0]) - {case 0:var _asO_=0;break; - case 1:var _asO_=0;break; - case 2:var _asO_=0;break; - case 3:var _asO_=0;break; - case 4:var _asO_=1;break; - case 5:var _asO_=1;break; - case 6:var _asO_=0;break; - case 7:var _asO_=0;break; - default:var _asO_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_UQ_,_asO_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_UR_,[0],_asN_,_asM_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_US_,_asL_,_asK_,_asJ_)} - var - _asG_= - [0, - function(param) - {function _asH_(param){return 1} - function _asI_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_UT_,1)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_UU_,[0],_asI_,_asH_)}, - _asF_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_UV_,_asG_,_asE_,_asD_)}], - _aoB_=caml_call4(Runtime_ocaml_Runtime[63],_UW_,_aoA_,_aoz_,_aoy_)} - catch(_asC_) - {_asC_ = caml_wrap_exception(_asC_); - if(_asC_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_UN_]; - throw _asC_} - var - l_841_1_2_applicable= - caml_call3 - (Runtime_ocaml_Runtime[28],_UX_,Runtime_ocaml_Runtime[12],_aoB_); - try - {var - _aoC_=function(param){return 0}, - _aoD_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_UZ_,1)}, - _aoE_= - [0, - function(param) - {function _asp_(param){throw Runtime_ocaml_Runtime[2]} - function _asq_(param){return 0} - function _asr_(param) - {function _asv_(param){return 0} - function _asw_(param) - {switch(menage[9][0]) - {case 0:var _asB_=1;break; - case 1:var _asB_=1;break; - case 2:var _asB_=1;break; - case 3:var _asB_=1;break; - case 4:var _asB_=0;break; - case 5:var _asB_=0;break; - case 6:var _asB_=0;break; - case 7:var _asB_=0;break; - default:var _asB_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_U0_,_asB_)} - var - _asx_= - [0, - function(param) - {function _asy_(param){return 0} - function _asz_(param) - {switch(menage[9][0]) - {case 0:var _asA_=0;break; - case 1:var _asA_=0;break; - case 2:var _asA_=0;break; - case 3:var _asA_=0;break; - case 4:var _asA_=1;break; - case 5:var _asA_=1;break; - case 6:var _asA_=0;break; - case 7:var _asA_=0;break; - default:var _asA_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_U1_,_asA_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_U2_,[0],_asz_,_asy_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_U3_,_asx_,_asw_,_asv_)} - var - _ass_= - [0, - function(param) - {function _ast_(param){return 1} - function _asu_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_U4_,1)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_U5_,[0],_asu_,_ast_)}, - _asr_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_U6_,_ass_,_asq_,_asp_)}], - _aoF_=caml_call4(Runtime_ocaml_Runtime[63],_U7_,_aoE_,_aoD_,_aoC_)} - catch(_aso_) - {_aso_ = caml_wrap_exception(_aso_); - if(_aso_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_UY_]; - throw _aso_} - var - l_841_1_1_applicable= - caml_call3 - (Runtime_ocaml_Runtime[28],_U8_,Runtime_ocaml_Runtime[12],_aoF_); - try - {var - _aoG_=function(param){return 0}, - _aoH_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_U__,1)}, - _aoI_= - [0, - function(param) - {function _arX_(param){return 1} - function _arY_(param) - {switch(menage[2][3][0]) - {case 0:var _asn_=1;break; - case 1:var _asn_=1;break; - case 2:var _asn_=0;break; - case 3:var _asn_=1;break; - default:var _asn_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_U$_,_asn_)} - var - _arZ_= - [0, - function(param) - {function _ar0_(param){throw Runtime_ocaml_Runtime[2]} - function _ar1_(param){return 0} - var - _ar2_= - [0, - function(param) - {function _ar3_(param){return 1} - function _ar4_(param) - {var _ash_=menage[2][3]; - switch(_ash_[0]) - {case 0:var _asi_=0;break; - case 1:var _asi_=0;break; - case 2: - var proprietaire=_ash_[1]; - switch(proprietaire[5][0]) - {case 0:var _asj_=1;break; - case 1:var _asj_=0;break; - case 2:var _asj_=0;break; - default:var _asj_=0} - switch(proprietaire[5][0]) - {case 0:var _ask_=0;break; - case 1:var _ask_=0;break; - case 2:var _ask_=0;break; - default:var _ask_=1} - var - _asl_=caml_call2(Runtime_ocaml_Runtime[84],_ask_,_asj_), - _asm_=0 === proprietaire[10][3][0]?1:0, - _asi_=caml_call2(Runtime_ocaml_Runtime[83],_asm_,_asl_); - break; - case 3:var _asi_=0;break; - default:var _asi_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_Va_,_asi_)} - var - _ar5_= - [0, - function(param) - {function _ar6_(param){return 1} - function _ar7_(param) - {var _asd_=menage[2][3]; - switch(_asd_[0]) - {case 0:var _ase_=0;break; - case 1:var _ase_=0;break; - case 2: - var proprietaire=_asd_[1]; - switch(proprietaire[5][0]) - {case 0:var _asf_=0;break; - case 1:var _asf_=1;break; - case 2:var _asf_=0;break; - default:var _asf_=0} - var - _asg_=0 === proprietaire[10][3][0]?1:0, - _ase_=caml_call2(Runtime_ocaml_Runtime[83],_asg_,_asf_); - break; - case 3:var _ase_=0;break; - default:var _ase_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_Vb_,_ase_)} - var - _ar8_= - [0, - function(param) - {function _ar9_(param){return 1} - function _ar__(param) - {var _ar$_=menage[2][3]; - switch(_ar$_[0]) - {case 0:var _asa_=0;break; - case 1:var _asa_=0;break; - case 2: - var proprietaire=_ar$_[1]; - switch(proprietaire[5][0]) - {case 0:var _asb_=0;break; - case 1:var _asb_=0;break; - case 2:var _asb_=1;break; - default:var _asb_=0} - var - _asc_=0 === proprietaire[10][3][0]?1:0, - _asa_=caml_call2(Runtime_ocaml_Runtime[83],_asc_,_asb_); - break; - case 3:var _asa_=0;break; - default:var _asa_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_Vc_,_asa_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Vd_,[0],_ar__,_ar9_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ve_,_ar8_,_ar7_,_ar6_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Vf_,_ar5_,_ar4_,_ar3_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Vg_,_ar2_,_ar1_,_ar0_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Vh_,_arZ_,_arY_,_arX_)}], - _aoJ_=caml_call4(Runtime_ocaml_Runtime[63],_Vi_,_aoI_,_aoH_,_aoG_)} - catch(_arW_) - {_arW_ = caml_wrap_exception(_arW_); - if(_arW_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_U9_]; - throw _arW_} - var - condition_accession_propriete= - caml_call3 - (Runtime_ocaml_Runtime[28],_Vj_,Runtime_ocaml_Runtime[12],_aoJ_); - try - {var - _aoK_=function(param){return menage}, - _aoL_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Vl_,1)}, - _aoM_=caml_call4(Runtime_ocaml_Runtime[63],_Vm_,[0],_aoL_,_aoK_), - eligibilite_commune_dot_menage= - caml_call3(Runtime_ocaml_Runtime[28],_Vn_,embed_menage,_aoM_)} - catch(_arV_) - {_arV_ = caml_wrap_exception(_arV_); - if(_arV_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Vk_]; - throw _arV_} - try - {var - _aoN_=function(param){return demandeur}, - _aoO_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Vp_,1)}, - _aoP_=caml_call4(Runtime_ocaml_Runtime[63],_Vq_,[0],_aoO_,_aoN_), - eligibilite_commune_dot_demand= - caml_call3(Runtime_ocaml_Runtime[28],_Vr_,embed_demandeur,_aoP_)} - catch(_arU_) - {_arU_ = caml_wrap_exception(_arU_); - if(_arU_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Vo_]; - throw _arU_} - try - {var - _aoQ_=function(param){return date_courante}, - _aoR_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Vt_,1)}, - _aoS_=caml_call4(Runtime_ocaml_Runtime[63],_Vu_,[0],_aoR_,_aoQ_), - eligibilite_commune_dot_date_c= - caml_call3 - (Runtime_ocaml_Runtime[28],_Vv_,Runtime_ocaml_Runtime[16],_aoS_)} - catch(_arT_) - {_arT_ = caml_wrap_exception(_arT_); - if(_arT_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Vs_]; - throw _arT_} - function eligibilite_commune_dot_condit(param) - {function _arO_(param){return 1} - function _arP_(param) - {var _arR_=menage[2][3]; - switch(_arR_[0]) - {case 0:var _arS_=0;break; - case 1:var logement_foyer=_arR_[1],_arS_=logement_foyer[6];break; - case 2:var _arS_=0;break; - case 3:var _arS_=0;break; - default:var _arS_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_Vw_,_arS_)} - var _arQ_=caml_call4(Runtime_ocaml_Runtime[63],_Vx_,[0],_arP_,_arO_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _Vy_, - Runtime_ocaml_Runtime[12], - _arQ_)} - function eligibilite_commune_dot_condit$0(param) - {function _arJ_(param){return 1} - function _arK_(param) - {var _arM_=menage[2][3]; - switch(_arM_[0]) - {case 0:var _arN_=0;break; - case 1:var logement_foyer=_arM_[1],_arN_=logement_foyer[6];break; - case 2:var _arN_=0;break; - case 3:var _arN_=0;break; - default:var _arN_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_Vz_,_arN_)} - var _arL_=caml_call4(Runtime_ocaml_Runtime[63],_VA_,[0],_arK_,_arJ_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _VB_, - Runtime_ocaml_Runtime[12], - _arL_)} - function eligibilite_commune_dot_date_e(param) - {throw Runtime_ocaml_Runtime[2]} - var - _aoT_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_VC_,eligibilite_aides_personnelle_), - [0, - eligibilite_commune_dot_menage, - eligibilite_commune_dot_demand, - eligibilite_commune_dot_date_c, - eligibilite_commune_dot_condit, - eligibilite_commune_dot_condit$0, - eligibilite_commune_dot_date_e]), - result$0=caml_call2(Runtime_ocaml_Runtime[27],_VD_,_aoT_), - eligibilite_commune_dot_eligib=result$0[2], - eligibilite_commune_dot_nombre=result$0[3], - eligibilite_commune_dot_coeffi=result$0[4], - eligibilite_commune_dot_condit$1=result$0[5]; - try - {var - _aoU_=function(param){return eligibilite_commune_dot_coeffi}, - _aoV_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_VF_,1)}, - _aoW_=caml_call4(Runtime_ocaml_Runtime[63],_VG_,[0],_aoV_,_aoU_)} - catch(_arI_) - {_arI_ = caml_wrap_exception(_arI_); - if(_arI_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_VE_]; - throw _arI_} - var - _aoX_=caml_call1(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15]), - coefficents_enfants_garde_alte= - caml_call3(Runtime_ocaml_Runtime[28],_VH_,_aoX_,_aoW_); - try - {var - _aoY_=function(param){return eligibilite_commune_dot_nombre}, - _aoZ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_VJ_,1)}, - _ao0_=caml_call4(Runtime_ocaml_Runtime[63],_VK_,[0],_aoZ_,_aoY_)} - catch(_arH_) - {_arH_ = caml_wrap_exception(_arH_); - if(_arH_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_VI_]; - throw _arH_} - var - nombre_personnes_a_charge_pris= - caml_call3 - (Runtime_ocaml_Runtime[28],_VL_,Runtime_ocaml_Runtime[14],_ao0_); - try - {var - _ao1_= - function(param) - {var - _arF_= - caml_call1 - (Runtime_ocaml_Runtime[67],condition_accession_propriete), - _arG_= - caml_call1 - (Runtime_ocaml_Runtime[67],eligibilite_commune_dot_eligib); - return caml_call2(Runtime_ocaml_Runtime[84],_arG_,_arF_)?_VN_:_VO_}, - _ao2_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_VP_,1)}, - _ao3_=caml_call4(Runtime_ocaml_Runtime[63],_VQ_,[0],_ao2_,_ao1_)} - catch(_arE_) - {_arE_ = caml_wrap_exception(_arE_); - if(_arE_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_VM_]; - throw _arE_} - var - eligibilite_dispositions_commu= - caml_call3 - (Runtime_ocaml_Runtime[28],_VR_,embed_type_eligibilite_allocat,_ao3_); - try - {var - _ao4_=function(param){return 0}, - _ao5_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_VT_,1)}, - _ao6_= - [0, - function(param) - {function _apG_(param){return 1} - function _apH_(param) - {var _ars_=menage[1],_art_=0; - function _aru_(acc,prestation) - {var - _arx_=caml_call2(Runtime_ocaml_Runtime[86],prestation,_VU_), - _ary_=caml_call2(Runtime_ocaml_Runtime[86],prestation,_VV_), - _arz_=caml_call2(Runtime_ocaml_Runtime[84],_ary_,_arx_), - _arA_=caml_call2(Runtime_ocaml_Runtime[86],prestation,_VW_), - _arB_=caml_call2(Runtime_ocaml_Runtime[84],_arA_,_arz_), - _arC_=caml_call2(Runtime_ocaml_Runtime[86],prestation,_VX_), - _arD_=caml_call2(Runtime_ocaml_Runtime[84],_arC_,_arB_); - return caml_call2(Runtime_ocaml_Runtime[84],acc,_arD_)} - var - _arv_=caml_call3(Runtime_ocaml_Runtime[136],_aru_,_art_,_ars_), - _arw_= - caml_call2 - (Runtime_ocaml_Runtime[83],l_841_1_1_applicable,_arv_); - return caml_call2(Runtime_ocaml_Runtime[29],_VY_,_arw_)} - var - _apI_= - [0, - function(param) - {function _apJ_(param){return 1} - function _apK_(param) - {var - _arf_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$287), - _arg_=menage[3]; - function _arh_(personne_a_charge) - {if(0 === personne_a_charge[0]) - {var - enfant=personne_a_charge[1], - _arm_=enfant[3], - _arn_=enfant[4], - _aro_=0 === enfant[8][0]?_VZ_:_V4_, - _arp_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _V0_, - embed_enfant_prestations_famil, - [0, - enfant[1], - enfant[7], - enfant[6], - enfant[5], - _aro_, - _arn_, - _arm_]), - _arq_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _V1_, - prestations_familiales_dot_dro), - _arp_), - _arr_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _V2_, - Runtime_ocaml_Runtime[12], - _arq_); - return caml_call2(Runtime_ocaml_Runtime[27],_V3_,_arr_)} - return 0} - var - _ari_=caml_call2(Runtime_ocaml_Runtime[90],_arh_,_arg_), - _arj_=caml_call1(Runtime_ocaml_Runtime[68],_ari_), - _ark_=caml_call2(Runtime_ocaml_Runtime[86],_arj_,_arf_), - _arl_= - caml_call2 - (Runtime_ocaml_Runtime[83],l_841_1_2_applicable,_ark_); - return caml_call2(Runtime_ocaml_Runtime[29],_V5_,_arl_)} - var - _apL_= - [0, - function(param) - {function _apM_(param){return 1} - function _apN_(param) - {var _aq0_=menage[5]; - switch(_aq0_[0]) - {case 0:var _aq1_=0;break; - case 1: - var - date_mariage=_aq0_[1], - _aq9_= + _$n_ = + [0, + function(param){ + function _$o_(param){return 1;} + function _$p_(param){ + var + _aaq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$250), + _aar_ = menage[3]; + function _aas_(personne_a_charge){ + var + _aaw_ = caml_call3 - (Runtime_ocaml_Runtime[94],2,date_mariage,duree_l841_1_3), - _aq1_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_aq9_); - break; - case 2:var _aq1_=0;break; - case 3:var _aq1_=0;break; - case 4:var _aq1_=0;break; - default:var _aq1_=0} + (Runtime_ocaml_Runtime[28], + _N5_, + embed_personne_a_charge, + personne_a_charge), + _aax_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _N6_, + eligibilite_commune_dot_condit$1), + _aaw_), + _aay_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _N7_, + Runtime_ocaml_Runtime[12], + _aax_); + return caml_call2(Runtime_ocaml_Runtime[27], _N8_, _aay_); + } + var + _aat_ = caml_call2(Runtime_ocaml_Runtime[90], _aas_, _aar_), + _aau_ = caml_call1(Runtime_ocaml_Runtime[68], _aat_), + _aav_ = caml_call2(Runtime_ocaml_Runtime[126], _aau_, _aaq_); + return caml_call2(Runtime_ocaml_Runtime[29], _N9_, _aav_); + } var - _aq2_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$413), - _aq3_=menage[3]; - function _aq4_(personne_a_charge) - {if(0 === personne_a_charge[0]) - {var - enfant=personne_a_charge[1], - _aq__=enfant[3], - _aq$_=enfant[4], - _ara_=0 === enfant[8][0]?_V6_:_V$_, - _arb_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _V7_, - embed_enfant_prestations_famil, + _$q_ = + [0, + function(param){ + function _$r_(param){return 1;} + function _$s_(param){ + var + _aak_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$251), + _aal_ = menage[3]; + function _aam_(personne_a_charge){ + if(0 === personne_a_charge[0]) return 0; + var parent = personne_a_charge[1]; + return caml_call2 + (Runtime_ocaml_Runtime[83], parent[3], parent[5]); + } + var + _aan_ = caml_call2(Runtime_ocaml_Runtime[90], _aam_, _aal_), + _aao_ = caml_call1(Runtime_ocaml_Runtime[68], _aan_), + _aap_ = caml_call2(Runtime_ocaml_Runtime[126], _aao_, _aak_); + return caml_call2(Runtime_ocaml_Runtime[29], _N__, _aap_); + } + var + _$t_ = [0, - enfant[1], - enfant[7], - enfant[6], - enfant[5], - _ara_, - _aq$_, - _aq__]), - _arc_= + function(param){ + function _$u_(param){return 1;} + function _$v_(param){ + switch(menage[5][0]){ + case 0: + var + _aae_ = menage[7], + _aaf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$355), + _aag_ = caml_call1(Runtime_ocaml_Runtime[68], menage[3]), + _aah_ = caml_call2(Runtime_ocaml_Runtime[86], _aag_, _aaf_), + _aai_ = caml_call2(Runtime_ocaml_Runtime[83], _aah_, _aae_); + break; + case 1: + var _aai_ = 0; break; + case 2: + var _aai_ = 0; break; + case 3: + var _aai_ = 0; break; + case 4: + var _aai_ = 0; break; + default: var _aai_ = 0; + } + var + _aaj_ = + caml_call2 + (Runtime_ocaml_Runtime[83], l_841_1_6_applicable, _aai_); + return caml_call2(Runtime_ocaml_Runtime[29], _N$_, _aaj_); + } + function _$w_(param){ + function _$U_(param){return 1;} + function _$V_(param){ + var + _$2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$252), + _$3_ = menage[3]; + function _$4_(personne_a_charge){ + if(0 !== personne_a_charge[0]) return 0; + var + enfant = personne_a_charge[1], + _$__ = enfant[3], + _$$_ = enfant[4], + _aaa_ = 0 === enfant[8][0] ? _Oa_ : _Of_, + _aab_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ob_, + embed_enfant_prestations_famil, + [0, + enfant[1], + enfant[7], + enfant[6], + enfant[5], + _aaa_, + _$$_, + _$__]), + _aac_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Oc_, + prestations_familiales_dot_dro), + _aab_), + _aad_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Od_, + Runtime_ocaml_Runtime[12], + _aac_); + return caml_call2(Runtime_ocaml_Runtime[27], _Oe_, _aad_); + } + var + _$5_ = caml_call2(Runtime_ocaml_Runtime[90], _$4_, _$3_), + _$6_ = caml_call1(Runtime_ocaml_Runtime[68], _$5_), + _$7_ = caml_call2(Runtime_ocaml_Runtime[126], _$6_, _$2_); + switch(menage[9][0]){ + case 0: + var _$8_ = 1; break; + case 1: + var _$8_ = 1; break; + case 2: + var _$8_ = 1; break; + case 3: + var _$8_ = 1; break; + case 4: + var _$8_ = 0; break; + case 5: + var _$8_ = 0; break; + case 6: + var _$8_ = 0; break; + case 7: + var _$8_ = 0; break; + default: var _$8_ = 1; + } + var + _$9_ = caml_call2(Runtime_ocaml_Runtime[83], _$8_, _$7_); + return caml_call2(Runtime_ocaml_Runtime[29], _Og_, _$9_); + } + var + _$W_ = + [0, + function(param){ + function _$X_(param){return 1;} + function _$Y_(param){ + var _$Z_ = demandeur[5]; + switch(menage[9][0]){ + case 0: + var _$0_ = 1; break; + case 1: + var _$0_ = 1; break; + case 2: + var _$0_ = 1; break; + case 3: + var _$0_ = 1; break; + case 4: + var _$0_ = 0; break; + case 5: + var _$0_ = 0; break; + case 6: + var _$0_ = 0; break; + case 7: + var _$0_ = 0; break; + default: var _$0_ = 1; + } + var + _$1_ = caml_call2(Runtime_ocaml_Runtime[83], _$0_, _$Z_); + return caml_call2(Runtime_ocaml_Runtime[29], _Oh_, _$1_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Oi_, [0], _$Y_, _$X_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Oj_, _$W_, _$V_, _$U_); + } + var + _$x_ = + [0, + function(param){ + function _$y_(param){return 1;} + function _$z_(param){ + var + _$G_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$253), + _$H_ = menage[3]; + function _$I_(personne_a_charge){ + if(0 !== personne_a_charge[0]) return 0; + var + enfant = personne_a_charge[1], + _$O_ = enfant[3], + _$P_ = enfant[4], + _$Q_ = 0 === enfant[8][0] ? _Ok_ : _Op_, + _$R_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ol_, + embed_enfant_prestations_famil, + [0, + enfant[1], + enfant[7], + enfant[6], + enfant[5], + _$Q_, + _$P_, + _$O_]), + _$S_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Om_, + prestations_familiales_dot_dro), + _$R_), + _$T_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _On_, + Runtime_ocaml_Runtime[12], + _$S_); + return caml_call2(Runtime_ocaml_Runtime[27], _Oo_, _$T_); + } + var + _$J_ = caml_call2(Runtime_ocaml_Runtime[90], _$I_, _$H_), + _$K_ = caml_call1(Runtime_ocaml_Runtime[68], _$J_), + _$L_ = caml_call2(Runtime_ocaml_Runtime[126], _$K_, _$G_); + switch(menage[9][0]){ + case 0: + var _$M_ = 0; break; + case 1: + var _$M_ = 0; break; + case 2: + var _$M_ = 0; break; + case 3: + var _$M_ = 0; break; + case 4: + var _$M_ = 1; break; + case 5: + var _$M_ = 1; break; + case 6: + var _$M_ = 0; break; + case 7: + var _$M_ = 0; break; + default: var _$M_ = 0; + } + var + _$N_ = caml_call2(Runtime_ocaml_Runtime[83], _$M_, _$L_); + return caml_call2(Runtime_ocaml_Runtime[29], _Oq_, _$N_); + } + var + _$A_ = + [0, + function(param){ + function _$B_(param){return 1;} + function _$C_(param){ + var _$D_ = demandeur[5]; + switch(menage[9][0]){ + case 0: + var _$E_ = 0; break; + case 1: + var _$E_ = 0; break; + case 2: + var _$E_ = 0; break; + case 3: + var _$E_ = 0; break; + case 4: + var _$E_ = 1; break; + case 5: + var _$E_ = 1; break; + case 6: + var _$E_ = 0; break; + case 7: + var _$E_ = 0; break; + default: var _$E_ = 0; + } + var + _$F_ = caml_call2(Runtime_ocaml_Runtime[83], _$E_, _$D_); + return caml_call2(Runtime_ocaml_Runtime[29], _Or_, _$F_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Os_, [0], _$C_, _$B_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ot_, _$A_, _$z_, _$y_); + }, + _$w_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ou_, _$x_, _$v_, _$u_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ov_, _$t_, _$s_, _$r_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ow_, _$q_, _$p_, _$o_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ox_, _$n_, _$m_, _$l_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Oy_, _$k_, _$j_, _$i_); + }]; + return caml_call4(Runtime_ocaml_Runtime[63], _Oz_, _$h_, _$g_, _$f_); + }], + __I_ = caml_call4(Runtime_ocaml_Runtime[63], _OA_, __H_, __G_, __F_); + } + catch(_$e_){ + var __E_ = caml_wrap_exception(_$e_); + if(__E_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _NK_], 1); + throw caml_maybe_attach_backtrace(__E_, 0); + } + var + eligibilite_allocation_logemen$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _OB_, Runtime_ocaml_Runtime[12], __I_); + try{ + var + __K_ = + function(param){ + var + _$d_ = + caml_call2 + (Runtime_ocaml_Runtime[86], eligibilite_dispositions_commu, _OD_); + return caml_call2 + (Runtime_ocaml_Runtime[84], + _$d_, + beneficie_aide_personnalisee_l) + ? _OE_ + : eligibilite_allocation_logemen$0 ? _OF_ : _OG_; + }, + __L_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _OH_, 1); + }, + __M_ = + [0, + function(param){ + function __P_(param){return _OI_;} + function __Q_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _$b_ = 0; break; + case 1: + var _$b_ = 0; break; + case 2: + var + proprietaire = match[1], + _$c_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 12, 31), + _$b_ = + caml_call2 + (Runtime_ocaml_Runtime[125], proprietaire[10][2], _$c_); + break; + case 3: + var _$b_ = 0; break; + default: var _$b_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _OJ_, _$b_); + } + function __R_(param){ + function __$_(param){return _OK_;} + function _$a_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _OL_, demandeur[4]); + } + return caml_call4(Runtime_ocaml_Runtime[63], _OM_, [0], _$a_, __$_); + } + var + __S_ = + [0, + function(param){ + function __T_(param){return _ON_;} + function __U_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var __1_ = 0; break; + case 1: + var __1_ = 0; break; + case 2: + var proprietaire = match[1], match$0 = proprietaire[10][4]; + if(0 === match$0[0]) + var + date_accord = match$0[1], + __4_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 12, 31), + __5_ = + caml_call2(Runtime_ocaml_Runtime[120], date_accord, __4_); + else + var __5_ = 0; + var + __6_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), + __7_ = + caml_call2 + (Runtime_ocaml_Runtime[125], proprietaire[10][2], __6_), + __8_ = caml_call2(Runtime_ocaml_Runtime[83], __7_, __5_), + __9_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 12, 31), + ____ = + caml_call2 + (Runtime_ocaml_Runtime[125], proprietaire[10][2], __9_), + __1_ = caml_call2(Runtime_ocaml_Runtime[84], ____, __8_); + break; + case 3: + var __1_ = 0; break; + default: var __1_ = 0; + } + switch(menage[9][0]){ + case 0: + var __2_ = 1; break; + case 1: + var __2_ = 1; break; + case 2: + var __2_ = 1; break; + case 3: + var __2_ = 1; break; + case 4: + var __2_ = 0; break; + case 5: + var __2_ = 0; break; + case 6: + var __2_ = 0; break; + case 7: + var __2_ = 0; break; + default: var __2_ = 1; + } + var __3_ = caml_call2(Runtime_ocaml_Runtime[83], __2_, __1_); + return caml_call2(Runtime_ocaml_Runtime[29], _OO_, __3_); + } + var + __V_ = + [0, + function(param){ + function __W_(param){return _OP_;} + function __X_(param){ + var __Y_ = demandeur[6]; + switch(menage[9][0]){ + case 0: + var __Z_ = 0; break; + case 1: + var __Z_ = 0; break; + case 2: + var __Z_ = 0; break; + case 3: + var __Z_ = 0; break; + case 4: + var __Z_ = 0; break; + case 5: + var __Z_ = 0; break; + case 6: + var __Z_ = 0; break; + case 7: + var __Z_ = 0; break; + default: var __Z_ = 1; + } + var + __0_ = caml_call2(Runtime_ocaml_Runtime[83], __Z_, __Y_); + return caml_call2(Runtime_ocaml_Runtime[29], _OQ_, __0_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _OR_, [0], __X_, __W_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _OS_, __V_, __U_, __T_); + }, + __R_]; + return caml_call4(Runtime_ocaml_Runtime[63], _OT_, __S_, __Q_, __P_); + }], + __N_ = caml_call4(Runtime_ocaml_Runtime[63], _OU_, __M_, __L_, __K_); + } + catch(__O_){ + var __J_ = caml_wrap_exception(__O_); + if(__J_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _OC_], 1); + throw caml_maybe_attach_backtrace(__J_, 0); + } + var + eligibilite_l841_2 = + caml_call3 + (Runtime_ocaml_Runtime[28], + _OV_, + embed_type_eligibilite_allocat, + __N_); + return [0, + eligibilite_l841_2, + nombre_personnes_a_charge_pris, + coefficents_enfants_garde_alte]; + } + function eligibilite_aide_personnalisee(eligibilite_aide_personnalisee){ + var + menage = eligibilite_aide_personnalisee[1], + demandeur = eligibilite_aide_personnalisee[2], + date_courante = eligibilite_aide_personnalisee[3]; + function _W9_(pret){ + try{ + var + _Zi_ = function(param){return 0;}, + _Zj_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _OX_, 1); + }, + _Zk_ = + [0, + function(param){ + function _Zn_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _Zo_(param){return 0;} + var + _Zp_ = + [0, + function(param){ + function _Zq_(param){return 1;} + function _Zr_(param){ + switch(pret[1][0]){ + case 0: + var _ZA_ = 0; break; + case 1: + var _ZA_ = 1; break; + case 2: + var _ZA_ = 0; break; + case 3: + var _ZA_ = 0; break; + default: var _ZA_ = 0; + } + switch(pret[1][0]){ + case 0: + var _ZB_ = 1; break; + case 1: + var _ZB_ = 0; break; + case 2: + var _ZB_ = 0; break; + case 3: + var _ZB_ = 0; break; + default: var _ZB_ = 0; + } + var + _ZC_ = caml_call2(Runtime_ocaml_Runtime[84], _ZB_, _ZA_), + _ZD_ = 0 === pret[3][0] ? 1 : 0, + _ZE_ = caml_call2(Runtime_ocaml_Runtime[83], _ZD_, _ZC_); + return caml_call2(Runtime_ocaml_Runtime[29], _OY_, _ZE_); + } + var + _Zs_ = + [0, + function(param){ + function _Zt_(param){return 1;} + function _Zu_(param){ + switch(pret[1][0]){ + case 0: + var _Zv_ = 0; break; + case 1: + var _Zv_ = 0; break; + case 2: + var _Zv_ = 0; break; + case 3: + var _Zv_ = 1; break; + default: var _Zv_ = 0; + } + switch(pret[1][0]){ + case 0: + var _Zw_ = 0; break; + case 1: + var _Zw_ = 0; break; + case 2: + var _Zw_ = 1; break; + case 3: + var _Zw_ = 0; break; + default: var _Zw_ = 0; + } + var + _Zx_ = caml_call2(Runtime_ocaml_Runtime[84], _Zw_, _Zv_), + _Zy_ = 0 === pret[3][0] ? 0 : 1, + _Zz_ = caml_call2(Runtime_ocaml_Runtime[83], _Zy_, _Zx_); + return caml_call2(Runtime_ocaml_Runtime[29], _OZ_, _Zz_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _O0_, [0], _Zu_, _Zt_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _O1_, _Zs_, _Zr_, _Zq_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _O2_, _Zp_, _Zo_, _Zn_); + }], + _Zl_ = caml_call4(Runtime_ocaml_Runtime[63], _O3_, _Zk_, _Zj_, _Zi_); + return _Zl_; + } + catch(_Zm_){ + var _Zh_ = caml_wrap_exception(_Zm_); + if(_Zh_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _OW_], 1); + throw caml_maybe_attach_backtrace(_Zh_, 0); + } + } + var + caracteristiques_pret_l831_1_1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _O4_, Runtime_ocaml_Runtime[10], _W9_); + function _W__(pret){ + try{ + var + _Zd_ = function(param){return 0;}, + _Ze_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _O6_, 1); + }, + _Zf_ = caml_call4(Runtime_ocaml_Runtime[63], _O7_, [0], _Ze_, _Zd_); + return _Zf_; + } + catch(_Zg_){ + var _Zc_ = caml_wrap_exception(_Zg_); + if(_Zc_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _O5_], 1); + throw caml_maybe_attach_backtrace(_Zc_, 0); + } + } + var + caracteristiques_pret_l831_1_6 = + caml_call3 + (Runtime_ocaml_Runtime[28], _O8_, Runtime_ocaml_Runtime[10], _W__); + try{ + var + _Xa_ = function(param){return menage;}, + _Xb_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _O__, 1); + }, + _Xc_ = caml_call4(Runtime_ocaml_Runtime[63], _O$_, [0], _Xb_, _Xa_), + eligibilite_commune_dot_menage = + caml_call3(Runtime_ocaml_Runtime[28], _Pa_, embed_menage, _Xc_); + } + catch(_Zb_){ + var _W$_ = caml_wrap_exception(_Zb_); + if(_W$_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _O9_], 1); + throw caml_maybe_attach_backtrace(_W$_, 0); + } + try{ + var + _Xe_ = function(param){return demandeur;}, + _Xf_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Pc_, 1); + }, + _Xg_ = caml_call4(Runtime_ocaml_Runtime[63], _Pd_, [0], _Xf_, _Xe_), + eligibilite_commune_dot_demand = + caml_call3(Runtime_ocaml_Runtime[28], _Pe_, embed_demandeur, _Xg_); + } + catch(_Za_){ + var _Xd_ = caml_wrap_exception(_Za_); + if(_Xd_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Pb_], 1); + throw caml_maybe_attach_backtrace(_Xd_, 0); + } + try{ + var + _Xi_ = function(param){return date_courante;}, + _Xj_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Pg_, 1); + }, + _Xk_ = caml_call4(Runtime_ocaml_Runtime[63], _Ph_, [0], _Xj_, _Xi_), + eligibilite_commune_dot_date_c = + caml_call3 + (Runtime_ocaml_Runtime[28], _Pi_, Runtime_ocaml_Runtime[16], _Xk_); + } + catch(_Y$_){ + var _Xh_ = caml_wrap_exception(_Y$_); + if(_Xh_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Pf_], 1); + throw caml_maybe_attach_backtrace(_Xh_, 0); + } + function eligibilite_commune_dot_condit(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function eligibilite_commune_dot_condit$0(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function eligibilite_commune_dot_date_e(param){ + function _Y7_(param){ + return caml_call3(Runtime_ocaml_Runtime[57], 2021, 5, 1); + } + function _Y8_(param){ + switch(menage[2][3][0]){ + case 0: + var _Y__ = 0; break; + case 1: + var _Y__ = 0; break; + case 2: + var _Y__ = 1; break; + case 3: + var _Y__ = 0; break; + default: var _Y__ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _Pj_, _Y__); + } + var _Y9_ = caml_call4(Runtime_ocaml_Runtime[63], _Pk_, [0], _Y8_, _Y7_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _Pl_, + Runtime_ocaml_Runtime[16], + _Y9_); + } + var + _Xl_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _Pm_, eligibilite_aides_personnelle_), + [0, + eligibilite_commune_dot_menage, + eligibilite_commune_dot_demand, + eligibilite_commune_dot_date_c, + eligibilite_commune_dot_condit, + eligibilite_commune_dot_condit$0, + eligibilite_commune_dot_date_e]), + result = caml_call2(Runtime_ocaml_Runtime[27], _Pn_, _Xl_), + eligibilite_commune_dot_eligib = result[2], + eligibilite_commune_dot_nombre = result[3], + eligibilite_commune_dot_coeffi = result[4]; + try{ + var + _Xn_ = function(param){return 0;}, + _Xo_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Pp_, 1); + }, + _Xp_ = + [0, + function(param){ + function _Y1_(param){return 1;} + function _Y2_(param){ + switch(menage[2][9][0]){ + case 0: + var _Y3_ = 0; break; + case 1: + var _Y3_ = 0; break; + default: var _Y3_ = 1; + } + var + _Y4_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _Y5_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Y4_), + _Y6_ = caml_call2(Runtime_ocaml_Runtime[83], _Y5_, _Y3_); + return caml_call2(Runtime_ocaml_Runtime[29], _Pq_, _Y6_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _Pr_, [0], _Y2_, _Y1_); + }], + _Xq_ = caml_call4(Runtime_ocaml_Runtime[63], _Ps_, _Xp_, _Xo_, _Xn_); + } + catch(_Y0_){ + var _Xm_ = caml_wrap_exception(_Y0_); + if(_Xm_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Po_], 1); + throw caml_maybe_attach_backtrace(_Xm_, 0); + } + var + logement_situe_commune_desequi = + caml_call3 + (Runtime_ocaml_Runtime[28], _Pt_, Runtime_ocaml_Runtime[12], _Xq_); + try{ + var + _Xs_ = function(param){return 0;}, + _Xt_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Pv_, 1); + }, + _Xu_ = + function(param){ + function _YB_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _YC_(param){return 0;} + var + _YD_ = + [0, + function(param){ + function _YE_(param){return 1;} + function _YF_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _YW_ = 0; break; + case 1: + var _YW_ = 0; break; + case 2: + var + propriete = match[1], + _YX_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _Px_, embed_pret, propriete[10]), + _YY_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Py_, + caracteristiques_pret_l831_1_1), + _YX_), + _YZ_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Pz_, + Runtime_ocaml_Runtime[12], + _YY_), + _YW_ = caml_call2(Runtime_ocaml_Runtime[27], _PA_, _YZ_); + break; + case 3: + var _YW_ = 0; break; + default: var _YW_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _Pw_, _YW_); + } + var + _YG_ = + [0, + function(param){ + function _YH_(param){return 1;} + function _YI_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var location = match[1], match$0 = location[1]; + switch(match$0[0]){ + case 0: + var convention = match$0[1], _YU_ = convention[1]; break; + case 1: + var convention$0 = match$0[1], _YU_ = convention$0[1]; + break; + default: var _YU_ = 0; + } + var _YV_ = _YU_; + break; + case 1: + var _YV_ = 0; break; + case 2: + var _YV_ = 0; break; + case 3: + var _YV_ = 0; break; + default: var _YV_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _PB_, _YV_); + } + var + _YJ_ = + [0, + function(param){ + function _YK_(param){return 1;} + function _YL_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _YQ_ = 0; break; + case 1: + var _YQ_ = 0; break; + case 2: + var _YQ_ = 0; break; + case 3: + var _YQ_ = 0; break; + default: + var + propriete = match[1], + _YR_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _PD_, embed_pret, propriete[10]), + _YS_ = caml_call1 (caml_call2 (Runtime_ocaml_Runtime[26], - _V8_, - prestations_familiales_dot_dro), - _arb_), - _ard_= + _PE_, + caracteristiques_pret_l831_1_6), + _YR_), + _YT_ = caml_call3 (Runtime_ocaml_Runtime[28], - _V9_, + _PF_, Runtime_ocaml_Runtime[12], - _arc_), - _are_=caml_call2(Runtime_ocaml_Runtime[27],_V__,_ard_); - return caml_call1(Runtime_ocaml_Runtime[67],_are_)} - return 0} - var - _aq5_=caml_call2(Runtime_ocaml_Runtime[90],_aq4_,_aq3_), - _aq6_=caml_call1(Runtime_ocaml_Runtime[68],_aq5_), - _aq7_=caml_call2(Runtime_ocaml_Runtime[86],_aq6_,_aq2_), - _aq8_=caml_call2(Runtime_ocaml_Runtime[83],_aq7_,_aq1_); - return caml_call2(Runtime_ocaml_Runtime[29],_Wa_,_aq8_)} - var - _apO_= - [0, - function(param) - {function _apP_(param){return 1} - function _apQ_(param) - {var - _aqR_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$288), - _aqS_=menage[3]; - function _aqT_(personne_a_charge) - {var - _aqX_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Wb_, - embed_personne_a_charge, - personne_a_charge), - _aqY_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Wc_, - eligibilite_commune_dot_condit$1), - _aqX_), - _aqZ_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Wd_, - Runtime_ocaml_Runtime[12], - _aqY_); - return caml_call2(Runtime_ocaml_Runtime[27],_We_,_aqZ_)} - var - _aqU_=caml_call2(Runtime_ocaml_Runtime[90],_aqT_,_aqS_), - _aqV_=caml_call1(Runtime_ocaml_Runtime[68],_aqU_), - _aqW_=caml_call2(Runtime_ocaml_Runtime[126],_aqV_,_aqR_); - return caml_call2(Runtime_ocaml_Runtime[29],_Wf_,_aqW_)} - var - _apR_= - [0, - function(param) - {function _apS_(param){return 1} - function _apT_(param) - {var - _aqL_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$289), - _aqM_=menage[3]; - function _aqN_(personne_a_charge) - {if(0 === personne_a_charge[0])return 0; - var parent=personne_a_charge[1]; - return caml_call2 - (Runtime_ocaml_Runtime[83],parent[3],parent[5])} - var - _aqO_=caml_call2(Runtime_ocaml_Runtime[90],_aqN_,_aqM_), - _aqP_=caml_call1(Runtime_ocaml_Runtime[68],_aqO_), - _aqQ_=caml_call2(Runtime_ocaml_Runtime[126],_aqP_,_aqL_); - return caml_call2(Runtime_ocaml_Runtime[29],_Wg_,_aqQ_)} - var - _apU_= - [0, - function(param) - {function _apV_(param){return 1} - function _apW_(param) - {switch(menage[5][0]) - {case 0: - var - _aqF_=menage[7], - _aqG_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$414), - _aqH_=caml_call1(Runtime_ocaml_Runtime[68],menage[3]), - _aqI_=caml_call2(Runtime_ocaml_Runtime[86],_aqH_,_aqG_), - _aqJ_=caml_call2(Runtime_ocaml_Runtime[83],_aqI_,_aqF_); - break; - case 1:var _aqJ_=0;break; - case 2:var _aqJ_=0;break; - case 3:var _aqJ_=0;break; - case 4:var _aqJ_=0;break; - default:var _aqJ_=0} - var - _aqK_= - caml_call2 - (Runtime_ocaml_Runtime[83],l_841_1_6_applicable,_aqJ_); - return caml_call2(Runtime_ocaml_Runtime[29],_Wh_,_aqK_)} - function _apX_(param) - {function _aqj_(param){return 1} - function _aqk_(param) - {var - _aqr_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$290), - _aqs_=menage[3]; - function _aqt_(personne_a_charge) - {if(0 === personne_a_charge[0]) - {var - enfant=personne_a_charge[1], - _aqz_=enfant[3], - _aqA_=enfant[4], - _aqB_=0 === enfant[8][0]?_Wi_:_Wn_, - _aqC_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Wj_, - embed_enfant_prestations_famil, - [0, - enfant[1], - enfant[7], - enfant[6], - enfant[5], - _aqB_, - _aqA_, - _aqz_]), - _aqD_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Wk_, - prestations_familiales_dot_dro), - _aqC_), - _aqE_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Wl_, - Runtime_ocaml_Runtime[12], - _aqD_); - return caml_call2(Runtime_ocaml_Runtime[27],_Wm_,_aqE_)} - return 0} - var - _aqu_=caml_call2(Runtime_ocaml_Runtime[90],_aqt_,_aqs_), - _aqv_=caml_call1(Runtime_ocaml_Runtime[68],_aqu_), - _aqw_=caml_call2(Runtime_ocaml_Runtime[126],_aqv_,_aqr_); - switch(menage[9][0]) - {case 0:var _aqx_=1;break; - case 1:var _aqx_=1;break; - case 2:var _aqx_=1;break; - case 3:var _aqx_=1;break; - case 4:var _aqx_=0;break; - case 5:var _aqx_=0;break; - case 6:var _aqx_=0;break; - case 7:var _aqx_=0;break; - default:var _aqx_=1} - var _aqy_=caml_call2(Runtime_ocaml_Runtime[83],_aqx_,_aqw_); - return caml_call2(Runtime_ocaml_Runtime[29],_Wo_,_aqy_)} - var - _aql_= - [0, - function(param) - {function _aqm_(param){return 1} - function _aqn_(param) - {var _aqo_=demandeur[5]; - switch(menage[9][0]) - {case 0:var _aqp_=1;break; - case 1:var _aqp_=1;break; - case 2:var _aqp_=1;break; - case 3:var _aqp_=1;break; - case 4:var _aqp_=0;break; - case 5:var _aqp_=0;break; - case 6:var _aqp_=0;break; - case 7:var _aqp_=0;break; - default:var _aqp_=1} - var _aqq_=caml_call2(Runtime_ocaml_Runtime[83],_aqp_,_aqo_); - return caml_call2(Runtime_ocaml_Runtime[29],_Wp_,_aqq_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Wq_,[0],_aqn_,_aqm_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Wr_,_aql_,_aqk_,_aqj_)} - var - _apY_= - [0, - function(param) - {function _apZ_(param){return 1} - function _ap0_(param) - {var - _ap7_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$291), - _ap8_=menage[3]; - function _ap9_(personne_a_charge) - {if(0 === personne_a_charge[0]) - {var - enfant=personne_a_charge[1], - _aqd_=enfant[3], - _aqe_=enfant[4], - _aqf_=0 === enfant[8][0]?_Ws_:_Wx_, - _aqg_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Wt_, - embed_enfant_prestations_famil, - [0, - enfant[1], - enfant[7], - enfant[6], - enfant[5], - _aqf_, - _aqe_, - _aqd_]), - _aqh_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Wu_, - prestations_familiales_dot_dro), - _aqg_), - _aqi_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Wv_, - Runtime_ocaml_Runtime[12], - _aqh_); - return caml_call2(Runtime_ocaml_Runtime[27],_Ww_,_aqi_)} - return 0} - var - _ap__=caml_call2(Runtime_ocaml_Runtime[90],_ap9_,_ap8_), - _ap$_=caml_call1(Runtime_ocaml_Runtime[68],_ap__), - _aqa_=caml_call2(Runtime_ocaml_Runtime[126],_ap$_,_ap7_); - switch(menage[9][0]) - {case 0:var _aqb_=0;break; - case 1:var _aqb_=0;break; - case 2:var _aqb_=0;break; - case 3:var _aqb_=0;break; - case 4:var _aqb_=1;break; - case 5:var _aqb_=1;break; - case 6:var _aqb_=0;break; - case 7:var _aqb_=0;break; - default:var _aqb_=0} - var _aqc_=caml_call2(Runtime_ocaml_Runtime[83],_aqb_,_aqa_); - return caml_call2(Runtime_ocaml_Runtime[29],_Wy_,_aqc_)} - var - _ap1_= - [0, - function(param) - {function _ap2_(param){return 1} - function _ap3_(param) - {var _ap4_=demandeur[5]; - switch(menage[9][0]) - {case 0:var _ap5_=0;break; - case 1:var _ap5_=0;break; - case 2:var _ap5_=0;break; - case 3:var _ap5_=0;break; - case 4:var _ap5_=1;break; - case 5:var _ap5_=1;break; - case 6:var _ap5_=0;break; - case 7:var _ap5_=0;break; - default:var _ap5_=0} - var _ap6_=caml_call2(Runtime_ocaml_Runtime[83],_ap5_,_ap4_); - return caml_call2(Runtime_ocaml_Runtime[29],_Wz_,_ap6_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_WA_,[0],_ap3_,_ap2_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_WB_,_ap1_,_ap0_,_apZ_)}, - _apX_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_WC_,_apY_,_apW_,_apV_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_WD_,_apU_,_apT_,_apS_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_WE_,_apR_,_apQ_,_apP_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_WF_,_apO_,_apN_,_apM_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_WG_,_apL_,_apK_,_apJ_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_WH_,_apI_,_apH_,_apG_)}], - _ao7_=caml_call4(Runtime_ocaml_Runtime[63],_WI_,_ao6_,_ao5_,_ao4_)} - catch(_apF_) - {_apF_ = caml_wrap_exception(_apF_); - if(_apF_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_VS_]; - throw _apF_} - var - eligibilite_allocation_logemen$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_WJ_,Runtime_ocaml_Runtime[12],_ao7_); - try - {var - _ao8_= - function(param) - {var - _apE_= - caml_call2 - (Runtime_ocaml_Runtime[86],eligibilite_dispositions_commu,_WL_); - return caml_call2 - (Runtime_ocaml_Runtime[84], - _apE_, - beneficie_aide_personnalisee_l) - ?_WM_ - :eligibilite_allocation_logemen$0?_WN_:_WO_}, - _ao9_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_WP_,1)}, - _ao__= - [0, - function(param) - {function _apb_(param){return _WQ_} - function _apc_(param) - {var _apB_=menage[2][3]; - switch(_apB_[0]) - {case 0:var _apC_=0;break; - case 1:var _apC_=0;break; - case 2: - var - proprietaire=_apB_[1], - _apD_=caml_call3(Runtime_ocaml_Runtime[57],2017,12,31), - _apC_= - caml_call2 - (Runtime_ocaml_Runtime[125],proprietaire[10][2],_apD_); - break; - case 3:var _apC_=0;break; - default:var _apC_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_WR_,_apC_)} - function _apd_(param) - {function _apz_(param){return _WS_} - function _apA_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_WT_,demandeur[4])} - return caml_call4 - (Runtime_ocaml_Runtime[63],_WU_,[0],_apA_,_apz_)} - var - _ape_= - [0, - function(param) - {function _apf_(param){return _WV_} - function _apg_(param) - {var _apn_=menage[2][3]; - switch(_apn_[0]) - {case 0:var _apo_=0;break; - case 1:var _apo_=0;break; - case 2: - var proprietaire=_apn_[1],_apr_=proprietaire[10][4]; - if(0 === _apr_[0]) + _YS_), + _YQ_ = caml_call2(Runtime_ocaml_Runtime[27], _PG_, _YT_); + } + return caml_call2(Runtime_ocaml_Runtime[29], _PC_, _YQ_); + } var - date_accord=_apr_[1], - _aps_=caml_call3(Runtime_ocaml_Runtime[57],2018,12,31), - _apt_= - caml_call2(Runtime_ocaml_Runtime[120],date_accord,_aps_); - else - var _apt_=0; - var - _apu_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), - _apv_= - caml_call2 - (Runtime_ocaml_Runtime[125],proprietaire[10][2],_apu_), - _apw_=caml_call2(Runtime_ocaml_Runtime[83],_apv_,_apt_), - _apx_=caml_call3(Runtime_ocaml_Runtime[57],2017,12,31), - _apy_= - caml_call2 - (Runtime_ocaml_Runtime[125],proprietaire[10][2],_apx_), - _apo_=caml_call2(Runtime_ocaml_Runtime[84],_apy_,_apw_); - break; - case 3:var _apo_=0;break; - default:var _apo_=0} - switch(menage[9][0]) - {case 0:var _app_=1;break; - case 1:var _app_=1;break; - case 2:var _app_=1;break; - case 3:var _app_=1;break; - case 4:var _app_=0;break; - case 5:var _app_=0;break; - case 6:var _app_=0;break; - case 7:var _app_=0;break; - default:var _app_=1} - var _apq_=caml_call2(Runtime_ocaml_Runtime[83],_app_,_apo_); - return caml_call2(Runtime_ocaml_Runtime[29],_WW_,_apq_)} - var - _aph_= - [0, - function(param) - {function _api_(param){return _WX_} - function _apj_(param) - {var _apk_=demandeur[6]; - switch(menage[9][0]) - {case 0:var _apl_=0;break; - case 1:var _apl_=0;break; - case 2:var _apl_=0;break; - case 3:var _apl_=0;break; - case 4:var _apl_=0;break; - case 5:var _apl_=0;break; - case 6:var _apl_=0;break; - case 7:var _apl_=0;break; - default:var _apl_=1} - var _apm_=caml_call2(Runtime_ocaml_Runtime[83],_apl_,_apk_); - return caml_call2(Runtime_ocaml_Runtime[29],_WY_,_apm_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_WZ_,[0],_apj_,_api_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_W0_,_aph_,_apg_,_apf_)}, - _apd_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_W1_,_ape_,_apc_,_apb_)}], - _ao$_=caml_call4(Runtime_ocaml_Runtime[63],_W2_,_ao__,_ao9_,_ao8_)} - catch(_apa_) - {_apa_ = caml_wrap_exception(_apa_); - if(_apa_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_WK_]; - throw _apa_} - var - eligibilite_l841_2= - caml_call3 - (Runtime_ocaml_Runtime[28],_W3_,embed_type_eligibilite_allocat,_ao$_); - return [0, - eligibilite_l841_2, - nombre_personnes_a_charge_pris, - coefficents_enfants_garde_alte]} - function eligibilite_aide_personnalisee(eligibilite_aide_personnalisee) - {var - menage=eligibilite_aide_personnalisee[1], - demandeur=eligibilite_aide_personnalisee[2], - date_courante=eligibilite_aide_personnalisee[3]; - function _alN_(pret) - {try - {var - _anW_=function(param){return 0}, - _anX_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_W5_,1)}, - _anY_= - [0, - function(param) - {function _an1_(param){throw Runtime_ocaml_Runtime[2]} - function _an2_(param){return 0} - var - _an3_= - [0, - function(param) - {function _an4_(param){return 1} - function _an5_(param) - {switch(pret[1][0]) - {case 0:var _aoc_=0;break; - case 1:var _aoc_=1;break; - case 2:var _aoc_=0;break; - case 3:var _aoc_=0;break; - default:var _aoc_=0} - switch(pret[1][0]) - {case 0:var _aod_=1;break; - case 1:var _aod_=0;break; - case 2:var _aod_=0;break; - case 3:var _aod_=0;break; - default:var _aod_=0} - var - _aoe_=caml_call2(Runtime_ocaml_Runtime[84],_aod_,_aoc_), - _aof_=0 === pret[3][0]?1:0, - _aog_=caml_call2(Runtime_ocaml_Runtime[83],_aof_,_aoe_); - return caml_call2(Runtime_ocaml_Runtime[29],_W6_,_aog_)} - var - _an6_= - [0, - function(param) - {function _an7_(param){return 1} - function _an8_(param) - {switch(pret[1][0]) - {case 0:var _an9_=0;break; - case 1:var _an9_=0;break; - case 2:var _an9_=0;break; - case 3:var _an9_=1;break; - default:var _an9_=0} - switch(pret[1][0]) - {case 0:var _an__=0;break; - case 1:var _an__=0;break; - case 2:var _an__=1;break; - case 3:var _an__=0;break; - default:var _an__=0} - var - _an$_=caml_call2(Runtime_ocaml_Runtime[84],_an__,_an9_), - _aoa_=0 === pret[3][0]?0:1, - _aob_=caml_call2(Runtime_ocaml_Runtime[83],_aoa_,_an$_); - return caml_call2(Runtime_ocaml_Runtime[29],_W7_,_aob_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_W8_,[0],_an8_,_an7_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_W9_,_an6_,_an5_,_an4_)}]; + _YM_ = + [0, + function(param){ + function _YN_(param){return 1;} + function _YO_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _YP_ = 0; break; + case 1: + var logement_foyer = match[1], _YP_ = logement_foyer[2]; + break; + case 2: + var _YP_ = 0; break; + case 3: + var _YP_ = 0; break; + default: var _YP_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _PH_, _YP_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _PI_, [0], _YO_, _YN_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _PJ_, _YM_, _YL_, _YK_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _PK_, _YJ_, _YI_, _YH_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _PL_, _YG_, _YF_, _YE_); + }]; + return caml_call4(Runtime_ocaml_Runtime[63], _PM_, _YD_, _YC_, _YB_); + }, + _Xv_ = + [0, + function(param){ + function _Yu_(param){return 1;} + function _Yv_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _YA_ = 0; break; + case 1: + var location = match[1], _YA_ = location[3]; break; + case 2: + var _YA_ = 0; break; + case 3: + var _YA_ = 0; break; + default: var _YA_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _PN_, _YA_); + } + var + _Yw_ = + [0, + function(param){ + function _Yx_(param){return 1;} + function _Yy_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _Yz_ = 0; break; + case 1: + var location = match[1], _Yz_ = location[4]; break; + case 2: + var _Yz_ = 0; break; + case 3: + var _Yz_ = 0; break; + default: var _Yz_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _PO_, _Yz_); + } return caml_call4 - (Runtime_ocaml_Runtime[63],_W__,_an3_,_an2_,_an1_)}], - _anZ_=caml_call4(Runtime_ocaml_Runtime[63],_W$_,_anY_,_anX_,_anW_); - return _anZ_} - catch(_an0_) - {_an0_ = caml_wrap_exception(_an0_); - if(_an0_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_W4_]; - throw _an0_}} - var - caracteristiques_pret_l831_1_1= - caml_call3 - (Runtime_ocaml_Runtime[28],_Xa_,Runtime_ocaml_Runtime[10],_alN_); - function _alO_(pret) - {try - {var - _anS_=function(param){return 0}, - _anT_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Xc_,1)}, - _anU_=caml_call4(Runtime_ocaml_Runtime[63],_Xd_,[0],_anT_,_anS_); - return _anU_} - catch(_anV_) - {_anV_ = caml_wrap_exception(_anV_); - if(_anV_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Xb_]; - throw _anV_}} - var - caracteristiques_pret_l831_1_6= - caml_call3 - (Runtime_ocaml_Runtime[28],_Xe_,Runtime_ocaml_Runtime[10],_alO_); - try - {var - _alP_=function(param){return menage}, - _alQ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Xg_,1)}, - _alR_=caml_call4(Runtime_ocaml_Runtime[63],_Xh_,[0],_alQ_,_alP_), - eligibilite_commune_dot_menage= - caml_call3(Runtime_ocaml_Runtime[28],_Xi_,embed_menage,_alR_)} - catch(_anR_) - {_anR_ = caml_wrap_exception(_anR_); - if(_anR_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Xf_]; - throw _anR_} - try - {var - _alS_=function(param){return demandeur}, - _alT_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Xk_,1)}, - _alU_=caml_call4(Runtime_ocaml_Runtime[63],_Xl_,[0],_alT_,_alS_), - eligibilite_commune_dot_demand= - caml_call3(Runtime_ocaml_Runtime[28],_Xm_,embed_demandeur,_alU_)} - catch(_anQ_) - {_anQ_ = caml_wrap_exception(_anQ_); - if(_anQ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Xj_]; - throw _anQ_} - try - {var - _alV_=function(param){return date_courante}, - _alW_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Xo_,1)}, - _alX_=caml_call4(Runtime_ocaml_Runtime[63],_Xp_,[0],_alW_,_alV_), - eligibilite_commune_dot_date_c= - caml_call3 - (Runtime_ocaml_Runtime[28],_Xq_,Runtime_ocaml_Runtime[16],_alX_)} - catch(_anP_) - {_anP_ = caml_wrap_exception(_anP_); - if(_anP_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Xn_]; - throw _anP_} - function eligibilite_commune_dot_condit(param) - {throw Runtime_ocaml_Runtime[2]} - function eligibilite_commune_dot_condit$0(param) - {throw Runtime_ocaml_Runtime[2]} - function eligibilite_commune_dot_date_e(param) - {function _anL_(param) - {return caml_call3(Runtime_ocaml_Runtime[57],2021,5,1)} - function _anM_(param) - {switch(menage[2][3][0]) - {case 0:var _anO_=0;break; - case 1:var _anO_=0;break; - case 2:var _anO_=1;break; - case 3:var _anO_=0;break; - default:var _anO_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_Xr_,_anO_)} - var _anN_=caml_call4(Runtime_ocaml_Runtime[63],_Xs_,[0],_anM_,_anL_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _Xt_, - Runtime_ocaml_Runtime[16], - _anN_)} - var - _alY_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_Xu_,eligibilite_aides_personnelle_), - [0, - eligibilite_commune_dot_menage, - eligibilite_commune_dot_demand, - eligibilite_commune_dot_date_c, - eligibilite_commune_dot_condit, - eligibilite_commune_dot_condit$0, - eligibilite_commune_dot_date_e]), - result=caml_call2(Runtime_ocaml_Runtime[27],_Xv_,_alY_), - eligibilite_commune_dot_eligib=result[2], - eligibilite_commune_dot_nombre=result[3], - eligibilite_commune_dot_coeffi=result[4]; - try - {var - _alZ_=function(param){return 0}, - _al0_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Xx_,1)}, - _al1_= - [0, - function(param) - {function _anF_(param){return 1} - function _anG_(param) - {switch(menage[2][9][0]) - {case 0:var _anH_=0;break; - case 1:var _anH_=0;break; - default:var _anH_=1} - var - _anI_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _anJ_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_anI_), - _anK_=caml_call2(Runtime_ocaml_Runtime[83],_anJ_,_anH_); - return caml_call2(Runtime_ocaml_Runtime[29],_Xy_,_anK_)} - return caml_call4(Runtime_ocaml_Runtime[63],_Xz_,[0],_anG_,_anF_)}], - _al2_=caml_call4(Runtime_ocaml_Runtime[63],_XA_,_al1_,_al0_,_alZ_)} - catch(_anE_) - {_anE_ = caml_wrap_exception(_anE_); - if(_anE_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Xw_]; - throw _anE_} - var - logement_situe_commune_desequi= - caml_call3 - (Runtime_ocaml_Runtime[28],_XB_,Runtime_ocaml_Runtime[12],_al2_); - try - {var - _al3_=function(param){return 0}, - _al4_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_XD_,1)}, - _al5_= - function(param) - {function _ana_(param){throw Runtime_ocaml_Runtime[2]} - function _anb_(param){return 0} - var - _anc_= - [0, - function(param) - {function _and_(param){return 1} - function _ane_(param) - {var _anz_=menage[2][3]; - switch(_anz_[0]) - {case 0:var _anA_=0;break; - case 1:var _anA_=0;break; - case 2: - var - propriete=_anz_[1], - _anB_= - caml_call3 - (Runtime_ocaml_Runtime[28],_XF_,embed_pret,propriete[10]), - _anC_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _XG_, - caracteristiques_pret_l831_1_1), - _anB_), - _anD_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _XH_, - Runtime_ocaml_Runtime[12], - _anC_), - _anA_=caml_call2(Runtime_ocaml_Runtime[27],_XI_,_anD_); - break; - case 3:var _anA_=0;break; - default:var _anA_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_XE_,_anA_)} - var - _anf_= - [0, - function(param) - {function _ang_(param){return 1} - function _anh_(param) - {var _anv_=menage[2][3]; - switch(_anv_[0]) - {case 0: - var location=_anv_[1],_anw_=location[1]; - switch(_anw_[0]) - {case 0:var convention=_anw_[1],_anx_=convention[1];break; - case 1: - var convention$0=_anw_[1],_anx_=convention$0[1];break; - default:var _anx_=0} - var _any_=_anx_; - break; - case 1:var _any_=0;break; - case 2:var _any_=0;break; - case 3:var _any_=0;break; - default:var _any_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_XJ_,_any_)} - var - _ani_= - [0, - function(param) - {function _anj_(param){return 1} - function _ank_(param) - {var _anq_=menage[2][3]; - switch(_anq_[0]) - {case 0:var _anr_=0;break; - case 1:var _anr_=0;break; - case 2:var _anr_=0;break; - case 3:var _anr_=0;break; - default: - var - propriete=_anq_[1], - _ans_= - caml_call3 - (Runtime_ocaml_Runtime[28],_XL_,embed_pret,propriete[10]), - _ant_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _XM_, - caracteristiques_pret_l831_1_6), - _ans_), - _anu_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _XN_, - Runtime_ocaml_Runtime[12], - _ant_), - _anr_=caml_call2(Runtime_ocaml_Runtime[27],_XO_,_anu_)} - return caml_call2(Runtime_ocaml_Runtime[29],_XK_,_anr_)} - var - _anl_= - [0, - function(param) - {function _anm_(param){return 1} - function _ann_(param) - {var _ano_=menage[2][3]; - switch(_ano_[0]) - {case 0:var _anp_=0;break; - case 1: - var logement_foyer=_ano_[1],_anp_=logement_foyer[2];break; - case 2:var _anp_=0;break; - case 3:var _anp_=0;break; - default:var _anp_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_XP_,_anp_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_XQ_,[0],_ann_,_anm_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_XR_,_anl_,_ank_,_anj_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_XS_,_ani_,_anh_,_ang_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_XT_,_anf_,_ane_,_and_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_XU_,_anc_,_anb_,_ana_)}, - _al6_= - [0, - function(param) - {function _am3_(param){return 1} - function _am4_(param) - {var _am__=menage[2][3]; - switch(_am__[0]) - {case 0:var _am$_=0;break; - case 1:var location=_am__[1],_am$_=location[3];break; - case 2:var _am$_=0;break; - case 3:var _am$_=0;break; - default:var _am$_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_XV_,_am$_)} - var - _am5_= - [0, - function(param) - {function _am6_(param){return 1} - function _am7_(param) - {var _am8_=menage[2][3]; - switch(_am8_[0]) - {case 0:var _am9_=0;break; - case 1:var location=_am8_[1],_am9_=location[4];break; - case 2:var _am9_=0;break; - case 3:var _am9_=0;break; - default:var _am9_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_XW_,_am9_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_XX_,[0],_am7_,_am6_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_XY_,_am5_,_am4_,_am3_)}, - _al5_], - _al7_=caml_call4(Runtime_ocaml_Runtime[63],_XZ_,_al6_,_al4_,_al3_)} - catch(_am2_) - {_am2_ = caml_wrap_exception(_am2_); - if(_am2_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_XC_]; - throw _am2_} - var - condition_logement_bailleur= - caml_call3 - (Runtime_ocaml_Runtime[28],_X0_,Runtime_ocaml_Runtime[12],_al7_); - try - {var - _al8_=function(param){return eligibilite_commune_dot_coeffi}, - _al9_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_X2_,1)}, - _al__=caml_call4(Runtime_ocaml_Runtime[63],_X3_,[0],_al9_,_al8_)} - catch(_am1_) - {_am1_ = caml_wrap_exception(_am1_); - if(_am1_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_X1_]; - throw _am1_} - var - _al$_=caml_call1(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15]), - coefficents_enfants_garde_alte= - caml_call3(Runtime_ocaml_Runtime[28],_X4_,_al$_,_al__); - try - {var - _ama_=function(param){return eligibilite_commune_dot_nombre}, - _amb_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_X6_,1)}, - _amc_=caml_call4(Runtime_ocaml_Runtime[63],_X7_,[0],_amb_,_ama_)} - catch(_am0_) - {_am0_ = caml_wrap_exception(_am0_); - if(_am0_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_X5_]; - throw _am0_} - var - nombre_personnes_a_charge_pris= - caml_call3 - (Runtime_ocaml_Runtime[28],_X8_,Runtime_ocaml_Runtime[14],_amc_); - try - {var - _amd_=function(param){return 0}, - _ame_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_X__,1)}, - _amf_= - [0, - function(param) - {function _amy_(param){return 1} - function _amz_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_X$_,1)} - var - _amA_= - [0, - function(param) - {function _amB_(param){return 0} - function _amC_(param) - {var _amW_=menage[2][3]; - switch(_amW_[0]) - {case 0:var _amX_=0;break; - case 1:var _amX_=0;break; - case 2: - var - propriete=_amW_[1], - _amY_=caml_call3(Runtime_ocaml_Runtime[57],2017,12,31), - _amX_= - caml_call2 - (Runtime_ocaml_Runtime[130],propriete[10][2],_amY_); - break; - case 3:var _amX_=0;break; - default: - var - propriete$0=_amW_[1], - _amZ_=caml_call3(Runtime_ocaml_Runtime[57],2017,12,31), - _amX_= - caml_call2 - (Runtime_ocaml_Runtime[130],propriete$0[10][2],_amZ_)} - return caml_call2(Runtime_ocaml_Runtime[29],_Ya_,_amX_)} - var - _amD_= - [0, - function(param) - {function _amE_(param){return 1} - function _amF_(param) - {var _amG_=menage[2][3]; - switch(_amG_[0]) - {case 0:var _amH_=0;break; - case 1:var _amH_=0;break; - case 2: - var - propriete=_amG_[1], - _amI_=0 === propriete[9][0]?0:1, - _amJ_= - caml_call2 - (Runtime_ocaml_Runtime[83], - _amI_, - logement_situe_commune_desequi), - _amK_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _amL_= - caml_call2 - (Runtime_ocaml_Runtime[115],propriete[10][2],_amK_), - _amM_=caml_call2(Runtime_ocaml_Runtime[83],_amL_,_amJ_), - _amN_=caml_call3(Runtime_ocaml_Runtime[57],2018,1,1), - _amO_= - caml_call2 - (Runtime_ocaml_Runtime[130],propriete[10][2],_amN_), - _amH_=caml_call2(Runtime_ocaml_Runtime[83],_amO_,_amM_); - break; - case 3:var _amH_=0;break; - default: - var - propriete$0=_amG_[1], - _amP_=0 === propriete$0[9][0]?0:1, - _amQ_= - caml_call2 - (Runtime_ocaml_Runtime[83], - _amP_, - logement_situe_commune_desequi), - _amR_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _amS_= - caml_call2 - (Runtime_ocaml_Runtime[115],propriete$0[10][2],_amR_), - _amT_=caml_call2(Runtime_ocaml_Runtime[83],_amS_,_amQ_), - _amU_=caml_call3(Runtime_ocaml_Runtime[57],2018,1,1), - _amV_= - caml_call2 - (Runtime_ocaml_Runtime[130],propriete$0[10][2],_amU_), - _amH_=caml_call2(Runtime_ocaml_Runtime[83],_amV_,_amT_)} - return caml_call2(Runtime_ocaml_Runtime[29],_Yb_,_amH_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Yc_,[0],_amF_,_amE_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Yd_,_amD_,_amC_,_amB_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ye_,_amA_,_amz_,_amy_)}], - _amg_=caml_call4(Runtime_ocaml_Runtime[63],_Yf_,_amf_,_ame_,_amd_)} - catch(_amx_) - {_amx_ = caml_wrap_exception(_amx_); - if(_amx_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_X9_]; - throw _amx_} - var - condition_logement_pret= - caml_call3 - (Runtime_ocaml_Runtime[28],_Yg_,Runtime_ocaml_Runtime[12],_amg_); - try - {var - _amh_=function(param){return 0}, - _ami_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Yi_,1)}, - _amj_= - [0, - function(param) - {function _amm_(param){return 1} - function _amn_(param) - {var - _amv_= - caml_call2 - (Runtime_ocaml_Runtime[83], - condition_logement_pret, - eligibilite_commune_dot_eligib), - _amw_= - caml_call2 - (Runtime_ocaml_Runtime[83], - condition_logement_bailleur, - _amv_); - return caml_call2(Runtime_ocaml_Runtime[29],_Yj_,_amw_)} - var - _amo_= - [0, - function(param) - {function _amp_(param){return 0} - function _amq_(param) - {switch(menage[9][0]) - {case 0:var _amr_=0;break; - case 1:var _amr_=0;break; - case 2:var _amr_=0;break; - case 3:var _amr_=0;break; - case 4:var _amr_=0;break; - case 5:var _amr_=0;break; - case 6:var _amr_=0;break; - case 7:var _amr_=1;break; - default:var _amr_=0} - var - _ams_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), - _amt_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ams_), - _amu_=caml_call2(Runtime_ocaml_Runtime[83],_amt_,_amr_); - return caml_call2(Runtime_ocaml_Runtime[29],_Yk_,_amu_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Yl_,[0],_amq_,_amp_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ym_,_amo_,_amn_,_amm_)}], - _amk_=caml_call4(Runtime_ocaml_Runtime[63],_Yn_,_amj_,_ami_,_amh_)} - catch(_aml_) - {_aml_ = caml_wrap_exception(_aml_); - if(_aml_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Yh_]; - throw _aml_} - var - eligibilite= - caml_call3 - (Runtime_ocaml_Runtime[28],_Yo_,Runtime_ocaml_Runtime[12],_amk_); - return [0, - date_courante, - eligibilite, - nombre_personnes_a_charge_pris, - coefficents_enfants_garde_alte]} - function calculette_aides_au_logement(calculette_aides_au_logement_i) - {var - menage=calculette_aides_au_logement_i[1], - demandeur=calculette_aides_au_logement_i[2], - date_courante=calculette_aides_au_logement_i[3], - ressources_menage_prises_en_co=calculette_aides_au_logement_i[4]; - try - {var - _ajI_=function(param){return date_courante}, - _ajJ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Yq_,1)}, - _ajK_=caml_call4(Runtime_ocaml_Runtime[63],_Yr_,[0],_ajJ_,_ajI_), - eligibilite_allocation_logemen$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_Ys_,Runtime_ocaml_Runtime[16],_ajK_)} - catch(_alM_) - {_alM_ = caml_wrap_exception(_alM_); - if(_alM_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Yp_]; - throw _alM_} - try - {var - _ajL_=function(param){return menage}, - _ajM_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Yu_,1)}, - _ajN_=caml_call4(Runtime_ocaml_Runtime[63],_Yv_,[0],_ajM_,_ajL_), - eligibilite_allocation_logemen$1= - caml_call3(Runtime_ocaml_Runtime[28],_Yw_,embed_menage,_ajN_)} - catch(_alL_) - {_alL_ = caml_wrap_exception(_alL_); - if(_alL_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Yt_]; - throw _alL_} - try - {var - _ajO_=function(param){return demandeur}, - _ajP_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Yy_,1)}, - _ajQ_=caml_call4(Runtime_ocaml_Runtime[63],_Yz_,[0],_ajP_,_ajO_), - eligibilite_allocation_logemen$2= - caml_call3(Runtime_ocaml_Runtime[28],_YA_,embed_demandeur,_ajQ_)} - catch(_alK_) - {_alK_ = caml_wrap_exception(_alK_); - if(_alK_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Yx_]; - throw _alK_} - try - {var - _ajR_=function(param){return 0}, - _ajS_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_YC_,1)}, - _ajT_=caml_call4(Runtime_ocaml_Runtime[63],_YD_,[0],_ajS_,_ajR_), - eligibilite_allocation_logemen$3= - caml_call3 - (Runtime_ocaml_Runtime[28],_YE_,Runtime_ocaml_Runtime[12],_ajT_)} - catch(_alJ_) - {_alJ_ = caml_wrap_exception(_alJ_); - if(_alJ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_YB_]; - throw _alJ_} - var - _ajU_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_YF_,eligibilite_allocation_logemen), - [0, - eligibilite_allocation_logemen$0, - eligibilite_allocation_logemen$1, - eligibilite_allocation_logemen$2, - eligibilite_allocation_logemen$3]), - result=caml_call2(Runtime_ocaml_Runtime[27],_YG_,_ajU_), - eligibilite_allocation_logemen$4=result[1], - eligibilite_allocation_logemen$5=result[2]; - try - {var - _ajV_=function(param){return menage}, - _ajW_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_YI_,1)}, - _ajX_=caml_call4(Runtime_ocaml_Runtime[63],_YJ_,[0],_ajW_,_ajV_), - eligibilite_aide_personnalisee$0= - caml_call3(Runtime_ocaml_Runtime[28],_YK_,embed_menage,_ajX_)} - catch(_alI_) - {_alI_ = caml_wrap_exception(_alI_); - if(_alI_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_YH_]; - throw _alI_} - try - {var - _ajY_=function(param){return demandeur}, - _ajZ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_YM_,1)}, - _aj0_=caml_call4(Runtime_ocaml_Runtime[63],_YN_,[0],_ajZ_,_ajY_), - eligibilite_aide_personnalisee$1= - caml_call3(Runtime_ocaml_Runtime[28],_YO_,embed_demandeur,_aj0_)} - catch(_alH_) - {_alH_ = caml_wrap_exception(_alH_); - if(_alH_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_YL_]; - throw _alH_} - try - {var - _aj1_=function(param){return date_courante}, - _aj2_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_YQ_,1)}, - _aj3_=caml_call4(Runtime_ocaml_Runtime[63],_YR_,[0],_aj2_,_aj1_), - eligibilite_aide_personnalisee$2= - caml_call3 - (Runtime_ocaml_Runtime[28],_YS_,Runtime_ocaml_Runtime[16],_aj3_)} - catch(_alG_) - {_alG_ = caml_wrap_exception(_alG_); - if(_alG_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_YP_]; - throw _alG_} - var - _aj4_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_YT_,eligibilite_aide_personnalisee), - [0, - eligibilite_aide_personnalisee$0, - eligibilite_aide_personnalisee$1, - eligibilite_aide_personnalisee$2]), - result$0=caml_call2(Runtime_ocaml_Runtime[27],_YU_,_aj4_), - eligibilite_aide_personnalisee$3=result$0[2], - eligibilite_aide_personnalisee$4=result$0[3], - eligibilite_aide_personnalisee$5=result$0[4]; - try - {var - _aj5_=function(param){return menage[2][3]}, - _aj6_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_YW_,1)}, - _aj7_=caml_call4(Runtime_ocaml_Runtime[63],_YX_,[0],_aj6_,_aj5_), - calcul_allocation_logement_dot= - caml_call3 - (Runtime_ocaml_Runtime[28],_YY_,embed_mode_occupation,_aj7_)} - catch(_alF_) - {_alF_ = caml_wrap_exception(_alF_); - if(_alF_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_YV_]; - throw _alF_} - try - {var - _aj8_=function(param){return ressources_menage_prises_en_co}, - _aj9_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Y0_,1)}, - _aj__=caml_call4(Runtime_ocaml_Runtime[63],_Y1_,[0],_aj9_,_aj8_), - calcul_allocation_logement_dot$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_Y2_,Runtime_ocaml_Runtime[13],_aj__)} - catch(_alE_) - {_alE_ = caml_wrap_exception(_alE_); - if(_alE_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_YZ_]; - throw _alE_} - try - {var - _aj$_=function(param){return menage[5]}, - _aka_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Y4_,1)}, - _akb_=caml_call4(Runtime_ocaml_Runtime[63],_Y5_,[0],_aka_,_aj$_), - calcul_allocation_logement_dot$1= - caml_call3 - (Runtime_ocaml_Runtime[28],_Y6_,embed_situation_familiale,_akb_)} - catch(_alD_) - {_alD_ = caml_wrap_exception(_alD_); - if(_alD_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Y3_]; - throw _alD_} - try - {var - _akc_=function(param){return eligibilite_allocation_logemen$5}, - _akd_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Y8_,1)}, - _ake_=caml_call4(Runtime_ocaml_Runtime[63],_Y9_,[0],_akd_,_akc_), - calcul_allocation_logement_dot$2= - caml_call3 - (Runtime_ocaml_Runtime[28],_Y__,Runtime_ocaml_Runtime[14],_ake_)} - catch(_alC_) - {_alC_ = caml_wrap_exception(_alC_); - if(_alC_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Y7_]; - throw _alC_} - try - {var - _akf_=function(param){return menage[2][9]}, - _akg_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Za_,1)}, - _akh_=caml_call4(Runtime_ocaml_Runtime[63],_Zb_,[0],_akg_,_akf_), - calcul_allocation_logement_dot$3= - caml_call3 - (Runtime_ocaml_Runtime[28],_Zc_,embed_zone_d_habitation,_akh_)} - catch(_alB_) - {_alB_ = caml_wrap_exception(_alB_); - if(_alB_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Y$_]; - throw _alB_} - try - {var - _aki_=function(param){return date_courante}, - _akj_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ze_,1)}, - _akk_=caml_call4(Runtime_ocaml_Runtime[63],_Zf_,[0],_akj_,_aki_), - calcul_allocation_logement_dot$4= - caml_call3 - (Runtime_ocaml_Runtime[28],_Zg_,Runtime_ocaml_Runtime[16],_akk_)} - catch(_alA_) - {_alA_ = caml_wrap_exception(_alA_); - if(_alA_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Zd_]; - throw _alA_} - try - {var - _akl_= - function(param) - {switch(eligibilite_allocation_logemen$4[0]) - {case 0:return _Zi_;case 1:return _Zj_;default:return _Zk_}}, - _akm_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Zl_,1)}, - _akn_=caml_call4(Runtime_ocaml_Runtime[63],_Zm_,[0],_akm_,_akl_), - calcul_allocation_logement_dot$5= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Zn_, - embed_type_aides_personnelle_l, - _akn_)} - catch(_alz_) - {_alz_ = caml_wrap_exception(_alz_); - if(_alz_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Zh_]; - throw _alz_} - try - {var - _ako_=function(param){return menage[9]}, - _akp_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Zp_,1)}, - _akq_=caml_call4(Runtime_ocaml_Runtime[63],_Zq_,[0],_akp_,_ako_), - calcul_allocation_logement_dot$6= - caml_call3 - (Runtime_ocaml_Runtime[28],_Zr_,embed_collectivite$0,_akq_)} - catch(_aly_) - {_aly_ = caml_wrap_exception(_aly_); - if(_aly_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Zo_]; - throw _aly_} - var - _akr_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_Zs_,calcul_allocation_logement), - [0, - calcul_allocation_logement_dot, - calcul_allocation_logement_dot$0, - calcul_allocation_logement_dot$1, - calcul_allocation_logement_dot$2, - calcul_allocation_logement_dot$3, - calcul_allocation_logement_dot$4, - calcul_allocation_logement_dot$5, - calcul_allocation_logement_dot$6]), - result$1=caml_call2(Runtime_ocaml_Runtime[27],_Zt_,_akr_), - calcul_allocation_logement_dot$7=result$1[1], - calcul_allocation_logement_dot$8=result$1[2]; - try - {var - _aks_=function(param){return menage[2][3]}, - _akt_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Zv_,1)}, - _aku_=caml_call4(Runtime_ocaml_Runtime[63],_Zw_,[0],_akt_,_aks_), - calcul_aide_personnalisee_loge= - caml_call3 - (Runtime_ocaml_Runtime[28],_Zx_,embed_mode_occupation,_aku_)} - catch(_alx_) - {_alx_ = caml_wrap_exception(_alx_); - if(_alx_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Zu_]; - throw _alx_} - try - {var - _akv_=function(param){return _Zz_}, - _akw_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ZA_,1)}, - _akx_=caml_call4(Runtime_ocaml_Runtime[63],_ZB_,[0],_akw_,_akv_), - calcul_aide_personnalisee_loge$0= - caml_call3 - (Runtime_ocaml_Runtime[28], - _ZC_, - embed_type_aides_personnelle_l, - _akx_)} - catch(_alw_) - {_alw_ = caml_wrap_exception(_alw_); - if(_alw_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Zy_]; - throw _alw_} - try - {var - _aky_=function(param){return ressources_menage_prises_en_co}, - _akz_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ZE_,1)}, - _akA_=caml_call4(Runtime_ocaml_Runtime[63],_ZF_,[0],_akz_,_aky_), - calcul_aide_personnalisee_loge$1= - caml_call3 - (Runtime_ocaml_Runtime[28],_ZG_,Runtime_ocaml_Runtime[13],_akA_)} - catch(_alv_) - {_alv_ = caml_wrap_exception(_alv_); - if(_alv_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ZD_]; - throw _alv_} - try - {var - _akB_=function(param){return menage[5]}, - _akC_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ZI_,1)}, - _akD_=caml_call4(Runtime_ocaml_Runtime[63],_ZJ_,[0],_akC_,_akB_), - calcul_aide_personnalisee_loge$3= - caml_call3 - (Runtime_ocaml_Runtime[28],_ZK_,embed_situation_familiale,_akD_)} - catch(_alu_) - {_alu_ = caml_wrap_exception(_alu_); - if(_alu_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ZH_]; - throw _alu_} - try - {var - _akE_=function(param){return eligibilite_aide_personnalisee$4}, - _akF_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ZM_,1)}, - _akG_=caml_call4(Runtime_ocaml_Runtime[63],_ZN_,[0],_akF_,_akE_), - calcul_aide_personnalisee_loge$4= - caml_call3 - (Runtime_ocaml_Runtime[28],_ZO_,Runtime_ocaml_Runtime[14],_akG_)} - catch(_alt_) - {_alt_ = caml_wrap_exception(_alt_); - if(_alt_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ZL_]; - throw _alt_} - try - {var - _akH_=function(param){return menage[2][9]}, - _akI_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ZQ_,1)}, - _akJ_=caml_call4(Runtime_ocaml_Runtime[63],_ZR_,[0],_akI_,_akH_), - calcul_aide_personnalisee_loge$5= - caml_call3 - (Runtime_ocaml_Runtime[28],_ZS_,embed_zone_d_habitation,_akJ_)} - catch(_als_) - {_als_ = caml_wrap_exception(_als_); - if(_als_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ZP_]; - throw _als_} - try - {var - _akK_=function(param){return date_courante}, - _akL_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ZU_,1)}, - _akM_=caml_call4(Runtime_ocaml_Runtime[63],_ZV_,[0],_akL_,_akK_), - calcul_aide_personnalisee_loge$6= - caml_call3 - (Runtime_ocaml_Runtime[28],_ZW_,Runtime_ocaml_Runtime[16],_akM_)} - catch(_alr_) - {_alr_ = caml_wrap_exception(_alr_); - if(_alr_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ZT_]; - throw _alr_} - try - {var - _akN_=function(param){return menage[9]}, - _akO_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ZY_,1)}, - _akP_=caml_call4(Runtime_ocaml_Runtime[63],_ZZ_,[0],_akO_,_akN_), - calcul_aide_personnalisee_loge$7= - caml_call3 - (Runtime_ocaml_Runtime[28],_Z0_,embed_collectivite$0,_akP_)} - catch(_alq_) - {_alq_ = caml_wrap_exception(_alq_); - if(_alq_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ZX_]; - throw _alq_} - var - _akQ_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_Z1_,calcul_aide_personnalisee_loge$2), - [0, - calcul_aide_personnalisee_loge, - calcul_aide_personnalisee_loge$0, - calcul_aide_personnalisee_loge$1, - calcul_aide_personnalisee_loge$3, - calcul_aide_personnalisee_loge$4, - calcul_aide_personnalisee_loge$5, - calcul_aide_personnalisee_loge$6, - calcul_aide_personnalisee_loge$7]), - result$2=caml_call2(Runtime_ocaml_Runtime[27],_Z2_,_akQ_), - calcul_aide_personnalisee_loge$8=result$2[1], - calcul_aide_personnalisee_loge$9=result$2[2]; - try - {var - _akR_=function(param){return eligibilite_aide_personnalisee$5}, - _akS_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Z4_,1)}, - _akT_=caml_call4(Runtime_ocaml_Runtime[63],_Z5_,[0],_akS_,_akR_)} - catch(_alp_) - {_alp_ = caml_wrap_exception(_alp_); - if(_alp_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Z3_]; - throw _alp_} - var - _akU_=caml_call1(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15]), - coefficents_enfants_garde_alte= - caml_call3(Runtime_ocaml_Runtime[28],_Z6_,_akU_,_akT_); - try - {var - _akV_= - function(param) - {switch(eligibilite_allocation_logemen$4[0]) - {case 0:var _alo_=0;break; - case 1:var _alo_=1;break; - default:var _alo_=1} - return caml_call2 - (Runtime_ocaml_Runtime[84], - eligibilite_aide_personnalisee$3, - _alo_)}, - _akW_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Z8_,1)}, - _akX_=caml_call4(Runtime_ocaml_Runtime[63],_Z9_,[0],_akW_,_akV_)} - catch(_aln_) - {_aln_ = caml_wrap_exception(_aln_); - if(_aln_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Z7_]; - throw _aln_} - var - eligibilite= - caml_call3 - (Runtime_ocaml_Runtime[28],_Z__,Runtime_ocaml_Runtime[12],_akX_); - function _akY_(aide_finale) - {try - {var - _alb_= - function(param) - {var - _alf_= - caml_call3 - (Runtime_ocaml_Runtime[28], - __a_, - Runtime_ocaml_Runtime[13], - aide_finale), - _alg_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - __b_, - calcul_aide_personnalisee_loge$9), - _alf_), - _alh_= - caml_call3 - (Runtime_ocaml_Runtime[28], - __c_, - Runtime_ocaml_Runtime[13], - _alg_), - aide_finale_apl= - caml_call2(Runtime_ocaml_Runtime[27],__d_,_alh_), - _ali_= - caml_call3 - (Runtime_ocaml_Runtime[28], - __e_, - Runtime_ocaml_Runtime[13], - aide_finale), - _alj_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - __f_, - calcul_allocation_logement_dot$8), - _ali_), - _alk_= - caml_call3 - (Runtime_ocaml_Runtime[28], - __g_, - Runtime_ocaml_Runtime[13], - _alj_), - aide_finale_al=caml_call2(Runtime_ocaml_Runtime[27],__h_,_alk_); - if(caml_call1(Runtime_ocaml_Runtime[67],eligibilite)) - return aide_finale; - switch(eligibilite_allocation_logemen$4[0]) - {case 0:var _all_=1;break; - case 1:var _all_=0;break; - default:var _all_=0} - var _alm_=caml_call1(Runtime_ocaml_Runtime[67],_all_); - return caml_call2 - (Runtime_ocaml_Runtime[83], - eligibilite_aide_personnalisee$3, - _alm_) - ?caml_call2 - (Runtime_ocaml_Runtime[123],aide_finale_apl,aide_finale_al) - ?aide_finale_apl - :aide_finale_al - :eligibilite_aide_personnalisee$3 - ?aide_finale_apl - :aide_finale_al}, - _alc_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],__i_,1)}, - _ald_=caml_call4(Runtime_ocaml_Runtime[63],__j_,[0],_alc_,_alb_); - return _ald_} - catch(_ale_) - {_ale_ = caml_wrap_exception(_ale_); - if(_ale_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Z$_]; - throw _ale_}} - var - traitement_aide_finale= - caml_call3 - (Runtime_ocaml_Runtime[28],__k_,Runtime_ocaml_Runtime[10],_akY_); - try - {var - _akZ_= - function(param) - {if(caml_call1(Runtime_ocaml_Runtime[67],eligibilite)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$415); - switch(eligibilite_allocation_logemen$4[0]) - {case 0:var _ak3_=1;break; - case 1:var _ak3_=0;break; - default:var _ak3_=0} - var _ak4_=caml_call1(Runtime_ocaml_Runtime[67],_ak3_); - if - (caml_call2 - (Runtime_ocaml_Runtime[83], - eligibilite_aide_personnalisee$3, - _ak4_)) - {var - _ak5_= - caml_call3 - (Runtime_ocaml_Runtime[28], - __m_, - Runtime_ocaml_Runtime[13], - calcul_allocation_logement_dot$7), - _ak6_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - __n_, - calcul_allocation_logement_dot$8), - _ak5_), - _ak7_= - caml_call3 - (Runtime_ocaml_Runtime[28], - __o_, - Runtime_ocaml_Runtime[13], - _ak6_), - _ak8_=caml_call2(Runtime_ocaml_Runtime[27],__p_,_ak7_), - _ak9_= - caml_call3 - (Runtime_ocaml_Runtime[28], - __q_, - Runtime_ocaml_Runtime[13], - calcul_aide_personnalisee_loge$8), - _ak__= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - __r_, - calcul_aide_personnalisee_loge$9), - _ak9_), - _ak$_= - caml_call3 - (Runtime_ocaml_Runtime[28], - __s_, - Runtime_ocaml_Runtime[13], - _ak__), - _ala_=caml_call2(Runtime_ocaml_Runtime[27],__t_,_ak$_); - return caml_call2(Runtime_ocaml_Runtime[123],_ala_,_ak8_) - ?calcul_aide_personnalisee_loge$8 - :calcul_allocation_logement_dot$7} - return eligibilite_aide_personnalisee$3 - ?calcul_aide_personnalisee_loge$8 - :calcul_allocation_logement_dot$7}, - _ak0_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],__u_,1)}, - _ak1_=caml_call4(Runtime_ocaml_Runtime[63],__v_,[0],_ak0_,_akZ_)} - catch(_ak2_) - {_ak2_ = caml_wrap_exception(_ak2_); - if(_ak2_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],__l_]; - throw _ak2_} - var - aide_finale_formule= - caml_call3 - (Runtime_ocaml_Runtime[28],__w_,Runtime_ocaml_Runtime[13],_ak1_); - return [0, - eligibilite, - aide_finale_formule, - traitement_aide_finale, - coefficents_enfants_garde_alte]} - function calculette_aides_au_logement_g(calculette_aides_au_logement_g) - {var - menage=calculette_aides_au_logement_g[1], - demandeur=calculette_aides_au_logement_g[2], - date_courante=calculette_aides_au_logement_g[3], - ressources_menage_prises_en_co=calculette_aides_au_logement_g[4]; - try - {var - _aiy_= - function(param) - {var - _ajz_=menage[9], - _ajA_=menage[8], - _ajB_=menage[7], - _ajC_=menage[6], - _ajD_=menage[5], - _ajE_=menage[4], - _ajF_=menage[3]; - function _ajG_(personne_a_charge) - {if(0 === personne_a_charge[0]) - {var enfant=personne_a_charge[1];return 0 === enfant[8][0]?1:0} - return 1} - var _ajH_=caml_call2(Runtime_ocaml_Runtime[90],_ajG_,_ajF_); - return [0, - menage[1], - menage[2], - _ajH_, - _ajE_, - _ajD_, - _ajC_, - _ajB_, - _ajA_, - _ajz_]}, - _aiz_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],__y_,1)}, - _aiA_=caml_call4(Runtime_ocaml_Runtime[63],__z_,[0],_aiz_,_aiy_)} - catch(_ajy_) - {_ajy_ = caml_wrap_exception(_ajy_); - if(_ajy_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],__x_]; - throw _ajy_} - var - menage_sans_enfants_garde_alte= - caml_call3(Runtime_ocaml_Runtime[28],__A_,embed_menage,_aiA_); - try - {var - _aiB_=function(param){return menage}, - _aiC_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],__C_,1)}, - _aiD_=caml_call4(Runtime_ocaml_Runtime[63],__D_,[0],_aiC_,_aiB_), - calculette_dot_menage= - caml_call3(Runtime_ocaml_Runtime[28],__E_,embed_menage,_aiD_)} - catch(_ajx_) - {_ajx_ = caml_wrap_exception(_ajx_); - if(_ajx_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],__B_]; - throw _ajx_} - try - {var - _aiE_=function(param){return demandeur}, - _aiF_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],__G_,1)}, - _aiG_=caml_call4(Runtime_ocaml_Runtime[63],__H_,[0],_aiF_,_aiE_), - calculette_dot_demandeur= - caml_call3(Runtime_ocaml_Runtime[28],__I_,embed_demandeur,_aiG_)} - catch(_ajw_) - {_ajw_ = caml_wrap_exception(_ajw_); - if(_ajw_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],__F_]; - throw _ajw_} - try - {var - _aiH_=function(param){return date_courante}, - _aiI_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],__K_,1)}, - _aiJ_=caml_call4(Runtime_ocaml_Runtime[63],__L_,[0],_aiI_,_aiH_), - calculette_dot_date_courante= - caml_call3 - (Runtime_ocaml_Runtime[28],__M_,Runtime_ocaml_Runtime[16],_aiJ_)} - catch(_ajv_) - {_ajv_ = caml_wrap_exception(_ajv_); - if(_ajv_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],__J_]; - throw _ajv_} - try - {var - _aiK_=function(param){return ressources_menage_prises_en_co}, - _aiL_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],__O_,1)}, - _aiM_=caml_call4(Runtime_ocaml_Runtime[63],__P_,[0],_aiL_,_aiK_), - calculette_dot_ressources_mena= - caml_call3 - (Runtime_ocaml_Runtime[28],__Q_,Runtime_ocaml_Runtime[13],_aiM_)} - catch(_aju_) - {_aju_ = caml_wrap_exception(_aju_); - if(_aju_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],__N_]; - throw _aju_} - var - _aiN_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],__R_,calculette_aides_au_logement), - [0, - calculette_dot_menage, - calculette_dot_demandeur, - calculette_dot_date_courante, - calculette_dot_ressources_mena]), - result=caml_call2(Runtime_ocaml_Runtime[27],__S_,_aiN_), - calculette_dot_eligibilite=result[1], - calculette_dot_aide_finale_for=result[2], - calculette_dot_traitement_aide=result[3], - calculette_dot_coefficents_enf=result[4]; - try - {var - _aiO_=function(param){return menage_sans_enfants_garde_alte}, - _aiP_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],__U_,1)}, - _aiQ_=caml_call4(Runtime_ocaml_Runtime[63],__V_,[0],_aiP_,_aiO_), - calculette_sans_garde_alternee= - caml_call3(Runtime_ocaml_Runtime[28],__W_,embed_menage,_aiQ_)} - catch(_ajt_) - {_ajt_ = caml_wrap_exception(_ajt_); - if(_ajt_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],__T_]; - throw _ajt_} - try - {var - _aiR_=function(param){return demandeur}, - _aiS_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],__Y_,1)}, - _aiT_=caml_call4(Runtime_ocaml_Runtime[63],__Z_,[0],_aiS_,_aiR_), - calculette_sans_garde_alternee$0= - caml_call3(Runtime_ocaml_Runtime[28],__0_,embed_demandeur,_aiT_)} - catch(_ajs_) - {_ajs_ = caml_wrap_exception(_ajs_); - if(_ajs_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],__X_]; - throw _ajs_} - try - {var - _aiU_=function(param){return date_courante}, - _aiV_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],__2_,1)}, - _aiW_=caml_call4(Runtime_ocaml_Runtime[63],__3_,[0],_aiV_,_aiU_), - calculette_sans_garde_alternee$1= - caml_call3 - (Runtime_ocaml_Runtime[28],__4_,Runtime_ocaml_Runtime[16],_aiW_)} - catch(_ajr_) - {_ajr_ = caml_wrap_exception(_ajr_); - if(_ajr_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],__1_]; - throw _ajr_} - try - {var - _aiX_=function(param){return ressources_menage_prises_en_co}, - _aiY_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],__6_,1)}, - _aiZ_=caml_call4(Runtime_ocaml_Runtime[63],__7_,[0],_aiY_,_aiX_), - calculette_sans_garde_alternee$2= - caml_call3 - (Runtime_ocaml_Runtime[28],__8_,Runtime_ocaml_Runtime[13],_aiZ_)} - catch(_ajq_) - {_ajq_ = caml_wrap_exception(_ajq_); - if(_ajq_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],__5_]; - throw _ajq_} - var - _ai0_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],__9_,calculette_aides_au_logement), - [0, - calculette_sans_garde_alternee, - calculette_sans_garde_alternee$0, - calculette_sans_garde_alternee$1, - calculette_sans_garde_alternee$2]), - result$0=caml_call2(Runtime_ocaml_Runtime[27],____,_ai0_), - calculette_sans_garde_alternee$3=result$0[2]; - try - {var - _ai1_=function(param){return calculette_dot_eligibilite}, - _ai2_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$a_,1)}, - _ai3_=caml_call4(Runtime_ocaml_Runtime[63],_$b_,[0],_ai2_,_ai1_)} - catch(_ajp_) - {_ajp_ = caml_wrap_exception(_ajp_); - if(_ajp_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],__$_]; - throw _ajp_} - var - eligibilite= - caml_call3 - (Runtime_ocaml_Runtime[28],_$c_,Runtime_ocaml_Runtime[12],_ai3_); - try - {var - _ai4_=function(param){return calculette_dot_coefficents_enf}, - _ai5_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$e_,1)}, - _ai6_=caml_call4(Runtime_ocaml_Runtime[63],_$f_,[0],_ai5_,_ai4_)} - catch(_ajo_) - {_ajo_ = caml_wrap_exception(_ajo_); - if(_ajo_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_$d_]; - throw _ajo_} - var - _ai7_=caml_call1(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15]), - coefficents_enfants_garde_alte= - caml_call3(Runtime_ocaml_Runtime[28],_$g_,_ai7_,_ai6_); - try - {var - _ai8_= - function(param) - {var - _aja_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$416), - _ajb_= - caml_call1 - (Runtime_ocaml_Runtime[68],coefficents_enfants_garde_alte); - if(caml_call2(Runtime_ocaml_Runtime[86],_ajb_,_aja_)) - var _ajc_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$417); - else - var - _ajh_= - caml_call1 - (Runtime_ocaml_Runtime[68],coefficents_enfants_garde_alte), - _aji_=caml_call1(Runtime_ocaml_Runtime[69],_ajh_), - _ajj_=caml_call1(Runtime_ocaml_Runtime[39],cst_0$418), - _ajk_= - function(sum1,sum2) - {return caml_call2(Runtime_ocaml_Runtime[92],sum1,sum2)}, - _ajl_= - caml_call3 - (Runtime_ocaml_Runtime[88], - _ajk_, - _ajj_, - coefficents_enfants_garde_alte), - _ajm_=caml_call2(Runtime_ocaml_Runtime[107],_ajl_,_aji_), - _ajn_= - caml_call2 - (Runtime_ocaml_Runtime[98], - calculette_dot_aide_finale_for, - calculette_sans_garde_alternee$3), - _ajc_=caml_call2(Runtime_ocaml_Runtime[104],_ajn_,_ajm_); - var - _ajd_= - caml_call2 - (Runtime_ocaml_Runtime[93], - calculette_sans_garde_alternee$3, - _ajc_), - _aje_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _$i_, - Runtime_ocaml_Runtime[13], - _ajd_), - _ajf_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _$j_, - calculette_dot_traitement_aide), - _aje_), - _ajg_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _$k_, - Runtime_ocaml_Runtime[13], - _ajf_); - return caml_call2(Runtime_ocaml_Runtime[27],_$l_,_ajg_)}, - _ai9_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$m_,1)}, - _ai__=caml_call4(Runtime_ocaml_Runtime[63],_$n_,[0],_ai9_,_ai8_)} - catch(_ai$_) - {_ai$_ = caml_wrap_exception(_ai$_); - if(_ai$_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_$h_]; - throw _ai$_} - var - aide_finale= - caml_call3 - (Runtime_ocaml_Runtime[28],_$o_,Runtime_ocaml_Runtime[13],_ai__); - return [0,eligibilite,aide_finale]} + (Runtime_ocaml_Runtime[63], _PP_, [0], _Yy_, _Yx_); + }]; + return caml_call4(Runtime_ocaml_Runtime[63], _PQ_, _Yw_, _Yv_, _Yu_); + }, + _Xu_], + _Xw_ = caml_call4(Runtime_ocaml_Runtime[63], _PR_, _Xv_, _Xt_, _Xs_); + } + catch(_Yt_){ + var _Xr_ = caml_wrap_exception(_Yt_); + if(_Xr_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Pu_], 1); + throw caml_maybe_attach_backtrace(_Xr_, 0); + } var - Law_source_Aides_logement= + condition_logement_bailleur = + caml_call3 + (Runtime_ocaml_Runtime[28], _PS_, Runtime_ocaml_Runtime[12], _Xw_); + try{ + var + _Xy_ = function(param){return eligibilite_commune_dot_coeffi;}, + _Xz_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _PU_, 1); + }, + _XA_ = caml_call4(Runtime_ocaml_Runtime[63], _PV_, [0], _Xz_, _Xy_); + } + catch(_Ys_){ + var _Xx_ = caml_wrap_exception(_Ys_); + if(_Xx_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _PT_], 1); + throw caml_maybe_attach_backtrace(_Xx_, 0); + } + var + _XB_ = caml_call1(Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15]), + coefficents_enfants_garde_alte = + caml_call3(Runtime_ocaml_Runtime[28], _PW_, _XB_, _XA_); + try{ + var + _XD_ = function(param){return eligibilite_commune_dot_nombre;}, + _XE_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _PY_, 1); + }, + _XF_ = caml_call4(Runtime_ocaml_Runtime[63], _PZ_, [0], _XE_, _XD_); + } + catch(_Yr_){ + var _XC_ = caml_wrap_exception(_Yr_); + if(_XC_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _PX_], 1); + throw caml_maybe_attach_backtrace(_XC_, 0); + } + var + nombre_personnes_a_charge_pris = + caml_call3 + (Runtime_ocaml_Runtime[28], _P0_, Runtime_ocaml_Runtime[14], _XF_); + try{ + var + _XH_ = function(param){return 0;}, + _XI_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _P2_, 1); + }, + _XJ_ = + [0, + function(param){ + function _X3_(param){return 1;} + function _X4_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _P3_, 1); + } + var + _X5_ = + [0, + function(param){ + function _X6_(param){return 0;} + function _X7_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _Yo_ = 0; break; + case 1: + var _Yo_ = 0; break; + case 2: + var + propriete = match[1], + _Yp_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 12, 31), + _Yo_ = + caml_call2 + (Runtime_ocaml_Runtime[130], propriete[10][2], _Yp_); + break; + case 3: + var _Yo_ = 0; break; + default: + var + propriete$0 = match[1], + _Yq_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 12, 31), + _Yo_ = + caml_call2 + (Runtime_ocaml_Runtime[130], propriete$0[10][2], _Yq_); + } + return caml_call2(Runtime_ocaml_Runtime[29], _P4_, _Yo_); + } + var + _X8_ = + [0, + function(param){ + function _X9_(param){return 1;} + function _X__(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _X$_ = 0; break; + case 1: + var _X$_ = 0; break; + case 2: + var + propriete = match[1], + _Ya_ = 0 === propriete[9][0] ? 0 : 1, + _Yb_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + _Ya_, + logement_situe_commune_desequi), + _Yc_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _Yd_ = + caml_call2 + (Runtime_ocaml_Runtime[115], propriete[10][2], _Yc_), + _Ye_ = caml_call2(Runtime_ocaml_Runtime[83], _Yd_, _Yb_), + _Yf_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 1, 1), + _Yg_ = + caml_call2 + (Runtime_ocaml_Runtime[130], propriete[10][2], _Yf_), + _X$_ = caml_call2(Runtime_ocaml_Runtime[83], _Yg_, _Ye_); + break; + case 3: + var _X$_ = 0; break; + default: + var + propriete$0 = match[1], + _Yh_ = 0 === propriete$0[9][0] ? 0 : 1, + _Yi_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + _Yh_, + logement_situe_commune_desequi), + _Yj_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _Yk_ = + caml_call2 + (Runtime_ocaml_Runtime[115], propriete$0[10][2], _Yj_), + _Yl_ = caml_call2(Runtime_ocaml_Runtime[83], _Yk_, _Yi_), + _Ym_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 1, 1), + _Yn_ = + caml_call2 + (Runtime_ocaml_Runtime[130], propriete$0[10][2], _Ym_), + _X$_ = caml_call2(Runtime_ocaml_Runtime[83], _Yn_, _Yl_); + } + return caml_call2(Runtime_ocaml_Runtime[29], _P5_, _X$_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _P6_, [0], _X__, _X9_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _P7_, _X8_, _X7_, _X6_); + }]; + return caml_call4(Runtime_ocaml_Runtime[63], _P8_, _X5_, _X4_, _X3_); + }], + _XK_ = caml_call4(Runtime_ocaml_Runtime[63], _P9_, _XJ_, _XI_, _XH_); + } + catch(_X2_){ + var _XG_ = caml_wrap_exception(_X2_); + if(_XG_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _P1_], 1); + throw caml_maybe_attach_backtrace(_XG_, 0); + } + var + condition_logement_pret = + caml_call3 + (Runtime_ocaml_Runtime[28], _P__, Runtime_ocaml_Runtime[12], _XK_); + try{ + var + _XM_ = function(param){return 0;}, + _XN_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Qa_, 1); + }, + _XO_ = + [0, + function(param){ + function _XR_(param){return 1;} + function _XS_(param){ + var + _X0_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + condition_logement_pret, + eligibilite_commune_dot_eligib), + _X1_ = + caml_call2 + (Runtime_ocaml_Runtime[83], condition_logement_bailleur, _X0_); + return caml_call2(Runtime_ocaml_Runtime[29], _Qb_, _X1_); + } + var + _XT_ = + [0, + function(param){ + function _XU_(param){return 0;} + function _XV_(param){ + switch(menage[9][0]){ + case 0: + var _XW_ = 0; break; + case 1: + var _XW_ = 0; break; + case 2: + var _XW_ = 0; break; + case 3: + var _XW_ = 0; break; + case 4: + var _XW_ = 0; break; + case 5: + var _XW_ = 0; break; + case 6: + var _XW_ = 0; break; + case 7: + var _XW_ = 1; break; + default: var _XW_ = 0; + } + var + _XX_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), + _XY_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _XX_), + _XZ_ = caml_call2(Runtime_ocaml_Runtime[83], _XY_, _XW_); + return caml_call2(Runtime_ocaml_Runtime[29], _Qc_, _XZ_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Qd_, [0], _XV_, _XU_); + }]; + return caml_call4(Runtime_ocaml_Runtime[63], _Qe_, _XT_, _XS_, _XR_); + }], + _XP_ = caml_call4(Runtime_ocaml_Runtime[63], _Qf_, _XO_, _XN_, _XM_); + } + catch(_XQ_){ + var _XL_ = caml_wrap_exception(_XQ_); + if(_XL_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _P$_], 1); + throw caml_maybe_attach_backtrace(_XL_, 0); + } + var + eligibilite = + caml_call3 + (Runtime_ocaml_Runtime[28], _Qg_, Runtime_ocaml_Runtime[12], _XP_); + return [0, + date_courante, + eligibilite, + nombre_personnes_a_charge_pris, + coefficents_enfants_garde_alte]; + } + function calculette_aides_au_logement(calculette_aides_au_logement_i){ + var + menage = calculette_aides_au_logement_i[1], + demandeur = calculette_aides_au_logement_i[2], + date_courante = calculette_aides_au_logement_i[3], + ressources_menage_prises_en_co = calculette_aides_au_logement_i[4]; + try{ + var + _UE_ = function(param){return date_courante;}, + _UF_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Qi_, 1); + }, + _UG_ = caml_call4(Runtime_ocaml_Runtime[63], _Qj_, [0], _UF_, _UE_), + eligibilite_allocation_logemen$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Qk_, Runtime_ocaml_Runtime[16], _UG_); + } + catch(_W8_){ + var _UD_ = caml_wrap_exception(_W8_); + if(_UD_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Qh_], 1); + throw caml_maybe_attach_backtrace(_UD_, 0); + } + try{ + var + _UI_ = function(param){return menage;}, + _UJ_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Qm_, 1); + }, + _UK_ = caml_call4(Runtime_ocaml_Runtime[63], _Qn_, [0], _UJ_, _UI_), + eligibilite_allocation_logemen$1 = + caml_call3(Runtime_ocaml_Runtime[28], _Qo_, embed_menage, _UK_); + } + catch(_W7_){ + var _UH_ = caml_wrap_exception(_W7_); + if(_UH_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ql_], 1); + throw caml_maybe_attach_backtrace(_UH_, 0); + } + try{ + var + _UM_ = function(param){return demandeur;}, + _UN_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Qq_, 1); + }, + _UO_ = caml_call4(Runtime_ocaml_Runtime[63], _Qr_, [0], _UN_, _UM_), + eligibilite_allocation_logemen$2 = + caml_call3(Runtime_ocaml_Runtime[28], _Qs_, embed_demandeur, _UO_); + } + catch(_W6_){ + var _UL_ = caml_wrap_exception(_W6_); + if(_UL_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Qp_], 1); + throw caml_maybe_attach_backtrace(_UL_, 0); + } + try{ + var + _UQ_ = function(param){return 0;}, + _UR_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Qu_, 1); + }, + _US_ = caml_call4(Runtime_ocaml_Runtime[63], _Qv_, [0], _UR_, _UQ_), + eligibilite_allocation_logemen$3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Qw_, Runtime_ocaml_Runtime[12], _US_); + } + catch(_W5_){ + var _UP_ = caml_wrap_exception(_W5_); + if(_UP_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Qt_], 1); + throw caml_maybe_attach_backtrace(_UP_, 0); + } + var + _UT_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _Qx_, eligibilite_allocation_logemen), + [0, + eligibilite_allocation_logemen$0, + eligibilite_allocation_logemen$1, + eligibilite_allocation_logemen$2, + eligibilite_allocation_logemen$3]), + result = caml_call2(Runtime_ocaml_Runtime[27], _Qy_, _UT_), + eligibilite_allocation_logemen$4 = result[1], + eligibilite_allocation_logemen$5 = result[2]; + try{ + var + _UV_ = function(param){return menage;}, + _UW_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _QA_, 1); + }, + _UX_ = caml_call4(Runtime_ocaml_Runtime[63], _QB_, [0], _UW_, _UV_), + eligibilite_aide_personnalisee$0 = + caml_call3(Runtime_ocaml_Runtime[28], _QC_, embed_menage, _UX_); + } + catch(_W4_){ + var _UU_ = caml_wrap_exception(_W4_); + if(_UU_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Qz_], 1); + throw caml_maybe_attach_backtrace(_UU_, 0); + } + try{ + var + _UZ_ = function(param){return demandeur;}, + _U0_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _QE_, 1); + }, + _U1_ = caml_call4(Runtime_ocaml_Runtime[63], _QF_, [0], _U0_, _UZ_), + eligibilite_aide_personnalisee$1 = + caml_call3(Runtime_ocaml_Runtime[28], _QG_, embed_demandeur, _U1_); + } + catch(_W3_){ + var _UY_ = caml_wrap_exception(_W3_); + if(_UY_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _QD_], 1); + throw caml_maybe_attach_backtrace(_UY_, 0); + } + try{ + var + _U3_ = function(param){return date_courante;}, + _U4_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _QI_, 1); + }, + _U5_ = caml_call4(Runtime_ocaml_Runtime[63], _QJ_, [0], _U4_, _U3_), + eligibilite_aide_personnalisee$2 = + caml_call3 + (Runtime_ocaml_Runtime[28], _QK_, Runtime_ocaml_Runtime[16], _U5_); + } + catch(_W2_){ + var _U2_ = caml_wrap_exception(_W2_); + if(_U2_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _QH_], 1); + throw caml_maybe_attach_backtrace(_U2_, 0); + } + var + _U6_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _QL_, eligibilite_aide_personnalisee), + [0, + eligibilite_aide_personnalisee$0, + eligibilite_aide_personnalisee$1, + eligibilite_aide_personnalisee$2]), + result$0 = caml_call2(Runtime_ocaml_Runtime[27], _QM_, _U6_), + eligibilite_aide_personnalisee$3 = result$0[2], + eligibilite_aide_personnalisee$4 = result$0[3], + eligibilite_aide_personnalisee$5 = result$0[4]; + try{ + var + _U8_ = function(param){return menage[2][3];}, + _U9_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _QO_, 1); + }, + _U__ = caml_call4(Runtime_ocaml_Runtime[63], _QP_, [0], _U9_, _U8_), + calcul_allocation_logement_dot = + caml_call3 + (Runtime_ocaml_Runtime[28], _QQ_, embed_mode_occupation, _U__); + } + catch(_W1_){ + var _U7_ = caml_wrap_exception(_W1_); + if(_U7_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _QN_], 1); + throw caml_maybe_attach_backtrace(_U7_, 0); + } + try{ + var + _Va_ = function(param){return ressources_menage_prises_en_co;}, + _Vb_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _QS_, 1); + }, + _Vc_ = caml_call4(Runtime_ocaml_Runtime[63], _QT_, [0], _Vb_, _Va_), + calcul_allocation_logement_dot$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _QU_, Runtime_ocaml_Runtime[13], _Vc_); + } + catch(_W0_){ + var _U$_ = caml_wrap_exception(_W0_); + if(_U$_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _QR_], 1); + throw caml_maybe_attach_backtrace(_U$_, 0); + } + try{ + var + _Ve_ = function(param){return menage[5];}, + _Vf_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _QW_, 1); + }, + _Vg_ = caml_call4(Runtime_ocaml_Runtime[63], _QX_, [0], _Vf_, _Ve_), + calcul_allocation_logement_dot$1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _QY_, embed_situation_familiale, _Vg_); + } + catch(_WZ_){ + var _Vd_ = caml_wrap_exception(_WZ_); + if(_Vd_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _QV_], 1); + throw caml_maybe_attach_backtrace(_Vd_, 0); + } + try{ + var + _Vi_ = function(param){return eligibilite_allocation_logemen$5;}, + _Vj_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Q0_, 1); + }, + _Vk_ = caml_call4(Runtime_ocaml_Runtime[63], _Q1_, [0], _Vj_, _Vi_), + calcul_allocation_logement_dot$2 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Q2_, Runtime_ocaml_Runtime[14], _Vk_); + } + catch(_WY_){ + var _Vh_ = caml_wrap_exception(_WY_); + if(_Vh_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _QZ_], 1); + throw caml_maybe_attach_backtrace(_Vh_, 0); + } + try{ + var + _Vm_ = function(param){return menage[2][9];}, + _Vn_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Q4_, 1); + }, + _Vo_ = caml_call4(Runtime_ocaml_Runtime[63], _Q5_, [0], _Vn_, _Vm_), + calcul_allocation_logement_dot$3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Q6_, embed_zone_d_habitation, _Vo_); + } + catch(_WX_){ + var _Vl_ = caml_wrap_exception(_WX_); + if(_Vl_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Q3_], 1); + throw caml_maybe_attach_backtrace(_Vl_, 0); + } + try{ + var + _Vq_ = function(param){return date_courante;}, + _Vr_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Q8_, 1); + }, + _Vs_ = caml_call4(Runtime_ocaml_Runtime[63], _Q9_, [0], _Vr_, _Vq_), + calcul_allocation_logement_dot$4 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Q__, Runtime_ocaml_Runtime[16], _Vs_); + } + catch(_WW_){ + var _Vp_ = caml_wrap_exception(_WW_); + if(_Vp_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Q7_], 1); + throw caml_maybe_attach_backtrace(_Vp_, 0); + } + try{ + var + _Vu_ = + function(param){ + switch(eligibilite_allocation_logemen$4[0]){ + case 0: + return _Ra_; + case 1: + return _Rb_; + default: return _Rc_; + } + }, + _Vv_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Rd_, 1); + }, + _Vw_ = caml_call4(Runtime_ocaml_Runtime[63], _Re_, [0], _Vv_, _Vu_), + calcul_allocation_logement_dot$5 = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Rf_, + embed_type_aides_personnelle_l, + _Vw_); + } + catch(_WV_){ + var _Vt_ = caml_wrap_exception(_WV_); + if(_Vt_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Q$_], 1); + throw caml_maybe_attach_backtrace(_Vt_, 0); + } + try{ + var + _Vy_ = function(param){return menage[9];}, + _Vz_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Rh_, 1); + }, + _VA_ = caml_call4(Runtime_ocaml_Runtime[63], _Ri_, [0], _Vz_, _Vy_), + calcul_allocation_logement_dot$6 = + caml_call3(Runtime_ocaml_Runtime[28], _Rj_, embed_collectivite, _VA_); + } + catch(_WU_){ + var _Vx_ = caml_wrap_exception(_WU_); + if(_Vx_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Rg_], 1); + throw caml_maybe_attach_backtrace(_Vx_, 0); + } + var + _VB_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _Rk_, calcul_allocation_logement), + [0, + calcul_allocation_logement_dot, + calcul_allocation_logement_dot$0, + calcul_allocation_logement_dot$1, + calcul_allocation_logement_dot$2, + calcul_allocation_logement_dot$3, + calcul_allocation_logement_dot$4, + calcul_allocation_logement_dot$5, + calcul_allocation_logement_dot$6]), + result$1 = caml_call2(Runtime_ocaml_Runtime[27], _Rl_, _VB_), + calcul_allocation_logement_dot$7 = result$1[1], + calcul_allocation_logement_dot$8 = result$1[2]; + try{ + var + _VD_ = function(param){return menage[2][3];}, + _VE_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Rn_, 1); + }, + _VF_ = caml_call4(Runtime_ocaml_Runtime[63], _Ro_, [0], _VE_, _VD_), + calcul_aide_personnalisee_loge = + caml_call3 + (Runtime_ocaml_Runtime[28], _Rp_, embed_mode_occupation, _VF_); + } + catch(_WT_){ + var _VC_ = caml_wrap_exception(_WT_); + if(_VC_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Rm_], 1); + throw caml_maybe_attach_backtrace(_VC_, 0); + } + try{ + var + _VH_ = function(param){return _Rr_;}, + _VI_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Rs_, 1); + }, + _VJ_ = caml_call4(Runtime_ocaml_Runtime[63], _Rt_, [0], _VI_, _VH_), + calcul_aide_personnalisee_loge$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ru_, + embed_type_aides_personnelle_l, + _VJ_); + } + catch(_WS_){ + var _VG_ = caml_wrap_exception(_WS_); + if(_VG_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Rq_], 1); + throw caml_maybe_attach_backtrace(_VG_, 0); + } + try{ + var + _VL_ = function(param){return ressources_menage_prises_en_co;}, + _VM_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Rw_, 1); + }, + _VN_ = caml_call4(Runtime_ocaml_Runtime[63], _Rx_, [0], _VM_, _VL_), + calcul_aide_personnalisee_loge$1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Ry_, Runtime_ocaml_Runtime[13], _VN_); + } + catch(_WR_){ + var _VK_ = caml_wrap_exception(_WR_); + if(_VK_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Rv_], 1); + throw caml_maybe_attach_backtrace(_VK_, 0); + } + try{ + var + _VP_ = function(param){return menage[5];}, + _VQ_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _RA_, 1); + }, + _VR_ = caml_call4(Runtime_ocaml_Runtime[63], _RB_, [0], _VQ_, _VP_), + calcul_aide_personnalisee_loge$3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _RC_, embed_situation_familiale, _VR_); + } + catch(_WQ_){ + var _VO_ = caml_wrap_exception(_WQ_); + if(_VO_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Rz_], 1); + throw caml_maybe_attach_backtrace(_VO_, 0); + } + try{ + var + _VT_ = function(param){return eligibilite_aide_personnalisee$4;}, + _VU_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _RE_, 1); + }, + _VV_ = caml_call4(Runtime_ocaml_Runtime[63], _RF_, [0], _VU_, _VT_), + calcul_aide_personnalisee_loge$4 = + caml_call3 + (Runtime_ocaml_Runtime[28], _RG_, Runtime_ocaml_Runtime[14], _VV_); + } + catch(_WP_){ + var _VS_ = caml_wrap_exception(_WP_); + if(_VS_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _RD_], 1); + throw caml_maybe_attach_backtrace(_VS_, 0); + } + try{ + var + _VX_ = function(param){return menage[2][9];}, + _VY_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _RI_, 1); + }, + _VZ_ = caml_call4(Runtime_ocaml_Runtime[63], _RJ_, [0], _VY_, _VX_), + calcul_aide_personnalisee_loge$5 = + caml_call3 + (Runtime_ocaml_Runtime[28], _RK_, embed_zone_d_habitation, _VZ_); + } + catch(_WO_){ + var _VW_ = caml_wrap_exception(_WO_); + if(_VW_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _RH_], 1); + throw caml_maybe_attach_backtrace(_VW_, 0); + } + try{ + var + _V1_ = function(param){return date_courante;}, + _V2_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _RM_, 1); + }, + _V3_ = caml_call4(Runtime_ocaml_Runtime[63], _RN_, [0], _V2_, _V1_), + calcul_aide_personnalisee_loge$6 = + caml_call3 + (Runtime_ocaml_Runtime[28], _RO_, Runtime_ocaml_Runtime[16], _V3_); + } + catch(_WN_){ + var _V0_ = caml_wrap_exception(_WN_); + if(_V0_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _RL_], 1); + throw caml_maybe_attach_backtrace(_V0_, 0); + } + try{ + var + _V5_ = function(param){return menage[9];}, + _V6_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _RQ_, 1); + }, + _V7_ = caml_call4(Runtime_ocaml_Runtime[63], _RR_, [0], _V6_, _V5_), + calcul_aide_personnalisee_loge$7 = + caml_call3(Runtime_ocaml_Runtime[28], _RS_, embed_collectivite, _V7_); + } + catch(_WM_){ + var _V4_ = caml_wrap_exception(_WM_); + if(_V4_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _RP_], 1); + throw caml_maybe_attach_backtrace(_V4_, 0); + } + var + _V8_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _RT_, calcul_aide_personnalisee_loge$2), + [0, + calcul_aide_personnalisee_loge, + calcul_aide_personnalisee_loge$0, + calcul_aide_personnalisee_loge$1, + calcul_aide_personnalisee_loge$3, + calcul_aide_personnalisee_loge$4, + calcul_aide_personnalisee_loge$5, + calcul_aide_personnalisee_loge$6, + calcul_aide_personnalisee_loge$7]), + result$2 = caml_call2(Runtime_ocaml_Runtime[27], _RU_, _V8_), + calcul_aide_personnalisee_loge$8 = result$2[1], + calcul_aide_personnalisee_loge$9 = result$2[2]; + try{ + var + _V__ = function(param){return eligibilite_aide_personnalisee$5;}, + _V$_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _RW_, 1); + }, + _Wa_ = caml_call4(Runtime_ocaml_Runtime[63], _RX_, [0], _V$_, _V__); + } + catch(_WL_){ + var _V9_ = caml_wrap_exception(_WL_); + if(_V9_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _RV_], 1); + throw caml_maybe_attach_backtrace(_V9_, 0); + } + var + _Wb_ = caml_call1(Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15]), + coefficents_enfants_garde_alte = + caml_call3(Runtime_ocaml_Runtime[28], _RY_, _Wb_, _Wa_); + try{ + var + _Wd_ = + function(param){ + switch(eligibilite_allocation_logemen$4[0]){ + case 0: + var _WK_ = 0; break; + case 1: + var _WK_ = 1; break; + default: var _WK_ = 1; + } + return caml_call2 + (Runtime_ocaml_Runtime[84], + eligibilite_aide_personnalisee$3, + _WK_); + }, + _We_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _R0_, 1); + }, + _Wf_ = caml_call4(Runtime_ocaml_Runtime[63], _R1_, [0], _We_, _Wd_); + } + catch(_WJ_){ + var _Wc_ = caml_wrap_exception(_WJ_); + if(_Wc_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _RZ_], 1); + throw caml_maybe_attach_backtrace(_Wc_, 0); + } + var + eligibilite = + caml_call3 + (Runtime_ocaml_Runtime[28], _R2_, Runtime_ocaml_Runtime[12], _Wf_); + function _Wg_(aide_finale){ + try{ + var + _Wx_ = + function(param){ + var + _WB_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _R4_, + Runtime_ocaml_Runtime[13], + aide_finale), + _WC_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _R5_, + calcul_aide_personnalisee_loge$9), + _WB_), + _WD_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _R6_, + Runtime_ocaml_Runtime[13], + _WC_), + aide_finale_apl = caml_call2(Runtime_ocaml_Runtime[27], _R7_, _WD_), + _WE_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _R8_, + Runtime_ocaml_Runtime[13], + aide_finale), + _WF_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _R9_, + calcul_allocation_logement_dot$8), + _WE_), + _WG_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _R__, + Runtime_ocaml_Runtime[13], + _WF_), + aide_finale_al = caml_call2(Runtime_ocaml_Runtime[27], _R$_, _WG_); + if(caml_call1(Runtime_ocaml_Runtime[67], eligibilite)) + return aide_finale; + switch(eligibilite_allocation_logemen$4[0]){ + case 0: + var _WH_ = 1; break; + case 1: + var _WH_ = 0; break; + default: var _WH_ = 0; + } + var _WI_ = caml_call1(Runtime_ocaml_Runtime[67], _WH_); + return caml_call2 + (Runtime_ocaml_Runtime[83], + eligibilite_aide_personnalisee$3, + _WI_) + ? caml_call2 + (Runtime_ocaml_Runtime[123], + aide_finale_apl, + aide_finale_al) + ? aide_finale_apl + : aide_finale_al + : eligibilite_aide_personnalisee$3 + ? aide_finale_apl + : aide_finale_al; + }, + _Wy_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Sa_, 1); + }, + _Wz_ = caml_call4(Runtime_ocaml_Runtime[63], _Sb_, [0], _Wy_, _Wx_); + return _Wz_; + } + catch(_WA_){ + var _Ww_ = caml_wrap_exception(_WA_); + if(_Ww_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _R3_], 1); + throw caml_maybe_attach_backtrace(_Ww_, 0); + } + } + var + traitement_aide_finale = + caml_call3 + (Runtime_ocaml_Runtime[28], _Sc_, Runtime_ocaml_Runtime[10], _Wg_); + try{ + var + _Wi_ = + function(param){ + if(caml_call1(Runtime_ocaml_Runtime[67], eligibilite)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$356); + switch(eligibilite_allocation_logemen$4[0]){ + case 0: + var _Wm_ = 1; break; + case 1: + var _Wm_ = 0; break; + default: var _Wm_ = 0; + } + var _Wn_ = caml_call1(Runtime_ocaml_Runtime[67], _Wm_); + if + (! + caml_call2 + (Runtime_ocaml_Runtime[83], + eligibilite_aide_personnalisee$3, + _Wn_)) + return eligibilite_aide_personnalisee$3 + ? calcul_aide_personnalisee_loge$8 + : calcul_allocation_logement_dot$7; + var + _Wo_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Se_, + Runtime_ocaml_Runtime[13], + calcul_allocation_logement_dot$7), + _Wp_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Sf_, + calcul_allocation_logement_dot$8), + _Wo_), + _Wq_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Sg_, + Runtime_ocaml_Runtime[13], + _Wp_), + _Wr_ = caml_call2(Runtime_ocaml_Runtime[27], _Sh_, _Wq_), + _Ws_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Si_, + Runtime_ocaml_Runtime[13], + calcul_aide_personnalisee_loge$8), + _Wt_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Sj_, + calcul_aide_personnalisee_loge$9), + _Ws_), + _Wu_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Sk_, + Runtime_ocaml_Runtime[13], + _Wt_), + _Wv_ = caml_call2(Runtime_ocaml_Runtime[27], _Sl_, _Wu_); + return caml_call2(Runtime_ocaml_Runtime[123], _Wv_, _Wr_) + ? calcul_aide_personnalisee_loge$8 + : calcul_allocation_logement_dot$7; + }, + _Wj_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Sm_, 1); + }, + _Wk_ = caml_call4(Runtime_ocaml_Runtime[63], _Sn_, [0], _Wj_, _Wi_); + } + catch(_Wl_){ + var _Wh_ = caml_wrap_exception(_Wl_); + if(_Wh_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Sd_], 1); + throw caml_maybe_attach_backtrace(_Wh_, 0); + } + var + aide_finale_formule = + caml_call3 + (Runtime_ocaml_Runtime[28], _So_, Runtime_ocaml_Runtime[13], _Wk_); + return [0, + eligibilite, + aide_finale_formule, + traitement_aide_finale, + coefficents_enfants_garde_alte]; + } + function calculette_aides_au_logement_g(calculette_aides_au_logement_g){ + var + menage = calculette_aides_au_logement_g[1], + demandeur = calculette_aides_au_logement_g[2], + date_courante = calculette_aides_au_logement_g[3], + ressources_menage_prises_en_co = calculette_aides_au_logement_g[4]; + try{ + var + _Ti_ = + function(param){ + var + _Uu_ = menage[9], + _Uv_ = menage[8], + _Uw_ = menage[7], + _Ux_ = menage[6], + _Uy_ = menage[5], + _Uz_ = menage[4], + _UA_ = menage[3]; + function _UB_(personne_a_charge){ + if(0 !== personne_a_charge[0]) return 1; + var enfant = personne_a_charge[1]; + return 0 === enfant[8][0] ? 1 : 0; + } + var _UC_ = caml_call2(Runtime_ocaml_Runtime[90], _UB_, _UA_); + return [0, + menage[1], + menage[2], + _UC_, + _Uz_, + _Uy_, + _Ux_, + _Uw_, + _Uv_, + _Uu_]; + }, + _Tj_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Sq_, 1); + }, + _Tk_ = caml_call4(Runtime_ocaml_Runtime[63], _Sr_, [0], _Tj_, _Ti_); + } + catch(_Ut_){ + var _Th_ = caml_wrap_exception(_Ut_); + if(_Th_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Sp_], 1); + throw caml_maybe_attach_backtrace(_Th_, 0); + } + var + menage_sans_enfants_garde_alte = + caml_call3(Runtime_ocaml_Runtime[28], _Ss_, embed_menage, _Tk_); + try{ + var + _Tm_ = function(param){return menage;}, + _Tn_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Su_, 1); + }, + _To_ = caml_call4(Runtime_ocaml_Runtime[63], _Sv_, [0], _Tn_, _Tm_), + calculette_dot_menage = + caml_call3(Runtime_ocaml_Runtime[28], _Sw_, embed_menage, _To_); + } + catch(_Us_){ + var _Tl_ = caml_wrap_exception(_Us_); + if(_Tl_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _St_], 1); + throw caml_maybe_attach_backtrace(_Tl_, 0); + } + try{ + var + _Tq_ = function(param){return demandeur;}, + _Tr_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Sy_, 1); + }, + _Ts_ = caml_call4(Runtime_ocaml_Runtime[63], _Sz_, [0], _Tr_, _Tq_), + calculette_dot_demandeur = + caml_call3(Runtime_ocaml_Runtime[28], _SA_, embed_demandeur, _Ts_); + } + catch(_Ur_){ + var _Tp_ = caml_wrap_exception(_Ur_); + if(_Tp_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Sx_], 1); + throw caml_maybe_attach_backtrace(_Tp_, 0); + } + try{ + var + _Tu_ = function(param){return date_courante;}, + _Tv_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _SC_, 1); + }, + _Tw_ = caml_call4(Runtime_ocaml_Runtime[63], _SD_, [0], _Tv_, _Tu_), + calculette_dot_date_courante = + caml_call3 + (Runtime_ocaml_Runtime[28], _SE_, Runtime_ocaml_Runtime[16], _Tw_); + } + catch(_Uq_){ + var _Tt_ = caml_wrap_exception(_Uq_); + if(_Tt_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _SB_], 1); + throw caml_maybe_attach_backtrace(_Tt_, 0); + } + try{ + var + _Ty_ = function(param){return ressources_menage_prises_en_co;}, + _Tz_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _SG_, 1); + }, + _TA_ = caml_call4(Runtime_ocaml_Runtime[63], _SH_, [0], _Tz_, _Ty_), + calculette_dot_ressources_mena = + caml_call3 + (Runtime_ocaml_Runtime[28], _SI_, Runtime_ocaml_Runtime[13], _TA_); + } + catch(_Up_){ + var _Tx_ = caml_wrap_exception(_Up_); + if(_Tx_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _SF_], 1); + throw caml_maybe_attach_backtrace(_Tx_, 0); + } + var + _TB_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _SJ_, calculette_aides_au_logement), + [0, + calculette_dot_menage, + calculette_dot_demandeur, + calculette_dot_date_courante, + calculette_dot_ressources_mena]), + result = caml_call2(Runtime_ocaml_Runtime[27], _SK_, _TB_), + calculette_dot_eligibilite = result[1], + calculette_dot_aide_finale_for = result[2], + calculette_dot_traitement_aide = result[3], + calculette_dot_coefficents_enf = result[4]; + try{ + var + _TD_ = function(param){return menage_sans_enfants_garde_alte;}, + _TE_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _SM_, 1); + }, + _TF_ = caml_call4(Runtime_ocaml_Runtime[63], _SN_, [0], _TE_, _TD_), + calculette_sans_garde_alternee = + caml_call3(Runtime_ocaml_Runtime[28], _SO_, embed_menage, _TF_); + } + catch(_Uo_){ + var _TC_ = caml_wrap_exception(_Uo_); + if(_TC_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _SL_], 1); + throw caml_maybe_attach_backtrace(_TC_, 0); + } + try{ + var + _TH_ = function(param){return demandeur;}, + _TI_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _SQ_, 1); + }, + _TJ_ = caml_call4(Runtime_ocaml_Runtime[63], _SR_, [0], _TI_, _TH_), + calculette_sans_garde_alternee$0 = + caml_call3(Runtime_ocaml_Runtime[28], _SS_, embed_demandeur, _TJ_); + } + catch(_Un_){ + var _TG_ = caml_wrap_exception(_Un_); + if(_TG_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _SP_], 1); + throw caml_maybe_attach_backtrace(_TG_, 0); + } + try{ + var + _TL_ = function(param){return date_courante;}, + _TM_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _SU_, 1); + }, + _TN_ = caml_call4(Runtime_ocaml_Runtime[63], _SV_, [0], _TM_, _TL_), + calculette_sans_garde_alternee$1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _SW_, Runtime_ocaml_Runtime[16], _TN_); + } + catch(_Um_){ + var _TK_ = caml_wrap_exception(_Um_); + if(_TK_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _ST_], 1); + throw caml_maybe_attach_backtrace(_TK_, 0); + } + try{ + var + _TP_ = function(param){return ressources_menage_prises_en_co;}, + _TQ_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _SY_, 1); + }, + _TR_ = caml_call4(Runtime_ocaml_Runtime[63], _SZ_, [0], _TQ_, _TP_), + calculette_sans_garde_alternee$2 = + caml_call3 + (Runtime_ocaml_Runtime[28], _S0_, Runtime_ocaml_Runtime[13], _TR_); + } + catch(_Ul_){ + var _TO_ = caml_wrap_exception(_Ul_); + if(_TO_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _SX_], 1); + throw caml_maybe_attach_backtrace(_TO_, 0); + } + var + _TS_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _S1_, calculette_aides_au_logement), + [0, + calculette_sans_garde_alternee, + calculette_sans_garde_alternee$0, + calculette_sans_garde_alternee$1, + calculette_sans_garde_alternee$2]), + result$0 = caml_call2(Runtime_ocaml_Runtime[27], _S2_, _TS_), + calculette_sans_garde_alternee$3 = result$0[2]; + try{ + var + _TU_ = function(param){return calculette_dot_eligibilite;}, + _TV_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _S4_, 1); + }, + _TW_ = caml_call4(Runtime_ocaml_Runtime[63], _S5_, [0], _TV_, _TU_); + } + catch(_Uk_){ + var _TT_ = caml_wrap_exception(_Uk_); + if(_TT_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _S3_], 1); + throw caml_maybe_attach_backtrace(_TT_, 0); + } + var + eligibilite = + caml_call3 + (Runtime_ocaml_Runtime[28], _S6_, Runtime_ocaml_Runtime[12], _TW_); + try{ + var + _TY_ = function(param){return calculette_dot_coefficents_enf;}, + _TZ_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _S8_, 1); + }, + _T0_ = caml_call4(Runtime_ocaml_Runtime[63], _S9_, [0], _TZ_, _TY_); + } + catch(_Uj_){ + var _TX_ = caml_wrap_exception(_Uj_); + if(_TX_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _S7_], 1); + throw caml_maybe_attach_backtrace(_TX_, 0); + } + var + _T1_ = caml_call1(Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15]), + coefficents_enfants_garde_alte = + caml_call3(Runtime_ocaml_Runtime[28], _S__, _T1_, _T0_); + try{ + var + _T3_ = + function(param){ + var + _T7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$357), + _T8_ = + caml_call1 + (Runtime_ocaml_Runtime[68], coefficents_enfants_garde_alte); + if(caml_call2(Runtime_ocaml_Runtime[86], _T8_, _T7_)) + var _T9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$358); + else + var + _Uc_ = + caml_call1 + (Runtime_ocaml_Runtime[68], coefficents_enfants_garde_alte), + _Ud_ = caml_call1(Runtime_ocaml_Runtime[69], _Uc_), + _Ue_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0$359), + _Uf_ = + function(sum1, sum2){ + return caml_call2(Runtime_ocaml_Runtime[92], sum1, sum2); + }, + _Ug_ = + caml_call3 + (Runtime_ocaml_Runtime[88], + _Uf_, + _Ue_, + coefficents_enfants_garde_alte), + _Uh_ = caml_call2(Runtime_ocaml_Runtime[107], _Ug_, _Ud_), + _Ui_ = + caml_call2 + (Runtime_ocaml_Runtime[98], + calculette_dot_aide_finale_for, + calculette_sans_garde_alternee$3), + _T9_ = caml_call2(Runtime_ocaml_Runtime[104], _Ui_, _Uh_); + var + _T__ = + caml_call2 + (Runtime_ocaml_Runtime[93], + calculette_sans_garde_alternee$3, + _T9_), + _T$_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ta_, + Runtime_ocaml_Runtime[13], + _T__), + _Ua_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Tb_, + calculette_dot_traitement_aide), + _T$_), + _Ub_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Tc_, + Runtime_ocaml_Runtime[13], + _Ua_); + return caml_call2(Runtime_ocaml_Runtime[27], _Td_, _Ub_); + }, + _T4_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Te_, 1); + }, + _T5_ = caml_call4(Runtime_ocaml_Runtime[63], _Tf_, [0], _T4_, _T3_); + } + catch(_T6_){ + var _T2_ = caml_wrap_exception(_T6_); + if(_T2_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _S$_], 1); + throw caml_maybe_attach_backtrace(_T2_, 0); + } + var + aide_finale = + caml_call3 + (Runtime_ocaml_Runtime[28], _Tg_, Runtime_ocaml_Runtime[13], _T5_); + return [0, eligibilite, aide_finale]; + } + var + Law_source_Aides_logement = [0, TypePret, embed_type_pret, @@ -130628,22 +128176,22 @@ embed_type_aides_personnelle_l, SituationFamiliale, embed_situation_familiale, - PriseEnCharge$0, - embed_prise_en_charge$0, + PriseEnCharge, + embed_prise_en_charge, TypeLogementFoyer, embed_type_logement_foyer, CategorieEquivalenceLoyerAlloc, embed_categorie_equivalence_lo, SituationFamilialeCalculAPL, embed_situation_familiale_calc, - Collectivite$0, - embed_collectivite$0, + Collectivite, + embed_collectivite, PriseEnChargeEnfant, embed_prise_en_charge_enfant, - SituationObligationScolaire$0, - embed_situation_obligation_sco$0, - ElementPrestationsFamiliales$0, - embed_element_prestations_fami$0, + SituationObligationScolaire, + embed_situation_obligation_sco, + ElementPrestationsFamiliales, + embed_element_prestations_fami, ConventionBailleurSocial, embed_convention_bailleur_soci, ConventionANHA, @@ -130698,14 +128246,14 @@ embed_calculette_aides_au_loge, CalculetteAidesAuLogementGarde, embed_calculette_aides_au_loge$0, - BaseMensuelleAllocationsFamili$1, - embed_base_mensuelle_allocatio$1, - VerificationAgeInferieurOuEgal$1, - embed_verification_age_inferie$1, - VerificationAgeSuperieurA$0, - embed_verification_age_superie$1, - Smic$0, - embed_smic$0, + BaseMensuelleAllocationsFamili, + embed_base_mensuelle_allocatio, + VerificationAgeInferieurOuEgal, + embed_verification_age_inferie, + VerificationAgeSuperieurA, + embed_verification_age_superie, + Smic, + embed_smic, NeufOuAncien, embed_neuf_ou_ancien, TrancheRevenu, @@ -130798,14 +128346,14 @@ embed_calculette_aides_au_loge$1, CalculetteAidesAuLogementGarde$0, embed_calculette_aides_au_loge$2, - BaseMensuelleAllocationsFamili$2, - embed_base_mensuelle_allocatio$2, - VerificationAgeInferieurOuEgal$2, - embed_verification_age_inferie$2, - VerificationAgeSuperieurAIn$0, - embed_verification_age_superie$2, - SmicIn$0, - embed_smic_in$0, + BaseMensuelleAllocationsFamili$0, + embed_base_mensuelle_allocatio$0, + VerificationAgeInferieurOuEgal$0, + embed_verification_age_inferie$0, + VerificationAgeSuperieurAIn, + embed_verification_age_superie$0, + SmicIn, + embed_smic_in, EligibilitePrestationsFamilial$0, embed_eligibilite_prestations_$0, contributions_sociales_aides_p, @@ -130814,10 +128362,10 @@ calcul_nombre_parts_accession_, ouverture_droits_retraite, impaye_depense_logement, - base_mensuelle_allocations_fam$5, - verification_age_inferieur_ou_$5, - verification_age_superieur_a$1, - smic$1, + base_mensuelle_allocations_fam, + verification_age_inferieur_ou_, + verification_age_superieur_a, + smic, arrondi_centaine_superieure, traitement_nul_tout_le_temps, calcul_aide_personnalisee_loge, @@ -130836,3604 +128384,4400 @@ eligibilite_aide_personnalisee, calculette_aides_au_logement, calculette_aides_au_logement_g]; - caml_register_global - (9325,Law_source_Aides_logement,"Law_source__Aides_logement"); - function type_pret_to_jsoo(param) - {switch(param[0]) - {case 0:var arg=param[1];return {"kind":"D331_32","payload":arg}; - case 1: - var arg$0=param[1];return {"kind":"D331_63_64","payload":arg$0}; - case 2:var arg$1=param[1];return {"kind":"D331_59_8","payload":arg$1}; - case 3:var arg$2=param[1];return {"kind":"D331_76_1","payload":arg$2}; - default:var arg$3=param[1];return {"kind":"Autre","payload":arg$3}}} - function type_pret_of_jsoo(type_pret) - {var cons=caml_string_of_jsstring(type_pret.kind); - if(caml_string_notequal(cons,cst_Autre$2)) - {if(caml_string_notequal(cons,cst_D331_32$0)) - {if(caml_string_notequal(cons,cst_D331_59_8$0)) - {if(caml_string_notequal(cons,cst_D331_63_64$0)) - {if(caml_string_notequal(cons,cst_D331_76_1$0)) - {var _aix_=caml_call2(Stdlib_Printf[4],_$p_,cons); - return caml_call1(Stdlib[2],_aix_)} - return _$q_} - return _$r_} - return _$s_} - return _$t_} - return _$u_} - function titulaire_pret_to_jsoo(param) - {if(0 === param[0]) - {var arg=param[1];return {"kind":"Demandeur","payload":arg}} - var arg$0=param[1]; - return {"kind":"VendeurQuandDemandeurAContratLocationAccession", - "payload":arg$0}} - function titulaire_pret_of_jsoo(titulaire_pret) - {var cons=caml_string_of_jsstring(titulaire_pret.kind); - if(caml_string_notequal(cons,cst_Demandeur$0)) - {if(caml_string_notequal(cons,cst_VendeurQuandDemandeurACont$0)) - {var _aiw_=caml_call2(Stdlib_Printf[4],_$v_,cons); - return caml_call1(Stdlib[2],_aiw_)} - return _$w_} - return _$x_} - function type_travaux_logement_d832_15_(param) - {switch(param[0]) - {case 0: - var arg=param[1]; - return {"kind":"TravauxPourAcquisitionD832_15_1","payload":arg}; - case 1: - var arg$0=param[1]; - return {"kind":"TravauxSurLogementDejaAcquisD832_15_2", - "payload":arg$0}; - default: - var arg$1=param[1];return {"kind":"PasDeTravaux","payload":arg$1}}} - function type_travaux_logement_d832_15_$0(type_travaux_logement_d832_15) - {var cons=caml_string_of_jsstring(type_travaux_logement_d832_15.kind); - if(caml_string_notequal(cons,cst_PasDeTravaux$1)) - {if(caml_string_notequal(cons,cst_TravauxPourAcquisitionD832$0)) - {if(caml_string_notequal(cons,cst_TravauxSurLogementDejaAcqu)) - {var _aiv_=caml_call2(Stdlib_Printf[4],_$y_,cons); - return caml_call1(Stdlib[2],_aiv_)} - return _$z_} - return _$A_} - return _$B_} - function type_travaux_logement_r842_5_t(param) - {switch(param[0]) - {case 0: - var arg=param[1]; - return {"kind":"ObjectifDecenceLogement","payload":arg}; - case 1: - var arg$0=param[1]; - return {"kind":"PrevuDansListeR321_15","payload":arg$0}; - case 2: - var arg$1=param[1]; - return {"kind":"AgrandirOuRendreHabitableD331_63","payload":arg$1}; - default: - var arg$2=param[1];return {"kind":"PasDeTravaux","payload":arg$2}}} - function type_travaux_logement_r842_5_o(type_travaux_logement_r842_5) - {var cons=caml_string_of_jsstring(type_travaux_logement_r842_5.kind); - if(caml_string_notequal(cons,cst_AgrandirOuRendreHabitableD$0)) - {if(caml_string_notequal(cons,cst_ObjectifDecenceLogement)) - {if(caml_string_notequal(cons,cst_PasDeTravaux$2)) - {if(caml_string_notequal(cons,cst_PrevuDansListeR321_15)) - {var _aiu_=caml_call2(Stdlib_Printf[4],_$C_,cons); - return caml_call1(Stdlib[2],_aiu_)} - return _$D_} - return _$E_} - return _$F_} - return _$G_} - function ameliore_par_occupant_to_jsoo(param) - {if(0 === param[0]){var arg=param[1];return {"kind":"Oui","payload":arg}} - var arg$0=param[1]; - return {"kind":"Non","payload":arg$0}} - function ameliore_par_occupant_of_jsoo(ameliore_par_occupant) - {var cons=caml_string_of_jsstring(ameliore_par_occupant.kind); - if(caml_string_notequal(cons,cst_Non$2)) - {if(caml_string_notequal(cons,cst_Oui$1)) - {var _ait_=caml_call2(Stdlib_Printf[4],_$H_,cons); - return caml_call1(Stdlib[2],_ait_)} - return _$I_} - return _$J_} - function limite_tranche_to_jsoo(param) - {if(0 === param[0]) - {var arg=param[1],t38=caml_call1(Runtime_ocaml_Runtime[35],arg); - return {"kind":"Revenu","payload":t38}} - var arg$0=param[1]; - return {"kind":"Infini","payload":arg$0}} - function limite_tranche_of_jsoo(limite_tranche) - {var cons=caml_string_of_jsstring(limite_tranche.kind); - if(caml_string_notequal(cons,cst_Infini$1)) - {if(caml_string_notequal(cons,cst_Revenu$1)) - {var _air_=caml_call2(Stdlib_Printf[4],_$K_,cons); - return caml_call1(Stdlib[2],_air_)} - var - _ais_= - caml_call1(Runtime_ocaml_Runtime[42],limite_tranche.payload); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_ais_)]} - return _$L_} - function limite_tranche_decimal_to_jsoo(param) - {if(0 === param[0]) - {var arg=param[1],t44=caml_call1(Runtime_ocaml_Runtime[43],arg); - return {"kind":"Revenu","payload":t44}} - var arg$0=param[1]; - return {"kind":"Infini","payload":arg$0}} - function limite_tranche_decimal_of_jsoo(limite_tranche_decimal) - {var cons=caml_string_of_jsstring(limite_tranche_decimal.kind); - if(caml_string_notequal(cons,cst_Infini$2)) - {if(caml_string_notequal(cons,cst_Revenu$2)) - {var _aiq_=caml_call2(Stdlib_Printf[4],_$M_,cons); - return caml_call1(Stdlib[2],_aiq_)} - return [0, - caml_call1 - (Runtime_ocaml_Runtime[42],limite_tranche_decimal.payload)]} - return _$N_} - function prestation_recue_to_jsoo(param) - {switch(param[0]) - {case 0: - var arg=param[1]; - return {"kind":"AllocationsFamiliales","payload":arg}; - case 1: - var arg$0=param[1]; - return {"kind":"ComplementFamilial","payload":arg$0}; - case 2: - var arg$1=param[1]; - return {"kind":"AllocationJeuneEnfant","payload":arg$1}; - case 3: - var arg$2=param[1]; - return {"kind":"AllocationSoutienFamilial","payload":arg$2}; - case 4: - var arg$3=param[1]; - return {"kind":"AllocationSoutienEnfantHandicape","payload":arg$3}; - default: - var arg$4=param[1]; - return {"kind":"AllocationAdulteHandicape","payload":arg$4}}} - function prestation_recue_of_jsoo(prestation_recue) - {var cons=caml_string_of_jsstring(prestation_recue.kind); - if(caml_string_notequal(cons,cst_AllocationAdulteHandicape)) - {if(caml_string_notequal(cons,cst_AllocationJeuneEnfant$0)) - {if(caml_string_notequal(cons,cst_AllocationSoutienEnfantHan$0)) - {if(caml_string_notequal(cons,cst_AllocationSoutienFamilial$3)) - {if(caml_string_notequal(cons,cst_AllocationsFamiliales$3)) - {if(caml_string_notequal(cons,cst_ComplementFamilial$0)) - {var _aip_=caml_call2(Stdlib_Printf[4],_$O_,cons); - return caml_call1(Stdlib[2],_aip_)} - return _$P_} - return _$Q_} - return _$R_} - return _$S_} - return _$T_} - return _$U_} - function parent_ou_autre_to_jsoo(param) - {if(0 === param[0]) - {var arg=param[1],t63=caml_call1(Runtime_ocaml_Runtime[43],arg); - return {"kind":"DemandeurOuConjointOuParentOuViaPartsSocietes", - "payload":t63}} - var arg$0=param[1]; - return {"kind":"Autre","payload":arg$0}} - function parent_ou_autre_of_jsoo(parent_ou_autre) - {var cons=caml_string_of_jsstring(parent_ou_autre.kind); - if(caml_string_notequal(cons,cst_Autre$3)) - {if(caml_string_notequal(cons,cst_DemandeurOuConjointOuParen$0)) - {var _aio_=caml_call2(Stdlib_Printf[4],_$V_,cons); - return caml_call1(Stdlib[2],_aio_)} - return [0, - caml_call1(Runtime_ocaml_Runtime[42],parent_ou_autre.payload)]} - return _$W_} - function situation_garde_alternee_to_js(param) - {if(0 === param[0]) - {var arg=param[1];return {"kind":"PasDeGardeAlternee","payload":arg}} - var arg$0=param[1],t71=caml_call1(Runtime_ocaml_Runtime[43],arg$0); - return {"kind":"GardeAlterneeCoefficientPriseEnCharge","payload":t71}} - function situation_garde_alternee_of_js(situation_garde_alternee) - {var cons=caml_string_of_jsstring(situation_garde_alternee.kind); - if(caml_string_notequal(cons,cst_GardeAlterneeCoefficientPr)) - {if(caml_string_notequal(cons,cst_PasDeGardeAlternee)) - {var _ain_=caml_call2(Stdlib_Printf[4],_$X_,cons); - return caml_call1(Stdlib[2],_ain_)} - return _$Y_} - return [1, - caml_call1 - (Runtime_ocaml_Runtime[42],situation_garde_alternee.payload)]} - function parente_to_jsoo(param) - {switch(param[0]) - {case 0:var arg=param[1];return {"kind":"Ascendant","payload":arg}; - case 1: - var arg$0=param[1];return {"kind":"Descendant","payload":arg$0}; - default: - var arg$1=param[1]; - return {"kind":"CollateralDeuxiemeTroisiemeDegre","payload":arg$1}}} - function parente_of_jsoo(parente) - {var cons=caml_string_of_jsstring(parente.kind); - if(caml_string_notequal(cons,cst_Ascendant$0)) - {if(caml_string_notequal(cons,cst_CollateralDeuxiemeTroisiem)) - {if(caml_string_notequal(cons,cst_Descendant$0)) - {var _aim_=caml_call2(Stdlib_Printf[4],_$Z_,cons); - return caml_call1(Stdlib[2],_aim_)} - return _$0_} - return _$1_} - return _$2_} - function date_de_naissance_ou_mois_de_g(param) - {switch(param[0]) - {case 0: - var arg=param[1],t82=caml_call1(Runtime_jsoo_Runtime[5],arg); - return {"kind":"DateDeNaissance","payload":t82}; - case 1: - var arg$0=param[1]; - return {"kind":"AvantPremierJourMoisCivilTroisiemeMoisDeGrossesse", - "payload":arg$0}; - default: - var arg$1=param[1]; - return {"kind":"ApresPremierJourMoisCivilTroisiemeMoisDeGrossesse", - "payload":arg$1}}} - function date_de_naissance_ou_mois_de_g$0(date_de_naissance_ou_mois_de_g) - {var cons=caml_string_of_jsstring(date_de_naissance_ou_mois_de_g.kind); - if(caml_string_notequal(cons,cst_ApresPremierJourMoisCivilT)) - {if(caml_string_notequal(cons,cst_AvantPremierJourMoisCivilT$0)) - {if(caml_string_notequal(cons,cst_DateDeNaissance$0)) - {var _ail_=caml_call2(Stdlib_Printf[4],_$3_,cons); - return caml_call1(Stdlib[2],_ail_)} - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - date_de_naissance_ou_mois_de_g.payload)]} - return _$4_} - return _$5_} - function zone_d_habitation_to_jsoo(param) - {switch(param[0]) - {case 0:var arg=param[1];return {"kind":"Zone1","payload":arg}; - case 1:var arg$0=param[1];return {"kind":"Zone2","payload":arg$0}; - default:var arg$1=param[1];return {"kind":"Zone3","payload":arg$1}}} - function zone_d_habitation_of_jsoo(zone_d_habitation) - {var cons=caml_string_of_jsstring(zone_d_habitation.kind); - if(caml_string_notequal(cons,cst_Zone1$0)) - {if(caml_string_notequal(cons,cst_Zone2$0)) - {if(caml_string_notequal(cons,cst_Zone3$0)) - {var _aik_=caml_call2(Stdlib_Printf[4],_$6_,cons); - return caml_call1(Stdlib[2],_aik_)} - return _$7_} - return _$8_} - return _$9_} - function paiement_logement_distinct_pro(param) - {if(0 === param[0]) - {var arg=param[1],t97=caml_call1(Runtime_ocaml_Runtime[35],arg); - return {"kind":"OuiAvecLoyerOuCharges","payload":t97}} - var arg$0=param[1]; - return {"kind":"Non","payload":arg$0}} - function paiement_logement_distinct_pro$0(paiement_logement_distinct_pro) - {var cons=caml_string_of_jsstring(paiement_logement_distinct_pro.kind); - if(caml_string_notequal(cons,cst_Non$3)) - {if(caml_string_notequal(cons,cst_OuiAvecLoyerOuCharges$0)) - {var _aii_=caml_call2(Stdlib_Printf[4],_$__,cons); - return caml_call1(Stdlib[2],_aii_)} - var - _aij_= - caml_call1 - (Runtime_ocaml_Runtime[42],paiement_logement_distinct_pro.payload); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_aij_)]} - return _$$_} - function versement_a_to_jsoo(param) - {switch(param[0]) - {case 0:var arg=param[1];return {"kind":"Bailleur","payload":arg}; - case 1: - var arg$0=param[1];return {"kind":"Beneficiaire","payload":arg$0}; - default: - var arg$1=param[1]; - return {"kind":"EtablissementHabilite","payload":arg$1}}} - function versement_a_of_jsoo(versement_a) - {var cons=caml_string_of_jsstring(versement_a.kind); - if(caml_string_notequal(cons,cst_Bailleur$0)) - {if(caml_string_notequal(cons,cst_Beneficiaire)) - {if(caml_string_notequal(cons,cst_EtablissementHabilite)) - {var _aih_=caml_call2(Stdlib_Printf[4],_aaa_,cons); - return caml_call1(Stdlib[2],_aih_)} - return _aab_} - return _aac_} - return _aad_} - function depense_logement_to_jsoo(param) - {switch(param[0]) - {case 0: - var arg=param[1],t110=caml_call1(Runtime_ocaml_Runtime[35],arg); - return {"kind":"TotalAnnuelEcheances","payload":t110}; - case 1: - var arg$0=param[1],t112=caml_call1(Runtime_ocaml_Runtime[35],arg$0); - return {"kind":"Mensualite","payload":t112}; - default: - var arg$1=param[1],t114=caml_call1(Runtime_ocaml_Runtime[35],arg$1); - return {"kind":"Loyer","payload":t114}}} - function depense_logement_of_jsoo(depense_logement) - {var cons=caml_string_of_jsstring(depense_logement.kind); - if(caml_string_notequal(cons,cst_Loyer$0)) - {if(caml_string_notequal(cons,cst_Mensualite)) - {if(caml_string_notequal(cons,cst_TotalAnnuelEcheances)) - {var _aid_=caml_call2(Stdlib_Printf[4],_aae_,cons); - return caml_call1(Stdlib[2],_aid_)} - var - _aie_= - caml_call1(Runtime_ocaml_Runtime[42],depense_logement.payload); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_aie_)]} - var - _aif_= - caml_call1(Runtime_ocaml_Runtime[42],depense_logement.payload); - return [1,caml_call1(Runtime_ocaml_Runtime[33],_aif_)]} - var - _aig_= - caml_call1(Runtime_ocaml_Runtime[42],depense_logement.payload); - return [2,caml_call1(Runtime_ocaml_Runtime[33],_aig_)]} - function mode_occupation_impaye_to_jsoo(param) - {if(0 === param[0]) - {var arg=param[1];return {"kind":"ImpayeLoyer","payload":arg}} - var arg$0=param[1]; - return {"kind":"ImpayePret","payload":arg$0}} - function mode_occupation_impaye_of_jsoo(mode_occupation_impaye) - {var cons=caml_string_of_jsstring(mode_occupation_impaye.kind); - if(caml_string_notequal(cons,cst_ImpayeLoyer)) - {if(caml_string_notequal(cons,cst_ImpayePret)) - {var _aic_=caml_call2(Stdlib_Printf[4],_aaf_,cons); - return caml_call1(Stdlib[2],_aic_)} - return _aag_} - return _aah_} - function type_eligibilite_allocation_lo(param) - {switch(param[0]) - {case 0:var arg=param[1];return {"kind":"PasEligible","payload":arg}; - case 1: - var arg$0=param[1]; - return {"kind":"AllocationLogementFamiliale","payload":arg$0}; - default: - var arg$1=param[1]; - return {"kind":"AllocationLogementSociale","payload":arg$1}}} - function type_eligibilite_allocation_lo$0(type_eligibilite_allocation_lo) - {var cons=caml_string_of_jsstring(type_eligibilite_allocation_lo.kind); - if(caml_string_notequal(cons,cst_AllocationLogementFamilial$1)) - {if(caml_string_notequal(cons,cst_AllocationLogementSociale$1)) - {if(caml_string_notequal(cons,cst_PasEligible)) - {var _aib_=caml_call2(Stdlib_Printf[4],_aai_,cons); - return caml_call1(Stdlib[2],_aib_)} - return _aaj_} - return _aak_} - return _aal_} - function accord_financement_representan(param) - {if(0 === param[0]) - {var arg=param[1],t132=caml_call1(Runtime_jsoo_Runtime[5],arg); - return {"kind":"Accord","payload":t132}} - var arg$0=param[1]; - return {"kind":"PasdAccord","payload":arg$0}} - function accord_financement_representan$0(accord_financement_representan) - {var cons=caml_string_of_jsstring(accord_financement_representan.kind); - if(caml_string_notequal(cons,cst_Accord$0)) - {if(caml_string_notequal(cons,cst_PasdAccord$0)) - {var _aia_=caml_call2(Stdlib_Printf[4],_aam_,cons); - return caml_call1(Stdlib[2],_aia_)} - return _aan_} - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - accord_financement_representan.payload)]} - function type_aides_personnelle_logemen(param) - {switch(param[0]) - {case 0: - var arg=param[1]; - return {"kind":"AidePersonnaliseeLogement","payload":arg}; - case 1: - var arg$0=param[1]; - return {"kind":"AllocationLogementFamiliale","payload":arg$0}; - default: - var arg$1=param[1]; - return {"kind":"AllocationLogementSociale","payload":arg$1}}} - function type_aides_personnelle_logemen$0(type_aides_personnelle_logemen) - {var cons=caml_string_of_jsstring(type_aides_personnelle_logemen.kind); - if(caml_string_notequal(cons,cst_AidePersonnaliseeLogement)) - {if(caml_string_notequal(cons,cst_AllocationLogementFamilial$2)) - {if(caml_string_notequal(cons,cst_AllocationLogementSociale$2)) - {var _ah$_=caml_call2(Stdlib_Printf[4],_aao_,cons); - return caml_call1(Stdlib[2],_ah$_)} - return _aap_} - return _aaq_} - return _aar_} - function situation_familiale_to_jsoo(param) - {switch(param[0]) - {case 0:var arg=param[1];return {"kind":"Celibataire","payload":arg}; - case 1: - var arg$0=param[1],t147=caml_call1(Runtime_jsoo_Runtime[5],arg$0); - return {"kind":"Maries","payload":t147}; - case 2:var arg$1=param[1];return {"kind":"Pacses","payload":arg$1}; - case 3:var arg$2=param[1];return {"kind":"Concubins","payload":arg$2}; - case 4: - var arg$3=param[1]; - return {"kind":"CelibataireSepareDeFait","payload":arg$3}; - default: - var arg$4=param[1]; - return {"kind":"ConcubinageDontSepareDeFait","payload":arg$4}}} - function situation_familiale_of_jsoo(situation_familiale) - {var cons=caml_string_of_jsstring(situation_familiale.kind); - if(caml_string_notequal(cons,cst_Celibataire)) - {if(caml_string_notequal(cons,cst_CelibataireSepareDeFait)) - {if(caml_string_notequal(cons,cst_ConcubinageDontSepareDeFai)) - {if(caml_string_notequal(cons,cst_Concubins$0)) - {if(caml_string_notequal(cons,cst_Maries)) - {if(caml_string_notequal(cons,cst_Pacses)) - {var _ah__=caml_call2(Stdlib_Printf[4],_aas_,cons); - return caml_call1(Stdlib[2],_ah__)} - return _aat_} - return [1, - caml_call1 - (Runtime_jsoo_Runtime[4],situation_familiale.payload)]} - return _aau_} - return _aav_} - return _aaw_} - return _aax_} - function prise_en_charge_to_jsoo$0(param) - {switch(param[0]) - {case 0: - var arg=param[1]; - return {"kind":"EffectiveEtPermanente","payload":arg}; - case 1: - var arg$0=param[1]; - return {"kind":"ResidenceAlterneeAllocataireUnique","payload":arg$0}; - default: - var arg$1=param[1]; - return {"kind":"ResidenceAlterneeAllocationsPartagee", - "payload":arg$1}}} - function prise_en_charge_of_jsoo$0(prise_en_charge) - {var cons=caml_string_of_jsstring(prise_en_charge.kind); - if(caml_string_notequal(cons,cst_EffectiveEtPermanente$3)) - {if(caml_string_notequal(cons,cst_ResidenceAlterneeAllocatai)) - {if(caml_string_notequal(cons,cst_ResidenceAlterneeAllocatio)) - {var _ah9_=caml_call2(Stdlib_Printf[4],_aay_,cons); - return caml_call1(Stdlib[2],_ah9_)} - return _aaz_} - return _aaA_} - return _aaB_} - function type_logement_foyer_to_jsoo(param) - {switch(param[0]) - {case 0: - var arg=param[1]; - return {"kind":"LogementPersonnesAgeesOuHandicapees","payload":arg}; - case 1: - var arg$0=param[1]; - return {"kind":"ResidenceSociale","payload":arg$0}; - case 2: - var arg$1=param[1]; - return {"kind": - "FoyerJeunesTrvailleursOuMigrantsConventionneL353_2Avant1995", - "payload":arg$1}; - default:var arg$2=param[1];return {"kind":"Autre","payload":arg$2}}} - function type_logement_foyer_of_jsoo(type_logement_foyer) - {var cons=caml_string_of_jsstring(type_logement_foyer.kind); - if(caml_string_notequal(cons,cst_Autre$4)) - {if(caml_string_notequal(cons,cst_FoyerJeunesTrvailleursOuMi$0)) - {if(caml_string_notequal(cons,cst_LogementPersonnesAgeesOuHa)) - {if(caml_string_notequal(cons,cst_ResidenceSociale)) - {var _ah8_=caml_call2(Stdlib_Printf[4],_aaC_,cons); - return caml_call1(Stdlib[2],_ah8_)} - return _aaD_} - return _aaE_} - return _aaF_} - return _aaG_} - function categorie_equivalence_loyer_al(param) - {switch(param[0]) - {case 0: - var arg=param[1]; - return {"kind":"EtudiantLogeEnChambreCROUS","payload":arg}; - case 1: - var arg$0=param[1]; - return {"kind":"EtudiantLogeEnChambreCROUSRehabilitee", - "payload":arg$0}; - case 2: - var arg$1=param[1]; - return {"kind":"PersonnesAgeesSelon3DeD842_16","payload":arg$1}; - default: - var arg$2=param[1];return {"kind":"AutresPersonnes","payload":arg$2}}} - function categorie_equivalence_loyer_al$0(categorie_equivalence_loyer_al) - {var cons=caml_string_of_jsstring(categorie_equivalence_loyer_al.kind); - if(caml_string_notequal(cons,cst_AutresPersonnes$0)) - {if(caml_string_notequal(cons,cst_EtudiantLogeEnChambreCROUS)) - {if(caml_string_notequal(cons,cst_EtudiantLogeEnChambreCROUS$0)) - {if(caml_string_notequal(cons,cst_PersonnesAgeesSelon3DeD842)) - {var _ah7_=caml_call2(Stdlib_Printf[4],_aaH_,cons); - return caml_call1(Stdlib[2],_ah7_)} - return _aaI_} - return _aaJ_} - return _aaK_} - return _aaL_} - function situation_familiale_calcul_a_p(param) - {if(0 === param[0]) - {var arg=param[1];return {"kind":"PersonneSeule","payload":arg}} - var arg$0=param[1]; - return {"kind":"Couple","payload":arg$0}} - function situation_familiale_calcul_a_p$0(situation_familiale_calcul_a_p) - {var cons=caml_string_of_jsstring(situation_familiale_calcul_a_p.kind); - if(caml_string_notequal(cons,cst_Couple$0)) - {if(caml_string_notequal(cons,cst_PersonneSeule$0)) - {var _ah6_=caml_call2(Stdlib_Printf[4],_aaM_,cons); - return caml_call1(Stdlib[2],_ah6_)} - return _aaN_} - return _aaO_} - function collectivite_to_jsoo$0(param) - {switch(param[0]) - {case 0:var arg=param[1];return {"kind":"Guadeloupe","payload":arg}; - case 1:var arg$0=param[1];return {"kind":"Guyane","payload":arg$0}; - case 2: - var arg$1=param[1];return {"kind":"Martinique","payload":arg$1}; - case 3:var arg$2=param[1];return {"kind":"LaReunion","payload":arg$2}; - case 4: - var arg$3=param[1];return {"kind":"SaintBarthelemy","payload":arg$3}; - case 5: - var arg$4=param[1];return {"kind":"SaintMartin","payload":arg$4}; - case 6:var arg$5=param[1];return {"kind":"Metropole","payload":arg$5}; - case 7: - var arg$6=param[1]; - return {"kind":"SaintPierreEtMiquelon","payload":arg$6}; - default:var arg$7=param[1];return {"kind":"Mayotte","payload":arg$7}}} - function collectivite_of_jsoo$0(collectivite) - {var cons=caml_string_of_jsstring(collectivite.kind); - if(caml_string_notequal(cons,cst_Guadeloupe$2)) - {if(caml_string_notequal(cons,cst_Guyane$2)) - {if(caml_string_notequal(cons,cst_LaReunion$0)) - {if(caml_string_notequal(cons,cst_Martinique$2)) - {if(caml_string_notequal(cons,cst_Mayotte$2)) - {if(caml_string_notequal(cons,cst_Metropole$0)) - {if(caml_string_notequal(cons,cst_SaintBarthelemy$0)) - {if(caml_string_notequal(cons,cst_SaintMartin$2)) - {if(caml_string_notequal(cons,cst_SaintPierreEtMiquelon$2)) - {var _ah5_=caml_call2(Stdlib_Printf[4],_aaP_,cons); - return caml_call1(Stdlib[2],_ah5_)} - return _aaQ_} - return _aaR_} - return _aaS_} - return _aaT_} - return _aaU_} - return _aaV_} - return _aaW_} - return _aaX_} - return _aaY_} - function prise_en_charge_enfant_to_jsoo(param) - {switch(param[0]) - {case 0: - var arg=param[1]; - return {"kind":"GardeAlterneePartageAllocations","payload":arg}; - case 1: - var arg$0=param[1]; - return {"kind":"GardeAlterneeAllocataireUnique","payload":arg$0}; - case 2: - var arg$1=param[1]; - return {"kind":"EffectiveEtPermanente","payload":arg$1}; - case 3: - var arg$2=param[1]; - return {"kind":"ServicesSociauxAllocationVerseeALaFamille", - "payload":arg$2}; - default: - var arg$3=param[1]; - return {"kind":"ServicesSociauxAllocationVerseeAuxServicesSociaux", - "payload":arg$3}}} - function prise_en_charge_enfant_of_jsoo(prise_en_charge_enfant) - {var cons=caml_string_of_jsstring(prise_en_charge_enfant.kind); - if(caml_string_notequal(cons,cst_EffectiveEtPermanente$4)) - {if(caml_string_notequal(cons,cst_GardeAlterneeAllocataireUn$0)) - {if(caml_string_notequal(cons,cst_GardeAlterneePartageAlloca$0)) - {if(caml_string_notequal(cons,cst_ServicesSociauxAllocationV$5)) - {if(caml_string_notequal(cons,cst_ServicesSociauxAllocationV$6)) - {var _ah4_=caml_call2(Stdlib_Printf[4],_aaZ_,cons); - return caml_call1(Stdlib[2],_ah4_)} - return _aa0_} - return _aa1_} - return _aa2_} - return _aa3_} - return _aa4_} - function situation_obligation_scolaire_$1(param) - {switch(param[0]) - {case 0:var arg=param[1];return {"kind":"Avant","payload":arg}; - case 1:var arg$0=param[1];return {"kind":"Pendant","payload":arg$0}; - default:var arg$1=param[1];return {"kind":"Apres","payload":arg$1}}} - function situation_obligation_scolaire_$2(situation_obligation_scolaire) - {var cons=caml_string_of_jsstring(situation_obligation_scolaire.kind); - if(caml_string_notequal(cons,cst_Apres$0)) - {if(caml_string_notequal(cons,cst_Avant$2)) - {if(caml_string_notequal(cons,cst_Pendant$2)) - {var _ah3_=caml_call2(Stdlib_Printf[4],_aa5_,cons); - return caml_call1(Stdlib[2],_ah3_)} - return _aa6_} - return _aa7_} - return _aa8_} - function element_prestations_familiales$1(param) - {switch(param[0]) - {case 0: - var arg=param[1]; - return {"kind":"PrestationAccueilJeuneEnfant","payload":arg}; - case 1: - var arg$0=param[1]; - return {"kind":"AllocationsFamiliales","payload":arg$0}; - case 2: - var arg$1=param[1]; - return {"kind":"ComplementFamilial","payload":arg$1}; - case 3: - var arg$2=param[1]; - return {"kind":"AllocationLogement","payload":arg$2}; - case 4: - var arg$3=param[1]; - return {"kind":"AllocationEducationEnfantHandicape","payload":arg$3}; - case 5: - var arg$4=param[1]; - return {"kind":"AllocationSoutienFamilial","payload":arg$4}; - case 6: - var arg$5=param[1]; - return {"kind":"AllocationRentreeScolaire","payload":arg$5}; - default: - var arg$6=param[1]; - return {"kind":"AllocationJournalierePresenceParentale", - "payload":arg$6}}} - function element_prestations_familiales$2(element_prestations_familiales) - {var cons=caml_string_of_jsstring(element_prestations_familiales.kind); - if(caml_string_notequal(cons,cst_AllocationEducationEnfantH$0)) - {if(caml_string_notequal(cons,cst_AllocationJournalierePrese$0)) - {if(caml_string_notequal(cons,cst_AllocationLogement$2)) - {if(caml_string_notequal(cons,cst_AllocationRentreeScolaire$0)) - {if(caml_string_notequal(cons,cst_AllocationSoutienFamilial$4)) - {if(caml_string_notequal(cons,cst_AllocationsFamiliales$4)) - {if(caml_string_notequal(cons,cst_ComplementFamilial$1)) - {if - (caml_string_notequal(cons,cst_PrestationAccueilJeuneEnfa$2)) - {var _ah2_=caml_call2(Stdlib_Printf[4],_aa9_,cons); - return caml_call1(Stdlib[2],_ah2_)} - return _aa__} - return _aa$_} - return _aba_} - return _abb_} - return _abc_} - return _abd_} - return _abe_} - return _abf_} - function convention_bailleur_social_to_(convention_bailleur_social) - {var - t243= - caml_call1(Runtime_ocaml_Runtime[35],convention_bailleur_social[2]), - t242=! ! convention_bailleur_social[1]; - return {"conventionneLivreIIITitreVChapIII":t242, - "reductionLoyerSolidaritePercue":t243}} - function convention_bailleur_social_of_(convention_bailleur_social) - {var - _ah0_= - caml_call1 - (Runtime_ocaml_Runtime[42], - convention_bailleur_social.reductionLoyerSolidaritePercue), - _ah1_=caml_call1(Runtime_ocaml_Runtime[33],_ah0_); - return [0, - convention_bailleur_social.conventionneLivreIIITitreVChapIII | 0, - _ah1_]} - function convention_a_n_h_a_to_jsoo(convention_a_n_h_a) - {var t246=! ! convention_a_n_h_a[1]; - return {"conventionneLivreIIITitreIIChapISec3":t246}} - function convention_a_n_h_a_of_jsoo(convention_a_n_h_a) - {return [0,convention_a_n_h_a.conventionneLivreIIITitreIIChapISec3 | 0]} - function personne_sous_location_to_jsoo(personne_sous_location) - {var - t249=! ! personne_sous_location[2], - t248=caml_call1(Runtime_jsoo_Runtime[5],personne_sous_location[1]); - return {"dateNaissancePersonneSousLocation":t248, - "conformeArticleL4421":t249}} - function personne_sous_location_of_jsoo(personne_sous_location) - {var _ahZ_=personne_sous_location.conformeArticleL4421 | 0; - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - personne_sous_location.dateNaissancePersonneSousLocation), - _ahZ_]} - function patrimoine_to_jsoo(patrimoine) - {var - t253=caml_call1(Runtime_ocaml_Runtime[35],patrimoine[2]), - t252=caml_call1(Runtime_ocaml_Runtime[35],patrimoine[1]); - return {"produisantRevenuPeriodeR82233R8224":t252, - "neProduisantPasRevenuPeriodeR82233R8224":t253}} - function patrimoine_of_jsoo(patrimoine) - {var - _ahW_= - caml_call1 - (Runtime_ocaml_Runtime[42], - patrimoine.neProduisantPasRevenuPeriodeR82233R8224), - _ahX_=caml_call1(Runtime_ocaml_Runtime[33],_ahW_), - _ahY_= - caml_call1 - (Runtime_ocaml_Runtime[42], - patrimoine.produisantRevenuPeriodeR82233R8224); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_ahY_),_ahX_]} - function conditions_etrangers_to_jsoo(conditions_etrangers) - {var t257=! ! conditions_etrangers[2],t256=! ! conditions_etrangers[1]; - return {"satisfaitConditionsL5122CodeSecuriteSociale":t256, - "satisfaitArt4Ordonnance2002Mayotte":t257}} - function conditions_etrangers_of_jsoo(conditions_etrangers) - {return [0, - conditions_etrangers.satisfaitConditionsL5122CodeSecuriteSociale - | - 0, - conditions_etrangers.satisfaitArt4Ordonnance2002Mayotte | 0]} - function personne_vivant_habituellement(personne_vivant_habituellement) - {var - t261= - caml_call1 - (Runtime_ocaml_Runtime[35],personne_vivant_habituellement[2]), - t260=! ! personne_vivant_habituellement[1]; - return {"dureeResidenceDurantPeriodeR82231SuperieureA6Mois":t260, - "ressources":t261}} - function personne_vivant_habituellement$0(personne_vivant_habituellement) - {var - _ahU_= - caml_call1 - (Runtime_ocaml_Runtime[42],personne_vivant_habituellement.ressources), - _ahV_=caml_call1(Runtime_ocaml_Runtime[33],_ahU_); - return [0, - personne_vivant_habituellement.dureeResidenceDurantPeriodeR82231SuperieureA6Mois - | - 0, - _ahV_]} - function eligibilite_aide_personnalisee$0(eligibilite_aide_personnalisee) - {var _ahS_=eligibilite_aide_personnalisee[4]; - function _ahT_(x){return caml_call1(Runtime_ocaml_Runtime[43],x)} - var - t267=caml_js_from_array(caml_call2(Stdlib_Array[15],_ahT_,_ahS_)), - t266= - caml_call1 - (Runtime_ocaml_Runtime[48],eligibilite_aide_personnalisee[3]), - t265=! ! eligibilite_aide_personnalisee[2], - t264= - caml_call1(Runtime_jsoo_Runtime[5],eligibilite_aide_personnalisee[1]); - return {"dateCourante":t264, - "eligibilite":t265, - "nombrePersonnesAChargePrisesEnCompte":t266, - "coefficentsEnfantsGardeAlterneePrisEnCompte":t267}} - function eligibilite_aide_personnalisee$1(eligibilite_aide_personnalisee) - {var - _ahN_= - caml_js_to_array - (eligibilite_aide_personnalisee.coefficentsEnfantsGardeAlterneePrisEnCompte); - function _ahO_(x){return caml_call1(Runtime_ocaml_Runtime[42],x)} - var - _ahP_=caml_call1(caml_call1(Stdlib_Array[15],_ahO_),_ahN_), - _ahQ_= - caml_call1 - (Runtime_ocaml_Runtime[49], - eligibilite_aide_personnalisee.nombrePersonnesAChargePrisesEnCompte), - _ahR_=eligibilite_aide_personnalisee.eligibilite | 0; - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - eligibilite_aide_personnalisee.dateCourante), - _ahR_, - _ahQ_, - _ahP_]} - function eligibilite_prime_de_demenagem$0(eligibilite_prime_de_demenagem) - {var - t272= - caml_call1 - (Runtime_ocaml_Runtime[35],eligibilite_prime_de_demenagem[1]); - return {"montantPrimeDemenagement":t272}} - function eligibilite_prime_de_demenagem$1(eligibilite_prime_de_demenagem) - {var - _ahM_= - caml_call1 - (Runtime_ocaml_Runtime[42], - eligibilite_prime_de_demenagem.montantPrimeDemenagement); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_ahM_)]} - function ressources_aides_personnelle_l$0(ressources_aides_personnelle_l) - {var - t274= - caml_call1 - (Runtime_ocaml_Runtime[35],ressources_aides_personnelle_l[1]); - return {"ressourcesPrisesEnCompte":t274}} - function ressources_aides_personnelle_l$1(ressources_aides_personnelle_l) - {var - _ahL_= - caml_call1 - (Runtime_ocaml_Runtime[42], - ressources_aides_personnelle_l.ressourcesPrisesEnCompte); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_ahL_)]} - function contributions_sociales_aides_p$0(contributions_sociales_aides_p) - {function t276(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _ahI_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), - _ahJ_=caml_call1(Runtime_ocaml_Runtime[33],_ahI_), - _ahK_=caml_call1(contributions_sociales_aides_p[1],_ahJ_); - return caml_call1(Runtime_ocaml_Runtime[35],_ahK_)})} - return {"montant":caml_js_wrap_meth_callback(t276)}} - function contributions_sociales_aides_p$1(contributions_sociales_aides_p) - {return [0,caml_call1(Stdlib[2],cst_The_function_montant_trans)]} - function calcul_aide_personnalisee_loge$3(calcul_aide_personnalisee_loge) - {function t283(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _ahF_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), - _ahG_=caml_call1(Runtime_ocaml_Runtime[33],_ahF_), - _ahH_=caml_call1(calcul_aide_personnalisee_loge[7],_ahG_); - return caml_call1(Runtime_ocaml_Runtime[35],_ahH_)})} - var - t282= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[6]), - t281= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[5]), - t280= - caml_call1 - (Runtime_ocaml_Runtime[43],calcul_aide_personnalisee_loge[4]), - t279= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[3]), - t278= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[2]), - t277= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[1]); - return {"montantForfaitaireChargesD82316":t277, - "plafondLoyerD823162":t278, - "participationMinimale":t279, - "tauxCompositionFamiliale":t280, - "participationPersonnelle":t281, - "aideFinaleFormule":t282, - "traitementAideFinale":caml_js_wrap_meth_callback(t283)}} - function calcul_aide_personnalisee_loge$4(calcul_aide_personnalisee_loge) - {var - _ahu_=caml_call1(Stdlib[2],cst_The_function_traitement_ai), - _ahv_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.aideFinaleFormule), - _ahw_=caml_call1(Runtime_ocaml_Runtime[33],_ahv_), - _ahx_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.participationPersonnelle), - _ahy_=caml_call1(Runtime_ocaml_Runtime[33],_ahx_), - _ahz_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.tauxCompositionFamiliale), - _ahA_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.participationMinimale), - _ahB_=caml_call1(Runtime_ocaml_Runtime[33],_ahA_), - _ahC_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.plafondLoyerD823162), - _ahD_=caml_call1(Runtime_ocaml_Runtime[33],_ahC_), - _ahE_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.montantForfaitaireChargesD82316); - return [0, - caml_call1(Runtime_ocaml_Runtime[33],_ahE_), - _ahD_, - _ahB_, - _ahz_, - _ahy_, - _ahw_, - _ahu_]} - function calcul_equivalence_loyer_minim$0(calcul_equivalence_loyer_minim) - {var - t290= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_equivalence_loyer_minim[1]); - return {"montant":t290}} - function calcul_equivalence_loyer_minim$1(calcul_equivalence_loyer_minim) - {var - _aht_= - caml_call1 - (Runtime_ocaml_Runtime[42],calcul_equivalence_loyer_minim.montant); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_aht_)]} - function calcul_nombre_part_logement_fo$0(calcul_nombre_part_logement_fo) - {var - t292= - caml_call1 - (Runtime_ocaml_Runtime[43],calcul_nombre_part_logement_fo[1]); - return {"nNombrePartsD83225":t292}} - function calcul_nombre_part_logement_fo$1(calcul_nombre_part_logement_fo) - {return [0, - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_nombre_part_logement_fo.nNombrePartsD83225)]} - function calcul_aide_personnalisee_loge$5(calcul_aide_personnalisee_loge) - {function t302(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _ahq_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), - _ahr_=caml_call1(Runtime_ocaml_Runtime[33],_ahq_), - _ahs_=caml_call1(calcul_aide_personnalisee_loge[9],_ahr_); - return caml_call1(Runtime_ocaml_Runtime[35],_ahs_)})} - var - t301= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[8]), - t300= - caml_call1 - (Runtime_ocaml_Runtime[43],calcul_aide_personnalisee_loge[7]), - t299= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[6]), - t298= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[5]), - t297= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[4]), - t296= - caml_call1 - (Runtime_ocaml_Runtime[43],calcul_aide_personnalisee_loge[3]), - t295= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[2]), - t294= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[1]); - return {"coefficientMultiplicateurD83225":t294, - "coefficientRD83225":t295, - "nNombrePartsD83225":t296, - "equivalenceLoyerEligible":t297, - "plafondEquivalenceLoyerEligible":t298, - "equivalenceLoyerMinimale":t299, - "coefficientPriseEnChargeD83225":t300, - "aideFinaleFormule":t301, - "traitementAideFinale":caml_js_wrap_meth_callback(t302)}} - function calcul_aide_personnalisee_loge$6(calcul_aide_personnalisee_loge) - {var - _ahc_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$0), - _ahd_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.aideFinaleFormule), - _ahe_=caml_call1(Runtime_ocaml_Runtime[33],_ahd_), - _ahf_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.coefficientPriseEnChargeD83225), - _ahg_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.equivalenceLoyerMinimale), - _ahh_=caml_call1(Runtime_ocaml_Runtime[33],_ahg_), - _ahi_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.plafondEquivalenceLoyerEligible), - _ahj_=caml_call1(Runtime_ocaml_Runtime[33],_ahi_), - _ahk_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.equivalenceLoyerEligible), - _ahl_=caml_call1(Runtime_ocaml_Runtime[33],_ahk_), - _ahm_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.nNombrePartsD83225), - _ahn_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.coefficientRD83225), - _aho_=caml_call1(Runtime_ocaml_Runtime[33],_ahn_), - _ahp_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.coefficientMultiplicateurD83225); - return [0, - caml_call1(Runtime_ocaml_Runtime[33],_ahp_), - _aho_, - _ahm_, - _ahl_, - _ahj_, - _ahh_, - _ahf_, - _ahe_, - _ahc_]} - function calcul_nombre_parts_accession_$0(calcul_nombre_parts_accession_) - {var - t311= - caml_call1 - (Runtime_ocaml_Runtime[43],calcul_nombre_parts_accession_[1]); - return {"nNombrePartsD83211":t311}} - function calcul_nombre_parts_accession_$1(calcul_nombre_parts_accession_) - {return [0, - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_nombre_parts_accession_.nNombrePartsD83211)]} - function calcul_aide_personnalisee_loge$7(calcul_aide_personnalisee_loge) - {function t317(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _ag$_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), - _aha_=caml_call1(Runtime_ocaml_Runtime[33],_ag$_), - _ahb_=caml_call1(calcul_aide_personnalisee_loge[5],_aha_); - return caml_call1(Runtime_ocaml_Runtime[35],_ahb_)})} - var - t316= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[4]), - t315= - caml_call1 - (Runtime_ocaml_Runtime[43],calcul_aide_personnalisee_loge[3]), - t314= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[2]), - t313= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[1]); - return {"mensualiteEligible":t313, - "mensualiteMinimale":t314, - "coefficientPriseEnChargeD83210":t315, - "aideFinaleFormule":t316, - "traitementAideFinale":caml_js_wrap_meth_callback(t317)}} - function calcul_aide_personnalisee_loge$8(calcul_aide_personnalisee_loge) - {var - _ag4_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$1), - _ag5_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.aideFinaleFormule), - _ag6_=caml_call1(Runtime_ocaml_Runtime[33],_ag5_), - _ag7_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.coefficientPriseEnChargeD83210), - _ag8_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.mensualiteMinimale), - _ag9_=caml_call1(Runtime_ocaml_Runtime[33],_ag8_), - _ag__= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.mensualiteEligible); - return [0, - caml_call1(Runtime_ocaml_Runtime[33],_ag__), - _ag9_, - _ag7_, - _ag6_, - _ag4_]} - function traitement_formule_aide_finale(traitement_formule_aide_finale) - {function t323(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _ag1_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), - _ag2_=caml_call1(Runtime_ocaml_Runtime[33],_ag1_), - _ag3_=caml_call1(traitement_formule_aide_finale[2],_ag2_); - return caml_call1(Runtime_ocaml_Runtime[35],_ag3_)})} - var - t322= - caml_call1 - (Runtime_ocaml_Runtime[35],traitement_formule_aide_finale[1]); - return {"aideFinaleFormule":t322, - "traitementAideFinale":caml_js_wrap_meth_callback(t323)}} - function traitement_formule_aide_finale$0(traitement_formule_aide_finale) - {var - _agZ_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$2), - _ag0_= - caml_call1 - (Runtime_ocaml_Runtime[42], - traitement_formule_aide_finale.aideFinaleFormule); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_ag0_),_agZ_]} - function calcul_aide_personnalisee_loge$9(calcul_aide_personnalisee_loge) - {function t326(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _agW_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), - _agX_=caml_call1(Runtime_ocaml_Runtime[33],_agW_), - _agY_=caml_call1(calcul_aide_personnalisee_loge[2],_agX_); - return caml_call1(Runtime_ocaml_Runtime[35],_agY_)})} - var - t325= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[1]); - return {"aideFinaleFormule":t325, - "traitementAideFinale":caml_js_wrap_meth_callback(t326)}} - function calcul_aide_personnalisee_loge$10(calcul_aide_personnalisee_loge) - {var - _agU_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$3), - _agV_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.aideFinaleFormule); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_agV_),_agU_]} - function infos_changement_logement_d842(infos_changement_logement_d842) - {var - t329= - caml_call1 - (Runtime_ocaml_Runtime[35],infos_changement_logement_d842[2]), - t328= - caml_call1 - (Runtime_ocaml_Runtime[35],infos_changement_logement_d842[1]); - return {"ancienLoyerPrincipal":t328,"ancienneAllocationLogement":t329}} - function infos_changement_logement_d842$0(infos_changement_logement_d842) - {var - _agR_= - caml_call1 - (Runtime_ocaml_Runtime[42], - infos_changement_logement_d842.ancienneAllocationLogement), - _agS_=caml_call1(Runtime_ocaml_Runtime[33],_agR_), - _agT_= - caml_call1 - (Runtime_ocaml_Runtime[42], - infos_changement_logement_d842.ancienLoyerPrincipal); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_agT_),_agS_]} - function calcul_allocation_logement_loc$0(calcul_allocation_logement_loc) - {function t333(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _agO_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), - _agP_=caml_call1(Runtime_ocaml_Runtime[33],_agO_), - _agQ_=caml_call1(calcul_allocation_logement_loc[2],_agP_); - return caml_call1(Runtime_ocaml_Runtime[35],_agQ_)})} - var - t332= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_loc[1]); - return {"aideFinaleFormule":t332, - "traitementAideFinale":caml_js_wrap_meth_callback(t333)}} - function calcul_allocation_logement_loc$1(calcul_allocation_logement_loc) - {var - _agM_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$4), - _agN_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_loc.aideFinaleFormule); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_agN_),_agM_]} - function calcul_allocation_logement_acc$0(calcul_allocation_logement_acc) - {function t336(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _agJ_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), - _agK_=caml_call1(Runtime_ocaml_Runtime[33],_agJ_), - _agL_=caml_call1(calcul_allocation_logement_acc[2],_agK_); - return caml_call1(Runtime_ocaml_Runtime[35],_agL_)})} - var - t335= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_acc[1]); - return {"aideFinaleFormule":t335, - "traitementAideFinale":caml_js_wrap_meth_callback(t336)}} - function calcul_allocation_logement_acc$1(calcul_allocation_logement_acc) - {var - _agH_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$5), - _agI_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_acc.aideFinaleFormule); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_agI_),_agH_]} - function calcul_allocation_logement_foy$0(calcul_allocation_logement_foy) - {function t343(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _agE_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), - _agF_=caml_call1(Runtime_ocaml_Runtime[33],_agE_), - _agG_=caml_call1(calcul_allocation_logement_foy[6],_agF_); - return caml_call1(Runtime_ocaml_Runtime[35],_agG_)})} - var - t342= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_foy[5]), - t341= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_foy[4]), - t340= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_foy[3]), - t339= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_foy[2]), - t338= - caml_call1 - (Runtime_ocaml_Runtime[43],calcul_allocation_logement_foy[1]); - return {"coefficientPriseEnCharge":t338, - "equivalenceLoyer":t339, - "montantForfaitaireCharges":t340, - "loyerMinimal":t341, - "aideFinaleFormule":t342, - "traitementAideFinale":caml_js_wrap_meth_callback(t343)}} - function calcul_allocation_logement_foy$1(calcul_allocation_logement_foy) - {var - _agv_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$6), - _agw_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_foy.aideFinaleFormule), - _agx_=caml_call1(Runtime_ocaml_Runtime[33],_agw_), - _agy_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_foy.loyerMinimal), - _agz_=caml_call1(Runtime_ocaml_Runtime[33],_agy_), - _agA_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_foy.montantForfaitaireCharges), - _agB_=caml_call1(Runtime_ocaml_Runtime[33],_agA_), - _agC_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_foy.equivalenceLoyer), - _agD_=caml_call1(Runtime_ocaml_Runtime[33],_agC_); - return [0, - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_foy.coefficientPriseEnCharge), - _agD_, - _agB_, - _agz_, - _agx_, - _agv_]} - function calcul_allocation_logement_to_(calcul_allocation_logement) - {function t350(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _ags_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), - _agt_=caml_call1(Runtime_ocaml_Runtime[33],_ags_), - _agu_=caml_call1(calcul_allocation_logement[2],_agt_); - return caml_call1(Runtime_ocaml_Runtime[35],_agu_)})} - var - t349= - caml_call1(Runtime_ocaml_Runtime[35],calcul_allocation_logement[1]); - return {"aideFinaleFormule":t349, - "traitementAideFinale":caml_js_wrap_meth_callback(t350)}} - function calcul_allocation_logement_of_(calcul_allocation_logement) - {var - _agq_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$7), - _agr_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement.aideFinaleFormule); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_agr_),_agq_]} - function ouverture_droits_retraite_to_j(ouverture_droits_retraite) - {var - t352= - caml_call1(Runtime_jsoo_Runtime[3],ouverture_droits_retraite[1]); - return {"ageOuvertureDroit":t352}} - function ouverture_droits_retraite_of_j(ouverture_droits_retraite) - {return [0, - caml_call1 - (Runtime_jsoo_Runtime[2], - ouverture_droits_retraite.ageOuvertureDroit)]} - function impaye_depense_logement_to_jso(impaye_depense_logement) - {var - t354= - caml_call1(Runtime_ocaml_Runtime[35],impaye_depense_logement[1]); - return {"montantImpaye":t354}} - function impaye_depense_logement_of_jso(impaye_depense_logement) - {var - _agp_= - caml_call1 - (Runtime_ocaml_Runtime[42],impaye_depense_logement.montantImpaye); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_agp_)]} - function calculette_aides_au_logement_t(calculette_aides_au_logement) - {var _agk_=calculette_aides_au_logement[4]; - function _agl_(x){return caml_call1(Runtime_ocaml_Runtime[43],x)} - var t359=caml_js_from_array(caml_call2(Stdlib_Array[15],_agl_,_agk_)); - function t358(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _agm_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), - _agn_=caml_call1(Runtime_ocaml_Runtime[33],_agm_), - _ago_=caml_call1(calculette_aides_au_logement[3],_agn_); - return caml_call1(Runtime_ocaml_Runtime[35],_ago_)})} - var - t357= - caml_call1(Runtime_ocaml_Runtime[35],calculette_aides_au_logement[2]), - t356=! ! calculette_aides_au_logement[1]; - return {"eligibilite":t356, - "aideFinaleFormule":t357, - "traitementAideFinale":caml_js_wrap_meth_callback(t358), - "coefficentsEnfantsGardeAlterneePrisEnCompte":t359}} - function calculette_aides_au_logement_o(calculette_aides_au_logement) - {var - _age_= - caml_js_to_array - (calculette_aides_au_logement.coefficentsEnfantsGardeAlterneePrisEnCompte); - function _agf_(x){return caml_call1(Runtime_ocaml_Runtime[42],x)} - var - _agg_=caml_call1(caml_call1(Stdlib_Array[15],_agf_),_age_), - _agh_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$8), - _agi_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calculette_aides_au_logement.aideFinaleFormule), - _agj_=caml_call1(Runtime_ocaml_Runtime[33],_agi_); - return [0, - calculette_aides_au_logement.eligibilite | 0, - _agj_, - _agh_, - _agg_]} - function calculette_aides_au_logement_g$0(calculette_aides_au_logement_g) - {var - t364= - caml_call1 - (Runtime_ocaml_Runtime[35],calculette_aides_au_logement_g[2]), - t363=! ! calculette_aides_au_logement_g[1]; - return {"eligibilite":t363,"aideFinale":t364}} - function calculette_aides_au_logement_g$1(calculette_aides_au_logement_g) - {var - _agc_= - caml_call1 - (Runtime_ocaml_Runtime[42],calculette_aides_au_logement_g.aideFinale), - _agd_=caml_call1(Runtime_ocaml_Runtime[33],_agc_); - return [0,calculette_aides_au_logement_g.eligibilite | 0,_agd_]} - function base_mensuelle_allocations_fam$6(base_mensuelle_allocations_fam) - {var - t367= - caml_call1 - (Runtime_ocaml_Runtime[35],base_mensuelle_allocations_fam[1]); - return {"montant":t367}} - function base_mensuelle_allocations_fam$7(base_mensuelle_allocations_fam) - {var - _agb_= - caml_call1 - (Runtime_ocaml_Runtime[42],base_mensuelle_allocations_fam.montant); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_agb_)]} - function verification_age_inferieur_ou_$6(verification_age_inferieur_ou_) - {var t369=! ! verification_age_inferieur_ou_[1]; - return {"estInferieurOuEgal":t369}} - function verification_age_inferieur_ou_$7(verification_age_inferieur_ou_) - {return [0,verification_age_inferieur_ou_.estInferieurOuEgal | 0]} - function verification_age_superieur_a_t$0(verification_age_superieur_a) - {var t371=! ! verification_age_superieur_a[1]; - return {"estSuperieur":t371}} - function verification_age_superieur_a_o$0(verification_age_superieur_a) - {return [0,verification_age_superieur_a.estSuperieur | 0]} - function smic_to_jsoo$0(smic) - {var t373=caml_call1(Runtime_ocaml_Runtime[35],smic[1]); - return {"brutHoraire":t373}} - function smic_of_jsoo$0(smic) - {var _aga_=caml_call1(Runtime_ocaml_Runtime[42],smic.brutHoraire); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_aga_)]} - function neuf_ou_ancien_to_jsoo(param) - {if(0 === param[0]) - {var arg=param[1];return {"kind":"Neuf","payload":arg}} - var arg$0=param[1],t378=ameliore_par_occupant_to_jsoo(arg$0); - return {"kind":"Ancien","payload":t378}} - function neuf_ou_ancien_of_jsoo(neuf_ou_ancien) - {var cons=caml_string_of_jsstring(neuf_ou_ancien.kind); - if(caml_string_notequal(cons,cst_Ancien$0)) - {if(caml_string_notequal(cons,cst_Neuf$0)) - {var _af$_=caml_call2(Stdlib_Printf[4],_abg_,cons); - return caml_call1(Stdlib[2],_af$_)} - return _abh_} - return [1,ameliore_par_occupant_of_jsoo(neuf_ou_ancien.payload)]} - function tranche_revenu_to_jsoo(tranche_revenu) - {var - t383=caml_call1(Runtime_ocaml_Runtime[43],tranche_revenu[3]), - t382=caml_call1(Runtime_ocaml_Runtime[35],tranche_revenu[2]), - t381=limite_tranche_to_jsoo(tranche_revenu[1]); - return {"haut":t381,"bas":t382,"taux":t383}} - function tranche_revenu_of_jsoo(tranche_revenu) - {var - _af8_=caml_call1(Runtime_ocaml_Runtime[42],tranche_revenu.taux), - _af9_=caml_call1(Runtime_ocaml_Runtime[42],tranche_revenu.bas), - _af__=caml_call1(Runtime_ocaml_Runtime[33],_af9_); - return [0,limite_tranche_of_jsoo(tranche_revenu.haut),_af__,_af8_]} - function tranche_revenu_decimal_to_jsoo(tranche_revenu_decimal) - {var - t389=caml_call1(Runtime_ocaml_Runtime[43],tranche_revenu_decimal[3]), - t388=caml_call1(Runtime_ocaml_Runtime[43],tranche_revenu_decimal[2]), - t387=limite_tranche_decimal_to_jsoo(tranche_revenu_decimal[1]); - return {"haut":t387,"bas":t388,"taux":t389}} - function tranche_revenu_decimal_of_jsoo(tranche_revenu_decimal) - {var - _af6_=caml_call1(Runtime_ocaml_Runtime[42],tranche_revenu_decimal.taux), - _af7_=caml_call1(Runtime_ocaml_Runtime[42],tranche_revenu_decimal.bas); - return [0, - limite_tranche_decimal_of_jsoo(tranche_revenu_decimal.haut), - _af7_, - _af6_]} - function autre_personne_a_charge_to_jso(autre_personne_a_charge) - {var - t399=! ! autre_personne_a_charge[7], - t398=! ! autre_personne_a_charge[6], - t397=! ! autre_personne_a_charge[5], - t396=parente_to_jsoo(autre_personne_a_charge[4]), - t395=! ! autre_personne_a_charge[3], - t394=caml_call1(Runtime_ocaml_Runtime[35],autre_personne_a_charge[2]), - t393=caml_call1(Runtime_jsoo_Runtime[5],autre_personne_a_charge[1]); - return {"dateNaissance":t393, - "ressources":t394, - "ascendantDescendantCollateralDeuxiemeTroisiemeDegre":t395, - "parente":t396, - "incapacite80PourcentOuRestrictionEmploi":t397, - "beneficiaireL16119L3518L6433Secu":t398, - "titulaireAllocationPersonneAgee":t399}} - function autre_personne_a_charge_of_jso(autre_personne_a_charge) - {var - _afZ_=autre_personne_a_charge.titulaireAllocationPersonneAgee | 0, - _af0_=autre_personne_a_charge.beneficiaireL16119L3518L6433Secu | 0, - _af1_= - autre_personne_a_charge.incapacite80PourcentOuRestrictionEmploi - | - 0, - _af2_=parente_of_jsoo(autre_personne_a_charge.parente), - _af3_= - autre_personne_a_charge.ascendantDescendantCollateralDeuxiemeTroisiemeDegre - | - 0, - _af4_= - caml_call1 - (Runtime_ocaml_Runtime[42],autre_personne_a_charge.ressources), - _af5_=caml_call1(Runtime_ocaml_Runtime[33],_af4_); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4],autre_personne_a_charge.dateNaissance), - _af5_, - _af3_, - _af2_, - _af1_, - _af0_, - _afZ_]} - function date_naissance_troisieme_ou_de(param) - {if(0 === param[0]) - {var arg=param[1];return {"kind":"MoinsDeTroisEnfants","payload":arg}} - var arg$0=param[1],t410=date_de_naissance_ou_mois_de_g(arg$0); - return {"kind":"PlusDeTroisEnfants","payload":t410}} - function date_naissance_troisieme_ou_de$0(date_naissance_troisieme_ou_de) - {var cons=caml_string_of_jsstring(date_naissance_troisieme_ou_de.kind); - if(caml_string_notequal(cons,cst_MoinsDeTroisEnfants$0)) - {if(caml_string_notequal(cons,cst_PlusDeTroisEnfants$0)) - {var _afY_=caml_call2(Stdlib_Printf[4],_abi_,cons); - return caml_call1(Stdlib[2],_afY_)} - return [1, - date_de_naissance_ou_mois_de_g$0 - (date_naissance_troisieme_ou_de.payload)]} - return _abj_} - function eligibilite_allocation_logemen$0(eligibilite_allocation_logemen) - {var _afW_=eligibilite_allocation_logemen[3]; - function _afX_(x){return caml_call1(Runtime_ocaml_Runtime[43],x)} - var - t415=caml_js_from_array(caml_call2(Stdlib_Array[15],_afX_,_afW_)), - t414= - caml_call1 - (Runtime_ocaml_Runtime[48],eligibilite_allocation_logemen[2]), - t413=type_eligibilite_allocation_lo(eligibilite_allocation_logemen[1]); - return {"eligibilite":t413, - "nombrePersonnesAChargePrisesEnCompte":t414, - "coefficentsEnfantsGardeAlterneePrisEnCompte":t415}} - function eligibilite_allocation_logemen$1(eligibilite_allocation_logemen) - {var - _afS_= - caml_js_to_array - (eligibilite_allocation_logemen.coefficentsEnfantsGardeAlterneePrisEnCompte); - function _afT_(x){return caml_call1(Runtime_ocaml_Runtime[42],x)} - var - _afU_=caml_call1(caml_call1(Stdlib_Array[15],_afT_),_afS_), - _afV_= - caml_call1 - (Runtime_ocaml_Runtime[49], - eligibilite_allocation_logemen.nombrePersonnesAChargePrisesEnCompte); - return [0, - type_eligibilite_allocation_lo$0 - (eligibilite_allocation_logemen.eligibilite), - _afV_, - _afU_]} - function pret_to_jsoo(pret) - {var - t422=accord_financement_representan(pret[4]), - t421=titulaire_pret_to_jsoo(pret[3]), - t420=caml_call1(Runtime_jsoo_Runtime[5],pret[2]), - t419=type_pret_to_jsoo(pret[1]); - return {"typePret":t419, - "dateSignature":t420, - "titulairePret":t421, - "accordFinancementRepresentantEtatOutreMer":t422}} - function pret_of_jsoo(pret) - {var - _afP_= - accord_financement_representan$0 - (pret.accordFinancementRepresentantEtatOutreMer), - _afQ_=titulaire_pret_of_jsoo(pret.titulairePret), - _afR_=caml_call1(Runtime_jsoo_Runtime[4],pret.dateSignature); - return [0,type_pret_of_jsoo(pret.typePret),_afR_,_afQ_,_afP_]} - function logement_foyer_to_jsoo(logement_foyer) - {var - t436=! ! logement_foyer[10], - t435=! ! logement_foyer[9], - t434=categorie_equivalence_loyer_al(logement_foyer[8]), - t433=caml_call1(Runtime_ocaml_Runtime[35],logement_foyer[7]), - t432=! ! logement_foyer[6], - t431=caml_call1(Runtime_jsoo_Runtime[5],logement_foyer[5]), - t430=! ! logement_foyer[4], - t429=! ! logement_foyer[3], - t428=! ! logement_foyer[2], - t427=type_logement_foyer_to_jsoo(logement_foyer[1]); - return {"typeUser":t427, - "remplitConditionsR83221":t428, - "conventionneLivreIIITitreVChapIII":t429, - "conventionneSelonReglesMayotte":t430, - "dateConventionnement":t431, - "construitApplicationLoi195712III":t432, - "redevance":t433, - "categorieEquivalenceLoyerD84216":t434, - "beneficiaireAideAdulteOuEnfantHandicapes":t435, - "logementMeubleD8422":t436}} - function logement_foyer_of_jsoo(logement_foyer) - {var - _afF_=logement_foyer.logementMeubleD8422 | 0, - _afG_=logement_foyer.beneficiaireAideAdulteOuEnfantHandicapes | 0, - _afH_= - categorie_equivalence_loyer_al$0 - (logement_foyer.categorieEquivalenceLoyerD84216), - _afI_=caml_call1(Runtime_ocaml_Runtime[42],logement_foyer.redevance), - _afJ_=caml_call1(Runtime_ocaml_Runtime[33],_afI_), - _afK_=logement_foyer.construitApplicationLoi195712III | 0, - _afL_= - caml_call1 - (Runtime_jsoo_Runtime[4],logement_foyer.dateConventionnement), - _afM_=logement_foyer.conventionneSelonReglesMayotte | 0, - _afN_=logement_foyer.conventionneLivreIIITitreVChapIII | 0, - _afO_=logement_foyer.remplitConditionsR83221 | 0; - return [0, - type_logement_foyer_of_jsoo(logement_foyer.typeUser), - _afO_, - _afN_, - _afM_, - _afL_, - _afK_, - _afJ_, - _afH_, - _afG_, - _afF_]} - function enfant_prestations_familiales_(enfant_prestations_familiales) - {var - t453=! ! enfant_prestations_familiales[7], - t452=! ! enfant_prestations_familiales[6], - t451=prise_en_charge_enfant_to_jsoo(enfant_prestations_familiales[5]), - t450= - caml_call1(Runtime_jsoo_Runtime[5],enfant_prestations_familiales[4]), - t449= - caml_call1(Runtime_ocaml_Runtime[35],enfant_prestations_familiales[3]), - t448=situation_obligation_scolaire_$1(enfant_prestations_familiales[2]), - t447= - caml_call1(Runtime_ocaml_Runtime[48],enfant_prestations_familiales[1]); - return {"identifiant":t447, - "obligationScolaire":t448, - "remunerationMensuelle":t449, - "dateDeNaissance":t450, - "priseEnCharge":t451, - "aDejaOuvertDroitAuxAllocationsFamiliales":t452, - "beneficieTitrePersonnelAidePersonnelleLogement":t453}} - function enfant_prestations_familiales_$0(enfant_prestations_familiales) - {var - _afy_= - enfant_prestations_familiales.beneficieTitrePersonnelAidePersonnelleLogement - | - 0, - _afz_= - enfant_prestations_familiales.aDejaOuvertDroitAuxAllocationsFamiliales - | - 0, - _afA_= - prise_en_charge_enfant_of_jsoo - (enfant_prestations_familiales.priseEnCharge), - _afB_= - caml_call1 - (Runtime_jsoo_Runtime[4], - enfant_prestations_familiales.dateDeNaissance), - _afC_= - caml_call1 - (Runtime_ocaml_Runtime[42], - enfant_prestations_familiales.remunerationMensuelle), - _afD_=caml_call1(Runtime_ocaml_Runtime[33],_afC_), - _afE_= - situation_obligation_scolaire_$2 - (enfant_prestations_familiales.obligationScolaire); - return [0, - caml_call1 - (Runtime_ocaml_Runtime[49], - enfant_prestations_familiales.identifiant), - _afE_, - _afD_, - _afB_, - _afA_, - _afz_, - _afy_]} - function type_bailleur_to_jsoo(param) - {switch(param[0]) - {case 0: - var arg=param[1],t462=convention_bailleur_social_to_(arg); - return {"kind":"BailleurSocial","payload":t462}; - case 1: - var arg$0=param[1],t464=convention_a_n_h_a_to_jsoo(arg$0); - return {"kind":"BailleurPriveAvecConventionnementSocial", - "payload":t464}; - default: - var arg$1=param[1];return {"kind":"BailleurPrive","payload":arg$1}}} - function type_bailleur_of_jsoo(type_bailleur) - {var cons=caml_string_of_jsstring(type_bailleur.kind); - if(caml_string_notequal(cons,cst_BailleurPrive)) - {if(caml_string_notequal(cons,cst_BailleurPriveAvecConventio)) - {if(caml_string_notequal(cons,cst_BailleurSocial$0)) - {var _afx_=caml_call2(Stdlib_Printf[4],_abk_,cons); - return caml_call1(Stdlib[2],_afx_)} - return [0,convention_bailleur_social_of_(type_bailleur.payload)]} - return [1,convention_a_n_h_a_of_jsoo(type_bailleur.payload)]} - return _abl_} - function loue_ou_sous_loue_a_des_tiers_(param) - {if(0 === param[0]){var arg=param[1];return {"kind":"Non","payload":arg}} - var arg$0=param[1],t473=personne_sous_location_to_jsoo(arg$0); - return {"kind":"Oui","payload":t473}} - function loue_ou_sous_loue_a_des_tiers_$0(loue_ou_sous_loue_a_des_tiers) - {var cons=caml_string_of_jsstring(loue_ou_sous_loue_a_des_tiers.kind); - if(caml_string_notequal(cons,cst_Non$4)) - {if(caml_string_notequal(cons,cst_Oui$2)) - {var _afw_=caml_call2(Stdlib_Printf[4],_abm_,cons); - return caml_call1(Stdlib[2],_afw_)} - return [1, - personne_sous_location_of_jsoo - (loue_ou_sous_loue_a_des_tiers.payload)]} - return _abn_} - function nationalite_to_jsoo(param) - {if(0 === param[0]) - {var arg=param[1];return {"kind":"Francaise","payload":arg}} - var arg$0=param[1],t479=conditions_etrangers_to_jsoo(arg$0); - return {"kind":"Etrangere","payload":t479}} - function nationalite_of_jsoo(nationalite) - {var cons=caml_string_of_jsstring(nationalite.kind); - if(caml_string_notequal(cons,cst_Etrangere)) - {if(caml_string_notequal(cons,cst_Francaise)) - {var _afv_=caml_call2(Stdlib_Printf[4],_abo_,cons); - return caml_call1(Stdlib[2],_afv_)} - return _abp_} - return [1,conditions_etrangers_of_jsoo(nationalite.payload)]} - function changement_logement_d842_4_to_(param) - {if(0 === param[0]) - {var arg=param[1],t483=infos_changement_logement_d842(arg); - return {"kind":"Changement","payload":t483}} - var arg$0=param[1]; - return {"kind":"PasDeChangement","payload":arg$0}} - function changement_logement_d842_4_of_(changement_logement_d842_4) - {var cons=caml_string_of_jsstring(changement_logement_d842_4.kind); - if(caml_string_notequal(cons,cst_Changement$0)) - {if(caml_string_notequal(cons,cst_PasDeChangement$0)) - {var _afu_=caml_call2(Stdlib_Printf[4],_abq_,cons); - return caml_call1(Stdlib[2],_afu_)} - return _abr_} - return [0, - infos_changement_logement_d842$0 - (changement_logement_d842_4.payload)]} - function informations_prime_de_demenage(informations_prime_de_demenage) - {var - t489=date_naissance_troisieme_ou_de(informations_prime_de_demenage[2]), - t488= - caml_call1 - (Runtime_ocaml_Runtime[48],informations_prime_de_demenage[1]); - return {"nombreEnfantsANaitreApresTroisiemeMoisGrossesse":t488, - "dateNaissanceTroisiemeEnfantOuDernierSiPlus":t489}} - function informations_prime_de_demenage$0(informations_prime_de_demenage) - {var - _aft_= - date_naissance_troisieme_ou_de$0 - (informations_prime_de_demenage.dateNaissanceTroisiemeEnfantOuDernierSiPlus); - return [0, - caml_call1 - (Runtime_ocaml_Runtime[49], - informations_prime_de_demenage.nombreEnfantsANaitreApresTroisiemeMoisGrossesse), - _aft_]} - function proprietaire_to_jsoo(proprietaire) - {var - t502=! ! proprietaire[11], - t501=pret_to_jsoo(proprietaire[10]), - t500=neuf_ou_ancien_to_jsoo(proprietaire[9]), - t499=! ! proprietaire[8], - t498=! ! proprietaire[7], - t497=! ! proprietaire[6], - t496=type_travaux_logement_r842_5_t(proprietaire[5]), - t495=type_travaux_logement_d832_15_(proprietaire[4]), - t494=caml_call1(Runtime_jsoo_Runtime[5],proprietaire[3]), - t493=caml_call1(Runtime_ocaml_Runtime[35],proprietaire[2]), - t492=caml_call1(Runtime_ocaml_Runtime[35],proprietaire[1]); - return {"mensualitePrincipale":t492, - "chargesMensuellesPret":t493, - "dateEntreeLogement":t494, - "typeTravauxLogementD83215":t495, - "typeTravauxLogementR8425":t496, - "localHabitePremiereFoisBeneficiaire":t497, - "copropriete":t498, - "situationR822111317":t499, - "ancienneteLogement":t500, - "pret":t501, - "operationsLogementEvolutifsSociauxAccessionProprieteAideeEtat": - t502}} - function proprietaire_of_jsoo(proprietaire) - {var - _afh_= - proprietaire.operationsLogementEvolutifsSociauxAccessionProprieteAideeEtat - | - 0, - _afi_=pret_of_jsoo(proprietaire.pret), - _afj_=neuf_ou_ancien_of_jsoo(proprietaire.ancienneteLogement), - _afk_=proprietaire.situationR822111317 | 0, - _afl_=proprietaire.copropriete | 0, - _afm_=proprietaire.localHabitePremiereFoisBeneficiaire | 0, - _afn_= - type_travaux_logement_r842_5_o(proprietaire.typeTravauxLogementR8425), - _afo_= - type_travaux_logement_d832_15_$0 - (proprietaire.typeTravauxLogementD83215), - _afp_= - caml_call1(Runtime_jsoo_Runtime[4],proprietaire.dateEntreeLogement), - _afq_= - caml_call1 - (Runtime_ocaml_Runtime[42],proprietaire.chargesMensuellesPret), - _afr_=caml_call1(Runtime_ocaml_Runtime[33],_afq_), - _afs_= - caml_call1 - (Runtime_ocaml_Runtime[42],proprietaire.mensualitePrincipale); - return [0, - caml_call1(Runtime_ocaml_Runtime[33],_afs_), - _afr_, - _afp_, - _afo_, - _afn_, - _afm_, - _afl_, - _afk_, - _afj_, - _afi_, - _afh_]} - function eligibilite_prestations_famili$0(eligibilite_prestations_famili) - {var t517=! ! eligibilite_prestations_famili[4]; - function t516(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _afg_= - enfant_prestations_familiales_$0(function_input0); - return ! - ! - caml_call1(eligibilite_prestations_famili[3],_afg_)})} - function t515(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _aff_= - enfant_prestations_familiales_$0(function_input0); - return ! - ! - caml_call1(eligibilite_prestations_famili[2],_aff_)})} - var - t514= - caml_call1(Runtime_jsoo_Runtime[3],eligibilite_prestations_famili[1]); - return {"ageL51232":t514, - "droitOuvert":caml_js_wrap_meth_callback(t515), - "conditionsHorsAge":caml_js_wrap_meth_callback(t516), - "regimeOutreMerL7511":t517}} - function eligibilite_prestations_famili$1(eligibilite_prestations_famili) - {var - _afc_=eligibilite_prestations_famili.regimeOutreMerL7511 | 0, - _afd_=caml_call1(Stdlib[2],cst_The_function_conditions_ho$0), - _afe_=caml_call1(Stdlib[2],cst_The_function_droit_ouvert_$0); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[2], - eligibilite_prestations_famili.ageL51232), - _afe_, - _afd_, - _afc_]} - function demandeur_to_jsoo(demandeur) - {var - t525=! ! demandeur[6], - t524=! ! demandeur[5], - t523=! ! demandeur[4], - t522=patrimoine_to_jsoo(demandeur[3]), - t521=nationalite_to_jsoo(demandeur[2]), - t520=caml_call1(Runtime_jsoo_Runtime[5],demandeur[1]); - return {"dateNaissance":t520, - "nationalite":t521, - "patrimoine":t522, - "personneHebergeeCentreSoinLL162223SecuriteSociale":t523, - "estNonSalarieAgricoleL7818L78146CodeRural":t524, - "magistratFonctionnaireCentreInteretsMaterielsFamiliauxHorsMayotte": - t525}} - function demandeur_of_jsoo(demandeur) - {var - _ae9_= - demandeur.magistratFonctionnaireCentreInteretsMaterielsFamiliauxHorsMayotte - | - 0, - _ae__=demandeur.estNonSalarieAgricoleL7818L78146CodeRural | 0, - _ae$_=demandeur.personneHebergeeCentreSoinLL162223SecuriteSociale | 0, - _afa_=patrimoine_of_jsoo(demandeur.patrimoine), - _afb_=nationalite_of_jsoo(demandeur.nationalite); - return [0, - caml_call1(Runtime_jsoo_Runtime[4],demandeur.dateNaissance), - _afb_, - _afa_, - _ae$_, - _ae__, - _ae9_]} - function enfant_a_charge_to_jsoo(enfant_a_charge) - {var - t540=! ! enfant_a_charge[9], - t539=situation_garde_alternee_to_js(enfant_a_charge[8]), - t538=situation_obligation_scolaire_$1(enfant_a_charge[7]), - t537=caml_call1(Runtime_ocaml_Runtime[35],enfant_a_charge[6]), - t536=caml_call1(Runtime_jsoo_Runtime[5],enfant_a_charge[5]), - t535=! ! enfant_a_charge[4], - t534=! ! enfant_a_charge[3], - t533=nationalite_to_jsoo(enfant_a_charge[2]), - t532=caml_call1(Runtime_ocaml_Runtime[48],enfant_a_charge[1]); - return {"identifiant":t532, - "nationalite":t533, - "beneficieTitrePersonnelAidePersonnelleLogement":t534, - "aDejaOuvertDroitAuxAllocationsFamiliales":t535, - "dateDeNaissance":t536, - "remunerationMensuelle":t537, - "obligationScolaire":t538, - "situationGardeAlternee":t539, - "etudesApprentissageStageFormationProImpossibiliteTravail":t540}} - function enfant_a_charge_of_jsoo(enfant_a_charge) - {var - _ae0_= - enfant_a_charge.etudesApprentissageStageFormationProImpossibiliteTravail - | - 0, - _ae1_= - situation_garde_alternee_of_js(enfant_a_charge.situationGardeAlternee), - _ae2_= - situation_obligation_scolaire_$2(enfant_a_charge.obligationScolaire), - _ae3_= - caml_call1 - (Runtime_ocaml_Runtime[42],enfant_a_charge.remunerationMensuelle), - _ae4_=caml_call1(Runtime_ocaml_Runtime[33],_ae3_), - _ae5_= - caml_call1(Runtime_jsoo_Runtime[4],enfant_a_charge.dateDeNaissance), - _ae6_=enfant_a_charge.aDejaOuvertDroitAuxAllocationsFamiliales | 0, - _ae7_= - enfant_a_charge.beneficieTitrePersonnelAidePersonnelleLogement - | - 0, - _ae8_=nationalite_of_jsoo(enfant_a_charge.nationalite); - return [0, - caml_call1 - (Runtime_ocaml_Runtime[49],enfant_a_charge.identifiant), - _ae8_, - _ae7_, - _ae6_, - _ae5_, - _ae4_, - _ae2_, - _ae1_, - _ae0_]} - function location_to_jsoo(location) - {var - t557=changement_logement_d842_4_to_(location[8]), - t556=! ! location[7], - t555=! ! location[6], - t554=! ! location[5], - t553=! ! location[4], - t552=! ! location[3], - t551=caml_call1(Runtime_ocaml_Runtime[35],location[2]), - t550=type_bailleur_to_jsoo(location[1]); - return {"bailleur":t550, - "loyerPrincipal":t551, - "beneficiaireAideAdulteOuEnfantHandicapes":t552, - "logementEstChambre":t553, - "colocation":t554, - "ageesOuHandicapAdultesHebergeesOnereuxParticuliers":t555, - "logementMeubleD8422":t556, - "changementLogementD8424":t557}} - function location_of_jsoo(location) - {var - _aeS_=changement_logement_d842_4_of_(location.changementLogementD8424), - _aeT_=location.logementMeubleD8422 | 0, - _aeU_=location.ageesOuHandicapAdultesHebergeesOnereuxParticuliers | 0, - _aeV_=location.colocation | 0, - _aeW_=location.logementEstChambre | 0, - _aeX_=location.beneficiaireAideAdulteOuEnfantHandicapes | 0, - _aeY_=caml_call1(Runtime_ocaml_Runtime[42],location.loyerPrincipal), - _aeZ_=caml_call1(Runtime_ocaml_Runtime[33],_aeY_); - return [0, - type_bailleur_of_jsoo(location.bailleur), - _aeZ_, - _aeX_, - _aeW_, - _aeV_, - _aeU_, - _aeT_, - _aeS_]} - function personne_a_charge_to_jsoo(param) - {if(0 === param[0]) - {var arg=param[1],t567=enfant_a_charge_to_jsoo(arg); - return {"kind":"EnfantACharge","payload":t567}} - var arg$0=param[1],t569=autre_personne_a_charge_to_jso(arg$0); - return {"kind":"AutrePersonneACharge","payload":t569}} - function personne_a_charge_of_jsoo(personne_a_charge) - {var cons=caml_string_of_jsstring(personne_a_charge.kind); - if(caml_string_notequal(cons,cst_AutrePersonneACharge)) - {if(caml_string_notequal(cons,cst_EnfantACharge)) - {var _aeR_=caml_call2(Stdlib_Printf[4],_abs_,cons); - return caml_call1(Stdlib[2],_aeR_)} - return [0,enfant_a_charge_of_jsoo(personne_a_charge.payload)]} - return [1,autre_personne_a_charge_of_jso(personne_a_charge.payload)]} - function categorie_calcul_a_p_l_to_jsoo(param) - {switch(param[0]) - {case 0: - var arg=param[1],t574=location_to_jsoo(arg); - return {"kind":"Location","payload":t574}; - case 1: - var arg$0=param[1],t576=proprietaire_to_jsoo(arg$0); - return {"kind":"AccessionPropriete","payload":t576}; - default: - var arg$1=param[1],t578=logement_foyer_to_jsoo(arg$1); - return {"kind":"LogementFoyer","payload":t578}}} - function categorie_calcul_a_p_l_of_jsoo(categorie_calcul_a_p_l) - {var cons=caml_string_of_jsstring(categorie_calcul_a_p_l.kind); - if(caml_string_notequal(cons,cst_AccessionPropriete)) - {if(caml_string_notequal(cons,cst_Location$0)) - {if(caml_string_notequal(cons,cst_LogementFoyer$0)) - {var _aeQ_=caml_call2(Stdlib_Printf[4],_abt_,cons); - return caml_call1(Stdlib[2],_aeQ_)} - return [2,logement_foyer_of_jsoo(categorie_calcul_a_p_l.payload)]} - return [0,location_of_jsoo(categorie_calcul_a_p_l.payload)]} - return [1,proprietaire_of_jsoo(categorie_calcul_a_p_l.payload)]} - function mode_occupation_to_jsoo(param) - {switch(param[0]) - {case 0: - var arg=param[1],t584=location_to_jsoo(arg); - return {"kind":"Locataire","payload":t584}; - case 1: - var arg$0=param[1],t586=logement_foyer_to_jsoo(arg$0); - return {"kind":"ResidentLogementFoyer","payload":t586}; - case 2: - var arg$1=param[1],t588=proprietaire_to_jsoo(arg$1); - return {"kind":"AccessionProprieteLocalUsageExclusifHabitation", - "payload":t588}; - case 3: - var arg$2=param[1],t590=location_to_jsoo(arg$2); - return {"kind":"SousLocataire","payload":t590}; - default: - var arg$3=param[1],t592=proprietaire_to_jsoo(arg$3); - return {"kind":"LocationAccession","payload":t592}}} - function mode_occupation_of_jsoo(mode_occupation) - {var cons=caml_string_of_jsstring(mode_occupation.kind); - if(caml_string_notequal(cons,cst_AccessionProprieteLocalUsa)) - {if(caml_string_notequal(cons,cst_Locataire$0)) - {if(caml_string_notequal(cons,cst_LocationAccession$0)) - {if(caml_string_notequal(cons,cst_ResidentLogementFoyer)) - {if(caml_string_notequal(cons,cst_SousLocataire$0)) - {var _aeP_=caml_call2(Stdlib_Printf[4],_abu_,cons); - return caml_call1(Stdlib[2],_aeP_)} - return [3,location_of_jsoo(mode_occupation.payload)]} - return [1,logement_foyer_of_jsoo(mode_occupation.payload)]} - return [4,proprietaire_of_jsoo(mode_occupation.payload)]} - return [0,location_of_jsoo(mode_occupation.payload)]} - return [2,proprietaire_of_jsoo(mode_occupation.payload)]} - function eligibilite_aides_personnelle_$0(eligibilite_aides_personnelle_) - {function t603(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var _aeO_=personne_a_charge_of_jsoo(function_input0); - return ! - ! - caml_call1(eligibilite_aides_personnelle_[5],_aeO_)})} - var _aeM_=eligibilite_aides_personnelle_[4]; - function _aeN_(x){return caml_call1(Runtime_ocaml_Runtime[43],x)} - var - t602=caml_js_from_array(caml_call2(Stdlib_Array[15],_aeN_,_aeM_)), - t601= - caml_call1 - (Runtime_ocaml_Runtime[48],eligibilite_aides_personnelle_[3]), - t600=! ! eligibilite_aides_personnelle_[2], - t599= - caml_call1(Runtime_jsoo_Runtime[5],eligibilite_aides_personnelle_[1]); - return {"dateCourante":t599, - "eligibilite":t600, - "nombrePersonnesAChargePrisesEnCompte":t601, - "coefficentsEnfantsGardeAlterneePrisEnCompte":t602, - "condition2R8234":caml_js_wrap_meth_callback(t603)}} - function eligibilite_aides_personnelle_$1(eligibilite_aides_personnelle_) - {var - _aeG_=caml_call1(Stdlib[2],cst_The_function_condition_2_r), - _aeH_= - caml_js_to_array - (eligibilite_aides_personnelle_.coefficentsEnfantsGardeAlterneePrisEnCompte); - function _aeI_(x){return caml_call1(Runtime_ocaml_Runtime[42],x)} - var - _aeJ_=caml_call1(caml_call1(Stdlib_Array[15],_aeI_),_aeH_), - _aeK_= - caml_call1 - (Runtime_ocaml_Runtime[49], - eligibilite_aides_personnelle_.nombrePersonnesAChargePrisesEnCompte), - _aeL_=eligibilite_aides_personnelle_.eligibilite | 0; - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - eligibilite_aides_personnelle_.dateCourante), - _aeL_, - _aeK_, - _aeJ_, - _aeG_]} - function logement_to_jsoo(logement) - {var - t616=zone_d_habitation_to_jsoo(logement[9]), - t615=caml_call1(Runtime_ocaml_Runtime[48],logement[8]), - t614=! ! logement[7], - t613=parent_ou_autre_to_jsoo(logement[6]), - t612=loue_ou_sous_loue_a_des_tiers_(logement[5]), - t611=parent_ou_autre_to_jsoo(logement[4]), - t610=mode_occupation_to_jsoo(logement[3]), - t609=! ! logement[2], - t608=! ! logement[1]; - return {"residencePrincipale":t608, - "estEhpadOuMaisonAutonomieL31312Asf":t609, - "modeOccupation":t610, - "proprietaire":t611, - "loueOuSousLoueADesTiers":t612, - "usufruit":t613, - "logementDecentL89462":t614, - "surfaceMCarres":t615, - "zone":t616}} - function logement_of_jsoo(logement) - {var - _aez_=zone_d_habitation_of_jsoo(logement.zone), - _aeA_=caml_call1(Runtime_ocaml_Runtime[49],logement.surfaceMCarres), - _aeB_=logement.logementDecentL89462 | 0, - _aeC_=parent_ou_autre_of_jsoo(logement.usufruit), - _aeD_= - loue_ou_sous_loue_a_des_tiers_$0(logement.loueOuSousLoueADesTiers), - _aeE_=parent_ou_autre_of_jsoo(logement.proprietaire), - _aeF_=mode_occupation_of_jsoo(logement.modeOccupation); - return [0, - logement.residencePrincipale | 0, - logement.estEhpadOuMaisonAutonomieL31312Asf | 0, - _aeF_, - _aeE_, - _aeD_, - _aeC_, - _aeB_, - _aeA_, - _aez_]} - function menage_to_jsoo(menage) - {var - t634=collectivite_to_jsoo$0(menage[9]), - t633=! ! menage[8], - t632=! ! menage[7], - t631=! ! menage[6], - t630=situation_familiale_to_jsoo(menage[5]), - t629=caml_call1(Runtime_ocaml_Runtime[48],menage[4]), - _aev_=menage[3]; - function _aew_(x){return personne_a_charge_to_jsoo(x)} - var - t628=caml_js_from_array(caml_call2(Stdlib_Array[15],_aew_,_aev_)), - t627=logement_to_jsoo(menage[2]), - _aex_=menage[1]; - function _aey_(x){return prestation_recue_to_jsoo(x)} - var t626=caml_js_from_array(caml_call2(Stdlib_Array[15],_aey_,_aex_)); - return {"prestationsRecues":t626, - "logement":t627, - "personnesACharge":t628, - "nombreAutresOccupantsLogement":t629, - "situationFamiliale":t630, - "conditionRattacheFoyerFiscalParentIfi":t631, - "enfantANaitreApresQuatriemeMoisGrossesse":t632, - "personnesAgeesHandicapeesFoyerR8444":t633, - "residence":t634}} - function menage_of_jsoo(menage) - {var - _aej_=collectivite_of_jsoo$0(menage.residence), - _aek_=menage.personnesAgeesHandicapeesFoyerR8444 | 0, - _ael_=menage.enfantANaitreApresQuatriemeMoisGrossesse | 0, - _aem_=menage.conditionRattacheFoyerFiscalParentIfi | 0, - _aen_=situation_familiale_of_jsoo(menage.situationFamiliale), - _aeo_= - caml_call1 - (Runtime_ocaml_Runtime[49],menage.nombreAutresOccupantsLogement), - _aep_=caml_js_to_array(menage.personnesACharge); - function _aeq_(x){return personne_a_charge_of_jsoo(x)} - var - _aer_=caml_call1(caml_call1(Stdlib_Array[15],_aeq_),_aep_), - _aes_=logement_of_jsoo(menage.logement), - _aet_=caml_js_to_array(menage.prestationsRecues); - function _aeu_(x){return prestation_recue_of_jsoo(x)} - return [0, - caml_call1(caml_call1(Stdlib_Array[15],_aeu_),_aet_), - _aes_, - _aer_, - _aeo_, - _aen_, - _aem_, - _ael_, - _aek_, - _aej_]} - function eligibilite_aides_personnelle_$2(eligibilite_aides_personnelle_) - {function t649(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _aei_= - caml_call1 - (eligibilite_aides_personnelle_[6],function_input0); - return caml_call1(Runtime_jsoo_Runtime[5],_aei_)})} - function t648(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {return ! - ! - caml_call1 - (eligibilite_aides_personnelle_[5],function_input0)})} - function t647(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {return ! - ! - caml_call1 - (eligibilite_aides_personnelle_[4],function_input0)})} - var - t646= - caml_call1(Runtime_jsoo_Runtime[5],eligibilite_aides_personnelle_[3]), - t645=demandeur_to_jsoo(eligibilite_aides_personnelle_[2]), - t644=menage_to_jsoo(eligibilite_aides_personnelle_[1]); - return {"menageIn":t644, - "demandeurIn":t645, - "dateCouranteIn":t646, - "conditionLogementResidencePrincipaleIn": - caml_js_wrap_meth_callback(t647), - "conditionLogementSurfaceIn":caml_js_wrap_meth_callback(t648), - "dateEntreeVigueurDiffereeCchIn": - caml_js_wrap_meth_callback(t649)}} - function eligibilite_aides_personnelle_$3(eligibilite_aides_personnelle_) - {var - _aed_=caml_call1(Stdlib[2],cst_The_function_date_entree_v), - _aee_=caml_call1(Stdlib[2],cst_The_function_condition_log), - _aef_=caml_call1(Stdlib[2],cst_The_function_condition_log$0), - _aeg_= - caml_call1 - (Runtime_jsoo_Runtime[4], - eligibilite_aides_personnelle_.dateCouranteIn), - _aeh_=demandeur_of_jsoo(eligibilite_aides_personnelle_.demandeurIn); - return [0, - menage_of_jsoo(eligibilite_aides_personnelle_.menageIn), - _aeh_, - _aeg_, - _aef_, - _aee_, - _aed_]} - function eligibilite_aide_personnalisee$2(eligibilite_aide_personnalisee) - {var - t655= - caml_call1(Runtime_jsoo_Runtime[5],eligibilite_aide_personnalisee[3]), - t654=demandeur_to_jsoo(eligibilite_aide_personnalisee[2]), - t653=menage_to_jsoo(eligibilite_aide_personnalisee[1]); - return {"menageIn":t653,"demandeurIn":t654,"dateCouranteIn":t655}} - function eligibilite_aide_personnalisee$3(eligibilite_aide_personnalisee) - {var - _aeb_= - caml_call1 - (Runtime_jsoo_Runtime[4], - eligibilite_aide_personnalisee.dateCouranteIn), - _aec_=demandeur_of_jsoo(eligibilite_aide_personnalisee.demandeurIn); - return [0, - menage_of_jsoo(eligibilite_aide_personnalisee.menageIn), - _aec_, - _aeb_]} - function eligibilite_allocation_logemen$2(eligibilite_allocation_logemen) - {var - t662=! ! eligibilite_allocation_logemen[4], - t661=demandeur_to_jsoo(eligibilite_allocation_logemen[3]), - t660=menage_to_jsoo(eligibilite_allocation_logemen[2]), - t659= - caml_call1(Runtime_jsoo_Runtime[5],eligibilite_allocation_logemen[1]); - return {"dateCouranteIn":t659, - "menageIn":t660, - "demandeurIn":t661, - "beneficieAidePersonnaliseeLogementIn":t662}} - function eligibilite_allocation_logemen$3(eligibilite_allocation_logemen) - {var - _ad__= - eligibilite_allocation_logemen.beneficieAidePersonnaliseeLogementIn - | - 0, - _ad$_=demandeur_of_jsoo(eligibilite_allocation_logemen.demandeurIn), - _aea_=menage_of_jsoo(eligibilite_allocation_logemen.menageIn); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - eligibilite_allocation_logemen.dateCouranteIn), - _aea_, - _ad$_, - _ad__]} - function eligibilite_prime_de_demenagem$2(eligibilite_prime_de_demenagem) - {var - t672= - caml_call1 - (Runtime_ocaml_Runtime[35],eligibilite_prime_de_demenagem[6]), - t671= - caml_call1(Runtime_jsoo_Runtime[5],eligibilite_prime_de_demenagem[5]), - t670=demandeur_to_jsoo(eligibilite_prime_de_demenagem[4]), - t669=menage_to_jsoo(eligibilite_prime_de_demenagem[3]), - t668= - caml_call1(Runtime_jsoo_Runtime[5],eligibilite_prime_de_demenagem[2]), - t667=informations_prime_de_demenage(eligibilite_prime_de_demenagem[1]); - return {"informationsIn":t667, - "dateEmmenagementIn":t668, - "menageIn":t669, - "demandeurIn":t670, - "dateCouranteIn":t671, - "depensesJustifieesReellementEngageesIn":t672}} - function eligibilite_prime_de_demenagem$3(eligibilite_prime_de_demenagem) - {var - _ad4_= - caml_call1 - (Runtime_ocaml_Runtime[42], - eligibilite_prime_de_demenagem.depensesJustifieesReellementEngageesIn), - _ad5_=caml_call1(Runtime_ocaml_Runtime[33],_ad4_), - _ad6_= - caml_call1 - (Runtime_jsoo_Runtime[4], - eligibilite_prime_de_demenagem.dateCouranteIn), - _ad7_=demandeur_of_jsoo(eligibilite_prime_de_demenagem.demandeurIn), - _ad8_=menage_of_jsoo(eligibilite_prime_de_demenagem.menageIn), - _ad9_= - caml_call1 - (Runtime_jsoo_Runtime[4], - eligibilite_prime_de_demenagem.dateEmmenagementIn); - return [0, - informations_prime_de_demenage$0 - (eligibilite_prime_de_demenagem.informationsIn), - _ad9_, - _ad8_, - _ad7_, - _ad6_, - _ad5_]} - function ressources_aides_personnelle_l$2(ressources_aides_personnelle_l) - {var - t691= - caml_call1 - (Runtime_ocaml_Runtime[35],ressources_aides_personnelle_l[13]), - t690=paiement_logement_distinct_pro(ressources_aides_personnelle_l[12]), - t689= - caml_call1(Runtime_jsoo_Runtime[5],ressources_aides_personnelle_l[11]), - t688=! ! ressources_aides_personnelle_l[10], - t687=! ! ressources_aides_personnelle_l[9], - t686=mode_occupation_to_jsoo(ressources_aides_personnelle_l[8]), - t685=situation_familiale_to_jsoo(ressources_aides_personnelle_l[7]), - _ad0_=ressources_aides_personnelle_l[6]; - function _ad1_(x){return personne_a_charge_to_jsoo(x)} - var - t684=caml_js_from_array(caml_call2(Stdlib_Array[15],_ad1_,_ad0_)), - t683=! ! ressources_aides_personnelle_l[5], - t682=! ! ressources_aides_personnelle_l[4], - _ad2_=ressources_aides_personnelle_l[3]; - function _ad3_(x){return personne_vivant_habituellement(x)} - var - t681=caml_js_from_array(caml_call2(Stdlib_Array[15],_ad3_,_ad2_)), - t680= - caml_call1 - (Runtime_ocaml_Runtime[35],ressources_aides_personnelle_l[2]), - t679= - caml_call1 - (Runtime_ocaml_Runtime[35],ressources_aides_personnelle_l[1]); - return {"ressourcesDemandeurIn":t679, - "ressourcesConjointIn":t680, - "personnesVivantHabituellementFoyerIn":t681, - "demandeurExerceActiviteRemunereeIn":t682, - "conjointExerceActiviteRemunereeIn":t683, - "personnesAChargeIn":t684, - "situationFamilialeIn":t685, - "modeOccupationIn":t686, - "conditionAgeBourseEnseignementSuperieurIn":t687, - "demandeurPoursuitDesEtudesIn":t688, - "dateDemandeOuReexamenDroitIn":t689, - "paiementLogementDistinctProfessionnelIn":t690, - "ressourcesMenageArrondiesBaseIn":t691}} - function ressources_aides_personnelle_l$3(ressources_aides_personnelle_l) - {var - _adH_= - caml_call1 - (Runtime_ocaml_Runtime[42], - ressources_aides_personnelle_l.ressourcesMenageArrondiesBaseIn), - _adI_=caml_call1(Runtime_ocaml_Runtime[33],_adH_), - _adJ_= - paiement_logement_distinct_pro$0 - (ressources_aides_personnelle_l.paiementLogementDistinctProfessionnelIn), - _adK_= - caml_call1 - (Runtime_jsoo_Runtime[4], - ressources_aides_personnelle_l.dateDemandeOuReexamenDroitIn), - _adL_=ressources_aides_personnelle_l.demandeurPoursuitDesEtudesIn | 0, - _adM_= - ressources_aides_personnelle_l.conditionAgeBourseEnseignementSuperieurIn - | - 0, - _adN_= - mode_occupation_of_jsoo - (ressources_aides_personnelle_l.modeOccupationIn), - _adO_= - situation_familiale_of_jsoo - (ressources_aides_personnelle_l.situationFamilialeIn), - _adP_= - caml_js_to_array(ressources_aides_personnelle_l.personnesAChargeIn); - function _adQ_(x){return personne_a_charge_of_jsoo(x)} - var - _adR_=caml_call1(caml_call1(Stdlib_Array[15],_adQ_),_adP_), - _adS_= - ressources_aides_personnelle_l.conjointExerceActiviteRemunereeIn - | - 0, - _adT_= - ressources_aides_personnelle_l.demandeurExerceActiviteRemunereeIn - | - 0, - _adU_= - caml_js_to_array - (ressources_aides_personnelle_l.personnesVivantHabituellementFoyerIn); - function _adV_(x){return personne_vivant_habituellement$0(x)} - var - _adW_=caml_call1(caml_call1(Stdlib_Array[15],_adV_),_adU_), - _adX_= - caml_call1 - (Runtime_ocaml_Runtime[42], - ressources_aides_personnelle_l.ressourcesConjointIn), - _adY_=caml_call1(Runtime_ocaml_Runtime[33],_adX_), - _adZ_= - caml_call1 - (Runtime_ocaml_Runtime[42], - ressources_aides_personnelle_l.ressourcesDemandeurIn); - return [0, - caml_call1(Runtime_ocaml_Runtime[33],_adZ_), - _adY_, - _adW_, - _adT_, - _adS_, - _adR_, - _adO_, - _adN_, - _adM_, - _adL_, - _adK_, - _adJ_, - _adI_]} - function contributions_sociales_aides_p$2(contributions_sociales_aides_p) - {var - t705= - caml_call1(Runtime_jsoo_Runtime[5],contributions_sociales_aides_p[1]); - return {"dateCouranteIn":t705}} - function contributions_sociales_aides_p$3(contributions_sociales_aides_p) - {return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - contributions_sociales_aides_p.dateCouranteIn)]} - function calcul_aide_personnalisee_loge$11(calcul_aide_personnalisee_loge) - {var - t720=collectivite_to_jsoo$0(calcul_aide_personnalisee_loge[14]), - t719=! ! calcul_aide_personnalisee_loge[13], - t718= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[12]), - t717=! ! calcul_aide_personnalisee_loge[11], - t716=type_aides_personnelle_logemen(calcul_aide_personnalisee_loge[10]), - t715=! ! calcul_aide_personnalisee_loge[9], - t714=! ! calcul_aide_personnalisee_loge[8], - t713=zone_d_habitation_to_jsoo(calcul_aide_personnalisee_loge[7]), - t712=situation_familiale_calcul_a_p(calcul_aide_personnalisee_loge[6]), - t711= - caml_call1 - (Runtime_ocaml_Runtime[48],calcul_aide_personnalisee_loge[5]), - t710= - caml_call1(Runtime_jsoo_Runtime[5],calcul_aide_personnalisee_loge[4]), - t709=! ! calcul_aide_personnalisee_loge[3], - t708= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[2]), - t707= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[1]); - return {"loyerPrincipalBaseIn":t707, - "ressourcesMenageArrondiesIn":t708, - "beneficiaireAideAdulteOuEnfantHandicapesIn":t709, - "dateCouranteIn":t710, - "nombrePersonnesAChargeIn":t711, - "situationFamilialeCalculAplIn":t712, - "zoneIn":t713, - "logementEstChambreIn":t714, - "ageesOuHandicapAdultesHebergeesOnereuxParticuliersIn":t715, - "typeAideIn":t716, - "colocationIn":t717, - "reductionLoyerSolidariteIn":t718, - "logementMeubleD8422In":t719, - "residenceIn":t720}} - function calcul_aide_personnalisee_loge$12(calcul_aide_personnalisee_loge) - {var - _adr_= - collectivite_of_jsoo$0(calcul_aide_personnalisee_loge.residenceIn), - _ads_=calcul_aide_personnalisee_loge.logementMeubleD8422In | 0, - _adt_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.reductionLoyerSolidariteIn), - _adu_=caml_call1(Runtime_ocaml_Runtime[33],_adt_), - _adv_=calcul_aide_personnalisee_loge.colocationIn | 0, - _adw_= - type_aides_personnelle_logemen$0 - (calcul_aide_personnalisee_loge.typeAideIn), - _adx_= - calcul_aide_personnalisee_loge.ageesOuHandicapAdultesHebergeesOnereuxParticuliersIn - | - 0, - _ady_=calcul_aide_personnalisee_loge.logementEstChambreIn | 0, - _adz_=zone_d_habitation_of_jsoo(calcul_aide_personnalisee_loge.zoneIn), - _adA_= - situation_familiale_calcul_a_p$0 - (calcul_aide_personnalisee_loge.situationFamilialeCalculAplIn), - _adB_= - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_aide_personnalisee_loge.nombrePersonnesAChargeIn), - _adC_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_aide_personnalisee_loge.dateCouranteIn), - _adD_= - calcul_aide_personnalisee_loge.beneficiaireAideAdulteOuEnfantHandicapesIn - | - 0, - _adE_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.ressourcesMenageArrondiesIn), - _adF_=caml_call1(Runtime_ocaml_Runtime[33],_adE_), - _adG_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.loyerPrincipalBaseIn); - return [0, - caml_call1(Runtime_ocaml_Runtime[33],_adG_), - _adF_, - _adD_, - _adC_, - _adB_, - _adA_, - _adz_, - _ady_, - _adx_, - _adw_, - _adv_, - _adu_, - _ads_, - _adr_]} - function calcul_equivalence_loyer_minim$2(calcul_equivalence_loyer_minim) - {var - t738= - caml_call1 - (Runtime_ocaml_Runtime[43],calcul_equivalence_loyer_minim[4]), - t737=! ! calcul_equivalence_loyer_minim[3], - t736= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_equivalence_loyer_minim[2]), - t735= - caml_call1(Runtime_jsoo_Runtime[5],calcul_equivalence_loyer_minim[1]); - return {"dateCouranteIn":t735, - "ressourcesMenageArrondiesIn":t736, - "condition2Du83225In":t737, - "nNombrePartsD83225In":t738}} - function calcul_equivalence_loyer_minim$3(calcul_equivalence_loyer_minim) - {var - _adn_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_equivalence_loyer_minim.nNombrePartsD83225In), - _ado_=calcul_equivalence_loyer_minim.condition2Du83225In | 0, - _adp_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_equivalence_loyer_minim.ressourcesMenageArrondiesIn), - _adq_=caml_call1(Runtime_ocaml_Runtime[33],_adp_); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_equivalence_loyer_minim.dateCouranteIn), - _adq_, - _ado_, - _adn_]} - function calcul_nombre_part_logement_fo$2(calcul_nombre_part_logement_fo) - {function t747(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {return ! - ! - caml_call1 - (calcul_nombre_part_logement_fo[5],function_input0)})} - var - t746=collectivite_to_jsoo$0(calcul_nombre_part_logement_fo[4]), - t745=situation_familiale_calcul_a_p(calcul_nombre_part_logement_fo[3]), - t744= - caml_call1 - (Runtime_ocaml_Runtime[48],calcul_nombre_part_logement_fo[2]), - t743=! ! calcul_nombre_part_logement_fo[1]; - return {"condition2Du83225In":t743, - "nombrePersonnesAChargeIn":t744, - "situationFamilialeCalculAplIn":t745, - "residenceIn":t746, - "limitationMajorationPersonnesAChargeIn": - caml_js_wrap_meth_callback(t747)}} - function calcul_nombre_part_logement_fo$3(calcul_nombre_part_logement_fo) - {var - _adj_=caml_call1(Stdlib[2],cst_The_function_limitation_ma), - _adk_= - collectivite_of_jsoo$0(calcul_nombre_part_logement_fo.residenceIn), - _adl_= - situation_familiale_calcul_a_p$0 - (calcul_nombre_part_logement_fo.situationFamilialeCalculAplIn), - _adm_= - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_nombre_part_logement_fo.nombrePersonnesAChargeIn); - return [0, - calcul_nombre_part_logement_fo.condition2Du83225In | 0, - _adm_, - _adl_, - _adk_, - _adj_]} - function calcul_aide_personnalisee_loge$13(calcul_aide_personnalisee_loge) - {function t763(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _adi_= - caml_call1 - (calcul_aide_personnalisee_loge[12],function_input0); - return caml_call1(Runtime_ocaml_Runtime[43],_adi_)})} - function t762(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {return ! - ! - caml_call1 - (calcul_aide_personnalisee_loge[11],function_input0)})} - function t761(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {return ! - ! - caml_call1 - (calcul_aide_personnalisee_loge[10],function_input0)})} - var - t760=collectivite_to_jsoo$0(calcul_aide_personnalisee_loge[9]), - t759= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[8]), - t758= - caml_call1(Runtime_jsoo_Runtime[5],calcul_aide_personnalisee_loge[7]), - t757=zone_d_habitation_to_jsoo(calcul_aide_personnalisee_loge[6]), - t756=situation_familiale_calcul_a_p(calcul_aide_personnalisee_loge[5]), - t755= - caml_call1 - (Runtime_ocaml_Runtime[48],calcul_aide_personnalisee_loge[4]), - t754= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[3]), - t753= - caml_call1(Runtime_jsoo_Runtime[5],calcul_aide_personnalisee_loge[2]), - t752=type_logement_foyer_to_jsoo(calcul_aide_personnalisee_loge[1]); - return {"typeLogementFoyerIn":t752, - "dateConventionnementIn":t753, - "ressourcesMenageArrondiesIn":t754, - "nombrePersonnesAChargeIn":t755, - "situationFamilialeCalculAplIn":t756, - "zoneIn":t757, - "dateCouranteIn":t758, - "redevanceIn":t759, - "residenceIn":t760, - "condition2Du83225In":caml_js_wrap_meth_callback(t761), - "limitationMajorationPersonnesAChargeIn": - caml_js_wrap_meth_callback(t762), - "nNombrePartsD83225In":caml_js_wrap_meth_callback(t763)}} - function calcul_aide_personnalisee_loge$14(calcul_aide_personnalisee_loge) - {var - _ac7_=caml_call1(Stdlib[2],cst_The_function_n_nombre_part), - _ac8_=caml_call1(Stdlib[2],cst_The_function_limitation_ma$0), - _ac9_=caml_call1(Stdlib[2],cst_The_function_condition_2_d), - _ac__= - collectivite_of_jsoo$0(calcul_aide_personnalisee_loge.residenceIn), - _ac$_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.redevanceIn), - _ada_=caml_call1(Runtime_ocaml_Runtime[33],_ac$_), - _adb_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_aide_personnalisee_loge.dateCouranteIn), - _adc_=zone_d_habitation_of_jsoo(calcul_aide_personnalisee_loge.zoneIn), - _add_= - situation_familiale_calcul_a_p$0 - (calcul_aide_personnalisee_loge.situationFamilialeCalculAplIn), - _ade_= - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_aide_personnalisee_loge.nombrePersonnesAChargeIn), - _adf_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.ressourcesMenageArrondiesIn), - _adg_=caml_call1(Runtime_ocaml_Runtime[33],_adf_), - _adh_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_aide_personnalisee_loge.dateConventionnementIn); - return [0, - type_logement_foyer_of_jsoo - (calcul_aide_personnalisee_loge.typeLogementFoyerIn), - _adh_, - _adg_, - _ade_, - _add_, - _adc_, - _adb_, - _ada_, - _ac__, - _ac9_, - _ac8_, - _ac7_]} - function calcul_nombre_parts_accession_$2(calcul_nombre_parts_accession_) - {var - t774=situation_familiale_calcul_a_p(calcul_nombre_parts_accession_[2]), - t773= - caml_call1 - (Runtime_ocaml_Runtime[48],calcul_nombre_parts_accession_[1]); - return {"nombrePersonnesAChargeIn":t773, - "situationFamilialeCalculAplIn":t774}} - function calcul_nombre_parts_accession_$3(calcul_nombre_parts_accession_) - {var - _ac6_= - situation_familiale_calcul_a_p$0 - (calcul_nombre_parts_accession_.situationFamilialeCalculAplIn); - return [0, - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_nombre_parts_accession_.nombrePersonnesAChargeIn), - _ac6_]} - function calcul_aide_personnalisee_loge$15(calcul_aide_personnalisee_loge) - {var - t790= - caml_call1(Runtime_jsoo_Runtime[5],calcul_aide_personnalisee_loge[14]), - t789=neuf_ou_ancien_to_jsoo(calcul_aide_personnalisee_loge[13]), - t788=type_pret_to_jsoo(calcul_aide_personnalisee_loge[12]), - t787=zone_d_habitation_to_jsoo(calcul_aide_personnalisee_loge[11]), - t786=! ! calcul_aide_personnalisee_loge[10], - t785=! ! calcul_aide_personnalisee_loge[9], - t784= - caml_call1(Runtime_jsoo_Runtime[5],calcul_aide_personnalisee_loge[8]), - t783=! ! calcul_aide_personnalisee_loge[7], - t782= - caml_call1(Runtime_jsoo_Runtime[5],calcul_aide_personnalisee_loge[6]), - t781=type_travaux_logement_d832_15_(calcul_aide_personnalisee_loge[5]), - t780=situation_familiale_calcul_a_p(calcul_aide_personnalisee_loge[4]), - t779= - caml_call1 - (Runtime_ocaml_Runtime[48],calcul_aide_personnalisee_loge[3]), - t778= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[2]), - t777= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[1]); - return {"mensualitePrincipaleIn":t777, - "ressourcesMenageArrondiesIn":t778, - "nombrePersonnesAChargeIn":t779, - "situationFamilialeCalculAplIn":t780, - "typeTravauxLogementIn":t781, - "dateSignaturePretIn":t782, - "localHabitePremiereFoisBeneficiaireIn":t783, - "dateEntreeLogementIn":t784, - "coproprieteIn":t785, - "situationR822111317In":t786, - "zoneIn":t787, - "typePretIn":t788, - "ancienneteLogementIn":t789, - "dateCouranteIn":t790}} - function calcul_aide_personnalisee_loge$16(calcul_aide_personnalisee_loge) - {var - _acR_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_aide_personnalisee_loge.dateCouranteIn), - _acS_= - neuf_ou_ancien_of_jsoo - (calcul_aide_personnalisee_loge.ancienneteLogementIn), - _acT_=type_pret_of_jsoo(calcul_aide_personnalisee_loge.typePretIn), - _acU_=zone_d_habitation_of_jsoo(calcul_aide_personnalisee_loge.zoneIn), - _acV_=calcul_aide_personnalisee_loge.situationR822111317In | 0, - _acW_=calcul_aide_personnalisee_loge.coproprieteIn | 0, - _acX_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_aide_personnalisee_loge.dateEntreeLogementIn), - _acY_= - calcul_aide_personnalisee_loge.localHabitePremiereFoisBeneficiaireIn - | - 0, - _acZ_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_aide_personnalisee_loge.dateSignaturePretIn), - _ac0_= - type_travaux_logement_d832_15_$0 - (calcul_aide_personnalisee_loge.typeTravauxLogementIn), - _ac1_= - situation_familiale_calcul_a_p$0 - (calcul_aide_personnalisee_loge.situationFamilialeCalculAplIn), - _ac2_= - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_aide_personnalisee_loge.nombrePersonnesAChargeIn), - _ac3_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.ressourcesMenageArrondiesIn), - _ac4_=caml_call1(Runtime_ocaml_Runtime[33],_ac3_), - _ac5_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.mensualitePrincipaleIn); - return [0, - caml_call1(Runtime_ocaml_Runtime[33],_ac5_), - _ac4_, - _ac2_, - _ac1_, - _ac0_, - _acZ_, - _acY_, - _acX_, - _acW_, - _acV_, - _acU_, - _acT_, - _acS_, - _acR_]} - function calcul_aide_personnalisee_loge$17(calcul_aide_personnalisee_loge) - {var - t812=collectivite_to_jsoo$0(calcul_aide_personnalisee_loge[8]), - t811= - caml_call1(Runtime_jsoo_Runtime[5],calcul_aide_personnalisee_loge[7]), - t810=zone_d_habitation_to_jsoo(calcul_aide_personnalisee_loge[6]), - t809= - caml_call1 - (Runtime_ocaml_Runtime[48],calcul_aide_personnalisee_loge[5]), - t808=situation_familiale_to_jsoo(calcul_aide_personnalisee_loge[4]), - t807= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[3]), - t806=type_aides_personnelle_logemen(calcul_aide_personnalisee_loge[2]), - t805=mode_occupation_to_jsoo(calcul_aide_personnalisee_loge[1]); - return {"modeOccupationIn":t805, - "typeAideIn":t806, - "ressourcesMenageSansArrondiIn":t807, - "situationFamilialeIn":t808, - "nombrePersonnesAChargeIn":t809, - "zoneIn":t810, - "dateCouranteIn":t811, - "residenceIn":t812}} - function calcul_aide_personnalisee_loge$18(calcul_aide_personnalisee_loge) - {var - _acJ_= - collectivite_of_jsoo$0(calcul_aide_personnalisee_loge.residenceIn), - _acK_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_aide_personnalisee_loge.dateCouranteIn), - _acL_=zone_d_habitation_of_jsoo(calcul_aide_personnalisee_loge.zoneIn), - _acM_= - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_aide_personnalisee_loge.nombrePersonnesAChargeIn), - _acN_= - situation_familiale_of_jsoo - (calcul_aide_personnalisee_loge.situationFamilialeIn), - _acO_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.ressourcesMenageSansArrondiIn), - _acP_=caml_call1(Runtime_ocaml_Runtime[33],_acO_), - _acQ_= - type_aides_personnelle_logemen$0 - (calcul_aide_personnalisee_loge.typeAideIn); - return [0, - mode_occupation_of_jsoo - (calcul_aide_personnalisee_loge.modeOccupationIn), - _acQ_, - _acP_, - _acN_, - _acM_, - _acL_, - _acK_, - _acJ_]} - function calcul_allocation_logement_loc$2(calcul_allocation_logement_loc) - {var - t835=changement_logement_d842_4_to_(calcul_allocation_logement_loc[15]), - t834=collectivite_to_jsoo$0(calcul_allocation_logement_loc[14]), - t833=! ! calcul_allocation_logement_loc[13], - t832= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_loc[12]), - t831=! ! calcul_allocation_logement_loc[11], - t830=type_aides_personnelle_logemen(calcul_allocation_logement_loc[10]), - t829=! ! calcul_allocation_logement_loc[9], - t828=! ! calcul_allocation_logement_loc[8], - t827=zone_d_habitation_to_jsoo(calcul_allocation_logement_loc[7]), - t826=situation_familiale_calcul_a_p(calcul_allocation_logement_loc[6]), - t825= - caml_call1 - (Runtime_ocaml_Runtime[48],calcul_allocation_logement_loc[5]), - t824= - caml_call1(Runtime_jsoo_Runtime[5],calcul_allocation_logement_loc[4]), - t823=! ! calcul_allocation_logement_loc[3], - t822= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_loc[2]), - t821= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_loc[1]); - return {"loyerPrincipalIn":t821, - "ressourcesMenageArrondiesIn":t822, - "beneficiaireAideAdulteOuEnfantHandicapesIn":t823, - "dateCouranteIn":t824, - "nombrePersonnesAChargeIn":t825, - "situationFamilialeCalculAplIn":t826, - "zoneIn":t827, - "logementEstChambreIn":t828, - "ageesOuHandicapAdultesHebergeesOnereuxParticuliersIn":t829, - "typeAideIn":t830, - "colocationIn":t831, - "reductionLoyerSolidariteIn":t832, - "logementMeubleD8422In":t833, - "residenceIn":t834, - "changementLogementD8424In":t835}} - function calcul_allocation_logement_loc$3(calcul_allocation_logement_loc) - {var - _acs_= - changement_logement_d842_4_of_ - (calcul_allocation_logement_loc.changementLogementD8424In), - _act_= - collectivite_of_jsoo$0(calcul_allocation_logement_loc.residenceIn), - _acu_=calcul_allocation_logement_loc.logementMeubleD8422In | 0, - _acv_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_loc.reductionLoyerSolidariteIn), - _acw_=caml_call1(Runtime_ocaml_Runtime[33],_acv_), - _acx_=calcul_allocation_logement_loc.colocationIn | 0, - _acy_= - type_aides_personnelle_logemen$0 - (calcul_allocation_logement_loc.typeAideIn), - _acz_= - calcul_allocation_logement_loc.ageesOuHandicapAdultesHebergeesOnereuxParticuliersIn - | - 0, - _acA_=calcul_allocation_logement_loc.logementEstChambreIn | 0, - _acB_=zone_d_habitation_of_jsoo(calcul_allocation_logement_loc.zoneIn), - _acC_= - situation_familiale_calcul_a_p$0 - (calcul_allocation_logement_loc.situationFamilialeCalculAplIn), - _acD_= - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_allocation_logement_loc.nombrePersonnesAChargeIn), - _acE_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_allocation_logement_loc.dateCouranteIn), - _acF_= - calcul_allocation_logement_loc.beneficiaireAideAdulteOuEnfantHandicapesIn - | - 0, - _acG_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_loc.ressourcesMenageArrondiesIn), - _acH_=caml_call1(Runtime_ocaml_Runtime[33],_acG_), - _acI_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_loc.loyerPrincipalIn); - return [0, - caml_call1(Runtime_ocaml_Runtime[33],_acI_), - _acH_, - _acF_, - _acE_, - _acD_, - _acC_, - _acB_, - _acA_, - _acz_, - _acy_, - _acx_, - _acw_, - _acu_, - _act_, - _acs_]} - function calcul_allocation_logement_acc$2(calcul_allocation_logement_acc) - {var - t865=! ! calcul_allocation_logement_acc[15], - t864=! ! calcul_allocation_logement_acc[14], - t863= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_acc[13]), - t862= - caml_call1(Runtime_jsoo_Runtime[5],calcul_allocation_logement_acc[12]), - t861=! ! calcul_allocation_logement_acc[11], - t860=type_travaux_logement_r842_5_t(calcul_allocation_logement_acc[10]), - t859= - caml_call1(Runtime_jsoo_Runtime[5],calcul_allocation_logement_acc[9]), - t858=! ! calcul_allocation_logement_acc[8], - t857= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_acc[7]), - t856= - caml_call1(Runtime_jsoo_Runtime[5],calcul_allocation_logement_acc[6]), - t855=collectivite_to_jsoo$0(calcul_allocation_logement_acc[5]), - t854=zone_d_habitation_to_jsoo(calcul_allocation_logement_acc[4]), - t853=situation_familiale_calcul_a_p(calcul_allocation_logement_acc[3]), - t852= - caml_call1 - (Runtime_ocaml_Runtime[48],calcul_allocation_logement_acc[2]), - t851= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_acc[1]); - return {"ressourcesMenageArrondiesBaseIn":t851, - "nombrePersonnesAChargeIn":t852, - "situationFamilialeCalculAplIn":t853, - "zoneIn":t854, - "residenceIn":t855, - "dateCouranteIn":t856, - "mensualitePrincipaleIn":t857, - "situationR822111317In":t858, - "dateSignaturePretIn":t859, - "typeTravauxLogementIn":t860, - "localHabitePremiereFoisBeneficiaireIn":t861, - "dateEntreeLogementIn":t862, - "chargesMensuellesPretIn":t863, - "coproprieteIn":t864, - "operationsLogementEvolutifsSociauxAccessionProprieteAideeEtatIn": - t865}} - function calcul_allocation_logement_acc$3(calcul_allocation_logement_acc) - {var - _acb_= - calcul_allocation_logement_acc.operationsLogementEvolutifsSociauxAccessionProprieteAideeEtatIn - | - 0, - _acc_=calcul_allocation_logement_acc.coproprieteIn | 0, - _acd_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_acc.chargesMensuellesPretIn), - _ace_=caml_call1(Runtime_ocaml_Runtime[33],_acd_), - _acf_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_allocation_logement_acc.dateEntreeLogementIn), - _acg_= - calcul_allocation_logement_acc.localHabitePremiereFoisBeneficiaireIn - | - 0, - _ach_= - type_travaux_logement_r842_5_o - (calcul_allocation_logement_acc.typeTravauxLogementIn), - _aci_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_allocation_logement_acc.dateSignaturePretIn), - _acj_=calcul_allocation_logement_acc.situationR822111317In | 0, - _ack_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_acc.mensualitePrincipaleIn), - _acl_=caml_call1(Runtime_ocaml_Runtime[33],_ack_), - _acm_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_allocation_logement_acc.dateCouranteIn), - _acn_= - collectivite_of_jsoo$0(calcul_allocation_logement_acc.residenceIn), - _aco_=zone_d_habitation_of_jsoo(calcul_allocation_logement_acc.zoneIn), - _acp_= - situation_familiale_calcul_a_p$0 - (calcul_allocation_logement_acc.situationFamilialeCalculAplIn), - _acq_= - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_allocation_logement_acc.nombrePersonnesAChargeIn), - _acr_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_acc.ressourcesMenageArrondiesBaseIn); - return [0, - caml_call1(Runtime_ocaml_Runtime[33],_acr_), - _acq_, - _acp_, - _aco_, - _acn_, - _acm_, - _acl_, - _acj_, - _aci_, - _ach_, - _acg_, - _acf_, - _ace_, - _acc_, - _acb_]} - function calcul_allocation_logement_foy$2(calcul_allocation_logement_foy) - {var - t890=categorie_equivalence_loyer_al(calcul_allocation_logement_foy[10]), - t889= - caml_call1(Runtime_jsoo_Runtime[5],calcul_allocation_logement_foy[9]), - t888=zone_d_habitation_to_jsoo(calcul_allocation_logement_foy[8]), - t887=situation_familiale_calcul_a_p(calcul_allocation_logement_foy[7]), - t886= - caml_call1 - (Runtime_ocaml_Runtime[48],calcul_allocation_logement_foy[6]), - t885= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_foy[5]), - t884= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_foy[4]), - t883=collectivite_to_jsoo$0(calcul_allocation_logement_foy[3]), - t882= - caml_call1(Runtime_jsoo_Runtime[5],calcul_allocation_logement_foy[2]), - t881=type_logement_foyer_to_jsoo(calcul_allocation_logement_foy[1]); - return {"typeLogementFoyerIn":t881, - "dateConventionnementIn":t882, - "residenceIn":t883, - "redevanceIn":t884, - "ressourcesMenageArrondiesIn":t885, - "nombrePersonnesAChargeIn":t886, - "situationFamilialeCalculAplIn":t887, - "zoneIn":t888, - "dateCouranteIn":t889, - "categorieEquivalenceLoyerD84216In":t890}} - function calcul_allocation_logement_foy$3(calcul_allocation_logement_foy) - {var - _ab2_= - categorie_equivalence_loyer_al$0 - (calcul_allocation_logement_foy.categorieEquivalenceLoyerD84216In), - _ab3_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_allocation_logement_foy.dateCouranteIn), - _ab4_=zone_d_habitation_of_jsoo(calcul_allocation_logement_foy.zoneIn), - _ab5_= - situation_familiale_calcul_a_p$0 - (calcul_allocation_logement_foy.situationFamilialeCalculAplIn), - _ab6_= - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_allocation_logement_foy.nombrePersonnesAChargeIn), - _ab7_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_foy.ressourcesMenageArrondiesIn), - _ab8_=caml_call1(Runtime_ocaml_Runtime[33],_ab7_), - _ab9_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_foy.redevanceIn), - _ab__=caml_call1(Runtime_ocaml_Runtime[33],_ab9_), - _ab$_= - collectivite_of_jsoo$0(calcul_allocation_logement_foy.residenceIn), - _aca_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_allocation_logement_foy.dateConventionnementIn); - return [0, - type_logement_foyer_of_jsoo - (calcul_allocation_logement_foy.typeLogementFoyerIn), - _aca_, - _ab$_, - _ab__, - _ab8_, - _ab6_, - _ab5_, - _ab4_, - _ab3_, - _ab2_]} - function calcul_allocation_logement_in_(calcul_allocation_logement_in) - {var - t908=collectivite_to_jsoo$0(calcul_allocation_logement_in[8]), - t907=type_aides_personnelle_logemen(calcul_allocation_logement_in[7]), - t906= - caml_call1(Runtime_jsoo_Runtime[5],calcul_allocation_logement_in[6]), - t905=zone_d_habitation_to_jsoo(calcul_allocation_logement_in[5]), - t904= - caml_call1(Runtime_ocaml_Runtime[48],calcul_allocation_logement_in[4]), - t903=situation_familiale_to_jsoo(calcul_allocation_logement_in[3]), - t902= - caml_call1(Runtime_ocaml_Runtime[35],calcul_allocation_logement_in[2]), - t901=mode_occupation_to_jsoo(calcul_allocation_logement_in[1]); - return {"modeOccupationIn":t901, - "ressourcesMenageSansArrondiIn":t902, - "situationFamilialeIn":t903, - "nombrePersonnesAChargeIn":t904, - "zoneIn":t905, - "dateCouranteIn":t906, - "typeAideIn":t907, - "residenceIn":t908}} - function calcul_allocation_logement_in_$0(calcul_allocation_logement_in) - {var - _abU_=collectivite_of_jsoo$0(calcul_allocation_logement_in.residenceIn), - _abV_= - type_aides_personnelle_logemen$0 - (calcul_allocation_logement_in.typeAideIn), - _abW_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_allocation_logement_in.dateCouranteIn), - _abX_=zone_d_habitation_of_jsoo(calcul_allocation_logement_in.zoneIn), - _abY_= - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_allocation_logement_in.nombrePersonnesAChargeIn), - _abZ_= - situation_familiale_of_jsoo - (calcul_allocation_logement_in.situationFamilialeIn), - _ab0_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_in.ressourcesMenageSansArrondiIn), - _ab1_=caml_call1(Runtime_ocaml_Runtime[33],_ab0_); - return [0, - mode_occupation_of_jsoo - (calcul_allocation_logement_in.modeOccupationIn), - _ab1_, - _abZ_, - _abY_, - _abX_, - _abW_, - _abV_, - _abU_]} - function ouverture_droits_retraite_in_t(ouverture_droits_retraite_in) - {var - t917= - caml_call1(Runtime_jsoo_Runtime[5],ouverture_droits_retraite_in[1]); - return {"dateNaissanceAssureIn":t917}} - function ouverture_droits_retraite_in_o(ouverture_droits_retraite_in) - {return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - ouverture_droits_retraite_in.dateNaissanceAssureIn)]} - function impaye_depense_logement_in_to_(impaye_depense_logement_in) - {var - t924= - caml_call1(Runtime_ocaml_Runtime[35],impaye_depense_logement_in[6]), - t923=depense_logement_to_jsoo(impaye_depense_logement_in[5]), - t922= - caml_call1(Runtime_ocaml_Runtime[35],impaye_depense_logement_in[4]), - t921= - caml_call1(Runtime_ocaml_Runtime[35],impaye_depense_logement_in[3]), - t920=versement_a_to_jsoo(impaye_depense_logement_in[2]), - t919=mode_occupation_to_jsoo(impaye_depense_logement_in[1]); - return {"modeOccupationIn":t919, - "aideVerseeIn":t920, - "montantAplIn":t921, - "montantChargesIn":t922, - "depenseLogementIn":t923, - "montantDetteIn":t924}} - function impaye_depense_logement_in_of_(impaye_depense_logement_in) - {var - _abM_= - caml_call1 - (Runtime_ocaml_Runtime[42],impaye_depense_logement_in.montantDetteIn), - _abN_=caml_call1(Runtime_ocaml_Runtime[33],_abM_), - _abO_= - depense_logement_of_jsoo(impaye_depense_logement_in.depenseLogementIn), - _abP_= - caml_call1 - (Runtime_ocaml_Runtime[42], - impaye_depense_logement_in.montantChargesIn), - _abQ_=caml_call1(Runtime_ocaml_Runtime[33],_abP_), - _abR_= - caml_call1 - (Runtime_ocaml_Runtime[42],impaye_depense_logement_in.montantAplIn), - _abS_=caml_call1(Runtime_ocaml_Runtime[33],_abR_), - _abT_=versement_a_of_jsoo(impaye_depense_logement_in.aideVerseeIn); - return [0, - mode_occupation_of_jsoo - (impaye_depense_logement_in.modeOccupationIn), - _abT_, - _abS_, - _abQ_, - _abO_, - _abN_]} - function calculette_aides_au_logement_i(calculette_aides_au_logement_i) - {var - t934= - caml_call1 - (Runtime_ocaml_Runtime[35],calculette_aides_au_logement_i[4]), - t933= - caml_call1(Runtime_jsoo_Runtime[5],calculette_aides_au_logement_i[3]), - t932=demandeur_to_jsoo(calculette_aides_au_logement_i[2]), - t931=menage_to_jsoo(calculette_aides_au_logement_i[1]); - return {"menageIn":t931, - "demandeurIn":t932, - "dateCouranteIn":t933, - "ressourcesMenagePrisesEnCompteIn":t934}} - function calculette_aides_au_logement_i$0(calculette_aides_au_logement_i) - {var - _abI_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calculette_aides_au_logement_i.ressourcesMenagePrisesEnCompteIn), - _abJ_=caml_call1(Runtime_ocaml_Runtime[33],_abI_), - _abK_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calculette_aides_au_logement_i.dateCouranteIn), - _abL_=demandeur_of_jsoo(calculette_aides_au_logement_i.demandeurIn); - return [0, - menage_of_jsoo(calculette_aides_au_logement_i.menageIn), - _abL_, - _abK_, - _abJ_]} - function calculette_aides_au_logement_g$2(calculette_aides_au_logement_g) - {var - t942= - caml_call1 - (Runtime_ocaml_Runtime[35],calculette_aides_au_logement_g[4]), - t941= - caml_call1(Runtime_jsoo_Runtime[5],calculette_aides_au_logement_g[3]), - t940=demandeur_to_jsoo(calculette_aides_au_logement_g[2]), - t939=menage_to_jsoo(calculette_aides_au_logement_g[1]); - return {"menageIn":t939, - "demandeurIn":t940, - "dateCouranteIn":t941, - "ressourcesMenagePrisesEnCompteIn":t942}} - function calculette_aides_au_logement_g$3(calculette_aides_au_logement_g) - {var - _abE_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calculette_aides_au_logement_g.ressourcesMenagePrisesEnCompteIn), - _abF_=caml_call1(Runtime_ocaml_Runtime[33],_abE_), - _abG_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calculette_aides_au_logement_g.dateCouranteIn), - _abH_=demandeur_of_jsoo(calculette_aides_au_logement_g.demandeurIn); - return [0, - menage_of_jsoo(calculette_aides_au_logement_g.menageIn), - _abH_, - _abG_, - _abF_]} - function base_mensuelle_allocations_fam$8(base_mensuelle_allocations_fam) - {var - t947= - caml_call1(Runtime_jsoo_Runtime[5],base_mensuelle_allocations_fam[1]); - return {"dateCouranteIn":t947}} - function base_mensuelle_allocations_fam$9(base_mensuelle_allocations_fam) - {return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - base_mensuelle_allocations_fam.dateCouranteIn)]} - function verification_age_inferieur_ou_$8(verification_age_inferieur_ou_) - {var - t951= - caml_call1(Runtime_jsoo_Runtime[3],verification_age_inferieur_ou_[3]), - t950= - caml_call1(Runtime_jsoo_Runtime[5],verification_age_inferieur_ou_[2]), - t949= - caml_call1(Runtime_jsoo_Runtime[5],verification_age_inferieur_ou_[1]); - return {"dateNaissanceIn":t949,"dateCouranteIn":t950,"anneesIn":t951}} - function verification_age_inferieur_ou_$9(verification_age_inferieur_ou_) - {var - _abC_= - caml_call1 - (Runtime_jsoo_Runtime[2],verification_age_inferieur_ou_.anneesIn), - _abD_= - caml_call1 - (Runtime_jsoo_Runtime[4], - verification_age_inferieur_ou_.dateCouranteIn); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - verification_age_inferieur_ou_.dateNaissanceIn), - _abD_, - _abC_]} - function verification_age_superieur_a_i$1(verification_age_superieur_a_i) - {var - t957= - caml_call1(Runtime_jsoo_Runtime[3],verification_age_superieur_a_i[3]), - t956= - caml_call1(Runtime_jsoo_Runtime[5],verification_age_superieur_a_i[2]), - t955= - caml_call1(Runtime_jsoo_Runtime[5],verification_age_superieur_a_i[1]); - return {"dateNaissanceIn":t955,"dateCouranteIn":t956,"anneesIn":t957}} - function verification_age_superieur_a_i$2(verification_age_superieur_a_i) - {var - _abA_= - caml_call1 - (Runtime_jsoo_Runtime[2],verification_age_superieur_a_i.anneesIn), - _abB_= - caml_call1 - (Runtime_jsoo_Runtime[4], - verification_age_superieur_a_i.dateCouranteIn); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - verification_age_superieur_a_i.dateNaissanceIn), - _abB_, - _abA_]} - function smic_in_to_jsoo$0(smic_in) - {var - t962=collectivite_to_jsoo$0(smic_in[2]), - t961=caml_call1(Runtime_jsoo_Runtime[5],smic_in[1]); - return {"dateCouranteIn":t961,"residenceIn":t962}} - function smic_in_of_jsoo$0(smic_in) - {var _abz_=collectivite_of_jsoo$0(smic_in.residenceIn); - return [0, - caml_call1(Runtime_jsoo_Runtime[4],smic_in.dateCouranteIn), - _abz_]} - function eligibilite_prestations_famili$2(eligibilite_prestations_famili) - {function t968(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _aby_= - caml_call1 - (eligibilite_prestations_famili[4],function_input0); - return caml_call1(Runtime_jsoo_Runtime[3],_aby_)})} - var - t967=collectivite_to_jsoo$0(eligibilite_prestations_famili[3]), - t966= - element_prestations_familiales$1(eligibilite_prestations_famili[2]), - t965= - caml_call1(Runtime_jsoo_Runtime[5],eligibilite_prestations_famili[1]); - return {"dateCouranteIn":t965, - "prestationCouranteIn":t966, - "residenceIn":t967, - "ageL51232In":caml_js_wrap_meth_callback(t968)}} - function eligibilite_prestations_famili$3(eligibilite_prestations_famili) - {var - _abv_=caml_call1(Stdlib[2],cst_The_function_age_l512_3_2_), - _abw_= - collectivite_of_jsoo$0(eligibilite_prestations_famili.residenceIn), - _abx_= - element_prestations_familiales$2 - (eligibilite_prestations_famili.prestationCouranteIn); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - eligibilite_prestations_famili.dateCouranteIn), - _abx_, - _abw_, - _abv_]} - function contributions_sociales_aides_p$4 - (contributions_sociales_aides_p$1) - {return contributions_sociales_aides_p$0 - (contributions_sociales_aides_p - (contributions_sociales_aides_p$3 - (contributions_sociales_aides_p$1)))} - function calcul_equivalence_loyer_minim$4 - (calcul_equivalence_loyer_minim$1) - {return calcul_equivalence_loyer_minim$0 - (calcul_equivalence_loyer_minim - (calcul_equivalence_loyer_minim$3 - (calcul_equivalence_loyer_minim$1)))} - function calcul_nombre_part_logement_fo$4 - (calcul_nombre_part_logement_fo$1) - {return calcul_nombre_part_logement_fo$0 - (calcul_nombre_part_logement_fo - (calcul_nombre_part_logement_fo$3 - (calcul_nombre_part_logement_fo$1)))} - function calcul_nombre_parts_accession_$4 - (calcul_nombre_parts_accession_$1) - {return calcul_nombre_parts_accession_$0 - (calcul_nombre_parts_accession_ - (calcul_nombre_parts_accession_$3 - (calcul_nombre_parts_accession_$1)))} - function ouverture_droits_retraite$0(ouverture_droits_retraite_in) - {return ouverture_droits_retraite_to_j - (ouverture_droits_retraite - (ouverture_droits_retraite_in_o(ouverture_droits_retraite_in)))} - function impaye_depense_logement$0(impaye_depense_logement_in) - {return impaye_depense_logement_to_jso - (impaye_depense_logement - (impaye_depense_logement_in_of_(impaye_depense_logement_in)))} - function base_mensuelle_allocations_fam$10(base_mensuelle_allocations_fam) - {return base_mensuelle_allocations_fam$6 - (base_mensuelle_allocations_fam$5 - (base_mensuelle_allocations_fam$9 - (base_mensuelle_allocations_fam)))} - function verification_age_inferieur_ou_$10(verification_age_inferieur_ou_) - {return verification_age_inferieur_ou_$6 - (verification_age_inferieur_ou_$5 - (verification_age_inferieur_ou_$9 - (verification_age_inferieur_ou_)))} - function verification_age_superieur_a$2(verification_age_superieur_a_i) - {return verification_age_superieur_a_t$0 - (verification_age_superieur_a$1 - (verification_age_superieur_a_i$2 - (verification_age_superieur_a_i)))} - function smic$2(smic_in) - {return smic_to_jsoo$0(smic$1(smic_in_of_jsoo$0(smic_in)))} - function calcul_aide_personnalisee_loge$19 - (calcul_aide_personnalisee_loge$0) - {return calcul_aide_personnalisee_loge$3 - (calcul_aide_personnalisee_loge - (calcul_aide_personnalisee_loge$12 - (calcul_aide_personnalisee_loge$0)))} - function calcul_aide_personnalisee_loge$20(calcul_aide_personnalisee_loge) - {return calcul_aide_personnalisee_loge$5 - (calcul_aide_personnalisee_loge$0 - (calcul_aide_personnalisee_loge$14 - (calcul_aide_personnalisee_loge)))} - function calcul_aide_personnalisee_loge$21(calcul_aide_personnalisee_loge) - {return calcul_aide_personnalisee_loge$7 - (calcul_aide_personnalisee_loge$1 - (calcul_aide_personnalisee_loge$16 - (calcul_aide_personnalisee_loge)))} - function ressources_aides_personnelle_l$4 - (ressources_aides_personnelle_l$1) - {return ressources_aides_personnelle_l$0 - (ressources_aides_personnelle_l - (ressources_aides_personnelle_l$3 - (ressources_aides_personnelle_l$1)))} - function eligibilite_prestations_famili$4 - (eligibilite_prestations_famili$1) - {return eligibilite_prestations_famili$0 - (eligibilite_prestations_famili - (eligibilite_prestations_famili$3 - (eligibilite_prestations_famili$1)))} - function calcul_allocation_logement_loc$4 - (calcul_allocation_logement_loc$1) - {return calcul_allocation_logement_loc$0 - (calcul_allocation_logement_loc - (calcul_allocation_logement_loc$3 - (calcul_allocation_logement_loc$1)))} - function calcul_allocation_logement_foy$4 - (calcul_allocation_logement_foy$1) - {return calcul_allocation_logement_foy$0 - (calcul_allocation_logement_foy - (calcul_allocation_logement_foy$3 - (calcul_allocation_logement_foy$1)))} - function calcul_allocation_logement_acc$4 - (calcul_allocation_logement_acc$1) - {return calcul_allocation_logement_acc$0 - (calcul_allocation_logement_acc - (calcul_allocation_logement_acc$3 - (calcul_allocation_logement_acc$1)))} - function calcul_aide_personnalisee_loge$22(calcul_aide_personnalisee_loge) - {return calcul_aide_personnalisee_loge$9 - (calcul_aide_personnalisee_loge$2 - (calcul_aide_personnalisee_loge$18 - (calcul_aide_personnalisee_loge)))} - function eligibilite_aides_personnelle_$4 - (eligibilite_aides_personnelle_$1) - {return eligibilite_aides_personnelle_$0 - (eligibilite_aides_personnelle_ - (eligibilite_aides_personnelle_$3 - (eligibilite_aides_personnelle_$1)))} - function calcul_allocation_logement$0(calcul_allocation_logement_in) - {return calcul_allocation_logement_to_ - (calcul_allocation_logement - (calcul_allocation_logement_in_$0 - (calcul_allocation_logement_in)))} - function eligibilite_prime_de_demenagem$4 - (eligibilite_prime_de_demenagem$1) - {return eligibilite_prime_de_demenagem$0 - (eligibilite_prime_de_demenagem - (eligibilite_prime_de_demenagem$3 - (eligibilite_prime_de_demenagem$1)))} - function eligibilite_allocation_logemen$4 - (eligibilite_allocation_logemen$1) - {return eligibilite_allocation_logemen$0 - (eligibilite_allocation_logemen - (eligibilite_allocation_logemen$3 - (eligibilite_allocation_logemen$1)))} - function eligibilite_aide_personnalisee$4 - (eligibilite_aide_personnalisee$1) - {return eligibilite_aide_personnalisee$0 - (eligibilite_aide_personnalisee - (eligibilite_aide_personnalisee$3 - (eligibilite_aide_personnalisee$1)))} - function calculette_aides_au_logement$0(calculette_aides_au_logement_i) - {return calculette_aides_au_logement_t - (calculette_aides_au_logement - (calculette_aides_au_logement_i$0 - (calculette_aides_au_logement_i)))} - function calculette_aides_au_logement_g$4 - (calculette_aides_au_logement_g$1) - {return calculette_aides_au_logement_g$0 - (calculette_aides_au_logement_g - (calculette_aides_au_logement_g$3 - (calculette_aides_au_logement_g$1)))} - function t997(param) - {return caml_js_wrap_callback(calculette_aides_au_logement_g$4)} - function t996(param) - {return caml_js_wrap_callback(calculette_aides_au_logement$0)} - function t995(param) - {return caml_js_wrap_callback(eligibilite_aide_personnalisee$4)} - function t994(param) - {return caml_js_wrap_callback(eligibilite_allocation_logemen$4)} - function t993(param) - {return caml_js_wrap_callback(eligibilite_prime_de_demenagem$4)} - function t992(param) - {return caml_js_wrap_callback(calcul_allocation_logement$0)} - function t991(param) - {return caml_js_wrap_callback(eligibilite_aides_personnelle_$4)} - function t990(param) - {return caml_js_wrap_callback(calcul_aide_personnalisee_loge$22)} - function t989(param) - {return caml_js_wrap_callback(calcul_allocation_logement_acc$4)} - function t988(param) - {return caml_js_wrap_callback(calcul_allocation_logement_foy$4)} - function t987(param) - {return caml_js_wrap_callback(calcul_allocation_logement_loc$4)} - function t986(param) - {return caml_js_wrap_callback(eligibilite_prestations_famili$4)} - function t985(param) - {return caml_js_wrap_callback(ressources_aides_personnelle_l$4)} - function t984(param) - {return caml_js_wrap_callback(calcul_aide_personnalisee_loge$21)} - function t983(param) - {return caml_js_wrap_callback(calcul_aide_personnalisee_loge$20)} - function t982(param) - {return caml_js_wrap_callback(calcul_aide_personnalisee_loge$19)} - function t981(param){return caml_js_wrap_callback(smic$2)} - function t980(param) - {return caml_js_wrap_callback(verification_age_superieur_a$2)} - function t979(param) - {return caml_js_wrap_callback(verification_age_inferieur_ou_$10)} - function t978(param) - {return caml_js_wrap_callback(base_mensuelle_allocations_fam$10)} - function t977(param) - {return caml_js_wrap_callback(impaye_depense_logement$0)} - function t976(param) - {return caml_js_wrap_callback(ouverture_droits_retraite$0)} - function t975(param) - {return caml_js_wrap_callback(calcul_nombre_parts_accession_$4)} - function t974(param) - {return caml_js_wrap_callback(calcul_nombre_part_logement_fo$4)} - function t973(param) - {return caml_js_wrap_callback(calcul_equivalence_loyer_minim$4)} - function t972(param) - {return caml_js_wrap_callback(contributions_sociales_aides_p$4)} - caml_call2 - (Js_of_ocaml_Js[50], - cst_AidesLogementLib, - {"contributionsSocialesAidesPersonnelleLogement": - caml_js_wrap_meth_callback(t972), - "calculEquivalenceLoyerMinimale":caml_js_wrap_meth_callback(t973), - "calculNombrePartLogementFoyer":caml_js_wrap_meth_callback(t974), - "calculNombrePartsAccessionPropriete":caml_js_wrap_meth_callback(t975), - "ouvertureDroitsRetraite":caml_js_wrap_meth_callback(t976), - "impayeDepenseLogement":caml_js_wrap_meth_callback(t977), - "baseMensuelleAllocationsFamiliales":caml_js_wrap_meth_callback(t978), - "verificationAgeInferieurOuEgalA":caml_js_wrap_meth_callback(t979), - "verificationAgeSuperieurA":caml_js_wrap_meth_callback(t980), - "smic":caml_js_wrap_meth_callback(t981), - "calculAidePersonnaliseeLogementLocatif": - caml_js_wrap_meth_callback(t982), - "calculAidePersonnaliseeLogementFoyer":caml_js_wrap_meth_callback(t983), - "calculAidePersonnaliseeLogementAccessionPropriete": - caml_js_wrap_meth_callback(t984), - "ressourcesAidesPersonnelleLogement":caml_js_wrap_meth_callback(t985), - "eligibilitePrestationsFamiliales":caml_js_wrap_meth_callback(t986), - "calculAllocationLogementLocatif":caml_js_wrap_meth_callback(t987), - "calculAllocationLogementFoyer":caml_js_wrap_meth_callback(t988), - "calculAllocationLogementAccessionPropriete": - caml_js_wrap_meth_callback(t989), - "calculAidePersonnaliseeLogement":caml_js_wrap_meth_callback(t990), - "eligibiliteAidesPersonnelleLogement":caml_js_wrap_meth_callback(t991), - "calculAllocationLogement":caml_js_wrap_meth_callback(t992), - "eligibilitePrimeDeDemenagement":caml_js_wrap_meth_callback(t993), - "eligibiliteAllocationLogement":caml_js_wrap_meth_callback(t994), - "eligibiliteAidePersonnaliseeLogement":caml_js_wrap_meth_callback(t995), - "calculetteAidesAuLogement":caml_js_wrap_meth_callback(t996), - "calculetteAidesAuLogementGardeAlternee": - caml_js_wrap_meth_callback(t997)}); + runtime.caml_register_global + (6630, Law_source_Aides_logement, "Law_source__Aides_logement"); + return; + } + (globalThis)); + +//# 82860 "law_source/.law_source.objs/jsoo/default/law_source.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_AccessionPropriete = "AccessionPropriete", + cst_AccessionProprieteLocalUsa = + "AccessionProprieteLocalUsageExclusifHabitation", + cst_Accord = "Accord", + cst_AgrandirOuRendreHabitableD = "AgrandirOuRendreHabitableD331_63", + cst_AidePersonnaliseeLogement = "AidePersonnaliseeLogement", + cst_AllocationAdulteHandicape = "AllocationAdulteHandicape", + cst_AllocationEducationEnfantH = "AllocationEducationEnfantHandicape", + cst_AllocationJeuneEnfant = "AllocationJeuneEnfant", + cst_AllocationJournalierePrese = "AllocationJournalierePresenceParentale", + cst_AllocationLogement = "AllocationLogement", + cst_AllocationLogementFamilial = "AllocationLogementFamiliale", + cst_AllocationLogementSociale = "AllocationLogementSociale", + cst_AllocationRentreeScolaire = "AllocationRentreeScolaire", + cst_AllocationSoutienEnfantHan = "AllocationSoutienEnfantHandicape", + cst_AllocationSoutienFamilial = "AllocationSoutienFamilial", + cst_AllocationsFamiliales = "AllocationsFamiliales", + cst_Ancien = "Ancien", + cst_Apres = "Apres", + cst_ApresPremierJourMoisCivilT = + "ApresPremierJourMoisCivilTroisiemeMoisDeGrossesse", + cst_Ascendant = "Ascendant", + cst_Autre = "Autre", + cst_AutrePersonneACharge = "AutrePersonneACharge", + cst_AutresPersonnes = "AutresPersonnes", + cst_Avant = "Avant", + cst_AvantPremierJourMoisCivilT = + "AvantPremierJourMoisCivilTroisiemeMoisDeGrossesse", + cst_Bailleur = "Bailleur", + cst_BailleurPrive = "BailleurPrive", + cst_BailleurPriveAvecConventio = "BailleurPriveAvecConventionnementSocial", + cst_BailleurSocial = "BailleurSocial", + cst_Beneficiaire = "Beneficiaire", + cst_Celibataire = "Celibataire", + cst_CelibataireSepareDeFait = "CelibataireSepareDeFait", + cst_Changement = "Changement", + cst_CollateralDeuxiemeTroisiem = "CollateralDeuxiemeTroisiemeDegre", + cst_ComplementFamilial = "ComplementFamilial", + cst_ConcubinageDontSepareDeFai = "ConcubinageDontSepareDeFait", + cst_Concubins = "Concubins", + cst_Couple = "Couple", + cst_D331_32 = "D331_32", + cst_D331_59_8 = "D331_59_8", + cst_D331_63_64 = "D331_63_64", + cst_D331_76_1 = "D331_76_1", + cst_DateDeNaissance = "DateDeNaissance", + cst_Demandeur = "Demandeur", + cst_DemandeurOuConjointOuParen = + "DemandeurOuConjointOuParentOuViaPartsSocietes", + cst_Descendant = "Descendant", + cst_EffectiveEtPermanente = "EffectiveEtPermanente", + cst_EnfantACharge = "EnfantACharge", + cst_EtablissementHabilite = "EtablissementHabilite", + cst_Etrangere = "Etrangere", + cst_EtudiantLogeEnChambreCROUS = "EtudiantLogeEnChambreCROUS", + cst_EtudiantLogeEnChambreCROUS$0 = "EtudiantLogeEnChambreCROUSRehabilitee", + cst_FoyerJeunesTrvailleursOuMi = + "FoyerJeunesTrvailleursOuMigrantsConventionneL353_2Avant1995", + cst_Francaise = "Francaise", + cst_GardeAlterneeAllocataireUn = "GardeAlterneeAllocataireUnique", + cst_GardeAlterneeCoefficientPr = "GardeAlterneeCoefficientPriseEnCharge", + cst_GardeAlterneePartageAlloca = "GardeAlterneePartageAllocations", + cst_Guadeloupe = "Guadeloupe", + cst_Guyane = "Guyane", + cst_ImpayeLoyer = "ImpayeLoyer", + cst_ImpayePret = "ImpayePret", + cst_Infini = "Infini", + cst_LaReunion = "LaReunion", + cst_Locataire = "Locataire", + cst_Location = "Location", + cst_LocationAccession = "LocationAccession", + cst_LogementFoyer = "LogementFoyer", + cst_LogementPersonnesAgeesOuHa = "LogementPersonnesAgeesOuHandicapees", + cst_Loyer = "Loyer", + cst_Maries = "Maries", + cst_Martinique = "Martinique", + cst_Mayotte = "Mayotte", + cst_Mensualite = "Mensualite", + cst_Metropole = "Metropole", + cst_MoinsDeTroisEnfants = "MoinsDeTroisEnfants", + cst_Neuf = "Neuf", + cst_Non = "Non", + cst_ObjectifDecenceLogement = "ObjectifDecenceLogement", + cst_Oui = "Oui", + cst_OuiAvecLoyerOuCharges = "OuiAvecLoyerOuCharges", + cst_Pacses = "Pacses", + cst_PasDeChangement = "PasDeChangement", + cst_PasDeGardeAlternee = "PasDeGardeAlternee", + cst_PasDeTravaux = "PasDeTravaux", + cst_PasEligible = "PasEligible", + cst_PasdAccord = "PasdAccord", + cst_Pendant = "Pendant", + cst_PersonneSeule = "PersonneSeule", + cst_PersonnesAgeesSelon3DeD842 = "PersonnesAgeesSelon3DeD842_16", + cst_PlusDeTroisEnfants = "PlusDeTroisEnfants", + cst_PrestationAccueilJeuneEnfa = "PrestationAccueilJeuneEnfant", + cst_PrevuDansListeR321_15 = "PrevuDansListeR321_15", + cst_ResidenceAlterneeAllocatai = "ResidenceAlterneeAllocataireUnique", + cst_ResidenceAlterneeAllocatio = "ResidenceAlterneeAllocationsPartagee", + cst_ResidenceSociale = "ResidenceSociale", + cst_ResidentLogementFoyer = "ResidentLogementFoyer", + cst_Revenu = "Revenu", + cst_SaintBarthelemy = "SaintBarthelemy", + cst_SaintMartin = "SaintMartin", + cst_SaintPierreEtMiquelon = "SaintPierreEtMiquelon", + cst_ServicesSociauxAllocationV = + "ServicesSociauxAllocationVerseeALaFamille", + cst_ServicesSociauxAllocationV$0 = + "ServicesSociauxAllocationVerseeAuxServicesSociaux", + cst_SousLocataire = "SousLocataire", + cst_The_function_limitation_ma$1 = + "The function 'limitation_majoration_personnes_a_charge_in' translation isn't yet supported...", + cst_The_function_traitement_ai$9 = + "The function 'traitement_aide_finale' translation isn't yet supported...", + cst_TotalAnnuelEcheances = "TotalAnnuelEcheances", + cst_TravauxPourAcquisitionD832 = "TravauxPourAcquisitionD832_15_1", + cst_TravauxSurLogementDejaAcqu = "TravauxSurLogementDejaAcquisD832_15_2", + cst_Unexpected = "Unexpected '", + cst_VendeurQuandDemandeurACont = + "VendeurQuandDemandeurAContratLocationAccession", + cst_Zone1 = "Zone1", + cst_Zone2 = "Zone2", + cst_Zone3 = "Zone3", + caml_js_from_array = runtime.caml_js_from_array, + caml_js_to_array = runtime.caml_js_to_array, + caml_js_wrap_callback = runtime.caml_js_wrap_callback, + caml_js_wrap_meth_callback = runtime.caml_js_wrap_meth_callback, + caml_string_notequal = runtime.caml_string_notequal, + caml_string_of_jsstring = runtime.caml_string_of_jsstring; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + var global_data = runtime.caml_get_global_data(); + global_data.CamlinternalOO; + var + Law_source_Aides_logement = global_data.Law_source__Aides_logement, + Stdlib = global_data.Stdlib, + Runtime_jsoo_Runtime = global_data.Runtime_jsoo__Runtime, + Runtime_ocaml_Runtime = global_data.Runtime_ocaml__Runtime, + Stdlib_Array = global_data.Stdlib__Array, + Stdlib_Printf = global_data.Stdlib__Printf, + Js_of_ocaml_Js = global_data.Js_of_ocaml__Js, + cst_The_function_age_l512_3_2_ = + "The function 'age_l512_3_2_in' translation isn't yet supported...", + cst_The_function_n_nombre_part = + "The function 'n_nombre_parts_d832_25_in' translation isn't yet supported...", + cst_The_function_limitation_ma$0 = cst_The_function_limitation_ma$1, + cst_The_function_condition_2_d = + "The function 'condition_2_du_832_25_in' translation isn't yet supported...", + cst_The_function_limitation_ma = cst_The_function_limitation_ma$1, + cst_The_function_date_entree_v = + "The function 'date_entree_vigueur_differee_cch_in' translation isn't yet supported...", + cst_The_function_condition_log = + "The function 'condition_logement_surface_in' translation isn't yet supported...", + cst_The_function_condition_log$0 = + "The function 'condition_logement_residence_principale_in' translation isn't yet supported...", + cst_The_function_condition_2_r = + "The function 'condition_2_r823_4' translation isn't yet supported...", + _bp_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'ModeOccupation.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'ModeOccupation.t'"], + _bo_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'CategorieCalculAPL.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'CategorieCalculAPL.t'"], + _bn_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'PersonneACharge.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'PersonneACharge.t'"], + cst_The_function_conditions_ho = + "The function 'conditions_hors_age' translation isn't yet supported...", + cst_The_function_droit_ouvert_ = + "The function 'droit_ouvert' translation isn't yet supported...", + _bm_ = [1, 0], + _bl_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, "' kind for the enumeration 'ChangementLogementD8424.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'ChangementLogementD8424.t'"], + _bk_ = [0, 0], + _bj_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'Nationalite.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'Nationalite.t'"], + _bi_ = [0, 0], + _bh_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, "' kind for the enumeration 'LoueOuSousLoueADesTiers.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'LoueOuSousLoueADesTiers.t'"], + _bg_ = [2, 0], + _bf_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'TypeBailleur.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'TypeBailleur.t'"], + _be_ = [0, 0], + _bd_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, + "' kind for the enumeration 'DateNaissanceTroisiemeOuDernierPlusEnfant.t'", + 0]]], + "Unexpected '%s' kind for the enumeration 'DateNaissanceTroisiemeOuDernierPlusEnfant.t'"], + _bc_ = [0, 0], + _bb_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'NeufOuAncien.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'NeufOuAncien.t'"], + cst_The_function_traitement_ai$8 = cst_The_function_traitement_ai$9, + cst_The_function_traitement_ai$7 = cst_The_function_traitement_ai$9, + cst_The_function_traitement_ai$6 = cst_The_function_traitement_ai$9, + cst_The_function_traitement_ai$5 = cst_The_function_traitement_ai$9, + cst_The_function_traitement_ai$4 = cst_The_function_traitement_ai$9, + cst_The_function_traitement_ai$3 = cst_The_function_traitement_ai$9, + cst_The_function_traitement_ai$2 = cst_The_function_traitement_ai$9, + cst_The_function_traitement_ai$1 = cst_The_function_traitement_ai$9, + cst_The_function_traitement_ai$0 = cst_The_function_traitement_ai$9, + cst_The_function_traitement_ai = cst_The_function_traitement_ai$9, + cst_The_function_montant_trans = + "The function 'montant' translation isn't yet supported...", + _a5_ = [0, 0], + _a6_ = [2, 0], + _a7_ = [1, 0], + _a8_ = [5, 0], + _a9_ = [6, 0], + _a__ = [3, 0], + _a$_ = [7, 0], + _ba_ = [4, 0], + _a4_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, + "' kind for the enumeration 'ElementPrestationsFamiliales.t'", + 0]]], + "Unexpected '%s' kind for the enumeration 'ElementPrestationsFamiliales.t'"], + _a1_ = [1, 0], + _a2_ = [0, 0], + _a3_ = [2, 0], + _a0_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, "' kind for the enumeration 'SituationObligationScolaire.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'SituationObligationScolaire.t'"], + _aV_ = [4, 0], + _aW_ = [3, 0], + _aX_ = [0, 0], + _aY_ = [1, 0], + _aZ_ = [2, 0], + _aU_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'PriseEnChargeEnfant.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'PriseEnChargeEnfant.t'"], + _aL_ = [7, 0], + _aM_ = [5, 0], + _aN_ = [4, 0], + _aO_ = [6, 0], + _aP_ = [8, 0], + _aQ_ = [2, 0], + _aR_ = [3, 0], + _aS_ = [1, 0], + _aT_ = [0, 0], + _aK_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'Collectivite.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'Collectivite.t'"], + _aI_ = [0, 0], + _aJ_ = [1, 0], + _aH_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, "' kind for the enumeration 'SituationFamilialeCalculAPL.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'SituationFamilialeCalculAPL.t'"], + _aD_ = [2, 0], + _aE_ = [1, 0], + _aF_ = [0, 0], + _aG_ = [3, 0], + _aC_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, + "' kind for the enumeration 'CategorieEquivalenceLoyerAllocationLogementFoyer.t'", + 0]]], + "Unexpected '%s' kind for the enumeration 'CategorieEquivalenceLoyerAllocationLogementFoyer.t'"], + _ay_ = [1, 0], + _az_ = [0, 0], + _aA_ = [2, 0], + _aB_ = [3, 0], + _ax_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'TypeLogementFoyer.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'TypeLogementFoyer.t'"], + _au_ = [2, 0], + _av_ = [1, 0], + _aw_ = [0, 0], + _at_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'PriseEnCharge.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'PriseEnCharge.t'"], + _ao_ = [2, 0], + _ap_ = [3, 0], + _aq_ = [5, 0], + _ar_ = [4, 0], + _as_ = [0, 0], + _an_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'SituationFamiliale.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'SituationFamiliale.t'"], + _ak_ = [2, 0], + _al_ = [1, 0], + _am_ = [0, 0], + _aj_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, + "' kind for the enumeration 'TypeAidesPersonnelleLogement.t'", + 0]]], + "Unexpected '%s' kind for the enumeration 'TypeAidesPersonnelleLogement.t'"], + _ai_ = [1, 0], + _ah_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, + "' kind for the enumeration 'AccordFinancementRepresentantEtatOutreMer.t'", + 0]]], + "Unexpected '%s' kind for the enumeration 'AccordFinancementRepresentantEtatOutreMer.t'"], + _ae_ = [0, 0], + _af_ = [2, 0], + _ag_ = [1, 0], + _ad_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, + "' kind for the enumeration 'TypeEligibiliteAllocationLogement.t'", + 0]]], + "Unexpected '%s' kind for the enumeration 'TypeEligibiliteAllocationLogement.t'"], + _ab_ = [1, 0], + _ac_ = [0, 0], + _aa_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'ModeOccupationImpaye.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'ModeOccupationImpaye.t'"], + _$_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'DepenseLogement.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'DepenseLogement.t'"], + _Y_ = [2, 0], + _Z_ = [1, 0], + ___ = [0, 0], + _X_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'VersementA.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'VersementA.t'"], + _W_ = [1, 0], + _V_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, + "' kind for the enumeration 'PaiementLogementDistinctProfessionnel.t'", + 0]]], + "Unexpected '%s' kind for the enumeration 'PaiementLogementDistinctProfessionnel.t'"], + _S_ = [2, 0], + _T_ = [1, 0], + _U_ = [0, 0], + _R_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'ZoneDHabitation.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'ZoneDHabitation.t'"], + _P_ = [1, 0], + _Q_ = [2, 0], + _O_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, + "' kind for the enumeration 'DateDeNaissanceOuMoisDeGrossesse.t'", + 0]]], + "Unexpected '%s' kind for the enumeration 'DateDeNaissanceOuMoisDeGrossesse.t'"], + _L_ = [1, 0], + _M_ = [2, 0], + _N_ = [0, 0], + _K_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'Parente.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'Parente.t'"], + _J_ = [0, 0], + _I_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, "' kind for the enumeration 'SituationGardeAlternee.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'SituationGardeAlternee.t'"], + _H_ = [1, 0], + _G_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'ParentOuAutre.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'ParentOuAutre.t'"], + _A_ = [1, 0], + _B_ = [0, 0], + _C_ = [3, 0], + _D_ = [4, 0], + _E_ = [2, 0], + _F_ = [5, 0], + _z_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'PrestationRecue.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'PrestationRecue.t'"], + _y_ = [1, 0], + _x_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'LimiteTrancheDecimal.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'LimiteTrancheDecimal.t'"], + _w_ = [1, 0], + _v_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'LimiteTranche.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'LimiteTranche.t'"], + _t_ = [0, 0], + _u_ = [1, 0], + _s_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'AmelioreParOccupant.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'AmelioreParOccupant.t'"], + _o_ = [1, 0], + _p_ = [3, 0], + _q_ = [0, 0], + _r_ = [2, 0], + _n_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, "' kind for the enumeration 'TypeTravauxLogementR8425.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'TypeTravauxLogementR8425.t'"], + _k_ = [1, 0], + _l_ = [0, 0], + _m_ = [2, 0], + _j_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, "' kind for the enumeration 'TypeTravauxLogementD83215.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'TypeTravauxLogementD83215.t'"], + _h_ = [1, 0], + _i_ = [0, 0], + _g_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'TitulairePret.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'TitulairePret.t'"], + _b_ = [3, 0], + _c_ = [1, 0], + _d_ = [2, 0], + _e_ = [0, 0], + _f_ = [4, 0], + _a_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'TypePret.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'TypePret.t'"], + cst_AidesLogementLib = "AidesLogementLib"; + function type_pret_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; return {kind: cst_D331_32, payload: arg}; + case 1: + var arg$0 = param[1]; return {kind: cst_D331_63_64, payload: arg$0}; + case 2: + var arg$1 = param[1]; return {kind: cst_D331_59_8, payload: arg$1}; + case 3: + var arg$2 = param[1]; return {kind: cst_D331_76_1, payload: arg$2}; + default: var arg$3 = param[1]; return {kind: cst_Autre, payload: arg$3}; + } + } + function type_pret_of_jsoo(type_pret){ + var cons = caml_string_of_jsstring(type_pret.kind); + if(! caml_string_notequal(cons, cst_Autre)) return _f_; + if(! caml_string_notequal(cons, cst_D331_32)) return _e_; + if(! caml_string_notequal(cons, cst_D331_59_8)) return _d_; + if(! caml_string_notequal(cons, cst_D331_63_64)) return _c_; + if(! caml_string_notequal(cons, cst_D331_76_1)) return _b_; + var _l6_ = caml_call2(Stdlib_Printf[4], _a_, cons); + return caml_call1(Stdlib[2], _l6_); + } + function titulaire_pret_to_jsoo(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_Demandeur, payload: arg}; + } + var arg$0 = param[1]; + return {kind: cst_VendeurQuandDemandeurACont, payload: arg$0}; + } + function titulaire_pret_of_jsoo(titulaire_pret){ + var cons = caml_string_of_jsstring(titulaire_pret.kind); + if(! caml_string_notequal(cons, cst_Demandeur)) return _i_; + if(! caml_string_notequal(cons, cst_VendeurQuandDemandeurACont)) + return _h_; + var _l5_ = caml_call2(Stdlib_Printf[4], _g_, cons); + return caml_call1(Stdlib[2], _l5_); + } + function type_travaux_logement_d832_15_(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_TravauxPourAcquisitionD832, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_TravauxSurLogementDejaAcqu, payload: arg$0}; + default: + var arg$1 = param[1]; return {kind: cst_PasDeTravaux, payload: arg$1}; + } + } + function type_travaux_logement_d832_15_$0(type_travaux_logement_d832_15){ + var cons = caml_string_of_jsstring(type_travaux_logement_d832_15.kind); + if(! caml_string_notequal(cons, cst_PasDeTravaux)) return _m_; + if(! caml_string_notequal(cons, cst_TravauxPourAcquisitionD832)) + return _l_; + if(! caml_string_notequal(cons, cst_TravauxSurLogementDejaAcqu)) + return _k_; + var _l4_ = caml_call2(Stdlib_Printf[4], _j_, cons); + return caml_call1(Stdlib[2], _l4_); + } + function type_travaux_logement_r842_5_t(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_ObjectifDecenceLogement, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_PrevuDansListeR321_15, payload: arg$0}; + case 2: + var arg$1 = param[1]; + return {kind: cst_AgrandirOuRendreHabitableD, payload: arg$1}; + default: + var arg$2 = param[1]; return {kind: cst_PasDeTravaux, payload: arg$2}; + } + } + function type_travaux_logement_r842_5_o(type_travaux_logement_r842_5){ + var cons = caml_string_of_jsstring(type_travaux_logement_r842_5.kind); + if(! caml_string_notequal(cons, cst_AgrandirOuRendreHabitableD)) + return _r_; + if(! caml_string_notequal(cons, cst_ObjectifDecenceLogement)) return _q_; + if(! caml_string_notequal(cons, cst_PasDeTravaux)) return _p_; + if(! caml_string_notequal(cons, cst_PrevuDansListeR321_15)) return _o_; + var _l3_ = caml_call2(Stdlib_Printf[4], _n_, cons); + return caml_call1(Stdlib[2], _l3_); + } + function ameliore_par_occupant_to_jsoo(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_Oui, payload: arg}; + } + var arg$0 = param[1]; + return {kind: cst_Non, payload: arg$0}; + } + function ameliore_par_occupant_of_jsoo(ameliore_par_occupant){ + var cons = caml_string_of_jsstring(ameliore_par_occupant.kind); + if(! caml_string_notequal(cons, cst_Non)) return _u_; + if(! caml_string_notequal(cons, cst_Oui)) return _t_; + var _l2_ = caml_call2(Stdlib_Printf[4], _s_, cons); + return caml_call1(Stdlib[2], _l2_); + } + function limite_tranche_to_jsoo(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_Revenu, + payload: caml_call1(Runtime_ocaml_Runtime[35], arg)}; + } + var arg$0 = param[1]; + return {kind: cst_Infini, payload: arg$0}; + } + function limite_tranche_of_jsoo(limite_tranche){ + var cons = caml_string_of_jsstring(limite_tranche.kind); + if(! caml_string_notequal(cons, cst_Infini)) return _w_; + if(caml_string_notequal(cons, cst_Revenu)){ + var _l0_ = caml_call2(Stdlib_Printf[4], _v_, cons); + return caml_call1(Stdlib[2], _l0_); + } + var _l1_ = caml_call1(Runtime_ocaml_Runtime[42], limite_tranche.payload); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _l1_)]; + } + function limite_tranche_decimal_to_jsoo(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_Revenu, + payload: caml_call1(Runtime_ocaml_Runtime[43], arg)}; + } + var arg$0 = param[1]; + return {kind: cst_Infini, payload: arg$0}; + } + function limite_tranche_decimal_of_jsoo(limite_tranche_decimal){ + var cons = caml_string_of_jsstring(limite_tranche_decimal.kind); + if(! caml_string_notequal(cons, cst_Infini)) return _y_; + if(! caml_string_notequal(cons, cst_Revenu)) + return [0, + caml_call1 + (Runtime_ocaml_Runtime[42], limite_tranche_decimal.payload)]; + var _lZ_ = caml_call2(Stdlib_Printf[4], _x_, cons); + return caml_call1(Stdlib[2], _lZ_); + } + function prestation_recue_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_AllocationsFamiliales, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_ComplementFamilial, payload: arg$0}; + case 2: + var arg$1 = param[1]; + return {kind: cst_AllocationJeuneEnfant, payload: arg$1}; + case 3: + var arg$2 = param[1]; + return {kind: cst_AllocationSoutienFamilial, payload: arg$2}; + case 4: + var arg$3 = param[1]; + return {kind: cst_AllocationSoutienEnfantHan, payload: arg$3}; + default: + var arg$4 = param[1]; + return {kind: cst_AllocationAdulteHandicape, payload: arg$4}; + } + } + function prestation_recue_of_jsoo(prestation_recue){ + var cons = caml_string_of_jsstring(prestation_recue.kind); + if(! caml_string_notequal(cons, cst_AllocationAdulteHandicape)) + return _F_; + if(! caml_string_notequal(cons, cst_AllocationJeuneEnfant)) return _E_; + if(! caml_string_notequal(cons, cst_AllocationSoutienEnfantHan)) + return _D_; + if(! caml_string_notequal(cons, cst_AllocationSoutienFamilial)) + return _C_; + if(! caml_string_notequal(cons, cst_AllocationsFamiliales)) return _B_; + if(! caml_string_notequal(cons, cst_ComplementFamilial)) return _A_; + var _lY_ = caml_call2(Stdlib_Printf[4], _z_, cons); + return caml_call1(Stdlib[2], _lY_); + } + function parent_ou_autre_to_jsoo(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_DemandeurOuConjointOuParen, + payload: caml_call1(Runtime_ocaml_Runtime[43], arg)}; + } + var arg$0 = param[1]; + return {kind: cst_Autre, payload: arg$0}; + } + function parent_ou_autre_of_jsoo(parent_ou_autre){ + var cons = caml_string_of_jsstring(parent_ou_autre.kind); + if(! caml_string_notequal(cons, cst_Autre)) return _H_; + if(! caml_string_notequal(cons, cst_DemandeurOuConjointOuParen)) + return [0, + caml_call1(Runtime_ocaml_Runtime[42], parent_ou_autre.payload)]; + var _lX_ = caml_call2(Stdlib_Printf[4], _G_, cons); + return caml_call1(Stdlib[2], _lX_); + } + function situation_garde_alternee_to_js(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_PasDeGardeAlternee, payload: arg}; + } + var arg$0 = param[1]; + return {kind: cst_GardeAlterneeCoefficientPr, + payload: caml_call1(Runtime_ocaml_Runtime[43], arg$0)}; + } + function situation_garde_alternee_of_js(situation_garde_alternee){ + var cons = caml_string_of_jsstring(situation_garde_alternee.kind); + if(! caml_string_notequal(cons, cst_GardeAlterneeCoefficientPr)) + return [1, + caml_call1 + (Runtime_ocaml_Runtime[42], situation_garde_alternee.payload)]; + if(! caml_string_notequal(cons, cst_PasDeGardeAlternee)) return _J_; + var _lW_ = caml_call2(Stdlib_Printf[4], _I_, cons); + return caml_call1(Stdlib[2], _lW_); + } + function parente_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; return {kind: cst_Ascendant, payload: arg}; + case 1: + var arg$0 = param[1]; return {kind: cst_Descendant, payload: arg$0}; + default: + var arg$1 = param[1]; + return {kind: cst_CollateralDeuxiemeTroisiem, payload: arg$1}; + } + } + function parente_of_jsoo(parente){ + var cons = caml_string_of_jsstring(parente.kind); + if(! caml_string_notequal(cons, cst_Ascendant)) return _N_; + if(! caml_string_notequal(cons, cst_CollateralDeuxiemeTroisiem)) + return _M_; + if(! caml_string_notequal(cons, cst_Descendant)) return _L_; + var _lV_ = caml_call2(Stdlib_Printf[4], _K_, cons); + return caml_call1(Stdlib[2], _lV_); + } + function date_de_naissance_ou_mois_de_g(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_DateDeNaissance, + payload: caml_call1(Runtime_jsoo_Runtime[5], arg)}; + case 1: + var arg$0 = param[1]; + return {kind: cst_AvantPremierJourMoisCivilT, payload: arg$0}; + default: + var arg$1 = param[1]; + return {kind: cst_ApresPremierJourMoisCivilT, payload: arg$1}; + } + } + function date_de_naissance_ou_mois_de_g$0(date_de_naissance_ou_mois_de_g){ + var cons = caml_string_of_jsstring(date_de_naissance_ou_mois_de_g.kind); + if(! caml_string_notequal(cons, cst_ApresPremierJourMoisCivilT)) + return _Q_; + if(! caml_string_notequal(cons, cst_AvantPremierJourMoisCivilT)) + return _P_; + if(! caml_string_notequal(cons, cst_DateDeNaissance)) + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + date_de_naissance_ou_mois_de_g.payload)]; + var _lU_ = caml_call2(Stdlib_Printf[4], _O_, cons); + return caml_call1(Stdlib[2], _lU_); + } + function zone_d_habitation_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; return {kind: cst_Zone1, payload: arg}; + case 1: + var arg$0 = param[1]; return {kind: cst_Zone2, payload: arg$0}; + default: var arg$1 = param[1]; return {kind: cst_Zone3, payload: arg$1}; + } + } + function zone_d_habitation_of_jsoo(zone_d_habitation){ + var cons = caml_string_of_jsstring(zone_d_habitation.kind); + if(! caml_string_notequal(cons, cst_Zone1)) return _U_; + if(! caml_string_notequal(cons, cst_Zone2)) return _T_; + if(! caml_string_notequal(cons, cst_Zone3)) return _S_; + var _lT_ = caml_call2(Stdlib_Printf[4], _R_, cons); + return caml_call1(Stdlib[2], _lT_); + } + function paiement_logement_distinct_pro(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_OuiAvecLoyerOuCharges, + payload: caml_call1(Runtime_ocaml_Runtime[35], arg)}; + } + var arg$0 = param[1]; + return {kind: cst_Non, payload: arg$0}; + } + function paiement_logement_distinct_pro$0(paiement_logement_distinct_pro){ + var cons = caml_string_of_jsstring(paiement_logement_distinct_pro.kind); + if(! caml_string_notequal(cons, cst_Non)) return _W_; + if(caml_string_notequal(cons, cst_OuiAvecLoyerOuCharges)){ + var _lR_ = caml_call2(Stdlib_Printf[4], _V_, cons); + return caml_call1(Stdlib[2], _lR_); + } var - Law_source_Aides_logement_api_= + _lS_ = + caml_call1 + (Runtime_ocaml_Runtime[42], paiement_logement_distinct_pro.payload); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _lS_)]; + } + function versement_a_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; return {kind: cst_Bailleur, payload: arg}; + case 1: + var arg$0 = param[1]; return {kind: cst_Beneficiaire, payload: arg$0}; + default: + var arg$1 = param[1]; + return {kind: cst_EtablissementHabilite, payload: arg$1}; + } + } + function versement_a_of_jsoo(versement_a){ + var cons = caml_string_of_jsstring(versement_a.kind); + if(! caml_string_notequal(cons, cst_Bailleur)) return ___; + if(! caml_string_notequal(cons, cst_Beneficiaire)) return _Z_; + if(! caml_string_notequal(cons, cst_EtablissementHabilite)) return _Y_; + var _lQ_ = caml_call2(Stdlib_Printf[4], _X_, cons); + return caml_call1(Stdlib[2], _lQ_); + } + function depense_logement_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_TotalAnnuelEcheances, + payload: caml_call1(Runtime_ocaml_Runtime[35], arg)}; + case 1: + var arg$0 = param[1]; + return {kind: cst_Mensualite, + payload: caml_call1(Runtime_ocaml_Runtime[35], arg$0)}; + default: + var arg$1 = param[1]; + return {kind: cst_Loyer, + payload: caml_call1(Runtime_ocaml_Runtime[35], arg$1)}; + } + } + function depense_logement_of_jsoo(depense_logement){ + var cons = caml_string_of_jsstring(depense_logement.kind); + if(! caml_string_notequal(cons, cst_Loyer)){ + var + _lP_ = caml_call1(Runtime_ocaml_Runtime[42], depense_logement.payload); + return [2, caml_call1(Runtime_ocaml_Runtime[33], _lP_)]; + } + if(! caml_string_notequal(cons, cst_Mensualite)){ + var + _lO_ = caml_call1(Runtime_ocaml_Runtime[42], depense_logement.payload); + return [1, caml_call1(Runtime_ocaml_Runtime[33], _lO_)]; + } + if(caml_string_notequal(cons, cst_TotalAnnuelEcheances)){ + var _lM_ = caml_call2(Stdlib_Printf[4], _$_, cons); + return caml_call1(Stdlib[2], _lM_); + } + var + _lN_ = caml_call1(Runtime_ocaml_Runtime[42], depense_logement.payload); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _lN_)]; + } + function mode_occupation_impaye_to_jsoo(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_ImpayeLoyer, payload: arg}; + } + var arg$0 = param[1]; + return {kind: cst_ImpayePret, payload: arg$0}; + } + function mode_occupation_impaye_of_jsoo(mode_occupation_impaye){ + var cons = caml_string_of_jsstring(mode_occupation_impaye.kind); + if(! caml_string_notequal(cons, cst_ImpayeLoyer)) return _ac_; + if(! caml_string_notequal(cons, cst_ImpayePret)) return _ab_; + var _lL_ = caml_call2(Stdlib_Printf[4], _aa_, cons); + return caml_call1(Stdlib[2], _lL_); + } + function type_eligibilite_allocation_lo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; return {kind: cst_PasEligible, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_AllocationLogementFamilial, payload: arg$0}; + default: + var arg$1 = param[1]; + return {kind: cst_AllocationLogementSociale, payload: arg$1}; + } + } + function type_eligibilite_allocation_lo$0(type_eligibilite_allocation_lo){ + var cons = caml_string_of_jsstring(type_eligibilite_allocation_lo.kind); + if(! caml_string_notequal(cons, cst_AllocationLogementFamilial)) + return _ag_; + if(! caml_string_notequal(cons, cst_AllocationLogementSociale)) + return _af_; + if(! caml_string_notequal(cons, cst_PasEligible)) return _ae_; + var _lK_ = caml_call2(Stdlib_Printf[4], _ad_, cons); + return caml_call1(Stdlib[2], _lK_); + } + function accord_financement_representan(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_Accord, + payload: caml_call1(Runtime_jsoo_Runtime[5], arg)}; + } + var arg$0 = param[1]; + return {kind: cst_PasdAccord, payload: arg$0}; + } + function accord_financement_representan$0(accord_financement_representan){ + var cons = caml_string_of_jsstring(accord_financement_representan.kind); + if(! caml_string_notequal(cons, cst_Accord)) + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + accord_financement_representan.payload)]; + if(! caml_string_notequal(cons, cst_PasdAccord)) return _ai_; + var _lJ_ = caml_call2(Stdlib_Printf[4], _ah_, cons); + return caml_call1(Stdlib[2], _lJ_); + } + function type_aides_personnelle_logemen(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_AidePersonnaliseeLogement, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_AllocationLogementFamilial, payload: arg$0}; + default: + var arg$1 = param[1]; + return {kind: cst_AllocationLogementSociale, payload: arg$1}; + } + } + function type_aides_personnelle_logemen$0(type_aides_personnelle_logemen){ + var cons = caml_string_of_jsstring(type_aides_personnelle_logemen.kind); + if(! caml_string_notequal(cons, cst_AidePersonnaliseeLogement)) + return _am_; + if(! caml_string_notequal(cons, cst_AllocationLogementFamilial)) + return _al_; + if(! caml_string_notequal(cons, cst_AllocationLogementSociale)) + return _ak_; + var _lI_ = caml_call2(Stdlib_Printf[4], _aj_, cons); + return caml_call1(Stdlib[2], _lI_); + } + function situation_familiale_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; return {kind: cst_Celibataire, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_Maries, + payload: caml_call1(Runtime_jsoo_Runtime[5], arg$0)}; + case 2: + var arg$1 = param[1]; return {kind: cst_Pacses, payload: arg$1}; + case 3: + var arg$2 = param[1]; return {kind: cst_Concubins, payload: arg$2}; + case 4: + var arg$3 = param[1]; + return {kind: cst_CelibataireSepareDeFait, payload: arg$3}; + default: + var arg$4 = param[1]; + return {kind: cst_ConcubinageDontSepareDeFai, payload: arg$4}; + } + } + function situation_familiale_of_jsoo(situation_familiale){ + var cons = caml_string_of_jsstring(situation_familiale.kind); + if(! caml_string_notequal(cons, cst_Celibataire)) return _as_; + if(! caml_string_notequal(cons, cst_CelibataireSepareDeFait)) return _ar_; + if(! caml_string_notequal(cons, cst_ConcubinageDontSepareDeFai)) + return _aq_; + if(! caml_string_notequal(cons, cst_Concubins)) return _ap_; + if(! caml_string_notequal(cons, cst_Maries)) + return [1, + caml_call1(Runtime_jsoo_Runtime[4], situation_familiale.payload)]; + if(! caml_string_notequal(cons, cst_Pacses)) return _ao_; + var _lH_ = caml_call2(Stdlib_Printf[4], _an_, cons); + return caml_call1(Stdlib[2], _lH_); + } + function prise_en_charge_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_EffectiveEtPermanente, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_ResidenceAlterneeAllocatai, payload: arg$0}; + default: + var arg$1 = param[1]; + return {kind: cst_ResidenceAlterneeAllocatio, payload: arg$1}; + } + } + function prise_en_charge_of_jsoo(prise_en_charge){ + var cons = caml_string_of_jsstring(prise_en_charge.kind); + if(! caml_string_notequal(cons, cst_EffectiveEtPermanente)) return _aw_; + if(! caml_string_notequal(cons, cst_ResidenceAlterneeAllocatai)) + return _av_; + if(! caml_string_notequal(cons, cst_ResidenceAlterneeAllocatio)) + return _au_; + var _lG_ = caml_call2(Stdlib_Printf[4], _at_, cons); + return caml_call1(Stdlib[2], _lG_); + } + function type_logement_foyer_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_LogementPersonnesAgeesOuHa, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_ResidenceSociale, payload: arg$0}; + case 2: + var arg$1 = param[1]; + return {kind: cst_FoyerJeunesTrvailleursOuMi, payload: arg$1}; + default: var arg$2 = param[1]; return {kind: cst_Autre, payload: arg$2}; + } + } + function type_logement_foyer_of_jsoo(type_logement_foyer){ + var cons = caml_string_of_jsstring(type_logement_foyer.kind); + if(! caml_string_notequal(cons, cst_Autre)) return _aB_; + if(! caml_string_notequal(cons, cst_FoyerJeunesTrvailleursOuMi)) + return _aA_; + if(! caml_string_notequal(cons, cst_LogementPersonnesAgeesOuHa)) + return _az_; + if(! caml_string_notequal(cons, cst_ResidenceSociale)) return _ay_; + var _lF_ = caml_call2(Stdlib_Printf[4], _ax_, cons); + return caml_call1(Stdlib[2], _lF_); + } + function categorie_equivalence_loyer_al(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_EtudiantLogeEnChambreCROUS, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_EtudiantLogeEnChambreCROUS$0, payload: arg$0}; + case 2: + var arg$1 = param[1]; + return {kind: cst_PersonnesAgeesSelon3DeD842, payload: arg$1}; + default: + var arg$2 = param[1]; + return {kind: cst_AutresPersonnes, payload: arg$2}; + } + } + function categorie_equivalence_loyer_al$0(categorie_equivalence_loyer_al){ + var cons = caml_string_of_jsstring(categorie_equivalence_loyer_al.kind); + if(! caml_string_notequal(cons, cst_AutresPersonnes)) return _aG_; + if(! caml_string_notequal(cons, cst_EtudiantLogeEnChambreCROUS)) + return _aF_; + if(! caml_string_notequal(cons, cst_EtudiantLogeEnChambreCROUS$0)) + return _aE_; + if(! caml_string_notequal(cons, cst_PersonnesAgeesSelon3DeD842)) + return _aD_; + var _lE_ = caml_call2(Stdlib_Printf[4], _aC_, cons); + return caml_call1(Stdlib[2], _lE_); + } + function situation_familiale_calcul_a_p(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_PersonneSeule, payload: arg}; + } + var arg$0 = param[1]; + return {kind: cst_Couple, payload: arg$0}; + } + function situation_familiale_calcul_a_p$0(situation_familiale_calcul_a_p){ + var cons = caml_string_of_jsstring(situation_familiale_calcul_a_p.kind); + if(! caml_string_notequal(cons, cst_Couple)) return _aJ_; + if(! caml_string_notequal(cons, cst_PersonneSeule)) return _aI_; + var _lD_ = caml_call2(Stdlib_Printf[4], _aH_, cons); + return caml_call1(Stdlib[2], _lD_); + } + function collectivite_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; return {kind: cst_Guadeloupe, payload: arg}; + case 1: + var arg$0 = param[1]; return {kind: cst_Guyane, payload: arg$0}; + case 2: + var arg$1 = param[1]; return {kind: cst_Martinique, payload: arg$1}; + case 3: + var arg$2 = param[1]; return {kind: cst_LaReunion, payload: arg$2}; + case 4: + var arg$3 = param[1]; + return {kind: cst_SaintBarthelemy, payload: arg$3}; + case 5: + var arg$4 = param[1]; return {kind: cst_SaintMartin, payload: arg$4}; + case 6: + var arg$5 = param[1]; return {kind: cst_Metropole, payload: arg$5}; + case 7: + var arg$6 = param[1]; + return {kind: cst_SaintPierreEtMiquelon, payload: arg$6}; + default: + var arg$7 = param[1]; return {kind: cst_Mayotte, payload: arg$7}; + } + } + function collectivite_of_jsoo(collectivite){ + var cons = caml_string_of_jsstring(collectivite.kind); + if(! caml_string_notequal(cons, cst_Guadeloupe)) return _aT_; + if(! caml_string_notequal(cons, cst_Guyane)) return _aS_; + if(! caml_string_notequal(cons, cst_LaReunion)) return _aR_; + if(! caml_string_notequal(cons, cst_Martinique)) return _aQ_; + if(! caml_string_notequal(cons, cst_Mayotte)) return _aP_; + if(! caml_string_notequal(cons, cst_Metropole)) return _aO_; + if(! caml_string_notequal(cons, cst_SaintBarthelemy)) return _aN_; + if(! caml_string_notequal(cons, cst_SaintMartin)) return _aM_; + if(! caml_string_notequal(cons, cst_SaintPierreEtMiquelon)) return _aL_; + var _lC_ = caml_call2(Stdlib_Printf[4], _aK_, cons); + return caml_call1(Stdlib[2], _lC_); + } + function prise_en_charge_enfant_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_GardeAlterneePartageAlloca, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_GardeAlterneeAllocataireUn, payload: arg$0}; + case 2: + var arg$1 = param[1]; + return {kind: cst_EffectiveEtPermanente, payload: arg$1}; + case 3: + var arg$2 = param[1]; + return {kind: cst_ServicesSociauxAllocationV, payload: arg$2}; + default: + var arg$3 = param[1]; + return {kind: cst_ServicesSociauxAllocationV$0, payload: arg$3}; + } + } + function prise_en_charge_enfant_of_jsoo(prise_en_charge_enfant){ + var cons = caml_string_of_jsstring(prise_en_charge_enfant.kind); + if(! caml_string_notequal(cons, cst_EffectiveEtPermanente)) return _aZ_; + if(! caml_string_notequal(cons, cst_GardeAlterneeAllocataireUn)) + return _aY_; + if(! caml_string_notequal(cons, cst_GardeAlterneePartageAlloca)) + return _aX_; + if(! caml_string_notequal(cons, cst_ServicesSociauxAllocationV)) + return _aW_; + if(! caml_string_notequal(cons, cst_ServicesSociauxAllocationV$0)) + return _aV_; + var _lB_ = caml_call2(Stdlib_Printf[4], _aU_, cons); + return caml_call1(Stdlib[2], _lB_); + } + function situation_obligation_scolaire_(param){ + switch(param[0]){ + case 0: + var arg = param[1]; return {kind: cst_Avant, payload: arg}; + case 1: + var arg$0 = param[1]; return {kind: cst_Pendant, payload: arg$0}; + default: var arg$1 = param[1]; return {kind: cst_Apres, payload: arg$1}; + } + } + function situation_obligation_scolaire_$0(situation_obligation_scolaire){ + var cons = caml_string_of_jsstring(situation_obligation_scolaire.kind); + if(! caml_string_notequal(cons, cst_Apres)) return _a3_; + if(! caml_string_notequal(cons, cst_Avant)) return _a2_; + if(! caml_string_notequal(cons, cst_Pendant)) return _a1_; + var _lA_ = caml_call2(Stdlib_Printf[4], _a0_, cons); + return caml_call1(Stdlib[2], _lA_); + } + function element_prestations_familiales(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_PrestationAccueilJeuneEnfa, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_AllocationsFamiliales, payload: arg$0}; + case 2: + var arg$1 = param[1]; + return {kind: cst_ComplementFamilial, payload: arg$1}; + case 3: + var arg$2 = param[1]; + return {kind: cst_AllocationLogement, payload: arg$2}; + case 4: + var arg$3 = param[1]; + return {kind: cst_AllocationEducationEnfantH, payload: arg$3}; + case 5: + var arg$4 = param[1]; + return {kind: cst_AllocationSoutienFamilial, payload: arg$4}; + case 6: + var arg$5 = param[1]; + return {kind: cst_AllocationRentreeScolaire, payload: arg$5}; + default: + var arg$6 = param[1]; + return {kind: cst_AllocationJournalierePrese, payload: arg$6}; + } + } + function element_prestations_familiales$0(element_prestations_familiales){ + var cons = caml_string_of_jsstring(element_prestations_familiales.kind); + if(! caml_string_notequal(cons, cst_AllocationEducationEnfantH)) + return _ba_; + if(! caml_string_notequal(cons, cst_AllocationJournalierePrese)) + return _a$_; + if(! caml_string_notequal(cons, cst_AllocationLogement)) return _a__; + if(! caml_string_notequal(cons, cst_AllocationRentreeScolaire)) + return _a9_; + if(! caml_string_notequal(cons, cst_AllocationSoutienFamilial)) + return _a8_; + if(! caml_string_notequal(cons, cst_AllocationsFamiliales)) return _a7_; + if(! caml_string_notequal(cons, cst_ComplementFamilial)) return _a6_; + if(! caml_string_notequal(cons, cst_PrestationAccueilJeuneEnfa)) + return _a5_; + var _lz_ = caml_call2(Stdlib_Printf[4], _a4_, cons); + return caml_call1(Stdlib[2], _lz_); + } + function convention_bailleur_social_to_(convention_bailleur_social){ + var + _ly_ = + caml_call1(Runtime_ocaml_Runtime[35], convention_bailleur_social[2]); + return {conventionneLivreIIITitreVChapIII: + ! + ! + convention_bailleur_social[1], + reductionLoyerSolidaritePercue: _ly_}; + } + function convention_bailleur_social_of_(convention_bailleur_social){ + var + _lw_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + convention_bailleur_social.reductionLoyerSolidaritePercue), + _lx_ = caml_call1(Runtime_ocaml_Runtime[33], _lw_); + return [0, + convention_bailleur_social.conventionneLivreIIITitreVChapIII | 0, + _lx_]; + } + function convention_a_n_h_a_to_jsoo(convention_a_n_h_a){ + return {conventionneLivreIIITitreIIChapISec3: ! ! convention_a_n_h_a[1]}; + } + function convention_a_n_h_a_of_jsoo(convention_a_n_h_a){ + return [0, convention_a_n_h_a.conventionneLivreIIITitreIIChapISec3 | 0]; + } + function personne_sous_location_to_jsoo(personne_sous_location){ + var _lv_ = ! ! personne_sous_location[2]; + return {dateNaissancePersonneSousLocation: + caml_call1(Runtime_jsoo_Runtime[5], personne_sous_location[1]), + conformeArticleL4421: _lv_}; + } + function personne_sous_location_of_jsoo(personne_sous_location){ + var _lu_ = personne_sous_location.conformeArticleL4421 | 0; + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + personne_sous_location.dateNaissancePersonneSousLocation), + _lu_]; + } + function patrimoine_to_jsoo(patrimoine){ + var _lt_ = caml_call1(Runtime_ocaml_Runtime[35], patrimoine[2]); + return {produisantRevenuPeriodeR82233R8224: + caml_call1(Runtime_ocaml_Runtime[35], patrimoine[1]), + neProduisantPasRevenuPeriodeR82233R8224: _lt_}; + } + function patrimoine_of_jsoo(patrimoine){ + var + _lq_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + patrimoine.neProduisantPasRevenuPeriodeR82233R8224), + _lr_ = caml_call1(Runtime_ocaml_Runtime[33], _lq_), + _ls_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + patrimoine.produisantRevenuPeriodeR82233R8224); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _ls_), _lr_]; + } + function conditions_etrangers_to_jsoo(conditions_etrangers){ + return {satisfaitConditionsL5122CodeSecuriteSociale: + ! + ! + conditions_etrangers[1], + satisfaitArt4Ordonnance2002Mayotte: ! ! conditions_etrangers[2]}; + } + function conditions_etrangers_of_jsoo(conditions_etrangers){ + return [0, + conditions_etrangers.satisfaitConditionsL5122CodeSecuriteSociale + | 0, + conditions_etrangers.satisfaitArt4Ordonnance2002Mayotte | 0]; + } + function personne_vivant_habituellement(personne_vivant_habituellement){ + var + _lp_ = + caml_call1 + (Runtime_ocaml_Runtime[35], personne_vivant_habituellement[2]); + return {dureeResidenceDurantPeriodeR82231SuperieureA6Mois: + ! + ! + personne_vivant_habituellement[1], + ressources: _lp_}; + } + function personne_vivant_habituellement$0(personne_vivant_habituellement){ + var + _ln_ = + caml_call1 + (Runtime_ocaml_Runtime[42], personne_vivant_habituellement.ressources), + _lo_ = caml_call1(Runtime_ocaml_Runtime[33], _ln_); + return [0, + personne_vivant_habituellement.dureeResidenceDurantPeriodeR82231SuperieureA6Mois + | 0, + _lo_]; + } + function eligibilite_aide_personnalisee(eligibilite_aide_personnalisee){ + var _li_ = eligibilite_aide_personnalisee[4]; + function _lj_(x){return caml_call1(Runtime_ocaml_Runtime[43], x);} + var + _lk_ = caml_js_from_array(caml_call2(Stdlib_Array[15], _lj_, _li_)), + _ll_ = + caml_call1 + (Runtime_ocaml_Runtime[48], eligibilite_aide_personnalisee[3]), + _lm_ = ! ! eligibilite_aide_personnalisee[2]; + return {dateCourante: + caml_call1 + (Runtime_jsoo_Runtime[5], eligibilite_aide_personnalisee[1]), + eligibilite: _lm_, + nombrePersonnesAChargePrisesEnCompte: _ll_, + coefficentsEnfantsGardeAlterneePrisEnCompte: _lk_}; + } + function eligibilite_aide_personnalisee$0(eligibilite_aide_personnalisee){ + var + _ld_ = + caml_js_to_array + (eligibilite_aide_personnalisee.coefficentsEnfantsGardeAlterneePrisEnCompte); + function _le_(x){return caml_call1(Runtime_ocaml_Runtime[42], x);} + var + _lf_ = caml_call1(caml_call1(Stdlib_Array[15], _le_), _ld_), + _lg_ = + caml_call1 + (Runtime_ocaml_Runtime[49], + eligibilite_aide_personnalisee.nombrePersonnesAChargePrisesEnCompte), + _lh_ = eligibilite_aide_personnalisee.eligibilite | 0; + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + eligibilite_aide_personnalisee.dateCourante), + _lh_, + _lg_, + _lf_]; + } + function eligibilite_prime_de_demenagem(eligibilite_prime_de_demenagem){ + return {montantPrimeDemenagement: + caml_call1 + (Runtime_ocaml_Runtime[35], eligibilite_prime_de_demenagem[1])}; + } + function eligibilite_prime_de_demenagem$0(eligibilite_prime_de_demenagem){ + var + _lc_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + eligibilite_prime_de_demenagem.montantPrimeDemenagement); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _lc_)]; + } + function ressources_aides_personnelle_l(ressources_aides_personnelle_l){ + return {ressourcesPrisesEnCompte: + caml_call1 + (Runtime_ocaml_Runtime[35], ressources_aides_personnelle_l[1])}; + } + function ressources_aides_personnelle_l$0(ressources_aides_personnelle_l){ + var + _lb_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + ressources_aides_personnelle_l.ressourcesPrisesEnCompte); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _lb_)]; + } + function contributions_sociales_aides_p(contributions_sociales_aides_p){ + function t276(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _k__ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), + _k$_ = caml_call1(Runtime_ocaml_Runtime[33], _k__), + _la_ = caml_call1(contributions_sociales_aides_p[1], _k$_); + return caml_call1(Runtime_ocaml_Runtime[35], _la_); + }); + } + return {montant: caml_js_wrap_meth_callback(t276)}; + } + function contributions_sociales_aides_p$0(contributions_sociales_aides_p){return [0, caml_call1(Stdlib[2], cst_The_function_montant_trans)]; + } + function calcul_aide_personnalisee_loge(calcul_aide_personnalisee_loge){ + function t283(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _k7_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), + _k8_ = caml_call1(Runtime_ocaml_Runtime[33], _k7_), + _k9_ = caml_call1(calcul_aide_personnalisee_loge[7], _k8_); + return caml_call1(Runtime_ocaml_Runtime[35], _k9_); + }); + } + var + t282 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[6]), + t281 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[5]), + t280 = + caml_call1 + (Runtime_ocaml_Runtime[43], calcul_aide_personnalisee_loge[4]), + t279 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[3]), + t278 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[2]), + t277 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[1]); + return {montantForfaitaireChargesD82316: t277, + plafondLoyerD823162: t278, + participationMinimale: t279, + tauxCompositionFamiliale: t280, + participationPersonnelle: t281, + aideFinaleFormule: t282, + traitementAideFinale: caml_js_wrap_meth_callback(t283)}; + } + function calcul_aide_personnalisee_loge$0(calcul_aide_personnalisee_loge){ + var + _kW_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai), + _kX_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.aideFinaleFormule), + _kY_ = caml_call1(Runtime_ocaml_Runtime[33], _kX_), + _kZ_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.participationPersonnelle), + _k0_ = caml_call1(Runtime_ocaml_Runtime[33], _kZ_), + _k1_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.tauxCompositionFamiliale), + _k2_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.participationMinimale), + _k3_ = caml_call1(Runtime_ocaml_Runtime[33], _k2_), + _k4_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.plafondLoyerD823162), + _k5_ = caml_call1(Runtime_ocaml_Runtime[33], _k4_), + _k6_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.montantForfaitaireChargesD82316); + return [0, + caml_call1(Runtime_ocaml_Runtime[33], _k6_), + _k5_, + _k3_, + _k1_, + _k0_, + _kY_, + _kW_]; + } + function calcul_equivalence_loyer_minim(calcul_equivalence_loyer_minim){ + return {montant: + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_equivalence_loyer_minim[1])}; + } + function calcul_equivalence_loyer_minim$0(calcul_equivalence_loyer_minim){ + var + _kV_ = + caml_call1 + (Runtime_ocaml_Runtime[42], calcul_equivalence_loyer_minim.montant); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _kV_)]; + } + function calcul_nombre_part_logement_fo(calcul_nombre_part_logement_fo){ + return {nNombrePartsD83225: + caml_call1 + (Runtime_ocaml_Runtime[43], calcul_nombre_part_logement_fo[1])}; + } + function calcul_nombre_part_logement_fo$0(calcul_nombre_part_logement_fo){ + return [0, + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_nombre_part_logement_fo.nNombrePartsD83225)]; + } + function calcul_aide_personnalisee_loge$1(calcul_aide_personnalisee_loge){ + function t302(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _kS_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), + _kT_ = caml_call1(Runtime_ocaml_Runtime[33], _kS_), + _kU_ = caml_call1(calcul_aide_personnalisee_loge[9], _kT_); + return caml_call1(Runtime_ocaml_Runtime[35], _kU_); + }); + } + var + t301 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[8]), + t300 = + caml_call1 + (Runtime_ocaml_Runtime[43], calcul_aide_personnalisee_loge[7]), + t299 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[6]), + t298 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[5]), + t297 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[4]), + t296 = + caml_call1 + (Runtime_ocaml_Runtime[43], calcul_aide_personnalisee_loge[3]), + t295 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[2]), + t294 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[1]); + return {coefficientMultiplicateurD83225: t294, + coefficientRD83225: t295, + nNombrePartsD83225: t296, + equivalenceLoyerEligible: t297, + plafondEquivalenceLoyerEligible: t298, + equivalenceLoyerMinimale: t299, + coefficientPriseEnChargeD83225: t300, + aideFinaleFormule: t301, + traitementAideFinale: caml_js_wrap_meth_callback(t302)}; + } + function calcul_aide_personnalisee_loge$2(calcul_aide_personnalisee_loge){ + var + _kE_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$0), + _kF_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.aideFinaleFormule), + _kG_ = caml_call1(Runtime_ocaml_Runtime[33], _kF_), + _kH_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.coefficientPriseEnChargeD83225), + _kI_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.equivalenceLoyerMinimale), + _kJ_ = caml_call1(Runtime_ocaml_Runtime[33], _kI_), + _kK_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.plafondEquivalenceLoyerEligible), + _kL_ = caml_call1(Runtime_ocaml_Runtime[33], _kK_), + _kM_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.equivalenceLoyerEligible), + _kN_ = caml_call1(Runtime_ocaml_Runtime[33], _kM_), + _kO_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.nNombrePartsD83225), + _kP_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.coefficientRD83225), + _kQ_ = caml_call1(Runtime_ocaml_Runtime[33], _kP_), + _kR_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.coefficientMultiplicateurD83225); + return [0, + caml_call1(Runtime_ocaml_Runtime[33], _kR_), + _kQ_, + _kO_, + _kN_, + _kL_, + _kJ_, + _kH_, + _kG_, + _kE_]; + } + function calcul_nombre_parts_accession_(calcul_nombre_parts_accession_){ + return {nNombrePartsD83211: + caml_call1 + (Runtime_ocaml_Runtime[43], calcul_nombre_parts_accession_[1])}; + } + function calcul_nombre_parts_accession_$0(calcul_nombre_parts_accession_){ + return [0, + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_nombre_parts_accession_.nNombrePartsD83211)]; + } + function calcul_aide_personnalisee_loge$3(calcul_aide_personnalisee_loge){ + function t317(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _kB_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), + _kC_ = caml_call1(Runtime_ocaml_Runtime[33], _kB_), + _kD_ = caml_call1(calcul_aide_personnalisee_loge[5], _kC_); + return caml_call1(Runtime_ocaml_Runtime[35], _kD_); + }); + } + var + t316 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[4]), + t315 = + caml_call1 + (Runtime_ocaml_Runtime[43], calcul_aide_personnalisee_loge[3]), + t314 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[2]), + t313 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[1]); + return {mensualiteEligible: t313, + mensualiteMinimale: t314, + coefficientPriseEnChargeD83210: t315, + aideFinaleFormule: t316, + traitementAideFinale: caml_js_wrap_meth_callback(t317)}; + } + function calcul_aide_personnalisee_loge$4(calcul_aide_personnalisee_loge){ + var + _ku_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$1), + _kv_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.aideFinaleFormule), + _kw_ = caml_call1(Runtime_ocaml_Runtime[33], _kv_), + _kx_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.coefficientPriseEnChargeD83210), + _ky_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.mensualiteMinimale), + _kz_ = caml_call1(Runtime_ocaml_Runtime[33], _ky_), + _kA_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.mensualiteEligible); + return [0, + caml_call1(Runtime_ocaml_Runtime[33], _kA_), + _kz_, + _kx_, + _kw_, + _ku_]; + } + function traitement_formule_aide_finale(traitement_formule_aide_finale){ + function t323(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _kr_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), + _ks_ = caml_call1(Runtime_ocaml_Runtime[33], _kr_), + _kt_ = caml_call1(traitement_formule_aide_finale[2], _ks_); + return caml_call1(Runtime_ocaml_Runtime[35], _kt_); + }); + } + var + t322 = + caml_call1 + (Runtime_ocaml_Runtime[35], traitement_formule_aide_finale[1]); + return {aideFinaleFormule: t322, + traitementAideFinale: caml_js_wrap_meth_callback(t323)}; + } + function traitement_formule_aide_finale$0(traitement_formule_aide_finale){ + var + _kp_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$2), + _kq_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + traitement_formule_aide_finale.aideFinaleFormule); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _kq_), _kp_]; + } + function calcul_aide_personnalisee_loge$5(calcul_aide_personnalisee_loge){ + function t326(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _km_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), + _kn_ = caml_call1(Runtime_ocaml_Runtime[33], _km_), + _ko_ = caml_call1(calcul_aide_personnalisee_loge[2], _kn_); + return caml_call1(Runtime_ocaml_Runtime[35], _ko_); + }); + } + var + t325 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[1]); + return {aideFinaleFormule: t325, + traitementAideFinale: caml_js_wrap_meth_callback(t326)}; + } + function calcul_aide_personnalisee_loge$6(calcul_aide_personnalisee_loge){ + var + _kk_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$3), + _kl_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.aideFinaleFormule); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _kl_), _kk_]; + } + function infos_changement_logement_d842(infos_changement_logement_d842){ + var + _kj_ = + caml_call1 + (Runtime_ocaml_Runtime[35], infos_changement_logement_d842[2]); + return {ancienLoyerPrincipal: + caml_call1 + (Runtime_ocaml_Runtime[35], infos_changement_logement_d842[1]), + ancienneAllocationLogement: _kj_}; + } + function infos_changement_logement_d842$0(infos_changement_logement_d842){ + var + _kg_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + infos_changement_logement_d842.ancienneAllocationLogement), + _kh_ = caml_call1(Runtime_ocaml_Runtime[33], _kg_), + _ki_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + infos_changement_logement_d842.ancienLoyerPrincipal); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _ki_), _kh_]; + } + function calcul_allocation_logement_loc(calcul_allocation_logement_loc){ + function t333(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _kd_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), + _ke_ = caml_call1(Runtime_ocaml_Runtime[33], _kd_), + _kf_ = caml_call1(calcul_allocation_logement_loc[2], _ke_); + return caml_call1(Runtime_ocaml_Runtime[35], _kf_); + }); + } + var + t332 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_loc[1]); + return {aideFinaleFormule: t332, + traitementAideFinale: caml_js_wrap_meth_callback(t333)}; + } + function calcul_allocation_logement_loc$0(calcul_allocation_logement_loc){ + var + _kb_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$4), + _kc_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_loc.aideFinaleFormule); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _kc_), _kb_]; + } + function calcul_allocation_logement_acc(calcul_allocation_logement_acc){ + function t336(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _j__ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), + _j$_ = caml_call1(Runtime_ocaml_Runtime[33], _j__), + _ka_ = caml_call1(calcul_allocation_logement_acc[2], _j$_); + return caml_call1(Runtime_ocaml_Runtime[35], _ka_); + }); + } + var + t335 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_acc[1]); + return {aideFinaleFormule: t335, + traitementAideFinale: caml_js_wrap_meth_callback(t336)}; + } + function calcul_allocation_logement_acc$0(calcul_allocation_logement_acc){ + var + _j8_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$5), + _j9_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_acc.aideFinaleFormule); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _j9_), _j8_]; + } + function calcul_allocation_logement_foy(calcul_allocation_logement_foy){ + function t343(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _j5_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), + _j6_ = caml_call1(Runtime_ocaml_Runtime[33], _j5_), + _j7_ = caml_call1(calcul_allocation_logement_foy[6], _j6_); + return caml_call1(Runtime_ocaml_Runtime[35], _j7_); + }); + } + var + t342 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_foy[5]), + t341 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_foy[4]), + t340 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_foy[3]), + t339 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_foy[2]), + t338 = + caml_call1 + (Runtime_ocaml_Runtime[43], calcul_allocation_logement_foy[1]); + return {coefficientPriseEnCharge: t338, + equivalenceLoyer: t339, + montantForfaitaireCharges: t340, + loyerMinimal: t341, + aideFinaleFormule: t342, + traitementAideFinale: caml_js_wrap_meth_callback(t343)}; + } + function calcul_allocation_logement_foy$0(calcul_allocation_logement_foy){ + var + _jW_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$6), + _jX_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_foy.aideFinaleFormule), + _jY_ = caml_call1(Runtime_ocaml_Runtime[33], _jX_), + _jZ_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_foy.loyerMinimal), + _j0_ = caml_call1(Runtime_ocaml_Runtime[33], _jZ_), + _j1_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_foy.montantForfaitaireCharges), + _j2_ = caml_call1(Runtime_ocaml_Runtime[33], _j1_), + _j3_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_foy.equivalenceLoyer), + _j4_ = caml_call1(Runtime_ocaml_Runtime[33], _j3_); + return [0, + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_foy.coefficientPriseEnCharge), + _j4_, + _j2_, + _j0_, + _jY_, + _jW_]; + } + function calcul_allocation_logement_to_(calcul_allocation_logement){ + function t350(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _jT_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), + _jU_ = caml_call1(Runtime_ocaml_Runtime[33], _jT_), + _jV_ = caml_call1(calcul_allocation_logement[2], _jU_); + return caml_call1(Runtime_ocaml_Runtime[35], _jV_); + }); + } + var + t349 = + caml_call1(Runtime_ocaml_Runtime[35], calcul_allocation_logement[1]); + return {aideFinaleFormule: t349, + traitementAideFinale: caml_js_wrap_meth_callback(t350)}; + } + function calcul_allocation_logement_of_(calcul_allocation_logement){ + var + _jR_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$7), + _jS_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement.aideFinaleFormule); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _jS_), _jR_]; + } + function ouverture_droits_retraite_to_j(ouverture_droits_retraite){ + return {ageOuvertureDroit: + caml_call1(Runtime_jsoo_Runtime[3], ouverture_droits_retraite[1])}; + } + function ouverture_droits_retraite_of_j(ouverture_droits_retraite){ + return [0, + caml_call1 + (Runtime_jsoo_Runtime[2], + ouverture_droits_retraite.ageOuvertureDroit)]; + } + function impaye_depense_logement_to_jso(impaye_depense_logement){ + return {montantImpaye: + caml_call1(Runtime_ocaml_Runtime[35], impaye_depense_logement[1])}; + } + function impaye_depense_logement_of_jso(impaye_depense_logement){ + var + _jQ_ = + caml_call1 + (Runtime_ocaml_Runtime[42], impaye_depense_logement.montantImpaye); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _jQ_)]; + } + function calculette_aides_au_logement_t(calculette_aides_au_logement){ + var _jL_ = calculette_aides_au_logement[4]; + function _jM_(x){return caml_call1(Runtime_ocaml_Runtime[43], x);} + var t359 = caml_js_from_array(caml_call2(Stdlib_Array[15], _jM_, _jL_)); + function t358(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _jN_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), + _jO_ = caml_call1(Runtime_ocaml_Runtime[33], _jN_), + _jP_ = caml_call1(calculette_aides_au_logement[3], _jO_); + return caml_call1(Runtime_ocaml_Runtime[35], _jP_); + }); + } + var + t357 = + caml_call1(Runtime_ocaml_Runtime[35], calculette_aides_au_logement[2]), + t356 = ! ! calculette_aides_au_logement[1]; + return {eligibilite: t356, + aideFinaleFormule: t357, + traitementAideFinale: caml_js_wrap_meth_callback(t358), + coefficentsEnfantsGardeAlterneePrisEnCompte: t359}; + } + function calculette_aides_au_logement_o(calculette_aides_au_logement){ + var + _jF_ = + caml_js_to_array + (calculette_aides_au_logement.coefficentsEnfantsGardeAlterneePrisEnCompte); + function _jG_(x){return caml_call1(Runtime_ocaml_Runtime[42], x);} + var + _jH_ = caml_call1(caml_call1(Stdlib_Array[15], _jG_), _jF_), + _jI_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$8), + _jJ_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calculette_aides_au_logement.aideFinaleFormule), + _jK_ = caml_call1(Runtime_ocaml_Runtime[33], _jJ_); + return [0, calculette_aides_au_logement.eligibilite | 0, _jK_, _jI_, _jH_]; + } + function calculette_aides_au_logement_g(calculette_aides_au_logement_g){ + var + _jE_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calculette_aides_au_logement_g[2]); + return {eligibilite: ! ! calculette_aides_au_logement_g[1], + aideFinale: _jE_}; + } + function calculette_aides_au_logement_g$0(calculette_aides_au_logement_g){ + var + _jC_ = + caml_call1 + (Runtime_ocaml_Runtime[42], calculette_aides_au_logement_g.aideFinale), + _jD_ = caml_call1(Runtime_ocaml_Runtime[33], _jC_); + return [0, calculette_aides_au_logement_g.eligibilite | 0, _jD_]; + } + function base_mensuelle_allocations_fam(base_mensuelle_allocations_fam){ + return {montant: + caml_call1 + (Runtime_ocaml_Runtime[35], base_mensuelle_allocations_fam[1])}; + } + function base_mensuelle_allocations_fam$0(base_mensuelle_allocations_fam){ + var + _jB_ = + caml_call1 + (Runtime_ocaml_Runtime[42], base_mensuelle_allocations_fam.montant); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _jB_)]; + } + function verification_age_inferieur_ou_(verification_age_inferieur_ou_){return {estInferieurOuEgal: ! ! verification_age_inferieur_ou_[1]}; + } + function verification_age_inferieur_ou_$0(verification_age_inferieur_ou_){return [0, verification_age_inferieur_ou_.estInferieurOuEgal | 0]; + } + function verification_age_superieur_a_t(verification_age_superieur_a){return {estSuperieur: ! ! verification_age_superieur_a[1]}; + } + function verification_age_superieur_a_o(verification_age_superieur_a){return [0, verification_age_superieur_a.estSuperieur | 0]; + } + function smic_to_jsoo(smic){ + return {brutHoraire: caml_call1(Runtime_ocaml_Runtime[35], smic[1])}; + } + function smic_of_jsoo(smic){ + var _jA_ = caml_call1(Runtime_ocaml_Runtime[42], smic.brutHoraire); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _jA_)]; + } + function neuf_ou_ancien_to_jsoo(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_Neuf, payload: arg}; + } + var arg$0 = param[1]; + return {kind: cst_Ancien, payload: ameliore_par_occupant_to_jsoo(arg$0)}; + } + function neuf_ou_ancien_of_jsoo(neuf_ou_ancien){ + var cons = caml_string_of_jsstring(neuf_ou_ancien.kind); + if(! caml_string_notequal(cons, cst_Ancien)) + return [1, ameliore_par_occupant_of_jsoo(neuf_ou_ancien.payload)]; + if(! caml_string_notequal(cons, cst_Neuf)) return _bc_; + var _jz_ = caml_call2(Stdlib_Printf[4], _bb_, cons); + return caml_call1(Stdlib[2], _jz_); + } + function tranche_revenu_to_jsoo(tranche_revenu){ + var + _jx_ = caml_call1(Runtime_ocaml_Runtime[43], tranche_revenu[3]), + _jy_ = caml_call1(Runtime_ocaml_Runtime[35], tranche_revenu[2]); + return {haut: limite_tranche_to_jsoo(tranche_revenu[1]), + bas: _jy_, + taux: _jx_}; + } + function tranche_revenu_of_jsoo(tranche_revenu){ + var + _ju_ = caml_call1(Runtime_ocaml_Runtime[42], tranche_revenu.taux), + _jv_ = caml_call1(Runtime_ocaml_Runtime[42], tranche_revenu.bas), + _jw_ = caml_call1(Runtime_ocaml_Runtime[33], _jv_); + return [0, limite_tranche_of_jsoo(tranche_revenu.haut), _jw_, _ju_]; + } + function tranche_revenu_decimal_to_jsoo(tranche_revenu_decimal){ + var + _js_ = caml_call1(Runtime_ocaml_Runtime[43], tranche_revenu_decimal[3]), + _jt_ = caml_call1(Runtime_ocaml_Runtime[43], tranche_revenu_decimal[2]); + return {haut: limite_tranche_decimal_to_jsoo(tranche_revenu_decimal[1]), + bas: _jt_, + taux: _js_}; + } + function tranche_revenu_decimal_of_jsoo(tranche_revenu_decimal){ + var + _jq_ = caml_call1(Runtime_ocaml_Runtime[42], tranche_revenu_decimal.taux), + _jr_ = caml_call1(Runtime_ocaml_Runtime[42], tranche_revenu_decimal.bas); + return [0, + limite_tranche_decimal_of_jsoo(tranche_revenu_decimal.haut), + _jr_, + _jq_]; + } + function autre_personne_a_charge_to_jso(autre_personne_a_charge){ + var + _jk_ = ! ! autre_personne_a_charge[7], + _jl_ = ! ! autre_personne_a_charge[6], + _jm_ = ! ! autre_personne_a_charge[5], + _jn_ = parente_to_jsoo(autre_personne_a_charge[4]), + _jo_ = ! ! autre_personne_a_charge[3], + _jp_ = caml_call1(Runtime_ocaml_Runtime[35], autre_personne_a_charge[2]); + return {dateNaissance: + caml_call1(Runtime_jsoo_Runtime[5], autre_personne_a_charge[1]), + ressources: _jp_, + ascendantDescendantCollateralDeuxiemeTroisiemeDegre: _jo_, + parente: _jn_, + incapacite80PourcentOuRestrictionEmploi: _jm_, + beneficiaireL16119L3518L6433Secu: _jl_, + titulaireAllocationPersonneAgee: _jk_}; + } + function autre_personne_a_charge_of_jso(autre_personne_a_charge){ + var + _jd_ = autre_personne_a_charge.titulaireAllocationPersonneAgee | 0, + _je_ = autre_personne_a_charge.beneficiaireL16119L3518L6433Secu | 0, + _jf_ = + autre_personne_a_charge.incapacite80PourcentOuRestrictionEmploi | 0, + _jg_ = parente_of_jsoo(autre_personne_a_charge.parente), + _jh_ = + autre_personne_a_charge.ascendantDescendantCollateralDeuxiemeTroisiemeDegre + | 0, + _ji_ = + caml_call1 + (Runtime_ocaml_Runtime[42], autre_personne_a_charge.ressources), + _jj_ = caml_call1(Runtime_ocaml_Runtime[33], _ji_); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], autre_personne_a_charge.dateNaissance), + _jj_, + _jh_, + _jg_, + _jf_, + _je_, + _jd_]; + } + function date_naissance_troisieme_ou_de(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_MoinsDeTroisEnfants, payload: arg}; + } + var arg$0 = param[1]; + return {kind: cst_PlusDeTroisEnfants, + payload: date_de_naissance_ou_mois_de_g(arg$0)}; + } + function date_naissance_troisieme_ou_de$0(date_naissance_troisieme_ou_de){ + var cons = caml_string_of_jsstring(date_naissance_troisieme_ou_de.kind); + if(! caml_string_notequal(cons, cst_MoinsDeTroisEnfants)) return _be_; + if(! caml_string_notequal(cons, cst_PlusDeTroisEnfants)) + return [1, + date_de_naissance_ou_mois_de_g$0 + (date_naissance_troisieme_ou_de.payload)]; + var _jc_ = caml_call2(Stdlib_Printf[4], _bd_, cons); + return caml_call1(Stdlib[2], _jc_); + } + function eligibilite_allocation_logemen(eligibilite_allocation_logemen){ + var _i__ = eligibilite_allocation_logemen[3]; + function _i$_(x){return caml_call1(Runtime_ocaml_Runtime[43], x);} + var + _ja_ = caml_js_from_array(caml_call2(Stdlib_Array[15], _i$_, _i__)), + _jb_ = + caml_call1 + (Runtime_ocaml_Runtime[48], eligibilite_allocation_logemen[2]); + return {eligibilite: + type_eligibilite_allocation_lo(eligibilite_allocation_logemen[1]), + nombrePersonnesAChargePrisesEnCompte: _jb_, + coefficentsEnfantsGardeAlterneePrisEnCompte: _ja_}; + } + function eligibilite_allocation_logemen$0(eligibilite_allocation_logemen){ + var + _i6_ = + caml_js_to_array + (eligibilite_allocation_logemen.coefficentsEnfantsGardeAlterneePrisEnCompte); + function _i7_(x){return caml_call1(Runtime_ocaml_Runtime[42], x);} + var + _i8_ = caml_call1(caml_call1(Stdlib_Array[15], _i7_), _i6_), + _i9_ = + caml_call1 + (Runtime_ocaml_Runtime[49], + eligibilite_allocation_logemen.nombrePersonnesAChargePrisesEnCompte); + return [0, + type_eligibilite_allocation_lo$0 + (eligibilite_allocation_logemen.eligibilite), + _i9_, + _i8_]; + } + function pret_to_jsoo(pret){ + var + _i3_ = accord_financement_representan(pret[4]), + _i4_ = titulaire_pret_to_jsoo(pret[3]), + _i5_ = caml_call1(Runtime_jsoo_Runtime[5], pret[2]); + return {typePret: type_pret_to_jsoo(pret[1]), + dateSignature: _i5_, + titulairePret: _i4_, + accordFinancementRepresentantEtatOutreMer: _i3_}; + } + function pret_of_jsoo(pret){ + var + _i0_ = + accord_financement_representan$0 + (pret.accordFinancementRepresentantEtatOutreMer), + _i1_ = titulaire_pret_of_jsoo(pret.titulairePret), + _i2_ = caml_call1(Runtime_jsoo_Runtime[4], pret.dateSignature); + return [0, type_pret_of_jsoo(pret.typePret), _i2_, _i1_, _i0_]; + } + function logement_foyer_to_jsoo(logement_foyer){ + var + _iR_ = ! ! logement_foyer[10], + _iS_ = ! ! logement_foyer[9], + _iT_ = categorie_equivalence_loyer_al(logement_foyer[8]), + _iU_ = caml_call1(Runtime_ocaml_Runtime[35], logement_foyer[7]), + _iV_ = ! ! logement_foyer[6], + _iW_ = caml_call1(Runtime_jsoo_Runtime[5], logement_foyer[5]), + _iX_ = ! ! logement_foyer[4], + _iY_ = ! ! logement_foyer[3], + _iZ_ = ! ! logement_foyer[2]; + return {typeUser: type_logement_foyer_to_jsoo(logement_foyer[1]), + remplitConditionsR83221: _iZ_, + conventionneLivreIIITitreVChapIII: _iY_, + conventionneSelonReglesMayotte: _iX_, + dateConventionnement: _iW_, + construitApplicationLoi195712III: _iV_, + redevance: _iU_, + categorieEquivalenceLoyerD84216: _iT_, + beneficiaireAideAdulteOuEnfantHandicapes: _iS_, + logementMeubleD8422: _iR_}; + } + function logement_foyer_of_jsoo(logement_foyer){ + var + _iH_ = logement_foyer.logementMeubleD8422 | 0, + _iI_ = logement_foyer.beneficiaireAideAdulteOuEnfantHandicapes | 0, + _iJ_ = + categorie_equivalence_loyer_al$0 + (logement_foyer.categorieEquivalenceLoyerD84216), + _iK_ = caml_call1(Runtime_ocaml_Runtime[42], logement_foyer.redevance), + _iL_ = caml_call1(Runtime_ocaml_Runtime[33], _iK_), + _iM_ = logement_foyer.construitApplicationLoi195712III | 0, + _iN_ = + caml_call1 + (Runtime_jsoo_Runtime[4], logement_foyer.dateConventionnement), + _iO_ = logement_foyer.conventionneSelonReglesMayotte | 0, + _iP_ = logement_foyer.conventionneLivreIIITitreVChapIII | 0, + _iQ_ = logement_foyer.remplitConditionsR83221 | 0; + return [0, + type_logement_foyer_of_jsoo(logement_foyer.typeUser), + _iQ_, + _iP_, + _iO_, + _iN_, + _iM_, + _iL_, + _iJ_, + _iI_, + _iH_]; + } + function enfant_prestations_familiales_(enfant_prestations_familiales){ + var + _iB_ = ! ! enfant_prestations_familiales[7], + _iC_ = ! ! enfant_prestations_familiales[6], + _iD_ = prise_en_charge_enfant_to_jsoo(enfant_prestations_familiales[5]), + _iE_ = + caml_call1(Runtime_jsoo_Runtime[5], enfant_prestations_familiales[4]), + _iF_ = + caml_call1(Runtime_ocaml_Runtime[35], enfant_prestations_familiales[3]), + _iG_ = situation_obligation_scolaire_(enfant_prestations_familiales[2]); + return {identifiant: + caml_call1 + (Runtime_ocaml_Runtime[48], enfant_prestations_familiales[1]), + obligationScolaire: _iG_, + remunerationMensuelle: _iF_, + dateDeNaissance: _iE_, + priseEnCharge: _iD_, + aDejaOuvertDroitAuxAllocationsFamiliales: _iC_, + beneficieTitrePersonnelAidePersonnelleLogement: _iB_}; + } + function enfant_prestations_familiales_$0(enfant_prestations_familiales){ + var + _iu_ = + enfant_prestations_familiales.beneficieTitrePersonnelAidePersonnelleLogement + | 0, + _iv_ = + enfant_prestations_familiales.aDejaOuvertDroitAuxAllocationsFamiliales + | 0, + _iw_ = + prise_en_charge_enfant_of_jsoo + (enfant_prestations_familiales.priseEnCharge), + _ix_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + enfant_prestations_familiales.dateDeNaissance), + _iy_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + enfant_prestations_familiales.remunerationMensuelle), + _iz_ = caml_call1(Runtime_ocaml_Runtime[33], _iy_), + _iA_ = + situation_obligation_scolaire_$0 + (enfant_prestations_familiales.obligationScolaire); + return [0, + caml_call1 + (Runtime_ocaml_Runtime[49], + enfant_prestations_familiales.identifiant), + _iA_, + _iz_, + _ix_, + _iw_, + _iv_, + _iu_]; + } + function type_bailleur_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_BailleurSocial, + payload: convention_bailleur_social_to_(arg)}; + case 1: + var arg$0 = param[1]; + return {kind: cst_BailleurPriveAvecConventio, + payload: convention_a_n_h_a_to_jsoo(arg$0)}; + default: + var arg$1 = param[1]; return {kind: cst_BailleurPrive, payload: arg$1}; + } + } + function type_bailleur_of_jsoo(type_bailleur){ + var cons = caml_string_of_jsstring(type_bailleur.kind); + if(! caml_string_notequal(cons, cst_BailleurPrive)) return _bg_; + if(! caml_string_notequal(cons, cst_BailleurPriveAvecConventio)) + return [1, convention_a_n_h_a_of_jsoo(type_bailleur.payload)]; + if(! caml_string_notequal(cons, cst_BailleurSocial)) + return [0, convention_bailleur_social_of_(type_bailleur.payload)]; + var _it_ = caml_call2(Stdlib_Printf[4], _bf_, cons); + return caml_call1(Stdlib[2], _it_); + } + function loue_ou_sous_loue_a_des_tiers_(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_Non, payload: arg}; + } + var arg$0 = param[1]; + return {kind: cst_Oui, payload: personne_sous_location_to_jsoo(arg$0)}; + } + function loue_ou_sous_loue_a_des_tiers_$0(loue_ou_sous_loue_a_des_tiers){ + var cons = caml_string_of_jsstring(loue_ou_sous_loue_a_des_tiers.kind); + if(! caml_string_notequal(cons, cst_Non)) return _bi_; + if(! caml_string_notequal(cons, cst_Oui)) + return [1, + personne_sous_location_of_jsoo + (loue_ou_sous_loue_a_des_tiers.payload)]; + var _is_ = caml_call2(Stdlib_Printf[4], _bh_, cons); + return caml_call1(Stdlib[2], _is_); + } + function nationalite_to_jsoo(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_Francaise, payload: arg}; + } + var arg$0 = param[1]; + return {kind: cst_Etrangere, payload: conditions_etrangers_to_jsoo(arg$0)}; + } + function nationalite_of_jsoo(nationalite){ + var cons = caml_string_of_jsstring(nationalite.kind); + if(! caml_string_notequal(cons, cst_Etrangere)) + return [1, conditions_etrangers_of_jsoo(nationalite.payload)]; + if(! caml_string_notequal(cons, cst_Francaise)) return _bk_; + var _ir_ = caml_call2(Stdlib_Printf[4], _bj_, cons); + return caml_call1(Stdlib[2], _ir_); + } + function changement_logement_d842_4_to_(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_Changement, + payload: infos_changement_logement_d842(arg)}; + } + var arg$0 = param[1]; + return {kind: cst_PasDeChangement, payload: arg$0}; + } + function changement_logement_d842_4_of_(changement_logement_d842_4){ + var cons = caml_string_of_jsstring(changement_logement_d842_4.kind); + if(! caml_string_notequal(cons, cst_Changement)) + return [0, + infos_changement_logement_d842$0 + (changement_logement_d842_4.payload)]; + if(! caml_string_notequal(cons, cst_PasDeChangement)) return _bm_; + var _iq_ = caml_call2(Stdlib_Printf[4], _bl_, cons); + return caml_call1(Stdlib[2], _iq_); + } + function informations_prime_de_demenage(informations_prime_de_demenage){ + var + _ip_ = date_naissance_troisieme_ou_de(informations_prime_de_demenage[2]); + return {nombreEnfantsANaitreApresTroisiemeMoisGrossesse: + caml_call1 + (Runtime_ocaml_Runtime[48], informations_prime_de_demenage[1]), + dateNaissanceTroisiemeEnfantOuDernierSiPlus: _ip_}; + } + function informations_prime_de_demenage$0(informations_prime_de_demenage){ + var + _io_ = + date_naissance_troisieme_ou_de$0 + (informations_prime_de_demenage.dateNaissanceTroisiemeEnfantOuDernierSiPlus); + return [0, + caml_call1 + (Runtime_ocaml_Runtime[49], + informations_prime_de_demenage.nombreEnfantsANaitreApresTroisiemeMoisGrossesse), + _io_]; + } + function proprietaire_to_jsoo(proprietaire){ + var + _ie_ = ! ! proprietaire[11], + _if_ = pret_to_jsoo(proprietaire[10]), + _ig_ = neuf_ou_ancien_to_jsoo(proprietaire[9]), + _ih_ = ! ! proprietaire[8], + _ii_ = ! ! proprietaire[7], + _ij_ = ! ! proprietaire[6], + _ik_ = type_travaux_logement_r842_5_t(proprietaire[5]), + _il_ = type_travaux_logement_d832_15_(proprietaire[4]), + _im_ = caml_call1(Runtime_jsoo_Runtime[5], proprietaire[3]), + _in_ = caml_call1(Runtime_ocaml_Runtime[35], proprietaire[2]); + return {mensualitePrincipale: + caml_call1(Runtime_ocaml_Runtime[35], proprietaire[1]), + chargesMensuellesPret: _in_, + dateEntreeLogement: _im_, + typeTravauxLogementD83215: _il_, + typeTravauxLogementR8425: _ik_, + localHabitePremiereFoisBeneficiaire: _ij_, + copropriete: _ii_, + situationR822111317: _ih_, + ancienneteLogement: _ig_, + pret: _if_, + operationsLogementEvolutifsSociauxAccessionProprieteAideeEtat: + _ie_}; + } + function proprietaire_of_jsoo(proprietaire){ + var + _h4_ = + proprietaire.operationsLogementEvolutifsSociauxAccessionProprieteAideeEtat + | 0, + _h5_ = pret_of_jsoo(proprietaire.pret), + _h6_ = neuf_ou_ancien_of_jsoo(proprietaire.ancienneteLogement), + _h7_ = proprietaire.situationR822111317 | 0, + _h8_ = proprietaire.copropriete | 0, + _h9_ = proprietaire.localHabitePremiereFoisBeneficiaire | 0, + _h__ = + type_travaux_logement_r842_5_o(proprietaire.typeTravauxLogementR8425), + _h$_ = + type_travaux_logement_d832_15_$0 + (proprietaire.typeTravauxLogementD83215), + _ia_ = + caml_call1(Runtime_jsoo_Runtime[4], proprietaire.dateEntreeLogement), + _ib_ = + caml_call1 + (Runtime_ocaml_Runtime[42], proprietaire.chargesMensuellesPret), + _ic_ = caml_call1(Runtime_ocaml_Runtime[33], _ib_), + _id_ = + caml_call1 + (Runtime_ocaml_Runtime[42], proprietaire.mensualitePrincipale); + return [0, + caml_call1(Runtime_ocaml_Runtime[33], _id_), + _ic_, + _ia_, + _h$_, + _h__, + _h9_, + _h8_, + _h7_, + _h6_, + _h5_, + _h4_]; + } + function eligibilite_prestations_famili(eligibilite_prestations_famili){ + var t517 = ! ! eligibilite_prestations_famili[4]; + function t516(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var _h3_ = enfant_prestations_familiales_$0(function_input0); + return ! ! caml_call1(eligibilite_prestations_famili[3], _h3_); + }); + } + function t515(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var _h2_ = enfant_prestations_familiales_$0(function_input0); + return ! ! caml_call1(eligibilite_prestations_famili[2], _h2_); + }); + } + var + t514 = + caml_call1(Runtime_jsoo_Runtime[3], eligibilite_prestations_famili[1]); + return {ageL51232: t514, + droitOuvert: caml_js_wrap_meth_callback(t515), + conditionsHorsAge: caml_js_wrap_meth_callback(t516), + regimeOutreMerL7511: t517}; + } + function eligibilite_prestations_famili$0(eligibilite_prestations_famili){ + var + _hZ_ = eligibilite_prestations_famili.regimeOutreMerL7511 | 0, + _h0_ = caml_call1(Stdlib[2], cst_The_function_conditions_ho), + _h1_ = caml_call1(Stdlib[2], cst_The_function_droit_ouvert_); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[2], + eligibilite_prestations_famili.ageL51232), + _h1_, + _h0_, + _hZ_]; + } + function demandeur_to_jsoo(demandeur){ + var + _hU_ = ! ! demandeur[6], + _hV_ = ! ! demandeur[5], + _hW_ = ! ! demandeur[4], + _hX_ = patrimoine_to_jsoo(demandeur[3]), + _hY_ = nationalite_to_jsoo(demandeur[2]); + return {dateNaissance: caml_call1(Runtime_jsoo_Runtime[5], demandeur[1]), + nationalite: _hY_, + patrimoine: _hX_, + personneHebergeeCentreSoinLL162223SecuriteSociale: _hW_, + estNonSalarieAgricoleL7818L78146CodeRural: _hV_, + magistratFonctionnaireCentreInteretsMaterielsFamiliauxHorsMayotte: + _hU_}; + } + function demandeur_of_jsoo(demandeur){ + var + _hP_ = + demandeur.magistratFonctionnaireCentreInteretsMaterielsFamiliauxHorsMayotte + | 0, + _hQ_ = demandeur.estNonSalarieAgricoleL7818L78146CodeRural | 0, + _hR_ = demandeur.personneHebergeeCentreSoinLL162223SecuriteSociale | 0, + _hS_ = patrimoine_of_jsoo(demandeur.patrimoine), + _hT_ = nationalite_of_jsoo(demandeur.nationalite); + return [0, + caml_call1(Runtime_jsoo_Runtime[4], demandeur.dateNaissance), + _hT_, + _hS_, + _hR_, + _hQ_, + _hP_]; + } + function enfant_a_charge_to_jsoo(enfant_a_charge){ + var + _hH_ = ! ! enfant_a_charge[9], + _hI_ = situation_garde_alternee_to_js(enfant_a_charge[8]), + _hJ_ = situation_obligation_scolaire_(enfant_a_charge[7]), + _hK_ = caml_call1(Runtime_ocaml_Runtime[35], enfant_a_charge[6]), + _hL_ = caml_call1(Runtime_jsoo_Runtime[5], enfant_a_charge[5]), + _hM_ = ! ! enfant_a_charge[4], + _hN_ = ! ! enfant_a_charge[3], + _hO_ = nationalite_to_jsoo(enfant_a_charge[2]); + return {identifiant: + caml_call1(Runtime_ocaml_Runtime[48], enfant_a_charge[1]), + nationalite: _hO_, + beneficieTitrePersonnelAidePersonnelleLogement: _hN_, + aDejaOuvertDroitAuxAllocationsFamiliales: _hM_, + dateDeNaissance: _hL_, + remunerationMensuelle: _hK_, + obligationScolaire: _hJ_, + situationGardeAlternee: _hI_, + etudesApprentissageStageFormationProImpossibiliteTravail: _hH_}; + } + function enfant_a_charge_of_jsoo(enfant_a_charge){ + var + _hy_ = + enfant_a_charge.etudesApprentissageStageFormationProImpossibiliteTravail + | 0, + _hz_ = + situation_garde_alternee_of_js(enfant_a_charge.situationGardeAlternee), + _hA_ = + situation_obligation_scolaire_$0(enfant_a_charge.obligationScolaire), + _hB_ = + caml_call1 + (Runtime_ocaml_Runtime[42], enfant_a_charge.remunerationMensuelle), + _hC_ = caml_call1(Runtime_ocaml_Runtime[33], _hB_), + _hD_ = + caml_call1(Runtime_jsoo_Runtime[4], enfant_a_charge.dateDeNaissance), + _hE_ = enfant_a_charge.aDejaOuvertDroitAuxAllocationsFamiliales | 0, + _hF_ = enfant_a_charge.beneficieTitrePersonnelAidePersonnelleLogement | 0, + _hG_ = nationalite_of_jsoo(enfant_a_charge.nationalite); + return [0, + caml_call1(Runtime_ocaml_Runtime[49], enfant_a_charge.identifiant), + _hG_, + _hF_, + _hE_, + _hD_, + _hC_, + _hA_, + _hz_, + _hy_]; + } + function location_to_jsoo(location){ + var + _hr_ = changement_logement_d842_4_to_(location[8]), + _hs_ = ! ! location[7], + _ht_ = ! ! location[6], + _hu_ = ! ! location[5], + _hv_ = ! ! location[4], + _hw_ = ! ! location[3], + _hx_ = caml_call1(Runtime_ocaml_Runtime[35], location[2]); + return {bailleur: type_bailleur_to_jsoo(location[1]), + loyerPrincipal: _hx_, + beneficiaireAideAdulteOuEnfantHandicapes: _hw_, + logementEstChambre: _hv_, + colocation: _hu_, + ageesOuHandicapAdultesHebergeesOnereuxParticuliers: _ht_, + logementMeubleD8422: _hs_, + changementLogementD8424: _hr_}; + } + function location_of_jsoo(location){ + var + _hj_ = changement_logement_d842_4_of_(location.changementLogementD8424), + _hk_ = location.logementMeubleD8422 | 0, + _hl_ = location.ageesOuHandicapAdultesHebergeesOnereuxParticuliers | 0, + _hm_ = location.colocation | 0, + _hn_ = location.logementEstChambre | 0, + _ho_ = location.beneficiaireAideAdulteOuEnfantHandicapes | 0, + _hp_ = caml_call1(Runtime_ocaml_Runtime[42], location.loyerPrincipal), + _hq_ = caml_call1(Runtime_ocaml_Runtime[33], _hp_); + return [0, + type_bailleur_of_jsoo(location.bailleur), + _hq_, + _ho_, + _hn_, + _hm_, + _hl_, + _hk_, + _hj_]; + } + function personne_a_charge_to_jsoo(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_EnfantACharge, payload: enfant_a_charge_to_jsoo(arg)}; + } + var arg$0 = param[1]; + return {kind: cst_AutrePersonneACharge, + payload: autre_personne_a_charge_to_jso(arg$0)}; + } + function personne_a_charge_of_jsoo(personne_a_charge){ + var cons = caml_string_of_jsstring(personne_a_charge.kind); + if(! caml_string_notequal(cons, cst_AutrePersonneACharge)) + return [1, autre_personne_a_charge_of_jso(personne_a_charge.payload)]; + if(! caml_string_notequal(cons, cst_EnfantACharge)) + return [0, enfant_a_charge_of_jsoo(personne_a_charge.payload)]; + var _hi_ = caml_call2(Stdlib_Printf[4], _bn_, cons); + return caml_call1(Stdlib[2], _hi_); + } + function categorie_calcul_a_p_l_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_Location, payload: location_to_jsoo(arg)}; + case 1: + var arg$0 = param[1]; + return {kind: cst_AccessionPropriete, + payload: proprietaire_to_jsoo(arg$0)}; + default: + var arg$1 = param[1]; + return {kind: cst_LogementFoyer, + payload: logement_foyer_to_jsoo(arg$1)}; + } + } + function categorie_calcul_a_p_l_of_jsoo(categorie_calcul_a_p_l){ + var cons = caml_string_of_jsstring(categorie_calcul_a_p_l.kind); + if(! caml_string_notequal(cons, cst_AccessionPropriete)) + return [1, proprietaire_of_jsoo(categorie_calcul_a_p_l.payload)]; + if(! caml_string_notequal(cons, cst_Location)) + return [0, location_of_jsoo(categorie_calcul_a_p_l.payload)]; + if(! caml_string_notequal(cons, cst_LogementFoyer)) + return [2, logement_foyer_of_jsoo(categorie_calcul_a_p_l.payload)]; + var _hh_ = caml_call2(Stdlib_Printf[4], _bo_, cons); + return caml_call1(Stdlib[2], _hh_); + } + function mode_occupation_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_Locataire, payload: location_to_jsoo(arg)}; + case 1: + var arg$0 = param[1]; + return {kind: cst_ResidentLogementFoyer, + payload: logement_foyer_to_jsoo(arg$0)}; + case 2: + var arg$1 = param[1]; + return {kind: cst_AccessionProprieteLocalUsa, + payload: proprietaire_to_jsoo(arg$1)}; + case 3: + var arg$2 = param[1]; + return {kind: cst_SousLocataire, payload: location_to_jsoo(arg$2)}; + default: + var arg$3 = param[1]; + return {kind: cst_LocationAccession, + payload: proprietaire_to_jsoo(arg$3)}; + } + } + function mode_occupation_of_jsoo(mode_occupation){ + var cons = caml_string_of_jsstring(mode_occupation.kind); + if(! caml_string_notequal(cons, cst_AccessionProprieteLocalUsa)) + return [2, proprietaire_of_jsoo(mode_occupation.payload)]; + if(! caml_string_notequal(cons, cst_Locataire)) + return [0, location_of_jsoo(mode_occupation.payload)]; + if(! caml_string_notequal(cons, cst_LocationAccession)) + return [4, proprietaire_of_jsoo(mode_occupation.payload)]; + if(! caml_string_notequal(cons, cst_ResidentLogementFoyer)) + return [1, logement_foyer_of_jsoo(mode_occupation.payload)]; + if(! caml_string_notequal(cons, cst_SousLocataire)) + return [3, location_of_jsoo(mode_occupation.payload)]; + var _hg_ = caml_call2(Stdlib_Printf[4], _bp_, cons); + return caml_call1(Stdlib[2], _hg_); + } + function eligibilite_aides_personnelle_(eligibilite_aides_personnelle_){ + function t603(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var _hf_ = personne_a_charge_of_jsoo(function_input0); + return ! ! caml_call1(eligibilite_aides_personnelle_[5], _hf_); + }); + } + var _hd_ = eligibilite_aides_personnelle_[4]; + function _he_(x){return caml_call1(Runtime_ocaml_Runtime[43], x);} + var + t602 = caml_js_from_array(caml_call2(Stdlib_Array[15], _he_, _hd_)), + t601 = + caml_call1 + (Runtime_ocaml_Runtime[48], eligibilite_aides_personnelle_[3]), + t600 = ! ! eligibilite_aides_personnelle_[2], + t599 = + caml_call1(Runtime_jsoo_Runtime[5], eligibilite_aides_personnelle_[1]); + return {dateCourante: t599, + eligibilite: t600, + nombrePersonnesAChargePrisesEnCompte: t601, + coefficentsEnfantsGardeAlterneePrisEnCompte: t602, + condition2R8234: caml_js_wrap_meth_callback(t603)}; + } + function eligibilite_aides_personnelle_$0(eligibilite_aides_personnelle_){ + var + _g9_ = caml_call1(Stdlib[2], cst_The_function_condition_2_r), + _g__ = + caml_js_to_array + (eligibilite_aides_personnelle_.coefficentsEnfantsGardeAlterneePrisEnCompte); + function _g$_(x){return caml_call1(Runtime_ocaml_Runtime[42], x);} + var + _ha_ = caml_call1(caml_call1(Stdlib_Array[15], _g$_), _g__), + _hb_ = + caml_call1 + (Runtime_ocaml_Runtime[49], + eligibilite_aides_personnelle_.nombrePersonnesAChargePrisesEnCompte), + _hc_ = eligibilite_aides_personnelle_.eligibilite | 0; + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + eligibilite_aides_personnelle_.dateCourante), + _hc_, + _hb_, + _ha_, + _g9_]; + } + function logement_to_jsoo(logement){ + var + _g2_ = zone_d_habitation_to_jsoo(logement[9]), + _g3_ = caml_call1(Runtime_ocaml_Runtime[48], logement[8]), + _g4_ = ! ! logement[7], + _g5_ = parent_ou_autre_to_jsoo(logement[6]), + _g6_ = loue_ou_sous_loue_a_des_tiers_(logement[5]), + _g7_ = parent_ou_autre_to_jsoo(logement[4]), + _g8_ = mode_occupation_to_jsoo(logement[3]); + return {residencePrincipale: ! ! logement[1], + estEhpadOuMaisonAutonomieL31312Asf: ! ! logement[2], + modeOccupation: _g8_, + proprietaire: _g7_, + loueOuSousLoueADesTiers: _g6_, + usufruit: _g5_, + logementDecentL89462: _g4_, + surfaceMCarres: _g3_, + zone: _g2_}; + } + function logement_of_jsoo(logement){ + var + _gV_ = zone_d_habitation_of_jsoo(logement.zone), + _gW_ = caml_call1(Runtime_ocaml_Runtime[49], logement.surfaceMCarres), + _gX_ = logement.logementDecentL89462 | 0, + _gY_ = parent_ou_autre_of_jsoo(logement.usufruit), + _gZ_ = loue_ou_sous_loue_a_des_tiers_$0(logement.loueOuSousLoueADesTiers), + _g0_ = parent_ou_autre_of_jsoo(logement.proprietaire), + _g1_ = mode_occupation_of_jsoo(logement.modeOccupation); + return [0, + logement.residencePrincipale | 0, + logement.estEhpadOuMaisonAutonomieL31312Asf | 0, + _g1_, + _g0_, + _gZ_, + _gY_, + _gX_, + _gW_, + _gV_]; + } + function menage_to_jsoo(menage){ + var + _gJ_ = collectivite_to_jsoo(menage[9]), + _gK_ = ! ! menage[8], + _gL_ = ! ! menage[7], + _gM_ = ! ! menage[6], + _gN_ = situation_familiale_to_jsoo(menage[5]), + _gO_ = caml_call1(Runtime_ocaml_Runtime[48], menage[4]), + _gP_ = menage[3]; + function _gQ_(x){return personne_a_charge_to_jsoo(x);} + var + _gR_ = caml_js_from_array(caml_call2(Stdlib_Array[15], _gQ_, _gP_)), + _gS_ = logement_to_jsoo(menage[2]), + _gT_ = menage[1]; + function _gU_(x){return prestation_recue_to_jsoo(x);} + return {prestationsRecues: + caml_js_from_array(caml_call2(Stdlib_Array[15], _gU_, _gT_)), + logement: _gS_, + personnesACharge: _gR_, + nombreAutresOccupantsLogement: _gO_, + situationFamiliale: _gN_, + conditionRattacheFoyerFiscalParentIfi: _gM_, + enfantANaitreApresQuatriemeMoisGrossesse: _gL_, + personnesAgeesHandicapeesFoyerR8444: _gK_, + residence: _gJ_}; + } + function menage_of_jsoo(menage){ + var + _gx_ = collectivite_of_jsoo(menage.residence), + _gy_ = menage.personnesAgeesHandicapeesFoyerR8444 | 0, + _gz_ = menage.enfantANaitreApresQuatriemeMoisGrossesse | 0, + _gA_ = menage.conditionRattacheFoyerFiscalParentIfi | 0, + _gB_ = situation_familiale_of_jsoo(menage.situationFamiliale), + _gC_ = + caml_call1 + (Runtime_ocaml_Runtime[49], menage.nombreAutresOccupantsLogement), + _gD_ = caml_js_to_array(menage.personnesACharge); + function _gE_(x){return personne_a_charge_of_jsoo(x);} + var + _gF_ = caml_call1(caml_call1(Stdlib_Array[15], _gE_), _gD_), + _gG_ = logement_of_jsoo(menage.logement), + _gH_ = caml_js_to_array(menage.prestationsRecues); + function _gI_(x){return prestation_recue_of_jsoo(x);} + return [0, + caml_call1(caml_call1(Stdlib_Array[15], _gI_), _gH_), + _gG_, + _gF_, + _gC_, + _gB_, + _gA_, + _gz_, + _gy_, + _gx_]; + } + function eligibilite_aides_personnelle_$1(eligibilite_aides_personnelle_){ + function t649(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _gw_ = + caml_call1 + (eligibilite_aides_personnelle_[6], function_input0); + return caml_call1(Runtime_jsoo_Runtime[5], _gw_); + }); + } + function t648(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + return ! + ! + caml_call1 + (eligibilite_aides_personnelle_[5], function_input0); + }); + } + function t647(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + return ! + ! + caml_call1 + (eligibilite_aides_personnelle_[4], function_input0); + }); + } + var + t646 = + caml_call1(Runtime_jsoo_Runtime[5], eligibilite_aides_personnelle_[3]), + t645 = demandeur_to_jsoo(eligibilite_aides_personnelle_[2]), + t644 = menage_to_jsoo(eligibilite_aides_personnelle_[1]); + return {menageIn: t644, + demandeurIn: t645, + dateCouranteIn: t646, + conditionLogementResidencePrincipaleIn: + caml_js_wrap_meth_callback(t647), + conditionLogementSurfaceIn: caml_js_wrap_meth_callback(t648), + dateEntreeVigueurDiffereeCchIn: caml_js_wrap_meth_callback(t649)}; + } + function eligibilite_aides_personnelle_$2(eligibilite_aides_personnelle_){ + var + _gr_ = caml_call1(Stdlib[2], cst_The_function_date_entree_v), + _gs_ = caml_call1(Stdlib[2], cst_The_function_condition_log), + _gt_ = caml_call1(Stdlib[2], cst_The_function_condition_log$0), + _gu_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + eligibilite_aides_personnelle_.dateCouranteIn), + _gv_ = demandeur_of_jsoo(eligibilite_aides_personnelle_.demandeurIn); + return [0, + menage_of_jsoo(eligibilite_aides_personnelle_.menageIn), + _gv_, + _gu_, + _gt_, + _gs_, + _gr_]; + } + function eligibilite_aide_personnalisee$1(eligibilite_aide_personnalisee){ + var + _gp_ = + caml_call1(Runtime_jsoo_Runtime[5], eligibilite_aide_personnalisee[3]), + _gq_ = demandeur_to_jsoo(eligibilite_aide_personnalisee[2]); + return {menageIn: menage_to_jsoo(eligibilite_aide_personnalisee[1]), + demandeurIn: _gq_, + dateCouranteIn: _gp_}; + } + function eligibilite_aide_personnalisee$2(eligibilite_aide_personnalisee){ + var + _gn_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + eligibilite_aide_personnalisee.dateCouranteIn), + _go_ = demandeur_of_jsoo(eligibilite_aide_personnalisee.demandeurIn); + return [0, + menage_of_jsoo(eligibilite_aide_personnalisee.menageIn), + _go_, + _gn_]; + } + function eligibilite_allocation_logemen$1(eligibilite_allocation_logemen){ + var + _gk_ = ! ! eligibilite_allocation_logemen[4], + _gl_ = demandeur_to_jsoo(eligibilite_allocation_logemen[3]), + _gm_ = menage_to_jsoo(eligibilite_allocation_logemen[2]); + return {dateCouranteIn: + caml_call1 + (Runtime_jsoo_Runtime[5], eligibilite_allocation_logemen[1]), + menageIn: _gm_, + demandeurIn: _gl_, + beneficieAidePersonnaliseeLogementIn: _gk_}; + } + function eligibilite_allocation_logemen$2(eligibilite_allocation_logemen){ + var + _gh_ = + eligibilite_allocation_logemen.beneficieAidePersonnaliseeLogementIn | 0, + _gi_ = demandeur_of_jsoo(eligibilite_allocation_logemen.demandeurIn), + _gj_ = menage_of_jsoo(eligibilite_allocation_logemen.menageIn); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + eligibilite_allocation_logemen.dateCouranteIn), + _gj_, + _gi_, + _gh_]; + } + function eligibilite_prime_de_demenagem$1(eligibilite_prime_de_demenagem){ + var + _gc_ = + caml_call1 + (Runtime_ocaml_Runtime[35], eligibilite_prime_de_demenagem[6]), + _gd_ = + caml_call1(Runtime_jsoo_Runtime[5], eligibilite_prime_de_demenagem[5]), + _ge_ = demandeur_to_jsoo(eligibilite_prime_de_demenagem[4]), + _gf_ = menage_to_jsoo(eligibilite_prime_de_demenagem[3]), + _gg_ = + caml_call1(Runtime_jsoo_Runtime[5], eligibilite_prime_de_demenagem[2]); + return {informationsIn: + informations_prime_de_demenage(eligibilite_prime_de_demenagem[1]), + dateEmmenagementIn: _gg_, + menageIn: _gf_, + demandeurIn: _ge_, + dateCouranteIn: _gd_, + depensesJustifieesReellementEngageesIn: _gc_}; + } + function eligibilite_prime_de_demenagem$2(eligibilite_prime_de_demenagem){ + var + _f8_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + eligibilite_prime_de_demenagem.depensesJustifieesReellementEngageesIn), + _f9_ = caml_call1(Runtime_ocaml_Runtime[33], _f8_), + _f__ = + caml_call1 + (Runtime_jsoo_Runtime[4], + eligibilite_prime_de_demenagem.dateCouranteIn), + _f$_ = demandeur_of_jsoo(eligibilite_prime_de_demenagem.demandeurIn), + _ga_ = menage_of_jsoo(eligibilite_prime_de_demenagem.menageIn), + _gb_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + eligibilite_prime_de_demenagem.dateEmmenagementIn); + return [0, + informations_prime_de_demenage$0 + (eligibilite_prime_de_demenagem.informationsIn), + _gb_, + _ga_, + _f$_, + _f__, + _f9_]; + } + function ressources_aides_personnelle_l$1(ressources_aides_personnelle_l){ + var + _fR_ = + caml_call1 + (Runtime_ocaml_Runtime[35], ressources_aides_personnelle_l[14]), + _fS_ = paiement_logement_distinct_pro(ressources_aides_personnelle_l[13]), + _fT_ = + caml_call1(Runtime_jsoo_Runtime[5], ressources_aides_personnelle_l[12]), + _fU_ = ! ! ressources_aides_personnelle_l[11], + _fV_ = ! ! ressources_aides_personnelle_l[10], + _fW_ = + caml_call1(Runtime_jsoo_Runtime[5], ressources_aides_personnelle_l[9]), + _fX_ = mode_occupation_to_jsoo(ressources_aides_personnelle_l[8]), + _fY_ = situation_familiale_to_jsoo(ressources_aides_personnelle_l[7]), + _fZ_ = ressources_aides_personnelle_l[6]; + function _f0_(x){return personne_a_charge_to_jsoo(x);} + var + _f1_ = caml_js_from_array(caml_call2(Stdlib_Array[15], _f0_, _fZ_)), + _f2_ = ! ! ressources_aides_personnelle_l[5], + _f3_ = ! ! ressources_aides_personnelle_l[4], + _f4_ = ressources_aides_personnelle_l[3]; + function _f5_(x){return personne_vivant_habituellement(x);} + var + _f6_ = caml_js_from_array(caml_call2(Stdlib_Array[15], _f5_, _f4_)), + _f7_ = + caml_call1 + (Runtime_ocaml_Runtime[35], ressources_aides_personnelle_l[2]); + return {ressourcesDemandeurIn: + caml_call1 + (Runtime_ocaml_Runtime[35], ressources_aides_personnelle_l[1]), + ressourcesConjointIn: _f7_, + personnesVivantHabituellementFoyerIn: _f6_, + demandeurExerceActiviteRemunereeIn: _f3_, + conjointExerceActiviteRemunereeIn: _f2_, + personnesAChargeIn: _f1_, + situationFamilialeIn: _fY_, + modeOccupationIn: _fX_, + dateCouranteIn: _fW_, + conditionAgeBourseEnseignementSuperieurIn: _fV_, + demandeurPoursuitDesEtudesIn: _fU_, + dateDemandeOuReexamenDroitIn: _fT_, + paiementLogementDistinctProfessionnelIn: _fS_, + ressourcesMenageArrondiesBaseIn: _fR_}; + } + function ressources_aides_personnelle_l$2(ressources_aides_personnelle_l){ + var + _fx_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + ressources_aides_personnelle_l.ressourcesMenageArrondiesBaseIn), + _fy_ = caml_call1(Runtime_ocaml_Runtime[33], _fx_), + _fz_ = + paiement_logement_distinct_pro$0 + (ressources_aides_personnelle_l.paiementLogementDistinctProfessionnelIn), + _fA_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + ressources_aides_personnelle_l.dateDemandeOuReexamenDroitIn), + _fB_ = ressources_aides_personnelle_l.demandeurPoursuitDesEtudesIn | 0, + _fC_ = + ressources_aides_personnelle_l.conditionAgeBourseEnseignementSuperieurIn + | 0, + _fD_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + ressources_aides_personnelle_l.dateCouranteIn), + _fE_ = + mode_occupation_of_jsoo + (ressources_aides_personnelle_l.modeOccupationIn), + _fF_ = + situation_familiale_of_jsoo + (ressources_aides_personnelle_l.situationFamilialeIn), + _fG_ = + caml_js_to_array(ressources_aides_personnelle_l.personnesAChargeIn); + function _fH_(x){return personne_a_charge_of_jsoo(x);} + var + _fI_ = caml_call1(caml_call1(Stdlib_Array[15], _fH_), _fG_), + _fJ_ = + ressources_aides_personnelle_l.conjointExerceActiviteRemunereeIn | 0, + _fK_ = + ressources_aides_personnelle_l.demandeurExerceActiviteRemunereeIn | 0, + _fL_ = + caml_js_to_array + (ressources_aides_personnelle_l.personnesVivantHabituellementFoyerIn); + function _fM_(x){return personne_vivant_habituellement$0(x);} + var + _fN_ = caml_call1(caml_call1(Stdlib_Array[15], _fM_), _fL_), + _fO_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + ressources_aides_personnelle_l.ressourcesConjointIn), + _fP_ = caml_call1(Runtime_ocaml_Runtime[33], _fO_), + _fQ_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + ressources_aides_personnelle_l.ressourcesDemandeurIn); + return [0, + caml_call1(Runtime_ocaml_Runtime[33], _fQ_), + _fP_, + _fN_, + _fK_, + _fJ_, + _fI_, + _fF_, + _fE_, + _fD_, + _fC_, + _fB_, + _fA_, + _fz_, + _fy_]; + } + function contributions_sociales_aides_p$1(contributions_sociales_aides_p){ + return {dateCouranteIn: + caml_call1 + (Runtime_jsoo_Runtime[5], contributions_sociales_aides_p[1])}; + } + function contributions_sociales_aides_p$2(contributions_sociales_aides_p){ + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + contributions_sociales_aides_p.dateCouranteIn)]; + } + function calcul_aide_personnalisee_loge$7(calcul_aide_personnalisee_loge){ + var + _fk_ = collectivite_to_jsoo(calcul_aide_personnalisee_loge[14]), + _fl_ = ! ! calcul_aide_personnalisee_loge[13], + _fm_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[12]), + _fn_ = ! ! calcul_aide_personnalisee_loge[11], + _fo_ = type_aides_personnelle_logemen(calcul_aide_personnalisee_loge[10]), + _fp_ = ! ! calcul_aide_personnalisee_loge[9], + _fq_ = ! ! calcul_aide_personnalisee_loge[8], + _fr_ = zone_d_habitation_to_jsoo(calcul_aide_personnalisee_loge[7]), + _fs_ = situation_familiale_calcul_a_p(calcul_aide_personnalisee_loge[6]), + _ft_ = + caml_call1 + (Runtime_ocaml_Runtime[48], calcul_aide_personnalisee_loge[5]), + _fu_ = + caml_call1(Runtime_jsoo_Runtime[5], calcul_aide_personnalisee_loge[4]), + _fv_ = ! ! calcul_aide_personnalisee_loge[3], + _fw_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[2]); + return {loyerPrincipalBaseIn: + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[1]), + ressourcesMenageArrondiesIn: _fw_, + beneficiaireAideAdulteOuEnfantHandicapesIn: _fv_, + dateCouranteIn: _fu_, + nombrePersonnesAChargeIn: _ft_, + situationFamilialeCalculAplIn: _fs_, + zoneIn: _fr_, + logementEstChambreIn: _fq_, + ageesOuHandicapAdultesHebergeesOnereuxParticuliersIn: _fp_, + typeAideIn: _fo_, + colocationIn: _fn_, + reductionLoyerSolidariteIn: _fm_, + logementMeubleD8422In: _fl_, + residenceIn: _fk_}; + } + function calcul_aide_personnalisee_loge$8(calcul_aide_personnalisee_loge){ + var + _e6_ = collectivite_of_jsoo(calcul_aide_personnalisee_loge.residenceIn), + _e7_ = calcul_aide_personnalisee_loge.logementMeubleD8422In | 0, + _e8_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.reductionLoyerSolidariteIn), + _e9_ = caml_call1(Runtime_ocaml_Runtime[33], _e8_), + _e__ = calcul_aide_personnalisee_loge.colocationIn | 0, + _e$_ = + type_aides_personnelle_logemen$0 + (calcul_aide_personnalisee_loge.typeAideIn), + _fa_ = + calcul_aide_personnalisee_loge.ageesOuHandicapAdultesHebergeesOnereuxParticuliersIn + | 0, + _fb_ = calcul_aide_personnalisee_loge.logementEstChambreIn | 0, + _fc_ = zone_d_habitation_of_jsoo(calcul_aide_personnalisee_loge.zoneIn), + _fd_ = + situation_familiale_calcul_a_p$0 + (calcul_aide_personnalisee_loge.situationFamilialeCalculAplIn), + _fe_ = + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_aide_personnalisee_loge.nombrePersonnesAChargeIn), + _ff_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_aide_personnalisee_loge.dateCouranteIn), + _fg_ = + calcul_aide_personnalisee_loge.beneficiaireAideAdulteOuEnfantHandicapesIn + | 0, + _fh_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.ressourcesMenageArrondiesIn), + _fi_ = caml_call1(Runtime_ocaml_Runtime[33], _fh_), + _fj_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.loyerPrincipalBaseIn); + return [0, + caml_call1(Runtime_ocaml_Runtime[33], _fj_), + _fi_, + _fg_, + _ff_, + _fe_, + _fd_, + _fc_, + _fb_, + _fa_, + _e$_, + _e__, + _e9_, + _e7_, + _e6_]; + } + function calcul_equivalence_loyer_minim$1(calcul_equivalence_loyer_minim){ + var + _e3_ = + caml_call1 + (Runtime_ocaml_Runtime[43], calcul_equivalence_loyer_minim[4]), + _e4_ = ! ! calcul_equivalence_loyer_minim[3], + _e5_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_equivalence_loyer_minim[2]); + return {dateCouranteIn: + caml_call1 + (Runtime_jsoo_Runtime[5], calcul_equivalence_loyer_minim[1]), + ressourcesMenageArrondiesIn: _e5_, + condition2Du83225In: _e4_, + nNombrePartsD83225In: _e3_}; + } + function calcul_equivalence_loyer_minim$2(calcul_equivalence_loyer_minim){ + var + _eZ_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_equivalence_loyer_minim.nNombrePartsD83225In), + _e0_ = calcul_equivalence_loyer_minim.condition2Du83225In | 0, + _e1_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_equivalence_loyer_minim.ressourcesMenageArrondiesIn), + _e2_ = caml_call1(Runtime_ocaml_Runtime[33], _e1_); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_equivalence_loyer_minim.dateCouranteIn), + _e2_, + _e0_, + _eZ_]; + } + function calcul_nombre_part_logement_fo$1(calcul_nombre_part_logement_fo){ + function t749(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + return ! + ! + caml_call1 + (calcul_nombre_part_logement_fo[5], function_input0); + }); + } + var + t748 = collectivite_to_jsoo(calcul_nombre_part_logement_fo[4]), + t747 = situation_familiale_calcul_a_p(calcul_nombre_part_logement_fo[3]), + t746 = + caml_call1 + (Runtime_ocaml_Runtime[48], calcul_nombre_part_logement_fo[2]), + t745 = ! ! calcul_nombre_part_logement_fo[1]; + return {condition2Du83225In: t745, + nombrePersonnesAChargeIn: t746, + situationFamilialeCalculAplIn: t747, + residenceIn: t748, + limitationMajorationPersonnesAChargeIn: + caml_js_wrap_meth_callback(t749)}; + } + function calcul_nombre_part_logement_fo$2(calcul_nombre_part_logement_fo){ + var + _eV_ = caml_call1(Stdlib[2], cst_The_function_limitation_ma), + _eW_ = collectivite_of_jsoo(calcul_nombre_part_logement_fo.residenceIn), + _eX_ = + situation_familiale_calcul_a_p$0 + (calcul_nombre_part_logement_fo.situationFamilialeCalculAplIn), + _eY_ = + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_nombre_part_logement_fo.nombrePersonnesAChargeIn); + return [0, + calcul_nombre_part_logement_fo.condition2Du83225In | 0, + _eY_, + _eX_, + _eW_, + _eV_]; + } + function calcul_aide_personnalisee_loge$9(calcul_aide_personnalisee_loge){ + function t765(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _eU_ = + caml_call1 + (calcul_aide_personnalisee_loge[12], function_input0); + return caml_call1(Runtime_ocaml_Runtime[43], _eU_); + }); + } + function t764(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + return ! + ! + caml_call1 + (calcul_aide_personnalisee_loge[11], function_input0); + }); + } + function t763(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + return ! + ! + caml_call1 + (calcul_aide_personnalisee_loge[10], function_input0); + }); + } + var + t762 = collectivite_to_jsoo(calcul_aide_personnalisee_loge[9]), + t761 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[8]), + t760 = + caml_call1(Runtime_jsoo_Runtime[5], calcul_aide_personnalisee_loge[7]), + t759 = zone_d_habitation_to_jsoo(calcul_aide_personnalisee_loge[6]), + t758 = situation_familiale_calcul_a_p(calcul_aide_personnalisee_loge[5]), + t757 = + caml_call1 + (Runtime_ocaml_Runtime[48], calcul_aide_personnalisee_loge[4]), + t756 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[3]), + t755 = + caml_call1(Runtime_jsoo_Runtime[5], calcul_aide_personnalisee_loge[2]), + t754 = type_logement_foyer_to_jsoo(calcul_aide_personnalisee_loge[1]); + return {typeLogementFoyerIn: t754, + dateConventionnementIn: t755, + ressourcesMenageArrondiesIn: t756, + nombrePersonnesAChargeIn: t757, + situationFamilialeCalculAplIn: t758, + zoneIn: t759, + dateCouranteIn: t760, + redevanceIn: t761, + residenceIn: t762, + condition2Du83225In: caml_js_wrap_meth_callback(t763), + limitationMajorationPersonnesAChargeIn: + caml_js_wrap_meth_callback(t764), + nNombrePartsD83225In: caml_js_wrap_meth_callback(t765)}; + } + function calcul_aide_personnalisee_loge$10(calcul_aide_personnalisee_loge){ + var + _eH_ = caml_call1(Stdlib[2], cst_The_function_n_nombre_part), + _eI_ = caml_call1(Stdlib[2], cst_The_function_limitation_ma$0), + _eJ_ = caml_call1(Stdlib[2], cst_The_function_condition_2_d), + _eK_ = collectivite_of_jsoo(calcul_aide_personnalisee_loge.residenceIn), + _eL_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.redevanceIn), + _eM_ = caml_call1(Runtime_ocaml_Runtime[33], _eL_), + _eN_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_aide_personnalisee_loge.dateCouranteIn), + _eO_ = zone_d_habitation_of_jsoo(calcul_aide_personnalisee_loge.zoneIn), + _eP_ = + situation_familiale_calcul_a_p$0 + (calcul_aide_personnalisee_loge.situationFamilialeCalculAplIn), + _eQ_ = + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_aide_personnalisee_loge.nombrePersonnesAChargeIn), + _eR_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.ressourcesMenageArrondiesIn), + _eS_ = caml_call1(Runtime_ocaml_Runtime[33], _eR_), + _eT_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_aide_personnalisee_loge.dateConventionnementIn); + return [0, + type_logement_foyer_of_jsoo + (calcul_aide_personnalisee_loge.typeLogementFoyerIn), + _eT_, + _eS_, + _eQ_, + _eP_, + _eO_, + _eN_, + _eM_, + _eK_, + _eJ_, + _eI_, + _eH_]; + } + function calcul_nombre_parts_accession_$1(calcul_nombre_parts_accession_){ + var + _eG_ = situation_familiale_calcul_a_p(calcul_nombre_parts_accession_[2]); + return {nombrePersonnesAChargeIn: + caml_call1 + (Runtime_ocaml_Runtime[48], calcul_nombre_parts_accession_[1]), + situationFamilialeCalculAplIn: _eG_}; + } + function calcul_nombre_parts_accession_$2(calcul_nombre_parts_accession_){ + var + _eF_ = + situation_familiale_calcul_a_p$0 + (calcul_nombre_parts_accession_.situationFamilialeCalculAplIn); + return [0, + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_nombre_parts_accession_.nombrePersonnesAChargeIn), + _eF_]; + } + function calcul_aide_personnalisee_loge$11(calcul_aide_personnalisee_loge){ + var + _es_ = + caml_call1(Runtime_jsoo_Runtime[5], calcul_aide_personnalisee_loge[14]), + _et_ = neuf_ou_ancien_to_jsoo(calcul_aide_personnalisee_loge[13]), + _eu_ = type_pret_to_jsoo(calcul_aide_personnalisee_loge[12]), + _ev_ = zone_d_habitation_to_jsoo(calcul_aide_personnalisee_loge[11]), + _ew_ = ! ! calcul_aide_personnalisee_loge[10], + _ex_ = ! ! calcul_aide_personnalisee_loge[9], + _ey_ = + caml_call1(Runtime_jsoo_Runtime[5], calcul_aide_personnalisee_loge[8]), + _ez_ = ! ! calcul_aide_personnalisee_loge[7], + _eA_ = + caml_call1(Runtime_jsoo_Runtime[5], calcul_aide_personnalisee_loge[6]), + _eB_ = type_travaux_logement_d832_15_(calcul_aide_personnalisee_loge[5]), + _eC_ = situation_familiale_calcul_a_p(calcul_aide_personnalisee_loge[4]), + _eD_ = + caml_call1 + (Runtime_ocaml_Runtime[48], calcul_aide_personnalisee_loge[3]), + _eE_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[2]); + return {mensualitePrincipaleIn: + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[1]), + ressourcesMenageArrondiesIn: _eE_, + nombrePersonnesAChargeIn: _eD_, + situationFamilialeCalculAplIn: _eC_, + typeTravauxLogementIn: _eB_, + dateSignaturePretIn: _eA_, + localHabitePremiereFoisBeneficiaireIn: _ez_, + dateEntreeLogementIn: _ey_, + coproprieteIn: _ex_, + situationR822111317In: _ew_, + zoneIn: _ev_, + typePretIn: _eu_, + ancienneteLogementIn: _et_, + dateCouranteIn: _es_}; + } + function calcul_aide_personnalisee_loge$12(calcul_aide_personnalisee_loge){ + var + _ed_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_aide_personnalisee_loge.dateCouranteIn), + _ee_ = + neuf_ou_ancien_of_jsoo + (calcul_aide_personnalisee_loge.ancienneteLogementIn), + _ef_ = type_pret_of_jsoo(calcul_aide_personnalisee_loge.typePretIn), + _eg_ = zone_d_habitation_of_jsoo(calcul_aide_personnalisee_loge.zoneIn), + _eh_ = calcul_aide_personnalisee_loge.situationR822111317In | 0, + _ei_ = calcul_aide_personnalisee_loge.coproprieteIn | 0, + _ej_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_aide_personnalisee_loge.dateEntreeLogementIn), + _ek_ = + calcul_aide_personnalisee_loge.localHabitePremiereFoisBeneficiaireIn + | 0, + _el_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_aide_personnalisee_loge.dateSignaturePretIn), + _em_ = + type_travaux_logement_d832_15_$0 + (calcul_aide_personnalisee_loge.typeTravauxLogementIn), + _en_ = + situation_familiale_calcul_a_p$0 + (calcul_aide_personnalisee_loge.situationFamilialeCalculAplIn), + _eo_ = + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_aide_personnalisee_loge.nombrePersonnesAChargeIn), + _ep_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.ressourcesMenageArrondiesIn), + _eq_ = caml_call1(Runtime_ocaml_Runtime[33], _ep_), + _er_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.mensualitePrincipaleIn); + return [0, + caml_call1(Runtime_ocaml_Runtime[33], _er_), + _eq_, + _eo_, + _en_, + _em_, + _el_, + _ek_, + _ej_, + _ei_, + _eh_, + _eg_, + _ef_, + _ee_, + _ed_]; + } + function calcul_aide_personnalisee_loge$13(calcul_aide_personnalisee_loge){ + var + _d8_ = collectivite_to_jsoo(calcul_aide_personnalisee_loge[8]), + _d9_ = + caml_call1(Runtime_jsoo_Runtime[5], calcul_aide_personnalisee_loge[7]), + _d__ = zone_d_habitation_to_jsoo(calcul_aide_personnalisee_loge[6]), + _d$_ = + caml_call1 + (Runtime_ocaml_Runtime[48], calcul_aide_personnalisee_loge[5]), + _ea_ = situation_familiale_to_jsoo(calcul_aide_personnalisee_loge[4]), + _eb_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[3]), + _ec_ = type_aides_personnelle_logemen(calcul_aide_personnalisee_loge[2]); + return {modeOccupationIn: + mode_occupation_to_jsoo(calcul_aide_personnalisee_loge[1]), + typeAideIn: _ec_, + ressourcesMenageSansArrondiIn: _eb_, + situationFamilialeIn: _ea_, + nombrePersonnesAChargeIn: _d$_, + zoneIn: _d__, + dateCouranteIn: _d9_, + residenceIn: _d8_}; + } + function calcul_aide_personnalisee_loge$14(calcul_aide_personnalisee_loge){ + var + _d0_ = collectivite_of_jsoo(calcul_aide_personnalisee_loge.residenceIn), + _d1_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_aide_personnalisee_loge.dateCouranteIn), + _d2_ = zone_d_habitation_of_jsoo(calcul_aide_personnalisee_loge.zoneIn), + _d3_ = + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_aide_personnalisee_loge.nombrePersonnesAChargeIn), + _d4_ = + situation_familiale_of_jsoo + (calcul_aide_personnalisee_loge.situationFamilialeIn), + _d5_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.ressourcesMenageSansArrondiIn), + _d6_ = caml_call1(Runtime_ocaml_Runtime[33], _d5_), + _d7_ = + type_aides_personnelle_logemen$0 + (calcul_aide_personnalisee_loge.typeAideIn); + return [0, + mode_occupation_of_jsoo + (calcul_aide_personnalisee_loge.modeOccupationIn), + _d7_, + _d6_, + _d4_, + _d3_, + _d2_, + _d1_, + _d0_]; + } + function calcul_allocation_logement_loc$1(calcul_allocation_logement_loc){ + var + _dM_ = changement_logement_d842_4_to_(calcul_allocation_logement_loc[15]), + _dN_ = collectivite_to_jsoo(calcul_allocation_logement_loc[14]), + _dO_ = ! ! calcul_allocation_logement_loc[13], + _dP_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_loc[12]), + _dQ_ = ! ! calcul_allocation_logement_loc[11], + _dR_ = type_aides_personnelle_logemen(calcul_allocation_logement_loc[10]), + _dS_ = ! ! calcul_allocation_logement_loc[9], + _dT_ = ! ! calcul_allocation_logement_loc[8], + _dU_ = zone_d_habitation_to_jsoo(calcul_allocation_logement_loc[7]), + _dV_ = situation_familiale_calcul_a_p(calcul_allocation_logement_loc[6]), + _dW_ = + caml_call1 + (Runtime_ocaml_Runtime[48], calcul_allocation_logement_loc[5]), + _dX_ = + caml_call1(Runtime_jsoo_Runtime[5], calcul_allocation_logement_loc[4]), + _dY_ = ! ! calcul_allocation_logement_loc[3], + _dZ_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_loc[2]); + return {loyerPrincipalIn: + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_loc[1]), + ressourcesMenageArrondiesIn: _dZ_, + beneficiaireAideAdulteOuEnfantHandicapesIn: _dY_, + dateCouranteIn: _dX_, + nombrePersonnesAChargeIn: _dW_, + situationFamilialeCalculAplIn: _dV_, + zoneIn: _dU_, + logementEstChambreIn: _dT_, + ageesOuHandicapAdultesHebergeesOnereuxParticuliersIn: _dS_, + typeAideIn: _dR_, + colocationIn: _dQ_, + reductionLoyerSolidariteIn: _dP_, + logementMeubleD8422In: _dO_, + residenceIn: _dN_, + changementLogementD8424In: _dM_}; + } + function calcul_allocation_logement_loc$2(calcul_allocation_logement_loc){ + var + _dv_ = + changement_logement_d842_4_of_ + (calcul_allocation_logement_loc.changementLogementD8424In), + _dw_ = collectivite_of_jsoo(calcul_allocation_logement_loc.residenceIn), + _dx_ = calcul_allocation_logement_loc.logementMeubleD8422In | 0, + _dy_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_loc.reductionLoyerSolidariteIn), + _dz_ = caml_call1(Runtime_ocaml_Runtime[33], _dy_), + _dA_ = calcul_allocation_logement_loc.colocationIn | 0, + _dB_ = + type_aides_personnelle_logemen$0 + (calcul_allocation_logement_loc.typeAideIn), + _dC_ = + calcul_allocation_logement_loc.ageesOuHandicapAdultesHebergeesOnereuxParticuliersIn + | 0, + _dD_ = calcul_allocation_logement_loc.logementEstChambreIn | 0, + _dE_ = zone_d_habitation_of_jsoo(calcul_allocation_logement_loc.zoneIn), + _dF_ = + situation_familiale_calcul_a_p$0 + (calcul_allocation_logement_loc.situationFamilialeCalculAplIn), + _dG_ = + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_allocation_logement_loc.nombrePersonnesAChargeIn), + _dH_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_allocation_logement_loc.dateCouranteIn), + _dI_ = + calcul_allocation_logement_loc.beneficiaireAideAdulteOuEnfantHandicapesIn + | 0, + _dJ_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_loc.ressourcesMenageArrondiesIn), + _dK_ = caml_call1(Runtime_ocaml_Runtime[33], _dJ_), + _dL_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_loc.loyerPrincipalIn); + return [0, + caml_call1(Runtime_ocaml_Runtime[33], _dL_), + _dK_, + _dI_, + _dH_, + _dG_, + _dF_, + _dE_, + _dD_, + _dC_, + _dB_, + _dA_, + _dz_, + _dx_, + _dw_, + _dv_]; + } + function calcul_allocation_logement_acc$1(calcul_allocation_logement_acc){ + var + _dh_ = ! ! calcul_allocation_logement_acc[15], + _di_ = ! ! calcul_allocation_logement_acc[14], + _dj_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_acc[13]), + _dk_ = + caml_call1(Runtime_jsoo_Runtime[5], calcul_allocation_logement_acc[12]), + _dl_ = ! ! calcul_allocation_logement_acc[11], + _dm_ = type_travaux_logement_r842_5_t(calcul_allocation_logement_acc[10]), + _dn_ = + caml_call1(Runtime_jsoo_Runtime[5], calcul_allocation_logement_acc[9]), + _do_ = ! ! calcul_allocation_logement_acc[8], + _dp_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_acc[7]), + _dq_ = + caml_call1(Runtime_jsoo_Runtime[5], calcul_allocation_logement_acc[6]), + _dr_ = collectivite_to_jsoo(calcul_allocation_logement_acc[5]), + _ds_ = zone_d_habitation_to_jsoo(calcul_allocation_logement_acc[4]), + _dt_ = situation_familiale_calcul_a_p(calcul_allocation_logement_acc[3]), + _du_ = + caml_call1 + (Runtime_ocaml_Runtime[48], calcul_allocation_logement_acc[2]); + return {ressourcesMenageArrondiesBaseIn: + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_acc[1]), + nombrePersonnesAChargeIn: _du_, + situationFamilialeCalculAplIn: _dt_, + zoneIn: _ds_, + residenceIn: _dr_, + dateCouranteIn: _dq_, + mensualitePrincipaleIn: _dp_, + situationR822111317In: _do_, + dateSignaturePretIn: _dn_, + typeTravauxLogementIn: _dm_, + localHabitePremiereFoisBeneficiaireIn: _dl_, + dateEntreeLogementIn: _dk_, + chargesMensuellesPretIn: _dj_, + coproprieteIn: _di_, + operationsLogementEvolutifsSociauxAccessionProprieteAideeEtatIn: + _dh_}; + } + function calcul_allocation_logement_acc$2(calcul_allocation_logement_acc){ + var + _c2_ = + calcul_allocation_logement_acc.operationsLogementEvolutifsSociauxAccessionProprieteAideeEtatIn + | 0, + _c3_ = calcul_allocation_logement_acc.coproprieteIn | 0, + _c4_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_acc.chargesMensuellesPretIn), + _c5_ = caml_call1(Runtime_ocaml_Runtime[33], _c4_), + _c6_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_allocation_logement_acc.dateEntreeLogementIn), + _c7_ = + calcul_allocation_logement_acc.localHabitePremiereFoisBeneficiaireIn + | 0, + _c8_ = + type_travaux_logement_r842_5_o + (calcul_allocation_logement_acc.typeTravauxLogementIn), + _c9_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_allocation_logement_acc.dateSignaturePretIn), + _c__ = calcul_allocation_logement_acc.situationR822111317In | 0, + _c$_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_acc.mensualitePrincipaleIn), + _da_ = caml_call1(Runtime_ocaml_Runtime[33], _c$_), + _db_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_allocation_logement_acc.dateCouranteIn), + _dc_ = collectivite_of_jsoo(calcul_allocation_logement_acc.residenceIn), + _dd_ = zone_d_habitation_of_jsoo(calcul_allocation_logement_acc.zoneIn), + _de_ = + situation_familiale_calcul_a_p$0 + (calcul_allocation_logement_acc.situationFamilialeCalculAplIn), + _df_ = + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_allocation_logement_acc.nombrePersonnesAChargeIn), + _dg_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_acc.ressourcesMenageArrondiesBaseIn); + return [0, + caml_call1(Runtime_ocaml_Runtime[33], _dg_), + _df_, + _de_, + _dd_, + _dc_, + _db_, + _da_, + _c__, + _c9_, + _c8_, + _c7_, + _c6_, + _c5_, + _c3_, + _c2_]; + } + function calcul_allocation_logement_foy$1(calcul_allocation_logement_foy){ + var + _cT_ = categorie_equivalence_loyer_al(calcul_allocation_logement_foy[10]), + _cU_ = + caml_call1(Runtime_jsoo_Runtime[5], calcul_allocation_logement_foy[9]), + _cV_ = zone_d_habitation_to_jsoo(calcul_allocation_logement_foy[8]), + _cW_ = situation_familiale_calcul_a_p(calcul_allocation_logement_foy[7]), + _cX_ = + caml_call1 + (Runtime_ocaml_Runtime[48], calcul_allocation_logement_foy[6]), + _cY_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_foy[5]), + _cZ_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_foy[4]), + _c0_ = collectivite_to_jsoo(calcul_allocation_logement_foy[3]), + _c1_ = + caml_call1(Runtime_jsoo_Runtime[5], calcul_allocation_logement_foy[2]); + return {typeLogementFoyerIn: + type_logement_foyer_to_jsoo(calcul_allocation_logement_foy[1]), + dateConventionnementIn: _c1_, + residenceIn: _c0_, + redevanceIn: _cZ_, + ressourcesMenageArrondiesIn: _cY_, + nombrePersonnesAChargeIn: _cX_, + situationFamilialeCalculAplIn: _cW_, + zoneIn: _cV_, + dateCouranteIn: _cU_, + categorieEquivalenceLoyerD84216In: _cT_}; + } + function calcul_allocation_logement_foy$2(calcul_allocation_logement_foy){ + var + _cI_ = + categorie_equivalence_loyer_al$0 + (calcul_allocation_logement_foy.categorieEquivalenceLoyerD84216In), + _cJ_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_allocation_logement_foy.dateCouranteIn), + _cK_ = zone_d_habitation_of_jsoo(calcul_allocation_logement_foy.zoneIn), + _cL_ = + situation_familiale_calcul_a_p$0 + (calcul_allocation_logement_foy.situationFamilialeCalculAplIn), + _cM_ = + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_allocation_logement_foy.nombrePersonnesAChargeIn), + _cN_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_foy.ressourcesMenageArrondiesIn), + _cO_ = caml_call1(Runtime_ocaml_Runtime[33], _cN_), + _cP_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_foy.redevanceIn), + _cQ_ = caml_call1(Runtime_ocaml_Runtime[33], _cP_), + _cR_ = collectivite_of_jsoo(calcul_allocation_logement_foy.residenceIn), + _cS_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_allocation_logement_foy.dateConventionnementIn); + return [0, + type_logement_foyer_of_jsoo + (calcul_allocation_logement_foy.typeLogementFoyerIn), + _cS_, + _cR_, + _cQ_, + _cO_, + _cM_, + _cL_, + _cK_, + _cJ_, + _cI_]; + } + function calcul_allocation_logement_in_(calcul_allocation_logement_in){ + var + _cB_ = collectivite_to_jsoo(calcul_allocation_logement_in[8]), + _cC_ = type_aides_personnelle_logemen(calcul_allocation_logement_in[7]), + _cD_ = + caml_call1(Runtime_jsoo_Runtime[5], calcul_allocation_logement_in[6]), + _cE_ = zone_d_habitation_to_jsoo(calcul_allocation_logement_in[5]), + _cF_ = + caml_call1(Runtime_ocaml_Runtime[48], calcul_allocation_logement_in[4]), + _cG_ = situation_familiale_to_jsoo(calcul_allocation_logement_in[3]), + _cH_ = + caml_call1(Runtime_ocaml_Runtime[35], calcul_allocation_logement_in[2]); + return {modeOccupationIn: + mode_occupation_to_jsoo(calcul_allocation_logement_in[1]), + ressourcesMenageSansArrondiIn: _cH_, + situationFamilialeIn: _cG_, + nombrePersonnesAChargeIn: _cF_, + zoneIn: _cE_, + dateCouranteIn: _cD_, + typeAideIn: _cC_, + residenceIn: _cB_}; + } + function calcul_allocation_logement_in_$0(calcul_allocation_logement_in){ + var + _ct_ = collectivite_of_jsoo(calcul_allocation_logement_in.residenceIn), + _cu_ = + type_aides_personnelle_logemen$0 + (calcul_allocation_logement_in.typeAideIn), + _cv_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_allocation_logement_in.dateCouranteIn), + _cw_ = zone_d_habitation_of_jsoo(calcul_allocation_logement_in.zoneIn), + _cx_ = + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_allocation_logement_in.nombrePersonnesAChargeIn), + _cy_ = + situation_familiale_of_jsoo + (calcul_allocation_logement_in.situationFamilialeIn), + _cz_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_in.ressourcesMenageSansArrondiIn), + _cA_ = caml_call1(Runtime_ocaml_Runtime[33], _cz_); + return [0, + mode_occupation_of_jsoo + (calcul_allocation_logement_in.modeOccupationIn), + _cA_, + _cy_, + _cx_, + _cw_, + _cv_, + _cu_, + _ct_]; + } + function ouverture_droits_retraite_in_t(ouverture_droits_retraite_in){ + return {dateNaissanceAssureIn: + caml_call1 + (Runtime_jsoo_Runtime[5], ouverture_droits_retraite_in[1])}; + } + function ouverture_droits_retraite_in_o(ouverture_droits_retraite_in){ + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + ouverture_droits_retraite_in.dateNaissanceAssureIn)]; + } + function impaye_depense_logement_in_to_(impaye_depense_logement_in){ + var + _co_ = + caml_call1(Runtime_ocaml_Runtime[35], impaye_depense_logement_in[6]), + _cp_ = depense_logement_to_jsoo(impaye_depense_logement_in[5]), + _cq_ = + caml_call1(Runtime_ocaml_Runtime[35], impaye_depense_logement_in[4]), + _cr_ = + caml_call1(Runtime_ocaml_Runtime[35], impaye_depense_logement_in[3]), + _cs_ = versement_a_to_jsoo(impaye_depense_logement_in[2]); + return {modeOccupationIn: + mode_occupation_to_jsoo(impaye_depense_logement_in[1]), + aideVerseeIn: _cs_, + montantAplIn: _cr_, + montantChargesIn: _cq_, + depenseLogementIn: _cp_, + montantDetteIn: _co_}; + } + function impaye_depense_logement_in_of_(impaye_depense_logement_in){ + var + _cg_ = + caml_call1 + (Runtime_ocaml_Runtime[42], impaye_depense_logement_in.montantDetteIn), + _ch_ = caml_call1(Runtime_ocaml_Runtime[33], _cg_), + _ci_ = + depense_logement_of_jsoo(impaye_depense_logement_in.depenseLogementIn), + _cj_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + impaye_depense_logement_in.montantChargesIn), + _ck_ = caml_call1(Runtime_ocaml_Runtime[33], _cj_), + _cl_ = + caml_call1 + (Runtime_ocaml_Runtime[42], impaye_depense_logement_in.montantAplIn), + _cm_ = caml_call1(Runtime_ocaml_Runtime[33], _cl_), + _cn_ = versement_a_of_jsoo(impaye_depense_logement_in.aideVerseeIn); + return [0, + mode_occupation_of_jsoo + (impaye_depense_logement_in.modeOccupationIn), + _cn_, + _cm_, + _ck_, + _ci_, + _ch_]; + } + function calculette_aides_au_logement_i(calculette_aides_au_logement_i){ + var + _cd_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calculette_aides_au_logement_i[4]), + _ce_ = + caml_call1(Runtime_jsoo_Runtime[5], calculette_aides_au_logement_i[3]), + _cf_ = demandeur_to_jsoo(calculette_aides_au_logement_i[2]); + return {menageIn: menage_to_jsoo(calculette_aides_au_logement_i[1]), + demandeurIn: _cf_, + dateCouranteIn: _ce_, + ressourcesMenagePrisesEnCompteIn: _cd_}; + } + function calculette_aides_au_logement_i$0(calculette_aides_au_logement_i){ + var + _b$_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calculette_aides_au_logement_i.ressourcesMenagePrisesEnCompteIn), + _ca_ = caml_call1(Runtime_ocaml_Runtime[33], _b$_), + _cb_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calculette_aides_au_logement_i.dateCouranteIn), + _cc_ = demandeur_of_jsoo(calculette_aides_au_logement_i.demandeurIn); + return [0, + menage_of_jsoo(calculette_aides_au_logement_i.menageIn), + _cc_, + _cb_, + _ca_]; + } + function calculette_aides_au_logement_g$1(calculette_aides_au_logement_g){ + var + _b8_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calculette_aides_au_logement_g[4]), + _b9_ = + caml_call1(Runtime_jsoo_Runtime[5], calculette_aides_au_logement_g[3]), + _b__ = demandeur_to_jsoo(calculette_aides_au_logement_g[2]); + return {menageIn: menage_to_jsoo(calculette_aides_au_logement_g[1]), + demandeurIn: _b__, + dateCouranteIn: _b9_, + ressourcesMenagePrisesEnCompteIn: _b8_}; + } + function calculette_aides_au_logement_g$2(calculette_aides_au_logement_g){ + var + _b4_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calculette_aides_au_logement_g.ressourcesMenagePrisesEnCompteIn), + _b5_ = caml_call1(Runtime_ocaml_Runtime[33], _b4_), + _b6_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calculette_aides_au_logement_g.dateCouranteIn), + _b7_ = demandeur_of_jsoo(calculette_aides_au_logement_g.demandeurIn); + return [0, + menage_of_jsoo(calculette_aides_au_logement_g.menageIn), + _b7_, + _b6_, + _b5_]; + } + function base_mensuelle_allocations_fam$1(base_mensuelle_allocations_fam){ + return {dateCouranteIn: + caml_call1 + (Runtime_jsoo_Runtime[5], base_mensuelle_allocations_fam[1])}; + } + function base_mensuelle_allocations_fam$2(base_mensuelle_allocations_fam){ + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + base_mensuelle_allocations_fam.dateCouranteIn)]; + } + function verification_age_inferieur_ou_$1(verification_age_inferieur_ou_){ + var + _b2_ = + caml_call1(Runtime_jsoo_Runtime[3], verification_age_inferieur_ou_[3]), + _b3_ = + caml_call1(Runtime_jsoo_Runtime[5], verification_age_inferieur_ou_[2]); + return {dateNaissanceIn: + caml_call1 + (Runtime_jsoo_Runtime[5], verification_age_inferieur_ou_[1]), + dateCouranteIn: _b3_, + anneesIn: _b2_}; + } + function verification_age_inferieur_ou_$2(verification_age_inferieur_ou_){ + var + _b0_ = + caml_call1 + (Runtime_jsoo_Runtime[2], verification_age_inferieur_ou_.anneesIn), + _b1_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + verification_age_inferieur_ou_.dateCouranteIn); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + verification_age_inferieur_ou_.dateNaissanceIn), + _b1_, + _b0_]; + } + function verification_age_superieur_a_i(verification_age_superieur_a_i){ + var + _bY_ = + caml_call1(Runtime_jsoo_Runtime[3], verification_age_superieur_a_i[3]), + _bZ_ = + caml_call1(Runtime_jsoo_Runtime[5], verification_age_superieur_a_i[2]); + return {dateNaissanceIn: + caml_call1 + (Runtime_jsoo_Runtime[5], verification_age_superieur_a_i[1]), + dateCouranteIn: _bZ_, + anneesIn: _bY_}; + } + function verification_age_superieur_a_i$0(verification_age_superieur_a_i){ + var + _bW_ = + caml_call1 + (Runtime_jsoo_Runtime[2], verification_age_superieur_a_i.anneesIn), + _bX_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + verification_age_superieur_a_i.dateCouranteIn); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + verification_age_superieur_a_i.dateNaissanceIn), + _bX_, + _bW_]; + } + function smic_in_to_jsoo(smic_in){ + var _bV_ = collectivite_to_jsoo(smic_in[2]); + return {dateCouranteIn: caml_call1(Runtime_jsoo_Runtime[5], smic_in[1]), + residenceIn: _bV_}; + } + function smic_in_of_jsoo(smic_in){ + var _bU_ = collectivite_of_jsoo(smic_in.residenceIn); + return [0, + caml_call1(Runtime_jsoo_Runtime[4], smic_in.dateCouranteIn), + _bU_]; + } + function eligibilite_prestations_famili$1(eligibilite_prestations_famili){ + function t970(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _bT_ = + caml_call1 + (eligibilite_prestations_famili[4], function_input0); + return caml_call1(Runtime_jsoo_Runtime[3], _bT_); + }); + } + var + t969 = collectivite_to_jsoo(eligibilite_prestations_famili[3]), + t968 = element_prestations_familiales(eligibilite_prestations_famili[2]), + t967 = + caml_call1(Runtime_jsoo_Runtime[5], eligibilite_prestations_famili[1]); + return {dateCouranteIn: t967, + prestationCouranteIn: t968, + residenceIn: t969, + ageL51232In: caml_js_wrap_meth_callback(t970)}; + } + function eligibilite_prestations_famili$2(eligibilite_prestations_famili){ + var + _bQ_ = caml_call1(Stdlib[2], cst_The_function_age_l512_3_2_), + _bR_ = collectivite_of_jsoo(eligibilite_prestations_famili.residenceIn), + _bS_ = + element_prestations_familiales$0 + (eligibilite_prestations_famili.prestationCouranteIn); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + eligibilite_prestations_famili.dateCouranteIn), + _bS_, + _bR_, + _bQ_]; + } + function contributions_sociales_aides_p$3(contributions_sociales_aides_p$0){ + var + _bP_ = contributions_sociales_aides_p$2(contributions_sociales_aides_p$0); + return contributions_sociales_aides_p + (caml_call1(Law_source_Aides_logement[223], _bP_)); + } + function calcul_equivalence_loyer_minim$3(calcul_equivalence_loyer_minim$0){ + var + _bO_ = calcul_equivalence_loyer_minim$2(calcul_equivalence_loyer_minim$0); + return calcul_equivalence_loyer_minim + (caml_call1(Law_source_Aides_logement[224], _bO_)); + } + function calcul_nombre_part_logement_fo$3(calcul_nombre_part_logement_fo$0){ + var + _bN_ = calcul_nombre_part_logement_fo$2(calcul_nombre_part_logement_fo$0); + return calcul_nombre_part_logement_fo + (caml_call1(Law_source_Aides_logement[225], _bN_)); + } + function calcul_nombre_parts_accession_$3(calcul_nombre_parts_accession_$0){ + var + _bM_ = calcul_nombre_parts_accession_$2(calcul_nombre_parts_accession_$0); + return calcul_nombre_parts_accession_ + (caml_call1(Law_source_Aides_logement[226], _bM_)); + } + function ouverture_droits_retraite(ouverture_droits_retraite_in){ + var _bL_ = ouverture_droits_retraite_in_o(ouverture_droits_retraite_in); + return ouverture_droits_retraite_to_j + (caml_call1(Law_source_Aides_logement[227], _bL_)); + } + function impaye_depense_logement(impaye_depense_logement_in){ + var _bK_ = impaye_depense_logement_in_of_(impaye_depense_logement_in); + return impaye_depense_logement_to_jso + (caml_call1(Law_source_Aides_logement[228], _bK_)); + } + function base_mensuelle_allocations_fam$3(base_mensuelle_allocations_fam$0){ + var + _bJ_ = base_mensuelle_allocations_fam$2(base_mensuelle_allocations_fam$0); + return base_mensuelle_allocations_fam + (caml_call1(Law_source_Aides_logement[229], _bJ_)); + } + function verification_age_inferieur_ou_$3(verification_age_inferieur_ou_$0){ + var + _bI_ = verification_age_inferieur_ou_$2(verification_age_inferieur_ou_$0); + return verification_age_inferieur_ou_ + (caml_call1(Law_source_Aides_logement[230], _bI_)); + } + function verification_age_superieur_a(verification_age_superieur_a_i){ + var + _bH_ = verification_age_superieur_a_i$0(verification_age_superieur_a_i); + return verification_age_superieur_a_t + (caml_call1(Law_source_Aides_logement[231], _bH_)); + } + function smic(smic_in){ + var _bG_ = smic_in_of_jsoo(smic_in); + return smic_to_jsoo(caml_call1(Law_source_Aides_logement[232], _bG_)); + } + function calcul_aide_personnalisee_loge$15 + (calcul_aide_personnalisee_loge$0){ + var + _bF_ = calcul_aide_personnalisee_loge$8(calcul_aide_personnalisee_loge$0); + return calcul_aide_personnalisee_loge + (caml_call1(Law_source_Aides_logement[235], _bF_)); + } + function calcul_aide_personnalisee_loge$16(calcul_aide_personnalisee_loge){ + var + _bE_ = calcul_aide_personnalisee_loge$10(calcul_aide_personnalisee_loge); + return calcul_aide_personnalisee_loge$1 + (caml_call1(Law_source_Aides_logement[236], _bE_)); + } + function calcul_aide_personnalisee_loge$17(calcul_aide_personnalisee_loge){ + var + _bD_ = calcul_aide_personnalisee_loge$12(calcul_aide_personnalisee_loge); + return calcul_aide_personnalisee_loge$3 + (caml_call1(Law_source_Aides_logement[237], _bD_)); + } + function ressources_aides_personnelle_l$3(ressources_aides_personnelle_l$0){ + var + _bC_ = ressources_aides_personnelle_l$2(ressources_aides_personnelle_l$0); + return ressources_aides_personnelle_l + (caml_call1(Law_source_Aides_logement[238], _bC_)); + } + function eligibilite_prestations_famili$3(eligibilite_prestations_famili$0){ + var + _bB_ = eligibilite_prestations_famili$2(eligibilite_prestations_famili$0); + return eligibilite_prestations_famili + (caml_call1(Law_source_Aides_logement[239], _bB_)); + } + function calcul_allocation_logement_loc$3(calcul_allocation_logement_loc$0){ + var + _bA_ = calcul_allocation_logement_loc$2(calcul_allocation_logement_loc$0); + return calcul_allocation_logement_loc + (caml_call1(Law_source_Aides_logement[240], _bA_)); + } + function calcul_allocation_logement_foy$3(calcul_allocation_logement_foy$0){ + var + _bz_ = calcul_allocation_logement_foy$2(calcul_allocation_logement_foy$0); + return calcul_allocation_logement_foy + (caml_call1(Law_source_Aides_logement[241], _bz_)); + } + function calcul_allocation_logement_acc$3(calcul_allocation_logement_acc$0){ + var + _by_ = calcul_allocation_logement_acc$2(calcul_allocation_logement_acc$0); + return calcul_allocation_logement_acc + (caml_call1(Law_source_Aides_logement[242], _by_)); + } + function calcul_aide_personnalisee_loge$18(calcul_aide_personnalisee_loge){ + var + _bx_ = calcul_aide_personnalisee_loge$14(calcul_aide_personnalisee_loge); + return calcul_aide_personnalisee_loge$5 + (caml_call1(Law_source_Aides_logement[243], _bx_)); + } + function eligibilite_aides_personnelle_$3(eligibilite_aides_personnelle_$0){ + var + _bw_ = eligibilite_aides_personnelle_$2(eligibilite_aides_personnelle_$0); + return eligibilite_aides_personnelle_ + (caml_call1(Law_source_Aides_logement[244], _bw_)); + } + function calcul_allocation_logement(calcul_allocation_logement_in){ + var + _bv_ = calcul_allocation_logement_in_$0(calcul_allocation_logement_in); + return calcul_allocation_logement_to_ + (caml_call1(Law_source_Aides_logement[245], _bv_)); + } + function eligibilite_prime_de_demenagem$3(eligibilite_prime_de_demenagem$0){ + var + _bu_ = eligibilite_prime_de_demenagem$2(eligibilite_prime_de_demenagem$0); + return eligibilite_prime_de_demenagem + (caml_call1(Law_source_Aides_logement[246], _bu_)); + } + function eligibilite_allocation_logemen$3(eligibilite_allocation_logemen$0){ + var + _bt_ = eligibilite_allocation_logemen$2(eligibilite_allocation_logemen$0); + return eligibilite_allocation_logemen + (caml_call1(Law_source_Aides_logement[247], _bt_)); + } + function eligibilite_aide_personnalisee$3(eligibilite_aide_personnalisee$0){ + var + _bs_ = eligibilite_aide_personnalisee$2(eligibilite_aide_personnalisee$0); + return eligibilite_aide_personnalisee + (caml_call1(Law_source_Aides_logement[248], _bs_)); + } + function calculette_aides_au_logement(calculette_aides_au_logement_i){ + var + _br_ = calculette_aides_au_logement_i$0(calculette_aides_au_logement_i); + return calculette_aides_au_logement_t + (caml_call1(Law_source_Aides_logement[249], _br_)); + } + function calculette_aides_au_logement_g$3(calculette_aides_au_logement_g$0){ + var + _bq_ = calculette_aides_au_logement_g$2(calculette_aides_au_logement_g$0); + return calculette_aides_au_logement_g + (caml_call1(Law_source_Aides_logement[250], _bq_)); + } + function t999(param){ + return caml_js_wrap_callback(calculette_aides_au_logement_g$3); + } + function t998(param){ + return caml_js_wrap_callback(calculette_aides_au_logement); + } + function t997(param){ + return caml_js_wrap_callback(eligibilite_aide_personnalisee$3); + } + function t996(param){ + return caml_js_wrap_callback(eligibilite_allocation_logemen$3); + } + function t995(param){ + return caml_js_wrap_callback(eligibilite_prime_de_demenagem$3); + } + function t994(param){ + return caml_js_wrap_callback(calcul_allocation_logement); + } + function t993(param){ + return caml_js_wrap_callback(eligibilite_aides_personnelle_$3); + } + function t992(param){ + return caml_js_wrap_callback(calcul_aide_personnalisee_loge$18); + } + function t991(param){ + return caml_js_wrap_callback(calcul_allocation_logement_acc$3); + } + function t990(param){ + return caml_js_wrap_callback(calcul_allocation_logement_foy$3); + } + function t989(param){ + return caml_js_wrap_callback(calcul_allocation_logement_loc$3); + } + function t988(param){ + return caml_js_wrap_callback(eligibilite_prestations_famili$3); + } + function t987(param){ + return caml_js_wrap_callback(ressources_aides_personnelle_l$3); + } + function t986(param){ + return caml_js_wrap_callback(calcul_aide_personnalisee_loge$17); + } + function t985(param){ + return caml_js_wrap_callback(calcul_aide_personnalisee_loge$16); + } + function t984(param){ + return caml_js_wrap_callback(calcul_aide_personnalisee_loge$15); + } + function t983(param){return caml_js_wrap_callback(smic);} + function t982(param){ + return caml_js_wrap_callback(verification_age_superieur_a); + } + function t981(param){ + return caml_js_wrap_callback(verification_age_inferieur_ou_$3); + } + function t980(param){ + return caml_js_wrap_callback(base_mensuelle_allocations_fam$3); + } + function t979(param){ + return caml_js_wrap_callback(impaye_depense_logement); + } + function t978(param){ + return caml_js_wrap_callback(ouverture_droits_retraite); + } + function t977(param){ + return caml_js_wrap_callback(calcul_nombre_parts_accession_$3); + } + function t976(param){ + return caml_js_wrap_callback(calcul_nombre_part_logement_fo$3); + } + function t975(param){ + return caml_js_wrap_callback(calcul_equivalence_loyer_minim$3); + } + function t974(param){ + return caml_js_wrap_callback(contributions_sociales_aides_p$3); + } + caml_call2 + (Js_of_ocaml_Js[50], + cst_AidesLogementLib, + {contributionsSocialesAidesPersonnelleLogement: + caml_js_wrap_meth_callback(t974), + calculEquivalenceLoyerMinimale: caml_js_wrap_meth_callback(t975), + calculNombrePartLogementFoyer: caml_js_wrap_meth_callback(t976), + calculNombrePartsAccessionPropriete: caml_js_wrap_meth_callback(t977), + ouvertureDroitsRetraite: caml_js_wrap_meth_callback(t978), + impayeDepenseLogement: caml_js_wrap_meth_callback(t979), + baseMensuelleAllocationsFamiliales: caml_js_wrap_meth_callback(t980), + verificationAgeInferieurOuEgalA: caml_js_wrap_meth_callback(t981), + verificationAgeSuperieurA: caml_js_wrap_meth_callback(t982), + smic: caml_js_wrap_meth_callback(t983), + calculAidePersonnaliseeLogementLocatif: caml_js_wrap_meth_callback(t984), + calculAidePersonnaliseeLogementFoyer: caml_js_wrap_meth_callback(t985), + calculAidePersonnaliseeLogementAccessionPropriete: + caml_js_wrap_meth_callback(t986), + ressourcesAidesPersonnelleLogement: caml_js_wrap_meth_callback(t987), + eligibilitePrestationsFamiliales: caml_js_wrap_meth_callback(t988), + calculAllocationLogementLocatif: caml_js_wrap_meth_callback(t989), + calculAllocationLogementFoyer: caml_js_wrap_meth_callback(t990), + calculAllocationLogementAccessionPropriete: + caml_js_wrap_meth_callback(t991), + calculAidePersonnaliseeLogement: caml_js_wrap_meth_callback(t992), + eligibiliteAidesPersonnelleLogement: caml_js_wrap_meth_callback(t993), + calculAllocationLogement: caml_js_wrap_meth_callback(t994), + eligibilitePrimeDeDemenagement: caml_js_wrap_meth_callback(t995), + eligibiliteAllocationLogement: caml_js_wrap_meth_callback(t996), + eligibiliteAidePersonnaliseeLogement: caml_js_wrap_meth_callback(t997), + calculetteAidesAuLogement: caml_js_wrap_meth_callback(t998), + calculetteAidesAuLogementGardeAlternee: caml_js_wrap_meth_callback(t999)}); + var + Law_source_Aides_logement_api_ = [0, type_pret_to_jsoo, type_pret_of_jsoo, @@ -134477,22 +132821,22 @@ type_aides_personnelle_logemen$0, situation_familiale_to_jsoo, situation_familiale_of_jsoo, - prise_en_charge_to_jsoo$0, - prise_en_charge_of_jsoo$0, + prise_en_charge_to_jsoo, + prise_en_charge_of_jsoo, type_logement_foyer_to_jsoo, type_logement_foyer_of_jsoo, categorie_equivalence_loyer_al, categorie_equivalence_loyer_al$0, situation_familiale_calcul_a_p, situation_familiale_calcul_a_p$0, - collectivite_to_jsoo$0, - collectivite_of_jsoo$0, + collectivite_to_jsoo, + collectivite_of_jsoo, prise_en_charge_enfant_to_jsoo, prise_en_charge_enfant_of_jsoo, - situation_obligation_scolaire_$1, - situation_obligation_scolaire_$2, - element_prestations_familiales$1, - element_prestations_familiales$2, + situation_obligation_scolaire_, + situation_obligation_scolaire_$0, + element_prestations_familiales, + element_prestations_familiales$0, convention_bailleur_social_to_, convention_bailleur_social_of_, convention_a_n_h_a_to_jsoo, @@ -134505,38 +132849,38 @@ conditions_etrangers_of_jsoo, personne_vivant_habituellement, personne_vivant_habituellement$0, + eligibilite_aide_personnalisee, eligibilite_aide_personnalisee$0, - eligibilite_aide_personnalisee$1, + eligibilite_prime_de_demenagem, eligibilite_prime_de_demenagem$0, - eligibilite_prime_de_demenagem$1, + ressources_aides_personnelle_l, ressources_aides_personnelle_l$0, - ressources_aides_personnelle_l$1, + contributions_sociales_aides_p, contributions_sociales_aides_p$0, - contributions_sociales_aides_p$1, + calcul_aide_personnalisee_loge, + calcul_aide_personnalisee_loge$0, + calcul_equivalence_loyer_minim, + calcul_equivalence_loyer_minim$0, + calcul_nombre_part_logement_fo, + calcul_nombre_part_logement_fo$0, + calcul_aide_personnalisee_loge$1, + calcul_aide_personnalisee_loge$2, + calcul_nombre_parts_accession_, + calcul_nombre_parts_accession_$0, calcul_aide_personnalisee_loge$3, calcul_aide_personnalisee_loge$4, - calcul_equivalence_loyer_minim$0, - calcul_equivalence_loyer_minim$1, - calcul_nombre_part_logement_fo$0, - calcul_nombre_part_logement_fo$1, - calcul_aide_personnalisee_loge$5, - calcul_aide_personnalisee_loge$6, - calcul_nombre_parts_accession_$0, - calcul_nombre_parts_accession_$1, - calcul_aide_personnalisee_loge$7, - calcul_aide_personnalisee_loge$8, traitement_formule_aide_finale, traitement_formule_aide_finale$0, - calcul_aide_personnalisee_loge$9, - calcul_aide_personnalisee_loge$10, + calcul_aide_personnalisee_loge$5, + calcul_aide_personnalisee_loge$6, infos_changement_logement_d842, infos_changement_logement_d842$0, + calcul_allocation_logement_loc, calcul_allocation_logement_loc$0, - calcul_allocation_logement_loc$1, + calcul_allocation_logement_acc, calcul_allocation_logement_acc$0, - calcul_allocation_logement_acc$1, + calcul_allocation_logement_foy, calcul_allocation_logement_foy$0, - calcul_allocation_logement_foy$1, calcul_allocation_logement_to_, calcul_allocation_logement_of_, ouverture_droits_retraite_to_j, @@ -134545,16 +132889,16 @@ impaye_depense_logement_of_jso, calculette_aides_au_logement_t, calculette_aides_au_logement_o, + calculette_aides_au_logement_g, calculette_aides_au_logement_g$0, - calculette_aides_au_logement_g$1, - base_mensuelle_allocations_fam$6, - base_mensuelle_allocations_fam$7, - verification_age_inferieur_ou_$6, - verification_age_inferieur_ou_$7, - verification_age_superieur_a_t$0, - verification_age_superieur_a_o$0, - smic_to_jsoo$0, - smic_of_jsoo$0, + base_mensuelle_allocations_fam, + base_mensuelle_allocations_fam$0, + verification_age_inferieur_ou_, + verification_age_inferieur_ou_$0, + verification_age_superieur_a_t, + verification_age_superieur_a_o, + smic_to_jsoo, + smic_of_jsoo, neuf_ou_ancien_to_jsoo, neuf_ou_ancien_of_jsoo, tranche_revenu_to_jsoo, @@ -134565,8 +132909,8 @@ autre_personne_a_charge_of_jso, date_naissance_troisieme_ou_de, date_naissance_troisieme_ou_de$0, + eligibilite_allocation_logemen, eligibilite_allocation_logemen$0, - eligibilite_allocation_logemen$1, pret_to_jsoo, pret_of_jsoo, logement_foyer_to_jsoo, @@ -134585,8 +132929,8 @@ informations_prime_de_demenage$0, proprietaire_to_jsoo, proprietaire_of_jsoo, + eligibilite_prestations_famili, eligibilite_prestations_famili$0, - eligibilite_prestations_famili$1, demandeur_to_jsoo, demandeur_of_jsoo, enfant_a_charge_to_jsoo, @@ -134599,44 +132943,44 @@ categorie_calcul_a_p_l_of_jsoo, mode_occupation_to_jsoo, mode_occupation_of_jsoo, + eligibilite_aides_personnelle_, eligibilite_aides_personnelle_$0, - eligibilite_aides_personnelle_$1, logement_to_jsoo, logement_of_jsoo, menage_to_jsoo, menage_of_jsoo, + eligibilite_aides_personnelle_$1, eligibilite_aides_personnelle_$2, - eligibilite_aides_personnelle_$3, + eligibilite_aide_personnalisee$1, eligibilite_aide_personnalisee$2, - eligibilite_aide_personnalisee$3, + eligibilite_allocation_logemen$1, eligibilite_allocation_logemen$2, - eligibilite_allocation_logemen$3, + eligibilite_prime_de_demenagem$1, eligibilite_prime_de_demenagem$2, - eligibilite_prime_de_demenagem$3, + ressources_aides_personnelle_l$1, ressources_aides_personnelle_l$2, - ressources_aides_personnelle_l$3, + contributions_sociales_aides_p$1, contributions_sociales_aides_p$2, - contributions_sociales_aides_p$3, + calcul_aide_personnalisee_loge$7, + calcul_aide_personnalisee_loge$8, + calcul_equivalence_loyer_minim$1, + calcul_equivalence_loyer_minim$2, + calcul_nombre_part_logement_fo$1, + calcul_nombre_part_logement_fo$2, + calcul_aide_personnalisee_loge$9, + calcul_aide_personnalisee_loge$10, + calcul_nombre_parts_accession_$1, + calcul_nombre_parts_accession_$2, calcul_aide_personnalisee_loge$11, calcul_aide_personnalisee_loge$12, - calcul_equivalence_loyer_minim$2, - calcul_equivalence_loyer_minim$3, - calcul_nombre_part_logement_fo$2, - calcul_nombre_part_logement_fo$3, calcul_aide_personnalisee_loge$13, calcul_aide_personnalisee_loge$14, - calcul_nombre_parts_accession_$2, - calcul_nombre_parts_accession_$3, - calcul_aide_personnalisee_loge$15, - calcul_aide_personnalisee_loge$16, - calcul_aide_personnalisee_loge$17, - calcul_aide_personnalisee_loge$18, + calcul_allocation_logement_loc$1, calcul_allocation_logement_loc$2, - calcul_allocation_logement_loc$3, + calcul_allocation_logement_acc$1, calcul_allocation_logement_acc$2, - calcul_allocation_logement_acc$3, + calcul_allocation_logement_foy$1, calcul_allocation_logement_foy$2, - calcul_allocation_logement_foy$3, calcul_allocation_logement_in_, calcul_allocation_logement_in_$0, ouverture_droits_retraite_in_t, @@ -134645,115 +132989,143 @@ impaye_depense_logement_in_of_, calculette_aides_au_logement_i, calculette_aides_au_logement_i$0, + calculette_aides_au_logement_g$1, calculette_aides_au_logement_g$2, - calculette_aides_au_logement_g$3, - base_mensuelle_allocations_fam$8, - base_mensuelle_allocations_fam$9, - verification_age_inferieur_ou_$8, - verification_age_inferieur_ou_$9, - verification_age_superieur_a_i$1, - verification_age_superieur_a_i$2, - smic_in_to_jsoo$0, - smic_in_of_jsoo$0, + base_mensuelle_allocations_fam$1, + base_mensuelle_allocations_fam$2, + verification_age_inferieur_ou_$1, + verification_age_inferieur_ou_$2, + verification_age_superieur_a_i, + verification_age_superieur_a_i$0, + smic_in_to_jsoo, + smic_in_of_jsoo, + eligibilite_prestations_famili$1, eligibilite_prestations_famili$2, + contributions_sociales_aides_p$3, + calcul_equivalence_loyer_minim$3, + calcul_nombre_part_logement_fo$3, + calcul_nombre_parts_accession_$3, + ouverture_droits_retraite, + impaye_depense_logement, + base_mensuelle_allocations_fam$3, + verification_age_inferieur_ou_$3, + verification_age_superieur_a, + smic, + calcul_aide_personnalisee_loge$15, + calcul_aide_personnalisee_loge$16, + calcul_aide_personnalisee_loge$17, + ressources_aides_personnelle_l$3, eligibilite_prestations_famili$3, - contributions_sociales_aides_p$4, - calcul_equivalence_loyer_minim$4, - calcul_nombre_part_logement_fo$4, - calcul_nombre_parts_accession_$4, - ouverture_droits_retraite$0, - impaye_depense_logement$0, - base_mensuelle_allocations_fam$10, - verification_age_inferieur_ou_$10, - verification_age_superieur_a$2, - smic$2, - calcul_aide_personnalisee_loge$19, - calcul_aide_personnalisee_loge$20, - calcul_aide_personnalisee_loge$21, - ressources_aides_personnelle_l$4, - eligibilite_prestations_famili$4, - calcul_allocation_logement_loc$4, - calcul_allocation_logement_foy$4, - calcul_allocation_logement_acc$4, - calcul_aide_personnalisee_loge$22, - eligibilite_aides_personnelle_$4, - calcul_allocation_logement$0, - eligibilite_prime_de_demenagem$4, - eligibilite_allocation_logemen$4, - eligibilite_aide_personnalisee$4, - calculette_aides_au_logement$0, - calculette_aides_au_logement_g$4]; - caml_register_global - (9326, - Law_source_Aides_logement_api_, - "Law_source__Aides_logement_api_web"); - return} + calcul_allocation_logement_loc$3, + calcul_allocation_logement_foy$3, + calcul_allocation_logement_acc$3, + calcul_aide_personnalisee_loge$18, + eligibilite_aides_personnelle_$3, + calcul_allocation_logement, + eligibilite_prime_de_demenagem$3, + eligibilite_allocation_logemen$3, + eligibilite_aide_personnalisee$3, + calculette_aides_au_logement, + calculette_aides_au_logement_g$3]; + runtime.caml_register_global + (1737, + Law_source_Aides_logement_api_, + "Law_source__Aides_logement_api_web"); + return; + } (globalThis)); -//# 1 ".api_web.eobjs/byte/dune__exe__Api_web.cmo.js" -(function(globalThis) - {"use strict"; - var - runtime=globalThis.jsoo_runtime, - caml_js_wrap_callback=runtime.caml_js_wrap_callback, - caml_js_wrap_meth_callback=runtime.caml_js_wrap_meth_callback; - function caml_call1(f,a0) - {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} - var - global_data=runtime.caml_get_global_data(), - Law_source_Allocations_familia= +//# 1 ".api_web.eobjs/jsoo/dune__exe__Api_web.cmo.js" +// Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cmo, use-js-string=true, version=5.1.1 + +//# 6 ".api_web.eobjs/jsoo/dune__exe__Api_web.cmo.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_js_wrap_callback = runtime.caml_js_wrap_callback, + caml_js_wrap_meth_callback = runtime.caml_js_wrap_meth_callback; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + var + global_data = runtime.caml_get_global_data(), + Law_source_Allocations_familia = global_data.Law_source__Allocations_familiales_api_web, - Runtime_jsoo_Runtime=global_data.Runtime_jsoo__Runtime, - Law_source_Aides_logement_api_= + Runtime_jsoo_Runtime = global_data.Runtime_jsoo__Runtime, + Law_source_Aides_logement_api_ = global_data.Law_source__Aides_logement_api_web; - global_data.CamlinternalOO; - var Js_of_ocaml_Js=global_data.Js_of_ocaml__Js; - function t4(param) - {return caml_js_wrap_callback - (function(calculette_aides_au_logement_g) - {function _b_(param) - {var - t1= - caml_call1 - (Law_source_Aides_logement_api_[248], - calculette_aides_au_logement_g); - return t1.aideFinale} - return caml_call1(Runtime_jsoo_Runtime[6],_b_)})} - function t3(param) - {return caml_js_wrap_callback - (function(interface_allocations_familial) - {function _a_(param) - {var - t0= - caml_call1 - (Law_source_Allocations_familia[61], - interface_allocations_familial); - return t0.iMontantVerse} - return caml_call1(Runtime_jsoo_Runtime[6],_a_)})} - caml_call1 - (Js_of_ocaml_Js[51], - {"eventsManager":Runtime_jsoo_Runtime[1], - "computeAllocationsFamiliales":caml_js_wrap_meth_callback(t3), - "computeAidesAuLogement":caml_js_wrap_meth_callback(t4)}); - var Dune_exe_Api_web=[0]; - runtime.caml_register_global(12,Dune_exe_Api_web,"Dune__exe__Api_web"); - return} + global_data.CamlinternalOO; + var Js_of_ocaml_Js = global_data.Js_of_ocaml__Js; + function t4(param){ + return caml_js_wrap_callback + (function(calculette_aides_au_logement_g){ + function _b_(param){ + var + result = + caml_call1 + (Law_source_Aides_logement_api_[248], + calculette_aides_au_logement_g); + return result.aideFinale; + } + return caml_call1(Runtime_jsoo_Runtime[6], _b_); + }); + } + function t3(param){ + return caml_js_wrap_callback + (function(interface_allocations_familial){ + function _a_(param){ + var + result = + caml_call1 + (Law_source_Allocations_familia[61], + interface_allocations_familial); + return result.iMontantVerse; + } + return caml_call1(Runtime_jsoo_Runtime[6], _a_); + }); + } + var t2 = Runtime_jsoo_Runtime[1]; + caml_call1 + (Js_of_ocaml_Js[51], + {eventsManager: t2, + computeAllocationsFamiliales: caml_js_wrap_meth_callback(t3), + computeAidesAuLogement: caml_js_wrap_meth_callback(t4)}); + var Dune_exe_Api_web = [0]; + runtime.caml_register_global(12, Dune_exe_Api_web, "Dune__exe__Api_web"); + return; + } (globalThis)); -//# 1 "../../.js/stdlib/std_exit.cmo.js" -(function(globalThis) - {"use strict"; - var runtime=globalThis.jsoo_runtime; - function caml_call1(f,a0) - {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} - var global_data=runtime.caml_get_global_data(),Stdlib=global_data.Stdlib; - caml_call1(Stdlib[103],0); - var Std_exit=[0]; - runtime.caml_register_global(1,Std_exit,"Std_exit"); - return} +//# 1 "../../.js/default/stdlib/std_exit.cmo.js" +// Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cmo, use-js-string=true, version=5.1.1 + +//# 6 "../../.js/default/stdlib/std_exit.cmo.js" +(function + (globalThis){ + "use strict"; + var runtime = globalThis.jsoo_runtime; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib = global_data.Stdlib; + caml_call1(Stdlib[103], 0); + var Std_exit = [0]; + runtime.caml_register_global(1, Std_exit, "Std_exit"); + return; + } (globalThis)); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLjAsImZpbGUiOiJhcGlfd2ViLmJjLmpzIiwic291cmNlUm9vdCI6IiIsIm5hbWVzIjpbIk9iamVjdCIsImdsb2JhbFRoaXMiLCJ0aGlzIiwiZ2V0IiwiX1RfIiwiZ2xvYmFsIiwic2VsZiIsImNhbWxfaW50NjRfaXNfemVybyIsIngiLCJjYW1sX3N0cl9yZXBlYXQiLCJuIiwicyIsInIiLCJsIiwiY2FtbF9pbnQ2NF9vZmZzZXQiLCJNYXRoIiwiY2FtbF9yYWlzZV9jb25zdGFudCIsInRhZyIsImNhbWxfZ2xvYmFsX2RhdGEiLCJjYW1sX3JhaXNlX3plcm9fZGl2aWRlIiwiTWxJbnQ2NCIsImxvIiwibWkiLCJoaSIsInhoaSIsImgiLCJzaWduIiwib2Zmc2V0IiwibW9kdWx1cyIsImRpdmlzb3IiLCJxdW90aWVudCIsInkiLCJxIiwiY2FtbF9pbnQ2NF9vZl9pbnQzMiIsImNhbWxfaW50NjRfdG9faW50MzIiLCJjYW1sX2ludDY0X2lzX25lZ2F0aXZlIiwiY2FtbF9pbnQ2NF9uZWciLCJjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMiLCJhIiwiaSIsImxlbiIsImYiLCJTdHJpbmciLCJudWxsIiwiY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyIsImNhbWxfanNieXRlc19vZl9zdHJpbmciLCJjYW1sX3JhaXNlX3dpdGhfYXJnIiwiYXJnIiwianNvb19pc19hc2NpaSIsImNhbWxfdXRmMTZfb2ZfdXRmOCIsImIiLCJ0IiwiYyIsImMxIiwiYzIiLCJ2IiwiaiIsIk1sQnl0ZXMiLCJjb250ZW50cyIsImxlbmd0aCIsImNvbnRlbnQiLCJjYW1sX2J5dGVzX29mX2pzYnl0ZXMiLCJjYW1sX3N0cmluZ19vZl9qc2J5dGVzIiwiY2FtbF9yYWlzZV93aXRoX3N0cmluZyIsIm1zZyIsImNhbWxfaW52YWxpZF9hcmd1bWVudCIsImNhbWxfcGFyc2VfZm9ybWF0IiwiZm10IiwiY2FtbF9maW5pc2hfZm9ybWF0dGluZyIsInJhd2J1ZmZlciIsImJ1ZmZlciIsImNhbWxfaW50NjRfZm9ybWF0Iiwid2Jhc2UiLCJjdnRibCIsInAiLCJjYW1sX2V4cG0xX2Zsb2F0IiwiY2FtbF9tbF9jb25kaXRpb25fYnJvYWRjYXN0IiwiY2FtbF9qc3N0cmluZ19vZl9zdHJpbmciLCJmc19ub2RlX3N1cHBvcnRlZCIsIm1ha2VfcGF0aF9pc19hYnNvbHV0ZSIsInBvc2l4IiwicGF0aCIsIndpbjMyIiwic3BsaXREZXZpY2VSZSIsInJlc3VsdCIsImRldmljZSIsImlzVW5jIiwiQm9vbGVhbiIsInJvb3QiLCJzZXAiLCJwYXRoX2lzX2Fic29sdXRlIiwiY2FtbF90cmFpbGluZ19zbGFzaCIsIm5hbWUiLCJjYW1sX2N1cnJlbnRfZGlyIiwiY2FtbF9tYWtlX3BhdGgiLCJjb21wMCIsImNvbXAiLCJuY29tcCIsImNhbWxfdXRmOF9vZl91dGYxNiIsImQiLCJjYW1sX2J5dGVzX29mX3V0ZjE2X2pzc3RyaW5nIiwiY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmciLCJ1bml4X2Vycm9yIiwibWFrZV91bml4X2Vycl9hcmdzIiwiY29kZSIsInN5c2NhbGwiLCJlcnJubyIsInZhcmlhbnQiLCJhcmdzIiwiY2FtbF9uYW1lZF92YWx1ZXMiLCJjYW1sX25hbWVkX3ZhbHVlIiwibm0iLCJjYW1sX3JhaXNlX3dpdGhfYXJncyIsImNhbWxfaXNfbWxfYnl0ZXMiLCJjYW1sX2lzX21sX3N0cmluZyIsImNhbWxfYnl0ZXNfb2ZfYXJyYXkiLCJVaW50OEFycmF5IiwiY2FtbF9ieXRlc19vZl9zdHJpbmciLCJjYW1sX3JhaXNlX3N5c19lcnJvciIsImNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlIiwiY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5IiwiY2FtbF91aW50OF9hcnJheV9vZl9ieXRlcyIsImNhbWxfY3JlYXRlX2J5dGVzIiwiY2FtbF9tbF9ieXRlc19sZW5ndGgiLCJjYW1sX2JsaXRfYnl0ZXMiLCJzMSIsImkxIiwiczIiLCJpMiIsIk1sRmlsZSIsIk1sRmFrZUZpbGUiLCJvbGQiLCJidWYiLCJwb3MiLCJjbGVuIiwibmV3X3N0ciIsIm9sZF9kYXRhIiwiZGF0YSIsIk1sRmFrZUZkIiwiZmlsZSIsImZsYWdzIiwidW5kZWZpbmVkIiwiTWxGYWtlRGV2aWNlIiwicmVzIiwiU3ltYm9sIiwibmFtZV9zbGFzaCIsIm1vZGUiLCJyYWlzZV91bml4IiwicGFyZW50IiwiUmVnRXhwIiwic2VlbiIsIm0iLCJlbnRyeSIsIm9rIiwiQXJyYXkiLCJieXRlcyIsImNhbWxfbWxfc3RyaW5nX2xlbmd0aCIsImNhbWxfYnl0ZXNfdW5zYWZlX2dldCIsImNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQiLCJjYW1sX3VpbnQ4X2FycmF5X29mX3N0cmluZyIsImNhbWxfYnl0ZXNfYm91bmRfZXJyb3IiLCJjYW1sX2J5dGVzX3Vuc2FmZV9zZXQiLCJjYW1sX2J5dGVzX3NldCIsIk1sTm9kZUZkIiwiZmQiLCJyZXF1aXJlIiwiZXJyIiwiYnVmX29mZnNldCIsInJlYWQiLCJNbE5vZGVEZXZpY2UiLCJjb25zdHMiLCJrZXkiLCJpc0NoYXJhY3RlckRldmljZSIsIm8iLCJqc19zdGF0cyIsInRvX2RpciIsInRhcmdldCIsImxpbmsiLCJmaWxlX2tpbmQiLCJjYW1sX2dldF9yb290IiwiY2FtbF9mYWlsd2l0aCIsImNhbWxfcm9vdCIsImpzb29fbW91bnRfcG9pbnQiLCJyZXNvbHZlX2ZzX2RldmljZSIsImNhbWxfc3lzX2lzX2RpcmVjdG9yeSIsImNhbWxfcmFpc2Vfbm90X2ZvdW5kIiwiY2FtbF9zeXNfZ2V0ZW52IiwicHJvY2VzcyIsInNoaWZ0X3JpZ2h0X25hdCIsIm5hdDEiLCJvZnMxIiwibGVuMSIsIm5hdDIiLCJvZnMyIiwibmJpdHMiLCJ3cmFwIiwiY2FtbF9ncl9zdGF0ZSIsImNhbWxfZ3Jfc3RhdGVfZ2V0IiwiY2FtbF9ncl9wb2ludF9jb2xvciIsImltIiwiTWxPYmplY3RUYWJsZSIsIk5haXZlTG9va3VwIiwib2JqcyIsImNhbWxfc3lzX3JlbmFtZSIsIm9fcm9vdCIsIm5fcm9vdCIsImNhbWxfbG9nMTBfZmxvYXQiLCJjYW1sX3J1bnRpbWVfd2FybmluZ3MiLCJjYW1sX21sX2VuYWJsZV9ydW50aW1lX3dhcm5pbmdzIiwiYm9vbCIsImNhbWxfY2xhc3NpZnlfZmxvYXQiLCJpc0Zpbml0ZSIsImlzTmFOIiwiY2FtbF9tbF9jaGFubmVscyIsImNhbWxfcmVmaWxsIiwiY2hhbiIsInN0ciIsInN0cl9hIiwibnJlYWQiLCJjYW1sX2FycmF5X2JvdW5kX2Vycm9yIiwiY2FtbF9tbF9pbnB1dF9zY2FuX2xpbmUiLCJjaGFuaWQiLCJwcmV2X21heCIsImNhbWxfZ2NfbWlub3IiLCJ1bml0IiwiYmlnSW50IiwiQkFTRSIsIkxPR19CQVNFIiwiTUFYX0lOVCIsIk1BWF9JTlRfQVJSIiwic21hbGxUb0FycmF5IiwiREVGQVVMVF9BTFBIQUJFVCIsIkJpZ0ludCIsImpvb19nbG9iYWxfb2JqZWN0Iiwic3VwcG9ydHNOYXRpdmVCaWdJbnQiLCJJbnRlZ2VyIiwicmFkaXgiLCJhbHBoYWJldCIsImNhc2VTZW5zaXRpdmUiLCJwYXJzZVZhbHVlIiwicGFyc2VCYXNlIiwiQmlnSW50ZWdlciIsInZhbHVlIiwiU21hbGxJbnRlZ2VyIiwiTmF0aXZlQmlnSW50IiwiaXNQcmVjaXNlIiwiYXJyYXlUb1NtYWxsIiwiYXJyIiwidHJpbSIsImNvbXBhcmVBYnMiLCJjcmVhdGVBcnJheSIsInRydW5jYXRlIiwiYWRkIiwibF9hIiwibF9iIiwiY2FycnkiLCJiYXNlIiwic3VtIiwiYWRkQW55IiwiYWRkU21hbGwiLCJzdWJ0cmFjdCIsImFfbCIsImJfbCIsImJvcnJvdyIsImRpZmZlcmVuY2UiLCJzdWJ0cmFjdEFueSIsInN1YnRyYWN0U21hbGwiLCJzbWFsbCIsIm11bHRpcGx5TG9uZyIsInByb2R1Y3QiLCJhX2kiLCJiX2oiLCJtdWx0aXBseVNtYWxsIiwic2hpZnRMZWZ0IiwibXVsdGlwbHlLYXJhdHN1YmEiLCJhYyIsImJkIiwiYWJjZCIsInVzZUthcmF0c3ViYSIsImwxIiwibDIiLCJhYnMiLCJtdWx0aXBseVNtYWxsQW5kQXJyYXkiLCJzcXVhcmUiLCJhX2oiLCJkaXZNb2QxIiwiZGl2aXNvck1vc3RTaWduaWZpY2FudERpZ2l0IiwibGFtYmRhIiwicmVtYWluZGVyIiwicXVvdGllbnREaWdpdCIsInNoaWZ0IiwiZGl2TW9kU21hbGwiLCJkaXZNb2QyIiwicGFydCIsImd1ZXNzIiwieGxlbiIsImhpZ2h4IiwiaGlnaHkiLCJjaGVjayIsImRpdk1vZEFueSIsIkVycm9yIiwiY29tcGFyaXNvbiIsInFTaWduIiwibW9kIiwibVNpZ24iLCJfMCIsIl8xIiwiXzIiLCJleHAiLCJJbmZpbml0eSIsImlzQmFzaWNQcmltZSIsIm1pbGxlclJhYmluVGVzdCIsIm5QcmV2Iiwic3RyaWN0IiwiaXNQcmltZSIsImJpdHMiLCJsb2dOIiwiaXRlcmF0aW9ucyIsIm5ld1QiLCJuZXdSIiwibGFzdFQiLCJsYXN0UiIsInBvd2Vyc09mVHdvIiwicG93ZXJzMkxlbmd0aCIsImhpZ2hlc3RQb3dlcjIiLCJzaGlmdF9pc1NtYWxsIiwicmVtUXVvIiwiYml0d2lzZSIsImZuIiwieFNpZ24iLCJ5U2lnbiIsInhSZW0iLCJ5UmVtIiwieERpZ2l0IiwieURpZ2l0IiwieERpdk1vZCIsInlEaXZNb2QiLCJMT0JNQVNLX0kiLCJMT0JNQVNLX0JJIiwicm91Z2hMT0IiLCJpbnRlZ2VyTG9nYXJpdGhtIiwidG1wIiwiZSIsIm1heCIsIm1pbiIsImdjZCIsImxjbSIsInJhbmRCZXR3ZWVuIiwibG93IiwiaGlnaCIsInJhbmdlIiwiZGlnaXRzIiwidG9CYXNlIiwicmVzdHJpY3RlZCIsInRvcCIsImRpZ2l0IiwidGV4dCIsImFic0Jhc2UiLCJhbHBoYWJldFZhbHVlcyIsImlzTmVnYXRpdmUiLCJzdGFydCIsInBhcnNlQmFzZUZyb21BcnJheSIsInZhbCIsInBvdyIsInN0cmluZ2lmeSIsIm5lZyIsIk51bWJlciIsIm91dCIsImxlZnQiLCJkaXZtb2QiLCJ0b0Jhc2VTdHJpbmciLCJ6ZXJvcyIsInBhcnNlSW50IiwicGFyc2VTdHJpbmdWYWx1ZSIsInNwbGl0IiwiZGVjaW1hbFBsYWNlIiwiaXNWYWxpZCIsInBhcnNlTnVtYmVyVmFsdWUiLCJtbF96X25vcm1hbGl6ZSIsIm1sX3pfcG93IiwiejEiLCJtbF96X3Jvb3QiLCJ6IiwiemVybyIsIm9uZSIsImVuZCIsImFucyIsInR3byIsIm1pZCIsInBvIiwibWxfel9yb290cmVtIiwiY2FtbF9tbF9jb25kaXRpb25fbmV3IiwiY2FtbF9pbnQ2NF9vZl9ieXRlcyIsImNhbWxfYmFfdWludDhfZ2V0NjQiLCJiYSIsImkwIiwib2ZzIiwiYjEiLCJiMiIsImIzIiwiYjQiLCJiNSIsImI2IiwiYjciLCJiOCIsImNhbWxfaW50NjRfdG9fYnl0ZXMiLCJjYW1sX2ludDY0X21hcnNoYWwiLCJ3cml0ZXIiLCJzaXplcyIsImNhbWxfYmFfbnVtX2RpbXMiLCJjYW1sX3JldHVybl9leG5fY29uc3RhbnQiLCJjYW1sX3dyYXBfZXhjZXB0aW9uIiwiY2FtbF9jcmVhdGVfZmlsZSIsImpzb29fY3JlYXRlX2ZpbGUiLCJjYW1sX2ZzX2luaXQiLCJjYW1sX3BhcnNlcl90cmFjZSIsImNhbWxfc2V0X3BhcnNlcl90cmFjZSIsIm9sZGZsYWciLCJjYW1sX2xpc3Rfb2ZfanNfYXJyYXkiLCJjYW1sX211bCIsImNhbWxfaGFzaF9taXhfaW50IiwibnVtX2RpZ2l0c19uYXQiLCJuYXQiLCJjYW1sX2hhc2hfbmF0IiwiY2FtbF9jYWxsX2dlbiIsImFyZ3NMZW4iLCJleHRyYV9hcmdzIiwiYXJndW1lbnRzIiwibmFyZ3MiLCJjYW1sX2pzX3dyYXBfY2FsbGJhY2tfYXJndW1lbnRzIiwiY2FtbF9zeXNfY2hkaXIiLCJkaXIiLCJjYW1sX29ial90YWciLCJGdW5jdGlvbiIsImNhbWxfb2JqX3VwZGF0ZV90YWciLCJjYW1sX21sX2RvbWFpbl91bmlxdWVfdG9rZW5fIiwiY2FtbF9tbF9kb21haW5fdW5pcXVlX3Rva2VuIiwiY2FtbF9sYXp5X3VwZGF0ZV90b19mb3JjaW5nIiwiZmllbGQwIiwiY2FtbF9nY19jb3VudGVycyIsIm1sX3pfZGl2IiwiejIiLCJtbF96X3NpZ24iLCJtbF96X2FkZCIsIm1sX3pfY2RpdiIsInoxX3BvcyIsInoyX3BvcyIsImNhbWxfZ3Jfc3luY2hyb25pemUiLCJjYW1sX3VuaXhfY2xvc2VkaXIiLCJkaXJfaGFuZGxlIiwiY2FtbF91bml4X29wZW5kaXIiLCJjYW1sX3VuaXhfcmV3aW5kZGlyIiwibmV3X2Rpcl9oYW5kbGUiLCJjYW1sX3JhaXNlX2VuZF9vZl9maWxlIiwiY2FtbF91bml4X3JlYWRkaXIiLCJjYW1sX3VuaXhfZmluZGZpcnN0IiwicGF0aF9qcyIsImZpcnN0X2VudHJ5IiwibG9nMl9vayIsImpzb29fZmxvb3JfbG9nMiIsImNhbWxfaW50MzJfYml0c19vZl9mbG9hdCIsImZsb2F0MzJhIiwiRmxvYXQzMkFycmF5IiwiaW50MzJhIiwiSW50MzJBcnJheSIsImNhbWxfaW50NjRfY3JlYXRlX2xvX21pX2hpIiwiY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0IiwiayIsInIzIiwicjIiLCJyMSIsImNhbWxfYmFfc2VyaWFsaXplIiwic3oiLCJjb21wbGV4IiwiY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudCIsImtpbmQiLCJjYW1sX2JhX2NyZWF0ZV9idWZmZXIiLCJzaXplIiwidmlldyIsIkZsb2F0NjRBcnJheSIsIkludDhBcnJheSIsIkludDE2QXJyYXkiLCJVaW50MTZBcnJheSIsImNhbWxfaW50MzJfZmxvYXRfb2ZfYml0cyIsImNhbWxfaW50NjRfZmxvYXRfb2ZfYml0cyIsIk5hTiIsImNhbWxfYmFfZ2V0X3NpemUiLCJkaW1zIiwibl9kaW1zIiwiY2FtbF9pbnQ2NF9jcmVhdGVfbG9faGkiLCJjYW1sX2ludDY0X2hpMzIiLCJjYW1sX2ludDY0X2xvMzIiLCJjYW1sX2JhX2N1c3RvbV9uYW1lIiwiTWxfQmlnYXJyYXkiLCJsYXlvdXQiLCJyZSIsInRvdGFsIiwiazEiLCJrMiIsIk1sX0JpZ2FycmF5X2NfMV8xIiwiY2FtbF9iYV9jcmVhdGVfdW5zYWZlIiwic2l6ZV9wZXJfZWxlbWVudCIsImNhbWxfYmFfZGVzZXJpYWxpemUiLCJyZWFkZXIiLCJudW1fZGltcyIsInNpemVfZGltIiwic2l6ZV9kaW1faGkiLCJzaXplX2RpbV9sbyIsInNpeHR5IiwiaW50NjQiLCJjYW1sX2JhX2NvbXBhcmUiLCJjYW1sX2hhc2hfbWl4X2ludDY0IiwiY2FtbF9oYXNoX21peF9mbG9hdCIsInYwIiwiY2FtbF9iYV9oYXNoIiwibnVtX2VsdHMiLCJ3IiwiY2FtbF9pbnQzMl91bm1hcnNoYWwiLCJjYW1sX25hdGl2ZWludF91bm1hcnNoYWwiLCJjYW1sX2ludDY0X3VubWFyc2hhbCIsImNhbWxfaW50NjRfY29tcGFyZSIsImNhbWxfaW50NjRfaGFzaCIsImNhbWxfY3VzdG9tX29wcyIsImNhbWxfY29tcGFyZV92YWxfZ2V0X2N1c3RvbSIsImNhbWxfY29tcGFyZV92YWxfbnVtYmVyX2N1c3RvbSIsIm51bSIsImN1c3RvbSIsInN3YXAiLCJjYW1sX2NvbXBhcmVfdmFsX3RhZyIsImNhbWxfaW50X2NvbXBhcmUiLCJjYW1sX2J5dGVzX2NvbXBhcmUiLCJjYW1sX3N0cmluZ19jb21wYXJlIiwiY2FtbF9jb21wYXJlX3ZhbCIsInN0YWNrIiwidGFnX2EiLCJ0YWdfYiIsImNhbWxfZ3JlYXRlcnRoYW4iLCJkaXZfaGVscGVyIiwiZGl2X2RpZ2l0X25hdCIsIm5hdHEiLCJvZnNxIiwibmF0ciIsIm9mc3IiLCJyZW0iLCJudW1fbGVhZGluZ196ZXJvX2JpdHNfaW5fZGlnaXQiLCJzaGlmdF9sZWZ0X25hdCIsIk1sTmF0IiwiY3JlYXRlX25hdCIsInNldF90b196ZXJvX25hdCIsImluY3JfbmF0IiwiY2FycnlfaW4iLCJhZGRfbmF0IiwibGVuMiIsIm5hdF9vZl9hcnJheSIsIm11bHRfZGlnaXRfbmF0IiwibmF0MyIsIm9mczMiLCJ4MSIsIngyIiwieDMiLCJkZWNyX25hdCIsInN1Yl9uYXQiLCJjb21wYXJlX25hdCIsImRpdl9uYXQiLCJxdW8iLCJjYW1sX2JhX2JsaXQiLCJzcmMiLCJkc3QiLCJpc19kaWdpdF9pbnQiLCJjYW1sX2ludDY0X2RpdiIsImNhbWxfanNfaHRtbF9lbnRpdGllcyIsImVudGl0eSIsInRlbXAiLCJkb2N1bWVudCIsImNhbWxfc3RyaW5nX3Vuc2FmZV9zZXQiLCJjYW1sX2ludDY0X29mX2Zsb2F0IiwiY2FtbF9tbF9jaGFubmVsX3NpemVfNjQiLCJjYW1sX2JhX3NldF8yIiwibWxfel9vZl9pbnQ2NCIsImk2NCIsIm1sX3pfa3JvbmVja2VyIiwiY2FtbF9hcmd2IiwibWFpbiIsImFyZ3YiLCJhcmdzMiIsImNhbWxfZXhlY3V0YWJsZV9uYW1lIiwiY2FtbF9qc19ldmFsX3N0cmluZyIsImV2YWwiLCJzZXJpYWxpemVfbmF0IiwiY2FtbF9tZW1wcm9mX3NldCIsIl9jb250cm9sIiwibWxfel9uZWciLCJjYW1sX3N5c19leGl0IiwiY2FtbF9jaGFubmVsX2Rlc2NyaXB0b3IiLCJjYW1sX2pzX2Zyb21fYXJyYXkiLCJjYW1sX2JhX3Jlc2hhcGUiLCJ2aW5kIiwibmV3X2RpbSIsImNhbWxfb29fbGFzdF9pZCIsImNhbWxfc2V0X29vX2lkIiwiY2FtbF9ncl9maWxsX3JlY3QiLCJjYW1sX2JpZ3N0cmluZ19ibGl0X3N0cmluZ190b19iYSIsInN0cjEiLCJwb3MxIiwiYmEyIiwicG9zMiIsInNsaWNlIiwiY2FtbF9ncl9zZXRfd2luZG93X3RpdGxlIiwianNuYW1lIiwiY2FtbF9nZXRfZ2xvYmFsX2RhdGEiLCJjYW1sX2ludDY0X3NoaWZ0X3JpZ2h0X3Vuc2lnbmVkIiwiY2FtbF9iYV91aW50OF9nZXQxNiIsIm1sX3pfb2ZfaW50MzIiLCJjYW1sX2NvbXBhcmUiLCJjYW1sX01ENVRyYW5zZm9ybSIsInh4IiwiZmYiLCJnZyIsImhoIiwiaWkiLCJjYW1sX01ENVVwZGF0ZSIsImN0eCIsImlucHV0IiwiaW5wdXRfbGVuIiwiaW5fYnVmIiwiaW5wdXRfcG9zIiwibWlzc2luZyIsImNhbWxfZnJlc2hfb29faWQiLCJjYW1sX2ludDY0X3RvX2Zsb2F0IiwiY2FtbF9iYV9nZXRfMSIsImNhbWxfYmlnc3RyaW5nX21lbWNtcCIsImNhbWxfbmV3X3N0cmluZyIsImNhbWxfZXJmX2Zsb2F0IiwiYTEiLCJhMiIsImEzIiwiYTQiLCJhNSIsImNhbWxfYmFfdWludDhfZ2V0MzIiLCJjYW1sX3Jhd19iYWNrdHJhY2VfbGVuZ3RoIiwibWxfel9zaGlmdF9yaWdodCIsImFtdCIsImNhbWxfc3RyX2luaXRpYWxpemUiLCJjYW1sX29ial9ibG9jayIsImNhbWxfZ3JfY2xlYXJfZ3JhcGgiLCJiaWdzdHJpbmdfdG9fYXJyYXlfYnVmZmVyIiwiYnMiLCJjYW1sX3N5c19jb25zdF9uYWtlZF9wb2ludGVyc19jaGVja2VkIiwiX3VuaXQiLCJseG9yX2RpZ2l0X25hdCIsImNhbWxfb2JqX2FkZF9vZmZzZXQiLCJjYW1sX2ZpbmFsX3JlbGVhc2UiLCJjYW1sX2pzX3RvX2FycmF5IiwibWxfel9sb2dvciIsImNhbWxfZ3JfcGxvdCIsImNvbG9yIiwiY2FtbF9ieXRlc19zZXQxNiIsImkxNiIsImNhbWxfc3RyaW5nX3NldDE2IiwiY2FtbF9ieXRlc19zZXQ2NCIsImNhbWxfaW50NjRfYnN3YXAiLCJtbF96X2ZpdHNfaW50IiwibWxfel9maXRzX2ludDMyIiwiY2FtbF9nY19tYWpvciIsIm1sX3pfc2hpZnRfbGVmdCIsImNhbWxfbGV4X2FycmF5IiwiY2FtbF9sZXhfZW5naW5lIiwidGJsIiwic3RhcnRfc3RhdGUiLCJsZXhidWYiLCJsZXhfYnVmZmVyIiwibGV4X2J1ZmZlcl9sZW4iLCJsZXhfc3RhcnRfcG9zIiwibGV4X2N1cnJfcG9zIiwibGV4X2xhc3RfcG9zIiwibGV4X2xhc3RfYWN0aW9uIiwibGV4X2VvZl9yZWFjaGVkIiwibGV4X2Jhc2UiLCJsZXhfYmFja3RyayIsImxleF9kZWZhdWx0IiwibGV4X3RyYW5zIiwibGV4X2NoZWNrIiwic3RhdGUiLCJiYWNrdHJrIiwiY2FtbF9zeXNfZmlsZV9leGlzdHMiLCJjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZV9zbG90IiwiY2FtbF9hcnJheV9zdWIiLCJjYW1sX2J5dGVzX2VxdWFsIiwiY2FtbF9ncl9zaXplX3giLCJjYW1sX21sX2RlYnVnX2luZm9fc3RhdHVzIiwiY2FtbF9hdG9taWNfZmV0Y2hfYWRkIiwicmVmIiwib3NfdHlwZSIsImNhbWxfc3lzX2NvbnN0X29zdHlwZV9jeWd3aW4iLCJjYW1sX2Nvc2hfZmxvYXQiLCJNbE11dGV4IiwiY2FtbF9tbF9tdXRleF9uZXciLCJjYW1sX2VwaGVfa2V5X29mZnNldCIsImNhbWxfZXBoZV9jaGVja19rZXkiLCJ3ZWFrIiwiY2FtbF9oYXNoX21peF9maW5hbCIsImNhbWxfZ3JfdGV4dF9zaXplIiwidHh0IiwiY2FtbF9sZXhfcnVuX21lbSIsIm1lbSIsImN1cnJfcG9zIiwiY2FtbF9sZXhfcnVuX3RhZyIsImNhbWxfbmV3X2xleF9lbmdpbmUiLCJsZXhfbWVtIiwibGV4X2Jhc2VfY29kZSIsImxleF9iYWNrdHJrX2NvZGUiLCJsZXhfZGVmYXVsdF9jb2RlIiwibGV4X3RyYW5zX2NvZGUiLCJsZXhfY2hlY2tfY29kZSIsImxleF9jb2RlIiwicGNfb2ZmIiwicHN0YXRlIiwiYmFzZV9jb2RlIiwiY2FtbF9iYV91aW50OF9zZXQ2NCIsIm1sX3pfcG9wY291bnQiLCJjYW1sX3N5c19leGVjdXRhYmxlX25hbWUiLCJjYW1sX2xlc3NlcXVhbCIsImNhbWxfYWNvc2hfZmxvYXQiLCJjYW1sX01ENUluaXQiLCJBcnJheUJ1ZmZlciIsImIzMiIsIlVpbnQzMkFycmF5IiwiY2FtbF9tbF9mbHVzaCIsImNhbWxfc2Vla19vdXQiLCJjYW1sX21sX3NlZWtfb3V0XzY0IiwiY29tcGFyZV9uYXRfcmVhbCIsImNhbWxfZ2Nfc2V0IiwiY2FtbF9qc19nZXQiLCJjYW1sX3VuaXhfaXNhdHR5IiwiZmlsZURlc2NyaXB0b3IiLCJ0dHkiLCJjYW1sX21sX3NldF9idWZmZXJlZCIsImNhbWxfZ2NfY29tcGFjdGlvbiIsImNhbWxfZXBoZV9nZXRfa2V5IiwiY2FtbF91bml4X2xvY2FsdGltZSIsIkRhdGUiLCJkX251bSIsImphbnVhcnlmaXJzdCIsImRveSIsImphbiIsImp1bCIsInN0ZFRpbWV6b25lT2Zmc2V0IiwiY2FtbF91bml4X21rdGltZSIsInRtIiwidG0yIiwianNvb196X29mX2pzX3N0cmluZ19iYXNlIiwiYmMiLCJtbF96X29mX3N1YnN0cmluZ19iYXNlIiwiY2FtbF9iaWdzdHJpbmdfYmxpdF9ieXRlc190b19iYSIsImNhbWxfc3lzX2ZkcyIsImNhbWxfc3lzX2Nsb3NlIiwiY2FtbF9tbF9jbG9zZV9jaGFubmVsIiwiY2FtbF9leG5fd2l0aF9qc19iYWNrdHJhY2UiLCJleG4iLCJmb3JjZSIsImNhbWxfYXRvbWljX2V4Y2hhbmdlIiwiY2FtbF9zeXNfaXNhdHR5IiwiX2NoYW4iLCJpc19kaWdpdF96ZXJvIiwiY2FtbF91bml4X2xzdGF0IiwiY2FtbF91bml4X2xzdGF0XzY0IiwiY2FtbF9qc19zZXQiLCJtbF96X2djZGV4dF9pbnRlcm4iLCJsYXN0eCIsImxhc3R5IiwibWxfel90ZXN0Yml0IiwiY2FtbF9hcnJheV9nZXQiLCJhcnJheSIsImluZGV4IiwiY2FtbF91bml4X3JtZGlyIiwiY2FtbF9sb2cyX2Zsb2F0IiwiY2FtbF9nY19odWdlX2ZhbGxiYWNrX2NvdW50IiwibWxfel9jb25ncnVlbnQiLCJjYW1sX3NwYWNldGltZV9vbmx5X3dvcmtzX2Zvcl9uYXRpdmVfY29kZSIsImNhbWxfaW50NjRfc3ViIiwiY2FtbF9zZWVrX2luIiwiY2FtbF9tbF9zZWVrX2luXzY0IiwiY2FtbF9kb21haW5faWQiLCJjYW1sX21sX211dGV4X3VubG9jayIsImNhbWxfZG9tYWluX2xhdGVzdF9pZHgiLCJjYW1sX2RvbWFpbl9zcGF3biIsIm11dGV4IiwiaWQiLCJjYW1sX3VuaXhfbWtkaXIiLCJwZXJtIiwiY2FtbF9pbnQ2NF9zaGlmdF9sZWZ0IiwiY2FtbF9ub3RlcXVhbCIsIm1sX3pfYWJzIiwiY2FtbF9zeXNfY29uc3RfaW50X3NpemUiLCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFjayIsImNhbWxfaXNfanMiLCJjYW1sX2xhenlfdXBkYXRlX3RvX2ZvcndhcmQiLCJjYW1sX2JhX2RpbSIsImNhbWxfYmFfZGltXzEiLCJtbF96X3NxcnQiLCJjYW1sX2pzX21ldGhfY2FsbCIsIm1sX3pfbHVjbnVtIiwiY2FtbF9lcGhlX2RhdGFfb2Zmc2V0IiwiY2FtbF93ZWFrX2NyZWF0ZSIsImNhbWxfZXBoZV9jcmVhdGUiLCJjYW1sX2pzX3RvX2J5dGVfc3RyaW5nIiwibWxfel9wcm9iYWJfcHJpbWUiLCJjYW1sX3RyYW1wb2xpbmUiLCJjYW1sX21heWJlX3ByaW50X3N0YXRzIiwiY2FtbF9ieXRlc19nZXQ2NCIsImNhbWxfdW5peF9oYXNfc3ltbGluayIsIm1sX3pfcmVtIiwiY2FtbF9lcGhlX3NldF9rZXkiLCJjYW1sX2VwaGVfdW5zZXRfa2V5IiwiY291bnQiLCJjYW1sX3dlYWtfc2V0IiwiY2FtbF9zeXNfcmVtb3ZlIiwiY2FtbF9zdHJpbmdfYm91bmRfZXJyb3IiLCJjYW1sX3N0cmluZ19nZXQzMiIsImNhbWxfYnl0ZXNfZ2V0IiwiY2FtbF9oeXBvdF9mbG9hdCIsIm1sX3pfZmFjTSIsImN1cnJlbnQiLCJjYW1sX2pzX2NhbGwiLCJjYW1sX3N5c19jb25zdF9tYXhfd29zaXplIiwiY2FtbF91bml4X2luZXRfYWRkcl9vZl9zdHJpbmciLCJtbF96X211bF9vdmVyZmxvd3MiLCJtbF96X3RvX2ludCIsImNhbWxfaGFzaF9taXhfYnl0ZXNfYXJyIiwiY2FtbF9oYXNoX21peF9qc2J5dGVzIiwiY2FtbF9tbF9ieXRlc19jb250ZW50IiwiY2FtbF9oYXNoX21peF9ieXRlcyIsImNhbWxfYnl0ZXNfbGVzc3RoYW4iLCJjYW1sX2VyZmNfZmxvYXQiLCJjYW1sX2dyX2ZpbGxfcG9seSIsImFyIiwiY2FtbF9nY19xdWlja19zdGF0IiwibWxfel9mYWMiLCJjYW1sX21sX2lucHV0X2NoYXIiLCJjYW1sX21sX2lucHV0X2ludCIsImNhbWxfZ3JfZGlzcGxheV9tb2RlIiwibWxfel9kaXZpc2libGUiLCJjYW1sX29ial9yZWFjaGFibGVfd29yZHMiLCJudGhfZGlnaXRfbmF0IiwiY2FtbF9hcnJheV9ibGl0IiwiY2FtbF9mbG9hdF9vZl9zdHJpbmciLCJtMyIsIm1hbnRpc3NhIiwiZXhwb25lbnQiLCJjYW1sX3N5c19nZXRjd2QiLCJjYW1sX2ludDY0X2FkZCIsImNhbWxfaW50NjRfbXVsIiwiY2FtbF9pbnQ2NF91bHQiLCJjYW1sX3BhcnNlX3NpZ25fYW5kX2Jhc2UiLCJjYW1sX3BhcnNlX2RpZ2l0IiwiY2FtbF9pbnQ2NF9vZl9zdHJpbmciLCJiYXNlNjQiLCJ0aHJlc2hvbGQiLCJjYW1sX2JhX3NldF8xIiwiY2FtbF9pbnQ2NF94b3IiLCJjYW1sX2ludDY0X29yIiwiY2FtbF9seG1fbmV4dCIsInNoaWZ0X2wiLCJzaGlmdF9yIiwib3IiLCJ4b3IiLCJtdWwiLCJyb3RsIiwic2V0IiwiTSIsImRhYmEiLCJxMCIsInExIiwic3QiLCJ4MCIsImNhbWxfc3lzX2NvbnN0X2JpZ19lbmRpYW4iLCJjYW1sX2xpc3RfdG9fanNfYXJyYXkiLCJjYW1sX2xlZ2FjeV9jdXN0b21fY29kZSIsImNhbWxfb3V0cHV0X3ZhbCIsIldyaXRlciIsIm5vX3NoYXJpbmciLCJjbG9zdXJlcyIsImNvbnNvbGUiLCJpbnRlcm5fb2JqX3RhYmxlIiwibWVtbyIsImV4aXN0aW5nX29mZnNldCIsImV4dGVybl9yZWMiLCJvcHMiLCJzel8zMl82NCIsImhlYWRlcl9wb3MiLCJvbGRfcG9zIiwidHlwZV9vZl92IiwiY2FtbF9zdHJpbmdfb2ZfYXJyYXkiLCJjYW1sX291dHB1dF92YWx1ZV90b19zdHJpbmciLCJjYW1sX3JhaXNlX25vdF9hX2RpciIsImNhbWxfc3lzX3N5c3RlbV9jb21tYW5kIiwiY21kIiwiY2hpbGRfcHJvY2VzcyIsImNhbWxfanNfZXJyb3Jfb2ZfZXhjZXB0aW9uIiwiY2FtbF91bml4X2dldHVpZCIsImRlc2VyaWFsaXplX25hdCIsImluaXRpYWxpemVfbmF0IiwibWxfel9zdWNjIiwiY2FtbF9ncl9vcGVuX3N1YndpbmRvdyIsImNhbWxfbWFyc2hhbF9kYXRhX3NpemUiLCJnZXQzMiIsIk1sU3RyaW5nUmVhZGVyIiwiY2FtbF9mbG9hdF9vZl9ieXRlcyIsImNhbWxfaW5wdXRfdmFsdWVfZnJvbV9yZWFkZXIiLCJfbWFnaWMiLCJfYmxvY2tfbGVuIiwibnVtX29iamVjdHMiLCJfc2l6ZV8zMiIsIl9zaXplXzY0Iiwib2JqX2NvdW50ZXIiLCJpbnRlcm5fcmVjIiwiaGVhZGVyIiwiZXhwZWN0ZWRfc2l6ZSIsImNhbWxfc3RyaW5nX29mX2J5dGVzIiwiY2FtbF9pbnB1dF92YWx1ZV9mcm9tX2J5dGVzIiwiY2FtbF9pbnB1dF92YWx1ZSIsImJsb2NrIiwiY2FtbF9pbnB1dF92YWx1ZV90b19vdXRzaWRlX2hlYXAiLCJjYW1sX2F0b21pY19jYXMiLCJjYW1sX2NvcHlzaWduX2Zsb2F0IiwiY2FtbF9ncl9zZXRfdGV4dF9zaXplIiwiY2FtbF9hdG9taWNfbG9hZCIsImNhbWxfTUQ1RmluYWwiLCJjYW1sX21kNV9ieXRlcyIsImNhbWxfYmFfc2V0X2dlbmVyaWMiLCJjYW1sX21sX2NvbmRpdGlvbl93YWl0IiwibXV0ZXh0IiwiY2FtbF9ieXRlc19sZXNzZXF1YWwiLCJjYW1sX3N0cmluZ19sZXNzZXF1YWwiLCJjYW1sX3N0cmluZ19ncmVhdGVyZXF1YWwiLCJjYW1sX25leHRhZnRlcl9mbG9hdCIsImNhbWxfZ3Jfc2l6ZV95IiwibWxfel9mYWMyIiwiY2FtbF9wb3NfaW4iLCJjYW1sX21sX3Bvc19pbiIsImNhbWxfaW50NjRfYW5kIiwiY2FtbF9zeXNfY29uc3Rfd29yZF9zaXplIiwibWxfel9iaW4iLCJjb2VmZiIsImNhbWxfdW5peF91bmxpbmsiLCJjYW1sX3N5c19vcGVuX2Zvcl9ub2RlIiwiZnMiLCJmZDIiLCJNbEZha2VGZF9vdXQiLCJjYW1sX3N5c19vcGVuX2ludGVybmFsIiwiaWR4IiwiY2FtbF9zeXNfb3BlbiIsIl9wZXJtcyIsIm1sX3pfZ2NkIiwibWxfel9tdWwiLCJtbF96X2hhbWRpc3QiLCJjYW1sX3N0cmluZ19nZXQiLCJyZV9tYXRjaCIsInJlX3dvcmRfbGV0dGVycyIsIm9wY29kZXMiLCJpc193b3JkX2xldHRlciIsImluX2JpdHNldCIsInJlX21hdGNoX2ltcGwiLCJwYXJ0aWFsIiwicHJvZyIsImNwb29sIiwibm9ybXRhYmxlIiwibnVtZ3JvdXBzIiwibnVtcmVnaXN0ZXJzIiwic3RhcnRjaGFycyIsInBjIiwicXVpdCIsImdyb3VwcyIsInJlX3JlZ2lzdGVyIiwiYmFja3RyYWNrIiwiaXRlbSIsInB1c2giLCJhY2NlcHQiLCJnIiwicHJlZml4X21hdGNoIiwib3AiLCJzYXJnIiwidWFyZyIsImdyb3VwIiwicmVfc2VhcmNoX2JhY2t3YXJkIiwibWxfel9sb2dhbmQiLCJjYW1sX2pzX2Zyb21fc3RyaW5nIiwiY2FtbF9iYV9zdWIiLCJjaGFuZ2VkX2RpbSIsIm5ld19kaW1zIiwibmV3X2RhdGEiLCJjYW1sX2djX2Z1bGxfbWFqb3IiLCJjYW1sX21sX211dGV4X3RyeV9sb2NrIiwiY2FtbF9ieXRlc19zZXQzMiIsImkzMiIsImNhbWxfZ3Jfc2lnaW9fc2lnbmFsIiwiY2FtbF9iYV91aW50OF9zZXQzMiIsIm1sX3pfZGl2X3JlbSIsImNhbWxfc3lzX2NvbnN0X29zdHlwZV91bml4IiwiY2FtbF91bml4X2dtdGltZSIsImNhbWxfc2lnbmJpdF9mbG9hdCIsImNhbWxfZ3Jfc2V0X2xpbmVfd2lkdGgiLCJjYW1sX2dyX3NldF9mb250IiwiY2FtbF9ncl9zZXRfY29sb3IiLCJjb252ZXJ0IiwibnVtYmVyIiwiY19zdHIiLCJjYW1sX2dyX21vdmV0byIsImNhbWxfZ3JfcmVzaXplX3dpbmRvdyIsImNhbWxfZ3Jfc3RhdGVfaW5pdCIsImNhbWxfZ3JfY3VycmVudF94IiwiY2FtbF9iYV9raW5kX29mX3R5cGVkX2FycmF5IiwidGEiLCJjYW1sX2JhX2Zyb21fdHlwZWRfYXJyYXkiLCJjYW1sX21sX3NlZWtfb3V0IiwiY2FtbF9qc190eXBlb2YiLCJjYW1sX2hhc2hfbWl4X3N0cmluZyIsImNhbWxfc3RyaW5nX2hhc2giLCJjYW1sX3Jlc3RvcmVfcmF3X2JhY2t0cmFjZSIsImJ0IiwiY2FtbF9ncl9saW5ldG8iLCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja191bnNhZmUiLCJjYW1sX2JhX2RpbV8zIiwiY2FtbF9pc19zcGVjaWFsX2V4Y2VwdGlvbiIsImNhbWxfZm9ybWF0X2V4Y2VwdGlvbiIsImJ1Y2tldCIsImNhbWxfZmF0YWxfdW5jYXVnaHRfZXhjZXB0aW9uIiwiaGFuZGxlciIsImF0X2V4aXQiLCJjYW1sX2VwaGVfY2hlY2tfZGF0YSIsImNhbWxfYnl0ZXNfZ2V0MTYiLCJjYW1sX29ial9tYWtlX2ZvcndhcmQiLCJjYW1sX2pzX2Zyb21fYm9vbCIsImNhbWxfbWxfc2V0X2NoYW5uZWxfbmFtZSIsImNhbWxfZXhwMl9mbG9hdCIsImNhbWxfZ3JfY2xvc2VfZ3JhcGgiLCJjYW1sX21sX2RvbWFpbl9jcHVfcmVsYXgiLCJjYW1sX2NyZWF0ZV9zdHJpbmciLCJjYW1sX21sX2lucHV0X2Jsb2NrIiwiYXZhaWwiLCJjYW1sX21kNV9jaGFuIiwidG9yZWFkIiwiY2FtbF9hdGFuaF9mbG9hdCIsImNhbWxfbWxfY29uZGl0aW9uX3NpZ25hbCIsImNhbWxfdW5peF9maW5kbmV4dCIsImNhbWxfbWxfb3V0cHV0X2J5dGVzIiwiY2FtbF9tbF9vdXRwdXQiLCJjYW1sX21sX2RvbWFpbl9pZCIsImNhbWxfZXBoZV9nZXRfZGF0YSIsImNhbWxfeG1saHR0cHJlcXVlc3RfY3JlYXRlIiwiY2FtbF90cmFtcG9saW5lX3JldHVybiIsImNhbWxfbWxfaXNfYnVmZmVyZWQiLCJjYW1sX2FycmF5X2FwcGVuZCIsImNhbWxfdW5peF9nZXR0aW1lb2ZkYXkiLCJjYW1sX3VuaXhfdGltZSIsImNhbWxfbWxfc2V0X2NoYW5uZWxfcmVmaWxsIiwibWxfel9uZXh0cHJpbWUiLCJjYW1sX2ZpbGxfYnl0ZXMiLCJjYW1sX2pzX2V4cHIiLCJjYW1sX21sX3J1bnRpbWVfd2FybmluZ3NfZW5hYmxlZCIsIm1sX3pfc3ViIiwibWxfel9mZGl2IiwibWxfel90b19iaXRzIiwiY2FtbF9vdXRwdXRfdmFsdWVfdG9fYnl0ZXMiLCJjYW1sX2V2ZW50bG9nX3Jlc3VtZSIsImNhbWxfaGFzaF91bml2X3BhcmFtIiwibGltaXQiLCJvYmoiLCJoYXNoX2FjY3UiLCJoYXNoX2F1eCIsImpzYnl0ZXMiLCJjYW1sX21kNV9zdHJpbmciLCJjYW1sX3N0cmluZ19lcXVhbCIsImNhbWxfYXJyYXlfb2Zfc3RyaW5nIiwibWxfel9kaXZleGFjdCIsImNhbWxfb3V0cHV0X3ZhbHVlX3RvX2J1ZmZlciIsInJlX3JlcGxhY2VtZW50X3RleHQiLCJyZXBsIiwib3JpZyIsImN1ciIsImNhbWxfcHVyZV9qc19leHByIiwiY2FtbF9ibGl0X3N0cmluZyIsImJsaXRfbmF0IiwiY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19ieXRlcyIsImJhMSIsImJ5dGVzMiIsImNhbWxfdW5peF9zdGF0IiwiY2FtbF9yZWdpc3Rlcl9uYW1lZF92YWx1ZSIsImpzb29fY3JlYXRlX2ZpbGVfZXh0ZXJuIiwiY2FtbF91bml4X3N0YXRfNjQiLCJjYW1sX3RvX2pzX3N0cmluZyIsImNhbWxfbWxfbXV0ZXhfbG9jayIsInJlX3NlYXJjaF9mb3J3YXJkIiwiY2FtbF9ibGl0X3N0cmluZ190b19iaWdzdHJpbmciLCJjYW1sX21ha2VfdmVjdCIsImluaXQiLCJjYW1sX21sX3NlZWtfaW4iLCJjYW1sX3N5c19yZWFkX2RpcmVjdG9yeSIsImNhbWxfbWxfb3V0cHV0X2NoYXIiLCJjYW1sX3N5c19jb25zdF9vc3R5cGVfd2luMzIiLCJjYW1sX29ial9pc19ibG9jayIsImNhbWxfb2JqX3NldF9yYXdfZmllbGQiLCJjYW1sX2pzX3ZhciIsImNhbWxfdHJ1bmNfZmxvYXQiLCJjYW1sX3phcml0aF9tYXJzaGFsIiwiY2FtbF9lcGhlX3Vuc2V0X2RhdGEiLCJjYW1sX2VwaGVfc2V0X2RhdGEiLCJjYW1sX2VwaGVfYmxpdF9kYXRhIiwiY2FtbF9pc19wcmludGFibGUiLCJjYW1sX2FycmF5X29mX2J5dGVzIiwiY2FtbF9lcXVhbCIsInJlX3BhcnRpYWxfbWF0Y2giLCJjYW1sX3N5c19yYW5kb21fc2VlZCIsImJ1ZmYiLCJub3ciLCJhbGxfZmluYWxpemVycyIsImNhbWxfZmluYWxfcmVnaXN0ZXJfY2FsbGVkX3dpdGhvdXRfdmFsdWUiLCJjYiIsImNhbWxfYmFfZ2V0XzIiLCJjYW1sX2JhX3VpbnQ4X3NldDE2IiwiY2FtbF9sYXp5X3Jlc2V0X3RvX2xhenkiLCJjYW1sX2pzX2RlbGV0ZSIsImNhbWxfaW50X29mX3N0cmluZyIsImNhbWxfbGlzdF9tb3VudF9wb2ludCIsInByZXYiLCJjYW1sX21hcnNoYWxfY29uc3RhbnRzIiwiY2FtbF9vYmpfcmF3X2ZpZWxkIiwiY2FtbF9qc19lcXVhbHMiLCJjYW1sX29ial9jb21wYXJlX2FuZF9zd2FwIiwiYmlnc3RyaW5nX3RvX3R5cGVkX2FycmF5IiwibWxfel9maXRzX25hdGl2ZWludCIsImNhbWxfZ3JfYXJjX2F1eCIsImN4IiwiY3kiLCJyeSIsInJ4Iiwicm90IiwieFBvcyIsInlQb3MiLCJ4UG9zX3ByZXYiLCJ5UG9zX3ByZXYiLCJzcGFjZSIsImRlbHRhIiwiY2FtbF9ncl9maWxsX2FyYyIsImNhbWxfYmFfc2xpY2UiLCJudW1faW5kcyIsInN1Yl9kaW1zIiwibWxfel9vZl9uYXRpdmVpbnQiLCJjYW1sX2JhX2tpbmQiLCJjYW1sX2pzX2Z1bl9jYWxsIiwiY2FtbF9nY19tYWpvcl9zbGljZSIsIndvcmsiLCJtbF96X2ludmVydCIsIm1sX3pfcG93bSIsInozIiwiaW52IiwibWxfel9wb3dtX3NlYyIsImNhbWxfanNfcHVyZV9leHByIiwiY29tcGFyZV9kaWdpdHNfbmF0IiwiY2FtbF9tbF9pbnB1dCIsImNhbWxfZ3Jfd2FpdF9ldmVudCIsIl9ldmwiLCJjYW1sX2dyX3NpZ2lvX2hhbmRsZXIiLCJjYW1sX2hhc2hfbWl4X2JpZ3N0cmluZyIsImNhbWxfcmVjb3JkX2JhY2t0cmFjZSIsImNhbWxfdW5peF9jbGVhbnVwIiwiY2FtbF9zeXNfY29uc3RfYmFja2VuZF90eXBlIiwiY2FtbF9zeXNfZ2V0X2NvbmZpZyIsImNhbWxfb2JqX2lzX3NoYXJlZCIsImNhbWxfbWxfb3V0X2NoYW5uZWxzX2xpc3QiLCJjYW1sX2FzaW5oX2Zsb2F0IiwibWxfel9oYXNoIiwiYWNjIiwiY2FtbF9wb3Nfb3V0IiwiYmlnc3RyaW5nX29mX2FycmF5X2J1ZmZlciIsImFiIiwiY2FtbF9tb2QiLCJjYW1sX2JhX2luaXQiLCJjYW1sX3VuaXhfZmlsZWRlc2NyX29mX2ZkIiwicmVfc3RyaW5nX21hdGNoIiwiQmlnU3RyaW5nUmVhZGVyIiwiY2FtbF9ncl9kdW1wX2ltYWdlIiwiY2FtbF9iYV9nZXRfZ2VuZXJpYyIsImNhbWxfdW5peF9zdGFydHVwIiwiY2FtbF9nZXRfZXhjZXB0aW9uX2JhY2t0cmFjZSIsImNhbWxfZm9ybWF0X2Zsb2F0IiwidG9GaXhlZCIsImRwIiwicHJlYyIsImNhbWxfbW91bnRfYXV0b2xvYWQiLCJtbF96X2VxdWFsIiwibWxfel9maXRzX2ludDY0IiwiY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19iYSIsImNhbWxfYmxpdF9iaWdzdHJpbmdfdG9fYmlnc3RyaW5nIiwibWxfel9zcXJ0X3JlbSIsImRpZmYiLCJjYW1sX3N0cmluZ19sZXNzdGhhbiIsImNhbWxfc3RyaW5nX2dyZWF0ZXJ0aGFuIiwiY2FtbF9kaXYiLCJjYW1sX29ial9kdXAiLCJjYW1sX2VwaGVfZ2V0X2RhdGFfY29weSIsImNhbWxfbWVtcHJvZl9zdGFydCIsInJhdGUiLCJzdGFja19zaXplIiwidHJhY2tlciIsIm1sX3pfcGVyZmVjdF9zcXVhcmUiLCJjYW1sX3N5c19nZXRfYXJndiIsImNhbWxfbWxfZG9tYWluX3NldF9uYW1lIiwiX25hbWUiLCJjYW1sX2pzX3RvX2Jvb2wiLCJjYW1sX2dyX2NyZWF0ZV9pbWFnZSIsImNhbWxfZXBoZV9nZXRfa2V5X2NvcHkiLCJjYW1sX2xlc3N0aGFuIiwiY2FtbF9yYXdfYmFja3RyYWNlX25leHRfc2xvdCIsIm1sX3pfdG9fbmF0aXZlaW50IiwiY2FtbF9yZWdpc3Rlcl9nbG9iYWwiLCJuYW1lX29wdCIsIm11bHRfbmF0IiwibGVuMyIsInNxdWFyZV9uYXQiLCJjYW1sX2pzX2Zyb21fZmxvYXQiLCJjYW1sX2Zsb2F0YXJyYXlfY3JlYXRlIiwiY2FtbF9nY19zdGF0IiwiY2FtbF9nZXRfbWFqb3JfY3JlZGl0IiwiY2FtbF9zeXNfbW9kaWZ5X2FyZ3YiLCJjYW1sX21ldGhvZF9jYWNoZSIsImNhbWxfZ2V0X3B1YmxpY19tZXRob2QiLCJjYWNoZWlkIiwibWV0aHMiLCJsaSIsImNhbWxfanNfZ2V0X2NvbnNvbGUiLCJjYW1sX3N5c191bnNhZmVfZ2V0ZW52IiwiY2FtbF9tbF9vcGVuX2Rlc2NyaXB0b3JfaW4iLCJyZWZpbGwiLCJjaGFubmVsIiwiYmlnc3RyaW5nX29mX3R5cGVkX2FycmF5IiwiY2FtbF9yb3VuZF9mbG9hdCIsIm1sX3pfb2ZfYml0cyIsImJhc2UxIiwiY2FtbF9vanNfbmV3X2FyciIsIkYiLCJjb21wbGVtZW50X25hdCIsIm1sX3pfbG9neG9yIiwiY2FtbF9kb21haW5fZGxzIiwiY2FtbF9kb21haW5fZGxzX3NldCIsImNhbWxfbGF6eV9yZWFkX3Jlc3VsdCIsImNhbWxfanNfcmVnZXhwcyIsImNhbWxfanNfaHRtbF9lc2NhcGUiLCJjYW1sX2JhX2RpbV8yIiwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfYXJndW1lbnRzIiwiY2FtbF9zaW5oX2Zsb2F0IiwiY2FtbF9sZGV4cF9mbG9hdCIsImNhbWxfZ3Jfc3RhdGVfc2V0IiwiY2FtbF96YXJpdGhfdW5tYXJzaGFsIiwibmVnYXRlIiwibWxfel90cmFpbGluZ196ZXJvcyIsImNhbWxfanNfd3JhcF9jYWxsYmFja19zdHJpY3QiLCJhcml0eSIsImNhbWxfZ2NfbWlub3Jfd29yZHMiLCJjYW1sX2dldF9jdXJyZW50X2NhbGxzdGFjayIsImxhbmRfZGlnaXRfbmF0IiwiY2FtbF9pbnQ2NF9tb2QiLCJjYW1sX29ial9zZXRfdGFnIiwiY2FtbF9pbnQzMl9ic3dhcCIsImNhbWxfYmFfc2V0XzMiLCJtbF96X2phY29iaSIsIm4xIiwibWxfel9sZWdlbmRyZSIsImNhbWxfanNfaW5zdGFuY2VvZiIsImNhbWxfZ2V0X21ham9yX2J1Y2tldCIsImNhbWxfYmxpdF9iaWdzdHJpbmdfdG9fc3RyaW5nIiwic2V0X2RpZ2l0X25hdF9uYXRpdmUiLCJudGhfZGlnaXRfbmF0X25hdGl2ZSIsImNhbWxfc3RyaW5nX3NldDY0IiwiY2FtbF9ncl9zdGF0ZV9jcmVhdGUiLCJjYW52YXMiLCJjb250ZXh0IiwiY2FtbF9qc193cmFwX2NhbGxiYWNrIiwiY2FtbF9ncl9kcmF3X2FyYyIsImNhbWxfYmFfbWFwX2ZpbGUiLCJ2ZmQiLCJzaGFyZWQiLCJjYW1sX2JhX21hcF9maWxlX2J5dGVjb2RlIiwiYXJnbiIsImNhbWxfYmFfY3JlYXRlX2Zyb20iLCJkYXRhMSIsImRhdGEyIiwianN0eXAiLCJjYW1sX3RhbmhfZmxvYXQiLCJjYW1sX2dyX2RyYXdfc3RyIiwiZHgiLCJjYW1sX2dyX2RyYXdfc3RyaW5nIiwibWxfel9wcmltb3JpYWwiLCJjYW1sX2dyX2RyYXdfY2hhciIsImNhbWxfdW5tb3VudCIsIm1sX3pfZmliIiwiY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3N0cmluZyIsImNhbWxfbWxfcG9zX2luXzY0IiwiY2FtbF9ncl9kcmF3X2ltYWdlIiwiaW1hZ2UiLCJjYW1sX3JlZ2lzdGVyX2NoYW5uZWxfZm9yX3NwYWNldGltZSIsIl9jaGFubmVsIiwiY2FtbF9zdHJpbmdfc2V0IiwiY2FtbF9zeXNfcm1kaXIiLCJjYW1sX3VuaXhfc3ltbGluayIsInNyY19yb290IiwiZHN0X3Jvb3QiLCJjYW1sX21sX3Bvc19vdXQiLCJjYW1sX3NwYWNldGltZV9lbmFibGVkIiwiY2FtbF9ieXRlc19ub3RlcXVhbCIsImNhbWxfcnVudGltZV9wYXJhbWV0ZXJzIiwiY2FtbF9qc19vYmplY3QiLCJjYW1sX2JhX2NyZWF0ZSIsImRpbXNfbWwiLCJjYW1sX2dyX3JlbWVtYmVyX21vZGUiLCJjYW1sX2ZtYV9mbG9hdCIsIlNQTElUIiwiTUlOX1ZBTFVFIiwiRVBTSUxPTiIsIkMiLCJBIiwiQiIsIm11bHRpcGx5IiwiYXQiLCJhaGkiLCJhbG8iLCJiaGkiLCJibG8iLCJhZGp1c3QiLCJzY2FsZSIsInhzIiwieXMiLCJ6cyIsInh5IiwidSIsImNhbWxfcmVjb21tZW5kZWRfZG9tYWluX2NvdW50IiwiY2FtbF9ic3dhcDE2IiwiY2FtbF9tbF9zZXRfYmluYXJ5X21vZGUiLCJjYW1sX2ZpbmFsX3JlZ2lzdGVyIiwiY2FtbF9ncl9kcmF3X3JlY3QiLCJjYW1sX3N0cmluZ19nZXQxNiIsImNhbWxfb3V0cHV0X3ZhbHVlIiwiY2FtbF9iYV9nZXRfMyIsImNhbWxfZXBoZV9ibGl0X2tleSIsIm1sX3pfdG9faW50MzIiLCJjYW1sX2luaXRpYWxfdGltZSIsImNhbWxfc3lzX3RpbWUiLCJjYW1sX3N5c190aW1lX2luY2x1ZGVfY2hpbGRyZW4iLCJjYW1sX2NoZWNrX2JvdW5kIiwiY2FtbF91bml4X2dldHB3dWlkIiwibWxfel9jb21wYXJlIiwiY2FtbF9oYXNoIiwic2VlZCIsInF1ZXVlIiwicmQiLCJ3ciIsImNhbWxfYmFfdG9fdHlwZWRfYXJyYXkiLCJjYW1sX2RvbWFpbl9kbHNfZ2V0IiwiY2FtbF9ieXRlc19nZXQzMiIsImNhbWxfZnJleHBfZmxvYXQiLCJtbF96X3ByZWQiLCJjYW1sX3N0cmluZ19nZXQ2NCIsImNhbWxfanNfZXJyb3Jfb3B0aW9uX29mX2V4Y2VwdGlvbiIsImNhbWxfbWxfcG9zX291dF82NCIsIm1sX3pfZXh0cmFjdCIsIm1sX3pfcmVtb3ZlIiwibWxfel9vZl9mbG9hdCIsImYxIiwibWxfel9sb2dub3QiLCJjYW1sX3VuaXhfZmluZGNsb3NlIiwiY2FtbF9ncl9jbG9zZV9zdWJ3aW5kb3ciLCJjYW1sX2Zsb2F0YXJyYXlfYmxpdCIsImNhbWxfZ2V0X21pbm9yX2ZyZWUiLCJjYW1sX3NldF9zdGF0aWNfZW52IiwiY2FtbF9iYV9jaGFuZ2VfbGF5b3V0IiwiY2FtbF9qc19uZXciLCJjYW1sX2dyX2N1cnJlbnRfeSIsImNhbWxfZm9ybWF0X2ludCIsImNhbWxfb2JqX3RydW5jYXRlIiwiY2FtbF9qc190b19zdHJpbmciLCJpc19kaWdpdF9vZGQiLCJjYW1sX3J1bnRpbWVfdmFyaWFudCIsImNhbWxfbWxfb3Blbl9kZXNjcmlwdG9yX291dCIsImJ1ZmZlcmVkIiwiY2FtbF9hcnJheV9jb25jYXQiLCJjYW1sX2dyX29wZW5fZ3JhcGgiLCJpbmZvIiwic3BlY3MiLCJzdGF0dXMiLCJ3aW4iLCJkb2MiLCJ0aXRsZSIsImJvZHkiLCJjYW1sX21ha2VfZmxvYXRfdmVjdCIsImNhbWxfY2JydF9mbG9hdCIsImNhbWxfbWVtcHJvZl9zdG9wIiwiY2FtbF9ldmVudGxvZ19wYXVzZSIsImNhbWxfZ3JlYXRlcmVxdWFsIiwibWxfel9udW1iaXRzIiwidXBwZXJCb3VuZCIsImNhbWxfZ2V0X2V4Y2VwdGlvbl9yYXdfYmFja3RyYWNlIiwiY2FtbF9sb2cxcF9mbG9hdCIsImNhbWxfbGF6eV9tYWtlX2ZvcndhcmQiLCJsb3JfZGlnaXRfbmF0IiwiY2FtbF9ncl9ibGl0X2ltYWdlIiwiaW0yIiwiY2FtbF9ncl93aW5kb3dfaWQiLCJjYW1sX2pzX29uX2llIiwidWEiLCJjYW1sX2ludDY0X3NoaWZ0X3JpZ2h0IiwiY2FtbF9iYV9sYXlvdXQiLCJjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZSIsImNhbWxfYXJyYXlfc2V0IiwibmV3dmFsIiwiY2FtbF9hbGxvY19zdGFjayIsInJldCIsImNhbWxfYnl0ZXNfZ3JlYXRlcmVxdWFsIiwibWxfel9wZXJmZWN0X3Bvd2VyIiwibG9nMnoiLCJ6cCIsInNldF9kaWdpdF9uYXQiLCJtbF96X2luaXQiLCJjYW1sX2dyX2RvY19vZl9zdGF0ZSIsImNhbWxfbWxfb3V0cHV0X2ludCIsImNhbWxfb2JqX3dpdGhfdGFnIiwiY2FtbF9tbF9jaGFubmVsX3NpemUiLCJjYW1sX3Jhd19iYWNrdHJhY2Vfc2xvdCIsImNhbWxfaGV4c3RyaW5nX29mX2Zsb2F0Iiwic3R5bGUiLCJleHBfc2lnbiIsInNpZ25fc3RyIiwiY3N0IiwieF9zdHIiLCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja19zdHJpY3QiLCJtbF96X2Zvcm1hdCIsImNhcyIsIndpZHRoIiwiYWx0IiwicGFkIiwicHJlZml4IiwicHJlIiwibWxfel90b19pbnQ2NCIsIm1hc2siLCJtbF96X3NpemUiLCJjYW1sX3VuaXhfcmVhZGxpbmsiLCJjYW1sX2JhY2t0cmFjZV9zdGF0dXMiLCJjYW1sX3N5c19hcmd2IiwiY2FtbF9pbnN0YWxsX3NpZ25hbF9oYW5kbGVyIiwiY2FtbF9iYV9maWxsIiwiY2FtbF9tb2RmX2Zsb2F0IiwiY2FtbF9nY19nZXQiLCJjYW1sX2Zsb2F0X2NvbXBhcmUiLCJtbF96X3NoaWZ0X3JpZ2h0X3RydW5jIiwiY2FtbF9zdHJpbmdfc2V0MzIiLCJjYW1sX3BhcnNlX2VuZ2luZSIsInRhYmxlcyIsImVudiIsIkVSUkNPREUiLCJsb29wIiwidGVzdHNoaWZ0Iiwic2hpZnRfcmVjb3ZlciIsInJlZHVjZSIsIlJFQURfVE9LRU4iLCJSQUlTRV9QQVJTRV9FUlJPUiIsIkdST1dfU1RBQ0tTXzEiLCJHUk9XX1NUQUNLU18yIiwiQ09NUFVURV9TRU1BTlRJQ19BQ1RJT04iLCJDQUxMX0VSUk9SX0ZVTkNUSU9OIiwiZW52X3Nfc3RhY2siLCJlbnZfdl9zdGFjayIsImVudl9zeW1iX3N0YXJ0X3N0YWNrIiwiZW52X3N5bWJfZW5kX3N0YWNrIiwiZW52X3N0YWNrc2l6ZSIsImVudl9zdGFja2Jhc2UiLCJlbnZfY3Vycl9jaGFyIiwiZW52X2x2YWwiLCJlbnZfc3ltYl9zdGFydCIsImVudl9zeW1iX2VuZCIsImVudl9hc3AiLCJlbnZfcnVsZV9sZW4iLCJlbnZfcnVsZV9udW1iZXIiLCJlbnZfc3AiLCJlbnZfc3RhdGUiLCJlbnZfZXJyZmxhZyIsInRibF90cmFuc2xfY29uc3QiLCJ0YmxfdHJhbnNsX2Jsb2NrIiwidGJsX2xocyIsInRibF9sZW4iLCJ0YmxfZGVmcmVkIiwidGJsX2Rnb3RvIiwidGJsX3NpbmRleCIsInRibF9yaW5kZXgiLCJ0YmxfZ2luZGV4IiwidGJsX3RhYmxlc2l6ZSIsInRibF90YWJsZSIsInRibF9jaGVjayIsInRibF9uYW1lc19jb25zdCIsInRibF9uYW1lc19ibG9jayIsImxvZyIsInRva2VuX25hbWUiLCJuYW1lcyIsInByaW50X3Rva2VuIiwidG9rIiwidG9rZW4iLCJuMiIsInN0YXRlMSIsInNwIiwiZXJyZmxhZyIsImFzcCIsImNhbWxfdXBkYXRlX2R1bW15IiwiY2FtbF9hcnJheV9maWxsIiwiY2FtbF9zeXNfbWtkaXIiLCJjYW1sX3N0cmluZ19ub3RlcXVhbCIsImNhbWxfYnl0ZXNfZ3JlYXRlcnRoYW4iLCJjYW1sX2dyX21ha2VfaW1hZ2UiLCJjYW1sX21sX3NldF9jaGFubmVsX291dHB1dCIsImNhbWxfcmVhZF9maWxlX2NvbnRlbnQiLCJjYW1sX2pzX3RvX2Zsb2F0IiwiY2FtbF9zZXR1cF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlciIsIm9yaWdpbiIsImV2ZW50IiwiZXJyX25vX3ByZWQiLCJlcnJfbm9fc3VjYyIsInplcm8kMiIsIm9uZSQyIiwibWludXNfb25lJDIiLCJtaW5faW50JDIiLCJtYXhfaW50JDIiLCJkdW1teV9wb3MiLCJ6ZXJvX3BvcyIsInN1Yl9mb3JtYXQiLCJmb3JtYXR0aW5nX2xpdCIsImxvY2ZtdCIsIm51bGwkMCIsImN1cnJlbnRfZGlyX25hbWUiLCJwYXJlbnRfZGlyX25hbWUiLCJkaXJfc2VwIiwicXVvdGVxdW90ZSIsIm51bGwkMSIsImN1cnJlbnRfZGlyX25hbWUkMCIsInBhcmVudF9kaXJfbmFtZSQwIiwiZGlyX3NlcCQwIiwibnVsbCQyIiwiY3VycmVudF9kaXJfbmFtZSQxIiwicGFyZW50X2Rpcl9uYW1lJDEiLCJkaXJfc2VwJDEiLCJ6ZXJvJDQiLCJvbmUkNCIsImkiLCJlcmFzZV9yZWwiLCJyZXN0IiwicmVzdCQwIiwicmVzdCQxIiwicmVzdCQyIiwicmVzdCQzIiwicmVzdCQ0IiwicmVzdCQ1IiwicmVzdCQ2IiwicmVzdCQ3IiwidHkiLCJyZXN0JDgiLCJ0eTEiLCJyZXN0JDkiLCJyZXN0JDEwIiwicmVzdCQxMSIsInJlc3QkMTIiLCJyZXN0JDEzIiwiY29uY2F0X2ZtdHR5IiwiZm10dHkxIiwiZm10dHkyIiwidHkyIiwiY29uY2F0X2ZtdCIsImZtdDEiLCJmbXQyIiwicGFkIiwicGFkJDAiLCJwcmVjIiwicGFkJDEiLCJpY29udiIsInByZWMkMCIsInBhZCQyIiwiaWNvbnYkMCIsInByZWMkMSIsInBhZCQzIiwiaWNvbnYkMSIsInByZWMkMiIsInBhZCQ0IiwiaWNvbnYkMiIsInByZWMkMyIsInBhZCQ1IiwiZmNvbnYiLCJwYWQkNiIsInN0ciIsImNociIsImZtdHR5IiwicGFkJDciLCJmbXR0eSQwIiwicGFkJDgiLCJyZXN0JDE0IiwicmVzdCQxNSIsInJlc3QkMTYiLCJmbXRpbmdfbGl0IiwicmVzdCQxNyIsImZtdGluZ19nZW4iLCJyZXN0JDE4IiwicmVzdCQxOSIsImNoYXJfc2V0Iiwid2lkdGhfb3B0IiwicmVzdCQyMCIsImNvdW50ZXIiLCJyZXN0JDIxIiwicmVzdCQyMiIsImlnbiIsInJlc3QkMjMiLCJmIiwiYXJpdHkiLCJ2IiwiciIsImN1ciIsInNlZW4iLCJuIiwiZmFpbHdpdGgiLCJzIiwiaW52YWxpZF9hcmciLCJtaW4iLCJ4IiwieSIsIm1heCIsImFicyIsImxub3QiLCJpbmZpbml0eSIsIm5lZ19pbmZpbml0eSIsIm5hbiIsIm1heF9mbG9hdCIsIm1pbl9mbG9hdCIsImVwc2lsb24iLCJtYXhfaW50IiwibWluX2ludCIsInMxIiwiczIiLCJsMSIsImwyIiwiY2hhcl9vZl9pbnQiLCJzdHJpbmdfb2ZfYm9vbCIsImIiLCJib29sX29mX3N0cmluZyIsImJvb2xfb2Zfc3RyaW5nX29wdCIsInN0cmluZ19vZl9pbnQiLCJpbnRfb2Zfc3RyaW5nX29wdCIsInZhbGlkX2Zsb2F0X2xleGVtIiwibCIsImkkMCIsInRvX3N0cmluZyIsIm9mX3N0cmluZ19vcHQiLCJhcHBlbmQiLCJ0bCIsImhkIiwic3RkaW4iLCJzdGRvdXQiLCJzdGRlcnIiLCJvcGVuX2dlbiIsIm1vZGUiLCJwZXJtIiwibmFtZSIsImMiLCJvcGVuX3RleHQiLCJvcGVuX2JpbiIsImZsdXNoX2FsbCIsIml0ZXIiLCJhIiwib3V0cHV0X2J5dGVzIiwib2MiLCJvdXRwdXRfc3RyaW5nIiwib3V0cHV0Iiwib2ZzIiwibGVuIiwib3V0cHV0X3N1YnN0cmluZyIsIm91dHB1dF92YWx1ZSIsImNoYW4iLCJjbG9zZSIsImNsb3NlX25vZXJyIiwib3Blbl9nZW4kMCIsIm9wZW5fdGV4dCQwIiwib3Blbl9iaW4kMCIsImlucHV0IiwiaWMiLCJ1bnNhZmVfcmVhbGx5X2lucHV0Iiwib2ZzJDAiLCJsZW4kMCIsImxlbiQxIiwib2ZzJDEiLCJyZWFsbHlfaW5wdXQiLCJyZWFsbHlfaW5wdXRfc3RyaW5nIiwiaW5wdXRfbGluZSIsImJ1aWxkX3Jlc3VsdCIsImJ1ZiIsImFjY3UiLCJiZWciLCJhY2N1JDAiLCJyZXMiLCJjbG9zZV9ub2VyciQwIiwicHJpbnRfY2hhciIsInByaW50X3N0cmluZyIsInByaW50X2J5dGVzIiwicHJpbnRfaW50IiwicHJpbnRfZmxvYXQiLCJwcmludF9lbmRsaW5lIiwicHJpbnRfbmV3bGluZSIsInByZXJyX2NoYXIiLCJwcmVycl9zdHJpbmciLCJwcmVycl9ieXRlcyIsInByZXJyX2ludCIsInByZXJyX2Zsb2F0IiwicHJlcnJfZW5kbGluZSIsInByZXJyX25ld2xpbmUiLCJyZWFkX2xpbmUiLCJyZWFkX2ludCIsInJlYWRfaW50X29wdCIsInJlYWRfZmxvYXQiLCJyZWFkX2Zsb2F0X29wdCIsInN0cmluZ19vZl9mb3JtYXQiLCJzeW1ib2wiLCJzdHIyIiwic3RyMSIsImV4aXRfZnVuY3Rpb24iLCJhdF9leGl0IiwiZl95ZXRfdG9fcnVuIiwib2xkX2V4aXQiLCJuZXdfZXhpdCQwIiwibmV3X2V4aXQiLCJzdWNjZXNzIiwiZG9fYXRfZXhpdCIsImV4aXQiLCJyZXRjb2RlIiwic2V0X2JpbmFyeV9tb2RlIiwiY2xvc2UkMCIsImluX2NoYW5uZWxfbGVuZ3RoIiwicG9zX2luIiwic2Vla19pbiIsImlucHV0X3ZhbHVlIiwiaW5wdXRfYmluYXJ5X2ludCIsImlucHV0X2J5dGUiLCJpbnB1dF9jaGFyIiwic2V0X2JpbmFyeV9tb2RlJDAiLCJvdXRfY2hhbm5lbF9sZW5ndGgiLCJwb3Nfb3V0Iiwic2Vla19vdXQiLCJvdXRwdXRfYmluYXJ5X2ludCIsIm91dHB1dF9ieXRlIiwib3V0cHV0X2NoYXIiLCJmbHVzaCIsImxlZnQiLCJyaWdodCIsImlzX2xlZnQiLCJpc19yaWdodCIsImZpbmRfbGVmdCIsImZpbmRfcmlnaHQiLCJtYXBfbGVmdCIsImUiLCJtYXBfcmlnaHQiLCJtYXAiLCJ2JDAiLCJmb2xkIiwiZXF1YWwiLCJlMSIsImUyIiwidjIiLCJ2MiQwIiwiY29tcGFyZSIsIm1hdGNoJDEiLCJpc19ibG9jayIsImRvdWJsZV9maWVsZCIsInNldF9kb3VibGVfZmllbGQiLCJmaXJzdF9ub25fY29uc3RhbnRfY29uc3RydWN0b3IiLCJsYXN0X25vbl9jb25zdGFudF9jb25zdHJ1Y3Rvcl8iLCJsYXp5X3RhZyIsImNsb3N1cmVfdGFnIiwib2JqZWN0X3RhZyIsImluZml4X3RhZyIsImZvcndhcmRfdGFnIiwibm9fc2Nhbl90YWciLCJhYnN0cmFjdF90YWciLCJzdHJpbmdfdGFnIiwiZG91YmxlX3RhZyIsImRvdWJsZV9hcnJheV90YWciLCJjdXN0b21fdGFnIiwiaW50X3RhZyIsIm91dF9vZl9oZWFwX3RhZyIsInVuYWxpZ25lZF90YWciLCJpbmZvIiwib2JqIiwic3RhcnRfZW52Iiwib2ZfdmFsIiwic2xvdCIsImlkIiwiZXh0ZW5zaW9uX2NvbnN0cnVjdG9yIiwiZXh0ZW5zaW9uX25hbWUiLCJleHRlbnNpb25faWQiLCJtYXhfZXBoZV9sZW5ndGgiLCJjcmVhdGUiLCJsZW5ndGgiLCJyYWlzZV9pZl9pbnZhbGlkX29mZnNldCIsIm8iLCJtc2ciLCJnZXRfa2V5IiwiZ2V0X2tleV9jb3B5Iiwic2V0X2tleSIsInVuc2V0X2tleSIsImNoZWNrX2tleSIsImJsaXRfa2V5IiwibzEiLCJvMiIsInJhaXNlX3VuZGVmaW5lZCIsImZvcmNlX2xhenlfYmxvY2siLCJibGsiLCJjbG9zdXJlIiwicmVzdWx0IiwiZm9yY2VfdmFsX2xhenlfYmxvY2siLCJmb3JjZSIsImx6diIsInQiLCJmb3JjZV92YWwiLCJ0b19sYXp5IiwiZnJvbV92YWwiLCJpc192YWwiLCJtYXAkMCIsIm1hcF92YWwiLCJlbXB0eSIsInJldHVybiQwIiwiY29ucyIsIm5leHQiLCJhcHBlbmQkMCIsInNlcTEiLCJzZXEyIiwibWFwJDEiLCJzZXEiLCJmaWx0ZXJfbWFwIiwic2VxJDAiLCJmaWx0ZXIiLCJjb25jYXQiLCJmbGF0X21hcCIsImZvbGRfbGVmdCIsImFjYyIsImFjYyQwIiwiYWNjJDEiLCJ1bmZvbGQiLCJ1IiwidSQwIiwiaXNfZW1wdHkiLCJ4cyIsInVuY29ucyIsInhzJDAiLCJsZW5ndGgkMCIsInhzJDEiLCJpdGVyaSIsImZvbGRfbGVmdGkiLCJhY2N1JDEiLCJmb3JfYWxsIiwicCIsImV4aXN0cyIsImZpbmQiLCJmaW5kX21hcCIsIml0ZXIyIiwieXMiLCJ5cyQwIiwieXMkMSIsImZvbGRfbGVmdDIiLCJmb3JfYWxsMiIsImV4aXN0czIiLCJlcXVhbCQwIiwiZXEiLCJjb21wYXJlJDAiLCJjbXAiLCJpbml0X2F1eCIsImoiLCJpbml0IiwicmVwZWF0IiwiZm9yZXZlciIsImN5Y2xlX25vbmVtcHR5IiwiY3ljbGUiLCJpdGVyYXRlMSIsIml0ZXJhdGUiLCJtYXBpX2F1eCIsIm1hcGkiLCJ0YWlsX3NjYW4iLCJzJDAiLCJzY2FuIiwidGFrZV9hdXgiLCJ0YWtlIiwiZHJvcCIsIm4kMCIsIm4kMSIsInRha2Vfd2hpbGUiLCJkcm9wX3doaWxlIiwibm9kZSIsImdyb3VwIiwiZmFpbHVyZSIsIm1lbW9pemUiLCJvbmNlIiwiYWN0aW9uIiwiemlwIiwibWFwMiIsImludGVybGVhdmUiLCJzb3J0ZWRfbWVyZ2UxIiwic29ydGVkX21lcmdlIiwibWFwX2ZzdCIsInh5cyIsInh5cyQwIiwibWFwX3NuZCIsInVuemlwIiwiZmlsdGVyX21hcF9maW5kX2xlZnRfbWFwIiwiZmlsdGVyX21hcF9maW5kX3JpZ2h0X21hcCIsInoiLCJwYXJ0aXRpb25fbWFwIiwicGFydGl0aW9uIiwicGVlbCIsInhzcyIsInRyYW5zcG9zZSIsInRhaWxzIiwiaGVhZHMiLCJyZW1haW5kZXJzIiwieHNzJDAiLCJ0YWlscyQwIiwiaGVhZHMkMCIsIm1hcF9wcm9kdWN0IiwicHJvZHVjdCIsIm9mX2Rpc3BlbnNlciIsIml0IiwidG9fZGlzcGVuc2VyIiwiaW50cyIsIm5vbmUiLCJzb21lIiwidmFsdWUiLCJkZWZhdWx0JDAiLCJnZXQkMCIsImJpbmQiLCJqb2luIiwibWFwJDIiLCJmb2xkJDAiLCJpdGVyJDAiLCJpc19ub25lIiwiaXNfc29tZSIsImVxdWFsJDEiLCJvMCIsInYxIiwidjAiLCJjb21wYXJlJDEiLCJ0b19yZXN1bHQiLCJ0b19saXN0IiwidG9fc2VxIiwib2siLCJlcnJvciIsInZhbHVlJDAiLCJnZXRfb2siLCJnZXRfZXJyb3IiLCJiaW5kJDAiLCJqb2luJDAiLCJtYXAkMyIsIm1hcF9lcnJvciIsImZvbGQkMSIsIml0ZXIkMSIsIml0ZXJfZXJyb3IiLCJpc19vayIsImlzX2Vycm9yIiwiZXF1YWwkMiIsInIwIiwicjEiLCJjb21wYXJlJDIiLCJ0b19vcHRpb24iLCJ0b19saXN0JDAiLCJ0b19zZXEkMCIsImVxdWFsJDMiLCJjb21wYXJlJDMiLCJ0b19mbG9hdCIsInRvX3N0cmluZyQwIiwiZXNjYXBlZCIsImxvd2VyY2FzZSIsInVwcGVyY2FzZSIsImxvd2VyY2FzZV9hc2NpaSIsInVwcGVyY2FzZV9hc2NpaSIsImNvbXBhcmUkNCIsImMxIiwiYzIiLCJlcXVhbCQ0IiwibWluJDAiLCJtYXgkMCIsImxvX2JvdW5kIiwiaGlfYm91bmQiLCJib20iLCJyZXAiLCJzdWNjIiwicHJlZCIsImlzX3ZhbGlkIiwib2ZfaW50IiwiaXNfY2hhciIsIm9mX2NoYXIiLCJ0b19jaGFyIiwidW5zYWZlX3RvX2NoYXIiLCJlcXVhbCQ1IiwiY29tcGFyZSQ1IiwiaGFzaCIsInV0Zl9kZWNvZGVfaXNfdmFsaWQiLCJkIiwidXRmX2RlY29kZV9sZW5ndGgiLCJ1dGZfZGVjb2RlX3VjaGFyIiwidXRmX2RlY29kZSIsImRlY19pbnZhbGlkIiwidXRmXzhfYnl0ZV9sZW5ndGgiLCJ1dGZfMTZfYnl0ZV9sZW5ndGgiLCJsZW5ndGgkMSIsInBhcmFtJDAiLCJjb25zJDAiLCJudGgiLCJsJDAiLCJsJDEiLCJudGhfb3B0IiwicmV2X2FwcGVuZCIsImwxJDAiLCJsMiQwIiwibDEkMSIsImwyJDEiLCJyZXYiLCJpbml0X2F1eCQwIiwicGFyYW0iLCJhMiIsImExIiwicGFpciIsIngkMCIsInJ5IiwicngiLCJ0MiIsImgyIiwidDEiLCJoMSIsInNvcnQiLCJ4MiIsIngxIiwidGwkMSIsIngzIiwieDIkMCIsIngxJDAiLCJuMSIsIm4yIiwicmV2X3NvcnQiLCJ0bCQwIiwiYyQwIiwiYyQxIiwiYyQyIiwiYyQzIiwiYyQ0IiwiYyQ1IiwiYyQ2IiwiYWNjdSQyIiwiYXV4IiwidGFpbCIsImRpcmVjdCIsImRlcHRoIiwiemVybyIsIm9uZSIsIm1pbnVzX29uZSIsImFicyQwIiwibWF4X2ludCQwIiwibWluX2ludCQwIiwibG9nbm90IiwiZXF1YWwkNyIsImNvbXBhcmUkNyIsIm1pbiQxIiwibWF4JDEiLCJ0b19zdHJpbmckMSIsInN5bWJvbCQwIiwiZHN0b2ZmIiwic3Jjb2ZmIiwiY3B5bGVuIiwib2ZzMSIsIm9mczIiLCJzZXAiLCJzZXBsZW4iLCJkc3QiLCJpc19zcGFjZSIsImFwcGx5MSIsInByZWZpeCIsImxlbl9zIiwibGVuX3ByZSIsInN1ZmZpeCIsImxlbl9zdWYiLCJkaWZmIiwiaW5kZXhfcmVjIiwibGltIiwiaSQxIiwiaW5kZXhfcmVjX29wdCIsInJpbmRleF9yZWMiLCJyaW5kZXhfcmVjX29wdCIsIm5ld19sZW4iLCJuZXdfYnVmIiwiZ2V0JDEiLCJzZXQkMCIsImRlY19yZXQiLCJub3RfaW5feDgwX3RvX3hCRiIsIm5vdF9pbl94QTBfdG9feEJGIiwibm90X2luX3g4MF90b194OUYiLCJub3RfaW5feDkwX3RvX3hCRiIsIm5vdF9pbl94ODBfdG9feDhGIiwidXRmXzhfdWNoYXJfMyIsImIwIiwiYjEiLCJiMiIsInV0Zl84X3VjaGFyXzQiLCJiMyIsImkkNCIsImIxJDEiLCJpJDUiLCJiMiQxIiwiaSQ2IiwiaSQxMCIsImIxJDMiLCJpJDExIiwiYjIkMyIsImkkMTIiLCJiMyQxIiwiaSQ3IiwiYjEkMiIsImkkOCIsImIyJDIiLCJpJDkiLCJiMyQwIiwiaSQxMyIsImIxJDQiLCJpJDE0IiwiYjIkNCIsImkkMiIsImIxJDAiLCJpJDMiLCJiMiQwIiwiaSQxNSIsImIxJDUiLCJzZXQiLCJsYXN0IiwibGFzdCQwIiwibGFzdCQxIiwibGFzdCQzIiwibGFzdCQyIiwibGFzdCQ0IiwibGFzdCQ1IiwiaGkiLCJsbyIsImlzX3NwYWNlJDAiLCJpbmRleF9yZWMkMCIsImluZGV4X3JlY19vcHQkMCIsInJpbmRleF9yZWMkMCIsInJpbmRleF9yZWNfb3B0JDAiLCJnIiwiZXF1YWwkMTAiLCJjb21wYXJlJDEwIiwidG9fc3RyaW5nJDIiLCJ0b19idWZmZXIiLCJidWZmIiwiZmxhZ3MiLCJoZWFkZXJfc2l6ZSIsImRhdGFfc2l6ZSIsInRvdGFsX3NpemUiLCJmcm9tX2J5dGVzIiwiZnJvbV9zdHJpbmciLCJzeCIsInN5IiwibGEiLCJsYiIsInJlcyQwIiwibGlzdF9sZW5ndGgiLCJwYXJhbSQxIiwiaGQkMCIsImlucHV0X2FycmF5IiwiZWx0Iiwib3V0cHV0X2FycmF5IiwiZWx0JDAiLCJhY2MkMiIsImEwIiwiYmkiLCJhaSIsIm5hIiwibmIiLCJtYXhzb24iLCJpMzEiLCJ0cmlja2xlZG93biIsInRyaWNrbGUiLCJidWJibGVkb3duIiwiYnViYmxlIiwiZSQwIiwiZmF0aGVyIiwibWVyZ2UiLCJzcmMxb2ZzIiwic3JjMWxlbiIsInNyYzIiLCJzcmMyb2ZzIiwic3JjMmxlbiIsImRzdG9mcyIsInNyYzFyIiwic3JjMnIiLCJzMiQxIiwiczEkMSIsImkxIiwiaTIiLCJpMiQwIiwiZCQwIiwiczIkMCIsImkxJDAiLCJkJDEiLCJzMSQwIiwiaXNvcnR0byIsInNyY29mcyIsInNvcnR0byIsInplcm8kMCIsIm9uZSQwIiwibWludXNfb25lJDAiLCJpc19maW5pdGUiLCJpc19pbmZpbml0ZSIsImlzX25hbiIsInBpIiwiaXNfaW50ZWdlciIsInN1Y2MkMCIsInByZWQkMCIsImVxdWFsJDExIiwibWluJDIiLCJtYXgkMiIsIm1pbl9tYXgiLCJtaW5fbnVtIiwibWF4X251bSIsIm1pbl9tYXhfbnVtIiwiaGFzaCQwIiwidW5zYWZlX2ZpbGwiLCJjaGVjayIsIm1ha2UkMiIsImluaXQkNCIsImFwcGVuZCQyIiwiY29uY2F0JDMiLCJobGVuIiwic3ViJDIiLCJjb3B5JDIiLCJmaWxsJDEiLCJibGl0JDIiLCJzcmMiLCJzb2ZzIiwiZG9mcyIsInRvX2xpc3QkMiIsIm9mX2xpc3QkMCIsImgiLCJpdGVyJDYiLCJpdGVyMiQyIiwibWFwJDgiLCJtYXAyJDIiLCJpdGVyaSQ0IiwibWFwaSQ0IiwiZm9sZF9sZWZ0JDQiLCJmb2xkX3JpZ2h0JDMiLCJleGlzdHMkNCIsImZvcl9hbGwkNCIsIm1lbSQxIiwibWVtX2llZWUiLCJzb3J0JDAiLCJzdGFibGVfc29ydCIsInRvX3NlcSQ1IiwidG9fc2VxaSQyIiwib2Zfc2VxJDMiLCJtYXBfdG9fYXJyYXkiLCJtYXBfZnJvbV9hcnJheSIsInplcm8kMSIsIm9uZSQxIiwibWludXNfb25lJDEiLCJzdWNjJDEiLCJwcmVkJDEiLCJhYnMkMSIsIm1pbl9pbnQkMSIsIm1heF9pbnQkMSIsImxvZ25vdCQwIiwidW5zaWduZWRfdG9faW50IiwidG9fc3RyaW5nJDMiLCJvZl9zdHJpbmdfb3B0JDAiLCJjb21wYXJlJDExIiwiZXF1YWwkMTIiLCJ1bnNpZ25lZF9jb21wYXJlIiwibSIsIm1pbiQzIiwibWF4JDMiLCJ1bnNpZ25lZF9kaXYiLCJxIiwidW5zaWduZWRfcmVtIiwic3VjYyQyIiwicHJlZCQyIiwiYWJzJDIiLCJsb2dub3QkMSIsIm1heF9pbnQkMyIsInVuc2lnbmVkX3RvX2ludCQwIiwidG9fc3RyaW5nJDQiLCJvZl9zdHJpbmdfb3B0JDEiLCJjb21wYXJlJDEyIiwiZXF1YWwkMTMiLCJ1bnNpZ25lZF9jb21wYXJlJDAiLCJtaW4kNCIsIm1heCQ0IiwidW5zaWduZWRfZGl2JDAiLCJ1bnNpZ25lZF9yZW0kMCIsInplcm8kMyIsIm9uZSQzIiwibWludXNfb25lJDMiLCJzdWNjJDMiLCJwcmVkJDMiLCJhYnMkMyIsIm1pbl9pbnQkMyIsIm1heF9pbnQkNCIsImxvZ25vdCQyIiwidW5zaWduZWRfdG9faW50JDEiLCJ0b19zdHJpbmckNSIsIm9mX3N0cmluZ19vcHQkMiIsImNvbXBhcmUkMTMiLCJlcXVhbCQxNCIsInVuc2lnbmVkX2NvbXBhcmUkMSIsIm1pbiQ1IiwibWF4JDUiLCJ1bnNpZ25lZF9kaXYkMSIsInVuc2lnbmVkX3JlbSQxIiwiZW5naW5lIiwidGJsIiwic3RhdGUiLCJuZXdfZW5naW5lIiwiZnJvbV9mdW5jdGlvbiIsIm9wdCIsInN0aCIsIndpdGhfcG9zaXRpb25zIiwiYXV4X2J1ZmZlciIsImxleGJ1ZiIsInJlYWQiLCJuZXdsZW4iLCJuZXdidWYiLCJmcm9tX2NoYW5uZWwiLCJmcm9tX3N0cmluZyQwIiwic2V0X3Bvc2l0aW9uIiwicG9zaXRpb24iLCJzZXRfZmlsZW5hbWUiLCJmbmFtZSIsImxleGVtZSIsInN1Yl9sZXhlbWUiLCJzdWJfbGV4ZW1lX29wdCIsInN1Yl9sZXhlbWVfY2hhciIsInN1Yl9sZXhlbWVfY2hhcl9vcHQiLCJsZXhlbWVfY2hhciIsImxleGVtZV9zdGFydCIsImxleGVtZV9lbmQiLCJsZXhlbWVfc3RhcnRfcCIsImxleGVtZV9lbmRfcCIsIm5ld19saW5lIiwibGNwIiwiZmx1c2hfaW5wdXQiLCJlbnYiLCJncm93X3N0YWNrcyIsIm9sZHNpemUiLCJuZXdzaXplIiwibmV3X3MiLCJuZXdfdiIsIm5ld19zdGFydCIsIm5ld19lbmQiLCJjbGVhcl9wYXJzZXIiLCJjdXJyZW50X2xvb2thaGVhZF9mdW4iLCJ5eXBhcnNlIiwidGFibGVzIiwic3RhcnQiLCJsZXhlciIsImluaXRfYXNwIiwiaW5pdF9zcCIsImluaXRfc3RhY2tiYXNlIiwiaW5pdF9zdGF0ZSIsImluaXRfY3Vycl9jaGFyIiwiaW5pdF9sdmFsIiwiaW5pdF9lcnJmbGFnIiwiY21kIiwiYXJnIiwiYXJnJDAiLCJhcmckMSIsImNtZCQwIiwiZXhuIiwiY3Vycl9jaGFyIiwidG9rIiwicGVla192YWwiLCJzeW1ib2xfc3RhcnRfcG9zIiwic3QiLCJlbiIsInN5bWJvbF9lbmRfcG9zIiwicmhzX3N0YXJ0X3BvcyIsInJoc19lbmRfcG9zIiwic3ltYm9sX3N0YXJ0Iiwic3ltYm9sX2VuZCIsInJoc19zdGFydCIsInJoc19lbmQiLCJpc19jdXJyZW50X2xvb2thaGVhZCIsInBhcnNlX2Vycm9yIiwiaGVpZ2h0IiwiaGwiLCJoJDAiLCJociIsImJhbCIsImxyIiwibHYiLCJsbCIsImxyciIsImxydiIsImxybCIsInJyIiwicnYiLCJybCIsInJsciIsInJsdiIsInJsbCIsImFkZCIsInNpbmdsZXRvbiIsImFkZF9taW5fZWxlbWVudCIsImFkZF9tYXhfZWxlbWVudCIsInJoIiwibGgiLCJtaW5fZWx0IiwibWluX2VsdF9vcHQiLCJtYXhfZWx0IiwibWF4X2VsdF9vcHQiLCJyZW1vdmVfbWluX2VsdCIsInIkMCIsInNwbGl0IiwicHJlcyIsInByZXMkMCIsIm1lbSIsInJlbW92ZSIsInVuaW9uIiwicjIiLCJyMiQwIiwicjEkMCIsImludGVyIiwic3BsaXRfYmlzIiwiZGlzam9pbnQiLCJjb25zX2VudW0iLCJzJDEiLCJlJDEiLCJlMiQyIiwiZTEkMiIsImUyJDAiLCJlMSQwIiwiZTIkMSIsImUxJDEiLCJzdWJzZXQiLCJwdiIsImxmIiwibHQiLCJyZiIsInJ0IiwiY2FyZGluYWwiLCJlbGVtZW50c19hdXgiLCJlbGVtZW50cyIsImZpbmRfZmlyc3QiLCJmaW5kX2ZpcnN0X29wdCIsImZpbmRfbGFzdCIsImZpbmRfbGFzdF9vcHQiLCJmaW5kX29wdCIsInRyeV9qb2luIiwidiQxIiwib2ZfbGlzdCIsInN1YiIsImwkMyIsIngwIiwibCQ0IiwieDAkMCIsImwkNSIsIngwJDEiLCJubCIsIm1pZCIsImwkMiIsIng0IiwiYWRkX3NlcSIsIm9mX3NlcSIsInNlcV9vZl9lbnVtIiwic25vY19lbnVtIiwicmV2X3NlcV9vZl9lbnVtIiwidG9fcmV2X3NlcSIsInRvX3NlcV9mcm9tIiwibG93IiwibGQiLCJscmQiLCJyZCIsInJsZCIsImRhdGEiLCJtaW5fYmluZGluZyIsIm1pbl9iaW5kaW5nX29wdCIsIm1heF9iaW5kaW5nIiwibWF4X2JpbmRpbmdfb3B0IiwicmVtb3ZlX21pbl9iaW5kaW5nIiwidXBkYXRlIiwiZGF0YSQwIiwibSQwIiwiYWRkX21pbl9iaW5kaW5nIiwiayIsImFkZF9tYXhfYmluZGluZyIsImNvbmNhdF9vcl9qb2luIiwiZDEiLCJkMiIsImQyJDAiLCJkMSQwIiwiZDIkMSIsImQxJDEiLCJwdmQiLCJmdmQiLCJtJDEiLCJtMSIsIm0yIiwiYmluZGluZ3NfYXV4IiwiYmluZGluZ3MiLCJjcmVhdGUkMCIsImNsZWFyIiwiY29weSQzIiwicHVzaCIsInBvcCIsInBvcF9vcHQiLCJ0b3AiLCJ0b3Bfb3B0IiwiaXNfZW1wdHkkMCIsImxlbmd0aCQyIiwiaXRlciQ3IiwiZm9sZCQyIiwidG9fc2VxJDYiLCJvZl9zZXEkNCIsImNyZWF0ZSQxIiwiY2xlYXIkMCIsImNlbGwiLCJwZWVrIiwiY29udGVudCIsInBlZWtfb3B0IiwidGFrZSQwIiwidGFrZV9vcHQiLCJjb3B5JDQiLCJxX3JlcyIsInByZXYiLCJpc19lbXB0eSQxIiwibGVuZ3RoJDMiLCJpdGVyJDgiLCJmb2xkJDMiLCJ0cmFuc2ZlciIsInExIiwicTIiLCJ0b19zZXEkNyIsImFkZF9zZXEkMCIsIm9mX3NlcSQ1IiwiY291bnQiLCJmaWxsX2J1ZmYiLCJnZXRfZGF0YSIsImQxMSIsImEkMCIsImEkMSIsInBlZWtfZGF0YSIsInBlZWskMCIsImp1bmtfZGF0YSIsImp1bmsiLCJuZ2V0X2RhdGEiLCJhbCIsIm5wZWVrIiwiZW1wdHkkMiIsIml0ZXIkOSIsInN0cm0iLCJmcm9tIiwib2ZfbGlzdCQxIiwib2Zfc3RyaW5nIiwib2ZfYnl0ZXMkMCIsIm9mX2NoYW5uZWwiLCJpYXBwIiwiaWNvbnMiLCJpc2luZyIsImxhcHAiLCJsY29ucyIsImxzaW5nIiwic2VtcHR5Iiwic2xhenkiLCJkdW1wIiwiZHVtcF9kYXRhIiwiY3JlYXRlJDIiLCJjb250ZW50cyIsInRvX2J5dGVzJDAiLCJzdWIkMyIsImJsaXQkMyIsIm50aCQwIiwibGVuZ3RoJDQiLCJjbGVhciQxIiwicmVzZXQiLCJyZXNpemUiLCJtb3JlIiwib2xkX3BvcyIsIm9sZF9sZW4iLCJuZXdfYnVmZmVyIiwiYWRkX2NoYXIiLCJwb3MiLCJ1Y2hhcl91dGZfOF9ieXRlX2xlbmd0aF9tYXgiLCJ1Y2hhcl91dGZfMTZfYnl0ZV9sZW5ndGhfbWF4IiwiYWRkX3V0Zl84X3VjaGFyIiwiYWRkX3V0Zl8xNmJlX3VjaGFyIiwiYWRkX3V0Zl8xNmxlX3VjaGFyIiwiYWRkX3N1YnN0cmluZyIsIm9mZnNldCIsIm5ld19wb3NpdGlvbiIsImFkZF9zdWJieXRlcyIsImFkZF9zdHJpbmciLCJhZGRfYnl0ZXMiLCJhZGRfYnVmZmVyIiwiYnMiLCJhZGRfY2hhbm5lbCIsImFscmVhZHlfcmVhZCIsInRvX3JlYWQiLCJhbHJlYWR5X3JlYWQkMCIsInRvX3JlYWQkMCIsIm91dHB1dF9idWZmZXIiLCJhZGRfc3Vic3RpdHV0ZSIsImxpbSQxIiwicHJldmlvdXMiLCJjdXJyZW50Iiwib3BlbmluZyIsImxpbSQwIiwic3RvcCIsImskMiIsImskMCIsImskMSIsIm5leHRfaSIsImlkZW50IiwidHJ1bmNhdGUiLCJ0b19zZXEkOCIsInRvX3NlcWkkMyIsImFkZF9zZXEkMSIsIm9mX3NlcSQ2IiwiYWRkX2ludDgiLCJhZGRfaW50MTZfbmUiLCJhZGRfaW50MzJfbmUiLCJhZGRfaW50NjRfbmUiLCJhZGRfaW50MTZfbGUiLCJhZGRfaW50MTZfYmUiLCJhZGRfaW50MzJfbGUiLCJhZGRfaW50MzJfYmUiLCJhZGRfaW50NjRfbGUiLCJhZGRfaW50NjRfYmUiLCJjcmVhdGVfY2hhcl9zZXQiLCJhZGRfaW5fY2hhcl9zZXQiLCJzdHJfaW5kIiwibWFzayIsImZyZWV6ZV9jaGFyX3NldCIsInJldl9jaGFyX3NldCIsImNoYXJfc2V0JDAiLCJpc19pbl9jaGFyX3NldCIsInBhZF9vZl9wYWRfb3B0IiwicGFkX29wdCIsIndpZHRoIiwicGFyYW1fZm9ybWF0X29mX2lnbm9yZWRfZm9ybWF0IiwiZm10IiwicGFkX29wdCQwIiwicGFkX29wdCQxIiwicGFkX29wdCQyIiwicGFkX29wdCQzIiwicGFkX29wdCQ0IiwicHJlY19vcHQiLCJwYWRfb3B0JDUiLCJuZGVjIiwicGFkX29wdCQ2IiwicGFkX29wdCQ3IiwicGFkX29wdCQ4IiwiZGVmYXVsdF9mbG9hdF9wcmVjaXNpb24iLCJidWZmZXJfY3JlYXRlIiwiaW5pdF9zaXplIiwiYnVmZmVyX2NoZWNrX3NpemUiLCJvdmVyaGVhZCIsIm1pbl9sZW4iLCJuZXdfc3RyIiwiYnVmZmVyX2FkZF9jaGFyIiwiYnVmZmVyX2FkZF9zdHJpbmciLCJzdHJfbGVuIiwiYnVmZmVyX2NvbnRlbnRzIiwiY2hhcl9vZl9pY29udiIsImNoYXJfb2ZfZmNvbnYiLCJjRiIsImJwcmludF9wYWR0eSIsInBhZHR5IiwiYnByaW50X2lnbm9yZWRfZmxhZyIsImlnbl9mbGFnIiwiYnByaW50X3BhZF9vcHQiLCJicHJpbnRfcGFkZGluZyIsInBhZHR5JDAiLCJicHJpbnRfcHJlY2lzaW9uIiwiYnByaW50X2ljb252X2ZsYWciLCJicHJpbnRfYWx0aW50X2ZtdCIsImJwcmludF9mY29udl9mbGFnIiwic3RyaW5nX29mX2Zvcm1hdHRpbmdfbGl0Iiwic3RyJDAiLCJicHJpbnRfY2hhcl9saXRlcmFsIiwiYnByaW50X3N0cmluZ19saXRlcmFsIiwiYnByaW50X2ZtdHR5Iiwic3ViX2ZtdHR5Iiwic3ViX2ZtdHR5JDAiLCJpbnRfb2ZfY3VzdG9tX2FyaXR5Iiwic3RyaW5nX29mX2ZtdCIsImZtdGl0ZXIiLCJmbXQkMCIsImlnbl9mbGFnJDAiLCJjaHIkMCIsInN0ciQxIiwiaXNfYWxvbmUkMCIsImlzX2Fsb25lIiwiYWZ0ZXIiLCJiZWZvcmUiLCJqJDAiLCJqJDEiLCJmbXQkMSIsInN5bW0iLCJmbXR0eV9yZWxfZGV0IiwiZGUiLCJlZCIsImFmIiwiZmEiLCJkZSQwIiwiZWQkMCIsImFmJDAiLCJmYSQwIiwiZGUkMSIsImVkJDEiLCJhZiQxIiwiZmEkMSIsImRlJDIiLCJlZCQyIiwiYWYkMiIsImZhJDIiLCJkZSQzIiwiZWQkMyIsImFmJDMiLCJmYSQzIiwiZGUkNCIsImVkJDQiLCJhZiQ0IiwiZmEkNCIsImRlJDUiLCJlZCQ1IiwiYWYkNSIsImZhJDUiLCJkZSQ2IiwiZWQkNiIsImFmJDYiLCJmYSQ2IiwiZGUkNyIsImVkJDciLCJhZiQ3IiwiZmEkNyIsImRlJDgiLCJlZCQ4IiwiYWYkOCIsImZhJDgiLCJ0cmFucyIsImpkIiwiZGoiLCJnYSIsImFnIiwiZGUkOSIsImVkJDkiLCJhZiQ5IiwiZmEkOSIsImRlJDEwIiwiZWQkMTAiLCJhZiQxMCIsImZhJDEwIiwiZGUkMTEiLCJlZCQxMSIsImFmJDExIiwiZmEkMTEiLCJkZSQxMiIsImVkJDEyIiwiYWYkMTIiLCJmYSQxMiIsImRlJDEzIiwiZWQkMTMiLCJhZiQxMyIsImZhJDEzIiwicmVzdDIiLCJyZXN0MiQwIiwicmVzdDIkMSIsInJlc3QyJDIiLCJyZXN0MiQzIiwicmVzdDIkNCIsInJlc3QyJDUiLCJyZXN0MiQ2IiwicmVzdDIkNyIsInR5MiQwIiwicmVzdDIkOCIsInR5MjIiLCJ0eTIxIiwiZjQiLCJmMiIsInJlc3QyJDkiLCJyZXN0MiQxMCIsInJlc3QyJDExIiwicmVzdDIkMTIiLCJyZXN0MiQxMyIsImZtdHR5X29mX3BhZGRpbmdfZm10dHkiLCJmbXR0eV9vZl9jdXN0b20iLCJhcml0eSQwIiwiZm10dHlfb2ZfZm10IiwidHlfcmVzdCIsInByZWNfdHkiLCJmbXR0eV9vZl9wcmVjaXNpb25fZm10dHkiLCJ0eV9yZXN0JDAiLCJwcmVjX3R5JDAiLCJ0eV9yZXN0JDEiLCJwcmVjX3R5JDEiLCJ0eV9yZXN0JDIiLCJwcmVjX3R5JDIiLCJ0eV9yZXN0JDMiLCJwcmVjX3R5JDMiLCJmbXR0eSQxIiwiZm10dHkkMiIsImZtdHR5JDMiLCJ0eSQwIiwiZm10dHkkNCIsImZtdHR5JDUiLCJ0eXBlX3BhZGRpbmciLCJ3IiwidHlwZV9wYWRwcmVjIiwidHlwZV9mb3JtYXQiLCJ0eXBlX2Zvcm1hdF9nZW4iLCJ0eXBlX2lnbm9yZWRfcGFyYW1fb25lIiwiZm10dHlfcmVzdCIsImZtdF9yZXN0IiwiZm10dHlfcmVzdCQwIiwiZm10X3Jlc3QkMCIsImZtdF9yZXN0JDEiLCJmbXR0eV9yZXN0JDEiLCJmbXQkMiIsImZtdF9yZXN0JDIiLCJmbXR0eV9yZXN0JDIiLCJmbXQkMyIsImZtdF9yZXN0JDMiLCJmbXR0eV9yZXN0JDMiLCJmbXQkNCIsImZtdF9yZXN0JDQiLCJmbXR0eV9yZXN0JDQiLCJmbXQkNSIsImZtdF9yZXN0JDUiLCJmbXR0eV9yZXN0JDUiLCJwcmVjJDQiLCJmbXR0eSQ2IiwiZm10JDYiLCJmbXRfcmVzdCQ2IiwicHJlYyQ1IiwiZm10dHlfcmVzdCQ2IiwicHJlYyQ2IiwiZm10dHkkNyIsImZtdCQ3IiwiZm10X3Jlc3QkNyIsInByZWMkNyIsImZtdHR5X3Jlc3QkNyIsInByZWMkOCIsImZtdHR5JDgiLCJmbXQkOCIsImZtdF9yZXN0JDgiLCJmbXR0eV9yZXN0JDgiLCJmbXR0eSQ5IiwiZm10JDkiLCJmbXRfcmVzdCQ5IiwiZm10dHkkMTAiLCJmbXQkMTAiLCJmbXRfcmVzdCQxMCIsImZtdHR5JDExIiwiZm10JDExIiwiZm10X3Jlc3QkMTEiLCJmbXR0eSQxMiIsImZtdCQxMiIsImZtdHR5X3Jlc3QkOSIsImZtdF9yZXN0JDEyIiwiZm10dHkkMTMiLCJmbXQkMTMiLCJmbXR0eV9yZXN0JDEwIiwic3ViX2ZtdHR5MSIsImZtdF9yZXN0JDEzIiwic3ViX2ZtdHR5JDEiLCJmbXR0eSQxNCIsImZtdCQxNCIsImZtdHR5X3Jlc3QkMTEiLCJmbXRfcmVzdCQxNCIsImZtdHR5JDE1IiwiZm10JDE1IiwiZm10dHlfcmVzdCQxMiIsImZtdF9yZXN0JDE1IiwiZm10dHkkMTYiLCJmbXQkMTYiLCJmbXRfcmVzdCQxNiIsImZtdHR5JDE3IiwiZm10JDE3IiwiZm10X3Jlc3QkMTciLCJmb3JtYXR0aW5nX2dlbiIsImZtdHR5MyIsImZtdDMiLCJmbXQxJDAiLCJmbXR0eTIkMCIsImZtdDIkMCIsImZtdHR5MyQwIiwiZm10MyQwIiwiZm10dHlfcmVzdCQxMyIsImZtdF9yZXN0JDE4IiwiZm10dHkkMTgiLCJmbXQkMTgiLCJmbXR0eV9yZXN0JDE0IiwiZm10X3Jlc3QkMTkiLCJmbXR0eSQxOSIsImZtdCQxOSIsImZtdHR5X3Jlc3QkMTUiLCJmbXRfcmVzdCQyMCIsImZtdHR5JDIwIiwiZm10JDIwIiwiZm10dHlfcmVzdCQxNiIsImZtdHR5JDIxIiwiZm10JDIxIiwic3ViX2ZtdHR5JDIiLCJzdWJfZm10dHkkMyIsInR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aSIsImZtdHR5JDIyIiwiZm10JDIyIiwic3ViX2ZtdHR5JDQiLCJzdWJfZm10dHlfcmVzdCIsInN1Yl9mbXR0eV9yZXN0JDAiLCJzdWJfZm10dHlfcmVzdCQxIiwic3ViX2ZtdHR5X3Jlc3QkMiIsInN1Yl9mbXR0eV9yZXN0JDMiLCJzdWJfZm10dHlfcmVzdCQ0Iiwic3ViX2ZtdHR5X3Jlc3QkNSIsInN1Yl9mbXR0eV9yZXN0JDYiLCJzdWJfZm10dHlfcmVzdCQ3Iiwic3ViX2ZtdHR5X3Jlc3QkOCIsInN1Yl9mbXR0eV9yZXN0JDkiLCJzdWJfZm10dHlfcmVzdCQxMCIsInN1Yl9mbXR0eV9yZXN0JDExIiwic3ViX2ZtdHR5X3Jlc3QkMTIiLCJzdWJfZm10dHlfcmVzdCQxMyIsInN1Yl9mbXR0eV9yZXN0JDE0Iiwic3ViMl9mbXR0eSIsInN1Yl9mbXR0eV9yZXN0JDE1Iiwic3ViMl9mbXR0eSQwIiwic3ViX2ZtdHR5X3Jlc3QkMTYiLCJzdWIyX2ZtdHR5JDEiLCJzdWIxX2ZtdHR5Iiwic3ViX2ZtdHR5X3Jlc3QkMTciLCJzdWIyX2ZtdHR5JDIiLCJzdWIxX2ZtdHR5JDAiLCJzdWJfZm10dHlfcmVzdCQxOCIsInN1Yl9mbXR0eV9yZXN0JDE5Iiwic3ViX2ZtdHR5X3Jlc3QkMjAiLCJzdWJfZm10dHlfcmVzdCQyMSIsInN1Yl9mbXR0eV9yZXN0JDIyIiwic3ViX2ZtdHR5X3Jlc3QkMjMiLCJzdWJfZm10dHlfcmVzdCQyNCIsInN1Yl9mbXR0eV9yZXN0JDI1Iiwic3ViX2ZtdHR5X3Jlc3QkMjYiLCJyZWNhc3QiLCJmaXhfcGFkZGluZyIsIndpZHRoJDAiLCJmaXhfaW50X3ByZWNpc2lvbiIsInJlcyQxIiwic3RyaW5nX3RvX2NhbWxfc3RyaW5nIiwiZm9ybWF0X29mX2Zjb252Iiwic3ltYiIsInRyYW5zZm9ybV9pbnRfYWx0IiwiZGlnaXRzIiwicHV0IiwiY29udmVydF9pbnQiLCJjb252ZXJ0X2ludDMyIiwiY29udmVydF9uYXRpdmVpbnQiLCJjb252ZXJ0X2ludDY0IiwiY29udmVydF9mbG9hdCIsImhleCIsInNpZ24iLCJjYW1sX3NwZWNpYWxfdmFsIiwic3RyaW5nX29mX2ZtdHR5IiwibWFrZV9pbnRfcGFkZGluZ19wcmVjaXNpb24iLCJtYWtlX3ByaW50ZiIsInAkMCIsInAkMSIsIm1ha2VfcGFkZGluZyIsIm5ld19hY2MiLCJtYWtlX3ByaW50ZiQwIiwiYWNjJDMiLCJhY2MkNCIsImskMyIsImthY2MiLCJrJDQiLCJtYWtlX2lnbm9yZWRfcGFyYW0kMCIsIm1ha2VfY3VzdG9tJDAiLCJtYWtlX2ludmFsaWRfYXJnIiwibWFrZV9mcm9tX2ZtdHR5JDAiLCJtYWtlX2Zyb21fZm10dHkiLCJtYWtlX2N1c3RvbSIsIm1ha2VfaWdub3JlZF9wYXJhbSIsImZuX29mX3BhZGRpbmdfcHJlY2lzaW9uIiwibWFrZV9pcHJpbnRmIiwibWFrZV9pcHJpbnRmJDAiLCJrb2MiLCJyZXN0JDI0IiwicmVzdCQyNSIsImZuX29mX2N1c3RvbV9hcml0eSQwIiwiZm5fb2ZfY3VzdG9tX2FyaXR5Iiwib3V0cHV0X2FjYyIsInAkMiIsInAkMyIsInAkNCIsImJ1ZnB1dF9hY2MiLCJzdHJwdXRfYWNjIiwiZmFpbHdpdGhfbWVzc2FnZSIsIm9wZW5fYm94X29mX3N0cmluZyIsImludmFsaWRfYm94IiwicGFyc2Vfc3BhY2VzIiwicGFyc2VfbHdvcmQiLCJwYXJzZV9pbnQiLCJ3c3RhcnQiLCJ3ZW5kIiwiYm94X25hbWUiLCJuc3RhcnQiLCJuZW5kIiwiaW5kZW50IiwiZXhwX2VuZCIsImJveF90eXBlIiwibWFrZV9wYWRkaW5nX2ZtdF9lYmIiLCJtYWtlX3BhZHByZWNfZm10X2ViYiIsImZtdF9lYmJfb2Zfc3RyaW5nIiwibGVnYWN5X2JlaGF2aW9yIiwiZmxhZyIsImxlZ2FjeV9iZWhhdmlvciQwIiwiaW52YWxpZF9mb3JtYXRfbWVzc2FnZSIsInVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCIsImVuZF9pbmQiLCJpbnZhbGlkX2Zvcm1hdF93aXRob3V0IiwiZXhwZWN0ZWRfY2hhcmFjdGVyIiwiZXhwZWN0ZWQiLCJhZGRfbGl0ZXJhbCIsImxpdF9zdGFydCIsInNpemUiLCJwYXJzZSIsInN0cl9pbmQkMiIsInBhcnNlX2ZsYWdzIiwic3RyX2luZCQwIiwicGFyc2VfdGFnIiwicGFyc2VfZ29vZF9icmVhayIsInBhcnNlX21hZ2ljX3NpemUiLCJzdHJfaW5kJDEiLCJwYXJzZV9jb252ZXJzaW9uIiwicGN0X2luZCIsInBsdXMiLCJzcGFjZSIsInBhZHByZWMiLCJwbHVzX3VzZWQiLCJoYXNoX3VzZWQiLCJzcGFjZV91c2VkIiwiaWduX3VzZWQiLCJwYWRfdXNlZCIsInByZWNfdXNlZCIsImdldF9wbHVzIiwiZ2V0X2hhc2giLCJnZXRfc3BhY2UiLCJnZXRfaWduIiwiZ2V0X3BhZCIsImdldF9wcmVjIiwiZ2V0X3BhZHByZWMiLCJnZXRfaW50X3BhZCIsImluY29tcGF0aWJsZV9mbGFnIiwiY2hlY2tfbm9fMCIsIm9wdF9vZl9wYWQiLCJ3aWR0aCQxIiwiZ2V0X3BhZF9vcHQiLCJnZXRfcGFkcHJlY19vcHQiLCJmbXRfcmVzdWx0Iiwic3ViX2VuZCIsInNlYXJjaF9zdWJmb3JtYXRfZW5kIiwic3ViX2ZtdCIsImlnbm9yZWQkMiIsImNvdW50ZXIkMCIsImlnbm9yZWQkNiIsImlnbm9yZWQkNyIsImFkZF9yYW5nZSIsImZhaWxfc2luZ2xlX3BlcmNlbnQiLCJwYXJzZV9jaGFyX3NldF9jb250ZW50IiwicGFyc2VfY2hhcl9zZXRfYWZ0ZXJfY2hhciQwIiwicGFyc2VfY2hhcl9zZXRfYWZ0ZXJfY2hhciIsInJldmVyc2UiLCJuZXh0X2luZCIsImNoYXJfc2V0JDEiLCJpZ25vcmVkJDkiLCJjaGFyX2Zvcm1hdCIsImZtdF9yZXN0JDIxIiwiZm10X3Jlc3QkMjIiLCJwYWQkOSIsImZtdF9yZXN0JDIzIiwiaWdub3JlZCQxMCIsImZtdF9yZXN0JDI0IiwicGFkJDEwIiwiZm10X3Jlc3QkMjUiLCJzdWJfZW5kJDAiLCJzdWJfZm10JDAiLCJmbXRfcmVzdCQyNiIsImlnbm9yZWQkMTEiLCJpZ25vcmVkJDMiLCJzeW1iJDAiLCJpZ25vcmVkJDUiLCJjb21wdXRlX2ludF9jb252IiwiaWdub3JlZCQ4Iiwic3BhY2UkMSIsImhhc2gkMSIsInBsdXMkMiIsImtpbmQiLCJpZ25vcmVkJDQiLCJpZ25vcmVkIiwiaWdub3JlZCQwIiwiaWdub3JlZCQxIiwicGx1cyQwIiwic3BhY2UkMCIsInBsdXMkMSIsImlnbiQwIiwicGFyc2VfYWZ0ZXJfcHJlY2lzaW9uIiwibWludXMiLCJwYXJzZV9jb252IiwicGFyc2VfYWZ0ZXJfcGFkZGluZyIsInBhcnNlX2xpdGVyYWwiLCJwYXJzZV9wb3NpdGl2ZSIsIm5ld19pbmQiLCJtaW51cyQwIiwic2V0X2ZsYWciLCJzdHJfaW5kJDMiLCJzdHJfaW5kJDQiLCJzdHJfaW5kJDUiLCJpc19vcGVuX3RhZyIsImluZCIsInN1Yl9zdHIiLCJzdWJfZm9ybWF0JDAiLCJmb3JtYXR0aW5nJDAiLCJmb3JtYXR0aW5nIiwic3RyX2luZF8xIiwicGFyc2VfaW50ZWdlciIsInN0cl9pbmRfMiIsInN0cl9pbmRfMyIsImZvcm1hdHRpbmdfbGl0JDAiLCJzdHJfaW5kXzQiLCJzdHJfaW5kXzUiLCJzdWJfZW5kJDEiLCJzdWJfZW5kJDIiLCJzdHJfaW5kJDYiLCJzdHJfaW5kJDciLCJvcHRpb24iLCJzdWJmbXQiLCJmb3JtYXRfb2Zfc3RyaW5nX2ZtdHR5IiwiZm9ybWF0X29mX3N0cmluZ19mb3JtYXQiLCJrZnByaW50ZiIsImticHJpbnRmIiwiaWtmcHJpbnRmIiwiZnByaW50ZiIsImJwcmludGYiLCJpZnByaW50ZiIsImlicHJpbnRmIiwicHJpbnRmIiwiZXByaW50ZiIsImtzcHJpbnRmIiwic3ByaW50ZiIsImFzc29jMyIsInkyIiwieTEiLCJzcGxpdCQxIiwibWFrZV9zeW1saXN0IiwiaGVscF9hY3Rpb24iLCJhZGRfaGVscCIsInNwZWNsaXN0IiwiYWRkMiIsInVzYWdlX2IiLCJlcnJtc2ciLCJkb2MiLCJzcGVjIiwia2V5IiwidXNhZ2Vfc3RyaW5nIiwidXNhZ2UiLCJib29sX29mX3N0cmluZ19vcHQkMCIsImludF9vZl9zdHJpbmdfb3B0JDAiLCJmbG9hdF9vZl9zdHJpbmdfb3B0IiwicGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWNfIiwiYWxsb3dfZXhwYW5kIiwiYXJndiIsImFub25mdW4iLCJpbml0cG9zIiwiY29udmVydF9lcnJvciIsInByb2duYW1lIiwiZm9sbG93JDAiLCJrZXl3b3JkIiwibm9fYXJnJDAiLCJmb2xsb3ciLCJub19hcmciLCJnZXRfYXJnJDAiLCJnZXRfYXJnIiwiY29uc3VtZV9hcmckMCIsImNvbnN1bWVfYXJnIiwidHJlYXRfYWN0aW9uJDAiLCJ0cmVhdF9hY3Rpb24iLCJmJDAiLCJmJDEiLCJyJDEiLCJmJDIiLCJyJDIiLCJhcmckMiIsImYkMyIsImFyZyQzIiwieCQxIiwiciQzIiwiYXJnJDQiLCJ4JDIiLCJzcGVjcyIsImYkNCIsImFyZyQ1IiwiZiQ1IiwiZiQ2IiwiZiQ3IiwiYXJnJDYiLCJuZXdhcmciLCJwYXJzZV9hbmRfZXhwYW5kX2FyZ3ZfZHluYW1pYyIsInBhcnNlX2FyZ3ZfZHluYW1pYyIsImN1cnJlbnQkMCIsInBhcnNlX2FyZ3YiLCJtc2ckMCIsIm1zZyQxIiwicGFyc2VfZHluYW1pYyIsInBhcnNlX2V4cGFuZCIsInNlY29uZF93b3JkIiwibG9vcCIsIm1heF9hcmdfbGVuIiwia3dkIiwicmVwbGFjZV9sZWFkaW5nX3RhYiIsImFsaWduIiwibGltaXQiLCJjb21wbGV0ZWQiLCJrc2QiLCJjdXRjb2wkMCIsInNwYWNlcyQwIiwiY3V0Y29sIiwia3dkX2xlbiIsInNwYWNlcyIsInJlYWRfYXV4IiwidHJpbSIsImZpbGUiLCJ3b3JkcyIsInN0YXNoIiwid29yZCIsInJlYWRfYXJnIiwicmVhZF9hcmcwIiwid3JpdGVfYXV4IiwiYXJncyIsIndyaXRlX2FyZyIsIndyaXRlX2FyZzAiLCJwcmludGVycyIsImZpZWxkIiwib3RoZXJfZmllbGRzIiwidXNlX3ByaW50ZXJzIiwiY29udiIsInRvX3N0cmluZ19kZWZhdWx0IiwiY2hhciQwIiwibGluZSIsImNoYXIkMSIsImxpbmUkMCIsImZpbGUkMCIsImNoYXIkMiIsImxpbmUkMSIsImZpbGUkMSIsImNvbnN0cnVjdG9yIiwidG9fc3RyaW5nJDYiLCJwcmludCIsImZjdCIsImNhdGNoJDAiLCJyYXdfYmFja3RyYWNlX2VudHJpZXMiLCJidCIsImNvbnZlcnRfcmF3X2JhY2t0cmFjZSIsImZvcm1hdF9iYWNrdHJhY2Vfc2xvdCIsImlzX3JhaXNlIiwicHJpbnRfcmF3X2JhY2t0cmFjZSIsIm91dGNoYW4iLCJyYXdfYmFja3RyYWNlIiwiYmFja3RyYWNlIiwicHJpbnRfYmFja3RyYWNlIiwicmF3X2JhY2t0cmFjZV90b19zdHJpbmciLCJiYWNrdHJhY2Vfc2xvdF9pc19yYWlzZSIsImJhY2t0cmFjZV9zbG90X2lzX2lubGluZSIsImJhY2t0cmFjZV9zbG90X2xvY2F0aW9uIiwiYmFja3RyYWNlX3Nsb3RfZGVmbmFtZSIsImJhY2t0cmFjZV9zbG90cyIsImJhY2t0cmFjZV9zbG90c19vZl9yYXdfZW50cnkiLCJlbnRyeSIsInJhd19iYWNrdHJhY2VfbGVuZ3RoIiwiZ2V0X2JhY2t0cmFjZSIsInJlZ2lzdGVyX3ByaW50ZXIiLCJmbiIsIm9sZF9wcmludGVycyIsIm5ld19wcmludGVycyIsImV4bl9zbG90IiwiZXhuX3Nsb3RfaWQiLCJleG5fc2xvdF9uYW1lIiwiZXJyb3JzIiwiZGVmYXVsdF91bmNhdWdodF9leGNlcHRpb25faGFuIiwic3RhdHVzIiwidW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIiLCJzZXRfdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIiLCJlbXB0eV9iYWNrdHJhY2UiLCJoYW5kbGVfdW5jYXVnaHRfZXhjZXB0aW9uIiwiZGVidWdnZXJfaW5fdXNlIiwiZXhuJDAiLCJyYXdfYmFja3RyYWNlJDAiLCJjb25zdCQwIiwiZmxpcCIsIm5lZ2F0ZSIsInByb3RlY3QiLCJmaW5hbGx5JDAiLCJ3b3JrIiwiZmluYWxseV9ub19leG4iLCJ3b3JrX2V4biIsIndvcmtfYnQiLCJwcmludF9zdGF0IiwiYWxsb2NhdGVkX2J5dGVzIiwibWEiLCJwcm8iLCJtaSIsImNyZWF0ZV9hbGFybSIsImRlbGV0ZV9hbGFybSIsIm51bGxfdHJhY2tlciIsInNhbXBsaW5nX3JhdGUiLCJ0cmFja2VyIiwiY2FsbHN0YWNrX3NpemUiLCJzdHJpbmciLCJieXRlcyIsInN1YnN0cmluZyIsInN1YmJ5dGVzIiwiZmlsZW5hbWUiLCJvdXRwdXQkMCIsImRpZ2VzdCIsImlucHV0JDAiLCJjaGFyX2hleCIsInRvX2hleCIsImZyb21faGV4IiwiZGlnaXQiLCJuZXdfc3RhdGUiLCJhc3NpZ24iLCJzdDEiLCJzdDIiLCJmdWxsX2luaXQiLCJzZWVkIiwic2VlZCQwIiwibWFrZSQzIiwibWFrZV9zZWxmX2luaXQiLCJjb3B5JDUiLCJiaXRzIiwiY3VydmFsIiwibmV3dmFsIiwibmV3dmFsMzAiLCJpbnRhdXgiLCJpbnQkMCIsImJvdW5kIiwiZnVsbF9pbnQiLCJicG9zIiwiYnBvcyQwIiwiaW50MzIiLCJpbnQ2NCIsIm5hdGl2ZWludCIsImZsb2F0JDAiLCJib29sIiwiYml0czMyIiwiYml0czY0IiwibmF0aXZlYml0cyIsImJpdHMkMCIsImludCQxIiwiZnVsbF9pbnQkMCIsImludDMyJDAiLCJuYXRpdmVpbnQkMCIsImludDY0JDAiLCJmbG9hdCQxIiwic2NhbGUiLCJib29sJDAiLCJiaXRzMzIkMCIsImJpdHM2NCQwIiwibmF0aXZlYml0cyQwIiwiZnVsbF9pbml0JDAiLCJpbml0JDUiLCJzZWxmX2luaXQiLCJnZXRfc3RhdGUiLCJzZXRfc3RhdGUiLCJvbmdvaW5nX3RyYXZlcnNhbCIsImZsaXBfb25nb2luZ190cmF2ZXJzYWwiLCJwYXJhbXMiLCJyYW5kb21pemVkX2RlZmF1bHQiLCJyYW5kb21pemVkIiwicmFuZG9taXplIiwiaXNfcmFuZG9taXplZCIsInBybmciLCJwb3dlcl8yX2Fib3ZlIiwiY3JlYXRlJDMiLCJpbml0aWFsX3NpemUiLCJyYW5kb20iLCJjbGVhciQyIiwicmVzZXQkMCIsImNvcHlfYnVja2V0bGlzdCIsImtleSQwIiwibmV4dCQwIiwiY29weSQ2IiwibGVuZ3RoJDUiLCJpbnNlcnRfYWxsX2J1Y2tldHMiLCJpbmRleGZ1biIsImlucGxhY2UiLCJvZGF0YSIsIm5kYXRhIiwibnNpemUiLCJuZGF0YV90YWlsIiwiY2VsbCQwIiwibmlkeCIsIm1hdGNoIiwibWF0Y2gkMCIsInJlc2l6ZSQwIiwib3NpemUiLCJpdGVyJDEwIiwiZG9fYnVja2V0Iiwib2xkX3RyYXYiLCJmaWx0ZXJfbWFwX2lucGxhY2VfYnVja2V0IiwiZmlsdGVyX21hcF9pbnBsYWNlIiwiZm9sZCQ0IiwiYiQwIiwiYnVja2V0X2xlbmd0aCIsInN0YXRzIiwibWJsIiwiaGlzdG8iLCJ0b19zZXEkOSIsInRibF9kYXRhIiwiYnVjayIsImJ1Y2skMCIsImJ1Y2skMSIsInRvX3NlcV9rZXlzIiwidG9fc2VxX3ZhbHVlcyIsImtleV9pbmRleCIsImJ1Y2tldCIsImsxIiwibmV4dDEiLCJrMiIsIm5leHQyIiwiazMiLCJkMyIsIm5leHQzIiwiZmluZF9hbGwiLCJmaW5kX2luX2J1Y2tldCIsInJlcGxhY2UiLCJyZXBsYWNlX3NlcSIsImNvcHkiLCJzeiIsImhhc2hfcGFyYW0iLCJzZWVkZWRfaGFzaCIsImFkZCQwIiwiZmluZCQxIiwiZmluZF9vcHQkMSIsImZpbmRfYWxsJDAiLCJtZW0kMiIsImFkZF9zZXEkMiIsIm9mX3NlcSQ3IiwicmVidWlsZCIsIndlYWtfY3JlYXRlIiwibGVuZ3RoJDYiLCJyYWlzZV9pZl9pbnZhbGlkX29mZnNldCQwIiwic2V0JDEiLCJnZXQkMiIsImdldF9jb3B5IiwiY2hlY2skMCIsImJsaXQkNCIsImZpbGwkMiIsImFyIiwiZW1wdHlidWNrZXQiLCJnZXRfaW5kZXgiLCJzeiQwIiwic3okMSIsImNvdW50X2J1Y2tldCIsImFkZF9hdXgiLCJzZXR0ZXIiLCJpbmRleCIsImJ1Y2tldCQwIiwiaGFzaGVzIiwibmV3c3oiLCJuZXdidWNrZXQkMCIsIm5ld2hhc2hlcyIsImhidWNrZXQiLCJwcmV2X2xlbiIsImxpdmUiLCJqJDIiLCJuZXdidWNrZXQiLCJuZXd0Iiwib2IiLCJvaCIsInNldHRlciQwIiwibmkiLCJmaW5kX29yIiwiaWZub3Rmb3VuZCIsImZpbmRfc2hhZG93IiwiaWZmb3VuZCIsImxlbnMiLCJ0b3RsZW4iLCJpZCQwIiwidW5rbm93biIsInBwX2VucXVldWUiLCJ0b2tlbiIsInBwX2luZmluaXR5IiwicHBfb3V0cHV0X3N0cmluZyIsInBwX291dHB1dF9uZXdsaW5lIiwiZm9ybWF0X3BwX3RleHQiLCJ0ZXh0IiwiZm9ybWF0X3N0cmluZyIsImJyZWFrX25ld19saW5lIiwicmVhbF9pbmRlbnQiLCJicmVha19saW5lIiwiYnJlYWtfc2FtZV9saW5lIiwiZm9ybWF0X3BwX3Rva2VuIiwic2l6ZSQwIiwidGFicyIsImFkZF90YWIiLCJscyIsInRhZ19uYW1lIiwibWFya2VyIiwiYnJlYWtzIiwiZml0cyIsIm9mZiIsImJveF90eXBlJDAiLCJvZmYkMCIsImluc2VydGlvbl9wb2ludCIsInRhYnMkMCIsImZpcnN0IiwiaGVhZCIsInRhYiIsIm9mZiQxIiwiaW5zZXJ0aW9uX3BvaW50JDAiLCJ3aWR0aCQyIiwiYm94X3R5cGUkMSIsInRib3giLCJ0YWdfbmFtZSQwIiwibWFya2VyJDAiLCJhZHZhbmNlX2xlZnQiLCJwZW5kaW5nX2NvdW50IiwiZW5xdWV1ZV9hZHZhbmNlIiwiZW5xdWV1ZV9zdHJpbmdfYXMiLCJpbml0aWFsaXplX3NjYW5fc3RhY2siLCJzdGFjayIsInF1ZXVlX2VsZW0iLCJzZXRfc2l6ZSIsImxlZnRfdG90YWwiLCJzY2FuX3B1c2giLCJlbGVtIiwicHBfb3Blbl9ib3hfZ2VuIiwiYnJfdHkiLCJwcF9jbG9zZV9ib3giLCJwcF9vcGVuX3N0YWciLCJwcF9jbG9zZV9zdGFnIiwicHBfb3Blbl90YWciLCJwcF9jbG9zZV90YWciLCJwcF9zZXRfcHJpbnRfdGFncyIsInBwX3NldF9tYXJrX3RhZ3MiLCJwcF9nZXRfcHJpbnRfdGFncyIsInBwX2dldF9tYXJrX3RhZ3MiLCJwcF9zZXRfdGFncyIsInBwX2dldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbiIsInBwX3NldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbiIsInBjdCIsInBvdCIsIm1jdCIsIm1vdCIsInBwX3Jpbml0IiwicHBfZmx1c2hfcXVldWUiLCJwcF9wcmludF9hc19zaXplIiwicHBfcHJpbnRfYXMiLCJpc2l6ZSIsInBwX3ByaW50X3N0cmluZyIsInBwX3ByaW50X2J5dGVzIiwicHBfcHJpbnRfaW50IiwicHBfcHJpbnRfZmxvYXQiLCJwcF9wcmludF9ib29sIiwicHBfcHJpbnRfY2hhciIsInBwX29wZW5faGJveCIsInBwX29wZW5fdmJveCIsInBwX29wZW5faHZib3giLCJwcF9vcGVuX2hvdmJveCIsInBwX29wZW5fYm94IiwicHBfcHJpbnRfbmV3bGluZSIsInBwX3ByaW50X2ZsdXNoIiwicHBfZm9yY2VfbmV3bGluZSIsInBwX3ByaW50X2lmX25ld2xpbmUiLCJwcF9wcmludF9jdXN0b21fYnJlYWsiLCJwcF9wcmludF9icmVhayIsInBwX3ByaW50X3NwYWNlIiwicHBfcHJpbnRfY3V0IiwicHBfb3Blbl90Ym94IiwicHBfY2xvc2VfdGJveCIsInBwX3ByaW50X3RicmVhayIsInBwX3ByaW50X3RhYiIsInBwX3NldF90YWIiLCJwcF9zZXRfbWF4X2JveGVzIiwicHBfZ2V0X21heF9ib3hlcyIsInBwX292ZXJfbWF4X2JveGVzIiwicHBfc2V0X2VsbGlwc2lzX3RleHQiLCJwcF9nZXRfZWxsaXBzaXNfdGV4dCIsInBwX2xpbWl0IiwicHBfc2V0X21heF9pbmRlbnQiLCJwcF9nZXRfbWF4X2luZGVudCIsInBwX3NldF9tYXJnaW4iLCJuZXdfbWF4X2luZGVudCIsInZhbGlkYXRlX2dlb21ldHJ5IiwibWFyZ2luIiwibWF4X2luZGVudCIsImNoZWNrX2dlb21ldHJ5IiwiZ2VvbWV0cnkiLCJwcF9nZXRfbWFyZ2luIiwicHBfc2V0X2Z1bGxfZ2VvbWV0cnkiLCJwcF9zZXRfZ2VvbWV0cnkiLCJwcF9zYWZlX3NldF9nZW9tZXRyeSIsInBwX2dldF9nZW9tZXRyeSIsInBwX3VwZGF0ZV9nZW9tZXRyeSIsInBwX3NldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsInBwX2dldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsInBwX3NldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aSIsInBwX2dldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aSIsImRpc3BsYXlfbmV3bGluZSIsImJsYW5rX2xpbmUiLCJkaXNwbGF5X2luZGVudCIsInBwX3NldF9mb3JtYXR0ZXJfb3V0X2NoYW5uZWwiLCJkZWZhdWx0X3BwX21hcmtfb3Blbl90YWciLCJkZWZhdWx0X3BwX21hcmtfY2xvc2VfdGFnIiwiZGVmYXVsdF9wcF9wcmludF9vcGVuX3RhZyIsImRlZmF1bHRfcHBfcHJpbnRfY2xvc2VfdGFnIiwicHBfbWFrZV9mb3JtYXR0ZXIiLCJwcF9xdWV1ZSIsInN5c190b2siLCJzY2FuX3N0YWNrIiwiZm9ybWF0dGVyX29mX291dF9mdW5jdGlvbnMiLCJvdXRfZnVucyIsIm1ha2VfZm9ybWF0dGVyIiwicHBmIiwiZm9ybWF0dGVyX29mX291dF9jaGFubmVsIiwiZm9ybWF0dGVyX29mX2J1ZmZlciIsInBwX2J1ZmZlcl9zaXplIiwicHBfbWFrZV9idWZmZXIiLCJzdGRidWYiLCJzdGRfZm9ybWF0dGVyIiwiZXJyX2Zvcm1hdHRlciIsInN0cl9mb3JtYXR0ZXIiLCJmbHVzaF9idWZmZXJfZm9ybWF0dGVyIiwiZmx1c2hfc3RyX2Zvcm1hdHRlciIsIm1ha2Vfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciIsImNsZWFyX3N5bWJvbGljX291dHB1dF9idWZmZXIiLCJzb2IiLCJnZXRfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciIsImZsdXNoX3N5bWJvbGljX291dHB1dF9idWZmZXIiLCJpdGVtcyIsImFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSIsIml0ZW0iLCJmb3JtYXR0ZXJfb2Zfc3ltYm9saWNfb3V0cHV0X2IiLCJvcGVuX2hib3giLCJvcGVuX3Zib3giLCJvcGVuX2h2Ym94Iiwib3Blbl9ob3Zib3giLCJvcGVuX2JveCIsImNsb3NlX2JveCIsIm9wZW5fdGFnIiwiY2xvc2VfdGFnIiwib3Blbl9zdGFnIiwiY2xvc2Vfc3RhZyIsInByaW50X2FzIiwicHJpbnRfc3RyaW5nJDAiLCJwcmludF9ieXRlcyQwIiwicHJpbnRfaW50JDAiLCJwcmludF9mbG9hdCQwIiwicHJpbnRfY2hhciQwIiwicHJpbnRfYm9vbCIsInByaW50X2JyZWFrIiwicHJpbnRfY3V0IiwicHJpbnRfc3BhY2UiLCJmb3JjZV9uZXdsaW5lIiwicHJpbnRfZmx1c2giLCJwcmludF9uZXdsaW5lJDAiLCJwcmludF9pZl9uZXdsaW5lIiwib3Blbl90Ym94IiwiY2xvc2VfdGJveCIsInByaW50X3RicmVhayIsInNldF90YWIiLCJwcmludF90YWIiLCJzZXRfbWFyZ2luIiwiZ2V0X21hcmdpbiIsInNldF9tYXhfaW5kZW50IiwiZ2V0X21heF9pbmRlbnQiLCJzZXRfZ2VvbWV0cnkiLCJzYWZlX3NldF9nZW9tZXRyeSIsImdldF9nZW9tZXRyeSIsInVwZGF0ZV9nZW9tZXRyeSIsInNldF9tYXhfYm94ZXMiLCJnZXRfbWF4X2JveGVzIiwib3Zlcl9tYXhfYm94ZXMiLCJzZXRfZWxsaXBzaXNfdGV4dCIsImdldF9lbGxpcHNpc190ZXh0Iiwic2V0X2Zvcm1hdHRlcl9vdXRfY2hhbm5lbCIsInNldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsInNldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyIsInNldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMiLCJnZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIiwic2V0X3ByaW50X3RhZ3MiLCJnZXRfcHJpbnRfdGFncyIsInNldF9tYXJrX3RhZ3MiLCJnZXRfbWFya190YWdzIiwic2V0X3RhZ3MiLCJwcF9wcmludF9saXN0IiwicHBfdiIsIm9wdCQwIiwicHBfc2VwIiwidnMiLCJvcHQkMSIsInBwX3ByaW50X3NlcSIsInNlcSQxIiwic2VxJDIiLCJwcF9wcmludF90ZXh0IiwicHBfcHJpbnRfb3B0aW9uIiwicHBfcHJpbnRfcmVzdWx0IiwicHBfcHJpbnRfZWl0aGVyIiwiY29tcHV0ZV90YWciLCJ0YWdfYWNjIiwib3V0cHV0X2Zvcm1hdHRpbmdfbGl0Iiwib3V0cHV0X2FjYyQwIiwiYnR5IiwicCQ1IiwicCQ2Iiwic3RycHV0X2FjYyQwIiwic2l6ZSQxIiwia2ZwcmludGYkMCIsImlrZnByaW50ZiQwIiwiaWZwcmludGYkMCIsImZwcmludGYkMCIsInByaW50ZiQwIiwiZXByaW50ZiQwIiwia2RwcmludGYiLCJkcHJpbnRmIiwia3ByaW50ZiIsInNwcmludGYkMCIsImthc3ByaW50ZiIsImFzcHJpbnRmIiwiZmx1c2hfc3RhbmRhcmRfZm9ybWF0dGVycyIsInBwX3NldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdSIsInBwX2dldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdSIsInNldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdCIsImdldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdCIsImJwcmludGYkMCIsInBwX3NldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyIsInN0cmluZ2lmeSIsInBwX2dldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyIsImZ1bnMiLCJtYXJrX29wZW5fdGFnIiwibWFya19jbG9zZV90YWciLCJwcmludF9vcGVuX3RhZyIsInByaW50X2Nsb3NlX3RhZyIsInNldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyIsIm51bGxfY2hhciIsIm5leHRfY2hhciIsImliIiwicGVla19jaGFyIiwiY2hlY2tlZF9wZWVrX2NoYXIiLCJlbmRfb2ZfaW5wdXQiLCJiZWdpbm5pbmdfb2ZfaW5wdXQiLCJuYW1lX29mX2lucHV0IiwiY2hhcl9jb3VudCIsInJlc2V0X3Rva2VuIiwiaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIiLCJ0b2tlbl9zdHJpbmciLCJ0b2tlbl9idWZmZXIiLCJza2lwX2NoYXIiLCJpZ25vcmVfY2hhciIsInN0b3JlX2NoYXIiLCJkZWZhdWx0X3Rva2VuX2J1ZmZlcl9zaXplIiwiY3JlYXRlJDQiLCJpbmFtZSIsImZyb21fc3RyaW5nJDEiLCJmcm9tX2Z1bmN0aW9uJDAiLCJzY2FuX2Nsb3NlX2F0X2VuZCIsInNjYW5fcmFpc2VfYXRfZW5kIiwiZnJvbV9pYyIsInNjYW5fY2xvc2VfaWMiLCJlb2YiLCJzdGRpYiIsIm9wZW5faW5fZmlsZSIsIm9wZW5faW4iLCJmcm9tX2ZpbGUiLCJmcm9tX2ZpbGVfYmluIiwiZnJvbV9jaGFubmVsJDAiLCJjbG9zZV9pbiIsImljJDAiLCJtZW1vIiwibWVtb19mcm9tX2ljIiwibWVtb19mcm9tX2NoYW5uZWwiLCJiYWRfaW5wdXQiLCJiYWRfaW5wdXRfZXNjYXBlIiwiYmFkX3Rva2VuX2xlbmd0aCIsIm1lc3NhZ2UiLCJiYWRfZmxvYXQiLCJiYWRfaGV4X2Zsb2F0IiwiY2hhcmFjdGVyX21pc21hdGNoIiwiY2kiLCJjaGVja190aGlzX2NoYXIiLCJjaGVja19jaGFyIiwidG9rZW5fY2hhciIsInRva2VuX2Jvb2wiLCJpbnRlZ2VyX2NvbnZlcnNpb25fb2ZfY2hhciIsInRva2VuX2ludF9saXRlcmFsIiwidG9rZW5fZmxvYXQiLCJzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciIsInNjYW5fdW5zaWduZWRfZGVjaW1hbF9pbnQiLCJzY2FuX2RpZ2l0X3BsdXMiLCJiYXNpcyIsImRpZ2l0cCIsIndpZHRoJDMiLCJpc19iaW5hcnlfZGlnaXQiLCJzY2FuX2JpbmFyeV9pbnQiLCJpc19vY3RhbF9kaWdpdCIsInNjYW5fb2N0YWxfaW50IiwiaXNfaGV4YV9kaWdpdCIsInNjYW5faGV4YWRlY2ltYWxfaW50Iiwic2Nhbl9zaWduIiwic2Nhbl9vcHRpb25hbGx5X3NpZ25lZF9kZWNpbWFsIiwic2Nhbl9pbnRfY29udmVyc2lvbiIsInNjYW5fZnJhY3Rpb25hbF9wYXJ0Iiwic2Nhbl9leHBvbmVudF9wYXJ0Iiwic2Nhbl9mbG9hdCIsInByZWNpc2lvbiIsInByZWNpc2lvbiQwIiwiY2hlY2tfY2FzZV9pbnNlbnNpdGl2ZV9zdHJpbmciLCJzY2FuX2hleF9mbG9hdCIsIndpZHRoJDQiLCJ3aWR0aCQ1Iiwid2lkdGgkNiIsIndpZHRoJDEwIiwid2lkdGgkNyIsIndpZHRoJDgiLCJ3aWR0aCQ5Iiwic2Nhbl9jYW1sX2Zsb2F0X3Jlc3QiLCJ3aWR0aF9wcmVjaXNpb24iLCJmcmFjX3dpZHRoIiwic2Nhbl9jYW1sX2Zsb2F0Iiwic2Nhbl9zdHJpbmciLCJzdHAiLCJzY2FuX2NoYXIiLCJoZXhhZGVjaW1hbF92YWx1ZV9vZl9jaGFyIiwiY2hlY2tfbmV4dF9jaGFyIiwiY2hlY2tfbmV4dF9jaGFyX2Zvcl9jaGFyIiwiY2hlY2tfbmV4dF9jaGFyX2Zvcl9zdHJpbmciLCJzY2FuX2JhY2tzbGFzaF9jaGFyIiwiYzAiLCJnZXRfZGlnaXQiLCJnZXRfZGlnaXQkMCIsImMxJDAiLCJjMiQwIiwic2Nhbl9jYW1sX2NoYXIiLCJmaW5kX3N0b3AiLCJzY2FuX2NhbWxfc3RyaW5nIiwiZmluZF9zdG9wJDAiLCJza2lwX3NwYWNlcyIsInNjYW5fY2hhcnNfaW5fY2hhcl9zZXQiLCJzY2FuX2luZGljIiwic2Nhbl9jaGFycyIsInNjYW5mX2JhZF9pbnB1dCIsImdldF9jb3VudGVyIiwid2lkdGhfb2ZfcGFkX29wdCIsInN0b3BwZXJfb2ZfZm9ybWF0dGluZ19saXQiLCJmbXRpbmciLCJ0YWtlX2Zvcm1hdF9yZWFkZXJzJDAiLCJ0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzJDAiLCJyZWFkZXIiLCJuZXdfayIsInJlYWRlcnNfcmVzdCIsInRha2VfZm9ybWF0X3JlYWRlcnMiLCJmbXQkMjMiLCJmbXQkMjQiLCJmbXQkMjUiLCJ0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIiwicGFkX3ByZWNfc2NhbmYiLCJyZWFkZXJzIiwibWFrZV9zY2FuZiIsInNjYW4kMCIsInN0cl9yZXN0Iiwic2NhbiQxIiwic2NhbiQyIiwic2NhbiQzIiwic2NhbiQ0IiwiY29udiQwIiwic2NhbiQ1IiwiY29udiQxIiwic2NhbiQ2IiwiY29udiQyIiwic2NhbiQ3Iiwic2NhbiQ4IiwiZm10aW5nX2xpdCQwIiwic3RwJDAiLCJzJDIiLCJzdHJfcmVzdCQwIiwicmVzdCQyNiIsImFyZ19yZXN0Iiwia3NjYW5mIiwiZWYiLCJhcHBseSIsImFyZ3MkMCIsImV4YyIsImJzY2FuZiIsImtzc2NhbmYiLCJzc2NhbmYiLCJzY2FuZiIsImJzY2FuZl9mb3JtYXQiLCJmb3JtYXQiLCJzc2NhbmZfZm9ybWF0IiwiZm9ybWF0X2Zyb21fc3RyaW5nIiwidW5lc2NhcGVkIiwia2ZzY2FuZiIsImZzY2FuZiIsInJlZ2lzdGVyIiwicmVnaXN0ZXJfZXhjZXB0aW9uIiwibyQwIiwicGFyYW1zJDAiLCJpbml0aWFsX29iamVjdF9zaXplIiwiZHVtbXlfaXRlbSIsInRhZyIsImNvbXBhcmUkMTQiLCJjb21wYXJlJDE1IiwiY29tcGFyZSQxNiIsImR1bW15X3RhYmxlIiwidGFibGVfY291bnQiLCJkdW1teV9tZXQiLCJmaXRfc2l6ZSIsIm5ld190YWJsZSIsInB1Yl9sYWJlbHMiLCJtZXRob2RzIiwicmVzaXplJDEiLCJhcnJheSIsIm5ld19zaXplIiwib2xkX3NpemUiLCJuZXdfYnVjayIsIm1ldGhvZF9jb3VudCIsImluc3RfdmFyX2NvdW50IiwibmV3X21ldGhvZCIsInRhYmxlIiwiZ2V0X21ldGhvZF9sYWJlbCIsImxhYmVsIiwiZ2V0X21ldGhvZF9sYWJlbHMiLCJuYW1lcyIsInNldF9tZXRob2QiLCJlbGVtZW50IiwiZ2V0X21ldGhvZCIsInRvX2xpc3QkMyIsImFyciIsIm5hcnJvdyIsInZhcnMiLCJ2aXJ0X21ldGhzIiwiY29uY3JfbWV0aHMiLCJ2YXJzJDAiLCJ2aXJ0X21ldGhzJDAiLCJjb25jcl9tZXRocyQwIiwidmlydF9tZXRoX2xhYnMiLCJjb25jcl9tZXRoX2xhYnMiLCJsYWIiLCJ0dmFycyIsImJ5X25hbWUiLCJieV9sYWJlbCIsIm1ldCIsImhtIiwid2lkZW4iLCJzYXZlZF92YXJzIiwic2F2ZWRfaGlkZGVuX21ldGhzIiwibmV3X3Nsb3QiLCJuZXdfdmFyaWFibGUiLCJ0b19hcnJheSIsIm5ld19tZXRob2RzX3ZhcmlhYmxlcyIsIm1ldGhzIiwidmFscyIsIm1ldGhzJDAiLCJubWV0aHMiLCJudmFscyIsImdldF92YXJpYWJsZSIsImdldF92YXJpYWJsZXMiLCJhZGRfaW5pdGlhbGl6ZXIiLCJjcmVhdGVfdGFibGUiLCJwdWJsaWNfbWV0aG9kcyIsInRhZ3MiLCJpbml0X2NsYXNzIiwiaW5oZXJpdHMiLCJjbGEiLCJzdXBlciQwIiwibm0iLCJtYWtlX2NsYXNzIiwicHViX21ldGhzIiwiY2xhc3NfaW5pdCIsImVudl9pbml0IiwibWFrZV9jbGFzc19zdG9yZSIsImluaXRfdGFibGUiLCJkdW1teV9jbGFzcyIsImxvYyIsInVuZGVmIiwiY3JlYXRlX29iamVjdCIsImNyZWF0ZV9vYmplY3Rfb3B0Iiwib2JqXzAiLCJpdGVyX2YiLCJydW5faW5pdGlhbGl6ZXJzIiwiaW5pdHMiLCJydW5faW5pdGlhbGl6ZXJzX29wdCIsImNyZWF0ZV9vYmplY3RfYW5kX3J1bl9pbml0aWFsaSIsImdldF9kYXRhJDAiLCJidWlsZF9wYXRoIiwia2V5cyIsImxvb2t1cF90YWJsZXMiLCJyb290IiwidGFibGVzJDIiLCJ0YWJsZXMkMCIsInRhYmxlcyQxIiwibmV3X2NhY2hlIiwic2V0X21ldGhvZHMiLCJjbG8iLCJjbG8kMCIsIm4kMiIsIm4kMyIsIm4kNCIsIm4kNSIsIm4kNiIsIngkMyIsIm4kNyIsIngkNCIsIm4kOCIsIm4kOSIsIngkNSIsImYkOCIsImUkMiIsIm4kMTAiLCJ4JDYiLCJmJDkiLCJuJDExIiwieCQ3IiwibiQxMiIsIngkOCIsIm4kMTMiLCJuJDE0IiwiZSQzIiwibiQxNSIsIm0kMiIsIngkOSIsIm0kMyIsIm4kMTYiLCJtJDQiLCJlJDQiLCJuJDE3IiwibSQ1IiwibiQxOCIsInN0YXRzJDAiLCJpbml0X21vZF9ibG9jayIsImNvbXBzJDAiLCJtb2R1Iiwic2hhcGUiLCJmbiQwIiwiY29tcHMiLCJpbml0X21vZCIsInVwZGF0ZV9tb2RfYmxvY2siLCJjbCIsInVwZGF0ZV9tb2QiLCJpbml0aWFsX2J1ZmZlciIsImJ1ZmZlciIsImJ1ZnBvcyIsInJlc2V0X2J1ZmZlciIsInN0b3JlIiwibmV3YnVmZmVyIiwiZ2V0X3N0cmluZyIsIm1ha2VfbGV4ZXIiLCJrZXl3b3JkcyIsImt3ZF90YWJsZSIsImlkZW50X29yX2tleXdvcmQiLCJrZXl3b3JkX29yX2Vycm9yIiwiZW5kX2V4cG9uZW50X3BhcnQiLCJleHBvbmVudF9wYXJ0IiwibnVtYmVyIiwiaWRlbnQyIiwibmVnX251bWJlciIsIm5leHRfdG9rZW4kMCIsImVzY2FwZSIsIm1heWJlX2NvbW1lbnQiLCJjb21tZW50IiwibmV4dF90b2tlbiIsImhrZXkiLCJjbGVhbiIsImluc2VydF9idWNrZXQiLCJjb250YWluZXIiLCJyZW1vdmVfYnVja2V0IiwiaGsiLCJyZXBsYWNlX2J1Y2tldCIsIm5ld19kIiwiYnVja2V0X2xlbmd0aF9hbGl2ZSIsInN0YXRzX2FsaXZlIiwiY3JlYXRlJDUiLCJnZXRfa2V5JDAiLCJnZXRfa2V5X2NvcHkkMCIsInNldF9rZXkkMCIsInVuc2V0X2tleSQwIiwiY2hlY2tfa2V5JDAiLCJibGl0X2tleSQwIiwiZ2V0X2RhdGEkMSIsImdldF9kYXRhX2NvcHkiLCJzZXRfZGF0YSIsInVuc2V0X2RhdGEiLCJjaGVja19kYXRhIiwiYmxpdF9kYXRhIiwibWFrZSQ0IiwiZXBoIiwicXVlcnkiLCJzZXRfa2V5X2RhdGEiLCJtYWtlJDUiLCJhZGQkMSIsInRlc3Rfa2V5IiwicmVtb3ZlJDAiLCJmaW5kJDIiLCJsZW5ndGgkNyIsImNsZWFyJDMiLCJjcmVhdGUkNiIsImdldF9rZXkxIiwiZ2V0X2tleTFfY29weSIsInNldF9rZXkxIiwidW5zZXRfa2V5MSIsImNoZWNrX2tleTEiLCJnZXRfa2V5MiIsImdldF9rZXkyX2NvcHkiLCJzZXRfa2V5MiIsInVuc2V0X2tleTIiLCJjaGVja19rZXkyIiwiYmxpdF9rZXkxIiwiYmxpdF9rZXkyIiwiYmxpdF9rZXkxMiIsImdldF9kYXRhJDIiLCJnZXRfZGF0YV9jb3B5JDAiLCJzZXRfZGF0YSQwIiwidW5zZXRfZGF0YSQwIiwiY2hlY2tfZGF0YSQwIiwiYmxpdF9kYXRhJDAiLCJtYWtlJDYiLCJrZXkxIiwia2V5MiIsInF1ZXJ5JDAiLCJrMiQwIiwiazEkMCIsIm1ha2UkNyIsImFkZCQyIiwidGVzdF9rZXlzIiwicmVtb3ZlJDEiLCJmaW5kJDMiLCJsZW5ndGgkOCIsImNsZWFyJDQiLCJjcmVhdGUkNyIsImxlbmd0aCQ5IiwiZ2V0X2tleSQxIiwiZ2V0X2tleV9jb3B5JDEiLCJzZXRfa2V5JDEiLCJ1bnNldF9rZXkkMSIsImNoZWNrX2tleSQxIiwiYmxpdF9rZXkkMSIsImdldF9kYXRhJDMiLCJnZXRfZGF0YV9jb3B5JDEiLCJzZXRfZGF0YSQxIiwidW5zZXRfZGF0YSQxIiwiY2hlY2tfZGF0YSQxIiwiYmxpdF9kYXRhJDEiLCJtYWtlJDgiLCJxdWVyeSQxIiwia2kiLCJrMCIsIm1ha2UkOSIsImFkZCQzIiwidGVzdF9rZXlzJDAiLCJyZW1vdmUkMiIsImZpbmQkNCIsImxlbmd0aCQxMCIsImNsZWFyJDUiLCJnZW5lcmljX2Jhc2VuYW1lIiwiaXNfZGlyX3NlcCIsImdlbmVyaWNfZGlybmFtZSIsImlzX3JlbGF0aXZlIiwiaXNfaW1wbGljaXQiLCJjaGVja19zdWZmaXgiLCJzdWZmIiwiY2hvcF9zdWZmaXhfb3B0IiwibGVuX2YiLCJxdW90ZSIsInF1b3RlX2NvbW1hbmQiLCJiYXNlbmFtZSIsImRpcm5hbWUiLCJpc19kaXJfc2VwJDAiLCJpc19yZWxhdGl2ZSQwIiwiaXNfaW1wbGljaXQkMCIsImNoZWNrX3N1ZmZpeCQwIiwiY2hvcF9zdWZmaXhfb3B0JDAiLCJ0ZW1wX2Rpcl9uYW1lIiwicXVvdGUkMCIsImFkZF9icyIsImxvb3AkMCIsImxvb3BfYnMiLCJxdW90ZV9jbWRfZmlsZW5hbWUiLCJxdW90ZV9jb21tYW5kJDAiLCJkcml2ZV9hbmRfcGF0aCIsImRpcm5hbWUkMCIsInBhdGgiLCJkcml2ZSIsImRpciIsImJhc2VuYW1lJDAiLCJiYXNlbmFtZSQxIiwiZGlybmFtZSQxIiwibnVsbCQzIiwiY3VycmVudF9kaXJfbmFtZSQyIiwicGFyZW50X2Rpcl9uYW1lJDIiLCJkaXJfc2VwJDIiLCJpc19kaXJfc2VwJDEiLCJpc19yZWxhdGl2ZSQxIiwiaXNfaW1wbGljaXQkMSIsImNoZWNrX3N1ZmZpeCQxIiwiY2hvcF9zdWZmaXhfb3B0JDEiLCJ0ZW1wX2Rpcl9uYW1lJDAiLCJxdW90ZSQxIiwicXVvdGVfY29tbWFuZCQxIiwiYmFzZW5hbWUkMiIsImRpcm5hbWUkMiIsImNvbmNhdCQ0IiwiY2hvcF9zdWZmaXgiLCJleHRlbnNpb25fbGVuIiwiZXh0ZW5zaW9uIiwiY2hvcF9leHRlbnNpb24iLCJyZW1vdmVfZXh0ZW5zaW9uIiwicHJuZyQwIiwidGVtcF9maWxlX25hbWUiLCJ0ZW1wX2RpciIsInJuZCIsImN1cnJlbnRfdGVtcF9kaXJfbmFtZSIsInNldF90ZW1wX2Rpcl9uYW1lIiwiZ2V0X3RlbXBfZGlyX25hbWUiLCJ0ZW1wX2ZpbGUiLCJ0cnlfbmFtZSIsImNvdW50ZXIkMSIsIm9wZW5fdGVtcF9maWxlIiwic3RoJDAiLCJwZXJtcyIsInN0aCQxIiwiYWRkJDQiLCJzdWIkNCIsIm5lZyIsImNvbmoiLCJtdWwiLCJkaXYiLCJpbnYiLCJub3JtMiIsIm5vcm0iLCJxJDAiLCJwb2xhciIsInNxcnQiLCJ3JDAiLCJleHAiLCJsb2ciLCJwb3ciLCJmbG9hdDMyIiwiZmxvYXQ2NCIsImludDhfc2lnbmVkIiwiaW50OF91bnNpZ25lZCIsImludDE2X3NpZ25lZCIsImludDE2X3Vuc2lnbmVkIiwiaW50MzIkMSIsImludDY0JDEiLCJpbnQkMiIsIm5hdGl2ZWludCQxIiwiY29tcGxleDMyIiwiY29tcGxleDY0Iiwia2luZF9zaXplX2luX2J5dGVzIiwiY19sYXlvdXQiLCJmb3J0cmFuX2xheW91dCIsImNsb29wIiwiaWR4IiwiY29sIiwiZmxvb3AiLCJpbml0JDYiLCJsYXlvdXQiLCJkaW1zIiwiZGxlbiIsInNpemVfaW5fYnl0ZXMiLCJjcmVhdGUkOCIsImdldCQzIiwic2V0JDIiLCJzaXplX2luX2J5dGVzJDAiLCJvZl92YWx1ZSIsImNyZWF0ZSQ5IiwiZGltIiwic2l6ZV9pbl9ieXRlcyQxIiwic2xpY2UiLCJpbml0JDciLCJvZl9hcnJheSIsImJhIiwiY3JlYXRlJDEwIiwiZGltMSIsImRpbTIiLCJzaXplX2luX2J5dGVzJDIiLCJzbGljZV9sZWZ0Iiwic2xpY2VfcmlnaHQiLCJpbml0JDgiLCJvZl9hcnJheSQwIiwicm93IiwiY3JlYXRlJDExIiwiZGltMyIsInNpemVfaW5fYnl0ZXMkMyIsInNsaWNlX2xlZnRfMSIsInNsaWNlX3JpZ2h0XzEiLCJzbGljZV9sZWZ0XzIiLCJzbGljZV9yaWdodF8yIiwiaW5pdCQ5Iiwib2ZfYXJyYXkkMSIsImFycmF5MF9vZl9nZW5hcnJheSIsImFycmF5MV9vZl9nZW5hcnJheSIsImFycmF5Ml9vZl9nZW5hcnJheSIsImFycmF5M19vZl9nZW5hcnJheSIsInJlc2hhcGVfMCIsInJlc2hhcGVfMSIsInJlc2hhcGVfMiIsInJlc2hhcGVfMyIsIndpdGhfb3BlbiIsIm9wZW5mdW4iLCJ3aXRoX29wZW5fYmluIiwid2l0aF9vcGVuX3RleHQiLCJ3aXRoX29wZW5fZ2VuIiwic2VlayIsImxlbmd0aCQxMSIsImlucHV0X2NoYXIkMCIsImlucHV0X2J5dGUkMCIsImlucHV0X2xpbmUkMCIsInJlYWxseV9pbnB1dCQwIiwicmVhbGx5X2lucHV0X3N0cmluZyQwIiwicmVhZF91cHRvIiwiZW5zdXJlIiwibmV3X2xlbiQwIiwibmV3X2xlbiQxIiwiaW5wdXRfYWxsIiwiY2h1bmtfc2l6ZSIsImluaXRpYWxfc2l6ZSQwIiwiaW5pdGlhbF9zaXplJDEiLCJucmVhZCIsImJ1ZiQwIiwiYnVmJDEiLCJyZW0iLCJ3aXRoX29wZW4kMCIsIndpdGhfb3Blbl9iaW4kMCIsIndpdGhfb3Blbl90ZXh0JDAiLCJ3aXRoX29wZW5fZ2VuJDAiLCJzZWVrJDAiLCJwb3MkMCIsImxlbmd0aCQxMiIsImZvcm1hdF9wZXJpb2QiLCJmbXQiLCJwIiwibWFrZV9wZXJpb2QiLCJ5ZWFycyIsIm1vbnRocyIsImRheXMiLCJhZGRfcGVyaW9kcyIsImQxIiwiZDIiLCJzdWJfcGVyaW9kcyIsIm11bF9wZXJpb2QiLCJtIiwicGVyaW9kX3RvX2RheXMiLCJpc19sZWFwX3llYXIiLCJ5ZWFyIiwiZGF5c19pbl9tb250aCIsIm1vbnRoIiwiaXNfdmFsaWRfZGF0ZSIsImQiLCJtYWtlX2RhdGUiLCJkYXkiLCJhZGRfbW9udGhzX3RvX2ZpcnN0X29mX21vbnRoX2QiLCJ5ZWFyJDAiLCJtb250aHMkMCIsIm5ld19tb250aCIsIm1vbnRocyQxIiwieWVhciQxIiwibW9udGhzJDIiLCJ5ZWFyJDIiLCJhZGRfZGF0ZXMiLCJvcHQiLCJzdGgiLCJyb3VuZCIsIm5ld19tb250aCQwIiwibmV3X3llYXIkMCIsIm5ld19kYXRlIiwibmV3X3llYXIiLCJkJDAiLCJkYXlzX2luX2RfbW9udGgiLCJuZXdfZGF5IiwibmV3X21vbnRoJDEiLCJuZXdfeWVhciQxIiwiZGF5cyQwIiwiZCQxIiwibmV3X21vbnRoJDIiLCJuZXdfeWVhciQyIiwiZGF5cyQxIiwiZCQyIiwiY29tcGFyZV9kYXRlcyIsImZvcm1hdF9kYXRlIiwiZmlyc3RfZGF5X29mX21vbnRoIiwibGFzdF9kYXlfb2ZfbW9udGgiLCJkYXlzX21vbnRoIiwibmVnX3BlcmlvZCIsInN1Yl9kYXRlcyIsImNtcCIsIm5ld19kMl9tb250aCIsIm5ld19kMl95ZWFyIiwibmV3X2QyIiwiZGF0ZV90b195bWQiLCJwZXJpb2RfdG9feW1kcyIsInN0cmVhbSQxIiwic3RyZWFtJDAiLCJzdHJlYW0iLCJ2ZXJzaW9uIiwib2NhbWxfbGV4X3RhYmxlcyIsIm9jYW1sX2xleF90YWJsZXMkMCIsIm9jYW1sX2xleF90YWJsZXMkMSIsImpzb25fZXJyb3IiLCJzIiwidXRmOF9vZl9jb2RlIiwiYnVmIiwieCIsImFkZCIsIm1heGJpdHMiLCJuIiwidXRmOF9vZl9zdXJyb2dhdGVfcGFpciIsImkiLCJqIiwiaGlnaDEwIiwibG93MTAiLCJpbml0X2xleGVyIiwiZm5hbWUiLCJvcHQiLCJzdGgiLCJsbnVtIiwiYnVmJDAiLCJidWYkMSIsImhleCIsIndyaXRlX3NwZWNpYWwiLCJzcmMiLCJzdGFydCIsInN0b3AiLCJvYiIsInN0ciIsImZpbmlzaF9zdHJpbmciLCJleGMiLCJ3cml0ZV9zdHJpbmciLCJjIiwianNvbl9zdHJpbmdfb2Zfc3RyaW5nIiwid3JpdGVfbnVsbCIsIndyaXRlX2Jvb2wiLCJ3cml0ZV9kaWdpdHMiLCJkIiwid3JpdGVfaW50IiwiZmxvYXRfbmVlZHNfcGVyaW9kIiwid3JpdGVfZmxvYXQiLCJzMSIsIndyaXRlX25vcm1hbF9mbG9hdF9wcmVjIiwic2lnbmlmaWNhbnRfZmlndXJlcyIsIndyaXRlX2Zsb2F0X3ByZWMiLCJ3cml0ZV9zdGRfZmxvYXQiLCJ3cml0ZV9zdGRfZmxvYXRfcHJlYyIsIndyaXRlX2ludGxpdCIsIndyaXRlX2Zsb2F0bGl0Iiwid3JpdGVfc3RyaW5nbGl0IiwiaXRlcjIiLCJmX2VsdCIsImZfc2VwIiwibCQwIiwieSQwIiwibCIsInkiLCJ3cml0ZV92YXJpYW50IiwibyIsIndyaXRlX3QiLCJ3cml0ZV90dXBsZSIsIndyaXRlX2xpc3QiLCJ3cml0ZV9hc3NvYyIsImIiLCJsJDEiLCJzJDAiLCJzJDEiLCJmIiwicyQyIiwicyQzIiwid3JpdGVfc3RkX3ZhcmlhbnQiLCJ3cml0ZV9zdGRfanNvbiIsIndyaXRlX3N0ZF90dXBsZSIsInRvX2J1ZmZlciIsInN1ZiIsInN0aCQwIiwic3RkIiwidG9fc3RyaW5nIiwibGVuIiwib2IkMCIsInRvX2NoYW5uZWwiLCJvYyIsInRvX291dHB1dCIsIm91dCIsInRvX2ZpbGUiLCJmaWxlIiwiZSIsInNlcV90b19idWZmZXIiLCJzdCIsInNlcV90b19zdHJpbmciLCJzZXFfdG9fY2hhbm5lbCIsInNlcSIsImpzb24iLCJzZXFfdG9fZmlsZSIsInNvcnQiLCJ2IiwiayIsImEiLCJ2JDAiLCJsJDIiLCJwcCIsImZtdCIsInhzIiwic2VwIiwidmFsdWUiLCJrZXkiLCJ4cyQwIiwieCQwIiwidHVwIiwibmFtZSIsIngkMSIsIngkMiIsIngkMyIsIngkNCIsIngkNSIsIngkNiIsInNob3ciLCJlcXVhbCIsImEkMCIsImIkMCIsImIkMSIsImEkMSIsInlzIiwiY29tcGFyZV9rZXlzIiwia2V5JDAiLCJ5cyQwIiwidmFsdWUkMCIsInJlc3VsdCIsInlzJDEiLCJ4cyQxIiwiYiQyIiwiYSQyIiwibmFtZSQwIiwiYiQzIiwiYSQzIiwicmVzdWx0JDAiLCJiJDQiLCJhJDQiLCJiJDUiLCJhJDUiLCJiJDYiLCJhJDYiLCJiJDciLCJhJDciLCJiJDgiLCJhJDgiLCJwcF9saXN0IiwicHB4IiwicHBfc2VwIiwiaXNfYXRvbSIsImZvcm1hdCIsImluc2lkZV9ib3giLCJyZXByZXNlbnRhdGlvbiIsIm9wIiwieCQ3IiwicHAkMCIsInByZXR0eV9wcmludCIsInByZXR0eV90b19zdHJpbmciLCJwcmV0dHlfdG9fY2hhbm5lbCIsImhleCQwIiwid3JpdGVfc3BlY2lhbCQwIiwiZmluaXNoX3N0cmluZyQwIiwid3JpdGVfc3RyaW5nJDAiLCJqc29uX3N0cmluZ19vZl9zdHJpbmckMCIsIndyaXRlX251bGwkMCIsIndyaXRlX2Jvb2wkMCIsIndyaXRlX2RpZ2l0cyQwIiwid3JpdGVfaW50JDAiLCJmbG9hdF9uZWVkc19wZXJpb2QkMCIsIndyaXRlX2Zsb2F0JDAiLCJ3cml0ZV9ub3JtYWxfZmxvYXRfcHJlYyQwIiwid3JpdGVfZmxvYXRfcHJlYyQwIiwid3JpdGVfc3RkX2Zsb2F0JDAiLCJ3cml0ZV9zdGRfZmxvYXRfcHJlYyQwIiwiaXRlcjIkMCIsImZfc2VwJDAiLCJ3cml0ZV9saXN0JDAiLCJ3cml0ZV90JDAiLCJ3cml0ZV9hc3NvYyQwIiwid3JpdGVfc3RkX2pzb24kMCIsInRvX2J1ZmZlciQwIiwidG9fc3RyaW5nJDAiLCJ0b19jaGFubmVsJDAiLCJ0b19vdXRwdXQkMCIsInRvX2ZpbGUkMCIsInNlcV90b19idWZmZXIkMCIsInNlcV90b19zdHJpbmckMCIsInNlcV90b19jaGFubmVsJDAiLCJzZXFfdG9fZmlsZSQwIiwic29ydCQwIiwicHBfbGlzdCQwIiwiaXNfYXRvbSQwIiwiZm9ybWF0JDAiLCJwcCQxIiwicHAkMiIsInNob3ckMCIsImVxdWFsJDAiLCJwcmV0dHlfcHJpbnQkMCIsInByZXR0eV90b19zdHJpbmckMCIsInByZXR0eV90b19jaGFubmVsJDAiLCJoZXgkMSIsImN1c3RvbV9lcnJvciIsImRlc2NyIiwibGV4YnVmIiwib2ZmcyIsImJvbCIsInBvczEiLCJwb3MyIiwiZmlsZV9saW5lIiwiYnl0ZXMiLCJtc2ciLCJsZXhlcl9lcnJvciIsInJlYWRfanVuayIsImxvbmdfZXJyb3IiLCJqdW5rIiwiZXh0cmFfanVuayIsIm1pbjEwIiwibWF4MTAiLCJleHRyYWN0X3Bvc2l0aXZlX2ludCIsImV4dHJhY3RfbmVnYXRpdmVfaW50IiwibmV3bGluZSIsImFkZF9sZXhlbWUiLCJyZWFkX2pzb24kMiIsIm9jYW1sX2xleF9yZWFkX2pzb25fcmVjIiwib2NhbWxfbGV4X3N0YXRlIiwib2NhbWxfbGV4X3N0YXRlJDAiLCJvY2FtbF9sZXhfc3RhdGUkMSIsImZpbmlzaF9zdHJpbmckMSIsImFjYyIsInJlYWRfc3BhY2UiLCJyZWFkX29iamVjdF9lbmQiLCJmaWVsZF9uYW1lIiwicmVhZF9pZGVudCIsInJlYWRfY29sb24iLCJyZWFkX2pzb24iLCJyZWFkX29iamVjdF9zZXAiLCJmaWVsZF9uYW1lJDAiLCJhY2MkMCIsInJlYWRfYXJyYXlfZW5kIiwicmVhZF9hcnJheV9zZXAiLCJmaW5pc2hfY29tbWVudCIsImZpbmlzaF9lc2NhcGVkX2NoYXIiLCJtYXBfc3RyaW5nIiwiYyQwIiwib2NhbWxfbGV4X3N0YXRlJDIiLCJjJDEiLCJkJDAiLCJmaW5pc2hfc3RyaW5nbGl0IiwiZmluaXNoX3ZhcmlhbnQiLCJyZWFkX2d0IiwicmVhZF9sdCIsInJlYWRfY29tbWEiLCJzdGFydF9hbnlfdmFyaWFudCIsInJlYWRfZW9mIiwicmVhZF9udWxsIiwicmVhZF9udWxsX2lmX3Bvc3NpYmxlIiwicmVhZF9ib29sIiwib2NhbWxfbGV4X3JlYWRfaW50X3JlYyIsInJlYWRfaW50Iiwib2NhbWxfbGV4X3JlYWRfaW50MzJfcmVjIiwicmVhZF9pbnQzMiIsIm9jYW1sX2xleF9yZWFkX2ludDY0X3JlYyIsInJlYWRfaW50NjQiLCJvY2FtbF9sZXhfcmVhZF9udW1iZXJfcmVjIiwicmVhZF9udW1iZXIiLCJyZWFkX3N0cmluZyIsIm1hcF9pZGVudCIsIm9jYW1sX2xleF9yZWFkX3NlcXVlbmNlX3JlYyIsInJlYWRfY2VsbCIsImluaXRfYWNjIiwicmVhZF9zZXF1ZW5jZSIsIm9jYW1sX2xleF9yZWFkX2xpc3RfcmV2X3JlYyIsInJlYWRfbGlzdF9yZXYiLCJyZWFkX3R1cGxlIiwicmVhZF90dXBsZV9lbmQiLCJyZWFkX3R1cGxlX2VuZDIiLCJyZWFkX3R1cGxlX3NlcCIsInJlYWRfdHVwbGVfc2VwMiIsIm9jYW1sX2xleF9yZWFkX2Fic3RyYWN0X2ZpZWxkcyIsInJlYWRfa2V5IiwicmVhZF9maWVsZCIsInJlYWRfYWJzdHJhY3RfZmllbGRzIiwicmVhZF9sY3VybCIsInN0YXJ0X2FueV90dXBsZSIsInJlYWRfbHBhciIsInJlYWRfcnBhciIsInJlYWRfbGJyIiwicmVhZF9yYnIiLCJmaW5pc2hfc2tpcF9zdHJpbmdsaXQiLCJza2lwX2pzb24kMiIsIm9jYW1sX2xleF9za2lwX2pzb25fcmVjIiwic2tpcF9pZGVudCIsInNraXBfanNvbiIsImZpbmlzaF9za2lwX3ZhcmlhbnQiLCJmaW5pc2hfYnVmZmVyX3N0cmluZ2xpdCIsImJ1ZmZlcl9qc29uJDIiLCJvY2FtbF9sZXhfYnVmZmVyX2pzb25fcmVjIiwiYnVmZmVyX3NwYWNlIiwiYnVmZmVyX29iamVjdF9lbmQiLCJidWZmZXJfaWRlbnQiLCJidWZmZXJfY29sb24iLCJidWZmZXJfanNvbiIsImJ1ZmZlcl9vYmplY3Rfc2VwIiwiYnVmZmVyX2FycmF5X2VuZCIsImJ1ZmZlcl9hcnJheV9zZXAiLCJmaW5pc2hfYnVmZmVyX2NvbW1lbnQiLCJyZWFkX2ludDgiLCJyZWFkX2xpc3QiLCJyZWFkX2FycmF5IiwidGwiLCJyIiwicmVhZF9maWVsZHMiLCJmcm9tX2xleGJ1ZiIsImZyb21fc3RyaW5nJDAiLCJmcm9tX2NoYW5uZWwkMCIsImljIiwiZnJvbV9maWxlIiwic2VxX2Zyb21fbGV4YnVmIiwiZmluIiwiZmluX2UiLCJzZXFfZnJvbV9zdHJpbmciLCJzZXFfZnJvbV9jaGFubmVsIiwic2VxX2Zyb21fZmlsZSIsImZuYW1lJDAiLCJsaW5lc2VxX2Zyb21fY2hhbm5lbCIsImxudW0wIiwibGluZSIsImxpbmVzZXFfZnJvbV9maWxlIiwicHJldHRpZnkiLCJjb21wYWN0IiwidHlwZXJyIiwianMiLCJhc3NvYyIsIm9iaiIsIm1lbWJlciIsImluZGV4Iiwid3JhcHBlZF9pbmRleCIsIm1hcCIsInRvX2Fzc29jIiwidG9fb3B0aW9uIiwidG9fYm9vbCIsInRvX2Jvb2xfb3B0aW9uIiwidG9fbnVtYmVyIiwidG9fbnVtYmVyX29wdGlvbiIsInRvX2Zsb2F0IiwidG9fZmxvYXRfb3B0aW9uIiwidG9faW50IiwidG9faW50X29wdGlvbiIsInRvX2xpc3QiLCJ0b19zdHJpbmckMSIsInRvX3N0cmluZ19vcHRpb24iLCJjb252ZXJ0X2VhY2giLCJmaWx0ZXJfbWFwIiwiZmxhdHRlbiIsImwyIiwiZmlsdGVyX2luZGV4IiwiZmlsdGVyX2xpc3QiLCJmaWx0ZXJfbWVtYmVyIiwiZmlsdGVyX2Fzc29jIiwiZmlsdGVyX2Jvb2wiLCJmaWx0ZXJfaW50IiwiZmlsdGVyX2Zsb2F0IiwiZmlsdGVyX251bWJlciIsImZpbHRlcl9zdHJpbmciLCJrZXlzIiwidmFsdWVzIiwiY29tYmluZSIsImZpcnN0Iiwic2Vjb25kIiwidG9fYmFzaWMiLCJoZXgkMiIsIndyaXRlX3NwZWNpYWwkMSIsImZpbmlzaF9zdHJpbmckMiIsIndyaXRlX3N0cmluZyQxIiwianNvbl9zdHJpbmdfb2Zfc3RyaW5nJDEiLCJ3cml0ZV9udWxsJDEiLCJ3cml0ZV9ib29sJDEiLCJ3cml0ZV9kaWdpdHMkMSIsIndyaXRlX2ludCQxIiwiZmxvYXRfbmVlZHNfcGVyaW9kJDEiLCJ3cml0ZV9mbG9hdCQxIiwid3JpdGVfbm9ybWFsX2Zsb2F0X3ByZWMkMSIsIndyaXRlX2Zsb2F0X3ByZWMkMSIsIndyaXRlX3N0ZF9mbG9hdCQxIiwid3JpdGVfc3RkX2Zsb2F0X3ByZWMkMSIsIndyaXRlX2ludGxpdCQwIiwiaXRlcjIkMSIsImZfc2VwJDEiLCJ3cml0ZV92YXJpYW50JDAiLCJ3cml0ZV90JDEiLCJ3cml0ZV90dXBsZSQwIiwid3JpdGVfbGlzdCQxIiwid3JpdGVfYXNzb2MkMSIsIndyaXRlX3N0ZF92YXJpYW50JDAiLCJ3cml0ZV9zdGRfanNvbiQxIiwid3JpdGVfc3RkX3R1cGxlJDAiLCJ0b19idWZmZXIkMSIsInRvX3N0cmluZyQyIiwidG9fY2hhbm5lbCQxIiwidG9fb3V0cHV0JDEiLCJ0b19maWxlJDEiLCJzZXFfdG9fYnVmZmVyJDEiLCJzZXFfdG9fc3RyaW5nJDEiLCJzZXFfdG9fY2hhbm5lbCQxIiwic2VxX3RvX2ZpbGUkMSIsInNvcnQkMSIsInBwX2xpc3QkMSIsImlzX2F0b20kMSIsImZvcm1hdCQxIiwicHAkMyIsInBwJDQiLCJzaG93JDEiLCJlcXVhbCQxIiwicHJldHR5X3ByaW50JDEiLCJwcmV0dHlfdG9fc3RyaW5nJDEiLCJwcmV0dHlfdG9fY2hhbm5lbCQxIiwiaGV4JDMiLCJjdXN0b21fZXJyb3IkMCIsImxleGVyX2Vycm9yJDAiLCJyZWFkX2p1bmskMCIsImxvbmdfZXJyb3IkMCIsIm1pbjEwJDAiLCJtYXgxMCQwIiwiZXh0cmFjdF9wb3NpdGl2ZV9pbnQkMCIsImV4dHJhY3RfbmVnYXRpdmVfaW50JDAiLCJuZXdsaW5lJDAiLCJhZGRfbGV4ZW1lJDAiLCJyZWFkX2pzb24kMyIsIm9jYW1sX2xleF9yZWFkX2pzb25fcmVjJDAiLCJmaW5pc2hfc3RyaW5nJDMiLCJyZWFkX3NwYWNlJDAiLCJyZWFkX29iamVjdF9lbmQkMCIsInJlYWRfaWRlbnQkMCIsInJlYWRfY29sb24kMCIsInJlYWRfanNvbiQwIiwicmVhZF9vYmplY3Rfc2VwJDAiLCJyZWFkX2FycmF5X2VuZCQwIiwicmVhZF9hcnJheV9zZXAkMCIsImFjYyQxIiwicmVhZF90dXBsZV9lbmQkMCIsInJlYWRfdHVwbGVfc2VwJDAiLCJjb25zIiwiZmluaXNoX3ZhcmlhbnQkMCIsImZpbmlzaF9jb21tZW50JDAiLCJmaW5pc2hfZXNjYXBlZF9jaGFyJDAiLCJtYXBfc3RyaW5nJDAiLCJmaW5pc2hfc3RyaW5nbGl0JDAiLCJyZWFkX2d0JDAiLCJyZWFkX2x0JDAiLCJyZWFkX2NvbW1hJDAiLCJzdGFydF9hbnlfdmFyaWFudCQwIiwicmVhZF9lb2YkMCIsInJlYWRfbnVsbCQwIiwicmVhZF9udWxsX2lmX3Bvc3NpYmxlJDAiLCJyZWFkX2Jvb2wkMCIsIm9jYW1sX2xleF9yZWFkX2ludF9yZWMkMCIsInJlYWRfaW50JDAiLCJvY2FtbF9sZXhfcmVhZF9pbnQzMl9yZWMkMCIsInJlYWRfaW50MzIkMCIsIm9jYW1sX2xleF9yZWFkX2ludDY0X3JlYyQwIiwicmVhZF9pbnQ2NCQwIiwib2NhbWxfbGV4X3JlYWRfbnVtYmVyX3JlYyQwIiwicmVhZF9udW1iZXIkMCIsInJlYWRfc3RyaW5nJDAiLCJtYXBfaWRlbnQkMCIsIm9jYW1sX2xleF9yZWFkX3NlcXVlbmNlX3JlYyQwIiwicmVhZF9zZXF1ZW5jZSQwIiwib2NhbWxfbGV4X3JlYWRfbGlzdF9yZXZfcmVjJDAiLCJyZWFkX2xpc3RfcmV2JDAiLCJvY2FtbF9sZXhfcmVhZF90dXBsZV9yZWMiLCJwb3MiLCJyZWFkX3R1cGxlJDAiLCJyZWFkX3R1cGxlX2VuZDIkMCIsInJlYWRfdHVwbGVfc2VwMiQwIiwib2NhbWxfbGV4X3JlYWRfYWJzdHJhY3RfZmllbGRzJDAiLCJyZWFkX2Fic3RyYWN0X2ZpZWxkcyQwIiwicmVhZF9sY3VybCQwIiwic3RhcnRfYW55X3R1cGxlJDAiLCJyZWFkX2xwYXIkMCIsInJlYWRfcnBhciQwIiwicmVhZF9sYnIkMCIsInJlYWRfcmJyJDAiLCJmaW5pc2hfc2tpcF92YXJpYW50JDAiLCJza2lwX2pzb24kMCIsImZpbmlzaF9za2lwX3N0cmluZ2xpdCQwIiwic2tpcF9qc29uJDMiLCJvY2FtbF9sZXhfc2tpcF9qc29uX3JlYyQwIiwic2tpcF9pZGVudCQwIiwiZmluaXNoX2J1ZmZlcl92YXJpYW50IiwiYnVmZmVyX2pzb24kMCIsImJ1ZmZlcl9zcGFjZSQwIiwiZmluaXNoX2J1ZmZlcl9zdHJpbmdsaXQkMCIsImJ1ZmZlcl9qc29uJDMiLCJvY2FtbF9sZXhfYnVmZmVyX2pzb25fcmVjJDAiLCJidWZmZXJfb2JqZWN0X2VuZCQwIiwiYnVmZmVyX2lkZW50JDAiLCJidWZmZXJfY29sb24kMCIsImJ1ZmZlcl9vYmplY3Rfc2VwJDAiLCJidWZmZXJfYXJyYXlfZW5kJDAiLCJidWZmZXJfYXJyYXlfc2VwJDAiLCJidWZmZXJfdHVwbGVfZW5kIiwiYnVmZmVyX3R1cGxlX3NlcCIsImZpbmlzaF9idWZmZXJfY29tbWVudCQwIiwianVuayQwIiwicmVhZF9pbnQ4JDAiLCJyZWFkX2xpc3QkMCIsInJlYWRfYXJyYXkkMCIsInJlYWRfZmllbGRzJDAiLCJmcm9tX2xleGJ1ZiQwIiwiZnJvbV9zdHJpbmckMiIsImZyb21fY2hhbm5lbCQyIiwiZnJvbV9maWxlJDAiLCJzZXFfZnJvbV9sZXhidWYkMCIsInNlcV9mcm9tX3N0cmluZyQwIiwic2VxX2Zyb21fY2hhbm5lbCQwIiwic2VxX2Zyb21fZmlsZSQwIiwibGluZXNlcV9mcm9tX2NoYW5uZWwkMCIsImxpbmVzZXFfZnJvbV9maWxlJDAiLCJwcmV0dGlmeSQwIiwiY29tcGFjdCQwIiwidHlwZXJyJDAiLCJhc3NvYyQwIiwibWVtYmVyJDAiLCJpbmRleCQwIiwibWFwJDAiLCJ0b19hc3NvYyQwIiwidG9fb3B0aW9uJDAiLCJ0b19ib29sJDAiLCJ0b19ib29sX29wdGlvbiQwIiwidG9fbnVtYmVyJDAiLCJ0b19udW1iZXJfb3B0aW9uJDAiLCJ0b19mbG9hdCQwIiwidG9fZmxvYXRfb3B0aW9uJDAiLCJ0b19pbnQkMCIsInRvX2ludF9vcHRpb24kMCIsInRvX2xpc3QkMCIsInRvX3N0cmluZyQzIiwidG9fc3RyaW5nX29wdGlvbiQwIiwiY29udmVydF9lYWNoJDAiLCJmaWx0ZXJfbWFwJDAiLCJmbGF0dGVuJDAiLCJmaWx0ZXJfaW5kZXgkMCIsImZpbHRlcl9saXN0JDAiLCJmaWx0ZXJfbWVtYmVyJDAiLCJmaWx0ZXJfYXNzb2MkMCIsImZpbHRlcl9ib29sJDAiLCJmaWx0ZXJfaW50JDAiLCJmaWx0ZXJfZmxvYXQkMCIsImZpbHRlcl9udW1iZXIkMCIsImZpbHRlcl9zdHJpbmckMCIsImtleXMkMCIsInZhbHVlcyQwIiwiY29tYmluZSQwIiwiaGV4JDQiLCJ3cml0ZV9zcGVjaWFsJDIiLCJmaW5pc2hfc3RyaW5nJDQiLCJ3cml0ZV9zdHJpbmckMiIsImpzb25fc3RyaW5nX29mX3N0cmluZyQyIiwid3JpdGVfbnVsbCQyIiwid3JpdGVfYm9vbCQyIiwid3JpdGVfaW50bGl0JDEiLCJ3cml0ZV9mbG9hdGxpdCQwIiwid3JpdGVfc3RyaW5nbGl0JDAiLCJpdGVyMiQyIiwiZl9zZXAkMiIsIndyaXRlX3ZhcmlhbnQkMSIsIndyaXRlX3QkMiIsIndyaXRlX3R1cGxlJDEiLCJ3cml0ZV9saXN0JDIiLCJ3cml0ZV9hc3NvYyQyIiwid3JpdGVfc3RkX3ZhcmlhbnQkMSIsIndyaXRlX3N0ZF9qc29uJDIiLCJ3cml0ZV9zdGRfdHVwbGUkMSIsInRvX2J1ZmZlciQyIiwidG9fc3RyaW5nJDQiLCJ0b19jaGFubmVsJDIiLCJ0b19vdXRwdXQkMiIsInRvX2ZpbGUkMiIsInNlcV90b19idWZmZXIkMiIsInNlcV90b19zdHJpbmckMiIsInNlcV90b19jaGFubmVsJDIiLCJzZXFfdG9fZmlsZSQyIiwic29ydCQyIiwicHBfbGlzdCQyIiwiaXNfYXRvbSQyIiwiZm9ybWF0JDIiLCJwcCQ1IiwicHAkNiIsInNob3ckMiIsImVxdWFsJDIiLCJwcmV0dHlfcHJpbnQkMiIsInByZXR0eV90b19zdHJpbmckMiIsInByZXR0eV90b19jaGFubmVsJDIiLCJoZXgkNSIsImN1c3RvbV9lcnJvciQxIiwibGV4ZXJfZXJyb3IkMSIsInJlYWRfanVuayQxIiwibG9uZ19lcnJvciQxIiwibWluMTAkMSIsIm1heDEwJDEiLCJleHRyYWN0X3Bvc2l0aXZlX2ludCQxIiwibWFrZV9wb3NpdGl2ZV9pbnQiLCJleHRyYWN0X25lZ2F0aXZlX2ludCQxIiwibWFrZV9uZWdhdGl2ZV9pbnQiLCJuZXdsaW5lJDEiLCJhZGRfbGV4ZW1lJDEiLCJyZWFkX2pzb24kNCIsIm9jYW1sX2xleF9yZWFkX2pzb25fcmVjJDEiLCJmaW5pc2hfc3RyaW5nbGl0JDEiLCJyZWFkX3NwYWNlJDEiLCJyZWFkX29iamVjdF9lbmQkMSIsInJlYWRfaWRlbnQkMSIsInJlYWRfY29sb24kMSIsInJlYWRfanNvbiQxIiwicmVhZF9vYmplY3Rfc2VwJDEiLCJyZWFkX2FycmF5X2VuZCQxIiwicmVhZF9hcnJheV9zZXAkMSIsInJlYWRfdHVwbGVfZW5kJDEiLCJyZWFkX3R1cGxlX3NlcCQxIiwiZmluaXNoX3ZhcmlhbnQkMSIsImZpbmlzaF9jb21tZW50JDEiLCJmaW5pc2hfc3RyaW5nJDUiLCJmaW5pc2hfZXNjYXBlZF9jaGFyJDEiLCJtYXBfc3RyaW5nJDEiLCJyZWFkX2d0JDEiLCJyZWFkX2x0JDEiLCJyZWFkX2NvbW1hJDEiLCJzdGFydF9hbnlfdmFyaWFudCQxIiwicmVhZF9lb2YkMSIsInJlYWRfbnVsbCQxIiwicmVhZF9udWxsX2lmX3Bvc3NpYmxlJDEiLCJyZWFkX2Jvb2wkMSIsIm9jYW1sX2xleF9yZWFkX2ludF9yZWMkMSIsInJlYWRfaW50JDEiLCJvY2FtbF9sZXhfcmVhZF9pbnQzMl9yZWMkMSIsInJlYWRfaW50MzIkMSIsIm9jYW1sX2xleF9yZWFkX2ludDY0X3JlYyQxIiwicmVhZF9pbnQ2NCQxIiwib2NhbWxfbGV4X3JlYWRfbnVtYmVyX3JlYyQxIiwicmVhZF9udW1iZXIkMSIsInJlYWRfc3RyaW5nJDEiLCJtYXBfaWRlbnQkMSIsIm9jYW1sX2xleF9yZWFkX3NlcXVlbmNlX3JlYyQxIiwicmVhZF9zZXF1ZW5jZSQxIiwib2NhbWxfbGV4X3JlYWRfbGlzdF9yZXZfcmVjJDEiLCJyZWFkX2xpc3RfcmV2JDEiLCJvY2FtbF9sZXhfcmVhZF90dXBsZV9yZWMkMCIsInJlYWRfdHVwbGUkMSIsInJlYWRfdHVwbGVfZW5kMiQxIiwicmVhZF90dXBsZV9zZXAyJDEiLCJvY2FtbF9sZXhfcmVhZF9hYnN0cmFjdF9maWVsZHMkMSIsInJlYWRfYWJzdHJhY3RfZmllbGRzJDEiLCJyZWFkX2xjdXJsJDEiLCJzdGFydF9hbnlfdHVwbGUkMSIsInJlYWRfbHBhciQxIiwicmVhZF9ycGFyJDEiLCJyZWFkX2xiciQxIiwicmVhZF9yYnIkMSIsImZpbmlzaF9za2lwX3ZhcmlhbnQkMSIsInNraXBfanNvbiQxIiwiZmluaXNoX3NraXBfc3RyaW5nbGl0JDEiLCJza2lwX2pzb24kNCIsIm9jYW1sX2xleF9za2lwX2pzb25fcmVjJDEiLCJza2lwX2lkZW50JDEiLCJmaW5pc2hfYnVmZmVyX3ZhcmlhbnQkMCIsImJ1ZmZlcl9qc29uJDEiLCJidWZmZXJfc3BhY2UkMSIsImZpbmlzaF9idWZmZXJfc3RyaW5nbGl0JDEiLCJidWZmZXJfanNvbiQ0Iiwib2NhbWxfbGV4X2J1ZmZlcl9qc29uX3JlYyQxIiwiYnVmZmVyX29iamVjdF9lbmQkMSIsImJ1ZmZlcl9pZGVudCQxIiwiYnVmZmVyX2NvbG9uJDEiLCJidWZmZXJfb2JqZWN0X3NlcCQxIiwiYnVmZmVyX2FycmF5X2VuZCQxIiwiYnVmZmVyX2FycmF5X3NlcCQxIiwiYnVmZmVyX3R1cGxlX2VuZCQwIiwiYnVmZmVyX3R1cGxlX3NlcCQwIiwiZmluaXNoX2J1ZmZlcl9jb21tZW50JDEiLCJqdW5rJDEiLCJyZWFkX2ludDgkMSIsInJlYWRfbGlzdCQxIiwicmVhZF9hcnJheSQxIiwicmVhZF9maWVsZHMkMSIsImZyb21fbGV4YnVmJDEiLCJmcm9tX3N0cmluZyQ0IiwiZnJvbV9jaGFubmVsJDQiLCJmcm9tX2ZpbGUkMSIsInNlcV9mcm9tX2xleGJ1ZiQxIiwic2VxX2Zyb21fc3RyaW5nJDEiLCJzZXFfZnJvbV9jaGFubmVsJDEiLCJzZXFfZnJvbV9maWxlJDEiLCJsaW5lc2VxX2Zyb21fY2hhbm5lbCQxIiwibGluZXNlcV9mcm9tX2ZpbGUkMSIsInByZXR0aWZ5JDEiLCJjb21wYWN0JDEiLCJ5b2pzb25fb2ZfdW5pdCIsInlvanNvbl9vZl9ib29sIiwiYiIsInlvanNvbl9vZl9zdHJpbmciLCJzdHIiLCJ5b2pzb25fb2ZfYnl0ZXMiLCJieXRlcyIsInlvanNvbl9vZl9jaGFyIiwiYyIsInlvanNvbl9vZl9pbnQiLCJuIiwieW9qc29uX29mX2Zsb2F0IiwieW9qc29uX29mX2ludDMyIiwieW9qc29uX29mX2ludDY0IiwieW9qc29uX29mX25hdGl2ZWludCIsInlvanNvbl9vZl9yZWYiLCJ5b2pzb25fb2ZfYSIsInJmIiwieW9qc29uX29mX2xhenlfdCIsImx2IiwieW9qc29uX29mX29wdGlvbiIsIngiLCJ5b2pzb25fb2ZfcGFpciIsInlvanNvbl9vZl9iIiwiYSIsInlvanNvbl9vZl90cmlwbGUiLCJ5b2pzb25fb2ZfYyIsInlvanNvbl9vZl9saXN0IiwibHN0IiwieW9qc29uX29mX2FycmF5IiwiYXIiLCJsc3RfcmVmIiwiaSIsInlvanNvbl9vZl9oYXNodGJsIiwieW9qc29uX29mX2tleSIsInlvanNvbl9vZl92YWwiLCJodGJsIiwiY29sbCIsImsiLCJ2IiwiYWNjIiwieW9qc29uX29mX29wYXF1ZSIsInlvanNvbl9vZl9mdW4iLCJyZWNvcmRfY2hlY2tfZXh0cmFfZmllbGRzIiwib2ZfeW9qc29uX2Vycm9yX2V4biIsImV4YyIsInlvanNvbiIsIm9mX3lvanNvbl9lcnJvciIsIndoYXQiLCJ1bml0X29mX3lvanNvbiIsImJvb2xfb2ZfeW9qc29uIiwic3RyaW5nX29mX3lvanNvbiIsImJ5dGVzX29mX3lvanNvbiIsImNoYXJfb2ZfeW9qc29uIiwiaW50X29mX3lvanNvbiIsImZsb2F0X29mX3lvanNvbiIsImludDMyX29mX3lvanNvbiIsImludDY0X29mX3lvanNvbiIsIm5hdGl2ZWludF9vZl95b2pzb24iLCJyZWZfb2ZfeW9qc29uIiwiYV9vZl95b2pzb24iLCJsYXp5X3Rfb2ZfeW9qc29uIiwib3B0aW9uX29mX3lvanNvbiIsInBhaXJfb2ZfeW9qc29uIiwiYl9vZl95b2pzb24iLCJiX3lvanNvbiIsImFfeW9qc29uIiwidHJpcGxlX29mX3lvanNvbiIsImNfb2ZfeW9qc29uIiwiY195b2pzb24iLCJsaXN0X29mX3lvanNvbiIsInJldl9sc3QiLCJhcnJheV9vZl95b2pzb24iLCJ0IiwiaCIsImxlbiIsInJlcyIsInQkMCIsImgkMCIsImhhc2h0Ymxfb2ZfeW9qc29uIiwia2V5X29mX3lvanNvbiIsInZhbF9vZl95b2pzb24iLCJhY3QiLCJ2X3lvanNvbiIsImtfeW9qc29uIiwib3BhcXVlX29mX3lvanNvbiIsImZ1bl9vZl95b2pzb24iLCJzcHJpbnRmIiwidHVwbGVfb2Zfc2l6ZV9uX2V4cGVjdGVkIiwibG9jIiwic3RhZ19ub19hcmdzIiwic3RhZ19pbmNvcnJlY3Rfbl9hcmdzIiwidGFnIiwibXNnIiwic3RhZ190YWtlc19hcmdzIiwibmVzdGVkX2xpc3RfaW52YWxpZF9zdW0iLCJlbXB0eV9saXN0X2ludmFsaWRfc3VtIiwidW5leHBlY3RlZF9zdGFnIiwicmVjb3JkX3N1cGVyZmx1b3VzX2ZpZWxkcyIsInJldl9mbGRfbmFtZXMiLCJmbGRfbmFtZXNfc3RyIiwicmVjb3JkX2R1cGxpY2F0ZV9maWVsZHMiLCJyZWNvcmRfZXh0cmFfZmllbGRzIiwicmVjb3JkX2dldF91bmRlZmluZWRfbG9vcCIsInBhcmFtJDEiLCJmaWVsZCIsInBhcmFtJDIiLCJyZWNvcmRfdW5kZWZpbmVkX2VsZW1lbnRzIiwidW5kZWZpbmVkJDAiLCJyZWNvcmRfbGlzdF9pbnN0ZWFkX2F0b20iLCJyZWNvcmRfcG9seV9maWVsZF92YWx1ZSIsIm5vX3ZhcmlhbnRfbWF0Y2giLCJub19tYXRjaGluZ192YXJpYW50X2ZvdW5kIiwicHRhZ19ub19hcmdzIiwicHRhZ19pbmNvcnJlY3Rfbl9hcmdzIiwiY25zdHIiLCJwdGFnX3Rha2VzX2FyZ3MiLCJuZXN0ZWRfbGlzdF9pbnZhbGlkX3BvbHlfdmFyIiwiZW1wdHlfbGlzdF9pbnZhbGlkX3BvbHlfdmFyIiwiZW1wdHlfdHlwZSIsInN5bWJvbCIsInlvanNvbl9vZl9zb3VyY2VfcG9zaXRpb24iLCJ2X2xhd19oZWFkaW5ncyIsInZfZW5kX2NvbHVtbiIsInZfZW5kX2xpbmUiLCJ2X3N0YXJ0X2NvbHVtbiIsInZfc3RhcnRfbGluZSIsInZfZmlsZW5hbWUiLCJhcmciLCJibmRzIiwiYXJnJDAiLCJibmRzJDAiLCJhcmckMSIsImJuZHMkMSIsImFyZyQyIiwiYm5kcyQyIiwiYXJnJDMiLCJibmRzJDMiLCJhcmckNCIsImJuZHMkNCIsIm1vbmV5X29mX2NlbnRzX3N0cmluZyIsImNlbnRzIiwibW9uZXlfb2ZfdW5pdHNfaW50IiwidW5pdHMiLCJtb25leV9vZl9jZW50c19pbnRlZ2VyIiwibW9uZXlfdG9fZmxvYXQiLCJtIiwibW9uZXlfb2ZfZGVjaW1hbCIsImQiLCJtb25leV90b19zdHJpbmciLCJtb25leV90b19jZW50cyIsIm1vbmV5X3JvdW5kIiwiZGVjaW1hbF9vZl9zdHJpbmciLCJkZWNpbWFsX3RvX2Zsb2F0IiwiZGVjaW1hbF9vZl9mbG9hdCIsImRlY2ltYWxfb2ZfaW50ZWdlciIsImRlY2ltYWxfdG9fc3RyaW5nIiwibWF4X3ByZWNfZGlnaXRzIiwiaSIsInNpZ24iLCJuIiwiaW50X3BhcnQiLCJuJDAiLCJkaWdpdHMiLCJsZWFkaW5nX3plcm9lcyIsImRpZ2l0IiwibnVtX2xlYWRpbmdfemVyb2VzIiwiaSQwIiwiZm10IiwiZGVjaW1hbF9yb3VuZCIsInEiLCJkZWNpbWFsX29mX21vbmV5IiwiaW50ZWdlcl9vZl9zdHJpbmciLCJzIiwiaW50ZWdlcl90b19zdHJpbmciLCJpbnRlZ2VyX3RvX2ludCIsImludGVnZXJfb2ZfaW50IiwiaW50ZWdlcl9leHBvbmVudGlhdGlvbiIsImUiLCJpbnRlZ2VyX2xvZzIiLCJ5ZWFyX29mX2RhdGUiLCJ5IiwibW9udGhfbnVtYmVyX29mX2RhdGUiLCJpc19sZWFwX3llYXIiLCJ5JDAiLCJkYXlfb2ZfbW9udGhfb2ZfZGF0ZSIsImQkMCIsImRhdGVfb2ZfbnVtYmVycyIsInllYXIiLCJtb250aCIsImRheSIsImRhdGVfdG9fc3RyaW5nIiwiZmlyc3RfZGF5X29mX21vbnRoIiwibGFzdF9kYXlfb2ZfbW9udGgiLCJkdXJhdGlvbl9vZl9udW1iZXJzIiwiZHVyYXRpb25fdG9fc3RyaW5nIiwiZHVyYXRpb25fdG9feWVhcnNfbW9udGhzX2RheXMiLCJ5b2pzb25fb2ZfcnVudGltZV92YWx1ZSIsInYwJDQiLCJ2MCQ1IiwidjAkNiIsInYwIiwidjAkNyIsInYwJDAiLCJ2MCQ4IiwidjAkMSIsInYwJDkiLCJ2MCQyIiwidjAkMTAiLCJ2MCQzIiwidjEiLCJ2MCQxMSIsInYwJDEyIiwidjEkMCIsInYwJDEzIiwidjAkMTQiLCJ2MSQxIiwidjEkMiIsInYxJDMiLCJ2MCQxNSIsInYwJDE2IiwidjEkNCIsInYwJDE3IiwidjAkMTgiLCJ1bmVtYmVkZGFibGUiLCJlbWJlZF91bml0IiwiZW1iZWRfYm9vbCIsIngiLCJlbWJlZF9tb25leSIsImVtYmVkX2ludGVnZXIiLCJlbWJlZF9kZWNpbWFsIiwiZW1iZWRfZGF0ZSIsImVtYmVkX2R1cmF0aW9uIiwiZW1iZWRfYXJyYXkiLCJmIiwieW9qc29uX29mX2luZm9ybWF0aW9uIiwidiIsInlvanNvbl9vZl9ldmVudCIsInlvanNvbl9vZl92YXJfZGVmIiwieW9qc29uX29mX2Z1bl9jYWxsIiwidl9ib2R5Iiwidl9pbnB1dHMiLCJ2X25hbWUiLCJ2X2Z1bl9jYWxscyIsInZfdmFsdWUiLCJ2X3BvcyIsInZfb3V0cHV0Iiwidl9mdW5faW5wdXRzIiwidl9mdW5fbmFtZSIsImxvZ19yZWYiLCJyZXNldF9sb2ciLCJyZXRyaWV2ZV9sb2ciLCJsb2dfYmVnaW5fY2FsbCIsImluZm8iLCJsb2dfZW5kX2NhbGwiLCJsb2dfdmFyaWFibGVfZGVmaW5pdGlvbiIsImVtYmVkIiwibG9nX2RlY2lzaW9uX3Rha2VuIiwicG9zIiwicHBfZXZlbnRzIiwib3B0IiwicHBmIiwiZXZlbnRzIiwic3RoIiwiaXNfZmlyc3RfY2FsbCIsImZvcm1hdF92YXJfZGVmIiwidmFyJDAiLCJmb3JtYXRfcG9zX29wdCIsImZvcm1hdF92YWx1ZSIsImZvcm1hdF92YXJfZGVmcyIsImZvcm1hdF92YXJfZGVmX3dpdGhfZnVuX2NhbGxzIiwidmFyX3dpdGhfZnVuIiwiZnVuX2NhbGwiLCJmb3JtYXRfZXZlbnQiLCJ4JDAiLCJ4JDEiLCJ4JDIiLCJ4JDMiLCJ4JDQiLCJuYW1lIiwiYXR0cnMiLCJuYW1lJDAiLCJ2YWx1ZSIsImVsdHMiLCJ2YXJfZGVmX3dpdGhfZnVuIiwib3V0cHV0IiwiYm9keSIsImZ1bl9pbnB1dHMiLCJmdW5fbmFtZSIsImJvZHkkMCIsImlucHV0cyIsImVtcHR5IiwiZW1wdHlfY3R4IiwicmF3X2V2ZW50X3RvX3N0cmluZyIsIm5hbWUkMSIsInRha2Vfd2hpbGUiLCJwIiwibCIsInQiLCJoIiwicmVzdCIsInQkMCIsInBhcnNlX3Jhd19ldmVudHMiLCJyYXdfZXZlbnRzIiwibmJfcmF3X2V2ZW50cyIsImlzX2Z1bmN0aW9uX2NhbGwiLCJpbmZvcyIsImlzX3Zhcl9kZWYiLCJwYXJzZV9ldmVudHMiLCJjdHgiLCJjdHgkMCIsInZhcl9uYW1lIiwiYm9keV9jdHgiLCJscyQwIiwiY3R4JDEiLCJyZXN0JDAiLCJyZXN0JDEiLCJjdHgkMiIsImluZm9zJDAiLCJwYXJzZV9mdW5fY2FsbCIsInJlc3QkMiIsImN0eCQzIiwicmVzdCQzIiwidmFyX2RvdF9zdWJzY29wZV92YXJfbmFtZSIsImxzIiwiY3R4JDQiLCJpbmZvcyQxIiwicmF3X2V2ZW50cyQwIiwiZnVuX2NhbGxzIiwicmVzdCQ0IiwiaW5mb3MkMiIsImZ1bl9jYWxsJDAiLCJmdW5fY2FsbHMkMCIsImZ1bl9jYWxscyQxIiwicmVzdCQ2IiwidmFsdWUkMCIsIm5hbWUkMiIsInZhcl9jb21wIiwicmVzdCQ1IiwiY3R4JDYiLCJjdHgkNSIsImJvZHlfcmV2IiwidmFyX2RlZiIsIm91dHB1dCQwIiwibXNnIiwiaGFuZGxlX2RlZmF1bHQiLCJleGNlcHRpb25zIiwianVzdCIsImNvbnMiLCJhY2MiLCJleGNlcHQiLCJuZXdfdmFsIiwiaGFuZGxlX2RlZmF1bHRfb3B0IiwiYiIsIm5vX2lucHV0IiwiY29tcGFyZV9wZXJpb2RzIiwicDEiLCJwMiIsInAxX2RheXMiLCJwMl9kYXlzIiwiZXF1YWxfcGVyaW9kcyIsIm9fbm90Iiwib19sZW5ndGgiLCJhIiwib19taW51c19pbnQiLCJpMSIsIm9fbWludXNfcmF0Iiwib19taW51c19tb24iLCJtMSIsIm9fbWludXNfZHVyIiwib19hbmQiLCJvX29yIiwib194b3IiLCJvX2VxIiwib19tYXAiLCJvX3JlZHVjZSIsImRmdCIsImxlbiIsInIiLCJvX2NvbmNhdCIsIm9fZmlsdGVyIiwib19hZGRfaW50X2ludCIsImkyIiwib19hZGRfcmF0X3JhdCIsIm9fYWRkX21vbl9tb24iLCJtMiIsIm9fYWRkX2RhdF9kdXIiLCJkYSIsImR1Iiwib19hZGRfZHVyX2R1ciIsIm9fc3ViX2ludF9pbnQiLCJvX3N1Yl9yYXRfcmF0Iiwib19zdWJfbW9uX21vbiIsIm9fc3ViX2RhdF9kYXQiLCJvX3N1Yl9kYXRfZHVyIiwiZGF0IiwiZHVyIiwib19zdWJfZHVyX2R1ciIsIm9fbXVsdF9pbnRfaW50Iiwib19tdWx0X3JhdF9yYXQiLCJvX211bHRfbW9uX3JhdCIsImkxX2FicyIsImkyX2FicyIsInNpZ25faW50IiwicmF0X3Jlc3VsdCIsInJlbWFpbmRlciIsInJlcyIsIm9fbXVsdF9kdXJfaW50Iiwib19kaXZfaW50X2ludCIsIm9fZGl2X3JhdF9yYXQiLCJvX2Rpdl9tb25fbW9uIiwib19kaXZfbW9uX3JhdCIsInIxIiwib19kaXZfZHVyX2R1ciIsImQxIiwiZDIiLCJvX2x0X2ludF9pbnQiLCJvX2x0X3JhdF9yYXQiLCJvX2x0X21vbl9tb24iLCJvX2x0X2R1cl9kdXIiLCJvX2x0X2RhdF9kYXQiLCJvX2x0ZV9pbnRfaW50Iiwib19sdGVfcmF0X3JhdCIsIm9fbHRlX21vbl9tb24iLCJvX2x0ZV9kdXJfZHVyIiwib19sdGVfZGF0X2RhdCIsIm9fZ3RfaW50X2ludCIsIm9fZ3RfcmF0X3JhdCIsIm9fZ3RfbW9uX21vbiIsIm9fZ3RfZHVyX2R1ciIsIm9fZ3RfZGF0X2RhdCIsIm9fZ3RlX2ludF9pbnQiLCJvX2d0ZV9yYXRfcmF0Iiwib19ndGVfbW9uX21vbiIsIm9fZ3RlX2R1cl9kdXIiLCJvX2d0ZV9kYXRfZGF0Iiwib19lcV9pbnRfaW50Iiwib19lcV9yYXRfcmF0Iiwib19lcV9tb25fbW9uIiwib19lcV9kdXJfZHVyIiwib19lcV9kYXRfZGF0Iiwib19mb2xkIiwib19ub3QkMCIsIm9fbGVuZ3RoJDAiLCJvX3RvcmF0X2ludCIsIm9fdG9yYXRfbW9uIiwib190b21vbmV5X3JhdCIsIm9fZ2V0RGF5Iiwib19nZXRNb250aCIsIm9fZ2V0WWVhciIsIm9fZmlyc3REYXlPZk1vbnRoIiwib19sYXN0RGF5T2ZNb250aCIsIm9fcm91bmRfbW9uIiwib19yb3VuZF9yYXQiLCJvX21pbnVzX2ludCQwIiwib19taW51c19yYXQkMCIsIm9fbWludXNfbW9uJDAiLCJvX21pbnVzX2R1ciQwIiwib19hbmQkMCIsIm9fb3IkMCIsIm9feG9yJDAiLCJvX2VxJDAiLCJvX21hcCQwIiwib19yZWR1Y2UkMCIsIm9fY29uY2F0JDAiLCJvX2ZpbHRlciQwIiwib19hZGRfaW50X2ludCQwIiwib19hZGRfcmF0X3JhdCQwIiwib19hZGRfbW9uX21vbiQwIiwib19hZGRfZGF0X2R1ciQwIiwib19hZGRfZHVyX2R1ciQwIiwib19zdWJfaW50X2ludCQwIiwib19zdWJfcmF0X3JhdCQwIiwib19zdWJfbW9uX21vbiQwIiwib19zdWJfZGF0X2RhdCQwIiwib19zdWJfZGF0X2R1ciQwIiwib19zdWJfZHVyX2R1ciQwIiwib19tdWx0X2ludF9pbnQkMCIsIm9fbXVsdF9yYXRfcmF0JDAiLCJvX211bHRfbW9uX3JhdCQwIiwib19tdWx0X2R1cl9pbnQkMCIsIm9fZGl2X2ludF9pbnQkMCIsIm9fZGl2X3JhdF9yYXQkMCIsIm9fZGl2X21vbl9tb24kMCIsIm9fZGl2X21vbl9yYXQkMCIsIm9fZGl2X2R1cl9kdXIkMCIsIm9fbHRfaW50X2ludCQwIiwib19sdF9yYXRfcmF0JDAiLCJvX2x0X21vbl9tb24kMCIsIm9fbHRfZHVyX2R1ciQwIiwib19sdF9kYXRfZGF0JDAiLCJvX2x0ZV9pbnRfaW50JDAiLCJvX2x0ZV9yYXRfcmF0JDAiLCJvX2x0ZV9tb25fbW9uJDAiLCJvX2x0ZV9kdXJfZHVyJDAiLCJvX2x0ZV9kYXRfZGF0JDAiLCJvX2d0X2ludF9pbnQkMCIsIm9fZ3RfcmF0X3JhdCQwIiwib19ndF9tb25fbW9uJDAiLCJvX2d0X2R1cl9kdXIkMCIsIm9fZ3RfZGF0X2RhdCQwIiwib19ndGVfaW50X2ludCQwIiwib19ndGVfcmF0X3JhdCQwIiwib19ndGVfbW9uX21vbiQwIiwib19ndGVfZHVyX2R1ciQwIiwib19ndGVfZGF0X2RhdCQwIiwib19lcV9pbnRfaW50JDAiLCJvX2VxX3JhdF9yYXQkMCIsIm9fZXFfbW9uX21vbiQwIiwib19lcV9kdXJfZHVyJDAiLCJvX2VxX2RhdF9kYXQkMCIsIm9fZm9sZCQwIiwidmVyc2lvbiIsImdpdF92ZXJzaW9uIiwicmFpc2UiLCJleG4iLCJtb2R1bGUiLCJnbG9iYWxUaGlzIiwic3ltYm9sIiwieCIsInkiLCJzeW1ib2wkMCIsInN5bWJvbCQxIiwic3ltYm9sJDIiLCJzeW1ib2wkMyIsInN5bWJvbCQ0IiwiY29tcGFyZSIsImVxdWFsIiwibWF4IiwibWluIiwiZXF1YWwkMCIsImVxdWFsJDEiLCJzeW1ib2wkNSIsInN5bWJvbCQ2Iiwic3ltYm9sJDciLCJzeW1ib2wkOCIsInN5bWJvbCQ5Iiwic3ltYm9sJDEwIiwiY29tcGFyZSQyIiwiZXF1YWwkMiIsIm1heCQwIiwibWluJDAiLCJnbG9iYWwiLCJub19oYW5kbGVyIiwibnVsbCIsInVuZGVmaW5lZCIsInJldHVybiQwIiwibWFwJDAiLCJmIiwiYmluZCIsInRlc3QiLCJpdGVyJDAiLCJjYXNlJDAiLCJnIiwiZ2V0Iiwib3B0aW9uIiwieCQwIiwidG9fb3B0aW9uIiwicmV0dXJuJDEiLCJtYXAkMSIsImJpbmQkMCIsInRlc3QkMCIsIml0ZXIkMSIsImNhc2UkMSIsImdldCQwIiwib3B0aW9uJDAiLCJ0b19vcHRpb24kMCIsImNvZXJjZSIsImNvZXJjZV9vcHQiLCJuZmMiLCJuZmQiLCJuZmtjIiwibmZrZCIsInN0cmluZ19jb25zdHIiLCJvYmplY3Rfa2V5cyIsImFycmF5X2xlbmd0aCIsImFycmF5X2dldCIsImFycmF5X3NldCIsImFycmF5X21hcCIsImEiLCJpZHgiLCJhcnJheV9tYXBpIiwic3RyX2FycmF5IiwibWF0Y2hfcmVzdWx0IiwibWF0aCIsImVycm9yX2NvbnN0ciIsIm5hbWUiLCJlIiwibWVzc2FnZSIsInN0YWNrIiwidG9fc3RyaW5nIiwicmFpc2VfanNfZXJyb3IiLCJzdHJpbmdfb2ZfZXJyb3IiLCJKU09OIiwiZGVjb2RlVVJJIiwicyIsImRlY29kZVVSSUNvbXBvbmVudCIsImVuY29kZVVSSSIsImVuY29kZVVSSUNvbXBvbmVudCIsImVzY2FwZSIsInVuZXNjYXBlIiwiaXNOYU4iLCJpIiwicGFyc2VJbnQiLCJzJDAiLCJwYXJzZUZsb2F0IiwiZXhwb3J0X2pzIiwiZmllbGQiLCJqc29vX2V4cG9ydHMiLCJleHBvcnQkMCIsImV4cG9ydF9hbGwiLCJvYmoiLCJrZXkiLCJsaXN0X29mX25vZGVMaXN0Iiwibm9kZUxpc3QiLCJsZW5ndGgiLCJhY2MiLCJpJDAiLCJhY2MkMCIsImkkMSIsImRpc2Nvbm5lY3RlZCIsInByZWNlZGluZyIsImZvbGxvd2luZyIsImNvbnRhaW5zJDAiLCJjb250YWluZWRfYnkiLCJpbXBsZW1lbnRhdGlvbl9zcGVjaWZpYyIsImhhcyIsInQiLCJtYXNrIiwiYWRkIiwiYXBwZW5kQ2hpbGQiLCJwIiwibiIsInJlbW92ZUNoaWxkIiwicmVwbGFjZUNoaWxkIiwibyIsImluc2VydEJlZm9yZSIsIm5vZGVUeXBlIiwiY2FzdCIsImVsZW1lbnQiLCJ0ZXh0IiwiYXR0ciIsImhhbmRsZXIiLCJyZXMiLCJldmVudCIsImZ1bGxfaGFuZGxlciIsInRoaXMkMCIsImludm9rZV9oYW5kbGVyIiwiZXZlbnRUYXJnZXQiLCJtYWtlJDAiLCJhZGRFdmVudExpc3RlbmVyV2l0aE9wdGlvbnMiLCJjYXB0dXJlIiwib25jZSIsInBhc3NpdmUiLCJpdGVyIiwiYiIsImFkZEV2ZW50TGlzdGVuZXIiLCJ0eXAiLCJoIiwiY2FwdCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJpZCIsInByZXZlbnREZWZhdWx0IiwiY3JlYXRlQ3VzdG9tRXZlbnQiLCJidWJibGVzIiwiY2FuY2VsYWJsZSIsImRldGFpbCIsIm9wdF9pdGVyIiwiYXJyYXlCdWZmZXIiLCJpbnQ4QXJyYXlfaW5CdWZmZXIiLCJpbnQxNkFycmF5X2luQnVmZmVyIiwidWludDE2QXJyYXlfaW5CdWZmZXIiLCJpbnQzMkFycmF5X2luQnVmZmVyIiwidWludDMyQXJyYXlfaW5CdWZmZXIiLCJmbG9hdDMyQXJyYXlfaW5CdWZmZXIiLCJmbG9hdDY0QXJyYXlfaW5CdWZmZXIiLCJzZXQiLCJnZXQkMSIsInVuc2FmZV9nZXQiLCJkYXRhVmlldyIsIm9mX2FycmF5QnVmZmVyIiwiYWIiLCJ1aW50OCIsImZpbHRlcl9tYXAiLCJxIiwidiIsInYkMCIsImJsb2JfcmF3IiwiY29udGVudFR5cGUiLCJlbmRpbmdzIiwib3B0aW9ucyIsIm9wdGlvbnMkMCIsImJsb2JfZnJvbV9zdHJpbmciLCJibG9iX2Zyb21fYW55IiwibCIsImEkMCIsImwkMCIsImZpbGVuYW1lIiwiZmlsZSIsIm5hbWUkMCIsImRvY19jb25zdHIiLCJkb2N1bWVudCIsImJsb2IiLCJzdHJpbmciLCJhcnJheUJ1ZmZlciQwIiwibG9hZHN0YXJ0IiwicHJvZ3Jlc3MiLCJhYm9ydCIsImVycm9yIiwibG9hZCIsImxvYWRlbmQiLCJmaWxlUmVhZGVyIiwib25JRSIsImNsaWNrIiwiY29weSQwIiwiY3V0IiwicGFzdGUiLCJkYmxjbGljayIsIm1vdXNlZG93biIsIm1vdXNldXAiLCJtb3VzZW92ZXIiLCJtb3VzZW1vdmUiLCJtb3VzZW91dCIsImtleXByZXNzIiwia2V5ZG93biIsImtleXVwIiwibW91c2V3aGVlbCIsIndoZWVsIiwiRE9NTW91c2VTY3JvbGwiLCJ0b3VjaHN0YXJ0IiwidG91Y2htb3ZlIiwidG91Y2hlbmQiLCJ0b3VjaGNhbmNlbCIsImRyYWdzdGFydCIsImRyYWdlbmQiLCJkcmFnZW50ZXIiLCJkcmFnb3ZlciIsImRyYWdsZWF2ZSIsImRyYWciLCJkcm9wIiwiaGFzaGNoYW5nZSIsImNoYW5nZSIsImlucHV0IiwidGltZXVwZGF0ZSIsInN1Ym1pdCIsInNjcm9sbCIsImZvY3VzIiwiYmx1ciIsImxvYWQkMCIsInVubG9hZCIsImJlZm9yZXVubG9hZCIsInJlc2l6ZSIsIm9yaWVudGF0aW9uY2hhbmdlIiwicG9wc3RhdGUiLCJlcnJvciQwIiwiYWJvcnQkMCIsInNlbGVjdCIsIm9ubGluZSIsIm9mZmxpbmUiLCJjaGVja2luZyIsIm5vdXBkYXRlIiwiZG93bmxvYWRpbmciLCJwcm9ncmVzcyQwIiwidXBkYXRlcmVhZHkiLCJjYWNoZWQiLCJvYnNvbGV0ZSIsImRvbUNvbnRlbnRMb2FkZWQiLCJhbmltYXRpb25zdGFydCIsImFuaW1hdGlvbmVuZCIsImFuaW1hdGlvbml0ZXJhdGlvbiIsImFuaW1hdGlvbmNhbmNlbCIsInRyYW5zaXRpb25ydW4iLCJ0cmFuc2l0aW9uc3RhcnQiLCJ0cmFuc2l0aW9uZW5kIiwidHJhbnNpdGlvbmNhbmNlbCIsImNhbnBsYXkiLCJjYW5wbGF5dGhyb3VnaCIsImR1cmF0aW9uY2hhbmdlIiwiZW1wdGllZCIsImVuZGVkIiwiZ290cG9pbnRlcmNhcHR1cmUiLCJsb2FkZWRkYXRhIiwibG9hZGVkbWV0YWRhdGEiLCJsb2Fkc3RhcnQkMCIsImxvc3Rwb2ludGVyY2FwdHVyZSIsIm1lc3NhZ2UkMCIsInBhdXNlIiwicGxheSIsInBsYXlpbmciLCJwb2ludGVyZW50ZXIiLCJwb2ludGVyY2FuY2VsIiwicG9pbnRlcmRvd24iLCJwb2ludGVybGVhdmUiLCJwb2ludGVybW92ZSIsInBvaW50ZXJvdXQiLCJwb2ludGVyb3ZlciIsInBvaW50ZXJ1cCIsInJhdGVjaGFuZ2UiLCJzZWVrZWQiLCJzZWVraW5nIiwic3RhbGxlZCIsInN1c3BlbmQiLCJ2b2x1bWVjaGFuZ2UiLCJ3YWl0aW5nIiwibWFrZSQxIiwiZCIsImxvY2F0aW9uX29yaWdpbiIsImxvYyIsImdldEVsZW1lbnRCeUlkIiwicG5vZGUiLCJnZXRFbGVtZW50QnlJZF9leG4iLCJnZXRFbGVtZW50QnlJZF9vcHQiLCJnZXRFbGVtZW50QnlJZF9jb2VyY2UiLCJjcmVhdGVFbGVtZW50IiwidW5zYWZlQ3JlYXRlRWxlbWVudCIsImRvYyIsImNyZWF0ZUVsZW1lbnRTeW50YXgiLCJ1bnNhZmVDcmVhdGVFbGVtZW50RXgiLCJ0eXBlIiwiZWx0IiwiZWwiLCJjcmVhdGVIdG1sIiwiY3JlYXRlSGVhZCIsImNyZWF0ZUxpbmsiLCJjcmVhdGVUaXRsZSIsImNyZWF0ZU1ldGEiLCJjcmVhdGVCYXNlIiwiY3JlYXRlU3R5bGUiLCJjcmVhdGVCb2R5IiwiY3JlYXRlRm9ybSIsImNyZWF0ZU9wdGdyb3VwIiwiY3JlYXRlT3B0aW9uIiwiY3JlYXRlU2VsZWN0IiwiY3JlYXRlSW5wdXQiLCJjcmVhdGVUZXh0YXJlYSIsImNyZWF0ZUJ1dHRvbiIsImNyZWF0ZUxhYmVsIiwiY3JlYXRlRmllbGRzZXQiLCJjcmVhdGVMZWdlbmQiLCJjcmVhdGVVbCIsImNyZWF0ZU9sIiwiY3JlYXRlRGwiLCJjcmVhdGVMaSIsImNyZWF0ZURpdiIsImNyZWF0ZUVtYmVkIiwiY3JlYXRlUCIsImNyZWF0ZUgxIiwiY3JlYXRlSDIiLCJjcmVhdGVIMyIsImNyZWF0ZUg0IiwiY3JlYXRlSDUiLCJjcmVhdGVINiIsImNyZWF0ZVEiLCJjcmVhdGVCbG9ja3F1b3RlIiwiY3JlYXRlUHJlIiwiY3JlYXRlQnIiLCJjcmVhdGVIciIsImNyZWF0ZUlucyIsImNyZWF0ZURlbCIsImNyZWF0ZUEiLCJjcmVhdGVJbWciLCJjcmVhdGVPYmplY3QiLCJjcmVhdGVQYXJhbSIsImNyZWF0ZU1hcCIsImNyZWF0ZUFyZWEiLCJjcmVhdGVTY3JpcHQiLCJjcmVhdGVUYWJsZSIsImNyZWF0ZUNhcHRpb24iLCJjcmVhdGVDb2wiLCJjcmVhdGVDb2xncm91cCIsImNyZWF0ZVRoZWFkIiwiY3JlYXRlVGZvb3QiLCJjcmVhdGVUYm9keSIsImNyZWF0ZVRyIiwiY3JlYXRlVGgiLCJjcmVhdGVUZCIsImNyZWF0ZVN1YiIsImNyZWF0ZVN1cCIsImNyZWF0ZVNwYW4iLCJjcmVhdGVUdCIsImNyZWF0ZUkiLCJjcmVhdGVCIiwiY3JlYXRlQmlnIiwiY3JlYXRlU21hbGwiLCJjcmVhdGVFbSIsImNyZWF0ZVN0cm9uZyIsImNyZWF0ZUNpdGUiLCJjcmVhdGVEZm4iLCJjcmVhdGVDb2RlIiwiY3JlYXRlU2FtcCIsImNyZWF0ZUtiZCIsImNyZWF0ZVZhciIsImNyZWF0ZUFiYnIiLCJjcmVhdGVEZCIsImNyZWF0ZUR0IiwiY3JlYXRlTm9zY3JpcHQiLCJjcmVhdGVBZGRyZXNzIiwiY3JlYXRlRnJhbWVzZXQiLCJjcmVhdGVGcmFtZSIsImNyZWF0ZUlmcmFtZSIsImNyZWF0ZUF1ZGlvIiwiY3JlYXRlVmlkZW8iLCJjcmVhdGVDYW52YXMiLCJodG1sX2VsZW1lbnQiLCJlbGVtZW50JDAiLCJ1bnNhZmVDb2VyY2UiLCJ0YWciLCJhcmVhIiwiYmFzZSIsImJsb2NrcXVvdGUiLCJib2R5IiwiYnIiLCJidXR0b24iLCJjYW52YXMiLCJjYXB0aW9uIiwiY29sIiwiY29sZ3JvdXAiLCJkZWwiLCJkaXYiLCJkbCIsImZpZWxkc2V0IiwiZW1iZWQiLCJmb3JtIiwiZnJhbWVzZXQiLCJmcmFtZSIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhlYWQiLCJociIsImh0bWwiLCJpZnJhbWUiLCJpbWciLCJpbnB1dCQwIiwiaW5zIiwibGFiZWwiLCJsZWdlbmQiLCJsaSIsImxpbmsiLCJtYXAkMiIsIm1ldGEiLCJvYmplY3QiLCJvbCIsIm9wdGdyb3VwIiwib3B0aW9uJDEiLCJwYXJhbSIsInByZSIsInNjcmlwdCIsInNlbGVjdCQwIiwic3R5bGUiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0ZXh0YXJlYSIsInRmb290IiwidGgiLCJ0aGVhZCIsInRpdGxlIiwidHIiLCJ1bCIsImF1ZGlvIiwidmlkZW8iLCJ1bnNhZmVDb2VyY2VFdmVudCIsImNvbnN0ciIsImV2IiwibW91c2VFdmVudCIsImtleWJvYXJkRXZlbnQiLCJ3aGVlbEV2ZW50IiwibW91c2VTY3JvbGxFdmVudCIsInBvcFN0YXRlRXZlbnQiLCJtZXNzYWdlRXZlbnQiLCJldmVudFJlbGF0ZWRUYXJnZXQiLCJldmVudEFic29sdXRlUG9zaXRpb24iLCJldmVudEFic29sdXRlUG9zaXRpb24kMCIsImVsZW1lbnRDbGllbnRQb3NpdGlvbiIsImdldERvY3VtZW50U2Nyb2xsIiwiYnV0dG9uUHJlc3NlZCIsImFkZE1vdXNld2hlZWxFdmVudExpc3RlbmVyV2l0aCIsImR4IiwiZHkiLCJhZGRNb3VzZXdoZWVsRXZlbnRMaXN0ZW5lciIsInRyeV9rZXlfY29kZV9sZWZ0IiwidHJ5X2tleV9jb2RlX3JpZ2h0IiwidHJ5X2tleV9jb2RlX251bXBhZCIsInRyeV9rZXlfY29kZV9ub3JtYWwiLCJtYWtlX3VuaWRlbnRpZmllZCIsInJ1bl9uZXh0IiwidmFsdWUiLCJzeW1ib2wkMTEiLCJvZl9ldmVudCIsImV2dCIsImNoYXJfb2ZfaW50IiwiZW1wdHlfc3RyaW5nIiwibm9uZSIsIm9mX2V2ZW50JDAiLCJlbGVtZW50JDEiLCJ0YWdnZWQiLCJvcHRfdGFnZ2VkIiwidGFnZ2VkRXZlbnQiLCJvcHRfdGFnZ2VkRXZlbnQiLCJzdG9wUHJvcGFnYXRpb24iLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJjIiwicmVxIiwiY2FsbGJhY2siLCJub3ciLCJsYXN0IiwiZHQiLCJkdCQwIiwiaGFzUHVzaFN0YXRlIiwiaGFzUGxhY2Vob2xkZXIiLCJoYXNSZXF1aXJlZCIsIm92ZXJmbG93X2xpbWl0Iiwic2V0VGltZW91dCIsImxvb3AiLCJzdGVwIiwicmVtYWluIiwic3RlcCQwIiwiY2IiLCJjbGVhclRpbWVvdXQiLCJqc19hcnJheV9vZl9jb2xsZWN0aW9uIiwiZm9ybURhdGEiLCJmb3JtRGF0YV9mb3JtIiwiZmlsdGVyX21hcCQwIiwiaGF2ZV9jb250ZW50IiwiZm9ybV9lbGVtZW50cyIsImkkMiIsInYkMiIsInN0aCIsIm5hbWUkMSIsImxpc3QiLCJ2JDEiLCJhcHBlbmQiLCJmb3JtX2NvbnRlbnRzIiwiZm9ybV9lbHQiLCJlbXB0eV9mb3JtX2NvbnRlbnRzIiwicG9zdF9mb3JtX2NvbnRlbnRzIiwiY29udGVudHMiLCJnZXRfZm9ybV9jb250ZW50cyIsInJlYWR5c3RhdGVjaGFuZ2UiLCJsb2Fkc3RhcnQkMSIsInByb2dyZXNzJDEiLCJhYm9ydCQxIiwiZXJyb3IkMSIsImxvYWQkMSIsInRpbWVvdXQiLCJsb2FkZW5kJDAiLCJjcmVhdGUiLCJpbXBvcnRfc2NyaXB0cyIsInNjcmlwdHMiLCJzZXRfb25tZXNzYWdlIiwianNfaGFuZGxlciIsInBvc3RfbWVzc2FnZSIsIndlYlNvY2tldCIsImlzX3N1cHBvcnRlZCIsImRlZmF1bHRDb250ZXh0QXR0cmlidXRlcyIsIndlYmdsY29udGV4dGxvc3QiLCJ3ZWJnbGNvbnRleHRyZXN0b3JlZCIsIndlYmdsY29udGV4dGNyZWF0aW9uZXJyb3IiLCJnZXRDb250ZXh0IiwiY3R4IiwiZ2V0Q29udGV4dFdpdGhBdHRyaWJ1dGVzIiwicmVnZXhwIiwicmVnZXhwX2Nhc2VfZm9sZCIsInJlZ2V4cF93aXRoX2ZsYWciLCJibHVudF9zdHJfYXJyYXlfZ2V0Iiwic3RyaW5nX21hdGNoIiwiciIsInNlYXJjaF9mb3J3YXJkIiwibWF0Y2hlZF9zdHJpbmciLCJtYXRjaGVkX2dyb3VwIiwicXVvdGVfcmVwbCIsImdsb2JhbF9yZXBsYWNlIiwic19ieSIsInJlcGxhY2VfZmlyc3QiLCJmbGFncyIsImxpc3Rfb2ZfanNfYXJyYXkiLCJpZHgkMSIsImFjY3UiLCJpZHgkMCIsImFjY3UkMCIsInNwbGl0IiwiYm91bmRlZF9zcGxpdCIsInF1b3RlIiwicmVnZXhwX3N0cmluZyIsInJlZ2V4cF9zdHJpbmdfY2FzZV9mb2xkIiwiaW50ZXJydXB0IiwicGx1c19yZSIsInVybGRlY29kZV9qc19zdHJpbmdfc3RyaW5nIiwidXJsZGVjb2RlIiwidXJsZW5jb2RlIiwib3B0Iiwid2l0aF9wbHVzIiwiZGVmYXVsdF9odHRwX3BvcnQiLCJkZWZhdWx0X2h0dHBzX3BvcnQiLCJwYXRoX29mX3BhdGhfc3RyaW5nIiwiYXV4IiwiaiIsIndvcmQiLCJlbmNvZGVfYXJndW1lbnRzIiwiZGVjb2RlX2FyZ3VtZW50c19qc19zdHJpbmciLCJsZW4iLCJkZWNvZGVfYXJndW1lbnRzIiwidXJsX29mX2pzX3N0cmluZyIsInByb3Rfc3RyaW5nIiwic3NsIiwicGF0aF9zdHIiLCJ1cmwiLCJ1cmxfb2Zfc3RyaW5nIiwic3RyaW5nX29mX3VybCIsImZyYWciLCJhcmdzIiwicGF0aCIsInBvcnQiLCJob3N0IiwiZnJhZyQwIiwiYXJncyQwIiwicGF0aCQwIiwicG9ydCQwIiwiaG9zdCQwIiwiZnJhZyQxIiwiYXJncyQxIiwicGF0aCQxIiwicHJvdG9jb2wiLCJwYXRoX3N0cmluZyIsImFyZ3VtZW50cyQwIiwiZ2V0X2ZyYWdtZW50Iiwic2V0X2ZyYWdtZW50IiwiZ2V0JDIiLCJzZXQkMCIsInUiLCJhc19zdHJpbmciLCJ1cGRhdGVfZmlsZSIsImNvbnRlbnQiLCJvYyIsInNldF9jaGFubmVsX2ZsdXNoZXIiLCJvdXRfY2hhbm5lbCIsImYkMCIsInNldF9jaGFubmVsX2ZpbGxlciIsImluX2NoYW5uZWwiLCJtb3VudCIsInByZWZpeCIsInVubW91bnQiLCJqc19vZl9vY2FtbF92ZXJzaW9uIiwiZW1wdHlfcmVzaXplX29ic2VydmVyX29wdGlvbnMiLCJpc19zdXBwb3J0ZWQkMCIsIm9ic2VydmUiLCJub2RlIiwiYm94IiwiYm94JDAiLCJpc19zdXBwb3J0ZWQkMSIsIm9ic2VydmUkMCIsImVudHJ5X3R5cGVzIiwiZW1wdHlfbXV0YXRpb25fb2JzZXJ2ZXJfaW5pdCIsImlzX3N1cHBvcnRlZCQyIiwib2JzZXJ2ZSQxIiwiY2hpbGRfbGlzdCIsImF0dHJpYnV0ZXMiLCJjaGFyYWN0ZXJfZGF0YSIsInN1YnRyZWUiLCJhdHRyaWJ1dGVfb2xkX3ZhbHVlIiwiY2hhcmFjdGVyX2RhdGFfb2xkX3ZhbHVlIiwiYXR0cmlidXRlX2ZpbHRlciIsImNyZWF0ZSQwIiwiYWRkJDAiLCJrIiwicmVtb3ZlIiwiZmluZCIsImtleXMiLCJyZXZpdmVyIiwidW5zYWZlX2lucHV0IiwibWxJbnQ2NF9jb25zdHIiLCJvdXRwdXQiLCJzdHJpbmdfb2ZfbmFtZSIsIm5hbWVfb2Zfc3RyaW5nIiwicmdiX29mX25hbWUiLCJyZ2IiLCJoc2wiLCJzdHJpbmdfb2ZfdCIsImIkMCIsImckMCIsInIkMCIsImIkMSIsImckMSIsInIkMSIsImIkMiIsImckMiIsInIkMiIsImEkMSIsImgkMCIsImhleF9vZl9yZ2IiLCJibHVlIiwiZ3JlZW4iLCJyZWQiLCJpbl9yYW5nZSIsImpzX3Rfb2ZfanNfc3RyaW5nIiwianMiLCJtbCIsImZhaWwiLCJyZV9yZ2IiLCJyZV9yZ2JfcGN0IiwicmVfaHNsIiwiaV9vZl9zX28iLCJmX29mX3MiLCJhbHBoYSIsInJlZCQwIiwiZ3JlZW4kMCIsImJsdWUkMCIsImFscGhhJDAiLCJyZWQkMSIsImdyZWVuJDEiLCJibHVlJDEiLCJhbHBoYSQxIiwic3RyaW5nX29mX3QkMCIsImYkMSIsImYkMiIsImYkMyIsImYkNCIsImYkNSIsImYkNiIsImYkNyIsImYkOCIsImYkOSIsImYkMTAiLCJmJDExIiwiZiQxMiIsImpzJDAiLCJtbCQwIiwicmUiLCJzdHJpbmdfb2ZfdCQxIiwianMkMSIsIm1sJDEiLCJsaXN0ZW4iLCJ0YXJnZXQiLCJjcmVhdGVFbGVtZW50JDAiLCJ1bnNhZmVDcmVhdGVFbGVtZW50JDAiLCJjcmVhdGVBJDAiLCJjcmVhdGVBbHRHbHlwaCIsImNyZWF0ZUFsdEdseXBoRGVmIiwiY3JlYXRlQWx0R2x5cGhJdGVtIiwiY3JlYXRlQW5pbWF0ZSIsImNyZWF0ZUFuaW1hdGVDb2xvciIsImNyZWF0ZUFuaW1hdGVNb3Rpb24iLCJjcmVhdGVBbmltYXRlVHJhbnNmb3JtIiwiY3JlYXRlQ2lyY2xlIiwiY3JlYXRlQ2xpcFBhdGgiLCJjcmVhdGVDdXJzb3IiLCJjcmVhdGVEZWZzIiwiY3JlYXRlRGVzYyIsImNyZWF0ZUVsbGlwc2UiLCJjcmVhdGVGaWx0ZXIiLCJjcmVhdGVGb250IiwiY3JlYXRlRm9udEZhY2UiLCJjcmVhdGVGb250RmFjZUZvcm1hdCIsImNyZWF0ZUZvbnRGYWNlTmFtZSIsImNyZWF0ZUZvbnRGYWNlU3JjIiwiY3JlYXRlRm9udEZhY2VVcmkiLCJjcmVhdGVGb3JlaWduT2JqZWN0IiwiY3JlYXRlRyIsImNyZWF0ZUdseXBoIiwiY3JlYXRlR2x5cGhSZWYiLCJjcmVhdGVoa2VybiIsImNyZWF0ZUltYWdlIiwiY3JlYXRlTGluZUVsZW1lbnQiLCJjcmVhdGVMaW5lYXJFbGVtZW50IiwiY3JlYXRlTWFzayIsImNyZWF0ZU1ldGFEYXRhIiwiY3JlYXRlTWlzc2luZ0dseXBoIiwiY3JlYXRlTVBhdGgiLCJjcmVhdGVQYXRoIiwiY3JlYXRlUGF0dGVybiIsImNyZWF0ZVBvbHlnb24iLCJjcmVhdGVQb2x5bGluZSIsImNyZWF0ZVJhZGlhbGdyYWRpZW50IiwiY3JlYXRlUmVjdCIsImNyZWF0ZVNjcmlwdCQwIiwiY3JlYXRlU2V0IiwiY3JlYXRlU3RvcCIsImNyZWF0ZVN0eWxlJDAiLCJjcmVhdGVTdmciLCJjcmVhdGVTd2l0Y2giLCJjcmVhdGVTeW1ib2wiLCJjcmVhdGVUZXh0RWxlbWVudCIsImNyZWF0ZVRleHRwYXRoIiwiY3JlYXRlVGl0bGUkMCIsImNyZWF0ZVRyZWYiLCJjcmVhdGVUc3BhbiIsImNyZWF0ZVVzZSIsImNyZWF0ZVZpZXciLCJjcmVhdGV2a2VybiIsInN2Z19lbGVtZW50IiwiZG9jdW1lbnQkMCIsImdldEVsZW1lbnRCeUlkJDAiLCJlbGVtZW50JDIiLCJ1bnNhZmVDb2VyY2UkMCIsImFsdEdseXBoIiwiYWx0R2x5cGhEZWYiLCJhbHRHbHlwaEl0ZW0iLCJhbmltYXRlIiwiYW5pbWF0ZUNvbG9yIiwiYW5pbWF0ZU1vdGlvbiIsImFuaW1hdGVUcmFuc2Zvcm0iLCJjaXJjbGUiLCJjbGlwUGF0aCIsImN1cnNvciIsImRlZnMiLCJkZXNjIiwiZWxsaXBzZSIsImZpbHRlciIsImZvbnQiLCJmb250RmFjZSIsImZvbnRGYWNlRm9ybWF0IiwiZm9udEZhY2VOYW1lIiwiZm9udEZhY2VTcmMiLCJmb250RmFjZVVyaSIsImZvcmVpZ25PYmplY3QiLCJnbHlwaCIsImdseXBoUmVmIiwiaGtlcm4iLCJpbWFnZSIsImxpbmVFbGVtZW50IiwibGluZWFyRWxlbWVudCIsIm1ldGFEYXRhIiwibWlzc2luZ0dseXBoIiwibVBhdGgiLCJwYXR0ZXJuIiwicG9seWdvbiIsInBvbHlsaW5lIiwicmFkaWFsZ3JhZGllbnQiLCJyZWN0Iiwic2NyaXB0JDAiLCJzZXQkMSIsInN0b3AiLCJzdHlsZSQwIiwic3ZnIiwic3dpdGNoJDAiLCJzeW1ib2wkMTIiLCJ0ZXh0RWxlbWVudCIsInRleHRwYXRoIiwidGl0bGUkMCIsInRyZWYiLCJ0c3BhbiIsInVzZSIsInZpZXciLCJ2a2VybiIsIndpdGhDcmVkZW50aWFscyIsImV2ZW50U291cmNlIiwiZXZlbnRTb3VyY2Vfb3B0aW9ucyIsImNvbnNvbGUiLCJlbXB0eV9wb3NpdGlvbl9vcHRpb25zIiwiZ2VvbG9jYXRpb24iLCJpc19zdXBwb3J0ZWQkMyIsImVtcHR5X2ludGVyc2VjdGlvbl9vYnNlcnZlcl9vcCIsImludGVyc2VjdGlvbk9ic2VydmVyX3Vuc2FmZSIsImlzX3N1cHBvcnRlZCQ0Iiwib2JqZWN0X29wdGlvbnMiLCJvcHRpb25zJDEiLCJvcHRpb25zJDIiLCJpbnRsIiwiY29sbGF0b3JfY29uc3RyIiwiZGF0ZVRpbWVGb3JtYXRfY29uc3RyIiwibnVtYmVyRm9ybWF0X2NvbnN0ciIsInBsdXJhbFJ1bGVzX2NvbnN0ciIsImlzX3N1cHBvcnRlZCQ1IiwiZHVyYXRpb25fb2ZfanNvbyIsImQiLCJkdXJhdGlvbl90b19qc29vIiwiZGF5cyIsIm1vbnRocyIsInllYXJzIiwiZGF0ZV9vZl9qc29vIiwiZCQwIiwiZCQxIiwiZGF5IiwibW9udGgiLCJ5ZWFyIiwiZGF0ZV90b19qc29vIiwiZXZ0IiwicG9zIiwidiIsImluZm8iLCJldmVudCIsImV2ZW50X21hbmFnZXIiLCJleGVjdXRlX29yX3Rocm93X2Vycm9yIiwiZiIsInRocm93X2Vycm9yIiwiZGVzY3IiLCJwb3MkMCIsInBvcyQxIiwiZW1iZWRfcHJpc2VfZW5fY2hhcmdlIiwieCIsIngkMCIsIngkMSIsIngkMiIsIngkMyIsIngkNCIsImVtYmVkX3NpdHVhdGlvbl9vYmxpZ2F0aW9uX3NjbyIsImVtYmVkX3ByaXNlX2VuX2NvbXB0ZSIsImVtYmVkX3ZlcnNlbWVudF9hbGxvY2F0aW9ucyIsImVtYmVkX2VsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaSIsIngkNSIsIngkNiIsIngkNyIsImVtYmVkX2NvbGxlY3Rpdml0ZSIsIngkOCIsImVtYmVkX2FsbG9jYXRpb25fZmFtaWxpYWxlc19hdiIsImVtYmVkX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMiLCJlbWJlZF92ZXJpZmljYXRpb25fYWdlX2luZmVyaWUiLCJlbWJlZF92ZXJpZmljYXRpb25fYWdlX3N1cGVyaWUiLCJlbWJlZF9zbWljIiwiZW1iZWRfYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvIiwiZW1iZWRfaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhIiwiZW1iZWRfZW5mYW50X2VudHJlZSIsImVtYmVkX2VuZmFudCIsImVtYmVkX2VuZmFudF9sZV9wbHVzX2FnZSIsImVtYmVkX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMiLCJlbWJlZF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2kiLCJlbWJlZF9hbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXYkMCIsImVtYmVkX2VuZmFudF9sZV9wbHVzX2FnZV9pbiIsImVtYmVkX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaSIsImVtYmVkX3ZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZSQwIiwiZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmllJDAiLCJlbWJlZF9zbWljX2luIiwiZW1iZWRfYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvJDAiLCJlbWJlZF9pbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmEkMCIsImFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMCIsImFnZV9taW5pbXVtX2FsaW5lYV8xX2w1MjFfMyIsImVuZmFudF9sZV9wbHVzX2FnZSIsImVuZmFudF9sZV9wbHVzX2FnZV9pbiIsImVuZmFudHMiLCJwb3RlbnRpZWxfcGx1c19hZ2VfMSIsInBvdGVudGllbF9wbHVzX2FnZV8yIiwibGVfcGx1c19hZ2UiLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8iLCJkYXRlX25haXNzYW5jZSIsImRhdGVfY291cmFudGUiLCJhbm5lZXMiLCJlc3RfaW5mZXJpZXVyX291X2VnYWwiLCJ2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hIiwidmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pIiwiZXN0X3N1cGVyaWV1ciIsInNtaWMiLCJzbWljX2luIiwicmVzaWRlbmNlIiwiYnJ1dF9ob3JhaXJlIiwiYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtIiwibW9udGFudCIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXMiLCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luIiwiYWdlX2w1MTJfM18yIiwic21pY19kb3RfZGF0ZV9jb3VyYW50ZSIsInNtaWNfZG90X3Jlc2lkZW5jZSIsInJlc3VsdCIsInNtaWNfZG90X2JydXRfaG9yYWlyZSIsInJlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xIiwicGxhZm9uZF9sNTEyXzNfMiIsImVuZmFudCIsImNvbmRpdGlvbnNfaG9yc19hZ2UiLCJkcm9pdF9vdXZlcnQiLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiIsInBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybSIsInBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybSQwIiwicmVzc291cmNlc19tZW5hZ2UiLCJlbmZhbnRzX2FfY2hhcmdlIiwiYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlIiwicHJpc2VfZW5fY29tcHRlIiwibm9tYnJlX2VuZmFudHNfYWxpbmVhXzJfbDUyMV8zIiwidmVyc2lvbl9hdnJpbF8yMDA4X2RvdF9hZ2VfbWluIiwiYm1hZl9kb3RfZGF0ZV9jb3VyYW50ZSIsInJlc3VsdCQwIiwiYm1hZl9kb3RfbW9udGFudCIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2RhdCIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3ByZSIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3JlcyIsInJlc3VsdCQxIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfZHJvIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfY29uIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfYWdlIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVnIiwiZW5mYW50X2xlX3BsdXNfYWdlX2RvdF9lbmZhbnRzIiwicmVzdWx0JDIiLCJlbmZhbnRfbGVfcGx1c19hZ2VfZG90X2xlX3BsdXMiLCJlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF8iLCJlc3RfZW5mYW50X2xlX3BsdXNfYWdlIiwicGxhZm9uZF9pX2lfZDUyMV8zIiwicGxhZm9uZF9pX2Q1MjFfMyIsImRyb2l0X291dmVydF9jb21wbGVtZW50IiwiZHJvaXRfb3V2ZXJ0X2ZvcmZhaXRhaXJlIiwibW9udGFudF9pbml0aWFsX2Jhc2VfcXVhdHJpZW1lIiwibW9udGFudF9pbml0aWFsX2Jhc2VfdHJvaXNpZW1lIiwibm9tYnJlX3RvdGFsX2VuZmFudHMiLCJzdW0xIiwic3VtMiIsIm5vbWJyZV9tb3llbl9lbmZhbnRzIiwibW9udGFudF9pbml0aWFsX2Jhc2VfcHJlbWllcl9lIiwiZHJvaXRfb3V2ZXJ0X2Jhc2UiLCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvbiIsImFsbG9jYXRpb24iLCJjb21wbGVtZW50X2RlZ3Jlc3NpZiIsIm1vbnRhbnRfdmVyc2VfZm9yZmFpdGFpcmVfcGFyXyIsIm1vbnRhbnRfaW5pdGlhbF9iYXNlX3Ryb2lzaWVtZSQwIiwibW9udGFudF9pbml0aWFsX2Jhc2VfZGV1eGllbWVfIiwicmFwcG9ydF9lbmZhbnRzX3RvdGFsX21veWVuIiwibW9udGFudF9pbml0aWFsX21ldHJvcG9sZV9tYWpvIiwibW9udGFudF92ZXJzZV9mb3JmYWl0YWlyZSIsIm1vbnRhbnRfaW5pdGlhbF9iYXNlIiwibW9udGFudF9pbml0aWFsX21ham9yYXRpb24iLCJtb250YW50X3ZlcnNlX2NvbXBsZW1lbnRfcG91cl8iLCJtb250YW50X2F2ZWNfZ2FyZGVfYWx0ZXJuZWVfYmEiLCJtb250YW50X2F2ZWNfZ2FyZGVfYWx0ZXJuZWVfbWEiLCJtb250YW50X3ZlcnNlX2Jhc2UiLCJtb250YW50X3ZlcnNlX21ham9yYXRpb24iLCJtb250YW50X2Jhc2VfY29tcGxlbWVudF9wb3VyX2IiLCJtb250YW50X3ZlcnNlX2NvbXBsZW1lbnRfcG91cl8kMCIsIm1vbnRhbnRfdmVyc2UiLCJpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWwiLCJpX2RhdGVfY291cmFudGUiLCJpX2VuZmFudHMiLCJpX3Jlc3NvdXJjZXNfbWVuYWdlIiwiaV9yZXNpZGVuY2UiLCJpX3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGUiLCJpX3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGUkMCIsImlfYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XyIsImFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X3BlciIsImFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X3BlciQwIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVzIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVzJDAiLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9kYXQiLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9lbmYiLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9hdmEiLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9tb24iLCJpX21vbnRhbnRfdmVyc2UiLCJwcmlzZV9lbl9jaGFyZ2VfdG9fanNvbyIsImFyZyIsImFyZyQwIiwiYXJnJDEiLCJhcmckMiIsImFyZyQzIiwicHJpc2VfZW5fY2hhcmdlX29mX2pzb28iLCJwcmlzZV9lbl9jaGFyZ2UiLCJjb25zIiwic2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmVfIiwic2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmVfJDAiLCJzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZSIsInByaXNlX2VuX2NvbXB0ZV90b19qc29vIiwicHJpc2VfZW5fY29tcHRlX29mX2pzb28iLCJ2ZXJzZW1lbnRfYWxsb2NhdGlvbnNfdG9fanNvbyIsInZlcnNlbWVudF9hbGxvY2F0aW9uc19vZl9qc29vIiwidmVyc2VtZW50X2FsbG9jYXRpb25zIiwiZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIiwiYXJnJDQiLCJhcmckNSIsImFyZyQ2IiwiZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzJDAiLCJjb2xsZWN0aXZpdGVfdG9fanNvbyIsImFyZyQ3IiwiY29sbGVjdGl2aXRlX29mX2pzb28iLCJjb2xsZWN0aXZpdGUiLCJhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDAkMCIsImFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMCQxIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc190b19qc29vIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vIiwidmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfJDAiLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8kMSIsInZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfdCIsInZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfbyIsInNtaWNfdG9fanNvbyIsInNtaWNfb2ZfanNvbyIsImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbSQwIiwiYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtJDEiLCJpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWwkMCIsImludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbCQxIiwiZW5mYW50X2VudHJlZV90b19qc29vIiwiZW5mYW50X2VudHJlZSIsImVuZmFudF9lbnRyZWVfb2ZfanNvbyIsImVuZmFudF90b19qc29vIiwiZW5mYW50X29mX2pzb28iLCJlbmZhbnRfbGVfcGx1c19hZ2VfdG9fanNvbyIsImVuZmFudF9sZV9wbHVzX2FnZV9vZl9qc29vIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc190b19qc29vIiwiZnVuY3Rpb25faW5wdXQwIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbl90b19qIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbl9vZl9qIiwiYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwJDIiLCJhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDAkMyIsImVuZmFudF9sZV9wbHVzX2FnZV9pbl90b19qc29vIiwiZW5mYW50X2xlX3BsdXNfYWdlX2luX29mX2pzb28iLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX3RvX2oiLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX29mX2oiLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8kMiIsInZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291XyQzIiwidmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pJDAiLCJzbWljX2luX3RvX2pzb28iLCJzbWljX2luX29mX2pzb28iLCJiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW0kMiIsImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbSQzIiwiaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsJDIiLCJpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWwkMyIsImFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMCQ0IiwiZW5mYW50X2xlX3BsdXNfYWdlJDAiLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8kNCIsInZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EkMCIsInNtaWMkMCIsImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbSQ0IiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlcyQwIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyQwIiwiaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsJDQiLCJlbWJlZF90eXBlX3ByZXQiLCJlbWJlZF90aXR1bGFpcmVfcHJldCIsImVtYmVkX3R5cGVfdHJhdmF1eF9sb2dlbWVudF9kOCIsImVtYmVkX3R5cGVfdHJhdmF1eF9sb2dlbWVudF9yOCIsImVtYmVkX2FtZWxpb3JlX3Bhcl9vY2N1cGFudCIsImVtYmVkX2xpbWl0ZV90cmFuY2hlIiwiZW1iZWRfbGltaXRlX3RyYW5jaGVfZGVjaW1hbCIsImVtYmVkX3ByZXN0YXRpb25fcmVjdWUiLCJlbWJlZF9wYXJlbnRfb3VfYXV0cmUiLCJlbWJlZF9zaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWUiLCJlbWJlZF9wYXJlbnRlIiwiZW1iZWRfZGF0ZV9kZV9uYWlzc2FuY2Vfb3VfbW9pIiwiZW1iZWRfem9uZV9kX2hhYml0YXRpb24iLCJlbWJlZF9wYWllbWVudF9sb2dlbWVudF9kaXN0aW4iLCJlbWJlZF92ZXJzZW1lbnRfYSIsImVtYmVkX2RlcGVuc2VfbG9nZW1lbnQiLCJlbWJlZF9tb2RlX29jY3VwYXRpb25faW1wYXllIiwiZW1iZWRfdHlwZV9lbGlnaWJpbGl0ZV9hbGxvY2F0IiwiZW1iZWRfYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlIiwiZW1iZWRfdHlwZV9haWRlc19wZXJzb25uZWxsZV9sIiwiZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZSIsImVtYmVkX3ByaXNlX2VuX2NoYXJnZSQwIiwiZW1iZWRfdHlwZV9sb2dlbWVudF9mb3llciIsImVtYmVkX2NhdGVnb3JpZV9lcXVpdmFsZW5jZV9sbyIsImVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsYyIsImVtYmVkX2NvbGxlY3Rpdml0ZSQwIiwiZW1iZWRfcHJpc2VfZW5fY2hhcmdlX2VuZmFudCIsImVtYmVkX3NpdHVhdGlvbl9vYmxpZ2F0aW9uX3NjbyQwIiwiZW1iZWRfZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pJDAiLCJlbWJlZF9jb252ZW50aW9uX2JhaWxsZXVyX3NvY2kiLCJlbWJlZF9jb252ZW50aW9uX2Ffbl9oX2EiLCJlbWJlZF9wZXJzb25uZV9zb3VzX2xvY2F0aW9uIiwiZW1iZWRfcGF0cmltb2luZSIsImVtYmVkX2NvbmRpdGlvbnNfZXRyYW5nZXJzIiwiZW1iZWRfcGVyc29ubmVfdml2YW50X2hhYml0dWVsIiwiZW1iZWRfZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uIiwiZW1iZWRfZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtIiwiZW1iZWRfcmVzc291cmNlc19haWRlc19wZXJzb25uIiwiZW1iZWRfY29udHJpYnV0aW9uc19zb2NpYWxlc19hIiwiZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlIiwiZW1iZWRfY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyIiwiZW1iZWRfY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtIiwiZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlJDAiLCJlbWJlZF9jYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2UiLCJlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2UkMSIsImVtYmVkX3RyYWl0ZW1lbnRfZm9ybXVsZV9haWRlXyIsImVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZSQyIiwiZW1iZWRfaW5mb3NfY2hhbmdlbWVudF9sb2dlbWVuIiwiZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lIiwiZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lJDAiLCJlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWUkMSIsImVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZSQyIiwiZW1iZWRfb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0IiwiZW1iZWRfaW1wYXllX2RlcGVuc2VfbG9nZW1lbnQiLCJlbWJlZF9jYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2UiLCJlbWJlZF9jYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2UkMCIsImVtYmVkX2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpbyQxIiwiZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmllJDEiLCJlbWJlZF92ZXJpZmljYXRpb25fYWdlX3N1cGVyaWUkMSIsImVtYmVkX3NtaWMkMCIsImVtYmVkX25ldWZfb3VfYW5jaWVuIiwiZW1iZWRfdHJhbmNoZV9yZXZlbnUiLCJlbWJlZF90cmFuY2hlX3JldmVudV9kZWNpbWFsIiwiZW1iZWRfYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UiLCJlbWJlZF9kYXRlX25haXNzYW5jZV90cm9pc2llbWUiLCJlbWJlZF9lbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2wiLCJlbWJlZF9wcmV0IiwiZW1iZWRfbG9nZW1lbnRfZm95ZXIiLCJlbWJlZF9lbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWwiLCJlbWJlZF90eXBlX2JhaWxsZXVyIiwiZW1iZWRfbG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfIiwiZW1iZWRfbmF0aW9uYWxpdGUiLCJlbWJlZF9jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDIiLCJlbWJlZF9pbmZvcm1hdGlvbnNfcHJpbWVfZGVfZGUiLCJlbWJlZF9wcm9wcmlldGFpcmUiLCJlbWJlZF9lbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc18iLCJlbWJlZF9kZW1hbmRldXIiLCJlbWJlZF9lbmZhbnRfYV9jaGFyZ2UiLCJlbWJlZF9sb2NhdGlvbiIsImVtYmVkX3BlcnNvbm5lX2FfY2hhcmdlIiwiZW1iZWRfY2F0ZWdvcmllX2NhbGN1bF9hX3BfbCIsImVtYmVkX21vZGVfb2NjdXBhdGlvbiIsImVtYmVkX2VsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbiIsImVtYmVkX2xvZ2VtZW50IiwiZW1iZWRfbWVuYWdlIiwiZW1iZWRfZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29uJDAiLCJlbWJlZF9lbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm4kMCIsImVtYmVkX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbCQwIiwiZW1iZWRfZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtJDAiLCJlbWJlZF9yZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm4kMCIsImVtYmVkX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYSQwIiwiZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlJDMiLCJlbWJlZF9jYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXIkMCIsImVtYmVkX2NhbGN1bF9ub21icmVfcGFydF9sb2dlbSQwIiwiZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlJDQiLCJlbWJlZF9jYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2UkMCIsImVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZSQ1IiwiZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlJDYiLCJlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWUkMyIsImVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZSQ0IiwiZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lJDUiLCJlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWUkNiIsImVtYmVkX291dmVydHVyZV9kcm9pdHNfcmV0cmFpdCQwIiwiZW1iZWRfaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfIiwiZW1iZWRfY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlJDEiLCJlbWJlZF9jYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2UkMiIsImVtYmVkX2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpbyQyIiwiZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmllJDIiLCJlbWJlZF92ZXJpZmljYXRpb25fYWdlX3N1cGVyaWUkMiIsImVtYmVkX3NtaWNfaW4kMCIsImVtYmVkX2VsaWdpYmlsaXRlX3ByZXN0YXRpb25zXyQwIiwiY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wIiwiZXhvbmVyZV9jc2ciLCJ0YXV4X2NyZHMiLCJhaWRlX2ZpbmFsZSIsImNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbSIsInJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllcyIsImNvbmRpdGlvbl8yX2R1XzgzMl8yNSIsIm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjUiLCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4MzJfMjYiLCJ0cmFuY2hlc19yZXZlbnVzX2Q4MzJfMjYiLCJ0cmFuY2hlIiwidHJhbmNoZV9oYXV0IiwidHJhbmNoZXNfcmV2ZW51c19kODMyXzI2X211bHRpIiwicmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzJDAiLCJjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm8iLCJub21icmVfcGVyc29ubmVzX2FfY2hhcmdlIiwic2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsIiwibGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lIiwibl9ub21icmVfcGFydHNfZDgzMl8yNV9iYXNlIiwibl9ub21icmVfcGFydHNfZDgzMl8yNV9tYWpvcmF0IiwiY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fIiwibl9ub21icmVfcGFydHNfZDgzMl8xMSIsIm91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGUiLCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luIiwiZGF0ZV9uYWlzc2FuY2VfYXNzdXJlIiwiYWdlX291dmVydHVyZV9kcm9pdCIsImltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50IiwiaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW4iLCJtb2RlX29jY3VwYXRpb24iLCJhaWRlX3ZlcnNlZSIsIm1vbnRhbnRfYXBsIiwibW9udGFudF9jaGFyZ2VzIiwiZGVwZW5zZV9sb2dlbWVudCIsIm1vbnRhbnRfZGV0dGUiLCJtb2RlX29jY3VwYXRpb25faW1wYXllIiwiZGVwZW5zZV9sb2dlbWVudF9icnV0ZSIsInRvdGFsX2VjaGVhbmNlcyIsIm1lbnN1YWxpdGUiLCJsb3llciIsInRvdGFsIiwibW9udGFudF9sb3llciIsImRlcGVuc2VfbG9nZW1lbnRfbmV0dGUiLCJlY2hlYW5jZV9wcmV0X25ldHRlIiwibWVuc3VhbGl0ZV9uZXR0ZSIsImVjaGVhbmNlX3ByZXRfYnJ1dGUiLCJtZW5zdWFsaXRlX2JydXRlIiwibG95ZXJfbmV0IiwibG95ZXJfYnJ1dCIsInNldWlsX2ltcGF5ZV9kZXBlbnNlX2RlX2xvZ2VtZSIsIm1vbnRhbnRfaW1wYXllIiwiYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtJDUiLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8kNSIsInZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EkMSIsInNtaWMkMSIsImFycm9uZGlfY2VudGFpbmVfc3VwZXJpZXVyZSIsInRyYWl0ZW1lbnRfbnVsX3RvdXRfbGVfdGVtcHMiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UiLCJsb3llcl9wcmluY2lwYWxfYmFzZSIsImJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbiIsInpvbmUiLCJsb2dlbWVudF9lc3RfY2hhbWJyZSIsImFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZSIsInR5cGVfYWlkZSIsImNvbG9jYXRpb24iLCJyZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZSIsImxvZ2VtZW50X21ldWJsZV9kODQyXzIiLCJmcmFjdGlvbl9sODMyXzMiLCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4MjNfMTYiLCJjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9kYXQiLCJjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9tb24iLCJsaW1pdGUiLCJsb3llcl9yZWZlcmVuY2UiLCJtb250YW50X21pbmltYWxfYWlkZV9kODIzXzE2IiwibG95ZXJfcHJpbmNpcGFsX2F2ZWNfcmVkdWN0aW9uIiwidGF1eF9jb21wb3NpdGlvbl9mYW1pbGlhbGUiLCJtb250YW50JDAiLCJsaW1pdGUkMCIsIm1vbnRhbnQkMSIsImxpbWl0ZSQxIiwicGxhZm9uZF9sb3llcl9kODIzXzE2XzIiLCJtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfZDgiLCJhYmF0dGVtZW50X2ZvcmZhaXRhaXJlX2Q4MjNfMTciLCJwbGFmb25kX3N1cHByZXNzaW9uX2Q4MjNfMTYiLCJwbGFmb25kX2RlZ3Jlc3Npdml0ZV9kODIzXzE2IiwibG95ZXJfZWxpZ2libGUiLCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2RpbWludWUiLCJwYXJ0aWNpcGF0aW9uX21pbmltYWxlIiwicmFwcG9ydF9sb3llcnMiLCJhaWRlX2ZpbmFsZSQwIiwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0IiwidGF1eF9sb3llcl9lbGlnaWJsZV9mb3JtdWxlIiwiY3JkcyIsImFpZGVfZmluYWxlX21vaW5zX2NyZHNfYXJyb25kaSIsInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYiIsInRhdXhfbG95ZXJfZWxpZ2libGVfdGF1eF9hcnJvbiIsInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfcmVkdWN0aSIsInRhdXhfcHJpc2VfY29tcHRlX3Jlc3NvdXJjZXMiLCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21vbnRhbnQiLCJwYXJ0aWNpcGF0aW9uX3Jlc3NvdXJjZXMiLCJwYXJ0aWNpcGF0aW9uX3Jlc3NvdXJjZXMkMCIsInBhcnRpY2lwYXRpb25fcGVyc29ubmVsbGUiLCJhaWRlX2ZpbmFsZV9mb3JtdWxlIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDAiLCJ0eXBlX2xvZ2VtZW50X2ZveWVyIiwiZGF0ZV9jb252ZW50aW9ubmVtZW50IiwicmVkZXZhbmNlIiwibGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lJDAiLCJjb2VmZmljaWVudF9yX2Q4MzJfMjUiLCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4MzJfMjQiLCJtb250YW50X21pbmltYWxfYWlkZV9kODIzXzI0IiwiY29uZGl0aW9uXzJfZHVfODMyXzI1JDAiLCJwbGFmb25kX2VxdWl2YWxlbmNlX2xveWVyX2VsaWciLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9jb25kaXQiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9ub21icmUiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9zaXR1YXQiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9yZXNpZGUiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9saW1pdGEiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9uX25vbWIiLCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4MzJfMjciLCJjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMiLCJlcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZSIsIm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjUkMCIsImFsbG9jYXRpb25fbWVuc3VlbGxlIiwiZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzI3IiwiY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltJDAiLCJjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW0kMSIsImNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbSQyIiwiY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltJDMiLCJjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW0kNCIsImRlbm9taW5hdGV1ciIsImRlbm9taW5hdGV1ciQwIiwiY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4IiwiZGVwZW5zZV9uZXR0ZV9taW5pbWFsZSIsImFiYXR0ZW1lbnRfZGVwZW5zZV9uZXR0ZV9taW5pbSIsImVxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlIiwiY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4JDAiLCJhaWRlX2ZpbmFsZSQxIiwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9hYmF0dGVtIiwiY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4JDEiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMSIsIm1lbnN1YWxpdGVfcHJpbmNpcGFsZSIsInR5cGVfdHJhdmF1eF9sb2dlbWVudCIsImRhdGVfc2lnbmF0dXJlX3ByZXQiLCJsb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW4iLCJkYXRlX2VudHJlZV9sb2dlbWVudCIsImNvcHJvcHJpZXRlIiwic2l0dWF0aW9uX3I4MjJfMTFfMTNfMTciLCJ0eXBlX3ByZXQiLCJhbmNpZW5uZXRlX2xvZ2VtZW50IiwibW9udGFudF9mb3JmYWl0YWlyZV9kODMyXzEwIiwibW9udGFudF9taW5pbWFsX2FpZGVfZDgzMl8xMCIsImNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MyQwIiwibW9udGFudF9saW1pdGVfdHJhbmNoZXNfZDgzMl8xIiwidGF1eF90cmFuY2hlX2luZmVyaWV1cmVfZDgzMl8xIiwidGF1eF90cmFuY2hlX3N1cGVyaWV1cmVfZDgzMl8xIiwidGF1eF9mcmFuY3NfdmVyc19ldXJvcyIsImFtZWxpb3JlX3Bhcl9vY2N1cGFudCIsImNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MyQxIiwicmVzc291cmNlc19tZW5hZ2VfYXZlY19kODMyXzE4IiwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODMyIiwiZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzEwIiwicGxhZm9uZF9zaWduYXR1cmUiLCJwbGFmb25kX2VudHJlZSIsInBsYWZvbmRfbWVuc3VhbGl0ZV9kODMyXzEwXzNfYiIsInBsYWZvbmRfbWVuc3VhbGl0ZV9kODMyXzEwXzNfYyIsIm1vbnRhbnRfbGltaXRlX3RyYW5jaGVzX2Q4MzJfMSQwIiwibWVuc3VhbGl0ZV9taW5pbWFsZSIsIm1lbnN1YWxpdGVfZWxpZ2libGUiLCJyZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2wiLCJyZXNzb3VyY2VzX2RlbWFuZGV1ciIsInJlc3NvdXJjZXNfY29uam9pbnQiLCJwZXJzb25uZXNfdml2YW50X2hhYml0dWVsbGVtZW4iLCJkZW1hbmRldXJfZXhlcmNlX2FjdGl2aXRlX3JlbXUiLCJjb25qb2ludF9leGVyY2VfYWN0aXZpdGVfcmVtdW4iLCJwZXJzb25uZXNfYV9jaGFyZ2UiLCJzaXR1YXRpb25fZmFtaWxpYWxlIiwiY29uZGl0aW9uX2FnZV9ib3Vyc2VfZW5zZWlnbmVtIiwiZGVtYW5kZXVyX3BvdXJzdWl0X2Rlc19ldHVkZXMiLCJkYXRlX2RlbWFuZGVfb3VfcmVleGFtZW5fZHJvaXQiLCJwYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm8iLCJtb250YW50X2ZvcmZhaXRhaXJlX3JfODIyXzgiLCJtb250YW50X2ZvcmZhaXRhaXJlX3JfODIyXzciLCJwZXJzb25uZSIsInJlc3NvdXJjZXNfcGVyc29ubmVzX3ZpdmFudF9oYSIsImFiYXR0ZW1lbnQiLCJyZXNzb3VyY2VzX3ByaXNlc19lbl9jb21wdGUiLCJhY2MiLCJlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGkiLCJhZ2VfbDUxMl8zXzIkMCIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvYyIsImxveWVyX3ByaW5jaXBhbCIsImNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80IiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9sb3llcl9wIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9yZXNzb3VyIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9iZW5lZmljIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9kYXRlX2NvIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9ub21icmVfIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9zaXR1YXRpIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF96b25lIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9sb2dlbWVuIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9hZ2Vlc19vIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF90eXBlX2FpIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9jb2xvY2F0IiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9yZWR1Y3RpIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9sb2dlbWVuJDAiLCJjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3Jlc2lkZW4iLCJjYWxjdWxfYXBsX2xvY2F0aWZfZG90X2FpZGVfZmkiLCJjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3RyYWl0ZW0iLCJpbmZvcyIsInRyYWl0ZW1lbnRfYWlkZV9maW5hbGUiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3kiLCJjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfZDgiLCJtb250YW50X21pbmltYWxfYWlkZV9kODQyXzE1IiwibW9udGFudF9mb3JmYWl0YWlyZV9kODQyXzE1IiwibW9udGFudF9taW5pbWFsX2RlcGVuc2VfbmV0dGVfIiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfIiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfJDAiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kMSIsImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90XyQyIiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfJDMiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kNCIsImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90XyQ1IiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfJDYiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kNyIsImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90XyQ4IiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfJDkiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kMTAiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kMTEiLCJtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXMiLCJlcXVpdmFsZW5jZV9sb3llciIsImNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZSIsImxveWVyX21pbmltYWwiLCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2RlcGVuc2UiLCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX3JlZGV2YW4iLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2MiLCJyZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfYmEiLCJjaGFyZ2VzX21lbnN1ZWxsZXNfcHJldCIsIm9wZXJhdGlvbnNfbG9nZW1lbnRfZXZvbHV0aWZzXyIsIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml82IiwibW9udGFudF9taW5pbWFsX2FpZGVfZDg0Ml82IiwibW9udGFudF9mb3JmYWl0YWlyZV9kODQyXzExIiwibW9udGFudF9mb3JmYWl0YWlyZV9kODQyXzEyIiwiY29lZmZpY2llbnRfZDg0Ml8xMSIsImNvZWZmaWNpZW50X2Q4NDJfMTIiLCJjb25kaXRpb25fZDg0Ml8xMV8zIiwiZGF0ZV9jYWxjdWwiLCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDIiLCJzZXVpbF9taW5pbWFsX3Jlc3NvdXJjZXNfbWVuYWciLCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDIkMCIsInJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19zZSIsInBsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzYiLCJzZXVpbF9taW5pbWFsX2RlcGVuc2VfbmV0dGVfbWkiLCJkZXBlbnNlX25ldHRlX21pbmltYWxlJDAiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMiIsInJlc3NvdXJjZXNfbWVuYWdlX3NhbnNfYXJyb25kaSIsImxvY2F0aW9uIiwibG9nZW1lbnRmb3llciIsInByb3ByaWV0YWlyZSIsImxvY2F0aW9uJDAiLCJwcm9wcmlldGFpcmUkMCIsImNhdGVnb3JpZV9jYWxjdWxfYXBsIiwicmVzc291cmNlc19tZW5hZ2VfYXZlY19hcnJvbmRpIiwiYmFpbGxldXIiLCJwYXJhbTAiLCJ0cmFpdGVtZW50X2Zvcm11bGUiLCJ0cmFpdGVtZW50X2Zvcm11bGUkMCIsImxvZ2VtZW50X2ZveWVyIiwicmVzdWx0JDMiLCJyZXN1bHQkNCIsInRyYWl0ZW1lbnRfZm9ybXVsZSQxIiwic291c19jYWxjdWxfdHJhaXRlbWVudCIsImVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlXyIsIm1lbmFnZSIsImRlbWFuZGV1ciIsImNvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcCIsImNvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlIiwiZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jIiwicHJldCIsImRhdGVfZW50cmVlX3ZpZ3VldXJfZGlmZmVyZWVfYyQwIiwic2V1aWxfbDgyMl8zX3BhcnRzX3Byb3ByaWV0ZSIsInNldWlsX2w4MjJfM19wYXJ0c191c3VmcnVpdCIsInNldWlsX2w4MjJfNV9wYXRyaW1vaW5lIiwidXN1ZnJ1aXRfb3VfcHJvcHJpZXRlX2ZhbWlsbGUiLCJub21icmVfcGVyc29ubmVzX2xvZ2VtZW50Iiwic2VwdGllbWVfYWxpbmVhX2w4MjNfMV9hcHBsaWNhIiwiY29uZGl0aW9uX25vbl9vdXZlcnR1cmVfbDgyMl85IiwiY29uZGl0aW9uX25vbl9vdXZlcnR1cmVfbDgyMl84IiwiY29uZGl0aW9uX2xvZ2VtZW50X3Jlc2lkZW5jZV9wJDAiLCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2RvdF8iLCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2RvdF8kMCIsInBhdHJpbW9pbmVfdG90YWxfZGVtYW5kZXVyIiwiY29uZGl0aW9ucyIsImNvbmRpdGlvbl9uYXRpb25hbGl0ZSIsInBsYWZvbmRfaW5kaXZpZHVlbF9sODE1Xzlfc2VjdSIsImNvbmRpdGlvbl9sb2dlbWVudF9sb2NhdGlvbl90aSIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2FnZSQwIiwidXN1ZnJ1aXRfb3VfcHJvcHJpZXRlX2ZhbWlsbGUkMCIsInBhcnRzIiwicGFydHMkMCIsInBhcnRzJDEiLCJwYXJ0cyQyIiwiY29uZGl0aW9uX2xvZ2VtZW50X21vZGVfb2NjdXBhIiwiY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfbWluIiwiY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2UkMCIsImFnZV9sMTYxXzE3XzJfc2VjdSIsInByZXN0YXRpb24iLCJjb25kaXRpb25fb3V2ZXJ0dXJlX2w4MjJfMTBfcGUiLCJhZ2VfbDM1MV84XzFfc2VjdSIsImVsaWdpYmlsaXRlX2xvZ2VtZW50IiwicGVyc29ubmVfYV9jaGFyZ2UiLCJwYXJlbnQiLCJjb25kaXRpb25fMl9yODIzXzQiLCJlbGlnaWJpbGl0ZSIsInByaXNlX2VuX2NvbXB0ZV9wZXJzb25uZV9hX2NoYSIsInBlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fYyIsImNvZWZmIiwiY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlIiwibm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnQiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiIsImVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbSIsImluZm9ybWF0aW9ucyIsImRhdGVfZW1tZW5hZ2VtZW50IiwiZGVwZW5zZXNfanVzdGlmaWVlc19yZWVsbGVtZW50IiwiZGVsYWlfYXByZXNfZW1tZW5hZ2VtZW50X2w4MjNfIiwiY29uZGl0aW9uX3JhbmdfZW5mYW50IiwiZWxpZ2liaWxpdGVfYXBsX2RvdF9tZW5hZ2UiLCJlbGlnaWJpbGl0ZV9hcGxfZG90X2RlbWFuZGV1ciIsImVsaWdpYmlsaXRlX2FwbF9kb3RfZGF0ZV9jb3VyYSIsImVsaWdpYmlsaXRlX2FwbF9kb3RfY29uZGl0aW9uXyIsImVsaWdpYmlsaXRlX2FwbF9kb3RfY29uZGl0aW9uXyQwIiwiZWxpZ2liaWxpdGVfYXBsX2RvdF9kYXRlX2VudHJlIiwiZWxpZ2liaWxpdGVfYXBsX2RvdF9kYXRlX2NvdXJhJDAiLCJlbGlnaWJpbGl0ZV9hcGxfZG90X2VsaWdpYmlsaXQiLCJkYXRlX25haXNzYW5jZV9vdV9ncm9zc2Vzc2UiLCJjb25kaXRpb25fcGVyaW9kZV9kZW1lbmFnZW1lbnQiLCJwbGFmb25kX2Q4MjNfMjIiLCJtb250YW50X3ByaW1lX2RlbWVuYWdlbWVudCIsImVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbiIsImJlbmVmaWNpZV9haWRlX3BlcnNvbm5hbGlzZWVfbCIsImR1cmVlX2w4NDFfMV8zIiwibF84NDFfMV82X2FwcGxpY2FibGUiLCJsXzg0MV8xXzJfYXBwbGljYWJsZSIsImxfODQxXzFfMV9hcHBsaWNhYmxlIiwiY29uZGl0aW9uX2FjY2Vzc2lvbl9wcm9wcmlldGUiLCJlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9tZW5hZ2UiLCJlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9kZW1hbmQiLCJlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9kYXRlX2MiLCJlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9jb25kaXQiLCJlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9jb25kaXQkMCIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2RhdGVfZSIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2VsaWdpYiIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X25vbWJyZSIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvZWZmaSIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvbmRpdCQxIiwiZWxpZ2liaWxpdGVfZGlzcG9zaXRpb25zX2NvbW11IiwiZGF0ZV9tYXJpYWdlIiwiZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVuJDAiLCJkYXRlX2FjY29yZCIsImVsaWdpYmlsaXRlX2w4NDFfMiIsImVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZSIsImNhcmFjdGVyaXN0aXF1ZXNfcHJldF9sODMxXzFfMSIsImNhcmFjdGVyaXN0aXF1ZXNfcHJldF9sODMxXzFfNiIsImxvZ2VtZW50X3NpdHVlX2NvbW11bmVfZGVzZXF1aSIsInByb3ByaWV0ZSIsImNvbnZlbnRpb24iLCJjb252ZW50aW9uJDAiLCJjb25kaXRpb25fbG9nZW1lbnRfYmFpbGxldXIiLCJwcm9wcmlldGUkMCIsImNvbmRpdGlvbl9sb2dlbWVudF9wcmV0IiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudCIsImNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaSIsInJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jbyIsImVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbiQxIiwiZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVuJDIiLCJlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW4kMyIsImVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbiQ0IiwiZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVuJDUiLCJlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWUkMCIsImVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZSQxIiwiZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlJDIiLCJlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWUkMyIsImVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZSQ0IiwiZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlJDUiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3QiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3QkMCIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdCQxIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90JDIiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3QkMyIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdCQ0IiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90JDUiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3QkNiIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdCQ3IiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90JDgiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMyIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQ0IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDUiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkNiIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQ3IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDgiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkOSIsImFpZGVfZmluYWxlX2FwbCIsImFpZGVfZmluYWxlX2FsIiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nIiwibWVuYWdlX3NhbnNfZW5mYW50c19nYXJkZV9hbHRlIiwiY2FsY3VsZXR0ZV9kb3RfbWVuYWdlIiwiY2FsY3VsZXR0ZV9kb3RfZGVtYW5kZXVyIiwiY2FsY3VsZXR0ZV9kb3RfZGF0ZV9jb3VyYW50ZSIsImNhbGN1bGV0dGVfZG90X3Jlc3NvdXJjZXNfbWVuYSIsImNhbGN1bGV0dGVfZG90X2VsaWdpYmlsaXRlIiwiY2FsY3VsZXR0ZV9kb3RfYWlkZV9maW5hbGVfZm9yIiwiY2FsY3VsZXR0ZV9kb3RfdHJhaXRlbWVudF9haWRlIiwiY2FsY3VsZXR0ZV9kb3RfY29lZmZpY2VudHNfZW5mIiwiY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlIiwiY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlJDAiLCJjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuZWUkMSIsImNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm5lZSQyIiwiY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlJDMiLCJ0eXBlX3ByZXRfdG9fanNvbyIsInR5cGVfcHJldF9vZl9qc29vIiwidGl0dWxhaXJlX3ByZXRfdG9fanNvbyIsInRpdHVsYWlyZV9wcmV0X29mX2pzb28iLCJ0aXR1bGFpcmVfcHJldCIsInR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1XyIsInR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1XyQwIiwidHlwZV90cmF2YXV4X2xvZ2VtZW50X2Q4MzJfMTUiLCJ0eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81X3QiLCJ0eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81X28iLCJ0eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81IiwiYW1lbGlvcmVfcGFyX29jY3VwYW50X3RvX2pzb28iLCJhbWVsaW9yZV9wYXJfb2NjdXBhbnRfb2ZfanNvbyIsImxpbWl0ZV90cmFuY2hlX3RvX2pzb28iLCJsaW1pdGVfdHJhbmNoZV9vZl9qc29vIiwibGltaXRlX3RyYW5jaGUiLCJsaW1pdGVfdHJhbmNoZV9kZWNpbWFsX3RvX2pzb28iLCJsaW1pdGVfdHJhbmNoZV9kZWNpbWFsX29mX2pzb28iLCJsaW1pdGVfdHJhbmNoZV9kZWNpbWFsIiwicHJlc3RhdGlvbl9yZWN1ZV90b19qc29vIiwicHJlc3RhdGlvbl9yZWN1ZV9vZl9qc29vIiwicHJlc3RhdGlvbl9yZWN1ZSIsInBhcmVudF9vdV9hdXRyZV90b19qc29vIiwicGFyZW50X291X2F1dHJlX29mX2pzb28iLCJwYXJlbnRfb3VfYXV0cmUiLCJzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWVfdG9fanMiLCJzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWVfb2ZfanMiLCJzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWUiLCJwYXJlbnRlX3RvX2pzb28iLCJwYXJlbnRlX29mX2pzb28iLCJwYXJlbnRlIiwiZGF0ZV9kZV9uYWlzc2FuY2Vfb3VfbW9pc19kZV9nIiwiZGF0ZV9kZV9uYWlzc2FuY2Vfb3VfbW9pc19kZV9nJDAiLCJ6b25lX2RfaGFiaXRhdGlvbl90b19qc29vIiwiem9uZV9kX2hhYml0YXRpb25fb2ZfanNvbyIsInpvbmVfZF9oYWJpdGF0aW9uIiwicGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluY3RfcHJvJDAiLCJ2ZXJzZW1lbnRfYV90b19qc29vIiwidmVyc2VtZW50X2Ffb2ZfanNvbyIsInZlcnNlbWVudF9hIiwiZGVwZW5zZV9sb2dlbWVudF90b19qc29vIiwiZGVwZW5zZV9sb2dlbWVudF9vZl9qc29vIiwibW9kZV9vY2N1cGF0aW9uX2ltcGF5ZV90b19qc29vIiwibW9kZV9vY2N1cGF0aW9uX2ltcGF5ZV9vZl9qc29vIiwidHlwZV9lbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvIiwidHlwZV9lbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvJDAiLCJhY2NvcmRfZmluYW5jZW1lbnRfcmVwcmVzZW50YW4iLCJhY2NvcmRfZmluYW5jZW1lbnRfcmVwcmVzZW50YW4kMCIsInR5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbiIsInR5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbiQwIiwic2l0dWF0aW9uX2ZhbWlsaWFsZV90b19qc29vIiwic2l0dWF0aW9uX2ZhbWlsaWFsZV9vZl9qc29vIiwicHJpc2VfZW5fY2hhcmdlX3RvX2pzb28kMCIsInByaXNlX2VuX2NoYXJnZV9vZl9qc29vJDAiLCJ0eXBlX2xvZ2VtZW50X2ZveWVyX3RvX2pzb28iLCJ0eXBlX2xvZ2VtZW50X2ZveWVyX29mX2pzb28iLCJjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfYWwiLCJjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfYWwkMCIsInNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcCIsInNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcCQwIiwiY29sbGVjdGl2aXRlX3RvX2pzb28kMCIsImNvbGxlY3Rpdml0ZV9vZl9qc29vJDAiLCJwcmlzZV9lbl9jaGFyZ2VfZW5mYW50X3RvX2pzb28iLCJwcmlzZV9lbl9jaGFyZ2VfZW5mYW50X29mX2pzb28iLCJwcmlzZV9lbl9jaGFyZ2VfZW5mYW50Iiwic2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmVfJDEiLCJzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZV8kMiIsImVsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyQxIiwiZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzJDIiLCJjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbF90b18iLCJjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbCIsImNvbnZlbnRpb25fYmFpbGxldXJfc29jaWFsX29mXyIsImNvbnZlbnRpb25fYV9uX2hfYV90b19qc29vIiwiY29udmVudGlvbl9hX25faF9hIiwiY29udmVudGlvbl9hX25faF9hX29mX2pzb28iLCJwZXJzb25uZV9zb3VzX2xvY2F0aW9uX3RvX2pzb28iLCJwZXJzb25uZV9zb3VzX2xvY2F0aW9uIiwicGVyc29ubmVfc291c19sb2NhdGlvbl9vZl9qc29vIiwicGF0cmltb2luZV90b19qc29vIiwicGF0cmltb2luZSIsInBhdHJpbW9pbmVfb2ZfanNvbyIsImNvbmRpdGlvbnNfZXRyYW5nZXJzX3RvX2pzb28iLCJjb25kaXRpb25zX2V0cmFuZ2VycyIsImNvbmRpdGlvbnNfZXRyYW5nZXJzX29mX2pzb28iLCJwZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnQiLCJwZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnQkMCIsImVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbSQwIiwiZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtJDEiLCJyZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2wkMCIsInJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbCQxIiwiY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wJDAiLCJjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3AkMSIsImNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mbyQwIiwiY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZvJDEiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl8kMCIsImNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uXyQxIiwidHJhaXRlbWVudF9mb3JtdWxlX2FpZGVfZmluYWxlIiwidHJhaXRlbWVudF9mb3JtdWxlX2FpZGVfZmluYWxlJDAiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMTAiLCJpbmZvc19jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDIiLCJpbmZvc19jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDIkMCIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvYyQwIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jJDEiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2MkMCIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjYyQxIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95JDAiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3kkMSIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X3RvXyIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X29mXyIsIm91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfdG9faiIsIm91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfb2ZfaiIsImltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X3RvX2pzbyIsImltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X29mX2pzbyIsImNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfdCIsImNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfbyIsImNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZyQwIiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nJDEiLCJiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW0kNiIsImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbSQ3IiwidmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfJDYiLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8kNyIsInZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfdCQwIiwidmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9vJDAiLCJzbWljX3RvX2pzb28kMCIsInNtaWNfb2ZfanNvbyQwIiwibmV1Zl9vdV9hbmNpZW5fdG9fanNvbyIsIm5ldWZfb3VfYW5jaWVuX29mX2pzb28iLCJuZXVmX291X2FuY2llbiIsInRyYW5jaGVfcmV2ZW51X3RvX2pzb28iLCJ0cmFuY2hlX3JldmVudSIsInRyYW5jaGVfcmV2ZW51X29mX2pzb28iLCJ0cmFuY2hlX3JldmVudV9kZWNpbWFsX3RvX2pzb28iLCJ0cmFuY2hlX3JldmVudV9kZWNpbWFsIiwidHJhbmNoZV9yZXZlbnVfZGVjaW1hbF9vZl9qc29vIiwiYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2VfdG9fanNvIiwiYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UiLCJhdXRyZV9wZXJzb25uZV9hX2NoYXJnZV9vZl9qc28iLCJkYXRlX25haXNzYW5jZV90cm9pc2llbWVfb3VfZGUiLCJkYXRlX25haXNzYW5jZV90cm9pc2llbWVfb3VfZGUkMCIsInByZXRfdG9fanNvbyIsInByZXRfb2ZfanNvbyIsImxvZ2VtZW50X2ZveWVyX3RvX2pzb28iLCJsb2dlbWVudF9mb3llcl9vZl9qc29vIiwiZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfIiwiZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMiLCJlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc18kMCIsInR5cGVfYmFpbGxldXJfdG9fanNvbyIsInR5cGVfYmFpbGxldXJfb2ZfanNvbyIsInR5cGVfYmFpbGxldXIiLCJsb3VlX291X3NvdXNfbG91ZV9hX2Rlc190aWVyc18iLCJsb3VlX291X3NvdXNfbG91ZV9hX2Rlc190aWVyc18kMCIsImxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzIiwibmF0aW9uYWxpdGVfdG9fanNvbyIsIm5hdGlvbmFsaXRlX29mX2pzb28iLCJuYXRpb25hbGl0ZSIsImNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80X3RvXyIsImNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80X29mXyIsImluZm9ybWF0aW9uc19wcmltZV9kZV9kZW1lbmFnZSIsImluZm9ybWF0aW9uc19wcmltZV9kZV9kZW1lbmFnZSQwIiwicHJvcHJpZXRhaXJlX3RvX2pzb28iLCJwcm9wcmlldGFpcmVfb2ZfanNvbyIsImVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaSQwIiwiZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpJDEiLCJkZW1hbmRldXJfdG9fanNvbyIsImRlbWFuZGV1cl9vZl9qc29vIiwiZW5mYW50X2FfY2hhcmdlX3RvX2pzb28iLCJlbmZhbnRfYV9jaGFyZ2UiLCJlbmZhbnRfYV9jaGFyZ2Vfb2ZfanNvbyIsImxvY2F0aW9uX3RvX2pzb28iLCJsb2NhdGlvbl9vZl9qc29vIiwicGVyc29ubmVfYV9jaGFyZ2VfdG9fanNvbyIsInBlcnNvbm5lX2FfY2hhcmdlX29mX2pzb28iLCJjYXRlZ29yaWVfY2FsY3VsX2FfcF9sX3RvX2pzb28iLCJjYXRlZ29yaWVfY2FsY3VsX2FfcF9sX29mX2pzb28iLCJjYXRlZ29yaWVfY2FsY3VsX2FfcF9sIiwibW9kZV9vY2N1cGF0aW9uX3RvX2pzb28iLCJtb2RlX29jY3VwYXRpb25fb2ZfanNvbyIsImVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlXyQwIiwiZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfJDEiLCJsb2dlbWVudF90b19qc29vIiwibG9nZW1lbnQiLCJsb2dlbWVudF9vZl9qc29vIiwibWVuYWdlX3RvX2pzb28iLCJtZW5hZ2Vfb2ZfanNvbyIsImVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlXyQyIiwiZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfJDMiLCJlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW0kMiIsImVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbSQzIiwicmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sJDIiLCJyZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2wkMyIsImNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcCQyIiwiY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wJDMiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMTEiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMTIiLCJjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm8kMiIsImNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mbyQzIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDEzIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDE0IiwiY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fJDIiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl8kMyIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQxNSIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQxNiIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQxNyIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQxOCIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvYyQyIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jJDMiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2MkMiIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjYyQzIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95JDIiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3kkMyIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luXyIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luXyQwIiwib3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9pbl90Iiwib3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9pbl9vIiwiaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW5fdG9fIiwiaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW5fb2ZfIiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pJDAiLCJjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2ckMiIsImNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZyQzIiwiYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtJDgiLCJiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW0kOSIsInZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291XyQ4IiwidmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfJDkiLCJ2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2kkMSIsInZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaSQyIiwic21pY19pbl90b19qc29vJDAiLCJzbWljX2luX29mX2pzb28kMCIsImVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaSQyIiwiZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpJDMiLCJjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3AkNCIsImNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mbyQ0IiwiY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fJDQiLCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlJDAiLCJpbXBheWVfZGVwZW5zZV9sb2dlbWVudCQwIiwiYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtJDEwIiwidmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfJDEwIiwidmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYSQyIiwic21pYyQyIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDE5IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDIwIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDIxIiwicmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sJDQiLCJlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGkkNCIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvYyQ0IiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95JDQiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2MkNCIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQyMiIsImVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlXyQ0IiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnQkMCIsImVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbSQ0IiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudCQwIiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nJDQiLCJjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2ciLCJpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWwiXSwic291cmNlcyI6WyIiLCIvYnVpbHRpbi8raW50NjQuanMiLCIvYnVpbHRpbi8rbWxCeXRlcy5qcyIsIi9idWlsdGluLytmYWlsLmpzIiwiL2J1aWx0aW4vK3N0ZGxpYi5qcyIsIi9idWlsdGluLytmb3JtYXQuanMiLCIvYnVpbHRpbi8raWVlZV83NTQuanMiLCIvYnVpbHRpbi8rZWZmZWN0LmpzIiwiL2J1aWx0aW4vK2ZzX25vZGUuanMiLCIvYnVpbHRpbi8rZnMuanMiLCIvYnVpbHRpbi8rdW5peC5qcyIsIi9idWlsdGluLytzeXMuanMiLCIvYnVpbHRpbi8rZnNfZmFrZS5qcyIsIi9idWlsdGluLytuYXQuanMiLCIvYnVpbHRpbi8rZ3JhcGhpY3MuanMiLCIvYnVpbHRpbi8rbWFyc2hhbC5qcyIsIi9idWlsdGluLytpby5qcyIsIi9idWlsdGluLytnYy5qcyIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvemFyaXRoX3N0dWJzX2pzL2JpZ2ludGVnZXIuanMiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL3phcml0aF9zdHVic19qcy9ydW50aW1lLmpzIiwiL2J1aWx0aW4vK2JpZ2FycmF5LmpzIiwiL2J1aWx0aW4vK2pzbGliLmpzIiwiL2J1aWx0aW4vK3BhcnNpbmcuanMiLCIvYnVpbHRpbi8raW50cy5qcyIsIi9idWlsdGluLytoYXNoLmpzIiwiL2J1aWx0aW4vK29iai5qcyIsIi9idWlsdGluLytkb21haW4uanMiLCIvYnVpbHRpbi8rY29tcGFyZS5qcyIsIi9idWlsdGluLytqc2xpYl9qc19vZl9vY2FtbC5qcyIsIi9idWlsdGluLytiaWdzdHJpbmcuanMiLCIvYnVpbHRpbi8rbWQ1LmpzIiwiL2J1aWx0aW4vK2JhY2t0cmFjZS5qcyIsIi9idWlsdGluLytzdHIuanMiLCIvYnVpbHRpbi8rbGV4aW5nLmpzIiwiL2J1aWx0aW4vK2FycmF5LmpzIiwiL2J1aWx0aW4vK3N5bmMuanMiLCIvYnVpbHRpbi8rd2Vhay5qcyIsIi9idWlsdGluLytwcm5nLmpzIiwiL2J1aWx0aW4vK2JpZ3N0cmluZy1jc3RydWN0LmpzIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC91Y2hhci5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvaW50NjQubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2xleGluZy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvY2FtbGludGVybmFsRm9ybWF0Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9wcmludGV4Yy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvZmlsZW5hbWUubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NvbXBsZXgubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NhbWxpbnRlcm5hbEZvcm1hdEJhc2ljcy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvY2FtbGludGVybmFsQXRvbWljLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9zdGRsaWIubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3BlcnZhc2l2ZXMubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2Zsb2F0Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9yYW5kb20ubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2xpc3QubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2luX2NoYW5uZWwubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL291dF9jaGFubmVsLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9laXRoZXIubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL25hdGl2ZWludC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvb2JqLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9jYW1saW50ZXJuYWxMYXp5Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9sYXp5Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9zZXEubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL29wdGlvbi5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvcmVzdWx0Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9ib29sLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9jaGFyLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9ieXRlcy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvaW50Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9zdHJpbmcubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3VuaXQubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL21hcnNoYWwubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2FycmF5Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9pbnQzMi5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvcGFyc2luZy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvc2V0Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9tYXAubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3N0YWNrLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9xdWV1ZS5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvc3RyZWFtLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9idWZmZXIubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3ByaW50Zi5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvYXJnLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9mdW4ubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2djLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9kaWdlc3QubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2hhc2h0YmwubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3dlYWsubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2Zvcm1hdC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvc2NhbmYubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NhbGxiYWNrLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9jYW1saW50ZXJuYWxPTy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvY2FtbGludGVybmFsTW9kLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9nZW5sZXgubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2VwaGVtZXJvbi5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvYmlnYXJyYXkubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2RhdGVzX2NhbGMvZGF0ZXMubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL3lvanNvbi95b2pzb24ubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL3BweF95b2pzb25fY29udl9saWIveW9qc29uX2NvbnYubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL3BweF95b2pzb25fY29udl9saWIveW9qc29uX2NvbnZfZXJyb3IubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL3BweF95b2pzb25fY29udl9saWIvcHB4X3lvanNvbl9jb252X2xpYi5tbCIsIi93b3Jrc3BhY2Vfcm9vdC9ydW50aW1lcy9vY2FtbC9ydW50aW1lLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC1jb21waWxlci9ydW50aW1lL2pzb29fcnVudGltZS5tbCIsIiIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvaW1wb3J0Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9qcy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvZG9tX2h0bWwubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2RvbS5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvdHlwZWRfYXJyYXkubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2ZpbGUubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2Zvcm0ubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL3htbEh0dHBSZXF1ZXN0Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC93b3JrZXIubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL3dlYlNvY2tldHMubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL3dlYkdMLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9yZWdleHAubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL3VybC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvc3lzX2pzLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9yZXNpemVPYnNlcnZlci5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvcGVyZm9ybWFuY2VPYnNlcnZlci5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvbXV0YXRpb25PYnNlcnZlci5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvanN0YWJsZS5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvanNvbi5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvY1NTLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9kb21fZXZlbnRzLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9kb21fc3ZnLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9ldmVudFNvdXJjZS5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvZmlyZWJ1Zy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvZ2VvbG9jYXRpb24ubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2ludGVyc2VjdGlvbk9ic2VydmVyLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9pbnRsLm1sIiwiL3dvcmtzcGFjZV9yb290L3J1bnRpbWVzL2pzb28vcnVudGltZS5tbCIsIi93b3Jrc3BhY2Vfcm9vdC9mcmVuY2hfbGF3L29jYW1sL2xhd19zb3VyY2UvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy5tbCIsIi93b3Jrc3BhY2Vfcm9vdC9mcmVuY2hfbGF3L29jYW1sL2xhd19zb3VyY2UvYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19hcGlfd2ViLm1sIiwiL3dvcmtzcGFjZV9yb290L2ZyZW5jaF9sYXcvb2NhbWwvbGF3X3NvdXJjZS9haWRlc19sb2dlbWVudC5tbCIsIi93b3Jrc3BhY2Vfcm9vdC9mcmVuY2hfbGF3L29jYW1sL2xhd19zb3VyY2UvYWlkZXNfbG9nZW1lbnRfYXBpX3dlYi5tbCIsIi93b3Jrc3BhY2Vfcm9vdC9mcmVuY2hfbGF3L29jYW1sL2FwaV93ZWIubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3N0ZF9leGl0Lm1sIl0sIm1hcHBpbmdzIjoiOztBQUNBLENBQUMsU0FBVUE7SUFDVCxPQUFPQzs7OztLQUNMQztPQUNFO1FBQ0M7VUFBc0JGLDhDQUVoQkc7UUFDSEM7SUFFUixTQUFTRDtNQUNQLElBQUlFLE9BQVNILFFBQVFJO01BQ3JCLG9CQUFvQkQ7TUFDcEIsT0FBT0wsb0JBQ1QsQ0FiRDtHQWNDQTs7OztJQzJORixTQUFTTyxtQkFBbUJDLEdBQUssU0FBUSxVQUFZO0lDekxyRCxTQUFTQyxnQkFBZ0JDLEVBQUdDO01BQzFCLEdBQUdELE9BQVE7TUFDWCxHQUFJQyxTQUFVLE9BQVEsU0FBU0Q7TUFD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LFlBQVksOEJBQ2lCQSxZQUZHLEVBTXpDO0lBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7VTs7Ozs7OztJMkJ4V0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0NrQktDO0tBQ0FDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tDd0JBQztLQUNBQztLQUNBQztLQUlBQztLQUNBQzs7OztLQ3pCQUM7S0FtSEFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0NvOUVNQztLQVFRQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0NsbEZkQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQ3NFRUM7S0FDQUM7S0FDQUM7S0FDQUM7OztLQS9FWUM7S0FtSFpDO0tBQ0FDO0tBQ0FDO0tBQ0FDOzs7S0FtSUFDO0tBQ0FDO0tBQ0FDO0tBQ0FDOzs7S0N4UEZDO0tBQ0FDO0tBQ0FDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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O1FBQUssK0JBQVZBLElBQWdDOzJCQUFHO0lBcEt6QyxTQzdKVGdCLFdEdVVXckMsR0FBSSwyQk16Y2ZOLE9OeWNXTSxFQUF3QjtJQTFLMUIsU0M1SlRzQyxhRHVVYWhGLEdBQUkscUJNMWNqQm9DLE9OMGNhcEMsRUFBMEI7SUEzSzlCLFNDM0pUaUYsWUR1VVlqRixHQUFJLG9CTTNjaEJvQyxPTjJjWXBDLEVBQXlCO0lBNUs1QixTQzFKVGtGLFVEdVVVNUo7TUFBeUIscUJNNWNuQzhHLE9ONGNtQyw0QkFBekI5RyxHQUEwQztJQTdLM0MsU0N6SlQ2SixZRHVVWTNGLEdBQXlCLHFCTTdjckM0QyxPTjZjcUMsVUFBekI1QyxHQUE0QztJQTlLL0MsU0N4SlQ0RixjRHVVY3BGO01BQ2hCLGNNL2NFb0MsT044Y2NwQztNQUNRLG9CTS9jdEJvQztNTitjK0MscUJNL2MvQ0EsT04rYzJEO0lBaExsRCxTQ3ZKVGlEO01Ed1VtQixvQk1oZG5CakQsV05nZDRDLHFCTWhkNUNBLE9OZ2R3RDtJQWpML0MsU0N0SlRrRCxXRDJVVzVDLEdBQUksMkJNbmRmTCxPTm1kV0ssRUFBd0I7SUFyTDFCLFNDckpUNkMsYUQyVWF2RixHQUFJLHFCTXBkakJxQyxPTm9kYXJDLEVBQTBCO0lBdEw5QixTQ3BKVHdGLFlEMlVZeEYsR0FBSSxvQk1yZGhCcUMsT05xZFlyQyxFQUF5QjtJQXZMNUIsU0NuSlR5RixVRDJVVW5LO01BQXlCLHFCTXRkbkMrRyxPTnNkbUMsNEJBQXpCL0csR0FBMEM7SUF4TDNDLFNDbEpUb0ssWUQyVVlsRyxHQUF5QixxQk12ZHJDNkMsT051ZHFDLFVBQXpCN0MsR0FBNEM7SUF6TC9DLFNDakpUbUcsY0QyVWMzRjtNQUNoQixjTXpkRXFDLE9Od2RjckM7TUFDUSxvQk16ZHRCcUM7TU55ZCtDLHFCTXpkL0NBLE9OeWQyRDtJQTNMbEQsU0NoSlR1RDtNRDRVbUIsb0JNMWRuQnZELFdOMGQ0QyxxQk0xZDVDQSxPTjBkd0Q7SUE1TC9DLFNDL0lUd0QsaUJEK1VlLGNNL2RmekQsUU4rZGUsa0JLL2RmRCxNTCtkNkM7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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQzJuQ1NDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBMW5DSkc7Ozs7Ozs7O0tBZ0tBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJRW1CZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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QUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztPQUVBQztLQWttRmdCOztPQXR6RGxCQzs7T0ErbkJBTTtPQU5BRDtPQVFBRTtPQWRBSjtPQWhPQUY7O09BaDRDQXZRO09BRUFtRztPQUVBRztPQUVBRTtPQTJpRUFDO09BRUFzVTs7T0EzMkRBcFU7T0FGQU07T0FJQUk7T0FtNURBZ1U7T0FZQUc7T0E3NURBaFU7T0FzNERBNFQ7T0FsQkFIO09BTUFDO09BT0FDO1VBOGNFYyxTQXZHQUw7VUEwSEFVO09BNzBCRmhMO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BR0FDO09BR0FDO09BR0FDO09BR0FDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFDO09BRUFD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QU87O1VEaEtMOzs7Ozs7O0lDQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ093Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7YUFTbkJNLHNC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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLjAsImZpbGUiOiJhcGlfd2ViLmJjLmpzIiwic291cmNlUm9vdCI6IiIsIm5hbWVzIjpbImNhbWxfaW50NjRfaXNfemVybyIsIngiLCJjYW1sX3N0cl9yZXBlYXQiLCJuIiwicyIsInIiLCJsIiwiY2FtbF9pbnQ2NF9vZmZzZXQiLCJNYXRoIiwiY2FtbF9yYWlzZV9jb25zdGFudCIsInRhZyIsImNhbWxfZ2xvYmFsX2RhdGEiLCJjYW1sX3JhaXNlX3plcm9fZGl2aWRlIiwiTWxJbnQ2NCIsImxvIiwibWkiLCJoaSIsInRoaXMiLCJ4aGkiLCJoIiwic2lnbiIsIm9mZnNldCIsIm1vZHVsdXMiLCJkaXZpc29yIiwicXVvdGllbnQiLCJ5IiwicSIsImNhbWxfaW50NjRfb2ZfaW50MzIiLCJjYW1sX2ludDY0X3RvX2ludDMyIiwiY2FtbF9pbnQ2NF9pc19uZWdhdGl2ZSIsImNhbWxfaW50NjRfbmVnIiwiY2FtbF9qc2J5dGVzX29mX3N0cmluZyIsImpzb29fc3lzX2dldGVudiIsInByb2Nlc3MiLCJnbG9iYWxUaGlzIiwidW5kZWZpbmVkIiwiY2FtbF9yZWNvcmRfYmFja3RyYWNlX2ZsYWciLCJpIiwiY2FtbF9leG5fd2l0aF9qc19iYWNrdHJhY2UiLCJleG4iLCJmb3JjZSIsImNhbWxfbWF5YmVfYXR0YWNoX2JhY2t0cmFjZSIsImNhbWxfcmFpc2Vfd2l0aF9hcmciLCJhcmciLCJjYW1sX3N0cmluZ19vZl9qc2J5dGVzIiwiY2FtbF9yYWlzZV93aXRoX3N0cmluZyIsIm1zZyIsImNhbWxfaW52YWxpZF9hcmd1bWVudCIsImNhbWxfcGFyc2VfZm9ybWF0IiwiZm10IiwibGVuIiwiZiIsImMiLCJjYW1sX2ZpbmlzaF9mb3JtYXR0aW5nIiwicmF3YnVmZmVyIiwiYnVmZmVyIiwiY2FtbF9pbnQ2NF9mb3JtYXQiLCJ3YmFzZSIsImN2dGJsIiwicCIsImNhbWxfZXhwbTFfZmxvYXQiLCJjYW1sX21sX2NvbmRpdGlvbl9icm9hZGNhc3QiLCJ0IiwianNvb19pc19hc2NpaSIsImNhbWxfdXRmMTZfb2ZfdXRmOCIsImIiLCJjMSIsImMyIiwidiIsImoiLCJTdHJpbmciLCJjYW1sX2pzc3RyaW5nX29mX3N0cmluZyIsImZzX25vZGVfc3VwcG9ydGVkIiwibWFrZV9wYXRoX2lzX2Fic29sdXRlIiwicG9zaXgiLCJwYXRoIiwid2luMzIiLCJzcGxpdERldmljZVJlIiwicmVzdWx0IiwiZGV2aWNlIiwiaXNVbmMiLCJCb29sZWFuIiwicm9vdCIsInNlcCIsInBhdGhfaXNfYWJzb2x1dGUiLCJjYW1sX3RyYWlsaW5nX3NsYXNoIiwibmFtZSIsImNhbWxfY3VycmVudF9kaXIiLCJjYW1sX21ha2VfcGF0aCIsImNvbXAwIiwiY29tcCIsIm5jb21wIiwiY2FtbF91dGY4X29mX3V0ZjE2IiwiZCIsImNhbWxfc3RyaW5nX29mX2pzc3RyaW5nIiwidW5peF9lcnJvciIsIm1ha2VfdW5peF9lcnJfYXJncyIsImNvZGUiLCJzeXNjYWxsIiwiZXJybm8iLCJ2YXJpYW50IiwibnVsbCIsImFyZ3MiLCJjYW1sX25hbWVkX3ZhbHVlcyIsImNhbWxfbmFtZWRfdmFsdWUiLCJubSIsImNhbWxfcmFpc2Vfd2l0aF9hcmdzIiwiY2FtbF9zdWJhcnJheV90b19qc2J5dGVzIiwiYSIsImNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMiLCJNbEJ5dGVzIiwiY29udGVudHMiLCJsZW5ndGgiLCJjb250ZW50IiwiY2FtbF9pc19tbF9ieXRlcyIsImNhbWxfaXNfbWxfc3RyaW5nIiwiY2FtbF9ieXRlc19vZl9hcnJheSIsIlVpbnQ4QXJyYXkiLCJjYW1sX2J5dGVzX29mX2pzYnl0ZXMiLCJjYW1sX2J5dGVzX29mX3N0cmluZyIsImNhbWxfcmFpc2Vfc3lzX2Vycm9yIiwiY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUiLCJjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXkiLCJjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzIiwiY2FtbF9jcmVhdGVfYnl0ZXMiLCJjYW1sX21sX2J5dGVzX2xlbmd0aCIsImNhbWxfYmxpdF9ieXRlcyIsInMxIiwiaTEiLCJzMiIsImkyIiwiTWxGaWxlIiwiTWxGYWtlRmlsZSIsIm9sZCIsImJ1ZiIsInBvcyIsImNsZW4iLCJuZXdfc3RyIiwib2xkX2RhdGEiLCJkYXRhIiwiTWxGYWtlRmQiLCJmaWxlIiwiZmxhZ3MiLCJNbEZha2VEZXZpY2UiLCJyZXMiLCJTeW1ib2wiLCJuYW1lX3NsYXNoIiwibW9kZSIsInJhaXNlX3VuaXgiLCJwYXJlbnQiLCJSZWdFeHAiLCJzZWVuIiwibSIsImVudHJ5Iiwib2siLCJBcnJheSIsImJ5dGVzIiwiY2FtbF9tbF9zdHJpbmdfbGVuZ3RoIiwiY2FtbF9zdHJpbmdfdW5zYWZlX2dldCIsImNhbWxfdWludDhfYXJyYXlfb2Zfc3RyaW5nIiwiY2FtbF9ieXRlc19ib3VuZF9lcnJvciIsImNhbWxfYnl0ZXNfdW5zYWZlX3NldCIsImNhbWxfYnl0ZXNfc2V0IiwiTWxOb2RlRmQiLCJmZCIsInJlcXVpcmUiLCJlcnIiLCJidWZfb2Zmc2V0IiwicmVhZCIsIk1sTm9kZURldmljZSIsImNvbnN0cyIsImtleSIsImlzQ2hhcmFjdGVyRGV2aWNlIiwibyIsImpzX3N0YXRzIiwidG9fZGlyIiwidGFyZ2V0IiwibGluayIsImZpbGVfa2luZCIsImNhbWxfZ2V0X3Jvb3QiLCJjYW1sX2ZhaWx3aXRoIiwiY2FtbF9yb290IiwianNvb19tb3VudF9wb2ludCIsInJlc29sdmVfZnNfZGV2aWNlIiwiY2FtbF9zeXNfaXNfZGlyZWN0b3J5IiwiY2FtbF9yYWlzZV9ub3RfZm91bmQiLCJjYW1sX3N5c19nZXRlbnYiLCJzaGlmdF9yaWdodF9uYXQiLCJuYXQxIiwib2ZzMSIsImxlbjEiLCJuYXQyIiwib2ZzMiIsIm5iaXRzIiwid3JhcCIsImNhbWxfZ3Jfc3RhdGUiLCJjYW1sX2dyX3N0YXRlX2dldCIsImNhbWxfZ3JfcG9pbnRfY29sb3IiLCJpbSIsImNhbWxfcnVudGltZV9ldmVudHNfdXNlcl9yZXNvbHZlIiwiTWxPYmplY3RUYWJsZSIsIk5haXZlTG9va3VwIiwib2JqcyIsImNhbWxfc3lzX3JlbmFtZSIsIm9fcm9vdCIsIm5fcm9vdCIsImNhbWxfbG9nMTBfZmxvYXQiLCJjYW1sX3J1bnRpbWVfd2FybmluZ3MiLCJjYW1sX21sX2VuYWJsZV9ydW50aW1lX3dhcm5pbmdzIiwiYm9vbCIsImNhbWxfY2xhc3NpZnlfZmxvYXQiLCJpc0Zpbml0ZSIsImlzTmFOIiwiY2FtbF9tbF9jaGFubmVscyIsImNhbWxfcmVmaWxsIiwiY2hhbiIsInN0ciIsInN0cl9hIiwibnJlYWQiLCJjYW1sX2FycmF5X2JvdW5kX2Vycm9yIiwiY2FtbF9tbF9pbnB1dF9zY2FuX2xpbmUiLCJjaGFuaWQiLCJwcmV2X21heCIsImNhbWxfZ2NfbWlub3IiLCJ1bml0IiwiYmlnSW50IiwiQkFTRSIsIkxPR19CQVNFIiwiTUFYX0lOVCIsIk1BWF9JTlRfQVJSIiwic21hbGxUb0FycmF5IiwiREVGQVVMVF9BTFBIQUJFVCIsIkJpZ0ludCIsImpvb19nbG9iYWxfb2JqZWN0Iiwic3VwcG9ydHNOYXRpdmVCaWdJbnQiLCJJbnRlZ2VyIiwicmFkaXgiLCJhbHBoYWJldCIsImNhc2VTZW5zaXRpdmUiLCJwYXJzZVZhbHVlIiwicGFyc2VCYXNlIiwiQmlnSW50ZWdlciIsInZhbHVlIiwiT2JqZWN0IiwiU21hbGxJbnRlZ2VyIiwiTmF0aXZlQmlnSW50IiwiaXNQcmVjaXNlIiwiYXJyYXlUb1NtYWxsIiwiYXJyIiwidHJpbSIsImNvbXBhcmVBYnMiLCJjcmVhdGVBcnJheSIsInRydW5jYXRlIiwiYWRkIiwibF9hIiwibF9iIiwiY2FycnkiLCJiYXNlIiwic3VtIiwiYWRkQW55IiwiYWRkU21hbGwiLCJzdWJ0cmFjdCIsImFfbCIsImJfbCIsImJvcnJvdyIsImRpZmZlcmVuY2UiLCJzdWJ0cmFjdEFueSIsInN1YnRyYWN0U21hbGwiLCJzbWFsbCIsIm11bHRpcGx5TG9uZyIsInByb2R1Y3QiLCJhX2kiLCJiX2oiLCJtdWx0aXBseVNtYWxsIiwic2hpZnRMZWZ0IiwibXVsdGlwbHlLYXJhdHN1YmEiLCJhYyIsImJkIiwiYWJjZCIsInVzZUthcmF0c3ViYSIsImwxIiwibDIiLCJhYnMiLCJtdWx0aXBseVNtYWxsQW5kQXJyYXkiLCJzcXVhcmUiLCJhX2oiLCJkaXZNb2QxIiwiZGl2aXNvck1vc3RTaWduaWZpY2FudERpZ2l0IiwibGFtYmRhIiwicmVtYWluZGVyIiwicXVvdGllbnREaWdpdCIsInNoaWZ0IiwiZGl2TW9kU21hbGwiLCJkaXZNb2QyIiwicGFydCIsImd1ZXNzIiwieGxlbiIsImhpZ2h4IiwiaGlnaHkiLCJjaGVjayIsImRpdk1vZEFueSIsInNlbGYiLCJFcnJvciIsImNvbXBhcmlzb24iLCJxU2lnbiIsIm1vZCIsIm1TaWduIiwiXzAiLCJfMSIsIl8yIiwiZXhwIiwiSW5maW5pdHkiLCJpc0Jhc2ljUHJpbWUiLCJtaWxsZXJSYWJpblRlc3QiLCJuUHJldiIsInN0cmljdCIsImlzUHJpbWUiLCJiaXRzIiwibG9nTiIsIml0ZXJhdGlvbnMiLCJuZXdUIiwibmV3UiIsImxhc3RUIiwibGFzdFIiLCJwb3dlcnNPZlR3byIsInBvd2VyczJMZW5ndGgiLCJoaWdoZXN0UG93ZXIyIiwic2hpZnRfaXNTbWFsbCIsInJlbVF1byIsImJpdHdpc2UiLCJmbiIsInhTaWduIiwieVNpZ24iLCJ4UmVtIiwieVJlbSIsInhEaWdpdCIsInlEaWdpdCIsInhEaXZNb2QiLCJ5RGl2TW9kIiwiTE9CTUFTS19JIiwiTE9CTUFTS19CSSIsInJvdWdoTE9CIiwiaW50ZWdlckxvZ2FyaXRobSIsInRtcCIsImUiLCJtYXgiLCJtaW4iLCJnY2QiLCJsY20iLCJyYW5kQmV0d2VlbiIsImxvdyIsImhpZ2giLCJyYW5nZSIsImRpZ2l0cyIsInRvQmFzZSIsInJlc3RyaWN0ZWQiLCJ0b3AiLCJkaWdpdCIsInRleHQiLCJhYnNCYXNlIiwiYWxwaGFiZXRWYWx1ZXMiLCJpc05lZ2F0aXZlIiwic3RhcnQiLCJwYXJzZUJhc2VGcm9tQXJyYXkiLCJ2YWwiLCJwb3ciLCJzdHJpbmdpZnkiLCJuZWciLCJOdW1iZXIiLCJvdXQiLCJsZWZ0IiwiZGl2bW9kIiwidG9CYXNlU3RyaW5nIiwiemVyb3MiLCJwYXJzZUludCIsInBhcnNlU3RyaW5nVmFsdWUiLCJzcGxpdCIsImRlY2ltYWxQbGFjZSIsImlzVmFsaWQiLCJwYXJzZU51bWJlclZhbHVlIiwibWxfel9ub3JtYWxpemUiLCJtbF96X3BvdyIsInoxIiwibWxfel9yb290IiwieiIsInplcm8iLCJvbmUiLCJlbmQiLCJhbnMiLCJ0d28iLCJtaWQiLCJwbyIsIm1sX3pfcm9vdHJlbSIsImNhbWxfbWxfY29uZGl0aW9uX25ldyIsImNhbWxfaW50NjRfb2ZfYnl0ZXMiLCJjYW1sX2JhX3VpbnQ4X2dldDY0IiwiYmEiLCJpMCIsIm9mcyIsImIxIiwiYjIiLCJiMyIsImI0IiwiYjUiLCJiNiIsImI3IiwiYjgiLCJjYW1sX2ludDY0X3RvX2J5dGVzIiwiY2FtbF9pbnQ2NF9tYXJzaGFsIiwid3JpdGVyIiwic2l6ZXMiLCJjYW1sX2JhX251bV9kaW1zIiwiY2FtbF93cmFwX2V4Y2VwdGlvbiIsImNhbWxfY3JlYXRlX2ZpbGUiLCJqc29vX2NyZWF0ZV9maWxlIiwiY2FtbF9mc19pbml0IiwiY2FtbF9nZXRfY29udGludWF0aW9uX2NhbGxzdGFjayIsImNhbWxfcGFyc2VyX3RyYWNlIiwiY2FtbF9zZXRfcGFyc2VyX3RyYWNlIiwib2xkZmxhZyIsImNhbWxfbGlzdF9vZl9qc19hcnJheSIsImNhbWxfbXVsIiwiY2FtbF9oYXNoX21peF9pbnQiLCJudW1fZGlnaXRzX25hdCIsIm5hdCIsImNhbWxfaGFzaF9uYXQiLCJjYW1sX2NhbGxfZ2VuIiwiYXJnc0xlbiIsImciLCJuYXJncyIsImV4dHJhX2FyZ3MiLCJhcmd1bWVudHMiLCJjYW1sX2NhbGxiYWNrIiwiY2FtbF9qc193cmFwX2NhbGxiYWNrX2FyZ3VtZW50cyIsImNhbWxfc3lzX2NoZGlyIiwiZGlyIiwiY2FtbF9vYmpfdGFnIiwiRnVuY3Rpb24iLCJjYW1sX29ial91cGRhdGVfdGFnIiwiY2FtbF9tbF9kb21haW5fdW5pcXVlX3Rva2VuXyIsImNhbWxfbWxfZG9tYWluX3VuaXF1ZV90b2tlbiIsImNhbWxfbGF6eV91cGRhdGVfdG9fZm9yY2luZyIsImZpZWxkMCIsImNhbWxfZ2NfY291bnRlcnMiLCJtbF96X2RpdiIsInoyIiwibWxfel9zaWduIiwibWxfel9hZGQiLCJtbF96X2NkaXYiLCJ6MV9wb3MiLCJ6Ml9wb3MiLCJjYW1sX2dyX3N5bmNocm9uaXplIiwiY2FtbF91bml4X2Nsb3NlZGlyIiwiZGlyX2hhbmRsZSIsImNhbWxfdW5peF9vcGVuZGlyIiwiY2FtbF91bml4X3Jld2luZGRpciIsIm5ld19kaXJfaGFuZGxlIiwiY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZSIsImNhbWxfdW5peF9yZWFkZGlyIiwiY2FtbF91bml4X2ZpbmRmaXJzdCIsInBhdGhfanMiLCJmaXJzdF9lbnRyeSIsImNhbWxfaXNfY29udGludWF0aW9uX3RhZyIsImxvZzJfb2siLCJqc29vX2Zsb29yX2xvZzIiLCJjYW1sX2ludDMyX2JpdHNfb2ZfZmxvYXQiLCJmbG9hdDMyYSIsIkZsb2F0MzJBcnJheSIsImludDMyYSIsIkludDMyQXJyYXkiLCJjYW1sX2ludDY0X2NyZWF0ZV9sb19taV9oaSIsImNhbWxfaW50NjRfYml0c19vZl9mbG9hdCIsImsiLCJyMyIsInIyIiwicjEiLCJjYW1sX2JhX3NlcmlhbGl6ZSIsInN6IiwiY29tcGxleCIsImNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnQiLCJraW5kIiwiY2FtbF9iYV9jcmVhdGVfYnVmZmVyIiwic2l6ZSIsInZpZXciLCJGbG9hdDY0QXJyYXkiLCJJbnQ4QXJyYXkiLCJJbnQxNkFycmF5IiwiVWludDE2QXJyYXkiLCJjYW1sX2ludDMyX2Zsb2F0X29mX2JpdHMiLCJjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHMiLCJOYU4iLCJjYW1sX2JhX2dldF9zaXplIiwiZGltcyIsIm5fZGltcyIsImNhbWxfaW50NjRfY3JlYXRlX2xvX2hpIiwiY2FtbF9pbnQ2NF9oaTMyIiwiY2FtbF9pbnQ2NF9sbzMyIiwiY2FtbF9iYV9jdXN0b21fbmFtZSIsIk1sX0JpZ2FycmF5IiwibGF5b3V0IiwicmUiLCJ0b3RhbCIsImsxIiwiazIiLCJNbF9CaWdhcnJheV9jXzFfMSIsImNhbWxfYmFfY3JlYXRlX3Vuc2FmZSIsInNpemVfcGVyX2VsZW1lbnQiLCJjYW1sX2JhX2Rlc2VyaWFsaXplIiwicmVhZGVyIiwibnVtX2RpbXMiLCJzaXplX2RpbSIsInNpemVfZGltX2hpIiwic2l6ZV9kaW1fbG8iLCJzaXh0eSIsImludDY0IiwiY2FtbF9iYV9jb21wYXJlIiwiY2FtbF9oYXNoX21peF9pbnQ2NCIsImNhbWxfaGFzaF9taXhfZmxvYXQiLCJ2MCIsImNhbWxfYmFfaGFzaCIsIm51bV9lbHRzIiwidyIsImNhbWxfaW50MzJfdW5tYXJzaGFsIiwiY2FtbF9uYXRpdmVpbnRfdW5tYXJzaGFsIiwiY2FtbF9pbnQ2NF91bm1hcnNoYWwiLCJjYW1sX2ludDY0X2NvbXBhcmUiLCJjYW1sX2ludDY0X2hhc2giLCJjYW1sX2N1c3RvbV9vcHMiLCJjYW1sX2NvbXBhcmVfdmFsX2dldF9jdXN0b20iLCJjYW1sX2NvbXBhcmVfdmFsX251bWJlcl9jdXN0b20iLCJudW0iLCJjdXN0b20iLCJzd2FwIiwiY2FtbF9jb21wYXJlX3ZhbF90YWciLCJjYW1sX2ludF9jb21wYXJlIiwiY2FtbF9zdHJpbmdfY29tcGFyZSIsImNhbWxfYnl0ZXNfY29tcGFyZSIsImNhbWxfY29tcGFyZV92YWwiLCJzdGFjayIsInRhZ19hIiwidGFnX2IiLCJjYW1sX2dyZWF0ZXJ0aGFuIiwiZGl2X2hlbHBlciIsImRpdl9kaWdpdF9uYXQiLCJuYXRxIiwib2ZzcSIsIm5hdHIiLCJvZnNyIiwicmVtIiwibnVtX2xlYWRpbmdfemVyb19iaXRzX2luX2RpZ2l0Iiwic2hpZnRfbGVmdF9uYXQiLCJNbE5hdCIsImNyZWF0ZV9uYXQiLCJzZXRfdG9femVyb19uYXQiLCJpbmNyX25hdCIsImNhcnJ5X2luIiwiYWRkX25hdCIsImxlbjIiLCJuYXRfb2ZfYXJyYXkiLCJtdWx0X2RpZ2l0X25hdCIsIm5hdDMiLCJvZnMzIiwieDEiLCJ4MiIsIngzIiwiZGVjcl9uYXQiLCJzdWJfbmF0IiwiY29tcGFyZV9uYXQiLCJkaXZfbmF0IiwicXVvIiwiY2FtbF9iYV9ibGl0Iiwic3JjIiwiZHN0IiwiaXNfZGlnaXRfaW50IiwiY2FtbF9pbnQ2NF9kaXYiLCJjYW1sX2pzX2h0bWxfZW50aXRpZXMiLCJlbnRpdHkiLCJ0ZW1wIiwiZG9jdW1lbnQiLCJjYW1sX3N0cmluZ191bnNhZmVfc2V0IiwiY2FtbF9pbnQ2NF9vZl9mbG9hdCIsImNhbWxfbWxfY2hhbm5lbF9zaXplXzY0IiwiY2FtbF9iYV9zZXRfMiIsIm1sX3pfa3JvbmVja2VyIiwibWxfel9vZl9pbnQ2NCIsImk2NCIsImNhbWxfYXJndiIsIm1haW4iLCJhcmd2IiwiYXJnczIiLCJjYW1sX2V4ZWN1dGFibGVfbmFtZSIsImNhbWxfanNfZXZhbF9zdHJpbmciLCJldmFsIiwic2VyaWFsaXplX25hdCIsImNhbWxfbWVtcHJvZl9zZXQiLCJfY29udHJvbCIsIm1sX3pfbmVnIiwiY2FtbF9zeXNfZXhpdCIsImNhbWxfY2hhbm5lbF9kZXNjcmlwdG9yIiwiY2FtbF9qc19mcm9tX2FycmF5IiwiY2FtbF9iYV9yZXNoYXBlIiwidmluZCIsIm5ld19kaW0iLCJjYW1sX29vX2xhc3RfaWQiLCJjYW1sX3NldF9vb19pZCIsImNhbWxfZ3JfZmlsbF9yZWN0IiwiY2FtbF9iaWdzdHJpbmdfYmxpdF9zdHJpbmdfdG9fYmEiLCJzdHIxIiwicG9zMSIsImJhMiIsInBvczIiLCJzbGljZSIsImNhbWxfZ3Jfc2V0X3dpbmRvd190aXRsZSIsImpzbmFtZSIsImNhbWxfZ2V0X2dsb2JhbF9kYXRhIiwiY2FtbF9pbnQ2NF9zaGlmdF9yaWdodF91bnNpZ25lZCIsImNhbWxfYmFfdWludDhfZ2V0MTYiLCJtbF96X29mX2ludDMyIiwiY2FtbF9jb21wYXJlIiwiY2FtbF9NRDVUcmFuc2Zvcm0iLCJ4eCIsImZmIiwiZ2ciLCJoaCIsImlpIiwiY2FtbF9NRDVVcGRhdGUiLCJjdHgiLCJpbnB1dCIsImlucHV0X2xlbiIsImluX2J1ZiIsImlucHV0X3BvcyIsIm1pc3NpbmciLCJjYW1sX3J1bnRpbWVfZXZlbnRzX3JlYWRfcG9sbCIsImN1cnNvciIsImNhbGxiYWNrcyIsImNhbWxfZnJlc2hfb29faWQiLCJjYW1sX2ludDY0X3RvX2Zsb2F0IiwiY2FtbF9iYV9nZXRfMSIsImNhbWxfYmlnc3RyaW5nX21lbWNtcCIsImNhbWxfbmV3X3N0cmluZyIsImNhbWxfZXJmX2Zsb2F0IiwiYTEiLCJhMiIsImEzIiwiYTQiLCJhNSIsImNhbWxfYmFfdWludDhfZ2V0MzIiLCJjYW1sX3Jhd19iYWNrdHJhY2VfbGVuZ3RoIiwibWxfel9zaGlmdF9yaWdodCIsImFtdCIsImNhbWxfc3RyX2luaXRpYWxpemUiLCJjYW1sX29ial9ibG9jayIsImNhbWxfZ3JfY2xlYXJfZ3JhcGgiLCJiaWdzdHJpbmdfdG9fYXJyYXlfYnVmZmVyIiwiYnMiLCJjYW1sX3N5c19jb25zdF9uYWtlZF9wb2ludGVyc19jaGVja2VkIiwiX3VuaXQiLCJseG9yX2RpZ2l0X25hdCIsImNhbWxfb2JqX2FkZF9vZmZzZXQiLCJjYW1sX2ZpbmFsX3JlbGVhc2UiLCJjYW1sX21hcnNoYWxfaGVhZGVyX3NpemUiLCJjYW1sX2pzX3RvX2FycmF5IiwibWxfel9sb2dvciIsImNhbWxfc3lzX2lzX3JlZ3VsYXJfZmlsZSIsImNhbWxfZ3JfcGxvdCIsImNvbG9yIiwiY2FtbF9ieXRlc19zZXQ2NCIsImNhbWxfc3RyaW5nX3NldDE2IiwiaTE2IiwiY2FtbF9pbnQ2NF9ic3dhcCIsIm1sX3pfZml0c19pbnQiLCJtbF96X2ZpdHNfaW50MzIiLCJjYW1sX2djX21ham9yIiwibWxfel9zaGlmdF9sZWZ0IiwiY2FtbF9sZXhfYXJyYXkiLCJjYW1sX2xleF9lbmdpbmUiLCJ0YmwiLCJzdGFydF9zdGF0ZSIsImxleGJ1ZiIsImxleF9idWZmZXIiLCJsZXhfYnVmZmVyX2xlbiIsImxleF9zdGFydF9wb3MiLCJsZXhfY3Vycl9wb3MiLCJsZXhfbGFzdF9wb3MiLCJsZXhfbGFzdF9hY3Rpb24iLCJsZXhfZW9mX3JlYWNoZWQiLCJsZXhfYmFzZSIsImxleF9iYWNrdHJrIiwibGV4X2RlZmF1bHQiLCJsZXhfdHJhbnMiLCJsZXhfY2hlY2siLCJzdGF0ZSIsImJhY2t0cmsiLCJjYW1sX3N5c19maWxlX2V4aXN0cyIsImNhbWxfY29udmVydF9yYXdfYmFja3RyYWNlX3Nsb3QiLCJjYW1sX2FycmF5X3N1YiIsImNhbWxfYnl0ZXNfZXF1YWwiLCJjYW1sX2dyX3NpemVfeCIsImNhbWxfbWxfZGVidWdfaW5mb19zdGF0dXMiLCJjYW1sX2F0b21pY19mZXRjaF9hZGQiLCJyZWYiLCJvc190eXBlIiwiY2FtbF9zeXNfY29uc3Rfb3N0eXBlX2N5Z3dpbiIsImNhbWxfY29zaF9mbG9hdCIsIk1sTXV0ZXgiLCJjYW1sX21sX211dGV4X25ldyIsImNhbWxfZXBoZV9rZXlfb2Zmc2V0IiwiY2FtbF9lcGhlX2NoZWNrX2tleSIsIndlYWsiLCJjYW1sX2hhc2hfbWl4X2ZpbmFsIiwiY2FtbF9ncl90ZXh0X3NpemUiLCJ0eHQiLCJjYW1sX2xleF9ydW5fbWVtIiwibWVtIiwiY3Vycl9wb3MiLCJjYW1sX2xleF9ydW5fdGFnIiwiY2FtbF9uZXdfbGV4X2VuZ2luZSIsImxleF9tZW0iLCJsZXhfYmFzZV9jb2RlIiwibGV4X2JhY2t0cmtfY29kZSIsImxleF9kZWZhdWx0X2NvZGUiLCJsZXhfdHJhbnNfY29kZSIsImxleF9jaGVja19jb2RlIiwibGV4X2NvZGUiLCJwY19vZmYiLCJwc3RhdGUiLCJiYXNlX2NvZGUiLCJjYW1sX2JhX3VpbnQ4X3NldDY0IiwibWxfel9wb3Bjb3VudCIsImNhbWxfc3lzX2V4ZWN1dGFibGVfbmFtZSIsImNhbWxfbGVzc2VxdWFsIiwiY2FtbF9hY29zaF9mbG9hdCIsImNhbWxfTUQ1SW5pdCIsIkFycmF5QnVmZmVyIiwiYjMyIiwiVWludDMyQXJyYXkiLCJjYW1sX21sX2ZsdXNoIiwiY2FtbF9zZWVrX291dCIsImNhbWxfbWxfc2Vla19vdXRfNjQiLCJjb21wYXJlX25hdF9yZWFsIiwiY2FtbF9nY19zZXQiLCJjYW1sX2pzX2dldCIsImNhbWxfdW5peF9pc2F0dHkiLCJmaWxlRGVzY3JpcHRvciIsInR0eSIsImNhbWxfbWxfc2V0X2J1ZmZlcmVkIiwiY2FtbF9nY19jb21wYWN0aW9uIiwiY2FtbF9lcGhlX2dldF9rZXkiLCJjYW1sX3VuaXhfbG9jYWx0aW1lIiwiRGF0ZSIsImRfbnVtIiwiamFudWFyeWZpcnN0IiwiZG95IiwiamFuIiwianVsIiwic3RkVGltZXpvbmVPZmZzZXQiLCJjYW1sX3VuaXhfbWt0aW1lIiwidG0iLCJ0bTIiLCJqc29vX3pfb2ZfanNfc3RyaW5nX2Jhc2UiLCJiYyIsIm1sX3pfb2Zfc3Vic3RyaW5nX2Jhc2UiLCJjYW1sX2JpZ3N0cmluZ19ibGl0X2J5dGVzX3RvX2JhIiwiY2FtbF9zeXNfZmRzIiwiY2FtbF9zeXNfY2xvc2UiLCJjYW1sX21sX2Nsb3NlX2NoYW5uZWwiLCJjYW1sX2F0b21pY19leGNoYW5nZSIsImNhbWxfc3lzX2lzYXR0eSIsIl9jaGFuIiwiaXNfZGlnaXRfemVybyIsImNhbWxfdW5peF9sc3RhdCIsImNhbWxfdW5peF9sc3RhdF82NCIsImNhbWxfanNfc2V0IiwibWxfel9nY2RleHRfaW50ZXJuIiwibGFzdHgiLCJsYXN0eSIsIm1sX3pfdGVzdGJpdCIsImNhbWxfYXJyYXlfZ2V0IiwiYXJyYXkiLCJpbmRleCIsImNhbWxfY29udGludWF0aW9uX3VzZV9ub2V4YyIsImNvbnQiLCJjYW1sX3VuaXhfcm1kaXIiLCJjYW1sX2xvZzJfZmxvYXQiLCJjYW1sX2djX2h1Z2VfZmFsbGJhY2tfY291bnQiLCJjYW1sX3J1bnRpbWVfZXZlbnRzX3Jlc3VtZSIsIm1sX3pfY29uZ3J1ZW50IiwiY2FtbF9zcGFjZXRpbWVfb25seV93b3Jrc19mb3JfbmF0aXZlX2NvZGUiLCJjYW1sX2ludDY0X3N1YiIsImNhbWxfc2Vla19pbiIsImNhbWxfbWxfc2Vla19pbl82NCIsImNhbWxfZG9tYWluX2lkIiwiY2FtbF9tbF9tdXRleF91bmxvY2siLCJjYW1sX2RvbWFpbl9sYXRlc3RfaWR4IiwiY2FtbF9kb21haW5fc3Bhd24iLCJtdXRleCIsImlkIiwiY2FtbF91bml4X21rZGlyIiwicGVybSIsImNhbWxfaW50NjRfc2hpZnRfbGVmdCIsImNhbWxfbm90ZXF1YWwiLCJtbF96X2FicyIsImNhbWxfc3lzX2NvbnN0X2ludF9zaXplIiwiY2FtbF9qc193cmFwX2NhbGxiYWNrIiwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2siLCJjYW1sX2lzX2pzIiwiY2FtbF9sYXp5X3VwZGF0ZV90b19mb3J3YXJkIiwiY2FtbF9iYV9kaW0iLCJjYW1sX2JhX2RpbV8xIiwibWxfel9zcXJ0IiwiY2FtbF9qc19tZXRoX2NhbGwiLCJtbF96X2x1Y251bSIsImNhbWxfZXBoZV9kYXRhX29mZnNldCIsImNhbWxfd2Vha19jcmVhdGUiLCJjYW1sX2VwaGVfY3JlYXRlIiwiY2FtbF9qc190b19ieXRlX3N0cmluZyIsIm1sX3pfcHJvYmFiX3ByaW1lIiwiY2FtbF90cmFtcG9saW5lIiwiY2FtbF9tYXliZV9wcmludF9zdGF0cyIsImNhbWxfYnl0ZXNfdW5zYWZlX2dldCIsImNhbWxfYnl0ZXNfZ2V0NjQiLCJjYW1sX2N1c3RvbV9ldmVudF9pbmRleCIsImNhbWxfcnVudGltZV9ldmVudHNfdXNlcl9yZWdpc3RlciIsImV2ZW50X25hbWUiLCJldmVudF90YWciLCJldmVudF90eXBlIiwiY2FtbF91bml4X2hhc19zeW1saW5rIiwibWxfel9yZW0iLCJjYW1sX2VwaGVfc2V0X2tleSIsImNhbWxfZXBoZV91bnNldF9rZXkiLCJjb3VudCIsImNhbWxfd2Vha19zZXQiLCJjYW1sX3N5c19yZW1vdmUiLCJjYW1sX3N0cmluZ19ib3VuZF9lcnJvciIsImNhbWxfc3RyaW5nX2dldDMyIiwiY2FtbF9ieXRlc19nZXQiLCJjYW1sX2h5cG90X2Zsb2F0IiwibWxfel9mYWNNIiwiY3VycmVudCIsImNhbWxfanNfY2FsbCIsImNhbWxfc3lzX2NvbnN0X21heF93b3NpemUiLCJjYW1sX3VuaXhfaW5ldF9hZGRyX29mX3N0cmluZyIsIm1sX3pfdG9faW50IiwibWxfel9tdWxfb3ZlcmZsb3dzIiwiY2FtbF9oYXNoX21peF9ieXRlc19hcnIiLCJjYW1sX2hhc2hfbWl4X2pzYnl0ZXMiLCJjYW1sX21sX2J5dGVzX2NvbnRlbnQiLCJjYW1sX2hhc2hfbWl4X2J5dGVzIiwiY2FtbF9ieXRlc19sZXNzdGhhbiIsImNhbWxfZXJmY19mbG9hdCIsImNhbWxfZ3JfZmlsbF9wb2x5IiwiYXIiLCJjYW1sX2djX3F1aWNrX3N0YXQiLCJtbF96X2ZhYyIsImNhbWxfbWxfaW5wdXRfY2hhciIsImNhbWxfbWxfaW5wdXRfaW50IiwiY2FtbF9ncl9kaXNwbGF5X21vZGUiLCJtbF96X2RpdmlzaWJsZSIsImNhbWxfb2JqX3JlYWNoYWJsZV93b3JkcyIsIm50aF9kaWdpdF9uYXQiLCJjYW1sX2FycmF5X2JsaXQiLCJjYW1sX2Zsb2F0X29mX3N0cmluZyIsIm0zIiwibWFudGlzc2EiLCJleHBvbmVudCIsImNhbWxfc3lzX2dldGN3ZCIsImNhbWxfaW50NjRfYWRkIiwiY2FtbF9pbnQ2NF9tdWwiLCJjYW1sX2ludDY0X3VsdCIsImNhbWxfcGFyc2Vfc2lnbl9hbmRfYmFzZSIsImNhbWxfcGFyc2VfZGlnaXQiLCJjYW1sX2ludDY0X29mX3N0cmluZyIsImJhc2U2NCIsInRocmVzaG9sZCIsImNhbWxfYmFfc2V0XzEiLCJjYW1sX2ludDY0X3hvciIsImNhbWxfaW50NjRfb3IiLCJjYW1sX2x4bV9uZXh0Iiwic2hpZnRfbCIsInNoaWZ0X3IiLCJvciIsInhvciIsIm11bCIsInJvdGwiLCJnZXQiLCJzZXQiLCJNIiwiZGFiYSIsInEwIiwicTEiLCJzdCIsIngwIiwiY2FtbF9zeXNfY29uc3RfYmlnX2VuZGlhbiIsImNhbWxfbGlzdF90b19qc19hcnJheSIsImNhbWxfb3V0cHV0X3ZhbCIsIldyaXRlciIsIm5vX3NoYXJpbmciLCJjbG9zdXJlcyIsImNvbnNvbGUiLCJpbnRlcm5fb2JqX3RhYmxlIiwibWVtbyIsImV4aXN0aW5nX29mZnNldCIsImV4dGVybl9yZWMiLCJvcHMiLCJzel8zMl82NCIsImhlYWRlcl9wb3MiLCJvbGRfcG9zIiwidHlwZV9vZl92IiwiY2FtbF9zdHJpbmdfb2ZfYXJyYXkiLCJjYW1sX291dHB1dF92YWx1ZV90b19zdHJpbmciLCJjYW1sX3JhaXNlX25vdF9hX2RpciIsImNhbWxfc3lzX3N5c3RlbV9jb21tYW5kIiwiY21kIiwiY2hpbGRfcHJvY2VzcyIsImNhbWxfanNfZXJyb3Jfb2ZfZXhjZXB0aW9uIiwiY2FtbF91bml4X2dldHVpZCIsImRlc2VyaWFsaXplX25hdCIsImluaXRpYWxpemVfbmF0IiwibWxfel9zdWNjIiwiY2FtbF9ieXRlc19vZl91dGYxNl9qc3N0cmluZyIsImNhbWxfZ3Jfb3Blbl9zdWJ3aW5kb3ciLCJVSW50OEFycmF5UmVhZGVyIiwiY2FtbF9tYXJzaGFsX2RhdGFfc2l6ZSIsInJlYWR2bHEiLCJvdmVyZmxvdyIsIm43IiwiaGVhZGVyX2xlbiIsImRhdGFfbGVuIiwiTWxTdHJpbmdSZWFkZXIiLCJ6c3RkX2RlY29tcHJlc3MiLCJhYiIsInU4IiwidTE2IiwidTMyIiwiaTMyIiwic2xjIiwiZmlsbCIsImNwdyIsImVjIiwiaW5kIiwibnQiLCJyYiIsInJ6ZmgiLCJkYXQiLCJuMyIsImZsZyIsInNzIiwiY2MiLCJkZiIsImZjZiIsImJ0IiwiZGIiLCJkaSIsImZzYiIsImZzcyIsIndzIiwid2IiLCJtc2IiLCJyZnNlIiwibWFsIiwidHBvcyIsImFsIiwicHJvYnMiLCJzeW0iLCJodCIsImZyZXEiLCJkc3RhdGUiLCJuc3RhdGUiLCJiYjEiLCJzeW1zIiwiY2J0IiwibXNrIiwibXNrMWZiIiwibXN2Iiwic3ZhbCIsInJidCIsInN5bXBvcyIsInNzdGVwIiwic21hc2siLCJzZiIsIm5zIiwibmIiLCJyaHUiLCJ3YyIsImhiIiwiaHciLCJyYyIsInJpIiwiX2EiLCJlYnQiLCJmZHQiLCJlcG9zIiwibGIiLCJzdDEiLCJzdDIiLCJidHIxIiwiYnRyMiIsImZwb3MiLCJieXRlIiwid2VzIiwid3QiLCJtYiIsInRzIiwiaGJ1ZiIsInB2IiwiZGxsdCIsImRtbHQiLCJkb2N0IiwiYjJibCIsImJsIiwibGxiIiwibGxibCIsIm1sYiIsIm1sYmwiLCJkaHUiLCJodSIsImViIiwiYnRyIiwiZGh1NCIsInN6MSIsInN6MiIsInN6MyIsInJ6YiIsImIwIiwiYnR5cGUiLCJsYnQiLCJsc3MiLCJsY3MiLCJzNCIsInNwbCIsImh1ZCIsInNjbSIsImR0cyIsIm1kIiwicmJ1ZiIsIl9iIiwibWx0Iiwib2N0IiwibGx0Iiwic3BvcyIsIm91YnQiLCJsc3QiLCJvc3QiLCJtc3QiLCJsbGMiLCJsYnRyIiwibWxjIiwibWJ0ciIsIm9mYyIsIm9idHIiLCJvZnAiLCJvZmYiLCJtbCIsImxsIiwiaWR4Iiwic3RpbiIsImNjdCIsImJ1ZnMiLCJvbCIsImNoayIsImJsayIsImNhbWxfZmxvYXRfb2ZfYnl0ZXMiLCJjYW1sX2lucHV0X3ZhbHVlX2Zyb21fcmVhZGVyIiwibWFnaWMiLCJjb21wcmVzc2VkIiwidW5jb21wcmVzc2VkX2RhdGFfbGVuIiwibnVtX29iamVjdHMiLCJfc2l6ZV8zMiIsIl9zaXplXzY0Iiwib2JqX2NvdW50ZXIiLCJpbnRlcm5fcmVjIiwiaGVhZGVyIiwiZXhwZWN0ZWRfc2l6ZSIsImNhbWxfc3RyaW5nX29mX2J5dGVzIiwiY2FtbF9pbnB1dF92YWx1ZV9mcm9tX2J5dGVzIiwiY2FtbF9pbnB1dF92YWx1ZSIsImJsb2NrIiwiY2FtbF9pbnB1dF92YWx1ZV90b19vdXRzaWRlX2hlYXAiLCJjYW1sX2F0b21pY19jYXMiLCJjYW1sX2NvcHlzaWduX2Zsb2F0IiwiY2FtbF9ncl9zZXRfdGV4dF9zaXplIiwiY2FtbF9hdG9taWNfbG9hZCIsImNhbWxfTUQ1RmluYWwiLCJjYW1sX21kNV9ieXRlcyIsImNhbWxfYmFfc2V0X2dlbmVyaWMiLCJjYW1sX21sX2NvbmRpdGlvbl93YWl0IiwibXV0ZXh0IiwiY2FtbF9zdHJpbmdfbGVzc2VxdWFsIiwiY2FtbF9zdHJpbmdfZ3JlYXRlcmVxdWFsIiwiY2FtbF9uZXh0YWZ0ZXJfZmxvYXQiLCJjYW1sX2dyX3NpemVfeSIsIm1sX3pfZmFjMiIsImNhbWxfcG9zX2luIiwiY2FtbF9tbF9wb3NfaW4iLCJjYW1sX2ludDY0X2FuZCIsImNhbWxfc3lzX2NvbnN0X3dvcmRfc2l6ZSIsIm1sX3pfYmluIiwiY29lZmYiLCJjYW1sX3J1bnRpbWVfZXZlbnRzX3BhdXNlIiwiY2FtbF91bml4X3VubGluayIsImNhbWxfc3lzX29wZW5fZm9yX25vZGUiLCJmcyIsImZkMiIsIk1sRmFrZUZkX291dCIsImNhbWxfc3lzX29wZW5faW50ZXJuYWwiLCJjYW1sX3N5c19vcGVuIiwiX3Blcm1zIiwibWxfel9nY2QiLCJtbF96X2hhbWRpc3QiLCJtbF96X211bCIsImNhbWxfc3RyaW5nX2dldCIsInJlX21hdGNoIiwicmVfd29yZF9sZXR0ZXJzIiwib3Bjb2RlcyIsImlzX3dvcmRfbGV0dGVyIiwiaW5fYml0c2V0IiwicmVfbWF0Y2hfaW1wbCIsInBhcnRpYWwiLCJwcm9nIiwiY3Bvb2wiLCJub3JtdGFibGUiLCJudW1ncm91cHMiLCJudW1yZWdpc3RlcnMiLCJzdGFydGNoYXJzIiwicGMiLCJxdWl0IiwiZ3JvdXBzIiwicmVfcmVnaXN0ZXIiLCJiYWNrdHJhY2siLCJpdGVtIiwicHVzaCIsImFjY2VwdCIsInByZWZpeF9tYXRjaCIsIm9wIiwic2FyZyIsInVhcmciLCJncm91cCIsInJlX3NlYXJjaF9iYWNrd2FyZCIsIm1sX3pfbG9nYW5kIiwiY2FtbF9qc19mcm9tX3N0cmluZyIsImNhbWxfYmFfc3ViIiwiY2hhbmdlZF9kaW0iLCJuZXdfZGltcyIsIm5ld19kYXRhIiwiY2FtbF9nY19mdWxsX21ham9yIiwiY2FtbF9tbF9tdXRleF90cnlfbG9jayIsImNhbWxfYnl0ZXNfc2V0MzIiLCJjYW1sX2dyX3NpZ2lvX3NpZ25hbCIsImNhbWxfYmFfdWludDhfc2V0MzIiLCJtbF96X2Rpdl9yZW0iLCJjYW1sX3N5c19jb25zdF9vc3R5cGVfdW5peCIsImNhbWxfdW5peF9nbXRpbWUiLCJjYW1sX3NpZ25iaXRfZmxvYXQiLCJjYW1sX2dyX2N1cnJlbnRfeCIsImNhbWxfZ3Jfc2V0X2xpbmVfd2lkdGgiLCJjYW1sX2dyX3NldF9mb250IiwiY2FtbF9ncl9zZXRfY29sb3IiLCJjb252ZXJ0IiwibnVtYmVyIiwiY19zdHIiLCJjYW1sX2dyX21vdmV0byIsImNhbWxfZ3JfcmVzaXplX3dpbmRvdyIsImNhbWxfZ3Jfc3RhdGVfaW5pdCIsImNhbWxfYmFfa2luZF9vZl90eXBlZF9hcnJheSIsInRhIiwiY2FtbF9iYV9mcm9tX3R5cGVkX2FycmF5IiwiY2FtbF9tbF9zZWVrX291dCIsImNhbWxfanNfdHlwZW9mIiwiY2FtbF9oYXNoX21peF9zdHJpbmciLCJjYW1sX3N0cmluZ19oYXNoIiwiY2FtbF9yZXN0b3JlX3Jhd19iYWNrdHJhY2UiLCJjYW1sX2dyX2xpbmV0byIsImNhbWxfanNfZnVuY3Rpb25fYXJpdHkiLCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja191bnNhZmUiLCJjYW1sX2JhX2RpbV8zIiwiY2FtbF9pc19zcGVjaWFsX2V4Y2VwdGlvbiIsImNhbWxfZm9ybWF0X2V4Y2VwdGlvbiIsImJ1Y2tldCIsImNhbWxfZmF0YWxfdW5jYXVnaHRfZXhjZXB0aW9uIiwiaGFuZGxlciIsImF0X2V4aXQiLCJjYW1sX2VwaGVfY2hlY2tfZGF0YSIsImNhbWxfYnl0ZXNfZ2V0MTYiLCJjYW1sX29ial9tYWtlX2ZvcndhcmQiLCJjYW1sX2pzX2Zyb21fYm9vbCIsImNhbWxfbWxfc2V0X2NoYW5uZWxfbmFtZSIsImNhbWxfZXhwMl9mbG9hdCIsImNhbWxfZ3JfY2xvc2VfZ3JhcGgiLCJjYW1sX21sX2RvbWFpbl9jcHVfcmVsYXgiLCJjYW1sX2NyZWF0ZV9zdHJpbmciLCJjYW1sX21sX2lucHV0X2Jsb2NrIiwiYXZhaWwiLCJjYW1sX21kNV9jaGFuIiwidG9yZWFkIiwiY2FtbF9hdGFuaF9mbG9hdCIsImNhbWxfbWxfY29uZGl0aW9uX3NpZ25hbCIsImNhbWxfdW5peF9maW5kbmV4dCIsImNhbWxfbWxfb3V0cHV0X2J5dGVzIiwiY2FtbF9tbF9vdXRwdXQiLCJjYW1sX21sX2RvbWFpbl9pZCIsImNhbWxfZXBoZV9nZXRfZGF0YSIsImNhbWxfeG1saHR0cHJlcXVlc3RfY3JlYXRlIiwiY2FtbF90cmFtcG9saW5lX3JldHVybiIsImNhbWxfbWxfaXNfYnVmZmVyZWQiLCJjYW1sX2FycmF5X2FwcGVuZCIsImNhbWxfdW5peF9nZXR0aW1lb2ZkYXkiLCJjYW1sX3VuaXhfdGltZSIsImNhbWxfbWxfc2V0X2NoYW5uZWxfcmVmaWxsIiwibWxfel9uZXh0cHJpbWUiLCJjYW1sX3J1bnRpbWVfZXZlbnRzX2NyZWF0ZV9jdXJzb3IiLCJjYW1sX2ZpbGxfYnl0ZXMiLCJjYW1sX2pzX2V4cHIiLCJjYW1sX21sX3J1bnRpbWVfd2FybmluZ3NfZW5hYmxlZCIsIm1sX3pfc3ViIiwibWxfel9mZGl2IiwibWxfel90b19iaXRzIiwiY2FtbF9vdXRwdXRfdmFsdWVfdG9fYnl0ZXMiLCJjYW1sX2V2ZW50bG9nX3Jlc3VtZSIsImNhbWxfbWQ1X3N0cmluZyIsImNhbWxfYXJyYXlfb2Zfc3RyaW5nIiwiY2FtbF9zdHJpbmdfZXF1YWwiLCJjYW1sX2pzb29fZmxhZ3NfdXNlX2pzX3N0cmluZyIsIm1sX3pfZGl2ZXhhY3QiLCJjYW1sX291dHB1dF92YWx1ZV90b19idWZmZXIiLCJyZV9yZXBsYWNlbWVudF90ZXh0IiwicmVwbCIsIm9yaWciLCJjdXIiLCJjYW1sX3B1cmVfanNfZXhwciIsImNhbWxfYmxpdF9zdHJpbmciLCJibGl0X25hdCIsImNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYnl0ZXMiLCJiYTEiLCJieXRlczIiLCJjYW1sX3VuaXhfc3RhdCIsImNhbWxfcmVnaXN0ZXJfbmFtZWRfdmFsdWUiLCJqc29vX2NyZWF0ZV9maWxlX2V4dGVybiIsImNhbWxfdW5peF9zdGF0XzY0IiwiY2FtbF90b19qc19zdHJpbmciLCJjYW1sX21sX211dGV4X2xvY2siLCJyZV9zZWFyY2hfZm9yd2FyZCIsImNhbWxfbWFrZV92ZWN0IiwiaW5pdCIsImNhbWxfbWxfc2Vla19pbiIsImNhbWxfc3lzX3JlYWRfZGlyZWN0b3J5IiwiY2FtbF9tbF9vdXRwdXRfY2hhciIsImNhbWxfc3lzX2NvbnN0X29zdHlwZV93aW4zMiIsImNhbWxfb2JqX2lzX2Jsb2NrIiwiY2FtbF9vYmpfc2V0X3Jhd19maWVsZCIsImNhbWxfanNfdmFyIiwiY2FtbF90cnVuY19mbG9hdCIsImNhbWxfemFyaXRoX21hcnNoYWwiLCJjYW1sX2VwaGVfdW5zZXRfZGF0YSIsImNhbWxfZXBoZV9zZXRfZGF0YSIsImNhbWxfZXBoZV9ibGl0X2RhdGEiLCJjYW1sX2lzX3ByaW50YWJsZSIsImNhbWxfYnl0ZXNfbGVzc2VxdWFsIiwiY2FtbF9hcnJheV9vZl9ieXRlcyIsImNhbWxfZXF1YWwiLCJyZV9wYXJ0aWFsX21hdGNoIiwiY2FtbF9zeXNfcmFuZG9tX3NlZWQiLCJidWZmIiwibm93IiwiYWxsX2ZpbmFsaXplcnMiLCJjYW1sX2ZpbmFsX3JlZ2lzdGVyX2NhbGxlZF93aXRob3V0X3ZhbHVlIiwiY2IiLCJjYW1sX2JhX2dldF8yIiwiY2FtbF9iYV91aW50OF9zZXQxNiIsImNhbWxfbGF6eV9yZXNldF90b19sYXp5IiwiY2FtbF9qc19kZWxldGUiLCJjYW1sX2ludF9vZl9zdHJpbmciLCJjYW1sX2xpc3RfbW91bnRfcG9pbnQiLCJwcmV2IiwiY2FtbF9tYXJzaGFsX2NvbnN0YW50cyIsImNhbWxfb2JqX3Jhd19maWVsZCIsImNhbWxfanNfZXF1YWxzIiwiY2FtbF9vYmpfY29tcGFyZV9hbmRfc3dhcCIsImJpZ3N0cmluZ190b190eXBlZF9hcnJheSIsIm1sX3pfZml0c19uYXRpdmVpbnQiLCJjYW1sX2dyX2FyY19hdXgiLCJjeCIsImN5IiwicnkiLCJyeCIsInJvdCIsInhQb3MiLCJ5UG9zIiwieFBvc19wcmV2IiwieVBvc19wcmV2Iiwic3BhY2UiLCJkZWx0YSIsImNhbWxfZ3JfZmlsbF9hcmMiLCJjYW1sX2JhX3NsaWNlIiwibnVtX2luZHMiLCJzdWJfZGltcyIsIm1sX3pfb2ZfbmF0aXZlaW50IiwiY2FtbF9qc193cmFwX2NhbGxiYWNrX3Vuc2FmZSIsImNhbWxfYmFfa2luZCIsImNhbWxfYWxsb2NfZHVtbXlfaW5maXgiLCJjYW1sX2pzX2Z1bl9jYWxsIiwiY2FtbF9nY19tYWpvcl9zbGljZSIsIndvcmsiLCJtbF96X2ludmVydCIsIm1sX3pfcG93bSIsInozIiwiaW52IiwibWxfel9wb3dtX3NlYyIsImNhbWxfanNfcHVyZV9leHByIiwiY29tcGFyZV9kaWdpdHNfbmF0IiwiY2FtbF9tbF9pbnB1dCIsImNhbWxfZ3Jfd2FpdF9ldmVudCIsIl9ldmwiLCJjYW1sX2dyX3NpZ2lvX2hhbmRsZXIiLCJjYW1sX2hhc2hfbWl4X2JpZ3N0cmluZyIsImNhbWxfcmVjb3JkX2JhY2t0cmFjZSIsImNhbWxfdW5peF9jbGVhbnVwIiwiY2FtbF9zeXNfZ2V0X2NvbmZpZyIsImNhbWxfc3lzX2NvbnN0X2JhY2tlbmRfdHlwZSIsImNhbWxfb2JqX2lzX3NoYXJlZCIsImNhbWxfbWxfb3V0X2NoYW5uZWxzX2xpc3QiLCJjYW1sX2FzaW5oX2Zsb2F0IiwibWxfel9oYXNoIiwiYWNjIiwiY2FtbF9wb3Nfb3V0IiwiYmlnc3RyaW5nX29mX2FycmF5X2J1ZmZlciIsImNhbWxfbW9kIiwiY2FtbF9iYV9pbml0IiwiY2FtbF91bml4X2ZpbGVkZXNjcl9vZl9mZCIsInJlX3N0cmluZ19tYXRjaCIsIkJpZ1N0cmluZ1JlYWRlciIsImNhbWxfZ3JfZHVtcF9pbWFnZSIsImNhbWxfYmFfZ2V0X2dlbmVyaWMiLCJjYW1sX3VuaXhfc3RhcnR1cCIsImNhbWxfZ2V0X2V4Y2VwdGlvbl9iYWNrdHJhY2UiLCJjYW1sX2Zvcm1hdF9mbG9hdCIsInRvRml4ZWQiLCJkcCIsInByZWMiLCJjYW1sX21vdW50X2F1dG9sb2FkIiwibWxfel9maXRzX2ludDY0IiwibWxfel9lcXVhbCIsIm1sX3pfc3FydF9yZW0iLCJkaWZmIiwiY2FtbF9zdHJpbmdfbGVzc3RoYW4iLCJjYW1sX3N0cmluZ19ncmVhdGVydGhhbiIsImNhbWxfZGl2IiwiY2FtbF9vYmpfZHVwIiwiY2FtbF9lcGhlX2dldF9kYXRhX2NvcHkiLCJjYW1sX21lbXByb2Zfc3RhcnQiLCJyYXRlIiwic3RhY2tfc2l6ZSIsInRyYWNrZXIiLCJtbF96X3BlcmZlY3Rfc3F1YXJlIiwiY2FtbF9zeXNfZ2V0X2FyZ3YiLCJjYW1sX21sX2RvbWFpbl9zZXRfbmFtZSIsIl9uYW1lIiwiY2FtbF9qc190b19ib29sIiwiY2FtbF9ncl9jcmVhdGVfaW1hZ2UiLCJjYW1sX2VwaGVfZ2V0X2tleV9jb3B5IiwiY2FtbF9sZXNzdGhhbiIsImNhbWxfcmF3X2JhY2t0cmFjZV9uZXh0X3Nsb3QiLCJtbF96X3RvX25hdGl2ZWludCIsImNhbWxfYnVpbGRfc3ltYm9scyIsInRvYyIsInN5bWIiLCJjYW1sX3JlZ2lzdGVyX2dsb2JhbCIsIm5hbWVfb3B0IiwibmlkIiwibXVsdF9uYXQiLCJsZW4zIiwic3F1YXJlX25hdCIsImNhbWxfanNfZnJvbV9mbG9hdCIsImNhbWxfZmxvYXRhcnJheV9jcmVhdGUiLCJjYW1sX2djX3N0YXQiLCJjYW1sX2dldF9tYWpvcl9jcmVkaXQiLCJjYW1sX3N5c19tb2RpZnlfYXJndiIsImNhbWxfbWV0aG9kX2NhY2hlIiwiY2FtbF9nZXRfcHVibGljX21ldGhvZCIsIm9iaiIsImNhY2hlaWQiLCJtZXRocyIsImxpIiwiY2FtbF9qc19nZXRfY29uc29sZSIsImNhbWxfc3lzX3Vuc2FmZV9nZXRlbnYiLCJjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9pbiIsInJlZmlsbCIsImNoYW5uZWwiLCJiaWdzdHJpbmdfb2ZfdHlwZWRfYXJyYXkiLCJjYW1sX3JvdW5kX2Zsb2F0IiwibWxfel9vZl9iaXRzIiwiYmFzZTEiLCJjYW1sX29qc19uZXdfYXJyIiwiRiIsImNvbXBsZW1lbnRfbmF0IiwibWxfel9sb2d4b3IiLCJjYW1sX2RvbWFpbl9kbHMiLCJjYW1sX2RvbWFpbl9kbHNfc2V0IiwiY2FtbF9sYXp5X3JlYWRfcmVzdWx0IiwiY2FtbF9qc19yZWdleHBzIiwiY2FtbF9qc19odG1sX2VzY2FwZSIsImNhbWxfYmFfZGltXzIiLCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja19hcmd1bWVudHMiLCJjYW1sX3NpbmhfZmxvYXQiLCJjYW1sX2xkZXhwX2Zsb2F0IiwiY2FtbF9ncl9zdGF0ZV9zZXQiLCJjYW1sX3phcml0aF91bm1hcnNoYWwiLCJuZWdhdGUiLCJtbF96X3RyYWlsaW5nX3plcm9zIiwiY2FtbF9qc193cmFwX2NhbGxiYWNrX3N0cmljdCIsImFyaXR5IiwiY2FtbF9nY19taW5vcl93b3JkcyIsImNhbWxfZ2V0X2N1cnJlbnRfY2FsbHN0YWNrIiwibGFuZF9kaWdpdF9uYXQiLCJjYW1sX2ludDY0X21vZCIsImNhbWxfb2JqX3NldF90YWciLCJjYW1sX2ludDMyX2Jzd2FwIiwiY2FtbF9iYV9zZXRfMyIsIm1sX3pfamFjb2JpIiwibjEiLCJtbF96X2xlZ2VuZHJlIiwiY2FtbF9qc19pbnN0YW5jZW9mIiwiY2FtbF9nZXRfbWFqb3JfYnVja2V0IiwibnRoX2RpZ2l0X25hdF9uYXRpdmUiLCJzZXRfZGlnaXRfbmF0X25hdGl2ZSIsImNhbWxfc3RyaW5nX3NldDY0IiwiY2FtbF9ncl9zdGF0ZV9jcmVhdGUiLCJjYW52YXMiLCJjb250ZXh0IiwiY2FtbF9ncl9kcmF3X2FyYyIsImNhbWxfYmFfbWFwX2ZpbGUiLCJ2ZmQiLCJzaGFyZWQiLCJjYW1sX2JhX21hcF9maWxlX2J5dGVjb2RlIiwiYXJnbiIsImNhbWxfYmFfY3JlYXRlX2Zyb20iLCJkYXRhMSIsImRhdGEyIiwianN0eXAiLCJjYW1sX3RhbmhfZmxvYXQiLCJjYW1sX3J1bnRpbWVfZXZlbnRzX3N0YXJ0IiwiY2FtbF9ncl9kcmF3X3N0ciIsImR4IiwiY2FtbF9ncl9kcmF3X3N0cmluZyIsIm1sX3pfcHJpbW9yaWFsIiwiY2FtbF9ncl9kcmF3X2NoYXIiLCJjYW1sX3VubW91bnQiLCJjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2JhIiwibWxfel9maWIiLCJjYW1sX2lucHV0X3ZhbHVlX2Zyb21fc3RyaW5nIiwiY2FtbF9tbF9wb3NfaW5fNjQiLCJjYW1sX2dyX2RyYXdfaW1hZ2UiLCJpbWFnZSIsImNhbWxfcmVnaXN0ZXJfY2hhbm5lbF9mb3Jfc3BhY2V0aW1lIiwiX2NoYW5uZWwiLCJjYW1sX3N0cmluZ19zZXQiLCJjYW1sX3N5c19ybWRpciIsImNhbWxfdW5peF9zeW1saW5rIiwic3JjX3Jvb3QiLCJkc3Rfcm9vdCIsImNhbWxfbWxfcG9zX291dCIsImNhbWxfc3BhY2V0aW1lX2VuYWJsZWQiLCJjYW1sX2J5dGVzX25vdGVxdWFsIiwiY2FtbF9ydW50aW1lX3BhcmFtZXRlcnMiLCJjYW1sX2pzX29iamVjdCIsImNhbWxfYmFfY3JlYXRlIiwiZGltc19tbCIsImNhbWxfZ3JfcmVtZW1iZXJfbW9kZSIsImNhbWxfZm1hX2Zsb2F0IiwiU1BMSVQiLCJNSU5fVkFMVUUiLCJFUFNJTE9OIiwiQyIsIkEiLCJCIiwibXVsdGlwbHkiLCJhdCIsImFoaSIsImFsbyIsImJoaSIsImJsbyIsImFkanVzdCIsInNjYWxlIiwieHMiLCJ5cyIsInpzIiwieHkiLCJ1IiwiY2FtbF9yZWNvbW1lbmRlZF9kb21haW5fY291bnQiLCJjYW1sX2Jzd2FwMTYiLCJjYW1sX21sX3NldF9iaW5hcnlfbW9kZSIsImNhbWxfZmluYWxfcmVnaXN0ZXIiLCJjYW1sX2dyX2RyYXdfcmVjdCIsImNhbWxfc3RyaW5nX2dldDE2IiwiY2FtbF9vdXRwdXRfdmFsdWUiLCJjYW1sX2JhX2dldF8zIiwiY2FtbF9lcGhlX2JsaXRfa2V5IiwibWxfel90b19pbnQzMiIsImNhbWxfaW5pdGlhbF90aW1lIiwiY2FtbF9zeXNfdGltZSIsImNhbWxfc3lzX3RpbWVfaW5jbHVkZV9jaGlsZHJlbiIsImNhbWxfY2hlY2tfYm91bmQiLCJjYW1sX3VuaXhfZ2V0cHd1aWQiLCJtbF96X2NvbXBhcmUiLCJjYW1sX2hhc2giLCJsaW1pdCIsInNlZWQiLCJxdWV1ZSIsInJkIiwid3IiLCJjYW1sX2JhX3RvX3R5cGVkX2FycmF5IiwiY2FtbF9kb21haW5fZGxzX2dldCIsImNhbWxfYnl0ZXNfZ2V0MzIiLCJjYW1sX2ZyZXhwX2Zsb2F0IiwibWxfel9wcmVkIiwiY2FtbF9zdHJpbmdfZ2V0NjQiLCJjYW1sX2pzX2Vycm9yX29wdGlvbl9vZl9leGNlcHRpb24iLCJjYW1sX21sX3Bvc19vdXRfNjQiLCJtbF96X3JlbW92ZSIsIm1sX3pfZXh0cmFjdCIsIm1sX3pfb2ZfZmxvYXQiLCJmMSIsIm1sX3pfbG9nbm90IiwiY2FtbF91bml4X2ZpbmRjbG9zZSIsImNhbWxfZ3JfY2xvc2Vfc3Vid2luZG93IiwiY2FtbF9mbG9hdGFycmF5X2JsaXQiLCJjYW1sX2dldF9taW5vcl9mcmVlIiwiY2FtbF9zZXRfc3RhdGljX2VudiIsImNhbWxfYmFfY2hhbmdlX2xheW91dCIsImNhbWxfanNfbmV3IiwiY2FtbF9ncl9jdXJyZW50X3kiLCJjYW1sX2Zvcm1hdF9pbnQiLCJqc29vX2VmZmVjdF9ub3Rfc3VwcG9ydGVkIiwiY2FtbF9jb250aW51YXRpb25fdXNlX2FuZF91cGRhdGVfaGFuZGxlcl9ub2V4YyIsImh2YWwiLCJoZXhuIiwiaGVmZiIsImNhbWxfb2JqX3RydW5jYXRlIiwiY2FtbF9qc190b19zdHJpbmciLCJpc19kaWdpdF9vZGQiLCJjYW1sX3J1bnRpbWVfdmFyaWFudCIsImNhbWxfbWxfb3Blbl9kZXNjcmlwdG9yX291dCIsImJ1ZmZlcmVkIiwiY2FtbF9hcnJheV9jb25jYXQiLCJjYW1sX2dyX29wZW5fZ3JhcGgiLCJpbmZvIiwic3BlY3MiLCJzdGF0dXMiLCJ3aW4iLCJkb2MiLCJ0aXRsZSIsImJvZHkiLCJjYW1sX21ha2VfZmxvYXRfdmVjdCIsImNhbWxfY2JydF9mbG9hdCIsImNhbWxfZXZlbnRsb2dfcGF1c2UiLCJjYW1sX21lbXByb2Zfc3RvcCIsImNhbWxfZ3JlYXRlcmVxdWFsIiwibWxfel9udW1iaXRzIiwidXBwZXJCb3VuZCIsImNhbWxfZ2V0X2V4Y2VwdGlvbl9yYXdfYmFja3RyYWNlIiwiY2FtbF9sb2cxcF9mbG9hdCIsImNhbWxfcnVudGltZV9ldmVudHNfZnJlZV9jdXJzb3IiLCJjYW1sX2xhenlfbWFrZV9mb3J3YXJkIiwibG9yX2RpZ2l0X25hdCIsImNhbWxfZ3JfYmxpdF9pbWFnZSIsImltMiIsImNhbWxfZ3Jfd2luZG93X2lkIiwiY2FtbF9qc19vbl9pZSIsInVhIiwiY2FtbF9pbnQ2NF9zaGlmdF9yaWdodCIsImNhbWxfYmFfbGF5b3V0IiwiY2FtbF9jb252ZXJ0X3Jhd19iYWNrdHJhY2UiLCJjYW1sX2FycmF5X3NldCIsIm5ld3ZhbCIsImNhbWxfYWxsb2Nfc3RhY2siLCJodiIsImh4IiwiaGYiLCJjYW1sX2J5dGVzX2dyZWF0ZXJlcXVhbCIsIm1sX3pfcGVyZmVjdF9wb3dlciIsImxvZzJ6IiwienAiLCJzZXRfZGlnaXRfbmF0IiwibWxfel9pbml0IiwiY2FtbF9ieXRlc19zZXQxNiIsImNhbWxfZ3JfZG9jX29mX3N0YXRlIiwiY2FtbF9tbF9vdXRwdXRfaW50IiwiY2FtbF9vYmpfd2l0aF90YWciLCJjYW1sX21sX2NoYW5uZWxfc2l6ZSIsImNhbWxfcmF3X2JhY2t0cmFjZV9zbG90IiwiY2FtbF9oZXhzdHJpbmdfb2ZfZmxvYXQiLCJzdHlsZSIsImV4cF9zaWduIiwic2lnbl9zdHIiLCJjc3QiLCJ4X3N0ciIsImNhbWxfcnVudGltZV9ldmVudHNfdXNlcl93cml0ZSIsImV2ZW50IiwiZXZlbnRfY29udGVudCIsImNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX3N0cmljdCIsIm1sX3pfZm9ybWF0IiwiY2FzIiwid2lkdGgiLCJhbHQiLCJwYWQiLCJwcmVmaXgiLCJwcmUiLCJtbF96X3NpemUiLCJtbF96X3RvX2ludDY0IiwibWFzayIsImNhbWxfdW5peF9yZWFkbGluayIsImNhbWxfYmFja3RyYWNlX3N0YXR1cyIsImNhbWxfaW5zdGFsbF9zaWduYWxfaGFuZGxlciIsImNhbWxfc3lzX2FyZ3YiLCJjYW1sX2JhX2ZpbGwiLCJjYW1sX21vZGZfZmxvYXQiLCJjYW1sX2djX2dldCIsImNhbWxfZmxvYXRfY29tcGFyZSIsIm1sX3pfc2hpZnRfcmlnaHRfdHJ1bmMiLCJjYW1sX3N0cmluZ19zZXQzMiIsImNhbWxfcGFyc2VfZW5naW5lIiwidGFibGVzIiwiZW52IiwiRVJSQ09ERSIsImxvb3AiLCJ0ZXN0c2hpZnQiLCJzaGlmdF9yZWNvdmVyIiwicmVkdWNlIiwiUkVBRF9UT0tFTiIsIlJBSVNFX1BBUlNFX0VSUk9SIiwiR1JPV19TVEFDS1NfMSIsIkdST1dfU1RBQ0tTXzIiLCJDT01QVVRFX1NFTUFOVElDX0FDVElPTiIsIkNBTExfRVJST1JfRlVOQ1RJT04iLCJlbnZfc19zdGFjayIsImVudl92X3N0YWNrIiwiZW52X3N5bWJfc3RhcnRfc3RhY2siLCJlbnZfc3ltYl9lbmRfc3RhY2siLCJlbnZfc3RhY2tzaXplIiwiZW52X3N0YWNrYmFzZSIsImVudl9jdXJyX2NoYXIiLCJlbnZfbHZhbCIsImVudl9zeW1iX3N0YXJ0IiwiZW52X3N5bWJfZW5kIiwiZW52X2FzcCIsImVudl9ydWxlX2xlbiIsImVudl9ydWxlX251bWJlciIsImVudl9zcCIsImVudl9zdGF0ZSIsImVudl9lcnJmbGFnIiwidGJsX3RyYW5zbF9jb25zdCIsInRibF90cmFuc2xfYmxvY2siLCJ0YmxfbGhzIiwidGJsX2xlbiIsInRibF9kZWZyZWQiLCJ0YmxfZGdvdG8iLCJ0Ymxfc2luZGV4IiwidGJsX3JpbmRleCIsInRibF9naW5kZXgiLCJ0YmxfdGFibGVzaXplIiwidGJsX3RhYmxlIiwidGJsX2NoZWNrIiwidGJsX25hbWVzX2NvbnN0IiwidGJsX25hbWVzX2Jsb2NrIiwibG9nIiwidG9rZW5fbmFtZSIsIm5hbWVzIiwicHJpbnRfdG9rZW4iLCJ0b2siLCJ0b2tlbiIsIm4yIiwic3RhdGUxIiwic3AiLCJlcnJmbGFnIiwiYXNwIiwiY2FtbF9qc29vX2ZsYWdzX2VmZmVjdHMiLCJjYW1sX3VwZGF0ZV9kdW1teSIsImNhbWxfYXJyYXlfZmlsbCIsImNhbWxfc3lzX21rZGlyIiwiY2FtbF9zdHJpbmdfbm90ZXF1YWwiLCJjYW1sX2J5dGVzX2dyZWF0ZXJ0aGFuIiwiY2FtbF9ncl9tYWtlX2ltYWdlIiwiY2FtbF9tbF9zZXRfY2hhbm5lbF9vdXRwdXQiLCJjYW1sX3JlYWRfZmlsZV9jb250ZW50IiwiY2FtbF9qc190b19mbG9hdCIsImNhbWxfc2V0dXBfdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIiLCJvcmlnaW4iLCJlcmFzZV9yZWwiLCJyZXN0IiwicmVzdCQwIiwicmVzdCQxIiwicmVzdCQyIiwicmVzdCQzIiwicmVzdCQ0IiwicmVzdCQ1IiwicmVzdCQ2IiwicmVzdCQ3IiwidHkiLCJyZXN0JDgiLCJ0eTEiLCJyZXN0JDkiLCJyZXN0JDEwIiwicmVzdCQxMSIsInJlc3QkMTIiLCJyZXN0JDEzIiwiY29uY2F0X2ZtdHR5IiwiZm10dHkxIiwiZm10dHkyIiwidHkyIiwiY29uY2F0X2ZtdCIsImZtdDEiLCJmbXQyIiwicGFkIiwicGFkJDAiLCJwcmVjIiwicGFkJDEiLCJpY29udiIsInByZWMkMCIsInBhZCQyIiwiaWNvbnYkMCIsInByZWMkMSIsInBhZCQzIiwiaWNvbnYkMSIsInByZWMkMiIsInBhZCQ0IiwiaWNvbnYkMiIsInByZWMkMyIsInBhZCQ1IiwiZmNvbnYiLCJwYWQkNiIsInN0ciIsImNociIsImZtdHR5IiwicGFkJDciLCJmbXR0eSQwIiwicGFkJDgiLCJyZXN0JDE0IiwicmVzdCQxNSIsInJlc3QkMTYiLCJmbXRpbmdfbGl0IiwicmVzdCQxNyIsImZtdGluZ19nZW4iLCJyZXN0JDE4IiwicmVzdCQxOSIsImNoYXJfc2V0Iiwid2lkdGhfb3B0IiwicmVzdCQyMCIsImNvdW50ZXIiLCJyZXN0JDIxIiwicmVzdCQyMiIsImlnbiIsInJlc3QkMjMiLCJmIiwiYXJpdHkiLCJtYWtlIiwidiIsImdldCIsInIiLCJzZXQiLCJleGNoYW5nZSIsImN1ciIsImNvbXBhcmVfYW5kX3NldCIsInNlZW4iLCJmZXRjaF9hbmRfYWRkIiwibiIsImluY3IiLCJkZWNyIiwiZmFpbHdpdGgiLCJzIiwiaW52YWxpZF9hcmciLCJtaW4iLCJ4IiwieSIsIm1heCIsImFicyIsImxub3QiLCJpbmZpbml0eSIsIm5lZ19pbmZpbml0eSIsIm5hbiIsIm1heF9mbG9hdCIsIm1pbl9mbG9hdCIsImVwc2lsb25fZmxvYXQiLCJtYXhfaW50IiwibWluX2ludCIsInN5bWJvbCIsInMxIiwiczIiLCJsMSIsImwyIiwiY2hhcl9vZl9pbnQiLCJzdHJpbmdfb2ZfYm9vbCIsImIiLCJib29sX29mX3N0cmluZyIsImJvb2xfb2Zfc3RyaW5nX29wdCIsInN0cmluZ19vZl9pbnQiLCJpbnRfb2Zfc3RyaW5nX29wdCIsInZhbGlkX2Zsb2F0X2xleGVtIiwibCIsImkiLCJpJDAiLCJzdHJpbmdfb2ZfZmxvYXQiLCJmbG9hdF9vZl9zdHJpbmdfb3B0Iiwic3ltYm9sJDAiLCJ0bCIsImhkIiwic3RkaW4iLCJzdGRvdXQiLCJzdGRlcnIiLCJvcGVuX291dF9nZW4iLCJtb2RlIiwicGVybSIsIm5hbWUiLCJjIiwib3Blbl9vdXQiLCJvcGVuX291dF9iaW4iLCJmbHVzaF9hbGwiLCJhIiwib3V0cHV0X2J5dGVzIiwib2MiLCJvdXRwdXRfc3RyaW5nIiwib3V0cHV0Iiwib2ZzIiwibGVuIiwib3V0cHV0X3N1YnN0cmluZyIsIm91dHB1dF92YWx1ZSIsImNoYW4iLCJjbG9zZV9vdXQiLCJjbG9zZV9vdXRfbm9lcnIiLCJvcGVuX2luX2dlbiIsIm9wZW5faW4iLCJvcGVuX2luX2JpbiIsImlucHV0IiwiaWMiLCJ1bnNhZmVfcmVhbGx5X2lucHV0Iiwib2ZzJDAiLCJsZW4kMCIsImxlbiQxIiwib2ZzJDEiLCJyZWFsbHlfaW5wdXQiLCJyZWFsbHlfaW5wdXRfc3RyaW5nIiwiaW5wdXRfbGluZSIsImJ1aWxkX3Jlc3VsdCIsImJ1ZiIsInBvcyQwIiwiYWNjdSIsImJlZyIsImFjY3UkMCIsInJlcyIsImNsb3NlX2luX25vZXJyIiwicHJpbnRfY2hhciIsInByaW50X3N0cmluZyIsInByaW50X2J5dGVzIiwicHJpbnRfaW50IiwicHJpbnRfZmxvYXQiLCJwcmludF9lbmRsaW5lIiwicHJpbnRfbmV3bGluZSIsInByZXJyX2NoYXIiLCJwcmVycl9zdHJpbmciLCJwcmVycl9ieXRlcyIsInByZXJyX2ludCIsInByZXJyX2Zsb2F0IiwicHJlcnJfZW5kbGluZSIsInByZXJyX25ld2xpbmUiLCJyZWFkX2xpbmUiLCJyZWFkX2ludCIsInJlYWRfaW50X29wdCIsInJlYWRfZmxvYXQiLCJyZWFkX2Zsb2F0X29wdCIsInN0cmluZ19vZl9mb3JtYXQiLCJzeW1ib2wkMSIsInN0cjIiLCJzdHIxIiwiZXhpdF9mdW5jdGlvbiIsImF0X2V4aXQiLCJmX3lldF90b19ydW4iLCJvbGRfZXhpdCIsIm5ld19leGl0JDAiLCJuZXdfZXhpdCIsInN1Y2Nlc3MiLCJkb19hdF9leGl0IiwiZXhpdCIsInJldGNvZGUiLCJmbHVzaCIsIm91dHB1dF9jaGFyIiwib3V0cHV0X2J5dGUiLCJvdXRwdXRfYmluYXJ5X2ludCIsInNlZWtfb3V0IiwicG9zX291dCIsIm91dF9jaGFubmVsX2xlbmd0aCIsInNldF9iaW5hcnlfbW9kZV9vdXQiLCJpbnB1dF9jaGFyIiwiaW5wdXRfYnl0ZSIsImlucHV0X2JpbmFyeV9pbnQiLCJpbnB1dF92YWx1ZSIsInNlZWtfaW4iLCJwb3NfaW4iLCJpbl9jaGFubmVsX2xlbmd0aCIsImNsb3NlX2luIiwic2V0X2JpbmFyeV9tb2RlX2luIiwibGVmdCIsInJpZ2h0IiwiaXNfbGVmdCIsImlzX3JpZ2h0IiwiZmluZF9sZWZ0IiwiZmluZF9yaWdodCIsIm1hcF9sZWZ0IiwiZSIsIm1hcF9yaWdodCIsIm1hcCIsInYkMCIsImZvbGQiLCJlcXVhbCIsImUxIiwiZTIiLCJ2MSIsInYyIiwidjEkMCIsInYyJDAiLCJjb21wYXJlIiwiaXNfYmxvY2siLCJkb3VibGVfZmllbGQiLCJzZXRfZG91YmxlX2ZpZWxkIiwiZmlyc3Rfbm9uX2NvbnN0YW50X2NvbnN0cnVjdG9yIiwibGFzdF9ub25fY29uc3RhbnRfY29uc3RydWN0b3JfIiwibGF6eV90YWciLCJjbG9zdXJlX3RhZyIsIm9iamVjdF90YWciLCJpbmZpeF90YWciLCJmb3J3YXJkX3RhZyIsIm5vX3NjYW5fdGFnIiwiYWJzdHJhY3RfdGFnIiwic3RyaW5nX3RhZyIsImRvdWJsZV90YWciLCJkb3VibGVfYXJyYXlfdGFnIiwiY3VzdG9tX3RhZyIsImludF90YWciLCJvdXRfb2ZfaGVhcF90YWciLCJ1bmFsaWduZWRfdGFnIiwiaW5mbyIsIm9iaiIsInN0YXJ0X2VudiIsIm9mX3ZhbCIsInNsb3QiLCJpZCIsImV4dGVuc2lvbl9jb25zdHJ1Y3RvciIsImV4dGVuc2lvbl9uYW1lIiwiZXh0ZW5zaW9uX2lkIiwibWF4X2VwaGVfbGVuZ3RoIiwiY3JlYXRlIiwibGVuZ3RoIiwicmFpc2VfaWZfaW52YWxpZF9vZmZzZXQiLCJvIiwibXNnIiwiZ2V0X2tleSIsImdldF9rZXlfY29weSIsInNldF9rZXkiLCJ1bnNldF9rZXkiLCJjaGVja19rZXkiLCJibGl0X2tleSIsIm8xIiwibzIiLCJyYWlzZV91bmRlZmluZWQiLCJmb3JjZV9sYXp5X2Jsb2NrIiwiYmxrIiwiY2xvc3VyZSIsInJlc3VsdCIsImUkMCIsImZvcmNlX3ZhbF9sYXp5X2Jsb2NrIiwiZm9yY2UiLCJsenYiLCJ0IiwiZm9yY2VfdmFsIiwiZnJvbV9mdW4iLCJmcm9tX3ZhbCIsImlzX3ZhbCIsIm1hcF92YWwiLCJlbXB0eSIsInJldHVybiQwIiwiY29ucyIsIm5leHQiLCJhcHBlbmQiLCJzZXExIiwic2VxMiIsInNlcSIsImZpbHRlcl9tYXAiLCJzZXEkMCIsImZpbHRlciIsImNvbmNhdCIsImZsYXRfbWFwIiwiZm9sZF9sZWZ0IiwiYWNjIiwiYWNjJDAiLCJhY2MkMSIsIml0ZXIiLCJ1bmZvbGQiLCJ1IiwidSQwIiwiaXNfZW1wdHkiLCJ4cyIsInVuY29ucyIsInhzJDAiLCJ4cyQxIiwiaXRlcmkiLCJmb2xkX2xlZnRpIiwiYWNjdSQxIiwiZm9yX2FsbCIsInAiLCJleGlzdHMiLCJmaW5kIiwiZmluZF9tYXAiLCJpdGVyMiIsInlzIiwieXMkMCIsInlzJDEiLCJmb2xkX2xlZnQyIiwiZm9yX2FsbDIiLCJleGlzdHMyIiwiZXEiLCJjbXAiLCJpbml0X2F1eCIsImoiLCJpbml0IiwicmVwZWF0IiwiZm9yZXZlciIsImN5Y2xlX25vbmVtcHR5IiwiY3ljbGUiLCJpdGVyYXRlMSIsIml0ZXJhdGUiLCJtYXBpX2F1eCIsIm1hcGkiLCJ0YWlsX3NjYW4iLCJzJDAiLCJzY2FuIiwidGFrZV9hdXgiLCJ0YWtlIiwiZHJvcCIsIm4kMCIsIm4kMSIsInRha2Vfd2hpbGUiLCJkcm9wX3doaWxlIiwibm9kZSIsImdyb3VwIiwidG9fbGF6eSIsImZhaWx1cmUiLCJtZW1vaXplIiwib25jZSIsImFjdGlvbiIsInppcCIsIm1hcDIiLCJpbnRlcmxlYXZlIiwic29ydGVkX21lcmdlMSIsInNvcnRlZF9tZXJnZSIsIm1hcF9mc3QiLCJ4eXMiLCJ4eXMkMCIsIm1hcF9zbmQiLCJ1bnppcCIsImZpbHRlcl9tYXBfZmluZF9sZWZ0X21hcCIsImZpbHRlcl9tYXBfZmluZF9yaWdodF9tYXAiLCJ6IiwicGFydGl0aW9uX21hcCIsInBhcnRpdGlvbiIsInBlZWwiLCJ4c3MiLCJ0cmFuc3Bvc2UiLCJ0YWlscyIsImhlYWRzIiwicmVtYWluZGVycyIsInhzcyQwIiwidGFpbHMkMCIsImhlYWRzJDAiLCJtYXBfcHJvZHVjdCIsInByb2R1Y3QiLCJvZl9kaXNwZW5zZXIiLCJpdCIsInRvX2Rpc3BlbnNlciIsImludHMiLCJub25lIiwic29tZSIsInZhbHVlIiwiZGVmYXVsdCQwIiwiYmluZCIsImpvaW4iLCJpc19ub25lIiwiaXNfc29tZSIsIm8wIiwidjAiLCJ0b19yZXN1bHQiLCJ0b19saXN0IiwidG9fc2VxIiwib2siLCJlcnJvciIsImdldF9vayIsImdldF9lcnJvciIsIm1hcF9lcnJvciIsIml0ZXJfZXJyb3IiLCJpc19vayIsImlzX2Vycm9yIiwicjAiLCJyMSIsImUwIiwidG9fb3B0aW9uIiwidG9fZmxvYXQiLCJ0b19zdHJpbmciLCJlc2NhcGVkIiwibG93ZXJjYXNlIiwidXBwZXJjYXNlIiwibG93ZXJjYXNlX2FzY2lpIiwidXBwZXJjYXNlX2FzY2lpIiwiYzEiLCJjMiIsImVycl9ub19wcmVkIiwiZXJyX25vX3N1Y2MiLCJsb19ib3VuZCIsImhpX2JvdW5kIiwiYm9tIiwicmVwIiwic3VjYyIsInByZWQiLCJpc192YWxpZCIsIm9mX2ludCIsImlzX2NoYXIiLCJvZl9jaGFyIiwidG9fY2hhciIsInVuc2FmZV90b19jaGFyIiwiaGFzaCIsInV0Zl9kZWNvZGVfaXNfdmFsaWQiLCJkIiwidXRmX2RlY29kZV9sZW5ndGgiLCJ1dGZfZGVjb2RlX3VjaGFyIiwidXRmX2RlY29kZSIsInV0Zl9kZWNvZGVfaW52YWxpZCIsInV0Zl84X2J5dGVfbGVuZ3RoIiwidXRmXzE2X2J5dGVfbGVuZ3RoIiwibCQwIiwibnRoIiwibCQxIiwibnRoX29wdCIsInJldl9hcHBlbmQiLCJsMSQwIiwibDIkMCIsImwxJDEiLCJsMiQxIiwicmV2IiwicmV2X2luaXRfdGhyZXNob2xkIiwiZmxhdHRlbiIsInJldl9tYXAiLCJmb2xkX3JpZ2h0IiwiYTIiLCJhMSIsInJldl9tYXAyIiwiZm9sZF9yaWdodDIiLCJtZW0iLCJtZW1xIiwiYXNzb2MiLCJhc3NvY19vcHQiLCJhc3NxIiwiYXNzcV9vcHQiLCJtZW1fYXNzb2MiLCJtZW1fYXNzcSIsInJlbW92ZV9hc3NvYyIsInBhaXIiLCJyZW1vdmVfYXNzcSIsImZpbmRfb3B0IiwiZmluZF9hbGwiLCJmaWx0ZXJpIiwiY29uY2F0X21hcCIsImZvbGRfbGVmdF9tYXAiLCJsX2FjY3UiLCJ4JDAiLCJ5ZXMiLCJubyIsInNwbGl0IiwicnkiLCJyeCIsImNvbWJpbmUiLCJtZXJnZSIsInQyIiwiaDIiLCJ0MSIsImgxIiwic3RhYmxlX3NvcnQiLCJzb3J0IiwieDIiLCJ4MSIsInRsJDEiLCJ4MyIsIngyJDAiLCJ4MSQwIiwibjEiLCJuMiIsInJldl9zb3J0IiwidGwkMCIsInNvcnRfdW5pcSIsImMkMCIsImMkMSIsImMkMiIsImMkMyIsImMkNCIsImMkNSIsImMkNiIsImFjY3UkMiIsImNvbXBhcmVfbGVuZ3RocyIsImNvbXBhcmVfbGVuZ3RoX3dpdGgiLCJhdXgiLCJ0YWlsIiwib2Zfc2VxIiwiZGlyZWN0IiwiZGVwdGgiLCJ6ZXJvIiwib25lIiwibWludXNfb25lIiwibG9nbm90IiwiY29weSIsIm9mX3N0cmluZyIsInN1YiIsInN1Yl9zdHJpbmciLCJleHRlbmQiLCJkc3RvZmYiLCJzcmNvZmYiLCJjcHlsZW4iLCJmaWxsIiwiYmxpdCIsIm9mczEiLCJvZnMyIiwiYmxpdF9zdHJpbmciLCJzZXAiLCJzZXBsZW4iLCJkc3QiLCJwb3MiLCJoZCQwIiwiY2F0IiwiaXNfc3BhY2UiLCJ0cmltIiwiYXBwbHkxIiwiY2FwaXRhbGl6ZV9hc2NpaSIsInVuY2FwaXRhbGl6ZV9hc2NpaSIsInN0YXJ0c193aXRoIiwicHJlZml4IiwibGVuX3MiLCJsZW5fcHJlIiwiZW5kc193aXRoIiwic3VmZml4IiwibGVuX3N1ZiIsImRpZmYiLCJpbmRleF9yZWMiLCJsaW0iLCJpJDEiLCJpbmRleCIsImluZGV4X3JlY19vcHQiLCJpbmRleF9vcHQiLCJpbmRleF9mcm9tIiwiaW5kZXhfZnJvbV9vcHQiLCJyaW5kZXhfcmVjIiwicmluZGV4IiwicmluZGV4X2Zyb20iLCJyaW5kZXhfcmVjX29wdCIsInJpbmRleF9vcHQiLCJyaW5kZXhfZnJvbV9vcHQiLCJjb250YWluc19mcm9tIiwiY29udGFpbnMiLCJyY29udGFpbnNfZnJvbSIsInNwbGl0X29uX2NoYXIiLCJjYXBpdGFsaXplIiwidW5jYXBpdGFsaXplIiwidG9fc2VxaSIsIm5ld19sZW4iLCJuZXdfYnVmIiwidW5zYWZlX2dldF91aW50MTZfbGUiLCJ1bnNhZmVfZ2V0X3VpbnQxNl9iZSIsImdldF9pbnQ4IiwiZ2V0X3VpbnQxNl9sZSIsImdldF91aW50MTZfYmUiLCJnZXRfaW50MTZfbmUiLCJnZXRfaW50MTZfbGUiLCJnZXRfaW50MTZfYmUiLCJnZXRfaW50MzJfbGUiLCJnZXRfaW50MzJfYmUiLCJnZXRfaW50NjRfbGUiLCJnZXRfaW50NjRfYmUiLCJ1bnNhZmVfc2V0X3VpbnQxNl9sZSIsInVuc2FmZV9zZXRfdWludDE2X2JlIiwic2V0X2ludDE2X2xlIiwic2V0X2ludDE2X2JlIiwic2V0X2ludDMyX2xlIiwic2V0X2ludDMyX2JlIiwic2V0X2ludDY0X2xlIiwic2V0X2ludDY0X2JlIiwic2V0X3VpbnQ4Iiwic2V0X3VpbnQxNl9uZSIsImRlY19pbnZhbGlkIiwiZGVjX3JldCIsIm5vdF9pbl94ODBfdG9feEJGIiwibm90X2luX3hBMF90b194QkYiLCJub3RfaW5feDgwX3RvX3g5RiIsIm5vdF9pbl94OTBfdG9feEJGIiwibm90X2luX3g4MF90b194OEYiLCJ1dGZfOF91Y2hhcl8zIiwiYjAiLCJiMSIsImIyIiwidXRmXzhfdWNoYXJfNCIsImIzIiwiZ2V0X3V0Zl84X3VjaGFyIiwiaSQ0IiwiYjEkMSIsImkkNSIsImIyJDEiLCJpJDYiLCJpJDEwIiwiYjEkMyIsImkkMTEiLCJiMiQzIiwiaSQxMiIsImIzJDEiLCJpJDciLCJiMSQyIiwiaSQ4IiwiYjIkMiIsImkkOSIsImIzJDAiLCJpJDEzIiwiYjEkNCIsImkkMTQiLCJiMiQ0IiwiaSQyIiwiYjEkMCIsImkkMyIsImIyJDAiLCJpJDE1IiwiYjEkNSIsInNldF91dGZfOF91Y2hhciIsImxhc3QkMSIsImxhc3QkMCIsImxhc3QiLCJpc192YWxpZF91dGZfOCIsImxhc3QkMyIsImxhc3QkMiIsImxhc3QkNCIsImxhc3QkNSIsImdldF91dGZfMTZiZV91Y2hhciIsImhpIiwibG8iLCJzZXRfdXRmXzE2YmVfdWNoYXIiLCJ1JDEiLCJpc192YWxpZF91dGZfMTZiZSIsImdldF91dGZfMTZsZV91Y2hhciIsInNldF91dGZfMTZsZV91Y2hhciIsImlzX3ZhbGlkX3V0Zl8xNmxlIiwiYnRzIiwiYm9zIiwib2ZfYnl0ZXMiLCJ0b19ieXRlcyIsImciLCJ0b19idWZmZXIiLCJidWZmIiwiZmxhZ3MiLCJoZWFkZXJfc2l6ZSIsImRhdGFfc2l6ZSIsInRvdGFsX3NpemUiLCJmcm9tX2J5dGVzIiwiZnJvbV9zdHJpbmciLCJtYWtlX2Zsb2F0IiwibWFrZV9tYXRyaXgiLCJzeCIsInN5IiwibGEiLCJsYiIsInJlcyQwIiwibGlzdF9sZW5ndGgiLCJvZl9saXN0IiwiaW5wdXRfYXJyYXkiLCJlbHQiLCJvdXRwdXRfYXJyYXkiLCJlbHQkMCIsImFjYyQyIiwiYTAiLCJiaSIsImFpIiwibmEiLCJuYiIsIm1heHNvbiIsImkzMSIsImUkMSIsImokMCIsImZhdGhlciIsInNyYzFvZnMiLCJzcmMxbGVuIiwic3JjMiIsInNyYzJvZnMiLCJzcmMybGVuIiwiZHN0b2ZzIiwic3JjMXIiLCJzcmMyciIsInMyJDEiLCJzMSQxIiwiaTEiLCJpMiIsImkyJDAiLCJkJDAiLCJzMiQwIiwiaTEkMCIsImQkMSIsInMxJDAiLCJpc29ydHRvIiwic3Jjb2ZzIiwic29ydHRvIiwiaXNfZmluaXRlIiwiaXNfaW5maW5pdGUiLCJpc19uYW4iLCJlcHNpbG9uIiwib2Zfc3RyaW5nX29wdCIsInBpIiwiaXNfaW50ZWdlciIsIm1pbl9tYXgiLCJtaW5fbnVtIiwibWF4X251bSIsIm1pbl9tYXhfbnVtIiwidW5zYWZlX2ZpbGwiLCJjaGVjayIsImhsZW4iLCJzcmMiLCJzb2ZzIiwiZG9mcyIsImgiLCJtZW1faWVlZSIsIm1hcF90b19hcnJheSIsIm1hcF9mcm9tX2FycmF5IiwibWF4X2ludCQwIiwidW5zaWduZWRfdG9faW50IiwidW5zaWduZWRfY29tcGFyZSIsIm0iLCJ1bnNpZ25lZF9kaXYiLCJxIiwidW5zaWduZWRfcmVtIiwic2l6ZSIsImR1bW15X3BvcyIsInplcm9fcG9zIiwiZW5naW5lIiwidGJsIiwic3RhdGUiLCJuZXdfZW5naW5lIiwiZnJvbV9mdW5jdGlvbiIsIm9wdCIsInJlYWRfZnVuIiwic3RoIiwid2l0aF9wb3NpdGlvbnMiLCJhdXhfYnVmZmVyIiwibGV4YnVmIiwicmVhZCIsIm5ld2xlbiIsIm5ld2J1ZiIsImZyb21fY2hhbm5lbCIsInNldF9wb3NpdGlvbiIsInBvc2l0aW9uIiwic2V0X2ZpbGVuYW1lIiwiZm5hbWUiLCJsZXhlbWUiLCJzdWJfbGV4ZW1lIiwic3ViX2xleGVtZV9vcHQiLCJzdWJfbGV4ZW1lX2NoYXIiLCJzdWJfbGV4ZW1lX2NoYXJfb3B0IiwibGV4ZW1lX2NoYXIiLCJsZXhlbWVfc3RhcnQiLCJsZXhlbWVfZW5kIiwibGV4ZW1lX3N0YXJ0X3AiLCJsZXhlbWVfZW5kX3AiLCJuZXdfbGluZSIsImxjcCIsImZsdXNoX2lucHV0IiwiZW52IiwiZ3Jvd19zdGFja3MiLCJvbGRzaXplIiwibmV3c2l6ZSIsIm5ld19zIiwibmV3X3YiLCJuZXdfc3RhcnQiLCJuZXdfZW5kIiwiY2xlYXJfcGFyc2VyIiwiY3VycmVudF9sb29rYWhlYWRfZnVuIiwieXlwYXJzZSIsInRhYmxlcyIsInN0YXJ0IiwibGV4ZXIiLCJpbml0X2FzcCIsImluaXRfc3AiLCJpbml0X3N0YWNrYmFzZSIsImluaXRfc3RhdGUiLCJpbml0X2N1cnJfY2hhciIsImluaXRfbHZhbCIsImluaXRfZXJyZmxhZyIsImNtZCIsImFyZyIsImFyZyQwIiwiZXhuJDAiLCJleG4iLCJjdXJyX2NoYXIiLCJ0b2siLCJwZWVrX3ZhbCIsInN5bWJvbF9zdGFydF9wb3MiLCJzdCIsImVuIiwic3ltYm9sX2VuZF9wb3MiLCJyaHNfc3RhcnRfcG9zIiwicmhzX2VuZF9wb3MiLCJzeW1ib2xfc3RhcnQiLCJzeW1ib2xfZW5kIiwicmhzX3N0YXJ0IiwicmhzX2VuZCIsImlzX2N1cnJlbnRfbG9va2FoZWFkIiwicGFyc2VfZXJyb3IiLCJoZWlnaHQiLCJobCIsImgkMCIsImhyIiwiYmFsIiwibHIiLCJsdiIsImxsIiwibHJyIiwibHJ2IiwibHJsIiwicnIiLCJydiIsInJsIiwicmxyIiwicmx2IiwicmxsIiwiYWRkIiwic2luZ2xldG9uIiwiYWRkX21pbl9lbGVtZW50IiwiYWRkX21heF9lbGVtZW50IiwicmgiLCJsaCIsIm1pbl9lbHQiLCJtaW5fZWx0X29wdCIsIm1heF9lbHQiLCJtYXhfZWx0X29wdCIsInJlbW92ZV9taW5fZWx0IiwiciQwIiwicHJlcyIsInByZXMkMCIsInJlbW92ZSIsInVuaW9uIiwicjIiLCJyMiQwIiwicjEkMCIsImludGVyIiwic3BsaXRfYmlzIiwiZGlzam9pbnQiLCJjb25zX2VudW0iLCJlMiQyIiwiZTEkMiIsImUyJDAiLCJlMSQwIiwiZTIkMSIsImUxJDEiLCJzdWJzZXQiLCJwdiIsImxmIiwibHQiLCJyZiIsInJ0IiwiY2FyZGluYWwiLCJlbGVtZW50c19hdXgiLCJlbGVtZW50cyIsImZpbmRfZmlyc3QiLCJ2MCQxIiwidjAkMCIsImZpbmRfZmlyc3Rfb3B0IiwiZmluZF9sYXN0IiwiZmluZF9sYXN0X29wdCIsInRyeV9qb2luIiwidiQxIiwieDAiLCJsJDMiLCJsJDQiLCJ4MCQwIiwibCQ1IiwieDAkMSIsIm5sIiwibWlkIiwibCQyIiwieDQiLCJhZGRfc2VxIiwic2VxX29mX2VudW0iLCJzbm9jX2VudW0iLCJyZXZfc2VxX29mX2VudW0iLCJ0b19yZXZfc2VxIiwidG9fc2VxX2Zyb20iLCJsb3ciLCJsZCIsImxyZCIsInJkIiwicmxkIiwiZGF0YSIsImQwJDEiLCJkMCIsImQwJDAiLCJtaW5fYmluZGluZyIsIm1pbl9iaW5kaW5nX29wdCIsIm1heF9iaW5kaW5nIiwibWF4X2JpbmRpbmdfb3B0IiwicmVtb3ZlX21pbl9iaW5kaW5nIiwidXBkYXRlIiwiZGF0YSQwIiwibSQwIiwiYWRkX21pbl9iaW5kaW5nIiwiayIsImFkZF9tYXhfYmluZGluZyIsImNvbmNhdF9vcl9qb2luIiwiZDEiLCJkMiIsImQyJDAiLCJkMSQwIiwiZDIkMSIsImQxJDEiLCJwdmQiLCJmdmQiLCJtMSIsIm0yIiwiYmluZGluZ3NfYXV4IiwiYmluZGluZ3MiLCJjbGVhciIsInB1c2giLCJwb3AiLCJwb3Bfb3B0IiwidG9wIiwidG9wX29wdCIsImNlbGwiLCJtYXRjaCIsInBlZWsiLCJjb250ZW50IiwicGVla19vcHQiLCJ0YWtlX29wdCIsImNlbGwkMCIsInFfcmVzIiwicHJldiIsInByZXYkMCIsInRyYW5zZmVyIiwicTEiLCJxMiIsImNvdW50IiwiZmlsbF9idWZmIiwiZ2V0X2RhdGEiLCJkMTEiLCJhJDAiLCJhJDEiLCJwZWVrX2RhdGEiLCJqdW5rX2RhdGEiLCJqdW5rIiwibmdldF9kYXRhIiwiYWwiLCJucGVlayIsInN0cm0iLCJmcm9tIiwib2ZfY2hhbm5lbCIsImlhcHAiLCJpY29ucyIsImlzaW5nIiwibGFwcCIsImxjb25zIiwibHNpbmciLCJzZW1wdHkiLCJzbGF6eSIsImR1bXAiLCJkdW1wX2RhdGEiLCJjb250ZW50cyIsInJlc2V0IiwicmVzaXplIiwibW9yZSIsIm9sZF9wb3MiLCJvbGRfbGVuIiwibmV3X2J1ZmZlciIsImFkZF9jaGFyIiwidWNoYXJfdXRmXzhfYnl0ZV9sZW5ndGhfbWF4IiwidWNoYXJfdXRmXzE2X2J5dGVfbGVuZ3RoX21heCIsImFkZF91dGZfOF91Y2hhciIsImFkZF91dGZfMTZiZV91Y2hhciIsImFkZF91dGZfMTZsZV91Y2hhciIsImFkZF9zdWJzdHJpbmciLCJvZmZzZXQiLCJuZXdfcG9zaXRpb24iLCJhZGRfc3ViYnl0ZXMiLCJhZGRfc3RyaW5nIiwiYWRkX2J5dGVzIiwiYWRkX2J1ZmZlciIsImJzIiwiYWRkX2NoYW5uZWwiLCJ0b19yZWFkJDEiLCJhbHJlYWR5X3JlYWQiLCJ0b19yZWFkIiwiYWxyZWFkeV9yZWFkJDAiLCJ0b19yZWFkJDAiLCJvdXRwdXRfYnVmZmVyIiwiYWRkX3N1YnN0aXR1dGUiLCJsaW0kMSIsInByZXZpb3VzIiwicHJldmlvdXMkMCIsInN0YXJ0JDAiLCJvcGVuaW5nIiwibGltJDAiLCJzdG9wJDAiLCJrJDIiLCJjbG9zaW5nIiwic3RvcCIsImskMCIsImskMSIsIm5leHRfaSIsImlkZW50IiwidHJ1bmNhdGUiLCJhZGRfaW50OCIsImFkZF9pbnQxNl9uZSIsImFkZF9pbnQzMl9uZSIsImFkZF9pbnQ2NF9uZSIsImFkZF9pbnQxNl9sZSIsImFkZF9pbnQxNl9iZSIsImFkZF9pbnQzMl9sZSIsImFkZF9pbnQzMl9iZSIsImFkZF9pbnQ2NF9sZSIsImFkZF9pbnQ2NF9iZSIsInN1Yl9mb3JtYXQiLCJmb3JtYXR0aW5nX2xpdCIsImNyZWF0ZV9jaGFyX3NldCIsImFkZF9pbl9jaGFyX3NldCIsInN0cl9pbmQiLCJtYXNrIiwiZnJlZXplX2NoYXJfc2V0IiwicmV2X2NoYXJfc2V0IiwiY2hhcl9zZXQkMCIsImlzX2luX2NoYXJfc2V0IiwicGFkX29mX3BhZF9vcHQiLCJwYWRfb3B0Iiwid2lkdGgiLCJwYXJhbV9mb3JtYXRfb2ZfaWdub3JlZF9mb3JtYXQiLCJmbXQiLCJwYWRfb3B0JDAiLCJwYWRfb3B0JDEiLCJwYWRfb3B0JDIiLCJwYWRfb3B0JDMiLCJwYWRfb3B0JDQiLCJwcmVjX29wdCIsInBhZF9vcHQkNSIsIm5kZWMiLCJwYWRfb3B0JDYiLCJwYWRfb3B0JDciLCJwYWRfb3B0JDgiLCJkZWZhdWx0X2Zsb2F0X3ByZWNpc2lvbiIsImJ1ZmZlcl9jcmVhdGUiLCJpbml0X3NpemUiLCJidWZmZXJfY2hlY2tfc2l6ZSIsIm92ZXJoZWFkIiwibWluX2xlbiIsIm5ld19zdHIiLCJidWZmZXJfYWRkX2NoYXIiLCJidWZmZXJfYWRkX3N0cmluZyIsInN0cl9sZW4iLCJidWZmZXJfY29udGVudHMiLCJjaGFyX29mX2ljb252IiwiY2hhcl9vZl9mY29udiIsImNGIiwiYnByaW50X3BhZHR5IiwicGFkdHkiLCJicHJpbnRfaWdub3JlZF9mbGFnIiwiaWduX2ZsYWciLCJicHJpbnRfcGFkX29wdCIsImJwcmludF9wYWRkaW5nIiwicGFkdHkkMCIsImJwcmludF9wcmVjaXNpb24iLCJicHJpbnRfaWNvbnZfZmxhZyIsImJwcmludF9hbHRpbnRfZm10IiwiYnByaW50X2Zjb252X2ZsYWciLCJzdHJpbmdfb2ZfZm9ybWF0dGluZ19saXQiLCJzdHIkMCIsImJwcmludF9jaGFyX2xpdGVyYWwiLCJicHJpbnRfc3RyaW5nX2xpdGVyYWwiLCJicHJpbnRfZm10dHkiLCJmbXR0eSQxIiwiZm10dHkkMiIsImZtdHR5JDMiLCJmbXR0eSQ0IiwiZm10dHkkNSIsImZtdHR5JDYiLCJmbXR0eSQ3IiwiZm10dHkkOCIsImZtdHR5JDkiLCJzdWJfZm10dHkiLCJmbXR0eSQxMCIsInN1Yl9mbXR0eSQwIiwiZm10dHkkMTEiLCJmbXR0eSQxMiIsImZtdHR5JDEzIiwiZm10dHkkMTQiLCJmbXR0eSQxNSIsImludF9vZl9jdXN0b21fYXJpdHkiLCJzdHJpbmdfb2ZfZm10IiwiZm10aXRlciIsImZtdCQwIiwiaWduX2ZsYWckMCIsInN0ciQxIiwiaXNfYWxvbmUkMCIsImlzX2Fsb25lIiwiYWZ0ZXIiLCJiZWZvcmUiLCJqJDEiLCJmbXQkMSIsInN5bW0iLCJmbXR0eV9yZWxfZGV0IiwiZGUiLCJlZCIsImFmIiwiZmEiLCJkZSQwIiwiZWQkMCIsImFmJDAiLCJmYSQwIiwiZGUkMSIsImVkJDEiLCJhZiQxIiwiZmEkMSIsImRlJDIiLCJlZCQyIiwiYWYkMiIsImZhJDIiLCJkZSQzIiwiZWQkMyIsImFmJDMiLCJmYSQzIiwiZGUkNCIsImVkJDQiLCJhZiQ0IiwiZmEkNCIsImRlJDUiLCJlZCQ1IiwiYWYkNSIsImZhJDUiLCJkZSQ2IiwiZWQkNiIsImFmJDYiLCJmYSQ2IiwiZGUkNyIsImVkJDciLCJhZiQ3IiwiZmEkNyIsImRlJDgiLCJlZCQ4IiwiYWYkOCIsImZhJDgiLCJ0cmFucyIsImpkIiwiZGoiLCJnYSIsImFnIiwiZGUkOSIsImVkJDkiLCJhZiQ5IiwiZmEkOSIsImRlJDEwIiwiZWQkMTAiLCJhZiQxMCIsImZhJDEwIiwiZGUkMTEiLCJlZCQxMSIsImFmJDExIiwiZmEkMTEiLCJkZSQxMiIsImVkJDEyIiwiYWYkMTIiLCJmYSQxMiIsImRlJDEzIiwiZWQkMTMiLCJhZiQxMyIsImZhJDEzIiwicmVzdDEiLCJyZXN0MiIsInJlc3QxJDAiLCJyZXN0MiQwIiwicmVzdDEkMSIsInJlc3QyJDEiLCJyZXN0MSQyIiwicmVzdDIkMiIsInJlc3QxJDMiLCJyZXN0MiQzIiwicmVzdDEkNCIsInJlc3QyJDQiLCJyZXN0MSQ1IiwicmVzdDIkNSIsInJlc3QxJDYiLCJyZXN0MiQ2IiwicmVzdDEkNyIsInR5MSQwIiwicmVzdDIkNyIsInR5MiQwIiwicmVzdDEkOCIsInR5MTIiLCJ0eTExIiwicmVzdDIkOCIsInR5MjIiLCJ0eTIxIiwiZjQiLCJmMiIsInJlc3QxJDkiLCJyZXN0MiQ5IiwicmVzdDEkMTAiLCJyZXN0MiQxMCIsInJlc3QxJDExIiwicmVzdDIkMTEiLCJyZXN0MSQxMiIsInJlc3QyJDEyIiwicmVzdDEkMTMiLCJyZXN0MiQxMyIsImZtdHR5X29mX3BhZGRpbmdfZm10dHkiLCJmbXR0eV9vZl9jdXN0b20iLCJhcml0eSQwIiwiZm10dHlfb2ZfZm10IiwidHlfcmVzdCIsInByZWNfdHkiLCJmbXR0eV9vZl9wcmVjaXNpb25fZm10dHkiLCJ0eV9yZXN0JDAiLCJwcmVjX3R5JDAiLCJ0eV9yZXN0JDEiLCJwcmVjX3R5JDEiLCJ0eV9yZXN0JDIiLCJwcmVjX3R5JDIiLCJ0eV9yZXN0JDMiLCJwcmVjX3R5JDMiLCJ0eSQwIiwiZm9ybWF0dGluZ19nZW4iLCJ0eXBlX3BhZGRpbmciLCJ3IiwidHlwZV9wYWRwcmVjIiwidHlwZV9mb3JtYXQiLCJ0eXBlX2Zvcm1hdF9nZW4iLCJ0eXBlX2lnbm9yZWRfcGFyYW1fb25lIiwiZm10dHkwIiwiZm10dHlfcmVzdCIsImZtdF9yZXN0IiwiZm10dHlfcmVzdCQwIiwiZm10X3Jlc3QkMCIsImZtdF9yZXN0JDEiLCJmbXR0eV9yZXN0JDEiLCJmbXQkMiIsImZtdF9yZXN0JDIiLCJmbXR0eV9yZXN0JDIiLCJmbXQkMyIsImZtdF9yZXN0JDMiLCJmbXR0eV9yZXN0JDMiLCJmbXQkNCIsImZtdF9yZXN0JDQiLCJmbXR0eV9yZXN0JDQiLCJmbXQkNSIsImZtdF9yZXN0JDUiLCJmbXR0eV9yZXN0JDUiLCJwcmVjJDQiLCJmbXQkNiIsImZtdF9yZXN0JDYiLCJwcmVjJDUiLCJwYWQkOSIsInBhZCQxMCIsImZtdHR5X3Jlc3QkNiIsInByZWMkNiIsImZtdCQ3IiwiZm10X3Jlc3QkNyIsInByZWMkNyIsInBhZCQxMSIsInBhZCQxMiIsImZtdHR5X3Jlc3QkNyIsInByZWMkOCIsImZtdCQ4IiwiZm10X3Jlc3QkOCIsInBhZCQxMyIsInBhZCQxNCIsImZtdHR5X3Jlc3QkOCIsImZtdCQ5IiwiZm10X3Jlc3QkOSIsImZtdCQxMCIsImZtdF9yZXN0JDEwIiwiZm10JDExIiwiZm10X3Jlc3QkMTEiLCJmbXQkMTIiLCJmbXR0eV9yZXN0JDkiLCJmbXRfcmVzdCQxMiIsImZtdCQxMyIsImZtdHR5X3Jlc3QkMTAiLCJzdWJfZm10dHkxIiwiZm10X3Jlc3QkMTMiLCJzdWJfZm10dHkkMSIsImZtdCQxNCIsImZtdHR5X3Jlc3QkMTEiLCJmbXRfcmVzdCQxNCIsImZtdCQxNSIsImZtdHR5X3Jlc3QkMTIiLCJmbXRfcmVzdCQxNSIsImZtdCQxNiIsImZtdF9yZXN0JDE2IiwiZm10dHkkMTYiLCJmbXQkMTciLCJmbXRfcmVzdCQxNyIsImZtdHR5MyIsImZtdDMiLCJmbXQxJDAiLCJmbXR0eTIkMCIsImZtdDIkMCIsImZtdHR5MyQwIiwiZm10MyQwIiwiZm10dHlfcmVzdCQxMyIsImZtdF9yZXN0JDE4IiwiZm10dHkkMTciLCJmbXQkMTgiLCJmbXR0eV9yZXN0JDE0IiwiZm10X3Jlc3QkMTkiLCJmbXR0eSQxOCIsImZtdCQxOSIsImZtdHR5X3Jlc3QkMTUiLCJmbXRfcmVzdCQyMCIsImZtdHR5JDE5IiwiZm10JDIwIiwic3ViX2ZtdHR5JDIiLCJzdWJfZm10dHkkMyIsInR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aSIsImZtdHR5JDIxIiwiZm10JDIyIiwic3ViX2ZtdHR5JDQiLCJmbXR0eV9yZXN0JDE2IiwiZm10dHkkMjAiLCJmbXQkMjEiLCJzdWJfZm10dHlfcmVzdCIsInN1Yl9mbXR0eV9yZXN0JDAiLCJzdWJfZm10dHlfcmVzdCQxIiwic3ViX2ZtdHR5X3Jlc3QkMiIsInN1Yl9mbXR0eV9yZXN0JDMiLCJzdWJfZm10dHlfcmVzdCQ0Iiwic3ViX2ZtdHR5X3Jlc3QkNSIsInN1Yl9mbXR0eV9yZXN0JDYiLCJzdWJfZm10dHlfcmVzdCQ3Iiwic3ViX2ZtdHR5X3Jlc3QkOCIsInN1Yl9mbXR0eV9yZXN0JDkiLCJzdWJfZm10dHlfcmVzdCQxMCIsInN1Yl9mbXR0eV9yZXN0JDExIiwic3ViX2ZtdHR5X3Jlc3QkMTIiLCJzdWJfZm10dHlfcmVzdCQxMyIsInN1Yl9mbXR0eV9yZXN0JDE0Iiwic3ViMl9mbXR0eSIsInN1Yl9mbXR0eV9yZXN0JDE1Iiwic3ViMl9mbXR0eSQwIiwic3ViX2ZtdHR5X3Jlc3QkMTYiLCJzdWIyX2ZtdHR5JDEiLCJzdWIxX2ZtdHR5Iiwic3ViX2ZtdHR5X3Jlc3QkMTciLCJzdWIyX2ZtdHR5JDIiLCJzdWIxX2ZtdHR5JDAiLCJzdWJfZm10dHlfcmVzdCQxOCIsInN1Yl9mbXR0eV9yZXN0JDE5Iiwic3ViX2ZtdHR5X3Jlc3QkMjAiLCJzdWJfZm10dHlfcmVzdCQyMSIsInN1Yl9mbXR0eV9yZXN0JDIyIiwic3ViX2ZtdHR5X3Jlc3QkMjMiLCJzdWJfZm10dHlfcmVzdCQyNCIsInN1Yl9mbXR0eV9yZXN0JDI1Iiwic3ViX2ZtdHR5X3Jlc3QkMjYiLCJyZWNhc3QiLCJmaXhfcGFkZGluZyIsIndpZHRoJDAiLCJmaXhfaW50X3ByZWNpc2lvbiIsInJlcyQxIiwic3RyaW5nX3RvX2NhbWxfc3RyaW5nIiwiZm9ybWF0X29mX2Zjb252Iiwic3ltYiIsInRyYW5zZm9ybV9pbnRfYWx0IiwiZGlnaXRzIiwicHV0IiwiY29udmVydF9pbnQiLCJjb252ZXJ0X2ludDMyIiwiY29udmVydF9uYXRpdmVpbnQiLCJjb252ZXJ0X2ludDY0IiwiY29udmVydF9mbG9hdCIsImhleCIsInNpZ24iLCJjYW1sX3NwZWNpYWxfdmFsIiwic3RyaW5nX29mX2ZtdHR5IiwibWFrZV9pbnRfcGFkZGluZ19wcmVjaXNpb24iLCJtYWtlX3ByaW50ZiIsInAkMCIsInAkMSIsIm1ha2VfcGFkZGluZyIsIm5ld19hY2MiLCJtYWtlX3ByaW50ZiQwIiwiYWNjJDMiLCJhY2MkNCIsImskMyIsImthY2MiLCJrJDQiLCJtYWtlX2lnbm9yZWRfcGFyYW0kMCIsIm1ha2VfY3VzdG9tJDAiLCJtYWtlX2ludmFsaWRfYXJnIiwibWFrZV9mcm9tX2ZtdHR5JDAiLCJtYWtlX2Zyb21fZm10dHkiLCJtYWtlX2N1c3RvbSIsIm1ha2VfaWdub3JlZF9wYXJhbSIsImZuX29mX3BhZGRpbmdfcHJlY2lzaW9uIiwibWFrZV9pcHJpbnRmIiwibWFrZV9pcHJpbnRmJDAiLCJrb2MiLCJyZXN0JDI0IiwicmVzdCQyNSIsInJlc3QkMjYiLCJyZXN0JDI3IiwicmVzdCQyOCIsInJlc3QkMjkiLCJmbl9vZl9jdXN0b21fYXJpdHkkMCIsImZuX29mX2N1c3RvbV9hcml0eSIsIm91dHB1dF9hY2MiLCJwJDMiLCJwJDQiLCJwJDUiLCJwJDIiLCJidWZwdXRfYWNjIiwic3RycHV0X2FjYyIsImZhaWx3aXRoX21lc3NhZ2UiLCJvcGVuX2JveF9vZl9zdHJpbmciLCJpbnZhbGlkX2JveCIsInBhcnNlX3NwYWNlcyIsIndzdGFydCIsIndlbmQiLCJib3hfbmFtZSIsIm5zdGFydCIsIm5lbmQiLCJpbmRlbnQiLCJleHBfZW5kIiwiYm94X3R5cGUiLCJtYWtlX3BhZGRpbmdfZm10X2ViYiIsIm1ha2VfcGFkcHJlY19mbXRfZWJiIiwiZm10X2ViYl9vZl9zdHJpbmciLCJsZWdhY3lfYmVoYXZpb3IiLCJmbGFnIiwibGVnYWN5X2JlaGF2aW9yJDAiLCJpbnZhbGlkX2Zvcm1hdF9tZXNzYWdlIiwidW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IiwiZW5kX2luZCIsImludmFsaWRfZm9ybWF0X3dpdGhvdXQiLCJleHBlY3RlZF9jaGFyYWN0ZXIiLCJleHBlY3RlZCIsImFkZF9saXRlcmFsIiwibGl0X3N0YXJ0IiwicGFyc2UiLCJzdHJfaW5kJDIiLCJwYXJzZV9mbGFncyIsInN0cl9pbmQkMSIsInN0cl9pbmQkMCIsInBhcnNlX3RhZyIsInN0cl9pbmQkMyIsInN0cl9pbmRfMSIsInBhcnNlX2ludGVnZXIiLCJzdHJfaW5kXzIiLCJzdHJfaW5kXzMiLCJmb3JtYXR0aW5nX2xpdCQwIiwibmV4dF9pbmQiLCJzdHJfaW5kXzQiLCJzdHJfaW5kXzUiLCJzdHJfaW5kJDQiLCJzdHJfaW5kXzEkMCIsInN0cl9pbmRfMiQwIiwic3RyX2luZF8zJDAiLCJzJDEiLCJmb3JtYXR0aW5nX2xpdCQxIiwibmV4dF9pbmQkMCIsInBhcnNlX2NvbnZlcnNpb24iLCJwY3RfaW5kIiwicGx1cyIsInNwYWNlIiwicGFkcHJlYyIsInBsdXNfdXNlZCIsImhhc2hfdXNlZCIsInNwYWNlX3VzZWQiLCJpZ25fdXNlZCIsInBhZF91c2VkIiwicHJlY191c2VkIiwiZ2V0X3BsdXMiLCJnZXRfaGFzaCIsImdldF9zcGFjZSIsImdldF9pZ24iLCJnZXRfcGFkIiwiZ2V0X3ByZWMiLCJnZXRfcGFkcHJlYyIsImdldF9pbnRfcGFkIiwiaW5jb21wYXRpYmxlX2ZsYWciLCJjaGVja19ub18wIiwib3B0X29mX3BhZCIsIndpZHRoJDEiLCJnZXRfcGFkX29wdCIsImdldF9wYWRwcmVjX29wdCIsImZtdF9yZXN1bHQiLCJzdWJfZW5kIiwic2VhcmNoX3N1YmZvcm1hdF9lbmQiLCJzdWJfZm10IiwiaWdub3JlZCQyIiwiY291bnRlciQwIiwiaWdub3JlZCQ2IiwiaWdub3JlZCQ3IiwiYWRkX3JhbmdlIiwiZmFpbF9zaW5nbGVfcGVyY2VudCIsInBhcnNlX2NoYXJfc2V0X2NvbnRlbnQiLCJwYXJzZV9jaGFyX3NldF9hZnRlcl9jaGFyJDAiLCJwYXJzZV9jaGFyX3NldF9hZnRlcl9jaGFyIiwicmV2ZXJzZSIsImNoYXJfc2V0JDEiLCJpZ25vcmVkJDkiLCJjaGFyX2Zvcm1hdCIsImZtdF9yZXN0JDIxIiwiZm10X3Jlc3QkMjIiLCJmbXRfcmVzdCQyMyIsImlnbm9yZWQkMTAiLCJmbXRfcmVzdCQyNCIsImZtdF9yZXN0JDI1Iiwic3ViX2VuZCQwIiwic3ViX2ZtdCQwIiwiZm10X3Jlc3QkMjYiLCJpZ25vcmVkJDExIiwiaWdub3JlZCQzIiwic3ltYiQwIiwiaWdub3JlZCQ1IiwiY29tcHV0ZV9pbnRfY29udiIsImlnbm9yZWQkOCIsInNwYWNlJDEiLCJoYXNoJDEiLCJwbHVzJDIiLCJraW5kIiwiaWdub3JlZCQ0IiwiaWdub3JlZCIsImlnbm9yZWQkMCIsImlnbm9yZWQkMSIsInBsdXMkMCIsImhhc2gkMCIsInNwYWNlJDAiLCJwbHVzJDEiLCJpZ24kMCIsInBhcnNlX2FmdGVyX3ByZWNpc2lvbiIsIm1pbnVzIiwicGFyc2VfY29udiIsInBhcnNlX2FmdGVyX3BhZGRpbmciLCJwYXJzZV9saXRlcmFsIiwicGFyc2VfcG9zaXRpdmUiLCJuZXdfaW5kIiwibWludXMkMCIsInNldF9mbGFnIiwic3RyX2luZCQ1IiwiemVybyQwIiwiaXNfb3Blbl90YWciLCJpbmQiLCJzdWJfc3RyIiwic3ViX2Zvcm1hdCQwIiwiZm9ybWF0dGluZyQwIiwiZm9ybWF0dGluZyIsInN0cl9pbmQkNyIsInN1Yl9lbmQkMSIsInN1Yl9lbmQkMiIsInN0cl9pbmQkNiIsIm9wdGlvbiIsInN1YmZtdCIsImZvcm1hdF9vZl9zdHJpbmdfZm10dHkiLCJmb3JtYXRfb2Zfc3RyaW5nX2Zvcm1hdCIsImtmcHJpbnRmIiwia2JwcmludGYiLCJpa2ZwcmludGYiLCJmcHJpbnRmIiwiYnByaW50ZiIsImlmcHJpbnRmIiwiaWJwcmludGYiLCJwcmludGYiLCJlcHJpbnRmIiwia3NwcmludGYiLCJzcHJpbnRmIiwiYXNzb2MzIiwieTIiLCJ5MSIsIm1ha2Vfc3ltbGlzdCIsImhlbHBfYWN0aW9uIiwiYWRkX2hlbHAiLCJzcGVjbGlzdCIsImFkZDEiLCJhZGQyIiwidXNhZ2VfYiIsImVycm1zZyIsImRvYyIsInNwZWMiLCJrZXkiLCJ1c2FnZV9zdHJpbmciLCJ1c2FnZSIsImN1cnJlbnQiLCJwYXJzZV9hbmRfZXhwYW5kX2FyZ3ZfZHluYW1pY18iLCJhbGxvd19leHBhbmQiLCJhcmd2IiwiYW5vbmZ1biIsImluaXRwb3MiLCJjb252ZXJ0X2Vycm9yIiwicHJvZ25hbWUiLCJmb2xsb3ckMCIsImtleXdvcmQiLCJub19hcmckMCIsImZvbGxvdyIsIm5vX2FyZyIsImdldF9hcmckMCIsImdldF9hcmciLCJjb25zdW1lX2FyZyQwIiwiY29uc3VtZV9hcmciLCJ0cmVhdF9hY3Rpb24kMCIsInRyZWF0X2FjdGlvbiIsImYkMCIsImYkMSIsInIkMSIsImYkMiIsImFyZyQxIiwiciQyIiwiYXJnJDIiLCJmJDMiLCJhcmckMyIsIngkMSIsInIkMyIsImFyZyQ0IiwieCQyIiwic3BlY3MiLCJmJDQiLCJhcmckNSIsImYkNSIsImYkNiIsImYkNyIsImFyZyQ2IiwibmV3YXJnIiwicGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWMiLCJwYXJzZV9hcmd2X2R5bmFtaWMiLCJjdXJyZW50JDAiLCJwYXJzZV9hcmd2IiwibXNnJDAiLCJtc2ckMSIsInBhcnNlX2R5bmFtaWMiLCJwYXJzZV9leHBhbmQiLCJzZWNvbmRfd29yZCIsImxvb3AiLCJtYXhfYXJnX2xlbiIsImt3ZCIsInJlcGxhY2VfbGVhZGluZ190YWIiLCJhbGlnbiIsImxpbWl0IiwiY29tcGxldGVkIiwia3NkIiwiY3V0Y29sJDAiLCJzcGFjZXMkMCIsInNwZWMkMCIsImN1dGNvbCIsImt3ZF9sZW4iLCJzcGFjZXMiLCJyZWFkX2F1eCIsImZpbGUiLCJ3b3JkcyIsInN0YXNoIiwid29yZCIsIndvcmQkMCIsInJlYWRfYXJnIiwicmVhZF9hcmcwIiwid3JpdGVfYXV4IiwiYXJncyIsIndyaXRlX2FyZyIsIndyaXRlX2FyZzAiLCJsb2NmbXQiLCJwcmludGVycyIsImZpZWxkIiwib3RoZXJfZmllbGRzIiwidXNlX3ByaW50ZXJzIiwidG9fc3RyaW5nX2RlZmF1bHQiLCJjaGFyJDAiLCJsaW5lIiwiY2hhciQxIiwibGluZSQwIiwiZmlsZSQwIiwiY2hhciQyIiwibGluZSQxIiwiZmlsZSQxIiwiY29uc3RydWN0b3IiLCJwcmludCIsImZjdCIsImNhdGNoJDAiLCJyYXdfYmFja3RyYWNlX2VudHJpZXMiLCJidCIsImNvbnZlcnRfcmF3X2JhY2t0cmFjZSIsImZvcm1hdF9iYWNrdHJhY2Vfc2xvdCIsImlzX3JhaXNlIiwicHJpbnRfcmF3X2JhY2t0cmFjZSIsIm91dGNoYW4iLCJyYXdfYmFja3RyYWNlIiwiYmFja3RyYWNlIiwicHJpbnRfYmFja3RyYWNlIiwicmF3X2JhY2t0cmFjZV90b19zdHJpbmciLCJiYWNrdHJhY2Vfc2xvdF9pc19yYWlzZSIsInBhcmFtIiwiYmFja3RyYWNlX3Nsb3RfaXNfaW5saW5lIiwiYmFja3RyYWNlX3Nsb3RfbG9jYXRpb24iLCJiYWNrdHJhY2Vfc2xvdF9kZWZuYW1lIiwiYmFja3RyYWNlX3Nsb3RzIiwiYmFja3RyYWNlX3Nsb3RzX29mX3Jhd19lbnRyeSIsImVudHJ5IiwicmF3X2JhY2t0cmFjZV9sZW5ndGgiLCJnZXRfYmFja3RyYWNlIiwicmVnaXN0ZXJfcHJpbnRlciIsImZuIiwib2xkX3ByaW50ZXJzIiwibmV3X3ByaW50ZXJzIiwiZXhuX3Nsb3QiLCJleG5fc2xvdF9pZCIsImV4bl9zbG90X25hbWUiLCJlcnJvcnMiLCJkZWZhdWx0X3VuY2F1Z2h0X2V4Y2VwdGlvbl9oYW4iLCJzdGF0dXMiLCJ1bmNhdWdodF9leGNlcHRpb25faGFuZGxlciIsInNldF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlciIsImVtcHR5X2JhY2t0cmFjZSIsImhhbmRsZV91bmNhdWdodF9leGNlcHRpb24iLCJkZWJ1Z2dlcl9pbl91c2UiLCJleG4kMSIsInJhd19iYWNrdHJhY2UkMCIsImNvbnN0JDAiLCJmbGlwIiwibmVnYXRlIiwicHJvdGVjdCIsImZpbmFsbHkkMCIsIndvcmsiLCJmaW5hbGx5X25vX2V4biIsIndvcmtfZXhuJDAiLCJ3b3JrX2V4biIsIndvcmtfYnQiLCJwcmludF9zdGF0IiwiYWxsb2NhdGVkX2J5dGVzIiwibWEiLCJwcm8iLCJtaSIsImNyZWF0ZV9hbGFybSIsImRlbGV0ZV9hbGFybSIsIm51bGxfdHJhY2tlciIsInNhbXBsaW5nX3JhdGUiLCJ0cmFja2VyIiwiY2FsbHN0YWNrX3NpemUiLCJzdHJpbmciLCJieXRlcyIsInN1YnN0cmluZyIsInN1YmJ5dGVzIiwiZmlsZW5hbWUiLCJkaWdlc3QiLCJjaGFyX2hleCIsInRvX2hleCIsImZyb21faGV4IiwiZGlnaXQiLCJuZXdfc3RhdGUiLCJhc3NpZ24iLCJzdDEiLCJzdDIiLCJmdWxsX2luaXQiLCJzZWVkIiwic2VlZCQwIiwibWFrZV9zZWxmX2luaXQiLCJiaXRzIiwiY3VydmFsIiwibmV3dmFsIiwibmV3dmFsMzAiLCJpbnRhdXgiLCJpbnQkMCIsImJvdW5kIiwiZnVsbF9pbnQiLCJtYXhfaW50XzMyIiwiYnBvcyIsImludDMyIiwiaW50NjQiLCJuYXRpdmVpbnQiLCJmbG9hdCQwIiwiYm9vbCIsImJpdHMzMiIsImJpdHM2NCIsIm5hdGl2ZWJpdHMiLCJiaXRzJDAiLCJpbnQkMSIsImZ1bGxfaW50JDAiLCJpbnQzMiQwIiwibmF0aXZlaW50JDAiLCJpbnQ2NCQwIiwiZmxvYXQkMSIsInNjYWxlIiwiYm9vbCQwIiwiYml0czMyJDAiLCJiaXRzNjQkMCIsIm5hdGl2ZWJpdHMkMCIsImZ1bGxfaW5pdCQwIiwic2VsZl9pbml0IiwiZ2V0X3N0YXRlIiwic2V0X3N0YXRlIiwib25nb2luZ190cmF2ZXJzYWwiLCJmbGlwX29uZ29pbmdfdHJhdmVyc2FsIiwicGFyYW1zIiwicmFuZG9taXplZF9kZWZhdWx0IiwicmFuZG9taXplZCIsInJhbmRvbWl6ZSIsImlzX3JhbmRvbWl6ZWQiLCJwcm5nIiwicG93ZXJfMl9hYm92ZSIsImluaXRpYWxfc2l6ZSIsInJhbmRvbSIsImNvcHlfYnVja2V0bGlzdCIsImtleSQwIiwibmV4dCQwIiwiaW5zZXJ0X2FsbF9idWNrZXRzIiwiaW5kZXhmdW4iLCJpbnBsYWNlIiwib2RhdGEiLCJuZGF0YSIsIm5zaXplIiwibmRhdGFfdGFpbCIsIm5pZHgiLCJtYXRjaCQwIiwib3NpemUiLCJvbGRfdHJhdiIsImZpbHRlcl9tYXBfaW5wbGFjZSIsImIkMCIsImJ1Y2tldF9sZW5ndGgiLCJzdGF0cyIsIm1ibCIsImhpc3RvIiwidGJsX2RhdGEiLCJidWNrIiwiYnVjayQwIiwiYnVjayQxIiwidG9fc2VxX2tleXMiLCJ0b19zZXFfdmFsdWVzIiwia2V5X2luZGV4IiwiYnVja2V0IiwiazEiLCJuZXh0MSIsImsyIiwibmV4dDIiLCJrMyIsImQzIiwibmV4dDMiLCJmaW5kX2luX2J1Y2tldCIsInJlcGxhY2UiLCJyZXBsYWNlX3NlcSIsInN6IiwiaGFzaF9wYXJhbSIsInNlZWRlZF9oYXNoIiwicmVidWlsZCIsImdldF9jb3B5IiwiYXIiLCJlbXB0eWJ1Y2tldCIsImdldF9pbmRleCIsImNyZWF0ZSQwIiwic3okMCIsInN6JDEiLCJjb3VudF9idWNrZXQiLCJhZGRfYXV4Iiwic2V0dGVyIiwiYnVja2V0JDAiLCJoYXNoZXMiLCJuZXdzeiIsIm5ld2J1Y2tldCQwIiwibmV3aGFzaGVzIiwiaGJ1Y2tldCIsInByZXZfbGVuIiwibGl2ZSIsImokMiIsIm5ld2J1Y2tldCIsIm9sZGxlbiIsIm5ld3QiLCJvYiIsIm9pIiwib2giLCJzZXR0ZXIkMCIsIm5pIiwiZmluZF9vciIsImlmbm90Zm91bmQiLCJmaW5kX3NoYWRvdyIsImlmZm91bmQiLCJsZW5zIiwidG90bGVuIiwidW5rbm93biIsInBwX2VucXVldWUiLCJ0b2tlbiIsInBwX2luZmluaXR5IiwicHBfb3V0cHV0X3N0cmluZyIsInBwX291dHB1dF9uZXdsaW5lIiwiZm9ybWF0X3BwX3RleHQiLCJ0ZXh0IiwiZm9ybWF0X3N0cmluZyIsImJyZWFrX25ld19saW5lIiwicmVhbF9pbmRlbnQiLCJicmVha19saW5lIiwiYnJlYWtfc2FtZV9saW5lIiwiZm9ybWF0X3BwX3Rva2VuIiwic2l6ZSQwIiwidGFicyIsImFkZF90YWIiLCJscyIsInRhZ19uYW1lIiwibWFya2VyIiwiYnJlYWtzIiwiZml0cyIsIm9mZiIsImJveF90eXBlJDAiLCJvZmYkMCIsImluc2VydGlvbl9wb2ludCIsInRhYnMkMCIsImZpcnN0IiwiaGVhZCIsInRhYiIsIm9mZiQxIiwiaW5zZXJ0aW9uX3BvaW50JDAiLCJ3aWR0aCQyIiwiYm94X3R5cGUkMSIsInRib3giLCJ0YWdfbmFtZSQwIiwibWFya2VyJDAiLCJhZHZhbmNlX2xlZnQiLCJwZW5kaW5nX2NvdW50IiwiZW5xdWV1ZV9hZHZhbmNlIiwiZW5xdWV1ZV9zdHJpbmdfYXMiLCJpbml0aWFsaXplX3NjYW5fc3RhY2siLCJzdGFjayIsInF1ZXVlX2VsZW0iLCJzZXRfc2l6ZSIsImxlZnRfdG90YWwiLCJzY2FuX3B1c2giLCJlbGVtIiwicHBfb3Blbl9ib3hfZ2VuIiwiYnJfdHkiLCJwcF9jbG9zZV9ib3giLCJwcF9vcGVuX3N0YWciLCJwcF9jbG9zZV9zdGFnIiwicHBfb3Blbl90YWciLCJwcF9jbG9zZV90YWciLCJwcF9zZXRfcHJpbnRfdGFncyIsInBwX3NldF9tYXJrX3RhZ3MiLCJwcF9nZXRfcHJpbnRfdGFncyIsInBwX2dldF9tYXJrX3RhZ3MiLCJwcF9zZXRfdGFncyIsInBwX2dldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbiIsInBwX3NldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbiIsInBjdCIsInBvdCIsIm1jdCIsIm1vdCIsInBwX3Jpbml0IiwicHBfZmx1c2hfcXVldWUiLCJwcF9wcmludF9hc19zaXplIiwicHBfcHJpbnRfYXMiLCJpc2l6ZSIsInBwX3ByaW50X3N0cmluZyIsInBwX3ByaW50X2J5dGVzIiwicHBfcHJpbnRfaW50IiwicHBfcHJpbnRfZmxvYXQiLCJwcF9wcmludF9ib29sIiwicHBfcHJpbnRfY2hhciIsInBwX29wZW5faGJveCIsInBwX29wZW5fdmJveCIsInBwX29wZW5faHZib3giLCJwcF9vcGVuX2hvdmJveCIsInBwX29wZW5fYm94IiwicHBfcHJpbnRfbmV3bGluZSIsInBwX3ByaW50X2ZsdXNoIiwicHBfZm9yY2VfbmV3bGluZSIsInBwX3ByaW50X2lmX25ld2xpbmUiLCJwcF9wcmludF9jdXN0b21fYnJlYWsiLCJwcF9wcmludF9icmVhayIsInBwX3ByaW50X3NwYWNlIiwicHBfcHJpbnRfY3V0IiwicHBfb3Blbl90Ym94IiwicHBfY2xvc2VfdGJveCIsInBwX3ByaW50X3RicmVhayIsInBwX3ByaW50X3RhYiIsInBwX3NldF90YWIiLCJwcF9zZXRfbWF4X2JveGVzIiwicHBfZ2V0X21heF9ib3hlcyIsInBwX292ZXJfbWF4X2JveGVzIiwicHBfc2V0X2VsbGlwc2lzX3RleHQiLCJwcF9nZXRfZWxsaXBzaXNfdGV4dCIsInBwX2xpbWl0IiwicHBfc2V0X21heF9pbmRlbnQiLCJwcF9nZXRfbWF4X2luZGVudCIsInBwX3NldF9tYXJnaW4iLCJuZXdfbWF4X2luZGVudCIsInZhbGlkYXRlX2dlb21ldHJ5IiwibWFyZ2luIiwibWF4X2luZGVudCIsImNoZWNrX2dlb21ldHJ5IiwiZ2VvbWV0cnkiLCJwcF9nZXRfbWFyZ2luIiwicHBfc2V0X2Z1bGxfZ2VvbWV0cnkiLCJwcF9zZXRfZ2VvbWV0cnkiLCJwcF9zYWZlX3NldF9nZW9tZXRyeSIsInBwX2dldF9nZW9tZXRyeSIsInBwX3VwZGF0ZV9nZW9tZXRyeSIsInBwX3NldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsInBwX2dldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsInBwX3NldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aSIsInBwX2dldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aSIsImRpc3BsYXlfbmV3bGluZSIsImJsYW5rX2xpbmUiLCJkaXNwbGF5X2JsYW5rcyIsInBwX3NldF9mb3JtYXR0ZXJfb3V0X2NoYW5uZWwiLCJkZWZhdWx0X3BwX21hcmtfb3Blbl90YWciLCJkZWZhdWx0X3BwX21hcmtfY2xvc2VfdGFnIiwiZGVmYXVsdF9wcF9wcmludF9vcGVuX3RhZyIsImRlZmF1bHRfcHBfcHJpbnRfY2xvc2VfdGFnIiwicHBfbWFrZV9mb3JtYXR0ZXIiLCJwcF9xdWV1ZSIsInN5c190b2siLCJzY2FuX3N0YWNrIiwiZm9ybWF0dGVyX29mX291dF9mdW5jdGlvbnMiLCJvdXRfZnVucyIsIm1ha2VfZm9ybWF0dGVyIiwicHBmIiwiZm9ybWF0dGVyX29mX291dF9jaGFubmVsIiwiZm9ybWF0dGVyX29mX2J1ZmZlciIsInBwX2J1ZmZlcl9zaXplIiwicHBfbWFrZV9idWZmZXIiLCJzdGRidWYiLCJzdGRfZm9ybWF0dGVyIiwiZXJyX2Zvcm1hdHRlciIsInN0cl9mb3JtYXR0ZXIiLCJmbHVzaF9idWZmZXJfZm9ybWF0dGVyIiwiZmx1c2hfc3RyX2Zvcm1hdHRlciIsIm1ha2Vfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciIsImNsZWFyX3N5bWJvbGljX291dHB1dF9idWZmZXIiLCJzb2IiLCJnZXRfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciIsImZsdXNoX3N5bWJvbGljX291dHB1dF9idWZmZXIiLCJpdGVtcyIsImFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSIsIml0ZW0iLCJmb3JtYXR0ZXJfb2Zfc3ltYm9saWNfb3V0cHV0X2IiLCJvcGVuX2hib3giLCJvcGVuX3Zib3giLCJvcGVuX2h2Ym94Iiwib3Blbl9ob3Zib3giLCJvcGVuX2JveCIsImNsb3NlX2JveCIsIm9wZW5fdGFnIiwiY2xvc2VfdGFnIiwib3Blbl9zdGFnIiwiY2xvc2Vfc3RhZyIsInByaW50X2FzIiwicHJpbnRfYm9vbCIsInByaW50X2JyZWFrIiwicHJpbnRfY3V0IiwicHJpbnRfc3BhY2UiLCJmb3JjZV9uZXdsaW5lIiwicHJpbnRfZmx1c2giLCJwcmludF9pZl9uZXdsaW5lIiwib3Blbl90Ym94IiwiY2xvc2VfdGJveCIsInByaW50X3RicmVhayIsInNldF90YWIiLCJwcmludF90YWIiLCJzZXRfbWFyZ2luIiwiZ2V0X21hcmdpbiIsInNldF9tYXhfaW5kZW50IiwiZ2V0X21heF9pbmRlbnQiLCJzZXRfZ2VvbWV0cnkiLCJzYWZlX3NldF9nZW9tZXRyeSIsImdldF9nZW9tZXRyeSIsInVwZGF0ZV9nZW9tZXRyeSIsInNldF9tYXhfYm94ZXMiLCJnZXRfbWF4X2JveGVzIiwib3Zlcl9tYXhfYm94ZXMiLCJzZXRfZWxsaXBzaXNfdGV4dCIsImdldF9lbGxpcHNpc190ZXh0Iiwic2V0X2Zvcm1hdHRlcl9vdXRfY2hhbm5lbCIsInNldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsInNldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyIsInNldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMiLCJnZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIiwic2V0X3ByaW50X3RhZ3MiLCJnZXRfcHJpbnRfdGFncyIsInNldF9tYXJrX3RhZ3MiLCJnZXRfbWFya190YWdzIiwic2V0X3RhZ3MiLCJwcF9wcmludF9saXN0IiwicHBfdiIsIm9wdCQwIiwicHBfc2VwIiwib3B0JDEiLCJwcF9wcmludF9zZXEiLCJzZXEkMSIsInNlcSQyIiwicHBfcHJpbnRfdGV4dCIsInBwX3ByaW50X29wdGlvbiIsInBwX3ByaW50X3Jlc3VsdCIsInBwX3ByaW50X2VpdGhlciIsImNvbXB1dGVfdGFnIiwidGFnX2FjYyIsIm91dHB1dF9mb3JtYXR0aW5nX2xpdCIsImJ0eSIsInAkNiIsInAkNyIsInNpemUkMSIsInAkOCIsImtkcHJpbnRmIiwiZHByaW50ZiIsImthc3ByaW50ZiIsImFzcHJpbnRmIiwiZmx1c2hfc3RhbmRhcmRfZm9ybWF0dGVycyIsInBwX3NldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdSIsInBwX2dldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdSIsInNldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdCIsImdldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdCIsInBwX3NldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyIsInN0cmluZ2lmeSIsInBwX2dldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyIsImZ1bnMiLCJtYXJrX29wZW5fdGFnIiwibWFya19jbG9zZV90YWciLCJwcmludF9vcGVuX3RhZyIsInByaW50X2Nsb3NlX3RhZyIsInNldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyIsIm51bGxfY2hhciIsIm5leHRfY2hhciIsImliIiwicGVla19jaGFyIiwiY2hlY2tlZF9wZWVrX2NoYXIiLCJlbmRfb2ZfaW5wdXQiLCJiZWdpbm5pbmdfb2ZfaW5wdXQiLCJuYW1lX29mX2lucHV0IiwiY2hhcl9jb3VudCIsImludmFsaWRhdGVfY3VycmVudF9jaGFyIiwidG9rZW5fc3RyaW5nIiwidG9rZW5fYnVmZmVyIiwic2tpcF9jaGFyIiwiaWdub3JlX2NoYXIiLCJzdG9yZV9jaGFyIiwiZGVmYXVsdF90b2tlbl9idWZmZXJfc2l6ZSIsImluYW1lIiwic2Nhbl9jbG9zZV9hdF9lbmQiLCJzY2FuX3JhaXNlX2F0X2VuZCIsImZyb21faWMiLCJzY2FuX2Nsb3NlX2ljIiwiZW9mIiwib3Blbl9pbl9maWxlIiwiaWMkMCIsIm1lbW8iLCJtZW1vX2Zyb21fY2hhbm5lbCIsImJhZF9pbnB1dCIsImJhZF9pbnB1dF9lc2NhcGUiLCJiYWRfdG9rZW5fbGVuZ3RoIiwibWVzc2FnZSIsImJhZF9mbG9hdCIsImJhZF9oZXhfZmxvYXQiLCJjaGFyYWN0ZXJfbWlzbWF0Y2giLCJjaSIsImNoZWNrX3RoaXNfY2hhciIsImNoZWNrX2NoYXIiLCJ0b2tlbl9jaGFyIiwidG9rZW5fYm9vbCIsImludGVnZXJfY29udmVyc2lvbl9vZl9jaGFyIiwidG9rZW5faW50X2xpdGVyYWwiLCJjb252IiwidG9rZW5fZmxvYXQiLCJzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciIsInNjYW5fZGVjaW1hbF9kaWdpdF9wbHVzIiwic2Nhbl9kaWdpdF9wbHVzIiwiYmFzaXMiLCJkaWdpdHAiLCJ3aWR0aCQzIiwiaXNfYmluYXJ5X2RpZ2l0Iiwic2Nhbl9iaW5hcnlfaW50IiwiaXNfb2N0YWxfZGlnaXQiLCJzY2FuX29jdGFsX2ludCIsImlzX2hleGFfZGlnaXQiLCJzY2FuX2hleGFkZWNpbWFsX2ludCIsInNjYW5fc2lnbiIsInNjYW5fb3B0aW9uYWxseV9zaWduZWRfZGVjaW1hbCIsInNjYW5faW50X2NvbnZlcnNpb24iLCJzY2FuX2ZyYWN0aW9uYWxfcGFydCIsInNjYW5fZXhwb25lbnRfcGFydCIsInNjYW5fZmxvYXQiLCJwcmVjaXNpb24iLCJwcmVjaXNpb24kMCIsImNoZWNrX2Nhc2VfaW5zZW5zaXRpdmVfc3RyaW5nIiwic2Nhbl9oZXhfZmxvYXQiLCJ3aWR0aCQ0Iiwid2lkdGgkNSIsIndpZHRoJDYiLCJ3aWR0aCQxMCIsIndpZHRoJDciLCJ3aWR0aCQ4Iiwid2lkdGgkOSIsInNjYW5fY2FtbF9mbG9hdF9yZXN0Iiwid2lkdGhfcHJlY2lzaW9uIiwiZnJhY193aWR0aCIsInNjYW5fY2FtbF9mbG9hdCIsInNjYW5fc3RyaW5nIiwic3RwIiwiaGV4YWRlY2ltYWxfdmFsdWVfb2ZfY2hhciIsImNoZWNrX25leHRfY2hhciIsImNoZWNrX25leHRfY2hhcl9mb3JfY2hhciIsImNoZWNrX25leHRfY2hhcl9mb3Jfc3RyaW5nIiwic2Nhbl9iYWNrc2xhc2hfY2hhciIsImMwIiwiZ2V0X2RpZ2l0IiwiZ2V0X2RpZ2l0JDAiLCJjMSQwIiwiYzIkMCIsInNjYW5fY2FtbF9zdHJpbmciLCJmaW5kX3N0b3AkMCIsInNraXBfc3BhY2VzIiwiZmluZF9zdG9wIiwic2Nhbl9jaGFyc19pbl9jaGFyX3NldCIsInNjYW5faW5kaWMiLCJzY2FuX2NoYXJzIiwic2NhbmZfYmFkX2lucHV0Iiwid2lkdGhfb2ZfcGFkX29wdCIsInN0b3BwZXJfb2ZfZm9ybWF0dGluZ19saXQiLCJmbXRpbmciLCJ0YWtlX2Zvcm1hdF9yZWFkZXJzJDAiLCJ0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzJDAiLCJyZWFkZXIiLCJuZXdfayIsInJlYWRlcnNfcmVzdCIsInRha2VfZm9ybWF0X3JlYWRlcnMiLCJ0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIiwicGFkX3ByZWNfc2NhbmYiLCJyZWFkZXJzIiwibWFrZV9zY2FuZiIsInNjYW4kMCIsInN0cl9yZXN0Iiwic2NhbiQxIiwic2NhbiQyIiwic2NhbiQzIiwic2NhbiQ0IiwiY29udiQwIiwic2NhbiQ1IiwiY29udiQxIiwic2NhbiQ2IiwiY29udiQyIiwic2NhbiQ3Iiwic2NhbiQ4IiwiZm10aW5nX2xpdCQwIiwic3RwJDAiLCJzJDIiLCJzdHJfcmVzdCQwIiwiYXJnX3Jlc3QiLCJrc2NhbmYiLCJlZiIsImV4YyQwIiwiZXhjIiwiYXJncyQxIiwiYXJncyQwIiwiYnNjYW5mIiwia3NzY2FuZiIsInNzY2FuZiIsInNjYW5mIiwiYnNjYW5mX2Zvcm1hdCIsImZvcm1hdCIsInNzY2FuZl9mb3JtYXQiLCJmb3JtYXRfZnJvbV9zdHJpbmciLCJ1bmVzY2FwZWQiLCJrZnNjYW5mIiwiZnNjYW5mIiwicmVnaXN0ZXIiLCJyZWdpc3Rlcl9leGNlcHRpb24iLCJvJDAiLCJpbml0aWFsX29iamVjdF9zaXplIiwiZHVtbXlfaXRlbSIsInB1YmxpY19tZXRob2RfbGFiZWwiLCJ0YWciLCJjb21wYXJlJDAiLCJjb21wYXJlJDEiLCJkdW1teV90YWJsZSIsInRhYmxlX2NvdW50IiwiZHVtbXlfbWV0IiwiZml0X3NpemUiLCJuZXdfdGFibGUiLCJwdWJfbGFiZWxzIiwibWV0aG9kcyIsImFycmF5IiwibmV3X3NpemUiLCJvbGRfc2l6ZSIsIm5ld19idWNrIiwibWV0aG9kX2NvdW50IiwiaW5zdF92YXJfY291bnQiLCJuZXdfbWV0aG9kIiwidGFibGUiLCJnZXRfbWV0aG9kX2xhYmVsIiwibGFiZWwiLCJnZXRfbWV0aG9kX2xhYmVscyIsIm5hbWVzIiwic2V0X21ldGhvZCIsImVsZW1lbnQiLCJnZXRfbWV0aG9kIiwiYXJyIiwibmFycm93IiwidmFycyIsInZpcnRfbWV0aHMiLCJjb25jcl9tZXRocyIsInZhcnMkMCIsInZpcnRfbWV0aHMkMCIsImNvbmNyX21ldGhzJDAiLCJ2aXJ0X21ldGhfbGFicyIsImNvbmNyX21ldGhfbGFicyIsImxhYiIsInR2YXJzIiwiYnlfbmFtZSIsImJ5X2xhYmVsIiwibWV0IiwiaG0iLCJ3aWRlbiIsInNhdmVkX3ZhcnMiLCJzYXZlZF9oaWRkZW5fbWV0aHMiLCJuZXdfdmFyaWFibGUiLCJ0b19hcnJheSIsIm5ld19tZXRob2RzX3ZhcmlhYmxlcyIsIm1ldGhzIiwidmFscyIsIm1ldGhzJDAiLCJubWV0aHMiLCJudmFscyIsImdldF92YXJpYWJsZSIsImdldF92YXJpYWJsZXMiLCJhZGRfaW5pdGlhbGl6ZXIiLCJjcmVhdGVfdGFibGUiLCJwdWJsaWNfbWV0aG9kcyIsInRhZ3MiLCJpbml0X2NsYXNzIiwiaW5oZXJpdHMiLCJjbGEiLCJzdXBlciQwIiwibm0iLCJtYWtlX2NsYXNzIiwicHViX21ldGhzIiwiY2xhc3NfaW5pdCIsImVudl9pbml0IiwibWFrZV9jbGFzc19zdG9yZSIsImluaXRfdGFibGUiLCJkdW1teV9jbGFzcyIsImxvYyIsInVuZGVmIiwiY3JlYXRlX29iamVjdCIsImNyZWF0ZV9vYmplY3Rfb3B0Iiwib2JqXzAiLCJpdGVyX2YiLCJydW5faW5pdGlhbGl6ZXJzIiwiaW5pdHMiLCJydW5faW5pdGlhbGl6ZXJzX29wdCIsImNyZWF0ZV9vYmplY3RfYW5kX3J1bl9pbml0aWFsaSIsImJ1aWxkX3BhdGgiLCJrZXlzIiwibG9va3VwX3RhYmxlcyIsInJvb3QiLCJyb290X2RhdGEiLCJ0YWJsZXMkMCIsInRhYmxlcyQxIiwidGFibGVzX2RhdGEiLCJuZXdfY2FjaGUiLCJzZXRfbWV0aG9kcyIsImNsbyIsImNsbyQwIiwibiQyIiwibiQzIiwibiQ0IiwibiQ1IiwibiQ2IiwieCQzIiwibiQ3IiwieCQ0IiwibiQ4IiwibiQ5IiwieCQ1IiwiZiQ4IiwiZSQyIiwibiQxMCIsIngkNiIsImYkOSIsIm4kMTEiLCJ4JDciLCJuJDEyIiwieCQ4IiwibiQxMyIsIm4kMTQiLCJlJDMiLCJuJDE1IiwibSQxIiwibSQyIiwieCQ5IiwibSQzIiwibiQxNiIsIm0kNCIsImUkNCIsIm4kMTciLCJtJDUiLCJuJDE4IiwiaW5pdF9tb2RfYmxvY2siLCJjb21wcyQwIiwibW9kdSIsInNoYXBlIiwiZm4kMCIsImNvbXBzIiwiaW5pdF9tb2QiLCJ1cGRhdGVfbW9kX2Jsb2NrIiwiY2wiLCJ1cGRhdGVfbW9kIiwiaW5pdGlhbF9idWZmZXIiLCJidWZmZXIiLCJidWZwb3MiLCJyZXNldF9idWZmZXIiLCJzdG9yZSIsIm5ld2J1ZmZlciIsImdldF9zdHJpbmciLCJtYWtlX2xleGVyIiwia2V5d29yZHMiLCJrd2RfdGFibGUiLCJpZGVudF9vcl9rZXl3b3JkIiwia2V5d29yZF9vcl9lcnJvciIsImVuZF9leHBvbmVudF9wYXJ0IiwiZXhwb25lbnRfcGFydCIsIm51bWJlciIsImlkZW50MiIsIm5leHRfdG9rZW4iLCJlc2NhcGUiLCJjb21tZW50IiwiYzMiLCJoa2V5IiwiY2xlYW4iLCJkb19idWNrZXQiLCJpbnNlcnRfYnVja2V0IiwiY29udGFpbmVyIiwicmVtb3ZlX2J1Y2tldCIsImhrIiwibmV3X2QiLCJidWNrZXRfbGVuZ3RoX2FsaXZlIiwic3RhdHNfYWxpdmUiLCJnZXRfZGF0YV9jb3B5Iiwic2V0X2RhdGEiLCJ1bnNldF9kYXRhIiwiY2hlY2tfZGF0YSIsImJsaXRfZGF0YSIsImVwaCIsInF1ZXJ5Iiwic2V0X2tleV9kYXRhIiwibWFrZSQwIiwidGVzdF9rZXkiLCJ0JDAiLCJnZXRfa2V5MSIsImdldF9rZXkxX2NvcHkiLCJzZXRfa2V5MSIsInVuc2V0X2tleTEiLCJjaGVja19rZXkxIiwiZ2V0X2tleTIiLCJnZXRfa2V5Ml9jb3B5Iiwic2V0X2tleTIiLCJ1bnNldF9rZXkyIiwiY2hlY2tfa2V5MiIsImJsaXRfa2V5MSIsImJsaXRfa2V5MiIsImJsaXRfa2V5MTIiLCJnZXRfZGF0YSQwIiwiZ2V0X2RhdGFfY29weSQwIiwic2V0X2RhdGEkMCIsInVuc2V0X2RhdGEkMCIsImNoZWNrX2RhdGEkMCIsImJsaXRfZGF0YSQwIiwibWFrZSQxIiwia2V5MSIsImtleTIiLCJxdWVyeSQwIiwiazIkMCIsImsxJDAiLCJlcXVhbCQwIiwibWFrZSQyIiwiYWRkJDAiLCJ0ZXN0X2tleXMiLCJyZW1vdmUkMCIsImZpbmQkMCIsImxlbmd0aCQwIiwiY2xlYXIkMCIsImNyZWF0ZSQxIiwibGVuZ3RoJDEiLCJnZXRfa2V5JDAiLCJnZXRfa2V5X2NvcHkkMCIsInNldF9rZXkkMCIsInVuc2V0X2tleSQwIiwiY2hlY2tfa2V5JDAiLCJibGl0X2tleSQwIiwiZ2V0X2RhdGEkMSIsImdldF9kYXRhX2NvcHkkMSIsInNldF9kYXRhJDEiLCJ1bnNldF9kYXRhJDEiLCJjaGVja19kYXRhJDEiLCJibGl0X2RhdGEkMSIsIm1ha2UkMyIsInF1ZXJ5JDEiLCJraSIsImswIiwibWFrZSQ0IiwiYWRkJDEiLCJ0ZXN0X2tleXMkMCIsInJlbW92ZSQxIiwiZmluZCQxIiwibGVuZ3RoJDIiLCJjbGVhciQxIiwibnVsbCQwIiwiY3VycmVudF9kaXJfbmFtZSIsInBhcmVudF9kaXJfbmFtZSIsImRpcl9zZXAiLCJxdW90ZXF1b3RlIiwibnVsbCQxIiwiY3VycmVudF9kaXJfbmFtZSQwIiwicGFyZW50X2Rpcl9uYW1lJDAiLCJkaXJfc2VwJDAiLCJudWxsJDIiLCJjdXJyZW50X2Rpcl9uYW1lJDEiLCJwYXJlbnRfZGlyX25hbWUkMSIsImRpcl9zZXAkMSIsImdlbmVyaWNfYmFzZW5hbWUiLCJpc19kaXJfc2VwIiwiZ2VuZXJpY19kaXJuYW1lIiwiaXNfcmVsYXRpdmUiLCJpc19pbXBsaWNpdCIsImNoZWNrX3N1ZmZpeCIsInN1ZmYiLCJjaG9wX3N1ZmZpeF9vcHQiLCJsZW5fZiIsInRlbXBfZGlyX25hbWUiLCJxdW90ZSIsInF1b3RlX2NvbW1hbmQiLCJiYXNlbmFtZSIsImRpcm5hbWUiLCJpc19kaXJfc2VwJDAiLCJpc19yZWxhdGl2ZSQwIiwiaXNfaW1wbGljaXQkMCIsImNoZWNrX3N1ZmZpeCQwIiwiY2hvcF9zdWZmaXhfb3B0JDAiLCJ0ZW1wX2Rpcl9uYW1lJDAiLCJxdW90ZSQwIiwiYWRkX2JzIiwibG9vcCQwIiwibG9vcF9icyIsInF1b3RlX2NtZF9maWxlbmFtZSIsInF1b3RlX2NvbW1hbmQkMCIsImRyaXZlX2FuZF9wYXRoIiwiZGlybmFtZSQwIiwicGF0aCIsImRyaXZlIiwiZGlyIiwiYmFzZW5hbWUkMCIsImJhc2VuYW1lJDEiLCJkaXJuYW1lJDEiLCJudWxsJDMiLCJjdXJyZW50X2Rpcl9uYW1lJDIiLCJwYXJlbnRfZGlyX25hbWUkMiIsImRpcl9zZXAkMiIsImlzX2Rpcl9zZXAkMSIsImlzX3JlbGF0aXZlJDEiLCJpc19pbXBsaWNpdCQxIiwiY2hlY2tfc3VmZml4JDEiLCJjaG9wX3N1ZmZpeF9vcHQkMSIsInRlbXBfZGlyX25hbWUkMSIsInF1b3RlJDEiLCJxdW90ZV9jb21tYW5kJDEiLCJiYXNlbmFtZSQyIiwiZGlybmFtZSQyIiwiY2hvcF9zdWZmaXgiLCJleHRlbnNpb25fbGVuIiwiaTAiLCJleHRlbnNpb24iLCJjaG9wX2V4dGVuc2lvbiIsInJlbW92ZV9leHRlbnNpb24iLCJ0ZW1wX2ZpbGVfbmFtZSIsInRlbXBfZGlyIiwicm5kIiwiY3VycmVudF90ZW1wX2Rpcl9uYW1lIiwic2V0X3RlbXBfZGlyX25hbWUiLCJnZXRfdGVtcF9kaXJfbmFtZSIsInRlbXBfZmlsZSIsIm9wZW5fdGVtcF9maWxlIiwic3RoJDAiLCJwZXJtcyIsInN0aCQxIiwibmVnIiwiY29uaiIsIm11bCIsImRpdiIsImludiIsIm5vcm0yIiwibm9ybSIsInEkMCIsInBvbGFyIiwic3FydCIsInckMCIsImV4cCIsImxvZyIsInBvdyIsImZsb2F0MzIiLCJmbG9hdDY0IiwiaW50OF9zaWduZWQiLCJpbnQ4X3Vuc2lnbmVkIiwiaW50MTZfc2lnbmVkIiwiaW50MTZfdW5zaWduZWQiLCJjb21wbGV4MzIiLCJjb21wbGV4NjQiLCJraW5kX3NpemVfaW5fYnl0ZXMiLCJjX2xheW91dCIsImZvcnRyYW5fbGF5b3V0IiwiY2xvb3AiLCJpZHgiLCJjb2wiLCJmbG9vcCIsImxheW91dCIsImRpbXMiLCJzaXplX2luX2J5dGVzIiwic2l6ZV9pbl9ieXRlcyQwIiwib2ZfdmFsdWUiLCJkaW0iLCJzaXplX2luX2J5dGVzJDEiLCJzbGljZSIsImluaXQkMCIsIm9mX2FycmF5IiwiYmEiLCJkaW0xIiwiZGltMiIsInNpemVfaW5fYnl0ZXMkMiIsInNsaWNlX2xlZnQiLCJzbGljZV9yaWdodCIsImluaXQkMSIsIm9mX2FycmF5JDAiLCJyb3ciLCJjcmVhdGUkMiIsImRpbTMiLCJzaXplX2luX2J5dGVzJDMiLCJzbGljZV9sZWZ0XzEiLCJzbGljZV9yaWdodF8xIiwic2xpY2VfbGVmdF8yIiwic2xpY2VfcmlnaHRfMiIsImluaXQkMiIsIm9mX2FycmF5JDEiLCJhcnJheTBfb2ZfZ2VuYXJyYXkiLCJhcnJheTFfb2ZfZ2VuYXJyYXkiLCJhcnJheTJfb2ZfZ2VuYXJyYXkiLCJhcnJheTNfb2ZfZ2VuYXJyYXkiLCJyZXNoYXBlXzAiLCJyZXNoYXBlXzEiLCJyZXNoYXBlXzIiLCJyZXNoYXBlXzMiLCJvcGVuX2JpbiIsIm9wZW5fdGV4dCIsIm9wZW5fZ2VuIiwid2l0aF9vcGVuIiwib3BlbmZ1biIsIndpdGhfb3Blbl9iaW4iLCJ3aXRoX29wZW5fdGV4dCIsIndpdGhfb3Blbl9nZW4iLCJzZWVrIiwiY2xvc2UiLCJjbG9zZV9ub2VyciIsInJlYWRfdXB0byIsImVuc3VyZSIsIm5ld19sZW4kMCIsIm5ld19sZW4kMSIsImlucHV0X2FsbCIsImNodW5rX3NpemUiLCJpbml0aWFsX3NpemUkMCIsImluaXRpYWxfc2l6ZSQxIiwibnJlYWQiLCJidWYkMiIsImJ1ZiQwIiwiYnVmJDEiLCJyZW0iLCJzZXRfYmluYXJ5X21vZGUiLCJmb3JtYXRfcGVyaW9kIiwiZm10IiwicCIsIm1ha2VfcGVyaW9kIiwieWVhcnMiLCJtb250aHMiLCJkYXlzIiwiYWRkX3BlcmlvZHMiLCJkMSIsImQyIiwic3ViX3BlcmlvZHMiLCJtdWxfcGVyaW9kIiwibSIsInBlcmlvZF90b19kYXlzIiwiaXNfbGVhcF95ZWFyIiwieWVhciIsImRheXNfaW5fbW9udGgiLCJtb250aCIsImlzX3ZhbGlkX2RhdGUiLCJkIiwibWFrZV9kYXRlIiwiZGF5IiwiYWRkX21vbnRoc190b19maXJzdF9vZl9tb250aF9kIiwieWVhciQwIiwibW9udGhzJDAiLCJuZXdfbW9udGgiLCJtb250aHMkMSIsInllYXIkMSIsIm1vbnRocyQyIiwieWVhciQyIiwiYWRkX2RhdGVzIiwib3B0Iiwic3RoIiwicm91bmQiLCJuZXdfbW9udGgkMCIsIm5ld195ZWFyJDAiLCJuZXdfZGF0ZSIsImQkMCIsIm5ld195ZWFyIiwiZGF5cyQyIiwiZCQxIiwiZGF5c19pbl9kX21vbnRoIiwibmV3X2RheSIsIm5ld19tb250aCQxIiwibmV3X3llYXIkMSIsImRheXMkMCIsImQkMiIsIm5ld19tb250aCQyIiwibmV3X3llYXIkMiIsImRheXMkMSIsImQkMyIsImNvbXBhcmVfZGF0ZXMiLCJmb3JtYXRfZGF0ZSIsImZpcnN0X2RheV9vZl9tb250aCIsImxhc3RfZGF5X29mX21vbnRoIiwiZGF5c19tb250aCIsIm5lZ19wZXJpb2QiLCJzdWJfZGF0ZXMiLCJjbXAiLCJuZXdfZDJfbW9udGgiLCJuZXdfZDJfeWVhciIsIm5ld19kMiIsImRhdGVfdG9feW1kIiwicGVyaW9kX3RvX3ltZHMiLCJzdHJlYW0kMSIsInN0cmVhbSQwIiwic3RyZWFtIiwidmVyc2lvbiIsIm9jYW1sX2xleF90YWJsZXMiLCJvY2FtbF9sZXhfdGFibGVzJDAiLCJvY2FtbF9sZXhfdGFibGVzJDEiLCJqc29uX2Vycm9yIiwicyIsInV0Zjhfb2ZfY29kZSIsImJ1ZiIsIngiLCJhZGQiLCJtYXhiaXRzIiwibiIsInV0Zjhfb2Zfc3Vycm9nYXRlX3BhaXIiLCJpIiwiaiIsImhpZ2gxMCIsImxvdzEwIiwiaW5pdF9sZXhlciIsImZuYW1lIiwib3B0Iiwic3RoIiwibG51bSIsImJ1ZiQwIiwiYnVmJDEiLCJoZXgiLCJ3cml0ZV9zcGVjaWFsIiwic3JjIiwic3RhcnQiLCJzdG9wIiwib2IiLCJzdHIiLCJ3cml0ZV9zdHJpbmciLCJjIiwiZXhjJDAiLCJleGMiLCJqc29uX3N0cmluZ19vZl9zdHJpbmciLCJ3cml0ZV9udWxsIiwid3JpdGVfYm9vbCIsIndyaXRlX2RpZ2l0cyIsImQiLCJ3cml0ZV9pbnQiLCJmbG9hdF9uZWVkc19wZXJpb2QiLCJ3cml0ZV9mbG9hdCIsInMxIiwid3JpdGVfbm9ybWFsX2Zsb2F0X3ByZWMiLCJzaWduaWZpY2FudF9maWd1cmVzIiwid3JpdGVfZmxvYXRfcHJlYyIsIndyaXRlX3N0ZF9mbG9hdCIsIndyaXRlX3N0ZF9mbG9hdF9wcmVjIiwid3JpdGVfaW50bGl0Iiwid3JpdGVfZmxvYXRsaXQiLCJ3cml0ZV9zdHJpbmdsaXQiLCJpdGVyMiIsImZfZWx0IiwiZl9zZXAiLCJsJDAiLCJ5JDAiLCJsIiwieSIsIndyaXRlX3ZhcmlhbnQiLCJvIiwid3JpdGVfanNvbiIsIndyaXRlX3R1cGxlIiwid3JpdGVfbGlzdCIsIndyaXRlX2Fzc29jIiwibCQxIiwicyQwIiwiYiIsInMkMSIsImYiLCJzJDIiLCJzJDMiLCJ3cml0ZV9zdGRfdmFyaWFudCIsIndyaXRlX3N0ZF9qc29uIiwid3JpdGVfc3RkX3R1cGxlIiwidG9fYnVmZmVyIiwic3VmIiwic3RoJDAiLCJzdGQiLCJ0b19zdHJpbmciLCJsZW4iLCJvYiQwIiwidG9fY2hhbm5lbCIsIm9jIiwidG9fb3V0cHV0Iiwib3V0IiwidG9fZmlsZSIsImZpbGUiLCJlJDAiLCJlIiwic2VxX3RvX2J1ZmZlciIsInN0Iiwic2VxX3RvX3N0cmluZyIsInNlcV90b19jaGFubmVsIiwic2VxIiwianNvbiIsInNlcV90b19maWxlIiwic29ydCIsInYiLCJrIiwiYSIsInYkMCIsImwkMiIsInBwIiwiZm10IiwidHVwIiwic2VwIiwidmFsdWUiLCJuYW1lIiwieCQxIiwieHMiLCJrZXkiLCJ4cyQwIiwieCQwIiwieCQyIiwieCQzIiwieCQ0IiwieCQ1IiwieCQ2Iiwic2hvdyIsImVxdWFsIiwiYSQwIiwiYiQwIiwiYiQxIiwiYSQxIiwieXMiLCJjb21wYXJlX2tleXMiLCJrZXkkMCIsInlzJDAiLCJ2YWx1ZSQwIiwicmVzdWx0IiwieXMkMSIsInhzJDEiLCJiJDIiLCJhJDIiLCJuYW1lJDAiLCJyZXN1bHQkMCIsImIkMyIsImEkMyIsImIkNCIsImEkNCIsImIkNSIsImEkNSIsImIkNiIsImEkNiIsImIkNyIsImEkNyIsInBwX2xpc3QiLCJwcHgiLCJwcF9zZXAiLCJpc19hdG9tIiwiZm9ybWF0IiwiaW5zaWRlX2JveCIsInMkNCIsInJlcHJlc2VudGF0aW9uIiwib3AiLCJyZXByZXNlbnRhdGlvbiQwIiwicHAkMCIsInByZXR0eV9wcmludCIsInByZXR0eV90b19zdHJpbmciLCJwcmV0dHlfdG9fY2hhbm5lbCIsImhleCQwIiwid3JpdGVfc3BlY2lhbCQwIiwid3JpdGVfc3RyaW5nJDAiLCJqc29uX3N0cmluZ19vZl9zdHJpbmckMCIsIndyaXRlX251bGwkMCIsIndyaXRlX2Jvb2wkMCIsIndyaXRlX2RpZ2l0cyQwIiwid3JpdGVfaW50JDAiLCJmbG9hdF9uZWVkc19wZXJpb2QkMCIsIndyaXRlX2Zsb2F0JDAiLCJ3cml0ZV9ub3JtYWxfZmxvYXRfcHJlYyQwIiwid3JpdGVfZmxvYXRfcHJlYyQwIiwid3JpdGVfc3RkX2Zsb2F0JDAiLCJ3cml0ZV9zdGRfZmxvYXRfcHJlYyQwIiwiaXRlcjIkMCIsImZfc2VwJDAiLCJ3cml0ZV9saXN0JDAiLCJ3cml0ZV9qc29uJDAiLCJ3cml0ZV9hc3NvYyQwIiwid3JpdGVfc3RkX2pzb24kMCIsInRvX2J1ZmZlciQwIiwidG9fc3RyaW5nJDAiLCJ0b19jaGFubmVsJDAiLCJ0b19vdXRwdXQkMCIsInRvX2ZpbGUkMCIsInNlcV90b19idWZmZXIkMCIsInNlcV90b19zdHJpbmckMCIsInNlcV90b19jaGFubmVsJDAiLCJzZXFfdG9fZmlsZSQwIiwic29ydCQwIiwicHBfbGlzdCQwIiwiaXNfYXRvbSQwIiwiZm9ybWF0JDAiLCJwcCQxIiwicHAkMiIsInNob3ckMCIsImVxdWFsJDAiLCJwcmV0dHlfcHJpbnQkMCIsInByZXR0eV90b19zdHJpbmckMCIsInByZXR0eV90b19jaGFubmVsJDAiLCJoZXgkMSIsImN1c3RvbV9lcnJvciIsImRlc2NyIiwibGV4YnVmIiwib2ZmcyIsImJvbCIsInBvczEiLCJwb3MyIiwiZmlsZV9saW5lIiwiYnl0ZXMiLCJtc2ciLCJsZXhlcl9lcnJvciIsInJlYWRfanVuayIsImxvbmdfZXJyb3IiLCJqdW5rIiwiZXh0cmFfanVuayIsIm1pbjEwIiwibWF4MTAiLCJleHRyYWN0X3Bvc2l0aXZlX2ludCIsImV4dHJhY3RfbmVnYXRpdmVfaW50IiwibmV3bGluZSIsImFkZF9sZXhlbWUiLCJyZWFkX2pzb24iLCJvY2FtbF9sZXhfc3RhdGUiLCJvY2FtbF9sZXhfc3RhdGUkMCIsImZpbmlzaF9zdHJpbmciLCJhY2MiLCJyZWFkX3NwYWNlIiwicmVhZF9vYmplY3RfZW5kIiwiZmllbGRfbmFtZSIsInJlYWRfaWRlbnQiLCJyZWFkX2NvbG9uIiwicmVhZF9vYmplY3Rfc2VwIiwiZmllbGRfbmFtZSQwIiwiYWNjJDAiLCJyZWFkX2FycmF5X2VuZCIsInJlYWRfYXJyYXlfc2VwIiwiZmluaXNoX2NvbW1lbnQiLCJmaW5pc2hfZXNjYXBlZF9jaGFyIiwibWFwX3N0cmluZyIsImMkMCIsIm9jYW1sX2xleF9zdGF0ZSQxIiwib2NhbWxfbGV4X3N0YXRlJDIiLCJjJDEiLCJkJDAiLCJmaW5pc2hfc3RyaW5nbGl0IiwiZmluaXNoX3ZhcmlhbnQiLCJyZWFkX2d0IiwicmVhZF9sdCIsInJlYWRfY29tbWEiLCJzdGFydF9hbnlfdmFyaWFudCIsInJlYWRfZW9mIiwicmVhZF9udWxsIiwicmVhZF9udWxsX2lmX3Bvc3NpYmxlIiwicmVhZF9ib29sIiwicmVhZF9pbnQiLCJyZWFkX2ludDMyIiwicmVhZF9pbnQ2NCIsInJlYWRfbnVtYmVyIiwicmVhZF9zdHJpbmciLCJtYXBfaWRlbnQiLCJyZWFkX3NlcXVlbmNlIiwicmVhZF9jZWxsIiwiaW5pdF9hY2MiLCJyZWFkX2xpc3RfcmV2IiwicmVhZF90dXBsZSIsInJlYWRfdHVwbGVfZW5kIiwicmVhZF90dXBsZV9lbmQyIiwicmVhZF90dXBsZV9zZXAiLCJyZWFkX3R1cGxlX3NlcDIiLCJyZWFkX2Fic3RyYWN0X2ZpZWxkcyIsInJlYWRfa2V5IiwicmVhZF9maWVsZCIsInJlYWRfbGN1cmwiLCJzdGFydF9hbnlfdHVwbGUiLCJyZWFkX2xwYXIiLCJyZWFkX3JwYXIiLCJyZWFkX2xiciIsInJlYWRfcmJyIiwiZmluaXNoX3NraXBfc3RyaW5nbGl0Iiwic2tpcF9qc29uIiwic2tpcF9pZGVudCIsImZpbmlzaF9za2lwX3ZhcmlhbnQiLCJmaW5pc2hfYnVmZmVyX3N0cmluZ2xpdCIsImJ1ZmZlcl9qc29uIiwiYnVmZmVyX3NwYWNlIiwiYnVmZmVyX2lkZW50IiwiYnVmZmVyX2NvbG9uIiwib2NhbWxfbGV4X3N0YXRlJDMiLCJvY2FtbF9sZXhfc3RhdGUkNCIsIm9jYW1sX2xleF9zdGF0ZSQ1Iiwib2NhbWxfbGV4X3N0YXRlJDYiLCJvY2FtbF9sZXhfc3RhdGUkNyIsIm9jYW1sX2xleF9zdGF0ZSQ4IiwiZmluaXNoX2J1ZmZlcl9jb21tZW50IiwicmVhZF9pbnQ4IiwicmVhZF9saXN0IiwicmVhZF9hcnJheSIsInRsIiwiciIsInJlYWRfZmllbGRzIiwiZnJvbV9sZXhidWYiLCJmcm9tX3N0cmluZyQwIiwiZnJvbV9jaGFubmVsJDAiLCJpYyIsImZyb21fZmlsZSIsInNlcV9mcm9tX2xleGJ1ZiIsImZpbiIsImZpbl9lJDAiLCJmaW5fZSIsInNlcV9mcm9tX3N0cmluZyIsInNlcV9mcm9tX2NoYW5uZWwiLCJzZXFfZnJvbV9maWxlIiwiZm5hbWUkMCIsImxpbmVzZXFfZnJvbV9jaGFubmVsIiwibG51bTAiLCJsaW5lIiwibGluZXNlcV9mcm9tX2ZpbGUiLCJwcmV0dGlmeSIsImNvbXBhY3QiLCJ0eXBlcnIiLCJqcyIsIm1lbWJlciIsIm9iaiIsImluZGV4Iiwid3JhcHBlZF9pbmRleCIsIm1hcCIsInRvX2Fzc29jIiwidG9fb3B0aW9uIiwidG9fYm9vbCIsInRvX2Jvb2xfb3B0aW9uIiwidG9fbnVtYmVyIiwidG9fbnVtYmVyX29wdGlvbiIsInRvX2Zsb2F0IiwidG9fZmxvYXRfb3B0aW9uIiwidG9faW50IiwidG9faW50X29wdGlvbiIsInRvX2xpc3QiLCJ0b19zdHJpbmckMSIsInRvX3N0cmluZ19vcHRpb24iLCJjb252ZXJ0X2VhY2giLCJmaWx0ZXJfbWFwIiwiZmxhdHRlbiIsImwyIiwiZmlsdGVyX2luZGV4IiwiZmlsdGVyX2xpc3QiLCJmaWx0ZXJfbWVtYmVyIiwiZmlsdGVyX2Fzc29jIiwiZmlsdGVyX2Jvb2wiLCJmaWx0ZXJfaW50IiwiZmlsdGVyX2Zsb2F0IiwiZmlsdGVyX251bWJlciIsImZpbHRlcl9zdHJpbmciLCJrZXlzIiwidmFsdWVzIiwiY29tYmluZSIsImZpcnN0Iiwic2Vjb25kIiwidG9fYmFzaWMiLCJoZXgkMiIsIndyaXRlX3NwZWNpYWwkMSIsIndyaXRlX3N0cmluZyQxIiwianNvbl9zdHJpbmdfb2Zfc3RyaW5nJDEiLCJ3cml0ZV9udWxsJDEiLCJ3cml0ZV9ib29sJDEiLCJ3cml0ZV9kaWdpdHMkMSIsIndyaXRlX2ludCQxIiwiZmxvYXRfbmVlZHNfcGVyaW9kJDEiLCJ3cml0ZV9mbG9hdCQxIiwid3JpdGVfbm9ybWFsX2Zsb2F0X3ByZWMkMSIsIndyaXRlX2Zsb2F0X3ByZWMkMSIsIndyaXRlX3N0ZF9mbG9hdCQxIiwid3JpdGVfc3RkX2Zsb2F0X3ByZWMkMSIsIndyaXRlX2ludGxpdCQwIiwiaXRlcjIkMSIsImZfc2VwJDEiLCJ3cml0ZV92YXJpYW50JDAiLCJ3cml0ZV9qc29uJDEiLCJ3cml0ZV90dXBsZSQwIiwid3JpdGVfbGlzdCQxIiwid3JpdGVfYXNzb2MkMSIsIndyaXRlX3N0ZF92YXJpYW50JDAiLCJ3cml0ZV9zdGRfanNvbiQxIiwid3JpdGVfc3RkX3R1cGxlJDAiLCJ0b19idWZmZXIkMSIsInRvX3N0cmluZyQyIiwidG9fY2hhbm5lbCQxIiwidG9fb3V0cHV0JDEiLCJ0b19maWxlJDEiLCJzZXFfdG9fYnVmZmVyJDEiLCJzZXFfdG9fc3RyaW5nJDEiLCJzZXFfdG9fY2hhbm5lbCQxIiwic2VxX3RvX2ZpbGUkMSIsInNvcnQkMSIsInBwX2xpc3QkMSIsImlzX2F0b20kMSIsImZvcm1hdCQxIiwicHAkMyIsInBwJDQiLCJzaG93JDEiLCJlcXVhbCQxIiwicHJldHR5X3ByaW50JDEiLCJwcmV0dHlfdG9fc3RyaW5nJDEiLCJwcmV0dHlfdG9fY2hhbm5lbCQxIiwiaGV4JDMiLCJjdXN0b21fZXJyb3IkMCIsImxleGVyX2Vycm9yJDAiLCJyZWFkX2p1bmskMCIsImxvbmdfZXJyb3IkMCIsIm1pbjEwJDAiLCJtYXgxMCQwIiwiZXh0cmFjdF9wb3NpdGl2ZV9pbnQkMCIsImV4dHJhY3RfbmVnYXRpdmVfaW50JDAiLCJuZXdsaW5lJDAiLCJhZGRfbGV4ZW1lJDAiLCJyZWFkX2pzb24kMCIsImZpbmlzaF9zdHJpbmckMCIsInJlYWRfc3BhY2UkMCIsInJlYWRfb2JqZWN0X2VuZCQwIiwicmVhZF9pZGVudCQwIiwicmVhZF9jb2xvbiQwIiwicmVhZF9vYmplY3Rfc2VwJDAiLCJyZWFkX2FycmF5X2VuZCQwIiwicmVhZF9hcnJheV9zZXAkMCIsImFjYyQxIiwicmVhZF90dXBsZV9lbmQkMCIsInJlYWRfdHVwbGVfc2VwJDAiLCJjb25zIiwiZmluaXNoX3ZhcmlhbnQkMCIsImZpbmlzaF9jb21tZW50JDAiLCJmaW5pc2hfZXNjYXBlZF9jaGFyJDAiLCJtYXBfc3RyaW5nJDAiLCJmaW5pc2hfc3RyaW5nbGl0JDAiLCJyZWFkX2d0JDAiLCJyZWFkX2x0JDAiLCJyZWFkX2NvbW1hJDAiLCJzdGFydF9hbnlfdmFyaWFudCQwIiwicmVhZF9lb2YkMCIsInJlYWRfbnVsbCQwIiwicmVhZF9udWxsX2lmX3Bvc3NpYmxlJDAiLCJyZWFkX2Jvb2wkMCIsInJlYWRfaW50JDAiLCJyZWFkX2ludDMyJDAiLCJyZWFkX2ludDY0JDAiLCJyZWFkX251bWJlciQwIiwicmVhZF9zdHJpbmckMCIsIm1hcF9pZGVudCQwIiwicmVhZF9zZXF1ZW5jZSQwIiwicmVhZF9saXN0X3JldiQwIiwicmVhZF90dXBsZSQwIiwicG9zIiwicmVhZF90dXBsZV9lbmQyJDAiLCJyZWFkX3R1cGxlX3NlcDIkMCIsInJlYWRfYWJzdHJhY3RfZmllbGRzJDAiLCJyZWFkX2xjdXJsJDAiLCJzdGFydF9hbnlfdHVwbGUkMCIsInJlYWRfbHBhciQwIiwicmVhZF9ycGFyJDAiLCJyZWFkX2xiciQwIiwicmVhZF9yYnIkMCIsImZpbmlzaF9za2lwX3ZhcmlhbnQkMCIsInNraXBfanNvbiQwIiwiZmluaXNoX3NraXBfc3RyaW5nbGl0JDAiLCJza2lwX2lkZW50JDAiLCJmaW5pc2hfYnVmZmVyX3N0cmluZ2xpdCQwIiwiYnVmZmVyX2pzb24kMCIsImJ1ZmZlcl9zcGFjZSQwIiwiYnVmZmVyX2lkZW50JDAiLCJidWZmZXJfY29sb24kMCIsIm9jYW1sX2xleF9zdGF0ZSQ5Iiwib2NhbWxfbGV4X3N0YXRlJDEwIiwib2NhbWxfbGV4X3N0YXRlJDExIiwib2NhbWxfbGV4X3N0YXRlJDEyIiwib2NhbWxfbGV4X3N0YXRlJDEzIiwib2NhbWxfbGV4X3N0YXRlJDE0Iiwib2NhbWxfbGV4X3N0YXRlJDE1Iiwib2NhbWxfbGV4X3N0YXRlJDE2IiwiZmluaXNoX2J1ZmZlcl9jb21tZW50JDAiLCJqdW5rJDAiLCJyZWFkX2ludDgkMCIsInJlYWRfbGlzdCQwIiwicmVhZF9hcnJheSQwIiwicmVhZF9maWVsZHMkMCIsImZyb21fbGV4YnVmJDAiLCJmcm9tX3N0cmluZyQyIiwiZnJvbV9jaGFubmVsJDIiLCJmcm9tX2ZpbGUkMCIsInNlcV9mcm9tX2xleGJ1ZiQwIiwic2VxX2Zyb21fc3RyaW5nJDAiLCJzZXFfZnJvbV9jaGFubmVsJDAiLCJzZXFfZnJvbV9maWxlJDAiLCJsaW5lc2VxX2Zyb21fY2hhbm5lbCQwIiwibGluZXNlcV9mcm9tX2ZpbGUkMCIsInByZXR0aWZ5JDAiLCJjb21wYWN0JDAiLCJ0eXBlcnIkMCIsIm1lbWJlciQwIiwiaW5kZXgkMCIsIm1hcCQwIiwidG9fYXNzb2MkMCIsInRvX29wdGlvbiQwIiwidG9fYm9vbCQwIiwidG9fYm9vbF9vcHRpb24kMCIsInRvX251bWJlciQwIiwidG9fbnVtYmVyX29wdGlvbiQwIiwidG9fZmxvYXQkMCIsInRvX2Zsb2F0X29wdGlvbiQwIiwidG9faW50JDAiLCJ0b19pbnRfb3B0aW9uJDAiLCJ0b19saXN0JDAiLCJ0b19zdHJpbmckMyIsInRvX3N0cmluZ19vcHRpb24kMCIsImNvbnZlcnRfZWFjaCQwIiwiZmlsdGVyX21hcCQwIiwiZmxhdHRlbiQwIiwiZmlsdGVyX2luZGV4JDAiLCJmaWx0ZXJfbGlzdCQwIiwiZmlsdGVyX21lbWJlciQwIiwiZmlsdGVyX2Fzc29jJDAiLCJmaWx0ZXJfYm9vbCQwIiwiZmlsdGVyX2ludCQwIiwiZmlsdGVyX2Zsb2F0JDAiLCJmaWx0ZXJfbnVtYmVyJDAiLCJmaWx0ZXJfc3RyaW5nJDAiLCJrZXlzJDAiLCJ2YWx1ZXMkMCIsImNvbWJpbmUkMCIsImhleCQ0Iiwid3JpdGVfc3BlY2lhbCQyIiwid3JpdGVfc3RyaW5nJDIiLCJqc29uX3N0cmluZ19vZl9zdHJpbmckMiIsIndyaXRlX251bGwkMiIsIndyaXRlX2Jvb2wkMiIsIndyaXRlX2ludGxpdCQxIiwid3JpdGVfZmxvYXRsaXQkMCIsIndyaXRlX3N0cmluZ2xpdCQwIiwiaXRlcjIkMiIsImZfc2VwJDIiLCJ3cml0ZV92YXJpYW50JDEiLCJ3cml0ZV9qc29uJDIiLCJ3cml0ZV90dXBsZSQxIiwid3JpdGVfbGlzdCQyIiwid3JpdGVfYXNzb2MkMiIsIndyaXRlX3N0ZF92YXJpYW50JDEiLCJ3cml0ZV9zdGRfanNvbiQyIiwid3JpdGVfc3RkX3R1cGxlJDEiLCJ0b19idWZmZXIkMiIsInRvX3N0cmluZyQ0IiwidG9fY2hhbm5lbCQyIiwidG9fb3V0cHV0JDIiLCJ0b19maWxlJDIiLCJzZXFfdG9fYnVmZmVyJDIiLCJzZXFfdG9fc3RyaW5nJDIiLCJzZXFfdG9fY2hhbm5lbCQyIiwic2VxX3RvX2ZpbGUkMiIsInNvcnQkMiIsInBwX2xpc3QkMiIsImlzX2F0b20kMiIsImZvcm1hdCQyIiwicHAkNSIsInBwJDYiLCJzaG93JDIiLCJlcXVhbCQyIiwicHJldHR5X3ByaW50JDIiLCJwcmV0dHlfdG9fc3RyaW5nJDIiLCJwcmV0dHlfdG9fY2hhbm5lbCQyIiwiaGV4JDUiLCJjdXN0b21fZXJyb3IkMSIsImxleGVyX2Vycm9yJDEiLCJyZWFkX2p1bmskMSIsImxvbmdfZXJyb3IkMSIsIm1pbjEwJDEiLCJtYXgxMCQxIiwibmV3bGluZSQxIiwiYWRkX2xleGVtZSQxIiwicmVhZF9qc29uJDEiLCJmaW5pc2hfc3RyaW5nbGl0JDEiLCJyZWFkX3NwYWNlJDEiLCJyZWFkX29iamVjdF9lbmQkMSIsInJlYWRfaWRlbnQkMSIsInJlYWRfY29sb24kMSIsInJlYWRfb2JqZWN0X3NlcCQxIiwicmVhZF9hcnJheV9lbmQkMSIsInJlYWRfYXJyYXlfc2VwJDEiLCJyZWFkX3R1cGxlX2VuZCQxIiwicmVhZF90dXBsZV9zZXAkMSIsImZpbmlzaF92YXJpYW50JDEiLCJmaW5pc2hfY29tbWVudCQxIiwiZmluaXNoX3N0cmluZyQxIiwiZmluaXNoX2VzY2FwZWRfY2hhciQxIiwibWFwX3N0cmluZyQxIiwicmVhZF9ndCQxIiwicmVhZF9sdCQxIiwicmVhZF9jb21tYSQxIiwic3RhcnRfYW55X3ZhcmlhbnQkMSIsInJlYWRfZW9mJDEiLCJyZWFkX251bGwkMSIsInJlYWRfbnVsbF9pZl9wb3NzaWJsZSQxIiwicmVhZF9ib29sJDEiLCJyZWFkX2ludCQxIiwic3RhcnQkMCIsInN0b3AkMCIsIm4kMCIsImkkMCIsInJlYWRfaW50MzIkMSIsInJlYWRfaW50NjQkMSIsInJlYWRfbnVtYmVyJDEiLCJyZWFkX3N0cmluZyQxIiwibWFwX2lkZW50JDEiLCJyZWFkX3NlcXVlbmNlJDEiLCJyZWFkX2xpc3RfcmV2JDEiLCJyZWFkX3R1cGxlJDEiLCJyZWFkX3R1cGxlX2VuZDIkMSIsInJlYWRfdHVwbGVfc2VwMiQxIiwicmVhZF9hYnN0cmFjdF9maWVsZHMkMSIsInJlYWRfbGN1cmwkMSIsInN0YXJ0X2FueV90dXBsZSQxIiwicmVhZF9scGFyJDEiLCJyZWFkX3JwYXIkMSIsInJlYWRfbGJyJDEiLCJyZWFkX3JiciQxIiwiZmluaXNoX3NraXBfdmFyaWFudCQxIiwic2tpcF9qc29uJDEiLCJmaW5pc2hfc2tpcF9zdHJpbmdsaXQkMSIsInNraXBfaWRlbnQkMSIsImZpbmlzaF9idWZmZXJfc3RyaW5nbGl0JDEiLCJidWZmZXJfanNvbiQxIiwiYnVmZmVyX3NwYWNlJDEiLCJidWZmZXJfaWRlbnQkMSIsImJ1ZmZlcl9jb2xvbiQxIiwiZmluaXNoX2J1ZmZlcl9jb21tZW50JDEiLCJqdW5rJDEiLCJyZWFkX2ludDgkMSIsInJlYWRfbGlzdCQxIiwicmVhZF9hcnJheSQxIiwicmVhZF9maWVsZHMkMSIsImZyb21fbGV4YnVmJDEiLCJmcm9tX3N0cmluZyQ0IiwiZnJvbV9jaGFubmVsJDQiLCJmcm9tX2ZpbGUkMSIsInNlcV9mcm9tX2xleGJ1ZiQxIiwic2VxX2Zyb21fc3RyaW5nJDEiLCJzZXFfZnJvbV9jaGFubmVsJDEiLCJzZXFfZnJvbV9maWxlJDEiLCJsaW5lc2VxX2Zyb21fY2hhbm5lbCQxIiwibGluZXNlcV9mcm9tX2ZpbGUkMSIsInByZXR0aWZ5JDEiLCJjb21wYWN0JDEiLCJ5b2pzb25fb2ZfdW5pdCIsInlvanNvbl9vZl9ib29sIiwiYiIsInlvanNvbl9vZl9zdHJpbmciLCJzdHIiLCJ5b2pzb25fb2ZfYnl0ZXMiLCJieXRlcyIsInlvanNvbl9vZl9jaGFyIiwiYyIsInlvanNvbl9vZl9pbnQiLCJuIiwieW9qc29uX29mX2Zsb2F0IiwieW9qc29uX29mX2ludDMyIiwieW9qc29uX29mX2ludDY0IiwieW9qc29uX29mX25hdGl2ZWludCIsInlvanNvbl9vZl9yZWYiLCJ5b2pzb25fb2ZfYSIsInJmIiwieW9qc29uX29mX2xhenlfdCIsImx2IiwieW9qc29uX29mX29wdGlvbiIsIngiLCJ5b2pzb25fb2ZfcGFpciIsInlvanNvbl9vZl9iIiwiYSIsInlvanNvbl9vZl90cmlwbGUiLCJ5b2pzb25fb2ZfYyIsInlvanNvbl9vZl9saXN0IiwibHN0IiwieW9qc29uX29mX2FycmF5IiwiYXIiLCJsc3RfcmVmIiwiaSIsInlvanNvbl9vZl9oYXNodGJsIiwieW9qc29uX29mX2tleSIsInlvanNvbl9vZl92YWwiLCJodGJsIiwiY29sbCIsImsiLCJ2IiwiYWNjIiwieW9qc29uX29mX29wYXF1ZSIsInlvanNvbl9vZl9mdW4iLCJyZWNvcmRfY2hlY2tfZXh0cmFfZmllbGRzIiwib2ZfeW9qc29uX2Vycm9yX2V4biIsImV4YyIsInlvanNvbiIsIm9mX3lvanNvbl9lcnJvciIsIndoYXQiLCJ1bml0X29mX3lvanNvbiIsImJvb2xfb2ZfeW9qc29uIiwic3RyaW5nX29mX3lvanNvbiIsImJ5dGVzX29mX3lvanNvbiIsImNoYXJfb2ZfeW9qc29uIiwiaW50X29mX3lvanNvbiIsImZsb2F0X29mX3lvanNvbiIsImludDMyX29mX3lvanNvbiIsImludDY0X29mX3lvanNvbiIsIm5hdGl2ZWludF9vZl95b2pzb24iLCJyZWZfb2ZfeW9qc29uIiwiYV9vZl95b2pzb24iLCJsYXp5X3Rfb2ZfeW9qc29uIiwib3B0aW9uX29mX3lvanNvbiIsInBhaXJfb2ZfeW9qc29uIiwiYl9vZl95b2pzb24iLCJiX3lvanNvbiIsImFfeW9qc29uIiwidHJpcGxlX29mX3lvanNvbiIsImNfb2ZfeW9qc29uIiwiY195b2pzb24iLCJsaXN0X29mX3lvanNvbiIsInJldl9sc3QiLCJhcnJheV9vZl95b2pzb24iLCJ0IiwiaCIsImxlbiIsInJlcyIsInQkMCIsImgkMCIsImhhc2h0Ymxfb2ZfeW9qc29uIiwia2V5X29mX3lvanNvbiIsInZhbF9vZl95b2pzb24iLCJhY3QiLCJ2X3lvanNvbiIsImtfeW9qc29uIiwib3BhcXVlX29mX3lvanNvbiIsImZ1bl9vZl95b2pzb24iLCJzcHJpbnRmIiwidHVwbGVfb2Zfc2l6ZV9uX2V4cGVjdGVkIiwibG9jIiwic3RhZ19ub19hcmdzIiwic3RhZ19pbmNvcnJlY3Rfbl9hcmdzIiwidGFnIiwibXNnIiwic3RhZ190YWtlc19hcmdzIiwibmVzdGVkX2xpc3RfaW52YWxpZF9zdW0iLCJlbXB0eV9saXN0X2ludmFsaWRfc3VtIiwidW5leHBlY3RlZF9zdGFnIiwicmVjb3JkX3N1cGVyZmx1b3VzX2ZpZWxkcyIsInJldl9mbGRfbmFtZXMiLCJmbGRfbmFtZXNfc3RyIiwicmVjb3JkX2R1cGxpY2F0ZV9maWVsZHMiLCJyZWNvcmRfZXh0cmFfZmllbGRzIiwicmVjb3JkX2dldF91bmRlZmluZWRfbG9vcCIsImZpZWxkcyQwIiwicmVzdCIsImZpZWxkIiwicmVzdCQwIiwicmVjb3JkX3VuZGVmaW5lZF9lbGVtZW50cyIsInVuZGVmaW5lZCQwIiwicmVjb3JkX2xpc3RfaW5zdGVhZF9hdG9tIiwicmVjb3JkX3BvbHlfZmllbGRfdmFsdWUiLCJub192YXJpYW50X21hdGNoIiwibm9fbWF0Y2hpbmdfdmFyaWFudF9mb3VuZCIsInB0YWdfbm9fYXJncyIsInB0YWdfaW5jb3JyZWN0X25fYXJncyIsImNuc3RyIiwicHRhZ190YWtlc19hcmdzIiwibmVzdGVkX2xpc3RfaW52YWxpZF9wb2x5X3ZhciIsImVtcHR5X2xpc3RfaW52YWxpZF9wb2x5X3ZhciIsImVtcHR5X3R5cGUiLCJzeW1ib2wiLCJ5b2pzb25fb2Zfc291cmNlX3Bvc2l0aW9uIiwidl9sYXdfaGVhZGluZ3MiLCJ2X2VuZF9jb2x1bW4iLCJ2X2VuZF9saW5lIiwidl9zdGFydF9jb2x1bW4iLCJ2X3N0YXJ0X2xpbmUiLCJ2X2ZpbGVuYW1lIiwiYXJnIiwiYm5kcyIsImFyZyQwIiwiYm5kcyQwIiwiYXJnJDEiLCJibmRzJDEiLCJhcmckMiIsImJuZHMkMiIsImFyZyQzIiwiYm5kcyQzIiwiYXJnJDQiLCJibmRzJDQiLCJtb25leV9vZl9jZW50c19zdHJpbmciLCJjZW50cyIsIm1vbmV5X29mX3VuaXRzX2ludCIsInVuaXRzIiwibW9uZXlfb2ZfY2VudHNfaW50ZWdlciIsIm1vbmV5X3RvX2Zsb2F0IiwibSIsIm1vbmV5X29mX2RlY2ltYWwiLCJkIiwibW9uZXlfdG9fc3RyaW5nIiwibW9uZXlfdG9fY2VudHMiLCJtb25leV9yb3VuZCIsImRlY2ltYWxfb2Zfc3RyaW5nIiwiZGVjaW1hbF90b19mbG9hdCIsImRlY2ltYWxfb2ZfZmxvYXQiLCJkZWNpbWFsX29mX2ludGVnZXIiLCJkZWNpbWFsX3RvX3N0cmluZyIsIm1heF9wcmVjX2RpZ2l0cyIsImkiLCJzaWduIiwibiIsImludF9wYXJ0IiwibiQwIiwiZGlnaXRzIiwibGVhZGluZ196ZXJvZXMiLCJkaWdpdCIsIm51bV9sZWFkaW5nX3plcm9lcyIsImkkMCIsImZtdCIsImRlY2ltYWxfcm91bmQiLCJxIiwiZGVjaW1hbF9vZl9tb25leSIsImludGVnZXJfb2Zfc3RyaW5nIiwicyIsImludGVnZXJfdG9fc3RyaW5nIiwiaW50ZWdlcl90b19pbnQiLCJpbnRlZ2VyX29mX2ludCIsImludGVnZXJfZXhwb25lbnRpYXRpb24iLCJlIiwiaW50ZWdlcl9sb2cyIiwieWVhcl9vZl9kYXRlIiwieSIsIm1vbnRoX251bWJlcl9vZl9kYXRlIiwiaXNfbGVhcF95ZWFyIiwieSQwIiwiZGF5X29mX21vbnRoX29mX2RhdGUiLCJkJDAiLCJkYXRlX29mX251bWJlcnMiLCJ5ZWFyIiwibW9udGgiLCJkYXkiLCJkYXRlX3RvX3N0cmluZyIsImZpcnN0X2RheV9vZl9tb250aCIsImxhc3RfZGF5X29mX21vbnRoIiwiZHVyYXRpb25fb2ZfbnVtYmVycyIsImR1cmF0aW9uX3RvX3N0cmluZyIsImR1cmF0aW9uX3RvX3llYXJzX21vbnRoc19kYXlzIiwieW9qc29uX29mX3J1bnRpbWVfdmFsdWUiLCJ2MCQ0IiwidjAkNSIsInYwJDYiLCJ2MCIsInYwJDciLCJ2MCQwIiwidjAkOCIsInYwJDEiLCJ2MCQ5IiwidjAkMiIsInYwJDEwIiwidjAkMyIsInYxIiwidjAkMTEiLCJ2MCQxMiIsInYxJDAiLCJ2MCQxMyIsInYwJDE0IiwidjEkMSIsInYxJDIiLCJ2MSQzIiwidjAkMTUiLCJ2MCQxNiIsInYxJDQiLCJ2MCQxNyIsInYwJDE4IiwidW5lbWJlZGRhYmxlIiwiZW1iZWRfdW5pdCIsImVtYmVkX2Jvb2wiLCJ4IiwiZW1iZWRfbW9uZXkiLCJlbWJlZF9pbnRlZ2VyIiwiZW1iZWRfZGVjaW1hbCIsImVtYmVkX2RhdGUiLCJlbWJlZF9kdXJhdGlvbiIsImVtYmVkX2FycmF5IiwiZiIsInlvanNvbl9vZl9pbmZvcm1hdGlvbiIsInYiLCJ5b2pzb25fb2ZfZXZlbnQiLCJ5b2pzb25fb2ZfdmFyX2RlZiIsInlvanNvbl9vZl9mdW5fY2FsbCIsInZfYm9keSIsInZfaW5wdXRzIiwidl9uYW1lIiwidl9mdW5fY2FsbHMiLCJ2X3ZhbHVlIiwidl9wb3MiLCJ2X291dHB1dCIsInZfZnVuX2lucHV0cyIsInZfZnVuX25hbWUiLCJsb2dfcmVmIiwicmVzZXRfbG9nIiwicmV0cmlldmVfbG9nIiwibG9nX2JlZ2luX2NhbGwiLCJpbmZvIiwibG9nX2VuZF9jYWxsIiwibG9nX3ZhcmlhYmxlX2RlZmluaXRpb24iLCJlbWJlZCIsImxvZ19kZWNpc2lvbl90YWtlbiIsInBvcyIsInBwX2V2ZW50cyIsIm9wdCIsInBwZiIsImV2ZW50cyIsInN0aCIsImlzX2ZpcnN0X2NhbGwiLCJmb3JtYXRfdmFyX2RlZiIsInZhciQwIiwiZm9ybWF0X3Bvc19vcHQiLCJmb3JtYXRfdmFsdWUiLCJmb3JtYXRfdmFyX2RlZnMiLCJmb3JtYXRfdmFyX2RlZl93aXRoX2Z1bl9jYWxscyIsInZhcl93aXRoX2Z1biIsImZ1bl9jYWxscyIsImZ1bl9jYWxsIiwiZm9ybWF0X2V2ZW50IiwieCQwIiwieCQxIiwieCQyIiwieCQzIiwieCQ0IiwibmFtZSIsImF0dHJzIiwibmFtZSQwIiwidmFsdWUiLCJlbHRzIiwidmFyX2RlZl93aXRoX2Z1biIsIm91dHB1dCIsImJvZHkiLCJmdW5faW5wdXRzIiwiZnVuX25hbWUiLCJib2R5JDAiLCJpbnB1dHMiLCJlbXB0eSIsImVtcHR5X2N0eCIsInJhd19ldmVudF90b19zdHJpbmciLCJuYW1lJDEiLCJ0YWtlX3doaWxlIiwicCIsImwiLCJ0IiwiaCIsInJlc3QiLCJ0JDAiLCJwYXJzZV9yYXdfZXZlbnRzIiwicmF3X2V2ZW50cyIsIm5iX3Jhd19ldmVudHMiLCJpc19mdW5jdGlvbl9jYWxsIiwiaW5mb3MiLCJpc192YXJfZGVmIiwicGFyc2VfZXZlbnRzIiwiY3R4IiwiY3R4JDAiLCJldmVudCIsInZhcl9uYW1lIiwiYm9keV9jdHgiLCJtYXAiLCJscyQwIiwiY3R4JDEiLCJyZXN0JDAiLCJyZXN0JDEiLCJjdHgkMiIsImluZm9zJDAiLCJwYXJzZV9mdW5fY2FsbCIsInJlc3QkMiIsImN0eCQzIiwicmVzdCQzIiwidmFyX2RvdF9zdWJzY29wZV92YXJfbmFtZSIsInZhcl9uYW1lJDAiLCJtYXAkMCIsImxzIiwiY3R4JDQiLCJpbmZvcyQxIiwicmF3X2V2ZW50cyQxIiwiaW5mb3MkMiIsImZ1bl9jYWxsJDAiLCJyYXdfZXZlbnRzJDAiLCJmdW5fY2FsbHMkMCIsImZ1bl9jYWxscyQxIiwiZXZlbnQkMCIsInJlc3QkNSIsInZhbHVlJDAiLCJ2YXJfY29tcCIsInJlc3QkNCIsInZhcl9jb21wJDAiLCJyZXN0JDYiLCJjdHgkNiIsImN0eCQ1IiwiYm9keV9yZXYiLCJ2YXJfZGVmIiwib3V0cHV0JDAiLCJtc2ciLCJoYW5kbGVfZGVmYXVsdCIsImV4Y2VwdGlvbnMiLCJqdXN0IiwiY29ucyIsImFjYyIsImV4Y2VwdCIsIm5ld192YWwiLCJoYW5kbGVfZGVmYXVsdF9vcHQiLCJiIiwibm9faW5wdXQiLCJjb21wYXJlX3BlcmlvZHMiLCJwMSIsInAyIiwicDFfZGF5cyIsInAyX2RheXMiLCJvX25vdCIsIm9fbGVuZ3RoIiwiYSIsIm9fbWludXNfaW50IiwiaTEiLCJvX21pbnVzX3JhdCIsIm9fbWludXNfbW9uIiwibTEiLCJvX21pbnVzX2R1ciIsIm9fYW5kIiwib19vciIsIm9feG9yIiwib19lcSIsIm9fbWFwIiwib19yZWR1Y2UiLCJkZnQiLCJsZW4iLCJyIiwib19jb25jYXQiLCJvX2ZpbHRlciIsIm9fYWRkX2ludF9pbnQiLCJpMiIsIm9fYWRkX3JhdF9yYXQiLCJvX2FkZF9tb25fbW9uIiwibTIiLCJvX2FkZF9kYXRfZHVyIiwiZGEiLCJkdSIsIm9fYWRkX2R1cl9kdXIiLCJvX3N1Yl9pbnRfaW50Iiwib19zdWJfcmF0X3JhdCIsIm9fc3ViX21vbl9tb24iLCJvX3N1Yl9kYXRfZGF0Iiwib19zdWJfZGF0X2R1ciIsImRhdCIsImR1ciIsIm9fc3ViX2R1cl9kdXIiLCJvX211bHRfaW50X2ludCIsIm9fbXVsdF9yYXRfcmF0Iiwib19tdWx0X21vbl9yYXQiLCJpMV9hYnMiLCJpMl9hYnMiLCJzaWduX2ludCIsInJhdF9yZXN1bHQiLCJyZW1haW5kZXIiLCJyZXMiLCJvX211bHRfZHVyX2ludCIsIm9fZGl2X2ludF9pbnQiLCJvX2Rpdl9yYXRfcmF0Iiwib19kaXZfbW9uX21vbiIsIm9fZGl2X21vbl9yYXQiLCJyMSIsIm9fZGl2X2R1cl9kdXIiLCJkMSIsImQyIiwib19sdF9pbnRfaW50Iiwib19sdF9yYXRfcmF0Iiwib19sdF9tb25fbW9uIiwib19sdF9kdXJfZHVyIiwib19sdF9kYXRfZGF0Iiwib19sdGVfaW50X2ludCIsIm9fbHRlX3JhdF9yYXQiLCJvX2x0ZV9tb25fbW9uIiwib19sdGVfZHVyX2R1ciIsIm9fbHRlX2RhdF9kYXQiLCJvX2d0X2ludF9pbnQiLCJvX2d0X3JhdF9yYXQiLCJvX2d0X21vbl9tb24iLCJvX2d0X2R1cl9kdXIiLCJvX2d0X2RhdF9kYXQiLCJvX2d0ZV9pbnRfaW50Iiwib19ndGVfcmF0X3JhdCIsIm9fZ3RlX21vbl9tb24iLCJvX2d0ZV9kdXJfZHVyIiwib19ndGVfZGF0X2RhdCIsIm9fZXFfaW50X2ludCIsIm9fZXFfcmF0X3JhdCIsIm9fZXFfbW9uX21vbiIsIm9fZXFfZHVyX2R1ciIsIm9fZXFfZGF0X2RhdCIsIm9fZm9sZCIsIm9fbm90JDAiLCJvX2xlbmd0aCQwIiwib190b3JhdF9pbnQiLCJvX3RvcmF0X21vbiIsIm9fdG9tb25leV9yYXQiLCJvX2dldERheSIsIm9fZ2V0TW9udGgiLCJvX2dldFllYXIiLCJvX2ZpcnN0RGF5T2ZNb250aCIsIm9fbGFzdERheU9mTW9udGgiLCJvX3JvdW5kX21vbiIsIm9fcm91bmRfcmF0Iiwib19taW51c19pbnQkMCIsIm9fbWludXNfcmF0JDAiLCJvX21pbnVzX21vbiQwIiwib19taW51c19kdXIkMCIsIm9fYW5kJDAiLCJvX29yJDAiLCJvX3hvciQwIiwib19lcSQwIiwib19tYXAkMCIsIm9fcmVkdWNlJDAiLCJvX2NvbmNhdCQwIiwib19maWx0ZXIkMCIsIm9fYWRkX2ludF9pbnQkMCIsIm9fYWRkX3JhdF9yYXQkMCIsIm9fYWRkX21vbl9tb24kMCIsIm9fYWRkX2RhdF9kdXIkMCIsIm9fYWRkX2R1cl9kdXIkMCIsIm9fc3ViX2ludF9pbnQkMCIsIm9fc3ViX3JhdF9yYXQkMCIsIm9fc3ViX21vbl9tb24kMCIsIm9fc3ViX2RhdF9kYXQkMCIsIm9fc3ViX2RhdF9kdXIkMCIsIm9fc3ViX2R1cl9kdXIkMCIsIm9fbXVsdF9pbnRfaW50JDAiLCJvX211bHRfcmF0X3JhdCQwIiwib19tdWx0X21vbl9yYXQkMCIsIm9fbXVsdF9kdXJfaW50JDAiLCJvX2Rpdl9pbnRfaW50JDAiLCJvX2Rpdl9yYXRfcmF0JDAiLCJvX2Rpdl9tb25fbW9uJDAiLCJvX2Rpdl9tb25fcmF0JDAiLCJvX2Rpdl9kdXJfZHVyJDAiLCJvX2x0X2ludF9pbnQkMCIsIm9fbHRfcmF0X3JhdCQwIiwib19sdF9tb25fbW9uJDAiLCJvX2x0X2R1cl9kdXIkMCIsIm9fbHRfZGF0X2RhdCQwIiwib19sdGVfaW50X2ludCQwIiwib19sdGVfcmF0X3JhdCQwIiwib19sdGVfbW9uX21vbiQwIiwib19sdGVfZHVyX2R1ciQwIiwib19sdGVfZGF0X2RhdCQwIiwib19ndF9pbnRfaW50JDAiLCJvX2d0X3JhdF9yYXQkMCIsIm9fZ3RfbW9uX21vbiQwIiwib19ndF9kdXJfZHVyJDAiLCJvX2d0X2RhdF9kYXQkMCIsIm9fZ3RlX2ludF9pbnQkMCIsIm9fZ3RlX3JhdF9yYXQkMCIsIm9fZ3RlX21vbl9tb24kMCIsIm9fZ3RlX2R1cl9kdXIkMCIsIm9fZ3RlX2RhdF9kYXQkMCIsIm9fZXFfaW50X2ludCQwIiwib19lcV9yYXRfcmF0JDAiLCJvX2VxX21vbl9tb24kMCIsIm9fZXFfZHVyX2R1ciQwIiwib19lcV9kYXRfZGF0JDAiLCJvX2ZvbGQkMCIsInZlcnNpb24iLCJnaXRfdmVyc2lvbiIsInJhaXNlIiwibWF4IiwieCIsInkiLCJtaW4iLCJlcXVhbCIsImVxdWFsJDAiLCJtYXgkMCIsIm1pbiQwIiwiZ2xvYmFsIiwibnVsbCQwIiwidW5kZWZpbmVkJDAiLCJyZXR1cm4kMCIsIm1hcCIsImYiLCJiaW5kIiwidGVzdCIsIml0ZXIiLCJjYXNlJDAiLCJnIiwiZ2V0Iiwib3B0aW9uIiwieCQwIiwidG9fb3B0aW9uIiwicmV0dXJuJDEiLCJtYXAkMCIsImJpbmQkMCIsInRlc3QkMCIsIml0ZXIkMCIsImNhc2UkMSIsImdldCQwIiwib3B0aW9uJDAiLCJ0b19vcHRpb24kMCIsImNvZXJjZSIsImNvZXJjZV9vcHQiLCJ0cnVlJDAiLCJmYWxzZSQwIiwibmZjIiwibmZkIiwibmZrYyIsIm5ma2QiLCJzdHJpbmdfY29uc3RyIiwicmVnRXhwIiwib2JqZWN0X2NvbnN0cnVjdG9yIiwib2JqZWN0X2tleXMiLCJvIiwiYXJyYXlfY29uc3RydWN0b3IiLCJhcnJheV9nZXQiLCJhcnJheV9zZXQiLCJhcnJheV9tYXAiLCJhIiwiaWR4IiwiYXJyYXlfbWFwaSIsInN0cl9hcnJheSIsIm1hdGNoX3Jlc3VsdCIsImRhdGVfY29uc3RyIiwibWF0aCIsImVycm9yX2NvbnN0ciIsImV4bl93aXRoX2pzX2JhY2t0cmFjZSIsIm5hbWUiLCJtZXNzYWdlIiwic3RhY2siLCJ0b19zdHJpbmciLCJlIiwicmFpc2VfanNfZXJyb3IiLCJzdHJpbmdfb2ZfZXJyb3IiLCJKU09OIiwiZGVjb2RlVVJJIiwicyIsImRlY29kZVVSSUNvbXBvbmVudCIsImVuY29kZVVSSSIsImVuY29kZVVSSUNvbXBvbmVudCIsImVzY2FwZSIsInVuZXNjYXBlIiwiaXNOYU4iLCJpIiwicGFyc2VJbnQiLCJzJDAiLCJwYXJzZUZsb2F0IiwiZXhwb3J0X2pzIiwiZmllbGQiLCJleHBvcnQkMCIsImV4cG9ydF9hbGwiLCJvYmoiLCJrZXlzIiwia2V5IiwibGlzdF9vZl9ub2RlTGlzdCIsImxlbmd0aCIsImFjYyIsImkkMCIsImFjYyQwIiwiaSQxIiwiZGlzY29ubmVjdGVkIiwicHJlY2VkaW5nIiwiZm9sbG93aW5nIiwiY29udGFpbnMiLCJjb250YWluZWRfYnkiLCJpbXBsZW1lbnRhdGlvbl9zcGVjaWZpYyIsImhhcyIsInQiLCJtYXNrIiwiYWRkIiwiYXBwZW5kQ2hpbGQiLCJwIiwibiIsInJlbW92ZUNoaWxkIiwicmVwbGFjZUNoaWxkIiwiaW5zZXJ0QmVmb3JlIiwibm9kZVR5cGUiLCJ0MTMiLCJjYXN0IiwidDE0IiwiZWxlbWVudCIsInRleHQiLCJhdHRyIiwibm9faGFuZGxlciIsImhhbmRsZXIiLCJyZXMiLCJmdWxsX2hhbmRsZXIiLCJ0aGlzJDAiLCJpbnZva2VfaGFuZGxlciIsImV2ZW50IiwiZXZlbnRUYXJnZXQiLCJtYWtlIiwiYWRkRXZlbnRMaXN0ZW5lcldpdGhPcHRpb25zIiwidDI4IiwidHlwIiwiY2FwdHVyZSIsIm9uY2UiLCJwYXNzaXZlIiwiaCIsImV2IiwiY2FsbGJhY2siLCJiIiwiYWRkRXZlbnRMaXN0ZW5lciIsImNhcHQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaWQiLCJwcmV2ZW50RGVmYXVsdCIsImNyZWF0ZUN1c3RvbUV2ZW50IiwiYnViYmxlcyIsImNhbmNlbGFibGUiLCJkZXRhaWwiLCJvcHRfaXRlciIsImNvbnN0ciIsImFycmF5QnVmZmVyIiwiaW50OEFycmF5IiwidWludDhBcnJheSIsImludDE2QXJyYXkiLCJ1aW50MTZBcnJheSIsImludDMyQXJyYXkiLCJ1aW50MzJBcnJheSIsImZsb2F0MzJBcnJheSIsImZsb2F0NjRBcnJheSIsInNldCIsInYiLCJ1bnNhZmVfZ2V0IiwiZGF0YVZpZXciLCJvZl9hcnJheUJ1ZmZlciIsImFiIiwidWludDgiLCJibG9iX2NvbnN0ciIsImZpbHRlcl9tYXAiLCJxIiwidiQwIiwiYmxvYl9yYXciLCJjb250ZW50VHlwZSIsImVuZGluZ3MiLCJvcHRpb25zIiwib3B0aW9ucyQwIiwiYmxvYl9mcm9tX3N0cmluZyIsImJsb2JfZnJvbV9hbnkiLCJsIiwiYSQwIiwibCQwIiwiZmlsZW5hbWUiLCJuYW1lJDAiLCJkb2NfY29uc3RyIiwiZG9jdW1lbnQiLCJibG9iIiwic3RyaW5nIiwibG9hZHN0YXJ0IiwicHJvZ3Jlc3MiLCJhYm9ydCIsImVycm9yIiwibG9hZCIsImxvYWRlbmQiLCJmaWxlUmVhZGVyIiwib25JRSIsImNsaWNrIiwiY29weSIsImN1dCIsInBhc3RlIiwiZGJsY2xpY2siLCJtb3VzZWRvd24iLCJtb3VzZXVwIiwibW91c2VvdmVyIiwibW91c2Vtb3ZlIiwibW91c2VvdXQiLCJrZXlwcmVzcyIsImtleWRvd24iLCJrZXl1cCIsIm1vdXNld2hlZWwiLCJ3aGVlbCIsIkRPTU1vdXNlU2Nyb2xsIiwidG91Y2hzdGFydCIsInRvdWNobW92ZSIsInRvdWNoZW5kIiwidG91Y2hjYW5jZWwiLCJkcmFnc3RhcnQiLCJkcmFnZW5kIiwiZHJhZ2VudGVyIiwiZHJhZ292ZXIiLCJkcmFnbGVhdmUiLCJkcmFnIiwiZHJvcCIsImhhc2hjaGFuZ2UiLCJjaGFuZ2UiLCJpbnB1dCIsInRpbWV1cGRhdGUiLCJzdWJtaXQiLCJzY3JvbGwiLCJmb2N1cyIsImJsdXIiLCJ1bmxvYWQiLCJiZWZvcmV1bmxvYWQiLCJyZXNpemUiLCJvcmllbnRhdGlvbmNoYW5nZSIsInBvcHN0YXRlIiwic2VsZWN0Iiwib25saW5lIiwib2ZmbGluZSIsImNoZWNraW5nIiwibm91cGRhdGUiLCJkb3dubG9hZGluZyIsInVwZGF0ZXJlYWR5IiwiY2FjaGVkIiwib2Jzb2xldGUiLCJkb21Db250ZW50TG9hZGVkIiwiYW5pbWF0aW9uc3RhcnQiLCJhbmltYXRpb25lbmQiLCJhbmltYXRpb25pdGVyYXRpb24iLCJhbmltYXRpb25jYW5jZWwiLCJ0cmFuc2l0aW9ucnVuIiwidHJhbnNpdGlvbnN0YXJ0IiwidHJhbnNpdGlvbmVuZCIsInRyYW5zaXRpb25jYW5jZWwiLCJjYW5wbGF5IiwiY2FucGxheXRocm91Z2giLCJkdXJhdGlvbmNoYW5nZSIsImVtcHRpZWQiLCJlbmRlZCIsImdvdHBvaW50ZXJjYXB0dXJlIiwibG9hZGVkZGF0YSIsImxvYWRlZG1ldGFkYXRhIiwibG9zdHBvaW50ZXJjYXB0dXJlIiwicGF1c2UiLCJwbGF5IiwicGxheWluZyIsInBvaW50ZXJlbnRlciIsInBvaW50ZXJjYW5jZWwiLCJwb2ludGVyZG93biIsInBvaW50ZXJsZWF2ZSIsInBvaW50ZXJtb3ZlIiwicG9pbnRlcm91dCIsInBvaW50ZXJvdmVyIiwicG9pbnRlcnVwIiwicmF0ZWNoYW5nZSIsInNlZWtlZCIsInNlZWtpbmciLCJzdGFsbGVkIiwic3VzcGVuZCIsInZvbHVtZWNoYW5nZSIsIndhaXRpbmciLCJkIiwibG9jYXRpb25fb3JpZ2luIiwib3JpZ2luIiwid2luZG93IiwiZ2V0RWxlbWVudEJ5SWQiLCJwbm9kZSIsImdldEVsZW1lbnRCeUlkX2V4biIsImdldEVsZW1lbnRCeUlkX29wdCIsImdldEVsZW1lbnRCeUlkX2NvZXJjZSIsImNyZWF0ZUVsZW1lbnQiLCJkb2MiLCJ1bnNhZmVDcmVhdGVFbGVtZW50IiwiY3JlYXRlRWxlbWVudFN5bnRheCIsInVuc2FmZUNyZWF0ZUVsZW1lbnRFeCIsInR5cGUiLCJlbHQiLCJjcmVhdGVIdG1sIiwiY3JlYXRlSGVhZCIsImNyZWF0ZUxpbmsiLCJjcmVhdGVUaXRsZSIsImNyZWF0ZU1ldGEiLCJjcmVhdGVCYXNlIiwiY3JlYXRlU3R5bGUiLCJjcmVhdGVCb2R5IiwiY3JlYXRlRm9ybSIsImNyZWF0ZU9wdGdyb3VwIiwiY3JlYXRlT3B0aW9uIiwiY3JlYXRlU2VsZWN0IiwiY3JlYXRlSW5wdXQiLCJjcmVhdGVUZXh0YXJlYSIsImNyZWF0ZUJ1dHRvbiIsImNyZWF0ZUxhYmVsIiwiY3JlYXRlRmllbGRzZXQiLCJjcmVhdGVMZWdlbmQiLCJjcmVhdGVVbCIsImNyZWF0ZU9sIiwiY3JlYXRlRGwiLCJjcmVhdGVMaSIsImNyZWF0ZURpdiIsImNyZWF0ZUVtYmVkIiwiY3JlYXRlUCIsImNyZWF0ZUgxIiwiY3JlYXRlSDIiLCJjcmVhdGVIMyIsImNyZWF0ZUg0IiwiY3JlYXRlSDUiLCJjcmVhdGVINiIsImNyZWF0ZVEiLCJjcmVhdGVCbG9ja3F1b3RlIiwiY3JlYXRlUHJlIiwiY3JlYXRlQnIiLCJjcmVhdGVIciIsImNyZWF0ZUlucyIsImNyZWF0ZURlbCIsImNyZWF0ZUEiLCJjcmVhdGVJbWciLCJjcmVhdGVPYmplY3QiLCJjcmVhdGVQYXJhbSIsImNyZWF0ZU1hcCIsImNyZWF0ZUFyZWEiLCJjcmVhdGVTY3JpcHQiLCJjcmVhdGVUYWJsZSIsImNyZWF0ZUNhcHRpb24iLCJjcmVhdGVDb2wiLCJjcmVhdGVDb2xncm91cCIsImNyZWF0ZVRoZWFkIiwiY3JlYXRlVGZvb3QiLCJjcmVhdGVUYm9keSIsImNyZWF0ZVRyIiwiY3JlYXRlVGgiLCJjcmVhdGVUZCIsImNyZWF0ZVN1YiIsImNyZWF0ZVN1cCIsImNyZWF0ZVNwYW4iLCJjcmVhdGVUdCIsImNyZWF0ZUkiLCJjcmVhdGVCIiwiY3JlYXRlQmlnIiwiY3JlYXRlU21hbGwiLCJjcmVhdGVFbSIsImNyZWF0ZVN0cm9uZyIsImNyZWF0ZUNpdGUiLCJjcmVhdGVEZm4iLCJjcmVhdGVDb2RlIiwiY3JlYXRlU2FtcCIsImNyZWF0ZUtiZCIsImNyZWF0ZVZhciIsImNyZWF0ZUFiYnIiLCJjcmVhdGVEZCIsImNyZWF0ZUR0IiwiY3JlYXRlTm9zY3JpcHQiLCJjcmVhdGVBZGRyZXNzIiwiY3JlYXRlRnJhbWVzZXQiLCJjcmVhdGVGcmFtZSIsImNyZWF0ZUlmcmFtZSIsImNyZWF0ZUF1ZGlvIiwiY3JlYXRlVmlkZW8iLCJjcmVhdGVDYW52YXMiLCJodG1sX2VsZW1lbnQiLCJ0NTQiLCJ1bnNhZmVDb2VyY2UiLCJ0YWciLCJ0NTUiLCJhcmVhIiwiYmFzZSIsImJsb2NrcXVvdGUiLCJib2R5IiwiYnIiLCJidXR0b24iLCJjYW52YXMiLCJjYXB0aW9uIiwiY29sIiwiY29sZ3JvdXAiLCJkZWwiLCJkaXYiLCJkbCIsImZpZWxkc2V0IiwiZW1iZWQiLCJmb3JtIiwiZnJhbWVzZXQiLCJmcmFtZSIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhlYWQiLCJociIsImh0bWwiLCJpZnJhbWUiLCJpbWciLCJpbnB1dCQwIiwiaW5zIiwibGFiZWwiLCJsZWdlbmQiLCJsaSIsImxpbmsiLCJtZXRhIiwib2JqZWN0Iiwib2wiLCJvcHRncm91cCIsInBhcmFtIiwicHJlIiwic2NyaXB0Iiwic2VsZWN0JDAiLCJzdHlsZSIsInRhYmxlIiwidGJvZHkiLCJ0ZCIsInRleHRhcmVhIiwidGZvb3QiLCJ0aCIsInRoZWFkIiwidGl0bGUiLCJ0ciIsInVsIiwiYXVkaW8iLCJ2aWRlbyIsInVuc2FmZUNvZXJjZUV2ZW50IiwibW91c2VFdmVudCIsImtleWJvYXJkRXZlbnQiLCJ3aGVlbEV2ZW50IiwibW91c2VTY3JvbGxFdmVudCIsInBvcFN0YXRlRXZlbnQiLCJtZXNzYWdlRXZlbnQiLCJldmVudFJlbGF0ZWRUYXJnZXQiLCJldmVudEFic29sdXRlUG9zaXRpb24iLCJldmVudEFic29sdXRlUG9zaXRpb24kMCIsImVsZW1lbnRDbGllbnRQb3NpdGlvbiIsImdldERvY3VtZW50U2Nyb2xsIiwiYnV0dG9uUHJlc3NlZCIsImFkZE1vdXNld2hlZWxFdmVudExpc3RlbmVyV2l0aCIsImR4IiwiZHkiLCJhZGRNb3VzZXdoZWVsRXZlbnRMaXN0ZW5lciIsInRyeV9jb2RlIiwidHJ5X2tleV9jb2RlX2xlZnQiLCJ0cnlfa2V5X2NvZGVfcmlnaHQiLCJ0cnlfa2V5X2NvZGVfbnVtcGFkIiwidHJ5X2tleV9jb2RlX25vcm1hbCIsIm1ha2VfdW5pZGVudGlmaWVkIiwicnVuX25leHQiLCJ2YWx1ZSIsInN5bWJvbCIsIm9mX2V2ZW50IiwiY2hhcl9vZl9pbnQiLCJlbXB0eV9zdHJpbmciLCJub25lIiwib2ZfZXZlbnQkMCIsImVsZW1lbnQkMCIsInRhZ2dlZCIsInQxMDUiLCJvcHRfdGFnZ2VkIiwidGFnZ2VkRXZlbnQiLCJvcHRfdGFnZ2VkRXZlbnQiLCJzdG9wUHJvcGFnYXRpb24iLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJjIiwicmVxIiwibm93IiwibGFzdCIsImR0IiwiZHQkMCIsImhhc1B1c2hTdGF0ZSIsImhhc1BsYWNlaG9sZGVyIiwiaGFzUmVxdWlyZWQiLCJvdmVyZmxvd19saW1pdCIsInNldFRpbWVvdXQiLCJsb29wIiwicmVtYWluIiwic3RlcCIsImNiIiwiY2xlYXJUaW1lb3V0IiwianNfYXJyYXlfb2ZfY29sbGVjdGlvbiIsImZvcm1EYXRhIiwiZm9ybURhdGFfZm9ybSIsImhhdmVfY29udGVudCIsImZvcm1fZWxlbWVudHMiLCJpJDIiLCJzdGgiLCJuYW1lJDEiLCJsaXN0IiwiZmlsZSIsImFwcGVuZCIsImZvcm1fY29udGVudHMiLCJmb3JtX2VsdCIsImVtcHR5X2Zvcm1fY29udGVudHMiLCJwb3N0X2Zvcm1fY29udGVudHMiLCJjb250ZW50cyIsImdldF9mb3JtX2NvbnRlbnRzIiwicmVhZHlzdGF0ZWNoYW5nZSIsInRpbWVvdXQiLCJ3b3JrZXIiLCJjcmVhdGUiLCJpbXBvcnRfc2NyaXB0cyIsInNjcmlwdHMiLCJzZXRfb25tZXNzYWdlIiwianNfaGFuZGxlciIsInBvc3RfbWVzc2FnZSIsIm1zZyIsIndlYlNvY2tldCIsImlzX3N1cHBvcnRlZCIsImRlZmF1bHRDb250ZXh0QXR0cmlidXRlcyIsIndlYmdsY29udGV4dGxvc3QiLCJ3ZWJnbGNvbnRleHRyZXN0b3JlZCIsIndlYmdsY29udGV4dGNyZWF0aW9uZXJyb3IiLCJnZXRDb250ZXh0IiwiY3R4IiwiZ2V0Q29udGV4dFdpdGhBdHRyaWJ1dGVzIiwiYXR0cmlicyIsInJlZ2V4cCIsInJlZ2V4cF9jYXNlX2ZvbGQiLCJyZWdleHBfd2l0aF9mbGFnIiwiYmx1bnRfc3RyX2FycmF5X2dldCIsInN0cmluZ19tYXRjaCIsInNlYXJjaCIsInJlc19wcmUiLCJtYXRjaGVkX3N0cmluZyIsInIiLCJtYXRjaGVkX2dyb3VwIiwicXVvdGVfcmVwbF9yZSIsInF1b3RlX3JlcGwiLCJnbG9iYWxfcmVwbGFjZSIsInNfYnkiLCJyZXBsYWNlX2ZpcnN0IiwidDI5IiwiZmxhZ3MiLCJsaXN0X29mX2pzX2FycmF5IiwiaWR4JDEiLCJhY2N1IiwiaWR4JDAiLCJhY2N1JDAiLCJzcGxpdCIsImJvdW5kZWRfc3BsaXQiLCJxdW90ZV9yZSIsInF1b3RlIiwicmVnZXhwX3N0cmluZyIsInJlZ2V4cF9zdHJpbmdfY2FzZV9mb2xkIiwiaW50ZXJydXB0IiwicGx1c19yZSIsInVybGRlY29kZV9qc19zdHJpbmdfc3RyaW5nIiwidXJsZGVjb2RlIiwidXJsZW5jb2RlIiwib3B0Iiwid2l0aF9wbHVzIiwiZGVmYXVsdF9odHRwX3BvcnQiLCJkZWZhdWx0X2h0dHBzX3BvcnQiLCJwYXRoX29mX3BhdGhfc3RyaW5nIiwiYXV4IiwiaiIsIndvcmQiLCJlbmNvZGVfYXJndW1lbnRzIiwiZGVjb2RlX2FyZ3VtZW50c19qc19zdHJpbmciLCJsZW4iLCJpbmRleCIsImRlY29kZV9hcmd1bWVudHMiLCJ1cmxfcmUiLCJmaWxlX3JlIiwidXJsX29mX2pzX3N0cmluZyIsImhhbmRsZSIsInByb3Rfc3RyaW5nIiwic3NsIiwicGF0aF9zdHIiLCJ1cmwiLCJ1cmxfb2Zfc3RyaW5nIiwic3RyaW5nX29mX3VybCIsImZyYWciLCJhcmdzIiwicGF0aCIsInBvcnQiLCJob3N0IiwiZnJhZyQwIiwiYXJncyQwIiwicGF0aCQwIiwicG9ydCQwIiwiaG9zdCQwIiwiZnJhZyQxIiwiYXJncyQxIiwicGF0aCQxIiwicHJvdG9jb2wiLCJwYXRoX3N0cmluZyIsImFyZ3VtZW50cyQwIiwiZ2V0X2ZyYWdtZW50IiwicmVzJDAiLCJzZXRfZnJhZ21lbnQiLCJ1IiwiYXNfc3RyaW5nIiwidXBkYXRlX2ZpbGUiLCJjb250ZW50Iiwib2MiLCJzZXRfY2hhbm5lbF9mbHVzaGVyIiwib3V0X2NoYW5uZWwiLCJmJDAiLCJzZXRfY2hhbm5lbF9maWxsZXIiLCJpbl9jaGFubmVsIiwibW91bnQiLCJwcmVmaXgiLCJ1bm1vdW50IiwianNfb2Zfb2NhbWxfdmVyc2lvbiIsImVtcHR5X3Jlc2l6ZV9vYnNlcnZlcl9vcHRpb25zIiwicmVzaXplT2JzZXJ2ZXIiLCJvYnNlcnZlIiwibm9kZSIsImJveCIsIm9icyIsInBlcmZvcm1hbmNlT2JzZXJ2ZXIiLCJlbnRyeV90eXBlcyIsImVtcHR5X211dGF0aW9uX29ic2VydmVyX2luaXQiLCJtdXRhdGlvbk9ic2VydmVyIiwiY2hpbGRfbGlzdCIsImF0dHJpYnV0ZXMiLCJjaGFyYWN0ZXJfZGF0YSIsInN1YnRyZWUiLCJhdHRyaWJ1dGVfb2xkX3ZhbHVlIiwiY2hhcmFjdGVyX2RhdGFfb2xkX3ZhbHVlIiwiYXR0cmlidXRlX2ZpbHRlciIsImsiLCJyZW1vdmUiLCJmaW5kIiwianNvbiIsInJldml2ZXIiLCJpbnB1dF9yZXZpdmVyIiwidW5zYWZlX2lucHV0IiwibWxJbnQ2NF9jb25zdHIiLCJvdXRwdXRfcmV2aXZlciIsIm91dHB1dCIsInN0cmluZ19vZl9uYW1lIiwibmFtZV9vZl9zdHJpbmciLCJyZ2Jfb2ZfbmFtZSIsInJnYiIsImhzbCIsInN0cmluZ19vZl90IiwiYiQwIiwiZyQwIiwiciQwIiwiYiQxIiwiZyQxIiwiciQxIiwiYiQyIiwiZyQyIiwiciQyIiwiYSQxIiwiaCQwIiwiaGV4X29mX3JnYiIsImJsdWUiLCJncmVlbiIsInJlZCIsImluX3JhbmdlIiwianNfdF9vZl9qc19zdHJpbmciLCJyZ2JfcmUiLCJyZ2JfcGN0X3JlIiwicmdiYV9yZSIsInJnYmFfcGN0X3JlIiwiaHNsX3JlIiwiaHNsYV9yZSIsImpzIiwiY24iLCJtbCIsImZhaWwiLCJyZV9yZ2IiLCJyZV9yZ2JfcGN0IiwicmVfaHNsIiwiaV9vZl9zX28iLCJmX29mX3MiLCJhbHBoYSIsInJlZCQwIiwiZ3JlZW4kMCIsImJsdWUkMCIsImFscGhhJDAiLCJyZWQkMSIsImdyZWVuJDEiLCJibHVlJDEiLCJhbHBoYSQxIiwic3RyaW5nX29mX3QkMCIsImYkMSIsImYkMiIsImYkMyIsImYkNCIsImYkNSIsImYkNiIsImYkNyIsImYkOCIsImYkOSIsImYkMTAiLCJmJDExIiwiZiQxMiIsImpzJDAiLCJtbCQwIiwicmUiLCJzdHJpbmdfb2ZfdCQxIiwianMkMSIsIm1sJDEiLCJsaXN0ZW4iLCJ0YXJnZXQiLCJzdG9wX2xpc3RlbiIsInhtbG5zIiwiY3JlYXRlQWx0R2x5cGgiLCJjcmVhdGVBbHRHbHlwaERlZiIsImNyZWF0ZUFsdEdseXBoSXRlbSIsImNyZWF0ZUFuaW1hdGUiLCJjcmVhdGVBbmltYXRlQ29sb3IiLCJjcmVhdGVBbmltYXRlTW90aW9uIiwiY3JlYXRlQW5pbWF0ZVRyYW5zZm9ybSIsImNyZWF0ZUNpcmNsZSIsImNyZWF0ZUNsaXBQYXRoIiwiY3JlYXRlQ3Vyc29yIiwiY3JlYXRlRGVmcyIsImNyZWF0ZURlc2MiLCJjcmVhdGVFbGxpcHNlIiwiY3JlYXRlRmlsdGVyIiwiY3JlYXRlRm9udCIsImNyZWF0ZUZvbnRGYWNlIiwiY3JlYXRlRm9udEZhY2VGb3JtYXQiLCJjcmVhdGVGb250RmFjZU5hbWUiLCJjcmVhdGVGb250RmFjZVNyYyIsImNyZWF0ZUZvbnRGYWNlVXJpIiwiY3JlYXRlRm9yZWlnbk9iamVjdCIsImNyZWF0ZUciLCJjcmVhdGVHbHlwaCIsImNyZWF0ZUdseXBoUmVmIiwiY3JlYXRlaGtlcm4iLCJjcmVhdGVJbWFnZSIsImNyZWF0ZUxpbmVFbGVtZW50IiwiY3JlYXRlTGluZWFyRWxlbWVudCIsImNyZWF0ZU1hc2siLCJjcmVhdGVNZXRhRGF0YSIsImNyZWF0ZU1pc3NpbmdHbHlwaCIsImNyZWF0ZU1QYXRoIiwiY3JlYXRlUGF0aCIsImNyZWF0ZVBhdHRlcm4iLCJjcmVhdGVQb2x5Z29uIiwiY3JlYXRlUG9seWxpbmUiLCJjcmVhdGVSYWRpYWxncmFkaWVudCIsImNyZWF0ZVJlY3QiLCJjcmVhdGVTZXQiLCJjcmVhdGVTdG9wIiwiY3JlYXRlU3ZnIiwiY3JlYXRlU3dpdGNoIiwiY3JlYXRlU3ltYm9sIiwiY3JlYXRlVGV4dEVsZW1lbnQiLCJjcmVhdGVUZXh0cGF0aCIsImNyZWF0ZVRyZWYiLCJjcmVhdGVUc3BhbiIsImNyZWF0ZVVzZSIsImNyZWF0ZVZpZXciLCJjcmVhdGV2a2VybiIsInN2Z19lbGVtZW50IiwidDgiLCJhbHRHbHlwaCIsImFsdEdseXBoRGVmIiwiYWx0R2x5cGhJdGVtIiwiYW5pbWF0ZSIsImFuaW1hdGVDb2xvciIsImFuaW1hdGVNb3Rpb24iLCJhbmltYXRlVHJhbnNmb3JtIiwiY2lyY2xlIiwiY2xpcFBhdGgiLCJjdXJzb3IiLCJkZWZzIiwiZGVzYyIsImVsbGlwc2UiLCJmaWx0ZXIiLCJmb250IiwiZm9udEZhY2UiLCJmb250RmFjZUZvcm1hdCIsImZvbnRGYWNlTmFtZSIsImZvbnRGYWNlU3JjIiwiZm9udEZhY2VVcmkiLCJmb3JlaWduT2JqZWN0IiwiZ2x5cGgiLCJnbHlwaFJlZiIsImhrZXJuIiwiaW1hZ2UiLCJsaW5lRWxlbWVudCIsImxpbmVhckVsZW1lbnQiLCJtZXRhRGF0YSIsIm1pc3NpbmdHbHlwaCIsIm1QYXRoIiwicGF0dGVybiIsInBvbHlnb24iLCJwb2x5bGluZSIsInJhZGlhbGdyYWRpZW50IiwicmVjdCIsInN0b3AiLCJzdmciLCJzd2l0Y2gkMCIsInRleHRFbGVtZW50IiwidGV4dHBhdGgiLCJ0cmVmIiwidHNwYW4iLCJ1c2UiLCJ2aWV3Iiwidmtlcm4iLCJ3aXRoQ3JlZGVudGlhbHMiLCJldmVudFNvdXJjZSIsImV2ZW50U291cmNlX29wdGlvbnMiLCJjb25zb2xlIiwiZW1wdHlfcG9zaXRpb25fb3B0aW9ucyIsImdlb2xvY2F0aW9uIiwiZW1wdHlfaW50ZXJzZWN0aW9uX29ic2VydmVyX29wIiwiaW50ZXJzZWN0aW9uT2JzZXJ2ZXJfdW5zYWZlIiwib2JqZWN0X29wdGlvbnMiLCJvcHRpb25zJDEiLCJvcHRpb25zJDIiLCJpbnRsIiwiY29sbGF0b3JfY29uc3RyIiwiZGF0ZVRpbWVGb3JtYXRfY29uc3RyIiwibnVtYmVyRm9ybWF0X2NvbnN0ciIsInBsdXJhbFJ1bGVzX2NvbnN0ciIsImR1cmF0aW9uX29mX2pzb28iLCJkdXJhdGlvbl90b19qc29vIiwiZCIsImRheXMiLCJtb250aHMiLCJ5ZWFycyIsImRhdGVfb2ZfanNvbyIsImQkMCIsImQkMSIsImRheSIsIm1vbnRoIiwieWVhciIsImRhdGVfdG9fanNvbyIsImV2dCIsInBvcyIsInYiLCJpbmZvIiwiZXZlbnQiLCJldmVudF9tYW5hZ2VyIiwiZXhlY3V0ZV9vcl90aHJvd19lcnJvciIsImYiLCJ0aHJvd19lcnJvciIsImRlc2NyIiwicG9zJDAiLCJwb3MkMSIsImVtYmVkX3ByaXNlX2VuX2NoYXJnZSIsIngiLCJ4JDAiLCJ4JDEiLCJ4JDIiLCJ4JDMiLCJ4JDQiLCJlbWJlZF9zaXR1YXRpb25fb2JsaWdhdGlvbl9zY28iLCJlbWJlZF9wcmlzZV9lbl9jb21wdGUiLCJlbWJlZF92ZXJzZW1lbnRfYWxsb2NhdGlvbnMiLCJlbWJlZF9lbGVtZW50X3ByZXN0YXRpb25zX2ZhbWkiLCJ4JDUiLCJ4JDYiLCJ4JDciLCJlbWJlZF9jb2xsZWN0aXZpdGUiLCJ4JDgiLCJlbWJlZF9hbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXYiLCJlbWJlZF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzIiwiZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmllIiwiZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmllIiwiZW1iZWRfc21pYyIsImVtYmVkX2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpbyIsImVtYmVkX2ludGVyZmFjZV9hbGxvY2F0aW9uc19mYSIsImVtYmVkX2VuZmFudF9lbnRyZWUiLCJlbWJlZF9lbmZhbnQiLCJlbWJlZF9lbmZhbnRfbGVfcGx1c19hZ2UiLCJlbWJlZF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIiwiZW1iZWRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pIiwiZW1iZWRfYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2JDAiLCJlbWJlZF9lbmZhbnRfbGVfcGx1c19hZ2VfaW4iLCJlbWJlZF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2kiLCJlbWJlZF92ZXJpZmljYXRpb25fYWdlX2luZmVyaWUkMCIsImVtYmVkX3ZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZSQwIiwiZW1iZWRfc21pY19pbiIsImVtYmVkX2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpbyQwIiwiZW1iZWRfaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhJDAiLCJhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDAiLCJhZ2VfbWluaW11bV9hbGluZWFfMV9sNTIxXzMiLCJlbmZhbnRfbGVfcGx1c19hZ2UiLCJlbmZhbnRfbGVfcGx1c19hZ2VfaW4iLCJlbmZhbnRzIiwicG90ZW50aWVsX3BsdXNfYWdlXzEiLCJwb3RlbnRpZWxfcGx1c19hZ2VfMiIsImxlX3BsdXNfYWdlIiwidmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfIiwiZGF0ZV9uYWlzc2FuY2UiLCJkYXRlX2NvdXJhbnRlIiwiYW5uZWVzIiwiZXN0X2luZmVyaWV1cl9vdV9lZ2FsIiwidmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYSIsInZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaSIsImVzdF9zdXBlcmlldXIiLCJzbWljIiwic21pY19pbiIsInJlc2lkZW5jZSIsImJydXRfaG9yYWlyZSIsImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbSIsIm1vbnRhbnQiLCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbiIsImFnZV9sNTEyXzNfMiIsInNtaWNfZG90X2RhdGVfY291cmFudGUiLCJzbWljX2RvdF9yZXNpZGVuY2UiLCJyZXN1bHQiLCJzbWljX2RvdF9icnV0X2hvcmFpcmUiLCJyZWdpbWVfb3V0cmVfbWVyX2w3NTFfMSIsInBsYWZvbmRfbDUxMl8zXzIiLCJlbmZhbnQiLCJjb25kaXRpb25zX2hvcnNfYWdlIiwiZHJvaXRfb3V2ZXJ0IiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyIsImFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4iLCJwZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm0iLCJwZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm0kMCIsInJlc3NvdXJjZXNfbWVuYWdlIiwiZW5mYW50c19hX2NoYXJnZSIsImF2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZSIsInByaXNlX2VuX2NvbXB0ZSIsIm5vbWJyZV9lbmZhbnRzX2FsaW5lYV8yX2w1MjFfMyIsInZlcnNpb25fYXZyaWxfMjAwOF9kb3RfYWdlX21pbiIsImJtYWZfZG90X2RhdGVfY291cmFudGUiLCJyZXN1bHQkMCIsImJtYWZfZG90X21vbnRhbnQiLCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9kYXQiLCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9wcmUiLCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9yZXMiLCJyZXN1bHQkMSIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2RybyIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2NvbiIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2FnZSIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3JlZyIsImVuZmFudF9sZV9wbHVzX2FnZV9kb3RfZW5mYW50cyIsInJlc3VsdCQyIiwiZW5mYW50X2xlX3BsdXNfYWdlX2RvdF9sZV9wbHVzIiwiZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfIiwiZXN0X2VuZmFudF9sZV9wbHVzX2FnZSIsInBsYWZvbmRfaV9pX2Q1MjFfMyIsInBsYWZvbmRfaV9kNTIxXzMiLCJkcm9pdF9vdXZlcnRfY29tcGxlbWVudCIsImRyb2l0X291dmVydF9mb3JmYWl0YWlyZSIsIm1vbnRhbnRfaW5pdGlhbF9iYXNlX3F1YXRyaWVtZSIsIm1vbnRhbnRfaW5pdGlhbF9iYXNlX3Ryb2lzaWVtZSIsIm5vbWJyZV90b3RhbF9lbmZhbnRzIiwic3VtMSIsInN1bTIiLCJub21icmVfbW95ZW5fZW5mYW50cyIsIm1vbnRhbnRfaW5pdGlhbF9iYXNlX3ByZW1pZXJfZSIsImRyb2l0X291dmVydF9iYXNlIiwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb24iLCJhbGxvY2F0aW9uIiwiY29tcGxlbWVudF9kZWdyZXNzaWYiLCJtb250YW50X3ZlcnNlX2ZvcmZhaXRhaXJlX3Bhcl8iLCJtb250YW50X2luaXRpYWxfYmFzZV90cm9pc2llbWUkMCIsIm1vbnRhbnRfaW5pdGlhbF9iYXNlX2RldXhpZW1lXyIsInJhcHBvcnRfZW5mYW50c190b3RhbF9tb3llbiIsIm1vbnRhbnRfaW5pdGlhbF9tZXRyb3BvbGVfbWFqbyIsIm1vbnRhbnRfdmVyc2VfZm9yZmFpdGFpcmUiLCJtb250YW50X2luaXRpYWxfYmFzZSIsIm1vbnRhbnRfaW5pdGlhbF9tYWpvcmF0aW9uIiwibW9udGFudF92ZXJzZV9jb21wbGVtZW50X3BvdXJfIiwibW9udGFudF9hdmVjX2dhcmRlX2FsdGVybmVlX2JhIiwibW9udGFudF9hdmVjX2dhcmRlX2FsdGVybmVlX21hIiwibW9udGFudF92ZXJzZV9iYXNlIiwibW9udGFudF92ZXJzZV9tYWpvcmF0aW9uIiwibW9udGFudF9iYXNlX2NvbXBsZW1lbnRfcG91cl9iIiwibW9udGFudF92ZXJzZV9jb21wbGVtZW50X3BvdXJfJDAiLCJtb250YW50X3ZlcnNlIiwiaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsIiwiaV9kYXRlX2NvdXJhbnRlIiwiaV9lbmZhbnRzIiwiaV9yZXNzb3VyY2VzX21lbmFnZSIsImlfcmVzaWRlbmNlIiwiaV9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3BlIiwiaV9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3BlJDAiLCJpX2F2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8iLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9wZXIiLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9wZXIkMCIsImFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X3JlcyIsImFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X3JlcyQwIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfZGF0IiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfZW5mIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfYXZhIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfbW9uIiwiaV9tb250YW50X3ZlcnNlIiwicHJpc2VfZW5fY2hhcmdlX3RvX2pzb28iLCJhcmciLCJhcmckMCIsImFyZyQxIiwiYXJnJDIiLCJhcmckMyIsInByaXNlX2VuX2NoYXJnZV9vZl9qc29vIiwiY29ucyIsInNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlXyIsInNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlXyQwIiwicHJpc2VfZW5fY29tcHRlX3RvX2pzb28iLCJwcmlzZV9lbl9jb21wdGVfb2ZfanNvbyIsInZlcnNlbWVudF9hbGxvY2F0aW9uc190b19qc29vIiwidmVyc2VtZW50X2FsbG9jYXRpb25zX29mX2pzb28iLCJlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMiLCJhcmckNCIsImFyZyQ1IiwiYXJnJDYiLCJlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMkMCIsImNvbGxlY3Rpdml0ZV90b19qc29vIiwiYXJnJDciLCJjb2xsZWN0aXZpdGVfb2ZfanNvbyIsImFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMCQwIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc190b19qc29vIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vIiwidmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfJDAiLCJ2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX3QiLCJ2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX28iLCJzbWljX3RvX2pzb28iLCJzbWljX29mX2pzb28iLCJiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW0kMCIsImludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbCQwIiwiZW5mYW50X2VudHJlZV90b19qc29vIiwiZW5mYW50X2VudHJlZSIsImVuZmFudF9lbnRyZWVfb2ZfanNvbyIsImVuZmFudF90b19qc29vIiwiZW5mYW50X29mX2pzb28iLCJlbmZhbnRfbGVfcGx1c19hZ2VfdG9fanNvbyIsImVuZmFudF9sZV9wbHVzX2FnZV9vZl9qc29vIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc190b19qc29vIiwiZnVuY3Rpb25faW5wdXQwIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbl90b19qIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbl9vZl9qIiwiYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwJDEiLCJhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDAkMiIsImVuZmFudF9sZV9wbHVzX2FnZV9pbl90b19qc29vIiwiZW5mYW50X2xlX3BsdXNfYWdlX2luX29mX2pzb28iLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX3RvX2oiLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX29mX2oiLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8kMSIsInZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291XyQyIiwidmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pJDAiLCJzbWljX2luX3RvX2pzb28iLCJzbWljX2luX29mX2pzb28iLCJiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW0kMSIsImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbSQyIiwiaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsJDEiLCJpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWwkMiIsImFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMCQzIiwidmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfJDMiLCJiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW0kMyIsImludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbCQzIiwiZW1iZWRfdHlwZV9wcmV0IiwiZW1iZWRfdGl0dWxhaXJlX3ByZXQiLCJlbWJlZF90eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgiLCJlbWJlZF90eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjgiLCJlbWJlZF9hbWVsaW9yZV9wYXJfb2NjdXBhbnQiLCJlbWJlZF9saW1pdGVfdHJhbmNoZSIsImVtYmVkX2xpbWl0ZV90cmFuY2hlX2RlY2ltYWwiLCJlbWJlZF9wcmVzdGF0aW9uX3JlY3VlIiwiZW1iZWRfcGFyZW50X291X2F1dHJlIiwiZW1iZWRfc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlIiwiZW1iZWRfcGFyZW50ZSIsImVtYmVkX2RhdGVfZGVfbmFpc3NhbmNlX291X21vaSIsImVtYmVkX3pvbmVfZF9oYWJpdGF0aW9uIiwiZW1iZWRfcGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluIiwiZW1iZWRfdmVyc2VtZW50X2EiLCJlbWJlZF9kZXBlbnNlX2xvZ2VtZW50IiwiZW1iZWRfbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZSIsImVtYmVkX3R5cGVfZWxpZ2liaWxpdGVfYWxsb2NhdCIsImVtYmVkX2FjY29yZF9maW5hbmNlbWVudF9yZXByZSIsImVtYmVkX3R5cGVfYWlkZXNfcGVyc29ubmVsbGVfbCIsImVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGUiLCJlbWJlZF90eXBlX2xvZ2VtZW50X2ZveWVyIiwiZW1iZWRfY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xvIiwiZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjIiwiZW1iZWRfcHJpc2VfZW5fY2hhcmdlX2VuZmFudCIsImVtYmVkX2NvbnZlbnRpb25fYmFpbGxldXJfc29jaSIsImVtYmVkX2NvbnZlbnRpb25fYV9uX2hfYSIsImVtYmVkX3BlcnNvbm5lX3NvdXNfbG9jYXRpb24iLCJlbWJlZF9wYXRyaW1vaW5lIiwiZW1iZWRfY29uZGl0aW9uc19ldHJhbmdlcnMiLCJlbWJlZF9wZXJzb25uZV92aXZhbnRfaGFiaXR1ZWwiLCJlbWJlZF9lbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm4iLCJlbWJlZF9lbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW0iLCJlbWJlZF9yZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm4iLCJlbWJlZF9jb250cmlidXRpb25zX3NvY2lhbGVzX2EiLCJlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2UiLCJlbWJlZF9jYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXIiLCJlbWJlZF9jYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW0iLCJlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2UkMCIsImVtYmVkX2NhbGN1bF9ub21icmVfcGFydHNfYWNjZSIsImVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZSQxIiwiZW1iZWRfdHJhaXRlbWVudF9mb3JtdWxlX2FpZGVfIiwiZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlJDIiLCJlbWJlZF9pbmZvc19jaGFuZ2VtZW50X2xvZ2VtZW4iLCJlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWUiLCJlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWUkMCIsImVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZSQxIiwiZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lJDIiLCJlbWJlZF9vdXZlcnR1cmVfZHJvaXRzX3JldHJhaXQiLCJlbWJlZF9pbXBheWVfZGVwZW5zZV9sb2dlbWVudCIsImVtYmVkX2NhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZSIsImVtYmVkX2NhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZSQwIiwiZW1iZWRfbmV1Zl9vdV9hbmNpZW4iLCJlbWJlZF90cmFuY2hlX3JldmVudSIsImVtYmVkX3RyYW5jaGVfcmV2ZW51X2RlY2ltYWwiLCJlbWJlZF9hdXRyZV9wZXJzb25uZV9hX2NoYXJnZSIsImVtYmVkX2RhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZSIsImVtYmVkX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbCIsImVtYmVkX3ByZXQiLCJlbWJlZF9sb2dlbWVudF9mb3llciIsImVtYmVkX2VuZmFudF9wcmVzdGF0aW9uc19mYW1pbCIsImVtYmVkX3R5cGVfYmFpbGxldXIiLCJlbWJlZF9sb3VlX291X3NvdXNfbG91ZV9hX2Rlc18iLCJlbWJlZF9uYXRpb25hbGl0ZSIsImVtYmVkX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0MiIsImVtYmVkX2luZm9ybWF0aW9uc19wcmltZV9kZV9kZSIsImVtYmVkX3Byb3ByaWV0YWlyZSIsImVtYmVkX2VsaWdpYmlsaXRlX3ByZXN0YXRpb25zXyIsImVtYmVkX2RlbWFuZGV1ciIsImVtYmVkX2VuZmFudF9hX2NoYXJnZSIsImVtYmVkX2xvY2F0aW9uIiwiZW1iZWRfcGVyc29ubmVfYV9jaGFyZ2UiLCJlbWJlZF9jYXRlZ29yaWVfY2FsY3VsX2FfcF9sIiwiZW1iZWRfbW9kZV9vY2N1cGF0aW9uIiwiZW1iZWRfZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29uIiwiZW1iZWRfbG9nZW1lbnQiLCJlbWJlZF9tZW5hZ2UiLCJlbWJlZF9lbGlnaWJpbGl0ZV9haWRlc19wZXJzb24kMCIsImVtYmVkX2VsaWdpYmlsaXRlX2FpZGVfcGVyc29ubiQwIiwiZW1iZWRfZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sJDAiLCJlbWJlZF9lbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW0kMCIsImVtYmVkX3Jlc3NvdXJjZXNfYWlkZXNfcGVyc29ubiQwIiwiZW1iZWRfY29udHJpYnV0aW9uc19zb2NpYWxlc19hJDAiLCJlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2UkMyIsImVtYmVkX2NhbGN1bF9lcXVpdmFsZW5jZV9sb3llciQwIiwiZW1iZWRfY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtJDAiLCJlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2UkNCIsImVtYmVkX2NhbGN1bF9ub21icmVfcGFydHNfYWNjZSQwIiwiZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlJDUiLCJlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2UkNiIsImVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZSQzIiwiZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lJDQiLCJlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWUkNSIsImVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZSQ2IiwiZW1iZWRfb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0JDAiLCJlbWJlZF9pbXBheWVfZGVwZW5zZV9sb2dlbWVudF8iLCJlbWJlZF9jYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2UkMSIsImVtYmVkX2NhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZSQyIiwiZW1iZWRfZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfJDAiLCJjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3AiLCJleG9uZXJlX2NzZyIsInRhdXhfY3JkcyIsImFpZGVfZmluYWxlIiwiY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltIiwicmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzIiwiY29uZGl0aW9uXzJfZHVfODMyXzI1Iiwibl9ub21icmVfcGFydHNfZDgzMl8yNSIsIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8yNiIsInRyYW5jaGVzX3JldmVudXNfZDgzMl8yNiIsInRyYW5jaGUiLCJ0cmFuY2hlX2hhdXQiLCJ0cmFuY2hlc19yZXZlbnVzX2Q4MzJfMjZfbXVsdGkiLCJyZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXMkMCIsImNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mbyIsIm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2UiLCJzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGwiLCJsaW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmUiLCJuX25vbWJyZV9wYXJ0c19kODMyXzI1X2Jhc2UiLCJuX25vbWJyZV9wYXJ0c19kODMyXzI1X21ham9yYXQiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl8iLCJuX25vbWJyZV9wYXJ0c19kODMyXzExIiwib3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZSIsIm91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW4iLCJkYXRlX25haXNzYW5jZV9hc3N1cmUiLCJhZ2Vfb3V2ZXJ0dXJlX2Ryb2l0IiwiaW1wYXllX2RlcGVuc2VfbG9nZW1lbnQiLCJpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbiIsIm1vZGVfb2NjdXBhdGlvbiIsImFpZGVfdmVyc2VlIiwibW9udGFudF9hcGwiLCJtb250YW50X2NoYXJnZXMiLCJkZXBlbnNlX2xvZ2VtZW50IiwibW9udGFudF9kZXR0ZSIsIm1vZGVfb2NjdXBhdGlvbl9pbXBheWUiLCJkZXBlbnNlX2xvZ2VtZW50X2JydXRlIiwidG90YWxfZWNoZWFuY2VzIiwibWVuc3VhbGl0ZSIsImxveWVyIiwidG90YWwiLCJtb250YW50X2xveWVyIiwiZGVwZW5zZV9sb2dlbWVudF9uZXR0ZSIsImVjaGVhbmNlX3ByZXRfbmV0dGUiLCJtZW5zdWFsaXRlX25ldHRlIiwiZWNoZWFuY2VfcHJldF9icnV0ZSIsIm1lbnN1YWxpdGVfYnJ1dGUiLCJsb3llcl9uZXQiLCJsb3llcl9icnV0Iiwic2V1aWxfaW1wYXllX2RlcGVuc2VfZGVfbG9nZW1lIiwibW9udGFudF9pbXBheWUiLCJhcnJvbmRpX2NlbnRhaW5lX3N1cGVyaWV1cmUiLCJ0cmFpdGVtZW50X251bF90b3V0X2xlX3RlbXBzIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlIiwibG95ZXJfcHJpbmNpcGFsX2Jhc2UiLCJiZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW4iLCJ6b25lIiwibG9nZW1lbnRfZXN0X2NoYW1icmUiLCJhZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmUiLCJ0eXBlX2FpZGUiLCJjb2xvY2F0aW9uIiwicmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGUiLCJsb2dlbWVudF9tZXVibGVfZDg0Ml8yIiwiZnJhY3Rpb25fbDgzMl8zIiwiY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfZGF0IiwiY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfbW9uIiwibW9udGFudF9mb3JmYWl0YWlyZV9kODIzXzE2IiwibXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyIiwibW9udGFudF9taW5pbWFsX2FpZGVfZDgyM18xNiIsImxveWVyX3ByaW5jaXBhbF9hdmVjX3JlZHVjdGlvbiIsInRhdXhfY29tcG9zaXRpb25fZmFtaWxpYWxlIiwibXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9yMCIsIm11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fbG95ZSIsIm11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcGxhZiIsImxpbWl0ZSIsIm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kOCIsImFiYXR0ZW1lbnRfZm9yZmFpdGFpcmVfZDgyM18xNyIsImxveWVyX3JlZmVyZW5jZSIsInBsYWZvbmRfbG95ZXJfZDgyM18xNl8yIiwicGxhZm9uZF9zdXBwcmVzc2lvbl9kODIzXzE2IiwicGxhZm9uZF9kZWdyZXNzaXZpdGVfZDgyM18xNiIsImxveWVyX2VsaWdpYmxlIiwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kaW1pbnVlIiwicGFydGljaXBhdGlvbl9taW5pbWFsZSIsInJhcHBvcnRfbG95ZXJzIiwiYWlkZV9maW5hbGUkMCIsInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdCIsInRhdXhfbG95ZXJfZWxpZ2libGVfZm9ybXVsZSIsImNyZHMiLCJhaWRlX2ZpbmFsZV9tb2luc19jcmRzX2Fycm9uZGkiLCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWIiLCJ0YXV4X2xveWVyX2VsaWdpYmxlX3RhdXhfYXJyb24iLCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX3JlZHVjdGkiLCJ0YXV4X3ByaXNlX2NvbXB0ZV9yZXNzb3VyY2VzIiwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50IiwicGFydGljaXBhdGlvbl9yZXNzb3VyY2VzIiwicGFydGljaXBhdGlvbl9yZXNzb3VyY2VzJDAiLCJwYXJ0aWNpcGF0aW9uX3BlcnNvbm5lbGxlIiwiYWlkZV9maW5hbGVfZm9ybXVsZSIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQwIiwidHlwZV9sb2dlbWVudF9mb3llciIsImRhdGVfY29udmVudGlvbm5lbWVudCIsInJlZGV2YW5jZSIsImxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZSQwIiwiY29uZGl0aW9uXzJfZHVfODMyXzI1JDAiLCJtb250YW50X21pbmltYWxfYWlkZV9kODIzXzI0IiwibW9udGFudF9mb3JmYWl0YWlyZV9kODMyXzI0IiwicGxhZm9uZF9lcXVpdmFsZW5jZV9sb3llcl9lbGlnIiwiY29lZmZpY2llbnRfcl9kODMyXzI1IiwiY2FsY3VsX25vbWJyZV9wYXJ0c19kb3RfY29uZGl0IiwiY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfbm9tYnJlIiwiY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfc2l0dWF0IiwiY2FsY3VsX25vbWJyZV9wYXJ0c19kb3RfcmVzaWRlIiwiY2FsY3VsX25vbWJyZV9wYXJ0c19kb3RfbGltaXRhIiwiY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfbl9ub21iIiwibW9udGFudF9mb3JmYWl0YWlyZV9kODMyXzI3IiwiY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzIiwiZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGUiLCJuX25vbWJyZV9wYXJ0c19kODMyXzI1JDAiLCJhbGxvY2F0aW9uX21lbnN1ZWxsZSIsImRlcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8yNyIsImNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbSQwIiwiY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltJDEiLCJjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW0kMiIsImNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbSQzIiwiY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltJDQiLCJkZW5vbWluYXRldXIiLCJkZW5vbWluYXRldXIkMCIsImNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kOCIsImRlcGVuc2VfbmV0dGVfbWluaW1hbGUiLCJhYmF0dGVtZW50X2RlcGVuc2VfbmV0dGVfbWluaW0iLCJlcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZSIsImNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kOCQwIiwiYWlkZV9maW5hbGUkMSIsInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfYWJhdHRlbSIsImNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kOCQxIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDEiLCJtZW5zdWFsaXRlX3ByaW5jaXBhbGUiLCJ0eXBlX3RyYXZhdXhfbG9nZW1lbnQiLCJkYXRlX3NpZ25hdHVyZV9wcmV0IiwibG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuIiwiZGF0ZV9lbnRyZWVfbG9nZW1lbnQiLCJjb3Byb3ByaWV0ZSIsInNpdHVhdGlvbl9yODIyXzExXzEzXzE3IiwidHlwZV9wcmV0IiwiYW5jaWVubmV0ZV9sb2dlbWVudCIsInRhdXhfZnJhbmNzX3ZlcnNfZXVyb3MiLCJ0YXV4X3RyYW5jaGVfc3VwZXJpZXVyZV9kODMyXzEiLCJ0YXV4X3RyYW5jaGVfaW5mZXJpZXVyZV9kODMyXzEiLCJtb250YW50X2xpbWl0ZV90cmFuY2hlc19kODMyXzEiLCJjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMkMCIsImFtZWxpb3JlX3Bhcl9vY2N1cGFudCIsImNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MyQxIiwibW9udGFudF9taW5pbWFsX2FpZGVfZDgzMl8xMCIsIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8xMCIsImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDgzMiIsInJlc3NvdXJjZXNfbWVuYWdlX2F2ZWNfZDgzMl8xOCIsImRlcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8xMCIsInBsYWZvbmRfc2lnbmF0dXJlIiwicGxhZm9uZF9lbnRyZWUiLCJwbGFmb25kX21lbnN1YWxpdGVfZDgzMl8xMF8zX2IiLCJwbGFmb25kX21lbnN1YWxpdGVfZDgzMl8xMF8zX2MiLCJtb250YW50X2xpbWl0ZV90cmFuY2hlc19kODMyXzEkMCIsIm1lbnN1YWxpdGVfbWluaW1hbGUiLCJtZW5zdWFsaXRlX2VsaWdpYmxlIiwicmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sIiwicmVzc291cmNlc19kZW1hbmRldXIiLCJyZXNzb3VyY2VzX2NvbmpvaW50IiwicGVyc29ubmVzX3ZpdmFudF9oYWJpdHVlbGxlbWVuIiwiZGVtYW5kZXVyX2V4ZXJjZV9hY3Rpdml0ZV9yZW11IiwiY29uam9pbnRfZXhlcmNlX2FjdGl2aXRlX3JlbXVuIiwicGVyc29ubmVzX2FfY2hhcmdlIiwic2l0dWF0aW9uX2ZhbWlsaWFsZSIsImNvbmRpdGlvbl9hZ2VfYm91cnNlX2Vuc2VpZ25lbSIsImRlbWFuZGV1cl9wb3Vyc3VpdF9kZXNfZXR1ZGVzIiwiZGF0ZV9kZW1hbmRlX291X3JlZXhhbWVuX2Ryb2l0IiwicGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluY3RfcHJvIiwicGVyc29ubmUiLCJyZXNzb3VyY2VzX3BlcnNvbm5lc192aXZhbnRfaGEiLCJhYmF0dGVtZW50IiwibW9udGFudF9mb3JmYWl0YWlyZV9yXzgyMl83IiwibW9udGFudF9mb3JmYWl0YWlyZV9yXzgyMl84IiwicmVzc291cmNlc19wcmlzZXNfZW5fY29tcHRlIiwiYWNjIiwiZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpIiwiYWdlX2w1MTJfM18yJDAiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2MiLCJsb3llcl9wcmluY2lwYWwiLCJjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNCIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfbG95ZXJfcCIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfcmVzc291ciIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfYmVuZWZpYyIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfZGF0ZV9jbyIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3Rfbm9tYnJlXyIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3Rfc2l0dWF0aSIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3Rfem9uZSIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfbG9nZW1lbiIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfYWdlZXNfbyIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfdHlwZV9haSIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfY29sb2NhdCIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfcmVkdWN0aSIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfbG9nZW1lbiQwIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9yZXNpZGVuIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9haWRlX2ZpIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF90cmFpdGVtIiwiaW5mb3MiLCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95IiwiY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4IiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfIiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfJDAiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kMSIsImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90XyQyIiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfJDMiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kNCIsImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90XyQ1IiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfJDYiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kNyIsImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90XyQ4IiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfJDkiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kMTAiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kMTEiLCJtb250YW50X21pbmltYWxfZGVwZW5zZV9uZXR0ZV8iLCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4NDJfMTUiLCJtb250YW50X21pbmltYWxfYWlkZV9kODQyXzE1IiwiZXF1aXZhbGVuY2VfbG95ZXIiLCJjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2UiLCJtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXMiLCJsb3llcl9taW5pbWFsIiwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kZXBlbnNlIiwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9yZWRldmFuIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjIiwicmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2JhIiwiY2hhcmdlc19tZW5zdWVsbGVzX3ByZXQiLCJvcGVyYXRpb25zX2xvZ2VtZW50X2V2b2x1dGlmc18iLCJjb2VmZmljaWVudF9kODQyXzEyIiwiY29lZmZpY2llbnRfZDg0Ml8xMSIsIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml8xMiIsIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml8xMSIsIm1vbnRhbnRfbWluaW1hbF9haWRlX2Q4NDJfNiIsIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml82IiwiY29uZGl0aW9uX2Q4NDJfMTFfMyIsImRhdGVfY2FsY3VsIiwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyIiwic2V1aWxfbWluaW1hbF9yZXNzb3VyY2VzX21lbmFnIiwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyJDAiLCJyZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfc2UiLCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDIkMSIsInNldWlsX21pbmltYWxfZGVwZW5zZV9uZXR0ZV9taSIsInBsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzYiLCJkZXBlbnNlX25ldHRlX21pbmltYWxlJDAiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMiIsInJlc3NvdXJjZXNfbWVuYWdlX3NhbnNfYXJyb25kaSIsImxvY2F0aW9uIiwibG9nZW1lbnRmb3llciIsInByb3ByaWV0YWlyZSIsImxvY2F0aW9uJDAiLCJwcm9wcmlldGFpcmUkMCIsImNhdGVnb3JpZV9jYWxjdWxfYXBsIiwicmVzc291cmNlc19tZW5hZ2VfYXZlY19hcnJvbmRpIiwiYmFpbGxldXIiLCJwYXJhbTAiLCJ0cmFpdGVtZW50X2Zvcm11bGUiLCJ0cmFpdGVtZW50X2Zvcm11bGUkMCIsImxvZ2VtZW50X2ZveWVyIiwicmVzdWx0JDMiLCJyZXN1bHQkNCIsInRyYWl0ZW1lbnRfZm9ybXVsZSQxIiwic291c19jYWxjdWxfdHJhaXRlbWVudCIsImVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlXyIsIm1lbmFnZSIsImRlbWFuZGV1ciIsImNvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcCIsImNvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlIiwiZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jIiwicHJldCIsImRhdGVfZW50cmVlX3ZpZ3VldXJfZGlmZmVyZWVfYyQwIiwic2V1aWxfbDgyMl8zX3BhcnRzX3Byb3ByaWV0ZSIsInNldWlsX2w4MjJfM19wYXJ0c191c3VmcnVpdCIsInNldWlsX2w4MjJfNV9wYXRyaW1vaW5lIiwidXN1ZnJ1aXRfb3VfcHJvcHJpZXRlX2ZhbWlsbGUiLCJub21icmVfcGVyc29ubmVzX2xvZ2VtZW50Iiwic2VwdGllbWVfYWxpbmVhX2w4MjNfMV9hcHBsaWNhIiwiY29uZGl0aW9uX25vbl9vdXZlcnR1cmVfbDgyMl85IiwiY29uZGl0aW9uX25vbl9vdXZlcnR1cmVfbDgyMl84IiwiY29uZGl0aW9uX2xvZ2VtZW50X3Jlc2lkZW5jZV9wJDAiLCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2RvdF8iLCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2RvdF8kMCIsInBhdHJpbW9pbmVfdG90YWxfZGVtYW5kZXVyIiwiY29uZGl0aW9ucyIsImNvbmRpdGlvbl9uYXRpb25hbGl0ZSIsInBsYWZvbmRfaW5kaXZpZHVlbF9sODE1Xzlfc2VjdSIsImNvbmRpdGlvbl9sb2dlbWVudF9sb2NhdGlvbl90aSIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2FnZSQwIiwidXN1ZnJ1aXRfb3VfcHJvcHJpZXRlX2ZhbWlsbGUkMCIsInBhcnRzIiwicGFydHMkMCIsInBhcnRzJDEiLCJwYXJ0cyQyIiwiY29uZGl0aW9uX2xvZ2VtZW50X21vZGVfb2NjdXBhIiwiY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfbWluIiwiY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2UkMCIsImFnZV9sMTYxXzE3XzJfc2VjdSIsInByZXN0YXRpb24iLCJjb25kaXRpb25fb3V2ZXJ0dXJlX2w4MjJfMTBfcGUiLCJhZ2VfbDM1MV84XzFfc2VjdSIsImVsaWdpYmlsaXRlX2xvZ2VtZW50IiwicGVyc29ubmVfYV9jaGFyZ2UiLCJwYXJlbnQiLCJjb25kaXRpb25fMl9yODIzXzQiLCJlbGlnaWJpbGl0ZSIsInByaXNlX2VuX2NvbXB0ZV9wZXJzb25uZV9hX2NoYSIsInBlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fYyIsImNvZWZmIiwiY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlIiwibm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnQiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiIsImVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbSIsImluZm9ybWF0aW9ucyIsImRhdGVfZW1tZW5hZ2VtZW50IiwiZGVwZW5zZXNfanVzdGlmaWVlc19yZWVsbGVtZW50IiwiZGVsYWlfYXByZXNfZW1tZW5hZ2VtZW50X2w4MjNfIiwiY29uZGl0aW9uX3JhbmdfZW5mYW50IiwiZWxpZ2liaWxpdGVfYXBsX2RvdF9tZW5hZ2UiLCJlbGlnaWJpbGl0ZV9hcGxfZG90X2RlbWFuZGV1ciIsImVsaWdpYmlsaXRlX2FwbF9kb3RfZGF0ZV9jb3VyYSIsImVsaWdpYmlsaXRlX2FwbF9kb3RfY29uZGl0aW9uXyIsImVsaWdpYmlsaXRlX2FwbF9kb3RfY29uZGl0aW9uXyQwIiwiZWxpZ2liaWxpdGVfYXBsX2RvdF9kYXRlX2VudHJlIiwiZWxpZ2liaWxpdGVfYXBsX2RvdF9kYXRlX2NvdXJhJDAiLCJlbGlnaWJpbGl0ZV9hcGxfZG90X2VsaWdpYmlsaXQiLCJkYXRlX25haXNzYW5jZV9vdV9ncm9zc2Vzc2UiLCJjb25kaXRpb25fcGVyaW9kZV9kZW1lbmFnZW1lbnQiLCJwbGFmb25kX2Q4MjNfMjIiLCJtb250YW50X3ByaW1lX2RlbWVuYWdlbWVudCIsImVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbiIsImJlbmVmaWNpZV9haWRlX3BlcnNvbm5hbGlzZWVfbCIsImR1cmVlX2w4NDFfMV8zIiwibF84NDFfMV82X2FwcGxpY2FibGUiLCJsXzg0MV8xXzJfYXBwbGljYWJsZSIsImxfODQxXzFfMV9hcHBsaWNhYmxlIiwiY29uZGl0aW9uX2FjY2Vzc2lvbl9wcm9wcmlldGUiLCJlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9tZW5hZ2UiLCJlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9kZW1hbmQiLCJlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9kYXRlX2MiLCJlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9jb25kaXQiLCJlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9jb25kaXQkMCIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2RhdGVfZSIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2VsaWdpYiIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X25vbWJyZSIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvZWZmaSIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvbmRpdCQxIiwiZWxpZ2liaWxpdGVfZGlzcG9zaXRpb25zX2NvbW11IiwiZGF0ZV9tYXJpYWdlIiwiZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVuJDAiLCJkYXRlX2FjY29yZCIsImVsaWdpYmlsaXRlX2w4NDFfMiIsImVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZSIsImNhcmFjdGVyaXN0aXF1ZXNfcHJldF9sODMxXzFfMSIsImNhcmFjdGVyaXN0aXF1ZXNfcHJldF9sODMxXzFfNiIsImxvZ2VtZW50X3NpdHVlX2NvbW11bmVfZGVzZXF1aSIsInByb3ByaWV0ZSIsImNvbnZlbnRpb24iLCJjb252ZW50aW9uJDAiLCJjb25kaXRpb25fbG9nZW1lbnRfYmFpbGxldXIiLCJwcm9wcmlldGUkMCIsImNvbmRpdGlvbl9sb2dlbWVudF9wcmV0IiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudCIsImNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaSIsInJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jbyIsImVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbiQxIiwiZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVuJDIiLCJlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW4kMyIsImVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbiQ0IiwiZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVuJDUiLCJlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWUkMCIsImVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZSQxIiwiZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlJDIiLCJlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWUkMyIsImVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZSQ0IiwiZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlJDUiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3QiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3QkMCIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdCQxIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90JDIiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3QkMyIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdCQ0IiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90JDUiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3QkNiIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdCQ3IiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90JDgiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMyIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQ0IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDUiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkNiIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQ3IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDgiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkOSIsImFpZGVfZmluYWxlX2FwbCIsImFpZGVfZmluYWxlX2FsIiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nIiwibWVuYWdlX3NhbnNfZW5mYW50c19nYXJkZV9hbHRlIiwiY2FsY3VsZXR0ZV9kb3RfbWVuYWdlIiwiY2FsY3VsZXR0ZV9kb3RfZGVtYW5kZXVyIiwiY2FsY3VsZXR0ZV9kb3RfZGF0ZV9jb3VyYW50ZSIsImNhbGN1bGV0dGVfZG90X3Jlc3NvdXJjZXNfbWVuYSIsImNhbGN1bGV0dGVfZG90X2VsaWdpYmlsaXRlIiwiY2FsY3VsZXR0ZV9kb3RfYWlkZV9maW5hbGVfZm9yIiwiY2FsY3VsZXR0ZV9kb3RfdHJhaXRlbWVudF9haWRlIiwiY2FsY3VsZXR0ZV9kb3RfY29lZmZpY2VudHNfZW5mIiwiY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlIiwiY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlJDAiLCJjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuZWUkMSIsImNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm5lZSQyIiwiY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlJDMiLCJ0eXBlX3ByZXRfdG9fanNvbyIsInR5cGVfcHJldF9vZl9qc29vIiwidGl0dWxhaXJlX3ByZXRfdG9fanNvbyIsInRpdHVsYWlyZV9wcmV0X29mX2pzb28iLCJ0eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNV8iLCJ0eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNV8kMCIsInR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzVfdCIsInR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzVfbyIsImFtZWxpb3JlX3Bhcl9vY2N1cGFudF90b19qc29vIiwiYW1lbGlvcmVfcGFyX29jY3VwYW50X29mX2pzb28iLCJsaW1pdGVfdHJhbmNoZV90b19qc29vIiwibGltaXRlX3RyYW5jaGVfb2ZfanNvbyIsImxpbWl0ZV90cmFuY2hlX2RlY2ltYWxfdG9fanNvbyIsImxpbWl0ZV90cmFuY2hlX2RlY2ltYWxfb2ZfanNvbyIsInByZXN0YXRpb25fcmVjdWVfdG9fanNvbyIsInByZXN0YXRpb25fcmVjdWVfb2ZfanNvbyIsInBhcmVudF9vdV9hdXRyZV90b19qc29vIiwicGFyZW50X291X2F1dHJlX29mX2pzb28iLCJzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWVfdG9fanMiLCJzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWVfb2ZfanMiLCJwYXJlbnRlX3RvX2pzb28iLCJwYXJlbnRlX29mX2pzb28iLCJkYXRlX2RlX25haXNzYW5jZV9vdV9tb2lzX2RlX2ciLCJkYXRlX2RlX25haXNzYW5jZV9vdV9tb2lzX2RlX2ckMCIsInpvbmVfZF9oYWJpdGF0aW9uX3RvX2pzb28iLCJ6b25lX2RfaGFiaXRhdGlvbl9vZl9qc29vIiwicGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluY3RfcHJvJDAiLCJ2ZXJzZW1lbnRfYV90b19qc29vIiwidmVyc2VtZW50X2Ffb2ZfanNvbyIsImRlcGVuc2VfbG9nZW1lbnRfdG9fanNvbyIsImRlcGVuc2VfbG9nZW1lbnRfb2ZfanNvbyIsIm1vZGVfb2NjdXBhdGlvbl9pbXBheWVfdG9fanNvbyIsIm1vZGVfb2NjdXBhdGlvbl9pbXBheWVfb2ZfanNvbyIsInR5cGVfZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sbyIsInR5cGVfZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sbyQwIiwiYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFuIiwiYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFuJDAiLCJ0eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW4iLCJ0eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW4kMCIsInNpdHVhdGlvbl9mYW1pbGlhbGVfdG9fanNvbyIsInNpdHVhdGlvbl9mYW1pbGlhbGVfb2ZfanNvbyIsInR5cGVfbG9nZW1lbnRfZm95ZXJfdG9fanNvbyIsInR5cGVfbG9nZW1lbnRfZm95ZXJfb2ZfanNvbyIsImNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbCIsImNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbCQwIiwic2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wIiwic2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wJDAiLCJwcmlzZV9lbl9jaGFyZ2VfZW5mYW50X3RvX2pzb28iLCJwcmlzZV9lbl9jaGFyZ2VfZW5mYW50X29mX2pzb28iLCJjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbF90b18iLCJjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbCIsImNvbnZlbnRpb25fYmFpbGxldXJfc29jaWFsX29mXyIsImNvbnZlbnRpb25fYV9uX2hfYV90b19qc29vIiwiY29udmVudGlvbl9hX25faF9hIiwiY29udmVudGlvbl9hX25faF9hX29mX2pzb28iLCJwZXJzb25uZV9zb3VzX2xvY2F0aW9uX3RvX2pzb28iLCJwZXJzb25uZV9zb3VzX2xvY2F0aW9uIiwicGVyc29ubmVfc291c19sb2NhdGlvbl9vZl9qc29vIiwicGF0cmltb2luZV90b19qc29vIiwicGF0cmltb2luZSIsInBhdHJpbW9pbmVfb2ZfanNvbyIsImNvbmRpdGlvbnNfZXRyYW5nZXJzX3RvX2pzb28iLCJjb25kaXRpb25zX2V0cmFuZ2VycyIsImNvbmRpdGlvbnNfZXRyYW5nZXJzX29mX2pzb28iLCJwZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnQiLCJwZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnQkMCIsImVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbSQwIiwicmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sJDAiLCJjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3AkMCIsImNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mbyQwIiwiY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fJDAiLCJ0cmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGUiLCJ0cmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGUkMCIsImluZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0MiIsImluZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0MiQwIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jJDAiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2MkMCIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveSQwIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfdG9fIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfb2ZfIiwib3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV90b19qIiwib3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9vZl9qIiwiaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfdG9fanNvIiwiaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfb2ZfanNvIiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF90IiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9vIiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nJDAiLCJuZXVmX291X2FuY2llbl90b19qc29vIiwibmV1Zl9vdV9hbmNpZW5fb2ZfanNvbyIsInRyYW5jaGVfcmV2ZW51X3RvX2pzb28iLCJ0cmFuY2hlX3JldmVudSIsInRyYW5jaGVfcmV2ZW51X29mX2pzb28iLCJ0cmFuY2hlX3JldmVudV9kZWNpbWFsX3RvX2pzb28iLCJ0cmFuY2hlX3JldmVudV9kZWNpbWFsIiwidHJhbmNoZV9yZXZlbnVfZGVjaW1hbF9vZl9qc29vIiwiYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2VfdG9fanNvIiwiYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UiLCJhdXRyZV9wZXJzb25uZV9hX2NoYXJnZV9vZl9qc28iLCJkYXRlX25haXNzYW5jZV90cm9pc2llbWVfb3VfZGUiLCJkYXRlX25haXNzYW5jZV90cm9pc2llbWVfb3VfZGUkMCIsInByZXRfdG9fanNvbyIsInByZXRfb2ZfanNvbyIsImxvZ2VtZW50X2ZveWVyX3RvX2pzb28iLCJsb2dlbWVudF9mb3llcl9vZl9qc29vIiwiZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfIiwiZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMiLCJlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc18kMCIsInR5cGVfYmFpbGxldXJfdG9fanNvbyIsInR5cGVfYmFpbGxldXJfb2ZfanNvbyIsImxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzXyIsImxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzXyQwIiwibmF0aW9uYWxpdGVfdG9fanNvbyIsIm5hdGlvbmFsaXRlX29mX2pzb28iLCJjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF90b18iLCJjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF9vZl8iLCJpbmZvcm1hdGlvbnNfcHJpbWVfZGVfZGVtZW5hZ2UiLCJpbmZvcm1hdGlvbnNfcHJpbWVfZGVfZGVtZW5hZ2UkMCIsInByb3ByaWV0YWlyZV90b19qc29vIiwicHJvcHJpZXRhaXJlX29mX2pzb28iLCJlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGkkMCIsImRlbWFuZGV1cl90b19qc29vIiwiZGVtYW5kZXVyX29mX2pzb28iLCJlbmZhbnRfYV9jaGFyZ2VfdG9fanNvbyIsImVuZmFudF9hX2NoYXJnZSIsImVuZmFudF9hX2NoYXJnZV9vZl9qc29vIiwibG9jYXRpb25fdG9fanNvbyIsImxvY2F0aW9uX29mX2pzb28iLCJwZXJzb25uZV9hX2NoYXJnZV90b19qc29vIiwicGVyc29ubmVfYV9jaGFyZ2Vfb2ZfanNvbyIsImNhdGVnb3JpZV9jYWxjdWxfYV9wX2xfdG9fanNvbyIsImNhdGVnb3JpZV9jYWxjdWxfYV9wX2xfb2ZfanNvbyIsIm1vZGVfb2NjdXBhdGlvbl90b19qc29vIiwibW9kZV9vY2N1cGF0aW9uX29mX2pzb28iLCJlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV8kMCIsImxvZ2VtZW50X3RvX2pzb28iLCJsb2dlbWVudCIsImxvZ2VtZW50X29mX2pzb28iLCJtZW5hZ2VfdG9fanNvbyIsIm1lbmFnZV9vZl9qc29vIiwiZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfJDEiLCJlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV8kMiIsImVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbSQxIiwiZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtJDIiLCJyZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2wkMSIsInJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbCQyIiwiY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wJDEiLCJjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3AkMiIsImNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mbyQxIiwiY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZvJDIiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMTAiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl8kMSIsImNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uXyQyIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDExIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDEyIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDEzIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDE0IiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jJDEiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2MkMiIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjYyQxIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjJDIiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3kkMSIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveSQyIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW5fIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW5fJDAiLCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luX3QiLCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luX28iLCJpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbl90b18iLCJpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbl9vZl8iLCJjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2kkMCIsImNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZyQxIiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nJDIiLCJlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGkkMSIsImVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaSQyIiwiY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wJDMiLCJjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm8kMyIsImNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uXyQzIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDE1IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDE2IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDE3IiwicmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sJDMiLCJlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGkkMyIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvYyQzIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95JDMiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2MkMyIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQxOCIsImVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlXyQzIiwiZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtJDMiLCJjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2ckMyIsImNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZyIsImludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbCJdLCJzb3VyY2VzIjpbIi9idWlsdGluLytpbnQ2NC5qcyIsIi9idWlsdGluLyttbEJ5dGVzLmpzIiwiL2J1aWx0aW4vK2ZhaWwuanMiLCIvYnVpbHRpbi8rc3RkbGliLmpzIiwiL2J1aWx0aW4vK3N5cy5qcyIsIi9idWlsdGluLytiYWNrdHJhY2UuanMiLCIvYnVpbHRpbi8ranNsaWIuanMiLCIvYnVpbHRpbi8rZm9ybWF0LmpzIiwiL2J1aWx0aW4vK2llZWVfNzU0LmpzIiwiL2J1aWx0aW4vK2VmZmVjdC5qcyIsIi9idWlsdGluLytmc19ub2RlLmpzIiwiL2J1aWx0aW4vK2ZzLmpzIiwiL2J1aWx0aW4vK3VuaXguanMiLCIvYnVpbHRpbi8rZnNfZmFrZS5qcyIsIi9idWlsdGluLytuYXQuanMiLCIvYnVpbHRpbi8rZ3JhcGhpY3MuanMiLCIvYnVpbHRpbi8rcnVudGltZV9ldmVudHMuanMiLCIvYnVpbHRpbi8rbWFyc2hhbC5qcyIsIi9idWlsdGluLytpby5qcyIsIi9idWlsdGluLytnYy5qcyIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvemFyaXRoX3N0dWJzX2pzL2JpZ2ludGVnZXIuanMiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL3phcml0aF9zdHVic19qcy9ydW50aW1lLmpzIiwiL2J1aWx0aW4vK2JpZ2FycmF5LmpzIiwiL2J1aWx0aW4vK3BhcnNpbmcuanMiLCIvYnVpbHRpbi8raW50cy5qcyIsIi9idWlsdGluLytoYXNoLmpzIiwiL2J1aWx0aW4vK29iai5qcyIsIi9idWlsdGluLytkb21haW4uanMiLCIvYnVpbHRpbi8rY29tcGFyZS5qcyIsIi9idWlsdGluLytqc2xpYl9qc19vZl9vY2FtbC5qcyIsIi9idWlsdGluLytiaWdzdHJpbmcuanMiLCIvYnVpbHRpbi8rbWQ1LmpzIiwiL2J1aWx0aW4vK3N0ci5qcyIsIi9idWlsdGluLytsZXhpbmcuanMiLCIvYnVpbHRpbi8rYXJyYXkuanMiLCIvYnVpbHRpbi8rc3luYy5qcyIsIi9idWlsdGluLyt3ZWFrLmpzIiwiL2J1aWx0aW4vK3BybmcuanMiLCIvYnVpbHRpbi8renN0ZC5qcyIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvY2FtbGludGVybmFsRm9ybWF0QmFzaWNzLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9jYW1saW50ZXJuYWxBdG9taWMubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3N0ZGxpYi5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvcGVydmFzaXZlcy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvZWl0aGVyLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9vYmoubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NhbWxpbnRlcm5hbExhenkubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2xhenkubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3NlcS5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvb3B0aW9uLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9yZXN1bHQubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2Jvb2wubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NoYXIubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3VjaGFyLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9saXN0Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9pbnQubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2J5dGVzLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9zdHJpbmcubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3VuaXQubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL21hcnNoYWwubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2FycmF5Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9mbG9hdC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvaW50MzIubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2ludDY0Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9uYXRpdmVpbnQubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2xleGluZy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvcGFyc2luZy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvc2V0Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9tYXAubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3N0YWNrLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9xdWV1ZS5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvc3RyZWFtLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9idWZmZXIubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NhbWxpbnRlcm5hbEZvcm1hdC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvcHJpbnRmLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9hcmcubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3ByaW50ZXhjLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9mdW4ubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2djLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9kaWdlc3QubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3JhbmRvbS5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvaGFzaHRibC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvd2Vhay5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvZm9ybWF0Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9zY2FuZi5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvY2FsbGJhY2subWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NhbWxpbnRlcm5hbE9PLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9jYW1saW50ZXJuYWxNb2QubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2dlbmxleC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvZXBoZW1lcm9uLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9maWxlbmFtZS5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvY29tcGxleC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvYmlnYXJyYXkubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2luX2NoYW5uZWwubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL291dF9jaGFubmVsLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9kYXRlc19jYWxjL2RhdGVzLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi95b2pzb24veW9qc29uLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9wcHhfeW9qc29uX2NvbnZfbGliL3lvanNvbl9jb252Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9wcHhfeW9qc29uX2NvbnZfbGliL3lvanNvbl9jb252X2Vycm9yLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9wcHhfeW9qc29uX2NvbnZfbGliL3BweF95b2pzb25fY29udl9saWIubWwiLCIvd29ya3NwYWNlX3Jvb3QvcnVudGltZXMvb2NhbWwvcnVudGltZS5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwtY29tcGlsZXIvcnVudGltZS9qc29vX3J1bnRpbWVfXy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwtY29tcGlsZXIvcnVudGltZS9qc29vX3J1bnRpbWUubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2pzX29mX29jYW1sX18ubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2ltcG9ydC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvanMubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2RvbS5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvdHlwZWRfYXJyYXkubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2ZpbGUubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2RvbV9odG1sLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9mb3JtLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC94bWxIdHRwUmVxdWVzdC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvd29ya2VyLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC93ZWJTb2NrZXRzLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC93ZWJHTC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvcmVnZXhwLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC91cmwubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL3N5c19qcy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvcmVzaXplT2JzZXJ2ZXIubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL3BlcmZvcm1hbmNlT2JzZXJ2ZXIubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL211dGF0aW9uT2JzZXJ2ZXIubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2pzdGFibGUubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2pzb24ubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2NTUy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvZG9tX2V2ZW50cy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvZG9tX3N2Zy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvZXZlbnRTb3VyY2UubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2ZpcmVidWcubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2dlb2xvY2F0aW9uLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9pbnRlcnNlY3Rpb25PYnNlcnZlci5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvaW50bC5tbCIsIi93b3Jrc3BhY2Vfcm9vdC9ydW50aW1lcy9qc29vL3J1bnRpbWUubWwiLCIvd29ya3NwYWNlX3Jvb3QvZnJlbmNoX2xhdy9vY2FtbC9sYXdfc291cmNlL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMubWwiLCIvd29ya3NwYWNlX3Jvb3QvZnJlbmNoX2xhdy9vY2FtbC9sYXdfc291cmNlL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfYXBpX3dlYi5tbCIsIi93b3Jrc3BhY2Vfcm9vdC9mcmVuY2hfbGF3L29jYW1sL2xhd19zb3VyY2UvYWlkZXNfbG9nZW1lbnQubWwiLCIvd29ya3NwYWNlX3Jvb3QvZnJlbmNoX2xhdy9vY2FtbC9sYXdfc291cmNlL2FpZGVzX2xvZ2VtZW50X2FwaV93ZWIubWwiLCIvd29ya3NwYWNlX3Jvb3QvZnJlbmNoX2xhdy9vY2FtbC9hcGlfd2ViLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9zdGRfZXhpdC5tbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7QTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBPQSxTQUFTQSxtQkFBbUJDLEdBQUssU0FBUUEsV0FBWTtHQ3pMckQsU0FBU0MsZ0JBQWdCQyxHQUFHQztJQUMxQixHQUFHRCxRQUFRO0lBQ1gsR0FBSUMsVUFBVSxPQUFRQSxTQUFTRDtJQUMvQixJQUFJRSxRQUFRQztJQUNaLE9BQVE7S0FDTixHQUFJSCxPQUFPRSxLQUFLRDtLQUNoQkQ7S0FDQSxHQUFJQSxRQUFRLE9BQU9FO0tBQ25CRCxLQUFLQTtLQUNMRTtLQUNBLEdBQUlBLFFBQ0ZGOztHQUtOO0dEN0NzQixJQUFsQkcsb0JBQW9CQztHRUF4QixTQUFTQyxvQkFBcUJDLEtBQU8sTUFBTUEsSUFBSztHQzRIM0IsSUFBakJDO0dEckZKLFNBQVNDO0lBQ1BILG9CQUFvQkU7R0FDdEI7R0ZyQ0EsU0FBU0UsUUFBU0MsSUFBR0MsSUFBR0M7SUFDdEJDLFVBQVVIO0lBQ1ZHLFVBQVVGO0lBQ1ZFLFVBQVVEO0dBQ1o7R0FDQUg7R0FDQUE7ZUFDRSxXQUFXQSxRQUFRSSxTQUFRQSxTQUFRQSxTQURaO0dBSXpCSjthQUF1Q1o7S0FDckMsR0FBSWdCLFVBQVVoQixNQUFNO0tBQ3BCLEdBQUlnQixVQUFVaEIsTUFBTTtLQUNwQixHQUFJZ0IsVUFBVWhCLE1BQU07S0FDcEIsR0FBSWdCLFVBQVVoQixNQUFNO0tBQ3BCLEdBQUlnQixVQUFVaEIsTUFBTTtLQUNwQixHQUFJZ0IsVUFBVWhCLE1BQU07S0FDcEI7SUFQMkI7R0FTN0JZO2FBQXNDWjtLQUNwQyxJQUFJZSxLQUFLQyxlQUNMQyxNQUFNakI7S0FDVixHQUFJ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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0NHQzs7Ozs7OztJQXduQ1FDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQTFuQ0pHO0lBZ0tBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUE5Sko7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dHT21COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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Q1U7c0JBQXNCQzs7ZUFHWjs7OztvQkFIWUE7O2NBTUs7Y0FMQTthQUtDO0dBQUM7O0lBakI3QjtzQkFBc0JDOztlQUdaOzs7O29CQUhZQTs7Y0FNUTtjQUxIO2FBS0k7R0FBQzs7R0FadkM7Ozs7Ozs7O0VEM0JIOzs7Ozs7Ozs7Ozs7O0dDQUE7Ozs7Ozs7O0dDa0JTOzs7O0VEbEJUIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfb2Zmc2V0XG52YXIgY2FtbF9pbnQ2NF9vZmZzZXQgPSBNYXRoLnBvdygyLCAtMjQpO1xuXG4vL1Byb3ZpZGVzOiBNbEludDY0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mZnNldCwgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZVxuZnVuY3Rpb24gTWxJbnQ2NCAobG8sbWksaGkpIHtcbiAgdGhpcy5sbyA9IGxvICYgMHhmZmZmZmY7XG4gIHRoaXMubWkgPSBtaSAmIDB4ZmZmZmZmO1xuICB0aGlzLmhpID0gaGkgJiAweGZmZmY7XG59XG5NbEludDY0LnByb3RvdHlwZS5jYW1sX2N1c3RvbSA9IFwiX2pcIlxuTWxJbnQ2NC5wcm90b3R5cGUuY29weSA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIG5ldyBNbEludDY0KHRoaXMubG8sdGhpcy5taSx0aGlzLmhpKTtcbn1cblxuTWxJbnQ2NC5wcm90b3R5cGUudWNvbXBhcmUgPSBmdW5jdGlvbiAoeCkge1xuICBpZiAodGhpcy5oaSA+IHguaGkpIHJldHVybiAxO1xuICBpZiAodGhpcy5oaSA8IHguaGkpIHJldHVybiAtMTtcbiAgaWYgKHRoaXMubWkgPiB4Lm1pKSByZXR1cm4gMTtcbiAgaWYgKHRoaXMubWkgPCB4Lm1pKSByZXR1cm4gLTE7XG4gIGlmICh0aGlzLmxvID4geC5sbykgcmV0dXJuIDE7XG4gIGlmICh0aGlzLmxvIDwgeC5sbykgcmV0dXJuIC0xO1xuICByZXR1cm4gMDtcbn1cbk1sSW50NjQucHJvdG90eXBlLmNvbXBhcmUgPSBmdW5jdGlvbiAoeCkge1xuICB2YXIgaGkgPSB0aGlzLmhpIDw8IDE2O1xuICB2YXIgeGhpID0geC5oaSA8PCAxNjtcbiAgaWYgKGhpID4geGhpKSByZXR1cm4gMTtcbiAgaWYgKGhpIDwgeGhpKSByZXR1cm4gLTE7XG4gIGlmICh0aGlzLm1pID4geC5taSkgcmV0dXJuIDE7XG4gIGlmICh0aGlzLm1pIDwgeC5taSkgcmV0dXJuIC0xO1xuICBpZiAodGhpcy5sbyA+IHgubG8pIHJldHVybiAxO1xuICBpZiAodGhpcy5sbyA8IHgubG8pIHJldHVybiAtMTtcbiAgcmV0dXJuIDA7XG59XG5NbEludDY0LnByb3RvdHlwZS5uZWcgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBsbyA9IC0gdGhpcy5sbztcbiAgdmFyIG1pID0gLSB0aGlzLm1pICsgKGxvID4+IDI0KTtcbiAgdmFyIGhpID0gLSB0aGlzLmhpICsgKG1pID4+IDI0KTtcbiAgcmV0dXJuIG5ldyBNbEludDY0KGxvLCBtaSwgaGkpO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24gKHgpIHtcbiAgdmFyIGxvID0gdGhpcy5sbyArIHgubG87XG4gIHZhciBtaSA9IHRoaXMubWkgKyB4Lm1pICsgKGxvID4+IDI0KTtcbiAgdmFyIGhpID0gdGhpcy5oaSArIHguaGkgKyAobWkgPj4gMjQpO1xuICByZXR1cm4gbmV3IE1sSW50NjQobG8sIG1pLCBoaSk7XG59XG5NbEludDY0LnByb3RvdHlwZS5zdWIgPSBmdW5jdGlvbiAoeCkge1xuICB2YXIgbG8gPSB0aGlzLmxvIC0geC5sbztcbiAgdmFyIG1pID0gdGhpcy5taSAtIHgubWkgKyAobG8gPj4gMjQpO1xuICB2YXIgaGkgPSB0aGlzLmhpIC0geC5oaSArIChtaSA+PiAyNCk7XG4gIHJldHVybiBuZXcgTWxJbnQ2NChsbywgbWksIGhpKTtcbn1cbk1sSW50NjQucHJvdG90eXBlLm11bCA9IGZ1bmN0aW9uICh4KSB7XG4gIHZhciBsbyA9IHRoaXMubG8gKiB4LmxvO1xuICB2YXIgbWkgPSAoKGxvICogY2FtbF9pbnQ2NF9vZmZzZXQpIHwgMCkgKyB0aGlzLm1pICogeC5sbyArIHRoaXMubG8gKiB4Lm1pO1xuICB2YXIgaGkgPSAoKG1pICogY2FtbF9pbnQ2NF9vZmZzZXQpIHwgMCkgKyB0aGlzLmhpICogeC5sbyArIHRoaXMubWkgKiB4Lm1pICsgdGhpcy5sbyAqIHguaGk7XG4gIHJldHVybiBuZXcgTWxJbnQ2NChsbywgbWksIGhpKTtcbn1cbk1sSW50NjQucHJvdG90eXBlLmlzWmVybyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuICh0aGlzLmxvfHRoaXMubWl8dGhpcy5oaSkgPT0gMDtcbn1cbk1sSW50NjQucHJvdG90eXBlLmlzTmVnID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gKHRoaXMuaGkgPDwgMTYpIDwgMDtcbn1cbk1sSW50NjQucHJvdG90eXBlLmFuZCA9IGZ1bmN0aW9uICh4KSB7XG4gIHJldHVybiBuZXcgTWxJbnQ2NCh0aGlzLmxvICYgeC5sbywgdGhpcy5taSAmIHgubWksIHRoaXMuaGkgJiB4LmhpKTtcbn1cbk1sSW50NjQucHJvdG90eXBlLm9yID0gZnVuY3Rpb24gKHgpIHtcbiAgcmV0dXJuIG5ldyBNbEludDY0KHRoaXMubG98eC5sbywgdGhpcy5taXx4Lm1pLCB0aGlzLmhpfHguaGkpO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUueG9yID0gZnVuY3Rpb24gKHgpIHtcbiAgcmV0dXJuIG5ldyBNbEludDY0KHRoaXMubG9eeC5sbywgdGhpcy5taV54Lm1pLCB0aGlzLmhpXnguaGkpO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUuc2hpZnRfbGVmdCA9IGZ1bmN0aW9uIChzKSB7XG4gIHMgPSBzICYgNjM7XG4gIGlmIChzID09IDApIHJldHVybiB0aGlzO1xuICBpZiAocyA8IDI0KSB7XG4gICAgcmV0dXJuIG5ldyBNbEludDY0ICh0aGlzLmxvIDw8IHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5taSA8PCBzKSB8ICh0aGlzLmxvID4+ICgyNCAtIHMpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmhpIDw8IHMpIHwgKHRoaXMubWkgPj4gKDI0IC0gcykpKTtcbiAgfVxuICBpZiAocyA8IDQ4KVxuICAgIHJldHVybiBuZXcgTWxJbnQ2NCAoMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG8gPDwgKHMgLSAyNCksXG4gICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5taSA8PCAocyAtIDI0KSkgfCAodGhpcy5sbyA+PiAoNDggLSBzKSkpO1xuICByZXR1cm4gbmV3IE1sSW50NjQoMCwgMCwgdGhpcy5sbyA8PCAocyAtIDQ4KSlcbn1cbk1sSW50NjQucHJvdG90eXBlLnNoaWZ0X3JpZ2h0X3Vuc2lnbmVkID0gZnVuY3Rpb24gKHMpIHtcbiAgcyA9IHMgJiA2MztcbiAgaWYgKHMgPT0gMCkgcmV0dXJuIHRoaXM7XG4gIGlmIChzIDwgMjQpXG4gICAgcmV0dXJuIG5ldyBNbEludDY0IChcbiAgICAgICh0aGlzLmxvID4+IHMpIHwgKHRoaXMubWkgPDwgKDI0IC0gcykpLFxuICAgICAgKHRoaXMubWkgPj4gcykgfCAodGhpcy5oaSA8PCAoMjQgLSBzKSksXG4gICAgICAodGhpcy5oaSA+PiBzKSk7XG4gIGlmIChzIDwgNDgpXG4gICAgcmV0dXJuIG5ldyBNbEludDY0IChcbiAgICAgICh0aGlzLm1pID4+IChzIC0gMjQpKSB8ICh0aGlzLmhpIDw8ICg0OCAtIHMpKSxcbiAgICAgICh0aGlzLmhpID4+IChzIC0gMjQpKSxcbiAgICAgIDApO1xuICByZXR1cm4gbmV3IE1sSW50NjQgKHRoaXMuaGkgPj4gKHMgLSA0OCksIDAsIDApO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUuc2hpZnRfcmlnaHQgPSBmdW5jdGlvbiAocykge1xuICBzID0gcyAmIDYzO1xuICBpZiAocyA9PSAwKSByZXR1cm4gdGhpcztcbiAgdmFyIGggPSAodGhpcy5oaSA8PCAxNikgPj4gMTY7XG4gIGlmIChzIDwgMjQpXG4gICAgcmV0dXJuIG5ldyBNbEludDY0IChcbiAgICAgICh0aGlzLmxvID4+IHMpIHwgKHRoaXMubWkgPDwgKDI0IC0gcykpLFxuICAgICAgKHRoaXMubWkgPj4gcykgfCAoaCA8PCAoMjQgLSBzKSksXG4gICAgICAoKHRoaXMuaGkgPDwgMTYpID4+IHMpID4+PiAxNik7XG4gIHZhciBzaWduID0gKHRoaXMuaGkgPDwgMTYpID4+IDMxO1xuICBpZiAocyA8IDQ4KVxuICAgIHJldHVybiBuZXcgTWxJbnQ2NCAoXG4gICAgICAodGhpcy5taSA+PiAocyAtIDI0KSkgfCAodGhpcy5oaSA8PCAoNDggLSBzKSksXG4gICAgICAodGhpcy5oaSA8PCAxNikgPj4gKHMgLSAyNCkgPj4gMTYsXG4gICAgICBzaWduICYgMHhmZmZmKTtcbiAgcmV0dXJuIG5ldyBNbEludDY0ICgodGhpcy5oaSA8PCAxNikgPj4gKHMgLSAzMiksIHNpZ24sIHNpZ24pO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUubHNsMSA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5oaSA9ICh0aGlzLmhpIDw8IDEpIHwgKHRoaXMubWkgPj4gMjMpO1xuICB0aGlzLm1pID0gKCh0aGlzLm1pIDw8IDEpIHwgKHRoaXMubG8gPj4gMjMpKSAmIDB4ZmZmZmZmO1xuICB0aGlzLmxvID0gKHRoaXMubG8gPDwgMSkgJiAweGZmZmZmZjtcbn1cbk1sSW50NjQucHJvdG90eXBlLmxzcjEgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMubG8gPSAoKHRoaXMubG8gPj4+IDEpIHwgKHRoaXMubWkgPDwgMjMpKSAmIDB4ZmZmZmZmO1xuICB0aGlzLm1pID0gKCh0aGlzLm1pID4+PiAxKSB8ICh0aGlzLmhpIDw8IDIzKSkgJiAweGZmZmZmZjtcbiAgdGhpcy5oaSA9IHRoaXMuaGkgPj4+IDE7XG59XG5NbEludDY0LnByb3RvdHlwZS51ZGl2bW9kID0gZnVuY3Rpb24gKHgpIHtcbiAgdmFyIG9mZnNldCA9IDA7XG4gIHZhciBtb2R1bHVzID0gdGhpcy5jb3B5KCk7XG4gIHZhciBkaXZpc29yID0geC5jb3B5KCk7XG4gIHZhciBxdW90aWVudCA9IG5ldyBNbEludDY0KDAsMCwwKTtcbiAgd2hpbGUgKG1vZHVsdXMudWNvbXBhcmUoZGl2aXNvcikgPiAwKSB7XG4gICAgb2Zmc2V0Kys7XG4gICAgZGl2aXNvci5sc2wxKCk7XG4gIH1cbiAgd2hpbGUgKG9mZnNldCA+PSAwKSB7XG4gICAgb2Zmc2V0IC0tO1xuICAgIHF1b3RpZW50LmxzbDEoKTtcbiAgICBpZiAobW9kdWx1cy51Y29tcGFyZShkaXZpc29yKSA+PSAwKSB7XG4gICAgICBxdW90aWVudC5sbyArKztcbiAgICAgIG1vZHVsdXMgPSBtb2R1bHVzLnN1YihkaXZpc29yKTtcbiAgICB9XG4gICAgZGl2aXNvci5sc3IxKCk7XG4gIH1cbiAgcmV0dXJuIHsgcXVvdGllbnQgOiBxdW90aWVudCwgbW9kdWx1cyA6IG1vZHVsdXMgfTtcbn1cbk1sSW50NjQucHJvdG90eXBlLmRpdiA9IGZ1bmN0aW9uICh5KVxue1xuICB2YXIgeCA9IHRoaXM7XG4gIGlmICh5LmlzWmVybygpKSBjYW1sX3JhaXNlX3plcm9fZGl2aWRlICgpO1xuICB2YXIgc2lnbiA9IHguaGkgXiB5LmhpO1xuICBpZiAoeC5oaSAmIDB4ODAwMCkgeCA9IHgubmVnKCk7XG4gIGlmICh5LmhpICYgMHg4MDAwKSB5ID0geS5uZWcoKTtcbiAgdmFyIHEgPSB4LnVkaXZtb2QoeSkucXVvdGllbnQ7XG4gIGlmIChzaWduICYgMHg4MDAwKSBxID0gcS5uZWcoKTtcbiAgcmV0dXJuIHE7XG59XG5NbEludDY0LnByb3RvdHlwZS5tb2QgPSBmdW5jdGlvbiAoeSlcbntcbiAgdmFyIHggPSB0aGlzO1xuICBpZiAoeS5pc1plcm8oKSkgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZSAoKTtcbiAgdmFyIHNpZ24gPSB4LmhpO1xuICBpZiAoeC5oaSAmIDB4ODAwMCkgeCA9IHgubmVnKCk7XG4gIGlmICh5LmhpICYgMHg4MDAwKSB5ID0geS5uZWcoKTtcbiAgdmFyIHIgPSB4LnVkaXZtb2QoeSkubW9kdWx1cztcbiAgaWYgKHNpZ24gJiAweDgwMDApIHIgPSByLm5lZygpO1xuICByZXR1cm4gcjtcbn1cbk1sSW50NjQucHJvdG90eXBlLnRvSW50ID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5sbyB8ICh0aGlzLm1pIDw8IDI0KTtcbn1cbk1sSW50NjQucHJvdG90eXBlLnRvRmxvYXQgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiAoKHRoaXMuaGkgPDwgMTYpICogTWF0aC5wb3coMiwgMzIpICsgdGhpcy5taSAqIE1hdGgucG93KDIsIDI0KSkgKyB0aGlzLmxvO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUudG9BcnJheSA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIFt0aGlzLmhpID4+IDgsXG4gICAgICAgICAgdGhpcy5oaSAmIDB4ZmYsXG4gICAgICAgICAgdGhpcy5taSA+PiAxNixcbiAgICAgICAgICAodGhpcy5taSA+PiA4KSAmIDB4ZmYsXG4gICAgICAgICAgdGhpcy5taSAmIDB4ZmYsXG4gICAgICAgICAgdGhpcy5sbyA+PiAxNixcbiAgICAgICAgICAodGhpcy5sbyA+PiA4KSAmIDB4ZmYsXG4gICAgICAgICAgdGhpcy5sbyAmIDB4ZmZdO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUubG8zMiA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMubG8gfCAoKHRoaXMubWkgJiAweGZmKSA8PCAyNCk7XG59XG5NbEludDY0LnByb3RvdHlwZS5oaTMyID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gKCh0aGlzLm1pID4+PiA4KSAmIDB4ZmZmZikgfCAodGhpcy5oaSA8PCAxNik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfdWx0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X3VsdCh4LHkpIHsgcmV0dXJuIHgudWNvbXBhcmUoeSkgPCAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfY29tcGFyZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9jb21wYXJlKHgseSwgdG90YWwpIHsgcmV0dXJuIHguY29tcGFyZSh5KSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfbmVnIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X25lZyAoeCkgeyByZXR1cm4geC5uZWcoKSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfYWRkIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X2FkZCAoeCwgeSkgeyByZXR1cm4geC5hZGQoeSkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X3N1YiBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9zdWIgKHgsIHkpIHsgcmV0dXJuIHguc3ViKHkpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9tdWwgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2Zmc2V0XG5mdW5jdGlvbiBjYW1sX2ludDY0X211bCh4LHkpIHsgcmV0dXJuIHgubXVsKHkpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9pc196ZXJvIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X2lzX3plcm8oeCkgeyByZXR1cm4gK3guaXNaZXJvKCk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9pc19uZWdhdGl2ZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9pc19uZWdhdGl2ZSh4KSB7IHJldHVybiAreC5pc05lZygpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfYW5kIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X2FuZCAoeCwgeSkgeyByZXR1cm4geC5hbmQoeSk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9vciBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9vciAoeCwgeSkgeyByZXR1cm4geC5vcih5KTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X3hvciBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF94b3IgKHgsIHkpIHsgcmV0dXJuIHgueG9yKHkpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9zaGlmdF9sZWZ0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X3NoaWZ0X2xlZnQgKHgsIHMpIHsgcmV0dXJuIHguc2hpZnRfbGVmdChzKSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfc2hpZnRfcmlnaHRfdW5zaWduZWQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfc2hpZnRfcmlnaHRfdW5zaWduZWQgKHgsIHMpIHsgcmV0dXJuIHguc2hpZnRfcmlnaHRfdW5zaWduZWQocykgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X3NoaWZ0X3JpZ2h0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X3NoaWZ0X3JpZ2h0ICh4LCBzKSB7IHJldHVybiB4LnNoaWZ0X3JpZ2h0KHMpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9kaXYgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfZGl2ICh4LCB5KSB7IHJldHVybiB4LmRpdih5KSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfbW9kIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X21vZCAoeCwgeSkgeyByZXR1cm4geC5tb2QoeSkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X29mX2ludDMyIGNvbnN0XG4vL1JlcXVpcmVzOiBNbEludDY0XG5mdW5jdGlvbiBjYW1sX2ludDY0X29mX2ludDMyICh4KSB7XG4gIHJldHVybiBuZXcgTWxJbnQ2NCh4ICYgMHhmZmZmZmYsICh4ID4+IDI0KSAmIDB4ZmZmZmZmLCAoeCA+PiAzMSkgJiAweGZmZmYpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfdG9faW50MzIgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfdG9faW50MzIgKHgpIHsgcmV0dXJuIHgudG9JbnQoKSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfdG9fZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfdG9fZmxvYXQgKHgpIHsgcmV0dXJuIHgudG9GbG9hdCAoKSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfb2ZfZmxvYXQgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2Zmc2V0LCBNbEludDY0XG5mdW5jdGlvbiBjYW1sX2ludDY0X29mX2Zsb2F0ICh4KSB7XG4gIGlmICh4IDwgMCkgeCA9IE1hdGguY2VpbCh4KTtcbiAgcmV0dXJuIG5ldyBNbEludDY0KFxuICAgIHggJiAweGZmZmZmZixcbiAgICBNYXRoLmZsb29yKHggKiBjYW1sX2ludDY0X29mZnNldCkgJiAweGZmZmZmZixcbiAgICBNYXRoLmZsb29yKHggKiBjYW1sX2ludDY0X29mZnNldCAqIGNhbWxfaW50NjRfb2Zmc2V0KSAmIDB4ZmZmZik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfZm9ybWF0IGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX3BhcnNlX2Zvcm1hdCwgY2FtbF9maW5pc2hfZm9ybWF0dGluZ1xuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9pc19uZWdhdGl2ZSwgY2FtbF9pbnQ2NF9uZWdcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2ZfaW50MzIsIGNhbWxfaW50NjRfdG9faW50MzJcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfaXNfemVybywgY2FtbF9zdHJfcmVwZWF0XG5mdW5jdGlvbiBjYW1sX2ludDY0X2Zvcm1hdCAoZm10LCB4KSB7XG4gIHZhciBmID0gY2FtbF9wYXJzZV9mb3JtYXQoZm10KTtcbiAgaWYgKGYuc2lnbmVkY29udiAmJiBjYW1sX2ludDY0X2lzX25lZ2F0aXZlKHgpKSB7XG4gICAgZi5zaWduID0gLTE7IHggPSBjYW1sX2ludDY0X25lZyh4KTtcbiAgfVxuICB2YXIgYnVmZmVyID0gXCJcIjtcbiAgdmFyIHdiYXNlID0gY2FtbF9pbnQ2NF9vZl9pbnQzMihmLmJhc2UpO1xuICB2YXIgY3Z0YmwgPSBcIjAxMjM0NTY3ODlhYmNkZWZcIjtcbiAgZG8ge1xuICAgIHZhciBwID0geC51ZGl2bW9kKHdiYXNlKTtcbiAgICB4ID0gcC5xdW90aWVudDtcbiAgICBidWZmZXIgPSBjdnRibC5jaGFyQXQoY2FtbF9pbnQ2NF90b19pbnQzMihwLm1vZHVsdXMpKSArIGJ1ZmZlcjtcbiAgfSB3aGlsZSAoISBjYW1sX2ludDY0X2lzX3plcm8oeCkpO1xuICBpZiAoZi5wcmVjID49IDApIHtcbiAgICBmLmZpbGxlciA9ICcgJztcbiAgICB2YXIgbiA9IGYucHJlYyAtIGJ1ZmZlci5sZW5ndGg7XG4gICAgaWYgKG4gPiAwKSBidWZmZXIgPSBjYW1sX3N0cl9yZXBlYXQgKG4sICcwJykgKyBidWZmZXI7XG4gIH1cbiAgcmV0dXJuIGNhbWxfZmluaXNoX2Zvcm1hdHRpbmcoZiwgYnVmZmVyKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9vZl9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfcGFyc2Vfc2lnbl9hbmRfYmFzZSwgY2FtbF9mYWlsd2l0aCwgY2FtbF9wYXJzZV9kaWdpdFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZl9pbnQzMiwgY2FtbF9pbnQ2NF91bHRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfYWRkLCBjYW1sX2ludDY0X211bCwgY2FtbF9pbnQ2NF9uZWdcbi8vUmVxdWlyZXM6IGNhbWxfbWxfc3RyaW5nX2xlbmd0aCxjYW1sX3N0cmluZ191bnNhZmVfZ2V0LCBNbEludDY0XG5mdW5jdGlvbiBjYW1sX2ludDY0X29mX3N0cmluZyhzKSB7XG4gIHZhciByID0gY2FtbF9wYXJzZV9zaWduX2FuZF9iYXNlIChzKTtcbiAgdmFyIGkgPSByWzBdLCBzaWduID0gclsxXSwgYmFzZSA9IHJbMl07XG4gIHZhciBiYXNlNjQgPSBjYW1sX2ludDY0X29mX2ludDMyKGJhc2UpO1xuICB2YXIgdGhyZXNob2xkID1cbiAgICAgIG5ldyBNbEludDY0KDB4ZmZmZmZmLCAweGZmZmZmZmYsIDB4ZmZmZikudWRpdm1vZChiYXNlNjQpLnF1b3RpZW50O1xuICB2YXIgYyA9IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQocywgaSk7XG4gIHZhciBkID0gY2FtbF9wYXJzZV9kaWdpdChjKTtcbiAgaWYgKGQgPCAwIHx8IGQgPj0gYmFzZSkgY2FtbF9mYWlsd2l0aChcImludF9vZl9zdHJpbmdcIik7XG4gIHZhciByZXMgPSBjYW1sX2ludDY0X29mX2ludDMyKGQpO1xuICBmb3IgKDs7KSB7XG4gICAgaSsrO1xuICAgIGMgPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0KHMsIGkpO1xuICAgIGlmIChjID09IDk1KSBjb250aW51ZTtcbiAgICBkID0gY2FtbF9wYXJzZV9kaWdpdChjKTtcbiAgICBpZiAoZCA8IDAgfHwgZCA+PSBiYXNlKSBicmVhaztcbiAgICAvKiBEZXRlY3Qgb3ZlcmZsb3cgaW4gbXVsdGlwbGljYXRpb24gYmFzZSAqIHJlcyAqL1xuICAgIGlmIChjYW1sX2ludDY0X3VsdCh0aHJlc2hvbGQsIHJlcykpIGNhbWxfZmFpbHdpdGgoXCJpbnRfb2Zfc3RyaW5nXCIpO1xuICAgIGQgPSBjYW1sX2ludDY0X29mX2ludDMyKGQpO1xuICAgIHJlcyA9IGNhbWxfaW50NjRfYWRkKGNhbWxfaW50NjRfbXVsKGJhc2U2NCwgcmVzKSwgZCk7XG4gICAgLyogRGV0ZWN0IG92ZXJmbG93IGluIGFkZGl0aW9uIChiYXNlICogcmVzKSArIGQgKi9cbiAgICBpZiAoY2FtbF9pbnQ2NF91bHQocmVzLCBkKSkgY2FtbF9mYWlsd2l0aChcImludF9vZl9zdHJpbmdcIik7XG4gIH1cbiAgaWYgKGkgIT0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpKSBjYW1sX2ZhaWx3aXRoKFwiaW50X29mX3N0cmluZ1wiKTtcbiAgaWYgKGJhc2UgPT0gMTAgJiYgY2FtbF9pbnQ2NF91bHQobmV3IE1sSW50NjQoMCwgMCwgMHg4MDAwKSwgcmVzKSlcbiAgICBjYW1sX2ZhaWx3aXRoKFwiaW50X29mX3N0cmluZ1wiKTtcbiAgaWYgKHNpZ24gPCAwKSByZXMgPSBjYW1sX2ludDY0X25lZyhyZXMpO1xuICByZXR1cm4gcmVzO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2NyZWF0ZV9sb19taV9oaSBjb25zdFxuLy9SZXF1aXJlczogTWxJbnQ2NFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9jcmVhdGVfbG9fbWlfaGkobG8sIG1pLCBoaSl7XG4gIHJldHVybiBuZXcgTWxJbnQ2NChsbywgbWksIGhpKVxufVxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9jcmVhdGVfbG9faGkgY29uc3Rcbi8vUmVxdWlyZXM6IE1sSW50NjRcbmZ1bmN0aW9uIGNhbWxfaW50NjRfY3JlYXRlX2xvX2hpKGxvLCBoaSl7XG4gIHJldHVybiBuZXcgTWxJbnQ2NCAoXG4gICAgbG8gJiAweGZmZmZmZixcbiAgICAoKGxvID4+PiAyNCkgJiAweGZmKSB8ICgoaGkgJiAweGZmZmYpIDw8IDgpLFxuICAgIChoaSA+Pj4gMTYpICYgMHhmZmZmKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfbG8zMiBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9sbzMyKHYpeyByZXR1cm4gdi5sbzMyKCkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2hpMzIgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfaGkzMih2KXsgcmV0dXJuIHYuaGkzMigpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9vZl9ieXRlcyBjb25zdFxuLy9SZXF1aXJlczogTWxJbnQ2NFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9vZl9ieXRlcyhhKSB7XG4gIHJldHVybiBuZXcgTWxJbnQ2NChhWzddIDw8IDAgfCAoYVs2XSA8PCA4KSB8IChhWzVdIDw8IDE2KSxcbiAgICAgICAgICAgICAgICAgICAgIGFbNF0gPDwgMCB8IChhWzNdIDw8IDgpIHwgKGFbMl0gPDwgMTYpLFxuICAgICAgICAgICAgICAgICAgICAgYVsxXSA8PCAwIHwgKGFbMF0gPDwgOCkpO1xufVxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF90b19ieXRlcyBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF90b19ieXRlcyh4KSB7IHJldHVybiB4LnRvQXJyYXkoKSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfaGFzaCBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9oYXNoKHYpe1xuICByZXR1cm4gKHYubG8zMigpKSBeICh2LmhpMzIoKSlcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxMC0yMDE0IErDqXLDtG1lIFZvdWlsbG9uXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vIEFuIE9DYW1sIHN0cmluZyBpcyBhbiBvYmplY3Qgd2l0aCB0aHJlZSBmaWVsZHM6XG4vLyAtIHRhZyAndCdcbi8vIC0gbGVuZ3RoICdsJ1xuLy8gLSBjb250ZW50cyAnYydcbi8vXG4vLyBUaGUgY29udGVudHMgb2YgdGhlIHN0cmluZyBjYW4gYmUgZWl0aGVyIGEgSmF2YVNjcmlwdCBhcnJheSBvclxuLy8gYSBKYXZhU2NyaXB0IHN0cmluZy4gVGhlIGxlbmd0aCBvZiB0aGlzIHN0cmluZyBjYW4gYmUgbGVzcyB0aGFuIHRoZVxuLy8gbGVuZ3RoIG9mIHRoZSBPQ2FtbCBzdHJpbmcuIEluIHRoaXMgY2FzZSwgcmVtYWluaW5nIGJ5dGVzIGFyZVxuLy8gYXNzdW1lZCB0byBiZSB6ZXJvZXMuIEFycmF5cyBhcmUgbXV0YWJsZSBidXQgY29uc3VtZXMgbW9yZSBtZW1vcnlcbi8vIHRoYW4gc3RyaW5ncy4gQSBjb21tb24gcGF0dGVybiBpcyB0byBzdGFydCBmcm9tIGFuIGVtcHR5IHN0cmluZyBhbmRcbi8vIHByb2dyZXNzaXZlbHkgZmlsbCBpdCBmcm9tIHRoZSBzdGFydC4gUGFydGlhbCBzdHJpbmdzIG1ha2VzIGl0XG4vLyBwb3NzaWJsZSB0byBpbXBsZW1lbnQgdGhpcyBlZmZpY2llbnRseS5cbi8vXG4vLyBXaGVuIGNvbnZlcnRpbmcgdG8gYW5kIGZyb20gVVRGLTE2LCB3ZSBrZWVwIHRyYWNrIG9mIHdoZXRoZXIgdGhlXG4vLyBzdHJpbmcgaXMgY29tcG9zZWQgb25seSBvZiBBU0NJSSBjaGFyYWN0ZXJzIChpbiB3aGljaCBjYXNlLCBub1xuLy8gY29udmVyc2lvbiBuZWVkcyB0byBiZSBwZXJmb3JtZWQpIG9yIG5vdC5cbi8vXG4vLyBUaGUgc3RyaW5nIHRhZyBjYW4gdGh1cyB0YWtlIHRoZSBmb2xsb3dpbmcgdmFsdWVzOlxuLy8gICBmdWxsIHN0cmluZyAgICAgQllURSB8IFVOS05PV046ICAgICAgMFxuLy8gICAgICAgICAgICAgICAgICAgQllURSB8IEFTQ0lJOiAgICAgICAgOVxuLy8gICAgICAgICAgICAgICAgICAgQllURSB8IE5PVF9BU0NJSTogICAgOFxuLy8gICBzdHJpbmcgcHJlZml4ICAgUEFSVElBTDogICAgICAgICAgICAgMlxuLy8gICBhcnJheSAgICAgICAgICAgQVJSQVk6ICAgICAgICAgICAgICAgNFxuLy9cbi8vIE9uZSBjYW4gdXNlIGJpdCBtYXNraW5nIHRvIGRpc2NyaW1pbmF0ZSB0aGVzZSBkaWZmZXJlbnQgY2FzZXM6XG4vLyAgIGtub3duX2VuY29kaW5nKHgpID0geCY4XG4vLyAgIGlzX2FzY2lpKHgpID0gICAgICAgeCYxXG4vLyAgIGtpbmQoeCkgPSAgICAgICAgICAgeCY2XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyX3JlcGVhdFxuZnVuY3Rpb24gY2FtbF9zdHJfcmVwZWF0KG4sIHMpIHtcbiAgaWYobiA9PSAwKSByZXR1cm4gXCJcIjtcbiAgaWYgKHMucmVwZWF0KSB7cmV0dXJuIHMucmVwZWF0KG4pO30gLy8gRUNNQXNjcmlwdCA2IGFuZCBGaXJlZm94IDI0K1xuICB2YXIgciA9IFwiXCIsIGwgPSAwO1xuICBmb3IoOzspIHtcbiAgICBpZiAobiAmIDEpIHIgKz0gcztcbiAgICBuID4+PSAxO1xuICAgIGlmIChuID09IDApIHJldHVybiByO1xuICAgIHMgKz0gcztcbiAgICBsKys7XG4gICAgaWYgKGwgPT0gOSkge1xuICAgICAgcy5zbGljZSgwLDEpOyAvLyBmbGF0dGVuIHRoZSBzdHJpbmdcbiAgICAgIC8vIHRoZW4sIHRoZSBmbGF0dGVuaW5nIG9mIHRoZSB3aG9sZSBzdHJpbmcgd2lsbCBiZSBmYXN0ZXIsXG4gICAgICAvLyBhcyBpdCB3aWxsIGJlIGNvbXBvc2VkIG9mIGxhcmdlciBwaWVjZXNcbiAgICB9XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdWJhcnJheV90b19qc2J5dGVzXG4vL1dlYWtkZWZcbi8vIFByZSBFQ01BU2NyaXB0IDUsIFthcHBseV0gd291bGQgbm90IHN1cHBvcnQgYXJyYXktbGlrZSBvYmplY3QuXG4vLyBJbiBzdWNoIHNldHVwLCBUeXBlZF9hcnJheSB3b3VsZCBiZSBpbXBsZW1lbnRlZCBhcyBwb2x5ZmlsbCwgYW5kIFtmLmFwcGx5XSB3b3VsZFxuLy8gZmFpbCBoZXJlLiBNYXJrIHRoZSBwcmltaXRpdmUgYXMgV2Vha2RlZiwgc28gdGhhdCBwZW9wbGUgY2FuIG92ZXJyaWRlIGl0IGVhc2lseS5cbmZ1bmN0aW9uIGNhbWxfc3ViYXJyYXlfdG9fanNieXRlcyAoYSwgaSwgbGVuKSB7XG4gIHZhciBmID0gU3RyaW5nLmZyb21DaGFyQ29kZTtcbiAgaWYgKGkgPT0gMCAmJiBsZW4gPD0gNDA5NiAmJiBsZW4gPT0gYS5sZW5ndGgpIHJldHVybiBmLmFwcGx5IChudWxsLCBhKTtcbiAgdmFyIHMgPSBcIlwiO1xuICBmb3IgKDsgMCA8IGxlbjsgaSArPSAxMDI0LGxlbi09MTAyNClcbiAgICBzICs9IGYuYXBwbHkgKG51bGwsIGEuc2xpY2UoaSxpICsgTWF0aC5taW4obGVuLCAxMDI0KSkpO1xuICByZXR1cm4gcztcbn1cblxuLy9Qcm92aWRlczogY2FtbF91dGY4X29mX3V0ZjE2XG5mdW5jdGlvbiBjYW1sX3V0Zjhfb2ZfdXRmMTYocykge1xuICBmb3IgKHZhciBiID0gXCJcIiwgdCA9IGIsIGMsIGQsIGkgPSAwLCBsID0gcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBjID0gcy5jaGFyQ29kZUF0KGkpO1xuICAgIGlmIChjIDwgMHg4MCkge1xuICAgICAgZm9yICh2YXIgaiA9IGkgKyAxOyAoaiA8IGwpICYmIChjID0gcy5jaGFyQ29kZUF0KGopKSA8IDB4ODA7IGorKyk7XG4gICAgICBpZiAoaiAtIGkgPiA1MTIpIHsgdC5zdWJzdHIoMCwgMSk7IGIgKz0gdDsgdCA9IFwiXCI7IGIgKz0gcy5zbGljZShpLCBqKSB9XG4gICAgICBlbHNlIHQgKz0gcy5zbGljZShpLCBqKTtcbiAgICAgIGlmIChqID09IGwpIGJyZWFrO1xuICAgICAgaSA9IGo7XG4gICAgfVxuICAgIGlmIChjIDwgMHg4MDApIHtcbiAgICAgIHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgweGMwIHwgKGMgPj4gNikpO1xuICAgICAgdCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ODAgfCAoYyAmIDB4M2YpKTtcbiAgICB9IGVsc2UgaWYgKGMgPCAweGQ4MDAgfHwgYyA+PSAweGRmZmYpIHtcbiAgICAgIHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgweGUwIHwgKGMgPj4gMTIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAgfCAoKGMgPj4gNikgJiAweDNmKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwIHwgKGMgJiAweDNmKSk7XG4gICAgfSBlbHNlIGlmIChjID49IDB4ZGJmZiB8fCBpICsgMSA9PSBsIHx8XG4gICAgICAgICAgICAgICAoZCA9IHMuY2hhckNvZGVBdChpICsgMSkpIDwgMHhkYzAwIHx8IGQgPiAweGRmZmYpIHtcbiAgICAgIC8vIFVubWF0Y2hlZCBzdXJyb2dhdGUgcGFpciwgcmVwbGFjZWQgYnkgXFx1ZmZmZCAocmVwbGFjZW1lbnQgY2hhcmFjdGVyKVxuICAgICAgdCArPSBcIlxceGVmXFx4YmZcXHhiZFwiO1xuICAgIH0gZWxzZSB7XG4gICAgICBpKys7XG4gICAgICBjID0gKGMgPDwgMTApICsgZCAtIDB4MzVmZGMwMDtcbiAgICAgIHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgweGYwIHwgKGMgPj4gMTgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAgfCAoKGMgPj4gMTIpICYgMHgzZiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCB8ICgoYyA+PiA2KSAmIDB4M2YpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAgfCAoYyAmIDB4M2YpKTtcbiAgICB9XG4gICAgaWYgKHQubGVuZ3RoID4gMTAyNCkge3Quc3Vic3RyKDAsIDEpOyBiICs9IHQ7IHQgPSBcIlwiO31cbiAgfVxuICByZXR1cm4gYit0O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3V0ZjE2X29mX3V0ZjhcbmZ1bmN0aW9uIGNhbWxfdXRmMTZfb2ZfdXRmOChzKSB7XG4gIGZvciAodmFyIGIgPSBcIlwiLCB0ID0gXCJcIiwgYywgYzEsIGMyLCB2LCBpID0gMCwgbCA9IHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgYzEgPSBzLmNoYXJDb2RlQXQoaSk7XG4gICAgaWYgKGMxIDwgMHg4MCkge1xuICAgICAgZm9yICh2YXIgaiA9IGkgKyAxOyAoaiA8IGwpICYmIChjMSA9IHMuY2hhckNvZGVBdChqKSkgPCAweDgwOyBqKyspO1xuICAgICAgaWYgKGogLSBpID4gNTEyKSB7IHQuc3Vic3RyKDAsIDEpOyBiICs9IHQ7IHQgPSBcIlwiOyBiICs9IHMuc2xpY2UoaSwgaikgfVxuICAgICAgZWxzZSB0ICs9IHMuc2xpY2UoaSwgaik7XG4gICAgICBpZiAoaiA9PSBsKSBicmVhaztcbiAgICAgIGkgPSBqO1xuICAgIH1cbiAgICB2ID0gMTtcbiAgICBpZiAoKCsraSA8IGwpICYmICgoKGMyID0gcy5jaGFyQ29kZUF0KGkpKSAmIC02NCkgPT0gMTI4KSkge1xuICAgICAgYyA9IGMyICsgKGMxIDw8IDYpO1xuICAgICAgaWYgKGMxIDwgMHhlMCkge1xuICAgICAgICB2ID0gYyAtIDB4MzA4MDtcbiAgICAgICAgaWYgKHYgPCAweDgwKSB2ID0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHYgPSAyO1xuICAgICAgICBpZiAoKCsraSA8IGwpICYmICgoKGMyID0gcy5jaGFyQ29kZUF0KGkpKSAmIC02NCkgPT0gMTI4KSkge1xuICAgICAgICAgIGMgPSBjMiArIChjIDw8IDYpO1xuICAgICAgICAgIGlmIChjMSA8IDB4ZjApIHtcbiAgICAgICAgICAgIHYgPSBjIC0gMHhlMjA4MDtcbiAgICAgICAgICAgIGlmICgodiA8IDB4ODAwKSB8fCAoKHYgPj0gMHhkN2ZmKSAmJiAodiA8IDB4ZTAwMCkpKSB2ID0gMjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdiA9IDM7XG4gICAgICAgICAgICBpZiAoKCsraSA8IGwpICYmICgoKGMyID0gcy5jaGFyQ29kZUF0KGkpKSAmIC02NCkgPT0gMTI4KSAmJlxuICAgICAgICAgICAgICAgIChjMSA8IDB4ZjUpKSB7XG4gICAgICAgICAgICAgIHYgPSBjMiAtIDB4M2M4MjA4MCArIChjIDw8IDYpO1xuICAgICAgICAgICAgICBpZiAodiA8IDB4MTAwMDAgfHwgdiA+IDB4MTBmZmZmKSB2ID0gMztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHYgPCA0KSB7IC8vIEludmFsaWQgc2VxdWVuY2VcbiAgICAgIGkgLT0gdjtcbiAgICAgIHQgKz0gXCJcXHVmZmZkXCI7XG4gICAgfSBlbHNlIGlmICh2ID4gMHhmZmZmKVxuICAgICAgdCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZDdjMCArICh2ID4+IDEwKSwgMHhkYzAwICsgKHYgJiAweDNGRikpXG4gICAgZWxzZVxuICAgICAgdCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKHYpO1xuICAgIGlmICh0Lmxlbmd0aCA+IDEwMjQpIHt0LnN1YnN0cigwLCAxKTsgYiArPSB0OyB0ID0gXCJcIjt9XG4gIH1cbiAgcmV0dXJuIGIrdDtcbn1cblxuLy9Qcm92aWRlczoganNvb19pc19hc2NpaVxuZnVuY3Rpb24ganNvb19pc19hc2NpaSAocykge1xuICAvLyBUaGUgcmVndWxhciBleHByZXNzaW9uIGdldHMgYmV0dGVyIGF0IGFyb3VuZCB0aGlzIHBvaW50IGZvciBhbGwgYnJvd3NlcnNcbiAgaWYgKHMubGVuZ3RoIDwgMjQpIHtcbiAgICAvLyBTcGlkZXJtb25rZXkgZ2V0cyBtdWNoIHNsb3dlciB3aGVuIHMubGVuZ3RoID49IDI0IChvbiA2NCBiaXQgYXJjaHMpXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzLmxlbmd0aDsgaSsrKSBpZiAocy5jaGFyQ29kZUF0KGkpID4gMTI3KSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gZWxzZVxuICAgIHJldHVybiAhL1teXFx4MDAtXFx4N2ZdLy50ZXN0KHMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQgbXV0YWJsZVxuZnVuY3Rpb24gY2FtbF9ieXRlc191bnNhZmVfZ2V0IChzLCBpKSB7XG4gIHN3aXRjaCAocy50ICYgNikge1xuICBkZWZhdWx0OiAvKiBQQVJUSUFMICovXG4gICAgaWYgKGkgPj0gcy5jLmxlbmd0aCkgcmV0dXJuIDA7XG4gIGNhc2UgMDogLyogQllURVMgKi9cbiAgICByZXR1cm4gcy5jLmNoYXJDb2RlQXQoaSk7XG4gIGNhc2UgNDogLyogQVJSQVkgKi9cbiAgICByZXR1cm4gcy5jW2ldXG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc191bnNhZmVfc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfdW5zYWZlX3NldCAocywgaSwgYykge1xuICAvLyBUaGUgT0NhbWwgY29tcGlsZXIgdXNlcyBDaGFyLnVuc2FmZV9jaHIgb24gaW50ZWdlcnMgbGFyZ2VyIHRoYW4gMjU1IVxuICBjICY9IDB4ZmY7XG4gIGlmIChzLnQgIT0gNCAvKiBBUlJBWSAqLykge1xuICAgIGlmIChpID09IHMuYy5sZW5ndGgpIHtcbiAgICAgIHMuYyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlIChjKTtcbiAgICAgIGlmIChpICsgMSA9PSBzLmwpIHMudCA9IDA7IC8qQllURVMgfCBVTktPV04qL1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIGNhbWxfY29udmVydF9ieXRlc190b19hcnJheSAocyk7XG4gIH1cbiAgcy5jW2ldID0gYztcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yICgpIHtcbiAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50IChcImluZGV4IG91dCBvZiBib3VuZHNcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfYm91bmRfZXJyb3Jcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9ieXRlc19ib3VuZF9lcnJvciAoKSB7XG4gIGNhbWxfaW52YWxpZF9hcmd1bWVudCAoXCJpbmRleCBvdXQgb2YgYm91bmRzXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19nZXRcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yLCBjYW1sX3N0cmluZ191bnNhZmVfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGhcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2dldCAocywgaSkge1xuICBpZiAoaSA+Pj4gMCA+PSBjYW1sX21sX3N0cmluZ19sZW5ndGgocykpIGNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yKCk7XG4gIHJldHVybiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IChzLCBpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfZ2V0MTZcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQsIGNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yXG4vL1JlcXVpcmVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGhcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2dldDE2KHMsaSkge1xuICBpZiAoaSA+Pj4gMCA+PSBjYW1sX21sX3N0cmluZ19sZW5ndGgocykgLSAxKSBjYW1sX3N0cmluZ19ib3VuZF9lcnJvcigpO1xuICB2YXIgYjEgPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IChzLCBpKSxcbiAgICAgIGIyID0gY2FtbF9zdHJpbmdfdW5zYWZlX2dldCAocywgaSArIDEpO1xuICByZXR1cm4gKGIyIDw8IDggfCBiMSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfZ2V0MTZcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfdW5zYWZlX2dldCwgY2FtbF9ieXRlc19ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9ieXRlc19nZXQxNihzLGkpIHtcbiAgaWYgKGkgPj4+IDAgPj0gcy5sIC0gMSkgY2FtbF9ieXRlc19ib3VuZF9lcnJvcigpO1xuICB2YXIgYjEgPSBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQgKHMsIGkpLFxuICAgICAgYjIgPSBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQgKHMsIGkgKyAxKTtcbiAgcmV0dXJuIChiMiA8PCA4IHwgYjEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19nZXQzMlxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfdW5zYWZlX2dldCwgY2FtbF9zdHJpbmdfYm91bmRfZXJyb3Jcbi8vUmVxdWlyZXM6IGNhbWxfbWxfc3RyaW5nX2xlbmd0aFxuZnVuY3Rpb24gY2FtbF9zdHJpbmdfZ2V0MzIocyxpKSB7XG4gIGlmIChpID4+PiAwID49IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSAtIDMpIGNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yKCk7XG4gIHZhciBiMSA9IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQgKHMsIGkpLFxuICAgICAgYjIgPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IChzLCBpICsgMSksXG4gICAgICBiMyA9IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQgKHMsIGkgKyAyKSxcbiAgICAgIGI0ID0gY2FtbF9zdHJpbmdfdW5zYWZlX2dldCAocywgaSArIDMpO1xuICByZXR1cm4gKGI0IDw8IDI0IHwgYjMgPDwgMTYgfCBiMiA8PCA4IHwgYjEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2dldDMyXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQsIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfZ2V0MzIocyxpKSB7XG4gIGlmIChpID4+PiAwID49IHMubCAtIDMpIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGIxID0gY2FtbF9ieXRlc191bnNhZmVfZ2V0IChzLCBpKSxcbiAgICAgIGIyID0gY2FtbF9ieXRlc191bnNhZmVfZ2V0IChzLCBpICsgMSksXG4gICAgICBiMyA9IGNhbWxfYnl0ZXNfdW5zYWZlX2dldCAocywgaSArIDIpLFxuICAgICAgYjQgPSBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQgKHMsIGkgKyAzKTtcbiAgcmV0dXJuIChiNCA8PCAyNCB8IGIzIDw8IDE2IHwgYjIgPDwgOCB8IGIxKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfZ2V0NjRcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQsIGNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGhcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2dldDY0KHMsaSkge1xuICBpZiAoaSA+Pj4gMCA+PSBjYW1sX21sX3N0cmluZ19sZW5ndGgocykgLSA3KSBjYW1sX3N0cmluZ19ib3VuZF9lcnJvcigpO1xuICB2YXIgYSA9IG5ldyBBcnJheSg4KTtcbiAgZm9yKHZhciBqID0gMDsgaiA8IDg7IGorKyl7XG4gICAgYVs3IC0gal0gPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IChzLCBpICsgaik7XG4gIH1cbiAgcmV0dXJuIGNhbWxfaW50NjRfb2ZfYnl0ZXMoYSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfZ2V0NjRcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfdW5zYWZlX2dldCwgY2FtbF9ieXRlc19ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZl9ieXRlc1xuZnVuY3Rpb24gY2FtbF9ieXRlc19nZXQ2NChzLGkpIHtcbiAgaWYgKGkgPj4+IDAgPj0gcy5sIC0gNykgY2FtbF9ieXRlc19ib3VuZF9lcnJvcigpO1xuICB2YXIgYSA9IG5ldyBBcnJheSg4KTtcbiAgZm9yKHZhciBqID0gMDsgaiA8IDg7IGorKyl7XG4gICAgYVs3IC0gal0gPSBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQgKHMsIGkgKyBqKTtcbiAgfVxuICByZXR1cm4gY2FtbF9pbnQ2NF9vZl9ieXRlcyhhKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19nZXRcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IsIGNhbWxfYnl0ZXNfdW5zYWZlX2dldFxuZnVuY3Rpb24gY2FtbF9ieXRlc19nZXQgKHMsIGkpIHtcbiAgaWYgKGkgPj4+IDAgPj0gcy5sKSBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yKCk7XG4gIHJldHVybiBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQgKHMsIGkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19zZXRcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfc2V0IChzLCBpLCBjKSB7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3N0cmluZ19zZXRcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3NldFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfdW5zYWZlX3NldCwgY2FtbF9zdHJpbmdfYm91bmRfZXJyb3Jcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3NldCAocywgaSwgYykge1xuICBpZiAoaSA+Pj4gMCA+PSBzLmwpIGNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yKCk7XG4gIHJldHVybiBjYW1sX3N0cmluZ191bnNhZmVfc2V0IChzLCBpLCBjKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19zZXQxNlxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19ib3VuZF9lcnJvciwgY2FtbF9ieXRlc191bnNhZmVfc2V0XG5mdW5jdGlvbiBjYW1sX2J5dGVzX3NldDE2KHMsaSxpMTYpe1xuICBpZiAoaSA+Pj4gMCA+PSBzLmwgLSAxKSBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yKCk7XG4gIHZhciBiMiA9IDB4RkYgJiBpMTYgPj4gOCxcbiAgICAgIGIxID0gMHhGRiAmIGkxNjtcbiAgY2FtbF9ieXRlc191bnNhZmVfc2V0IChzLCBpICsgMCwgYjEpO1xuICBjYW1sX2J5dGVzX3Vuc2FmZV9zZXQgKHMsIGkgKyAxLCBiMik7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3NldDE2XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3NldDE2KHMsaSxpMTYpe1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9zdHJpbmdfc2V0MTZcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3NldDE2XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX3NldDE2XG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19zZXQxNihzLGksaTE2KXtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfc2V0MTYocyxpLGkxNik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfc2V0MzJcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IsIGNhbWxfYnl0ZXNfdW5zYWZlX3NldFxuZnVuY3Rpb24gY2FtbF9ieXRlc19zZXQzMihzLGksaTMyKXtcbiAgaWYgKGkgPj4+IDAgPj0gcy5sIC0gMykgY2FtbF9ieXRlc19ib3VuZF9lcnJvcigpO1xuICB2YXIgYjQgPSAweEZGICYgaTMyID4+IDI0LFxuICAgICAgYjMgPSAweEZGICYgaTMyID4+IDE2LFxuICAgICAgYjIgPSAweEZGICYgaTMyID4+IDgsXG4gICAgICBiMSA9IDB4RkYgJiBpMzI7XG4gIGNhbWxfYnl0ZXNfdW5zYWZlX3NldCAocywgaSArIDAsIGIxKTtcbiAgY2FtbF9ieXRlc191bnNhZmVfc2V0IChzLCBpICsgMSwgYjIpO1xuICBjYW1sX2J5dGVzX3Vuc2FmZV9zZXQgKHMsIGkgKyAyLCBiMyk7XG4gIGNhbWxfYnl0ZXNfdW5zYWZlX3NldCAocywgaSArIDMsIGI0KTtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfc2V0MzJcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfc2V0MzIocyxpLGkzMil7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3N0cmluZ19zZXQzMlwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfc2V0MzJcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfc2V0MzJcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3NldDMyKHMsaSxpMzIpe1xuICByZXR1cm4gY2FtbF9ieXRlc19zZXQzMihzLGksaTMyKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19zZXQ2NFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19ib3VuZF9lcnJvciwgY2FtbF9ieXRlc191bnNhZmVfc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X3RvX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2J5dGVzX3NldDY0KHMsaSxpNjQpe1xuICBpZiAoaSA+Pj4gMCA+PSBzLmwgLSA3KSBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yKCk7XG4gIHZhciBhID0gY2FtbF9pbnQ2NF90b19ieXRlcyhpNjQpO1xuICBmb3IodmFyIGogPSAwOyBqIDwgODsgaisrKSB7XG4gICAgY2FtbF9ieXRlc191bnNhZmVfc2V0IChzLCBpICsgNyAtIGosIGFbal0pO1xuICB9XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3NldDY0XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3NldDY0KHMsaSxpNjQpe1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9zdHJpbmdfc2V0NjRcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3NldDY0XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX3NldDY0XG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19zZXQ2NChzLGksaTY0KXtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfc2V0NjQocyxpLGk2NCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yLCBjYW1sX2J5dGVzX3Vuc2FmZV9zZXRcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfc2V0IChzLCBpLCBjKSB7XG4gIGlmIChpID4+PiAwID49IHMubCkgY2FtbF9ieXRlc19ib3VuZF9lcnJvcigpO1xuICByZXR1cm4gY2FtbF9ieXRlc191bnNhZmVfc2V0IChzLCBpLCBjKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19vZl91dGYxNl9qc3N0cmluZ1xuLy9SZXF1aXJlczoganNvb19pc19hc2NpaSwgY2FtbF91dGY4X29mX3V0ZjE2LCBNbEJ5dGVzXG5mdW5jdGlvbiBjYW1sX2J5dGVzX29mX3V0ZjE2X2pzc3RyaW5nIChzKSB7XG4gIHZhciB0YWcgPSA5IC8qIEJZVEVTIHwgQVNDSUkgKi87XG4gIGlmICghanNvb19pc19hc2NpaShzKSlcbiAgICB0YWcgPSA4IC8qIEJZVEVTIHwgTk9UX0FTQ0lJICovLCBzID0gY2FtbF91dGY4X29mX3V0ZjE2KHMpO1xuICByZXR1cm4gbmV3IE1sQnl0ZXModGFnLCBzLCBzLmxlbmd0aCk7XG59XG5cblxuLy9Qcm92aWRlczogTWxCeXRlc1xuLy9SZXF1aXJlczogY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcywganNvb19pc19hc2NpaSwgY2FtbF91dGYxNl9vZl91dGY4XG5mdW5jdGlvbiBNbEJ5dGVzICh0YWcsIGNvbnRlbnRzLCBsZW5ndGgpIHtcbiAgdGhpcy50PXRhZzsgdGhpcy5jPWNvbnRlbnRzOyB0aGlzLmw9bGVuZ3RoO1xufVxuTWxCeXRlcy5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpe1xuICBzd2l0Y2ggKHRoaXMudCkge1xuICBjYXNlIDk6IC8qQllURVMgfCBBU0NJSSovXG4gICAgcmV0dXJuIHRoaXMuYztcbiAgZGVmYXVsdDpcbiAgICBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHRoaXMpO1xuICBjYXNlIDA6IC8qQllURVMgfCBVTktPV04qL1xuICAgIGlmIChqc29vX2lzX2FzY2lpKHRoaXMuYykpIHtcbiAgICAgIHRoaXMudCA9IDk7IC8qQllURVMgfCBBU0NJSSovXG4gICAgICByZXR1cm4gdGhpcy5jO1xuICAgIH1cbiAgICB0aGlzLnQgPSA4OyAvKkJZVEVTIHwgTk9UX0FTQ0lJKi9cbiAgY2FzZSA4OiAvKkJZVEVTIHwgTk9UX0FTQ0lJKi9cbiAgICByZXR1cm4gdGhpcy5jO1xuICB9XG59O1xuTWxCeXRlcy5wcm90b3R5cGUudG9VdGYxNiA9IGZ1bmN0aW9uICgpe1xuICB2YXIgciA9IHRoaXMudG9TdHJpbmcoKTtcbiAgaWYodGhpcy50ID09IDkpIHJldHVybiByXG4gIHJldHVybiBjYW1sX3V0ZjE2X29mX3V0Zjgocik7XG59XG5NbEJ5dGVzLnByb3RvdHlwZS5zbGljZSA9IGZ1bmN0aW9uICgpe1xuICB2YXIgY29udGVudCA9IHRoaXMudCA9PSA0ID8gdGhpcy5jLnNsaWNlKCkgOiB0aGlzLmM7XG4gIHJldHVybiBuZXcgTWxCeXRlcyh0aGlzLnQsY29udGVudCx0aGlzLmwpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX3N0cl9yZXBlYXQsIGNhbWxfc3ViYXJyYXlfdG9fanNieXRlc1xuZnVuY3Rpb24gY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyAocykge1xuICAvKiBBc3N1bWVzIG5vdCBCWVRFUyAqL1xuICBpZiAocy50ID09IDIgLyogUEFSVElBTCAqLylcbiAgICBzLmMgKz0gY2FtbF9zdHJfcmVwZWF0KHMubCAtIHMuYy5sZW5ndGgsICdcXDAnKVxuICBlbHNlXG4gICAgcy5jID0gY2FtbF9zdWJhcnJheV90b19qc2J5dGVzIChzLmMsIDAsIHMuYy5sZW5ndGgpO1xuICBzLnQgPSAwOyAvKkJZVEVTIHwgVU5LT1dOKi9cbn1cblxuLy9Qcm92aWRlczogY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5XG5mdW5jdGlvbiBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXkgKHMpIHtcbiAgLyogQXNzdW1lcyBub3QgQVJSQVkgKi9cbiAgdmFyIGEgPSBuZXcgVWludDhBcnJheShzLmwpO1xuICB2YXIgYiA9IHMuYywgbCA9IGIubGVuZ3RoLCBpID0gMDtcbiAgZm9yICg7IGkgPCBsOyBpKyspIGFbaV0gPSBiLmNoYXJDb2RlQXQoaSk7XG4gIGZvciAobCA9IHMubDsgaSA8IGw7IGkrKykgYVtpXSA9IDA7XG4gIHMuYyA9IGE7XG4gIHMudCA9IDQ7IC8qIEFSUkFZICovXG4gIHJldHVybiBhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfY29udmVydF9ieXRlc190b19hcnJheVxuZnVuY3Rpb24gY2FtbF91aW50OF9hcnJheV9vZl9ieXRlcyAocykge1xuICBpZiAocy50ICE9IDQgLyogQVJSQVkgKi8pIGNhbWxfY29udmVydF9ieXRlc190b19hcnJheShzKTtcbiAgcmV0dXJuIHMuYztcbn1cblxuLy9Qcm92aWRlczogY2FtbF91aW50OF9hcnJheV9vZl9zdHJpbmcgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGgsIGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXRcbmZ1bmN0aW9uIGNhbWxfdWludDhfYXJyYXlfb2Zfc3RyaW5nIChzKSB7XG4gIHZhciBsID0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpO1xuICB2YXIgYSA9IG5ldyBBcnJheShsKTtcbiAgdmFyIGkgPSAwO1xuICBmb3IgKDsgaSA8IGw7IGkrKykgYVtpXSA9IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQocyxpKTtcbiAgcmV0dXJuIGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY3JlYXRlX3N0cmluZyBjb25zdFxuLy9SZXF1aXJlczogTWxCeXRlcywgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2NyZWF0ZV9zdHJpbmcobGVuKSB7XG4gIGlmKGxlbiA8IDApIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlN0cmluZy5jcmVhdGVcIik7XG4gIHJldHVybiBuZXcgTWxCeXRlcyhsZW4/Mjo5LFwiXCIsbGVuKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jcmVhdGVfc3RyaW5nIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9jcmVhdGVfc3RyaW5nKGxlbikge1xuICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJTdHJpbmcuY3JlYXRlXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NyZWF0ZV9ieXRlcyBjb25zdFxuLy9SZXF1aXJlczogTWxCeXRlcyxjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfY3JlYXRlX2J5dGVzKGxlbikge1xuICBpZiAobGVuIDwgMCkgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQnl0ZXMuY3JlYXRlXCIpO1xuICByZXR1cm4gbmV3IE1sQnl0ZXMobGVuPzI6OSxcIlwiLGxlbik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX29mX2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX29mX2FycmF5IChhKSB7XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKGNhbWxfc3ViYXJyYXlfdG9fanNieXRlcyhhLDAsYS5sZW5ndGgpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19vZl9hcnJheVxuLy9SZXF1aXJlczogTWxCeXRlc1xuZnVuY3Rpb24gY2FtbF9ieXRlc19vZl9hcnJheSAoYSkge1xuICBpZighIChhIGluc3RhbmNlb2YgVWludDhBcnJheSkpIHtcbiAgICBhID0gbmV3IFVpbnQ4QXJyYXkoYSk7XG4gIH1cbiAgcmV0dXJuIG5ldyBNbEJ5dGVzKDQsYSxhLmxlbmd0aCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfY29tcGFyZSBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2J5dGVzX2NvbXBhcmUoczEsIHMyKSB7XG4gIChzMS50ICYgNikgJiYgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzMSk7XG4gIChzMi50ICYgNikgJiYgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzMik7XG4gIHJldHVybiAoczEuYyA8IHMyLmMpPy0xOihzMS5jID4gczIuYyk/MTowO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfZXF1YWwgbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlc1xuZnVuY3Rpb24gY2FtbF9ieXRlc19lcXVhbChzMSwgczIpIHtcbiAgaWYoczEgPT09IHMyKSByZXR1cm4gMTtcbiAgKHMxLnQgJiA2KSAmJiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMxKTtcbiAgKHMyLnQgJiA2KSAmJiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMyKTtcbiAgcmV0dXJuIChzMS5jID09IHMyLmMpPzE6MDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfbm90ZXF1YWwgbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfZXF1YWxcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX25vdGVxdWFsKHMxLCBzMikgeyByZXR1cm4gMS1jYW1sX3N0cmluZ19lcXVhbChzMSwgczIpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfbm90ZXF1YWwgbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19lcXVhbFxuZnVuY3Rpb24gY2FtbF9ieXRlc19ub3RlcXVhbChzMSwgczIpIHsgcmV0dXJuIDEtY2FtbF9ieXRlc19lcXVhbChzMSwgczIpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfbGVzc2VxdWFsIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfbGVzc2VxdWFsKHMxLCBzMikge1xuICAoczEudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMoczEpO1xuICAoczIudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMoczIpO1xuICByZXR1cm4gKHMxLmMgPD0gczIuYyk/MTowO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2xlc3N0aGFuIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfbGVzc3RoYW4oczEsIHMyKSB7XG4gIChzMS50ICYgNikgJiYgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzMSk7XG4gIChzMi50ICYgNikgJiYgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzMik7XG4gIHJldHVybiAoczEuYyA8IHMyLmMpPzE6MDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfZ3JlYXRlcmVxdWFsXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19sZXNzZXF1YWxcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2dyZWF0ZXJlcXVhbChzMSwgczIpIHtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX2xlc3NlcXVhbChzMixzMSk7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2dyZWF0ZXJlcXVhbFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19sZXNzZXF1YWxcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfZ3JlYXRlcmVxdWFsKHMxLCBzMikge1xuICByZXR1cm4gY2FtbF9ieXRlc19sZXNzZXF1YWwoczIsczEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19ncmVhdGVydGhhblxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfbGVzc3RoYW5cbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2dyZWF0ZXJ0aGFuKHMxLCBzMikge1xuICByZXR1cm4gY2FtbF9zdHJpbmdfbGVzc3RoYW4oczIsIHMxKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19ncmVhdGVydGhhblxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19sZXNzdGhhblxuZnVuY3Rpb24gY2FtbF9ieXRlc19ncmVhdGVydGhhbihzMSwgczIpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfbGVzc3RoYW4oczIsIHMxKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9maWxsX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX3N0cl9yZXBlYXQsIGNhbWxfY29udmVydF9ieXRlc190b19hcnJheVxuLy9BbGlhczogY2FtbF9maWxsX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9maWxsX2J5dGVzKHMsIGksIGwsIGMpIHtcbiAgaWYgKGwgPiAwKSB7XG4gICAgaWYgKGkgPT0gMCAmJiAobCA+PSBzLmwgfHwgKHMudCA9PSAyIC8qIFBBUlRJQUwgKi8gJiYgbCA+PSBzLmMubGVuZ3RoKSkpIHtcbiAgICAgIGlmIChjID09IDApIHtcbiAgICAgICAgcy5jID0gXCJcIjtcbiAgICAgICAgcy50ID0gMjsgLyogUEFSVElBTCAqL1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcy5jID0gY2FtbF9zdHJfcmVwZWF0IChsLCBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpKTtcbiAgICAgICAgcy50ID0gKGwgPT0gcy5sKT8wIC8qIEJZVEVTIHwgVU5LT1dOICovIDoyOyAvKiBQQVJUSUFMICovXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChzLnQgIT0gNCAvKiBBUlJBWSAqLykgY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5KHMpO1xuICAgICAgZm9yIChsICs9IGk7IGkgPCBsOyBpKyspIHMuY1tpXSA9IGM7XG4gICAgfVxuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JsaXRfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfc3ViYXJyYXlfdG9fanNieXRlcywgY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5XG5mdW5jdGlvbiBjYW1sX2JsaXRfYnl0ZXMoczEsIGkxLCBzMiwgaTIsIGxlbikge1xuICBpZiAobGVuID09IDApIHJldHVybiAwO1xuICBpZiAoKGkyID09IDApICYmXG4gICAgICAobGVuID49IHMyLmwgfHwgKHMyLnQgPT0gMiAvKiBQQVJUSUFMICovICYmIGxlbiA+PSBzMi5jLmxlbmd0aCkpKSB7XG4gICAgczIuYyA9IChzMS50ID09IDQgLyogQVJSQVkgKi8pP1xuICAgICAgY2FtbF9zdWJhcnJheV90b19qc2J5dGVzKHMxLmMsIGkxLCBsZW4pOlxuICAgICAgKGkxID09IDAgJiYgczEuYy5sZW5ndGggPT0gbGVuKT9zMS5jOnMxLmMuc3Vic3RyKGkxLCBsZW4pO1xuICAgIHMyLnQgPSAoczIuYy5sZW5ndGggPT0gczIubCk/MCAvKiBCWVRFUyB8IFVOS09XTiAqLyA6MjsgLyogUEFSVElBTCAqL1xuICB9IGVsc2UgaWYgKHMyLnQgPT0gMiAvKiBQQVJUSUFMICovICYmIGkyID09IHMyLmMubGVuZ3RoKSB7XG4gICAgczIuYyArPSAoczEudCA9PSA0IC8qIEFSUkFZICovKT9cbiAgICAgIGNhbWxfc3ViYXJyYXlfdG9fanNieXRlcyhzMS5jLCBpMSwgbGVuKTpcbiAgICAgIChpMSA9PSAwICYmIHMxLmMubGVuZ3RoID09IGxlbik/czEuYzpzMS5jLnN1YnN0cihpMSwgbGVuKTtcbiAgICBzMi50ID0gKHMyLmMubGVuZ3RoID09IHMyLmwpPzAgLyogQllURVMgfCBVTktPV04gKi8gOjI7IC8qIFBBUlRJQUwgKi9cbiAgfSBlbHNlIHtcbiAgICBpZiAoczIudCAhPSA0IC8qIEFSUkFZICovKSBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXkoczIpO1xuICAgIHZhciBjMSA9IHMxLmMsIGMyID0gczIuYztcbiAgICBpZiAoczEudCA9PSA0IC8qIEFSUkFZICovKSB7XG4gICAgICBpZiAoaTIgPD0gaTEpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgYzIgW2kyICsgaV0gPSBjMSBbaTEgKyBpXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAodmFyIGkgPSBsZW4gLSAxOyBpID49IDA7IGktLSkgYzIgW2kyICsgaV0gPSBjMSBbaTEgKyBpXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGwgPSBNYXRoLm1pbiAobGVuLCBjMS5sZW5ndGggLSBpMSk7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGw7IGkrKykgYzIgW2kyICsgaV0gPSBjMS5jaGFyQ29kZUF0KGkxICsgaSk7XG4gICAgICBmb3IgKDsgaSA8IGxlbjsgaSsrKSBjMiBbaTIgKyBpXSA9IDA7XG4gICAgfVxuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JsaXRfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2JsaXRfYnl0ZXMsIGNhbWxfYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2JsaXRfc3RyaW5nKGEsYixjLGQsZSkge1xuICBjYW1sX2JsaXRfYnl0ZXMoY2FtbF9ieXRlc19vZl9zdHJpbmcoYSksYixjLGQsZSk7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfYnl0ZXNfbGVuZ3RoIGNvbnN0XG5mdW5jdGlvbiBjYW1sX21sX2J5dGVzX2xlbmd0aChzKSB7IHJldHVybiBzLmwgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IGNvbnN0XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQgKHMsIGkpIHtcbiAgcmV0dXJuIHMuY2hhckNvZGVBdChpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfdW5zYWZlX3NldFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ191bnNhZmVfc2V0IChzLCBpLCBjKSB7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3N0cmluZ191bnNhZmVfc2V0XCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGggY29uc3Rcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpIHtcbiAgcmV0dXJuIHMubGVuZ3RoXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2NvbXBhcmUgY29uc3Rcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfY29tcGFyZShzMSwgczIpIHtcbiAgcmV0dXJuIChzMSA8IHMyKT8tMTooczEgPiBzMik/MTowO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19lcXVhbCBjb25zdFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19lcXVhbChzMSwgczIpIHtcbiAgaWYoczEgPT09IHMyKSByZXR1cm4gMTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2xlc3NlcXVhbCBjb25zdFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19sZXNzZXF1YWwoczEsIHMyKSB7XG4gIHJldHVybiAoczEgPD0gczIpPzE6MDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfbGVzc3RoYW4gY29uc3Rcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfbGVzc3RoYW4oczEsIHMyKSB7XG4gIHJldHVybiAoczEgPCBzMik/MTowO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19vZl9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcywgY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19vZl9ieXRlcyhzKSB7XG4gIChzLnQgJiA2KSAmJiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMpO1xuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhzLmMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX29mX3N0cmluZyBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19vZl9qc2J5dGVzLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfb2Zfc3RyaW5nKHMpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfb2ZfanNieXRlcyhjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHMpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlcyBjb25zdFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHgpIHsgcmV0dXJuIHggfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nIGNvbnN0XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNieXRlc19vZl9zdHJpbmcoeCkgeyByZXR1cm4geCB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nIGNvbnN0XG4vL1JlcXVpcmVzOiBqc29vX2lzX2FzY2lpLCBjYW1sX3V0ZjE2X29mX3V0Zjhcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcocykge1xuICBpZihqc29vX2lzX2FzY2lpKHMpKVxuICAgIHJldHVybiBzO1xuICByZXR1cm4gY2FtbF91dGYxNl9vZl91dGY4KHMpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nIGNvbnN0XG4vL1JlcXVpcmVzOiBqc29vX2lzX2FzY2lpLCBjYW1sX3V0Zjhfb2ZfdXRmMTYsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcgKHMpIHtcbiAgaWYgKGpzb29faXNfYXNjaWkocykpXG4gICAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMocylcbiAgZWxzZSByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhjYW1sX3V0Zjhfb2ZfdXRmMTYocykpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX29mX2pzYnl0ZXMgY29uc3Rcbi8vUmVxdWlyZXM6IE1sQnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfb2ZfanNieXRlcyhzKSB7IHJldHVybiBuZXcgTWxCeXRlcygwLHMscy5sZW5ndGgpOyB9XG5cblxuLy8gVGhlIHNlY3Rpb24gYmVsb3cgc2hvdWxkIGJlIHVzZWQgd2hlbiB1c2UtanMtc3RyaW5nPWZhbHNlXG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfdW5zYWZlX2dldFxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfdW5zYWZlX2dldCAocywgaSkge1xuICByZXR1cm4gY2FtbF9ieXRlc191bnNhZmVfZ2V0KHMsaSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3Vuc2FmZV9zZXRcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfdW5zYWZlX3NldFxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfdW5zYWZlX3NldCAocywgaSwgYykge1xuICByZXR1cm4gY2FtbF9ieXRlc191bnNhZmVfc2V0KHMsaSxjKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX21sX2J5dGVzX2xlbmd0aFxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpIHtcbiAgcmV0dXJuIGNhbWxfbWxfYnl0ZXNfbGVuZ3RoKHMpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2NvbXBhcmVcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfY29tcGFyZVxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfY29tcGFyZShzMSwgczIpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfY29tcGFyZShzMSxzMilcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfZXF1YWxcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfZXF1YWxcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2VxdWFsKHMxLCBzMikge1xuICByZXR1cm4gY2FtbF9ieXRlc19lcXVhbChzMSxzMilcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfbGVzc2VxdWFsXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2xlc3NlcXVhbFxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfbGVzc2VxdWFsKHMxLCBzMikge1xuICByZXR1cm4gY2FtbF9ieXRlc19sZXNzZXF1YWwoczEsczIpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2xlc3N0aGFuXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2xlc3N0aGFuXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19sZXNzdGhhbihzMSwgczIpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfbGVzc3RoYW4oczEsczIpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX29mX2J5dGVzXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19vZl9ieXRlcyhzKSB7IHJldHVybiBzIH1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19vZl9zdHJpbmcgY29uc3Rcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfb2Zfc3RyaW5nKHMpIHsgcmV0dXJuIHMgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX29mX2pzYnl0ZXNcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMocykgeyByZXR1cm4gY2FtbF9ieXRlc19vZl9qc2J5dGVzKHMpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmcgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXNcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNieXRlc19vZl9zdHJpbmcocykge1xuICAocy50ICYgNikgJiYgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzKTtcbiAgcmV0dXJuIHMuYyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nIG11dGFibGUgKGNvbnN0KVxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcocyl7XG4gIHJldHVybiBzLnRvVXRmMTYoKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9ieXRlc19vZl91dGYxNl9qc3N0cmluZ1xuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcgKHMpIHtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfb2ZfdXRmMTZfanNzdHJpbmcocyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaXNfbWxfYnl0ZXNcbi8vUmVxdWlyZXM6IE1sQnl0ZXNcbmZ1bmN0aW9uIGNhbWxfaXNfbWxfYnl0ZXMocykge1xuICByZXR1cm4gKHMgaW5zdGFuY2VvZiBNbEJ5dGVzKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9ieXRlc19jb250ZW50XG4vL1JlcXVpcmVzOiBNbEJ5dGVzLCBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzXG5mdW5jdGlvbiBjYW1sX21sX2J5dGVzX2NvbnRlbnQocykge1xuICBzd2l0Y2ggKHMudCAmIDYpIHtcbiAgZGVmYXVsdDogLyogUEFSVElBTCAqL1xuICAgIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMocyk7XG4gIGNhc2UgMDogLyogQllURVMgKi9cbiAgICByZXR1cm4gcy5jO1xuICBjYXNlIDQ6XG4gICAgcmV0dXJuIHMuY1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaXNfbWxfc3RyaW5nXG4vL1JlcXVpcmVzOiBqc29vX2lzX2FzY2lpXG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfaXNfbWxfc3RyaW5nKHMpIHtcbiAgcmV0dXJuICh0eXBlb2YgcyA9PT0gXCJzdHJpbmdcIiAmJiAhL1teXFx4MDAtXFx4ZmZdLy50ZXN0KHMpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pc19tbF9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfaXNfbWxfYnl0ZXNcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfaXNfbWxfc3RyaW5nKHMpIHtcbiAgcmV0dXJuIGNhbWxfaXNfbWxfYnl0ZXMocyk7XG59XG5cbi8vIFRoZSBmdW5jdGlvbnMgYmVsb3cgYXJlIGRlcHJlY2F0ZWRcblxuLy9Qcm92aWRlczogY2FtbF9qc190b19ieXRlX3N0cmluZyBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9qc190b19ieXRlX3N0cmluZyhzKSB7IHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHMpIH1cblxuLy9Qcm92aWRlczogY2FtbF9uZXdfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX25ld19zdHJpbmcgKHMpIHsgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMocykgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2Zyb21fc3RyaW5nIG11dGFibGUgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNfZnJvbV9zdHJpbmcocykge1xuICByZXR1cm4gY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcocylcbn1cblxuLy9Qcm92aWRlczogY2FtbF90b19qc19zdHJpbmcgbXV0YWJsZSAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF90b19qc19zdHJpbmcocykge1xuICByZXR1cm4gY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcocylcbn1cblxuLy9Qcm92aWRlczogY2FtbF9qc190b19zdHJpbmcgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzX3RvX3N0cmluZyAocykge1xuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcocyk7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9hcnJheV9vZl9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfdWludDhfYXJyYXlfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2FycmF5X29mX3N0cmluZyh4KSB7IHJldHVybiBjYW1sX3VpbnQ4X2FycmF5X29mX3N0cmluZyh4KSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfYXJyYXlfb2ZfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYXJyYXlfb2ZfYnl0ZXMoeCkgeyByZXR1cm4gY2FtbF91aW50OF9hcnJheV9vZl9ieXRlcyh4KSB9XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1JhaXNlIGV4Y2VwdGlvblxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JhaXNlX2NvbnN0YW50IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfcmFpc2VfY29uc3RhbnQgKHRhZykgeyB0aHJvdyB0YWc7IH1cblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV93aXRoX2FyZyAoY29uc3QsIG11dGFibGUpXG4vL1JlcXVpcmVzOiBjYW1sX21heWJlX2F0dGFjaF9iYWNrdHJhY2VcbmZ1bmN0aW9uIGNhbWxfcmFpc2Vfd2l0aF9hcmcgKHRhZywgYXJnKSB7IHRocm93IGNhbWxfbWF5YmVfYXR0YWNoX2JhY2t0cmFjZShbMCwgdGFnLCBhcmddKTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JhaXNlX3dpdGhfYXJncyAoY29uc3QsIG11dGFibGUpXG4vL1JlcXVpcmVzOiBjYW1sX21heWJlX2F0dGFjaF9iYWNrdHJhY2VcbmZ1bmN0aW9uIGNhbWxfcmFpc2Vfd2l0aF9hcmdzICh0YWcsIGFyZ3MpIHsgdGhyb3cgY2FtbF9tYXliZV9hdHRhY2hfYmFja3RyYWNlKFswLCB0YWddLmNvbmNhdChhcmdzKSk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV93aXRoX3N0cmluZyAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV93aXRoX2FyZywgY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9yYWlzZV93aXRoX3N0cmluZyAodGFnLCBtc2cpIHtcbiAgY2FtbF9yYWlzZV93aXRoX2FyZyAodGFnLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKG1zZykpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ZhaWx3aXRoIChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfd2l0aF9zdHJpbmcsIGNhbWxfZ2xvYmFsX2RhdGEsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfZmFpbHdpdGggKG1zZykge1xuICBpZighY2FtbF9nbG9iYWxfZGF0YS5GYWlsdXJlKVxuICAgIGNhbWxfZ2xvYmFsX2RhdGEuRmFpbHVyZT1bMjQ4LGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoXCJGYWlsdXJlXCIpLC0zXTtcbiAgY2FtbF9yYWlzZV93aXRoX3N0cmluZyhjYW1sX2dsb2JhbF9kYXRhLkZhaWx1cmUsIG1zZyk7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfd2l0aF9zdHJpbmcsIGNhbWxfZ2xvYmFsX2RhdGFcbmZ1bmN0aW9uIGNhbWxfaW52YWxpZF9hcmd1bWVudCAobXNnKSB7XG4gIGNhbWxfcmFpc2Vfd2l0aF9zdHJpbmcoY2FtbF9nbG9iYWxfZGF0YS5JbnZhbGlkX2FyZ3VtZW50LCBtc2cpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JhaXNlX2VuZF9vZl9maWxlXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX2NvbnN0YW50LCBjYW1sX2dsb2JhbF9kYXRhXG5mdW5jdGlvbiBjYW1sX3JhaXNlX2VuZF9vZl9maWxlICgpIHtcbiAgY2FtbF9yYWlzZV9jb25zdGFudChjYW1sX2dsb2JhbF9kYXRhLkVuZF9vZl9maWxlKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV96ZXJvX2RpdmlkZVxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9jb25zdGFudCwgY2FtbF9nbG9iYWxfZGF0YVxuZnVuY3Rpb24gY2FtbF9yYWlzZV96ZXJvX2RpdmlkZSAoKSB7XG4gIGNhbWxfcmFpc2VfY29uc3RhbnQoY2FtbF9nbG9iYWxfZGF0YS5EaXZpc2lvbl9ieV96ZXJvKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV9ub3RfZm91bmRcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2VfY29uc3RhbnQsIGNhbWxfZ2xvYmFsX2RhdGFcbmZ1bmN0aW9uIGNhbWxfcmFpc2Vfbm90X2ZvdW5kICgpIHtcbiAgY2FtbF9yYWlzZV9jb25zdGFudChjYW1sX2dsb2JhbF9kYXRhLk5vdF9mb3VuZCk7IH1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IgKCkge1xuICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJpbmRleCBvdXQgb2YgYm91bmRzXCIpO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUHJvdmlkZXM6IGNhbWxfY2FsbF9nZW4gKGNvbnN0LCBzaGFsbG93KVxuLy9JZjogIWVmZmVjdHNcbi8vV2Vha2RlZlxuZnVuY3Rpb24gY2FtbF9jYWxsX2dlbihmLCBhcmdzKSB7XG4gIHZhciBuID0gKGYubCA+PSAwKT9mLmw6KGYubCA9IGYubGVuZ3RoKTtcbiAgdmFyIGFyZ3NMZW4gPSBhcmdzLmxlbmd0aDtcbiAgdmFyIGQgPSBuIC0gYXJnc0xlbjtcbiAgaWYgKGQgPT0gMClcbiAgICByZXR1cm4gZi5hcHBseShudWxsLCBhcmdzKTtcbiAgZWxzZSBpZiAoZCA8IDApIHtcbiAgICB2YXIgZyA9IGYuYXBwbHkobnVsbCxhcmdzLnNsaWNlKDAsbikpO1xuICAgIGlmKHR5cGVvZiBnICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBnO1xuICAgIHJldHVybiBjYW1sX2NhbGxfZ2VuKGcsYXJncy5zbGljZShuKSk7XG4gIH1cbiAgZWxzZSB7XG4gICAgc3dpdGNoIChkKSB7XG4gICAgY2FzZSAxOiB7XG4gICAgICB2YXIgZyA9IGZ1bmN0aW9uICh4KXtcbiAgICAgICAgdmFyIG5hcmdzID0gbmV3IEFycmF5KGFyZ3NMZW4gKyAxKTtcbiAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IGFyZ3NMZW47IGkrKyApIG5hcmdzW2ldID0gYXJnc1tpXTtcbiAgICAgICAgbmFyZ3NbYXJnc0xlbl0gPSB4O1xuICAgICAgICByZXR1cm4gZi5hcHBseShudWxsLCBuYXJncylcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSAyOiB7XG4gICAgICB2YXIgZyA9IGZ1bmN0aW9uICh4LCB5KXtcbiAgICAgICAgdmFyIG5hcmdzID0gbmV3IEFycmF5KGFyZ3NMZW4gKyAyKTtcbiAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IGFyZ3NMZW47IGkrKyApIG5hcmdzW2ldID0gYXJnc1tpXTtcbiAgICAgICAgbmFyZ3NbYXJnc0xlbl0gPSB4O1xuICAgICAgICBuYXJnc1thcmdzTGVuICsgMV0gPSB5O1xuICAgICAgICByZXR1cm4gZi5hcHBseShudWxsLCBuYXJncylcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgdmFyIGcgPSBmdW5jdGlvbiAoKXtcbiAgICAgICAgdmFyIGV4dHJhX2FyZ3MgPSAoYXJndW1lbnRzLmxlbmd0aCA9PSAwKT8xOmFyZ3VtZW50cy5sZW5ndGg7XG4gICAgICAgIHZhciBuYXJncyA9IG5ldyBBcnJheShhcmdzLmxlbmd0aCtleHRyYV9hcmdzKTtcbiAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKysgKSBuYXJnc1tpXSA9IGFyZ3NbaV07XG4gICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKysgKSBuYXJnc1thcmdzLmxlbmd0aCtpXSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgcmV0dXJuIGNhbWxfY2FsbF9nZW4oZiwgbmFyZ3MpXG4gICAgICB9O1xuICAgIH19XG4gICAgZy5sID0gZDtcbiAgICByZXR1cm4gZztcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NhbGxfZ2VuIChjb25zdCwgc2hhbGxvdylcbi8vSWY6IGVmZmVjdHNcbi8vV2Vha2RlZlxuZnVuY3Rpb24gY2FtbF9jYWxsX2dlbihmLCBhcmdzKSB7XG4gIHZhciBuID0gKGYubCA+PSAwKT9mLmw6KGYubCA9IGYubGVuZ3RoKTtcbiAgdmFyIGFyZ3NMZW4gPSBhcmdzLmxlbmd0aDtcbiAgdmFyIGQgPSBuIC0gYXJnc0xlbjtcbiAgaWYgKGQgPT0gMCkge1xuICAgIHJldHVybiBmLmFwcGx5KG51bGwsIGFyZ3MpO1xuICB9IGVsc2UgaWYgKGQgPCAwKSB7XG4gICAgdmFyIHJlc3QgPSBhcmdzLnNsaWNlKG4gLSAxKTtcbiAgICB2YXIgayA9IGFyZ3MgW2FyZ3NMZW4gLSAxXTtcbiAgICBhcmdzID0gYXJncy5zbGljZSgwLCBuKTtcbiAgICBhcmdzW24gLSAxXSA9IGZ1bmN0aW9uIChnKSB7XG4gICAgICBpZiAodHlwZW9mIGcgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIGsoZyk7XG4gICAgICB2YXIgYXJncyA9IHJlc3Quc2xpY2UoKTtcbiAgICAgIGFyZ3NbYXJncy5sZW5ndGggLSAxXSA9IGs7XG4gICAgICByZXR1cm4gY2FtbF9jYWxsX2dlbihnLCBhcmdzKTsgfTtcbiAgICByZXR1cm4gZi5hcHBseShudWxsLCBhcmdzKTtcbiAgfSBlbHNlIHtcbiAgICBhcmdzTGVuLS07XG4gICAgdmFyIGsgPSBhcmdzIFthcmdzTGVuXTtcbiAgICBzd2l0Y2ggKGQpIHtcbiAgICBjYXNlIDE6IHtcbiAgICAgIHZhciBnID0gZnVuY3Rpb24gKHgsIHkpe1xuICAgICAgICB2YXIgbmFyZ3MgPSBuZXcgQXJyYXkoYXJnc0xlbiArIDIpO1xuICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgYXJnc0xlbjsgaSsrICkgbmFyZ3NbaV0gPSBhcmdzW2ldO1xuICAgICAgICBuYXJnc1thcmdzTGVuXSA9IHg7XG4gICAgICAgIG5hcmdzW2FyZ3NMZW4gKyAxXSA9IHk7XG4gICAgICAgIHJldHVybiBmLmFwcGx5KG51bGwsIG5hcmdzKVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjYXNlIDI6IHtcbiAgICAgIHZhciBnID0gZnVuY3Rpb24gKHgsIHksIHope1xuICAgICAgICB2YXIgbmFyZ3MgPSBuZXcgQXJyYXkoYXJnc0xlbiArIDMpO1xuICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgYXJnc0xlbjsgaSsrICkgbmFyZ3NbaV0gPSBhcmdzW2ldO1xuICAgICAgICBuYXJnc1thcmdzTGVuXSA9IHg7XG4gICAgICAgIG5hcmdzW2FyZ3NMZW4gKyAxXSA9IHk7XG4gICAgICAgIG5hcmdzW2FyZ3NMZW4gKyAyXSA9IHo7XG4gICAgICAgIHJldHVybiBmLmFwcGx5KG51bGwsIG5hcmdzKVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICB2YXIgZyA9IGZ1bmN0aW9uICgpe1xuICAgICAgICB2YXIgZXh0cmFfYXJncyA9IChhcmd1bWVudHMubGVuZ3RoID09IDApPzE6YXJndW1lbnRzLmxlbmd0aDtcbiAgICAgICAgdmFyIG5hcmdzID0gbmV3IEFycmF5KGFyZ3NMZW4gKyBleHRyYV9hcmdzKTtcbiAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IGFyZ3NMZW47IGkrKyApIG5hcmdzW2ldID0gYXJnc1tpXTtcbiAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKyApXG4gICAgICAgICAgbmFyZ3NbYXJnc0xlbiArIGldID0gYXJndW1lbnRzW2ldO1xuICAgICAgICByZXR1cm4gY2FtbF9jYWxsX2dlbihmLCBuYXJncylcbiAgICAgIH07XG4gICAgfX1cbiAgICBnLmwgPSBkICsgMTtcbiAgICByZXR1cm4gayhnKTtcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX25hbWVkX3ZhbHVlc1xudmFyIGNhbWxfbmFtZWRfdmFsdWVzID0ge307XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmVnaXN0ZXJfbmFtZWRfdmFsdWUgKGNvbnN0LG11dGFibGUpXG4vL1JlcXVpcmVzOiBjYW1sX25hbWVkX3ZhbHVlcywgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9yZWdpc3Rlcl9uYW1lZF92YWx1ZShubSx2KSB7XG4gIGNhbWxfbmFtZWRfdmFsdWVzW2NhbWxfanNieXRlc19vZl9zdHJpbmcobm0pXSA9IHY7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX25hbWVkX3ZhbHVlXG4vL1JlcXVpcmVzOiBjYW1sX25hbWVkX3ZhbHVlc1xuZnVuY3Rpb24gY2FtbF9uYW1lZF92YWx1ZShubSkge1xuICByZXR1cm4gY2FtbF9uYW1lZF92YWx1ZXNbbm1dXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2xvYmFsX2RhdGFcbnZhciBjYW1sX2dsb2JhbF9kYXRhID0gWzBdO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2J1aWxkX3N5bWJvbHNcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2J1aWxkX3N5bWJvbHModG9jKSB7XG4gIHZhciBzeW1iO1xuICB3aGlsZSh0b2MpIHtcbiAgICBpZihjYW1sX2pzc3RyaW5nX29mX3N0cmluZyh0b2NbMV1bMV0pID09IFwiU1lKU1wiKSB7XG4gICAgICBzeW1iID0gdG9jWzFdWzJdO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGVsc2UgdG9jID0gdG9jWzJdXG4gIH1cbiAgdmFyIHIgPSB7fTtcbiAgaWYoc3ltYikge1xuICAgIGZvcih2YXIgaSA9IDE7IGkgPCBzeW1iLmxlbmd0aDsgaSsrKXtcbiAgICAgIHJbY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcoc3ltYltpXVsxXSldID0gc3ltYltpXVsyXVxuICAgIH1cbiAgfVxuICByZXR1cm4gcjtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9yZWdpc3Rlcl9nbG9iYWwgKGNvbnN0LCBzaGFsbG93LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfZ2xvYmFsX2RhdGEsIGNhbWxfY2FsbGJhY2ssIGNhbWxfYnVpbGRfc3ltYm9sc1xuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9yZWdpc3Rlcl9nbG9iYWwgKG4sIHYsIG5hbWVfb3B0KSB7XG4gIGlmIChuYW1lX29wdCkge1xuICAgIHZhciBuYW1lID0gbmFtZV9vcHQ7XG4gICAgaWYoZ2xvYmFsVGhpcy50b3BsZXZlbFJlbG9jKSB7XG4gICAgICBuID0gY2FtbF9jYWxsYmFjayhnbG9iYWxUaGlzLnRvcGxldmVsUmVsb2MsIFtuYW1lXSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGNhbWxfZ2xvYmFsX2RhdGEudG9jKSB7XG4gICAgICBpZighY2FtbF9nbG9iYWxfZGF0YS5zeW1ib2xzKSB7XG4gICAgICAgIGNhbWxfZ2xvYmFsX2RhdGEuc3ltYm9scyA9IGNhbWxfYnVpbGRfc3ltYm9scyhjYW1sX2dsb2JhbF9kYXRhLnRvYylcbiAgICAgIH1cbiAgICAgIHZhciBuaWQgPSBjYW1sX2dsb2JhbF9kYXRhLnN5bWJvbHNbbmFtZV1cbiAgICAgIGlmKG5pZCA+PSAwKVxuICAgICAgICBuID0gbmlkXG4gICAgICBlbHNlIHtcbiAgICAgICAgY2FtbF9mYWlsd2l0aChcImNhbWxfcmVnaXN0ZXJfZ2xvYmFsOiBjYW5ub3QgbG9jYXRlIFwiICsgbmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNhbWxfZ2xvYmFsX2RhdGFbbiArIDFdID0gdjtcbiAgaWYobmFtZV9vcHQpIGNhbWxfZ2xvYmFsX2RhdGFbbmFtZV9vcHRdID0gdjtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9nZXRfZ2xvYmFsX2RhdGEgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9nbG9iYWxfZGF0YVxuZnVuY3Rpb24gY2FtbF9nZXRfZ2xvYmFsX2RhdGEgKCkgeyByZXR1cm4gY2FtbF9nbG9iYWxfZGF0YTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lzX3ByaW50YWJsZSBjb25zdCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX2lzX3ByaW50YWJsZShjKSB7IHJldHVybiArKGMgPiAzMSAmJiBjIDwgMTI3KTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21heWJlX3ByaW50X3N0YXRzXG5mdW5jdGlvbiBjYW1sX21heWJlX3ByaW50X3N0YXRzKHVuaXQpIHsgcmV0dXJuIDAgfVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8vLy8vLy8vLy8vLyBTeXNcblxuLy9Qcm92aWRlczogY2FtbF9yYWlzZV9zeXNfZXJyb3IgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV93aXRoX3N0cmluZywgY2FtbF9nbG9iYWxfZGF0YVxuZnVuY3Rpb24gY2FtbF9yYWlzZV9zeXNfZXJyb3IgKG1zZykge1xuICBjYW1sX3JhaXNlX3dpdGhfc3RyaW5nKGNhbWxfZ2xvYmFsX2RhdGEuU3lzX2Vycm9yLCBtc2cpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19leGl0XG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfc3lzX2V4aXQgKGNvZGUpIHtcbiAgaWYoZ2xvYmFsVGhpcy5xdWl0KSBnbG9iYWxUaGlzLnF1aXQoY29kZSk7XG4gIC8vbm9kZWpzXG4gIGlmKGdsb2JhbFRoaXMucHJvY2VzcyAmJiBnbG9iYWxUaGlzLnByb2Nlc3MuZXhpdClcbiAgICBnbG9iYWxUaGlzLnByb2Nlc3MuZXhpdChjb2RlKTtcbiAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiRnVuY3Rpb24gJ2V4aXQnIG5vdCBpbXBsZW1lbnRlZFwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pc19zcGVjaWFsX2V4Y2VwdGlvblxuZnVuY3Rpb24gY2FtbF9pc19zcGVjaWFsX2V4Y2VwdGlvbihleG4pe1xuICBzd2l0Y2goZXhuWzJdKSB7XG4gIGNhc2UgLTg6IC8vIE1hdGNoX2ZhaWx1cmVcbiAgY2FzZSAtMTE6IC8vIEFzc2VydF9mYWlsdXJlXG4gIGNhc2UgLTEyOiAvLyBVbmRlZmluZWRfcmVjdXJzaXZlX21vZHVsZVxuICAgIHJldHVybiAxO1xuICBkZWZhdWx0OlxuICAgIHJldHVybiAwO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZm9ybWF0X2V4Y2VwdGlvblxuLy9SZXF1aXJlczogTWxCeXRlcywgY2FtbF9pc19zcGVjaWFsX2V4Y2VwdGlvblxuZnVuY3Rpb24gY2FtbF9mb3JtYXRfZXhjZXB0aW9uKGV4bil7XG4gIHZhciByID0gXCJcIjtcbiAgaWYoZXhuWzBdID09IDApIHtcbiAgICByICs9IGV4blsxXVsxXTtcbiAgICBpZihleG4ubGVuZ3RoID09IDMgJiYgZXhuWzJdWzBdID09IDAgJiYgY2FtbF9pc19zcGVjaWFsX2V4Y2VwdGlvbihleG5bMV0pKSB7XG5cbiAgICAgIHZhciBidWNrZXQgPSBleG5bMl07XG4gICAgICB2YXIgc3RhcnQgPSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgc3RhcnQgPSAyXG4gICAgICB2YXIgYnVja2V0ID0gZXhuO1xuICAgIH1cbiAgICByICs9IFwiKFwiO1xuICAgIGZvcih2YXIgaSA9IHN0YXJ0OyBpIDwgYnVja2V0Lmxlbmd0aDsgaSArKyl7XG4gICAgICBpZihpID4gc3RhcnQpIHIrPVwiLCBcIjtcbiAgICAgIHZhciB2ID0gYnVja2V0W2ldXG4gICAgICBpZih0eXBlb2YgdiA9PSBcIm51bWJlclwiKVxuICAgICAgICByKz0gdi50b1N0cmluZygpO1xuICAgICAgZWxzZSBpZih2IGluc3RhbmNlb2YgTWxCeXRlcyl7XG4gICAgICAgIHIrPSAnXCInICsgdi50b1N0cmluZygpICsgJ1wiJztcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYodHlwZW9mIHYgPT0gXCJzdHJpbmdcIil7XG4gICAgICAgIHIrPSAnXCInICsgdi50b1N0cmluZygpICsgJ1wiJztcbiAgICAgIH1cbiAgICAgIGVsc2UgciArPSBcIl9cIjtcbiAgICB9XG4gICAgciArPSBcIilcIlxuICB9IGVsc2UgaWYgKGV4blswXSA9PSAyNDgpe1xuICAgIHIgKz0gZXhuWzFdXG4gIH1cbiAgcmV0dXJuIHJcbn1cblxuLy9Qcm92aWRlczogY2FtbF9mYXRhbF91bmNhdWdodF9leGNlcHRpb25cbi8vUmVxdWlyZXM6IGNhbWxfbmFtZWRfdmFsdWUsIGNhbWxfZm9ybWF0X2V4Y2VwdGlvbiwgY2FtbF9jYWxsYmFja1xuZnVuY3Rpb24gY2FtbF9mYXRhbF91bmNhdWdodF9leGNlcHRpb24oZXJyKXtcbiAgaWYoZXJyIGluc3RhbmNlb2YgQXJyYXkgJiYgKGVyclswXSA9PSAwIHx8IGVyclswXSA9PSAyNDgpKSB7XG4gICAgdmFyIGhhbmRsZXIgPSBjYW1sX25hbWVkX3ZhbHVlKFwiUHJpbnRleGMuaGFuZGxlX3VuY2F1Z2h0X2V4Y2VwdGlvblwiKTtcbiAgICBpZihoYW5kbGVyKSBjYW1sX2NhbGxiYWNrKGhhbmRsZXIsIFtlcnIsZmFsc2VdKTtcbiAgICBlbHNlIHtcbiAgICAgIHZhciBtc2cgPSBjYW1sX2Zvcm1hdF9leGNlcHRpb24oZXJyKTtcbiAgICAgIHZhciBhdF9leGl0ID0gY2FtbF9uYW1lZF92YWx1ZShcIlBlcnZhc2l2ZXMuZG9fYXRfZXhpdFwiKTtcbiAgICAgIGlmKGF0X2V4aXQpIGNhbWxfY2FsbGJhY2soYXRfZXhpdCwgWzBdKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJGYXRhbCBlcnJvcjogZXhjZXB0aW9uIFwiICsgbXNnICsgXCJcXG5cIik7XG4gICAgICBpZihlcnIuanNfZXJyb3IpIHRocm93IGVyci5qc19lcnJvcjtcbiAgICB9XG4gIH1cbiAgZWxzZSB7XG4gICAgdGhyb3cgZXJyXG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9zZXRfc3RhdGljX2VudlxuZnVuY3Rpb24gY2FtbF9zZXRfc3RhdGljX2VudihrLHYpe1xuICBpZighZ2xvYmFsVGhpcy5qc29vX3N0YXRpY19lbnYpXG4gICAgZ2xvYmFsVGhpcy5qc29vX3N0YXRpY19lbnYgPSB7fVxuICBnbG9iYWxUaGlzLmpzb29fc3RhdGljX2VudltrXSA9IHY7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBqc29vX3N5c19nZXRlbnYgKGNvbnN0KVxuZnVuY3Rpb24ganNvb19zeXNfZ2V0ZW52KG4pIHtcbiAgdmFyIHByb2Nlc3MgPSBnbG9iYWxUaGlzLnByb2Nlc3M7XG4gIC8vbm9kZWpzIGVudlxuICBpZihwcm9jZXNzXG4gICAgICYmIHByb2Nlc3MuZW52XG4gICAgICYmIHByb2Nlc3MuZW52W25dICE9IHVuZGVmaW5lZClcbiAgICByZXR1cm4gcHJvY2Vzcy5lbnZbbl07XG4gIGlmKGdsb2JhbFRoaXMuanNvb19zdGF0aWNfZW52XG4gICAgICYmIGdsb2JhbFRoaXMuanNvb19zdGF0aWNfZW52W25dKVxuICAgIHJldHVybiBnbG9iYWxUaGlzLmpzb29fc3RhdGljX2VudltuXVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19nZXRlbnYgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9ub3RfZm91bmRcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuLy9SZXF1aXJlczoganNvb19zeXNfZ2V0ZW52XG5mdW5jdGlvbiBjYW1sX3N5c19nZXRlbnYgKG5hbWUpIHtcbiAgdmFyIHIgPSBqc29vX3N5c19nZXRlbnYoY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcobmFtZSkpO1xuICBpZihyID09PSB1bmRlZmluZWQpXG4gICAgY2FtbF9yYWlzZV9ub3RfZm91bmQgKCk7XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhyKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c191bnNhZmVfZ2V0ZW52XG4vL1JlcXVpcmVzOiBjYW1sX3N5c19nZXRlbnZcbmZ1bmN0aW9uIGNhbWxfc3lzX3Vuc2FmZV9nZXRlbnYobmFtZSl7XG4gIHJldHVybiBjYW1sX3N5c19nZXRlbnYgKG5hbWUpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FyZ3Zcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nXG52YXIgY2FtbF9hcmd2ID0gKChmdW5jdGlvbiAoKSB7XG4gIHZhciBwcm9jZXNzID0gZ2xvYmFsVGhpcy5wcm9jZXNzO1xuICB2YXIgbWFpbiA9IFwiYS5vdXRcIjtcbiAgdmFyIGFyZ3MgPSBbXVxuXG4gIGlmKHByb2Nlc3NcbiAgICAgJiYgcHJvY2Vzcy5hcmd2XG4gICAgICYmIHByb2Nlc3MuYXJndi5sZW5ndGggPiAxKSB7XG4gICAgdmFyIGFyZ3YgPSBwcm9jZXNzLmFyZ3ZcbiAgICAvL25vZGVqc1xuICAgIG1haW4gPSBhcmd2WzFdO1xuICAgIGFyZ3MgPSBhcmd2LnNsaWNlKDIpO1xuICB9XG5cbiAgdmFyIHAgPSBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhtYWluKTtcbiAgdmFyIGFyZ3MyID0gWzAsIHBdO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKylcbiAgICBhcmdzMi5wdXNoKGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKGFyZ3NbaV0pKTtcbiAgcmV0dXJuIGFyZ3MyO1xufSkoKSlcblxuLy9Qcm92aWRlczogY2FtbF9leGVjdXRhYmxlX25hbWVcbi8vUmVxdWlyZXM6IGNhbWxfYXJndlxudmFyIGNhbWxfZXhlY3V0YWJsZV9uYW1lID0gY2FtbF9hcmd2WzFdXG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2dldF9hcmd2XG4vL1JlcXVpcmVzOiBjYW1sX2FyZ3ZcbmZ1bmN0aW9uIGNhbWxfc3lzX2dldF9hcmd2IChhKSB7XG4gIHJldHVybiBbMCwgY2FtbF9hcmd2WzFdLCBjYW1sX2FyZ3ZdO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19hcmd2XG4vL1JlcXVpcmVzOiBjYW1sX2FyZ3ZcbmZ1bmN0aW9uIGNhbWxfc3lzX2FyZ3YgKGEpIHtcbiAgcmV0dXJuIGNhbWxfYXJndjtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfbW9kaWZ5X2FyZ3Zcbi8vUmVxdWlyZXM6IGNhbWxfYXJndlxuZnVuY3Rpb24gY2FtbF9zeXNfbW9kaWZ5X2FyZ3YoYXJnKXtcbiAgY2FtbF9hcmd2ID0gYXJnO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfZXhlY3V0YWJsZV9uYW1lIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2V4ZWN1dGFibGVfbmFtZVxuZnVuY3Rpb24gY2FtbF9zeXNfZXhlY3V0YWJsZV9uYW1lKGEpe1xuICByZXR1cm4gY2FtbF9leGVjdXRhYmxlX25hbWVcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfc3lzdGVtX2NvbW1hbmRcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N5c19zeXN0ZW1fY29tbWFuZChjbWQpe1xuICB2YXIgY21kID0gY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcoY21kKTtcbiAgaWYgKHR5cGVvZiByZXF1aXJlICE9IFwidW5kZWZpbmVkXCIpe1xuICAgIHZhciBjaGlsZF9wcm9jZXNzID0gcmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpO1xuICAgIGlmKGNoaWxkX3Byb2Nlc3MgJiYgY2hpbGRfcHJvY2Vzcy5leGVjU3luYylcbiAgICAgIHRyeSB7XG4gICAgICAgIGNoaWxkX3Byb2Nlc3MuZXhlY1N5bmMoY21kLHtzdGRpbzogJ2luaGVyaXQnfSk7XG4gICAgICAgIHJldHVybiAwXG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiAxXG4gICAgICB9XG4gIH1cbiAgZWxzZSByZXR1cm4gMTI3O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19zeXN0ZW1fY29tbWFuZFxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbi8vSWY6IGJyb3dzZXJcbmZ1bmN0aW9uIGNhbWxfc3lzX3N5c3RlbV9jb21tYW5kKGNtZCl7XG4gIHJldHVybiAxMjc7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX3RpbWUgbXV0YWJsZVxudmFyIGNhbWxfaW5pdGlhbF90aW1lID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKSAqIDAuMDAxO1xuZnVuY3Rpb24gY2FtbF9zeXNfdGltZSAoKSB7XG4gIHZhciBub3cgPSAobmV3IERhdGUoKSkuZ2V0VGltZSgpO1xuICByZXR1cm4gbm93ICogMC4wMDEgLSBjYW1sX2luaXRpYWxfdGltZTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfdGltZV9pbmNsdWRlX2NoaWxkcmVuXG4vL1JlcXVpcmVzOiBjYW1sX3N5c190aW1lXG5mdW5jdGlvbiBjYW1sX3N5c190aW1lX2luY2x1ZGVfY2hpbGRyZW4oYikge1xuICByZXR1cm4gY2FtbF9zeXNfdGltZSgpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19yYW5kb21fc2VlZCBtdXRhYmxlXG4vL1RoZSBmdW5jdGlvbiBuZWVkcyB0byByZXR1cm4gYW4gYXJyYXkgc2luY2UgT0NhbWwgNC4wLi4uXG5mdW5jdGlvbiBjYW1sX3N5c19yYW5kb21fc2VlZCAoKSB7XG4gIGlmKGdsb2JhbFRoaXMuY3J5cHRvKSB7XG4gICAgaWYodHlwZW9mIGdsb2JhbFRoaXMuY3J5cHRvLmdldFJhbmRvbVZhbHVlcyA9PT0gJ2Z1bmN0aW9uJyl7XG4gICAgICAvLyBXZWJicm93c2Vyc1xuICAgICAgdmFyIGEgPSBuZXcgVWludDMyQXJyYXkoMSk7XG4gICAgICBnbG9iYWxUaGlzLmNyeXB0by5nZXRSYW5kb21WYWx1ZXMoYSk7XG4gICAgICByZXR1cm4gWzAsYVswXV07XG4gICAgfSBlbHNlIGlmKGdsb2JhbFRoaXMuY3J5cHRvLnJhbmRvbUJ5dGVzID09PSAnZnVuY3Rpb24nKXtcbiAgICAgIC8vIE5vZGVqc1xuICAgICAgdmFyIGJ1ZmYgPSBnbG9iYWxUaGlzLmNyeXB0by5yYW5kb21CeXRlcyg0KTtcbiAgICAgIHZhciBhID0gbmV3IFVpbnQzMkFycmF5KGJ1ZmYpO1xuICAgICAgcmV0dXJuIFswLGFbMF1dO1xuICAgIH1cbiAgfVxuICB2YXIgbm93ID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTtcbiAgdmFyIHggPSBub3deMHhmZmZmZmZmZipNYXRoLnJhbmRvbSgpO1xuICByZXR1cm4gWzAseF07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2NvbnN0X2JpZ19lbmRpYW4gY29uc3RcbmZ1bmN0aW9uIGNhbWxfc3lzX2NvbnN0X2JpZ19lbmRpYW4gKCkgeyByZXR1cm4gMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jb25zdF93b3JkX3NpemUgY29uc3RcbmZ1bmN0aW9uIGNhbWxfc3lzX2NvbnN0X3dvcmRfc2l6ZSAoKSB7IHJldHVybiAzMjsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jb25zdF9pbnRfc2l6ZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9zeXNfY29uc3RfaW50X3NpemUgKCkgeyByZXR1cm4gMzI7IH1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfY29uc3RfbWF4X3dvc2l6ZSBjb25zdFxuLy8gbWF4X2ludCAvIDQgc28gdGhhdCB0aGUgZm9sbG93aW5nIGRvZXMgbm90IG92ZXJmbG93XG4vL2xldCBtYXhfc3RyaW5nX2xlbmd0aCA9IHdvcmRfc2l6ZSAvIDggKiBtYXhfYXJyYXlfbGVuZ3RoIC0gMTs7XG5mdW5jdGlvbiBjYW1sX3N5c19jb25zdF9tYXhfd29zaXplICgpIHsgcmV0dXJuICgweDdGRkZGRkZGLzQpIHwgMDt9XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2NvbnN0X29zdHlwZV91bml4IGNvbnN0XG4vL1JlcXVpcmVzOiBvc190eXBlXG5mdW5jdGlvbiBjYW1sX3N5c19jb25zdF9vc3R5cGVfdW5peCAoKSB7IHJldHVybiBvc190eXBlID09IFwiVW5peFwiID8gMSA6IDA7IH1cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2NvbnN0X29zdHlwZV93aW4zMiBjb25zdFxuLy9SZXF1aXJlczogb3NfdHlwZVxuZnVuY3Rpb24gY2FtbF9zeXNfY29uc3Rfb3N0eXBlX3dpbjMyICgpIHsgcmV0dXJuIG9zX3R5cGUgPT0gXCJXaW4zMlwiID8gMSA6IDA7IH1cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2NvbnN0X29zdHlwZV9jeWd3aW4gY29uc3Rcbi8vUmVxdWlyZXM6IG9zX3R5cGVcbmZ1bmN0aW9uIGNhbWxfc3lzX2NvbnN0X29zdHlwZV9jeWd3aW4gKCkgeyByZXR1cm4gb3NfdHlwZSA9PSBcIkN5Z3dpblwiID8gMSA6IDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfY29uc3RfYmFja2VuZF90eXBlIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX3N5c19jb25zdF9iYWNrZW5kX3R5cGUgKCkge1xuICByZXR1cm4gWzAsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoXCJqc19vZl9vY2FtbFwiKV07XG59XG5cbi8vUHJvdmlkZXM6IG9zX3R5cGVcbnZhciBvc190eXBlID0gKGdsb2JhbFRoaXMucHJvY2VzcyAmJlxuICAgICAgICAgICAgICAgZ2xvYmFsVGhpcy5wcm9jZXNzLnBsYXRmb3JtICYmXG4gICAgICAgICAgICAgICBnbG9iYWxUaGlzLnByb2Nlc3MucGxhdGZvcm0gPT0gXCJ3aW4zMlwiKSA/IFwiQ3lnd2luXCIgOiBcIlVuaXhcIjtcblxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19nZXRfY29uZmlnIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzLCBvc190eXBlXG5mdW5jdGlvbiBjYW1sX3N5c19nZXRfY29uZmlnICgpIHtcbiAgcmV0dXJuIFswLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKG9zX3R5cGUpLCAzMiwgMF07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2lzYXR0eVxuZnVuY3Rpb24gY2FtbF9zeXNfaXNhdHR5KF9jaGFuKSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3J1bnRpbWVfdmFyaWFudFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9ydW50aW1lX3ZhcmlhbnQoX3VuaXQpIHtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoXCJcIik7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX3J1bnRpbWVfcGFyYW1ldGVyc1xuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9ydW50aW1lX3BhcmFtZXRlcnMoX3VuaXQpIHtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoXCJcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW5zdGFsbF9zaWduYWxfaGFuZGxlciBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnN0YWxsX3NpZ25hbF9oYW5kbGVyKCl7cmV0dXJuIDB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfcnVudGltZV93YXJuaW5nc1xudmFyIGNhbWxfcnVudGltZV93YXJuaW5ncyA9IDA7XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfZW5hYmxlX3J1bnRpbWVfd2FybmluZ3Ncbi8vUmVxdWlyZXM6IGNhbWxfcnVudGltZV93YXJuaW5nc1xuZnVuY3Rpb24gY2FtbF9tbF9lbmFibGVfcnVudGltZV93YXJuaW5ncyAoYm9vbCkge1xuICBjYW1sX3J1bnRpbWVfd2FybmluZ3MgPSBib29sO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9ydW50aW1lX3dhcm5pbmdzX2VuYWJsZWRcbi8vUmVxdWlyZXM6IGNhbWxfcnVudGltZV93YXJuaW5nc1xuZnVuY3Rpb24gY2FtbF9tbF9ydW50aW1lX3dhcm5pbmdzX2VuYWJsZWQgKF91bml0KSB7XG4gIHJldHVybiBjYW1sX3J1bnRpbWVfd2FybmluZ3M7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9zcGFjZXRpbWVfZW5hYmxlZCBjb25zdCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX3NwYWNldGltZV9lbmFibGVkKF91bml0KSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jb25zdF9uYWtlZF9wb2ludGVyc19jaGVja2VkIGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfc3lzX2NvbnN0X25ha2VkX3BvaW50ZXJzX2NoZWNrZWQoX3VuaXQpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmVnaXN0ZXJfY2hhbm5lbF9mb3Jfc3BhY2V0aW1lIGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfcmVnaXN0ZXJfY2hhbm5lbF9mb3Jfc3BhY2V0aW1lKF9jaGFubmVsKSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3NwYWNldGltZV9vbmx5X3dvcmtzX2Zvcl9uYXRpdmVfY29kZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9zcGFjZXRpbWVfb25seV93b3Jrc19mb3JfbmF0aXZlX2NvZGUoKSB7XG4gIGNhbWxfZmFpbHdpdGgoXCJTcGFjZXRpbWUgcHJvZmlsaW5nIG9ubHkgd29ya3MgZm9yIG5hdGl2ZSBjb2RlXCIpO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2lzX3JlZ3VsYXJfZmlsZVxuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2VcbmZ1bmN0aW9uIGNhbWxfc3lzX2lzX3JlZ3VsYXJfZmlsZShuYW1lKSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIHJldHVybiByb290LmRldmljZS5pc0ZpbGUocm9vdC5yZXN0KTtcbn1cbi8vQWx3YXlzXG4vL1JlcXVpcmVzOiBjYW1sX2ZhdGFsX3VuY2F1Z2h0X2V4Y2VwdGlvblxuZnVuY3Rpb24gY2FtbF9zZXR1cF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlcigpIHtcbiAgdmFyIHByb2Nlc3MgPSBnbG9iYWxUaGlzLnByb2Nlc3M7XG4gIGlmKHByb2Nlc3MgJiYgcHJvY2Vzcy5vbikge1xuICAgIHByb2Nlc3Mub24oJ3VuY2F1Z2h0RXhjZXB0aW9uJywgZnVuY3Rpb24gKGVyciwgb3JpZ2luKSB7XG4gICAgICBjYW1sX2ZhdGFsX3VuY2F1Z2h0X2V4Y2VwdGlvbihlcnIpO1xuICAgICAgcHJvY2Vzcy5leGl0ICgyKTtcbiAgICB9KVxuICB9XG4gIGVsc2UgaWYoZ2xvYmFsVGhpcy5hZGRFdmVudExpc3RlbmVyKXtcbiAgICBnbG9iYWxUaGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZnVuY3Rpb24oZXZlbnQpe1xuICAgICAgaWYoZXZlbnQuZXJyb3Ipe1xuICAgICAgICBjYW1sX2ZhdGFsX3VuY2F1Z2h0X2V4Y2VwdGlvbihldmVudC5lcnJvcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbmNhbWxfc2V0dXBfdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIoKTtcbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cblxuLy9Qcm92aWRlczogY2FtbF9yZWNvcmRfYmFja3RyYWNlX2ZsYWdcbi8vUmVxdWlyZXM6IGpzb29fc3lzX2dldGVudlxudmFyIGNhbWxfcmVjb3JkX2JhY2t0cmFjZV9mbGFnID0gRkxBRyhcIndpdGgtanMtZXJyb3JcIik7XG5cbihmdW5jdGlvbiAoKSB7XG4gIHZhciByID0ganNvb19zeXNfZ2V0ZW52KFwiT0NBTUxSVU5QQVJBTVwiKVxuICBpZihyICE9PSB1bmRlZmluZWQpe1xuICAgIHZhciBsID0gci5zcGxpdChcIixcIik7XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGwubGVuZ3RoOyBpKyspe1xuICAgICAgaWYobFtpXSA9PSBcImJcIikgeyBjYW1sX3JlY29yZF9iYWNrdHJhY2VfZmxhZyA9IDE7IGJyZWFrIH1cbiAgICAgIGVsc2UgaWYgKGxbaV0uc3RhcnRzV2l0aChcImI9XCIpKSB7XG4gICAgICAgIGNhbWxfcmVjb3JkX2JhY2t0cmFjZV9mbGFnID0gKyhsW2ldLnNsaWNlKDIpKX1cbiAgICAgIGVsc2UgY29udGludWU7XG4gICAgfVxuICB9XG59KSAoKVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfZGVidWdfaW5mb19zdGF0dXMgY29uc3RcbmZ1bmN0aW9uIGNhbWxfbWxfZGVidWdfaW5mb19zdGF0dXMgKCkgeyByZXR1cm4gMDsgfVxuLy9Qcm92aWRlczogY2FtbF9iYWNrdHJhY2Vfc3RhdHVzXG4vL1JlcXVpcmVzOiBjYW1sX3JlY29yZF9iYWNrdHJhY2VfZmxhZ1xuZnVuY3Rpb24gY2FtbF9iYWNrdHJhY2Vfc3RhdHVzIChfdW5pdCkgeyByZXR1cm4gY2FtbF9yZWNvcmRfYmFja3RyYWNlX2ZsYWcgPyAxIDogMDsgfVxuLy9Qcm92aWRlczogY2FtbF9nZXRfZXhjZXB0aW9uX2JhY2t0cmFjZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9nZXRfZXhjZXB0aW9uX2JhY2t0cmFjZSAoKSB7IHJldHVybiAwOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2dldF9leGNlcHRpb25fcmF3X2JhY2t0cmFjZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9nZXRfZXhjZXB0aW9uX3Jhd19iYWNrdHJhY2UgKCkgeyByZXR1cm4gWzBdOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX3JlY29yZF9iYWNrdHJhY2Vcbi8vUmVxdWlyZXM6IGNhbWxfcmVjb3JkX2JhY2t0cmFjZV9mbGFnXG5mdW5jdGlvbiBjYW1sX3JlY29yZF9iYWNrdHJhY2UgKGIpIHsgY2FtbF9yZWNvcmRfYmFja3RyYWNlX2ZsYWcgPSBiOyByZXR1cm4gMDsgfVxuLy9Qcm92aWRlczogY2FtbF9jb252ZXJ0X3Jhd19iYWNrdHJhY2UgY29uc3RcbmZ1bmN0aW9uIGNhbWxfY29udmVydF9yYXdfYmFja3RyYWNlICgpIHsgcmV0dXJuIFswXTsgfVxuLy9Qcm92aWRlczogY2FtbF9yYXdfYmFja3RyYWNlX2xlbmd0aFxuZnVuY3Rpb24gY2FtbF9yYXdfYmFja3RyYWNlX2xlbmd0aCgpIHsgcmV0dXJuIDA7IH1cbi8vUHJvdmlkZXM6IGNhbWxfcmF3X2JhY2t0cmFjZV9uZXh0X3Nsb3RcbmZ1bmN0aW9uIGNhbWxfcmF3X2JhY2t0cmFjZV9uZXh0X3Nsb3QoKSB7IHJldHVybiAwIH1cbi8vUHJvdmlkZXM6IGNhbWxfcmF3X2JhY2t0cmFjZV9zbG90XG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfcmF3X2JhY2t0cmFjZV9zbG90ICgpIHtcbiAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiUHJpbnRleGMuZ2V0X3Jhd19iYWNrdHJhY2Vfc2xvdDogaW5kZXggb3V0IG9mIGJvdW5kc1wiKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfcmVzdG9yZV9yYXdfYmFja3RyYWNlXG5mdW5jdGlvbiBjYW1sX3Jlc3RvcmVfcmF3X2JhY2t0cmFjZShleG4sIGJ0KSB7IHJldHVybiAwIH1cbi8vUHJvdmlkZXM6IGNhbWxfZ2V0X2N1cnJlbnRfY2FsbHN0YWNrIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2dldF9jdXJyZW50X2NhbGxzdGFjayAoKSB7IHJldHVybiBbMF07IH1cblxuLy9Qcm92aWRlczogY2FtbF9jb252ZXJ0X3Jhd19iYWNrdHJhY2Vfc2xvdFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9jb252ZXJ0X3Jhd19iYWNrdHJhY2Vfc2xvdCgpe1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9jb252ZXJ0X3Jhd19iYWNrdHJhY2Vfc2xvdFwiKTtcbn1cbiIsIi8vIEpzX29mX29jYW1sIGxpYnJhcnlcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8vLy8vLy8vLy8vLyBKc2xpYlxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3B1cmVfZXhwciBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9jYWxsYmFja1xuZnVuY3Rpb24gY2FtbF9qc19wdXJlX2V4cHIgKGYpIHsgcmV0dXJuIGNhbWxfY2FsbGJhY2soZiwgWzBdKTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3NldCAobXV0YWJsZSwgY29uc3QsIG11dGFibGUpXG5mdW5jdGlvbiBjYW1sX2pzX3NldChvLGYsdikgeyBvW2ZdPXY7cmV0dXJuIDB9XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2dldCAobXV0YWJsZSwgY29uc3QpXG5mdW5jdGlvbiBjYW1sX2pzX2dldChvLGYpIHsgcmV0dXJuIG9bZl07IH1cbi8vUHJvdmlkZXM6IGNhbWxfanNfZGVsZXRlIChtdXRhYmxlLCBjb25zdClcbmZ1bmN0aW9uIGNhbWxfanNfZGVsZXRlKG8sZikgeyBkZWxldGUgb1tmXTsgcmV0dXJuIDB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfaW5zdGFuY2VvZiAoY29uc3QsIGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9qc19pbnN0YW5jZW9mKG8sYykgeyByZXR1cm4gKG8gaW5zdGFuY2VvZiBjKSA/IDEgOiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfdHlwZW9mIChjb25zdClcbmZ1bmN0aW9uIGNhbWxfanNfdHlwZW9mKG8pIHsgcmV0dXJuIHR5cGVvZiBvOyB9XG5cbi8vUHJvdmlkZXM6Y2FtbF90cmFtcG9saW5lXG5mdW5jdGlvbiBjYW1sX3RyYW1wb2xpbmUocmVzKSB7XG4gIHZhciBjID0gMTtcbiAgd2hpbGUocmVzICYmIHJlcy5qb29fdHJhbXApe1xuICAgIHJlcyA9IHJlcy5qb29fdHJhbXAuYXBwbHkobnVsbCwgcmVzLmpvb19hcmdzKTtcbiAgICBjKys7XG4gIH1cbiAgcmV0dXJuIHJlcztcbn1cblxuLy9Qcm92aWRlczpjYW1sX3RyYW1wb2xpbmVfcmV0dXJuXG5mdW5jdGlvbiBjYW1sX3RyYW1wb2xpbmVfcmV0dXJuKGYsYXJncykge1xuICByZXR1cm4ge2pvb190cmFtcDpmLGpvb19hcmdzOmFyZ3N9O1xufVxuXG4vL1Byb3ZpZGVzOmNhbWxfc3RhY2tfZGVwdGhcbi8vSWY6IGVmZmVjdHNcbnZhciBjYW1sX3N0YWNrX2RlcHRoID0gMDtcblxuLy9Qcm92aWRlczpjYW1sX3N0YWNrX2NoZWNrX2RlcHRoXG4vL0lmOiBlZmZlY3RzXG4vL1JlcXVpcmVzOmNhbWxfc3RhY2tfZGVwdGhcbmZ1bmN0aW9uIGNhbWxfc3RhY2tfY2hlY2tfZGVwdGgoKSB7XG4gICAgcmV0dXJuIC0tY2FtbF9zdGFja19kZXB0aCA+IDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY2FsbGJhY2tcbi8vSWY6ICFlZmZlY3RzXG4vL1JlcXVpcmVzOmNhbWxfY2FsbF9nZW5cbnZhciBjYW1sX2NhbGxiYWNrID0gY2FtbF9jYWxsX2dlbjtcblxuLy9Qcm92aWRlczogY2FtbF9jYWxsYmFja1xuLy9JZjogZWZmZWN0c1xuLy9SZXF1aXJlczpjYW1sX3N0YWNrX2RlcHRoLCBjYW1sX2NhbGxfZ2VuLCBjYW1sX2V4bl9zdGFjaywgY2FtbF9maWJlcl9zdGFjaywgY2FtbF93cmFwX2V4Y2VwdGlvbiwgY2FtbF9yZXN1bWVfc3RhY2ssIGNhbWxfZnJlc2hfb29faWQsIGNhbWxfbmFtZWRfdmFsdWUsIGNhbWxfcmFpc2Vfd2l0aF9hcmcsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2VfY29uc3RhbnRcbmZ1bmN0aW9uIGNhbWxfY2FsbGJhY2soZixhcmdzKSB7XG4gIGZ1bmN0aW9uIHVuY2F1Z2h0X2VmZmVjdF9oYW5kbGVyKGVmZixrLG1zKSB7XG4gICAgLy8gUmVzdW1lcyB0aGUgY29udGludWF0aW9uIGsgYnkgcmFpc2luZyBleGNlcHRpb24gVW5oYW5kbGVkLlxuICAgIGNhbWxfcmVzdW1lX3N0YWNrKGtbMV0sbXMpO1xuICAgIHZhciBleG4gPSBjYW1sX25hbWVkX3ZhbHVlKFwiRWZmZWN0LlVuaGFuZGxlZFwiKTtcbiAgICBpZihleG4pIGNhbWxfcmFpc2Vfd2l0aF9hcmcoZXhuLCBlZmYpO1xuICAgIGVsc2Uge1xuICAgICAgZXhuID0gWzI0OCxjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFwiRWZmZWN0LlVuaGFuZGxlZFwiKSwgY2FtbF9mcmVzaF9vb19pZCgwKV07XG4gICAgICBjYW1sX3JhaXNlX2NvbnN0YW50KGV4bik7XG4gICAgfVxuICB9XG4gIHZhciBzYXZlZF9zdGFja19kZXB0aCA9IGNhbWxfc3RhY2tfZGVwdGg7XG4gIHZhciBzYXZlZF9leG5fc3RhY2sgPSBjYW1sX2V4bl9zdGFjaztcbiAgdmFyIHNhdmVkX2ZpYmVyX3N0YWNrID0gY2FtbF9maWJlcl9zdGFjaztcbiAgdHJ5IHtcbiAgICBjYW1sX2V4bl9zdGFjayA9IDA7XG4gICAgY2FtbF9maWJlcl9zdGFjayA9XG4gICAgICB7aDpbMCwgMCwgMCwgdW5jYXVnaHRfZWZmZWN0X2hhbmRsZXJdLCByOntrOjAsIHg6MCwgZTowfX07XG4gICAgdmFyIHJlcyA9IHtqb29fdHJhbXA6IGYsXG4gICAgICAgICAgICAgICBqb29fYXJnczogYXJncy5jb25jYXQoZnVuY3Rpb24gKHgpe3JldHVybiB4O30pfTtcbiAgICBkbyB7XG4gICAgICBjYW1sX3N0YWNrX2RlcHRoID0gNDA7XG4gICAgICB0cnkge1xuICAgICAgICByZXMgPSBjYW1sX2NhbGxfZ2VuKHJlcy5qb29fdHJhbXAsIHJlcy5qb29fYXJncyk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8qIEhhbmRsZSBleGNlcHRpb24gY29taW5nIGZyb20gSmF2YVNjcmlwdCBvciBmcm9tIHRoZSBydW50aW1lLiAqL1xuICAgICAgICBpZiAoIWNhbWxfZXhuX3N0YWNrKSB0aHJvdyBlO1xuICAgICAgICB2YXIgaGFuZGxlciA9IGNhbWxfZXhuX3N0YWNrWzFdO1xuICAgICAgICBjYW1sX2V4bl9zdGFjayA9IGNhbWxfZXhuX3N0YWNrWzJdO1xuICAgICAgICByZXMgPSB7am9vX3RyYW1wOiBoYW5kbGVyLFxuICAgICAgICAgICAgICAgam9vX2FyZ3M6IFtjYW1sX3dyYXBfZXhjZXB0aW9uKGUpXX07XG4gICAgICB9XG4gICAgfSB3aGlsZShyZXMgJiYgcmVzLmpvb19hcmdzKVxuICB9IGZpbmFsbHkge1xuICAgIGNhbWxfc3RhY2tfZGVwdGggPSBzYXZlZF9zdGFja19kZXB0aDtcbiAgICBjYW1sX2V4bl9zdGFjayA9IHNhdmVkX2V4bl9zdGFjaztcbiAgICBjYW1sX2ZpYmVyX3N0YWNrID0gc2F2ZWRfZmliZXJfc3RhY2s7XG4gIH1cbiAgcmV0dXJuIHJlcztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pc19qc1xuZnVuY3Rpb24gY2FtbF9pc19qcygpIHtcbiAgcmV0dXJuIDE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNvb19mbGFnc191c2VfanNfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzb29fZmxhZ3NfdXNlX2pzX3N0cmluZyh1bml0KXtcbiAgcmV0dXJuIEZMQUcoXCJ1c2UtanMtc3RyaW5nXCIpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNvb19mbGFnc19lZmZlY3RzXG5mdW5jdGlvbiBjYW1sX2pzb29fZmxhZ3NfZWZmZWN0cyh1bml0KXtcbiAgcmV0dXJuIEZMQUcoXCJlZmZlY3RzXCIpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfd3JhcF9leGNlcHRpb24gY29uc3QgKG11dGFibGUpXG4vL1JlcXVpcmVzOiBjYW1sX2dsb2JhbF9kYXRhLGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nLGNhbWxfbmFtZWRfdmFsdWVcbmZ1bmN0aW9uIGNhbWxfd3JhcF9leGNlcHRpb24oZSkge1xuICBpZiAoRkxBRyhcImV4Y3dyYXBcIikpIHtcbiAgICBpZihlIGluc3RhbmNlb2YgQXJyYXkpIHJldHVybiBlO1xuICAgIHZhciBleG47XG4gICAgLy9TdGFja19vdmVyZmxvdzogY2hyb21lLCBzYWZhcmlcbiAgICBpZihnbG9iYWxUaGlzLlJhbmdlRXJyb3JcbiAgICAgICAmJiBlIGluc3RhbmNlb2YgZ2xvYmFsVGhpcy5SYW5nZUVycm9yXG4gICAgICAgJiYgZS5tZXNzYWdlXG4gICAgICAgJiYgZS5tZXNzYWdlLm1hdGNoKC9tYXhpbXVtIGNhbGwgc3RhY2svaSkpXG4gICAgICBleG4gPSBjYW1sX2dsb2JhbF9kYXRhLlN0YWNrX292ZXJmbG93O1xuICAgIC8vU3RhY2tfb3ZlcmZsb3c6IGZpcmVmb3hcbiAgICBlbHNlIGlmKGdsb2JhbFRoaXMuSW50ZXJuYWxFcnJvclxuICAgICAgICYmIGUgaW5zdGFuY2VvZiBnbG9iYWxUaGlzLkludGVybmFsRXJyb3JcbiAgICAgICAmJiBlLm1lc3NhZ2VcbiAgICAgICAmJiBlLm1lc3NhZ2UubWF0Y2goL3RvbyBtdWNoIHJlY3Vyc2lvbi9pKSlcbiAgICAgIGV4biA9IGNhbWxfZ2xvYmFsX2RhdGEuU3RhY2tfb3ZlcmZsb3c7XG4gICAgLy9XcmFwIEVycm9yIGluIEpzLkVycm9yIGV4Y2VwdGlvblxuICAgIGVsc2UgaWYoZSBpbnN0YW5jZW9mIGdsb2JhbFRoaXMuRXJyb3IgJiYgY2FtbF9uYW1lZF92YWx1ZShcImpzRXJyb3JcIikpXG4gICAgICBleG4gPSBbMCxjYW1sX25hbWVkX3ZhbHVlKFwianNFcnJvclwiKSxlXTtcbiAgICBlbHNlXG4gICAgICAvL2ZhbGxiYWNrOiB3cmFwcGVkIGluIEZhaWx1cmVcbiAgICAgIGV4biA9IFswLGNhbWxfZ2xvYmFsX2RhdGEuRmFpbHVyZSxjYW1sX3N0cmluZ19vZl9qc3N0cmluZyAoU3RyaW5nKGUpKV07XG4gICAgLy8gV2UgYWxyZWFkeSBoYXZlIGFuIGVycm9yIGF0IGhhbmQsIGxldCdzIHVzZSBpdC5cbiAgICBpZiAoZSBpbnN0YW5jZW9mIGdsb2JhbFRoaXMuRXJyb3IpXG4gICAgICBleG4uanNfZXJyb3IgPSBlO1xuICAgIHJldHVybiBleG47XG4gIH0gZWxzZVxuICAgIHJldHVybiBlO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21heWJlX2F0dGFjaF9iYWNrdHJhY2Vcbi8vUmVxdWlyZXM6IGNhbWxfZXhuX3dpdGhfanNfYmFja3RyYWNlXG4vL1JlcXVpcmVzOiBjYW1sX3JlY29yZF9iYWNrdHJhY2VfZmxhZ1xuZnVuY3Rpb24gY2FtbF9tYXliZV9hdHRhY2hfYmFja3RyYWNlKGV4biwgZm9yY2UpIHtcbiAgaWYoY2FtbF9yZWNvcmRfYmFja3RyYWNlX2ZsYWcpXG4gICAgcmV0dXJuIGNhbWxfZXhuX3dpdGhfanNfYmFja3RyYWNlKGV4biwgZm9yY2UpO1xuICBlbHNlIHJldHVybiBleG5cbn1cblxuLy8gRXhwZXJpbWVudGFsXG4vL1Byb3ZpZGVzOiBjYW1sX2V4bl93aXRoX2pzX2JhY2t0cmFjZVxuLy9SZXF1aXJlczogY2FtbF9nbG9iYWxfZGF0YVxuZnVuY3Rpb24gY2FtbF9leG5fd2l0aF9qc19iYWNrdHJhY2UoZXhuLCBmb3JjZSkge1xuICAvL25ldmVyIHJlcmFpc2UgZm9yIGNvbnN0YW50IGV4blxuICBpZighZXhuLmpzX2Vycm9yIHx8IGZvcmNlIHx8IGV4blswXSA9PSAyNDgpIGV4bi5qc19lcnJvciA9IG5ldyBnbG9iYWxUaGlzLkVycm9yKFwiSnMgZXhjZXB0aW9uIGNvbnRhaW5pbmcgYmFja3RyYWNlXCIpO1xuICByZXR1cm4gZXhuO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfZXJyb3Jfb3B0aW9uX29mX2V4Y2VwdGlvblxuZnVuY3Rpb24gY2FtbF9qc19lcnJvcl9vcHRpb25fb2ZfZXhjZXB0aW9uKGV4bikge1xuICBpZihleG4uanNfZXJyb3IpIHsgcmV0dXJuIFswLCBleG4uanNfZXJyb3JdOyB9XG4gIHJldHVybiAwO1xufVxuXG5cblxuLy9Qcm92aWRlczogY2FtbF9qc19mcm9tX2Jvb2wgY29uc3QgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9qc19mcm9tX2Jvb2woeCkgeyByZXR1cm4gISF4OyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3RvX2Jvb2wgY29uc3QgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9qc190b19ib29sKHgpIHsgcmV0dXJuICt4OyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2Zyb21fZmxvYXQgY29uc3QgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9qc19mcm9tX2Zsb2F0KHgpIHsgcmV0dXJuIHg7IH1cbi8vUHJvdmlkZXM6IGNhbWxfanNfdG9fZmxvYXQgY29uc3QgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9qc190b19mbG9hdCh4KSB7IHJldHVybiB4OyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfZnJvbV9hcnJheSBtdXRhYmxlIChzaGFsbG93KVxuZnVuY3Rpb24gY2FtbF9qc19mcm9tX2FycmF5KGEpIHtcbiAgcmV0dXJuIGEuc2xpY2UoMSk7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3RvX2FycmF5IG11dGFibGUgKHNoYWxsb3cpXG5mdW5jdGlvbiBjYW1sX2pzX3RvX2FycmF5KGEpIHtcbiAgdmFyIGxlbiA9IGEubGVuZ3RoO1xuICB2YXIgYiA9IG5ldyBBcnJheShsZW4rMSk7XG4gIGJbMF0gPSAwO1xuICBmb3IodmFyIGk9MDtpPGxlbjtpKyspIGJbaSsxXSA9IGFbaV07XG4gIHJldHVybiBiO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2xpc3Rfb2ZfanNfYXJyYXkgY29uc3QgKG11dGFibGUpXG5mdW5jdGlvbiBjYW1sX2xpc3Rfb2ZfanNfYXJyYXkoYSl7XG4gIHZhciBsID0gMDtcbiAgZm9yKHZhciBpPWEubGVuZ3RoIC0gMTsgaT49MDsgaS0tKXtcbiAgICB2YXIgZSA9IGFbaV07XG4gICAgbCA9IFswLGUsbF07XG4gIH1cbiAgcmV0dXJuIGxcbn1cblxuLy9Qcm92aWRlczogY2FtbF9saXN0X3RvX2pzX2FycmF5IGNvbnN0IChtdXRhYmxlKVxuZnVuY3Rpb24gY2FtbF9saXN0X3RvX2pzX2FycmF5KGwpe1xuICB2YXIgYSA9IFtdO1xuICBmb3IoOyBsICE9PSAwOyBsID0gbFsyXSkge1xuICAgIGEucHVzaChsWzFdKTtcbiAgfVxuICByZXR1cm4gYTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9qc192YXIgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNfdmFyKHgpIHtcbiAgdmFyIHggPSBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyh4KTtcbiAgLy9DaGVja3MgdGhhdCB4IGhhcyB0aGUgZm9ybSBpZGVudFsuaWRlbnRdKlxuICBpZigheC5tYXRjaCgvXlthLXpBLVpfJF1bYS16QS1aXyQwLTldKihcXC5bYS16QS1aXyRdW2EtekEtWl8kMC05XSopKiQvKSl7XG4gICAgY29uc29sZS5lcnJvcihcImNhbWxfanNfdmFyOiBcXFwiXCIgKyB4ICsgXCJcXFwiIGlzIG5vdCBhIHZhbGlkIEphdmFTY3JpcHQgdmFyaWFibGUuIGNvbnRpbnVpbmcgLi5cIik7XG4gICAgLy9jb25zb2xlLmVycm9yKFwiSnMuVW5zYWZlLmV2YWxfc3RyaW5nXCIpXG4gIH1cbiAgcmV0dXJuIGV2YWwoeCk7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2NhbGwgKGNvbnN0LCBtdXRhYmxlLCBzaGFsbG93KVxuLy9SZXF1aXJlczogY2FtbF9qc19mcm9tX2FycmF5XG5mdW5jdGlvbiBjYW1sX2pzX2NhbGwoZiwgbywgYXJncykgeyByZXR1cm4gZi5hcHBseShvLCBjYW1sX2pzX2Zyb21fYXJyYXkoYXJncykpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2Z1bl9jYWxsIChjb25zdCwgc2hhbGxvdylcbi8vUmVxdWlyZXM6IGNhbWxfanNfZnJvbV9hcnJheVxuZnVuY3Rpb24gY2FtbF9qc19mdW5fY2FsbChmLCBhKSB7XG4gIHN3aXRjaCAoYS5sZW5ndGgpIHtcbiAgY2FzZSAxOiByZXR1cm4gZigpO1xuICBjYXNlIDI6IHJldHVybiBmIChhWzFdKTtcbiAgY2FzZSAzOiByZXR1cm4gZiAoYVsxXSxhWzJdKTtcbiAgY2FzZSA0OiByZXR1cm4gZiAoYVsxXSxhWzJdLGFbM10pO1xuICBjYXNlIDU6IHJldHVybiBmIChhWzFdLGFbMl0sYVszXSxhWzRdKTtcbiAgY2FzZSA2OiByZXR1cm4gZiAoYVsxXSxhWzJdLGFbM10sYVs0XSxhWzVdKTtcbiAgY2FzZSA3OiByZXR1cm4gZiAoYVsxXSxhWzJdLGFbM10sYVs0XSxhWzVdLGFbNl0pO1xuICBjYXNlIDg6IHJldHVybiBmIChhWzFdLGFbMl0sYVszXSxhWzRdLGFbNV0sYVs2XSxhWzddKTtcbiAgfVxuICByZXR1cm4gZi5hcHBseShudWxsLCBjYW1sX2pzX2Zyb21fYXJyYXkoYSkpO1xufVxuLy9Qcm92aWRlczogY2FtbF9qc19tZXRoX2NhbGwgKG11dGFibGUsIGNvbnN0LCBzaGFsbG93KVxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfanNfZnJvbV9hcnJheVxuZnVuY3Rpb24gY2FtbF9qc19tZXRoX2NhbGwobywgZiwgYXJncykge1xuICByZXR1cm4gb1tjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhmKV0uYXBwbHkobywgY2FtbF9qc19mcm9tX2FycmF5KGFyZ3MpKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfanNfbmV3IChjb25zdCwgc2hhbGxvdylcbi8vUmVxdWlyZXM6IGNhbWxfanNfZnJvbV9hcnJheVxuZnVuY3Rpb24gY2FtbF9qc19uZXcoYywgYSkge1xuICBzd2l0Y2ggKGEubGVuZ3RoKSB7XG4gIGNhc2UgMTogcmV0dXJuIG5ldyBjO1xuICBjYXNlIDI6IHJldHVybiBuZXcgYyAoYVsxXSk7XG4gIGNhc2UgMzogcmV0dXJuIG5ldyBjIChhWzFdLGFbMl0pO1xuICBjYXNlIDQ6IHJldHVybiBuZXcgYyAoYVsxXSxhWzJdLGFbM10pO1xuICBjYXNlIDU6IHJldHVybiBuZXcgYyAoYVsxXSxhWzJdLGFbM10sYVs0XSk7XG4gIGNhc2UgNjogcmV0dXJuIG5ldyBjIChhWzFdLGFbMl0sYVszXSxhWzRdLGFbNV0pO1xuICBjYXNlIDc6IHJldHVybiBuZXcgYyAoYVsxXSxhWzJdLGFbM10sYVs0XSxhWzVdLGFbNl0pO1xuICBjYXNlIDg6IHJldHVybiBuZXcgYyAoYVsxXSxhWzJdLGFbM10sYVs0XSxhWzVdLGFbNl0sYVs3XSk7XG4gIH1cbiAgZnVuY3Rpb24gRigpIHsgcmV0dXJuIGMuYXBwbHkodGhpcywgY2FtbF9qc19mcm9tX2FycmF5KGEpKTsgfVxuICBGLnByb3RvdHlwZSA9IGMucHJvdG90eXBlO1xuICByZXR1cm4gbmV3IEY7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX29qc19uZXdfYXJyIChjb25zdCwgc2hhbGxvdylcbi8vUmVxdWlyZXM6IGNhbWxfanNfZnJvbV9hcnJheVxuZnVuY3Rpb24gY2FtbF9vanNfbmV3X2FycihjLCBhKSB7XG4gIHN3aXRjaCAoYS5sZW5ndGgpIHtcbiAgY2FzZSAwOiByZXR1cm4gbmV3IGM7XG4gIGNhc2UgMTogcmV0dXJuIG5ldyBjIChhWzBdKTtcbiAgY2FzZSAyOiByZXR1cm4gbmV3IGMgKGFbMF0sYVsxXSk7XG4gIGNhc2UgMzogcmV0dXJuIG5ldyBjIChhWzBdLGFbMV0sYVsyXSk7XG4gIGNhc2UgNDogcmV0dXJuIG5ldyBjIChhWzBdLGFbMV0sYVsyXSxhWzNdKTtcbiAgY2FzZSA1OiByZXR1cm4gbmV3IGMgKGFbMF0sYVsxXSxhWzJdLGFbM10sYVs0XSk7XG4gIGNhc2UgNjogcmV0dXJuIG5ldyBjIChhWzBdLGFbMV0sYVsyXSxhWzNdLGFbNF0sYVs1XSk7XG4gIGNhc2UgNzogcmV0dXJuIG5ldyBjIChhWzBdLGFbMV0sYVsyXSxhWzNdLGFbNF0sYVs1XSxhWzZdKTtcbiAgfVxuICBmdW5jdGlvbiBGKCkgeyByZXR1cm4gYy5hcHBseSh0aGlzLCBhKTsgfVxuICBGLnByb3RvdHlwZSA9IGMucHJvdG90eXBlO1xuICByZXR1cm4gbmV3IEY7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3dyYXBfY2FsbGJhY2sgY29uc3QgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jYWxsYmFja1xuZnVuY3Rpb24gY2FtbF9qc193cmFwX2NhbGxiYWNrKGYpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICBpZihsZW4gPiAwKXtcbiAgICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGxlbik7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSBhcmdzW2ldID0gYXJndW1lbnRzW2ldO1xuICAgIH0gZWxzZSB7XG4gICAgICBhcmdzID0gW3VuZGVmaW5lZF07XG4gICAgfVxuICAgIHZhciByZXMgPSBjYW1sX2NhbGxiYWNrKGYsIGFyZ3MpO1xuICAgIHJldHVybiAocmVzIGluc3RhbmNlb2YgRnVuY3Rpb24pP2NhbWxfanNfd3JhcF9jYWxsYmFjayhyZXMpOnJlcztcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3dyYXBfY2FsbGJhY2tfYXJndW1lbnRzXG4vL1JlcXVpcmVzOiBjYW1sX2NhbGxiYWNrXG5mdW5jdGlvbiBjYW1sX2pzX3dyYXBfY2FsbGJhY2tfYXJndW1lbnRzKGYpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciBsZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGxlbik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgYXJnc1tpXSA9IGFyZ3VtZW50c1tpXTtcbiAgICByZXR1cm4gY2FtbF9jYWxsYmFjayhmLCBbYXJnc10pO1xuICB9XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3dyYXBfY2FsbGJhY2tfc3RyaWN0IGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2NhbGxiYWNrXG5mdW5jdGlvbiBjYW1sX2pzX3dyYXBfY2FsbGJhY2tfc3RyaWN0KGFyaXR5LCBmKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIG4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGFyaXR5KTtcbiAgICB2YXIgbGVuID0gTWF0aC5taW4oYXJndW1lbnRzLmxlbmd0aCwgYXJpdHkpXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgYXJnc1tpXSA9IGFyZ3VtZW50c1tpXTtcbiAgICByZXR1cm4gY2FtbF9jYWxsYmFjayhmLCBhcmdzKTtcbiAgfTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfanNfd3JhcF9jYWxsYmFja191bnNhZmUgY29uc3QgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jYWxsYmFjaywgY2FtbF9qc19mdW5jdGlvbl9hcml0eVxuZnVuY3Rpb24gY2FtbF9qc193cmFwX2NhbGxiYWNrX3Vuc2FmZShmKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGxlbiA9IGNhbWxfanNfZnVuY3Rpb25fYXJpdHkoZik7XG4gICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkobGVuKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSBhcmdzW2ldID0gYXJndW1lbnRzW2ldO1xuICAgIHJldHVybiBjYW1sX2NhbGxiYWNrKGYsIGFyZ3MpOyB9XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFjayBjb25zdCAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NhbGxiYWNrLCBjYW1sX2pzX3dyYXBfY2FsbGJhY2tcbmZ1bmN0aW9uIGNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrKGYpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShsZW4gKyAxKTtcbiAgICBhcmdzWzBdID0gdGhpcztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSBhcmdzW2krMV0gPSBhcmd1bWVudHNbaV07XG4gICAgdmFyIHJlcyA9IGNhbWxfY2FsbGJhY2soZixhcmdzKTtcbiAgICByZXR1cm4gKHJlcyBpbnN0YW5jZW9mIEZ1bmN0aW9uKT9jYW1sX2pzX3dyYXBfY2FsbGJhY2socmVzKTpyZXM7XG4gIH1cbn1cbi8vUHJvdmlkZXM6IGNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX2FyZ3VtZW50cyBjb25zdCAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NhbGxiYWNrXG5mdW5jdGlvbiBjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja19hcmd1bWVudHMoZikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBsZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGxlbik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgYXJnc1tpXSA9IGFyZ3VtZW50c1tpXTtcbiAgICByZXR1cm4gY2FtbF9jYWxsYmFjayhmLFt0aGlzLGFyZ3NdKTtcbiAgfVxufVxuLy9Qcm92aWRlczogY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfc3RyaWN0IGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2NhbGxiYWNrXG5mdW5jdGlvbiBjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja19zdHJpY3QoYXJpdHksIGYpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShhcml0eSArIDEpO1xuICAgIHZhciBsZW4gPSBNYXRoLm1pbihhcmd1bWVudHMubGVuZ3RoLCBhcml0eSlcbiAgICBhcmdzWzBdID0gdGhpcztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSBhcmdzW2krMV0gPSBhcmd1bWVudHNbaV07XG4gICAgcmV0dXJuIGNhbWxfY2FsbGJhY2soZiwgYXJncyk7XG4gIH07XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja191bnNhZmUgY29uc3QgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jYWxsYmFjaywgY2FtbF9qc19mdW5jdGlvbl9hcml0eVxuZnVuY3Rpb24gY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfdW5zYWZlKGYpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgbGVuID0gY2FtbF9qc19mdW5jdGlvbl9hcml0eShmKSAtIDE7XG4gICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkobGVuICsgMSk7XG4gICAgYXJnc1swXSA9IHRoaXM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgYXJnc1tpKzFdID0gYXJndW1lbnRzW2ldO1xuICAgIHJldHVybiBjYW1sX2NhbGxiYWNrKGYsIGFyZ3MpOyB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfZnVuY3Rpb25fYXJpdHlcbi8vSWY6ICFlZmZlY3RzXG5mdW5jdGlvbiBjYW1sX2pzX2Z1bmN0aW9uX2FyaXR5KGYpIHtcbiAgcmV0dXJuIChmLmwgPj0gMCk/Zi5sOihmLmwgPSBmLmxlbmd0aClcbn1cblxuLy9Qcm92aWRlczogY2FtbF9qc19mdW5jdGlvbl9hcml0eVxuLy9JZjogZWZmZWN0c1xuZnVuY3Rpb24gY2FtbF9qc19mdW5jdGlvbl9hcml0eShmKSB7XG4gIC8vIEZ1bmN0aW9ucyBoYXZlIGFuIGFkZGl0aW9uYWwgY29udGludWF0aW9uIHBhcmFtZXRlci4gVGhpcyBzaG91bGRcbiAgLy8gbm90IGJlIHZpc2libGUgd2hlbiBjYWxsaW5nIHRoZW0gZnJvbSBKYXZhU2NyaXB0XG4gIHJldHVybiAoKGYubCA+PSAwKT9mLmw6KGYubCA9IGYubGVuZ3RoKSkgLSAxXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfZXF1YWxzIG11dGFibGUgKGNvbnN0LCBjb25zdClcbmZ1bmN0aW9uIGNhbWxfanNfZXF1YWxzICh4LCB5KSB7IHJldHVybiArKHggPT0geSk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9qc19ldmFsX3N0cmluZyAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9qc19ldmFsX3N0cmluZyAocykge3JldHVybiBldmFsKGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHMpKTt9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfZXhwciAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9qc19leHByKHMpIHtcbiAgY29uc29sZS5lcnJvcihcImNhbWxfanNfZXhwcjogZmFsbGJhY2sgdG8gcnVudGltZSBldmFsdWF0aW9uXFxuXCIpO1xuICByZXR1cm4gZXZhbChjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhzKSk7fVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3B1cmVfanNfZXhwciBjb25zdCAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9wdXJlX2pzX2V4cHIgKHMpe1xuICBjb25zb2xlLmVycm9yKFwiY2FtbF9wdXJlX2pzX2V4cHI6IGZhbGxiYWNrIHRvIHJ1bnRpbWUgZXZhbHVhdGlvblxcblwiKTtcbiAgcmV0dXJuIGV2YWwoY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcocykpO31cblxuLy9Qcm92aWRlczogY2FtbF9qc19vYmplY3QgKG9iamVjdF9saXRlcmFsKVxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNfb2JqZWN0IChhKSB7XG4gIHZhciBvID0ge307XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgYS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBwID0gYVtpXTtcbiAgICBvW2NhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHBbMV0pXSA9IHBbMl07XG4gIH1cbiAgcmV0dXJuIG87XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vLy8vLy8vLy8vLy8vIEZvcm1hdFxuXG4vL1Byb3ZpZGVzOiBjYW1sX3BhcnNlX2Zvcm1hdFxuLy9SZXF1aXJlczogY2FtbF9qc2J5dGVzX29mX3N0cmluZywgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX3BhcnNlX2Zvcm1hdCAoZm10KSB7XG4gIGZtdCA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcoZm10KTtcbiAgdmFyIGxlbiA9IGZtdC5sZW5ndGg7XG4gIGlmIChsZW4gPiAzMSkgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiZm9ybWF0X2ludDogZm9ybWF0IHRvbyBsb25nXCIpO1xuICB2YXIgZiA9XG4gICAgICB7IGp1c3RpZnk6JysnLCBzaWduc3R5bGU6Jy0nLCBmaWxsZXI6JyAnLCBhbHRlcm5hdGU6ZmFsc2UsXG4gICAgICAgIGJhc2U6MCwgc2lnbmVkY29udjpmYWxzZSwgd2lkdGg6MCwgdXBwZXJjYXNlOmZhbHNlLFxuICAgICAgICBzaWduOjEsIHByZWM6LTEsIGNvbnY6J2YnIH07XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICB2YXIgYyA9IGZtdC5jaGFyQXQoaSk7XG4gICAgc3dpdGNoIChjKSB7XG4gICAgY2FzZSAnLSc6XG4gICAgICBmLmp1c3RpZnkgPSAnLSc7IGJyZWFrO1xuICAgIGNhc2UgJysnOiBjYXNlICcgJzpcbiAgICAgIGYuc2lnbnN0eWxlID0gYzsgYnJlYWs7XG4gICAgY2FzZSAnMCc6XG4gICAgICBmLmZpbGxlciA9ICcwJzsgYnJlYWs7XG4gICAgY2FzZSAnIyc6XG4gICAgICBmLmFsdGVybmF0ZSA9IHRydWU7IGJyZWFrO1xuICAgIGNhc2UgJzEnOiBjYXNlICcyJzogY2FzZSAnMyc6IGNhc2UgJzQnOiBjYXNlICc1JzpcbiAgICBjYXNlICc2JzogY2FzZSAnNyc6IGNhc2UgJzgnOiBjYXNlICc5JzpcbiAgICAgIGYud2lkdGggPSAwO1xuICAgICAgd2hpbGUgKGM9Zm10LmNoYXJDb2RlQXQoaSkgLSA0OCwgYyA+PSAwICYmIGMgPD0gOSkge1xuICAgICAgICBmLndpZHRoID0gZi53aWR0aCAqIDEwICsgYzsgaSsrXG4gICAgICB9XG4gICAgICBpLS07XG4gICAgICBicmVhaztcbiAgICBjYXNlICcuJzpcbiAgICAgIGYucHJlYyA9IDA7XG4gICAgICBpKys7XG4gICAgICB3aGlsZSAoYz1mbXQuY2hhckNvZGVBdChpKSAtIDQ4LCBjID49IDAgJiYgYyA8PSA5KSB7XG4gICAgICAgIGYucHJlYyA9IGYucHJlYyAqIDEwICsgYzsgaSsrXG4gICAgICB9XG4gICAgICBpLS07XG4gICAgY2FzZSAnZCc6IGNhc2UgJ2knOlxuICAgICAgZi5zaWduZWRjb252ID0gdHJ1ZTsgLyogZmFsbHRocm91Z2ggKi9cbiAgICBjYXNlICd1JzpcbiAgICAgIGYuYmFzZSA9IDEwOyBicmVhaztcbiAgICBjYXNlICd4JzpcbiAgICAgIGYuYmFzZSA9IDE2OyBicmVhaztcbiAgICBjYXNlICdYJzpcbiAgICAgIGYuYmFzZSA9IDE2OyBmLnVwcGVyY2FzZSA9IHRydWU7IGJyZWFrO1xuICAgIGNhc2UgJ28nOlxuICAgICAgZi5iYXNlID0gODsgYnJlYWs7XG4gICAgY2FzZSAnZSc6IGNhc2UgJ2YnOiBjYXNlICdnJzpcbiAgICAgIGYuc2lnbmVkY29udiA9IHRydWU7IGYuY29udiA9IGM7IGJyZWFrO1xuICAgIGNhc2UgJ0UnOiBjYXNlICdGJzogY2FzZSAnRyc6XG4gICAgICBmLnNpZ25lZGNvbnYgPSB0cnVlOyBmLnVwcGVyY2FzZSA9IHRydWU7XG4gICAgICBmLmNvbnYgPSBjLnRvTG93ZXJDYXNlICgpOyBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGY7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmluaXNoX2Zvcm1hdHRpbmdcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfZmluaXNoX2Zvcm1hdHRpbmcoZiwgcmF3YnVmZmVyKSB7XG4gIGlmIChmLnVwcGVyY2FzZSkgcmF3YnVmZmVyID0gcmF3YnVmZmVyLnRvVXBwZXJDYXNlKCk7XG4gIHZhciBsZW4gPSByYXdidWZmZXIubGVuZ3RoO1xuICAvKiBBZGp1c3QgbGVuIHRvIHJlZmxlY3QgYWRkaXRpb25hbCBjaGFycyAoc2lnbiwgZXRjKSAqL1xuICBpZiAoZi5zaWduZWRjb252ICYmIChmLnNpZ24gPCAwIHx8IGYuc2lnbnN0eWxlICE9ICctJykpIGxlbisrO1xuICBpZiAoZi5hbHRlcm5hdGUpIHtcbiAgICBpZiAoZi5iYXNlID09IDgpIGxlbiArPSAxO1xuICAgIGlmIChmLmJhc2UgPT0gMTYpIGxlbiArPSAyO1xuICB9XG4gIC8qIERvIHRoZSBmb3JtYXR0aW5nICovXG4gIHZhciBidWZmZXIgPSBcIlwiO1xuICBpZiAoZi5qdXN0aWZ5ID09ICcrJyAmJiBmLmZpbGxlciA9PSAnICcpXG4gICAgZm9yICh2YXIgaSA9IGxlbjsgaSA8IGYud2lkdGg7IGkrKykgYnVmZmVyICs9ICcgJztcbiAgaWYgKGYuc2lnbmVkY29udikge1xuICAgIGlmIChmLnNpZ24gPCAwKSBidWZmZXIgKz0gJy0nO1xuICAgIGVsc2UgaWYgKGYuc2lnbnN0eWxlICE9ICctJykgYnVmZmVyICs9IGYuc2lnbnN0eWxlO1xuICB9XG4gIGlmIChmLmFsdGVybmF0ZSAmJiBmLmJhc2UgPT0gOCkgYnVmZmVyICs9ICcwJztcbiAgaWYgKGYuYWx0ZXJuYXRlICYmIGYuYmFzZSA9PSAxNikgYnVmZmVyICs9IGYudXBwZXJjYXNlP1wiMFhcIjpcIjB4XCI7XG4gIGlmIChmLmp1c3RpZnkgPT0gJysnICYmIGYuZmlsbGVyID09ICcwJylcbiAgICBmb3IgKHZhciBpID0gbGVuOyBpIDwgZi53aWR0aDsgaSsrKSBidWZmZXIgKz0gJzAnO1xuICBidWZmZXIgKz0gcmF3YnVmZmVyO1xuICBpZiAoZi5qdXN0aWZ5ID09ICctJylcbiAgICBmb3IgKHZhciBpID0gbGVuOyBpIDwgZi53aWR0aDsgaSsrKSBidWZmZXIgKz0gJyAnO1xuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhidWZmZXIpO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUHJvdmlkZXM6IGpzb29fZmxvb3JfbG9nMlxudmFyIGxvZzJfb2sgPSBNYXRoLmxvZzIgJiYgTWF0aC5sb2cyKDEuMTIzNTU4MjA5Mjg4OTQ3NEUrMzA3KSA9PSAxMDIwXG5mdW5jdGlvbiBqc29vX2Zsb29yX2xvZzIoeCkge1xuICBpZihsb2cyX29rKSByZXR1cm4gTWF0aC5mbG9vcihNYXRoLmxvZzIoeCkpXG4gIHZhciBpID0gMDtcbiAgaWYgKHggPT0gMCkgcmV0dXJuIC1JbmZpbml0eTtcbiAgaWYoeD49MSkge3doaWxlICh4Pj0yKSB7eC89MjsgaSsrfSB9XG4gIGVsc2Uge3doaWxlICh4IDwgMSkge3gqPTI7IGktLX0gfTtcbiAgcmV0dXJuIGk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfYml0c19vZl9mbG9hdCBjb25zdFxuLy9SZXF1aXJlczoganNvb19mbG9vcl9sb2cyLCBjYW1sX2ludDY0X2NyZWF0ZV9sb19taV9oaVxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0ICh4KSB7XG4gIGlmICghaXNGaW5pdGUoeCkpIHtcbiAgICBpZiAoaXNOYU4oeCkpXG4gICAgICByZXR1cm4gY2FtbF9pbnQ2NF9jcmVhdGVfbG9fbWlfaGkoMSwgMCwgMHg3ZmYwKTtcbiAgICBpZiAoeCA+IDApXG4gICAgICByZXR1cm4gY2FtbF9pbnQ2NF9jcmVhdGVfbG9fbWlfaGkoMCwgMCwgMHg3ZmYwKVxuICAgIGVsc2VcbiAgICAgIHJldHVybiBjYW1sX2ludDY0X2NyZWF0ZV9sb19taV9oaSgwLCAwLCAweGZmZjApXG4gIH1cbiAgdmFyIHNpZ24gPSAoeD09MCAmJiAxL3ggPT0gLUluZmluaXR5KT8weDgwMDA6KHg+PTApPzA6MHg4MDAwO1xuICBpZiAoc2lnbikgeCA9IC14O1xuICAvLyBJbnQ2NC5iaXRzX29mX2Zsb2F0IDEuMTIzNTU4MjA5Mjg4OTQ3NEUrMzA3ID0gMHg3ZmIwMDAwMDAwMDAwMDAwTFxuICAvLyB1c2luZyBNYXRoLkxPRzJFKk1hdGgubG9nKHgpIGluIHBsYWNlIG9mIE1hdGgubG9nMiByZXN1bHQgaW4gcHJlY2lzaW9uIGxvc3RcbiAgdmFyIGV4cCA9IGpzb29fZmxvb3JfbG9nMih4KSArIDEwMjM7XG4gIGlmIChleHAgPD0gMCkge1xuICAgIGV4cCA9IDA7XG4gICAgeCAvPSBNYXRoLnBvdygyLC0xMDI2KTtcbiAgfSBlbHNlIHtcbiAgICB4IC89IE1hdGgucG93KDIsZXhwLTEwMjcpO1xuICAgIGlmICh4IDwgMTYpIHtcbiAgICAgIHggKj0gMjsgZXhwIC09MTsgfVxuICAgIGlmIChleHAgPT0gMCkge1xuICAgICAgeCAvPSAyOyB9XG4gIH1cbiAgdmFyIGsgPSBNYXRoLnBvdygyLDI0KTtcbiAgdmFyIHIzID0geHwwO1xuICB4ID0gKHggLSByMykgKiBrO1xuICB2YXIgcjIgPSB4fDA7XG4gIHggPSAoeCAtIHIyKSAqIGs7XG4gIHZhciByMSA9IHh8MDtcbiAgcjMgPSAocjMgJjB4ZikgfCBzaWduIHwgZXhwIDw8IDQ7XG4gIHJldHVybiBjYW1sX2ludDY0X2NyZWF0ZV9sb19taV9oaShyMSwgcjIsIHIzKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0IGNvbnN0XG4vL1JlcXVpcmVzOiBqc29vX2Zsb29yX2xvZzJcbmZ1bmN0aW9uIGNhbWxfaW50MzJfYml0c19vZl9mbG9hdCAoeCkge1xuICB2YXIgZmxvYXQzMmEgPSBuZXcgRmxvYXQzMkFycmF5KDEpO1xuICBmbG9hdDMyYVswXSA9IHg7XG4gIHZhciBpbnQzMmEgPSBuZXcgSW50MzJBcnJheShmbG9hdDMyYS5idWZmZXIpO1xuICByZXR1cm4gaW50MzJhWzBdIHwgMDtcbn1cblxuLy9GUCBsaXRlcmFscyBjYW4gYmUgd3JpdHRlbiB1c2luZyB0aGUgaGV4YWRlY2ltYWxcbi8vbm90YXRpb24gMHg8bWFudGlzc2EgaW4gaGV4PnA8ZXhwb25lbnQ+IGZyb20gSVNPIEM5OS5cbi8vaHR0cHM6Ly9naXRodWIuY29tL2RhbmtvZ2FpL2pzLWhleGZsb2F0L2Jsb2IvbWFzdGVyL2hleGZsb2F0LmpzXG4vL1Byb3ZpZGVzOiBjYW1sX2hleHN0cmluZ19vZl9mbG9hdCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcsIGNhbWxfc3RyX3JlcGVhdFxuZnVuY3Rpb24gY2FtbF9oZXhzdHJpbmdfb2ZfZmxvYXQgKHgsIHByZWMsIHN0eWxlKSB7XG4gIGlmICghaXNGaW5pdGUoeCkpIHtcbiAgICBpZiAoaXNOYU4oeCkpIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhcIm5hblwiKTtcbiAgICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcgKCh4ID4gMCk/XCJpbmZpbml0eVwiOlwiLWluZmluaXR5XCIpO1xuICB9XG4gIHZhciBzaWduID0gKHg9PTAgJiYgMS94ID09IC1JbmZpbml0eSk/MTooeD49MCk/MDoxO1xuICBpZihzaWduKSB4ID0gLXg7XG4gIHZhciBleHAgPSAwO1xuICBpZiAoeCA9PSAwKSB7IH1cbiAgZWxzZSBpZiAoeCA8IDEpIHtcbiAgICB3aGlsZSAoeCA8IDEgJiYgZXhwID4gLTEwMjIpICB7IHggKj0gMjsgZXhwLS0gfVxuICB9IGVsc2Uge1xuICAgIHdoaWxlICh4ID49IDIpIHsgeCAvPSAyOyBleHArKyB9XG4gIH1cbiAgdmFyIGV4cF9zaWduID0gZXhwIDwgMCA/ICcnIDogJysnO1xuICB2YXIgc2lnbl9zdHIgPSAnJztcbiAgaWYgKHNpZ24pIHNpZ25fc3RyID0gJy0nXG4gIGVsc2Uge1xuICAgIHN3aXRjaChzdHlsZSl7XG4gICAgY2FzZSA0MyAvKiAnKycgKi86IHNpZ25fc3RyID0gJysnOyBicmVhaztcbiAgICBjYXNlIDMyIC8qICcgJyAqLzogc2lnbl9zdHIgPSAnICc7IGJyZWFrO1xuICAgIGRlZmF1bHQ6IGJyZWFrO1xuICAgIH1cbiAgfVxuICBpZiAocHJlYyA+PSAwICYmIHByZWMgPCAxMykge1xuICAgIC8qIElmIGEgcHJlY2lzaW9uIGlzIGdpdmVuLCBhbmQgaXMgc21hbGwsIHJvdW5kIG1hbnRpc3NhIGFjY29yZGluZ2x5ICovXG4gICAgdmFyIGNzdCA9IE1hdGgucG93KDIscHJlYyAqIDQpO1xuICAgIHggPSBNYXRoLnJvdW5kKHggKiBjc3QpIC8gY3N0O1xuICB9XG4gIHZhciB4X3N0ciA9IHgudG9TdHJpbmcoMTYpO1xuICBpZihwcmVjID49IDApe1xuICAgIHZhciBpZHggPSB4X3N0ci5pbmRleE9mKCcuJyk7XG4gICAgaWYoaWR4PDApIHtcbiAgICAgIHhfc3RyICs9ICcuJyArIGNhbWxfc3RyX3JlcGVhdChwcmVjLCAnMCcpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHZhciBzaXplID0gaWR4KzErcHJlYztcbiAgICAgIGlmKHhfc3RyLmxlbmd0aCA8IHNpemUpXG4gICAgICAgIHhfc3RyICs9IGNhbWxfc3RyX3JlcGVhdChzaXplIC0geF9zdHIubGVuZ3RoLCAnMCcpO1xuICAgICAgZWxzZVxuICAgICAgICB4X3N0ciA9IHhfc3RyLnN1YnN0cigwLHNpemUpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcgKHNpZ25fc3RyICsgJzB4JyArIHhfc3RyICsgJ3AnICsgZXhwX3NpZ24gKyBleHAudG9TdHJpbmcoMTApKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHMgKHgpIHtcbiAgdmFyIGxvID0geC5sbztcbiAgdmFyIG1pID0geC5taTtcbiAgdmFyIGhpID0geC5oaTtcbiAgdmFyIGV4cCA9IChoaSAmIDB4N2ZmZikgPj4gNDtcbiAgaWYgKGV4cCA9PSAyMDQ3KSB7XG4gICAgaWYgKChsb3xtaXwoaGkmMHhmKSkgPT0gMClcbiAgICAgIHJldHVybiAoaGkgJiAweDgwMDApPygtSW5maW5pdHkpOkluZmluaXR5O1xuICAgIGVsc2VcbiAgICAgIHJldHVybiBOYU47XG4gIH1cbiAgdmFyIGsgPSBNYXRoLnBvdygyLC0yNCk7XG4gIHZhciByZXMgPSAobG8qayttaSkqaysoaGkmMHhmKTtcbiAgaWYgKGV4cCA+IDApIHtcbiAgICByZXMgKz0gMTY7XG4gICAgcmVzICo9IE1hdGgucG93KDIsZXhwLTEwMjcpO1xuICB9IGVsc2VcbiAgICByZXMgKj0gTWF0aC5wb3coMiwtMTAyNik7XG4gIGlmIChoaSAmIDB4ODAwMCkgcmVzID0gLSByZXM7XG4gIHJldHVybiByZXM7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbmV4dGFmdGVyX2Zsb2F0IGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHMsIGNhbWxfaW50NjRfYml0c19vZl9mbG9hdCwgY2FtbF9pbnQ2NF9hZGQsIGNhbWxfaW50NjRfc3ViLGNhbWxfaW50NjRfb2ZfaW50MzJcbmZ1bmN0aW9uIGNhbWxfbmV4dGFmdGVyX2Zsb2F0ICh4LHkpIHtcbiAgaWYoaXNOYU4oeCkgfHwgaXNOYU4oeSkpIHJldHVybiBOYU47XG4gIGlmKHg9PXkpIHJldHVybiB5O1xuICBpZih4PT0wKXtcbiAgICBpZih5IDwgMClcbiAgICAgIHJldHVybiAtTWF0aC5wb3coMiwgLTEwNzQpXG4gICAgZWxzZVxuICAgICAgcmV0dXJuIE1hdGgucG93KDIsIC0xMDc0KVxuICB9XG4gIHZhciBiaXRzID0gY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0KHgpO1xuICB2YXIgb25lID0gY2FtbF9pbnQ2NF9vZl9pbnQzMigxKTtcbiAgaWYgKCh4PHkpID09ICh4PjApKVxuICAgIGJpdHMgPSBjYW1sX2ludDY0X2FkZChiaXRzLCBvbmUpXG4gIGVsc2VcbiAgICBiaXRzID0gY2FtbF9pbnQ2NF9zdWIoYml0cywgb25lKVxuICByZXR1cm4gY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzKGJpdHMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3RydW5jX2Zsb2F0XG5mdW5jdGlvbiBjYW1sX3RydW5jX2Zsb2F0KHgpe1xuICByZXR1cm4gTWF0aC50cnVuYyh4KTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDMyX2Zsb2F0X29mX2JpdHMgKHgpIHtcbiAgdmFyIGludDMyYSA9IG5ldyBJbnQzMkFycmF5KDEpO1xuICBpbnQzMmFbMF0gPSB4O1xuICB2YXIgZmxvYXQzMmEgPSBuZXcgRmxvYXQzMkFycmF5KGludDMyYS5idWZmZXIpO1xuICByZXR1cm4gZmxvYXQzMmFbMF07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY2xhc3NpZnlfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfY2xhc3NpZnlfZmxvYXQgKHgpIHtcbiAgaWYgKGlzRmluaXRlICh4KSkge1xuICAgIGlmIChNYXRoLmFicyh4KSA+PSAyLjIyNTA3Mzg1ODUwNzIwMTRlLTMwOCkgcmV0dXJuIDA7XG4gICAgaWYgKHggIT0gMCkgcmV0dXJuIDE7XG4gICAgcmV0dXJuIDI7XG4gIH1cbiAgcmV0dXJuIGlzTmFOKHgpPzQ6Mztcbn1cbi8vUHJvdmlkZXM6IGNhbWxfbW9kZl9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9tb2RmX2Zsb2F0ICh4KSB7XG4gIGlmIChpc0Zpbml0ZSAoeCkpIHtcbiAgICB2YXIgbmVnID0gKDEveCkgPCAwO1xuICAgIHggPSBNYXRoLmFicyh4KTtcbiAgICB2YXIgaSA9IE1hdGguZmxvb3IgKHgpO1xuICAgIHZhciBmID0geCAtIGk7XG4gICAgaWYgKG5lZykgeyBpID0gLWk7IGYgPSAtZjsgfVxuICAgIHJldHVybiBbMCwgZiwgaV07XG4gIH1cbiAgaWYgKGlzTmFOICh4KSkgcmV0dXJuIFswLCBOYU4sIE5hTl07XG4gIHJldHVybiBbMCwgMS94LCB4XTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfbGRleHBfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfbGRleHBfZmxvYXQgKHgsZXhwKSB7XG4gIGV4cCB8PSAwO1xuICBpZiAoZXhwID4gMTAyMykge1xuICAgIGV4cCAtPSAxMDIzO1xuICAgIHggKj0gTWF0aC5wb3coMiwgMTAyMyk7XG4gICAgaWYgKGV4cCA+IDEwMjMpIHsgIC8vIGluIGNhc2UgeCBpcyBzdWJub3JtYWxcbiAgICAgIGV4cCAtPSAxMDIzO1xuICAgICAgeCAqPSBNYXRoLnBvdygyLCAxMDIzKTtcbiAgICB9XG4gIH1cbiAgaWYgKGV4cCA8IC0xMDIzKSB7XG4gICAgZXhwICs9IDEwMjM7XG4gICAgeCAqPSBNYXRoLnBvdygyLCAtMTAyMyk7XG4gIH1cbiAgeCAqPSBNYXRoLnBvdygyLCBleHApO1xuICByZXR1cm4geDtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZnJleHBfZmxvYXQgY29uc3Rcbi8vUmVxdWlyZXM6IGpzb29fZmxvb3JfbG9nMlxuZnVuY3Rpb24gY2FtbF9mcmV4cF9mbG9hdCAoeCkge1xuICBpZiAoKHggPT0gMCkgfHwgIWlzRmluaXRlKHgpKSByZXR1cm4gWzAsIHgsIDBdO1xuICB2YXIgbmVnID0geCA8IDA7XG4gIGlmIChuZWcpIHggPSAtIHg7XG4gIHZhciBleHAgPSBNYXRoLm1heCgtMTAyMywganNvb19mbG9vcl9sb2cyKHgpICsgMSk7XG4gIHggKj0gTWF0aC5wb3coMiwtZXhwKTtcbiAgd2hpbGUgKHggPCAwLjUpIHtcbiAgICB4ICo9IDI7XG4gICAgZXhwLS07XG4gIH1cbiAgd2hpbGUgKHggPj0gMSkge1xuICAgIHggKj0gMC41O1xuICAgIGV4cCsrO1xuICB9XG4gIGlmIChuZWcpIHggPSAtIHg7XG4gIHJldHVybiBbMCwgeCwgZXhwXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9mbG9hdF9jb21wYXJlIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2Zsb2F0X2NvbXBhcmUgKHgsIHkpIHtcbiAgaWYgKHggPT09IHkpIHJldHVybiAwO1xuICBpZiAoeCA8IHkpIHJldHVybiAtMTtcbiAgaWYgKHggPiB5KSByZXR1cm4gMTtcbiAgaWYgKHggPT09IHgpIHJldHVybiAxO1xuICBpZiAoeSA9PT0geSkgcmV0dXJuIC0xO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jb3B5c2lnbl9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9jb3B5c2lnbl9mbG9hdCAoeCwgeSkge1xuICBpZiAoeSA9PSAwKSB5ID0gMSAvIHk7XG4gIHggPSBNYXRoLmFicyh4KTtcbiAgcmV0dXJuICh5IDwgMCk/KC14KTp4O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3NpZ25iaXRfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfc2lnbmJpdF9mbG9hdCh4KSB7XG4gIGlmICh4ID09IDApIHggPSAxIC8geDtcbiAgcmV0dXJuICh4IDwgMCk/MTowO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2V4cG0xX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2V4cG0xX2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLmV4cG0xKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2V4cDJfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfZXhwMl9mbG9hdCh4KSB7IHJldHVybiBNYXRoLnBvdygyLCB4KTsgfVxuLy9Qcm92aWRlczogY2FtbF9sb2cxcF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9sb2cxcF9mbG9hdCh4KSB7IHJldHVybiBNYXRoLmxvZzFwKHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2xvZzJfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfbG9nMl9mbG9hdCh4KSB7IHJldHVybiBNYXRoLmxvZzIoeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfaHlwb3RfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaHlwb3RfZmxvYXQgKHgsIHkpIHsgcmV0dXJuIE1hdGguaHlwb3QoeCwgeSk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfbG9nMTBfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfbG9nMTBfZmxvYXQgKHgpIHsgcmV0dXJuIE1hdGgubG9nMTAoeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfY29zaF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9jb3NoX2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLmNvc2goeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfYWNvc2hfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfYWNvc2hfZmxvYXQgKHgpIHsgcmV0dXJuIE1hdGguYWNvc2goeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfc2luaF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9zaW5oX2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLnNpbmgoeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfYXNpbmhfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfYXNpbmhfZmxvYXQgKHgpIHsgcmV0dXJuIE1hdGguYXNpbmgoeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfdGFuaF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF90YW5oX2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLnRhbmgoeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfYXRhbmhfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfYXRhbmhfZmxvYXQgKHgpIHsgcmV0dXJuIE1hdGguYXRhbmgoeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfcm91bmRfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfcm91bmRfZmxvYXQgKHgpIHsgcmV0dXJuIE1hdGgucm91bmQoeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfY2JydF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9jYnJ0X2Zsb2F0ICh4KSB7IHJldHVybiBNYXRoLmNicnQoeCk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9lcmZfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfZXJmX2Zsb2F0KHgpIHtcbiAgdmFyIGExID0gMC4yNTQ4Mjk1OTI7XG4gIHZhciBhMiA9IC0wLjI4NDQ5NjczNjtcbiAgdmFyIGEzID0gMS40MjE0MTM3NDE7XG4gIHZhciBhNCA9IC0xLjQ1MzE1MjAyNztcbiAgdmFyIGE1ID0gMS4wNjE0MDU0Mjk7XG4gIHZhciBwID0gMC4zMjc1OTExO1xuXG4gIHZhciBzaWduID0gMTtcbiAgaWYgKHggPCAwKSB7XG4gICAgc2lnbiA9IC0xO1xuICB9XG4gIHggPSBNYXRoLmFicyh4KTtcbiAgdmFyIHQgPSAxLjAgLyAoMS4wICsgcCAqIHgpO1xuICB2YXIgeSA9IDEuMCAtICgoKChhNSAqIHQgKyBhNCkgKiB0ICsgYTMpICogdCArIGEyKSAqIHQgKyBhMSkgKiB0ICogTWF0aC5leHAoLXggKiB4KTtcblxuICByZXR1cm4gc2lnbiAqIHk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXJmY19mbG9hdCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9lcmZfZmxvYXRcbmZ1bmN0aW9uIGNhbWxfZXJmY19mbG9hdCh4KSB7XG4gIHJldHVybiAxIC0gY2FtbF9lcmZfZmxvYXQoeCk7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9mbWFfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfZm1hX2Zsb2F0KHgsIHksIHopIHtcbiAgdmFyIFNQTElUID0gTWF0aC5wb3coMiwgMjcpICsgMTtcbiAgdmFyIE1JTl9WQUxVRSA9IE1hdGgucG93KDIsIC0xMDIyKTtcbiAgdmFyIEVQU0lMT04gPSBNYXRoLnBvdygyLCAtNTIpO1xuICB2YXIgQyA9IDQxNjtcbiAgdmFyIEEgPSBNYXRoLnBvdygyLCArQyk7XG4gIHZhciBCID0gTWF0aC5wb3coMiwgLUMpO1xuXG4gIGZ1bmN0aW9uIG11bHRpcGx5IChhLCBiKSB7XG4gICAgdmFyIGF0ID0gU1BMSVQgKiBhO1xuICAgIHZhciBhaGkgPSBhdCAtIChhdCAtIGEpO1xuICAgIHZhciBhbG8gPSBhIC0gYWhpO1xuICAgIHZhciBidCA9IFNQTElUICogYjtcbiAgICB2YXIgYmhpID0gYnQgLSAoYnQgLSBiKTtcbiAgICB2YXIgYmxvID0gYiAtIGJoaTtcbiAgICB2YXIgcCA9IGEgKiBiO1xuICAgIHZhciBlID0gKChhaGkgKiBiaGkgLSBwKSArIGFoaSAqIGJsbyArIGFsbyAqIGJoaSkgKyBhbG8gKiBibG87XG4gICAgcmV0dXJuIHtcbiAgICAgIHA6IHAsXG4gICAgICBlOiBlXG4gICAgfTtcbiAgfTtcblxuICBmdW5jdGlvbiBhZGQgKGEsIGIpIHtcbiAgICB2YXIgcyA9IGEgKyBiO1xuICAgIHZhciB2ID0gcyAtIGE7XG4gICAgdmFyIGUgPSAoYSAtIChzIC0gdikpICsgKGIgLSB2KTtcbiAgICByZXR1cm4ge1xuICAgICAgczogcyxcbiAgICAgIGU6IGVcbiAgICB9O1xuICB9O1xuXG4gIGZ1bmN0aW9uIGFkanVzdCAoeCwgeSkge1xuICAgIHJldHVybiB4ICE9PSAwICYmIHkgIT09IDAgJiYgU1BMSVQgKiB4IC0gKFNQTElUICogeCAtIHgpID09PSB4ID8geCAqICgxICsgKHggPCAwID8gLTEgOiArMSkgKiAoeSA8IDAgPyAtMSA6ICsxKSAqIEVQU0lMT04pIDogeDtcbiAgfTtcblxuICBpZiAoeCA9PT0gMCB8fCB4ICE9PSB4IHx8IHggPT09ICsxIC8gMCB8fCB4ID09PSAtMSAvIDAgfHxcbiAgICAgIHkgPT09IDAgfHwgeSAhPT0geSB8fCB5ID09PSArMSAvIDAgfHwgeSA9PT0gLTEgLyAwKSB7XG4gICAgcmV0dXJuIHggKiB5ICsgejtcbiAgfVxuICBpZiAoeiA9PT0gMCkge1xuICAgIHJldHVybiB4ICogeTtcbiAgfVxuICBpZiAoeiAhPT0geiB8fCB6ID09PSArMSAvIDAgfHwgeiA9PT0gLTEgLyAwKSB7XG4gICAgcmV0dXJuIHo7XG4gIH1cblxuICB2YXIgc2NhbGUgPSAxO1xuICB3aGlsZSAoTWF0aC5hYnMoeCkgPiBBKSB7XG4gICAgc2NhbGUgKj0gQTtcbiAgICB4ICo9IEI7XG4gIH1cbiAgd2hpbGUgKE1hdGguYWJzKHkpID4gQSkge1xuICAgIHNjYWxlICo9IEE7XG4gICAgeSAqPSBCO1xuICB9XG4gIGlmIChzY2FsZSA9PT0gMSAvIDApIHtcbiAgICByZXR1cm4geCAqIHkgKiBzY2FsZTtcbiAgfVxuICB3aGlsZSAoTWF0aC5hYnMoeCkgPCBCKSB7XG4gICAgc2NhbGUgKj0gQjtcbiAgICB4ICo9IEE7XG4gIH1cbiAgd2hpbGUgKE1hdGguYWJzKHkpIDwgQikge1xuICAgIHNjYWxlICo9IEI7XG4gICAgeSAqPSBBO1xuICB9XG4gIGlmIChzY2FsZSA9PT0gMCkge1xuICAgIHJldHVybiB6O1xuICB9XG5cbiAgdmFyIHhzID0geDtcbiAgdmFyIHlzID0geTtcbiAgdmFyIHpzID0geiAvIHNjYWxlO1xuXG4gIGlmIChNYXRoLmFicyh6cykgPiBNYXRoLmFicyh4cyAqIHlzKSAqIDQgLyBFUFNJTE9OKSB7XG4gICAgcmV0dXJuIHo7XG4gIH1cbiAgaWYgKE1hdGguYWJzKHpzKSA8IE1hdGguYWJzKHhzICogeXMpICogRVBTSUxPTiAvIDQgKiBFUFNJTE9OIC8gNCkge1xuICAgIHpzID0gKHogPCAwID8gLTEgOiArMSkgKiBNSU5fVkFMVUU7XG4gIH1cblxuICB2YXIgeHkgPSBtdWx0aXBseSh4cywgeXMpO1xuICB2YXIgcyA9IGFkZCh4eS5wLCB6cyk7XG4gIHZhciB1ID0gYWRkKHh5LmUsIHMuZSk7XG4gIHZhciBpID0gYWRkKHMucywgdS5zKTtcblxuICB2YXIgZiA9IGkucyArIGFkanVzdChpLmUsIHUuZSk7XG4gIGlmIChmID09PSAwKSB7XG4gICAgcmV0dXJuIGY7XG4gIH1cblxuICB2YXIgZnMgPSBmICogc2NhbGU7XG4gIGlmIChNYXRoLmFicyhmcykgPiBNSU5fVkFMVUUpIHtcbiAgICByZXR1cm4gZnM7XG4gIH1cblxuICAvLyBJdCBpcyBwb3NzaWJsZSB0aGF0IHRoZXJlIHdhcyBleHRyYSByb3VuZGluZyBmb3IgYSBkZW5vcm1hbGl6ZWQgdmFsdWUuXG4gIHJldHVybiBmcyArIGFkanVzdChmIC0gZnMgLyBzY2FsZSwgaS5lKSAqIHNjYWxlO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2Zvcm1hdF9mbG9hdCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9wYXJzZV9mb3JtYXQsIGNhbWxfZmluaXNoX2Zvcm1hdHRpbmdcbmZ1bmN0aW9uIGNhbWxfZm9ybWF0X2Zsb2F0IChmbXQsIHgpIHtcbiAgZnVuY3Rpb24gdG9GaXhlZCh4LGRwKSB7XG4gICAgaWYgKE1hdGguYWJzKHgpIDwgMS4wKSB7XG4gICAgICByZXR1cm4geC50b0ZpeGVkKGRwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGUgPSBwYXJzZUludCh4LnRvU3RyaW5nKCkuc3BsaXQoJysnKVsxXSk7XG4gICAgICBpZiAoZSA+IDIwKSB7XG4gICAgICAgIGUgLT0gMjA7XG4gICAgICAgIHggLz0gTWF0aC5wb3coMTAsZSk7XG4gICAgICAgIHggKz0gKG5ldyBBcnJheShlKzEpKS5qb2luKCcwJyk7XG4gICAgICAgIGlmKGRwID4gMCkge1xuICAgICAgICAgIHggPSB4ICsgJy4nICsgKG5ldyBBcnJheShkcCsxKSkuam9pbignMCcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB4O1xuICAgICAgfVxuICAgICAgZWxzZSByZXR1cm4geC50b0ZpeGVkKGRwKVxuICAgIH1cbiAgfVxuICB2YXIgcywgZiA9IGNhbWxfcGFyc2VfZm9ybWF0KGZtdCk7XG4gIHZhciBwcmVjID0gKGYucHJlYyA8IDApPzY6Zi5wcmVjO1xuICBpZiAoeCA8IDAgfHwgKHggPT0gMCAmJiAxL3ggPT0gLUluZmluaXR5KSkgeyBmLnNpZ24gPSAtMTsgeCA9IC14OyB9XG4gIGlmIChpc05hTih4KSkgeyBzID0gXCJuYW5cIjsgZi5maWxsZXIgPSAnICc7IH1cbiAgZWxzZSBpZiAoIWlzRmluaXRlKHgpKSB7IHMgPSBcImluZlwiOyBmLmZpbGxlciA9ICcgJzsgfVxuICBlbHNlXG4gICAgc3dpdGNoIChmLmNvbnYpIHtcbiAgICBjYXNlICdlJzpcbiAgICAgIHZhciBzID0geC50b0V4cG9uZW50aWFsKHByZWMpO1xuICAgICAgLy8gZXhwb25lbnQgc2hvdWxkIGJlIGF0IGxlYXN0IHR3byBkaWdpdHNcbiAgICAgIHZhciBpID0gcy5sZW5ndGg7XG4gICAgICBpZiAocy5jaGFyQXQoaSAtIDMpID09ICdlJylcbiAgICAgICAgcyA9IHMuc2xpY2UgKDAsIGkgLSAxKSArICcwJyArIHMuc2xpY2UgKGkgLSAxKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2YnOlxuICAgICAgcyA9IHRvRml4ZWQoeCwgcHJlYyk7IGJyZWFrO1xuICAgIGNhc2UgJ2cnOlxuICAgICAgcHJlYyA9IHByZWM/cHJlYzoxO1xuICAgICAgcyA9IHgudG9FeHBvbmVudGlhbChwcmVjIC0gMSk7XG4gICAgICB2YXIgaiA9IHMuaW5kZXhPZignZScpO1xuICAgICAgdmFyIGV4cCA9ICtzLnNsaWNlKGogKyAxKTtcbiAgICAgIGlmIChleHAgPCAtNCB8fCB4ID49IDFlMjEgfHwgeC50b0ZpeGVkKDApLmxlbmd0aCA+IHByZWMpIHtcbiAgICAgICAgLy8gcmVtb3ZlIHRyYWlsaW5nIHplcm9lc1xuICAgICAgICB2YXIgaSA9IGogLSAxOyB3aGlsZSAocy5jaGFyQXQoaSkgPT0gJzAnKSBpLS07XG4gICAgICAgIGlmIChzLmNoYXJBdChpKSA9PSAnLicpIGktLTtcbiAgICAgICAgcyA9IHMuc2xpY2UoMCwgaSArIDEpICsgcy5zbGljZShqKTtcbiAgICAgICAgaSA9IHMubGVuZ3RoO1xuICAgICAgICBpZiAocy5jaGFyQXQoaSAtIDMpID09ICdlJylcbiAgICAgICAgICBzID0gcy5zbGljZSAoMCwgaSAtIDEpICsgJzAnICsgcy5zbGljZSAoaSAtIDEpO1xuICAgICAgICBicmVhaztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBwID0gcHJlYztcbiAgICAgICAgaWYgKGV4cCA8IDApIHsgcCAtPSBleHAgKyAxOyBzID0geC50b0ZpeGVkKHApOyB9XG4gICAgICAgIGVsc2Ugd2hpbGUgKHMgPSB4LnRvRml4ZWQocCksIHMubGVuZ3RoID4gcHJlYyArIDEpIHAtLTtcbiAgICAgICAgaWYgKHApIHtcbiAgICAgICAgICAvLyByZW1vdmUgdHJhaWxpbmcgemVyb2VzXG4gICAgICAgICAgdmFyIGkgPSBzLmxlbmd0aCAtIDE7IHdoaWxlIChzLmNoYXJBdChpKSA9PSAnMCcpIGktLTtcbiAgICAgICAgICBpZiAocy5jaGFyQXQoaSkgPT0gJy4nKSBpLS07XG4gICAgICAgICAgcyA9IHMuc2xpY2UoMCwgaSArIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICB9XG4gIHJldHVybiBjYW1sX2ZpbmlzaF9mb3JtYXR0aW5nKGYsIHMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2Zsb2F0X29mX3N0cmluZyAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2Zsb2F0X29mX3N0cmluZyhzKSB7XG4gIHZhciByZXM7XG4gIHMgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHMpXG4gIHJlcyA9ICtzO1xuICBpZiAoKHMubGVuZ3RoID4gMCkgJiYgKHJlcyA9PT0gcmVzKSkgcmV0dXJuIHJlcztcbiAgcyA9IHMucmVwbGFjZSgvXy9nLFwiXCIpO1xuICByZXMgPSArcztcbiAgaWYgKCgocy5sZW5ndGggPiAwKSAmJiAocmVzID09PSByZXMpKSB8fCAvXlsrLV0/bmFuJC9pLnRlc3QocykpIHJldHVybiByZXM7XG4gIHZhciBtID0gL14gKihbKy1dPykweChbMC05YS1mXSspXFwuPyhbMC05YS1mXSopKHAoWystXT9bMC05XSspKT8vaS5leGVjKHMpO1xuICAvLyAgICAgICAgICAxICAgICAgICAyICAgICAgICAgICAgIDMgICAgICAgICAgIDVcbiAgaWYobSl7XG4gICAgdmFyIG0zID0gbVszXS5yZXBsYWNlKC8wKyQvLCcnKTtcbiAgICB2YXIgbWFudGlzc2EgPSBwYXJzZUludChtWzFdICsgbVsyXSArIG0zLCAxNik7XG4gICAgdmFyIGV4cG9uZW50ID0gKG1bNV18MCkgLSA0Km0zLmxlbmd0aDtcbiAgICByZXMgPSBtYW50aXNzYSAqIE1hdGgucG93KDIsIGV4cG9uZW50KTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIGlmKC9eXFwrP2luZihpbml0eSk/JC9pLnRlc3QocykpIHJldHVybiBJbmZpbml0eTtcbiAgaWYoL14taW5mKGluaXR5KT8kL2kudGVzdChzKSkgcmV0dXJuIC1JbmZpbml0eTtcbiAgY2FtbF9mYWlsd2l0aChcImZsb2F0X29mX3N0cmluZ1wiKTtcbn1cbiIsIi8qXG5UbyBkZWFsIHdpdGggZWZmZWN0cywgdGhlIGV4ZWN1dGlvbiBjb250ZXh0IGlzIGludHVpdGl2ZWx5IGNvbXBvc2VkIG9mXG5hIHN0YWNrIG9mIGZpYmVycy4gRWFjaCBmaWJlciBoYXMgYSBjdXJyZW50IGxvdy1sZXZlbCBjb250aW51YXRpb25cbihvbmUtYXJndW1lbnQgSmF2YVNjcmlwdCBmdW5jdGlvbiksIGEgc3RhY2sgb2YgZXhjZXB0aW9uIGhhbmRsZXJzIGFuZFxuYSB0cmlwbGUgb2YgaGFuZGxlcnMsIHdoaWNoIGFyZSBpbnZva2VkIHdoZW4gdGhlIGZpYmVyIHRlcm1pbmF0ZXNcbihlaXRoZXIgd2l0aCBhIHZhbHVlIG9yIGFuIGV4Y2VwdGlvbikgb3Igd2hlbiBhbiBlZmZlY3QgaXMgcGVyZm9ybWVkLlxuVGhlIGxvdy1sZXZlbCBjb250aW51YXRpb24gb2YgdGhlIHRvcG1vc3QgZmliZXIgKHdoaWNoIGlzIGN1cnJlbnRseVxuZXhlY3V0aW5nKSBpcyBwYXNzZWQgZnJvbSBmdW5jdGlvbiB0byBmdW5jdGlvbiBhcyBhbiBhZGRpdGlvbmFsXG5hcmd1bWVudC4gSXRzIHN0YWNrIG9mIGV4Y2VwdGlvbiBoYW5kbGVycyBpcyBzdG9yZWQgaW5cbltjYW1sX2V4bl9zdGFja10uIEV4Y2VwdGlvbiBoYW5kbGVycyBhcmUgcHVzaGVkIGludG8gdGhpcyBzdGFjayB3aGVuXG5lbnRlcmluZyBhIFt0cnkgLi4uIHdpdGggLi4uXSBhbmQgcG9wcGVkIG9uIGV4aXQuIFRoZW4sIGhhbmRsZXJzIGFuZFxudGhlIHJlbWFpbmluZyBmaWJlcnMgYXJlIHN0b3JlZCBpbiBbY2FtbF9maWJlcl9zdGFja10uIFRvIGluc3RhbGwgYW5cbmVmZmVjdCBoYW5kbGVyLCB3ZSBwdXNoIGEgbmV3IGZpYmVyIGludG8gdGhlIGV4ZWN1dGlvbiBjb250ZXh0LlxuXG5XZSBoYXZlIGJhc2ljYWxseSB0aGUgZm9sbG93aW5nIHR5cGUgZm9yIHJlaWZpZWQgY29udGludWF0aW9ucyAodHlwZVxuW2NvbnRpbnVhdGlvbl0gaW4gbW9kdWxlIFtFZmZlY3RdIG9mIHRoZSBzdGFuZGFyZCBsaWJyYXJ5KTpcblxuICB0eXBlICgnYSwgJ2IpIGNvbnRpbnVhdGlvbiA9ICgnYSwgJ2IpIHN0YWNrIHJlZlxuXG4gIGFuZCAoXywgXykgc3RhY2sgPVxuICAgICAgQ29ucyA6ICgnYiAtPiB1bml0KSAqICAgICAgICAgICAgICgqIGxvdy1sZXZlbCBjb250aW51YXRpb24gKilcbiAgICAgICAgICAgICAoZXhuIC0+IHVuaXQpIGxpc3QgKiAgICAgICAoKiBleGNlcHRpb24gaGFuZGxlcnMgKilcbiAgICAgICAgICAgICAoJ2IsICdjKSBoYW5kbGVyICpcbiAgICAgICAgICAgICAoJ2EsICdiKSBzdGFja1xuICAgICAgICAgICAgIC0+ICgnYSwgJ2MpIHN0YWNrXG4gICAgfCBFbXB0eSA6ICgnYSwgJ2EpIHN0YWNrXG5cbiAgYW5kICgnYSwnYikgaGFuZGxlciA9ICAgKCogQXMgaW4gbW9kdWxlIEVmZmVjdCBmcm9tIHRoZSBzdGFuZGFyZCBsaWJyYXJ5ICopXG4gICAgeyByZXRjOiAnYSAtPiAnYjtcbiAgICAgIGV4bmM6IGV4biAtPiAnYjtcbiAgICAgIGVmZmM6ICdjLidjIEVmZmVjdC50IC0+ICgoJ2MsJ2IpIGNvbnRpbnVhdGlvbiAtPiAnYikgb3B0aW9uIH1cblxuQ29udGludWF0aW9ucyBhcmUgb25lLXNob3QuIEEgY29udGludWF0aW9uIFtyZWYgRW1wdHldIGhhcyBhbHJlYWR5XG5iZWVuIHJlc3VtZWQuXG5cbkEgY29udGludWF0aW9uIGlzIGJhc2ljYWxseSBjb21wb3NlZCBvZiBhIGxpc3Qgb2YgZmliZXJzLCB3aGljaCBlYWNoXG5oYXMgaXRzIGxvdy1sZXZlbCBjb250aW51YXRpb24sIGl0cyBzdGFjayBvZiBleGNlcHRpb24gaGFuZGxlcnMgYW5kIGFcbnRyaXBsZSBvZiBoYW5kbGVycyB0byBkZWFsIHdpdGggd2hlbiB0aGUgZmliZXIgdGVybWluYXRlcyBvciBhblxuZWZmZWN0IGlzIHBlcmZvcm1lZC4gV2hlbiByZXN1bWluZyBhIGNvbnRpbnVhdGlvbiwgdGhlIGlubmVybW9zdCBmaWJlclxuaXMgcmVzdW1lZCBmaXJzdC5cblxuVGhlIGhhbmRsZXJzIGFyZSBDUFMtdHJhbnNmb3JtZWQgZnVuY3Rpb25zOiB0aGV5IGFjdHVhbGx5IHRha2UgYW5cbmFkZGl0aW9uYWwgcGFyYW1ldGVyIHdoaWNoIGlzIHRoZSBjdXJyZW50IGxvdy1sZXZlbCBjb250aW51YXRpb24uXG4qL1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2V4bl9zdGFja1xuLy9JZjogZWZmZWN0c1xuLy8gVGhpcyBpcyBhbiBPQ2FtbCBsaXN0IG9mIGV4Y2VwdGlvbiBoYW5kbGVyc1xudmFyIGNhbWxfZXhuX3N0YWNrID0gMDtcblxuLy9Qcm92aWRlczogY2FtbF9wdXNoX3RyYXBcbi8vUmVxdWlyZXM6IGNhbWxfZXhuX3N0YWNrXG4vL0lmOiBlZmZlY3RzXG5mdW5jdGlvbiBjYW1sX3B1c2hfdHJhcChoYW5kbGVyKSB7XG4gIGNhbWxfZXhuX3N0YWNrPVswLGhhbmRsZXIsY2FtbF9leG5fc3RhY2tdO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3BvcF90cmFwXG4vL1JlcXVpcmVzOiBjYW1sX2V4bl9zdGFja1xuLy9JZjogZWZmZWN0c1xuZnVuY3Rpb24gY2FtbF9wb3BfdHJhcCgpIHtcbiAgaWYgKCFjYW1sX2V4bl9zdGFjaykgcmV0dXJuIGZ1bmN0aW9uKHgpe3Rocm93IHg7fVxuICB2YXIgaCA9IGNhbWxfZXhuX3N0YWNrWzFdO1xuICBjYW1sX2V4bl9zdGFjaz1jYW1sX2V4bl9zdGFja1syXTtcbiAgcmV0dXJuIGhcbn1cblxuLy9Qcm92aWRlczogY2FtbF9maWJlcl9zdGFja1xuLy9JZjogZWZmZWN0c1xuLy8gVGhpcyBoYXMgdGhlIHNoYXBlIHtoLCByOntrLCB4LCBlfX0gd2hlcmUgaCBpcyBhIHRyaXBsZSBvZiBoYW5kbGVyc1xuLy8gKHNlZSBlZmZlY3QuanMpIGFuZCBrLCB4IGFuZCBlIGFyZSB0aGUgc2F2ZWQgY29udGludWF0aW9uLFxuLy8gZXhjZXB0aW9uIHN0YWNrIGFuZCBmaWJlciBzdGFjayBvZiB0aGUgcGFyZW50IGZpYmVyLlxudmFyIGNhbWxfZmliZXJfc3RhY2s7XG5cbi8vUHJvdmlkZXM6Y2FtbF9yZXN1bWVfc3RhY2tcbi8vUmVxdWlyZXM6IGNhbWxfbmFtZWRfdmFsdWUsIGNhbWxfcmFpc2VfY29uc3RhbnQsIGNhbWxfZXhuX3N0YWNrLCBjYW1sX2ZpYmVyX3N0YWNrXG4vL0lmOiBlZmZlY3RzXG5mdW5jdGlvbiBjYW1sX3Jlc3VtZV9zdGFjayhzdGFjaywgaykge1xuICBpZiAoIXN0YWNrKSBjYW1sX3JhaXNlX2NvbnN0YW50XG4gICAgICAgICAgICAgICAgIChjYW1sX25hbWVkX3ZhbHVlKFwiRWZmZWN0LkNvbnRpbnVhdGlvbl9hbHJlYWR5X3Jlc3VtZWRcIikpO1xuICAvLyBVcGRhdGUgdGhlIGV4ZWN1dGlvbiBjb250ZXh0IHdpdGggdGhlIHN0YWNrIG9mIGZpYmVycyBpbiBbc3RhY2tdIGluXG4gIC8vIG9yZGVyIHRvIHJlc3VtZSB0aGUgY29udGludWF0aW9uXG4gIGRvIHtcbiAgICBjYW1sX2ZpYmVyX3N0YWNrID1cbiAgICAgIHtoOnN0YWNrWzNdLCByOntrOmssIHg6Y2FtbF9leG5fc3RhY2ssIGU6Y2FtbF9maWJlcl9zdGFja319O1xuICAgIGsgPSBzdGFja1sxXTtcbiAgICBjYW1sX2V4bl9zdGFjayA9IHN0YWNrWzJdO1xuICAgIHN0YWNrID0gc3RhY2tbNF07XG4gIH0gd2hpbGUgKHN0YWNrKVxuICByZXR1cm4gaztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9wb3BfZmliZXJcbi8vUmVxdWlyZXM6IGNhbWxfZXhuX3N0YWNrLCBjYW1sX2ZpYmVyX3N0YWNrXG4vL0lmOiBlZmZlY3RzXG5mdW5jdGlvbiBjYW1sX3BvcF9maWJlcigpIHtcbiAgLy8gTW92ZSB0byB0aGUgcGFyZW50IGZpYmVyLCByZXR1cm5pbmcgdGhlIHBhcmVudCdzIGxvdy1sZXZlbCBjb250aW51YXRpb25cbiAgdmFyIHJlbSA9IGNhbWxfZmliZXJfc3RhY2sucjtcbiAgY2FtbF9leG5fc3RhY2sgPSByZW0ueDtcbiAgY2FtbF9maWJlcl9zdGFjayA9IHJlbS5lO1xuICByZXR1cm4gcmVtLms7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcGVyZm9ybV9lZmZlY3Rcbi8vUmVxdWlyZXM6IGNhbWxfcG9wX2ZpYmVyLCBjYW1sX3N0YWNrX2NoZWNrX2RlcHRoLCBjYW1sX3RyYW1wb2xpbmVfcmV0dXJuLCBjYW1sX2V4bl9zdGFjaywgY2FtbF9maWJlcl9zdGFja1xuLy9JZjogZWZmZWN0c1xuZnVuY3Rpb24gY2FtbF9wZXJmb3JtX2VmZmVjdChlZmYsIGNvbnQsIGswKSB7XG4gIC8vIEFsbG9jYXRlIGEgY29udGludWF0aW9uIGlmIHdlIGRvbid0IGFscmVhZHkgaGF2ZSBvbmVcbiAgaWYgKCFjb250KSBjb250ID0gWzI0NSAvKmNvbnRpbnVhdGlvbiovLCAwXTtcbiAgLy8gR2V0IGN1cnJlbnQgZWZmZWN0IGhhbmRsZXJcbiAgdmFyIGhhbmRsZXIgPSBjYW1sX2ZpYmVyX3N0YWNrLmhbM107XG4gIC8vIENvbnMgdGhlIGN1cnJlbnQgZmliZXIgb250byB0aGUgY29udGludWF0aW9uOlxuICAvLyAgIGNvbnQgOj0gQ29ucyAoaywgZXhuX3N0YWNrLCBoYW5kbGVycywgIWNvbnQpXG4gIGNvbnRbMV0gPSBbMCxrMCxjYW1sX2V4bl9zdGFjayxjYW1sX2ZpYmVyX3N0YWNrLmgsY29udFsxXV07XG4gIC8vIE1vdmUgdG8gcGFyZW50IGZpYmVyIGFuZCBleGVjdXRlIHRoZSBlZmZlY3QgaGFuZGxlciB0aGVyZVxuICAvLyBUaGUgaGFuZGxlciBpcyBkZWZpbmVkIGluIFN0ZGxpYi5FZmZlY3QsIHNvIHdlIGtub3cgdGhhdCB0aGUgYXJpdHkgbWF0Y2hlc1xuICB2YXIgazEgPSBjYW1sX3BvcF9maWJlcigpO1xuICByZXR1cm4gY2FtbF9zdGFja19jaGVja19kZXB0aCgpP2hhbmRsZXIoZWZmLGNvbnQsazEsazEpXG4gICAgICAgICA6Y2FtbF90cmFtcG9saW5lX3JldHVybihoYW5kbGVyLFtlZmYsY29udCxrMSxrMV0pO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FsbG9jX3N0YWNrXG4vL1JlcXVpcmVzOiBjYW1sX3BvcF9maWJlciwgY2FtbF9maWJlcl9zdGFjaywgY2FtbF9jYWxsX2dlbiwgY2FtbF9zdGFja19jaGVja19kZXB0aCwgY2FtbF90cmFtcG9saW5lX3JldHVyblxuLy9JZjogZWZmZWN0c1xuZnVuY3Rpb24gY2FtbF9hbGxvY19zdGFjayhodiwgaHgsIGhmKSB7XG4gIGZ1bmN0aW9uIGNhbGwoaSwgeCkge1xuICAgIHZhciBmPWNhbWxfZmliZXJfc3RhY2suaFtpXTtcbiAgICB2YXIgYXJncyA9IFt4LCBjYW1sX3BvcF9maWJlcigpXTtcbiAgICByZXR1cm4gY2FtbF9zdGFja19jaGVja19kZXB0aCgpP2NhbWxfY2FsbF9nZW4oZixhcmdzKVxuICAgICAgICAgICA6Y2FtbF90cmFtcG9saW5lX3JldHVybihmLGFyZ3MpO1xuICB9XG4gIGZ1bmN0aW9uIGh2YWwoeCkge1xuICAgIC8vIENhbGwgW2h2XSBpbiB0aGUgcGFyZW50IGZpYmVyXG4gICAgcmV0dXJuIGNhbGwoMSwgeCk7XG4gIH1cbiAgZnVuY3Rpb24gaGV4bihlKSB7XG4gICAgLy8gQ2FsbCBbaHhdIGluIHRoZSBwYXJlbnQgZmliZXJcbiAgICByZXR1cm4gY2FsbCgyLCBlKTtcbiAgfVxuICByZXR1cm4gWzAsIGh2YWwsIFswLCBoZXhuLCAwXSwgWzAsIGh2LCBoeCwgaGZdLCAwXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hbGxvY19zdGFja1xuLy9JZjogIWVmZmVjdHNcbmZ1bmN0aW9uIGNhbWxfYWxsb2Nfc3RhY2soaHYsIGh4LCBoZikge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jb250aW51YXRpb25fdXNlX25vZXhjXG5mdW5jdGlvbiBjYW1sX2NvbnRpbnVhdGlvbl91c2Vfbm9leGMoY29udCkge1xuICB2YXIgc3RhY2s9Y29udFsxXTtcbiAgY29udFsxXT0wO1xuICByZXR1cm4gc3RhY2s7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY29udGludWF0aW9uX3VzZV9hbmRfdXBkYXRlX2hhbmRsZXJfbm9leGNcbi8vUmVxdWlyZXM6IGNhbWxfY29udGludWF0aW9uX3VzZV9ub2V4Y1xuZnVuY3Rpb24gY2FtbF9jb250aW51YXRpb25fdXNlX2FuZF91cGRhdGVfaGFuZGxlcl9ub2V4Yyhjb250LCBodmFsLCBoZXhuLCBoZWZmKSB7XG4gIHZhciBzdGFjayA9IGNhbWxfY29udGludWF0aW9uX3VzZV9ub2V4Yyhjb250KTtcbiAgc3RhY2tbM10gPSBbMCwgaHZhbCwgaGV4biwgaGVmZl07XG4gIHJldHVybiBzdGFjaztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9nZXRfY29udGludWF0aW9uX2NhbGxzdGFja1xuZnVuY3Rpb24gY2FtbF9nZXRfY29udGludWF0aW9uX2NhbGxzdGFjayAoKSB7IHJldHVybiBbMF07IH1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9jb25kaXRpb25fbmV3XG5mdW5jdGlvbiBjYW1sX21sX2NvbmRpdGlvbl9uZXcodW5pdCl7XG4gICAgcmV0dXJuIHtjb25kaXRpb246MX07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfY29uZGl0aW9uX3dhaXRcbmZ1bmN0aW9uIGNhbWxfbWxfY29uZGl0aW9uX3dhaXQodCxtdXRleHQpe1xuICAgIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2NvbmRpdGlvbl9icm9hZGNhc3RcbmZ1bmN0aW9uIGNhbWxfbWxfY29uZGl0aW9uX2Jyb2FkY2FzdCh0KXtcbiAgICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9jb25kaXRpb25fc2lnbmFsXG5mdW5jdGlvbiBjYW1sX21sX2NvbmRpdGlvbl9zaWduYWwodCl7XG4gICAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGpzb29fZWZmZWN0X25vdF9zdXBwb3J0ZWRcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbi8vIUlmOiBlZmZlY3RzXG5mdW5jdGlvbiBqc29vX2VmZmVjdF9ub3Rfc3VwcG9ydGVkKCl7XG4gIGNhbWxfZmFpbHdpdGgoXCJFZmZlY3QgaGFuZGxlcnMgYXJlIG5vdCBzdXBwb3J0ZWRcIik7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTQgSsOpcsO0bWUgVm91aWxsb24sIEh1Z28gSGV1emFyZFxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBmc19ub2RlX3N1cHBvcnRlZFxuZnVuY3Rpb24gZnNfbm9kZV9zdXBwb3J0ZWQgKCkge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiBnbG9iYWxUaGlzLnByb2Nlc3MgIT09ICd1bmRlZmluZWQnXG4gICAgICAmJiB0eXBlb2YgZ2xvYmFsVGhpcy5wcm9jZXNzLnZlcnNpb25zICE9PSAndW5kZWZpbmVkJ1xuICAgICAgJiYgdHlwZW9mIGdsb2JhbFRoaXMucHJvY2Vzcy52ZXJzaW9ucy5ub2RlICE9PSAndW5kZWZpbmVkJylcbn1cbi8vUHJvdmlkZXM6IGZzX25vZGVfc3VwcG9ydGVkXG4vL0lmOiBicm93c2VyXG5mdW5jdGlvbiBmc19ub2RlX3N1cHBvcnRlZCAoKSB7XG4gIHJldHVybiBmYWxzZVxufVxuXG5cbi8vUHJvdmlkZXM6IE1sTm9kZURldmljZVxuLy9SZXF1aXJlczogTWxOb2RlRmQsIGNhbWxfcmFpc2Vfc3lzX2Vycm9yLCBjYW1sX3JhaXNlX3dpdGhfYXJnc1xuLy9SZXF1aXJlczogbWFrZV91bml4X2Vycl9hcmdzLCBjYW1sX25hbWVkX3ZhbHVlLCBjYW1sX3N0cmluZ19vZl9qc3N0cmluZ1xuZnVuY3Rpb24gTWxOb2RlRGV2aWNlKHJvb3QpIHtcbiAgdGhpcy5mcyA9IHJlcXVpcmUoJ2ZzJyk7XG4gIHRoaXMucm9vdCA9IHJvb3Q7XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLm5tID0gZnVuY3Rpb24obmFtZSkge1xuICByZXR1cm4gKHRoaXMucm9vdCArIG5hbWUpO1xufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5leGlzdHMgPSBmdW5jdGlvbihuYW1lKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHRoaXMuZnMuZXhpc3RzU3luYyh0aGlzLm5tKG5hbWUpKT8xOjA7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHJldHVybiAwO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLmlzRmlsZSA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gdGhpcy5mcy5zdGF0U3luYyh0aGlzLm5tKG5hbWUpKS5pc0ZpbGUoKT8xOjA7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKGVyci50b1N0cmluZygpKTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5ta2RpciA9IGZ1bmN0aW9uKG5hbWUsIG1vZGUsIHJhaXNlX3VuaXgpIHtcbiAgdHJ5IHtcbiAgICB0aGlzLmZzLm1rZGlyU3luYyh0aGlzLm5tKG5hbWUpLHttb2RlOm1vZGV9KTtcbiAgICByZXR1cm4gMFxuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLnJhaXNlX25vZGVqc19lcnJvcihlcnIsIHJhaXNlX3VuaXgpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLnJtZGlyID0gZnVuY3Rpb24obmFtZSwgcmFpc2VfdW5peCkge1xuICB0cnkge1xuICAgIHRoaXMuZnMucm1kaXJTeW5jKHRoaXMubm0obmFtZSkpO1xuICAgIHJldHVybiAwXG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUucmVhZGRpciA9IGZ1bmN0aW9uKG5hbWUsIHJhaXNlX3VuaXgpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gdGhpcy5mcy5yZWFkZGlyU3luYyh0aGlzLm5tKG5hbWUpKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5pc19kaXIgPSBmdW5jdGlvbihuYW1lKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHRoaXMuZnMuc3RhdFN5bmModGhpcy5ubShuYW1lKSkuaXNEaXJlY3RvcnkoKT8xOjA7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKGVyci50b1N0cmluZygpKTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS51bmxpbmsgPSBmdW5jdGlvbihuYW1lLCByYWlzZV91bml4KSB7XG4gIHRyeSB7XG4gICAgdmFyIGIgPSB0aGlzLmZzLmV4aXN0c1N5bmModGhpcy5ubShuYW1lKSk/MTowO1xuICAgIHRoaXMuZnMudW5saW5rU3luYyh0aGlzLm5tKG5hbWUpKTtcbiAgICByZXR1cm4gYjtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5vcGVuID0gZnVuY3Rpb24obmFtZSwgZiwgcmFpc2VfdW5peCkge1xuICB2YXIgY29uc3RzID0gcmVxdWlyZSgnY29uc3RhbnRzJyk7XG4gIHZhciByZXMgPSAwO1xuICBmb3IodmFyIGtleSBpbiBmKXtcbiAgICBzd2l0Y2goa2V5KXtcbiAgICBjYXNlIFwicmRvbmx5XCIgIDogcmVzIHw9IGNvbnN0cy5PX1JET05MWTsgYnJlYWs7XG4gICAgY2FzZSBcIndyb25seVwiICA6IHJlcyB8PSBjb25zdHMuT19XUk9OTFk7IGJyZWFrO1xuICAgIGNhc2UgXCJhcHBlbmRcIiAgOlxuICAgICAgcmVzIHw9IGNvbnN0cy5PX1dST05MWSB8IGNvbnN0cy5PX0FQUEVORDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJjcmVhdGVcIiAgIDogcmVzIHw9IGNvbnN0cy5PX0NSRUFUOyAgICBicmVhaztcbiAgICBjYXNlIFwidHJ1bmNhdGVcIiA6IHJlcyB8PSBjb25zdHMuT19UUlVOQzsgICAgYnJlYWs7XG4gICAgY2FzZSBcImV4Y2xcIiAgICAgOiByZXMgfD0gY29uc3RzLk9fRVhDTDsgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJiaW5hcnlcIiAgIDogcmVzIHw9IGNvbnN0cy5PX0JJTkFSWTsgICBicmVhaztcbiAgICBjYXNlIFwidGV4dFwiICAgICA6IHJlcyB8PSBjb25zdHMuT19URVhUOyAgICAgYnJlYWs7XG4gICAgY2FzZSBcIm5vbmJsb2NrXCIgOiByZXMgfD0gY29uc3RzLk9fTk9OQkxPQ0s7IGJyZWFrO1xuICAgIH1cbiAgfVxuICB0cnkge1xuICAgIHZhciBmZCA9IHRoaXMuZnMub3BlblN5bmModGhpcy5ubShuYW1lKSwgcmVzKTtcbiAgICB2YXIgaXNDaGFyYWN0ZXJEZXZpY2UgPSB0aGlzLmZzLmxzdGF0U3luYyh0aGlzLm5tKG5hbWUpKS5pc0NoYXJhY3RlckRldmljZSgpO1xuICAgIGYuaXNDaGFyYWN0ZXJEZXZpY2UgPSBpc0NoYXJhY3RlckRldmljZTtcbiAgICByZXR1cm4gbmV3IE1sTm9kZUZkKGZkLCBmKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuXG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLnJlbmFtZSA9IGZ1bmN0aW9uKG8sIG4sIHJhaXNlX3VuaXgpIHtcbiAgdHJ5IHtcbiAgICB0aGlzLmZzLnJlbmFtZVN5bmModGhpcy5ubShvKSwgdGhpcy5ubShuKSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUuc3RhdCA9IGZ1bmN0aW9uKG5hbWUsIHJhaXNlX3VuaXgpIHtcbiAgdHJ5IHtcbiAgICB2YXIganNfc3RhdHMgPSB0aGlzLmZzLnN0YXRTeW5jKHRoaXMubm0obmFtZSkpO1xuICAgIHJldHVybiB0aGlzLnN0YXRzX2Zyb21fanMoanNfc3RhdHMpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLnJhaXNlX25vZGVqc19lcnJvcihlcnIsIHJhaXNlX3VuaXgpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLmxzdGF0ID0gZnVuY3Rpb24obmFtZSwgcmFpc2VfdW5peCkge1xuICB0cnkge1xuICAgIHZhciBqc19zdGF0cyA9IHRoaXMuZnMubHN0YXRTeW5jKHRoaXMubm0obmFtZSkpO1xuICAgIHJldHVybiB0aGlzLnN0YXRzX2Zyb21fanMoanNfc3RhdHMpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLnJhaXNlX25vZGVqc19lcnJvcihlcnIsIHJhaXNlX3VuaXgpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLnN5bWxpbmsgPSBmdW5jdGlvbih0b19kaXIsIHRhcmdldCwgcGF0aCwgcmFpc2VfdW5peCkge1xuICB0cnkge1xuICAgIHRoaXMuZnMuc3ltbGlua1N5bmModGhpcy5ubSh0YXJnZXQpLCB0aGlzLm5tKHBhdGgpLCB0b19kaXIgPyAnZGlyJyA6ICdmaWxlJyk7XG4gICAgcmV0dXJuIDA7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUucmVhZGxpbmsgPSBmdW5jdGlvbihuYW1lLCByYWlzZV91bml4KSB7XG4gIHRyeSB7XG4gICAgdmFyIGxpbmsgPSB0aGlzLmZzLnJlYWRsaW5rU3luYyh0aGlzLm5tKG5hbWUpLCAndXRmOCcpO1xuICAgIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhsaW5rKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5vcGVuZGlyID0gZnVuY3Rpb24obmFtZSwgcmFpc2VfdW5peCkge1xuICB0cnkge1xuICAgIHJldHVybiB0aGlzLmZzLm9wZW5kaXJTeW5jKHRoaXMubm0obmFtZSkpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLnJhaXNlX25vZGVqc19lcnJvcihlcnIsIHJhaXNlX3VuaXgpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLnJhaXNlX25vZGVqc19lcnJvciA9IGZ1bmN0aW9uKGVyciwgcmFpc2VfdW5peCkge1xuICB2YXIgdW5peF9lcnJvciA9IGNhbWxfbmFtZWRfdmFsdWUoXCJVbml4LlVuaXhfZXJyb3JcIik7XG4gIGlmIChyYWlzZV91bml4ICYmIHVuaXhfZXJyb3IpIHtcbiAgICB2YXIgYXJncyA9IG1ha2VfdW5peF9lcnJfYXJncyhlcnIuY29kZSwgZXJyLnN5c2NhbGwsIGVyci5wYXRoLCBlcnIuZXJybm8pO1xuICAgIGNhbWxfcmFpc2Vfd2l0aF9hcmdzKHVuaXhfZXJyb3IsIGFyZ3MpO1xuICB9IGVsc2Uge1xuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKGVyci50b1N0cmluZygpKTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5zdGF0c19mcm9tX2pzID0gZnVuY3Rpb24oanNfc3RhdHMpIHtcbiAgLyogPT09VW5peC5maWxlX2tpbmQ9PT1cbiAgICogdHlwZSBmaWxlX2tpbmQgPVxuICAgKiAgICAgU19SRUcgICAgICAgICAgICAgICAgICAgICAgICgqKiBSZWd1bGFyIGZpbGUgKilcbiAgICogICB8IFNfRElSICAgICAgICAgICAgICAgICAgICAgICAoKiogRGlyZWN0b3J5ICopXG4gICAqICAgfCBTX0NIUiAgICAgICAgICAgICAgICAgICAgICAgKCoqIENoYXJhY3RlciBkZXZpY2UgKilcbiAgICogICB8IFNfQkxLICAgICAgICAgICAgICAgICAgICAgICAoKiogQmxvY2sgZGV2aWNlICopXG4gICAqICAgfCBTX0xOSyAgICAgICAgICAgICAgICAgICAgICAgKCoqIFN5bWJvbGljIGxpbmsgKilcbiAgICogICB8IFNfRklGTyAgICAgICAgICAgICAgICAgICAgICAoKiogTmFtZWQgcGlwZSAqKVxuICAgKiAgIHwgU19TT0NLICAgICAgICAgICAgICAgICAgICAgICgqKiBTb2NrZXQgKilcbiAgICovXG4gIHZhciBmaWxlX2tpbmQ7XG4gIGlmIChqc19zdGF0cy5pc0ZpbGUoKSkge1xuICAgIGZpbGVfa2luZCA9IDA7XG4gIH0gZWxzZSBpZiAoanNfc3RhdHMuaXNEaXJlY3RvcnkoKSkge1xuICAgIGZpbGVfa2luZCA9IDE7XG4gIH0gZWxzZSBpZiAoanNfc3RhdHMuaXNDaGFyYWN0ZXJEZXZpY2UoKSkge1xuICAgIGZpbGVfa2luZCA9IDI7XG4gIH0gZWxzZSBpZiAoanNfc3RhdHMuaXNCbG9ja0RldmljZSgpKSB7XG4gICAgZmlsZV9raW5kID0gMztcbiAgfSBlbHNlIGlmIChqc19zdGF0cy5pc1N5bWJvbGljTGluaygpKSB7XG4gICAgZmlsZV9raW5kID0gNDtcbiAgfSBlbHNlIGlmIChqc19zdGF0cy5pc0ZJRk8oKSkge1xuICAgIGZpbGVfa2luZCA9IDU7XG4gIH0gZWxzZSBpZiAoanNfc3RhdHMuaXNTb2NrZXQoKSkge1xuICAgIGZpbGVfa2luZCA9IDY7XG4gIH1cbiAgLyogPT09VW5peC5zdGF0cz09PVxuICAgKiB0eXBlIHN0YXRzID1cbiAgICogIHsgc3RfZGV2IDogaW50OyAgICAgICAgICAgICAgICgqKiBEZXZpY2UgbnVtYmVyICopXG4gICAqICAgIHN0X2lubyA6IGludDsgICAgICAgICAgICAgICAoKiogSW5vZGUgbnVtYmVyICopXG4gICAqICAgIHN0X2tpbmQgOiBmaWxlX2tpbmQ7ICAgICAgICAoKiogS2luZCBvZiB0aGUgZmlsZSAqKVxuICAgKiAgICBzdF9wZXJtIDogZmlsZV9wZXJtOyAgICAgICAgKCoqIEFjY2VzcyByaWdodHMgKilcbiAgICogICAgc3RfbmxpbmsgOiBpbnQ7ICAgICAgICAgICAgICgqKiBOdW1iZXIgb2YgbGlua3MgKilcbiAgICogICAgc3RfdWlkIDogaW50OyAgICAgICAgICAgICAgICgqKiBVc2VyIGlkIG9mIHRoZSBvd25lciAqKVxuICAgKiAgICBzdF9naWQgOiBpbnQ7ICAgICAgICAgICAgICAgKCoqIEdyb3VwIElEIG9mIHRoZSBmaWxlJ3MgZ3JvdXAgKilcbiAgICogICAgc3RfcmRldiA6IGludDsgICAgICAgICAgICAgICgqKiBEZXZpY2UgSUQgKGlmIHNwZWNpYWwgZmlsZSkgKilcbiAgICogICAgc3Rfc2l6ZSA6IGludDsgICAgICAgICAgICAgICgqKiBTaXplIGluIGJ5dGVzICopXG4gICAqICAgIHN0X2F0aW1lIDogZmxvYXQ7ICAgICAgICAgICAoKiogTGFzdCBhY2Nlc3MgdGltZSAqKVxuICAgKiAgICBzdF9tdGltZSA6IGZsb2F0OyAgICAgICAgICAgKCoqIExhc3QgbW9kaWZpY2F0aW9uIHRpbWUgKilcbiAgICogICAgc3RfY3RpbWUgOiBmbG9hdDsgICAgICAgICAgICgqKiBMYXN0IHN0YXR1cyBjaGFuZ2UgdGltZSAqKVxuICAgKiAgfVxuICAgKi9cbiAgcmV0dXJuIEJMT0NLKFxuICAgIDAsXG4gICAganNfc3RhdHMuZGV2LFxuICAgIGpzX3N0YXRzLmlubyxcbiAgICBmaWxlX2tpbmQsXG4gICAganNfc3RhdHMubW9kZSxcbiAgICBqc19zdGF0cy5ubGluayxcbiAgICBqc19zdGF0cy51aWQsXG4gICAganNfc3RhdHMuZ2lkLFxuICAgIGpzX3N0YXRzLnJkZXYsXG4gICAganNfc3RhdHMuc2l6ZSxcbiAgICBqc19zdGF0cy5hdGltZU1zLFxuICAgIGpzX3N0YXRzLm10aW1lTXMsXG4gICAganNfc3RhdHMuY3RpbWVNc1xuICApO1xufVxuXG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gTWxOb2RlRGV2aWNlXG5cbi8vUHJvdmlkZXM6IE1sTm9kZURldmljZVxuLy9JZjogYnJvd3NlclxuZnVuY3Rpb24gTWxOb2RlRGV2aWNlKCkge1xufVxuXG4vL1Byb3ZpZGVzOiBNbE5vZGVGZFxuLy9SZXF1aXJlczogTWxGaWxlLCBjYW1sX3VpbnQ4X2FycmF5X29mX3N0cmluZywgY2FtbF91aW50OF9hcnJheV9vZl9ieXRlcywgY2FtbF9ieXRlc19zZXQsIGNhbWxfcmFpc2Vfc3lzX2Vycm9yXG5mdW5jdGlvbiBNbE5vZGVGZChmZCwgZmxhZ3Mpe1xuICB0aGlzLmZzID0gcmVxdWlyZSgnZnMnKTtcbiAgdGhpcy5mZCA9IGZkO1xuICB0aGlzLmZsYWdzID0gZmxhZ3M7XG59XG5NbE5vZGVGZC5wcm90b3R5cGUgPSBuZXcgTWxGaWxlICgpO1xuTWxOb2RlRmQucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gTWxOb2RlRmQ7XG5cbk1sTm9kZUZkLnByb3RvdHlwZS50cnVuY2F0ZSA9IGZ1bmN0aW9uKGxlbil7XG4gIHRyeSB7XG4gICAgdGhpcy5mcy5mdHJ1bmNhdGVTeW5jKHRoaXMuZmQsbGVufDApO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihlcnIudG9TdHJpbmcoKSk7XG4gIH1cbn1cbk1sTm9kZUZkLnByb3RvdHlwZS5sZW5ndGggPSBmdW5jdGlvbiAoKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHRoaXMuZnMuZnN0YXRTeW5jKHRoaXMuZmQpLnNpemU7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKGVyci50b1N0cmluZygpKTtcbiAgfVxufVxuTWxOb2RlRmQucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24ob2Zmc2V0LGJ1ZixidWZfb2Zmc2V0LGxlbil7XG4gIHRyeSB7XG4gICAgaWYodGhpcy5mbGFncy5pc0NoYXJhY3RlckRldmljZSlcbiAgICAgIHRoaXMuZnMud3JpdGVTeW5jKHRoaXMuZmQsIGJ1ZiwgYnVmX29mZnNldCwgbGVuKTtcbiAgICBlbHNlXG4gICAgICB0aGlzLmZzLndyaXRlU3luYyh0aGlzLmZkLCBidWYsIGJ1Zl9vZmZzZXQsIGxlbiwgb2Zmc2V0KTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IoZXJyLnRvU3RyaW5nKCkpO1xuICB9XG4gIHJldHVybiAwO1xufVxuTWxOb2RlRmQucHJvdG90eXBlLnJlYWQgPSBmdW5jdGlvbihvZmZzZXQsYSxidWZfb2Zmc2V0LGxlbil7XG4gIHRyeSB7XG4gICAgaWYodGhpcy5mbGFncy5pc0NoYXJhY3RlckRldmljZSlcbiAgICAgIHZhciByZWFkID0gdGhpcy5mcy5yZWFkU3luYyh0aGlzLmZkLCBhLCBidWZfb2Zmc2V0LCBsZW4pO1xuICAgIGVsc2VcbiAgICAgIHZhciByZWFkID0gdGhpcy5mcy5yZWFkU3luYyh0aGlzLmZkLCBhLCBidWZfb2Zmc2V0LCBsZW4sIG9mZnNldCk7XG4gICAgcmV0dXJuIHJlYWQ7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKGVyci50b1N0cmluZygpKTtcbiAgfVxufVxuTWxOb2RlRmQucHJvdG90eXBlLmNsb3NlID0gZnVuY3Rpb24oKXtcbiAgdHJ5IHtcbiAgICB0aGlzLmZzLmNsb3NlU3luYyh0aGlzLmZkKTtcbiAgICByZXR1cm4gMFxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihlcnIudG9TdHJpbmcoKSk7XG4gIH1cbn1cblxuXG4vL1Byb3ZpZGVzOiBNbE5vZGVGZFxuLy9JZjogYnJvd3NlclxuZnVuY3Rpb24gTWxOb2RlRmQoKXtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19vcGVuX2Zvcl9ub2RlXG4vL1JlcXVpcmVzOiBNbE5vZGVGZFxuZnVuY3Rpb24gY2FtbF9zeXNfb3Blbl9mb3Jfbm9kZShmZCwgZmxhZ3Mpe1xuICBpZihmbGFncy5uYW1lKSB7XG4gICAgdHJ5IHtcbiAgICAgIHZhciBmcyA9IHJlcXVpcmUoXCJmc1wiKTtcbiAgICAgIHZhciBmZDIgPSBmcy5vcGVuU3luYyhmbGFncy5uYW1lLCBcInJzXCIpO1xuICAgICAgcmV0dXJuIG5ldyBNbE5vZGVGZChmZDIsIGZsYWdzKTtcbiAgICB9IGNhdGNoKGUpIHsgIH1cbiAgfVxuICByZXR1cm4gbmV3IE1sTm9kZUZkKGZkLCBmbGFncyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX29wZW5fZm9yX25vZGVcbi8vSWY6IGJyb3dzZXJcbmZ1bmN0aW9uIGNhbWxfc3lzX29wZW5fZm9yX25vZGUoZmQsIGZsYWdzKXtcbiAgcmV0dXJuIG51bGw7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTQgSsOpcsO0bWUgVm91aWxsb24sIEh1Z28gSGV1emFyZFxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vLy8vLy8vLy8vLy8vIER1bW15IGZpbGVzeXN0ZW1cblxuLy9Qcm92aWRlczogY2FtbF90cmFpbGluZ19zbGFzaFxuZnVuY3Rpb24gY2FtbF90cmFpbGluZ19zbGFzaChuYW1lKXtcbiAgcmV0dXJuIChuYW1lLnNsaWNlKC0xKSAhPT0gXCIvXCIpID8gKG5hbWUgKyBcIi9cIikgOiBuYW1lO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2N1cnJlbnRfZGlyXG4vL1JlcXVpcmVzOiBjYW1sX3RyYWlsaW5nX3NsYXNoLCBmc19ub2RlX3N1cHBvcnRlZFxuaWYoZnNfbm9kZV9zdXBwb3J0ZWQgKCkgJiYgZ2xvYmFsVGhpcy5wcm9jZXNzICYmIGdsb2JhbFRoaXMucHJvY2Vzcy5jd2QpXG4gIHZhciBjYW1sX2N1cnJlbnRfZGlyID0gZ2xvYmFsVGhpcy5wcm9jZXNzLmN3ZCgpLnJlcGxhY2UoL1xcXFwvZywnLycpO1xuZWxzZVxuICB2YXIgY2FtbF9jdXJyZW50X2RpciA9ICBcIi9zdGF0aWNcIjtcbmNhbWxfY3VycmVudF9kaXIgPSBjYW1sX3RyYWlsaW5nX3NsYXNoKGNhbWxfY3VycmVudF9kaXIpO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2dldF9yb290XG4vL1JlcXVpcmVzOiBwYXRoX2lzX2Fic29sdXRlXG5mdW5jdGlvbiBjYW1sX2dldF9yb290KHBhdGgpe1xuICB2YXIgeCA9IHBhdGhfaXNfYWJzb2x1dGUocGF0aCk7XG4gIGlmICgheCkgcmV0dXJuO1xuICByZXR1cm4geFswXSArIFwiL1wifVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3Jvb3Rcbi8vUmVxdWlyZXM6IGNhbWxfZ2V0X3Jvb3QsIGNhbWxfY3VycmVudF9kaXIsIGNhbWxfZmFpbHdpdGhcbnZhciBjYW1sX3Jvb3QgPSBjYW1sX2dldF9yb290KGNhbWxfY3VycmVudF9kaXIpIHx8IGNhbWxfZmFpbHdpdGgoXCJ1bmFibGUgdG8gY29tcHV0ZSBjYW1sX3Jvb3RcIik7XG5cblxuLy9Qcm92aWRlczogTWxGaWxlXG5mdW5jdGlvbiBNbEZpbGUoKXsgIH1cblxuLy9Qcm92aWRlczogcGF0aF9pc19hYnNvbHV0ZVxuLy9SZXF1aXJlczogZnNfbm9kZV9zdXBwb3J0ZWRcbmZ1bmN0aW9uIG1ha2VfcGF0aF9pc19hYnNvbHV0ZSgpIHtcbiAgZnVuY3Rpb24gcG9zaXgocGF0aCkge1xuICAgIGlmIChwYXRoLmNoYXJBdCgwKSA9PT0gJy8nKSByZXR1cm4gW1wiXCIsIHBhdGguc3Vic3RyaW5nKDEpXTtcbiAgICByZXR1cm47XG4gIH1cblxuICBmdW5jdGlvbiB3aW4zMihwYXRoKSB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2Jsb2IvYjNmY2MyNDVmYjI1NTM5OTA5ZWYxZDVlYWEwMWRiZjkyZTE2ODYzMy9saWIvcGF0aC5qcyNMNTZcbiAgICB2YXIgc3BsaXREZXZpY2VSZSA9IC9eKFthLXpBLVpdOnxbXFxcXC9dezJ9W15cXFxcL10rW1xcXFwvXStbXlxcXFwvXSspPyhbXFxcXC9dKT8oW1xcc1xcU10qPykkLztcbiAgICB2YXIgcmVzdWx0ID0gc3BsaXREZXZpY2VSZS5leGVjKHBhdGgpO1xuICAgIHZhciBkZXZpY2UgPSByZXN1bHRbMV0gfHwgJyc7XG4gICAgdmFyIGlzVW5jID0gQm9vbGVhbihkZXZpY2UgJiYgZGV2aWNlLmNoYXJBdCgxKSAhPT0gJzonKTtcblxuICAgIC8vIFVOQyBwYXRocyBhcmUgYWx3YXlzIGFic29sdXRlXG4gICAgaWYgKEJvb2xlYW4ocmVzdWx0WzJdIHx8IGlzVW5jKSkge1xuICAgICAgdmFyIHJvb3QgPSAocmVzdWx0WzFdIHx8ICcnKTtcbiAgICAgIHZhciBzZXAgPSAocmVzdWx0WzJdIHx8ICcnKTtcbiAgICAgIHJldHVybiBbcm9vdCwgcGF0aC5zdWJzdHJpbmcocm9vdC5sZW5ndGggKyBzZXAubGVuZ3RoKV1cbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmKGZzX25vZGVfc3VwcG9ydGVkICgpICYmIGdsb2JhbFRoaXMucHJvY2VzcyAmJiBnbG9iYWxUaGlzLnByb2Nlc3MucGxhdGZvcm0pIHtcbiAgICByZXR1cm4gZ2xvYmFsVGhpcy5wcm9jZXNzLnBsYXRmb3JtID09PSAnd2luMzInID8gd2luMzIgOiBwb3NpeDtcbiAgfVxuICBlbHNlIHJldHVybiBwb3NpeFxufVxudmFyIHBhdGhfaXNfYWJzb2x1dGUgPSBtYWtlX3BhdGhfaXNfYWJzb2x1dGUoKTtcblxuLy9Qcm92aWRlczogY2FtbF9tYWtlX3BhdGhcbi8vUmVxdWlyZXM6IGNhbWxfY3VycmVudF9kaXJcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nLCBwYXRoX2lzX2Fic29sdXRlXG5mdW5jdGlvbiBjYW1sX21ha2VfcGF0aCAobmFtZSkge1xuICBuYW1lPWNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKG5hbWUpO1xuICBpZiggIXBhdGhfaXNfYWJzb2x1dGUobmFtZSkgKVxuICAgIG5hbWUgPSBjYW1sX2N1cnJlbnRfZGlyICsgbmFtZTtcbiAgdmFyIGNvbXAwID0gcGF0aF9pc19hYnNvbHV0ZShuYW1lKTtcbiAgdmFyIGNvbXAgPSBjb21wMFsxXS5zcGxpdChcIi9cIik7XG4gIHZhciBuY29tcCA9IFtdXG4gIGZvcih2YXIgaSA9IDA7IGk8Y29tcC5sZW5ndGg7IGkrKyl7XG4gICAgc3dpdGNoKGNvbXBbaV0pe1xuICAgIGNhc2UgXCIuLlwiOiBpZihuY29tcC5sZW5ndGg+MSkgbmNvbXAucG9wKCk7IGJyZWFrO1xuICAgIGNhc2UgXCIuXCI6IGJyZWFrO1xuICAgIGNhc2UgXCJcIjogYnJlYWs7XG4gICAgZGVmYXVsdDogbmNvbXAucHVzaChjb21wW2ldKTticmVha1xuICAgIH1cbiAgfVxuICBuY29tcC51bnNoaWZ0KGNvbXAwWzBdKTtcbiAgbmNvbXAub3JpZyA9IG5hbWU7XG4gIHJldHVybiBuY29tcDtcbn1cblxuLy9Qcm92aWRlczpqc29vX21vdW50X3BvaW50XG4vL1JlcXVpcmVzOiBNbEZha2VEZXZpY2UsIE1sTm9kZURldmljZSwgY2FtbF9yb290LCBmc19ub2RlX3N1cHBvcnRlZFxudmFyIGpzb29fbW91bnRfcG9pbnQgPSBbXVxuaWYgKGZzX25vZGVfc3VwcG9ydGVkKCkpIHtcbiAganNvb19tb3VudF9wb2ludC5wdXNoKHtwYXRoOmNhbWxfcm9vdCxkZXZpY2U6bmV3IE1sTm9kZURldmljZShjYW1sX3Jvb3QpfSk7XG59IGVsc2Uge1xuICBqc29vX21vdW50X3BvaW50LnB1c2goe3BhdGg6Y2FtbF9yb290LGRldmljZTpuZXcgTWxGYWtlRGV2aWNlKGNhbWxfcm9vdCl9KTtcbn1cbmpzb29fbW91bnRfcG9pbnQucHVzaCh7cGF0aDpcIi9zdGF0aWMvXCIsIGRldmljZTpuZXcgTWxGYWtlRGV2aWNlKFwiL3N0YXRpYy9cIil9KTtcblxuLy9Qcm92aWRlczpjYW1sX2xpc3RfbW91bnRfcG9pbnRcbi8vUmVxdWlyZXM6IGpzb29fbW91bnRfcG9pbnQsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfbGlzdF9tb3VudF9wb2ludCgpe1xuICB2YXIgcHJldiA9IDBcbiAgZm9yKHZhciBpID0gMDsgaSA8IGpzb29fbW91bnRfcG9pbnQubGVuZ3RoOyBpKyspe1xuICAgIHZhciBvbGQgPSBwcmV2O1xuICAgIHByZXYgPSBbMCwgY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhqc29vX21vdW50X3BvaW50W2ldLnBhdGgpLCBvbGRdXG4gIH1cbiAgcmV0dXJuIHByZXY7XG59XG5cbi8vUHJvdmlkZXM6IHJlc29sdmVfZnNfZGV2aWNlXG4vL1JlcXVpcmVzOiBjYW1sX21ha2VfcGF0aCwganNvb19tb3VudF9wb2ludCwgY2FtbF9yYWlzZV9zeXNfZXJyb3IsIGNhbWxfZ2V0X3Jvb3QsIE1sTm9kZURldmljZSwgY2FtbF90cmFpbGluZ19zbGFzaCwgZnNfbm9kZV9zdXBwb3J0ZWRcbmZ1bmN0aW9uIHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpe1xuICB2YXIgcGF0aCA9IGNhbWxfbWFrZV9wYXRoKG5hbWUpO1xuICB2YXIgbmFtZSA9IHBhdGguam9pbihcIi9cIik7XG4gIHZhciBuYW1lX3NsYXNoID0gY2FtbF90cmFpbGluZ19zbGFzaChuYW1lKTtcbiAgdmFyIHJlcztcbiAgZm9yKHZhciBpID0gMDsgaSA8IGpzb29fbW91bnRfcG9pbnQubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgbSA9IGpzb29fbW91bnRfcG9pbnRbaV07XG4gICAgaWYobmFtZV9zbGFzaC5zZWFyY2gobS5wYXRoKSA9PSAwXG4gICAgICAgJiYgKCFyZXMgfHwgcmVzLnBhdGgubGVuZ3RoIDwgbS5wYXRoLmxlbmd0aCkpXG4gICAgICByZXMgPSB7cGF0aDptLnBhdGgsZGV2aWNlOm0uZGV2aWNlLHJlc3Q6bmFtZS5zdWJzdHJpbmcobS5wYXRoLmxlbmd0aCxuYW1lLmxlbmd0aCl9O1xuICB9XG4gIGlmKCAhcmVzICYmIGZzX25vZGVfc3VwcG9ydGVkKCkpIHtcbiAgICB2YXIgcm9vdCA9IGNhbWxfZ2V0X3Jvb3QobmFtZSk7XG4gICAgaWYgKHJvb3QgJiYgcm9vdC5tYXRjaCgvXlthLXpBLVpdOlxcLyQvKSl7XG4gICAgICB2YXIgbSA9IHtwYXRoOnJvb3QsZGV2aWNlOm5ldyBNbE5vZGVEZXZpY2Uocm9vdCl9O1xuICAgICAganNvb19tb3VudF9wb2ludC5wdXNoKG0pO1xuICAgICAgcmVzID0ge3BhdGg6bS5wYXRoLGRldmljZTptLmRldmljZSxyZXN0Om5hbWUuc3Vic3RyaW5nKG0ucGF0aC5sZW5ndGgsbmFtZS5sZW5ndGgpfTtcbiAgICB9XG4gIH1cbiAgaWYoIHJlcyApIHJldHVybiByZXM7XG4gIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKFwibm8gZGV2aWNlIGZvdW5kIGZvciBcIiArIG5hbWVfc2xhc2gpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21vdW50X2F1dG9sb2FkXG4vL1JlcXVpcmVzOiBNbEZha2VEZXZpY2UsIGNhbWxfbWFrZV9wYXRoLCBqc29vX21vdW50X3BvaW50LCBjYW1sX3RyYWlsaW5nX3NsYXNoXG5mdW5jdGlvbiBjYW1sX21vdW50X2F1dG9sb2FkKG5hbWUsZil7XG4gIHZhciBwYXRoID0gY2FtbF9tYWtlX3BhdGgobmFtZSk7XG4gIHZhciBuYW1lID0gY2FtbF90cmFpbGluZ19zbGFzaChwYXRoLmpvaW4oXCIvXCIpKTtcbiAganNvb19tb3VudF9wb2ludC5wdXNoKHtwYXRoOm5hbWUsZGV2aWNlOm5ldyBNbEZha2VEZXZpY2UobmFtZSxmKX0pXG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VubW91bnRcbi8vUmVxdWlyZXM6IGpzb29fbW91bnRfcG9pbnQsIGNhbWxfbWFrZV9wYXRoLCBjYW1sX3RyYWlsaW5nX3NsYXNoXG5mdW5jdGlvbiBjYW1sX3VubW91bnQobmFtZSl7XG4gIHZhciBwYXRoID0gY2FtbF9tYWtlX3BhdGgobmFtZSk7XG4gIHZhciBuYW1lID0gY2FtbF90cmFpbGluZ19zbGFzaChwYXRoLmpvaW4oXCIvXCIpKTtcbiAgdmFyIGlkeCA9IC0xO1xuICBmb3IodmFyIGkgPSAwOyBpIDwganNvb19tb3VudF9wb2ludC5sZW5ndGg7IGkrKylcbiAgICBpZihqc29vX21vdW50X3BvaW50W2ldLnBhdGggPT0gbmFtZSkgaWR4ID0gaTtcbiAgaWYoaWR4ID4gLTEpIGpzb29fbW91bnRfcG9pbnQuc3BsaWNlKGlkeCwxKTtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfZ2V0Y3dkXG4vL1JlcXVpcmVzOiBjYW1sX2N1cnJlbnRfZGlyLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX3N5c19nZXRjd2QoKSB7XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKGNhbWxfY3VycmVudF9kaXIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jaGRpclxuLy9SZXF1aXJlczogY2FtbF9jdXJyZW50X2RpciwgY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUsIHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX3RyYWlsaW5nX3NsYXNoLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N5c19jaGRpcihkaXIpIHtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShkaXIpO1xuICBpZihyb290LmRldmljZS5leGlzdHMocm9vdC5yZXN0KSkge1xuICAgIGlmKHJvb3QucmVzdCkgY2FtbF9jdXJyZW50X2RpciA9IGNhbWxfdHJhaWxpbmdfc2xhc2gocm9vdC5wYXRoICsgcm9vdC5yZXN0KTtcbiAgICBlbHNlIGNhbWxfY3VycmVudF9kaXIgPSByb290LnBhdGg7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgZWxzZSB7XG4gICAgY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUoY2FtbF9qc2J5dGVzX29mX3N0cmluZyhkaXIpKTtcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JhaXNlX25vX3N1Y2hfZmlsZVxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9zeXNfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlKG5hbWUpe1xuICBjYW1sX3JhaXNlX3N5c19lcnJvciAobmFtZSArIFwiOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5XCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JhaXNlX25vdF9hX2RpclxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9zeXNfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfcmFpc2Vfbm90X2FfZGlyKG5hbWUpe1xuICBjYW1sX3JhaXNlX3N5c19lcnJvciAobmFtZSArIFwiOiBOb3QgYSBkaXJlY3RvcnlcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2ZpbGVfZXhpc3RzXG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZVxuZnVuY3Rpb24gY2FtbF9zeXNfZmlsZV9leGlzdHMgKG5hbWUpIHtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgcmV0dXJuIHJvb3QuZGV2aWNlLmV4aXN0cyhyb290LnJlc3QpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19yZWFkX2RpcmVjdG9yeVxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9ub3RfYV9kaXIsIHJlc29sdmVfZnNfZGV2aWNlXG5mdW5jdGlvbiBjYW1sX3N5c19yZWFkX2RpcmVjdG9yeShuYW1lKXtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgdmFyIGEgPSByb290LmRldmljZS5yZWFkZGlyKHJvb3QucmVzdCk7XG4gIHZhciBsID0gbmV3IEFycmF5KGEubGVuZ3RoICsgMSk7XG4gIGxbMF0gPSAwO1xuICBmb3IodmFyIGk9MDtpPGEubGVuZ3RoO2krKylcbiAgICBsW2krMV0gPSBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKGFbaV0pO1xuICByZXR1cm4gbDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfcmVtb3ZlXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX25vX3N1Y2hfZmlsZSwgcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3lzX3JlbW92ZShuYW1lKXtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgdmFyIG9rID0gcm9vdC5kZXZpY2UudW5saW5rKHJvb3QucmVzdCk7XG4gIGlmKG9rID09IDApIGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlKGNhbWxfanNieXRlc19vZl9zdHJpbmcobmFtZSkpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfaXNfZGlyZWN0b3J5XG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZVxuZnVuY3Rpb24gY2FtbF9zeXNfaXNfZGlyZWN0b3J5KG5hbWUpe1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICB2YXIgYSA9IHJvb3QuZGV2aWNlLmlzX2Rpcihyb290LnJlc3QpO1xuICByZXR1cm4gYT8xOjA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX3JlbmFtZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aCwgcmVzb2x2ZV9mc19kZXZpY2VcbmZ1bmN0aW9uIGNhbWxfc3lzX3JlbmFtZShvLG4pe1xuICB2YXIgb19yb290ID0gcmVzb2x2ZV9mc19kZXZpY2Uobyk7XG4gIHZhciBuX3Jvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuKTtcbiAgaWYob19yb290LmRldmljZSAhPSBuX3Jvb3QuZGV2aWNlKVxuICAgIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3N5c19yZW5hbWU6IGNhbm5vdCBtb3ZlIGZpbGUgYmV0d2VlbiB0d28gZmlsZXN5c3RlbVwiKTtcbiAgaWYoIW9fcm9vdC5kZXZpY2UucmVuYW1lKVxuICAgIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3N5c19yZW5hbWU6IG5vIGltcGxlbWVudGVkXCIpO1xuICBvX3Jvb3QuZGV2aWNlLnJlbmFtZShvX3Jvb3QucmVzdCwgbl9yb290LnJlc3QpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19ta2RpclxuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfcmFpc2Vfc3lzX2Vycm9yXG5mdW5jdGlvbiBjYW1sX3N5c19ta2RpcihuYW1lLCBwZXJtKXtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgcm9vdC5kZXZpY2UubWtkaXIocm9vdC5yZXN0LHBlcm0pO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfcm1kaXJcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX3JhaXNlX3N5c19lcnJvciwgY2FtbF9yYWlzZV9ub3RfYV9kaXJcbmZ1bmN0aW9uIGNhbWxfc3lzX3JtZGlyKG5hbWUpe1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICByb290LmRldmljZS5ybWRpcihyb290LnJlc3QpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9tYXBfZmlsZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9iYV9tYXBfZmlsZSh2ZmQsIGtpbmQsIGxheW91dCwgc2hhcmVkLCBkaW1zLCBwb3MpIHtcbiAgLy8gdmFyIGRhdGEgPSBjYW1sX3N5c19mZHNbdmZkXTtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfYmFfbWFwX2ZpbGUgbm90IGltcGxlbWVudGVkXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX21hcF9maWxlX2J5dGVjb2RlXG4vL1JlcXVpcmVzOiBjYW1sX2JhX21hcF9maWxlXG5mdW5jdGlvbiBjYW1sX2JhX21hcF9maWxlX2J5dGVjb2RlKGFyZ3YsYXJnbil7XG4gIHJldHVybiBjYW1sX2JhX21hcF9maWxlKGFyZ3ZbMF0sYXJndlsxXSxhcmd2WzJdLGFyZ3ZbM10sYXJndls0XSxhcmd2WzVdKTtcbn1cblxuLy9Qcm92aWRlczoganNvb19jcmVhdGVfZmlsZV9leHRlcm5cbmZ1bmN0aW9uIGpzb29fY3JlYXRlX2ZpbGVfZXh0ZXJuKG5hbWUsY29udGVudCl7XG4gIGlmKGdsb2JhbFRoaXMuanNvb19jcmVhdGVfZmlsZSlcbiAgICBnbG9iYWxUaGlzLmpzb29fY3JlYXRlX2ZpbGUobmFtZSxjb250ZW50KTtcbiAgZWxzZSB7XG4gICAgaWYoIWdsb2JhbFRoaXMuY2FtbF9mc190bXApIGdsb2JhbFRoaXMuY2FtbF9mc190bXAgPSBbXTtcbiAgICBnbG9iYWxUaGlzLmNhbWxfZnNfdG1wLnB1c2goe25hbWU6bmFtZSxjb250ZW50OmNvbnRlbnR9KTtcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9mc19pbml0XG4vL1JlcXVpcmVzOiBqc29vX2NyZWF0ZV9maWxlXG5mdW5jdGlvbiBjYW1sX2ZzX2luaXQgKCl7XG4gIHZhciB0bXA9Z2xvYmFsVGhpcy5jYW1sX2ZzX3RtcFxuICBpZih0bXApe1xuICAgIGZvcih2YXIgaSA9IDA7IGkgPCB0bXAubGVuZ3RoOyBpKyspe1xuICAgICAganNvb19jcmVhdGVfZmlsZSh0bXBbaV0ubmFtZSx0bXBbaV0uY29udGVudCk7XG4gICAgfVxuICB9XG4gIGdsb2JhbFRoaXMuanNvb19jcmVhdGVfZmlsZSA9IGpzb29fY3JlYXRlX2ZpbGU7XG4gIGdsb2JhbFRoaXMuY2FtbF9mc190bXAgPSBbXTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY3JlYXRlX2ZpbGVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGgsIHJlc29sdmVfZnNfZGV2aWNlXG5mdW5jdGlvbiBjYW1sX2NyZWF0ZV9maWxlKG5hbWUsY29udGVudCkge1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICBpZighIHJvb3QuZGV2aWNlLnJlZ2lzdGVyKSBjYW1sX2ZhaWx3aXRoKFwiY2Fubm90IHJlZ2lzdGVyIGZpbGVcIik7XG4gIHJvb3QuZGV2aWNlLnJlZ2lzdGVyKHJvb3QucmVzdCxjb250ZW50KTtcbiAgcmV0dXJuIDA7XG59XG5cblxuLy9Qcm92aWRlczoganNvb19jcmVhdGVfZmlsZVxuLy9SZXF1aXJlczogY2FtbF9jcmVhdGVfZmlsZSwgY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24ganNvb19jcmVhdGVfZmlsZShuYW1lLGNvbnRlbnQpIHtcbiAgdmFyIG5hbWUgPSBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKG5hbWUpO1xuICB2YXIgY29udGVudCA9IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoY29udGVudCk7XG4gIHJldHVybiBjYW1sX2NyZWF0ZV9maWxlKG5hbWUsIGNvbnRlbnQpO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfcmVhZF9maWxlX2NvbnRlbnRcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX3JhaXNlX25vX3N1Y2hfZmlsZSwgY2FtbF9zdHJpbmdfb2ZfYXJyYXlcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMsIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfcmVhZF9maWxlX2NvbnRlbnQgKG5hbWUpIHtcbiAgdmFyIG5hbWUgPSAodHlwZW9mIG5hbWUgPT0gXCJzdHJpbmdcIik/Y2FtbF9zdHJpbmdfb2ZfanNieXRlcyhuYW1lKTpuYW1lO1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICBpZihyb290LmRldmljZS5leGlzdHMocm9vdC5yZXN0KSkge1xuICAgIHZhciBmaWxlID0gcm9vdC5kZXZpY2Uub3Blbihyb290LnJlc3Qse3Jkb25seToxfSk7XG4gICAgdmFyIGxlbiAgPSBmaWxlLmxlbmd0aCgpO1xuICAgIHZhciBidWYgPSBuZXcgVWludDhBcnJheShsZW4pO1xuICAgIGZpbGUucmVhZCgwLGJ1ZiwwLGxlbik7XG4gICAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2FycmF5KGJ1ZilcbiAgfVxuICBjYW1sX3JhaXNlX25vX3N1Y2hfZmlsZShjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKG5hbWUpKTtcbn1cbiIsIi8vUHJvdmlkZXM6IGNhbWxfdW5peF9nZXR0aW1lb2ZkYXlcbi8vQWxpYXM6IHVuaXhfZ2V0dGltZW9mZGF5XG5mdW5jdGlvbiBjYW1sX3VuaXhfZ2V0dGltZW9mZGF5ICgpIHtcbiAgcmV0dXJuIChuZXcgRGF0ZSgpKS5nZXRUaW1lKCkgLyAxMDAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfdGltZVxuLy9SZXF1aXJlczogY2FtbF91bml4X2dldHRpbWVvZmRheVxuLy9BbGlhczogdW5peF90aW1lXG5mdW5jdGlvbiBjYW1sX3VuaXhfdGltZSAoKSB7XG4gIHJldHVybiBNYXRoLmZsb29yKGNhbWxfdW5peF9nZXR0aW1lb2ZkYXkgKCkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfZ210aW1lXG4vL0FsaWFzOiB1bml4X2dtdGltZVxuZnVuY3Rpb24gY2FtbF91bml4X2dtdGltZSAodCkge1xuICB2YXIgZCA9IG5ldyBEYXRlICh0ICogMTAwMCk7XG4gIHZhciBkX251bSA9IGQuZ2V0VGltZSgpO1xuICB2YXIgamFudWFyeWZpcnN0ID0gKG5ldyBEYXRlKERhdGUuVVRDKGQuZ2V0VVRDRnVsbFllYXIoKSwgMCwgMSkpKS5nZXRUaW1lKCk7XG4gIHZhciBkb3kgPSBNYXRoLmZsb29yKChkX251bSAtIGphbnVhcnlmaXJzdCkgLyA4NjQwMDAwMCk7XG4gIHJldHVybiBCTE9DSygwLCBkLmdldFVUQ1NlY29uZHMoKSwgZC5nZXRVVENNaW51dGVzKCksIGQuZ2V0VVRDSG91cnMoKSxcbiAgICAgICAgICAgICAgIGQuZ2V0VVRDRGF0ZSgpLCBkLmdldFVUQ01vbnRoKCksIGQuZ2V0VVRDRnVsbFllYXIoKSAtIDE5MDAsXG4gICAgICAgICAgICAgICBkLmdldFVUQ0RheSgpLCBkb3ksXG4gICAgICAgICAgICAgICBmYWxzZSB8IDAgLyogZm9yIFVUQyBkYXlsaWdodCBzYXZpbmdzIHRpbWUgaXMgZmFsc2UgKi8pXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9sb2NhbHRpbWVcbi8vQWxpYXM6IHVuaXhfbG9jYWx0aW1lXG5mdW5jdGlvbiBjYW1sX3VuaXhfbG9jYWx0aW1lICh0KSB7XG4gIHZhciBkID0gbmV3IERhdGUgKHQgKiAxMDAwKTtcbiAgdmFyIGRfbnVtID0gZC5nZXRUaW1lKCk7XG4gIHZhciBqYW51YXJ5Zmlyc3QgPSAobmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCAwLCAxKSkuZ2V0VGltZSgpO1xuICB2YXIgZG95ID0gTWF0aC5mbG9vcigoZF9udW0gLSBqYW51YXJ5Zmlyc3QpIC8gODY0MDAwMDApO1xuICB2YXIgamFuID0gbmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCAwLCAxKTtcbiAgdmFyIGp1bCA9IG5ldyBEYXRlKGQuZ2V0RnVsbFllYXIoKSwgNiwgMSk7XG4gIHZhciBzdGRUaW1lem9uZU9mZnNldCA9IE1hdGgubWF4KGphbi5nZXRUaW1lem9uZU9mZnNldCgpLCBqdWwuZ2V0VGltZXpvbmVPZmZzZXQoKSk7XG4gIHJldHVybiBCTE9DSygwLCBkLmdldFNlY29uZHMoKSwgZC5nZXRNaW51dGVzKCksIGQuZ2V0SG91cnMoKSxcbiAgICAgICAgICAgICAgIGQuZ2V0RGF0ZSgpLCBkLmdldE1vbnRoKCksIGQuZ2V0RnVsbFllYXIoKSAtIDE5MDAsXG4gICAgICAgICAgICAgICBkLmdldERheSgpLCBkb3ksXG4gICAgICAgICAgICAgICAoZC5nZXRUaW1lem9uZU9mZnNldCgpIDwgc3RkVGltZXpvbmVPZmZzZXQpIHwgMCAvKiBkYXlsaWdodCBzYXZpbmdzIHRpbWUgIGZpZWxkLiAqLylcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X21rdGltZVxuLy9SZXF1aXJlczogY2FtbF91bml4X2xvY2FsdGltZVxuLy9BbGlhczogdW5peF9ta3RpbWVcbmZ1bmN0aW9uIGNhbWxfdW5peF9ta3RpbWUodG0pe1xuICB2YXIgZCA9IChuZXcgRGF0ZSh0bVs2XSsxOTAwLHRtWzVdLHRtWzRdLHRtWzNdLHRtWzJdLHRtWzFdKSkuZ2V0VGltZSgpO1xuICB2YXIgdCA9IE1hdGguZmxvb3IoZCAvIDEwMDApO1xuICB2YXIgdG0yID0gY2FtbF91bml4X2xvY2FsdGltZSh0KTtcbiAgcmV0dXJuIEJMT0NLKDAsdCx0bTIpO1xufVxuLy9Qcm92aWRlczogY2FtbF91bml4X3N0YXJ0dXAgY29uc3Rcbi8vQWxpYXM6IHdpbl9zdGFydHVwXG5mdW5jdGlvbiBjYW1sX3VuaXhfc3RhcnR1cCgpIHt9XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9jbGVhbnVwIGNvbnN0XG4vL0FsaWFzOiB3aW5fY2xlYW51cFxuZnVuY3Rpb24gY2FtbF91bml4X2NsZWFudXAoKSB7fVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfZmlsZWRlc2NyX29mX2ZkIGNvbnN0XG4vL0FsaWFzOiB3aW5faGFuZGxlX2ZkXG5mdW5jdGlvbiBjYW1sX3VuaXhfZmlsZWRlc2NyX29mX2ZkKHgpIHtyZXR1cm4geDt9XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9pc2F0dHlcbi8vUmVxdWlyZXM6IGZzX25vZGVfc3VwcG9ydGVkXG4vL0FsaWFzOiB1bml4X2lzYXR0eVxuZnVuY3Rpb24gY2FtbF91bml4X2lzYXR0eShmaWxlRGVzY3JpcHRvcikge1xuICBpZihmc19ub2RlX3N1cHBvcnRlZCgpKSB7XG4gICAgdmFyIHR0eSA9IHJlcXVpcmUoJ3R0eScpO1xuICAgIHJldHVybiB0dHkuaXNhdHR5KGZpbGVEZXNjcmlwdG9yKT8xOjA7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfaXNhdHR5XG4vL0FsaWFzOiB1bml4X2lzYXR0eVxuLy9JZjogYnJvd3NlclxuZnVuY3Rpb24gY2FtbF91bml4X2lzYXR0eShmaWxlRGVzY3JpcHRvcikge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogbWFrZV91bml4X2Vycl9hcmdzXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZ1xudmFyIHVuaXhfZXJyb3IgPSBbXG4gIC8qID09PVVuaXguZXJyb3I9PT1cbiAgICpcbiAgICogVGhpcyBhcnJheSBpcyBpbiBvcmRlciBvZiB0aGUgdmFyaWFudCBpbiBPQ2FtbFxuICAgKi9cbiAgXCJFMkJJR1wiLCBcIkVBQ0NFU1wiLCBcIkVBR0FJTlwiLCBcIkVCQURGXCIsIFwiRUJVU1lcIiwgXCJFQ0hJTERcIiwgXCJFREVBRExLXCIsIFwiRURPTVwiLFxuICBcIkVFWElTVFwiLCBcIkVGQVVMVFwiLCBcIkVGQklHXCIsIFwiRUlOVFJcIiwgXCJFSU5WQUxcIiwgXCJFSU9cIiwgXCJFSVNESVJcIiwgXCJFTUZJTEVcIixcbiAgXCJFTUxJTktcIiwgXCJFTkFNRVRPT0xPTkdcIiwgXCJFTkZJTEVcIiwgXCJFTk9ERVZcIiwgXCJFTk9FTlRcIiwgXCJFTk9FWEVDXCIsIFwiRU5PTENLXCIsXG4gIFwiRU5PTUVNXCIsIFwiRU5PU1BDXCIsIFwiRU5PU1lTXCIsIFwiRU5PVERJUlwiLCBcIkVOT1RFTVBUWVwiLCBcIkVOT1RUWVwiLCBcIkVOWElPXCIsXG4gIFwiRVBFUk1cIiwgXCJFUElQRVwiLCBcIkVSQU5HRVwiLCBcIkVST0ZTXCIsIFwiRVNQSVBFXCIsIFwiRVNSQ0hcIiwgXCJFWERFVlwiLCBcIkVXT1VMREJMT0NLXCIsXG4gIFwiRUlOUFJPR1JFU1NcIiwgXCJFQUxSRUFEWVwiLCBcIkVOT1RTT0NLXCIsIFwiRURFU1RBRERSUkVRXCIsIFwiRU1TR1NJWkVcIixcbiAgXCJFUFJPVE9UWVBFXCIsIFwiRU5PUFJPVE9PUFRcIiwgXCJFUFJPVE9OT1NVUFBPUlRcIiwgXCJFU09DS1ROT1NVUFBPUlRcIixcbiAgXCJFT1BOT1RTVVBQXCIsIFwiRVBGTk9TVVBQT1JUXCIsIFwiRUFGTk9TVVBQT1JUXCIsIFwiRUFERFJJTlVTRVwiLCBcIkVBRERSTk9UQVZBSUxcIixcbiAgXCJFTkVURE9XTlwiLCBcIkVORVRVTlJFQUNIXCIsIFwiRU5FVFJFU0VUXCIsIFwiRUNPTk5BQk9SVEVEXCIsIFwiRUNPTk5SRVNFVFwiLCBcIkVOT0JVRlNcIixcbiAgXCJFSVNDT05OXCIsIFwiRU5PVENPTk5cIiwgXCJFU0hVVERPV05cIiwgXCJFVE9PTUFOWVJFRlNcIiwgXCJFVElNRURPVVRcIiwgXCJFQ09OTlJFRlVTRURcIixcbiAgXCJFSE9TVERPV05cIiwgXCJFSE9TVFVOUkVBQ0hcIiwgXCJFTE9PUFwiLCBcIkVPVkVSRkxPV1wiXG5dO1xuZnVuY3Rpb24gbWFrZV91bml4X2Vycl9hcmdzKGNvZGUsIHN5c2NhbGwsIHBhdGgsIGVycm5vKSB7XG4gIHZhciB2YXJpYW50ID0gdW5peF9lcnJvci5pbmRleE9mKGNvZGUpO1xuICBpZiAodmFyaWFudCA8IDApIHtcbiAgICAvLyBEZWZhdWx0IGlmIHVuZGVmaW5lZFxuICAgIGlmIChlcnJubyA9PSBudWxsKSB7XG4gICAgICBlcnJubyA9IC05OTk5XG4gICAgfVxuICAgIC8vIElmIG5vbmUgb2YgdGhlIGFib3ZlIHZhcmlhbnRzLCBmYWxsYmFjayB0byBFVU5LTk9XTkVSUihpbnQpXG4gICAgdmFyaWFudCA9IEJMT0NLKDAsIGVycm5vKTtcbiAgfVxuICB2YXIgYXJncyA9IFtcbiAgICB2YXJpYW50LFxuICAgIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKHN5c2NhbGwgfHwgXCJcIiksXG4gICAgY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcocGF0aCB8fCBcIlwiKVxuICBdO1xuICByZXR1cm4gYXJncztcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X3N0YXRcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX2ZhaWx3aXRoXG4vL0FsaWFzOiB1bml4X3N0YXRcbmZ1bmN0aW9uIGNhbWxfdW5peF9zdGF0KG5hbWUpIHtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgaWYgKCFyb290LmRldmljZS5zdGF0KSB7XG4gICAgY2FtbF9mYWlsd2l0aChcImNhbWxfdW5peF9zdGF0OiBub3QgaW1wbGVtZW50ZWRcIik7XG4gIH1cbiAgcmV0dXJuIHJvb3QuZGV2aWNlLnN0YXQocm9vdC5yZXN0LCAvKiByYWlzZSBVbml4X2Vycm9yICovIHRydWUpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfc3RhdF82NFxuLy9SZXF1aXJlczogY2FtbF91bml4X3N0YXQsIGNhbWxfaW50NjRfb2ZfaW50MzJcbi8vQWxpYXM6IHVuaXhfc3RhdF82NFxuZnVuY3Rpb24gY2FtbF91bml4X3N0YXRfNjQobmFtZSkge1xuICB2YXIgciA9IGNhbWxfdW5peF9zdGF0KG5hbWUpO1xuICByWzldID0gY2FtbF9pbnQ2NF9vZl9pbnQzMihyWzldKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X2xzdGF0XG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9mYWlsd2l0aFxuLy9BbGlhczogdW5peF9sc3RhdFxuZnVuY3Rpb24gY2FtbF91bml4X2xzdGF0KG5hbWUpIHtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgaWYgKCFyb290LmRldmljZS5sc3RhdCkge1xuICAgIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3VuaXhfbHN0YXQ6IG5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgfVxuICByZXR1cm4gcm9vdC5kZXZpY2UubHN0YXQocm9vdC5yZXN0LCAvKiByYWlzZSBVbml4X2Vycm9yICovIHRydWUpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfbHN0YXRfNjRcbi8vUmVxdWlyZXM6IGNhbWxfdW5peF9sc3RhdCwgY2FtbF9pbnQ2NF9vZl9pbnQzMlxuLy9BbGlhczogdW5peF9sc3RhdF82NFxuZnVuY3Rpb24gY2FtbF91bml4X2xzdGF0XzY0KG5hbWUpIHtcbiAgdmFyIHIgPSBjYW1sX3VuaXhfbHN0YXQobmFtZSk7XG4gIHJbOV0gPSBjYW1sX2ludDY0X29mX2ludDMyKHJbOV0pO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfbWtkaXJcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX2ZhaWx3aXRoXG4vL0FsaWFzOiB1bml4X21rZGlyXG5mdW5jdGlvbiBjYW1sX3VuaXhfbWtkaXIobmFtZSwgcGVybSkge1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICBpZiAoIXJvb3QuZGV2aWNlLm1rZGlyKSB7XG4gICAgY2FtbF9mYWlsd2l0aChcImNhbWxfdW5peF9ta2Rpcjogbm90IGltcGxlbWVudGVkXCIpO1xuICB9XG4gIHJldHVybiByb290LmRldmljZS5ta2Rpcihyb290LnJlc3QsIHBlcm0sIC8qIHJhaXNlIFVuaXhfZXJyb3IgKi8gdHJ1ZSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9ybWRpclxuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfZmFpbHdpdGhcbi8vQWxpYXM6IHVuaXhfcm1kaXJcbmZ1bmN0aW9uIGNhbWxfdW5peF9ybWRpcihuYW1lKSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIGlmICghcm9vdC5kZXZpY2Uucm1kaXIpIHtcbiAgICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF91bml4X3JtZGlyOiBub3QgaW1wbGVtZW50ZWRcIik7XG4gIH1cbiAgcmV0dXJuIHJvb3QuZGV2aWNlLnJtZGlyKHJvb3QucmVzdCwgLyogcmFpc2UgVW5peF9lcnJvciAqLyB0cnVlKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X3N5bWxpbmtcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX2ZhaWx3aXRoXG4vL0FsaWFzOiB1bml4X3N5bWxpbmtcbmZ1bmN0aW9uIGNhbWxfdW5peF9zeW1saW5rKHRvX2Rpciwgc3JjLCBkc3QpIHtcbiAgdmFyIHNyY19yb290ID0gcmVzb2x2ZV9mc19kZXZpY2Uoc3JjKTtcbiAgdmFyIGRzdF9yb290ID0gcmVzb2x2ZV9mc19kZXZpY2UoZHN0KTtcbiAgaWYoc3JjX3Jvb3QuZGV2aWNlICE9IGRzdF9yb290LmRldmljZSlcbiAgICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF91bml4X3N5bWxpbms6IGNhbm5vdCBzeW1saW5rIGJldHdlZW4gdHdvIGZpbGVzeXN0ZW1zXCIpO1xuICBpZiAoIXNyY19yb290LmRldmljZS5zeW1saW5rKSB7XG4gICAgY2FtbF9mYWlsd2l0aChcImNhbWxfdW5peF9zeW1saW5rOiBub3QgaW1wbGVtZW50ZWRcIik7XG4gIH1cbiAgcmV0dXJuIHNyY19yb290LmRldmljZS5zeW1saW5rKHRvX2Rpciwgc3JjX3Jvb3QucmVzdCwgZHN0X3Jvb3QucmVzdCwgLyogcmFpc2UgVW5peF9lcnJvciAqLyB0cnVlKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X3JlYWRsaW5rXG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9mYWlsd2l0aFxuLy9BbGlhczogdW5peF9yZWFkbGlua1xuZnVuY3Rpb24gY2FtbF91bml4X3JlYWRsaW5rKG5hbWUpIHtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgaWYgKCFyb290LmRldmljZS5yZWFkbGluaykge1xuICAgIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3VuaXhfcmVhZGxpbms6IG5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgfVxuICByZXR1cm4gcm9vdC5kZXZpY2UucmVhZGxpbmsocm9vdC5yZXN0LCAvKiByYWlzZSBVbml4X2Vycm9yICovIHRydWUpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfdW5saW5rXG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9mYWlsd2l0aFxuLy9BbGlhczogdW5peF91bmxpbmtcbmZ1bmN0aW9uIGNhbWxfdW5peF91bmxpbmsobmFtZSkge1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICBpZiAoIXJvb3QuZGV2aWNlLnVubGluaykge1xuICAgIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3VuaXhfdW5saW5rOiBub3QgaW1wbGVtZW50ZWRcIik7XG4gIH1cbiAgcmV0dXJuIHJvb3QuZGV2aWNlLnVubGluayhyb290LnJlc3QsIC8qIHJhaXNlIFVuaXhfZXJyb3IgKi8gdHJ1ZSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9nZXR1aWRcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfbm90X2ZvdW5kXG4vL0FsaWFzOiB1bml4X2dldHVpZFxuZnVuY3Rpb24gY2FtbF91bml4X2dldHVpZCh1bml0KSB7XG4gIGlmKGdsb2JhbFRoaXMucHJvY2VzcyAmJiBnbG9iYWxUaGlzLnByb2Nlc3MuZ2V0dWlkKXtcbiAgICByZXR1cm4gZ2xvYmFsVGhpcy5wcm9jZXNzLmdldHVpZCgpO1xuICB9XG4gIGNhbWxfcmFpc2Vfbm90X2ZvdW5kKCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9nZXRwd3VpZFxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9ub3RfZm91bmRcbi8vQWxpYXM6IHVuaXhfZ2V0cHd1aWRcbmZ1bmN0aW9uIGNhbWxfdW5peF9nZXRwd3VpZCh1bml0KSB7XG4gIGNhbWxfcmFpc2Vfbm90X2ZvdW5kKCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9oYXNfc3ltbGlua1xuLy9SZXF1aXJlczogZnNfbm9kZV9zdXBwb3J0ZWRcbi8vQWxpYXM6IHVuaXhfaGFzX3N5bWxpbmtcbmZ1bmN0aW9uIGNhbWxfdW5peF9oYXNfc3ltbGluayh1bml0KSB7XG4gIHJldHVybiBmc19ub2RlX3N1cHBvcnRlZCgpPzE6MFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfb3BlbmRpclxuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfZmFpbHdpdGhcbi8vQWxpYXM6IHVuaXhfb3BlbmRpclxuZnVuY3Rpb24gY2FtbF91bml4X29wZW5kaXIocGF0aCkge1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKHBhdGgpO1xuICBpZiAoIXJvb3QuZGV2aWNlLm9wZW5kaXIpIHtcbiAgICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF91bml4X29wZW5kaXI6IG5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgfVxuICB2YXIgZGlyX2hhbmRsZSA9IHJvb3QuZGV2aWNlLm9wZW5kaXIocm9vdC5yZXN0LCAvKiByYWlzZSBVbml4X2Vycm9yICovIHRydWUpO1xuICByZXR1cm4geyBwb2ludGVyIDogZGlyX2hhbmRsZSwgcGF0aDogcGF0aCB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9yZWFkZGlyXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX2VuZF9vZl9maWxlXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZ1xuLy9SZXF1aXJlczogbWFrZV91bml4X2Vycl9hcmdzLCBjYW1sX3JhaXNlX3dpdGhfYXJncywgY2FtbF9uYW1lZF92YWx1ZVxuLy9BbGlhczogdW5peF9yZWFkZGlyXG5mdW5jdGlvbiBjYW1sX3VuaXhfcmVhZGRpcihkaXJfaGFuZGxlKSB7XG4gIHZhciBlbnRyeTtcbiAgdHJ5IHtcbiAgICAgIGVudHJ5ID0gZGlyX2hhbmRsZS5wb2ludGVyLnJlYWRTeW5jKCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHZhciB1bml4X2Vycm9yID0gY2FtbF9uYW1lZF92YWx1ZSgnVW5peC5Vbml4X2Vycm9yJyk7XG4gICAgICBjYW1sX3JhaXNlX3dpdGhfYXJncyh1bml4X2Vycm9yLCBtYWtlX3VuaXhfZXJyX2FyZ3MoXCJFQkFERlwiLCBcInJlYWRkaXJcIiwgZGlyX2hhbmRsZS5wYXRoKSk7XG4gIH1cbiAgaWYgKGVudHJ5ID09PSBudWxsKSB7XG4gICAgICBjYW1sX3JhaXNlX2VuZF9vZl9maWxlKCk7XG4gIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcoZW50cnkubmFtZSk7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X2Nsb3NlZGlyXG4vL1JlcXVpcmVzOiBtYWtlX3VuaXhfZXJyX2FyZ3MsIGNhbWxfcmFpc2Vfd2l0aF9hcmdzLCBjYW1sX25hbWVkX3ZhbHVlXG4vL0FsaWFzOiB1bml4X2Nsb3NlZGlyXG5mdW5jdGlvbiBjYW1sX3VuaXhfY2xvc2VkaXIoZGlyX2hhbmRsZSkge1xuICB0cnkge1xuICAgICAgZGlyX2hhbmRsZS5wb2ludGVyLmNsb3NlU3luYygpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgICB2YXIgdW5peF9lcnJvciA9IGNhbWxfbmFtZWRfdmFsdWUoJ1VuaXguVW5peF9lcnJvcicpO1xuICAgICAgY2FtbF9yYWlzZV93aXRoX2FyZ3ModW5peF9lcnJvciwgbWFrZV91bml4X2Vycl9hcmdzKFwiRUJBREZcIiwgXCJjbG9zZWRpclwiLCBkaXJfaGFuZGxlLnBhdGgpKTtcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfcmV3aW5kZGlyXG4vL1JlcXVpcmVzOiBjYW1sX3VuaXhfY2xvc2VkaXIsIGNhbWxfdW5peF9vcGVuZGlyXG4vL0FsaWFzOiB1bml4X3Jld2luZGRpclxuZnVuY3Rpb24gY2FtbF91bml4X3Jld2luZGRpcihkaXJfaGFuZGxlKSB7XG4gIGNhbWxfdW5peF9jbG9zZWRpcihkaXJfaGFuZGxlKTtcbiAgdmFyIG5ld19kaXJfaGFuZGxlID0gY2FtbF91bml4X29wZW5kaXIoZGlyX2hhbmRsZS5wYXRoKTtcbiAgZGlyX2hhbmRsZS5wb2ludGVyID0gbmV3X2Rpcl9oYW5kbGUucG9pbnRlcjtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9maW5kZmlyc3Rcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nLCBjYW1sX3N0cmluZ19vZl9qc3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF91bml4X29wZW5kaXIsIGNhbWxfdW5peF9yZWFkZGlyXG4vL0FsaWFzOiB3aW5fZmluZGZpcnN0XG5mdW5jdGlvbiBjYW1sX3VuaXhfZmluZGZpcnN0KHBhdGgpIHtcbiAgLy8gVGhlIFdpbmRvd3MgY29kZSBhZGRzIHRoaXMgZ2xvYiB0byB0aGUgcGF0aCwgc28gd2UgbmVlZCB0byByZW1vdmUgaXRcbiAgdmFyIHBhdGhfanMgPSBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhwYXRoKTtcbiAgcGF0aF9qcyA9IHBhdGhfanMucmVwbGFjZSgvKF58W1xcXFxcXC9dKVxcKlxcLlxcKiQvLCBcIlwiKTtcbiAgcGF0aCA9IGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKHBhdGhfanMpO1xuICAvLyAqLiogaXMgbm93IHN0cmlwcGVkXG4gIHZhciBkaXJfaGFuZGxlID0gY2FtbF91bml4X29wZW5kaXIocGF0aCk7XG4gIHZhciBmaXJzdF9lbnRyeSA9IGNhbWxfdW5peF9yZWFkZGlyKGRpcl9oYW5kbGUpO1xuICAvLyBUaGUgV2luZG93cyBiaW5kaW5ncyB0eXBlIGRpcl9oYW5kbGUgYXMgYW4gYGludGAgYnV0IGl0J3Mgbm90IGluIEpTXG4gIHJldHVybiBbMCwgZmlyc3RfZW50cnksIGRpcl9oYW5kbGVdO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfZmluZG5leHRcbi8vUmVxdWlyZXM6IGNhbWxfdW5peF9yZWFkZGlyXG4vL0FsaWFzOiB3aW5fZmluZG5leHRcbmZ1bmN0aW9uIGNhbWxfdW5peF9maW5kbmV4dChkaXJfaGFuZGxlKSB7XG4gIHJldHVybiBjYW1sX3VuaXhfcmVhZGRpcihkaXJfaGFuZGxlKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X2ZpbmRjbG9zZVxuLy9SZXF1aXJlczogY2FtbF91bml4X2Nsb3NlZGlyXG4vL0FsaWFzOiB3aW5fZmluZGNsb3NlXG5mdW5jdGlvbiBjYW1sX3VuaXhfZmluZGNsb3NlKGRpcl9oYW5kbGUpIHtcbiAgcmV0dXJuIGNhbWxfdW5peF9jbG9zZWRpcihkaXJfaGFuZGxlKTtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfaW5ldF9hZGRyX29mX3N0cmluZ1xuLy9BbGlhczogdW5peF9pbmV0X2FkZHJfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3VuaXhfaW5ldF9hZGRyX29mX3N0cmluZyAoKSB7cmV0dXJuIDA7fVxuXG5cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxNCBKw6lyw7RtZSBWb3VpbGxvbiwgSHVnbyBIZXV6YXJkXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUHJvdmlkZXM6IE1sRmFrZURldmljZVxuLy9SZXF1aXJlczogTWxGYWtlRmlsZSwgTWxGYWtlRmQsIGNhbWxfY3JlYXRlX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3N5c19lcnJvciwgY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGVcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMsIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX29mX2FycmF5LCBjYW1sX2J5dGVzX29mX3N0cmluZywgY2FtbF9ieXRlc19vZl9qc2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2lzX21sX2J5dGVzLCBjYW1sX2lzX21sX3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9uYW1lZF92YWx1ZSwgY2FtbF9yYWlzZV93aXRoX2FyZ3MsIGNhbWxfbmFtZWRfdmFsdWVzXG4vL1JlcXVpcmVzOiBtYWtlX3VuaXhfZXJyX2FyZ3NcbmZ1bmN0aW9uIE1sRmFrZURldmljZSAocm9vdCwgZikge1xuICB0aGlzLmNvbnRlbnQ9e307XG4gIHRoaXMucm9vdCA9IHJvb3Q7XG4gIHRoaXMubG9va3VwRnVuID0gZjtcbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUubm0gPSBmdW5jdGlvbihuYW1lKSB7XG4gIHJldHVybiAodGhpcy5yb290ICsgbmFtZSk7XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLmNyZWF0ZV9kaXJfaWZfbmVlZGVkID0gZnVuY3Rpb24obmFtZSkge1xuICB2YXIgY29tcCA9IG5hbWUuc3BsaXQoXCIvXCIpO1xuICB2YXIgcmVzID0gXCJcIjtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGNvbXAubGVuZ3RoIC0gMTsgaSsrKXtcbiAgICByZXMgKz0gY29tcFtpXSArIFwiL1wiO1xuICAgIGlmKHRoaXMuY29udGVudFtyZXNdKSBjb250aW51ZTtcbiAgICB0aGlzLmNvbnRlbnRbcmVzXSA9IFN5bWJvbChcImRpcmVjdG9yeVwiKTtcbiAgfVxufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5zbGFzaCA9IGZ1bmN0aW9uKG5hbWUpe1xuICByZXR1cm4gL1xcLyQvLnRlc3QobmFtZSk/bmFtZToobmFtZSArIFwiL1wiKTtcbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUubG9va3VwID0gZnVuY3Rpb24obmFtZSkge1xuICBpZighdGhpcy5jb250ZW50W25hbWVdICYmIHRoaXMubG9va3VwRnVuKSB7XG4gICAgdmFyIHJlcyA9IHRoaXMubG9va3VwRnVuKGNhbWxfc3RyaW5nX29mX2pzYnl0ZXModGhpcy5yb290KSwgY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhuYW1lKSk7XG4gICAgaWYocmVzICE9PSAwKSB7XG4gICAgICB0aGlzLmNyZWF0ZV9kaXJfaWZfbmVlZGVkKG5hbWUpO1xuICAgICAgdGhpcy5jb250ZW50W25hbWVdPW5ldyBNbEZha2VGaWxlKGNhbWxfYnl0ZXNfb2Zfc3RyaW5nKHJlc1sxXSkpO1xuICAgIH1cbiAgfVxufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5leGlzdHMgPSBmdW5jdGlvbihuYW1lKSB7XG4gIC8vIFRoZSByb290IG9mIHRoZSBkZXZpY2UgZXhpc3RzXG4gIGlmKG5hbWUgPT0gXCJcIikgcmV0dXJuIDE7XG4gIC8vIENoZWNrIGlmIGEgZGlyZWN0b3J5IGV4aXN0c1xuICB2YXIgbmFtZV9zbGFzaCA9IHRoaXMuc2xhc2gobmFtZSk7XG4gIGlmKHRoaXMuY29udGVudFtuYW1lX3NsYXNoXSkgcmV0dXJuIDE7XG4gIC8vIENoZWNrIGlmIGEgZmlsZSBleGlzdHNcbiAgdGhpcy5sb29rdXAobmFtZSk7XG4gIHJldHVybiB0aGlzLmNvbnRlbnRbbmFtZV0/MTowO1xufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5pc0ZpbGUgPSBmdW5jdGlvbihuYW1lKSB7XG4gIGlmKHRoaXMuZXhpc3RzKG5hbWUpICYmICF0aGlzLmlzX2RpcihuYW1lKSkge1xuICAgIHJldHVybiAxXG4gIH1cbiAgZWxzZSB7XG4gICAgcmV0dXJuIDBcbiAgfVxufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5ta2RpciA9IGZ1bmN0aW9uKG5hbWUsbW9kZSwgcmFpc2VfdW5peCkge1xuICB2YXIgdW5peF9lcnJvciA9IHJhaXNlX3VuaXggJiYgY2FtbF9uYW1lZF92YWx1ZSgnVW5peC5Vbml4X2Vycm9yJyk7XG4gIGlmKHRoaXMuZXhpc3RzKG5hbWUpKSB7XG4gICAgaWYgKHVuaXhfZXJyb3IpIHtcbiAgICAgIGNhbWxfcmFpc2Vfd2l0aF9hcmdzKHVuaXhfZXJyb3IsIG1ha2VfdW5peF9lcnJfYXJncyhcIkVFWElTVFwiLCBcIm1rZGlyXCIsIHRoaXMubm0obmFtZSkpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihuYW1lICsgXCI6IEZpbGUgZXhpc3RzXCIpO1xuICAgIH1cbiAgfVxuICB2YXIgcGFyZW50ID0gL14oLiopXFwvW14vXSsvLmV4ZWMobmFtZSk7XG4gIHBhcmVudCA9IChwYXJlbnQgJiYgcGFyZW50WzFdKSB8fCAnJztcbiAgaWYoIXRoaXMuZXhpc3RzKHBhcmVudCkpe1xuICAgIGlmICh1bml4X2Vycm9yKSB7XG4gICAgICBjYW1sX3JhaXNlX3dpdGhfYXJncyh1bml4X2Vycm9yLCBtYWtlX3VuaXhfZXJyX2FyZ3MoXCJFTk9FTlRcIiwgXCJta2RpclwiLCB0aGlzLm5tKHBhcmVudCkpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihwYXJlbnQgKyBcIjogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeVwiKTtcbiAgICB9XG4gIH1cbiAgaWYoIXRoaXMuaXNfZGlyKHBhcmVudCkpe1xuICAgIGlmICh1bml4X2Vycm9yKSB7XG4gICAgICBjYW1sX3JhaXNlX3dpdGhfYXJncyh1bml4X2Vycm9yLCBtYWtlX3VuaXhfZXJyX2FyZ3MoXCJFTk9URElSXCIsIFwibWtkaXJcIiwgdGhpcy5ubShwYXJlbnQpKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IocGFyZW50ICsgXCI6IE5vdCBhIGRpcmVjdG9yeVwiKTtcbiAgICB9XG4gIH1cbiAgdGhpcy5jcmVhdGVfZGlyX2lmX25lZWRlZCh0aGlzLnNsYXNoKG5hbWUpKTtcbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUucm1kaXIgPSBmdW5jdGlvbihuYW1lLCByYWlzZV91bml4KSB7XG4gIHZhciB1bml4X2Vycm9yID0gcmFpc2VfdW5peCAmJiBjYW1sX25hbWVkX3ZhbHVlKCdVbml4LlVuaXhfZXJyb3InKTtcbiAgdmFyIG5hbWVfc2xhc2ggPSAobmFtZSA9PSBcIlwiKT9cIlwiOih0aGlzLnNsYXNoKG5hbWUpKTtcbiAgdmFyIHIgPSBuZXcgUmVnRXhwKFwiXlwiICsgbmFtZV9zbGFzaCArIFwiKFteL10rKVwiKTtcbiAgaWYoIXRoaXMuZXhpc3RzKG5hbWUpKSB7XG4gICAgaWYgKHVuaXhfZXJyb3IpIHtcbiAgICAgIGNhbWxfcmFpc2Vfd2l0aF9hcmdzKHVuaXhfZXJyb3IsIG1ha2VfdW5peF9lcnJfYXJncyhcIkVOT0VOVFwiLCBcInJtZGlyXCIsIHRoaXMubm0obmFtZSkpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihuYW1lICsgXCI6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnlcIik7XG4gICAgfVxuICB9XG4gIGlmKCF0aGlzLmlzX2RpcihuYW1lKSkge1xuICAgIGlmICh1bml4X2Vycm9yKSB7XG4gICAgICBjYW1sX3JhaXNlX3dpdGhfYXJncyh1bml4X2Vycm9yLCBtYWtlX3VuaXhfZXJyX2FyZ3MoXCJFTk9URElSXCIsIFwicm1kaXJcIiwgdGhpcy5ubShuYW1lKSkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKG5hbWUgKyBcIjogTm90IGEgZGlyZWN0b3J5XCIpO1xuICAgIH1cbiAgfVxuICBmb3IodmFyIG4gaW4gdGhpcy5jb250ZW50KSB7XG4gICAgaWYobi5tYXRjaChyKSkge1xuICAgICAgaWYgKHVuaXhfZXJyb3IpIHtcbiAgICAgICAgY2FtbF9yYWlzZV93aXRoX2FyZ3ModW5peF9lcnJvciwgbWFrZV91bml4X2Vycl9hcmdzKFwiRU5PVEVNUFRZXCIsIFwicm1kaXJcIiwgdGhpcy5ubShuYW1lKSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5ubShuYW1lKSArIFwiOiBEaXJlY3Rvcnkgbm90IGVtcHR5XCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBkZWxldGUgdGhpcy5jb250ZW50W25hbWVfc2xhc2hdO1xufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5yZWFkZGlyID0gZnVuY3Rpb24obmFtZSkge1xuICB2YXIgbmFtZV9zbGFzaCA9IChuYW1lID09IFwiXCIpP1wiXCI6KHRoaXMuc2xhc2gobmFtZSkpO1xuICBpZighdGhpcy5leGlzdHMobmFtZSkpIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihuYW1lICsgXCI6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnlcIik7XG4gIH1cbiAgaWYoIXRoaXMuaXNfZGlyKG5hbWUpKSB7XG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IobmFtZSArIFwiOiBOb3QgYSBkaXJlY3RvcnlcIik7XG4gIH1cbiAgdmFyIHIgPSBuZXcgUmVnRXhwKFwiXlwiICsgbmFtZV9zbGFzaCArIFwiKFteL10rKVwiKTtcbiAgdmFyIHNlZW4gPSB7fVxuICB2YXIgYSA9IFtdO1xuICBmb3IodmFyIG4gaW4gdGhpcy5jb250ZW50KSB7XG4gICAgdmFyIG0gPSBuLm1hdGNoKHIpO1xuICAgIGlmKG0gJiYgIXNlZW5bbVsxXV0pIHtzZWVuW21bMV1dID0gdHJ1ZTsgYS5wdXNoKG1bMV0pfVxuICB9XG4gIHJldHVybiBhO1xufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5vcGVuZGlyID0gZnVuY3Rpb24obmFtZSwgcmFpc2VfdW5peCkge1xuICB2YXIgdW5peF9lcnJvciA9IHJhaXNlX3VuaXggJiYgY2FtbF9uYW1lZF92YWx1ZSgnVW5peC5Vbml4X2Vycm9yJyk7XG5cbiAgdmFyIGEgPSB0aGlzLnJlYWRkaXIobmFtZSk7XG4gIHZhciBjID0gZmFsc2U7XG4gIHZhciBpID0gMDtcbiAgcmV0dXJuIHsgcmVhZFN5bmMgOiAoZnVuY3Rpb24gKCkge1xuICAgIGlmIChjKSB7XG4gICAgICBpZiAodW5peF9lcnJvcikge1xuICAgICAgICBjYW1sX3JhaXNlX3dpdGhfYXJncyh1bml4X2Vycm9yLCBtYWtlX3VuaXhfZXJyX2FyZ3MoXCJFQkFERlwiLCBcImNsb3NlZGlyXCIsIHRoaXMubm0obmFtZSkpKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihuYW1lICsgXCI6IGNsb3NlZGlyIGZhaWxlZFwiKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYoaSA9PSBhLmxlbmd0aCkgcmV0dXJuIG51bGw7XG4gICAgdmFyIGVudHJ5ID0gYVtpXTtcbiAgICBpKys7XG4gICAgcmV0dXJuIHsgbmFtZTogZW50cnkgfVxuICB9KVxuICAgICwgY2xvc2VTeW5jOiAoZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKGMpIHtcbiAgICAgICAgaWYgKHVuaXhfZXJyb3IpIHtcbiAgICAgICAgICBjYW1sX3JhaXNlX3dpdGhfYXJncyh1bml4X2Vycm9yLCBtYWtlX3VuaXhfZXJyX2FyZ3MoXCJFQkFERlwiLCBcImNsb3NlZGlyXCIsIHRoaXMubm0obmFtZSkpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihuYW1lICsgXCI6IGNsb3NlZGlyIGZhaWxlZFwiKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYyA9IHRydWU7XG4gICAgICBhID0gW107XG4gICAgfSlcbiAgfVxufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5pc19kaXIgPSBmdW5jdGlvbihuYW1lKSB7XG4gIGlmKG5hbWUgPT0gXCJcIikgIHJldHVybiB0cnVlO1xuICB2YXIgbmFtZV9zbGFzaCA9IHRoaXMuc2xhc2gobmFtZSk7XG4gIHJldHVybiB0aGlzLmNvbnRlbnRbbmFtZV9zbGFzaF0/MTowO1xufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS51bmxpbmsgPSBmdW5jdGlvbihuYW1lKSB7XG4gIHZhciBvayA9IHRoaXMuY29udGVudFtuYW1lXT90cnVlOmZhbHNlO1xuICBkZWxldGUgdGhpcy5jb250ZW50W25hbWVdO1xuICByZXR1cm4gb2s7XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLm9wZW4gPSBmdW5jdGlvbihuYW1lLCBmKSB7XG4gIHZhciBmaWxlO1xuICBpZihmLnJkb25seSAmJiBmLndyb25seSlcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLm5tKG5hbWUpICsgXCIgOiBmbGFncyBPcGVuX3Jkb25seSBhbmQgT3Blbl93cm9ubHkgYXJlIG5vdCBjb21wYXRpYmxlXCIpO1xuICBpZihmLnRleHQgJiYgZi5iaW5hcnkpXG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5ubShuYW1lKSArIFwiIDogZmxhZ3MgT3Blbl90ZXh0IGFuZCBPcGVuX2JpbmFyeSBhcmUgbm90IGNvbXBhdGlibGVcIik7XG4gIHRoaXMubG9va3VwKG5hbWUpO1xuICBpZiAodGhpcy5jb250ZW50W25hbWVdKSB7XG4gICAgaWYgKHRoaXMuaXNfZGlyKG5hbWUpKSBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLm5tKG5hbWUpICsgXCIgOiBpcyBhIGRpcmVjdG9yeVwiKTtcbiAgICBpZiAoZi5jcmVhdGUgJiYgZi5leGNsKSBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLm5tKG5hbWUpICsgXCIgOiBmaWxlIGFscmVhZHkgZXhpc3RzXCIpO1xuICAgIGZpbGUgPSB0aGlzLmNvbnRlbnRbbmFtZV07XG4gICAgaWYoZi50cnVuY2F0ZSkgZmlsZS50cnVuY2F0ZSgpO1xuICB9IGVsc2UgaWYgKGYuY3JlYXRlKSB7XG4gICAgdGhpcy5jcmVhdGVfZGlyX2lmX25lZWRlZChuYW1lKTtcbiAgICB0aGlzLmNvbnRlbnRbbmFtZV0gPSBuZXcgTWxGYWtlRmlsZShjYW1sX2NyZWF0ZV9ieXRlcygwKSk7XG4gICAgZmlsZSA9IHRoaXMuY29udGVudFtuYW1lXTtcbiAgfSBlbHNlIHtcbiAgICBjYW1sX3JhaXNlX25vX3N1Y2hfZmlsZSAodGhpcy5ubShuYW1lKSk7XG4gIH1cbiAgcmV0dXJuIG5ldyBNbEZha2VGZCh0aGlzLm5tKG5hbWUpLCBmaWxlLCBmKTtcbn1cblxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5vcGVuID0gZnVuY3Rpb24obmFtZSwgZikge1xuICB2YXIgZmlsZTtcbiAgaWYoZi5yZG9ubHkgJiYgZi53cm9ubHkpXG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5ubShuYW1lKSArIFwiIDogZmxhZ3MgT3Blbl9yZG9ubHkgYW5kIE9wZW5fd3Jvbmx5IGFyZSBub3QgY29tcGF0aWJsZVwiKTtcbiAgaWYoZi50ZXh0ICYmIGYuYmluYXJ5KVxuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMubm0obmFtZSkgKyBcIiA6IGZsYWdzIE9wZW5fdGV4dCBhbmQgT3Blbl9iaW5hcnkgYXJlIG5vdCBjb21wYXRpYmxlXCIpO1xuICB0aGlzLmxvb2t1cChuYW1lKTtcbiAgaWYgKHRoaXMuY29udGVudFtuYW1lXSkge1xuICAgIGlmICh0aGlzLmlzX2RpcihuYW1lKSkgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5ubShuYW1lKSArIFwiIDogaXMgYSBkaXJlY3RvcnlcIik7XG4gICAgaWYgKGYuY3JlYXRlICYmIGYuZXhjbCkgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5ubShuYW1lKSArIFwiIDogZmlsZSBhbHJlYWR5IGV4aXN0c1wiKTtcbiAgICBmaWxlID0gdGhpcy5jb250ZW50W25hbWVdO1xuICAgIGlmKGYudHJ1bmNhdGUpIGZpbGUudHJ1bmNhdGUoKTtcbiAgfSBlbHNlIGlmIChmLmNyZWF0ZSkge1xuICAgIHRoaXMuY3JlYXRlX2Rpcl9pZl9uZWVkZWQobmFtZSk7XG4gICAgdGhpcy5jb250ZW50W25hbWVdID0gbmV3IE1sRmFrZUZpbGUoY2FtbF9jcmVhdGVfYnl0ZXMoMCkpO1xuICAgIGZpbGUgPSB0aGlzLmNvbnRlbnRbbmFtZV07XG4gIH0gZWxzZSB7XG4gICAgY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUgKHRoaXMubm0obmFtZSkpO1xuICB9XG4gIHJldHVybiBuZXcgTWxGYWtlRmQodGhpcy5ubShuYW1lKSwgZmlsZSwgZik7XG59XG5cbk1sRmFrZURldmljZS5wcm90b3R5cGUucmVnaXN0ZXI9IGZ1bmN0aW9uIChuYW1lLGNvbnRlbnQpe1xuICB2YXIgZmlsZTtcbiAgaWYodGhpcy5jb250ZW50W25hbWVdKSBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLm5tKG5hbWUpICsgXCIgOiBmaWxlIGFscmVhZHkgZXhpc3RzXCIpO1xuICBpZihjYW1sX2lzX21sX2J5dGVzKGNvbnRlbnQpKVxuICAgIGZpbGUgPSBuZXcgTWxGYWtlRmlsZShjb250ZW50KTtcbiAgaWYoY2FtbF9pc19tbF9zdHJpbmcoY29udGVudCkpXG4gICAgZmlsZSA9IG5ldyBNbEZha2VGaWxlKGNhbWxfYnl0ZXNfb2Zfc3RyaW5nKGNvbnRlbnQpKTtcbiAgZWxzZSBpZihjb250ZW50IGluc3RhbmNlb2YgQXJyYXkpXG4gICAgZmlsZSA9IG5ldyBNbEZha2VGaWxlKGNhbWxfYnl0ZXNfb2ZfYXJyYXkoY29udGVudCkpO1xuICBlbHNlIGlmKHR5cGVvZiBjb250ZW50ID09PSBcInN0cmluZ1wiKVxuICAgIGZpbGUgPSBuZXcgTWxGYWtlRmlsZShjYW1sX2J5dGVzX29mX2pzYnl0ZXMoY29udGVudCkpO1xuICBlbHNlIGlmKGNvbnRlbnQudG9TdHJpbmcpIHtcbiAgICB2YXIgYnl0ZXMgPSBjYW1sX2J5dGVzX29mX3N0cmluZyhjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhjb250ZW50LnRvU3RyaW5nKCkpKTtcbiAgICBmaWxlID0gbmV3IE1sRmFrZUZpbGUoYnl0ZXMpO1xuICB9XG4gIGlmKGZpbGUpe1xuICAgIHRoaXMuY3JlYXRlX2Rpcl9pZl9uZWVkZWQobmFtZSk7XG4gICAgdGhpcy5jb250ZW50W25hbWVdID0gZmlsZTtcbiAgfVxuICBlbHNlIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMubm0obmFtZSkgKyBcIiA6IHJlZ2lzdGVyaW5nIGZpbGUgd2l0aCBpbnZhbGlkIGNvbnRlbnQgdHlwZVwiKTtcbn1cblxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IE1sRmFrZURldmljZVxuXG4vL1Byb3ZpZGVzOiBNbEZha2VGaWxlXG4vL1JlcXVpcmVzOiBNbEZpbGVcbi8vUmVxdWlyZXM6IGNhbWxfY3JlYXRlX2J5dGVzLCBjYW1sX21sX2J5dGVzX2xlbmd0aCwgY2FtbF9ibGl0X2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzLCBjYW1sX2J5dGVzX29mX2FycmF5XG5mdW5jdGlvbiBNbEZha2VGaWxlKGNvbnRlbnQpe1xuICB0aGlzLmRhdGEgPSBjb250ZW50O1xufVxuTWxGYWtlRmlsZS5wcm90b3R5cGUgPSBuZXcgTWxGaWxlICgpO1xuTWxGYWtlRmlsZS5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBNbEZha2VGaWxlXG5NbEZha2VGaWxlLnByb3RvdHlwZS50cnVuY2F0ZSA9IGZ1bmN0aW9uKGxlbil7XG4gIHZhciBvbGQgPSB0aGlzLmRhdGE7XG4gIHRoaXMuZGF0YSA9IGNhbWxfY3JlYXRlX2J5dGVzKGxlbnwwKTtcbiAgY2FtbF9ibGl0X2J5dGVzKG9sZCwgMCwgdGhpcy5kYXRhLCAwLCBsZW4pO1xufVxuTWxGYWtlRmlsZS5wcm90b3R5cGUubGVuZ3RoID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gY2FtbF9tbF9ieXRlc19sZW5ndGgodGhpcy5kYXRhKTtcbn1cbk1sRmFrZUZpbGUucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24ob2Zmc2V0LGJ1Zixwb3MsbGVuKXtcbiAgdmFyIGNsZW4gPSB0aGlzLmxlbmd0aCgpO1xuICBpZihvZmZzZXQgKyBsZW4gPj0gY2xlbikge1xuICAgIHZhciBuZXdfc3RyID0gY2FtbF9jcmVhdGVfYnl0ZXMob2Zmc2V0ICsgbGVuKTtcbiAgICB2YXIgb2xkX2RhdGEgPSB0aGlzLmRhdGE7XG4gICAgdGhpcy5kYXRhID0gbmV3X3N0cjtcbiAgICBjYW1sX2JsaXRfYnl0ZXMob2xkX2RhdGEsIDAsIHRoaXMuZGF0YSwgMCwgY2xlbik7XG4gIH1cbiAgY2FtbF9ibGl0X2J5dGVzKGNhbWxfYnl0ZXNfb2ZfYXJyYXkoYnVmKSwgcG9zLCB0aGlzLmRhdGEsIG9mZnNldCwgbGVuKTtcbiAgcmV0dXJuIDBcbn1cbk1sRmFrZUZpbGUucHJvdG90eXBlLnJlYWQgPSBmdW5jdGlvbihvZmZzZXQsYnVmLHBvcyxsZW4pe1xuICB2YXIgY2xlbiA9IHRoaXMubGVuZ3RoKCk7XG4gIGlmKG9mZnNldCArIGxlbiA+PSBjbGVuKSB7XG4gICAgbGVuID0gY2xlbiAtIG9mZnNldDtcbiAgfVxuICBpZihsZW4pIHtcbiAgICB2YXIgZGF0YSA9IGNhbWxfY3JlYXRlX2J5dGVzKGxlbnwwKTtcbiAgICBjYW1sX2JsaXRfYnl0ZXModGhpcy5kYXRhLCBvZmZzZXQsIGRhdGEsIDAsIGxlbik7XG4gICAgYnVmLnNldChjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzKGRhdGEpLCBwb3MpO1xuICB9XG4gIHJldHVybiBsZW5cbn1cblxuXG4vL1Byb3ZpZGVzOiBNbEZha2VGZF9vdXRcbi8vUmVxdWlyZXM6IE1sRmFrZUZpbGUsIGNhbWxfY3JlYXRlX2J5dGVzLCBjYW1sX2JsaXRfYnl0ZXMsIGNhbWxfYnl0ZXNfb2ZfYXJyYXlcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfc3lzX2Vycm9yXG5mdW5jdGlvbiBNbEZha2VGZF9vdXQoZmQsZmxhZ3MpIHtcbiAgTWxGYWtlRmlsZS5jYWxsKHRoaXMsIGNhbWxfY3JlYXRlX2J5dGVzKDApKTtcbiAgdGhpcy5sb2cgPSAoZnVuY3Rpb24gKHMpIHsgcmV0dXJuIDAgfSk7XG4gIGlmKGZkID09IDEgJiYgdHlwZW9mIGNvbnNvbGUubG9nID09IFwiZnVuY3Rpb25cIilcbiAgICB0aGlzLmxvZyA9IGNvbnNvbGUubG9nO1xuICBlbHNlIGlmKGZkID09IDIgJiYgdHlwZW9mIGNvbnNvbGUuZXJyb3IgPT0gXCJmdW5jdGlvblwiKVxuICAgIHRoaXMubG9nID0gY29uc29sZS5lcnJvcjtcbiAgZWxzZSBpZih0eXBlb2YgY29uc29sZS5sb2cgPT0gXCJmdW5jdGlvblwiKVxuICAgIHRoaXMubG9nID0gY29uc29sZS5sb2dcbiAgdGhpcy5mbGFncyA9IGZsYWdzO1xufVxuTWxGYWtlRmRfb3V0LnByb3RvdHlwZS5sZW5ndGggPSBmdW5jdGlvbigpIHsgcmV0dXJuIDAgfVxuTWxGYWtlRmRfb3V0LnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uIChvZmZzZXQsYnVmLHBvcyxsZW4pIHtcbiAgaWYodGhpcy5sb2cpIHtcbiAgICBpZihsZW4gPiAwXG4gICAgICAgJiYgcG9zID49IDBcbiAgICAgICAmJiBwb3MrbGVuIDw9IGJ1Zi5sZW5ndGhcbiAgICAgICAmJiBidWZbcG9zK2xlbi0xXSA9PSAxMClcbiAgICAgIGxlbiAtLTtcbiAgICAvLyBEbyBub3Qgb3V0cHV0IHRoZSBsYXN0IFxcbiBpZiBwcmVzZW50XG4gICAgLy8gYXMgY29uc29sZSBsb2dnaW5nIGRpc3BsYXkgYSBuZXdsaW5lIGF0IHRoZSBlbmRcbiAgICB2YXIgc3JjID0gY2FtbF9jcmVhdGVfYnl0ZXMobGVuKTtcbiAgICBjYW1sX2JsaXRfYnl0ZXMoY2FtbF9ieXRlc19vZl9hcnJheShidWYpLCBwb3MsIHNyYywgMCwgbGVuKTtcbiAgICB0aGlzLmxvZyhzcmMudG9VdGYxNigpKTtcbiAgICByZXR1cm4gMDtcbiAgfVxuICBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLmZkICArIFwiOiBmaWxlIGRlc2NyaXB0b3IgYWxyZWFkeSBjbG9zZWRcIik7XG59XG5NbEZha2VGZF9vdXQucHJvdG90eXBlLnJlYWQgPSBmdW5jdGlvbiAob2Zmc2V0LCBidWYsIHBvcywgbGVuKSB7XG4gIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMuZmQgICsgXCI6IGZpbGUgZGVzY3JpcHRvciBpcyB3cml0ZSBvbmx5XCIpO1xufVxuTWxGYWtlRmRfb3V0LnByb3RvdHlwZS5jbG9zZSA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5sb2cgPSB1bmRlZmluZWQ7XG59XG5cblxuLy9Qcm92aWRlczogTWxGYWtlRmRcbi8vUmVxdWlyZXM6IE1sRmFrZUZpbGVcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfc3lzX2Vycm9yXG5mdW5jdGlvbiBNbEZha2VGZChuYW1lLCBmaWxlLGZsYWdzKSB7XG4gIHRoaXMuZmlsZSA9IGZpbGU7XG4gIHRoaXMubmFtZSA9IG5hbWU7XG4gIHRoaXMuZmxhZ3MgPSBmbGFncztcbn1cblxuTWxGYWtlRmQucHJvdG90eXBlLmVycl9jbG9zZWQgPSBmdW5jdGlvbiAoKSB7XG4gIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMubmFtZSAgKyBcIjogZmlsZSBkZXNjcmlwdG9yIGFscmVhZHkgY2xvc2VkXCIpO1xufVxuTWxGYWtlRmQucHJvdG90eXBlLmxlbmd0aCA9IGZ1bmN0aW9uKCkge1xuICBpZih0aGlzLmZpbGUpIHJldHVybiB0aGlzLmZpbGUubGVuZ3RoICgpXG4gIHRoaXMuZXJyX2Nsb3NlZCgpO1xufVxuTWxGYWtlRmQucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24gKG9mZnNldCxidWYscG9zLGxlbikge1xuICBpZih0aGlzLmZpbGUpIHJldHVybiB0aGlzLmZpbGUud3JpdGUob2Zmc2V0LGJ1Zixwb3MsbGVuKVxuICB0aGlzLmVycl9jbG9zZWQoKTtcbn1cbk1sRmFrZUZkLnByb3RvdHlwZS5yZWFkID0gZnVuY3Rpb24gKG9mZnNldCwgYnVmLCBwb3MsIGxlbikge1xuICBpZih0aGlzLmZpbGUpIHJldHVybiB0aGlzLmZpbGUucmVhZChvZmZzZXQsIGJ1ZiwgcG9zLCBsZW4pXG4gIHRoaXMuZXJyX2Nsb3NlZCgpO1xufVxuTWxGYWtlRmQucHJvdG90eXBlLmNsb3NlID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLmZpbGUgPSB1bmRlZmluZWQ7XG59XG4iLCIvL1Byb3ZpZGVzOiBpbml0aWFsaXplX25hdFxuLy9SZXF1aXJlczogY2FtbF9jdXN0b21fb3BzXG4vL1JlcXVpcmVzOiBzZXJpYWxpemVfbmF0LCBkZXNlcmlhbGl6ZV9uYXQsIGNhbWxfaGFzaF9uYXRcbmZ1bmN0aW9uIGluaXRpYWxpemVfbmF0KCkge1xuICBjYW1sX2N1c3RvbV9vcHNbXCJfbmF0XCJdID1cbiAgICB7IGRlc2VyaWFsaXplIDogZGVzZXJpYWxpemVfbmF0LFxuICAgICAgc2VyaWFsaXplIDogc2VyaWFsaXplX25hdCxcbiAgICAgIGhhc2ggOiBjYW1sX2hhc2hfbmF0XG4gICAgfVxufVxuXG4vL1Byb3ZpZGVzOiBNbE5hdFxuZnVuY3Rpb24gTWxOYXQoeCl7XG4gIHRoaXMuZGF0YSA9IG5ldyBJbnQzMkFycmF5KHgpO1xuICAvLyBsZW5ndGhfbmF0IGlzbid0IGV4dGVybmFsLCBzbyB3ZSBoYXZlIHRvIG1ha2UgdGhlIE9iai5zaXplXG4gIC8vIHdvcmsgb3V0IHJpZ2h0LiBUaGUgKzIgdG8gYXJyYXkgbGVuZ3RoIHNlZW1zIHRvIHdvcmsuXG4gIHRoaXMubGVuZ3RoID0gdGhpcy5kYXRhLmxlbmd0aCArIDJcbn1cblxuTWxOYXQucHJvdG90eXBlLmNhbWxfY3VzdG9tID0gXCJfbmF0XCI7XG5cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaF9uYXRcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfaW50LCBudW1fZGlnaXRzX25hdFxuZnVuY3Rpb24gY2FtbF9oYXNoX25hdCh4KSB7XG4gIHZhciBsZW4gPSBudW1fZGlnaXRzX25hdCh4LCAwLCB4LmRhdGEubGVuZ3RoKTtcbiAgdmFyIGggPSAwO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIHguZGF0YVtpXSk7XG4gIH1cbiAgcmV0dXJuIGg7XG59XG5cblxuLy9Qcm92aWRlczogbmF0X29mX2FycmF5XG4vL1JlcXVpcmVzOiBNbE5hdFxuZnVuY3Rpb24gbmF0X29mX2FycmF5KGwpe1xuICByZXR1cm4gbmV3IE1sTmF0KGwpO1xufVxuXG4vL1Byb3ZpZGVzOiBjcmVhdGVfbmF0XG4vL1JlcXVpcmVzOiBNbE5hdFxuZnVuY3Rpb24gY3JlYXRlX25hdChzaXplKSB7XG4gIHZhciBhcnIgPSBuZXcgTWxOYXQoc2l6ZSk7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspIHtcbiAgICBhcnIuZGF0YVtpXSA9IC0xO1xuICB9XG4gIHJldHVybiBhcnI7XG59XG5cbi8vUHJvdmlkZXM6IHNldF90b196ZXJvX25hdFxuZnVuY3Rpb24gc2V0X3RvX3plcm9fbmF0KG5hdCwgb2ZzLCBsZW4pIHtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgbmF0LmRhdGFbb2ZzK2ldID0gMDtcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogYmxpdF9uYXRcbmZ1bmN0aW9uIGJsaXRfbmF0KG5hdDEsIG9mczEsIG5hdDIsIG9mczIsIGxlbikge1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBuYXQxLmRhdGFbb2ZzMStpXSA9IG5hdDIuZGF0YVtvZnMyK2ldO1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBzZXRfZGlnaXRfbmF0XG5mdW5jdGlvbiBzZXRfZGlnaXRfbmF0KG5hdCwgb2ZzLCBkaWdpdCkge1xuICBuYXQuZGF0YVtvZnNdID0gZGlnaXQ7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBudGhfZGlnaXRfbmF0XG5mdW5jdGlvbiBudGhfZGlnaXRfbmF0KG5hdCwgb2ZzKSB7XG4gIHJldHVybiBuYXQuZGF0YVtvZnNdO1xufVxuXG4vL1Byb3ZpZGVzOiBzZXRfZGlnaXRfbmF0X25hdGl2ZVxuZnVuY3Rpb24gc2V0X2RpZ2l0X25hdF9uYXRpdmUobmF0LCBvZnMsIGRpZ2l0KSB7XG4gIG5hdC5kYXRhW29mc10gPSBkaWdpdDtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IG50aF9kaWdpdF9uYXRfbmF0aXZlXG5mdW5jdGlvbiBudGhfZGlnaXRfbmF0X25hdGl2ZShuYXQsIG9mcykge1xuICByZXR1cm4gbmF0LmRhdGFbb2ZzXTtcbn1cblxuLy9Qcm92aWRlczogbnVtX2RpZ2l0c19uYXRcbmZ1bmN0aW9uIG51bV9kaWdpdHNfbmF0KG5hdCwgb2ZzLCBsZW4pIHtcbiAgZm9yKHZhciBpID0gbGVuIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICBpZihuYXQuZGF0YVtvZnMraV0gIT0gMCkgcmV0dXJuIGkrMTtcbiAgfVxuICByZXR1cm4gMTsgLy8gMCBjb3VudHMgYXMgMSBkaWdpdFxufVxuXG4vL1Byb3ZpZGVzOiBudW1fbGVhZGluZ196ZXJvX2JpdHNfaW5fZGlnaXRcbmZ1bmN0aW9uIG51bV9sZWFkaW5nX3plcm9fYml0c19pbl9kaWdpdChuYXQsIG9mcykge1xuICB2YXIgYSA9IG5hdC5kYXRhW29mc107XG4gIHZhciBiID0gMDtcbiAgaWYoYSAmIDB4RkZGRjAwMDApIHsgYiArPTE2OyBhID4+Pj0xNjsgfVxuICBpZihhICYgMHhGRjAwKSAgICAgeyBiICs9IDg7IGEgPj4+PSA4OyB9XG4gIGlmKGEgJiAweEYwKSAgICAgICB7IGIgKz0gNDsgYSA+Pj49IDQ7IH1cbiAgaWYoYSAmIDEyKSAgICAgICAgIHsgYiArPSAyOyBhID4+Pj0gMjsgfVxuICBpZihhICYgMikgICAgICAgICAgeyBiICs9IDE7IGEgPj4+PSAxOyB9XG4gIGlmKGEgJiAxKSAgICAgICAgICB7IGIgKz0gMTsgfVxuICByZXR1cm4gMzIgLSBiO1xufVxuXG4vL1Byb3ZpZGVzOiBpc19kaWdpdF9pbnRcbmZ1bmN0aW9uIGlzX2RpZ2l0X2ludChuYXQsIG9mcykge1xuICBpZiAobmF0LmRhdGFbb2ZzXSA+PSAwKSByZXR1cm4gMVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogaXNfZGlnaXRfemVyb1xuZnVuY3Rpb24gaXNfZGlnaXRfemVybyhuYXQsIG9mcykge1xuICBpZihuYXQuZGF0YVtvZnNdID09IDApIHJldHVybiAxO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogaXNfZGlnaXRfb2RkXG5mdW5jdGlvbiBpc19kaWdpdF9vZGQobmF0LCBvZnMpIHtcbiAgaWYobmF0LmRhdGFbb2ZzXSAmIDEpIHJldHVybiAxO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogaW5jcl9uYXRcbmZ1bmN0aW9uIGluY3JfbmF0KG5hdCwgb2ZzLCBsZW4sIGNhcnJ5X2luKSB7XG4gIHZhciBjYXJyeSA9IGNhcnJ5X2luO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICB2YXIgeCA9IChuYXQuZGF0YVtvZnMraV0gPj4+IDApICsgY2Fycnk7XG4gICAgbmF0LmRhdGFbb2ZzK2ldID0gKHggfCAwKTtcbiAgICBpZih4ID09ICh4ID4+PiAwKSkge1xuICAgICAgY2FycnkgPSAwO1xuICAgICAgYnJlYWs7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhcnJ5ID0gMTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNhcnJ5O1xufVxuXG4vLyBsZW4xID49IGxlbjJcbi8vUHJvdmlkZXM6IGFkZF9uYXRcbi8vUmVxdWlyZXM6IGluY3JfbmF0XG5mdW5jdGlvbiBhZGRfbmF0KG5hdDEsIG9mczEsIGxlbjEsIG5hdDIsIG9mczIsIGxlbjIsIGNhcnJ5X2luKSB7XG4gIHZhciBjYXJyeSA9IGNhcnJ5X2luO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuMjsgaSsrKSB7XG4gICAgdmFyIHggPSAobmF0MS5kYXRhW29mczEraV0gPj4+IDApICsgKG5hdDIuZGF0YVtvZnMyK2ldID4+PiAwKSArIGNhcnJ5O1xuICAgIG5hdDEuZGF0YVtvZnMxK2ldID0geFxuICAgIGlmKHggPT0gKHggPj4+IDApKSB7XG4gICAgICBjYXJyeSA9IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhcnJ5ID0gMTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGluY3JfbmF0KG5hdDEsIG9mczErbGVuMiwgbGVuMS1sZW4yLCBjYXJyeSk7XG59XG5cbi8vUHJvdmlkZXM6IGNvbXBsZW1lbnRfbmF0XG5mdW5jdGlvbiBjb21wbGVtZW50X25hdChuYXQsIG9mcywgbGVuKSB7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIG5hdC5kYXRhW29mcytpXSA9ICgtMSA+Pj4gMCkgLSAobmF0LmRhdGFbb2ZzK2ldID4+PiAwKTtcbiAgfVxufVxuXG4vLyBvY2FtbCBmbGlwcyBjYXJyeV9pblxuLy9Qcm92aWRlczogZGVjcl9uYXRcbmZ1bmN0aW9uIGRlY3JfbmF0KG5hdCwgb2ZzLCBsZW4sIGNhcnJ5X2luKSB7XG4gIHZhciBib3Jyb3cgPSAoY2FycnlfaW4gPT0gMSkgPyAwIDogMTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgdmFyIHggPSAobmF0LmRhdGFbb2ZzK2ldID4+PjApIC0gYm9ycm93O1xuICAgIG5hdC5kYXRhW29mcytpXSA9IHg7XG4gICAgaWYgKHggPj0gMCkge1xuICAgICAgYm9ycm93ID0gMDtcbiAgICAgIGJyZWFrO1xuICAgIH0gZWxzZSB7XG4gICAgICBib3Jyb3cgPSAxO1xuICAgIH1cbiAgfVxuICByZXR1cm4gKGJvcnJvdyA9PSAxKSA/IDAgOiAxO1xufVxuXG4vLyBvY2FtbCBmbGlwcyBjYXJyeV9pblxuLy8gbGVuMSA+PSBsZW4yXG4vL1Byb3ZpZGVzOiBzdWJfbmF0XG4vL1JlcXVpcmVzOiBkZWNyX25hdFxuZnVuY3Rpb24gc3ViX25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyLCBsZW4yLCBjYXJyeV9pbikge1xuICB2YXIgYm9ycm93ID0gKGNhcnJ5X2luID09IDEpID8gMCA6IDE7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW4yOyBpKyspIHtcbiAgICB2YXIgeCA9IChuYXQxLmRhdGFbb2ZzMStpXSA+Pj4gMCkgLSAobmF0Mi5kYXRhW29mczIraV0gPj4+IDApIC0gYm9ycm93O1xuICAgIG5hdDEuZGF0YVtvZnMxK2ldID0geDtcbiAgICBpZiAoeCA+PSAwKSB7XG4gICAgICBib3Jyb3cgPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICBib3Jyb3cgPSAxO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZGVjcl9uYXQobmF0MSwgb2ZzMStsZW4yLCBsZW4xLWxlbjIsIChib3Jyb3c9PTEpPzA6MSk7XG59XG5cbi8vIG5hdDEgKz0gbmF0MiAqIG5hdDNbb2ZzM11cbi8vIGxlbjEgPj0gbGVuMlxuLy9Qcm92aWRlczogbXVsdF9kaWdpdF9uYXRcbi8vUmVxdWlyZXM6IGFkZF9uYXQsIG5hdF9vZl9hcnJheVxuZnVuY3Rpb24gbXVsdF9kaWdpdF9uYXQobmF0MSwgb2ZzMSwgbGVuMSwgbmF0Miwgb2ZzMiwgbGVuMiwgbmF0Mywgb2ZzMykge1xuICB2YXIgY2FycnkgPSAwO1xuICB2YXIgYSA9IChuYXQzLmRhdGFbb2ZzM10gPj4+IDApO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuMjsgaSsrKSB7XG4gICAgdmFyIHgxID0gKG5hdDEuZGF0YVtvZnMxK2ldID4+PiAwKSArIChuYXQyLmRhdGFbb2ZzMitpXSA+Pj4gMCkgKiAoYSAmIDB4MDAwMEZGRkYpICsgY2Fycnk7XG4gICAgdmFyIHgyID0gKG5hdDIuZGF0YVtvZnMyK2ldID4+PiAwKSAqIChhID4+PiAxNik7XG4gICAgY2FycnkgPSBNYXRoLmZsb29yKHgyLzY1NTM2KTtcbiAgICB2YXIgeDMgPSB4MSArICh4MiAlIDY1NTM2KSAqIDY1NTM2O1xuICAgIG5hdDEuZGF0YVtvZnMxK2ldID0geDM7XG4gICAgY2FycnkgKz0gTWF0aC5mbG9vcih4My80Mjk0OTY3Mjk2KTtcbiAgfVxuXG4gIGlmKGxlbjIgPCBsZW4xICYmIGNhcnJ5KSB7XG4gICAgcmV0dXJuIGFkZF9uYXQobmF0MSwgb2ZzMStsZW4yLCBsZW4xLWxlbjIsIG5hdF9vZl9hcnJheShbY2FycnldKSwgMCwgMSwgMCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGNhcnJ5O1xuICB9XG59XG5cbi8vIG5hdDEgKz0gbmF0MiAqIG5hdDNcbi8vIGxlbjEgPj0gbGVuMiArIGxlbjMuXG4vL1Byb3ZpZGVzOiBtdWx0X25hdFxuLy9SZXF1aXJlczogbXVsdF9kaWdpdF9uYXRcbmZ1bmN0aW9uIG11bHRfbmF0KG5hdDEsIG9mczEsIGxlbjEsIG5hdDIsIG9mczIsIGxlbjIsIG5hdDMsIG9mczMsIGxlbjMpIHtcbiAgdmFyIGNhcnJ5ID0gMDtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjM7IGkrKykge1xuICAgIGNhcnJ5ICs9IG11bHRfZGlnaXRfbmF0KG5hdDEsIG9mczEraSwgbGVuMS1pLCBuYXQyLCBvZnMyLCBsZW4yLCBuYXQzLCBvZnMzK2kpO1xuICB9XG4gIHJldHVybiBjYXJyeTtcbn1cblxuLy8gbmF0MSA9IDIgKiBuYXQxICsgbmF0MiAqIG5hdDJcbi8vIGxlbjEgPj0gMiAqIGxlbjJcbi8vUHJvdmlkZXM6IHNxdWFyZV9uYXRcbi8vUmVxdWlyZXM6IG11bHRfbmF0LCBhZGRfbmF0XG5mdW5jdGlvbiBzcXVhcmVfbmF0KG5hdDEsIG9mczEsIGxlbjEsIG5hdDIsIG9mczIsIGxlbjIpIHtcbiAgdmFyIGNhcnJ5ID0gMDtcbiAgY2FycnkgKz0gYWRkX25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQxLCBvZnMxLCBsZW4xLCAwKTtcbiAgY2FycnkgKz0gbXVsdF9uYXQobmF0MSwgb2ZzMSwgbGVuMSwgbmF0Miwgb2ZzMiwgbGVuMiwgbmF0Miwgb2ZzMiwgbGVuMik7XG4gIHJldHVybiBjYXJyeTtcbn1cblxuXG4vLyAwIDw9IHNoaWZ0IDwgMzJcbi8vUHJvdmlkZXM6IHNoaWZ0X2xlZnRfbmF0XG5mdW5jdGlvbiBzaGlmdF9sZWZ0X25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyLCBuYml0cykge1xuICBpZihuYml0cyA9PSAwKSB7XG4gICAgbmF0Mi5kYXRhW29mczJdID0gMDtcbiAgICByZXR1cm4gMDtcbiAgfVxuICB2YXIgd3JhcCA9IDA7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW4xOyBpKyspIHtcbiAgICB2YXIgYSA9IChuYXQxLmRhdGFbb2ZzMStpXSA+Pj4gMCk7XG4gICAgbmF0MS5kYXRhW29mczEraV0gPSAoYSA8PCBuYml0cykgfCB3cmFwO1xuICAgIHdyYXAgPSBhID4+PiAoMzIgLSBuYml0cyk7XG4gIH1cbiAgbmF0Mi5kYXRhW29mczJdID0gd3JhcDtcbiAgcmV0dXJuIDA7XG59XG5cbi8vIEFzc3VtaW5nIGMgPiBhLCByZXR1cm5zIFtxdW90aWVudCwgcmVtYWluZGVyXSBvZiAoYTw8MzIgKyBiKS9jXG4vL1Byb3ZpZGVzOiBkaXZfaGVscGVyXG5mdW5jdGlvbiBkaXZfaGVscGVyKGEsIGIsIGMpIHtcbiAgdmFyIHggPSBhICogNjU1MzYgKyAoYj4+PjE2KTtcbiAgdmFyIHkgPSBNYXRoLmZsb29yKHgvYykgKiA2NTUzNjtcbiAgdmFyIHogPSAoeCAlIGMpICogNjU1MzY7XG4gIHZhciB3ID0geiArIChiICYgMHgwMDAwRkZGRik7XG4gIHJldHVybiBbeSArIE1hdGguZmxvb3Iody9jKSwgdyAlIGNdO1xufVxuXG4vLyBuYXQxW29mczErbGVuXSA8IG5hdDJbb2ZzMl1cbi8vUHJvdmlkZXM6IGRpdl9kaWdpdF9uYXRcbi8vUmVxdWlyZXM6IGRpdl9oZWxwZXJcbmZ1bmN0aW9uIGRpdl9kaWdpdF9uYXQobmF0cSwgb2ZzcSwgbmF0ciwgb2ZzciwgbmF0MSwgb2ZzMSwgbGVuLCBuYXQyLCBvZnMyKSB7XG4gIHZhciByZW0gPSAobmF0MS5kYXRhW29mczErbGVuLTFdID4+PjApO1xuICAvLyBuYXRxW29mc3ErbGVuLTFdIGlzIGd1YXJhbnRlZWQgdG8gYmUgemVybyAoZHVlIHRvIHRoZSBNU0QgcmVxdWlyZW1lbnQpLFxuICAvLyBhbmQgc2hvdWxkIG5vdCBiZSB3cml0dGVuIHRvLlxuICBmb3IodmFyIGkgPSBsZW4tMjsgaSA+PSAwOyBpLS0pIHtcbiAgICB2YXIgeCA9IGRpdl9oZWxwZXIocmVtLCAobmF0MS5kYXRhW29mczEraV0gPj4+IDApLCAobmF0Mi5kYXRhW29mczJdID4+PiAwKSk7XG4gICAgbmF0cS5kYXRhW29mc3EraV0gPSB4WzBdO1xuICAgIHJlbSA9IHhbMV07XG4gIH1cbiAgbmF0ci5kYXRhW29mc3JdID0gcmVtO1xuICByZXR1cm4gMDtcbn1cblxuLy8gbmF0MVtuYXQyOl0gOj0gbmF0MSAvIG5hdDJcbi8vIG5hdDFbOm5hdDJdIDo9IG5hdDEgJSBuYXQyXG4vLyBsZW4xID4gbGVuMiwgbmF0MltvZnMyK2xlbjItMV0gPiBuYXQxW29mczErbGVuMS0xXVxuLy9Qcm92aWRlczogZGl2X25hdFxuLy9SZXF1aXJlczogZGl2X2RpZ2l0X25hdCwgZGl2X2hlbHBlciwgbnVtX2xlYWRpbmdfemVyb19iaXRzX2luX2RpZ2l0LCBzaGlmdF9sZWZ0X25hdCwgc2hpZnRfcmlnaHRfbmF0LCBjcmVhdGVfbmF0LCBzZXRfdG9femVyb19uYXQsIG11bHRfZGlnaXRfbmF0LCBzdWJfbmF0LCBjb21wYXJlX25hdCwgbmF0X29mX2FycmF5XG5mdW5jdGlvbiBkaXZfbmF0KG5hdDEsIG9mczEsIGxlbjEsIG5hdDIsIG9mczIsIGxlbjIpIHtcbiAgaWYobGVuMiA9PSAxKSB7XG4gICAgZGl2X2RpZ2l0X25hdChuYXQxLCBvZnMxKzEsIG5hdDEsIG9mczEsIG5hdDEsIG9mczEsIGxlbjEsIG5hdDIsIG9mczIpO1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgdmFyIHMgPSBudW1fbGVhZGluZ196ZXJvX2JpdHNfaW5fZGlnaXQobmF0Miwgb2ZzMitsZW4yLTEpO1xuICBzaGlmdF9sZWZ0X25hdChuYXQyLCBvZnMyLCBsZW4yLCBuYXRfb2ZfYXJyYXkoWzBdKSwgMCwgcyk7XG4gIHNoaWZ0X2xlZnRfbmF0KG5hdDEsIG9mczEsIGxlbjEsIG5hdF9vZl9hcnJheShbMF0pLCAwLCBzKTtcblxuICB2YXIgZCA9IChuYXQyLmRhdGFbb2ZzMitsZW4yLTFdID4+PiAwKSArIDE7XG4gIHZhciBhID0gY3JlYXRlX25hdChsZW4yKzEpO1xuICBmb3IgKHZhciBpID0gbGVuMSAtIDE7IGkgPj0gbGVuMjsgaS0tKSB7XG4gICAgLy8gRGVjZW50IGxvd2VyIGJvdW5kIG9uIHF1b1xuICAgIHZhciBxdW8gPSBkID09IDQyOTQ5NjcyOTYgPyAobmF0MS5kYXRhW29mczEraV0gPj4+IDApIDogZGl2X2hlbHBlcigobmF0MS5kYXRhW29mczEraV0gPj4+IDApLCAobmF0MS5kYXRhW29mczEraS0xXSA+Pj4wKSwgZClbMF07XG4gICAgc2V0X3RvX3plcm9fbmF0KGEsIDAsIGxlbjIrMSk7XG4gICAgbXVsdF9kaWdpdF9uYXQoYSwgMCwgbGVuMisxLCBuYXQyLCBvZnMyLCBsZW4yLCBuYXRfb2ZfYXJyYXkoW3F1b10pLCAwKTtcbiAgICBzdWJfbmF0KG5hdDEsIG9mczEraS1sZW4yLCBsZW4yKzEsIGEsIDAsIGxlbjIrMSwgMSk7XG5cbiAgICB3aGlsZSAobmF0MS5kYXRhW29mczEraV0gIT0gMCB8fCBjb21wYXJlX25hdChuYXQxLCBvZnMxK2ktbGVuMiwgbGVuMiwgbmF0Miwgb2ZzMiwgbGVuMikgPj0gMCkge1xuICAgICAgcXVvID0gcXVvICsgMTtcbiAgICAgIHN1Yl9uYXQobmF0MSwgb2ZzMStpLWxlbjIsIGxlbjIrMSwgbmF0Miwgb2ZzMiwgbGVuMiwgMSk7XG4gICAgfVxuXG4gICAgbmF0MS5kYXRhW29mczEraV0gPSBxdW87XG4gIH1cblxuICBzaGlmdF9yaWdodF9uYXQobmF0MSwgb2ZzMSwgbGVuMiwgbmF0X29mX2FycmF5KFswXSksIDAsIHMpOyAvLyBzaGlmdCByZW1haW5kZXJcbiAgc2hpZnRfcmlnaHRfbmF0KG5hdDIsIG9mczIsIGxlbjIsIG5hdF9vZl9hcnJheShbMF0pLCAwLCBzKTsgLy8gcmVzdG9yZVxuICByZXR1cm4gMDtcbn1cblxuXG4vLyAwIDw9IHNoaWZ0IDwgMzJcbi8vUHJvdmlkZXM6IHNoaWZ0X3JpZ2h0X25hdFxuZnVuY3Rpb24gc2hpZnRfcmlnaHRfbmF0KG5hdDEsIG9mczEsIGxlbjEsIG5hdDIsIG9mczIsIG5iaXRzKSB7XG4gIGlmKG5iaXRzID09IDApIHtcbiAgICBuYXQyLmRhdGFbb2ZzMl0gPSAwO1xuICAgIHJldHVybiAwO1xuICB9XG4gIHZhciB3cmFwID0gMDtcbiAgZm9yKHZhciBpID0gbGVuMS0xOyBpID49IDA7IGktLSkge1xuICAgIHZhciBhID0gbmF0MS5kYXRhW29mczEraV0gPj4+IDA7XG4gICAgbmF0MS5kYXRhW29mczEraV0gPSAoYSA+Pj4gbmJpdHMpIHwgd3JhcDtcbiAgICB3cmFwID0gYSA8PCAoMzIgLSBuYml0cyk7XG4gIH1cbiAgbmF0Mi5kYXRhW29mczJdID0gd3JhcDtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNvbXBhcmVfZGlnaXRzX25hdFxuZnVuY3Rpb24gY29tcGFyZV9kaWdpdHNfbmF0KG5hdDEsIG9mczEsIG5hdDIsIG9mczIpIHtcbiAgaWYobmF0MS5kYXRhW29mczFdID4gbmF0Mi5kYXRhW29mczJdKSByZXR1cm4gMTtcbiAgaWYobmF0MS5kYXRhW29mczFdIDwgbmF0Mi5kYXRhW29mczJdKSByZXR1cm4gLTE7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjb21wYXJlX25hdFxuLy9SZXF1aXJlczogbnVtX2RpZ2l0c19uYXRcbmZ1bmN0aW9uIGNvbXBhcmVfbmF0KG5hdDEsIG9mczEsIGxlbjEsIG5hdDIsIG9mczIsIGxlbjIpIHtcbiAgdmFyIGEgPSBudW1fZGlnaXRzX25hdChuYXQxLCBvZnMxLCBsZW4xKTtcbiAgdmFyIGIgPSBudW1fZGlnaXRzX25hdChuYXQyLCBvZnMyLCBsZW4yKTtcbiAgaWYoYSA+IGIpIHJldHVybiAxO1xuICBpZihhIDwgYikgcmV0dXJuIC0xO1xuICBmb3IodmFyIGkgPSBsZW4xIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICBpZiAoKG5hdDEuZGF0YVtvZnMxK2ldID4+PiAwKSA+IChuYXQyLmRhdGFbb2ZzMitpXSA+Pj4gMCkpIHJldHVybiAxO1xuICAgIGlmICgobmF0MS5kYXRhW29mczEraV0gPj4+IDApIDwgKG5hdDIuZGF0YVtvZnMyK2ldID4+PiAwKSkgcmV0dXJuIC0xO1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjb21wYXJlX25hdF9yZWFsXG4vL1JlcXVpcmVzOiBjb21wYXJlX25hdFxuZnVuY3Rpb24gY29tcGFyZV9uYXRfcmVhbChuYXQxLG5hdDIpe1xuICByZXR1cm4gY29tcGFyZV9uYXQobmF0MSwwLG5hdDEuZGF0YS5sZW5ndGgsbmF0MiwwLG5hdDIuZGF0YS5sZW5ndGgpO1xufVxuXG4vL1Byb3ZpZGVzOiBsYW5kX2RpZ2l0X25hdFxuZnVuY3Rpb24gbGFuZF9kaWdpdF9uYXQobmF0MSwgb2ZzMSwgbmF0Miwgb2ZzMikge1xuICBuYXQxLmRhdGFbb2ZzMV0gJj0gbmF0Mi5kYXRhW29mczJdO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogbG9yX2RpZ2l0X25hdFxuZnVuY3Rpb24gbG9yX2RpZ2l0X25hdChuYXQxLCBvZnMxLCBuYXQyLCBvZnMyKSB7XG4gIG5hdDEuZGF0YVtvZnMxXSB8PSBuYXQyLmRhdGFbb2ZzMl07XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBseG9yX2RpZ2l0X25hdFxuZnVuY3Rpb24gbHhvcl9kaWdpdF9uYXQobmF0MSwgb2ZzMSwgbmF0Miwgb2ZzMikge1xuICBuYXQxLmRhdGFbb2ZzMV0gXj0gbmF0Mi5kYXRhW29mczJdO1xuICByZXR1cm4gMDtcbn1cblxuXG4vL1Byb3ZpZGVzOiBzZXJpYWxpemVfbmF0XG5mdW5jdGlvbiBzZXJpYWxpemVfbmF0KHdyaXRlciwgbmF0LCBzeil7XG4gIHZhciBsZW4gPSBuYXQuZGF0YS5sZW5ndGg7XG4gIHdyaXRlci53cml0ZSgzMiwgbGVuKTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKXtcbiAgICB3cml0ZXIud3JpdGUoMzIsIG5hdC5kYXRhW2ldKTtcbiAgfVxuICBzelswXSA9IGxlbiAqIDQ7XG4gIHN6WzFdID0gbGVuICogODtcbn1cblxuLy9Qcm92aWRlczogZGVzZXJpYWxpemVfbmF0XG4vL1JlcXVpcmVzOiBNbE5hdFxuZnVuY3Rpb24gZGVzZXJpYWxpemVfbmF0KHJlYWRlciwgc3ope1xuICB2YXIgbGVuID0gcmVhZGVyLnJlYWQzMnMoKTtcbiAgdmFyIG5hdCA9IG5ldyBNbE5hdChsZW4pO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspe1xuICAgIG5hdC5kYXRhW2ldID0gcmVhZGVyLnJlYWQzMnMoKTtcbiAgfVxuICBzelswXSA9IGxlbiAqIDQ7XG4gIHJldHVybiBuYXQ7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTQgSHVnbyBIZXV6YXJkXG5cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG5cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3N0YXRlXG52YXIgY2FtbF9ncl9zdGF0ZTtcblxuLy9Qcm92aWRlczogY2FtbF9ncl9zdGF0ZV9nZXRcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVcbi8vUmVxdWlyZXM6IGNhbWxfbmFtZWRfdmFsdWUsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfbWF5YmVfYXR0YWNoX2JhY2t0cmFjZVxuZnVuY3Rpb24gY2FtbF9ncl9zdGF0ZV9nZXQoKSB7XG4gIGlmKGNhbWxfZ3Jfc3RhdGUpIHtcbiAgICByZXR1cm4gY2FtbF9ncl9zdGF0ZTtcbiAgfVxuICB0aHJvdyBjYW1sX21heWJlX2F0dGFjaF9iYWNrdHJhY2UoWzAsY2FtbF9uYW1lZF92YWx1ZShcIkdyYXBoaWNzLkdyYXBoaWNfZmFpbHVyZVwiKSwgY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhcIk5vdCBpbml0aWFsaXplZFwiKV0pO1xufVxuLy9Qcm92aWRlczogY2FtbF9ncl9zdGF0ZV9zZXRcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGUsY2FtbF9ncl9zdGF0ZV9pbml0XG5mdW5jdGlvbiBjYW1sX2dyX3N0YXRlX3NldChjdHgpIHtcbiAgY2FtbF9ncl9zdGF0ZT1jdHg7XG4gIGNhbWxfZ3Jfc3RhdGVfaW5pdCgpXG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX29wZW5fZ3JhcGhcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfY3JlYXRlXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX3NldFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfZ3Jfb3Blbl9ncmFwaChpbmZvKXtcbiAgdmFyIGluZm8gPSBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhpbmZvKTtcbiAgZnVuY3Rpb24gZ2V0KG5hbWUpe1xuICAgIHZhciByZXMgPSBpbmZvLm1hdGNoKFwiKF58LCkgKlwiK25hbWUrXCIgKj0gKihbYS16QS1aMC05X10rKSAqKCx8JClcIik7XG4gICAgaWYocmVzKSByZXR1cm4gcmVzWzJdO1xuICB9XG4gIHZhciBzcGVjcyA9IFtdO1xuICBpZighKGluZm89PVwiXCIpKSBzcGVjcy5wdXNoKGluZm8pO1xuICB2YXIgdGFyZ2V0ID0gZ2V0KFwidGFyZ2V0XCIpO1xuICBpZighdGFyZ2V0KSB0YXJnZXQ9XCJcIjtcbiAgdmFyIHN0YXR1cyA9IGdldChcInN0YXR1c1wiKTtcbiAgaWYoIXN0YXR1cykgc3BlY3MucHVzaChcInN0YXR1cz0xXCIpXG5cbiAgdmFyIHcgPSBnZXQoXCJ3aWR0aFwiKTtcbiAgdyA9IHc/cGFyc2VJbnQodyk6MjAwO1xuICBzcGVjcy5wdXNoKFwid2lkdGg9XCIrdyk7XG5cbiAgdmFyIGggPSBnZXQoXCJoZWlnaHRcIik7XG4gIGggPSBoP3BhcnNlSW50KGgpOjIwMDtcbiAgc3BlY3MucHVzaChcImhlaWdodD1cIitoKTtcblxuICB2YXIgd2luID0gZ2xvYmFsVGhpcy5vcGVuKFwiYWJvdXQ6YmxhbmtcIix0YXJnZXQsc3BlY3Muam9pbihcIixcIikpO1xuICBpZighd2luKSB7Y2FtbF9mYWlsd2l0aChcIkdyYXBoaWNzLm9wZW5fZ3JhcGg6IGNhbm5vdCBvcGVuIHRoZSB3aW5kb3dcIil9XG4gIHZhciBkb2MgPSB3aW4uZG9jdW1lbnQ7XG4gIHZhciBjYW52YXMgPSBkb2MuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtcbiAgY2FudmFzLndpZHRoID0gdztcbiAgY2FudmFzLmhlaWdodCA9IGg7XG4gIHZhciBjdHggPSBjYW1sX2dyX3N0YXRlX2NyZWF0ZShjYW52YXMsdyxoKTtcbiAgY3R4LnNldF90aXRsZSA9IGZ1bmN0aW9uICh0aXRsZSkge1xuICAgIGRvYy50aXRsZSA9IHRpdGxlO1xuICB9O1xuICBjYW1sX2dyX3N0YXRlX3NldChjdHgpO1xuICB2YXIgYm9keSA9IGRvYy5ib2R5O1xuICBib2R5LnN0eWxlLm1hcmdpbiA9IFwiMHB4XCI7XG4gIGJvZHkuYXBwZW5kQ2hpbGQoY2FudmFzKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc3RhdGVfaW5pdFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZVxuLy9SZXF1aXJlczogY2FtbF9ncl9zZXRfY29sb3IsY2FtbF9ncl9tb3ZldG8sY2FtbF9ncl9yZXNpemVfd2luZG93XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3NldF9saW5lX3dpZHRoLGNhbWxfZ3Jfc2V0X3RleHRfc2l6ZSxjYW1sX2dyX3NldF9mb250XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3NldF93aW5kb3dfdGl0bGVcbmZ1bmN0aW9uIGNhbWxfZ3Jfc3RhdGVfaW5pdCgpe1xuICBjYW1sX2dyX21vdmV0byhjYW1sX2dyX3N0YXRlLngsY2FtbF9ncl9zdGF0ZS55KTtcbiAgY2FtbF9ncl9yZXNpemVfd2luZG93KGNhbWxfZ3Jfc3RhdGUud2lkdGgsY2FtbF9ncl9zdGF0ZS5oZWlnaHQpO1xuICBjYW1sX2dyX3NldF9saW5lX3dpZHRoKGNhbWxfZ3Jfc3RhdGUubGluZV93aWR0aCk7XG4gIGNhbWxfZ3Jfc2V0X3RleHRfc2l6ZShjYW1sX2dyX3N0YXRlLnRleHRfc2l6ZSk7XG4gIGNhbWxfZ3Jfc2V0X2ZvbnQoY2FtbF9ncl9zdGF0ZS5mb250KTtcbiAgY2FtbF9ncl9zZXRfY29sb3IoY2FtbF9ncl9zdGF0ZS5jb2xvcik7XG4gIGNhbWxfZ3Jfc2V0X3dpbmRvd190aXRsZShjYW1sX2dyX3N0YXRlLnRpdGxlKTtcbiAgLy9jYW1sX2dyX3Jlc2l6ZV93aW5kb3cgbWlnaHQgcmVzZXQgc29tZSBjYW52YXMnIHByb3BlcnRpZXNcbiAgY2FtbF9ncl9zdGF0ZS5jb250ZXh0LnRleHRCYXNlbGluZSA9ICdib3R0b20nO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3N0YXRlX2NyZWF0ZVxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9ncl9zdGF0ZV9jcmVhdGUoY2FudmFzLHcsaCl7XG4gIHZhciBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoXCIyZFwiKTtcbiAgcmV0dXJuIHtcbiAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgIGNhbnZhcyA6IGNhbnZhcyxcbiAgICB4IDogMCxcbiAgICB5IDogMCxcbiAgICB3aWR0aCA6IHcsXG4gICAgaGVpZ2h0IDogaCxcbiAgICBsaW5lX3dpZHRoIDogMSxcbiAgICBmb250IDogY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhcImZpeGVkXCIpLFxuICAgIHRleHRfc2l6ZSA6IDI2LFxuICAgIGNvbG9yIDogMHgwMDAwMDAsXG4gICAgdGl0bGUgOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFwiXCIpXG4gIH07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZG9jX29mX3N0YXRlXG5mdW5jdGlvbiBjYW1sX2dyX2RvY19vZl9zdGF0ZShzdGF0ZSkge1xuICBpZihzdGF0ZS5jYW52YXMub3duZXJEb2N1bWVudClcbiAgICByZXR1cm4gc3RhdGUuY2FudmFzLm93bmVyRG9jdW1lbnQ7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfY2xvc2VfZ3JhcGhcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2Nsb3NlX2dyYXBoKCl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy5jYW52YXMud2lkdGggPSAwO1xuICBzLmNhbnZhcy5oZWlnaHQgPSAwO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9zZXRfd2luZG93X3RpdGxlXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfZ3Jfc2V0X3dpbmRvd190aXRsZShuYW1lKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLnRpdGxlID0gbmFtZTtcbiAgdmFyIGpzbmFtZSA9IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKG5hbWUpO1xuICBpZihzLnNldF90aXRsZSkgcy5zZXRfdGl0bGUoanNuYW1lKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfcmVzaXplX3dpbmRvd1xuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfcmVzaXplX3dpbmRvdyh3LGgpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KClcbiAgcy53aWR0aCA9IHc7XG4gIHMuaGVpZ2h0ID0gaDtcbiAgcy5jYW52YXMud2lkdGggPSB3O1xuICBzLmNhbnZhcy5oZWlnaHQgPSBoO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9jbGVhcl9ncmFwaFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfY2xlYXJfZ3JhcGgoKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLmNhbnZhcy53aWR0aCA9IHMud2lkdGg7XG4gIHMuY2FudmFzLmhlaWdodCA9IHMuaGVpZ2h0O1xuICAvLyAgcy5jb250ZXh0LnN0cm9rZVJlY3QgKDAuLCAwLiwgcy53aWR0aCwgcy5oZWlnaHQpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9zaXplX3hcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX3NpemVfeCgpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHJldHVybiBzLndpZHRoO1xufVxuLy9Qcm92aWRlczogY2FtbF9ncl9zaXplX3lcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX3NpemVfeSgpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHJldHVybiBzLmhlaWdodDtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3NldF9jb2xvclxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3Jfc2V0X2NvbG9yKGNvbG9yKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBmdW5jdGlvbiBjb252ZXJ0KG51bWJlcikge1xuICAgIHZhciBzdHIgPSAnJyArIG51bWJlci50b1N0cmluZygxNik7XG4gICAgd2hpbGUgKHN0ci5sZW5ndGggPCAyKSBzdHIgPSAnMCcgKyBzdHI7XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuICB2YXJcbiAgciA9IChjb2xvciA+PiAxNikgJiAweGZmLFxuICBnID0gKGNvbG9yID4+IDgpICAmIDB4ZmYsXG4gIGIgPSAoY29sb3IgPj4gMCkgICYgMHhmZjtcbiAgcy5jb2xvcj1jb2xvcjtcbiAgdmFyIGNfc3RyID0gJyMnICsgY29udmVydChyKSArIGNvbnZlcnQoZykgKyBjb252ZXJ0KGIpO1xuICBzLmNvbnRleHQuZmlsbFN0eWxlID0gICBjX3N0cjtcbiAgcy5jb250ZXh0LnN0cm9rZVN0eWxlID0gY19zdHI7XG4gIHJldHVybiAwO1xufVxuLy9Qcm92aWRlczogY2FtbF9ncl9wbG90XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9wbG90KHgseSl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgdmFyIGltPXMuY29udGV4dC5jcmVhdGVJbWFnZURhdGEoMSwxKTtcbiAgdmFyIGQgPSBpbS5kYXRhO1xuICB2YXIgY29sb3IgPSBzLmNvbG9yO1xuICBkWzBdID0gKGNvbG9yID4+IDE2KSAmIDB4ZmY7IC8vclxuICBkWzFdID0gKGNvbG9yID4+IDgpICAmIDB4ZmYsIC8vZ1xuICBkWzJdID0gKGNvbG9yID4+IDApICAmIDB4ZmY7IC8vYlxuICBkWzNdID0gMHhGRjsgLy9hXG4gIHMueD14O1xuICBzLnk9eTtcbiAgcy5jb250ZXh0LnB1dEltYWdlRGF0YShpbSx4LHMuaGVpZ2h0IC0geSk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3BvaW50X2NvbG9yXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9wb2ludF9jb2xvcih4LHkpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHZhciBpbT1zLmNvbnRleHQuZ2V0SW1hZ2VEYXRhKHgscy5oZWlnaHQgLSB5LDEsMSk7XG4gIHZhciBkID0gaW0uZGF0YTtcbiAgcmV0dXJuIChkWzBdIDw8IDE2KSArIChkWzFdIDw8IDgpICsgZFsyXTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfbW92ZXRvXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9tb3ZldG8oeCx5KXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLng9eDtcbiAgcy55PXk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2N1cnJlbnRfeFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfY3VycmVudF94KCl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcmV0dXJuIHMueFxufVxuLy9Qcm92aWRlczogY2FtbF9ncl9jdXJyZW50X3lcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2N1cnJlbnRfeSgpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHJldHVybiBzLnlcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfbGluZXRvXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9saW5ldG8oeCx5KXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLmNvbnRleHQuYmVnaW5QYXRoKCk7XG4gIHMuY29udGV4dC5tb3ZlVG8ocy54LHMuaGVpZ2h0IC0gcy55KTtcbiAgcy5jb250ZXh0LmxpbmVUbyh4LHMuaGVpZ2h0IC0geSk7XG4gIHMuY29udGV4dC5zdHJva2UoKTtcbiAgcy54PXg7XG4gIHMueT15O1xuICByZXR1cm4gMDtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZHJhd19yZWN0XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9kcmF3X3JlY3QoeCx5LHcsaCl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy5jb250ZXh0LnN0cm9rZVJlY3QoeCxzLmhlaWdodCAtIHksdywtaCk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2FyY19hdXhcbmZ1bmN0aW9uIGNhbWxfZ3JfYXJjX2F1eChjdHgsY3gsY3kscnkscngsYTEsYTIpe1xuICB3aGlsZShhMT5hMikgYTIrPTM2MDtcbiAgYTEgLz0gMTgwO1xuICBhMiAvPSAxODA7XG4gIHZhciByb3QgPSAwLHhQb3MseVBvcyx4UG9zX3ByZXYseVBvc19wcmV2O1xuICB2YXIgc3BhY2UgPSAyO1xuICB2YXIgbnVtID0gKCgoYTIgLSBhMSkgKiBNYXRoLlBJICogKChyeCtyeSkvMikpIC8gc3BhY2UpIHwgMDtcbiAgdmFyIGRlbHRhID0gKGEyIC0gYTEpICogTWF0aC5QSSAvIG51bTtcbiAgdmFyIGkgPSBhMSAqIE1hdGguUEk7XG4gIGZvciAodmFyIGo9MDtqPD1udW07aisrKXtcbiAgICB4UG9zID0gY3ggLSAocnggKiBNYXRoLnNpbihpKSkgKiBNYXRoLnNpbihyb3QgKiBNYXRoLlBJKSArIChyeSAqIE1hdGguY29zKGkpKSAqIE1hdGguY29zKHJvdCAqIE1hdGguUEkpO1xuICAgIHhQb3MgPSB4UG9zLnRvRml4ZWQoMik7XG4gICAgeVBvcyA9IGN5ICsgKHJ5ICogTWF0aC5jb3MoaSkpICogTWF0aC5zaW4ocm90ICogTWF0aC5QSSkgKyAocnggKiBNYXRoLnNpbihpKSkgKiBNYXRoLmNvcyhyb3QgKiBNYXRoLlBJKTtcbiAgICB5UG9zID0geVBvcy50b0ZpeGVkKDIpO1xuICAgIGlmIChqPT0wKSB7XG4gICAgICBjdHgubW92ZVRvKHhQb3MsIHlQb3MpO1xuICAgIH0gZWxzZSBpZiAoeFBvc19wcmV2IT14UG9zIHx8IHlQb3NfcHJldiE9eVBvcyl7XG4gICAgICBjdHgubGluZVRvKHhQb3MsIHlQb3MpO1xuICAgIH1cbiAgICB4UG9zX3ByZXY9eFBvcztcbiAgICB5UG9zX3ByZXY9eVBvcztcbiAgICBpLT0gZGVsdGE7Ly9jY3dcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2RyYXdfYXJjXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldCwgY2FtbF9ncl9hcmNfYXV4XG5mdW5jdGlvbiBjYW1sX2dyX2RyYXdfYXJjKHgseSxyeCxyeSxhMSxhMil7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy5jb250ZXh0LmJlZ2luUGF0aCgpO1xuICBjYW1sX2dyX2FyY19hdXgocy5jb250ZXh0LHgscy5oZWlnaHQgLSB5LHJ4LHJ5LGExLGEyKTtcbiAgcy5jb250ZXh0LnN0cm9rZSgpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9zZXRfbGluZV93aWR0aFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3Jfc2V0X2xpbmVfd2lkdGgodyl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy5saW5lX3dpZHRoID0gdztcbiAgcy5jb250ZXh0LmxpbmVXaWR0aCA9IHdcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZmlsbF9yZWN0XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9maWxsX3JlY3QoeCx5LHcsaCl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy5jb250ZXh0LmZpbGxSZWN0KHgscy5oZWlnaHQgLSB5LHcsLWgpO1xuICByZXR1cm4gMDtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZmlsbF9wb2x5XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9maWxsX3BvbHkoYXIpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMuY29udGV4dC5iZWdpblBhdGgoKTtcbiAgcy5jb250ZXh0Lm1vdmVUbyhhclsxXVsxXSxzLmhlaWdodCAtIGFyWzFdWzJdKTtcbiAgZm9yKHZhciBpID0gMjsgaSA8IGFyLmxlbmd0aDsgaSsrKVxuICAgIHMuY29udGV4dC5saW5lVG8oYXJbaV1bMV0scy5oZWlnaHQgLSBhcltpXVsyXSk7XG4gIHMuY29udGV4dC5saW5lVG8oYXJbMV1bMV0scy5oZWlnaHQgLSBhclsxXVsyXSk7XG4gIHMuY29udGV4dC5maWxsKCk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2ZpbGxfYXJjXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldCwgY2FtbF9ncl9hcmNfYXV4XG5mdW5jdGlvbiBjYW1sX2dyX2ZpbGxfYXJjKHgseSxyeCxyeSxhMSxhMil7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy5jb250ZXh0LmJlZ2luUGF0aCgpO1xuICBjYW1sX2dyX2FyY19hdXgocy5jb250ZXh0LHgscy5oZWlnaHQgLSB5LHJ4LHJ5LGExLGEyKTtcbiAgcy5jb250ZXh0LmZpbGwoKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZHJhd19zdHJcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2RyYXdfc3RyKHN0cil7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgdmFyIG0gPSBzLmNvbnRleHQubWVhc3VyZVRleHQoc3RyKTtcbiAgdmFyIGR4ID0gbS53aWR0aDtcbiAgcy5jb250ZXh0LmZpbGxUZXh0KHN0cixzLngscy5oZWlnaHQgLSBzLnkpO1xuICBzLnggKz0gZHggfCAwO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9kcmF3X2NoYXJcbi8vUmVxdWlyZXM6IGNhbWxfZ3JfZHJhd19zdHJcbmZ1bmN0aW9uIGNhbWxfZ3JfZHJhd19jaGFyKGMpe1xuICBjYW1sX2dyX2RyYXdfc3RyKFN0cmluZy5mcm9tQ2hhckNvZGUoYykpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9kcmF3X3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9ncl9kcmF3X3N0clxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfZ3JfZHJhd19zdHJpbmcoc3RyKXtcbiAgY2FtbF9ncl9kcmF3X3N0cihjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhzdHIpKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc2V0X2ZvbnRcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9ncl9zZXRfZm9udChmKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLmZvbnQgPSBmO1xuICBzLmNvbnRleHQuZm9udCA9IHMudGV4dF9zaXplICsgXCJweCBcIiArIGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHMuZm9udCk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3NldF90ZXh0X3NpemVcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9ncl9zZXRfdGV4dF9zaXplKHNpemUpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMudGV4dF9zaXplID0gc2l6ZTtcbiAgcy5jb250ZXh0LmZvbnQgPSBzLnRleHRfc2l6ZSArIFwicHggXCIgKyBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhzLmZvbnQpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl90ZXh0X3NpemVcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9ncl90ZXh0X3NpemUodHh0KXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICB2YXIgdyA9IHMuY29udGV4dC5tZWFzdXJlVGV4dChjYW1sX2pzc3RyaW5nX29mX3N0cmluZyh0eHQpKS53aWR0aDtcbiAgcmV0dXJuIFswLHcscy50ZXh0X3NpemVdO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfbWFrZV9pbWFnZVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfbWFrZV9pbWFnZShhcnIpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHZhciBoID0gYXJyLmxlbmd0aCAtIDEgO1xuICB2YXIgdyA9IGFyclsxXS5sZW5ndGggLSAxO1xuICB2YXIgaW0gPSBzLmNvbnRleHQuY3JlYXRlSW1hZ2VEYXRhKHcsaCk7XG4gIGZvcih2YXIgaT0wO2k8aDtpKyspe1xuICAgIGZvcih2YXIgaj0wO2o8dztqKyspe1xuICAgICAgdmFyIGMgPSBhcnJbaSsxXVtqKzFdO1xuICAgICAgdmFyIG8gPSBpKih3KjQpICsgKGogKiA0KTtcbiAgICAgIGlmKGMgPT0gLTEpIHtcbiAgICAgICAgaW0uZGF0YVtvICsgMF0gPSAwO1xuICAgICAgICBpbS5kYXRhW28gKyAxXSA9IDA7XG4gICAgICAgIGltLmRhdGFbbyArIDJdID0gMDtcbiAgICAgICAgaW0uZGF0YVtvICsgM10gPSAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW0uZGF0YVtvICsgMF0gPSBjID4+IDE2ICYgMHhmZjtcbiAgICAgICAgaW0uZGF0YVtvICsgMV0gPSBjID4+ICA4ICYgMHhmZjtcbiAgICAgICAgaW0uZGF0YVtvICsgMl0gPSBjID4+ICAwICYgMFhmZjtcbiAgICAgICAgaW0uZGF0YVtvICsgM10gPSAweGZmO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gaW1cbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZHVtcF9pbWFnZVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfZHVtcF9pbWFnZShpbSl7XG4gIHZhciBkYXRhID0gWzBdXG4gIGZvcih2YXIgaT0wOyBpPGltLmhlaWdodDtpKyspe1xuICAgIGRhdGFbaSsxXSA9IFswXVxuICAgIGZvcih2YXIgaj0wOyBqPGltLndpZHRoO2orKyl7XG4gICAgICB2YXIgbyA9IGkqKGltLndpZHRoKjQpICsgKGogKiA0KSxcbiAgICAgICAgICByID0gaW0uZGF0YVtvKzBdLFxuICAgICAgICAgIGcgPSBpbS5kYXRhW28rMV0sXG4gICAgICAgICAgYiA9IGltLmRhdGFbbysyXTtcbiAgICAgIGRhdGFbaSsxXVtqKzFdID0gKHIgPDwgMTYpICsgKGcgPDwgOCkgKyBiXG4gICAgfVxuICB9XG4gIHJldHVybiBkYXRhXG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2RyYXdfaW1hZ2Vcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2RyYXdfaW1hZ2UoaW0seCx5KXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBpZighaW0uaW1hZ2UpIHtcbiAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtcbiAgICBjYW52YXMud2lkdGggPSBzLndpZHRoO1xuICAgIGNhbnZhcy5oZWlnaHQgPSBzLmhlaWdodDtcbiAgICBjYW52YXMuZ2V0Q29udGV4dChcIjJkXCIpLnB1dEltYWdlRGF0YShpbSwwLDApO1xuICAgIHZhciBpbWFnZSA9IG5ldyBnbG9iYWxUaGlzLkltYWdlKCk7XG4gICAgaW1hZ2Uub25sb2FkID0gZnVuY3Rpb24gKCkge1xuICAgICAgcy5jb250ZXh0LmRyYXdJbWFnZShpbWFnZSx4LHMuaGVpZ2h0IC0gaW0uaGVpZ2h0IC0geSk7XG4gICAgICBpbS5pbWFnZSA9IGltYWdlO1xuICAgIH1cbiAgICBpbWFnZS5zcmMgPSBjYW52YXMudG9EYXRhVVJMKFwiaW1hZ2UvcG5nXCIpO1xuICB9IGVsc2Uge1xuICAgIHMuY29udGV4dC5kcmF3SW1hZ2UoaW0uaW1hZ2UseCxzLmhlaWdodCAtIGltLmhlaWdodCAtIHkpO1xuICB9XG4gIHJldHVybiAwO1xufVxuLy9Qcm92aWRlczogY2FtbF9ncl9jcmVhdGVfaW1hZ2Vcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2NyZWF0ZV9pbWFnZSh4LHkpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHJldHVybiBzLmNvbnRleHQuY3JlYXRlSW1hZ2VEYXRhKHgseSk7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2JsaXRfaW1hZ2Vcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2JsaXRfaW1hZ2UoaW0seCx5KXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICB2YXIgaW0yID0gcy5jb250ZXh0LmdldEltYWdlRGF0YSh4LHMuaGVpZ2h0IC0gaW0uaGVpZ2h0IC0geSxpbS53aWR0aCxpbS5oZWlnaHQpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGltMi5kYXRhLmxlbmd0aDsgaSs9NCl7XG4gICAgaW0uZGF0YVtpXSA9IGltMi5kYXRhW2ldO1xuICAgIGltLmRhdGFbaSsxXSA9IGltMi5kYXRhW2krMV07XG4gICAgaW0uZGF0YVtpKzJdID0gaW0yLmRhdGFbaSsyXTtcbiAgICBpbS5kYXRhW2krM10gPSBpbTIuZGF0YVtpKzNdO1xuICB9XG4gIHJldHVybiAwO1xufVxuLy9Qcm92aWRlczogY2FtbF9ncl9zaWdpb19oYW5kbGVyXG5mdW5jdGlvbiBjYW1sX2dyX3NpZ2lvX2hhbmRsZXIoKXtyZXR1cm4gMH1cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc2lnaW9fc2lnbmFsXG5mdW5jdGlvbiBjYW1sX2dyX3NpZ2lvX3NpZ25hbCgpe3JldHVybiAwfVxuLy9Qcm92aWRlczogY2FtbF9ncl93YWl0X2V2ZW50XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX2dyX3dhaXRfZXZlbnQoX2V2bCl7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX2dyX3dhaXRfZXZlbnQgbm90IEltcGxlbWVudGVkOiB1c2UgR3JhcGhpY3NfanMgaW5zdGVhZFwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9zeW5jaHJvbml6ZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9ncl9zeW5jaHJvbml6ZSAoKSB7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX2dyX3N5bmNocm9uaXplIG5vdCBJbXBsZW1lbnRlZFwiKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfcmVtZW1iZXJfbW9kZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9ncl9yZW1lbWJlcl9tb2RlICgpIHtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfZ3JfcmVtZW1iZXJfbW9kZSBub3QgSW1wbGVtZW50ZWRcIik7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2Rpc3BsYXlfbW9kZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9ncl9kaXNwbGF5X21vZGUoKSB7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX2dyX2Rpc3BsYXlfbW9kZSBub3QgSW1wbGVtZW50ZWRcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfd2luZG93X2lkXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX2dyX3dpbmRvd19pZChhKSB7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX2dyX3dpbmRvd19pZCBub3QgSW1wbGVtZW50ZWRcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfb3Blbl9zdWJ3aW5kb3dcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfZ3Jfb3Blbl9zdWJ3aW5kb3coYSxiLGMsZCkge1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9ncl9vcGVuX3N1YndpbmRvdyBub3QgSW1wbGVtZW50ZWRcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfY2xvc2Vfc3Vid2luZG93XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX2dyX2Nsb3NlX3N1YndpbmRvdyhhKSB7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX2dyX2Nsb3NlX3N1YndpbmRvdyBub3QgSW1wbGVtZW50ZWRcIik7XG59XG4iLCJcbi8vUHJvdmlkZXM6IGNhbWxfY3VzdG9tX2V2ZW50X2luZGV4XG52YXIgY2FtbF9jdXN0b21fZXZlbnRfaW5kZXggPSAwO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX3J1bnRpbWVfZXZlbnRzX3VzZXJfcmVnaXN0ZXJcbi8vUmVxdWlyZXM6IGNhbWxfY3VzdG9tX2V2ZW50X2luZGV4XG5mdW5jdGlvbiBjYW1sX3J1bnRpbWVfZXZlbnRzX3VzZXJfcmVnaXN0ZXIoZXZlbnRfbmFtZSwgZXZlbnRfdGFnLCBldmVudF90eXBlKSB7XG4gIGNhbWxfY3VzdG9tX2V2ZW50X2luZGV4ICs9IDE7XG4gIHJldHVybiBbMCwgY2FtbF9jdXN0b21fZXZlbnRfaW5kZXgsIGV2ZW50X25hbWUsIGV2ZW50X3R5cGUsIGV2ZW50X3RhZ107XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcnVudGltZV9ldmVudHNfdXNlcl93cml0ZVxuZnVuY3Rpb24gY2FtbF9ydW50aW1lX2V2ZW50c191c2VyX3dyaXRlKGV2ZW50LCBldmVudF9jb250ZW50KSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3J1bnRpbWVfZXZlbnRzX3VzZXJfcmVzb2x2ZVxuZnVuY3Rpb24gY2FtbF9ydW50aW1lX2V2ZW50c191c2VyX3Jlc29sdmUoKSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3J1bnRpbWVfZXZlbnRzX3N0YXJ0XG5mdW5jdGlvbiBjYW1sX3J1bnRpbWVfZXZlbnRzX3N0YXJ0KCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ydW50aW1lX2V2ZW50c19wYXVzZVxuZnVuY3Rpb24gY2FtbF9ydW50aW1lX2V2ZW50c19wYXVzZSgpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcnVudGltZV9ldmVudHNfcmVzdW1lXG5mdW5jdGlvbiBjYW1sX3J1bnRpbWVfZXZlbnRzX3Jlc3VtZSgpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcnVudGltZV9ldmVudHNfY3JlYXRlX2N1cnNvclxuZnVuY3Rpb24gY2FtbF9ydW50aW1lX2V2ZW50c19jcmVhdGVfY3Vyc29yKHRhcmdldCkge1xuICByZXR1cm4ge307XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcnVudGltZV9ldmVudHNfZnJlZV9jdXJzb3JcbmZ1bmN0aW9uIGNhbWxfcnVudGltZV9ldmVudHNfZnJlZV9jdXJzb3IoY3Vyc29yKSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3J1bnRpbWVfZXZlbnRzX3JlYWRfcG9sbFxuZnVuY3Rpb24gY2FtbF9ydW50aW1lX2V2ZW50c19yZWFkX3BvbGwoY3Vyc29yLCBjYWxsYmFja3MsIG51bSkge1xuICByZXR1cm4gMDtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBjYW1sX21hcnNoYWxfY29uc3RhbnRzXG52YXIgY2FtbF9tYXJzaGFsX2NvbnN0YW50cyA9IHtcbiAgUFJFRklYX1NNQUxMX0JMT0NLOiAgICAgICAgIDB4ODAsXG4gIFBSRUZJWF9TTUFMTF9JTlQ6ICAgICAgICAgICAweDQwLFxuICBQUkVGSVhfU01BTExfU1RSSU5HOiAgICAgICAgMHgyMCxcbiAgQ09ERV9JTlQ4OiAgICAgICAgICAgICAgICAgIDB4MDAsXG4gIENPREVfSU5UMTY6ICAgICAgICAgICAgICAgICAweDAxLFxuICBDT0RFX0lOVDMyOiAgICAgICAgICAgICAgICAgMHgwMixcbiAgQ09ERV9JTlQ2NDogICAgICAgICAgICAgICAgIDB4MDMsXG4gIENPREVfU0hBUkVEODogICAgICAgICAgICAgICAweDA0LFxuICBDT0RFX1NIQVJFRDE2OiAgICAgICAgICAgICAgMHgwNSxcbiAgQ09ERV9TSEFSRUQzMjogICAgICAgICAgICAgIDB4MDYsXG4gIENPREVfQkxPQ0szMjogICAgICAgICAgICAgICAweDA4LFxuICBDT0RFX0JMT0NLNjQ6ICAgICAgICAgICAgICAgMHgxMyxcbiAgQ09ERV9TVFJJTkc4OiAgICAgICAgICAgICAgIDB4MDksXG4gIENPREVfU1RSSU5HMzI6ICAgICAgICAgICAgICAweDBBLFxuICBDT0RFX0RPVUJMRV9CSUc6ICAgICAgICAgICAgMHgwQixcbiAgQ09ERV9ET1VCTEVfTElUVExFOiAgICAgICAgIDB4MEMsXG4gIENPREVfRE9VQkxFX0FSUkFZOF9CSUc6ICAgICAweDBELFxuICBDT0RFX0RPVUJMRV9BUlJBWThfTElUVExFOiAgMHgwRSxcbiAgQ09ERV9ET1VCTEVfQVJSQVkzMl9CSUc6ICAgIDB4MEYsXG4gIENPREVfRE9VQkxFX0FSUkFZMzJfTElUVExFOiAweDA3LFxuICBDT0RFX0NPREVQT0lOVEVSOiAgICAgICAgICAgMHgxMCxcbiAgQ09ERV9JTkZJWFBPSU5URVI6ICAgICAgICAgIDB4MTEsXG4gIENPREVfQ1VTVE9NOiAgICAgICAgICAgICAgICAweDEyLFxuICBDT0RFX0NVU1RPTV9MRU46ICAgICAgICAgICAgMHgxOCxcbiAgQ09ERV9DVVNUT01fRklYRUQ6ICAgICAgICAgIDB4MTlcbn1cblxuXG4vL1Byb3ZpZGVzOiBVSW50OEFycmF5UmVhZGVyXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9hcnJheSwgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gVUludDhBcnJheVJlYWRlciAocywgaSkgeyB0aGlzLnMgPSBzOyB0aGlzLmkgPSBpOyB9XG5VSW50OEFycmF5UmVhZGVyLnByb3RvdHlwZSA9IHtcbiAgcmVhZDh1OmZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuc1t0aGlzLmkrK107IH0sXG4gIHJlYWQ4czpmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLnNbdGhpcy5pKytdIDw8IDI0ID4+IDI0OyB9LFxuICByZWFkMTZ1OmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgMjtcbiAgICByZXR1cm4gKHNbaV0gPDwgOCkgfCBzW2kgKyAxXVxuICB9LFxuICByZWFkMTZzOmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgMjtcbiAgICByZXR1cm4gKHNbaV0gPDwgMjQgPj4gMTYpIHwgc1tpICsgMV07XG4gIH0sXG4gIHJlYWQzMnU6ZnVuY3Rpb24gKCkge1xuICAgIHZhciBzID0gdGhpcy5zLCBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyA0O1xuICAgIHJldHVybiAoKHNbaV0gPDwgMjQpIHwgKHNbaSsxXSA8PCAxNikgfFxuICAgICAgICAgICAgKHNbaSsyXSA8PCA4KSB8IHNbaSszXSkgPj4+IDA7XG4gIH0sXG4gIHJlYWQzMnM6ZnVuY3Rpb24gKCkge1xuICAgIHZhciBzID0gdGhpcy5zLCBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyA0O1xuICAgIHJldHVybiAoc1tpXSA8PCAyNCkgfCAoc1tpKzFdIDw8IDE2KSB8XG4gICAgICAoc1tpKzJdIDw8IDgpIHwgc1tpKzNdO1xuICB9LFxuICByZWFkc3RyOmZ1bmN0aW9uIChsZW4pIHtcbiAgICB2YXIgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgbGVuO1xuICAgIHJldHVybiBjYW1sX3N0cmluZ19vZl9hcnJheSh0aGlzLnMuc3ViYXJyYXkoaSwgaSArIGxlbikpO1xuICB9LFxuICByZWFkdWludDhhcnJheTpmdW5jdGlvbiAobGVuKSB7XG4gICAgdmFyIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIGxlbjtcbiAgICByZXR1cm4gdGhpcy5zLnN1YmFycmF5KGksIGkgKyBsZW4pO1xuICB9XG59XG5cblxuLy9Qcm92aWRlczogTWxTdHJpbmdSZWFkZXJcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMsIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIE1sU3RyaW5nUmVhZGVyIChzLCBpKSB7IHRoaXMucyA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcocyk7IHRoaXMuaSA9IGk7IH1cbk1sU3RyaW5nUmVhZGVyLnByb3RvdHlwZSA9IHtcbiAgcmVhZDh1OmZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMucy5jaGFyQ29kZUF0KHRoaXMuaSsrKTsgfSxcbiAgcmVhZDhzOmZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMucy5jaGFyQ29kZUF0KHRoaXMuaSsrKSA8PCAyNCA+PiAyNDsgfSxcbiAgcmVhZDE2dTpmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHMgPSB0aGlzLnMsIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIDI7XG4gICAgcmV0dXJuIChzLmNoYXJDb2RlQXQoaSkgPDwgOCkgfCBzLmNoYXJDb2RlQXQoaSArIDEpXG4gIH0sXG4gIHJlYWQxNnM6ZnVuY3Rpb24gKCkge1xuICAgIHZhciBzID0gdGhpcy5zLCBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyAyO1xuICAgIHJldHVybiAocy5jaGFyQ29kZUF0KGkpIDw8IDI0ID4+IDE2KSB8IHMuY2hhckNvZGVBdChpICsgMSk7XG4gIH0sXG4gIHJlYWQzMnU6ZnVuY3Rpb24gKCkge1xuICAgIHZhciBzID0gdGhpcy5zLCBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyA0O1xuICAgIHJldHVybiAoKHMuY2hhckNvZGVBdChpKSA8PCAyNCkgfCAocy5jaGFyQ29kZUF0KGkrMSkgPDwgMTYpIHxcbiAgICAgICAgICAgIChzLmNoYXJDb2RlQXQoaSsyKSA8PCA4KSB8IHMuY2hhckNvZGVBdChpKzMpKSA+Pj4gMDtcbiAgfSxcbiAgcmVhZDMyczpmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHMgPSB0aGlzLnMsIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIDQ7XG4gICAgcmV0dXJuIChzLmNoYXJDb2RlQXQoaSkgPDwgMjQpIHwgKHMuY2hhckNvZGVBdChpKzEpIDw8IDE2KSB8XG4gICAgICAocy5jaGFyQ29kZUF0KGkrMikgPDwgOCkgfCBzLmNoYXJDb2RlQXQoaSszKTtcbiAgfSxcbiAgcmVhZHN0cjpmdW5jdGlvbiAobGVuKSB7XG4gICAgdmFyIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIGxlbjtcbiAgICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyh0aGlzLnMuc3Vic3RyaW5nKGksIGkgKyBsZW4pKTtcbiAgfSxcbiAgcmVhZHVpbnQ4YXJyYXk6ZnVuY3Rpb24gKGxlbikge1xuICAgIHZhciBiID0gbmV3IFVpbnQ4QXJyYXkobGVuKTtcbiAgICB2YXIgcyA9IHRoaXMucztcbiAgICB2YXIgaSA9IHRoaXMuaTtcbiAgICBmb3IodmFyIGogPSAwOyBqIDwgbGVuOyBqKyspIHtcbiAgICAgIGJbal0gPSBzLmNoYXJDb2RlQXQoaSArIGopO1xuICAgIH1cbiAgICB0aGlzLmkgPSBpICsgbGVuO1xuICAgIHJldHVybiBiO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IEJpZ1N0cmluZ1JlYWRlclxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfYXJyYXksIGNhbWxfYmFfZ2V0XzFcbmZ1bmN0aW9uIEJpZ1N0cmluZ1JlYWRlciAoYnMsIGkpIHsgdGhpcy5zID0gYnM7IHRoaXMuaSA9IGk7IH1cbkJpZ1N0cmluZ1JlYWRlci5wcm90b3R5cGUgPSB7XG4gIHJlYWQ4dTpmdW5jdGlvbiAoKSB7IHJldHVybiBjYW1sX2JhX2dldF8xKHRoaXMucyx0aGlzLmkrKyk7IH0sXG4gIHJlYWQ4czpmdW5jdGlvbiAoKSB7IHJldHVybiBjYW1sX2JhX2dldF8xKHRoaXMucyx0aGlzLmkrKykgPDwgMjQgPj4gMjQ7IH0sXG4gIHJlYWQxNnU6ZnVuY3Rpb24gKCkge1xuICAgIHZhciBzID0gdGhpcy5zLCBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyAyO1xuICAgIHJldHVybiAoY2FtbF9iYV9nZXRfMShzLGkpIDw8IDgpIHwgY2FtbF9iYV9nZXRfMShzLGkgKyAxKVxuICB9LFxuICByZWFkMTZzOmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgMjtcbiAgICByZXR1cm4gKGNhbWxfYmFfZ2V0XzEocyxpKSA8PCAyNCA+PiAxNikgfCBjYW1sX2JhX2dldF8xKHMsaSArIDEpO1xuICB9LFxuICByZWFkMzJ1OmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgNDtcbiAgICByZXR1cm4gKChjYW1sX2JhX2dldF8xKHMsaSkgICA8PCAyNCkgfCAoY2FtbF9iYV9nZXRfMShzLGkrMSkgPDwgMTYpIHxcbiAgICAgICAgICAgIChjYW1sX2JhX2dldF8xKHMsaSsyKSA8PCA4KSAgfCBjYW1sX2JhX2dldF8xKHMsaSszKSAgICAgICAgICkgPj4+IDA7XG4gIH0sXG4gIHJlYWQzMnM6ZnVuY3Rpb24gKCkge1xuICAgIHZhciBzID0gdGhpcy5zLCBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyA0O1xuICAgIHJldHVybiAoY2FtbF9iYV9nZXRfMShzLGkpICAgPDwgMjQpIHwgKGNhbWxfYmFfZ2V0XzEocyxpKzEpIDw8IDE2KSB8XG4gICAgICAoY2FtbF9iYV9nZXRfMShzLGkrMikgPDwgOCkgIHwgY2FtbF9iYV9nZXRfMShzLGkrMyk7XG4gIH0sXG4gIHJlYWRzdHI6ZnVuY3Rpb24gKGxlbikge1xuICAgIHZhciBpID0gdGhpcy5pO1xuICAgIHZhciBhcnIgPSBuZXcgQXJyYXkobGVuKVxuICAgIGZvcih2YXIgaiA9IDA7IGogPCBsZW47IGorKyl7XG4gICAgICBhcnJbal0gPSBjYW1sX2JhX2dldF8xKHRoaXMucywgaStqKTtcbiAgICB9XG4gICAgdGhpcy5pID0gaSArIGxlbjtcbiAgICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfYXJyYXkoYXJyKTtcbiAgfSxcbiAgcmVhZHVpbnQ4YXJyYXk6ZnVuY3Rpb24gKGxlbikge1xuICAgIHZhciBpID0gdGhpcy5pO1xuICAgIHZhciBvZmZzZXQgPSB0aGlzLm9mZnNldChpKTtcbiAgICB0aGlzLmkgPSBpICsgbGVuO1xuICAgIHJldHVybiB0aGlzLnMuZGF0YS5zdWJhcnJheShvZmZzZXQsIG9mZnNldCArIGxlbik7XG4gIH1cbn1cblxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfZmxvYXRfb2ZfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfZmxvYXRfb2ZfYml0cywgY2FtbF9pbnQ2NF9vZl9ieXRlc1xuZnVuY3Rpb24gY2FtbF9mbG9hdF9vZl9ieXRlcyAoYSkge1xuICByZXR1cm4gY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzIChjYW1sX2ludDY0X29mX2J5dGVzIChhKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9zdHJpbmcgbXV0YWJsZVxuLy9SZXF1aXJlczogTWxTdHJpbmdSZWFkZXIsIGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9yZWFkZXJcbmZ1bmN0aW9uIGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9zdHJpbmcocyxvZnMpIHtcbiAgdmFyIHJlYWRlciA9IG5ldyBNbFN0cmluZ1JlYWRlciAocywgdHlwZW9mIG9mcz09XCJudW1iZXJcIj9vZnM6b2ZzWzBdKTtcbiAgcmV0dXJuIGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9yZWFkZXIocmVhZGVyLCBvZnMpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9ieXRlcyBtdXRhYmxlXG4vL1JlcXVpcmVzOiBNbFN0cmluZ1JlYWRlciwgY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3JlYWRlciwgY2FtbF9zdHJpbmdfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9ieXRlcyhzLG9mcykge1xuICB2YXIgcmVhZGVyID0gbmV3IE1sU3RyaW5nUmVhZGVyIChjYW1sX3N0cmluZ19vZl9ieXRlcyhzKSwgdHlwZW9mIG9mcz09XCJudW1iZXJcIj9vZnM6b2ZzWzBdKTtcbiAgcmV0dXJuIGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9yZWFkZXIocmVhZGVyLCBvZnMpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfdW5tYXJzaGFsXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2ludDY0X3VubWFyc2hhbChyZWFkZXIsIHNpemUpe1xuICB2YXIgdCA9IG5ldyBBcnJheSg4KTs7XG4gIGZvciAodmFyIGogPSAwO2ogPCA4O2orKykgdFtqXSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgc2l6ZVswXSA9IDg7XG4gIHJldHVybiBjYW1sX2ludDY0X29mX2J5dGVzICh0KTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9tYXJzaGFsXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X3RvX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2ludDY0X21hcnNoYWwod3JpdGVyLCB2LCBzaXplcykge1xuICB2YXIgYiA9IGNhbWxfaW50NjRfdG9fYnl0ZXMgKHYpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IDg7IGkrKykgd3JpdGVyLndyaXRlICg4LCBiW2ldKTtcbiAgc2l6ZXNbMF0gPSA4OyBzaXplc1sxXSA9IDg7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50MzJfdW5tYXJzaGFsXG5mdW5jdGlvbiBjYW1sX2ludDMyX3VubWFyc2hhbChyZWFkZXIsIHNpemUpe1xuICBzaXplWzBdID0gNDtcbiAgcmV0dXJuIHJlYWRlci5yZWFkMzJzICgpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX25hdGl2ZWludF91bm1hcnNoYWxcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfbmF0aXZlaW50X3VubWFyc2hhbChyZWFkZXIsIHNpemUpe1xuICBzd2l0Y2ggKHJlYWRlci5yZWFkOHUgKCkpIHtcbiAgY2FzZSAxOlxuICAgIHNpemVbMF0gPSA0O1xuICAgIHJldHVybiByZWFkZXIucmVhZDMycyAoKTtcbiAgY2FzZSAyOlxuICAgIGNhbWxfZmFpbHdpdGgoXCJpbnB1dF92YWx1ZTogbmF0aXZlIGludGVnZXIgdmFsdWUgdG9vIGxhcmdlXCIpO1xuICBkZWZhdWx0OiBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IGlsbC1mb3JtZWQgbmF0aXZlIGludGVnZXJcIik7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9jdXN0b21fb3BzXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X3VubWFyc2hhbCwgY2FtbF9pbnQ2NF9tYXJzaGFsLCBjYW1sX2ludDY0X2NvbXBhcmUsIGNhbWxfaW50NjRfaGFzaFxuLy9SZXF1aXJlczogY2FtbF9pbnQzMl91bm1hcnNoYWwsIGNhbWxfbmF0aXZlaW50X3VubWFyc2hhbFxuLy9SZXF1aXJlczogY2FtbF9iYV9zZXJpYWxpemUsIGNhbWxfYmFfZGVzZXJpYWxpemUsIGNhbWxfYmFfY29tcGFyZSwgY2FtbF9iYV9oYXNoXG52YXIgY2FtbF9jdXN0b21fb3BzID1cbiAgICB7XCJfalwiOiB7XG4gICAgICBkZXNlcmlhbGl6ZSA6IGNhbWxfaW50NjRfdW5tYXJzaGFsLFxuICAgICAgc2VyaWFsaXplICA6IGNhbWxfaW50NjRfbWFyc2hhbCxcbiAgICAgIGZpeGVkX2xlbmd0aCA6IDgsXG4gICAgICBjb21wYXJlIDogY2FtbF9pbnQ2NF9jb21wYXJlLFxuICAgICAgaGFzaCA6IGNhbWxfaW50NjRfaGFzaFxuICAgIH0sXG4gICAgIFwiX2lcIjoge1xuICAgICAgIGRlc2VyaWFsaXplIDogY2FtbF9pbnQzMl91bm1hcnNoYWwsXG4gICAgICAgZml4ZWRfbGVuZ3RoIDogNCxcbiAgICAgfSxcbiAgICAgXCJfblwiOiB7XG4gICAgICAgZGVzZXJpYWxpemUgOiBjYW1sX25hdGl2ZWludF91bm1hcnNoYWwsXG4gICAgICAgZml4ZWRfbGVuZ3RoIDogNCxcbiAgICAgfSxcbiAgICAgXCJfYmlnYXJyYXlcIjp7XG4gICAgICAgZGVzZXJpYWxpemUgOiAoZnVuY3Rpb24gKHJlYWRlciwgc3opIHtyZXR1cm4gY2FtbF9iYV9kZXNlcmlhbGl6ZSAocmVhZGVyLHN6LFwiX2JpZ2FycmF5XCIpfSksXG4gICAgICAgc2VyaWFsaXplIDogY2FtbF9iYV9zZXJpYWxpemUsXG4gICAgICAgY29tcGFyZSA6IGNhbWxfYmFfY29tcGFyZSxcbiAgICAgICBoYXNoOiBjYW1sX2JhX2hhc2gsXG4gICAgIH0sXG4gICAgIFwiX2JpZ2FycjAyXCI6e1xuICAgICAgIGRlc2VyaWFsaXplIDogKGZ1bmN0aW9uIChyZWFkZXIsIHN6KSB7cmV0dXJuIGNhbWxfYmFfZGVzZXJpYWxpemUgKHJlYWRlcixzeixcIl9iaWdhcnIwMlwiKX0pLFxuICAgICAgIHNlcmlhbGl6ZSA6IGNhbWxfYmFfc2VyaWFsaXplLFxuICAgICAgIGNvbXBhcmUgOiBjYW1sX2JhX2NvbXBhcmUsXG4gICAgICAgaGFzaDogY2FtbF9iYV9oYXNoLFxuICAgICB9XG4gICAgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fcmVhZGVyIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbi8vUmVxdWlyZXM6IGNhbWxfZmxvYXRfb2ZfYnl0ZXMsIGNhbWxfY3VzdG9tX29wc1xuLy9SZXF1aXJlczogenN0ZF9kZWNvbXByZXNzXG4vL1JlcXVpcmVzOiBVSW50OEFycmF5UmVhZGVyXG5mdW5jdGlvbiBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fcmVhZGVyKHJlYWRlciwgb2ZzKSB7XG4gIGZ1bmN0aW9uIHJlYWR2bHEob3ZlcmZsb3cpIHtcbiAgICB2YXIgYyA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICB2YXIgbiA9IGMgJiAweDdGO1xuICAgIHdoaWxlICgoYyAmIDB4ODApICE9IDApIHtcbiAgICAgIGMgPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICB2YXIgbjcgPSBuIDw8IDc7XG4gICAgICBpZiAobiAhPSBuNyA+PiA3KSBvdmVyZmxvd1swXSA9IHRydWU7XG4gICAgICBuID0gbjcgfCAoYyAmIDB4N0YpO1xuICAgIH1cbiAgICByZXR1cm4gbjtcbiAgfVxuICB2YXIgbWFnaWMgPSByZWFkZXIucmVhZDMydSAoKVxuICBzd2l0Y2gobWFnaWMpe1xuICBjYXNlIDB4ODQ5NUE2QkU6IC8qIEludGV4dF9tYWdpY19udW1iZXJfc21hbGwgKi9cbiAgICB2YXIgaGVhZGVyX2xlbiA9IDIwO1xuICAgIHZhciBjb21wcmVzc2VkID0gMDtcbiAgICB2YXIgZGF0YV9sZW4gPSByZWFkZXIucmVhZDMydSAoKTtcbiAgICB2YXIgdW5jb21wcmVzc2VkX2RhdGFfbGVuID0gZGF0YV9sZW47XG4gICAgdmFyIG51bV9vYmplY3RzID0gcmVhZGVyLnJlYWQzMnUgKCk7XG4gICAgdmFyIF9zaXplXzMyID0gcmVhZGVyLnJlYWQzMnUgKCk7XG4gICAgdmFyIF9zaXplXzY0ID0gcmVhZGVyLnJlYWQzMnUgKCk7XG4gICAgYnJlYWtcbiAgY2FzZSAweDg0OTVBNkJEOiAvKiBJbnRleHRfbWFnaWNfbnVtYmVyX2NvbXByZXNzZWQgKi9cbiAgICB2YXIgaGVhZGVyX2xlbiA9IHJlYWRlci5yZWFkOHUoKSAmIDB4M0Y7XG4gICAgdmFyIGNvbXByZXNzZWQgPSAxO1xuICAgIHZhciBvdmVyZmxvdyA9IFtmYWxzZV07XG4gICAgdmFyIGRhdGFfbGVuID0gcmVhZHZscShvdmVyZmxvdyk7XG4gICAgdmFyIHVuY29tcHJlc3NlZF9kYXRhX2xlbiA9IHJlYWR2bHEob3ZlcmZsb3cpO1xuICAgIHZhciBudW1fb2JqZWN0cyA9IHJlYWR2bHEob3ZlcmZsb3cpO1xuICAgIHZhciBfc2l6ZV8zMiA9IHJlYWR2bHEgKG92ZXJmbG93KTtcbiAgICB2YXIgX3NpemVfNjQgPSByZWFkdmxxIChvdmVyZmxvdyk7XG4gICAgaWYob3ZlcmZsb3dbMF0pe1xuICAgICAgICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3JlYWRlcjogb2JqZWN0IHRvbyBsYXJnZSB0byBiZSByZWFkIGJhY2sgb24gdGhpcyBwbGF0Zm9ybVwiKTtcbiAgICB9XG4gICAgYnJlYWtcbiAgY2FzZSAweDg0OTVBNkJGOiAvKiBJbnRleHRfbWFnaWNfbnVtYmVyX2JpZyAqL1xuICAgIGNhbWxfZmFpbHdpdGgoXCJjYW1sX2lucHV0X3ZhbHVlX2Zyb21fcmVhZGVyOiBvYmplY3QgdG9vIGxhcmdlIHRvIGJlIHJlYWQgYmFjayBvbiBhIDMyLWJpdCBwbGF0Zm9ybVwiKTtcbiAgICBicmVha1xuICBkZWZhdWx0OlxuICAgIGNhbWxfZmFpbHdpdGgoXCJjYW1sX2lucHV0X3ZhbHVlX2Zyb21fcmVhZGVyOiBiYWQgb2JqZWN0XCIpO1xuICAgIGJyZWFrO1xuICB9XG4gIHZhciBzdGFjayA9IFtdO1xuICB2YXIgaW50ZXJuX29ial90YWJsZSA9IChudW1fb2JqZWN0cyA+IDApP1tdOm51bGw7XG4gIHZhciBvYmpfY291bnRlciA9IDA7XG4gIGZ1bmN0aW9uIGludGVybl9yZWMgKHJlYWRlcikge1xuICAgIHZhciBjb2RlID0gcmVhZGVyLnJlYWQ4dSAoKTtcbiAgICBpZiAoY29kZSA+PSAweDQwIC8qY3N0LlBSRUZJWF9TTUFMTF9JTlQqLykge1xuICAgICAgaWYgKGNvZGUgPj0gMHg4MCAvKmNzdC5QUkVGSVhfU01BTExfQkxPQ0sqLykge1xuICAgICAgICB2YXIgdGFnID0gY29kZSAmIDB4RjtcbiAgICAgICAgdmFyIHNpemUgPSAoY29kZSA+PiA0KSAmIDB4NztcbiAgICAgICAgdmFyIHYgPSBbdGFnXTtcbiAgICAgICAgaWYgKHNpemUgPT0gMCkgcmV0dXJuIHY7XG4gICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgc3RhY2sucHVzaCh2LCBzaXplKTtcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgICB9IGVsc2VcbiAgICAgICAgcmV0dXJuIChjb2RlICYgMHgzRik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChjb2RlID49IDB4MjAvKmNzdC5QUkVGSVhfU01BTExfU1RSSU5HICovKSB7XG4gICAgICAgIHZhciBsZW4gPSBjb2RlICYgMHgxRjtcbiAgICAgICAgdmFyIHYgPSByZWFkZXIucmVhZHN0ciAobGVuKTtcbiAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICByZXR1cm4gdjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaChjb2RlKSB7XG4gICAgICAgIGNhc2UgMHgwMDogLy9jc3QuQ09ERV9JTlQ4OlxuICAgICAgICAgIHJldHVybiByZWFkZXIucmVhZDhzICgpO1xuICAgICAgICBjYXNlIDB4MDE6IC8vY3N0LkNPREVfSU5UMTY6XG4gICAgICAgICAgcmV0dXJuIHJlYWRlci5yZWFkMTZzICgpO1xuICAgICAgICBjYXNlIDB4MDI6IC8vY3N0LkNPREVfSU5UMzI6XG4gICAgICAgICAgcmV0dXJuIHJlYWRlci5yZWFkMzJzICgpO1xuICAgICAgICBjYXNlIDB4MDM6IC8vY3N0LkNPREVfSU5UNjQ6XG4gICAgICAgICAgY2FtbF9mYWlsd2l0aChcImlucHV0X3ZhbHVlOiBpbnRlZ2VyIHRvbyBsYXJnZVwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAweDA0OiAvL2NzdC5DT0RFX1NIQVJFRDg6XG4gICAgICAgICAgdmFyIG9mZnNldCA9IHJlYWRlci5yZWFkOHUgKCk7XG4gICAgICAgICAgaWYoY29tcHJlc3NlZCA9PSAwKSBvZmZzZXQgPSBvYmpfY291bnRlciAtIG9mZnNldDtcbiAgICAgICAgICByZXR1cm4gaW50ZXJuX29ial90YWJsZVtvZmZzZXRdO1xuICAgICAgICBjYXNlIDB4MDU6IC8vY3N0LkNPREVfU0hBUkVEMTY6XG4gICAgICAgICAgdmFyIG9mZnNldCA9IHJlYWRlci5yZWFkMTZ1ICgpO1xuICAgICAgICAgIGlmKGNvbXByZXNzZWQgPT0gMCkgb2Zmc2V0ID0gb2JqX2NvdW50ZXIgLSBvZmZzZXQ7XG4gICAgICAgICAgcmV0dXJuIGludGVybl9vYmpfdGFibGVbb2Zmc2V0XTtcbiAgICAgICAgY2FzZSAweDA2OiAvL2NzdC5DT0RFX1NIQVJFRDMyOlxuICAgICAgICAgIHZhciBvZmZzZXQgPSByZWFkZXIucmVhZDMydSAoKTtcbiAgICAgICAgICBpZihjb21wcmVzc2VkID09IDApIG9mZnNldCA9IG9ial9jb3VudGVyIC0gb2Zmc2V0O1xuICAgICAgICAgIHJldHVybiBpbnRlcm5fb2JqX3RhYmxlW29mZnNldF07XG4gICAgICAgIGNhc2UgMHgwODogLy9jc3QuQ09ERV9CTE9DSzMyOlxuICAgICAgICAgIHZhciBoZWFkZXIgPSByZWFkZXIucmVhZDMydSAoKTtcbiAgICAgICAgICB2YXIgdGFnID0gaGVhZGVyICYgMHhGRjtcbiAgICAgICAgICB2YXIgc2l6ZSA9IGhlYWRlciA+PiAxMDtcbiAgICAgICAgICB2YXIgdiA9IFt0YWddO1xuICAgICAgICAgIGlmIChzaXplID09IDApIHJldHVybiB2O1xuICAgICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgICBzdGFjay5wdXNoKHYsIHNpemUpO1xuICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICBjYXNlIDB4MTM6IC8vY3N0LkNPREVfQkxPQ0s2NDpcbiAgICAgICAgICBjYW1sX2ZhaWx3aXRoIChcImlucHV0X3ZhbHVlOiBkYXRhIGJsb2NrIHRvbyBsYXJnZVwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAweDA5OiAvL2NzdC5DT0RFX1NUUklORzg6XG4gICAgICAgICAgdmFyIGxlbiA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgICAgICB2YXIgdiA9IHJlYWRlci5yZWFkc3RyIChsZW4pO1xuICAgICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgY2FzZSAweDBBOiAvL2NzdC5DT0RFX1NUUklORzMyOlxuICAgICAgICAgIHZhciBsZW4gPSByZWFkZXIucmVhZDMydSgpO1xuICAgICAgICAgIHZhciB2ID0gcmVhZGVyLnJlYWRzdHIgKGxlbik7XG4gICAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICBjYXNlIDB4MEM6IC8vY3N0LkNPREVfRE9VQkxFX0xJVFRMRTpcbiAgICAgICAgICB2YXIgdCA9IG5ldyBBcnJheSg4KTs7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7aSA8IDg7aSsrKSB0WzcgLSBpXSA9IHJlYWRlci5yZWFkOHUgKCk7XG4gICAgICAgICAgdmFyIHYgPSBjYW1sX2Zsb2F0X29mX2J5dGVzICh0KTtcbiAgICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIGNhc2UgMHgwQjogLy9jc3QuQ09ERV9ET1VCTEVfQklHOlxuICAgICAgICAgIHZhciB0ID0gbmV3IEFycmF5KDgpOztcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDtpIDwgODtpKyspIHRbaV0gPSByZWFkZXIucmVhZDh1ICgpO1xuICAgICAgICAgIHZhciB2ID0gY2FtbF9mbG9hdF9vZl9ieXRlcyAodCk7XG4gICAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICBjYXNlIDB4MEU6IC8vY3N0LkNPREVfRE9VQkxFX0FSUkFZOF9MSVRUTEU6XG4gICAgICAgICAgdmFyIGxlbiA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgICAgICB2YXIgdiA9IG5ldyBBcnJheShsZW4rMSk7XG4gICAgICAgICAgdlswXSA9IDI1NDtcbiAgICAgICAgICB2YXIgdCA9IG5ldyBBcnJheSg4KTs7XG4gICAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICAgIGZvciAodmFyIGkgPSAxO2kgPD0gbGVuO2krKykge1xuICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7aiA8IDg7aisrKSB0WzcgLSBqXSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgICAgICAgIHZbaV0gPSBjYW1sX2Zsb2F0X29mX2J5dGVzICh0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIGNhc2UgMHgwRDogLy9jc3QuQ09ERV9ET1VCTEVfQVJSQVk4X0JJRzpcbiAgICAgICAgICB2YXIgbGVuID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgICAgIHZhciB2ID0gbmV3IEFycmF5KGxlbisxKTtcbiAgICAgICAgICB2WzBdID0gMjU0O1xuICAgICAgICAgIHZhciB0ID0gbmV3IEFycmF5KDgpOztcbiAgICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDE7aSA8PSBsZW47aSsrKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBqID0gMDtqIDwgODtqKyspIHRbal0gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICAgICAgICB2IFtpXSA9IGNhbWxfZmxvYXRfb2ZfYnl0ZXMgKHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgY2FzZSAweDA3OiAvL2NzdC5DT0RFX0RPVUJMRV9BUlJBWTMyX0xJVFRMRTpcbiAgICAgICAgICB2YXIgbGVuID0gcmVhZGVyLnJlYWQzMnUoKTtcbiAgICAgICAgICB2YXIgdiA9IG5ldyBBcnJheShsZW4rMSk7XG4gICAgICAgICAgdlswXSA9IDI1NDtcbiAgICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgICAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICAgICAgICAgIGZvciAodmFyIGkgPSAxO2kgPD0gbGVuO2krKykge1xuICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7aiA8IDg7aisrKSB0WzcgLSBqXSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgICAgICAgIHZbaV0gPSBjYW1sX2Zsb2F0X29mX2J5dGVzICh0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIGNhc2UgMHgwRjogLy9jc3QuQ09ERV9ET1VCTEVfQVJSQVkzMl9CSUc6XG4gICAgICAgICAgdmFyIGxlbiA9IHJlYWRlci5yZWFkMzJ1KCk7XG4gICAgICAgICAgdmFyIHYgPSBuZXcgQXJyYXkobGVuKzEpO1xuICAgICAgICAgIHZbMF0gPSAyNTQ7XG4gICAgICAgICAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICAgICAgICAgIGZvciAodmFyIGkgPSAxO2kgPD0gbGVuO2krKykge1xuICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7aiA8IDg7aisrKSB0W2pdID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgICAgICAgdiBbaV0gPSBjYW1sX2Zsb2F0X29mX2J5dGVzICh0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIGNhc2UgMHgxMDogLy9jc3QuQ09ERV9DT0RFUE9JTlRFUjpcbiAgICAgICAgY2FzZSAweDExOiAvL2NzdC5DT0RFX0lORklYUE9JTlRFUjpcbiAgICAgICAgICBjYW1sX2ZhaWx3aXRoIChcImlucHV0X3ZhbHVlOiBjb2RlIHBvaW50ZXJcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMHgxMjogLy9jc3QuQ09ERV9DVVNUT006XG4gICAgICAgIGNhc2UgMHgxODogLy9jc3QuQ09ERV9DVVNUT01fTEVOOlxuICAgICAgICBjYXNlIDB4MTk6IC8vY3N0LkNPREVfQ1VTVE9NX0ZJWEVEOlxuICAgICAgICAgIHZhciBjLCBzID0gXCJcIjtcbiAgICAgICAgICB3aGlsZSAoKGMgPSByZWFkZXIucmVhZDh1ICgpKSAhPSAwKSBzICs9IFN0cmluZy5mcm9tQ2hhckNvZGUgKGMpO1xuICAgICAgICAgIHZhciBvcHMgPSBjYW1sX2N1c3RvbV9vcHNbc107XG4gICAgICAgICAgdmFyIGV4cGVjdGVkX3NpemU7XG4gICAgICAgICAgaWYoIW9wcylcbiAgICAgICAgICAgIGNhbWxfZmFpbHdpdGgoXCJpbnB1dF92YWx1ZTogdW5rbm93biBjdXN0b20gYmxvY2sgaWRlbnRpZmllclwiKTtcbiAgICAgICAgICBzd2l0Y2goY29kZSl7XG4gICAgICAgICAgY2FzZSAweDEyOiAvLyBjc3QuQ09ERV9DVVNUT00gKGRlcHJlY2F0ZWQpXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDB4MTk6IC8vIGNzdC5DT0RFX0NVU1RPTV9GSVhFRFxuICAgICAgICAgICAgaWYoIW9wcy5maXhlZF9sZW5ndGgpXG4gICAgICAgICAgICAgIGNhbWxfZmFpbHdpdGgoXCJpbnB1dF92YWx1ZTogZXhwZWN0ZWQgYSBmaXhlZC1zaXplIGN1c3RvbSBibG9ja1wiKTtcbiAgICAgICAgICAgIGV4cGVjdGVkX3NpemUgPSBvcHMuZml4ZWRfbGVuZ3RoO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAweDE4OiAvLyBjc3QuQ09ERV9DVVNUT01fTEVOXG4gICAgICAgICAgICBleHBlY3RlZF9zaXplID0gcmVhZGVyLnJlYWQzMnUgKCk7XG4gICAgICAgICAgICAvLyBTa2lwIHNpemU2NFxuICAgICAgICAgICAgcmVhZGVyLnJlYWQzMnMoKTsgcmVhZGVyLnJlYWQzMnMoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgb2xkX3BvcyA9IHJlYWRlci5pO1xuICAgICAgICAgIHZhciBzaXplID0gWzBdO1xuICAgICAgICAgIHZhciB2ID0gb3BzLmRlc2VyaWFsaXplKHJlYWRlciwgc2l6ZSk7XG4gICAgICAgICAgaWYoZXhwZWN0ZWRfc2l6ZSAhPSB1bmRlZmluZWQpe1xuICAgICAgICAgICAgaWYoZXhwZWN0ZWRfc2l6ZSAhPSBzaXplWzBdKVxuICAgICAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IGluY29ycmVjdCBsZW5ndGggb2Ygc2VyaWFsaXplZCBjdXN0b20gYmxvY2tcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBjYW1sX2ZhaWx3aXRoIChcImlucHV0X3ZhbHVlOiBpbGwtZm9ybWVkIG1lc3NhZ2VcIik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYoY29tcHJlc3NlZCkge1xuICAgIHZhciBkYXRhID0gcmVhZGVyLnJlYWR1aW50OGFycmF5KGRhdGFfbGVuKTtcbiAgICB2YXIgcmVzID0gbmV3IFVpbnQ4QXJyYXkodW5jb21wcmVzc2VkX2RhdGFfbGVuKTtcbiAgICB2YXIgcmVzID0genN0ZF9kZWNvbXByZXNzKGRhdGEsIHJlcyk7XG4gICAgdmFyIHJlYWRlciA9IG5ldyBVSW50OEFycmF5UmVhZGVyKHJlcywgMCk7XG4gIH1cbiAgdmFyIHJlcyA9IGludGVybl9yZWMgKHJlYWRlcik7XG4gIHdoaWxlIChzdGFjay5sZW5ndGggPiAwKSB7XG4gICAgdmFyIHNpemUgPSBzdGFjay5wb3AoKTtcbiAgICB2YXIgdiA9IHN0YWNrLnBvcCgpO1xuICAgIHZhciBkID0gdi5sZW5ndGg7XG4gICAgaWYgKGQgPCBzaXplKSBzdGFjay5wdXNoKHYsIHNpemUpO1xuICAgIHZbZF0gPSBpbnRlcm5fcmVjIChyZWFkZXIpO1xuICB9XG4gIGlmICh0eXBlb2Ygb2ZzIT1cIm51bWJlclwiKSBvZnNbMF0gPSByZWFkZXIuaTtcbiAgcmV0dXJuIHJlcztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tYXJzaGFsX2hlYWRlcl9zaXplXG4vL1ZlcnNpb246IDwgNS4xLjBcbnZhciBjYW1sX21hcnNoYWxfaGVhZGVyX3NpemUgPSAyMFxuXG4vL1Byb3ZpZGVzOiBjYW1sX21hcnNoYWxfaGVhZGVyX3NpemVcbi8vVmVyc2lvbjogPj0gNS4xLjBcbnZhciBjYW1sX21hcnNoYWxfaGVhZGVyX3NpemUgPSAxNlxuXG5cblxuLy9Qcm92aWRlczogY2FtbF9tYXJzaGFsX2RhdGFfc2l6ZSBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoLCBjYW1sX2J5dGVzX3Vuc2FmZV9nZXRcbi8vUmVxdWlyZXM6IGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXNcbi8vUmVxdWlyZXM6IFVJbnQ4QXJyYXlSZWFkZXJcbi8vUmVxdWlyZXM6IGNhbWxfbWFyc2hhbF9oZWFkZXJfc2l6ZVxuZnVuY3Rpb24gY2FtbF9tYXJzaGFsX2RhdGFfc2l6ZSAocywgb2ZzKSB7XG4gIHZhciByID0gbmV3IFVJbnQ4QXJyYXlSZWFkZXIoY2FtbF91aW50OF9hcnJheV9vZl9ieXRlcyhzKSwgb2ZzKTtcbiAgZnVuY3Rpb24gcmVhZHZscShvdmVyZmxvdykge1xuICAgIHZhciBjID0gci5yZWFkOHUoKTtcbiAgICB2YXIgbiA9IGMgJiAweDdGO1xuICAgIHdoaWxlICgoYyAmIDB4ODApICE9IDApIHtcbiAgICAgIGMgPSByLnJlYWQ4dSgpO1xuICAgICAgdmFyIG43ID0gbiA8PCA3O1xuICAgICAgaWYgKG4gIT0gbjcgPj4gNykgb3ZlcmZsb3dbMF0gPSB0cnVlO1xuICAgICAgbiA9IG43IHwgKGMgJiAweDdGKTtcbiAgICB9XG4gICAgcmV0dXJuIG47XG4gIH1cblxuICBzd2l0Y2goci5yZWFkMzJ1KCkpe1xuICBjYXNlIDB4ODQ5NUE2QkU6IC8qIEludGV4dF9tYWdpY19udW1iZXJfc21hbGwgKi9cbiAgICB2YXIgaGVhZGVyX2xlbiA9IDIwO1xuICAgIHZhciBkYXRhX2xlbiA9IHIucmVhZDMydSgpO1xuICAgIGJyZWFrO1xuICBjYXNlIDB4ODQ5NUE2QkQ6IC8qIEludGV4dF9tYWdpY19udW1iZXJfY29tcHJlc3NlZCAqL1xuICAgIHZhciBoZWFkZXJfbGVuID0gci5yZWFkOHUoKSAmIDB4M0Y7XG4gICAgdmFyIG92ZXJmbG93ID0gW2ZhbHNlXTtcbiAgICB2YXIgZGF0YV9sZW4gPSByZWFkdmxxKG92ZXJmbG93KTtcbiAgICBpZihvdmVyZmxvd1swXSl7XG4gICAgICBjYW1sX2ZhaWx3aXRoKFwiTWFyc2hhbC5kYXRhX3NpemU6IG9iamVjdCB0b28gbGFyZ2UgdG8gYmUgcmVhZCBiYWNrIG9uIHRoaXMgcGxhdGZvcm1cIik7XG4gICAgfVxuICAgIGJyZWFrXG4gIGNhc2UgMHg4NDk1QTZCRjogLyogSW50ZXh0X21hZ2ljX251bWJlcl9iaWcgKi9cbiAgZGVmYXVsdDpcbiAgICBjYW1sX2ZhaWx3aXRoKFwiTWFyc2hhbC5kYXRhX3NpemU6IGJhZCBvYmplY3RcIik7XG4gICAgYnJlYWtcbiAgfVxuICByZXR1cm4gaGVhZGVyX2xlbiAtIGNhbWxfbWFyc2hhbF9oZWFkZXJfc2l6ZSArIGRhdGFfbGVuO1xufVxuXG4vL1Byb3ZpZGVzOiBNbE9iamVjdFRhYmxlXG52YXIgTWxPYmplY3RUYWJsZTtcbmlmICh0eXBlb2YgZ2xvYmFsVGhpcy5XZWFrTWFwID09PSAndW5kZWZpbmVkJykge1xuICBNbE9iamVjdFRhYmxlID0gZnVuY3Rpb24oKSB7XG4gICAgLyogcG9seWZpbGwgKHVzaW5nIGxpbmVhciBzZWFyY2gpICovXG4gICAgZnVuY3Rpb24gTmFpdmVMb29rdXAob2JqcykgeyB0aGlzLm9ianMgPSBvYmpzOyB9XG4gICAgTmFpdmVMb29rdXAucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uKHYpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5vYmpzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICh0aGlzLm9ianNbaV0gPT09IHYpIHJldHVybiBpO1xuICAgICAgfVxuICAgIH07XG4gICAgTmFpdmVMb29rdXAucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uKCkge1xuICAgICAgLy8gRG8gbm90aGluZyBoZXJlLiBbTWxPYmplY3RUYWJsZS5zdG9yZV0gd2lsbCBwdXNoIHRvIFt0aGlzLm9ianNdIGRpcmVjdGx5LlxuICAgIH07XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gTWxPYmplY3RUYWJsZSgpIHtcbiAgICAgIHRoaXMub2JqcyA9IFtdOyB0aGlzLmxvb2t1cCA9IG5ldyBOYWl2ZUxvb2t1cCh0aGlzLm9ianMpO1xuICAgIH07XG4gIH0oKTtcbn1cbmVsc2Uge1xuICBNbE9iamVjdFRhYmxlID0gZnVuY3Rpb24gTWxPYmplY3RUYWJsZSgpIHtcbiAgICB0aGlzLm9ianMgPSBbXTsgdGhpcy5sb29rdXAgPSBuZXcgZ2xvYmFsVGhpcy5XZWFrTWFwKCk7XG4gIH07XG59XG5cbk1sT2JqZWN0VGFibGUucHJvdG90eXBlLnN0b3JlID0gZnVuY3Rpb24odikge1xuICB0aGlzLmxvb2t1cC5zZXQodiwgdGhpcy5vYmpzLmxlbmd0aCk7XG4gIHRoaXMub2Jqcy5wdXNoKHYpO1xufVxuXG5NbE9iamVjdFRhYmxlLnByb3RvdHlwZS5yZWNhbGwgPSBmdW5jdGlvbih2KSB7XG4gIHZhciBpID0gdGhpcy5sb29rdXAuZ2V0KHYpO1xuICByZXR1cm4gKGkgPT09IHVuZGVmaW5lZClcbiAgICA/IHVuZGVmaW5lZCA6IHRoaXMub2Jqcy5sZW5ndGggLSBpOyAgIC8qIGluZGV4IGlzIHJlbGF0aXZlICovXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb3V0cHV0X3ZhbFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF90b19ieXRlcywgY2FtbF9mYWlsd2l0aFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0XG4vL1JlcXVpcmVzOiBjYW1sX2lzX21sX2J5dGVzLCBjYW1sX21sX2J5dGVzX2xlbmd0aCwgY2FtbF9ieXRlc191bnNhZmVfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX2lzX21sX3N0cmluZywgY2FtbF9tbF9zdHJpbmdfbGVuZ3RoLCBjYW1sX3N0cmluZ191bnNhZmVfZ2V0XG4vL1JlcXVpcmVzOiBNbE9iamVjdFRhYmxlLCBjYW1sX2xpc3RfdG9fanNfYXJyYXksIGNhbWxfY3VzdG9tX29wc1xuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50LGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMsIGNhbWxfaXNfY29udGludWF0aW9uX3RhZ1xudmFyIGNhbWxfb3V0cHV0X3ZhbCA9IGZ1bmN0aW9uICgpe1xuICBmdW5jdGlvbiBXcml0ZXIgKCkgeyB0aGlzLmNodW5rID0gW107IH1cbiAgV3JpdGVyLnByb3RvdHlwZSA9IHtcbiAgICBjaHVua19pZHg6MjAsIGJsb2NrX2xlbjowLCBvYmpfY291bnRlcjowLCBzaXplXzMyOjAsIHNpemVfNjQ6MCxcbiAgICB3cml0ZTpmdW5jdGlvbiAoc2l6ZSwgdmFsdWUpIHtcbiAgICAgIGZvciAodmFyIGkgPSBzaXplIC0gODtpID49IDA7aSAtPSA4KVxuICAgICAgICB0aGlzLmNodW5rW3RoaXMuY2h1bmtfaWR4KytdID0gKHZhbHVlID4+IGkpICYgMHhGRjtcbiAgICB9LFxuICAgIHdyaXRlX2F0OmZ1bmN0aW9uIChwb3MsIHNpemUsIHZhbHVlKSB7XG4gICAgICB2YXIgcG9zID0gcG9zO1xuICAgICAgZm9yICh2YXIgaSA9IHNpemUgLSA4O2kgPj0gMDtpIC09IDgpXG4gICAgICAgIHRoaXMuY2h1bmtbcG9zKytdID0gKHZhbHVlID4+IGkpICYgMHhGRjtcbiAgICB9LFxuICAgIHdyaXRlX2NvZGU6ZnVuY3Rpb24gKHNpemUsIGNvZGUsIHZhbHVlKSB7XG4gICAgICB0aGlzLmNodW5rW3RoaXMuY2h1bmtfaWR4KytdID0gY29kZTtcbiAgICAgIGZvciAodmFyIGkgPSBzaXplIC0gODtpID49IDA7aSAtPSA4KVxuICAgICAgICB0aGlzLmNodW5rW3RoaXMuY2h1bmtfaWR4KytdID0gKHZhbHVlID4+IGkpICYgMHhGRjtcbiAgICB9LFxuICAgIHdyaXRlX3NoYXJlZDpmdW5jdGlvbiAob2Zmc2V0KSB7XG4gICAgICBpZiAob2Zmc2V0IDwgKDEgPDwgOCkpIHRoaXMud3JpdGVfY29kZSg4LCAweDA0IC8qY3N0LkNPREVfU0hBUkVEOCovLCBvZmZzZXQpO1xuICAgICAgZWxzZSBpZiAob2Zmc2V0IDwgKDEgPDwgMTYpKSB0aGlzLndyaXRlX2NvZGUoMTYsIDB4MDUgLypjc3QuQ09ERV9TSEFSRUQxNiovLCBvZmZzZXQpO1xuICAgICAgZWxzZSB0aGlzLndyaXRlX2NvZGUoMzIsIDB4MDYgLypjc3QuQ09ERV9TSEFSRUQzMiovLCBvZmZzZXQpO1xuICAgIH0sXG4gICAgcG9zOmZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuY2h1bmtfaWR4IH0sXG4gICAgZmluYWxpemU6ZnVuY3Rpb24gKCkge1xuICAgICAgdGhpcy5ibG9ja19sZW4gPSB0aGlzLmNodW5rX2lkeCAtIDIwO1xuICAgICAgdGhpcy5jaHVua19pZHggPSAwO1xuICAgICAgdGhpcy53cml0ZSAoMzIsIDB4ODQ5NUE2QkUpO1xuICAgICAgdGhpcy53cml0ZSAoMzIsIHRoaXMuYmxvY2tfbGVuKTtcbiAgICAgIHRoaXMud3JpdGUgKDMyLCB0aGlzLm9ial9jb3VudGVyKTtcbiAgICAgIHRoaXMud3JpdGUgKDMyLCB0aGlzLnNpemVfMzIpO1xuICAgICAgdGhpcy53cml0ZSAoMzIsIHRoaXMuc2l6ZV82NCk7XG4gICAgICByZXR1cm4gdGhpcy5jaHVuaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZ1bmN0aW9uICh2LCBmbGFncykge1xuICAgIGZsYWdzID0gY2FtbF9saXN0X3RvX2pzX2FycmF5KGZsYWdzKTtcblxuICAgIHZhciBub19zaGFyaW5nID0gKGZsYWdzLmluZGV4T2YoMCAvKk1hcnNoYWwuTm9fc2hhcmluZyovKSAhPT0gLTEpLFxuICAgICAgICBjbG9zdXJlcyA9ICAoZmxhZ3MuaW5kZXhPZigxIC8qTWFyc2hhbC5DbG9zdXJlcyovKSAhPT0gLTEpO1xuICAgIC8qIE1hcnNoYWwuQ29tcGF0XzMyIGlzIHJlZHVuZGFudCBzaW5jZSBpbnRlZ2VycyBhcmUgMzItYml0IGFueXdheSAqL1xuXG4gICAgaWYgKGNsb3N1cmVzKVxuICAgICAgY29uc29sZS53YXJuKFwiaW4gY2FtbF9vdXRwdXRfdmFsOiBmbGFnIE1hcnNoYWwuQ2xvc3VyZXMgaXMgbm90IHN1cHBvcnRlZC5cIik7XG5cbiAgICB2YXIgd3JpdGVyID0gbmV3IFdyaXRlciAoKTtcbiAgICB2YXIgc3RhY2sgPSBbXTtcbiAgICB2YXIgaW50ZXJuX29ial90YWJsZSA9IG5vX3NoYXJpbmcgPyBudWxsIDogbmV3IE1sT2JqZWN0VGFibGUoKTtcblxuICAgIGZ1bmN0aW9uIG1lbW8odikge1xuICAgICAgaWYgKG5vX3NoYXJpbmcpIHJldHVybiBmYWxzZTtcbiAgICAgIHZhciBleGlzdGluZ19vZmZzZXQgPSBpbnRlcm5fb2JqX3RhYmxlLnJlY2FsbCh2KTtcbiAgICAgIGlmIChleGlzdGluZ19vZmZzZXQpIHsgd3JpdGVyLndyaXRlX3NoYXJlZChleGlzdGluZ19vZmZzZXQpOyByZXR1cm4gdHJ1ZTsgfVxuICAgICAgZWxzZSB7IGludGVybl9vYmpfdGFibGUuc3RvcmUodik7IHJldHVybiBmYWxzZTsgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGV4dGVybl9yZWMgKHYpIHtcbiAgICAgIGlmICh2LmNhbWxfY3VzdG9tKSB7XG4gICAgICAgIGlmIChtZW1vKHYpKSByZXR1cm47XG4gICAgICAgIHZhciBuYW1lID0gdi5jYW1sX2N1c3RvbTtcbiAgICAgICAgdmFyIG9wcyA9IGNhbWxfY3VzdG9tX29wc1tuYW1lXTtcbiAgICAgICAgdmFyIHN6XzMyXzY0ID0gWzAsMF07XG4gICAgICAgIGlmKCFvcHMuc2VyaWFsaXplKVxuICAgICAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIm91dHB1dF92YWx1ZTogYWJzdHJhY3QgdmFsdWUgKEN1c3RvbSlcIik7XG4gICAgICAgIGlmKG9wcy5maXhlZF9sZW5ndGggPT0gdW5kZWZpbmVkKXtcbiAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIDB4MTggLypjc3QuQ09ERV9DVVNUT01fTEVOKi8pO1xuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZS5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgbmFtZS5jaGFyQ29kZUF0KGkpKTtcbiAgICAgICAgICB3cml0ZXIud3JpdGUoOCwgMCk7XG4gICAgICAgICAgdmFyIGhlYWRlcl9wb3MgPSB3cml0ZXIucG9zICgpO1xuICAgICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCAxMjsgaSsrKSB7XG4gICAgICAgICAgICB3cml0ZXIud3JpdGUoOCwgMCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG9wcy5zZXJpYWxpemUod3JpdGVyLCB2LCBzel8zMl82NCk7XG4gICAgICAgICAgd3JpdGVyLndyaXRlX2F0KGhlYWRlcl9wb3MsIDMyLCBzel8zMl82NFswXSk7XG4gICAgICAgICAgd3JpdGVyLndyaXRlX2F0KGhlYWRlcl9wb3MgKyA0LCAzMiwgMCk7IC8vIHplcm9cbiAgICAgICAgICB3cml0ZXIud3JpdGVfYXQoaGVhZGVyX3BvcyArIDgsIDMyLCBzel8zMl82NFsxXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgd3JpdGVyLndyaXRlICg4LCAweDE5IC8qY3N0LkNPREVfQ1VTVE9NX0ZJWEVEKi8pO1xuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZS5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgbmFtZS5jaGFyQ29kZUF0KGkpKTtcbiAgICAgICAgICB3cml0ZXIud3JpdGUoOCwgMCk7XG4gICAgICAgICAgdmFyIG9sZF9wb3MgPSB3cml0ZXIucG9zKCk7XG4gICAgICAgICAgb3BzLnNlcmlhbGl6ZSh3cml0ZXIsIHYsIHN6XzMyXzY0KTtcbiAgICAgICAgICBpZiAob3BzLmZpeGVkX2xlbmd0aCAhPSB3cml0ZXIucG9zKCkgLSBvbGRfcG9zKVxuICAgICAgICAgICAgY2FtbF9mYWlsd2l0aChcIm91dHB1dF92YWx1ZTogaW5jb3JyZWN0IGZpeGVkIHNpemVzIHNwZWNpZmllZCBieSBcIiArIG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHdyaXRlci5zaXplXzMyICs9IDIgKyAoKHN6XzMyXzY0WzBdICsgMykgPj4gMik7XG4gICAgICAgIHdyaXRlci5zaXplXzY0ICs9IDIgKyAoKHN6XzMyXzY0WzFdICsgNykgPj4gMyk7XG4gICAgICB9XG4gICAgICBlbHNlIGlmICh2IGluc3RhbmNlb2YgQXJyYXkgJiYgdlswXSA9PT0gKHZbMF18MCkpIHtcbiAgICAgICAgaWYgKHZbMF0gPT0gMjUxKSB7XG4gICAgICAgICAgY2FtbF9mYWlsd2l0aChcIm91dHB1dF92YWx1ZTogYWJzdHJhY3QgdmFsdWUgKEFic3RyYWN0KVwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2FtbF9pc19jb250aW51YXRpb25fdGFnKHZbMF0pKVxuICAgICAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIm91dHB1dF92YWx1ZTogY29udGludWF0aW9uIHZhbHVlXCIpO1xuICAgICAgICBpZiAodi5sZW5ndGggPiAxICYmIG1lbW8odikpIHJldHVybjtcbiAgICAgICAgaWYgKHZbMF0gPCAxNiAmJiB2Lmxlbmd0aCAtIDEgPCA4KVxuICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgMHg4MCAvKmNzdC5QUkVGSVhfU01BTExfQkxPQ0sqLyArIHZbMF0gKyAoKHYubGVuZ3RoIC0gMSk8PDQpKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHdyaXRlci53cml0ZV9jb2RlKDMyLCAweDA4IC8qY3N0LkNPREVfQkxPQ0szMiovLCAoKHYubGVuZ3RoLTEpIDw8IDEwKSB8IHZbMF0pO1xuICAgICAgICB3cml0ZXIuc2l6ZV8zMiArPSB2Lmxlbmd0aDtcbiAgICAgICAgd3JpdGVyLnNpemVfNjQgKz0gdi5sZW5ndGg7XG4gICAgICAgIGlmICh2Lmxlbmd0aCA+IDEpIHN0YWNrLnB1c2ggKHYsIDEpO1xuICAgICAgfSBlbHNlIGlmIChjYW1sX2lzX21sX2J5dGVzKHYpKSB7XG4gICAgICAgIGlmKCEoY2FtbF9pc19tbF9ieXRlcyhjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFwiXCIpKSkpIHtcbiAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwib3V0cHV0X3ZhbHVlOiBbQnl0ZXMudF0gY2Fubm90IHNhZmVseSBiZSBtYXJzaGFsZWQgd2l0aCBbLS1lbmFibGUgdXNlLWpzLXN0cmluZ11cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1lbW8odikpIHJldHVybjtcbiAgICAgICAgdmFyIGxlbiA9IGNhbWxfbWxfYnl0ZXNfbGVuZ3RoKHYpO1xuICAgICAgICBpZiAobGVuIDwgMHgyMClcbiAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIDB4MjAgLypjc3QuUFJFRklYX1NNQUxMX1NUUklORyovICsgbGVuKTtcbiAgICAgICAgZWxzZSBpZiAobGVuIDwgMHgxMDApXG4gICAgICAgICAgd3JpdGVyLndyaXRlX2NvZGUgKDgsIDB4MDkvKmNzdC5DT0RFX1NUUklORzgqLywgbGVuKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHdyaXRlci53cml0ZV9jb2RlICgzMiwgMHgwQSAvKmNzdC5DT0RFX1NUUklORzMyKi8sIGxlbik7XG4gICAgICAgIGZvciAodmFyIGkgPSAwO2kgPCBsZW47aSsrKVxuICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgY2FtbF9ieXRlc191bnNhZmVfZ2V0KHYsaSkpO1xuICAgICAgICB3cml0ZXIuc2l6ZV8zMiArPSAxICsgKCgobGVuICsgNCkgLyA0KXwwKTtcbiAgICAgICAgd3JpdGVyLnNpemVfNjQgKz0gMSArICgoKGxlbiArIDgpIC8gOCl8MCk7XG4gICAgICB9IGVsc2UgaWYgKGNhbWxfaXNfbWxfc3RyaW5nKHYpKSB7XG4gICAgICAgIHZhciBsZW4gPSBjYW1sX21sX3N0cmluZ19sZW5ndGgodik7XG4gICAgICAgIGlmIChsZW4gPCAweDIwKVxuICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgMHgyMCAvKmNzdC5QUkVGSVhfU01BTExfU1RSSU5HKi8gKyBsZW4pO1xuICAgICAgICBlbHNlIGlmIChsZW4gPCAweDEwMClcbiAgICAgICAgICB3cml0ZXIud3JpdGVfY29kZSAoOCwgMHgwOS8qY3N0LkNPREVfU1RSSU5HOCovLCBsZW4pO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgd3JpdGVyLndyaXRlX2NvZGUgKDMyLCAweDBBIC8qY3N0LkNPREVfU1RSSU5HMzIqLywgbGVuKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7aSA8IGxlbjtpKyspXG4gICAgICAgICAgd3JpdGVyLndyaXRlICg4LCBjYW1sX3N0cmluZ191bnNhZmVfZ2V0KHYsaSkpO1xuICAgICAgICB3cml0ZXIuc2l6ZV8zMiArPSAxICsgKCgobGVuICsgNCkgLyA0KXwwKTtcbiAgICAgICAgd3JpdGVyLnNpemVfNjQgKz0gMSArICgoKGxlbiArIDgpIC8gOCl8MCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodiAhPSAodnwwKSl7XG4gICAgICAgICAgdmFyIHR5cGVfb2ZfdiA9IHR5cGVvZiB2O1xuICAgICAgICAgIC8vXG4gICAgICAgICAgLy8gSWYgYSBmbG9hdCBoYXBwZW5zIHRvIGJlIGFuIGludGVnZXIgaXQgaXMgc2VyaWFsaXplZCBhcyBhbiBpbnRlZ2VyXG4gICAgICAgICAgLy8gKEpzX29mX29jYW1sIGNhbm5vdCB0ZWxsIHdoZXRoZXIgdGhlIHR5cGUgb2YgYW4gaW50ZWdlciBudW1iZXIgaXNcbiAgICAgICAgICAvLyBmbG9hdCBvciBpbnRlZ2VyLikgVGhpcyBjYW4gcmVzdWx0IGluIHVuZXhwZWN0ZWQgY3Jhc2hlcyB3aGVuXG4gICAgICAgICAgLy8gdW5tYXJzaGFsbGluZyB1c2luZyB0aGUgc3RhbmRhcmQgcnVudGltZS4gSXQgc2VlbXMgYmV0dGVyIHRvXG4gICAgICAgICAgLy8gc3lzdGVtYXRpY2FsbHkgZmFpbCBvbiBtYXJzaGFsbGluZy5cbiAgICAgICAgICAvL1xuICAgICAgICAgIC8vICAgICAgICAgIGlmKHR5cGVfb2ZfdiAhPSBcIm51bWJlclwiKVxuICAgICAgICAgIGNhbWxfZmFpbHdpdGgoXCJvdXRwdXRfdmFsdWU6IGFic3RyYWN0IHZhbHVlIChcIit0eXBlX29mX3YrXCIpXCIpO1xuICAgICAgICAgIC8vICAgICAgICAgIHZhciB0ID0gY2FtbF9pbnQ2NF90b19ieXRlcyhjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQodikpO1xuICAgICAgICAgIC8vICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgMHgwQiAvKmNzdC5DT0RFX0RPVUJMRV9CSUcqLyk7XG4gICAgICAgICAgLy8gICAgICAgICAgZm9yKHZhciBpID0gMDsgaTw4OyBpKyspe3dyaXRlci53cml0ZSg4LHRbaV0pfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHYgPj0gMCAmJiB2IDwgMHg0MCkge1xuICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgMFg0MCAvKmNzdC5QUkVGSVhfU01BTExfSU5UKi8gKyB2KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodiA+PSAtKDEgPDwgNykgJiYgdiA8ICgxIDw8IDcpKVxuICAgICAgICAgICAgd3JpdGVyLndyaXRlX2NvZGUoOCwgMHgwMCAvKmNzdC5DT0RFX0lOVDgqLywgdik7XG4gICAgICAgICAgZWxzZSBpZiAodiA+PSAtKDEgPDwgMTUpICYmIHYgPCAoMSA8PCAxNSkpXG4gICAgICAgICAgICB3cml0ZXIud3JpdGVfY29kZSgxNiwgMHgwMSAvKmNzdC5DT0RFX0lOVDE2Ki8sIHYpO1xuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIHdyaXRlci53cml0ZV9jb2RlKDMyLCAweDAyIC8qY3N0LkNPREVfSU5UMzIqLywgdik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZXh0ZXJuX3JlYyAodik7XG4gICAgd2hpbGUgKHN0YWNrLmxlbmd0aCA+IDApIHtcbiAgICAgIHZhciBpID0gc3RhY2sucG9wICgpO1xuICAgICAgdmFyIHYgPSBzdGFjay5wb3AgKCk7XG4gICAgICBpZiAoaSArIDEgPCB2Lmxlbmd0aCkgc3RhY2sucHVzaCAodiwgaSArIDEpO1xuICAgICAgZXh0ZXJuX3JlYyAodltpXSk7XG4gICAgfVxuICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSB3cml0ZXIub2JqX2NvdW50ZXIgPSBpbnRlcm5fb2JqX3RhYmxlLm9ianMubGVuZ3RoO1xuICAgIHdyaXRlci5maW5hbGl6ZSgpO1xuICAgIHJldHVybiB3cml0ZXIuY2h1bms7XG4gIH1cbn0gKCk7XG5cbi8vUHJvdmlkZXM6IGNhbWxfb3V0cHV0X3ZhbHVlX3RvX3N0cmluZyBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX291dHB1dF92YWwsIGNhbWxfc3RyaW5nX29mX2FycmF5XG5mdW5jdGlvbiBjYW1sX291dHB1dF92YWx1ZV90b19zdHJpbmcgKHYsIGZsYWdzKSB7XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9hcnJheSAoY2FtbF9vdXRwdXRfdmFsICh2LCBmbGFncykpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX291dHB1dF92YWx1ZV90b19ieXRlcyBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX291dHB1dF92YWwsIGNhbWxfYnl0ZXNfb2ZfYXJyYXlcbmZ1bmN0aW9uIGNhbWxfb3V0cHV0X3ZhbHVlX3RvX2J5dGVzICh2LCBmbGFncykge1xuICByZXR1cm4gY2FtbF9ieXRlc19vZl9hcnJheSAoY2FtbF9vdXRwdXRfdmFsICh2LCBmbGFncykpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX291dHB1dF92YWx1ZV90b19idWZmZXJcbi8vUmVxdWlyZXM6IGNhbWxfb3V0cHV0X3ZhbCwgY2FtbF9mYWlsd2l0aCwgY2FtbF9ibGl0X2J5dGVzXG5mdW5jdGlvbiBjYW1sX291dHB1dF92YWx1ZV90b19idWZmZXIgKHMsIG9mcywgbGVuLCB2LCBmbGFncykge1xuICB2YXIgdCA9IGNhbWxfb3V0cHV0X3ZhbCAodiwgZmxhZ3MpO1xuICBpZiAodC5sZW5ndGggPiBsZW4pIGNhbWxfZmFpbHdpdGggKFwiTWFyc2hhbC50b19idWZmZXI6IGJ1ZmZlciBvdmVyZmxvd1wiKTtcbiAgY2FtbF9ibGl0X2J5dGVzKHQsIDAsIHMsIG9mcywgdC5sZW5ndGgpO1xuICByZXR1cm4gMDtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxNCBKw6lyw7RtZSBWb3VpbGxvbiwgSHVnbyBIZXV6YXJkXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vLy8vLy8vLy8vLy8gSW9cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfZmRzXG52YXIgY2FtbF9zeXNfZmRzID0gbmV3IEFycmF5KDMpO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jbG9zZVxuLy9SZXF1aXJlczogY2FtbF9zeXNfZmRzXG5mdW5jdGlvbiBjYW1sX3N5c19jbG9zZShmZCkge1xuICB2YXIgZmlsZSA9IGNhbWxfc3lzX2Zkc1tmZF07XG4gIGlmKGZpbGUpIGZpbGUuY2xvc2UoKTtcbiAgZGVsZXRlIGNhbWxfc3lzX2Zkc1tmZF07XG4gIHJldHVybiAwO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX29wZW5cbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfc3lzX2Vycm9yXG4vL1JlcXVpcmVzOiBNbEZha2VGZF9vdXRcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlXG4vL1JlcXVpcmVzOiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG4vL1JlcXVpcmVzOiBmc19ub2RlX3N1cHBvcnRlZFxuLy9SZXF1aXJlczogY2FtbF9zeXNfZmRzXG4vL1JlcXVpcmVzOiBjYW1sX3N5c19vcGVuX2Zvcl9ub2RlXG5mdW5jdGlvbiBjYW1sX3N5c19vcGVuX2ludGVybmFsKGZpbGUsaWR4KSB7XG4gIGlmKGlkeCA9PSB1bmRlZmluZWQpe1xuICAgIGlkeCA9IGNhbWxfc3lzX2Zkcy5sZW5ndGg7XG4gIH1cbiAgY2FtbF9zeXNfZmRzW2lkeF0gPSBmaWxlO1xuICByZXR1cm4gaWR4IHwgMDtcbn1cbmZ1bmN0aW9uIGNhbWxfc3lzX29wZW4gKG5hbWUsIGZsYWdzLCBfcGVybXMpIHtcbiAgdmFyIGYgPSB7fTtcbiAgd2hpbGUoZmxhZ3Mpe1xuICAgIHN3aXRjaChmbGFnc1sxXSl7XG4gICAgY2FzZSAwOiBmLnJkb25seSA9IDE7YnJlYWs7XG4gICAgY2FzZSAxOiBmLndyb25seSA9IDE7YnJlYWs7XG4gICAgY2FzZSAyOiBmLmFwcGVuZCA9IDE7YnJlYWs7XG4gICAgY2FzZSAzOiBmLmNyZWF0ZSA9IDE7YnJlYWs7XG4gICAgY2FzZSA0OiBmLnRydW5jYXRlID0gMTticmVhaztcbiAgICBjYXNlIDU6IGYuZXhjbCA9IDE7IGJyZWFrO1xuICAgIGNhc2UgNjogZi5iaW5hcnkgPSAxO2JyZWFrO1xuICAgIGNhc2UgNzogZi50ZXh0ID0gMTticmVhaztcbiAgICBjYXNlIDg6IGYubm9uYmxvY2sgPSAxO2JyZWFrO1xuICAgIH1cbiAgICBmbGFncz1mbGFnc1syXTtcbiAgfVxuICBpZihmLnJkb25seSAmJiBmLndyb25seSlcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKG5hbWUpICsgXCIgOiBmbGFncyBPcGVuX3Jkb25seSBhbmQgT3Blbl93cm9ubHkgYXJlIG5vdCBjb21wYXRpYmxlXCIpO1xuICBpZihmLnRleHQgJiYgZi5iaW5hcnkpXG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IoY2FtbF9qc2J5dGVzX29mX3N0cmluZyhuYW1lKSArIFwiIDogZmxhZ3MgT3Blbl90ZXh0IGFuZCBPcGVuX2JpbmFyeSBhcmUgbm90IGNvbXBhdGlibGVcIik7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIHZhciBmaWxlID0gcm9vdC5kZXZpY2Uub3Blbihyb290LnJlc3QsZik7XG4gIHJldHVybiBjYW1sX3N5c19vcGVuX2ludGVybmFsIChmaWxlLCB1bmRlZmluZWQpO1xufVxuKGZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gZmlsZShmZCwgZmxhZ3MpIHtcbiAgICBpZihmc19ub2RlX3N1cHBvcnRlZCgpKSB7XG4gICAgICByZXR1cm4gY2FtbF9zeXNfb3Blbl9mb3Jfbm9kZShmZCwgZmxhZ3MpO1xuICAgIH1cbiAgICBlbHNlXG4gICAgICByZXR1cm4gbmV3IE1sRmFrZUZkX291dChmZCwgZmxhZ3MpXG4gIH1cbiAgY2FtbF9zeXNfb3Blbl9pbnRlcm5hbChmaWxlKDAse3Jkb25seToxLGFsdG5hbWU6XCIvZGV2L3N0ZGluXCIsaXNDaGFyYWN0ZXJEZXZpY2U6dHJ1ZX0pLCAwKTtcbiAgY2FtbF9zeXNfb3Blbl9pbnRlcm5hbChmaWxlKDEse2J1ZmZlcmVkOjIsd3Jvbmx5OjEsaXNDaGFyYWN0ZXJEZXZpY2U6dHJ1ZX0pLCAxKTtcbiAgY2FtbF9zeXNfb3Blbl9pbnRlcm5hbChmaWxlKDIse2J1ZmZlcmVkOjIsd3Jvbmx5OjEsaXNDaGFyYWN0ZXJEZXZpY2U6dHJ1ZX0pLCAyKTtcbn0pKClcblxuXG4vLyBvY2FtbCBDaGFubmVsc1xuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3NldF9jaGFubmVsX25hbWVcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfc2V0X2NoYW5uZWxfbmFtZShjaGFuaWQsIG5hbWUpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIGNoYW4ubmFtZSA9IG5hbWU7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2NoYW5uZWxzXG52YXIgY2FtbF9tbF9jaGFubmVscyA9IG5ldyBBcnJheSgpO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX291dF9jaGFubmVsc19saXN0XG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX291dF9jaGFubmVsc19saXN0ICgpIHtcbiAgdmFyIGwgPSAwO1xuICBmb3IodmFyIGMgPSAwOyBjIDwgY2FtbF9tbF9jaGFubmVscy5sZW5ndGg7IGMrKyl7XG4gICAgaWYoY2FtbF9tbF9jaGFubmVsc1tjXSAmJiBjYW1sX21sX2NoYW5uZWxzW2NdLm9wZW5lZCAmJiBjYW1sX21sX2NoYW5uZWxzW2NdLm91dClcbiAgICAgIGw9WzAsY2FtbF9tbF9jaGFubmVsc1tjXS5mZCxsXTtcbiAgfVxuICByZXR1cm4gbDtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9vdXRcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHMsIGNhbWxfc3lzX2Zkc1xuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9zeXNfZXJyb3Jcbi8vUmVxdWlyZXM6IGNhbWxfc3lzX29wZW5cbmZ1bmN0aW9uIGNhbWxfbWxfb3Blbl9kZXNjcmlwdG9yX291dCAoZmQpIHtcbiAgdmFyIGZpbGUgPSBjYW1sX3N5c19mZHNbZmRdO1xuICBpZihmaWxlLmZsYWdzLnJkb25seSkgY2FtbF9yYWlzZV9zeXNfZXJyb3IoXCJmZCBcIisgZmQgKyBcIiBpcyByZWFkb25seVwiKTtcbiAgdmFyIGJ1ZmZlcmVkID0gKGZpbGUuZmxhZ3MuYnVmZmVyZWQgIT09IHVuZGVmaW5lZCkgPyBmaWxlLmZsYWdzLmJ1ZmZlcmVkIDogMTtcbiAgdmFyIGNoYW5uZWwgPSB7XG4gICAgZmlsZTpmaWxlLFxuICAgIG9mZnNldDpmaWxlLmZsYWdzLmFwcGVuZD9maWxlLmxlbmd0aCgpOjAsXG4gICAgZmQ6ZmQsXG4gICAgb3BlbmVkOnRydWUsXG4gICAgb3V0OnRydWUsXG4gICAgYnVmZmVyX2N1cnI6MCxcbiAgICBidWZmZXI6bmV3IFVpbnQ4QXJyYXkoNjU1MzYpLFxuICAgIGJ1ZmZlcmVkOmJ1ZmZlcmVkXG4gIH07XG4gIGNhbWxfbWxfY2hhbm5lbHNbY2hhbm5lbC5mZF09Y2hhbm5lbDtcbiAgcmV0dXJuIGNoYW5uZWwuZmQ7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfb3Blbl9kZXNjcmlwdG9yX2luXG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzLCBjYW1sX3N5c19mZHNcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfc3lzX2Vycm9yXG4vL1JlcXVpcmVzOiBjYW1sX3N5c19vcGVuXG5mdW5jdGlvbiBjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9pbiAoZmQpICB7XG4gIHZhciBmaWxlID0gY2FtbF9zeXNfZmRzW2ZkXTtcbiAgaWYoZmlsZS5mbGFncy53cm9ubHkpIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKFwiZmQgXCIrIGZkICsgXCIgaXMgd3JpdGVvbmx5XCIpO1xuICB2YXIgcmVmaWxsID0gbnVsbDtcbiAgdmFyIGNoYW5uZWwgPSB7XG4gICAgZmlsZTpmaWxlLFxuICAgIG9mZnNldDpmaWxlLmZsYWdzLmFwcGVuZD9maWxlLmxlbmd0aCgpOjAsXG4gICAgZmQ6ZmQsXG4gICAgb3BlbmVkOnRydWUsXG4gICAgb3V0OiBmYWxzZSxcbiAgICBidWZmZXJfY3VycjowLFxuICAgIGJ1ZmZlcl9tYXg6MCxcbiAgICBidWZmZXI6bmV3IFVpbnQ4QXJyYXkoNjU1MzYpLFxuICAgIHJlZmlsbDpyZWZpbGxcbiAgfTtcbiAgY2FtbF9tbF9jaGFubmVsc1tjaGFubmVsLmZkXT1jaGFubmVsO1xuICByZXR1cm4gY2hhbm5lbC5mZDtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NoYW5uZWxfZGVzY3JpcHRvclxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVsc1xuLy9BbGlhczogd2luX2ZpbGVkZXNjcl9vZl9jaGFubmVsXG5mdW5jdGlvbiBjYW1sX2NoYW5uZWxfZGVzY3JpcHRvcihjaGFuaWQpe1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgcmV0dXJuIGNoYW4uZmQ7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc2V0X2JpbmFyeV9tb2RlXG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX3NldF9iaW5hcnlfbW9kZShjaGFuaWQsbW9kZSl7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICBjaGFuLmZpbGUuZmxhZ3MudGV4dCA9ICFtb2RlXG4gIGNoYW4uZmlsZS5mbGFncy5iaW5hcnkgPSBtb2RlXG4gIHJldHVybiAwO1xufVxuXG4vL0lucHV0IGZyb20gaW5fY2hhbm5lbFxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2Nsb3NlX2NoYW5uZWxcbi8vUmVxdWlyZXM6IGNhbWxfbWxfZmx1c2gsIGNhbWxfbWxfY2hhbm5lbHNcbi8vUmVxdWlyZXM6IGNhbWxfc3lzX2Nsb3NlXG5mdW5jdGlvbiBjYW1sX21sX2Nsb3NlX2NoYW5uZWwgKGNoYW5pZCkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgY2hhbi5vcGVuZWQgPSBmYWxzZTtcbiAgY2FtbF9zeXNfY2xvc2UoY2hhbi5mZClcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfY2hhbm5lbF9zaXplXG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX2NoYW5uZWxfc2l6ZShjaGFuaWQpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIHJldHVybiBjaGFuLmZpbGUubGVuZ3RoKCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfY2hhbm5lbF9zaXplXzY0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mX2Zsb2F0LGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfY2hhbm5lbF9zaXplXzY0KGNoYW5pZCkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgcmV0dXJuIGNhbWxfaW50NjRfb2ZfZmxvYXQoY2hhbi5maWxlLmxlbmd0aCAoKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc2V0X2NoYW5uZWxfb3V0cHV0XG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX3NldF9jaGFubmVsX291dHB1dChjaGFuaWQsZikge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgY2hhbi5vdXRwdXQgPSAoZnVuY3Rpb24gKHMpIHtmKHMpfSk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3NldF9jaGFubmVsX3JlZmlsbFxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9zZXRfY2hhbm5lbF9yZWZpbGwoY2hhbmlkLGYpIHtcbiAgY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdLnJlZmlsbCA9IGY7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JlZmlsbFxuLy9SZXF1aXJlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoLCBjYW1sX3VpbnQ4X2FycmF5X29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9yZWZpbGwgKGNoYW4pIHtcbiAgaWYoY2hhbi5yZWZpbGwgIT0gbnVsbCl7XG4gICAgdmFyIHN0ciA9IGNoYW4ucmVmaWxsKCk7XG4gICAgdmFyIHN0cl9hID0gY2FtbF91aW50OF9hcnJheV9vZl9zdHJpbmcoc3RyKTtcbiAgICBpZiAoc3RyX2EubGVuZ3RoID09IDApIHtcbiAgICAgIGNoYW4ucmVmaWxsID0gbnVsbFxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGlmKGNoYW4uYnVmZmVyLmxlbmd0aCA8IGNoYW4uYnVmZmVyX21heCArIHN0cl9hLmxlbmd0aCl7XG4gICAgICAgIHZhciBiID0gbmV3IFVpbnQ4QXJyYXkoY2hhbi5idWZmZXJfbWF4ICsgc3RyX2EubGVuZ3RoKTtcbiAgICAgICAgYi5zZXQoY2hhbi5idWZmZXIpO1xuICAgICAgICBjaGFuLmJ1ZmZlciA9IGI7XG4gICAgICB9XG4gICAgICBjaGFuLmJ1ZmZlci5zZXQoc3RyX2EsY2hhbi5idWZmZXJfbWF4KTtcbiAgICAgIGNoYW4ub2Zmc2V0ICs9IHN0cl9hLmxlbmd0aDtcbiAgICAgIGNoYW4uYnVmZmVyX21heCArPSBzdHJfYS5sZW5ndGg7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHZhciBucmVhZCA9IGNoYW4uZmlsZS5yZWFkKGNoYW4ub2Zmc2V0LCBjaGFuLmJ1ZmZlciwgY2hhbi5idWZmZXJfbWF4LCBjaGFuLmJ1ZmZlci5sZW5ndGggLSBjaGFuLmJ1ZmZlcl9tYXgpO1xuICAgIGNoYW4ub2Zmc2V0ICs9IG5yZWFkO1xuICAgIGNoYW4uYnVmZmVyX21heCArPSBucmVhZDtcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2lucHV0XG4vL1JlcXVpcmVzOiBjYW1sX21sX2lucHV0X2Jsb2NrXG4vL1JlcXVpcmVzOiBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzXG5mdW5jdGlvbiBjYW1sX21sX2lucHV0IChjaGFuaWQsIGIsIGksIGwpIHtcbiAgdmFyIGJhID0gY2FtbF91aW50OF9hcnJheV9vZl9ieXRlcyhiKTtcbiAgcmV0dXJuIGNhbWxfbWxfaW5wdXRfYmxvY2soY2hhbmlkLCBiYSwgaSwgbClcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9pbnB1dF9ibG9ja1xuLy9SZXF1aXJlczogY2FtbF9yZWZpbGwsIGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfaW5wdXRfYmxvY2sgKGNoYW5pZCwgYmEsIGksIGwpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIHZhciBuID0gbDtcbiAgdmFyIGF2YWlsID0gY2hhbi5idWZmZXJfbWF4IC0gY2hhbi5idWZmZXJfY3VycjtcbiAgaWYobCA8PSBhdmFpbCkge1xuICAgIGJhLnNldChjaGFuLmJ1ZmZlci5zdWJhcnJheShjaGFuLmJ1ZmZlcl9jdXJyLGNoYW4uYnVmZmVyX2N1cnIgKyBsKSwgaSk7XG4gICAgY2hhbi5idWZmZXJfY3VyciArPSBsO1xuICB9XG4gIGVsc2UgaWYoYXZhaWwgPiAwKSB7XG4gICAgYmEuc2V0KGNoYW4uYnVmZmVyLnN1YmFycmF5KGNoYW4uYnVmZmVyX2N1cnIsY2hhbi5idWZmZXJfY3VyciArIGF2YWlsKSwgaSk7XG4gICAgY2hhbi5idWZmZXJfY3VyciArPSBhdmFpbDtcbiAgICBuID0gYXZhaWw7XG4gIH0gZWxzZSB7XG4gICAgY2hhbi5idWZmZXJfY3VyciA9IDA7XG4gICAgY2hhbi5idWZmZXJfbWF4ID0gMDtcbiAgICBjYW1sX3JlZmlsbChjaGFuKTtcbiAgICB2YXIgYXZhaWwgPSBjaGFuLmJ1ZmZlcl9tYXggLSBjaGFuLmJ1ZmZlcl9jdXJyO1xuICAgIGlmKG4gPiBhdmFpbCkgbiA9IGF2YWlsO1xuICAgIGJhLnNldChjaGFuLmJ1ZmZlci5zdWJhcnJheShjaGFuLmJ1ZmZlcl9jdXJyLGNoYW4uYnVmZmVyX2N1cnIgKyBuKSwgaSk7XG4gICAgY2hhbi5idWZmZXJfY3VyciArPSBuO1xuICB9XG4gIHJldHVybiBuIHwgMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnB1dF92YWx1ZVxuLy9SZXF1aXJlczogY2FtbF9tYXJzaGFsX2RhdGFfc2l6ZSwgY2FtbF9pbnB1dF92YWx1ZV9mcm9tX2J5dGVzLCBjYW1sX2NyZWF0ZV9ieXRlcywgY2FtbF9tbF9jaGFubmVscywgY2FtbF9ieXRlc19vZl9hcnJheVxuLy9SZXF1aXJlczogY2FtbF9yZWZpbGwsIGNhbWxfZmFpbHdpdGgsIGNhbWxfcmFpc2VfZW5kX29mX2ZpbGVcbi8vUmVxdWlyZXM6IGNhbWxfbWFyc2hhbF9oZWFkZXJfc2l6ZVxuZnVuY3Rpb24gY2FtbF9pbnB1dF92YWx1ZSAoY2hhbmlkKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICB2YXIgaGVhZGVyID0gbmV3IFVpbnQ4QXJyYXkoY2FtbF9tYXJzaGFsX2hlYWRlcl9zaXplKTtcbiAgZnVuY3Rpb24gYmxvY2soYnVmZmVyLCBvZmZzZXQsIG4pIHtcbiAgICB2YXIgciA9IDA7XG4gICAgd2hpbGUociA8IG4pe1xuICAgICAgaWYoY2hhbi5idWZmZXJfY3VyciA+PSBjaGFuLmJ1ZmZlcl9tYXgpe1xuICAgICAgICBjaGFuLmJ1ZmZlcl9jdXJyID0gMDtcbiAgICAgICAgY2hhbi5idWZmZXJfbWF4ID0gMDtcbiAgICAgICAgY2FtbF9yZWZpbGwoY2hhbik7XG4gICAgICB9XG4gICAgICBpZiAoY2hhbi5idWZmZXJfY3VyciA+PSBjaGFuLmJ1ZmZlcl9tYXgpXG4gICAgICAgIGJyZWFrO1xuICAgICAgYnVmZmVyW29mZnNldCtyXSA9IGNoYW4uYnVmZmVyW2NoYW4uYnVmZmVyX2N1cnJdO1xuICAgICAgY2hhbi5idWZmZXJfY3VycisrO1xuICAgICAgcisrO1xuICAgIH1cbiAgICByZXR1cm4gcjtcbiAgfVxuICB2YXIgciA9IGJsb2NrKGhlYWRlciwgMCwgY2FtbF9tYXJzaGFsX2hlYWRlcl9zaXplKTtcbiAgaWYociA9PSAwKVxuICAgIGNhbWxfcmFpc2VfZW5kX29mX2ZpbGUoKTtcbiAgZWxzZSBpZiAociA8IGNhbWxfbWFyc2hhbF9oZWFkZXJfc2l6ZSlcbiAgICBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IHRydW5jYXRlZCBvYmplY3RcIik7XG4gIHZhciBsZW4gPSBjYW1sX21hcnNoYWxfZGF0YV9zaXplIChjYW1sX2J5dGVzX29mX2FycmF5KGhlYWRlciksIDApO1xuICB2YXIgYnVmID0gbmV3IFVpbnQ4QXJyYXkobGVuICsgY2FtbF9tYXJzaGFsX2hlYWRlcl9zaXplKTtcbiAgYnVmLnNldChoZWFkZXIsMCk7XG4gIHZhciByID0gYmxvY2soYnVmLCBjYW1sX21hcnNoYWxfaGVhZGVyX3NpemUsIGxlbilcbiAgaWYociA8IGxlbilcbiAgICBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IHRydW5jYXRlZCBvYmplY3QgXCIgKyByICsgXCIgIFwiICsgbGVuKTtcbiAgdmFyIG9mZnNldCA9IFswXTtcbiAgdmFyIHJlcyA9IGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9ieXRlcyhjYW1sX2J5dGVzX29mX2FycmF5KGJ1ZiksIG9mZnNldCk7XG4gIGNoYW4ub2Zmc2V0ID0gY2hhbi5vZmZzZXQgKyBvZmZzZXRbMF07XG4gIHJldHVybiByZXM7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW5wdXRfdmFsdWVfdG9fb3V0c2lkZV9oZWFwXG4vL1JlcXVpcmVzOiBjYW1sX2lucHV0X3ZhbHVlXG5mdW5jdGlvbiBjYW1sX2lucHV0X3ZhbHVlX3RvX291dHNpZGVfaGVhcChjKSB7XG4gIHJldHVybiBjYW1sX2lucHV0X3ZhbHVlKGMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2lucHV0X2NoYXJcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2VfZW5kX29mX2ZpbGUsIGNhbWxfYXJyYXlfYm91bmRfZXJyb3Jcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHMsIGNhbWxfcmVmaWxsXG5mdW5jdGlvbiBjYW1sX21sX2lucHV0X2NoYXIgKGNoYW5pZCkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgaWYoY2hhbi5idWZmZXJfY3VyciA+PSBjaGFuLmJ1ZmZlcl9tYXgpe1xuICAgIGNoYW4uYnVmZmVyX2N1cnIgPSAwO1xuICAgIGNoYW4uYnVmZmVyX21heCA9IDA7XG4gICAgY2FtbF9yZWZpbGwoY2hhbik7XG4gIH1cbiAgaWYgKGNoYW4uYnVmZmVyX2N1cnIgPj0gY2hhbi5idWZmZXJfbWF4KVxuICAgIGNhbWxfcmFpc2VfZW5kX29mX2ZpbGUoKTtcbiAgdmFyIHJlcyA9IGNoYW4uYnVmZmVyW2NoYW4uYnVmZmVyX2N1cnJdO1xuICBjaGFuLmJ1ZmZlcl9jdXJyKys7XG4gIHJldHVybiByZXM7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfaW5wdXRfaW50XG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX2VuZF9vZl9maWxlXG4vL1JlcXVpcmVzOiBjYW1sX21sX2lucHV0X2NoYXIsIGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfaW5wdXRfaW50IChjaGFuaWQpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIHZhciByZXMgPSAwO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgNDsgaSsrKXtcbiAgICByZXMgPSAocmVzIDw8IDgpICsgY2FtbF9tbF9pbnB1dF9jaGFyKGNoYW5pZCkgfCAwO1xuICB9XG4gIHJldHVybiByZXMgfCAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3NlZWtfaW5cbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfc3lzX2Vycm9yLCBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX3NlZWtfaW4oY2hhbmlkLCBwb3MpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIGlmIChjaGFuLnJlZmlsbCAhPSBudWxsKSBjYW1sX3JhaXNlX3N5c19lcnJvcihcIklsbGVnYWwgc2Vla1wiKTtcbiAgaWYocG9zID49IGNoYW4ub2Zmc2V0IC0gY2hhbi5idWZmZXJfbWF4XG4gICAgICYmIHBvcyA8PSBjaGFuLm9mZnNldFxuICAgICAmJiBjaGFuLmZpbGUuZmxhZ3MuYmluYXJ5KSB7XG4gICAgY2hhbi5idWZmZXJfY3VyciA9IGNoYW4uYnVmZmVyX21heCAtIChjaGFuLm9mZnNldCAtIHBvcyk7XG4gIH0gZWxzZSB7XG4gICAgY2hhbi5vZmZzZXQgPSBwb3M7XG4gICAgY2hhbi5idWZmZXJfY3VyciA9IDA7XG4gICAgY2hhbi5idWZmZXJfbWF4ID0gMDtcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9zZWVrX2luXG4vL1JlcXVpcmVzOiBjYW1sX3NlZWtfaW5cbmZ1bmN0aW9uIGNhbWxfbWxfc2Vla19pbihjaGFuaWQscG9zKXtcbiAgcmV0dXJuIGNhbWxfc2Vla19pbihjaGFuaWQscG9zKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9zZWVrX2luXzY0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X3RvX2Zsb2F0LCBjYW1sX3NlZWtfaW5cbmZ1bmN0aW9uIGNhbWxfbWxfc2Vla19pbl82NChjaGFuaWQscG9zKXtcbiAgdmFyIHBvcyA9IGNhbWxfaW50NjRfdG9fZmxvYXQocG9zKTtcbiAgcmV0dXJuIGNhbWxfc2Vla19pbihjaGFuaWQsIHBvcyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcG9zX2luXG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX3Bvc19pbihjaGFuaWQpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIHJldHVybiBjaGFuLm9mZnNldCAtIChjaGFuLmJ1ZmZlcl9tYXggLSBjaGFuLmJ1ZmZlcl9jdXJyKSB8IDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfcG9zX2luXG4vL1JlcXVpcmVzOiBjYW1sX3Bvc19pblxuZnVuY3Rpb24gY2FtbF9tbF9wb3NfaW4oY2hhbmlkKSB7XG4gIHJldHVybiBjYW1sX3Bvc19pbihjaGFuaWQpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3Bvc19pbl82NFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZl9mbG9hdCwgY2FtbF9wb3NfaW5cbmZ1bmN0aW9uIGNhbWxfbWxfcG9zX2luXzY0KGNoYW5pZCkge1xuICByZXR1cm4gY2FtbF9pbnQ2NF9vZl9mbG9hdChjYW1sX3Bvc19pbihjaGFuaWQpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9pbnB1dF9zY2FuX2xpbmVcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3Jcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHMsIGNhbWxfcmVmaWxsXG5mdW5jdGlvbiBjYW1sX21sX2lucHV0X3NjYW5fbGluZShjaGFuaWQpe1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgdmFyIHAgPSBjaGFuLmJ1ZmZlcl9jdXJyO1xuICBkbyB7XG4gICAgaWYocCA+PSBjaGFuLmJ1ZmZlcl9tYXgpIHtcbiAgICAgIGlmKGNoYW4uYnVmZmVyX2N1cnIgPiAwKSB7XG4gICAgICAgIGNoYW4uYnVmZmVyLnNldChjaGFuLmJ1ZmZlci5zdWJhcnJheShjaGFuLmJ1ZmZlcl9jdXJyKSwwKTtcbiAgICAgICAgcCAtPSBjaGFuLmJ1ZmZlcl9jdXJyO1xuICAgICAgICBjaGFuLmJ1ZmZlcl9tYXggLT0gY2hhbi5idWZmZXJfY3VycjtcbiAgICAgICAgY2hhbi5idWZmZXJfY3VyciA9IDA7XG4gICAgICB9XG4gICAgICBpZihjaGFuLmJ1ZmZlcl9tYXggPj0gY2hhbi5idWZmZXIubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiAtKGNoYW4uYnVmZmVyX21heCkgfCAwO1xuICAgICAgfVxuICAgICAgdmFyIHByZXZfbWF4ID0gY2hhbi5idWZmZXJfbWF4O1xuICAgICAgY2FtbF9yZWZpbGwgKGNoYW4pO1xuICAgICAgaWYocHJldl9tYXggPT0gY2hhbi5idWZmZXJfbWF4KSB7XG4gICAgICAgIHJldHVybiAtKGNoYW4uYnVmZmVyX21heCkgfCAwO1xuICAgICAgfVxuICAgIH1cbiAgfSB3aGlsZSAoY2hhbi5idWZmZXJbcCsrXSAhPSAxMCk7XG4gIHJldHVybiAocCAtIGNoYW4uYnVmZmVyX2N1cnIpIHwgMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9mbHVzaFxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9zeXNfZXJyb3IsIGNhbWxfbWxfY2hhbm5lbHNcbi8vUmVxdWlyZXM6IGNhbWxfc3ViYXJyYXlfdG9fanNieXRlc1xuZnVuY3Rpb24gY2FtbF9tbF9mbHVzaCAoY2hhbmlkKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICBpZighIGNoYW4ub3BlbmVkKSBjYW1sX3JhaXNlX3N5c19lcnJvcihcIkNhbm5vdCBmbHVzaCBhIGNsb3NlZCBjaGFubmVsXCIpO1xuICBpZighY2hhbi5idWZmZXIgfHwgY2hhbi5idWZmZXJfY3VyciA9PSAwKSByZXR1cm4gMDtcbiAgaWYoY2hhbi5vdXRwdXQpIHtcbiAgICBjaGFuLm91dHB1dChjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMoY2hhbi5idWZmZXIsIDAsIGNoYW4uYnVmZmVyX2N1cnIpKTtcbiAgfSBlbHNlIHtcbiAgICBjaGFuLmZpbGUud3JpdGUoY2hhbi5vZmZzZXQsIGNoYW4uYnVmZmVyLCAwLCBjaGFuLmJ1ZmZlcl9jdXJyKTtcbiAgfVxuICBjaGFuLm9mZnNldCArPSBjaGFuLmJ1ZmZlcl9jdXJyO1xuICBjaGFuLmJ1ZmZlcl9jdXJyID0gMDtcbiAgcmV0dXJuIDA7XG59XG5cbi8vb3V0cHV0IHRvIG91dF9jaGFubmVsXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfb3V0cHV0X2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX21sX2ZsdXNoLGNhbWxfbWxfYnl0ZXNfbGVuZ3RoXG4vL1JlcXVpcmVzOiBjYW1sX2NyZWF0ZV9ieXRlcywgY2FtbF9ibGl0X2J5dGVzLCBjYW1sX3JhaXNlX3N5c19lcnJvciwgY2FtbF9tbF9jaGFubmVscywgY2FtbF9zdHJpbmdfb2ZfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfbWxfb3V0cHV0X2J5dGVzKGNoYW5pZCxidWZmZXIsb2Zmc2V0LGxlbikge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgaWYoISBjaGFuLm9wZW5lZCkgY2FtbF9yYWlzZV9zeXNfZXJyb3IoXCJDYW5ub3Qgb3V0cHV0IHRvIGEgY2xvc2VkIGNoYW5uZWxcIik7XG4gIHZhciBidWZmZXIgPSBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzKGJ1ZmZlcik7XG4gIGJ1ZmZlciA9IGJ1ZmZlci5zdWJhcnJheShvZmZzZXQsIG9mZnNldCArIGxlbik7XG4gIGlmKGNoYW4uYnVmZmVyX2N1cnIgKyBidWZmZXIubGVuZ3RoID4gY2hhbi5idWZmZXIubGVuZ3RoKSB7XG4gICAgdmFyIGIgPSBuZXcgVWludDhBcnJheShjaGFuLmJ1ZmZlcl9jdXJyICsgYnVmZmVyLmxlbmd0aCk7XG4gICAgYi5zZXQoY2hhbi5idWZmZXIpO1xuICAgIGNoYW4uYnVmZmVyID0gYlxuICB9XG4gIHN3aXRjaChjaGFuLmJ1ZmZlcmVkKXtcbiAgY2FzZSAwOiAvLyBVbmJ1ZmZlcmVkXG4gICAgY2hhbi5idWZmZXIuc2V0KGJ1ZmZlciwgY2hhbi5idWZmZXJfY3Vycik7XG4gICAgY2hhbi5idWZmZXJfY3VyciArPSBidWZmZXIubGVuZ3RoO1xuICAgIGNhbWxfbWxfZmx1c2ggKGNoYW5pZCk7XG4gICAgYnJlYWtcbiAgY2FzZSAxOiAvLyBCdWZmZXJlZCAodGhlIGRlZmF1bHQpXG4gICAgY2hhbi5idWZmZXIuc2V0KGJ1ZmZlciwgY2hhbi5idWZmZXJfY3Vycik7XG4gICAgY2hhbi5idWZmZXJfY3VyciArPSBidWZmZXIubGVuZ3RoO1xuICAgIGlmKGNoYW4uYnVmZmVyX2N1cnIgPj0gY2hhbi5idWZmZXIubGVuZ3RoKVxuICAgICAgY2FtbF9tbF9mbHVzaCAoY2hhbmlkKTtcbiAgICBicmVhaztcbiAgY2FzZSAyOiAvLyBCdWZmZXJlZCAob25seSBmb3Igc3Rkb3V0IGFuZCBzdGRlcnIpXG4gICAgdmFyIGlkID0gYnVmZmVyLmxhc3RJbmRleE9mKDEwKVxuICAgIGlmKGlkIDwgMCkge1xuICAgICAgY2hhbi5idWZmZXIuc2V0KGJ1ZmZlciwgY2hhbi5idWZmZXJfY3Vycik7XG4gICAgICBjaGFuLmJ1ZmZlcl9jdXJyICs9IGJ1ZmZlci5sZW5ndGg7XG4gICAgICBpZihjaGFuLmJ1ZmZlcl9jdXJyID49IGNoYW4uYnVmZmVyLmxlbmd0aClcbiAgICAgICAgY2FtbF9tbF9mbHVzaCAoY2hhbmlkKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBjaGFuLmJ1ZmZlci5zZXQoYnVmZmVyLnN1YmFycmF5KDAsIGlkICsgMSksIGNoYW4uYnVmZmVyX2N1cnIpO1xuICAgICAgY2hhbi5idWZmZXJfY3VyciArPSBpZCArIDE7XG4gICAgICBjYW1sX21sX2ZsdXNoIChjaGFuaWQpO1xuICAgICAgY2hhbi5idWZmZXIuc2V0KGJ1ZmZlci5zdWJhcnJheShpZCArIDEpLCBjaGFuLmJ1ZmZlcl9jdXJyKTtcbiAgICAgIGNoYW4uYnVmZmVyX2N1cnIgKz0gYnVmZmVyLmxlbmd0aCAtIGlkIC0gMTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfb3V0cHV0XG4vL1JlcXVpcmVzOiBjYW1sX21sX291dHB1dF9ieXRlcywgY2FtbF9ieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfbWxfb3V0cHV0KGNoYW5pZCxidWZmZXIsb2Zmc2V0LGxlbil7XG4gIHJldHVybiBjYW1sX21sX291dHB1dF9ieXRlcyhjaGFuaWQsY2FtbF9ieXRlc19vZl9zdHJpbmcoYnVmZmVyKSxvZmZzZXQsbGVuKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9vdXRwdXRfY2hhclxuLy9SZXF1aXJlczogY2FtbF9tbF9vdXRwdXRcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfbWxfb3V0cHV0X2NoYXIgKGNoYW5pZCxjKSB7XG4gIHZhciBzID0gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhTdHJpbmcuZnJvbUNoYXJDb2RlKGMpKTtcbiAgY2FtbF9tbF9vdXRwdXQoY2hhbmlkLHMsMCwxKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb3V0cHV0X3ZhbHVlXG4vL1JlcXVpcmVzOiBjYW1sX291dHB1dF92YWx1ZV90b19zdHJpbmcsIGNhbWxfbWxfb3V0cHV0LGNhbWxfbWxfc3RyaW5nX2xlbmd0aFxuZnVuY3Rpb24gY2FtbF9vdXRwdXRfdmFsdWUgKGNoYW5pZCx2LGZsYWdzKSB7XG4gIHZhciBzID0gY2FtbF9vdXRwdXRfdmFsdWVfdG9fc3RyaW5nKHYsIGZsYWdzKTtcbiAgY2FtbF9tbF9vdXRwdXQoY2hhbmlkLHMsMCxjYW1sX21sX3N0cmluZ19sZW5ndGgocykpO1xuICByZXR1cm4gMDtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX3NlZWtfb3V0XG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzLCBjYW1sX21sX2ZsdXNoXG5mdW5jdGlvbiBjYW1sX3NlZWtfb3V0KGNoYW5pZCwgcG9zKXtcbiAgY2FtbF9tbF9mbHVzaChjaGFuaWQpO1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgY2hhbi5vZmZzZXQgPSBwb3M7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3NlZWtfb3V0XG4vL1JlcXVpcmVzOiBjYW1sX3NlZWtfb3V0XG5mdW5jdGlvbiBjYW1sX21sX3NlZWtfb3V0KGNoYW5pZCxwb3Mpe1xuICByZXR1cm4gY2FtbF9zZWVrX291dChjaGFuaWQsIHBvcyk7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX21sX3NlZWtfb3V0XzY0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X3RvX2Zsb2F0LCBjYW1sX3NlZWtfb3V0XG5mdW5jdGlvbiBjYW1sX21sX3NlZWtfb3V0XzY0KGNoYW5pZCxwb3Mpe1xuICB2YXIgcG9zID0gY2FtbF9pbnQ2NF90b19mbG9hdChwb3MpO1xuICByZXR1cm4gY2FtbF9zZWVrX291dChjaGFuaWQsIHBvcyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcG9zX291dFxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVscywgY2FtbF9tbF9mbHVzaFxuZnVuY3Rpb24gY2FtbF9wb3Nfb3V0KGNoYW5pZCkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgcmV0dXJuIGNoYW4ub2Zmc2V0ICsgY2hhbi5idWZmZXJfY3VyclxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3Bvc19vdXRcbi8vUmVxdWlyZXM6IGNhbWxfcG9zX291dFxuZnVuY3Rpb24gY2FtbF9tbF9wb3Nfb3V0KGNoYW5pZCkge1xuICByZXR1cm4gY2FtbF9wb3Nfb3V0KGNoYW5pZCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfcG9zX291dF82NFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZl9mbG9hdCwgY2FtbF9wb3Nfb3V0XG5mdW5jdGlvbiBjYW1sX21sX3Bvc19vdXRfNjQoY2hhbmlkKSB7XG4gIHJldHVybiBjYW1sX2ludDY0X29mX2Zsb2F0IChjYW1sX3Bvc19vdXQoY2hhbmlkKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfb3V0cHV0X2ludFxuLy9SZXF1aXJlczogY2FtbF9tbF9vdXRwdXRcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2FycmF5XG5mdW5jdGlvbiBjYW1sX21sX291dHB1dF9pbnQgKGNoYW5pZCxpKSB7XG4gIHZhciBhcnIgPSBbKGk+PjI0KSAmIDB4RkYsKGk+PjE2KSAmIDB4RkYsKGk+PjgpICYgMHhGRixpICYgMHhGRiBdO1xuICB2YXIgcyA9IGNhbWxfc3RyaW5nX29mX2FycmF5KGFycik7XG4gIGNhbWxfbWxfb3V0cHV0KGNoYW5pZCxzLDAsNCk7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfaXNfYnVmZmVyZWRcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfaXNfYnVmZmVyZWQoY2hhbmlkKSB7XG4gIHJldHVybiBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF0uYnVmZmVyZWQgPyAxIDogMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3NldF9idWZmZXJlZFxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVscywgY2FtbF9tbF9mbHVzaFxuZnVuY3Rpb24gY2FtbF9tbF9zZXRfYnVmZmVyZWQoY2hhbmlkLHYpIHtcbiAgY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdLmJ1ZmZlcmVkID0gdjtcbiAgaWYoIXYpIGNhbWxfbWxfZmx1c2goY2hhbmlkKTtcbiAgcmV0dXJuIDBcbn1cbiIsIlxuXG4vL1Byb3ZpZGVzOiBjYW1sX2djX21pbm9yXG5mdW5jdGlvbiBjYW1sX2djX21pbm9yKHVuaXQpe1xuICAvL2F2YWlsYWJsZSB3aXRoIFtub2RlIC0tZXhwb3NlLWdjXVxuICBpZih0eXBlb2YgZ2xvYmFsVGhpcy5nYyA9PSAnZnVuY3Rpb24nKSBnbG9iYWxUaGlzLmdjKHRydWUpO1xuICByZXR1cm4gMFxufVxuLy9Qcm92aWRlczogY2FtbF9nY19tYWpvclxuZnVuY3Rpb24gY2FtbF9nY19tYWpvcih1bml0KXtcbiAgLy9hdmFpbGFibGUgd2l0aCBbbm9kZSAtLWV4cG9zZS1nY11cbiAgaWYodHlwZW9mIGdsb2JhbFRoaXMuZ2MgPT0gJ2Z1bmN0aW9uJykgZ2xvYmFsVGhpcy5nYygpO1xuICByZXR1cm4gMFxufVxuLy9Qcm92aWRlczogY2FtbF9nY19mdWxsX21ham9yXG5mdW5jdGlvbiBjYW1sX2djX2Z1bGxfbWFqb3IodW5pdCl7XG4gIC8vYXZhaWxhYmxlIHdpdGggW25vZGUgLS1leHBvc2UtZ2NdXG4gIGlmKHR5cGVvZiBnbG9iYWxUaGlzLmdjID09ICdmdW5jdGlvbicpIGdsb2JhbFRoaXMuZ2MoKTtcbiAgcmV0dXJuIDBcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ2NfY29tcGFjdGlvblxuZnVuY3Rpb24gY2FtbF9nY19jb21wYWN0aW9uKCl7IHJldHVybiAwfVxuLy9Qcm92aWRlczogY2FtbF9nY19jb3VudGVyc1xuZnVuY3Rpb24gY2FtbF9nY19jb3VudGVycygpIHsgcmV0dXJuIFsyNTQsMCwwLDBdIH1cbi8vUHJvdmlkZXM6IGNhbWxfZ2NfcXVpY2tfc3RhdFxuZnVuY3Rpb24gY2FtbF9nY19xdWlja19zdGF0KCl7XG4gIHJldHVybiBbMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXVxufVxuLy9Qcm92aWRlczogY2FtbF9nY19zdGF0XG5mdW5jdGlvbiBjYW1sX2djX3N0YXQoKSB7XG4gIHJldHVybiBbMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2djX3NldFxuZnVuY3Rpb24gY2FtbF9nY19zZXQoX2NvbnRyb2wpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2NfZ2V0XG5mdW5jdGlvbiBjYW1sX2djX2dldCgpe1xuICByZXR1cm4gWzAsMCwwLDAsMCwwLDAsMCwwXVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21lbXByb2Zfc2V0XG5mdW5jdGlvbiBjYW1sX21lbXByb2Zfc2V0KF9jb250cm9sKSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ZpbmFsX3JlZ2lzdGVyIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ZpbmFsX3JlZ2lzdGVyICgpIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9maW5hbF9yZWdpc3Rlcl9jYWxsZWRfd2l0aG91dF92YWx1ZVxudmFyIGFsbF9maW5hbGl6ZXJzID0gbmV3IGdsb2JhbFRoaXMuU2V0KClcbmZ1bmN0aW9uIGNhbWxfZmluYWxfcmVnaXN0ZXJfY2FsbGVkX3dpdGhvdXRfdmFsdWUgKGNiLCBhKSB7XG4gIGlmKGdsb2JhbFRoaXMuRmluYWxpemF0aW9uUmVnaXN0cnkgJiYgYSBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgIHZhciB4ID0gbmV3IGdsb2JhbFRoaXMuRmluYWxpemF0aW9uUmVnaXN0cnkoZnVuY3Rpb24gKHgpe2FsbF9maW5hbGl6ZXJzLmRlbGV0ZSh4KTsgY2IoMCk7IHJldHVybjt9KTtcbiAgICB4LnJlZ2lzdGVyKGEseCk7XG4gICAgYWxsX2ZpbmFsaXplcnMuYWRkKHgpO1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ZpbmFsX3JlbGVhc2UgY29uc3RcbmZ1bmN0aW9uIGNhbWxfZmluYWxfcmVsZWFzZSAoKSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWVtcHJvZl9zdGFydFxuZnVuY3Rpb24gY2FtbF9tZW1wcm9mX3N0YXJ0KHJhdGUsc3RhY2tfc2l6ZSx0cmFja2VyKXtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWVtcHJvZl9zdG9wXG5mdW5jdGlvbiBjYW1sX21lbXByb2Zfc3RvcCh1bml0KSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2V2ZW50bG9nX3Jlc3VtZVxuZnVuY3Rpb24gY2FtbF9ldmVudGxvZ19yZXN1bWUodW5pdCkgeyByZXR1cm4gMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2V2ZW50bG9nX3BhdXNlXG5mdW5jdGlvbiBjYW1sX2V2ZW50bG9nX3BhdXNlKHVuaXQpIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9nY19odWdlX2ZhbGxiYWNrX2NvdW50XG5mdW5jdGlvbiBjYW1sX2djX2h1Z2VfZmFsbGJhY2tfY291bnQodW5pdCkgeyByZXR1cm4gMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2djX21ham9yX3NsaWNlXG5mdW5jdGlvbiBjYW1sX2djX21ham9yX3NsaWNlKHdvcmspIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9nY19taW5vcl93b3Jkc1xuZnVuY3Rpb24gY2FtbF9nY19taW5vcl93b3Jkcyh1bml0KSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2V0X21pbm9yX2ZyZWVcbmZ1bmN0aW9uIGNhbWxfZ2V0X21pbm9yX2ZyZWUodW5pdCkgeyByZXR1cm4gMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dldF9tYWpvcl9idWNrZXRcbmZ1bmN0aW9uIGNhbWxfZ2V0X21ham9yX2J1Y2tldChuKSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2V0X21ham9yX2NyZWRpdFxuZnVuY3Rpb24gY2FtbF9nZXRfbWFqb3JfY3JlZGl0KG4pIHsgcmV0dXJuIDA7IH1cbiIsIi8vSW1wb3J0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vcGV0ZXJvbHNvbi9CaWdJbnRlZ2VyLmpzIzRlOTliMTViNzk1MTMzOGYxNjQ3MjgzNzdjOTA2Y2FhZTVhNzgyMDJcblxuLy9Qcm92aWRlczogYmlnSW50IGNvbnN0XG52YXIgYmlnSW50ID0gKGZ1bmN0aW9uICh1bmRlZmluZWQpIHtcbiAgICBcInVzZSBzdHJpY3RcIjtcblxuICAgIHZhciBCQVNFID0gMWU3LFxuICAgICAgICBMT0dfQkFTRSA9IDcsXG4gICAgICAgIE1BWF9JTlQgPSA5MDA3MTk5MjU0NzQwOTkyLFxuICAgICAgICBNQVhfSU5UX0FSUiA9IHNtYWxsVG9BcnJheShNQVhfSU5UKSxcbiAgICAgICAgREVGQVVMVF9BTFBIQUJFVCA9IFwiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6XCI7XG5cbiAgICB2YXIgQmlnSW50ID0gam9vX2dsb2JhbF9vYmplY3QuQmlnSW50O1xuXG4gICAgdmFyIHN1cHBvcnRzTmF0aXZlQmlnSW50ID0gdHlwZW9mIEJpZ0ludCA9PT0gXCJmdW5jdGlvblwiO1xuXG4gICAgZnVuY3Rpb24gSW50ZWdlcih2LCByYWRpeCwgYWxwaGFiZXQsIGNhc2VTZW5zaXRpdmUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2ID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gSW50ZWdlclswXTtcbiAgICAgICAgaWYgKHR5cGVvZiByYWRpeCAhPT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuICtyYWRpeCA9PT0gMTAgJiYgIWFscGhhYmV0ID8gcGFyc2VWYWx1ZSh2KSA6IHBhcnNlQmFzZSh2LCByYWRpeCwgYWxwaGFiZXQsIGNhc2VTZW5zaXRpdmUpO1xuICAgICAgICByZXR1cm4gcGFyc2VWYWx1ZSh2KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBCaWdJbnRlZ2VyKHZhbHVlLCBzaWduKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zaWduID0gc2lnbjtcbiAgICAgICAgdGhpcy5pc1NtYWxsID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2FtbF9jdXN0b20gPSAnX3onO1xuICAgIH1cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoSW50ZWdlci5wcm90b3R5cGUpO1xuXG4gICAgZnVuY3Rpb24gU21hbGxJbnRlZ2VyKHZhbHVlKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zaWduID0gdmFsdWUgPCAwO1xuICAgICAgICB0aGlzLmlzU21hbGwgPSB0cnVlO1xuICAgICAgICB0aGlzLmNhbWxfY3VzdG9tID0gJ196JztcbiAgICB9XG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoSW50ZWdlci5wcm90b3R5cGUpO1xuXG4gICAgZnVuY3Rpb24gTmF0aXZlQmlnSW50KHZhbHVlKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jYW1sX2N1c3RvbSA9ICdfeic7XG4gICAgfVxuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEludGVnZXIucHJvdG90eXBlKTtcblxuICAgIGZ1bmN0aW9uIGlzUHJlY2lzZShuKSB7XG4gICAgICAgIHJldHVybiAtTUFYX0lOVCA8IG4gJiYgbiA8IE1BWF9JTlQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc21hbGxUb0FycmF5KG4pIHsgLy8gRm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgZG9lc24ndCByZWZlcmVuY2UgQkFTRSwgbmVlZCB0byBjaGFuZ2UgdGhpcyBmdW5jdGlvbiBpZiBCQVNFIGNoYW5nZXNcbiAgICAgICAgaWYgKG4gPCAxZTcpXG4gICAgICAgICAgICByZXR1cm4gW25dO1xuICAgICAgICBpZiAobiA8IDFlMTQpXG4gICAgICAgICAgICByZXR1cm4gW24gJSAxZTcsIE1hdGguZmxvb3IobiAvIDFlNyldO1xuICAgICAgICByZXR1cm4gW24gJSAxZTcsIE1hdGguZmxvb3IobiAvIDFlNykgJSAxZTcsIE1hdGguZmxvb3IobiAvIDFlMTQpXTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhcnJheVRvU21hbGwoYXJyKSB7IC8vIElmIEJBU0UgY2hhbmdlcyB0aGlzIGZ1bmN0aW9uIG1heSBuZWVkIHRvIGNoYW5nZVxuICAgICAgICB0cmltKGFycik7XG4gICAgICAgIHZhciBsZW5ndGggPSBhcnIubGVuZ3RoO1xuICAgICAgICBpZiAobGVuZ3RoIDwgNCAmJiBjb21wYXJlQWJzKGFyciwgTUFYX0lOVF9BUlIpIDwgMCkge1xuICAgICAgICAgICAgc3dpdGNoIChsZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6IHJldHVybiAwO1xuICAgICAgICAgICAgICAgIGNhc2UgMTogcmV0dXJuIGFyclswXTtcbiAgICAgICAgICAgICAgICBjYXNlIDI6IHJldHVybiBhcnJbMF0gKyBhcnJbMV0gKiBCQVNFO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHJldHVybiBhcnJbMF0gKyAoYXJyWzFdICsgYXJyWzJdICogQkFTRSkgKiBCQVNFO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcnI7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdHJpbSh2KSB7XG4gICAgICAgIHZhciBpID0gdi5sZW5ndGg7XG4gICAgICAgIHdoaWxlICh2Wy0taV0gPT09IDApO1xuICAgICAgICB2Lmxlbmd0aCA9IGkgKyAxO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZUFycmF5KGxlbmd0aCkgeyAvLyBmdW5jdGlvbiBzaGFtZWxlc3NseSBzdG9sZW4gZnJvbSBZYWZmbGUncyBsaWJyYXJ5IGh0dHBzOi8vZ2l0aHViLmNvbS9ZYWZmbGUvQmlnSW50ZWdlclxuICAgICAgICB2YXIgeCA9IG5ldyBBcnJheShsZW5ndGgpO1xuICAgICAgICB2YXIgaSA9IC0xO1xuICAgICAgICB3aGlsZSAoKytpIDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICB4W2ldID0gMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0cnVuY2F0ZShuKSB7XG4gICAgICAgIGlmIChuID4gMCkgcmV0dXJuIE1hdGguZmxvb3Iobik7XG4gICAgICAgIHJldHVybiBNYXRoLmNlaWwobik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkKGEsIGIpIHsgLy8gYXNzdW1lcyBhIGFuZCBiIGFyZSBhcnJheXMgd2l0aCBhLmxlbmd0aCA+PSBiLmxlbmd0aFxuICAgICAgICB2YXIgbF9hID0gYS5sZW5ndGgsXG4gICAgICAgICAgICBsX2IgPSBiLmxlbmd0aCxcbiAgICAgICAgICAgIHIgPSBuZXcgQXJyYXkobF9hKSxcbiAgICAgICAgICAgIGNhcnJ5ID0gMCxcbiAgICAgICAgICAgIGJhc2UgPSBCQVNFLFxuICAgICAgICAgICAgc3VtLCBpO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbF9iOyBpKyspIHtcbiAgICAgICAgICAgIHN1bSA9IGFbaV0gKyBiW2ldICsgY2Fycnk7XG4gICAgICAgICAgICBjYXJyeSA9IHN1bSA+PSBiYXNlID8gMSA6IDA7XG4gICAgICAgICAgICByW2ldID0gc3VtIC0gY2FycnkgKiBiYXNlO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlIChpIDwgbF9hKSB7XG4gICAgICAgICAgICBzdW0gPSBhW2ldICsgY2Fycnk7XG4gICAgICAgICAgICBjYXJyeSA9IHN1bSA9PT0gYmFzZSA/IDEgOiAwO1xuICAgICAgICAgICAgcltpKytdID0gc3VtIC0gY2FycnkgKiBiYXNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjYXJyeSA+IDApIHIucHVzaChjYXJyeSk7XG4gICAgICAgIHJldHVybiByO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFkZEFueShhLCBiKSB7XG4gICAgICAgIGlmIChhLmxlbmd0aCA+PSBiLmxlbmd0aCkgcmV0dXJuIGFkZChhLCBiKTtcbiAgICAgICAgcmV0dXJuIGFkZChiLCBhKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZGRTbWFsbChhLCBjYXJyeSkgeyAvLyBhc3N1bWVzIGEgaXMgYXJyYXksIGNhcnJ5IGlzIG51bWJlciB3aXRoIDAgPD0gY2FycnkgPCBNQVhfSU5UXG4gICAgICAgIHZhciBsID0gYS5sZW5ndGgsXG4gICAgICAgICAgICByID0gbmV3IEFycmF5KGwpLFxuICAgICAgICAgICAgYmFzZSA9IEJBU0UsXG4gICAgICAgICAgICBzdW0sIGk7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICAgIHN1bSA9IGFbaV0gLSBiYXNlICsgY2Fycnk7XG4gICAgICAgICAgICBjYXJyeSA9IE1hdGguZmxvb3Ioc3VtIC8gYmFzZSk7XG4gICAgICAgICAgICByW2ldID0gc3VtIC0gY2FycnkgKiBiYXNlO1xuICAgICAgICAgICAgY2FycnkgKz0gMTtcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoY2FycnkgPiAwKSB7XG4gICAgICAgICAgICByW2krK10gPSBjYXJyeSAlIGJhc2U7XG4gICAgICAgICAgICBjYXJyeSA9IE1hdGguZmxvb3IoY2FycnkgLyBiYXNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcjtcbiAgICB9XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodikge1xuICAgICAgICB2YXIgbiA9IHBhcnNlVmFsdWUodik7XG4gICAgICAgIGlmICh0aGlzLnNpZ24gIT09IG4uc2lnbikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3VidHJhY3Qobi5uZWdhdGUoKSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGEgPSB0aGlzLnZhbHVlLCBiID0gbi52YWx1ZTtcbiAgICAgICAgaWYgKG4uaXNTbWFsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKGFkZFNtYWxsKGEsIE1hdGguYWJzKGIpKSwgdGhpcy5zaWduKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IEJpZ0ludGVnZXIoYWRkQW55KGEsIGIpLCB0aGlzLnNpZ24pO1xuICAgIH07XG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUucGx1cyA9IEJpZ0ludGVnZXIucHJvdG90eXBlLmFkZDtcblxuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgdmFyIG4gPSBwYXJzZVZhbHVlKHYpO1xuICAgICAgICB2YXIgYSA9IHRoaXMudmFsdWU7XG4gICAgICAgIGlmIChhIDwgMCAhPT0gbi5zaWduKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdWJ0cmFjdChuLm5lZ2F0ZSgpKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgYiA9IG4udmFsdWU7XG4gICAgICAgIGlmIChuLmlzU21hbGwpIHtcbiAgICAgICAgICAgIGlmIChpc1ByZWNpc2UoYSArIGIpKSByZXR1cm4gbmV3IFNtYWxsSW50ZWdlcihhICsgYik7XG4gICAgICAgICAgICBiID0gc21hbGxUb0FycmF5KE1hdGguYWJzKGIpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IEJpZ0ludGVnZXIoYWRkU21hbGwoYiwgTWF0aC5hYnMoYSkpLCBhIDwgMCk7XG4gICAgfTtcbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLnBsdXMgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLmFkZDtcblxuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVCaWdJbnQodGhpcy52YWx1ZSArIHBhcnNlVmFsdWUodikudmFsdWUpO1xuICAgIH1cbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLnBsdXMgPSBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmFkZDtcblxuICAgIGZ1bmN0aW9uIHN1YnRyYWN0KGEsIGIpIHsgLy8gYXNzdW1lcyBhIGFuZCBiIGFyZSBhcnJheXMgd2l0aCBhID49IGJcbiAgICAgICAgdmFyIGFfbCA9IGEubGVuZ3RoLFxuICAgICAgICAgICAgYl9sID0gYi5sZW5ndGgsXG4gICAgICAgICAgICByID0gbmV3IEFycmF5KGFfbCksXG4gICAgICAgICAgICBib3Jyb3cgPSAwLFxuICAgICAgICAgICAgYmFzZSA9IEJBU0UsXG4gICAgICAgICAgICBpLCBkaWZmZXJlbmNlO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYl9sOyBpKyspIHtcbiAgICAgICAgICAgIGRpZmZlcmVuY2UgPSBhW2ldIC0gYm9ycm93IC0gYltpXTtcbiAgICAgICAgICAgIGlmIChkaWZmZXJlbmNlIDwgMCkge1xuICAgICAgICAgICAgICAgIGRpZmZlcmVuY2UgKz0gYmFzZTtcbiAgICAgICAgICAgICAgICBib3Jyb3cgPSAxO1xuICAgICAgICAgICAgfSBlbHNlIGJvcnJvdyA9IDA7XG4gICAgICAgICAgICByW2ldID0gZGlmZmVyZW5jZTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGkgPSBiX2w7IGkgPCBhX2w7IGkrKykge1xuICAgICAgICAgICAgZGlmZmVyZW5jZSA9IGFbaV0gLSBib3Jyb3c7XG4gICAgICAgICAgICBpZiAoZGlmZmVyZW5jZSA8IDApIGRpZmZlcmVuY2UgKz0gYmFzZTtcbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJbaSsrXSA9IGRpZmZlcmVuY2U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByW2ldID0gZGlmZmVyZW5jZTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKDsgaSA8IGFfbDsgaSsrKSB7XG4gICAgICAgICAgICByW2ldID0gYVtpXTtcbiAgICAgICAgfVxuICAgICAgICB0cmltKHIpO1xuICAgICAgICByZXR1cm4gcjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzdWJ0cmFjdEFueShhLCBiLCBzaWduKSB7XG4gICAgICAgIHZhciB2YWx1ZTtcbiAgICAgICAgaWYgKGNvbXBhcmVBYnMoYSwgYikgPj0gMCkge1xuICAgICAgICAgICAgdmFsdWUgPSBzdWJ0cmFjdChhLCBiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhbHVlID0gc3VidHJhY3QoYiwgYSk7XG4gICAgICAgICAgICBzaWduID0gIXNpZ247XG4gICAgICAgIH1cbiAgICAgICAgdmFsdWUgPSBhcnJheVRvU21hbGwodmFsdWUpO1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICBpZiAoc2lnbikgdmFsdWUgPSAtdmFsdWU7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNtYWxsSW50ZWdlcih2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKHZhbHVlLCBzaWduKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzdWJ0cmFjdFNtYWxsKGEsIGIsIHNpZ24pIHsgLy8gYXNzdW1lcyBhIGlzIGFycmF5LCBiIGlzIG51bWJlciB3aXRoIDAgPD0gYiA8IE1BWF9JTlRcbiAgICAgICAgdmFyIGwgPSBhLmxlbmd0aCxcbiAgICAgICAgICAgIHIgPSBuZXcgQXJyYXkobCksXG4gICAgICAgICAgICBjYXJyeSA9IC1iLFxuICAgICAgICAgICAgYmFzZSA9IEJBU0UsXG4gICAgICAgICAgICBpLCBkaWZmZXJlbmNlO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgICBkaWZmZXJlbmNlID0gYVtpXSArIGNhcnJ5O1xuICAgICAgICAgICAgY2FycnkgPSBNYXRoLmZsb29yKGRpZmZlcmVuY2UgLyBiYXNlKTtcbiAgICAgICAgICAgIGRpZmZlcmVuY2UgJT0gYmFzZTtcbiAgICAgICAgICAgIHJbaV0gPSBkaWZmZXJlbmNlIDwgMCA/IGRpZmZlcmVuY2UgKyBiYXNlIDogZGlmZmVyZW5jZTtcbiAgICAgICAgfVxuICAgICAgICByID0gYXJyYXlUb1NtYWxsKHIpO1xuICAgICAgICBpZiAodHlwZW9mIHIgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGlmIChzaWduKSByID0gLXI7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNtYWxsSW50ZWdlcihyKTtcbiAgICAgICAgfSByZXR1cm4gbmV3IEJpZ0ludGVnZXIociwgc2lnbik7XG4gICAgfVxuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuc3VidHJhY3QgPSBmdW5jdGlvbiAodikge1xuICAgICAgICB2YXIgbiA9IHBhcnNlVmFsdWUodik7XG4gICAgICAgIGlmICh0aGlzLnNpZ24gIT09IG4uc2lnbikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRkKG4ubmVnYXRlKCkpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBhID0gdGhpcy52YWx1ZSwgYiA9IG4udmFsdWU7XG4gICAgICAgIGlmIChuLmlzU21hbGwpXG4gICAgICAgICAgICByZXR1cm4gc3VidHJhY3RTbWFsbChhLCBNYXRoLmFicyhiKSwgdGhpcy5zaWduKTtcbiAgICAgICAgcmV0dXJuIHN1YnRyYWN0QW55KGEsIGIsIHRoaXMuc2lnbik7XG4gICAgfTtcbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5taW51cyA9IEJpZ0ludGVnZXIucHJvdG90eXBlLnN1YnRyYWN0O1xuXG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5zdWJ0cmFjdCA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHZhciBuID0gcGFyc2VWYWx1ZSh2KTtcbiAgICAgICAgdmFyIGEgPSB0aGlzLnZhbHVlO1xuICAgICAgICBpZiAoYSA8IDAgIT09IG4uc2lnbikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRkKG4ubmVnYXRlKCkpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBiID0gbi52YWx1ZTtcbiAgICAgICAgaWYgKG4uaXNTbWFsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBTbWFsbEludGVnZXIoYSAtIGIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdWJ0cmFjdFNtYWxsKGIsIE1hdGguYWJzKGEpLCBhID49IDApO1xuICAgIH07XG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5taW51cyA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUuc3VidHJhY3Q7XG5cbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLnN1YnRyYWN0ID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVCaWdJbnQodGhpcy52YWx1ZSAtIHBhcnNlVmFsdWUodikudmFsdWUpO1xuICAgIH1cbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLm1pbnVzID0gTmF0aXZlQmlnSW50LnByb3RvdHlwZS5zdWJ0cmFjdDtcblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLm5lZ2F0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKHRoaXMudmFsdWUsICF0aGlzLnNpZ24pO1xuICAgIH07XG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5uZWdhdGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBzaWduID0gdGhpcy5zaWduO1xuICAgICAgICB2YXIgc21hbGwgPSBuZXcgU21hbGxJbnRlZ2VyKC10aGlzLnZhbHVlKTtcbiAgICAgICAgc21hbGwuc2lnbiA9ICFzaWduO1xuICAgICAgICByZXR1cm4gc21hbGw7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLm5lZ2F0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVCaWdJbnQoLXRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmFicyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKHRoaXMudmFsdWUsIGZhbHNlKTtcbiAgICB9O1xuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUuYWJzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gbmV3IFNtYWxsSW50ZWdlcihNYXRoLmFicyh0aGlzLnZhbHVlKSk7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmFicyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVCaWdJbnQodGhpcy52YWx1ZSA+PSAwID8gdGhpcy52YWx1ZSA6IC10aGlzLnZhbHVlKTtcbiAgICB9XG5cblxuICAgIGZ1bmN0aW9uIG11bHRpcGx5TG9uZyhhLCBiKSB7XG4gICAgICAgIHZhciBhX2wgPSBhLmxlbmd0aCxcbiAgICAgICAgICAgIGJfbCA9IGIubGVuZ3RoLFxuICAgICAgICAgICAgbCA9IGFfbCArIGJfbCxcbiAgICAgICAgICAgIHIgPSBjcmVhdGVBcnJheShsKSxcbiAgICAgICAgICAgIGJhc2UgPSBCQVNFLFxuICAgICAgICAgICAgcHJvZHVjdCwgY2FycnksIGksIGFfaSwgYl9qO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYV9sOyArK2kpIHtcbiAgICAgICAgICAgIGFfaSA9IGFbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGJfbDsgKytqKSB7XG4gICAgICAgICAgICAgICAgYl9qID0gYltqXTtcbiAgICAgICAgICAgICAgICBwcm9kdWN0ID0gYV9pICogYl9qICsgcltpICsgal07XG4gICAgICAgICAgICAgICAgY2FycnkgPSBNYXRoLmZsb29yKHByb2R1Y3QgLyBiYXNlKTtcbiAgICAgICAgICAgICAgICByW2kgKyBqXSA9IHByb2R1Y3QgLSBjYXJyeSAqIGJhc2U7XG4gICAgICAgICAgICAgICAgcltpICsgaiArIDFdICs9IGNhcnJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRyaW0ocik7XG4gICAgICAgIHJldHVybiByO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG11bHRpcGx5U21hbGwoYSwgYikgeyAvLyBhc3N1bWVzIGEgaXMgYXJyYXksIGIgaXMgbnVtYmVyIHdpdGggfGJ8IDwgQkFTRVxuICAgICAgICB2YXIgbCA9IGEubGVuZ3RoLFxuICAgICAgICAgICAgciA9IG5ldyBBcnJheShsKSxcbiAgICAgICAgICAgIGJhc2UgPSBCQVNFLFxuICAgICAgICAgICAgY2FycnkgPSAwLFxuICAgICAgICAgICAgcHJvZHVjdCwgaTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgcHJvZHVjdCA9IGFbaV0gKiBiICsgY2Fycnk7XG4gICAgICAgICAgICBjYXJyeSA9IE1hdGguZmxvb3IocHJvZHVjdCAvIGJhc2UpO1xuICAgICAgICAgICAgcltpXSA9IHByb2R1Y3QgLSBjYXJyeSAqIGJhc2U7XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKGNhcnJ5ID4gMCkge1xuICAgICAgICAgICAgcltpKytdID0gY2FycnkgJSBiYXNlO1xuICAgICAgICAgICAgY2FycnkgPSBNYXRoLmZsb29yKGNhcnJ5IC8gYmFzZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHI7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2hpZnRMZWZ0KHgsIG4pIHtcbiAgICAgICAgdmFyIHIgPSBbXTtcbiAgICAgICAgd2hpbGUgKG4tLSA+IDApIHIucHVzaCgwKTtcbiAgICAgICAgcmV0dXJuIHIuY29uY2F0KHgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG11bHRpcGx5S2FyYXRzdWJhKHgsIHkpIHtcbiAgICAgICAgdmFyIG4gPSBNYXRoLm1heCh4Lmxlbmd0aCwgeS5sZW5ndGgpO1xuXG4gICAgICAgIGlmIChuIDw9IDMwKSByZXR1cm4gbXVsdGlwbHlMb25nKHgsIHkpO1xuICAgICAgICBuID0gTWF0aC5jZWlsKG4gLyAyKTtcblxuICAgICAgICB2YXIgYiA9IHguc2xpY2UobiksXG4gICAgICAgICAgICBhID0geC5zbGljZSgwLCBuKSxcbiAgICAgICAgICAgIGQgPSB5LnNsaWNlKG4pLFxuICAgICAgICAgICAgYyA9IHkuc2xpY2UoMCwgbik7XG5cbiAgICAgICAgdmFyIGFjID0gbXVsdGlwbHlLYXJhdHN1YmEoYSwgYyksXG4gICAgICAgICAgICBiZCA9IG11bHRpcGx5S2FyYXRzdWJhKGIsIGQpLFxuICAgICAgICAgICAgYWJjZCA9IG11bHRpcGx5S2FyYXRzdWJhKGFkZEFueShhLCBiKSwgYWRkQW55KGMsIGQpKTtcblxuICAgICAgICB2YXIgcHJvZHVjdCA9IGFkZEFueShhZGRBbnkoYWMsIHNoaWZ0TGVmdChzdWJ0cmFjdChzdWJ0cmFjdChhYmNkLCBhYyksIGJkKSwgbikpLCBzaGlmdExlZnQoYmQsIDIgKiBuKSk7XG4gICAgICAgIHRyaW0ocHJvZHVjdCk7XG4gICAgICAgIHJldHVybiBwcm9kdWN0O1xuICAgIH1cblxuICAgIC8vIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb24gaXMgZGVyaXZlZCBmcm9tIGEgc3VyZmFjZSBmaXQgb2YgYSBncmFwaCBwbG90dGluZyB0aGUgcGVyZm9ybWFuY2UgZGlmZmVyZW5jZVxuICAgIC8vIGJldHdlZW4gbG9uZyBtdWx0aXBsaWNhdGlvbiBhbmQga2FyYXRzdWJhIG11bHRpcGxpY2F0aW9uIHZlcnN1cyB0aGUgbGVuZ3RocyBvZiB0aGUgdHdvIGFycmF5cy5cbiAgICBmdW5jdGlvbiB1c2VLYXJhdHN1YmEobDEsIGwyKSB7XG4gICAgICAgIHJldHVybiAtMC4wMTIgKiBsMSAtIDAuMDEyICogbDIgKyAwLjAwMDAxNSAqIGwxICogbDIgPiAwO1xuICAgIH1cblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLm11bHRpcGx5ID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgdmFyIG4gPSBwYXJzZVZhbHVlKHYpLFxuICAgICAgICAgICAgYSA9IHRoaXMudmFsdWUsIGIgPSBuLnZhbHVlLFxuICAgICAgICAgICAgc2lnbiA9IHRoaXMuc2lnbiAhPT0gbi5zaWduLFxuICAgICAgICAgICAgYWJzO1xuICAgICAgICBpZiAobi5pc1NtYWxsKSB7XG4gICAgICAgICAgICBpZiAoYiA9PT0gMCkgcmV0dXJuIEludGVnZXJbMF07XG4gICAgICAgICAgICBpZiAoYiA9PT0gMSkgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICBpZiAoYiA9PT0gLTEpIHJldHVybiB0aGlzLm5lZ2F0ZSgpO1xuICAgICAgICAgICAgYWJzID0gTWF0aC5hYnMoYik7XG4gICAgICAgICAgICBpZiAoYWJzIDwgQkFTRSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQmlnSW50ZWdlcihtdWx0aXBseVNtYWxsKGEsIGFicyksIHNpZ24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYiA9IHNtYWxsVG9BcnJheShhYnMpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1c2VLYXJhdHN1YmEoYS5sZW5ndGgsIGIubGVuZ3RoKSkgLy8gS2FyYXRzdWJhIGlzIG9ubHkgZmFzdGVyIGZvciBjZXJ0YWluIGFycmF5IHNpemVzXG4gICAgICAgICAgICByZXR1cm4gbmV3IEJpZ0ludGVnZXIobXVsdGlwbHlLYXJhdHN1YmEoYSwgYiksIHNpZ24pO1xuICAgICAgICByZXR1cm4gbmV3IEJpZ0ludGVnZXIobXVsdGlwbHlMb25nKGEsIGIpLCBzaWduKTtcbiAgICB9O1xuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUudGltZXMgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5tdWx0aXBseTtcblxuICAgIGZ1bmN0aW9uIG11bHRpcGx5U21hbGxBbmRBcnJheShhLCBiLCBzaWduKSB7IC8vIGEgPj0gMFxuICAgICAgICBpZiAoYSA8IEJBU0UpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQmlnSW50ZWdlcihtdWx0aXBseVNtYWxsKGIsIGEpLCBzaWduKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IEJpZ0ludGVnZXIobXVsdGlwbHlMb25nKGIsIHNtYWxsVG9BcnJheShhKSksIHNpZ24pO1xuICAgIH1cbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLl9tdWx0aXBseUJ5U21hbGwgPSBmdW5jdGlvbiAoYSkge1xuICAgICAgICBpZiAoaXNQcmVjaXNlKGEudmFsdWUgKiB0aGlzLnZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBTbWFsbEludGVnZXIoYS52YWx1ZSAqIHRoaXMudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtdWx0aXBseVNtYWxsQW5kQXJyYXkoTWF0aC5hYnMoYS52YWx1ZSksIHNtYWxsVG9BcnJheShNYXRoLmFicyh0aGlzLnZhbHVlKSksIHRoaXMuc2lnbiAhPT0gYS5zaWduKTtcbiAgICB9O1xuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLl9tdWx0aXBseUJ5U21hbGwgPSBmdW5jdGlvbiAoYSkge1xuICAgICAgICBpZiAoYS52YWx1ZSA9PT0gMCkgcmV0dXJuIEludGVnZXJbMF07XG4gICAgICAgIGlmIChhLnZhbHVlID09PSAxKSByZXR1cm4gdGhpcztcbiAgICAgICAgaWYgKGEudmFsdWUgPT09IC0xKSByZXR1cm4gdGhpcy5uZWdhdGUoKTtcbiAgICAgICAgcmV0dXJuIG11bHRpcGx5U21hbGxBbmRBcnJheShNYXRoLmFicyhhLnZhbHVlKSwgdGhpcy52YWx1ZSwgdGhpcy5zaWduICE9PSBhLnNpZ24pO1xuICAgIH07XG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5tdWx0aXBseSA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHJldHVybiBwYXJzZVZhbHVlKHYpLl9tdWx0aXBseUJ5U21hbGwodGhpcyk7XG4gICAgfTtcbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLnRpbWVzID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5tdWx0aXBseTtcblxuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUubXVsdGlwbHkgPSBmdW5jdGlvbiAodikge1xuICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZUJpZ0ludCh0aGlzLnZhbHVlICogcGFyc2VWYWx1ZSh2KS52YWx1ZSk7XG4gICAgfVxuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUudGltZXMgPSBOYXRpdmVCaWdJbnQucHJvdG90eXBlLm11bHRpcGx5O1xuXG4gICAgZnVuY3Rpb24gc3F1YXJlKGEpIHtcbiAgICAgICAgLy9jb25zb2xlLmFzc2VydCgyICogQkFTRSAqIEJBU0UgPCBNQVhfSU5UKTtcbiAgICAgICAgdmFyIGwgPSBhLmxlbmd0aCxcbiAgICAgICAgICAgIHIgPSBjcmVhdGVBcnJheShsICsgbCksXG4gICAgICAgICAgICBiYXNlID0gQkFTRSxcbiAgICAgICAgICAgIHByb2R1Y3QsIGNhcnJ5LCBpLCBhX2ksIGFfajtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgYV9pID0gYVtpXTtcbiAgICAgICAgICAgIGNhcnJ5ID0gMCAtIGFfaSAqIGFfaTtcbiAgICAgICAgICAgIGZvciAodmFyIGogPSBpOyBqIDwgbDsgaisrKSB7XG4gICAgICAgICAgICAgICAgYV9qID0gYVtqXTtcbiAgICAgICAgICAgICAgICBwcm9kdWN0ID0gMiAqIChhX2kgKiBhX2opICsgcltpICsgal0gKyBjYXJyeTtcbiAgICAgICAgICAgICAgICBjYXJyeSA9IE1hdGguZmxvb3IocHJvZHVjdCAvIGJhc2UpO1xuICAgICAgICAgICAgICAgIHJbaSArIGpdID0gcHJvZHVjdCAtIGNhcnJ5ICogYmFzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJbaSArIGxdID0gY2Fycnk7XG4gICAgICAgIH1cbiAgICAgICAgdHJpbShyKTtcbiAgICAgICAgcmV0dXJuIHI7XG4gICAgfVxuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuc3F1YXJlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gbmV3IEJpZ0ludGVnZXIoc3F1YXJlKHRoaXMudmFsdWUpLCBmYWxzZSk7XG4gICAgfTtcblxuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUuc3F1YXJlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLnZhbHVlICogdGhpcy52YWx1ZTtcbiAgICAgICAgaWYgKGlzUHJlY2lzZSh2YWx1ZSkpIHJldHVybiBuZXcgU21hbGxJbnRlZ2VyKHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKHNxdWFyZShzbWFsbFRvQXJyYXkoTWF0aC5hYnModGhpcy52YWx1ZSkpKSwgZmFsc2UpO1xuICAgIH07XG5cbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLnNxdWFyZSA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHJldHVybiBuZXcgTmF0aXZlQmlnSW50KHRoaXMudmFsdWUgKiB0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkaXZNb2QxKGEsIGIpIHsgLy8gTGVmdCBvdmVyIGZyb20gcHJldmlvdXMgdmVyc2lvbi4gUGVyZm9ybXMgZmFzdGVyIHRoYW4gZGl2TW9kMiBvbiBzbWFsbGVyIGlucHV0IHNpemVzLlxuICAgICAgICB2YXIgYV9sID0gYS5sZW5ndGgsXG4gICAgICAgICAgICBiX2wgPSBiLmxlbmd0aCxcbiAgICAgICAgICAgIGJhc2UgPSBCQVNFLFxuICAgICAgICAgICAgcmVzdWx0ID0gY3JlYXRlQXJyYXkoYi5sZW5ndGgpLFxuICAgICAgICAgICAgZGl2aXNvck1vc3RTaWduaWZpY2FudERpZ2l0ID0gYltiX2wgLSAxXSxcbiAgICAgICAgICAgIC8vIG5vcm1hbGl6YXRpb25cbiAgICAgICAgICAgIGxhbWJkYSA9IE1hdGguY2VpbChiYXNlIC8gKDIgKiBkaXZpc29yTW9zdFNpZ25pZmljYW50RGlnaXQpKSxcbiAgICAgICAgICAgIHJlbWFpbmRlciA9IG11bHRpcGx5U21hbGwoYSwgbGFtYmRhKSxcbiAgICAgICAgICAgIGRpdmlzb3IgPSBtdWx0aXBseVNtYWxsKGIsIGxhbWJkYSksXG4gICAgICAgICAgICBxdW90aWVudERpZ2l0LCBzaGlmdCwgY2FycnksIGJvcnJvdywgaSwgbCwgcTtcbiAgICAgICAgaWYgKHJlbWFpbmRlci5sZW5ndGggPD0gYV9sKSByZW1haW5kZXIucHVzaCgwKTtcbiAgICAgICAgZGl2aXNvci5wdXNoKDApO1xuICAgICAgICBkaXZpc29yTW9zdFNpZ25pZmljYW50RGlnaXQgPSBkaXZpc29yW2JfbCAtIDFdO1xuICAgICAgICBmb3IgKHNoaWZ0ID0gYV9sIC0gYl9sOyBzaGlmdCA+PSAwOyBzaGlmdC0tKSB7XG4gICAgICAgICAgICBxdW90aWVudERpZ2l0ID0gYmFzZSAtIDE7XG4gICAgICAgICAgICBpZiAocmVtYWluZGVyW3NoaWZ0ICsgYl9sXSAhPT0gZGl2aXNvck1vc3RTaWduaWZpY2FudERpZ2l0KSB7XG4gICAgICAgICAgICAgICAgcXVvdGllbnREaWdpdCA9IE1hdGguZmxvb3IoKHJlbWFpbmRlcltzaGlmdCArIGJfbF0gKiBiYXNlICsgcmVtYWluZGVyW3NoaWZ0ICsgYl9sIC0gMV0pIC8gZGl2aXNvck1vc3RTaWduaWZpY2FudERpZ2l0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHF1b3RpZW50RGlnaXQgPD0gYmFzZSAtIDFcbiAgICAgICAgICAgIGNhcnJ5ID0gMDtcbiAgICAgICAgICAgIGJvcnJvdyA9IDA7XG4gICAgICAgICAgICBsID0gZGl2aXNvci5sZW5ndGg7XG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY2FycnkgKz0gcXVvdGllbnREaWdpdCAqIGRpdmlzb3JbaV07XG4gICAgICAgICAgICAgICAgcSA9IE1hdGguZmxvb3IoY2FycnkgLyBiYXNlKTtcbiAgICAgICAgICAgICAgICBib3Jyb3cgKz0gcmVtYWluZGVyW3NoaWZ0ICsgaV0gLSAoY2FycnkgLSBxICogYmFzZSk7XG4gICAgICAgICAgICAgICAgY2FycnkgPSBxO1xuICAgICAgICAgICAgICAgIGlmIChib3Jyb3cgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbWFpbmRlcltzaGlmdCArIGldID0gYm9ycm93ICsgYmFzZTtcbiAgICAgICAgICAgICAgICAgICAgYm9ycm93ID0gLTE7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVtYWluZGVyW3NoaWZ0ICsgaV0gPSBib3Jyb3c7XG4gICAgICAgICAgICAgICAgICAgIGJvcnJvdyA9IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd2hpbGUgKGJvcnJvdyAhPT0gMCkge1xuICAgICAgICAgICAgICAgIHF1b3RpZW50RGlnaXQgLT0gMTtcbiAgICAgICAgICAgICAgICBjYXJyeSA9IDA7XG4gICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBjYXJyeSArPSByZW1haW5kZXJbc2hpZnQgKyBpXSAtIGJhc2UgKyBkaXZpc29yW2ldO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2FycnkgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZW1haW5kZXJbc2hpZnQgKyBpXSA9IGNhcnJ5ICsgYmFzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhcnJ5ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbWFpbmRlcltzaGlmdCArIGldID0gY2Fycnk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXJyeSA9IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYm9ycm93ICs9IGNhcnJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdWx0W3NoaWZ0XSA9IHF1b3RpZW50RGlnaXQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZGVub3JtYWxpemF0aW9uXG4gICAgICAgIHJlbWFpbmRlciA9IGRpdk1vZFNtYWxsKHJlbWFpbmRlciwgbGFtYmRhKVswXTtcbiAgICAgICAgcmV0dXJuIFthcnJheVRvU21hbGwocmVzdWx0KSwgYXJyYXlUb1NtYWxsKHJlbWFpbmRlcildO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRpdk1vZDIoYSwgYikgeyAvLyBJbXBsZW1lbnRhdGlvbiBpZGVhIHNoYW1lbGVzc2x5IHN0b2xlbiBmcm9tIFNpbGVudCBNYXR0J3MgbGlicmFyeSBodHRwOi8vc2lsZW50bWF0dC5jb20vYmlnaW50ZWdlci9cbiAgICAgICAgLy8gUGVyZm9ybXMgZmFzdGVyIHRoYW4gZGl2TW9kMSBvbiBsYXJnZXIgaW5wdXQgc2l6ZXMuXG4gICAgICAgIHZhciBhX2wgPSBhLmxlbmd0aCxcbiAgICAgICAgICAgIGJfbCA9IGIubGVuZ3RoLFxuICAgICAgICAgICAgcmVzdWx0ID0gW10sXG4gICAgICAgICAgICBwYXJ0ID0gW10sXG4gICAgICAgICAgICBiYXNlID0gQkFTRSxcbiAgICAgICAgICAgIGd1ZXNzLCB4bGVuLCBoaWdoeCwgaGlnaHksIGNoZWNrO1xuICAgICAgICB3aGlsZSAoYV9sKSB7XG4gICAgICAgICAgICBwYXJ0LnVuc2hpZnQoYVstLWFfbF0pO1xuICAgICAgICAgICAgdHJpbShwYXJ0KTtcbiAgICAgICAgICAgIGlmIChjb21wYXJlQWJzKHBhcnQsIGIpIDwgMCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKDApO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgeGxlbiA9IHBhcnQubGVuZ3RoO1xuICAgICAgICAgICAgaGlnaHggPSBwYXJ0W3hsZW4gLSAxXSAqIGJhc2UgKyBwYXJ0W3hsZW4gLSAyXTtcbiAgICAgICAgICAgIGhpZ2h5ID0gYltiX2wgLSAxXSAqIGJhc2UgKyBiW2JfbCAtIDJdO1xuICAgICAgICAgICAgaWYgKHhsZW4gPiBiX2wpIHtcbiAgICAgICAgICAgICAgICBoaWdoeCA9IChoaWdoeCArIDEpICogYmFzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGd1ZXNzID0gTWF0aC5jZWlsKGhpZ2h4IC8gaGlnaHkpO1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgIGNoZWNrID0gbXVsdGlwbHlTbWFsbChiLCBndWVzcyk7XG4gICAgICAgICAgICAgICAgaWYgKGNvbXBhcmVBYnMoY2hlY2ssIHBhcnQpIDw9IDApIGJyZWFrO1xuICAgICAgICAgICAgICAgIGd1ZXNzLS07XG4gICAgICAgICAgICB9IHdoaWxlIChndWVzcyk7XG4gICAgICAgICAgICByZXN1bHQucHVzaChndWVzcyk7XG4gICAgICAgICAgICBwYXJ0ID0gc3VidHJhY3QocGFydCwgY2hlY2spO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdC5yZXZlcnNlKCk7XG4gICAgICAgIHJldHVybiBbYXJyYXlUb1NtYWxsKHJlc3VsdCksIGFycmF5VG9TbWFsbChwYXJ0KV07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGl2TW9kU21hbGwodmFsdWUsIGxhbWJkYSkge1xuICAgICAgICB2YXIgbGVuZ3RoID0gdmFsdWUubGVuZ3RoLFxuICAgICAgICAgICAgcXVvdGllbnQgPSBjcmVhdGVBcnJheShsZW5ndGgpLFxuICAgICAgICAgICAgYmFzZSA9IEJBU0UsXG4gICAgICAgICAgICBpLCBxLCByZW1haW5kZXIsIGRpdmlzb3I7XG4gICAgICAgIHJlbWFpbmRlciA9IDA7XG4gICAgICAgIGZvciAoaSA9IGxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgICAgICBkaXZpc29yID0gcmVtYWluZGVyICogYmFzZSArIHZhbHVlW2ldO1xuICAgICAgICAgICAgcSA9IHRydW5jYXRlKGRpdmlzb3IgLyBsYW1iZGEpO1xuICAgICAgICAgICAgcmVtYWluZGVyID0gZGl2aXNvciAtIHEgKiBsYW1iZGE7XG4gICAgICAgICAgICBxdW90aWVudFtpXSA9IHEgfCAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbcXVvdGllbnQsIHJlbWFpbmRlciB8IDBdO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRpdk1vZEFueShzZWxmLCB2KSB7XG4gICAgICAgIHZhciB2YWx1ZSwgbiA9IHBhcnNlVmFsdWUodik7XG4gICAgICAgIGlmIChzdXBwb3J0c05hdGl2ZUJpZ0ludCkge1xuICAgICAgICAgICAgcmV0dXJuIFtuZXcgTmF0aXZlQmlnSW50KHNlbGYudmFsdWUgLyBuLnZhbHVlKSwgbmV3IE5hdGl2ZUJpZ0ludChzZWxmLnZhbHVlICUgbi52YWx1ZSldO1xuICAgICAgICB9XG4gICAgICAgIHZhciBhID0gc2VsZi52YWx1ZSwgYiA9IG4udmFsdWU7XG4gICAgICAgIHZhciBxdW90aWVudDtcbiAgICAgICAgaWYgKGIgPT09IDApIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBkaXZpZGUgYnkgemVyb1wiKTtcbiAgICAgICAgaWYgKHNlbGYuaXNTbWFsbCkge1xuICAgICAgICAgICAgaWYgKG4uaXNTbWFsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbbmV3IFNtYWxsSW50ZWdlcih0cnVuY2F0ZShhIC8gYikpLCBuZXcgU21hbGxJbnRlZ2VyKGEgJSBiKV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gW0ludGVnZXJbMF0sIHNlbGZdO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuLmlzU21hbGwpIHtcbiAgICAgICAgICAgIGlmIChiID09PSAxKSByZXR1cm4gW3NlbGYsIEludGVnZXJbMF1dO1xuICAgICAgICAgICAgaWYgKGIgPT0gLTEpIHJldHVybiBbc2VsZi5uZWdhdGUoKSwgSW50ZWdlclswXV07XG4gICAgICAgICAgICB2YXIgYWJzID0gTWF0aC5hYnMoYik7XG4gICAgICAgICAgICBpZiAoYWJzIDwgQkFTRSkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gZGl2TW9kU21hbGwoYSwgYWJzKTtcbiAgICAgICAgICAgICAgICBxdW90aWVudCA9IGFycmF5VG9TbWFsbCh2YWx1ZVswXSk7XG4gICAgICAgICAgICAgICAgdmFyIHJlbWFpbmRlciA9IHZhbHVlWzFdO1xuICAgICAgICAgICAgICAgIGlmIChzZWxmLnNpZ24pIHJlbWFpbmRlciA9IC1yZW1haW5kZXI7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBxdW90aWVudCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZi5zaWduICE9PSBuLnNpZ24pIHF1b3RpZW50ID0gLXF1b3RpZW50O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW25ldyBTbWFsbEludGVnZXIocXVvdGllbnQpLCBuZXcgU21hbGxJbnRlZ2VyKHJlbWFpbmRlcildO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gW25ldyBCaWdJbnRlZ2VyKHF1b3RpZW50LCBzZWxmLnNpZ24gIT09IG4uc2lnbiksIG5ldyBTbWFsbEludGVnZXIocmVtYWluZGVyKV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBiID0gc21hbGxUb0FycmF5KGFicyk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGNvbXBhcmlzb24gPSBjb21wYXJlQWJzKGEsIGIpO1xuICAgICAgICBpZiAoY29tcGFyaXNvbiA9PT0gLTEpIHJldHVybiBbSW50ZWdlclswXSwgc2VsZl07XG4gICAgICAgIGlmIChjb21wYXJpc29uID09PSAwKSByZXR1cm4gW0ludGVnZXJbc2VsZi5zaWduID09PSBuLnNpZ24gPyAxIDogLTFdLCBJbnRlZ2VyWzBdXTtcblxuICAgICAgICAvLyBkaXZNb2QxIGlzIGZhc3RlciBvbiBzbWFsbGVyIGlucHV0IHNpemVzXG4gICAgICAgIGlmIChhLmxlbmd0aCArIGIubGVuZ3RoIDw9IDIwMClcbiAgICAgICAgICAgIHZhbHVlID0gZGl2TW9kMShhLCBiKTtcbiAgICAgICAgZWxzZSB2YWx1ZSA9IGRpdk1vZDIoYSwgYik7XG5cbiAgICAgICAgcXVvdGllbnQgPSB2YWx1ZVswXTtcbiAgICAgICAgdmFyIHFTaWduID0gc2VsZi5zaWduICE9PSBuLnNpZ24sXG4gICAgICAgICAgICBtb2QgPSB2YWx1ZVsxXSxcbiAgICAgICAgICAgIG1TaWduID0gc2VsZi5zaWduO1xuICAgICAgICBpZiAodHlwZW9mIHF1b3RpZW50ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICBpZiAocVNpZ24pIHF1b3RpZW50ID0gLXF1b3RpZW50O1xuICAgICAgICAgICAgcXVvdGllbnQgPSBuZXcgU21hbGxJbnRlZ2VyKHF1b3RpZW50KTtcbiAgICAgICAgfSBlbHNlIHF1b3RpZW50ID0gbmV3IEJpZ0ludGVnZXIocXVvdGllbnQsIHFTaWduKTtcbiAgICAgICAgaWYgKHR5cGVvZiBtb2QgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGlmIChtU2lnbikgbW9kID0gLW1vZDtcbiAgICAgICAgICAgIG1vZCA9IG5ldyBTbWFsbEludGVnZXIobW9kKTtcbiAgICAgICAgfSBlbHNlIG1vZCA9IG5ldyBCaWdJbnRlZ2VyKG1vZCwgbVNpZ24pO1xuICAgICAgICByZXR1cm4gW3F1b3RpZW50LCBtb2RdO1xuICAgIH1cblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmRpdm1vZCA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBkaXZNb2RBbnkodGhpcywgdik7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBxdW90aWVudDogcmVzdWx0WzBdLFxuICAgICAgICAgICAgcmVtYWluZGVyOiByZXN1bHRbMV1cbiAgICAgICAgfTtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuZGl2bW9kID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5kaXZtb2QgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5kaXZtb2Q7XG5cblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmRpdmlkZSA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHJldHVybiBkaXZNb2RBbnkodGhpcywgdilbMF07XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLm92ZXIgPSBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmRpdmlkZSA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHJldHVybiBuZXcgTmF0aXZlQmlnSW50KHRoaXMudmFsdWUgLyBwYXJzZVZhbHVlKHYpLnZhbHVlKTtcbiAgICB9O1xuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUub3ZlciA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUuZGl2aWRlID0gQmlnSW50ZWdlci5wcm90b3R5cGUub3ZlciA9IEJpZ0ludGVnZXIucHJvdG90eXBlLmRpdmlkZTtcblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLm1vZCA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHJldHVybiBkaXZNb2RBbnkodGhpcywgdilbMV07XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLm1vZCA9IE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUucmVtYWluZGVyID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVCaWdJbnQodGhpcy52YWx1ZSAlIHBhcnNlVmFsdWUodikudmFsdWUpO1xuICAgIH07XG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5yZW1haW5kZXIgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLm1vZCA9IEJpZ0ludGVnZXIucHJvdG90eXBlLnJlbWFpbmRlciA9IEJpZ0ludGVnZXIucHJvdG90eXBlLm1vZDtcblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLnBvdyA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHZhciBuID0gcGFyc2VWYWx1ZSh2KSxcbiAgICAgICAgICAgIGEgPSB0aGlzLnZhbHVlLFxuICAgICAgICAgICAgYiA9IG4udmFsdWUsXG4gICAgICAgICAgICB2YWx1ZSwgeCwgeTtcbiAgICAgICAgaWYgKGIgPT09IDApIHJldHVybiBJbnRlZ2VyWzFdO1xuICAgICAgICBpZiAoYSA9PT0gMCkgcmV0dXJuIEludGVnZXJbMF07XG4gICAgICAgIGlmIChhID09PSAxKSByZXR1cm4gSW50ZWdlclsxXTtcbiAgICAgICAgaWYgKGEgPT09IC0xKSByZXR1cm4gbi5pc0V2ZW4oKSA/IEludGVnZXJbMV0gOiBJbnRlZ2VyWy0xXTtcbiAgICAgICAgaWYgKG4uc2lnbikge1xuICAgICAgICAgICAgcmV0dXJuIEludGVnZXJbMF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFuLmlzU21hbGwpIHRocm93IG5ldyBFcnJvcihcIlRoZSBleHBvbmVudCBcIiArIG4udG9TdHJpbmcoKSArIFwiIGlzIHRvbyBsYXJnZS5cIik7XG4gICAgICAgIGlmICh0aGlzLmlzU21hbGwpIHtcbiAgICAgICAgICAgIGlmIChpc1ByZWNpc2UodmFsdWUgPSBNYXRoLnBvdyhhLCBiKSkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTbWFsbEludGVnZXIodHJ1bmNhdGUodmFsdWUpKTtcbiAgICAgICAgfVxuICAgICAgICB4ID0gdGhpcztcbiAgICAgICAgeSA9IEludGVnZXJbMV07XG4gICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgICBpZiAoYiAmIDEgPT09IDEpIHtcbiAgICAgICAgICAgICAgICB5ID0geS50aW1lcyh4KTtcbiAgICAgICAgICAgICAgICAtLWI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoYiA9PT0gMCkgYnJlYWs7XG4gICAgICAgICAgICBiIC89IDI7XG4gICAgICAgICAgICB4ID0geC5zcXVhcmUoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geTtcbiAgICB9O1xuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUucG93ID0gQmlnSW50ZWdlci5wcm90b3R5cGUucG93O1xuXG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5wb3cgPSBmdW5jdGlvbiAodikge1xuICAgICAgICB2YXIgbiA9IHBhcnNlVmFsdWUodik7XG4gICAgICAgIHZhciBhID0gdGhpcy52YWx1ZSwgYiA9IG4udmFsdWU7XG4gICAgICAgIHZhciBfMCA9IEJpZ0ludCgwKSwgXzEgPSBCaWdJbnQoMSksIF8yID0gQmlnSW50KDIpO1xuICAgICAgICBpZiAoYiA9PT0gXzApIHJldHVybiBJbnRlZ2VyWzFdO1xuICAgICAgICBpZiAoYSA9PT0gXzApIHJldHVybiBJbnRlZ2VyWzBdO1xuICAgICAgICBpZiAoYSA9PT0gXzEpIHJldHVybiBJbnRlZ2VyWzFdO1xuICAgICAgICBpZiAoYSA9PT0gQmlnSW50KC0xKSkgcmV0dXJuIG4uaXNFdmVuKCkgPyBJbnRlZ2VyWzFdIDogSW50ZWdlclstMV07XG4gICAgICAgIGlmIChuLmlzTmVnYXRpdmUoKSkgcmV0dXJuIG5ldyBOYXRpdmVCaWdJbnQoXzApO1xuICAgICAgICB2YXIgeCA9IHRoaXM7XG4gICAgICAgIHZhciB5ID0gSW50ZWdlclsxXTtcbiAgICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgICAgIGlmICgoYiAmIF8xKSA9PT0gXzEpIHtcbiAgICAgICAgICAgICAgICB5ID0geS50aW1lcyh4KTtcbiAgICAgICAgICAgICAgICAtLWI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoYiA9PT0gXzApIGJyZWFrO1xuICAgICAgICAgICAgYiAvPSBfMjtcbiAgICAgICAgICAgIHggPSB4LnNxdWFyZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB5O1xuICAgIH1cblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLm1vZFBvdyA9IGZ1bmN0aW9uIChleHAsIG1vZCkge1xuICAgICAgICBleHAgPSBwYXJzZVZhbHVlKGV4cCk7XG4gICAgICAgIG1vZCA9IHBhcnNlVmFsdWUobW9kKTtcbiAgICAgICAgaWYgKG1vZC5pc1plcm8oKSkgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IHRha2UgbW9kUG93IHdpdGggbW9kdWx1cyAwXCIpO1xuICAgICAgICB2YXIgciA9IEludGVnZXJbMV0sXG4gICAgICAgICAgICBiYXNlID0gdGhpcy5tb2QobW9kKTtcbiAgICAgICAgaWYgKGV4cC5pc05lZ2F0aXZlKCkpIHtcbiAgICAgICAgICAgIGV4cCA9IGV4cC5tdWx0aXBseShJbnRlZ2VyWy0xXSk7XG4gICAgICAgICAgICBiYXNlID0gYmFzZS5tb2RJbnYobW9kKTtcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoZXhwLmlzUG9zaXRpdmUoKSkge1xuICAgICAgICAgICAgaWYgKGJhc2UuaXNaZXJvKCkpIHJldHVybiBJbnRlZ2VyWzBdO1xuICAgICAgICAgICAgaWYgKGV4cC5pc09kZCgpKSByID0gci5tdWx0aXBseShiYXNlKS5tb2QobW9kKTtcbiAgICAgICAgICAgIGV4cCA9IGV4cC5kaXZpZGUoMik7XG4gICAgICAgICAgICBiYXNlID0gYmFzZS5zcXVhcmUoKS5tb2QobW9kKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcjtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUubW9kUG93ID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5tb2RQb3cgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5tb2RQb3c7XG5cbiAgICBmdW5jdGlvbiBjb21wYXJlQWJzKGEsIGIpIHtcbiAgICAgICAgaWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGEubGVuZ3RoID4gYi5sZW5ndGggPyAxIDogLTE7XG4gICAgICAgIH1cbiAgICAgICAgZm9yICh2YXIgaSA9IGEubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGlmIChhW2ldICE9PSBiW2ldKSByZXR1cm4gYVtpXSA+IGJbaV0gPyAxIDogLTE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuY29tcGFyZUFicyA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHZhciBuID0gcGFyc2VWYWx1ZSh2KSxcbiAgICAgICAgICAgIGEgPSB0aGlzLnZhbHVlLFxuICAgICAgICAgICAgYiA9IG4udmFsdWU7XG4gICAgICAgIGlmIChuLmlzU21hbGwpIHJldHVybiAxO1xuICAgICAgICByZXR1cm4gY29tcGFyZUFicyhhLCBiKTtcbiAgICB9O1xuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUuY29tcGFyZUFicyA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHZhciBuID0gcGFyc2VWYWx1ZSh2KSxcbiAgICAgICAgICAgIGEgPSBNYXRoLmFicyh0aGlzLnZhbHVlKSxcbiAgICAgICAgICAgIGIgPSBuLnZhbHVlO1xuICAgICAgICBpZiAobi5pc1NtYWxsKSB7XG4gICAgICAgICAgICBiID0gTWF0aC5hYnMoYik7XG4gICAgICAgICAgICByZXR1cm4gYSA9PT0gYiA/IDAgOiBhID4gYiA/IDEgOiAtMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gLTE7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmNvbXBhcmVBYnMgPSBmdW5jdGlvbiAodikge1xuICAgICAgICB2YXIgYSA9IHRoaXMudmFsdWU7XG4gICAgICAgIHZhciBiID0gcGFyc2VWYWx1ZSh2KS52YWx1ZTtcbiAgICAgICAgYSA9IGEgPj0gMCA/IGEgOiAtYTtcbiAgICAgICAgYiA9IGIgPj0gMCA/IGIgOiAtYjtcbiAgICAgICAgcmV0dXJuIGEgPT09IGIgPyAwIDogYSA+IGIgPyAxIDogLTE7XG4gICAgfVxuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuY29tcGFyZSA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIC8vIFNlZSBkaXNjdXNzaW9uIGFib3V0IGNvbXBhcmlzb24gd2l0aCBJbmZpbml0eTpcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3BldGVyb2xzb24vQmlnSW50ZWdlci5qcy9pc3N1ZXMvNjFcbiAgICAgICAgaWYgKHYgPT09IEluZmluaXR5KSB7XG4gICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHYgPT09IC1JbmZpbml0eSkge1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbiA9IHBhcnNlVmFsdWUodiksXG4gICAgICAgICAgICBhID0gdGhpcy52YWx1ZSxcbiAgICAgICAgICAgIGIgPSBuLnZhbHVlO1xuICAgICAgICBpZiAodGhpcy5zaWduICE9PSBuLnNpZ24pIHtcbiAgICAgICAgICAgIHJldHVybiBuLnNpZ24gPyAxIDogLTE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG4uaXNTbWFsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2lnbiA/IC0xIDogMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29tcGFyZUFicyhhLCBiKSAqICh0aGlzLnNpZ24gPyAtMSA6IDEpO1xuICAgIH07XG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuY29tcGFyZVRvID0gQmlnSW50ZWdlci5wcm90b3R5cGUuY29tcGFyZTtcblxuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUuY29tcGFyZSA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIGlmICh2ID09PSBJbmZpbml0eSkge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2ID09PSAtSW5maW5pdHkpIHtcbiAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIG4gPSBwYXJzZVZhbHVlKHYpLFxuICAgICAgICAgICAgYSA9IHRoaXMudmFsdWUsXG4gICAgICAgICAgICBiID0gbi52YWx1ZTtcbiAgICAgICAgaWYgKG4uaXNTbWFsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGEgPT0gYiA/IDAgOiBhID4gYiA/IDEgOiAtMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYSA8IDAgIT09IG4uc2lnbikge1xuICAgICAgICAgICAgcmV0dXJuIGEgPCAwID8gLTEgOiAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhIDwgMCA/IDEgOiAtMTtcbiAgICB9O1xuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUuY29tcGFyZVRvID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5jb21wYXJlO1xuXG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5jb21wYXJlID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgaWYgKHYgPT09IEluZmluaXR5KSB7XG4gICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHYgPT09IC1JbmZpbml0eSkge1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGEgPSB0aGlzLnZhbHVlO1xuICAgICAgICB2YXIgYiA9IHBhcnNlVmFsdWUodikudmFsdWU7XG4gICAgICAgIHJldHVybiBhID09PSBiID8gMCA6IGEgPiBiID8gMSA6IC0xO1xuICAgIH1cbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmNvbXBhcmVUbyA9IE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuY29tcGFyZTtcblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmVxdWFscyA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUodikgPT09IDA7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmVxID0gTmF0aXZlQmlnSW50LnByb3RvdHlwZS5lcXVhbHMgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLmVxID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5lcXVhbHMgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5lcSA9IEJpZ0ludGVnZXIucHJvdG90eXBlLmVxdWFscztcblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLm5vdEVxdWFscyA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUodikgIT09IDA7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLm5lcSA9IE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUubm90RXF1YWxzID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5uZXEgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLm5vdEVxdWFscyA9IEJpZ0ludGVnZXIucHJvdG90eXBlLm5lcSA9IEJpZ0ludGVnZXIucHJvdG90eXBlLm5vdEVxdWFscztcblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmdyZWF0ZXIgPSBmdW5jdGlvbiAodikge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKHYpID4gMDtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuZ3QgPSBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmdyZWF0ZXIgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLmd0ID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5ncmVhdGVyID0gQmlnSW50ZWdlci5wcm90b3R5cGUuZ3QgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5ncmVhdGVyO1xuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUubGVzc2VyID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZSh2KSA8IDA7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmx0ID0gTmF0aXZlQmlnSW50LnByb3RvdHlwZS5sZXNzZXIgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLmx0ID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5sZXNzZXIgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5sdCA9IEJpZ0ludGVnZXIucHJvdG90eXBlLmxlc3NlcjtcblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmdyZWF0ZXJPckVxdWFscyA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUodikgPj0gMDtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuZ2VxID0gTmF0aXZlQmlnSW50LnByb3RvdHlwZS5ncmVhdGVyT3JFcXVhbHMgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLmdlcSA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUuZ3JlYXRlck9yRXF1YWxzID0gQmlnSW50ZWdlci5wcm90b3R5cGUuZ2VxID0gQmlnSW50ZWdlci5wcm90b3R5cGUuZ3JlYXRlck9yRXF1YWxzO1xuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUubGVzc2VyT3JFcXVhbHMgPSBmdW5jdGlvbiAodikge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKHYpIDw9IDA7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmxlcSA9IE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUubGVzc2VyT3JFcXVhbHMgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLmxlcSA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUubGVzc2VyT3JFcXVhbHMgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5sZXEgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5sZXNzZXJPckVxdWFscztcblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmlzRXZlbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnZhbHVlWzBdICYgMSkgPT09IDA7XG4gICAgfTtcbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLmlzRXZlbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnZhbHVlICYgMSkgPT09IDA7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmlzRXZlbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnZhbHVlICYgQmlnSW50KDEpKSA9PT0gQmlnSW50KDApO1xuICAgIH1cblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmlzT2RkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gKHRoaXMudmFsdWVbMF0gJiAxKSA9PT0gMTtcbiAgICB9O1xuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUuaXNPZGQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy52YWx1ZSAmIDEpID09PSAxO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5pc09kZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnZhbHVlICYgQmlnSW50KDEpKSA9PT0gQmlnSW50KDEpO1xuICAgIH1cblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmlzUG9zaXRpdmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy5zaWduO1xuICAgIH07XG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5pc1Bvc2l0aXZlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSA+IDA7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmlzUG9zaXRpdmUgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLmlzUG9zaXRpdmU7XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5pc05lZ2F0aXZlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zaWduO1xuICAgIH07XG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5pc05lZ2F0aXZlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSA8IDA7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmlzTmVnYXRpdmUgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLmlzTmVnYXRpdmU7XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5pc1VuaXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUuaXNVbml0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gTWF0aC5hYnModGhpcy52YWx1ZSkgPT09IDE7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmlzVW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWJzKCkudmFsdWUgPT09IEJpZ0ludCgxKTtcbiAgICB9XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5pc1plcm8gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUuaXNaZXJvID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSA9PT0gMDtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuaXNaZXJvID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSA9PT0gQmlnSW50KDApO1xuICAgIH1cblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmlzRGl2aXNpYmxlQnkgPSBmdW5jdGlvbiAodikge1xuICAgICAgICB2YXIgbiA9IHBhcnNlVmFsdWUodik7XG4gICAgICAgIGlmIChuLmlzWmVybygpKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmIChuLmlzVW5pdCgpKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgaWYgKG4uY29tcGFyZUFicygyKSA9PT0gMCkgcmV0dXJuIHRoaXMuaXNFdmVuKCk7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZChuKS5pc1plcm8oKTtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuaXNEaXZpc2libGVCeSA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUuaXNEaXZpc2libGVCeSA9IEJpZ0ludGVnZXIucHJvdG90eXBlLmlzRGl2aXNpYmxlQnk7XG5cbiAgICBmdW5jdGlvbiBpc0Jhc2ljUHJpbWUodikge1xuICAgICAgICB2YXIgbiA9IHYuYWJzKCk7XG4gICAgICAgIGlmIChuLmlzVW5pdCgpKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmIChuLmVxdWFscygyKSB8fCBuLmVxdWFscygzKSB8fCBuLmVxdWFscyg1KSkgcmV0dXJuIHRydWU7XG4gICAgICAgIGlmIChuLmlzRXZlbigpIHx8IG4uaXNEaXZpc2libGVCeSgzKSB8fCBuLmlzRGl2aXNpYmxlQnkoNSkpIHJldHVybiBmYWxzZTtcbiAgICAgICAgaWYgKG4ubGVzc2VyKDQ5KSkgcmV0dXJuIHRydWU7XG4gICAgICAgIC8vIHdlIGRvbid0IGtub3cgaWYgaXQncyBwcmltZTogbGV0IHRoZSBvdGhlciBmdW5jdGlvbnMgZmlndXJlIGl0IG91dFxuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1pbGxlclJhYmluVGVzdChuLCBhKSB7XG4gICAgICAgIHZhciBuUHJldiA9IG4ucHJldigpLFxuICAgICAgICAgICAgYiA9IG5QcmV2LFxuICAgICAgICAgICAgciA9IDAsXG4gICAgICAgICAgICBkLCB0LCBpLCB4O1xuICAgICAgICB3aGlsZSAoYi5pc0V2ZW4oKSkgYiA9IGIuZGl2aWRlKDIpLCByKys7XG4gICAgICAgIG5leHQ6IGZvciAoaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAobi5sZXNzZXIoYVtpXSkpIGNvbnRpbnVlO1xuICAgICAgICAgICAgeCA9IGJpZ0ludChhW2ldKS5tb2RQb3coYiwgbik7XG4gICAgICAgICAgICBpZiAoeC5pc1VuaXQoKSB8fCB4LmVxdWFscyhuUHJldikpIGNvbnRpbnVlO1xuICAgICAgICAgICAgZm9yIChkID0gciAtIDE7IGQgIT0gMDsgZC0tKSB7XG4gICAgICAgICAgICAgICAgeCA9IHguc3F1YXJlKCkubW9kKG4pO1xuICAgICAgICAgICAgICAgIGlmICh4LmlzVW5pdCgpKSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYgKHguZXF1YWxzKG5QcmV2KSkgY29udGludWUgbmV4dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBTZXQgXCJzdHJpY3RcIiB0byB0cnVlIHRvIGZvcmNlIEdSSC1zdXBwb3J0ZWQgbG93ZXIgYm91bmQgb2YgMipsb2coTileMlxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmlzUHJpbWUgPSBmdW5jdGlvbiAoc3RyaWN0KSB7XG4gICAgICAgIHZhciBpc1ByaW1lID0gaXNCYXNpY1ByaW1lKHRoaXMpO1xuICAgICAgICBpZiAoaXNQcmltZSAhPT0gdW5kZWZpbmVkKSByZXR1cm4gaXNQcmltZTtcbiAgICAgICAgdmFyIG4gPSB0aGlzLmFicygpO1xuICAgICAgICB2YXIgYml0cyA9IG4uYml0TGVuZ3RoKCk7XG4gICAgICAgIGlmIChiaXRzIDw9IDY0KVxuICAgICAgICAgICAgcmV0dXJuIG1pbGxlclJhYmluVGVzdChuLCBbMiwgMywgNSwgNywgMTEsIDEzLCAxNywgMTksIDIzLCAyOSwgMzEsIDM3XSk7XG4gICAgICAgIHZhciBsb2dOID0gTWF0aC5sb2coMikgKiBiaXRzLnRvSlNOdW1iZXIoKTtcbiAgICAgICAgdmFyIHQgPSBNYXRoLmNlaWwoKHN0cmljdCA9PT0gdHJ1ZSkgPyAoMiAqIE1hdGgucG93KGxvZ04sIDIpKSA6IGxvZ04pO1xuICAgICAgICBmb3IgKHZhciBhID0gW10sIGkgPSAwOyBpIDwgdDsgaSsrKSB7XG4gICAgICAgICAgICBhLnB1c2goYmlnSW50KGkgKyAyKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1pbGxlclJhYmluVGVzdChuLCBhKTtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuaXNQcmltZSA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUuaXNQcmltZSA9IEJpZ0ludGVnZXIucHJvdG90eXBlLmlzUHJpbWU7XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5pc1Byb2JhYmxlUHJpbWUgPSBmdW5jdGlvbiAoaXRlcmF0aW9ucykge1xuICAgICAgICB2YXIgaXNQcmltZSA9IGlzQmFzaWNQcmltZSh0aGlzKTtcbiAgICAgICAgaWYgKGlzUHJpbWUgIT09IHVuZGVmaW5lZCkgcmV0dXJuIGlzUHJpbWU7XG4gICAgICAgIHZhciBuID0gdGhpcy5hYnMoKTtcbiAgICAgICAgdmFyIHQgPSBpdGVyYXRpb25zID09PSB1bmRlZmluZWQgPyA1IDogaXRlcmF0aW9ucztcbiAgICAgICAgZm9yICh2YXIgYSA9IFtdLCBpID0gMDsgaSA8IHQ7IGkrKykge1xuICAgICAgICAgICAgYS5wdXNoKGJpZ0ludC5yYW5kQmV0d2VlbigyLCBuLm1pbnVzKDIpKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1pbGxlclJhYmluVGVzdChuLCBhKTtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuaXNQcm9iYWJsZVByaW1lID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5pc1Byb2JhYmxlUHJpbWUgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5pc1Byb2JhYmxlUHJpbWU7XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5tb2RJbnYgPSBmdW5jdGlvbiAobikge1xuICAgICAgICB2YXIgdCA9IGJpZ0ludC56ZXJvLCBuZXdUID0gYmlnSW50Lm9uZSwgciA9IHBhcnNlVmFsdWUobiksIG5ld1IgPSB0aGlzLmFicygpLCBxLCBsYXN0VCwgbGFzdFI7XG4gICAgICAgIHdoaWxlICghbmV3Ui5pc1plcm8oKSkge1xuICAgICAgICAgICAgcSA9IHIuZGl2aWRlKG5ld1IpO1xuICAgICAgICAgICAgbGFzdFQgPSB0O1xuICAgICAgICAgICAgbGFzdFIgPSByO1xuICAgICAgICAgICAgdCA9IG5ld1Q7XG4gICAgICAgICAgICByID0gbmV3UjtcbiAgICAgICAgICAgIG5ld1QgPSBsYXN0VC5zdWJ0cmFjdChxLm11bHRpcGx5KG5ld1QpKTtcbiAgICAgICAgICAgIG5ld1IgPSBsYXN0Ui5zdWJ0cmFjdChxLm11bHRpcGx5KG5ld1IpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXIuaXNVbml0KCkpIHRocm93IG5ldyBFcnJvcih0aGlzLnRvU3RyaW5nKCkgKyBcIiBhbmQgXCIgKyBuLnRvU3RyaW5nKCkgKyBcIiBhcmUgbm90IGNvLXByaW1lXCIpO1xuICAgICAgICBpZiAodC5jb21wYXJlKDApID09PSAtMSkge1xuICAgICAgICAgICAgdCA9IHQuYWRkKG4pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzTmVnYXRpdmUoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHQubmVnYXRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcblxuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUubW9kSW52ID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5tb2RJbnYgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5tb2RJbnY7XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5uZXh0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgICAgICBpZiAodGhpcy5zaWduKSB7XG4gICAgICAgICAgICByZXR1cm4gc3VidHJhY3RTbWFsbCh2YWx1ZSwgMSwgdGhpcy5zaWduKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IEJpZ0ludGVnZXIoYWRkU21hbGwodmFsdWUsIDEpLCB0aGlzLnNpZ24pO1xuICAgIH07XG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5uZXh0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgICAgICBpZiAodmFsdWUgKyAxIDwgTUFYX0lOVCkgcmV0dXJuIG5ldyBTbWFsbEludGVnZXIodmFsdWUgKyAxKTtcbiAgICAgICAgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKE1BWF9JTlRfQVJSLCBmYWxzZSk7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBuZXcgTmF0aXZlQmlnSW50KHRoaXMudmFsdWUgKyBCaWdJbnQoMSkpO1xuICAgIH1cblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLnByZXYgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICAgIGlmICh0aGlzLnNpZ24pIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQmlnSW50ZWdlcihhZGRTbWFsbCh2YWx1ZSwgMSksIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdWJ0cmFjdFNtYWxsKHZhbHVlLCAxLCB0aGlzLnNpZ24pO1xuICAgIH07XG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5wcmV2ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgICAgICBpZiAodmFsdWUgLSAxID4gLU1BWF9JTlQpIHJldHVybiBuZXcgU21hbGxJbnRlZ2VyKHZhbHVlIC0gMSk7XG4gICAgICAgIHJldHVybiBuZXcgQmlnSW50ZWdlcihNQVhfSU5UX0FSUiwgdHJ1ZSk7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLnByZXYgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBuZXcgTmF0aXZlQmlnSW50KHRoaXMudmFsdWUgLSBCaWdJbnQoMSkpO1xuICAgIH1cblxuICAgIHZhciBwb3dlcnNPZlR3byA9IFsxXTtcbiAgICB3aGlsZSAoMiAqIHBvd2Vyc09mVHdvW3Bvd2Vyc09mVHdvLmxlbmd0aCAtIDFdIDw9IEJBU0UpIHBvd2Vyc09mVHdvLnB1c2goMiAqIHBvd2Vyc09mVHdvW3Bvd2Vyc09mVHdvLmxlbmd0aCAtIDFdKTtcbiAgICB2YXIgcG93ZXJzMkxlbmd0aCA9IHBvd2Vyc09mVHdvLmxlbmd0aCwgaGlnaGVzdFBvd2VyMiA9IHBvd2Vyc09mVHdvW3Bvd2VyczJMZW5ndGggLSAxXTtcblxuICAgIGZ1bmN0aW9uIHNoaWZ0X2lzU21hbGwobikge1xuICAgICAgICByZXR1cm4gTWF0aC5hYnMobikgPD0gQkFTRTtcbiAgICB9XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5zaGlmdExlZnQgPSBmdW5jdGlvbiAodikge1xuICAgICAgICB2YXIgbiA9IHBhcnNlVmFsdWUodikudG9KU051bWJlcigpO1xuICAgICAgICBpZiAoIXNoaWZ0X2lzU21hbGwobikpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihTdHJpbmcobikgKyBcIiBpcyB0b28gbGFyZ2UgZm9yIHNoaWZ0aW5nLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobiA8IDApIHJldHVybiB0aGlzLnNoaWZ0UmlnaHQoLW4pO1xuICAgICAgICB2YXIgcmVzdWx0ID0gdGhpcztcbiAgICAgICAgaWYgKHJlc3VsdC5pc1plcm8oKSkgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgd2hpbGUgKG4gPj0gcG93ZXJzMkxlbmd0aCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0Lm11bHRpcGx5KGhpZ2hlc3RQb3dlcjIpO1xuICAgICAgICAgICAgbiAtPSBwb3dlcnMyTGVuZ3RoIC0gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0Lm11bHRpcGx5KHBvd2Vyc09mVHdvW25dKTtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuc2hpZnRMZWZ0ID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5zaGlmdExlZnQgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5zaGlmdExlZnQ7XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5zaGlmdFJpZ2h0ID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgdmFyIHJlbVF1bztcbiAgICAgICAgdmFyIG4gPSBwYXJzZVZhbHVlKHYpLnRvSlNOdW1iZXIoKTtcbiAgICAgICAgaWYgKCFzaGlmdF9pc1NtYWxsKG4pKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoU3RyaW5nKG4pICsgXCIgaXMgdG9vIGxhcmdlIGZvciBzaGlmdGluZy5cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG4gPCAwKSByZXR1cm4gdGhpcy5zaGlmdExlZnQoLW4pO1xuICAgICAgICB2YXIgcmVzdWx0ID0gdGhpcztcbiAgICAgICAgd2hpbGUgKG4gPj0gcG93ZXJzMkxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKHJlc3VsdC5pc1plcm8oKSB8fCAocmVzdWx0LmlzTmVnYXRpdmUoKSAmJiByZXN1bHQuaXNVbml0KCkpKSByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgcmVtUXVvID0gZGl2TW9kQW55KHJlc3VsdCwgaGlnaGVzdFBvd2VyMik7XG4gICAgICAgICAgICByZXN1bHQgPSByZW1RdW9bMV0uaXNOZWdhdGl2ZSgpID8gcmVtUXVvWzBdLnByZXYoKSA6IHJlbVF1b1swXTtcbiAgICAgICAgICAgIG4gLT0gcG93ZXJzMkxlbmd0aCAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgcmVtUXVvID0gZGl2TW9kQW55KHJlc3VsdCwgcG93ZXJzT2ZUd29bbl0pO1xuICAgICAgICByZXR1cm4gcmVtUXVvWzFdLmlzTmVnYXRpdmUoKSA/IHJlbVF1b1swXS5wcmV2KCkgOiByZW1RdW9bMF07XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLnNoaWZ0UmlnaHQgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLnNoaWZ0UmlnaHQgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5zaGlmdFJpZ2h0O1xuXG4gICAgZnVuY3Rpb24gYml0d2lzZSh4LCB5LCBmbikge1xuICAgICAgICB5ID0gcGFyc2VWYWx1ZSh5KTtcbiAgICAgICAgdmFyIHhTaWduID0geC5pc05lZ2F0aXZlKCksIHlTaWduID0geS5pc05lZ2F0aXZlKCk7XG4gICAgICAgIHZhciB4UmVtID0geFNpZ24gPyB4Lm5vdCgpIDogeCxcbiAgICAgICAgICAgIHlSZW0gPSB5U2lnbiA/IHkubm90KCkgOiB5O1xuICAgICAgICB2YXIgeERpZ2l0ID0gMCwgeURpZ2l0ID0gMDtcbiAgICAgICAgdmFyIHhEaXZNb2QgPSBudWxsLCB5RGl2TW9kID0gbnVsbDtcbiAgICAgICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgICAgICB3aGlsZSAoIXhSZW0uaXNaZXJvKCkgfHwgIXlSZW0uaXNaZXJvKCkpIHtcbiAgICAgICAgICAgIHhEaXZNb2QgPSBkaXZNb2RBbnkoeFJlbSwgaGlnaGVzdFBvd2VyMik7XG4gICAgICAgICAgICB4RGlnaXQgPSB4RGl2TW9kWzFdLnRvSlNOdW1iZXIoKTtcbiAgICAgICAgICAgIGlmICh4U2lnbikge1xuICAgICAgICAgICAgICAgIHhEaWdpdCA9IGhpZ2hlc3RQb3dlcjIgLSAxIC0geERpZ2l0OyAvLyB0d28ncyBjb21wbGVtZW50IGZvciBuZWdhdGl2ZSBudW1iZXJzXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHlEaXZNb2QgPSBkaXZNb2RBbnkoeVJlbSwgaGlnaGVzdFBvd2VyMik7XG4gICAgICAgICAgICB5RGlnaXQgPSB5RGl2TW9kWzFdLnRvSlNOdW1iZXIoKTtcbiAgICAgICAgICAgIGlmICh5U2lnbikge1xuICAgICAgICAgICAgICAgIHlEaWdpdCA9IGhpZ2hlc3RQb3dlcjIgLSAxIC0geURpZ2l0OyAvLyB0d28ncyBjb21wbGVtZW50IGZvciBuZWdhdGl2ZSBudW1iZXJzXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHhSZW0gPSB4RGl2TW9kWzBdO1xuICAgICAgICAgICAgeVJlbSA9IHlEaXZNb2RbMF07XG4gICAgICAgICAgICByZXN1bHQucHVzaChmbih4RGlnaXQsIHlEaWdpdCkpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBzdW0gPSBmbih4U2lnbiA/IDEgOiAwLCB5U2lnbiA/IDEgOiAwKSAhPT0gMCA/IGJpZ0ludCgtMSkgOiBiaWdJbnQoMCk7XG4gICAgICAgIGZvciAodmFyIGkgPSByZXN1bHQubGVuZ3RoIC0gMTsgaSA+PSAwOyBpIC09IDEpIHtcbiAgICAgICAgICAgIHN1bSA9IHN1bS5tdWx0aXBseShoaWdoZXN0UG93ZXIyKS5hZGQoYmlnSW50KHJlc3VsdFtpXSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdW07XG4gICAgfVxuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUubm90ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5uZWdhdGUoKS5wcmV2KCk7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLm5vdCA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUubm90ID0gQmlnSW50ZWdlci5wcm90b3R5cGUubm90O1xuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuYW5kID0gZnVuY3Rpb24gKG4pIHtcbiAgICAgICAgcmV0dXJuIGJpdHdpc2UodGhpcywgbiwgZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJuIGEgJiBiOyB9KTtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuYW5kID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5hbmQgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5hbmQ7XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5vciA9IGZ1bmN0aW9uIChuKSB7XG4gICAgICAgIHJldHVybiBiaXR3aXNlKHRoaXMsIG4sIGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBhIHwgYjsgfSk7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLm9yID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5vciA9IEJpZ0ludGVnZXIucHJvdG90eXBlLm9yO1xuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUueG9yID0gZnVuY3Rpb24gKG4pIHtcbiAgICAgICAgcmV0dXJuIGJpdHdpc2UodGhpcywgbiwgZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJuIGEgXiBiOyB9KTtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUueG9yID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS54b3IgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS54b3I7XG5cbiAgICB2YXIgTE9CTUFTS19JID0gMSA8PCAzMCwgTE9CTUFTS19CSSA9IChCQVNFICYgLUJBU0UpICogKEJBU0UgJiAtQkFTRSkgfCBMT0JNQVNLX0k7XG4gICAgZnVuY3Rpb24gcm91Z2hMT0IobikgeyAvLyBnZXQgbG93ZXN0T25lQml0IChyb3VnaClcbiAgICAgICAgLy8gU21hbGxJbnRlZ2VyOiByZXR1cm4gTWluKGxvd2VzdE9uZUJpdChuKSwgMSA8PCAzMClcbiAgICAgICAgLy8gQmlnSW50ZWdlcjogcmV0dXJuIE1pbihsb3dlc3RPbmVCaXQobiksIDEgPDwgMTQpIFtCQVNFPTFlN11cbiAgICAgICAgdmFyIHYgPSBuLnZhbHVlLFxuICAgICAgICAgICAgeCA9IHR5cGVvZiB2ID09PSBcIm51bWJlclwiID8gdiB8IExPQk1BU0tfSSA6XG4gICAgICAgICAgICAgICAgdHlwZW9mIHYgPT09IFwiYmlnaW50XCIgPyB2IHwgQmlnSW50KExPQk1BU0tfSSkgOlxuICAgICAgICAgICAgICAgICAgICB2WzBdICsgdlsxXSAqIEJBU0UgfCBMT0JNQVNLX0JJO1xuICAgICAgICByZXR1cm4geCAmIC14O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGludGVnZXJMb2dhcml0aG0odmFsdWUsIGJhc2UpIHtcbiAgICAgICAgaWYgKGJhc2UuY29tcGFyZVRvKHZhbHVlKSA8PSAwKSB7XG4gICAgICAgICAgICB2YXIgdG1wID0gaW50ZWdlckxvZ2FyaXRobSh2YWx1ZSwgYmFzZS5zcXVhcmUoYmFzZSkpO1xuICAgICAgICAgICAgdmFyIHAgPSB0bXAucDtcbiAgICAgICAgICAgIHZhciBlID0gdG1wLmU7XG4gICAgICAgICAgICB2YXIgdCA9IHAubXVsdGlwbHkoYmFzZSk7XG4gICAgICAgICAgICByZXR1cm4gdC5jb21wYXJlVG8odmFsdWUpIDw9IDAgPyB7IHA6IHQsIGU6IGUgKiAyICsgMSB9IDogeyBwOiBwLCBlOiBlICogMiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHA6IGJpZ0ludCgxKSwgZTogMCB9O1xuICAgIH1cblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmJpdExlbmd0aCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIG4gPSB0aGlzO1xuICAgICAgICBpZiAobi5jb21wYXJlVG8oYmlnSW50KDApKSA8IDApIHtcbiAgICAgICAgICAgIG4gPSBuLm5lZ2F0ZSgpLnN1YnRyYWN0KGJpZ0ludCgxKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG4uY29tcGFyZVRvKGJpZ0ludCgwKSkgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBiaWdJbnQoMCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJpZ0ludChpbnRlZ2VyTG9nYXJpdGhtKG4sIGJpZ0ludCgyKSkuZSkuYWRkKGJpZ0ludCgxKSk7XG4gICAgfVxuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuYml0TGVuZ3RoID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5iaXRMZW5ndGggPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5iaXRMZW5ndGg7XG5cbiAgICBmdW5jdGlvbiBtYXgoYSwgYikge1xuICAgICAgICBhID0gcGFyc2VWYWx1ZShhKTtcbiAgICAgICAgYiA9IHBhcnNlVmFsdWUoYik7XG4gICAgICAgIHJldHVybiBhLmdyZWF0ZXIoYikgPyBhIDogYjtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWluKGEsIGIpIHtcbiAgICAgICAgYSA9IHBhcnNlVmFsdWUoYSk7XG4gICAgICAgIGIgPSBwYXJzZVZhbHVlKGIpO1xuICAgICAgICByZXR1cm4gYS5sZXNzZXIoYikgPyBhIDogYjtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2NkKGEsIGIpIHtcbiAgICAgICAgYSA9IHBhcnNlVmFsdWUoYSkuYWJzKCk7XG4gICAgICAgIGIgPSBwYXJzZVZhbHVlKGIpLmFicygpO1xuICAgICAgICBpZiAoYS5lcXVhbHMoYikpIHJldHVybiBhO1xuICAgICAgICBpZiAoYS5pc1plcm8oKSkgcmV0dXJuIGI7XG4gICAgICAgIGlmIChiLmlzWmVybygpKSByZXR1cm4gYTtcbiAgICAgICAgdmFyIGMgPSBJbnRlZ2VyWzFdLCBkLCB0O1xuICAgICAgICB3aGlsZSAoYS5pc0V2ZW4oKSAmJiBiLmlzRXZlbigpKSB7XG4gICAgICAgICAgICBkID0gbWluKHJvdWdoTE9CKGEpLCByb3VnaExPQihiKSk7XG4gICAgICAgICAgICBhID0gYS5kaXZpZGUoZCk7XG4gICAgICAgICAgICBiID0gYi5kaXZpZGUoZCk7XG4gICAgICAgICAgICBjID0gYy5tdWx0aXBseShkKTtcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoYS5pc0V2ZW4oKSkge1xuICAgICAgICAgICAgYSA9IGEuZGl2aWRlKHJvdWdoTE9CKGEpKTtcbiAgICAgICAgfVxuICAgICAgICBkbyB7XG4gICAgICAgICAgICB3aGlsZSAoYi5pc0V2ZW4oKSkge1xuICAgICAgICAgICAgICAgIGIgPSBiLmRpdmlkZShyb3VnaExPQihiKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoYS5ncmVhdGVyKGIpKSB7XG4gICAgICAgICAgICAgICAgdCA9IGI7IGIgPSBhOyBhID0gdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGIgPSBiLnN1YnRyYWN0KGEpO1xuICAgICAgICB9IHdoaWxlICghYi5pc1plcm8oKSk7XG4gICAgICAgIHJldHVybiBjLmlzVW5pdCgpID8gYSA6IGEubXVsdGlwbHkoYyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxjbShhLCBiKSB7XG4gICAgICAgIGEgPSBwYXJzZVZhbHVlKGEpLmFicygpO1xuICAgICAgICBiID0gcGFyc2VWYWx1ZShiKS5hYnMoKTtcbiAgICAgICAgcmV0dXJuIGEuZGl2aWRlKGdjZChhLCBiKSkubXVsdGlwbHkoYik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJhbmRCZXR3ZWVuKGEsIGIpIHtcbiAgICAgICAgYSA9IHBhcnNlVmFsdWUoYSk7XG4gICAgICAgIGIgPSBwYXJzZVZhbHVlKGIpO1xuICAgICAgICB2YXIgbG93ID0gbWluKGEsIGIpLCBoaWdoID0gbWF4KGEsIGIpO1xuICAgICAgICB2YXIgcmFuZ2UgPSBoaWdoLnN1YnRyYWN0KGxvdykuYWRkKDEpO1xuICAgICAgICBpZiAocmFuZ2UuaXNTbWFsbCkgcmV0dXJuIGxvdy5hZGQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogcmFuZ2UpKTtcbiAgICAgICAgdmFyIGRpZ2l0cyA9IHRvQmFzZShyYW5nZSwgQkFTRSkudmFsdWU7XG4gICAgICAgIHZhciByZXN1bHQgPSBbXSwgcmVzdHJpY3RlZCA9IHRydWU7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGlnaXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgdG9wID0gcmVzdHJpY3RlZCA/IGRpZ2l0c1tpXSA6IEJBU0U7XG4gICAgICAgICAgICB2YXIgZGlnaXQgPSB0cnVuY2F0ZShNYXRoLnJhbmRvbSgpICogdG9wKTtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGRpZ2l0KTtcbiAgICAgICAgICAgIGlmIChkaWdpdCA8IHRvcCkgcmVzdHJpY3RlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsb3cuYWRkKEludGVnZXIuZnJvbUFycmF5KHJlc3VsdCwgQkFTRSwgZmFsc2UpKTtcbiAgICB9XG5cbiAgICB2YXIgcGFyc2VCYXNlID0gZnVuY3Rpb24gKHRleHQsIGJhc2UsIGFscGhhYmV0LCBjYXNlU2Vuc2l0aXZlKSB7XG4gICAgICAgIGFscGhhYmV0ID0gYWxwaGFiZXQgfHwgREVGQVVMVF9BTFBIQUJFVDtcbiAgICAgICAgdGV4dCA9IFN0cmluZyh0ZXh0KTtcbiAgICAgICAgaWYgKCFjYXNlU2Vuc2l0aXZlKSB7XG4gICAgICAgICAgICB0ZXh0ID0gdGV4dC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgYWxwaGFiZXQgPSBhbHBoYWJldC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBsZW5ndGggPSB0ZXh0Lmxlbmd0aDtcbiAgICAgICAgdmFyIGk7XG4gICAgICAgIHZhciBhYnNCYXNlID0gTWF0aC5hYnMoYmFzZSk7XG4gICAgICAgIHZhciBhbHBoYWJldFZhbHVlcyA9IHt9O1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYWxwaGFiZXQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGFscGhhYmV0VmFsdWVzW2FscGhhYmV0W2ldXSA9IGk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgYyA9IHRleHRbaV07XG4gICAgICAgICAgICBpZiAoYyA9PT0gXCItXCIpIGNvbnRpbnVlO1xuICAgICAgICAgICAgaWYgKGMgaW4gYWxwaGFiZXRWYWx1ZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoYWxwaGFiZXRWYWx1ZXNbY10gPj0gYWJzQmFzZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PT0gXCIxXCIgJiYgYWJzQmFzZSA9PT0gMSkgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihjICsgXCIgaXMgbm90IGEgdmFsaWQgZGlnaXQgaW4gYmFzZSBcIiArIGJhc2UgKyBcIi5cIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJhc2UgPSBwYXJzZVZhbHVlKGJhc2UpO1xuICAgICAgICB2YXIgZGlnaXRzID0gW107XG4gICAgICAgIHZhciBpc05lZ2F0aXZlID0gdGV4dFswXSA9PT0gXCItXCI7XG4gICAgICAgIGZvciAoaSA9IGlzTmVnYXRpdmUgPyAxIDogMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciBjID0gdGV4dFtpXTtcbiAgICAgICAgICAgIGlmIChjIGluIGFscGhhYmV0VmFsdWVzKSBkaWdpdHMucHVzaChwYXJzZVZhbHVlKGFscGhhYmV0VmFsdWVzW2NdKSk7XG4gICAgICAgICAgICBlbHNlIGlmIChjID09PSBcIjxcIikge1xuICAgICAgICAgICAgICAgIHZhciBzdGFydCA9IGk7XG4gICAgICAgICAgICAgICAgZG8geyBpKys7IH0gd2hpbGUgKHRleHRbaV0gIT09IFwiPlwiICYmIGkgPCB0ZXh0Lmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgZGlnaXRzLnB1c2gocGFyc2VWYWx1ZSh0ZXh0LnNsaWNlKHN0YXJ0ICsgMSwgaSkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgdGhyb3cgbmV3IEVycm9yKGMgKyBcIiBpcyBub3QgYSB2YWxpZCBjaGFyYWN0ZXJcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhcnNlQmFzZUZyb21BcnJheShkaWdpdHMsIGJhc2UsIGlzTmVnYXRpdmUpO1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiBwYXJzZUJhc2VGcm9tQXJyYXkoZGlnaXRzLCBiYXNlLCBpc05lZ2F0aXZlKSB7XG4gICAgICAgIHZhciB2YWwgPSBJbnRlZ2VyWzBdLCBwb3cgPSBJbnRlZ2VyWzFdLCBpO1xuICAgICAgICBmb3IgKGkgPSBkaWdpdHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIHZhbCA9IHZhbC5hZGQoZGlnaXRzW2ldLnRpbWVzKHBvdykpO1xuICAgICAgICAgICAgcG93ID0gcG93LnRpbWVzKGJhc2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc05lZ2F0aXZlID8gdmFsLm5lZ2F0ZSgpIDogdmFsO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHN0cmluZ2lmeShkaWdpdCwgYWxwaGFiZXQpIHtcbiAgICAgICAgYWxwaGFiZXQgPSBhbHBoYWJldCB8fCBERUZBVUxUX0FMUEhBQkVUO1xuICAgICAgICBpZiAoZGlnaXQgPCBhbHBoYWJldC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBhbHBoYWJldFtkaWdpdF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFwiPFwiICsgZGlnaXQgKyBcIj5cIjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b0Jhc2UobiwgYmFzZSkge1xuICAgICAgICBiYXNlID0gYmlnSW50KGJhc2UpO1xuICAgICAgICBpZiAoYmFzZS5pc1plcm8oKSkge1xuICAgICAgICAgICAgaWYgKG4uaXNaZXJvKCkpIHJldHVybiB7IHZhbHVlOiBbMF0sIGlzTmVnYXRpdmU6IGZhbHNlIH07XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgY29udmVydCBub256ZXJvIG51bWJlcnMgdG8gYmFzZSAwLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYmFzZS5lcXVhbHMoLTEpKSB7XG4gICAgICAgICAgICBpZiAobi5pc1plcm8oKSkgcmV0dXJuIHsgdmFsdWU6IFswXSwgaXNOZWdhdGl2ZTogZmFsc2UgfTtcbiAgICAgICAgICAgIGlmIChuLmlzTmVnYXRpdmUoKSlcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogW10uY29uY2F0LmFwcGx5KFtdLCBBcnJheS5hcHBseShudWxsLCBBcnJheSgtbi50b0pTTnVtYmVyKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgLm1hcChBcnJheS5wcm90b3R5cGUudmFsdWVPZiwgWzEsIDBdKVxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICBpc05lZ2F0aXZlOiBmYWxzZVxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHZhciBhcnIgPSBBcnJheS5hcHBseShudWxsLCBBcnJheShuLnRvSlNOdW1iZXIoKSAtIDEpKVxuICAgICAgICAgICAgICAgIC5tYXAoQXJyYXkucHJvdG90eXBlLnZhbHVlT2YsIFswLCAxXSk7XG4gICAgICAgICAgICBhcnIudW5zaGlmdChbMV0pO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogW10uY29uY2F0LmFwcGx5KFtdLCBhcnIpLFxuICAgICAgICAgICAgICAgIGlzTmVnYXRpdmU6IGZhbHNlXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIG5lZyA9IGZhbHNlO1xuICAgICAgICBpZiAobi5pc05lZ2F0aXZlKCkgJiYgYmFzZS5pc1Bvc2l0aXZlKCkpIHtcbiAgICAgICAgICAgIG5lZyA9IHRydWU7XG4gICAgICAgICAgICBuID0gbi5hYnMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYmFzZS5pc1VuaXQoKSkge1xuICAgICAgICAgICAgaWYgKG4uaXNaZXJvKCkpIHJldHVybiB7IHZhbHVlOiBbMF0sIGlzTmVnYXRpdmU6IGZhbHNlIH07XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IEFycmF5LmFwcGx5KG51bGwsIEFycmF5KG4udG9KU051bWJlcigpKSlcbiAgICAgICAgICAgICAgICAgICAgLm1hcChOdW1iZXIucHJvdG90eXBlLnZhbHVlT2YsIDEpLFxuICAgICAgICAgICAgICAgIGlzTmVnYXRpdmU6IG5lZ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgb3V0ID0gW107XG4gICAgICAgIHZhciBsZWZ0ID0gbiwgZGl2bW9kO1xuICAgICAgICB3aGlsZSAobGVmdC5pc05lZ2F0aXZlKCkgfHwgbGVmdC5jb21wYXJlQWJzKGJhc2UpID49IDApIHtcbiAgICAgICAgICAgIGRpdm1vZCA9IGxlZnQuZGl2bW9kKGJhc2UpO1xuICAgICAgICAgICAgbGVmdCA9IGRpdm1vZC5xdW90aWVudDtcbiAgICAgICAgICAgIHZhciBkaWdpdCA9IGRpdm1vZC5yZW1haW5kZXI7XG4gICAgICAgICAgICBpZiAoZGlnaXQuaXNOZWdhdGl2ZSgpKSB7XG4gICAgICAgICAgICAgICAgZGlnaXQgPSBiYXNlLm1pbnVzKGRpZ2l0KS5hYnMoKTtcbiAgICAgICAgICAgICAgICBsZWZ0ID0gbGVmdC5uZXh0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvdXQucHVzaChkaWdpdC50b0pTTnVtYmVyKCkpO1xuICAgICAgICB9XG4gICAgICAgIG91dC5wdXNoKGxlZnQudG9KU051bWJlcigpKTtcbiAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG91dC5yZXZlcnNlKCksIGlzTmVnYXRpdmU6IG5lZyB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvQmFzZVN0cmluZyhuLCBiYXNlLCBhbHBoYWJldCkge1xuICAgICAgICB2YXIgYXJyID0gdG9CYXNlKG4sIGJhc2UpO1xuICAgICAgICByZXR1cm4gKGFyci5pc05lZ2F0aXZlID8gXCItXCIgOiBcIlwiKSArIGFyci52YWx1ZS5tYXAoZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmdpZnkoeCwgYWxwaGFiZXQpO1xuICAgICAgICB9KS5qb2luKCcnKTtcbiAgICB9XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS50b0FycmF5ID0gZnVuY3Rpb24gKHJhZGl4KSB7XG4gICAgICAgIHJldHVybiB0b0Jhc2UodGhpcywgcmFkaXgpO1xuICAgIH07XG5cbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLnRvQXJyYXkgPSBmdW5jdGlvbiAocmFkaXgpIHtcbiAgICAgICAgcmV0dXJuIHRvQmFzZSh0aGlzLCByYWRpeCk7XG4gICAgfTtcblxuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUudG9BcnJheSA9IGZ1bmN0aW9uIChyYWRpeCkge1xuICAgICAgICByZXR1cm4gdG9CYXNlKHRoaXMsIHJhZGl4KTtcbiAgICB9O1xuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiAocmFkaXgsIGFscGhhYmV0KSB7XG4gICAgICAgIGlmIChyYWRpeCA9PT0gdW5kZWZpbmVkKSByYWRpeCA9IDEwO1xuICAgICAgICBpZiAocmFkaXggIT09IDEwKSByZXR1cm4gdG9CYXNlU3RyaW5nKHRoaXMsIHJhZGl4LCBhbHBoYWJldCk7XG4gICAgICAgIHZhciB2ID0gdGhpcy52YWx1ZSwgbCA9IHYubGVuZ3RoLCBzdHIgPSBTdHJpbmcodlstLWxdKSwgemVyb3MgPSBcIjAwMDAwMDBcIiwgZGlnaXQ7XG4gICAgICAgIHdoaWxlICgtLWwgPj0gMCkge1xuICAgICAgICAgICAgZGlnaXQgPSBTdHJpbmcodltsXSk7XG4gICAgICAgICAgICBzdHIgKz0gemVyb3Muc2xpY2UoZGlnaXQubGVuZ3RoKSArIGRpZ2l0O1xuICAgICAgICB9XG4gICAgICAgIHZhciBzaWduID0gdGhpcy5zaWduID8gXCItXCIgOiBcIlwiO1xuICAgICAgICByZXR1cm4gc2lnbiArIHN0cjtcbiAgICB9O1xuXG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uIChyYWRpeCwgYWxwaGFiZXQpIHtcbiAgICAgICAgaWYgKHJhZGl4ID09PSB1bmRlZmluZWQpIHJhZGl4ID0gMTA7XG4gICAgICAgIGlmIChyYWRpeCAhPSAxMCkgcmV0dXJuIHRvQmFzZVN0cmluZyh0aGlzLCByYWRpeCwgYWxwaGFiZXQpO1xuICAgICAgICByZXR1cm4gU3RyaW5nKHRoaXMudmFsdWUpO1xuICAgIH07XG5cbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLnRvU3RyaW5nID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS50b1N0cmluZztcblxuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUudG9KU09OID0gQmlnSW50ZWdlci5wcm90b3R5cGUudG9KU09OID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS50b0pTT04gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzLnRvU3RyaW5nKCk7IH1cblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLnZhbHVlT2YgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUludCh0aGlzLnRvU3RyaW5nKCksIDEwKTtcbiAgICB9O1xuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLnRvSlNOdW1iZXIgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS52YWx1ZU9mO1xuXG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS52YWx1ZU9mID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgICB9O1xuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUudG9KU051bWJlciA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUudmFsdWVPZjtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLnZhbHVlT2YgPSBOYXRpdmVCaWdJbnQucHJvdG90eXBlLnRvSlNOdW1iZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUludCh0aGlzLnRvU3RyaW5nKCksIDEwKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZVN0cmluZ1ZhbHVlKHYpIHtcbiAgICAgICAgaWYgKGlzUHJlY2lzZSgrdikpIHtcbiAgICAgICAgICAgIHZhciB4ID0gK3Y7XG4gICAgICAgICAgICBpZiAoeCA9PT0gdHJ1bmNhdGUoeCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1cHBvcnRzTmF0aXZlQmlnSW50ID8gbmV3IE5hdGl2ZUJpZ0ludChCaWdJbnQoeCkpIDogbmV3IFNtYWxsSW50ZWdlcih4KTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgaW50ZWdlcjogXCIgKyB2KTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgc2lnbiA9IHZbMF0gPT09IFwiLVwiO1xuICAgICAgICBpZiAoc2lnbikgdiA9IHYuc2xpY2UoMSk7XG4gICAgICAgIHZhciBzcGxpdCA9IHYuc3BsaXQoL2UvaSk7XG4gICAgICAgIGlmIChzcGxpdC5sZW5ndGggPiAyKSB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGludGVnZXI6IFwiICsgc3BsaXQuam9pbihcImVcIikpO1xuICAgICAgICBpZiAoc3BsaXQubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgICB2YXIgZXhwID0gc3BsaXRbMV07XG4gICAgICAgICAgICBpZiAoZXhwWzBdID09PSBcIitcIikgZXhwID0gZXhwLnNsaWNlKDEpO1xuICAgICAgICAgICAgZXhwID0gK2V4cDtcbiAgICAgICAgICAgIGlmIChleHAgIT09IHRydW5jYXRlKGV4cCkgfHwgIWlzUHJlY2lzZShleHApKSB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGludGVnZXI6IFwiICsgZXhwICsgXCIgaXMgbm90IGEgdmFsaWQgZXhwb25lbnQuXCIpO1xuICAgICAgICAgICAgdmFyIHRleHQgPSBzcGxpdFswXTtcbiAgICAgICAgICAgIHZhciBkZWNpbWFsUGxhY2UgPSB0ZXh0LmluZGV4T2YoXCIuXCIpO1xuICAgICAgICAgICAgaWYgKGRlY2ltYWxQbGFjZSA+PSAwKSB7XG4gICAgICAgICAgICAgICAgZXhwIC09IHRleHQubGVuZ3RoIC0gZGVjaW1hbFBsYWNlIC0gMTtcbiAgICAgICAgICAgICAgICB0ZXh0ID0gdGV4dC5zbGljZSgwLCBkZWNpbWFsUGxhY2UpICsgdGV4dC5zbGljZShkZWNpbWFsUGxhY2UgKyAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChleHAgPCAwKSB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgaW5jbHVkZSBuZWdhdGl2ZSBleHBvbmVudCBwYXJ0IGZvciBpbnRlZ2Vyc1wiKTtcbiAgICAgICAgICAgIHRleHQgKz0gKG5ldyBBcnJheShleHAgKyAxKSkuam9pbihcIjBcIik7XG4gICAgICAgICAgICB2ID0gdGV4dDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaXNWYWxpZCA9IC9eKFswLTldWzAtOV0qKSQvLnRlc3Qodik7XG4gICAgICAgIGlmICghaXNWYWxpZCkgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBpbnRlZ2VyOiBcIiArIHYpO1xuICAgICAgICBpZiAoc3VwcG9ydHNOYXRpdmVCaWdJbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTmF0aXZlQmlnSW50KEJpZ0ludChzaWduID8gXCItXCIgKyB2IDogdikpO1xuICAgICAgICB9XG4gICAgICAgIHZhciByID0gW10sIG1heCA9IHYubGVuZ3RoLCBsID0gTE9HX0JBU0UsIG1pbiA9IG1heCAtIGw7XG4gICAgICAgIHdoaWxlIChtYXggPiAwKSB7XG4gICAgICAgICAgICByLnB1c2goK3Yuc2xpY2UobWluLCBtYXgpKTtcbiAgICAgICAgICAgIG1pbiAtPSBsO1xuICAgICAgICAgICAgaWYgKG1pbiA8IDApIG1pbiA9IDA7XG4gICAgICAgICAgICBtYXggLT0gbDtcbiAgICAgICAgfVxuICAgICAgICB0cmltKHIpO1xuICAgICAgICByZXR1cm4gbmV3IEJpZ0ludGVnZXIociwgc2lnbik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VOdW1iZXJWYWx1ZSh2KSB7XG4gICAgICAgIGlmIChzdXBwb3J0c05hdGl2ZUJpZ0ludCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVCaWdJbnQoQmlnSW50KHYpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNQcmVjaXNlKHYpKSB7XG4gICAgICAgICAgICBpZiAodiAhPT0gdHJ1bmNhdGUodikpIHRocm93IG5ldyBFcnJvcih2ICsgXCIgaXMgbm90IGFuIGludGVnZXIuXCIpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBTbWFsbEludGVnZXIodik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhcnNlU3RyaW5nVmFsdWUodi50b1N0cmluZygpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZVZhbHVlKHYpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VOdW1iZXJWYWx1ZSh2KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHYgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZVN0cmluZ1ZhbHVlKHYpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdiA9PT0gXCJiaWdpbnRcIikge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVCaWdJbnQodik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHY7XG4gICAgfVxuICAgIC8vIFByZS1kZWZpbmUgbnVtYmVycyBpbiByYW5nZSBbLTk5OSw5OTldXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyBpKyspIHtcbiAgICAgICAgSW50ZWdlcltpXSA9IHBhcnNlVmFsdWUoaSk7XG4gICAgICAgIGlmIChpID4gMCkgSW50ZWdlclstaV0gPSBwYXJzZVZhbHVlKC1pKTtcbiAgICB9XG4gICAgLy8gQmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICBJbnRlZ2VyLm9uZSA9IEludGVnZXJbMV07XG4gICAgSW50ZWdlci56ZXJvID0gSW50ZWdlclswXTtcbiAgICBJbnRlZ2VyLm1pbnVzT25lID0gSW50ZWdlclstMV07XG4gICAgSW50ZWdlci5tYXggPSBtYXg7XG4gICAgSW50ZWdlci5taW4gPSBtaW47XG4gICAgSW50ZWdlci5nY2QgPSBnY2Q7XG4gICAgSW50ZWdlci5sY20gPSBsY207XG4gICAgSW50ZWdlci5pc0luc3RhbmNlID0gZnVuY3Rpb24gKHgpIHsgcmV0dXJuIHggaW5zdGFuY2VvZiBCaWdJbnRlZ2VyIHx8IHggaW5zdGFuY2VvZiBTbWFsbEludGVnZXIgfHwgeCBpbnN0YW5jZW9mIE5hdGl2ZUJpZ0ludDsgfTtcbiAgICBJbnRlZ2VyLnJhbmRCZXR3ZWVuID0gcmFuZEJldHdlZW47XG5cbiAgICBJbnRlZ2VyLmZyb21BcnJheSA9IGZ1bmN0aW9uIChkaWdpdHMsIGJhc2UsIGlzTmVnYXRpdmUpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlQmFzZUZyb21BcnJheShkaWdpdHMubWFwKHBhcnNlVmFsdWUpLCBwYXJzZVZhbHVlKGJhc2UgfHwgMTApLCBpc05lZ2F0aXZlKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIEludGVnZXI7XG59KSgpO1xuIiwiLyogZ2xvYmFsIGJpZ0ludCAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cblxuLy8gV2UgcmVwcmVzZW50IGEgW1oudF0gYXMgYSBqYXZhc2NyaXB0IDMyYml0IGludGVnZXJzIGlmIGl0IGZpdHMgb3IgYXMgYSBiaWdJbnQuXG5cbi8vUHJvdmlkZXM6IG1sX3pfbm9ybWFsaXplXG4vL1JlcXVpcmVzOiBiaWdJbnRcbmZ1bmN0aW9uIG1sX3pfbm9ybWFsaXplKHgpe1xuICB2YXIgeSA9IHgudG9KU051bWJlciAoKSB8IDA7XG4gIGlmKHguZXF1YWxzKGJpZ0ludCh5KSkpIHJldHVybiB5O1xuICByZXR1cm4geDtcbn1cblxuLy9Qcm92aWRlczogbWxfel9tdWxfb3ZlcmZsb3dzXG5mdW5jdGlvbiBtbF96X211bF9vdmVyZmxvd3MoeCx5KXtcbiAgdmFyIHogPSB4Knk7XG4gIHJldHVybiB6ICE9ICh6fDApO1xufVxuXG4vL2V4dGVybmFsIGluaXQ6IHVuaXQgLT4gdW5pdFxuLy9Qcm92aWRlczogbWxfel9pbml0XG4vL1JlcXVpcmVzOiBjYW1sX3phcml0aF9tYXJzaGFsLCBjYW1sX3phcml0aF91bm1hcnNoYWwsIGNhbWxfY3VzdG9tX29wcywgbWxfel9oYXNoLCBtbF96X2NvbXBhcmVcbmZ1bmN0aW9uIG1sX3pfaW5pdCh1bml0KSB7XG4gIGNhbWxfY3VzdG9tX29wc1snX3onXSA9XG4gICAgeyBzZXJpYWxpemUgOiBjYW1sX3phcml0aF9tYXJzaGFsLFxuICAgICAgZGVzZXJpYWxpemUgOiBjYW1sX3phcml0aF91bm1hcnNoYWwsXG4gICAgICBoYXNoIDogbWxfel9oYXNoLFxuICAgICAgY29tcGFyZSA6IG1sX3pfY29tcGFyZSxcbiAgICB9O1xuICByZXR1cm4gMCB9XG5cbi8vZXh0ZXJuYWwgbmVnOiB0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfbmVnIGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X25lZyh6MSkge1xuICByZXR1cm4gbWxfel9ub3JtYWxpemUoYmlnSW50KHoxKS5uZWdhdGUoKSk7XG59XG5cbi8vZXh0ZXJuYWwgYWRkOiB0IC0+IHQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9hZGQgY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfYWRkKHoxLCB6Mikge1xuICByZXR1cm4gbWxfel9ub3JtYWxpemUoYmlnSW50KHoxKS5hZGQoYmlnSW50KHoyKSkpO1xufVxuXG4vL2V4dGVybmFsIHN1YjogdCAtPiB0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfc3ViIGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X3N1Yih6MSwgejIpIHtcbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKGJpZ0ludCh6MSkuc3VidHJhY3QoYmlnSW50KHoyKSkpO1xufVxuXG4vL2V4dGVybmFsIG11bDogdCAtPiB0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfbXVsIGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X211bCh6MSwgejIpIHtcbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKGJpZ0ludCh6MSkubXVsdGlwbHkoYmlnSW50KHoyKSkpO1xufVxuXG4vL2V4dGVybmFsIGRpdjogdCAtPiB0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfZGl2XG4vL1JlcXVpcmVzOiBiaWdJbnQsIGNhbWxfcmFpc2VfemVyb19kaXZpZGUsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X2Rpdih6MSwgejIpIHtcbiAgejIgPSBiaWdJbnQoejIpXG4gIGlmKHoyLmVxdWFscyhiaWdJbnQoMCkpKSBjYW1sX3JhaXNlX3plcm9fZGl2aWRlKCk7XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShiaWdJbnQoejEpLmRpdmlkZShiaWdJbnQoejIpKSlcbn1cblxuLy9leHRlcm5hbCBjZGl2OiB0IC0+IHQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9jZGl2XG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfZGl2LCBtbF96X3NpZ24sIG1sX3pfYWRkXG5mdW5jdGlvbiBtbF96X2NkaXYoejEsIHoyKSB7XG4gIHZhciB6MV9wb3MgPSBtbF96X3NpZ24oejEpO1xuICB2YXIgejJfcG9zID0gbWxfel9zaWduKHoyKTtcbiAgaWYgKHoxX3BvcyAqIHoyX3BvcyA+IDApIC8qIE11bHRpcGxpY2F0aW9uIGlzIGxpa2UgYSBzaWdud2lzZSB4b3IgKi8ge1xuICAgIGlmICghYmlnSW50KHoxKS5tb2QoYmlnSW50KHoyKSkuZXF1YWxzKGJpZ0ludCgwKSkpIHtcbiAgICAgIHJldHVybiBtbF96X2FkZChtbF96X2Rpdih6MSwgejIpLCBiaWdJbnQoMSkpIDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1sX3pfZGl2KHoxLCB6Mik7XG59XG5cbi8vZXh0ZXJuYWwgZmRpdjogdCAtPiB0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfZmRpdlxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X2RpdiwgbWxfel9zaWduLCBtbF96X3N1YlxuZnVuY3Rpb24gbWxfel9mZGl2KHoxLCB6Mikge1xuICB2YXIgejFfcG9zID0gbWxfel9zaWduKHoxKTtcbiAgdmFyIHoyX3BvcyA9IG1sX3pfc2lnbih6Mik7XG4gIGlmICh6MV9wb3MgKiB6Ml9wb3MgPCAwKSAvKiBNdWx0aXBsaWNhdGlvbiBpcyBsaWtlIGEgc2lnbndpc2UgeG9yICovIHtcbiAgICBpZiAoIWJpZ0ludCh6MSkubW9kKGJpZ0ludCh6MikpLmVxdWFscyhiaWdJbnQoMCkpKSB7XG4gICAgICByZXR1cm4gbWxfel9zdWIobWxfel9kaXYoejEsIHoyKSwgYmlnSW50KDEpKSA7XG4gICAgfVxuICB9XG4gIHJldHVybiBtbF96X2Rpdih6MSwgejIpO1xufVxuXG4vL2V4dGVybmFsIHJlbTogdCAtPiB0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfcmVtXG4vL1JlcXVpcmVzOiBiaWdJbnQsIGNhbWxfcmFpc2VfemVyb19kaXZpZGUsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X3JlbSh6MSwgejIpIHtcbiAgejIgPSBiaWdJbnQoejIpO1xuICBpZiAoejIuZXF1YWxzKGJpZ0ludCgwKSkpIHtcbiAgICBjYW1sX3JhaXNlX3plcm9fZGl2aWRlKCk7XG4gIH1cbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKGJpZ0ludCh6MSkubW9kKHoyKSk7XG59XG5cbi8vZXh0ZXJuYWwgZGl2X3JlbTogdCAtPiB0IC0+ICh0ICogdClcbi8vUHJvdmlkZXM6IG1sX3pfZGl2X3JlbVxuLy9SZXF1aXJlczogbWxfel9kaXYsIG1sX3pfcmVtXG5mdW5jdGlvbiBtbF96X2Rpdl9yZW0oejEsIHoyKSB7XG4gIHJldHVybiBbMCwgbWxfel9kaXYoejEsejIpLCBtbF96X3JlbSh6MSwgejIpXVxufVxuLy9leHRlcm5hbCBzdWNjOiB0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfc3VjYyBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9zdWNjKHoxKSB7XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShiaWdJbnQoejEpLm5leHQoKSk7XG59XG5cbi8vZXh0ZXJuYWwgcHJlZDogdCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X3ByZWQgY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfcHJlZCh6MSkge1xuICByZXR1cm4gbWxfel9ub3JtYWxpemUoYmlnSW50KHoxKS5wcmV2KCkpO1xufVxuXG4vL2V4dGVybmFsIGFiczogdCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X2FicyBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9hYnMoejEpIHtcbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKGJpZ0ludCh6MSkuYWJzKCkpO1xufVxuXG4vL2V4dGVybmFsIGxvZ2FuZDogdCAtPiB0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfbG9nYW5kIGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X2xvZ2FuZCh6MSwgejIpIHtcbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKGJpZ0ludCh6MSkuYW5kKGJpZ0ludCh6MikpKTtcbn1cblxuLy9leHRlcm5hbCBsb2dvcjogdCAtPiB0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfbG9nb3IgY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfbG9nb3IoejEsIHoyKSB7XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShiaWdJbnQoejEpLm9yKGJpZ0ludCh6MikpKTtcbn1cblxuLy9leHRlcm5hbCBsb2d4b3I6IHQgLT4gdCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X2xvZ3hvciBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9sb2d4b3IoejEsIHoyKSB7XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShiaWdJbnQoejEpLnhvcihiaWdJbnQoejIpKSk7XG59XG5cbi8vZXh0ZXJuYWwgbG9nbm90OiB0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfbG9nbm90IGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnQsbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfbG9nbm90KHoxKSB7XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShiaWdJbnQoejEpLm5vdCgpKTtcbn1cblxuLy9leHRlcm5hbCBzaGlmdF9sZWZ0OiB0IC0+IGludCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X3NoaWZ0X2xlZnQgY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfc2hpZnRfbGVmdCh6MSwgYW10KSB7XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShiaWdJbnQoejEpLnNoaWZ0TGVmdChhbXQpKTtcbn1cblxuLy9leHRlcm5hbCBzaGlmdF9yaWdodDogdCAtPiBpbnQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9zaGlmdF9yaWdodCBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9zaGlmdF9yaWdodCh6MSwgYW10KSB7XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShiaWdJbnQoejEpLnNoaWZ0UmlnaHQoYW10KSk7XG59XG5cbi8vZXh0ZXJuYWwgc2hpZnRfcmlnaHRfdHJ1bmM6IHQgLT4gaW50IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfc2hpZnRfcmlnaHRfdHJ1bmMgY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9kaXZcbmZ1bmN0aW9uIG1sX3pfc2hpZnRfcmlnaHRfdHJ1bmMoejEsIHoyKSB7XG4gIHJldHVybiBtbF96X2RpdihiaWdJbnQoejEpLCBiaWdJbnQoMikucG93KHoyKSlcbn1cblxuLy9leHRlcm5hbCBvZl9pbnQzMjogaW50MzIgLT4gdFxuLy9Qcm92aWRlczogbWxfel9vZl9pbnQzMiBjb25zdFxuZnVuY3Rpb24gbWxfel9vZl9pbnQzMihpKSB7XG4gIHJldHVybiBpIHwgMDtcbn1cblxuLy9leHRlcm5hbCBvZl9uYXRpdmVpbnQ6IG5hdGl2ZWludCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X29mX25hdGl2ZWludCBjb25zdFxuZnVuY3Rpb24gbWxfel9vZl9uYXRpdmVpbnQoaSkge1xuICByZXR1cm4gaSB8IDA7XG59XG5cbi8vZXh0ZXJuYWwgb2ZfaW50NjQ6IGludDY0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfb2ZfaW50NjQgY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludCwgY2FtbF9pbnQ2NF9jb21wYXJlLCBjYW1sX2ludDY0X25lZywgbWxfel9ub3JtYWxpemVcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfY3JlYXRlX2xvX2hpLGNhbWxfaW50NjRfaGkzMixjYW1sX2ludDY0X2xvMzJcbmZ1bmN0aW9uIG1sX3pfb2ZfaW50NjQoaTY0KSB7XG4gIHZhciBuZWcgPSBmYWxzZTtcbiAgaWYoY2FtbF9pbnQ2NF9jb21wYXJlKGk2NCwgY2FtbF9pbnQ2NF9jcmVhdGVfbG9faGkoMCwwKSkgPCAwKSB7XG4gICAgbmVnID0gdHJ1ZTtcbiAgICBpNjQgPSBjYW1sX2ludDY0X25lZyhpNjQpXG4gIH1cbiAgdmFyIGxvID0gY2FtbF9pbnQ2NF9sbzMyKGk2NCkgPj4+IDA7XG4gIHZhciBoaSA9IGNhbWxfaW50NjRfaGkzMihpNjQpID4+PiAwO1xuICB2YXIgeCA9IGJpZ0ludChsbykuYWRkKGJpZ0ludChoaSkuc2hpZnRMZWZ0KDMyKSk7XG4gIGlmKG5lZykgeyB4ID0geC5uZWdhdGUoKSB9O1xuICByZXR1cm4gbWxfel9ub3JtYWxpemUoeClcbn1cblxuLy9leHRlcm5hbCBvZl9mbG9hdDogZmxvYXQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9vZl9mbG9hdFxuLy9SZXF1aXJlczogYmlnSW50LCBjYW1sX3JhaXNlX2NvbnN0YW50LCBjYW1sX25hbWVkX3ZhbHVlLCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9vZl9mbG9hdChmMSkge1xuICBpZihmMSA9PSBJbmZpbml0eSB8fCBmMSA9PSAtSW5maW5pdHkgfHwgZjEgIT0gZjEpXG4gICAgY2FtbF9yYWlzZV9jb25zdGFudChjYW1sX25hbWVkX3ZhbHVlKFwibWxfel9vdmVyZmxvd1wiKSk7XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShiaWdJbnQoZjE8MD9NYXRoLmNlaWwoZjEpOk1hdGguZmxvb3IoZjEpKSk7XG59XG5cbi8vZXh0ZXJuYWwgdG9faW50OiB0IC0+IGludFxuLy9Qcm92aWRlczogbWxfel90b19pbnRcbi8vUmVxdWlyZXM6IGJpZ0ludCwgY2FtbF9yYWlzZV9jb25zdGFudCwgY2FtbF9uYW1lZF92YWx1ZVxuZnVuY3Rpb24gbWxfel90b19pbnQoejEpIHtcbiAgaWYgKHoxID09ICh6MSB8IDApKSByZXR1cm4gejEgfCAwO1xuICBjYW1sX3JhaXNlX2NvbnN0YW50KGNhbWxfbmFtZWRfdmFsdWUoXCJtbF96X292ZXJmbG93XCIpKTtcbn1cblxuLy9leHRlcm5hbCB0b19pbnQzMjogdCAtPiBpbnQzMlxuLy9Qcm92aWRlczogbWxfel90b19pbnQzMlxuLy9SZXF1aXJlczogbWxfel90b19pbnRcbmZ1bmN0aW9uIG1sX3pfdG9faW50MzIoejEpIHsgcmV0dXJuIG1sX3pfdG9faW50KHoxKSB9XG5cbi8vZXh0ZXJuYWwgdG9faW50NjQ6IHQgLT4gaW50NjRcbi8vUHJvdmlkZXM6IG1sX3pfdG9faW50NjRcbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9maXRzX2ludDY0LCBjYW1sX3JhaXNlX2NvbnN0YW50LCBjYW1sX25hbWVkX3ZhbHVlXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2NyZWF0ZV9sb19oaVxuZnVuY3Rpb24gbWxfel90b19pbnQ2NCh6MSkge1xuICB6MSA9IGJpZ0ludCh6MSlcbiAgaWYoIW1sX3pfZml0c19pbnQ2NCh6MSkpIHtcbiAgICBjYW1sX3JhaXNlX2NvbnN0YW50KGNhbWxfbmFtZWRfdmFsdWUoXCJtbF96X292ZXJmbG93XCIpKTtcbiAgfVxuICB2YXIgbWFzayA9IGJpZ0ludCgweGZmZmZmZmZmKVxuICB2YXIgbG8gPSB6MS5hbmQobWFzaykudG9KU051bWJlcigpO1xuICB2YXIgaGkgPSB6MS5zaGlmdFJpZ2h0KDMyKS5hbmQobWFzaykudG9KU051bWJlcigpO1xuICB2YXIgeCA9IGNhbWxfaW50NjRfY3JlYXRlX2xvX2hpKGxvLCBoaSk7XG4gIHJldHVybiB4O1xufVxuXG4vL2V4dGVybmFsIHRlc3RiaXQ6IHQgLT4gYm9vbFxuLy9Qcm92aWRlczogbWxfel90ZXN0Yml0XG4vL1JlcXVpcmVzOiBiaWdJbnRcbmZ1bmN0aW9uIG1sX3pfdGVzdGJpdCh6LHBvcyl7XG4gIHogPSBiaWdJbnQoeik7XG4gIHJldHVybiAoei5zaGlmdFJpZ2h0KHBvcykuYW5kKGJpZ0ludCgxKSkudG9KU051bWJlcigpKXwwO1xufVxuXG4vL2V4dGVybmFsIHRvX25hdGl2ZWludDogdCAtPiBuYXRpdmVpbnRcbi8vUHJvdmlkZXM6IG1sX3pfdG9fbmF0aXZlaW50XG4vL1JlcXVpcmVzOiBtbF96X3RvX2ludFxuZnVuY3Rpb24gbWxfel90b19uYXRpdmVpbnQoejEpIHsgcmV0dXJuIG1sX3pfdG9faW50KHoxKSB9XG5cbi8vZXh0ZXJuYWwgZm9ybWF0OiBzdHJpbmcgLT4gdCAtPiBzdHJpbmdcbi8vUHJvdmlkZXM6IG1sX3pfZm9ybWF0IFxuLy9SZXF1aXJlczogYmlnSW50XG4vL1JlcXVpcmVzOiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nLCBjYW1sX2ZhaWx3aXRoLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzLCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9mb3JtYXQoZm10LCB6MSkge1xuICB6MSA9IGJpZ0ludCh6MSk7XG4gIHZhciBmbXQgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKGZtdCk7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9aYXJpdGgvYmxvYi9kMDU1NWQ0NTFjZTI5NWM0NDk3ZjI0YThkOTk5M2Y4ZGQyMzA5N2RmL3oubWxpcCNMMjk3XG4gIHZhciBiYXNlID0gMTA7XG4gIHZhciBjYXMgPSAwO1xuICB2YXIgd2lkdGggPSAwO1xuICB2YXIgYWx0ID0gMDtcbiAgdmFyIGRpciA9IDA7XG4gIHZhciBzaWduID0gJyc7XG4gIHZhciBwYWQgPSAnICc7XG4gIHZhciBpZHggPSAwO1xuICB2YXIgcHJlZml4PVwiXCI7XG4gIHdoaWxlKGZtdFtpZHhdID09ICclJykgaWR4Kys7XG4gIGZvcig7OyBpZHgrKykge1xuICAgIGlmKGZtdFtpZHhdID09ICcjJykgYWx0ID0gMTtcbiAgICBlbHNlIGlmIChmbXRbaWR4XSA9PSAnMCcpIHBhZCA9ICcwJztcbiAgICBlbHNlIGlmIChmbXRbaWR4XSA9PSAnLScpIGRpciA9IDE7XG4gICAgZWxzZSBpZiAoZm10W2lkeF0gPT0gJyAnIHx8IGZtdFtpZHhdID09ICcrJykgc2lnbiA9IGZtdFtpZHhdO1xuICAgIGVsc2UgYnJlYWs7XG4gIH1cbiAgaWYoejEubHQoYmlnSW50KDApKSl7c2lnbiA9ICctJzt6MSA9IHoxLm5lZ2F0ZSgpfTtcbiAgZm9yKDtmbXRbaWR4XT49JzAnICYmIGZtdFtpZHhdIDw9JzknO2lkeCsrKVxuICAgIHdpZHRoPTEwKndpZHRoICsgKCtmbXRbaWR4XSk7XG4gIHN3aXRjaChmbXRbaWR4XSl7XG4gIGNhc2UgJ2knOiBjYXNlICdkJzogY2FzZSAndSc6IGJyZWFrO1xuICBjYXNlICdiJzogYmFzZSA9IDI7IGlmKGFsdCkgcHJlZml4ID0gXCIwYlwiOyBicmVhaztcbiAgY2FzZSAnbyc6IGJhc2UgPSA4OyBpZihhbHQpIHByZWZpeCA9IFwiMG9cIjsgYnJlYWs7XG4gIGNhc2UgJ3gnOiBiYXNlID0gMTY7IGlmKGFsdCkgcHJlZml4ID0gXCIweFwiOyBicmVhaztcbiAgY2FzZSAnWCc6IGJhc2UgPSAxNjsgaWYoYWx0KSBwcmVmaXggPSBcIjBYXCI7IGNhcyA9IDE7IGJyZWFrO1xuICBkZWZhdWx0OlxuICAgIGNhbWxfZmFpbHdpdGgoXCJVbnN1cHBvcnRlZCBmb3JtYXQgJ1wiICsgZm10ICsgXCInXCIpO1xuICB9XG4gIGlmIChkaXIpIHBhZCA9ICcgJztcbiAgdmFyIHJlcyA9IHoxLnRvU3RyaW5nKGJhc2UpO1xuICBpZiAoY2FzID09PSAxKSB7XG4gICAgcmVzID0gcmVzLnRvVXBwZXJDYXNlKCk7XG4gIH1cbiAgdmFyIHNpemUgPSByZXMubGVuZ3RoO1xuICBpZiAocGFkID09ICcgJykge1xuICAgIGlmKGRpcikge1xuICAgICAgcmVzID0gc2lnbiArIHByZWZpeCArIHJlcztcbiAgICAgIGZvcig7cmVzLmxlbmd0aDx3aWR0aDspIHJlcyA9IHJlcyArIHBhZDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzID0gc2lnbiArIHByZWZpeCArIHJlcztcbiAgICAgIGZvcig7cmVzLmxlbmd0aDx3aWR0aDspIHJlcyA9IHBhZCArIHJlcztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIHByZSA9IHNpZ24gKyBwcmVmaXg7XG4gICAgZm9yKDtyZXMubGVuZ3RoK3ByZS5sZW5ndGg8d2lkdGg7KSByZXMgPSBwYWQgKyByZXM7XG4gICAgcmVzID0gcHJlICsgcmVzO1xuICB9XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHJlcyk7XG59XG5cbi8vUHJvdmlkZXM6IGpzb29fel9vZl9qc19zdHJpbmdfYmFzZVxuLy9SZXF1aXJlczogYmlnSW50LCBjYW1sX2ludmFsaWRfYXJndW1lbnQsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBqc29vX3pfb2ZfanNfc3RyaW5nX2Jhc2UoYmFzZSwgcykge1xuICBpZiAoYmFzZSA9PSAwKSB7IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9aYXJpdGgvYmxvYi9iOGRiYWY0OGE3OTI3MDYxZGY2OTlhZDdjZTY0MmJiNGYxZmU1MzA4L2NhbWxfei5jI0w1OThcbiAgICBiYXNlID0gMTA7XG4gICAgdmFyIHAgPSAwO1xuICAgIHZhciBzaWduID0gMTtcbiAgICBpZihzW3BdID09ICctJykgeyBzaWduID0gLTE7IHArKyB9XG4gICAgZWxzZSBpZiAoc1twXSA9PSAnKycpIHsgcCsrIH1cbiAgICBpZiAoc1twXSA9PSAnMCcpIHtcbiAgICAgIHAgKys7XG4gICAgICBpZiAocy5sZW5ndGggPT0gcCkge1xuICAgICAgICByZXR1cm4gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBiYyA9IHNbcF07XG4gICAgICAgIGlmIChiYyA9PSAnbycgfHwgYmMgPT0gJ08nKSB7XG4gICAgICAgICAgYmFzZSA9IDg7XG4gICAgICAgIH0gZWxzZSBpZiAoYmMgPT0gJ3gnIHx8IGJjID09ICdYJykge1xuICAgICAgICAgIGJhc2UgPSAxNjtcbiAgICAgICAgfSBlbHNlIGlmIChiYyA9PSAnYicgfHwgYmMgPT0gJ0InKSB7XG4gICAgICAgICAgYmFzZSA9IDI7XG4gICAgICAgIH0gXG4gICAgICAgIGlmKGJhc2UgIT0gMTApIHtcbiAgICAgICAgICBzID0gcy5zdWJzdHJpbmcocCsxKTtcbiAgICAgICAgICBpZihzaWduID09IC0xKSBzID0gXCItXCIgKyBzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICBmdW5jdGlvbiBkaWdpdChjb2RlKXtcbiAgICBpZihjb2RlID49IDQ4ICYmIGNvZGUgPD0gNTcpIHJldHVybiBjb2RlIC0gNDg7XG4gICAgaWYoY29kZSA+PSA5NyAmJiBjb2RlIDw9IDEwMikgcmV0dXJuIGNvZGUgLSA5NyArIDEwO1xuICAgIGlmKGNvZGUgPj0gNjUgJiYgY29kZSA8PSA3MCkgcmV0dXJuIGNvZGUgLSA2NSArIDEwO1xuICB9XG4gIHZhciBpID0gMDtcbiAgaWYgKHNbaV0gPT0gJysnKSB7XG4gICAgLy9yZW1vdmUgbGVhZGluZyAnKydcbiAgICBzID0gcy5zdWJzdHJpbmcoMSk7XG4gIH1cbiAgZWxzZSBpZihzW2ldID09ICctJykgaSsrO1xuICBpZihzW2ldID09ICdfJykgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiWi5vZl9zdWJzdHJpbmdfYmFzZTogaW52YWxpZCBkaWdpdFwiKTtcbiAgcyA9IHMucmVwbGFjZSgvXy9nLCcnKTtcbiAgLy9ub3JtYWxpemUgXCJlbXB0eVwiIG51bWJlcnNcbiAgaWYocyA9PSAnLScgfHwgcyA9PSAnJykgcyA9ICcwJztcbiAgZm9yKCA7IGkgPCBzLmxlbmd0aCA7IGkrKyl7XG4gICAgdmFyIGMgPSBkaWdpdChzLmNoYXJDb2RlQXQoaSkpO1xuICAgIGlmKGMgPT0gdW5kZWZpbmVkIHx8IGMgPj0gYmFzZSlcbiAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIloub2Zfc3Vic3RyaW5nX2Jhc2U6IGludmFsaWQgZGlnaXRcIik7XG4gIH1cbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKGJpZ0ludChzLCBiYXNlKSk7XG4gIFxufVxuXG4vL2V4dGVybmFsIG9mX3N1YnN0cmluZ19iYXNlOiBpbnQgLT4gc3RyaW5nIC0+IHBvczppbnQgLT4gbGVuOmludCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X29mX3N1YnN0cmluZ19iYXNlXG4vL1JlcXVpcmVzOiBqc29vX3pfb2ZfanNfc3RyaW5nX2Jhc2UsIGNhbWxfanNieXRlc19vZl9zdHJpbmcsIGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9tbF9zdHJpbmdfbGVuZ3RoXG5mdW5jdGlvbiBtbF96X29mX3N1YnN0cmluZ19iYXNlKGJhc2UsIHMsIHBvcywgbGVuKSB7XG4gIHMgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHMpO1xuICBpZihwb3MgIT0gMCB8fCBsZW4gIT0gcy5sZW5ndGgpIHtcbiAgICBpZiAocy5sZW5ndGggLSBwb3MgPCBsZW4pIHtcbiAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIloub2Zfc3Vic3RyaW5nX2Jhc2U6IGludmFsaWQgb2Zmc2V0IG9yIGxlbmd0aFwiKTtcbiAgICB9XG4gICAgcyA9IHMuc2xpY2UocG9zLHBvcytsZW4pO1xuICB9XG4gIHJldHVybiBqc29vX3pfb2ZfanNfc3RyaW5nX2Jhc2UoYmFzZSwgcyk7XG59XG5cbi8vZXh0ZXJuYWwgY29tcGFyZTogdCAtPiB0IC0+IGludFxuLy9Qcm92aWRlczogbWxfel9jb21wYXJlIGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnRcbmZ1bmN0aW9uIG1sX3pfY29tcGFyZSh6MSwgejIpIHtcbiAgcmV0dXJuIGJpZ0ludCh6MSkuY29tcGFyZShiaWdJbnQoejIpKTtcbn1cblxuLy9leHRlcm5hbCBlcXVhbDogdCAtPiB0IC0+IGJvb2xcbi8vUHJvdmlkZXM6IG1sX3pfZXF1YWwgY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludFxuZnVuY3Rpb24gbWxfel9lcXVhbCh6MSwgejIpIHtcbiAgcmV0dXJuIGJpZ0ludCh6MSkuZXF1YWxzKGJpZ0ludCh6MikpID8gMSA6IDA7XG59XG5cbi8vZXh0ZXJuYWwgc2lnbjogdCAtPiBpbnRcbi8vUHJvdmlkZXM6IG1sX3pfc2lnbiBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50XG5mdW5jdGlvbiBtbF96X3NpZ24oejEpIHtcbiAgcmV0dXJuIGJpZ0ludCh6MSkuY29tcGFyZShiaWdJbnQuemVybyk7XG59XG5cbi8vZXh0ZXJuYWwgZ2NkOiB0IC0+IHQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9nY2Rcbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfZ2NkKHoxLCB6Mikge1xuICByZXR1cm4gbWxfel9ub3JtYWxpemUoYmlnSW50LmdjZChiaWdJbnQoejEpLCBiaWdJbnQoejIpKS5hYnMoKSk7XG59XG5cbi8vZXh0ZXJuYWwgbnVtYml0czogdCAtPiBpbnRcbi8vUHJvdmlkZXM6IG1sX3pfbnVtYml0cyBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50XG5mdW5jdGlvbiBtbF96X251bWJpdHMoejEpIHtcbiAgejEgPSBiaWdJbnQoejEpLmFicygpO1xuICB2YXIgbiA9IDA7XG4gIHZhciB1cHBlckJvdW5kID0gYmlnSW50Lm9uZTtcbiAgd2hpbGUgKHVwcGVyQm91bmQubGVxKHoxKSkge1xuICAgIG4gKz0gMTtcbiAgICB1cHBlckJvdW5kID0gdXBwZXJCb3VuZC5tdWx0aXBseSgyKTtcbiAgfVxuICByZXR1cm4gbjsgLy8gMl57bi0xfSA8PSB8eHwgPCAyXm5cbn1cblxuLy9leHRlcm5hbCBmaXRzX2ludDogdCAtPiBib29sXG4vL1Byb3ZpZGVzOiBtbF96X2ZpdHNfaW50IGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnRcbmZ1bmN0aW9uIG1sX3pfZml0c19pbnQoejEpIHtcbiAgaWYoejEgPT0gKHoxIHwgMCkpIHJldHVybiAxO1xuICBlbHNlIHJldHVybiAwO1xufVxuXG4vL2V4dGVybmFsIGZpdHNfaW50MzI6IHQgLT4gYm9vbFxuLy9Qcm92aWRlczogbWxfel9maXRzX2ludDMyXG4vL1JlcXVpcmVzOiBtbF96X2ZpdHNfaW50XG5mdW5jdGlvbiBtbF96X2ZpdHNfaW50MzIoejEpIHtcbiAgcmV0dXJuIG1sX3pfZml0c19pbnQoejEpO1xufVxuXG4vL2V4dGVybmFsIGZpdHNfaW50NjQ6IHQgLT4gYm9vbFxuLy9Qcm92aWRlczogbWxfel9maXRzX2ludDY0XG4vL1JlcXVpcmVzOiBiaWdJbnRcbmZ1bmN0aW9uIG1sX3pfZml0c19pbnQ2NCh6MSkge1xuICB6MSA9IGJpZ0ludCh6MSlcbiAgaWYgKHoxLmNvbXBhcmUoYmlnSW50KFwiOTIyMzM3MjAzNjg1NDc3NTgwN1wiKSkgPD0gMCAmJiB6MS5jb21wYXJlKGJpZ0ludChcIi05MjIzMzcyMDM2ODU0Nzc1ODA4XCIpKSA+PSAwKVxuICAgIHJldHVybiAxXG4gIGVsc2VcbiAgICByZXR1cm4gMFxufVxuXG4vL2V4dGVybmFsIGZpdHNfbmF0aXZlaW50OiB0IC0+IGJvb2xcbi8vUHJvdmlkZXM6IG1sX3pfZml0c19uYXRpdmVpbnRcbi8vUmVxdWlyZXM6IG1sX3pfZml0c19pbnRcbmZ1bmN0aW9uIG1sX3pfZml0c19uYXRpdmVpbnQoejEpIHtcbiAgcmV0dXJuIG1sX3pfZml0c19pbnQoejEpO1xufVxuXG4vL2V4dGVybmFsIHBvd206IHQgLT4gdCAtPiB0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfcG93bVxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X25vcm1hbGl6ZSwgbWxfel9pbnZlcnQsIGNhbWxfcmFpc2VfemVyb19kaXZpZGVcbmZ1bmN0aW9uIG1sX3pfcG93bSh6MSwgejIsIHozKSB7XG4gIHZhciB6ZXJvID0gYmlnSW50KDApO1xuICB2YXIgb25lID0gYmlnSW50KDEpO1xuICB6MSA9IGJpZ0ludCh6MSk7XG4gIHoyID0gYmlnSW50KHoyKTtcbiAgejMgPSBiaWdJbnQoejMpO1xuICBpZih6My5lcXVhbHMoemVybykpIGNhbWxfcmFpc2VfemVyb19kaXZpZGUoKTtcbiAgaWYoejMuYWJzKCkuZXF1YWxzKG9uZSkpIHJldHVybiAwO1xuICBpZih6Mi5lcXVhbHMoemVybykpIHJldHVybiAxO1xuICBpZih6Mi5sdCgwKSkge1xuICAgIHZhciBpbnYgPSBiaWdJbnQobWxfel9pbnZlcnQoejEsIHozKSk7XG4gICAgdmFyIHIgPSBpbnYubW9kUG93KHoyLm5lZ2F0ZSgpLCB6Myk7XG4gICAgaWYoci5sdCh6ZXJvKSkgciA9IHIuYWRkKHozLmFicygpKTtcbiAgICByZXR1cm4gbWxfel9ub3JtYWxpemUocik7XG4gIH0gZWxzZSB7XG4gICAgdmFyIHIgPSBiaWdJbnQoejEpLm1vZFBvdyh6MiwgejMpO1xuICAgIGlmKHIubHQoemVybykpIHIgPSByLmFkZCh6My5hYnMoKSk7XG4gICAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKHIpO1xuICB9XG59XG5cbi8vZXh0ZXJuYWwgcG93bjogdCAtPiB0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfcG93XG4vL1JlcXVpcmVzOiBiaWdJbnQsIGNhbWxfZmFpbHdpdGgsIG1sX3pfbm9ybWFsaXplLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIG1sX3pfcG93KHoxLCBpMSkge1xuICBpMSA9IGJpZ0ludChpMSk7XG4gIGlmIChpMS5sdChiaWdJbnQoMCkpKSB7XG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiWi5wb3c6IGV4cG9uZW50IG11c3QgYmUgbm9ubmVnYXRpdmVcIik7XG4gIH1cbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKGJpZ0ludCh6MSkucG93KGkxKSk7XG59XG5cbi8vZXh0ZXJuYWwgaGFzaDogdCAtPiBpbnRcbi8vUHJvdmlkZXM6IG1sX3pfaGFzaCBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50LCBjYW1sX2hhc2hfbWl4X2ludFxuZnVuY3Rpb24gbWxfel9oYXNoKHoxKSB7XG4gIHZhciBhID0gYmlnSW50KHoxKS50b0FycmF5KE1hdGgucG93KDIsIDMyKSk7XG4gIHZhciBhY2MgPSAwO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGEudmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICBhY2MgPSBjYW1sX2hhc2hfbWl4X2ludChhY2MsIGEudmFsdWVbaV0pO1xuICB9XG4gIGlmKGEudmFsdWUubGVuZ3RoICUgMiAhPSAwKSB7XG4gICAgYWNjID0gY2FtbF9oYXNoX21peF9pbnQoYWNjLCAwKTtcbiAgfVxuICBpZihhLmlzTmVnYXRpdmUpe1xuICAgIGFjYyA9IGFjYyArIDFcbiAgfVxuICByZXR1cm4gYWNjIHwgMFxufVxuXG4vL2V4dGVybmFsIHRvX2JpdHM6IHQgLT4gc3RyaW5nXG4vL1Byb3ZpZGVzOiBtbF96X3RvX2JpdHMgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMsIGNhbWxfc3RyX3JlcGVhdCwgYmlnSW50XG5mdW5jdGlvbiBtbF96X3RvX2JpdHMoejEpIHtcbiAgejEgPSBiaWdJbnQoejEpLmFicygpO1xuICB2YXIgcmVzID0gXCJcIjtcbiAgd2hpbGUoIXoxLmVxdWFscyhiaWdJbnQoMCkpKXtcbiAgICByZXMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSh6MS5tb2QoYmlnSW50KDI1NikpKTtcbiAgICB6MSA9IHoxLmRpdmlkZShiaWdJbnQoMjU2KSk7XG4gIH1cbiAgd2hpbGUocmVzLmxlbmd0aCAlIDQgIT0gMCl7XG4gICAgcmVzICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoMCk7XG4gIH1cbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMocmVzKTtcbn1cblxuLy9leHRlcm5hbCBvZl9iaXRzOiBzdHJpbmcgLT4gdFxuLy9Qcm92aWRlczogbWxfel9vZl9iaXRzIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0LCBjYW1sX21sX3N0cmluZ19sZW5ndGgsIGJpZ0ludCwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfb2ZfYml0cyh6MSkge1xuICB2YXIgciA9IGJpZ0ludC56ZXJvXG4gIHZhciBiYXNlMSA9IGJpZ0ludCgyNTYpO1xuICB2YXIgYmFzZSA9IGJpZ0ludC5vbmU7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBjYW1sX21sX3N0cmluZ19sZW5ndGgoejEpOyBpKyspe1xuICAgIHZhciBkID0gY2FtbF9zdHJpbmdfdW5zYWZlX2dldCh6MSxpKTtcbiAgICByID0gYmlnSW50KGJhc2UpLm11bHRpcGx5KGQpLmFkZChyKTtcbiAgICBiYXNlID0gYmlnSW50KGJhc2UpLm11bHRpcGx5KGJhc2UxKTtcbiAgfVxuICByZXR1cm4gbWxfel9ub3JtYWxpemUocik7XG59XG5cbi8vZXh0ZXJuYWwgcG93bV9zZWM6IHQgLT4gdCAtPiB0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfcG93bV9zZWNcbi8vUmVxdWlyZXM6IGJpZ0ludCwgY2FtbF9mYWlsd2l0aCwgbWxfel9wb3dtLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIG1sX3pfcG93bV9zZWMoejEsIHoyLCB6Mykge1xuICB6MyA9IGJpZ0ludCh6MykuYWJzKCk7XG4gIC8vIHBvd21fc2VjIHJlcXVpcmVzIHRoYXQgdGhlIGV4cG9uZW50IGJlIHBvc2l0aXZlXG4gIHZhciBvbmUgPSBiaWdJbnQoMSk7XG4gIGlmIChiaWdJbnQoejIpLmx0KG9uZSkpIHtcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJaLnBvd21fc2VjOiBleHBvbmVudCBtdXN0IGJlIHBvc2l0aXZlXCIpO1xuICB9XG4gIGlmICghYmlnSW50KHozKS5hbmQob25lKS5lcXVhbHMob25lKSkge1xuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIloucG93bV9zZWM6IG1vZHVsdXMgbXVzdCBiZSBvZGRcIik7XG4gIH1cbiAgcmV0dXJuIG1sX3pfcG93bSh6MSwgejIsIHozKVxufVxuXG4vL2V4dGVybmFsIHJvb3Q6IHQgLT4gaW50IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfcm9vdFxuLy9SZXF1aXJlczogbWxfel9wb3csICBiaWdJbnQsIG1sX3pfbm9ybWFsaXplLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIG1sX3pfcm9vdCh6LCBpKSB7XG4gIHZhciB6ZXJvID0gYmlnSW50KDApO1xuICB2YXIgb25lID0gYmlnSW50KDEpO1xuICB6ID0gYmlnSW50KHopO1xuXG4gIGlmIChpICUgMiA9PT0gMCAmJiB6Lmx0KHplcm8pKSB7XG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiWi5yb290OiBldmVuIHJvb3Qgb2YgYSBuZWdhdGl2ZSBudW1iZXJcIik7XG4gIH1cblxuICBpZiAoei5lcXVhbHMoemVybykgfHwgei5lcXVhbHMob25lKSkge1xuICAgIHJldHVybiBtbF96X25vcm1hbGl6ZSh6KTtcbiAgfVxuXG4gIHZhciBzdGFydCA9IHplcm87XG4gIHZhciBlbmQgPSB6O1xuICB2YXIgYW5zID0gbnVsbDtcblxuICB2YXIgdHdvID0gYmlnSW50KDIpO1xuXG4gIHdoaWxlIChzdGFydC5sZXEoZW5kKSlcbiAge1xuICAgIHZhciBtaWQgPSBzdGFydC5hZGQoZW5kKS5kaXZpZGUodHdvKTtcbiAgICB2YXIgcG8gPSBtaWQucG93KGkpO1xuICAgIGlmIChwby5lcXVhbHMoeikpIHtcbiAgICAgIHJldHVybiBtbF96X25vcm1hbGl6ZShtaWQpO1xuICAgIH0gZWxzZSBpZiAocG8ubHQoeikpIHtcbiAgICAgIHN0YXJ0ID0gbWlkLm5leHQoKTtcbiAgICAgIGFucyA9IG1pZDtcbiAgICB9IGVsc2Uge1xuICAgICAgZW5kID0gbWlkLnByZXYoKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKGFucyk7XG59XG5cbi8vZXh0ZXJuYWwgcm9vdHJlbTogdCAtPiBpbnQgLT4gdCAqIHRcbi8vUHJvdmlkZXM6IG1sX3pfcm9vdHJlbVxuLy9SZXF1aXJlczogbWxfel9wb3csICBiaWdJbnQsIG1sX3pfbm9ybWFsaXplLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIG1sX3pfcm9vdHJlbSh6LCBpKSB7XG4gIHZhciB6ZXJvID0gYmlnSW50KDApO1xuICB2YXIgb25lID0gYmlnSW50KDEpO1xuICB6ID0gYmlnSW50KHopO1xuXG4gIGlmIChpICUgMiA9PT0gMCAmJiB6Lmx0KHplcm8pKSB7XG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiWi5yb290cmVtOiBldmVuIHJvb3Qgb2YgYSBuZWdhdGl2ZSBudW1iZXJcIik7XG4gIH1cblxuICBpZiAoei5lcXVhbHMoemVybykgfHwgei5lcXVhbHMob25lKSkge1xuICAgIHJldHVybiBbMCwgbWxfel9ub3JtYWxpemUoeiksIHplcm9dO1xuICB9XG5cbiAgdmFyIHN0YXJ0ID0gemVybztcbiAgdmFyIGVuZCA9IHo7XG4gIHZhciBhbnMgPSBudWxsO1xuXG4gIHZhciB0d28gPSBiaWdJbnQoMik7XG5cbiAgd2hpbGUgKHN0YXJ0LmxlcShlbmQpKVxuICB7XG4gICAgdmFyIG1pZCA9IHN0YXJ0LmFkZChlbmQpLmRpdmlkZSh0d28pO1xuICAgIHZhciBwbyA9IG1pZC5wb3coaSk7XG4gICAgaWYgKHBvLmVxdWFscyh6KSkge1xuICAgICAgcmV0dXJuIFswLCBtbF96X25vcm1hbGl6ZShtaWQpLCB6ZXJvXTtcbiAgICB9IGVsc2UgaWYgKHBvLmx0KHopKSB7XG4gICAgICBzdGFydCA9IG1pZC5uZXh0KCk7XG4gICAgICBhbnMgPSBtaWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVuZCA9IG1pZC5wcmV2KCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBbMCwgbWxfel9ub3JtYWxpemUoYW5zKSwgbWxfel9ub3JtYWxpemUoei5taW51cyhhbnMucG93KGkpKSldO1xufVxuXG4vL2V4dGVybmFsIGludmVydDogdCAtPiB0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfaW52ZXJ0XG4vL1JlcXVpcmVzOiBiaWdJbnQsIGNhbWxfcmFpc2VfemVyb19kaXZpZGUsIG1sX3pfZ2NkZXh0X2ludGVybiwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfaW52ZXJ0KGEsIG4pIHtcbiAgLy8gQmVjYXVzZSBbYS5tb2RJbnYobildIHByb2R1Y2VzIGRpZmZlcmVudCByZXN1bHRzIGZvciBlZGdlIGNhc2VzLFxuICAvLyB3ZSB3cm90ZSBvdXIgb3duIGltcGxlbWVudGF0aW9uIGJhc2VkIG9uIGdjZGV4dF9pbnRlcm4uXG4gIGEgPSBiaWdJbnQoYSk7XG4gIG4gPSBiaWdJbnQobik7XG4gIHZhciB6ZXJvID0gYmlnSW50KDApO1xuICB2YXIgb25lID0gYmlnSW50KDEpO1xuICBpZihuLmFicygpLmVxdWFscyhvbmUpKVxuICAgIHJldHVybiAwO1xuICBpZiAobi5lcXVhbHMoemVybykgJiYgYS5hYnMoKS5lcXVhbHMob25lKSkge1xuICAgIHJldHVybiBhO1xuICB9XG4gIGlmIChuLmVxdWFscyh6ZXJvKSB8fCBhLmVxdWFscyh6ZXJvKSkge1xuICAgIGNhbWxfcmFpc2VfemVyb19kaXZpZGUoKTtcbiAgfVxuICB2YXIgeCA9IG1sX3pfZ2NkZXh0X2ludGVybihhLCBuKTtcbiAgdmFyIHIgPSBiaWdJbnQoeFsyXSk7XG4gIHZhciB0bXAgPSBiaWdJbnQoYSkubXVsdGlwbHkocikubW9kKG4pO1xuICBpZih0bXAubHQoemVybykpIHRtcCA9IHRtcC5hZGQobi5hYnMoKSk7XG4gIGlmKHIubHQoemVybykpIHIgPSByLmFkZChuLmFicygpKTtcbiAgaWYodG1wLmVxdWFscyhvbmUpKSB7XG4gICAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKHIpO1xuICB9XG4gIGNhbWxfcmFpc2VfemVyb19kaXZpZGUoKTtcbn1cblxuLy9leHRlcm5hbCBwZXJmZWN0X3Bvd2VyOiB0IC0+IGJvb2xcbi8vUHJvdmlkZXM6IG1sX3pfcGVyZmVjdF9wb3dlclxuLy9SZXF1aXJlczogYmlnSW50LCBjYW1sX2ZhaWx3aXRoLCBtbF96X251bWJpdHMsIG1sX3pfcm9vdCwgbWxfel9wb3dcbmZ1bmN0aW9uIG1sX3pfcGVyZmVjdF9wb3dlcih6KSB7XG4gIC8vIFJldHVybiB0cnVlIGlmIG9wIGlzIGEgcGVyZmVjdCBwb3dlciwgaS5lLiwgaWYgdGhlcmUgZXhpc3QgaW50ZWdlcnMgYSBhbmRcbiAgLy8gYiwgd2l0aCBiID4gMSwgc3VjaCB0aGF0IG9wID0gYV5iLlxuICAvLyBPdGhlcndpc2UgZmFsc2UuXG4gIHogPSBiaWdJbnQoeik7XG4gIHZhciB6ZXJvID0gYmlnSW50KDApO1xuICB2YXIgb25lID0gYmlnSW50KDEpO1xuXG4gIGlmICh6LmVxdWFscyh6ZXJvKSB8fCB6LmVxdWFscyhvbmUpIHx8IHouZXF1YWxzKG9uZS5uZWdhdGUoKSkpIHtcbiAgICByZXR1cm4gMTtcbiAgfVxuICB2YXIgbG9nMnogPSBtbF96X251bWJpdHMoei5hYnMoKSk7XG4gIGZvciAodmFyIGIgPSAyOyBiIDw9IGxvZzJ6OyBiKyspIHtcbiAgICBpZih6Lmx0KHplcm8pICYmIGIgJSAyID09IDApIGNvbnRpbnVlO1xuICAgIHZhciB6cCA9IHouYWJzKCk7XG4gICAgdmFyIHAgPSBiaWdJbnQobWxfel9yb290KHpwLCBiKSk7XG4gICAgaWYoei5sdCh6ZXJvKSkgcCA9IHAubmVnYXRlKCk7XG4gICAgdmFyIHIgPSBiaWdJbnQobWxfel9wb3cocCwgYikpO1xuICAgIGlmICh6LmVxdWFscyhyKSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL2V4dGVybmFsIHBlcmZlY3Rfc3F1YXJlOiB0IC0+IGJvb2xcbi8vUHJvdmlkZXM6IG1sX3pfcGVyZmVjdF9zcXVhcmVcbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9yb290XG5mdW5jdGlvbiBtbF96X3BlcmZlY3Rfc3F1YXJlKHopIHtcbiAgeiA9IGJpZ0ludCh6KTtcbiAgaWYgKHoubHQoYmlnSW50KDApKSkge1xuICAgIHJldHVybiAwO1xuICB9XG4gIHZhciByb290ID0gYmlnSW50KG1sX3pfcm9vdCh6LCAyKSk7XG4gIGlmIChyb290Lm11bHRpcGx5KHJvb3QpLmVxKHopKSB7XG4gICAgcmV0dXJuIDE7XG4gIH1cbiAgZWxzZSB7XG4gICAgcmV0dXJuIDBcbiAgfTtcbn1cblxuLy9leHRlcm5hbCBwcm9iYWJfcHJpbWU6IHQgLT4gaW50IC0+IGludFxuLy9Qcm92aWRlczogbWxfel9wcm9iYWJfcHJpbWUgY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludFxuZnVuY3Rpb24gbWxfel9wcm9iYWJfcHJpbWUoeiwgaSkge1xuICBpZiAoYmlnSW50KHopLmlzUHJvYmFibGVQcmltZShpKSkge1xuICAgIHJldHVybiAxO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAwO1xuICB9XG59XG5cbi8vZXh0ZXJuYWwgbmV4dHByaW1lOiB0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfbmV4dHByaW1lIGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X25leHRwcmltZSh6MSkge1xuICAvLyBJbnRlcmVzdGluZ2x5LCB0aGUgemFyaXRoIG5leHRfcHJpbWUgb25seSByZXR1cm5zIFxuICAvLyBwcm9iYWJhbGlzdGljIHByaW1lcy4gIFdlIGRvIHRoZSBzYW1lLCB3aXRoIHRoZSBcbiAgLy8gc2FtZSBwcm9iYWJsaXN0aWMgcGFyYW1ldGVyIG9mIDI1LlxuICAvLyBodHRwczovL2Zvc3NpZXMub3JnL2RveC9nbXAtNi4xLjIvbXB6XzJuZXh0cHJpbWVfOGNfc291cmNlLmh0bWxcbiAgXG4gIHoxID0gYmlnSW50KHoxKVxuICB2YXIgb25lID0gYmlnSW50KDEpO1xuICB2YXIgdHdvID0gYmlnSW50KDIpO1xuXG4gIGlmICh6MS5sdChvbmUpIHx8IHoxLmVxdWFscyhvbmUpKSB7XG4gICAgcmV0dXJuIDI7XG4gIH1cblxuICBpZiAoejEuYW5kKG9uZSkuZXF1YWxzKG9uZSkpIHtcbiAgICB6MSA9IHoxLmFkZCh0d28pO1xuICB9IGVsc2Uge1xuICAgIHoxID0gejEuYWRkKG9uZSk7XG4gIH1cblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIGlmICh6MS5pc1Byb2JhYmxlUHJpbWUoMjUpKSB7XG4gICAgICByZXR1cm4gbWxfel9ub3JtYWxpemUoejEpO1xuICAgIH0gZWxzZSB7XG4gICAgICB6MSA9IHoxLmFkZCh0d28pXG4gICAgfVxuICB9XG59XG5cbi8vZXh0ZXJuYWwgZXh0cmFjdDogdCAtPiBpbnQgLT4gaW50IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfZXh0cmFjdFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aCwgYmlnSW50LCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9leHRyYWN0KHoxLCBwb3MsIGxlbikge1xuICB6MSA9IGJpZ0ludCh6MSk7XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZSh6MS5zaGlmdFJpZ2h0KHBvcykuYW5kKGJpZ0ludCgyKS5wb3cobGVuKS5zdWJ0cmFjdCgxKSkpO1xufVxuXG4vL2V4dGVybmFsIGdjZGV4dF9pbnRlcm46IHQgLT4gdCAtPiAodCAqIHQgKiBib29sKVxuLy9Qcm92aWRlczogbWxfel9nY2RleHRfaW50ZXJuXG4vL1JlcXVpcmVzOiBiaWdJbnQsIGNhbWxfcmFpc2VfemVyb19kaXZpZGUsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X2djZGV4dF9pbnRlcm4oejEsIHoyKSB7XG4gIHoxID0gYmlnSW50KHoxKTtcbiAgejIgPSBiaWdJbnQoejIpO1xuICB2YXIgZ2NkID0gYmlnSW50LmdjZCh6MSx6Mik7XG4gIHZhciBhID0gejE7XG4gIHZhciBiID0gejI7XG4gIHZhciB4ID0gYmlnSW50KDApO1xuICB2YXIgbGFzdHggPSBiaWdJbnQoMSk7XG4gIHZhciB5ID0gYmlnSW50KDEpO1xuICB2YXIgbGFzdHkgPSBiaWdJbnQoMSk7XG4gIHZhciBxLCB0LCByO1xuICBpZih6MS5lcXVhbHMoYmlnSW50KDApKSkge1xuICAgIGNhbWxfcmFpc2VfemVyb19kaXZpZGUoKTtcbiAgfVxuICB3aGlsZSghYi5lcXVhbHMoYmlnSW50KDApKSkge1xuICAgIHEgPSBhLmRpdmlkZShiKTtcbiAgICByID0gYS5zdWJ0cmFjdChxLm11bHRpcGx5KGIpKTtcbiAgICB0ID0geDtcbiAgICB4ID0gbGFzdHguc3VidHJhY3QocS5tdWx0aXBseSh4KSk7XG4gICAgbGFzdHggPSB0O1xuICAgIHQgPSB5O1xuICAgIHkgPSBsYXN0eS5zdWJ0cmFjdChxLm11bHRpcGx5KHkpKTtcbiAgICBsYXN0eSA9IHQ7XG4gICAgYSA9IGI7XG4gICAgYiA9IHI7XG4gIH1cbiAgaWYoYS5sdChiaWdJbnQoMCkpKVxuICAgIHJldHVybiBbMCxtbF96X25vcm1hbGl6ZShhLm5lZ2F0ZSgpKSxtbF96X25vcm1hbGl6ZShsYXN0eC5uZWdhdGUoKSksMV1cbiAgZWxzZVxuICAgIHJldHVybiBbMCxtbF96X25vcm1hbGl6ZShhKSxtbF96X25vcm1hbGl6ZShsYXN0eCksMV1cbn1cblxuLy9leHRlcm5hbCBzcXJ0OiB0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfc3FydFxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X3Jvb3QsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gbWxfel9zcXJ0KHoxKSB7XG4gIHZhciB6ID0gYmlnSW50KHoxKTtcbiAgdmFyIHplcm8gPSBiaWdJbnQoMCk7XG4gIGlmICh6Lmx0KHplcm8pKSB7XG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiWi5zcXJ0OiBzcXVhcmUgcm9vdCBvZiBhIG5lZ2F0aXZlIG51bWJlclwiKTtcbiAgfVxuICByZXR1cm4gbWxfel9yb290KHosIDIpO1xufVxuXG4vL2V4dGVybmFsIHNxcnRfcmVtOiB0IC0+ICh0ICogdClcbi8vUHJvdmlkZXM6IG1sX3pfc3FydF9yZW1cbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9yb290LCBjYW1sX2ludmFsaWRfYXJndW1lbnQsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X3NxcnRfcmVtKHopIHtcbiAgeiA9IGJpZ0ludCh6KTtcbiAgdmFyIHplcm8gPSBiaWdJbnQoMCk7XG4gIGlmICh6Lmx0KHplcm8pKSB7XG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiWi5zcXJ0X3JlbTogc3F1YXJlIHJvb3Qgb2YgYSBuZWdhdGl2ZSBudW1iZXJcIik7XG4gIH1cbiAgdmFyIHJvb3QgPSBiaWdJbnQobWxfel9yb290KHosIDIpKTtcbiAgdmFyIG11bCA9IHJvb3QubXVsdGlwbHkocm9vdCk7XG4gIHZhciBkaWZmID0gei5zdWJ0cmFjdChtdWwpO1xuICByZXR1cm4gWzAsIG1sX3pfbm9ybWFsaXplKHJvb3QpLCBtbF96X25vcm1hbGl6ZShkaWZmKV1cbn1cblxuLy9leHRlcm5hbCB0cmFpbGluZ196ZXJvczogdCAtPiBpbnRcbi8vUHJvdmlkZXM6IG1sX3pfdHJhaWxpbmdfemVyb3MgY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludFxuZnVuY3Rpb24gbWxfel90cmFpbGluZ196ZXJvcyh6KSB7XG4gIHogPSBiaWdJbnQoeikuYWJzKCk7XG4gIHZhciB6ZXJvID0gYmlnSW50KDApO1xuICB2YXIgb25lID0gYmlnSW50KDEpO1xuICBpZiAoei5lcXVhbHMoemVybykpIHtcbiAgICAvLyBtYXhfaW50IGluIDMyYml0XG4gICAgcmV0dXJuIDB4N2ZmZmZmZmY7XG4gIH1cbiAgdmFyIGkgPSAwXG4gIHogPSB6Lnhvcih6LnByZXYoKSkuc2hpZnRSaWdodCgxKTtcbiAgZm9yIChpID0gMDsgIXouZXF1YWxzKGJpZ0ludC56ZXJvKTsgaSsrKSB7XG4gICAgeiA9IHouc2hpZnRSaWdodCgxKTtcbiAgfVxuICByZXR1cm4gaTtcbn1cblxuLy9leHRlcm5hbCBwb3Bjb3VudDogdCAtPiBpbnRcbi8vUHJvdmlkZXM6IG1sX3pfcG9wY291bnRcbi8vUmVxdWlyZXM6IGJpZ0ludCwgY2FtbF9yYWlzZV9jb25zdGFudCwgY2FtbF9uYW1lZF92YWx1ZVxuZnVuY3Rpb24gbWxfel9wb3Bjb3VudCh6KSB7XG4gIHogPSBiaWdJbnQoeik7XG4gIHZhciB6ZXJvID0gYmlnSW50KDApO1xuICB2YXIgb25lID0gYmlnSW50KDEpO1xuICBpZiAoei5sdCh6ZXJvKSkge1xuICAgIGNhbWxfcmFpc2VfY29uc3RhbnQoY2FtbF9uYW1lZF92YWx1ZShcIm1sX3pfb3ZlcmZsb3dcIikpO1xuICB9XG4gIHZhciBpO1xuICBmb3IgKGkgPSAwOyAhei5lcXVhbHMoemVybyk7IGkrKykge1xuICAgIHogPSB6LmFuZCh6LnByZXYoKSk7XG4gIH1cbiAgaWYoaSAhPSAoaXwwKSkgY2FtbF9yYWlzZV9jb25zdGFudChjYW1sX25hbWVkX3ZhbHVlKFwibWxfel9vdmVyZmxvd1wiKSk7XG4gIHJldHVybiBpfDA7XG59XG5cbi8vZXh0ZXJuYWwgaGFtZGlzdDogdCAtPiB0IC0+IGludFxuLy9Qcm92aWRlczogbWxfel9oYW1kaXN0XG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfcG9wY291bnQsIGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9yYWlzZV9jb25zdGFudCwgY2FtbF9uYW1lZF92YWx1ZVxuZnVuY3Rpb24gbWxfel9oYW1kaXN0KHoxLCB6Mikge1xuICBpZihiaWdJbnQoejEpLmlzTmVnYXRpdmUoKSAhPSBiaWdJbnQoejIpLmlzTmVnYXRpdmUgKCkpe1xuICAgIGNhbWxfcmFpc2VfY29uc3RhbnQoY2FtbF9uYW1lZF92YWx1ZShcIm1sX3pfb3ZlcmZsb3dcIikpO1xuICB9XG4gIGlmKCh6MSAhPSAoejEgfCAwKSB8fCB6MiAhPSAoejIgfCAwKSkgJiYgKGJpZ0ludCh6MSkuaXNOZWdhdGl2ZSgpIHx8IGJpZ0ludCh6MikuaXNOZWdhdGl2ZSAoKSkpe1xuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlouaGFtZGlzdDogbmVnYXRpdmUgYXJndW1lbnRzXCIpO1xuICB9XG4gIHJldHVybiBtbF96X3BvcGNvdW50KGJpZ0ludCh6MSkueG9yKGJpZ0ludCh6MikpKTtcbn1cblxuLy9leHRlcm5hbCBzaXplOiB0IC0+IGludFxuLy9Qcm92aWRlczogbWxfel9zaXplIGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnRcbmZ1bmN0aW9uIG1sX3pfc2l6ZSh6MSkge1xuICAvLyBDbGFpbSB0byBiZSBhIDMyLWJpdCBhcmNoaXRlY3R1cmUuXG4gIHJldHVybiBiaWdJbnQoejEpLnRvQXJyYXkoTWF0aC5wb3coMiwgMzIpKS52YWx1ZS5sZW5ndGg7XG59XG5cbi8vZXh0ZXJuYWwgZGl2ZXhhY3Q6IHQgLT4gdCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X2RpdmV4YWN0XG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfZGl2XG5mdW5jdGlvbiBtbF96X2RpdmV4YWN0KHoxLCB6Mikge1xuICByZXR1cm4gbWxfel9kaXYoejEsIHoyKTtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX3phcml0aF9tYXJzaGFsXG4vL1JlcXVpcmVzOiBiaWdJbnRcbmZ1bmN0aW9uIGNhbWxfemFyaXRoX21hcnNoYWwod3JpdGVyLCB2LCBzeikge1xuICB2ID0gYmlnSW50KHYpO1xuICB2YXIgYml0cyA9IHYudG9BcnJheShNYXRoLnBvdygyLCAzMikpO1xuICB3cml0ZXIud3JpdGUoOCwgYml0cy5pc05lZ2F0aXZlID8xIDogMCk7XG4gIHZhciBibG9jayA9IGJpdHMudmFsdWUubGVuZ3RoO1xuICB2YXIgbGVuID0gYmxvY2sgKiA0O1xuICB3cml0ZXIud3JpdGUoMzIsIGxlbik7XG4gIGZvcih2YXIgaSA9IGJsb2NrIC0gMTsgaSA+PSAwOyBpIC0tKXtcbiAgICB3cml0ZXIud3JpdGUoOCwgKGJpdHMudmFsdWVbaV0gPj4+IDAgKSAmIDB4ZmYpO1xuICAgIHdyaXRlci53cml0ZSg4LCAoYml0cy52YWx1ZVtpXSA+Pj4gOCApICYgMHhmZik7XG4gICAgd3JpdGVyLndyaXRlKDgsIChiaXRzLnZhbHVlW2ldID4+PiAxNikgJiAweGZmKTtcbiAgICB3cml0ZXIud3JpdGUoOCwgKGJpdHMudmFsdWVbaV0gPj4+IDI0KSAmIDB4ZmYpO1xuICB9XG4gIHN6WzBdID0gNCAqICgxICsgKCgobGVuICsgMykgLyA0KSB8IDApKTtcbiAgc3pbMV0gPSA4ICogKDEgKyAoKChsZW4gKyA3KSAvIDgpIHwgMCkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3phcml0aF91bm1hcnNoYWxcbi8vUmVxdWlyZXM6IGJpZ0ludCwgY2FtbF9mYWlsd2l0aCwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIGNhbWxfemFyaXRoX3VubWFyc2hhbChyZWFkZXIsIHN6KSB7XG4gIHZhciBuZWdhdGU7XG4gIHN3aXRjaChyZWFkZXIucmVhZDh1ICgpKSB7XG4gIGNhc2UgMTogbmVnYXRlID0gdHJ1ZTsgYnJlYWs7XG4gIGNhc2UgMDogbmVnYXRlID0gZmFsc2U7IGJyZWFrO1xuICBkZWZhdWx0OiBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IHogKG1hbGZvcm1lZCBpbnB1dClcIik7XG4gIH1cbiAgdmFyIGxlbiA9IHJlYWRlci5yZWFkMzJ1KCk7XG4gIHZhciB4ID0gYmlnSW50KDApO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuIC8gNDsgaSsrKXtcbiAgICB2YXIgeSA9IGJpZ0ludChyZWFkZXIucmVhZDh1KCkpO1xuICAgIHkgPSB5LmFkZCgocmVhZGVyLnJlYWQ4dSgpKSA8PCA4KTtcbiAgICB5ID0geS5hZGQoKHJlYWRlci5yZWFkOHUoKSkgPDwgMTYpO1xuICAgIHkgPSB5LmFkZCgoKHJlYWRlci5yZWFkOHUoKSkgPDwgMjQpID4+PiAwKTtcbiAgICB4ID0geS5zaGlmdExlZnQoaSAqIDMyKS5hZGQoeCk7XG4gIH1cbiAgaWYobmVnYXRlKSB4ID0geC5uZWdhdGUoKTtcbiAgc3pbMF0gPSBsZW4gKyA0O1xuICByZXR1cm4gbWxfel9ub3JtYWxpemUoeClcbn1cblxuLy9Qcm92aWRlczogbWxfel9kaXZpc2libGVcbi8vUmVxdWlyZXM6IGJpZ0ludFxuZnVuY3Rpb24gbWxfel9kaXZpc2libGUoYSwgYil7XG4gIHZhciB6ZXJvID0gYmlnSW50KDApO1xuICBhID0gYmlnSW50KGEpO1xuICBiID0gYmlnSW50KGIpO1xuICBpZihhLmVxdWFscyh6ZXJvKSAmJiBiLmVxdWFscyh6ZXJvKSkgcmV0dXJuIDE7XG4gIHJldHVybiBhLmlzRGl2aXNpYmxlQnkoYik/MTowO1xufVxuXG4vL1Byb3ZpZGVzOiBtbF96X2NvbmdydWVudFxuLy9SZXF1aXJlczogYmlnSW50XG5mdW5jdGlvbiBtbF96X2NvbmdydWVudChhLGIsYyl7XG4gIHZhciB6ZXJvID0gYmlnSW50KDApO1xuICBhID0gYmlnSW50KGEpO1xuICBiID0gYmlnSW50KGIpO1xuICBjID0gYmlnSW50KGMpO1xuICBpZihjLmVxdWFscyh6ZXJvKSAmJiBhLmVxdWFscyhiKSkgcmV0dXJuIDE7XG4gIHJldHVybiBhLm1pbnVzKGIpLmlzRGl2aXNpYmxlQnkoYykgPyAxIDogMDtcbn1cblxuLy9Qcm92aWRlczogbWxfel9yZW1vdmVcbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9ub3JtYWxpemUsIGNhbWxfcmFpc2VfemVyb19kaXZpZGVcbmZ1bmN0aW9uIG1sX3pfcmVtb3ZlKGEsYil7XG4gIHZhciB6ZXJvID0gYmlnSW50KDApO1xuICB2YXIgb25lID0gYmlnSW50KDEpO1xuICBhID0gYmlnSW50KGEpO1xuICBiID0gYmlnSW50KGIpO1xuICBpZihiLmVxdWFscyh6ZXJvKSkgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZSgpO1xuICBpZihhLmVxdWFscyh6ZXJvKSB8fCBiLmFicygpLmVxdWFscyhvbmUpKSByZXR1cm4gWzAsIGEsIDBdO1xuICB2YXIgaSA9IDA7XG4gIHdoaWxlKGEuaXNEaXZpc2libGVCeShiKSl7XG4gICAgYSA9IGEuZGl2aWRlKGIpO1xuICAgIGkrKztcbiAgfVxuICByZXR1cm4gWzAsIG1sX3pfbm9ybWFsaXplKGEpLCBpXTtcbn1cblxuLy9Qcm92aWRlczogbWxfel9mYWNcbi8vUmVxdWlyZXM6IG1sX3pfZmFjTSwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBtbF96X2ZhYyhpKXtcbiAgaWYoaTw9MCkgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiWi5mYWN0OiBuZWdhdGl2ZSBhcmd1bWVudHNcIik7XG4gIHJldHVybiBtbF96X2ZhY00oaSwxKTtcbn1cblxuLy9Qcm92aWRlczogbWxfel9mYWMyXG4vL1JlcXVpcmVzOiBtbF96X2ZhY00sIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gbWxfel9mYWMyKGkpe1xuICBpZihpPD0wKSBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJaLmZhY3QyOiBuZWdhdGl2ZSBhcmd1bWVudHNcIik7XG4gIHJldHVybiBtbF96X2ZhY00oaSwyKTtcbn1cblxuLy9Qcm92aWRlczogbWxfel9mYWNNXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGJpZ0ludCwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfZmFjTShpLCBtKXtcbiAgaWYoaTw9MHx8bTw9MCkgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiWi5mYWN0TTogbmVnYXRpdmUgYXJndW1lbnRzXCIpO1xuICBtID0gYmlnSW50KG0pO1xuICB2YXIgY3VycmVudCA9IGJpZ0ludChpKTtcbiAgdmFyIHJlcyA9IGJpZ0ludCgxKTtcbiAgd2hpbGUoY3VycmVudC5pc1Bvc2l0aXZlKCkpe1xuICAgIHJlcyA9IHJlcy5tdWx0aXBseShjdXJyZW50KTtcbiAgICBjdXJyZW50ID0gY3VycmVudC5taW51cyhtKTtcbiAgfVxuICByZXR1cm4gbWxfel9ub3JtYWxpemUocmVzKTtcbn1cblxuLy9Qcm92aWRlczogbWxfel9maWJcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCwgbWxfel9ub3JtYWxpemUsIGJpZ0ludFxuZnVuY3Rpb24gbWxfel9maWIoaSl7XG4gIGlmKGkgPCAwKSBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJaLmZpYjogbmVnYXRpdmUgYXJndW1lbnRzXCIpO1xuICBpZihpID09IDAgfHwgaSA9PSAxKSByZXR1cm4gaTtcbiAgdmFyIGEgPSBiaWdJbnQoMCksIGIgPSBiaWdJbnQoMSk7XG4gIGZvcih2YXIgayA9IDE7IGsgPCBpOyBrKyspe1xuICAgIHZhciBiMiA9IGI7XG4gICAgYiA9IGEuYWRkKGIpO1xuICAgIGEgPSBiMjtcbiAgfVxuICByZXR1cm4gbWxfel9ub3JtYWxpemUoYik7XG59XG5cbi8vUHJvdmlkZXM6IG1sX3pfbHVjbnVtXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnQsIG1sX3pfbm9ybWFsaXplLCBiaWdJbnRcbmZ1bmN0aW9uIG1sX3pfbHVjbnVtKGkpe1xuICBpZihpIDwgMCkgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiWi5sdWNudW06IG5lZ2F0aXZlIGFyZ3VtZW50c1wiKTtcbiAgaWYoaSA9PSAwKSByZXR1cm4gMjtcbiAgaWYoaSA9PSAxKSByZXR1cm4gMTtcbiAgdmFyIGEgPSBiaWdJbnQoMiksIGIgPSBiaWdJbnQoMSk7XG4gIGZvcih2YXIgayA9IDE7IGsgPCBpOyBrKyspe1xuICAgIHZhciBiMiA9IGI7XG4gICAgYiA9IGEuYWRkKGIpO1xuICAgIGEgPSBiMjtcbiAgfVxuICByZXR1cm4gbWxfel9ub3JtYWxpemUoYik7XG59XG5cbi8vUHJvdmlkZXM6IG1sX3pfamFjb2JpXG4vL1JlcXVpcmVzOiBiaWdJbnQsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gbWxfel9qYWNvYmkobiwgayl7XG4gIG4gPSBiaWdJbnQobik7XG4gIGsgPSBiaWdJbnQoayk7XG4gIC8vYXNzZXJ0KGsgPiAwIGFuZCBrICUgMiA9PSAxKVxuICBpZihrLmxlcShiaWdJbnQoMCkpIHx8IGsubW9kKGJpZ0ludCgyKSkubmVxKGJpZ0ludCgxKSkpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiWi5qYWNvYmk6IHNlY29uZCBhcmd1bWVudCBpcyBuZWdhdGl2ZSBvciBldmVuXCIpO1xuICBuID0gbi5tb2Qoayk7XG4gIGlmKG4ubHQoYmlnSW50KDApKSkgbiA9IG4uYWRkKGspO1xuICB2YXIgdCA9IDE7XG4gIHdoaWxlICghIG4uZXF1YWxzKGJpZ0ludCgwKSkpe1xuICAgIHdoaWxlIChuLmlzRGl2aXNpYmxlQnkoYmlnSW50KDIpKSkge1xuICAgICAgbiA9IG4uZGl2aWRlKGJpZ0ludCgyKSlcbiAgICAgIHZhciByID0gay5tb2QoYmlnSW50KDgpKVxuICAgICAgaWYgKHIuZXF1YWxzKGJpZ0ludCgzKSkgfHwgci5lcXVhbHMoYmlnSW50KDUpKSl7XG4gICAgICAgIHQgPSAtdFxuICAgICAgfVxuICAgIH1cbiAgICB2YXIgbjEgPSBuLCBrMSA9IGs7XG4gICAgbiA9IGsxO1xuICAgIGsgPSBuMTtcbiAgICBpZiAobi5tb2QoYmlnSW50KDQpKS5lcXVhbHMoYmlnSW50KDMpKSAmJiAgay5tb2QoYmlnSW50KDQpKS5lcXVhbHMoYmlnSW50KDMpKSkge1xuICAgICAgdCA9IC10XG4gICAgfVxuICAgIG4gPSBuLm1vZChrKVxuICB9XG4gIGlmKGsuZXF1YWxzKGJpZ0ludCgxKSkpXG4gICAgcmV0dXJuIHRcbiAgZWxzZVxuICAgIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IG1sX3pfbGVnZW5kcmVcbi8vUmVxdWlyZXM6IG1sX3pfamFjb2JpXG5mdW5jdGlvbiBtbF96X2xlZ2VuZHJlKGEsYil7XG4gIHJldHVybiBtbF96X2phY29iaShhLGIpO1xufVxuXG4vL1Byb3ZpZGVzOiBtbF96X2tyb25lY2tlclxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gbWxfel9rcm9uZWNrZXIobixrKXtcbiAgY2FtbF9mYWlsd2l0aChcIm1sX3pfa3JvbmVja2VyIGlzIG5vdCBpbXBsZW1lbnRlZFwiKTtcbn1cblxuLy9Qcm92aWRlczogbWxfel9wcmltb3JpYWxcbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfcHJpbW9yaWFsKGEpe1xuICB2YXIgb25lID0gYmlnSW50KDEpO1xuICB2YXIgdHdvID0gYmlnSW50KDIpO1xuICB2YXIgejEgPSBvbmU7XG4gIHZhciByZXMgPSBvbmU7XG4gIGEgPSBiaWdJbnQoYSk7XG4gIHdoaWxlICh6MS5sZXEoYSkpIHtcbiAgICBpZiAoejEuaXNQcm9iYWJsZVByaW1lKDI1KSkge1xuICAgICAgcmVzID0gcmVzLm11bHRpcGx5KHoxKTtcbiAgICB9XG4gICAgaWYoejEuZXF1YWxzKG9uZSkgfHwgejEuZXF1YWxzKHR3bykpIHoxID0gejEuYWRkKG9uZSk7XG4gICAgZWxzZSB6MSA9IHoxLmFkZCh0d28pXG4gIH1cbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKHJlcyk7XG59XG5cbi8vUHJvdmlkZXM6IG1sX3pfYmluXG4vL1JlcXVpcmVzOiBtbF96X25vcm1hbGl6ZSwgYmlnSW50LCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIG1sX3pfYmluKG4sIGspe1xuICB2YXIgbiA9IGJpZ0ludChuKTtcbiAgdmFyIGsgPSBiaWdJbnQoayk7XG4gIHZhciBjb2VmZiA9IGJpZ0ludCgxKTtcbiAgZm9yICh2YXIgeCA9IG4ubWludXMoaykuYWRkKGJpZ0ludCgxKSk7IHgubGVxKG4pOyB4ID0geC5hZGQoYmlnSW50KDEpKSkgY29lZmYgPSBjb2VmZi5tdWx0aXBseSh4KTtcbiAgZm9yICh4ID0gYmlnSW50KDEpOyB4LmxlcShrKTsgeCA9IHguYWRkKGJpZ0ludCgxKSkpIGNvZWZmID0gY29lZmYuZGl2aWRlKHgpO1xuICByZXR1cm4gbWxfel9ub3JtYWxpemUoY29lZmYpO1xuXG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTQgSsOpcsO0bWUgVm91aWxsb24sIEh1Z28gSGV1emFyZCwgQW5keSBSYXlcbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbi8vXG4vLyBCaWdhcnJheS5cbi8vXG4vLyAtIGFsbCBiaWdhcnJheSB0eXBlcyBpbmNsdWRpbmcgSW50NjQgYW5kIENvbXBsZXguXG4vLyAtIGZvcnRyYW4gKyBjIGxheW91dHNcbi8vIC0gc3ViL3NsaWNlL3Jlc2hhcGVcbi8vIC0gcmV0YWluIGZhc3QgcGF0aCBmb3IgMWQgYXJyYXkgYWNjZXNzXG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfaW5pdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9iYV9pbml0KCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9nZXRfc2l6ZVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX2JhX2dldF9zaXplKGRpbXMpIHtcbiAgdmFyIG5fZGltcyA9IGRpbXMubGVuZ3RoO1xuICB2YXIgc2l6ZSA9IDE7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbl9kaW1zOyBpKyspIHtcbiAgICBpZiAoZGltc1tpXSA8IDApXG4gICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5jcmVhdGU6IG5lZ2F0aXZlIGRpbWVuc2lvblwiKTtcbiAgICBzaXplID0gc2l6ZSAqIGRpbXNbaV07XG4gIH1cbiAgcmV0dXJuIHNpemU7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnRcbmZ1bmN0aW9uIGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnQoa2luZCl7XG4gIHN3aXRjaChraW5kKXtcbiAgY2FzZSA3OiBjYXNlIDEwOiBjYXNlIDExOiByZXR1cm4gMjtcbiAgZGVmYXVsdDogcmV0dXJuIDE7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9jcmVhdGVfYnVmZmVyXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50XG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfYmFfY3JlYXRlX2J1ZmZlcihraW5kLCBzaXplKXtcbiAgdmFyIHZpZXc7XG4gIHN3aXRjaChraW5kKXtcbiAgY2FzZSAwOiAgdmlldyA9IEZsb2F0MzJBcnJheTsgYnJlYWs7XG4gIGNhc2UgMTogIHZpZXcgPSBGbG9hdDY0QXJyYXk7IGJyZWFrO1xuICBjYXNlIDI6ICB2aWV3ID0gSW50OEFycmF5OyBicmVhaztcbiAgY2FzZSAzOiAgdmlldyA9IFVpbnQ4QXJyYXk7IGJyZWFrO1xuICBjYXNlIDQ6ICB2aWV3ID0gSW50MTZBcnJheTsgYnJlYWs7XG4gIGNhc2UgNTogIHZpZXcgPSBVaW50MTZBcnJheTsgYnJlYWs7XG4gIGNhc2UgNjogIHZpZXcgPSBJbnQzMkFycmF5OyBicmVhaztcbiAgY2FzZSA3OiAgdmlldyA9IEludDMyQXJyYXk7IGJyZWFrO1xuICBjYXNlIDg6ICB2aWV3ID0gSW50MzJBcnJheTsgYnJlYWs7XG4gIGNhc2UgOTogIHZpZXcgPSBJbnQzMkFycmF5OyBicmVhaztcbiAgY2FzZSAxMDogdmlldyA9IEZsb2F0MzJBcnJheTsgYnJlYWs7XG4gIGNhc2UgMTE6IHZpZXcgPSBGbG9hdDY0QXJyYXk7IGJyZWFrO1xuICBjYXNlIDEyOiB2aWV3ID0gVWludDhBcnJheTsgYnJlYWs7XG4gIH1cbiAgaWYgKCF2aWV3KSBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5jcmVhdGU6IHVuc3VwcG9ydGVkIGtpbmRcIik7XG4gIHZhciBkYXRhID0gbmV3IHZpZXcoc2l6ZSAqIGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnQoa2luZCkpO1xuICByZXR1cm4gZGF0YTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9jdXN0b21fbmFtZVxuLy9WZXJzaW9uOiA8IDQuMTFcbnZhciBjYW1sX2JhX2N1c3RvbV9uYW1lID0gXCJfYmlnYXJyYXlcIlxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2N1c3RvbV9uYW1lXG4vL1ZlcnNpb246ID49IDQuMTFcbnZhciBjYW1sX2JhX2N1c3RvbV9uYW1lID0gXCJfYmlnYXJyMDJcIlxuXG4vL1Byb3ZpZGVzOiBNbF9CaWdhcnJheVxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvciwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2JhX2N1c3RvbV9uYW1lXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2NyZWF0ZV9sb19oaSwgY2FtbF9pbnQ2NF9oaTMyLCBjYW1sX2ludDY0X2xvMzJcbmZ1bmN0aW9uIE1sX0JpZ2FycmF5IChraW5kLCBsYXlvdXQsIGRpbXMsIGJ1ZmZlcikge1xuXG4gIHRoaXMua2luZCAgID0ga2luZCA7XG4gIHRoaXMubGF5b3V0ID0gbGF5b3V0O1xuICB0aGlzLmRpbXMgICA9IGRpbXM7XG4gIHRoaXMuZGF0YSA9IGJ1ZmZlcjtcbn1cblxuTWxfQmlnYXJyYXkucHJvdG90eXBlLmNhbWxfY3VzdG9tID0gY2FtbF9iYV9jdXN0b21fbmFtZTtcblxuTWxfQmlnYXJyYXkucHJvdG90eXBlLm9mZnNldCA9IGZ1bmN0aW9uIChhcmcpIHtcbiAgdmFyIG9mcyA9IDA7XG4gIGlmKHR5cGVvZiBhcmcgPT09IFwibnVtYmVyXCIpIGFyZyA9IFthcmddO1xuICBpZiAoISAoYXJnIGluc3RhbmNlb2YgQXJyYXkpKSBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJiaWdhcnJheS5qczogaW52YWxpZCBvZmZzZXRcIik7XG4gIGlmICh0aGlzLmRpbXMubGVuZ3RoICE9IGFyZy5sZW5ndGgpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkuZ2V0L3NldDogYmFkIG51bWJlciBvZiBkaW1lbnNpb25zXCIpO1xuICBpZih0aGlzLmxheW91dCA9PSAwIC8qIGNfbGF5b3V0ICovKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmRpbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChhcmdbaV0gPCAwIHx8IGFyZ1tpXSA+PSB0aGlzLmRpbXNbaV0pXG4gICAgICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgICAgIG9mcyA9IChvZnMgKiB0aGlzLmRpbXNbaV0pICsgYXJnW2ldO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBmb3IgKHZhciBpID0gdGhpcy5kaW1zLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBpZiAoYXJnW2ldIDwgMSB8fCBhcmdbaV0gPiB0aGlzLmRpbXNbaV0pe1xuICAgICAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gICAgICB9XG4gICAgICBvZnMgPSAob2ZzICogdGhpcy5kaW1zW2ldKSArIChhcmdbaV0gLSAxKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9mcztcbn1cblxuTWxfQmlnYXJyYXkucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIChvZnMpIHtcbiAgc3dpdGNoKHRoaXMua2luZCl7XG4gIGNhc2UgNzpcbiAgICAvLyBJbnQ2NFxuICAgIHZhciBsID0gdGhpcy5kYXRhW29mcyAqIDIgKyAwXTtcbiAgICB2YXIgaCA9IHRoaXMuZGF0YVtvZnMgKiAyICsgMV07XG4gICAgcmV0dXJuIGNhbWxfaW50NjRfY3JlYXRlX2xvX2hpKGwsaCk7XG4gIGNhc2UgMTA6IGNhc2UgMTE6XG4gICAgLy8gQ29tcGxleDMyLCBDb21wbGV4NjRcbiAgICB2YXIgciA9IHRoaXMuZGF0YVtvZnMgKiAyICsgMF07XG4gICAgdmFyIGkgPSB0aGlzLmRhdGFbb2ZzICogMiArIDFdO1xuICAgIHJldHVybiBbMjU0LCByLCBpXTtcbiAgZGVmYXVsdDpcbiAgICByZXR1cm4gdGhpcy5kYXRhW29mc11cbiAgfVxufVxuXG5NbF9CaWdhcnJheS5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gKG9mcyx2KSB7XG4gIHN3aXRjaCh0aGlzLmtpbmQpe1xuICBjYXNlIDc6XG4gICAgLy8gSW50NjRcbiAgICB0aGlzLmRhdGFbb2ZzICogMiArIDBdID0gY2FtbF9pbnQ2NF9sbzMyKHYpO1xuICAgIHRoaXMuZGF0YVtvZnMgKiAyICsgMV0gPSBjYW1sX2ludDY0X2hpMzIodik7XG4gICAgYnJlYWs7XG4gIGNhc2UgMTA6IGNhc2UgMTE6XG4gICAgLy8gQ29tcGxleDMyLCBDb21wbGV4NjRcbiAgICB0aGlzLmRhdGFbb2ZzICogMiArIDBdID0gdlsxXTtcbiAgICB0aGlzLmRhdGFbb2ZzICogMiArIDFdID0gdlsyXTtcbiAgICBicmVhaztcbiAgZGVmYXVsdDpcbiAgICB0aGlzLmRhdGFbb2ZzXSA9IHY7XG4gICAgYnJlYWs7XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuXG5NbF9CaWdhcnJheS5wcm90b3R5cGUuZmlsbCA9IGZ1bmN0aW9uICh2KSB7XG4gIHN3aXRjaCh0aGlzLmtpbmQpe1xuICBjYXNlIDc6XG4gICAgLy8gSW50NjRcbiAgICB2YXIgYSA9IGNhbWxfaW50NjRfbG8zMih2KTtcbiAgICB2YXIgYiA9IGNhbWxfaW50NjRfaGkzMih2KTtcbiAgICBpZihhID09IGIpe1xuICAgICAgdGhpcy5kYXRhLmZpbGwoYSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgZm9yKHZhciBpID0gMDsgaTx0aGlzLmRhdGEubGVuZ3RoOyBpKyspe1xuICAgICAgICB0aGlzLmRhdGFbaV0gPSAoaSUyID09IDApID8gYSA6IGI7XG4gICAgICB9XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDEwOiBjYXNlIDExOlxuICAgIC8vIENvbXBsZXgzMiwgQ29tcGxleDY0XG4gICAgdmFyIGltID0gdlsxXTtcbiAgICB2YXIgcmUgPSB2WzJdO1xuICAgIGlmKGltID09IHJlKXtcbiAgICAgIHRoaXMuZGF0YS5maWxsKGltKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBmb3IodmFyIGkgPSAwOyBpPHRoaXMuZGF0YS5sZW5ndGg7IGkrKyl7XG4gICAgICAgIHRoaXMuZGF0YVtpXSA9IChpJTIgPT0gMCkgPyBpbSA6IHJlO1xuICAgICAgfVxuICAgIH1cbiAgICBicmVhaztcbiAgZGVmYXVsdDpcbiAgICB0aGlzLmRhdGEuZmlsbCh2KTtcbiAgICBicmVhaztcbiAgfVxufVxuXG5cbk1sX0JpZ2FycmF5LnByb3RvdHlwZS5jb21wYXJlID0gZnVuY3Rpb24gKGIsIHRvdGFsKSB7XG4gIGlmICh0aGlzLmxheW91dCAhPSBiLmxheW91dCB8fCB0aGlzLmtpbmQgIT0gYi5raW5kKSB7XG4gICAgdmFyIGsxID0gdGhpcy5raW5kIHwgKHRoaXMubGF5b3V0IDw8IDgpO1xuICAgIHZhciBrMiA9ICAgIGIua2luZCB8IChiLmxheW91dCA8PCA4KTtcbiAgICByZXR1cm4gazIgLSBrMTtcbiAgfVxuICBpZiAodGhpcy5kaW1zLmxlbmd0aCAhPSBiLmRpbXMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGIuZGltcy5sZW5ndGggLSB0aGlzLmRpbXMubGVuZ3RoO1xuICB9XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5kaW1zLmxlbmd0aDsgaSsrKVxuICAgIGlmICh0aGlzLmRpbXNbaV0gIT0gYi5kaW1zW2ldKVxuICAgICAgcmV0dXJuICh0aGlzLmRpbXNbaV0gPCBiLmRpbXNbaV0pID8gLTEgOiAxO1xuICBzd2l0Y2ggKHRoaXMua2luZCkge1xuICBjYXNlIDA6XG4gIGNhc2UgMTpcbiAgY2FzZSAxMDpcbiAgY2FzZSAxMTpcbiAgICAvLyBGbG9hdHNcbiAgICB2YXIgeCwgeTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgeCA9IHRoaXMuZGF0YVtpXTtcbiAgICAgIHkgPSBiLmRhdGFbaV07XG4gICAgICBpZiAoeCA8IHkpXG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIGlmICh4ID4geSlcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICBpZiAoeCAhPSB5KSB7XG4gICAgICAgIGlmICghdG90YWwpIHJldHVybiBOYU47XG4gICAgICAgIGlmICh4ID09IHgpIHJldHVybiAxO1xuICAgICAgICBpZiAoeSA9PSB5KSByZXR1cm4gLTE7XG4gICAgICB9XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDc6XG4gICAgLy8gSW50NjRcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZGF0YS5sZW5ndGg7IGkrPTIpIHtcbiAgICAgIC8vIENoZWNrIGhpZ2hlc3QgYml0cyBmaXJzdFxuICAgICAgaWYgKHRoaXMuZGF0YVtpKzFdIDwgYi5kYXRhW2krMV0pXG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIGlmICh0aGlzLmRhdGFbaSsxXSA+IGIuZGF0YVtpKzFdKVxuICAgICAgICByZXR1cm4gMTtcbiAgICAgIGlmICgodGhpcy5kYXRhW2ldID4+PiAwKSA8IChiLmRhdGFbaV0gPj4+IDApKVxuICAgICAgICByZXR1cm4gLTE7XG4gICAgICBpZiAoKHRoaXMuZGF0YVtpXSA+Pj4gMCkgPiAoYi5kYXRhW2ldID4+PiAwKSlcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDI6XG4gIGNhc2UgMzpcbiAgY2FzZSA0OlxuICBjYXNlIDU6XG4gIGNhc2UgNjpcbiAgY2FzZSA4OlxuICBjYXNlIDk6XG4gIGNhc2UgMTI6XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmRhdGEubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmRhdGFbaV0gPCBiLmRhdGFbaV0pXG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIGlmICh0aGlzLmRhdGFbaV0gPiBiLmRhdGFbaV0pXG4gICAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgICBicmVhaztcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogTWxfQmlnYXJyYXlfY18xXzFcbi8vUmVxdWlyZXM6IE1sX0JpZ2FycmF5LCBjYW1sX2FycmF5X2JvdW5kX2Vycm9yLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIE1sX0JpZ2FycmF5X2NfMV8xKGtpbmQsIGxheW91dCwgZGltcywgYnVmZmVyKSB7XG4gIHRoaXMua2luZCAgID0ga2luZCA7XG4gIHRoaXMubGF5b3V0ID0gbGF5b3V0O1xuICB0aGlzLmRpbXMgICA9IGRpbXM7XG4gIHRoaXMuZGF0YSAgID0gYnVmZmVyO1xufVxuXG5NbF9CaWdhcnJheV9jXzFfMS5wcm90b3R5cGUgPSBuZXcgTWxfQmlnYXJyYXkoKVxuTWxfQmlnYXJyYXlfY18xXzEucHJvdG90eXBlLm9mZnNldCA9IGZ1bmN0aW9uIChhcmcpIHtcbiAgaWYodHlwZW9mIGFyZyAhPT0gXCJudW1iZXJcIil7XG4gICAgaWYoKGFyZyBpbnN0YW5jZW9mIEFycmF5KSAmJiBhcmcubGVuZ3RoID09IDEpXG4gICAgICBhcmcgPSBhcmdbMF07XG4gICAgZWxzZSBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJNbF9CaWdhcnJheV9jXzFfMS5vZmZzZXRcIik7XG4gIH1cbiAgaWYgKGFyZyA8IDAgfHwgYXJnID49IHRoaXMuZGltc1swXSlcbiAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIHJldHVybiBhcmc7XG59XG5cbk1sX0JpZ2FycmF5X2NfMV8xLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiAob2ZzKSB7XG4gIHJldHVybiB0aGlzLmRhdGFbb2ZzXTtcbn1cblxuTWxfQmlnYXJyYXlfY18xXzEucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uIChvZnMsdikge1xuICB0aGlzLmRhdGFbb2ZzXSA9IHY7XG4gIHJldHVybiAwXG59XG5cbk1sX0JpZ2FycmF5X2NfMV8xLnByb3RvdHlwZS5maWxsID0gZnVuY3Rpb24gKHYpIHtcbiAgdGhpcy5kYXRhLmZpbGwodik7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfY29tcGFyZVxuZnVuY3Rpb24gY2FtbF9iYV9jb21wYXJlKGEsYix0b3RhbCl7XG4gIHJldHVybiBhLmNvbXBhcmUoYix0b3RhbClcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9jcmVhdGVfdW5zYWZlXG4vL1JlcXVpcmVzOiBNbF9CaWdhcnJheSwgTWxfQmlnYXJyYXlfY18xXzEsIGNhbWxfYmFfZ2V0X3NpemUsIGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnRcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGtpbmQsIGxheW91dCwgZGltcywgZGF0YSl7XG4gIHZhciBzaXplX3Blcl9lbGVtZW50ID0gY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudChraW5kKTtcbiAgaWYoY2FtbF9iYV9nZXRfc2l6ZShkaW1zKSAqIHNpemVfcGVyX2VsZW1lbnQgIT0gZGF0YS5sZW5ndGgpIHtcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJsZW5ndGggZG9lc24ndCBtYXRjaCBkaW1zXCIpO1xuICB9XG4gIGlmKGxheW91dCA9PSAwICYmIC8vIGNfbGF5b3V0XG4gICAgIGRpbXMubGVuZ3RoID09IDEgJiYgLy8gQXJyYXkxXG4gICAgIHNpemVfcGVyX2VsZW1lbnQgPT0gMSkgLy8gMS10by0xIG1hcHBpbmdcbiAgICByZXR1cm4gbmV3IE1sX0JpZ2FycmF5X2NfMV8xKGtpbmQsIGxheW91dCwgZGltcywgZGF0YSk7XG4gIHJldHVybiBuZXcgTWxfQmlnYXJyYXkoa2luZCwgbGF5b3V0LCBkaW1zLCBkYXRhKTtcblxufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfY3JlYXRlXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXlcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZ2V0X3NpemUsIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZVxuLy9SZXF1aXJlczogY2FtbF9iYV9jcmVhdGVfYnVmZmVyXG5mdW5jdGlvbiBjYW1sX2JhX2NyZWF0ZShraW5kLCBsYXlvdXQsIGRpbXNfbWwpIHtcbiAgdmFyIGRpbXMgPSBjYW1sX2pzX2Zyb21fYXJyYXkoZGltc19tbCk7XG4gIHZhciBkYXRhID0gY2FtbF9iYV9jcmVhdGVfYnVmZmVyKGtpbmQsIGNhbWxfYmFfZ2V0X3NpemUoZGltcykpO1xuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGtpbmQsIGxheW91dCwgZGltcywgZGF0YSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfY2hhbmdlX2xheW91dFxuLy9SZXF1aXJlczogY2FtbF9iYV9jcmVhdGVfdW5zYWZlXG5mdW5jdGlvbiBjYW1sX2JhX2NoYW5nZV9sYXlvdXQoYmEsIGxheW91dCkge1xuICBpZihiYS5sYXlvdXQgPT0gbGF5b3V0KSByZXR1cm4gYmE7XG4gIHZhciBuZXdfZGltcyA9IFtdXG4gIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kaW1zLmxlbmd0aDsgaSsrKSBuZXdfZGltc1tpXSA9IGJhLmRpbXNbYmEuZGltcy5sZW5ndGggLSBpIC0gMV07XG4gIHJldHVybiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoYmEua2luZCwgbGF5b3V0LCBuZXdfZGltcywgYmEuZGF0YSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfa2luZFxuZnVuY3Rpb24gY2FtbF9iYV9raW5kKGJhKSB7XG4gIHJldHVybiBiYS5raW5kO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2xheW91dFxuZnVuY3Rpb24gY2FtbF9iYV9sYXlvdXQoYmEpIHtcbiAgcmV0dXJuIGJhLmxheW91dDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9udW1fZGltc1xuZnVuY3Rpb24gY2FtbF9iYV9udW1fZGltcyhiYSkge1xuICByZXR1cm4gYmEuZGltcy5sZW5ndGg7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZGltXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfYmFfZGltKGJhLCBpKSB7XG4gIGlmIChpIDwgMCB8fCBpID49IGJhLmRpbXMubGVuZ3RoKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LmRpbVwiKTtcbiAgcmV0dXJuIGJhLmRpbXNbaV07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZGltXzFcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZGltXG5mdW5jdGlvbiBjYW1sX2JhX2RpbV8xKGJhKSB7XG4gIHJldHVybiBjYW1sX2JhX2RpbShiYSwgMCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZGltXzJcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZGltXG5mdW5jdGlvbiBjYW1sX2JhX2RpbV8yKGJhKSB7XG4gIHJldHVybiBjYW1sX2JhX2RpbShiYSwgMSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZGltXzNcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZGltXG5mdW5jdGlvbiBjYW1sX2JhX2RpbV8zKGJhKSB7XG4gIHJldHVybiBjYW1sX2JhX2RpbShiYSwgMik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZ2V0X2dlbmVyaWNcbi8vUmVxdWlyZXM6IGNhbWxfanNfZnJvbV9hcnJheVxuZnVuY3Rpb24gY2FtbF9iYV9nZXRfZ2VuZXJpYyhiYSwgaSkge1xuICB2YXIgb2ZzID0gYmEub2Zmc2V0KGNhbWxfanNfZnJvbV9hcnJheShpKSk7XG4gIHJldHVybiBiYS5nZXQob2ZzKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV91aW50OF9nZXQxNlxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9iYV91aW50OF9nZXQxNihiYSwgaTApIHtcbiAgdmFyIG9mcyA9IGJhLm9mZnNldChpMCk7XG4gIGlmKG9mcyArIDEgPj0gYmEuZGF0YS5sZW5ndGgpIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGIxID0gYmEuZ2V0KG9mcyk7XG4gIHZhciBiMiA9IGJhLmdldChvZnMgKyAxKTtcbiAgcmV0dXJuIChiMSB8IChiMiA8PCA4KSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfdWludDhfZ2V0MzJcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfYmFfdWludDhfZ2V0MzIoYmEsIGkwKSB7XG4gIHZhciBvZnMgPSBiYS5vZmZzZXQoaTApO1xuICBpZihvZnMgKyAzID49IGJhLmRhdGEubGVuZ3RoKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIHZhciBiMSA9IGJhLmdldChvZnMrMCk7XG4gIHZhciBiMiA9IGJhLmdldChvZnMrMSk7XG4gIHZhciBiMyA9IGJhLmdldChvZnMrMik7XG4gIHZhciBiNCA9IGJhLmdldChvZnMrMyk7XG4gIHJldHVybiAoIChiMSA8PCAwKSAgfFxuICAgICAgICAgICAoYjIgPDwgOCkgIHxcbiAgICAgICAgICAgKGIzIDw8IDE2KSB8XG4gICAgICAgICAgIChiNCA8PCAyNCkgKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV91aW50OF9nZXQ2NFxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvciwgY2FtbF9pbnQ2NF9vZl9ieXRlc1xuZnVuY3Rpb24gY2FtbF9iYV91aW50OF9nZXQ2NChiYSwgaTApIHtcbiAgdmFyIG9mcyA9IGJhLm9mZnNldChpMCk7XG4gIGlmKG9mcyArIDcgPj0gYmEuZGF0YS5sZW5ndGgpIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGIxID0gYmEuZ2V0KG9mcyswKTtcbiAgdmFyIGIyID0gYmEuZ2V0KG9mcysxKTtcbiAgdmFyIGIzID0gYmEuZ2V0KG9mcysyKTtcbiAgdmFyIGI0ID0gYmEuZ2V0KG9mcyszKTtcbiAgdmFyIGI1ID0gYmEuZ2V0KG9mcys0KTtcbiAgdmFyIGI2ID0gYmEuZ2V0KG9mcys1KTtcbiAgdmFyIGI3ID0gYmEuZ2V0KG9mcys2KTtcbiAgdmFyIGI4ID0gYmEuZ2V0KG9mcys3KTtcbiAgcmV0dXJuIGNhbWxfaW50NjRfb2ZfYnl0ZXMoW2I4LGI3LGI2LGI1LGI0LGIzLGIyLGIxXSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZ2V0XzFcbmZ1bmN0aW9uIGNhbWxfYmFfZ2V0XzEoYmEsIGkwKSB7XG4gIHJldHVybiBiYS5nZXQoYmEub2Zmc2V0KGkwKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZ2V0XzJcbmZ1bmN0aW9uIGNhbWxfYmFfZ2V0XzIoYmEsIGkwLCBpMSkge1xuICByZXR1cm4gYmEuZ2V0KGJhLm9mZnNldChbaTAsaTFdKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZ2V0XzNcbmZ1bmN0aW9uIGNhbWxfYmFfZ2V0XzMoYmEsIGkwLCBpMSwgaTIpIHtcbiAgcmV0dXJuIGJhLmdldChiYS5vZmZzZXQoW2kwLGkxLGkyXSkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3NldF9nZW5lcmljXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfYmFfc2V0X2dlbmVyaWMoYmEsIGksIHYpIHtcbiAgYmEuc2V0KGJhLm9mZnNldChjYW1sX2pzX2Zyb21fYXJyYXkoaSkpLCB2KTtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV91aW50OF9zZXQxNlxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9iYV91aW50OF9zZXQxNihiYSwgaTAsIHYpIHtcbiAgdmFyIG9mcyA9IGJhLm9mZnNldChpMCk7XG4gIGlmKG9mcyArIDEgPj0gYmEuZGF0YS5sZW5ndGgpIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgYmEuc2V0KG9mcyswLCAgdiAgICAgICAgJiAweGZmKTtcbiAgYmEuc2V0KG9mcysxLCAodiA+Pj4gOCkgJiAweGZmKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfdWludDhfc2V0MzJcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfYmFfdWludDhfc2V0MzIoYmEsIGkwLCB2KSB7XG4gIHZhciBvZnMgPSBiYS5vZmZzZXQoaTApO1xuICBpZihvZnMgKyAzID49IGJhLmRhdGEubGVuZ3RoKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIGJhLnNldChvZnMrMCwgIHYgICAgICAgICAmIDB4ZmYpO1xuICBiYS5zZXQob2ZzKzEsICh2ID4+PiA4KSAgJiAweGZmKTtcbiAgYmEuc2V0KG9mcysyLCAodiA+Pj4gMTYpICYgMHhmZik7XG4gIGJhLnNldChvZnMrMywgKHYgPj4+IDI0KSAmIDB4ZmYpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV91aW50OF9zZXQ2NFxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvciwgY2FtbF9pbnQ2NF90b19ieXRlc1xuZnVuY3Rpb24gY2FtbF9iYV91aW50OF9zZXQ2NChiYSwgaTAsIHYpIHtcbiAgdmFyIG9mcyA9IGJhLm9mZnNldChpMCk7XG4gIGlmKG9mcyArIDcgPj0gYmEuZGF0YS5sZW5ndGgpIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgdmFyIHYgPSBjYW1sX2ludDY0X3RvX2J5dGVzKHYpO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgODsgaSsrKSBiYS5zZXQob2ZzK2ksIHZbNy1pXSlcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfc2V0XzFcbmZ1bmN0aW9uIGNhbWxfYmFfc2V0XzEoYmEsIGkwLCB2KSB7XG4gIGJhLnNldChiYS5vZmZzZXQoaTApLCB2KTtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9zZXRfMlxuZnVuY3Rpb24gY2FtbF9iYV9zZXRfMihiYSwgaTAsIGkxLCB2KSB7XG4gIGJhLnNldChiYS5vZmZzZXQoW2kwLGkxXSksIHYpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9zZXRfM1xuZnVuY3Rpb24gY2FtbF9iYV9zZXRfMyhiYSwgaTAsIGkxLCBpMiwgdikge1xuICBiYS5zZXQoYmEub2Zmc2V0KFtpMCxpMSxpMl0pLCB2KTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZmlsbFxuZnVuY3Rpb24gY2FtbF9iYV9maWxsKGJhLCB2KSB7XG4gIGJhLmZpbGwodik7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2JsaXRcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9iYV9ibGl0KHNyYywgZHN0KSB7XG4gIGlmIChkc3QuZGltcy5sZW5ndGggIT0gc3JjLmRpbXMubGVuZ3RoKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LmJsaXQ6IGRpbWVuc2lvbiBtaXNtYXRjaFwiKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBkc3QuZGltcy5sZW5ndGg7IGkrKylcbiAgICBpZiAoZHN0LmRpbXNbaV0gIT0gc3JjLmRpbXNbaV0pXG4gICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5ibGl0OiBkaW1lbnNpb24gbWlzbWF0Y2hcIik7XG4gIGRzdC5kYXRhLnNldChzcmMuZGF0YSk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3N1YlxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2JhX2NyZWF0ZV91bnNhZmUsIGNhbWxfYmFfZ2V0X3NpemVcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnRcbmZ1bmN0aW9uIGNhbWxfYmFfc3ViKGJhLCBvZnMsIGxlbikge1xuICB2YXIgY2hhbmdlZF9kaW07XG4gIHZhciBtdWwgPSAxO1xuICBpZiAoYmEubGF5b3V0ID09IDApIHtcbiAgICBmb3IgKHZhciBpID0gMTsgaSA8IGJhLmRpbXMubGVuZ3RoOyBpKyspXG4gICAgICBtdWwgPSBtdWwgKiBiYS5kaW1zW2ldO1xuICAgIGNoYW5nZWRfZGltID0gMDtcbiAgfSBlbHNlIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IChiYS5kaW1zLmxlbmd0aCAtIDEpOyBpKyspXG4gICAgICBtdWwgPSBtdWwgKiBiYS5kaW1zW2ldO1xuICAgIGNoYW5nZWRfZGltID0gYmEuZGltcy5sZW5ndGggLSAxO1xuICAgIG9mcyA9IG9mcyAtIDE7XG4gIH1cbiAgaWYgKG9mcyA8IDAgfHwgbGVuIDwgMCB8fCAob2ZzICsgbGVuKSA+IGJhLmRpbXNbY2hhbmdlZF9kaW1dKXtcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5zdWI6IGJhZCBzdWItYXJyYXlcIik7XG4gIH1cbiAgdmFyIG5ld19kaW1zID0gW107XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYmEuZGltcy5sZW5ndGg7IGkrKylcbiAgICBuZXdfZGltc1tpXSA9IGJhLmRpbXNbaV07XG4gIG5ld19kaW1zW2NoYW5nZWRfZGltXSA9IGxlbjtcbiAgbXVsICo9IGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnQoYmEua2luZCk7XG4gIHZhciBuZXdfZGF0YSA9IGJhLmRhdGEuc3ViYXJyYXkob2ZzICogbXVsLCAob2ZzICsgbGVuKSAqIG11bCk7XG4gIHJldHVybiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoYmEua2luZCwgYmEubGF5b3V0LCBuZXdfZGltcywgbmV3X2RhdGEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3NsaWNlXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXksIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZSwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2JhX2dldF9zaXplXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50XG5mdW5jdGlvbiBjYW1sX2JhX3NsaWNlKGJhLCB2aW5kKSB7XG4gIHZpbmQgPSBjYW1sX2pzX2Zyb21fYXJyYXkodmluZCk7XG4gIHZhciBudW1faW5kcyA9IHZpbmQubGVuZ3RoO1xuICB2YXIgaW5kZXggPSBbXTtcbiAgdmFyIHN1Yl9kaW1zID0gW107XG4gIHZhciBvZnM7XG5cbiAgaWYgKG51bV9pbmRzID4gYmEuZGltcy5sZW5ndGgpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkuc2xpY2U6IHRvbyBtYW55IGluZGljZXNcIik7XG5cbiAgLy8gQ29tcHV0ZSBvZmZzZXQgYW5kIGNoZWNrIGJvdW5kc1xuICBpZiAoYmEubGF5b3V0ID09IDApIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bV9pbmRzOyBpKyspXG4gICAgICBpbmRleFtpXSA9IHZpbmRbaV07XG4gICAgZm9yICg7IGkgPCBiYS5kaW1zLmxlbmd0aDsgaSsrKVxuICAgICAgaW5kZXhbaV0gPSAwO1xuICAgIHN1Yl9kaW1zID0gYmEuZGltcy5zbGljZShudW1faW5kcyk7XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1faW5kczsgaSsrKVxuICAgICAgaW5kZXhbYmEuZGltcy5sZW5ndGggLSBudW1faW5kcyArIGldID0gdmluZFtpXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJhLmRpbXMubGVuZ3RoIC0gbnVtX2luZHM7IGkrKylcbiAgICAgIGluZGV4W2ldID0gMTtcbiAgICBzdWJfZGltcyA9IGJhLmRpbXMuc2xpY2UoMCwgYmEuZGltcy5sZW5ndGggLSBudW1faW5kcyk7XG4gIH1cbiAgb2ZzID0gYmEub2Zmc2V0KGluZGV4KTtcbiAgdmFyIHNpemUgPSBjYW1sX2JhX2dldF9zaXplKHN1Yl9kaW1zKTtcbiAgdmFyIHNpemVfcGVyX2VsZW1lbnQgPSBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50KGJhLmtpbmQpO1xuICB2YXIgbmV3X2RhdGEgPSBiYS5kYXRhLnN1YmFycmF5KG9mcyAqIHNpemVfcGVyX2VsZW1lbnQsIChvZnMgKyBzaXplKSAqIHNpemVfcGVyX2VsZW1lbnQpO1xuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGJhLmtpbmQsIGJhLmxheW91dCwgc3ViX2RpbXMsIG5ld19kYXRhKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9yZXNoYXBlXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXksIGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9iYV9jcmVhdGVfdW5zYWZlLCBjYW1sX2JhX2dldF9zaXplXG5mdW5jdGlvbiBjYW1sX2JhX3Jlc2hhcGUoYmEsIHZpbmQpIHtcbiAgdmluZCA9IGNhbWxfanNfZnJvbV9hcnJheSh2aW5kKTtcbiAgdmFyIG5ld19kaW0gPSBbXTtcbiAgdmFyIG51bV9kaW1zID0gdmluZC5sZW5ndGg7XG5cbiAgaWYgKG51bV9kaW1zIDwgMCB8fCBudW1fZGltcyA+IDE2KXtcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5yZXNoYXBlOiBiYWQgbnVtYmVyIG9mIGRpbWVuc2lvbnNcIik7XG4gIH1cbiAgdmFyIG51bV9lbHRzID0gMTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1fZGltczsgaSsrKSB7XG4gICAgbmV3X2RpbVtpXSA9IHZpbmRbaV07XG4gICAgaWYgKG5ld19kaW1baV0gPCAwKVxuICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkucmVzaGFwZTogbmVnYXRpdmUgZGltZW5zaW9uXCIpO1xuICAgIG51bV9lbHRzID0gbnVtX2VsdHMgKiBuZXdfZGltW2ldO1xuICB9XG5cbiAgdmFyIHNpemUgPSBjYW1sX2JhX2dldF9zaXplKGJhLmRpbXMpO1xuICAvLyBDaGVjayB0aGF0IHNpemVzIGFncmVlXG4gIGlmIChudW1fZWx0cyAhPSBzaXplKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LnJlc2hhcGU6IHNpemUgbWlzbWF0Y2hcIik7XG4gIHJldHVybiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoYmEua2luZCwgYmEubGF5b3V0LCBuZXdfZGltLCBiYS5kYXRhKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9zZXJpYWxpemVcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfYml0c19vZl9mbG9hdCwgY2FtbF9pbnQ2NF90b19ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0XG5mdW5jdGlvbiBjYW1sX2JhX3NlcmlhbGl6ZSh3cml0ZXIsIGJhLCBzeikge1xuICB3cml0ZXIud3JpdGUoMzIsIGJhLmRpbXMubGVuZ3RoKTtcbiAgd3JpdGVyLndyaXRlKDMyLCAoYmEua2luZCB8IChiYS5sYXlvdXQgPDwgOCkpKTtcbiAgaWYoYmEuY2FtbF9jdXN0b20gPT0gXCJfYmlnYXJyMDJcIilcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGltcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYoYmEuZGltc1tpXSA8IDB4ZmZmZilcbiAgICAgICAgd3JpdGVyLndyaXRlKDE2LCBiYS5kaW1zW2ldKTtcbiAgICAgIGVsc2Uge1xuICAgICAgICB3cml0ZXIud3JpdGUoMTYsIDB4ZmZmZik7XG4gICAgICAgIHdyaXRlci53cml0ZSgzMiwgMCk7XG4gICAgICAgIHdyaXRlci53cml0ZSgzMiwgYmEuZGltc1tpXSk7XG4gICAgICB9XG4gICAgfVxuICBlbHNlXG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRpbXMubGVuZ3RoOyBpKyspIHdyaXRlci53cml0ZSgzMixiYS5kaW1zW2ldKVxuICBzd2l0Y2goYmEua2luZCl7XG4gIGNhc2UgMjogIC8vSW50OEFycmF5XG4gIGNhc2UgMzogIC8vVWludDhBcnJheVxuICBjYXNlIDEyOiAvL1VpbnQ4QXJyYXlcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGF0YS5sZW5ndGg7IGkrKyl7XG4gICAgICB3cml0ZXIud3JpdGUoOCwgYmEuZGF0YVtpXSk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDQ6ICAvLyBJbnQxNkFycmF5XG4gIGNhc2UgNTogIC8vIFVpbnQxNkFycmF5XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRhdGEubGVuZ3RoOyBpKyspe1xuICAgICAgd3JpdGVyLndyaXRlKDE2LCBiYS5kYXRhW2ldKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgNjogIC8vIEludDMyQXJyYXkgKGludDMyKVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kYXRhLmxlbmd0aDsgaSsrKXtcbiAgICAgIHdyaXRlci53cml0ZSgzMiwgYmEuZGF0YVtpXSk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDg6ICAvLyBJbnQzMkFycmF5IChpbnQpXG4gIGNhc2UgOTogIC8vIEludDMyQXJyYXkgKG5hdGl2ZWludClcbiAgICB3cml0ZXIud3JpdGUoOCwwKTtcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGF0YS5sZW5ndGg7IGkrKyl7XG4gICAgICB3cml0ZXIud3JpdGUoMzIsIGJhLmRhdGFbaV0pO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA3OiAgLy8gSW50MzJBcnJheSAoaW50NjQpXG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRhdGEubGVuZ3RoIC8gMjsgaSsrKXtcbiAgICAgIHZhciBiID0gY2FtbF9pbnQ2NF90b19ieXRlcyhiYS5nZXQoaSkpO1xuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCA4OyBqKyspIHdyaXRlci53cml0ZSAoOCwgYltqXSk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDE6ICAvLyBGbG9hdDY0QXJyYXlcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGF0YS5sZW5ndGg7IGkrKyl7XG4gICAgICB2YXIgYiA9IGNhbWxfaW50NjRfdG9fYnl0ZXMoY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0KGJhLmdldChpKSkpO1xuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCA4OyBqKyspIHdyaXRlci53cml0ZSAoOCwgYltqXSk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDA6ICAvLyBGbG9hdDMyQXJyYXlcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGF0YS5sZW5ndGg7IGkrKyl7XG4gICAgICB2YXIgYiA9IGNhbWxfaW50MzJfYml0c19vZl9mbG9hdChiYS5nZXQoaSkpO1xuICAgICAgd3JpdGVyLndyaXRlKDMyLCBiKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMTA6IC8vIEZsb2F0MzJBcnJheSAoY29tcGxleDMyKVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kYXRhLmxlbmd0aCAvIDI7IGkrKyl7XG4gICAgICB2YXIgaiA9IGJhLmdldChpKTtcbiAgICAgIHdyaXRlci53cml0ZSgzMiwgY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0KGpbMV0pKTtcbiAgICAgIHdyaXRlci53cml0ZSgzMiwgY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0KGpbMl0pKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMTE6IC8vIEZsb2F0NjRBcnJheSAoY29tcGxleDY0KVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kYXRhLmxlbmd0aCAvIDI7IGkrKyl7XG4gICAgICB2YXIgY29tcGxleCA9IGJhLmdldChpKTtcbiAgICAgIHZhciBiID0gY2FtbF9pbnQ2NF90b19ieXRlcyhjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQoY29tcGxleFsxXSkpO1xuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCA4OyBqKyspIHdyaXRlci53cml0ZSAoOCwgYltqXSk7XG4gICAgICB2YXIgYiA9IGNhbWxfaW50NjRfdG9fYnl0ZXMoY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0KGNvbXBsZXhbMl0pKTtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgODsgaisrKSB3cml0ZXIud3JpdGUgKDgsIGJbal0pO1xuICAgIH1cbiAgICBicmVhaztcbiAgfVxuICBzelswXSA9ICg0ICsgYmEuZGltcy5sZW5ndGgpICogNDtcbiAgc3pbMV0gPSAoNCArIGJhLmRpbXMubGVuZ3RoKSAqIDg7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZGVzZXJpYWxpemVcbi8vUmVxdWlyZXM6IGNhbWxfYmFfY3JlYXRlX3Vuc2FmZSwgY2FtbF9mYWlsd2l0aFxuLy9SZXF1aXJlczogY2FtbF9iYV9nZXRfc2l6ZVxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZl9ieXRlcywgY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzXG4vL1JlcXVpcmVzOiBjYW1sX2ludDMyX2Zsb2F0X29mX2JpdHNcbi8vUmVxdWlyZXM6IGNhbWxfYmFfY3JlYXRlX2J1ZmZlclxuZnVuY3Rpb24gY2FtbF9iYV9kZXNlcmlhbGl6ZShyZWFkZXIsIHN6LCBuYW1lKXtcbiAgdmFyIG51bV9kaW1zID0gcmVhZGVyLnJlYWQzMnMoKTtcbiAgaWYgKG51bV9kaW1zIDwgMCB8fCBudW1fZGltcyA+IDE2KVxuICAgIGNhbWxfZmFpbHdpdGgoXCJpbnB1dF92YWx1ZTogd3JvbmcgbnVtYmVyIG9mIGJpZ2FycmF5IGRpbWVuc2lvbnNcIik7XG4gIHZhciB0YWcgPSByZWFkZXIucmVhZDMycygpO1xuICB2YXIga2luZCA9IHRhZyAmIDB4ZmZcbiAgdmFyIGxheW91dCA9ICh0YWcgPj4gOCkgJiAxO1xuICB2YXIgZGltcyA9IFtdXG4gIGlmKG5hbWUgPT0gXCJfYmlnYXJyMDJcIilcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bV9kaW1zOyBpKyspIHtcbiAgICAgIHZhciBzaXplX2RpbSA9IHJlYWRlci5yZWFkMTZ1KCk7XG4gICAgICBpZihzaXplX2RpbSA9PSAweGZmZmYpe1xuICAgICAgICB2YXIgc2l6ZV9kaW1faGkgPSByZWFkZXIucmVhZDMydSgpO1xuICAgICAgICB2YXIgc2l6ZV9kaW1fbG8gPSByZWFkZXIucmVhZDMydSgpO1xuICAgICAgICBpZihzaXplX2RpbV9oaSAhPSAwKVxuICAgICAgICAgIGNhbWxfZmFpbHdpdGgoXCJpbnB1dF92YWx1ZTogYmlnYXJyYXkgZGltZW5zaW9uIG92ZXJmbG93IGluIDMyYml0XCIpO1xuICAgICAgICBzaXplX2RpbSA9IHNpemVfZGltX2xvO1xuICAgICAgfVxuICAgICAgZGltcy5wdXNoKHNpemVfZGltKTtcbiAgICB9XG4gIGVsc2VcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bV9kaW1zOyBpKyspIGRpbXMucHVzaChyZWFkZXIucmVhZDMydSgpKTtcbiAgdmFyIHNpemUgPSBjYW1sX2JhX2dldF9zaXplKGRpbXMpO1xuICB2YXIgZGF0YSA9IGNhbWxfYmFfY3JlYXRlX2J1ZmZlcihraW5kLCBzaXplKTtcbiAgdmFyIGJhID0gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGtpbmQsIGxheW91dCwgZGltcywgZGF0YSk7XG4gIHN3aXRjaChraW5kKXtcbiAgY2FzZSAyOiAgLy9JbnQ4QXJyYXlcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXtcbiAgICAgIGRhdGFbaV0gPSByZWFkZXIucmVhZDhzKCk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDM6ICAvL1VpbnQ4QXJyYXlcbiAgY2FzZSAxMjogLy9VaW50OEFycmF5XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICBkYXRhW2ldID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA0OiAgLy8gSW50MTZBcnJheVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgZGF0YVtpXSA9IHJlYWRlci5yZWFkMTZzKCk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDU6ICAvLyBVaW50MTZBcnJheVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgZGF0YVtpXSA9IHJlYWRlci5yZWFkMTZ1KCk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDY6ICAvLyBJbnQzMkFycmF5IChpbnQzMilcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXtcbiAgICAgIGRhdGFbaV0gPSByZWFkZXIucmVhZDMycygpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA4OiAgLy8gSW50MzJBcnJheSAoaW50KVxuICBjYXNlIDk6ICAvLyBJbnQzMkFycmF5IChuYXRpdmVpbnQpXG4gICAgdmFyIHNpeHR5ID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgIGlmKHNpeHR5KSBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IGNhbm5vdCByZWFkIGJpZ2FycmF5IHdpdGggNjQtYml0IE9DYW1sIGludHNcIik7XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICBkYXRhW2ldID0gcmVhZGVyLnJlYWQzMnMoKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgNzogLy8gKGludDY0KVxuICAgIHZhciB0ID0gbmV3IEFycmF5KDgpOztcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXtcbiAgICAgIGZvciAodmFyIGogPSAwO2ogPCA4O2orKykgdFtqXSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgIHZhciBpbnQ2NCA9IGNhbWxfaW50NjRfb2ZfYnl0ZXModCk7XG4gICAgICBiYS5zZXQoaSxpbnQ2NCk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDE6ICAvLyBGbG9hdDY0QXJyYXlcbiAgICB2YXIgdCA9IG5ldyBBcnJheSg4KTs7XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICBmb3IgKHZhciBqID0gMDtqIDwgODtqKyspIHRbal0gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICB2YXIgZiA9IGNhbWxfaW50NjRfZmxvYXRfb2ZfYml0cyhjYW1sX2ludDY0X29mX2J5dGVzKHQpKTtcbiAgICAgIGJhLnNldChpLGYpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAwOiAgLy8gRmxvYXQzMkFycmF5XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICB2YXIgZiA9IGNhbWxfaW50MzJfZmxvYXRfb2ZfYml0cyhyZWFkZXIucmVhZDMycygpKTtcbiAgICAgIGJhLnNldChpLGYpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAxMDogLy8gRmxvYXQzMkFycmF5IChjb21wbGV4MzIpXG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICB2YXIgcmUgPSBjYW1sX2ludDMyX2Zsb2F0X29mX2JpdHMocmVhZGVyLnJlYWQzMnMoKSk7XG4gICAgICB2YXIgaW0gPSBjYW1sX2ludDMyX2Zsb2F0X29mX2JpdHMocmVhZGVyLnJlYWQzMnMoKSk7XG4gICAgICBiYS5zZXQoaSxbMjU0LHJlLGltXSk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDExOiAvLyBGbG9hdDY0QXJyYXkgKGNvbXBsZXg2NClcbiAgICB2YXIgdCA9IG5ldyBBcnJheSg4KTs7XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICBmb3IgKHZhciBqID0gMDtqIDwgODtqKyspIHRbal0gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICB2YXIgcmUgPSBjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHMoY2FtbF9pbnQ2NF9vZl9ieXRlcyh0KSk7XG4gICAgICBmb3IgKHZhciBqID0gMDtqIDwgODtqKyspIHRbal0gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICB2YXIgaW0gPSBjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHMoY2FtbF9pbnQ2NF9vZl9ieXRlcyh0KSk7XG4gICAgICBiYS5zZXQoaSxbMjU0LHJlLGltXSk7XG4gICAgfVxuICAgIGJyZWFrXG4gIH1cbiAgc3pbMF0gPSAoNCArIG51bV9kaW1zKSAqIDQ7XG4gIHJldHVybiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoa2luZCwgbGF5b3V0LCBkaW1zLCBkYXRhKTtcbn1cblxuLy9EZXByZWNhdGVkXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2NyZWF0ZV9mcm9tXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUsIGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudFxuZnVuY3Rpb24gY2FtbF9iYV9jcmVhdGVfZnJvbShkYXRhMSwgZGF0YTIsIGpzdHlwLCBraW5kLCBsYXlvdXQsIGRpbXMpe1xuICBpZihkYXRhMiB8fCBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50KGtpbmQpID09IDIpe1xuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNhbWxfYmFfY3JlYXRlX2Zyb206IHVzZSByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlXCIpO1xuICB9XG4gIHJldHVybiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoa2luZCwgbGF5b3V0LCBkaW1zLCBkYXRhMSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfaGFzaCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9iYV9nZXRfc2l6ZSwgY2FtbF9oYXNoX21peF9pbnQsIGNhbWxfaGFzaF9taXhfZmxvYXRcbmZ1bmN0aW9uIGNhbWxfYmFfaGFzaChiYSl7XG4gIHZhciBudW1fZWx0cyA9IGNhbWxfYmFfZ2V0X3NpemUoYmEuZGltcyk7XG4gIHZhciBoID0gMDtcbiAgc3dpdGNoKGJhLmtpbmQpe1xuICBjYXNlIDI6ICAvL0ludDhBcnJheVxuICBjYXNlIDM6ICAvL1VpbnQ4QXJyYXlcbiAgY2FzZSAxMjogLy9VaW50OEFycmF5XG4gICAgaWYobnVtX2VsdHMgPiAyNTYpIG51bV9lbHRzID0gMjU2O1xuICAgIHZhciB3ID0gMCwgaSA9MDtcbiAgICBmb3IoaSA9IDA7IGkgKyA0IDw9IGJhLmRhdGEubGVuZ3RoOyBpKz00KXtcbiAgICAgIHcgPSBiYS5kYXRhW2krMF0gfCAoYmEuZGF0YVtpKzFdIDw8IDgpIHwgKGJhLmRhdGFbaSsyXSA8PCAxNikgfCAoYmEuZGF0YVtpKzNdIDw8IDI0KTtcbiAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLHcpO1xuICAgIH1cbiAgICB3ID0gMDtcbiAgICBzd2l0Y2ggKG51bV9lbHRzICYgMykge1xuICAgIGNhc2UgMzogdyAgPSBiYS5kYXRhW2krMl0gPDwgMTY7ICAgIC8qIGZhbGx0aHJvdWdoICovXG4gICAgY2FzZSAyOiB3IHw9IGJhLmRhdGFbaSsxXSA8PCA4OyAgICAgLyogZmFsbHRocm91Z2ggKi9cbiAgICBjYXNlIDE6IHcgfD0gYmEuZGF0YVtpKzBdO1xuICAgICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIHcpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA0OiAgLy8gSW50MTZBcnJheVxuICBjYXNlIDU6ICAvLyBVaW50MTZBcnJheVxuICAgIGlmKG51bV9lbHRzID4gMTI4KSBudW1fZWx0cyA9IDEyODtcbiAgICB2YXIgdyA9IDAsIGkgPTA7XG4gICAgZm9yKGkgPSAwOyBpICsgMiA8PSBiYS5kYXRhLmxlbmd0aDsgaSs9Mil7XG4gICAgICB3ID0gYmEuZGF0YVtpKzBdIHwgKGJhLmRhdGFbaSsxXSA8PCAxNik7XG4gICAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCx3KTtcbiAgICB9XG4gICAgaWYgKChudW1fZWx0cyAmIDEpICE9IDApXG4gICAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgYmEuZGF0YVtpXSk7XG4gICAgYnJlYWs7XG4gIGNhc2UgNjogIC8vIEludDMyQXJyYXkgKGludDMyKVxuICAgIGlmIChudW1fZWx0cyA+IDY0KSBudW1fZWx0cyA9IDY0O1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtX2VsdHM7IGkrKykgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIGJhLmRhdGFbaV0pO1xuICAgIGJyZWFrO1xuICBjYXNlIDg6ICAvLyBJbnQzMkFycmF5IChpbnQpXG4gIGNhc2UgOTogIC8vIEludDMyQXJyYXkgKG5hdGl2ZWludClcbiAgICBpZiAobnVtX2VsdHMgPiA2NCkgbnVtX2VsdHMgPSA2NDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bV9lbHRzOyBpKyspIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCBiYS5kYXRhW2ldKTtcbiAgICBicmVhaztcbiAgY2FzZSA3OiAgLy8gSW50MzJBcnJheSAoaW50NjQpXG4gICAgaWYgKG51bV9lbHRzID4gMzIpIG51bV9lbHRzID0gMzI7XG4gICAgbnVtX2VsdHMgKj0gMlxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtX2VsdHM7IGkrKykge1xuICAgICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIGJhLmRhdGFbaV0pO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAxMDogLy8gRmxvYXQzMkFycmF5IChjb21wbGV4MzIpXG4gICAgbnVtX2VsdHMgKj0yOyAvKiBmYWxsdGhyb3VnaCAqL1xuICBjYXNlIDA6ICAvLyBGbG9hdDMyQXJyYXlcbiAgICBpZiAobnVtX2VsdHMgPiA2NCkgbnVtX2VsdHMgPSA2NDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bV9lbHRzOyBpKyspIGggPSBjYW1sX2hhc2hfbWl4X2Zsb2F0KGgsIGJhLmRhdGFbaV0pO1xuICAgIGJyZWFrO1xuICBjYXNlIDExOiAvLyBGbG9hdDY0QXJyYXkgKGNvbXBsZXg2NClcbiAgICBudW1fZWx0cyAqPTI7IC8qIGZhbGx0aHJvdWdoICovXG4gIGNhc2UgMTogIC8vIEZsb2F0NjRBcnJheVxuICAgIGlmIChudW1fZWx0cyA+IDMyKSBudW1fZWx0cyA9IDMyO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtX2VsdHM7IGkrKykgaCA9IGNhbWxfaGFzaF9taXhfZmxvYXQoaCwgYmEuZGF0YVtpXSk7XG4gICAgYnJlYWs7XG4gIH1cbiAgcmV0dXJuIGg7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfdG9fdHlwZWRfYXJyYXkgbXV0YWJsZVxuZnVuY3Rpb24gY2FtbF9iYV90b190eXBlZF9hcnJheShiYSl7XG4gIHJldHVybiBiYS5kYXRhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2tpbmRfb2ZfdHlwZWRfYXJyYXkgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX2JhX2tpbmRfb2ZfdHlwZWRfYXJyYXkodGEpe1xuICB2YXIga2luZDtcbiAgaWYgICAgICAodGEgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXkpIGtpbmQgPSAwO1xuICBlbHNlIGlmICh0YSBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheSkga2luZCA9IDE7XG4gIGVsc2UgaWYgKHRhIGluc3RhbmNlb2YgSW50OEFycmF5KSBraW5kID0gMjtcbiAgZWxzZSBpZiAodGEgaW5zdGFuY2VvZiBVaW50OEFycmF5KSBraW5kID0gMztcbiAgZWxzZSBpZiAodGEgaW5zdGFuY2VvZiBJbnQxNkFycmF5KSBraW5kID0gNDtcbiAgZWxzZSBpZiAodGEgaW5zdGFuY2VvZiBVaW50MTZBcnJheSkga2luZCA9IDU7XG4gIGVsc2UgaWYgKHRhIGluc3RhbmNlb2YgSW50MzJBcnJheSkga2luZCA9IDY7XG4gIGVsc2UgaWYgKHRhIGluc3RhbmNlb2YgVWludDMyQXJyYXkpIGtpbmQgPSA2O1xuICBlbHNlIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNhbWxfYmFfa2luZF9vZl90eXBlZF9hcnJheTogdW5zdXBwb3J0ZWQga2luZFwiKTtcbiAgcmV0dXJuIGtpbmQ7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfZnJvbV90eXBlZF9hcnJheSBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2tpbmRfb2ZfdHlwZWRfYXJyYXlcbi8vUmVxdWlyZXM6IGNhbWxfYmFfY3JlYXRlX3Vuc2FmZVxuZnVuY3Rpb24gY2FtbF9iYV9mcm9tX3R5cGVkX2FycmF5KHRhKXtcbiAgdmFyIGtpbmQgPSBjYW1sX2JhX2tpbmRfb2ZfdHlwZWRfYXJyYXkodGEpO1xuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKGtpbmQsIDAsIFt0YS5sZW5ndGhdLCB0YSk7XG59XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdGl2ZSBDYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKiAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKiAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICovXG4vKiAgZW4gQXV0b21hdGlxdWUuICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkICAgICovXG4vKiAgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHdpdGggICAgICovXG4vKiAgdGhlIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIGZpbGUgLi4vTElDRU5TRS4gICAgICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qICRJZDogcGFyc2luZy5jIDg5ODMgMjAwOC0wOC0wNiAwOTozODoyNVogeGxlcm95ICQgKi9cblxuLyogVGhlIFBEQSBhdXRvbWF0b24gZm9yIHBhcnNlcnMgZ2VuZXJhdGVkIGJ5IGNhbWx5YWNjICovXG5cbi8qIFRoZSBwdXNoZG93biBhdXRvbWF0YSAqL1xuXG4vL1Byb3ZpZGVzOiBjYW1sX3BhcnNlcl90cmFjZVxudmFyIGNhbWxfcGFyc2VyX3RyYWNlID0gMDtcblxuLy9Qcm92aWRlczogY2FtbF9wYXJzZV9lbmdpbmVcbi8vUmVxdWlyZXM6IGNhbWxfbGV4X2FycmF5LCBjYW1sX3BhcnNlcl90cmFjZSxjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9tbF9vdXRwdXQsIGNhbWxfbWxfc3RyaW5nX2xlbmd0aCwgY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuLy9SZXF1aXJlczogY2FtbF9qc2J5dGVzX29mX3N0cmluZywgTWxCeXRlc1xuZnVuY3Rpb24gY2FtbF9wYXJzZV9lbmdpbmUodGFibGVzLCBlbnYsIGNtZCwgYXJnKVxue1xuICB2YXIgRVJSQ09ERSA9IDI1NjtcblxuICAvL3ZhciBTVEFSVCA9IDA7XG4gIC8vdmFyIFRPS0VOX1JFQUQgPSAxO1xuICAvL3ZhciBTVEFDS1NfR1JPV05fMSA9IDI7XG4gIC8vdmFyIFNUQUNLU19HUk9XTl8yID0gMztcbiAgLy92YXIgU0VNQU5USUNfQUNUSU9OX0NPTVBVVEVEID0gNDtcbiAgLy92YXIgRVJST1JfREVURUNURUQgPSA1O1xuICB2YXIgbG9vcCA9IDY7XG4gIHZhciB0ZXN0c2hpZnQgPSA3O1xuICB2YXIgc2hpZnQgPSA4O1xuICB2YXIgc2hpZnRfcmVjb3ZlciA9IDk7XG4gIHZhciByZWR1Y2UgPSAxMDtcblxuICB2YXIgUkVBRF9UT0tFTiA9IDA7XG4gIHZhciBSQUlTRV9QQVJTRV9FUlJPUiA9IDE7XG4gIHZhciBHUk9XX1NUQUNLU18xID0gMjtcbiAgdmFyIEdST1dfU1RBQ0tTXzIgPSAzO1xuICB2YXIgQ09NUFVURV9TRU1BTlRJQ19BQ1RJT04gPSA0O1xuICB2YXIgQ0FMTF9FUlJPUl9GVU5DVElPTiA9IDU7XG5cbiAgdmFyIGVudl9zX3N0YWNrID0gMTtcbiAgdmFyIGVudl92X3N0YWNrID0gMjtcbiAgdmFyIGVudl9zeW1iX3N0YXJ0X3N0YWNrID0gMztcbiAgdmFyIGVudl9zeW1iX2VuZF9zdGFjayA9IDQ7XG4gIHZhciBlbnZfc3RhY2tzaXplID0gNTtcbiAgdmFyIGVudl9zdGFja2Jhc2UgPSA2O1xuICB2YXIgZW52X2N1cnJfY2hhciA9IDc7XG4gIHZhciBlbnZfbHZhbCA9IDg7XG4gIHZhciBlbnZfc3ltYl9zdGFydCA9IDk7XG4gIHZhciBlbnZfc3ltYl9lbmQgPSAxMDtcbiAgdmFyIGVudl9hc3AgPSAxMTtcbiAgdmFyIGVudl9ydWxlX2xlbiA9IDEyO1xuICB2YXIgZW52X3J1bGVfbnVtYmVyID0gMTM7XG4gIHZhciBlbnZfc3AgPSAxNDtcbiAgdmFyIGVudl9zdGF0ZSA9IDE1O1xuICB2YXIgZW52X2VycmZsYWcgPSAxNjtcblxuICAvLyB2YXIgX3RibF9hY3Rpb25zID0gMTtcbiAgdmFyIHRibF90cmFuc2xfY29uc3QgPSAyO1xuICB2YXIgdGJsX3RyYW5zbF9ibG9jayA9IDM7XG4gIHZhciB0YmxfbGhzID0gNDtcbiAgdmFyIHRibF9sZW4gPSA1O1xuICB2YXIgdGJsX2RlZnJlZCA9IDY7XG4gIHZhciB0YmxfZGdvdG8gPSA3O1xuICB2YXIgdGJsX3NpbmRleCA9IDg7XG4gIHZhciB0YmxfcmluZGV4ID0gOTtcbiAgdmFyIHRibF9naW5kZXggPSAxMDtcbiAgdmFyIHRibF90YWJsZXNpemUgPSAxMTtcbiAgdmFyIHRibF90YWJsZSA9IDEyO1xuICB2YXIgdGJsX2NoZWNrID0gMTM7XG4gIC8vIHZhciBfdGJsX2Vycm9yX2Z1bmN0aW9uID0gMTQ7XG4gIHZhciB0YmxfbmFtZXNfY29uc3QgPSAxNTtcbiAgdmFyIHRibF9uYW1lc19ibG9jayA9IDE2O1xuXG5cbiAgZnVuY3Rpb24gbG9nKHgpIHtcbiAgICB2YXIgcyA9IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoeCArIFwiXFxuXCIpO1xuICAgIGNhbWxfbWxfb3V0cHV0KDIsIHMsIDAsIGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSk7XG4gIH1cblxuICBmdW5jdGlvbiB0b2tlbl9uYW1lKG5hbWVzLCBudW1iZXIpXG4gIHtcbiAgICB2YXIgc3RyID0gY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcobmFtZXMpO1xuICAgIGlmIChzdHJbMF0gPT0gJ1xceDAwJylcbiAgICAgIHJldHVybiBcIjx1bmtub3duIHRva2VuPlwiO1xuICAgIHJldHVybiBzdHIuc3BsaXQoJ1xceDAwJylbbnVtYmVyXTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHByaW50X3Rva2VuKHN0YXRlLCB0b2spXG4gIHtcbiAgICB2YXIgdG9rZW4sIGtpbmQ7XG4gICAgaWYgKHRvayBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICB0b2tlbiA9IHRva2VuX25hbWUodGFibGVzW3RibF9uYW1lc19ibG9ja10sIHRva1swXSk7XG4gICAgICBpZiAodHlwZW9mIHRva1sxXSA9PSBcIm51bWJlclwiKVxuICAgICAgICBraW5kID0gXCJcIiArIHRva1sxXTtcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiB0b2tbMV0gPT0gXCJzdHJpbmdcIilcbiAgICAgICAga2luZCA9IHRva1sxXVxuICAgICAgZWxzZSBpZiAodG9rWzFdIGluc3RhbmNlb2YgTWxCeXRlcylcbiAgICAgICAga2luZCA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcodG9rWzFdKVxuICAgICAgZWxzZVxuICAgICAgICBraW5kID0gXCJfXCJcbiAgICAgIGxvZyhcIlN0YXRlIFwiICsgc3RhdGUgKyBcIjogcmVhZCB0b2tlbiBcIiArIHRva2VuICsgXCIoXCIgKyBraW5kICsgXCIpXCIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0b2tlbiA9IHRva2VuX25hbWUodGFibGVzW3RibF9uYW1lc19jb25zdF0sIHRvayk7XG4gICAgICBsb2coXCJTdGF0ZSBcIiArIHN0YXRlICsgXCI6IHJlYWQgdG9rZW4gXCIgKyB0b2tlbik7XG4gICAgfVxuICB9XG5cbiAgaWYgKCF0YWJsZXMuZGdvdG8pIHtcbiAgICB0YWJsZXMuZGVmcmVkID0gY2FtbF9sZXhfYXJyYXkgKHRhYmxlc1t0YmxfZGVmcmVkXSk7XG4gICAgdGFibGVzLnNpbmRleCA9IGNhbWxfbGV4X2FycmF5ICh0YWJsZXNbdGJsX3NpbmRleF0pO1xuICAgIHRhYmxlcy5jaGVjayAgPSBjYW1sX2xleF9hcnJheSAodGFibGVzW3RibF9jaGVja10pO1xuICAgIHRhYmxlcy5yaW5kZXggPSBjYW1sX2xleF9hcnJheSAodGFibGVzW3RibF9yaW5kZXhdKTtcbiAgICB0YWJsZXMudGFibGUgID0gY2FtbF9sZXhfYXJyYXkgKHRhYmxlc1t0YmxfdGFibGVdKTtcbiAgICB0YWJsZXMubGVuICAgID0gY2FtbF9sZXhfYXJyYXkgKHRhYmxlc1t0YmxfbGVuXSk7XG4gICAgdGFibGVzLmxocyAgICA9IGNhbWxfbGV4X2FycmF5ICh0YWJsZXNbdGJsX2xoc10pO1xuICAgIHRhYmxlcy5naW5kZXggPSBjYW1sX2xleF9hcnJheSAodGFibGVzW3RibF9naW5kZXhdKTtcbiAgICB0YWJsZXMuZGdvdG8gID0gY2FtbF9sZXhfYXJyYXkgKHRhYmxlc1t0YmxfZGdvdG9dKTtcbiAgfVxuXG4gIHZhciByZXMgPSAwLCBuLCBuMSwgbjIsIHN0YXRlMTtcblxuICAvLyBSRVNUT1JFXG4gIHZhciBzcCA9IGVudltlbnZfc3BdO1xuICB2YXIgc3RhdGUgPSBlbnZbZW52X3N0YXRlXTtcbiAgdmFyIGVycmZsYWcgPSBlbnZbZW52X2VycmZsYWddO1xuXG4gIGV4aXQ6Zm9yICg7Oykge1xuICAgIG5leHQ6c3dpdGNoKGNtZCkge1xuICAgIGNhc2UgMDovL1NUQVJUOlxuICAgICAgc3RhdGUgPSAwO1xuICAgICAgZXJyZmxhZyA9IDA7XG4gICAgICAvLyBGYWxsIHRocm91Z2hcblxuICAgIGNhc2UgNjovL2xvb3A6XG4gICAgICBuID0gdGFibGVzLmRlZnJlZFtzdGF0ZV07XG4gICAgICBpZiAobiAhPSAwKSB7IGNtZCA9IHJlZHVjZTsgYnJlYWs7IH1cbiAgICAgIGlmIChlbnZbZW52X2N1cnJfY2hhcl0gPj0gMCkgeyBjbWQgPSB0ZXN0c2hpZnQ7IGJyZWFrOyB9XG4gICAgICByZXMgPSBSRUFEX1RPS0VOO1xuICAgICAgYnJlYWsgZXhpdDtcbiAgICAgIC8qIFRoZSBNTCBjb2RlIGNhbGxzIHRoZSBsZXhlciBhbmQgdXBkYXRlcyAqL1xuICAgICAgLyogc3ltYl9zdGFydCBhbmQgc3ltYl9lbmQgKi9cbiAgICBjYXNlIDE6Ly9UT0tFTl9SRUFEOlxuICAgICAgaWYgKGFyZyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgIGVudltlbnZfY3Vycl9jaGFyXSA9IHRhYmxlc1t0YmxfdHJhbnNsX2Jsb2NrXVthcmdbMF0gKyAxXTtcbiAgICAgICAgZW52W2Vudl9sdmFsXSA9IGFyZ1sxXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVudltlbnZfY3Vycl9jaGFyXSA9IHRhYmxlc1t0YmxfdHJhbnNsX2NvbnN0XVthcmcgKyAxXTtcbiAgICAgICAgZW52W2Vudl9sdmFsXSA9IDA7XG4gICAgICB9XG4gICAgICBpZiAoY2FtbF9wYXJzZXJfdHJhY2UpIHByaW50X3Rva2VuIChzdGF0ZSwgYXJnKTtcbiAgICAgIC8vIEZhbGwgdGhyb3VnaFxuXG4gICAgY2FzZSA3Oi8vdGVzdHNoaWZ0OlxuICAgICAgbjEgPSB0YWJsZXMuc2luZGV4W3N0YXRlXTtcbiAgICAgIG4yID0gbjEgKyBlbnZbZW52X2N1cnJfY2hhcl07XG4gICAgICBpZiAobjEgIT0gMCAmJiBuMiA+PSAwICYmIG4yIDw9IHRhYmxlc1t0YmxfdGFibGVzaXplXSAmJlxuICAgICAgICAgIHRhYmxlcy5jaGVja1tuMl0gPT0gZW52W2Vudl9jdXJyX2NoYXJdKSB7XG4gICAgICAgIGNtZCA9IHNoaWZ0OyBicmVhaztcbiAgICAgIH1cbiAgICAgIG4xID0gdGFibGVzLnJpbmRleFtzdGF0ZV07XG4gICAgICBuMiA9IG4xICsgZW52W2Vudl9jdXJyX2NoYXJdO1xuICAgICAgaWYgKG4xICE9IDAgJiYgbjIgPj0gMCAmJiBuMiA8PSB0YWJsZXNbdGJsX3RhYmxlc2l6ZV0gJiZcbiAgICAgICAgICB0YWJsZXMuY2hlY2tbbjJdID09IGVudltlbnZfY3Vycl9jaGFyXSkge1xuICAgICAgICBuID0gdGFibGVzLnRhYmxlW24yXTtcbiAgICAgICAgY21kID0gcmVkdWNlOyBicmVhaztcbiAgICAgIH1cbiAgICAgIGlmIChlcnJmbGFnIDw9IDApIHtcbiAgICAgICAgcmVzID0gQ0FMTF9FUlJPUl9GVU5DVElPTjtcbiAgICAgICAgYnJlYWsgZXhpdDtcbiAgICAgIH1cbiAgICAgIC8vIEZhbGwgdGhyb3VnaFxuICAgICAgLyogVGhlIE1MIGNvZGUgY2FsbHMgdGhlIGVycm9yIGZ1bmN0aW9uICovXG4gICAgY2FzZSA1Oi8vRVJST1JfREVURUNURUQ6XG4gICAgICBpZiAoZXJyZmxhZyA8IDMpIHtcbiAgICAgICAgZXJyZmxhZyA9IDM7XG4gICAgICAgIGZvciAoOzspIHtcbiAgICAgICAgICBzdGF0ZTEgPSBlbnZbZW52X3Nfc3RhY2tdW3NwICsgMV07XG4gICAgICAgICAgbjEgPSB0YWJsZXMuc2luZGV4W3N0YXRlMV07XG4gICAgICAgICAgbjIgPSBuMSArIEVSUkNPREU7XG4gICAgICAgICAgaWYgKG4xICE9IDAgJiYgbjIgPj0gMCAmJiBuMiA8PSB0YWJsZXNbdGJsX3RhYmxlc2l6ZV0gJiZcbiAgICAgICAgICAgICAgdGFibGVzLmNoZWNrW24yXSA9PSBFUlJDT0RFKSB7XG4gICAgICAgICAgICBpZiAoY2FtbF9wYXJzZXJfdHJhY2UpXG4gICAgICAgICAgICAgIGxvZyhcIlJlY292ZXJpbmcgaW4gc3RhdGUgXCIgKyBzdGF0ZTEpO1xuICAgICAgICAgICAgY21kID0gc2hpZnRfcmVjb3ZlcjsgYnJlYWsgbmV4dDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGNhbWxfcGFyc2VyX3RyYWNlKVxuICAgICAgICAgICAgICBsb2coXCJEaXNjYXJkaW5nIHN0YXRlIFwiICsgc3RhdGUxKTtcbiAgICAgICAgICAgIGlmIChzcCA8PSBlbnZbZW52X3N0YWNrYmFzZV0pIHtcbiAgICAgICAgICAgICAgaWYgKGNhbWxfcGFyc2VyX3RyYWNlKVxuICAgICAgICAgICAgICAgIGxvZyhcIk5vIG1vcmUgc3RhdGVzIHRvIGRpc2NhcmRcIik7XG4gICAgICAgICAgICAgIHJldHVybiBSQUlTRV9QQVJTRV9FUlJPUjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIFRoZSBNTCBjb2RlIHJhaXNlcyBQYXJzZV9lcnJvciAqL1xuICAgICAgICAgICAgc3AtLTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChlbnZbZW52X2N1cnJfY2hhcl0gPT0gMClcbiAgICAgICAgICByZXR1cm4gUkFJU0VfUEFSU0VfRVJST1I7IC8qIFRoZSBNTCBjb2RlIHJhaXNlcyBQYXJzZV9lcnJvciAqL1xuICAgICAgICBpZiAoY2FtbF9wYXJzZXJfdHJhY2UpXG4gICAgICAgICAgbG9nKFwiRGlzY2FyZGluZyBsYXN0IHRva2VuIHJlYWRcIik7XG4gICAgICAgIGVudltlbnZfY3Vycl9jaGFyXSA9IC0xO1xuICAgICAgICBjbWQgPSBsb29wOyBicmVhaztcbiAgICAgIH1cbiAgICAgIC8vIEZhbGwgdGhyb3VnaFxuICAgIGNhc2UgODovL3NoaWZ0OlxuICAgICAgZW52W2Vudl9jdXJyX2NoYXJdID0gLTE7XG4gICAgICBpZiAoZXJyZmxhZyA+IDApIGVycmZsYWctLTtcbiAgICAgIC8vIEZhbGwgdGhyb3VnaFxuICAgIGNhc2UgOTovL3NoaWZ0X3JlY292ZXI6XG4gICAgICBpZiAoY2FtbF9wYXJzZXJfdHJhY2UpXG4gICAgICAgIGxvZyhcIlN0YXRlIFwiICsgc3RhdGUgKyBcIjogc2hpZnQgdG8gc3RhdGUgXCIgKyB0YWJsZXMudGFibGVbbjJdKTtcbiAgICAgIHN0YXRlID0gdGFibGVzLnRhYmxlW24yXTtcbiAgICAgIHNwKys7XG4gICAgICBpZiAoc3AgPj0gZW52W2Vudl9zdGFja3NpemVdKSB7XG4gICAgICAgIHJlcyA9IEdST1dfU1RBQ0tTXzE7XG4gICAgICAgIGJyZWFrIGV4aXQ7XG4gICAgICB9XG4gICAgICAvLyBGYWxsIHRocm91Z2hcbiAgICAgIC8qIFRoZSBNTCBjb2RlIHJlc2l6ZXMgdGhlIHN0YWNrcyAqL1xuICAgIGNhc2UgMjovL1NUQUNLU19HUk9XTl8xOlxuICAgICAgZW52W2Vudl9zX3N0YWNrXVtzcCArIDFdID0gc3RhdGU7XG4gICAgICBlbnZbZW52X3Zfc3RhY2tdW3NwICsgMV0gPSBlbnZbZW52X2x2YWxdO1xuICAgICAgZW52W2Vudl9zeW1iX3N0YXJ0X3N0YWNrXVtzcCArIDFdID0gZW52W2Vudl9zeW1iX3N0YXJ0XTtcbiAgICAgIGVudltlbnZfc3ltYl9lbmRfc3RhY2tdW3NwICsgMV0gPSBlbnZbZW52X3N5bWJfZW5kXTtcbiAgICAgIGNtZCA9IGxvb3A7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgMTA6Ly9yZWR1Y2U6XG4gICAgICBpZiAoY2FtbF9wYXJzZXJfdHJhY2UpXG4gICAgICAgIGxvZyhcIlN0YXRlIFwiICsgc3RhdGUgKyBcIjogcmVkdWNlIGJ5IHJ1bGUgXCIgKyBuKTtcbiAgICAgIHZhciBtID0gdGFibGVzLmxlbltuXTtcbiAgICAgIGVudltlbnZfYXNwXSA9IHNwO1xuICAgICAgZW52W2Vudl9ydWxlX251bWJlcl0gPSBuO1xuICAgICAgZW52W2Vudl9ydWxlX2xlbl0gPSBtO1xuICAgICAgc3AgPSBzcCAtIG0gKyAxO1xuICAgICAgbSA9IHRhYmxlcy5saHNbbl07XG4gICAgICBzdGF0ZTEgPSBlbnZbZW52X3Nfc3RhY2tdW3NwXTtcbiAgICAgIG4xID0gdGFibGVzLmdpbmRleFttXTtcbiAgICAgIG4yID0gbjEgKyBzdGF0ZTE7XG4gICAgICBpZiAobjEgIT0gMCAmJiBuMiA+PSAwICYmIG4yIDw9IHRhYmxlc1t0YmxfdGFibGVzaXplXSAmJlxuICAgICAgICAgIHRhYmxlcy5jaGVja1tuMl0gPT0gc3RhdGUxKVxuICAgICAgICBzdGF0ZSA9IHRhYmxlcy50YWJsZVtuMl07XG4gICAgICBlbHNlXG4gICAgICAgIHN0YXRlID0gdGFibGVzLmRnb3RvW21dO1xuICAgICAgaWYgKHNwID49IGVudltlbnZfc3RhY2tzaXplXSkge1xuICAgICAgICByZXMgPSBHUk9XX1NUQUNLU18yO1xuICAgICAgICBicmVhayBleGl0O1xuICAgICAgfVxuICAgICAgLy8gRmFsbCB0aHJvdWdoXG4gICAgICAvKiBUaGUgTUwgY29kZSByZXNpemVzIHRoZSBzdGFja3MgKi9cbiAgICBjYXNlIDM6Ly9TVEFDS1NfR1JPV05fMjpcbiAgICAgIHJlcyA9IENPTVBVVEVfU0VNQU5USUNfQUNUSU9OO1xuICAgICAgYnJlYWsgZXhpdDtcbiAgICAgIC8qIFRoZSBNTCBjb2RlIGNhbGxzIHRoZSBzZW1hbnRpYyBhY3Rpb24gKi9cbiAgICBjYXNlIDQ6Ly9TRU1BTlRJQ19BQ1RJT05fQ09NUFVURUQ6XG4gICAgICBlbnZbZW52X3Nfc3RhY2tdW3NwICsgMV0gPSBzdGF0ZTtcbiAgICAgIGVudltlbnZfdl9zdGFja11bc3AgKyAxXSA9IGFyZztcbiAgICAgIHZhciBhc3AgPSBlbnZbZW52X2FzcF07XG4gICAgICBlbnZbZW52X3N5bWJfZW5kX3N0YWNrXVtzcCArIDFdID0gZW52W2Vudl9zeW1iX2VuZF9zdGFja11bYXNwICsgMV07XG4gICAgICBpZiAoc3AgPiBhc3ApIHtcbiAgICAgICAgLyogVGhpcyBpcyBhbiBlcHNpbG9uIHByb2R1Y3Rpb24uIFRha2Ugc3ltYl9zdGFydCBlcXVhbCB0byBzeW1iX2VuZC4gKi9cbiAgICAgICAgZW52W2Vudl9zeW1iX3N0YXJ0X3N0YWNrXVtzcCArIDFdID0gZW52W2Vudl9zeW1iX2VuZF9zdGFja11bYXNwICsgMV07XG4gICAgICB9XG4gICAgICBjbWQgPSBsb29wOyBicmVhaztcbiAgICAgIC8qIFNob3VsZCBub3QgaGFwcGVuICovXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBSQUlTRV9QQVJTRV9FUlJPUjtcbiAgICB9XG4gIH1cbiAgLy8gU0FWRVxuICBlbnZbZW52X3NwXSA9IHNwO1xuICBlbnZbZW52X3N0YXRlXSA9IHN0YXRlO1xuICBlbnZbZW52X2VycmZsYWddID0gZXJyZmxhZztcbiAgcmV0dXJuIHJlcztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zZXRfcGFyc2VyX3RyYWNlIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX3BhcnNlcl90cmFjZVxuZnVuY3Rpb24gY2FtbF9zZXRfcGFyc2VyX3RyYWNlKGJvb2wpIHtcbiAgdmFyIG9sZGZsYWcgPSBjYW1sX3BhcnNlcl90cmFjZTtcbiAgY2FtbF9wYXJzZXJfdHJhY2UgPSBib29sO1xuICByZXR1cm4gb2xkZmxhZztcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUHJvdmlkZXM6IGNhbWxfZm9ybWF0X2ludCBjb25zdCAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9wYXJzZV9mb3JtYXQsIGNhbWxfZmluaXNoX2Zvcm1hdHRpbmcsIGNhbWxfc3RyX3JlcGVhdFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlcywgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9mb3JtYXRfaW50KGZtdCwgaSkge1xuICBpZiAoY2FtbF9qc2J5dGVzX29mX3N0cmluZyhmbXQpID09IFwiJWRcIikgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoXCJcIitpKTtcbiAgdmFyIGYgPSBjYW1sX3BhcnNlX2Zvcm1hdChmbXQpO1xuICBpZiAoaSA8IDApIHsgaWYgKGYuc2lnbmVkY29udikgeyBmLnNpZ24gPSAtMTsgaSA9IC1pOyB9IGVsc2UgaSA+Pj49IDA7IH1cbiAgdmFyIHMgPSBpLnRvU3RyaW5nKGYuYmFzZSk7XG4gIGlmIChmLnByZWMgPj0gMCkge1xuICAgIGYuZmlsbGVyID0gJyAnO1xuICAgIHZhciBuID0gZi5wcmVjIC0gcy5sZW5ndGg7XG4gICAgaWYgKG4gPiAwKSBzID0gY2FtbF9zdHJfcmVwZWF0IChuLCAnMCcpICsgcztcbiAgfVxuICByZXR1cm4gY2FtbF9maW5pc2hfZm9ybWF0dGluZyhmLCBzKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9wYXJzZV9zaWduX2FuZF9iYXNlXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0LCBjYW1sX21sX3N0cmluZ19sZW5ndGhcbmZ1bmN0aW9uIGNhbWxfcGFyc2Vfc2lnbl9hbmRfYmFzZSAocykge1xuICB2YXIgaSA9IDAsIGxlbiA9IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSwgYmFzZSA9IDEwLCBzaWduID0gMTtcbiAgaWYgKGxlbiA+IDApIHtcbiAgICBzd2l0Y2ggKGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQocyxpKSkge1xuICAgIGNhc2UgNDU6IGkrKzsgc2lnbiA9IC0xOyBicmVhaztcbiAgICBjYXNlIDQzOiBpKys7IHNpZ24gPSAxOyBicmVhaztcbiAgICB9XG4gIH1cbiAgaWYgKGkgKyAxIDwgbGVuICYmIGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQocywgaSkgPT0gNDgpXG4gICAgc3dpdGNoIChjYW1sX3N0cmluZ191bnNhZmVfZ2V0KHMsIGkgKyAxKSkge1xuICAgIGNhc2UgMTIwOiBjYXNlIDg4OiBiYXNlID0gMTY7IGkgKz0gMjsgYnJlYWs7XG4gICAgY2FzZSAxMTE6IGNhc2UgNzk6IGJhc2UgPSAgODsgaSArPSAyOyBicmVhaztcbiAgICBjYXNlICA5ODogY2FzZSA2NjogYmFzZSA9ICAyOyBpICs9IDI7IGJyZWFrO1xuICAgIGNhc2UgMTE3OiBjYXNlIDg1OiBpICs9IDI7IGJyZWFrO1xuICAgIH1cbiAgcmV0dXJuIFtpLCBzaWduLCBiYXNlXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9wYXJzZV9kaWdpdFxuZnVuY3Rpb24gY2FtbF9wYXJzZV9kaWdpdChjKSB7XG4gIGlmIChjID49IDQ4ICYmIGMgPD0gNTcpICByZXR1cm4gYyAtIDQ4O1xuICBpZiAoYyA+PSA2NSAmJiBjIDw9IDkwKSAgcmV0dXJuIGMgLSA1NTtcbiAgaWYgKGMgPj0gOTcgJiYgYyA8PSAxMjIpIHJldHVybiBjIC0gODc7XG4gIHJldHVybiAtMTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnRfb2Zfc3RyaW5nIChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfbWxfc3RyaW5nX2xlbmd0aCwgY2FtbF9zdHJpbmdfdW5zYWZlX2dldFxuLy9SZXF1aXJlczogY2FtbF9wYXJzZV9zaWduX2FuZF9iYXNlLCBjYW1sX3BhcnNlX2RpZ2l0LCBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX2ludF9vZl9zdHJpbmcgKHMpIHtcbiAgdmFyIHIgPSBjYW1sX3BhcnNlX3NpZ25fYW5kX2Jhc2UgKHMpO1xuICB2YXIgaSA9IHJbMF0sIHNpZ24gPSByWzFdLCBiYXNlID0gclsyXTtcbiAgdmFyIGxlbiA9IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKTtcbiAgdmFyIHRocmVzaG9sZCA9IC0xID4+PiAwO1xuICB2YXIgYyA9IChpIDwgbGVuKT9jYW1sX3N0cmluZ191bnNhZmVfZ2V0KHMsIGkpOjA7XG4gIHZhciBkID0gY2FtbF9wYXJzZV9kaWdpdChjKTtcbiAgaWYgKGQgPCAwIHx8IGQgPj0gYmFzZSkgY2FtbF9mYWlsd2l0aChcImludF9vZl9zdHJpbmdcIik7XG4gIHZhciByZXMgPSBkO1xuICBmb3IgKGkrKztpPGxlbjtpKyspIHtcbiAgICBjID0gY2FtbF9zdHJpbmdfdW5zYWZlX2dldChzLCBpKTtcbiAgICBpZiAoYyA9PSA5NSkgY29udGludWU7XG4gICAgZCA9IGNhbWxfcGFyc2VfZGlnaXQoYyk7XG4gICAgaWYgKGQgPCAwIHx8IGQgPj0gYmFzZSkgYnJlYWs7XG4gICAgcmVzID0gYmFzZSAqIHJlcyArIGQ7XG4gICAgaWYgKHJlcyA+IHRocmVzaG9sZCkgY2FtbF9mYWlsd2l0aChcImludF9vZl9zdHJpbmdcIik7XG4gIH1cbiAgaWYgKGkgIT0gbGVuKSBjYW1sX2ZhaWx3aXRoKFwiaW50X29mX3N0cmluZ1wiKTtcbiAgLy8gRm9yIGJhc2UgZGlmZmVyZW50IGZyb20gMTAsIHdlIGV4cGVjdCBhbiB1bnNpZ25lZCByZXByZXNlbnRhdGlvbixcbiAgLy8gaGVuY2UgYW55IHZhbHVlIG9mICdyZXMnIChsZXNzIHRoYW4gJ3RocmVzaG9sZCcpIGlzIGFjY2VwdGFibGUuXG4gIC8vIEJ1dCB3ZSBoYXZlIHRvIGNvbnZlcnQgdGhlIHJlc3VsdCBiYWNrIHRvIGEgc2lnbmVkIGludGVnZXIuXG4gIHJlcyA9IHNpZ24gKiByZXM7XG4gIGlmICgoYmFzZSA9PSAxMCkgJiYgKChyZXMgfCAwKSAhPSByZXMpKVxuICAgIC8qIFNpZ25lZCByZXByZXNlbnRhdGlvbiBleHBlY3RlZCwgYWxsb3cgLTJeKG5iaXRzLTEpIHRvIDJeKG5iaXRzLTEpIC0gMSAqL1xuICAgIGNhbWxfZmFpbHdpdGgoXCJpbnRfb2Zfc3RyaW5nXCIpO1xuICByZXR1cm4gcmVzIHwgMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tdWwgY29uc3RcbmZ1bmN0aW9uIGNhbWxfbXVsKGEsYil7XG4gIHJldHVybiBNYXRoLmltdWwoYSxiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9kaXZcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2VfemVyb19kaXZpZGVcbmZ1bmN0aW9uIGNhbWxfZGl2KHgseSkge1xuICBpZiAoeSA9PSAwKSBjYW1sX3JhaXNlX3plcm9fZGl2aWRlICgpO1xuICByZXR1cm4gKHgveSl8MDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tb2Rcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2VfemVyb19kaXZpZGVcbmZ1bmN0aW9uIGNhbWxfbW9kKHgseSkge1xuICBpZiAoeSA9PSAwKSBjYW1sX3JhaXNlX3plcm9fZGl2aWRlICgpO1xuICByZXR1cm4geCV5O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2Jzd2FwMTZcbmZ1bmN0aW9uIGNhbWxfYnN3YXAxNih4KSB7XG4gIHJldHVybiAoKCgoeCAmIDB4MDBGRikgPDwgOCkgfFxuICAgICAgICAgICAoKHggJiAweEZGMDApID4+IDgpKSk7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2ludDMyX2Jzd2FwXG5mdW5jdGlvbiBjYW1sX2ludDMyX2Jzd2FwKHgpIHtcbiAgcmV0dXJuICgoKHggJiAweDAwMDAwMEZGKSA8PCAyNCkgfFxuICAgICAgICAgICgoeCAmIDB4MDAwMEZGMDApIDw8IDgpIHxcbiAgICAgICAgICAoKHggJiAweDAwRkYwMDAwKSA+Pj4gOCkgfFxuICAgICAgICAgICgoeCAmIDB4RkYwMDAwMDApID4+PiAyNCkpO1xufVxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9ic3dhcFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF90b19ieXRlcywgY2FtbF9pbnQ2NF9vZl9ieXRlc1xuZnVuY3Rpb24gY2FtbF9pbnQ2NF9ic3dhcCh4KSB7XG4gIHZhciB5ID0gY2FtbF9pbnQ2NF90b19ieXRlcyh4KTtcbiAgcmV0dXJuIGNhbWxfaW50NjRfb2ZfYnl0ZXMoW3lbN10sIHlbNl0sIHlbNV0sIHlbNF0sIHlbM10sIHlbMl0sIHlbMV0sIHlbMF1dKTtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vLy8vLy8vLy8vLy8gSGFzaHRibFxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaF91bml2X3BhcmFtIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfaXNfbWxfc3RyaW5nLCBjYW1sX2lzX21sX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX21sX2J5dGVzX2NvbnRlbnRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfdG9fYnl0ZXMsIGNhbWxfaW50NjRfYml0c19vZl9mbG9hdCwgY2FtbF9jdXN0b21fb3BzXG4vL1JlcXVpcmVzOiBjYW1sX21sX2J5dGVzX2xlbmd0aCwgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuLy9WZXJzaW9uOiA8IDQuMTJcbmZ1bmN0aW9uIGNhbWxfaGFzaF91bml2X3BhcmFtIChjb3VudCwgbGltaXQsIG9iaikge1xuICB2YXIgaGFzaF9hY2N1ID0gMDtcbiAgZnVuY3Rpb24gaGFzaF9hdXggKG9iaikge1xuICAgIGxpbWl0IC0tO1xuICAgIGlmIChjb3VudCA8IDAgfHwgbGltaXQgPCAwKSByZXR1cm47XG4gICAgaWYgKG9iaiBpbnN0YW5jZW9mIEFycmF5ICYmIG9ialswXSA9PT0gKG9ialswXXwwKSkge1xuICAgICAgc3dpdGNoIChvYmpbMF0pIHtcbiAgICAgIGNhc2UgMjQ4OlxuICAgICAgICAvLyBPYmplY3RcbiAgICAgICAgY291bnQgLS07XG4gICAgICAgIGhhc2hfYWNjdSA9IChoYXNoX2FjY3UgKiA2NTU5OSArIG9ialsyXSkgfCAwO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjUwOlxuICAgICAgICAvLyBGb3J3YXJkXG4gICAgICAgIGxpbWl0Kys7IGhhc2hfYXV4KG9iaik7IGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgY291bnQgLS07XG4gICAgICAgIGhhc2hfYWNjdSA9IChoYXNoX2FjY3UgKiAxOSArIG9ialswXSkgfCAwO1xuICAgICAgICBmb3IgKHZhciBpID0gb2JqLmxlbmd0aCAtIDE7IGkgPiAwOyBpLS0pIGhhc2hfYXV4IChvYmpbaV0pO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY2FtbF9pc19tbF9ieXRlcyhvYmopKSB7XG4gICAgICBjb3VudCAtLTtcbiAgICAgIHZhciBjb250ZW50ID0gY2FtbF9tbF9ieXRlc19jb250ZW50KG9iaik7XG4gICAgICBpZih0eXBlb2YgY29udGVudCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBmb3IgKHZhciBiID0gY29udGVudCwgbCA9IGIubGVuZ3RoLCBpID0gMDsgaSA8IGw7IGkrKylcbiAgICAgICAgICBoYXNoX2FjY3UgPSAoaGFzaF9hY2N1ICogMTkgKyBiLmNoYXJDb2RlQXQoaSkpIHwgMDtcbiAgICAgIH0gZWxzZSB7IC8qIEFSUkFZICovXG4gICAgICAgIGZvciAodmFyIGEgPSBjb250ZW50LCBsID0gYS5sZW5ndGgsIGkgPSAwOyBpIDwgbDsgaSsrKVxuICAgICAgICAgIGhhc2hfYWNjdSA9IChoYXNoX2FjY3UgKiAxOSArIGFbaV0pIHwgMDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGNhbWxfaXNfbWxfc3RyaW5nKG9iaikpIHtcbiAgICAgIHZhciBqc2J5dGVzID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhvYmopO1xuICAgICAgZm9yICh2YXIgYiA9IGpzYnl0ZXMsIGwgPSBqc2J5dGVzLmxlbmd0aCwgaSA9IDA7IGkgPCBsOyBpKyspXG4gICAgICAgIGhhc2hfYWNjdSA9IChoYXNoX2FjY3UgKiAxOSArIGIuY2hhckNvZGVBdChpKSkgfCAwO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIG9iaiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgZm9yICh2YXIgYiA9IG9iaiwgbCA9IG9iai5sZW5ndGgsIGkgPSAwOyBpIDwgbDsgaSsrKVxuICAgICAgICBoYXNoX2FjY3UgPSAoaGFzaF9hY2N1ICogMTkgKyBiLmNoYXJDb2RlQXQoaSkpIHwgMDtcbiAgICB9IGVsc2UgaWYgKG9iaiA9PT0gKG9ianwwKSkge1xuICAgICAgLy8gSW50ZWdlclxuICAgICAgY291bnQgLS07XG4gICAgICBoYXNoX2FjY3UgPSAoaGFzaF9hY2N1ICogNjU1OTkgKyBvYmopIHwgMDtcbiAgICB9IGVsc2UgaWYgKG9iaiA9PT0gK29iaikge1xuICAgICAgLy8gRmxvYXRcbiAgICAgIGNvdW50LS07XG4gICAgICB2YXIgcCA9IGNhbWxfaW50NjRfdG9fYnl0ZXMgKGNhbWxfaW50NjRfYml0c19vZl9mbG9hdCAob2JqKSk7XG4gICAgICBmb3IgKHZhciBpID0gNzsgaSA+PSAwOyBpLS0pIGhhc2hfYWNjdSA9IChoYXNoX2FjY3UgKiAxOSArIHBbaV0pIHwgMDtcbiAgICB9IGVsc2UgaWYob2JqICYmIG9iai5jYW1sX2N1c3RvbSkge1xuICAgICAgaWYoY2FtbF9jdXN0b21fb3BzW29iai5jYW1sX2N1c3RvbV0gJiYgY2FtbF9jdXN0b21fb3BzW29iai5jYW1sX2N1c3RvbV0uaGFzaCkge1xuICAgICAgICB2YXIgaCA9IGNhbWxfY3VzdG9tX29wc1tvYmouY2FtbF9jdXN0b21dLmhhc2gob2JqKSB8IDA7XG4gICAgICAgIGhhc2hfYWNjdSA9IChoYXNoX2FjY3UgKiA2NTU5OSArIGgpIHwgMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaGFzaF9hdXggKG9iaik7XG4gIHJldHVybiBoYXNoX2FjY3UgJiAweDNGRkZGRkZGO1xufVxuXG4vL2Z1bmN0aW9uIFJPVEwzMih4LG4pIHsgcmV0dXJuICgoeCA8PCBuKSB8ICh4ID4+PiAoMzItbikpKTsgfVxuLy9Qcm92aWRlczogY2FtbF9oYXNoX21peF9pbnRcbi8vUmVxdWlyZXM6IGNhbWxfbXVsXG5mdW5jdGlvbiBjYW1sX2hhc2hfbWl4X2ludChoLGQpIHtcbiAgZCA9IGNhbWxfbXVsKGQsIDB4Y2M5ZTJkNTF8MCk7XG4gIGQgPSAoKGQgPDwgMTUpIHwgKGQgPj4+ICgzMi0xNSkpKTsgLy8gUk9UTDMyKGQsIDE1KTtcbiAgZCA9IGNhbWxfbXVsKGQsIDB4MWI4NzM1OTMpO1xuICBoIF49IGQ7XG4gIGggPSAoKGggPDwgMTMpIHwgKGggPj4+ICgzMi0xMykpKTsgICAvL1JPVEwzMihoLCAxMyk7XG4gIHJldHVybiAoKChoICsgKGggPDwgMikpfDApICsgKDB4ZTY1NDZiNjR8MCkpfDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaF9taXhfZmluYWxcbi8vUmVxdWlyZXM6IGNhbWxfbXVsXG5mdW5jdGlvbiBjYW1sX2hhc2hfbWl4X2ZpbmFsKGgpIHtcbiAgaCBePSBoID4+PiAxNjtcbiAgaCA9IGNhbWxfbXVsIChoLCAweDg1ZWJjYTZifDApO1xuICBoIF49IGggPj4+IDEzO1xuICBoID0gY2FtbF9tdWwgKGgsIDB4YzJiMmFlMzV8MCk7XG4gIGggXj0gaCA+Pj4gMTY7XG4gIHJldHVybiBoO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfbWl4X2Zsb2F0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQsIGNhbWxfaGFzaF9taXhfaW50NjRcbmZ1bmN0aW9uIGNhbWxfaGFzaF9taXhfZmxvYXQgKGgsIHYwKSB7XG4gIHJldHVybiBjYW1sX2hhc2hfbWl4X2ludDY0KGgsIGNhbWxfaW50NjRfYml0c19vZl9mbG9hdCAodjApKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaF9taXhfaW50NjRcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfaW50XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2xvMzIsIGNhbWxfaW50NjRfaGkzMlxuZnVuY3Rpb24gY2FtbF9oYXNoX21peF9pbnQ2NCAoaCwgdikge1xuICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgY2FtbF9pbnQ2NF9sbzMyKHYpKTtcbiAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIGNhbWxfaW50NjRfaGkzMih2KSk7XG4gIHJldHVybiBoO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfbWl4X2pzYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfaW50XG5mdW5jdGlvbiBjYW1sX2hhc2hfbWl4X2pzYnl0ZXMoaCwgcykge1xuICB2YXIgbGVuID0gcy5sZW5ndGgsIGksIHc7XG4gIGZvciAoaSA9IDA7IGkgKyA0IDw9IGxlbjsgaSArPSA0KSB7XG4gICAgdyA9IHMuY2hhckNvZGVBdChpKVxuICAgICAgfCAocy5jaGFyQ29kZUF0KGkrMSkgPDwgOClcbiAgICAgIHwgKHMuY2hhckNvZGVBdChpKzIpIDw8IDE2KVxuICAgICAgfCAocy5jaGFyQ29kZUF0KGkrMykgPDwgMjQpO1xuICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCB3KTtcbiAgfVxuICB3ID0gMDtcbiAgc3dpdGNoIChsZW4gJiAzKSB7XG4gIGNhc2UgMzogdyAgPSBzLmNoYXJDb2RlQXQoaSsyKSA8PCAxNjtcbiAgY2FzZSAyOiB3IHw9IHMuY2hhckNvZGVBdChpKzEpIDw8IDg7XG4gIGNhc2UgMTpcbiAgICB3IHw9IHMuY2hhckNvZGVBdChpKTtcbiAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgdyk7XG4gIGRlZmF1bHQ6XG4gIH1cbiAgaCBePSBsZW47XG4gIHJldHVybiBoO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfbWl4X2J5dGVzX2FyclxuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9pbnRcbmZ1bmN0aW9uIGNhbWxfaGFzaF9taXhfYnl0ZXNfYXJyKGgsIHMpIHtcbiAgdmFyIGxlbiA9IHMubGVuZ3RoLCBpLCB3O1xuICBmb3IgKGkgPSAwOyBpICsgNCA8PSBsZW47IGkgKz0gNCkge1xuICAgIHcgPSBzW2ldXG4gICAgICB8IChzW2krMV0gPDwgOClcbiAgICAgIHwgKHNbaSsyXSA8PCAxNilcbiAgICAgIHwgKHNbaSszXSA8PCAyNCk7XG4gICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIHcpO1xuICB9XG4gIHcgPSAwO1xuICBzd2l0Y2ggKGxlbiAmIDMpIHtcbiAgY2FzZSAzOiB3ICA9IHNbaSsyXSA8PCAxNjtcbiAgY2FzZSAyOiB3IHw9IHNbaSsxXSA8PCA4O1xuICBjYXNlIDE6IHcgfD0gc1tpXTtcbiAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgdyk7XG4gIGRlZmF1bHQ6XG4gIH1cbiAgaCBePSBsZW47XG4gIHJldHVybiBoO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfbWl4X2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX21sX2J5dGVzX2NvbnRlbnRcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfanNieXRlc1xuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9ieXRlc19hcnJcbmZ1bmN0aW9uIGNhbWxfaGFzaF9taXhfYnl0ZXMoaCwgdikge1xuICB2YXIgY29udGVudCA9IGNhbWxfbWxfYnl0ZXNfY29udGVudCh2KTtcbiAgaWYodHlwZW9mIGNvbnRlbnQgPT09IFwic3RyaW5nXCIpXG4gICAgcmV0dXJuIGNhbWxfaGFzaF9taXhfanNieXRlcyhoLCBjb250ZW50KVxuICBlbHNlIC8qIEFSUkFZICovXG4gICAgcmV0dXJuIGNhbWxfaGFzaF9taXhfYnl0ZXNfYXJyKGgsIGNvbnRlbnQpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfbWl4X3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9qc2J5dGVzLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2hhc2hfbWl4X3N0cmluZyhoLCB2KSB7XG4gIHJldHVybiBjYW1sX2hhc2hfbWl4X2pzYnl0ZXMoaCwgY2FtbF9qc2J5dGVzX29mX3N0cmluZyh2KSk7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9oYXNoIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfaXNfbWxfc3RyaW5nLCBjYW1sX2lzX21sX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2ludCwgY2FtbF9oYXNoX21peF9maW5hbFxuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9mbG9hdCwgY2FtbF9oYXNoX21peF9zdHJpbmcsIGNhbWxfaGFzaF9taXhfYnl0ZXMsIGNhbWxfY3VzdG9tX29wc1xuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9qc2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2lzX2NvbnRpbnVhdGlvbl90YWdcbmZ1bmN0aW9uIGNhbWxfaGFzaCAoY291bnQsIGxpbWl0LCBzZWVkLCBvYmopIHtcbiAgdmFyIHF1ZXVlLCByZCwgd3IsIHN6LCBudW0sIGgsIHYsIGksIGxlbjtcbiAgc3ogPSBsaW1pdDtcbiAgaWYgKHN6IDwgMCB8fCBzeiA+IDI1Nikgc3ogPSAyNTY7XG4gIG51bSA9IGNvdW50O1xuICBoID0gc2VlZDtcbiAgcXVldWUgPSBbb2JqXTsgcmQgPSAwOyB3ciA9IDE7XG4gIHdoaWxlIChyZCA8IHdyICYmIG51bSA+IDApIHtcbiAgICB2ID0gcXVldWVbcmQrK107XG4gICAgaWYgKHYgJiYgdi5jYW1sX2N1c3RvbSl7XG4gICAgICBpZihjYW1sX2N1c3RvbV9vcHNbdi5jYW1sX2N1c3RvbV0gJiYgY2FtbF9jdXN0b21fb3BzW3YuY2FtbF9jdXN0b21dLmhhc2gpIHtcbiAgICAgICAgdmFyIGhoID0gY2FtbF9jdXN0b21fb3BzW3YuY2FtbF9jdXN0b21dLmhhc2godik7XG4gICAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludCAoaCwgaGgpO1xuICAgICAgICBudW0gLS07XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2UgaWYgKHYgaW5zdGFuY2VvZiBBcnJheSAmJiB2WzBdID09PSAodlswXXwwKSkge1xuICAgICAgc3dpdGNoICh2WzBdKSB7XG4gICAgICBjYXNlIDI0ODpcbiAgICAgICAgLy8gT2JqZWN0XG4gICAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCB2WzJdKTtcbiAgICAgICAgbnVtLS07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyNTA6XG4gICAgICAgIC8vIEZvcndhcmRcbiAgICAgICAgcXVldWVbLS1yZF0gPSB2WzFdO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmKGNhbWxfaXNfY29udGludWF0aW9uX3RhZyh2WzBdKSkge1xuICAgICAgICAgIC8qIEFsbCBjb250aW51YXRpb25zIGhhc2ggdG8gdGhlIHNhbWUgdmFsdWUsXG4gICAgICAgICAgICAgc2luY2Ugd2UgaGF2ZSBubyBpZGVhIGhvdyB0byBkaXN0aW5ndWlzaCB0aGVtLiAqL1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHZhciB0YWcgPSAoKHYubGVuZ3RoIC0gMSkgPDwgMTApIHwgdlswXTtcbiAgICAgICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIHRhZyk7XG4gICAgICAgIGZvciAoaSA9IDEsIGxlbiA9IHYubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICBpZiAod3IgPj0gc3opIGJyZWFrO1xuICAgICAgICAgIHF1ZXVlW3dyKytdID0gdltpXTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGNhbWxfaXNfbWxfYnl0ZXModikpIHtcbiAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2J5dGVzKGgsdilcbiAgICAgIG51bS0tO1xuICAgIH0gZWxzZSBpZiAoY2FtbF9pc19tbF9zdHJpbmcodikpIHtcbiAgICAgIGggPSBjYW1sX2hhc2hfbWl4X3N0cmluZyhoLHYpXG4gICAgICBudW0tLTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBoID0gY2FtbF9oYXNoX21peF9qc2J5dGVzKGgsdilcbiAgICAgIG51bS0tO1xuICAgIH0gZWxzZSBpZiAodiA9PT0gKHZ8MCkpIHtcbiAgICAgIC8vIEludGVnZXJcbiAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCB2K3YrMSk7XG4gICAgICBudW0tLTtcbiAgICB9IGVsc2UgaWYgKHYgPT09ICt2KSB7XG4gICAgICAvLyBGbG9hdFxuICAgICAgaCA9IGNhbWxfaGFzaF9taXhfZmxvYXQoaCx2KTtcbiAgICAgIG51bS0tO1xuICAgIH1cbiAgfVxuICBoID0gY2FtbF9oYXNoX21peF9maW5hbChoKTtcbiAgcmV0dXJuIGggJiAweDNGRkZGRkZGO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19oYXNoXG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2ZpbmFsLCBjYW1sX2hhc2hfbWl4X3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfaGFzaChoLCB2KXtcbiAgdmFyIGggPSBjYW1sX2hhc2hfbWl4X3N0cmluZyhoLHYpO1xuICB2YXIgaCA9IGNhbWxfaGFzaF9taXhfZmluYWwoaCk7XG4gIHJldHVybiBoICYgMHgzRkZGRkZGRjtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUHJvdmlkZXM6IGNhbWxfdXBkYXRlX2R1bW15XG5mdW5jdGlvbiBjYW1sX3VwZGF0ZV9kdW1teSAoeCwgeSkge1xuICBpZiggdHlwZW9mIHk9PT1cImZ1bmN0aW9uXCIgKSB7IHguZnVuID0geTsgcmV0dXJuIDA7IH1cbiAgaWYoIHkuZnVuICkgeyB4LmZ1biA9IHkuZnVuOyByZXR1cm4gMDsgfVxuICB2YXIgaSA9IHkubGVuZ3RoOyB3aGlsZSAoaS0tKSB4W2ldID0geVtpXTsgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYWxsb2NfZHVtbXlfaW5maXhcbi8vUmVxdWlyZXM6IGNhbWxfY2FsbF9nZW5cbmZ1bmN0aW9uIGNhbWxfYWxsb2NfZHVtbXlfaW5maXggKCkge1xuICByZXR1cm4gZnVuY3Rpb24gZiAoeCkgeyByZXR1cm4gY2FtbF9jYWxsX2dlbihmLmZ1biwgW3hdKSB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX2lzX2Jsb2NrIGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfb2JqX2lzX2Jsb2NrICh4KSB7IHJldHVybiArKHggaW5zdGFuY2VvZiBBcnJheSk7IH1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial90YWdcbi8vUmVxdWlyZXM6IGNhbWxfaXNfbWxfYnl0ZXMsIGNhbWxfaXNfbWxfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX29ial90YWcgKHgpIHtcbiAgaWYgKCh4IGluc3RhbmNlb2YgQXJyYXkpICYmIHhbMF0gPT0gKHhbMF0gPj4+IDApKVxuICAgIHJldHVybiB4WzBdXG4gIGVsc2UgaWYgKGNhbWxfaXNfbWxfYnl0ZXMoeCkpXG4gICAgcmV0dXJuIDI1MlxuICBlbHNlIGlmIChjYW1sX2lzX21sX3N0cmluZyh4KSlcbiAgICByZXR1cm4gMjUyXG4gIGVsc2UgaWYgKCh4IGluc3RhbmNlb2YgRnVuY3Rpb24pIHx8IHR5cGVvZiB4ID09IFwiZnVuY3Rpb25cIilcbiAgICByZXR1cm4gMjQ3XG4gIGVsc2UgaWYgKHggJiYgeC5jYW1sX2N1c3RvbSlcbiAgICByZXR1cm4gMjU1XG4gIGVsc2VcbiAgICByZXR1cm4gMTAwMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial9zZXRfdGFnIChtdXRhYmxlLCBjb25zdClcbmZ1bmN0aW9uIGNhbWxfb2JqX3NldF90YWcgKHgsIHRhZykgeyB4WzBdID0gdGFnOyByZXR1cm4gMDsgfVxuLy9Qcm92aWRlczogY2FtbF9vYmpfYmxvY2sgY29uc3QgKGNvbnN0LGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9vYmpfYmxvY2sgKHRhZywgc2l6ZSkge1xuICB2YXIgbyA9IG5ldyBBcnJheShzaXplKzEpO1xuICBvWzBdPXRhZztcbiAgZm9yICh2YXIgaSA9IDE7IGkgPD0gc2l6ZTsgaSsrKSBvW2ldID0gMDtcbiAgcmV0dXJuIG87XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX3dpdGhfdGFnXG5mdW5jdGlvbiBjYW1sX29ial93aXRoX3RhZyh0YWcseCkge1xuICB2YXIgbCA9IHgubGVuZ3RoO1xuICB2YXIgYSA9IG5ldyBBcnJheShsKTtcbiAgYVswXSA9IHRhZztcbiAgZm9yKHZhciBpID0gMTsgaSA8IGw7IGkrKyApIGFbaV0gPSB4W2ldO1xuICByZXR1cm4gYTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfZHVwIG11dGFibGUgKG11dGFibGUpXG5mdW5jdGlvbiBjYW1sX29ial9kdXAgKHgpIHtcbiAgdmFyIGwgPSB4Lmxlbmd0aDtcbiAgdmFyIGEgPSBuZXcgQXJyYXkobCk7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsOyBpKysgKSBhW2ldID0geFtpXTtcbiAgcmV0dXJuIGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX3RydW5jYXRlIChtdXRhYmxlLCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9vYmpfdHJ1bmNhdGUgKHgsIHMpIHtcbiAgaWYgKHM8PTAgfHwgcyArIDEgPiB4Lmxlbmd0aClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQgKFwiT2JqLnRydW5jYXRlXCIpO1xuICBpZiAoeC5sZW5ndGggIT0gcyArIDEpIHgubGVuZ3RoID0gcyArIDE7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial9tYWtlX2ZvcndhcmRcbmZ1bmN0aW9uIGNhbWxfb2JqX21ha2VfZm9yd2FyZCAoYix2KSB7XG4gIGJbMF09MjUwO1xuICBiWzFdPXY7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX2NvbXBhcmVfYW5kX3N3YXBcbmZ1bmN0aW9uIGNhbWxfb2JqX2NvbXBhcmVfYW5kX3N3YXAoeCxpLG9sZCxuKXtcbiAgaWYoeFtpKzFdID09IG9sZCkge1xuICAgIHhbaSsxXSA9IG47XG4gICAgcmV0dXJuIDE7XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfaXNfc2hhcmVkXG5mdW5jdGlvbiBjYW1sX29ial9pc19zaGFyZWQoeCl7XG4gIHJldHVybiAxXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbGF6eV9tYWtlX2ZvcndhcmQgY29uc3QgKG11dGFibGUpXG5mdW5jdGlvbiBjYW1sX2xhenlfbWFrZV9mb3J3YXJkICh2KSB7IHJldHVybiBbMjUwLCB2XTsgfVxuXG4vLy8vLy8vLy8vLy8vIENhbWxpbnRlcm5hbE9PXG4vL1Byb3ZpZGVzOiBjYW1sX2dldF9wdWJsaWNfbWV0aG9kIGNvbnN0XG52YXIgY2FtbF9tZXRob2RfY2FjaGUgPSBbXTtcbmZ1bmN0aW9uIGNhbWxfZ2V0X3B1YmxpY19tZXRob2QgKG9iaiwgdGFnLCBjYWNoZWlkKSB7XG4gIHZhciBtZXRocyA9IG9ialsxXTtcbiAgdmFyIG9mcyA9IGNhbWxfbWV0aG9kX2NhY2hlW2NhY2hlaWRdO1xuICBpZiAob2ZzID09PSB1bmRlZmluZWQpIHtcbiAgICAvLyBNYWtlIHN1cmUgdGhlIGFycmF5IGlzIG5vdCBzcGFyc2VcbiAgICBmb3IgKHZhciBpID0gY2FtbF9tZXRob2RfY2FjaGUubGVuZ3RoOyBpIDwgY2FjaGVpZDsgaSsrKVxuICAgICAgY2FtbF9tZXRob2RfY2FjaGVbaV0gPSAwO1xuICB9IGVsc2UgaWYgKG1ldGhzW29mc10gPT09IHRhZykge1xuICAgIHJldHVybiBtZXRoc1tvZnMgLSAxXTtcbiAgfVxuICB2YXIgbGkgPSAzLCBoaSA9IG1ldGhzWzFdICogMiArIDEsIG1pO1xuICB3aGlsZSAobGkgPCBoaSkge1xuICAgIG1pID0gKChsaStoaSkgPj4gMSkgfCAxO1xuICAgIGlmICh0YWcgPCBtZXRoc1ttaSsxXSkgaGkgPSBtaS0yO1xuICAgIGVsc2UgbGkgPSBtaTtcbiAgfVxuICBjYW1sX21ldGhvZF9jYWNoZVtjYWNoZWlkXSA9IGxpICsgMTtcbiAgLyogcmV0dXJuIDAgaWYgdGFnIGlzIG5vdCB0aGVyZSAqL1xuICByZXR1cm4gKHRhZyA9PSBtZXRoc1tsaSsxXSA/IG1ldGhzW2xpXSA6IDApO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29vX2xhc3RfaWRcbnZhciBjYW1sX29vX2xhc3RfaWQgPSAwO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX3NldF9vb19pZFxuLy9SZXF1aXJlczogY2FtbF9vb19sYXN0X2lkXG5mdW5jdGlvbiBjYW1sX3NldF9vb19pZCAoYikge1xuICBiWzJdPWNhbWxfb29fbGFzdF9pZCsrO1xuICByZXR1cm4gYjtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9mcmVzaF9vb19pZCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9vb19sYXN0X2lkXG5mdW5jdGlvbiBjYW1sX2ZyZXNoX29vX2lkKCkge1xuICByZXR1cm4gY2FtbF9vb19sYXN0X2lkKys7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX3Jhd19maWVsZFxuZnVuY3Rpb24gY2FtbF9vYmpfcmF3X2ZpZWxkKG8saSkgeyByZXR1cm4gb1tpKzFdIH1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfc2V0X3Jhd19maWVsZFxuZnVuY3Rpb24gY2FtbF9vYmpfc2V0X3Jhd19maWVsZChvLGksdikgeyByZXR1cm4gb1tpKzFdID0gdiB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX3JlYWNoYWJsZV93b3Jkc1xuZnVuY3Rpb24gY2FtbF9vYmpfcmVhY2hhYmxlX3dvcmRzKG8pIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfYWRkX29mZnNldFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9vYmpfYWRkX29mZnNldCh2LG9mZnNldCkge1xuICBjYW1sX2ZhaWx3aXRoKFwiT2JqLmFkZF9vZmZzZXQgaXMgbm90IHN1cHBvcnRlZFwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfdXBkYXRlX3RhZ1xuZnVuY3Rpb24gY2FtbF9vYmpfdXBkYXRlX3RhZyhiLG8sbikge1xuICAgIGlmKGJbMF09PW8pIHsgYlswXSA9IG47IHJldHVybiAxIH1cbiAgICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2xhenlfdXBkYXRlX3RvX2ZvcmNpbmdcbi8vUmVxdWlyZXM6IGNhbWxfb2JqX3RhZywgY2FtbF9vYmpfdXBkYXRlX3RhZywgY2FtbF9tbF9kb21haW5fdW5pcXVlX3Rva2VuXG5mdW5jdGlvbiBjYW1sX2xhenlfdXBkYXRlX3RvX2ZvcmNpbmcobykge1xuICB2YXIgdCA9IGNhbWxfb2JqX3RhZyhvKTtcbiAgaWYodCAhPSAyNDYgJiYgdCAhPSAyNTAgJiYgdCAhPSAyNDQpXG4gICAgcmV0dXJuIDRcbiAgaWYoY2FtbF9vYmpfdXBkYXRlX3RhZyhvLCAyNDYsIDI0NCkpIHtcbiAgICByZXR1cm4gMFxuICB9IGVsc2Uge1xuICAgIHZhciBmaWVsZDAgPSBvWzFdO1xuICAgIHQgPSBvWzBdXG4gICAgaWYodCA9PSAyNDQpIHtcbiAgICAgIGlmKGZpZWxkMCA9PSBjYW1sX21sX2RvbWFpbl91bmlxdWVfdG9rZW4oMCkpXG4gICAgICAgIHJldHVybiAxXG4gICAgICBlbHNlXG4gICAgICAgIHJldHVybiAyXG4gICAgfSBlbHNlIGlmICh0ID09IDI1MCkge1xuICAgICAgcmV0dXJuIDM7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGFzc2VydCB0ID0gbGF6eV90YWdcbiAgICAgIHJldHVybiAyO1xuICAgIH1cbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2xhenlfdXBkYXRlX3RvX2ZvcndhcmRcbi8vUmVxdWlyZXM6IGNhbWxfb2JqX3VwZGF0ZV90YWdcbiAgZnVuY3Rpb24gY2FtbF9sYXp5X3VwZGF0ZV90b19mb3J3YXJkKG8pIHtcbiAgY2FtbF9vYmpfdXBkYXRlX3RhZyhvLDI0NCwyNTApO1xuICByZXR1cm4gMDsgLy8gdW5pdFxufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfbGF6eV9yZXNldF90b19sYXp5XG4vL1JlcXVpcmVzOiBjYW1sX29ial91cGRhdGVfdGFnXG5mdW5jdGlvbiBjYW1sX2xhenlfcmVzZXRfdG9fbGF6eShvKSB7XG4gIGNhbWxfb2JqX3VwZGF0ZV90YWcobywyNDQsMjQ2KTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbGF6eV9yZWFkX3Jlc3VsdFxuLy9SZXF1aXJlczogY2FtbF9vYmpfdGFnXG5mdW5jdGlvbiBjYW1sX2xhenlfcmVhZF9yZXN1bHQobykge1xuICByZXR1cm4gKGNhbWxfb2JqX3RhZyhvKSA9PSAyNTApP29bMV06bztcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lzX2NvbnRpbnVhdGlvbl90YWdcbi8vVmVyc2lvbjogPCA1XG5mdW5jdGlvbiBjYW1sX2lzX2NvbnRpbnVhdGlvbl90YWcodCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pc19jb250aW51YXRpb25fdGFnXG4vL1ZlcnNpb246ID49IDVcbmZ1bmN0aW9uIGNhbWxfaXNfY29udGludWF0aW9uX3RhZyh0KSB7XG4gIHJldHVybiAodCA9PSAyNDUpID8gMSA6IDA7XG59XG4iLCIvL1Byb3ZpZGVzOiBjYW1sX2RvbWFpbl9kbHNcbnZhciBjYW1sX2RvbWFpbl9kbHMgPSBbMF07XG5cbi8vUHJvdmlkZXM6IGNhbWxfZG9tYWluX2Rsc19zZXRcbi8vUmVxdWlyZXM6IGNhbWxfZG9tYWluX2Rsc1xuZnVuY3Rpb24gY2FtbF9kb21haW5fZGxzX3NldChhKSB7XG4gIGNhbWxfZG9tYWluX2RscyA9IGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZG9tYWluX2Rsc19nZXRcbi8vUmVxdWlyZXM6IGNhbWxfZG9tYWluX2Rsc1xuZnVuY3Rpb24gY2FtbF9kb21haW5fZGxzX2dldCh1bml0KSB7XG4gIHJldHVybiBjYW1sX2RvbWFpbl9kbHM7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9hdG9taWNfbG9hZFxuZnVuY3Rpb24gY2FtbF9hdG9taWNfbG9hZChyZWYpe1xuICByZXR1cm4gcmVmWzFdO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2F0b21pY19jYXNcbmZ1bmN0aW9uIGNhbWxfYXRvbWljX2NhcyhyZWYsbyxuKSB7XG4gIGlmKHJlZlsxXSA9PT0gbyl7XG4gICAgcmVmWzFdID0gbjtcbiAgICByZXR1cm4gMTtcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hdG9taWNfZmV0Y2hfYWRkXG5mdW5jdGlvbiBjYW1sX2F0b21pY19mZXRjaF9hZGQocmVmLCBpKSB7XG4gIHZhciBvbGQgPSByZWZbMV07XG4gIHJlZlsxXSArPSBpO1xuICByZXR1cm4gb2xkO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2F0b21pY19leGNoYW5nZVxuZnVuY3Rpb24gY2FtbF9hdG9taWNfZXhjaGFuZ2UocmVmLCB2KSB7XG4gIHZhciByID0gcmVmWzFdO1xuICByZWZbMV0gPSB2O1xuICByZXR1cm4gcjtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9kb21haW5fdW5pcXVlX3Rva2VuXG52YXIgY2FtbF9tbF9kb21haW5fdW5pcXVlX3Rva2VuXyA9IFswXVxuZnVuY3Rpb24gY2FtbF9tbF9kb21haW5fdW5pcXVlX3Rva2VuKHVuaXQpIHtcbiAgcmV0dXJuIGNhbWxfbWxfZG9tYWluX3VuaXF1ZV90b2tlbl9cbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2RvbWFpbl9zZXRfbmFtZVxuZnVuY3Rpb24gY2FtbF9tbF9kb21haW5fc2V0X25hbWUoX25hbWUpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmVjb21tZW5kZWRfZG9tYWluX2NvdW50XG5mdW5jdGlvbiBjYW1sX3JlY29tbWVuZGVkX2RvbWFpbl9jb3VudCh1bml0KSB7IHJldHVybiAxIH1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2RvbWFpbl9pZFxudmFyIGNhbWxfZG9tYWluX2lkID0gMDtcblxuLy9Qcm92aWRlczogY2FtbF9kb21haW5fc3Bhd25cbi8vUmVxdWlyZXM6IGNhbWxfbWxfbXV0ZXhfdW5sb2NrXG4vL1JlcXVpcmVzOiBjYW1sX2RvbWFpbl9pZFxuLy9SZXF1aXJlczogY2FtbF9jYWxsYmFja1xudmFyIGNhbWxfZG9tYWluX2xhdGVzdF9pZHggPSAxXG5mdW5jdGlvbiBjYW1sX2RvbWFpbl9zcGF3bihmLG11dGV4KXtcbiAgICB2YXIgaWQgPSBjYW1sX2RvbWFpbl9sYXRlc3RfaWR4Kys7XG4gICAgdmFyIG9sZCA9IGNhbWxfZG9tYWluX2lkO1xuICAgIGNhbWxfZG9tYWluX2lkID0gaWQ7XG4gICAgY2FtbF9jYWxsYmFjayhmLFswXSk7XG4gICAgY2FtbF9kb21haW5faWQgPSBvbGQ7XG4gICAgY2FtbF9tbF9tdXRleF91bmxvY2sobXV0ZXgpO1xuICAgIHJldHVybiBpZDtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2RvbWFpbl9pZFxuLy9SZXF1aXJlczogY2FtbF9kb21haW5faWRcbmZ1bmN0aW9uIGNhbWxfbWxfZG9tYWluX2lkKHVuaXQpe1xuICAgIHJldHVybiBjYW1sX2RvbWFpbl9pZDtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2RvbWFpbl9jcHVfcmVsYXhcbmZ1bmN0aW9uIGNhbWxfbWxfZG9tYWluX2NwdV9yZWxheCh1bml0KXtcbiAgICByZXR1cm4gMDtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUHJvdmlkZXM6IGNhbWxfY29tcGFyZV92YWxfdGFnXG4vL1JlcXVpcmVzOiBjYW1sX2lzX21sX3N0cmluZywgY2FtbF9pc19tbF9ieXRlc1xuZnVuY3Rpb24gY2FtbF9jb21wYXJlX3ZhbF90YWcoYSl7XG4gIGlmICh0eXBlb2YgYSA9PT0gXCJudW1iZXJcIikgcmV0dXJuIDEwMDA7IC8vIGludF90YWcgKHdlIHVzZSBpdCBmb3IgYWxsIG51bWJlcnMpXG4gIGVsc2UgaWYgKGNhbWxfaXNfbWxfYnl0ZXMoYSkpIHJldHVybiAyNTI7IC8vIHN0cmluZ190YWdcbiAgZWxzZSBpZiAoY2FtbF9pc19tbF9zdHJpbmcoYSkpIHJldHVybiAxMjUyOyAvLyBvY2FtbCBzdHJpbmcgKGlmIGRpZmZlcmVudCBmcm9tIGJ5dGVzKVxuICBlbHNlIGlmIChhIGluc3RhbmNlb2YgQXJyYXkgJiYgYVswXSA9PT0gKGFbMF0+Pj4wKSAmJiBhWzBdIDw9IDI1NSkge1xuICAgIC8vIExvb2sgbGlrZSBhbiBvY2FtbCBibG9ja1xuICAgIHZhciB0YWcgPSBhWzBdIHwgMDtcbiAgICAvLyBpZ25vcmUgZG91YmxlX2FycmF5X3RhZyBiZWNhdXNlIHdlIGNhbm5vdCBhY2N1cmF0ZWx5IHNldFxuICAgIC8vIHRoaXMgdGFnIHdoZW4gd2UgY3JlYXRlIGFuIGFycmF5IG9mIGZsb2F0LlxuICAgIHJldHVybiAodGFnID09IDI1NCk/MDp0YWdcbiAgfVxuICBlbHNlIGlmIChhIGluc3RhbmNlb2YgU3RyaW5nKSByZXR1cm4gMTI1MjA7IC8vIGphdmFzY3JpcHQgc3RyaW5nLCBsaWtlIHN0cmluZ190YWcgKDI1MilcbiAgZWxzZSBpZiAodHlwZW9mIGEgPT0gXCJzdHJpbmdcIikgcmV0dXJuIDEyNTIwOyAvLyBqYXZhc2NyaXB0IHN0cmluZywgbGlrZSBzdHJpbmdfdGFnICgyNTIpXG4gIGVsc2UgaWYgKGEgaW5zdGFuY2VvZiBOdW1iZXIpIHJldHVybiAxMDAwOyAvLyBpbnRfdGFnICh3ZSB1c2UgaXQgZm9yIGFsbCBudW1iZXJzKVxuICBlbHNlIGlmIChhICYmIGEuY2FtbF9jdXN0b20pIHJldHVybiAxMjU1OyAvLyBsaWtlIGN1c3RvbV90YWcgKDI1NSlcbiAgZWxzZSBpZiAoYSAmJiBhLmNvbXBhcmUpIHJldHVybiAxMjU2OyAvLyBsaWtlIGN1c3RvbV90YWcgKDI1NSlcbiAgZWxzZSBpZiAodHlwZW9mIGEgPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gMTI0NzsgLy8gbGlrZSBjbG9zdXJlX3RhZyAoMjQ3KVxuICBlbHNlIGlmICh0eXBlb2YgYSA9PSBcInN5bWJvbFwiKSByZXR1cm4gMTI1MTtcbiAgcmV0dXJuIDEwMDE7IC8vb3V0X29mX2hlYXBfdGFnXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY29tcGFyZV92YWxfZ2V0X2N1c3RvbVxuLy9SZXF1aXJlczogY2FtbF9jdXN0b21fb3BzXG5mdW5jdGlvbiBjYW1sX2NvbXBhcmVfdmFsX2dldF9jdXN0b20oYSl7XG4gIHJldHVybiBjYW1sX2N1c3RvbV9vcHNbYS5jYW1sX2N1c3RvbV0gJiYgY2FtbF9jdXN0b21fb3BzW2EuY2FtbF9jdXN0b21dLmNvbXBhcmU7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY29tcGFyZV92YWxfbnVtYmVyX2N1c3RvbVxuLy9SZXF1aXJlczogY2FtbF9jb21wYXJlX3ZhbF9nZXRfY3VzdG9tXG5mdW5jdGlvbiBjYW1sX2NvbXBhcmVfdmFsX251bWJlcl9jdXN0b20obnVtLCBjdXN0b20sIHN3YXAsIHRvdGFsKSB7XG4gIHZhciBjb21wID0gY2FtbF9jb21wYXJlX3ZhbF9nZXRfY3VzdG9tKGN1c3RvbSk7XG4gIGlmKGNvbXApIHtcbiAgICB2YXIgeCA9IChzd2FwID4gMCk/Y29tcChjdXN0b20sbnVtLHRvdGFsKTpjb21wKG51bSxjdXN0b20sdG90YWwpO1xuICAgIGlmKHRvdGFsICYmIHggIT0geCkgcmV0dXJuIHN3YXA7IC8vIHRvdGFsICYmIG5hblxuICAgIGlmKCt4ICE9ICt4KSByZXR1cm4gK3g7IC8vIG5hblxuICAgIGlmKCh4IHwgMCkgIT0gMCkgcmV0dXJuICh4IHwgMCk7IC8vICFuYW5cbiAgfVxuICByZXR1cm4gc3dhcFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NvbXBhcmVfdmFsIChjb25zdCwgY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9pbnRfY29tcGFyZSwgY2FtbF9zdHJpbmdfY29tcGFyZSwgY2FtbF9ieXRlc19jb21wYXJlXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfY29tcGFyZV92YWxfZ2V0X2N1c3RvbSwgY2FtbF9jb21wYXJlX3ZhbF90YWdcbi8vUmVxdWlyZXM6IGNhbWxfY29tcGFyZV92YWxfbnVtYmVyX2N1c3RvbVxuLy9SZXF1aXJlczogY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9pc19jb250aW51YXRpb25fdGFnXG5mdW5jdGlvbiBjYW1sX2NvbXBhcmVfdmFsIChhLCBiLCB0b3RhbCkge1xuICB2YXIgc3RhY2sgPSBbXTtcbiAgZm9yKDs7KSB7XG4gICAgaWYgKCEodG90YWwgJiYgYSA9PT0gYikpIHtcbiAgICAgIHZhciB0YWdfYSA9IGNhbWxfY29tcGFyZV92YWxfdGFnKGEpO1xuICAgICAgLy8gZm9yd2FyZF90YWcgP1xuICAgICAgaWYodGFnX2EgPT0gMjUwKSB7IGEgPSBhWzFdOyBjb250aW51ZSB9XG5cbiAgICAgIHZhciB0YWdfYiA9IGNhbWxfY29tcGFyZV92YWxfdGFnKGIpO1xuICAgICAgLy8gZm9yd2FyZF90YWcgP1xuICAgICAgaWYodGFnX2IgPT0gMjUwKSB7IGIgPSBiWzFdOyBjb250aW51ZSB9XG5cbiAgICAgIC8vIHRhZ3MgYXJlIGRpZmZlcmVudFxuICAgICAgaWYodGFnX2EgIT09IHRhZ19iKSB7XG4gICAgICAgIGlmKHRhZ19hID09IDEwMDApIHtcbiAgICAgICAgICBpZih0YWdfYiA9PSAxMjU1KSB7IC8vaW1tZWRpYXRlIGNhbiBjb21wYXJlIGFnYWluc3QgY3VzdG9tXG4gICAgICAgICAgICByZXR1cm4gY2FtbF9jb21wYXJlX3ZhbF9udW1iZXJfY3VzdG9tKGEsIGIsIC0xLCB0b3RhbCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAtMVxuICAgICAgICB9XG4gICAgICAgIGlmKHRhZ19iID09IDEwMDApIHtcbiAgICAgICAgICBpZih0YWdfYSA9PSAxMjU1KSB7IC8vaW1tZWRpYXRlIGNhbiBjb21wYXJlIGFnYWluc3QgY3VzdG9tXG4gICAgICAgICAgICByZXR1cm4gY2FtbF9jb21wYXJlX3ZhbF9udW1iZXJfY3VzdG9tKGIsIGEsIDEsIHRvdGFsKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIDFcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKHRhZ19hIDwgdGFnX2IpPy0xOjE7XG4gICAgICB9XG4gICAgICBzd2l0Y2godGFnX2Epe1xuICAgICAgICAvLyAyNDY6IExhenlfdGFnIGhhbmRsZWQgYmVsbG93XG4gICAgICBjYXNlIDI0NzogLy8gQ2xvc3VyZV90YWdcbiAgICAgICAgLy8gQ2Fubm90IGhhcHBlblxuICAgICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjb21wYXJlOiBmdW5jdGlvbmFsIHZhbHVlXCIpO1xuICAgICAgICBicmVha1xuICAgICAgY2FzZSAyNDg6IC8vIE9iamVjdFxuICAgICAgICB2YXIgeCA9IGNhbWxfaW50X2NvbXBhcmUoYVsyXSwgYlsyXSk7XG4gICAgICAgIGlmICh4ICE9IDApIHJldHVybiAoeCB8IDApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjQ5OiAvLyBJbmZpeFxuICAgICAgICAvLyBDYW5ub3QgaGFwcGVuXG4gICAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNvbXBhcmU6IGZ1bmN0aW9uYWwgdmFsdWVcIik7XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIDI1MDogLy8gRm9yd2FyZCB0YWdcbiAgICAgICAgLy8gQ2Fubm90IGhhcHBlbiwgaGFuZGxlZCBhYm92ZVxuICAgICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJlcXVhbDogZ290IEZvcndhcmRfdGFnLCBzaG91bGQgbm90IGhhcHBlblwiKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI1MTogLy9BYnN0cmFjdFxuICAgICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJlcXVhbDogYWJzdHJhY3QgdmFsdWVcIik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyNTI6IC8vIE9DYW1sIGJ5dGVzXG4gICAgICAgIGlmIChhICE9PSBiKSB7XG4gICAgICAgICAgdmFyIHggPSBjYW1sX2J5dGVzX2NvbXBhcmUoYSwgYik7XG4gICAgICAgICAgaWYgKHggIT0gMCkgcmV0dXJuICh4IHwgMCk7XG4gICAgICAgIH07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyNTM6IC8vIERvdWJsZV90YWdcbiAgICAgICAgLy8gQ2Fubm90IGhhcHBlblxuICAgICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJlcXVhbDogZ290IERvdWJsZV90YWcsIHNob3VsZCBub3QgaGFwcGVuXCIpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjU0OiAvLyBEb3VibGVfYXJyYXlfdGFnXG4gICAgICAgIC8vIENhbm5vdCBoYXBwZW4sIGhhbmRsZWQgYWJvdmVcbiAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiZXF1YWw6IGdvdCBEb3VibGVfYXJyYXlfdGFnLCBzaG91bGQgbm90IGhhcHBlblwiKTtcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgMjU1OiAvLyBDdXN0b21fdGFnXG4gICAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImVxdWFsOiBnb3QgQ3VzdG9tX3RhZywgc2hvdWxkIG5vdCBoYXBwZW5cIik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxMjQ3OiAvLyBGdW5jdGlvblxuICAgICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjb21wYXJlOiBmdW5jdGlvbmFsIHZhbHVlXCIpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTI1NTogLy8gQ3VzdG9tXG4gICAgICAgIHZhciBjb21wID0gY2FtbF9jb21wYXJlX3ZhbF9nZXRfY3VzdG9tKGEpO1xuICAgICAgICBpZihjb21wICE9IGNhbWxfY29tcGFyZV92YWxfZ2V0X2N1c3RvbShiKSl7XG4gICAgICAgICAgcmV0dXJuIChhLmNhbWxfY3VzdG9tPGIuY2FtbF9jdXN0b20pPy0xOjE7XG4gICAgICAgIH1cbiAgICAgICAgaWYoIWNvbXApXG4gICAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY29tcGFyZTogYWJzdHJhY3QgdmFsdWVcIik7XG4gICAgICAgIHZhciB4ID0gY29tcChhLGIsdG90YWwpO1xuICAgICAgICBpZih4ICE9IHgpeyAvLyBQcm90ZWN0IGFnYWluc3QgaW52YWxpZCBVTk9SREVSRURcbiAgICAgICAgICByZXR1cm4gdG90YWw/LTE6eDtcbiAgICAgICAgfVxuICAgICAgICBpZih4ICE9PSAoeHwwKSl7IC8vIFByb3RlY3QgYWdhaW5zdCBpbnZhbGlkIHJldHVybiB2YWx1ZVxuICAgICAgICAgIHJldHVybiAtMVxuICAgICAgICB9XG4gICAgICAgIGlmICh4ICE9IDApIHJldHVybiAoeCB8IDApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTI1NjogLy8gY29tcGFyZSBmdW5jdGlvblxuICAgICAgICB2YXIgeCA9IGEuY29tcGFyZShiLHRvdGFsKTtcbiAgICAgICAgaWYoeCAhPSB4KSB7IC8vIFByb3RlY3QgYWdhaW5zdCBpbnZhbGlkIFVOT1JERVJFRFxuICAgICAgICAgIHJldHVybiB0b3RhbD8tMTp4O1xuICAgICAgICB9XG4gICAgICAgIGlmKHggIT09ICh4fDApKXsgLy8gUHJvdGVjdCBhZ2FpbnN0IGludmFsaWQgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgcmV0dXJuIC0xXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHggIT0gMCkgcmV0dXJuICh4IHwgMCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxMDAwOiAvLyBOdW1iZXJcbiAgICAgICAgYSA9ICthO1xuICAgICAgICBiID0gK2I7XG4gICAgICAgIGlmIChhIDwgYikgcmV0dXJuIC0xO1xuICAgICAgICBpZiAoYSA+IGIpIHJldHVybiAxO1xuICAgICAgICBpZiAoYSAhPSBiKSB7XG4gICAgICAgICAgaWYgKCF0b3RhbCkgcmV0dXJuIE5hTjtcbiAgICAgICAgICBpZiAoYSA9PSBhKSByZXR1cm4gMTtcbiAgICAgICAgICBpZiAoYiA9PSBiKSByZXR1cm4gLTE7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDEwMDE6IC8vIFRoZSByZXN0XG4gICAgICAgIC8vIEhlcmUgd2UgY2FuIGJlIGluIHRoZSBmb2xsb3dpbmcgY2FzZXM6XG4gICAgICAgIC8vIDEuIEphdmFTY3JpcHQgcHJpbWl0aXZlIHR5cGVzXG4gICAgICAgIC8vIDIuIEphdmFTY3JpcHQgb2JqZWN0IHRoYXQgY2FuIGJlIGNvZXJjZWQgdG8gcHJpbWl0aXZlIHR5cGVzXG4gICAgICAgIC8vIDMuIEphdmFTY3JpcHQgb2JqZWN0IHRoYW4gY2Fubm90IGJlIGNvZXJjZWQgdG8gcHJpbWl0aXZlIHR5cGVzXG4gICAgICAgIC8vXG4gICAgICAgIC8vICgzKSB3aWxsIHJhaXNlIGEgW1R5cGVFcnJvcl1cbiAgICAgICAgLy8gKDIpIHdpbGwgY29lcmNlIHRvIHByaW1pdGl2ZSB0eXBlcyB1c2luZyBbdmFsdWVPZl0gb3IgW3RvU3RyaW5nXVxuICAgICAgICAvLyAoMikgYW5kICgzKSwgYWZ0ZXIgZXZlbnR1YWwgY29lcmNpb25cbiAgICAgICAgLy8gLSBpZiBhIGFuZCBiIGFyZSBzdHJpbmdzLCBhcHBseSBsZXhpY29ncmFwaGljIGNvbXBhcmlzb25cbiAgICAgICAgLy8gLSBpZiBhIG9yIGIgYXJlIG5vdCBzdHJpbmdzLCBjb252ZXJ0IGEgYW5kIGIgdG8gbnVtYmVyXG4gICAgICAgIC8vICAgYW5kIGFwcGx5IHN0YW5kYXJkIGNvbXBhcmlzb25cbiAgICAgICAgLy9cbiAgICAgICAgLy8gRXhjZXB0aW9uOiBgIT1gIHdpbGwgbm90IGNvZXJjZS9jb252ZXJ0IGlmIGJvdGggYSBhbmQgYiBhcmUgb2JqZWN0c1xuICAgICAgICBpZiAoYSA8IGIpIHJldHVybiAtMTtcbiAgICAgICAgaWYgKGEgPiBiKSByZXR1cm4gMTtcbiAgICAgICAgaWYgKGEgIT0gYikge1xuICAgICAgICAgIGlmICghdG90YWwpIHJldHVybiBOYU47XG4gICAgICAgICAgaWYgKGEgPT0gYSkgcmV0dXJuIDE7XG4gICAgICAgICAgaWYgKGIgPT0gYikgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxMjUxOiAvLyBKYXZhU2NyaXB0IFN5bWJvbCwgbm8gb3JkZXJpbmcuXG4gICAgICAgIGlmKGEgIT09IGIpIHtcbiAgICAgICAgICBpZiAoIXRvdGFsKSByZXR1cm4gTmFOO1xuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxMjUyOiAvLyBvY2FtbCBzdHJpbmdzXG4gICAgICAgIHZhciBhID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhhKTtcbiAgICAgICAgdmFyIGIgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKGIpO1xuICAgICAgICBpZihhICE9PSBiKSB7XG4gICAgICAgICAgaWYoYSA8IGIpIHJldHVybiAtMTtcbiAgICAgICAgICBpZihhID4gYikgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDEyNTIwOiAvLyBqYXZhc2NyaXB0IHN0cmluZ3NcbiAgICAgICAgdmFyIGEgPSBhLnRvU3RyaW5nKCk7XG4gICAgICAgIHZhciBiID0gYi50b1N0cmluZygpO1xuICAgICAgICBpZihhICE9PSBiKSB7XG4gICAgICAgICAgaWYoYSA8IGIpIHJldHVybiAtMTtcbiAgICAgICAgICBpZihhID4gYikgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI0NjogLy8gTGF6eV90YWdcbiAgICAgIGNhc2UgMjU0OiAvLyBEb3VibGVfYXJyYXlcbiAgICAgIGRlZmF1bHQ6IC8vIEJsb2NrIHdpdGggb3RoZXIgdGFnXG4gICAgICAgIGlmKGNhbWxfaXNfY29udGludWF0aW9uX3RhZyh0YWdfYSkpIHtcbiAgICAgICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjb21wYXJlOiBjb250aW51YXRpb24gdmFsdWVcIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGEubGVuZ3RoICE9IGIubGVuZ3RoKSByZXR1cm4gKGEubGVuZ3RoIDwgYi5sZW5ndGgpPy0xOjE7XG4gICAgICAgIGlmIChhLmxlbmd0aCA+IDEpIHN0YWNrLnB1c2goYSwgYiwgMSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoc3RhY2subGVuZ3RoID09IDApIHJldHVybiAwO1xuICAgIHZhciBpID0gc3RhY2sucG9wKCk7XG4gICAgYiA9IHN0YWNrLnBvcCgpO1xuICAgIGEgPSBzdGFjay5wb3AoKTtcbiAgICBpZiAoaSArIDEgPCBhLmxlbmd0aCkgc3RhY2sucHVzaChhLCBiLCBpICsgMSk7XG4gICAgYSA9IGFbaV07XG4gICAgYiA9IGJbaV07XG4gIH1cbn1cbi8vUHJvdmlkZXM6IGNhbWxfY29tcGFyZSAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jb21wYXJlX3ZhbFxuZnVuY3Rpb24gY2FtbF9jb21wYXJlIChhLCBiKSB7IHJldHVybiBjYW1sX2NvbXBhcmVfdmFsIChhLCBiLCB0cnVlKTsgfVxuLy9Qcm92aWRlczogY2FtbF9pbnRfY29tcGFyZSBtdXRhYmxlIChjb25zdCwgY29uc3QpXG5mdW5jdGlvbiBjYW1sX2ludF9jb21wYXJlIChhLCBiKSB7XG4gIGlmIChhIDwgYikgcmV0dXJuICgtMSk7IGlmIChhID09IGIpIHJldHVybiAwOyByZXR1cm4gMTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZXF1YWwgbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jb21wYXJlX3ZhbFxuZnVuY3Rpb24gY2FtbF9lcXVhbCAoeCwgeSkgeyByZXR1cm4gKyhjYW1sX2NvbXBhcmVfdmFsKHgseSxmYWxzZSkgPT0gMCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfbm90ZXF1YWwgbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jb21wYXJlX3ZhbFxuZnVuY3Rpb24gY2FtbF9ub3RlcXVhbCAoeCwgeSkgeyByZXR1cm4gKyhjYW1sX2NvbXBhcmVfdmFsKHgseSxmYWxzZSkgIT0gMCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JlYXRlcmVxdWFsIG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY29tcGFyZV92YWxcbmZ1bmN0aW9uIGNhbWxfZ3JlYXRlcmVxdWFsICh4LCB5KSB7IHJldHVybiArKGNhbWxfY29tcGFyZV92YWwoeCx5LGZhbHNlKSA+PSAwKTsgfVxuLy9Qcm92aWRlczogY2FtbF9ncmVhdGVydGhhbiBtdXRhYmxlIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NvbXBhcmVfdmFsXG5mdW5jdGlvbiBjYW1sX2dyZWF0ZXJ0aGFuICh4LCB5KSB7IHJldHVybiArKGNhbWxfY29tcGFyZV92YWwoeCx5LGZhbHNlKSA+IDApOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2xlc3NlcXVhbCBtdXRhYmxlIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NvbXBhcmVfdmFsXG5mdW5jdGlvbiBjYW1sX2xlc3NlcXVhbCAoeCwgeSkgeyByZXR1cm4gKyhjYW1sX2NvbXBhcmVfdmFsKHgseSxmYWxzZSkgPD0gMCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfbGVzc3RoYW4gbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jb21wYXJlX3ZhbFxuZnVuY3Rpb24gY2FtbF9sZXNzdGhhbiAoeCwgeSkgeyByZXR1cm4gKyhjYW1sX2NvbXBhcmVfdmFsKHgseSxmYWxzZSkgPCAwKTsgfVxuIiwiLy8gSnNfb2Zfb2NhbWwgbGlicmFyeVxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vLy8vLy8vLy8vLy8vIEpzbGliOiBjb2RlIHNwZWNpZmljIHRvIEpzX29mX29jYW1sXG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfb25faWUgY29uc3RcbmZ1bmN0aW9uIGNhbWxfanNfb25faWUgKCkge1xuICB2YXIgdWEgPVxuICAgICAgZ2xvYmFsVGhpcy5uYXZpZ2F0b3I/Z2xvYmFsVGhpcy5uYXZpZ2F0b3IudXNlckFnZW50OlwiXCI7XG4gIHJldHVybiB1YS5pbmRleE9mKFwiTVNJRVwiKSAhPSAtMSAmJiB1YS5pbmRleE9mKFwiT3BlcmFcIikgIT0gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9qc19odG1sX2VzY2FwZSBjb25zdCAoY29uc3QpXG52YXIgY2FtbF9qc19yZWdleHBzID0geyBhbXA6LyYvZywgbHQ6LzwvZywgcXVvdDovXFxcIi9nLCBhbGw6L1smPFxcXCJdLyB9O1xuZnVuY3Rpb24gY2FtbF9qc19odG1sX2VzY2FwZSAocykge1xuICBpZiAoIWNhbWxfanNfcmVnZXhwcy5hbGwudGVzdChzKSkgcmV0dXJuIHM7XG4gIHJldHVybiBzLnJlcGxhY2UoY2FtbF9qc19yZWdleHBzLmFtcCwgXCImYW1wO1wiKVxuICAgIC5yZXBsYWNlKGNhbWxfanNfcmVnZXhwcy5sdCwgXCImbHQ7XCIpXG4gICAgLnJlcGxhY2UoY2FtbF9qc19yZWdleHBzLnF1b3QsIFwiJnF1b3Q7XCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2h0bWxfZW50aXRpZXNcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfanNfaHRtbF9lbnRpdGllcyhzKSB7XG4gIHZhciBlbnRpdHkgPSAvXiYjP1swLTlhLXpBLVpdKzskL1xuICBpZihzLm1hdGNoKGVudGl0eSkpXG4gIHtcbiAgICB2YXIgc3RyLCB0ZW1wID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpO1xuICAgIHRlbXAuaW5uZXJIVE1MPSBzO1xuICAgIHN0cj0gdGVtcC50ZXh0Q29udGVudCB8fCB0ZW1wLmlubmVyVGV4dDtcbiAgICB0ZW1wPW51bGw7XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuICBlbHNlIHtcbiAgICBjYW1sX2ZhaWx3aXRoKFwiSW52YWxpZCBlbnRpdHkgXCIgKyBzKTtcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2dldF9jb25zb2xlIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2pzX2dldF9jb25zb2xlICgpIHtcbiAgdmFyIGMgPSBjb25zb2xlO1xuICB2YXIgbSA9IFtcImxvZ1wiLCBcImRlYnVnXCIsIFwiaW5mb1wiLCBcIndhcm5cIiwgXCJlcnJvclwiLCBcImFzc2VydFwiLCBcImRpclwiLCBcImRpcnhtbFwiLFxuICAgICAgICAgICBcInRyYWNlXCIsIFwiZ3JvdXBcIiwgXCJncm91cENvbGxhcHNlZFwiLCBcImdyb3VwRW5kXCIsIFwidGltZVwiLCBcInRpbWVFbmRcIl07XG4gIGZ1bmN0aW9uIGYgKCkge31cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBtLmxlbmd0aDsgaSsrKSBpZiAoIWNbbVtpXV0pIGNbbVtpXV09ZjtcbiAgcmV0dXJuIGM7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfeG1saHR0cHJlcXVlc3RfY3JlYXRlXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG4vL1dlYWtkZWZcbmZ1bmN0aW9uIGNhbWxfeG1saHR0cHJlcXVlc3RfY3JlYXRlKHVuaXQpe1xuICBpZih0eXBlb2YgZ2xvYmFsVGhpcy5YTUxIdHRwUmVxdWVzdCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICB0cnkgeyByZXR1cm4gbmV3IGdsb2JhbFRoaXMuWE1MSHR0cFJlcXVlc3QgfSBjYXRjaCAoZSkgeyB9O1xuICB9XG4gIGlmKHR5cGVvZiBnbG9iYWxUaGlzLmFjdGl2ZVhPYmplY3QgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgdHJ5IHsgcmV0dXJuIG5ldyBnbG9iYWxUaGlzLmFjdGl2ZVhPYmplY3QoXCJNc3htbDIuWE1MSFRUUFwiKSB9IGNhdGNoKGUpeyB9O1xuICAgIHRyeSB7IHJldHVybiBuZXcgZ2xvYmFsVGhpcy5hY3RpdmVYT2JqZWN0KFwiTXN4bWwzLlhNTEhUVFBcIikgfSBjYXRjaChlKXsgfTtcbiAgICB0cnkgeyByZXR1cm4gbmV3IGdsb2JhbFRoaXMuYWN0aXZlWE9iamVjdChcIk1pY3Jvc29mdC5YTUxIVFRQXCIpIH0gY2F0Y2goZSl7IH07XG4gIH1cbiAgY2FtbF9mYWlsd2l0aChcIkNhbm5vdCBjcmVhdGUgYSBYTUxIdHRwUmVxdWVzdFwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9qc19lcnJvcl9vZl9leGNlcHRpb25cbmZ1bmN0aW9uIGNhbWxfanNfZXJyb3Jfb2ZfZXhjZXB0aW9uKGV4bikge1xuICBpZihleG4uanNfZXJyb3IpIHsgcmV0dXJuIGV4bi5qc19lcnJvcjsgfVxuICByZXR1cm4gbnVsbDtcbn1cbiIsIi8vLy8vLy8vLyBCSUdTVFJJTkdcblxuLy9Qcm92aWRlczogY2FtbF9oYXNoX21peF9iaWdzdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfYnl0ZXNfYXJyXG5mdW5jdGlvbiBjYW1sX2hhc2hfbWl4X2JpZ3N0cmluZyhoLCBicykge1xuICByZXR1cm4gY2FtbF9oYXNoX21peF9ieXRlc19hcnIoaCxicy5kYXRhKTtcbn1cblxuLy9Qcm92aWRlczogYmlnc3RyaW5nX3RvX2FycmF5X2J1ZmZlciBtdXRhYmxlXG5mdW5jdGlvbiBiaWdzdHJpbmdfdG9fYXJyYXlfYnVmZmVyKGJzKSB7XG4gIHJldHVybiBicy5kYXRhLmJ1ZmZlclxufVxuXG4vL1Byb3ZpZGVzOiBiaWdzdHJpbmdfdG9fdHlwZWRfYXJyYXkgbXV0YWJsZVxuZnVuY3Rpb24gYmlnc3RyaW5nX3RvX3R5cGVkX2FycmF5KGJzKSB7XG4gIHJldHVybiBicy5kYXRhXG59XG5cbi8vUHJvdmlkZXM6IGJpZ3N0cmluZ19vZl9hcnJheV9idWZmZXIgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9iYV9jcmVhdGVfdW5zYWZlXG5mdW5jdGlvbiBiaWdzdHJpbmdfb2ZfYXJyYXlfYnVmZmVyKGFiKSB7XG4gIHZhciB0YSA9IG5ldyBVaW50OEFycmF5KGFiKTtcbiAgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZSgxMiwgMCwgW3RhLmxlbmd0aF0sIHRhKTtcbn1cblxuLy9Qcm92aWRlczogYmlnc3RyaW5nX29mX3R5cGVkX2FycmF5IG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfYmFfY3JlYXRlX3Vuc2FmZVxuZnVuY3Rpb24gYmlnc3RyaW5nX29mX3R5cGVkX2FycmF5KGJhKSB7XG4gIHZhciB0YSA9IG5ldyBVaW50OEFycmF5KGJhLmJ1ZmZlciwgYmEuYnl0ZU9mZnNldCwgYmEubGVuZ3RoICogYmEuQllURVNfUEVSX0VMRU1FTlQpO1xuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKDEyLCAwLCBbdGEubGVuZ3RoXSwgdGEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JpZ3N0cmluZ19tZW1jbXBcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZ2V0XzFcbmZ1bmN0aW9uIGNhbWxfYmlnc3RyaW5nX21lbWNtcChzMSwgcG9zMSwgczIsIHBvczIsIGxlbil7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICB2YXIgYSA9IGNhbWxfYmFfZ2V0XzEoczEscG9zMSArIGkpO1xuICAgIHZhciBiID0gY2FtbF9iYV9nZXRfMShzMixwb3MyICsgaSk7XG4gICAgaWYgKGEgPCBiKSByZXR1cm4gLTE7XG4gICAgaWYgKGEgPiBiKSByZXR1cm4gMTtcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19iYVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2JhKGJhMSwgcG9zMSwgYmEyLCBwb3MyLCBsZW4pe1xuICBpZigxMiAhPSBiYTEua2luZClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2JhOiBraW5kIG1pc21hdGNoXCIpO1xuICBpZigxMiAhPSBiYTIua2luZClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2JhOiBraW5kIG1pc21hdGNoXCIpO1xuICBpZihsZW4gPT0gMCkgcmV0dXJuIDA7XG4gIHZhciBvZnMxID0gYmExLm9mZnNldChwb3MxKTtcbiAgdmFyIG9mczIgPSBiYTIub2Zmc2V0KHBvczIpO1xuICBpZihvZnMxICsgbGVuID4gYmExLmRhdGEubGVuZ3RoKXtcbiAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIH1cbiAgaWYob2ZzMiArIGxlbiA+IGJhMi5kYXRhLmxlbmd0aCl7XG4gICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB9XG4gIHZhciBzbGljZSA9IGJhMS5kYXRhLnN1YmFycmF5KG9mczEsb2ZzMStsZW4pO1xuICBiYTIuZGF0YS5zZXQoc2xpY2UscG9zMik7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmlnc3RyaW5nX2JsaXRfc3RyaW5nX3RvX2JhXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IsIGNhbWxfdWludDhfYXJyYXlfb2Zfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGhcbmZ1bmN0aW9uIGNhbWxfYmlnc3RyaW5nX2JsaXRfc3RyaW5nX3RvX2JhKHN0cjEsIHBvczEsIGJhMiwgcG9zMiwgbGVuKXtcbiAgaWYoMTIgIT0gYmEyLmtpbmQpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY2FtbF9iaWdzdHJpbmdfYmxpdF9zdHJpbmdfdG9fYmE6IGtpbmQgbWlzbWF0Y2hcIik7XG4gIGlmKGxlbiA9PSAwKSByZXR1cm4gMDtcbiAgdmFyIG9mczIgPSBiYTIub2Zmc2V0KHBvczIpO1xuICBpZihwb3MxICsgbGVuID4gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHN0cjEpKSB7XG4gICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB9XG4gIGlmKG9mczIgKyBsZW4gPiBiYTIuZGF0YS5sZW5ndGgpIHtcbiAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIH1cbiAgdmFyIHNsaWNlID0gY2FtbF91aW50OF9hcnJheV9vZl9zdHJpbmcoc3RyMSkuc2xpY2UocG9zMSxwb3MxICsgbGVuKTtcbiAgYmEyLmRhdGEuc2V0KHNsaWNlLG9mczIpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JpZ3N0cmluZ19ibGl0X2J5dGVzX3RvX2JhXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IsIGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfbWxfYnl0ZXNfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX2JpZ3N0cmluZ19ibGl0X2J5dGVzX3RvX2JhKHN0cjEsIHBvczEsIGJhMiwgcG9zMiwgbGVuKXtcbiAgaWYoMTIgIT0gYmEyLmtpbmQpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY2FtbF9iaWdzdHJpbmdfYmxpdF9zdHJpbmdfdG9fYmE6IGtpbmQgbWlzbWF0Y2hcIik7XG4gIGlmKGxlbiA9PSAwKSByZXR1cm4gMDtcbiAgdmFyIG9mczIgPSBiYTIub2Zmc2V0KHBvczIpO1xuICBpZihwb3MxICsgbGVuID4gY2FtbF9tbF9ieXRlc19sZW5ndGgoc3RyMSkpIHtcbiAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIH1cbiAgaWYob2ZzMiArIGxlbiA+IGJhMi5kYXRhLmxlbmd0aCkge1xuICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgfVxuICB2YXIgc2xpY2UgPSBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzKHN0cjEpLnNsaWNlKHBvczEscG9zMSArIGxlbik7XG4gIGJhMi5kYXRhLnNldChzbGljZSxvZnMyKTtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG4vL1JlcXVpcmVzOiBjYW1sX2JsaXRfYnl0ZXMsIGNhbWxfYnl0ZXNfb2ZfYXJyYXlcbi8vUmVxdWlyZXM6IGNhbWxfbWxfYnl0ZXNfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2J5dGVzKGJhMSwgcG9zMSwgYnl0ZXMyLCBwb3MyLCBsZW4pe1xuICBpZigxMiAhPSBiYTEua2luZClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjYW1sX2JpZ3N0cmluZ19ibGl0X3N0cmluZ190b19iYToga2luZCBtaXNtYXRjaFwiKTtcbiAgaWYobGVuID09IDApIHJldHVybiAwO1xuICB2YXIgb2ZzMSA9IGJhMS5vZmZzZXQocG9zMSk7XG4gIGlmKG9mczEgKyBsZW4gPiBiYTEuZGF0YS5sZW5ndGgpe1xuICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgfVxuICBpZihwb3MyICsgbGVuID4gY2FtbF9tbF9ieXRlc19sZW5ndGgoYnl0ZXMyKSl7XG4gICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB9XG4gIHZhciBzbGljZSA9IGJhMS5kYXRhLnNsaWNlKG9mczEsIG9mczErbGVuKTtcbiAgY2FtbF9ibGl0X2J5dGVzKGNhbWxfYnl0ZXNfb2ZfYXJyYXkoc2xpY2UpLCAwLCBieXRlczIsIHBvczIsIGxlbik7XG4gIHJldHVybiAwXG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczogY2FtbF9tZDVfY2hhblxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfYXJyYXlcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2VfZW5kX29mX2ZpbGUsIGNhbWxfbWxfaW5wdXRfYmxvY2tcbi8vUmVxdWlyZXM6IGNhbWxfTUQ1SW5pdCwgY2FtbF9NRDVVcGRhdGUsIGNhbWxfTUQ1RmluYWxcbmZ1bmN0aW9uIGNhbWxfbWQ1X2NoYW4oY2hhbmlkLHRvcmVhZCl7XG4gIHZhciBjdHggPSBjYW1sX01ENUluaXQoKTtcbiAgdmFyIGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KDQwOTYpO1xuICBpZih0b3JlYWQgPCAwKXtcbiAgICB3aGlsZSh0cnVlKXtcbiAgICAgIHZhciByZWFkID0gY2FtbF9tbF9pbnB1dF9ibG9jayhjaGFuaWQsYnVmZmVyLDAsYnVmZmVyLmxlbmd0aCk7XG4gICAgICBpZihyZWFkID09IDApIGJyZWFrO1xuICAgICAgY2FtbF9NRDVVcGRhdGUoY3R4LGJ1ZmZlci5zdWJhcnJheSgwLCByZWFkKSwgcmVhZCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHdoaWxlKHRvcmVhZCA+IDApIHtcbiAgICAgIHZhciByZWFkID0gY2FtbF9tbF9pbnB1dF9ibG9jayhjaGFuaWQsYnVmZmVyLDAsICh0b3JlYWQgPiBidWZmZXIubGVuZ3RoID8gYnVmZmVyLmxlbmd0aCA6IHRvcmVhZCkpO1xuICAgICAgaWYocmVhZCA9PSAwKSBjYW1sX3JhaXNlX2VuZF9vZl9maWxlKCk7XG4gICAgICBjYW1sX01ENVVwZGF0ZShjdHgsYnVmZmVyLnN1YmFycmF5KDAsIHJlYWQpLCByZWFkKTtcbiAgICAgIHRvcmVhZCAtPSByZWFkXG4gICAgfVxuICB9XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9hcnJheShjYW1sX01ENUZpbmFsKGN0eCkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21kNV9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfb2Zfc3RyaW5nLCBjYW1sX21kNV9ieXRlc1xuZnVuY3Rpb24gY2FtbF9tZDVfc3RyaW5nKHMsIG9mcywgbGVuKSB7XG4gIHJldHVybiBjYW1sX21kNV9ieXRlcyhjYW1sX2J5dGVzX29mX3N0cmluZyhzKSxvZnMsbGVuKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9NRDVUcmFuc2Zvcm1cbnZhciBjYW1sX01ENVRyYW5zZm9ybSA9IChmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIGFkZCAoeCwgeSkgeyByZXR1cm4gKHggKyB5KSB8IDA7IH1cbiAgZnVuY3Rpb24geHgocSxhLGIseCxzLHQpIHtcbiAgICBhID0gYWRkKGFkZChhLCBxKSwgYWRkKHgsIHQpKTtcbiAgICByZXR1cm4gYWRkKChhIDw8IHMpIHwgKGEgPj4+ICgzMiAtIHMpKSwgYik7XG4gIH1cbiAgZnVuY3Rpb24gZmYoYSxiLGMsZCx4LHMsdCkge1xuICAgIHJldHVybiB4eCgoYiAmIGMpIHwgKCh+YikgJiBkKSwgYSwgYiwgeCwgcywgdCk7XG4gIH1cbiAgZnVuY3Rpb24gZ2coYSxiLGMsZCx4LHMsdCkge1xuICAgIHJldHVybiB4eCgoYiAmIGQpIHwgKGMgJiAofmQpKSwgYSwgYiwgeCwgcywgdCk7XG4gIH1cbiAgZnVuY3Rpb24gaGgoYSxiLGMsZCx4LHMsdCkgeyByZXR1cm4geHgoYiBeIGMgXiBkLCBhLCBiLCB4LCBzLCB0KTsgfVxuICBmdW5jdGlvbiBpaShhLGIsYyxkLHgscyx0KSB7IHJldHVybiB4eChjIF4gKGIgfCAofmQpKSwgYSwgYiwgeCwgcywgdCk7IH1cblxuICByZXR1cm4gZnVuY3Rpb24gKHcsIGJ1ZmZlcikge1xuICAgIHZhciBhID0gd1swXSwgYiA9IHdbMV0sIGMgPSB3WzJdLCBkID0gd1szXTtcblxuICAgIGEgPSBmZihhLCBiLCBjLCBkLCBidWZmZXJbIDBdLCA3LCAweEQ3NkFBNDc4KTtcbiAgICBkID0gZmYoZCwgYSwgYiwgYywgYnVmZmVyWyAxXSwgMTIsIDB4RThDN0I3NTYpO1xuICAgIGMgPSBmZihjLCBkLCBhLCBiLCBidWZmZXJbIDJdLCAxNywgMHgyNDIwNzBEQik7XG4gICAgYiA9IGZmKGIsIGMsIGQsIGEsIGJ1ZmZlclsgM10sIDIyLCAweEMxQkRDRUVFKTtcbiAgICBhID0gZmYoYSwgYiwgYywgZCwgYnVmZmVyWyA0XSwgNywgMHhGNTdDMEZBRik7XG4gICAgZCA9IGZmKGQsIGEsIGIsIGMsIGJ1ZmZlclsgNV0sIDEyLCAweDQ3ODdDNjJBKTtcbiAgICBjID0gZmYoYywgZCwgYSwgYiwgYnVmZmVyWyA2XSwgMTcsIDB4QTgzMDQ2MTMpO1xuICAgIGIgPSBmZihiLCBjLCBkLCBhLCBidWZmZXJbIDddLCAyMiwgMHhGRDQ2OTUwMSk7XG4gICAgYSA9IGZmKGEsIGIsIGMsIGQsIGJ1ZmZlclsgOF0sIDcsIDB4Njk4MDk4RDgpO1xuICAgIGQgPSBmZihkLCBhLCBiLCBjLCBidWZmZXJbIDldLCAxMiwgMHg4QjQ0RjdBRik7XG4gICAgYyA9IGZmKGMsIGQsIGEsIGIsIGJ1ZmZlclsxMF0sIDE3LCAweEZGRkY1QkIxKTtcbiAgICBiID0gZmYoYiwgYywgZCwgYSwgYnVmZmVyWzExXSwgMjIsIDB4ODk1Q0Q3QkUpO1xuICAgIGEgPSBmZihhLCBiLCBjLCBkLCBidWZmZXJbMTJdLCA3LCAweDZCOTAxMTIyKTtcbiAgICBkID0gZmYoZCwgYSwgYiwgYywgYnVmZmVyWzEzXSwgMTIsIDB4RkQ5ODcxOTMpO1xuICAgIGMgPSBmZihjLCBkLCBhLCBiLCBidWZmZXJbMTRdLCAxNywgMHhBNjc5NDM4RSk7XG4gICAgYiA9IGZmKGIsIGMsIGQsIGEsIGJ1ZmZlclsxNV0sIDIyLCAweDQ5QjQwODIxKTtcblxuICAgIGEgPSBnZyhhLCBiLCBjLCBkLCBidWZmZXJbIDFdLCA1LCAweEY2MUUyNTYyKTtcbiAgICBkID0gZ2coZCwgYSwgYiwgYywgYnVmZmVyWyA2XSwgOSwgMHhDMDQwQjM0MCk7XG4gICAgYyA9IGdnKGMsIGQsIGEsIGIsIGJ1ZmZlclsxMV0sIDE0LCAweDI2NUU1QTUxKTtcbiAgICBiID0gZ2coYiwgYywgZCwgYSwgYnVmZmVyWyAwXSwgMjAsIDB4RTlCNkM3QUEpO1xuICAgIGEgPSBnZyhhLCBiLCBjLCBkLCBidWZmZXJbIDVdLCA1LCAweEQ2MkYxMDVEKTtcbiAgICBkID0gZ2coZCwgYSwgYiwgYywgYnVmZmVyWzEwXSwgOSwgMHgwMjQ0MTQ1Myk7XG4gICAgYyA9IGdnKGMsIGQsIGEsIGIsIGJ1ZmZlclsxNV0sIDE0LCAweEQ4QTFFNjgxKTtcbiAgICBiID0gZ2coYiwgYywgZCwgYSwgYnVmZmVyWyA0XSwgMjAsIDB4RTdEM0ZCQzgpO1xuICAgIGEgPSBnZyhhLCBiLCBjLCBkLCBidWZmZXJbIDldLCA1LCAweDIxRTFDREU2KTtcbiAgICBkID0gZ2coZCwgYSwgYiwgYywgYnVmZmVyWzE0XSwgOSwgMHhDMzM3MDdENik7XG4gICAgYyA9IGdnKGMsIGQsIGEsIGIsIGJ1ZmZlclsgM10sIDE0LCAweEY0RDUwRDg3KTtcbiAgICBiID0gZ2coYiwgYywgZCwgYSwgYnVmZmVyWyA4XSwgMjAsIDB4NDU1QTE0RUQpO1xuICAgIGEgPSBnZyhhLCBiLCBjLCBkLCBidWZmZXJbMTNdLCA1LCAweEE5RTNFOTA1KTtcbiAgICBkID0gZ2coZCwgYSwgYiwgYywgYnVmZmVyWyAyXSwgOSwgMHhGQ0VGQTNGOCk7XG4gICAgYyA9IGdnKGMsIGQsIGEsIGIsIGJ1ZmZlclsgN10sIDE0LCAweDY3NkYwMkQ5KTtcbiAgICBiID0gZ2coYiwgYywgZCwgYSwgYnVmZmVyWzEyXSwgMjAsIDB4OEQyQTRDOEEpO1xuXG4gICAgYSA9IGhoKGEsIGIsIGMsIGQsIGJ1ZmZlclsgNV0sIDQsIDB4RkZGQTM5NDIpO1xuICAgIGQgPSBoaChkLCBhLCBiLCBjLCBidWZmZXJbIDhdLCAxMSwgMHg4NzcxRjY4MSk7XG4gICAgYyA9IGhoKGMsIGQsIGEsIGIsIGJ1ZmZlclsxMV0sIDE2LCAweDZEOUQ2MTIyKTtcbiAgICBiID0gaGgoYiwgYywgZCwgYSwgYnVmZmVyWzE0XSwgMjMsIDB4RkRFNTM4MEMpO1xuICAgIGEgPSBoaChhLCBiLCBjLCBkLCBidWZmZXJbIDFdLCA0LCAweEE0QkVFQTQ0KTtcbiAgICBkID0gaGgoZCwgYSwgYiwgYywgYnVmZmVyWyA0XSwgMTEsIDB4NEJERUNGQTkpO1xuICAgIGMgPSBoaChjLCBkLCBhLCBiLCBidWZmZXJbIDddLCAxNiwgMHhGNkJCNEI2MCk7XG4gICAgYiA9IGhoKGIsIGMsIGQsIGEsIGJ1ZmZlclsxMF0sIDIzLCAweEJFQkZCQzcwKTtcbiAgICBhID0gaGgoYSwgYiwgYywgZCwgYnVmZmVyWzEzXSwgNCwgMHgyODlCN0VDNik7XG4gICAgZCA9IGhoKGQsIGEsIGIsIGMsIGJ1ZmZlclsgMF0sIDExLCAweEVBQTEyN0ZBKTtcbiAgICBjID0gaGgoYywgZCwgYSwgYiwgYnVmZmVyWyAzXSwgMTYsIDB4RDRFRjMwODUpO1xuICAgIGIgPSBoaChiLCBjLCBkLCBhLCBidWZmZXJbIDZdLCAyMywgMHgwNDg4MUQwNSk7XG4gICAgYSA9IGhoKGEsIGIsIGMsIGQsIGJ1ZmZlclsgOV0sIDQsIDB4RDlENEQwMzkpO1xuICAgIGQgPSBoaChkLCBhLCBiLCBjLCBidWZmZXJbMTJdLCAxMSwgMHhFNkRCOTlFNSk7XG4gICAgYyA9IGhoKGMsIGQsIGEsIGIsIGJ1ZmZlclsxNV0sIDE2LCAweDFGQTI3Q0Y4KTtcbiAgICBiID0gaGgoYiwgYywgZCwgYSwgYnVmZmVyWyAyXSwgMjMsIDB4QzRBQzU2NjUpO1xuXG4gICAgYSA9IGlpKGEsIGIsIGMsIGQsIGJ1ZmZlclsgMF0sIDYsIDB4RjQyOTIyNDQpO1xuICAgIGQgPSBpaShkLCBhLCBiLCBjLCBidWZmZXJbIDddLCAxMCwgMHg0MzJBRkY5Nyk7XG4gICAgYyA9IGlpKGMsIGQsIGEsIGIsIGJ1ZmZlclsxNF0sIDE1LCAweEFCOTQyM0E3KTtcbiAgICBiID0gaWkoYiwgYywgZCwgYSwgYnVmZmVyWyA1XSwgMjEsIDB4RkM5M0EwMzkpO1xuICAgIGEgPSBpaShhLCBiLCBjLCBkLCBidWZmZXJbMTJdLCA2LCAweDY1NUI1OUMzKTtcbiAgICBkID0gaWkoZCwgYSwgYiwgYywgYnVmZmVyWyAzXSwgMTAsIDB4OEYwQ0NDOTIpO1xuICAgIGMgPSBpaShjLCBkLCBhLCBiLCBidWZmZXJbMTBdLCAxNSwgMHhGRkVGRjQ3RCk7XG4gICAgYiA9IGlpKGIsIGMsIGQsIGEsIGJ1ZmZlclsgMV0sIDIxLCAweDg1ODQ1REQxKTtcbiAgICBhID0gaWkoYSwgYiwgYywgZCwgYnVmZmVyWyA4XSwgNiwgMHg2RkE4N0U0Rik7XG4gICAgZCA9IGlpKGQsIGEsIGIsIGMsIGJ1ZmZlclsxNV0sIDEwLCAweEZFMkNFNkUwKTtcbiAgICBjID0gaWkoYywgZCwgYSwgYiwgYnVmZmVyWyA2XSwgMTUsIDB4QTMwMTQzMTQpO1xuICAgIGIgPSBpaShiLCBjLCBkLCBhLCBidWZmZXJbMTNdLCAyMSwgMHg0RTA4MTFBMSk7XG4gICAgYSA9IGlpKGEsIGIsIGMsIGQsIGJ1ZmZlclsgNF0sIDYsIDB4Rjc1MzdFODIpO1xuICAgIGQgPSBpaShkLCBhLCBiLCBjLCBidWZmZXJbMTFdLCAxMCwgMHhCRDNBRjIzNSk7XG4gICAgYyA9IGlpKGMsIGQsIGEsIGIsIGJ1ZmZlclsgMl0sIDE1LCAweDJBRDdEMkJCKTtcbiAgICBiID0gaWkoYiwgYywgZCwgYSwgYnVmZmVyWyA5XSwgMjEsIDB4RUI4NkQzOTEpO1xuXG4gICAgd1swXSA9IGFkZChhLCB3WzBdKTtcbiAgICB3WzFdID0gYWRkKGIsIHdbMV0pO1xuICAgIHdbMl0gPSBhZGQoYywgd1syXSk7XG4gICAgd1szXSA9IGFkZChkLCB3WzNdKTtcbiAgfX0pKClcblxuLy9Qcm92aWRlczogY2FtbF9NRDVJbml0XG5mdW5jdGlvbiBjYW1sX01ENUluaXQoKSB7XG4gIHZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoNjQpO1xuICB2YXIgYjMyID0gbmV3IFVpbnQzMkFycmF5KGJ1ZmZlcik7XG4gIHZhciBiOCA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlcik7XG4gIHJldHVybiB7bGVuOjAsXG4gICAgICAgICAgdzpuZXcgVWludDMyQXJyYXkoWzB4Njc0NTIzMDEsIDB4RUZDREFCODksIDB4OThCQURDRkUsIDB4MTAzMjU0NzZdKSxcbiAgICAgICAgICBiMzI6YjMyLFxuICAgICAgICAgIGI4OmI4fVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX01ENVVwZGF0ZVxuLy9SZXF1aXJlczogY2FtbF9NRDVUcmFuc2Zvcm1cbmZ1bmN0aW9uIGNhbWxfTUQ1VXBkYXRlKGN0eCwgaW5wdXQsIGlucHV0X2xlbil7XG4gIHZhciBpbl9idWYgPSBjdHgubGVuICYgMHgzZjtcbiAgdmFyIGlucHV0X3BvcyA9IDA7XG4gIGN0eC5sZW4gKz0gaW5wdXRfbGVuO1xuICBpZihpbl9idWYpe1xuICAgIHZhciBtaXNzaW5nID0gNjQgLSBpbl9idWY7XG4gICAgaWYoaW5wdXRfbGVuIDwgbWlzc2luZykge1xuICAgICAgY3R4LmI4LnNldChpbnB1dC5zdWJhcnJheSgwLGlucHV0X2xlbiksaW5fYnVmKTtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjdHguYjguc2V0KGlucHV0LnN1YmFycmF5KDAsbWlzc2luZyksaW5fYnVmKTtcbiAgICBjYW1sX01ENVRyYW5zZm9ybShjdHgudywgY3R4LmIzMik7XG4gICAgaW5wdXRfbGVuIC09IG1pc3Npbmc7XG4gICAgaW5wdXRfcG9zICs9IG1pc3Npbmc7XG4gIH1cbiAgd2hpbGUoaW5wdXRfbGVuID49IDY0KXtcbiAgICBjdHguYjguc2V0KGlucHV0LnN1YmFycmF5KGlucHV0X3BvcyxpbnB1dF9wb3MgKyA2NCksIDApO1xuICAgIGNhbWxfTUQ1VHJhbnNmb3JtKGN0eC53LCBjdHguYjMyKTtcbiAgICBpbnB1dF9sZW4gLT0gNjQ7XG4gICAgaW5wdXRfcG9zICs9IDY0O1xuICB9XG4gIGlmKGlucHV0X2xlbilcbiAgICBjdHguYjguc2V0KGlucHV0LnN1YmFycmF5KGlucHV0X3BvcyxpbnB1dF9wb3MgKyBpbnB1dF9sZW4pLCAwKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9NRDVGaW5hbFxuLy9SZXF1aXJlczogY2FtbF9NRDVUcmFuc2Zvcm1cbmZ1bmN0aW9uIGNhbWxfTUQ1RmluYWwoY3R4KXtcbiAgdmFyIGluX2J1ZiA9IGN0eC5sZW4gJiAweDNmO1xuICBjdHguYjhbaW5fYnVmXSA9IDB4ODA7XG4gIGluX2J1ZiArKztcbiAgaWYoaW5fYnVmID4gNTYpIHtcbiAgICBmb3IodmFyIGogPSBpbl9idWY7IGogPCA2NDsgaisrKXtcbiAgICAgIGN0eC5iOFtqXSA9IDA7XG4gICAgfVxuICAgIGNhbWxfTUQ1VHJhbnNmb3JtKGN0eC53LCBjdHguYjMyKTtcbiAgICBmb3IodmFyIGogPSAwOyBqIDwgNTY7IGorKyl7XG4gICAgICBjdHguYjhbal0gPSAwO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBmb3IodmFyIGogPSBpbl9idWY7IGogPCA1NjsgaisrKXtcbiAgICAgIGN0eC5iOFtqXSA9IDA7XG4gICAgfVxuICB9XG4gIGN0eC5iMzJbMTRdID0gY3R4LmxlbiA8PCAzO1xuICBjdHguYjMyWzE1XSA9IChjdHgubGVuID4+IDI5KSAmIDB4MUZGRkZGRkY7XG4gIGNhbWxfTUQ1VHJhbnNmb3JtKGN0eC53LCBjdHguYjMyKTtcbiAgdmFyIHQgPSBuZXcgVWludDhBcnJheSgxNik7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgNDsgaSsrKVxuICAgIGZvciAodmFyIGogPSAwOyBqIDwgNDsgaisrKVxuICAgICAgdFtpICogNCArIGpdID0gKGN0eC53W2ldID4+ICg4ICogaikpICYgMHhGRjtcbiAgcmV0dXJuIHQ7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9tZDVfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXMsIGNhbWxfc3RyaW5nX29mX2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX01ENUluaXQsIGNhbWxfTUQ1VXBkYXRlLCBjYW1sX01ENUZpbmFsXG5mdW5jdGlvbiBjYW1sX21kNV9ieXRlcyhzLCBvZnMsIGxlbikge1xuICB2YXIgY3R4ID0gY2FtbF9NRDVJbml0KCk7XG4gIHZhciBhID0gY2FtbF91aW50OF9hcnJheV9vZl9ieXRlcyhzKTtcbiAgY2FtbF9NRDVVcGRhdGUoY3R4LGEuc3ViYXJyYXkob2ZzLCBvZnMgKyBsZW4pLCBsZW4pO1xuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfYXJyYXkoY2FtbF9NRDVGaW5hbChjdHgpKTtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAyMCAtIEh1Z28gSGV1emFyZFxuLy8gQ29weXJpZ2h0IChDKSAyMDIwIC0gU2hhY2hhciBJdHpoYWt5XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vLyBCYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vb2NhbWwvb2NhbWwvYmxvYi80LjA3L290aGVybGlicy9zdHIvc3Ryc3R1YnMuY1xuLy8gQ29waWVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2pzY29xL2pzY29xL2Jsb2IvdjguMTEvY29xLWpzL2pzX3N0dWIvc3RyLmpzXG5cbi8vUHJvdmlkZXM6IHJlX21hdGNoXG4vL1JlcXVpcmVzOiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nLCBjYW1sX2pzX2Zyb21fYXJyYXksIGNhbWxfdWludDhfYXJyYXlfb2Zfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19nZXRcblxudmFyIHJlX21hdGNoID0gZnVuY3Rpb24oKXtcbiAgdmFyIHJlX3dvcmRfbGV0dGVycyA9IFtcbiAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgICAgICAvKiAweDAwLTB4MUY6IG5vbmUgKi9cbiAgICAweDAwLCAweDAwLCAweEZGLCAweDAzLCAgICAgICAvKiAweDIwLTB4M0Y6IGRpZ2l0cyAwLTkgKi9cbiAgICAweEZFLCAweEZGLCAweEZGLCAweDg3LCAgICAgICAvKiAweDQwLTB4NUY6IEEgdG8gWiwgXyAqL1xuICAgIDB4RkUsIDB4RkYsIDB4RkYsIDB4MDcsICAgICAgIC8qIDB4NjAtMHg3RjogYSB0byB6ICovXG4gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgICAgICAgLyogMHg4MC0weDlGOiBub25lICovXG4gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgICAgICAgLyogMHhBMC0weEJGOiBub25lICovXG4gICAgMHhGRiwgMHhGRiwgMHg3RiwgMHhGRiwgICAgICAgLyogMHhDMC0weERGOiBMYXRpbi0xIGFjY2VudGVkIHVwcGVyY2FzZSAqL1xuICAgIDB4RkYsIDB4RkYsIDB4N0YsIDB4RkYgICAgICAgIC8qIDB4RTAtMHhGRjogTGF0aW4tMSBhY2NlbnRlZCBsb3dlcmNhc2UgKi9cbiAgXTtcblxuICB2YXIgb3Bjb2RlcyA9IHtcbiAgICBDSEFSOiAwLCBDSEFSTk9STTogMSwgU1RSSU5HOiAyLCBTVFJJTkdOT1JNOiAzLCBDSEFSQ0xBU1M6IDQsXG4gICAgQk9MOiA1LCBFT0w6IDYsIFdPUkRCT1VOREFSWTogNyxcbiAgICBCRUdHUk9VUDogOCwgRU5ER1JPVVA6IDksIFJFRkdST1VQOiAxMCxcbiAgICBBQ0NFUFQ6IDExLFxuICAgIFNJTVBMRU9QVDogMTIsIFNJTVBMRVNUQVI6IDEzLCBTSU1QTEVQTFVTOiAxNCxcbiAgICBHT1RPOiAxNSwgUFVTSEJBQ0s6IDE2LCBTRVRNQVJLOiAxNyxcbiAgICBDSEVDS1BST0dSRVNTOiAxOFxuICB9O1xuXG4gIGZ1bmN0aW9uIGlzX3dvcmRfbGV0dGVyKGMpIHtcbiAgICByZXR1cm4gKHJlX3dvcmRfbGV0dGVyc1sgIChjID4+IDMpXSA+PiAoYyAmIDcpKSAmIDE7XG4gIH1cblxuICBmdW5jdGlvbiBpbl9iaXRzZXQocyxpKSB7XG4gICAgcmV0dXJuIChjYW1sX3N0cmluZ19nZXQocywoaSA+PiAzKSkgPj4gKGkgJiA3KSkgJiAxO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVfbWF0Y2hfaW1wbChyZSwgcywgcG9zLCBwYXJ0aWFsKSB7XG5cbiAgICB2YXIgcHJvZyAgICAgICAgICA9IGNhbWxfanNfZnJvbV9hcnJheShyZVsxXSksXG4gICAgICAgIGNwb29sICAgICAgICAgPSBjYW1sX2pzX2Zyb21fYXJyYXkocmVbMl0pLFxuICAgICAgICBub3JtdGFibGUgICAgID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhyZVszXSksXG4gICAgICAgIG51bWdyb3VwcyAgICAgPSByZVs0XSB8IDAsXG4gICAgICAgIG51bXJlZ2lzdGVycyAgPSByZVs1XSB8IDAsXG4gICAgICAgIHN0YXJ0Y2hhcnMgICAgPSByZVs2XSB8IDA7XG5cbiAgICB2YXIgcyA9IGNhbWxfdWludDhfYXJyYXlfb2Zfc3RyaW5nKHMpO1xuXG4gICAgdmFyIHBjID0gMCxcbiAgICAgICAgcXVpdCA9IGZhbHNlLFxuICAgICAgICBzdGFjayA9IFtdLFxuICAgICAgICBncm91cHMgPSBuZXcgQXJyYXkobnVtZ3JvdXBzKSxcbiAgICAgICAgcmVfcmVnaXN0ZXIgPSBuZXcgQXJyYXkobnVtcmVnaXN0ZXJzKTtcblxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBncm91cHMubGVuZ3RoOyBpKyspe1xuICAgICAgZ3JvdXBzW2ldID0ge3N0YXJ0OiAtMSwgZW5kOi0xfVxuICAgIH1cbiAgICBncm91cHNbMF0uc3RhcnQgPSBwb3M7XG5cbiAgICB2YXIgYmFja3RyYWNrID0gZnVuY3Rpb24gKCkge1xuICAgICAgd2hpbGUgKHN0YWNrLmxlbmd0aCkge1xuICAgICAgICB2YXIgaXRlbSA9IHN0YWNrLnBvcCgpO1xuICAgICAgICBpZiAoaXRlbS51bmRvKSB7XG4gICAgICAgICAgaXRlbS51bmRvLm9ialtpdGVtLnVuZG8ucHJvcF0gPSBpdGVtLnVuZG8udmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZihpdGVtLnBvcykge1xuICAgICAgICAgIHBjID0gaXRlbS5wb3MucGM7XG4gICAgICAgICAgcG9zID0gaXRlbS5wb3MudHh0O1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcXVpdCA9IHRydWU7XG4gICAgfTtcblxuICAgIHZhciBwdXNoID0gZnVuY3Rpb24oaXRlbSkgeyBzdGFjay5wdXNoKGl0ZW0pOyB9O1xuXG4gICAgdmFyIGFjY2VwdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGdyb3Vwc1swXS5lbmQgPSBwb3M7XG4gICAgICB2YXIgcmVzdWx0ID0gbmV3IEFycmF5KDEgKyBncm91cHMubGVuZ3RoKjIpO1xuICAgICAgcmVzdWx0WzBdID0gMDsgLy8gdGFnXG4gICAgICBmb3IodmFyIGkgPSAwOyBpIDwgZ3JvdXBzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgdmFyIGcgPSBncm91cHNbaV07XG4gICAgICAgIGlmKGcuc3RhcnQgPCAwIHx8IGcuZW5kIDwgMCkge1xuICAgICAgICAgIGcuc3RhcnQgPSBnLmVuZCA9IC0xO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdFsyKmkgKyAxIF0gPSBnLnN0YXJ0O1xuICAgICAgICByZXN1bHRbMippICsgMSArIDEgXSA9IGcuZW5kO1xuICAgICAgfTtcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9O1xuXG4gICAgdmFyIHByZWZpeF9tYXRjaCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmKHBhcnRpYWwpIHJldHVybiBhY2NlcHQgKCk7XG4gICAgICBlbHNlIGJhY2t0cmFjayAoKTtcbiAgICB9XG5cbiAgICAvKiBNYWluIERGQSBpbnRlcnByZXRlciBsb29wICovXG4gICAgd2hpbGUgKCFxdWl0KSB7XG4gICAgICB2YXIgb3AgPSBwcm9nW3BjXSAmIDB4ZmYsXG4gICAgICAgICAgc2FyZyA9IHByb2dbcGNdID4+IDgsXG4gICAgICAgICAgdWFyZyA9IHNhcmcgJiAweGZmLFxuICAgICAgICAgIGMgPSBzW3Bvc10sXG4gICAgICAgICAgZ3JvdXA7XG5cbiAgICAgIHBjKys7XG5cbiAgICAgIHN3aXRjaCAob3ApIHtcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5DSEFSOlxuICAgICAgICBpZihwb3MgPT09IHMubGVuZ3RoKSB7cHJlZml4X21hdGNoICgpOyBicmVha307XG4gICAgICAgIGlmIChjID09PSB1YXJnKSBwb3MrKztcbiAgICAgICAgZWxzZSBiYWNrdHJhY2soKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuQ0hBUk5PUk06XG4gICAgICAgIGlmKHBvcyA9PT0gcy5sZW5ndGgpIHtwcmVmaXhfbWF0Y2ggKCk7IGJyZWFrfTtcbiAgICAgICAgaWYgKG5vcm10YWJsZS5jaGFyQ29kZUF0KGMpID09PSB1YXJnKSBwb3MrKztcbiAgICAgICAgZWxzZSBiYWNrdHJhY2soKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuU1RSSU5HOlxuICAgICAgICBmb3IgKHZhciBhcmcgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKGNwb29sW3VhcmddKSwgaSA9IDA7IGkgPCBhcmcubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBpZihwb3MgPT09IHMubGVuZ3RoKSB7cHJlZml4X21hdGNoICgpOyBicmVha307XG4gICAgICAgICAgaWYgKGMgPT09IGFyZy5jaGFyQ29kZUF0KGkpKVxuICAgICAgICAgICAgYyA9IHNbKytwb3NdO1xuICAgICAgICAgIGVsc2UgeyBiYWNrdHJhY2soKTsgYnJlYWs7IH1cbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5TVFJJTkdOT1JNOlxuICAgICAgICBmb3IgKHZhciBhcmcgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKGNwb29sW3VhcmddKSwgaSA9IDA7IGkgPCBhcmcubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBpZihwb3MgPT09IHMubGVuZ3RoKSB7cHJlZml4X21hdGNoICgpOyBicmVha307XG4gICAgICAgICAgaWYgKG5vcm10YWJsZS5jaGFyQ29kZUF0KGMpID09PSBhcmcuY2hhckNvZGVBdChpKSlcbiAgICAgICAgICAgIGMgPSBzWysrcG9zXTtcbiAgICAgICAgICBlbHNlIHsgYmFja3RyYWNrKCk7IGJyZWFrOyB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuQ0hBUkNMQVNTOlxuICAgICAgICBpZihwb3MgPT09IHMubGVuZ3RoKSB7cHJlZml4X21hdGNoICgpOyBicmVha307XG4gICAgICAgIGlmIChpbl9iaXRzZXQoY3Bvb2xbdWFyZ10sIGMpKSBwb3MrKztcbiAgICAgICAgZWxzZSBiYWNrdHJhY2soKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuQk9MOlxuICAgICAgICBpZihwb3MgPiAwICYmIHNbcG9zIC0gMV0gIT0gMTAgLyogXFxuICovKSB7YmFja3RyYWNrKCl9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLkVPTDpcbiAgICAgICAgaWYocG9zIDwgcy5sZW5ndGggJiYgc1twb3NdICE9IDEwIC8qIFxcbiAqLykge2JhY2t0cmFjaygpfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5XT1JEQk9VTkRBUlk6XG4gICAgICAgIGlmKHBvcyA9PSAwKSB7XG4gICAgICAgICAgaWYocG9zID09PSBzLmxlbmd0aCkge3ByZWZpeF9tYXRjaCAoKTsgYnJlYWt9O1xuICAgICAgICAgIGlmKGlzX3dvcmRfbGV0dGVyKHNbMF0pKSBicmVhaztcbiAgICAgICAgICBiYWNrdHJhY2soKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChwb3MgPT09IHMubGVuZ3RoKSB7XG4gICAgICAgICAgaWYoaXNfd29yZF9sZXR0ZXIoc1twb3MgLSAxXSkpIGJyZWFrO1xuICAgICAgICAgIGJhY2t0cmFjayAoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBpZihpc193b3JkX2xldHRlcihzW3BvcyAtIDFdKSAhPSBpc193b3JkX2xldHRlcihzW3Bvc10pKSBicmVhaztcbiAgICAgICAgICBiYWNrdHJhY2sgKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuQkVHR1JPVVA6XG4gICAgICAgIGdyb3VwID0gZ3JvdXBzW3VhcmddO1xuICAgICAgICBwdXNoKHt1bmRvOiB7b2JqOmdyb3VwLFxuICAgICAgICAgICAgICAgICAgICAgcHJvcDonc3RhcnQnLFxuICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGdyb3VwLnN0YXJ0fX0pO1xuICAgICAgICBncm91cC5zdGFydCA9IHBvcztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuRU5ER1JPVVA6XG4gICAgICAgIGdyb3VwID0gZ3JvdXBzW3VhcmddO1xuICAgICAgICBwdXNoKHt1bmRvOiB7b2JqOiBncm91cCxcbiAgICAgICAgICAgICAgICAgICAgIHByb3A6J2VuZCcsXG4gICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZ3JvdXAuZW5kfX0pO1xuICAgICAgICBncm91cC5lbmQgPSBwb3M7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLlJFRkdST1VQOlxuICAgICAgICBncm91cCA9IGdyb3Vwc1t1YXJnXTtcbiAgICAgICAgaWYoZ3JvdXAuc3RhcnQgPCAwIHx8IGdyb3VwLmVuZCA8IDApIHtiYWNrdHJhY2sgKCk7IGJyZWFrfVxuICAgICAgICBmb3IgKHZhciBpID0gZ3JvdXAuc3RhcnQ7IGkgPCBncm91cC5lbmQ7IGkrKyl7XG4gICAgICAgICAgaWYocG9zID09PSBzLmxlbmd0aCkge3ByZWZpeF9tYXRjaCAoKTsgYnJlYWt9O1xuICAgICAgICAgIGlmKHNbaV0gIT0gc1twb3NdKSB7YmFja3RyYWNrICgpOyBicmVha31cbiAgICAgICAgICBwb3MrKztcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5TSU1QTEVPUFQ6XG4gICAgICAgIGlmIChpbl9iaXRzZXQoY3Bvb2xbdWFyZ10sIGMpKSBwb3MrKztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuU0lNUExFU1RBUjpcbiAgICAgICAgd2hpbGUgKGluX2JpdHNldChjcG9vbFt1YXJnXSwgYykpXG4gICAgICAgICAgYyA9IHNbKytwb3NdO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5TSU1QTEVQTFVTOlxuICAgICAgICBpZihwb3MgPT09IHMubGVuZ3RoKSB7cHJlZml4X21hdGNoICgpOyBicmVha307XG4gICAgICAgIGlmIChpbl9iaXRzZXQoY3Bvb2xbdWFyZ10sIGMpKSB7XG4gICAgICAgICAgZG8ge1xuICAgICAgICAgICAgYyA9IHNbKytwb3NdO1xuICAgICAgICAgIH0gd2hpbGUgKGluX2JpdHNldChjcG9vbFt1YXJnXSwgYykpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgYmFja3RyYWNrKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLkFDQ0VQVDpcbiAgICAgICAgcmV0dXJuIGFjY2VwdCgpO1xuICAgICAgY2FzZSBvcGNvZGVzLkdPVE86XG4gICAgICAgIHBjID0gcGMgKyBzYXJnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5QVVNIQkFDSzpcbiAgICAgICAgcHVzaCh7cG9zOiB7cGM6IHBjICsgc2FyZywgdHh0OiBwb3N9fSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLlNFVE1BUks6XG4gICAgICAgIHB1c2goe3VuZG86IHtvYmo6cmVfcmVnaXN0ZXIsXG4gICAgICAgICAgICAgICAgICAgICBwcm9wOiB1YXJnLFxuICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHJlX3JlZ2lzdGVyW3VhcmddfX0pO1xuICAgICAgICByZV9yZWdpc3Rlclt1YXJnXSA9IHBvcztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuQ0hFQ0tQUk9HUkVTUzpcbiAgICAgICAgaWYgKHJlX3JlZ2lzdGVyW3VhcmddID09PSBwb3MpIGJhY2t0cmFjaygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgYnl0ZWNvZGVcIik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcmV0dXJuIHJlX21hdGNoX2ltcGw7XG59KCk7XG5cblxuLy9Qcm92aWRlczogcmVfc2VhcmNoX2ZvcndhcmRcbi8vUmVxdWlyZXM6IHJlX21hdGNoLCBjYW1sX21sX3N0cmluZ19sZW5ndGgsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gcmVfc2VhcmNoX2ZvcndhcmQocmUsIHMsIHBvcykge1xuICBpZihwb3MgPCAwIHx8IHBvcyA+IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSlcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJTdHIuc2VhcmNoX2ZvcndhcmRcIilcbiAgd2hpbGUgKHBvcyA8PSBjYW1sX21sX3N0cmluZ19sZW5ndGgocykpIHtcbiAgICB2YXIgcmVzID0gcmVfbWF0Y2gocmUsIHMsIHBvcywgMCk7XG4gICAgaWYgKHJlcykgcmV0dXJuIHJlcztcbiAgICBwb3MrKztcbiAgfVxuXG4gIHJldHVybiBbMF07ICAvKiBbfHxdIDogaW50IGFycmF5ICovXG59XG5cbi8vUHJvdmlkZXM6IHJlX3NlYXJjaF9iYWNrd2FyZFxuLy9SZXF1aXJlczogcmVfbWF0Y2gsIGNhbWxfbWxfc3RyaW5nX2xlbmd0aCwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiByZV9zZWFyY2hfYmFja3dhcmQocmUsIHMsIHBvcykge1xuICBpZihwb3MgPCAwIHx8IHBvcyA+IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSlcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJTdHIuc2VhcmNoX2JhY2t3YXJkXCIpXG4gIHdoaWxlIChwb3MgPj0gMCkge1xuICAgIHZhciByZXMgPSByZV9tYXRjaChyZSwgcywgcG9zLCAwKTtcbiAgICBpZiAocmVzKSByZXR1cm4gcmVzO1xuICAgIHBvcy0tO1xuICB9XG5cbiAgcmV0dXJuIFswXTsgIC8qIFt8fF0gOiBpbnQgYXJyYXkgKi9cbn1cblxuXG4vL1Byb3ZpZGVzOiByZV9zdHJpbmdfbWF0Y2hcbi8vUmVxdWlyZXM6IHJlX21hdGNoLCBjYW1sX21sX3N0cmluZ19sZW5ndGgsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gcmVfc3RyaW5nX21hdGNoKHJlLHMscG9zKXtcbiAgaWYocG9zIDwgMCB8fCBwb3MgPiBjYW1sX21sX3N0cmluZ19sZW5ndGgocykpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiU3RyLnN0cmluZ19tYXRjaFwiKVxuICB2YXIgcmVzID0gcmVfbWF0Y2gocmUsIHMsIHBvcywgMCk7XG4gIGlmIChyZXMpIHJldHVybiByZXM7XG4gIGVsc2UgcmV0dXJuIFswXTtcbn1cblxuLy9Qcm92aWRlczogcmVfcGFydGlhbF9tYXRjaFxuLy9SZXF1aXJlczogcmVfbWF0Y2gsIGNhbWxfbWxfc3RyaW5nX2xlbmd0aCwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiByZV9wYXJ0aWFsX21hdGNoKHJlLHMscG9zKXtcbiAgaWYocG9zIDwgMCB8fCBwb3MgPiBjYW1sX21sX3N0cmluZ19sZW5ndGgocykpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiU3RyLnBhcnRpYWxfbWF0Y2hcIilcbiAgdmFyIHJlcyA9IHJlX21hdGNoKHJlLCBzLCBwb3MsIDEpO1xuICBpZiAocmVzKSByZXR1cm4gcmVzO1xuICBlbHNlIHJldHVybiBbMF07XG59XG5cbi8vUHJvdmlkZXM6IHJlX3JlcGxhY2VtZW50X3RleHRcbi8vUmVxdWlyZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmcsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG4vLyBleHRlcm5hbCByZV9yZXBsYWNlbWVudF90ZXh0OiBzdHJpbmcgLT4gaW50IGFycmF5IC0+IHN0cmluZyAtPiBzdHJpbmdcbmZ1bmN0aW9uIHJlX3JlcGxhY2VtZW50X3RleHQocmVwbCxncm91cHMsb3JpZykge1xuICB2YXIgcmVwbCA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcocmVwbCk7XG4gIHZhciBsZW4gPSByZXBsLmxlbmd0aDtcbiAgdmFyIG9yaWcgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKG9yaWcpO1xuICB2YXIgcmVzID0gXCJcIjsgLy9yZXN1bHRcbiAgdmFyIG4gPSAwOyAvLyBjdXJyZW50IHBvc2l0aW9uXG4gIHZhciBjdXI7IC8vY3VycmVudCBjaGFyXG4gIHZhciBzdGFydCwgZW5kLCBjO1xuICB3aGlsZShuIDwgbGVuKXtcbiAgICBjdXIgPSByZXBsLmNoYXJBdChuKyspO1xuICAgIGlmKGN1ciAhPSAnXFxcXCcpe1xuICAgICAgcmVzICs9IGN1cjtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBpZihuID09IGxlbikgY2FtbF9mYWlsd2l0aChcIlN0ci5yZXBsYWNlOiBpbGxlZ2FsIGJhY2tzbGFzaCBzZXF1ZW5jZVwiKTtcbiAgICAgIGN1ciA9IHJlcGwuY2hhckF0KG4rKyk7XG4gICAgICBzd2l0Y2goY3VyKXtcbiAgICAgIGNhc2UgJ1xcXFwnOlxuICAgICAgICByZXMgKz0gY3VyO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJzAnOiBjYXNlICcxJzogY2FzZSAnMic6IGNhc2UgJzMnOiBjYXNlICc0JzpcbiAgICAgIGNhc2UgJzUnOiBjYXNlICc2JzogY2FzZSAnNyc6IGNhc2UgJzgnOiBjYXNlICc5JzpcbiAgICAgICAgYyA9ICtjdXI7XG4gICAgICAgIGlmIChjKjIgPj0gZ3JvdXBzLmxlbmd0aCAtIDEgKVxuICAgICAgICAgIGNhbWxfZmFpbHdpdGgoXCJTdHIucmVwbGFjZTogcmVmZXJlbmNlIHRvIHVubWF0Y2hlZCBncm91cFwiICk7XG4gICAgICAgIHN0YXJ0ID0gY2FtbF9hcnJheV9nZXQoZ3JvdXBzLGMqMik7XG4gICAgICAgIGVuZCA9IGNhbWxfYXJyYXlfZ2V0KGdyb3VwcywgYyoyICsxKTtcbiAgICAgICAgaWYgKHN0YXJ0ID09IC0xKVxuICAgICAgICAgIGNhbWxfZmFpbHdpdGgoXCJTdHIucmVwbGFjZTogcmVmZXJlbmNlIHRvIHVubWF0Y2hlZCBncm91cFwiKTtcbiAgICAgICAgcmVzKz1vcmlnLnNsaWNlKHN0YXJ0LGVuZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmVzICs9ICgnXFxcXCcgICsgY3VyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMocmVzKTsgfVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyX2luaXRpYWxpemVcbmZ1bmN0aW9uIGNhbWxfc3RyX2luaXRpYWxpemUodW5pdCkge1xuICByZXR1cm4gMDtcbn1cbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0aXZlIENhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgKi9cbi8qICBlbiBBdXRvbWF0aXF1ZS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgICAgKi9cbi8qICB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgd2l0aCAgICAgKi9cbi8qICB0aGUgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gZmlsZSAuLi9MSUNFTlNFLiAgICAgKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyogJElkOiBsZXhpbmcuYyA2MDQ1IDIwMDQtMDEtMDEgMTY6NDI6NDNaIGRvbGlnZXogJCAqL1xuXG4vKiBUaGUgdGFibGUtZHJpdmVuIGF1dG9tYXRvbiBmb3IgbGV4ZXJzIGdlbmVyYXRlZCBieSBjYW1sbGV4LiAqL1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2xleF9hcnJheVxuLy9SZXF1aXJlczogY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9sZXhfYXJyYXkocykge1xuICBzID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhzKTtcbiAgdmFyIGwgPSBzLmxlbmd0aCAvIDI7XG4gIHZhciBhID0gbmV3IEFycmF5KGwpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGw7IGkrKylcbiAgICBhW2ldID0gKHMuY2hhckNvZGVBdCgyICogaSkgfCAocy5jaGFyQ29kZUF0KDIgKiBpICsgMSkgPDwgOCkpIDw8IDE2ID4+IDE2O1xuICByZXR1cm4gYTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9sZXhfZW5naW5lXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoLCBjYW1sX2xleF9hcnJheSwgY2FtbF91aW50OF9hcnJheV9vZl9ieXRlc1xuZnVuY3Rpb24gY2FtbF9sZXhfZW5naW5lKHRibCwgc3RhcnRfc3RhdGUsIGxleGJ1Zikge1xuICB2YXIgbGV4X2J1ZmZlciA9IDI7XG4gIHZhciBsZXhfYnVmZmVyX2xlbiA9IDM7XG4gIHZhciBsZXhfc3RhcnRfcG9zID0gNTtcbiAgdmFyIGxleF9jdXJyX3BvcyA9IDY7XG4gIHZhciBsZXhfbGFzdF9wb3MgPSA3O1xuICB2YXIgbGV4X2xhc3RfYWN0aW9uID0gODtcbiAgdmFyIGxleF9lb2ZfcmVhY2hlZCA9IDk7XG4gIHZhciBsZXhfYmFzZSA9IDE7XG4gIHZhciBsZXhfYmFja3RyayA9IDI7XG4gIHZhciBsZXhfZGVmYXVsdCA9IDM7XG4gIHZhciBsZXhfdHJhbnMgPSA0O1xuICB2YXIgbGV4X2NoZWNrID0gNTtcblxuICBpZiAoIXRibC5sZXhfZGVmYXVsdCkge1xuICAgIHRibC5sZXhfYmFzZSA9ICAgIGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2Jhc2VdKTtcbiAgICB0YmwubGV4X2JhY2t0cmsgPSBjYW1sX2xleF9hcnJheSAodGJsW2xleF9iYWNrdHJrXSk7XG4gICAgdGJsLmxleF9jaGVjayA9ICAgY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfY2hlY2tdKTtcbiAgICB0YmwubGV4X3RyYW5zID0gICBjYW1sX2xleF9hcnJheSAodGJsW2xleF90cmFuc10pO1xuICAgIHRibC5sZXhfZGVmYXVsdCA9IGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2RlZmF1bHRdKTtcbiAgfVxuXG4gIHZhciBjLCBzdGF0ZSA9IHN0YXJ0X3N0YXRlO1xuXG4gIHZhciBidWZmZXIgPSBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzKGxleGJ1ZltsZXhfYnVmZmVyXSk7XG5cbiAgaWYgKHN0YXRlID49IDApIHtcbiAgICAvKiBGaXJzdCBlbnRyeSAqL1xuICAgIGxleGJ1ZltsZXhfbGFzdF9wb3NdID0gbGV4YnVmW2xleF9zdGFydF9wb3NdID0gbGV4YnVmW2xleF9jdXJyX3Bvc107XG4gICAgbGV4YnVmW2xleF9sYXN0X2FjdGlvbl0gPSAtMTtcbiAgfSBlbHNlIHtcbiAgICAvKiBSZWVudHJ5IGFmdGVyIHJlZmlsbCAqL1xuICAgIHN0YXRlID0gLXN0YXRlIC0gMTtcbiAgfVxuICBmb3IoOzspIHtcbiAgICAvKiBMb29rdXAgYmFzZSBhZGRyZXNzIG9yIGFjdGlvbiBudW1iZXIgZm9yIGN1cnJlbnQgc3RhdGUgKi9cbiAgICB2YXIgYmFzZSA9IHRibC5sZXhfYmFzZVtzdGF0ZV07XG4gICAgaWYgKGJhc2UgPCAwKSByZXR1cm4gLWJhc2UtMTtcbiAgICAvKiBTZWUgaWYgaXQncyBhIGJhY2t0cmFjayBwb2ludCAqL1xuICAgIHZhciBiYWNrdHJrID0gdGJsLmxleF9iYWNrdHJrW3N0YXRlXTtcbiAgICBpZiAoYmFja3RyayA+PSAwKSB7XG4gICAgICBsZXhidWZbbGV4X2xhc3RfcG9zXSA9IGxleGJ1ZltsZXhfY3Vycl9wb3NdO1xuICAgICAgbGV4YnVmW2xleF9sYXN0X2FjdGlvbl0gPSBiYWNrdHJrO1xuICAgIH1cbiAgICAvKiBTZWUgaWYgd2UgbmVlZCBhIHJlZmlsbCAqL1xuICAgIGlmIChsZXhidWZbbGV4X2N1cnJfcG9zXSA+PSBsZXhidWZbbGV4X2J1ZmZlcl9sZW5dKXtcbiAgICAgIGlmIChsZXhidWZbbGV4X2VvZl9yZWFjaGVkXSA9PSAwKVxuICAgICAgICByZXR1cm4gLXN0YXRlIC0gMTtcbiAgICAgIGVsc2VcbiAgICAgICAgYyA9IDI1NjtcbiAgICB9ZWxzZXtcbiAgICAgIC8qIFJlYWQgbmV4dCBpbnB1dCBjaGFyICovXG4gICAgICBjID0gYnVmZmVyW2xleGJ1ZltsZXhfY3Vycl9wb3NdXTtcbiAgICAgIGxleGJ1ZltsZXhfY3Vycl9wb3NdICsrO1xuICAgIH1cbiAgICAvKiBEZXRlcm1pbmUgbmV4dCBzdGF0ZSAqL1xuICAgIGlmICh0YmwubGV4X2NoZWNrW2Jhc2UgKyBjXSA9PSBzdGF0ZSlcbiAgICAgIHN0YXRlID0gdGJsLmxleF90cmFuc1tiYXNlICsgY107XG4gICAgZWxzZVxuICAgICAgc3RhdGUgPSB0YmwubGV4X2RlZmF1bHRbc3RhdGVdO1xuICAgIC8qIElmIG5vIHRyYW5zaXRpb24gb24gdGhpcyBjaGFyLCByZXR1cm4gdG8gbGFzdCBiYWNrdHJhY2sgcG9pbnQgKi9cbiAgICBpZiAoc3RhdGUgPCAwKSB7XG4gICAgICBsZXhidWZbbGV4X2N1cnJfcG9zXSA9IGxleGJ1ZltsZXhfbGFzdF9wb3NdO1xuICAgICAgaWYgKGxleGJ1ZltsZXhfbGFzdF9hY3Rpb25dID09IC0xKVxuICAgICAgICBjYW1sX2ZhaWx3aXRoKFwibGV4aW5nOiBlbXB0eSB0b2tlblwiKTtcbiAgICAgIGVsc2VcbiAgICAgICAgcmV0dXJuIGxleGJ1ZltsZXhfbGFzdF9hY3Rpb25dO1xuICAgIH1lbHNle1xuICAgICAgLyogRXJhc2UgdGhlIEVPRiBjb25kaXRpb24gb25seSBpZiB0aGUgRU9GIHBzZXVkby1jaGFyYWN0ZXIgd2FzXG4gICAgICAgICBjb25zdW1lZCBieSB0aGUgYXV0b21hdG9uIChpLmUuIHRoZXJlIHdhcyBubyBiYWNrdHJhY2sgYWJvdmUpXG4gICAgICAqL1xuICAgICAgaWYgKGMgPT0gMjU2KSBsZXhidWZbbGV4X2VvZl9yZWFjaGVkXSA9IDA7XG4gICAgfVxuICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIE5ldyBsZXhlciBlbmdpbmUsIHdpdGggbWVtb3J5IG9mIHBvc2l0aW9ucyAgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLy9Qcm92aWRlczogY2FtbF9uZXdfbGV4X2VuZ2luZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aCwgY2FtbF9sZXhfYXJyYXlcbi8vUmVxdWlyZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmcsIGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfbGV4X3J1bl9tZW0ocywgaSwgbWVtLCBjdXJyX3Bvcykge1xuICBmb3IgKDs7KSB7XG4gICAgdmFyIGRzdCA9IHMuY2hhckNvZGVBdChpKTsgaSsrO1xuICAgIGlmIChkc3QgPT0gMHhmZikgcmV0dXJuO1xuICAgIHZhciBzcmMgPSBzLmNoYXJDb2RlQXQoaSk7IGkrKztcbiAgICBpZiAoc3JjID09IDB4ZmYpXG4gICAgICBtZW0gW2RzdCArIDFdID0gY3Vycl9wb3M7XG4gICAgZWxzZVxuICAgICAgbWVtIFtkc3QgKyAxXSA9IG1lbSBbc3JjICsgMV07XG4gIH1cbn1cblxuZnVuY3Rpb24gY2FtbF9sZXhfcnVuX3RhZyhzLCBpLCBtZW0pIHtcbiAgZm9yICg7Oykge1xuICAgIHZhciBkc3QgPSBzLmNoYXJDb2RlQXQoaSk7IGkrKztcbiAgICBpZiAoZHN0ID09IDB4ZmYpIHJldHVybiA7XG4gICAgdmFyIHNyYyA9IHMuY2hhckNvZGVBdChpKTsgaSsrO1xuICAgIGlmIChzcmMgPT0gMHhmZilcbiAgICAgIG1lbSBbZHN0ICsgMV0gPSAtMTtcbiAgICBlbHNlXG4gICAgICBtZW0gW2RzdCArIDFdID0gbWVtIFtzcmMgKyAxXTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjYW1sX25ld19sZXhfZW5naW5lKHRibCwgc3RhcnRfc3RhdGUsIGxleGJ1Zikge1xuICB2YXIgbGV4X2J1ZmZlciA9IDI7XG4gIHZhciBsZXhfYnVmZmVyX2xlbiA9IDM7XG4gIHZhciBsZXhfc3RhcnRfcG9zID0gNTtcbiAgdmFyIGxleF9jdXJyX3BvcyA9IDY7XG4gIHZhciBsZXhfbGFzdF9wb3MgPSA3O1xuICB2YXIgbGV4X2xhc3RfYWN0aW9uID0gODtcbiAgdmFyIGxleF9lb2ZfcmVhY2hlZCA9IDk7XG4gIHZhciBsZXhfbWVtID0gMTA7XG4gIHZhciBsZXhfYmFzZSA9IDE7XG4gIHZhciBsZXhfYmFja3RyayA9IDI7XG4gIHZhciBsZXhfZGVmYXVsdCA9IDM7XG4gIHZhciBsZXhfdHJhbnMgPSA0O1xuICB2YXIgbGV4X2NoZWNrID0gNTtcbiAgdmFyIGxleF9iYXNlX2NvZGUgPSA2O1xuICB2YXIgbGV4X2JhY2t0cmtfY29kZSA9IDc7XG4gIHZhciBsZXhfZGVmYXVsdF9jb2RlID0gODtcbiAgdmFyIGxleF90cmFuc19jb2RlID0gOTtcbiAgdmFyIGxleF9jaGVja19jb2RlID0gMTA7XG4gIHZhciBsZXhfY29kZSA9IDExO1xuXG4gIGlmICghdGJsLmxleF9kZWZhdWx0KSB7XG4gICAgdGJsLmxleF9iYXNlID0gICAgY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfYmFzZV0pO1xuICAgIHRibC5sZXhfYmFja3RyayA9IGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2JhY2t0cmtdKTtcbiAgICB0YmwubGV4X2NoZWNrID0gICBjYW1sX2xleF9hcnJheSAodGJsW2xleF9jaGVja10pO1xuICAgIHRibC5sZXhfdHJhbnMgPSAgIGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X3RyYW5zXSk7XG4gICAgdGJsLmxleF9kZWZhdWx0ID0gY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfZGVmYXVsdF0pO1xuICB9XG4gIGlmICghdGJsLmxleF9kZWZhdWx0X2NvZGUpIHtcbiAgICB0YmwubGV4X2Jhc2VfY29kZSA9ICAgIGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2Jhc2VfY29kZV0pO1xuICAgIHRibC5sZXhfYmFja3Rya19jb2RlID0gY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfYmFja3Rya19jb2RlXSk7XG4gICAgdGJsLmxleF9jaGVja19jb2RlID0gICBjYW1sX2xleF9hcnJheSAodGJsW2xleF9jaGVja19jb2RlXSk7XG4gICAgdGJsLmxleF90cmFuc19jb2RlID0gICBjYW1sX2xleF9hcnJheSAodGJsW2xleF90cmFuc19jb2RlXSk7XG4gICAgdGJsLmxleF9kZWZhdWx0X2NvZGUgPSBjYW1sX2xleF9hcnJheSAodGJsW2xleF9kZWZhdWx0X2NvZGVdKTtcbiAgfVxuICBpZiAodGJsLmxleF9jb2RlID09IG51bGwpIHRibC5sZXhfY29kZSA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcodGJsW2xleF9jb2RlXSk7XG5cbiAgdmFyIGMsIHN0YXRlID0gc3RhcnRfc3RhdGU7XG5cbiAgdmFyIGJ1ZmZlciA9IGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXMobGV4YnVmW2xleF9idWZmZXJdKTtcblxuICBpZiAoc3RhdGUgPj0gMCkge1xuICAgIC8qIEZpcnN0IGVudHJ5ICovXG4gICAgbGV4YnVmW2xleF9sYXN0X3Bvc10gPSBsZXhidWZbbGV4X3N0YXJ0X3Bvc10gPSBsZXhidWZbbGV4X2N1cnJfcG9zXTtcbiAgICBsZXhidWZbbGV4X2xhc3RfYWN0aW9uXSA9IC0xO1xuICB9IGVsc2Uge1xuICAgIC8qIFJlZW50cnkgYWZ0ZXIgcmVmaWxsICovXG4gICAgc3RhdGUgPSAtc3RhdGUgLSAxO1xuICB9XG4gIGZvcig7Oykge1xuICAgIC8qIExvb2t1cCBiYXNlIGFkZHJlc3Mgb3IgYWN0aW9uIG51bWJlciBmb3IgY3VycmVudCBzdGF0ZSAqL1xuICAgIHZhciBiYXNlID0gdGJsLmxleF9iYXNlW3N0YXRlXTtcbiAgICBpZiAoYmFzZSA8IDApIHtcbiAgICAgIHZhciBwY19vZmYgPSB0YmwubGV4X2Jhc2VfY29kZVtzdGF0ZV07XG4gICAgICBjYW1sX2xleF9ydW5fdGFnKHRibC5sZXhfY29kZSwgcGNfb2ZmLCBsZXhidWZbbGV4X21lbV0pO1xuICAgICAgcmV0dXJuIC1iYXNlLTE7XG4gICAgfVxuICAgIC8qIFNlZSBpZiBpdCdzIGEgYmFja3RyYWNrIHBvaW50ICovXG4gICAgdmFyIGJhY2t0cmsgPSB0YmwubGV4X2JhY2t0cmtbc3RhdGVdO1xuICAgIGlmIChiYWNrdHJrID49IDApIHtcbiAgICAgIHZhciBwY19vZmYgPSB0YmwubGV4X2JhY2t0cmtfY29kZVtzdGF0ZV07XG4gICAgICBjYW1sX2xleF9ydW5fdGFnKHRibC5sZXhfY29kZSwgcGNfb2ZmLCBsZXhidWZbbGV4X21lbV0pO1xuICAgICAgbGV4YnVmW2xleF9sYXN0X3Bvc10gPSBsZXhidWZbbGV4X2N1cnJfcG9zXTtcbiAgICAgIGxleGJ1ZltsZXhfbGFzdF9hY3Rpb25dID0gYmFja3RyaztcbiAgICB9XG4gICAgLyogU2VlIGlmIHdlIG5lZWQgYSByZWZpbGwgKi9cbiAgICBpZiAobGV4YnVmW2xleF9jdXJyX3Bvc10gPj0gbGV4YnVmW2xleF9idWZmZXJfbGVuXSl7XG4gICAgICBpZiAobGV4YnVmW2xleF9lb2ZfcmVhY2hlZF0gPT0gMClcbiAgICAgICAgcmV0dXJuIC1zdGF0ZSAtIDE7XG4gICAgICBlbHNlXG4gICAgICAgIGMgPSAyNTY7XG4gICAgfWVsc2V7XG4gICAgICAvKiBSZWFkIG5leHQgaW5wdXQgY2hhciAqL1xuICAgICAgYyA9IGJ1ZmZlcltsZXhidWZbbGV4X2N1cnJfcG9zXV07XG4gICAgICBsZXhidWZbbGV4X2N1cnJfcG9zXSArKztcbiAgICB9XG4gICAgLyogRGV0ZXJtaW5lIG5leHQgc3RhdGUgKi9cbiAgICB2YXIgcHN0YXRlID0gc3RhdGUgO1xuICAgIGlmICh0YmwubGV4X2NoZWNrW2Jhc2UgKyBjXSA9PSBzdGF0ZSlcbiAgICAgIHN0YXRlID0gdGJsLmxleF90cmFuc1tiYXNlICsgY107XG4gICAgZWxzZVxuICAgICAgc3RhdGUgPSB0YmwubGV4X2RlZmF1bHRbc3RhdGVdO1xuICAgIC8qIElmIG5vIHRyYW5zaXRpb24gb24gdGhpcyBjaGFyLCByZXR1cm4gdG8gbGFzdCBiYWNrdHJhY2sgcG9pbnQgKi9cbiAgICBpZiAoc3RhdGUgPCAwKSB7XG4gICAgICBsZXhidWZbbGV4X2N1cnJfcG9zXSA9IGxleGJ1ZltsZXhfbGFzdF9wb3NdO1xuICAgICAgaWYgKGxleGJ1ZltsZXhfbGFzdF9hY3Rpb25dID09IC0xKVxuICAgICAgICBjYW1sX2ZhaWx3aXRoKFwibGV4aW5nOiBlbXB0eSB0b2tlblwiKTtcbiAgICAgIGVsc2VcbiAgICAgICAgcmV0dXJuIGxleGJ1ZltsZXhfbGFzdF9hY3Rpb25dO1xuICAgIH1lbHNle1xuICAgICAgLyogSWYgc29tZSB0cmFuc2l0aW9uLCBnZXQgYW5kIHBlcmZvcm0gbWVtb3J5IG1vdmVzICovXG4gICAgICB2YXIgYmFzZV9jb2RlID0gdGJsLmxleF9iYXNlX2NvZGVbcHN0YXRlXSwgcGNfb2ZmO1xuICAgICAgaWYgKHRibC5sZXhfY2hlY2tfY29kZVtiYXNlX2NvZGUgKyBjXSA9PSBwc3RhdGUpXG4gICAgICAgIHBjX29mZiA9IHRibC5sZXhfdHJhbnNfY29kZVtiYXNlX2NvZGUgKyBjXTtcbiAgICAgIGVsc2VcbiAgICAgICAgcGNfb2ZmID0gdGJsLmxleF9kZWZhdWx0X2NvZGVbcHN0YXRlXTtcbiAgICAgIGlmIChwY19vZmYgPiAwKVxuICAgICAgICBjYW1sX2xleF9ydW5fbWVtXG4gICAgICAodGJsLmxleF9jb2RlLCBwY19vZmYsIGxleGJ1ZltsZXhfbWVtXSwgbGV4YnVmW2xleF9jdXJyX3Bvc10pO1xuICAgICAgLyogRXJhc2UgdGhlIEVPRiBjb25kaXRpb24gb25seSBpZiB0aGUgRU9GIHBzZXVkby1jaGFyYWN0ZXIgd2FzXG4gICAgICAgICBjb25zdW1lZCBieSB0aGUgYXV0b21hdG9uIChpLmUuIHRoZXJlIHdhcyBubyBiYWNrdHJhY2sgYWJvdmUpXG4gICAgICAqL1xuICAgICAgaWYgKGMgPT0gMjU2KSBsZXhidWZbbGV4X2VvZl9yZWFjaGVkXSA9IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vLy8vLy8vLy8vLy8vIEFycmF5XG5cbi8vUHJvdmlkZXM6IGNhbWxfYXJyYXlfc3ViIG11dGFibGVcbmZ1bmN0aW9uIGNhbWxfYXJyYXlfc3ViIChhLCBpLCBsZW4pIHtcbiAgdmFyIGEyID0gbmV3IEFycmF5KGxlbisxKTtcbiAgYTJbMF09MDtcbiAgZm9yKHZhciBpMiA9IDEsIGkxPSBpKzE7IGkyIDw9IGxlbjsgaTIrKyxpMSsrICl7XG4gICAgYTJbaTJdPWFbaTFdO1xuICB9XG4gIHJldHVybiBhMjtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hcnJheV9hcHBlbmQgbXV0YWJsZVxuZnVuY3Rpb24gY2FtbF9hcnJheV9hcHBlbmQoYTEsIGEyKSB7XG4gIHZhciBsMSA9IGExLmxlbmd0aCwgbDIgPSBhMi5sZW5ndGg7XG4gIHZhciBsID0gbDErbDItMVxuICB2YXIgYSA9IG5ldyBBcnJheShsKTtcbiAgYVswXSA9IDA7XG4gIHZhciBpID0gMSxqID0gMTtcbiAgZm9yKDtpPGwxO2krKykgYVtpXT1hMVtpXTtcbiAgZm9yKDtpPGw7aSsrLGorKykgYVtpXT1hMltqXTtcbiAgcmV0dXJuIGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYXJyYXlfY29uY2F0IG11dGFibGVcbmZ1bmN0aW9uIGNhbWxfYXJyYXlfY29uY2F0KGwpIHtcbiAgdmFyIGEgPSBbMF07XG4gIHdoaWxlIChsICE9PSAwKSB7XG4gICAgdmFyIGIgPSBsWzFdO1xuICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYi5sZW5ndGg7IGkrKykgYS5wdXNoKGJbaV0pO1xuICAgIGwgPSBsWzJdO1xuICB9XG4gIHJldHVybiBhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X2JsaXRcbmZ1bmN0aW9uIGNhbWxfYXJyYXlfYmxpdChhMSwgaTEsIGEyLCBpMiwgbGVuKSB7XG4gIGlmIChpMiA8PSBpMSkge1xuICAgIGZvciAodmFyIGogPSAxOyBqIDw9IGxlbjsgaisrKSBhMltpMiArIGpdID0gYTFbaTEgKyBqXTtcbiAgfSBlbHNlIHtcbiAgICBmb3IgKHZhciBqID0gbGVuOyBqID49IDE7IGotLSkgYTJbaTIgKyBqXSA9IGExW2kxICsgal07XG4gIH07XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2Zsb2F0YXJyYXlfYmxpdFxuZnVuY3Rpb24gY2FtbF9mbG9hdGFycmF5X2JsaXQoYTEsIGkxLCBhMiwgaTIsIGxlbikge1xuICBpZiAoaTIgPD0gaTEpIHtcbiAgICBmb3IgKHZhciBqID0gMTsgaiA8PSBsZW47IGorKykgYTJbaTIgKyBqXSA9IGExW2kxICsgal07XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIgaiA9IGxlbjsgaiA+PSAxOyBqLS0pIGEyW2kyICsgal0gPSBhMVtpMSArIGpdO1xuICB9O1xuICByZXR1cm4gMDtcbn1cblxuLy8vLy8vLy8vLy8vLyBQZXJ2YXNpdmVcbi8vUHJvdmlkZXM6IGNhbWxfYXJyYXlfc2V0IChtdXRhYmxlLCBjb25zdCwgbXV0YWJsZSlcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfYXJyYXlfc2V0IChhcnJheSwgaW5kZXgsIG5ld3ZhbCkge1xuICBpZiAoKGluZGV4IDwgMCkgfHwgKGluZGV4ID49IGFycmF5Lmxlbmd0aCAtIDEpKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIGFycmF5W2luZGV4KzFdPW5ld3ZhbDsgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYXJyYXlfZ2V0IG11dGFibGUgKG11dGFibGUsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9hcnJheV9nZXQgKGFycmF5LCBpbmRleCkge1xuICBpZiAoKGluZGV4IDwgMCkgfHwgKGluZGV4ID49IGFycmF5Lmxlbmd0aCAtIDEpKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIHJldHVybiBhcnJheVtpbmRleCsxXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hcnJheV9maWxsXG5mdW5jdGlvbiBjYW1sX2FycmF5X2ZpbGwoYXJyYXksIG9mcywgbGVuLCB2KXtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKXtcbiAgICBhcnJheVtvZnMraSsxXSA9IHY7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY2hlY2tfYm91bmQgKG11dGFibGUsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9jaGVja19ib3VuZCAoYXJyYXksIGluZGV4KSB7XG4gIGlmIChpbmRleCA+Pj4gMCA+PSBhcnJheS5sZW5ndGggLSAxKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIHJldHVybiBhcnJheTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tYWtlX3ZlY3QgY29uc3QgKGNvbnN0LCBtdXRhYmxlKVxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9tYWtlX3ZlY3QgKGxlbiwgaW5pdCkge1xuICBpZiAobGVuIDwgMCkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB2YXIgbGVuID0gbGVuICsgMSB8IDA7XG4gIHZhciBiID0gbmV3IEFycmF5KGxlbik7XG4gIGJbMF09MDtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBsZW47IGkrKykgYltpXSA9IGluaXQ7XG4gIHJldHVybiBiO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21ha2VfZmxvYXRfdmVjdCBjb25zdCAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX21ha2VfZmxvYXRfdmVjdChsZW4pe1xuICBpZiAobGVuIDwgMCkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB2YXIgbGVuID0gbGVuICsgMSB8IDA7XG4gIHZhciBiID0gbmV3IEFycmF5KGxlbik7XG4gIGJbMF09MjU0O1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGxlbjsgaSsrKSBiW2ldID0gMDtcbiAgcmV0dXJuIGJcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZmxvYXRhcnJheV9jcmVhdGUgY29uc3QgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9mbG9hdGFycmF5X2NyZWF0ZShsZW4pe1xuICBpZiAobGVuIDwgMCkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB2YXIgbGVuID0gbGVuICsgMSB8IDA7XG4gIHZhciBiID0gbmV3IEFycmF5KGxlbik7XG4gIGJbMF09MjU0O1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGxlbjsgaSsrKSBiW2ldID0gMDtcbiAgcmV0dXJuIGJcbn1cbiIsIlxuLy9Qcm92aWRlczogTWxNdXRleFxuZnVuY3Rpb24gTWxNdXRleCgpIHtcbiAgdGhpcy5sb2NrZWQgPSBmYWxzZVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX211dGV4X25ld1xuLy9SZXF1aXJlczogTWxNdXRleFxuZnVuY3Rpb24gY2FtbF9tbF9tdXRleF9uZXcodW5pdCkge1xuICByZXR1cm4gbmV3IE1sTXV0ZXgoKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9tdXRleF9sb2NrXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX21sX211dGV4X2xvY2sodCkge1xuICBpZih0LmxvY2tlZClcbiAgICBjYW1sX2ZhaWx3aXRoKFwiTXV0ZXgubG9jazogbXV0ZXggYWxyZWFkeSBsb2NrZWQuIENhbm5vdCB3YWl0LlwiKTtcbiAgZWxzZSB0LmxvY2tlZCA9IHRydWU7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX211dGV4X3RyeV9sb2NrXG5mdW5jdGlvbiBjYW1sX21sX211dGV4X3RyeV9sb2NrKHQpIHtcbiAgaWYoIXQubG9ja2VkKSB7XG4gICAgdC5sb2NrZWQgPSB0cnVlO1xuICAgIHJldHVybiAxO1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX211dGV4X3VubG9ja1xuZnVuY3Rpb24gY2FtbF9tbF9tdXRleF91bmxvY2sodCkge1xuICB0LmxvY2tlZCA9IGZhbHNlO1xuICByZXR1cm4gMDtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vLyBXZWFrIEFQSVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfa2V5X29mZnNldFxudmFyIGNhbWxfZXBoZV9rZXlfb2Zmc2V0ID0gM1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfZGF0YV9vZmZzZXRcbnZhciBjYW1sX2VwaGVfZGF0YV9vZmZzZXQgPSAyXG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9zZXRfa2V5XG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfZXBoZV9rZXlfb2Zmc2V0XG5mdW5jdGlvbiBjYW1sX2VwaGVfc2V0X2tleSh4LCBpLCB2KSB7XG4gIGlmKGkgPCAwIHx8IGNhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaSA+PSB4Lmxlbmd0aClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQgKFwiV2Vhay5zZXRcIik7XG4gIGlmICh2IGluc3RhbmNlb2YgT2JqZWN0ICYmIGdsb2JhbFRoaXMuV2Vha1JlZikge1xuICAgIGlmKHhbMV0ucmVnaXN0ZXIpIHhbMV0ucmVnaXN0ZXIodiwgdW5kZWZpbmVkLCB2KTtcbiAgICB4W2NhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaV0gPSBuZXcgZ2xvYmFsVGhpcy5XZWFrUmVmKHYpO1xuICB9XG4gIGVsc2UgeFtjYW1sX2VwaGVfa2V5X29mZnNldCArIGldID0gdjtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX3Vuc2V0X2tleVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2VwaGVfa2V5X29mZnNldFxuZnVuY3Rpb24gY2FtbF9lcGhlX3Vuc2V0X2tleSh4LCBpKSB7XG4gIGlmKGkgPCAwIHx8IGNhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaSA+PSB4Lmxlbmd0aClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQgKFwiV2Vhay5zZXRcIik7XG4gIGlmKGdsb2JhbFRoaXMuV2Vha1JlZiAmJiB4W2NhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaV0gaW5zdGFuY2VvZiBnbG9iYWxUaGlzLldlYWtSZWYgJiYgeFsxXS51bnJlZ2lzdGVyKSB7XG4gICAgdmFyIG9sZCA9IHhbY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpXS5kZXJlZigpO1xuICAgIGlmKG9sZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YXIgY291bnQgPSAwXG4gICAgICBmb3IodmFyIGogPSBjYW1sX2VwaGVfa2V5X29mZnNldDsgaiA8IHgubGVuZ3RoOyBqKyspe1xuICAgICAgICB2YXIga2V5ID0geFtqXTtcbiAgICAgICAgaWYoa2V5IGluc3RhbmNlb2YgZ2xvYmFsVGhpcy5XZWFrUmVmKXtcbiAgICAgICAgICBrZXkgPSBrZXkuZGVyZWYoKVxuICAgICAgICAgIGlmKGtleSA9PT0gb2xkKSBjb3VudCsrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZihjb3VudCA9PSAxKSB4WzFdLnVucmVnaXN0ZXIob2xkKTtcbiAgICB9XG4gIH1cbiAgeFtjYW1sX2VwaGVfa2V5X29mZnNldCArIGldID0gdW5kZWZpbmVkO1xuICByZXR1cm4gMFxufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9jcmVhdGVcbi8vUmVxdWlyZXM6IGNhbWxfd2Vha19jcmVhdGUsIGNhbWxfZXBoZV9kYXRhX29mZnNldFxuZnVuY3Rpb24gY2FtbF9lcGhlX2NyZWF0ZSAobikge1xuICB2YXIgeCA9IGNhbWxfd2Vha19jcmVhdGUobik7XG4gIHJldHVybiB4O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3dlYWtfY3JlYXRlXG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfa2V5X29mZnNldCwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50LGNhbWxfZXBoZV9kYXRhX29mZnNldFxuZnVuY3Rpb24gY2FtbF93ZWFrX2NyZWF0ZSAobikge1xuICBpZiAobiA8IDApIGNhbWxfaW52YWxpZF9hcmd1bWVudCAoXCJXZWFrLmNyZWF0ZVwiKTtcbiAgdmFyIHggPSBbMjUxLFwiY2FtbF9lcGhlX2xpc3RfaGVhZFwiXTtcbiAgeC5sZW5ndGggPSBjYW1sX2VwaGVfa2V5X29mZnNldCArIG47XG4gIHJldHVybiB4O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3dlYWtfc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9zZXRfa2V5LCBjYW1sX2VwaGVfdW5zZXRfa2V5XG5mdW5jdGlvbiBjYW1sX3dlYWtfc2V0KHgsIGksIHYpIHtcbiAgaWYodiA9PSAwKSBjYW1sX2VwaGVfdW5zZXRfa2V5KHgsaSlcbiAgZWxzZSBjYW1sX2VwaGVfc2V0X2tleSh4LGksdlsxXSlcbiAgcmV0dXJuIDA7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfZ2V0X2tleVxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2tleV9vZmZzZXQsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuLy9BbGlhczogY2FtbF93ZWFrX2dldFxuZnVuY3Rpb24gY2FtbF9lcGhlX2dldF9rZXkoeCwgaSkge1xuICBpZihpIDwgMCB8fCBjYW1sX2VwaGVfa2V5X29mZnNldCArIGkgPj0geC5sZW5ndGgpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50IChcIldlYWsuZ2V0X2tleVwiKTtcbiAgdmFyIHdlYWsgPSB4W2NhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaSBdO1xuICBpZihnbG9iYWxUaGlzLldlYWtSZWYgJiYgd2VhayBpbnN0YW5jZW9mIGdsb2JhbFRoaXMuV2Vha1JlZikgd2VhayA9IHdlYWsuZGVyZWYoKTtcbiAgcmV0dXJuICh3ZWFrPT09dW5kZWZpbmVkKT8wOlswLCB3ZWFrXTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9nZXRfa2V5X2NvcHlcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9nZXRfa2V5LGNhbWxfZXBoZV9rZXlfb2Zmc2V0XG4vL1JlcXVpcmVzOiBjYW1sX29ial9kdXAsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuLy9BbGlhczogY2FtbF93ZWFrX2dldF9jb3B5XG5mdW5jdGlvbiBjYW1sX2VwaGVfZ2V0X2tleV9jb3B5KHgsIGkpIHtcbiAgaWYoaSA8IDAgfHwgY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpID49IHgubGVuZ3RoKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudCAoXCJXZWFrLmdldF9jb3B5XCIpO1xuICB2YXIgeSA9IGNhbWxfZXBoZV9nZXRfa2V5KHgsIGkpO1xuICBpZiAoeSA9PT0gMCkgcmV0dXJuIHk7XG4gIHZhciB6ID0geVsxXTtcbiAgaWYgKHogaW5zdGFuY2VvZiBBcnJheSkgcmV0dXJuIFswLCBjYW1sX29ial9kdXAoeildO1xuICByZXR1cm4geTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2NoZWNrX2tleSBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfa2V5X29mZnNldFxuLy9BbGlhczogY2FtbF93ZWFrX2NoZWNrXG5mdW5jdGlvbiBjYW1sX2VwaGVfY2hlY2tfa2V5KHgsIGkpIHtcbiAgdmFyIHdlYWsgPSB4W2NhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaV07XG4gIGlmKGdsb2JhbFRoaXMuV2Vha1JlZiAmJiB3ZWFrIGluc3RhbmNlb2YgZ2xvYmFsVGhpcy5XZWFrUmVmKSB3ZWFrID0gd2Vhay5kZXJlZigpO1xuICBpZih3ZWFrPT09dW5kZWZpbmVkKVxuICAgIHJldHVybiAwO1xuICBlbHNlXG4gICAgcmV0dXJuIDE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9ibGl0X2tleVxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ibGl0XG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfa2V5X29mZnNldFxuLy9BbGlhczogY2FtbF93ZWFrX2JsaXRcbmZ1bmN0aW9uIGNhbWxfZXBoZV9ibGl0X2tleShhMSwgaTEsIGEyLCBpMiwgbGVuKSB7XG4gIC8vIG1pbnVzIG9uZSBiZWNhdXNlIGNhbWxfYXJyYXlfYmxpdCB3b3JrcyBvbiBvY2FtbCBhcnJheVxuICBjYW1sX2FycmF5X2JsaXQoYTEsIGNhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaTEgLSAxLFxuICAgICAgICAgICAgICAgICAgYTIsIGNhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaTIgLSAxLFxuICAgICAgICAgICAgICAgICAgbGVuKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9ibGl0X2RhdGFcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9kYXRhX29mZnNldCwgY2FtbF9lcGhlX3NldF9kYXRhLCBjYW1sX2VwaGVfdW5zZXRfZGF0YVxuZnVuY3Rpb24gY2FtbF9lcGhlX2JsaXRfZGF0YShzcmMsIGRzdCl7XG4gIHZhciBuID0gc3JjW2NhbWxfZXBoZV9kYXRhX29mZnNldF07XG4gIGlmKG4gPT09IHVuZGVmaW5lZCkgY2FtbF9lcGhlX3Vuc2V0X2RhdGEoZHN0KTtcbiAgZWxzZSBjYW1sX2VwaGVfc2V0X2RhdGEoZHN0LCBuKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9nZXRfZGF0YVxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XG5mdW5jdGlvbiBjYW1sX2VwaGVfZ2V0X2RhdGEoeCl7XG4gIGlmKHhbY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XSA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiAwO1xuICBlbHNlXG4gICAgcmV0dXJuIFswLCB4W2NhbWxfZXBoZV9kYXRhX29mZnNldF1dO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfZ2V0X2RhdGFfY29weVxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XG4vL1JlcXVpcmVzOiBjYW1sX29ial9kdXBcbmZ1bmN0aW9uIGNhbWxfZXBoZV9nZXRfZGF0YV9jb3B5KHgpe1xuICBpZih4W2NhbWxfZXBoZV9kYXRhX29mZnNldF0gPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gMDtcbiAgZWxzZVxuICAgIHJldHVybiBbMCwgY2FtbF9vYmpfZHVwKHhbY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XSldO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfc2V0X2RhdGFcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9kYXRhX29mZnNldCwgY2FtbF9lcGhlX2tleV9vZmZzZXQsIGNhbWxfZXBoZV91bnNldF9kYXRhXG5mdW5jdGlvbiBjYW1sX2VwaGVfc2V0X2RhdGEoeCwgZGF0YSl7XG4gIGlmKGdsb2JhbFRoaXMuRmluYWxpemF0aW9uUmVnaXN0cnkgJiYgZ2xvYmFsVGhpcy5XZWFrUmVmKSB7XG4gICAgaWYoISAoeFsxXSBpbnN0YW5jZW9mIGdsb2JhbFRoaXMuRmluYWxpemF0aW9uUmVnaXN0cnkpKSB7XG4gICAgICB4WzFdID0gbmV3IGdsb2JhbFRoaXMuRmluYWxpemF0aW9uUmVnaXN0cnkoZnVuY3Rpb24gKCkgeyBjYW1sX2VwaGVfdW5zZXRfZGF0YSh4KSB9KTtcbiAgICAgIC8vcmVnaXN0ZXIgYWxsIGtleXNcbiAgICAgIGZvcih2YXIgaiA9IGNhbWxfZXBoZV9rZXlfb2Zmc2V0OyBqIDwgeC5sZW5ndGg7IGorKyl7XG4gICAgICAgIHZhciBrZXkgPSB4W2pdO1xuICAgICAgICBpZihrZXkgaW5zdGFuY2VvZiBnbG9iYWxUaGlzLldlYWtSZWYpIHtcbiAgICAgICAgICBrZXkgPSBrZXkuZGVyZWYoKTtcbiAgICAgICAgICBpZihrZXkpIHhbMV0ucmVnaXN0ZXIoa2V5LCB1bmRlZmluZWQsIGtleSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgeFtjYW1sX2VwaGVfZGF0YV9vZmZzZXRdID0gZGF0YTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV91bnNldF9kYXRhXG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfZGF0YV9vZmZzZXQsIGNhbWxfZXBoZV9rZXlfb2Zmc2V0XG5mdW5jdGlvbiBjYW1sX2VwaGVfdW5zZXRfZGF0YSh4KXtcbiAgaWYoZ2xvYmFsVGhpcy5GaW5hbGl6YXRpb25SZWdpc3RyeSAmJiBnbG9iYWxUaGlzLldlYWtSZWYpIHtcbiAgICBpZih4WzFdIGluc3RhbmNlb2YgZ2xvYmFsVGhpcy5GaW5hbGl6YXRpb25SZWdpc3RyeSl7XG4gICAgICAvL3VucmVnaXN0ZXIgYWxsIGtleXNcbiAgICAgIGZvcih2YXIgaiA9IGNhbWxfZXBoZV9rZXlfb2Zmc2V0OyBqIDwgeC5sZW5ndGg7IGorKyl7XG4gICAgICAgIHZhciBrZXkgPSB4W2pdO1xuICAgICAgICBpZihrZXkgaW5zdGFuY2VvZiBnbG9iYWxUaGlzLldlYWtSZWYpIHtcbiAgICAgICAgICBrZXkgPSBrZXkuZGVyZWYoKTtcbiAgICAgICAgICBpZihrZXkpIHhbMV0udW5yZWdpc3RlcihrZXkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHhbY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XSA9IHVuZGVmaW5lZDtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9jaGVja19kYXRhXG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfZGF0YV9vZmZzZXRcbmZ1bmN0aW9uIGNhbWxfZXBoZV9jaGVja19kYXRhKHgpe1xuICBpZih4W2NhbWxfZXBoZV9kYXRhX29mZnNldF0gPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gMDtcbiAgZWxzZVxuICAgIHJldHVybiAxO1xufVxuIiwiXG4vL1Byb3ZpZGVzOiBjYW1sX2x4bV9uZXh0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X3NoaWZ0X2xlZnRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfc2hpZnRfcmlnaHRfdW5zaWduZWRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb3Jcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfeG9yXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2FkZFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9tdWxcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZ2V0XzFcbi8vUmVxdWlyZXM6IGNhbWxfYmFfc2V0XzFcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2Zfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX25ld19zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfbHhtX25leHQodikge1xuICBmdW5jdGlvbiBzaGlmdF9sKHgsIGspe1xuICAgIHJldHVybiBjYW1sX2ludDY0X3NoaWZ0X2xlZnQoeCxrKTtcbiAgfVxuICBmdW5jdGlvbiBzaGlmdF9yKHgsIGspe1xuICAgIHJldHVybiBjYW1sX2ludDY0X3NoaWZ0X3JpZ2h0X3Vuc2lnbmVkKHgsayk7XG4gIH1cbiAgZnVuY3Rpb24gb3IoYSwgYil7XG4gICAgcmV0dXJuIGNhbWxfaW50NjRfb3IoYSxiKTtcbiAgfVxuICBmdW5jdGlvbiB4b3IoYSwgYil7XG4gICAgcmV0dXJuIGNhbWxfaW50NjRfeG9yKGEsYik7XG4gIH1cbiAgZnVuY3Rpb24gYWRkKGEsIGIpe1xuICAgIHJldHVybiBjYW1sX2ludDY0X2FkZChhLGIpO1xuICB9XG4gIGZ1bmN0aW9uIG11bChhLCBiKXtcbiAgICByZXR1cm4gY2FtbF9pbnQ2NF9tdWwoYSxiKTtcbiAgfVxuICBmdW5jdGlvbiByb3RsKHgsIGspIHtcbiAgICByZXR1cm4gb3Ioc2hpZnRfbCh4LGspLHNoaWZ0X3IgKHgsIDY0IC0gaykpO1xuICB9XG4gIGZ1bmN0aW9uIGdldChhLCBpKSB7XG4gICAgcmV0dXJuIGNhbWxfYmFfZ2V0XzEoYSwgaSk7XG4gIH1cbiAgZnVuY3Rpb24gc2V0KGEsIGksIHgpIHtcbiAgICByZXR1cm4gY2FtbF9iYV9zZXRfMShhLCBpLCB4KTtcbiAgfVxuICB2YXIgTSA9IGNhbWxfaW50NjRfb2Zfc3RyaW5nKGNhbWxfbmV3X3N0cmluZyhcIjB4ZDEzNDI1NDNkZTgyZWY5NVwiKSk7XG4gIHZhciBkYWJhID0gY2FtbF9pbnQ2NF9vZl9zdHJpbmcoY2FtbF9uZXdfc3RyaW5nKFwiMHhkYWJhMGI2ZWIwOTMyMmUzXCIpKTtcbiAgdmFyIHosIHEwLCBxMTtcbiAgdmFyIHN0ID0gdjtcbiAgdmFyIGEgPSBnZXQoc3QsMCk7XG4gIHZhciBzID0gZ2V0KHN0LDEpO1xuICB2YXIgeDAgPSBnZXQoc3QsMik7XG4gIHZhciB4MSA9IGdldChzdCwzKTtcbiAgLyogQ29tYmluaW5nIG9wZXJhdGlvbiAqL1xuICB6ID0gYWRkKHMsIHgwKTtcbiAgLyogTWl4aW5nIGZ1bmN0aW9uICovXG4gIHogPSBtdWwoeG9yKHosc2hpZnRfcih6LDMyKSksIGRhYmEpO1xuICB6ID0gbXVsKHhvcih6LHNoaWZ0X3IoeiwzMikpLCBkYWJhKTtcbiAgeiA9IHhvcih6LHNoaWZ0X3IoeiwzMikpO1xuICAvKiBMQ0cgdXBkYXRlICovXG4gIHNldChzdCwgMSwgYWRkIChtdWwocyxNKSwgYSkpO1xuICAvKiBYQkcgdXBkYXRlICovXG4gIHZhciBxMCA9IHgwXG4gIHZhciBxMSA9IHgxXG4gIHExID0geG9yKHExLHEwKTtcbiAgcTAgPSByb3RsKHEwLCAyNCk7XG4gIHEwID0geG9yKHhvcihxMCwgcTEpLCAoc2hpZnRfbChxMSwxNikpKTtcbiAgcTEgPSByb3RsKHExLCAzNyk7XG4gIHNldChzdCwgMiwgcTApO1xuICBzZXQoc3QsIDMsIHExKTtcbiAgLyogUmV0dXJuIHJlc3VsdCAqL1xuICByZXR1cm4gejtcbn1cbiIsIlxuLy9Qcm92aWRlczogenN0ZF9kZWNvbXByZXNzXG52YXIgenN0ZF9kZWNvbXByZXNzID0gKGZ1bmN0aW9uICgpIHtcblwidXNlIHN0cmljdFwiO1xuLy8gYWxpYXNlcyBmb3Igc2hvcnRlciBjb21wcmVzc2VkIGNvZGUgKG1vc3QgbWluaWZlcnMgZG9uJ3QgZG8gdGhpcylcbnZhciBhYiA9IEFycmF5QnVmZmVyLCB1OCA9IFVpbnQ4QXJyYXksIHUxNiA9IFVpbnQxNkFycmF5LCBpMTYgPSBJbnQxNkFycmF5LCB1MzIgPSBVaW50MzJBcnJheSwgaTMyID0gSW50MzJBcnJheTtcbnZhciBzbGMgPSBmdW5jdGlvbiAodiwgcywgZSkge1xuICAgIGlmICh1OC5wcm90b3R5cGUuc2xpY2UpXG4gICAgICAgIHJldHVybiB1OC5wcm90b3R5cGUuc2xpY2UuY2FsbCh2LCBzLCBlKTtcbiAgICBpZiAocyA9PSBudWxsIHx8IHMgPCAwKVxuICAgICAgICBzID0gMDtcbiAgICBpZiAoZSA9PSBudWxsIHx8IGUgPiB2Lmxlbmd0aClcbiAgICAgICAgZSA9IHYubGVuZ3RoO1xuICAgIHZhciBuID0gbmV3IHU4KGUgLSBzKTtcbiAgICBuLnNldCh2LnN1YmFycmF5KHMsIGUpKTtcbiAgICByZXR1cm4gbjtcbn07XG52YXIgZmlsbCA9IGZ1bmN0aW9uICh2LCBuLCBzLCBlKSB7XG4gICAgaWYgKHU4LnByb3RvdHlwZS5maWxsKVxuICAgICAgICByZXR1cm4gdTgucHJvdG90eXBlLmZpbGwuY2FsbCh2LCBuLCBzLCBlKTtcbiAgICBpZiAocyA9PSBudWxsIHx8IHMgPCAwKVxuICAgICAgICBzID0gMDtcbiAgICBpZiAoZSA9PSBudWxsIHx8IGUgPiB2Lmxlbmd0aClcbiAgICAgICAgZSA9IHYubGVuZ3RoO1xuICAgIGZvciAoOyBzIDwgZTsgKytzKVxuICAgICAgICB2W3NdID0gbjtcbiAgICByZXR1cm4gdjtcbn07XG52YXIgY3B3ID0gZnVuY3Rpb24gKHYsIHQsIHMsIGUpIHtcbiAgICBpZiAodTgucHJvdG90eXBlLmNvcHlXaXRoaW4pXG4gICAgICAgIHJldHVybiB1OC5wcm90b3R5cGUuY29weVdpdGhpbi5jYWxsKHYsIHQsIHMsIGUpO1xuICAgIGlmIChzID09IG51bGwgfHwgcyA8IDApXG4gICAgICAgIHMgPSAwO1xuICAgIGlmIChlID09IG51bGwgfHwgZSA+IHYubGVuZ3RoKVxuICAgICAgICBlID0gdi5sZW5ndGg7XG4gICAgd2hpbGUgKHMgPCBlKSB7XG4gICAgICAgIHZbdCsrXSA9IHZbcysrXTtcbiAgICB9XG59O1xuLyoqXG4gKiBDb2RlcyBmb3IgZXJyb3JzIGdlbmVyYXRlZCB3aXRoaW4gdGhpcyBsaWJyYXJ5XG4gKi9cbi8vIGVycm9yIGNvZGVzXG52YXIgZWMgPSBbXG4gICAgJ2ludmFsaWQgenN0ZCBkYXRhJyxcbiAgICAnd2luZG93IHNpemUgdG9vIGxhcmdlICg+MjA0Nk1CKScsXG4gICAgJ2ludmFsaWQgYmxvY2sgdHlwZScsXG4gICAgJ0ZTRSBhY2N1cmFjeSB0b28gaGlnaCcsXG4gICAgJ21hdGNoIGRpc3RhbmNlIHRvbyBmYXIgYmFjaycsXG4gICAgJ3VuZXhwZWN0ZWQgRU9GJ1xuXTtcbjtcbnZhciBlcnIgPSBmdW5jdGlvbiAoaW5kLCBtc2csIG50KSB7XG4gICAgdmFyIGUgPSBuZXcgRXJyb3IobXNnIHx8IGVjW2luZF0pO1xuICAgIGUuY29kZSA9IGluZDtcbiAgICBpZiAoIW50KVxuICAgICAgICB0aHJvdyBlO1xuICAgIHJldHVybiBlO1xufTtcbnZhciByYiA9IGZ1bmN0aW9uIChkLCBiLCBuKSB7XG4gICAgdmFyIGkgPSAwLCBvID0gMDtcbiAgICBmb3IgKDsgaSA8IG47ICsraSlcbiAgICAgICAgbyB8PSBkW2IrK10gPDwgKGkgPDwgMyk7XG4gICAgcmV0dXJuIG87XG59O1xudmFyIGI0ID0gZnVuY3Rpb24gKGQsIGIpIHsgcmV0dXJuIChkW2JdIHwgKGRbYiArIDFdIDw8IDgpIHwgKGRbYiArIDJdIDw8IDE2KSB8IChkW2IgKyAzXSA8PCAyNCkpID4+PiAwOyB9O1xuLy8gcmVhZCBac3RhbmRhcmQgZnJhbWUgaGVhZGVyXG52YXIgcnpmaCA9IGZ1bmN0aW9uIChkYXQsIHcpIHtcbiAgICB2YXIgbjMgPSBkYXRbMF0gfCAoZGF0WzFdIDw8IDgpIHwgKGRhdFsyXSA8PCAxNik7XG4gICAgaWYgKG4zID09IDB4MkZCNTI4ICYmIGRhdFszXSA9PSAyNTMpIHtcbiAgICAgICAgLy8gWnN0YW5kYXJkXG4gICAgICAgIHZhciBmbGcgPSBkYXRbNF07XG4gICAgICAgIC8vICAgIHNpbmdsZSBzZWdtZW50ICAgICAgIGNoZWNrc3VtICAgICAgICAgICAgIGRpY3QgZmxhZyAgICAgZnJhbWUgY29udGVudCBmbGFnXG4gICAgICAgIHZhciBzcyA9IChmbGcgPj4gNSkgJiAxLCBjYyA9IChmbGcgPj4gMikgJiAxLCBkZiA9IGZsZyAmIDMsIGZjZiA9IGZsZyA+PiA2O1xuICAgICAgICBpZiAoZmxnICYgOClcbiAgICAgICAgICAgIGVycigwKTtcbiAgICAgICAgLy8gYnl0ZVxuICAgICAgICB2YXIgYnQgPSA2IC0gc3M7XG4gICAgICAgIC8vIGRpY3QgYnl0ZXNcbiAgICAgICAgdmFyIGRiID0gZGYgPT0gMyA/IDQgOiBkZjtcbiAgICAgICAgLy8gZGljdGlvbmFyeSBpZFxuICAgICAgICB2YXIgZGkgPSByYihkYXQsIGJ0LCBkYik7XG4gICAgICAgIGJ0ICs9IGRiO1xuICAgICAgICAvLyBmcmFtZSBzaXplIGJ5dGVzXG4gICAgICAgIHZhciBmc2IgPSBmY2YgPyAoMSA8PCBmY2YpIDogc3M7XG4gICAgICAgIC8vIGZyYW1lIHNvdXJjZSBzaXplXG4gICAgICAgIHZhciBmc3MgPSByYihkYXQsIGJ0LCBmc2IpICsgKChmY2YgPT0gMSkgJiYgMjU2KTtcbiAgICAgICAgLy8gd2luZG93IHNpemVcbiAgICAgICAgdmFyIHdzID0gZnNzO1xuICAgICAgICBpZiAoIXNzKSB7XG4gICAgICAgICAgICAvLyB3aW5kb3cgZGVzY3JpcHRvclxuICAgICAgICAgICAgdmFyIHdiID0gMSA8PCAoMTAgKyAoZGF0WzVdID4+IDMpKTtcbiAgICAgICAgICAgIHdzID0gd2IgKyAod2IgPj4gMykgKiAoZGF0WzVdICYgNyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdzID4gMjE0NTM4NjQ5NilcbiAgICAgICAgICAgIGVycigxKTtcbiAgICAgICAgdmFyIGJ1ZiA9IG5ldyB1OCgodyA9PSAxID8gKGZzcyB8fCB3cykgOiB3ID8gMCA6IHdzKSArIDEyKTtcbiAgICAgICAgYnVmWzBdID0gMSwgYnVmWzRdID0gNCwgYnVmWzhdID0gODtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGI6IGJ0ICsgZnNiLFxuICAgICAgICAgICAgeTogMCxcbiAgICAgICAgICAgIGw6IDAsXG4gICAgICAgICAgICBkOiBkaSxcbiAgICAgICAgICAgIHc6ICh3ICYmIHcgIT0gMSkgPyB3IDogYnVmLnN1YmFycmF5KDEyKSxcbiAgICAgICAgICAgIGU6IHdzLFxuICAgICAgICAgICAgbzogbmV3IGkzMihidWYuYnVmZmVyLCAwLCAzKSxcbiAgICAgICAgICAgIHU6IGZzcyxcbiAgICAgICAgICAgIGM6IGNjLFxuICAgICAgICAgICAgbTogTWF0aC5taW4oMTMxMDcyLCB3cylcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZWxzZSBpZiAoKChuMyA+PiA0KSB8IChkYXRbM10gPDwgMjApKSA9PSAweDE4NEQyQTUpIHtcbiAgICAgICAgLy8gc2tpcHBhYmxlXG4gICAgICAgIHJldHVybiBiNChkYXQsIDQpICsgODtcbiAgICB9XG4gICAgZXJyKDApO1xufTtcbi8vIG1vc3Qgc2lnbmlmaWNhbnQgYml0IGZvciBub256ZXJvXG52YXIgbXNiID0gZnVuY3Rpb24gKHZhbCkge1xuICAgIHZhciBiaXRzID0gMDtcbiAgICBmb3IgKDsgKDEgPDwgYml0cykgPD0gdmFsOyArK2JpdHMpXG4gICAgICAgIDtcbiAgICByZXR1cm4gYml0cyAtIDE7XG59O1xuLy8gcmVhZCBmaW5pdGUgc3RhdGUgZW50cm9weVxudmFyIHJmc2UgPSBmdW5jdGlvbiAoZGF0LCBidCwgbWFsKSB7XG4gICAgLy8gdGFibGUgcG9zXG4gICAgdmFyIHRwb3MgPSAoYnQgPDwgMykgKyA0O1xuICAgIC8vIGFjY3VyYWN5IGxvZ1xuICAgIHZhciBhbCA9IChkYXRbYnRdICYgMTUpICsgNTtcbiAgICBpZiAoYWwgPiBtYWwpXG4gICAgICAgIGVycigzKTtcbiAgICAvLyBzaXplXG4gICAgdmFyIHN6ID0gMSA8PCBhbDtcbiAgICAvLyBwcm9iYWJpbGl0aWVzIHN5bWJvbHMgIHJlcGVhdCAgIGluZGV4ICAgaGlnaCB0aHJlc2hvbGRcbiAgICB2YXIgcHJvYnMgPSBzeiwgc3ltID0gLTEsIHJlID0gLTEsIGkgPSAtMSwgaHQgPSBzejtcbiAgICAvLyBvcHRpbWl6YXRpb246IHNpbmdsZSBhbGxvY2F0aW9uIGlzIG11Y2ggZmFzdGVyXG4gICAgdmFyIGJ1ZiA9IG5ldyBhYig1MTIgKyAoc3ogPDwgMikpO1xuICAgIHZhciBmcmVxID0gbmV3IGkxNihidWYsIDAsIDI1Nik7XG4gICAgLy8gc2FtZSB2aWV3IGFzIGZyZXFcbiAgICB2YXIgZHN0YXRlID0gbmV3IHUxNihidWYsIDAsIDI1Nik7XG4gICAgdmFyIG5zdGF0ZSA9IG5ldyB1MTYoYnVmLCA1MTIsIHN6KTtcbiAgICB2YXIgYmIxID0gNTEyICsgKHN6IDw8IDEpO1xuICAgIHZhciBzeW1zID0gbmV3IHU4KGJ1ZiwgYmIxLCBzeik7XG4gICAgdmFyIG5iaXRzID0gbmV3IHU4KGJ1ZiwgYmIxICsgc3opO1xuICAgIHdoaWxlIChzeW0gPCAyNTUgJiYgcHJvYnMgPiAwKSB7XG4gICAgICAgIHZhciBiaXRzID0gbXNiKHByb2JzICsgMSk7XG4gICAgICAgIHZhciBjYnQgPSB0cG9zID4+IDM7XG4gICAgICAgIC8vIG1hc2tcbiAgICAgICAgdmFyIG1zayA9ICgxIDw8IChiaXRzICsgMSkpIC0gMTtcbiAgICAgICAgdmFyIHZhbCA9ICgoZGF0W2NidF0gfCAoZGF0W2NidCArIDFdIDw8IDgpIHwgKGRhdFtjYnQgKyAyXSA8PCAxNikpID4+ICh0cG9zICYgNykpICYgbXNrO1xuICAgICAgICAvLyBtYXNrICgxIGZld2VyIGJpdClcbiAgICAgICAgdmFyIG1zazFmYiA9ICgxIDw8IGJpdHMpIC0gMTtcbiAgICAgICAgLy8gbWF4IHNtYWxsIHZhbHVlXG4gICAgICAgIHZhciBtc3YgPSBtc2sgLSBwcm9icyAtIDE7XG4gICAgICAgIC8vIHNtYWxsIHZhbHVlXG4gICAgICAgIHZhciBzdmFsID0gdmFsICYgbXNrMWZiO1xuICAgICAgICBpZiAoc3ZhbCA8IG1zdilcbiAgICAgICAgICAgIHRwb3MgKz0gYml0cywgdmFsID0gc3ZhbDtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0cG9zICs9IGJpdHMgKyAxO1xuICAgICAgICAgICAgaWYgKHZhbCA+IG1zazFmYilcbiAgICAgICAgICAgICAgICB2YWwgLT0gbXN2O1xuICAgICAgICB9XG4gICAgICAgIGZyZXFbKytzeW1dID0gLS12YWw7XG4gICAgICAgIGlmICh2YWwgPT0gLTEpIHtcbiAgICAgICAgICAgIHByb2JzICs9IHZhbDtcbiAgICAgICAgICAgIHN5bXNbLS1odF0gPSBzeW07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgcHJvYnMgLT0gdmFsO1xuICAgICAgICBpZiAoIXZhbCkge1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgIC8vIHJlcGVhdCBieXRlXG4gICAgICAgICAgICAgICAgdmFyIHJidCA9IHRwb3MgPj4gMztcbiAgICAgICAgICAgICAgICByZSA9ICgoZGF0W3JidF0gfCAoZGF0W3JidCArIDFdIDw8IDgpKSA+PiAodHBvcyAmIDcpKSAmIDM7XG4gICAgICAgICAgICAgICAgdHBvcyArPSAyO1xuICAgICAgICAgICAgICAgIHN5bSArPSByZTtcbiAgICAgICAgICAgIH0gd2hpbGUgKHJlID09IDMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChzeW0gPiAyNTUgfHwgcHJvYnMpXG4gICAgICAgIGVycigwKTtcbiAgICB2YXIgc3ltcG9zID0gMDtcbiAgICAvLyBzeW0gc3RlcCAoY29wcmltZSB3aXRoIHN6IC0gZm9ybXVsYSBmcm9tIHpzdGQgc291cmNlKVxuICAgIHZhciBzc3RlcCA9IChzeiA+PiAxKSArIChzeiA+PiAzKSArIDM7XG4gICAgLy8gc3ltIG1hc2tcbiAgICB2YXIgc21hc2sgPSBzeiAtIDE7XG4gICAgZm9yICh2YXIgcyA9IDA7IHMgPD0gc3ltOyArK3MpIHtcbiAgICAgICAgdmFyIHNmID0gZnJlcVtzXTtcbiAgICAgICAgaWYgKHNmIDwgMSkge1xuICAgICAgICAgICAgZHN0YXRlW3NdID0gLXNmO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVGhpcyBpcyBzcGxpdCBpbnRvIHR3byBsb29wcyBpbiB6c3RkIHRvIGF2b2lkIGJyYW5jaGluZywgYnV0IGFzIEpTIGlzIGhpZ2hlci1sZXZlbCB0aGF0IGlzIHVubmVjZXNzYXJ5XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBzZjsgKytpKSB7XG4gICAgICAgICAgICBzeW1zW3N5bXBvc10gPSBzO1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgIHN5bXBvcyA9IChzeW1wb3MgKyBzc3RlcCkgJiBzbWFzaztcbiAgICAgICAgICAgIH0gd2hpbGUgKHN5bXBvcyA+PSBodCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQWZ0ZXIgc3ByZWFkaW5nIHN5bWJvbHMsIHNob3VsZCBiZSB6ZXJvIGFnYWluXG4gICAgaWYgKHN5bXBvcylcbiAgICAgICAgZXJyKDApO1xuICAgIGZvciAoaSA9IDA7IGkgPCBzejsgKytpKSB7XG4gICAgICAgIC8vIG5leHQgc3RhdGVcbiAgICAgICAgdmFyIG5zID0gZHN0YXRlW3N5bXNbaV1dKys7XG4gICAgICAgIC8vIG51bSBiaXRzXG4gICAgICAgIHZhciBuYiA9IG5iaXRzW2ldID0gYWwgLSBtc2IobnMpO1xuICAgICAgICBuc3RhdGVbaV0gPSAobnMgPDwgbmIpIC0gc3o7XG4gICAgfVxuICAgIHJldHVybiBbKHRwb3MgKyA3KSA+PiAzLCB7XG4gICAgICAgICAgICBiOiBhbCxcbiAgICAgICAgICAgIHM6IHN5bXMsXG4gICAgICAgICAgICBuOiBuYml0cyxcbiAgICAgICAgICAgIHQ6IG5zdGF0ZVxuICAgICAgICB9XTtcbn07XG4vLyByZWFkIGh1ZmZtYW5cbnZhciByaHUgPSBmdW5jdGlvbiAoZGF0LCBidCkge1xuICAgIC8vICBpbmRleCAgd2VpZ2h0IGNvdW50XG4gICAgdmFyIGkgPSAwLCB3YyA9IC0xO1xuICAgIC8vICAgIGJ1ZmZlciAgICAgICAgICAgICBoZWFkZXIgYnl0ZVxuICAgIHZhciBidWYgPSBuZXcgdTgoMjkyKSwgaGIgPSBkYXRbYnRdO1xuICAgIC8vIGh1ZmZtYW4gd2VpZ2h0c1xuICAgIHZhciBodyA9IGJ1Zi5zdWJhcnJheSgwLCAyNTYpO1xuICAgIC8vIHJhbmsgY291bnRcbiAgICB2YXIgcmMgPSBidWYuc3ViYXJyYXkoMjU2LCAyNjgpO1xuICAgIC8vIHJhbmsgaW5kZXhcbiAgICB2YXIgcmkgPSBuZXcgdTE2KGJ1Zi5idWZmZXIsIDI2OCk7XG4gICAgLy8gTk9URTogYXQgdGhpcyBwb2ludCBidCBpcyAxIGxlc3MgdGhhbiBleHBlY3RlZFxuICAgIGlmIChoYiA8IDEyOCkge1xuICAgICAgICAvLyBlbmQgYnl0ZSwgZnNlIGRlY29kZSB0YWJsZVxuICAgICAgICB2YXIgX2EgPSByZnNlKGRhdCwgYnQgKyAxLCA2KSwgZWJ0ID0gX2FbMF0sIGZkdCA9IF9hWzFdO1xuICAgICAgICBidCArPSBoYjtcbiAgICAgICAgdmFyIGVwb3MgPSBlYnQgPDwgMztcbiAgICAgICAgLy8gbGFzdCBieXRlXG4gICAgICAgIHZhciBsYiA9IGRhdFtidF07XG4gICAgICAgIGlmICghbGIpXG4gICAgICAgICAgICBlcnIoMCk7XG4gICAgICAgIC8vICBzdGF0ZTEgICBzdGF0ZTIgICBzdGF0ZTEgYml0cyAgIHN0YXRlMiBiaXRzXG4gICAgICAgIHZhciBzdDEgPSAwLCBzdDIgPSAwLCBidHIxID0gZmR0LmIsIGJ0cjIgPSBidHIxO1xuICAgICAgICAvLyBmc2UgcG9zXG4gICAgICAgIC8vIHByZS1pbmNyZW1lbnQgdG8gYWNjb3VudCBmb3Igb3JpZ2luYWwgZGVmaWNpdCBvZiAxXG4gICAgICAgIHZhciBmcG9zID0gKCsrYnQgPDwgMykgLSA4ICsgbXNiKGxiKTtcbiAgICAgICAgZm9yICg7Oykge1xuICAgICAgICAgICAgZnBvcyAtPSBidHIxO1xuICAgICAgICAgICAgaWYgKGZwb3MgPCBlcG9zKVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgdmFyIGNidCA9IGZwb3MgPj4gMztcbiAgICAgICAgICAgIHN0MSArPSAoKGRhdFtjYnRdIHwgKGRhdFtjYnQgKyAxXSA8PCA4KSkgPj4gKGZwb3MgJiA3KSkgJiAoKDEgPDwgYnRyMSkgLSAxKTtcbiAgICAgICAgICAgIGh3Wysrd2NdID0gZmR0LnNbc3QxXTtcbiAgICAgICAgICAgIGZwb3MgLT0gYnRyMjtcbiAgICAgICAgICAgIGlmIChmcG9zIDwgZXBvcylcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNidCA9IGZwb3MgPj4gMztcbiAgICAgICAgICAgIHN0MiArPSAoKGRhdFtjYnRdIHwgKGRhdFtjYnQgKyAxXSA8PCA4KSkgPj4gKGZwb3MgJiA3KSkgJiAoKDEgPDwgYnRyMikgLSAxKTtcbiAgICAgICAgICAgIGh3Wysrd2NdID0gZmR0LnNbc3QyXTtcbiAgICAgICAgICAgIGJ0cjEgPSBmZHQubltzdDFdO1xuICAgICAgICAgICAgc3QxID0gZmR0LnRbc3QxXTtcbiAgICAgICAgICAgIGJ0cjIgPSBmZHQubltzdDJdO1xuICAgICAgICAgICAgc3QyID0gZmR0LnRbc3QyXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKyt3YyA+IDI1NSlcbiAgICAgICAgICAgIGVycigwKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHdjID0gaGIgLSAxMjc7XG4gICAgICAgIGZvciAoOyBpIDwgd2M7IGkgKz0gMikge1xuICAgICAgICAgICAgdmFyIGJ5dGUgPSBkYXRbKytidF07XG4gICAgICAgICAgICBod1tpXSA9IGJ5dGUgPj4gNDtcbiAgICAgICAgICAgIGh3W2kgKyAxXSA9IGJ5dGUgJiAxNTtcbiAgICAgICAgfVxuICAgICAgICArK2J0O1xuICAgIH1cbiAgICAvLyB3ZWlnaHQgZXhwb25lbnRpYWwgc3VtXG4gICAgdmFyIHdlcyA9IDA7XG4gICAgZm9yIChpID0gMDsgaSA8IHdjOyArK2kpIHtcbiAgICAgICAgdmFyIHd0ID0gaHdbaV07XG4gICAgICAgIC8vIGJpdHMgbXVzdCBiZSBhdCBtb3N0IDExLCBzYW1lIGFzIHdlaWdodFxuICAgICAgICBpZiAod3QgPiAxMSlcbiAgICAgICAgICAgIGVycigwKTtcbiAgICAgICAgd2VzICs9IHd0ICYmICgxIDw8ICh3dCAtIDEpKTtcbiAgICB9XG4gICAgLy8gbWF4IGJpdHNcbiAgICB2YXIgbWIgPSBtc2Iod2VzKSArIDE7XG4gICAgLy8gdGFibGUgc2l6ZVxuICAgIHZhciB0cyA9IDEgPDwgbWI7XG4gICAgLy8gcmVtYWluaW5nIHN1bVxuICAgIHZhciByZW0gPSB0cyAtIHdlcztcbiAgICAvLyBtdXN0IGJlIHBvd2VyIG9mIDJcbiAgICBpZiAocmVtICYgKHJlbSAtIDEpKVxuICAgICAgICBlcnIoMCk7XG4gICAgaHdbd2MrK10gPSBtc2IocmVtKSArIDE7XG4gICAgZm9yIChpID0gMDsgaSA8IHdjOyArK2kpIHtcbiAgICAgICAgdmFyIHd0ID0gaHdbaV07XG4gICAgICAgICsrcmNbaHdbaV0gPSB3dCAmJiAobWIgKyAxIC0gd3QpXTtcbiAgICB9XG4gICAgLy8gaHVmIGJ1ZlxuICAgIHZhciBoYnVmID0gbmV3IHU4KHRzIDw8IDEpO1xuICAgIC8vICAgIHN5bWJvbHMgICAgICAgICAgICAgICAgICAgICAgbnVtIGJpdHNcbiAgICB2YXIgc3ltcyA9IGhidWYuc3ViYXJyYXkoMCwgdHMpLCBuYiA9IGhidWYuc3ViYXJyYXkodHMpO1xuICAgIHJpW21iXSA9IDA7XG4gICAgZm9yIChpID0gbWI7IGkgPiAwOyAtLWkpIHtcbiAgICAgICAgdmFyIHB2ID0gcmlbaV07XG4gICAgICAgIGZpbGwobmIsIGksIHB2LCByaVtpIC0gMV0gPSBwdiArIHJjW2ldICogKDEgPDwgKG1iIC0gaSkpKTtcbiAgICB9XG4gICAgaWYgKHJpWzBdICE9IHRzKVxuICAgICAgICBlcnIoMCk7XG4gICAgZm9yIChpID0gMDsgaSA8IHdjOyArK2kpIHtcbiAgICAgICAgdmFyIGJpdHMgPSBod1tpXTtcbiAgICAgICAgaWYgKGJpdHMpIHtcbiAgICAgICAgICAgIHZhciBjb2RlID0gcmlbYml0c107XG4gICAgICAgICAgICBmaWxsKHN5bXMsIGksIGNvZGUsIHJpW2JpdHNdID0gY29kZSArICgxIDw8IChtYiAtIGJpdHMpKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIFtidCwge1xuICAgICAgICAgICAgbjogbmIsXG4gICAgICAgICAgICBiOiBtYixcbiAgICAgICAgICAgIHM6IHN5bXNcbiAgICAgICAgfV07XG59O1xuLy8gVGFibGVzIGdlbmVyYXRlZCB1c2luZyB0aGlzOlxuLy8gaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vMTAxYXJyb3d6L2E5Nzk0NTJkNDM1NTk5MmNiZjhmMjU3Y2JmZmM5ZWRkXG4vLyBkZWZhdWx0IGxpdGVyYWwgbGVuZ3RoIHRhYmxlXG52YXIgZGxsdCA9IC8qI19fUFVSRV9fKi8gcmZzZSgvKiNfX1BVUkVfXyovIG5ldyB1OChbXG4gICAgODEsIDE2LCA5OSwgMTQwLCA0OSwgMTk4LCAyNCwgOTksIDEyLCAzMywgMTk2LCAyNCwgOTksIDEwMiwgMTAyLCAxMzQsIDcwLCAxNDYsIDRcbl0pLCAwLCA2KVsxXTtcbi8vIGRlZmF1bHQgbWF0Y2ggbGVuZ3RoIHRhYmxlXG52YXIgZG1sdCA9IC8qI19fUFVSRV9fKi8gcmZzZSgvKiNfX1BVUkVfXyovIG5ldyB1OChbXG4gICAgMzMsIDIwLCAxOTYsIDI0LCA5OSwgMTQwLCAzMywgMTMyLCAxNiwgNjYsIDgsIDMzLCAxMzIsIDE2LCA2NiwgOCwgMzMsIDY4LCA2OCwgNjgsIDY4LCA2OCwgNjgsIDY4LCA2OCwgMzYsIDlcbl0pLCAwLCA2KVsxXTtcbi8vIGRlZmF1bHQgb2Zmc2V0IGNvZGUgdGFibGVcbnZhciBkb2N0ID0gLyojX19QVVJFX18gKi8gcmZzZSgvKiNfX1BVUkVfXyovIG5ldyB1OChbXG4gICAgMzIsIDEzMiwgMTYsIDY2LCAxMDIsIDcwLCA2OCwgNjgsIDY4LCA2OCwgMzYsIDczLCAyXG5dKSwgMCwgNSlbMV07XG4vLyBiaXRzIHRvIGJhc2VsaW5lXG52YXIgYjJibCA9IGZ1bmN0aW9uIChiLCBzKSB7XG4gICAgdmFyIGxlbiA9IGIubGVuZ3RoLCBibCA9IG5ldyBpMzIobGVuKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgKytpKSB7XG4gICAgICAgIGJsW2ldID0gcztcbiAgICAgICAgcyArPSAxIDw8IGJbaV07XG4gICAgfVxuICAgIHJldHVybiBibDtcbn07XG4vLyBsaXRlcmFsIGxlbmd0aCBiaXRzXG52YXIgbGxiID0gLyojX19QVVJFX18gKi8gbmV3IHU4KCggLyojX19QVVJFX18gKi9uZXcgaTMyKFtcbiAgICAwLCAwLCAwLCAwLCAxNjg0MzAwOSwgNTA1Mjg3NzAsIDEzNDY3ODAyMCwgMjAyMDUwMDU3LCAyNjk0MjIwOTNcbl0pKS5idWZmZXIsIDAsIDM2KTtcbi8vIGxpdGVyYWwgbGVuZ3RoIGJhc2VsaW5lXG52YXIgbGxibCA9IC8qI19fUFVSRV9fICovIGIyYmwobGxiLCAwKTtcbi8vIG1hdGNoIGxlbmd0aCBiaXRzXG52YXIgbWxiID0gLyojX19QVVJFX18gKi8gbmV3IHU4KCggLyojX19QVVJFX18gKi9uZXcgaTMyKFtcbiAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNjg0MzAwOSwgNTA1Mjg3NzAsIDExNzc2OTIyMCwgMTg1MjA3MDQ4LCAyNTI1NzkwODQsIDE2XG5dKSkuYnVmZmVyLCAwLCA1Myk7XG4vLyBtYXRjaCBsZW5ndGggYmFzZWxpbmVcbnZhciBtbGJsID0gLyojX19QVVJFX18gKi8gYjJibChtbGIsIDMpO1xuLy8gZGVjb2RlIGh1ZmZtYW4gc3RyZWFtXG52YXIgZGh1ID0gZnVuY3Rpb24gKGRhdCwgb3V0LCBodSkge1xuICAgIHZhciBsZW4gPSBkYXQubGVuZ3RoLCBzcyA9IG91dC5sZW5ndGgsIGxiID0gZGF0W2xlbiAtIDFdLCBtc2sgPSAoMSA8PCBodS5iKSAtIDEsIGViID0gLWh1LmI7XG4gICAgaWYgKCFsYilcbiAgICAgICAgZXJyKDApO1xuICAgIHZhciBzdCA9IDAsIGJ0ciA9IGh1LmIsIHBvcyA9IChsZW4gPDwgMykgLSA4ICsgbXNiKGxiKSAtIGJ0ciwgaSA9IC0xO1xuICAgIGZvciAoOyBwb3MgPiBlYiAmJiBpIDwgc3M7KSB7XG4gICAgICAgIHZhciBjYnQgPSBwb3MgPj4gMztcbiAgICAgICAgdmFyIHZhbCA9IChkYXRbY2J0XSB8IChkYXRbY2J0ICsgMV0gPDwgOCkgfCAoZGF0W2NidCArIDJdIDw8IDE2KSkgPj4gKHBvcyAmIDcpO1xuICAgICAgICBzdCA9ICgoc3QgPDwgYnRyKSB8IHZhbCkgJiBtc2s7XG4gICAgICAgIG91dFsrK2ldID0gaHUuc1tzdF07XG4gICAgICAgIHBvcyAtPSAoYnRyID0gaHUubltzdF0pO1xuICAgIH1cbiAgICBpZiAocG9zICE9IGViIHx8IGkgKyAxICE9IHNzKVxuICAgICAgICBlcnIoMCk7XG59O1xuLy8gZGVjb2RlIGh1ZmZtYW4gc3RyZWFtIDR4XG4vLyBUT0RPOiB1c2Ugd29ya2VycyB0byBwYXJhbGxlbGl6ZVxudmFyIGRodTQgPSBmdW5jdGlvbiAoZGF0LCBvdXQsIGh1KSB7XG4gICAgdmFyIGJ0ID0gNjtcbiAgICB2YXIgc3MgPSBvdXQubGVuZ3RoLCBzejEgPSAoc3MgKyAzKSA+PiAyLCBzejIgPSBzejEgPDwgMSwgc3ozID0gc3oxICsgc3oyO1xuICAgIGRodShkYXQuc3ViYXJyYXkoYnQsIGJ0ICs9IGRhdFswXSB8IChkYXRbMV0gPDwgOCkpLCBvdXQuc3ViYXJyYXkoMCwgc3oxKSwgaHUpO1xuICAgIGRodShkYXQuc3ViYXJyYXkoYnQsIGJ0ICs9IGRhdFsyXSB8IChkYXRbM10gPDwgOCkpLCBvdXQuc3ViYXJyYXkoc3oxLCBzejIpLCBodSk7XG4gICAgZGh1KGRhdC5zdWJhcnJheShidCwgYnQgKz0gZGF0WzRdIHwgKGRhdFs1XSA8PCA4KSksIG91dC5zdWJhcnJheShzejIsIHN6MyksIGh1KTtcbiAgICBkaHUoZGF0LnN1YmFycmF5KGJ0KSwgb3V0LnN1YmFycmF5KHN6MyksIGh1KTtcbn07XG4vLyByZWFkIFpzdGFuZGFyZCBibG9ja1xudmFyIHJ6YiA9IGZ1bmN0aW9uIChkYXQsIHN0LCBvdXQpIHtcbiAgICB2YXIgX2E7XG4gICAgdmFyIGJ0ID0gc3QuYjtcbiAgICAvLyAgICBieXRlIDAgICAgICAgIGJsb2NrIHR5cGVcbiAgICB2YXIgYjAgPSBkYXRbYnRdLCBidHlwZSA9IChiMCA+PiAxKSAmIDM7XG4gICAgc3QubCA9IGIwICYgMTtcbiAgICB2YXIgc3ogPSAoYjAgPj4gMykgfCAoZGF0W2J0ICsgMV0gPDwgNSkgfCAoZGF0W2J0ICsgMl0gPDwgMTMpO1xuICAgIC8vIGVuZCBieXRlIGZvciBibG9ja1xuICAgIHZhciBlYnQgPSAoYnQgKz0gMykgKyBzejtcbiAgICBpZiAoYnR5cGUgPT0gMSkge1xuICAgICAgICBpZiAoYnQgPj0gZGF0Lmxlbmd0aClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgc3QuYiA9IGJ0ICsgMTtcbiAgICAgICAgaWYgKG91dCkge1xuICAgICAgICAgICAgZmlsbChvdXQsIGRhdFtidF0sIHN0LnksIHN0LnkgKz0gc3opO1xuICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmlsbChuZXcgdTgoc3opLCBkYXRbYnRdKTtcbiAgICB9XG4gICAgaWYgKGVidCA+IGRhdC5sZW5ndGgpXG4gICAgICAgIHJldHVybjtcbiAgICBpZiAoYnR5cGUgPT0gMCkge1xuICAgICAgICBzdC5iID0gZWJ0O1xuICAgICAgICBpZiAob3V0KSB7XG4gICAgICAgICAgICBvdXQuc2V0KGRhdC5zdWJhcnJheShidCwgZWJ0KSwgc3QueSk7XG4gICAgICAgICAgICBzdC55ICs9IHN6O1xuICAgICAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2xjKGRhdCwgYnQsIGVidCk7XG4gICAgfVxuICAgIGlmIChidHlwZSA9PSAyKSB7XG4gICAgICAgIC8vICAgIGJ5dGUgMyAgICAgICAgbGl0IGJ0eXBlICAgICBzaXplIGZvcm1hdFxuICAgICAgICB2YXIgYjMgPSBkYXRbYnRdLCBsYnQgPSBiMyAmIDMsIHNmID0gKGIzID4+IDIpICYgMztcbiAgICAgICAgLy8gbGl0IHNyYyBzaXplICBsaXQgY21wIHN6IDQgc3RyZWFtc1xuICAgICAgICB2YXIgbHNzID0gYjMgPj4gNCwgbGNzID0gMCwgczQgPSAwO1xuICAgICAgICBpZiAobGJ0IDwgMikge1xuICAgICAgICAgICAgaWYgKHNmICYgMSlcbiAgICAgICAgICAgICAgICBsc3MgfD0gKGRhdFsrK2J0XSA8PCA0KSB8ICgoc2YgJiAyKSAmJiAoZGF0WysrYnRdIDw8IDEyKSk7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgbHNzID0gYjMgPj4gMztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHM0ID0gc2Y7XG4gICAgICAgICAgICBpZiAoc2YgPCAyKVxuICAgICAgICAgICAgICAgIGxzcyB8PSAoKGRhdFsrK2J0XSAmIDYzKSA8PCA0KSwgbGNzID0gKGRhdFtidF0gPj4gNikgfCAoZGF0WysrYnRdIDw8IDIpO1xuICAgICAgICAgICAgZWxzZSBpZiAoc2YgPT0gMilcbiAgICAgICAgICAgICAgICBsc3MgfD0gKGRhdFsrK2J0XSA8PCA0KSB8ICgoZGF0WysrYnRdICYgMykgPDwgMTIpLCBsY3MgPSAoZGF0W2J0XSA+PiAyKSB8IChkYXRbKytidF0gPDwgNik7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgbHNzIHw9IChkYXRbKytidF0gPDwgNCkgfCAoKGRhdFsrK2J0XSAmIDYzKSA8PCAxMiksIGxjcyA9IChkYXRbYnRdID4+IDYpIHwgKGRhdFsrK2J0XSA8PCAyKSB8IChkYXRbKytidF0gPDwgMTApO1xuICAgICAgICB9XG4gICAgICAgICsrYnQ7XG4gICAgICAgIC8vIGFkZCBsaXRlcmFscyB0byBlbmQgLSBjYW4gbmV2ZXIgb3ZlcmxhcCB3aXRoIGJhY2tyZWZlcmVuY2VzIGJlY2F1c2UgdW51c2VkIGxpdGVyYWxzIGFsd2F5cyBhcHBlbmRlZFxuICAgICAgICB2YXIgYnVmID0gb3V0ID8gb3V0LnN1YmFycmF5KHN0LnksIHN0LnkgKyBzdC5tKSA6IG5ldyB1OChzdC5tKTtcbiAgICAgICAgLy8gc3RhcnRpbmcgcG9pbnQgZm9yIGxpdGVyYWxzXG4gICAgICAgIHZhciBzcGwgPSBidWYubGVuZ3RoIC0gbHNzO1xuICAgICAgICBpZiAobGJ0ID09IDApXG4gICAgICAgICAgICBidWYuc2V0KGRhdC5zdWJhcnJheShidCwgYnQgKz0gbHNzKSwgc3BsKTtcbiAgICAgICAgZWxzZSBpZiAobGJ0ID09IDEpXG4gICAgICAgICAgICBmaWxsKGJ1ZiwgZGF0W2J0KytdLCBzcGwpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIGh1ZmZtYW4gdGFibGVcbiAgICAgICAgICAgIHZhciBodSA9IHN0Lmg7XG4gICAgICAgICAgICBpZiAobGJ0ID09IDIpIHtcbiAgICAgICAgICAgICAgICB2YXIgaHVkID0gcmh1KGRhdCwgYnQpO1xuICAgICAgICAgICAgICAgIC8vIHN1YnRyYWN0IGRlc2NyaXB0aW9uIGxlbmd0aFxuICAgICAgICAgICAgICAgIGxjcyArPSBidCAtIChidCA9IGh1ZFswXSk7XG4gICAgICAgICAgICAgICAgc3QuaCA9IGh1ID0gaHVkWzFdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoIWh1KVxuICAgICAgICAgICAgICAgIGVycigwKTtcbiAgICAgICAgICAgIChzNCA/IGRodTQgOiBkaHUpKGRhdC5zdWJhcnJheShidCwgYnQgKz0gbGNzKSwgYnVmLnN1YmFycmF5KHNwbCksIGh1KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBudW0gc2VxdWVuY2VzXG4gICAgICAgIHZhciBucyA9IGRhdFtidCsrXTtcbiAgICAgICAgaWYgKG5zKSB7XG4gICAgICAgICAgICBpZiAobnMgPT0gMjU1KVxuICAgICAgICAgICAgICAgIG5zID0gKGRhdFtidCsrXSB8IChkYXRbYnQrK10gPDwgOCkpICsgMHg3RjAwO1xuICAgICAgICAgICAgZWxzZSBpZiAobnMgPiAxMjcpXG4gICAgICAgICAgICAgICAgbnMgPSAoKG5zIC0gMTI4KSA8PCA4KSB8IGRhdFtidCsrXTtcbiAgICAgICAgICAgIC8vIHN5bWJvbCBjb21wcmVzc2lvbiBtb2Rlc1xuICAgICAgICAgICAgdmFyIHNjbSA9IGRhdFtidCsrXTtcbiAgICAgICAgICAgIGlmIChzY20gJiAzKVxuICAgICAgICAgICAgICAgIGVycigwKTtcbiAgICAgICAgICAgIHZhciBkdHMgPSBbZG1sdCwgZG9jdCwgZGxsdF07XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMjsgaSA+IC0xOyAtLWkpIHtcbiAgICAgICAgICAgICAgICB2YXIgbWQgPSAoc2NtID4+ICgoaSA8PCAxKSArIDIpKSAmIDM7XG4gICAgICAgICAgICAgICAgaWYgKG1kID09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gcmxlIGJ1ZlxuICAgICAgICAgICAgICAgICAgICB2YXIgcmJ1ZiA9IG5ldyB1OChbMCwgMCwgZGF0W2J0KytdXSk7XG4gICAgICAgICAgICAgICAgICAgIGR0c1tpXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHM6IHJidWYuc3ViYXJyYXkoMiwgMyksXG4gICAgICAgICAgICAgICAgICAgICAgICBuOiByYnVmLnN1YmFycmF5KDAsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdDogbmV3IHUxNihyYnVmLmJ1ZmZlciwgMCwgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBiOiAwXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1kID09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gYWNjdXJhY3kgbG9nIDggZm9yIG9mZnNldHMsIDkgZm9yIG90aGVyc1xuICAgICAgICAgICAgICAgICAgICBfYSA9IHJmc2UoZGF0LCBidCwgOSAtIChpICYgMSkpLCBidCA9IF9hWzBdLCBkdHNbaV0gPSBfYVsxXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobWQgPT0gMykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXN0LnQpXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnIoMCk7XG4gICAgICAgICAgICAgICAgICAgIGR0c1tpXSA9IHN0LnRbaV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIF9iID0gc3QudCA9IGR0cywgbWx0ID0gX2JbMF0sIG9jdCA9IF9iWzFdLCBsbHQgPSBfYlsyXTtcbiAgICAgICAgICAgIHZhciBsYiA9IGRhdFtlYnQgLSAxXTtcbiAgICAgICAgICAgIGlmICghbGIpXG4gICAgICAgICAgICAgICAgZXJyKDApO1xuICAgICAgICAgICAgdmFyIHNwb3MgPSAoZWJ0IDw8IDMpIC0gOCArIG1zYihsYikgLSBsbHQuYiwgY2J0ID0gc3BvcyA+PiAzLCBvdWJ0ID0gMDtcbiAgICAgICAgICAgIHZhciBsc3QgPSAoKGRhdFtjYnRdIHwgKGRhdFtjYnQgKyAxXSA8PCA4KSkgPj4gKHNwb3MgJiA3KSkgJiAoKDEgPDwgbGx0LmIpIC0gMSk7XG4gICAgICAgICAgICBjYnQgPSAoc3BvcyAtPSBvY3QuYikgPj4gMztcbiAgICAgICAgICAgIHZhciBvc3QgPSAoKGRhdFtjYnRdIHwgKGRhdFtjYnQgKyAxXSA8PCA4KSkgPj4gKHNwb3MgJiA3KSkgJiAoKDEgPDwgb2N0LmIpIC0gMSk7XG4gICAgICAgICAgICBjYnQgPSAoc3BvcyAtPSBtbHQuYikgPj4gMztcbiAgICAgICAgICAgIHZhciBtc3QgPSAoKGRhdFtjYnRdIHwgKGRhdFtjYnQgKyAxXSA8PCA4KSkgPj4gKHNwb3MgJiA3KSkgJiAoKDEgPDwgbWx0LmIpIC0gMSk7XG4gICAgICAgICAgICBmb3IgKCsrbnM7IC0tbnM7KSB7XG4gICAgICAgICAgICAgICAgdmFyIGxsYyA9IGxsdC5zW2xzdF07XG4gICAgICAgICAgICAgICAgdmFyIGxidHIgPSBsbHQubltsc3RdO1xuICAgICAgICAgICAgICAgIHZhciBtbGMgPSBtbHQuc1ttc3RdO1xuICAgICAgICAgICAgICAgIHZhciBtYnRyID0gbWx0Lm5bbXN0XTtcbiAgICAgICAgICAgICAgICB2YXIgb2ZjID0gb2N0LnNbb3N0XTtcbiAgICAgICAgICAgICAgICB2YXIgb2J0ciA9IG9jdC5uW29zdF07XG4gICAgICAgICAgICAgICAgY2J0ID0gKHNwb3MgLT0gb2ZjKSA+PiAzO1xuICAgICAgICAgICAgICAgIHZhciBvZnAgPSAxIDw8IG9mYztcbiAgICAgICAgICAgICAgICB2YXIgb2ZmID0gb2ZwICsgKCgoZGF0W2NidF0gfCAoZGF0W2NidCArIDFdIDw8IDgpIHwgKGRhdFtjYnQgKyAyXSA8PCAxNikgfCAoZGF0W2NidCArIDNdIDw8IDI0KSkgPj4+IChzcG9zICYgNykpICYgKG9mcCAtIDEpKTtcbiAgICAgICAgICAgICAgICBjYnQgPSAoc3BvcyAtPSBtbGJbbWxjXSkgPj4gMztcbiAgICAgICAgICAgICAgICB2YXIgbWwgPSBtbGJsW21sY10gKyAoKChkYXRbY2J0XSB8IChkYXRbY2J0ICsgMV0gPDwgOCkgfCAoZGF0W2NidCArIDJdIDw8IDE2KSkgPj4gKHNwb3MgJiA3KSkgJiAoKDEgPDwgbWxiW21sY10pIC0gMSkpO1xuICAgICAgICAgICAgICAgIGNidCA9IChzcG9zIC09IGxsYltsbGNdKSA+PiAzO1xuICAgICAgICAgICAgICAgIHZhciBsbCA9IGxsYmxbbGxjXSArICgoKGRhdFtjYnRdIHwgKGRhdFtjYnQgKyAxXSA8PCA4KSB8IChkYXRbY2J0ICsgMl0gPDwgMTYpKSA+PiAoc3BvcyAmIDcpKSAmICgoMSA8PCBsbGJbbGxjXSkgLSAxKSk7XG4gICAgICAgICAgICAgICAgY2J0ID0gKHNwb3MgLT0gbGJ0cikgPj4gMztcbiAgICAgICAgICAgICAgICBsc3QgPSBsbHQudFtsc3RdICsgKCgoZGF0W2NidF0gfCAoZGF0W2NidCArIDFdIDw8IDgpKSA+PiAoc3BvcyAmIDcpKSAmICgoMSA8PCBsYnRyKSAtIDEpKTtcbiAgICAgICAgICAgICAgICBjYnQgPSAoc3BvcyAtPSBtYnRyKSA+PiAzO1xuICAgICAgICAgICAgICAgIG1zdCA9IG1sdC50W21zdF0gKyAoKChkYXRbY2J0XSB8IChkYXRbY2J0ICsgMV0gPDwgOCkpID4+IChzcG9zICYgNykpICYgKCgxIDw8IG1idHIpIC0gMSkpO1xuICAgICAgICAgICAgICAgIGNidCA9IChzcG9zIC09IG9idHIpID4+IDM7XG4gICAgICAgICAgICAgICAgb3N0ID0gb2N0LnRbb3N0XSArICgoKGRhdFtjYnRdIHwgKGRhdFtjYnQgKyAxXSA8PCA4KSkgPj4gKHNwb3MgJiA3KSkgJiAoKDEgPDwgb2J0cikgLSAxKSk7XG4gICAgICAgICAgICAgICAgaWYgKG9mZiA+IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgc3Qub1syXSA9IHN0Lm9bMV07XG4gICAgICAgICAgICAgICAgICAgIHN0Lm9bMV0gPSBzdC5vWzBdO1xuICAgICAgICAgICAgICAgICAgICBzdC5vWzBdID0gb2ZmIC09IDM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2YXIgaWR4ID0gb2ZmIC0gKGxsICE9IDApO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaWR4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvZmYgPSBpZHggPT0gMyA/IHN0Lm9bMF0gLSAxIDogc3Qub1tpZHhdO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlkeCA+IDEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Qub1syXSA9IHN0Lm9bMV07XG4gICAgICAgICAgICAgICAgICAgICAgICBzdC5vWzFdID0gc3Qub1swXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0Lm9bMF0gPSBvZmY7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgb2ZmID0gc3Qub1swXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsbDsgKytpKSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1ZltvdWJ0ICsgaV0gPSBidWZbc3BsICsgaV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG91YnQgKz0gbGwsIHNwbCArPSBsbDtcbiAgICAgICAgICAgICAgICB2YXIgc3RpbiA9IG91YnQgLSBvZmY7XG4gICAgICAgICAgICAgICAgaWYgKHN0aW4gPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBsZW4gPSAtc3RpbjtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGJzID0gc3QuZSArIHN0aW47XG4gICAgICAgICAgICAgICAgICAgIGlmIChsZW4gPiBtbClcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IG1sO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgKytpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidWZbb3VidCArIGldID0gc3Qud1ticyArIGldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG91YnQgKz0gbGVuLCBtbCAtPSBsZW4sIHN0aW4gPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1sOyArK2kpIHtcbiAgICAgICAgICAgICAgICAgICAgYnVmW291YnQgKyBpXSA9IGJ1ZltzdGluICsgaV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG91YnQgKz0gbWw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3VidCAhPSBzcGwpIHtcbiAgICAgICAgICAgICAgICB3aGlsZSAoc3BsIDwgYnVmLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBidWZbb3VidCsrXSA9IGJ1ZltzcGwrK107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIG91YnQgPSBidWYubGVuZ3RoO1xuICAgICAgICAgICAgaWYgKG91dClcbiAgICAgICAgICAgICAgICBzdC55ICs9IG91YnQ7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgYnVmID0gc2xjKGJ1ZiwgMCwgb3VidCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAob3V0KSB7XG4gICAgICAgICAgICAgICAgc3QueSArPSBsc3M7XG4gICAgICAgICAgICAgICAgaWYgKHNwbCkge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxzczsgKytpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidWZbaV0gPSBidWZbc3BsICsgaV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChzcGwpXG4gICAgICAgICAgICAgICAgYnVmID0gc2xjKGJ1Ziwgc3BsKTtcbiAgICAgICAgfVxuICAgICAgICBzdC5iID0gZWJ0O1xuICAgICAgICByZXR1cm4gYnVmO1xuICAgIH1cbiAgICBlcnIoMik7XG59O1xuLy8gY29uY2F0XG52YXIgY2N0ID0gZnVuY3Rpb24gKGJ1ZnMsIG9sKSB7XG4gICAgaWYgKGJ1ZnMubGVuZ3RoID09IDEpXG4gICAgICAgIHJldHVybiBidWZzWzBdO1xuICAgIHZhciBidWYgPSBuZXcgdTgob2wpO1xuICAgIGZvciAodmFyIGkgPSAwLCBiID0gMDsgaSA8IGJ1ZnMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgdmFyIGNoayA9IGJ1ZnNbaV07XG4gICAgICAgIGJ1Zi5zZXQoY2hrLCBiKTtcbiAgICAgICAgYiArPSBjaGsubGVuZ3RoO1xuICAgIH1cbiAgICByZXR1cm4gYnVmO1xufTtcbi8qKlxuICogRGVjb21wcmVzc2VzIFpzdGFuZGFyZCBkYXRhXG4gKiBAcGFyYW0gZGF0IFRoZSBpbnB1dCBkYXRhXG4gKiBAcGFyYW0gYnVmIFRoZSBvdXRwdXQgYnVmZmVyLiBJZiB1bnNwZWNpZmllZCwgdGhlIGZ1bmN0aW9uIHdpbGwgYWxsb2NhdGVcbiAqICAgICAgICAgICAgZXhhY3RseSBlbm91Z2ggbWVtb3J5IHRvIGZpdCB0aGUgZGVjb21wcmVzc2VkIGRhdGEuIElmIHlvdXJcbiAqICAgICAgICAgICAgZGF0YSBoYXMgbXVsdGlwbGUgZnJhbWVzIGFuZCB5b3Uga25vdyB0aGUgb3V0cHV0IHNpemUsIHNwZWNpZnlpbmdcbiAqICAgICAgICAgICAgaXQgd2lsbCB5aWVsZCBiZXR0ZXIgcGVyZm9ybWFuY2UuXG4gKiBAcmV0dXJucyBUaGUgZGVjb21wcmVzc2VkIGRhdGFcbiAqL1xucmV0dXJuIGZ1bmN0aW9uIGRlY29tcHJlc3MoZGF0LCBidWYpIHtcbiAgICB2YXIgYnQgPSAwLCBidWZzID0gW10sIG5iID0gKyFidWYsIG9sID0gMDtcbiAgICBmb3IgKDsgZGF0Lmxlbmd0aDspIHtcbiAgICAgICAgdmFyIHN0ID0gcnpmaChkYXQsIG5iIHx8IGJ1Zik7XG4gICAgICAgIGlmICh0eXBlb2Ygc3QgPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIGlmIChuYikge1xuICAgICAgICAgICAgICAgIGJ1ZiA9IG51bGw7XG4gICAgICAgICAgICAgICAgaWYgKHN0LncubGVuZ3RoID09IHN0LnUpIHtcbiAgICAgICAgICAgICAgICAgICAgYnVmcy5wdXNoKGJ1ZiA9IHN0LncpO1xuICAgICAgICAgICAgICAgICAgICBvbCArPSBzdC51O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGJ1ZnMucHVzaChidWYpO1xuICAgICAgICAgICAgICAgIHN0LmUgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yICg7ICFzdC5sOykge1xuICAgICAgICAgICAgICAgIHZhciBibGsgPSByemIoZGF0LCBzdCwgYnVmKTtcbiAgICAgICAgICAgICAgICBpZiAoIWJsaylcbiAgICAgICAgICAgICAgICAgICAgZXJyKDUpO1xuICAgICAgICAgICAgICAgIGlmIChidWYpXG4gICAgICAgICAgICAgICAgICAgIHN0LmUgPSBzdC55O1xuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBidWZzLnB1c2goYmxrKTtcbiAgICAgICAgICAgICAgICAgICAgb2wgKz0gYmxrLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgY3B3KHN0LncsIDAsIGJsay5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICBzdC53LnNldChibGssIHN0LncubGVuZ3RoIC0gYmxrLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnQgPSBzdC5iICsgKHN0LmMgKiA0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBidCA9IHN0O1xuICAgICAgICBkYXQgPSBkYXQuc3ViYXJyYXkoYnQpO1xuICAgIH1cbiAgICByZXR1cm4gY2N0KGJ1ZnMsIG9sKTtcbn1cbn0pICgpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgQmVub2l0IFZhdWdvbiwgRU5TVEEgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE0IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIFBhZGRpbmcgcG9zaXRpb24uICopXG50eXBlIHBhZHR5ID1cbiAgfCBMZWZ0ICAgKCogVGV4dCBpcyBsZWZ0IGp1c3RpZmllZCAoJy0nIG9wdGlvbikuICAgICAgICAgICAgICAgKilcbiAgfCBSaWdodCAgKCogVGV4dCBpcyByaWdodCBqdXN0aWZpZWQgKG5vICctJyBvcHRpb24pLiAgICAgICAgICAgKilcbiAgfCBaZXJvcyAgKCogVGV4dCBpcyByaWdodCBqdXN0aWZpZWQgYnkgemVyb3MgKHNlZSAnMCcgb3B0aW9uKS4gKilcblxuKCoqKilcblxuKCogSW50ZWdlciBjb252ZXJzaW9uLiAqKVxudHlwZSBpbnRfY29udiA9XG4gIHwgSW50X2QgfCBJbnRfcGQgfCBJbnRfc2QgICAgICAgICgqICAlZCB8ICUrZCB8ICUgZCAgKilcbiAgfCBJbnRfaSB8IEludF9waSB8IEludF9zaSAgICAgICAgKCogICVpIHwgJStpIHwgJSBpICAqKVxuICB8IEludF94IHwgSW50X0N4ICAgICAgICAgICAgICAgICAoKiAgJXggfCAlI3ggICAgICAgICopXG4gIHwgSW50X1ggfCBJbnRfQ1ggICAgICAgICAgICAgICAgICgqICAlWCB8ICUjWCAgICAgICAgKilcbiAgfCBJbnRfbyB8IEludF9DbyAgICAgICAgICAgICAgICAgKCogICVvIHwgJSNvICAgICAgICAqKVxuICB8IEludF91ICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAgJXUgICAgICAgICAgICAgICopXG4gIHwgSW50X0NkIHwgSW50X0NpIHwgSW50X0N1ICAgICAgICgqICAlI2QgfCAlI2kgfCAlI3UgKilcblxuKCogRmxvYXQgY29udmVyc2lvbi4gKilcbnR5cGUgZmxvYXRfZmxhZ19jb252ID1cbiAgfCBGbG9hdF9mbGFnXyAgICAgICAgICAgICAgICAgICAgKCogJVtmZUVnR0ZoSF0gKilcbiAgfCBGbG9hdF9mbGFnX3AgICAgICAgICAgICAgICAgICAgKCogJStbZmVFZ0dGaEhdICopXG4gIHwgRmxvYXRfZmxhZ19zICAgICAgICAgICAgICAgICAgICgqICUgW2ZlRWdHRmhIXSAqKVxudHlwZSBmbG9hdF9raW5kX2NvbnYgPVxuICB8IEZsb2F0X2YgICAgICAgICAgICAgICAgICAgICAgICAoKiAgJWYgfCAlK2YgfCAlIGYgICopXG4gIHwgRmxvYXRfZSAgICAgICAgICAgICAgICAgICAgICAgICgqICAlZSB8ICUrZSB8ICUgZSAgKilcbiAgfCBGbG9hdF9FICAgICAgICAgICAgICAgICAgICAgICAgKCogICVFIHwgJStFIHwgJSBFICAqKVxuICB8IEZsb2F0X2cgICAgICAgICAgICAgICAgICAgICAgICAoKiAgJWcgfCAlK2cgfCAlIGcgICopXG4gIHwgRmxvYXRfRyAgICAgICAgICAgICAgICAgICAgICAgICgqICAlRyB8ICUrRyB8ICUgRyAgKilcbiAgfCBGbG9hdF9GICAgICAgICAgICAgICAgICAgICAgICAgKCogICVGIHwgJStGIHwgJSBGICAqKVxuICB8IEZsb2F0X2ggICAgICAgICAgICAgICAgICAgICAgICAoKiAgJWggfCAlK2ggfCAlIGggICopXG4gIHwgRmxvYXRfSCAgICAgICAgICAgICAgICAgICAgICAgICgqICAlSCB8ICUrSCB8ICUgSCAgKilcbiAgfCBGbG9hdF9DRiAgICAgICAgICAgICAgICAgICAgICAgKCogICUjRnwgJSsjRnwgJSAjRiAqKVxudHlwZSBmbG9hdF9jb252ID0gZmxvYXRfZmxhZ19jb252ICogZmxvYXRfa2luZF9jb252XG5cbigqKiopXG5cbigqIENoYXIgc2V0cyAoc2VlICVbLi4uXSkgYXJlIGJpdG1hcHMgaW1wbGVtZW50ZWQgYXMgMzItY2hhciBzdHJpbmdzLiAqKVxudHlwZSBjaGFyX3NldCA9IHN0cmluZ1xuXG4oKioqKVxuXG4oKiBDb3VudGVyIHVzZWQgaW4gU2NhbmYuICopXG50eXBlIGNvdW50ZXIgPVxuICB8IExpbmVfY291bnRlciAgICAgKCogICVsICAgICAgKilcbiAgfCBDaGFyX2NvdW50ZXIgICAgICgqICAlbiAgICAgICopXG4gIHwgVG9rZW5fY291bnRlciAgICAoKiAgJU4sICVMICAqKVxuXG4oKioqKVxuXG4oKiBQYWRkaW5nIG9mIHN0cmluZ3MgYW5kIG51bWJlcnMuICopXG50eXBlICgnYSwgJ2IpIHBhZGRpbmcgPVxuICAoKiBObyBwYWRkaW5nIChleDogXCIlZFwiKSAqKVxuICB8IE5vX3BhZGRpbmcgIDogKCdhLCAnYSkgcGFkZGluZ1xuICAoKiBMaXRlcmFsIHBhZGRpbmcgKGV4OiBcIiU4ZFwiKSAqKVxuICB8IExpdF9wYWRkaW5nIDogcGFkdHkgKiBpbnQgLT4gKCdhLCAnYSkgcGFkZGluZ1xuICAoKiBQYWRkaW5nIGFzIGV4dHJhIGFyZ3VtZW50IChleDogXCIlKmRcIikgKilcbiAgfCBBcmdfcGFkZGluZyA6IHBhZHR5IC0+IChpbnQgLT4gJ2EsICdhKSBwYWRkaW5nXG5cbigqIFNvbWUgZm9ybWF0cywgc3VjaCBhcyAlX2QsXG4gICBvbmx5IGFjY2VwdCBhbiBvcHRpb25hbCBudW1iZXIgYXMgcGFkZGluZyBvcHRpb24gKG5vIGV4dHJhIGFyZ3VtZW50KSAqKVxudHlwZSBwYWRfb3B0aW9uID0gaW50IG9wdGlvblxuXG4oKiBQcmVjaXNpb24gb2YgZmxvYXRzIGFuZCAnMCctcGFkZGluZyBvZiBpbnRlZ2Vycy4gKilcbnR5cGUgKCdhLCAnYikgcHJlY2lzaW9uID1cbiAgKCogTm8gcHJlY2lzaW9uIChleDogXCIlZlwiKSAqKVxuICB8IE5vX3ByZWNpc2lvbiA6ICgnYSwgJ2EpIHByZWNpc2lvblxuICAoKiBMaXRlcmFsIHByZWNpc2lvbiAoZXg6IFwiJS4zZlwiKSAqKVxuICB8IExpdF9wcmVjaXNpb24gOiBpbnQgLT4gKCdhLCAnYSkgcHJlY2lzaW9uXG4gICgqIFByZWNpc2lvbiBhcyBleHRyYSBhcmd1bWVudCAoZXg6IFwiJS4qZlwiKSAqKVxuICB8IEFyZ19wcmVjaXNpb24gOiAoaW50IC0+ICdhLCAnYSkgcHJlY2lzaW9uXG5cbigqIFNvbWUgZm9ybWF0cywgc3VjaCBhcyAlX2YsXG4gICBvbmx5IGFjY2VwdCBhbiBvcHRpb25hbCBudW1iZXIgYXMgcHJlY2lzaW9uIG9wdGlvbiAobm8gZXh0cmEgYXJndW1lbnQpICopXG50eXBlIHByZWNfb3B0aW9uID0gaW50IG9wdGlvblxuXG4oKiBzZWUgdGhlIEN1c3RvbSBmb3JtYXQgY29tYmluYXRvciAqKVxudHlwZSAoJ2EsICdiLCAnYykgY3VzdG9tX2FyaXR5ID1cbiAgfCBDdXN0b21femVybyA6ICgnYSwgc3RyaW5nLCAnYSkgY3VzdG9tX2FyaXR5XG4gIHwgQ3VzdG9tX3N1Y2MgOiAoJ2EsICdiLCAnYykgY3VzdG9tX2FyaXR5IC0+XG4gICAgKCdhLCAneCAtPiAnYiwgJ3ggLT4gJ2MpIGN1c3RvbV9hcml0eVxuXG4oKioqKVxuXG4oKiAgICAgICAgUmVsYXRpb25hbCBmb3JtYXQgdHlwZXNcblxuSW4gdGhlIGZpcnN0IGZvcm1hdCtnYWR0cyBpbXBsZW1lbnRhdGlvbiwgdGhlIHR5cGUgZm9yICUoLi4lKSBpbiB0aGVcbmZtdCBHQURUIHdhcyBhcyBmb2xsb3dzOlxuXG58IEZvcm1hdF9zdWJzdCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICUoLi4uJSkgKilcbiAgICBwYWRfb3B0aW9uICogKCdkMSwgJ3ExLCAnZDIsICdxMikgcmVhZGVyX25iX3VuaWZpZXIgKlxuICAgICgneCwgJ2IsICdjLCAnZDEsICdxMSwgJ3UpIGZtdHR5ICpcbiAgICAoJ3UsICdiLCAnYywgJ3ExLCAnZTEsICdmKSBmbXQgLT5cbiAgICAgICgoJ3gsICdiLCAnYywgJ2QyLCAncTIsICd1KSBmb3JtYXQ2IC0+ICd4LCAnYiwgJ2MsICdkMSwgJ2UxLCAnZikgZm10XG5cbk5vdGljZSB0aGF0IHRoZSAndSBwYXJhbWV0ZXIgaW4gJ2YgcG9zaXRpb24gaW4gdGhlIGZvcm1hdCBhcmd1bWVudFxuKCgneCwgLi4sICd1KSBmb3JtYXQ2IC0+IC4uKSBpcyBlcXVhbCB0byB0aGUgJ3UgcGFyYW1ldGVyIGluICdhXG5wb3NpdGlvbiBpbiB0aGUgZm9ybWF0IHRhaWwgKCgndSwgLi4sICdmKSBmbXQpLiBUaGlzIG1lYW5zIHRoYXQgdGhlXG50eXBlIG9mIHRoZSBleHBlY3RlZCBmb3JtYXQgcGFyYW1ldGVyIGRlcGVuZHMgb2Ygd2hlcmUgdGhlICUoLi4uJSlcbmFyZSBpbiB0aGUgZm9ybWF0IHN0cmluZzpcblxuICAjIFByaW50Zi5wcmludGYgXCIlKCUpXCJcbiAgLSA6ICh1bml0LCBvdXRfY2hhbm5lbCwgdW5pdCwgJ19hLCAnX2EsIHVuaXQpXG4gICAgICBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3MuZm9ybWF0NiAtPiB1bml0XG4gID0gPGZ1bj5cbiAgIyBQcmludGYucHJpbnRmIFwiJSglKSVkXCJcbiAgLSA6IChpbnQgLT4gdW5pdCwgb3V0X2NoYW5uZWwsIHVuaXQsICdfYSwgJ19hLCBpbnQgLT4gdW5pdClcbiAgICAgIENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljcy5mb3JtYXQ2IC0+IGludCAtPiB1bml0XG4gID0gPGZ1bj5cblxuT24gdGhlIGNvbnRyYXJ5LCB0aGUgbGVnYWN5IHR5cGVyIGdpdmVzIGEgY2xldmVyIHR5cGUgdGhhdCBkb2VzIG5vdFxuZGVwZW5kIG9uIHRoZSBwb3NpdGlvbiBvZiAlKC4uJSkgaW4gdGhlIGZvcm1hdCBzdHJpbmcuIEZvciBleGFtcGxlLFxuJSglKSB3aWxsIGhhdmUgdGhlIHBvbHltb3JwaGljIHR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpOiBpdCBjYW5cbmJlIGNvbmNhdGVuYXRlZCB0byBhbnkgZm9ybWF0IHR5cGUsIGFuZCBvbmx5IGVuZm9yY2VzIHRoZSBjb25zdHJhaW50XG50aGF0IGl0cyAnYSBhbmQgJ2YgcGFyYW1ldGVycyBhcmUgZXF1YWwgKG5vIGZvcm1hdCBhcmd1bWVudHMpIGFuZCAnZFxuYW5kICdlIGFyZSBlcXVhbCAobm8gcmVhZGVyIGFyZ3VtZW50KS5cblxuVGhlIHdlYWtlbmluZyBvZiB0aGlzIHBhcmFtZXRlciB0eXBlIGluIHRoZSBHQURUIHZlcnNpb24gYnJva2UgdXNlclxuY29kZSAoaW4gZmFjdCBpdCBlc3NlbnRpYWxseSBtYWRlICUoLi4uJSkgdW51c2FibGUgZXhjZXB0IGF0IHRoZSBsYXN0XG5wb3NpdGlvbiBvZiBhIGZvcm1hdCkuIEluIHBhcnRpY3VsYXIsIHRoZSBmb2xsb3dpbmcgd291bGQgbm90IHdvcmtcbmFueW1vcmU6XG5cbiAgZnVuIHNlcCAtPlxuICAgIEZvcm1hdC5wcmludGYgXCJmb28lKCUpYmFyJSglKWJhelwiIHNlcCBzZXBcblxuQXMgdGhlIHR5cGUtY2hlY2tlciB3b3VsZCByZXF1aXJlIHR3byAqaW5jb21wYXRpYmxlKiB0eXBlcyBmb3IgdGhlICUoJSlcbmluIGRpZmZlcmVudCBwb3NpdGlvbnMuXG5cblRoZSBzb2x1dGlvbiB0byByZWdhaW4gYSBnZW5lcmFsIHR5cGUgZm9yICUoLi4lKSBpcyB0byBnZW5lcmFsaXplIHRoaXNcbnRlY2huaXF1ZSwgbm90IG9ubHkgb24gdGhlICdkLCAnZSBwYXJhbWV0ZXJzLCBidXQgb24gYWxsIHNpeFxucGFyYW1ldGVycyBvZiBhIGZvcm1hdDogd2UgaW50cm9kdWNlIGEgXCJyZWxhdGlvbmFsXCIgdHlwZVxuICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxud2hvc2UgdmFsdWVzIGFyZSBwcm9vZnMgdGhhdCAoJ2ExLCAuLiwgJ2YxKSBhbmQgKCdhMiwgLi4sICdmMikgbW9yYWxseVxuY29ycmVzcG9uZCB0byB0aGUgc2FtZSBmb3JtYXQgdHlwZTogJ2ExIGlzIG9idGFpbmVkIGZyb20gJ2YxLCdiMSwnYzFcbmluIHRoZSBleGFjdCBzYW1lIHdheSB0aGF0ICdhMiBpcyBvYnRhaW5lZCBmcm9tICdmMiwnYjIsJ2MyLCBldGMuXG5cbkZvciBleGFtcGxlLCB0aGUgcmVsYXRpb24gYmV0d2VlbiB0d28gZm9ybWF0IHR5cGVzIGJlZ2lubmluZyB3aXRoIGEgQ2hhclxucGFyYW1ldGVyIGlzIGFzIGZvbGxvd3M6XG5cbnwgQ2hhcl90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVjICAqKVxuICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAoY2hhciAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICBjaGFyIC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuXG5JbiB0aGUgZ2VuZXJhbCBjYXNlLCB0aGUgdGVybSBzdHJ1Y3R1cmUgb2YgZm10dHlfcmVsIGlzIChhbG1vc3RbMV0pXG5pc29tb3JwaGljIHRvIHRoZSBmbXR0eSBvZiB0aGUgcHJldmlvdXMgaW1wbGVtZW50YXRpb246IGV2ZXJ5XG5jb25zdHJ1Y3RvciBpcyByZS1yZWFkIHdpdGggYSBiaW5hcnksIHJlbGF0aW9uYWwgdHlwZSwgaW5zdGVhZCBvZiB0aGVcbnByZXZpb3VzIHVuYXJ5IHR5cGluZy4gZm10dHkgY2FuIHRoZW4gYmUgcmUtZGVmaW5lZCBhcyB0aGUgZGlhZ29uYWwgb2ZcbmZtdHR5X3JlbDpcblxuICB0eXBlICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXR0eSA9XG4gICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YsXG4gICAgICAgICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5X3JlbFxuXG5PbmNlIHdlIGhhdmUgdGhpcyBmbXR0eV9yZWwgdHlwZSBpbiBwbGFjZSwgd2UgY2FuIGdpdmUgdGhlIG1vcmVcbmdlbmVyYWwgdHlwZSB0byAlKC4uLiUpOlxuXG58IEZvcm1hdF9zdWJzdCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICUoLi4uJSkgKilcbiAgICBwYWRfb3B0aW9uICpcbiAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCxcbiAgICAgJ2cyLCAnYiwgJ2MsICdqMiwgJ2QsICdhKSBmbXR0eV9yZWwgKlxuICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAoKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZvcm1hdDYgLT4gJ2cyLCAnYiwgJ2MsICdqMiwgJ2UsICdmKSBmbXRcblxuV2UgYWNjZXB0IGFueSBmb3JtYXQgKCgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmb3JtYXQ2KSAodGhpcyBpc1xuY29tcGxldGVseSB1bnJlbGF0ZWQgdG8gdGhlIHR5cGUgb2YgdGhlIGN1cnJlbnQgZm9ybWF0KSwgYnV0IGFsc29cbnJlcXVpcmUgYSBwcm9vZiB0aGF0IHRoaXMgZm9ybWF0IGlzIGluIHJlbGF0aW9uIHRvIGFub3RoZXIgZm9ybWF0IHRoYXRcbmlzIGNvbmNhdGVuYWJsZSB0byB0aGUgZm9ybWF0IHRhaWwuIFdoZW4gZXhlY3V0aW5nIGEgJSguLi4lKSBmb3JtYXRcbihpbiBjYW1saW50ZXJuYWxGb3JtYXQubWw6bWFrZV9wcmludGYgb3Igc2NhbmYubWw6bWFrZV9zY2FuZiksIHdlXG50cmFuc3R5cGUgdGhlIGZvcm1hdCBhbG9uZyB0aGlzIHJlbGF0aW9uIHVzaW5nIHRoZSAncmVjYXN0JyBmdW5jdGlvblxudG8gdHJhbnNwb3NlIGJldHdlZW4gcmVsYXRlZCBmb3JtYXQgdHlwZXMuXG5cbiAgdmFsIHJlY2FzdCA6XG4gICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxKSBmbXRcbiAgLT4gKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgLT4gKCdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdFxuXG5OT1RFIFsxXTogdGhlIHR5cGluZyBvZiBGb3JtYXRfc3Vic3RfdHkgcmVxdWlyZXMgbm90IG9uZSBmb3JtYXQgdHlwZSwgYnV0XG50d28sIG9uZSB0byBlc3RhYmxpc2ggdGhlIGxpbmsgYmV0d2VlbiB0aGUgZm9ybWF0IGFyZ3VtZW50IGFuZCB0aGVcbmZpcnN0IHNpeCBwYXJhbWV0ZXJzLCBhbmQgdGhlIG90aGVyIGZvciB0aGUgbGluayBiZXR3ZWVuIHRoZSBmb3JtYXRcbmFyZ3VtZW50IGFuZCB0aGUgbGFzdCBzaXggcGFyYW1ldGVycy5cblxufCBGb3JtYXRfc3Vic3RfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJSguLi4lKSAqKVxuICAgICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsLFxuICAgICAnZzEsICdiMSwgJ2MxLCAnajEsICdkMSwgJ2ExKSBmbXR0eV9yZWwgKlxuICAgICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsLFxuICAgICAnZzIsICdiMiwgJ2MyLCAnajIsICdkMiwgJ2EyKSBmbXR0eV9yZWwgKlxuICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAoKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZvcm1hdDYgLT4gJ2cxLCAnYjEsICdjMSwgJ2oxLCAnZTEsICdmMSxcbiAgICAgKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZvcm1hdDYgLT4gJ2cyLCAnYjIsICdjMiwgJ2oyLCAnZTIsICdmMikgZm10dHlfcmVsXG5cbldoZW4gd2UgZ2VuZXJhdGUgYSBmb3JtYXQgQVNULCB3ZSBnZW5lcmF0ZSBleGFjdGx5IHRoZSBzYW1lIHdpdG5lc3NcbmZvciBib3RoIHJlbGF0aW9ucywgYW5kIHRoZSB3aXRuZXNzLWNvbnZlcnNpb24gZnVuY3Rpb25zIGluXG5jYW1saW50ZXJuYWxGb3JtYXQgZG8gcmVseSBvbiB0aGlzIGludmFyaWFudC4gRm9yIGV4YW1wbGUsIHRoZVxuZnVuY3Rpb24gdGhhdCBwcm92ZXMgdGhhdCB0aGUgcmVsYXRpb24gaXMgdHJhbnNpdGl2ZVxuXG4gIHZhbCB0cmFucyA6XG4gICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIC0+ICgnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyLFxuICAgICAgJ2EzLCAnYjMsICdjMywgJ2QzLCAnZTMsICdmMykgZm10dHlfcmVsXG4gIC0+ICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgJ2EzLCAnYjMsICdjMywgJ2QzLCAnZTMsICdmMykgZm10dHlfcmVsXG5cbmRvZXMgYXNzdW1lIHRoYXQgdGhlIHR3byBpbnB1dHMgaGF2ZSBleGFjdGx5IHRoZSBzYW1lIHRlcm0gc3RydWN0dXJlXG4oYW5kIGlzIG9ubHkgZXZlcnkgdXNlZCBmb3IgYXJndW1lbnQgd2l0bmVzc2VzIG9mIHRoZVxuRm9ybWF0X3N1YnN0X3R5IGNvbnN0cnVjdG9yKS5cbiopXG5cbigqIFR5cGUgb2YgYSBibG9jayB1c2VkIGJ5IHRoZSBGb3JtYXQgcHJldHR5LXByaW50ZXIuICopXG50eXBlIGJsb2NrX3R5cGUgPVxuICB8IFBwX2hib3ggICAoKiBIb3Jpem9udGFsIGJsb2NrIG5vIGxpbmUgYnJlYWtpbmcgKilcbiAgfCBQcF92Ym94ICAgKCogVmVydGljYWwgYmxvY2sgZWFjaCBicmVhayBsZWFkcyB0byBhIG5ldyBsaW5lICopXG4gIHwgUHBfaHZib3ggICgqIEhvcml6b250YWwtdmVydGljYWwgYmxvY2s6IHNhbWUgYXMgdmJveCwgZXhjZXB0IGlmIHRoaXMgYmxvY2tcbiAgICAgICAgICAgICAgICAgaXMgc21hbGwgZW5vdWdoIHRvIGZpdCBvbiBhIHNpbmdsZSBsaW5lICopXG4gIHwgUHBfaG92Ym94ICgqIEhvcml6b250YWwgb3IgVmVydGljYWwgYmxvY2s6IGJyZWFrcyBsZWFkIHRvIG5ldyBsaW5lXG4gICAgICAgICAgICAgICAgIG9ubHkgd2hlbiBuZWNlc3NhcnkgdG8gcHJpbnQgdGhlIGNvbnRlbnQgb2YgdGhlIGJsb2NrICopXG4gIHwgUHBfYm94ICAgICgqIEhvcml6b250YWwgb3IgSW5kZW50IGJsb2NrOiBicmVha3MgbGVhZCB0byBuZXcgbGluZVxuICAgICAgICAgICAgICAgICBvbmx5IHdoZW4gbmVjZXNzYXJ5IHRvIHByaW50IHRoZSBjb250ZW50IG9mIHRoZSBibG9jaywgb3JcbiAgICAgICAgICAgICAgICAgd2hlbiBpdCBsZWFkcyB0byBhIG5ldyBpbmRlbnRhdGlvbiBvZiB0aGUgY3VycmVudCBsaW5lICopXG4gIHwgUHBfZml0cyAgICgqIEludGVybmFsIHVzYWdlOiB3aGVuIGEgYmxvY2sgZml0cyBvbiBhIHNpbmdsZSBsaW5lICopXG5cbigqIEZvcm1hdHRpbmcgZWxlbWVudCB1c2VkIGJ5IHRoZSBGb3JtYXQgcHJldHR5LXByaW50ZXIuICopXG50eXBlIGZvcm1hdHRpbmdfbGl0ID1cbiAgfCBDbG9zZV9ib3ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQF0gICAqKVxuICB8IENsb3NlX3RhZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBAfSAgICopXG4gIHwgQnJlYWsgb2Ygc3RyaW5nICogaW50ICogaW50ICAgICAgICAgICgqIEAsIHwgQCAgfCBAOyB8IEA7PD4gKilcbiAgfCBGRmx1c2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQD8gICAqKVxuICB8IEZvcmNlX25ld2xpbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBAXFxuICAqKVxuICB8IEZsdXNoX25ld2xpbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBALiAgICopXG4gIHwgTWFnaWNfc2l6ZSBvZiBzdHJpbmcgKiBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEA8bj4gKilcbiAgfCBFc2NhcGVkX2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQEAgICAqKVxuICB8IEVzY2FwZWRfcGVyY2VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBAJSUgICopXG4gIHwgU2Nhbl9pbmRpYyBvZiBjaGFyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEBYICAgKilcblxuKCogRm9ybWF0dGluZyBlbGVtZW50IHVzZWQgYnkgdGhlIEZvcm1hdCBwcmV0dHktcHJpbnRlci4gKilcbnR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdHRpbmdfZ2VuID1cbiAgfCBPcGVuX3RhZyA6ICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2IC0+ICAgICAgKCogQHsgICAqKVxuICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXR0aW5nX2dlblxuICB8IE9wZW5fYm94IDogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgLT4gICAgICAoKiBAWyAgICopXG4gICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdHRpbmdfZ2VuXG5cbigqKiopXG5cbigqIExpc3Qgb2YgZm9ybWF0IHR5cGUgZWxlbWVudHMuICopXG4oKiBJbiBwYXJ0aWN1bGFyIHVzZWQgdG8gcmVwcmVzZW50ICUoLi4uJSkgYW5kICV7Li4uJX0gY29udGVudHMuICopXG5hbmQgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5ID1cbiAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YsXG4gICAgICAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXR0eV9yZWxcbmFuZCAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsID1cbiAgfCBDaGFyX3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJWMgICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgIChjaGFyIC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgY2hhciAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgfCBTdHJpbmdfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJXMgICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgIChzdHJpbmcgLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICBzdHJpbmcgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIHwgSW50X3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVkICAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoaW50IC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgaW50IC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICB8IEludDMyX3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlbGQgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKGludDMyIC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgaW50MzIgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIHwgTmF0aXZlaW50X3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVuZCAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAobmF0aXZlaW50IC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgbmF0aXZlaW50IC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICB8IEludDY0X3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlTGQgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKGludDY0IC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgaW50NjQgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIHwgRmxvYXRfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVmICAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoZmxvYXQgLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICBmbG9hdCAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgfCBCb29sX3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJUIgICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgIChib29sIC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgYm9vbCAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcblxuICB8IEZvcm1hdF9hcmdfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAley4uLiV9ICopXG4gICAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm10dHkgKlxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZvcm1hdDYgLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm9ybWF0NiAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKVxuICAgICAgICAgICBmbXR0eV9yZWxcbiAgfCBGb3JtYXRfc3Vic3RfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJSguLi4lKSAqKVxuICAgICAgKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wsXG4gICAgICAgJ2cxLCAnYjEsICdjMSwgJ2oxLCAnZDEsICdhMSkgZm10dHlfcmVsICpcbiAgICAgICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsLFxuICAgICAgICdnMiwgJ2IyLCAnYzIsICdqMiwgJ2QyLCAnYTIpIGZtdHR5X3JlbCAqXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgICgoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm9ybWF0NiAtPiAnZzEsICdiMSwgJ2MxLCAnajEsICdlMSwgJ2YxLFxuICAgICAgICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmb3JtYXQ2IC0+ICdnMiwgJ2IyLCAnYzIsICdqMiwgJ2UyLCAnZjIpXG4gICAgICAgICAgIGZtdHR5X3JlbFxuXG4gICgqIFByaW50ZiBhbmQgRm9ybWF0IHNwZWNpZmljIGNvbnN0cnVjdG9ycy4gKilcbiAgfCBBbHBoYV90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJWEgICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgICgoJ2IxIC0+ICd4IC0+ICdjMSkgLT4gJ3ggLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAoJ2IyIC0+ICd4IC0+ICdjMikgLT4gJ3ggLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIHwgVGhldGFfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICV0ICAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoKCdiMSAtPiAnYzEpIC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgKCdiMiAtPiAnYzIpIC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICB8IEFueV90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogVXNlZCBmb3IgY3VzdG9tIGZvcm1hdHMgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKCd4IC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ3ggLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG5cbiAgKCogU2NhbmYgc3BlY2lmaWMgY29uc3RydWN0b3IuICopXG4gIHwgUmVhZGVyX3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVyICAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoJ3ggLT4gJ2ExLCAnYjEsICdjMSwgKCdiMSAtPiAneCkgLT4gJ2QxLCAnZTEsICdmMSxcbiAgICAgICAneCAtPiAnYTIsICdiMiwgJ2MyLCAoJ2IyIC0+ICd4KSAtPiAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgfCBJZ25vcmVkX3JlYWRlcl90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9yICAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoJ2ExLCAnYjEsICdjMSwgKCdiMSAtPiAneCkgLT4gJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAoJ2IyIC0+ICd4KSAtPiAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcblxuICB8IEVuZF9vZl9mbXR0eSA6XG4gICAgICAoJ2YxLCAnYjEsICdjMSwgJ2QxLCAnZDEsICdmMSxcbiAgICAgICAnZjIsICdiMiwgJ2MyLCAnZDIsICdkMiwgJ2YyKSBmbXR0eV9yZWxcblxuKCoqKilcblxuKCogTGlzdCBvZiBmb3JtYXQgZWxlbWVudHMuICopXG5hbmQgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCA9XG4gIHwgQ2hhciA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJWMgKilcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKGNoYXIgLT4gJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgQ2FtbF9jaGFyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJUMgKilcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKGNoYXIgLT4gJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgU3RyaW5nIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJXMgKilcbiAgICAgICgneCwgc3RyaW5nIC0+ICdhKSBwYWRkaW5nICogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ3gsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgQ2FtbF9zdHJpbmcgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJVMgKilcbiAgICAgICgneCwgc3RyaW5nIC0+ICdhKSBwYWRkaW5nICogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ3gsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgSW50IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJVtkaXhYdW9dICopXG4gICAgICBpbnRfY29udiAqICgneCwgJ3kpIHBhZGRpbmcgKiAoJ3ksIGludCAtPiAnYSkgcHJlY2lzaW9uICpcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCd4LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IEludDMyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVsW2RpeFh1b10gKilcbiAgICAgIGludF9jb252ICogKCd4LCAneSkgcGFkZGluZyAqICgneSwgaW50MzIgLT4gJ2EpIHByZWNpc2lvbiAqXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBOYXRpdmVpbnQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlbltkaXhYdW9dICopXG4gICAgICBpbnRfY29udiAqICgneCwgJ3kpIHBhZGRpbmcgKiAoJ3ksIG5hdGl2ZWludCAtPiAnYSkgcHJlY2lzaW9uICpcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCd4LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IEludDY0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVMW2RpeFh1b10gKilcbiAgICAgIGludF9jb252ICogKCd4LCAneSkgcGFkZGluZyAqICgneSwgaW50NjQgLT4gJ2EpIHByZWNpc2lvbiAqXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBGbG9hdCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlW2ZlRWdHRmhIXSAqKVxuICAgICAgZmxvYXRfY29udiAqICgneCwgJ3kpIHBhZGRpbmcgKiAoJ3ksIGZsb2F0IC0+ICdhKSBwcmVjaXNpb24gKlxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ3gsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgQm9vbCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJVtiQl0gKilcbiAgICAgICgneCwgYm9vbCAtPiAnYSkgcGFkZGluZyAqICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCd4LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IEZsdXNoIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICUhICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcblxuICB8IFN0cmluZ19saXRlcmFsIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIGFiYyAqKVxuICAgICAgc3RyaW5nICogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgQ2hhcl9saXRlcmFsIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogeCAqKVxuICAgICAgY2hhciAqICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuXG4gIHwgRm9ybWF0X2FyZyA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJXsuLi4lfSAqKVxuICAgICAgcGFkX29wdGlvbiAqICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmbXR0eSAqXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm9ybWF0NiAtPiAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBGb3JtYXRfc3Vic3QgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlKC4uLiUpICopXG4gICAgICBwYWRfb3B0aW9uICpcbiAgICAgICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsLFxuICAgICAgICdnMiwgJ2IsICdjLCAnajIsICdkLCAnYSkgZm10dHlfcmVsICpcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICgoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm9ybWF0NiAtPiAnZzIsICdiLCAnYywgJ2oyLCAnZSwgJ2YpIGZtdFxuXG4gICgqIFByaW50ZiBhbmQgRm9ybWF0IHNwZWNpZmljIGNvbnN0cnVjdG9yLiAqKVxuICB8IEFscGhhIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVhICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgoJ2IgLT4gJ3ggLT4gJ2MpIC0+ICd4IC0+ICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IFRoZXRhIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICV0ICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgoJ2IgLT4gJ2MpIC0+ICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuXG4gICgqIEZvcm1hdCBzcGVjaWZpYyBjb25zdHJ1Y3RvcjogKilcbiAgfCBGb3JtYXR0aW5nX2xpdCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBAXyAqKVxuICAgICAgZm9ybWF0dGluZ19saXQgKiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBGb3JtYXR0aW5nX2dlbiA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQF8gKilcbiAgICAgICgnYTEsICdiLCAnYywgJ2QxLCAnZTEsICdmMSkgZm9ybWF0dGluZ19nZW4gKlxuICAgICAgKCdmMSwgJ2IsICdjLCAnZTEsICdlMiwgJ2YyKSBmbXQgLT4gKCdhMSwgJ2IsICdjLCAnZDEsICdlMiwgJ2YyKSBmbXRcblxuICAoKiBTY2FuZiBzcGVjaWZpYyBjb25zdHJ1Y3RvcnM6ICopXG4gIHwgUmVhZGVyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJXIgKilcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCd4IC0+ICdhLCAnYiwgJ2MsICgnYiAtPiAneCkgLT4gJ2QsICdlLCAnZikgZm10XG4gIHwgU2Nhbl9jaGFyX3NldCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJVsuLi5dICopXG4gICAgICBwYWRfb3B0aW9uICogY2hhcl9zZXQgKiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgIChzdHJpbmcgLT4gJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgU2Nhbl9nZXRfY291bnRlciA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJVtubE5MXSAqKVxuICAgICAgY291bnRlciAqICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKGludCAtPiAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBTY2FuX25leHRfY2hhciA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlMGMgKilcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgIChjaGFyIC0+ICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IElnbm9yZWRfcGFyYW0gOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICd5LCAneCkgaWdub3JlZCAqICgneCwgJ2IsICdjLCAneSwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuXG4gICgqIEN1c3RvbSBwcmludGluZyBmb3JtYXQgKFBSIzY0NTIsIEdQUiMxNDApXG5cbiAgICAgV2UgaW5jbHVkZSBhIHR5cGUgQ3VzdG9tIG9mIFwiY3VzdG9tIGNvbnZlcnRlcnNcIiwgd2hlcmUgYW5cbiAgICAgYXJiaXRyYXJ5IGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIGNvbnZlcnQgb25lIG9yIG1vcmVcbiAgICAgYXJndW1lbnRzLiBUaGVyZSBpcyBubyBzeW50YXggZm9yIGN1c3RvbSBjb252ZXJ0ZXJzLCBpdCBpcyBvbmx5XG4gICAgIGludGVuZGVkIGZvciBjdXN0b20gcHJvY2Vzc29ycyB0aGF0IHdpc2ggdG8gcmVseSBvbiB0aGVcbiAgICAgc3RkbGliLWRlZmluZWQgZm9ybWF0IEdBRFRzLlxuXG4gICAgIEZvciBpbnN0YW5jZSBhIHByZS1wcm9jZXNzb3IgY291bGQgY2hvb3NlIHRvIGludGVycHJldCBzdHJpbmdzXG4gICAgIHByZWZpeGVkIHdpdGggW1wiIVwiXSBhcyBmb3JtYXQgc3RyaW5ncyB3aGVyZSBbJXt7IC4uLiB9fV0gaXNcbiAgICAgYSBzcGVjaWFsIGZvcm0gdG8gcGFzcyBhIHRvX3N0cmluZyBmdW5jdGlvbiwgc28gdGhhdCBvbmUgY291bGRcbiAgICAgd3JpdGU6XG5cbiAgICAge1tcbiAgICAgICB0eXBlIHQgPSB7IHggOiBpbnQ7IHkgOiBpbnQgfVxuXG4gICAgICAgbGV0IHN0cmluZ19vZl90IHQgPSBQcmludGYuc3ByaW50ZiBcInsgeCA9ICVkOyB5ID0gJWQgfVwiIHQueCB0LnlcblxuICAgICAgIFByaW50Zi5wcmludGYgIVwidCA9ICV7e3N0cmluZ19vZl90fX1cIiB7IHggPSA0MjsgeSA9IDQyIH1cbiAgICAgXX1cbiAgKilcbiAgfCBDdXN0b20gOlxuICAgICAgKCdhLCAneCwgJ3kpIGN1c3RvbV9hcml0eSAqICh1bml0IC0+ICd4KSAqICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICgneSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcblxuICAoKiBlbmQgb2YgYSBmb3JtYXQgc3BlY2lmaWNhdGlvbiAqKVxuICB8IEVuZF9vZl9mb3JtYXQgOlxuICAgICAgICAoJ2YsICdiLCAnYywgJ2UsICdlLCAnZikgZm10XG5cbigqKiopXG5cbigqIFR5cGUgZm9yIGlnbm9yZWQgcGFyYW1ldGVycyAoc2VlIFwiJV9cIikuICopXG5hbmQgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGlnbm9yZWQgPVxuICB8IElnbm9yZWRfY2hhciA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfYyAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX2NhbWxfY2hhciA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX0MgKilcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9zdHJpbmcgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9zICopXG4gICAgICBwYWRfb3B0aW9uIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9jYW1sX3N0cmluZyA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9TICopXG4gICAgICBwYWRfb3B0aW9uIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9pbnQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9kICopXG4gICAgICBpbnRfY29udiAqIHBhZF9vcHRpb24gLT4gKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX2ludDMyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX2xkICopXG4gICAgICBpbnRfY29udiAqIHBhZF9vcHRpb24gLT4gKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX25hdGl2ZWludCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX25kICopXG4gICAgICBpbnRfY29udiAqIHBhZF9vcHRpb24gLT4gKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX2ludDY0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX0xkICopXG4gICAgICBpbnRfY29udiAqIHBhZF9vcHRpb24gLT4gKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX2Zsb2F0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX2YgKilcbiAgICAgIHBhZF9vcHRpb24gKiBwcmVjX29wdGlvbiAtPiAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfYm9vbCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfQiAqKVxuICAgICAgcGFkX29wdGlvbiAtPiAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfZm9ybWF0X2FyZyA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfey4uLiV9ICopXG4gICAgICBwYWRfb3B0aW9uICogKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZtdHR5IC0+XG4gICAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9mb3JtYXRfc3Vic3QgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV8oLi4uJSkgKilcbiAgICAgIHBhZF9vcHRpb24gKiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10dHkgLT5cbiAgICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX3JlYWRlciA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX3IgKilcbiAgICAgICgnYSwgJ2IsICdjLCAoJ2IgLT4gJ3gpIC0+ICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX3NjYW5fY2hhcl9zZXQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX1suLi5dICopXG4gICAgICBwYWRfb3B0aW9uICogY2hhcl9zZXQgLT4gKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX3NjYW5fZ2V0X2NvdW50ZXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX1tubE5MXSAqKVxuICAgICAgY291bnRlciAtPiAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfc2Nhbl9uZXh0X2NoYXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfMGMgKilcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG5cbmFuZCAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiA9XG4gIEZvcm1hdCBvZiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10ICogc3RyaW5nXG5cbmxldCByZWMgZXJhc2VfcmVsIDogdHlwZSBhIGIgYyBkIGUgZiBnIGggaSBqIGsgbCAuXG4gIChhLCBiLCBjLCBkLCBlLCBmLFxuICAgZywgaCwgaSwgaiwgaywgbCkgZm10dHlfcmVsIC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eVxuPSBmdW5jdGlvblxuICB8IENoYXJfdHkgcmVzdCAtPlxuICAgIENoYXJfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IFN0cmluZ190eSByZXN0IC0+XG4gICAgU3RyaW5nX3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBJbnRfdHkgcmVzdCAtPlxuICAgIEludF90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgSW50MzJfdHkgcmVzdCAtPlxuICAgIEludDMyX3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBJbnQ2NF90eSByZXN0IC0+XG4gICAgSW50NjRfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IE5hdGl2ZWludF90eSByZXN0IC0+XG4gICAgTmF0aXZlaW50X3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBGbG9hdF90eSByZXN0IC0+XG4gICAgRmxvYXRfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IEJvb2xfdHkgcmVzdCAtPlxuICAgIEJvb2xfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IEZvcm1hdF9hcmdfdHkgKHR5LCByZXN0KSAtPlxuICAgIEZvcm1hdF9hcmdfdHkgKHR5LCBlcmFzZV9yZWwgcmVzdClcbiAgfCBGb3JtYXRfc3Vic3RfdHkgKHR5MSwgX3R5MiwgcmVzdCkgLT5cbiAgICBGb3JtYXRfc3Vic3RfdHkgKHR5MSwgdHkxLCBlcmFzZV9yZWwgcmVzdClcbiAgfCBBbHBoYV90eSByZXN0IC0+XG4gICAgQWxwaGFfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IFRoZXRhX3R5IHJlc3QgLT5cbiAgICBUaGV0YV90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgQW55X3R5IHJlc3QgLT5cbiAgICBBbnlfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IFJlYWRlcl90eSByZXN0IC0+XG4gICAgUmVhZGVyX3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBJZ25vcmVkX3JlYWRlcl90eSByZXN0IC0+XG4gICAgSWdub3JlZF9yZWFkZXJfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IEVuZF9vZl9mbXR0eSAtPiBFbmRfb2ZfZm10dHlcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAoKiBGb3JtYXQgdHlwZSBjb25jYXRlbmF0aW9uICopXG5cbigqIENvbmNhdGVuYXRlIHR3byBmb3JtYXQgdHlwZXMuICopXG4oKiBVc2VkIGJ5OlxuICAgKiByZWFkZXJfbmJfdW5pZmllcl9vZl9mbXR0eSB0byBjb3VudCByZWFkZXJzIGluIGFuIGZtdHR5LFxuICAgKiBTY2FuZi50YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIHRvIGV4dHJhY3QgcmVhZGVycyBpbnNpZGUgJSguLi4lKSxcbiAgICogQ2FtbGludGVybmFsRm9ybWF0LmZtdHR5X29mX2lnbm9yZWRfZm9ybWF0IHRvIGV4dHJhY3QgZm9ybWF0IHR5cGUuICopXG5cbigqXG5sZXQgcmVjIGNvbmNhdF9mbXR0eSA6IHR5cGUgYSBiIGMgZCBlIGYgZyBoIC5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10dHkgLT5cbiAgICAoZiwgYiwgYywgZSwgZywgaCkgZm10dHkgLT5cbiAgICAoYSwgYiwgYywgZCwgZywgaCkgZm10dHkgPVxuKilcbmxldCByZWMgY29uY2F0X2ZtdHR5IDpcbiAgdHlwZSBhMSBiMSBjMSBkMSBlMSBmMVxuICAgICAgIGEyIGIyIGMyIGQyIGUyIGYyXG4gICAgICAgZzEgajEgZzIgajJcbiAgLlxuICAgIChnMSwgYjEsIGMxLCBqMSwgZDEsIGExLFxuICAgICBnMiwgYjIsIGMyLCBqMiwgZDIsIGEyKSBmbXR0eV9yZWwgLT5cbiAgICAoYTEsIGIxLCBjMSwgZDEsIGUxLCBmMSxcbiAgICAgYTIsIGIyLCBjMiwgZDIsIGUyLCBmMikgZm10dHlfcmVsIC0+XG4gICAgKGcxLCBiMSwgYzEsIGoxLCBlMSwgZjEsXG4gICAgIGcyLCBiMiwgYzIsIGoyLCBlMiwgZjIpIGZtdHR5X3JlbCA9XG5mdW4gZm10dHkxIGZtdHR5MiAtPiBtYXRjaCBmbXR0eTEgd2l0aFxuICB8IENoYXJfdHkgcmVzdCAtPlxuICAgIENoYXJfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBTdHJpbmdfdHkgcmVzdCAtPlxuICAgIFN0cmluZ190eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEludF90eSByZXN0IC0+XG4gICAgSW50X3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgSW50MzJfdHkgcmVzdCAtPlxuICAgIEludDMyX3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgTmF0aXZlaW50X3R5IHJlc3QgLT5cbiAgICBOYXRpdmVpbnRfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBJbnQ2NF90eSByZXN0IC0+XG4gICAgSW50NjRfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBGbG9hdF90eSByZXN0IC0+XG4gICAgRmxvYXRfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBCb29sX3R5IHJlc3QgLT5cbiAgICBCb29sX3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgQWxwaGFfdHkgcmVzdCAtPlxuICAgIEFscGhhX3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgVGhldGFfdHkgcmVzdCAtPlxuICAgIFRoZXRhX3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgQW55X3R5IHJlc3QgLT5cbiAgICBBbnlfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBSZWFkZXJfdHkgcmVzdCAtPlxuICAgIFJlYWRlcl90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IElnbm9yZWRfcmVhZGVyX3R5IHJlc3QgLT5cbiAgICBJZ25vcmVkX3JlYWRlcl90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEZvcm1hdF9hcmdfdHkgKHR5LCByZXN0KSAtPlxuICAgIEZvcm1hdF9hcmdfdHkgKHR5LCBjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgRm9ybWF0X3N1YnN0X3R5ICh0eTEsIHR5MiwgcmVzdCkgLT5cbiAgICBGb3JtYXRfc3Vic3RfdHkgKHR5MSwgdHkyLCBjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgRW5kX29mX2ZtdHR5IC0+IGZtdHR5MlxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogRm9ybWF0IGNvbmNhdGVuYXRpb24gKilcblxuKCogQ29uY2F0ZW5hdGUgdHdvIGZvcm1hdHMuICopXG5sZXQgcmVjIGNvbmNhdF9mbXQgOiB0eXBlIGEgYiBjIGQgZSBmIGcgaCAuXG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPlxuICAgIChmLCBiLCBjLCBlLCBnLCBoKSBmbXQgLT5cbiAgICAoYSwgYiwgYywgZCwgZywgaCkgZm10ID1cbmZ1biBmbXQxIGZtdDIgLT4gbWF0Y2ggZm10MSB3aXRoXG4gIHwgU3RyaW5nIChwYWQsIHJlc3QpIC0+XG4gICAgU3RyaW5nIChwYWQsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IENhbWxfc3RyaW5nIChwYWQsIHJlc3QpIC0+XG4gICAgQ2FtbF9zdHJpbmcgKHBhZCwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG5cbiAgfCBJbnQgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgSW50IChpY29udiwgcGFkLCBwcmVjLCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBJbnQzMiAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBJbnQzMiAoaWNvbnYsIHBhZCwgcHJlYywgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgTmF0aXZlaW50IChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIE5hdGl2ZWludCAoaWNvbnYsIHBhZCwgcHJlYywgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgSW50NjQgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgSW50NjQgKGljb252LCBwYWQsIHByZWMsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IEZsb2F0IChmY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIEZsb2F0IChmY29udiwgcGFkLCBwcmVjLCBjb25jYXRfZm10IHJlc3QgZm10MilcblxuICB8IENoYXIgKHJlc3QpIC0+XG4gICAgQ2hhciAoY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgQ2FtbF9jaGFyIHJlc3QgLT5cbiAgICBDYW1sX2NoYXIgKGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IEJvb2wgKHBhZCwgcmVzdCkgLT5cbiAgICBCb29sIChwYWQsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IEFscGhhIHJlc3QgLT5cbiAgICBBbHBoYSAoY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgVGhldGEgcmVzdCAtPlxuICAgIFRoZXRhIChjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBDdXN0b20gKGFyaXR5LCBmLCByZXN0KSAtPlxuICAgIEN1c3RvbSAoYXJpdHksIGYsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IFJlYWRlciByZXN0IC0+XG4gICAgUmVhZGVyIChjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBGbHVzaCByZXN0IC0+XG4gICAgRmx1c2ggKGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuXG4gIHwgU3RyaW5nX2xpdGVyYWwgKHN0ciwgcmVzdCkgLT5cbiAgICBTdHJpbmdfbGl0ZXJhbCAoc3RyLCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBDaGFyX2xpdGVyYWwgKGNociwgcmVzdCkgLT5cbiAgICBDaGFyX2xpdGVyYWwgICAoY2hyLCBjb25jYXRfZm10IHJlc3QgZm10MilcblxuICB8IEZvcm1hdF9hcmcgKHBhZCwgZm10dHksIHJlc3QpIC0+XG4gICAgRm9ybWF0X2FyZyAgIChwYWQsIGZtdHR5LCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBGb3JtYXRfc3Vic3QgKHBhZCwgZm10dHksIHJlc3QpIC0+XG4gICAgRm9ybWF0X3N1YnN0IChwYWQsIGZtdHR5LCBjb25jYXRfZm10IHJlc3QgZm10MilcblxuICB8IFNjYW5fY2hhcl9zZXQgKHdpZHRoX29wdCwgY2hhcl9zZXQsIHJlc3QpIC0+XG4gICAgU2Nhbl9jaGFyX3NldCAod2lkdGhfb3B0LCBjaGFyX3NldCwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgU2Nhbl9nZXRfY291bnRlciAoY291bnRlciwgcmVzdCkgLT5cbiAgICBTY2FuX2dldF9jb3VudGVyIChjb3VudGVyLCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBTY2FuX25leHRfY2hhciAocmVzdCkgLT5cbiAgICBTY2FuX25leHRfY2hhciAoY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgSWdub3JlZF9wYXJhbSAoaWduLCByZXN0KSAtPlxuICAgIElnbm9yZWRfcGFyYW0gKGlnbiwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG5cbiAgfCBGb3JtYXR0aW5nX2xpdCAoZm10aW5nX2xpdCwgcmVzdCkgLT5cbiAgICBGb3JtYXR0aW5nX2xpdCAoZm10aW5nX2xpdCwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgRm9ybWF0dGluZ19nZW4gKGZtdGluZ19nZW4sIHJlc3QpIC0+XG4gICAgRm9ybWF0dGluZ19nZW4gKGZtdGluZ19nZW4sIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuXG4gIHwgRW5kX29mX2Zvcm1hdCAtPlxuICAgIGZtdDJcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIEdhYnJpZWwgU2NoZXJlciwgcHJvamV0IFBhcnRvdXQsIElOUklBIFBhcmlzLVNhY2xheSAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMjAgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogQ2FtbGludGVybmFsQXRvbWljIGlzIGEgZGVwZW5kZW5jeSBvZiBTdGRsaWIsIHNvIGl0IGlzIGNvbXBpbGVkIHdpdGhcbiAgIC1ub3BlcnZhc2l2ZXMuICopXG5leHRlcm5hbCAoID09ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZXFcIlxuZXh0ZXJuYWwgKCArICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFkZGludFwiXG5leHRlcm5hbCBpZ25vcmUgOiAnYSAtPiB1bml0ID0gXCIlaWdub3JlXCJcblxuKCogV2UgYXJlIG5vdCByZXVzaW5nICgnYSByZWYpIGRpcmVjdGx5IHRvIG1ha2UgaXQgZWFzaWVyIHRvIHJlYXNvblxuICAgYWJvdXQgYXRvbWljaXR5IGlmIHdlIHdpc2ggdG86IGV2ZW4gaW4gYSBzZXF1ZW50aWFsIGltcGxlbWVudGF0aW9uLFxuICAgc2lnbmFscyBhbmQgb3RoZXIgYXN5bmNocm9ub3VzIGNhbGxiYWNrcyBtaWdodCBicmVhayBhdG9taWNpdHkuICopXG50eXBlICdhIHQgPSB7bXV0YWJsZSB2OiAnYX1cblxubGV0IG1ha2UgdiA9IHt2fVxubGV0IGdldCByID0gci52XG5sZXQgc2V0IHIgdiA9IHIudiA8LSB2XG5cbigqIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIGFyZSBzZXQgdG8gbmV2ZXIgYmUgaW5saW5lZDogRmxhbWJkYSBpc1xuICAgYWxsb3dlZCB0byBtb3ZlIHN1cnJvdW5kaW5nIGNvZGUgaW5zaWRlIHRoZSBjcml0aWNhbCBzZWN0aW9uLFxuICAgaW5jbHVkaW5nIGFsbG9jYXRpb25zLiAqKVxuXG5sZXRbQGlubGluZSBuZXZlcl0gZXhjaGFuZ2UgciB2ID1cbiAgKCogQkVHSU4gQVRPTUlDICopXG4gIGxldCBjdXIgPSByLnYgaW5cbiAgci52IDwtIHY7XG4gICgqIEVORCBBVE9NSUMgKilcbiAgY3VyXG5cbmxldFtAaW5saW5lIG5ldmVyXSBjb21wYXJlX2FuZF9zZXQgciBzZWVuIHYgPVxuICAoKiBCRUdJTiBBVE9NSUMgKilcbiAgbGV0IGN1ciA9IHIudiBpblxuICBpZiBjdXIgPT0gc2VlbiB0aGVuIChcbiAgICByLnYgPC0gdjtcbiAgICAoKiBFTkQgQVRPTUlDICopXG4gICAgdHJ1ZVxuICApIGVsc2VcbiAgICBmYWxzZVxuXG5sZXRbQGlubGluZSBuZXZlcl0gZmV0Y2hfYW5kX2FkZCByIG4gPVxuICAoKiBCRUdJTiBBVE9NSUMgKilcbiAgbGV0IGN1ciA9IHIudiBpblxuICByLnYgPC0gKGN1ciArIG4pO1xuICAoKiBFTkQgQVRPTUlDICopXG4gIGN1clxuXG5sZXQgaW5jciByID0gaWdub3JlIChmZXRjaF9hbmRfYWRkIHIgMSlcbmxldCBkZWNyIHIgPSBpZ25vcmUgKGZldGNoX2FuZF9hZGQgciAoLTEpKVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBFeGNlcHRpb25zICopXG5cbmV4dGVybmFsIHJlZ2lzdGVyX25hbWVkX3ZhbHVlIDogc3RyaW5nIC0+ICdhIC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX3JlZ2lzdGVyX25hbWVkX3ZhbHVlXCJcblxubGV0ICgpID1cbiAgKCogZm9yIHJ1bnRpbWUvZmFpbF9uYXQuYyAqKVxuICByZWdpc3Rlcl9uYW1lZF92YWx1ZSBcIlBlcnZhc2l2ZXMuYXJyYXlfYm91bmRfZXJyb3JcIlxuICAgIChJbnZhbGlkX2FyZ3VtZW50IFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiKVxuXG5leHRlcm5hbCByYWlzZSA6IGV4biAtPiAnYSA9IFwiJXJhaXNlXCJcbmV4dGVybmFsIHJhaXNlX25vdHJhY2UgOiBleG4gLT4gJ2EgPSBcIiVyYWlzZV9ub3RyYWNlXCJcblxubGV0IGZhaWx3aXRoIHMgPSByYWlzZShGYWlsdXJlIHMpXG5sZXQgaW52YWxpZF9hcmcgcyA9IHJhaXNlKEludmFsaWRfYXJndW1lbnQgcylcblxuZXhjZXB0aW9uIEV4aXRcbmV4Y2VwdGlvbiBNYXRjaF9mYWlsdXJlID0gTWF0Y2hfZmFpbHVyZVxuZXhjZXB0aW9uIEFzc2VydF9mYWlsdXJlID0gQXNzZXJ0X2ZhaWx1cmVcbmV4Y2VwdGlvbiBJbnZhbGlkX2FyZ3VtZW50ID0gSW52YWxpZF9hcmd1bWVudFxuZXhjZXB0aW9uIEZhaWx1cmUgPSBGYWlsdXJlXG5leGNlcHRpb24gTm90X2ZvdW5kID0gTm90X2ZvdW5kXG5leGNlcHRpb24gT3V0X29mX21lbW9yeSA9IE91dF9vZl9tZW1vcnlcbmV4Y2VwdGlvbiBTdGFja19vdmVyZmxvdyA9IFN0YWNrX292ZXJmbG93XG5leGNlcHRpb24gU3lzX2Vycm9yID0gU3lzX2Vycm9yXG5leGNlcHRpb24gRW5kX29mX2ZpbGUgPSBFbmRfb2ZfZmlsZVxuZXhjZXB0aW9uIERpdmlzaW9uX2J5X3plcm8gPSBEaXZpc2lvbl9ieV96ZXJvXG5leGNlcHRpb24gU3lzX2Jsb2NrZWRfaW8gPSBTeXNfYmxvY2tlZF9pb1xuZXhjZXB0aW9uIFVuZGVmaW5lZF9yZWN1cnNpdmVfbW9kdWxlID0gVW5kZWZpbmVkX3JlY3Vyc2l2ZV9tb2R1bGVcblxuKCogQ29tcG9zaXRpb24gb3BlcmF0b3JzICopXG5cbmV4dGVybmFsICggfD4gKSA6ICdhIC0+ICgnYSAtPiAnYikgLT4gJ2IgPSBcIiVyZXZhcHBseVwiXG5leHRlcm5hbCAoIEBAICkgOiAoJ2EgLT4gJ2IpIC0+ICdhIC0+ICdiID0gXCIlYXBwbHlcIlxuXG4oKiBEZWJ1Z2dpbmcgKilcblxuZXh0ZXJuYWwgX19MT0NfXyA6IHN0cmluZyA9IFwiJWxvY19MT0NcIlxuZXh0ZXJuYWwgX19GSUxFX18gOiBzdHJpbmcgPSBcIiVsb2NfRklMRVwiXG5leHRlcm5hbCBfX0xJTkVfXyA6IGludCA9IFwiJWxvY19MSU5FXCJcbmV4dGVybmFsIF9fTU9EVUxFX18gOiBzdHJpbmcgPSBcIiVsb2NfTU9EVUxFXCJcbmV4dGVybmFsIF9fUE9TX18gOiBzdHJpbmcgKiBpbnQgKiBpbnQgKiBpbnQgPSBcIiVsb2NfUE9TXCJcbmV4dGVybmFsIF9fRlVOQ1RJT05fXyA6IHN0cmluZyA9IFwiJWxvY19GVU5DVElPTlwiXG5cbmV4dGVybmFsIF9fTE9DX09GX18gOiAnYSAtPiBzdHJpbmcgKiAnYSA9IFwiJWxvY19MT0NcIlxuZXh0ZXJuYWwgX19MSU5FX09GX18gOiAnYSAtPiBpbnQgKiAnYSA9IFwiJWxvY19MSU5FXCJcbmV4dGVybmFsIF9fUE9TX09GX18gOiAnYSAtPiAoc3RyaW5nICogaW50ICogaW50ICogaW50KSAqICdhID0gXCIlbG9jX1BPU1wiXG5cbigqIENvbXBhcmlzb25zICopXG5cbmV4dGVybmFsICggPSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWVxdWFsXCJcbmV4dGVybmFsICggPD4gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVub3RlcXVhbFwiXG5leHRlcm5hbCAoIDwgKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVsZXNzdGhhblwiXG5leHRlcm5hbCAoID4gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVncmVhdGVydGhhblwiXG5leHRlcm5hbCAoIDw9ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlbGVzc2VxdWFsXCJcbmV4dGVybmFsICggPj0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVncmVhdGVyZXF1YWxcIlxuZXh0ZXJuYWwgY29tcGFyZSA6ICdhIC0+ICdhIC0+IGludCA9IFwiJWNvbXBhcmVcIlxuXG5sZXQgbWluIHggeSA9IGlmIHggPD0geSB0aGVuIHggZWxzZSB5XG5sZXQgbWF4IHggeSA9IGlmIHggPj0geSB0aGVuIHggZWxzZSB5XG5cbmV4dGVybmFsICggPT0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVlcVwiXG5leHRlcm5hbCAoICE9ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlbm90ZXFcIlxuXG4oKiBCb29sZWFuIG9wZXJhdGlvbnMgKilcblxuZXh0ZXJuYWwgbm90IDogYm9vbCAtPiBib29sID0gXCIlYm9vbG5vdFwiXG5leHRlcm5hbCAoICYgKSA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gXCIlc2VxdWFuZFwiXG5leHRlcm5hbCAoICYmICkgOiBib29sIC0+IGJvb2wgLT4gYm9vbCA9IFwiJXNlcXVhbmRcIlxuZXh0ZXJuYWwgKCBvciApIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSBcIiVzZXF1b3JcIlxuZXh0ZXJuYWwgKCB8fCApIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSBcIiVzZXF1b3JcIlxuXG4oKiBJbnRlZ2VyIG9wZXJhdGlvbnMgKilcblxuZXh0ZXJuYWwgKCB+LSApIDogaW50IC0+IGludCA9IFwiJW5lZ2ludFwiXG5leHRlcm5hbCAoIH4rICkgOiBpbnQgLT4gaW50ID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgc3VjYyA6IGludCAtPiBpbnQgPSBcIiVzdWNjaW50XCJcbmV4dGVybmFsIHByZWQgOiBpbnQgLT4gaW50ID0gXCIlcHJlZGludFwiXG5leHRlcm5hbCAoICsgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlYWRkaW50XCJcbmV4dGVybmFsICggLSApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVzdWJpbnRcIlxuZXh0ZXJuYWwgKCAqICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJW11bGludFwiXG5leHRlcm5hbCAoIC8gKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlZGl2aW50XCJcbmV4dGVybmFsICggbW9kICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJW1vZGludFwiXG5cbmxldCBhYnMgeCA9IGlmIHggPj0gMCB0aGVuIHggZWxzZSAteFxuXG5leHRlcm5hbCAoIGxhbmQgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlYW5kaW50XCJcbmV4dGVybmFsICggbG9yICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJW9yaW50XCJcbmV4dGVybmFsICggbHhvciApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiV4b3JpbnRcIlxuXG5sZXQgbG5vdCB4ID0geCBseG9yICgtMSlcblxuZXh0ZXJuYWwgKCBsc2wgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbHNsaW50XCJcbmV4dGVybmFsICggbHNyICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWxzcmludFwiXG5leHRlcm5hbCAoIGFzciApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVhc3JpbnRcIlxuXG5sZXQgbWF4X2ludCA9ICgtMSkgbHNyIDFcbmxldCBtaW5faW50ID0gbWF4X2ludCArIDFcblxuKCogRmxvYXRpbmctcG9pbnQgb3BlcmF0aW9ucyAqKVxuXG5leHRlcm5hbCAoIH4tLiApIDogZmxvYXQgLT4gZmxvYXQgPSBcIiVuZWdmbG9hdFwiXG5leHRlcm5hbCAoIH4rLiApIDogZmxvYXQgLT4gZmxvYXQgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCAoICsuICkgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJWFkZGZsb2F0XCJcbmV4dGVybmFsICggLS4gKSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlc3ViZmxvYXRcIlxuZXh0ZXJuYWwgKCAqLiApIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVtdWxmbG9hdFwiXG5leHRlcm5hbCAoIC8uICkgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJWRpdmZsb2F0XCJcbmV4dGVybmFsICggKiogKSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3Bvd2VyX2Zsb2F0XCIgXCJwb3dcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZXhwIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZXhwX2Zsb2F0XCIgXCJleHBcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZXhwbTEgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9leHBtMV9mbG9hdFwiIFwiY2FtbF9leHBtMVwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhY29zIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYWNvc19mbG9hdFwiIFwiYWNvc1wiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhc2luIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXNpbl9mbG9hdFwiIFwiYXNpblwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhdGFuIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXRhbl9mbG9hdFwiIFwiYXRhblwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhdGFuMiA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2F0YW4yX2Zsb2F0XCIgXCJhdGFuMlwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBoeXBvdCA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0XG4gICAgICAgICAgICAgICA9IFwiY2FtbF9oeXBvdF9mbG9hdFwiIFwiY2FtbF9oeXBvdFwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjb3MgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9jb3NfZmxvYXRcIiBcImNvc1wiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjb3NoIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY29zaF9mbG9hdFwiIFwiY29zaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhY29zaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Fjb3NoX2Zsb2F0XCIgXCJjYW1sX2Fjb3NoXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGxvZyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2xvZ19mbG9hdFwiIFwibG9nXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGxvZzEwIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfbG9nMTBfZmxvYXRcIiBcImxvZzEwXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGxvZzFwIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfbG9nMXBfZmxvYXRcIiBcImNhbWxfbG9nMXBcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc2luIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfc2luX2Zsb2F0XCIgXCJzaW5cIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc2luaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3NpbmhfZmxvYXRcIiBcInNpbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXNpbmggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hc2luaF9mbG9hdFwiIFwiY2FtbF9hc2luaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzcXJ0IDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfc3FydF9mbG9hdFwiIFwic3FydFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB0YW4gOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF90YW5fZmxvYXRcIiBcInRhblwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB0YW5oIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfdGFuaF9mbG9hdFwiIFwidGFuaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhdGFuaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2F0YW5oX2Zsb2F0XCIgXCJjYW1sX2F0YW5oXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGNlaWwgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9jZWlsX2Zsb2F0XCIgXCJjZWlsXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGZsb29yIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZmxvb3JfZmxvYXRcIiBcImZsb29yXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFic19mbG9hdCA6IGZsb2F0IC0+IGZsb2F0ID0gXCIlYWJzZmxvYXRcIlxuZXh0ZXJuYWwgY29weXNpZ24gOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdFxuICAgICAgICAgICAgICAgICAgPSBcImNhbWxfY29weXNpZ25fZmxvYXRcIiBcImNhbWxfY29weXNpZ25cIlxuICAgICAgICAgICAgICAgICAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIG1vZF9mbG9hdCA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Ztb2RfZmxvYXRcIiBcImZtb2RcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZnJleHAgOiBmbG9hdCAtPiBmbG9hdCAqIGludCA9IFwiY2FtbF9mcmV4cF9mbG9hdFwiXG5leHRlcm5hbCBsZGV4cCA6IChmbG9hdCBbQHVuYm94ZWRdKSAtPiAoaW50IFtAdW50YWdnZWRdKSAtPiAoZmxvYXQgW0B1bmJveGVkXSkgPVxuICBcImNhbWxfbGRleHBfZmxvYXRcIiBcImNhbWxfbGRleHBfZmxvYXRfdW5ib3hlZFwiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBtb2RmIDogZmxvYXQgLT4gZmxvYXQgKiBmbG9hdCA9IFwiY2FtbF9tb2RmX2Zsb2F0XCJcbmV4dGVybmFsIGZsb2F0IDogaW50IC0+IGZsb2F0ID0gXCIlZmxvYXRvZmludFwiXG5leHRlcm5hbCBmbG9hdF9vZl9pbnQgOiBpbnQgLT4gZmxvYXQgPSBcIiVmbG9hdG9maW50XCJcbmV4dGVybmFsIHRydW5jYXRlIDogZmxvYXQgLT4gaW50ID0gXCIlaW50b2ZmbG9hdFwiXG5leHRlcm5hbCBpbnRfb2ZfZmxvYXQgOiBmbG9hdCAtPiBpbnQgPSBcIiVpbnRvZmZsb2F0XCJcbmV4dGVybmFsIGZsb2F0X29mX2JpdHMgOiBpbnQ2NCAtPiBmbG9hdFxuICA9IFwiY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzXCIgXCJjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHNfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5sZXQgaW5maW5pdHkgPVxuICBmbG9hdF9vZl9iaXRzIDB4N0ZfRjBfMDBfMDBfMDBfMDBfMDBfMDBMXG5sZXQgbmVnX2luZmluaXR5ID1cbiAgZmxvYXRfb2ZfYml0cyAweEZGX0YwXzAwXzAwXzAwXzAwXzAwXzAwTFxubGV0IG5hbiA9XG4gIGZsb2F0X29mX2JpdHMgMHg3Rl9GMF8wMF8wMF8wMF8wMF8wMF8wMUxcbmxldCBtYXhfZmxvYXQgPVxuICBmbG9hdF9vZl9iaXRzIDB4N0ZfRUZfRkZfRkZfRkZfRkZfRkZfRkZMXG5sZXQgbWluX2Zsb2F0ID1cbiAgZmxvYXRfb2ZfYml0cyAweDAwXzEwXzAwXzAwXzAwXzAwXzAwXzAwTFxubGV0IGVwc2lsb25fZmxvYXQgPVxuICBmbG9hdF9vZl9iaXRzIDB4M0NfQjBfMDBfMDBfMDBfMDBfMDBfMDBMXG5cbnR5cGUgZnBjbGFzcyA9XG4gICAgRlBfbm9ybWFsXG4gIHwgRlBfc3Vibm9ybWFsXG4gIHwgRlBfemVyb1xuICB8IEZQX2luZmluaXRlXG4gIHwgRlBfbmFuXG5leHRlcm5hbCBjbGFzc2lmeV9mbG9hdCA6IChmbG9hdCBbQHVuYm94ZWRdKSAtPiBmcGNsYXNzID1cbiAgXCJjYW1sX2NsYXNzaWZ5X2Zsb2F0XCIgXCJjYW1sX2NsYXNzaWZ5X2Zsb2F0X3VuYm94ZWRcIiBbQEBub2FsbG9jXVxuXG4oKiBTdHJpbmcgYW5kIGJ5dGUgc2VxdWVuY2Ugb3BlcmF0aW9ucyAtLSBtb3JlIGluIG1vZHVsZXMgU3RyaW5nIGFuZCBCeXRlcyAqKVxuXG5leHRlcm5hbCBzdHJpbmdfbGVuZ3RoIDogc3RyaW5nIC0+IGludCA9IFwiJXN0cmluZ19sZW5ndGhcIlxuZXh0ZXJuYWwgYnl0ZXNfbGVuZ3RoIDogYnl0ZXMgLT4gaW50ID0gXCIlYnl0ZXNfbGVuZ3RoXCJcbmV4dGVybmFsIGJ5dGVzX2NyZWF0ZSA6IGludCAtPiBieXRlcyA9IFwiY2FtbF9jcmVhdGVfYnl0ZXNcIlxuZXh0ZXJuYWwgc3RyaW5nX2JsaXQgOiBzdHJpbmcgLT4gaW50IC0+IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfYmxpdF9zdHJpbmdcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYnl0ZXNfYmxpdCA6IGJ5dGVzIC0+IGludCAtPiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2JsaXRfYnl0ZXNcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYnl0ZXNfdW5zYWZlX3RvX3N0cmluZyA6IGJ5dGVzIC0+IHN0cmluZyA9IFwiJWJ5dGVzX3RvX3N0cmluZ1wiXG5cbmxldCAoIF4gKSBzMSBzMiA9XG4gIGxldCBsMSA9IHN0cmluZ19sZW5ndGggczEgYW5kIGwyID0gc3RyaW5nX2xlbmd0aCBzMiBpblxuICBsZXQgcyA9IGJ5dGVzX2NyZWF0ZSAobDEgKyBsMikgaW5cbiAgc3RyaW5nX2JsaXQgczEgMCBzIDAgbDE7XG4gIHN0cmluZ19ibGl0IHMyIDAgcyBsMSBsMjtcbiAgYnl0ZXNfdW5zYWZlX3RvX3N0cmluZyBzXG5cbigqIENoYXJhY3RlciBvcGVyYXRpb25zIC0tIG1vcmUgaW4gbW9kdWxlIENoYXIgKilcblxuZXh0ZXJuYWwgaW50X29mX2NoYXIgOiBjaGFyIC0+IGludCA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIHVuc2FmZV9jaGFyX29mX2ludCA6IGludCAtPiBjaGFyID0gXCIlaWRlbnRpdHlcIlxubGV0IGNoYXJfb2ZfaW50IG4gPVxuICBpZiBuIDwgMCB8fCBuID4gMjU1IHRoZW4gaW52YWxpZF9hcmcgXCJjaGFyX29mX2ludFwiIGVsc2UgdW5zYWZlX2NoYXJfb2ZfaW50IG5cblxuKCogVW5pdCBvcGVyYXRpb25zICopXG5cbmV4dGVybmFsIGlnbm9yZSA6ICdhIC0+IHVuaXQgPSBcIiVpZ25vcmVcIlxuXG4oKiBQYWlyIG9wZXJhdGlvbnMgKilcblxuZXh0ZXJuYWwgZnN0IDogJ2EgKiAnYiAtPiAnYSA9IFwiJWZpZWxkMFwiXG5leHRlcm5hbCBzbmQgOiAnYSAqICdiIC0+ICdiID0gXCIlZmllbGQxXCJcblxuKCogUmVmZXJlbmNlcyAqKVxuXG50eXBlICdhIHJlZiA9IHsgbXV0YWJsZSBjb250ZW50cyA6ICdhIH1cbmV4dGVybmFsIHJlZiA6ICdhIC0+ICdhIHJlZiA9IFwiJW1ha2VtdXRhYmxlXCJcbmV4dGVybmFsICggISApIDogJ2EgcmVmIC0+ICdhID0gXCIlZmllbGQwXCJcbmV4dGVybmFsICggOj0gKSA6ICdhIHJlZiAtPiAnYSAtPiB1bml0ID0gXCIlc2V0ZmllbGQwXCJcbmV4dGVybmFsIGluY3IgOiBpbnQgcmVmIC0+IHVuaXQgPSBcIiVpbmNyXCJcbmV4dGVybmFsIGRlY3IgOiBpbnQgcmVmIC0+IHVuaXQgPSBcIiVkZWNyXCJcblxuKCogUmVzdWx0IHR5cGUgKilcblxudHlwZSAoJ2EsJ2IpIHJlc3VsdCA9IE9rIG9mICdhIHwgRXJyb3Igb2YgJ2JcblxuKCogU3RyaW5nIGNvbnZlcnNpb24gZnVuY3Rpb25zICopXG5cbmV4dGVybmFsIGZvcm1hdF9pbnQgOiBzdHJpbmcgLT4gaW50IC0+IHN0cmluZyA9IFwiY2FtbF9mb3JtYXRfaW50XCJcbmV4dGVybmFsIGZvcm1hdF9mbG9hdCA6IHN0cmluZyAtPiBmbG9hdCAtPiBzdHJpbmcgPSBcImNhbWxfZm9ybWF0X2Zsb2F0XCJcblxubGV0IHN0cmluZ19vZl9ib29sIGIgPVxuICBpZiBiIHRoZW4gXCJ0cnVlXCIgZWxzZSBcImZhbHNlXCJcbmxldCBib29sX29mX3N0cmluZyA9IGZ1bmN0aW9uXG4gIHwgXCJ0cnVlXCIgLT4gdHJ1ZVxuICB8IFwiZmFsc2VcIiAtPiBmYWxzZVxuICB8IF8gLT4gaW52YWxpZF9hcmcgXCJib29sX29mX3N0cmluZ1wiXG5cbmxldCBib29sX29mX3N0cmluZ19vcHQgPSBmdW5jdGlvblxuICB8IFwidHJ1ZVwiIC0+IFNvbWUgdHJ1ZVxuICB8IFwiZmFsc2VcIiAtPiBTb21lIGZhbHNlXG4gIHwgXyAtPiBOb25lXG5cbmxldCBzdHJpbmdfb2ZfaW50IG4gPVxuICBmb3JtYXRfaW50IFwiJWRcIiBuXG5cbmV4dGVybmFsIGludF9vZl9zdHJpbmcgOiBzdHJpbmcgLT4gaW50ID0gXCJjYW1sX2ludF9vZl9zdHJpbmdcIlxuXG5sZXQgaW50X29mX3N0cmluZ19vcHQgcyA9XG4gICgqIFRPRE86IHByb3ZpZGUgdGhpcyBkaXJlY3RseSBhcyBhIG5vbi1yYWlzaW5nIHByaW1pdGl2ZS4gKilcbiAgdHJ5IFNvbWUgKGludF9vZl9zdHJpbmcgcylcbiAgd2l0aCBGYWlsdXJlIF8gLT4gTm9uZVxuXG5leHRlcm5hbCBzdHJpbmdfZ2V0IDogc3RyaW5nIC0+IGludCAtPiBjaGFyID0gXCIlc3RyaW5nX3NhZmVfZ2V0XCJcblxubGV0IHZhbGlkX2Zsb2F0X2xleGVtIHMgPVxuICBsZXQgbCA9IHN0cmluZ19sZW5ndGggcyBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA+PSBsIHRoZW4gcyBeIFwiLlwiIGVsc2VcbiAgICBtYXRjaCBzdHJpbmdfZ2V0IHMgaSB3aXRoXG4gICAgfCAnMCcgLi4gJzknIHwgJy0nIC0+IGxvb3AgKGkgKyAxKVxuICAgIHwgXyAtPiBzXG4gIGluXG4gIGxvb3AgMFxuXG5sZXQgc3RyaW5nX29mX2Zsb2F0IGYgPSB2YWxpZF9mbG9hdF9sZXhlbSAoZm9ybWF0X2Zsb2F0IFwiJS4xMmdcIiBmKVxuXG5leHRlcm5hbCBmbG9hdF9vZl9zdHJpbmcgOiBzdHJpbmcgLT4gZmxvYXQgPSBcImNhbWxfZmxvYXRfb2Zfc3RyaW5nXCJcblxubGV0IGZsb2F0X29mX3N0cmluZ19vcHQgcyA9XG4gICgqIFRPRE86IHByb3ZpZGUgdGhpcyBkaXJlY3RseSBhcyBhIG5vbi1yYWlzaW5nIHByaW1pdGl2ZS4gKilcbiAgdHJ5IFNvbWUgKGZsb2F0X29mX3N0cmluZyBzKVxuICB3aXRoIEZhaWx1cmUgXyAtPiBOb25lXG5cbigqIExpc3Qgb3BlcmF0aW9ucyAtLSBtb3JlIGluIG1vZHVsZSBMaXN0ICopXG5cbmxldCByZWMgKCBAICkgbDEgbDIgPVxuICBtYXRjaCBsMSB3aXRoXG4gICAgW10gLT4gbDJcbiAgfCBoZCA6OiB0bCAtPiBoZCA6OiAodGwgQCBsMilcblxuKCogSS9PIG9wZXJhdGlvbnMgKilcblxudHlwZSBpbl9jaGFubmVsXG50eXBlIG91dF9jaGFubmVsXG5cbmV4dGVybmFsIG9wZW5fZGVzY3JpcHRvcl9vdXQgOiBpbnQgLT4gb3V0X2NoYW5uZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfbWxfb3Blbl9kZXNjcmlwdG9yX291dFwiXG5leHRlcm5hbCBvcGVuX2Rlc2NyaXB0b3JfaW4gOiBpbnQgLT4gaW5fY2hhbm5lbCA9IFwiY2FtbF9tbF9vcGVuX2Rlc2NyaXB0b3JfaW5cIlxuXG5sZXQgc3RkaW4gPSBvcGVuX2Rlc2NyaXB0b3JfaW4gMFxubGV0IHN0ZG91dCA9IG9wZW5fZGVzY3JpcHRvcl9vdXQgMVxubGV0IHN0ZGVyciA9IG9wZW5fZGVzY3JpcHRvcl9vdXQgMlxuXG4oKiBHZW5lcmFsIG91dHB1dCBmdW5jdGlvbnMgKilcblxudHlwZSBvcGVuX2ZsYWcgPVxuICAgIE9wZW5fcmRvbmx5IHwgT3Blbl93cm9ubHkgfCBPcGVuX2FwcGVuZFxuICB8IE9wZW5fY3JlYXQgfCBPcGVuX3RydW5jIHwgT3Blbl9leGNsXG4gIHwgT3Blbl9iaW5hcnkgfCBPcGVuX3RleHQgfCBPcGVuX25vbmJsb2NrXG5cbmV4dGVybmFsIG9wZW5fZGVzYyA6IHN0cmluZyAtPiBvcGVuX2ZsYWcgbGlzdCAtPiBpbnQgLT4gaW50ID0gXCJjYW1sX3N5c19vcGVuXCJcblxuZXh0ZXJuYWwgc2V0X291dF9jaGFubmVsX25hbWU6IG91dF9jaGFubmVsIC0+IHN0cmluZyAtPiB1bml0ID1cbiAgXCJjYW1sX21sX3NldF9jaGFubmVsX25hbWVcIlxuXG5sZXQgb3Blbl9vdXRfZ2VuIG1vZGUgcGVybSBuYW1lID1cbiAgbGV0IGMgPSBvcGVuX2Rlc2NyaXB0b3Jfb3V0KG9wZW5fZGVzYyBuYW1lIG1vZGUgcGVybSkgaW5cbiAgc2V0X291dF9jaGFubmVsX25hbWUgYyBuYW1lO1xuICBjXG5cbmxldCBvcGVuX291dCBuYW1lID1cbiAgb3Blbl9vdXRfZ2VuIFtPcGVuX3dyb25seTsgT3Blbl9jcmVhdDsgT3Blbl90cnVuYzsgT3Blbl90ZXh0XSAwbzY2NiBuYW1lXG5cbmxldCBvcGVuX291dF9iaW4gbmFtZSA9XG4gIG9wZW5fb3V0X2dlbiBbT3Blbl93cm9ubHk7IE9wZW5fY3JlYXQ7IE9wZW5fdHJ1bmM7IE9wZW5fYmluYXJ5XSAwbzY2NiBuYW1lXG5cbmV4dGVybmFsIGZsdXNoIDogb3V0X2NoYW5uZWwgLT4gdW5pdCA9IFwiY2FtbF9tbF9mbHVzaFwiXG5cbmV4dGVybmFsIG91dF9jaGFubmVsc19saXN0IDogdW5pdCAtPiBvdXRfY2hhbm5lbCBsaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9tbF9vdXRfY2hhbm5lbHNfbGlzdFwiXG5cbmxldCBmbHVzaF9hbGwgKCkgPVxuICBsZXQgcmVjIGl0ZXIgPSBmdW5jdGlvblxuICAgICAgW10gLT4gKClcbiAgICB8IGE6OmwgLT5cbiAgICAgICAgYmVnaW4gdHJ5XG4gICAgICAgICAgICBmbHVzaCBhXG4gICAgICAgIHdpdGggU3lzX2Vycm9yIF8gLT5cbiAgICAgICAgICAoKSAoKiBpZ25vcmUgY2hhbm5lbHMgY2xvc2VkIGR1cmluZyBhIHByZWNlZGluZyBmbHVzaC4gKilcbiAgICAgICAgZW5kO1xuICAgICAgICBpdGVyIGxcbiAgaW4gaXRlciAob3V0X2NoYW5uZWxzX2xpc3QgKCkpXG5cbmV4dGVybmFsIHVuc2FmZV9vdXRwdXQgOiBvdXRfY2hhbm5lbCAtPiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfbWxfb3V0cHV0X2J5dGVzXCJcbmV4dGVybmFsIHVuc2FmZV9vdXRwdXRfc3RyaW5nIDogb3V0X2NoYW5uZWwgLT4gc3RyaW5nIC0+IGludCAtPiBpbnQgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfbWxfb3V0cHV0XCJcblxuZXh0ZXJuYWwgb3V0cHV0X2NoYXIgOiBvdXRfY2hhbm5lbCAtPiBjaGFyIC0+IHVuaXQgPSBcImNhbWxfbWxfb3V0cHV0X2NoYXJcIlxuXG5sZXQgb3V0cHV0X2J5dGVzIG9jIHMgPVxuICB1bnNhZmVfb3V0cHV0IG9jIHMgMCAoYnl0ZXNfbGVuZ3RoIHMpXG5cbmxldCBvdXRwdXRfc3RyaW5nIG9jIHMgPVxuICB1bnNhZmVfb3V0cHV0X3N0cmluZyBvYyBzIDAgKHN0cmluZ19sZW5ndGggcylcblxubGV0IG91dHB1dCBvYyBzIG9mcyBsZW4gPVxuICBpZiBvZnMgPCAwIHx8IGxlbiA8IDAgfHwgb2ZzID4gYnl0ZXNfbGVuZ3RoIHMgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIm91dHB1dFwiXG4gIGVsc2UgdW5zYWZlX291dHB1dCBvYyBzIG9mcyBsZW5cblxubGV0IG91dHB1dF9zdWJzdHJpbmcgb2MgcyBvZnMgbGVuID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IHN0cmluZ19sZW5ndGggcyAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwib3V0cHV0X3N1YnN0cmluZ1wiXG4gIGVsc2UgdW5zYWZlX291dHB1dF9zdHJpbmcgb2MgcyBvZnMgbGVuXG5cbmV4dGVybmFsIG91dHB1dF9ieXRlIDogb3V0X2NoYW5uZWwgLT4gaW50IC0+IHVuaXQgPSBcImNhbWxfbWxfb3V0cHV0X2NoYXJcIlxuZXh0ZXJuYWwgb3V0cHV0X2JpbmFyeV9pbnQgOiBvdXRfY2hhbm5lbCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9tbF9vdXRwdXRfaW50XCJcblxuZXh0ZXJuYWwgbWFyc2hhbF90b19jaGFubmVsIDogb3V0X2NoYW5uZWwgLT4gJ2EgLT4gdW5pdCBsaXN0IC0+IHVuaXRcbiAgICAgPSBcImNhbWxfb3V0cHV0X3ZhbHVlXCJcbmxldCBvdXRwdXRfdmFsdWUgY2hhbiB2ID0gbWFyc2hhbF90b19jaGFubmVsIGNoYW4gdiBbXVxuXG5leHRlcm5hbCBzZWVrX291dCA6IG91dF9jaGFubmVsIC0+IGludCAtPiB1bml0ID0gXCJjYW1sX21sX3NlZWtfb3V0XCJcbmV4dGVybmFsIHBvc19vdXQgOiBvdXRfY2hhbm5lbCAtPiBpbnQgPSBcImNhbWxfbWxfcG9zX291dFwiXG5leHRlcm5hbCBvdXRfY2hhbm5lbF9sZW5ndGggOiBvdXRfY2hhbm5lbCAtPiBpbnQgPSBcImNhbWxfbWxfY2hhbm5lbF9zaXplXCJcbmV4dGVybmFsIGNsb3NlX291dF9jaGFubmVsIDogb3V0X2NoYW5uZWwgLT4gdW5pdCA9IFwiY2FtbF9tbF9jbG9zZV9jaGFubmVsXCJcbmxldCBjbG9zZV9vdXQgb2MgPSBmbHVzaCBvYzsgY2xvc2Vfb3V0X2NoYW5uZWwgb2NcbmxldCBjbG9zZV9vdXRfbm9lcnIgb2MgPVxuICAodHJ5IGZsdXNoIG9jIHdpdGggXyAtPiAoKSk7XG4gICh0cnkgY2xvc2Vfb3V0X2NoYW5uZWwgb2Mgd2l0aCBfIC0+ICgpKVxuZXh0ZXJuYWwgc2V0X2JpbmFyeV9tb2RlX291dCA6IG91dF9jaGFubmVsIC0+IGJvb2wgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9tbF9zZXRfYmluYXJ5X21vZGVcIlxuXG4oKiBHZW5lcmFsIGlucHV0IGZ1bmN0aW9ucyAqKVxuXG5leHRlcm5hbCBzZXRfaW5fY2hhbm5lbF9uYW1lOiBpbl9jaGFubmVsIC0+IHN0cmluZyAtPiB1bml0ID1cbiAgXCJjYW1sX21sX3NldF9jaGFubmVsX25hbWVcIlxuXG5sZXQgb3Blbl9pbl9nZW4gbW9kZSBwZXJtIG5hbWUgPVxuICBsZXQgYyA9IG9wZW5fZGVzY3JpcHRvcl9pbihvcGVuX2Rlc2MgbmFtZSBtb2RlIHBlcm0pIGluXG4gIHNldF9pbl9jaGFubmVsX25hbWUgYyBuYW1lO1xuICBjXG5cbmxldCBvcGVuX2luIG5hbWUgPVxuICBvcGVuX2luX2dlbiBbT3Blbl9yZG9ubHk7IE9wZW5fdGV4dF0gMCBuYW1lXG5cbmxldCBvcGVuX2luX2JpbiBuYW1lID1cbiAgb3Blbl9pbl9nZW4gW09wZW5fcmRvbmx5OyBPcGVuX2JpbmFyeV0gMCBuYW1lXG5cbmV4dGVybmFsIGlucHV0X2NoYXIgOiBpbl9jaGFubmVsIC0+IGNoYXIgPSBcImNhbWxfbWxfaW5wdXRfY2hhclwiXG5cbmV4dGVybmFsIHVuc2FmZV9pbnB1dCA6IGluX2NoYW5uZWwgLT4gYnl0ZXMgLT4gaW50IC0+IGludCAtPiBpbnRcbiAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9tbF9pbnB1dFwiXG5cbmxldCBpbnB1dCBpYyBzIG9mcyBsZW4gPVxuICBpZiBvZnMgPCAwIHx8IGxlbiA8IDAgfHwgb2ZzID4gYnl0ZXNfbGVuZ3RoIHMgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcImlucHV0XCJcbiAgZWxzZSB1bnNhZmVfaW5wdXQgaWMgcyBvZnMgbGVuXG5cbmxldCByZWMgdW5zYWZlX3JlYWxseV9pbnB1dCBpYyBzIG9mcyBsZW4gPVxuICBpZiBsZW4gPD0gMCB0aGVuICgpIGVsc2UgYmVnaW5cbiAgICBsZXQgciA9IHVuc2FmZV9pbnB1dCBpYyBzIG9mcyBsZW4gaW5cbiAgICBpZiByID0gMFxuICAgIHRoZW4gcmFpc2UgRW5kX29mX2ZpbGVcbiAgICBlbHNlIHVuc2FmZV9yZWFsbHlfaW5wdXQgaWMgcyAob2ZzICsgcikgKGxlbiAtIHIpXG4gIGVuZFxuXG5sZXQgcmVhbGx5X2lucHV0IGljIHMgb2ZzIGxlbiA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBieXRlc19sZW5ndGggcyAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwicmVhbGx5X2lucHV0XCJcbiAgZWxzZSB1bnNhZmVfcmVhbGx5X2lucHV0IGljIHMgb2ZzIGxlblxuXG5sZXQgcmVhbGx5X2lucHV0X3N0cmluZyBpYyBsZW4gPVxuICBsZXQgcyA9IGJ5dGVzX2NyZWF0ZSBsZW4gaW5cbiAgcmVhbGx5X2lucHV0IGljIHMgMCBsZW47XG4gIGJ5dGVzX3Vuc2FmZV90b19zdHJpbmcgc1xuXG5leHRlcm5hbCBpbnB1dF9zY2FuX2xpbmUgOiBpbl9jaGFubmVsIC0+IGludCA9IFwiY2FtbF9tbF9pbnB1dF9zY2FuX2xpbmVcIlxuXG5sZXQgaW5wdXRfbGluZSBjaGFuID1cbiAgbGV0IHJlYyBidWlsZF9yZXN1bHQgYnVmIHBvcyA9IGZ1bmN0aW9uXG4gICAgW10gLT4gYnVmXG4gIHwgaGQgOjogdGwgLT5cbiAgICAgIGxldCBsZW4gPSBieXRlc19sZW5ndGggaGQgaW5cbiAgICAgIGJ5dGVzX2JsaXQgaGQgMCBidWYgKHBvcyAtIGxlbikgbGVuO1xuICAgICAgYnVpbGRfcmVzdWx0IGJ1ZiAocG9zIC0gbGVuKSB0bCBpblxuICBsZXQgcmVjIHNjYW4gYWNjdSBsZW4gPVxuICAgIGxldCBuID0gaW5wdXRfc2Nhbl9saW5lIGNoYW4gaW5cbiAgICBpZiBuID0gMCB0aGVuIGJlZ2luICAgICAgICAgICAgICAgICAgICgqIG4gPSAwOiB3ZSBhcmUgYXQgRU9GICopXG4gICAgICBtYXRjaCBhY2N1IHdpdGhcbiAgICAgICAgW10gLT4gcmFpc2UgRW5kX29mX2ZpbGVcbiAgICAgIHwgXyAgLT4gYnVpbGRfcmVzdWx0IChieXRlc19jcmVhdGUgbGVuKSBsZW4gYWNjdVxuICAgIGVuZCBlbHNlIGlmIG4gPiAwIHRoZW4gYmVnaW4gICAgICAgICAgKCogbiA+IDA6IG5ld2xpbmUgZm91bmQgaW4gYnVmZmVyICopXG4gICAgICBsZXQgcmVzID0gYnl0ZXNfY3JlYXRlIChuIC0gMSkgaW5cbiAgICAgIGlnbm9yZSAodW5zYWZlX2lucHV0IGNoYW4gcmVzIDAgKG4gLSAxKSk7XG4gICAgICBpZ25vcmUgKGlucHV0X2NoYXIgY2hhbik7ICAgICAgICAgICAoKiBza2lwIHRoZSBuZXdsaW5lICopXG4gICAgICBtYXRjaCBhY2N1IHdpdGhcbiAgICAgICAgW10gLT4gcmVzXG4gICAgICB8ICBfIC0+IGxldCBsZW4gPSBsZW4gKyBuIC0gMSBpblxuICAgICAgICAgICAgICBidWlsZF9yZXN1bHQgKGJ5dGVzX2NyZWF0ZSBsZW4pIGxlbiAocmVzIDo6IGFjY3UpXG4gICAgZW5kIGVsc2UgYmVnaW4gICAgICAgICAgICAgICAgICAgICAgICAoKiBuIDwgMDogbmV3bGluZSBub3QgZm91bmQgKilcbiAgICAgIGxldCBiZWcgPSBieXRlc19jcmVhdGUgKC1uKSBpblxuICAgICAgaWdub3JlKHVuc2FmZV9pbnB1dCBjaGFuIGJlZyAwICgtbikpO1xuICAgICAgc2NhbiAoYmVnIDo6IGFjY3UpIChsZW4gLSBuKVxuICAgIGVuZFxuICBpbiBieXRlc191bnNhZmVfdG9fc3RyaW5nIChzY2FuIFtdIDApXG5cbmV4dGVybmFsIGlucHV0X2J5dGUgOiBpbl9jaGFubmVsIC0+IGludCA9IFwiY2FtbF9tbF9pbnB1dF9jaGFyXCJcbmV4dGVybmFsIGlucHV0X2JpbmFyeV9pbnQgOiBpbl9jaGFubmVsIC0+IGludCA9IFwiY2FtbF9tbF9pbnB1dF9pbnRcIlxuZXh0ZXJuYWwgaW5wdXRfdmFsdWUgOiBpbl9jaGFubmVsIC0+ICdhID0gXCJjYW1sX2lucHV0X3ZhbHVlXCJcbmV4dGVybmFsIHNlZWtfaW4gOiBpbl9jaGFubmVsIC0+IGludCAtPiB1bml0ID0gXCJjYW1sX21sX3NlZWtfaW5cIlxuZXh0ZXJuYWwgcG9zX2luIDogaW5fY2hhbm5lbCAtPiBpbnQgPSBcImNhbWxfbWxfcG9zX2luXCJcbmV4dGVybmFsIGluX2NoYW5uZWxfbGVuZ3RoIDogaW5fY2hhbm5lbCAtPiBpbnQgPSBcImNhbWxfbWxfY2hhbm5lbF9zaXplXCJcbmV4dGVybmFsIGNsb3NlX2luIDogaW5fY2hhbm5lbCAtPiB1bml0ID0gXCJjYW1sX21sX2Nsb3NlX2NoYW5uZWxcIlxubGV0IGNsb3NlX2luX25vZXJyIGljID0gKHRyeSBjbG9zZV9pbiBpYyB3aXRoIF8gLT4gKCkpXG5leHRlcm5hbCBzZXRfYmluYXJ5X21vZGVfaW4gOiBpbl9jaGFubmVsIC0+IGJvb2wgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX21sX3NldF9iaW5hcnlfbW9kZVwiXG5cbigqIE91dHB1dCBmdW5jdGlvbnMgb24gc3RhbmRhcmQgb3V0cHV0ICopXG5cbmxldCBwcmludF9jaGFyIGMgPSBvdXRwdXRfY2hhciBzdGRvdXQgY1xubGV0IHByaW50X3N0cmluZyBzID0gb3V0cHV0X3N0cmluZyBzdGRvdXQgc1xubGV0IHByaW50X2J5dGVzIHMgPSBvdXRwdXRfYnl0ZXMgc3Rkb3V0IHNcbmxldCBwcmludF9pbnQgaSA9IG91dHB1dF9zdHJpbmcgc3Rkb3V0IChzdHJpbmdfb2ZfaW50IGkpXG5sZXQgcHJpbnRfZmxvYXQgZiA9IG91dHB1dF9zdHJpbmcgc3Rkb3V0IChzdHJpbmdfb2ZfZmxvYXQgZilcbmxldCBwcmludF9lbmRsaW5lIHMgPVxuICBvdXRwdXRfc3RyaW5nIHN0ZG91dCBzOyBvdXRwdXRfY2hhciBzdGRvdXQgJ1xcbic7IGZsdXNoIHN0ZG91dFxubGV0IHByaW50X25ld2xpbmUgKCkgPSBvdXRwdXRfY2hhciBzdGRvdXQgJ1xcbic7IGZsdXNoIHN0ZG91dFxuXG4oKiBPdXRwdXQgZnVuY3Rpb25zIG9uIHN0YW5kYXJkIGVycm9yICopXG5cbmxldCBwcmVycl9jaGFyIGMgPSBvdXRwdXRfY2hhciBzdGRlcnIgY1xubGV0IHByZXJyX3N0cmluZyBzID0gb3V0cHV0X3N0cmluZyBzdGRlcnIgc1xubGV0IHByZXJyX2J5dGVzIHMgPSBvdXRwdXRfYnl0ZXMgc3RkZXJyIHNcbmxldCBwcmVycl9pbnQgaSA9IG91dHB1dF9zdHJpbmcgc3RkZXJyIChzdHJpbmdfb2ZfaW50IGkpXG5sZXQgcHJlcnJfZmxvYXQgZiA9IG91dHB1dF9zdHJpbmcgc3RkZXJyIChzdHJpbmdfb2ZfZmxvYXQgZilcbmxldCBwcmVycl9lbmRsaW5lIHMgPVxuICBvdXRwdXRfc3RyaW5nIHN0ZGVyciBzOyBvdXRwdXRfY2hhciBzdGRlcnIgJ1xcbic7IGZsdXNoIHN0ZGVyclxubGV0IHByZXJyX25ld2xpbmUgKCkgPSBvdXRwdXRfY2hhciBzdGRlcnIgJ1xcbic7IGZsdXNoIHN0ZGVyclxuXG4oKiBJbnB1dCBmdW5jdGlvbnMgb24gc3RhbmRhcmQgaW5wdXQgKilcblxubGV0IHJlYWRfbGluZSAoKSA9IGZsdXNoIHN0ZG91dDsgaW5wdXRfbGluZSBzdGRpblxubGV0IHJlYWRfaW50ICgpID0gaW50X29mX3N0cmluZyhyZWFkX2xpbmUoKSlcbmxldCByZWFkX2ludF9vcHQgKCkgPSBpbnRfb2Zfc3RyaW5nX29wdChyZWFkX2xpbmUoKSlcbmxldCByZWFkX2Zsb2F0ICgpID0gZmxvYXRfb2Zfc3RyaW5nKHJlYWRfbGluZSgpKVxubGV0IHJlYWRfZmxvYXRfb3B0ICgpID0gZmxvYXRfb2Zfc3RyaW5nX29wdChyZWFkX2xpbmUoKSlcblxuKCogT3BlcmF0aW9ucyBvbiBsYXJnZSBmaWxlcyAqKVxuXG5tb2R1bGUgTGFyZ2VGaWxlID1cbiAgc3RydWN0XG4gICAgZXh0ZXJuYWwgc2Vla19vdXQgOiBvdXRfY2hhbm5lbCAtPiBpbnQ2NCAtPiB1bml0ID0gXCJjYW1sX21sX3NlZWtfb3V0XzY0XCJcbiAgICBleHRlcm5hbCBwb3Nfb3V0IDogb3V0X2NoYW5uZWwgLT4gaW50NjQgPSBcImNhbWxfbWxfcG9zX291dF82NFwiXG4gICAgZXh0ZXJuYWwgb3V0X2NoYW5uZWxfbGVuZ3RoIDogb3V0X2NoYW5uZWwgLT4gaW50NjRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfbWxfY2hhbm5lbF9zaXplXzY0XCJcbiAgICBleHRlcm5hbCBzZWVrX2luIDogaW5fY2hhbm5lbCAtPiBpbnQ2NCAtPiB1bml0ID0gXCJjYW1sX21sX3NlZWtfaW5fNjRcIlxuICAgIGV4dGVybmFsIHBvc19pbiA6IGluX2NoYW5uZWwgLT4gaW50NjQgPSBcImNhbWxfbWxfcG9zX2luXzY0XCJcbiAgICBleHRlcm5hbCBpbl9jaGFubmVsX2xlbmd0aCA6IGluX2NoYW5uZWwgLT4gaW50NjQgPSBcImNhbWxfbWxfY2hhbm5lbF9zaXplXzY0XCJcbiAgZW5kXG5cbigqIEZvcm1hdHMgKilcblxudHlwZSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NlxuICAgPSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzLmZvcm1hdDZcbiAgID0gRm9ybWF0IG9mICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3MuZm10XG4gICAgICAgICAgICAgICAqIHN0cmluZ1xuXG50eXBlICgnYSwgJ2IsICdjLCAnZCkgZm9ybWF0NCA9ICgnYSwgJ2IsICdjLCAnYywgJ2MsICdkKSBmb3JtYXQ2XG5cbnR5cGUgKCdhLCAnYiwgJ2MpIGZvcm1hdCA9ICgnYSwgJ2IsICdjLCAnYykgZm9ybWF0NFxuXG5sZXQgc3RyaW5nX29mX2Zvcm1hdCAoRm9ybWF0IChfZm10LCBzdHIpKSA9IHN0clxuXG5leHRlcm5hbCBmb3JtYXRfb2Zfc3RyaW5nIDpcbiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiAtPlxuICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2ID0gXCIlaWRlbnRpdHlcIlxuXG5sZXQgKCBeXiApIChGb3JtYXQgKGZtdDEsIHN0cjEpKSAoRm9ybWF0IChmbXQyLCBzdHIyKSkgPVxuICBGb3JtYXQgKENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljcy5jb25jYXRfZm10IGZtdDEgZm10MixcbiAgICAgICAgICBzdHIxIF4gXCIlLFwiIF4gc3RyMilcblxuKCogTWlzY2VsbGFuZW91cyAqKVxuXG5leHRlcm5hbCBzeXNfZXhpdCA6IGludCAtPiAnYSA9IFwiY2FtbF9zeXNfZXhpdFwiXG5cbmxldCBleGl0X2Z1bmN0aW9uID0gQ2FtbGludGVybmFsQXRvbWljLm1ha2UgZmx1c2hfYWxsXG5cbmxldCByZWMgYXRfZXhpdCBmID1cbiAgbGV0IG1vZHVsZSBBdG9taWMgPSBDYW1saW50ZXJuYWxBdG9taWMgaW5cbiAgKCogTVBSIzcyNTMsIE1QUiM3Nzk2OiBtYWtlIHN1cmUgXCJmXCIgaXMgZXhlY3V0ZWQgb25seSBvbmNlICopXG4gIGxldCBmX3lldF90b19ydW4gPSBBdG9taWMubWFrZSB0cnVlIGluXG4gIGxldCBvbGRfZXhpdCA9IEF0b21pYy5nZXQgZXhpdF9mdW5jdGlvbiBpblxuICBsZXQgbmV3X2V4aXQgKCkgPVxuICAgIGlmIEF0b21pYy5jb21wYXJlX2FuZF9zZXQgZl95ZXRfdG9fcnVuIHRydWUgZmFsc2UgdGhlbiBmICgpIDtcbiAgICBvbGRfZXhpdCAoKVxuICBpblxuICBsZXQgc3VjY2VzcyA9IEF0b21pYy5jb21wYXJlX2FuZF9zZXQgZXhpdF9mdW5jdGlvbiBvbGRfZXhpdCBuZXdfZXhpdCBpblxuICBpZiBub3Qgc3VjY2VzcyB0aGVuIGF0X2V4aXQgZlxuXG5sZXQgZG9fYXRfZXhpdCAoKSA9IChDYW1saW50ZXJuYWxBdG9taWMuZ2V0IGV4aXRfZnVuY3Rpb24pICgpXG5cbmxldCBleGl0IHJldGNvZGUgPVxuICBkb19hdF9leGl0ICgpO1xuICBzeXNfZXhpdCByZXRjb2RlXG5cbmxldCBfID0gcmVnaXN0ZXJfbmFtZWRfdmFsdWUgXCJQZXJ2YXNpdmVzLmRvX2F0X2V4aXRcIiBkb19hdF9leGl0XG5cbmV4dGVybmFsIG1ham9yIDogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2djX21ham9yXCJcbmV4dGVybmFsIG5ha2VkX3BvaW50ZXJzX2NoZWNrZWQgOiB1bml0IC0+IGJvb2xcbiAgPSBcImNhbWxfc3lzX2NvbnN0X25ha2VkX3BvaW50ZXJzX2NoZWNrZWRcIlxubGV0ICgpID0gaWYgbmFrZWRfcG9pbnRlcnNfY2hlY2tlZCAoKSB0aGVuIGF0X2V4aXQgbWFqb3JcblxuKCpNT0RVTEVfQUxJQVNFUyopXG5tb2R1bGUgQXJnICAgICAgICAgID0gQXJnXG5tb2R1bGUgQXJyYXkgICAgICAgID0gQXJyYXlcbm1vZHVsZSBBcnJheUxhYmVscyAgPSBBcnJheUxhYmVsc1xubW9kdWxlIEF0b21pYyAgICAgICA9IEF0b21pY1xubW9kdWxlIEJpZ2FycmF5ICAgICA9IEJpZ2FycmF5XG5tb2R1bGUgQm9vbCAgICAgICAgID0gQm9vbFxubW9kdWxlIEJ1ZmZlciAgICAgICA9IEJ1ZmZlclxubW9kdWxlIEJ5dGVzICAgICAgICA9IEJ5dGVzXG5tb2R1bGUgQnl0ZXNMYWJlbHMgID0gQnl0ZXNMYWJlbHNcbm1vZHVsZSBDYWxsYmFjayAgICAgPSBDYWxsYmFja1xubW9kdWxlIENoYXIgICAgICAgICA9IENoYXJcbm1vZHVsZSBDb21wbGV4ICAgICAgPSBDb21wbGV4XG5tb2R1bGUgRGlnZXN0ICAgICAgID0gRGlnZXN0XG5tb2R1bGUgRWl0aGVyICAgICAgID0gRWl0aGVyXG5tb2R1bGUgRXBoZW1lcm9uICAgID0gRXBoZW1lcm9uXG5tb2R1bGUgRmlsZW5hbWUgICAgID0gRmlsZW5hbWVcbm1vZHVsZSBGbG9hdCAgICAgICAgPSBGbG9hdFxubW9kdWxlIEZvcm1hdCAgICAgICA9IEZvcm1hdFxubW9kdWxlIEZ1biAgICAgICAgICA9IEZ1blxubW9kdWxlIEdjICAgICAgICAgICA9IEdjXG5tb2R1bGUgR2VubGV4ICAgICAgID0gR2VubGV4XG5tb2R1bGUgSGFzaHRibCAgICAgID0gSGFzaHRibFxubW9kdWxlIEluX2NoYW5uZWwgICA9IEluX2NoYW5uZWxcbm1vZHVsZSBJbnQgICAgICAgICAgPSBJbnRcbm1vZHVsZSBJbnQzMiAgICAgICAgPSBJbnQzMlxubW9kdWxlIEludDY0ICAgICAgICA9IEludDY0XG5tb2R1bGUgTGF6eSAgICAgICAgID0gTGF6eVxubW9kdWxlIExleGluZyAgICAgICA9IExleGluZ1xubW9kdWxlIExpc3QgICAgICAgICA9IExpc3Rcbm1vZHVsZSBMaXN0TGFiZWxzICAgPSBMaXN0TGFiZWxzXG5tb2R1bGUgTWFwICAgICAgICAgID0gTWFwXG5tb2R1bGUgTWFyc2hhbCAgICAgID0gTWFyc2hhbFxubW9kdWxlIE1vcmVMYWJlbHMgICA9IE1vcmVMYWJlbHNcbm1vZHVsZSBOYXRpdmVpbnQgICAgPSBOYXRpdmVpbnRcbm1vZHVsZSBPYmogICAgICAgICAgPSBPYmpcbm1vZHVsZSBPbyAgICAgICAgICAgPSBPb1xubW9kdWxlIE9wdGlvbiAgICAgICA9IE9wdGlvblxubW9kdWxlIE91dF9jaGFubmVsICA9IE91dF9jaGFubmVsXG5tb2R1bGUgUGFyc2luZyAgICAgID0gUGFyc2luZ1xubW9kdWxlIFBlcnZhc2l2ZXMgICA9IFBlcnZhc2l2ZXNcbm1vZHVsZSBQcmludGV4YyAgICAgPSBQcmludGV4Y1xubW9kdWxlIFByaW50ZiAgICAgICA9IFByaW50ZlxubW9kdWxlIFF1ZXVlICAgICAgICA9IFF1ZXVlXG5tb2R1bGUgUmFuZG9tICAgICAgID0gUmFuZG9tXG5tb2R1bGUgUmVzdWx0ICAgICAgID0gUmVzdWx0XG5tb2R1bGUgU2NhbmYgICAgICAgID0gU2NhbmZcbm1vZHVsZSBTZXEgICAgICAgICAgPSBTZXFcbm1vZHVsZSBTZXQgICAgICAgICAgPSBTZXRcbm1vZHVsZSBTdGFjayAgICAgICAgPSBTdGFja1xubW9kdWxlIFN0ZExhYmVscyAgICA9IFN0ZExhYmVsc1xubW9kdWxlIFN0cmVhbSAgICAgICA9IFN0cmVhbVxubW9kdWxlIFN0cmluZyAgICAgICA9IFN0cmluZ1xubW9kdWxlIFN0cmluZ0xhYmVscyA9IFN0cmluZ0xhYmVsc1xubW9kdWxlIFN5cyAgICAgICAgICA9IFN5c1xubW9kdWxlIFVjaGFyICAgICAgICA9IFVjaGFyXG5tb2R1bGUgVW5pdCAgICAgICAgID0gVW5pdFxubW9kdWxlIFdlYWsgICAgICAgICA9IFdlYWtcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgIEplcmVtaWUgRGltaW5vLCBKYW5lIFN0cmVldCBFdXJvcGUgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTcgSmFuZSBTdHJlZXQgR3JvdXAgTExDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCoqIEBkZXByZWNhdGVkIFVzZSB7IVN0ZGxpYn0gKilcblxuZXh0ZXJuYWwgcmFpc2UgOiBleG4gLT4gJ2EgPSBcIiVyYWlzZVwiXG5leHRlcm5hbCByYWlzZV9ub3RyYWNlIDogZXhuIC0+ICdhID0gXCIlcmFpc2Vfbm90cmFjZVwiXG5sZXQgaW52YWxpZF9hcmcgPSBpbnZhbGlkX2FyZ1xubGV0IGZhaWx3aXRoID0gZmFpbHdpdGhcbmV4Y2VwdGlvbiBFeGl0XG5leHRlcm5hbCAoID0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVlcXVhbFwiXG5leHRlcm5hbCAoIDw+ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlbm90ZXF1YWxcIlxuZXh0ZXJuYWwgKCA8ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlbGVzc3RoYW5cIlxuZXh0ZXJuYWwgKCA+ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZ3JlYXRlcnRoYW5cIlxuZXh0ZXJuYWwgKCA8PSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWxlc3NlcXVhbFwiXG5leHRlcm5hbCAoID49ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZ3JlYXRlcmVxdWFsXCJcbmV4dGVybmFsIGNvbXBhcmUgOiAnYSAtPiAnYSAtPiBpbnQgPSBcIiVjb21wYXJlXCJcbmxldCBtaW4gPSBtaW5cbmxldCBtYXggPSBtYXhcbmV4dGVybmFsICggPT0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVlcVwiXG5leHRlcm5hbCAoICE9ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlbm90ZXFcIlxuZXh0ZXJuYWwgbm90IDogYm9vbCAtPiBib29sID0gXCIlYm9vbG5vdFwiXG5leHRlcm5hbCAoICYmICkgOiBib29sIC0+IGJvb2wgLT4gYm9vbCA9IFwiJXNlcXVhbmRcIlxuZXh0ZXJuYWwgKCAmICkgOiBib29sIC0+IGJvb2wgLT4gYm9vbCA9IFwiJXNlcXVhbmRcIlxuICBbQEBvY2FtbC5kZXByZWNhdGVkIFwiVXNlICgmJikgaW5zdGVhZC5cIl1cbmV4dGVybmFsICggfHwgKSA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gXCIlc2VxdW9yXCJcbmV4dGVybmFsICggb3IgKSA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gXCIlc2VxdW9yXCJcbiAgW0BAb2NhbWwuZGVwcmVjYXRlZCBcIlVzZSAofHwpIGluc3RlYWQuXCJdXG5leHRlcm5hbCBfX0xPQ19fIDogc3RyaW5nID0gXCIlbG9jX0xPQ1wiXG5leHRlcm5hbCBfX0ZJTEVfXyA6IHN0cmluZyA9IFwiJWxvY19GSUxFXCJcbmV4dGVybmFsIF9fTElORV9fIDogaW50ID0gXCIlbG9jX0xJTkVcIlxuZXh0ZXJuYWwgX19NT0RVTEVfXyA6IHN0cmluZyA9IFwiJWxvY19NT0RVTEVcIlxuZXh0ZXJuYWwgX19QT1NfXyA6IHN0cmluZyAqIGludCAqIGludCAqIGludCA9IFwiJWxvY19QT1NcIlxuZXh0ZXJuYWwgX19MT0NfT0ZfXyA6ICdhIC0+IHN0cmluZyAqICdhID0gXCIlbG9jX0xPQ1wiXG5leHRlcm5hbCBfX0xJTkVfT0ZfXyA6ICdhIC0+IGludCAqICdhID0gXCIlbG9jX0xJTkVcIlxuZXh0ZXJuYWwgX19QT1NfT0ZfXyA6ICdhIC0+IChzdHJpbmcgKiBpbnQgKiBpbnQgKiBpbnQpICogJ2EgPSBcIiVsb2NfUE9TXCJcbmV4dGVybmFsICggfD4gKSA6ICdhIC0+ICgnYSAtPiAnYikgLT4gJ2IgPSBcIiVyZXZhcHBseVwiXG5leHRlcm5hbCAoIEBAICkgOiAoJ2EgLT4gJ2IpIC0+ICdhIC0+ICdiID0gXCIlYXBwbHlcIlxuZXh0ZXJuYWwgKCB+LSApIDogaW50IC0+IGludCA9IFwiJW5lZ2ludFwiXG5leHRlcm5hbCAoIH4rICkgOiBpbnQgLT4gaW50ID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgc3VjYyA6IGludCAtPiBpbnQgPSBcIiVzdWNjaW50XCJcbmV4dGVybmFsIHByZWQgOiBpbnQgLT4gaW50ID0gXCIlcHJlZGludFwiXG5leHRlcm5hbCAoICsgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlYWRkaW50XCJcbmV4dGVybmFsICggLSApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVzdWJpbnRcIlxuZXh0ZXJuYWwgKCAqICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJW11bGludFwiXG5leHRlcm5hbCAoIC8gKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlZGl2aW50XCJcbmV4dGVybmFsICggbW9kICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJW1vZGludFwiXG5sZXQgYWJzID0gYWJzXG5sZXQgbWF4X2ludCA9IG1heF9pbnRcbmxldCBtaW5faW50ID0gbWluX2ludFxuZXh0ZXJuYWwgKCBsYW5kICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFuZGludFwiXG5leHRlcm5hbCAoIGxvciApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVvcmludFwiXG5leHRlcm5hbCAoIGx4b3IgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIleG9yaW50XCJcbmxldCBsbm90ID0gbG5vdFxuZXh0ZXJuYWwgKCBsc2wgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbHNsaW50XCJcbmV4dGVybmFsICggbHNyICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWxzcmludFwiXG5leHRlcm5hbCAoIGFzciApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVhc3JpbnRcIlxuZXh0ZXJuYWwgKCB+LS4gKSA6IGZsb2F0IC0+IGZsb2F0ID0gXCIlbmVnZmxvYXRcIlxuZXh0ZXJuYWwgKCB+Ky4gKSA6IGZsb2F0IC0+IGZsb2F0ID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgKCArLiApIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVhZGRmbG9hdFwiXG5leHRlcm5hbCAoIC0uICkgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJXN1YmZsb2F0XCJcbmV4dGVybmFsICggKi4gKSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlbXVsZmxvYXRcIlxuZXh0ZXJuYWwgKCAvLiApIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVkaXZmbG9hdFwiXG5leHRlcm5hbCAoICoqICkgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9wb3dlcl9mbG9hdFwiIFwicG93XCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHNxcnQgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9zcXJ0X2Zsb2F0XCIgXCJzcXJ0XCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGV4cCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2V4cF9mbG9hdFwiIFwiZXhwXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGxvZyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2xvZ19mbG9hdFwiIFwibG9nXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGxvZzEwIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfbG9nMTBfZmxvYXRcIiBcImxvZzEwXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGV4cG0xIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZXhwbTFfZmxvYXRcIiBcImNhbWxfZXhwbTFcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbG9nMXAgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9sb2cxcF9mbG9hdFwiIFwiY2FtbF9sb2cxcFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjb3MgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9jb3NfZmxvYXRcIiBcImNvc1wiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzaW4gOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9zaW5fZmxvYXRcIiBcInNpblwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB0YW4gOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF90YW5fZmxvYXRcIiBcInRhblwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhY29zIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYWNvc19mbG9hdFwiIFwiYWNvc1wiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhc2luIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXNpbl9mbG9hdFwiIFwiYXNpblwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhdGFuIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXRhbl9mbG9hdFwiIFwiYXRhblwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhdGFuMiA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2F0YW4yX2Zsb2F0XCIgXCJhdGFuMlwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBoeXBvdCA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2h5cG90X2Zsb2F0XCIgXCJjYW1sX2h5cG90XCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGNvc2ggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9jb3NoX2Zsb2F0XCIgXCJjb3NoXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHNpbmggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9zaW5oX2Zsb2F0XCIgXCJzaW5oXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHRhbmggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF90YW5oX2Zsb2F0XCIgXCJ0YW5oXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGNlaWwgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9jZWlsX2Zsb2F0XCIgXCJjZWlsXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGZsb29yIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZmxvb3JfZmxvYXRcIiBcImZsb29yXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFic19mbG9hdCA6IGZsb2F0IC0+IGZsb2F0ID0gXCIlYWJzZmxvYXRcIlxuZXh0ZXJuYWwgY29weXNpZ24gOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdFxuICAgICAgICAgICAgICAgICAgPSBcImNhbWxfY29weXNpZ25fZmxvYXRcIiBcImNhbWxfY29weXNpZ25cIlxuICAgICAgICAgICAgICAgICAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIG1vZF9mbG9hdCA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Ztb2RfZmxvYXRcIiBcImZtb2RcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZnJleHAgOiBmbG9hdCAtPiBmbG9hdCAqIGludCA9IFwiY2FtbF9mcmV4cF9mbG9hdFwiXG5leHRlcm5hbCBsZGV4cCA6IChmbG9hdCBbQHVuYm94ZWRdKSAtPiAoaW50IFtAdW50YWdnZWRdKSAtPiAoZmxvYXQgW0B1bmJveGVkXSkgPVxuICBcImNhbWxfbGRleHBfZmxvYXRcIiBcImNhbWxfbGRleHBfZmxvYXRfdW5ib3hlZFwiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBtb2RmIDogZmxvYXQgLT4gZmxvYXQgKiBmbG9hdCA9IFwiY2FtbF9tb2RmX2Zsb2F0XCJcbmV4dGVybmFsIGZsb2F0IDogaW50IC0+IGZsb2F0ID0gXCIlZmxvYXRvZmludFwiXG5leHRlcm5hbCBmbG9hdF9vZl9pbnQgOiBpbnQgLT4gZmxvYXQgPSBcIiVmbG9hdG9maW50XCJcbmV4dGVybmFsIHRydW5jYXRlIDogZmxvYXQgLT4gaW50ID0gXCIlaW50b2ZmbG9hdFwiXG5leHRlcm5hbCBpbnRfb2ZfZmxvYXQgOiBmbG9hdCAtPiBpbnQgPSBcIiVpbnRvZmZsb2F0XCJcbmxldCBpbmZpbml0eSA9IGluZmluaXR5XG5sZXQgbmVnX2luZmluaXR5ID0gbmVnX2luZmluaXR5XG5sZXQgbmFuID0gbmFuXG5sZXQgbWF4X2Zsb2F0ID0gbWF4X2Zsb2F0XG5sZXQgbWluX2Zsb2F0ID0gbWluX2Zsb2F0XG5sZXQgZXBzaWxvbl9mbG9hdCA9IGVwc2lsb25fZmxvYXRcbnR5cGUgbm9ucmVjIGZwY2xhc3MgPSBmcGNsYXNzID1cbiAgICBGUF9ub3JtYWxcbiAgfCBGUF9zdWJub3JtYWxcbiAgfCBGUF96ZXJvXG4gIHwgRlBfaW5maW5pdGVcbiAgfCBGUF9uYW5cbmV4dGVybmFsIGNsYXNzaWZ5X2Zsb2F0IDogKGZsb2F0IFtAdW5ib3hlZF0pIC0+IGZwY2xhc3MgPVxuICBcImNhbWxfY2xhc3NpZnlfZmxvYXRcIiBcImNhbWxfY2xhc3NpZnlfZmxvYXRfdW5ib3hlZFwiIFtAQG5vYWxsb2NdXG5sZXQgKCBeICkgPSAoIF4gKVxuZXh0ZXJuYWwgaW50X29mX2NoYXIgOiBjaGFyIC0+IGludCA9IFwiJWlkZW50aXR5XCJcbmxldCBjaGFyX29mX2ludCA9IGNoYXJfb2ZfaW50XG5leHRlcm5hbCBpZ25vcmUgOiAnYSAtPiB1bml0ID0gXCIlaWdub3JlXCJcbmxldCBzdHJpbmdfb2ZfYm9vbCA9IHN0cmluZ19vZl9ib29sXG5sZXQgYm9vbF9vZl9zdHJpbmcgPSBib29sX29mX3N0cmluZ1xubGV0IGJvb2xfb2Zfc3RyaW5nX29wdCA9IGJvb2xfb2Zfc3RyaW5nX29wdFxubGV0IHN0cmluZ19vZl9pbnQgPSBzdHJpbmdfb2ZfaW50XG5leHRlcm5hbCBpbnRfb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGludCA9IFwiY2FtbF9pbnRfb2Zfc3RyaW5nXCJcbmxldCBpbnRfb2Zfc3RyaW5nX29wdCA9IGludF9vZl9zdHJpbmdfb3B0XG5sZXQgc3RyaW5nX29mX2Zsb2F0ID0gc3RyaW5nX29mX2Zsb2F0XG5leHRlcm5hbCBmbG9hdF9vZl9zdHJpbmcgOiBzdHJpbmcgLT4gZmxvYXQgPSBcImNhbWxfZmxvYXRfb2Zfc3RyaW5nXCJcbmxldCBmbG9hdF9vZl9zdHJpbmdfb3B0ID0gZmxvYXRfb2Zfc3RyaW5nX29wdFxuZXh0ZXJuYWwgZnN0IDogJ2EgKiAnYiAtPiAnYSA9IFwiJWZpZWxkMFwiXG5leHRlcm5hbCBzbmQgOiAnYSAqICdiIC0+ICdiID0gXCIlZmllbGQxXCJcbmxldCAoIEAgKSAgPSAoIEAgKVxudHlwZSBub25yZWMgaW5fY2hhbm5lbCA9IGluX2NoYW5uZWxcbnR5cGUgbm9ucmVjIG91dF9jaGFubmVsID0gb3V0X2NoYW5uZWxcbmxldCBzdGRpbiA9IHN0ZGluXG5sZXQgc3Rkb3V0ID0gc3Rkb3V0XG5sZXQgc3RkZXJyID0gc3RkZXJyXG5sZXQgcHJpbnRfY2hhciA9IHByaW50X2NoYXJcbmxldCBwcmludF9zdHJpbmcgPSBwcmludF9zdHJpbmdcbmxldCBwcmludF9ieXRlcyA9IHByaW50X2J5dGVzXG5sZXQgcHJpbnRfaW50ID0gcHJpbnRfaW50XG5sZXQgcHJpbnRfZmxvYXQgPSBwcmludF9mbG9hdFxubGV0IHByaW50X2VuZGxpbmUgPSBwcmludF9lbmRsaW5lXG5sZXQgcHJpbnRfbmV3bGluZSA9IHByaW50X25ld2xpbmVcbmxldCBwcmVycl9jaGFyID0gcHJlcnJfY2hhclxubGV0IHByZXJyX3N0cmluZyA9IHByZXJyX3N0cmluZ1xubGV0IHByZXJyX2J5dGVzID0gcHJlcnJfYnl0ZXNcbmxldCBwcmVycl9pbnQgPSBwcmVycl9pbnRcbmxldCBwcmVycl9mbG9hdCA9IHByZXJyX2Zsb2F0XG5sZXQgcHJlcnJfZW5kbGluZSA9IHByZXJyX2VuZGxpbmVcbmxldCBwcmVycl9uZXdsaW5lID0gcHJlcnJfbmV3bGluZVxubGV0IHJlYWRfbGluZSA9IHJlYWRfbGluZVxubGV0IHJlYWRfaW50ID0gcmVhZF9pbnRcbmxldCByZWFkX2ludF9vcHQgPSByZWFkX2ludF9vcHRcbmxldCByZWFkX2Zsb2F0ID0gcmVhZF9mbG9hdFxubGV0IHJlYWRfZmxvYXRfb3B0ID0gcmVhZF9mbG9hdF9vcHRcbnR5cGUgbm9ucmVjIG9wZW5fZmxhZyA9IG9wZW5fZmxhZyA9XG4gICAgT3Blbl9yZG9ubHlcbiAgfCBPcGVuX3dyb25seVxuICB8IE9wZW5fYXBwZW5kXG4gIHwgT3Blbl9jcmVhdFxuICB8IE9wZW5fdHJ1bmNcbiAgfCBPcGVuX2V4Y2xcbiAgfCBPcGVuX2JpbmFyeVxuICB8IE9wZW5fdGV4dFxuICB8IE9wZW5fbm9uYmxvY2tcbmxldCBvcGVuX291dCA9IG9wZW5fb3V0XG5sZXQgb3Blbl9vdXRfYmluID0gb3Blbl9vdXRfYmluXG5sZXQgb3Blbl9vdXRfZ2VuID0gb3Blbl9vdXRfZ2VuXG5sZXQgZmx1c2ggPSBmbHVzaFxubGV0IGZsdXNoX2FsbCA9IGZsdXNoX2FsbFxubGV0IG91dHB1dF9jaGFyID0gb3V0cHV0X2NoYXJcbmxldCBvdXRwdXRfc3RyaW5nID0gb3V0cHV0X3N0cmluZ1xubGV0IG91dHB1dF9ieXRlcyA9IG91dHB1dF9ieXRlc1xubGV0IG91dHB1dCA9IG91dHB1dFxubGV0IG91dHB1dF9zdWJzdHJpbmcgPSBvdXRwdXRfc3Vic3RyaW5nXG5sZXQgb3V0cHV0X2J5dGUgPSBvdXRwdXRfYnl0ZVxubGV0IG91dHB1dF9iaW5hcnlfaW50ID0gb3V0cHV0X2JpbmFyeV9pbnRcbmxldCBvdXRwdXRfdmFsdWUgPSBvdXRwdXRfdmFsdWVcbmxldCBzZWVrX291dCA9IHNlZWtfb3V0XG5sZXQgcG9zX291dCA9IHBvc19vdXRcbmxldCBvdXRfY2hhbm5lbF9sZW5ndGggPSBvdXRfY2hhbm5lbF9sZW5ndGhcbmxldCBjbG9zZV9vdXQgPSBjbG9zZV9vdXRcbmxldCBjbG9zZV9vdXRfbm9lcnIgPSBjbG9zZV9vdXRfbm9lcnJcbmxldCBzZXRfYmluYXJ5X21vZGVfb3V0ID0gc2V0X2JpbmFyeV9tb2RlX291dFxubGV0IG9wZW5faW4gPSBvcGVuX2luXG5sZXQgb3Blbl9pbl9iaW4gPSBvcGVuX2luX2JpblxubGV0IG9wZW5faW5fZ2VuID0gb3Blbl9pbl9nZW5cbmxldCBpbnB1dF9jaGFyID0gaW5wdXRfY2hhclxubGV0IGlucHV0X2xpbmUgPSBpbnB1dF9saW5lXG5sZXQgaW5wdXQgPSBpbnB1dFxubGV0IHJlYWxseV9pbnB1dCA9IHJlYWxseV9pbnB1dFxubGV0IHJlYWxseV9pbnB1dF9zdHJpbmcgPSByZWFsbHlfaW5wdXRfc3RyaW5nXG5sZXQgaW5wdXRfYnl0ZSA9IGlucHV0X2J5dGVcbmxldCBpbnB1dF9iaW5hcnlfaW50ID0gaW5wdXRfYmluYXJ5X2ludFxubGV0IGlucHV0X3ZhbHVlID0gaW5wdXRfdmFsdWVcbmxldCBzZWVrX2luID0gc2Vla19pblxubGV0IHBvc19pbiA9IHBvc19pblxubGV0IGluX2NoYW5uZWxfbGVuZ3RoID0gaW5fY2hhbm5lbF9sZW5ndGhcbmxldCBjbG9zZV9pbiA9IGNsb3NlX2luXG5sZXQgY2xvc2VfaW5fbm9lcnIgPSBjbG9zZV9pbl9ub2VyclxubGV0IHNldF9iaW5hcnlfbW9kZV9pbiA9IHNldF9iaW5hcnlfbW9kZV9pblxubW9kdWxlIExhcmdlRmlsZSA9IExhcmdlRmlsZVxudHlwZSBub25yZWMgJ2EgcmVmID0gJ2EgcmVmID0geyBtdXRhYmxlIGNvbnRlbnRzIDogJ2EgfVxuZXh0ZXJuYWwgcmVmIDogJ2EgLT4gJ2EgcmVmID0gXCIlbWFrZW11dGFibGVcIlxuZXh0ZXJuYWwgKCAhICkgOiAnYSByZWYgLT4gJ2EgPSBcIiVmaWVsZDBcIlxuZXh0ZXJuYWwgKCA6PSApIDogJ2EgcmVmIC0+ICdhIC0+IHVuaXQgPSBcIiVzZXRmaWVsZDBcIlxuZXh0ZXJuYWwgaW5jciA6IGludCByZWYgLT4gdW5pdCA9IFwiJWluY3JcIlxuZXh0ZXJuYWwgZGVjciA6IGludCByZWYgLT4gdW5pdCA9IFwiJWRlY3JcIlxudHlwZSBub25yZWMgKCdhLCdiKSByZXN1bHQgPSAoJ2EsJ2IpIHJlc3VsdCA9IE9rIG9mICdhIHwgRXJyb3Igb2YgJ2JcbnR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgPVxuICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzLmZvcm1hdDZcbnR5cGUgKCdhLCAnYiwgJ2MsICdkKSBmb3JtYXQ0ID0gKCdhLCAnYiwgJ2MsICdjLCAnYywgJ2QpIGZvcm1hdDZcbnR5cGUgKCdhLCAnYiwgJ2MpIGZvcm1hdCA9ICgnYSwgJ2IsICdjLCAnYykgZm9ybWF0NFxubGV0IHN0cmluZ19vZl9mb3JtYXQgPSBzdHJpbmdfb2ZfZm9ybWF0XG5leHRlcm5hbCBmb3JtYXRfb2Zfc3RyaW5nIDpcbiAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgLT5cbiAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgPSBcIiVpZGVudGl0eVwiXG5sZXQgKCBeXiApID0gKCBeXiApXG5sZXQgZXhpdCA9IGV4aXRcbmxldCBhdF9leGl0ID0gYXRfZXhpdFxubGV0IHZhbGlkX2Zsb2F0X2xleGVtID0gdmFsaWRfZmxvYXRfbGV4ZW1cbmxldCBkb19hdF9leGl0ID0gZG9fYXRfZXhpdFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICBHYWJyaWVsIFNjaGVyZXIsIHByb2pldCBQYXJzaWZhbCwgSU5SSUEgU2FjbGF5ICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxOSBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlICgnYSwgJ2IpIHQgPSBMZWZ0IG9mICdhIHwgUmlnaHQgb2YgJ2JcblxubGV0IGxlZnQgdiA9IExlZnQgdlxubGV0IHJpZ2h0IHYgPSBSaWdodCB2XG5cbmxldCBpc19sZWZ0ID0gZnVuY3Rpb25cbnwgTGVmdCBfIC0+IHRydWVcbnwgUmlnaHQgXyAtPiBmYWxzZVxuXG5sZXQgaXNfcmlnaHQgPSBmdW5jdGlvblxufCBMZWZ0IF8gLT4gZmFsc2VcbnwgUmlnaHQgXyAtPiB0cnVlXG5cbmxldCBmaW5kX2xlZnQgPSBmdW5jdGlvblxufCBMZWZ0IHYgLT4gU29tZSB2XG58IFJpZ2h0IF8gLT4gTm9uZVxuXG5sZXQgZmluZF9yaWdodCA9IGZ1bmN0aW9uXG58IExlZnQgXyAtPiBOb25lXG58IFJpZ2h0IHYgLT4gU29tZSB2XG5cbmxldCBtYXBfbGVmdCBmID0gZnVuY3Rpb25cbnwgTGVmdCB2IC0+IExlZnQgKGYgdilcbnwgUmlnaHQgXyBhcyBlIC0+IGVcblxubGV0IG1hcF9yaWdodCBmID0gZnVuY3Rpb25cbnwgTGVmdCBfIGFzIGUgLT4gZVxufCBSaWdodCB2IC0+IFJpZ2h0IChmIHYpXG5cbmxldCBtYXAgfmxlZnQgfnJpZ2h0ID0gZnVuY3Rpb25cbnwgTGVmdCB2IC0+IExlZnQgKGxlZnQgdilcbnwgUmlnaHQgdiAtPiBSaWdodCAocmlnaHQgdilcblxubGV0IGZvbGQgfmxlZnQgfnJpZ2h0ID0gZnVuY3Rpb25cbnwgTGVmdCB2IC0+IGxlZnQgdlxufCBSaWdodCB2IC0+IHJpZ2h0IHZcblxubGV0IGl0ZXIgPSBmb2xkXG5cbmxldCBmb3JfYWxsID0gZm9sZFxuXG5sZXQgZXF1YWwgfmxlZnQgfnJpZ2h0IGUxIGUyID0gbWF0Y2ggZTEsIGUyIHdpdGhcbnwgTGVmdCB2MSwgTGVmdCB2MiAtPiBsZWZ0IHYxIHYyXG58IFJpZ2h0IHYxLCBSaWdodCB2MiAtPiByaWdodCB2MSB2MlxufCBMZWZ0IF8sIFJpZ2h0IF8gfCBSaWdodCBfLCBMZWZ0IF8gLT4gZmFsc2VcblxubGV0IGNvbXBhcmUgfmxlZnQgfnJpZ2h0IGUxIGUyID0gbWF0Y2ggZTEsIGUyIHdpdGhcbnwgTGVmdCB2MSwgTGVmdCB2MiAtPiBsZWZ0IHYxIHYyXG58IFJpZ2h0IHYxLCBSaWdodCB2MiAtPiByaWdodCB2MSB2MlxufCBMZWZ0IF8sIFJpZ2h0IF8gLT4gKC0xKVxufCBSaWdodCBfLCBMZWZ0IF8gLT4gMVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBPcGVyYXRpb25zIG9uIGludGVybmFsIHJlcHJlc2VudGF0aW9ucyBvZiB2YWx1ZXMgKilcblxudHlwZSB0XG5cbnR5cGUgcmF3X2RhdGEgPSBuYXRpdmVpbnRcblxuZXh0ZXJuYWwgcmVwciA6ICdhIC0+IHQgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCBvYmogOiB0IC0+ICdhID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgbWFnaWMgOiAnYSAtPiAnYiA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIGlzX2ludCA6IHQgLT4gYm9vbCA9IFwiJW9ial9pc19pbnRcIlxubGV0IFtAaW5saW5lIGFsd2F5c10gaXNfYmxvY2sgYSA9IG5vdCAoaXNfaW50IGEpXG5leHRlcm5hbCB0YWcgOiB0IC0+IGludCA9IFwiY2FtbF9vYmpfdGFnXCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIHNldF90YWcgOiB0IC0+IGludCAtPiB1bml0ID0gXCJjYW1sX29ial9zZXRfdGFnXCJcbmV4dGVybmFsIHNpemUgOiB0IC0+IGludCA9IFwiJW9ial9zaXplXCJcbmV4dGVybmFsIHJlYWNoYWJsZV93b3JkcyA6IHQgLT4gaW50ID0gXCJjYW1sX29ial9yZWFjaGFibGVfd29yZHNcIlxuZXh0ZXJuYWwgZmllbGQgOiB0IC0+IGludCAtPiB0ID0gXCIlb2JqX2ZpZWxkXCJcbmV4dGVybmFsIHNldF9maWVsZCA6IHQgLT4gaW50IC0+IHQgLT4gdW5pdCA9IFwiJW9ial9zZXRfZmllbGRcIlxuZXh0ZXJuYWwgZmxvYXRhcnJheV9nZXQgOiBmbG9hdGFycmF5IC0+IGludCAtPiBmbG9hdCA9IFwiY2FtbF9mbG9hdGFycmF5X2dldFwiXG5leHRlcm5hbCBmbG9hdGFycmF5X3NldCA6XG4gICAgZmxvYXRhcnJheSAtPiBpbnQgLT4gZmxvYXQgLT4gdW5pdCA9IFwiY2FtbF9mbG9hdGFycmF5X3NldFwiXG5sZXQgW0BpbmxpbmUgYWx3YXlzXSBkb3VibGVfZmllbGQgeCBpID0gZmxvYXRhcnJheV9nZXQgKG9iaiB4IDogZmxvYXRhcnJheSkgaVxubGV0IFtAaW5saW5lIGFsd2F5c10gc2V0X2RvdWJsZV9maWVsZCB4IGkgdiA9XG4gIGZsb2F0YXJyYXlfc2V0IChvYmogeCA6IGZsb2F0YXJyYXkpIGkgdlxuZXh0ZXJuYWwgcmF3X2ZpZWxkIDogdCAtPiBpbnQgLT4gcmF3X2RhdGEgPSBcImNhbWxfb2JqX3Jhd19maWVsZFwiXG5leHRlcm5hbCBzZXRfcmF3X2ZpZWxkIDogdCAtPiBpbnQgLT4gcmF3X2RhdGEgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfb2JqX3NldF9yYXdfZmllbGRcIlxuXG5leHRlcm5hbCBuZXdfYmxvY2sgOiBpbnQgLT4gaW50IC0+IHQgPSBcImNhbWxfb2JqX2Jsb2NrXCJcbmV4dGVybmFsIGR1cCA6IHQgLT4gdCA9IFwiY2FtbF9vYmpfZHVwXCJcbmV4dGVybmFsIHRydW5jYXRlIDogdCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9vYmpfdHJ1bmNhdGVcIlxuZXh0ZXJuYWwgYWRkX29mZnNldCA6IHQgLT4gSW50MzIudCAtPiB0ID0gXCJjYW1sX29ial9hZGRfb2Zmc2V0XCJcbmV4dGVybmFsIHdpdGhfdGFnIDogaW50IC0+IHQgLT4gdCA9IFwiY2FtbF9vYmpfd2l0aF90YWdcIlxuXG5sZXQgZmlyc3Rfbm9uX2NvbnN0YW50X2NvbnN0cnVjdG9yX3RhZyA9IDBcbmxldCBsYXN0X25vbl9jb25zdGFudF9jb25zdHJ1Y3Rvcl90YWcgPSAyNDVcblxubGV0IGxhenlfdGFnID0gMjQ2XG5sZXQgY2xvc3VyZV90YWcgPSAyNDdcbmxldCBvYmplY3RfdGFnID0gMjQ4XG5sZXQgaW5maXhfdGFnID0gMjQ5XG5sZXQgZm9yd2FyZF90YWcgPSAyNTBcblxubGV0IG5vX3NjYW5fdGFnID0gMjUxXG5cbmxldCBhYnN0cmFjdF90YWcgPSAyNTFcbmxldCBzdHJpbmdfdGFnID0gMjUyXG5sZXQgZG91YmxlX3RhZyA9IDI1M1xubGV0IGRvdWJsZV9hcnJheV90YWcgPSAyNTRcbmxldCBjdXN0b21fdGFnID0gMjU1XG5sZXQgZmluYWxfdGFnID0gY3VzdG9tX3RhZ1xuXG5cbmxldCBpbnRfdGFnID0gMTAwMFxubGV0IG91dF9vZl9oZWFwX3RhZyA9IDEwMDFcbmxldCB1bmFsaWduZWRfdGFnID0gMTAwMlxuXG5tb2R1bGUgQ2xvc3VyZSA9IHN0cnVjdFxuICB0eXBlIGluZm8gPSB7XG4gICAgYXJpdHk6IGludDtcbiAgICBzdGFydF9lbnY6IGludDtcbiAgfVxuXG4gIGxldCBpbmZvX29mX3JhdyAoaW5mbyA6IG5hdGl2ZWludCkgPVxuICAgIGxldCBvcGVuIE5hdGl2ZWludCBpblxuICAgIGxldCBhcml0eSA9XG4gICAgICAoKiBzaWduZWQ6IG5lZ2F0aXZlIGZvciB0dXBsZWQgZnVuY3Rpb25zICopXG4gICAgICBpZiBTeXMud29yZF9zaXplID0gNjQgdGhlblxuICAgICAgICB0b19pbnQgKHNoaWZ0X3JpZ2h0IGluZm8gNTYpXG4gICAgICBlbHNlXG4gICAgICAgIHRvX2ludCAoc2hpZnRfcmlnaHQgaW5mbyAyNClcbiAgICBpblxuICAgIGxldCBzdGFydF9lbnYgPVxuICAgICAgKCogc3RhcnRfZW52IGlzIHVuc2lnbmVkLCBidXQgd2Uga25vdyBpdCBjYW4gYWx3YXlzIGZpdCBhbiBPQ2FtbFxuICAgICAgICAgaW50ZWdlciBzbyB3ZSB1c2UgW3RvX2ludF0gaW5zdGVhZCBvZiBbdW5zaWduZWRfdG9faW50XS4gKilcbiAgICAgIHRvX2ludCAoc2hpZnRfcmlnaHRfbG9naWNhbCAoc2hpZnRfbGVmdCBpbmZvIDgpIDkpIGluXG4gICAgeyBhcml0eTsgc3RhcnRfZW52IH1cblxuICAoKiBub3RlOiB3ZSBleHBlY3QgYSBjbG9zdXJlLCBub3QgYW4gaW5maXggcG9pbnRlciAqKVxuICBsZXQgaW5mbyAob2JqIDogdCkgPVxuICAgIGFzc2VydCAodGFnIG9iaiA9IGNsb3N1cmVfdGFnKTtcbiAgICBpbmZvX29mX3JhdyAocmF3X2ZpZWxkIG9iaiAxKVxuZW5kXG5cbm1vZHVsZSBFeHRlbnNpb25fY29uc3RydWN0b3IgPVxuc3RydWN0XG4gIHR5cGUgdCA9IGV4dGVuc2lvbl9jb25zdHJ1Y3RvclxuICBsZXQgb2ZfdmFsIHggPVxuICAgIGxldCB4ID0gcmVwciB4IGluXG4gICAgbGV0IHNsb3QgPVxuICAgICAgaWYgKGlzX2Jsb2NrIHgpICYmICh0YWcgeCkgPD4gb2JqZWN0X3RhZyAmJiAoc2l6ZSB4KSA+PSAxIHRoZW4gZmllbGQgeCAwXG4gICAgICBlbHNlIHhcbiAgICBpblxuICAgIGxldCBuYW1lID1cbiAgICAgIGlmIChpc19ibG9jayBzbG90KSAmJiAodGFnIHNsb3QpID0gb2JqZWN0X3RhZyB0aGVuIGZpZWxkIHNsb3QgMFxuICAgICAgZWxzZSBpbnZhbGlkX2FyZyBcIk9iai5leHRlbnNpb25fY29uc3RydWN0b3JcIlxuICAgIGluXG4gICAgICBpZiAodGFnIG5hbWUpID0gc3RyaW5nX3RhZyB0aGVuIChvYmogc2xvdCA6IHQpXG4gICAgICBlbHNlIGludmFsaWRfYXJnIFwiT2JqLmV4dGVuc2lvbl9jb25zdHJ1Y3RvclwiXG5cbiAgbGV0IFtAaW5saW5lIGFsd2F5c10gbmFtZSAoc2xvdCA6IHQpID1cbiAgICAob2JqIChmaWVsZCAocmVwciBzbG90KSAwKSA6IHN0cmluZylcblxuICBsZXQgW0BpbmxpbmUgYWx3YXlzXSBpZCAoc2xvdCA6IHQpID1cbiAgICAob2JqIChmaWVsZCAocmVwciBzbG90KSAxKSA6IGludClcbmVuZFxuXG5sZXQgZXh0ZW5zaW9uX2NvbnN0cnVjdG9yID0gRXh0ZW5zaW9uX2NvbnN0cnVjdG9yLm9mX3ZhbFxubGV0IGV4dGVuc2lvbl9uYW1lID0gRXh0ZW5zaW9uX2NvbnN0cnVjdG9yLm5hbWVcbmxldCBleHRlbnNpb25faWQgPSBFeHRlbnNpb25fY29uc3RydWN0b3IuaWRcblxubW9kdWxlIEVwaGVtZXJvbiA9IHN0cnVjdFxuICB0eXBlIG9ial90ID0gdFxuXG4gIHR5cGUgdCAoKiogZXBoZW1lcm9uICopXG5cbiAgICgqKiBUbyBjaGFuZ2UgaW4gc3luYyB3aXRoIHdlYWsuaCAqKVxuICBsZXQgYWRkaXRpb25hbF92YWx1ZXMgPSAyXG4gIGxldCBtYXhfZXBoZV9sZW5ndGggPSBTeXMubWF4X2FycmF5X2xlbmd0aCAtIGFkZGl0aW9uYWxfdmFsdWVzXG5cbiAgZXh0ZXJuYWwgY3JlYXRlIDogaW50IC0+IHQgPSBcImNhbWxfZXBoZV9jcmVhdGVcIjs7XG4gIGxldCBjcmVhdGUgbCA9XG4gICAgaWYgbm90ICgwIDw9IGwgJiYgbCA8PSBtYXhfZXBoZV9sZW5ndGgpIHRoZW5cbiAgICAgIGludmFsaWRfYXJnIFwiT2JqLkVwaGVtZXJvbi5jcmVhdGVcIjtcbiAgICBjcmVhdGUgbFxuXG4gIGxldCBsZW5ndGggeCA9IHNpemUocmVwciB4KSAtIGFkZGl0aW9uYWxfdmFsdWVzXG5cbiAgbGV0IHJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IGUgbyBtc2cgPVxuICAgIGlmIG5vdCAoMCA8PSBvICYmIG8gPCBsZW5ndGggZSkgdGhlblxuICAgICAgaW52YWxpZF9hcmcgbXNnXG5cbiAgZXh0ZXJuYWwgZ2V0X2tleTogdCAtPiBpbnQgLT4gb2JqX3Qgb3B0aW9uID0gXCJjYW1sX2VwaGVfZ2V0X2tleVwiXG4gIGxldCBnZXRfa2V5IGUgbyA9XG4gICAgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIFwiT2JqLkVwaGVtZXJvbi5nZXRfa2V5XCI7XG4gICAgZ2V0X2tleSBlIG9cblxuICBleHRlcm5hbCBnZXRfa2V5X2NvcHk6IHQgLT4gaW50IC0+IG9ial90IG9wdGlvbiA9IFwiY2FtbF9lcGhlX2dldF9rZXlfY29weVwiXG4gIGxldCBnZXRfa2V5X2NvcHkgZSBvID1cbiAgICByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gXCJPYmouRXBoZW1lcm9uLmdldF9rZXlfY29weVwiO1xuICAgIGdldF9rZXlfY29weSBlIG9cblxuICBleHRlcm5hbCBzZXRfa2V5OiB0IC0+IGludCAtPiBvYmpfdCAtPiB1bml0ID0gXCJjYW1sX2VwaGVfc2V0X2tleVwiXG4gIGxldCBzZXRfa2V5IGUgbyB4ID1cbiAgICByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gXCJPYmouRXBoZW1lcm9uLnNldF9rZXlcIjtcbiAgICBzZXRfa2V5IGUgbyB4XG5cbiAgZXh0ZXJuYWwgdW5zZXRfa2V5OiB0IC0+IGludCAtPiB1bml0ID0gXCJjYW1sX2VwaGVfdW5zZXRfa2V5XCJcbiAgbGV0IHVuc2V0X2tleSBlIG8gPVxuICAgIHJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IGUgbyBcIk9iai5FcGhlbWVyb24udW5zZXRfa2V5XCI7XG4gICAgdW5zZXRfa2V5IGUgb1xuXG4gIGV4dGVybmFsIGNoZWNrX2tleTogdCAtPiBpbnQgLT4gYm9vbCA9IFwiY2FtbF9lcGhlX2NoZWNrX2tleVwiXG4gIGxldCBjaGVja19rZXkgZSBvID1cbiAgICByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gXCJPYmouRXBoZW1lcm9uLmNoZWNrX2tleVwiO1xuICAgIGNoZWNrX2tleSBlIG9cblxuICBleHRlcm5hbCBibGl0X2tleSA6IHQgLT4gaW50IC0+IHQgLT4gaW50IC0+IGludCAtPiB1bml0XG4gICAgPSBcImNhbWxfZXBoZV9ibGl0X2tleVwiXG5cbiAgbGV0IGJsaXRfa2V5IGUxIG8xIGUyIG8yIGwgPVxuICAgIGlmIGwgPCAwIHx8IG8xIDwgMCB8fCBvMSA+IGxlbmd0aCBlMSAtIGxcbiAgICAgICB8fCBvMiA8IDAgfHwgbzIgPiBsZW5ndGggZTIgLSBsXG4gICAgdGhlbiBpbnZhbGlkX2FyZyBcIk9iai5FcGhlbWVyb24uYmxpdF9rZXlcIlxuICAgIGVsc2UgaWYgbCA8PiAwIHRoZW4gYmxpdF9rZXkgZTEgbzEgZTIgbzIgbFxuXG4gIGV4dGVybmFsIGdldF9kYXRhOiB0IC0+IG9ial90IG9wdGlvbiA9IFwiY2FtbF9lcGhlX2dldF9kYXRhXCJcbiAgZXh0ZXJuYWwgZ2V0X2RhdGFfY29weTogdCAtPiBvYmpfdCBvcHRpb24gPSBcImNhbWxfZXBoZV9nZXRfZGF0YV9jb3B5XCJcbiAgZXh0ZXJuYWwgc2V0X2RhdGE6IHQgLT4gb2JqX3QgLT4gdW5pdCA9IFwiY2FtbF9lcGhlX3NldF9kYXRhXCJcbiAgZXh0ZXJuYWwgdW5zZXRfZGF0YTogdCAtPiB1bml0ID0gXCJjYW1sX2VwaGVfdW5zZXRfZGF0YVwiXG4gIGV4dGVybmFsIGNoZWNrX2RhdGE6IHQgLT4gYm9vbCA9IFwiY2FtbF9lcGhlX2NoZWNrX2RhdGFcIlxuICBleHRlcm5hbCBibGl0X2RhdGEgOiB0IC0+IHQgLT4gdW5pdCA9IFwiY2FtbF9lcGhlX2JsaXRfZGF0YVwiXG5cbmVuZFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgRGFtaWVuIERvbGlnZXosIHByb2pldCBQYXJhLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NyBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBJbnRlcm5hbHMgb2YgZm9yY2luZyBsYXp5IHZhbHVlcy4gKilcblxudHlwZSAnYSB0ID0gJ2EgbGF6eV90XG5cbmV4Y2VwdGlvbiBVbmRlZmluZWRcblxubGV0IHJhaXNlX3VuZGVmaW5lZCA9IE9iai5yZXByIChmdW4gKCkgLT4gcmFpc2UgVW5kZWZpbmVkKVxuXG5leHRlcm5hbCBtYWtlX2ZvcndhcmQgOiBPYmoudCAtPiBPYmoudCAtPiB1bml0ID0gXCJjYW1sX29ial9tYWtlX2ZvcndhcmRcIlxuXG4oKiBBc3N1bWUgW2Jsa10gaXMgYSBibG9jayB3aXRoIHRhZyBsYXp5ICopXG5sZXQgZm9yY2VfbGF6eV9ibG9jayAoYmxrIDogJ2FyZyBsYXp5X3QpID1cbiAgbGV0IGNsb3N1cmUgPSAoT2JqLm9iaiAoT2JqLmZpZWxkIChPYmoucmVwciBibGspIDApIDogdW5pdCAtPiAnYXJnKSBpblxuICBPYmouc2V0X2ZpZWxkIChPYmoucmVwciBibGspIDAgcmFpc2VfdW5kZWZpbmVkO1xuICB0cnlcbiAgICBsZXQgcmVzdWx0ID0gY2xvc3VyZSAoKSBpblxuICAgIG1ha2VfZm9yd2FyZCAoT2JqLnJlcHIgYmxrKSAoT2JqLnJlcHIgcmVzdWx0KTtcbiAgICByZXN1bHRcbiAgd2l0aCBlIC0+XG4gICAgT2JqLnNldF9maWVsZCAoT2JqLnJlcHIgYmxrKSAwIChPYmoucmVwciAoZnVuICgpIC0+IHJhaXNlIGUpKTtcbiAgICByYWlzZSBlXG5cblxuKCogQXNzdW1lIFtibGtdIGlzIGEgYmxvY2sgd2l0aCB0YWcgbGF6eSAqKVxubGV0IGZvcmNlX3ZhbF9sYXp5X2Jsb2NrIChibGsgOiAnYXJnIGxhenlfdCkgPVxuICBsZXQgY2xvc3VyZSA9IChPYmoub2JqIChPYmouZmllbGQgKE9iai5yZXByIGJsaykgMCkgOiB1bml0IC0+ICdhcmcpIGluXG4gIE9iai5zZXRfZmllbGQgKE9iai5yZXByIGJsaykgMCByYWlzZV91bmRlZmluZWQ7XG4gIGxldCByZXN1bHQgPSBjbG9zdXJlICgpIGluXG4gIG1ha2VfZm9yd2FyZCAoT2JqLnJlcHIgYmxrKSAoT2JqLnJlcHIgcmVzdWx0KTtcbiAgcmVzdWx0XG5cblxuKCogW2ZvcmNlXSBpcyBub3QgdXNlZCwgc2luY2UgW0xhenkuZm9yY2VdIGlzIGRlY2xhcmVkIGFzIGEgcHJpbWl0aXZlXG4gICB3aG9zZSBjb2RlIGlubGluZXMgdGhlIHRhZyB0ZXN0cyBvZiBpdHMgYXJndW1lbnQsIGV4Y2VwdCB3aGVuIGFmbFxuICAgaW5zdHJ1bWVudGF0aW9uIGlzIHR1cm5lZCBvbi4gKilcblxubGV0IGZvcmNlIChsenYgOiAnYXJnIGxhenlfdCkgPVxuICAoKiBVc2luZyBbU3lzLm9wYXF1ZV9pZGVudGl0eV0gcHJldmVudHMgdHdvIHBvdGVudGlhbCBwcm9ibGVtczpcbiAgICAgLSBJZiB0aGUgdmFsdWUgaXMga25vd24gdG8gaGF2ZSBGb3J3YXJkX3RhZywgdGhlbiBpdHMgdGFnIGNvdWxkIGhhdmVcbiAgICAgICBjaGFuZ2VkIGR1cmluZyBHQywgc28gdGhhdCBpbmZvcm1hdGlvbiBtdXN0IGJlIGZvcmdvdHRlbiAoc2VlIEdQUiM3MTNcbiAgICAgICBhbmQgaXNzdWUgIzczMDEpXG4gICAgIC0gSWYgdGhlIHZhbHVlIGlzIGtub3duIHRvIGJlIGltbXV0YWJsZSwgdGhlbiBpZiB0aGUgY29tcGlsZXJcbiAgICAgICBjYW5ub3QgcHJvdmUgdGhhdCB0aGUgbGFzdCBicmFuY2ggaXMgbm90IHRha2VuIGl0IHdpbGwgaXNzdWUgYVxuICAgICAgIHdhcm5pbmcgNTkgKG1vZGlmaWNhdGlvbiBvZiBhbiBpbW11dGFibGUgdmFsdWUpICopXG4gIGxldCBsenYgPSBTeXMub3BhcXVlX2lkZW50aXR5IGx6diBpblxuICBsZXQgeCA9IE9iai5yZXByIGx6diBpblxuICBsZXQgdCA9IE9iai50YWcgeCBpblxuICBpZiB0ID0gT2JqLmZvcndhcmRfdGFnIHRoZW4gKE9iai5vYmogKE9iai5maWVsZCB4IDApIDogJ2FyZykgZWxzZVxuICBpZiB0IDw+IE9iai5sYXp5X3RhZyB0aGVuIChPYmoub2JqIHggOiAnYXJnKVxuICBlbHNlIGZvcmNlX2xhenlfYmxvY2sgbHp2XG5cblxubGV0IGZvcmNlX3ZhbCAobHp2IDogJ2FyZyBsYXp5X3QpID1cbiAgbGV0IHggPSBPYmoucmVwciBsenYgaW5cbiAgbGV0IHQgPSBPYmoudGFnIHggaW5cbiAgaWYgdCA9IE9iai5mb3J3YXJkX3RhZyB0aGVuIChPYmoub2JqIChPYmouZmllbGQgeCAwKSA6ICdhcmcpIGVsc2VcbiAgaWYgdCA8PiBPYmoubGF6eV90YWcgdGhlbiAoT2JqLm9iaiB4IDogJ2FyZylcbiAgZWxzZSBmb3JjZV92YWxfbGF6eV9ibG9jayBsenZcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIERhbWllbiBEb2xpZ2V6LCBwcm9qZXQgUGFyYSwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTcgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogTW9kdWxlIFtMYXp5XTogZGVmZXJyZWQgY29tcHV0YXRpb25zICopXG5cblxuKCpcbiAgIFdBUk5JTkc6IHNvbWUgcHVycGxlIG1hZ2ljIGlzIGdvaW5nIG9uIGhlcmUuICBEbyBub3QgdGFrZSB0aGlzIGZpbGVcbiAgIGFzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHByb2dyYW0gaW4gT0NhbWwuXG4qKVxuXG5cbigqIFdlIG1ha2UgdXNlIG9mIHR3byBzcGVjaWFsIHRhZ3MgcHJvdmlkZWQgYnkgdGhlIHJ1bnRpbWU6XG4gICBbbGF6eV90YWddIGFuZCBbZm9yd2FyZF90YWddLlxuXG4gICBBIHZhbHVlIG9mIHR5cGUgWydhIExhenkudF0gY2FuIGJlIG9uZSBvZiB0aHJlZSB0aGluZ3M6XG4gICAxLiBBIGJsb2NrIG9mIHNpemUgMSB3aXRoIHRhZyBbbGF6eV90YWddLiAgSXRzIGZpZWxkIGlzIGEgY2xvc3VyZSBvZlxuICAgICAgdHlwZSBbdW5pdCAtPiAnYV0gdGhhdCBjb21wdXRlcyB0aGUgdmFsdWUuXG4gICAyLiBBIGJsb2NrIG9mIHNpemUgMSB3aXRoIHRhZyBbZm9yd2FyZF90YWddLiAgSXRzIGZpZWxkIGlzIHRoZSB2YWx1ZVxuICAgICAgb2YgdHlwZSBbJ2FdIHRoYXQgd2FzIGNvbXB1dGVkLlxuICAgMy4gQW55dGhpbmcgZWxzZSBleGNlcHQgYSBmbG9hdC4gIFRoaXMgaGFzIHR5cGUgWydhXSBhbmQgaXMgdGhlIHZhbHVlXG4gICAgICB0aGF0IHdhcyBjb21wdXRlZC5cbiAgIEV4Y2VwdGlvbnMgYXJlIHN0b3JlZCBpbiBmb3JtYXQgKDEpLlxuICAgVGhlIEdDIHdpbGwgbWFnaWNhbGx5IGNoYW5nZSB0aGluZ3MgZnJvbSAoMikgdG8gKDMpIGFjY29yZGluZyB0byBpdHNcbiAgIGZhbmN5LlxuXG4gICBJZiBPQ2FtbCB3YXMgY29uZmlndXJlZCB3aXRoIHRoZSAtZmxhdC1mbG9hdC1hcnJheSBvcHRpb24gKHdoaWNoIGlzXG4gICBjdXJyZW50bHkgdGhlIGRlZmF1bHQpLCB0aGUgZm9sbG93aW5nIGlzIGFsc28gdHJ1ZTpcbiAgIFdlIGNhbm5vdCB1c2UgcmVwcmVzZW50YXRpb24gKDMpIGZvciBhIFtmbG9hdCBMYXp5LnRdIGJlY2F1c2VcbiAgIFtjYW1sX21ha2VfYXJyYXldIGFzc3VtZXMgdGhhdCBvbmx5IGEgW2Zsb2F0XSB2YWx1ZSBjYW4gaGF2ZSB0YWdcbiAgIFtEb3VibGVfdGFnXS5cblxuICAgV2UgaGF2ZSB0byB1c2UgdGhlIGJ1aWx0LWluIHR5cGUgY29uc3RydWN0b3IgW2xhenlfdF0gdG9cbiAgIGxldCB0aGUgY29tcGlsZXIgaW1wbGVtZW50IHRoZSBzcGVjaWFsIHR5cGluZyBhbmQgY29tcGlsYXRpb25cbiAgIHJ1bGVzIGZvciB0aGUgW2xhenldIGtleXdvcmQuXG4qKVxuXG50eXBlICdhIHQgPSAnYSBDYW1saW50ZXJuYWxMYXp5LnRcblxuZXhjZXB0aW9uIFVuZGVmaW5lZCA9IENhbWxpbnRlcm5hbExhenkuVW5kZWZpbmVkXG5cbmV4dGVybmFsIG1ha2VfZm9yd2FyZCA6ICdhIC0+ICdhIGxhenlfdCA9IFwiY2FtbF9sYXp5X21ha2VfZm9yd2FyZFwiXG5cbmV4dGVybmFsIGZvcmNlIDogJ2EgdCAtPiAnYSA9IFwiJWxhenlfZm9yY2VcIlxuXG5cbmxldCBmb3JjZV92YWwgPSBDYW1saW50ZXJuYWxMYXp5LmZvcmNlX3ZhbFxuXG5sZXQgZnJvbV9mdW4gKGYgOiB1bml0IC0+ICdhcmcpID1cbiAgbGV0IHggPSBPYmoubmV3X2Jsb2NrIE9iai5sYXp5X3RhZyAxIGluXG4gIE9iai5zZXRfZmllbGQgeCAwIChPYmoucmVwciBmKTtcbiAgKE9iai5vYmogeCA6ICdhcmcgdClcblxubGV0IGZyb21fdmFsICh2IDogJ2FyZykgPVxuICBsZXQgdCA9IE9iai50YWcgKE9iai5yZXByIHYpIGluXG4gIGlmIHQgPSBPYmouZm9yd2FyZF90YWcgfHwgdCA9IE9iai5sYXp5X3RhZyB8fCB0ID0gT2JqLmRvdWJsZV90YWcgdGhlbiBiZWdpblxuICAgIG1ha2VfZm9yd2FyZCB2XG4gIGVuZCBlbHNlIGJlZ2luXG4gICAgKE9iai5tYWdpYyB2IDogJ2FyZyB0KVxuICBlbmRcblxuXG5sZXQgaXNfdmFsIChsIDogJ2FyZyB0KSA9IE9iai50YWcgKE9iai5yZXByIGwpIDw+IE9iai5sYXp5X3RhZ1xuXG5sZXQgbGF6eV9mcm9tX2Z1biA9IGZyb21fZnVuXG5cbmxldCBsYXp5X2Zyb21fdmFsID0gZnJvbV92YWxcblxubGV0IGxhenlfaXNfdmFsID0gaXNfdmFsXG5cblxubGV0IG1hcCBmIHggPVxuICBsYXp5IChmIChmb3JjZSB4KSlcblxubGV0IG1hcF92YWwgZiB4ID1cbiAgaWYgaXNfdmFsIHhcbiAgdGhlbiBsYXp5X2Zyb21fdmFsIChmIChmb3JjZSB4KSlcbiAgZWxzZSBsYXp5IChmIChmb3JjZSB4KSlcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICBTaW1vbiBDcnVhbmVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTcgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogTW9kdWxlIFtTZXFdOiBmdW5jdGlvbmFsIGl0ZXJhdG9ycyAqKVxuXG50eXBlICsnYSBub2RlID1cbiAgfCBOaWxcbiAgfCBDb25zIG9mICdhICogJ2EgdFxuXG5hbmQgJ2EgdCA9IHVuaXQgLT4gJ2Egbm9kZVxuXG5sZXQgZW1wdHkgKCkgPSBOaWxcblxubGV0IHJldHVybiB4ICgpID0gQ29ucyAoeCwgZW1wdHkpXG5cbmxldCBjb25zIHggbmV4dCAoKSA9IENvbnMgKHgsIG5leHQpXG5cbmxldCByZWMgYXBwZW5kIHNlcTEgc2VxMiAoKSA9XG4gIG1hdGNoIHNlcTEoKSB3aXRoXG4gIHwgTmlsIC0+IHNlcTIoKVxuICB8IENvbnMgKHgsIG5leHQpIC0+IENvbnMgKHgsIGFwcGVuZCBuZXh0IHNlcTIpXG5cbmxldCByZWMgbWFwIGYgc2VxICgpID0gbWF0Y2ggc2VxKCkgd2l0aFxuICB8IE5pbCAtPiBOaWxcbiAgfCBDb25zICh4LCBuZXh0KSAtPiBDb25zIChmIHgsIG1hcCBmIG5leHQpXG5cbmxldCByZWMgZmlsdGVyX21hcCBmIHNlcSAoKSA9IG1hdGNoIHNlcSgpIHdpdGhcbiAgfCBOaWwgLT4gTmlsXG4gIHwgQ29ucyAoeCwgbmV4dCkgLT5cbiAgICAgIG1hdGNoIGYgeCB3aXRoXG4gICAgICAgIHwgTm9uZSAtPiBmaWx0ZXJfbWFwIGYgbmV4dCAoKVxuICAgICAgICB8IFNvbWUgeSAtPiBDb25zICh5LCBmaWx0ZXJfbWFwIGYgbmV4dClcblxubGV0IHJlYyBmaWx0ZXIgZiBzZXEgKCkgPSBtYXRjaCBzZXEoKSB3aXRoXG4gIHwgTmlsIC0+IE5pbFxuICB8IENvbnMgKHgsIG5leHQpIC0+XG4gICAgICBpZiBmIHhcbiAgICAgIHRoZW4gQ29ucyAoeCwgZmlsdGVyIGYgbmV4dClcbiAgICAgIGVsc2UgZmlsdGVyIGYgbmV4dCAoKVxuXG5sZXQgcmVjIGNvbmNhdCBzZXEgKCkgPSBtYXRjaCBzZXEgKCkgd2l0aFxuICB8IE5pbCAtPiBOaWxcbiAgfCBDb25zICh4LCBuZXh0KSAtPlxuICAgICBhcHBlbmQgeCAoY29uY2F0IG5leHQpICgpXG5cbmxldCByZWMgZmxhdF9tYXAgZiBzZXEgKCkgPSBtYXRjaCBzZXEgKCkgd2l0aFxuICB8IE5pbCAtPiBOaWxcbiAgfCBDb25zICh4LCBuZXh0KSAtPlxuICAgIGFwcGVuZCAoZiB4KSAoZmxhdF9tYXAgZiBuZXh0KSAoKVxuXG5sZXQgY29uY2F0X21hcCA9IGZsYXRfbWFwXG5cbmxldCByZWMgZm9sZF9sZWZ0IGYgYWNjIHNlcSA9XG4gIG1hdGNoIHNlcSAoKSB3aXRoXG4gICAgfCBOaWwgLT4gYWNjXG4gICAgfCBDb25zICh4LCBuZXh0KSAtPlxuICAgICAgICBsZXQgYWNjID0gZiBhY2MgeCBpblxuICAgICAgICBmb2xkX2xlZnQgZiBhY2MgbmV4dFxuXG5sZXQgcmVjIGl0ZXIgZiBzZXEgPVxuICBtYXRjaCBzZXEgKCkgd2l0aFxuICAgIHwgTmlsIC0+ICgpXG4gICAgfCBDb25zICh4LCBuZXh0KSAtPlxuICAgICAgICBmIHg7XG4gICAgICAgIGl0ZXIgZiBuZXh0XG5cbmxldCByZWMgdW5mb2xkIGYgdSAoKSA9XG4gIG1hdGNoIGYgdSB3aXRoXG4gIHwgTm9uZSAtPiBOaWxcbiAgfCBTb21lICh4LCB1JykgLT4gQ29ucyAoeCwgdW5mb2xkIGYgdScpXG5cbmxldCBpc19lbXB0eSB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgdHJ1ZVxuICB8IENvbnMgKF8sIF8pIC0+XG4gICAgICBmYWxzZVxuXG5sZXQgdW5jb25zIHhzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBTb21lICh4LCB4cylcbiAgfCBOaWwgLT5cbiAgICAgIE5vbmVcblxuXG5cbmxldCByZWMgbGVuZ3RoX2F1eCBhY2N1IHhzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBhY2N1XG4gIHwgQ29ucyAoXywgeHMpIC0+XG4gICAgICBsZW5ndGhfYXV4IChhY2N1ICsgMSkgeHNcblxubGV0W0BpbmxpbmVdIGxlbmd0aCB4cyA9XG4gIGxlbmd0aF9hdXggMCB4c1xuXG5sZXQgcmVjIGl0ZXJpX2F1eCBmIGkgeHMgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgICgpXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBmIGkgeDtcbiAgICAgIGl0ZXJpX2F1eCBmIChpKzEpIHhzXG5cbmxldFtAaW5saW5lXSBpdGVyaSBmIHhzID1cbiAgaXRlcmlfYXV4IGYgMCB4c1xuXG5sZXQgcmVjIGZvbGRfbGVmdGlfYXV4IGYgYWNjdSBpIHhzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBhY2N1XG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBsZXQgYWNjdSA9IGYgYWNjdSBpIHggaW5cbiAgICAgIGZvbGRfbGVmdGlfYXV4IGYgYWNjdSAoaSsxKSB4c1xuXG5sZXRbQGlubGluZV0gZm9sZF9sZWZ0aSBmIGFjY3UgeHMgPVxuICBmb2xkX2xlZnRpX2F1eCBmIGFjY3UgMCB4c1xuXG5sZXQgcmVjIGZvcl9hbGwgcCB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgdHJ1ZVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgcCB4ICYmIGZvcl9hbGwgcCB4c1xuXG5sZXQgcmVjIGV4aXN0cyBwIHhzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBmYWxzZVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgcCB4IHx8IGV4aXN0cyBwIHhzXG5cbmxldCByZWMgZmluZCBwIHhzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOb25lXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBpZiBwIHggdGhlbiBTb21lIHggZWxzZSBmaW5kIHAgeHNcblxubGV0IHJlYyBmaW5kX21hcCBmIHhzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOb25lXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBtYXRjaCBmIHggd2l0aFxuICAgICAgfCBOb25lIC0+XG4gICAgICAgICAgZmluZF9tYXAgZiB4c1xuICAgICAgfCBTb21lIF8gYXMgcmVzdWx0IC0+XG4gICAgICAgICAgcmVzdWx0XG5cbigqIFtpdGVyMl0sIFtmb2xkX2xlZnQyXSwgW2Zvcl9hbGwyXSwgW2V4aXN0czJdLCBbbWFwMl0sIFt6aXBdIHdvcmsgYWxzbyBpblxuICAgdGhlIGNhc2Ugd2hlcmUgdGhlIHR3byBzZXF1ZW5jZXMgaGF2ZSBkaWZmZXJlbnQgbGVuZ3Rocy4gVGhleSBzdG9wIGFzIHNvb25cbiAgIGFzIG9uZSBzZXF1ZW5jZSBpcyBleGhhdXN0ZWQuIFRoZWlyIGJlaGF2aW9yIGlzIHNsaWdodGx5IGFzeW1tZXRyaWM6IHdoZW5cbiAgIFt4c10gaXMgZW1wdHksIHRoZXkgZG8gbm90IGZvcmNlIFt5c107IGhvd2V2ZXIsIHdoZW4gW3lzXSBpcyBlbXB0eSwgW3hzXSBpc1xuICAgZm9yY2VkLCBldmVuIHRob3VnaCB0aGUgcmVzdWx0IG9mIHRoZSBmdW5jdGlvbiBhcHBsaWNhdGlvbiBbeHMoKV0gdHVybnMgb3V0XG4gICB0byBiZSB1c2VsZXNzLiAqKVxuXG5sZXQgcmVjIGl0ZXIyIGYgeHMgeXMgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgICgpXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBtYXRjaCB5cygpIHdpdGhcbiAgICAgIHwgTmlsIC0+XG4gICAgICAgICAgKClcbiAgICAgIHwgQ29ucyAoeSwgeXMpIC0+XG4gICAgICAgICAgZiB4IHk7XG4gICAgICAgICAgaXRlcjIgZiB4cyB5c1xuXG5sZXQgcmVjIGZvbGRfbGVmdDIgZiBhY2N1IHhzIHlzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBhY2N1XG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBtYXRjaCB5cygpIHdpdGhcbiAgICAgIHwgTmlsIC0+XG4gICAgICAgICAgYWNjdVxuICAgICAgfCBDb25zICh5LCB5cykgLT5cbiAgICAgICAgICBsZXQgYWNjdSA9IGYgYWNjdSB4IHkgaW5cbiAgICAgICAgICBmb2xkX2xlZnQyIGYgYWNjdSB4cyB5c1xuXG5sZXQgcmVjIGZvcl9hbGwyIGYgeHMgeXMgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIHRydWVcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIG1hdGNoIHlzKCkgd2l0aFxuICAgICAgfCBOaWwgLT5cbiAgICAgICAgICB0cnVlXG4gICAgICB8IENvbnMgKHksIHlzKSAtPlxuICAgICAgICAgIGYgeCB5ICYmIGZvcl9hbGwyIGYgeHMgeXNcblxubGV0IHJlYyBleGlzdHMyIGYgeHMgeXMgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIGZhbHNlXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBtYXRjaCB5cygpIHdpdGhcbiAgICAgIHwgTmlsIC0+XG4gICAgICAgICAgZmFsc2VcbiAgICAgIHwgQ29ucyAoeSwgeXMpIC0+XG4gICAgICAgICAgZiB4IHkgfHwgZXhpc3RzMiBmIHhzIHlzXG5cbmxldCByZWMgZXF1YWwgZXEgeHMgeXMgPVxuICBtYXRjaCB4cygpLCB5cygpIHdpdGhcbiAgfCBOaWwsIE5pbCAtPlxuICAgICAgdHJ1ZVxuICB8IENvbnMgKHgsIHhzKSwgQ29ucyAoeSwgeXMpIC0+XG4gICAgICBlcSB4IHkgJiYgZXF1YWwgZXEgeHMgeXNcbiAgfCBOaWwsIENvbnMgKF8sIF8pXG4gIHwgQ29ucyAoXywgXyksIE5pbCAtPlxuICAgICAgZmFsc2VcblxubGV0IHJlYyBjb21wYXJlIGNtcCB4cyB5cyA9XG4gIG1hdGNoIHhzKCksIHlzKCkgd2l0aFxuICB8IE5pbCwgTmlsIC0+XG4gICAgICAwXG4gIHwgQ29ucyAoeCwgeHMpLCBDb25zICh5LCB5cykgLT5cbiAgICAgIGxldCBjID0gY21wIHggeSBpblxuICAgICAgaWYgYyA8PiAwIHRoZW4gYyBlbHNlIGNvbXBhcmUgY21wIHhzIHlzXG4gIHwgTmlsLCBDb25zIChfLCBfKSAtPlxuICAgICAgLTFcbiAgfCBDb25zIChfLCBfKSwgTmlsIC0+XG4gICAgICArMVxuXG5cblxuKCogW2luaXRfYXV4IGYgaSBqXSBpcyB0aGUgc2VxdWVuY2UgW2YgaSwgLi4uLCBmIChqLTEpXS4gKilcblxubGV0IHJlYyBpbml0X2F1eCBmIGkgaiAoKSA9XG4gIGlmIGkgPCBqIHRoZW4gYmVnaW5cbiAgICBDb25zIChmIGksIGluaXRfYXV4IGYgKGkgKyAxKSBqKVxuICBlbmRcbiAgZWxzZVxuICAgIE5pbFxuXG5sZXQgaW5pdCBuIGYgPVxuICBpZiBuIDwgMCB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJTZXEuaW5pdFwiXG4gIGVsc2VcbiAgICBpbml0X2F1eCBmIDAgblxuXG5sZXQgcmVjIHJlcGVhdCB4ICgpID1cbiAgQ29ucyAoeCwgcmVwZWF0IHgpXG5cbmxldCByZWMgZm9yZXZlciBmICgpID1cbiAgQ29ucyAoZigpLCBmb3JldmVyIGYpXG5cbigqIFRoaXMgcHJlbGltaW5hcnkgZGVmaW5pdGlvbiBvZiBbY3ljbGVdIHJlcXVpcmVzIHRoZSBzZXF1ZW5jZSBbeHNdXG4gICB0byBiZSBub25lbXB0eS4gQXBwbHlpbmcgaXQgdG8gYW4gZW1wdHkgc2VxdWVuY2Ugd291bGQgcHJvZHVjZSBhXG4gICBzZXF1ZW5jZSB0aGF0IGRpdmVyZ2VzIHdoZW4gaXQgaXMgZm9yY2VkLiAqKVxuXG5sZXQgcmVjIGN5Y2xlX25vbmVtcHR5IHhzICgpID1cbiAgYXBwZW5kIHhzIChjeWNsZV9ub25lbXB0eSB4cykgKClcblxuKCogW2N5Y2xlIHhzXSBjaGVja3Mgd2hldGhlciBbeHNdIGlzIGVtcHR5IGFuZCwgaWYgc28sIHJldHVybnMgYW4gZW1wdHlcbiAgIHNlcXVlbmNlLiBPdGhlcndpc2UsIFtjeWNsZSB4c10gcHJvZHVjZXMgb25lIGNvcHkgb2YgW3hzXSBmb2xsb3dlZFxuICAgd2l0aCB0aGUgaW5maW5pdGUgc2VxdWVuY2UgW2N5Y2xlX25vbmVtcHR5IHhzXS4gVGh1cywgdGhlIG5vbmVtcHRpbmVzc1xuICAgY2hlY2sgaXMgcGVyZm9ybWVkIGp1c3Qgb25jZS4gKilcblxubGV0IGN5Y2xlIHhzICgpID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOaWxcbiAgfCBDb25zICh4LCB4cycpIC0+XG4gICAgICBDb25zICh4LCBhcHBlbmQgeHMnIChjeWNsZV9ub25lbXB0eSB4cykpXG5cbigqIFtpdGVyYXRlMSBmIHhdIGlzIHRoZSBzZXF1ZW5jZSBbZiB4LCBmIChmIHgpLCAuLi5dLlxuICAgSXQgaXMgZXF1aXZhbGVudCB0byBbdGFpbCAoaXRlcmF0ZSBmIHgpXS5cbiAgIFtpdGVyYXRlMV0gaXMgdXNlZCBhcyBhIGJ1aWxkaW5nIGJsb2NrIGluIHRoZSBkZWZpbml0aW9uIG9mIFtpdGVyYXRlXS4gKilcblxubGV0IHJlYyBpdGVyYXRlMSBmIHggKCkgPVxuICBsZXQgeSA9IGYgeCBpblxuICBDb25zICh5LCBpdGVyYXRlMSBmIHkpXG5cbigqIFtpdGVyYXRlIGYgeF0gaXMgdGhlIHNlcXVlbmNlIFt4LCBmIHgsIC4uLl0uICopXG5cbigqIFRoZSByZWFzb24gd2h5IHdlIGdpdmUgdGhpcyBzbGlnaHRseSBpbmRpcmVjdCBkZWZpbml0aW9uIG9mIFtpdGVyYXRlXSxcbiAgIGFzIG9wcG9zZWQgdG8gdGhlIG1vcmUgbmFpdmUgZGVmaW5pdGlvbiB0aGF0IG1heSBjb21lIHRvIG1pbmQsIGlzIHRoYXRcbiAgIHdlIGFyZSBjYXJlZnVsIHRvIGF2b2lkIGV2YWx1YXRpbmcgW2YgeF0gdW50aWwgdGhpcyBmdW5jdGlvbiBjYWxsIGlzXG4gICBhY3R1YWxseSBuZWNlc3NhcnkuIFRoZSBuYWl2ZSBkZWZpbml0aW9uIChub3Qgc2hvd24gaGVyZSkgY29tcHV0ZXMgdGhlXG4gICBzZWNvbmQgYXJndW1lbnQgb2YgdGhlIHNlcXVlbmNlLCBbZiB4XSwgd2hlbiB0aGUgZmlyc3QgYXJndW1lbnQgaXNcbiAgIHJlcXVlc3RlZCBieSB0aGUgdXNlci4gKilcblxubGV0IGl0ZXJhdGUgZiB4ID1cbiAgY29ucyB4IChpdGVyYXRlMSBmIHgpXG5cblxuXG5sZXQgcmVjIG1hcGlfYXV4IGYgaSB4cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBDb25zIChmIGkgeCwgbWFwaV9hdXggZiAoaSsxKSB4cylcblxubGV0W0BpbmxpbmVdIG1hcGkgZiB4cyA9XG4gIG1hcGlfYXV4IGYgMCB4c1xuXG4oKiBbdGFpbF9zY2FuIGYgcyB4c10gaXMgZXF1aXZhbGVudCB0byBbdGFpbCAoc2NhbiBmIHMgeHMpXS5cbiAgIFt0YWlsX3NjYW5dIGlzIHVzZWQgYXMgYSBidWlsZGluZyBibG9jayBpbiB0aGUgZGVmaW5pdGlvbiBvZiBbc2Nhbl0uICopXG5cbigqIFRoaXMgc2xpZ2h0bHkgaW5kaXJlY3QgZGVmaW5pdGlvbiBvZiBbc2Nhbl0gaXMgbWVhbnQgdG8gYXZvaWQgY29tcHV0aW5nXG4gICBlbGVtZW50cyB0b28gZWFybHk7IHNlZSB0aGUgYWJvdmUgY29tbWVudCBhYm91dCBbaXRlcmF0ZTFdIGFuZCBbaXRlcmF0ZV0uICopXG5cbmxldCByZWMgdGFpbF9zY2FuIGYgcyB4cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBsZXQgcyA9IGYgcyB4IGluXG4gICAgICBDb25zIChzLCB0YWlsX3NjYW4gZiBzIHhzKVxuXG5sZXQgc2NhbiBmIHMgeHMgPVxuICBjb25zIHMgKHRhaWxfc2NhbiBmIHMgeHMpXG5cbigqIFt0YWtlXSBpcyBkZWZpbmVkIGluIHN1Y2ggYSB3YXkgdGhhdCBbdGFrZSAwIHhzXSByZXR1cm5zIFtlbXB0eV1cbiAgIGltbWVkaWF0ZWx5LCB3aXRob3V0IGFsbG9jYXRpbmcgYW55IG1lbW9yeS4gKilcblxubGV0IHJlYyB0YWtlX2F1eCBuIHhzID1cbiAgaWYgbiA9IDAgdGhlblxuICAgIGVtcHR5XG4gIGVsc2VcbiAgICBmdW4gKCkgLT5cbiAgICAgIG1hdGNoIHhzKCkgd2l0aFxuICAgICAgfCBOaWwgLT5cbiAgICAgICAgICBOaWxcbiAgICAgIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICAgICAgQ29ucyAoeCwgdGFrZV9hdXggKG4tMSkgeHMpXG5cbmxldCB0YWtlIG4geHMgPVxuICBpZiBuIDwgMCB0aGVuIGludmFsaWRfYXJnIFwiU2VxLnRha2VcIjtcbiAgdGFrZV9hdXggbiB4c1xuXG4oKiBbZm9yY2VfZHJvcCBuIHhzXSBpcyBlcXVpdmFsZW50IHRvIFtkcm9wIG4geHMgKCldLlxuICAgW2ZvcmNlX2Ryb3AgbiB4c10gcmVxdWlyZXMgW24gPiAwXS5cbiAgIFtmb3JjZV9kcm9wXSBpcyB1c2VkIGFzIGEgYnVpbGRpbmcgYmxvY2sgaW4gdGhlIGRlZmluaXRpb24gb2YgW2Ryb3BdLiAqKVxuXG5sZXQgcmVjIGZvcmNlX2Ryb3AgbiB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoXywgeHMpIC0+XG4gICAgICBsZXQgbiA9IG4gLSAxIGluXG4gICAgICBpZiBuID0gMCB0aGVuXG4gICAgICAgIHhzKClcbiAgICAgIGVsc2VcbiAgICAgICAgZm9yY2VfZHJvcCBuIHhzXG5cbigqIFtkcm9wXSBpcyBkZWZpbmVkIGluIHN1Y2ggYSB3YXkgdGhhdCBbZHJvcCAwIHhzXSByZXR1cm5zIFt4c10gaW1tZWRpYXRlbHksXG4gICB3aXRob3V0IGFsbG9jYXRpbmcgYW55IG1lbW9yeS4gKilcblxubGV0IGRyb3AgbiB4cyA9XG4gIGlmIG4gPCAwIHRoZW4gaW52YWxpZF9hcmcgXCJTZXEuZHJvcFwiXG4gIGVsc2UgaWYgbiA9IDAgdGhlblxuICAgIHhzXG4gIGVsc2VcbiAgICBmdW4gKCkgLT5cbiAgICAgIGZvcmNlX2Ryb3AgbiB4c1xuXG5sZXQgcmVjIHRha2Vfd2hpbGUgcCB4cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBpZiBwIHggdGhlbiBDb25zICh4LCB0YWtlX3doaWxlIHAgeHMpIGVsc2UgTmlsXG5cbmxldCByZWMgZHJvcF93aGlsZSBwIHhzICgpID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOaWxcbiAgfCBDb25zICh4LCB4cykgYXMgbm9kZSAtPlxuICAgICAgaWYgcCB4IHRoZW4gZHJvcF93aGlsZSBwIHhzICgpIGVsc2Ugbm9kZVxuXG5sZXQgcmVjIGdyb3VwIGVxIHhzICgpID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOaWxcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIENvbnMgKGNvbnMgeCAodGFrZV93aGlsZSAoZXEgeCkgeHMpLCBncm91cCBlcSAoZHJvcF93aGlsZSAoZXEgeCkgeHMpKVxuXG5leGNlcHRpb24gRm9yY2VkX3R3aWNlXG5cbm1vZHVsZSBTdXNwZW5zaW9uID0gc3RydWN0XG5cbiAgdHlwZSAnYSBzdXNwZW5zaW9uID1cbiAgICB1bml0IC0+ICdhXG5cbiAgKCogQ29udmVyc2lvbnMuICopXG5cbiAgbGV0IHRvX2xhenkgOiAnYSBzdXNwZW5zaW9uIC0+ICdhIExhenkudCA9XG4gICAgTGF6eS5mcm9tX2Z1blxuICAgICgqIGZ1biBzIC0+IGxhenkgKHMoKSkgKilcblxuICBsZXQgZnJvbV9sYXp5IChzIDogJ2EgTGF6eS50KSA6ICdhIHN1c3BlbnNpb24gPVxuICAgIGZ1biAoKSAtPiBMYXp5LmZvcmNlIHNcblxuICAoKiBbbWVtb2l6ZV0gdHVybnMgYW4gYXJiaXRyYXJ5IHN1c3BlbnNpb24gaW50byBhIHBlcnNpc3RlbnQgc3VzcGVuc2lvbi4gKilcblxuICBsZXQgbWVtb2l6ZSAocyA6ICdhIHN1c3BlbnNpb24pIDogJ2Egc3VzcGVuc2lvbiA9XG4gICAgZnJvbV9sYXp5ICh0b19sYXp5IHMpXG5cbiAgKCogW2ZhaWx1cmVdIGlzIGEgc3VzcGVuc2lvbiB0aGF0IGZhaWxzIHdoZW4gZm9yY2VkLiAqKVxuXG4gIGxldCBmYWlsdXJlIDogXyBzdXNwZW5zaW9uID1cbiAgICBmdW4gKCkgLT5cbiAgICAgICgqIEEgc3VzcGVuc2lvbiBjcmVhdGVkIGJ5IFtvbmNlXSBoYXMgYmVlbiBmb3JjZWQgdHdpY2UuICopXG4gICAgICByYWlzZSBGb3JjZWRfdHdpY2VcblxuICAoKiBJZiBbZl0gaXMgYSBzdXNwZW5zaW9uLCB0aGVuIFtvbmNlIGZdIGlzIGEgc3VzcGVuc2lvbiB0aGF0IGNhbiBiZSBmb3JjZWRcbiAgICAgYXQgbW9zdCBvbmNlLiBJZiBpdCBpcyBmb3JjZWQgbW9yZSB0aGFuIG9uY2UsIHRoZW4gW0ZvcmNlZF90d2ljZV0gaXNcbiAgICAgcmFpc2VkLiAqKVxuXG4gIGxldCBvbmNlIChmIDogJ2Egc3VzcGVuc2lvbikgOiAnYSBzdXNwZW5zaW9uID1cbiAgICBsZXQgYWN0aW9uID0gQ2FtbGludGVybmFsQXRvbWljLm1ha2UgZiBpblxuICAgIGZ1biAoKSAtPlxuICAgICAgKCogR2V0IHRoZSBmdW5jdGlvbiBjdXJyZW50bHkgc3RvcmVkIGluIFthY3Rpb25dLCBhbmQgd3JpdGUgdGhlXG4gICAgICAgICBmdW5jdGlvbiBbZmFpbHVyZV0gaW4gaXRzIHBsYWNlLCBzbyB0aGUgbmV4dCBhY2Nlc3Mgd2lsbCByZXN1bHRcbiAgICAgICAgIGluIGEgY2FsbCB0byBbZmFpbHVyZSgpXS4gKilcbiAgICAgIGxldCBmID0gQ2FtbGludGVybmFsQXRvbWljLmV4Y2hhbmdlIGFjdGlvbiBmYWlsdXJlIGluXG4gICAgICBmKClcblxuZW5kICgqIFN1c3BlbnNpb24gKilcblxubGV0IHJlYyBtZW1vaXplIHhzID1cbiAgU3VzcGVuc2lvbi5tZW1vaXplIChmdW4gKCkgLT5cbiAgICBtYXRjaCB4cygpIHdpdGhcbiAgICB8IE5pbCAtPlxuICAgICAgICBOaWxcbiAgICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgICBDb25zICh4LCBtZW1vaXplIHhzKVxuICApXG5cbmxldCByZWMgb25jZSB4cyA9XG4gIFN1c3BlbnNpb24ub25jZSAoZnVuICgpIC0+XG4gICAgbWF0Y2ggeHMoKSB3aXRoXG4gICAgfCBOaWwgLT5cbiAgICAgICAgTmlsXG4gICAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgICAgQ29ucyAoeCwgb25jZSB4cylcbiAgKVxuXG5cbmxldCByZWMgemlwIHhzIHlzICgpID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOaWxcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIG1hdGNoIHlzKCkgd2l0aFxuICAgICAgfCBOaWwgLT5cbiAgICAgICAgICBOaWxcbiAgICAgIHwgQ29ucyAoeSwgeXMpIC0+XG4gICAgICAgICAgQ29ucyAoKHgsIHkpLCB6aXAgeHMgeXMpXG5cbmxldCByZWMgbWFwMiBmIHhzIHlzICgpID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOaWxcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIG1hdGNoIHlzKCkgd2l0aFxuICAgICAgfCBOaWwgLT5cbiAgICAgICAgICBOaWxcbiAgICAgIHwgQ29ucyAoeSwgeXMpIC0+XG4gICAgICAgICAgQ29ucyAoZiB4IHksIG1hcDIgZiB4cyB5cylcblxubGV0IHJlYyBpbnRlcmxlYXZlIHhzIHlzICgpID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICB5cygpXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBDb25zICh4LCBpbnRlcmxlYXZlIHlzIHhzKVxuXG4oKiBbc29ydGVkX21lcmdlMWwgY21wIHggeHMgeXNdIGlzIGVxdWl2YWxlbnQgdG9cbiAgICAgW3NvcnRlZF9tZXJnZSBjbXAgKGNvbnMgeCB4cykgeXNdLlxuXG4gICBbc29ydGVkX21lcmdlMXIgY21wIHhzIHkgeXNdIGlzIGVxdWl2YWxlbnQgdG9cbiAgICAgW3NvcnRlZF9tZXJnZSBjbXAgeHMgKGNvbnMgeSB5cyldLlxuXG4gICBbc29ydGVkX21lcmdlMSBjbXAgeCB4cyB5IHlzXSBpcyBlcXVpdmFsZW50IHRvXG4gICAgIFtzb3J0ZWRfbWVyZ2UgY21wIChjb25zIHggeHMpIChjb25zIHkgeXMpXS5cblxuICAgVGhlc2UgdGhyZWUgZnVuY3Rpb25zIGFyZSB1c2VkIGFzIGJ1aWxkaW5nIGJsb2NrcyBpbiB0aGUgZGVmaW5pdGlvblxuICAgb2YgW3NvcnRlZF9tZXJnZV0uICopXG5cbmxldCByZWMgc29ydGVkX21lcmdlMWwgY21wIHggeHMgeXMgKCkgPVxuICBtYXRjaCB5cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIENvbnMgKHgsIHhzKVxuICB8IENvbnMgKHksIHlzKSAtPlxuICAgICAgc29ydGVkX21lcmdlMSBjbXAgeCB4cyB5IHlzXG5cbmFuZCBzb3J0ZWRfbWVyZ2UxciBjbXAgeHMgeSB5cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgQ29ucyAoeSwgeXMpXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBzb3J0ZWRfbWVyZ2UxIGNtcCB4IHhzIHkgeXNcblxuYW5kIHNvcnRlZF9tZXJnZTEgY21wIHggeHMgeSB5cyA9XG4gIGlmIGNtcCB4IHkgPD0gMCB0aGVuXG4gICAgQ29ucyAoeCwgc29ydGVkX21lcmdlMXIgY21wIHhzIHkgeXMpXG4gIGVsc2VcbiAgICBDb25zICh5LCBzb3J0ZWRfbWVyZ2UxbCBjbXAgeCB4cyB5cylcblxubGV0IHNvcnRlZF9tZXJnZSBjbXAgeHMgeXMgKCkgPVxuICBtYXRjaCB4cygpLCB5cygpIHdpdGhcbiAgICB8IE5pbCwgTmlsIC0+XG4gICAgICAgIE5pbFxuICAgIHwgTmlsLCBjXG4gICAgfCBjLCBOaWwgLT5cbiAgICAgICAgY1xuICAgIHwgQ29ucyAoeCwgeHMpLCBDb25zICh5LCB5cykgLT5cbiAgICAgICAgc29ydGVkX21lcmdlMSBjbXAgeCB4cyB5IHlzXG5cblxubGV0IHJlYyBtYXBfZnN0IHh5cyAoKSA9XG4gIG1hdGNoIHh5cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKCh4LCBfKSwgeHlzKSAtPlxuICAgICAgQ29ucyAoeCwgbWFwX2ZzdCB4eXMpXG5cbmxldCByZWMgbWFwX3NuZCB4eXMgKCkgPVxuICBtYXRjaCB4eXMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOaWxcbiAgfCBDb25zICgoXywgeSksIHh5cykgLT5cbiAgICAgIENvbnMgKHksIG1hcF9zbmQgeHlzKVxuXG5sZXQgdW56aXAgeHlzID1cbiAgbWFwX2ZzdCB4eXMsIG1hcF9zbmQgeHlzXG5cbmxldCBzcGxpdCA9XG4gIHVuemlwXG5cbigqIFtmaWx0ZXJfbWFwX2ZpbmRfbGVmdF9tYXAgZiB4c10gaXMgZXF1aXZhbGVudCB0b1xuICAgW2ZpbHRlcl9tYXAgRWl0aGVyLmZpbmRfbGVmdCAobWFwIGYgeHMpXS4gKilcblxubGV0IHJlYyBmaWx0ZXJfbWFwX2ZpbmRfbGVmdF9tYXAgZiB4cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBtYXRjaCBmIHggd2l0aFxuICAgICAgfCBFaXRoZXIuTGVmdCB5IC0+XG4gICAgICAgICAgQ29ucyAoeSwgZmlsdGVyX21hcF9maW5kX2xlZnRfbWFwIGYgeHMpXG4gICAgICB8IEVpdGhlci5SaWdodCBfIC0+XG4gICAgICAgICAgZmlsdGVyX21hcF9maW5kX2xlZnRfbWFwIGYgeHMgKClcblxubGV0IHJlYyBmaWx0ZXJfbWFwX2ZpbmRfcmlnaHRfbWFwIGYgeHMgKCkgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbWF0Y2ggZiB4IHdpdGhcbiAgICAgIHwgRWl0aGVyLkxlZnQgXyAtPlxuICAgICAgICAgIGZpbHRlcl9tYXBfZmluZF9yaWdodF9tYXAgZiB4cyAoKVxuICAgICAgfCBFaXRoZXIuUmlnaHQgeiAtPlxuICAgICAgICAgIENvbnMgKHosIGZpbHRlcl9tYXBfZmluZF9yaWdodF9tYXAgZiB4cylcblxubGV0IHBhcnRpdGlvbl9tYXAgZiB4cyA9XG4gIGZpbHRlcl9tYXBfZmluZF9sZWZ0X21hcCBmIHhzLFxuICBmaWx0ZXJfbWFwX2ZpbmRfcmlnaHRfbWFwIGYgeHNcblxubGV0IHBhcnRpdGlvbiBwIHhzID1cbiAgZmlsdGVyIHAgeHMsIGZpbHRlciAoZnVuIHggLT4gbm90IChwIHgpKSB4c1xuXG4oKiBJZiBbeHNzXSBpcyBhIG1hdHJpeCAoYSBzZXF1ZW5jZSBvZiByb3dzKSwgdGhlbiBbcGVlbCB4c3NdIGlzIGEgcGFpciBvZlxuICAgdGhlIGZpcnN0IGNvbHVtbiAoYSBzZXF1ZW5jZSBvZiBlbGVtZW50cykgYW5kIG9mIHRoZSByZW1haW5kZXIgb2YgdGhlXG4gICBtYXRyaXggKGEgc2VxdWVuY2Ugb2Ygc2hvcnRlciByb3dzKS4gVGhlc2UgdHdvIHNlcXVlbmNlcyBoYXZlIHRoZSBzYW1lXG4gICBsZW5ndGguIFRoZSByb3dzIG9mIHRoZSBtYXRyaXggW3hzc10gYXJlIG5vdCByZXF1aXJlZCB0byBoYXZlIHRoZSBzYW1lXG4gICBsZW5ndGguIEFuIGVtcHR5IHJvdyBpcyBpZ25vcmVkLiAqKVxuXG4oKiBCZWNhdXNlIFtwZWVsXSB1c2VzIFt1bnppcF0sIGl0cyBhcmd1bWVudCBtdXN0IGJlIHBlcnNpc3RlbnQuIFRoZSBzYW1lXG4gICByZW1hcmsgYXBwbGllcyB0byBbdHJhbnNwb3NlXSwgW2RpYWdvbmFsc10sIFtwcm9kdWN0XSwgZXRjLiAqKVxuXG5sZXQgcGVlbCB4c3MgPVxuICB1bnppcCAoZmlsdGVyX21hcCB1bmNvbnMgeHNzKVxuXG5sZXQgcmVjIHRyYW5zcG9zZSB4c3MgKCkgPVxuICBsZXQgaGVhZHMsIHRhaWxzID0gcGVlbCB4c3MgaW5cbiAgaWYgaXNfZW1wdHkgaGVhZHMgdGhlbiBiZWdpblxuICAgIGFzc2VydCAoaXNfZW1wdHkgdGFpbHMpO1xuICAgIE5pbFxuICBlbmRcbiAgZWxzZVxuICAgIENvbnMgKGhlYWRzLCB0cmFuc3Bvc2UgdGFpbHMpXG5cbigqIFRoZSBpbnRlcm5hbCBmdW5jdGlvbiBbZGlhZ29uYWxzXSB0YWtlcyBhbiBleHRyYSBhcmd1bWVudCwgW3JlbWFpbmRlcnNdLFxuICAgd2hpY2ggY29udGFpbnMgdGhlIHJlbWFpbmRlcnMgb2YgdGhlIHJvd3MgdGhhdCBoYXZlIGFscmVhZHkgYmVlblxuICAgZGlzY292ZXJlZC4gKilcblxubGV0IHJlYyBkaWFnb25hbHMgcmVtYWluZGVycyB4c3MgKCkgPVxuICBtYXRjaCB4c3MoKSB3aXRoXG4gIHwgQ29ucyAoeHMsIHhzcykgLT5cbiAgICAgIGJlZ2luIG1hdGNoIHhzKCkgd2l0aFxuICAgICAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgICAgICAoKiBXZSBkaXNjb3ZlciBhIG5ldyBub25lbXB0eSByb3cgW3ggOjogeHNdLiBUaHVzLCB0aGUgbmV4dCBkaWFnb25hbFxuICAgICAgICAgICAgIGlzIFt4IDo6IGhlYWRzXTogdGhpcyBkaWFnb25hbCBiZWdpbnMgd2l0aCBbeF0gYW5kIGNvbnRpbnVlcyB3aXRoXG4gICAgICAgICAgICAgdGhlIGZpcnN0IGVsZW1lbnQgb2YgZXZlcnkgcm93IGluIFtyZW1haW5kZXJzXS4gSW4gdGhlIHJlY3Vyc2l2ZVxuICAgICAgICAgICAgIGNhbGwsIHRoZSBhcmd1bWVudCBbcmVtYWluZGVyc10gaXMgaW5zdGFudGlhdGVkIHdpdGggW3hzIDo6XG4gICAgICAgICAgICAgdGFpbHNdLCB3aGljaCBtZWFucyB0aGF0IHdlIGhhdmUgb25lIG1vcmUgcmVtYWluaW5nIHJvdywgW3hzXSxcbiAgICAgICAgICAgICBhbmQgdGhhdCB3ZSBrZWVwIHRoZSB0YWlscyBvZiB0aGUgcHJlLWV4aXN0aW5nIHJlbWFpbmluZyByb3dzLiAqKVxuICAgICAgICAgIGxldCBoZWFkcywgdGFpbHMgPSBwZWVsIHJlbWFpbmRlcnMgaW5cbiAgICAgICAgICBDb25zIChjb25zIHggaGVhZHMsIGRpYWdvbmFscyAoY29ucyB4cyB0YWlscykgeHNzKVxuICAgICAgfCBOaWwgLT5cbiAgICAgICAgICAoKiBXZSBkaXNjb3ZlciBhIG5ldyBlbXB0eSByb3cuIEluIHRoaXMgY2FzZSwgdGhlIG5ldyBkaWFnb25hbCBpc1xuICAgICAgICAgICAgIGp1c3QgW2hlYWRzXSwgYW5kIFtyZW1haW5kZXJzXSBpcyBpbnN0YW50aWF0ZWQgd2l0aCBqdXN0IFt0YWlsc10sXG4gICAgICAgICAgICAgYXMgd2UgZG8gbm90IGhhdmUgb25lIG1vcmUgcmVtYWluaW5nIHJvdy4gKilcbiAgICAgICAgICBsZXQgaGVhZHMsIHRhaWxzID0gcGVlbCByZW1haW5kZXJzIGluXG4gICAgICAgICAgQ29ucyAoaGVhZHMsIGRpYWdvbmFscyB0YWlscyB4c3MpXG4gICAgICBlbmRcbiAgfCBOaWwgLT5cbiAgICAgICgqIFRoZXJlIGFyZSBubyBtb3JlIHJvd3MgdG8gYmUgZGlzY292ZXJlZC4gVGhlcmUgcmVtYWlucyB0byBleGhhdXN0XG4gICAgICAgICB0aGUgcmVtYWluaW5nIHJvd3MuICopXG4gICAgICB0cmFuc3Bvc2UgcmVtYWluZGVycyAoKVxuXG4oKiBJZiBbeHNzXSBpcyBhIG1hdHJpeCAoYSBzZXF1ZW5jZSBvZiByb3dzKSwgdGhlbiBbZGlhZ29uYWxzIHhzc10gaXNcbiAgIHRoZSBzZXF1ZW5jZSBvZiBpdHMgZGlhZ29uYWxzLlxuXG4gICBUaGUgZmlyc3QgZGlhZ29uYWwgY29udGFpbnMganVzdCB0aGUgZmlyc3QgZWxlbWVudCBvZiB0aGVcbiAgIGZpcnN0IHJvdy4gVGhlIHNlY29uZCBkaWFnb25hbCBjb250YWlucyB0aGUgZmlyc3QgZWxlbWVudCBvZiB0aGVcbiAgIHNlY29uZCByb3cgYW5kIHRoZSBzZWNvbmQgZWxlbWVudCBvZiB0aGUgZmlyc3Qgcm93OyBhbmQgc28gb24uXG4gICBUaGlzIGtpbmQgb2YgZGlhZ29uYWwgaXMgaW4gZmFjdCBzb21ldGltZXMga25vd24gYXMgYW4gYW50aWRpYWdvbmFsLlxuXG4gICAtIEV2ZXJ5IGRpYWdvbmFsIGlzIGEgZmluaXRlIHNlcXVlbmNlLlxuICAgLSBUaGUgcm93cyBvZiB0aGUgbWF0cml4IFt4c3NdIGFyZSBub3QgcmVxdWlyZWQgdG8gaGF2ZSB0aGUgc2FtZSBsZW5ndGguXG4gICAtIFRoZSBtYXRyaXggW3hzc10gaXMgbm90IHJlcXVpcmVkIHRvIGJlIGZpbml0ZSAoaW4gZWl0aGVyIGRpcmVjdGlvbikuXG4gICAtIFRoZSBtYXRyaXggW3hzc10gbXVzdCBiZSBwZXJzaXN0ZW50LiAqKVxuXG5sZXQgZGlhZ29uYWxzIHhzcyA9XG4gIGRpYWdvbmFscyBlbXB0eSB4c3NcblxubGV0IG1hcF9wcm9kdWN0IGYgeHMgeXMgPVxuICBjb25jYXQgKGRpYWdvbmFscyAoXG4gICAgbWFwIChmdW4geCAtPlxuICAgICAgbWFwIChmdW4geSAtPlxuICAgICAgICBmIHggeVxuICAgICAgKSB5c1xuICAgICkgeHNcbiAgKSlcblxubGV0IHByb2R1Y3QgeHMgeXMgPVxuICBtYXBfcHJvZHVjdCAoZnVuIHggeSAtPiAoeCwgeSkpIHhzIHlzXG5cbmxldCBvZl9kaXNwZW5zZXIgaXQgPVxuICBsZXQgcmVjIGMgKCkgPVxuICAgIG1hdGNoIGl0KCkgd2l0aFxuICAgIHwgTm9uZSAtPlxuICAgICAgICBOaWxcbiAgICB8IFNvbWUgeCAtPlxuICAgICAgICBDb25zICh4LCBjKVxuICBpblxuICBjXG5cbmxldCB0b19kaXNwZW5zZXIgeHMgPVxuICBsZXQgcyA9IHJlZiB4cyBpblxuICBmdW4gKCkgLT5cbiAgICBtYXRjaCAoIXMpKCkgd2l0aFxuICAgIHwgTmlsIC0+XG4gICAgICAgIE5vbmVcbiAgICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgICBzIDo9IHhzO1xuICAgICAgICBTb21lIHhcblxuXG5cbmxldCByZWMgaW50cyBpICgpID1cbiAgQ29ucyAoaSwgaW50cyAoaSArIDEpKVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgVGhlIE9DYW1sIHByb2dyYW1tZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxOCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlICdhIHQgPSAnYSBvcHRpb24gPSBOb25lIHwgU29tZSBvZiAnYVxuXG5sZXQgbm9uZSA9IE5vbmVcbmxldCBzb21lIHYgPSBTb21lIHZcbmxldCB2YWx1ZSBvIH5kZWZhdWx0ID0gbWF0Y2ggbyB3aXRoIFNvbWUgdiAtPiB2IHwgTm9uZSAtPiBkZWZhdWx0XG5sZXQgZ2V0ID0gZnVuY3Rpb24gU29tZSB2IC0+IHYgfCBOb25lIC0+IGludmFsaWRfYXJnIFwib3B0aW9uIGlzIE5vbmVcIlxubGV0IGJpbmQgbyBmID0gbWF0Y2ggbyB3aXRoIE5vbmUgLT4gTm9uZSB8IFNvbWUgdiAtPiBmIHZcbmxldCBqb2luID0gZnVuY3Rpb24gU29tZSBvIC0+IG8gfCBOb25lIC0+IE5vbmVcbmxldCBtYXAgZiBvID0gbWF0Y2ggbyB3aXRoIE5vbmUgLT4gTm9uZSB8IFNvbWUgdiAtPiBTb21lIChmIHYpXG5sZXQgZm9sZCB+bm9uZSB+c29tZSA9IGZ1bmN0aW9uIFNvbWUgdiAtPiBzb21lIHYgfCBOb25lIC0+IG5vbmVcbmxldCBpdGVyIGYgPSBmdW5jdGlvbiBTb21lIHYgLT4gZiB2IHwgTm9uZSAtPiAoKVxubGV0IGlzX25vbmUgPSBmdW5jdGlvbiBOb25lIC0+IHRydWUgfCBTb21lIF8gLT4gZmFsc2VcbmxldCBpc19zb21lID0gZnVuY3Rpb24gTm9uZSAtPiBmYWxzZSB8IFNvbWUgXyAtPiB0cnVlXG5cbmxldCBlcXVhbCBlcSBvMCBvMSA9IG1hdGNoIG8wLCBvMSB3aXRoXG58IFNvbWUgdjAsIFNvbWUgdjEgLT4gZXEgdjAgdjFcbnwgTm9uZSwgTm9uZSAtPiB0cnVlXG58IF8gLT4gZmFsc2VcblxubGV0IGNvbXBhcmUgY21wIG8wIG8xID0gbWF0Y2ggbzAsIG8xIHdpdGhcbnwgU29tZSB2MCwgU29tZSB2MSAtPiBjbXAgdjAgdjFcbnwgTm9uZSwgTm9uZSAtPiAwXG58IE5vbmUsIFNvbWUgXyAtPiAtMVxufCBTb21lIF8sIE5vbmUgLT4gMVxuXG5sZXQgdG9fcmVzdWx0IH5ub25lID0gZnVuY3Rpb24gTm9uZSAtPiBFcnJvciBub25lIHwgU29tZSB2IC0+IE9rIHZcbmxldCB0b19saXN0ID0gZnVuY3Rpb24gTm9uZSAtPiBbXSB8IFNvbWUgdiAtPiBbdl1cbmxldCB0b19zZXEgPSBmdW5jdGlvbiBOb25lIC0+IFNlcS5lbXB0eSB8IFNvbWUgdiAtPiBTZXEucmV0dXJuIHZcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBPQ2FtbCBwcm9ncmFtbWVycyAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTggSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSAoJ2EsICdlKSB0ID0gKCdhLCAnZSkgcmVzdWx0ID0gT2sgb2YgJ2EgfCBFcnJvciBvZiAnZVxuXG5sZXQgb2sgdiA9IE9rIHZcbmxldCBlcnJvciBlID0gRXJyb3IgZVxubGV0IHZhbHVlIHIgfmRlZmF1bHQgPSBtYXRjaCByIHdpdGggT2sgdiAtPiB2IHwgRXJyb3IgXyAtPiBkZWZhdWx0XG5sZXQgZ2V0X29rID0gZnVuY3Rpb24gT2sgdiAtPiB2IHwgRXJyb3IgXyAtPiBpbnZhbGlkX2FyZyBcInJlc3VsdCBpcyBFcnJvciBfXCJcbmxldCBnZXRfZXJyb3IgPSBmdW5jdGlvbiBFcnJvciBlIC0+IGUgfCBPayBfIC0+IGludmFsaWRfYXJnIFwicmVzdWx0IGlzIE9rIF9cIlxubGV0IGJpbmQgciBmID0gbWF0Y2ggciB3aXRoIE9rIHYgLT4gZiB2IHwgRXJyb3IgXyBhcyBlIC0+IGVcbmxldCBqb2luID0gZnVuY3Rpb24gT2sgciAtPiByIHwgRXJyb3IgXyBhcyBlIC0+IGVcbmxldCBtYXAgZiA9IGZ1bmN0aW9uIE9rIHYgLT4gT2sgKGYgdikgfCBFcnJvciBfIGFzIGUgLT4gZVxubGV0IG1hcF9lcnJvciBmID0gZnVuY3Rpb24gRXJyb3IgZSAtPiBFcnJvciAoZiBlKSB8IE9rIF8gYXMgdiAtPiB2XG5sZXQgZm9sZCB+b2sgfmVycm9yID0gZnVuY3Rpb24gT2sgdiAtPiBvayB2IHwgRXJyb3IgZSAtPiBlcnJvciBlXG5sZXQgaXRlciBmID0gZnVuY3Rpb24gT2sgdiAtPiBmIHYgfCBFcnJvciBfIC0+ICgpXG5sZXQgaXRlcl9lcnJvciBmID0gZnVuY3Rpb24gRXJyb3IgZSAtPiBmIGUgfCBPayBfIC0+ICgpXG5sZXQgaXNfb2sgPSBmdW5jdGlvbiBPayBfIC0+IHRydWUgfCBFcnJvciBfIC0+IGZhbHNlXG5sZXQgaXNfZXJyb3IgPSBmdW5jdGlvbiBFcnJvciBfIC0+IHRydWUgfCBPayBfIC0+IGZhbHNlXG5cbmxldCBlcXVhbCB+b2sgfmVycm9yIHIwIHIxID0gbWF0Y2ggcjAsIHIxIHdpdGhcbnwgT2sgdjAsIE9rIHYxIC0+IG9rIHYwIHYxXG58IEVycm9yIGUwLCBFcnJvciBlMSAtPiBlcnJvciBlMCBlMVxufCBfLCBfIC0+IGZhbHNlXG5cbmxldCBjb21wYXJlIH5vayB+ZXJyb3IgcjAgcjEgPSBtYXRjaCByMCwgcjEgd2l0aFxufCBPayB2MCwgT2sgdjEgLT4gb2sgdjAgdjFcbnwgRXJyb3IgZTAsIEVycm9yIGUxIC0+IGVycm9yIGUwIGUxXG58IE9rIF8sIEVycm9yIF8gLT4gLTFcbnwgRXJyb3IgXywgT2sgXyAtPiAxXG5cbmxldCB0b19vcHRpb24gPSBmdW5jdGlvbiBPayB2IC0+IFNvbWUgdiB8IEVycm9yIF8gLT4gTm9uZVxubGV0IHRvX2xpc3QgPSBmdW5jdGlvbiBPayB2IC0+IFt2XSB8IEVycm9yIF8gLT4gW11cbmxldCB0b19zZXEgPSBmdW5jdGlvbiBPayB2IC0+IFNlcS5yZXR1cm4gdiB8IEVycm9yIF8gLT4gU2VxLmVtcHR5XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgT0NhbWwgcHJvZ3JhbW1lcnMgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE4IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgdCA9IGJvb2wgPSBmYWxzZSB8IHRydWVcblxuZXh0ZXJuYWwgbm90IDogYm9vbCAtPiBib29sID0gXCIlYm9vbG5vdFwiXG5leHRlcm5hbCAoICYmICkgOiBib29sIC0+IGJvb2wgLT4gYm9vbCA9IFwiJXNlcXVhbmRcIlxuZXh0ZXJuYWwgKCB8fCApIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSBcIiVzZXF1b3JcIlxubGV0IGVxdWFsIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSAoID0gKVxubGV0IGNvbXBhcmUgOiBib29sIC0+IGJvb2wgLT4gaW50ID0gU3RkbGliLmNvbXBhcmVcbmV4dGVybmFsIHRvX2ludCA6IGJvb2wgLT4gaW50ID0gXCIlaWRlbnRpdHlcIlxubGV0IHRvX2Zsb2F0ID0gZnVuY3Rpb24gZmFsc2UgLT4gMC4gfCB0cnVlIC0+IDEuXG5cbigqXG5sZXQgb2Zfc3RyaW5nID0gZnVuY3Rpb25cbnwgXCJmYWxzZVwiIC0+IFNvbWUgZmFsc2VcbnwgXCJ0cnVlXCIgLT4gU29tZSB0cnVlXG58IF8gLT4gTm9uZVxuKilcblxubGV0IHRvX3N0cmluZyA9IGZ1bmN0aW9uIGZhbHNlIC0+IFwiZmFsc2VcIiB8IHRydWUgLT4gXCJ0cnVlXCJcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogQ2hhcmFjdGVyIG9wZXJhdGlvbnMgKilcblxuZXh0ZXJuYWwgY29kZTogY2hhciAtPiBpbnQgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCB1bnNhZmVfY2hyOiBpbnQgLT4gY2hhciA9IFwiJWlkZW50aXR5XCJcblxubGV0IGNociBuID1cbiAgaWYgbiA8IDAgfHwgbiA+IDI1NSB0aGVuIGludmFsaWRfYXJnIFwiQ2hhci5jaHJcIiBlbHNlIHVuc2FmZV9jaHIgblxuXG5leHRlcm5hbCBieXRlc19jcmVhdGU6IGludCAtPiBieXRlcyA9IFwiY2FtbF9jcmVhdGVfYnl0ZXNcIlxuZXh0ZXJuYWwgYnl0ZXNfdW5zYWZlX3NldCA6IGJ5dGVzIC0+IGludCAtPiBjaGFyIC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCIlYnl0ZXNfdW5zYWZlX3NldFwiXG5leHRlcm5hbCB1bnNhZmVfdG9fc3RyaW5nIDogYnl0ZXMgLT4gc3RyaW5nID0gXCIlYnl0ZXNfdG9fc3RyaW5nXCJcblxubGV0IGVzY2FwZWQgPSBmdW5jdGlvblxuICB8ICdcXCcnIC0+IFwiXFxcXCdcIlxuICB8ICdcXFxcJyAtPiBcIlxcXFxcXFxcXCJcbiAgfCAnXFxuJyAtPiBcIlxcXFxuXCJcbiAgfCAnXFx0JyAtPiBcIlxcXFx0XCJcbiAgfCAnXFxyJyAtPiBcIlxcXFxyXCJcbiAgfCAnXFxiJyAtPiBcIlxcXFxiXCJcbiAgfCAnICcgLi4gJ34nIGFzIGMgLT5cbiAgICAgIGxldCBzID0gYnl0ZXNfY3JlYXRlIDEgaW5cbiAgICAgIGJ5dGVzX3Vuc2FmZV9zZXQgcyAwIGM7XG4gICAgICB1bnNhZmVfdG9fc3RyaW5nIHNcbiAgfCBjIC0+XG4gICAgICBsZXQgbiA9IGNvZGUgYyBpblxuICAgICAgbGV0IHMgPSBieXRlc19jcmVhdGUgNCBpblxuICAgICAgYnl0ZXNfdW5zYWZlX3NldCBzIDAgJ1xcXFwnO1xuICAgICAgYnl0ZXNfdW5zYWZlX3NldCBzIDEgKHVuc2FmZV9jaHIgKDQ4ICsgbiAvIDEwMCkpO1xuICAgICAgYnl0ZXNfdW5zYWZlX3NldCBzIDIgKHVuc2FmZV9jaHIgKDQ4ICsgKG4gLyAxMCkgbW9kIDEwKSk7XG4gICAgICBieXRlc191bnNhZmVfc2V0IHMgMyAodW5zYWZlX2NociAoNDggKyBuIG1vZCAxMCkpO1xuICAgICAgdW5zYWZlX3RvX3N0cmluZyBzXG5cbmxldCBsb3dlcmNhc2UgPSBmdW5jdGlvblxuICB8ICdBJyAuLiAnWidcbiAgfCAnXFwxOTInIC4uICdcXDIxNCdcbiAgfCAnXFwyMTYnIC4uICdcXDIyMicgYXMgYyAtPlxuICAgIHVuc2FmZV9jaHIoY29kZSBjICsgMzIpXG4gIHwgYyAtPiBjXG5cbmxldCB1cHBlcmNhc2UgPSBmdW5jdGlvblxuICB8ICdhJyAuLiAneidcbiAgfCAnXFwyMjQnIC4uICdcXDI0NidcbiAgfCAnXFwyNDgnIC4uICdcXDI1NCcgYXMgYyAtPlxuICAgIHVuc2FmZV9jaHIoY29kZSBjIC0gMzIpXG4gIHwgYyAtPiBjXG5cbmxldCBsb3dlcmNhc2VfYXNjaWkgPSBmdW5jdGlvblxuICB8ICdBJyAuLiAnWicgYXMgYyAtPiB1bnNhZmVfY2hyKGNvZGUgYyArIDMyKVxuICB8IGMgLT4gY1xuXG5sZXQgdXBwZXJjYXNlX2FzY2lpID0gZnVuY3Rpb25cbiAgfCAnYScgLi4gJ3onIGFzIGMgLT4gdW5zYWZlX2Nocihjb2RlIGMgLSAzMilcbiAgfCBjIC0+IGNcblxudHlwZSB0ID0gY2hhclxuXG5sZXQgY29tcGFyZSBjMSBjMiA9IGNvZGUgYzEgLSBjb2RlIGMyXG5sZXQgZXF1YWwgKGMxOiB0KSAoYzI6IHQpID0gY29tcGFyZSBjMSBjMiA9IDBcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgRGFuaWVsIEMuIEJ1ZW56bGkgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTQgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuZXh0ZXJuYWwgZm9ybWF0X2ludCA6IHN0cmluZyAtPiBpbnQgLT4gc3RyaW5nID0gXCJjYW1sX2Zvcm1hdF9pbnRcIlxuXG5sZXQgZXJyX25vX3ByZWQgPSBcIlUrMDAwMCBoYXMgbm8gcHJlZGVjZXNzb3JcIlxubGV0IGVycl9ub19zdWNjID0gXCJVKzEwRkZGRiBoYXMgbm8gc3VjY2Vzc29yXCJcbmxldCBlcnJfbm90X3N2IGkgPSBmb3JtYXRfaW50IFwiJVhcIiBpIF4gXCIgaXMgbm90IGFuIFVuaWNvZGUgc2NhbGFyIHZhbHVlXCJcbmxldCBlcnJfbm90X2xhdGluMSB1ID0gXCJVK1wiIF4gZm9ybWF0X2ludCBcIiUwNFhcIiB1IF4gXCIgaXMgbm90IGEgbGF0aW4xIGNoYXJhY3RlclwiXG5cbnR5cGUgdCA9IGludFxuXG5sZXQgbWluID0gMHgwMDAwXG5sZXQgbWF4ID0gMHgxMEZGRkZcbmxldCBsb19ib3VuZCA9IDB4RDdGRlxubGV0IGhpX2JvdW5kID0gMHhFMDAwXG5cbmxldCBib20gPSAweEZFRkZcbmxldCByZXAgPSAweEZGRkRcblxubGV0IHN1Y2MgdSA9XG4gIGlmIHUgPSBsb19ib3VuZCB0aGVuIGhpX2JvdW5kIGVsc2VcbiAgaWYgdSA9IG1heCB0aGVuIGludmFsaWRfYXJnIGVycl9ub19zdWNjIGVsc2VcbiAgdSArIDFcblxubGV0IHByZWQgdSA9XG4gIGlmIHUgPSBoaV9ib3VuZCB0aGVuIGxvX2JvdW5kIGVsc2VcbiAgaWYgdSA9IG1pbiB0aGVuIGludmFsaWRfYXJnIGVycl9ub19wcmVkIGVsc2VcbiAgdSAtIDFcblxubGV0IGlzX3ZhbGlkIGkgPSAobWluIDw9IGkgJiYgaSA8PSBsb19ib3VuZCkgfHwgKGhpX2JvdW5kIDw9IGkgJiYgaSA8PSBtYXgpXG5sZXQgb2ZfaW50IGkgPSBpZiBpc192YWxpZCBpIHRoZW4gaSBlbHNlIGludmFsaWRfYXJnIChlcnJfbm90X3N2IGkpXG5leHRlcm5hbCB1bnNhZmVfb2ZfaW50IDogaW50IC0+IHQgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCB0b19pbnQgOiB0IC0+IGludCA9IFwiJWlkZW50aXR5XCJcblxubGV0IGlzX2NoYXIgdSA9IHUgPCAyNTZcbmxldCBvZl9jaGFyIGMgPSBDaGFyLmNvZGUgY1xubGV0IHRvX2NoYXIgdSA9XG4gIGlmIHUgPiAyNTUgdGhlbiBpbnZhbGlkX2FyZyAoZXJyX25vdF9sYXRpbjEgdSkgZWxzZVxuICBDaGFyLnVuc2FmZV9jaHIgdVxuXG5sZXQgdW5zYWZlX3RvX2NoYXIgPSBDaGFyLnVuc2FmZV9jaHJcblxubGV0IGVxdWFsIDogaW50IC0+IGludCAtPiBib29sID0gKCA9IClcbmxldCBjb21wYXJlIDogaW50IC0+IGludCAtPiBpbnQgPSBTdGRsaWIuY29tcGFyZVxubGV0IGhhc2ggPSB0b19pbnRcblxuKCogVVRGIGNvZGVjcyB0b29scyAqKVxuXG50eXBlIHV0Zl9kZWNvZGUgPSBpbnRcbigqIFRoaXMgaXMgYW4gaW50IFsweERVVVVVVVVdIGRlY29tcG9zZWQgYXMgZm9sbG93czpcbiAgIC0gW0RdIGlzIGZvdXIgYml0cyBmb3IgZGVjb2RlIGluZm9ybWF0aW9uLCB0aGUgaGlnaGVzdCBiaXQgaXMgc2V0IGlmIHRoZVxuICAgICBkZWNvZGUgaXMgdmFsaWQuIFRoZSB0aHJlZSBsb3dlciBiaXRzIGluZGljYXRlIHRoZSBudW1iZXIgb2YgZWxlbWVudHNcbiAgICAgZnJvbSB0aGUgc291cmNlIHRoYXQgd2VyZSBjb25zdW1lZCBieSB0aGUgZGVjb2RlLlxuICAgLSBbVVVVVVVVXSBpcyB0aGUgZGVjb2RlZCBVbmljb2RlIGNoYXJhY3RlciBvciB0aGUgVW5pY29kZSByZXBsYWNlbWVudFxuICAgICBjaGFyYWN0ZXIgVStGRkZEIGlmIGZvciBpbnZhbGlkIGRlY29kZXMuICopXG5cbmxldCB2YWxpZF9iaXQgPSAyN1xubGV0IGRlY29kZV9iaXRzID0gMjRcblxubGV0W0BpbmxpbmVdIHV0Zl9kZWNvZGVfaXNfdmFsaWQgZCA9IChkIGxzciB2YWxpZF9iaXQpID0gMVxubGV0W0BpbmxpbmVdIHV0Zl9kZWNvZGVfbGVuZ3RoIGQgPSAoZCBsc3IgZGVjb2RlX2JpdHMpIGxhbmQgMGIxMTFcbmxldFtAaW5saW5lXSB1dGZfZGVjb2RlX3VjaGFyIGQgPSB1bnNhZmVfb2ZfaW50IChkIGxhbmQgMHhGRkZGRkYpXG5sZXRbQGlubGluZV0gdXRmX2RlY29kZSBuIHUgPSAoKDggbG9yIG4pIGxzbCBkZWNvZGVfYml0cykgbG9yICh0b19pbnQgdSlcbmxldFtAaW5saW5lXSB1dGZfZGVjb2RlX2ludmFsaWQgbiA9IChuIGxzbCBkZWNvZGVfYml0cykgbG9yIHJlcFxuXG5sZXQgdXRmXzhfYnl0ZV9sZW5ndGggdSA9IG1hdGNoIHRvX2ludCB1IHdpdGhcbnwgdSB3aGVuIHUgPCAwIC0+IGFzc2VydCBmYWxzZVxufCB1IHdoZW4gdSA8PSAweDAwN0YgLT4gMVxufCB1IHdoZW4gdSA8PSAweDA3RkYgLT4gMlxufCB1IHdoZW4gdSA8PSAweEZGRkYgLT4gM1xufCB1IHdoZW4gdSA8PSAweDEwRkZGRiAtPiA0XG58IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbmxldCB1dGZfMTZfYnl0ZV9sZW5ndGggdSA9IG1hdGNoIHRvX2ludCB1IHdpdGhcbnwgdSB3aGVuIHUgPCAwIC0+IGFzc2VydCBmYWxzZVxufCB1IHdoZW4gdSA8PSAweEZGRkYgLT4gMlxufCB1IHdoZW4gdSA8PSAweDEwRkZGRiAtPiA0XG58IF8gLT4gYXNzZXJ0IGZhbHNlXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIEFuIGFsaWFzIGZvciB0aGUgdHlwZSBvZiBsaXN0cy4gKilcbnR5cGUgJ2EgdCA9ICdhIGxpc3QgPSBbXSB8ICg6Oikgb2YgJ2EgKiAnYSBsaXN0XG5cbigqIExpc3Qgb3BlcmF0aW9ucyAqKVxuXG5sZXQgcmVjIGxlbmd0aF9hdXggbGVuID0gZnVuY3Rpb25cbiAgICBbXSAtPiBsZW5cbiAgfCBfOjpsIC0+IGxlbmd0aF9hdXggKGxlbiArIDEpIGxcblxubGV0IGxlbmd0aCBsID0gbGVuZ3RoX2F1eCAwIGxcblxubGV0IGNvbnMgYSBsID0gYTo6bFxuXG5sZXQgaGQgPSBmdW5jdGlvblxuICAgIFtdIC0+IGZhaWx3aXRoIFwiaGRcIlxuICB8IGE6Ol8gLT4gYVxuXG5sZXQgdGwgPSBmdW5jdGlvblxuICAgIFtdIC0+IGZhaWx3aXRoIFwidGxcIlxuICB8IF86OmwgLT4gbFxuXG5sZXQgbnRoIGwgbiA9XG4gIGlmIG4gPCAwIHRoZW4gaW52YWxpZF9hcmcgXCJMaXN0Lm50aFwiIGVsc2VcbiAgbGV0IHJlYyBudGhfYXV4IGwgbiA9XG4gICAgbWF0Y2ggbCB3aXRoXG4gICAgfCBbXSAtPiBmYWlsd2l0aCBcIm50aFwiXG4gICAgfCBhOjpsIC0+IGlmIG4gPSAwIHRoZW4gYSBlbHNlIG50aF9hdXggbCAobi0xKVxuICBpbiBudGhfYXV4IGwgblxuXG5sZXQgbnRoX29wdCBsIG4gPVxuICBpZiBuIDwgMCB0aGVuIGludmFsaWRfYXJnIFwiTGlzdC5udGhcIiBlbHNlXG4gIGxldCByZWMgbnRoX2F1eCBsIG4gPVxuICAgIG1hdGNoIGwgd2l0aFxuICAgIHwgW10gLT4gTm9uZVxuICAgIHwgYTo6bCAtPiBpZiBuID0gMCB0aGVuIFNvbWUgYSBlbHNlIG50aF9hdXggbCAobi0xKVxuICBpbiBudGhfYXV4IGwgblxuXG5sZXQgYXBwZW5kID0gKEApXG5cbmxldCByZWMgcmV2X2FwcGVuZCBsMSBsMiA9XG4gIG1hdGNoIGwxIHdpdGhcbiAgICBbXSAtPiBsMlxuICB8IGEgOjogbCAtPiByZXZfYXBwZW5kIGwgKGEgOjogbDIpXG5cbmxldCByZXYgbCA9IHJldl9hcHBlbmQgbCBbXVxuXG5sZXQgcmVjIGluaXRfdGFpbHJlY19hdXggYWNjIGkgbiBmID1cbiAgaWYgaSA+PSBuIHRoZW4gYWNjXG4gIGVsc2UgaW5pdF90YWlscmVjX2F1eCAoZiBpIDo6IGFjYykgKGkrMSkgbiBmXG5cbmxldCByZWMgaW5pdF9hdXggaSBuIGYgPVxuICBpZiBpID49IG4gdGhlbiBbXVxuICBlbHNlXG4gICAgbGV0IHIgPSBmIGkgaW5cbiAgICByIDo6IGluaXRfYXV4IChpKzEpIG4gZlxuXG5sZXQgcmV2X2luaXRfdGhyZXNob2xkID1cbiAgbWF0Y2ggU3lzLmJhY2tlbmRfdHlwZSB3aXRoXG4gIHwgU3lzLk5hdGl2ZSB8IFN5cy5CeXRlY29kZSAtPiAxMF8wMDBcbiAgKCogV2UgZG9uJ3Qga25vdyB0aGUgc2l6ZSBvZiB0aGUgc3RhY2ssIGJldHRlciBiZSBzYWZlIGFuZCBhc3N1bWUgaXQnc1xuICAgICBzbWFsbC4gKilcbiAgfCBTeXMuT3RoZXIgXyAtPiA1MFxuXG5sZXQgaW5pdCBsZW4gZiA9XG4gIGlmIGxlbiA8IDAgdGhlbiBpbnZhbGlkX2FyZyBcIkxpc3QuaW5pdFwiIGVsc2VcbiAgaWYgbGVuID4gcmV2X2luaXRfdGhyZXNob2xkIHRoZW4gcmV2IChpbml0X3RhaWxyZWNfYXV4IFtdIDAgbGVuIGYpXG4gIGVsc2UgaW5pdF9hdXggMCBsZW4gZlxuXG5sZXQgcmVjIGZsYXR0ZW4gPSBmdW5jdGlvblxuICAgIFtdIC0+IFtdXG4gIHwgbDo6ciAtPiBsIEAgZmxhdHRlbiByXG5cbmxldCBjb25jYXQgPSBmbGF0dGVuXG5cbmxldCByZWMgbWFwIGYgPSBmdW5jdGlvblxuICAgIFtdIC0+IFtdXG4gIHwgYTo6bCAtPiBsZXQgciA9IGYgYSBpbiByIDo6IG1hcCBmIGxcblxubGV0IHJlYyBtYXBpIGkgZiA9IGZ1bmN0aW9uXG4gICAgW10gLT4gW11cbiAgfCBhOjpsIC0+IGxldCByID0gZiBpIGEgaW4gciA6OiBtYXBpIChpICsgMSkgZiBsXG5cbmxldCBtYXBpIGYgbCA9IG1hcGkgMCBmIGxcblxubGV0IHJldl9tYXAgZiBsID1cbiAgbGV0IHJlYyBybWFwX2YgYWNjdSA9IGZ1bmN0aW9uXG4gICAgfCBbXSAtPiBhY2N1XG4gICAgfCBhOjpsIC0+IHJtYXBfZiAoZiBhIDo6IGFjY3UpIGxcbiAgaW5cbiAgcm1hcF9mIFtdIGxcblxuXG5sZXQgcmVjIGl0ZXIgZiA9IGZ1bmN0aW9uXG4gICAgW10gLT4gKClcbiAgfCBhOjpsIC0+IGYgYTsgaXRlciBmIGxcblxubGV0IHJlYyBpdGVyaSBpIGYgPSBmdW5jdGlvblxuICAgIFtdIC0+ICgpXG4gIHwgYTo6bCAtPiBmIGkgYTsgaXRlcmkgKGkgKyAxKSBmIGxcblxubGV0IGl0ZXJpIGYgbCA9IGl0ZXJpIDAgZiBsXG5cbmxldCByZWMgZm9sZF9sZWZ0IGYgYWNjdSBsID1cbiAgbWF0Y2ggbCB3aXRoXG4gICAgW10gLT4gYWNjdVxuICB8IGE6OmwgLT4gZm9sZF9sZWZ0IGYgKGYgYWNjdSBhKSBsXG5cbmxldCByZWMgZm9sZF9yaWdodCBmIGwgYWNjdSA9XG4gIG1hdGNoIGwgd2l0aFxuICAgIFtdIC0+IGFjY3VcbiAgfCBhOjpsIC0+IGYgYSAoZm9sZF9yaWdodCBmIGwgYWNjdSlcblxubGV0IHJlYyBtYXAyIGYgbDEgbDIgPVxuICBtYXRjaCAobDEsIGwyKSB3aXRoXG4gICAgKFtdLCBbXSkgLT4gW11cbiAgfCAoYTE6OmwxLCBhMjo6bDIpIC0+IGxldCByID0gZiBhMSBhMiBpbiByIDo6IG1hcDIgZiBsMSBsMlxuICB8IChfLCBfKSAtPiBpbnZhbGlkX2FyZyBcIkxpc3QubWFwMlwiXG5cbmxldCByZXZfbWFwMiBmIGwxIGwyID1cbiAgbGV0IHJlYyBybWFwMl9mIGFjY3UgbDEgbDIgPVxuICAgIG1hdGNoIChsMSwgbDIpIHdpdGhcbiAgICB8IChbXSwgW10pIC0+IGFjY3VcbiAgICB8IChhMTo6bDEsIGEyOjpsMikgLT4gcm1hcDJfZiAoZiBhMSBhMiA6OiBhY2N1KSBsMSBsMlxuICAgIHwgKF8sIF8pIC0+IGludmFsaWRfYXJnIFwiTGlzdC5yZXZfbWFwMlwiXG4gIGluXG4gIHJtYXAyX2YgW10gbDEgbDJcblxuXG5sZXQgcmVjIGl0ZXIyIGYgbDEgbDIgPVxuICBtYXRjaCAobDEsIGwyKSB3aXRoXG4gICAgKFtdLCBbXSkgLT4gKClcbiAgfCAoYTE6OmwxLCBhMjo6bDIpIC0+IGYgYTEgYTI7IGl0ZXIyIGYgbDEgbDJcbiAgfCAoXywgXykgLT4gaW52YWxpZF9hcmcgXCJMaXN0Lml0ZXIyXCJcblxubGV0IHJlYyBmb2xkX2xlZnQyIGYgYWNjdSBsMSBsMiA9XG4gIG1hdGNoIChsMSwgbDIpIHdpdGhcbiAgICAoW10sIFtdKSAtPiBhY2N1XG4gIHwgKGExOjpsMSwgYTI6OmwyKSAtPiBmb2xkX2xlZnQyIGYgKGYgYWNjdSBhMSBhMikgbDEgbDJcbiAgfCAoXywgXykgLT4gaW52YWxpZF9hcmcgXCJMaXN0LmZvbGRfbGVmdDJcIlxuXG5sZXQgcmVjIGZvbGRfcmlnaHQyIGYgbDEgbDIgYWNjdSA9XG4gIG1hdGNoIChsMSwgbDIpIHdpdGhcbiAgICAoW10sIFtdKSAtPiBhY2N1XG4gIHwgKGExOjpsMSwgYTI6OmwyKSAtPiBmIGExIGEyIChmb2xkX3JpZ2h0MiBmIGwxIGwyIGFjY3UpXG4gIHwgKF8sIF8pIC0+IGludmFsaWRfYXJnIFwiTGlzdC5mb2xkX3JpZ2h0MlwiXG5cbmxldCByZWMgZm9yX2FsbCBwID0gZnVuY3Rpb25cbiAgICBbXSAtPiB0cnVlXG4gIHwgYTo6bCAtPiBwIGEgJiYgZm9yX2FsbCBwIGxcblxubGV0IHJlYyBleGlzdHMgcCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gZmFsc2VcbiAgfCBhOjpsIC0+IHAgYSB8fCBleGlzdHMgcCBsXG5cbmxldCByZWMgZm9yX2FsbDIgcCBsMSBsMiA9XG4gIG1hdGNoIChsMSwgbDIpIHdpdGhcbiAgICAoW10sIFtdKSAtPiB0cnVlXG4gIHwgKGExOjpsMSwgYTI6OmwyKSAtPiBwIGExIGEyICYmIGZvcl9hbGwyIHAgbDEgbDJcbiAgfCAoXywgXykgLT4gaW52YWxpZF9hcmcgXCJMaXN0LmZvcl9hbGwyXCJcblxubGV0IHJlYyBleGlzdHMyIHAgbDEgbDIgPVxuICBtYXRjaCAobDEsIGwyKSB3aXRoXG4gICAgKFtdLCBbXSkgLT4gZmFsc2VcbiAgfCAoYTE6OmwxLCBhMjo6bDIpIC0+IHAgYTEgYTIgfHwgZXhpc3RzMiBwIGwxIGwyXG4gIHwgKF8sIF8pIC0+IGludmFsaWRfYXJnIFwiTGlzdC5leGlzdHMyXCJcblxubGV0IHJlYyBtZW0geCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gZmFsc2VcbiAgfCBhOjpsIC0+IGNvbXBhcmUgYSB4ID0gMCB8fCBtZW0geCBsXG5cbmxldCByZWMgbWVtcSB4ID0gZnVuY3Rpb25cbiAgICBbXSAtPiBmYWxzZVxuICB8IGE6OmwgLT4gYSA9PSB4IHx8IG1lbXEgeCBsXG5cbmxldCByZWMgYXNzb2MgeCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gcmFpc2UgTm90X2ZvdW5kXG4gIHwgKGEsYik6OmwgLT4gaWYgY29tcGFyZSBhIHggPSAwIHRoZW4gYiBlbHNlIGFzc29jIHggbFxuXG5sZXQgcmVjIGFzc29jX29wdCB4ID0gZnVuY3Rpb25cbiAgICBbXSAtPiBOb25lXG4gIHwgKGEsYik6OmwgLT4gaWYgY29tcGFyZSBhIHggPSAwIHRoZW4gU29tZSBiIGVsc2UgYXNzb2Nfb3B0IHggbFxuXG5sZXQgcmVjIGFzc3EgeCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gcmFpc2UgTm90X2ZvdW5kXG4gIHwgKGEsYik6OmwgLT4gaWYgYSA9PSB4IHRoZW4gYiBlbHNlIGFzc3EgeCBsXG5cbmxldCByZWMgYXNzcV9vcHQgeCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gTm9uZVxuICB8IChhLGIpOjpsIC0+IGlmIGEgPT0geCB0aGVuIFNvbWUgYiBlbHNlIGFzc3Ffb3B0IHggbFxuXG5sZXQgcmVjIG1lbV9hc3NvYyB4ID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBmYWxzZVxuICB8IChhLCBfKSA6OiBsIC0+IGNvbXBhcmUgYSB4ID0gMCB8fCBtZW1fYXNzb2MgeCBsXG5cbmxldCByZWMgbWVtX2Fzc3EgeCA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gZmFsc2VcbiAgfCAoYSwgXykgOjogbCAtPiBhID09IHggfHwgbWVtX2Fzc3EgeCBsXG5cbmxldCByZWMgcmVtb3ZlX2Fzc29jIHggPSBmdW5jdGlvblxuICB8IFtdIC0+IFtdXG4gIHwgKGEsIF8gYXMgcGFpcikgOjogbCAtPlxuICAgICAgaWYgY29tcGFyZSBhIHggPSAwIHRoZW4gbCBlbHNlIHBhaXIgOjogcmVtb3ZlX2Fzc29jIHggbFxuXG5sZXQgcmVjIHJlbW92ZV9hc3NxIHggPSBmdW5jdGlvblxuICB8IFtdIC0+IFtdXG4gIHwgKGEsIF8gYXMgcGFpcikgOjogbCAtPiBpZiBhID09IHggdGhlbiBsIGVsc2UgcGFpciA6OiByZW1vdmVfYXNzcSB4IGxcblxubGV0IHJlYyBmaW5kIHAgPSBmdW5jdGlvblxuICB8IFtdIC0+IHJhaXNlIE5vdF9mb3VuZFxuICB8IHggOjogbCAtPiBpZiBwIHggdGhlbiB4IGVsc2UgZmluZCBwIGxcblxubGV0IHJlYyBmaW5kX29wdCBwID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBOb25lXG4gIHwgeCA6OiBsIC0+IGlmIHAgeCB0aGVuIFNvbWUgeCBlbHNlIGZpbmRfb3B0IHAgbFxuXG5sZXQgcmVjIGZpbmRfbWFwIGYgPSBmdW5jdGlvblxuICB8IFtdIC0+IE5vbmVcbiAgfCB4IDo6IGwgLT5cbiAgICAgYmVnaW4gbWF0Y2ggZiB4IHdpdGhcbiAgICAgICB8IFNvbWUgXyBhcyByZXN1bHQgLT4gcmVzdWx0XG4gICAgICAgfCBOb25lIC0+IGZpbmRfbWFwIGYgbFxuICAgICBlbmRcblxubGV0IGZpbmRfYWxsIHAgPVxuICBsZXQgcmVjIGZpbmQgYWNjdSA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gcmV2IGFjY3VcbiAgfCB4IDo6IGwgLT4gaWYgcCB4IHRoZW4gZmluZCAoeCA6OiBhY2N1KSBsIGVsc2UgZmluZCBhY2N1IGwgaW5cbiAgZmluZCBbXVxuXG5sZXQgZmlsdGVyID0gZmluZF9hbGxcblxubGV0IGZpbHRlcmkgcCBsID1cbiAgbGV0IHJlYyBhdXggaSBhY2MgPSBmdW5jdGlvblxuICB8IFtdIC0+IHJldiBhY2NcbiAgfCB4OjpsIC0+IGF1eCAoaSArIDEpIChpZiBwIGkgeCB0aGVuIHg6OmFjYyBlbHNlIGFjYykgbFxuICBpblxuICBhdXggMCBbXSBsXG5cbmxldCBmaWx0ZXJfbWFwIGYgPVxuICBsZXQgcmVjIGF1eCBhY2N1ID0gZnVuY3Rpb25cbiAgICB8IFtdIC0+IHJldiBhY2N1XG4gICAgfCB4IDo6IGwgLT5cbiAgICAgICAgbWF0Y2ggZiB4IHdpdGhcbiAgICAgICAgfCBOb25lIC0+IGF1eCBhY2N1IGxcbiAgICAgICAgfCBTb21lIHYgLT4gYXV4ICh2IDo6IGFjY3UpIGxcbiAgaW5cbiAgYXV4IFtdXG5cbmxldCBjb25jYXRfbWFwIGYgbCA9XG4gIGxldCByZWMgYXV4IGYgYWNjID0gZnVuY3Rpb25cbiAgICB8IFtdIC0+IHJldiBhY2NcbiAgICB8IHggOjogbCAtPlxuICAgICAgIGxldCB4cyA9IGYgeCBpblxuICAgICAgIGF1eCBmIChyZXZfYXBwZW5kIHhzIGFjYykgbFxuICBpbiBhdXggZiBbXSBsXG5cbmxldCBmb2xkX2xlZnRfbWFwIGYgYWNjdSBsID1cbiAgbGV0IHJlYyBhdXggYWNjdSBsX2FjY3UgPSBmdW5jdGlvblxuICAgIHwgW10gLT4gYWNjdSwgcmV2IGxfYWNjdVxuICAgIHwgeCA6OiBsIC0+XG4gICAgICAgIGxldCBhY2N1LCB4ID0gZiBhY2N1IHggaW5cbiAgICAgICAgYXV4IGFjY3UgKHggOjogbF9hY2N1KSBsIGluXG4gIGF1eCBhY2N1IFtdIGxcblxubGV0IHBhcnRpdGlvbiBwIGwgPVxuICBsZXQgcmVjIHBhcnQgeWVzIG5vID0gZnVuY3Rpb25cbiAgfCBbXSAtPiAocmV2IHllcywgcmV2IG5vKVxuICB8IHggOjogbCAtPiBpZiBwIHggdGhlbiBwYXJ0ICh4IDo6IHllcykgbm8gbCBlbHNlIHBhcnQgeWVzICh4IDo6IG5vKSBsIGluXG4gIHBhcnQgW10gW10gbFxuXG5sZXQgcGFydGl0aW9uX21hcCBwIGwgPVxuICBsZXQgcmVjIHBhcnQgbGVmdCByaWdodCA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gKHJldiBsZWZ0LCByZXYgcmlnaHQpXG4gIHwgeCA6OiBsIC0+XG4gICAgIGJlZ2luIG1hdGNoIHAgeCB3aXRoXG4gICAgICAgfCBFaXRoZXIuTGVmdCB2IC0+IHBhcnQgKHYgOjogbGVmdCkgcmlnaHQgbFxuICAgICAgIHwgRWl0aGVyLlJpZ2h0IHYgLT4gcGFydCBsZWZ0ICh2IDo6IHJpZ2h0KSBsXG4gICAgIGVuZFxuICBpblxuICBwYXJ0IFtdIFtdIGxcblxubGV0IHJlYyBzcGxpdCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gKFtdLCBbXSlcbiAgfCAoeCx5KTo6bCAtPlxuICAgICAgbGV0IChyeCwgcnkpID0gc3BsaXQgbCBpbiAoeDo6cngsIHk6OnJ5KVxuXG5sZXQgcmVjIGNvbWJpbmUgbDEgbDIgPVxuICBtYXRjaCAobDEsIGwyKSB3aXRoXG4gICAgKFtdLCBbXSkgLT4gW11cbiAgfCAoYTE6OmwxLCBhMjo6bDIpIC0+IChhMSwgYTIpIDo6IGNvbWJpbmUgbDEgbDJcbiAgfCAoXywgXykgLT4gaW52YWxpZF9hcmcgXCJMaXN0LmNvbWJpbmVcIlxuXG4oKiogc29ydGluZyAqKVxuXG5sZXQgcmVjIG1lcmdlIGNtcCBsMSBsMiA9XG4gIG1hdGNoIGwxLCBsMiB3aXRoXG4gIHwgW10sIGwyIC0+IGwyXG4gIHwgbDEsIFtdIC0+IGwxXG4gIHwgaDEgOjogdDEsIGgyIDo6IHQyIC0+XG4gICAgICBpZiBjbXAgaDEgaDIgPD0gMFxuICAgICAgdGhlbiBoMSA6OiBtZXJnZSBjbXAgdDEgbDJcbiAgICAgIGVsc2UgaDIgOjogbWVyZ2UgY21wIGwxIHQyXG5cblxubGV0IHN0YWJsZV9zb3J0IGNtcCBsID1cbiAgbGV0IHJlYyByZXZfbWVyZ2UgbDEgbDIgYWNjdSA9XG4gICAgbWF0Y2ggbDEsIGwyIHdpdGhcbiAgICB8IFtdLCBsMiAtPiByZXZfYXBwZW5kIGwyIGFjY3VcbiAgICB8IGwxLCBbXSAtPiByZXZfYXBwZW5kIGwxIGFjY3VcbiAgICB8IGgxOjp0MSwgaDI6OnQyIC0+XG4gICAgICAgIGlmIGNtcCBoMSBoMiA8PSAwXG4gICAgICAgIHRoZW4gcmV2X21lcmdlIHQxIGwyIChoMTo6YWNjdSlcbiAgICAgICAgZWxzZSByZXZfbWVyZ2UgbDEgdDIgKGgyOjphY2N1KVxuICBpblxuICBsZXQgcmVjIHJldl9tZXJnZV9yZXYgbDEgbDIgYWNjdSA9XG4gICAgbWF0Y2ggbDEsIGwyIHdpdGhcbiAgICB8IFtdLCBsMiAtPiByZXZfYXBwZW5kIGwyIGFjY3VcbiAgICB8IGwxLCBbXSAtPiByZXZfYXBwZW5kIGwxIGFjY3VcbiAgICB8IGgxOjp0MSwgaDI6OnQyIC0+XG4gICAgICAgIGlmIGNtcCBoMSBoMiA+IDBcbiAgICAgICAgdGhlbiByZXZfbWVyZ2VfcmV2IHQxIGwyIChoMTo6YWNjdSlcbiAgICAgICAgZWxzZSByZXZfbWVyZ2VfcmV2IGwxIHQyIChoMjo6YWNjdSlcbiAgaW5cbiAgbGV0IHJlYyBzb3J0IG4gbCA9XG4gICAgbWF0Y2ggbiwgbCB3aXRoXG4gICAgfCAyLCB4MSA6OiB4MiA6OiB0bCAtPlxuICAgICAgICBsZXQgcyA9IGlmIGNtcCB4MSB4MiA8PSAwIHRoZW4gW3gxOyB4Ml0gZWxzZSBbeDI7IHgxXSBpblxuICAgICAgICAocywgdGwpXG4gICAgfCAzLCB4MSA6OiB4MiA6OiB4MyA6OiB0bCAtPlxuICAgICAgICBsZXQgcyA9XG4gICAgICAgICAgaWYgY21wIHgxIHgyIDw9IDAgdGhlblxuICAgICAgICAgICAgaWYgY21wIHgyIHgzIDw9IDAgdGhlbiBbeDE7IHgyOyB4M11cbiAgICAgICAgICAgIGVsc2UgaWYgY21wIHgxIHgzIDw9IDAgdGhlbiBbeDE7IHgzOyB4Ml1cbiAgICAgICAgICAgIGVsc2UgW3gzOyB4MTsgeDJdXG4gICAgICAgICAgZWxzZSBpZiBjbXAgeDEgeDMgPD0gMCB0aGVuIFt4MjsgeDE7IHgzXVxuICAgICAgICAgIGVsc2UgaWYgY21wIHgyIHgzIDw9IDAgdGhlbiBbeDI7IHgzOyB4MV1cbiAgICAgICAgICBlbHNlIFt4MzsgeDI7IHgxXVxuICAgICAgICBpblxuICAgICAgICAocywgdGwpXG4gICAgfCBuLCBsIC0+XG4gICAgICAgIGxldCBuMSA9IG4gYXNyIDEgaW5cbiAgICAgICAgbGV0IG4yID0gbiAtIG4xIGluXG4gICAgICAgIGxldCBzMSwgbDIgPSByZXZfc29ydCBuMSBsIGluXG4gICAgICAgIGxldCBzMiwgdGwgPSByZXZfc29ydCBuMiBsMiBpblxuICAgICAgICAocmV2X21lcmdlX3JldiBzMSBzMiBbXSwgdGwpXG4gIGFuZCByZXZfc29ydCBuIGwgPVxuICAgIG1hdGNoIG4sIGwgd2l0aFxuICAgIHwgMiwgeDEgOjogeDIgOjogdGwgLT5cbiAgICAgICAgbGV0IHMgPSBpZiBjbXAgeDEgeDIgPiAwIHRoZW4gW3gxOyB4Ml0gZWxzZSBbeDI7IHgxXSBpblxuICAgICAgICAocywgdGwpXG4gICAgfCAzLCB4MSA6OiB4MiA6OiB4MyA6OiB0bCAtPlxuICAgICAgICBsZXQgcyA9XG4gICAgICAgICAgaWYgY21wIHgxIHgyID4gMCB0aGVuXG4gICAgICAgICAgICBpZiBjbXAgeDIgeDMgPiAwIHRoZW4gW3gxOyB4MjsgeDNdXG4gICAgICAgICAgICBlbHNlIGlmIGNtcCB4MSB4MyA+IDAgdGhlbiBbeDE7IHgzOyB4Ml1cbiAgICAgICAgICAgIGVsc2UgW3gzOyB4MTsgeDJdXG4gICAgICAgICAgZWxzZSBpZiBjbXAgeDEgeDMgPiAwIHRoZW4gW3gyOyB4MTsgeDNdXG4gICAgICAgICAgZWxzZSBpZiBjbXAgeDIgeDMgPiAwIHRoZW4gW3gyOyB4MzsgeDFdXG4gICAgICAgICAgZWxzZSBbeDM7IHgyOyB4MV1cbiAgICAgICAgaW5cbiAgICAgICAgKHMsIHRsKVxuICAgIHwgbiwgbCAtPlxuICAgICAgICBsZXQgbjEgPSBuIGFzciAxIGluXG4gICAgICAgIGxldCBuMiA9IG4gLSBuMSBpblxuICAgICAgICBsZXQgczEsIGwyID0gc29ydCBuMSBsIGluXG4gICAgICAgIGxldCBzMiwgdGwgPSBzb3J0IG4yIGwyIGluXG4gICAgICAgIChyZXZfbWVyZ2UgczEgczIgW10sIHRsKVxuICBpblxuICBsZXQgbGVuID0gbGVuZ3RoIGwgaW5cbiAgaWYgbGVuIDwgMiB0aGVuIGwgZWxzZSBmc3QgKHNvcnQgbGVuIGwpXG5cblxubGV0IHNvcnQgPSBzdGFibGVfc29ydFxubGV0IGZhc3Rfc29ydCA9IHN0YWJsZV9zb3J0XG5cbigqIE5vdGU6IG9uIGEgbGlzdCBvZiBsZW5ndGggYmV0d2VlbiBhYm91dCAxMDAwMDAgKGRlcGVuZGluZyBvbiB0aGUgbWlub3JcbiAgIGhlYXAgc2l6ZSBhbmQgdGhlIHR5cGUgb2YgdGhlIGxpc3QpIGFuZCBTeXMubWF4X2FycmF5X3NpemUsIGl0IGlzXG4gICBhY3R1YWxseSBmYXN0ZXIgdG8gdXNlIHRoZSBmb2xsb3dpbmcsIGJ1dCBpdCBtaWdodCBhbHNvIHVzZSBtb3JlIG1lbW9yeVxuICAgYmVjYXVzZSB0aGUgYXJndW1lbnQgbGlzdCBjYW5ub3QgYmUgZGVhbGxvY2F0ZWQgaW5jcmVtZW50YWxseS5cblxuICAgQWxzbywgdGhlcmUgc2VlbXMgdG8gYmUgYSBidWcgaW4gdGhpcyBjb2RlIG9yIGluIHRoZVxuICAgaW1wbGVtZW50YXRpb24gb2Ygb2JqX3RydW5jYXRlLlxuXG5leHRlcm5hbCBvYmpfdHJ1bmNhdGUgOiAnYSBhcnJheSAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9vYmpfdHJ1bmNhdGVcIlxuXG5sZXQgYXJyYXlfdG9fbGlzdF9pbl9wbGFjZSBhID1cbiAgbGV0IGwgPSBBcnJheS5sZW5ndGggYSBpblxuICBsZXQgcmVjIGxvb3AgYWNjdSBuIHAgPVxuICAgIGlmIHAgPD0gMCB0aGVuIGFjY3UgZWxzZSBiZWdpblxuICAgICAgaWYgcCA9IG4gdGhlbiBiZWdpblxuICAgICAgICBvYmpfdHJ1bmNhdGUgYSBwO1xuICAgICAgICBsb29wIChhLihwLTEpIDo6IGFjY3UpIChuLTEwMDApIChwLTEpXG4gICAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgICBsb29wIChhLihwLTEpIDo6IGFjY3UpIG4gKHAtMSlcbiAgICAgIGVuZFxuICAgIGVuZFxuICBpblxuICBsb29wIFtdIChsLTEwMDApIGxcblxuXG5sZXQgc3RhYmxlX3NvcnQgY21wIGwgPVxuICBsZXQgYSA9IEFycmF5Lm9mX2xpc3QgbCBpblxuICBBcnJheS5zdGFibGVfc29ydCBjbXAgYTtcbiAgYXJyYXlfdG9fbGlzdF9pbl9wbGFjZSBhXG5cbiopXG5cblxuKCoqIHNvcnRpbmcgKyByZW1vdmluZyBkdXBsaWNhdGVzICopXG5cbmxldCBzb3J0X3VuaXEgY21wIGwgPVxuICBsZXQgcmVjIHJldl9tZXJnZSBsMSBsMiBhY2N1ID1cbiAgICBtYXRjaCBsMSwgbDIgd2l0aFxuICAgIHwgW10sIGwyIC0+IHJldl9hcHBlbmQgbDIgYWNjdVxuICAgIHwgbDEsIFtdIC0+IHJldl9hcHBlbmQgbDEgYWNjdVxuICAgIHwgaDE6OnQxLCBoMjo6dDIgLT5cbiAgICAgICAgbGV0IGMgPSBjbXAgaDEgaDIgaW5cbiAgICAgICAgaWYgYyA9IDAgdGhlbiByZXZfbWVyZ2UgdDEgdDIgKGgxOjphY2N1KVxuICAgICAgICBlbHNlIGlmIGMgPCAwXG4gICAgICAgIHRoZW4gcmV2X21lcmdlIHQxIGwyIChoMTo6YWNjdSlcbiAgICAgICAgZWxzZSByZXZfbWVyZ2UgbDEgdDIgKGgyOjphY2N1KVxuICBpblxuICBsZXQgcmVjIHJldl9tZXJnZV9yZXYgbDEgbDIgYWNjdSA9XG4gICAgbWF0Y2ggbDEsIGwyIHdpdGhcbiAgICB8IFtdLCBsMiAtPiByZXZfYXBwZW5kIGwyIGFjY3VcbiAgICB8IGwxLCBbXSAtPiByZXZfYXBwZW5kIGwxIGFjY3VcbiAgICB8IGgxOjp0MSwgaDI6OnQyIC0+XG4gICAgICAgIGxldCBjID0gY21wIGgxIGgyIGluXG4gICAgICAgIGlmIGMgPSAwIHRoZW4gcmV2X21lcmdlX3JldiB0MSB0MiAoaDE6OmFjY3UpXG4gICAgICAgIGVsc2UgaWYgYyA+IDBcbiAgICAgICAgdGhlbiByZXZfbWVyZ2VfcmV2IHQxIGwyIChoMTo6YWNjdSlcbiAgICAgICAgZWxzZSByZXZfbWVyZ2VfcmV2IGwxIHQyIChoMjo6YWNjdSlcbiAgaW5cbiAgbGV0IHJlYyBzb3J0IG4gbCA9XG4gICAgbWF0Y2ggbiwgbCB3aXRoXG4gICAgfCAyLCB4MSA6OiB4MiA6OiB0bCAtPlxuICAgICAgICBsZXQgcyA9XG4gICAgICAgICAgbGV0IGMgPSBjbXAgeDEgeDIgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4MV0gZWxzZSBpZiBjIDwgMCB0aGVuIFt4MTsgeDJdIGVsc2UgW3gyOyB4MV1cbiAgICAgICAgaW5cbiAgICAgICAgKHMsIHRsKVxuICAgIHwgMywgeDEgOjogeDIgOjogeDMgOjogdGwgLT5cbiAgICAgICAgbGV0IHMgPVxuICAgICAgICAgIGxldCBjID0gY21wIHgxIHgyIGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlblxuICAgICAgICAgICAgbGV0IGMgPSBjbXAgeDIgeDMgaW5cbiAgICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gyXSBlbHNlIGlmIGMgPCAwIHRoZW4gW3gyOyB4M10gZWxzZSBbeDM7IHgyXVxuICAgICAgICAgIGVsc2UgaWYgYyA8IDAgdGhlblxuICAgICAgICAgICAgbGV0IGMgPSBjbXAgeDIgeDMgaW5cbiAgICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gxOyB4Ml1cbiAgICAgICAgICAgIGVsc2UgaWYgYyA8IDAgdGhlbiBbeDE7IHgyOyB4M11cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgbGV0IGMgPSBjbXAgeDEgeDMgaW5cbiAgICAgICAgICAgICAgaWYgYyA9IDAgdGhlbiBbeDE7IHgyXVxuICAgICAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW4gW3gxOyB4MzsgeDJdXG4gICAgICAgICAgICAgIGVsc2UgW3gzOyB4MTsgeDJdXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbGV0IGMgPSBjbXAgeDEgeDMgaW5cbiAgICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gyOyB4MV1cbiAgICAgICAgICAgIGVsc2UgaWYgYyA8IDAgdGhlbiBbeDI7IHgxOyB4M11cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgbGV0IGMgPSBjbXAgeDIgeDMgaW5cbiAgICAgICAgICAgICAgaWYgYyA9IDAgdGhlbiBbeDI7IHgxXVxuICAgICAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW4gW3gyOyB4MzsgeDFdXG4gICAgICAgICAgICAgIGVsc2UgW3gzOyB4MjsgeDFdXG4gICAgICAgIGluXG4gICAgICAgIChzLCB0bClcbiAgICB8IG4sIGwgLT5cbiAgICAgICAgbGV0IG4xID0gbiBhc3IgMSBpblxuICAgICAgICBsZXQgbjIgPSBuIC0gbjEgaW5cbiAgICAgICAgbGV0IHMxLCBsMiA9IHJldl9zb3J0IG4xIGwgaW5cbiAgICAgICAgbGV0IHMyLCB0bCA9IHJldl9zb3J0IG4yIGwyIGluXG4gICAgICAgIChyZXZfbWVyZ2VfcmV2IHMxIHMyIFtdLCB0bClcbiAgYW5kIHJldl9zb3J0IG4gbCA9XG4gICAgbWF0Y2ggbiwgbCB3aXRoXG4gICAgfCAyLCB4MSA6OiB4MiA6OiB0bCAtPlxuICAgICAgICBsZXQgcyA9XG4gICAgICAgICAgbGV0IGMgPSBjbXAgeDEgeDIgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4MV0gZWxzZSBpZiBjID4gMCB0aGVuIFt4MTsgeDJdIGVsc2UgW3gyOyB4MV1cbiAgICAgICAgaW5cbiAgICAgICAgKHMsIHRsKVxuICAgIHwgMywgeDEgOjogeDIgOjogeDMgOjogdGwgLT5cbiAgICAgICAgbGV0IHMgPVxuICAgICAgICAgIGxldCBjID0gY21wIHgxIHgyIGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlblxuICAgICAgICAgICAgbGV0IGMgPSBjbXAgeDIgeDMgaW5cbiAgICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gyXSBlbHNlIGlmIGMgPiAwIHRoZW4gW3gyOyB4M10gZWxzZSBbeDM7IHgyXVxuICAgICAgICAgIGVsc2UgaWYgYyA+IDAgdGhlblxuICAgICAgICAgICAgbGV0IGMgPSBjbXAgeDIgeDMgaW5cbiAgICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gxOyB4Ml1cbiAgICAgICAgICAgIGVsc2UgaWYgYyA+IDAgdGhlbiBbeDE7IHgyOyB4M11cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgbGV0IGMgPSBjbXAgeDEgeDMgaW5cbiAgICAgICAgICAgICAgaWYgYyA9IDAgdGhlbiBbeDE7IHgyXVxuICAgICAgICAgICAgICBlbHNlIGlmIGMgPiAwIHRoZW4gW3gxOyB4MzsgeDJdXG4gICAgICAgICAgICAgIGVsc2UgW3gzOyB4MTsgeDJdXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbGV0IGMgPSBjbXAgeDEgeDMgaW5cbiAgICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gyOyB4MV1cbiAgICAgICAgICAgIGVsc2UgaWYgYyA+IDAgdGhlbiBbeDI7IHgxOyB4M11cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgbGV0IGMgPSBjbXAgeDIgeDMgaW5cbiAgICAgICAgICAgICAgaWYgYyA9IDAgdGhlbiBbeDI7IHgxXVxuICAgICAgICAgICAgICBlbHNlIGlmIGMgPiAwIHRoZW4gW3gyOyB4MzsgeDFdXG4gICAgICAgICAgICAgIGVsc2UgW3gzOyB4MjsgeDFdXG4gICAgICAgIGluXG4gICAgICAgIChzLCB0bClcbiAgICB8IG4sIGwgLT5cbiAgICAgICAgbGV0IG4xID0gbiBhc3IgMSBpblxuICAgICAgICBsZXQgbjIgPSBuIC0gbjEgaW5cbiAgICAgICAgbGV0IHMxLCBsMiA9IHNvcnQgbjEgbCBpblxuICAgICAgICBsZXQgczIsIHRsID0gc29ydCBuMiBsMiBpblxuICAgICAgICAocmV2X21lcmdlIHMxIHMyIFtdLCB0bClcbiAgaW5cbiAgbGV0IGxlbiA9IGxlbmd0aCBsIGluXG4gIGlmIGxlbiA8IDIgdGhlbiBsIGVsc2UgZnN0IChzb3J0IGxlbiBsKVxuXG5cbmxldCByZWMgY29tcGFyZV9sZW5ndGhzIGwxIGwyID1cbiAgbWF0Y2ggbDEsIGwyIHdpdGhcbiAgfCBbXSwgW10gLT4gMFxuICB8IFtdLCBfIC0+IC0xXG4gIHwgXywgW10gLT4gMVxuICB8IF8gOjogbDEsIF8gOjogbDIgLT4gY29tcGFyZV9sZW5ndGhzIGwxIGwyXG47O1xuXG5sZXQgcmVjIGNvbXBhcmVfbGVuZ3RoX3dpdGggbCBuID1cbiAgbWF0Y2ggbCB3aXRoXG4gIHwgW10gLT5cbiAgICBpZiBuID0gMCB0aGVuIDAgZWxzZVxuICAgICAgaWYgbiA+IDAgdGhlbiAtMSBlbHNlIDFcbiAgfCBfIDo6IGwgLT5cbiAgICBpZiBuIDw9IDAgdGhlbiAxIGVsc2VcbiAgICAgIGNvbXBhcmVfbGVuZ3RoX3dpdGggbCAobi0xKVxuOztcblxuKCoqIHsxIENvbXBhcmlzb259ICopXG5cbigqIE5vdGU6IHdlIGFyZSAqbm90KiBzaG9ydGN1dHRpbmcgdGhlIGxpc3QgYnkgdXNpbmdcbiAgIFtMaXN0LmNvbXBhcmVfbGVuZ3Roc10gZmlyc3Q7IHRoaXMgbWF5IGJlIHNsb3dlciBvbiBsb25nIGxpc3RzXG4gICBpbW1lZGlhdGVseSBzdGFydCB3aXRoIGRpc3RpbmN0IGVsZW1lbnRzLiBJdCBpcyBhbHNvIGluY29ycmVjdCBmb3JcbiAgIFtjb21wYXJlXSBiZWxvdywgYW5kIGl0IGlzIGJldHRlciAocHJpbmNpcGxlIG9mIGxlYXN0IHN1cnByaXNlKSB0b1xuICAgdXNlIHRoZSBzYW1lIGFwcHJvYWNoIGZvciBib3RoIGZ1bmN0aW9ucy4gKilcbmxldCByZWMgZXF1YWwgZXEgbDEgbDIgPVxuICBtYXRjaCBsMSwgbDIgd2l0aFxuICB8IFtdLCBbXSAtPiB0cnVlXG4gIHwgW10sIF86Ol8gfCBfOjpfLCBbXSAtPiBmYWxzZVxuICB8IGExOjpsMSwgYTI6OmwyIC0+IGVxIGExIGEyICYmIGVxdWFsIGVxIGwxIGwyXG5cbmxldCByZWMgY29tcGFyZSBjbXAgbDEgbDIgPVxuICBtYXRjaCBsMSwgbDIgd2l0aFxuICB8IFtdLCBbXSAtPiAwXG4gIHwgW10sIF86Ol8gLT4gLTFcbiAgfCBfOjpfLCBbXSAtPiAxXG4gIHwgYTE6OmwxLCBhMjo6bDIgLT5cbiAgICBsZXQgYyA9IGNtcCBhMSBhMiBpblxuICAgIGlmIGMgPD4gMCB0aGVuIGNcbiAgICBlbHNlIGNvbXBhcmUgY21wIGwxIGwyXG5cbigqKiB7MSBJdGVyYXRvcnN9ICopXG5cbmxldCB0b19zZXEgbCA9XG4gIGxldCByZWMgYXV4IGwgKCkgPSBtYXRjaCBsIHdpdGhcbiAgICB8IFtdIC0+IFNlcS5OaWxcbiAgICB8IHggOjogdGFpbCAtPiBTZXEuQ29ucyAoeCwgYXV4IHRhaWwpXG4gIGluXG4gIGF1eCBsXG5cbmxldCBvZl9zZXEgc2VxID1cbiAgbGV0IHJlYyBkaXJlY3QgZGVwdGggc2VxIDogXyBsaXN0ID1cbiAgICBpZiBkZXB0aD0wXG4gICAgdGhlblxuICAgICAgU2VxLmZvbGRfbGVmdCAoZnVuIGFjYyB4IC0+IHg6OmFjYykgW10gc2VxXG4gICAgICB8PiByZXYgKCogdGFpbHJlYyAqKVxuICAgIGVsc2UgbWF0Y2ggc2VxKCkgd2l0aFxuICAgICAgfCBTZXEuTmlsIC0+IFtdXG4gICAgICB8IFNlcS5Db25zICh4LCBuZXh0KSAtPiB4IDo6IGRpcmVjdCAoZGVwdGgtMSkgbmV4dFxuICBpblxuICBkaXJlY3QgNTAwIHNlcVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgVGhlIE9DYW1sIHByb2dyYW1tZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxOCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlIHQgPSBpbnRcblxubGV0IHplcm8gPSAwXG5sZXQgb25lID0gMVxubGV0IG1pbnVzX29uZSA9IC0xXG5leHRlcm5hbCBuZWcgOiBpbnQgLT4gaW50ID0gXCIlbmVnaW50XCJcbmV4dGVybmFsIGFkZCA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlYWRkaW50XCJcbmV4dGVybmFsIHN1YiA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlc3ViaW50XCJcbmV4dGVybmFsIG11bCA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbXVsaW50XCJcbmV4dGVybmFsIGRpdiA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlZGl2aW50XCJcbmV4dGVybmFsIHJlbSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbW9kaW50XCJcbmV4dGVybmFsIHN1Y2MgOiBpbnQgLT4gaW50ID0gXCIlc3VjY2ludFwiXG5leHRlcm5hbCBwcmVkIDogaW50IC0+IGludCA9IFwiJXByZWRpbnRcIlxubGV0IGFicyB4ID0gaWYgeCA+PSAwIHRoZW4geCBlbHNlIC14XG5sZXQgbWF4X2ludCA9ICgtMSkgbHNyIDFcbmxldCBtaW5faW50ID0gbWF4X2ludCArIDFcbmV4dGVybmFsIGxvZ2FuZCA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlYW5kaW50XCJcbmV4dGVybmFsIGxvZ29yIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVvcmludFwiXG5leHRlcm5hbCBsb2d4b3IgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJXhvcmludFwiXG5sZXQgbG9nbm90IHggPSBsb2d4b3IgeCAoLTEpXG5leHRlcm5hbCBzaGlmdF9sZWZ0IDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVsc2xpbnRcIlxuZXh0ZXJuYWwgc2hpZnRfcmlnaHQgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFzcmludFwiXG5leHRlcm5hbCBzaGlmdF9yaWdodF9sb2dpY2FsIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVsc3JpbnRcIlxubGV0IGVxdWFsIDogaW50IC0+IGludCAtPiBib29sID0gKCA9IClcbmxldCBjb21wYXJlIDogaW50IC0+IGludCAtPiBpbnQgPSBTdGRsaWIuY29tcGFyZVxubGV0IG1pbiB4IHkgOiB0ID0gaWYgeCA8PSB5IHRoZW4geCBlbHNlIHlcbmxldCBtYXggeCB5IDogdCA9IGlmIHggPj0geSB0aGVuIHggZWxzZSB5XG5leHRlcm5hbCB0b19mbG9hdCA6IGludCAtPiBmbG9hdCA9IFwiJWZsb2F0b2ZpbnRcIlxuZXh0ZXJuYWwgb2ZfZmxvYXQgOiBmbG9hdCAtPiBpbnQgPSBcIiVpbnRvZmZsb2F0XCJcblxuKCpcbmV4dGVybmFsIGludF9vZl9zdHJpbmcgOiBzdHJpbmcgLT4gaW50ID0gXCJjYW1sX2ludF9vZl9zdHJpbmdcIlxubGV0IG9mX3N0cmluZyBzID0gdHJ5IFNvbWUgKGludF9vZl9zdHJpbmcgcykgd2l0aCBGYWlsdXJlIF8gLT4gTm9uZVxuKilcblxuZXh0ZXJuYWwgZm9ybWF0X2ludCA6IHN0cmluZyAtPiBpbnQgLT4gc3RyaW5nID0gXCJjYW1sX2Zvcm1hdF9pbnRcIlxubGV0IHRvX3N0cmluZyB4ID0gZm9ybWF0X2ludCBcIiVkXCIgeFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBCeXRlIHNlcXVlbmNlIG9wZXJhdGlvbnMgKilcblxuKCogV0FSTklORzogU29tZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlIGFyZSBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCBmb3JcbiAgIGVmZmljaWVuY3kgcmVhc29ucy4gV2hlbiB5b3UgbW9kaWZ5IHRoZSBvbmUgaW4gdGhpcyBmaWxlIHlvdSBuZWVkIHRvXG4gICBtb2RpZnkgaXRzIGR1cGxpY2F0ZSBpbiBzdHJpbmcubWwuXG4gICBUaGVzZSBmdW5jdGlvbnMgaGF2ZSBhIFwiZHVwbGljYXRlZFwiIGNvbW1lbnQgYWJvdmUgdGhlaXIgZGVmaW5pdGlvbi5cbiopXG5cbmV4dGVybmFsIGxlbmd0aCA6IGJ5dGVzIC0+IGludCA9IFwiJWJ5dGVzX2xlbmd0aFwiXG5leHRlcm5hbCBzdHJpbmdfbGVuZ3RoIDogc3RyaW5nIC0+IGludCA9IFwiJXN0cmluZ19sZW5ndGhcIlxuZXh0ZXJuYWwgZ2V0IDogYnl0ZXMgLT4gaW50IC0+IGNoYXIgPSBcIiVieXRlc19zYWZlX2dldFwiXG5leHRlcm5hbCBzZXQgOiBieXRlcyAtPiBpbnQgLT4gY2hhciAtPiB1bml0ID0gXCIlYnl0ZXNfc2FmZV9zZXRcIlxuZXh0ZXJuYWwgY3JlYXRlIDogaW50IC0+IGJ5dGVzID0gXCJjYW1sX2NyZWF0ZV9ieXRlc1wiXG5leHRlcm5hbCB1bnNhZmVfZ2V0IDogYnl0ZXMgLT4gaW50IC0+IGNoYXIgPSBcIiVieXRlc191bnNhZmVfZ2V0XCJcbmV4dGVybmFsIHVuc2FmZV9zZXQgOiBieXRlcyAtPiBpbnQgLT4gY2hhciAtPiB1bml0ID0gXCIlYnl0ZXNfdW5zYWZlX3NldFwiXG5leHRlcm5hbCB1bnNhZmVfZmlsbCA6IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gY2hhciAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9maWxsX2J5dGVzXCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIHVuc2FmZV90b19zdHJpbmcgOiBieXRlcyAtPiBzdHJpbmcgPSBcIiVieXRlc190b19zdHJpbmdcIlxuZXh0ZXJuYWwgdW5zYWZlX29mX3N0cmluZyA6IHN0cmluZyAtPiBieXRlcyA9IFwiJWJ5dGVzX29mX3N0cmluZ1wiXG5cbmV4dGVybmFsIHVuc2FmZV9ibGl0IDogYnl0ZXMgLT4gaW50IC0+IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfYmxpdF9ieXRlc1wiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB1bnNhZmVfYmxpdF9zdHJpbmcgOiBzdHJpbmcgLT4gaW50IC0+IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfYmxpdF9zdHJpbmdcIiBbQEBub2FsbG9jXVxuXG5sZXQgbWFrZSBuIGMgPVxuICBsZXQgcyA9IGNyZWF0ZSBuIGluXG4gIHVuc2FmZV9maWxsIHMgMCBuIGM7XG4gIHNcblxubGV0IGluaXQgbiBmID1cbiAgbGV0IHMgPSBjcmVhdGUgbiBpblxuICBmb3IgaSA9IDAgdG8gbiAtIDEgZG9cbiAgICB1bnNhZmVfc2V0IHMgaSAoZiBpKVxuICBkb25lO1xuICBzXG5cbmxldCBlbXB0eSA9IGNyZWF0ZSAwXG5cbmxldCBjb3B5IHMgPVxuICBsZXQgbGVuID0gbGVuZ3RoIHMgaW5cbiAgbGV0IHIgPSBjcmVhdGUgbGVuIGluXG4gIHVuc2FmZV9ibGl0IHMgMCByIDAgbGVuO1xuICByXG5cbmxldCB0b19zdHJpbmcgYiA9IHVuc2FmZV90b19zdHJpbmcgKGNvcHkgYilcbmxldCBvZl9zdHJpbmcgcyA9IGNvcHkgKHVuc2FmZV9vZl9zdHJpbmcgcylcblxubGV0IHN1YiBzIG9mcyBsZW4gPVxuICBpZiBvZnMgPCAwIHx8IGxlbiA8IDAgfHwgb2ZzID4gbGVuZ3RoIHMgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIlN0cmluZy5zdWIgLyBCeXRlcy5zdWJcIlxuICBlbHNlIGJlZ2luXG4gICAgbGV0IHIgPSBjcmVhdGUgbGVuIGluXG4gICAgdW5zYWZlX2JsaXQgcyBvZnMgciAwIGxlbjtcbiAgICByXG4gIGVuZFxuXG5sZXQgc3ViX3N0cmluZyBiIG9mcyBsZW4gPSB1bnNhZmVfdG9fc3RyaW5nIChzdWIgYiBvZnMgbGVuKVxuXG4oKiBhZGRpdGlvbiB3aXRoIGFuIG92ZXJmbG93IGNoZWNrICopXG5sZXQgKCsrKSBhIGIgPVxuICBsZXQgYyA9IGEgKyBiIGluXG4gIG1hdGNoIGEgPCAwLCBiIDwgMCwgYyA8IDAgd2l0aFxuICB8IHRydWUgLCB0cnVlICwgZmFsc2VcbiAgfCBmYWxzZSwgZmFsc2UsIHRydWUgIC0+IGludmFsaWRfYXJnIFwiQnl0ZXMuZXh0ZW5kXCIgKCogb3ZlcmZsb3cgKilcbiAgfCBfIC0+IGNcblxubGV0IGV4dGVuZCBzIGxlZnQgcmlnaHQgPVxuICBsZXQgbGVuID0gbGVuZ3RoIHMgKysgbGVmdCArKyByaWdodCBpblxuICBsZXQgciA9IGNyZWF0ZSBsZW4gaW5cbiAgbGV0IChzcmNvZmYsIGRzdG9mZikgPSBpZiBsZWZ0IDwgMCB0aGVuIC1sZWZ0LCAwIGVsc2UgMCwgbGVmdCBpblxuICBsZXQgY3B5bGVuID0gSW50Lm1pbiAobGVuZ3RoIHMgLSBzcmNvZmYpIChsZW4gLSBkc3RvZmYpIGluXG4gIGlmIGNweWxlbiA+IDAgdGhlbiB1bnNhZmVfYmxpdCBzIHNyY29mZiByIGRzdG9mZiBjcHlsZW47XG4gIHJcblxubGV0IGZpbGwgcyBvZnMgbGVuIGMgPVxuICBpZiBvZnMgPCAwIHx8IGxlbiA8IDAgfHwgb2ZzID4gbGVuZ3RoIHMgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIlN0cmluZy5maWxsIC8gQnl0ZXMuZmlsbFwiXG4gIGVsc2UgdW5zYWZlX2ZpbGwgcyBvZnMgbGVuIGNcblxubGV0IGJsaXQgczEgb2ZzMSBzMiBvZnMyIGxlbiA9XG4gIGlmIGxlbiA8IDAgfHwgb2ZzMSA8IDAgfHwgb2ZzMSA+IGxlbmd0aCBzMSAtIGxlblxuICAgICAgICAgICAgIHx8IG9mczIgPCAwIHx8IG9mczIgPiBsZW5ndGggczIgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIkJ5dGVzLmJsaXRcIlxuICBlbHNlIHVuc2FmZV9ibGl0IHMxIG9mczEgczIgb2ZzMiBsZW5cblxubGV0IGJsaXRfc3RyaW5nIHMxIG9mczEgczIgb2ZzMiBsZW4gPVxuICBpZiBsZW4gPCAwIHx8IG9mczEgPCAwIHx8IG9mczEgPiBzdHJpbmdfbGVuZ3RoIHMxIC0gbGVuXG4gICAgICAgICAgICAgfHwgb2ZzMiA8IDAgfHwgb2ZzMiA+IGxlbmd0aCBzMiAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiU3RyaW5nLmJsaXQgLyBCeXRlcy5ibGl0X3N0cmluZ1wiXG4gIGVsc2UgdW5zYWZlX2JsaXRfc3RyaW5nIHMxIG9mczEgczIgb2ZzMiBsZW5cblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBpdGVyIGYgYSA9XG4gIGZvciBpID0gMCB0byBsZW5ndGggYSAtIDEgZG8gZih1bnNhZmVfZ2V0IGEgaSkgZG9uZVxuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IGl0ZXJpIGYgYSA9XG4gIGZvciBpID0gMCB0byBsZW5ndGggYSAtIDEgZG8gZiBpICh1bnNhZmVfZ2V0IGEgaSkgZG9uZVxuXG5sZXQgZW5zdXJlX2dlICh4OmludCkgeSA9IGlmIHggPj0geSB0aGVuIHggZWxzZSBpbnZhbGlkX2FyZyBcIkJ5dGVzLmNvbmNhdFwiXG5cbmxldCByZWMgc3VtX2xlbmd0aHMgYWNjIHNlcGxlbiA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gYWNjXG4gIHwgaGQgOjogW10gLT4gbGVuZ3RoIGhkICsgYWNjXG4gIHwgaGQgOjogdGwgLT4gc3VtX2xlbmd0aHMgKGVuc3VyZV9nZSAobGVuZ3RoIGhkICsgc2VwbGVuICsgYWNjKSBhY2MpIHNlcGxlbiB0bFxuXG5sZXQgcmVjIHVuc2FmZV9ibGl0cyBkc3QgcG9zIHNlcCBzZXBsZW4gPSBmdW5jdGlvblxuICAgIFtdIC0+IGRzdFxuICB8IGhkIDo6IFtdIC0+XG4gICAgdW5zYWZlX2JsaXQgaGQgMCBkc3QgcG9zIChsZW5ndGggaGQpOyBkc3RcbiAgfCBoZCA6OiB0bCAtPlxuICAgIHVuc2FmZV9ibGl0IGhkIDAgZHN0IHBvcyAobGVuZ3RoIGhkKTtcbiAgICB1bnNhZmVfYmxpdCBzZXAgMCBkc3QgKHBvcyArIGxlbmd0aCBoZCkgc2VwbGVuO1xuICAgIHVuc2FmZV9ibGl0cyBkc3QgKHBvcyArIGxlbmd0aCBoZCArIHNlcGxlbikgc2VwIHNlcGxlbiB0bFxuXG5sZXQgY29uY2F0IHNlcCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gZW1wdHlcbiAgfCBsIC0+IGxldCBzZXBsZW4gPSBsZW5ndGggc2VwIGluXG4gICAgICAgICAgdW5zYWZlX2JsaXRzXG4gICAgICAgICAgICAoY3JlYXRlIChzdW1fbGVuZ3RocyAwIHNlcGxlbiBsKSlcbiAgICAgICAgICAgIDAgc2VwIHNlcGxlbiBsXG5cbmxldCBjYXQgczEgczIgPVxuICBsZXQgbDEgPSBsZW5ndGggczEgaW5cbiAgbGV0IGwyID0gbGVuZ3RoIHMyIGluXG4gIGxldCByID0gY3JlYXRlIChsMSArIGwyKSBpblxuICB1bnNhZmVfYmxpdCBzMSAwIHIgMCBsMTtcbiAgdW5zYWZlX2JsaXQgczIgMCByIGwxIGwyO1xuICByXG5cblxuZXh0ZXJuYWwgY2hhcl9jb2RlOiBjaGFyIC0+IGludCA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIGNoYXJfY2hyOiBpbnQgLT4gY2hhciA9IFwiJWlkZW50aXR5XCJcblxubGV0IGlzX3NwYWNlID0gZnVuY3Rpb25cbiAgfCAnICcgfCAnXFwwMTInIHwgJ1xcbicgfCAnXFxyJyB8ICdcXHQnIC0+IHRydWVcbiAgfCBfIC0+IGZhbHNlXG5cbmxldCB0cmltIHMgPVxuICBsZXQgbGVuID0gbGVuZ3RoIHMgaW5cbiAgbGV0IGkgPSByZWYgMCBpblxuICB3aGlsZSAhaSA8IGxlbiAmJiBpc19zcGFjZSAodW5zYWZlX2dldCBzICFpKSBkb1xuICAgIGluY3IgaVxuICBkb25lO1xuICBsZXQgaiA9IHJlZiAobGVuIC0gMSkgaW5cbiAgd2hpbGUgIWogPj0gIWkgJiYgaXNfc3BhY2UgKHVuc2FmZV9nZXQgcyAhaikgZG9cbiAgICBkZWNyIGpcbiAgZG9uZTtcbiAgaWYgIWogPj0gIWkgdGhlblxuICAgIHN1YiBzICFpICghaiAtICFpICsgMSlcbiAgZWxzZVxuICAgIGVtcHR5XG5cbmxldCBlc2NhcGVkIHMgPVxuICBsZXQgbiA9IHJlZiAwIGluXG4gIGZvciBpID0gMCB0byBsZW5ndGggcyAtIDEgZG9cbiAgICBuIDo9ICFuICtcbiAgICAgIChtYXRjaCB1bnNhZmVfZ2V0IHMgaSB3aXRoXG4gICAgICAgfCAnXFxcIicgfCAnXFxcXCcgfCAnXFxuJyB8ICdcXHQnIHwgJ1xccicgfCAnXFxiJyAtPiAyXG4gICAgICAgfCAnICcgLi4gJ34nIC0+IDFcbiAgICAgICB8IF8gLT4gNClcbiAgZG9uZTtcbiAgaWYgIW4gPSBsZW5ndGggcyB0aGVuIGNvcHkgcyBlbHNlIGJlZ2luXG4gICAgbGV0IHMnID0gY3JlYXRlICFuIGluXG4gICAgbiA6PSAwO1xuICAgIGZvciBpID0gMCB0byBsZW5ndGggcyAtIDEgZG9cbiAgICAgIGJlZ2luIG1hdGNoIHVuc2FmZV9nZXQgcyBpIHdpdGhcbiAgICAgIHwgKCdcXFwiJyB8ICdcXFxcJykgYXMgYyAtPlxuICAgICAgICAgIHVuc2FmZV9zZXQgcycgIW4gJ1xcXFwnOyBpbmNyIG47IHVuc2FmZV9zZXQgcycgIW4gY1xuICAgICAgfCAnXFxuJyAtPlxuICAgICAgICAgIHVuc2FmZV9zZXQgcycgIW4gJ1xcXFwnOyBpbmNyIG47IHVuc2FmZV9zZXQgcycgIW4gJ24nXG4gICAgICB8ICdcXHQnIC0+XG4gICAgICAgICAgdW5zYWZlX3NldCBzJyAhbiAnXFxcXCc7IGluY3IgbjsgdW5zYWZlX3NldCBzJyAhbiAndCdcbiAgICAgIHwgJ1xccicgLT5cbiAgICAgICAgICB1bnNhZmVfc2V0IHMnICFuICdcXFxcJzsgaW5jciBuOyB1bnNhZmVfc2V0IHMnICFuICdyJ1xuICAgICAgfCAnXFxiJyAtPlxuICAgICAgICAgIHVuc2FmZV9zZXQgcycgIW4gJ1xcXFwnOyBpbmNyIG47IHVuc2FmZV9zZXQgcycgIW4gJ2InXG4gICAgICB8ICgnICcgLi4gJ34nKSBhcyBjIC0+IHVuc2FmZV9zZXQgcycgIW4gY1xuICAgICAgfCBjIC0+XG4gICAgICAgICAgbGV0IGEgPSBjaGFyX2NvZGUgYyBpblxuICAgICAgICAgIHVuc2FmZV9zZXQgcycgIW4gJ1xcXFwnO1xuICAgICAgICAgIGluY3IgbjtcbiAgICAgICAgICB1bnNhZmVfc2V0IHMnICFuIChjaGFyX2NociAoNDggKyBhIC8gMTAwKSk7XG4gICAgICAgICAgaW5jciBuO1xuICAgICAgICAgIHVuc2FmZV9zZXQgcycgIW4gKGNoYXJfY2hyICg0OCArIChhIC8gMTApIG1vZCAxMCkpO1xuICAgICAgICAgIGluY3IgbjtcbiAgICAgICAgICB1bnNhZmVfc2V0IHMnICFuIChjaGFyX2NociAoNDggKyBhIG1vZCAxMCkpO1xuICAgICAgZW5kO1xuICAgICAgaW5jciBuXG4gICAgZG9uZTtcbiAgICBzJ1xuICBlbmRcblxubGV0IG1hcCBmIHMgPVxuICBsZXQgbCA9IGxlbmd0aCBzIGluXG4gIGlmIGwgPSAwIHRoZW4gcyBlbHNlIGJlZ2luXG4gICAgbGV0IHIgPSBjcmVhdGUgbCBpblxuICAgIGZvciBpID0gMCB0byBsIC0gMSBkbyB1bnNhZmVfc2V0IHIgaSAoZiAodW5zYWZlX2dldCBzIGkpKSBkb25lO1xuICAgIHJcbiAgZW5kXG5cbmxldCBtYXBpIGYgcyA9XG4gIGxldCBsID0gbGVuZ3RoIHMgaW5cbiAgaWYgbCA9IDAgdGhlbiBzIGVsc2UgYmVnaW5cbiAgICBsZXQgciA9IGNyZWF0ZSBsIGluXG4gICAgZm9yIGkgPSAwIHRvIGwgLSAxIGRvIHVuc2FmZV9zZXQgciBpIChmIGkgKHVuc2FmZV9nZXQgcyBpKSkgZG9uZTtcbiAgICByXG4gIGVuZFxuXG5sZXQgZm9sZF9sZWZ0IGYgeCBhID1cbiAgbGV0IHIgPSByZWYgeCBpblxuICBmb3IgaSA9IDAgdG8gbGVuZ3RoIGEgLSAxIGRvXG4gICAgciA6PSBmICFyICh1bnNhZmVfZ2V0IGEgaSlcbiAgZG9uZTtcbiAgIXJcblxubGV0IGZvbGRfcmlnaHQgZiBhIHggPVxuICBsZXQgciA9IHJlZiB4IGluXG4gIGZvciBpID0gbGVuZ3RoIGEgLSAxIGRvd250byAwIGRvXG4gICAgciA6PSBmICh1bnNhZmVfZ2V0IGEgaSkgIXJcbiAgZG9uZTtcbiAgIXJcblxubGV0IGV4aXN0cyBwIHMgPVxuICBsZXQgbiA9IGxlbmd0aCBzIGluXG4gIGxldCByZWMgbG9vcCBpID1cbiAgICBpZiBpID0gbiB0aGVuIGZhbHNlXG4gICAgZWxzZSBpZiBwICh1bnNhZmVfZ2V0IHMgaSkgdGhlbiB0cnVlXG4gICAgZWxzZSBsb29wIChzdWNjIGkpIGluXG4gIGxvb3AgMFxuXG5sZXQgZm9yX2FsbCBwIHMgPVxuICBsZXQgbiA9IGxlbmd0aCBzIGluXG4gIGxldCByZWMgbG9vcCBpID1cbiAgICBpZiBpID0gbiB0aGVuIHRydWVcbiAgICBlbHNlIGlmIHAgKHVuc2FmZV9nZXQgcyBpKSB0aGVuIGxvb3AgKHN1Y2MgaSlcbiAgICBlbHNlIGZhbHNlIGluXG4gIGxvb3AgMFxuXG5sZXQgdXBwZXJjYXNlX2FzY2lpIHMgPSBtYXAgQ2hhci51cHBlcmNhc2VfYXNjaWkgc1xubGV0IGxvd2VyY2FzZV9hc2NpaSBzID0gbWFwIENoYXIubG93ZXJjYXNlX2FzY2lpIHNcblxubGV0IGFwcGx5MSBmIHMgPVxuICBpZiBsZW5ndGggcyA9IDAgdGhlbiBzIGVsc2UgYmVnaW5cbiAgICBsZXQgciA9IGNvcHkgcyBpblxuICAgIHVuc2FmZV9zZXQgciAwIChmKHVuc2FmZV9nZXQgcyAwKSk7XG4gICAgclxuICBlbmRcblxubGV0IGNhcGl0YWxpemVfYXNjaWkgcyA9IGFwcGx5MSBDaGFyLnVwcGVyY2FzZV9hc2NpaSBzXG5sZXQgdW5jYXBpdGFsaXplX2FzY2lpIHMgPSBhcHBseTEgQ2hhci5sb3dlcmNhc2VfYXNjaWkgc1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IHN0YXJ0c193aXRoIH5wcmVmaXggcyA9XG4gIGxldCBsZW5fcyA9IGxlbmd0aCBzXG4gIGFuZCBsZW5fcHJlID0gbGVuZ3RoIHByZWZpeCBpblxuICBsZXQgcmVjIGF1eCBpID1cbiAgICBpZiBpID0gbGVuX3ByZSB0aGVuIHRydWVcbiAgICBlbHNlIGlmIHVuc2FmZV9nZXQgcyBpIDw+IHVuc2FmZV9nZXQgcHJlZml4IGkgdGhlbiBmYWxzZVxuICAgIGVsc2UgYXV4IChpICsgMSlcbiAgaW4gbGVuX3MgPj0gbGVuX3ByZSAmJiBhdXggMFxuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IGVuZHNfd2l0aCB+c3VmZml4IHMgPVxuICBsZXQgbGVuX3MgPSBsZW5ndGggc1xuICBhbmQgbGVuX3N1ZiA9IGxlbmd0aCBzdWZmaXggaW5cbiAgbGV0IGRpZmYgPSBsZW5fcyAtIGxlbl9zdWYgaW5cbiAgbGV0IHJlYyBhdXggaSA9XG4gICAgaWYgaSA9IGxlbl9zdWYgdGhlbiB0cnVlXG4gICAgZWxzZSBpZiB1bnNhZmVfZ2V0IHMgKGRpZmYgKyBpKSA8PiB1bnNhZmVfZ2V0IHN1ZmZpeCBpIHRoZW4gZmFsc2VcbiAgICBlbHNlIGF1eCAoaSArIDEpXG4gIGluIGRpZmYgPj0gMCAmJiBhdXggMFxuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IHJlYyBpbmRleF9yZWMgcyBsaW0gaSBjID1cbiAgaWYgaSA+PSBsaW0gdGhlbiByYWlzZSBOb3RfZm91bmQgZWxzZVxuICBpZiB1bnNhZmVfZ2V0IHMgaSA9IGMgdGhlbiBpIGVsc2UgaW5kZXhfcmVjIHMgbGltIChpICsgMSkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IGluZGV4IHMgYyA9IGluZGV4X3JlYyBzIChsZW5ndGggcykgMCBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgcmVjIGluZGV4X3JlY19vcHQgcyBsaW0gaSBjID1cbiAgaWYgaSA+PSBsaW0gdGhlbiBOb25lIGVsc2VcbiAgaWYgdW5zYWZlX2dldCBzIGkgPSBjIHRoZW4gU29tZSBpIGVsc2UgaW5kZXhfcmVjX29wdCBzIGxpbSAoaSArIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBpbmRleF9vcHQgcyBjID0gaW5kZXhfcmVjX29wdCBzIChsZW5ndGggcykgMCBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgaW5kZXhfZnJvbSBzIGkgYyA9XG4gIGxldCBsID0gbGVuZ3RoIHMgaW5cbiAgaWYgaSA8IDAgfHwgaSA+IGwgdGhlbiBpbnZhbGlkX2FyZyBcIlN0cmluZy5pbmRleF9mcm9tIC8gQnl0ZXMuaW5kZXhfZnJvbVwiIGVsc2VcbiAgaW5kZXhfcmVjIHMgbCBpIGNcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBpbmRleF9mcm9tX29wdCBzIGkgYyA9XG4gIGxldCBsID0gbGVuZ3RoIHMgaW5cbiAgaWYgaSA8IDAgfHwgaSA+IGwgdGhlblxuICAgIGludmFsaWRfYXJnIFwiU3RyaW5nLmluZGV4X2Zyb21fb3B0IC8gQnl0ZXMuaW5kZXhfZnJvbV9vcHRcIlxuICBlbHNlXG4gICAgaW5kZXhfcmVjX29wdCBzIGwgaSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgcmVjIHJpbmRleF9yZWMgcyBpIGMgPVxuICBpZiBpIDwgMCB0aGVuIHJhaXNlIE5vdF9mb3VuZCBlbHNlXG4gIGlmIHVuc2FmZV9nZXQgcyBpID0gYyB0aGVuIGkgZWxzZSByaW5kZXhfcmVjIHMgKGkgLSAxKSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgcmluZGV4IHMgYyA9IHJpbmRleF9yZWMgcyAobGVuZ3RoIHMgLSAxKSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgcmluZGV4X2Zyb20gcyBpIGMgPVxuICBpZiBpIDwgLTEgfHwgaSA+PSBsZW5ndGggcyB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJTdHJpbmcucmluZGV4X2Zyb20gLyBCeXRlcy5yaW5kZXhfZnJvbVwiXG4gIGVsc2VcbiAgICByaW5kZXhfcmVjIHMgaSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgcmVjIHJpbmRleF9yZWNfb3B0IHMgaSBjID1cbiAgaWYgaSA8IDAgdGhlbiBOb25lIGVsc2VcbiAgaWYgdW5zYWZlX2dldCBzIGkgPSBjIHRoZW4gU29tZSBpIGVsc2UgcmluZGV4X3JlY19vcHQgcyAoaSAtIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCByaW5kZXhfb3B0IHMgYyA9IHJpbmRleF9yZWNfb3B0IHMgKGxlbmd0aCBzIC0gMSkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IHJpbmRleF9mcm9tX29wdCBzIGkgYyA9XG4gIGlmIGkgPCAtMSB8fCBpID49IGxlbmd0aCBzIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIlN0cmluZy5yaW5kZXhfZnJvbV9vcHQgLyBCeXRlcy5yaW5kZXhfZnJvbV9vcHRcIlxuICBlbHNlXG4gICAgcmluZGV4X3JlY19vcHQgcyBpIGNcblxuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IGNvbnRhaW5zX2Zyb20gcyBpIGMgPVxuICBsZXQgbCA9IGxlbmd0aCBzIGluXG4gIGlmIGkgPCAwIHx8IGkgPiBsIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIlN0cmluZy5jb250YWluc19mcm9tIC8gQnl0ZXMuY29udGFpbnNfZnJvbVwiXG4gIGVsc2VcbiAgICB0cnkgaWdub3JlIChpbmRleF9yZWMgcyBsIGkgYyk7IHRydWUgd2l0aCBOb3RfZm91bmQgLT4gZmFsc2VcblxuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IGNvbnRhaW5zIHMgYyA9IGNvbnRhaW5zX2Zyb20gcyAwIGNcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCByY29udGFpbnNfZnJvbSBzIGkgYyA9XG4gIGlmIGkgPCAwIHx8IGkgPj0gbGVuZ3RoIHMgdGhlblxuICAgIGludmFsaWRfYXJnIFwiU3RyaW5nLnJjb250YWluc19mcm9tIC8gQnl0ZXMucmNvbnRhaW5zX2Zyb21cIlxuICBlbHNlXG4gICAgdHJ5IGlnbm9yZSAocmluZGV4X3JlYyBzIGkgYyk7IHRydWUgd2l0aCBOb3RfZm91bmQgLT4gZmFsc2VcblxuXG50eXBlIHQgPSBieXRlc1xuXG5sZXQgY29tcGFyZSAoeDogdCkgKHk6IHQpID0gU3RkbGliLmNvbXBhcmUgeCB5XG5leHRlcm5hbCBlcXVhbCA6IHQgLT4gdCAtPiBib29sID0gXCJjYW1sX2J5dGVzX2VxdWFsXCIgW0BAbm9hbGxvY11cblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBzcGxpdF9vbl9jaGFyIHNlcCBzID1cbiAgbGV0IHIgPSByZWYgW10gaW5cbiAgbGV0IGogPSByZWYgKGxlbmd0aCBzKSBpblxuICBmb3IgaSA9IGxlbmd0aCBzIC0gMSBkb3dudG8gMCBkb1xuICAgIGlmIHVuc2FmZV9nZXQgcyBpID0gc2VwIHRoZW4gYmVnaW5cbiAgICAgIHIgOj0gc3ViIHMgKGkgKyAxKSAoIWogLSBpIC0gMSkgOjogIXI7XG4gICAgICBqIDo9IGlcbiAgICBlbmRcbiAgZG9uZTtcbiAgc3ViIHMgMCAhaiA6OiAhclxuXG4oKiBEZXByZWNhdGVkIGZ1bmN0aW9ucyBpbXBsZW1lbnRlZCB2aWEgb3RoZXIgZGVwcmVjYXRlZCBmdW5jdGlvbnMgKilcbltAQEBvY2FtbC53YXJuaW5nIFwiLTNcIl1cbmxldCB1cHBlcmNhc2UgcyA9IG1hcCBDaGFyLnVwcGVyY2FzZSBzXG5sZXQgbG93ZXJjYXNlIHMgPSBtYXAgQ2hhci5sb3dlcmNhc2Ugc1xuXG5sZXQgY2FwaXRhbGl6ZSBzID0gYXBwbHkxIENoYXIudXBwZXJjYXNlIHNcbmxldCB1bmNhcGl0YWxpemUgcyA9IGFwcGx5MSBDaGFyLmxvd2VyY2FzZSBzXG5cbigqKiB7MSBJdGVyYXRvcnN9ICopXG5cbmxldCB0b19zZXEgcyA9XG4gIGxldCByZWMgYXV4IGkgKCkgPVxuICAgIGlmIGkgPSBsZW5ndGggcyB0aGVuIFNlcS5OaWxcbiAgICBlbHNlXG4gICAgICBsZXQgeCA9IGdldCBzIGkgaW5cbiAgICAgIFNlcS5Db25zICh4LCBhdXggKGkrMSkpXG4gIGluXG4gIGF1eCAwXG5cbmxldCB0b19zZXFpIHMgPVxuICBsZXQgcmVjIGF1eCBpICgpID1cbiAgICBpZiBpID0gbGVuZ3RoIHMgdGhlbiBTZXEuTmlsXG4gICAgZWxzZVxuICAgICAgbGV0IHggPSBnZXQgcyBpIGluXG4gICAgICBTZXEuQ29ucyAoKGkseCksIGF1eCAoaSsxKSlcbiAgaW5cbiAgYXV4IDBcblxubGV0IG9mX3NlcSBpID1cbiAgbGV0IG4gPSByZWYgMCBpblxuICBsZXQgYnVmID0gcmVmIChtYWtlIDI1NiAnXFwwMDAnKSBpblxuICBsZXQgcmVzaXplICgpID1cbiAgICAoKiByZXNpemUgKilcbiAgICBsZXQgbmV3X2xlbiA9IEludC5taW4gKDIgKiBsZW5ndGggIWJ1ZikgU3lzLm1heF9zdHJpbmdfbGVuZ3RoIGluXG4gICAgaWYgbGVuZ3RoICFidWYgPSBuZXdfbGVuIHRoZW4gZmFpbHdpdGggXCJCeXRlcy5vZl9zZXE6IGNhbm5vdCBncm93IGJ5dGVzXCI7XG4gICAgbGV0IG5ld19idWYgPSBtYWtlIG5ld19sZW4gJ1xcMDAwJyBpblxuICAgIGJsaXQgIWJ1ZiAwIG5ld19idWYgMCAhbjtcbiAgICBidWYgOj0gbmV3X2J1ZlxuICBpblxuICBTZXEuaXRlclxuICAgIChmdW4gYyAtPlxuICAgICAgIGlmICFuID0gbGVuZ3RoICFidWYgdGhlbiByZXNpemUoKTtcbiAgICAgICBzZXQgIWJ1ZiAhbiBjO1xuICAgICAgIGluY3IgbilcbiAgICBpO1xuICBzdWIgIWJ1ZiAwICFuXG5cbigqKiB7NiBCaW5hcnkgZW5jb2RpbmcvZGVjb2Rpbmcgb2YgaW50ZWdlcnN9ICopXG5cbigqIFRoZSBnZXRfIGZ1bmN0aW9ucyBhcmUgYWxsIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5cbmV4dGVybmFsIHVuc2FmZV9nZXRfdWludDggOiBieXRlcyAtPiBpbnQgLT4gaW50ID0gXCIlYnl0ZXNfdW5zYWZlX2dldFwiXG5leHRlcm5hbCB1bnNhZmVfZ2V0X3VpbnQxNl9uZSA6IGJ5dGVzIC0+IGludCAtPiBpbnQgPSBcIiVjYW1sX2J5dGVzX2dldDE2dVwiXG5leHRlcm5hbCBnZXRfdWludDggOiBieXRlcyAtPiBpbnQgLT4gaW50ID0gXCIlYnl0ZXNfc2FmZV9nZXRcIlxuZXh0ZXJuYWwgZ2V0X3VpbnQxNl9uZSA6IGJ5dGVzIC0+IGludCAtPiBpbnQgPSBcIiVjYW1sX2J5dGVzX2dldDE2XCJcbmV4dGVybmFsIGdldF9pbnQzMl9uZSA6IGJ5dGVzIC0+IGludCAtPiBpbnQzMiA9IFwiJWNhbWxfYnl0ZXNfZ2V0MzJcIlxuZXh0ZXJuYWwgZ2V0X2ludDY0X25lIDogYnl0ZXMgLT4gaW50IC0+IGludDY0ID0gXCIlY2FtbF9ieXRlc19nZXQ2NFwiXG5cbmV4dGVybmFsIHVuc2FmZV9zZXRfdWludDggOiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXQgPSBcIiVieXRlc191bnNhZmVfc2V0XCJcbmV4dGVybmFsIHVuc2FmZV9zZXRfdWludDE2X25lIDogYnl0ZXMgLT4gaW50IC0+IGludCAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiJWNhbWxfYnl0ZXNfc2V0MTZ1XCJcbmV4dGVybmFsIHNldF9pbnQ4IDogYnl0ZXMgLT4gaW50IC0+IGludCAtPiB1bml0ID0gXCIlYnl0ZXNfc2FmZV9zZXRcIlxuZXh0ZXJuYWwgc2V0X2ludDE2X25lIDogYnl0ZXMgLT4gaW50IC0+IGludCAtPiB1bml0ID0gXCIlY2FtbF9ieXRlc19zZXQxNlwiXG5leHRlcm5hbCBzZXRfaW50MzJfbmUgOiBieXRlcyAtPiBpbnQgLT4gaW50MzIgLT4gdW5pdCA9IFwiJWNhbWxfYnl0ZXNfc2V0MzJcIlxuZXh0ZXJuYWwgc2V0X2ludDY0X25lIDogYnl0ZXMgLT4gaW50IC0+IGludDY0IC0+IHVuaXQgPSBcIiVjYW1sX2J5dGVzX3NldDY0XCJcbmV4dGVybmFsIHN3YXAxNiA6IGludCAtPiBpbnQgPSBcIiVic3dhcDE2XCJcbmV4dGVybmFsIHN3YXAzMiA6IGludDMyIC0+IGludDMyID0gXCIlYnN3YXBfaW50MzJcIlxuZXh0ZXJuYWwgc3dhcDY0IDogaW50NjQgLT4gaW50NjQgPSBcIiVic3dhcF9pbnQ2NFwiXG5cbmxldCB1bnNhZmVfZ2V0X3VpbnQxNl9sZSBiIGkgPVxuICBpZiBTeXMuYmlnX2VuZGlhblxuICB0aGVuIHN3YXAxNiAodW5zYWZlX2dldF91aW50MTZfbmUgYiBpKVxuICBlbHNlIHVuc2FmZV9nZXRfdWludDE2X25lIGIgaVxuXG5sZXQgdW5zYWZlX2dldF91aW50MTZfYmUgYiBpID1cbiAgaWYgU3lzLmJpZ19lbmRpYW5cbiAgdGhlbiB1bnNhZmVfZ2V0X3VpbnQxNl9uZSBiIGlcbiAgZWxzZSBzd2FwMTYgKHVuc2FmZV9nZXRfdWludDE2X25lIGIgaSlcblxubGV0IGdldF9pbnQ4IGIgaSA9XG4gICgoZ2V0X3VpbnQ4IGIgaSkgbHNsIChTeXMuaW50X3NpemUgLSA4KSkgYXNyIChTeXMuaW50X3NpemUgLSA4KVxuXG5sZXQgZ2V0X3VpbnQxNl9sZSBiIGkgPVxuICBpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHN3YXAxNiAoZ2V0X3VpbnQxNl9uZSBiIGkpXG4gIGVsc2UgZ2V0X3VpbnQxNl9uZSBiIGlcblxubGV0IGdldF91aW50MTZfYmUgYiBpID1cbiAgaWYgbm90IFN5cy5iaWdfZW5kaWFuIHRoZW4gc3dhcDE2IChnZXRfdWludDE2X25lIGIgaSlcbiAgZWxzZSBnZXRfdWludDE2X25lIGIgaVxuXG5sZXQgZ2V0X2ludDE2X25lIGIgaSA9XG4gICgoZ2V0X3VpbnQxNl9uZSBiIGkpIGxzbCAoU3lzLmludF9zaXplIC0gMTYpKSBhc3IgKFN5cy5pbnRfc2l6ZSAtIDE2KVxuXG5sZXQgZ2V0X2ludDE2X2xlIGIgaSA9XG4gICgoZ2V0X3VpbnQxNl9sZSBiIGkpIGxzbCAoU3lzLmludF9zaXplIC0gMTYpKSBhc3IgKFN5cy5pbnRfc2l6ZSAtIDE2KVxuXG5sZXQgZ2V0X2ludDE2X2JlIGIgaSA9XG4gICgoZ2V0X3VpbnQxNl9iZSBiIGkpIGxzbCAoU3lzLmludF9zaXplIC0gMTYpKSBhc3IgKFN5cy5pbnRfc2l6ZSAtIDE2KVxuXG5sZXQgZ2V0X2ludDMyX2xlIGIgaSA9XG4gIGlmIFN5cy5iaWdfZW5kaWFuIHRoZW4gc3dhcDMyIChnZXRfaW50MzJfbmUgYiBpKVxuICBlbHNlIGdldF9pbnQzMl9uZSBiIGlcblxubGV0IGdldF9pbnQzMl9iZSBiIGkgPVxuICBpZiBub3QgU3lzLmJpZ19lbmRpYW4gdGhlbiBzd2FwMzIgKGdldF9pbnQzMl9uZSBiIGkpXG4gIGVsc2UgZ2V0X2ludDMyX25lIGIgaVxuXG5sZXQgZ2V0X2ludDY0X2xlIGIgaSA9XG4gIGlmIFN5cy5iaWdfZW5kaWFuIHRoZW4gc3dhcDY0IChnZXRfaW50NjRfbmUgYiBpKVxuICBlbHNlIGdldF9pbnQ2NF9uZSBiIGlcblxubGV0IGdldF9pbnQ2NF9iZSBiIGkgPVxuICBpZiBub3QgU3lzLmJpZ19lbmRpYW4gdGhlbiBzd2FwNjQgKGdldF9pbnQ2NF9uZSBiIGkpXG4gIGVsc2UgZ2V0X2ludDY0X25lIGIgaVxuXG5sZXQgdW5zYWZlX3NldF91aW50MTZfbGUgYiBpIHggPVxuICBpZiBTeXMuYmlnX2VuZGlhblxuICB0aGVuIHVuc2FmZV9zZXRfdWludDE2X25lIGIgaSAoc3dhcDE2IHgpXG4gIGVsc2UgdW5zYWZlX3NldF91aW50MTZfbmUgYiBpIHhcblxubGV0IHVuc2FmZV9zZXRfdWludDE2X2JlIGIgaSB4ID1cbiAgaWYgU3lzLmJpZ19lbmRpYW5cbiAgdGhlbiB1bnNhZmVfc2V0X3VpbnQxNl9uZSBiIGkgeCBlbHNlXG4gIHVuc2FmZV9zZXRfdWludDE2X25lIGIgaSAoc3dhcDE2IHgpXG5cbmxldCBzZXRfaW50MTZfbGUgYiBpIHggPVxuICBpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHNldF9pbnQxNl9uZSBiIGkgKHN3YXAxNiB4KVxuICBlbHNlIHNldF9pbnQxNl9uZSBiIGkgeFxuXG5sZXQgc2V0X2ludDE2X2JlIGIgaSB4ID1cbiAgaWYgbm90IFN5cy5iaWdfZW5kaWFuIHRoZW4gc2V0X2ludDE2X25lIGIgaSAoc3dhcDE2IHgpXG4gIGVsc2Ugc2V0X2ludDE2X25lIGIgaSB4XG5cbmxldCBzZXRfaW50MzJfbGUgYiBpIHggPVxuICBpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHNldF9pbnQzMl9uZSBiIGkgKHN3YXAzMiB4KVxuICBlbHNlIHNldF9pbnQzMl9uZSBiIGkgeFxuXG5sZXQgc2V0X2ludDMyX2JlIGIgaSB4ID1cbiAgaWYgbm90IFN5cy5iaWdfZW5kaWFuIHRoZW4gc2V0X2ludDMyX25lIGIgaSAoc3dhcDMyIHgpXG4gIGVsc2Ugc2V0X2ludDMyX25lIGIgaSB4XG5cbmxldCBzZXRfaW50NjRfbGUgYiBpIHggPVxuICBpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHNldF9pbnQ2NF9uZSBiIGkgKHN3YXA2NCB4KVxuICBlbHNlIHNldF9pbnQ2NF9uZSBiIGkgeFxuXG5sZXQgc2V0X2ludDY0X2JlIGIgaSB4ID1cbiAgaWYgbm90IFN5cy5iaWdfZW5kaWFuIHRoZW4gc2V0X2ludDY0X25lIGIgaSAoc3dhcDY0IHgpXG4gIGVsc2Ugc2V0X2ludDY0X25lIGIgaSB4XG5cbmxldCBzZXRfdWludDggPSBzZXRfaW50OFxubGV0IHNldF91aW50MTZfbmUgPSBzZXRfaW50MTZfbmVcbmxldCBzZXRfdWludDE2X2JlID0gc2V0X2ludDE2X2JlXG5sZXQgc2V0X3VpbnQxNl9sZSA9IHNldF9pbnQxNl9sZVxuXG4oKiBVVEYgY29kZWNzIGFuZCB2YWxpZGF0aW9ucyAqKVxuXG5sZXQgZGVjX2ludmFsaWQgPSBVY2hhci51dGZfZGVjb2RlX2ludmFsaWRcbmxldFtAaW5saW5lXSBkZWNfcmV0IG4gdSA9IFVjaGFyLnV0Zl9kZWNvZGUgbiAoVWNoYXIudW5zYWZlX29mX2ludCB1KVxuXG4oKiBJbiBjYXNlIG9mIGRlY29kaW5nIGVycm9yLCBpZiB3ZSBlcnJvciBvbiB0aGUgZmlyc3QgYnl0ZSwgd2VcbiAgIGNvbnN1bWUgdGhlIGJ5dGUsIG90aGVyd2lzZSB3ZSBjb25zdW1lIHRoZSBbbl0gYnl0ZXMgcHJlY2VlZGluZ1xuICAgdGhlIGVycm9yaW5nIGJ5dGUuXG5cbiAgIFRoaXMgbWVhbnMgdGhhdCBpZiBhIGNsaWVudCB1c2VzIGRlY29kZXMgd2l0aG91dCBjYXJpbmcgYWJvdXRcbiAgIHZhbGlkaXR5IGl0IG5hdHVyYWxseSByZXBsYWNlIGJvZ3VzIGRhdGEgd2l0aCBVY2hhci5yZXAgYWNjb3JkaW5nXG4gICB0byB0aGUgV0hBVFdHIEVuY29kaW5nIHN0YW5kYXJkLiBPdGhlciBzY2hlbWVzIGFyZSBwb3NzaWJsZSBieVxuICAgY29uc3VsdGluZyB0aGUgbnVtYmVyIG9mIHVzZWQgYnl0ZXMgb24gaW52YWxpZCBkZWNvZGVzLiBGb3IgbW9yZVxuICAgZGV0YWlscyBzZWUgaHR0cHM6Ly9oc2l2b25lbi5maS9icm9rZW4tdXRmLTgvXG5cbiAgIEZvciB0aGlzIHJlYXNvbiBpbiBbZ2V0X3V0Zl84X3VjaGFyXSB3ZSBncmFkdWFsbHkgY2hlY2sgdGhlIG5leHRcbiAgIGJ5dGUgaXMgYXZhaWxhYmxlIHJhdGhlciB0aGFuIGRvaW5nIGl0IGltbWVkaWF0ZWx5IGFmdGVyIHRoZVxuICAgZmlyc3QgYnl0ZS4gQ29udHJhc3Qgd2l0aCBbaXNfdmFsaWRfdXRmXzhdLiAqKVxuXG4oKiBVVEYtOCAqKVxuXG5sZXRbQGlubGluZV0gbm90X2luX3g4MF90b194QkYgYiA9IGIgbHNyIDYgPD4gMGIxMFxubGV0W0BpbmxpbmVdIG5vdF9pbl94QTBfdG9feEJGIGIgPSBiIGxzciA1IDw+IDBiMTAxXG5sZXRbQGlubGluZV0gbm90X2luX3g4MF90b194OUYgYiA9IGIgbHNyIDUgPD4gMGIxMDBcbmxldFtAaW5saW5lXSBub3RfaW5feDkwX3RvX3hCRiBiID0gYiA8IDB4OTAgfHwgMHhCRiA8IGJcbmxldFtAaW5saW5lXSBub3RfaW5feDgwX3RvX3g4RiBiID0gYiBsc3IgNCA8PiAweDhcblxubGV0W0BpbmxpbmVdIHV0Zl84X3VjaGFyXzIgYjAgYjEgPVxuICAoKGIwIGxhbmQgMHgxRikgbHNsIDYpIGxvclxuICAoKGIxIGxhbmQgMHgzRikpXG5cbmxldFtAaW5saW5lXSB1dGZfOF91Y2hhcl8zIGIwIGIxIGIyID1cbiAgKChiMCBsYW5kIDB4MEYpIGxzbCAxMikgbG9yXG4gICgoYjEgbGFuZCAweDNGKSBsc2wgNikgbG9yXG4gICgoYjIgbGFuZCAweDNGKSlcblxubGV0W0BpbmxpbmVdIHV0Zl84X3VjaGFyXzQgYjAgYjEgYjIgYjMgPVxuICAoKGIwIGxhbmQgMHgwNykgbHNsIDE4KSBsb3JcbiAgKChiMSBsYW5kIDB4M0YpIGxzbCAxMikgbG9yXG4gICgoYjIgbGFuZCAweDNGKSBsc2wgNikgbG9yXG4gICgoYjMgbGFuZCAweDNGKSlcblxubGV0IGdldF91dGZfOF91Y2hhciBiIGkgPVxuICBsZXQgYjAgPSBnZXRfdWludDggYiBpIGluICgqIHJhaXNlcyBpZiBbaV0gaXMgbm90IGEgdmFsaWQgaW5kZXguICopXG4gIGxldCBnZXQgPSB1bnNhZmVfZ2V0X3VpbnQ4IGluXG4gIGxldCBtYXggPSBsZW5ndGggYiAtIDEgaW5cbiAgbWF0Y2ggQ2hhci51bnNhZmVfY2hyIGIwIHdpdGggKCogU2VlIFRoZSBVbmljb2RlIFN0YW5kYXJkLCBUYWJsZSAzLjcgKilcbiAgfCAnXFx4MDAnIC4uICdcXHg3RicgLT4gZGVjX3JldCAxIGIwXG4gIHwgJ1xceEMyJyAuLiAnXFx4REYnIC0+XG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBiMSA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194QkYgYjEgdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGRlY19yZXQgMiAodXRmXzhfdWNoYXJfMiBiMCBiMSlcbiAgfCAnXFx4RTAnIC0+XG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBiMSA9IGdldCBiIGkgaW4gaWYgbm90X2luX3hBMF90b194QkYgYjEgdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgbGV0IGIyID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3hCRiBiMiB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgZGVjX3JldCAzICh1dGZfOF91Y2hhcl8zIGIwIGIxIGIyKVxuICB8ICdcXHhFMScgLi4gJ1xceEVDJyB8ICdcXHhFRScgLi4gJ1xceEVGJyAtPlxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgYjEgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feEJGIGIxIHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGxldCBiMiA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194QkYgYjIgdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGRlY19yZXQgMyAodXRmXzhfdWNoYXJfMyBiMCBiMSBiMilcbiAgfCAnXFx4RUQnIC0+XG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBiMSA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194OUYgYjEgdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgbGV0IGIyID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3hCRiBiMiB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgZGVjX3JldCAzICh1dGZfOF91Y2hhcl8zIGIwIGIxIGIyKVxuICB8ICdcXHhGMCcgLT5cbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICAgICAgbGV0IGIxID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDkwX3RvX3hCRiBiMSB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMiBlbHNlXG4gICAgICBsZXQgYjIgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feEJGIGIyIHRoZW4gZGVjX2ludmFsaWQgMiBlbHNlXG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAzIGVsc2VcbiAgICAgIGxldCBiMyA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194QkYgYjMgdGhlbiBkZWNfaW52YWxpZCAzIGVsc2VcbiAgICAgIGRlY19yZXQgNCAodXRmXzhfdWNoYXJfNCBiMCBiMSBiMiBiMylcbiAgfCAnXFx4RjEnIC4uICdcXHhGMycgLT5cbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICAgICAgbGV0IGIxID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3hCRiBiMSB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMiBlbHNlXG4gICAgICBsZXQgYjIgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feEJGIGIyIHRoZW4gZGVjX2ludmFsaWQgMiBlbHNlXG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAzIGVsc2VcbiAgICAgIGxldCBiMyA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194QkYgYjMgdGhlbiBkZWNfaW52YWxpZCAzIGVsc2VcbiAgICAgIGRlY19yZXQgNCAodXRmXzhfdWNoYXJfNCBiMCBiMSBiMiBiMylcbiAgfCAnXFx4RjQnIC0+XG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBiMSA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194OEYgYjEgdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgbGV0IGIyID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3hCRiBiMiB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMyBlbHNlXG4gICAgICBsZXQgYjMgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feEJGIGIzIHRoZW4gZGVjX2ludmFsaWQgMyBlbHNlXG4gICAgICBkZWNfcmV0IDQgKHV0Zl84X3VjaGFyXzQgYjAgYjEgYjIgYjMpXG4gIHwgXyAtPiBkZWNfaW52YWxpZCAxXG5cbmxldCBzZXRfdXRmXzhfdWNoYXIgYiBpIHUgPVxuICBsZXQgc2V0ID0gdW5zYWZlX3NldF91aW50OCBpblxuICBsZXQgbWF4ID0gbGVuZ3RoIGIgLSAxIGluXG4gIG1hdGNoIFVjaGFyLnRvX2ludCB1IHdpdGhcbiAgfCB1IHdoZW4gdSA8IDAgLT4gYXNzZXJ0IGZhbHNlXG4gIHwgdSB3aGVuIHUgPD0gMHgwMDdGIC0+XG4gICAgICBzZXRfdWludDggYiBpIHU7XG4gICAgICAxXG4gIHwgdSB3aGVuIHUgPD0gMHgwN0ZGIC0+XG4gICAgICBsZXQgbGFzdCA9IGkgKyAxIGluXG4gICAgICBpZiBsYXN0ID4gbWF4IHRoZW4gMCBlbHNlXG4gICAgICAoc2V0X3VpbnQ4IGIgaSAoMHhDMCBsb3IgKHUgbHNyIDYpKTtcbiAgICAgICBzZXQgYiBsYXN0ICgweDgwIGxvciAodSBsYW5kIDB4M0YpKTtcbiAgICAgICAyKVxuICB8IHUgd2hlbiB1IDw9IDB4RkZGRiAtPlxuICAgICAgbGV0IGxhc3QgPSBpICsgMiBpblxuICAgICAgaWYgbGFzdCA+IG1heCB0aGVuIDAgZWxzZVxuICAgICAgKHNldF91aW50OCBiIGkgKDB4RTAgbG9yICh1IGxzciAxMikpO1xuICAgICAgIHNldCBiIChpICsgMSkgKDB4ODAgbG9yICgodSBsc3IgNikgbGFuZCAweDNGKSk7XG4gICAgICAgc2V0IGIgbGFzdCAoMHg4MCBsb3IgKHUgbGFuZCAweDNGKSk7XG4gICAgICAgMylcbiAgfCB1IHdoZW4gdSA8PSAweDEwRkZGRiAtPlxuICAgICAgbGV0IGxhc3QgPSBpICsgMyBpblxuICAgICAgaWYgbGFzdCA+IG1heCB0aGVuIDAgZWxzZVxuICAgICAgKHNldF91aW50OCBiIGkgKDB4RjAgbG9yICh1IGxzciAxOCkpO1xuICAgICAgIHNldCBiIChpICsgMSkgKDB4ODAgbG9yICgodSBsc3IgMTIpIGxhbmQgMHgzRikpO1xuICAgICAgIHNldCBiIChpICsgMikgKDB4ODAgbG9yICgodSBsc3IgNikgbGFuZCAweDNGKSk7XG4gICAgICAgc2V0IGIgbGFzdCAoMHg4MCBsb3IgKHUgbGFuZCAweDNGKSk7XG4gICAgICAgNClcbiAgfCBfIC0+IGFzc2VydCBmYWxzZVxuXG5sZXQgaXNfdmFsaWRfdXRmXzggYiA9XG4gIGxldCByZWMgbG9vcCBtYXggYiBpID1cbiAgICBpZiBpID4gbWF4IHRoZW4gdHJ1ZSBlbHNlXG4gICAgbGV0IGdldCA9IHVuc2FmZV9nZXRfdWludDggaW5cbiAgICBtYXRjaCBDaGFyLnVuc2FmZV9jaHIgKGdldCBiIGkpIHdpdGhcbiAgICB8ICdcXHgwMCcgLi4gJ1xceDdGJyAtPiBsb29wIG1heCBiIChpICsgMSlcbiAgICB8ICdcXHhDMicgLi4gJ1xceERGJyAtPlxuICAgICAgICBsZXQgbGFzdCA9IGkgKyAxIGluXG4gICAgICAgIGlmIGxhc3QgPiBtYXhcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIGxhc3QpXG4gICAgICAgIHRoZW4gZmFsc2VcbiAgICAgICAgZWxzZSBsb29wIG1heCBiIChsYXN0ICsgMSlcbiAgICB8ICdcXHhFMCcgLT5cbiAgICAgICAgbGV0IGxhc3QgPSBpICsgMiBpblxuICAgICAgICBpZiBsYXN0ID4gbWF4XG4gICAgICAgIHx8IG5vdF9pbl94QTBfdG9feEJGIChnZXQgYiAoaSArIDEpKVxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3hCRiAoZ2V0IGIgbGFzdClcbiAgICAgICAgdGhlbiBmYWxzZVxuICAgICAgICBlbHNlIGxvb3AgbWF4IGIgKGxhc3QgKyAxKVxuICAgIHwgJ1xceEUxJyAuLiAnXFx4RUMnIHwgJ1xceEVFJyAuLiAnXFx4RUYnIC0+XG4gICAgICAgIGxldCBsYXN0ID0gaSArIDIgaW5cbiAgICAgICAgaWYgbGFzdCA+IG1heFxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3hCRiAoZ2V0IGIgKGkgKyAxKSlcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIGxhc3QpXG4gICAgICAgIHRoZW4gZmFsc2VcbiAgICAgICAgZWxzZSBsb29wIG1heCBiIChsYXN0ICsgMSlcbiAgICB8ICdcXHhFRCcgLT5cbiAgICAgICAgbGV0IGxhc3QgPSBpICsgMiBpblxuICAgICAgICBpZiBsYXN0ID4gbWF4XG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feDlGIChnZXQgYiAoaSArIDEpKVxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3hCRiAoZ2V0IGIgbGFzdClcbiAgICAgICAgdGhlbiBmYWxzZVxuICAgICAgICBlbHNlIGxvb3AgbWF4IGIgKGxhc3QgKyAxKVxuICAgIHwgJ1xceEYwJyAtPlxuICAgICAgICBsZXQgbGFzdCA9IGkgKyAzIGluXG4gICAgICAgIGlmIGxhc3QgPiBtYXhcbiAgICAgICAgfHwgbm90X2luX3g5MF90b194QkYgKGdldCBiIChpICsgMSkpXG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feEJGIChnZXQgYiAoaSArIDIpKVxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3hCRiAoZ2V0IGIgbGFzdClcbiAgICAgICAgdGhlbiBmYWxzZVxuICAgICAgICBlbHNlIGxvb3AgbWF4IGIgKGxhc3QgKyAxKVxuICAgIHwgJ1xceEYxJyAuLiAnXFx4RjMnIC0+XG4gICAgICAgIGxldCBsYXN0ID0gaSArIDMgaW5cbiAgICAgICAgaWYgbGFzdCA+IG1heFxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3hCRiAoZ2V0IGIgKGkgKyAxKSlcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIChpICsgMikpXG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feEJGIChnZXQgYiBsYXN0KVxuICAgICAgICB0aGVuIGZhbHNlXG4gICAgICAgIGVsc2UgbG9vcCBtYXggYiAobGFzdCArIDEpXG4gICAgfCAnXFx4RjQnIC0+XG4gICAgICAgIGxldCBsYXN0ID0gaSArIDMgaW5cbiAgICAgICAgaWYgbGFzdCA+IG1heFxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3g4RiAoZ2V0IGIgKGkgKyAxKSlcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIChpICsgMikpXG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feEJGIChnZXQgYiBsYXN0KVxuICAgICAgICB0aGVuIGZhbHNlXG4gICAgICAgIGVsc2UgbG9vcCBtYXggYiAobGFzdCArIDEpXG4gICAgfCBfIC0+IGZhbHNlXG4gIGluXG4gIGxvb3AgKGxlbmd0aCBiIC0gMSkgYiAwXG5cbigqIFVURi0xNkJFICopXG5cbmxldCBnZXRfdXRmXzE2YmVfdWNoYXIgYiBpID1cbiAgbGV0IGdldCA9IHVuc2FmZV9nZXRfdWludDE2X2JlIGluXG4gIGxldCBtYXggPSBsZW5ndGggYiAtIDEgaW5cbiAgaWYgaSA8IDAgfHwgaSA+IG1heCB0aGVuIGludmFsaWRfYXJnIFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiIGVsc2VcbiAgaWYgaSA9IG1heCB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICBtYXRjaCBnZXQgYiBpIHdpdGhcbiAgfCB1IHdoZW4gdSA8IDB4RDgwMCB8fCB1ID4gMHhERkZGIC0+IGRlY19yZXQgMiB1XG4gIHwgdSB3aGVuIHUgPiAweERCRkYgLT4gZGVjX2ludmFsaWQgMlxuICB8IGhpIC0+ICgqIGNvbWJpbmUgW2hpXSB3aXRoIGEgbG93IHN1cnJvZ2F0ZSAqKVxuICAgICAgbGV0IGxhc3QgPSBpICsgMyBpblxuICAgICAgaWYgbGFzdCA+IG1heCB0aGVuIGRlY19pbnZhbGlkIChtYXggLSBpICsgMSkgZWxzZVxuICAgICAgbWF0Y2ggZ2V0IGIgKGkgKyAyKSB3aXRoXG4gICAgICB8IHUgd2hlbiB1IDwgMHhEQzAwIHx8IHUgPiAweERGRkYgLT4gZGVjX2ludmFsaWQgMiAoKiByZXRyeSBoZXJlICopXG4gICAgICB8IGxvIC0+XG4gICAgICAgICAgbGV0IHUgPSAoKChoaSBsYW5kIDB4M0ZGKSBsc2wgMTApIGxvciAobG8gbGFuZCAweDNGRikpICsgMHgxMDAwMCBpblxuICAgICAgICAgIGRlY19yZXQgNCB1XG5cbmxldCBzZXRfdXRmXzE2YmVfdWNoYXIgYiBpIHUgPVxuICBsZXQgc2V0ID0gdW5zYWZlX3NldF91aW50MTZfYmUgaW5cbiAgbGV0IG1heCA9IGxlbmd0aCBiIC0gMSBpblxuICBpZiBpIDwgMCB8fCBpID4gbWF4IHRoZW4gaW52YWxpZF9hcmcgXCJpbmRleCBvdXQgb2YgYm91bmRzXCIgZWxzZVxuICBtYXRjaCBVY2hhci50b19pbnQgdSB3aXRoXG4gIHwgdSB3aGVuIHUgPCAwIC0+IGFzc2VydCBmYWxzZVxuICB8IHUgd2hlbiB1IDw9IDB4RkZGRiAtPlxuICAgICAgbGV0IGxhc3QgPSBpICsgMSBpblxuICAgICAgaWYgbGFzdCA+IG1heCB0aGVuIDAgZWxzZSAoc2V0IGIgaSB1OyAyKVxuICB8IHUgd2hlbiB1IDw9IDB4MTBGRkZGIC0+XG4gICAgICBsZXQgbGFzdCA9IGkgKyAzIGluXG4gICAgICBpZiBsYXN0ID4gbWF4IHRoZW4gMCBlbHNlXG4gICAgICBsZXQgdScgPSB1IC0gMHgxMDAwMCBpblxuICAgICAgbGV0IGhpID0gKDB4RDgwMCBsb3IgKHUnIGxzciAxMCkpIGluXG4gICAgICBsZXQgbG8gPSAoMHhEQzAwIGxvciAodScgbGFuZCAweDNGRikpIGluXG4gICAgICBzZXQgYiBpIGhpOyBzZXQgYiAoaSArIDIpIGxvOyA0XG4gIHwgXyAtPiBhc3NlcnQgZmFsc2VcblxubGV0IGlzX3ZhbGlkX3V0Zl8xNmJlIGIgPVxuICBsZXQgcmVjIGxvb3AgbWF4IGIgaSA9XG4gICAgbGV0IGdldCA9IHVuc2FmZV9nZXRfdWludDE2X2JlIGluXG4gICAgaWYgaSA+IG1heCB0aGVuIHRydWUgZWxzZVxuICAgIGlmIGkgPSBtYXggdGhlbiBmYWxzZSBlbHNlXG4gICAgbWF0Y2ggZ2V0IGIgaSB3aXRoXG4gICAgfCB1IHdoZW4gdSA8IDB4RDgwMCB8fCB1ID4gMHhERkZGIC0+IGxvb3AgbWF4IGIgKGkgKyAyKVxuICAgIHwgdSB3aGVuIHUgPiAweERCRkYgLT4gZmFsc2VcbiAgICB8IF9oaSAtPlxuICAgICAgICBsZXQgbGFzdCA9IGkgKyAzIGluXG4gICAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiBmYWxzZSBlbHNlXG4gICAgICAgIG1hdGNoIGdldCBiIChpICsgMikgd2l0aFxuICAgICAgICB8IHUgd2hlbiB1IDwgMHhEQzAwIHx8IHUgPiAweERGRkYgLT4gZmFsc2VcbiAgICAgICAgfCBfbG8gLT4gbG9vcCBtYXggYiAoaSArIDQpXG4gIGluXG4gIGxvb3AgKGxlbmd0aCBiIC0gMSkgYiAwXG5cbigqIFVURi0xNkxFICopXG5cbmxldCBnZXRfdXRmXzE2bGVfdWNoYXIgYiBpID1cbiAgbGV0IGdldCA9IHVuc2FmZV9nZXRfdWludDE2X2xlIGluXG4gIGxldCBtYXggPSBsZW5ndGggYiAtIDEgaW5cbiAgaWYgaSA8IDAgfHwgaSA+IG1heCB0aGVuIGludmFsaWRfYXJnIFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiIGVsc2VcbiAgaWYgaSA9IG1heCB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICBtYXRjaCBnZXQgYiBpIHdpdGhcbiAgfCB1IHdoZW4gdSA8IDB4RDgwMCB8fCB1ID4gMHhERkZGIC0+IGRlY19yZXQgMiB1XG4gIHwgdSB3aGVuIHUgPiAweERCRkYgLT4gZGVjX2ludmFsaWQgMlxuICB8IGhpIC0+ICgqIGNvbWJpbmUgW2hpXSB3aXRoIGEgbG93IHN1cnJvZ2F0ZSAqKVxuICAgICAgbGV0IGxhc3QgPSBpICsgMyBpblxuICAgICAgaWYgbGFzdCA+IG1heCB0aGVuIGRlY19pbnZhbGlkIChtYXggLSBpICsgMSkgZWxzZVxuICAgICAgbWF0Y2ggZ2V0IGIgKGkgKyAyKSB3aXRoXG4gICAgICB8IHUgd2hlbiB1IDwgMHhEQzAwIHx8IHUgPiAweERGRkYgLT4gZGVjX2ludmFsaWQgMiAoKiByZXRyeSBoZXJlICopXG4gICAgICB8IGxvIC0+XG4gICAgICAgICAgbGV0IHUgPSAoKChoaSBsYW5kIDB4M0ZGKSBsc2wgMTApIGxvciAobG8gbGFuZCAweDNGRikpICsgMHgxMDAwMCBpblxuICAgICAgICAgIGRlY19yZXQgNCB1XG5cbmxldCBzZXRfdXRmXzE2bGVfdWNoYXIgYiBpIHUgPVxuICBsZXQgc2V0ID0gdW5zYWZlX3NldF91aW50MTZfbGUgaW5cbiAgbGV0IG1heCA9IGxlbmd0aCBiIC0gMSBpblxuICBpZiBpIDwgMCB8fCBpID4gbWF4IHRoZW4gaW52YWxpZF9hcmcgXCJpbmRleCBvdXQgb2YgYm91bmRzXCIgZWxzZVxuICBtYXRjaCBVY2hhci50b19pbnQgdSB3aXRoXG4gIHwgdSB3aGVuIHUgPCAwIC0+IGFzc2VydCBmYWxzZVxuICB8IHUgd2hlbiB1IDw9IDB4RkZGRiAtPlxuICAgICAgbGV0IGxhc3QgPSBpICsgMSBpblxuICAgICAgaWYgbGFzdCA+IG1heCB0aGVuIDAgZWxzZSAoc2V0IGIgaSB1OyAyKVxuICB8IHUgd2hlbiB1IDw9IDB4MTBGRkZGIC0+XG4gICAgICBsZXQgbGFzdCA9IGkgKyAzIGluXG4gICAgICBpZiBsYXN0ID4gbWF4IHRoZW4gMCBlbHNlXG4gICAgICBsZXQgdScgPSB1IC0gMHgxMDAwMCBpblxuICAgICAgbGV0IGhpID0gKDB4RDgwMCBsb3IgKHUnIGxzciAxMCkpIGluXG4gICAgICBsZXQgbG8gPSAoMHhEQzAwIGxvciAodScgbGFuZCAweDNGRikpIGluXG4gICAgICBzZXQgYiBpIGhpOyBzZXQgYiAoaSArIDIpIGxvOyA0XG4gIHwgXyAtPiBhc3NlcnQgZmFsc2VcblxubGV0IGlzX3ZhbGlkX3V0Zl8xNmxlIGIgPVxuICBsZXQgcmVjIGxvb3AgbWF4IGIgaSA9XG4gICAgbGV0IGdldCA9IHVuc2FmZV9nZXRfdWludDE2X2xlIGluXG4gICAgaWYgaSA+IG1heCB0aGVuIHRydWUgZWxzZVxuICAgIGlmIGkgPSBtYXggdGhlbiBmYWxzZSBlbHNlXG4gICAgbWF0Y2ggZ2V0IGIgaSB3aXRoXG4gICAgfCB1IHdoZW4gdSA8IDB4RDgwMCB8fCB1ID4gMHhERkZGIC0+IGxvb3AgbWF4IGIgKGkgKyAyKVxuICAgIHwgdSB3aGVuIHUgPiAweERCRkYgLT4gZmFsc2VcbiAgICB8IF9oaSAtPlxuICAgICAgICBsZXQgbGFzdCA9IGkgKyAzIGluXG4gICAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiBmYWxzZSBlbHNlXG4gICAgICAgIG1hdGNoIGdldCBiIChpICsgMikgd2l0aFxuICAgICAgICB8IHUgd2hlbiB1IDwgMHhEQzAwIHx8IHUgPiAweERGRkYgLT4gZmFsc2VcbiAgICAgICAgfCBfbG8gLT4gbG9vcCBtYXggYiAoaSArIDQpXG4gIGluXG4gIGxvb3AgKGxlbmd0aCBiIC0gMSkgYiAwXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgRGFtaWVuIERvbGlnZXosIHByb2pldCBHYWxsaXVtLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE0IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIFN0cmluZyBvcGVyYXRpb25zLCBiYXNlZCBvbiBieXRlIHNlcXVlbmNlIG9wZXJhdGlvbnMgKilcblxuKCogV0FSTklORzogU29tZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlIGFyZSBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sIGZvclxuICAgZWZmaWNpZW5jeSByZWFzb25zLiBXaGVuIHlvdSBtb2RpZnkgdGhlIG9uZSBpbiB0aGlzIGZpbGUgeW91IG5lZWQgdG9cbiAgIG1vZGlmeSBpdHMgZHVwbGljYXRlIGluIGJ5dGVzLm1sLlxuICAgVGhlc2UgZnVuY3Rpb25zIGhhdmUgYSBcImR1cGxpY2F0ZWRcIiBjb21tZW50IGFib3ZlIHRoZWlyIGRlZmluaXRpb24uXG4qKVxuXG5leHRlcm5hbCBsZW5ndGggOiBzdHJpbmcgLT4gaW50ID0gXCIlc3RyaW5nX2xlbmd0aFwiXG5leHRlcm5hbCBnZXQgOiBzdHJpbmcgLT4gaW50IC0+IGNoYXIgPSBcIiVzdHJpbmdfc2FmZV9nZXRcIlxuZXh0ZXJuYWwgc2V0IDogYnl0ZXMgLT4gaW50IC0+IGNoYXIgLT4gdW5pdCA9IFwiJXN0cmluZ19zYWZlX3NldFwiXG5leHRlcm5hbCBjcmVhdGUgOiBpbnQgLT4gYnl0ZXMgPSBcImNhbWxfY3JlYXRlX3N0cmluZ1wiXG5leHRlcm5hbCB1bnNhZmVfZ2V0IDogc3RyaW5nIC0+IGludCAtPiBjaGFyID0gXCIlc3RyaW5nX3Vuc2FmZV9nZXRcIlxuZXh0ZXJuYWwgdW5zYWZlX3NldCA6IGJ5dGVzIC0+IGludCAtPiBjaGFyIC0+IHVuaXQgPSBcIiVzdHJpbmdfdW5zYWZlX3NldFwiXG5leHRlcm5hbCB1bnNhZmVfYmxpdCA6IHN0cmluZyAtPiBpbnQgLT4gIGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfYmxpdF9zdHJpbmdcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdW5zYWZlX2ZpbGwgOiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IGNoYXIgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfZmlsbF9zdHJpbmdcIiBbQEBub2FsbG9jXVxuXG5tb2R1bGUgQiA9IEJ5dGVzXG5cbmxldCBidHMgPSBCLnVuc2FmZV90b19zdHJpbmdcbmxldCBib3MgPSBCLnVuc2FmZV9vZl9zdHJpbmdcblxubGV0IG1ha2UgbiBjID1cbiAgQi5tYWtlIG4gYyB8PiBidHNcbmxldCBpbml0IG4gZiA9XG4gIEIuaW5pdCBuIGYgfD4gYnRzXG5sZXQgZW1wdHkgPSBcIlwiXG5sZXQgY29weSBzID1cbiAgQi5jb3B5IChib3MgcykgfD4gYnRzXG5sZXQgb2ZfYnl0ZXMgPSBCLnRvX3N0cmluZ1xubGV0IHRvX2J5dGVzID0gQi5vZl9zdHJpbmdcbmxldCBzdWIgcyBvZnMgbGVuID1cbiAgQi5zdWIgKGJvcyBzKSBvZnMgbGVuIHw+IGJ0c1xubGV0IGZpbGwgPVxuICBCLmZpbGxcbmxldCBibGl0ID1cbiAgQi5ibGl0X3N0cmluZ1xuXG5sZXQgZW5zdXJlX2dlICh4OmludCkgeSA9IGlmIHggPj0geSB0aGVuIHggZWxzZSBpbnZhbGlkX2FyZyBcIlN0cmluZy5jb25jYXRcIlxuXG5sZXQgcmVjIHN1bV9sZW5ndGhzIGFjYyBzZXBsZW4gPSBmdW5jdGlvblxuICB8IFtdIC0+IGFjY1xuICB8IGhkIDo6IFtdIC0+IGxlbmd0aCBoZCArIGFjY1xuICB8IGhkIDo6IHRsIC0+IHN1bV9sZW5ndGhzIChlbnN1cmVfZ2UgKGxlbmd0aCBoZCArIHNlcGxlbiArIGFjYykgYWNjKSBzZXBsZW4gdGxcblxubGV0IHJlYyB1bnNhZmVfYmxpdHMgZHN0IHBvcyBzZXAgc2VwbGVuID0gZnVuY3Rpb25cbiAgICBbXSAtPiBkc3RcbiAgfCBoZCA6OiBbXSAtPlxuICAgIHVuc2FmZV9ibGl0IGhkIDAgZHN0IHBvcyAobGVuZ3RoIGhkKTsgZHN0XG4gIHwgaGQgOjogdGwgLT5cbiAgICB1bnNhZmVfYmxpdCBoZCAwIGRzdCBwb3MgKGxlbmd0aCBoZCk7XG4gICAgdW5zYWZlX2JsaXQgc2VwIDAgZHN0IChwb3MgKyBsZW5ndGggaGQpIHNlcGxlbjtcbiAgICB1bnNhZmVfYmxpdHMgZHN0IChwb3MgKyBsZW5ndGggaGQgKyBzZXBsZW4pIHNlcCBzZXBsZW4gdGxcblxubGV0IGNvbmNhdCBzZXAgPSBmdW5jdGlvblxuICAgIFtdIC0+IFwiXCJcbiAgfCBsIC0+IGxldCBzZXBsZW4gPSBsZW5ndGggc2VwIGluIGJ0cyBAQFxuICAgICAgICAgIHVuc2FmZV9ibGl0c1xuICAgICAgICAgICAgKEIuY3JlYXRlIChzdW1fbGVuZ3RocyAwIHNlcGxlbiBsKSlcbiAgICAgICAgICAgIDAgc2VwIHNlcGxlbiBsXG5cbmxldCBjYXQgPSAoIF4gKVxuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgaXRlciBmIHMgPVxuICBmb3IgaSA9IDAgdG8gbGVuZ3RoIHMgLSAxIGRvIGYgKHVuc2FmZV9nZXQgcyBpKSBkb25lXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCBpdGVyaSBmIHMgPVxuICBmb3IgaSA9IDAgdG8gbGVuZ3RoIHMgLSAxIGRvIGYgaSAodW5zYWZlX2dldCBzIGkpIGRvbmVcblxubGV0IG1hcCBmIHMgPVxuICBCLm1hcCBmIChib3MgcykgfD4gYnRzXG5sZXQgbWFwaSBmIHMgPVxuICBCLm1hcGkgZiAoYm9zIHMpIHw+IGJ0c1xubGV0IGZvbGRfcmlnaHQgZiB4IGEgPVxuICBCLmZvbGRfcmlnaHQgZiAoYm9zIHgpIGFcbmxldCBmb2xkX2xlZnQgZiBhIHggPVxuICBCLmZvbGRfbGVmdCBmIGEgKGJvcyB4KVxubGV0IGV4aXN0cyBmIHMgPVxuICBCLmV4aXN0cyBmIChib3MgcylcbmxldCBmb3JfYWxsIGYgcyA9XG4gIEIuZm9yX2FsbCBmIChib3MgcylcblxuKCogQmV3YXJlOiB3ZSBjYW5ub3QgdXNlIEIudHJpbSBvciBCLmVzY2FwZSBiZWNhdXNlIHRoZXkgYWx3YXlzIG1ha2UgYVxuICAgY29weSwgYnV0IFN0cmluZy5tbGkgc3BlbGxzIG91dCBzb21lIGNhc2VzIHdoZXJlIHdlIGFyZSBub3QgYWxsb3dlZFxuICAgdG8gbWFrZSBhIGNvcHkuICopXG5cbmxldCBpc19zcGFjZSA9IGZ1bmN0aW9uXG4gIHwgJyAnIHwgJ1xcMDEyJyB8ICdcXG4nIHwgJ1xccicgfCAnXFx0JyAtPiB0cnVlXG4gIHwgXyAtPiBmYWxzZVxuXG5sZXQgdHJpbSBzID1cbiAgaWYgcyA9IFwiXCIgdGhlbiBzXG4gIGVsc2UgaWYgaXNfc3BhY2UgKHVuc2FmZV9nZXQgcyAwKSB8fCBpc19zcGFjZSAodW5zYWZlX2dldCBzIChsZW5ndGggcyAtIDEpKVxuICAgIHRoZW4gYnRzIChCLnRyaW0gKGJvcyBzKSlcbiAgZWxzZSBzXG5cbmxldCBlc2NhcGVkIHMgPVxuICBsZXQgcmVjIGVzY2FwZV9pZl9uZWVkZWQgcyBuIGkgPVxuICAgIGlmIGkgPj0gbiB0aGVuIHMgZWxzZVxuICAgICAgbWF0Y2ggdW5zYWZlX2dldCBzIGkgd2l0aFxuICAgICAgfCAnXFxcIicgfCAnXFxcXCcgfCAnXFwwMDAnLi4nXFwwMzEnIHwgJ1xcMTI3Jy4uICdcXDI1NScgLT5cbiAgICAgICAgICBidHMgKEIuZXNjYXBlZCAoYm9zIHMpKVxuICAgICAgfCBfIC0+IGVzY2FwZV9pZl9uZWVkZWQgcyBuIChpKzEpXG4gIGluXG4gIGVzY2FwZV9pZl9uZWVkZWQgcyAobGVuZ3RoIHMpIDBcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IHJlYyBpbmRleF9yZWMgcyBsaW0gaSBjID1cbiAgaWYgaSA+PSBsaW0gdGhlbiByYWlzZSBOb3RfZm91bmQgZWxzZVxuICBpZiB1bnNhZmVfZ2V0IHMgaSA9IGMgdGhlbiBpIGVsc2UgaW5kZXhfcmVjIHMgbGltIChpICsgMSkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgaW5kZXggcyBjID0gaW5kZXhfcmVjIHMgKGxlbmd0aCBzKSAwIGNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IHJlYyBpbmRleF9yZWNfb3B0IHMgbGltIGkgYyA9XG4gIGlmIGkgPj0gbGltIHRoZW4gTm9uZSBlbHNlXG4gIGlmIHVuc2FmZV9nZXQgcyBpID0gYyB0aGVuIFNvbWUgaSBlbHNlIGluZGV4X3JlY19vcHQgcyBsaW0gKGkgKyAxKSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCBpbmRleF9vcHQgcyBjID0gaW5kZXhfcmVjX29wdCBzIChsZW5ndGggcykgMCBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCBpbmRleF9mcm9tIHMgaSBjID1cbiAgbGV0IGwgPSBsZW5ndGggcyBpblxuICBpZiBpIDwgMCB8fCBpID4gbCB0aGVuIGludmFsaWRfYXJnIFwiU3RyaW5nLmluZGV4X2Zyb20gLyBCeXRlcy5pbmRleF9mcm9tXCIgZWxzZVxuICAgIGluZGV4X3JlYyBzIGwgaSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCBpbmRleF9mcm9tX29wdCBzIGkgYyA9XG4gIGxldCBsID0gbGVuZ3RoIHMgaW5cbiAgaWYgaSA8IDAgfHwgaSA+IGwgdGhlblxuICAgIGludmFsaWRfYXJnIFwiU3RyaW5nLmluZGV4X2Zyb21fb3B0IC8gQnl0ZXMuaW5kZXhfZnJvbV9vcHRcIlxuICBlbHNlXG4gICAgaW5kZXhfcmVjX29wdCBzIGwgaSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCByZWMgcmluZGV4X3JlYyBzIGkgYyA9XG4gIGlmIGkgPCAwIHRoZW4gcmFpc2UgTm90X2ZvdW5kIGVsc2VcbiAgaWYgdW5zYWZlX2dldCBzIGkgPSBjIHRoZW4gaSBlbHNlIHJpbmRleF9yZWMgcyAoaSAtIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IHJpbmRleCBzIGMgPSByaW5kZXhfcmVjIHMgKGxlbmd0aCBzIC0gMSkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgcmluZGV4X2Zyb20gcyBpIGMgPVxuICBpZiBpIDwgLTEgfHwgaSA+PSBsZW5ndGggcyB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJTdHJpbmcucmluZGV4X2Zyb20gLyBCeXRlcy5yaW5kZXhfZnJvbVwiXG4gIGVsc2VcbiAgICByaW5kZXhfcmVjIHMgaSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCByZWMgcmluZGV4X3JlY19vcHQgcyBpIGMgPVxuICBpZiBpIDwgMCB0aGVuIE5vbmUgZWxzZVxuICBpZiB1bnNhZmVfZ2V0IHMgaSA9IGMgdGhlbiBTb21lIGkgZWxzZSByaW5kZXhfcmVjX29wdCBzIChpIC0gMSkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgcmluZGV4X29wdCBzIGMgPSByaW5kZXhfcmVjX29wdCBzIChsZW5ndGggcyAtIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IHJpbmRleF9mcm9tX29wdCBzIGkgYyA9XG4gIGlmIGkgPCAtMSB8fCBpID49IGxlbmd0aCBzIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIlN0cmluZy5yaW5kZXhfZnJvbV9vcHQgLyBCeXRlcy5yaW5kZXhfZnJvbV9vcHRcIlxuICBlbHNlXG4gICAgcmluZGV4X3JlY19vcHQgcyBpIGNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IGNvbnRhaW5zX2Zyb20gcyBpIGMgPVxuICBsZXQgbCA9IGxlbmd0aCBzIGluXG4gIGlmIGkgPCAwIHx8IGkgPiBsIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIlN0cmluZy5jb250YWluc19mcm9tIC8gQnl0ZXMuY29udGFpbnNfZnJvbVwiXG4gIGVsc2VcbiAgICB0cnkgaWdub3JlIChpbmRleF9yZWMgcyBsIGkgYyk7IHRydWUgd2l0aCBOb3RfZm91bmQgLT4gZmFsc2VcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IGNvbnRhaW5zIHMgYyA9IGNvbnRhaW5zX2Zyb20gcyAwIGNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IHJjb250YWluc19mcm9tIHMgaSBjID1cbiAgaWYgaSA8IDAgfHwgaSA+PSBsZW5ndGggcyB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJTdHJpbmcucmNvbnRhaW5zX2Zyb20gLyBCeXRlcy5yY29udGFpbnNfZnJvbVwiXG4gIGVsc2VcbiAgICB0cnkgaWdub3JlIChyaW5kZXhfcmVjIHMgaSBjKTsgdHJ1ZSB3aXRoIE5vdF9mb3VuZCAtPiBmYWxzZVxuXG5sZXQgdXBwZXJjYXNlX2FzY2lpIHMgPVxuICBCLnVwcGVyY2FzZV9hc2NpaSAoYm9zIHMpIHw+IGJ0c1xubGV0IGxvd2VyY2FzZV9hc2NpaSBzID1cbiAgQi5sb3dlcmNhc2VfYXNjaWkgKGJvcyBzKSB8PiBidHNcbmxldCBjYXBpdGFsaXplX2FzY2lpIHMgPVxuICBCLmNhcGl0YWxpemVfYXNjaWkgKGJvcyBzKSB8PiBidHNcbmxldCB1bmNhcGl0YWxpemVfYXNjaWkgcyA9XG4gIEIudW5jYXBpdGFsaXplX2FzY2lpIChib3MgcykgfD4gYnRzXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCBzdGFydHNfd2l0aCB+cHJlZml4IHMgPVxuICBsZXQgbGVuX3MgPSBsZW5ndGggc1xuICBhbmQgbGVuX3ByZSA9IGxlbmd0aCBwcmVmaXggaW5cbiAgbGV0IHJlYyBhdXggaSA9XG4gICAgaWYgaSA9IGxlbl9wcmUgdGhlbiB0cnVlXG4gICAgZWxzZSBpZiB1bnNhZmVfZ2V0IHMgaSA8PiB1bnNhZmVfZ2V0IHByZWZpeCBpIHRoZW4gZmFsc2VcbiAgICBlbHNlIGF1eCAoaSArIDEpXG4gIGluIGxlbl9zID49IGxlbl9wcmUgJiYgYXV4IDBcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IGVuZHNfd2l0aCB+c3VmZml4IHMgPVxuICBsZXQgbGVuX3MgPSBsZW5ndGggc1xuICBhbmQgbGVuX3N1ZiA9IGxlbmd0aCBzdWZmaXggaW5cbiAgbGV0IGRpZmYgPSBsZW5fcyAtIGxlbl9zdWYgaW5cbiAgbGV0IHJlYyBhdXggaSA9XG4gICAgaWYgaSA9IGxlbl9zdWYgdGhlbiB0cnVlXG4gICAgZWxzZSBpZiB1bnNhZmVfZ2V0IHMgKGRpZmYgKyBpKSA8PiB1bnNhZmVfZ2V0IHN1ZmZpeCBpIHRoZW4gZmFsc2VcbiAgICBlbHNlIGF1eCAoaSArIDEpXG4gIGluIGRpZmYgPj0gMCAmJiBhdXggMFxuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgc3BsaXRfb25fY2hhciBzZXAgcyA9XG4gIGxldCByID0gcmVmIFtdIGluXG4gIGxldCBqID0gcmVmIChsZW5ndGggcykgaW5cbiAgZm9yIGkgPSBsZW5ndGggcyAtIDEgZG93bnRvIDAgZG9cbiAgICBpZiB1bnNhZmVfZ2V0IHMgaSA9IHNlcCB0aGVuIGJlZ2luXG4gICAgICByIDo9IHN1YiBzIChpICsgMSkgKCFqIC0gaSAtIDEpIDo6ICFyO1xuICAgICAgaiA6PSBpXG4gICAgZW5kXG4gIGRvbmU7XG4gIHN1YiBzIDAgIWogOjogIXJcblxuKCogRGVwcmVjYXRlZCBmdW5jdGlvbnMgaW1wbGVtZW50ZWQgdmlhIG90aGVyIGRlcHJlY2F0ZWQgZnVuY3Rpb25zICopXG5bQEBAb2NhbWwud2FybmluZyBcIi0zXCJdXG5sZXQgdXBwZXJjYXNlIHMgPVxuICBCLnVwcGVyY2FzZSAoYm9zIHMpIHw+IGJ0c1xubGV0IGxvd2VyY2FzZSBzID1cbiAgQi5sb3dlcmNhc2UgKGJvcyBzKSB8PiBidHNcbmxldCBjYXBpdGFsaXplIHMgPVxuICBCLmNhcGl0YWxpemUgKGJvcyBzKSB8PiBidHNcbmxldCB1bmNhcGl0YWxpemUgcyA9XG4gIEIudW5jYXBpdGFsaXplIChib3MgcykgfD4gYnRzXG5cbnR5cGUgdCA9IHN0cmluZ1xuXG5sZXQgY29tcGFyZSAoeDogdCkgKHk6IHQpID0gU3RkbGliLmNvbXBhcmUgeCB5XG5leHRlcm5hbCBlcXVhbCA6IHN0cmluZyAtPiBzdHJpbmcgLT4gYm9vbCA9IFwiY2FtbF9zdHJpbmdfZXF1YWxcIiBbQEBub2FsbG9jXVxuXG4oKiogezEgSXRlcmF0b3JzfSAqKVxuXG5sZXQgdG9fc2VxIHMgPSBib3MgcyB8PiBCLnRvX3NlcVxuXG5sZXQgdG9fc2VxaSBzID0gYm9zIHMgfD4gQi50b19zZXFpXG5cbmxldCBvZl9zZXEgZyA9IEIub2Zfc2VxIGcgfD4gYnRzXG5cbigqIFVURiBkZWNvZGVycyBhbmQgdmFsaWRhdG9ycyAqKVxuXG5sZXQgZ2V0X3V0Zl84X3VjaGFyIHMgaSA9IEIuZ2V0X3V0Zl84X3VjaGFyIChib3MgcykgaVxubGV0IGlzX3ZhbGlkX3V0Zl84IHMgPSBCLmlzX3ZhbGlkX3V0Zl84IChib3MgcylcblxubGV0IGdldF91dGZfMTZiZV91Y2hhciBzIGkgPSBCLmdldF91dGZfMTZiZV91Y2hhciAoYm9zIHMpIGlcbmxldCBpc192YWxpZF91dGZfMTZiZSBzID0gQi5pc192YWxpZF91dGZfMTZiZSAoYm9zIHMpXG5cbmxldCBnZXRfdXRmXzE2bGVfdWNoYXIgcyBpID0gQi5nZXRfdXRmXzE2bGVfdWNoYXIgKGJvcyBzKSBpXG5sZXQgaXNfdmFsaWRfdXRmXzE2bGUgcyA9IEIuaXNfdmFsaWRfdXRmXzE2bGUgKGJvcyBzKVxuXG4oKiogezYgQmluYXJ5IGVuY29kaW5nL2RlY29kaW5nIG9mIGludGVnZXJzfSAqKVxuXG5leHRlcm5hbCBnZXRfdWludDggOiBzdHJpbmcgLT4gaW50IC0+IGludCA9IFwiJXN0cmluZ19zYWZlX2dldFwiXG5leHRlcm5hbCBnZXRfdWludDE2X25lIDogc3RyaW5nIC0+IGludCAtPiBpbnQgPSBcIiVjYW1sX3N0cmluZ19nZXQxNlwiXG5leHRlcm5hbCBnZXRfaW50MzJfbmUgOiBzdHJpbmcgLT4gaW50IC0+IGludDMyID0gXCIlY2FtbF9zdHJpbmdfZ2V0MzJcIlxuZXh0ZXJuYWwgZ2V0X2ludDY0X25lIDogc3RyaW5nIC0+IGludCAtPiBpbnQ2NCA9IFwiJWNhbWxfc3RyaW5nX2dldDY0XCJcblxubGV0IGdldF9pbnQ4IHMgaSA9IEIuZ2V0X2ludDggKGJvcyBzKSBpXG5sZXQgZ2V0X3VpbnQxNl9sZSBzIGkgPSBCLmdldF91aW50MTZfbGUgKGJvcyBzKSBpXG5sZXQgZ2V0X3VpbnQxNl9iZSBzIGkgPSBCLmdldF91aW50MTZfYmUgKGJvcyBzKSBpXG5sZXQgZ2V0X2ludDE2X25lIHMgaSA9IEIuZ2V0X2ludDE2X25lIChib3MgcykgaVxubGV0IGdldF9pbnQxNl9sZSBzIGkgPSBCLmdldF9pbnQxNl9sZSAoYm9zIHMpIGlcbmxldCBnZXRfaW50MTZfYmUgcyBpID0gQi5nZXRfaW50MTZfYmUgKGJvcyBzKSBpXG5sZXQgZ2V0X2ludDMyX2xlIHMgaSA9IEIuZ2V0X2ludDMyX2xlIChib3MgcykgaVxubGV0IGdldF9pbnQzMl9iZSBzIGkgPSBCLmdldF9pbnQzMl9iZSAoYm9zIHMpIGlcbmxldCBnZXRfaW50NjRfbGUgcyBpID0gQi5nZXRfaW50NjRfbGUgKGJvcyBzKSBpXG5sZXQgZ2V0X2ludDY0X2JlIHMgaSA9IEIuZ2V0X2ludDY0X2JlIChib3MgcykgaVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgVGhlIE9DYW1sIHByb2dyYW1tZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxOCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlIHQgPSB1bml0ID0gKClcblxubGV0IGVxdWFsICgpICgpID0gdHJ1ZVxubGV0IGNvbXBhcmUgKCkgKCkgPSAwXG5sZXQgdG9fc3RyaW5nICgpID0gXCIoKVwiXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk3IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgZXh0ZXJuX2ZsYWdzID1cbiAgICBOb19zaGFyaW5nXG4gIHwgQ2xvc3VyZXNcbiAgfCBDb21wYXRfMzJcbigqIG5vdGU6IHRoaXMgdHlwZSBkZWZpbml0aW9uIGlzIHVzZWQgaW4gJ3J1bnRpbWUvZGVidWdnZXIuYycgKilcblxuZXh0ZXJuYWwgdG9fY2hhbm5lbDogb3V0X2NoYW5uZWwgLT4gJ2EgLT4gZXh0ZXJuX2ZsYWdzIGxpc3QgLT4gdW5pdFxuICAgID0gXCJjYW1sX291dHB1dF92YWx1ZVwiXG5leHRlcm5hbCB0b19ieXRlczogJ2EgLT4gZXh0ZXJuX2ZsYWdzIGxpc3QgLT4gYnl0ZXNcbiAgICA9IFwiY2FtbF9vdXRwdXRfdmFsdWVfdG9fYnl0ZXNcIlxuZXh0ZXJuYWwgdG9fc3RyaW5nOiAnYSAtPiBleHRlcm5fZmxhZ3MgbGlzdCAtPiBzdHJpbmdcbiAgICA9IFwiY2FtbF9vdXRwdXRfdmFsdWVfdG9fc3RyaW5nXCJcbmV4dGVybmFsIHRvX2J1ZmZlcl91bnNhZmU6XG4gICAgICBieXRlcyAtPiBpbnQgLT4gaW50IC0+ICdhIC0+IGV4dGVybl9mbGFncyBsaXN0IC0+IGludFxuICAgID0gXCJjYW1sX291dHB1dF92YWx1ZV90b19idWZmZXJcIlxuXG5sZXQgdG9fYnVmZmVyIGJ1ZmYgb2ZzIGxlbiB2IGZsYWdzID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IEJ5dGVzLmxlbmd0aCBidWZmIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJNYXJzaGFsLnRvX2J1ZmZlcjogc3Vic3RyaW5nIG91dCBvZiBib3VuZHNcIlxuICBlbHNlIHRvX2J1ZmZlcl91bnNhZmUgYnVmZiBvZnMgbGVuIHYgZmxhZ3NcblxuKCogVGhlIGZ1bmN0aW9ucyBiZWxvdyB1c2UgYnl0ZSBzZXF1ZW5jZXMgYXMgaW5wdXQsIG5ldmVyIHVzaW5nIGFueVxuICAgbXV0YXRpb24uIEl0IG1ha2VzIHNlbnNlIHRvIHVzZSBub24tbXV0YXRlZCBbYnl0ZXNdIHJhdGhlciB0aGFuXG4gICBbc3RyaW5nXSwgYmVjYXVzZSB3ZSByZWFsbHkgd29yayB3aXRoIHNlcXVlbmNlcyBvZiBieXRlcywgbm90XG4gICBhIHRleHQgcmVwcmVzZW50YXRpb24uXG4qKVxuXG5leHRlcm5hbCBmcm9tX2NoYW5uZWw6IGluX2NoYW5uZWwgLT4gJ2EgPSBcImNhbWxfaW5wdXRfdmFsdWVcIlxuZXh0ZXJuYWwgZnJvbV9ieXRlc191bnNhZmU6IGJ5dGVzIC0+IGludCAtPiAnYSA9IFwiY2FtbF9pbnB1dF92YWx1ZV9mcm9tX2J5dGVzXCJcbmV4dGVybmFsIGRhdGFfc2l6ZV91bnNhZmU6IGJ5dGVzIC0+IGludCAtPiBpbnQgPSBcImNhbWxfbWFyc2hhbF9kYXRhX3NpemVcIlxuXG5sZXQgaGVhZGVyX3NpemUgPSAyMFxubGV0IGRhdGFfc2l6ZSBidWZmIG9mcyA9XG4gIGlmIG9mcyA8IDAgfHwgb2ZzID4gQnl0ZXMubGVuZ3RoIGJ1ZmYgLSBoZWFkZXJfc2l6ZVxuICB0aGVuIGludmFsaWRfYXJnIFwiTWFyc2hhbC5kYXRhX3NpemVcIlxuICBlbHNlIGRhdGFfc2l6ZV91bnNhZmUgYnVmZiBvZnNcbmxldCB0b3RhbF9zaXplIGJ1ZmYgb2ZzID0gaGVhZGVyX3NpemUgKyBkYXRhX3NpemUgYnVmZiBvZnNcblxubGV0IGZyb21fYnl0ZXMgYnVmZiBvZnMgPVxuICBpZiBvZnMgPCAwIHx8IG9mcyA+IEJ5dGVzLmxlbmd0aCBidWZmIC0gaGVhZGVyX3NpemVcbiAgdGhlbiBpbnZhbGlkX2FyZyBcIk1hcnNoYWwuZnJvbV9ieXRlc1wiXG4gIGVsc2UgYmVnaW5cbiAgICBsZXQgbGVuID0gZGF0YV9zaXplX3Vuc2FmZSBidWZmIG9mcyBpblxuICAgIGlmIG9mcyA+IEJ5dGVzLmxlbmd0aCBidWZmIC0gKGhlYWRlcl9zaXplICsgbGVuKVxuICAgIHRoZW4gaW52YWxpZF9hcmcgXCJNYXJzaGFsLmZyb21fYnl0ZXNcIlxuICAgIGVsc2UgZnJvbV9ieXRlc191bnNhZmUgYnVmZiBvZnNcbiAgZW5kXG5cbmxldCBmcm9tX3N0cmluZyBidWZmIG9mcyA9XG4gICgqIEJ5dGVzLnVuc2FmZV9vZl9zdHJpbmcgaXMgc2FmZSBoZXJlLCBhcyB0aGUgcHJvZHVjZWQgYnl0ZVxuICAgICBzZXF1ZW5jZSBpcyBuZXZlciBtdXRhdGVkICopXG4gIGZyb21fYnl0ZXMgKEJ5dGVzLnVuc2FmZV9vZl9zdHJpbmcgYnVmZikgb2ZzXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIEFuIGFsaWFzIGZvciB0aGUgdHlwZSBvZiBhcnJheXMuICopXG50eXBlICdhIHQgPSAnYSBhcnJheVxuXG4oKiBBcnJheSBvcGVyYXRpb25zICopXG5cbmV4dGVybmFsIGxlbmd0aCA6ICdhIGFycmF5IC0+IGludCA9IFwiJWFycmF5X2xlbmd0aFwiXG5leHRlcm5hbCBnZXQ6ICdhIGFycmF5IC0+IGludCAtPiAnYSA9IFwiJWFycmF5X3NhZmVfZ2V0XCJcbmV4dGVybmFsIHNldDogJ2EgYXJyYXkgLT4gaW50IC0+ICdhIC0+IHVuaXQgPSBcIiVhcnJheV9zYWZlX3NldFwiXG5leHRlcm5hbCB1bnNhZmVfZ2V0OiAnYSBhcnJheSAtPiBpbnQgLT4gJ2EgPSBcIiVhcnJheV91bnNhZmVfZ2V0XCJcbmV4dGVybmFsIHVuc2FmZV9zZXQ6ICdhIGFycmF5IC0+IGludCAtPiAnYSAtPiB1bml0ID0gXCIlYXJyYXlfdW5zYWZlX3NldFwiXG5leHRlcm5hbCBtYWtlOiBpbnQgLT4gJ2EgLT4gJ2EgYXJyYXkgPSBcImNhbWxfbWFrZV92ZWN0XCJcbmV4dGVybmFsIGNyZWF0ZTogaW50IC0+ICdhIC0+ICdhIGFycmF5ID0gXCJjYW1sX21ha2VfdmVjdFwiXG5leHRlcm5hbCB1bnNhZmVfc3ViIDogJ2EgYXJyYXkgLT4gaW50IC0+IGludCAtPiAnYSBhcnJheSA9IFwiY2FtbF9hcnJheV9zdWJcIlxuZXh0ZXJuYWwgYXBwZW5kX3ByaW0gOiAnYSBhcnJheSAtPiAnYSBhcnJheSAtPiAnYSBhcnJheSA9IFwiY2FtbF9hcnJheV9hcHBlbmRcIlxuZXh0ZXJuYWwgY29uY2F0IDogJ2EgYXJyYXkgbGlzdCAtPiAnYSBhcnJheSA9IFwiY2FtbF9hcnJheV9jb25jYXRcIlxuZXh0ZXJuYWwgdW5zYWZlX2JsaXQgOlxuICAnYSBhcnJheSAtPiBpbnQgLT4gJ2EgYXJyYXkgLT4gaW50IC0+IGludCAtPiB1bml0ID0gXCJjYW1sX2FycmF5X2JsaXRcIlxuZXh0ZXJuYWwgdW5zYWZlX2ZpbGwgOlxuICAnYSBhcnJheSAtPiBpbnQgLT4gaW50IC0+ICdhIC0+IHVuaXQgPSBcImNhbWxfYXJyYXlfZmlsbFwiXG5leHRlcm5hbCBjcmVhdGVfZmxvYXQ6IGludCAtPiBmbG9hdCBhcnJheSA9IFwiY2FtbF9tYWtlX2Zsb2F0X3ZlY3RcIlxubGV0IG1ha2VfZmxvYXQgPSBjcmVhdGVfZmxvYXRcblxubW9kdWxlIEZsb2F0YXJyYXkgPSBzdHJ1Y3RcbiAgZXh0ZXJuYWwgY3JlYXRlIDogaW50IC0+IGZsb2F0YXJyYXkgPSBcImNhbWxfZmxvYXRhcnJheV9jcmVhdGVcIlxuICBleHRlcm5hbCBsZW5ndGggOiBmbG9hdGFycmF5IC0+IGludCA9IFwiJWZsb2F0YXJyYXlfbGVuZ3RoXCJcbiAgZXh0ZXJuYWwgZ2V0IDogZmxvYXRhcnJheSAtPiBpbnQgLT4gZmxvYXQgPSBcIiVmbG9hdGFycmF5X3NhZmVfZ2V0XCJcbiAgZXh0ZXJuYWwgc2V0IDogZmxvYXRhcnJheSAtPiBpbnQgLT4gZmxvYXQgLT4gdW5pdCA9IFwiJWZsb2F0YXJyYXlfc2FmZV9zZXRcIlxuICBleHRlcm5hbCB1bnNhZmVfZ2V0IDogZmxvYXRhcnJheSAtPiBpbnQgLT4gZmxvYXQgPSBcIiVmbG9hdGFycmF5X3Vuc2FmZV9nZXRcIlxuICBleHRlcm5hbCB1bnNhZmVfc2V0IDogZmxvYXRhcnJheSAtPiBpbnQgLT4gZmxvYXQgLT4gdW5pdFxuICAgICAgPSBcIiVmbG9hdGFycmF5X3Vuc2FmZV9zZXRcIlxuZW5kXG5cbmxldCBpbml0IGwgZiA9XG4gIGlmIGwgPSAwIHRoZW4gW3x8XSBlbHNlXG4gIGlmIGwgPCAwIHRoZW4gaW52YWxpZF9hcmcgXCJBcnJheS5pbml0XCJcbiAgKCogU2VlICM2NTc1LiBXZSBjb3VsZCBhbHNvIGNoZWNrIGZvciBtYXhpbXVtIGFycmF5IHNpemUsIGJ1dCB0aGlzIGRlcGVuZHNcbiAgICAgb24gd2hldGhlciB3ZSBjcmVhdGUgYSBmbG9hdCBhcnJheSBvciBhIHJlZ3VsYXIgb25lLi4uICopXG4gIGVsc2VcbiAgIGxldCByZXMgPSBjcmVhdGUgbCAoZiAwKSBpblxuICAgZm9yIGkgPSAxIHRvIHByZWQgbCBkb1xuICAgICB1bnNhZmVfc2V0IHJlcyBpIChmIGkpXG4gICBkb25lO1xuICAgcmVzXG5cbmxldCBtYWtlX21hdHJpeCBzeCBzeSBpbml0ID1cbiAgbGV0IHJlcyA9IGNyZWF0ZSBzeCBbfHxdIGluXG4gIGZvciB4ID0gMCB0byBwcmVkIHN4IGRvXG4gICAgdW5zYWZlX3NldCByZXMgeCAoY3JlYXRlIHN5IGluaXQpXG4gIGRvbmU7XG4gIHJlc1xuXG5sZXQgY3JlYXRlX21hdHJpeCA9IG1ha2VfbWF0cml4XG5cbmxldCBjb3B5IGEgPVxuICBsZXQgbCA9IGxlbmd0aCBhIGluIGlmIGwgPSAwIHRoZW4gW3x8XSBlbHNlIHVuc2FmZV9zdWIgYSAwIGxcblxubGV0IGFwcGVuZCBhMSBhMiA9XG4gIGxldCBsMSA9IGxlbmd0aCBhMSBpblxuICBpZiBsMSA9IDAgdGhlbiBjb3B5IGEyXG4gIGVsc2UgaWYgbGVuZ3RoIGEyID0gMCB0aGVuIHVuc2FmZV9zdWIgYTEgMCBsMVxuICBlbHNlIGFwcGVuZF9wcmltIGExIGEyXG5cbmxldCBzdWIgYSBvZnMgbGVuID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IGxlbmd0aCBhIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJBcnJheS5zdWJcIlxuICBlbHNlIHVuc2FmZV9zdWIgYSBvZnMgbGVuXG5cbmxldCBmaWxsIGEgb2ZzIGxlbiB2ID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IGxlbmd0aCBhIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJBcnJheS5maWxsXCJcbiAgZWxzZSB1bnNhZmVfZmlsbCBhIG9mcyBsZW4gdlxuXG5sZXQgYmxpdCBhMSBvZnMxIGEyIG9mczIgbGVuID1cbiAgaWYgbGVuIDwgMCB8fCBvZnMxIDwgMCB8fCBvZnMxID4gbGVuZ3RoIGExIC0gbGVuXG4gICAgICAgICAgICAgfHwgb2ZzMiA8IDAgfHwgb2ZzMiA+IGxlbmd0aCBhMiAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiQXJyYXkuYmxpdFwiXG4gIGVsc2UgdW5zYWZlX2JsaXQgYTEgb2ZzMSBhMiBvZnMyIGxlblxuXG5sZXQgaXRlciBmIGEgPVxuICBmb3IgaSA9IDAgdG8gbGVuZ3RoIGEgLSAxIGRvIGYodW5zYWZlX2dldCBhIGkpIGRvbmVcblxubGV0IGl0ZXIyIGYgYSBiID1cbiAgaWYgbGVuZ3RoIGEgPD4gbGVuZ3RoIGIgdGhlblxuICAgIGludmFsaWRfYXJnIFwiQXJyYXkuaXRlcjI6IGFycmF5cyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoXCJcbiAgZWxzZVxuICAgIGZvciBpID0gMCB0byBsZW5ndGggYSAtIDEgZG8gZiAodW5zYWZlX2dldCBhIGkpICh1bnNhZmVfZ2V0IGIgaSkgZG9uZVxuXG5sZXQgbWFwIGYgYSA9XG4gIGxldCBsID0gbGVuZ3RoIGEgaW5cbiAgaWYgbCA9IDAgdGhlbiBbfHxdIGVsc2UgYmVnaW5cbiAgICBsZXQgciA9IGNyZWF0ZSBsIChmKHVuc2FmZV9nZXQgYSAwKSkgaW5cbiAgICBmb3IgaSA9IDEgdG8gbCAtIDEgZG9cbiAgICAgIHVuc2FmZV9zZXQgciBpIChmKHVuc2FmZV9nZXQgYSBpKSlcbiAgICBkb25lO1xuICAgIHJcbiAgZW5kXG5cbmxldCBtYXAyIGYgYSBiID1cbiAgbGV0IGxhID0gbGVuZ3RoIGEgaW5cbiAgbGV0IGxiID0gbGVuZ3RoIGIgaW5cbiAgaWYgbGEgPD4gbGIgdGhlblxuICAgIGludmFsaWRfYXJnIFwiQXJyYXkubWFwMjogYXJyYXlzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGhcIlxuICBlbHNlIGJlZ2luXG4gICAgaWYgbGEgPSAwIHRoZW4gW3x8XSBlbHNlIGJlZ2luXG4gICAgICBsZXQgciA9IGNyZWF0ZSBsYSAoZiAodW5zYWZlX2dldCBhIDApICh1bnNhZmVfZ2V0IGIgMCkpIGluXG4gICAgICBmb3IgaSA9IDEgdG8gbGEgLSAxIGRvXG4gICAgICAgIHVuc2FmZV9zZXQgciBpIChmICh1bnNhZmVfZ2V0IGEgaSkgKHVuc2FmZV9nZXQgYiBpKSlcbiAgICAgIGRvbmU7XG4gICAgICByXG4gICAgZW5kXG4gIGVuZFxuXG5sZXQgaXRlcmkgZiBhID1cbiAgZm9yIGkgPSAwIHRvIGxlbmd0aCBhIC0gMSBkbyBmIGkgKHVuc2FmZV9nZXQgYSBpKSBkb25lXG5cbmxldCBtYXBpIGYgYSA9XG4gIGxldCBsID0gbGVuZ3RoIGEgaW5cbiAgaWYgbCA9IDAgdGhlbiBbfHxdIGVsc2UgYmVnaW5cbiAgICBsZXQgciA9IGNyZWF0ZSBsIChmIDAgKHVuc2FmZV9nZXQgYSAwKSkgaW5cbiAgICBmb3IgaSA9IDEgdG8gbCAtIDEgZG9cbiAgICAgIHVuc2FmZV9zZXQgciBpIChmIGkgKHVuc2FmZV9nZXQgYSBpKSlcbiAgICBkb25lO1xuICAgIHJcbiAgZW5kXG5cbmxldCB0b19saXN0IGEgPVxuICBsZXQgcmVjIHRvbGlzdCBpIHJlcyA9XG4gICAgaWYgaSA8IDAgdGhlbiByZXMgZWxzZSB0b2xpc3QgKGkgLSAxKSAodW5zYWZlX2dldCBhIGkgOjogcmVzKSBpblxuICB0b2xpc3QgKGxlbmd0aCBhIC0gMSkgW11cblxuKCogQ2Fubm90IHVzZSBMaXN0Lmxlbmd0aCBoZXJlIGJlY2F1c2UgdGhlIExpc3QgbW9kdWxlIGRlcGVuZHMgb24gQXJyYXkuICopXG5sZXQgcmVjIGxpc3RfbGVuZ3RoIGFjY3UgPSBmdW5jdGlvblxuICB8IFtdIC0+IGFjY3VcbiAgfCBfOjp0IC0+IGxpc3RfbGVuZ3RoIChzdWNjIGFjY3UpIHRcblxubGV0IG9mX2xpc3QgPSBmdW5jdGlvblxuICAgIFtdIC0+IFt8fF1cbiAgfCBoZDo6dGwgYXMgbCAtPlxuICAgICAgbGV0IGEgPSBjcmVhdGUgKGxpc3RfbGVuZ3RoIDAgbCkgaGQgaW5cbiAgICAgIGxldCByZWMgZmlsbCBpID0gZnVuY3Rpb25cbiAgICAgICAgICBbXSAtPiBhXG4gICAgICAgIHwgaGQ6OnRsIC0+IHVuc2FmZV9zZXQgYSBpIGhkOyBmaWxsIChpKzEpIHRsIGluXG4gICAgICBmaWxsIDEgdGxcblxubGV0IGZvbGRfbGVmdCBmIHggYSA9XG4gIGxldCByID0gcmVmIHggaW5cbiAgZm9yIGkgPSAwIHRvIGxlbmd0aCBhIC0gMSBkb1xuICAgIHIgOj0gZiAhciAodW5zYWZlX2dldCBhIGkpXG4gIGRvbmU7XG4gICFyXG5cbmxldCBmb2xkX2xlZnRfbWFwIGYgYWNjIGlucHV0X2FycmF5ID1cbiAgbGV0IGxlbiA9IGxlbmd0aCBpbnB1dF9hcnJheSBpblxuICBpZiBsZW4gPSAwIHRoZW4gKGFjYywgW3x8XSkgZWxzZSBiZWdpblxuICAgIGxldCBhY2MsIGVsdCA9IGYgYWNjICh1bnNhZmVfZ2V0IGlucHV0X2FycmF5IDApIGluXG4gICAgbGV0IG91dHB1dF9hcnJheSA9IGNyZWF0ZSBsZW4gZWx0IGluXG4gICAgbGV0IGFjYyA9IHJlZiBhY2MgaW5cbiAgICBmb3IgaSA9IDEgdG8gbGVuIC0gMSBkb1xuICAgICAgbGV0IGFjYycsIGVsdCA9IGYgIWFjYyAodW5zYWZlX2dldCBpbnB1dF9hcnJheSBpKSBpblxuICAgICAgYWNjIDo9IGFjYyc7XG4gICAgICB1bnNhZmVfc2V0IG91dHB1dF9hcnJheSBpIGVsdDtcbiAgICBkb25lO1xuICAgICFhY2MsIG91dHB1dF9hcnJheVxuICBlbmRcblxubGV0IGZvbGRfcmlnaHQgZiBhIHggPVxuICBsZXQgciA9IHJlZiB4IGluXG4gIGZvciBpID0gbGVuZ3RoIGEgLSAxIGRvd250byAwIGRvXG4gICAgciA6PSBmICh1bnNhZmVfZ2V0IGEgaSkgIXJcbiAgZG9uZTtcbiAgIXJcblxubGV0IGV4aXN0cyBwIGEgPVxuICBsZXQgbiA9IGxlbmd0aCBhIGluXG4gIGxldCByZWMgbG9vcCBpID1cbiAgICBpZiBpID0gbiB0aGVuIGZhbHNlXG4gICAgZWxzZSBpZiBwICh1bnNhZmVfZ2V0IGEgaSkgdGhlbiB0cnVlXG4gICAgZWxzZSBsb29wIChzdWNjIGkpIGluXG4gIGxvb3AgMFxuXG5sZXQgZm9yX2FsbCBwIGEgPVxuICBsZXQgbiA9IGxlbmd0aCBhIGluXG4gIGxldCByZWMgbG9vcCBpID1cbiAgICBpZiBpID0gbiB0aGVuIHRydWVcbiAgICBlbHNlIGlmIHAgKHVuc2FmZV9nZXQgYSBpKSB0aGVuIGxvb3AgKHN1Y2MgaSlcbiAgICBlbHNlIGZhbHNlIGluXG4gIGxvb3AgMFxuXG5sZXQgZm9yX2FsbDIgcCBsMSBsMiA9XG4gIGxldCBuMSA9IGxlbmd0aCBsMVxuICBhbmQgbjIgPSBsZW5ndGggbDIgaW5cbiAgaWYgbjEgPD4gbjIgdGhlbiBpbnZhbGlkX2FyZyBcIkFycmF5LmZvcl9hbGwyXCJcbiAgZWxzZSBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4xIHRoZW4gdHJ1ZVxuICAgIGVsc2UgaWYgcCAodW5zYWZlX2dldCBsMSBpKSAodW5zYWZlX2dldCBsMiBpKSB0aGVuIGxvb3AgKHN1Y2MgaSlcbiAgICBlbHNlIGZhbHNlIGluXG4gIGxvb3AgMFxuXG5sZXQgZXhpc3RzMiBwIGwxIGwyID1cbiAgbGV0IG4xID0gbGVuZ3RoIGwxXG4gIGFuZCBuMiA9IGxlbmd0aCBsMiBpblxuICBpZiBuMSA8PiBuMiB0aGVuIGludmFsaWRfYXJnIFwiQXJyYXkuZXhpc3RzMlwiXG4gIGVsc2UgbGV0IHJlYyBsb29wIGkgPVxuICAgIGlmIGkgPSBuMSB0aGVuIGZhbHNlXG4gICAgZWxzZSBpZiBwICh1bnNhZmVfZ2V0IGwxIGkpICh1bnNhZmVfZ2V0IGwyIGkpIHRoZW4gdHJ1ZVxuICAgIGVsc2UgbG9vcCAoc3VjYyBpKSBpblxuICBsb29wIDBcblxubGV0IG1lbSB4IGEgPVxuICBsZXQgbiA9IGxlbmd0aCBhIGluXG4gIGxldCByZWMgbG9vcCBpID1cbiAgICBpZiBpID0gbiB0aGVuIGZhbHNlXG4gICAgZWxzZSBpZiBjb21wYXJlICh1bnNhZmVfZ2V0IGEgaSkgeCA9IDAgdGhlbiB0cnVlXG4gICAgZWxzZSBsb29wIChzdWNjIGkpIGluXG4gIGxvb3AgMFxuXG5sZXQgbWVtcSB4IGEgPVxuICBsZXQgbiA9IGxlbmd0aCBhIGluXG4gIGxldCByZWMgbG9vcCBpID1cbiAgICBpZiBpID0gbiB0aGVuIGZhbHNlXG4gICAgZWxzZSBpZiB4ID09ICh1bnNhZmVfZ2V0IGEgaSkgdGhlbiB0cnVlXG4gICAgZWxzZSBsb29wIChzdWNjIGkpIGluXG4gIGxvb3AgMFxuXG5sZXQgZmluZF9vcHQgcCBhID1cbiAgbGV0IG4gPSBsZW5ndGggYSBpblxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4gdGhlbiBOb25lXG4gICAgZWxzZVxuICAgICAgbGV0IHggPSB1bnNhZmVfZ2V0IGEgaSBpblxuICAgICAgaWYgcCB4IHRoZW4gU29tZSB4XG4gICAgICBlbHNlIGxvb3AgKHN1Y2MgaSlcbiAgaW5cbiAgbG9vcCAwXG5cbmxldCBmaW5kX21hcCBmIGEgPVxuICBsZXQgbiA9IGxlbmd0aCBhIGluXG4gIGxldCByZWMgbG9vcCBpID1cbiAgICBpZiBpID0gbiB0aGVuIE5vbmVcbiAgICBlbHNlXG4gICAgICBtYXRjaCBmICh1bnNhZmVfZ2V0IGEgaSkgd2l0aFxuICAgICAgfCBOb25lIC0+IGxvb3AgKHN1Y2MgaSlcbiAgICAgIHwgU29tZSBfIGFzIHIgLT4gclxuICBpblxuICBsb29wIDBcblxubGV0IHNwbGl0IHggPVxuICBpZiB4ID0gW3x8XSB0aGVuIFt8fF0sIFt8fF1cbiAgZWxzZSBiZWdpblxuICAgIGxldCBhMCwgYjAgPSB1bnNhZmVfZ2V0IHggMCBpblxuICAgIGxldCBuID0gbGVuZ3RoIHggaW5cbiAgICBsZXQgYSA9IGNyZWF0ZSBuIGEwIGluXG4gICAgbGV0IGIgPSBjcmVhdGUgbiBiMCBpblxuICAgIGZvciBpID0gMSB0byBuIC0gMSBkb1xuICAgICAgbGV0IGFpLCBiaSA9IHVuc2FmZV9nZXQgeCBpIGluXG4gICAgICB1bnNhZmVfc2V0IGEgaSBhaTtcbiAgICAgIHVuc2FmZV9zZXQgYiBpIGJpXG4gICAgZG9uZTtcbiAgICBhLCBiXG4gIGVuZFxuXG5sZXQgY29tYmluZSBhIGIgPVxuICBsZXQgbmEgPSBsZW5ndGggYSBpblxuICBsZXQgbmIgPSBsZW5ndGggYiBpblxuICBpZiBuYSA8PiBuYiB0aGVuIGludmFsaWRfYXJnIFwiQXJyYXkuY29tYmluZVwiO1xuICBpZiBuYSA9IDAgdGhlbiBbfHxdXG4gIGVsc2UgYmVnaW5cbiAgICBsZXQgeCA9IGNyZWF0ZSBuYSAodW5zYWZlX2dldCBhIDAsIHVuc2FmZV9nZXQgYiAwKSBpblxuICAgIGZvciBpID0gMSB0byBuYSAtIDEgZG9cbiAgICAgIHVuc2FmZV9zZXQgeCBpICh1bnNhZmVfZ2V0IGEgaSwgdW5zYWZlX2dldCBiIGkpXG4gICAgZG9uZTtcbiAgICB4XG4gIGVuZFxuXG5leGNlcHRpb24gQm90dG9tIG9mIGludFxubGV0IHNvcnQgY21wIGEgPVxuICBsZXQgbWF4c29uIGwgaSA9XG4gICAgbGV0IGkzMSA9IGkraStpKzEgaW5cbiAgICBsZXQgeCA9IHJlZiBpMzEgaW5cbiAgICBpZiBpMzErMiA8IGwgdGhlbiBiZWdpblxuICAgICAgaWYgY21wIChnZXQgYSBpMzEpIChnZXQgYSAoaTMxKzEpKSA8IDAgdGhlbiB4IDo9IGkzMSsxO1xuICAgICAgaWYgY21wIChnZXQgYSAheCkgKGdldCBhIChpMzErMikpIDwgMCB0aGVuIHggOj0gaTMxKzI7XG4gICAgICAheFxuICAgIGVuZCBlbHNlXG4gICAgICBpZiBpMzErMSA8IGwgJiYgY21wIChnZXQgYSBpMzEpIChnZXQgYSAoaTMxKzEpKSA8IDBcbiAgICAgIHRoZW4gaTMxKzFcbiAgICAgIGVsc2UgaWYgaTMxIDwgbCB0aGVuIGkzMSBlbHNlIHJhaXNlIChCb3R0b20gaSlcbiAgaW5cbiAgbGV0IHJlYyB0cmlja2xlZG93biBsIGkgZSA9XG4gICAgbGV0IGogPSBtYXhzb24gbCBpIGluXG4gICAgaWYgY21wIChnZXQgYSBqKSBlID4gMCB0aGVuIGJlZ2luXG4gICAgICBzZXQgYSBpIChnZXQgYSBqKTtcbiAgICAgIHRyaWNrbGVkb3duIGwgaiBlO1xuICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICBzZXQgYSBpIGU7XG4gICAgZW5kO1xuICBpblxuICBsZXQgdHJpY2tsZSBsIGkgZSA9IHRyeSB0cmlja2xlZG93biBsIGkgZSB3aXRoIEJvdHRvbSBpIC0+IHNldCBhIGkgZSBpblxuICBsZXQgcmVjIGJ1YmJsZWRvd24gbCBpID1cbiAgICBsZXQgaiA9IG1heHNvbiBsIGkgaW5cbiAgICBzZXQgYSBpIChnZXQgYSBqKTtcbiAgICBidWJibGVkb3duIGwgalxuICBpblxuICBsZXQgYnViYmxlIGwgaSA9IHRyeSBidWJibGVkb3duIGwgaSB3aXRoIEJvdHRvbSBpIC0+IGkgaW5cbiAgbGV0IHJlYyB0cmlja2xldXAgaSBlID1cbiAgICBsZXQgZmF0aGVyID0gKGkgLSAxKSAvIDMgaW5cbiAgICBhc3NlcnQgKGkgPD4gZmF0aGVyKTtcbiAgICBpZiBjbXAgKGdldCBhIGZhdGhlcikgZSA8IDAgdGhlbiBiZWdpblxuICAgICAgc2V0IGEgaSAoZ2V0IGEgZmF0aGVyKTtcbiAgICAgIGlmIGZhdGhlciA+IDAgdGhlbiB0cmlja2xldXAgZmF0aGVyIGUgZWxzZSBzZXQgYSAwIGU7XG4gICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgIHNldCBhIGkgZTtcbiAgICBlbmQ7XG4gIGluXG4gIGxldCBsID0gbGVuZ3RoIGEgaW5cbiAgZm9yIGkgPSAobCArIDEpIC8gMyAtIDEgZG93bnRvIDAgZG8gdHJpY2tsZSBsIGkgKGdldCBhIGkpOyBkb25lO1xuICBmb3IgaSA9IGwgLSAxIGRvd250byAyIGRvXG4gICAgbGV0IGUgPSAoZ2V0IGEgaSkgaW5cbiAgICBzZXQgYSBpIChnZXQgYSAwKTtcbiAgICB0cmlja2xldXAgKGJ1YmJsZSBpIDApIGU7XG4gIGRvbmU7XG4gIGlmIGwgPiAxIHRoZW4gKGxldCBlID0gKGdldCBhIDEpIGluIHNldCBhIDEgKGdldCBhIDApOyBzZXQgYSAwIGUpXG5cblxubGV0IGN1dG9mZiA9IDVcbmxldCBzdGFibGVfc29ydCBjbXAgYSA9XG4gIGxldCBtZXJnZSBzcmMxb2ZzIHNyYzFsZW4gc3JjMiBzcmMyb2ZzIHNyYzJsZW4gZHN0IGRzdG9mcyA9XG4gICAgbGV0IHNyYzFyID0gc3JjMW9mcyArIHNyYzFsZW4gYW5kIHNyYzJyID0gc3JjMm9mcyArIHNyYzJsZW4gaW5cbiAgICBsZXQgcmVjIGxvb3AgaTEgczEgaTIgczIgZCA9XG4gICAgICBpZiBjbXAgczEgczIgPD0gMCB0aGVuIGJlZ2luXG4gICAgICAgIHNldCBkc3QgZCBzMTtcbiAgICAgICAgbGV0IGkxID0gaTEgKyAxIGluXG4gICAgICAgIGlmIGkxIDwgc3JjMXIgdGhlblxuICAgICAgICAgIGxvb3AgaTEgKGdldCBhIGkxKSBpMiBzMiAoZCArIDEpXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBibGl0IHNyYzIgaTIgZHN0IChkICsgMSkgKHNyYzJyIC0gaTIpXG4gICAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgICBzZXQgZHN0IGQgczI7XG4gICAgICAgIGxldCBpMiA9IGkyICsgMSBpblxuICAgICAgICBpZiBpMiA8IHNyYzJyIHRoZW5cbiAgICAgICAgICBsb29wIGkxIHMxIGkyIChnZXQgc3JjMiBpMikgKGQgKyAxKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgYmxpdCBhIGkxIGRzdCAoZCArIDEpIChzcmMxciAtIGkxKVxuICAgICAgZW5kXG4gICAgaW4gbG9vcCBzcmMxb2ZzIChnZXQgYSBzcmMxb2ZzKSBzcmMyb2ZzIChnZXQgc3JjMiBzcmMyb2ZzKSBkc3RvZnM7XG4gIGluXG4gIGxldCBpc29ydHRvIHNyY29mcyBkc3QgZHN0b2ZzIGxlbiA9XG4gICAgZm9yIGkgPSAwIHRvIGxlbiAtIDEgZG9cbiAgICAgIGxldCBlID0gKGdldCBhIChzcmNvZnMgKyBpKSkgaW5cbiAgICAgIGxldCBqID0gcmVmIChkc3RvZnMgKyBpIC0gMSkgaW5cbiAgICAgIHdoaWxlICghaiA+PSBkc3RvZnMgJiYgY21wIChnZXQgZHN0ICFqKSBlID4gMCkgZG9cbiAgICAgICAgc2V0IGRzdCAoIWogKyAxKSAoZ2V0IGRzdCAhaik7XG4gICAgICAgIGRlY3IgajtcbiAgICAgIGRvbmU7XG4gICAgICBzZXQgZHN0ICghaiArIDEpIGU7XG4gICAgZG9uZTtcbiAgaW5cbiAgbGV0IHJlYyBzb3J0dG8gc3Jjb2ZzIGRzdCBkc3RvZnMgbGVuID1cbiAgICBpZiBsZW4gPD0gY3V0b2ZmIHRoZW4gaXNvcnR0byBzcmNvZnMgZHN0IGRzdG9mcyBsZW4gZWxzZSBiZWdpblxuICAgICAgbGV0IGwxID0gbGVuIC8gMiBpblxuICAgICAgbGV0IGwyID0gbGVuIC0gbDEgaW5cbiAgICAgIHNvcnR0byAoc3Jjb2ZzICsgbDEpIGRzdCAoZHN0b2ZzICsgbDEpIGwyO1xuICAgICAgc29ydHRvIHNyY29mcyBhIChzcmNvZnMgKyBsMikgbDE7XG4gICAgICBtZXJnZSAoc3Jjb2ZzICsgbDIpIGwxIGRzdCAoZHN0b2ZzICsgbDEpIGwyIGRzdCBkc3RvZnM7XG4gICAgZW5kO1xuICBpblxuICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gIGlmIGwgPD0gY3V0b2ZmIHRoZW4gaXNvcnR0byAwIGEgMCBsIGVsc2UgYmVnaW5cbiAgICBsZXQgbDEgPSBsIC8gMiBpblxuICAgIGxldCBsMiA9IGwgLSBsMSBpblxuICAgIGxldCB0ID0gbWFrZSBsMiAoZ2V0IGEgMCkgaW5cbiAgICBzb3J0dG8gbDEgdCAwIGwyO1xuICAgIHNvcnR0byAwIGEgbDIgbDE7XG4gICAgbWVyZ2UgbDIgbDEgdCAwIGwyIGEgMDtcbiAgZW5kXG5cblxubGV0IGZhc3Rfc29ydCA9IHN0YWJsZV9zb3J0XG5cbigqKiB7MSBJdGVyYXRvcnN9ICopXG5cbmxldCB0b19zZXEgYSA9XG4gIGxldCByZWMgYXV4IGkgKCkgPVxuICAgIGlmIGkgPCBsZW5ndGggYVxuICAgIHRoZW5cbiAgICAgIGxldCB4ID0gdW5zYWZlX2dldCBhIGkgaW5cbiAgICAgIFNlcS5Db25zICh4LCBhdXggKGkrMSkpXG4gICAgZWxzZSBTZXEuTmlsXG4gIGluXG4gIGF1eCAwXG5cbmxldCB0b19zZXFpIGEgPVxuICBsZXQgcmVjIGF1eCBpICgpID1cbiAgICBpZiBpIDwgbGVuZ3RoIGFcbiAgICB0aGVuXG4gICAgICBsZXQgeCA9IHVuc2FmZV9nZXQgYSBpIGluXG4gICAgICBTZXEuQ29ucyAoKGkseCksIGF1eCAoaSsxKSlcbiAgICBlbHNlIFNlcS5OaWxcbiAgaW5cbiAgYXV4IDBcblxubGV0IG9mX3Jldl9saXN0ID0gZnVuY3Rpb25cbiAgICBbXSAtPiBbfHxdXG4gIHwgaGQ6OnRsIGFzIGwgLT5cbiAgICAgIGxldCBsZW4gPSBsaXN0X2xlbmd0aCAwIGwgaW5cbiAgICAgIGxldCBhID0gY3JlYXRlIGxlbiBoZCBpblxuICAgICAgbGV0IHJlYyBmaWxsIGkgPSBmdW5jdGlvblxuICAgICAgICAgIFtdIC0+IGFcbiAgICAgICAgfCBoZDo6dGwgLT4gdW5zYWZlX3NldCBhIGkgaGQ7IGZpbGwgKGktMSkgdGxcbiAgICAgIGluXG4gICAgICBmaWxsIChsZW4tMikgdGxcblxubGV0IG9mX3NlcSBpID1cbiAgbGV0IGwgPSBTZXEuZm9sZF9sZWZ0IChmdW4gYWNjIHggLT4geDo6YWNjKSBbXSBpIGluXG4gIG9mX3Jldl9saXN0IGxcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgTmljb2xhcyBPamVkYSBCYXIsIExleGlGaSAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTggSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuZXh0ZXJuYWwgbmVnIDogZmxvYXQgLT4gZmxvYXQgPSBcIiVuZWdmbG9hdFwiXG5leHRlcm5hbCBhZGQgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJWFkZGZsb2F0XCJcbmV4dGVybmFsIHN1YiA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlc3ViZmxvYXRcIlxuZXh0ZXJuYWwgbXVsIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVtdWxmbG9hdFwiXG5leHRlcm5hbCBkaXYgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJWRpdmZsb2F0XCJcbmV4dGVybmFsIHJlbSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Ztb2RfZmxvYXRcIiBcImZtb2RcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZm1hIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZm1hX2Zsb2F0XCIgXCJjYW1sX2ZtYVwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhYnMgOiBmbG9hdCAtPiBmbG9hdCA9IFwiJWFic2Zsb2F0XCJcblxubGV0IHplcm8gPSAwLlxubGV0IG9uZSA9IDEuXG5sZXQgbWludXNfb25lID0gLTEuXG5sZXQgaW5maW5pdHkgPSBTdGRsaWIuaW5maW5pdHlcbmxldCBuZWdfaW5maW5pdHkgPSBTdGRsaWIubmVnX2luZmluaXR5XG5sZXQgbmFuID0gU3RkbGliLm5hblxubGV0IGlzX2Zpbml0ZSAoeDogZmxvYXQpID0geCAtLiB4ID0gMC5cbmxldCBpc19pbmZpbml0ZSAoeDogZmxvYXQpID0gMS4gLy4geCA9IDAuXG5sZXQgaXNfbmFuICh4OiBmbG9hdCkgPSB4IDw+IHhcblxubGV0IHBpID0gMHgxLjkyMWZiNTQ0NDJkMThwKzFcbmxldCBtYXhfZmxvYXQgPSBTdGRsaWIubWF4X2Zsb2F0XG5sZXQgbWluX2Zsb2F0ID0gU3RkbGliLm1pbl9mbG9hdFxubGV0IGVwc2lsb24gPSBTdGRsaWIuZXBzaWxvbl9mbG9hdFxuZXh0ZXJuYWwgb2ZfaW50IDogaW50IC0+IGZsb2F0ID0gXCIlZmxvYXRvZmludFwiXG5leHRlcm5hbCB0b19pbnQgOiBmbG9hdCAtPiBpbnQgPSBcIiVpbnRvZmZsb2F0XCJcbmV4dGVybmFsIG9mX3N0cmluZyA6IHN0cmluZyAtPiBmbG9hdCA9IFwiY2FtbF9mbG9hdF9vZl9zdHJpbmdcIlxubGV0IG9mX3N0cmluZ19vcHQgPSBTdGRsaWIuZmxvYXRfb2Zfc3RyaW5nX29wdFxubGV0IHRvX3N0cmluZyA9IFN0ZGxpYi5zdHJpbmdfb2ZfZmxvYXRcbnR5cGUgZnBjbGFzcyA9IFN0ZGxpYi5mcGNsYXNzID1cbiAgICBGUF9ub3JtYWxcbiAgfCBGUF9zdWJub3JtYWxcbiAgfCBGUF96ZXJvXG4gIHwgRlBfaW5maW5pdGVcbiAgfCBGUF9uYW5cbmV4dGVybmFsIGNsYXNzaWZ5X2Zsb2F0IDogKGZsb2F0IFtAdW5ib3hlZF0pIC0+IGZwY2xhc3MgPVxuICBcImNhbWxfY2xhc3NpZnlfZmxvYXRcIiBcImNhbWxfY2xhc3NpZnlfZmxvYXRfdW5ib3hlZFwiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBwb3cgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9wb3dlcl9mbG9hdFwiIFwicG93XCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHNxcnQgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9zcXJ0X2Zsb2F0XCIgXCJzcXJ0XCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGNicnQgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9jYnJ0X2Zsb2F0XCIgXCJjYW1sX2NicnRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZXhwIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZXhwX2Zsb2F0XCIgXCJleHBcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZXhwMiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2V4cDJfZmxvYXRcIiBcImNhbWxfZXhwMlwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9sb2dfZmxvYXRcIiBcImxvZ1wiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cxMCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2xvZzEwX2Zsb2F0XCIgXCJsb2cxMFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cyIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfbG9nMl9mbG9hdFwiIFwiY2FtbF9sb2cyXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGV4cG0xIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZXhwbTFfZmxvYXRcIiBcImNhbWxfZXhwbTFcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbG9nMXAgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9sb2cxcF9mbG9hdFwiIFwiY2FtbF9sb2cxcFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjb3MgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9jb3NfZmxvYXRcIiBcImNvc1wiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzaW4gOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9zaW5fZmxvYXRcIiBcInNpblwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB0YW4gOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF90YW5fZmxvYXRcIiBcInRhblwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhY29zIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYWNvc19mbG9hdFwiIFwiYWNvc1wiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhc2luIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXNpbl9mbG9hdFwiIFwiYXNpblwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhdGFuIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXRhbl9mbG9hdFwiIFwiYXRhblwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhdGFuMiA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2F0YW4yX2Zsb2F0XCIgXCJhdGFuMlwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBoeXBvdCA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0XG4gICAgICAgICAgICAgICA9IFwiY2FtbF9oeXBvdF9mbG9hdFwiIFwiY2FtbF9oeXBvdFwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBjb3NoIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfY29zaF9mbG9hdFwiIFwiY29zaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzaW5oIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfc2luaF9mbG9hdFwiIFwic2luaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB0YW5oIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfdGFuaF9mbG9hdFwiIFwidGFuaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhY29zaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Fjb3NoX2Zsb2F0XCIgXCJjYW1sX2Fjb3NoXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFzaW5oIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXNpbmhfZmxvYXRcIiBcImNhbWxfYXNpbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXRhbmggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hdGFuaF9mbG9hdFwiIFwiY2FtbF9hdGFuaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBlcmYgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9lcmZfZmxvYXRcIiBcImNhbWxfZXJmXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGVyZmMgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9lcmZjX2Zsb2F0XCIgXCJjYW1sX2VyZmNcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdHJ1bmMgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF90cnVuY19mbG9hdFwiIFwiY2FtbF90cnVuY1wiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCByb3VuZCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3JvdW5kX2Zsb2F0XCIgXCJjYW1sX3JvdW5kXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGNlaWwgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9jZWlsX2Zsb2F0XCIgXCJjZWlsXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGZsb29yIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZmxvb3JfZmxvYXRcIiBcImZsb29yXCJcbltAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5cbmxldCBpc19pbnRlZ2VyIHggPSB4ID0gdHJ1bmMgeCAmJiBpc19maW5pdGUgeFxuXG5leHRlcm5hbCBuZXh0X2FmdGVyIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXRcbiAgPSBcImNhbWxfbmV4dGFmdGVyX2Zsb2F0XCIgXCJjYW1sX25leHRhZnRlclwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5cbmxldCBzdWNjIHggPSBuZXh0X2FmdGVyIHggaW5maW5pdHlcbmxldCBwcmVkIHggPSBuZXh0X2FmdGVyIHggbmVnX2luZmluaXR5XG5cbmV4dGVybmFsIGNvcHlfc2lnbiA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0XG4gICAgICAgICAgICAgICAgICA9IFwiY2FtbF9jb3B5c2lnbl9mbG9hdFwiIFwiY2FtbF9jb3B5c2lnblwiXG4gICAgICAgICAgICAgICAgICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc2lnbl9iaXQgOiAoZmxvYXQgW0B1bmJveGVkXSkgLT4gYm9vbFxuICA9IFwiY2FtbF9zaWduYml0X2Zsb2F0XCIgXCJjYW1sX3NpZ25iaXRcIiBbQEBub2FsbG9jXVxuXG5leHRlcm5hbCBmcmV4cCA6IGZsb2F0IC0+IGZsb2F0ICogaW50ID0gXCJjYW1sX2ZyZXhwX2Zsb2F0XCJcbmV4dGVybmFsIGxkZXhwIDogKGZsb2F0IFtAdW5ib3hlZF0pIC0+IChpbnQgW0B1bnRhZ2dlZF0pIC0+IChmbG9hdCBbQHVuYm94ZWRdKSA9XG4gIFwiY2FtbF9sZGV4cF9mbG9hdFwiIFwiY2FtbF9sZGV4cF9mbG9hdF91bmJveGVkXCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIG1vZGYgOiBmbG9hdCAtPiBmbG9hdCAqIGZsb2F0ID0gXCJjYW1sX21vZGZfZmxvYXRcIlxudHlwZSB0ID0gZmxvYXRcbmV4dGVybmFsIGNvbXBhcmUgOiBmbG9hdCAtPiBmbG9hdCAtPiBpbnQgPSBcIiVjb21wYXJlXCJcbmxldCBlcXVhbCB4IHkgPSBjb21wYXJlIHggeSA9IDBcblxubGV0W0BpbmxpbmVdIG1pbiAoeDogZmxvYXQpICh5OiBmbG9hdCkgPVxuICBpZiB5ID4geCB8fCAobm90KHNpZ25fYml0IHkpICYmIHNpZ25fYml0IHgpIHRoZW5cbiAgICBpZiBpc19uYW4geSB0aGVuIHkgZWxzZSB4XG4gIGVsc2UgaWYgaXNfbmFuIHggdGhlbiB4IGVsc2UgeVxuXG5sZXRbQGlubGluZV0gbWF4ICh4OiBmbG9hdCkgKHk6IGZsb2F0KSA9XG4gIGlmIHkgPiB4IHx8IChub3Qoc2lnbl9iaXQgeSkgJiYgc2lnbl9iaXQgeCkgdGhlblxuICAgIGlmIGlzX25hbiB4IHRoZW4geCBlbHNlIHlcbiAgZWxzZSBpZiBpc19uYW4geSB0aGVuIHkgZWxzZSB4XG5cbmxldFtAaW5saW5lXSBtaW5fbWF4ICh4OiBmbG9hdCkgKHk6IGZsb2F0KSA9XG4gIGlmIGlzX25hbiB4IHx8IGlzX25hbiB5IHRoZW4gKG5hbiwgbmFuKVxuICBlbHNlIGlmIHkgPiB4IHx8IChub3Qoc2lnbl9iaXQgeSkgJiYgc2lnbl9iaXQgeCkgdGhlbiAoeCwgeSkgZWxzZSAoeSwgeClcblxubGV0W0BpbmxpbmVdIG1pbl9udW0gKHg6IGZsb2F0KSAoeTogZmxvYXQpID1cbiAgaWYgeSA+IHggfHwgKG5vdChzaWduX2JpdCB5KSAmJiBzaWduX2JpdCB4KSB0aGVuXG4gICAgaWYgaXNfbmFuIHggdGhlbiB5IGVsc2UgeFxuICBlbHNlIGlmIGlzX25hbiB5IHRoZW4geCBlbHNlIHlcblxubGV0W0BpbmxpbmVdIG1heF9udW0gKHg6IGZsb2F0KSAoeTogZmxvYXQpID1cbiAgaWYgeSA+IHggfHwgKG5vdChzaWduX2JpdCB5KSAmJiBzaWduX2JpdCB4KSB0aGVuXG4gICAgaWYgaXNfbmFuIHkgdGhlbiB4IGVsc2UgeVxuICBlbHNlIGlmIGlzX25hbiB4IHRoZW4geSBlbHNlIHhcblxubGV0W0BpbmxpbmVdIG1pbl9tYXhfbnVtICh4OiBmbG9hdCkgKHk6IGZsb2F0KSA9XG4gIGlmIGlzX25hbiB4IHRoZW4gKHkseSlcbiAgZWxzZSBpZiBpc19uYW4geSB0aGVuICh4LHgpXG4gIGVsc2UgaWYgeSA+IHggfHwgKG5vdChzaWduX2JpdCB5KSAmJiBzaWduX2JpdCB4KSB0aGVuICh4LHkpIGVsc2UgKHkseClcblxuZXh0ZXJuYWwgc2VlZGVkX2hhc2hfcGFyYW0gOiBpbnQgLT4gaW50IC0+IGludCAtPiBmbG9hdCAtPiBpbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2hhc2hcIiBbQEBub2FsbG9jXVxubGV0IGhhc2ggeCA9IHNlZWRlZF9oYXNoX3BhcmFtIDEwIDEwMCAwIHhcblxubW9kdWxlIEFycmF5ID0gc3RydWN0XG5cbiAgdHlwZSB0ID0gZmxvYXRhcnJheVxuXG4gIGV4dGVybmFsIGxlbmd0aCA6IHQgLT4gaW50ID0gXCIlZmxvYXRhcnJheV9sZW5ndGhcIlxuICBleHRlcm5hbCBnZXQgOiB0IC0+IGludCAtPiBmbG9hdCA9IFwiJWZsb2F0YXJyYXlfc2FmZV9nZXRcIlxuICBleHRlcm5hbCBzZXQgOiB0IC0+IGludCAtPiBmbG9hdCAtPiB1bml0ID0gXCIlZmxvYXRhcnJheV9zYWZlX3NldFwiXG4gIGV4dGVybmFsIGNyZWF0ZSA6IGludCAtPiB0ID0gXCJjYW1sX2Zsb2F0YXJyYXlfY3JlYXRlXCJcbiAgZXh0ZXJuYWwgdW5zYWZlX2dldCA6IHQgLT4gaW50IC0+IGZsb2F0ID0gXCIlZmxvYXRhcnJheV91bnNhZmVfZ2V0XCJcbiAgZXh0ZXJuYWwgdW5zYWZlX3NldCA6IHQgLT4gaW50IC0+IGZsb2F0IC0+IHVuaXQgPSBcIiVmbG9hdGFycmF5X3Vuc2FmZV9zZXRcIlxuXG4gIGxldCB1bnNhZmVfZmlsbCBhIG9mcyBsZW4gdiA9XG4gICAgZm9yIGkgPSBvZnMgdG8gb2ZzICsgbGVuIC0gMSBkbyB1bnNhZmVfc2V0IGEgaSB2IGRvbmVcblxuICBleHRlcm5hbCB1bnNhZmVfYmxpdDogdCAtPiBpbnQgLT4gdCAtPiBpbnQgLT4gaW50IC0+IHVuaXQgPVxuICAgIFwiY2FtbF9mbG9hdGFycmF5X2JsaXRcIiBbQEBub2FsbG9jXVxuXG4gIGxldCBjaGVjayBhIG9mcyBsZW4gbXNnID1cbiAgICBpZiBvZnMgPCAwIHx8IGxlbiA8IDAgfHwgb2ZzICsgbGVuIDwgMCB8fCBvZnMgKyBsZW4gPiBsZW5ndGggYSB0aGVuXG4gICAgICBpbnZhbGlkX2FyZyBtc2dcblxuICBsZXQgbWFrZSBuIHYgPVxuICAgIGxldCByZXN1bHQgPSBjcmVhdGUgbiBpblxuICAgIHVuc2FmZV9maWxsIHJlc3VsdCAwIG4gdjtcbiAgICByZXN1bHRcblxuICBsZXQgaW5pdCBsIGYgPVxuICAgIGlmIGwgPCAwIHRoZW4gaW52YWxpZF9hcmcgXCJGbG9hdC5BcnJheS5pbml0XCJcbiAgICBlbHNlXG4gICAgICBsZXQgcmVzID0gY3JlYXRlIGwgaW5cbiAgICAgIGZvciBpID0gMCB0byBsIC0gMSBkb1xuICAgICAgICB1bnNhZmVfc2V0IHJlcyBpIChmIGkpXG4gICAgICBkb25lO1xuICAgICAgcmVzXG5cbiAgbGV0IGFwcGVuZCBhMSBhMiA9XG4gICAgbGV0IGwxID0gbGVuZ3RoIGExIGluXG4gICAgbGV0IGwyID0gbGVuZ3RoIGEyIGluXG4gICAgbGV0IHJlc3VsdCA9IGNyZWF0ZSAobDEgKyBsMikgaW5cbiAgICB1bnNhZmVfYmxpdCBhMSAwIHJlc3VsdCAwIGwxO1xuICAgIHVuc2FmZV9ibGl0IGEyIDAgcmVzdWx0IGwxIGwyO1xuICAgIHJlc3VsdFxuXG4gICgqIG5leHQgMyBmdW5jdGlvbnM6IG1vZGlmaWVkIGNvcHkgb2YgY29kZSBmcm9tIHN0cmluZy5tbCAqKVxuICBsZXQgZW5zdXJlX2dlICh4OmludCkgeSA9XG4gICAgaWYgeCA+PSB5IHRoZW4geCBlbHNlIGludmFsaWRfYXJnIFwiRmxvYXQuQXJyYXkuY29uY2F0XCJcblxuICBsZXQgcmVjIHN1bV9sZW5ndGhzIGFjYyA9IGZ1bmN0aW9uXG4gICAgfCBbXSAtPiBhY2NcbiAgICB8IGhkIDo6IHRsIC0+IHN1bV9sZW5ndGhzIChlbnN1cmVfZ2UgKGxlbmd0aCBoZCArIGFjYykgYWNjKSB0bFxuXG4gIGxldCBjb25jYXQgbCA9XG4gICAgbGV0IGxlbiA9IHN1bV9sZW5ndGhzIDAgbCBpblxuICAgIGxldCByZXN1bHQgPSBjcmVhdGUgbGVuIGluXG4gICAgbGV0IHJlYyBsb29wIGwgaSA9XG4gICAgICBtYXRjaCBsIHdpdGhcbiAgICAgIHwgW10gLT4gYXNzZXJ0IChpID0gbGVuKVxuICAgICAgfCBoZCA6OiB0bCAtPlxuICAgICAgICBsZXQgaGxlbiA9IGxlbmd0aCBoZCBpblxuICAgICAgICB1bnNhZmVfYmxpdCBoZCAwIHJlc3VsdCBpIGhsZW47XG4gICAgICAgIGxvb3AgdGwgKGkgKyBobGVuKVxuICAgIGluXG4gICAgbG9vcCBsIDA7XG4gICAgcmVzdWx0XG5cbiAgbGV0IHN1YiBhIG9mcyBsZW4gPVxuICAgIGNoZWNrIGEgb2ZzIGxlbiBcIkZsb2F0LkFycmF5LnN1YlwiO1xuICAgIGxldCByZXN1bHQgPSBjcmVhdGUgbGVuIGluXG4gICAgdW5zYWZlX2JsaXQgYSBvZnMgcmVzdWx0IDAgbGVuO1xuICAgIHJlc3VsdFxuXG4gIGxldCBjb3B5IGEgPVxuICAgIGxldCBsID0gbGVuZ3RoIGEgaW5cbiAgICBsZXQgcmVzdWx0ID0gY3JlYXRlIGwgaW5cbiAgICB1bnNhZmVfYmxpdCBhIDAgcmVzdWx0IDAgbDtcbiAgICByZXN1bHRcblxuICBsZXQgZmlsbCBhIG9mcyBsZW4gdiA9XG4gICAgY2hlY2sgYSBvZnMgbGVuIFwiRmxvYXQuQXJyYXkuZmlsbFwiO1xuICAgIHVuc2FmZV9maWxsIGEgb2ZzIGxlbiB2XG5cbiAgbGV0IGJsaXQgc3JjIHNvZnMgZHN0IGRvZnMgbGVuID1cbiAgICBjaGVjayBzcmMgc29mcyBsZW4gXCJGbG9hdC5hcnJheS5ibGl0XCI7XG4gICAgY2hlY2sgZHN0IGRvZnMgbGVuIFwiRmxvYXQuYXJyYXkuYmxpdFwiO1xuICAgIHVuc2FmZV9ibGl0IHNyYyBzb2ZzIGRzdCBkb2ZzIGxlblxuXG4gIGxldCB0b19saXN0IGEgPVxuICAgIExpc3QuaW5pdCAobGVuZ3RoIGEpICh1bnNhZmVfZ2V0IGEpXG5cbiAgbGV0IG9mX2xpc3QgbCA9XG4gICAgbGV0IHJlc3VsdCA9IGNyZWF0ZSAoTGlzdC5sZW5ndGggbCkgaW5cbiAgICBsZXQgcmVjIGZpbGwgaSBsID1cbiAgICAgIG1hdGNoIGwgd2l0aFxuICAgICAgfCBbXSAtPiByZXN1bHRcbiAgICAgIHwgaCA6OiB0IC0+IHVuc2FmZV9zZXQgcmVzdWx0IGkgaDsgZmlsbCAoaSArIDEpIHRcbiAgICBpblxuICAgIGZpbGwgMCBsXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCBpdGVyIGYgYSA9XG4gICAgZm9yIGkgPSAwIHRvIGxlbmd0aCBhIC0gMSBkbyBmICh1bnNhZmVfZ2V0IGEgaSkgZG9uZVxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgaXRlcjIgZiBhIGIgPVxuICAgIGlmIGxlbmd0aCBhIDw+IGxlbmd0aCBiIHRoZW5cbiAgICAgIGludmFsaWRfYXJnIFwiRmxvYXQuQXJyYXkuaXRlcjI6IGFycmF5cyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoXCJcbiAgICBlbHNlXG4gICAgICBmb3IgaSA9IDAgdG8gbGVuZ3RoIGEgLSAxIGRvIGYgKHVuc2FmZV9nZXQgYSBpKSAodW5zYWZlX2dldCBiIGkpIGRvbmVcblxuICBsZXQgbWFwIGYgYSA9XG4gICAgbGV0IGwgPSBsZW5ndGggYSBpblxuICAgIGxldCByID0gY3JlYXRlIGwgaW5cbiAgICBmb3IgaSA9IDAgdG8gbCAtIDEgZG9cbiAgICAgIHVuc2FmZV9zZXQgciBpIChmICh1bnNhZmVfZ2V0IGEgaSkpXG4gICAgZG9uZTtcbiAgICByXG5cbiAgbGV0IG1hcDIgZiBhIGIgPVxuICAgIGxldCBsYSA9IGxlbmd0aCBhIGluXG4gICAgbGV0IGxiID0gbGVuZ3RoIGIgaW5cbiAgICBpZiBsYSA8PiBsYiB0aGVuXG4gICAgICBpbnZhbGlkX2FyZyBcIkZsb2F0LkFycmF5Lm1hcDI6IGFycmF5cyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoXCJcbiAgICBlbHNlIGJlZ2luXG4gICAgICBsZXQgciA9IGNyZWF0ZSBsYSBpblxuICAgICAgZm9yIGkgPSAwIHRvIGxhIC0gMSBkb1xuICAgICAgICB1bnNhZmVfc2V0IHIgaSAoZiAodW5zYWZlX2dldCBhIGkpICh1bnNhZmVfZ2V0IGIgaSkpXG4gICAgICBkb25lO1xuICAgICAgclxuICAgIGVuZFxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgaXRlcmkgZiBhID1cbiAgICBmb3IgaSA9IDAgdG8gbGVuZ3RoIGEgLSAxIGRvIGYgaSAodW5zYWZlX2dldCBhIGkpIGRvbmVcblxuICBsZXQgbWFwaSBmIGEgPVxuICAgIGxldCBsID0gbGVuZ3RoIGEgaW5cbiAgICBsZXQgciA9IGNyZWF0ZSBsIGluXG4gICAgZm9yIGkgPSAwIHRvIGwgLSAxIGRvXG4gICAgICB1bnNhZmVfc2V0IHIgaSAoZiBpICh1bnNhZmVfZ2V0IGEgaSkpXG4gICAgZG9uZTtcbiAgICByXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCBmb2xkX2xlZnQgZiB4IGEgPVxuICAgIGxldCByID0gcmVmIHggaW5cbiAgICBmb3IgaSA9IDAgdG8gbGVuZ3RoIGEgLSAxIGRvXG4gICAgICByIDo9IGYgIXIgKHVuc2FmZV9nZXQgYSBpKVxuICAgIGRvbmU7XG4gICAgIXJcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IGZvbGRfcmlnaHQgZiBhIHggPVxuICAgIGxldCByID0gcmVmIHggaW5cbiAgICBmb3IgaSA9IGxlbmd0aCBhIC0gMSBkb3dudG8gMCBkb1xuICAgICAgciA6PSBmICh1bnNhZmVfZ2V0IGEgaSkgIXJcbiAgICBkb25lO1xuICAgICFyXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCBleGlzdHMgcCBhID1cbiAgICBsZXQgbiA9IGxlbmd0aCBhIGluXG4gICAgbGV0IHJlYyBsb29wIGkgPVxuICAgICAgaWYgaSA9IG4gdGhlbiBmYWxzZVxuICAgICAgZWxzZSBpZiBwICh1bnNhZmVfZ2V0IGEgaSkgdGhlbiB0cnVlXG4gICAgICBlbHNlIGxvb3AgKGkgKyAxKSBpblxuICAgIGxvb3AgMFxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgZm9yX2FsbCBwIGEgPVxuICAgIGxldCBuID0gbGVuZ3RoIGEgaW5cbiAgICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgICBpZiBpID0gbiB0aGVuIHRydWVcbiAgICAgIGVsc2UgaWYgcCAodW5zYWZlX2dldCBhIGkpIHRoZW4gbG9vcCAoaSArIDEpXG4gICAgICBlbHNlIGZhbHNlIGluXG4gICAgbG9vcCAwXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCBtZW0geCBhID1cbiAgICBsZXQgbiA9IGxlbmd0aCBhIGluXG4gICAgbGV0IHJlYyBsb29wIGkgPVxuICAgICAgaWYgaSA9IG4gdGhlbiBmYWxzZVxuICAgICAgZWxzZSBpZiBjb21wYXJlICh1bnNhZmVfZ2V0IGEgaSkgeCA9IDAgdGhlbiB0cnVlXG4gICAgICBlbHNlIGxvb3AgKGkgKyAxKVxuICAgIGluXG4gICAgbG9vcCAwXG5cbiAgKCogbW9zdGx5IGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCwgYnV0IHNsaWdodGx5IGRpZmZlcmVudCAqKVxuICBsZXQgbWVtX2llZWUgeCBhID1cbiAgICBsZXQgbiA9IGxlbmd0aCBhIGluXG4gICAgbGV0IHJlYyBsb29wIGkgPVxuICAgICAgaWYgaSA9IG4gdGhlbiBmYWxzZVxuICAgICAgZWxzZSBpZiB4ID0gKHVuc2FmZV9nZXQgYSBpKSB0aGVuIHRydWVcbiAgICAgIGVsc2UgbG9vcCAoaSArIDEpXG4gICAgaW5cbiAgICBsb29wIDBcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgZXhjZXB0aW9uIEJvdHRvbSBvZiBpbnRcbiAgbGV0IHNvcnQgY21wIGEgPVxuICAgIGxldCBtYXhzb24gbCBpID1cbiAgICAgIGxldCBpMzEgPSBpK2kraSsxIGluXG4gICAgICBsZXQgeCA9IHJlZiBpMzEgaW5cbiAgICAgIGlmIGkzMSsyIDwgbCB0aGVuIGJlZ2luXG4gICAgICAgIGlmIGNtcCAoZ2V0IGEgaTMxKSAoZ2V0IGEgKGkzMSsxKSkgPCAwIHRoZW4geCA6PSBpMzErMTtcbiAgICAgICAgaWYgY21wIChnZXQgYSAheCkgKGdldCBhIChpMzErMikpIDwgMCB0aGVuIHggOj0gaTMxKzI7XG4gICAgICAgICF4XG4gICAgICBlbmQgZWxzZVxuICAgICAgICBpZiBpMzErMSA8IGwgJiYgY21wIChnZXQgYSBpMzEpIChnZXQgYSAoaTMxKzEpKSA8IDBcbiAgICAgICAgdGhlbiBpMzErMVxuICAgICAgICBlbHNlIGlmIGkzMSA8IGwgdGhlbiBpMzEgZWxzZSByYWlzZSAoQm90dG9tIGkpXG4gICAgaW5cbiAgICBsZXQgcmVjIHRyaWNrbGVkb3duIGwgaSBlID1cbiAgICAgIGxldCBqID0gbWF4c29uIGwgaSBpblxuICAgICAgaWYgY21wIChnZXQgYSBqKSBlID4gMCB0aGVuIGJlZ2luXG4gICAgICAgIHNldCBhIGkgKGdldCBhIGopO1xuICAgICAgICB0cmlja2xlZG93biBsIGogZTtcbiAgICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICAgIHNldCBhIGkgZTtcbiAgICAgIGVuZDtcbiAgICBpblxuICAgIGxldCB0cmlja2xlIGwgaSBlID0gdHJ5IHRyaWNrbGVkb3duIGwgaSBlIHdpdGggQm90dG9tIGkgLT4gc2V0IGEgaSBlIGluXG4gICAgbGV0IHJlYyBidWJibGVkb3duIGwgaSA9XG4gICAgICBsZXQgaiA9IG1heHNvbiBsIGkgaW5cbiAgICAgIHNldCBhIGkgKGdldCBhIGopO1xuICAgICAgYnViYmxlZG93biBsIGpcbiAgICBpblxuICAgIGxldCBidWJibGUgbCBpID0gdHJ5IGJ1YmJsZWRvd24gbCBpIHdpdGggQm90dG9tIGkgLT4gaSBpblxuICAgIGxldCByZWMgdHJpY2tsZXVwIGkgZSA9XG4gICAgICBsZXQgZmF0aGVyID0gKGkgLSAxKSAvIDMgaW5cbiAgICAgIGFzc2VydCAoaSA8PiBmYXRoZXIpO1xuICAgICAgaWYgY21wIChnZXQgYSBmYXRoZXIpIGUgPCAwIHRoZW4gYmVnaW5cbiAgICAgICAgc2V0IGEgaSAoZ2V0IGEgZmF0aGVyKTtcbiAgICAgICAgaWYgZmF0aGVyID4gMCB0aGVuIHRyaWNrbGV1cCBmYXRoZXIgZSBlbHNlIHNldCBhIDAgZTtcbiAgICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICAgIHNldCBhIGkgZTtcbiAgICAgIGVuZDtcbiAgICBpblxuICAgIGxldCBsID0gbGVuZ3RoIGEgaW5cbiAgICBmb3IgaSA9IChsICsgMSkgLyAzIC0gMSBkb3dudG8gMCBkbyB0cmlja2xlIGwgaSAoZ2V0IGEgaSk7IGRvbmU7XG4gICAgZm9yIGkgPSBsIC0gMSBkb3dudG8gMiBkb1xuICAgICAgbGV0IGUgPSAoZ2V0IGEgaSkgaW5cbiAgICAgIHNldCBhIGkgKGdldCBhIDApO1xuICAgICAgdHJpY2tsZXVwIChidWJibGUgaSAwKSBlO1xuICAgIGRvbmU7XG4gICAgaWYgbCA+IDEgdGhlbiAobGV0IGUgPSAoZ2V0IGEgMSkgaW4gc2V0IGEgMSAoZ2V0IGEgMCk7IHNldCBhIDAgZSlcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwsIGV4Y2VwdCBmb3IgdGhlIGNhbGwgdG8gW2NyZWF0ZV0gKilcbiAgbGV0IGN1dG9mZiA9IDVcbiAgbGV0IHN0YWJsZV9zb3J0IGNtcCBhID1cbiAgICBsZXQgbWVyZ2Ugc3JjMW9mcyBzcmMxbGVuIHNyYzIgc3JjMm9mcyBzcmMybGVuIGRzdCBkc3RvZnMgPVxuICAgICAgbGV0IHNyYzFyID0gc3JjMW9mcyArIHNyYzFsZW4gYW5kIHNyYzJyID0gc3JjMm9mcyArIHNyYzJsZW4gaW5cbiAgICAgIGxldCByZWMgbG9vcCBpMSBzMSBpMiBzMiBkID1cbiAgICAgICAgaWYgY21wIHMxIHMyIDw9IDAgdGhlbiBiZWdpblxuICAgICAgICAgIHNldCBkc3QgZCBzMTtcbiAgICAgICAgICBsZXQgaTEgPSBpMSArIDEgaW5cbiAgICAgICAgICBpZiBpMSA8IHNyYzFyIHRoZW5cbiAgICAgICAgICAgIGxvb3AgaTEgKGdldCBhIGkxKSBpMiBzMiAoZCArIDEpXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgYmxpdCBzcmMyIGkyIGRzdCAoZCArIDEpIChzcmMyciAtIGkyKVxuICAgICAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgICAgIHNldCBkc3QgZCBzMjtcbiAgICAgICAgICBsZXQgaTIgPSBpMiArIDEgaW5cbiAgICAgICAgICBpZiBpMiA8IHNyYzJyIHRoZW5cbiAgICAgICAgICAgIGxvb3AgaTEgczEgaTIgKGdldCBzcmMyIGkyKSAoZCArIDEpXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgYmxpdCBhIGkxIGRzdCAoZCArIDEpIChzcmMxciAtIGkxKVxuICAgICAgICBlbmRcbiAgICAgIGluIGxvb3Agc3JjMW9mcyAoZ2V0IGEgc3JjMW9mcykgc3JjMm9mcyAoZ2V0IHNyYzIgc3JjMm9mcykgZHN0b2ZzO1xuICAgIGluXG4gICAgbGV0IGlzb3J0dG8gc3Jjb2ZzIGRzdCBkc3RvZnMgbGVuID1cbiAgICAgIGZvciBpID0gMCB0byBsZW4gLSAxIGRvXG4gICAgICAgIGxldCBlID0gKGdldCBhIChzcmNvZnMgKyBpKSkgaW5cbiAgICAgICAgbGV0IGogPSByZWYgKGRzdG9mcyArIGkgLSAxKSBpblxuICAgICAgICB3aGlsZSAoIWogPj0gZHN0b2ZzICYmIGNtcCAoZ2V0IGRzdCAhaikgZSA+IDApIGRvXG4gICAgICAgICAgc2V0IGRzdCAoIWogKyAxKSAoZ2V0IGRzdCAhaik7XG4gICAgICAgICAgZGVjciBqO1xuICAgICAgICBkb25lO1xuICAgICAgICBzZXQgZHN0ICghaiArIDEpIGU7XG4gICAgICBkb25lO1xuICAgIGluXG4gICAgbGV0IHJlYyBzb3J0dG8gc3Jjb2ZzIGRzdCBkc3RvZnMgbGVuID1cbiAgICAgIGlmIGxlbiA8PSBjdXRvZmYgdGhlbiBpc29ydHRvIHNyY29mcyBkc3QgZHN0b2ZzIGxlbiBlbHNlIGJlZ2luXG4gICAgICAgIGxldCBsMSA9IGxlbiAvIDIgaW5cbiAgICAgICAgbGV0IGwyID0gbGVuIC0gbDEgaW5cbiAgICAgICAgc29ydHRvIChzcmNvZnMgKyBsMSkgZHN0IChkc3RvZnMgKyBsMSkgbDI7XG4gICAgICAgIHNvcnR0byBzcmNvZnMgYSAoc3Jjb2ZzICsgbDIpIGwxO1xuICAgICAgICBtZXJnZSAoc3Jjb2ZzICsgbDIpIGwxIGRzdCAoZHN0b2ZzICsgbDEpIGwyIGRzdCBkc3RvZnM7XG4gICAgICBlbmQ7XG4gICAgaW5cbiAgICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gICAgaWYgbCA8PSBjdXRvZmYgdGhlbiBpc29ydHRvIDAgYSAwIGwgZWxzZSBiZWdpblxuICAgICAgbGV0IGwxID0gbCAvIDIgaW5cbiAgICAgIGxldCBsMiA9IGwgLSBsMSBpblxuICAgICAgbGV0IHQgPSBjcmVhdGUgbDIgaW5cbiAgICAgIHNvcnR0byBsMSB0IDAgbDI7XG4gICAgICBzb3J0dG8gMCBhIGwyIGwxO1xuICAgICAgbWVyZ2UgbDIgbDEgdCAwIGwyIGEgMDtcbiAgICBlbmRcblxuICBsZXQgZmFzdF9zb3J0ID0gc3RhYmxlX3NvcnRcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IHRvX3NlcSBhID1cbiAgICBsZXQgcmVjIGF1eCBpICgpID1cbiAgICAgIGlmIGkgPCBsZW5ndGggYVxuICAgICAgdGhlblxuICAgICAgICBsZXQgeCA9IHVuc2FmZV9nZXQgYSBpIGluXG4gICAgICAgIFNlcS5Db25zICh4LCBhdXggKGkrMSkpXG4gICAgICBlbHNlIFNlcS5OaWxcbiAgICBpblxuICAgIGF1eCAwXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCB0b19zZXFpIGEgPVxuICAgIGxldCByZWMgYXV4IGkgKCkgPVxuICAgICAgaWYgaSA8IGxlbmd0aCBhXG4gICAgICB0aGVuXG4gICAgICAgIGxldCB4ID0gdW5zYWZlX2dldCBhIGkgaW5cbiAgICAgICAgU2VxLkNvbnMgKChpLHgpLCBhdXggKGkrMSkpXG4gICAgICBlbHNlIFNlcS5OaWxcbiAgICBpblxuICAgIGF1eCAwXG5cbiAgKCogbW9zdGx5IGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgb2ZfcmV2X2xpc3QgbCA9XG4gICAgbGV0IGxlbiA9IExpc3QubGVuZ3RoIGwgaW5cbiAgICBsZXQgYSA9IGNyZWF0ZSBsZW4gaW5cbiAgICBsZXQgcmVjIGZpbGwgaSA9IGZ1bmN0aW9uXG4gICAgICAgIFtdIC0+IGFcbiAgICAgIHwgaGQ6OnRsIC0+IHVuc2FmZV9zZXQgYSBpIGhkOyBmaWxsIChpLTEpIHRsXG4gICAgaW5cbiAgICBmaWxsIChsZW4tMSkgbFxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgb2Zfc2VxIGkgPVxuICAgIGxldCBsID0gU2VxLmZvbGRfbGVmdCAoZnVuIGFjYyB4IC0+IHg6OmFjYykgW10gaSBpblxuICAgIG9mX3Jldl9saXN0IGxcblxuXG4gIGxldCBtYXBfdG9fYXJyYXkgZiBhID1cbiAgICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gICAgaWYgbCA9IDAgdGhlbiBbfCB8XSBlbHNlIGJlZ2luXG4gICAgICBsZXQgciA9IEFycmF5Lm1ha2UgbCAoZiAodW5zYWZlX2dldCBhIDApKSBpblxuICAgICAgZm9yIGkgPSAxIHRvIGwgLSAxIGRvXG4gICAgICAgIEFycmF5LnVuc2FmZV9zZXQgciBpIChmICh1bnNhZmVfZ2V0IGEgaSkpXG4gICAgICBkb25lO1xuICAgICAgclxuICAgIGVuZFxuXG4gIGxldCBtYXBfZnJvbV9hcnJheSBmIGEgPVxuICAgIGxldCBsID0gQXJyYXkubGVuZ3RoIGEgaW5cbiAgICBsZXQgciA9IGNyZWF0ZSBsIGluXG4gICAgZm9yIGkgPSAwIHRvIGwgLSAxIGRvXG4gICAgICB1bnNhZmVfc2V0IHIgaSAoZiAoQXJyYXkudW5zYWZlX2dldCBhIGkpKVxuICAgIGRvbmU7XG4gICAgclxuXG5lbmRcblxubW9kdWxlIEFycmF5TGFiZWxzID0gQXJyYXlcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogTW9kdWxlIFtJbnQzMl06IDMyLWJpdCBpbnRlZ2VycyAqKVxuXG5leHRlcm5hbCBuZWcgOiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX25lZ1wiXG5leHRlcm5hbCBhZGQgOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX2FkZFwiXG5leHRlcm5hbCBzdWIgOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX3N1YlwiXG5leHRlcm5hbCBtdWwgOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX211bFwiXG5leHRlcm5hbCBkaXYgOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX2RpdlwiXG5leHRlcm5hbCByZW0gOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX21vZFwiXG5leHRlcm5hbCBsb2dhbmQgOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX2FuZFwiXG5leHRlcm5hbCBsb2dvciA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfb3JcIlxuZXh0ZXJuYWwgbG9neG9yIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl94b3JcIlxuZXh0ZXJuYWwgc2hpZnRfbGVmdCA6IGludDMyIC0+IGludCAtPiBpbnQzMiA9IFwiJWludDMyX2xzbFwiXG5leHRlcm5hbCBzaGlmdF9yaWdodCA6IGludDMyIC0+IGludCAtPiBpbnQzMiA9IFwiJWludDMyX2FzclwiXG5leHRlcm5hbCBzaGlmdF9yaWdodF9sb2dpY2FsIDogaW50MzIgLT4gaW50IC0+IGludDMyID0gXCIlaW50MzJfbHNyXCJcbmV4dGVybmFsIG9mX2ludCA6IGludCAtPiBpbnQzMiA9IFwiJWludDMyX29mX2ludFwiXG5leHRlcm5hbCB0b19pbnQgOiBpbnQzMiAtPiBpbnQgPSBcIiVpbnQzMl90b19pbnRcIlxuZXh0ZXJuYWwgb2ZfZmxvYXQgOiBmbG9hdCAtPiBpbnQzMlxuICA9IFwiY2FtbF9pbnQzMl9vZl9mbG9hdFwiIFwiY2FtbF9pbnQzMl9vZl9mbG9hdF91bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHRvX2Zsb2F0IDogaW50MzIgLT4gZmxvYXRcbiAgPSBcImNhbWxfaW50MzJfdG9fZmxvYXRcIiBcImNhbWxfaW50MzJfdG9fZmxvYXRfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBiaXRzX29mX2Zsb2F0IDogZmxvYXQgLT4gaW50MzJcbiAgPSBcImNhbWxfaW50MzJfYml0c19vZl9mbG9hdFwiIFwiY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0X3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZmxvYXRfb2ZfYml0cyA6IGludDMyIC0+IGZsb2F0XG4gID0gXCJjYW1sX2ludDMyX2Zsb2F0X29mX2JpdHNcIiBcImNhbWxfaW50MzJfZmxvYXRfb2ZfYml0c191bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cblxubGV0IHplcm8gPSAwbFxubGV0IG9uZSA9IDFsXG5sZXQgbWludXNfb25lID0gLTFsXG5sZXQgc3VjYyBuID0gYWRkIG4gMWxcbmxldCBwcmVkIG4gPSBzdWIgbiAxbFxubGV0IGFicyBuID0gaWYgbiA+PSAwbCB0aGVuIG4gZWxzZSBuZWcgblxubGV0IG1pbl9pbnQgPSAweDgwMDAwMDAwbFxubGV0IG1heF9pbnQgPSAweDdGRkZGRkZGbFxubGV0IGxvZ25vdCBuID0gbG9neG9yIG4gKC0xbClcblxubGV0IHVuc2lnbmVkX3RvX2ludCA9XG4gIG1hdGNoIFN5cy53b3JkX3NpemUgd2l0aFxuICB8IDMyIC0+XG4gICAgICBsZXQgbWF4X2ludCA9IG9mX2ludCBTdGRsaWIubWF4X2ludCBpblxuICAgICAgZnVuIG4gLT5cbiAgICAgICAgaWYgY29tcGFyZSB6ZXJvIG4gPD0gMCAmJiBjb21wYXJlIG4gbWF4X2ludCA8PSAwIHRoZW5cbiAgICAgICAgICBTb21lICh0b19pbnQgbilcbiAgICAgICAgZWxzZVxuICAgICAgICAgIE5vbmVcbiAgfCA2NCAtPlxuICAgICAgKCogU28gdGhhdCBpdCBjb21waWxlcyBpbiAzMi1iaXQgKilcbiAgICAgIGxldCBtYXNrID0gMHhGRkZGIGxzbCAxNiBsb3IgMHhGRkZGIGluXG4gICAgICBmdW4gbiAtPiBTb21lICh0b19pbnQgbiBsYW5kIG1hc2spXG4gIHwgXyAtPlxuICAgICAgYXNzZXJ0IGZhbHNlXG5cbmV4dGVybmFsIGZvcm1hdCA6IHN0cmluZyAtPiBpbnQzMiAtPiBzdHJpbmcgPSBcImNhbWxfaW50MzJfZm9ybWF0XCJcbmxldCB0b19zdHJpbmcgbiA9IGZvcm1hdCBcIiVkXCIgblxuXG5leHRlcm5hbCBvZl9zdHJpbmcgOiBzdHJpbmcgLT4gaW50MzIgPSBcImNhbWxfaW50MzJfb2Zfc3RyaW5nXCJcblxubGV0IG9mX3N0cmluZ19vcHQgcyA9XG4gICgqIFRPRE86IGV4cG9zZSBhIG5vbi1yYWlzaW5nIHByaW1pdGl2ZSBkaXJlY3RseS4gKilcbiAgdHJ5IFNvbWUgKG9mX3N0cmluZyBzKVxuICB3aXRoIEZhaWx1cmUgXyAtPiBOb25lXG5cbnR5cGUgdCA9IGludDMyXG5cbmxldCBjb21wYXJlICh4OiB0KSAoeTogdCkgPSBTdGRsaWIuY29tcGFyZSB4IHlcbmxldCBlcXVhbCAoeDogdCkgKHk6IHQpID0gY29tcGFyZSB4IHkgPSAwXG5cbmxldCB1bnNpZ25lZF9jb21wYXJlIG4gbSA9XG4gIGNvbXBhcmUgKHN1YiBuIG1pbl9pbnQpIChzdWIgbSBtaW5faW50KVxuXG5sZXQgbWluIHggeSA6IHQgPSBpZiB4IDw9IHkgdGhlbiB4IGVsc2UgeVxubGV0IG1heCB4IHkgOiB0ID0gaWYgeCA+PSB5IHRoZW4geCBlbHNlIHlcblxuKCogVW5zaWduZWQgZGl2aXNpb24gZnJvbSBzaWduZWQgZGl2aXNpb24gb2YgdGhlIHNhbWVcbiAgIGJpdG5lc3MuIFNlZSBXYXJyZW4gSnIuLCBIZW5yeSBTLiAoMjAxMykuIEhhY2tlcidzIERlbGlnaHQgKDIgZWQuKSwgU2VjIDktMy5cbiopXG5sZXQgdW5zaWduZWRfZGl2IG4gZCA9XG4gIGlmIGQgPCB6ZXJvIHRoZW5cbiAgICBpZiB1bnNpZ25lZF9jb21wYXJlIG4gZCA8IDAgdGhlbiB6ZXJvIGVsc2Ugb25lXG4gIGVsc2VcbiAgICBsZXQgcSA9IHNoaWZ0X2xlZnQgKGRpdiAoc2hpZnRfcmlnaHRfbG9naWNhbCBuIDEpIGQpIDEgaW5cbiAgICBsZXQgciA9IHN1YiBuIChtdWwgcSBkKSBpblxuICAgIGlmIHVuc2lnbmVkX2NvbXBhcmUgciBkID49IDAgdGhlbiBzdWNjIHEgZWxzZSBxXG5cbmxldCB1bnNpZ25lZF9yZW0gbiBkID1cbiAgc3ViIG4gKG11bCAodW5zaWduZWRfZGl2IG4gZCkgZClcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogTW9kdWxlIFtJbnQ2NF06IDY0LWJpdCBpbnRlZ2VycyAqKVxuXG5leHRlcm5hbCBuZWcgOiBpbnQ2NCAtPiBpbnQ2NCA9IFwiJWludDY0X25lZ1wiXG5leHRlcm5hbCBhZGQgOiBpbnQ2NCAtPiBpbnQ2NCAtPiBpbnQ2NCA9IFwiJWludDY0X2FkZFwiXG5leHRlcm5hbCBzdWIgOiBpbnQ2NCAtPiBpbnQ2NCAtPiBpbnQ2NCA9IFwiJWludDY0X3N1YlwiXG5leHRlcm5hbCBtdWwgOiBpbnQ2NCAtPiBpbnQ2NCAtPiBpbnQ2NCA9IFwiJWludDY0X211bFwiXG5leHRlcm5hbCBkaXYgOiBpbnQ2NCAtPiBpbnQ2NCAtPiBpbnQ2NCA9IFwiJWludDY0X2RpdlwiXG5leHRlcm5hbCByZW0gOiBpbnQ2NCAtPiBpbnQ2NCAtPiBpbnQ2NCA9IFwiJWludDY0X21vZFwiXG5leHRlcm5hbCBsb2dhbmQgOiBpbnQ2NCAtPiBpbnQ2NCAtPiBpbnQ2NCA9IFwiJWludDY0X2FuZFwiXG5leHRlcm5hbCBsb2dvciA6IGludDY0IC0+IGludDY0IC0+IGludDY0ID0gXCIlaW50NjRfb3JcIlxuZXh0ZXJuYWwgbG9neG9yIDogaW50NjQgLT4gaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF94b3JcIlxuZXh0ZXJuYWwgc2hpZnRfbGVmdCA6IGludDY0IC0+IGludCAtPiBpbnQ2NCA9IFwiJWludDY0X2xzbFwiXG5leHRlcm5hbCBzaGlmdF9yaWdodCA6IGludDY0IC0+IGludCAtPiBpbnQ2NCA9IFwiJWludDY0X2FzclwiXG5leHRlcm5hbCBzaGlmdF9yaWdodF9sb2dpY2FsIDogaW50NjQgLT4gaW50IC0+IGludDY0ID0gXCIlaW50NjRfbHNyXCJcbmV4dGVybmFsIG9mX2ludCA6IGludCAtPiBpbnQ2NCA9IFwiJWludDY0X29mX2ludFwiXG5leHRlcm5hbCB0b19pbnQgOiBpbnQ2NCAtPiBpbnQgPSBcIiVpbnQ2NF90b19pbnRcIlxuZXh0ZXJuYWwgb2ZfZmxvYXQgOiBmbG9hdCAtPiBpbnQ2NFxuICA9IFwiY2FtbF9pbnQ2NF9vZl9mbG9hdFwiIFwiY2FtbF9pbnQ2NF9vZl9mbG9hdF91bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHRvX2Zsb2F0IDogaW50NjQgLT4gZmxvYXRcbiAgPSBcImNhbWxfaW50NjRfdG9fZmxvYXRcIiBcImNhbWxfaW50NjRfdG9fZmxvYXRfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBvZl9pbnQzMiA6IGludDMyIC0+IGludDY0ID0gXCIlaW50NjRfb2ZfaW50MzJcIlxuZXh0ZXJuYWwgdG9faW50MzIgOiBpbnQ2NCAtPiBpbnQzMiA9IFwiJWludDY0X3RvX2ludDMyXCJcbmV4dGVybmFsIG9mX25hdGl2ZWludCA6IG5hdGl2ZWludCAtPiBpbnQ2NCA9IFwiJWludDY0X29mX25hdGl2ZWludFwiXG5leHRlcm5hbCB0b19uYXRpdmVpbnQgOiBpbnQ2NCAtPiBuYXRpdmVpbnQgPSBcIiVpbnQ2NF90b19uYXRpdmVpbnRcIlxuXG5sZXQgemVybyA9IDBMXG5sZXQgb25lID0gMUxcbmxldCBtaW51c19vbmUgPSAtMUxcbmxldCBzdWNjIG4gPSBhZGQgbiAxTFxubGV0IHByZWQgbiA9IHN1YiBuIDFMXG5sZXQgYWJzIG4gPSBpZiBuID49IDBMIHRoZW4gbiBlbHNlIG5lZyBuXG5sZXQgbWluX2ludCA9IDB4ODAwMDAwMDAwMDAwMDAwMExcbmxldCBtYXhfaW50ID0gMHg3RkZGRkZGRkZGRkZGRkZGTFxubGV0IGxvZ25vdCBuID0gbG9neG9yIG4gKC0xTClcblxubGV0IHVuc2lnbmVkX3RvX2ludCA9XG4gIGxldCBtYXhfaW50ID0gb2ZfaW50IFN0ZGxpYi5tYXhfaW50IGluXG4gIGZ1biBuIC0+XG4gICAgaWYgY29tcGFyZSB6ZXJvIG4gPD0gMCAmJiBjb21wYXJlIG4gbWF4X2ludCA8PSAwIHRoZW5cbiAgICAgIFNvbWUgKHRvX2ludCBuKVxuICAgIGVsc2VcbiAgICAgIE5vbmVcblxuZXh0ZXJuYWwgZm9ybWF0IDogc3RyaW5nIC0+IGludDY0IC0+IHN0cmluZyA9IFwiY2FtbF9pbnQ2NF9mb3JtYXRcIlxubGV0IHRvX3N0cmluZyBuID0gZm9ybWF0IFwiJWRcIiBuXG5cbmV4dGVybmFsIG9mX3N0cmluZyA6IHN0cmluZyAtPiBpbnQ2NCA9IFwiY2FtbF9pbnQ2NF9vZl9zdHJpbmdcIlxuXG5sZXQgb2Zfc3RyaW5nX29wdCBzID1cbiAgKCogVE9ETzogZXhwb3NlIGEgbm9uLXJhaXNpbmcgcHJpbWl0aXZlIGRpcmVjdGx5LiAqKVxuICB0cnkgU29tZSAob2Zfc3RyaW5nIHMpXG4gIHdpdGggRmFpbHVyZSBfIC0+IE5vbmVcblxuXG5cbmV4dGVybmFsIGJpdHNfb2ZfZmxvYXQgOiBmbG9hdCAtPiBpbnQ2NFxuICA9IFwiY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0XCIgXCJjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXRfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBmbG9hdF9vZl9iaXRzIDogaW50NjQgLT4gZmxvYXRcbiAgPSBcImNhbWxfaW50NjRfZmxvYXRfb2ZfYml0c1wiIFwiY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzX3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuXG50eXBlIHQgPSBpbnQ2NFxuXG5sZXQgY29tcGFyZSAoeDogdCkgKHk6IHQpID0gU3RkbGliLmNvbXBhcmUgeCB5XG5sZXQgZXF1YWwgKHg6IHQpICh5OiB0KSA9IGNvbXBhcmUgeCB5ID0gMFxuXG5sZXQgdW5zaWduZWRfY29tcGFyZSBuIG0gPVxuICBjb21wYXJlIChzdWIgbiBtaW5faW50KSAoc3ViIG0gbWluX2ludClcblxubGV0IG1pbiB4IHkgOiB0ID0gaWYgeCA8PSB5IHRoZW4geCBlbHNlIHlcbmxldCBtYXggeCB5IDogdCA9IGlmIHggPj0geSB0aGVuIHggZWxzZSB5XG5cbigqIFVuc2lnbmVkIGRpdmlzaW9uIGZyb20gc2lnbmVkIGRpdmlzaW9uIG9mIHRoZSBzYW1lXG4gICBiaXRuZXNzLiBTZWUgV2FycmVuIEpyLiwgSGVucnkgUy4gKDIwMTMpLiBIYWNrZXIncyBEZWxpZ2h0ICgyIGVkLiksIFNlYyA5LTMuXG4qKVxubGV0IHVuc2lnbmVkX2RpdiBuIGQgPVxuICBpZiBkIDwgemVybyB0aGVuXG4gICAgaWYgdW5zaWduZWRfY29tcGFyZSBuIGQgPCAwIHRoZW4gemVybyBlbHNlIG9uZVxuICBlbHNlXG4gICAgbGV0IHEgPSBzaGlmdF9sZWZ0IChkaXYgKHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgbiAxKSBkKSAxIGluXG4gICAgbGV0IHIgPSBzdWIgbiAobXVsIHEgZCkgaW5cbiAgICBpZiB1bnNpZ25lZF9jb21wYXJlIHIgZCA+PSAwIHRoZW4gc3VjYyBxIGVsc2UgcVxuXG5sZXQgdW5zaWduZWRfcmVtIG4gZCA9XG4gIHN1YiBuIChtdWwgKHVuc2lnbmVkX2RpdiBuIGQpIGQpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIE1vZHVsZSBbTmF0aXZlaW50XTogcHJvY2Vzc29yLW5hdGl2ZSBpbnRlZ2VycyAqKVxuXG5leHRlcm5hbCBuZWc6IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfbmVnXCJcbmV4dGVybmFsIGFkZDogbmF0aXZlaW50IC0+IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfYWRkXCJcbmV4dGVybmFsIHN1YjogbmF0aXZlaW50IC0+IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfc3ViXCJcbmV4dGVybmFsIG11bDogbmF0aXZlaW50IC0+IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfbXVsXCJcbmV4dGVybmFsIGRpdjogbmF0aXZlaW50IC0+IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfZGl2XCJcbmV4dGVybmFsIHJlbTogbmF0aXZlaW50IC0+IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfbW9kXCJcbmV4dGVybmFsIGxvZ2FuZDogbmF0aXZlaW50IC0+IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfYW5kXCJcbmV4dGVybmFsIGxvZ29yOiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9vclwiXG5leHRlcm5hbCBsb2d4b3I6IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X3hvclwiXG5leHRlcm5hbCBzaGlmdF9sZWZ0OiBuYXRpdmVpbnQgLT4gaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9sc2xcIlxuZXh0ZXJuYWwgc2hpZnRfcmlnaHQ6IG5hdGl2ZWludCAtPiBpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X2FzclwiXG5leHRlcm5hbCBzaGlmdF9yaWdodF9sb2dpY2FsOiBuYXRpdmVpbnQgLT4gaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9sc3JcIlxuZXh0ZXJuYWwgb2ZfaW50OiBpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X29mX2ludFwiXG5leHRlcm5hbCB0b19pbnQ6IG5hdGl2ZWludCAtPiBpbnQgPSBcIiVuYXRpdmVpbnRfdG9faW50XCJcbmV4dGVybmFsIG9mX2Zsb2F0IDogZmxvYXQgLT4gbmF0aXZlaW50XG4gID0gXCJjYW1sX25hdGl2ZWludF9vZl9mbG9hdFwiIFwiY2FtbF9uYXRpdmVpbnRfb2ZfZmxvYXRfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB0b19mbG9hdCA6IG5hdGl2ZWludCAtPiBmbG9hdFxuICA9IFwiY2FtbF9uYXRpdmVpbnRfdG9fZmxvYXRcIiBcImNhbWxfbmF0aXZlaW50X3RvX2Zsb2F0X3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgb2ZfaW50MzI6IGludDMyIC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9vZl9pbnQzMlwiXG5leHRlcm5hbCB0b19pbnQzMjogbmF0aXZlaW50IC0+IGludDMyID0gXCIlbmF0aXZlaW50X3RvX2ludDMyXCJcblxubGV0IHplcm8gPSAwblxubGV0IG9uZSA9IDFuXG5sZXQgbWludXNfb25lID0gLTFuXG5sZXQgc3VjYyBuID0gYWRkIG4gMW5cbmxldCBwcmVkIG4gPSBzdWIgbiAxblxubGV0IGFicyBuID0gaWYgbiA+PSAwbiB0aGVuIG4gZWxzZSBuZWcgblxubGV0IHNpemUgPSBTeXMud29yZF9zaXplXG5sZXQgbWluX2ludCA9IHNoaWZ0X2xlZnQgMW4gKHNpemUgLSAxKVxubGV0IG1heF9pbnQgPSBzdWIgbWluX2ludCAxblxubGV0IGxvZ25vdCBuID0gbG9neG9yIG4gKC0xbilcblxubGV0IHVuc2lnbmVkX3RvX2ludCA9XG4gIGxldCBtYXhfaW50ID0gb2ZfaW50IFN0ZGxpYi5tYXhfaW50IGluXG4gIGZ1biBuIC0+XG4gICAgaWYgY29tcGFyZSB6ZXJvIG4gPD0gMCAmJiBjb21wYXJlIG4gbWF4X2ludCA8PSAwIHRoZW5cbiAgICAgIFNvbWUgKHRvX2ludCBuKVxuICAgIGVsc2VcbiAgICAgIE5vbmVcblxuZXh0ZXJuYWwgZm9ybWF0IDogc3RyaW5nIC0+IG5hdGl2ZWludCAtPiBzdHJpbmcgPSBcImNhbWxfbmF0aXZlaW50X2Zvcm1hdFwiXG5sZXQgdG9fc3RyaW5nIG4gPSBmb3JtYXQgXCIlZFwiIG5cblxuZXh0ZXJuYWwgb2Zfc3RyaW5nOiBzdHJpbmcgLT4gbmF0aXZlaW50ID0gXCJjYW1sX25hdGl2ZWludF9vZl9zdHJpbmdcIlxuXG5sZXQgb2Zfc3RyaW5nX29wdCBzID1cbiAgKCogVE9ETzogZXhwb3NlIGEgbm9uLXJhaXNpbmcgcHJpbWl0aXZlIGRpcmVjdGx5LiAqKVxuICB0cnkgU29tZSAob2Zfc3RyaW5nIHMpXG4gIHdpdGggRmFpbHVyZSBfIC0+IE5vbmVcblxudHlwZSB0ID0gbmF0aXZlaW50XG5cbmxldCBjb21wYXJlICh4OiB0KSAoeTogdCkgPSBTdGRsaWIuY29tcGFyZSB4IHlcbmxldCBlcXVhbCAoeDogdCkgKHk6IHQpID0gY29tcGFyZSB4IHkgPSAwXG5cbmxldCB1bnNpZ25lZF9jb21wYXJlIG4gbSA9XG4gIGNvbXBhcmUgKHN1YiBuIG1pbl9pbnQpIChzdWIgbSBtaW5faW50KVxuXG5sZXQgbWluIHggeSA6IHQgPSBpZiB4IDw9IHkgdGhlbiB4IGVsc2UgeVxubGV0IG1heCB4IHkgOiB0ID0gaWYgeCA+PSB5IHRoZW4geCBlbHNlIHlcblxuKCogVW5zaWduZWQgZGl2aXNpb24gZnJvbSBzaWduZWQgZGl2aXNpb24gb2YgdGhlIHNhbWVcbiAgIGJpdG5lc3MuIFNlZSBXYXJyZW4gSnIuLCBIZW5yeSBTLiAoMjAxMykuIEhhY2tlcidzIERlbGlnaHQgKDIgZWQuKSwgU2VjIDktMy5cbiopXG5sZXQgdW5zaWduZWRfZGl2IG4gZCA9XG4gIGlmIGQgPCB6ZXJvIHRoZW5cbiAgICBpZiB1bnNpZ25lZF9jb21wYXJlIG4gZCA8IDAgdGhlbiB6ZXJvIGVsc2Ugb25lXG4gIGVsc2VcbiAgICBsZXQgcSA9IHNoaWZ0X2xlZnQgKGRpdiAoc2hpZnRfcmlnaHRfbG9naWNhbCBuIDEpIGQpIDEgaW5cbiAgICBsZXQgciA9IHN1YiBuIChtdWwgcSBkKSBpblxuICAgIGlmIHVuc2lnbmVkX2NvbXBhcmUgciBkID49IDAgdGhlbiBzdWNjIHEgZWxzZSBxXG5cbmxldCB1bnNpZ25lZF9yZW0gbiBkID1cbiAgc3ViIG4gKG11bCAodW5zaWduZWRfZGl2IG4gZCkgZClcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogVGhlIHJ1bi10aW1lIGxpYnJhcnkgZm9yIGxleGVycyBnZW5lcmF0ZWQgYnkgY2FtbGxleCAqKVxuXG50eXBlIHBvc2l0aW9uID0ge1xuICBwb3NfZm5hbWUgOiBzdHJpbmc7XG4gIHBvc19sbnVtIDogaW50O1xuICBwb3NfYm9sIDogaW50O1xuICBwb3NfY251bSA6IGludDtcbn1cblxubGV0IGR1bW15X3BvcyA9IHtcbiAgcG9zX2ZuYW1lID0gXCJcIjtcbiAgcG9zX2xudW0gPSAwO1xuICBwb3NfYm9sID0gMDtcbiAgcG9zX2NudW0gPSAtMTtcbn1cblxudHlwZSBsZXhidWYgPVxuICB7IHJlZmlsbF9idWZmIDogbGV4YnVmIC0+IHVuaXQ7XG4gICAgbXV0YWJsZSBsZXhfYnVmZmVyIDogYnl0ZXM7XG4gICAgbXV0YWJsZSBsZXhfYnVmZmVyX2xlbiA6IGludDtcbiAgICBtdXRhYmxlIGxleF9hYnNfcG9zIDogaW50O1xuICAgIG11dGFibGUgbGV4X3N0YXJ0X3BvcyA6IGludDtcbiAgICBtdXRhYmxlIGxleF9jdXJyX3BvcyA6IGludDtcbiAgICBtdXRhYmxlIGxleF9sYXN0X3BvcyA6IGludDtcbiAgICBtdXRhYmxlIGxleF9sYXN0X2FjdGlvbiA6IGludDtcbiAgICBtdXRhYmxlIGxleF9lb2ZfcmVhY2hlZCA6IGJvb2w7XG4gICAgbXV0YWJsZSBsZXhfbWVtIDogaW50IGFycmF5O1xuICAgIG11dGFibGUgbGV4X3N0YXJ0X3AgOiBwb3NpdGlvbjtcbiAgICBtdXRhYmxlIGxleF9jdXJyX3AgOiBwb3NpdGlvbjtcbiAgfVxuXG50eXBlIGxleF90YWJsZXMgPVxuICB7IGxleF9iYXNlOiBzdHJpbmc7XG4gICAgbGV4X2JhY2t0cms6IHN0cmluZztcbiAgICBsZXhfZGVmYXVsdDogc3RyaW5nO1xuICAgIGxleF90cmFuczogc3RyaW5nO1xuICAgIGxleF9jaGVjazogc3RyaW5nO1xuICAgIGxleF9iYXNlX2NvZGUgOiBzdHJpbmc7XG4gICAgbGV4X2JhY2t0cmtfY29kZSA6IHN0cmluZztcbiAgICBsZXhfZGVmYXVsdF9jb2RlIDogc3RyaW5nO1xuICAgIGxleF90cmFuc19jb2RlIDogc3RyaW5nO1xuICAgIGxleF9jaGVja19jb2RlIDogc3RyaW5nO1xuICAgIGxleF9jb2RlOiBzdHJpbmc7fVxuXG5leHRlcm5hbCBjX2VuZ2luZSA6IGxleF90YWJsZXMgLT4gaW50IC0+IGxleGJ1ZiAtPiBpbnQgPSBcImNhbWxfbGV4X2VuZ2luZVwiXG5leHRlcm5hbCBjX25ld19lbmdpbmUgOiBsZXhfdGFibGVzIC0+IGludCAtPiBsZXhidWYgLT4gaW50XG4gICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfbmV3X2xleF9lbmdpbmVcIlxuXG5sZXQgZW5naW5lIHRibCBzdGF0ZSBidWYgPVxuICBsZXQgcmVzdWx0ID0gY19lbmdpbmUgdGJsIHN0YXRlIGJ1ZiBpblxuICBpZiByZXN1bHQgPj0gMCAmJiBidWYubGV4X2N1cnJfcCAhPSBkdW1teV9wb3MgdGhlbiBiZWdpblxuICAgIGJ1Zi5sZXhfc3RhcnRfcCA8LSBidWYubGV4X2N1cnJfcDtcbiAgICBidWYubGV4X2N1cnJfcCA8LSB7YnVmLmxleF9jdXJyX3BcbiAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBwb3NfY251bSA9IGJ1Zi5sZXhfYWJzX3BvcyArIGJ1Zi5sZXhfY3Vycl9wb3N9O1xuICBlbmQ7XG4gIHJlc3VsdFxuXG5cbmxldCBuZXdfZW5naW5lIHRibCBzdGF0ZSBidWYgPVxuICBsZXQgcmVzdWx0ID0gY19uZXdfZW5naW5lIHRibCBzdGF0ZSBidWYgaW5cbiAgaWYgcmVzdWx0ID49IDAgJiYgYnVmLmxleF9jdXJyX3AgIT0gZHVtbXlfcG9zIHRoZW4gYmVnaW5cbiAgICBidWYubGV4X3N0YXJ0X3AgPC0gYnVmLmxleF9jdXJyX3A7XG4gICAgYnVmLmxleF9jdXJyX3AgPC0ge2J1Zi5sZXhfY3Vycl9wXG4gICAgICAgICAgICAgICAgICAgICAgIHdpdGggcG9zX2NudW0gPSBidWYubGV4X2Fic19wb3MgKyBidWYubGV4X2N1cnJfcG9zfTtcbiAgZW5kO1xuICByZXN1bHRcblxubGV0IGxleF9yZWZpbGwgcmVhZF9mdW4gYXV4X2J1ZmZlciBsZXhidWYgPVxuICBsZXQgcmVhZCA9XG4gICAgcmVhZF9mdW4gYXV4X2J1ZmZlciAoQnl0ZXMubGVuZ3RoIGF1eF9idWZmZXIpIGluXG4gIGxldCBuID1cbiAgICBpZiByZWFkID4gMFxuICAgIHRoZW4gcmVhZFxuICAgIGVsc2UgKGxleGJ1Zi5sZXhfZW9mX3JlYWNoZWQgPC0gdHJ1ZTsgMCkgaW5cbiAgKCogQ3VycmVudCBzdGF0ZSBvZiB0aGUgYnVmZmVyOlxuICAgICAgICA8LS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0+XG4gICAgICAgIHwgIGp1bmsgfCAgICAgIHZhbGlkIGRhdGEgICAgIHwgICBqdW5rICAgIHxcbiAgICAgICAgXiAgICAgICBeICAgICAgICAgICAgICAgICAgICAgXiAgICAgICAgICAgXlxuICAgICAgICAwICAgIHN0YXJ0X3BvcyAgICAgICAgICAgICBidWZmZXJfZW5kICAgIEJ5dGVzLmxlbmd0aCBidWZmZXJcbiAgKilcbiAgaWYgbGV4YnVmLmxleF9idWZmZXJfbGVuICsgbiA+IEJ5dGVzLmxlbmd0aCBsZXhidWYubGV4X2J1ZmZlciB0aGVuIGJlZ2luXG4gICAgKCogVGhlcmUgaXMgbm90IGVub3VnaCBzcGFjZSBhdCB0aGUgZW5kIG9mIHRoZSBidWZmZXIgKilcbiAgICBpZiBsZXhidWYubGV4X2J1ZmZlcl9sZW4gLSBsZXhidWYubGV4X3N0YXJ0X3BvcyArIG5cbiAgICAgICA8PSBCeXRlcy5sZW5ndGggbGV4YnVmLmxleF9idWZmZXJcbiAgICB0aGVuIGJlZ2luXG4gICAgICAoKiBCdXQgdGhlcmUgaXMgZW5vdWdoIHNwYWNlIGlmIHdlIHJlY2xhaW0gdGhlIGp1bmsgYXQgdGhlIGJlZ2lubmluZ1xuICAgICAgICAgb2YgdGhlIGJ1ZmZlciAqKVxuICAgICAgQnl0ZXMuYmxpdCBsZXhidWYubGV4X2J1ZmZlciBsZXhidWYubGV4X3N0YXJ0X3Bvc1xuICAgICAgICAgICAgICAgICAgbGV4YnVmLmxleF9idWZmZXIgMFxuICAgICAgICAgICAgICAgICAgKGxleGJ1Zi5sZXhfYnVmZmVyX2xlbiAtIGxleGJ1Zi5sZXhfc3RhcnRfcG9zKVxuICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICAoKiBXZSBtdXN0IGdyb3cgdGhlIGJ1ZmZlci4gIERvdWJsaW5nIGl0cyBzaXplIHdpbGwgcHJvdmlkZSBlbm91Z2hcbiAgICAgICAgIHNwYWNlIHNpbmNlIG4gPD0gU3RyaW5nLmxlbmd0aCBhdXhfYnVmZmVyIDw9IFN0cmluZy5sZW5ndGggYnVmZmVyLlxuICAgICAgICAgV2F0Y2ggb3V0IGZvciBzdHJpbmcgbGVuZ3RoIG92ZXJmbG93LCB0aG91Z2guICopXG4gICAgICBsZXQgbmV3bGVuID1cbiAgICAgICAgSW50Lm1pbiAoMiAqIEJ5dGVzLmxlbmd0aCBsZXhidWYubGV4X2J1ZmZlcikgU3lzLm1heF9zdHJpbmdfbGVuZ3RoIGluXG4gICAgICBpZiBsZXhidWYubGV4X2J1ZmZlcl9sZW4gLSBsZXhidWYubGV4X3N0YXJ0X3BvcyArIG4gPiBuZXdsZW5cbiAgICAgIHRoZW4gZmFpbHdpdGggXCJMZXhpbmcubGV4X3JlZmlsbDogY2Fubm90IGdyb3cgYnVmZmVyXCI7XG4gICAgICBsZXQgbmV3YnVmID0gQnl0ZXMuY3JlYXRlIG5ld2xlbiBpblxuICAgICAgKCogQ29weSB0aGUgdmFsaWQgZGF0YSB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBuZXcgYnVmZmVyICopXG4gICAgICBCeXRlcy5ibGl0IGxleGJ1Zi5sZXhfYnVmZmVyIGxleGJ1Zi5sZXhfc3RhcnRfcG9zXG4gICAgICAgICAgICAgICAgICBuZXdidWYgMFxuICAgICAgICAgICAgICAgICAgKGxleGJ1Zi5sZXhfYnVmZmVyX2xlbiAtIGxleGJ1Zi5sZXhfc3RhcnRfcG9zKTtcbiAgICAgIGxleGJ1Zi5sZXhfYnVmZmVyIDwtIG5ld2J1ZlxuICAgIGVuZDtcbiAgICAoKiBSZWFsbG9jYXRpb24gb3Igbm90LCB3ZSBoYXZlIHNoaWZ0ZWQgdGhlIGRhdGEgbGVmdCBieVxuICAgICAgIHN0YXJ0X3BvcyBjaGFyYWN0ZXJzOyB1cGRhdGUgdGhlIHBvc2l0aW9ucyAqKVxuICAgIGxldCBzID0gbGV4YnVmLmxleF9zdGFydF9wb3MgaW5cbiAgICBsZXhidWYubGV4X2Fic19wb3MgPC0gbGV4YnVmLmxleF9hYnNfcG9zICsgcztcbiAgICBsZXhidWYubGV4X2N1cnJfcG9zIDwtIGxleGJ1Zi5sZXhfY3Vycl9wb3MgLSBzO1xuICAgIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIDwtIDA7XG4gICAgbGV4YnVmLmxleF9sYXN0X3BvcyA8LSBsZXhidWYubGV4X2xhc3RfcG9zIC0gcztcbiAgICBsZXhidWYubGV4X2J1ZmZlcl9sZW4gPC0gbGV4YnVmLmxleF9idWZmZXJfbGVuIC0gcyA7XG4gICAgbGV0IHQgPSBsZXhidWYubGV4X21lbSBpblxuICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggdC0xIGRvXG4gICAgICBsZXQgdiA9IHQuKGkpIGluXG4gICAgICBpZiB2ID49IDAgdGhlblxuICAgICAgICB0LihpKSA8LSB2LXNcbiAgICBkb25lXG4gIGVuZDtcbiAgKCogVGhlcmUgaXMgbm93IGVub3VnaCBzcGFjZSBhdCB0aGUgZW5kIG9mIHRoZSBidWZmZXIgKilcbiAgQnl0ZXMuYmxpdCBhdXhfYnVmZmVyIDAgbGV4YnVmLmxleF9idWZmZXIgbGV4YnVmLmxleF9idWZmZXJfbGVuIG47XG4gIGxleGJ1Zi5sZXhfYnVmZmVyX2xlbiA8LSBsZXhidWYubGV4X2J1ZmZlcl9sZW4gKyBuXG5cbmxldCB6ZXJvX3BvcyA9IHtcbiAgcG9zX2ZuYW1lID0gXCJcIjtcbiAgcG9zX2xudW0gPSAxO1xuICBwb3NfYm9sID0gMDtcbiAgcG9zX2NudW0gPSAwO1xufVxuXG5sZXQgZnJvbV9mdW5jdGlvbiA/KHdpdGhfcG9zaXRpb25zID0gdHJ1ZSkgZiA9XG4gIHsgcmVmaWxsX2J1ZmYgPSBsZXhfcmVmaWxsIGYgKEJ5dGVzLmNyZWF0ZSA1MTIpO1xuICAgIGxleF9idWZmZXIgPSBCeXRlcy5jcmVhdGUgMTAyNDtcbiAgICBsZXhfYnVmZmVyX2xlbiA9IDA7XG4gICAgbGV4X2Fic19wb3MgPSAwO1xuICAgIGxleF9zdGFydF9wb3MgPSAwO1xuICAgIGxleF9jdXJyX3BvcyA9IDA7XG4gICAgbGV4X2xhc3RfcG9zID0gMDtcbiAgICBsZXhfbGFzdF9hY3Rpb24gPSAwO1xuICAgIGxleF9tZW0gPSBbfHxdO1xuICAgIGxleF9lb2ZfcmVhY2hlZCA9IGZhbHNlO1xuICAgIGxleF9zdGFydF9wID0gaWYgd2l0aF9wb3NpdGlvbnMgdGhlbiB6ZXJvX3BvcyBlbHNlIGR1bW15X3BvcztcbiAgICBsZXhfY3Vycl9wID0gaWYgd2l0aF9wb3NpdGlvbnMgdGhlbiB6ZXJvX3BvcyBlbHNlIGR1bW15X3BvcztcbiAgfVxuXG5sZXQgZnJvbV9jaGFubmVsID93aXRoX3Bvc2l0aW9ucyBpYyA9XG4gIGZyb21fZnVuY3Rpb24gP3dpdGhfcG9zaXRpb25zIChmdW4gYnVmIG4gLT4gaW5wdXQgaWMgYnVmIDAgbilcblxubGV0IGZyb21fc3RyaW5nID8od2l0aF9wb3NpdGlvbnMgPSB0cnVlKSBzID1cbiAgeyByZWZpbGxfYnVmZiA9IChmdW4gbGV4YnVmIC0+IGxleGJ1Zi5sZXhfZW9mX3JlYWNoZWQgPC0gdHJ1ZSk7XG4gICAgbGV4X2J1ZmZlciA9IEJ5dGVzLm9mX3N0cmluZyBzOyAoKiBoYXZlIHRvIG1ha2UgYSBjb3B5IGZvciBjb21wYXRpYmlsaXR5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIHVuc2FmZS1zdHJpbmcgbW9kZSAqKVxuICAgIGxleF9idWZmZXJfbGVuID0gU3RyaW5nLmxlbmd0aCBzO1xuICAgIGxleF9hYnNfcG9zID0gMDtcbiAgICBsZXhfc3RhcnRfcG9zID0gMDtcbiAgICBsZXhfY3Vycl9wb3MgPSAwO1xuICAgIGxleF9sYXN0X3BvcyA9IDA7XG4gICAgbGV4X2xhc3RfYWN0aW9uID0gMDtcbiAgICBsZXhfbWVtID0gW3x8XTtcbiAgICBsZXhfZW9mX3JlYWNoZWQgPSB0cnVlO1xuICAgIGxleF9zdGFydF9wID0gaWYgd2l0aF9wb3NpdGlvbnMgdGhlbiB6ZXJvX3BvcyBlbHNlIGR1bW15X3BvcztcbiAgICBsZXhfY3Vycl9wID0gaWYgd2l0aF9wb3NpdGlvbnMgdGhlbiB6ZXJvX3BvcyBlbHNlIGR1bW15X3BvcztcbiAgfVxuXG5sZXQgc2V0X3Bvc2l0aW9uIGxleGJ1ZiBwb3NpdGlvbiA9XG4gIGxleGJ1Zi5sZXhfY3Vycl9wICA8LSB7cG9zaXRpb24gd2l0aCBwb3NfZm5hbWUgPSBsZXhidWYubGV4X2N1cnJfcC5wb3NfZm5hbWV9O1xuICBsZXhidWYubGV4X2Fic19wb3MgPC0gcG9zaXRpb24ucG9zX2NudW1cblxubGV0IHNldF9maWxlbmFtZSBsZXhidWYgZm5hbWUgPVxuICBsZXhidWYubGV4X2N1cnJfcCA8LSB7bGV4YnVmLmxleF9jdXJyX3Agd2l0aCBwb3NfZm5hbWUgPSBmbmFtZX1cblxubGV0IHdpdGhfcG9zaXRpb25zIGxleGJ1ZiA9IGxleGJ1Zi5sZXhfY3Vycl9wICE9IGR1bW15X3Bvc1xuXG5sZXQgbGV4ZW1lIGxleGJ1ZiA9XG4gIGxldCBsZW4gPSBsZXhidWYubGV4X2N1cnJfcG9zIC0gbGV4YnVmLmxleF9zdGFydF9wb3MgaW5cbiAgQnl0ZXMuc3ViX3N0cmluZyBsZXhidWYubGV4X2J1ZmZlciBsZXhidWYubGV4X3N0YXJ0X3BvcyBsZW5cblxubGV0IHN1Yl9sZXhlbWUgbGV4YnVmIGkxIGkyID1cbiAgbGV0IGxlbiA9IGkyLWkxIGluXG4gIEJ5dGVzLnN1Yl9zdHJpbmcgbGV4YnVmLmxleF9idWZmZXIgaTEgbGVuXG5cbmxldCBzdWJfbGV4ZW1lX29wdCBsZXhidWYgaTEgaTIgPVxuICBpZiBpMSA+PSAwIHRoZW4gYmVnaW5cbiAgICBsZXQgbGVuID0gaTItaTEgaW5cbiAgICBTb21lIChCeXRlcy5zdWJfc3RyaW5nIGxleGJ1Zi5sZXhfYnVmZmVyIGkxIGxlbilcbiAgZW5kIGVsc2UgYmVnaW5cbiAgICBOb25lXG4gIGVuZFxuXG5sZXQgc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiBpID0gQnl0ZXMuZ2V0IGxleGJ1Zi5sZXhfYnVmZmVyIGlcblxubGV0IHN1Yl9sZXhlbWVfY2hhcl9vcHQgbGV4YnVmIGkgPVxuICBpZiBpID49IDAgdGhlblxuICAgIFNvbWUgKEJ5dGVzLmdldCBsZXhidWYubGV4X2J1ZmZlciBpKVxuICBlbHNlXG4gICAgTm9uZVxuXG5cbmxldCBsZXhlbWVfY2hhciBsZXhidWYgaSA9XG4gIEJ5dGVzLmdldCBsZXhidWYubGV4X2J1ZmZlciAobGV4YnVmLmxleF9zdGFydF9wb3MgKyBpKVxuXG5sZXQgbGV4ZW1lX3N0YXJ0IGxleGJ1ZiA9IGxleGJ1Zi5sZXhfc3RhcnRfcC5wb3NfY251bVxubGV0IGxleGVtZV9lbmQgbGV4YnVmID0gbGV4YnVmLmxleF9jdXJyX3AucG9zX2NudW1cblxubGV0IGxleGVtZV9zdGFydF9wIGxleGJ1ZiA9IGxleGJ1Zi5sZXhfc3RhcnRfcFxubGV0IGxleGVtZV9lbmRfcCBsZXhidWYgPSBsZXhidWYubGV4X2N1cnJfcFxuXG5sZXQgbmV3X2xpbmUgbGV4YnVmID1cbiAgbGV0IGxjcCA9IGxleGJ1Zi5sZXhfY3Vycl9wIGluXG4gIGlmIGxjcCAhPSBkdW1teV9wb3MgdGhlblxuICAgIGxleGJ1Zi5sZXhfY3Vycl9wIDwtXG4gICAgICB7IGxjcCB3aXRoXG4gICAgICAgIHBvc19sbnVtID0gbGNwLnBvc19sbnVtICsgMTtcbiAgICAgICAgcG9zX2JvbCA9IGxjcC5wb3NfY251bTtcbiAgICAgIH1cblxuXG5cbigqIERpc2NhcmQgZGF0YSBsZWZ0IGluIGxleGVyIGJ1ZmZlci4gKilcblxubGV0IGZsdXNoX2lucHV0IGxiID1cbiAgbGIubGV4X2N1cnJfcG9zIDwtIDA7XG4gIGxiLmxleF9hYnNfcG9zIDwtIDA7XG4gIGxldCBsY3AgPSBsYi5sZXhfY3Vycl9wIGluXG4gIGlmIGxjcCAhPSBkdW1teV9wb3MgdGhlblxuICAgIGxiLmxleF9jdXJyX3AgPC0ge3plcm9fcG9zIHdpdGggcG9zX2ZuYW1lID0gbGNwLnBvc19mbmFtZX07XG4gIGxiLmxleF9idWZmZXJfbGVuIDwtIDA7XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIFRoZSBwYXJzaW5nIGVuZ2luZSAqKVxuXG5vcGVuIExleGluZ1xuXG4oKiBJbnRlcm5hbCBpbnRlcmZhY2UgdG8gdGhlIHBhcnNpbmcgZW5naW5lICopXG5cbnR5cGUgcGFyc2VyX2VudiA9XG4gIHsgbXV0YWJsZSBzX3N0YWNrIDogaW50IGFycmF5OyAgICAgICAgKCogU3RhdGVzICopXG4gICAgbXV0YWJsZSB2X3N0YWNrIDogT2JqLnQgYXJyYXk7ICAgICAgKCogU2VtYW50aWMgYXR0cmlidXRlcyAqKVxuICAgIG11dGFibGUgc3ltYl9zdGFydF9zdGFjayA6IHBvc2l0aW9uIGFycmF5OyAoKiBTdGFydCBwb3NpdGlvbnMgKilcbiAgICBtdXRhYmxlIHN5bWJfZW5kX3N0YWNrIDogcG9zaXRpb24gYXJyYXk7ICAgKCogRW5kIHBvc2l0aW9ucyAqKVxuICAgIG11dGFibGUgc3RhY2tzaXplIDogaW50OyAgICAgICAgICAgICgqIFNpemUgb2YgdGhlIHN0YWNrcyAqKVxuICAgIG11dGFibGUgc3RhY2tiYXNlIDogaW50OyAgICAgICAgICAgICgqIEJhc2Ugc3AgZm9yIGN1cnJlbnQgcGFyc2UgKilcbiAgICBtdXRhYmxlIGN1cnJfY2hhciA6IGludDsgICAgICAgICAgICAoKiBMYXN0IHRva2VuIHJlYWQgKilcbiAgICBtdXRhYmxlIGx2YWwgOiBPYmoudDsgICAgICAgICAgICAgICAoKiBJdHMgc2VtYW50aWMgYXR0cmlidXRlICopXG4gICAgbXV0YWJsZSBzeW1iX3N0YXJ0IDogcG9zaXRpb247ICAgICAgKCogU3RhcnQgcG9zLiBvZiB0aGUgY3VycmVudCBzeW1ib2wqKVxuICAgIG11dGFibGUgc3ltYl9lbmQgOiBwb3NpdGlvbjsgICAgICAgICgqIEVuZCBwb3MuIG9mIHRoZSBjdXJyZW50IHN5bWJvbCAqKVxuICAgIG11dGFibGUgYXNwIDogaW50OyAgICAgICAgICAgICAgICAgICgqIFRoZSBzdGFjayBwb2ludGVyIGZvciBhdHRyaWJ1dGVzICopXG4gICAgbXV0YWJsZSBydWxlX2xlbiA6IGludDsgICAgICAgICAgICAgKCogTnVtYmVyIG9mIHJocyBpdGVtcyBpbiB0aGUgcnVsZSAqKVxuICAgIG11dGFibGUgcnVsZV9udW1iZXIgOiBpbnQ7ICAgICAgICAgICgqIFJ1bGUgbnVtYmVyIHRvIHJlZHVjZSBieSAqKVxuICAgIG11dGFibGUgc3AgOiBpbnQ7ICAgICAgICAgICAgICAgICAgICgqIFNhdmVkIHNwIGZvciBwYXJzZV9lbmdpbmUgKilcbiAgICBtdXRhYmxlIHN0YXRlIDogaW50OyAgICAgICAgICAgICAgICAoKiBTYXZlZCBzdGF0ZSBmb3IgcGFyc2VfZW5naW5lICopXG4gICAgbXV0YWJsZSBlcnJmbGFnIDogaW50IH0gICAgICAgICAgICAgKCogU2F2ZWQgZXJyb3IgZmxhZyBmb3IgcGFyc2VfZW5naW5lICopXG5bQEB3YXJuaW5nIFwiLXVudXNlZC1maWVsZFwiXVxuXG50eXBlIHBhcnNlX3RhYmxlcyA9XG4gIHsgYWN0aW9ucyA6IChwYXJzZXJfZW52IC0+IE9iai50KSBhcnJheTtcbiAgICB0cmFuc2xfY29uc3QgOiBpbnQgYXJyYXk7XG4gICAgdHJhbnNsX2Jsb2NrIDogaW50IGFycmF5O1xuICAgIGxocyA6IHN0cmluZztcbiAgICBsZW4gOiBzdHJpbmc7XG4gICAgZGVmcmVkIDogc3RyaW5nO1xuICAgIGRnb3RvIDogc3RyaW5nO1xuICAgIHNpbmRleCA6IHN0cmluZztcbiAgICByaW5kZXggOiBzdHJpbmc7XG4gICAgZ2luZGV4IDogc3RyaW5nO1xuICAgIHRhYmxlc2l6ZSA6IGludDtcbiAgICB0YWJsZSA6IHN0cmluZztcbiAgICBjaGVjayA6IHN0cmluZztcbiAgICBlcnJvcl9mdW5jdGlvbiA6IHN0cmluZyAtPiB1bml0O1xuICAgIG5hbWVzX2NvbnN0IDogc3RyaW5nO1xuICAgIG5hbWVzX2Jsb2NrIDogc3RyaW5nIH1cblxuZXhjZXB0aW9uIFlZZXhpdCBvZiBPYmoudFxuZXhjZXB0aW9uIFBhcnNlX2Vycm9yXG5cbnR5cGUgcGFyc2VyX2lucHV0ID1cbiAgICBTdGFydFxuICB8IFRva2VuX3JlYWRcbiAgfCBTdGFja3NfZ3Jvd25fMVxuICB8IFN0YWNrc19ncm93bl8yXG4gIHwgU2VtYW50aWNfYWN0aW9uX2NvbXB1dGVkXG4gIHwgRXJyb3JfZGV0ZWN0ZWRcblxudHlwZSBwYXJzZXJfb3V0cHV0ID1cbiAgICBSZWFkX3Rva2VuXG4gIHwgUmFpc2VfcGFyc2VfZXJyb3JcbiAgfCBHcm93X3N0YWNrc18xXG4gIHwgR3Jvd19zdGFja3NfMlxuICB8IENvbXB1dGVfc2VtYW50aWNfYWN0aW9uXG4gIHwgQ2FsbF9lcnJvcl9mdW5jdGlvblxuXG4oKiB0byBhdm9pZCB3YXJuaW5ncyAqKVxubGV0IF8gPSBbUmVhZF90b2tlbjsgUmFpc2VfcGFyc2VfZXJyb3I7IEdyb3dfc3RhY2tzXzE7IEdyb3dfc3RhY2tzXzI7XG4gICAgICAgICBDb21wdXRlX3NlbWFudGljX2FjdGlvbjsgQ2FsbF9lcnJvcl9mdW5jdGlvbl1cblxuZXh0ZXJuYWwgcGFyc2VfZW5naW5lIDpcbiAgICBwYXJzZV90YWJsZXMgLT4gcGFyc2VyX2VudiAtPiBwYXJzZXJfaW5wdXQgLT4gT2JqLnQgLT4gcGFyc2VyX291dHB1dFxuICAgID0gXCJjYW1sX3BhcnNlX2VuZ2luZVwiXG5cbmV4dGVybmFsIHNldF90cmFjZTogYm9vbCAtPiBib29sXG4gICAgPSBcImNhbWxfc2V0X3BhcnNlcl90cmFjZVwiXG5cbmxldCBlbnYgPVxuICB7IHNfc3RhY2sgPSBBcnJheS5tYWtlIDEwMCAwO1xuICAgIHZfc3RhY2sgPSBBcnJheS5tYWtlIDEwMCAoT2JqLnJlcHIgKCkpO1xuICAgIHN5bWJfc3RhcnRfc3RhY2sgPSBBcnJheS5tYWtlIDEwMCBkdW1teV9wb3M7XG4gICAgc3ltYl9lbmRfc3RhY2sgPSBBcnJheS5tYWtlIDEwMCBkdW1teV9wb3M7XG4gICAgc3RhY2tzaXplID0gMTAwO1xuICAgIHN0YWNrYmFzZSA9IDA7XG4gICAgY3Vycl9jaGFyID0gMDtcbiAgICBsdmFsID0gT2JqLnJlcHIgKCk7XG4gICAgc3ltYl9zdGFydCA9IGR1bW15X3BvcztcbiAgICBzeW1iX2VuZCA9IGR1bW15X3BvcztcbiAgICBhc3AgPSAwO1xuICAgIHJ1bGVfbGVuID0gMDtcbiAgICBydWxlX251bWJlciA9IDA7XG4gICAgc3AgPSAwO1xuICAgIHN0YXRlID0gMDtcbiAgICBlcnJmbGFnID0gMCB9XG5cbmxldCBncm93X3N0YWNrcygpID1cbiAgbGV0IG9sZHNpemUgPSBlbnYuc3RhY2tzaXplIGluXG4gIGxldCBuZXdzaXplID0gb2xkc2l6ZSAqIDIgaW5cbiAgbGV0IG5ld19zID0gQXJyYXkubWFrZSBuZXdzaXplIDBcbiAgYW5kIG5ld192ID0gQXJyYXkubWFrZSBuZXdzaXplIChPYmoucmVwciAoKSlcbiAgYW5kIG5ld19zdGFydCA9IEFycmF5Lm1ha2UgbmV3c2l6ZSBkdW1teV9wb3NcbiAgYW5kIG5ld19lbmQgPSBBcnJheS5tYWtlIG5ld3NpemUgZHVtbXlfcG9zIGluXG4gICAgQXJyYXkuYmxpdCBlbnYuc19zdGFjayAwIG5ld19zIDAgb2xkc2l6ZTtcbiAgICBlbnYuc19zdGFjayA8LSBuZXdfcztcbiAgICBBcnJheS5ibGl0IGVudi52X3N0YWNrIDAgbmV3X3YgMCBvbGRzaXplO1xuICAgIGVudi52X3N0YWNrIDwtIG5ld192O1xuICAgIEFycmF5LmJsaXQgZW52LnN5bWJfc3RhcnRfc3RhY2sgMCBuZXdfc3RhcnQgMCBvbGRzaXplO1xuICAgIGVudi5zeW1iX3N0YXJ0X3N0YWNrIDwtIG5ld19zdGFydDtcbiAgICBBcnJheS5ibGl0IGVudi5zeW1iX2VuZF9zdGFjayAwIG5ld19lbmQgMCBvbGRzaXplO1xuICAgIGVudi5zeW1iX2VuZF9zdGFjayA8LSBuZXdfZW5kO1xuICAgIGVudi5zdGFja3NpemUgPC0gbmV3c2l6ZVxuXG5sZXQgY2xlYXJfcGFyc2VyKCkgPVxuICBBcnJheS5maWxsIGVudi52X3N0YWNrIDAgZW52LnN0YWNrc2l6ZSAoT2JqLnJlcHIgKCkpO1xuICBlbnYubHZhbCA8LSBPYmoucmVwciAoKVxuXG5sZXQgY3VycmVudF9sb29rYWhlYWRfZnVuID0gcmVmIChmdW4gKF8gOiBPYmoudCkgLT4gZmFsc2UpXG5cbmxldCB5eXBhcnNlIHRhYmxlcyBzdGFydCBsZXhlciBsZXhidWYgPVxuICBsZXQgcmVjIGxvb3AgY21kIGFyZyA9XG4gICAgbWF0Y2ggcGFyc2VfZW5naW5lIHRhYmxlcyBlbnYgY21kIGFyZyB3aXRoXG4gICAgICBSZWFkX3Rva2VuIC0+XG4gICAgICAgIGxldCB0ID0gT2JqLnJlcHIobGV4ZXIgbGV4YnVmKSBpblxuICAgICAgICBlbnYuc3ltYl9zdGFydCA8LSBsZXhidWYubGV4X3N0YXJ0X3A7XG4gICAgICAgIGVudi5zeW1iX2VuZCA8LSBsZXhidWYubGV4X2N1cnJfcDtcbiAgICAgICAgbG9vcCBUb2tlbl9yZWFkIHRcbiAgICB8IFJhaXNlX3BhcnNlX2Vycm9yIC0+XG4gICAgICAgIHJhaXNlIFBhcnNlX2Vycm9yXG4gICAgfCBDb21wdXRlX3NlbWFudGljX2FjdGlvbiAtPlxuICAgICAgICBsZXQgKGFjdGlvbiwgdmFsdWUpID1cbiAgICAgICAgICB0cnlcbiAgICAgICAgICAgIChTZW1hbnRpY19hY3Rpb25fY29tcHV0ZWQsIHRhYmxlcy5hY3Rpb25zLihlbnYucnVsZV9udW1iZXIpIGVudilcbiAgICAgICAgICB3aXRoIFBhcnNlX2Vycm9yIC0+XG4gICAgICAgICAgICAoRXJyb3JfZGV0ZWN0ZWQsIE9iai5yZXByICgpKSBpblxuICAgICAgICBsb29wIGFjdGlvbiB2YWx1ZVxuICAgIHwgR3Jvd19zdGFja3NfMSAtPlxuICAgICAgICBncm93X3N0YWNrcygpOyBsb29wIFN0YWNrc19ncm93bl8xIChPYmoucmVwciAoKSlcbiAgICB8IEdyb3dfc3RhY2tzXzIgLT5cbiAgICAgICAgZ3Jvd19zdGFja3MoKTsgbG9vcCBTdGFja3NfZ3Jvd25fMiAoT2JqLnJlcHIgKCkpXG4gICAgfCBDYWxsX2Vycm9yX2Z1bmN0aW9uIC0+XG4gICAgICAgIHRhYmxlcy5lcnJvcl9mdW5jdGlvbiBcInN5bnRheCBlcnJvclwiO1xuICAgICAgICBsb29wIEVycm9yX2RldGVjdGVkIChPYmoucmVwciAoKSkgaW5cbiAgbGV0IGluaXRfYXNwID0gZW52LmFzcFxuICBhbmQgaW5pdF9zcCA9IGVudi5zcFxuICBhbmQgaW5pdF9zdGFja2Jhc2UgPSBlbnYuc3RhY2tiYXNlXG4gIGFuZCBpbml0X3N0YXRlID0gZW52LnN0YXRlXG4gIGFuZCBpbml0X2N1cnJfY2hhciA9IGVudi5jdXJyX2NoYXJcbiAgYW5kIGluaXRfbHZhbCA9IGVudi5sdmFsXG4gIGFuZCBpbml0X2VycmZsYWcgPSBlbnYuZXJyZmxhZyBpblxuICBlbnYuc3RhY2tiYXNlIDwtIGVudi5zcCArIDE7XG4gIGVudi5jdXJyX2NoYXIgPC0gc3RhcnQ7XG4gIGVudi5zeW1iX2VuZCA8LSBsZXhidWYubGV4X2N1cnJfcDtcbiAgdHJ5XG4gICAgbG9vcCBTdGFydCAoT2JqLnJlcHIgKCkpXG4gIHdpdGggZXhuIC0+XG4gICAgbGV0IGN1cnJfY2hhciA9IGVudi5jdXJyX2NoYXIgaW5cbiAgICBlbnYuYXNwIDwtIGluaXRfYXNwO1xuICAgIGVudi5zcCA8LSBpbml0X3NwO1xuICAgIGVudi5zdGFja2Jhc2UgPC0gaW5pdF9zdGFja2Jhc2U7XG4gICAgZW52LnN0YXRlIDwtIGluaXRfc3RhdGU7XG4gICAgZW52LmN1cnJfY2hhciA8LSBpbml0X2N1cnJfY2hhcjtcbiAgICBlbnYubHZhbCA8LSBpbml0X2x2YWw7XG4gICAgZW52LmVycmZsYWcgPC0gaW5pdF9lcnJmbGFnO1xuICAgIG1hdGNoIGV4biB3aXRoXG4gICAgICBZWWV4aXQgdiAtPlxuICAgICAgICBPYmoubWFnaWMgdlxuICAgIHwgXyAtPlxuICAgICAgICBjdXJyZW50X2xvb2thaGVhZF9mdW4gOj1cbiAgICAgICAgICAoZnVuIHRvayAtPlxuICAgICAgICAgICAgaWYgT2JqLmlzX2Jsb2NrIHRva1xuICAgICAgICAgICAgdGhlbiB0YWJsZXMudHJhbnNsX2Jsb2NrLihPYmoudGFnIHRvaykgPSBjdXJyX2NoYXJcbiAgICAgICAgICAgIGVsc2UgdGFibGVzLnRyYW5zbF9jb25zdC4oT2JqLm1hZ2ljIHRvaykgPSBjdXJyX2NoYXIpO1xuICAgICAgICByYWlzZSBleG5cblxubGV0IHBlZWtfdmFsIGVudiBuID1cbiAgT2JqLm1hZ2ljIGVudi52X3N0YWNrLihlbnYuYXNwIC0gbilcblxubGV0IHN5bWJvbF9zdGFydF9wb3MgKCkgPVxuICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA8PSAwIHRoZW4gZW52LnN5bWJfZW5kX3N0YWNrLihlbnYuYXNwKVxuICAgIGVsc2UgYmVnaW5cbiAgICAgIGxldCBzdCA9IGVudi5zeW1iX3N0YXJ0X3N0YWNrLihlbnYuYXNwIC0gaSArIDEpIGluXG4gICAgICBsZXQgZW4gPSBlbnYuc3ltYl9lbmRfc3RhY2suKGVudi5hc3AgLSBpICsgMSkgaW5cbiAgICAgIGlmIHN0IDw+IGVuIHRoZW4gc3QgZWxzZSBsb29wIChpIC0gMSlcbiAgICBlbmRcbiAgaW5cbiAgbG9vcCBlbnYucnVsZV9sZW5cblxubGV0IHN5bWJvbF9lbmRfcG9zICgpID0gZW52LnN5bWJfZW5kX3N0YWNrLihlbnYuYXNwKVxubGV0IHJoc19zdGFydF9wb3MgbiA9IGVudi5zeW1iX3N0YXJ0X3N0YWNrLihlbnYuYXNwIC0gKGVudi5ydWxlX2xlbiAtIG4pKVxubGV0IHJoc19lbmRfcG9zIG4gPSBlbnYuc3ltYl9lbmRfc3RhY2suKGVudi5hc3AgLSAoZW52LnJ1bGVfbGVuIC0gbikpXG5cbmxldCBzeW1ib2xfc3RhcnQgKCkgPSAoc3ltYm9sX3N0YXJ0X3BvcyAoKSkucG9zX2NudW1cbmxldCBzeW1ib2xfZW5kICgpID0gKHN5bWJvbF9lbmRfcG9zICgpKS5wb3NfY251bVxubGV0IHJoc19zdGFydCBuID0gKHJoc19zdGFydF9wb3MgbikucG9zX2NudW1cbmxldCByaHNfZW5kIG4gPSAocmhzX2VuZF9wb3MgbikucG9zX2NudW1cblxubGV0IGlzX2N1cnJlbnRfbG9va2FoZWFkIHRvayA9XG4gICghY3VycmVudF9sb29rYWhlYWRfZnVuKShPYmoucmVwciB0b2spXG5cbmxldCBwYXJzZV9lcnJvciAoXyA6IHN0cmluZykgPSAoKVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBTZXRzIG92ZXIgb3JkZXJlZCB0eXBlcyAqKVxuXG5tb2R1bGUgdHlwZSBPcmRlcmVkVHlwZSA9XG4gIHNpZ1xuICAgIHR5cGUgdFxuICAgIHZhbCBjb21wYXJlOiB0IC0+IHQgLT4gaW50XG4gIGVuZFxuXG5tb2R1bGUgdHlwZSBTID1cbiAgc2lnXG4gICAgdHlwZSBlbHRcbiAgICB0eXBlIHRcbiAgICB2YWwgZW1wdHk6IHRcbiAgICB2YWwgaXNfZW1wdHk6IHQgLT4gYm9vbFxuICAgIHZhbCBtZW06IGVsdCAtPiB0IC0+IGJvb2xcbiAgICB2YWwgYWRkOiBlbHQgLT4gdCAtPiB0XG4gICAgdmFsIHNpbmdsZXRvbjogZWx0IC0+IHRcbiAgICB2YWwgcmVtb3ZlOiBlbHQgLT4gdCAtPiB0XG4gICAgdmFsIHVuaW9uOiB0IC0+IHQgLT4gdFxuICAgIHZhbCBpbnRlcjogdCAtPiB0IC0+IHRcbiAgICB2YWwgZGlzam9pbnQ6IHQgLT4gdCAtPiBib29sXG4gICAgdmFsIGRpZmY6IHQgLT4gdCAtPiB0XG4gICAgdmFsIGNvbXBhcmU6IHQgLT4gdCAtPiBpbnRcbiAgICB2YWwgZXF1YWw6IHQgLT4gdCAtPiBib29sXG4gICAgdmFsIHN1YnNldDogdCAtPiB0IC0+IGJvb2xcbiAgICB2YWwgaXRlcjogKGVsdCAtPiB1bml0KSAtPiB0IC0+IHVuaXRcbiAgICB2YWwgbWFwOiAoZWx0IC0+IGVsdCkgLT4gdCAtPiB0XG4gICAgdmFsIGZvbGQ6IChlbHQgLT4gJ2EgLT4gJ2EpIC0+IHQgLT4gJ2EgLT4gJ2FcbiAgICB2YWwgZm9yX2FsbDogKGVsdCAtPiBib29sKSAtPiB0IC0+IGJvb2xcbiAgICB2YWwgZXhpc3RzOiAoZWx0IC0+IGJvb2wpIC0+IHQgLT4gYm9vbFxuICAgIHZhbCBmaWx0ZXI6IChlbHQgLT4gYm9vbCkgLT4gdCAtPiB0XG4gICAgdmFsIGZpbHRlcl9tYXA6IChlbHQgLT4gZWx0IG9wdGlvbikgLT4gdCAtPiB0XG4gICAgdmFsIHBhcnRpdGlvbjogKGVsdCAtPiBib29sKSAtPiB0IC0+IHQgKiB0XG4gICAgdmFsIGNhcmRpbmFsOiB0IC0+IGludFxuICAgIHZhbCBlbGVtZW50czogdCAtPiBlbHQgbGlzdFxuICAgIHZhbCBtaW5fZWx0OiB0IC0+IGVsdFxuICAgIHZhbCBtaW5fZWx0X29wdDogdCAtPiBlbHQgb3B0aW9uXG4gICAgdmFsIG1heF9lbHQ6IHQgLT4gZWx0XG4gICAgdmFsIG1heF9lbHRfb3B0OiB0IC0+IGVsdCBvcHRpb25cbiAgICB2YWwgY2hvb3NlOiB0IC0+IGVsdFxuICAgIHZhbCBjaG9vc2Vfb3B0OiB0IC0+IGVsdCBvcHRpb25cbiAgICB2YWwgc3BsaXQ6IGVsdCAtPiB0IC0+IHQgKiBib29sICogdFxuICAgIHZhbCBmaW5kOiBlbHQgLT4gdCAtPiBlbHRcbiAgICB2YWwgZmluZF9vcHQ6IGVsdCAtPiB0IC0+IGVsdCBvcHRpb25cbiAgICB2YWwgZmluZF9maXJzdDogKGVsdCAtPiBib29sKSAtPiB0IC0+IGVsdFxuICAgIHZhbCBmaW5kX2ZpcnN0X29wdDogKGVsdCAtPiBib29sKSAtPiB0IC0+IGVsdCBvcHRpb25cbiAgICB2YWwgZmluZF9sYXN0OiAoZWx0IC0+IGJvb2wpIC0+IHQgLT4gZWx0XG4gICAgdmFsIGZpbmRfbGFzdF9vcHQ6IChlbHQgLT4gYm9vbCkgLT4gdCAtPiBlbHQgb3B0aW9uXG4gICAgdmFsIG9mX2xpc3Q6IGVsdCBsaXN0IC0+IHRcbiAgICB2YWwgdG9fc2VxX2Zyb20gOiBlbHQgLT4gdCAtPiBlbHQgU2VxLnRcbiAgICB2YWwgdG9fc2VxIDogdCAtPiBlbHQgU2VxLnRcbiAgICB2YWwgdG9fcmV2X3NlcSA6IHQgLT4gZWx0IFNlcS50XG4gICAgdmFsIGFkZF9zZXEgOiBlbHQgU2VxLnQgLT4gdCAtPiB0XG4gICAgdmFsIG9mX3NlcSA6IGVsdCBTZXEudCAtPiB0XG4gIGVuZFxuXG5tb2R1bGUgTWFrZShPcmQ6IE9yZGVyZWRUeXBlKSA9XG4gIHN0cnVjdFxuICAgIHR5cGUgZWx0ID0gT3JkLnRcbiAgICB0eXBlIHQgPSBFbXB0eSB8IE5vZGUgb2Yge2w6dDsgdjplbHQ7IHI6dDsgaDppbnR9XG5cbiAgICAoKiBTZXRzIGFyZSByZXByZXNlbnRlZCBieSBiYWxhbmNlZCBiaW5hcnkgdHJlZXMgKHRoZSBoZWlnaHRzIG9mIHRoZVxuICAgICAgIGNoaWxkcmVuIGRpZmZlciBieSBhdCBtb3N0IDIgKilcblxuICAgIGxldCBoZWlnaHQgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiAwXG4gICAgICB8IE5vZGUge2h9IC0+IGhcblxuICAgICgqIENyZWF0ZXMgYSBuZXcgbm9kZSB3aXRoIGxlZnQgc29uIGwsIHZhbHVlIHYgYW5kIHJpZ2h0IHNvbiByLlxuICAgICAgIFdlIG11c3QgaGF2ZSBhbGwgZWxlbWVudHMgb2YgbCA8IHYgPCBhbGwgZWxlbWVudHMgb2Ygci5cbiAgICAgICBsIGFuZCByIG11c3QgYmUgYmFsYW5jZWQgYW5kIHwgaGVpZ2h0IGwgLSBoZWlnaHQgciB8IDw9IDIuXG4gICAgICAgSW5saW5lIGV4cGFuc2lvbiBvZiBoZWlnaHQgZm9yIGJldHRlciBzcGVlZC4gKilcblxuICAgIGxldCBjcmVhdGUgbCB2IHIgPVxuICAgICAgbGV0IGhsID0gbWF0Y2ggbCB3aXRoIEVtcHR5IC0+IDAgfCBOb2RlIHtofSAtPiBoIGluXG4gICAgICBsZXQgaHIgPSBtYXRjaCByIHdpdGggRW1wdHkgLT4gMCB8IE5vZGUge2h9IC0+IGggaW5cbiAgICAgIE5vZGV7bDsgdjsgcjsgaD0oaWYgaGwgPj0gaHIgdGhlbiBobCArIDEgZWxzZSBociArIDEpfVxuXG4gICAgKCogU2FtZSBhcyBjcmVhdGUsIGJ1dCBwZXJmb3JtcyBvbmUgc3RlcCBvZiByZWJhbGFuY2luZyBpZiBuZWNlc3NhcnkuXG4gICAgICAgQXNzdW1lcyBsIGFuZCByIGJhbGFuY2VkIGFuZCB8IGhlaWdodCBsIC0gaGVpZ2h0IHIgfCA8PSAzLlxuICAgICAgIElubGluZSBleHBhbnNpb24gb2YgY3JlYXRlIGZvciBiZXR0ZXIgc3BlZWQgaW4gdGhlIG1vc3QgZnJlcXVlbnQgY2FzZVxuICAgICAgIHdoZXJlIG5vIHJlYmFsYW5jaW5nIGlzIHJlcXVpcmVkLiAqKVxuXG4gICAgbGV0IGJhbCBsIHYgciA9XG4gICAgICBsZXQgaGwgPSBtYXRjaCBsIHdpdGggRW1wdHkgLT4gMCB8IE5vZGUge2h9IC0+IGggaW5cbiAgICAgIGxldCBociA9IG1hdGNoIHIgd2l0aCBFbXB0eSAtPiAwIHwgTm9kZSB7aH0gLT4gaCBpblxuICAgICAgaWYgaGwgPiBociArIDIgdGhlbiBiZWdpblxuICAgICAgICBtYXRjaCBsIHdpdGhcbiAgICAgICAgICBFbXB0eSAtPiBpbnZhbGlkX2FyZyBcIlNldC5iYWxcIlxuICAgICAgICB8IE5vZGV7bD1sbDsgdj1sdjsgcj1scn0gLT5cbiAgICAgICAgICAgIGlmIGhlaWdodCBsbCA+PSBoZWlnaHQgbHIgdGhlblxuICAgICAgICAgICAgICBjcmVhdGUgbGwgbHYgKGNyZWF0ZSBsciB2IHIpXG4gICAgICAgICAgICBlbHNlIGJlZ2luXG4gICAgICAgICAgICAgIG1hdGNoIGxyIHdpdGhcbiAgICAgICAgICAgICAgICBFbXB0eSAtPiBpbnZhbGlkX2FyZyBcIlNldC5iYWxcIlxuICAgICAgICAgICAgICB8IE5vZGV7bD1scmw7IHY9bHJ2OyByPWxycn0tPlxuICAgICAgICAgICAgICAgICAgY3JlYXRlIChjcmVhdGUgbGwgbHYgbHJsKSBscnYgKGNyZWF0ZSBscnIgdiByKVxuICAgICAgICAgICAgZW5kXG4gICAgICBlbmQgZWxzZSBpZiBociA+IGhsICsgMiB0aGVuIGJlZ2luXG4gICAgICAgIG1hdGNoIHIgd2l0aFxuICAgICAgICAgIEVtcHR5IC0+IGludmFsaWRfYXJnIFwiU2V0LmJhbFwiXG4gICAgICAgIHwgTm9kZXtsPXJsOyB2PXJ2OyByPXJyfSAtPlxuICAgICAgICAgICAgaWYgaGVpZ2h0IHJyID49IGhlaWdodCBybCB0aGVuXG4gICAgICAgICAgICAgIGNyZWF0ZSAoY3JlYXRlIGwgdiBybCkgcnYgcnJcbiAgICAgICAgICAgIGVsc2UgYmVnaW5cbiAgICAgICAgICAgICAgbWF0Y2ggcmwgd2l0aFxuICAgICAgICAgICAgICAgIEVtcHR5IC0+IGludmFsaWRfYXJnIFwiU2V0LmJhbFwiXG4gICAgICAgICAgICAgIHwgTm9kZXtsPXJsbDsgdj1ybHY7IHI9cmxyfSAtPlxuICAgICAgICAgICAgICAgICAgY3JlYXRlIChjcmVhdGUgbCB2IHJsbCkgcmx2IChjcmVhdGUgcmxyIHJ2IHJyKVxuICAgICAgICAgICAgZW5kXG4gICAgICBlbmQgZWxzZVxuICAgICAgICBOb2Rle2w7IHY7IHI7IGg9KGlmIGhsID49IGhyIHRoZW4gaGwgKyAxIGVsc2UgaHIgKyAxKX1cblxuICAgICgqIEluc2VydGlvbiBvZiBvbmUgZWxlbWVudCAqKVxuXG4gICAgbGV0IHJlYyBhZGQgeCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IE5vZGV7bD1FbXB0eTsgdj14OyByPUVtcHR5OyBoPTF9XG4gICAgICB8IE5vZGV7bDsgdjsgcn0gYXMgdCAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiB0IGVsc2VcbiAgICAgICAgICBpZiBjIDwgMCB0aGVuXG4gICAgICAgICAgICBsZXQgbGwgPSBhZGQgeCBsIGluXG4gICAgICAgICAgICBpZiBsID09IGxsIHRoZW4gdCBlbHNlIGJhbCBsbCB2IHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBsZXQgcnIgPSBhZGQgeCByIGluXG4gICAgICAgICAgICBpZiByID09IHJyIHRoZW4gdCBlbHNlIGJhbCBsIHYgcnJcblxuICAgIGxldCBzaW5nbGV0b24geCA9IE5vZGV7bD1FbXB0eTsgdj14OyByPUVtcHR5OyBoPTF9XG5cbiAgICAoKiBCZXdhcmU6IHRob3NlIHR3byBmdW5jdGlvbnMgYXNzdW1lIHRoYXQgdGhlIGFkZGVkIHYgaXMgKnN0cmljdGx5KlxuICAgICAgIHNtYWxsZXIgKG9yIGJpZ2dlcikgdGhhbiBhbGwgdGhlIHByZXNlbnQgZWxlbWVudHMgaW4gdGhlIHRyZWU7IGl0XG4gICAgICAgZG9lcyBub3QgdGVzdCBmb3IgZXF1YWxpdHkgd2l0aCB0aGUgY3VycmVudCBtaW4gKG9yIG1heCkgZWxlbWVudC5cbiAgICAgICBJbmRlZWQsIHRoZXkgYXJlIG9ubHkgdXNlZCBkdXJpbmcgdGhlIFwiam9pblwiIG9wZXJhdGlvbiB3aGljaFxuICAgICAgIHJlc3BlY3RzIHRoaXMgcHJlY29uZGl0aW9uLlxuICAgICopXG5cbiAgICBsZXQgcmVjIGFkZF9taW5fZWxlbWVudCB4ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gc2luZ2xldG9uIHhcbiAgICAgIHwgTm9kZSB7bDsgdjsgcn0gLT5cbiAgICAgICAgYmFsIChhZGRfbWluX2VsZW1lbnQgeCBsKSB2IHJcblxuICAgIGxldCByZWMgYWRkX21heF9lbGVtZW50IHggPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPiBzaW5nbGV0b24geFxuICAgICAgfCBOb2RlIHtsOyB2OyByfSAtPlxuICAgICAgICBiYWwgbCB2IChhZGRfbWF4X2VsZW1lbnQgeCByKVxuXG4gICAgKCogU2FtZSBhcyBjcmVhdGUgYW5kIGJhbCwgYnV0IG5vIGFzc3VtcHRpb25zIGFyZSBtYWRlIG9uIHRoZVxuICAgICAgIHJlbGF0aXZlIGhlaWdodHMgb2YgbCBhbmQgci4gKilcblxuICAgIGxldCByZWMgam9pbiBsIHYgciA9XG4gICAgICBtYXRjaCAobCwgcikgd2l0aFxuICAgICAgICAoRW1wdHksIF8pIC0+IGFkZF9taW5fZWxlbWVudCB2IHJcbiAgICAgIHwgKF8sIEVtcHR5KSAtPiBhZGRfbWF4X2VsZW1lbnQgdiBsXG4gICAgICB8IChOb2Rle2w9bGw7IHY9bHY7IHI9bHI7IGg9bGh9LCBOb2Rle2w9cmw7IHY9cnY7IHI9cnI7IGg9cmh9KSAtPlxuICAgICAgICAgIGlmIGxoID4gcmggKyAyIHRoZW4gYmFsIGxsIGx2IChqb2luIGxyIHYgcikgZWxzZVxuICAgICAgICAgIGlmIHJoID4gbGggKyAyIHRoZW4gYmFsIChqb2luIGwgdiBybCkgcnYgcnIgZWxzZVxuICAgICAgICAgIGNyZWF0ZSBsIHYgclxuXG4gICAgKCogU21hbGxlc3QgYW5kIGdyZWF0ZXN0IGVsZW1lbnQgb2YgYSBzZXQgKilcblxuICAgIGxldCByZWMgbWluX2VsdCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBOb2Rle2w9RW1wdHk7IHZ9IC0+IHZcbiAgICAgIHwgTm9kZXtsfSAtPiBtaW5fZWx0IGxcblxuICAgIGxldCByZWMgbWluX2VsdF9vcHQgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBOb25lXG4gICAgICB8IE5vZGV7bD1FbXB0eTsgdn0gLT4gU29tZSB2XG4gICAgICB8IE5vZGV7bH0gLT4gbWluX2VsdF9vcHQgbFxuXG4gICAgbGV0IHJlYyBtYXhfZWx0ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IE5vZGV7djsgcj1FbXB0eX0gLT4gdlxuICAgICAgfCBOb2Rle3J9IC0+IG1heF9lbHQgclxuXG4gICAgbGV0IHJlYyBtYXhfZWx0X29wdCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IE5vbmVcbiAgICAgIHwgTm9kZXt2OyByPUVtcHR5fSAtPiBTb21lIHZcbiAgICAgIHwgTm9kZXtyfSAtPiBtYXhfZWx0X29wdCByXG5cbiAgICAoKiBSZW1vdmUgdGhlIHNtYWxsZXN0IGVsZW1lbnQgb2YgdGhlIGdpdmVuIHNldCAqKVxuXG4gICAgbGV0IHJlYyByZW1vdmVfbWluX2VsdCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IGludmFsaWRfYXJnIFwiU2V0LnJlbW92ZV9taW5fZWx0XCJcbiAgICAgIHwgTm9kZXtsPUVtcHR5OyByfSAtPiByXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT4gYmFsIChyZW1vdmVfbWluX2VsdCBsKSB2IHJcblxuICAgICgqIE1lcmdlIHR3byB0cmVlcyBsIGFuZCByIGludG8gb25lLlxuICAgICAgIEFsbCBlbGVtZW50cyBvZiBsIG11c3QgcHJlY2VkZSB0aGUgZWxlbWVudHMgb2Ygci5cbiAgICAgICBBc3N1bWUgfCBoZWlnaHQgbCAtIGhlaWdodCByIHwgPD0gMi4gKilcblxuICAgIGxldCBtZXJnZSB0MSB0MiA9XG4gICAgICBtYXRjaCAodDEsIHQyKSB3aXRoXG4gICAgICAgIChFbXB0eSwgdCkgLT4gdFxuICAgICAgfCAodCwgRW1wdHkpIC0+IHRcbiAgICAgIHwgKF8sIF8pIC0+IGJhbCB0MSAobWluX2VsdCB0MikgKHJlbW92ZV9taW5fZWx0IHQyKVxuXG4gICAgKCogTWVyZ2UgdHdvIHRyZWVzIGwgYW5kIHIgaW50byBvbmUuXG4gICAgICAgQWxsIGVsZW1lbnRzIG9mIGwgbXVzdCBwcmVjZWRlIHRoZSBlbGVtZW50cyBvZiByLlxuICAgICAgIE5vIGFzc3VtcHRpb24gb24gdGhlIGhlaWdodHMgb2YgbCBhbmQgci4gKilcblxuICAgIGxldCBjb25jYXQgdDEgdDIgPVxuICAgICAgbWF0Y2ggKHQxLCB0Mikgd2l0aFxuICAgICAgICAoRW1wdHksIHQpIC0+IHRcbiAgICAgIHwgKHQsIEVtcHR5KSAtPiB0XG4gICAgICB8IChfLCBfKSAtPiBqb2luIHQxIChtaW5fZWx0IHQyKSAocmVtb3ZlX21pbl9lbHQgdDIpXG5cbiAgICAoKiBTcGxpdHRpbmcuICBzcGxpdCB4IHMgcmV0dXJucyBhIHRyaXBsZSAobCwgcHJlc2VudCwgcikgd2hlcmVcbiAgICAgICAgLSBsIGlzIHRoZSBzZXQgb2YgZWxlbWVudHMgb2YgcyB0aGF0IGFyZSA8IHhcbiAgICAgICAgLSByIGlzIHRoZSBzZXQgb2YgZWxlbWVudHMgb2YgcyB0aGF0IGFyZSA+IHhcbiAgICAgICAgLSBwcmVzZW50IGlzIGZhbHNlIGlmIHMgY29udGFpbnMgbm8gZWxlbWVudCBlcXVhbCB0byB4LFxuICAgICAgICAgIG9yIHRydWUgaWYgcyBjb250YWlucyBhbiBlbGVtZW50IGVxdWFsIHRvIHguICopXG5cbiAgICBsZXQgcmVjIHNwbGl0IHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIChFbXB0eSwgZmFsc2UsIEVtcHR5KVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIChsLCB0cnVlLCByKVxuICAgICAgICAgIGVsc2UgaWYgYyA8IDAgdGhlblxuICAgICAgICAgICAgbGV0IChsbCwgcHJlcywgcmwpID0gc3BsaXQgeCBsIGluIChsbCwgcHJlcywgam9pbiBybCB2IHIpXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbGV0IChsciwgcHJlcywgcnIpID0gc3BsaXQgeCByIGluIChqb2luIGwgdiBsciwgcHJlcywgcnIpXG5cbiAgICAoKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgc2V0IG9wZXJhdGlvbnMgKilcblxuICAgIGxldCBlbXB0eSA9IEVtcHR5XG5cbiAgICBsZXQgaXNfZW1wdHkgPSBmdW5jdGlvbiBFbXB0eSAtPiB0cnVlIHwgXyAtPiBmYWxzZVxuXG4gICAgbGV0IHJlYyBtZW0geCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IGZhbHNlXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGMgPSAwIHx8IG1lbSB4IChpZiBjIDwgMCB0aGVuIGwgZWxzZSByKVxuXG4gICAgbGV0IHJlYyByZW1vdmUgeCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IEVtcHR5XG4gICAgICB8IChOb2Rle2w7IHY7IHJ9IGFzIHQpIC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIG1lcmdlIGwgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgICAgbGV0IGxsID0gcmVtb3ZlIHggbCBpblxuICAgICAgICAgICAgICBpZiBsID09IGxsIHRoZW4gdFxuICAgICAgICAgICAgICBlbHNlIGJhbCBsbCB2IHJcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgbGV0IHJyID0gcmVtb3ZlIHggciBpblxuICAgICAgICAgICAgICBpZiByID09IHJyIHRoZW4gdFxuICAgICAgICAgICAgICBlbHNlIGJhbCBsIHYgcnJcblxuICAgIGxldCByZWMgdW5pb24gczEgczIgPVxuICAgICAgbWF0Y2ggKHMxLCBzMikgd2l0aFxuICAgICAgICAoRW1wdHksIHQyKSAtPiB0MlxuICAgICAgfCAodDEsIEVtcHR5KSAtPiB0MVxuICAgICAgfCAoTm9kZXtsPWwxOyB2PXYxOyByPXIxOyBoPWgxfSwgTm9kZXtsPWwyOyB2PXYyOyByPXIyOyBoPWgyfSkgLT5cbiAgICAgICAgICBpZiBoMSA+PSBoMiB0aGVuXG4gICAgICAgICAgICBpZiBoMiA9IDEgdGhlbiBhZGQgdjIgczEgZWxzZSBiZWdpblxuICAgICAgICAgICAgICBsZXQgKGwyLCBfLCByMikgPSBzcGxpdCB2MSBzMiBpblxuICAgICAgICAgICAgICBqb2luICh1bmlvbiBsMSBsMikgdjEgKHVuaW9uIHIxIHIyKVxuICAgICAgICAgICAgZW5kXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgaWYgaDEgPSAxIHRoZW4gYWRkIHYxIHMyIGVsc2UgYmVnaW5cbiAgICAgICAgICAgICAgbGV0IChsMSwgXywgcjEpID0gc3BsaXQgdjIgczEgaW5cbiAgICAgICAgICAgICAgam9pbiAodW5pb24gbDEgbDIpIHYyICh1bmlvbiByMSByMilcbiAgICAgICAgICAgIGVuZFxuXG4gICAgbGV0IHJlYyBpbnRlciBzMSBzMiA9XG4gICAgICBtYXRjaCAoczEsIHMyKSB3aXRoXG4gICAgICAgIChFbXB0eSwgXykgLT4gRW1wdHlcbiAgICAgIHwgKF8sIEVtcHR5KSAtPiBFbXB0eVxuICAgICAgfCAoTm9kZXtsPWwxOyB2PXYxOyByPXIxfSwgdDIpIC0+XG4gICAgICAgICAgbWF0Y2ggc3BsaXQgdjEgdDIgd2l0aFxuICAgICAgICAgICAgKGwyLCBmYWxzZSwgcjIpIC0+XG4gICAgICAgICAgICAgIGNvbmNhdCAoaW50ZXIgbDEgbDIpIChpbnRlciByMSByMilcbiAgICAgICAgICB8IChsMiwgdHJ1ZSwgcjIpIC0+XG4gICAgICAgICAgICAgIGpvaW4gKGludGVyIGwxIGwyKSB2MSAoaW50ZXIgcjEgcjIpXG5cbiAgICAoKiBTYW1lIGFzIHNwbGl0LCBidXQgY29tcHV0ZSB0aGUgbGVmdCBhbmQgcmlnaHQgc3VidHJlZXNcbiAgICAgICBvbmx5IGlmIHRoZSBwaXZvdCBlbGVtZW50IGlzIG5vdCBpbiB0aGUgc2V0LiAgVGhlIHJpZ2h0IHN1YnRyZWVcbiAgICAgICBpcyBjb21wdXRlZCBvbiBkZW1hbmQuICopXG5cbiAgICB0eXBlIHNwbGl0X2JpcyA9XG4gICAgICB8IEZvdW5kXG4gICAgICB8IE5vdEZvdW5kIG9mIHQgKiAodW5pdCAtPiB0KVxuXG4gICAgbGV0IHJlYyBzcGxpdF9iaXMgeCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgTm90Rm91bmQgKEVtcHR5LCAoZnVuICgpIC0+IEVtcHR5KSlcbiAgICAgIHwgTm9kZXtsOyB2OyByOyBffSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiBGb3VuZFxuICAgICAgICAgIGVsc2UgaWYgYyA8IDAgdGhlblxuICAgICAgICAgICAgbWF0Y2ggc3BsaXRfYmlzIHggbCB3aXRoXG4gICAgICAgICAgICB8IEZvdW5kIC0+IEZvdW5kXG4gICAgICAgICAgICB8IE5vdEZvdW5kIChsbCwgcmwpIC0+IE5vdEZvdW5kIChsbCwgKGZ1biAoKSAtPiBqb2luIChybCAoKSkgdiByKSlcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBtYXRjaCBzcGxpdF9iaXMgeCByIHdpdGhcbiAgICAgICAgICAgIHwgRm91bmQgLT4gRm91bmRcbiAgICAgICAgICAgIHwgTm90Rm91bmQgKGxyLCBycikgLT4gTm90Rm91bmQgKGpvaW4gbCB2IGxyLCBycilcblxuICAgIGxldCByZWMgZGlzam9pbnQgczEgczIgPVxuICAgICAgbWF0Y2ggKHMxLCBzMikgd2l0aFxuICAgICAgICAoRW1wdHksIF8pIHwgKF8sIEVtcHR5KSAtPiB0cnVlXG4gICAgICB8IChOb2Rle2w9bDE7IHY9djE7IHI9cjF9LCB0MikgLT5cbiAgICAgICAgICBpZiBzMSA9PSBzMiB0aGVuIGZhbHNlXG4gICAgICAgICAgZWxzZSBtYXRjaCBzcGxpdF9iaXMgdjEgdDIgd2l0aFxuICAgICAgICAgICAgICBOb3RGb3VuZChsMiwgcjIpIC0+IGRpc2pvaW50IGwxIGwyICYmIGRpc2pvaW50IHIxIChyMiAoKSlcbiAgICAgICAgICAgIHwgRm91bmQgLT4gZmFsc2VcblxuICAgIGxldCByZWMgZGlmZiBzMSBzMiA9XG4gICAgICBtYXRjaCAoczEsIHMyKSB3aXRoXG4gICAgICAgIChFbXB0eSwgXykgLT4gRW1wdHlcbiAgICAgIHwgKHQxLCBFbXB0eSkgLT4gdDFcbiAgICAgIHwgKE5vZGV7bD1sMTsgdj12MTsgcj1yMX0sIHQyKSAtPlxuICAgICAgICAgIG1hdGNoIHNwbGl0IHYxIHQyIHdpdGhcbiAgICAgICAgICAgIChsMiwgZmFsc2UsIHIyKSAtPlxuICAgICAgICAgICAgICBqb2luIChkaWZmIGwxIGwyKSB2MSAoZGlmZiByMSByMilcbiAgICAgICAgICB8IChsMiwgdHJ1ZSwgcjIpIC0+XG4gICAgICAgICAgICAgIGNvbmNhdCAoZGlmZiBsMSBsMikgKGRpZmYgcjEgcjIpXG5cbiAgICB0eXBlIGVudW1lcmF0aW9uID0gRW5kIHwgTW9yZSBvZiBlbHQgKiB0ICogZW51bWVyYXRpb25cblxuICAgIGxldCByZWMgY29uc19lbnVtIHMgZSA9XG4gICAgICBtYXRjaCBzIHdpdGhcbiAgICAgICAgRW1wdHkgLT4gZVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+IGNvbnNfZW51bSBsIChNb3JlKHYsIHIsIGUpKVxuXG4gICAgbGV0IHJlYyBjb21wYXJlX2F1eCBlMSBlMiA9XG4gICAgICAgIG1hdGNoIChlMSwgZTIpIHdpdGhcbiAgICAgICAgKEVuZCwgRW5kKSAtPiAwXG4gICAgICB8IChFbmQsIF8pICAtPiAtMVxuICAgICAgfCAoXywgRW5kKSAtPiAxXG4gICAgICB8IChNb3JlKHYxLCByMSwgZTEpLCBNb3JlKHYyLCByMiwgZTIpKSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgdjEgdjIgaW5cbiAgICAgICAgICBpZiBjIDw+IDBcbiAgICAgICAgICB0aGVuIGNcbiAgICAgICAgICBlbHNlIGNvbXBhcmVfYXV4IChjb25zX2VudW0gcjEgZTEpIChjb25zX2VudW0gcjIgZTIpXG5cbiAgICBsZXQgY29tcGFyZSBzMSBzMiA9XG4gICAgICBjb21wYXJlX2F1eCAoY29uc19lbnVtIHMxIEVuZCkgKGNvbnNfZW51bSBzMiBFbmQpXG5cbiAgICBsZXQgZXF1YWwgczEgczIgPVxuICAgICAgY29tcGFyZSBzMSBzMiA9IDBcblxuICAgIGxldCByZWMgc3Vic2V0IHMxIHMyID1cbiAgICAgIG1hdGNoIChzMSwgczIpIHdpdGhcbiAgICAgICAgRW1wdHksIF8gLT5cbiAgICAgICAgICB0cnVlXG4gICAgICB8IF8sIEVtcHR5IC0+XG4gICAgICAgICAgZmFsc2VcbiAgICAgIHwgTm9kZSB7bD1sMTsgdj12MTsgcj1yMX0sIChOb2RlIHtsPWwyOyB2PXYyOyByPXIyfSBhcyB0MikgLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHYxIHYyIGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlblxuICAgICAgICAgICAgc3Vic2V0IGwxIGwyICYmIHN1YnNldCByMSByMlxuICAgICAgICAgIGVsc2UgaWYgYyA8IDAgdGhlblxuICAgICAgICAgICAgc3Vic2V0IChOb2RlIHtsPWwxOyB2PXYxOyByPUVtcHR5OyBoPTB9KSBsMiAmJiBzdWJzZXQgcjEgdDJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBzdWJzZXQgKE5vZGUge2w9RW1wdHk7IHY9djE7IHI9cjE7IGg9MH0pIHIyICYmIHN1YnNldCBsMSB0MlxuXG4gICAgbGV0IHJlYyBpdGVyIGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiAoKVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+IGl0ZXIgZiBsOyBmIHY7IGl0ZXIgZiByXG5cbiAgICBsZXQgcmVjIGZvbGQgZiBzIGFjY3UgPVxuICAgICAgbWF0Y2ggcyB3aXRoXG4gICAgICAgIEVtcHR5IC0+IGFjY3VcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPiBmb2xkIGYgciAoZiB2IChmb2xkIGYgbCBhY2N1KSlcblxuICAgIGxldCByZWMgZm9yX2FsbCBwID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gdHJ1ZVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+IHAgdiAmJiBmb3JfYWxsIHAgbCAmJiBmb3JfYWxsIHAgclxuXG4gICAgbGV0IHJlYyBleGlzdHMgcCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IGZhbHNlXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT4gcCB2IHx8IGV4aXN0cyBwIGwgfHwgZXhpc3RzIHAgclxuXG4gICAgbGV0IHJlYyBmaWx0ZXIgcCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IEVtcHR5XG4gICAgICB8IChOb2Rle2w7IHY7IHJ9KSBhcyB0IC0+XG4gICAgICAgICAgKCogY2FsbCBbcF0gaW4gdGhlIGV4cGVjdGVkIGxlZnQtdG8tcmlnaHQgb3JkZXIgKilcbiAgICAgICAgICBsZXQgbCcgPSBmaWx0ZXIgcCBsIGluXG4gICAgICAgICAgbGV0IHB2ID0gcCB2IGluXG4gICAgICAgICAgbGV0IHInID0gZmlsdGVyIHAgciBpblxuICAgICAgICAgIGlmIHB2IHRoZW5cbiAgICAgICAgICAgIGlmIGw9PWwnICYmIHI9PXInIHRoZW4gdCBlbHNlIGpvaW4gbCcgdiByJ1xuICAgICAgICAgIGVsc2UgY29uY2F0IGwnIHInXG5cbiAgICBsZXQgcmVjIHBhcnRpdGlvbiBwID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gKEVtcHR5LCBFbXB0eSlcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPlxuICAgICAgICAgICgqIGNhbGwgW3BdIGluIHRoZSBleHBlY3RlZCBsZWZ0LXRvLXJpZ2h0IG9yZGVyICopXG4gICAgICAgICAgbGV0IChsdCwgbGYpID0gcGFydGl0aW9uIHAgbCBpblxuICAgICAgICAgIGxldCBwdiA9IHAgdiBpblxuICAgICAgICAgIGxldCAocnQsIHJmKSA9IHBhcnRpdGlvbiBwIHIgaW5cbiAgICAgICAgICBpZiBwdlxuICAgICAgICAgIHRoZW4gKGpvaW4gbHQgdiBydCwgY29uY2F0IGxmIHJmKVxuICAgICAgICAgIGVsc2UgKGNvbmNhdCBsdCBydCwgam9pbiBsZiB2IHJmKVxuXG4gICAgbGV0IHJlYyBjYXJkaW5hbCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IDBcbiAgICAgIHwgTm9kZXtsOyByfSAtPiBjYXJkaW5hbCBsICsgMSArIGNhcmRpbmFsIHJcblxuICAgIGxldCByZWMgZWxlbWVudHNfYXV4IGFjY3UgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBhY2N1XG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT4gZWxlbWVudHNfYXV4ICh2IDo6IGVsZW1lbnRzX2F1eCBhY2N1IHIpIGxcblxuICAgIGxldCBlbGVtZW50cyBzID1cbiAgICAgIGVsZW1lbnRzX2F1eCBbXSBzXG5cbiAgICBsZXQgY2hvb3NlID0gbWluX2VsdFxuXG4gICAgbGV0IGNob29zZV9vcHQgPSBtaW5fZWx0X29wdFxuXG4gICAgbGV0IHJlYyBmaW5kIHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiB2XG4gICAgICAgICAgZWxzZSBmaW5kIHggKGlmIGMgPCAwIHRoZW4gbCBlbHNlIHIpXG5cbiAgICBsZXQgcmVjIGZpbmRfZmlyc3RfYXV4IHYwIGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIHYwXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9maXJzdF9hdXggdiBmIGxcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X2F1eCB2MCBmIHJcblxuICAgIGxldCByZWMgZmluZF9maXJzdCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X2F1eCB2IGYgbFxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfZmlyc3QgZiByXG5cbiAgICBsZXQgcmVjIGZpbmRfZmlyc3Rfb3B0X2F1eCB2MCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBTb21lIHYwXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9maXJzdF9vcHRfYXV4IHYgZiBsXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9maXJzdF9vcHRfYXV4IHYwIGYgclxuXG4gICAgbGV0IHJlYyBmaW5kX2ZpcnN0X29wdCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBOb25lXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9maXJzdF9vcHRfYXV4IHYgZiBsXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9maXJzdF9vcHQgZiByXG5cbiAgICBsZXQgcmVjIGZpbmRfbGFzdF9hdXggdjAgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgdjBcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2xhc3RfYXV4IHYgZiByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9sYXN0X2F1eCB2MCBmIGxcblxuICAgIGxldCByZWMgZmluZF9sYXN0IGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfbGFzdF9hdXggdiBmIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2xhc3QgZiBsXG5cbiAgICBsZXQgcmVjIGZpbmRfbGFzdF9vcHRfYXV4IHYwIGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIFNvbWUgdjBcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2xhc3Rfb3B0X2F1eCB2IGYgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfbGFzdF9vcHRfYXV4IHYwIGYgbFxuXG4gICAgbGV0IHJlYyBmaW5kX2xhc3Rfb3B0IGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIE5vbmVcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2xhc3Rfb3B0X2F1eCB2IGYgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfbGFzdF9vcHQgZiBsXG5cbiAgICBsZXQgcmVjIGZpbmRfb3B0IHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBOb25lXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW4gU29tZSB2XG4gICAgICAgICAgZWxzZSBmaW5kX29wdCB4IChpZiBjIDwgMCB0aGVuIGwgZWxzZSByKVxuXG4gICAgbGV0IHRyeV9qb2luIGwgdiByID1cbiAgICAgICgqIFtqb2luIGwgdiByXSBjYW4gb25seSBiZSBjYWxsZWQgd2hlbiAoZWxlbWVudHMgb2YgbCA8IHYgPFxuICAgICAgICAgZWxlbWVudHMgb2Ygcik7IHVzZSBbdHJ5X2pvaW4gbCB2IHJdIHdoZW4gdGhpcyBwcm9wZXJ0eSBtYXlcbiAgICAgICAgIG5vdCBob2xkLCBidXQgeW91IGhvcGUgaXQgZG9lcyBob2xkIGluIHRoZSBjb21tb24gY2FzZSAqKVxuICAgICAgaWYgKGwgPSBFbXB0eSB8fCBPcmQuY29tcGFyZSAobWF4X2VsdCBsKSB2IDwgMClcbiAgICAgICYmIChyID0gRW1wdHkgfHwgT3JkLmNvbXBhcmUgdiAobWluX2VsdCByKSA8IDApXG4gICAgICB0aGVuIGpvaW4gbCB2IHJcbiAgICAgIGVsc2UgdW5pb24gbCAoYWRkIHYgcilcblxuICAgIGxldCByZWMgbWFwIGYgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPiBFbXB0eVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IGFzIHQgLT5cbiAgICAgICAgICgqIGVuZm9yY2UgbGVmdC10by1yaWdodCBldmFsdWF0aW9uIG9yZGVyICopXG4gICAgICAgICBsZXQgbCcgPSBtYXAgZiBsIGluXG4gICAgICAgICBsZXQgdicgPSBmIHYgaW5cbiAgICAgICAgIGxldCByJyA9IG1hcCBmIHIgaW5cbiAgICAgICAgIGlmIGwgPT0gbCcgJiYgdiA9PSB2JyAmJiByID09IHInIHRoZW4gdFxuICAgICAgICAgZWxzZSB0cnlfam9pbiBsJyB2JyByJ1xuXG4gICAgbGV0IHRyeV9jb25jYXQgdDEgdDIgPVxuICAgICAgbWF0Y2ggKHQxLCB0Mikgd2l0aFxuICAgICAgICAoRW1wdHksIHQpIC0+IHRcbiAgICAgIHwgKHQsIEVtcHR5KSAtPiB0XG4gICAgICB8IChfLCBfKSAtPiB0cnlfam9pbiB0MSAobWluX2VsdCB0MikgKHJlbW92ZV9taW5fZWx0IHQyKVxuXG4gICAgbGV0IHJlYyBmaWx0ZXJfbWFwIGYgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPiBFbXB0eVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IGFzIHQgLT5cbiAgICAgICAgICgqIGVuZm9yY2UgbGVmdC10by1yaWdodCBldmFsdWF0aW9uIG9yZGVyICopXG4gICAgICAgICBsZXQgbCcgPSBmaWx0ZXJfbWFwIGYgbCBpblxuICAgICAgICAgbGV0IHYnID0gZiB2IGluXG4gICAgICAgICBsZXQgcicgPSBmaWx0ZXJfbWFwIGYgciBpblxuICAgICAgICAgYmVnaW4gbWF0Y2ggdicgd2l0aFxuICAgICAgICAgICB8IFNvbWUgdicgLT5cbiAgICAgICAgICAgICAgaWYgbCA9PSBsJyAmJiB2ID09IHYnICYmIHIgPT0gcicgdGhlbiB0XG4gICAgICAgICAgICAgIGVsc2UgdHJ5X2pvaW4gbCcgdicgcidcbiAgICAgICAgICAgfCBOb25lIC0+XG4gICAgICAgICAgICAgIHRyeV9jb25jYXQgbCcgcidcbiAgICAgICAgIGVuZFxuXG4gICAgbGV0IG9mX3NvcnRlZF9saXN0IGwgPVxuICAgICAgbGV0IHJlYyBzdWIgbiBsID1cbiAgICAgICAgbWF0Y2ggbiwgbCB3aXRoXG4gICAgICAgIHwgMCwgbCAtPiBFbXB0eSwgbFxuICAgICAgICB8IDEsIHgwIDo6IGwgLT4gTm9kZSB7bD1FbXB0eTsgdj14MDsgcj1FbXB0eTsgaD0xfSwgbFxuICAgICAgICB8IDIsIHgwIDo6IHgxIDo6IGwgLT5cbiAgICAgICAgICAgIE5vZGV7bD1Ob2Rle2w9RW1wdHk7IHY9eDA7IHI9RW1wdHk7IGg9MX07IHY9eDE7IHI9RW1wdHk7IGg9Mn0sIGxcbiAgICAgICAgfCAzLCB4MCA6OiB4MSA6OiB4MiA6OiBsIC0+XG4gICAgICAgICAgICBOb2Rle2w9Tm9kZXtsPUVtcHR5OyB2PXgwOyByPUVtcHR5OyBoPTF9OyB2PXgxO1xuICAgICAgICAgICAgICAgICByPU5vZGV7bD1FbXB0eTsgdj14Mjsgcj1FbXB0eTsgaD0xfTsgaD0yfSwgbFxuICAgICAgICB8IG4sIGwgLT5cbiAgICAgICAgICBsZXQgbmwgPSBuIC8gMiBpblxuICAgICAgICAgIGxldCBsZWZ0LCBsID0gc3ViIG5sIGwgaW5cbiAgICAgICAgICBtYXRjaCBsIHdpdGhcbiAgICAgICAgICB8IFtdIC0+IGFzc2VydCBmYWxzZVxuICAgICAgICAgIHwgbWlkIDo6IGwgLT5cbiAgICAgICAgICAgIGxldCByaWdodCwgbCA9IHN1YiAobiAtIG5sIC0gMSkgbCBpblxuICAgICAgICAgICAgY3JlYXRlIGxlZnQgbWlkIHJpZ2h0LCBsXG4gICAgICBpblxuICAgICAgZnN0IChzdWIgKExpc3QubGVuZ3RoIGwpIGwpXG5cbiAgICBsZXQgb2ZfbGlzdCBsID1cbiAgICAgIG1hdGNoIGwgd2l0aFxuICAgICAgfCBbXSAtPiBlbXB0eVxuICAgICAgfCBbeDBdIC0+IHNpbmdsZXRvbiB4MFxuICAgICAgfCBbeDA7IHgxXSAtPiBhZGQgeDEgKHNpbmdsZXRvbiB4MClcbiAgICAgIHwgW3gwOyB4MTsgeDJdIC0+IGFkZCB4MiAoYWRkIHgxIChzaW5nbGV0b24geDApKVxuICAgICAgfCBbeDA7IHgxOyB4MjsgeDNdIC0+IGFkZCB4MyAoYWRkIHgyIChhZGQgeDEgKHNpbmdsZXRvbiB4MCkpKVxuICAgICAgfCBbeDA7IHgxOyB4MjsgeDM7IHg0XSAtPiBhZGQgeDQgKGFkZCB4MyAoYWRkIHgyIChhZGQgeDEgKHNpbmdsZXRvbiB4MCkpKSlcbiAgICAgIHwgXyAtPiBvZl9zb3J0ZWRfbGlzdCAoTGlzdC5zb3J0X3VuaXEgT3JkLmNvbXBhcmUgbClcblxuICAgIGxldCBhZGRfc2VxIGkgbSA9XG4gICAgICBTZXEuZm9sZF9sZWZ0IChmdW4gcyB4IC0+IGFkZCB4IHMpIG0gaVxuXG4gICAgbGV0IG9mX3NlcSBpID0gYWRkX3NlcSBpIGVtcHR5XG5cbiAgICBsZXQgcmVjIHNlcV9vZl9lbnVtXyBjICgpID0gbWF0Y2ggYyB3aXRoXG4gICAgICB8IEVuZCAtPiBTZXEuTmlsXG4gICAgICB8IE1vcmUgKHgsIHQsIHJlc3QpIC0+IFNlcS5Db25zICh4LCBzZXFfb2ZfZW51bV8gKGNvbnNfZW51bSB0IHJlc3QpKVxuXG4gICAgbGV0IHRvX3NlcSBjID0gc2VxX29mX2VudW1fIChjb25zX2VudW0gYyBFbmQpXG5cbiAgICBsZXQgcmVjIHNub2NfZW51bSBzIGUgPVxuICAgICAgbWF0Y2ggcyB3aXRoXG4gICAgICAgIEVtcHR5IC0+IGVcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPiBzbm9jX2VudW0gciAoTW9yZSh2LCBsLCBlKSlcblxuICAgIGxldCByZWMgcmV2X3NlcV9vZl9lbnVtXyBjICgpID0gbWF0Y2ggYyB3aXRoXG4gICAgICB8IEVuZCAtPiBTZXEuTmlsXG4gICAgICB8IE1vcmUgKHgsIHQsIHJlc3QpIC0+IFNlcS5Db25zICh4LCByZXZfc2VxX29mX2VudW1fIChzbm9jX2VudW0gdCByZXN0KSlcblxuICAgIGxldCB0b19yZXZfc2VxIGMgPSByZXZfc2VxX29mX2VudW1fIChzbm9jX2VudW0gYyBFbmQpXG5cbiAgICBsZXQgdG9fc2VxX2Zyb20gbG93IHMgPVxuICAgICAgbGV0IHJlYyBhdXggbG93IHMgYyA9IG1hdGNoIHMgd2l0aFxuICAgICAgICB8IEVtcHR5IC0+IGNcbiAgICAgICAgfCBOb2RlIHtsOyByOyB2OyBffSAtPlxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggT3JkLmNvbXBhcmUgdiBsb3cgd2l0aFxuICAgICAgICAgICAgICB8IDAgLT4gTW9yZSAodiwgciwgYylcbiAgICAgICAgICAgICAgfCBuIHdoZW4gbjwwIC0+IGF1eCBsb3cgciBjXG4gICAgICAgICAgICAgIHwgXyAtPiBhdXggbG93IGwgKE1vcmUgKHYsIHIsIGMpKVxuICAgICAgICAgICAgZW5kXG4gICAgICBpblxuICAgICAgc2VxX29mX2VudW1fIChhdXggbG93IHMgRW5kKVxuICBlbmRcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxubW9kdWxlIHR5cGUgT3JkZXJlZFR5cGUgPVxuICBzaWdcbiAgICB0eXBlIHRcbiAgICB2YWwgY29tcGFyZTogdCAtPiB0IC0+IGludFxuICBlbmRcblxubW9kdWxlIHR5cGUgUyA9XG4gIHNpZ1xuICAgIHR5cGUga2V5XG4gICAgdHlwZSAhKydhIHRcbiAgICB2YWwgZW1wdHk6ICdhIHRcbiAgICB2YWwgaXNfZW1wdHk6ICdhIHQgLT4gYm9vbFxuICAgIHZhbCBtZW06ICBrZXkgLT4gJ2EgdCAtPiBib29sXG4gICAgdmFsIGFkZDoga2V5IC0+ICdhIC0+ICdhIHQgLT4gJ2EgdFxuICAgIHZhbCB1cGRhdGU6IGtleSAtPiAoJ2Egb3B0aW9uIC0+ICdhIG9wdGlvbikgLT4gJ2EgdCAtPiAnYSB0XG4gICAgdmFsIHNpbmdsZXRvbjoga2V5IC0+ICdhIC0+ICdhIHRcbiAgICB2YWwgcmVtb3ZlOiBrZXkgLT4gJ2EgdCAtPiAnYSB0XG4gICAgdmFsIG1lcmdlOlxuICAgICAgICAgIChrZXkgLT4gJ2Egb3B0aW9uIC0+ICdiIG9wdGlvbiAtPiAnYyBvcHRpb24pIC0+ICdhIHQgLT4gJ2IgdCAtPiAnYyB0XG4gICAgdmFsIHVuaW9uOiAoa2V5IC0+ICdhIC0+ICdhIC0+ICdhIG9wdGlvbikgLT4gJ2EgdCAtPiAnYSB0IC0+ICdhIHRcbiAgICB2YWwgY29tcGFyZTogKCdhIC0+ICdhIC0+IGludCkgLT4gJ2EgdCAtPiAnYSB0IC0+IGludFxuICAgIHZhbCBlcXVhbDogKCdhIC0+ICdhIC0+IGJvb2wpIC0+ICdhIHQgLT4gJ2EgdCAtPiBib29sXG4gICAgdmFsIGl0ZXI6IChrZXkgLT4gJ2EgLT4gdW5pdCkgLT4gJ2EgdCAtPiB1bml0XG4gICAgdmFsIGZvbGQ6IChrZXkgLT4gJ2EgLT4gJ2IgLT4gJ2IpIC0+ICdhIHQgLT4gJ2IgLT4gJ2JcbiAgICB2YWwgZm9yX2FsbDogKGtleSAtPiAnYSAtPiBib29sKSAtPiAnYSB0IC0+IGJvb2xcbiAgICB2YWwgZXhpc3RzOiAoa2V5IC0+ICdhIC0+IGJvb2wpIC0+ICdhIHQgLT4gYm9vbFxuICAgIHZhbCBmaWx0ZXI6IChrZXkgLT4gJ2EgLT4gYm9vbCkgLT4gJ2EgdCAtPiAnYSB0XG4gICAgdmFsIGZpbHRlcl9tYXA6IChrZXkgLT4gJ2EgLT4gJ2Igb3B0aW9uKSAtPiAnYSB0IC0+ICdiIHRcbiAgICB2YWwgcGFydGl0aW9uOiAoa2V5IC0+ICdhIC0+IGJvb2wpIC0+ICdhIHQgLT4gJ2EgdCAqICdhIHRcbiAgICB2YWwgY2FyZGluYWw6ICdhIHQgLT4gaW50XG4gICAgdmFsIGJpbmRpbmdzOiAnYSB0IC0+IChrZXkgKiAnYSkgbGlzdFxuICAgIHZhbCBtaW5fYmluZGluZzogJ2EgdCAtPiAoa2V5ICogJ2EpXG4gICAgdmFsIG1pbl9iaW5kaW5nX29wdDogJ2EgdCAtPiAoa2V5ICogJ2EpIG9wdGlvblxuICAgIHZhbCBtYXhfYmluZGluZzogJ2EgdCAtPiAoa2V5ICogJ2EpXG4gICAgdmFsIG1heF9iaW5kaW5nX29wdDogJ2EgdCAtPiAoa2V5ICogJ2EpIG9wdGlvblxuICAgIHZhbCBjaG9vc2U6ICdhIHQgLT4gKGtleSAqICdhKVxuICAgIHZhbCBjaG9vc2Vfb3B0OiAnYSB0IC0+IChrZXkgKiAnYSkgb3B0aW9uXG4gICAgdmFsIHNwbGl0OiBrZXkgLT4gJ2EgdCAtPiAnYSB0ICogJ2Egb3B0aW9uICogJ2EgdFxuICAgIHZhbCBmaW5kOiBrZXkgLT4gJ2EgdCAtPiAnYVxuICAgIHZhbCBmaW5kX29wdDoga2V5IC0+ICdhIHQgLT4gJ2Egb3B0aW9uXG4gICAgdmFsIGZpbmRfZmlyc3Q6IChrZXkgLT4gYm9vbCkgLT4gJ2EgdCAtPiBrZXkgKiAnYVxuICAgIHZhbCBmaW5kX2ZpcnN0X29wdDogKGtleSAtPiBib29sKSAtPiAnYSB0IC0+IChrZXkgKiAnYSkgb3B0aW9uXG4gICAgdmFsIGZpbmRfbGFzdDogKGtleSAtPiBib29sKSAtPiAnYSB0IC0+IGtleSAqICdhXG4gICAgdmFsIGZpbmRfbGFzdF9vcHQ6IChrZXkgLT4gYm9vbCkgLT4gJ2EgdCAtPiAoa2V5ICogJ2EpIG9wdGlvblxuICAgIHZhbCBtYXA6ICgnYSAtPiAnYikgLT4gJ2EgdCAtPiAnYiB0XG4gICAgdmFsIG1hcGk6IChrZXkgLT4gJ2EgLT4gJ2IpIC0+ICdhIHQgLT4gJ2IgdFxuICAgIHZhbCB0b19zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnRcbiAgICB2YWwgdG9fcmV2X3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudFxuICAgIHZhbCB0b19zZXFfZnJvbSA6IGtleSAtPiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnRcbiAgICB2YWwgYWRkX3NlcSA6IChrZXkgKiAnYSkgU2VxLnQgLT4gJ2EgdCAtPiAnYSB0XG4gICAgdmFsIG9mX3NlcSA6IChrZXkgKiAnYSkgU2VxLnQgLT4gJ2EgdFxuICBlbmRcblxubW9kdWxlIE1ha2UoT3JkOiBPcmRlcmVkVHlwZSkgPSBzdHJ1Y3RcblxuICAgIHR5cGUga2V5ID0gT3JkLnRcblxuICAgIHR5cGUgJ2EgdCA9XG4gICAgICAgIEVtcHR5XG4gICAgICB8IE5vZGUgb2Yge2w6J2EgdDsgdjprZXk7IGQ6J2E7IHI6J2EgdDsgaDppbnR9XG5cbiAgICBsZXQgaGVpZ2h0ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gMFxuICAgICAgfCBOb2RlIHtofSAtPiBoXG5cbiAgICBsZXQgY3JlYXRlIGwgeCBkIHIgPVxuICAgICAgbGV0IGhsID0gaGVpZ2h0IGwgYW5kIGhyID0gaGVpZ2h0IHIgaW5cbiAgICAgIE5vZGV7bDsgdj14OyBkOyByOyBoPShpZiBobCA+PSBociB0aGVuIGhsICsgMSBlbHNlIGhyICsgMSl9XG5cbiAgICBsZXQgc2luZ2xldG9uIHggZCA9IE5vZGV7bD1FbXB0eTsgdj14OyBkOyByPUVtcHR5OyBoPTF9XG5cbiAgICBsZXQgYmFsIGwgeCBkIHIgPVxuICAgICAgbGV0IGhsID0gbWF0Y2ggbCB3aXRoIEVtcHR5IC0+IDAgfCBOb2RlIHtofSAtPiBoIGluXG4gICAgICBsZXQgaHIgPSBtYXRjaCByIHdpdGggRW1wdHkgLT4gMCB8IE5vZGUge2h9IC0+IGggaW5cbiAgICAgIGlmIGhsID4gaHIgKyAyIHRoZW4gYmVnaW5cbiAgICAgICAgbWF0Y2ggbCB3aXRoXG4gICAgICAgICAgRW1wdHkgLT4gaW52YWxpZF9hcmcgXCJNYXAuYmFsXCJcbiAgICAgICAgfCBOb2Rle2w9bGw7IHY9bHY7IGQ9bGQ7IHI9bHJ9IC0+XG4gICAgICAgICAgICBpZiBoZWlnaHQgbGwgPj0gaGVpZ2h0IGxyIHRoZW5cbiAgICAgICAgICAgICAgY3JlYXRlIGxsIGx2IGxkIChjcmVhdGUgbHIgeCBkIHIpXG4gICAgICAgICAgICBlbHNlIGJlZ2luXG4gICAgICAgICAgICAgIG1hdGNoIGxyIHdpdGhcbiAgICAgICAgICAgICAgICBFbXB0eSAtPiBpbnZhbGlkX2FyZyBcIk1hcC5iYWxcIlxuICAgICAgICAgICAgICB8IE5vZGV7bD1scmw7IHY9bHJ2OyBkPWxyZDsgcj1scnJ9LT5cbiAgICAgICAgICAgICAgICAgIGNyZWF0ZSAoY3JlYXRlIGxsIGx2IGxkIGxybCkgbHJ2IGxyZCAoY3JlYXRlIGxyciB4IGQgcilcbiAgICAgICAgICAgIGVuZFxuICAgICAgZW5kIGVsc2UgaWYgaHIgPiBobCArIDIgdGhlbiBiZWdpblxuICAgICAgICBtYXRjaCByIHdpdGhcbiAgICAgICAgICBFbXB0eSAtPiBpbnZhbGlkX2FyZyBcIk1hcC5iYWxcIlxuICAgICAgICB8IE5vZGV7bD1ybDsgdj1ydjsgZD1yZDsgcj1ycn0gLT5cbiAgICAgICAgICAgIGlmIGhlaWdodCByciA+PSBoZWlnaHQgcmwgdGhlblxuICAgICAgICAgICAgICBjcmVhdGUgKGNyZWF0ZSBsIHggZCBybCkgcnYgcmQgcnJcbiAgICAgICAgICAgIGVsc2UgYmVnaW5cbiAgICAgICAgICAgICAgbWF0Y2ggcmwgd2l0aFxuICAgICAgICAgICAgICAgIEVtcHR5IC0+IGludmFsaWRfYXJnIFwiTWFwLmJhbFwiXG4gICAgICAgICAgICAgIHwgTm9kZXtsPXJsbDsgdj1ybHY7IGQ9cmxkOyByPXJscn0gLT5cbiAgICAgICAgICAgICAgICAgIGNyZWF0ZSAoY3JlYXRlIGwgeCBkIHJsbCkgcmx2IHJsZCAoY3JlYXRlIHJsciBydiByZCBycilcbiAgICAgICAgICAgIGVuZFxuICAgICAgZW5kIGVsc2VcbiAgICAgICAgTm9kZXtsOyB2PXg7IGQ7IHI7IGg9KGlmIGhsID49IGhyIHRoZW4gaGwgKyAxIGVsc2UgaHIgKyAxKX1cblxuICAgIGxldCBlbXB0eSA9IEVtcHR5XG5cbiAgICBsZXQgaXNfZW1wdHkgPSBmdW5jdGlvbiBFbXB0eSAtPiB0cnVlIHwgXyAtPiBmYWxzZVxuXG4gICAgbGV0IHJlYyBhZGQgeCBkYXRhID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBOb2Rle2w9RW1wdHk7IHY9eDsgZD1kYXRhOyByPUVtcHR5OyBoPTF9XG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHI7IGh9IGFzIG0gLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW5cbiAgICAgICAgICAgIGlmIGQgPT0gZGF0YSB0aGVuIG0gZWxzZSBOb2Rle2w7IHY9eDsgZD1kYXRhOyByOyBofVxuICAgICAgICAgIGVsc2UgaWYgYyA8IDAgdGhlblxuICAgICAgICAgICAgbGV0IGxsID0gYWRkIHggZGF0YSBsIGluXG4gICAgICAgICAgICBpZiBsID09IGxsIHRoZW4gbSBlbHNlIGJhbCBsbCB2IGQgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGxldCByciA9IGFkZCB4IGRhdGEgciBpblxuICAgICAgICAgICAgaWYgciA9PSByciB0aGVuIG0gZWxzZSBiYWwgbCB2IGQgcnJcblxuICAgIGxldCByZWMgZmluZCB4ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW4gZFxuICAgICAgICAgIGVsc2UgZmluZCB4IChpZiBjIDwgMCB0aGVuIGwgZWxzZSByKVxuXG4gICAgbGV0IHJlYyBmaW5kX2ZpcnN0X2F1eCB2MCBkMCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICAodjAsIGQwKVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X2F1eCB2IGQgZiBsXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9maXJzdF9hdXggdjAgZDAgZiByXG5cbiAgICBsZXQgcmVjIGZpbmRfZmlyc3QgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfZmlyc3RfYXV4IHYgZCBmIGxcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2ZpcnN0IGYgclxuXG4gICAgbGV0IHJlYyBmaW5kX2ZpcnN0X29wdF9hdXggdjAgZDAgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgU29tZSAodjAsIGQwKVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X29wdF9hdXggdiBkIGYgbFxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfZmlyc3Rfb3B0X2F1eCB2MCBkMCBmIHJcblxuICAgIGxldCByZWMgZmluZF9maXJzdF9vcHQgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgTm9uZVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X29wdF9hdXggdiBkIGYgbFxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfZmlyc3Rfb3B0IGYgclxuXG4gICAgbGV0IHJlYyBmaW5kX2xhc3RfYXV4IHYwIGQwIGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgICh2MCwgZDApXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfbGFzdF9hdXggdiBkIGYgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfbGFzdF9hdXggdjAgZDAgZiBsXG5cbiAgICBsZXQgcmVjIGZpbmRfbGFzdCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9sYXN0X2F1eCB2IGQgZiByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9sYXN0IGYgbFxuXG4gICAgbGV0IHJlYyBmaW5kX2xhc3Rfb3B0X2F1eCB2MCBkMCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBTb21lICh2MCwgZDApXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfbGFzdF9vcHRfYXV4IHYgZCBmIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2xhc3Rfb3B0X2F1eCB2MCBkMCBmIGxcblxuICAgIGxldCByZWMgZmluZF9sYXN0X29wdCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBOb25lXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfbGFzdF9vcHRfYXV4IHYgZCBmIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2xhc3Rfb3B0IGYgbFxuXG4gICAgbGV0IHJlYyBmaW5kX29wdCB4ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBOb25lXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIFNvbWUgZFxuICAgICAgICAgIGVsc2UgZmluZF9vcHQgeCAoaWYgYyA8IDAgdGhlbiBsIGVsc2UgcilcblxuICAgIGxldCByZWMgbWVtIHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIGZhbHNlXG4gICAgICB8IE5vZGUge2w7IHY7IHJ9IC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBjID0gMCB8fCBtZW0geCAoaWYgYyA8IDAgdGhlbiBsIGVsc2UgcilcblxuICAgIGxldCByZWMgbWluX2JpbmRpbmcgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgTm9kZSB7bD1FbXB0eTsgdjsgZH0gLT4gKHYsIGQpXG4gICAgICB8IE5vZGUge2x9IC0+IG1pbl9iaW5kaW5nIGxcblxuICAgIGxldCByZWMgbWluX2JpbmRpbmdfb3B0ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gTm9uZVxuICAgICAgfCBOb2RlIHtsPUVtcHR5OyB2OyBkfSAtPiBTb21lICh2LCBkKVxuICAgICAgfCBOb2RlIHtsfS0+IG1pbl9iaW5kaW5nX29wdCBsXG5cbiAgICBsZXQgcmVjIG1heF9iaW5kaW5nID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IE5vZGUge3Y7IGQ7IHI9RW1wdHl9IC0+ICh2LCBkKVxuICAgICAgfCBOb2RlIHtyfSAtPiBtYXhfYmluZGluZyByXG5cbiAgICBsZXQgcmVjIG1heF9iaW5kaW5nX29wdCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IE5vbmVcbiAgICAgIHwgTm9kZSB7djsgZDsgcj1FbXB0eX0gLT4gU29tZSAodiwgZClcbiAgICAgIHwgTm9kZSB7cn0gLT4gbWF4X2JpbmRpbmdfb3B0IHJcblxuICAgIGxldCByZWMgcmVtb3ZlX21pbl9iaW5kaW5nID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gaW52YWxpZF9hcmcgXCJNYXAucmVtb3ZlX21pbl9lbHRcIlxuICAgICAgfCBOb2RlIHtsPUVtcHR5OyByfSAtPiByXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+IGJhbCAocmVtb3ZlX21pbl9iaW5kaW5nIGwpIHYgZCByXG5cbiAgICBsZXQgbWVyZ2UgdDEgdDIgPVxuICAgICAgbWF0Y2ggKHQxLCB0Mikgd2l0aFxuICAgICAgICAoRW1wdHksIHQpIC0+IHRcbiAgICAgIHwgKHQsIEVtcHR5KSAtPiB0XG4gICAgICB8IChfLCBfKSAtPlxuICAgICAgICAgIGxldCAoeCwgZCkgPSBtaW5fYmluZGluZyB0MiBpblxuICAgICAgICAgIGJhbCB0MSB4IGQgKHJlbW92ZV9taW5fYmluZGluZyB0MilcblxuICAgIGxldCByZWMgcmVtb3ZlIHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIEVtcHR5XG4gICAgICB8IChOb2RlIHtsOyB2OyBkOyByfSBhcyBtKSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiBtZXJnZSBsIHJcbiAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgIGxldCBsbCA9IHJlbW92ZSB4IGwgaW4gaWYgbCA9PSBsbCB0aGVuIG0gZWxzZSBiYWwgbGwgdiBkIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBsZXQgcnIgPSByZW1vdmUgeCByIGluIGlmIHIgPT0gcnIgdGhlbiBtIGVsc2UgYmFsIGwgdiBkIHJyXG5cbiAgICBsZXQgcmVjIHVwZGF0ZSB4IGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIGJlZ2luIG1hdGNoIGYgTm9uZSB3aXRoXG4gICAgICAgICAgfCBOb25lIC0+IEVtcHR5XG4gICAgICAgICAgfCBTb21lIGRhdGEgLT4gTm9kZXtsPUVtcHR5OyB2PXg7IGQ9ZGF0YTsgcj1FbXB0eTsgaD0xfVxuICAgICAgICAgIGVuZFxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByOyBofSBhcyBtIC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIGJlZ2luXG4gICAgICAgICAgICBtYXRjaCBmIChTb21lIGQpIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSAtPiBtZXJnZSBsIHJcbiAgICAgICAgICAgIHwgU29tZSBkYXRhIC0+XG4gICAgICAgICAgICAgICAgaWYgZCA9PSBkYXRhIHRoZW4gbSBlbHNlIE5vZGV7bDsgdj14OyBkPWRhdGE7IHI7IGh9XG4gICAgICAgICAgZW5kIGVsc2UgaWYgYyA8IDAgdGhlblxuICAgICAgICAgICAgbGV0IGxsID0gdXBkYXRlIHggZiBsIGluXG4gICAgICAgICAgICBpZiBsID09IGxsIHRoZW4gbSBlbHNlIGJhbCBsbCB2IGQgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGxldCByciA9IHVwZGF0ZSB4IGYgciBpblxuICAgICAgICAgICAgaWYgciA9PSByciB0aGVuIG0gZWxzZSBiYWwgbCB2IGQgcnJcblxuICAgIGxldCByZWMgaXRlciBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gKClcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICBpdGVyIGYgbDsgZiB2IGQ7IGl0ZXIgZiByXG5cbiAgICBsZXQgcmVjIG1hcCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBFbXB0eVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByOyBofSAtPlxuICAgICAgICAgIGxldCBsJyA9IG1hcCBmIGwgaW5cbiAgICAgICAgICBsZXQgZCcgPSBmIGQgaW5cbiAgICAgICAgICBsZXQgcicgPSBtYXAgZiByIGluXG4gICAgICAgICAgTm9kZXtsPWwnOyB2OyBkPWQnOyByPXInOyBofVxuXG4gICAgbGV0IHJlYyBtYXBpIGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIEVtcHR5XG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHI7IGh9IC0+XG4gICAgICAgICAgbGV0IGwnID0gbWFwaSBmIGwgaW5cbiAgICAgICAgICBsZXQgZCcgPSBmIHYgZCBpblxuICAgICAgICAgIGxldCByJyA9IG1hcGkgZiByIGluXG4gICAgICAgICAgTm9kZXtsPWwnOyB2OyBkPWQnOyByPXInOyBofVxuXG4gICAgbGV0IHJlYyBmb2xkIGYgbSBhY2N1ID1cbiAgICAgIG1hdGNoIG0gd2l0aFxuICAgICAgICBFbXB0eSAtPiBhY2N1XG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgZm9sZCBmIHIgKGYgdiBkIChmb2xkIGYgbCBhY2N1KSlcblxuICAgIGxldCByZWMgZm9yX2FsbCBwID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gdHJ1ZVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPiBwIHYgZCAmJiBmb3JfYWxsIHAgbCAmJiBmb3JfYWxsIHAgclxuXG4gICAgbGV0IHJlYyBleGlzdHMgcCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IGZhbHNlXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+IHAgdiBkIHx8IGV4aXN0cyBwIGwgfHwgZXhpc3RzIHAgclxuXG4gICAgKCogQmV3YXJlOiB0aG9zZSB0d28gZnVuY3Rpb25zIGFzc3VtZSB0aGF0IHRoZSBhZGRlZCBrIGlzICpzdHJpY3RseSpcbiAgICAgICBzbWFsbGVyIChvciBiaWdnZXIpIHRoYW4gYWxsIHRoZSBwcmVzZW50IGtleXMgaW4gdGhlIHRyZWU7IGl0XG4gICAgICAgZG9lcyBub3QgdGVzdCBmb3IgZXF1YWxpdHkgd2l0aCB0aGUgY3VycmVudCBtaW4gKG9yIG1heCkga2V5LlxuXG4gICAgICAgSW5kZWVkLCB0aGV5IGFyZSBvbmx5IHVzZWQgZHVyaW5nIHRoZSBcImpvaW5cIiBvcGVyYXRpb24gd2hpY2hcbiAgICAgICByZXNwZWN0cyB0aGlzIHByZWNvbmRpdGlvbi5cbiAgICAqKVxuXG4gICAgbGV0IHJlYyBhZGRfbWluX2JpbmRpbmcgayB4ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gc2luZ2xldG9uIGsgeFxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICBiYWwgKGFkZF9taW5fYmluZGluZyBrIHggbCkgdiBkIHJcblxuICAgIGxldCByZWMgYWRkX21heF9iaW5kaW5nIGsgeCA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+IHNpbmdsZXRvbiBrIHhcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgYmFsIGwgdiBkIChhZGRfbWF4X2JpbmRpbmcgayB4IHIpXG5cbiAgICAoKiBTYW1lIGFzIGNyZWF0ZSBhbmQgYmFsLCBidXQgbm8gYXNzdW1wdGlvbnMgYXJlIG1hZGUgb24gdGhlXG4gICAgICAgcmVsYXRpdmUgaGVpZ2h0cyBvZiBsIGFuZCByLiAqKVxuXG4gICAgbGV0IHJlYyBqb2luIGwgdiBkIHIgPVxuICAgICAgbWF0Y2ggKGwsIHIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCBfKSAtPiBhZGRfbWluX2JpbmRpbmcgdiBkIHJcbiAgICAgIHwgKF8sIEVtcHR5KSAtPiBhZGRfbWF4X2JpbmRpbmcgdiBkIGxcbiAgICAgIHwgKE5vZGV7bD1sbDsgdj1sdjsgZD1sZDsgcj1scjsgaD1saH0sXG4gICAgICAgICBOb2Rle2w9cmw7IHY9cnY7IGQ9cmQ7IHI9cnI7IGg9cmh9KSAtPlxuICAgICAgICAgIGlmIGxoID4gcmggKyAyIHRoZW4gYmFsIGxsIGx2IGxkIChqb2luIGxyIHYgZCByKSBlbHNlXG4gICAgICAgICAgaWYgcmggPiBsaCArIDIgdGhlbiBiYWwgKGpvaW4gbCB2IGQgcmwpIHJ2IHJkIHJyIGVsc2VcbiAgICAgICAgICBjcmVhdGUgbCB2IGQgclxuXG4gICAgKCogTWVyZ2UgdHdvIHRyZWVzIGwgYW5kIHIgaW50byBvbmUuXG4gICAgICAgQWxsIGVsZW1lbnRzIG9mIGwgbXVzdCBwcmVjZWRlIHRoZSBlbGVtZW50cyBvZiByLlxuICAgICAgIE5vIGFzc3VtcHRpb24gb24gdGhlIGhlaWdodHMgb2YgbCBhbmQgci4gKilcblxuICAgIGxldCBjb25jYXQgdDEgdDIgPVxuICAgICAgbWF0Y2ggKHQxLCB0Mikgd2l0aFxuICAgICAgICAoRW1wdHksIHQpIC0+IHRcbiAgICAgIHwgKHQsIEVtcHR5KSAtPiB0XG4gICAgICB8IChfLCBfKSAtPlxuICAgICAgICAgIGxldCAoeCwgZCkgPSBtaW5fYmluZGluZyB0MiBpblxuICAgICAgICAgIGpvaW4gdDEgeCBkIChyZW1vdmVfbWluX2JpbmRpbmcgdDIpXG5cbiAgICBsZXQgY29uY2F0X29yX2pvaW4gdDEgdiBkIHQyID1cbiAgICAgIG1hdGNoIGQgd2l0aFxuICAgICAgfCBTb21lIGQgLT4gam9pbiB0MSB2IGQgdDJcbiAgICAgIHwgTm9uZSAtPiBjb25jYXQgdDEgdDJcblxuICAgIGxldCByZWMgc3BsaXQgeCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgKEVtcHR5LCBOb25lLCBFbXB0eSlcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW4gKGwsIFNvbWUgZCwgcilcbiAgICAgICAgICBlbHNlIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgIGxldCAobGwsIHByZXMsIHJsKSA9IHNwbGl0IHggbCBpbiAobGwsIHByZXMsIGpvaW4gcmwgdiBkIHIpXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbGV0IChsciwgcHJlcywgcnIpID0gc3BsaXQgeCByIGluIChqb2luIGwgdiBkIGxyLCBwcmVzLCBycilcblxuICAgIGxldCByZWMgbWVyZ2UgZiBzMSBzMiA9XG4gICAgICBtYXRjaCAoczEsIHMyKSB3aXRoXG4gICAgICAgIChFbXB0eSwgRW1wdHkpIC0+IEVtcHR5XG4gICAgICB8IChOb2RlIHtsPWwxOyB2PXYxOyBkPWQxOyByPXIxOyBoPWgxfSwgXykgd2hlbiBoMSA+PSBoZWlnaHQgczIgLT5cbiAgICAgICAgICBsZXQgKGwyLCBkMiwgcjIpID0gc3BsaXQgdjEgczIgaW5cbiAgICAgICAgICBjb25jYXRfb3Jfam9pbiAobWVyZ2UgZiBsMSBsMikgdjEgKGYgdjEgKFNvbWUgZDEpIGQyKSAobWVyZ2UgZiByMSByMilcbiAgICAgIHwgKF8sIE5vZGUge2w9bDI7IHY9djI7IGQ9ZDI7IHI9cjJ9KSAtPlxuICAgICAgICAgIGxldCAobDEsIGQxLCByMSkgPSBzcGxpdCB2MiBzMSBpblxuICAgICAgICAgIGNvbmNhdF9vcl9qb2luIChtZXJnZSBmIGwxIGwyKSB2MiAoZiB2MiBkMSAoU29tZSBkMikpIChtZXJnZSBmIHIxIHIyKVxuICAgICAgfCBfIC0+XG4gICAgICAgICAgYXNzZXJ0IGZhbHNlXG5cbiAgICBsZXQgcmVjIHVuaW9uIGYgczEgczIgPVxuICAgICAgbWF0Y2ggKHMxLCBzMikgd2l0aFxuICAgICAgfCAoRW1wdHksIHMpIHwgKHMsIEVtcHR5KSAtPiBzXG4gICAgICB8IChOb2RlIHtsPWwxOyB2PXYxOyBkPWQxOyByPXIxOyBoPWgxfSxcbiAgICAgICAgIE5vZGUge2w9bDI7IHY9djI7IGQ9ZDI7IHI9cjI7IGg9aDJ9KSAtPlxuICAgICAgICAgIGlmIGgxID49IGgyIHRoZW5cbiAgICAgICAgICAgIGxldCAobDIsIGQyLCByMikgPSBzcGxpdCB2MSBzMiBpblxuICAgICAgICAgICAgbGV0IGwgPSB1bmlvbiBmIGwxIGwyIGFuZCByID0gdW5pb24gZiByMSByMiBpblxuICAgICAgICAgICAgbWF0Y2ggZDIgd2l0aFxuICAgICAgICAgICAgfCBOb25lIC0+IGpvaW4gbCB2MSBkMSByXG4gICAgICAgICAgICB8IFNvbWUgZDIgLT4gY29uY2F0X29yX2pvaW4gbCB2MSAoZiB2MSBkMSBkMikgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGxldCAobDEsIGQxLCByMSkgPSBzcGxpdCB2MiBzMSBpblxuICAgICAgICAgICAgbGV0IGwgPSB1bmlvbiBmIGwxIGwyIGFuZCByID0gdW5pb24gZiByMSByMiBpblxuICAgICAgICAgICAgbWF0Y2ggZDEgd2l0aFxuICAgICAgICAgICAgfCBOb25lIC0+IGpvaW4gbCB2MiBkMiByXG4gICAgICAgICAgICB8IFNvbWUgZDEgLT4gY29uY2F0X29yX2pvaW4gbCB2MiAoZiB2MiBkMSBkMikgclxuXG4gICAgbGV0IHJlYyBmaWx0ZXIgcCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IEVtcHR5XG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IGFzIG0gLT5cbiAgICAgICAgICAoKiBjYWxsIFtwXSBpbiB0aGUgZXhwZWN0ZWQgbGVmdC10by1yaWdodCBvcmRlciAqKVxuICAgICAgICAgIGxldCBsJyA9IGZpbHRlciBwIGwgaW5cbiAgICAgICAgICBsZXQgcHZkID0gcCB2IGQgaW5cbiAgICAgICAgICBsZXQgcicgPSBmaWx0ZXIgcCByIGluXG4gICAgICAgICAgaWYgcHZkIHRoZW4gaWYgbD09bCcgJiYgcj09cicgdGhlbiBtIGVsc2Ugam9pbiBsJyB2IGQgcidcbiAgICAgICAgICBlbHNlIGNvbmNhdCBsJyByJ1xuXG4gICAgbGV0IHJlYyBmaWx0ZXJfbWFwIGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBFbXB0eVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgICgqIGNhbGwgW2ZdIGluIHRoZSBleHBlY3RlZCBsZWZ0LXRvLXJpZ2h0IG9yZGVyICopXG4gICAgICAgICAgbGV0IGwnID0gZmlsdGVyX21hcCBmIGwgaW5cbiAgICAgICAgICBsZXQgZnZkID0gZiB2IGQgaW5cbiAgICAgICAgICBsZXQgcicgPSBmaWx0ZXJfbWFwIGYgciBpblxuICAgICAgICAgIGJlZ2luIG1hdGNoIGZ2ZCB3aXRoXG4gICAgICAgICAgICB8IFNvbWUgZCcgLT4gam9pbiBsJyB2IGQnIHInXG4gICAgICAgICAgICB8IE5vbmUgLT4gY29uY2F0IGwnIHInXG4gICAgICAgICAgZW5kXG5cbiAgICBsZXQgcmVjIHBhcnRpdGlvbiBwID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gKEVtcHR5LCBFbXB0eSlcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICAoKiBjYWxsIFtwXSBpbiB0aGUgZXhwZWN0ZWQgbGVmdC10by1yaWdodCBvcmRlciAqKVxuICAgICAgICAgIGxldCAobHQsIGxmKSA9IHBhcnRpdGlvbiBwIGwgaW5cbiAgICAgICAgICBsZXQgcHZkID0gcCB2IGQgaW5cbiAgICAgICAgICBsZXQgKHJ0LCByZikgPSBwYXJ0aXRpb24gcCByIGluXG4gICAgICAgICAgaWYgcHZkXG4gICAgICAgICAgdGhlbiAoam9pbiBsdCB2IGQgcnQsIGNvbmNhdCBsZiByZilcbiAgICAgICAgICBlbHNlIChjb25jYXQgbHQgcnQsIGpvaW4gbGYgdiBkIHJmKVxuXG4gICAgdHlwZSAnYSBlbnVtZXJhdGlvbiA9IEVuZCB8IE1vcmUgb2Yga2V5ICogJ2EgKiAnYSB0ICogJ2EgZW51bWVyYXRpb25cblxuICAgIGxldCByZWMgY29uc19lbnVtIG0gZSA9XG4gICAgICBtYXRjaCBtIHdpdGhcbiAgICAgICAgRW1wdHkgLT4gZVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPiBjb25zX2VudW0gbCAoTW9yZSh2LCBkLCByLCBlKSlcblxuICAgIGxldCBjb21wYXJlIGNtcCBtMSBtMiA9XG4gICAgICBsZXQgcmVjIGNvbXBhcmVfYXV4IGUxIGUyID1cbiAgICAgICAgICBtYXRjaCAoZTEsIGUyKSB3aXRoXG4gICAgICAgICAgKEVuZCwgRW5kKSAtPiAwXG4gICAgICAgIHwgKEVuZCwgXykgIC0+IC0xXG4gICAgICAgIHwgKF8sIEVuZCkgLT4gMVxuICAgICAgICB8IChNb3JlKHYxLCBkMSwgcjEsIGUxKSwgTW9yZSh2MiwgZDIsIHIyLCBlMikpIC0+XG4gICAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHYxIHYyIGluXG4gICAgICAgICAgICBpZiBjIDw+IDAgdGhlbiBjIGVsc2VcbiAgICAgICAgICAgIGxldCBjID0gY21wIGQxIGQyIGluXG4gICAgICAgICAgICBpZiBjIDw+IDAgdGhlbiBjIGVsc2VcbiAgICAgICAgICAgIGNvbXBhcmVfYXV4IChjb25zX2VudW0gcjEgZTEpIChjb25zX2VudW0gcjIgZTIpXG4gICAgICBpbiBjb21wYXJlX2F1eCAoY29uc19lbnVtIG0xIEVuZCkgKGNvbnNfZW51bSBtMiBFbmQpXG5cbiAgICBsZXQgZXF1YWwgY21wIG0xIG0yID1cbiAgICAgIGxldCByZWMgZXF1YWxfYXV4IGUxIGUyID1cbiAgICAgICAgICBtYXRjaCAoZTEsIGUyKSB3aXRoXG4gICAgICAgICAgKEVuZCwgRW5kKSAtPiB0cnVlXG4gICAgICAgIHwgKEVuZCwgXykgIC0+IGZhbHNlXG4gICAgICAgIHwgKF8sIEVuZCkgLT4gZmFsc2VcbiAgICAgICAgfCAoTW9yZSh2MSwgZDEsIHIxLCBlMSksIE1vcmUodjIsIGQyLCByMiwgZTIpKSAtPlxuICAgICAgICAgICAgT3JkLmNvbXBhcmUgdjEgdjIgPSAwICYmIGNtcCBkMSBkMiAmJlxuICAgICAgICAgICAgZXF1YWxfYXV4IChjb25zX2VudW0gcjEgZTEpIChjb25zX2VudW0gcjIgZTIpXG4gICAgICBpbiBlcXVhbF9hdXggKGNvbnNfZW51bSBtMSBFbmQpIChjb25zX2VudW0gbTIgRW5kKVxuXG4gICAgbGV0IHJlYyBjYXJkaW5hbCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IDBcbiAgICAgIHwgTm9kZSB7bDsgcn0gLT4gY2FyZGluYWwgbCArIDEgKyBjYXJkaW5hbCByXG5cbiAgICBsZXQgcmVjIGJpbmRpbmdzX2F1eCBhY2N1ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gYWNjdVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPiBiaW5kaW5nc19hdXggKCh2LCBkKSA6OiBiaW5kaW5nc19hdXggYWNjdSByKSBsXG5cbiAgICBsZXQgYmluZGluZ3MgcyA9XG4gICAgICBiaW5kaW5nc19hdXggW10gc1xuXG4gICAgbGV0IGNob29zZSA9IG1pbl9iaW5kaW5nXG5cbiAgICBsZXQgY2hvb3NlX29wdCA9IG1pbl9iaW5kaW5nX29wdFxuXG4gICAgbGV0IGFkZF9zZXEgaSBtID1cbiAgICAgIFNlcS5mb2xkX2xlZnQgKGZ1biBtIChrLHYpIC0+IGFkZCBrIHYgbSkgbSBpXG5cbiAgICBsZXQgb2Zfc2VxIGkgPSBhZGRfc2VxIGkgZW1wdHlcblxuICAgIGxldCByZWMgc2VxX29mX2VudW1fIGMgKCkgPSBtYXRjaCBjIHdpdGhcbiAgICAgIHwgRW5kIC0+IFNlcS5OaWxcbiAgICAgIHwgTW9yZSAoayx2LHQscmVzdCkgLT4gU2VxLkNvbnMgKChrLHYpLCBzZXFfb2ZfZW51bV8gKGNvbnNfZW51bSB0IHJlc3QpKVxuXG4gICAgbGV0IHRvX3NlcSBtID1cbiAgICAgIHNlcV9vZl9lbnVtXyAoY29uc19lbnVtIG0gRW5kKVxuXG4gICAgbGV0IHJlYyBzbm9jX2VudW0gcyBlID1cbiAgICAgIG1hdGNoIHMgd2l0aFxuICAgICAgICBFbXB0eSAtPiBlXG4gICAgICB8IE5vZGV7bDsgdjsgZDsgcn0gLT4gc25vY19lbnVtIHIgKE1vcmUodiwgZCwgbCwgZSkpXG5cbiAgICBsZXQgcmVjIHJldl9zZXFfb2ZfZW51bV8gYyAoKSA9IG1hdGNoIGMgd2l0aFxuICAgICAgfCBFbmQgLT4gU2VxLk5pbFxuICAgICAgfCBNb3JlIChrLHYsdCxyZXN0KSAtPlxuICAgICAgICAgIFNlcS5Db25zICgoayx2KSwgcmV2X3NlcV9vZl9lbnVtXyAoc25vY19lbnVtIHQgcmVzdCkpXG5cbiAgICBsZXQgdG9fcmV2X3NlcSBjID1cbiAgICAgIHJldl9zZXFfb2ZfZW51bV8gKHNub2NfZW51bSBjIEVuZClcblxuICAgIGxldCB0b19zZXFfZnJvbSBsb3cgbSA9XG4gICAgICBsZXQgcmVjIGF1eCBsb3cgbSBjID0gbWF0Y2ggbSB3aXRoXG4gICAgICAgIHwgRW1wdHkgLT4gY1xuICAgICAgICB8IE5vZGUge2w7IHY7IGQ7IHI7IF99IC0+XG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBPcmQuY29tcGFyZSB2IGxvdyB3aXRoXG4gICAgICAgICAgICAgIHwgMCAtPiBNb3JlICh2LCBkLCByLCBjKVxuICAgICAgICAgICAgICB8IG4gd2hlbiBuPDAgLT4gYXV4IGxvdyByIGNcbiAgICAgICAgICAgICAgfCBfIC0+IGF1eCBsb3cgbCAoTW9yZSAodiwgZCwgciwgYykpXG4gICAgICAgICAgICBlbmRcbiAgICAgIGluXG4gICAgICBzZXFfb2ZfZW51bV8gKGF1eCBsb3cgbSBFbmQpXG5lbmRcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSAnYSB0ID0geyBtdXRhYmxlIGMgOiAnYSBsaXN0OyBtdXRhYmxlIGxlbiA6IGludDsgfVxuXG5leGNlcHRpb24gRW1wdHlcblxubGV0IGNyZWF0ZSAoKSA9IHsgYyA9IFtdOyBsZW4gPSAwOyB9XG5cbmxldCBjbGVhciBzID0gcy5jIDwtIFtdOyBzLmxlbiA8LSAwXG5cbmxldCBjb3B5IHMgPSB7IGMgPSBzLmM7IGxlbiA9IHMubGVuOyB9XG5cbmxldCBwdXNoIHggcyA9IHMuYyA8LSB4IDo6IHMuYzsgcy5sZW4gPC0gcy5sZW4gKyAxXG5cbmxldCBwb3AgcyA9XG4gIG1hdGNoIHMuYyB3aXRoXG4gIHwgaGQ6OnRsIC0+IHMuYyA8LSB0bDsgcy5sZW4gPC0gcy5sZW4gLSAxOyBoZFxuICB8IFtdICAgICAtPiByYWlzZSBFbXB0eVxuXG5sZXQgcG9wX29wdCBzID1cbiAgbWF0Y2ggcy5jIHdpdGhcbiAgfCBoZDo6dGwgLT4gcy5jIDwtIHRsOyBzLmxlbiA8LSBzLmxlbiAtIDE7IFNvbWUgaGRcbiAgfCBbXSAgICAgLT4gTm9uZVxuXG5sZXQgdG9wIHMgPVxuICBtYXRjaCBzLmMgd2l0aFxuICB8IGhkOjpfIC0+IGhkXG4gIHwgW10gICAgLT4gcmFpc2UgRW1wdHlcblxubGV0IHRvcF9vcHQgcyA9XG4gIG1hdGNoIHMuYyB3aXRoXG4gIHwgaGQ6Ol8gLT4gU29tZSBoZFxuICB8IFtdICAgIC0+IE5vbmVcblxubGV0IGlzX2VtcHR5IHMgPSAocy5jID0gW10pXG5cbmxldCBsZW5ndGggcyA9IHMubGVuXG5cbmxldCBpdGVyIGYgcyA9IExpc3QuaXRlciBmIHMuY1xuXG5sZXQgZm9sZCBmIGFjYyBzID0gTGlzdC5mb2xkX2xlZnQgZiBhY2Mgcy5jXG5cbigqKiB7MSBJdGVyYXRvcnN9ICopXG5cbmxldCB0b19zZXEgcyA9IExpc3QudG9fc2VxIHMuY1xuXG5sZXQgYWRkX3NlcSBxIGkgPSBTZXEuaXRlciAoZnVuIHggLT4gcHVzaCB4IHEpIGlcblxubGV0IG9mX3NlcSBnID1cbiAgbGV0IHMgPSBjcmVhdGUoKSBpblxuICBhZGRfc2VxIHMgZztcbiAgc1xuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICBGcmFuY29pcyBQb3R0aWVyLCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICBKZXJlbWllIERpbWlubywgSmFuZSBTdHJlZXQgRXVyb3BlICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAwMiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5leGNlcHRpb24gRW1wdHlcblxudHlwZSAnYSBjZWxsID1cbiAgfCBOaWxcbiAgfCBDb25zIG9mIHsgY29udGVudDogJ2E7IG11dGFibGUgbmV4dDogJ2EgY2VsbCB9XG5cbnR5cGUgJ2EgdCA9IHtcbiAgbXV0YWJsZSBsZW5ndGg6IGludDtcbiAgbXV0YWJsZSBmaXJzdDogJ2EgY2VsbDtcbiAgbXV0YWJsZSBsYXN0OiAnYSBjZWxsXG59XG5cbmxldCBjcmVhdGUgKCkgPSB7XG4gIGxlbmd0aCA9IDA7XG4gIGZpcnN0ID0gTmlsO1xuICBsYXN0ID0gTmlsXG59XG5cbmxldCBjbGVhciBxID1cbiAgcS5sZW5ndGggPC0gMDtcbiAgcS5maXJzdCA8LSBOaWw7XG4gIHEubGFzdCA8LSBOaWxcblxubGV0IGFkZCB4IHEgPVxuICBsZXQgY2VsbCA9IENvbnMge1xuICAgIGNvbnRlbnQgPSB4O1xuICAgIG5leHQgPSBOaWxcbiAgfSBpblxuICBtYXRjaCBxLmxhc3Qgd2l0aFxuICB8IE5pbCAtPlxuICAgIHEubGVuZ3RoIDwtIDE7XG4gICAgcS5maXJzdCA8LSBjZWxsO1xuICAgIHEubGFzdCA8LSBjZWxsXG4gIHwgQ29ucyBsYXN0IC0+XG4gICAgcS5sZW5ndGggPC0gcS5sZW5ndGggKyAxO1xuICAgIGxhc3QubmV4dCA8LSBjZWxsO1xuICAgIHEubGFzdCA8LSBjZWxsXG5cbmxldCBwdXNoID1cbiAgYWRkXG5cbmxldCBwZWVrIHEgPVxuICBtYXRjaCBxLmZpcnN0IHdpdGhcbiAgfCBOaWwgLT4gcmFpc2UgRW1wdHlcbiAgfCBDb25zIHsgY29udGVudCB9IC0+IGNvbnRlbnRcblxubGV0IHBlZWtfb3B0IHEgPVxuICBtYXRjaCBxLmZpcnN0IHdpdGhcbiAgfCBOaWwgLT4gTm9uZVxuICB8IENvbnMgeyBjb250ZW50IH0gLT4gU29tZSBjb250ZW50XG5cbmxldCB0b3AgPVxuICBwZWVrXG5cbmxldCB0YWtlIHEgPVxuICBtYXRjaCBxLmZpcnN0IHdpdGhcbiAgfCBOaWwgLT4gcmFpc2UgRW1wdHlcbiAgfCBDb25zIHsgY29udGVudDsgbmV4dCA9IE5pbCB9IC0+XG4gICAgY2xlYXIgcTtcbiAgICBjb250ZW50XG4gIHwgQ29ucyB7IGNvbnRlbnQ7IG5leHQgfSAtPlxuICAgIHEubGVuZ3RoIDwtIHEubGVuZ3RoIC0gMTtcbiAgICBxLmZpcnN0IDwtIG5leHQ7XG4gICAgY29udGVudFxuXG5sZXQgdGFrZV9vcHQgcSA9XG4gIG1hdGNoIHEuZmlyc3Qgd2l0aFxuICB8IE5pbCAtPiBOb25lXG4gIHwgQ29ucyB7IGNvbnRlbnQ7IG5leHQgPSBOaWwgfSAtPlxuICAgIGNsZWFyIHE7XG4gICAgU29tZSBjb250ZW50XG4gIHwgQ29ucyB7IGNvbnRlbnQ7IG5leHQgfSAtPlxuICAgIHEubGVuZ3RoIDwtIHEubGVuZ3RoIC0gMTtcbiAgICBxLmZpcnN0IDwtIG5leHQ7XG4gICAgU29tZSBjb250ZW50XG5cbmxldCBwb3AgPVxuICB0YWtlXG5cbmxldCBjb3B5ID1cbiAgbGV0IHJlYyBjb3B5IHFfcmVzIHByZXYgY2VsbCA9XG4gICAgbWF0Y2ggY2VsbCB3aXRoXG4gICAgfCBOaWwgLT4gcV9yZXMubGFzdCA8LSBwcmV2OyBxX3Jlc1xuICAgIHwgQ29ucyB7IGNvbnRlbnQ7IG5leHQgfSAtPlxuICAgICAgbGV0IHJlcyA9IENvbnMgeyBjb250ZW50OyBuZXh0ID0gTmlsIH0gaW5cbiAgICAgIGJlZ2luIG1hdGNoIHByZXYgd2l0aFxuICAgICAgfCBOaWwgLT4gcV9yZXMuZmlyc3QgPC0gcmVzXG4gICAgICB8IENvbnMgcCAtPiBwLm5leHQgPC0gcmVzXG4gICAgICBlbmQ7XG4gICAgICBjb3B5IHFfcmVzIHJlcyBuZXh0XG4gIGluXG4gIGZ1biBxIC0+IGNvcHkgeyBsZW5ndGggPSBxLmxlbmd0aDsgZmlyc3QgPSBOaWw7IGxhc3QgPSBOaWwgfSBOaWwgcS5maXJzdFxuXG5sZXQgaXNfZW1wdHkgcSA9XG4gIHEubGVuZ3RoID0gMFxuXG5sZXQgbGVuZ3RoIHEgPVxuICBxLmxlbmd0aFxuXG5sZXQgaXRlciA9XG4gIGxldCByZWMgaXRlciBmIGNlbGwgPVxuICAgIG1hdGNoIGNlbGwgd2l0aFxuICAgIHwgTmlsIC0+ICgpXG4gICAgfCBDb25zIHsgY29udGVudDsgbmV4dCB9IC0+XG4gICAgICBmIGNvbnRlbnQ7XG4gICAgICBpdGVyIGYgbmV4dFxuICBpblxuICBmdW4gZiBxIC0+IGl0ZXIgZiBxLmZpcnN0XG5cbmxldCBmb2xkID1cbiAgbGV0IHJlYyBmb2xkIGYgYWNjdSBjZWxsID1cbiAgICBtYXRjaCBjZWxsIHdpdGhcbiAgICB8IE5pbCAtPiBhY2N1XG4gICAgfCBDb25zIHsgY29udGVudDsgbmV4dCB9IC0+XG4gICAgICBsZXQgYWNjdSA9IGYgYWNjdSBjb250ZW50IGluXG4gICAgICBmb2xkIGYgYWNjdSBuZXh0XG4gIGluXG4gIGZ1biBmIGFjY3UgcSAtPiBmb2xkIGYgYWNjdSBxLmZpcnN0XG5cbmxldCB0cmFuc2ZlciBxMSBxMiA9XG4gIGlmIHExLmxlbmd0aCA+IDAgdGhlblxuICAgIG1hdGNoIHEyLmxhc3Qgd2l0aFxuICAgIHwgTmlsIC0+XG4gICAgICBxMi5sZW5ndGggPC0gcTEubGVuZ3RoO1xuICAgICAgcTIuZmlyc3QgPC0gcTEuZmlyc3Q7XG4gICAgICBxMi5sYXN0IDwtIHExLmxhc3Q7XG4gICAgICBjbGVhciBxMVxuICAgIHwgQ29ucyBsYXN0IC0+XG4gICAgICBxMi5sZW5ndGggPC0gcTIubGVuZ3RoICsgcTEubGVuZ3RoO1xuICAgICAgbGFzdC5uZXh0IDwtIHExLmZpcnN0O1xuICAgICAgcTIubGFzdCA8LSBxMS5sYXN0O1xuICAgICAgY2xlYXIgcTFcblxuKCoqIHsxIEl0ZXJhdG9yc30gKilcblxubGV0IHRvX3NlcSBxID1cbiAgbGV0IHJlYyBhdXggYyAoKSA9IG1hdGNoIGMgd2l0aFxuICAgIHwgTmlsIC0+IFNlcS5OaWxcbiAgICB8IENvbnMgeyBjb250ZW50PXg7IG5leHQ7IH0gLT4gU2VxLkNvbnMgKHgsIGF1eCBuZXh0KVxuICBpblxuICBhdXggcS5maXJzdFxuXG5sZXQgYWRkX3NlcSBxIGkgPSBTZXEuaXRlciAoZnVuIHggLT4gcHVzaCB4IHEpIGlcblxubGV0IG9mX3NlcSBnID1cbiAgbGV0IHEgPSBjcmVhdGUoKSBpblxuICBhZGRfc2VxIHEgZztcbiAgcVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICBEYW5pZWwgZGUgUmF1Z2xhdWRyZSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NyBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlICdhIHQgPSAnYSBjZWxsIG9wdGlvblxuYW5kICdhIGNlbGwgPSB7IG11dGFibGUgY291bnQgOiBpbnQ7IG11dGFibGUgZGF0YSA6ICdhIGRhdGEgfVxuYW5kICdhIGRhdGEgPVxuICAgIFNlbXB0eVxuICB8IFNjb25zIG9mICdhICogJ2EgZGF0YVxuICB8IFNhcHAgb2YgJ2EgZGF0YSAqICdhIGRhdGFcbiAgfCBTbGF6eSBvZiAnYSBkYXRhIExhenkudFxuICB8IFNnZW4gb2YgJ2EgZ2VuXG4gIHwgU2J1ZmZpbyA6IGJ1ZmZpbyAtPiBjaGFyIGRhdGFcbmFuZCAnYSBnZW4gPSB7IG11dGFibGUgY3VyciA6ICdhIG9wdGlvbiBvcHRpb247IGZ1bmMgOiBpbnQgLT4gJ2Egb3B0aW9uIH1cbmFuZCBidWZmaW8gPVxuICB7IGljIDogaW5fY2hhbm5lbDsgYnVmZiA6IGJ5dGVzOyBtdXRhYmxlIGxlbiA6IGludDsgbXV0YWJsZSBpbmQgOiBpbnQgfVxuXG5leGNlcHRpb24gRmFpbHVyZVxuZXhjZXB0aW9uIEVycm9yIG9mIHN0cmluZ1xuXG5sZXQgY291bnQgPSBmdW5jdGlvblxuICB8IE5vbmUgLT4gMFxuICB8IFNvbWUgeyBjb3VudCB9IC0+IGNvdW50XG5sZXQgZGF0YSA9IGZ1bmN0aW9uXG4gIHwgTm9uZSAtPiBTZW1wdHlcbiAgfCBTb21lIHsgZGF0YSB9IC0+IGRhdGFcblxubGV0IGZpbGxfYnVmZiBiID1cbiAgYi5sZW4gPC0gaW5wdXQgYi5pYyBiLmJ1ZmYgMCAoQnl0ZXMubGVuZ3RoIGIuYnVmZik7IGIuaW5kIDwtIDBcblxuXG5sZXQgcmVjIGdldF9kYXRhIDogdHlwZSB2LiBpbnQgLT4gdiBkYXRhIC0+IHYgZGF0YSA9IGZ1biBjb3VudCBkIC0+IG1hdGNoIGQgd2l0aFxuICgqIFJldHVybnMgZWl0aGVyIFNlbXB0eSBvciBTY29ucyhhLCBfKSBldmVuIHdoZW4gZCBpcyBhIGdlbmVyYXRvclxuICAgIG9yIGEgYnVmZmVyLiBJbiB0aG9zZSBjYXNlcywgdGhlIGl0ZW0gYSBpcyBzZWVuIGFzIGV4dHJhY3RlZCBmcm9tXG4gdGhlIGdlbmVyYXRvci9idWZmZXIuXG4gVGhlIGNvdW50IHBhcmFtZXRlciBpcyB1c2VkIGZvciBjYWxsaW5nIGBTZ2VuLWZ1bmN0aW9ucycuICAqKVxuICAgU2VtcHR5IHwgU2NvbnMgKF8sIF8pIC0+IGRcbiB8IFNhcHAgKGQxLCBkMikgLT5cbiAgICAgYmVnaW4gbWF0Y2ggZ2V0X2RhdGEgY291bnQgZDEgd2l0aFxuICAgICAgIFNjb25zIChhLCBkMTEpIC0+IFNjb25zIChhLCBTYXBwIChkMTEsIGQyKSlcbiAgICAgfCBTZW1wdHkgLT4gZ2V0X2RhdGEgY291bnQgZDJcbiAgICAgfCBfIC0+IGFzc2VydCBmYWxzZVxuICAgICBlbmRcbiB8IFNnZW4ge2N1cnIgPSBTb21lIE5vbmV9IC0+IFNlbXB0eVxuIHwgU2dlbiAoe2N1cnIgPSBTb21lKFNvbWUgYSl9IGFzIGcpIC0+XG4gICAgIGcuY3VyciA8LSBOb25lOyBTY29ucyhhLCBkKVxuIHwgU2dlbiBnIC0+XG4gICAgIGJlZ2luIG1hdGNoIGcuZnVuYyBjb3VudCB3aXRoXG4gICAgICAgTm9uZSAtPiBnLmN1cnIgPC0gU29tZShOb25lKTsgU2VtcHR5XG4gICAgIHwgU29tZSBhIC0+IFNjb25zKGEsIGQpXG4gICAgICAgICAoKiBXYXJuaW5nOiBhbnlvbmUgdXNpbmcgZyB0aGlua3MgdGhhdCBhbiBpdGVtIGhhcyBiZWVuIHJlYWQgKilcbiAgICAgZW5kXG4gfCBTYnVmZmlvIGIgLT5cbiAgICAgaWYgYi5pbmQgPj0gYi5sZW4gdGhlbiBmaWxsX2J1ZmYgYjtcbiAgICAgaWYgYi5sZW4gPT0gMCB0aGVuIFNlbXB0eSBlbHNlXG4gICAgICAgbGV0IHIgPSBCeXRlcy51bnNhZmVfZ2V0IGIuYnVmZiBiLmluZCBpblxuICAgICAgICgqIFdhcm5pbmc6IGFueW9uZSB1c2luZyBnIHRoaW5rcyB0aGF0IGFuIGl0ZW0gaGFzIGJlZW4gcmVhZCAqKVxuICAgICAgIGIuaW5kIDwtIHN1Y2MgYi5pbmQ7IFNjb25zKHIsIGQpXG4gfCBTbGF6eSBmIC0+IGdldF9kYXRhIGNvdW50IChMYXp5LmZvcmNlIGYpXG5cblxubGV0IHJlYyBwZWVrX2RhdGEgOiB0eXBlIHYuIHYgY2VsbCAtPiB2IG9wdGlvbiA9IGZ1biBzIC0+XG4gKCogY29uc3VsdCB0aGUgZmlyc3QgaXRlbSBvZiBzICopXG4gbWF0Y2ggcy5kYXRhIHdpdGhcbiAgIFNlbXB0eSAtPiBOb25lXG4gfCBTY29ucyAoYSwgXykgLT4gU29tZSBhXG4gfCBTYXBwIChfLCBfKSAtPlxuICAgICBiZWdpbiBtYXRjaCBnZXRfZGF0YSBzLmNvdW50IHMuZGF0YSB3aXRoXG4gICAgICAgU2NvbnMoYSwgXykgYXMgZCAtPiBzLmRhdGEgPC0gZDsgU29tZSBhXG4gICAgIHwgU2VtcHR5IC0+IE5vbmVcbiAgICAgfCBfIC0+IGFzc2VydCBmYWxzZVxuICAgICBlbmRcbiB8IFNsYXp5IGYgLT4gcy5kYXRhIDwtIChMYXp5LmZvcmNlIGYpOyBwZWVrX2RhdGEgc1xuIHwgU2dlbiB7Y3VyciA9IFNvbWUgYX0gLT4gYVxuIHwgU2dlbiBnIC0+IGxldCB4ID0gZy5mdW5jIHMuY291bnQgaW4gZy5jdXJyIDwtIFNvbWUgeDsgeFxuIHwgU2J1ZmZpbyBiIC0+XG4gICAgIGlmIGIuaW5kID49IGIubGVuIHRoZW4gZmlsbF9idWZmIGI7XG4gICAgIGlmIGIubGVuID09IDAgdGhlbiBiZWdpbiBzLmRhdGEgPC0gU2VtcHR5OyBOb25lIGVuZFxuICAgICBlbHNlIFNvbWUgKEJ5dGVzLnVuc2FmZV9nZXQgYi5idWZmIGIuaW5kKVxuXG5cbmxldCBwZWVrID0gZnVuY3Rpb25cbiAgfCBOb25lIC0+IE5vbmVcbiAgfCBTb21lIHMgLT4gcGVla19kYXRhIHNcblxuXG5sZXQgcmVjIGp1bmtfZGF0YSA6IHR5cGUgdi4gdiBjZWxsIC0+IHVuaXQgPSBmdW4gcyAtPlxuICBtYXRjaCBzLmRhdGEgd2l0aFxuICAgIFNjb25zIChfLCBkKSAtPiBzLmNvdW50IDwtIChzdWNjIHMuY291bnQpOyBzLmRhdGEgPC0gZFxuICB8IFNnZW4gKHtjdXJyID0gU29tZSBffSBhcyBnKSAtPiBzLmNvdW50IDwtIChzdWNjIHMuY291bnQpOyBnLmN1cnIgPC0gTm9uZVxuICB8IFNidWZmaW8gYiAtPlxuICAgICAgaWYgYi5pbmQgPj0gYi5sZW4gdGhlbiBmaWxsX2J1ZmYgYjtcbiAgICAgIGlmIGIubGVuID09IDAgdGhlbiBzLmRhdGEgPC0gU2VtcHR5XG4gICAgICBlbHNlIChzLmNvdW50IDwtIChzdWNjIHMuY291bnQpOyBiLmluZCA8LSBzdWNjIGIuaW5kKVxuICB8IF8gLT5cbiAgICAgIG1hdGNoIHBlZWtfZGF0YSBzIHdpdGhcbiAgICAgICAgTm9uZSAtPiAoKVxuICAgICAgfCBTb21lIF8gLT4ganVua19kYXRhIHNcblxuXG5sZXQganVuayA9IGZ1bmN0aW9uXG4gIHwgTm9uZSAtPiAoKVxuICB8IFNvbWUgZGF0YSAtPiBqdW5rX2RhdGEgZGF0YVxuXG5sZXQgcmVjIG5nZXRfZGF0YSBuIHMgPVxuICBpZiBuIDw9IDAgdGhlbiBbXSwgcy5kYXRhLCAwXG4gIGVsc2VcbiAgICBtYXRjaCBwZWVrX2RhdGEgcyB3aXRoXG4gICAgICBTb21lIGEgLT5cbiAgICAgICAganVua19kYXRhIHM7XG4gICAgICAgIGxldCAoYWwsIGQsIGspID0gbmdldF9kYXRhIChwcmVkIG4pIHMgaW4gYSA6OiBhbCwgU2NvbnMgKGEsIGQpLCBzdWNjIGtcbiAgICB8IE5vbmUgLT4gW10sIHMuZGF0YSwgMFxuXG5cbmxldCBucGVla19kYXRhIG4gcyA9XG4gIGxldCAoYWwsIGQsIGxlbikgPSBuZ2V0X2RhdGEgbiBzIGluXG4gIHMuY291bnQgPC0gKHMuY291bnQgLSBsZW4pO1xuICBzLmRhdGEgPC0gZDtcbiAgYWxcblxuXG5sZXQgbnBlZWsgbiA9IGZ1bmN0aW9uXG4gIHwgTm9uZSAtPiBbXVxuICB8IFNvbWUgZCAtPiBucGVla19kYXRhIG4gZFxuXG5sZXQgbmV4dCBzID1cbiAgbWF0Y2ggcGVlayBzIHdpdGhcbiAgICBTb21lIGEgLT4ganVuayBzOyBhXG4gIHwgTm9uZSAtPiByYWlzZSBGYWlsdXJlXG5cblxubGV0IGVtcHR5IHMgPVxuICBtYXRjaCBwZWVrIHMgd2l0aFxuICAgIFNvbWUgXyAtPiByYWlzZSBGYWlsdXJlXG4gIHwgTm9uZSAtPiAoKVxuXG5cbmxldCBpdGVyIGYgc3RybSA9XG4gIGxldCByZWMgZG9fcmVjICgpID1cbiAgICBtYXRjaCBwZWVrIHN0cm0gd2l0aFxuICAgICAgU29tZSBhIC0+IGp1bmsgc3RybTsgaWdub3JlKGYgYSk7IGRvX3JlYyAoKVxuICAgIHwgTm9uZSAtPiAoKVxuICBpblxuICBkb19yZWMgKClcblxuXG4oKiBTdHJlYW0gYnVpbGRpbmcgZnVuY3Rpb25zICopXG5cbmxldCBmcm9tIGYgPSBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBTZ2VuIHtjdXJyID0gTm9uZTsgZnVuYyA9IGZ9fVxuXG5sZXQgb2ZfbGlzdCBsID1cbiAgU29tZSB7Y291bnQgPSAwOyBkYXRhID0gTGlzdC5mb2xkX3JpZ2h0IChmdW4geCBsIC0+IFNjb25zICh4LCBsKSkgbCBTZW1wdHl9XG5cblxubGV0IG9mX3N0cmluZyBzID1cbiAgbGV0IGNvdW50ID0gcmVmIDAgaW5cbiAgZnJvbSAoZnVuIF8gLT5cbiAgICAoKiBXZSBjYW5ub3QgdXNlIHRoZSBpbmRleCBwYXNzZWQgYnkgdGhlIFtmcm9tXSBmdW5jdGlvbiBkaXJlY3RseVxuICAgICAgIGJlY2F1c2UgaXQgcmV0dXJucyB0aGUgY3VycmVudCBzdHJlYW0gY291bnQsIHdpdGggYWJzb2x1dGVseSBub1xuICAgICAgIGd1YXJhbnRlZSB0aGF0IGl0IHdpbGwgc3RhcnQgZnJvbSAwLiBGb3IgZXhhbXBsZSwgaW4gdGhlIGNhc2VcbiAgICAgICBvZiBbU3RyZWFtLmljb25zICdjJyAoU3RyZWFtLmZyb21fc3RyaW5nIFwiYWJcIildLCB0aGUgZmlyc3RcbiAgICAgICBhY2Nlc3MgdG8gdGhlIHN0cmluZyB3aWxsIGJlIG1hZGUgd2l0aCBjb3VudCBbMV0gYWxyZWFkeS5cbiAgICAqKVxuICAgIGxldCBjID0gIWNvdW50IGluXG4gICAgaWYgYyA8IFN0cmluZy5sZW5ndGggc1xuICAgIHRoZW4gKGluY3IgY291bnQ7IFNvbWUgcy5bY10pXG4gICAgZWxzZSBOb25lKVxuXG5cbmxldCBvZl9ieXRlcyBzID1cbiAgbGV0IGNvdW50ID0gcmVmIDAgaW5cbiAgZnJvbSAoZnVuIF8gLT5cbiAgICBsZXQgYyA9ICFjb3VudCBpblxuICAgIGlmIGMgPCBCeXRlcy5sZW5ndGggc1xuICAgIHRoZW4gKGluY3IgY291bnQ7IFNvbWUgKEJ5dGVzLmdldCBzIGMpKVxuICAgIGVsc2UgTm9uZSlcblxuXG5sZXQgb2ZfY2hhbm5lbCBpYyA9XG4gIFNvbWUge2NvdW50ID0gMDtcbiAgICAgICAgZGF0YSA9IFNidWZmaW8ge2ljID0gaWM7IGJ1ZmYgPSBCeXRlcy5jcmVhdGUgNDA5NjsgbGVuID0gMDsgaW5kID0gMH19XG5cblxuKCogU3RyZWFtIGV4cHJlc3Npb25zIGJ1aWxkZXJzICopXG5cbmxldCBpYXBwIGkgcyA9IFNvbWUge2NvdW50ID0gMDsgZGF0YSA9IFNhcHAgKGRhdGEgaSwgZGF0YSBzKX1cbmxldCBpY29ucyBpIHMgPSBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBTY29ucyAoaSwgZGF0YSBzKX1cbmxldCBpc2luZyBpID0gU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2NvbnMgKGksIFNlbXB0eSl9XG5cbmxldCBsYXBwIGYgcyA9XG4gIFNvbWUge2NvdW50ID0gMDsgZGF0YSA9IFNsYXp5IChsYXp5KFNhcHAgKGRhdGEgKGYgKCkpLCBkYXRhIHMpKSl9XG5cbmxldCBsY29ucyBmIHMgPSBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBTbGF6eSAobGF6eShTY29ucyAoZiAoKSwgZGF0YSBzKSkpfVxubGV0IGxzaW5nIGYgPSBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBTbGF6eSAobGF6eShTY29ucyAoZiAoKSwgU2VtcHR5KSkpfVxuXG5sZXQgc2VtcHR5ID0gTm9uZVxubGV0IHNsYXp5IGYgPSBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBTbGF6eSAobGF6eShkYXRhIChmICgpKSkpfVxuXG4oKiBGb3IgZGVidWdnaW5nIHVzZSAqKVxuXG5sZXQgcmVjIGR1bXAgOiB0eXBlIHYuICh2IC0+IHVuaXQpIC0+IHYgdCAtPiB1bml0ID0gZnVuIGYgcyAtPlxuICBwcmludF9zdHJpbmcgXCJ7Y291bnQgPSBcIjtcbiAgcHJpbnRfaW50IChjb3VudCBzKTtcbiAgcHJpbnRfc3RyaW5nIFwiOyBkYXRhID0gXCI7XG4gIGR1bXBfZGF0YSBmIChkYXRhIHMpO1xuICBwcmludF9zdHJpbmcgXCJ9XCI7XG4gIHByaW50X25ld2xpbmUgKClcbmFuZCBkdW1wX2RhdGEgOiB0eXBlIHYuICh2IC0+IHVuaXQpIC0+IHYgZGF0YSAtPiB1bml0ID0gZnVuIGYgLT5cbiAgZnVuY3Rpb25cbiAgICBTZW1wdHkgLT4gcHJpbnRfc3RyaW5nIFwiU2VtcHR5XCJcbiAgfCBTY29ucyAoYSwgZCkgLT5cbiAgICAgIHByaW50X3N0cmluZyBcIlNjb25zIChcIjtcbiAgICAgIGYgYTtcbiAgICAgIHByaW50X3N0cmluZyBcIiwgXCI7XG4gICAgICBkdW1wX2RhdGEgZiBkO1xuICAgICAgcHJpbnRfc3RyaW5nIFwiKVwiXG4gIHwgU2FwcCAoZDEsIGQyKSAtPlxuICAgICAgcHJpbnRfc3RyaW5nIFwiU2FwcCAoXCI7XG4gICAgICBkdW1wX2RhdGEgZiBkMTtcbiAgICAgIHByaW50X3N0cmluZyBcIiwgXCI7XG4gICAgICBkdW1wX2RhdGEgZiBkMjtcbiAgICAgIHByaW50X3N0cmluZyBcIilcIlxuICB8IFNsYXp5IF8gLT4gcHJpbnRfc3RyaW5nIFwiU2xhenlcIlxuICB8IFNnZW4gXyAtPiBwcmludF9zdHJpbmcgXCJTZ2VuXCJcbiAgfCBTYnVmZmlvIF8gLT4gcHJpbnRfc3RyaW5nIFwiU2J1ZmZpb1wiXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICBQaWVycmUgV2VpcyBhbmQgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk5IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIEV4dGVuc2libGUgYnVmZmVycyAqKVxuXG50eXBlIHQgPVxuIHttdXRhYmxlIGJ1ZmZlciA6IGJ5dGVzO1xuICBtdXRhYmxlIHBvc2l0aW9uIDogaW50O1xuICBtdXRhYmxlIGxlbmd0aCA6IGludDtcbiAgaW5pdGlhbF9idWZmZXIgOiBieXRlc31cbigqIEludmFyaWFudHM6IGFsbCBwYXJ0cyBvZiB0aGUgY29kZSBwcmVzZXJ2ZSB0aGUgaW52YXJpYW50cyB0aGF0OlxuICAgLSBbMCA8PSBiLnBvc2l0aW9uIDw9IGIubGVuZ3RoXVxuICAgLSBbYi5sZW5ndGggPSBCeXRlcy5sZW5ndGggYi5idWZmZXJdXG5cbiAgIE5vdGUgaW4gcGFydGljdWxhciB0aGF0IFtiLnBvc2l0aW9uID0gYi5sZW5ndGhdIGlzIGxlZ2FsLFxuICAgaXQgbWVhbnMgdGhhdCB0aGUgYnVmZmVyIGlzIGZ1bGwgYW5kIHdpbGwgaGF2ZSB0byBiZSBleHRlbmRlZFxuICAgYmVmb3JlIGFueSBmdXJ0aGVyIGFkZGl0aW9uLiAqKVxuXG5sZXQgY3JlYXRlIG4gPVxuIGxldCBuID0gaWYgbiA8IDEgdGhlbiAxIGVsc2UgbiBpblxuIGxldCBuID0gaWYgbiA+IFN5cy5tYXhfc3RyaW5nX2xlbmd0aCB0aGVuIFN5cy5tYXhfc3RyaW5nX2xlbmd0aCBlbHNlIG4gaW5cbiBsZXQgcyA9IEJ5dGVzLmNyZWF0ZSBuIGluXG4ge2J1ZmZlciA9IHM7IHBvc2l0aW9uID0gMDsgbGVuZ3RoID0gbjsgaW5pdGlhbF9idWZmZXIgPSBzfVxuXG5sZXQgY29udGVudHMgYiA9IEJ5dGVzLnN1Yl9zdHJpbmcgYi5idWZmZXIgMCBiLnBvc2l0aW9uXG5sZXQgdG9fYnl0ZXMgYiA9IEJ5dGVzLnN1YiBiLmJ1ZmZlciAwIGIucG9zaXRpb25cblxubGV0IHN1YiBiIG9mcyBsZW4gPVxuICBpZiBvZnMgPCAwIHx8IGxlbiA8IDAgfHwgb2ZzID4gYi5wb3NpdGlvbiAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiQnVmZmVyLnN1YlwiXG4gIGVsc2UgQnl0ZXMuc3ViX3N0cmluZyBiLmJ1ZmZlciBvZnMgbGVuXG5cblxubGV0IGJsaXQgc3JjIHNyY29mZiBkc3QgZHN0b2ZmIGxlbiA9XG4gIGlmIGxlbiA8IDAgfHwgc3Jjb2ZmIDwgMCB8fCBzcmNvZmYgPiBzcmMucG9zaXRpb24gLSBsZW5cbiAgICAgICAgICAgICB8fCBkc3RvZmYgPCAwIHx8IGRzdG9mZiA+IChCeXRlcy5sZW5ndGggZHN0KSAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiQnVmZmVyLmJsaXRcIlxuICBlbHNlXG4gICAgQnl0ZXMudW5zYWZlX2JsaXQgc3JjLmJ1ZmZlciBzcmNvZmYgZHN0IGRzdG9mZiBsZW5cblxuXG5sZXQgbnRoIGIgb2ZzID1cbiAgaWYgb2ZzIDwgMCB8fCBvZnMgPj0gYi5wb3NpdGlvbiB0aGVuXG4gICBpbnZhbGlkX2FyZyBcIkJ1ZmZlci5udGhcIlxuICBlbHNlIEJ5dGVzLnVuc2FmZV9nZXQgYi5idWZmZXIgb2ZzXG5cblxubGV0IGxlbmd0aCBiID0gYi5wb3NpdGlvblxuXG5sZXQgY2xlYXIgYiA9IGIucG9zaXRpb24gPC0gMFxuXG5sZXQgcmVzZXQgYiA9XG4gIGIucG9zaXRpb24gPC0gMDtcbiAgYi5idWZmZXIgPC0gYi5pbml0aWFsX2J1ZmZlcjtcbiAgYi5sZW5ndGggPC0gQnl0ZXMubGVuZ3RoIGIuYnVmZmVyXG5cbigqIFtyZXNpemUgYiBtb3JlXSBlbnN1cmVzIHRoYXQgW2IucG9zaXRpb24gKyBtb3JlIDw9IGIubGVuZ3RoXSBob2xkc1xuICAgYnkgZHluYW1pY2FsbHkgZXh0ZW5kaW5nIFtiLmJ1ZmZlcl0gaWYgbmVjZXNzYXJ5IC0tIGFuZCB0aHVzXG4gICBpbmNyZWFzaW5nIFtiLmxlbmd0aF0uXG5cbiAgIEluIHBhcnRpY3VsYXIsIGFmdGVyIFtyZXNpemUgYiBtb3JlXSBpcyBjYWxsZWQsIGEgZGlyZWN0IGFjY2VzcyBvZlxuICAgc2l6ZSBbbW9yZV0gYXQgW2IucG9zaXRpb25dIHdpbGwgYWx3YXlzIGJlIGluLWJvdW5kcywgc28gdGhhdFxuICAgKHVuc2FmZV97Z2V0LHNldH0pIG1heSBiZSB1c2VkIGZvciBwZXJmb3JtYW5jZS5cbiopXG5sZXQgcmVzaXplIGIgbW9yZSA9XG4gIGxldCBvbGRfcG9zID0gYi5wb3NpdGlvbiBpblxuICBsZXQgb2xkX2xlbiA9IGIubGVuZ3RoIGluXG4gIGxldCBuZXdfbGVuID0gcmVmIG9sZF9sZW4gaW5cbiAgd2hpbGUgb2xkX3BvcyArIG1vcmUgPiAhbmV3X2xlbiBkbyBuZXdfbGVuIDo9IDIgKiAhbmV3X2xlbiBkb25lO1xuICBpZiAhbmV3X2xlbiA+IFN5cy5tYXhfc3RyaW5nX2xlbmd0aCB0aGVuIGJlZ2luXG4gICAgaWYgb2xkX3BvcyArIG1vcmUgPD0gU3lzLm1heF9zdHJpbmdfbGVuZ3RoXG4gICAgdGhlbiBuZXdfbGVuIDo9IFN5cy5tYXhfc3RyaW5nX2xlbmd0aFxuICAgIGVsc2UgZmFpbHdpdGggXCJCdWZmZXIuYWRkOiBjYW5ub3QgZ3JvdyBidWZmZXJcIlxuICBlbmQ7XG4gIGxldCBuZXdfYnVmZmVyID0gQnl0ZXMuY3JlYXRlICFuZXdfbGVuIGluXG4gICgqIFBSIzYxNDg6IGxldCdzIGtlZXAgdXNpbmcgW2JsaXRdIHJhdGhlciB0aGFuIFt1bnNhZmVfYmxpdF0gaW5cbiAgICAgdGhpcyB0cmlja3kgZnVuY3Rpb24gdGhhdCBpcyBzbG93IGFueXdheS4gKilcbiAgQnl0ZXMuYmxpdCBiLmJ1ZmZlciAwIG5ld19idWZmZXIgMCBiLnBvc2l0aW9uO1xuICBiLmJ1ZmZlciA8LSBuZXdfYnVmZmVyO1xuICBiLmxlbmd0aCA8LSAhbmV3X2xlbjtcbiAgYXNzZXJ0IChiLnBvc2l0aW9uICsgbW9yZSA8PSBiLmxlbmd0aCk7XG4gIGFzc2VydCAob2xkX3BvcyArIG1vcmUgPD0gYi5sZW5ndGgpO1xuICAoKVxuICAoKiBOb3RlOiB0aGVyZSBhcmUgdmFyaW91cyBzaXR1YXRpb25zIChwcmVlbXB0aXZlIHRocmVhZHMsIHNpZ25hbHMgYW5kXG4gICAgIGdjIGZpbmFsaXplcnMpIHdoZXJlIE9DYW1sIGNvZGUgbWF5IGJlIHJ1biBhc3luY2hyb25vdXNseTsgaW5cbiAgICAgcGFydGljdWxhciwgdGhlcmUgbWF5IGJlIGEgcmFjZSB3aXRoIGFub3RoZXIgdXNlciBvZiBbYl0sIGNoYW5naW5nXG4gICAgIGl0cyBtdXRhYmxlIGZpZWxkcyBpbiB0aGUgbWlkZGxlIG9mIHRoZSBbcmVzaXplXSBjYWxsLiBUaGUgQnVmZmVyXG4gICAgIG1vZHVsZSBkb2VzIG5vdCBwcm92aWRlIGFueSBjb3JyZWN0bmVzcyBndWFyYW50ZWUgaWYgdGhhdCBoYXBwZW5zLFxuICAgICBidXQgd2UgbXVzdCBzdGlsbCBlbnN1cmUgdGhhdCB0aGUgZGF0YXN0cnVjdHVyZSBpbnZhcmlhbnRzIGhvbGQgZm9yXG4gICAgIG1lbW9yeS1zYWZldHkgLS0gYXMgd2UgcGxhbiB0byB1c2UgW3Vuc2FmZV97Z2V0LHNldH1dLlxuXG4gICAgIFRoZXJlIGFyZSB0d28gcG90ZW50aWFsIGFsbG9jYXRpb24gcG9pbnRzIGluIHRoaXMgZnVuY3Rpb24sXG4gICAgIFtyZWZdIGFuZCBbQnl0ZXMuY3JlYXRlXSwgYnV0IGFsbCByZWFkcyBhbmQgd3JpdGVzIHRvIHRoZSBmaWVsZHNcbiAgICAgb2YgW2JdIGhhcHBlbiBiZWZvcmUgYm90aCBvZiB0aGVtIG9yIGFmdGVyIGJvdGggb2YgdGhlbS5cblxuICAgICBXZSB0aGVyZWZvcmUgYXNzdW1lIHRoYXQgW2IucG9zaXRpb25dIG1heSBjaGFuZ2UgYXQgdGhlc2UgYWxsb2NhdGlvbnMsXG4gICAgIGFuZCBjaGVjayB0aGF0IHRoZSBbYi5wb3NpdGlvbiArIG1vcmUgPD0gYi5sZW5ndGhdIHBvc3Rjb25kaXRpb25cbiAgICAgaG9sZHMgZm9yIGJvdGggdmFsdWVzIG9mIFtiLnBvc2l0aW9uXSwgYmVmb3JlIG9yIGFmdGVyIHRoZSBmdW5jdGlvblxuICAgICBpcyBjYWxsZWQuIE1vcmUgcHJlY2lzZWx5LCB0aGUgZm9sbG93aW5nIGludmFyaWFudHMgbXVzdCBob2xkIGlmIHRoZVxuICAgICBmdW5jdGlvbiByZXR1cm5zIGNvcnJlY3RseSwgaW4gYWRkaXRpb24gdG8gdGhlIHVzdWFsIGJ1ZmZlciBpbnZhcmlhbnRzOlxuICAgICAtIFtvbGQoYi5wb3NpdGlvbikgKyBtb3JlIDw9IG5ldyhiLmxlbmd0aCldXG4gICAgIC0gW25ldyhiLnBvc2l0aW9uKSArIG1vcmUgPD0gbmV3KGIubGVuZ3RoKV1cbiAgICAgLSBbb2xkKGIubGVuZ3RoKSA8PSBuZXcoYi5sZW5ndGgpXVxuXG4gICAgIE5vdGU6IFtiLnBvc2l0aW9uICsgbW9yZSA8PSBvbGQoYi5sZW5ndGgpXSBkb2VzICpub3QqXG4gICAgIGhvbGQgaW4gZ2VuZXJhbCwgYXMgaXQgaXMgcHJlY2lzZWx5IHRoZSBjYXNlIHdoZXJlIHlvdSBuZWVkXG4gICAgIHRvIGNhbGwgW3Jlc2l6ZV0gdG8gaW5jcmVhc2UgW2IubGVuZ3RoXS5cblxuICAgICBOb3RlOiBbYXNzZXJ0XSBhYm92ZSBkb2VzIG5vdCBtZWFuIHRoYXQgd2Uga25vdyB0aGUgY29uZGl0aW9uc1xuICAgICBhbHdheXMgaG9sZCwgYnV0IHRoYXQgdGhlIGZ1bmN0aW9uIG1heSByZXR1cm4gY29ycmVjdGx5XG4gICAgIG9ubHkgaWYgdGhleSBob2xkLlxuXG4gICAgIE5vdGU6IHRoZSBvdGhlciBmdW5jdGlvbnMgaW4gdGhpcyBtb2R1bGUgZG9lcyBub3QgbmVlZFxuICAgICB0byBiZSBjaGVja2VkIHdpdGggdGhpcyBsZXZlbCBvZiBzY3J1dGlueSwgZ2l2ZW4gdGhhdCB0aGV5XG4gICAgIHJlYWQvd3JpdGUgdGhlIGJ1ZmZlciBpbW1lZGlhdGVseSBhZnRlciBjaGVja2luZyB0aGF0XG4gICAgIFtiLnBvc2l0aW9uICsgbW9yZSA8PSBiLmxlbmd0aF0gaG9sZCBvciBjYWxsaW5nIFtyZXNpemVdLlxuICAqKVxuXG5sZXQgYWRkX2NoYXIgYiBjID1cbiAgbGV0IHBvcyA9IGIucG9zaXRpb24gaW5cbiAgaWYgcG9zID49IGIubGVuZ3RoIHRoZW4gcmVzaXplIGIgMTtcbiAgQnl0ZXMudW5zYWZlX3NldCBiLmJ1ZmZlciBwb3MgYztcbiAgYi5wb3NpdGlvbiA8LSBwb3MgKyAxXG5cbmxldCB1Y2hhcl91dGZfOF9ieXRlX2xlbmd0aF9tYXggPSA0XG5sZXQgdWNoYXJfdXRmXzE2X2J5dGVfbGVuZ3RoX21heCA9IDRcblxubGV0IHJlYyBhZGRfdXRmXzhfdWNoYXIgYiB1ID1cbiAgbGV0IHBvcyA9IGIucG9zaXRpb24gaW5cbiAgaWYgcG9zID49IGIubGVuZ3RoIHRoZW4gcmVzaXplIGIgdWNoYXJfdXRmXzhfYnl0ZV9sZW5ndGhfbWF4O1xuICBsZXQgbiA9IEJ5dGVzLnNldF91dGZfOF91Y2hhciBiLmJ1ZmZlciBwb3MgdSBpblxuICBpZiBuID0gMFxuICB0aGVuIChyZXNpemUgYiB1Y2hhcl91dGZfOF9ieXRlX2xlbmd0aF9tYXg7IGFkZF91dGZfOF91Y2hhciBiIHUpXG4gIGVsc2UgKGIucG9zaXRpb24gPC0gcG9zICsgbilcblxubGV0IHJlYyBhZGRfdXRmXzE2YmVfdWNoYXIgYiB1ID1cbiAgbGV0IHBvcyA9IGIucG9zaXRpb24gaW5cbiAgaWYgcG9zID49IGIubGVuZ3RoIHRoZW4gcmVzaXplIGIgdWNoYXJfdXRmXzE2X2J5dGVfbGVuZ3RoX21heDtcbiAgbGV0IG4gPSBCeXRlcy5zZXRfdXRmXzE2YmVfdWNoYXIgYi5idWZmZXIgcG9zIHUgaW5cbiAgaWYgbiA9IDBcbiAgdGhlbiAocmVzaXplIGIgdWNoYXJfdXRmXzE2X2J5dGVfbGVuZ3RoX21heDsgYWRkX3V0Zl8xNmJlX3VjaGFyIGIgdSlcbiAgZWxzZSAoYi5wb3NpdGlvbiA8LSBwb3MgKyBuKVxuXG5sZXQgcmVjIGFkZF91dGZfMTZsZV91Y2hhciBiIHUgPVxuICBsZXQgcG9zID0gYi5wb3NpdGlvbiBpblxuICBpZiBwb3MgPj0gYi5sZW5ndGggdGhlbiByZXNpemUgYiB1Y2hhcl91dGZfMTZfYnl0ZV9sZW5ndGhfbWF4O1xuICBsZXQgbiA9IEJ5dGVzLnNldF91dGZfMTZsZV91Y2hhciBiLmJ1ZmZlciBwb3MgdSBpblxuICBpZiBuID0gMFxuICB0aGVuIChyZXNpemUgYiB1Y2hhcl91dGZfMTZfYnl0ZV9sZW5ndGhfbWF4OyBhZGRfdXRmXzE2bGVfdWNoYXIgYiB1KVxuICBlbHNlIChiLnBvc2l0aW9uIDwtIHBvcyArIG4pXG5cbmxldCBhZGRfc3Vic3RyaW5nIGIgcyBvZmZzZXQgbGVuID1cbiAgaWYgb2Zmc2V0IDwgMCB8fCBsZW4gPCAwIHx8IG9mZnNldCA+IFN0cmluZy5sZW5ndGggcyAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiQnVmZmVyLmFkZF9zdWJzdHJpbmcvYWRkX3N1YmJ5dGVzXCI7XG4gIGxldCBuZXdfcG9zaXRpb24gPSBiLnBvc2l0aW9uICsgbGVuIGluXG4gIGlmIG5ld19wb3NpdGlvbiA+IGIubGVuZ3RoIHRoZW4gcmVzaXplIGIgbGVuO1xuICBCeXRlcy51bnNhZmVfYmxpdF9zdHJpbmcgcyBvZmZzZXQgYi5idWZmZXIgYi5wb3NpdGlvbiBsZW47XG4gIGIucG9zaXRpb24gPC0gbmV3X3Bvc2l0aW9uXG5cbmxldCBhZGRfc3ViYnl0ZXMgYiBzIG9mZnNldCBsZW4gPVxuICBhZGRfc3Vic3RyaW5nIGIgKEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgcykgb2Zmc2V0IGxlblxuXG5sZXQgYWRkX3N0cmluZyBiIHMgPVxuICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBzIGluXG4gIGxldCBuZXdfcG9zaXRpb24gPSBiLnBvc2l0aW9uICsgbGVuIGluXG4gIGlmIG5ld19wb3NpdGlvbiA+IGIubGVuZ3RoIHRoZW4gcmVzaXplIGIgbGVuO1xuICBCeXRlcy51bnNhZmVfYmxpdF9zdHJpbmcgcyAwIGIuYnVmZmVyIGIucG9zaXRpb24gbGVuO1xuICBiLnBvc2l0aW9uIDwtIG5ld19wb3NpdGlvblxuXG5sZXQgYWRkX2J5dGVzIGIgcyA9IGFkZF9zdHJpbmcgYiAoQnl0ZXMudW5zYWZlX3RvX3N0cmluZyBzKVxuXG5sZXQgYWRkX2J1ZmZlciBiIGJzID1cbiAgYWRkX3N1YmJ5dGVzIGIgYnMuYnVmZmVyIDAgYnMucG9zaXRpb25cblxuKCogdGhpcyAocHJpdmF0ZSkgZnVuY3Rpb24gY291bGQgbW92ZSBpbnRvIHRoZSBzdGFuZGFyZCBsaWJyYXJ5ICopXG5sZXQgcmVhbGx5X2lucHV0X3VwX3RvIGljIGJ1ZiBvZnMgbGVuID1cbiAgbGV0IHJlYyBsb29wIGljIGJ1ZiB+YWxyZWFkeV9yZWFkIH5vZnMgfnRvX3JlYWQgPVxuICAgIGlmIHRvX3JlYWQgPSAwIHRoZW4gYWxyZWFkeV9yZWFkXG4gICAgZWxzZSBiZWdpblxuICAgICAgbGV0IHIgPSBpbnB1dCBpYyBidWYgb2ZzIHRvX3JlYWQgaW5cbiAgICAgIGlmIHIgPSAwIHRoZW4gYWxyZWFkeV9yZWFkXG4gICAgICBlbHNlIGJlZ2luXG4gICAgICAgIGxldCBhbHJlYWR5X3JlYWQgPSBhbHJlYWR5X3JlYWQgKyByIGluXG4gICAgICAgIGxldCBvZnMgPSBvZnMgKyByIGluXG4gICAgICAgIGxldCB0b19yZWFkID0gdG9fcmVhZCAtIHIgaW5cbiAgICAgICAgbG9vcCBpYyBidWYgfmFscmVhZHlfcmVhZCB+b2ZzIH50b19yZWFkXG4gICAgICBlbmRcbiAgICBlbmRcbiAgaW4gbG9vcCBpYyBidWYgfmFscmVhZHlfcmVhZDowIH5vZnMgfnRvX3JlYWQ6bGVuXG5cblxubGV0IHVuc2FmZV9hZGRfY2hhbm5lbF91cF90byBiIGljIGxlbiA9XG4gIGlmIGIucG9zaXRpb24gKyBsZW4gPiBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIGxlbjtcbiAgbGV0IG4gPSByZWFsbHlfaW5wdXRfdXBfdG8gaWMgYi5idWZmZXIgYi5wb3NpdGlvbiBsZW4gaW5cbiAgKCogVGhlIGFzc2VydGlvbiBiZWxvdyBtYXkgZmFpbCBpbiB3ZWlyZCBzY2VuYXJpbyB3aGVyZVxuICAgICB0aHJlYWRlZC9maW5hbGl6ZXIgY29kZSwgcnVuIGFzeW5jaHJvbm91c2x5IGR1cmluZyB0aGVcbiAgICAgW3JlYWxseV9pbnB1dF91cF90b10gY2FsbCwgcmFjZXMgb24gdGhlIGJ1ZmZlcjsgd2UgZG9uJ3QgZW5zdXJlXG4gICAgIGNvcnJlY3RuZXNzIGluIHRoaXMgY2FzZSwgYnV0IG5lZWQgdG8gcHJlc2VydmUgdGhlIGludmFyaWFudHMgZm9yXG4gICAgIG1lbW9yeS1zYWZldHkgKHNlZSBkaXNjdXNzaW9uIG9mIFtyZXNpemVdKS4gKilcbiAgYXNzZXJ0IChiLnBvc2l0aW9uICsgbiA8PSBiLmxlbmd0aCk7XG4gIGIucG9zaXRpb24gPC0gYi5wb3NpdGlvbiArIG47XG4gIG5cblxubGV0IGFkZF9jaGFubmVsIGIgaWMgbGVuID1cbiAgaWYgbGVuIDwgMCB8fCBsZW4gPiBTeXMubWF4X3N0cmluZ19sZW5ndGggdGhlbiAgICgqIFBSIzUwMDQgKilcbiAgICBpbnZhbGlkX2FyZyBcIkJ1ZmZlci5hZGRfY2hhbm5lbFwiO1xuICBsZXQgbiA9IHVuc2FmZV9hZGRfY2hhbm5lbF91cF90byBiIGljIGxlbiBpblxuICAoKiBJdCBpcyBpbnRlbnRpb25hbCB0aGF0IGEgY29uc3VtZXIgY2F0Y2hpbmcgRW5kX29mX2ZpbGVcbiAgICAgd2lsbCBzZWUgdGhlIGRhdGEgd3JpdHRlbiAoc2VlICM2NzE5LCAjNzEzNikuICopXG4gIGlmIG4gPCBsZW4gdGhlbiByYWlzZSBFbmRfb2ZfZmlsZTtcbiAgKClcblxubGV0IG91dHB1dF9idWZmZXIgb2MgYiA9XG4gIG91dHB1dCBvYyBiLmJ1ZmZlciAwIGIucG9zaXRpb25cblxubGV0IGNsb3NpbmcgPSBmdW5jdGlvblxuICB8ICcoJyAtPiAnKSdcbiAgfCAneycgLT4gJ30nXG4gIHwgXyAtPiBhc3NlcnQgZmFsc2VcblxuKCogb3BlbmluZyBhbmQgY2xvc2luZzogb3BlbiBhbmQgY2xvc2UgY2hhcmFjdGVycywgdHlwaWNhbGx5ICggYW5kIClcbiAgIGs6IGJhbGFuY2Ugb2Ygb3BlbmluZyBhbmQgY2xvc2luZyBjaGFyc1xuICAgczogdGhlIHN0cmluZyB3aGVyZSB3ZSBhcmUgc2VhcmNoaW5nXG4gICBzdGFydDogdGhlIGluZGV4IHdoZXJlIHdlIHN0YXJ0IHRoZSBzZWFyY2guICopXG5sZXQgYWR2YW5jZV90b19jbG9zaW5nIG9wZW5pbmcgY2xvc2luZyBrIHMgc3RhcnQgPVxuICBsZXQgcmVjIGFkdmFuY2UgayBpIGxpbSA9XG4gICAgaWYgaSA+PSBsaW0gdGhlbiByYWlzZSBOb3RfZm91bmQgZWxzZVxuICAgIGlmIHMuW2ldID0gb3BlbmluZyB0aGVuIGFkdmFuY2UgKGsgKyAxKSAoaSArIDEpIGxpbSBlbHNlXG4gICAgaWYgcy5baV0gPSBjbG9zaW5nIHRoZW5cbiAgICAgIGlmIGsgPSAwIHRoZW4gaSBlbHNlIGFkdmFuY2UgKGsgLSAxKSAoaSArIDEpIGxpbVxuICAgIGVsc2UgYWR2YW5jZSBrIChpICsgMSkgbGltIGluXG4gIGFkdmFuY2UgayBzdGFydCAoU3RyaW5nLmxlbmd0aCBzKVxuXG5sZXQgYWR2YW5jZV90b19ub25fYWxwaGEgcyBzdGFydCA9XG4gIGxldCByZWMgYWR2YW5jZSBpIGxpbSA9XG4gICAgaWYgaSA+PSBsaW0gdGhlbiBsaW0gZWxzZVxuICAgIG1hdGNoIHMuW2ldIHdpdGhcbiAgICB8ICdhJyAuLiAneicgfCAnQScgLi4gJ1onIHwgJzAnIC4uICc5JyB8ICdfJyAtPiBhZHZhbmNlIChpICsgMSkgbGltXG4gICAgfCBfIC0+IGkgaW5cbiAgYWR2YW5jZSBzdGFydCAoU3RyaW5nLmxlbmd0aCBzKVxuXG4oKiBXZSBhcmUganVzdCBhdCB0aGUgYmVnaW5uaW5nIG9mIGFuIGlkZW50IGluIHMsIHN0YXJ0aW5nIGF0IHN0YXJ0LiAqKVxubGV0IGZpbmRfaWRlbnQgcyBzdGFydCBsaW0gPVxuICBpZiBzdGFydCA+PSBsaW0gdGhlbiByYWlzZSBOb3RfZm91bmQgZWxzZVxuICBtYXRjaCBzLltzdGFydF0gd2l0aFxuICAoKiBQYXJlbnRoZXNpemVkIGlkZW50ID8gKilcbiAgfCAnKCcgfCAneycgYXMgYyAtPlxuICAgICBsZXQgbmV3X3N0YXJ0ID0gc3RhcnQgKyAxIGluXG4gICAgIGxldCBzdG9wID0gYWR2YW5jZV90b19jbG9zaW5nIGMgKGNsb3NpbmcgYykgMCBzIG5ld19zdGFydCBpblxuICAgICBTdHJpbmcuc3ViIHMgbmV3X3N0YXJ0IChzdG9wIC0gc3RhcnQgLSAxKSwgc3RvcCArIDFcbiAgKCogUmVndWxhciBpZGVudCAqKVxuICB8IF8gLT5cbiAgICAgbGV0IHN0b3AgPSBhZHZhbmNlX3RvX25vbl9hbHBoYSBzIChzdGFydCArIDEpIGluXG4gICAgIFN0cmluZy5zdWIgcyBzdGFydCAoc3RvcCAtIHN0YXJ0KSwgc3RvcFxuXG4oKiBTdWJzdGl0dXRlICRpZGVudCwgJChpZGVudCksIG9yICR7aWRlbnR9IGluIHMsXG4gICAgYWNjb3JkaW5nIHRvIHRoZSBmdW5jdGlvbiBtYXBwaW5nIGYuICopXG5sZXQgYWRkX3N1YnN0aXR1dGUgYiBmIHMgPVxuICBsZXQgbGltID0gU3RyaW5nLmxlbmd0aCBzIGluXG4gIGxldCByZWMgc3Vic3QgcHJldmlvdXMgaSA9XG4gICAgaWYgaSA8IGxpbSB0aGVuIGJlZ2luXG4gICAgICBtYXRjaCBzLltpXSB3aXRoXG4gICAgICB8ICckJyBhcyBjdXJyZW50IHdoZW4gcHJldmlvdXMgPSAnXFxcXCcgLT5cbiAgICAgICAgIGFkZF9jaGFyIGIgY3VycmVudDtcbiAgICAgICAgIHN1YnN0ICcgJyAoaSArIDEpXG4gICAgICB8ICckJyAtPlxuICAgICAgICAgbGV0IGogPSBpICsgMSBpblxuICAgICAgICAgbGV0IGlkZW50LCBuZXh0X2kgPSBmaW5kX2lkZW50IHMgaiBsaW0gaW5cbiAgICAgICAgIGFkZF9zdHJpbmcgYiAoZiBpZGVudCk7XG4gICAgICAgICBzdWJzdCAnICcgbmV4dF9pXG4gICAgICB8IGN1cnJlbnQgd2hlbiBwcmV2aW91cyA9PSAnXFxcXCcgLT5cbiAgICAgICAgIGFkZF9jaGFyIGIgJ1xcXFwnO1xuICAgICAgICAgYWRkX2NoYXIgYiBjdXJyZW50O1xuICAgICAgICAgc3Vic3QgJyAnIChpICsgMSlcbiAgICAgIHwgJ1xcXFwnIGFzIGN1cnJlbnQgLT5cbiAgICAgICAgIHN1YnN0IGN1cnJlbnQgKGkgKyAxKVxuICAgICAgfCBjdXJyZW50IC0+XG4gICAgICAgICBhZGRfY2hhciBiIGN1cnJlbnQ7XG4gICAgICAgICBzdWJzdCBjdXJyZW50IChpICsgMSlcbiAgICBlbmQgZWxzZVxuICAgIGlmIHByZXZpb3VzID0gJ1xcXFwnIHRoZW4gYWRkX2NoYXIgYiBwcmV2aW91cyBpblxuICBzdWJzdCAnICcgMFxuXG5sZXQgdHJ1bmNhdGUgYiBsZW4gPVxuICAgIGlmIGxlbiA8IDAgfHwgbGVuID4gbGVuZ3RoIGIgdGhlblxuICAgICAgaW52YWxpZF9hcmcgXCJCdWZmZXIudHJ1bmNhdGVcIlxuICAgIGVsc2VcbiAgICAgIGIucG9zaXRpb24gPC0gbGVuXG5cbigqKiB7MSBJdGVyYXRvcnN9ICopXG5cbmxldCB0b19zZXEgYiA9XG4gIGxldCByZWMgYXV4IGkgKCkgPVxuICAgICgqIE5vdGUgdGhhdCBiLnBvc2l0aW9uIGlzIG5vdCBhIGNvbnN0YW50IGFuZCBjYW5ub3QgYmUgbGlmdGVkIG91dCBvZiBhdXggKilcbiAgICBpZiBpID49IGIucG9zaXRpb24gdGhlbiBTZXEuTmlsXG4gICAgZWxzZVxuICAgICAgbGV0IHggPSBCeXRlcy51bnNhZmVfZ2V0IGIuYnVmZmVyIGkgaW5cbiAgICAgIFNlcS5Db25zICh4LCBhdXggKGkrMSkpXG4gIGluXG4gIGF1eCAwXG5cbmxldCB0b19zZXFpIGIgPVxuICBsZXQgcmVjIGF1eCBpICgpID1cbiAgICAoKiBOb3RlIHRoYXQgYi5wb3NpdGlvbiBpcyBub3QgYSBjb25zdGFudCBhbmQgY2Fubm90IGJlIGxpZnRlZCBvdXQgb2YgYXV4ICopXG4gICAgaWYgaSA+PSBiLnBvc2l0aW9uIHRoZW4gU2VxLk5pbFxuICAgIGVsc2VcbiAgICAgIGxldCB4ID0gQnl0ZXMudW5zYWZlX2dldCBiLmJ1ZmZlciBpIGluXG4gICAgICBTZXEuQ29ucyAoKGkseCksIGF1eCAoaSsxKSlcbiAgaW5cbiAgYXV4IDBcblxubGV0IGFkZF9zZXEgYiBzZXEgPSBTZXEuaXRlciAoYWRkX2NoYXIgYikgc2VxXG5cbmxldCBvZl9zZXEgaSA9XG4gIGxldCBiID0gY3JlYXRlIDMyIGluXG4gIGFkZF9zZXEgYiBpO1xuICBiXG5cbigqKiB7NiBCaW5hcnkgZW5jb2Rpbmcgb2YgaW50ZWdlcnN9ICopXG5cbmV4dGVybmFsIHVuc2FmZV9zZXRfaW50OCA6IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdCA9IFwiJWJ5dGVzX3Vuc2FmZV9zZXRcIlxuZXh0ZXJuYWwgdW5zYWZlX3NldF9pbnQxNiA6IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdCA9IFwiJWNhbWxfYnl0ZXNfc2V0MTZ1XCJcbmV4dGVybmFsIHVuc2FmZV9zZXRfaW50MzIgOiBieXRlcyAtPiBpbnQgLT4gaW50MzIgLT4gdW5pdCA9IFwiJWNhbWxfYnl0ZXNfc2V0MzJ1XCJcbmV4dGVybmFsIHVuc2FmZV9zZXRfaW50NjQgOiBieXRlcyAtPiBpbnQgLT4gaW50NjQgLT4gdW5pdCA9IFwiJWNhbWxfYnl0ZXNfc2V0NjR1XCJcbmV4dGVybmFsIHN3YXAxNiA6IGludCAtPiBpbnQgPSBcIiVic3dhcDE2XCJcbmV4dGVybmFsIHN3YXAzMiA6IGludDMyIC0+IGludDMyID0gXCIlYnN3YXBfaW50MzJcIlxuZXh0ZXJuYWwgc3dhcDY0IDogaW50NjQgLT4gaW50NjQgPSBcIiVic3dhcF9pbnQ2NFwiXG5cblxubGV0IGFkZF9pbnQ4IGIgeCA9XG4gIGxldCBuZXdfcG9zaXRpb24gPSBiLnBvc2l0aW9uICsgMSBpblxuICBpZiBuZXdfcG9zaXRpb24gPiBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIDE7XG4gIHVuc2FmZV9zZXRfaW50OCBiLmJ1ZmZlciBiLnBvc2l0aW9uIHg7XG4gIGIucG9zaXRpb24gPC0gbmV3X3Bvc2l0aW9uXG5cbmxldCBhZGRfaW50MTZfbmUgYiB4ID1cbiAgbGV0IG5ld19wb3NpdGlvbiA9IGIucG9zaXRpb24gKyAyIGluXG4gIGlmIG5ld19wb3NpdGlvbiA+IGIubGVuZ3RoIHRoZW4gcmVzaXplIGIgMjtcbiAgdW5zYWZlX3NldF9pbnQxNiBiLmJ1ZmZlciBiLnBvc2l0aW9uIHg7XG4gIGIucG9zaXRpb24gPC0gbmV3X3Bvc2l0aW9uXG5cbmxldCBhZGRfaW50MzJfbmUgYiB4ID1cbiAgbGV0IG5ld19wb3NpdGlvbiA9IGIucG9zaXRpb24gKyA0IGluXG4gIGlmIG5ld19wb3NpdGlvbiA+IGIubGVuZ3RoIHRoZW4gcmVzaXplIGIgNDtcbiAgdW5zYWZlX3NldF9pbnQzMiBiLmJ1ZmZlciBiLnBvc2l0aW9uIHg7XG4gIGIucG9zaXRpb24gPC0gbmV3X3Bvc2l0aW9uXG5cbmxldCBhZGRfaW50NjRfbmUgYiB4ID1cbiAgbGV0IG5ld19wb3NpdGlvbiA9IGIucG9zaXRpb24gKyA4IGluXG4gIGlmIG5ld19wb3NpdGlvbiA+IGIubGVuZ3RoIHRoZW4gcmVzaXplIGIgODtcbiAgdW5zYWZlX3NldF9pbnQ2NCBiLmJ1ZmZlciBiLnBvc2l0aW9uIHg7XG4gIGIucG9zaXRpb24gPC0gbmV3X3Bvc2l0aW9uXG5cbmxldCBhZGRfaW50MTZfbGUgYiB4ID1cbiAgYWRkX2ludDE2X25lIGIgKGlmIFN5cy5iaWdfZW5kaWFuIHRoZW4gc3dhcDE2IHggZWxzZSB4KVxuXG5sZXQgYWRkX2ludDE2X2JlIGIgeCA9XG4gIGFkZF9pbnQxNl9uZSBiIChpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHggZWxzZSBzd2FwMTYgeClcblxubGV0IGFkZF9pbnQzMl9sZSBiIHggPVxuICBhZGRfaW50MzJfbmUgYiAoaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiBzd2FwMzIgeCBlbHNlIHgpXG5cbmxldCBhZGRfaW50MzJfYmUgYiB4ID1cbiAgYWRkX2ludDMyX25lIGIgKGlmIFN5cy5iaWdfZW5kaWFuIHRoZW4geCBlbHNlIHN3YXAzMiB4KVxuXG5sZXQgYWRkX2ludDY0X2xlIGIgeCA9XG4gIGFkZF9pbnQ2NF9uZSBiIChpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHN3YXA2NCB4IGVsc2UgeClcblxubGV0IGFkZF9pbnQ2NF9iZSBiIHggPVxuICBhZGRfaW50NjRfbmUgYiAoaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiB4IGVsc2Ugc3dhcDY0IHgpXG5cbmxldCBhZGRfdWludDggPSBhZGRfaW50OFxubGV0IGFkZF91aW50MTZfbmUgPSBhZGRfaW50MTZfbmVcbmxldCBhZGRfdWludDE2X2xlID0gYWRkX2ludDE2X2xlXG5sZXQgYWRkX3VpbnQxNl9iZSA9IGFkZF9pbnQxNl9iZVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgIEJlbm9pdCBWYXVnb24sIEVOU1RBICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxNCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5vcGVuIENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljc1xuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAoKiBUb29scyB0byBtYW5pcHVsYXRlIHNjYW5uaW5nIHNldCBvZiBjaGFycyAoc2VlICVbLi4uXSkgKilcblxudHlwZSBtdXRhYmxlX2NoYXJfc2V0ID0gYnl0ZXNcblxuKCogQ3JlYXRlIGEgZnJlc2gsIGVtcHR5LCBtdXRhYmxlIGNoYXIgc2V0LiAqKVxubGV0IGNyZWF0ZV9jaGFyX3NldCAoKSA9IEJ5dGVzLm1ha2UgMzIgJ1xcMDAwJ1xuXG4oKiBBZGQgYSBjaGFyIGluIGEgbXV0YWJsZSBjaGFyIHNldC4gKilcbmxldCBhZGRfaW5fY2hhcl9zZXQgY2hhcl9zZXQgYyA9XG4gIGxldCBpbmQgPSBpbnRfb2ZfY2hhciBjIGluXG4gIGxldCBzdHJfaW5kID0gaW5kIGxzciAzIGFuZCBtYXNrID0gMSBsc2wgKGluZCBsYW5kIDBiMTExKSBpblxuICBCeXRlcy5zZXQgY2hhcl9zZXQgc3RyX2luZFxuICAgIChjaGFyX29mX2ludCAoaW50X29mX2NoYXIgKEJ5dGVzLmdldCBjaGFyX3NldCBzdHJfaW5kKSBsb3IgbWFzaykpXG5cbmxldCBmcmVlemVfY2hhcl9zZXQgY2hhcl9zZXQgPVxuICBCeXRlcy50b19zdHJpbmcgY2hhcl9zZXRcblxuKCogQ29tcHV0ZSB0aGUgY29tcGxlbWVudCBvZiBhIGNoYXIgc2V0LiAqKVxubGV0IHJldl9jaGFyX3NldCBjaGFyX3NldCA9XG4gIGxldCBjaGFyX3NldCcgPSBjcmVhdGVfY2hhcl9zZXQgKCkgaW5cbiAgZm9yIGkgPSAwIHRvIDMxIGRvXG4gICAgQnl0ZXMuc2V0IGNoYXJfc2V0JyBpXG4gICAgICAoY2hhcl9vZl9pbnQgKGludF9vZl9jaGFyIChTdHJpbmcuZ2V0IGNoYXJfc2V0IGkpIGx4b3IgMHhGRikpO1xuICBkb25lO1xuICBCeXRlcy51bnNhZmVfdG9fc3RyaW5nIGNoYXJfc2V0J1xuXG4oKiBSZXR1cm4gdHJ1ZSBpZiBhIGBjJyBpcyBpbiBgY2hhcl9zZXQnLiAqKVxubGV0IGlzX2luX2NoYXJfc2V0IGNoYXJfc2V0IGMgPVxuICBsZXQgaW5kID0gaW50X29mX2NoYXIgYyBpblxuICBsZXQgc3RyX2luZCA9IGluZCBsc3IgMyBhbmQgbWFzayA9IDEgbHNsIChpbmQgbGFuZCAwYjExMSkgaW5cbiAgKGludF9vZl9jaGFyIChTdHJpbmcuZ2V0IGNoYXJfc2V0IHN0cl9pbmQpIGxhbmQgbWFzaykgPD4gMFxuXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCogSWdub3JlZCBwYXJhbSBjb252ZXJzaW9uICopXG5cbigqIEdBRFQgdXNlZCB0byBhYnN0cmFjdCBhbiBleGlzdGVudGlhbCB0eXBlIHBhcmFtZXRlci4gKilcbigqIFNlZSBwYXJhbV9mb3JtYXRfb2ZfaWdub3JlZF9mb3JtYXQuICopXG50eXBlICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBwYXJhbV9mb3JtYXRfZWJiID0gUGFyYW1fZm9ybWF0X0VCQiA6XG4gICAgKCd4IC0+ICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBwYXJhbV9mb3JtYXRfZWJiXG5cbigqIENvbXB1dGUgYSBwYWRkaW5nIGFzc29jaWF0ZWQgdG8gYSBwYWRfb3B0aW9uIChzZWUgXCIlXzQyZFwiKS4gKilcbmxldCBwYWRfb2ZfcGFkX29wdCBwYWRfb3B0ID0gbWF0Y2ggcGFkX29wdCB3aXRoXG4gIHwgTm9uZSAtPiBOb19wYWRkaW5nXG4gIHwgU29tZSB3aWR0aCAtPiBMaXRfcGFkZGluZyAoUmlnaHQsIHdpZHRoKVxuXG4oKiBDb21wdXRlIGEgcHJlY2lzaW9uIGFzc29jaWF0ZWQgdG8gYSBwcmVjX29wdGlvbiAoc2VlIFwiJV8uNDJmXCIpLiAqKVxubGV0IHByZWNfb2ZfcHJlY19vcHQgcHJlY19vcHQgPSBtYXRjaCBwcmVjX29wdCB3aXRoXG4gIHwgTm9uZSAtPiBOb19wcmVjaXNpb25cbiAgfCBTb21lIG5kZWMgLT4gTGl0X3ByZWNpc2lvbiBuZGVjXG5cbigqIFR1cm4gYW4gaWdub3JlZCBwYXJhbSBpbnRvIGl0cyBlcXVpdmFsZW50IG5vdC1pZ25vcmVkIGZvcm1hdCBub2RlLiAqKVxuKCogVXNlZCBmb3IgZm9ybWF0IHByZXR0eS1wcmludGluZyBhbmQgU2NhbmYuICopXG5sZXQgcGFyYW1fZm9ybWF0X29mX2lnbm9yZWRfZm9ybWF0IDogdHlwZSBhIGIgYyBkIGUgZiB4IHkgLlxuICAgIChhLCBiLCBjLCBkLCB5LCB4KSBpZ25vcmVkIC0+ICh4LCBiLCBjLCB5LCBlLCBmKSBmbXQgLT5cbiAgICAgIChhLCBiLCBjLCBkLCBlLCBmKSBwYXJhbV9mb3JtYXRfZWJiID1cbmZ1biBpZ24gZm10IC0+IG1hdGNoIGlnbiB3aXRoXG4gIHwgSWdub3JlZF9jaGFyIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoQ2hhciBmbXQpXG4gIHwgSWdub3JlZF9jYW1sX2NoYXIgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCIChDYW1sX2NoYXIgZm10KVxuICB8IElnbm9yZWRfc3RyaW5nIHBhZF9vcHQgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCIChTdHJpbmcgKHBhZF9vZl9wYWRfb3B0IHBhZF9vcHQsIGZtdCkpXG4gIHwgSWdub3JlZF9jYW1sX3N0cmluZyBwYWRfb3B0IC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoQ2FtbF9zdHJpbmcgKHBhZF9vZl9wYWRfb3B0IHBhZF9vcHQsIGZtdCkpXG4gIHwgSWdub3JlZF9pbnQgKGljb252LCBwYWRfb3B0KSAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkIgKEludCAoaWNvbnYsIHBhZF9vZl9wYWRfb3B0IHBhZF9vcHQsIE5vX3ByZWNpc2lvbiwgZm10KSlcbiAgfCBJZ25vcmVkX2ludDMyIChpY29udiwgcGFkX29wdCkgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCXG4gICAgICAoSW50MzIgKGljb252LCBwYWRfb2ZfcGFkX29wdCBwYWRfb3B0LCBOb19wcmVjaXNpb24sIGZtdCkpXG4gIHwgSWdub3JlZF9uYXRpdmVpbnQgKGljb252LCBwYWRfb3B0KSAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkJcbiAgICAgIChOYXRpdmVpbnQgKGljb252LCBwYWRfb2ZfcGFkX29wdCBwYWRfb3B0LCBOb19wcmVjaXNpb24sIGZtdCkpXG4gIHwgSWdub3JlZF9pbnQ2NCAoaWNvbnYsIHBhZF9vcHQpIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQlxuICAgICAgKEludDY0IChpY29udiwgcGFkX29mX3BhZF9vcHQgcGFkX29wdCwgTm9fcHJlY2lzaW9uLCBmbXQpKVxuICB8IElnbm9yZWRfZmxvYXQgKHBhZF9vcHQsIHByZWNfb3B0KSAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkJcbiAgICAgIChGbG9hdCAoKEZsb2F0X2ZsYWdfLCBGbG9hdF9mKSxcbiAgICAgICAgICAgICAgcGFkX29mX3BhZF9vcHQgcGFkX29wdCwgcHJlY19vZl9wcmVjX29wdCBwcmVjX29wdCwgZm10KSlcbiAgfCBJZ25vcmVkX2Jvb2wgcGFkX29wdCAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkIgKEJvb2wgKHBhZF9vZl9wYWRfb3B0IHBhZF9vcHQsIGZtdCkpXG4gIHwgSWdub3JlZF9mb3JtYXRfYXJnIChwYWRfb3B0LCBmbXR0eSkgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCIChGb3JtYXRfYXJnIChwYWRfb3B0LCBmbXR0eSwgZm10KSlcbiAgfCBJZ25vcmVkX2Zvcm1hdF9zdWJzdCAocGFkX29wdCwgZm10dHkpIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQlxuICAgICAgKEZvcm1hdF9zdWJzdCAocGFkX29wdCwgZm10dHksIGZtdCkpXG4gIHwgSWdub3JlZF9yZWFkZXIgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCIChSZWFkZXIgZm10KVxuICB8IElnbm9yZWRfc2Nhbl9jaGFyX3NldCAod2lkdGhfb3B0LCBjaGFyX3NldCkgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCIChTY2FuX2NoYXJfc2V0ICh3aWR0aF9vcHQsIGNoYXJfc2V0LCBmbXQpKVxuICB8IElnbm9yZWRfc2Nhbl9nZXRfY291bnRlciBjb3VudGVyIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoU2Nhbl9nZXRfY291bnRlciAoY291bnRlciwgZm10KSlcbiAgfCBJZ25vcmVkX3NjYW5fbmV4dF9jaGFyIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoU2Nhbl9uZXh0X2NoYXIgZm10KVxuXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBUeXBlcyAqKVxuXG50eXBlICgnYiwgJ2MpIGFjY19mb3JtYXR0aW5nX2dlbiA9XG4gIHwgQWNjX29wZW5fdGFnIG9mICgnYiwgJ2MpIGFjY1xuICB8IEFjY19vcGVuX2JveCBvZiAoJ2IsICdjKSBhY2NcblxuKCogUmV2ZXJzZWQgbGlzdCBvZiBwcmludGluZyBhdG9tcy4gKilcbigqIFVzZWQgdG8gYWNjdW11bGF0ZSBwcmludGYgYXJndW1lbnRzLiAqKVxuYW5kICgnYiwgJ2MpIGFjYyA9XG4gIHwgQWNjX2Zvcm1hdHRpbmdfbGl0IG9mICgnYiwgJ2MpIGFjYyAqIGZvcm1hdHRpbmdfbGl0XG4gICAgICAoKiBTcGVjaWFsIGZtdHRpbmcgKGJveCkgKilcbiAgfCBBY2NfZm9ybWF0dGluZ19nZW4gb2YgKCdiLCAnYykgYWNjICogKCdiLCAnYykgYWNjX2Zvcm1hdHRpbmdfZ2VuXG4gICAgICAoKiBTcGVjaWFsIGZtdHRpbmcgKGJveCkgKilcbiAgfCBBY2Nfc3RyaW5nX2xpdGVyYWwgb2YgKCdiLCAnYykgYWNjICogc3RyaW5nICAgICAoKiBMaXRlcmFsIHN0cmluZyAqKVxuICB8IEFjY19jaGFyX2xpdGVyYWwgICBvZiAoJ2IsICdjKSBhY2MgKiBjaGFyICAgICAgICgqIExpdGVyYWwgY2hhciAqKVxuICB8IEFjY19kYXRhX3N0cmluZyAgICBvZiAoJ2IsICdjKSBhY2MgKiBzdHJpbmcgICAgICgqIEdlbmVyYXRlZCBzdHJpbmcgKilcbiAgfCBBY2NfZGF0YV9jaGFyICAgICAgb2YgKCdiLCAnYykgYWNjICogY2hhciAgICAgICAoKiBHZW5lcmF0ZWQgY2hhciAqKVxuICB8IEFjY19kZWxheSAgICAgICAgICBvZiAoJ2IsICdjKSBhY2MgKiAoJ2IgLT4gJ2MpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBEZWxheWVkIHByaW50aW5nICglYSwgJXQpICopXG4gIHwgQWNjX2ZsdXNoICAgICAgICAgIG9mICgnYiwgJ2MpIGFjYyAgICAgICAgICAgICAgKCogRmx1c2ggKilcbiAgfCBBY2NfaW52YWxpZF9hcmcgICAgb2YgKCdiLCAnYykgYWNjICogc3RyaW5nXG4gICAgICAoKiBSYWlzZSBJbnZhbGlkX2FyZ3VtZW50IG1zZyAqKVxuICB8IEVuZF9vZl9hY2NcblxuKCogTGlzdCBvZiBoZXRlcm9nZW5lb3VzIHZhbHVlcy4gKilcbigqIFVzZWQgdG8gYWNjdW11bGF0ZSBzY2FuZiBjYWxsYmFjayBhcmd1bWVudHMuICopXG50eXBlICgnYSwgJ2IpIGhldGVyX2xpc3QgPVxuICB8IENvbnMgOiAnYyAqICgnYSwgJ2IpIGhldGVyX2xpc3QgLT4gKCdjIC0+ICdhLCAnYikgaGV0ZXJfbGlzdFxuICB8IE5pbCA6ICgnYiwgJ2IpIGhldGVyX2xpc3RcblxuKCogRXhpc3RlbnRpYWwgQmxhY2sgQm94ZXMuICopXG4oKiBVc2VkIHRvIGFic3RyYWN0IHNvbWUgZXhpc3RlbnRpYWwgdHlwZSBwYXJhbWV0ZXJzLiAqKVxuXG4oKiBHQURUIHR5cGUgYXNzb2NpYXRpbmcgYSBwYWRkaW5nIGFuZCBhbiBmbXR0eS4gKilcbigqIFNlZSB0aGUgdHlwZV9wYWRkaW5nIGZ1bmN0aW9uLiAqKVxudHlwZSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgcGFkZGluZ19mbXR0eV9lYmIgPSBQYWRkaW5nX2ZtdHR5X0VCQiA6XG4gICAgICgneCwgJ3kpIHBhZGRpbmcgKiAoJ3ksICdiLCAnYywgJ2QsICdlLCAnZikgZm10dHkgLT5cbiAgICAgKCd4LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIHBhZGRpbmdfZm10dHlfZWJiXG5cbigqIEdBRFQgdHlwZSBhc3NvY2lhdGluZyBhIHBhZGRpbmcsIGEgcHJlY2lzaW9uIGFuZCBhbiBmbXR0eS4gKilcbigqIFNlZSB0aGUgdHlwZV9wYWRwcmVjIGZ1bmN0aW9uLiAqKVxudHlwZSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgcGFkcHJlY19mbXR0eV9lYmIgPSBQYWRwcmVjX2ZtdHR5X0VCQiA6XG4gICAgICgneCwgJ3kpIHBhZGRpbmcgKiAoJ3ksICd6KSBwcmVjaXNpb24gKiAoJ3osICdiLCAnYywgJ2QsICdlLCAnZikgZm10dHkgLT5cbiAgICAgKCd4LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIHBhZHByZWNfZm10dHlfZWJiXG5cbigqIEdBRFQgdHlwZSBhc3NvY2lhdGluZyBhIHBhZGRpbmcgYW5kIGFuIGZtdC4gKilcbigqIFNlZSBtYWtlX3BhZGRpbmdfZm10X2ViYiBhbmQgcGFyc2VfZm9ybWF0IGZ1bmN0aW9ucy4gKilcbnR5cGUgKCdhLCAnYiwgJ2MsICdlLCAnZikgcGFkZGluZ19mbXRfZWJiID0gUGFkZGluZ19mbXRfRUJCIDpcbiAgICAgKF8sICd4IC0+ICdhKSBwYWRkaW5nICpcbiAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAoJ3gsICdiLCAnYywgJ2UsICdmKSBwYWRkaW5nX2ZtdF9lYmJcblxuKCogR0FEVCB0eXBlIGFzc29jaWF0aW5nIGEgcHJlY2lzaW9uIGFuZCBhbiBmbXQuICopXG4oKiBTZWUgbWFrZV9wcmVjaXNpb25fZm10X2ViYiBhbmQgcGFyc2VfZm9ybWF0IGZ1bmN0aW9ucy4gKilcbnR5cGUgKCdhLCAnYiwgJ2MsICdlLCAnZikgcHJlY2lzaW9uX2ZtdF9lYmIgPSBQcmVjaXNpb25fZm10X0VCQiA6XG4gICAgIChfLCAneCAtPiAnYSkgcHJlY2lzaW9uICpcbiAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAoJ3gsICdiLCAnYywgJ2UsICdmKSBwcmVjaXNpb25fZm10X2ViYlxuXG4oKiBHQURUIHR5cGUgYXNzb2NpYXRpbmcgYSBwYWRkaW5nLCBhIHByZWNpc2lvbiBhbmQgYW4gZm10LiAqKVxuKCogU2VlIG1ha2VfcGFkcHJlY19mbXRfZWJiIGFuZCBwYXJzZV9mb3JtYXQgZnVuY3Rpb25zLiAqKVxudHlwZSAoJ3AsICdiLCAnYywgJ2UsICdmKSBwYWRwcmVjX2ZtdF9lYmIgPSBQYWRwcmVjX2ZtdF9FQkIgOlxuICAgICAoJ3gsICd5KSBwYWRkaW5nICogKCd5LCAncCAtPiAnYSkgcHJlY2lzaW9uICpcbiAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAoJ3AsICdiLCAnYywgJ2UsICdmKSBwYWRwcmVjX2ZtdF9lYmJcblxuKCogQWJzdHJhY3QgdGhlICdhIGFuZCAnZCBwYXJhbWV0ZXJzIG9mIGFuIGZtdC4gKilcbigqIE91dHB1dCB0eXBlIG9mIHRoZSBmb3JtYXQgcGFyc2luZyBmdW5jdGlvbi4gKilcbnR5cGUgKCdiLCAnYywgJ2UsICdmKSBmbXRfZWJiID0gRm10X0VCQiA6XG4gICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgKCdiLCAnYywgJ2UsICdmKSBmbXRfZWJiXG5cbigqIEdBRFQgdHlwZSBhc3NvY2lhdGluZyBhbiBmbXR0eSBhbmQgYW4gZm10LiAqKVxuKCogU2VlIHRoZSB0eXBlX2Zvcm1hdF9nZW4gZnVuY3Rpb24uICopXG50eXBlICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRfZm10dHlfZWJiID0gRm10X2ZtdHR5X0VCQiA6XG4gICAgICgnYSwgJ2IsICdjLCAnZCwgJ3ksICd4KSBmbXQgKlxuICAgICAoJ3gsICdiLCAnYywgJ3ksICdlLCAnZikgZm10dHkgLT5cbiAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdF9mbXR0eV9lYmJcblxuKCogR0FEVCB0eXBlIGFzc29jaWF0aW5nIGFuIGZtdHR5IGFuZCBhbiBmbXQuICopXG4oKiBTZWUgdGhlIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIGZ1bmN0aW9uLiAqKVxudHlwZSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10dHlfZm10X2ViYiA9IEZtdHR5X2ZtdF9FQkIgOlxuICAgICAoJ2EsICdiLCAnYywgJ2QsICd5LCAneCkgZm10dHkgKlxuICAgICAoJ3gsICdiLCAnYywgJ3ksICdlLCAnZikgZm10X2ZtdHR5X2ViYiAtPlxuICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10dHlfZm10X2ViYlxuXG4oKiBBYnN0cmFjdCBhbGwgZm10dHkgdHlwZSBwYXJhbWV0ZXJzLiAqKVxuKCogVXNlZCB0byBjb21wYXJlIGZvcm1hdCB0eXBlcy4gKilcbnR5cGUgZm10dHlfZWJiID0gRm10dHlfRUJCIDogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5IC0+IGZtdHR5X2ViYlxuXG4oKiBBYnN0cmFjdCBhbGwgcGFkZGluZyB0eXBlIHBhcmFtZXRlcnMuICopXG4oKiBVc2VkIHRvIGNvbXBhcmUgcGFkZGluZ3MuICopXG50eXBlIHBhZGRpbmdfZWJiID0gUGFkZGluZ19FQkIgOiAoJ2EsICdiKSBwYWRkaW5nIC0+IHBhZGRpbmdfZWJiXG5cbigqIEFic3RyYWN0IGFsbCBwcmVjaXNpb24gdHlwZSBwYXJhbWV0ZXJzLiAqKVxuKCogVXNlZCB0byBjb21wYXJlIHByZWNpc2lvbnMuICopXG50eXBlIHByZWNpc2lvbl9lYmIgPSBQcmVjaXNpb25fRUJCIDogKCdhLCAnYikgcHJlY2lzaW9uIC0+IHByZWNpc2lvbl9lYmJcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBDb25zdGFudHMgKilcblxuKCogRGVmYXVsdCBwcmVjaXNpb24gZm9yIGZsb2F0IHByaW50aW5nLiAqKVxubGV0IGRlZmF1bHRfZmxvYXRfcHJlY2lzaW9uIGZjb252ID1cbiAgbWF0Y2ggc25kIGZjb252IHdpdGhcbiAgfCBGbG9hdF9mIHwgRmxvYXRfZSB8IEZsb2F0X0UgfCBGbG9hdF9nIHwgRmxvYXRfRyB8IEZsb2F0X2ggfCBGbG9hdF9IXG4gIHwgRmxvYXRfQ0YgLT4gLTZcbiAgKCogRm9yICVoICVIIGFuZCAlI0YgZm9ybWF0cywgYSBuZWdhdGl2ZSBwcmVjaXNpb24gbWVhbnMgXCJhcyBtYW55IGRpZ2l0cyBhc1xuICAgICBuZWNlc3NhcnlcIi4gIEZvciB0aGUgb3RoZXIgRlAgZm9ybWF0cywgd2UgdGFrZSB0aGUgYWJzb2x1dGUgdmFsdWVcbiAgICAgb2YgdGhlIHByZWNpc2lvbiwgaGVuY2UgNiBkaWdpdHMgYnkgZGVmYXVsdC4gKilcbiAgfCBGbG9hdF9GIC0+IDEyXG4gICgqIERlZmF1bHQgcHJlY2lzaW9uIGZvciBPQ2FtbCBmbG9hdCBwcmludGluZyAoJUYpLiAqKVxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEV4dGVybmFscyAqKVxuXG5leHRlcm5hbCBmb3JtYXRfZmxvYXQ6IHN0cmluZyAtPiBmbG9hdCAtPiBzdHJpbmdcbiAgPSBcImNhbWxfZm9ybWF0X2Zsb2F0XCJcbmV4dGVybmFsIGZvcm1hdF9pbnQ6IHN0cmluZyAtPiBpbnQgLT4gc3RyaW5nXG4gID0gXCJjYW1sX2Zvcm1hdF9pbnRcIlxuZXh0ZXJuYWwgZm9ybWF0X2ludDMyOiBzdHJpbmcgLT4gaW50MzIgLT4gc3RyaW5nXG4gID0gXCJjYW1sX2ludDMyX2Zvcm1hdFwiXG5leHRlcm5hbCBmb3JtYXRfbmF0aXZlaW50OiBzdHJpbmcgLT4gbmF0aXZlaW50IC0+IHN0cmluZ1xuICA9IFwiY2FtbF9uYXRpdmVpbnRfZm9ybWF0XCJcbmV4dGVybmFsIGZvcm1hdF9pbnQ2NDogc3RyaW5nIC0+IGludDY0IC0+IHN0cmluZ1xuICA9IFwiY2FtbF9pbnQ2NF9mb3JtYXRcIlxuZXh0ZXJuYWwgaGV4c3RyaW5nX29mX2Zsb2F0OiBmbG9hdCAtPiBpbnQgLT4gY2hhciAtPiBzdHJpbmdcbiAgPSBcImNhbWxfaGV4c3RyaW5nX29mX2Zsb2F0XCJcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICgqIFRvb2xzIHRvIHByZXR0eS1wcmludCBmb3JtYXRzICopXG5cbigqIFR5cGUgb2YgZXh0ZW5zaWJsZSBjaGFyYWN0ZXIgYnVmZmVycy4gKilcbnR5cGUgYnVmZmVyID0ge1xuICBtdXRhYmxlIGluZCA6IGludDtcbiAgbXV0YWJsZSBieXRlcyA6IGJ5dGVzO1xufVxuXG4oKiBDcmVhdGUgYSBmcmVzaCBidWZmZXIuICopXG5sZXQgYnVmZmVyX2NyZWF0ZSBpbml0X3NpemUgPSB7IGluZCA9IDA7IGJ5dGVzID0gQnl0ZXMuY3JlYXRlIGluaXRfc2l6ZSB9XG5cbigqIENoZWNrIHNpemUgb2YgdGhlIGJ1ZmZlciBhbmQgZ3JvdyBpdCBpZiBuZWVkZWQuICopXG5sZXQgYnVmZmVyX2NoZWNrX3NpemUgYnVmIG92ZXJoZWFkID1cbiAgbGV0IGxlbiA9IEJ5dGVzLmxlbmd0aCBidWYuYnl0ZXMgaW5cbiAgbGV0IG1pbl9sZW4gPSBidWYuaW5kICsgb3ZlcmhlYWQgaW5cbiAgaWYgbWluX2xlbiA+IGxlbiB0aGVuIChcbiAgICBsZXQgbmV3X2xlbiA9IEludC5tYXggKGxlbiAqIDIpIG1pbl9sZW4gaW5cbiAgICBsZXQgbmV3X3N0ciA9IEJ5dGVzLmNyZWF0ZSBuZXdfbGVuIGluXG4gICAgQnl0ZXMuYmxpdCBidWYuYnl0ZXMgMCBuZXdfc3RyIDAgbGVuO1xuICAgIGJ1Zi5ieXRlcyA8LSBuZXdfc3RyO1xuICApXG5cbigqIEFkZCB0aGUgY2hhcmFjdGVyIGBjJyB0byB0aGUgYnVmZmVyIGBidWYnLiAqKVxubGV0IGJ1ZmZlcl9hZGRfY2hhciBidWYgYyA9XG4gIGJ1ZmZlcl9jaGVja19zaXplIGJ1ZiAxO1xuICBCeXRlcy5zZXQgYnVmLmJ5dGVzIGJ1Zi5pbmQgYztcbiAgYnVmLmluZCA8LSBidWYuaW5kICsgMVxuXG4oKiBBZGQgdGhlIHN0cmluZyBgcycgdG8gdGhlIGJ1ZmZlciBgYnVmJy4gKilcbmxldCBidWZmZXJfYWRkX3N0cmluZyBidWYgcyA9XG4gIGxldCBzdHJfbGVuID0gU3RyaW5nLmxlbmd0aCBzIGluXG4gIGJ1ZmZlcl9jaGVja19zaXplIGJ1ZiBzdHJfbGVuO1xuICBTdHJpbmcuYmxpdCBzIDAgYnVmLmJ5dGVzIGJ1Zi5pbmQgc3RyX2xlbjtcbiAgYnVmLmluZCA8LSBidWYuaW5kICsgc3RyX2xlblxuXG4oKiBHZXQgdGhlIGNvbnRlbnQgb2YgdGhlIGJ1ZmZlci4gKilcbmxldCBidWZmZXJfY29udGVudHMgYnVmID1cbiAgQnl0ZXMuc3ViX3N0cmluZyBidWYuYnl0ZXMgMCBidWYuaW5kXG5cbigqKiopXG5cbigqIENvbnZlcnQgYW4gaW50ZWdlciBjb252ZXJzaW9uIHRvIGNoYXIuICopXG5sZXQgY2hhcl9vZl9pY29udiBpY29udiA9IG1hdGNoIGljb252IHdpdGhcbiAgfCBJbnRfZCB8IEludF9wZCB8IEludF9zZCB8IEludF9DZCAtPiAnZCcgfCBJbnRfaSB8IEludF9waSB8IEludF9zaVxuICB8IEludF9DaSAtPiAnaScgfCBJbnRfeCB8IEludF9DeCAtPiAneCcgfCBJbnRfWCB8IEludF9DWCAtPiAnWCcgfCBJbnRfb1xuICB8IEludF9DbyAtPiAnbycgfCBJbnRfdSB8IEludF9DdSAtPiAndSdcblxuKCogQ29udmVydCBhIGZsb2F0IGNvbnZlcnNpb24gdG8gY2hhci4gKilcbigqIGBjRicgd2lsbCBiZSAnRicgZm9yIGRpc3BsYXlpbmcgZm9ybWF0IGFuZCAnZycgdG8gY2FsbCBsaWJjIHByaW50ZiAqKVxubGV0IGNoYXJfb2ZfZmNvbnYgPyhjRj0nRicpIGZjb252ID0gbWF0Y2ggc25kIGZjb252IHdpdGhcbiAgfCBGbG9hdF9mIC0+ICdmJyB8IEZsb2F0X2UgLT4gJ2UnXG4gIHwgRmxvYXRfRSAtPiAnRScgfCBGbG9hdF9nIC0+ICdnJ1xuICB8IEZsb2F0X0cgLT4gJ0cnIHwgRmxvYXRfRiAtPiBjRlxuICB8IEZsb2F0X2ggLT4gJ2gnIHwgRmxvYXRfSCAtPiAnSCdcbiAgfCBGbG9hdF9DRiAtPiAnRidcblxuXG4oKiBDb252ZXJ0IGEgc2Nhbm5pbmcgY291bnRlciB0byBjaGFyLiAqKVxubGV0IGNoYXJfb2ZfY291bnRlciBjb3VudGVyID0gbWF0Y2ggY291bnRlciB3aXRoXG4gIHwgTGluZV9jb3VudGVyICAtPiAnbCdcbiAgfCBDaGFyX2NvdW50ZXIgIC0+ICduJ1xuICB8IFRva2VuX2NvdW50ZXIgLT4gJ04nXG5cbigqKiopXG5cbigqIFByaW50IGEgY2hhcl9zZXQgaW4gYSBidWZmZXIgd2l0aCB0aGUgT0NhbWwgZm9ybWF0IGxleGljYWwgY29udmVudGlvbi4gKilcbmxldCBicHJpbnRfY2hhcl9zZXQgYnVmIGNoYXJfc2V0ID1cbiAgbGV0IHJlYyBwcmludF9zdGFydCBzZXQgPVxuICAgIGxldCBpc19hbG9uZSBjID1cbiAgICAgIGxldCBiZWZvcmUsIGFmdGVyID0gQ2hhci4oY2hyIChjb2RlIGMgLSAxKSwgY2hyIChjb2RlIGMgKyAxKSkgaW5cbiAgICAgIGlzX2luX2NoYXJfc2V0IHNldCBjXG4gICAgICAmJiBub3QgKGlzX2luX2NoYXJfc2V0IHNldCBiZWZvcmUgJiYgaXNfaW5fY2hhcl9zZXQgc2V0IGFmdGVyKSBpblxuICAgIGlmIGlzX2Fsb25lICddJyB0aGVuIGJ1ZmZlcl9hZGRfY2hhciBidWYgJ10nO1xuICAgIHByaW50X291dCBzZXQgMTtcbiAgICBpZiBpc19hbG9uZSAnLScgdGhlbiBidWZmZXJfYWRkX2NoYXIgYnVmICctJztcbiAgYW5kIHByaW50X291dCBzZXQgaSA9XG4gICAgaWYgaSA8IDI1NiB0aGVuXG4gICAgICBpZiBpc19pbl9jaGFyX3NldCBzZXQgKGNoYXJfb2ZfaW50IGkpIHRoZW4gcHJpbnRfZmlyc3Qgc2V0IGlcbiAgICAgIGVsc2UgcHJpbnRfb3V0IHNldCAoaSArIDEpXG4gIGFuZCBwcmludF9maXJzdCBzZXQgaSA9XG4gICAgbWF0Y2ggY2hhcl9vZl9pbnQgaSB3aXRoXG4gICAgfCAnXFwyNTUnIC0+IHByaW50X2NoYXIgYnVmIDI1NTtcbiAgICB8ICddJyB8ICctJyAtPiBwcmludF9vdXQgc2V0IChpICsgMSk7XG4gICAgfCBfIC0+IHByaW50X3NlY29uZCBzZXQgKGkgKyAxKTtcbiAgYW5kIHByaW50X3NlY29uZCBzZXQgaSA9XG4gICAgaWYgaXNfaW5fY2hhcl9zZXQgc2V0IChjaGFyX29mX2ludCBpKSB0aGVuXG4gICAgICBtYXRjaCBjaGFyX29mX2ludCBpIHdpdGhcbiAgICAgIHwgJ1xcMjU1JyAtPlxuICAgICAgICBwcmludF9jaGFyIGJ1ZiAyNTQ7XG4gICAgICAgIHByaW50X2NoYXIgYnVmIDI1NTtcbiAgICAgIHwgJ10nIHwgJy0nIHdoZW4gbm90IChpc19pbl9jaGFyX3NldCBzZXQgKGNoYXJfb2ZfaW50IChpICsgMSkpKSAtPlxuICAgICAgICBwcmludF9jaGFyIGJ1ZiAoaSAtIDEpO1xuICAgICAgICBwcmludF9vdXQgc2V0IChpICsgMSk7XG4gICAgICB8IF8gd2hlbiBub3QgKGlzX2luX2NoYXJfc2V0IHNldCAoY2hhcl9vZl9pbnQgKGkgKyAxKSkpIC0+XG4gICAgICAgIHByaW50X2NoYXIgYnVmIChpIC0gMSk7XG4gICAgICAgIHByaW50X2NoYXIgYnVmIGk7XG4gICAgICAgIHByaW50X291dCBzZXQgKGkgKyAyKTtcbiAgICAgIHwgXyAtPlxuICAgICAgICBwcmludF9pbiBzZXQgKGkgLSAxKSAoaSArIDIpO1xuICAgIGVsc2UgKFxuICAgICAgcHJpbnRfY2hhciBidWYgKGkgLSAxKTtcbiAgICAgIHByaW50X291dCBzZXQgKGkgKyAxKTtcbiAgICApXG4gIGFuZCBwcmludF9pbiBzZXQgaSBqID1cbiAgICBpZiBqID0gMjU2IHx8IG5vdCAoaXNfaW5fY2hhcl9zZXQgc2V0IChjaGFyX29mX2ludCBqKSkgdGhlbiAoXG4gICAgICBwcmludF9jaGFyIGJ1ZiBpO1xuICAgICAgcHJpbnRfY2hhciBidWYgKGludF9vZl9jaGFyICctJyk7XG4gICAgICBwcmludF9jaGFyIGJ1ZiAoaiAtIDEpO1xuICAgICAgaWYgaiA8IDI1NiB0aGVuIHByaW50X291dCBzZXQgKGogKyAxKTtcbiAgICApIGVsc2VcbiAgICAgIHByaW50X2luIHNldCBpIChqICsgMSk7XG4gIGFuZCBwcmludF9jaGFyIGJ1ZiBpID0gbWF0Y2ggY2hhcl9vZl9pbnQgaSB3aXRoXG4gICAgfCAnJScgLT4gYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnO1xuICAgIHwgJ0AnIC0+IGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBidWZmZXJfYWRkX2NoYXIgYnVmICdAJztcbiAgICB8IGMgICAtPiBidWZmZXJfYWRkX2NoYXIgYnVmIGM7XG4gIGluXG4gIGJ1ZmZlcl9hZGRfY2hhciBidWYgJ1snO1xuICBwcmludF9zdGFydCAoXG4gICAgaWYgaXNfaW5fY2hhcl9zZXQgY2hhcl9zZXQgJ1xcMDAwJ1xuICAgIHRoZW4gKCBidWZmZXJfYWRkX2NoYXIgYnVmICdeJzsgcmV2X2NoYXJfc2V0IGNoYXJfc2V0IClcbiAgICBlbHNlIGNoYXJfc2V0XG4gICk7XG4gIGJ1ZmZlcl9hZGRfY2hhciBidWYgJ10nXG5cbigqKiopXG5cbigqIFByaW50IGEgcGFkdHkgaW4gYSBidWZmZXIgd2l0aCB0aGUgZm9ybWF0LWxpa2Ugc3ludGF4LiAqKVxubGV0IGJwcmludF9wYWR0eSBidWYgcGFkdHkgPSBtYXRjaCBwYWR0eSB3aXRoXG4gIHwgTGVmdCAgLT4gYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnLSdcbiAgfCBSaWdodCAtPiAoKVxuICB8IFplcm9zIC0+IGJ1ZmZlcl9hZGRfY2hhciBidWYgJzAnXG5cbigqIFByaW50IHRoZSAnXycgb2YgYW4gaWdub3JlZCBmbGFnIGlmIG5lZWRlZC4gKilcbmxldCBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZyA9XG4gIGlmIGlnbl9mbGFnIHRoZW4gYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnXydcblxuKCoqKilcblxubGV0IGJwcmludF9wYWRfb3B0IGJ1ZiBwYWRfb3B0ID0gbWF0Y2ggcGFkX29wdCB3aXRoXG4gIHwgTm9uZSAtPiAoKVxuICB8IFNvbWUgd2lkdGggLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIChJbnQudG9fc3RyaW5nIHdpZHRoKVxuXG4oKioqKVxuXG4oKiBQcmludCBwYWRkaW5nIGluIGEgYnVmZmVyIHdpdGggdGhlIGZvcm1hdC1saWtlIHN5bnRheC4gKilcbmxldCBicHJpbnRfcGFkZGluZyA6IHR5cGUgYSBiIC4gYnVmZmVyIC0+IChhLCBiKSBwYWRkaW5nIC0+IHVuaXQgPVxuZnVuIGJ1ZiBwYWQgLT4gbWF0Y2ggcGFkIHdpdGhcbiAgfCBOb19wYWRkaW5nIC0+ICgpXG4gIHwgTGl0X3BhZGRpbmcgKHBhZHR5LCBuKSAtPlxuICAgIGJwcmludF9wYWR0eSBidWYgcGFkdHk7XG4gICAgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIChJbnQudG9fc3RyaW5nIG4pO1xuICB8IEFyZ19wYWRkaW5nIHBhZHR5IC0+XG4gICAgYnByaW50X3BhZHR5IGJ1ZiBwYWR0eTtcbiAgICBidWZmZXJfYWRkX2NoYXIgYnVmICcqJ1xuXG4oKiBQcmludCBwcmVjaXNpb24gaW4gYSBidWZmZXIgd2l0aCB0aGUgZm9ybWF0LWxpa2Ugc3ludGF4LiAqKVxubGV0IGJwcmludF9wcmVjaXNpb24gOiB0eXBlIGEgYiAuIGJ1ZmZlciAtPiAoYSwgYikgcHJlY2lzaW9uIC0+IHVuaXQgPVxuICBmdW4gYnVmIHByZWMgLT4gbWF0Y2ggcHJlYyB3aXRoXG4gIHwgTm9fcHJlY2lzaW9uIC0+ICgpXG4gIHwgTGl0X3ByZWNpc2lvbiBuIC0+XG4gICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnLic7XG4gICAgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIChJbnQudG9fc3RyaW5nIG4pO1xuICB8IEFyZ19wcmVjaXNpb24gLT5cbiAgICBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIuKlwiXG5cbigqKiopXG5cbigqIFByaW50IHRoZSBvcHRpb25hbCAnKycsICcgJyBvciAnIycgYXNzb2NpYXRlZCB0byBhbiBpbnQgY29udmVyc2lvbi4gKilcbmxldCBicHJpbnRfaWNvbnZfZmxhZyBidWYgaWNvbnYgPSBtYXRjaCBpY29udiB3aXRoXG4gIHwgSW50X3BkIHwgSW50X3BpIC0+IGJ1ZmZlcl9hZGRfY2hhciBidWYgJysnXG4gIHwgSW50X3NkIHwgSW50X3NpIC0+IGJ1ZmZlcl9hZGRfY2hhciBidWYgJyAnXG4gIHwgSW50X0N4IHwgSW50X0NYIHwgSW50X0NvIHwgSW50X0NkIHwgSW50X0NpIHwgSW50X0N1IC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICcjJ1xuICB8IEludF9kIHwgSW50X2kgfCBJbnRfeCB8IEludF9YIHwgSW50X28gfCBJbnRfdSAtPiAoKVxuXG4oKiBQcmludCBhbiBjb21wbGV0ZSBpbnQgZm9ybWF0IGluIGEgYnVmZmVyIChleDogXCIlMy4qZFwiKS4gKilcbmxldCBicHJpbnRfaW50X2ZtdCBidWYgaWduX2ZsYWcgaWNvbnYgcGFkIHByZWMgPVxuICBidWZmZXJfYWRkX2NoYXIgYnVmICclJztcbiAgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gIGJwcmludF9pY29udl9mbGFnIGJ1ZiBpY29udjtcbiAgYnByaW50X3BhZGRpbmcgYnVmIHBhZDtcbiAgYnByaW50X3ByZWNpc2lvbiBidWYgcHJlYztcbiAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAoY2hhcl9vZl9pY29udiBpY29udilcblxuKCogUHJpbnQgYSBjb21wbGV0ZSBpbnQzMiwgbmF0aXZlaW50IG9yIGludDY0IGZvcm1hdCBpbiBhIGJ1ZmZlci4gKilcbmxldCBicHJpbnRfYWx0aW50X2ZtdCBidWYgaWduX2ZsYWcgaWNvbnYgcGFkIHByZWMgYyA9XG4gIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnO1xuICBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgYnByaW50X2ljb252X2ZsYWcgYnVmIGljb252O1xuICBicHJpbnRfcGFkZGluZyBidWYgcGFkO1xuICBicHJpbnRfcHJlY2lzaW9uIGJ1ZiBwcmVjO1xuICBidWZmZXJfYWRkX2NoYXIgYnVmIGM7XG4gIGJ1ZmZlcl9hZGRfY2hhciBidWYgKGNoYXJfb2ZfaWNvbnYgaWNvbnYpXG5cbigqKiopXG5cbigqIFByaW50IHRoZSBvcHRpb25hbCAnKycsICcgJyBhbmQvb3IgJyMnIGFzc29jaWF0ZWQgdG8gYSBmbG9hdCBjb252ZXJzaW9uLiAqKVxubGV0IGJwcmludF9mY29udl9mbGFnIGJ1ZiBmY29udiA9XG4gIGJlZ2luIG1hdGNoIGZzdCBmY29udiB3aXRoXG4gIHwgRmxvYXRfZmxhZ19wIC0+IGJ1ZmZlcl9hZGRfY2hhciBidWYgJysnXG4gIHwgRmxvYXRfZmxhZ19zIC0+IGJ1ZmZlcl9hZGRfY2hhciBidWYgJyAnXG4gIHwgRmxvYXRfZmxhZ18gLT4gKCkgZW5kO1xuICBtYXRjaCBzbmQgZmNvbnYgd2l0aFxuICB8IEZsb2F0X0NGIC0+IGJ1ZmZlcl9hZGRfY2hhciBidWYgJyMnXG4gIHwgRmxvYXRfZiB8IEZsb2F0X2UgfCBGbG9hdF9FIHwgRmxvYXRfZyB8IEZsb2F0X0dcbiAgfCBGbG9hdF9GIHwgRmxvYXRfaCB8IEZsb2F0X0ggLT4gKClcblxuKCogUHJpbnQgYSBjb21wbGV0ZSBmbG9hdCBmb3JtYXQgaW4gYSBidWZmZXIgKGV4OiBcIiUrKi4zZlwiKS4gKilcbmxldCBicHJpbnRfZmxvYXRfZm10IGJ1ZiBpZ25fZmxhZyBmY29udiBwYWQgcHJlYyA9XG4gIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnO1xuICBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgYnByaW50X2Zjb252X2ZsYWcgYnVmIGZjb252O1xuICBicHJpbnRfcGFkZGluZyBidWYgcGFkO1xuICBicHJpbnRfcHJlY2lzaW9uIGJ1ZiBwcmVjO1xuICBidWZmZXJfYWRkX2NoYXIgYnVmIChjaGFyX29mX2Zjb252IGZjb252KVxuXG4oKiBDb21wdXRlIHRoZSBsaXRlcmFsIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIEZvcm1hdHRpbmdfbGl0LiAqKVxuKCogVXNlZCBieSBQcmludGYgYW5kIFNjYW5mIHdoZXJlIGZvcm1hdHRpbmcgaXMgbm90IGludGVycHJldGVkLiAqKVxubGV0IHN0cmluZ19vZl9mb3JtYXR0aW5nX2xpdCBmb3JtYXR0aW5nX2xpdCA9IG1hdGNoIGZvcm1hdHRpbmdfbGl0IHdpdGhcbiAgfCBDbG9zZV9ib3ggICAgICAgICAgICAtPiBcIkBdXCJcbiAgfCBDbG9zZV90YWcgICAgICAgICAgICAtPiBcIkB9XCJcbiAgfCBCcmVhayAoc3RyLCBfLCBfKSAgICAtPiBzdHJcbiAgfCBGRmx1c2ggICAgICAgICAgICAgICAtPiBcIkA/XCJcbiAgfCBGb3JjZV9uZXdsaW5lICAgICAgICAtPiBcIkBcXG5cIlxuICB8IEZsdXNoX25ld2xpbmUgICAgICAgIC0+IFwiQC5cIlxuICB8IE1hZ2ljX3NpemUgKHN0ciwgXykgIC0+IHN0clxuICB8IEVzY2FwZWRfYXQgICAgICAgICAgIC0+IFwiQEBcIlxuICB8IEVzY2FwZWRfcGVyY2VudCAgICAgIC0+IFwiQCVcIlxuICB8IFNjYW5faW5kaWMgYyAtPiBcIkBcIiBeIChTdHJpbmcubWFrZSAxIGMpXG5cbigqKiopXG5cbigqIFByaW50IGEgbGl0ZXJhbCBjaGFyIGluIGEgYnVmZmVyLCBlc2NhcGUgJyUnIGJ5IFwiJSVcIi4gKilcbmxldCBicHJpbnRfY2hhcl9saXRlcmFsIGJ1ZiBjaHIgPSBtYXRjaCBjaHIgd2l0aFxuICB8ICclJyAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlJVwiXG4gIHwgXyAtPiBidWZmZXJfYWRkX2NoYXIgYnVmIGNoclxuXG4oKiBQcmludCBhIGxpdGVyYWwgc3RyaW5nIGluIGEgYnVmZmVyLCBlc2NhcGUgYWxsICclJyBieSBcIiUlXCIuICopXG5sZXQgYnByaW50X3N0cmluZ19saXRlcmFsIGJ1ZiBzdHIgPVxuICBmb3IgaSA9IDAgdG8gU3RyaW5nLmxlbmd0aCBzdHIgLSAxIGRvXG4gICAgYnByaW50X2NoYXJfbGl0ZXJhbCBidWYgc3RyLltpXVxuICBkb25lXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICgqIEZvcm1hdCBwcmV0dHktcHJpbnRpbmcgKilcblxuKCogUHJpbnQgYSBjb21wbGV0ZSBmb3JtYXQgdHlwZSAoYW4gZm10dHkpIGluIGEgYnVmZmVyLiAqKVxubGV0IHJlYyBicHJpbnRfZm10dHkgOiB0eXBlIGEgYiBjIGQgZSBmIGcgaCBpIGogayBsIC5cbiAgICBidWZmZXIgLT4gKGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGksIGosIGssIGwpIGZtdHR5X3JlbCAtPiB1bml0ID1cbmZ1biBidWYgZm10dHkgLT4gbWF0Y2ggZm10dHkgd2l0aFxuICB8IENoYXJfdHkgcmVzdCAgICAgIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiVjXCI7ICBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgU3RyaW5nX3R5IHJlc3QgICAgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJXNcIjsgIGJwcmludF9mbXR0eSBidWYgcmVzdDtcbiAgfCBJbnRfdHkgcmVzdCAgICAgICAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlaVwiOyAgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IEludDMyX3R5IHJlc3QgICAgIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiVsaVwiOyBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgTmF0aXZlaW50X3R5IHJlc3QgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJW5pXCI7IGJwcmludF9mbXR0eSBidWYgcmVzdDtcbiAgfCBJbnQ2NF90eSByZXN0ICAgICAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlTGlcIjsgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IEZsb2F0X3R5IHJlc3QgICAgIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiVmXCI7ICBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgQm9vbF90eSByZXN0ICAgICAgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJUJcIjsgIGJwcmludF9mbXR0eSBidWYgcmVzdDtcbiAgfCBBbHBoYV90eSByZXN0ICAgICAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlYVwiOyAgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IFRoZXRhX3R5IHJlc3QgICAgIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiV0XCI7ICBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgQW55X3R5IHJlc3QgICAgICAgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJT9cIjsgIGJwcmludF9mbXR0eSBidWYgcmVzdDtcbiAgfCBSZWFkZXJfdHkgcmVzdCAgICAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlclwiOyAgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuXG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgcmVzdCAtPlxuICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiVfclwiO1xuICAgIGJwcmludF9mbXR0eSBidWYgcmVzdDtcblxuICB8IEZvcm1hdF9hcmdfdHkgKHN1Yl9mbXR0eSwgcmVzdCkgLT5cbiAgICBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIle1wiOyBicHJpbnRfZm10dHkgYnVmIHN1Yl9mbXR0eTtcbiAgICBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlfVwiOyBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgRm9ybWF0X3N1YnN0X3R5IChzdWJfZm10dHksIF8sIHJlc3QpIC0+XG4gICAgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJShcIjsgYnByaW50X2ZtdHR5IGJ1ZiBzdWJfZm10dHk7XG4gICAgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJSlcIjsgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuXG4gIHwgRW5kX29mX2ZtdHR5IC0+ICgpXG5cbigqKiopXG5cbmxldCByZWMgaW50X29mX2N1c3RvbV9hcml0eSA6IHR5cGUgYSBiIGMgLlxuICAoYSwgYiwgYykgY3VzdG9tX2FyaXR5IC0+IGludCA9XG4gIGZ1bmN0aW9uXG4gIHwgQ3VzdG9tX3plcm8gLT4gMFxuICB8IEN1c3RvbV9zdWNjIHggLT4gMSArIGludF9vZl9jdXN0b21fYXJpdHkgeFxuXG4oKiBQcmludCBhIGNvbXBsZXRlIGZvcm1hdCBpbiBhIGJ1ZmZlci4gKilcbmxldCBicHJpbnRfZm10IGJ1ZiBmbXQgPVxuICBsZXQgcmVjIGZtdGl0ZXIgOiB0eXBlIGEgYiBjIGQgZSBmIC5cbiAgICAgIChhLCBiLCBjLCBkLCBlLCBmKSBmbXQgLT4gYm9vbCAtPiB1bml0ID1cbiAgZnVuIGZtdCBpZ25fZmxhZyAtPiBtYXRjaCBmbXQgd2l0aFxuICAgIHwgU3RyaW5nIChwYWQsIHJlc3QpIC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBicHJpbnRfcGFkZGluZyBidWYgcGFkOyBidWZmZXJfYWRkX2NoYXIgYnVmICdzJztcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IENhbWxfc3RyaW5nIChwYWQsIHJlc3QpIC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBicHJpbnRfcGFkZGluZyBidWYgcGFkOyBidWZmZXJfYWRkX2NoYXIgYnVmICdTJztcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcblxuICAgIHwgSW50IChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgICAgYnByaW50X2ludF9mbXQgYnVmIGlnbl9mbGFnIGljb252IHBhZCBwcmVjO1xuICAgICAgZm10aXRlciByZXN0IGZhbHNlO1xuICAgIHwgSW50MzIgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgICBicHJpbnRfYWx0aW50X2ZtdCBidWYgaWduX2ZsYWcgaWNvbnYgcGFkIHByZWMgJ2wnO1xuICAgICAgZm10aXRlciByZXN0IGZhbHNlO1xuICAgIHwgTmF0aXZlaW50IChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgICAgYnByaW50X2FsdGludF9mbXQgYnVmIGlnbl9mbGFnIGljb252IHBhZCBwcmVjICduJztcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IEludDY0IChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgICAgYnByaW50X2FsdGludF9mbXQgYnVmIGlnbl9mbGFnIGljb252IHBhZCBwcmVjICdMJztcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IEZsb2F0IChmY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgICAgYnByaW50X2Zsb2F0X2ZtdCBidWYgaWduX2ZsYWcgZmNvbnYgcGFkIHByZWM7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG5cbiAgICB8IENoYXIgcmVzdCAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnYyc7IGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IENhbWxfY2hhciByZXN0IC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICdDJzsgZm10aXRlciByZXN0IGZhbHNlO1xuICAgIHwgQm9vbCAocGFkLCByZXN0KSAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnByaW50X3BhZGRpbmcgYnVmIHBhZDsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnQic7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBBbHBoYSByZXN0IC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICdhJzsgZm10aXRlciByZXN0IGZhbHNlO1xuICAgIHwgVGhldGEgcmVzdCAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAndCc7IGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IEN1c3RvbSAoYXJpdHksIF8sIHJlc3QpIC0+XG4gICAgICBmb3IgX2kgPSAxIHRvIGludF9vZl9jdXN0b21fYXJpdHkgYXJpdHkgZG9cbiAgICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICc/JztcbiAgICAgIGRvbmU7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBSZWFkZXIgcmVzdCAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAncic7IGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IEZsdXNoIHJlc3QgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiUhXCI7XG4gICAgICBmbXRpdGVyIHJlc3QgaWduX2ZsYWc7XG5cbiAgICB8IFN0cmluZ19saXRlcmFsIChzdHIsIHJlc3QpIC0+XG4gICAgICBicHJpbnRfc3RyaW5nX2xpdGVyYWwgYnVmIHN0cjtcbiAgICAgIGZtdGl0ZXIgcmVzdCBpZ25fZmxhZztcbiAgICB8IENoYXJfbGl0ZXJhbCAoY2hyLCByZXN0KSAtPlxuICAgICAgYnByaW50X2NoYXJfbGl0ZXJhbCBidWYgY2hyO1xuICAgICAgZm10aXRlciByZXN0IGlnbl9mbGFnO1xuXG4gICAgfCBGb3JtYXRfYXJnIChwYWRfb3B0LCBmbXR0eSwgcmVzdCkgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgIGJwcmludF9wYWRfb3B0IGJ1ZiBwYWRfb3B0OyBidWZmZXJfYWRkX2NoYXIgYnVmICd7JztcbiAgICAgIGJwcmludF9mbXR0eSBidWYgZm10dHk7IGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBidWZmZXJfYWRkX2NoYXIgYnVmICd9JztcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IEZvcm1hdF9zdWJzdCAocGFkX29wdCwgZm10dHksIHJlc3QpIC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBicHJpbnRfcGFkX29wdCBidWYgcGFkX29wdDsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnKCc7XG4gICAgICBicHJpbnRfZm10dHkgYnVmIGZtdHR5OyBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnKSc7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG5cbiAgICB8IFNjYW5fY2hhcl9zZXQgKHdpZHRoX29wdCwgY2hhcl9zZXQsIHJlc3QpIC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBicHJpbnRfcGFkX29wdCBidWYgd2lkdGhfb3B0OyBicHJpbnRfY2hhcl9zZXQgYnVmIGNoYXJfc2V0O1xuICAgICAgZm10aXRlciByZXN0IGZhbHNlO1xuICAgIHwgU2Nhbl9nZXRfY291bnRlciAoY291bnRlciwgcmVzdCkgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgKGNoYXJfb2ZfY291bnRlciBjb3VudGVyKTtcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IFNjYW5fbmV4dF9jaGFyIHJlc3QgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgIGJwcmludF9zdHJpbmdfbGl0ZXJhbCBidWYgXCIwY1wiOyBmbXRpdGVyIHJlc3QgZmFsc2U7XG5cbiAgICB8IElnbm9yZWRfcGFyYW0gKGlnbiwgcmVzdCkgLT5cbiAgICAgIGxldCBQYXJhbV9mb3JtYXRfRUJCIGZtdCcgPSBwYXJhbV9mb3JtYXRfb2ZfaWdub3JlZF9mb3JtYXQgaWduIHJlc3QgaW5cbiAgICAgIGZtdGl0ZXIgZm10JyB0cnVlO1xuXG4gICAgfCBGb3JtYXR0aW5nX2xpdCAoZm10aW5nX2xpdCwgcmVzdCkgLT5cbiAgICAgIGJwcmludF9zdHJpbmdfbGl0ZXJhbCBidWYgKHN0cmluZ19vZl9mb3JtYXR0aW5nX2xpdCBmbXRpbmdfbGl0KTtcbiAgICAgIGZtdGl0ZXIgcmVzdCBpZ25fZmxhZztcbiAgICB8IEZvcm1hdHRpbmdfZ2VuIChmbXRpbmdfZ2VuLCByZXN0KSAtPlxuICAgICAgYmVnaW4gbWF0Y2ggZm10aW5nX2dlbiB3aXRoXG4gICAgICB8IE9wZW5fdGFnIChGb3JtYXQgKF8sIHN0cikpIC0+XG4gICAgICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIkB7XCI7IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBzdHJcbiAgICAgIHwgT3Blbl9ib3ggKEZvcm1hdCAoXywgc3RyKSkgLT5cbiAgICAgICAgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiQFtcIjsgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIHN0clxuICAgICAgZW5kO1xuICAgICAgZm10aXRlciByZXN0IGlnbl9mbGFnO1xuXG4gICAgfCBFbmRfb2ZfZm9ybWF0IC0+ICgpXG5cbiAgaW4gZm10aXRlciBmbXQgZmFsc2VcblxuKCoqKilcblxuKCogQ29udmVydCBhIGZvcm1hdCB0byBzdHJpbmcuICopXG5sZXQgc3RyaW5nX29mX2ZtdCBmbXQgPVxuICBsZXQgYnVmID0gYnVmZmVyX2NyZWF0ZSAxNiBpblxuICBicHJpbnRfZm10IGJ1ZiBmbXQ7XG4gIGJ1ZmZlcl9jb250ZW50cyBidWZcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKCogVHlwZSBleHRyYWN0aW9uICopXG5cbnR5cGUgKF8sIF8pIGVxID0gUmVmbCA6ICgnYSwgJ2EpIGVxXG5cbigqIEludmFyaWFudDogdGhpcyBmdW5jdGlvbiBpcyB0aGUgaWRlbnRpdHkgb24gdmFsdWVzLlxuXG4gICBJbiBwYXJ0aWN1bGFyLCBpZiAodHkxLCB0eTIpIGhhdmUgZXF1YWwgdmFsdWVzLCB0aGVuXG4gICAodHJhbnMgKHN5bW0gdHkxKSB0eTIpIHJlc3BlY3RzIHRoZSAndHJhbnMnIHByZWNvbmRpdGlvbi4gKilcbmxldCByZWMgc3ltbSA6IHR5cGUgYTEgYjEgYzEgZDEgZTEgZjEgYTIgYjIgYzIgZDIgZTIgZjIgLlxuICAgKGExLCBiMSwgYzEsIGQxLCBlMSwgZjEsXG4gICAgYTIsIGIyLCBjMiwgZDIsIGUyLCBmMikgZm10dHlfcmVsXG4tPiAoYTIsIGIyLCBjMiwgZDIsIGUyLCBmMixcbiAgICBhMSwgYjEsIGMxLCBkMSwgZTEsIGYxKSBmbXR0eV9yZWxcbj0gZnVuY3Rpb25cbiAgfCBDaGFyX3R5IHJlc3QgLT4gQ2hhcl90eSAoc3ltbSByZXN0KVxuICB8IEludF90eSByZXN0IC0+IEludF90eSAoc3ltbSByZXN0KVxuICB8IEludDMyX3R5IHJlc3QgLT4gSW50MzJfdHkgKHN5bW0gcmVzdClcbiAgfCBJbnQ2NF90eSByZXN0IC0+IEludDY0X3R5IChzeW1tIHJlc3QpXG4gIHwgTmF0aXZlaW50X3R5IHJlc3QgLT4gTmF0aXZlaW50X3R5IChzeW1tIHJlc3QpXG4gIHwgRmxvYXRfdHkgcmVzdCAtPiBGbG9hdF90eSAoc3ltbSByZXN0KVxuICB8IEJvb2xfdHkgcmVzdCAtPiBCb29sX3R5IChzeW1tIHJlc3QpXG4gIHwgU3RyaW5nX3R5IHJlc3QgLT4gU3RyaW5nX3R5IChzeW1tIHJlc3QpXG4gIHwgVGhldGFfdHkgcmVzdCAtPiBUaGV0YV90eSAoc3ltbSByZXN0KVxuICB8IEFscGhhX3R5IHJlc3QgLT4gQWxwaGFfdHkgKHN5bW0gcmVzdClcbiAgfCBBbnlfdHkgcmVzdCAtPiBBbnlfdHkgKHN5bW0gcmVzdClcbiAgfCBSZWFkZXJfdHkgcmVzdCAtPiBSZWFkZXJfdHkgKHN5bW0gcmVzdClcbiAgfCBJZ25vcmVkX3JlYWRlcl90eSByZXN0IC0+IElnbm9yZWRfcmVhZGVyX3R5IChzeW1tIHJlc3QpXG4gIHwgRm9ybWF0X2FyZ190eSAodHksIHJlc3QpIC0+XG4gICAgRm9ybWF0X2FyZ190eSAodHksIHN5bW0gcmVzdClcbiAgfCBGb3JtYXRfc3Vic3RfdHkgKHR5MSwgdHkyLCByZXN0KSAtPlxuICAgIEZvcm1hdF9zdWJzdF90eSAodHkyLCB0eTEsIHN5bW0gcmVzdClcbiAgfCBFbmRfb2ZfZm10dHkgLT4gRW5kX29mX2ZtdHR5XG5cbmxldCByZWMgZm10dHlfcmVsX2RldCA6IHR5cGUgYTEgYiBjIGQxIGUxIGYxIGEyIGQyIGUyIGYyIC5cbiAgKGExLCBiLCBjLCBkMSwgZTEsIGYxLFxuICAgYTIsIGIsIGMsIGQyLCBlMiwgZjIpIGZtdHR5X3JlbCAtPlxuICAgICgoZjEsIGYyKSBlcSAtPiAoYTEsIGEyKSBlcSlcbiAgKiAoKGExLCBhMikgZXEgLT4gKGYxLCBmMikgZXEpXG4gICogKChlMSwgZTIpIGVxIC0+IChkMSwgZDIpIGVxKVxuICAqICgoZDEsIGQyKSBlcSAtPiAoZTEsIGUyKSBlcSlcbj0gZnVuY3Rpb25cbiAgfCBFbmRfb2ZfZm10dHkgLT5cbiAgICAoZnVuIFJlZmwgLT4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gUmVmbClcbiAgfCBDaGFyX3R5IHJlc3QgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgZWQsIGRlXG4gIHwgU3RyaW5nX3R5IHJlc3QgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgZWQsIGRlXG4gIHwgSW50X3R5IHJlc3QgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgZWQsIGRlXG4gIHwgSW50MzJfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcbiAgfCBJbnQ2NF90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuICB8IE5hdGl2ZWludF90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuICB8IEZsb2F0X3R5IHJlc3QgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgZWQsIGRlXG4gIHwgQm9vbF90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuXG4gIHwgVGhldGFfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcbiAgfCBBbHBoYV90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuICB8IEFueV90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuICB8IFJlYWRlcl90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGVkIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZGUgUmVmbCBpbiBSZWZsKVxuICB8IElnbm9yZWRfcmVhZGVyX3R5IHJlc3QgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZWQgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBkZSBSZWZsIGluIFJlZmwpXG4gIHwgRm9ybWF0X2FyZ190eSAoX3R5LCByZXN0KSAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcbiAgfCBGb3JtYXRfc3Vic3RfdHkgKHR5MSwgdHkyLCByZXN0KSAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIGxldCB0eSA9IHRyYW5zIChzeW1tIHR5MSkgdHkyIGluXG4gICAgbGV0IGFnLCBnYSwgZGosIGpkID0gZm10dHlfcmVsX2RldCB0eSBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gbGV0IFJlZmwgPSBhZyBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGdhIFJlZmwgaW4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGVkIFJlZmwgaW4gbGV0IFJlZmwgPSBkaiBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGpkIFJlZmwgaW4gbGV0IFJlZmwgPSBkZSBSZWZsIGluIFJlZmwpXG5cbigqIFByZWNvbmRpdGlvbjogd2UgYXNzdW1lIHRoYXQgdGhlIHR3byBmbXR0eV9yZWwgYXJndW1lbnRzIGhhdmUgZXF1YWxcbiAgIHZhbHVlcyAoYXQgcG9zc2libHkgZGlzdGluY3QgdHlwZXMpOyB0aGlzIGludmFyaWFudCBjb21lcyBmcm9tIHRoZSB3YXlcbiAgIGZtdHR5X3JlbCB3aXRuZXNzZXMgYXJlIHByb2R1Y2VkIGJ5IHRoZSB0eXBlLWNoZWNrZXJcblxuICAgVGhlIGNvZGUgYmVsb3cgdXNlcyAoYXNzZXJ0IGZhbHNlKSB3aGVuIHRoaXMgYXNzdW1wdGlvbiBpcyBicm9rZW4uIFRoZVxuICAgY29kZSBwYXR0ZXJuIGlzIHRoZSBmb2xsb3dpbmc6XG5cbiAgICAgfCBGb28geCwgRm9vIHkgLT5cbiAgICAgICAoKiBjYXNlIHdoZXJlIGluZGVlZCBib3RoIHZhbHVlc1xuICAgICAgICAgIHN0YXJ0IHdpdGggY29uc3RydWN0b3IgRm9vICopXG4gICAgIHwgRm9vIF8sIF9cbiAgICAgfCBfLCBGb28gXyAtPlxuICAgICAgICgqIGRpZmZlcmVudCBoZWFkIGNvbnN0cnVjdG9yczogYnJva2VuIHByZWNvbmRpdGlvbiAqKVxuICAgICAgIGFzc2VydCBmYWxzZVxuKilcbmFuZCB0cmFucyA6IHR5cGVcbiAgYTEgYjEgYzEgZDEgZTEgZjFcbiAgYTIgYjIgYzIgZDIgZTIgZjJcbiAgYTMgYjMgYzMgZDMgZTMgZjNcbi5cbiAgIChhMSwgYjEsIGMxLCBkMSwgZTEsIGYxLFxuICAgIGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIpIGZtdHR5X3JlbFxuLT4gKGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIsXG4gICAgYTMsIGIzLCBjMywgZDMsIGUzLCBmMykgZm10dHlfcmVsXG4tPiAoYTEsIGIxLCBjMSwgZDEsIGUxLCBmMSxcbiAgICBhMywgYjMsIGMzLCBkMywgZTMsIGYzKSBmbXR0eV9yZWxcbj0gZnVuIHR5MSB0eTIgLT4gbWF0Y2ggdHkxLCB0eTIgd2l0aFxuICB8IENoYXJfdHkgcmVzdDEsIENoYXJfdHkgcmVzdDIgLT4gQ2hhcl90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgU3RyaW5nX3R5IHJlc3QxLCBTdHJpbmdfdHkgcmVzdDIgLT4gU3RyaW5nX3R5ICh0cmFucyByZXN0MSByZXN0MilcbiAgfCBCb29sX3R5IHJlc3QxLCBCb29sX3R5IHJlc3QyIC0+IEJvb2xfdHkgKHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IEludF90eSByZXN0MSwgSW50X3R5IHJlc3QyIC0+IEludF90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgSW50MzJfdHkgcmVzdDEsIEludDMyX3R5IHJlc3QyIC0+IEludDMyX3R5ICh0cmFucyByZXN0MSByZXN0MilcbiAgfCBJbnQ2NF90eSByZXN0MSwgSW50NjRfdHkgcmVzdDIgLT4gSW50NjRfdHkgKHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IE5hdGl2ZWludF90eSByZXN0MSwgTmF0aXZlaW50X3R5IHJlc3QyIC0+IE5hdGl2ZWludF90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgRmxvYXRfdHkgcmVzdDEsIEZsb2F0X3R5IHJlc3QyIC0+IEZsb2F0X3R5ICh0cmFucyByZXN0MSByZXN0MilcblxuICB8IEFscGhhX3R5IHJlc3QxLCBBbHBoYV90eSByZXN0MiAtPiBBbHBoYV90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgQWxwaGFfdHkgXywgXyAtPiBhc3NlcnQgZmFsc2VcbiAgfCBfLCBBbHBoYV90eSBfIC0+IGFzc2VydCBmYWxzZVxuXG4gIHwgVGhldGFfdHkgcmVzdDEsIFRoZXRhX3R5IHJlc3QyIC0+IFRoZXRhX3R5ICh0cmFucyByZXN0MSByZXN0MilcbiAgfCBUaGV0YV90eSBfLCBfIC0+IGFzc2VydCBmYWxzZVxuICB8IF8sIFRoZXRhX3R5IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbiAgfCBBbnlfdHkgcmVzdDEsIEFueV90eSByZXN0MiAtPiBBbnlfdHkgKHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IEFueV90eSBfLCBfIC0+IGFzc2VydCBmYWxzZVxuICB8IF8sIEFueV90eSBfIC0+IGFzc2VydCBmYWxzZVxuXG4gIHwgUmVhZGVyX3R5IHJlc3QxLCBSZWFkZXJfdHkgcmVzdDIgLT4gUmVhZGVyX3R5ICh0cmFucyByZXN0MSByZXN0MilcbiAgfCBSZWFkZXJfdHkgXywgXyAtPiBhc3NlcnQgZmFsc2VcbiAgfCBfLCBSZWFkZXJfdHkgXyAtPiBhc3NlcnQgZmFsc2VcblxuICB8IElnbm9yZWRfcmVhZGVyX3R5IHJlc3QxLCBJZ25vcmVkX3JlYWRlcl90eSByZXN0MiAtPlxuICAgIElnbm9yZWRfcmVhZGVyX3R5ICh0cmFucyByZXN0MSByZXN0MilcbiAgfCBJZ25vcmVkX3JlYWRlcl90eSBfLCBfIC0+IGFzc2VydCBmYWxzZVxuICB8IF8sIElnbm9yZWRfcmVhZGVyX3R5IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbiAgfCBGb3JtYXRfYXJnX3R5ICh0eTEsIHJlc3QxKSwgRm9ybWF0X2FyZ190eSAodHkyLCByZXN0MikgLT5cbiAgICBGb3JtYXRfYXJnX3R5ICh0cmFucyB0eTEgdHkyLCB0cmFucyByZXN0MSByZXN0MilcbiAgfCBGb3JtYXRfYXJnX3R5IF8sIF8gLT4gYXNzZXJ0IGZhbHNlXG4gIHwgXywgRm9ybWF0X2FyZ190eSBfIC0+IGFzc2VydCBmYWxzZVxuXG4gIHwgRm9ybWF0X3N1YnN0X3R5ICh0eTExLCB0eTEyLCByZXN0MSksXG4gICAgRm9ybWF0X3N1YnN0X3R5ICh0eTIxLCB0eTIyLCByZXN0MikgLT5cbiAgICBsZXQgdHkgPSB0cmFucyAoc3ltbSB0eTEyKSB0eTIxIGluXG4gICAgbGV0IF8sIGYyLCBfLCBmNCA9IGZtdHR5X3JlbF9kZXQgdHkgaW5cbiAgICBsZXQgUmVmbCA9IGYyIFJlZmwgaW5cbiAgICBsZXQgUmVmbCA9IGY0IFJlZmwgaW5cbiAgICBGb3JtYXRfc3Vic3RfdHkgKHR5MTEsIHR5MjIsIHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IEZvcm1hdF9zdWJzdF90eSBfLCBfIC0+IGFzc2VydCBmYWxzZVxuICB8IF8sIEZvcm1hdF9zdWJzdF90eSBfIC0+IGFzc2VydCBmYWxzZVxuXG4gIHwgRW5kX29mX2ZtdHR5LCBFbmRfb2ZfZm10dHkgLT4gRW5kX29mX2ZtdHR5XG4gIHwgRW5kX29mX2ZtdHR5LCBfIC0+IGFzc2VydCBmYWxzZVxuICB8IF8sIEVuZF9vZl9mbXR0eSAtPiBhc3NlcnQgZmFsc2VcblxubGV0IHJlYyBmbXR0eV9vZl9mb3JtYXR0aW5nX2dlbiA6IHR5cGUgYSBiIGMgZCBlIGYgLlxuICAoYSwgYiwgYywgZCwgZSwgZikgZm9ybWF0dGluZ19nZW4gLT5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10dHkgPVxuZnVuIGZvcm1hdHRpbmdfZ2VuIC0+IG1hdGNoIGZvcm1hdHRpbmdfZ2VuIHdpdGhcbiAgfCBPcGVuX3RhZyAoRm9ybWF0IChmbXQsIF8pKSAtPiBmbXR0eV9vZl9mbXQgZm10XG4gIHwgT3Blbl9ib3ggKEZvcm1hdCAoZm10LCBfKSkgLT4gZm10dHlfb2ZfZm10IGZtdFxuXG4oKiBFeHRyYWN0IHRoZSB0eXBlIHJlcHJlc2VudGF0aW9uIChhbiBmbXR0eSkgb2YgYSBmb3JtYXQuICopXG5hbmQgZm10dHlfb2ZfZm10IDogdHlwZSBhIGIgYyBkIGUgZiAuXG4gIChhLCBiLCBjLCBkLCBlLCBmKSBmbXQgLT4gKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5ID1cbmZ1biBmbXR0eSAtPiBtYXRjaCBmbXR0eSB3aXRoXG4gIHwgU3RyaW5nIChwYWQsIHJlc3QpIC0+XG4gICAgZm10dHlfb2ZfcGFkZGluZ19mbXR0eSBwYWQgKFN0cmluZ190eSAoZm10dHlfb2ZfZm10IHJlc3QpKVxuICB8IENhbWxfc3RyaW5nIChwYWQsIHJlc3QpIC0+XG4gICAgZm10dHlfb2ZfcGFkZGluZ19mbXR0eSBwYWQgKFN0cmluZ190eSAoZm10dHlfb2ZfZm10IHJlc3QpKVxuXG4gIHwgSW50IChfLCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbGV0IHR5X3Jlc3QgPSBmbXR0eV9vZl9mbXQgcmVzdCBpblxuICAgIGxldCBwcmVjX3R5ID0gZm10dHlfb2ZfcHJlY2lzaW9uX2ZtdHR5IHByZWMgKEludF90eSB0eV9yZXN0KSBpblxuICAgIGZtdHR5X29mX3BhZGRpbmdfZm10dHkgcGFkIHByZWNfdHlcbiAgfCBJbnQzMiAoXywgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIGxldCB0eV9yZXN0ID0gZm10dHlfb2ZfZm10IHJlc3QgaW5cbiAgICBsZXQgcHJlY190eSA9IGZtdHR5X29mX3ByZWNpc2lvbl9mbXR0eSBwcmVjIChJbnQzMl90eSB0eV9yZXN0KSBpblxuICAgIGZtdHR5X29mX3BhZGRpbmdfZm10dHkgcGFkIHByZWNfdHlcbiAgfCBOYXRpdmVpbnQgKF8sIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBsZXQgdHlfcmVzdCA9IGZtdHR5X29mX2ZtdCByZXN0IGluXG4gICAgbGV0IHByZWNfdHkgPSBmbXR0eV9vZl9wcmVjaXNpb25fZm10dHkgcHJlYyAoTmF0aXZlaW50X3R5IHR5X3Jlc3QpIGluXG4gICAgZm10dHlfb2ZfcGFkZGluZ19mbXR0eSBwYWQgcHJlY190eVxuICB8IEludDY0IChfLCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbGV0IHR5X3Jlc3QgPSBmbXR0eV9vZl9mbXQgcmVzdCBpblxuICAgIGxldCBwcmVjX3R5ID0gZm10dHlfb2ZfcHJlY2lzaW9uX2ZtdHR5IHByZWMgKEludDY0X3R5IHR5X3Jlc3QpIGluXG4gICAgZm10dHlfb2ZfcGFkZGluZ19mbXR0eSBwYWQgcHJlY190eVxuICB8IEZsb2F0IChfLCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbGV0IHR5X3Jlc3QgPSBmbXR0eV9vZl9mbXQgcmVzdCBpblxuICAgIGxldCBwcmVjX3R5ID0gZm10dHlfb2ZfcHJlY2lzaW9uX2ZtdHR5IHByZWMgKEZsb2F0X3R5IHR5X3Jlc3QpIGluXG4gICAgZm10dHlfb2ZfcGFkZGluZ19mbXR0eSBwYWQgcHJlY190eVxuXG4gIHwgQ2hhciByZXN0ICAgICAgICAgICAgICAgICAgLT4gQ2hhcl90eSAoZm10dHlfb2ZfZm10IHJlc3QpXG4gIHwgQ2FtbF9jaGFyIHJlc3QgICAgICAgICAgICAgLT4gQ2hhcl90eSAoZm10dHlfb2ZfZm10IHJlc3QpXG4gIHwgQm9vbCAocGFkLCByZXN0KSAgICAgICAgICAgLT5cbiAgICAgIGZtdHR5X29mX3BhZGRpbmdfZm10dHkgcGFkIChCb29sX3R5IChmbXR0eV9vZl9mbXQgcmVzdCkpXG4gIHwgQWxwaGEgcmVzdCAgICAgICAgICAgICAgICAgLT4gQWxwaGFfdHkgKGZtdHR5X29mX2ZtdCByZXN0KVxuICB8IFRoZXRhIHJlc3QgICAgICAgICAgICAgICAgIC0+IFRoZXRhX3R5IChmbXR0eV9vZl9mbXQgcmVzdClcbiAgfCBDdXN0b20gKGFyaXR5LCBfLCByZXN0KSAgICAtPiBmbXR0eV9vZl9jdXN0b20gYXJpdHkgKGZtdHR5X29mX2ZtdCByZXN0KVxuICB8IFJlYWRlciByZXN0ICAgICAgICAgICAgICAgIC0+IFJlYWRlcl90eSAoZm10dHlfb2ZfZm10IHJlc3QpXG5cbiAgfCBGb3JtYXRfYXJnIChfLCB0eSwgcmVzdCkgLT5cbiAgICBGb3JtYXRfYXJnX3R5ICh0eSwgZm10dHlfb2ZfZm10IHJlc3QpXG4gIHwgRm9ybWF0X3N1YnN0IChfLCB0eSwgcmVzdCkgLT5cbiAgICBGb3JtYXRfc3Vic3RfdHkgKHR5LCB0eSwgZm10dHlfb2ZfZm10IHJlc3QpXG5cbiAgfCBGbHVzaCByZXN0ICAgICAgICAgICAgICAgICAtPiBmbXR0eV9vZl9mbXQgcmVzdFxuICB8IFN0cmluZ19saXRlcmFsIChfLCByZXN0KSAgIC0+IGZtdHR5X29mX2ZtdCByZXN0XG4gIHwgQ2hhcl9saXRlcmFsIChfLCByZXN0KSAgICAgLT4gZm10dHlfb2ZfZm10IHJlc3RcblxuICB8IFNjYW5fY2hhcl9zZXQgKF8sIF8sIHJlc3QpIC0+IFN0cmluZ190eSAoZm10dHlfb2ZfZm10IHJlc3QpXG4gIHwgU2Nhbl9nZXRfY291bnRlciAoXywgcmVzdCkgLT4gSW50X3R5IChmbXR0eV9vZl9mbXQgcmVzdClcbiAgfCBTY2FuX25leHRfY2hhciByZXN0ICAgICAgICAtPiBDaGFyX3R5IChmbXR0eV9vZl9mbXQgcmVzdClcbiAgfCBJZ25vcmVkX3BhcmFtIChpZ24sIHJlc3QpICAtPiBmbXR0eV9vZl9pZ25vcmVkX2Zvcm1hdCBpZ24gcmVzdFxuICB8IEZvcm1hdHRpbmdfbGl0IChfLCByZXN0KSAgIC0+IGZtdHR5X29mX2ZtdCByZXN0XG4gIHwgRm9ybWF0dGluZ19nZW4gKGZtdGluZ19nZW4sIHJlc3QpICAtPlxuICAgIGNvbmNhdF9mbXR0eSAoZm10dHlfb2ZfZm9ybWF0dGluZ19nZW4gZm10aW5nX2dlbikgKGZtdHR5X29mX2ZtdCByZXN0KVxuXG4gIHwgRW5kX29mX2Zvcm1hdCAgICAgICAgICAgICAgLT4gRW5kX29mX2ZtdHR5XG5cbmFuZCBmbXR0eV9vZl9jdXN0b20gOiB0eXBlIHggeSBhIGIgYyBkIGUgZiAuXG4gIChhLCB4LCB5KSBjdXN0b21fYXJpdHkgLT4gKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5IC0+XG4gICh5LCBiLCBjLCBkLCBlLCBmKSBmbXR0eSA9XG5mdW4gYXJpdHkgZm10dHkgLT4gbWF0Y2ggYXJpdHkgd2l0aFxuICB8IEN1c3RvbV96ZXJvIC0+IGZtdHR5XG4gIHwgQ3VzdG9tX3N1Y2MgYXJpdHkgLT4gQW55X3R5IChmbXR0eV9vZl9jdXN0b20gYXJpdHkgZm10dHkpXG5cbigqIEV4dHJhY3QgdGhlIGZtdHR5IG9mIGFuIGlnbm9yZWQgcGFyYW1ldGVyIGZvbGxvd2VkIGJ5IHRoZSByZXN0IG9mXG4gICB0aGUgZm9ybWF0LiAqKVxuYW5kIGZtdHR5X29mX2lnbm9yZWRfZm9ybWF0IDogdHlwZSB4IHkgYSBiIGMgZCBlIGYgLlxuICAgIChhLCBiLCBjLCBkLCB5LCB4KSBpZ25vcmVkIC0+XG4gICAgKHgsIGIsIGMsIHksIGUsIGYpIGZtdCAtPlxuICAgIChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eSA9XG5mdW4gaWduIGZtdCAtPiBtYXRjaCBpZ24gd2l0aFxuICB8IElnbm9yZWRfY2hhciAgICAgICAgICAgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfY2FtbF9jaGFyICAgICAgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfc3RyaW5nIF8gICAgICAgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfY2FtbF9zdHJpbmcgXyAgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfaW50IChfLCBfKSAgICAgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfaW50MzIgKF8sIF8pICAgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfbmF0aXZlaW50IChfLCBfKSAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfaW50NjQgKF8sIF8pICAgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfZmxvYXQgKF8sIF8pICAgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfYm9vbCBfICAgICAgICAgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfZm9ybWF0X2FyZyBfICAgICAgICAgICAgLT4gZm10dHlfb2ZfZm10IGZtdFxuICB8IElnbm9yZWRfZm9ybWF0X3N1YnN0IChfLCBmbXR0eSkgLT4gY29uY2F0X2ZtdHR5IGZtdHR5IChmbXR0eV9vZl9mbXQgZm10KVxuICB8IElnbm9yZWRfcmVhZGVyICAgICAgICAgICAgICAgICAgLT4gSWdub3JlZF9yZWFkZXJfdHkgKGZtdHR5X29mX2ZtdCBmbXQpXG4gIHwgSWdub3JlZF9zY2FuX2NoYXJfc2V0IF8gICAgICAgICAtPiBmbXR0eV9vZl9mbXQgZm10XG4gIHwgSWdub3JlZF9zY2FuX2dldF9jb3VudGVyIF8gICAgICAtPiBmbXR0eV9vZl9mbXQgZm10XG4gIHwgSWdub3JlZF9zY2FuX25leHRfY2hhciAgICAgICAgICAtPiBmbXR0eV9vZl9mbXQgZm10XG5cbigqIEFkZCBhbiBJbnRfdHkgbm9kZSBpZiBwYWRkaW5nIGlzIHRha2VuIGFzIGFuIGV4dHJhIGFyZ3VtZW50IChleDogXCIlKnNcIikuICopXG5hbmQgZm10dHlfb2ZfcGFkZGluZ19mbXR0eSA6IHR5cGUgeCBhIGIgYyBkIGUgZiAuXG4gICAgKHgsIGEpIHBhZGRpbmcgLT4gKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5IC0+ICh4LCBiLCBjLCBkLCBlLCBmKSBmbXR0eSA9XG4gIGZ1biBwYWQgZm10dHkgLT4gbWF0Y2ggcGFkIHdpdGhcbiAgICB8IE5vX3BhZGRpbmcgICAgLT4gZm10dHlcbiAgICB8IExpdF9wYWRkaW5nIF8gLT4gZm10dHlcbiAgICB8IEFyZ19wYWRkaW5nIF8gLT4gSW50X3R5IGZtdHR5XG5cbigqIEFkZCBhbiBJbnRfdHkgbm9kZSBpZiBwcmVjaXNpb24gaXMgdGFrZW4gYXMgYW4gZXh0cmEgYXJndW1lbnQgKGV4OiBcIiUuKmZcIikuKilcbmFuZCBmbXR0eV9vZl9wcmVjaXNpb25fZm10dHkgOiB0eXBlIHggYSBiIGMgZCBlIGYgLlxuICAgICh4LCBhKSBwcmVjaXNpb24gLT4gKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5IC0+ICh4LCBiLCBjLCBkLCBlLCBmKSBmbXR0eSA9XG4gIGZ1biBwcmVjIGZtdHR5IC0+IG1hdGNoIHByZWMgd2l0aFxuICAgIHwgTm9fcHJlY2lzaW9uICAgIC0+IGZtdHR5XG4gICAgfCBMaXRfcHJlY2lzaW9uIF8gLT4gZm10dHlcbiAgICB8IEFyZ19wcmVjaXNpb24gICAtPiBJbnRfdHkgZm10dHlcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBGb3JtYXQgdHlwaW5nICopXG5cbigqIEV4Y2VwdGlvbiByYWlzZWQgd2hlbiBhIGZvcm1hdCBkb2VzIG5vdCBtYXRjaCBhIGdpdmVuIGZvcm1hdCB0eXBlLiAqKVxuZXhjZXB0aW9uIFR5cGVfbWlzbWF0Y2hcblxuKCogVHlwZSBhIHBhZGRpbmcuICopXG4oKiBUYWtlIGFuIEludF90eSBmcm9tIHRoZSBmbXR0eSBpZiB0aGUgaW50ZWdlciBzaG91bGQgYmUga2VwdCBhcyBhcmd1bWVudC4gKilcbigqIFJhaXNlIFR5cGVfbWlzbWF0Y2ggaW4gY2FzZSBvZiB0eXBlIG1pc21hdGNoLiAqKVxubGV0IHR5cGVfcGFkZGluZyA6IHR5cGUgYSBiIGMgZCBlIGYgeCB5IC5cbiAgICAoeCwgeSkgcGFkZGluZyAtPiAoYSwgYiwgYywgZCwgZSwgZikgZm10dHkgLT5cbiAgICAgIChhLCBiLCBjLCBkLCBlLCBmKSBwYWRkaW5nX2ZtdHR5X2ViYiA9XG5mdW4gcGFkIGZtdHR5IC0+IG1hdGNoIHBhZCwgZm10dHkgd2l0aFxuICB8IE5vX3BhZGRpbmcsIF8gLT4gUGFkZGluZ19mbXR0eV9FQkIgKE5vX3BhZGRpbmcsIGZtdHR5KVxuICB8IExpdF9wYWRkaW5nIChwYWR0eSwgdyksIF8gLT4gUGFkZGluZ19mbXR0eV9FQkIgKExpdF9wYWRkaW5nIChwYWR0eSx3KSxmbXR0eSlcbiAgfCBBcmdfcGFkZGluZyBwYWR0eSwgSW50X3R5IHJlc3QgLT4gUGFkZGluZ19mbXR0eV9FQkIgKEFyZ19wYWRkaW5nIHBhZHR5LHJlc3QpXG4gIHwgXyAtPiByYWlzZSBUeXBlX21pc21hdGNoXG5cbigqIENvbnZlcnQgYSAodXBhZGRpbmcsIHVwcmVjaXNpb24pIHRvIGEgKHBhZGRpbmcsIHByZWNpc2lvbikuICopXG4oKiBUYWtlIG9uZSBvciB0d28gSW50X3R5IGZyb20gdGhlIGZtdHR5IGlmIG5lZWRlZC4gKilcbigqIFJhaXNlIFR5cGVfbWlzbWF0Y2ggaW4gY2FzZSBvZiB0eXBlIG1pc21hdGNoLiAqKVxubGV0IHR5cGVfcGFkcHJlYyA6IHR5cGUgYSBiIGMgZCBlIGYgeCB5IHogLlxuICAoeCwgeSkgcGFkZGluZyAtPiAoeSwgeikgcHJlY2lzaW9uIC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eSAtPlxuICAgIChhLCBiLCBjLCBkLCBlLCBmKSBwYWRwcmVjX2ZtdHR5X2ViYiA9XG5mdW4gcGFkIHByZWMgZm10dHkgLT4gbWF0Y2ggcHJlYywgdHlwZV9wYWRkaW5nIHBhZCBmbXR0eSB3aXRoXG4gIHwgTm9fcHJlY2lzaW9uLCBQYWRkaW5nX2ZtdHR5X0VCQiAocGFkLCByZXN0KSAtPlxuICAgIFBhZHByZWNfZm10dHlfRUJCIChwYWQsIE5vX3ByZWNpc2lvbiwgcmVzdClcbiAgfCBMaXRfcHJlY2lzaW9uIHAsIFBhZGRpbmdfZm10dHlfRUJCIChwYWQsIHJlc3QpIC0+XG4gICAgUGFkcHJlY19mbXR0eV9FQkIgKHBhZCwgTGl0X3ByZWNpc2lvbiBwLCByZXN0KVxuICB8IEFyZ19wcmVjaXNpb24sIFBhZGRpbmdfZm10dHlfRUJCIChwYWQsIEludF90eSByZXN0KSAtPlxuICAgIFBhZHByZWNfZm10dHlfRUJCIChwYWQsIEFyZ19wcmVjaXNpb24sIHJlc3QpXG4gIHwgXywgUGFkZGluZ19mbXR0eV9FQkIgKF8sIF8pIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcblxuKCogVHlwZSBhIGZvcm1hdCBhY2NvcmRpbmcgdG8gYW4gZm10dHkuICopXG4oKiBJZiB0eXBpbmcgc3VjY2VlZCwgZ2VuZXJhdGUgYSBjb3B5IG9mIHRoZSBmb3JtYXQgd2l0aCB0aGUgc2FtZVxuICAgIHR5cGUgcGFyYW1ldGVycyBhcyB0aGUgZm10dHkuICopXG4oKiBSYWlzZSBbRmFpbHVyZV0gd2l0aCBhbiBlcnJvciBtZXNzYWdlIGluIGNhc2Ugb2YgdHlwZSBtaXNtYXRjaC4gKilcbmxldCByZWMgdHlwZV9mb3JtYXQgOlxuICB0eXBlIGExIGIxIGMxIGQxIGUxIGYxXG4gICAgICAgYTIgYjIgYzIgZDIgZTIgZjIgIC5cbiAgICAgKGExLCBiMSwgYzEsIGQxLCBlMSwgZjEpIGZtdFxuICAtPiAoYTIsIGIyLCBjMiwgZDIsIGUyLCBmMikgZm10dHlcbiAgLT4gKGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIpIGZtdFxuPSBmdW4gZm10IGZtdHR5IC0+IG1hdGNoIHR5cGVfZm9ybWF0X2dlbiBmbXQgZm10dHkgd2l0aFxuICB8IEZtdF9mbXR0eV9FQkIgKGZtdCcsIEVuZF9vZl9mbXR0eSkgLT4gZm10J1xuICB8IF8gLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuXG5hbmQgdHlwZV9mb3JtYXRfZ2VuIDpcbiAgdHlwZSBhMSBiMSBjMSBkMSBlMSBmMVxuICAgICAgIGEyIGIyIGMyIGQyIGUyIGYyICAuXG4gICAgIChhMSwgYjEsIGMxLCBkMSwgZTEsIGYxKSBmbXRcbiAgLT4gKGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIpIGZtdHR5XG4gIC0+IChhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXRfZm10dHlfZWJiXG49IGZ1biBmbXQgZm10dHkgLT4gbWF0Y2ggZm10LCBmbXR0eSB3aXRoXG4gIHwgQ2hhciBmbXRfcmVzdCwgQ2hhcl90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKENoYXIgZm10JywgZm10dHknKVxuICB8IENhbWxfY2hhciBmbXRfcmVzdCwgQ2hhcl90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKENhbWxfY2hhciBmbXQnLCBmbXR0eScpXG4gIHwgU3RyaW5nIChwYWQsIGZtdF9yZXN0KSwgXyAtPiAoXG4gICAgbWF0Y2ggdHlwZV9wYWRkaW5nIHBhZCBmbXR0eSB3aXRoXG4gICAgfCBQYWRkaW5nX2ZtdHR5X0VCQiAocGFkLCBTdHJpbmdfdHkgZm10dHlfcmVzdCkgLT5cbiAgICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICAgIEZtdF9mbXR0eV9FQkIgKFN0cmluZyAocGFkLCBmbXQnKSwgZm10dHknKVxuICAgIHwgUGFkZGluZ19mbXR0eV9FQkIgKF8sIF8pIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcbiAgKVxuICB8IENhbWxfc3RyaW5nIChwYWQsIGZtdF9yZXN0KSwgXyAtPiAoXG4gICAgbWF0Y2ggdHlwZV9wYWRkaW5nIHBhZCBmbXR0eSB3aXRoXG4gICAgfCBQYWRkaW5nX2ZtdHR5X0VCQiAocGFkLCBTdHJpbmdfdHkgZm10dHlfcmVzdCkgLT5cbiAgICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICAgIEZtdF9mbXR0eV9FQkIgKENhbWxfc3RyaW5nIChwYWQsIGZtdCcpLCBmbXR0eScpXG4gICAgfCBQYWRkaW5nX2ZtdHR5X0VCQiAoXywgXykgLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuICApXG4gIHwgSW50IChpY29udiwgcGFkLCBwcmVjLCBmbXRfcmVzdCksIF8gLT4gKFxuICAgIG1hdGNoIHR5cGVfcGFkcHJlYyBwYWQgcHJlYyBmbXR0eSB3aXRoXG4gICAgfCBQYWRwcmVjX2ZtdHR5X0VCQiAocGFkLCBwcmVjLCBJbnRfdHkgZm10dHlfcmVzdCkgLT5cbiAgICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICAgIEZtdF9mbXR0eV9FQkIgKEludCAoaWNvbnYsIHBhZCwgcHJlYywgZm10JyksIGZtdHR5JylcbiAgICB8IFBhZHByZWNfZm10dHlfRUJCIChfLCBfLCBfKSAtPiByYWlzZSBUeXBlX21pc21hdGNoXG4gIClcbiAgfCBJbnQzMiAoaWNvbnYsIHBhZCwgcHJlYywgZm10X3Jlc3QpLCBfIC0+IChcbiAgICBtYXRjaCB0eXBlX3BhZHByZWMgcGFkIHByZWMgZm10dHkgd2l0aFxuICAgIHwgUGFkcHJlY19mbXR0eV9FQkIgKHBhZCwgcHJlYywgSW50MzJfdHkgZm10dHlfcmVzdCkgLT5cbiAgICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICAgIEZtdF9mbXR0eV9FQkIgKEludDMyIChpY29udiwgcGFkLCBwcmVjLCBmbXQnKSwgZm10dHknKVxuICAgIHwgUGFkcHJlY19mbXR0eV9FQkIgKF8sIF8sIF8pIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcbiAgKVxuICB8IE5hdGl2ZWludCAoaWNvbnYsIHBhZCwgcHJlYywgZm10X3Jlc3QpLCBfIC0+IChcbiAgICBtYXRjaCB0eXBlX3BhZHByZWMgcGFkIHByZWMgZm10dHkgd2l0aFxuICAgIHwgUGFkcHJlY19mbXR0eV9FQkIgKHBhZCwgcHJlYywgTmF0aXZlaW50X3R5IGZtdHR5X3Jlc3QpIC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgICBGbXRfZm10dHlfRUJCIChOYXRpdmVpbnQgKGljb252LCBwYWQsIHByZWMsIGZtdCcpLCBmbXR0eScpXG4gICAgfCBQYWRwcmVjX2ZtdHR5X0VCQiAoXywgXywgXykgLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuICApXG4gIHwgSW50NjQgKGljb252LCBwYWQsIHByZWMsIGZtdF9yZXN0KSwgXyAtPiAoXG4gICAgbWF0Y2ggdHlwZV9wYWRwcmVjIHBhZCBwcmVjIGZtdHR5IHdpdGhcbiAgICB8IFBhZHByZWNfZm10dHlfRUJCIChwYWQsIHByZWMsIEludDY0X3R5IGZtdHR5X3Jlc3QpIC0+XG4gICAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgICBGbXRfZm10dHlfRUJCIChJbnQ2NCAoaWNvbnYsIHBhZCwgcHJlYywgZm10JyksIGZtdHR5JylcbiAgICB8IFBhZHByZWNfZm10dHlfRUJCIChfLCBfLCBfKSAtPiByYWlzZSBUeXBlX21pc21hdGNoXG4gIClcbiAgfCBGbG9hdCAoZmNvbnYsIHBhZCwgcHJlYywgZm10X3Jlc3QpLCBfIC0+IChcbiAgICBtYXRjaCB0eXBlX3BhZHByZWMgcGFkIHByZWMgZm10dHkgd2l0aFxuICAgIHwgUGFkcHJlY19mbXR0eV9FQkIgKHBhZCwgcHJlYywgRmxvYXRfdHkgZm10dHlfcmVzdCkgLT5cbiAgICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICAgIEZtdF9mbXR0eV9FQkIgKEZsb2F0IChmY29udiwgcGFkLCBwcmVjLCBmbXQnKSwgZm10dHknKVxuICAgIHwgUGFkcHJlY19mbXR0eV9FQkIgKF8sIF8sIF8pIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcbiAgKVxuICB8IEJvb2wgKHBhZCwgZm10X3Jlc3QpLCBfIC0+IChcbiAgICBtYXRjaCB0eXBlX3BhZGRpbmcgcGFkIGZtdHR5IHdpdGhcbiAgICB8IFBhZGRpbmdfZm10dHlfRUJCIChwYWQsIEJvb2xfdHkgZm10dHlfcmVzdCkgLT5cbiAgICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICAgIEZtdF9mbXR0eV9FQkIgKEJvb2wgKHBhZCwgZm10JyksIGZtdHR5JylcbiAgICB8IFBhZGRpbmdfZm10dHlfRUJCIChfLCBfKSAtPiByYWlzZSBUeXBlX21pc21hdGNoXG4gIClcbiAgfCBGbHVzaCBmbXRfcmVzdCwgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXRfZm10dHlfRUJCIChGbHVzaCBmbXQnLCBmbXR0eScpXG5cbiAgfCBTdHJpbmdfbGl0ZXJhbCAoc3RyLCBmbXRfcmVzdCksIGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgRm10X2ZtdHR5X0VCQiAoU3RyaW5nX2xpdGVyYWwgKHN0ciwgZm10JyksIGZtdHR5JylcbiAgfCBDaGFyX2xpdGVyYWwgKGNociwgZm10X3Jlc3QpLCBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKENoYXJfbGl0ZXJhbCAoY2hyLCBmbXQnKSwgZm10dHknKVxuXG4gIHwgRm9ybWF0X2FyZyAocGFkX29wdCwgc3ViX2ZtdHR5LCBmbXRfcmVzdCksXG4gICAgRm9ybWF0X2FyZ190eSAoc3ViX2ZtdHR5JywgZm10dHlfcmVzdCkgLT5cbiAgICBpZiBGbXR0eV9FQkIgc3ViX2ZtdHR5IDw+IEZtdHR5X0VCQiBzdWJfZm10dHknIHRoZW4gcmFpc2UgVHlwZV9taXNtYXRjaDtcbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgRm10X2ZtdHR5X0VCQiAoRm9ybWF0X2FyZyAocGFkX29wdCwgc3ViX2ZtdHR5JywgZm10JyksIGZtdHR5JylcbiAgfCBGb3JtYXRfc3Vic3QgKHBhZF9vcHQsIHN1Yl9mbXR0eSwgZm10X3Jlc3QpLFxuICAgIEZvcm1hdF9zdWJzdF90eSAoc3ViX2ZtdHR5MSwgX3N1Yl9mbXR0eTIsIGZtdHR5X3Jlc3QpIC0+XG4gICAgaWYgRm10dHlfRUJCIChlcmFzZV9yZWwgc3ViX2ZtdHR5KSA8PiBGbXR0eV9FQkIgKGVyYXNlX3JlbCBzdWJfZm10dHkxKSB0aGVuXG4gICAgICByYWlzZSBUeXBlX21pc21hdGNoO1xuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID1cbiAgICAgIHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCAoZXJhc2VfcmVsIGZtdHR5X3Jlc3QpXG4gICAgaW5cbiAgICBGbXRfZm10dHlfRUJCIChGb3JtYXRfc3Vic3QgKHBhZF9vcHQsIHN1Yl9mbXR0eTEsIGZtdCcpLCBmbXR0eScpXG4gICgqIFByaW50ZiBhbmQgRm9ybWF0IHNwZWNpZmljIGNvbnN0cnVjdG9yczogKilcbiAgfCBBbHBoYSBmbXRfcmVzdCwgQWxwaGFfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXRfZm10dHlfRUJCIChBbHBoYSBmbXQnLCBmbXR0eScpXG4gIHwgVGhldGEgZm10X3Jlc3QsIFRoZXRhX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgRm10X2ZtdHR5X0VCQiAoVGhldGEgZm10JywgZm10dHknKVxuXG4gICgqIEZvcm1hdCBzcGVjaWZpYyBjb25zdHJ1Y3RvcnM6ICopXG4gIHwgRm9ybWF0dGluZ19saXQgKGZvcm1hdHRpbmdfbGl0LCBmbXRfcmVzdCksIGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgRm10X2ZtdHR5X0VCQiAoRm9ybWF0dGluZ19saXQgKGZvcm1hdHRpbmdfbGl0LCBmbXQnKSwgZm10dHknKVxuICB8IEZvcm1hdHRpbmdfZ2VuIChmb3JtYXR0aW5nX2dlbiwgZm10X3Jlc3QpLCBmbXR0eV9yZXN0IC0+XG4gICAgdHlwZV9mb3JtYXR0aW5nX2dlbiBmb3JtYXR0aW5nX2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0XG5cbiAgKCogU2NhbmYgc3BlY2lmaWMgY29uc3RydWN0b3JzOiAqKVxuICB8IFJlYWRlciBmbXRfcmVzdCwgUmVhZGVyX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgRm10X2ZtdHR5X0VCQiAoUmVhZGVyIGZtdCcsIGZtdHR5JylcbiAgfCBTY2FuX2NoYXJfc2V0ICh3aWR0aF9vcHQsIGNoYXJfc2V0LCBmbXRfcmVzdCksIFN0cmluZ190eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKFNjYW5fY2hhcl9zZXQgKHdpZHRoX29wdCwgY2hhcl9zZXQsIGZtdCcpLCBmbXR0eScpXG4gIHwgU2Nhbl9nZXRfY291bnRlciAoY291bnRlciwgZm10X3Jlc3QpLCBJbnRfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXRfZm10dHlfRUJCIChTY2FuX2dldF9jb3VudGVyIChjb3VudGVyLCBmbXQnKSwgZm10dHknKVxuICB8IElnbm9yZWRfcGFyYW0gKGlnbiwgcmVzdCksIGZtdHR5X3Jlc3QgLT5cbiAgICB0eXBlX2lnbm9yZWRfcGFyYW0gaWduIHJlc3QgZm10dHlfcmVzdFxuXG4gIHwgRW5kX29mX2Zvcm1hdCwgZm10dHlfcmVzdCAtPiBGbXRfZm10dHlfRUJCIChFbmRfb2ZfZm9ybWF0LCBmbXR0eV9yZXN0KVxuXG4gIHwgXyAtPiByYWlzZSBUeXBlX21pc21hdGNoXG5cbmFuZCB0eXBlX2Zvcm1hdHRpbmdfZ2VuIDogdHlwZSBhMSBhMyBiMSBiMyBjMSBjMyBkMSBkMyBlMSBlMiBlMyBmMSBmMiBmMyAuXG4gICAgKGExLCBiMSwgYzEsIGQxLCBlMSwgZjEpIGZvcm1hdHRpbmdfZ2VuIC0+XG4gICAgKGYxLCBiMSwgYzEsIGUxLCBlMiwgZjIpIGZtdCAtPlxuICAgIChhMywgYjMsIGMzLCBkMywgZTMsIGYzKSBmbXR0eSAtPlxuICAgIChhMywgYjMsIGMzLCBkMywgZTMsIGYzKSBmbXRfZm10dHlfZWJiID1cbmZ1biBmb3JtYXR0aW5nX2dlbiBmbXQwIGZtdHR5MCAtPiBtYXRjaCBmb3JtYXR0aW5nX2dlbiB3aXRoXG4gIHwgT3Blbl90YWcgKEZvcm1hdCAoZm10MSwgc3RyKSkgLT5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10MiwgZm10dHkyKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXQxIGZtdHR5MCBpblxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQzLCBmbXR0eTMpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdDAgZm10dHkyIGluXG4gICAgRm10X2ZtdHR5X0VCQiAoRm9ybWF0dGluZ19nZW4gKE9wZW5fdGFnIChGb3JtYXQgKGZtdDIsIHN0cikpLCBmbXQzKSwgZm10dHkzKVxuICB8IE9wZW5fYm94IChGb3JtYXQgKGZtdDEsIHN0cikpIC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdDIsIGZtdHR5MikgPSB0eXBlX2Zvcm1hdF9nZW4gZm10MSBmbXR0eTAgaW5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10MywgZm10dHkzKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXQwIGZtdHR5MiBpblxuICAgIEZtdF9mbXR0eV9FQkIgKEZvcm1hdHRpbmdfZ2VuIChPcGVuX2JveCAoRm9ybWF0IChmbXQyLCBzdHIpKSwgZm10MyksIGZtdHR5MylcblxuKCogVHlwZSBhbiBJZ25vcmVkX3BhcmFtIG5vZGUgYWNjb3JkaW5nIHRvIGFuIGZtdHR5LiAqKVxuYW5kIHR5cGVfaWdub3JlZF9wYXJhbSA6IHR5cGUgcCBxIHggeSB6IHQgdSB2IGEgYiBjIGQgZSBmIC5cbiAgICAoeCwgeSwgeiwgdCwgcSwgcCkgaWdub3JlZCAtPlxuICAgIChwLCB5LCB6LCBxLCB1LCB2KSBmbXQgLT5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10dHkgLT5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10X2ZtdHR5X2ViYiA9XG5mdW4gaWduIGZtdCBmbXR0eSAtPiBtYXRjaCBpZ24gd2l0aFxuICB8IElnbm9yZWRfY2hhciAgICAgICAgICAgICAgIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfY2FtbF9jaGFyICAgICAgICAgIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfc3RyaW5nIF8gICAgICAgICAgIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfY2FtbF9zdHJpbmcgXyAgICAgIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfaW50IF8gICAgICAgICAgICAgIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfaW50MzIgXyAgICAgICAgICAgIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfbmF0aXZlaW50IF8gICAgICAgIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfaW50NjQgXyAgICAgICAgICAgIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfZmxvYXQgXyAgICAgICAgICAgIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfYm9vbCBfICAgICAgICAgICAgIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfc2Nhbl9jaGFyX3NldCBfICAgIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfc2Nhbl9nZXRfY291bnRlciBfIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfc2Nhbl9uZXh0X2NoYXIgICAgIGFzIGlnbicgLT4gdHlwZV9pZ25vcmVkX3BhcmFtX29uZSBpZ24nIGZtdCBmbXR0eVxuICB8IElnbm9yZWRfZm9ybWF0X2FyZyAocGFkX29wdCwgc3ViX2ZtdHR5KSAtPlxuICAgIHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgKElnbm9yZWRfZm9ybWF0X2FyZyAocGFkX29wdCwgc3ViX2ZtdHR5KSkgZm10IGZtdHR5XG4gIHwgSWdub3JlZF9mb3JtYXRfc3Vic3QgKHBhZF9vcHQsIHN1Yl9mbXR0eSkgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5JywgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSkgPVxuICAgICAgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gc3ViX2ZtdHR5IGZtdCBmbXR0eSBpblxuICAgIEZtdF9mbXR0eV9FQkIgKElnbm9yZWRfcGFyYW0gKElnbm9yZWRfZm9ybWF0X3N1YnN0IChwYWRfb3B0LCBzdWJfZm10dHknKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbXQnKSxcbiAgICAgICAgICAgICAgICAgICBmbXR0eScpXG4gIHwgSWdub3JlZF9yZWFkZXIgLT4gKFxuICAgIG1hdGNoIGZtdHR5IHdpdGhcbiAgICB8IElnbm9yZWRfcmVhZGVyX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdCBmbXR0eV9yZXN0IGluXG4gICAgICBGbXRfZm10dHlfRUJCIChJZ25vcmVkX3BhcmFtIChJZ25vcmVkX3JlYWRlciwgZm10JyksIGZtdHR5JylcbiAgICB8IF8gLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuICApXG5cbmFuZCB0eXBlX2lnbm9yZWRfcGFyYW1fb25lIDogdHlwZSBhMSBhMiBiMSBiMiBjMSBjMiBkMSBkMiBlMSBlMiBmMSBmMiAuXG4gICAgKGEyLCBiMiwgYzIsIGQyLCBkMiwgYTIpIGlnbm9yZWQgLT5cbiAgICAoYTEsIGIxLCBjMSwgZDEsIGUxLCBmMSkgZm10IC0+XG4gICAgKGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIpIGZtdHR5IC0+XG4gICAgKGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIpIGZtdF9mbXR0eV9lYmJcbj0gZnVuIGlnbiBmbXQgZm10dHkgLT5cbiAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10IGZtdHR5IGluXG4gIEZtdF9mbXR0eV9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbiwgZm10JyksIGZtdHR5JylcblxuKCogVHlwaW5nIG9mIHRoZSBjb21wbGV4IGNhc2U6IFwiJV8oLi4uJSlcIi4gKilcbmFuZCB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiA6IHR5cGUgdyB4IHkgeiBwIHMgdCB1IGEgYiBjIGQgZSBmIC5cbiAgICAodywgeCwgeSwgeiwgcywgcCkgZm10dHkgLT5cbiAgICAocCwgeCwgeSwgcywgdCwgdSkgZm10IC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5IC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eV9mbXRfZWJiID1cbmZ1biBzdWJfZm10dHkgZm10IGZtdHR5IC0+IG1hdGNoIHN1Yl9mbXR0eSwgZm10dHkgd2l0aFxuICB8IENoYXJfdHkgc3ViX2ZtdHR5X3Jlc3QsIENoYXJfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoQ2hhcl90eSBzdWJfZm10dHlfcmVzdCcsIGZtdCcpXG4gIHwgU3RyaW5nX3R5IHN1Yl9mbXR0eV9yZXN0LCBTdHJpbmdfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoU3RyaW5nX3R5IHN1Yl9mbXR0eV9yZXN0JywgZm10JylcbiAgfCBJbnRfdHkgc3ViX2ZtdHR5X3Jlc3QsIEludF90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdHR5X2ZtdF9FQkIgKHN1Yl9mbXR0eV9yZXN0JywgZm10JykgPVxuICAgICAgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gc3ViX2ZtdHR5X3Jlc3QgZm10IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXR0eV9mbXRfRUJCIChJbnRfdHkgc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKVxuICB8IEludDMyX3R5IHN1Yl9mbXR0eV9yZXN0LCBJbnQzMl90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdHR5X2ZtdF9FQkIgKHN1Yl9mbXR0eV9yZXN0JywgZm10JykgPVxuICAgICAgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gc3ViX2ZtdHR5X3Jlc3QgZm10IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXR0eV9mbXRfRUJCIChJbnQzMl90eSBzdWJfZm10dHlfcmVzdCcsIGZtdCcpXG4gIHwgTmF0aXZlaW50X3R5IHN1Yl9mbXR0eV9yZXN0LCBOYXRpdmVpbnRfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoTmF0aXZlaW50X3R5IHN1Yl9mbXR0eV9yZXN0JywgZm10JylcbiAgfCBJbnQ2NF90eSBzdWJfZm10dHlfcmVzdCwgSW50NjRfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoSW50NjRfdHkgc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKVxuICB8IEZsb2F0X3R5IHN1Yl9mbXR0eV9yZXN0LCBGbG9hdF90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdHR5X2ZtdF9FQkIgKHN1Yl9mbXR0eV9yZXN0JywgZm10JykgPVxuICAgICAgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gc3ViX2ZtdHR5X3Jlc3QgZm10IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXR0eV9mbXRfRUJCIChGbG9hdF90eSBzdWJfZm10dHlfcmVzdCcsIGZtdCcpXG4gIHwgQm9vbF90eSBzdWJfZm10dHlfcmVzdCwgQm9vbF90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdHR5X2ZtdF9FQkIgKHN1Yl9mbXR0eV9yZXN0JywgZm10JykgPVxuICAgICAgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gc3ViX2ZtdHR5X3Jlc3QgZm10IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXR0eV9mbXRfRUJCIChCb29sX3R5IHN1Yl9mbXR0eV9yZXN0JywgZm10JylcbiAgfCBBbHBoYV90eSBzdWJfZm10dHlfcmVzdCwgQWxwaGFfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoQWxwaGFfdHkgc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKVxuICB8IFRoZXRhX3R5IHN1Yl9mbXR0eV9yZXN0LCBUaGV0YV90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdHR5X2ZtdF9FQkIgKHN1Yl9mbXR0eV9yZXN0JywgZm10JykgPVxuICAgICAgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gc3ViX2ZtdHR5X3Jlc3QgZm10IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXR0eV9mbXRfRUJCIChUaGV0YV90eSBzdWJfZm10dHlfcmVzdCcsIGZtdCcpXG4gIHwgUmVhZGVyX3R5IHN1Yl9mbXR0eV9yZXN0LCBSZWFkZXJfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoUmVhZGVyX3R5IHN1Yl9mbXR0eV9yZXN0JywgZm10JylcbiAgfCBJZ25vcmVkX3JlYWRlcl90eSBzdWJfZm10dHlfcmVzdCwgSWdub3JlZF9yZWFkZXJfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHlfcmVzdCcsIGZtdCcpID1cbiAgICAgIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIHN1Yl9mbXR0eV9yZXN0IGZtdCBmbXR0eV9yZXN0IGluXG4gICAgRm10dHlfZm10X0VCQiAoSWdub3JlZF9yZWFkZXJfdHkgc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKVxuXG4gIHwgRm9ybWF0X2FyZ190eSAoc3ViMl9mbXR0eSwgc3ViX2ZtdHR5X3Jlc3QpLFxuICAgIEZvcm1hdF9hcmdfdHkgKHN1YjJfZm10dHknLCBmbXR0eV9yZXN0KSAtPlxuICAgIGlmIEZtdHR5X0VCQiBzdWIyX2ZtdHR5IDw+IEZtdHR5X0VCQiBzdWIyX2ZtdHR5JyB0aGVuIHJhaXNlIFR5cGVfbWlzbWF0Y2g7XG4gICAgbGV0IEZtdHR5X2ZtdF9FQkIgKHN1Yl9mbXR0eV9yZXN0JywgZm10JykgPVxuICAgICAgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gc3ViX2ZtdHR5X3Jlc3QgZm10IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXR0eV9mbXRfRUJCIChGb3JtYXRfYXJnX3R5IChzdWIyX2ZtdHR5Jywgc3ViX2ZtdHR5X3Jlc3QnKSwgZm10JylcbiAgfCBGb3JtYXRfc3Vic3RfdHkgKHN1YjFfZm10dHksICBzdWIyX2ZtdHR5LCAgc3ViX2ZtdHR5X3Jlc3QpLFxuICAgIEZvcm1hdF9zdWJzdF90eSAoc3ViMV9mbXR0eScsIHN1YjJfZm10dHknLCBmbXR0eV9yZXN0KSAtPlxuICAgICgqIFRPRE8gZGVmaW5lIEZtdHR5X3JlbF9FQkIgdG8gcmVtb3ZlIHRob3NlIGVyYXNlX3JlbCAqKVxuICAgIGlmIEZtdHR5X0VCQiAoZXJhc2VfcmVsIHN1YjFfZm10dHkpIDw+IEZtdHR5X0VCQiAoZXJhc2VfcmVsIHN1YjFfZm10dHknKVxuICAgIHRoZW4gcmFpc2UgVHlwZV9taXNtYXRjaDtcbiAgICBpZiBGbXR0eV9FQkIgKGVyYXNlX3JlbCBzdWIyX2ZtdHR5KSA8PiBGbXR0eV9FQkIgKGVyYXNlX3JlbCBzdWIyX2ZtdHR5JylcbiAgICB0aGVuIHJhaXNlIFR5cGVfbWlzbWF0Y2g7XG4gICAgbGV0IHN1Yl9mbXR0eScgPSB0cmFucyAoc3ltbSBzdWIxX2ZtdHR5Jykgc3ViMl9mbXR0eScgaW5cbiAgICBsZXQgXywgZjIsIF8sIGY0ID0gZm10dHlfcmVsX2RldCBzdWJfZm10dHknIGluXG4gICAgbGV0IFJlZmwgPSBmMiBSZWZsIGluXG4gICAgbGV0IFJlZmwgPSBmNCBSZWZsIGluXG4gICAgbGV0IEZtdHR5X2ZtdF9FQkIgKHN1Yl9mbXR0eV9yZXN0JywgZm10JykgPVxuICAgICAgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gKGVyYXNlX3JlbCBzdWJfZm10dHlfcmVzdCkgZm10IGZtdHR5X3Jlc3RcbiAgICBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKEZvcm1hdF9zdWJzdF90eSAoc3ViMV9mbXR0eScsIHN1YjJfZm10dHknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ltbSBzdWJfZm10dHlfcmVzdCcpLFxuICAgICAgICAgICAgICAgICAgIGZtdCcpXG4gIHwgRW5kX29mX2ZtdHR5LCBmbXR0eSAtPlxuICAgIEZtdHR5X2ZtdF9FQkIgKEVuZF9vZl9mbXR0eSwgdHlwZV9mb3JtYXRfZ2VuIGZtdCBmbXR0eSlcbiAgfCBfIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcblxuKCogVGhpcyBpbXBsZW1lbnRhdGlvbiBvZiBgcmVjYXN0YCBpcyBhIGJpdCBkaXNhcHBvaW50aW5nLiBUaGVcbiAgIGludmFyaWFudCBwcm92aWRlZCBieSB0aGUgdHlwZSBhcmUgdmVyeSBzdHJvbmc6IHRoZSBpbnB1dCBmb3JtYXQnc1xuICAgdHlwZSBpcyBpbiByZWxhdGlvbiB0byB0aGUgb3V0cHV0IHR5cGUncyBhcyB3aXRuZXNzZWQgYnkgdGhlXG4gICBmbXR0eV9yZWwgYXJndW1lbnQuIE9uZSB3b3VsZCBhdCBmaXJzdCBleHBlY3QgdGhpcyBmdW5jdGlvbiB0byBiZVxuICAgdG90YWwsIGFuZCBpbXBsZW1lbnRhYmxlIGJ5IGV4aGF1c3RpdmUgcGF0dGVybiBtYXRjaGluZy4gSW5zdGVhZCxcbiAgIHdlIHJldXNlIHRoZSBoaWdobHkgcGFydGlhbCBhbmQgbXVjaCBsZXNzIHdlbGwtZGVmaW5lZCBmdW5jdGlvblxuICAgYHR5cGVfZm9ybWF0YCB0aGF0IGhhcyBsb3N0IGFsbCBrbm93bGVkZ2Ugb2YgdGhlIGNvcnJlc3BvbmRlbmNlXG4gICBiZXR3ZWVuIHRoZSBhcmd1bWVudCdzIHR5cGVzLlxuXG4gICBCZXNpZGVzIHRoZSBmYWN0IHRoYXQgdGhpcyBmdW5jdGlvbiByZXVzZXMgYSBsb3Qgb2YgdGhlXG4gICBgdHlwZV9mb3JtYXRgIGxvZ2ljIChlZy46IHNlZWluZyBJbnRfdHkgaW4gdGhlIGZtdHR5IHBhcmFtZXRlciBkb2VzXG4gICBub3QgbGV0IHlvdSBtYXRjaCBvbiBJbnQgb25seSwgYXMgeW91IG1heSBpbiBmYWN0IGhhdmUgRmxvYXRcbiAgIChBcmdfcGFkZGluZywgLi4uKSAoXCIlLipkXCIpIGJlZ2lubmluZyB3aXRoIGFuIEludF90eSksIGl0IGlzIGFsc29cbiAgIGEgcGFydGlhbCBmdW5jdGlvbiwgYmVjYXVzZSB0aGUgdHlwaW5nIGluZm9ybWF0aW9uIGluIGEgZm9ybWF0IGlzXG4gICBub3QgcXVpdGUgZW5vdWdoIHRvIHJlY29uc3RydWN0IGl0IHVuYW1iaWd1b3VzbHkuIEZvciBleGFtcGxlLCB0aGVcbiAgIGZvcm1hdCB0eXBlcyBvZiBcIiVkJV9yXCIgYW5kIFwiJV9yJWRcIiBoYXZlIHRoZSBzYW1lIGZvcm1hdDZcbiAgIHBhcmFtZXRlcnMsIGJ1dCB0aGV5IGFyZSBub3QgYXQgYWxsIGV4Y2hhbmdlYWJsZSwgYW5kIHB1dHRpbmcgb25lXG4gICBpbiBwbGFjZSBvZiB0aGUgb3RoZXIgbXVzdCByZXN1bHQgaW4gYSBkeW5hbWljIGZhaWx1cmUuXG5cbiAgIEdpdmVuIHRoYXQ6XG4gICAtIHdlJ2QgaGF2ZSB0byBkdXBsaWNhdGUgYSBsb3Qgb2Ygbm9uLXRyaXZpYWwgdHlwaW5nIGxvZ2ljIGZyb20gdHlwZV9mb3JtYXRcbiAgIC0gdGhpcyB3b3VsZG4ndCBldmVuIGVsaW1pbmF0ZSAoYWxsKSB0aGUgZHluYW1pYyBmYWlsdXJlc1xuICAgd2UgZGVjaWRlZCB0byBqdXN0IHJldXNlIHR5cGVfZm9ybWF0IGRpcmVjdGx5IGZvciBub3cuXG4qKVxubGV0IHJlY2FzdCA6XG4gIHR5cGUgYTEgYjEgYzEgZDEgZTEgZjFcbiAgICAgICBhMiBiMiBjMiBkMiBlMiBmMlxuICAuXG4gICAgIChhMSwgYjEsIGMxLCBkMSwgZTEsIGYxKSBmbXRcbiAgLT4gKGExLCBiMSwgYzEsIGQxLCBlMSwgZjEsXG4gICAgICBhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXR0eV9yZWxcbiAgLT4gKGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIpIGZtdFxuPSBmdW4gZm10IGZtdHR5IC0+XG4gIHR5cGVfZm9ybWF0IGZtdCAoZXJhc2VfcmVsIChzeW1tIGZtdHR5KSlcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogUHJpbnRpbmcgdG9vbHMgKilcblxuKCogQWRkIHBhZGRpbmcgc3BhY2VzIGFyb3VuZCBhIHN0cmluZy4gKilcbmxldCBmaXhfcGFkZGluZyBwYWR0eSB3aWR0aCBzdHIgPVxuICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBzdHIgaW5cbiAgbGV0IHdpZHRoLCBwYWR0eSA9XG4gICAgYWJzIHdpZHRoLFxuICAgICgqIHdoaWxlIGxpdGVyYWwgcGFkZGluZyB3aWR0aHMgYXJlIGFsd2F5cyBub24tbmVnYXRpdmUsXG4gICAgICAgZHluYW1pY2FsbHktc2V0IHdpZHRocyAoQXJnX3BhZGRpbmcsIGVnLiAlKmQpIG1heSBiZSBuZWdhdGl2ZTtcbiAgICAgICB3ZSBpbnRlcnByZXQgdGhvc2UgYXMgc3BlY2lmeWluZyBhIHBhZGRpbmctdG8tdGhlLWxlZnQ7IHRoaXNcbiAgICAgICBtZWFucyB0aGF0ICcwJyBtYXkgZ2V0IGRyb3BwZWQgZXZlbiBpZiBpdCB3YXMgZXhwbGljaXRseSBzZXQsXG4gICAgICAgYnV0OlxuICAgICAgIC0gdGhpcyBpcyB3aGF0IHRoZSBsZWdhY3kgaW1wbGVtZW50YXRpb24gZG9lcywgYW5kXG4gICAgICAgICB3ZSBwcmVzZXJ2ZSBjb21wYXRpYmlsaXR5IGlmIHBvc3NpYmxlXG4gICAgICAgLSB3ZSBjb3VsZCBvbmx5IHNpZ25hbCB0aGlzIGlzc3VlIGJ5IGZhaWxpbmcgYXQgcnVudGltZSxcbiAgICAgICAgIHdoaWNoIGlzIG5vdCB2ZXJ5IG5pY2UuLi4gKilcbiAgICBpZiB3aWR0aCA8IDAgdGhlbiBMZWZ0IGVsc2UgcGFkdHkgaW5cbiAgaWYgd2lkdGggPD0gbGVuIHRoZW4gc3RyIGVsc2VcbiAgICBsZXQgcmVzID0gQnl0ZXMubWFrZSB3aWR0aCAoaWYgcGFkdHkgPSBaZXJvcyB0aGVuICcwJyBlbHNlICcgJykgaW5cbiAgICBiZWdpbiBtYXRjaCBwYWR0eSB3aXRoXG4gICAgfCBMZWZ0ICAtPiBTdHJpbmcuYmxpdCBzdHIgMCByZXMgMCBsZW5cbiAgICB8IFJpZ2h0IC0+IFN0cmluZy5ibGl0IHN0ciAwIHJlcyAod2lkdGggLSBsZW4pIGxlblxuICAgIHwgWmVyb3Mgd2hlbiBsZW4gPiAwICYmIChzdHIuWzBdID0gJysnIHx8IHN0ci5bMF0gPSAnLScgfHwgc3RyLlswXSA9ICcgJykgLT5cbiAgICAgIEJ5dGVzLnNldCByZXMgMCBzdHIuWzBdO1xuICAgICAgU3RyaW5nLmJsaXQgc3RyIDEgcmVzICh3aWR0aCAtIGxlbiArIDEpIChsZW4gLSAxKVxuICAgIHwgWmVyb3Mgd2hlbiBsZW4gPiAxICYmIHN0ci5bMF0gPSAnMCcgJiYgKHN0ci5bMV0gPSAneCcgfHwgc3RyLlsxXSA9ICdYJykgLT5cbiAgICAgIEJ5dGVzLnNldCByZXMgMSBzdHIuWzFdO1xuICAgICAgU3RyaW5nLmJsaXQgc3RyIDIgcmVzICh3aWR0aCAtIGxlbiArIDIpIChsZW4gLSAyKVxuICAgIHwgWmVyb3MgLT5cbiAgICAgIFN0cmluZy5ibGl0IHN0ciAwIHJlcyAod2lkdGggLSBsZW4pIGxlblxuICAgIGVuZDtcbiAgICBCeXRlcy51bnNhZmVfdG9fc3RyaW5nIHJlc1xuXG4oKiBBZGQgJzAnIHBhZGRpbmcgdG8gaW50LCBpbnQzMiwgbmF0aXZlaW50IG9yIGludDY0IHN0cmluZyByZXByZXNlbnRhdGlvbi4gKilcbmxldCBmaXhfaW50X3ByZWNpc2lvbiBwcmVjIHN0ciA9XG4gIGxldCBwcmVjID0gYWJzIHByZWMgaW5cbiAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggc3RyIGluXG4gIG1hdGNoIHN0ci5bMF0gd2l0aFxuICB8ICgnKycgfCAnLScgfCAnICcpIGFzIGMgd2hlbiBwcmVjICsgMSA+IGxlbiAtPlxuICAgIGxldCByZXMgPSBCeXRlcy5tYWtlIChwcmVjICsgMSkgJzAnIGluXG4gICAgQnl0ZXMuc2V0IHJlcyAwIGM7XG4gICAgU3RyaW5nLmJsaXQgc3RyIDEgcmVzIChwcmVjIC0gbGVuICsgMikgKGxlbiAtIDEpO1xuICAgIEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgcmVzXG4gIHwgJzAnIHdoZW4gcHJlYyArIDIgPiBsZW4gJiYgbGVuID4gMSAmJiAoc3RyLlsxXSA9ICd4JyB8fCBzdHIuWzFdID0gJ1gnKSAtPlxuICAgIGxldCByZXMgPSBCeXRlcy5tYWtlIChwcmVjICsgMikgJzAnIGluXG4gICAgQnl0ZXMuc2V0IHJlcyAxIHN0ci5bMV07XG4gICAgU3RyaW5nLmJsaXQgc3RyIDIgcmVzIChwcmVjIC0gbGVuICsgNCkgKGxlbiAtIDIpO1xuICAgIEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgcmVzXG4gIHwgJzAnIC4uICc5JyB8ICdhJyAuLiAnZicgfCAnQScgLi4gJ0YnIHdoZW4gcHJlYyA+IGxlbiAtPlxuICAgIGxldCByZXMgPSBCeXRlcy5tYWtlIHByZWMgJzAnIGluXG4gICAgU3RyaW5nLmJsaXQgc3RyIDAgcmVzIChwcmVjIC0gbGVuKSBsZW47XG4gICAgQnl0ZXMudW5zYWZlX3RvX3N0cmluZyByZXNcbiAgfCBfIC0+XG4gICAgc3RyXG5cbigqIEVzY2FwZSBhIHN0cmluZyBhY2NvcmRpbmcgdG8gdGhlIE9DYW1sIGxleGluZyBjb252ZW50aW9uLiAqKVxubGV0IHN0cmluZ190b19jYW1sX3N0cmluZyBzdHIgPVxuICBsZXQgc3RyID0gU3RyaW5nLmVzY2FwZWQgc3RyIGluXG4gIGxldCBsID0gU3RyaW5nLmxlbmd0aCBzdHIgaW5cbiAgbGV0IHJlcyA9IEJ5dGVzLm1ha2UgKGwgKyAyKSAnXFxcIicgaW5cbiAgU3RyaW5nLnVuc2FmZV9ibGl0IHN0ciAwIHJlcyAxIGw7XG4gIEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgcmVzXG5cbigqIEdlbmVyYXRlIHRoZSBmb3JtYXRfaW50L2ludDMyL25hdGl2ZWludC9pbnQ2NCBmaXJzdCBhcmd1bWVudFxuICAgZnJvbSBhbiBpbnRfY29udi4gKilcbmxldCBmb3JtYXRfb2ZfaWNvbnYgPSBmdW5jdGlvblxuICB8IEludF9kIHwgSW50X0NkIC0+IFwiJWRcIiB8IEludF9wZCAtPiBcIiUrZFwiIHwgSW50X3NkIC0+IFwiJSBkXCJcbiAgfCBJbnRfaSB8IEludF9DaSAtPiBcIiVpXCIgfCBJbnRfcGkgLT4gXCIlK2lcIiB8IEludF9zaSAtPiBcIiUgaVwiXG4gIHwgSW50X3ggLT4gXCIleFwiIHwgSW50X0N4IC0+IFwiJSN4XCJcbiAgfCBJbnRfWCAtPiBcIiVYXCIgfCBJbnRfQ1ggLT4gXCIlI1hcIlxuICB8IEludF9vIC0+IFwiJW9cIiB8IEludF9DbyAtPiBcIiUjb1wiXG4gIHwgSW50X3UgfCBJbnRfQ3UgLT4gXCIldVwiXG5cbmxldCBmb3JtYXRfb2ZfaWNvbnZMID0gZnVuY3Rpb25cbiAgfCBJbnRfZCB8IEludF9DZCAtPiBcIiVMZFwiIHwgSW50X3BkIC0+IFwiJStMZFwiIHwgSW50X3NkIC0+IFwiJSBMZFwiXG4gIHwgSW50X2kgfCBJbnRfQ2kgLT4gXCIlTGlcIiB8IEludF9waSAtPiBcIiUrTGlcIiB8IEludF9zaSAtPiBcIiUgTGlcIlxuICB8IEludF94IC0+IFwiJUx4XCIgfCBJbnRfQ3ggLT4gXCIlI0x4XCJcbiAgfCBJbnRfWCAtPiBcIiVMWFwiIHwgSW50X0NYIC0+IFwiJSNMWFwiXG4gIHwgSW50X28gLT4gXCIlTG9cIiB8IEludF9DbyAtPiBcIiUjTG9cIlxuICB8IEludF91IHwgSW50X0N1IC0+IFwiJUx1XCJcblxubGV0IGZvcm1hdF9vZl9pY29udmwgPSBmdW5jdGlvblxuICB8IEludF9kIHwgSW50X0NkIC0+IFwiJWxkXCIgfCBJbnRfcGQgLT4gXCIlK2xkXCIgfCBJbnRfc2QgLT4gXCIlIGxkXCJcbiAgfCBJbnRfaSB8IEludF9DaSAtPiBcIiVsaVwiIHwgSW50X3BpIC0+IFwiJStsaVwiIHwgSW50X3NpIC0+IFwiJSBsaVwiXG4gIHwgSW50X3ggLT4gXCIlbHhcIiB8IEludF9DeCAtPiBcIiUjbHhcIlxuICB8IEludF9YIC0+IFwiJWxYXCIgfCBJbnRfQ1ggLT4gXCIlI2xYXCJcbiAgfCBJbnRfbyAtPiBcIiVsb1wiIHwgSW50X0NvIC0+IFwiJSNsb1wiXG4gIHwgSW50X3UgfCBJbnRfQ3UgLT4gXCIlbHVcIlxuXG5sZXQgZm9ybWF0X29mX2ljb252biA9IGZ1bmN0aW9uXG4gIHwgSW50X2QgfCBJbnRfQ2QgLT4gXCIlbmRcIiB8IEludF9wZCAtPiBcIiUrbmRcIiB8IEludF9zZCAtPiBcIiUgbmRcIlxuICB8IEludF9pIHwgSW50X0NpIC0+IFwiJW5pXCIgfCBJbnRfcGkgLT4gXCIlK25pXCIgfCBJbnRfc2kgLT4gXCIlIG5pXCJcbiAgfCBJbnRfeCAtPiBcIiVueFwiIHwgSW50X0N4IC0+IFwiJSNueFwiXG4gIHwgSW50X1ggLT4gXCIlblhcIiB8IEludF9DWCAtPiBcIiUjblhcIlxuICB8IEludF9vIC0+IFwiJW5vXCIgfCBJbnRfQ28gLT4gXCIlI25vXCJcbiAgfCBJbnRfdSB8IEludF9DdSAtPiBcIiVudVwiXG5cbigqIEdlbmVyYXRlIHRoZSBmb3JtYXRfZmxvYXQgZmlyc3QgYXJndW1lbnQgZnJvbSBhIGZsb2F0X2NvbnYuICopXG5sZXQgZm9ybWF0X29mX2Zjb252IGZjb252IHByZWMgPVxuICAgIGxldCBwcmVjID0gYWJzIHByZWMgaW5cbiAgICBsZXQgc3ltYiA9IGNoYXJfb2ZfZmNvbnYgfmNGOidnJyBmY29udiBpblxuICAgIGxldCBidWYgPSBidWZmZXJfY3JlYXRlIDE2IGluXG4gICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7XG4gICAgYnByaW50X2Zjb252X2ZsYWcgYnVmIGZjb252O1xuICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJy4nO1xuICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiAoSW50LnRvX3N0cmluZyBwcmVjKTtcbiAgICBidWZmZXJfYWRkX2NoYXIgYnVmIHN5bWI7XG4gICAgYnVmZmVyX2NvbnRlbnRzIGJ1ZlxuXG5sZXQgdHJhbnNmb3JtX2ludF9hbHQgaWNvbnYgcyA9XG4gIG1hdGNoIGljb252IHdpdGhcbiAgfCBJbnRfQ2QgfCBJbnRfQ2kgfCBJbnRfQ3UgLT5cbiAgICBsZXQgZGlnaXRzID1cbiAgICAgIGxldCBuID0gcmVmIDAgaW5cbiAgICAgIGZvciBpID0gMCB0byBTdHJpbmcubGVuZ3RoIHMgLSAxIGRvXG4gICAgICAgIG1hdGNoIFN0cmluZy51bnNhZmVfZ2V0IHMgaSB3aXRoXG4gICAgICAgIHwgJzAnLi4nOScgLT4gaW5jciBuXG4gICAgICAgIHwgXyAtPiAoKVxuICAgICAgZG9uZTtcbiAgICAgICFuXG4gICAgaW5cbiAgICBsZXQgYnVmID0gQnl0ZXMuY3JlYXRlIChTdHJpbmcubGVuZ3RoIHMgKyAoZGlnaXRzIC0gMSkgLyAzKSBpblxuICAgIGxldCBwb3MgPSByZWYgMCBpblxuICAgIGxldCBwdXQgYyA9IEJ5dGVzLnNldCBidWYgIXBvcyBjOyBpbmNyIHBvcyBpblxuICAgIGxldCBsZWZ0ID0gcmVmICgoZGlnaXRzIC0gMSkgbW9kIDMgKyAxKSBpblxuICAgIGZvciBpID0gMCB0byBTdHJpbmcubGVuZ3RoIHMgLSAxIGRvXG4gICAgICBtYXRjaCBTdHJpbmcudW5zYWZlX2dldCBzIGkgd2l0aFxuICAgICAgfCAnMCcuLic5JyBhcyBjIC0+XG4gICAgICAgICAgaWYgIWxlZnQgPSAwIHRoZW4gKHB1dCAnXyc7IGxlZnQgOj0gMyk7IGRlY3IgbGVmdDsgcHV0IGNcbiAgICAgIHwgYyAtPiBwdXQgY1xuICAgIGRvbmU7XG4gICAgQnl0ZXMudW5zYWZlX3RvX3N0cmluZyBidWZcbiAgfCBfIC0+IHNcblxuKCogQ29udmVydCBhbiBpbnRlZ2VyIHRvIGEgc3RyaW5nIGFjY29yZGluZyB0byBhIGNvbnZlcnNpb24uICopXG5sZXQgY29udmVydF9pbnQgaWNvbnYgbiA9XG4gIHRyYW5zZm9ybV9pbnRfYWx0IGljb252IChmb3JtYXRfaW50IChmb3JtYXRfb2ZfaWNvbnYgaWNvbnYpIG4pXG5sZXQgY29udmVydF9pbnQzMiBpY29udiBuID1cbiAgdHJhbnNmb3JtX2ludF9hbHQgaWNvbnYgKGZvcm1hdF9pbnQzMiAoZm9ybWF0X29mX2ljb252bCBpY29udikgbilcbmxldCBjb252ZXJ0X25hdGl2ZWludCBpY29udiBuID1cbiAgdHJhbnNmb3JtX2ludF9hbHQgaWNvbnYgKGZvcm1hdF9uYXRpdmVpbnQgKGZvcm1hdF9vZl9pY29udm4gaWNvbnYpIG4pXG5sZXQgY29udmVydF9pbnQ2NCBpY29udiBuID1cbiAgdHJhbnNmb3JtX2ludF9hbHQgaWNvbnYgKGZvcm1hdF9pbnQ2NCAoZm9ybWF0X29mX2ljb252TCBpY29udikgbilcblxuKCogQ29udmVydCBhIGZsb2F0IHRvIHN0cmluZy4gKilcbigqIEZpeCBzcGVjaWFsIGNhc2Ugb2YgXCJPQ2FtbCBmbG9hdCBmb3JtYXRcIi4gKilcbmxldCBjb252ZXJ0X2Zsb2F0IGZjb252IHByZWMgeCA9XG4gIGxldCBoZXggKCkgPVxuICAgIGxldCBzaWduID1cbiAgICAgIG1hdGNoIGZzdCBmY29udiB3aXRoXG4gICAgICB8IEZsb2F0X2ZsYWdfcCAtPiAnKydcbiAgICAgIHwgRmxvYXRfZmxhZ19zIC0+ICcgJ1xuICAgICAgfCBfIC0+ICctJyBpblxuICAgIGhleHN0cmluZ19vZl9mbG9hdCB4IHByZWMgc2lnbiBpblxuICBsZXQgYWRkX2RvdF9pZl9uZWVkZWQgc3RyID1cbiAgICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBzdHIgaW5cbiAgICBsZXQgcmVjIGlzX3ZhbGlkIGkgPVxuICAgICAgaWYgaSA9IGxlbiB0aGVuIGZhbHNlIGVsc2VcbiAgICAgICAgbWF0Y2ggc3RyLltpXSB3aXRoXG4gICAgICAgIHwgJy4nIHwgJ2UnIHwgJ0UnIC0+IHRydWVcbiAgICAgICAgfCBfIC0+IGlzX3ZhbGlkIChpICsgMSkgaW5cbiAgICBpZiBpc192YWxpZCAwIHRoZW4gc3RyIGVsc2Ugc3RyIF4gXCIuXCIgaW5cbiAgbGV0IGNhbWxfc3BlY2lhbF92YWwgc3RyID0gbWF0Y2ggY2xhc3NpZnlfZmxvYXQgeCB3aXRoXG4gICAgfCBGUF9ub3JtYWwgfCBGUF9zdWJub3JtYWwgfCBGUF96ZXJvIC0+IHN0clxuICAgIHwgRlBfaW5maW5pdGUgLT4gaWYgeCA8IDAuMCB0aGVuIFwibmVnX2luZmluaXR5XCIgZWxzZSBcImluZmluaXR5XCJcbiAgICB8IEZQX25hbiAtPiBcIm5hblwiIGluXG4gIG1hdGNoIHNuZCBmY29udiB3aXRoXG4gIHwgRmxvYXRfaCAtPiBoZXggKClcbiAgfCBGbG9hdF9IIC0+IFN0cmluZy51cHBlcmNhc2VfYXNjaWkgKGhleCAoKSlcbiAgfCBGbG9hdF9DRiAtPiBjYW1sX3NwZWNpYWxfdmFsIChoZXggKCkpXG4gIHwgRmxvYXRfRiAtPlxuICAgIGxldCBzdHIgPSBmb3JtYXRfZmxvYXQgKGZvcm1hdF9vZl9mY29udiBmY29udiBwcmVjKSB4IGluXG4gICAgY2FtbF9zcGVjaWFsX3ZhbCAoYWRkX2RvdF9pZl9uZWVkZWQgc3RyKVxuICB8IEZsb2F0X2YgfCBGbG9hdF9lIHwgRmxvYXRfRSB8IEZsb2F0X2cgfCBGbG9hdF9HIC0+XG4gICAgZm9ybWF0X2Zsb2F0IChmb3JtYXRfb2ZfZmNvbnYgZmNvbnYgcHJlYykgeFxuXG4oKiBDb252ZXJ0IGEgY2hhciB0byBhIHN0cmluZyBhY2NvcmRpbmcgdG8gdGhlIE9DYW1sIGxleGljYWwgY29udmVudGlvbi4gKilcbmxldCBmb3JtYXRfY2FtbF9jaGFyIGMgPVxuICBsZXQgc3RyID0gQ2hhci5lc2NhcGVkIGMgaW5cbiAgbGV0IGwgPSBTdHJpbmcubGVuZ3RoIHN0ciBpblxuICBsZXQgcmVzID0gQnl0ZXMubWFrZSAobCArIDIpICdcXCcnIGluXG4gIFN0cmluZy51bnNhZmVfYmxpdCBzdHIgMCByZXMgMSBsO1xuICBCeXRlcy51bnNhZmVfdG9fc3RyaW5nIHJlc1xuXG4oKiBDb252ZXJ0IGEgZm9ybWF0IHR5cGUgdG8gc3RyaW5nICopXG5sZXQgc3RyaW5nX29mX2ZtdHR5IGZtdHR5ID1cbiAgbGV0IGJ1ZiA9IGJ1ZmZlcl9jcmVhdGUgMTYgaW5cbiAgYnByaW50X2ZtdHR5IGJ1ZiBmbXR0eTtcbiAgYnVmZmVyX2NvbnRlbnRzIGJ1ZlxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgKCogR2VuZXJpYyBwcmludGluZyBmdW5jdGlvbiAqKVxuXG4oKiBNYWtlIGEgZ2VuZXJpYyBwcmludGluZyBmdW5jdGlvbi4gKilcbigqIFVzZWQgdG8gZ2VuZXJhdGUgUHJpbnRmIGFuZCBGb3JtYXQgcHJpbnRpbmcgZnVuY3Rpb25zLiAqKVxuKCogUGFyYW1ldGVyczpcbiAgICAgazogYSBjb250aW51YXRpb24gZmluYWxseSBhcHBsaWVkIHRvIHRoZSBvdXRwdXQgc3RyZWFtIGFuZCB0aGUgYWNjdW11bGF0b3IuXG4gICAgIG86IHRoZSBvdXRwdXQgc3RyZWFtIChzZWUgaywgJWEgYW5kICV0KS5cbiAgICAgYWNjOiByZXYgbGlzdCBvZiBwcmludGluZyBlbnRpdGllcyAoc3RyaW5nLCBjaGFyLCBmbHVzaCwgZm9ybWF0dGluZywgLi4uKS5cbiAgICAgZm10OiB0aGUgZm9ybWF0LiAqKVxubGV0IHJlYyBtYWtlX3ByaW50ZiA6IHR5cGUgYSBiIGMgZCBlIGYgLlxuICAgICgoYiwgYykgYWNjIC0+IGYpIC0+IChiLCBjKSBhY2MgLT5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+IGEgPVxuZnVuIGsgYWNjIGZtdCAtPiBtYXRjaCBmbXQgd2l0aFxuICB8IENoYXIgcmVzdCAtPlxuICAgIGZ1biBjIC0+XG4gICAgICBsZXQgbmV3X2FjYyA9IEFjY19kYXRhX2NoYXIgKGFjYywgYykgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgbmV3X2FjYyByZXN0XG4gIHwgQ2FtbF9jaGFyIHJlc3QgLT5cbiAgICBmdW4gYyAtPlxuICAgICAgbGV0IG5ld19hY2MgPSBBY2NfZGF0YV9zdHJpbmcgKGFjYywgZm9ybWF0X2NhbWxfY2hhciBjKSBpblxuICAgICAgbWFrZV9wcmludGYgayBuZXdfYWNjIHJlc3RcbiAgfCBTdHJpbmcgKHBhZCwgcmVzdCkgLT5cbiAgICBtYWtlX3BhZGRpbmcgayBhY2MgcmVzdCBwYWQgKGZ1biBzdHIgLT4gc3RyKVxuICB8IENhbWxfc3RyaW5nIChwYWQsIHJlc3QpIC0+XG4gICAgbWFrZV9wYWRkaW5nIGsgYWNjIHJlc3QgcGFkIHN0cmluZ190b19jYW1sX3N0cmluZ1xuICB8IEludCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBtYWtlX2ludF9wYWRkaW5nX3ByZWNpc2lvbiBrIGFjYyByZXN0IHBhZCBwcmVjIGNvbnZlcnRfaW50IGljb252XG4gIHwgSW50MzIgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbWFrZV9pbnRfcGFkZGluZ19wcmVjaXNpb24gayBhY2MgcmVzdCBwYWQgcHJlYyBjb252ZXJ0X2ludDMyIGljb252XG4gIHwgTmF0aXZlaW50IChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIG1ha2VfaW50X3BhZGRpbmdfcHJlY2lzaW9uIGsgYWNjIHJlc3QgcGFkIHByZWMgY29udmVydF9uYXRpdmVpbnQgaWNvbnZcbiAgfCBJbnQ2NCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBtYWtlX2ludF9wYWRkaW5nX3ByZWNpc2lvbiBrIGFjYyByZXN0IHBhZCBwcmVjIGNvbnZlcnRfaW50NjQgaWNvbnZcbiAgfCBGbG9hdCAoZmNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBtYWtlX2Zsb2F0X3BhZGRpbmdfcHJlY2lzaW9uIGsgYWNjIHJlc3QgcGFkIHByZWMgZmNvbnZcbiAgfCBCb29sIChwYWQsIHJlc3QpIC0+XG4gICAgbWFrZV9wYWRkaW5nIGsgYWNjIHJlc3QgcGFkIHN0cmluZ19vZl9ib29sXG4gIHwgQWxwaGEgcmVzdCAtPlxuICAgIGZ1biBmIHggLT4gbWFrZV9wcmludGYgayAoQWNjX2RlbGF5IChhY2MsIGZ1biBvIC0+IGYgbyB4KSkgcmVzdFxuICB8IFRoZXRhIHJlc3QgLT5cbiAgICBmdW4gZiAtPiBtYWtlX3ByaW50ZiBrIChBY2NfZGVsYXkgKGFjYywgZikpIHJlc3RcbiAgfCBDdXN0b20gKGFyaXR5LCBmLCByZXN0KSAtPlxuICAgIG1ha2VfY3VzdG9tIGsgYWNjIHJlc3QgYXJpdHkgKGYgKCkpXG4gIHwgUmVhZGVyIF8gLT5cbiAgICAoKiBUaGlzIGNhc2UgaXMgaW1wb3NzaWJsZSwgYnkgdHlwaW5nIG9mIGZvcm1hdHMuICopXG4gICAgKCogSW5kZWVkLCBzaW5jZSBwcmludGYgYW5kIGNvLiB0YWtlIGEgZm9ybWF0NCBhcyBhcmd1bWVudCwgdGhlICdkIGFuZCAnZVxuICAgICAgIHR5cGUgcGFyYW1ldGVycyBvZiBmbXQgYXJlIG9idmlvdXNseSBlcXVhbHMuIFRoZSBSZWFkZXIgaXMgdGhlXG4gICAgICAgb25seSBjb25zdHJ1Y3RvciB3aGljaCB0b3VjaCAnZCBhbmQgJ2UgdHlwZSBwYXJhbWV0ZXJzIG9mIHRoZSBmb3JtYXRcbiAgICAgICB0eXBlLCBpdCBhZGRzIGFuICgtPikgdG8gdGhlICdkIHBhcmFtZXRlcnMuIENvbnNlcXVlbnRseSwgYSBmb3JtYXQ0XG4gICAgICAgY2Fubm90IGNvbnRhaW4gYSBSZWFkZXIgbm9kZSwgZXhjZXB0IGluIHRoZSBzdWItZm9ybWF0IGFzc29jaWF0ZWQgdG9cbiAgICAgICBhbiAley4uLiV9LiBJdCdzIG5vdCBhIHByb2JsZW0gYmVjYXVzZSBtYWtlX3ByaW50ZiBkbyBub3QgY2FsbFxuICAgICAgIGl0c2VsZiByZWN1cnNpdmVseSBvbiB0aGUgc3ViLWZvcm1hdCBhc3NvY2lhdGVkIHRvICV7Li4uJX0uICopXG4gICAgYXNzZXJ0IGZhbHNlXG4gIHwgRmx1c2ggcmVzdCAtPlxuICAgIG1ha2VfcHJpbnRmIGsgKEFjY19mbHVzaCBhY2MpIHJlc3RcblxuICB8IFN0cmluZ19saXRlcmFsIChzdHIsIHJlc3QpIC0+XG4gICAgbWFrZV9wcmludGYgayAoQWNjX3N0cmluZ19saXRlcmFsIChhY2MsIHN0cikpIHJlc3RcbiAgfCBDaGFyX2xpdGVyYWwgKGNociwgcmVzdCkgLT5cbiAgICBtYWtlX3ByaW50ZiBrIChBY2NfY2hhcl9saXRlcmFsIChhY2MsIGNocikpIHJlc3RcblxuICB8IEZvcm1hdF9hcmcgKF8sIHN1Yl9mbXR0eSwgcmVzdCkgLT5cbiAgICBsZXQgdHkgPSBzdHJpbmdfb2ZfZm10dHkgc3ViX2ZtdHR5IGluXG4gICAgKGZ1biBzdHIgLT5cbiAgICAgIGlnbm9yZSBzdHI7XG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgdHkpKSByZXN0KVxuICB8IEZvcm1hdF9zdWJzdCAoXywgZm10dHksIHJlc3QpIC0+XG4gICAgZnVuIChGb3JtYXQgKGZtdCwgXykpIC0+IG1ha2VfcHJpbnRmIGsgYWNjXG4gICAgICAoY29uY2F0X2ZtdCAocmVjYXN0IGZtdCBmbXR0eSkgcmVzdClcblxuICB8IFNjYW5fY2hhcl9zZXQgKF8sIF8sIHJlc3QpIC0+XG4gICAgbGV0IG5ld19hY2MgPSBBY2NfaW52YWxpZF9hcmcgKGFjYywgXCJQcmludGY6IGJhZCBjb252ZXJzaW9uICVbXCIpIGluXG4gICAgZnVuIF8gLT4gbWFrZV9wcmludGYgayBuZXdfYWNjIHJlc3RcbiAgfCBTY2FuX2dldF9jb3VudGVyIChfLCByZXN0KSAtPlxuICAgICgqIFRoaXMgY2FzZSBzaG91bGQgYmUgcmVmdXNlZCBmb3IgUHJpbnRmLiAqKVxuICAgICgqIEFjY2VwdGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiAqKVxuICAgICgqIEludGVycHJldCAlbCwgJW4gYW5kICVMIGFzICV1LiAqKVxuICAgIGZ1biBuIC0+XG4gICAgICBsZXQgbmV3X2FjYyA9IEFjY19kYXRhX3N0cmluZyAoYWNjLCBmb3JtYXRfaW50IFwiJXVcIiBuKSBpblxuICAgICAgbWFrZV9wcmludGYgayBuZXdfYWNjIHJlc3RcbiAgfCBTY2FuX25leHRfY2hhciByZXN0IC0+XG4gICAgZnVuIGMgLT5cbiAgICAgIGxldCBuZXdfYWNjID0gQWNjX2RhdGFfY2hhciAoYWNjLCBjKSBpblxuICAgICAgbWFrZV9wcmludGYgayBuZXdfYWNjIHJlc3RcbiAgfCBJZ25vcmVkX3BhcmFtIChpZ24sIHJlc3QpIC0+XG4gICAgbWFrZV9pZ25vcmVkX3BhcmFtIGsgYWNjIGlnbiByZXN0XG5cbiAgfCBGb3JtYXR0aW5nX2xpdCAoZm10aW5nX2xpdCwgcmVzdCkgLT5cbiAgICBtYWtlX3ByaW50ZiBrIChBY2NfZm9ybWF0dGluZ19saXQgKGFjYywgZm10aW5nX2xpdCkpIHJlc3RcbiAgfCBGb3JtYXR0aW5nX2dlbiAoT3Blbl90YWcgKEZvcm1hdCAoZm10JywgXykpLCByZXN0KSAtPlxuICAgIGxldCBrJyBrYWNjID1cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19mb3JtYXR0aW5nX2dlbiAoYWNjLCBBY2Nfb3Blbl90YWcga2FjYykpIHJlc3QgaW5cbiAgICBtYWtlX3ByaW50ZiBrJyBFbmRfb2ZfYWNjIGZtdCdcbiAgfCBGb3JtYXR0aW5nX2dlbiAoT3Blbl9ib3ggKEZvcm1hdCAoZm10JywgXykpLCByZXN0KSAtPlxuICAgIGxldCBrJyBrYWNjID1cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19mb3JtYXR0aW5nX2dlbiAoYWNjLCBBY2Nfb3Blbl9ib3gga2FjYykpIHJlc3QgaW5cbiAgICBtYWtlX3ByaW50ZiBrJyBFbmRfb2ZfYWNjIGZtdCdcblxuICB8IEVuZF9vZl9mb3JtYXQgLT5cbiAgICBrIGFjY1xuXG4oKiBEZWxheSB0aGUgZXJyb3IgKEludmFsaWRfYXJndW1lbnQgXCJQcmludGY6IGJhZCBjb252ZXJzaW9uICVfXCIpLiAqKVxuKCogR2VuZXJhdGUgZnVuY3Rpb25zIHRvIHRha2UgcmVtYWluaW5nIGFyZ3VtZW50cyAoYWZ0ZXIgdGhlIFwiJV9cIikuICopXG5hbmQgbWFrZV9pZ25vcmVkX3BhcmFtIDogdHlwZSB4IHkgYSBiIGMgZCBlIGYgLlxuICAgICgoYiwgYykgYWNjIC0+IGYpIC0+IChiLCBjKSBhY2MgLT5cbiAgICAoYSwgYiwgYywgZCwgeSwgeCkgaWdub3JlZCAtPlxuICAgICh4LCBiLCBjLCB5LCBlLCBmKSBmbXQgLT4gYSA9XG5mdW4gayBhY2MgaWduIGZtdCAtPiBtYXRjaCBpZ24gd2l0aFxuICB8IElnbm9yZWRfY2hhciAgICAgICAgICAgICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX2NhbWxfY2hhciAgICAgICAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9zdHJpbmcgXyAgICAgICAgICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfY2FtbF9zdHJpbmcgXyAgICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX2ludCAoXywgXykgICAgICAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9pbnQzMiAoXywgXykgICAgICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfbmF0aXZlaW50IChfLCBfKSAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX2ludDY0IChfLCBfKSAgICAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9mbG9hdCAoXywgXykgICAgICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfYm9vbCBfICAgICAgICAgICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX2Zvcm1hdF9hcmcgXyAgICAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9mb3JtYXRfc3Vic3QgKF8sIGZtdHR5KSAtPiBtYWtlX2Zyb21fZm10dHkgayBhY2MgZm10dHkgZm10XG4gIHwgSWdub3JlZF9yZWFkZXIgICAgICAgICAgICAgICAgICAtPiBhc3NlcnQgZmFsc2VcbiAgfCBJZ25vcmVkX3NjYW5fY2hhcl9zZXQgXyAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9zY2FuX2dldF9jb3VudGVyIF8gICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfc2Nhbl9uZXh0X2NoYXIgICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcblxuXG4oKiBTcGVjaWFsIGNhc2Ugb2YgcHJpbnRmIFwiJV8oXCIuICopXG5hbmQgbWFrZV9mcm9tX2ZtdHR5IDogdHlwZSB4IHkgYSBiIGMgZCBlIGYgLlxuICAgICgoYiwgYykgYWNjIC0+IGYpIC0+IChiLCBjKSBhY2MgLT5cbiAgICAoYSwgYiwgYywgZCwgeSwgeCkgZm10dHkgLT5cbiAgICAoeCwgYiwgYywgeSwgZSwgZikgZm10IC0+IGEgPVxuZnVuIGsgYWNjIGZtdHR5IGZtdCAtPiBtYXRjaCBmbXR0eSB3aXRoXG4gIHwgQ2hhcl90eSByZXN0ICAgICAgICAgICAgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgU3RyaW5nX3R5IHJlc3QgICAgICAgICAgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgSW50X3R5IHJlc3QgICAgICAgICAgICAgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgSW50MzJfdHkgcmVzdCAgICAgICAgICAgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgTmF0aXZlaW50X3R5IHJlc3QgICAgICAgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgSW50NjRfdHkgcmVzdCAgICAgICAgICAgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgRmxvYXRfdHkgcmVzdCAgICAgICAgICAgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgQm9vbF90eSByZXN0ICAgICAgICAgICAgLT4gZnVuIF8gLT4gbWFrZV9mcm9tX2ZtdHR5IGsgYWNjIHJlc3QgZm10XG4gIHwgQWxwaGFfdHkgcmVzdCAgICAgICAgICAgLT4gZnVuIF8gXyAtPiBtYWtlX2Zyb21fZm10dHkgayBhY2MgcmVzdCBmbXRcbiAgfCBUaGV0YV90eSByZXN0ICAgICAgICAgICAtPiBmdW4gXyAtPiBtYWtlX2Zyb21fZm10dHkgayBhY2MgcmVzdCBmbXRcbiAgfCBBbnlfdHkgcmVzdCAgICAgICAgICAgICAtPiBmdW4gXyAtPiBtYWtlX2Zyb21fZm10dHkgayBhY2MgcmVzdCBmbXRcbiAgfCBSZWFkZXJfdHkgXyAgICAgICAgICAgICAtPiBhc3NlcnQgZmFsc2VcbiAgfCBJZ25vcmVkX3JlYWRlcl90eSBfICAgICAtPiBhc3NlcnQgZmFsc2VcbiAgfCBGb3JtYXRfYXJnX3R5IChfLCByZXN0KSAtPiBmdW4gXyAtPiBtYWtlX2Zyb21fZm10dHkgayBhY2MgcmVzdCBmbXRcbiAgfCBFbmRfb2ZfZm10dHkgICAgICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IEZvcm1hdF9zdWJzdF90eSAodHkxLCB0eTIsIHJlc3QpIC0+XG4gICAgbGV0IHR5ID0gdHJhbnMgKHN5bW0gdHkxKSB0eTIgaW5cbiAgICBmdW4gXyAtPiBtYWtlX2Zyb21fZm10dHkgayBhY2MgKGNvbmNhdF9mbXR0eSB0eSByZXN0KSBmbXRcblxuKCogSW5zZXJ0IGFuIEFjY19pbnZhbGlkX2FyZyBpbiB0aGUgYWNjdW11bGF0b3IgYW5kIGNvbnRpbnVlIHRvIGdlbmVyYXRlXG4gICBjbG9zdXJlcyB0byBnZXQgdGhlIHJlbWFpbmluZyBhcmd1bWVudHMuICopXG5hbmQgbWFrZV9pbnZhbGlkX2FyZyA6IHR5cGUgYSBiIGMgZCBlIGYgLlxuICAgICgoYiwgYykgYWNjIC0+IGYpIC0+IChiLCBjKSBhY2MgLT5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+IGEgPVxuZnVuIGsgYWNjIGZtdCAtPlxuICBtYWtlX3ByaW50ZiBrIChBY2NfaW52YWxpZF9hcmcgKGFjYywgXCJQcmludGY6IGJhZCBjb252ZXJzaW9uICVfXCIpKSBmbXRcblxuKCogRml4IHBhZGRpbmcsIHRha2UgaXQgYXMgYW4gZXh0cmEgaW50ZWdlciBhcmd1bWVudCBpZiBuZWVkZWQuICopXG5hbmQgbWFrZV9wYWRkaW5nIDogdHlwZSB4IHogYSBiIGMgZCBlIGYgLlxuICAgICgoYiwgYykgYWNjIC0+IGYpIC0+IChiLCBjKSBhY2MgLT5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+XG4gICAgKHgsIHogLT4gYSkgcGFkZGluZyAtPiAoeiAtPiBzdHJpbmcpIC0+IHggPVxuICBmdW4gayBhY2MgZm10IHBhZCB0cmFucyAtPiBtYXRjaCBwYWQgd2l0aFxuICB8IE5vX3BhZGRpbmcgLT5cbiAgICBmdW4geCAtPlxuICAgICAgbGV0IG5ld19hY2MgPSBBY2NfZGF0YV9zdHJpbmcgKGFjYywgdHJhbnMgeCkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgbmV3X2FjYyBmbXRcbiAgfCBMaXRfcGFkZGluZyAocGFkdHksIHdpZHRoKSAtPlxuICAgIGZ1biB4IC0+XG4gICAgICBsZXQgbmV3X2FjYyA9IEFjY19kYXRhX3N0cmluZyAoYWNjLCBmaXhfcGFkZGluZyBwYWR0eSB3aWR0aCAodHJhbnMgeCkpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIG5ld19hY2MgZm10XG4gIHwgQXJnX3BhZGRpbmcgcGFkdHkgLT5cbiAgICBmdW4gdyB4IC0+XG4gICAgICBsZXQgbmV3X2FjYyA9IEFjY19kYXRhX3N0cmluZyAoYWNjLCBmaXhfcGFkZGluZyBwYWR0eSB3ICh0cmFucyB4KSkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgbmV3X2FjYyBmbXRcblxuKCogRml4IHBhZGRpbmcgYW5kIHByZWNpc2lvbiBmb3IgaW50LCBpbnQzMiwgbmF0aXZlaW50IG9yIGludDY0LiAqKVxuKCogVGFrZSBvbmUgb3IgdHdvIGV4dHJhIGludGVnZXIgYXJndW1lbnRzIGlmIG5lZWRlZC4gKilcbmFuZCBtYWtlX2ludF9wYWRkaW5nX3ByZWNpc2lvbiA6IHR5cGUgeCB5IHogYSBiIGMgZCBlIGYgLlxuICAgICgoYiwgYykgYWNjIC0+IGYpIC0+IChiLCBjKSBhY2MgLT5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+XG4gICAgKHgsIHkpIHBhZGRpbmcgLT4gKHksIHogLT4gYSkgcHJlY2lzaW9uIC0+IChpbnRfY29udiAtPiB6IC0+IHN0cmluZykgLT5cbiAgICBpbnRfY29udiAtPiB4ID1cbiAgZnVuIGsgYWNjIGZtdCBwYWQgcHJlYyB0cmFucyBpY29udiAtPiBtYXRjaCBwYWQsIHByZWMgd2l0aFxuICB8IE5vX3BhZGRpbmcsIE5vX3ByZWNpc2lvbiAtPlxuICAgIGZ1biB4IC0+XG4gICAgICBsZXQgc3RyID0gdHJhbnMgaWNvbnYgeCBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IE5vX3BhZGRpbmcsIExpdF9wcmVjaXNpb24gcCAtPlxuICAgIGZ1biB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X2ludF9wcmVjaXNpb24gcCAodHJhbnMgaWNvbnYgeCkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBOb19wYWRkaW5nLCBBcmdfcHJlY2lzaW9uIC0+XG4gICAgZnVuIHAgeCAtPlxuICAgICAgbGV0IHN0ciA9IGZpeF9pbnRfcHJlY2lzaW9uIHAgKHRyYW5zIGljb252IHgpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgTGl0X3BhZGRpbmcgKHBhZHR5LCB3KSwgTm9fcHJlY2lzaW9uIC0+XG4gICAgZnVuIHggLT5cbiAgICAgIGxldCBzdHIgPSBmaXhfcGFkZGluZyBwYWR0eSB3ICh0cmFucyBpY29udiB4KSBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IExpdF9wYWRkaW5nIChwYWR0eSwgdyksIExpdF9wcmVjaXNpb24gcCAtPlxuICAgIGZ1biB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X3BhZGRpbmcgcGFkdHkgdyAoZml4X2ludF9wcmVjaXNpb24gcCAodHJhbnMgaWNvbnYgeCkpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgTGl0X3BhZGRpbmcgKHBhZHR5LCB3KSwgQXJnX3ByZWNpc2lvbiAtPlxuICAgIGZ1biBwIHggLT5cbiAgICAgIGxldCBzdHIgPSBmaXhfcGFkZGluZyBwYWR0eSB3IChmaXhfaW50X3ByZWNpc2lvbiBwICh0cmFucyBpY29udiB4KSkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBBcmdfcGFkZGluZyBwYWR0eSwgTm9fcHJlY2lzaW9uIC0+XG4gICAgZnVuIHcgeCAtPlxuICAgICAgbGV0IHN0ciA9IGZpeF9wYWRkaW5nIHBhZHR5IHcgKHRyYW5zIGljb252IHgpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgQXJnX3BhZGRpbmcgcGFkdHksIExpdF9wcmVjaXNpb24gcCAtPlxuICAgIGZ1biB3IHggLT5cbiAgICAgIGxldCBzdHIgPSBmaXhfcGFkZGluZyBwYWR0eSB3IChmaXhfaW50X3ByZWNpc2lvbiBwICh0cmFucyBpY29udiB4KSkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBBcmdfcGFkZGluZyBwYWR0eSwgQXJnX3ByZWNpc2lvbiAtPlxuICAgIGZ1biB3IHAgeCAtPlxuICAgICAgbGV0IHN0ciA9IGZpeF9wYWRkaW5nIHBhZHR5IHcgKGZpeF9pbnRfcHJlY2lzaW9uIHAgKHRyYW5zIGljb252IHgpKSBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuXG4oKiBDb252ZXJ0IGEgZmxvYXQsIGZpeCBwYWRkaW5nIGFuZCBwcmVjaXNpb24gaWYgbmVlZGVkLiAqKVxuKCogVGFrZSB0aGUgZmxvYXQgYXJndW1lbnQgYW5kIG9uZSBvciB0d28gZXh0cmEgaW50ZWdlciBhcmd1bWVudHMgaWYgbmVlZGVkLiAqKVxuYW5kIG1ha2VfZmxvYXRfcGFkZGluZ19wcmVjaXNpb24gOiB0eXBlIHggeSBhIGIgYyBkIGUgZiAuXG4gICAgKChiLCBjKSBhY2MgLT4gZikgLT4gKGIsIGMpIGFjYyAtPlxuICAgIChhLCBiLCBjLCBkLCBlLCBmKSBmbXQgLT5cbiAgICAoeCwgeSkgcGFkZGluZyAtPiAoeSwgZmxvYXQgLT4gYSkgcHJlY2lzaW9uIC0+IGZsb2F0X2NvbnYgLT4geCA9XG4gIGZ1biBrIGFjYyBmbXQgcGFkIHByZWMgZmNvbnYgLT4gbWF0Y2ggcGFkLCBwcmVjIHdpdGhcbiAgfCBOb19wYWRkaW5nLCBOb19wcmVjaXNpb24gLT5cbiAgICBmdW4geCAtPlxuICAgICAgbGV0IHN0ciA9IGNvbnZlcnRfZmxvYXQgZmNvbnYgKGRlZmF1bHRfZmxvYXRfcHJlY2lzaW9uIGZjb252KSB4IGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgTm9fcGFkZGluZywgTGl0X3ByZWNpc2lvbiBwIC0+XG4gICAgZnVuIHggLT5cbiAgICAgIGxldCBzdHIgPSBjb252ZXJ0X2Zsb2F0IGZjb252IHAgeCBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IE5vX3BhZGRpbmcsIEFyZ19wcmVjaXNpb24gLT5cbiAgICBmdW4gcCB4IC0+XG4gICAgICBsZXQgc3RyID0gY29udmVydF9mbG9hdCBmY29udiBwIHggaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBMaXRfcGFkZGluZyAocGFkdHksIHcpLCBOb19wcmVjaXNpb24gLT5cbiAgICBmdW4geCAtPlxuICAgICAgbGV0IHN0ciA9IGNvbnZlcnRfZmxvYXQgZmNvbnYgKGRlZmF1bHRfZmxvYXRfcHJlY2lzaW9uIGZjb252KSB4IGluXG4gICAgICBsZXQgc3RyJyA9IGZpeF9wYWRkaW5nIHBhZHR5IHcgc3RyIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyJykpIGZtdFxuICB8IExpdF9wYWRkaW5nIChwYWR0eSwgdyksIExpdF9wcmVjaXNpb24gcCAtPlxuICAgIGZ1biB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X3BhZGRpbmcgcGFkdHkgdyAoY29udmVydF9mbG9hdCBmY29udiBwIHgpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgTGl0X3BhZGRpbmcgKHBhZHR5LCB3KSwgQXJnX3ByZWNpc2lvbiAtPlxuICAgIGZ1biBwIHggLT5cbiAgICAgIGxldCBzdHIgPSBmaXhfcGFkZGluZyBwYWR0eSB3IChjb252ZXJ0X2Zsb2F0IGZjb252IHAgeCkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBBcmdfcGFkZGluZyBwYWR0eSwgTm9fcHJlY2lzaW9uIC0+XG4gICAgZnVuIHcgeCAtPlxuICAgICAgbGV0IHN0ciA9IGNvbnZlcnRfZmxvYXQgZmNvbnYgKGRlZmF1bHRfZmxvYXRfcHJlY2lzaW9uIGZjb252KSB4IGluXG4gICAgICBsZXQgc3RyJyA9IGZpeF9wYWRkaW5nIHBhZHR5IHcgc3RyIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyJykpIGZtdFxuICB8IEFyZ19wYWRkaW5nIHBhZHR5LCBMaXRfcHJlY2lzaW9uIHAgLT5cbiAgICBmdW4gdyB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X3BhZGRpbmcgcGFkdHkgdyAoY29udmVydF9mbG9hdCBmY29udiBwIHgpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgQXJnX3BhZGRpbmcgcGFkdHksIEFyZ19wcmVjaXNpb24gLT5cbiAgICBmdW4gdyBwIHggLT5cbiAgICAgIGxldCBzdHIgPSBmaXhfcGFkZGluZyBwYWR0eSB3IChjb252ZXJ0X2Zsb2F0IGZjb252IHAgeCkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbmFuZCBtYWtlX2N1c3RvbSA6IHR5cGUgeCB5IGEgYiBjIGQgZSBmIC5cbiAgKChiLCBjKSBhY2MgLT4gZikgLT4gKGIsIGMpIGFjYyAtPlxuICAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+XG4gIChhLCB4LCB5KSBjdXN0b21fYXJpdHkgLT4geCAtPiB5ID1cbiAgZnVuIGsgYWNjIHJlc3QgYXJpdHkgZiAtPiBtYXRjaCBhcml0eSB3aXRoXG4gIHwgQ3VzdG9tX3plcm8gLT4gbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIGYpKSByZXN0XG4gIHwgQ3VzdG9tX3N1Y2MgYXJpdHkgLT5cbiAgICBmdW4geCAtPlxuICAgICAgbWFrZV9jdXN0b20gayBhY2MgcmVzdCBhcml0eSAoZiB4KVxuXG5sZXQgY29uc3QgeCBfID0geFxuXG5sZXQgcmVjIG1ha2VfaXByaW50ZiA6IHR5cGUgYSBiIGMgZCBlIGYgc3RhdGUuXG4gIChzdGF0ZSAtPiBmKSAtPiBzdGF0ZSAtPiAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+IGEgPVxuICBmdW4gayBvIGZtdCAtPiBtYXRjaCBmbXQgd2l0aFxuICAgIHwgQ2hhciByZXN0IC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpXG4gICAgfCBDYW1sX2NoYXIgcmVzdCAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KVxuICAgIHwgU3RyaW5nIChOb19wYWRkaW5nLCByZXN0KSAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KVxuICAgIHwgU3RyaW5nIChMaXRfcGFkZGluZyBfLCByZXN0KSAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KVxuICAgIHwgU3RyaW5nIChBcmdfcGFkZGluZyBfLCByZXN0KSAtPlxuICAgICAgICBjb25zdCAoY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdCkpXG4gICAgfCBDYW1sX3N0cmluZyAoTm9fcGFkZGluZywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IENhbWxfc3RyaW5nIChMaXRfcGFkZGluZyBfLCByZXN0KSAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KVxuICAgIHwgQ2FtbF9zdHJpbmcgKEFyZ19wYWRkaW5nIF8sIHJlc3QpIC0+XG4gICAgICAgIGNvbnN0IChjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KSlcbiAgICB8IEludCAoXywgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgICAgICBmbl9vZl9wYWRkaW5nX3ByZWNpc2lvbiBrIG8gcmVzdCBwYWQgcHJlY1xuICAgIHwgSW50MzIgKF8sIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICAgICAgZm5fb2ZfcGFkZGluZ19wcmVjaXNpb24gayBvIHJlc3QgcGFkIHByZWNcbiAgICB8IE5hdGl2ZWludCAoXywgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgICAgICBmbl9vZl9wYWRkaW5nX3ByZWNpc2lvbiBrIG8gcmVzdCBwYWQgcHJlY1xuICAgIHwgSW50NjQgKF8sIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICAgICAgZm5fb2ZfcGFkZGluZ19wcmVjaXNpb24gayBvIHJlc3QgcGFkIHByZWNcbiAgICB8IEZsb2F0IChfLCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgICAgIGZuX29mX3BhZGRpbmdfcHJlY2lzaW9uIGsgbyByZXN0IHBhZCBwcmVjXG4gICAgfCBCb29sIChOb19wYWRkaW5nLCByZXN0KSAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KVxuICAgIHwgQm9vbCAoTGl0X3BhZGRpbmcgXywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IEJvb2wgKEFyZ19wYWRkaW5nIF8sIHJlc3QpIC0+XG4gICAgICAgIGNvbnN0IChjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KSlcbiAgICB8IEFscGhhIHJlc3QgLT5cbiAgICAgICAgY29uc3QgKGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpKVxuICAgIHwgVGhldGEgcmVzdCAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KVxuICAgIHwgQ3VzdG9tIChhcml0eSwgXywgcmVzdCkgLT5cbiAgICAgICAgZm5fb2ZfY3VzdG9tX2FyaXR5IGsgbyByZXN0IGFyaXR5XG4gICAgfCBSZWFkZXIgXyAtPlxuICAgICAgICAoKiBUaGlzIGNhc2UgaXMgaW1wb3NzaWJsZSwgYnkgdHlwaW5nIG9mIGZvcm1hdHMuICBTZWUgdGhlXG4gICAgICAgICAgIG5vdGUgaW4gdGhlIGNvcnJlc3BvbmRpbmcgY2FzZSBmb3IgbWFrZV9wcmludGYuICopXG4gICAgICAgIGFzc2VydCBmYWxzZVxuICAgIHwgRmx1c2ggcmVzdCAtPlxuICAgICAgICBtYWtlX2lwcmludGYgayBvIHJlc3RcbiAgICB8IFN0cmluZ19saXRlcmFsIChfLCByZXN0KSAtPlxuICAgICAgICBtYWtlX2lwcmludGYgayBvIHJlc3RcbiAgICB8IENoYXJfbGl0ZXJhbCAoXywgcmVzdCkgLT5cbiAgICAgICAgbWFrZV9pcHJpbnRmIGsgbyByZXN0XG4gICAgfCBGb3JtYXRfYXJnIChfLCBfLCByZXN0KSAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KVxuICAgIHwgRm9ybWF0X3N1YnN0IChfLCBmbXR0eSwgcmVzdCkgLT5cbiAgICAgICAgZnVuIChGb3JtYXQgKGZtdCwgXykpIC0+XG4gICAgICAgICAgbWFrZV9pcHJpbnRmIGsgb1xuICAgICAgICAgICAgKGNvbmNhdF9mbXQgKHJlY2FzdCBmbXQgZm10dHkpIHJlc3QpXG4gICAgfCBTY2FuX2NoYXJfc2V0IChfLCBfLCByZXN0KSAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KVxuICAgIHwgU2Nhbl9nZXRfY291bnRlciAoXywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IFNjYW5fbmV4dF9jaGFyIHJlc3QgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IElnbm9yZWRfcGFyYW0gKGlnbiwgcmVzdCkgLT5cbiAgICAgICAgbWFrZV9pZ25vcmVkX3BhcmFtIChmdW4gXyAtPiBrIG8pIChFbmRfb2ZfYWNjKSBpZ24gcmVzdFxuICAgIHwgRm9ybWF0dGluZ19saXQgKF8sIHJlc3QpIC0+XG4gICAgICAgIG1ha2VfaXByaW50ZiBrIG8gcmVzdFxuICAgIHwgRm9ybWF0dGluZ19nZW4gKE9wZW5fdGFnIChGb3JtYXQgKGZtdCcsIF8pKSwgcmVzdCkgLT5cbiAgICAgICAgbWFrZV9pcHJpbnRmIChmdW4ga29jIC0+IG1ha2VfaXByaW50ZiBrIGtvYyByZXN0KSBvIGZtdCdcbiAgICB8IEZvcm1hdHRpbmdfZ2VuIChPcGVuX2JveCAoRm9ybWF0IChmbXQnLCBfKSksIHJlc3QpIC0+XG4gICAgICAgIG1ha2VfaXByaW50ZiAoZnVuIGtvYyAtPiBtYWtlX2lwcmludGYgayBrb2MgcmVzdCkgbyBmbXQnXG4gICAgfCBFbmRfb2ZfZm9ybWF0IC0+XG4gICAgICAgIGsgb1xuYW5kIGZuX29mX3BhZGRpbmdfcHJlY2lzaW9uIDpcbiAgdHlwZSB4IHkgeiBhIGIgYyBkIGUgZiBzdGF0ZS5cbiAgKHN0YXRlIC0+IGYpIC0+IHN0YXRlIC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXQgLT5cbiAgKHgsIHkpIHBhZGRpbmcgLT4gKHksIHogLT4gYSkgcHJlY2lzaW9uIC0+IHggPVxuICBmdW4gayBvIGZtdCBwYWQgcHJlYyAtPiBtYXRjaCBwYWQsIHByZWMgd2l0aFxuICAgIHwgTm9fcGFkZGluZyAgICwgTm9fcHJlY2lzaW9uICAgIC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIGZtdClcbiAgICB8IE5vX3BhZGRpbmcgICAsIExpdF9wcmVjaXNpb24gXyAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyBmbXQpXG4gICAgfCBOb19wYWRkaW5nICAgLCBBcmdfcHJlY2lzaW9uICAgLT5cbiAgICAgICAgY29uc3QgKGNvbnN0IChtYWtlX2lwcmludGYgayBvIGZtdCkpXG4gICAgfCBMaXRfcGFkZGluZyBfLCBOb19wcmVjaXNpb24gICAgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gZm10KVxuICAgIHwgTGl0X3BhZGRpbmcgXywgTGl0X3ByZWNpc2lvbiBfIC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIGZtdClcbiAgICB8IExpdF9wYWRkaW5nIF8sIEFyZ19wcmVjaXNpb24gICAtPlxuICAgICAgICBjb25zdCAoY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gZm10KSlcbiAgICB8IEFyZ19wYWRkaW5nIF8sIE5vX3ByZWNpc2lvbiAgICAtPlxuICAgICAgICBjb25zdCAoY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gZm10KSlcbiAgICB8IEFyZ19wYWRkaW5nIF8sIExpdF9wcmVjaXNpb24gXyAtPlxuICAgICAgICBjb25zdCAoY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gZm10KSlcbiAgICB8IEFyZ19wYWRkaW5nIF8sIEFyZ19wcmVjaXNpb24gICAtPlxuICAgICAgICBjb25zdCAoY29uc3QgKGNvbnN0IChtYWtlX2lwcmludGYgayBvIGZtdCkpKVxuYW5kIGZuX29mX2N1c3RvbV9hcml0eSA6IHR5cGUgeCB5IGEgYiBjIGQgZSBmIHN0YXRlLlxuICAoc3RhdGUgLT4gZikgLT5cbiAgc3RhdGUgLT4gKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPiAoYSwgeCwgeSkgY3VzdG9tX2FyaXR5IC0+IHkgPVxuICBmdW4gayBvIGZtdCAtPiBmdW5jdGlvblxuICAgIHwgQ3VzdG9tX3plcm8gLT5cbiAgICAgICAgbWFrZV9pcHJpbnRmIGsgbyBmbXRcbiAgICB8IEN1c3RvbV9zdWNjIGFyaXR5IC0+XG4gICAgICAgIGNvbnN0IChmbl9vZl9jdXN0b21fYXJpdHkgayBvIGZtdCBhcml0eSlcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQ29udGludWF0aW9ucyBmb3IgbWFrZV9wcmludGYgKilcblxuKCogUmVjdXJzaXZlbHkgb3V0cHV0IGFuIFwiYWNjdW11bGF0b3JcIiBjb250YWluaW5nIGEgcmV2ZXJzZWQgbGlzdCBvZlxuICAgcHJpbnRpbmcgZW50aXRpZXMgKHN0cmluZywgY2hhciwgZmx1cywgLi4uKSBpbiBhbiBvdXRwdXRfc3RyZWFtLiAqKVxuKCogVXNlZCBhcyBhIGNvbnRpbnVhdGlvbiBvZiBtYWtlX3ByaW50Zi4gKilcbmxldCByZWMgb3V0cHV0X2FjYyBvIGFjYyA9IG1hdGNoIGFjYyB3aXRoXG4gIHwgQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBmbXRpbmdfbGl0KSAtPlxuICAgIGxldCBzID0gc3RyaW5nX29mX2Zvcm1hdHRpbmdfbGl0IGZtdGluZ19saXQgaW5cbiAgICBvdXRwdXRfYWNjIG8gcDsgb3V0cHV0X3N0cmluZyBvIHM7XG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIChwLCBBY2Nfb3Blbl90YWcgYWNjJykgLT5cbiAgICBvdXRwdXRfYWNjIG8gcDsgb3V0cHV0X3N0cmluZyBvIFwiQHtcIjsgb3V0cHV0X2FjYyBvIGFjYyc7XG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIChwLCBBY2Nfb3Blbl9ib3ggYWNjJykgLT5cbiAgICBvdXRwdXRfYWNjIG8gcDsgb3V0cHV0X3N0cmluZyBvIFwiQFtcIjsgb3V0cHV0X2FjYyBvIGFjYyc7XG4gIHwgQWNjX3N0cmluZ19saXRlcmFsIChwLCBzKVxuICB8IEFjY19kYXRhX3N0cmluZyAocCwgcykgICAtPiBvdXRwdXRfYWNjIG8gcDsgb3V0cHV0X3N0cmluZyBvIHNcbiAgfCBBY2NfY2hhcl9saXRlcmFsIChwLCBjKVxuICB8IEFjY19kYXRhX2NoYXIgKHAsIGMpICAgICAtPiBvdXRwdXRfYWNjIG8gcDsgb3V0cHV0X2NoYXIgbyBjXG4gIHwgQWNjX2RlbGF5IChwLCBmKSAgICAgICAgIC0+IG91dHB1dF9hY2MgbyBwOyBmIG9cbiAgfCBBY2NfZmx1c2ggcCAgICAgICAgICAgICAgLT4gb3V0cHV0X2FjYyBvIHA7IGZsdXNoIG9cbiAgfCBBY2NfaW52YWxpZF9hcmcgKHAsIG1zZykgLT4gb3V0cHV0X2FjYyBvIHA7IGludmFsaWRfYXJnIG1zZztcbiAgfCBFbmRfb2ZfYWNjICAgICAgICAgICAgICAgLT4gKClcblxuKCogUmVjdXJzaXZlbHkgb3V0cHV0IGFuIFwiYWNjdW11bGF0b3JcIiBjb250YWluaW5nIGEgcmV2ZXJzZWQgbGlzdCBvZlxuICAgcHJpbnRpbmcgZW50aXRpZXMgKHN0cmluZywgY2hhciwgZmx1cywgLi4uKSBpbiBhIGJ1ZmZlci4gKilcbigqIFVzZWQgYXMgYSBjb250aW51YXRpb24gb2YgbWFrZV9wcmludGYuICopXG5sZXQgcmVjIGJ1ZnB1dF9hY2MgYiBhY2MgPSBtYXRjaCBhY2Mgd2l0aFxuICB8IEFjY19mb3JtYXR0aW5nX2xpdCAocCwgZm10aW5nX2xpdCkgLT5cbiAgICBsZXQgcyA9IHN0cmluZ19vZl9mb3JtYXR0aW5nX2xpdCBmbXRpbmdfbGl0IGluXG4gICAgYnVmcHV0X2FjYyBiIHA7IEJ1ZmZlci5hZGRfc3RyaW5nIGIgcztcbiAgfCBBY2NfZm9ybWF0dGluZ19nZW4gKHAsIEFjY19vcGVuX3RhZyBhY2MnKSAtPlxuICAgIGJ1ZnB1dF9hY2MgYiBwOyBCdWZmZXIuYWRkX3N0cmluZyBiIFwiQHtcIjsgYnVmcHV0X2FjYyBiIGFjYyc7XG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIChwLCBBY2Nfb3Blbl9ib3ggYWNjJykgLT5cbiAgICBidWZwdXRfYWNjIGIgcDsgQnVmZmVyLmFkZF9zdHJpbmcgYiBcIkBbXCI7IGJ1ZnB1dF9hY2MgYiBhY2MnO1xuICB8IEFjY19zdHJpbmdfbGl0ZXJhbCAocCwgcylcbiAgfCBBY2NfZGF0YV9zdHJpbmcgKHAsIHMpICAgLT4gYnVmcHV0X2FjYyBiIHA7IEJ1ZmZlci5hZGRfc3RyaW5nIGIgc1xuICB8IEFjY19jaGFyX2xpdGVyYWwgKHAsIGMpXG4gIHwgQWNjX2RhdGFfY2hhciAocCwgYykgICAgIC0+IGJ1ZnB1dF9hY2MgYiBwOyBCdWZmZXIuYWRkX2NoYXIgYiBjXG4gIHwgQWNjX2RlbGF5IChwLCBmKSAgICAgICAgIC0+IGJ1ZnB1dF9hY2MgYiBwOyBmIGJcbiAgfCBBY2NfZmx1c2ggcCAgICAgICAgICAgICAgLT4gYnVmcHV0X2FjYyBiIHA7XG4gIHwgQWNjX2ludmFsaWRfYXJnIChwLCBtc2cpIC0+IGJ1ZnB1dF9hY2MgYiBwOyBpbnZhbGlkX2FyZyBtc2c7XG4gIHwgRW5kX29mX2FjYyAgICAgICAgICAgICAgIC0+ICgpXG5cbigqIFJlY3Vyc2l2ZWx5IG91dHB1dCBhbiBcImFjY3VtdWxhdG9yXCIgY29udGFpbmluZyBhIHJldmVyc2VkIGxpc3Qgb2ZcbiAgIHByaW50aW5nIGVudGl0aWVzIChzdHJpbmcsIGNoYXIsIGZsdXMsIC4uLikgaW4gYSBidWZmZXIuICopXG4oKiBEaWZmZXIgZnJvbSBidWZwdXRfYWNjIGJ5IHRoZSBpbnRlcnByZXRhdGlvbiBvZiAlYSBhbmQgJXQuICopXG4oKiBVc2VkIGFzIGEgY29udGludWF0aW9uIG9mIG1ha2VfcHJpbnRmLiAqKVxubGV0IHJlYyBzdHJwdXRfYWNjIGIgYWNjID0gbWF0Y2ggYWNjIHdpdGhcbiAgfCBBY2NfZm9ybWF0dGluZ19saXQgKHAsIGZtdGluZ19saXQpIC0+XG4gICAgbGV0IHMgPSBzdHJpbmdfb2ZfZm9ybWF0dGluZ19saXQgZm10aW5nX2xpdCBpblxuICAgIHN0cnB1dF9hY2MgYiBwOyBCdWZmZXIuYWRkX3N0cmluZyBiIHM7XG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIChwLCBBY2Nfb3Blbl90YWcgYWNjJykgLT5cbiAgICBzdHJwdXRfYWNjIGIgcDsgQnVmZmVyLmFkZF9zdHJpbmcgYiBcIkB7XCI7IHN0cnB1dF9hY2MgYiBhY2MnO1xuICB8IEFjY19mb3JtYXR0aW5nX2dlbiAocCwgQWNjX29wZW5fYm94IGFjYycpIC0+XG4gICAgc3RycHV0X2FjYyBiIHA7IEJ1ZmZlci5hZGRfc3RyaW5nIGIgXCJAW1wiOyBzdHJwdXRfYWNjIGIgYWNjJztcbiAgfCBBY2Nfc3RyaW5nX2xpdGVyYWwgKHAsIHMpXG4gIHwgQWNjX2RhdGFfc3RyaW5nIChwLCBzKSAgIC0+IHN0cnB1dF9hY2MgYiBwOyBCdWZmZXIuYWRkX3N0cmluZyBiIHNcbiAgfCBBY2NfY2hhcl9saXRlcmFsIChwLCBjKVxuICB8IEFjY19kYXRhX2NoYXIgKHAsIGMpICAgICAtPiBzdHJwdXRfYWNjIGIgcDsgQnVmZmVyLmFkZF9jaGFyIGIgY1xuICB8IEFjY19kZWxheSAocCwgZikgICAgICAgICAtPiBzdHJwdXRfYWNjIGIgcDsgQnVmZmVyLmFkZF9zdHJpbmcgYiAoZiAoKSlcbiAgfCBBY2NfZmx1c2ggcCAgICAgICAgICAgICAgLT4gc3RycHV0X2FjYyBiIHA7XG4gIHwgQWNjX2ludmFsaWRfYXJnIChwLCBtc2cpIC0+IHN0cnB1dF9hY2MgYiBwOyBpbnZhbGlkX2FyZyBtc2c7XG4gIHwgRW5kX29mX2FjYyAgICAgICAgICAgICAgIC0+ICgpXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICgqIEVycm9yIG1hbmFnZW1lbnQgKilcblxuKCogUmFpc2UgW0ZhaWx1cmVdIHdpdGggYSBwcmV0dHktcHJpbnRlZCBlcnJvciBtZXNzYWdlLiAqKVxubGV0IGZhaWx3aXRoX21lc3NhZ2UgKEZvcm1hdCAoZm10LCBfKSkgPVxuICBsZXQgYnVmID0gQnVmZmVyLmNyZWF0ZSAyNTYgaW5cbiAgbGV0IGsgYWNjID0gc3RycHV0X2FjYyBidWYgYWNjOyBmYWlsd2l0aCAoQnVmZmVyLmNvbnRlbnRzIGJ1ZikgaW5cbiAgbWFrZV9wcmludGYgayBFbmRfb2ZfYWNjIGZtdFxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEZvcm1hdHRpbmcgdG9vbHMgKilcblxuKCogQ29udmVydCBhIHN0cmluZyB0byBhbiBvcGVuIGJsb2NrIGRlc2NyaXB0aW9uIChpbmRlbnQsIGJsb2NrX3R5cGUpICopXG5sZXQgb3Blbl9ib3hfb2Zfc3RyaW5nIHN0ciA9XG4gIGlmIHN0ciA9IFwiXCIgdGhlbiAoMCwgUHBfYm94KSBlbHNlXG4gICAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggc3RyIGluXG4gICAgbGV0IGludmFsaWRfYm94ICgpID0gZmFpbHdpdGhfbWVzc2FnZSBcImludmFsaWQgYm94IGRlc2NyaXB0aW9uICVTXCIgc3RyIGluXG4gICAgbGV0IHJlYyBwYXJzZV9zcGFjZXMgaSA9XG4gICAgICBpZiBpID0gbGVuIHRoZW4gaSBlbHNlXG4gICAgICAgIG1hdGNoIHN0ci5baV0gd2l0aFxuICAgICAgICB8ICcgJyB8ICdcXHQnIC0+IHBhcnNlX3NwYWNlcyAoaSArIDEpXG4gICAgICAgIHwgXyAtPiBpXG4gICAgYW5kIHBhcnNlX2x3b3JkIGkgaiA9XG4gICAgICBpZiBqID0gbGVuIHRoZW4gaiBlbHNlXG4gICAgICAgIG1hdGNoIHN0ci5bal0gd2l0aFxuICAgICAgICB8ICdhJyAuLiAneicgLT4gcGFyc2VfbHdvcmQgaSAoaiArIDEpXG4gICAgICAgIHwgXyAtPiBqXG4gICAgYW5kIHBhcnNlX2ludCBpIGogPVxuICAgICAgaWYgaiA9IGxlbiB0aGVuIGogZWxzZVxuICAgICAgICBtYXRjaCBzdHIuW2pdIHdpdGhcbiAgICAgICAgfCAnMCcgLi4gJzknIHwgJy0nIC0+IHBhcnNlX2ludCBpIChqICsgMSlcbiAgICAgICAgfCBfIC0+IGogaW5cbiAgICBsZXQgd3N0YXJ0ID0gcGFyc2Vfc3BhY2VzIDAgaW5cbiAgICBsZXQgd2VuZCA9IHBhcnNlX2x3b3JkIHdzdGFydCB3c3RhcnQgaW5cbiAgICBsZXQgYm94X25hbWUgPSBTdHJpbmcuc3ViIHN0ciB3c3RhcnQgKHdlbmQgLSB3c3RhcnQpIGluXG4gICAgbGV0IG5zdGFydCA9IHBhcnNlX3NwYWNlcyB3ZW5kIGluXG4gICAgbGV0IG5lbmQgPSBwYXJzZV9pbnQgbnN0YXJ0IG5zdGFydCBpblxuICAgIGxldCBpbmRlbnQgPVxuICAgICAgaWYgbnN0YXJ0ID0gbmVuZCB0aGVuIDAgZWxzZVxuICAgICAgICB0cnkgaW50X29mX3N0cmluZyAoU3RyaW5nLnN1YiBzdHIgbnN0YXJ0IChuZW5kIC0gbnN0YXJ0KSlcbiAgICAgICAgd2l0aCBGYWlsdXJlIF8gLT4gaW52YWxpZF9ib3ggKCkgaW5cbiAgICBsZXQgZXhwX2VuZCA9IHBhcnNlX3NwYWNlcyBuZW5kIGluXG4gICAgaWYgZXhwX2VuZCA8PiBsZW4gdGhlbiBpbnZhbGlkX2JveCAoKTtcbiAgICBsZXQgYm94X3R5cGUgPSBtYXRjaCBib3hfbmFtZSB3aXRoXG4gICAgICB8IFwiXCIgfCBcImJcIiAtPiBQcF9ib3hcbiAgICAgIHwgXCJoXCIgICAgICAtPiBQcF9oYm94XG4gICAgICB8IFwidlwiICAgICAgLT4gUHBfdmJveFxuICAgICAgfCBcImh2XCIgICAgIC0+IFBwX2h2Ym94XG4gICAgICB8IFwiaG92XCIgICAgLT4gUHBfaG92Ym94XG4gICAgICB8IF8gICAgICAgIC0+IGludmFsaWRfYm94ICgpIGluXG4gICAgKGluZGVudCwgYm94X3R5cGUpXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogUGFyc2luZyB0b29scyAqKVxuXG4oKiBDcmVhdGUgYSBwYWRkaW5nX2ZtdF9lYmIgZnJvbSBhIHBhZGRpbmcgYW5kIGEgZm9ybWF0LiAqKVxuKCogQ29weSB0aGUgcGFkZGluZyB0byBkaXNqb2luIHRoZSB0eXBlIHBhcmFtZXRlcnMgb2YgYXJndW1lbnQgYW5kIHJlc3VsdC4gKilcbmxldCBtYWtlX3BhZGRpbmdfZm10X2ViYiA6IHR5cGUgeCB5IC5cbiAgICAoeCwgeSkgcGFkZGluZyAtPiAoXywgXywgXywgXywgXywgXykgZm10IC0+XG4gICAgICAoXywgXywgXywgXywgXykgcGFkZGluZ19mbXRfZWJiID1cbmZ1biBwYWQgZm10IC0+IG1hdGNoIHBhZCB3aXRoXG4gIHwgTm9fcGFkZGluZyAgICAgICAgIC0+IFBhZGRpbmdfZm10X0VCQiAoTm9fcGFkZGluZywgZm10KVxuICB8IExpdF9wYWRkaW5nIChzLCB3KSAtPiBQYWRkaW5nX2ZtdF9FQkIgKExpdF9wYWRkaW5nIChzLCB3KSwgZm10KVxuICB8IEFyZ19wYWRkaW5nIHMgICAgICAtPiBQYWRkaW5nX2ZtdF9FQkIgKEFyZ19wYWRkaW5nIHMsIGZtdClcblxuKCogQ3JlYXRlIGEgcHJlY2lzaW9uX2ZtdF9lYmIgZnJvbSBhIHByZWNpc2lvbiBhbmQgYSBmb3JtYXQuICopXG4oKiBDb3B5IHRoZSBwcmVjaXNpb24gdG8gZGlzam9pbiB0aGUgdHlwZSBwYXJhbWV0ZXJzIG9mIGFyZ3VtZW50IGFuZCByZXN1bHQuICopXG5sZXQgbWFrZV9wcmVjaXNpb25fZm10X2ViYiA6IHR5cGUgeCB5IC5cbiAgICAoeCwgeSkgcHJlY2lzaW9uIC0+IChfLCBfLCBfLCBfLCBfLCBfKSBmbXQgLT5cbiAgICAgIChfLCBfLCBfLCBfLCBfKSBwcmVjaXNpb25fZm10X2ViYiA9XG5mdW4gcHJlYyBmbXQgLT4gbWF0Y2ggcHJlYyB3aXRoXG4gIHwgTm9fcHJlY2lzaW9uICAgIC0+IFByZWNpc2lvbl9mbXRfRUJCIChOb19wcmVjaXNpb24sIGZtdClcbiAgfCBMaXRfcHJlY2lzaW9uIHAgLT4gUHJlY2lzaW9uX2ZtdF9FQkIgKExpdF9wcmVjaXNpb24gcCwgZm10KVxuICB8IEFyZ19wcmVjaXNpb24gICAtPiBQcmVjaXNpb25fZm10X0VCQiAoQXJnX3ByZWNpc2lvbiwgZm10KVxuXG4oKiBDcmVhdGUgYSBwYWRwcmVjX2ZtdF9lYmIgZnJvbSBhIHBhZGRpbmcsIGEgcHJlY2lzaW9uIGFuZCBhIGZvcm1hdC4gKilcbigqIENvcHkgdGhlIHBhZGRpbmcgYW5kIHRoZSBwcmVjaXNpb24gdG8gZGlzam9pbiB0eXBlIHBhcmFtZXRlcnMgb2YgYXJndW1lbnRzXG4gICBhbmQgcmVzdWx0LiAqKVxubGV0IG1ha2VfcGFkcHJlY19mbXRfZWJiIDogdHlwZSB4IHkgeiB0IC5cbiAgICAoeCwgeSkgcGFkZGluZyAtPiAoeiwgdCkgcHJlY2lzaW9uIC0+XG4gICAgKF8sIF8sIF8sIF8sIF8sIF8pIGZtdCAtPlxuICAgIChfLCBfLCBfLCBfLCBfKSBwYWRwcmVjX2ZtdF9lYmIgPVxuZnVuIHBhZCBwcmVjIGZtdCAtPlxuICBsZXQgUHJlY2lzaW9uX2ZtdF9FQkIgKHByZWMsIGZtdCcpID0gbWFrZV9wcmVjaXNpb25fZm10X2ViYiBwcmVjIGZtdCBpblxuICBtYXRjaCBwYWQgd2l0aFxuICB8IE5vX3BhZGRpbmcgICAgICAgICAtPiBQYWRwcmVjX2ZtdF9FQkIgKE5vX3BhZGRpbmcsIHByZWMsIGZtdCcpXG4gIHwgTGl0X3BhZGRpbmcgKHMsIHcpIC0+IFBhZHByZWNfZm10X0VCQiAoTGl0X3BhZGRpbmcgKHMsIHcpLCBwcmVjLCBmbXQnKVxuICB8IEFyZ19wYWRkaW5nIHMgICAgICAtPiBQYWRwcmVjX2ZtdF9FQkIgKEFyZ19wYWRkaW5nIHMsIHByZWMsIGZtdCcpXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEZvcm1hdCBwYXJzaW5nICopXG5cbigqIFBhcnNlIGEgc3RyaW5nIHJlcHJlc2VudGluZyBhIGZvcm1hdCBhbmQgY3JlYXRlIGEgZm10X2ViYi4gKilcbigqIFJhaXNlIFtGYWlsdXJlXSBpbiBjYXNlIG9mIGludmFsaWQgZm9ybWF0LiAqKVxubGV0IGZtdF9lYmJfb2Zfc3RyaW5nID9sZWdhY3lfYmVoYXZpb3Igc3RyID1cbiAgKCogUGFyYW1ldGVycyBuYW1pbmcgY29udmVudGlvbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuICAoKiAgIC0gbGl0X3N0YXJ0OiBzdGFydCBvZiB0aGUgbGl0ZXJhbCBzZXF1ZW5jZS4gICAgICAgICAgICAgICAgICAgICopXG4gICgqICAgLSBzdHJfaW5kOiBjdXJyZW50IGluZGV4IGluIHRoZSBzdHJpbmcuICAgICAgICAgICAgICAgICAgICAgICAgKilcbiAgKCogICAtIGVuZF9pbmQ6IGVuZCBvZiB0aGUgY3VycmVudCAoc3ViLSlmb3JtYXQuICAgICAgICAgICAgICAgICAgICAqKVxuICAoKiAgIC0gcGN0X2luZDogaW5kZXggb2YgdGhlICclJyBpbiB0aGUgY3VycmVudCBtaWNyby1mb3JtYXQuICAgICAgICopXG4gICgqICAgLSB6ZXJvOiAgaXMgdGhlICcwJyBmbGFnIGRlZmluZWQgaW4gdGhlIGN1cnJlbnQgbWljcm8tZm9ybWF0LiAgKilcbiAgKCogICAtIG1pbnVzOiBpcyB0aGUgJy0nIGZsYWcgZGVmaW5lZCBpbiB0aGUgY3VycmVudCBtaWNyby1mb3JtYXQuICAqKVxuICAoKiAgIC0gcGx1czogIGlzIHRoZSAnKycgZmxhZyBkZWZpbmVkIGluIHRoZSBjdXJyZW50IG1pY3JvLWZvcm1hdC4gICopXG4gICgqICAgLSBoYXNoOiAgaXMgdGhlICcjJyBmbGFnIGRlZmluZWQgaW4gdGhlIGN1cnJlbnQgbWljcm8tZm9ybWF0LiAgKilcbiAgKCogICAtIHNwYWNlOiBpcyB0aGUgJyAnIGZsYWcgZGVmaW5lZCBpbiB0aGUgY3VycmVudCBtaWNyby1mb3JtYXQuICAqKVxuICAoKiAgIC0gaWduOiAgIGlzIHRoZSAnXycgZmxhZyBkZWZpbmVkIGluIHRoZSBjdXJyZW50IG1pY3JvLWZvcm1hdC4gICopXG4gICgqICAgLSBwYWQ6IHBhZGRpbmcgb2YgdGhlIGN1cnJlbnQgbWljcm8tZm9ybWF0LiAgICAgICAgICAgICAgICAgICAgKilcbiAgKCogICAtIHByZWM6IHByZWNpc2lvbiBvZiB0aGUgY3VycmVudCBtaWNyby1mb3JtYXQuICAgICAgICAgICAgICAgICAqKVxuICAoKiAgIC0gc3ltYjogY2hhciByZXByZXNlbnRpbmcgdGhlIGNvbnZlcnNpb24gKCdjJywgJ3MnLCAnZCcsIC4uLikuICopXG4gICgqICAgLSBjaGFyX3NldDogc2V0IG9mIGNoYXJhY3RlcnMgYXMgYml0bWFwIChzZWUgc2NhbmYgJVsuLi5dKS4gICAgKilcblxuICBsZXQgbGVnYWN5X2JlaGF2aW9yID0gbWF0Y2ggbGVnYWN5X2JlaGF2aW9yIHdpdGhcbiAgICB8IFNvbWUgZmxhZyAtPiBmbGFnXG4gICAgfCBOb25lIC0+IHRydWVcbiAgKCogIFdoZW4gdGhpcyBmbGFnIGlzIGVuYWJsZWQsIHRoZSBmb3JtYXQgcGFyc2VyIHRyaWVzIHRvIGJlaGF2ZSBhc1xuICAgICAgdGhlIDw0LjAyIGltcGxlbWVudGF0aW9ucywgaW4gcGFydGljdWxhciBpdCBpZ25vcmVzIG1vc3QgYmVuaW5lXG4gICAgICBub25zZW5zaWNhbCBmb3JtYXQuIFdoZW4gdGhlIGZsYWcgaXMgZGlzYWJsZWQsIGl0IHdpbGwgcmVqZWN0IGFueVxuICAgICAgZm9ybWF0IHRoYXQgaXMgbm90IGFjY2VwdGVkIGJ5IHRoZSBzcGVjaWZpY2F0aW9uLlxuXG4gICAgICBBIHR5cGljYWwgZXhhbXBsZSB3b3VsZCBiZSBcIiUrIGRcIjogc3BlY2lmeWluZyBib3RoICcrJyAoaWYgdGhlXG4gICAgICBudW1iZXIgaXMgcG9zaXRpdmUsIHBhZCB3aXRoIGEgJysnIHRvIGdldCB0aGUgc2FtZSB3aWR0aCBhc1xuICAgICAgbmVnYXRpdmUgbnVtYmVycykgYW5kICcgJyAoaWYgdGhlIG51bWJlciBpcyBwb3NpdGl2ZSwgcGFkIHdpdGhcbiAgICAgIGEgc3BhY2UpIGRvZXMgbm90IG1ha2Ugc2Vuc2UsIGJ1dCB0aGUgbGVnYWN5ICg8IDQuMDIpXG4gICAgICBpbXBsZW1lbnRhdGlvbiB3YXMgaGFwcHkgdG8ganVzdCBpZ25vcmUgdGhlIHNwYWNlLlxuICAqKVxuICBpblxuXG4gICgqIFJhaXNlIFtGYWlsdXJlXSB3aXRoIGEgZnJpZW5kbHkgZXJyb3IgbWVzc2FnZS4gKilcbiAgbGV0IGludmFsaWRfZm9ybWF0X21lc3NhZ2Ugc3RyX2luZCBtc2cgPVxuICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgIFwiaW52YWxpZCBmb3JtYXQgJVM6IGF0IGNoYXJhY3RlciBudW1iZXIgJWQsICVzXCJcbiAgICAgIHN0ciBzdHJfaW5kIG1zZ1xuICBpblxuXG4gICgqIFVzZWQgd2hlbiB0aGUgZW5kIG9mIHRoZSBmb3JtYXQgKG9yIHRoZSBjdXJyZW50IHN1Yi1mb3JtYXQpIHdhcyBlbmNvdW50ZXJlZFxuICAgICAgdW5leHBlY3RlZGx5LiAqKVxuICBsZXQgdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQgPVxuICAgIGludmFsaWRfZm9ybWF0X21lc3NhZ2UgZW5kX2luZFxuICAgICAgXCJ1bmV4cGVjdGVkIGVuZCBvZiBmb3JtYXRcIlxuICBpblxuXG4gICgqIFVzZWQgZm9yICUwYzogbm8gb3RoZXIgd2lkdGhzIGFyZSBpbXBsZW1lbnRlZCAqKVxuICBsZXQgaW52YWxpZF9ub25udWxsX2NoYXJfd2lkdGggc3RyX2luZCA9XG4gICAgaW52YWxpZF9mb3JtYXRfbWVzc2FnZSBzdHJfaW5kXG4gICAgICBcIm5vbi16ZXJvIHdpZHRocyBhcmUgdW5zdXBwb3J0ZWQgZm9yICVjIGNvbnZlcnNpb25zXCJcbiAgaW5cbiAgKCogUmFpc2UgW0ZhaWx1cmVdIHdpdGggYSBmcmllbmRseSBlcnJvciBtZXNzYWdlIGFib3V0IGFuIG9wdGlvbiBkZXBlbmRlbmN5XG4gICAgIHByb2JsZW0uICopXG4gIGxldCBpbnZhbGlkX2Zvcm1hdF93aXRob3V0IHN0cl9pbmQgYyBzID1cbiAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgICBcImludmFsaWQgZm9ybWF0ICVTOiBhdCBjaGFyYWN0ZXIgbnVtYmVyICVkLCAnJWMnIHdpdGhvdXQgJXNcIlxuICAgICAgc3RyIHN0cl9pbmQgYyBzXG4gIGluXG5cbiAgKCogUmFpc2UgW0ZhaWx1cmVdIHdpdGggYSBmcmllbmRseSBlcnJvciBtZXNzYWdlIGFib3V0IGFuIHVuZXhwZWN0ZWRcbiAgICAgY2hhcmFjdGVyLiAqKVxuICBsZXQgZXhwZWN0ZWRfY2hhcmFjdGVyIHN0cl9pbmQgZXhwZWN0ZWQgcmVhZCA9XG4gICAgZmFpbHdpdGhfbWVzc2FnZVxuICAgICBcImludmFsaWQgZm9ybWF0ICVTOiBhdCBjaGFyYWN0ZXIgbnVtYmVyICVkLCAlcyBleHBlY3RlZCwgcmVhZCAlQ1wiXG4gICAgICBzdHIgc3RyX2luZCBleHBlY3RlZCByZWFkXG4gIGluXG5cbiAgKCogUGFyc2UgdGhlIHN0cmluZyBmcm9tIGJlZ19pbmQgKGluY2x1ZGVkKSB0byBlbmRfaW5kIChleGNsdWRlZCkuICopXG4gIGxldCByZWMgcGFyc2UgOiB0eXBlIGUgZiAuIGludCAtPiBpbnQgLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gYmVnX2luZCBlbmRfaW5kIC0+IHBhcnNlX2xpdGVyYWwgYmVnX2luZCBiZWdfaW5kIGVuZF9pbmRcblxuICAoKiBSZWFkIGxpdGVyYWwgY2hhcmFjdGVycyB1cCB0byAnJScgb3IgJ0AnIHNwZWNpYWwgY2hhcmFjdGVycy4gKilcbiAgYW5kIHBhcnNlX2xpdGVyYWwgOiB0eXBlIGUgZiAuIGludCAtPiBpbnQgLT4gaW50IC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIGxpdF9zdGFydCBzdHJfaW5kIGVuZF9pbmQgLT5cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIGFkZF9saXRlcmFsIGxpdF9zdGFydCBzdHJfaW5kIEVuZF9vZl9mb3JtYXQgZWxzZVxuICAgICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgICB8ICclJyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlX2Zvcm1hdCBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgICAgYWRkX2xpdGVyYWwgbGl0X3N0YXJ0IHN0cl9pbmQgZm10X3Jlc3RcbiAgICAgIHwgJ0AnIC0+XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2VfYWZ0ZXJfYXQgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICAgIGFkZF9saXRlcmFsIGxpdF9zdGFydCBzdHJfaW5kIGZtdF9yZXN0XG4gICAgICB8IF8gLT5cbiAgICAgICAgcGFyc2VfbGl0ZXJhbCBsaXRfc3RhcnQgKHN0cl9pbmQgKyAxKSBlbmRfaW5kXG5cbiAgKCogUGFyc2UgYSBmb3JtYXQgYWZ0ZXIgJyUnICopXG4gIGFuZCBwYXJzZV9mb3JtYXQgOiB0eXBlIGUgZiAuIGludCAtPiBpbnQgLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gcGN0X2luZCBlbmRfaW5kIC0+IHBhcnNlX2lnbiBwY3RfaW5kIChwY3RfaW5kICsgMSkgZW5kX2luZFxuXG4gIGFuZCBwYXJzZV9pZ24gOiB0eXBlIGUgZiAuIGludCAtPiBpbnQgLT4gaW50IC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIC0+XG4gICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICAgIHwgJ18nIC0+IHBhcnNlX2ZsYWdzIHBjdF9pbmQgKHN0cl9pbmQrMSkgZW5kX2luZCB0cnVlXG4gICAgICB8IF8gLT4gcGFyc2VfZmxhZ3MgcGN0X2luZCBzdHJfaW5kIGVuZF9pbmQgZmFsc2VcblxuICBhbmQgcGFyc2VfZmxhZ3MgOiB0eXBlIGUgZiAuIGludCAtPiBpbnQgLT4gaW50IC0+IGJvb2wgLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmJcbiAgPVxuICBmdW4gcGN0X2luZCBzdHJfaW5kIGVuZF9pbmQgaWduIC0+XG4gICAgbGV0IHplcm8gPSByZWYgZmFsc2UgYW5kIG1pbnVzID0gcmVmIGZhbHNlXG4gICAgYW5kIHBsdXMgPSByZWYgZmFsc2UgYW5kIHNwYWNlID0gcmVmIGZhbHNlXG4gICAgYW5kIGhhc2ggPSByZWYgZmFsc2UgaW5cbiAgICBsZXQgc2V0X2ZsYWcgc3RyX2luZCBmbGFnID1cbiAgICAgICgqIGluIGxlZ2FjeSBtb2RlLCBkdXBsaWNhdGUgZmxhZ3MgYXJlIGFjY2VwdGVkICopXG4gICAgICBpZiAhZmxhZyAmJiBub3QgbGVnYWN5X2JlaGF2aW9yIHRoZW5cbiAgICAgICAgZmFpbHdpdGhfbWVzc2FnZVxuICAgICAgICAgIFwiaW52YWxpZCBmb3JtYXQgJVM6IGF0IGNoYXJhY3RlciBudW1iZXIgJWQsIGR1cGxpY2F0ZSBmbGFnICVDXCJcbiAgICAgICAgICBzdHIgc3RyX2luZCBzdHIuW3N0cl9pbmRdO1xuICAgICAgZmxhZyA6PSB0cnVlO1xuICAgIGluXG4gICAgbGV0IHJlYyByZWFkX2ZsYWdzIHN0cl9pbmQgPVxuICAgICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICAgIGJlZ2luIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgICAgfCAnMCcgLT4gc2V0X2ZsYWcgc3RyX2luZCB6ZXJvOyAgcmVhZF9mbGFncyAoc3RyX2luZCArIDEpXG4gICAgICB8ICctJyAtPiBzZXRfZmxhZyBzdHJfaW5kIG1pbnVzOyByZWFkX2ZsYWdzIChzdHJfaW5kICsgMSlcbiAgICAgIHwgJysnIC0+IHNldF9mbGFnIHN0cl9pbmQgcGx1czsgIHJlYWRfZmxhZ3MgKHN0cl9pbmQgKyAxKVxuICAgICAgfCAnIycgLT4gc2V0X2ZsYWcgc3RyX2luZCBoYXNoOyByZWFkX2ZsYWdzIChzdHJfaW5kICsgMSlcbiAgICAgIHwgJyAnIC0+IHNldF9mbGFnIHN0cl9pbmQgc3BhY2U7IHJlYWRfZmxhZ3MgKHN0cl9pbmQgKyAxKVxuICAgICAgfCBfIC0+XG4gICAgICAgIHBhcnNlX3BhZGRpbmcgcGN0X2luZCBzdHJfaW5kIGVuZF9pbmRcbiAgICAgICAgICAhemVybyAhbWludXMgIXBsdXMgIWhhc2ggIXNwYWNlIGlnblxuICAgICAgZW5kXG4gICAgaW5cbiAgICByZWFkX2ZsYWdzIHN0cl9pbmRcblxuICAoKiBUcnkgdG8gcmVhZCBhIGRpZ2l0YWwgb3IgYSAnKicgcGFkZGluZy4gKilcbiAgYW5kIHBhcnNlX3BhZGRpbmcgOiB0eXBlIGUgZiAuXG4gICAgICBpbnQgLT4gaW50IC0+IGludCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPlxuICAgICAgICAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBwY3RfaW5kIHN0cl9pbmQgZW5kX2luZCB6ZXJvIG1pbnVzIHBsdXMgaGFzaCBzcGFjZSBpZ24gLT5cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgIGxldCBwYWR0eSA9IG1hdGNoIHplcm8sIG1pbnVzIHdpdGhcbiAgICAgIHwgZmFsc2UsIGZhbHNlIC0+IFJpZ2h0XG4gICAgICB8IGZhbHNlLCB0cnVlICAtPiBMZWZ0XG4gICAgICB8ICB0cnVlLCBmYWxzZSAtPiBaZXJvc1xuICAgICAgfCAgdHJ1ZSwgdHJ1ZSAgLT5cbiAgICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW4gTGVmdFxuICAgICAgICBlbHNlIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCAnLScgXCIwXCIgaW5cbiAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICB8ICcwJyAuLiAnOScgLT5cbiAgICAgIGxldCBuZXdfaW5kLCB3aWR0aCA9IHBhcnNlX3Bvc2l0aXZlIHN0cl9pbmQgZW5kX2luZCAwIGluXG4gICAgICBwYXJzZV9hZnRlcl9wYWRkaW5nIHBjdF9pbmQgbmV3X2luZCBlbmRfaW5kIG1pbnVzIHBsdXMgaGFzaCBzcGFjZSBpZ25cbiAgICAgICAgKExpdF9wYWRkaW5nIChwYWR0eSwgd2lkdGgpKVxuICAgIHwgJyonIC0+XG4gICAgICBwYXJzZV9hZnRlcl9wYWRkaW5nIHBjdF9pbmQgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIG1pbnVzIHBsdXMgaGFzaCBzcGFjZVxuICAgICAgICBpZ24gKEFyZ19wYWRkaW5nIHBhZHR5KVxuICAgIHwgXyAtPlxuICAgICAgYmVnaW4gbWF0Y2ggcGFkdHkgd2l0aFxuICAgICAgfCBMZWZ0ICAtPlxuICAgICAgICBpZiBub3QgbGVnYWN5X2JlaGF2aW9yIHRoZW5cbiAgICAgICAgICBpbnZhbGlkX2Zvcm1hdF93aXRob3V0IChzdHJfaW5kIC0gMSkgJy0nIFwicGFkZGluZ1wiO1xuICAgICAgICBwYXJzZV9hZnRlcl9wYWRkaW5nIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIG1pbnVzIHBsdXMgaGFzaCBzcGFjZSBpZ25cbiAgICAgICAgICBOb19wYWRkaW5nXG4gICAgICB8IFplcm9zIC0+XG4gICAgICAgICAoKiBhICcwJyBwYWRkaW5nIGluZGljYXRpb24gbm90IGZvbGxvd2VkIGJ5IGFueXRoaW5nIHNob3VsZFxuICAgICAgICAgICBiZSBpbnRlcnByZXRlZCBhcyBhIFJpZ2h0IHBhZGRpbmcgb2Ygd2lkdGggMC4gVGhpcyBpcyB1c2VkXG4gICAgICAgICAgIGJ5IHNjYW5uaW5nIGNvbnZlcnNpb25zICUwcyBhbmQgJTBjICopXG4gICAgICAgIHBhcnNlX2FmdGVyX3BhZGRpbmcgcGN0X2luZCBzdHJfaW5kIGVuZF9pbmQgbWludXMgcGx1cyBoYXNoIHNwYWNlIGlnblxuICAgICAgICAgIChMaXRfcGFkZGluZyAoUmlnaHQsIDApKVxuICAgICAgfCBSaWdodCAtPlxuICAgICAgICBwYXJzZV9hZnRlcl9wYWRkaW5nIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIG1pbnVzIHBsdXMgaGFzaCBzcGFjZSBpZ25cbiAgICAgICAgICBOb19wYWRkaW5nXG4gICAgICBlbmRcblxuICAoKiBJcyBwcmVjaXNpb24gZGVmaW5lZD8gKilcbiAgYW5kIHBhcnNlX2FmdGVyX3BhZGRpbmcgOiB0eXBlIHggZSBmIC5cbiAgICAgIGludCAtPiBpbnQgLT4gaW50IC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPlxuICAgICAgICAoeCwgXykgcGFkZGluZyAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBwY3RfaW5kIHN0cl9pbmQgZW5kX2luZCBtaW51cyBwbHVzIGhhc2ggc3BhY2UgaWduIHBhZCAtPlxuICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgfCAnLicgLT5cbiAgICAgIHBhcnNlX3ByZWNpc2lvbiBwY3RfaW5kIChzdHJfaW5kICsgMSkgZW5kX2luZCBtaW51cyBwbHVzIGhhc2ggc3BhY2UgaWduXG4gICAgICAgIHBhZFxuICAgIHwgc3ltYiAtPlxuICAgICAgcGFyc2VfY29udmVyc2lvbiBwY3RfaW5kIChzdHJfaW5kICsgMSkgZW5kX2luZCBwbHVzIGhhc2ggc3BhY2UgaWduIHBhZFxuICAgICAgICBOb19wcmVjaXNpb24gcGFkIHN5bWJcblxuICAoKiBSZWFkIHRoZSBkaWdpdGFsIG9yICcqJyBwcmVjaXNpb24uICopXG4gIGFuZCBwYXJzZV9wcmVjaXNpb24gOiB0eXBlIHggZSBmIC5cbiAgICAgIGludCAtPiBpbnQgLT4gaW50IC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPlxuICAgICAgICAoeCwgXykgcGFkZGluZyAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBwY3RfaW5kIHN0cl9pbmQgZW5kX2luZCBtaW51cyBwbHVzIGhhc2ggc3BhY2UgaWduIHBhZCAtPlxuICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgbGV0IHBhcnNlX2xpdGVyYWwgbWludXMgc3RyX2luZCA9XG4gICAgICBsZXQgbmV3X2luZCwgcHJlYyA9IHBhcnNlX3Bvc2l0aXZlIHN0cl9pbmQgZW5kX2luZCAwIGluXG4gICAgICBwYXJzZV9hZnRlcl9wcmVjaXNpb24gcGN0X2luZCBuZXdfaW5kIGVuZF9pbmQgbWludXMgcGx1cyBoYXNoIHNwYWNlIGlnblxuICAgICAgICBwYWQgKExpdF9wcmVjaXNpb24gcHJlYykgaW5cbiAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICB8ICcwJyAuLiAnOScgLT4gcGFyc2VfbGl0ZXJhbCBtaW51cyBzdHJfaW5kXG4gICAgfCAoJysnIHwgJy0nKSBhcyBzeW1iIHdoZW4gbGVnYWN5X2JlaGF2aW9yIC0+XG4gICAgICAoKiBMZWdhY3kgbW9kZSB3b3VsZCBhY2NlcHQgYW5kIGlnbm9yZSAnKycgb3IgJy0nIGJlZm9yZSB0aGVcbiAgICAgICAgIGludGVnZXIgZGVzY3JpYmluZyB0aGUgZGVzaXJlZCBwcmVjaXNpb247IG5vdGUgdGhhdCB0aGlzXG4gICAgICAgICBjYW5ub3QgaGFwcGVuIGZvciBwYWRkaW5nIHdpZHRoLCBhcyAnKycgYW5kICctJyBhbHJlYWR5IGhhdmVcbiAgICAgICAgIGEgc2VtYW50aWNzIHRoZXJlLlxuXG4gICAgICAgICBUaGF0IHNhaWQsIHRoZSBpZGVhIChzdXBwb3J0ZWQgYnkgdGhpcyB0d2VhaykgdGhhdCB3aWR0aCBhbmRcbiAgICAgICAgIHByZWNpc2lvbiBsaXRlcmFscyBhcmUgXCJpbnRlZ2VyIGxpdGVyYWxzXCIgaW4gdGhlIE9DYW1sIHNlbnNlIGlzXG4gICAgICAgICBzdGlsbCBibGF0YW50bHkgd3JvbmcsIGFzIDEyM180NTYgb3IgMHhGRiBhcmUgcmVqZWN0ZWQuICopXG4gICAgICBwYXJzZV9saXRlcmFsIChtaW51cyB8fCBzeW1iID0gJy0nKSAoc3RyX2luZCArIDEpXG4gICAgfCAnKicgLT5cbiAgICAgIHBhcnNlX2FmdGVyX3ByZWNpc2lvbiBwY3RfaW5kIChzdHJfaW5kICsgMSkgZW5kX2luZCBtaW51cyBwbHVzIGhhc2ggc3BhY2VcbiAgICAgICAgaWduIHBhZCBBcmdfcHJlY2lzaW9uXG4gICAgfCBfIC0+XG4gICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlblxuICAgICAgICAoKiBub3RlIHRoYXQgbGVnYWN5IGltcGxlbWVudGF0aW9uIGRpZCBub3QgaWdub3JlICcuJyB3aXRob3V0XG4gICAgICAgICAgIGEgbnVtYmVyIChhcyBpdCBkb2VzIGZvciBwYWRkaW5nIGluZGljYXRpb25zKSwgYnV0XG4gICAgICAgICAgIGludGVycHJldHMgaXQgYXMgJy4wJyAqKVxuICAgICAgICBwYXJzZV9hZnRlcl9wcmVjaXNpb24gcGN0X2luZCBzdHJfaW5kIGVuZF9pbmQgbWludXMgcGx1cyBoYXNoIHNwYWNlIGlnblxuICAgICAgICAgIHBhZCAoTGl0X3ByZWNpc2lvbiAwKVxuICAgICAgZWxzZVxuICAgICAgICBpbnZhbGlkX2Zvcm1hdF93aXRob3V0IChzdHJfaW5kIC0gMSkgJy4nIFwicHJlY2lzaW9uXCJcblxuICAoKiBUcnkgdG8gcmVhZCB0aGUgY29udmVyc2lvbi4gKilcbiAgYW5kIHBhcnNlX2FmdGVyX3ByZWNpc2lvbiA6IHR5cGUgeCB5IHogdCBlIGYgLlxuICAgICAgaW50IC0+IGludCAtPiBpbnQgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+XG4gICAgICAgICh4LCB5KSBwYWRkaW5nIC0+ICh6LCB0KSBwcmVjaXNpb24gLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gcGN0X2luZCBzdHJfaW5kIGVuZF9pbmQgbWludXMgcGx1cyBoYXNoIHNwYWNlIGlnbiBwYWQgcHJlYyAtPlxuICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgbGV0IHBhcnNlX2NvbnYgKHR5cGUgdSkgKHR5cGUgdikgKHBhZHByZWMgOiAodSwgdikgcGFkZGluZykgPVxuICAgICAgcGFyc2VfY29udmVyc2lvbiBwY3RfaW5kIChzdHJfaW5kICsgMSkgZW5kX2luZCBwbHVzIGhhc2ggc3BhY2UgaWduIHBhZFxuICAgICAgICBwcmVjIHBhZHByZWMgc3RyLltzdHJfaW5kXSBpblxuICAgICgqIGluIGxlZ2FjeSBtb2RlLCBzb21lIGZvcm1hdHMgKCVzIGFuZCAlUykgYWNjZXB0IGEgd2VpcmQgbWl4IG9mXG4gICAgICAgcGFkZGluZyBhbmQgcHJlY2lzaW9uLCB3aGljaCBpcyBtZXJnZWQgYXMgYSBzaW5nbGUgcGFkZGluZ1xuICAgICAgIGluZm9ybWF0aW9uLiBGb3IgZXhhbXBsZSwgaW4gJS4xMHMgdGhlIHByZWNpc2lvbiBpcyBpbXBsaWNpdGx5XG4gICAgICAgdW5kZXJzdG9vZCBhcyBwYWRkaW5nICUxMHMsIGJ1dCB0aGUgbGVmdC1wYWRkaW5nIGNvbXBvbmVudCBtYXlcbiAgICAgICBiZSBzcGVjaWZpZWQgZWl0aGVyIGFzIGEgbGVmdCBwYWRkaW5nIG9yIGEgbmVnYXRpdmUgcHJlY2lzaW9uOlxuICAgICAgICUtLjNzIGFuZCAlLi0zcyBhcmUgZXF1aXZhbGVudCB0byAlLTNzICopXG4gICAgbWF0Y2ggcGFkIHdpdGhcbiAgICB8IE5vX3BhZGRpbmcgLT4gKFxuICAgICAgbWF0Y2ggbWludXMsIHByZWMgd2l0aFxuICAgICAgICB8IF8sIE5vX3ByZWNpc2lvbiAtPiBwYXJzZV9jb252IE5vX3BhZGRpbmdcbiAgICAgICAgfCBmYWxzZSwgTGl0X3ByZWNpc2lvbiBuIC0+IHBhcnNlX2NvbnYgKExpdF9wYWRkaW5nIChSaWdodCwgbikpXG4gICAgICAgIHwgdHJ1ZSwgTGl0X3ByZWNpc2lvbiBuIC0+IHBhcnNlX2NvbnYgKExpdF9wYWRkaW5nIChMZWZ0LCBuKSlcbiAgICAgICAgfCBmYWxzZSwgQXJnX3ByZWNpc2lvbiAtPiBwYXJzZV9jb252IChBcmdfcGFkZGluZyBSaWdodClcbiAgICAgICAgfCB0cnVlLCBBcmdfcHJlY2lzaW9uIC0+IHBhcnNlX2NvbnYgKEFyZ19wYWRkaW5nIExlZnQpXG4gICAgKVxuICAgIHwgcGFkIC0+IHBhcnNlX2NvbnYgcGFkXG5cbiAgKCogQ2FzZSBhbmFseXNpcyBvbiBjb252ZXJzaW9uLiAqKVxuICBhbmQgcGFyc2VfY29udmVyc2lvbiA6IHR5cGUgeCB5IHogdCB1IHYgZSBmIC5cbiAgICAgIGludCAtPiBpbnQgLT4gaW50IC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT4gKHgsIHkpIHBhZGRpbmcgLT5cbiAgICAgICAgKHosIHQpIHByZWNpc2lvbiAtPiAodSwgdikgcGFkZGluZyAtPiBjaGFyIC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIHBsdXMgaGFzaCBzcGFjZSBpZ24gcGFkIHByZWMgcGFkcHJlYyBzeW1iIC0+XG4gICAgKCogRmxhZ3MgdXNlZCB0byBjaGVjayBvcHRpb24gdXNhZ2VzL2NvbXBhdGliaWxpdGllcy4gKilcbiAgICBsZXQgcGx1c191c2VkICA9IHJlZiBmYWxzZSBhbmQgaGFzaF91c2VkID0gcmVmIGZhbHNlXG4gICAgYW5kIHNwYWNlX3VzZWQgPSByZWYgZmFsc2UgYW5kIGlnbl91c2VkICAgPSByZWYgZmFsc2VcbiAgICBhbmQgcGFkX3VzZWQgICA9IHJlZiBmYWxzZSBhbmQgcHJlY191c2VkICA9IHJlZiBmYWxzZSBpblxuXG4gICAgKCogQWNjZXNzIHRvIG9wdGlvbnMsIHVwZGF0ZSBmbGFncy4gKilcbiAgICBsZXQgZ2V0X3BsdXMgICAgKCkgPSBwbHVzX3VzZWQgIDo9IHRydWU7IHBsdXNcbiAgICBhbmQgZ2V0X2hhc2ggICAoKSA9IGhhc2hfdXNlZCA6PSB0cnVlOyBoYXNoXG4gICAgYW5kIGdldF9zcGFjZSAgICgpID0gc3BhY2VfdXNlZCA6PSB0cnVlOyBzcGFjZVxuICAgIGFuZCBnZXRfaWduICAgICAoKSA9IGlnbl91c2VkICAgOj0gdHJ1ZTsgaWduXG4gICAgYW5kIGdldF9wYWQgICAgICgpID0gcGFkX3VzZWQgICA6PSB0cnVlOyBwYWRcbiAgICBhbmQgZ2V0X3ByZWMgICAgKCkgPSBwcmVjX3VzZWQgIDo9IHRydWU7IHByZWNcbiAgICBhbmQgZ2V0X3BhZHByZWMgKCkgPSBwYWRfdXNlZCAgIDo9IHRydWU7IHBhZHByZWMgaW5cblxuICAgIGxldCBnZXRfaW50X3BhZCAoKSA6ICh4LHkpIHBhZGRpbmcgPVxuICAgICAgKCogJTUuM2QgaXMgYWNjZXB0ZWQgYW5kIG1lYW5pbmdmdWw6IHBhZCB0byBsZW5ndGggNSB3aXRoXG4gICAgICAgICBzcGFjZXMsIGJ1dCBmaXJzdCBwYWQgd2l0aCB6ZXJvcyB1cHRvIGxlbmd0aCAzICgwLXBhZGRpbmdcbiAgICAgICAgIGlzIHRoZSBpbnRlcnByZXRhdGlvbiBvZiBcInByZWNpc2lvblwiIGZvciBpbnRlZ2VyIGZvcm1hdHMpLlxuXG4gICAgICAgICAlMDUuM2QgaXMgcmVkdW5kYW50OiBwYWQgdG8gbGVuZ3RoIDUgKndpdGggemVyb3MqLCBidXRcbiAgICAgICAgIGZpcnN0IHBhZCB3aXRoIHplcm9zLi4uIFRvIGFkZCBpbnN1bHQgdG8gdGhlIGluanVyeSwgdGhlXG4gICAgICAgICBsZWdhY3kgaW1wbGVtZW50YXRpb24gaWdub3JlcyB0aGUgMC1wYWRkaW5nIGluZGljYXRpb24gYW5kXG4gICAgICAgICBkb2VzIHRoZSA1IHBhZGRpbmcgd2l0aCBzcGFjZXMgaW5zdGVhZC4gV2UgcmV1c2UgdGhpc1xuICAgICAgICAgaW50ZXJwcmV0YXRpb24gZm9yIGNvbXBhdGliaWxpdHksIGJ1dCBzdGF0aWNhbGx5IHJlamVjdCB0aGlzXG4gICAgICAgICBmb3JtYXQgd2hlbiB0aGUgbGVnYWN5IG1vZGUgaXMgZGlzYWJsZWQsIHRvIHByb3RlY3Qgc3RyaWN0XG4gICAgICAgICB1c2VycyBmcm9tIHRoaXMgY29ybmVyIGNhc2UuICopXG4gICAgICAgbWF0Y2ggZ2V0X3BhZCAoKSwgZ2V0X3ByZWMgKCkgd2l0aFxuICAgICAgICAgfCBwYWQsIE5vX3ByZWNpc2lvbiAtPiBwYWRcbiAgICAgICAgIHwgTm9fcGFkZGluZywgXyAgICAgLT4gTm9fcGFkZGluZ1xuICAgICAgICAgfCBMaXRfcGFkZGluZyAoWmVyb3MsIG4pLCBfIC0+XG4gICAgICAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuIExpdF9wYWRkaW5nIChSaWdodCwgbilcbiAgICAgICAgICAgZWxzZSBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgJzAnIFwicHJlY2lzaW9uXCJcbiAgICAgICAgIHwgQXJnX3BhZGRpbmcgWmVyb3MsIF8gLT5cbiAgICAgICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW4gQXJnX3BhZGRpbmcgUmlnaHRcbiAgICAgICAgICAgZWxzZSBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgJzAnIFwicHJlY2lzaW9uXCJcbiAgICAgICAgIHwgTGl0X3BhZGRpbmcgXyBhcyBwYWQsIF8gLT4gcGFkXG4gICAgICAgICB8IEFyZ19wYWRkaW5nIF8gYXMgcGFkLCBfIC0+IHBhZCBpblxuXG4gICAgKCogQ2hlY2sgdGhhdCBwYWR0eSA8PiBaZXJvcy4gKilcbiAgICBsZXQgY2hlY2tfbm9fMCBzeW1iICh0eXBlIGEgYikgKHBhZCA6IChhLCBiKSBwYWRkaW5nKSA6IChhLGIpIHBhZGRpbmcgPVxuICAgICAgbWF0Y2ggcGFkIHdpdGhcbiAgICAgIHwgTm9fcGFkZGluZyAtPiBwYWRcbiAgICAgIHwgTGl0X3BhZGRpbmcgKChMZWZ0IHwgUmlnaHQpLCBfKSAtPiBwYWRcbiAgICAgIHwgQXJnX3BhZGRpbmcgKExlZnQgfCBSaWdodCkgLT4gcGFkXG4gICAgICB8IExpdF9wYWRkaW5nIChaZXJvcywgd2lkdGgpIC0+XG4gICAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuIExpdF9wYWRkaW5nIChSaWdodCwgd2lkdGgpXG4gICAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIHN5bWIgXCIwXCJcbiAgICAgIHwgQXJnX3BhZGRpbmcgWmVyb3MgLT5cbiAgICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW4gQXJnX3BhZGRpbmcgUmlnaHRcbiAgICAgICAgZWxzZSBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgc3ltYiBcIjBcIlxuICAgIGluXG5cbiAgICAoKiBHZXQgcGFkZGluZyBhcyBhIHBhZF9vcHRpb24gKHNlZSBcIiVfXCIsIFwiJXtcIiwgXCIlKFwiIGFuZCBcIiVbXCIpLlxuICAgICAgIChubyBuZWVkIGZvciBsZWdhY3kgbW9kZSB0d2Vha2luZywgdGhvc2Ugd2VyZSByZWplY3RlZCBieSB0aGVcbiAgICAgICBsZWdhY3kgcGFyc2VyIGFzIHdlbGwpICopXG4gICAgbGV0IG9wdF9vZl9wYWQgYyAodHlwZSBhKSAodHlwZSBiKSAocGFkIDogKGEsIGIpIHBhZGRpbmcpID0gbWF0Y2ggcGFkIHdpdGhcbiAgICAgIHwgTm9fcGFkZGluZyAtPiBOb25lXG4gICAgICB8IExpdF9wYWRkaW5nIChSaWdodCwgd2lkdGgpIC0+IFNvbWUgd2lkdGhcbiAgICAgIHwgTGl0X3BhZGRpbmcgKFplcm9zLCB3aWR0aCkgLT5cbiAgICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW4gU29tZSB3aWR0aFxuICAgICAgICBlbHNlIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBjIFwiJzAnXCJcbiAgICAgIHwgTGl0X3BhZGRpbmcgKExlZnQsIHdpZHRoKSAtPlxuICAgICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlbiBTb21lIHdpZHRoXG4gICAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIGMgXCInLSdcIlxuICAgICAgfCBBcmdfcGFkZGluZyBfIC0+IGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBjIFwiJyonXCJcbiAgICBpblxuICAgIGxldCBnZXRfcGFkX29wdCBjID0gb3B0X29mX3BhZCBjIChnZXRfcGFkICgpKSBpblxuICAgIGxldCBnZXRfcGFkcHJlY19vcHQgYyA9IG9wdF9vZl9wYWQgYyAoZ2V0X3BhZHByZWMgKCkpIGluXG5cbiAgICAoKiBHZXQgcHJlY2lzaW9uIGFzIGEgcHJlY19vcHRpb24gKHNlZSBcIiVfZlwiKS5cbiAgICAgICAobm8gbmVlZCBmb3IgbGVnYWN5IG1vZGUgdHdlYWtpbmcsIHRob3NlIHdlcmUgcmVqZWN0ZWQgYnkgdGhlXG4gICAgICAgbGVnYWN5IHBhcnNlciBhcyB3ZWxsKSAqKVxuICAgIGxldCBnZXRfcHJlY19vcHQgKCkgPSBtYXRjaCBnZXRfcHJlYyAoKSB3aXRoXG4gICAgICB8IE5vX3ByZWNpc2lvbiAgICAgICAtPiBOb25lXG4gICAgICB8IExpdF9wcmVjaXNpb24gbmRlYyAtPiBTb21lIG5kZWNcbiAgICAgIHwgQXJnX3ByZWNpc2lvbiAgICAgIC0+IGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCAnXycgXCInKidcIlxuICAgIGluXG5cbiAgICBsZXQgZm10X3Jlc3VsdCA9IG1hdGNoIHN5bWIgd2l0aFxuICAgIHwgJywnIC0+XG4gICAgICBwYXJzZSBzdHJfaW5kIGVuZF9pbmRcbiAgICB8ICdjJyAtPlxuICAgICAgbGV0IGNoYXJfZm9ybWF0IGZtdF9yZXN0ID0gKCogJWMgKilcbiAgICAgICAgaWYgZ2V0X2lnbiAoKVxuICAgICAgICB0aGVuIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKElnbm9yZWRfY2hhciwgZm10X3Jlc3QpKVxuICAgICAgICBlbHNlIEZtdF9FQkIgKENoYXIgZm10X3Jlc3QpXG4gICAgICBpblxuICAgICAgbGV0IHNjYW5fZm9ybWF0IGZtdF9yZXN0ID0gKCogJTBjICopXG4gICAgICAgIGlmIGdldF9pZ24gKClcbiAgICAgICAgdGhlbiBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChJZ25vcmVkX3NjYW5fbmV4dF9jaGFyLCBmbXRfcmVzdCkpXG4gICAgICAgIGVsc2UgRm10X0VCQiAoU2Nhbl9uZXh0X2NoYXIgZm10X3Jlc3QpXG4gICAgICBpblxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGJlZ2luIG1hdGNoIGdldF9wYWRfb3B0ICdjJyB3aXRoXG4gICAgICAgIHwgTm9uZSAtPiBjaGFyX2Zvcm1hdCBmbXRfcmVzdFxuICAgICAgICB8IFNvbWUgMCAtPiBzY2FuX2Zvcm1hdCBmbXRfcmVzdFxuICAgICAgICB8IFNvbWUgX24gLT5cbiAgICAgICAgICAgaWYgbm90IGxlZ2FjeV9iZWhhdmlvclxuICAgICAgICAgICB0aGVuIGludmFsaWRfbm9ubnVsbF9jaGFyX3dpZHRoIHN0cl9pbmRcbiAgICAgICAgICAgZWxzZSAoKiBsZWdhY3kgaWdub3JlcyAlYyB3aWR0aHMgKikgY2hhcl9mb3JtYXQgZm10X3Jlc3RcbiAgICAgIGVuZFxuICAgIHwgJ0MnIC0+XG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKElnbm9yZWRfY2FtbF9jaGFyLGZtdF9yZXN0KSlcbiAgICAgIGVsc2UgRm10X0VCQiAoQ2FtbF9jaGFyIGZtdF9yZXN0KVxuICAgIHwgJ3MnIC0+XG4gICAgICBsZXQgcGFkID0gY2hlY2tfbm9fMCBzeW1iIChnZXRfcGFkcHJlYyAoKSkgaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX3N0cmluZyAoZ2V0X3BhZHByZWNfb3B0ICdfJykgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgUGFkZGluZ19mbXRfRUJCIChwYWQnLCBmbXRfcmVzdCcpID1cbiAgICAgICAgICBtYWtlX3BhZGRpbmdfZm10X2ViYiBwYWQgZm10X3Jlc3QgaW5cbiAgICAgICAgRm10X0VCQiAoU3RyaW5nIChwYWQnLCBmbXRfcmVzdCcpKVxuICAgIHwgJ1MnIC0+XG4gICAgICBsZXQgcGFkID0gY2hlY2tfbm9fMCBzeW1iIChnZXRfcGFkcHJlYyAoKSkgaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX2NhbWxfc3RyaW5nIChnZXRfcGFkcHJlY19vcHQgJ18nKSBpblxuICAgICAgICBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChpZ25vcmVkLCBmbXRfcmVzdCkpXG4gICAgICBlbHNlXG4gICAgICAgIGxldCBQYWRkaW5nX2ZtdF9FQkIgKHBhZCcsIGZtdF9yZXN0JykgPVxuICAgICAgICAgIG1ha2VfcGFkZGluZ19mbXRfZWJiIHBhZCBmbXRfcmVzdCBpblxuICAgICAgICBGbXRfRUJCIChDYW1sX3N0cmluZyAocGFkJywgZm10X3Jlc3QnKSlcbiAgICB8ICdkJyB8ICdpJyB8ICd4JyB8ICdYJyB8ICdvJyB8ICd1JyAtPlxuICAgICAgbGV0IGljb252ID0gY29tcHV0ZV9pbnRfY29udiBwY3RfaW5kIHN0cl9pbmQgKGdldF9wbHVzICgpKSAoZ2V0X2hhc2ggKCkpXG4gICAgICAgIChnZXRfc3BhY2UgKCkpIHN5bWIgaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX2ludCAoaWNvbnYsIGdldF9wYWRfb3B0ICdfJykgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgUGFkcHJlY19mbXRfRUJCIChwYWQnLCBwcmVjJywgZm10X3Jlc3QnKSA9XG4gICAgICAgICAgbWFrZV9wYWRwcmVjX2ZtdF9lYmIgKGdldF9pbnRfcGFkICgpKSAoZ2V0X3ByZWMgKCkpIGZtdF9yZXN0IGluXG4gICAgICAgIEZtdF9FQkIgKEludCAoaWNvbnYsIHBhZCcsIHByZWMnLCBmbXRfcmVzdCcpKVxuICAgIHwgJ04nIC0+XG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgbGV0IGNvdW50ZXIgPSBUb2tlbl9jb3VudGVyIGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX3NjYW5fZ2V0X2NvdW50ZXIgY291bnRlciBpblxuICAgICAgICBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChpZ25vcmVkLCBmbXRfcmVzdCkpXG4gICAgICBlbHNlXG4gICAgICAgIEZtdF9FQkIgKFNjYW5fZ2V0X2NvdW50ZXIgKGNvdW50ZXIsIGZtdF9yZXN0KSlcbiAgICB8ICdsJyB8ICduJyB8ICdMJyB3aGVuIHN0cl9pbmQ9ZW5kX2luZCB8fCBub3QgKGlzX2ludF9iYXNlIHN0ci5bc3RyX2luZF0pIC0+XG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgbGV0IGNvdW50ZXIgPSBjb3VudGVyX29mX2NoYXIgc3ltYiBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9zY2FuX2dldF9jb3VudGVyIGNvdW50ZXIgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBGbXRfRUJCIChTY2FuX2dldF9jb3VudGVyIChjb3VudGVyLCBmbXRfcmVzdCkpXG4gICAgfCAnbCcgLT5cbiAgICAgIGxldCBpY29udiA9XG4gICAgICAgIGNvbXB1dGVfaW50X2NvbnYgcGN0X2luZCAoc3RyX2luZCArIDEpIChnZXRfcGx1cyAoKSkgKGdldF9oYXNoICgpKVxuICAgICAgICAgIChnZXRfc3BhY2UgKCkpIHN0ci5bc3RyX2luZF0gaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX2ludDMyIChpY29udiwgZ2V0X3BhZF9vcHQgJ18nKSBpblxuICAgICAgICBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChpZ25vcmVkLCBmbXRfcmVzdCkpXG4gICAgICBlbHNlXG4gICAgICAgIGxldCBQYWRwcmVjX2ZtdF9FQkIgKHBhZCcsIHByZWMnLCBmbXRfcmVzdCcpID1cbiAgICAgICAgICBtYWtlX3BhZHByZWNfZm10X2ViYiAoZ2V0X2ludF9wYWQgKCkpIChnZXRfcHJlYyAoKSkgZm10X3Jlc3QgaW5cbiAgICAgICAgRm10X0VCQiAoSW50MzIgKGljb252LCBwYWQnLCBwcmVjJywgZm10X3Jlc3QnKSlcbiAgICB8ICduJyAtPlxuICAgICAgbGV0IGljb252ID1cbiAgICAgICAgY29tcHV0ZV9pbnRfY29udiBwY3RfaW5kIChzdHJfaW5kICsgMSkgKGdldF9wbHVzICgpKVxuICAgICAgICAgIChnZXRfaGFzaCAoKSkgKGdldF9zcGFjZSAoKSkgc3RyLltzdHJfaW5kXSBpblxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlblxuICAgICAgICBsZXQgaWdub3JlZCA9IElnbm9yZWRfbmF0aXZlaW50IChpY29udiwgZ2V0X3BhZF9vcHQgJ18nKSBpblxuICAgICAgICBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChpZ25vcmVkLCBmbXRfcmVzdCkpXG4gICAgICBlbHNlXG4gICAgICAgIGxldCBQYWRwcmVjX2ZtdF9FQkIgKHBhZCcsIHByZWMnLCBmbXRfcmVzdCcpID1cbiAgICAgICAgICBtYWtlX3BhZHByZWNfZm10X2ViYiAoZ2V0X2ludF9wYWQgKCkpIChnZXRfcHJlYyAoKSkgZm10X3Jlc3QgaW5cbiAgICAgICAgRm10X0VCQiAoTmF0aXZlaW50IChpY29udiwgcGFkJywgcHJlYycsIGZtdF9yZXN0JykpXG4gICAgfCAnTCcgLT5cbiAgICAgIGxldCBpY29udiA9XG4gICAgICAgIGNvbXB1dGVfaW50X2NvbnYgcGN0X2luZCAoc3RyX2luZCArIDEpIChnZXRfcGx1cyAoKSkgKGdldF9oYXNoICgpKVxuICAgICAgICAgIChnZXRfc3BhY2UgKCkpIHN0ci5bc3RyX2luZF0gaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX2ludDY0IChpY29udiwgZ2V0X3BhZF9vcHQgJ18nKSBpblxuICAgICAgICBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChpZ25vcmVkLCBmbXRfcmVzdCkpXG4gICAgICBlbHNlXG4gICAgICAgIGxldCBQYWRwcmVjX2ZtdF9FQkIgKHBhZCcsIHByZWMnLCBmbXRfcmVzdCcpID1cbiAgICAgICAgICBtYWtlX3BhZHByZWNfZm10X2ViYiAoZ2V0X2ludF9wYWQgKCkpIChnZXRfcHJlYyAoKSkgZm10X3Jlc3QgaW5cbiAgICAgICAgRm10X0VCQiAoSW50NjQgKGljb252LCBwYWQnLCBwcmVjJywgZm10X3Jlc3QnKSlcbiAgICB8ICdmJyB8ICdlJyB8ICdFJyB8ICdnJyB8ICdHJyB8ICdGJyB8ICdoJyB8ICdIJyAtPlxuICAgICAgbGV0IGZjb252ID1cbiAgICAgICAgY29tcHV0ZV9mbG9hdF9jb252IHBjdF9pbmQgc3RyX2luZFxuICAgICAgICAgIChnZXRfcGx1cyAoKSkgKGdldF9oYXNoICgpKSAoZ2V0X3NwYWNlICgpKSBzeW1iIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9mbG9hdCAoZ2V0X3BhZF9vcHQgJ18nLCBnZXRfcHJlY19vcHQgKCkpIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgbGV0IFBhZHByZWNfZm10X0VCQiAocGFkJywgcHJlYycsIGZtdF9yZXN0JykgPVxuICAgICAgICAgIG1ha2VfcGFkcHJlY19mbXRfZWJiIChnZXRfcGFkICgpKSAoZ2V0X3ByZWMgKCkpIGZtdF9yZXN0IGluXG4gICAgICAgIEZtdF9FQkIgKEZsb2F0IChmY29udiwgcGFkJywgcHJlYycsIGZtdF9yZXN0JykpXG4gICAgfCAnYicgfCAnQicgLT5cbiAgICAgIGxldCBwYWQgPSBjaGVja19ub18wIHN5bWIgKGdldF9wYWRwcmVjICgpKSBpblxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlblxuICAgICAgICBsZXQgaWdub3JlZCA9IElnbm9yZWRfYm9vbCAoZ2V0X3BhZHByZWNfb3B0ICdfJykgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgUGFkZGluZ19mbXRfRUJCIChwYWQnLCBmbXRfcmVzdCcpID1cbiAgICAgICAgICBtYWtlX3BhZGRpbmdfZm10X2ViYiBwYWQgZm10X3Jlc3QgaW5cbiAgICAgICAgRm10X0VCQiAoQm9vbCAocGFkJywgZm10X3Jlc3QnKSlcbiAgICB8ICdhJyAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIEZtdF9FQkIgKEFscGhhIGZtdF9yZXN0KVxuICAgIHwgJ3QnIC0+XG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgRm10X0VCQiAoVGhldGEgZm10X3Jlc3QpXG4gICAgfCAncicgLT5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW4gRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoSWdub3JlZF9yZWFkZXIsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2UgRm10X0VCQiAoUmVhZGVyIGZtdF9yZXN0KVxuICAgIHwgJyEnIC0+XG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgRm10X0VCQiAoRmx1c2ggZm10X3Jlc3QpXG4gICAgfCAoJyUnIHwgJ0AnKSBhcyBjIC0+XG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgRm10X0VCQiAoQ2hhcl9saXRlcmFsIChjLCBmbXRfcmVzdCkpXG4gICAgfCAneycgLT5cbiAgICAgIGxldCBzdWJfZW5kID0gc2VhcmNoX3N1YmZvcm1hdF9lbmQgc3RyX2luZCBlbmRfaW5kICd9JyBpblxuICAgICAgbGV0IEZtdF9FQkIgc3ViX2ZtdCA9IHBhcnNlIHN0cl9pbmQgc3ViX2VuZCBpblxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3ViX2VuZCArIDIpIGVuZF9pbmQgaW5cbiAgICAgIGxldCBzdWJfZm10dHkgPSBmbXR0eV9vZl9mbXQgc3ViX2ZtdCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9mb3JtYXRfYXJnIChnZXRfcGFkX29wdCAnXycsIHN1Yl9mbXR0eSkgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBGbXRfRUJCIChGb3JtYXRfYXJnIChnZXRfcGFkX29wdCAneycsIHN1Yl9mbXR0eSwgZm10X3Jlc3QpKVxuICAgIHwgJygnIC0+XG4gICAgICBsZXQgc3ViX2VuZCA9IHNlYXJjaF9zdWJmb3JtYXRfZW5kIHN0cl9pbmQgZW5kX2luZCAnKScgaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN1Yl9lbmQgKyAyKSBlbmRfaW5kIGluXG4gICAgICBsZXQgRm10X0VCQiBzdWJfZm10ID0gcGFyc2Ugc3RyX2luZCBzdWJfZW5kIGluXG4gICAgICBsZXQgc3ViX2ZtdHR5ID0gZm10dHlfb2ZfZm10IHN1Yl9mbXQgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlblxuICAgICAgICBsZXQgaWdub3JlZCA9IElnbm9yZWRfZm9ybWF0X3N1YnN0IChnZXRfcGFkX29wdCAnXycsIHN1Yl9mbXR0eSkgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBGbXRfRUJCIChGb3JtYXRfc3Vic3QgKGdldF9wYWRfb3B0ICcoJywgc3ViX2ZtdHR5LCBmbXRfcmVzdCkpXG4gICAgfCAnWycgLT5cbiAgICAgIGxldCBuZXh0X2luZCwgY2hhcl9zZXQgPSBwYXJzZV9jaGFyX3NldCBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgbmV4dF9pbmQgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9zY2FuX2NoYXJfc2V0IChnZXRfcGFkX29wdCAnXycsIGNoYXJfc2V0KSBpblxuICAgICAgICBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChpZ25vcmVkLCBmbXRfcmVzdCkpXG4gICAgICBlbHNlXG4gICAgICAgIEZtdF9FQkIgKFNjYW5fY2hhcl9zZXQgKGdldF9wYWRfb3B0ICdbJywgY2hhcl9zZXQsIGZtdF9yZXN0KSlcbiAgICB8ICctJyB8ICcrJyB8ICcjJyB8ICcgJyB8ICdfJyAtPlxuICAgICAgZmFpbHdpdGhfbWVzc2FnZVxuICAgICAgICBcImludmFsaWQgZm9ybWF0ICVTOiBhdCBjaGFyYWN0ZXIgbnVtYmVyICVkLCBcXFxuICAgICAgICAgZmxhZyAlQyBpcyBvbmx5IGFsbG93ZWQgYWZ0ZXIgdGhlICclJScsIGJlZm9yZSBwYWRkaW5nIGFuZCBwcmVjaXNpb25cIlxuICAgICAgICBzdHIgcGN0X2luZCBzeW1iXG4gICAgfCBfIC0+XG4gICAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgICAgIFwiaW52YWxpZCBmb3JtYXQgJVM6IGF0IGNoYXJhY3RlciBudW1iZXIgJWQsIFxcXG4gICAgICAgICBpbnZhbGlkIGNvbnZlcnNpb24gXFxcIiUlJWNcXFwiXCIgc3RyIChzdHJfaW5kIC0gMSkgc3ltYlxuICAgIGluXG4gICAgKCogQ2hlY2sgZm9yIHVudXNlZCBvcHRpb25zLCBhbmQgcmVqZWN0IHRoZW0gYXMgaW5jb21wYXRpYmxlLlxuXG4gICAgICAgU3VjaCBjaGVja3MgbmVlZCB0byBiZSBkaXNhYmxlZCBpbiBsZWdhY3kgbW9kZSwgYXMgdGhlIGxlZ2FjeVxuICAgICAgIHBhcnNlciBzaWxlbnRseSBpZ25vcmVkIGluY29tcGF0aWJsZSBmbGFncy4gKilcbiAgICBpZiBub3QgbGVnYWN5X2JlaGF2aW9yIHRoZW4gYmVnaW5cbiAgICBpZiBub3QgIXBsdXNfdXNlZCAmJiBwbHVzIHRoZW5cbiAgICAgIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBzeW1iIFwiJysnXCI7XG4gICAgaWYgbm90ICFoYXNoX3VzZWQgJiYgaGFzaCB0aGVuXG4gICAgICBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgc3ltYiBcIicjJ1wiO1xuICAgIGlmIG5vdCAhc3BhY2VfdXNlZCAmJiBzcGFjZSB0aGVuXG4gICAgICBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgc3ltYiBcIicgJ1wiO1xuICAgIGlmIG5vdCAhcGFkX3VzZWQgICYmIFBhZGRpbmdfRUJCIHBhZCA8PiBQYWRkaW5nX0VCQiBOb19wYWRkaW5nIHRoZW5cbiAgICAgIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBzeW1iIFwiYHBhZGRpbmcnXCI7XG4gICAgaWYgbm90ICFwcmVjX3VzZWQgJiYgUHJlY2lzaW9uX0VCQiBwcmVjIDw+IFByZWNpc2lvbl9FQkIgTm9fcHJlY2lzaW9uIHRoZW5cbiAgICAgIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCAoaWYgaWduIHRoZW4gJ18nIGVsc2Ugc3ltYilcbiAgICAgICAgXCJgcHJlY2lzaW9uJ1wiO1xuICAgIGlmIGlnbiAmJiBwbHVzIHRoZW4gaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kICdfJyBcIicrJ1wiO1xuICAgIGVuZDtcbiAgICAoKiB0aGlzIGxhc3QgdGVzdCBtdXN0IG5vdCBiZSBkaXNhYmxlZCBpbiBsZWdhY3kgbW9kZSxcbiAgICAgICBhcyBpZ25vcmluZyBpdCB3b3VsZCB0eXBpY2FsbHkgcmVzdWx0IGluIGEgZGlmZmVyZW50IHR5cGluZ1xuICAgICAgIHRoYW4gd2hhdCB0aGUgbGVnYWN5IHBhcnNlciB1c2VkICopXG4gICAgaWYgbm90ICFpZ25fdXNlZCAmJiBpZ24gdGhlblxuICAgICAgYmVnaW4gbWF0Y2ggc3ltYiB3aXRoXG4gICAgICAgICgqIGFyZ3VtZW50LWxlc3MgZm9ybWF0cyBjYW4gc2FmZWx5IGJlIGlnbm9yZWQgaW4gbGVnYWN5IG1vZGUgKilcbiAgICAgICAgfCAoJ0AnIHwgJyUnIHwgJyEnIHwgJywnKSB3aGVuIGxlZ2FjeV9iZWhhdmlvciAtPiAoKVxuICAgICAgICB8IF8gLT5cbiAgICAgICAgICBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgc3ltYiBcIidfJ1wiXG4gICAgICBlbmQ7XG4gICAgZm10X3Jlc3VsdFxuXG4gICgqIFBhcnNlIGZvcm1hdHRpbmcgaW5mb3JtYXRpb24gKGFmdGVyICdAJykuICopXG4gIGFuZCBwYXJzZV9hZnRlcl9hdCA6IHR5cGUgZSBmIC4gaW50IC0+IGludCAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBzdHJfaW5kIGVuZF9pbmQgLT5cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIEZtdF9FQkIgKENoYXJfbGl0ZXJhbCAoJ0AnLCBFbmRfb2ZfZm9ybWF0KSlcbiAgICBlbHNlXG4gICAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICAgIHwgJ1snIC0+XG4gICAgICAgIHBhcnNlX3RhZyBmYWxzZSAoc3RyX2luZCArIDEpIGVuZF9pbmRcbiAgICAgIHwgJ10nIC0+XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChDbG9zZV9ib3gsIGZtdF9yZXN0KSlcbiAgICAgIHwgJ3snIC0+XG4gICAgICAgIHBhcnNlX3RhZyB0cnVlIChzdHJfaW5kICsgMSkgZW5kX2luZFxuICAgICAgfCAnfScgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKENsb3NlX3RhZywgZm10X3Jlc3QpKVxuICAgICAgfCAnLCcgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKEJyZWFrIChcIkAsXCIsIDAsIDApLCBmbXRfcmVzdCkpXG4gICAgICB8ICcgJyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoQnJlYWsgKFwiQCBcIiwgMSwgMCksIGZtdF9yZXN0KSlcbiAgICAgIHwgJzsnIC0+XG4gICAgICAgIHBhcnNlX2dvb2RfYnJlYWsgKHN0cl9pbmQgKyAxKSBlbmRfaW5kXG4gICAgICB8ICc/JyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoRkZsdXNoLCBmbXRfcmVzdCkpXG4gICAgICB8ICdcXG4nIC0+XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChGb3JjZV9uZXdsaW5lLCBmbXRfcmVzdCkpXG4gICAgICB8ICcuJyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoRmx1c2hfbmV3bGluZSwgZm10X3Jlc3QpKVxuICAgICAgfCAnPCcgLT5cbiAgICAgICAgcGFyc2VfbWFnaWNfc2l6ZSAoc3RyX2luZCArIDEpIGVuZF9pbmRcbiAgICAgIHwgJ0AnIC0+XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChFc2NhcGVkX2F0LCBmbXRfcmVzdCkpXG4gICAgICB8ICclJyB3aGVuIHN0cl9pbmQgKyAxIDwgZW5kX2luZCAmJiBzdHIuW3N0cl9pbmQgKyAxXSA9ICclJyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMikgZW5kX2luZCBpblxuICAgICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoRXNjYXBlZF9wZXJjZW50LCBmbXRfcmVzdCkpXG4gICAgICB8ICclJyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgICBGbXRfRUJCIChDaGFyX2xpdGVyYWwgKCdAJywgZm10X3Jlc3QpKVxuICAgICAgfCBjIC0+XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChTY2FuX2luZGljIGMsIGZtdF9yZXN0KSlcblxuICAoKiBUcnkgdG8gcmVhZCB0aGUgb3B0aW9uYWwgPG5hbWU+IGFmdGVyIFwiQHtcIiBvciBcIkBbXCIuICopXG4gIGFuZCBwYXJzZV90YWcgOiB0eXBlIGUgZiAuIGJvb2wgLT4gaW50IC0+IGludCAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBpc19vcGVuX3RhZyBzdHJfaW5kIGVuZF9pbmQgLT5cbiAgICB0cnlcbiAgICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gcmFpc2UgTm90X2ZvdW5kO1xuICAgICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgICB8ICc8JyAtPlxuICAgICAgICBsZXQgaW5kID0gU3RyaW5nLmluZGV4X2Zyb20gc3RyIChzdHJfaW5kICsgMSkgJz4nIGluXG4gICAgICAgIGlmIGluZCA+PSBlbmRfaW5kIHRoZW4gcmFpc2UgTm90X2ZvdW5kO1xuICAgICAgICBsZXQgc3ViX3N0ciA9IFN0cmluZy5zdWIgc3RyIHN0cl9pbmQgKGluZCAtIHN0cl9pbmQgKyAxKSBpblxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChpbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICAgIGxldCBGbXRfRUJCIHN1Yl9mbXQgPSBwYXJzZSBzdHJfaW5kIChpbmQgKyAxKSBpblxuICAgICAgICBsZXQgc3ViX2Zvcm1hdCA9IEZvcm1hdCAoc3ViX2ZtdCwgc3ViX3N0cikgaW5cbiAgICAgICAgbGV0IGZvcm1hdHRpbmcgPVxuICAgICAgICAgIGlmIGlzX29wZW5fdGFnIHRoZW4gT3Blbl90YWcgc3ViX2Zvcm1hdCBlbHNlIE9wZW5fYm94IHN1Yl9mb3JtYXQgaW5cbiAgICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19nZW4gKGZvcm1hdHRpbmcsIGZtdF9yZXN0KSlcbiAgICAgIHwgXyAtPlxuICAgICAgICByYWlzZSBOb3RfZm91bmRcbiAgICB3aXRoIE5vdF9mb3VuZCAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGxldCBzdWJfZm9ybWF0ID0gRm9ybWF0IChFbmRfb2ZfZm9ybWF0LCBcIlwiKSBpblxuICAgICAgbGV0IGZvcm1hdHRpbmcgPVxuICAgICAgICBpZiBpc19vcGVuX3RhZyB0aGVuIE9wZW5fdGFnIHN1Yl9mb3JtYXQgZWxzZSBPcGVuX2JveCBzdWJfZm9ybWF0IGluXG4gICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2dlbiAoZm9ybWF0dGluZywgZm10X3Jlc3QpKVxuXG4gICgqIFRyeSB0byByZWFkIHRoZSBvcHRpb25hbCA8d2lkdGggb2Zmc2V0PiBhZnRlciBcIkA7XCIuICopXG4gIGFuZCBwYXJzZV9nb29kX2JyZWFrIDogdHlwZSBlIGYgLiBpbnQgLT4gaW50IC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIHN0cl9pbmQgZW5kX2luZCAtPlxuICAgIGxldCBuZXh0X2luZCwgZm9ybWF0dGluZ19saXQgPVxuICAgICAgdHJ5XG4gICAgICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHx8IHN0ci5bc3RyX2luZF0gPD4gJzwnIHRoZW4gcmFpc2UgTm90X2ZvdW5kO1xuICAgICAgICBsZXQgc3RyX2luZF8xID0gcGFyc2Vfc3BhY2VzIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBtYXRjaCBzdHIuW3N0cl9pbmRfMV0gd2l0aFxuICAgICAgICB8ICcwJyAuLiAnOScgfCAnLScgLT4gKFxuICAgICAgICAgIGxldCBzdHJfaW5kXzIsIHdpZHRoID0gcGFyc2VfaW50ZWdlciBzdHJfaW5kXzEgZW5kX2luZCBpblxuICAgICAgICAgICAgbGV0IHN0cl9pbmRfMyA9IHBhcnNlX3NwYWNlcyBzdHJfaW5kXzIgZW5kX2luZCBpblxuICAgICAgICAgICAgbWF0Y2ggc3RyLltzdHJfaW5kXzNdIHdpdGhcbiAgICAgICAgICAgICAgfCAnPicgLT5cbiAgICAgICAgICAgICAgICBsZXQgcyA9IFN0cmluZy5zdWIgc3RyIChzdHJfaW5kLTIpIChzdHJfaW5kXzMtc3RyX2luZCszKSBpblxuICAgICAgICAgICAgICAgIHN0cl9pbmRfMyArIDEsIEJyZWFrIChzLCB3aWR0aCwgMClcbiAgICAgICAgICAgICAgfCAnMCcgLi4gJzknIHwgJy0nIC0+XG4gICAgICAgICAgICAgICAgbGV0IHN0cl9pbmRfNCwgb2Zmc2V0ID0gcGFyc2VfaW50ZWdlciBzdHJfaW5kXzMgZW5kX2luZCBpblxuICAgICAgICAgICAgICAgIGxldCBzdHJfaW5kXzUgPSBwYXJzZV9zcGFjZXMgc3RyX2luZF80IGVuZF9pbmQgaW5cbiAgICAgICAgICAgICAgICBpZiBzdHIuW3N0cl9pbmRfNV0gPD4gJz4nIHRoZW4gcmFpc2UgTm90X2ZvdW5kO1xuICAgICAgICAgICAgICAgIGxldCBzID0gU3RyaW5nLnN1YiBzdHIgKHN0cl9pbmQtMikgKHN0cl9pbmRfNS1zdHJfaW5kKzMpIGluXG4gICAgICAgICAgICAgICAgc3RyX2luZF81ICsgMSwgQnJlYWsgKHMsIHdpZHRoLCBvZmZzZXQpXG4gICAgICAgICAgICAgIHwgXyAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgICAgKVxuICAgICAgICB8IF8gLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICB3aXRoIE5vdF9mb3VuZCB8IEZhaWx1cmUgXyAtPlxuICAgICAgICBzdHJfaW5kLCBCcmVhayAoXCJAO1wiLCAxLCAwKVxuICAgIGluXG4gICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBuZXh0X2luZCBlbmRfaW5kIGluXG4gICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKGZvcm1hdHRpbmdfbGl0LCBmbXRfcmVzdCkpXG5cbiAgKCogUGFyc2UgdGhlIHNpemUgaW4gYSA8bj4uICopXG4gIGFuZCBwYXJzZV9tYWdpY19zaXplIDogdHlwZSBlIGYgLiBpbnQgLT4gaW50IC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIHN0cl9pbmQgZW5kX2luZCAtPlxuICAgIG1hdGNoXG4gICAgICB0cnlcbiAgICAgICAgbGV0IHN0cl9pbmRfMSA9IHBhcnNlX3NwYWNlcyBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgICAgbWF0Y2ggc3RyLltzdHJfaW5kXzFdIHdpdGhcbiAgICAgICAgfCAnMCcgLi4gJzknIHwgJy0nIC0+XG4gICAgICAgICAgbGV0IHN0cl9pbmRfMiwgc2l6ZSA9IHBhcnNlX2ludGVnZXIgc3RyX2luZF8xIGVuZF9pbmQgaW5cbiAgICAgICAgICBsZXQgc3RyX2luZF8zID0gcGFyc2Vfc3BhY2VzIHN0cl9pbmRfMiBlbmRfaW5kIGluXG4gICAgICAgICAgaWYgc3RyLltzdHJfaW5kXzNdIDw+ICc+JyB0aGVuIHJhaXNlIE5vdF9mb3VuZDtcbiAgICAgICAgICBsZXQgcyA9IFN0cmluZy5zdWIgc3RyIChzdHJfaW5kIC0gMikgKHN0cl9pbmRfMyAtIHN0cl9pbmQgKyAzKSBpblxuICAgICAgICAgIFNvbWUgKHN0cl9pbmRfMyArIDEsIE1hZ2ljX3NpemUgKHMsIHNpemUpKVxuICAgICAgICB8IF8gLT4gTm9uZVxuICAgICAgd2l0aCBOb3RfZm91bmQgfCBGYWlsdXJlIF8gLT5cbiAgICAgICAgTm9uZVxuICAgIHdpdGhcbiAgICB8IFNvbWUgKG5leHRfaW5kLCBmb3JtYXR0aW5nX2xpdCkgLT5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgbmV4dF9pbmQgZW5kX2luZCBpblxuICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKGZvcm1hdHRpbmdfbGl0LCBmbXRfcmVzdCkpXG4gICAgfCBOb25lIC0+XG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKFNjYW5faW5kaWMgJzwnLCBmbXRfcmVzdCkpXG5cbiAgKCogUGFyc2UgYW5kIGNvbnN0cnVjdCBhIGNoYXIgc2V0LiAqKVxuICBhbmQgcGFyc2VfY2hhcl9zZXQgc3RyX2luZCBlbmRfaW5kID1cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuXG4gICAgbGV0IGNoYXJfc2V0ID0gY3JlYXRlX2NoYXJfc2V0ICgpIGluXG4gICAgbGV0IGFkZF9jaGFyIGMgPVxuICAgICAgYWRkX2luX2NoYXJfc2V0IGNoYXJfc2V0IGM7XG4gICAgaW5cbiAgICBsZXQgYWRkX3JhbmdlIGMgYycgPVxuICAgICAgZm9yIGkgPSBpbnRfb2ZfY2hhciBjIHRvIGludF9vZl9jaGFyIGMnIGRvXG4gICAgICAgIGFkZF9pbl9jaGFyX3NldCBjaGFyX3NldCAoY2hhcl9vZl9pbnQgaSk7XG4gICAgICBkb25lO1xuICAgIGluXG5cbiAgICBsZXQgZmFpbF9zaW5nbGVfcGVyY2VudCBzdHJfaW5kID1cbiAgICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgICAgXCJpbnZhbGlkIGZvcm1hdCAlUzogJyUlJyBhbG9uZSBpcyBub3QgYWNjZXB0ZWQgaW4gY2hhcmFjdGVyIHNldHMsIFxcXG4gICAgICAgICB1c2UgJSUlJSBpbnN0ZWFkIGF0IHBvc2l0aW9uICVkLlwiIHN0ciBzdHJfaW5kXG4gICAgaW5cblxuICAgICgqIFBhcnNlIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgYSBjaGFyIHNldC4gKilcbiAgICBsZXQgcmVjIHBhcnNlX2NoYXJfc2V0X3N0YXJ0IHN0cl9pbmQgZW5kX2luZCA9XG4gICAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgICAgbGV0IGMgPSBzdHIuW3N0cl9pbmRdIGluXG4gICAgICBwYXJzZV9jaGFyX3NldF9hZnRlcl9jaGFyIChzdHJfaW5kICsgMSkgZW5kX2luZCBjXG5cbiAgICAoKiBQYXJzZSB0aGUgY29udGVudCBvZiBhIGNoYXIgc2V0IHVudGlsIHRoZSBmaXJzdCAnXScuICopXG4gICAgYW5kIHBhcnNlX2NoYXJfc2V0X2NvbnRlbnQgc3RyX2luZCBlbmRfaW5kID1cbiAgICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICAgIHwgJ10nIC0+XG4gICAgICAgIHN0cl9pbmQgKyAxXG4gICAgICB8ICctJyAtPlxuICAgICAgICBhZGRfY2hhciAnLSc7XG4gICAgICAgIHBhcnNlX2NoYXJfc2V0X2NvbnRlbnQgKHN0cl9pbmQgKyAxKSBlbmRfaW5kXG4gICAgICB8IGMgLT5cbiAgICAgICAgcGFyc2VfY2hhcl9zZXRfYWZ0ZXJfY2hhciAoc3RyX2luZCArIDEpIGVuZF9pbmQgY1xuXG4gICAgKCogVGVzdCBmb3IgcmFuZ2UgaW4gY2hhciBzZXQuICopXG4gICAgYW5kIHBhcnNlX2NoYXJfc2V0X2FmdGVyX2NoYXIgc3RyX2luZCBlbmRfaW5kIGMgPVxuICAgICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICAgIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgICAgfCAnXScgLT5cbiAgICAgICAgYWRkX2NoYXIgYztcbiAgICAgICAgc3RyX2luZCArIDFcbiAgICAgIHwgJy0nIC0+XG4gICAgICAgIHBhcnNlX2NoYXJfc2V0X2FmdGVyX21pbnVzIChzdHJfaW5kICsgMSkgZW5kX2luZCBjXG4gICAgICB8ICgnJScgfCAnQCcpIGFzIGMnIHdoZW4gYyA9ICclJyAtPlxuICAgICAgICBhZGRfY2hhciBjJztcbiAgICAgICAgcGFyc2VfY2hhcl9zZXRfY29udGVudCAoc3RyX2luZCArIDEpIGVuZF9pbmRcbiAgICAgIHwgYycgLT5cbiAgICAgICAgaWYgYyA9ICclJyB0aGVuIGZhaWxfc2luZ2xlX3BlcmNlbnQgc3RyX2luZDtcbiAgICAgICAgKCogbm90ZSB0aGF0ICdAJyBhbG9uZSBpcyBhY2NlcHRlZCwgYXMgZG9uZSBieSB0aGUgbGVnYWN5XG4gICAgICAgICAgIGltcGxlbWVudGF0aW9uOyB0aGUgZG9jdW1lbnRhdGlvbiBzcGVjaWZpY2FsbHkgcmVxdWlyZXMgJUBcbiAgICAgICAgICAgc28gd2UgY291bGQgd2FybiBvbiB0aGF0ICopXG4gICAgICAgIGFkZF9jaGFyIGM7XG4gICAgICAgIHBhcnNlX2NoYXJfc2V0X2FmdGVyX2NoYXIgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGMnXG5cbiAgICAoKiBNYW5hZ2UgcmFuZ2UgaW4gY2hhciBzZXQgKGV4Y2VwdCBpZiB0aGUgJy0nIHRoZSBsYXN0IGNoYXIgYmVmb3JlICddJykgKilcbiAgICBhbmQgcGFyc2VfY2hhcl9zZXRfYWZ0ZXJfbWludXMgc3RyX2luZCBlbmRfaW5kIGMgPVxuICAgICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICAgIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgICAgfCAnXScgLT5cbiAgICAgICAgYWRkX2NoYXIgYztcbiAgICAgICAgYWRkX2NoYXIgJy0nO1xuICAgICAgICBzdHJfaW5kICsgMVxuICAgICAgfCAnJScgLT5cbiAgICAgICAgaWYgc3RyX2luZCArIDEgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgICAgIGJlZ2luIG1hdGNoIHN0ci5bc3RyX2luZCArIDFdIHdpdGhcbiAgICAgICAgICB8ICgnJScgfCAnQCcpIGFzIGMnIC0+XG4gICAgICAgICAgICBhZGRfcmFuZ2UgYyBjJztcbiAgICAgICAgICAgIHBhcnNlX2NoYXJfc2V0X2NvbnRlbnQgKHN0cl9pbmQgKyAyKSBlbmRfaW5kXG4gICAgICAgICAgfCBfIC0+IGZhaWxfc2luZ2xlX3BlcmNlbnQgc3RyX2luZFxuICAgICAgICBlbmRcbiAgICAgIHwgYycgLT5cbiAgICAgICAgYWRkX3JhbmdlIGMgYyc7XG4gICAgICAgIHBhcnNlX2NoYXJfc2V0X2NvbnRlbnQgKHN0cl9pbmQgKyAxKSBlbmRfaW5kXG4gICAgaW5cbiAgICBsZXQgc3RyX2luZCwgcmV2ZXJzZSA9XG4gICAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgICAgIHwgJ14nIC0+IHN0cl9pbmQgKyAxLCB0cnVlXG4gICAgICAgIHwgXyAtPiBzdHJfaW5kLCBmYWxzZSBpblxuICAgIGxldCBuZXh0X2luZCA9IHBhcnNlX2NoYXJfc2V0X3N0YXJ0IHN0cl9pbmQgZW5kX2luZCBpblxuICAgIGxldCBjaGFyX3NldCA9IGZyZWV6ZV9jaGFyX3NldCBjaGFyX3NldCBpblxuICAgIG5leHRfaW5kLCAoaWYgcmV2ZXJzZSB0aGVuIHJldl9jaGFyX3NldCBjaGFyX3NldCBlbHNlIGNoYXJfc2V0KVxuXG4gICgqIENvbnN1bWUgYWxsIG5leHQgc3BhY2VzLCByYWlzZSBhbiBGYWlsdXJlIGlmIGVuZF9pbmQgaXMgcmVhY2hlZC4gKilcbiAgYW5kIHBhcnNlX3NwYWNlcyBzdHJfaW5kIGVuZF9pbmQgPVxuICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgaWYgc3RyLltzdHJfaW5kXSA9ICcgJyB0aGVuIHBhcnNlX3NwYWNlcyAoc3RyX2luZCArIDEpIGVuZF9pbmQgZWxzZSBzdHJfaW5kXG5cbiAgKCogUmVhZCBhIHBvc2l0aXZlIGludGVnZXIgZnJvbSB0aGUgc3RyaW5nLCByYWlzZSBhIEZhaWx1cmUgaWYgZW5kX2luZCBpc1xuICAgICByZWFjaGVkLiAqKVxuICBhbmQgcGFyc2VfcG9zaXRpdmUgc3RyX2luZCBlbmRfaW5kIGFjYyA9XG4gICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICB8ICcwJyAuLiAnOScgYXMgYyAtPlxuICAgICAgbGV0IG5ld19hY2MgPSBhY2MgKiAxMCArIChpbnRfb2ZfY2hhciBjIC0gaW50X29mX2NoYXIgJzAnKSBpblxuICAgICAgaWYgbmV3X2FjYyA+IFN5cy5tYXhfc3RyaW5nX2xlbmd0aCB0aGVuXG4gICAgICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgICAgICBcImludmFsaWQgZm9ybWF0ICVTOiBpbnRlZ2VyICVkIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbGltaXQgJWRcIlxuICAgICAgICAgIHN0ciBuZXdfYWNjIFN5cy5tYXhfc3RyaW5nX2xlbmd0aFxuICAgICAgZWxzZVxuICAgICAgICBwYXJzZV9wb3NpdGl2ZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgbmV3X2FjY1xuICAgIHwgXyAtPiBzdHJfaW5kLCBhY2NcblxuICAoKiBSZWFkIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgaW50ZWdlciBmcm9tIHRoZSBzdHJpbmcsIHJhaXNlIGEgRmFpbHVyZVxuICAgICBpZiBlbmRfaW5kIGlzIHJlYWNoZWQuICopXG4gIGFuZCBwYXJzZV9pbnRlZ2VyIHN0cl9pbmQgZW5kX2luZCA9XG4gICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICB8ICcwJyAuLiAnOScgLT4gcGFyc2VfcG9zaXRpdmUgc3RyX2luZCBlbmRfaW5kIDBcbiAgICB8ICctJyAtPiAoXG4gICAgICBpZiBzdHJfaW5kICsgMSA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICAgIG1hdGNoIHN0ci5bc3RyX2luZCArIDFdIHdpdGhcbiAgICAgIHwgJzAnIC4uICc5JyAtPlxuICAgICAgICBsZXQgbmV4dF9pbmQsIG4gPSBwYXJzZV9wb3NpdGl2ZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgMCBpblxuICAgICAgICBuZXh0X2luZCwgLW5cbiAgICAgIHwgYyAtPlxuICAgICAgICBleHBlY3RlZF9jaGFyYWN0ZXIgKHN0cl9pbmQgKyAxKSBcImRpZ2l0XCIgY1xuICAgIClcbiAgICB8IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbiAgKCogQWRkIGEgbGl0ZXJhbCB0byBhIGZvcm1hdCBmcm9tIGEgbGl0ZXJhbCBjaGFyYWN0ZXIgc3ViLXNlcXVlbmNlLiAqKVxuICBhbmQgYWRkX2xpdGVyYWwgOiB0eXBlIGEgZCBlIGYgLlxuICAgICAgaW50IC0+IGludCAtPiAoYSwgXywgXywgZCwgZSwgZikgZm10IC0+XG4gICAgICAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBsaXRfc3RhcnQgc3RyX2luZCBmbXQgLT4gbWF0Y2ggc3RyX2luZCAtIGxpdF9zdGFydCB3aXRoXG4gICAgfCAwICAgIC0+IEZtdF9FQkIgZm10XG4gICAgfCAxICAgIC0+IEZtdF9FQkIgKENoYXJfbGl0ZXJhbCAoc3RyLltsaXRfc3RhcnRdLCBmbXQpKVxuICAgIHwgc2l6ZSAtPiBGbXRfRUJCIChTdHJpbmdfbGl0ZXJhbCAoU3RyaW5nLnN1YiBzdHIgbGl0X3N0YXJ0IHNpemUsIGZtdCkpXG5cbiAgKCogU2VhcmNoIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgc3ViLWZvcm1hdFxuICAgICAoaS5lLiB0aGUgY29ycmVzcG9uZGluZyBcIiV9XCIgb3IgXCIlKVwiKSAqKVxuICBhbmQgc2VhcmNoX3N1YmZvcm1hdF9lbmQgc3RyX2luZCBlbmRfaW5kIGMgPVxuICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW5cbiAgICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgICAgXCJpbnZhbGlkIGZvcm1hdCAlUzogdW5jbG9zZWQgc3ViLWZvcm1hdCwgXFxcbiAgICAgICAgIGV4cGVjdGVkIFxcXCIlJSVjXFxcIiBhdCBjaGFyYWN0ZXIgbnVtYmVyICVkXCIgc3RyIGMgZW5kX2luZDtcbiAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICB8ICclJyAtPlxuICAgICAgaWYgc3RyX2luZCArIDEgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgICBpZiBzdHIuW3N0cl9pbmQgKyAxXSA9IGMgdGhlbiAoKiBFbmQgb2YgZm9ybWF0IGZvdW5kICopIHN0cl9pbmQgZWxzZVxuICAgICAgICBiZWdpbiBtYXRjaCBzdHIuW3N0cl9pbmQgKyAxXSB3aXRoXG4gICAgICAgIHwgJ18nIC0+XG4gICAgICAgICAgKCogU2VhcmNoIGZvciBcIiVfKFwiIG9yIFwiJV97XCIuICopXG4gICAgICAgICAgaWYgc3RyX2luZCArIDIgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgICAgICAgYmVnaW4gbWF0Y2ggc3RyLltzdHJfaW5kICsgMl0gd2l0aFxuICAgICAgICAgIHwgJ3snIC0+XG4gICAgICAgICAgICBsZXQgc3ViX2VuZCA9IHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdHJfaW5kICsgMykgZW5kX2luZCAnfScgaW5cbiAgICAgICAgICAgIHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdWJfZW5kICsgMikgZW5kX2luZCBjXG4gICAgICAgICAgfCAnKCcgLT5cbiAgICAgICAgICAgIGxldCBzdWJfZW5kID0gc2VhcmNoX3N1YmZvcm1hdF9lbmQgKHN0cl9pbmQgKyAzKSBlbmRfaW5kICcpJyBpblxuICAgICAgICAgICAgc2VhcmNoX3N1YmZvcm1hdF9lbmQgKHN1Yl9lbmQgKyAyKSBlbmRfaW5kIGNcbiAgICAgICAgICB8IF8gLT4gc2VhcmNoX3N1YmZvcm1hdF9lbmQgKHN0cl9pbmQgKyAzKSBlbmRfaW5kIGNcbiAgICAgICAgICBlbmRcbiAgICAgICAgfCAneycgLT5cbiAgICAgICAgICAoKiAley4uLiV9IHN1Yi1mb3JtYXQgZm91bmQuICopXG4gICAgICAgICAgbGV0IHN1Yl9lbmQgPSBzZWFyY2hfc3ViZm9ybWF0X2VuZCAoc3RyX2luZCArIDIpIGVuZF9pbmQgJ30nIGluXG4gICAgICAgICAgc2VhcmNoX3N1YmZvcm1hdF9lbmQgKHN1Yl9lbmQgKyAyKSBlbmRfaW5kIGNcbiAgICAgICAgfCAnKCcgLT5cbiAgICAgICAgICAoKiAlKC4uLiUpIHN1Yi1mb3JtYXQgZm91bmQuICopXG4gICAgICAgICAgbGV0IHN1Yl9lbmQgPSBzZWFyY2hfc3ViZm9ybWF0X2VuZCAoc3RyX2luZCArIDIpIGVuZF9pbmQgJyknIGluXG4gICAgICAgICAgc2VhcmNoX3N1YmZvcm1hdF9lbmQgKHN1Yl9lbmQgKyAyKSBlbmRfaW5kIGNcbiAgICAgICAgfCAnfScgLT5cbiAgICAgICAgICAoKiBFcnJvcjogJSguLi4lfS4gKilcbiAgICAgICAgICBleHBlY3RlZF9jaGFyYWN0ZXIgKHN0cl9pbmQgKyAxKSBcImNoYXJhY3RlciAnKSdcIiAnfSdcbiAgICAgICAgfCAnKScgLT5cbiAgICAgICAgICAoKiBFcnJvcjogJXsuLi4lKS4gKilcbiAgICAgICAgICBleHBlY3RlZF9jaGFyYWN0ZXIgKHN0cl9pbmQgKyAxKSBcImNoYXJhY3RlciAnfSdcIiAnKSdcbiAgICAgICAgfCBfIC0+XG4gICAgICAgICAgc2VhcmNoX3N1YmZvcm1hdF9lbmQgKHN0cl9pbmQgKyAyKSBlbmRfaW5kIGNcbiAgICAgICAgZW5kXG4gICAgfCBfIC0+IHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdHJfaW5kICsgMSkgZW5kX2luZCBjXG5cbiAgKCogQ2hlY2sgaWYgc3ltYiBpcyBhIHZhbGlkIGludCBjb252ZXJzaW9uIGFmdGVyIFwiJWxcIiwgXCIlblwiIG9yIFwiJUxcIiAqKVxuICBhbmQgaXNfaW50X2Jhc2Ugc3ltYiA9IG1hdGNoIHN5bWIgd2l0aFxuICAgIHwgJ2QnIHwgJ2knIHwgJ3gnIHwgJ1gnIHwgJ28nIHwgJ3UnIC0+IHRydWVcbiAgICB8IF8gLT4gZmFsc2VcblxuICAoKiBDb252ZXJ0IGEgY2hhciAobCwgbiBvciBMKSB0byBpdHMgYXNzb2NpYXRlZCBjb3VudGVyLiAqKVxuICBhbmQgY291bnRlcl9vZl9jaGFyIHN5bWIgPSBtYXRjaCBzeW1iIHdpdGhcbiAgICB8ICdsJyAtPiBMaW5lX2NvdW50ZXIgIHwgJ24nIC0+IENoYXJfY291bnRlclxuICAgIHwgJ0wnIC0+IFRva2VuX2NvdW50ZXIgfCBfIC0+IGFzc2VydCBmYWxzZVxuXG4gICgqIENvbnZlcnQgKHBsdXMsIHN5bWIpIHRvIGl0cyBhc3NvY2lhdGVkIGludF9jb252LiAqKVxuICBhbmQgY29tcHV0ZV9pbnRfY29udiBwY3RfaW5kIHN0cl9pbmQgcGx1cyBoYXNoIHNwYWNlIHN5bWIgPVxuICAgIG1hdGNoIHBsdXMsIGhhc2gsIHNwYWNlLCBzeW1iIHdpdGhcbiAgICB8IGZhbHNlLCBmYWxzZSwgZmFsc2UsICdkJyAtPiBJbnRfZCAgfCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAnaScgLT4gSW50X2lcbiAgICB8IGZhbHNlLCBmYWxzZSwgIHRydWUsICdkJyAtPiBJbnRfc2QgfCBmYWxzZSwgZmFsc2UsICB0cnVlLCAnaScgLT4gSW50X3NpXG4gICAgfCAgdHJ1ZSwgZmFsc2UsIGZhbHNlLCAnZCcgLT4gSW50X3BkIHwgIHRydWUsIGZhbHNlLCBmYWxzZSwgJ2knIC0+IEludF9waVxuICAgIHwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgJ3gnIC0+IEludF94ICB8IGZhbHNlLCBmYWxzZSwgZmFsc2UsICdYJyAtPiBJbnRfWFxuICAgIHwgZmFsc2UsICB0cnVlLCBmYWxzZSwgJ3gnIC0+IEludF9DeCB8IGZhbHNlLCAgdHJ1ZSwgZmFsc2UsICdYJyAtPiBJbnRfQ1hcbiAgICB8IGZhbHNlLCBmYWxzZSwgZmFsc2UsICdvJyAtPiBJbnRfb1xuICAgIHwgZmFsc2UsICB0cnVlLCBmYWxzZSwgJ28nIC0+IEludF9Db1xuICAgIHwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgJ3UnIC0+IEludF91XG4gICAgfCBmYWxzZSwgIHRydWUsIGZhbHNlLCAnZCcgLT4gSW50X0NkXG4gICAgfCBmYWxzZSwgIHRydWUsIGZhbHNlLCAnaScgLT4gSW50X0NpXG4gICAgfCBmYWxzZSwgIHRydWUsIGZhbHNlLCAndScgLT4gSW50X0N1XG4gICAgfCBfLCB0cnVlLCBfLCAneCcgd2hlbiBsZWdhY3lfYmVoYXZpb3IgLT4gSW50X0N4XG4gICAgfCBfLCB0cnVlLCBfLCAnWCcgd2hlbiBsZWdhY3lfYmVoYXZpb3IgLT4gSW50X0NYXG4gICAgfCBfLCB0cnVlLCBfLCAnbycgd2hlbiBsZWdhY3lfYmVoYXZpb3IgLT4gSW50X0NvXG4gICAgfCBfLCB0cnVlLCBfLCAoJ2QnIHwgJ2knIHwgJ3UnKSAtPlxuICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW4gKCogaWdub3JlICopXG4gICAgICAgIGNvbXB1dGVfaW50X2NvbnYgcGN0X2luZCBzdHJfaW5kIHBsdXMgZmFsc2Ugc3BhY2Ugc3ltYlxuICAgICAgZWxzZSBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgc3ltYiBcIicjJ1wiXG4gICAgfCB0cnVlLCBfLCB0cnVlLCBfIC0+XG4gICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlblxuICAgICAgICAoKiBwbHVzIGFuZCBzcGFjZTogbGVnYWN5IGltcGxlbWVudGF0aW9uIHByZWZlcnMgcGx1cyAqKVxuICAgICAgICBjb21wdXRlX2ludF9jb252IHBjdF9pbmQgc3RyX2luZCBwbHVzIGhhc2ggZmFsc2Ugc3ltYlxuICAgICAgZWxzZSBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgJyAnIFwiJysnXCJcbiAgICB8IGZhbHNlLCBfLCB0cnVlLCBfICAgIC0+XG4gICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlbiAoKiBpZ25vcmUgKilcbiAgICAgICAgY29tcHV0ZV9pbnRfY29udiBwY3RfaW5kIHN0cl9pbmQgcGx1cyBoYXNoIGZhbHNlIHN5bWJcbiAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIHN5bWIgXCInICdcIlxuICAgIHwgdHJ1ZSwgXywgZmFsc2UsIF8gICAgLT5cbiAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuICgqIGlnbm9yZSAqKVxuICAgICAgICBjb21wdXRlX2ludF9jb252IHBjdF9pbmQgc3RyX2luZCBmYWxzZSBoYXNoIHNwYWNlIHN5bWJcbiAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIHN5bWIgXCInKydcIlxuICAgIHwgZmFsc2UsIF8sIGZhbHNlLCBfIC0+IGFzc2VydCBmYWxzZVxuXG4gICgqIENvbnZlcnQgKHBsdXMsIHNwYWNlLCBzeW1iKSB0byBpdHMgYXNzb2NpYXRlZCBmbG9hdF9jb252LiAqKVxuICBhbmQgY29tcHV0ZV9mbG9hdF9jb252IHBjdF9pbmQgc3RyX2luZCBwbHVzIGhhc2ggc3BhY2Ugc3ltYiA9XG4gICAgbGV0IGZsYWcgPSBtYXRjaCBwbHVzLCBzcGFjZSB3aXRoXG4gICAgfCBmYWxzZSwgZmFsc2UgLT4gRmxvYXRfZmxhZ19cbiAgICB8IGZhbHNlLCAgdHJ1ZSAtPiBGbG9hdF9mbGFnX3NcbiAgICB8ICB0cnVlLCBmYWxzZSAtPiBGbG9hdF9mbGFnX3BcbiAgICB8ICB0cnVlLCAgdHJ1ZSAtPlxuICAgICAgKCogcGx1cyBhbmQgc3BhY2U6IGxlZ2FjeSBpbXBsZW1lbnRhdGlvbiBwcmVmZXJzIHBsdXMgKilcbiAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuIEZsb2F0X2ZsYWdfcFxuICAgICAgZWxzZSBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgJyAnIFwiJysnXCIgaW5cbiAgICBsZXQga2luZCA9IG1hdGNoIGhhc2gsIHN5bWIgd2l0aFxuICAgIHwgXywgJ2YnIC0+IEZsb2F0X2ZcbiAgICB8IF8sICdlJyAtPiBGbG9hdF9lXG4gICAgfCBfLCAnRScgLT4gRmxvYXRfRVxuICAgIHwgXywgJ2cnIC0+IEZsb2F0X2dcbiAgICB8IF8sICdHJyAtPiBGbG9hdF9HXG4gICAgfCBfLCAnaCcgLT4gRmxvYXRfaFxuICAgIHwgXywgJ0gnIC0+IEZsb2F0X0hcbiAgICB8IGZhbHNlLCAnRicgLT4gRmxvYXRfRlxuICAgIHwgdHJ1ZSwgJ0YnIC0+IEZsb2F0X0NGXG4gICAgfCBfIC0+IGFzc2VydCBmYWxzZSBpblxuICAgIGZsYWcsIGtpbmRcblxuICAoKiBSYWlzZSBbRmFpbHVyZV0gd2l0aCBhIGZyaWVuZGx5IGVycm9yIG1lc3NhZ2UgYWJvdXQgaW5jb21wYXRpYmxlIG9wdGlvbnMuKilcbiAgYW5kIGluY29tcGF0aWJsZV9mbGFnIDogdHlwZSBhIC4gaW50IC0+IGludCAtPiBjaGFyIC0+IHN0cmluZyAtPiBhID1cbiAgICBmdW4gcGN0X2luZCBzdHJfaW5kIHN5bWIgb3B0aW9uIC0+XG4gICAgICBsZXQgc3ViZm10ID0gU3RyaW5nLnN1YiBzdHIgcGN0X2luZCAoc3RyX2luZCAtIHBjdF9pbmQpIGluXG4gICAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgICAgIFwiaW52YWxpZCBmb3JtYXQgJVM6IGF0IGNoYXJhY3RlciBudW1iZXIgJWQsIFxcXG4gICAgICAgICAlcyBpcyBpbmNvbXBhdGlibGUgd2l0aCAnJWMnIGluIHN1Yi1mb3JtYXQgJVNcIlxuICAgICAgICBzdHIgcGN0X2luZCBvcHRpb24gc3ltYiBzdWJmbXRcblxuICBpbiBwYXJzZSAwIChTdHJpbmcubGVuZ3RoIHN0cilcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICgqIEd1YXJkZWQgc3RyaW5nIHRvIGZvcm1hdCBjb252ZXJzaW9ucyAqKVxuXG4oKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGEgZm9ybWF0IGFjY29yZGluZyB0byBhbiBmbXR0eS4gKilcbigqIFJhaXNlIFtGYWlsdXJlXSB3aXRoIGFuIGVycm9yIG1lc3NhZ2UgaW4gY2FzZSBvZiB0eXBlIG1pc21hdGNoLiAqKVxubGV0IGZvcm1hdF9vZl9zdHJpbmdfZm10dHkgc3RyIGZtdHR5ID1cbiAgbGV0IEZtdF9FQkIgZm10ID0gZm10X2ViYl9vZl9zdHJpbmcgc3RyIGluXG4gIHRyeSBGb3JtYXQgKHR5cGVfZm9ybWF0IGZtdCBmbXR0eSwgc3RyKVxuICB3aXRoIFR5cGVfbWlzbWF0Y2ggLT5cbiAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgICBcImJhZCBpbnB1dDogZm9ybWF0IHR5cGUgbWlzbWF0Y2ggYmV0d2VlbiAlUyBhbmQgJVNcIlxuICAgICAgc3RyIChzdHJpbmdfb2ZfZm10dHkgZm10dHkpXG5cbigqIENvbnZlcnQgYSBzdHJpbmcgdG8gYSBmb3JtYXQgY29tcGF0aWJsZSB3aXRoIGFuIG90aGVyIGZvcm1hdC4gKilcbigqIFJhaXNlIFtGYWlsdXJlXSB3aXRoIGFuIGVycm9yIG1lc3NhZ2UgaW4gY2FzZSBvZiB0eXBlIG1pc21hdGNoLiAqKVxubGV0IGZvcm1hdF9vZl9zdHJpbmdfZm9ybWF0IHN0ciAoRm9ybWF0IChmbXQnLCBzdHInKSkgPVxuICBsZXQgRm10X0VCQiBmbXQgPSBmbXRfZWJiX29mX3N0cmluZyBzdHIgaW5cbiAgdHJ5IEZvcm1hdCAodHlwZV9mb3JtYXQgZm10IChmbXR0eV9vZl9mbXQgZm10JyksIHN0cilcbiAgd2l0aCBUeXBlX21pc21hdGNoIC0+XG4gICAgZmFpbHdpdGhfbWVzc2FnZVxuICAgICAgXCJiYWQgaW5wdXQ6IGZvcm1hdCB0eXBlIG1pc21hdGNoIGJldHdlZW4gJVMgYW5kICVTXCIgc3RyIHN0cidcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgWGF2aWVyIExlcm95IGFuZCBQaWVycmUgV2VpcywgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxub3BlbiBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3Ncbm9wZW4gQ2FtbGludGVybmFsRm9ybWF0XG5cbmxldCBrZnByaW50ZiBrIG8gKEZvcm1hdCAoZm10LCBfKSkgPVxuICBtYWtlX3ByaW50ZiAoZnVuIGFjYyAtPiBvdXRwdXRfYWNjIG8gYWNjOyBrIG8pIEVuZF9vZl9hY2MgZm10XG5sZXQga2JwcmludGYgayBiIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbWFrZV9wcmludGYgKGZ1biBhY2MgLT4gYnVmcHV0X2FjYyBiIGFjYzsgayBiKSBFbmRfb2ZfYWNjIGZtdFxubGV0IGlrZnByaW50ZiBrIG9jIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbWFrZV9pcHJpbnRmIGsgb2MgZm10XG5sZXQgaWticHJpbnRmID0gaWtmcHJpbnRmXG5cbmxldCBmcHJpbnRmIG9jIGZtdCA9IGtmcHJpbnRmIGlnbm9yZSBvYyBmbXRcbmxldCBicHJpbnRmIGIgZm10ID0ga2JwcmludGYgaWdub3JlIGIgZm10XG5sZXQgaWZwcmludGYgb2MgZm10ID0gaWtmcHJpbnRmIGlnbm9yZSBvYyBmbXRcbmxldCBpYnByaW50ZiBiIGZtdCA9IGlrYnByaW50ZiBpZ25vcmUgYiBmbXRcbmxldCBwcmludGYgZm10ID0gZnByaW50ZiBzdGRvdXQgZm10XG5sZXQgZXByaW50ZiBmbXQgPSBmcHJpbnRmIHN0ZGVyciBmbXRcblxubGV0IGtzcHJpbnRmIGsgKEZvcm1hdCAoZm10LCBfKSkgPVxuICBsZXQgaycgYWNjID1cbiAgICBsZXQgYnVmID0gQnVmZmVyLmNyZWF0ZSA2NCBpblxuICAgIHN0cnB1dF9hY2MgYnVmIGFjYztcbiAgICBrIChCdWZmZXIuY29udGVudHMgYnVmKSBpblxuICBtYWtlX3ByaW50ZiBrJyBFbmRfb2ZfYWNjIGZtdFxuXG5sZXQgc3ByaW50ZiBmbXQgPSBrc3ByaW50ZiAoZnVuIHMgLT4gcykgZm10XG5cbmxldCBrcHJpbnRmID0ga3NwcmludGZcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICBEYW1pZW4gRG9saWdleiwgcHJvamV0IFBhcmEsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSBrZXkgPSBzdHJpbmdcbnR5cGUgZG9jID0gc3RyaW5nXG50eXBlIHVzYWdlX21zZyA9IHN0cmluZ1xudHlwZSBhbm9uX2Z1biA9IChzdHJpbmcgLT4gdW5pdClcblxudHlwZSBzcGVjID1cbiAgfCBVbml0IG9mICh1bml0IC0+IHVuaXQpICAgICAoKiBDYWxsIHRoZSBmdW5jdGlvbiB3aXRoIHVuaXQgYXJndW1lbnQgKilcbiAgfCBCb29sIG9mIChib29sIC0+IHVuaXQpICAgICAoKiBDYWxsIHRoZSBmdW5jdGlvbiB3aXRoIGEgYm9vbCBhcmd1bWVudCAqKVxuICB8IFNldCBvZiBib29sIHJlZiAgICAgICAgICAgICgqIFNldCB0aGUgcmVmZXJlbmNlIHRvIHRydWUgKilcbiAgfCBDbGVhciBvZiBib29sIHJlZiAgICAgICAgICAoKiBTZXQgdGhlIHJlZmVyZW5jZSB0byBmYWxzZSAqKVxuICB8IFN0cmluZyBvZiAoc3RyaW5nIC0+IHVuaXQpICgqIENhbGwgdGhlIGZ1bmN0aW9uIHdpdGggYSBzdHJpbmcgYXJndW1lbnQgKilcbiAgfCBTZXRfc3RyaW5nIG9mIHN0cmluZyByZWYgICAoKiBTZXQgdGhlIHJlZmVyZW5jZSB0byB0aGUgc3RyaW5nIGFyZ3VtZW50ICopXG4gIHwgSW50IG9mIChpbnQgLT4gdW5pdCkgICAgICAgKCogQ2FsbCB0aGUgZnVuY3Rpb24gd2l0aCBhbiBpbnQgYXJndW1lbnQgKilcbiAgfCBTZXRfaW50IG9mIGludCByZWYgICAgICAgICAoKiBTZXQgdGhlIHJlZmVyZW5jZSB0byB0aGUgaW50IGFyZ3VtZW50ICopXG4gIHwgRmxvYXQgb2YgKGZsb2F0IC0+IHVuaXQpICAgKCogQ2FsbCB0aGUgZnVuY3Rpb24gd2l0aCBhIGZsb2F0IGFyZ3VtZW50ICopXG4gIHwgU2V0X2Zsb2F0IG9mIGZsb2F0IHJlZiAgICAgKCogU2V0IHRoZSByZWZlcmVuY2UgdG8gdGhlIGZsb2F0IGFyZ3VtZW50ICopXG4gIHwgVHVwbGUgb2Ygc3BlYyBsaXN0ICAgICAgICAgKCogVGFrZSBzZXZlcmFsIGFyZ3VtZW50cyBhY2NvcmRpbmcgdG8gdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlYyBsaXN0ICopXG4gIHwgU3ltYm9sIG9mIHN0cmluZyBsaXN0ICogKHN0cmluZyAtPiB1bml0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIFRha2Ugb25lIG9mIHRoZSBzeW1ib2xzIGFzIGFyZ3VtZW50IGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGwgdGhlIGZ1bmN0aW9uIHdpdGggdGhlIHN5bWJvbC4gKilcbiAgfCBSZXN0IG9mIChzdHJpbmcgLT4gdW5pdCkgICAoKiBTdG9wIGludGVycHJldGluZyBrZXl3b3JkcyBhbmQgY2FsbCB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiB3aXRoIGVhY2ggcmVtYWluaW5nIGFyZ3VtZW50ICopXG4gIHwgUmVzdF9hbGwgb2YgKHN0cmluZyBsaXN0IC0+IHVuaXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogU3RvcCBpbnRlcnByZXRpbmcga2V5d29yZHMgYW5kIGNhbGwgdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gd2l0aCBhbGwgcmVtYWluaW5nIGFyZ3VtZW50cy4gKilcbiAgfCBFeHBhbmQgb2YgKHN0cmluZyAtPiBzdHJpbmcgYXJyYXkpICgqIElmIHRoZSByZW1haW5pbmcgYXJndW1lbnRzIHRvIHByb2Nlc3NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSBvZiB0aGUgZm9ybVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1tcIi1mb29cIjsgXCJhcmdcIl0gQCByZXN0XSB3aGVyZSBcImZvb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcyByZWdpc3RlcmVkIGFzIFtFeHBhbmQgZl0sIHRoZW4gdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHMgW2YgXCJhcmdcIiBAIHJlc3RdIGFyZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc2VkLiBPbmx5IGFsbG93ZWQgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwYXJzZV9hbmRfZXhwYW5kX2FyZ3ZfZHluYW1pY10uICopXG5cbmV4Y2VwdGlvbiBCYWQgb2Ygc3RyaW5nXG5leGNlcHRpb24gSGVscCBvZiBzdHJpbmdcblxudHlwZSBlcnJvciA9XG4gIHwgVW5rbm93biBvZiBzdHJpbmdcbiAgfCBXcm9uZyBvZiBzdHJpbmcgKiBzdHJpbmcgKiBzdHJpbmcgICgqIG9wdGlvbiwgYWN0dWFsLCBleHBlY3RlZCAqKVxuICB8IE1pc3Npbmcgb2Ygc3RyaW5nXG4gIHwgTWVzc2FnZSBvZiBzdHJpbmdcblxuZXhjZXB0aW9uIFN0b3Agb2YgZXJyb3IgKCogdXNlZCBpbnRlcm5hbGx5ICopXG5cbm9wZW4gUHJpbnRmXG5cbmxldCByZWMgYXNzb2MzIHggbCA9XG4gIG1hdGNoIGwgd2l0aFxuICB8IFtdIC0+IHJhaXNlIE5vdF9mb3VuZFxuICB8ICh5MSwgeTIsIF8pIDo6IF8gd2hlbiB5MSA9IHggLT4geTJcbiAgfCBfIDo6IHQgLT4gYXNzb2MzIHggdFxuXG5cbmxldCBzcGxpdCBzID1cbiAgbGV0IGkgPSBTdHJpbmcuaW5kZXggcyAnPScgaW5cbiAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggcyBpblxuICBTdHJpbmcuc3ViIHMgMCBpLCBTdHJpbmcuc3ViIHMgKGkrMSkgKGxlbi0oaSsxKSlcblxuXG5sZXQgbWFrZV9zeW1saXN0IHByZWZpeCBzZXAgc3VmZml4IGwgPVxuICBtYXRjaCBsIHdpdGhcbiAgfCBbXSAtPiBcIjxub25lPlwiXG4gIHwgaDo6dCAtPiAoTGlzdC5mb2xkX2xlZnQgKGZ1biB4IHkgLT4geCBeIHNlcCBeIHkpIChwcmVmaXggXiBoKSB0KSBeIHN1ZmZpeFxuXG5cbmxldCBwcmludF9zcGVjIGJ1ZiAoa2V5LCBzcGVjLCBkb2MpID1cbiAgaWYgU3RyaW5nLmxlbmd0aCBkb2MgPiAwIHRoZW5cbiAgICBtYXRjaCBzcGVjIHdpdGhcbiAgICB8IFN5bWJvbCAobCwgXykgLT5cbiAgICAgICAgYnByaW50ZiBidWYgXCIgICVzICVzJXNcXG5cIiBrZXkgKG1ha2Vfc3ltbGlzdCBcIntcIiBcInxcIiBcIn1cIiBsKSBkb2NcbiAgICB8IF8gLT5cbiAgICAgICAgYnByaW50ZiBidWYgXCIgICVzICVzXFxuXCIga2V5IGRvY1xuXG5cbmxldCBoZWxwX2FjdGlvbiAoKSA9IHJhaXNlIChTdG9wIChVbmtub3duIFwiLWhlbHBcIikpXG5cbmxldCBhZGRfaGVscCBzcGVjbGlzdCA9XG4gIGxldCBhZGQxID1cbiAgICB0cnkgaWdub3JlIChhc3NvYzMgXCItaGVscFwiIHNwZWNsaXN0KTsgW11cbiAgICB3aXRoIE5vdF9mb3VuZCAtPlxuICAgICAgICAgICAgW1wiLWhlbHBcIiwgVW5pdCBoZWxwX2FjdGlvbiwgXCIgRGlzcGxheSB0aGlzIGxpc3Qgb2Ygb3B0aW9uc1wiXVxuICBhbmQgYWRkMiA9XG4gICAgdHJ5IGlnbm9yZSAoYXNzb2MzIFwiLS1oZWxwXCIgc3BlY2xpc3QpOyBbXVxuICAgIHdpdGggTm90X2ZvdW5kIC0+XG4gICAgICAgICAgICBbXCItLWhlbHBcIiwgVW5pdCBoZWxwX2FjdGlvbiwgXCIgRGlzcGxheSB0aGlzIGxpc3Qgb2Ygb3B0aW9uc1wiXVxuICBpblxuICBzcGVjbGlzdCBAIChhZGQxIEAgYWRkMilcblxuXG5sZXQgdXNhZ2VfYiBidWYgc3BlY2xpc3QgZXJybXNnID1cbiAgYnByaW50ZiBidWYgXCIlc1xcblwiIGVycm1zZztcbiAgTGlzdC5pdGVyIChwcmludF9zcGVjIGJ1ZikgKGFkZF9oZWxwIHNwZWNsaXN0KVxuXG5cbmxldCB1c2FnZV9zdHJpbmcgc3BlY2xpc3QgZXJybXNnID1cbiAgbGV0IGIgPSBCdWZmZXIuY3JlYXRlIDIwMCBpblxuICB1c2FnZV9iIGIgc3BlY2xpc3QgZXJybXNnO1xuICBCdWZmZXIuY29udGVudHMgYlxuXG5cbmxldCB1c2FnZSBzcGVjbGlzdCBlcnJtc2cgPVxuICBlcHJpbnRmIFwiJXNcIiAodXNhZ2Vfc3RyaW5nIHNwZWNsaXN0IGVycm1zZylcblxuXG5sZXQgY3VycmVudCA9IHJlZiAwXG5cbmxldCBib29sX29mX3N0cmluZ19vcHQgeCA9XG4gIHRyeSBTb21lIChib29sX29mX3N0cmluZyB4KVxuICB3aXRoIEludmFsaWRfYXJndW1lbnQgXyAtPiBOb25lXG5cbmxldCBpbnRfb2Zfc3RyaW5nX29wdCB4ID1cbiAgdHJ5IFNvbWUgKGludF9vZl9zdHJpbmcgeClcbiAgd2l0aCBGYWlsdXJlIF8gLT4gTm9uZVxuXG5sZXQgZmxvYXRfb2Zfc3RyaW5nX29wdCB4ID1cbiAgdHJ5IFNvbWUgKGZsb2F0X29mX3N0cmluZyB4KVxuICB3aXRoIEZhaWx1cmUgXyAtPiBOb25lXG5cbmxldCBwYXJzZV9hbmRfZXhwYW5kX2FyZ3ZfZHluYW1pY19hdXggYWxsb3dfZXhwYW5kIGN1cnJlbnQgYXJndiBzcGVjbGlzdCBhbm9uZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm1zZyA9XG4gIGxldCBpbml0cG9zID0gIWN1cnJlbnQgaW5cbiAgbGV0IGNvbnZlcnRfZXJyb3IgZXJyb3IgPVxuICAgICgqIGNvbnZlcnQgYW4gaW50ZXJuYWwgZXJyb3IgdG8gYSBCYWQvSGVscCBleGNlcHRpb25cbiAgICAgICAqb3IqIGFkZCB0aGUgcHJvZ3JhbSBuYW1lIGFzIGEgcHJlZml4IGFuZCB0aGUgdXNhZ2UgbWVzc2FnZSBhcyBhIHN1ZmZpeFxuICAgICAgIHRvIGFuIHVzZXItcmFpc2VkIEJhZCBleGNlcHRpb24uXG4gICAgKilcbiAgICBsZXQgYiA9IEJ1ZmZlci5jcmVhdGUgMjAwIGluXG4gICAgbGV0IHByb2duYW1lID1cbiAgICAgIGlmIGluaXRwb3MgPCAoQXJyYXkubGVuZ3RoICFhcmd2KSB0aGVuICFhcmd2Lihpbml0cG9zKSBlbHNlIFwiKD8pXCIgaW5cbiAgICBiZWdpbiBtYXRjaCBlcnJvciB3aXRoXG4gICAgICB8IFVua25vd24gXCItaGVscFwiIC0+ICgpXG4gICAgICB8IFVua25vd24gXCItLWhlbHBcIiAtPiAoKVxuICAgICAgfCBVbmtub3duIHMgLT5cbiAgICAgICAgICBicHJpbnRmIGIgXCIlczogdW5rbm93biBvcHRpb24gJyVzJy5cXG5cIiBwcm9nbmFtZSBzXG4gICAgICB8IE1pc3NpbmcgcyAtPlxuICAgICAgICAgIGJwcmludGYgYiBcIiVzOiBvcHRpb24gJyVzJyBuZWVkcyBhbiBhcmd1bWVudC5cXG5cIiBwcm9nbmFtZSBzXG4gICAgICB8IFdyb25nIChvcHQsIGFyZywgZXhwZWN0ZWQpIC0+XG4gICAgICAgICAgYnByaW50ZiBiIFwiJXM6IHdyb25nIGFyZ3VtZW50ICclcyc7IG9wdGlvbiAnJXMnIGV4cGVjdHMgJXMuXFxuXCJcbiAgICAgICAgICAgICAgICAgIHByb2duYW1lIGFyZyBvcHQgZXhwZWN0ZWRcbiAgICAgIHwgTWVzc2FnZSBzIC0+ICgqIHVzZXIgZXJyb3IgbWVzc2FnZSAqKVxuICAgICAgICAgIGJwcmludGYgYiBcIiVzOiAlcy5cXG5cIiBwcm9nbmFtZSBzXG4gICAgZW5kO1xuICAgIHVzYWdlX2IgYiAhc3BlY2xpc3QgZXJybXNnO1xuICAgIGlmIGVycm9yID0gVW5rbm93biBcIi1oZWxwXCIgfHwgZXJyb3IgPSBVbmtub3duIFwiLS1oZWxwXCJcbiAgICB0aGVuIEhlbHAgKEJ1ZmZlci5jb250ZW50cyBiKVxuICAgIGVsc2UgQmFkIChCdWZmZXIuY29udGVudHMgYilcbiAgaW5cbiAgaW5jciBjdXJyZW50O1xuICB3aGlsZSAhY3VycmVudCA8IChBcnJheS5sZW5ndGggIWFyZ3YpIGRvXG4gICAgYmVnaW4gdHJ5XG4gICAgICBsZXQgcyA9ICFhcmd2LighY3VycmVudCkgaW5cbiAgICAgIGlmIFN0cmluZy5sZW5ndGggcyA+PSAxICYmIHMuWzBdID0gJy0nIHRoZW4gYmVnaW5cbiAgICAgICAgbGV0IGFjdGlvbiwgZm9sbG93ID1cbiAgICAgICAgICB0cnkgYXNzb2MzIHMgIXNwZWNsaXN0LCBOb25lXG4gICAgICAgICAgd2l0aCBOb3RfZm91bmQgLT5cbiAgICAgICAgICB0cnlcbiAgICAgICAgICAgIGxldCBrZXl3b3JkLCBhcmcgPSBzcGxpdCBzIGluXG4gICAgICAgICAgICBhc3NvYzMga2V5d29yZCAhc3BlY2xpc3QsIFNvbWUgYXJnXG4gICAgICAgICAgd2l0aCBOb3RfZm91bmQgLT4gcmFpc2UgKFN0b3AgKFVua25vd24gcykpXG4gICAgICAgIGluXG4gICAgICAgIGxldCBub19hcmcgKCkgPVxuICAgICAgICAgIG1hdGNoIGZvbGxvdyB3aXRoXG4gICAgICAgICAgfCBOb25lIC0+ICgpXG4gICAgICAgICAgfCBTb21lIGFyZyAtPiByYWlzZSAoU3RvcCAoV3JvbmcgKHMsIGFyZywgXCJubyBhcmd1bWVudFwiKSkpIGluXG4gICAgICAgIGxldCBnZXRfYXJnICgpID1cbiAgICAgICAgICBtYXRjaCBmb2xsb3cgd2l0aFxuICAgICAgICAgIHwgTm9uZSAtPlxuICAgICAgICAgICAgICBpZiAhY3VycmVudCArIDEgPCAoQXJyYXkubGVuZ3RoICFhcmd2KSB0aGVuICFhcmd2LighY3VycmVudCArIDEpXG4gICAgICAgICAgICAgIGVsc2UgcmFpc2UgKFN0b3AgKE1pc3NpbmcgcykpXG4gICAgICAgICAgfCBTb21lIGFyZyAtPiBhcmdcbiAgICAgICAgaW5cbiAgICAgICAgbGV0IGNvbnN1bWVfYXJnICgpID1cbiAgICAgICAgICBtYXRjaCBmb2xsb3cgd2l0aFxuICAgICAgICAgIHwgTm9uZSAtPiBpbmNyIGN1cnJlbnRcbiAgICAgICAgICB8IFNvbWUgXyAtPiAoKVxuICAgICAgICBpblxuICAgICAgICBsZXQgcmVjIHRyZWF0X2FjdGlvbiA9IGZ1bmN0aW9uXG4gICAgICAgIHwgVW5pdCBmIC0+IG5vX2FyZyAoKTsgZiAoKTtcbiAgICAgICAgfCBCb29sIGYgLT5cbiAgICAgICAgICAgIGxldCBhcmcgPSBnZXRfYXJnICgpIGluXG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBib29sX29mX3N0cmluZ19vcHQgYXJnIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSAtPiByYWlzZSAoU3RvcCAoV3JvbmcgKHMsIGFyZywgXCJhIGJvb2xlYW5cIikpKVxuICAgICAgICAgICAgfCBTb21lIHMgLT4gZiBzXG4gICAgICAgICAgICBlbmQ7XG4gICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgfCBTZXQgciAtPiBub19hcmcgKCk7IHIgOj0gdHJ1ZTtcbiAgICAgICAgfCBDbGVhciByIC0+IG5vX2FyZyAoKTsgciA6PSBmYWxzZTtcbiAgICAgICAgfCBTdHJpbmcgZiAtPlxuICAgICAgICAgICAgbGV0IGFyZyA9IGdldF9hcmcgKCkgaW5cbiAgICAgICAgICAgIGYgYXJnO1xuICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgIHwgU3ltYm9sIChzeW1iLCBmKSAtPlxuICAgICAgICAgICAgbGV0IGFyZyA9IGdldF9hcmcgKCkgaW5cbiAgICAgICAgICAgIGlmIExpc3QubWVtIGFyZyBzeW1iIHRoZW4gYmVnaW5cbiAgICAgICAgICAgICAgZiBhcmc7XG4gICAgICAgICAgICAgIGNvbnN1bWVfYXJnICgpO1xuICAgICAgICAgICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgICAgICAgICAgcmFpc2UgKFN0b3AgKFdyb25nIChzLCBhcmcsIFwib25lIG9mOiBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAobWFrZV9zeW1saXN0IFwiXCIgXCIgXCIgXCJcIiBzeW1iKSkpKVxuICAgICAgICAgICAgZW5kXG4gICAgICAgIHwgU2V0X3N0cmluZyByIC0+XG4gICAgICAgICAgICByIDo9IGdldF9hcmcgKCk7XG4gICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgfCBJbnQgZiAtPlxuICAgICAgICAgICAgbGV0IGFyZyA9IGdldF9hcmcgKCkgaW5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIGludF9vZl9zdHJpbmdfb3B0IGFyZyB3aXRoXG4gICAgICAgICAgICB8IE5vbmUgLT4gcmFpc2UgKFN0b3AgKFdyb25nIChzLCBhcmcsIFwiYW4gaW50ZWdlclwiKSkpXG4gICAgICAgICAgICB8IFNvbWUgeCAtPiBmIHhcbiAgICAgICAgICAgIGVuZDtcbiAgICAgICAgICAgIGNvbnN1bWVfYXJnICgpO1xuICAgICAgICB8IFNldF9pbnQgciAtPlxuICAgICAgICAgICAgbGV0IGFyZyA9IGdldF9hcmcgKCkgaW5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIGludF9vZl9zdHJpbmdfb3B0IGFyZyB3aXRoXG4gICAgICAgICAgICB8IE5vbmUgLT4gcmFpc2UgKFN0b3AgKFdyb25nIChzLCBhcmcsIFwiYW4gaW50ZWdlclwiKSkpXG4gICAgICAgICAgICB8IFNvbWUgeCAtPiByIDo9IHhcbiAgICAgICAgICAgIGVuZDtcbiAgICAgICAgICAgIGNvbnN1bWVfYXJnICgpO1xuICAgICAgICB8IEZsb2F0IGYgLT5cbiAgICAgICAgICAgIGxldCBhcmcgPSBnZXRfYXJnICgpIGluXG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBmbG9hdF9vZl9zdHJpbmdfb3B0IGFyZyB3aXRoXG4gICAgICAgICAgICB8IE5vbmUgLT4gcmFpc2UgKFN0b3AgKFdyb25nIChzLCBhcmcsIFwiYSBmbG9hdFwiKSkpXG4gICAgICAgICAgICB8IFNvbWUgeCAtPiBmIHhcbiAgICAgICAgICAgIGVuZDtcbiAgICAgICAgICAgIGNvbnN1bWVfYXJnICgpO1xuICAgICAgICB8IFNldF9mbG9hdCByIC0+XG4gICAgICAgICAgICBsZXQgYXJnID0gZ2V0X2FyZyAoKSBpblxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggZmxvYXRfb2Zfc3RyaW5nX29wdCBhcmcgd2l0aFxuICAgICAgICAgICAgfCBOb25lIC0+IHJhaXNlIChTdG9wIChXcm9uZyAocywgYXJnLCBcImEgZmxvYXRcIikpKVxuICAgICAgICAgICAgfCBTb21lIHggLT4gciA6PSB4XG4gICAgICAgICAgICBlbmQ7XG4gICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgfCBUdXBsZSBzcGVjcyAtPlxuICAgICAgICAgICAgbm9fYXJnICgpO1xuICAgICAgICAgICAgTGlzdC5pdGVyIHRyZWF0X2FjdGlvbiBzcGVjcztcbiAgICAgICAgfCBSZXN0IGYgLT5cbiAgICAgICAgICAgIG5vX2FyZyAoKTtcbiAgICAgICAgICAgIHdoaWxlICFjdXJyZW50IDwgKEFycmF5Lmxlbmd0aCAhYXJndikgLSAxIGRvXG4gICAgICAgICAgICAgIGYgIWFyZ3YuKCFjdXJyZW50ICsgMSk7XG4gICAgICAgICAgICAgIGNvbnN1bWVfYXJnICgpO1xuICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgfCBSZXN0X2FsbCBmIC0+XG4gICAgICAgICAgICBub19hcmcgKCk7XG4gICAgICAgICAgICBsZXQgYWNjID0gcmVmIFtdIGluXG4gICAgICAgICAgICB3aGlsZSAhY3VycmVudCA8IEFycmF5Lmxlbmd0aCAhYXJndiAtIDEgZG9cbiAgICAgICAgICAgICAgYWNjIDo9ICFhcmd2LighY3VycmVudCArIDEpIDo6ICFhY2M7XG4gICAgICAgICAgICAgIGNvbnN1bWVfYXJnICgpO1xuICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgIGYgKExpc3QucmV2ICFhY2MpXG4gICAgICAgIHwgRXhwYW5kIGYgLT5cbiAgICAgICAgICAgIGlmIG5vdCBhbGxvd19leHBhbmQgdGhlblxuICAgICAgICAgICAgICByYWlzZSAoSW52YWxpZF9hcmd1bWVudCBcIkFyZy5FeHBhbmQgaXMgaXMgb25seSBhbGxvd2VkIHdpdGggXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFyZy5wYXJzZV9hbmRfZXhwYW5kX2FyZ3ZfZHluYW1pY1wiKTtcbiAgICAgICAgICAgIGxldCBhcmcgPSBnZXRfYXJnICgpIGluXG4gICAgICAgICAgICBsZXQgbmV3YXJnID0gZiBhcmcgaW5cbiAgICAgICAgICAgIGNvbnN1bWVfYXJnICgpO1xuICAgICAgICAgICAgbGV0IGJlZm9yZSA9IEFycmF5LnN1YiAhYXJndiAwICghY3VycmVudCArIDEpXG4gICAgICAgICAgICBhbmQgYWZ0ZXIgPVxuICAgICAgICAgICAgICBBcnJheS5zdWIgIWFyZ3YgKCFjdXJyZW50ICsgMSlcbiAgICAgICAgICAgICAgICAgICAgICAgICgoQXJyYXkubGVuZ3RoICFhcmd2KSAtICFjdXJyZW50IC0gMSkgaW5cbiAgICAgICAgICAgIGFyZ3Y6PSBBcnJheS5jb25jYXQgW2JlZm9yZTtuZXdhcmc7YWZ0ZXJdO1xuICAgICAgICBpblxuICAgICAgICB0cmVhdF9hY3Rpb24gYWN0aW9uIGVuZFxuICAgICAgZWxzZSBhbm9uZnVuIHNcbiAgICB3aXRoIHwgQmFkIG0gLT4gcmFpc2UgKGNvbnZlcnRfZXJyb3IgKE1lc3NhZ2UgbSkpO1xuICAgICAgICAgfCBTdG9wIGUgLT4gcmFpc2UgKGNvbnZlcnRfZXJyb3IgZSk7XG4gICAgZW5kO1xuICAgIGluY3IgY3VycmVudFxuICBkb25lXG5cbmxldCBwYXJzZV9hbmRfZXhwYW5kX2FyZ3ZfZHluYW1pYyBjdXJyZW50IGFyZ3Ygc3BlY2xpc3QgYW5vbmZ1biBlcnJtc2cgPVxuICBwYXJzZV9hbmRfZXhwYW5kX2FyZ3ZfZHluYW1pY19hdXggdHJ1ZSBjdXJyZW50IGFyZ3Ygc3BlY2xpc3QgYW5vbmZ1biBlcnJtc2dcblxubGV0IHBhcnNlX2FyZ3ZfZHluYW1pYyA/KGN1cnJlbnQ9Y3VycmVudCkgYXJndiBzcGVjbGlzdCBhbm9uZnVuIGVycm1zZyA9XG4gIHBhcnNlX2FuZF9leHBhbmRfYXJndl9keW5hbWljX2F1eCBmYWxzZSBjdXJyZW50IChyZWYgYXJndikgc3BlY2xpc3QgYW5vbmZ1blxuICAgIGVycm1zZ1xuXG5cbmxldCBwYXJzZV9hcmd2ID8oY3VycmVudD1jdXJyZW50KSBhcmd2IHNwZWNsaXN0IGFub25mdW4gZXJybXNnID1cbiAgcGFyc2VfYXJndl9keW5hbWljIH5jdXJyZW50OmN1cnJlbnQgYXJndiAocmVmIHNwZWNsaXN0KSBhbm9uZnVuIGVycm1zZ1xuXG5cbmxldCBwYXJzZSBsIGYgbXNnID1cbiAgdHJ5XG4gICAgcGFyc2VfYXJndiBTeXMuYXJndiBsIGYgbXNnXG4gIHdpdGhcbiAgfCBCYWQgbXNnIC0+IGVwcmludGYgXCIlc1wiIG1zZzsgZXhpdCAyXG4gIHwgSGVscCBtc2cgLT4gcHJpbnRmIFwiJXNcIiBtc2c7IGV4aXQgMFxuXG5cbmxldCBwYXJzZV9keW5hbWljIGwgZiBtc2cgPVxuICB0cnlcbiAgICBwYXJzZV9hcmd2X2R5bmFtaWMgU3lzLmFyZ3YgbCBmIG1zZ1xuICB3aXRoXG4gIHwgQmFkIG1zZyAtPiBlcHJpbnRmIFwiJXNcIiBtc2c7IGV4aXQgMlxuICB8IEhlbHAgbXNnIC0+IHByaW50ZiBcIiVzXCIgbXNnOyBleGl0IDBcblxubGV0IHBhcnNlX2V4cGFuZCBsIGYgbXNnID1cbiAgdHJ5XG4gICAgbGV0IGFyZ3YgPSByZWYgU3lzLmFyZ3YgaW5cbiAgICBsZXQgc3BlYyA9IHJlZiBsIGluXG4gICAgbGV0IGN1cnJlbnQgPSByZWYgKCFjdXJyZW50KSBpblxuICAgIHBhcnNlX2FuZF9leHBhbmRfYXJndl9keW5hbWljIGN1cnJlbnQgYXJndiBzcGVjIGYgbXNnXG4gIHdpdGhcbiAgfCBCYWQgbXNnIC0+IGVwcmludGYgXCIlc1wiIG1zZzsgZXhpdCAyXG4gIHwgSGVscCBtc2cgLT4gcHJpbnRmIFwiJXNcIiBtc2c7IGV4aXQgMFxuXG5cbmxldCBzZWNvbmRfd29yZCBzID1cbiAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggcyBpblxuICBsZXQgcmVjIGxvb3AgbiA9XG4gICAgaWYgbiA+PSBsZW4gdGhlbiBsZW5cbiAgICBlbHNlIGlmIHMuW25dID0gJyAnIHRoZW4gbG9vcCAobisxKVxuICAgIGVsc2UgblxuICBpblxuICBtYXRjaCBTdHJpbmcuaW5kZXggcyAnXFx0JyB3aXRoXG4gIHwgbiAtPiBsb29wIChuKzEpXG4gIHwgZXhjZXB0aW9uIE5vdF9mb3VuZCAtPlxuICAgICAgYmVnaW4gbWF0Y2ggU3RyaW5nLmluZGV4IHMgJyAnIHdpdGhcbiAgICAgIHwgbiAtPiBsb29wIChuKzEpXG4gICAgICB8IGV4Y2VwdGlvbiBOb3RfZm91bmQgLT4gbGVuXG4gICAgICBlbmRcblxuXG5sZXQgbWF4X2FyZ19sZW4gY3VyIChrd2QsIHNwZWMsIGRvYykgPVxuICBtYXRjaCBzcGVjIHdpdGhcbiAgfCBTeW1ib2wgXyAtPiBJbnQubWF4IGN1ciAoU3RyaW5nLmxlbmd0aCBrd2QpXG4gIHwgXyAtPiBJbnQubWF4IGN1ciAoU3RyaW5nLmxlbmd0aCBrd2QgKyBzZWNvbmRfd29yZCBkb2MpXG5cblxubGV0IHJlcGxhY2VfbGVhZGluZ190YWIgcyA9XG4gIGxldCBzZWVuID0gcmVmIGZhbHNlIGluXG4gIFN0cmluZy5tYXAgKGZ1bmN0aW9uICdcXHQnIHdoZW4gbm90ICFzZWVuIC0+IHNlZW4gOj0gdHJ1ZTsgJyAnIHwgYyAtPiBjKSBzXG5cbmxldCBhZGRfcGFkZGluZyBsZW4ga3NkID1cbiAgbWF0Y2gga3NkIHdpdGhcbiAgfCAoXywgXywgXCJcIikgLT5cbiAgICAgICgqIERvIG5vdCBwYWQgdW5kb2N1bWVudGVkIG9wdGlvbnMsIHNvIHRoYXQgdGhleSBzdGlsbCBkb24ndCBzaG93IHVwIHdoZW5cbiAgICAgICAqIHJ1biB0aHJvdWdoIFt1c2FnZV0gb3IgW3BhcnNlXS4gKilcbiAgICAgIGtzZFxuICB8IChrd2QsIChTeW1ib2wgXyBhcyBzcGVjKSwgbXNnKSAtPlxuICAgICAgbGV0IGN1dGNvbCA9IHNlY29uZF93b3JkIG1zZyBpblxuICAgICAgbGV0IHNwYWNlcyA9IFN0cmluZy5tYWtlICgoSW50Lm1heCAwIChsZW4gLSBjdXRjb2wpKSArIDMpICcgJyBpblxuICAgICAgKGt3ZCwgc3BlYywgXCJcXG5cIiBeIHNwYWNlcyBeIHJlcGxhY2VfbGVhZGluZ190YWIgbXNnKVxuICB8IChrd2QsIHNwZWMsIG1zZykgLT5cbiAgICAgIGxldCBjdXRjb2wgPSBzZWNvbmRfd29yZCBtc2cgaW5cbiAgICAgIGxldCBrd2RfbGVuID0gU3RyaW5nLmxlbmd0aCBrd2QgaW5cbiAgICAgIGxldCBkaWZmID0gbGVuIC0ga3dkX2xlbiAtIGN1dGNvbCBpblxuICAgICAgaWYgZGlmZiA8PSAwIHRoZW5cbiAgICAgICAgKGt3ZCwgc3BlYywgcmVwbGFjZV9sZWFkaW5nX3RhYiBtc2cpXG4gICAgICBlbHNlXG4gICAgICAgIGxldCBzcGFjZXMgPSBTdHJpbmcubWFrZSBkaWZmICcgJyBpblxuICAgICAgICBsZXQgcHJlZml4ID0gU3RyaW5nLnN1YiAocmVwbGFjZV9sZWFkaW5nX3RhYiBtc2cpIDAgY3V0Y29sIGluXG4gICAgICAgIGxldCBzdWZmaXggPSBTdHJpbmcuc3ViIG1zZyBjdXRjb2wgKFN0cmluZy5sZW5ndGggbXNnIC0gY3V0Y29sKSBpblxuICAgICAgICAoa3dkLCBzcGVjLCBwcmVmaXggXiBzcGFjZXMgXiBzdWZmaXgpXG5cblxubGV0IGFsaWduID8obGltaXQ9bWF4X2ludCkgc3BlY2xpc3QgPVxuICBsZXQgY29tcGxldGVkID0gYWRkX2hlbHAgc3BlY2xpc3QgaW5cbiAgbGV0IGxlbiA9IExpc3QuZm9sZF9sZWZ0IG1heF9hcmdfbGVuIDAgY29tcGxldGVkIGluXG4gIGxldCBsZW4gPSBJbnQubWluIGxlbiBsaW1pdCBpblxuICBMaXN0Lm1hcCAoYWRkX3BhZGRpbmcgbGVuKSBjb21wbGV0ZWRcblxubGV0IHRyaW1fY3IgcyA9XG4gIGxldCBsZW4gPSBTdHJpbmcubGVuZ3RoIHMgaW5cbiAgaWYgbGVuID4gMCAmJiBTdHJpbmcuZ2V0IHMgKGxlbiAtIDEpID0gJ1xccicgdGhlblxuICAgIFN0cmluZy5zdWIgcyAwIChsZW4gLSAxKVxuICBlbHNlXG4gICAgc1xuXG5sZXQgcmVhZF9hdXggdHJpbSBzZXAgZmlsZSA9XG4gIGxldCBpYyA9IG9wZW5faW5fYmluIGZpbGUgaW5cbiAgbGV0IGJ1ZiA9IEJ1ZmZlci5jcmVhdGUgMjAwIGluXG4gIGxldCB3b3JkcyA9IHJlZiBbXSBpblxuICBsZXQgc3Rhc2ggKCkgPVxuICAgIGxldCB3b3JkID0gQnVmZmVyLmNvbnRlbnRzIGJ1ZiBpblxuICAgIGxldCB3b3JkID0gaWYgdHJpbSB0aGVuIHRyaW1fY3Igd29yZCBlbHNlIHdvcmQgaW5cbiAgICB3b3JkcyA6PSB3b3JkIDo6ICF3b3JkcztcbiAgICBCdWZmZXIuY2xlYXIgYnVmXG4gIGluXG4gIGJlZ2luXG4gICAgdHJ5IHdoaWxlIHRydWUgZG9cbiAgICAgICAgbGV0IGMgPSBpbnB1dF9jaGFyIGljIGluXG4gICAgICAgIGlmIGMgPSBzZXAgdGhlbiBzdGFzaCAoKSBlbHNlIEJ1ZmZlci5hZGRfY2hhciBidWYgY1xuICAgICAgZG9uZVxuICAgIHdpdGggRW5kX29mX2ZpbGUgLT4gKClcbiAgZW5kO1xuICBpZiBCdWZmZXIubGVuZ3RoIGJ1ZiA+IDAgdGhlbiBzdGFzaCAoKTtcbiAgY2xvc2VfaW4gaWM7XG4gIEFycmF5Lm9mX2xpc3QgKExpc3QucmV2ICF3b3JkcylcblxubGV0IHJlYWRfYXJnID0gcmVhZF9hdXggdHJ1ZSAnXFxuJ1xuXG5sZXQgcmVhZF9hcmcwID0gcmVhZF9hdXggZmFsc2UgJ1xceDAwJ1xuXG5sZXQgd3JpdGVfYXV4IHNlcCBmaWxlIGFyZ3MgPVxuICBsZXQgb2MgPSBvcGVuX291dF9iaW4gZmlsZSBpblxuICBBcnJheS5pdGVyIChmdW4gcyAtPiBmcHJpbnRmIG9jIFwiJXMlY1wiIHMgc2VwKSBhcmdzO1xuICBjbG9zZV9vdXQgb2NcblxubGV0IHdyaXRlX2FyZyA9IHdyaXRlX2F1eCAnXFxuJ1xuXG5sZXQgd3JpdGVfYXJnMCA9IHdyaXRlX2F1eCAnXFx4MDAnXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbm9wZW4gUHJpbnRmXG5cbnR5cGUgdCA9IGV4biA9IC4uXG5cbmxldCBwcmludGVycyA9IEF0b21pYy5tYWtlIFtdXG5cbmxldCBsb2NmbXQgPSBmb3JtYXRfb2Zfc3RyaW5nIFwiRmlsZSBcXFwiJXNcXFwiLCBsaW5lICVkLCBjaGFyYWN0ZXJzICVkLSVkOiAlc1wiXG5cbmxldCBmaWVsZCB4IGkgPVxuICBsZXQgZiA9IE9iai5maWVsZCB4IGkgaW5cbiAgaWYgbm90IChPYmouaXNfYmxvY2sgZikgdGhlblxuICAgIHNwcmludGYgXCIlZFwiIChPYmoubWFnaWMgZiA6IGludCkgICAgICAgICAgICgqIGNhbiBhbHNvIGJlIGEgY2hhciAqKVxuICBlbHNlIGlmIE9iai50YWcgZiA9IE9iai5zdHJpbmdfdGFnIHRoZW5cbiAgICBzcHJpbnRmIFwiJVNcIiAoT2JqLm1hZ2ljIGYgOiBzdHJpbmcpXG4gIGVsc2UgaWYgT2JqLnRhZyBmID0gT2JqLmRvdWJsZV90YWcgdGhlblxuICAgIHN0cmluZ19vZl9mbG9hdCAoT2JqLm1hZ2ljIGYgOiBmbG9hdClcbiAgZWxzZVxuICAgIFwiX1wiXG5cbmxldCByZWMgb3RoZXJfZmllbGRzIHggaSA9XG4gIGlmIGkgPj0gT2JqLnNpemUgeCB0aGVuIFwiXCJcbiAgZWxzZSBzcHJpbnRmIFwiLCAlcyVzXCIgKGZpZWxkIHggaSkgKG90aGVyX2ZpZWxkcyB4IChpKzEpKVxuXG5sZXQgZmllbGRzIHggPVxuICBtYXRjaCBPYmouc2l6ZSB4IHdpdGhcbiAgfCAwIC0+IFwiXCJcbiAgfCAxIC0+IFwiXCJcbiAgfCAyIC0+IHNwcmludGYgXCIoJXMpXCIgKGZpZWxkIHggMSlcbiAgfCBfIC0+IHNwcmludGYgXCIoJXMlcylcIiAoZmllbGQgeCAxKSAob3RoZXJfZmllbGRzIHggMilcblxubGV0IHVzZV9wcmludGVycyB4ID1cbiAgbGV0IHJlYyBjb252ID0gZnVuY3Rpb25cbiAgICB8IGhkIDo6IHRsIC0+XG4gICAgICAgIChtYXRjaCBoZCB4IHdpdGhcbiAgICAgICAgIHwgTm9uZSB8IGV4Y2VwdGlvbiBfIC0+IGNvbnYgdGxcbiAgICAgICAgIHwgU29tZSBzIC0+IFNvbWUgcylcbiAgICB8IFtdIC0+IE5vbmUgaW5cbiAgY29udiAoQXRvbWljLmdldCBwcmludGVycylcblxubGV0IHRvX3N0cmluZ19kZWZhdWx0ID0gZnVuY3Rpb25cbiAgfCBPdXRfb2ZfbWVtb3J5IC0+IFwiT3V0IG9mIG1lbW9yeVwiXG4gIHwgU3RhY2tfb3ZlcmZsb3cgLT4gXCJTdGFjayBvdmVyZmxvd1wiXG4gIHwgTWF0Y2hfZmFpbHVyZShmaWxlLCBsaW5lLCBjaGFyKSAtPlxuICAgICAgc3ByaW50ZiBsb2NmbXQgZmlsZSBsaW5lIGNoYXIgKGNoYXIrNSkgXCJQYXR0ZXJuIG1hdGNoaW5nIGZhaWxlZFwiXG4gIHwgQXNzZXJ0X2ZhaWx1cmUoZmlsZSwgbGluZSwgY2hhcikgLT5cbiAgICAgIHNwcmludGYgbG9jZm10IGZpbGUgbGluZSBjaGFyIChjaGFyKzYpIFwiQXNzZXJ0aW9uIGZhaWxlZFwiXG4gIHwgVW5kZWZpbmVkX3JlY3Vyc2l2ZV9tb2R1bGUoZmlsZSwgbGluZSwgY2hhcikgLT5cbiAgICAgIHNwcmludGYgbG9jZm10IGZpbGUgbGluZSBjaGFyIChjaGFyKzYpIFwiVW5kZWZpbmVkIHJlY3Vyc2l2ZSBtb2R1bGVcIlxuICB8IHggLT5cbiAgICAgIGxldCB4ID0gT2JqLnJlcHIgeCBpblxuICAgICAgaWYgT2JqLnRhZyB4IDw+IDAgdGhlblxuICAgICAgICAoT2JqLm1hZ2ljIChPYmouZmllbGQgeCAwKSA6IHN0cmluZylcbiAgICAgIGVsc2VcbiAgICAgICAgbGV0IGNvbnN0cnVjdG9yID1cbiAgICAgICAgICAoT2JqLm1hZ2ljIChPYmouZmllbGQgKE9iai5maWVsZCB4IDApIDApIDogc3RyaW5nKSBpblxuICAgICAgICBjb25zdHJ1Y3RvciBeIChmaWVsZHMgeClcblxubGV0IHRvX3N0cmluZyBlID1cbiAgbWF0Y2ggdXNlX3ByaW50ZXJzIGUgd2l0aFxuICB8IFNvbWUgcyAtPiBzXG4gIHwgTm9uZSAtPiB0b19zdHJpbmdfZGVmYXVsdCBlXG5cbmxldCBwcmludCBmY3QgYXJnID1cbiAgdHJ5XG4gICAgZmN0IGFyZ1xuICB3aXRoIHggLT5cbiAgICBlcHJpbnRmIFwiVW5jYXVnaHQgZXhjZXB0aW9uOiAlc1xcblwiICh0b19zdHJpbmcgeCk7XG4gICAgZmx1c2ggc3RkZXJyO1xuICAgIHJhaXNlIHhcblxubGV0IGNhdGNoIGZjdCBhcmcgPVxuICB0cnlcbiAgICBmY3QgYXJnXG4gIHdpdGggeCAtPlxuICAgIGZsdXNoIHN0ZG91dDtcbiAgICBlcHJpbnRmIFwiVW5jYXVnaHQgZXhjZXB0aW9uOiAlc1xcblwiICh0b19zdHJpbmcgeCk7XG4gICAgZXhpdCAyXG5cbnR5cGUgcmF3X2JhY2t0cmFjZV9zbG90XG50eXBlIHJhd19iYWNrdHJhY2VfZW50cnkgPSBwcml2YXRlIGludFxudHlwZSByYXdfYmFja3RyYWNlID0gcmF3X2JhY2t0cmFjZV9lbnRyeSBhcnJheVxuXG5sZXQgcmF3X2JhY2t0cmFjZV9lbnRyaWVzIGJ0ID0gYnRcblxuZXh0ZXJuYWwgZ2V0X3Jhd19iYWNrdHJhY2U6XG4gIHVuaXQgLT4gcmF3X2JhY2t0cmFjZSA9IFwiY2FtbF9nZXRfZXhjZXB0aW9uX3Jhd19iYWNrdHJhY2VcIlxuXG5leHRlcm5hbCByYWlzZV93aXRoX2JhY2t0cmFjZTogZXhuIC0+IHJhd19iYWNrdHJhY2UgLT4gJ2FcbiAgPSBcIiVyYWlzZV93aXRoX2JhY2t0cmFjZVwiXG5cbnR5cGUgYmFja3RyYWNlX3Nsb3QgPVxuICB8IEtub3duX2xvY2F0aW9uIG9mIHtcbiAgICAgIGlzX3JhaXNlICAgIDogYm9vbDtcbiAgICAgIGZpbGVuYW1lICAgIDogc3RyaW5nO1xuICAgICAgbGluZV9udW1iZXIgOiBpbnQ7XG4gICAgICBzdGFydF9jaGFyICA6IGludDtcbiAgICAgIGVuZF9jaGFyICAgIDogaW50O1xuICAgICAgaXNfaW5saW5lICAgOiBib29sO1xuICAgICAgZGVmbmFtZSAgICAgOiBzdHJpbmc7XG4gICAgfVxuICB8IFVua25vd25fbG9jYXRpb24gb2Yge1xuICAgICAgaXNfcmFpc2UgOiBib29sXG4gICAgfVxuXG4oKiB0byBhdm9pZCB3YXJuaW5nICopXG5sZXQgXyA9IFtLbm93bl9sb2NhdGlvbiB7IGlzX3JhaXNlID0gZmFsc2U7IGZpbGVuYW1lID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZV9udW1iZXIgPSAwOyBzdGFydF9jaGFyID0gMDsgZW5kX2NoYXIgPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpc19pbmxpbmUgPSBmYWxzZTsgZGVmbmFtZSA9IFwiXCIgfTtcbiAgICAgICAgIFVua25vd25fbG9jYXRpb24geyBpc19yYWlzZSA9IGZhbHNlIH1dXG5cbmV4dGVybmFsIGNvbnZlcnRfcmF3X2JhY2t0cmFjZV9zbG90OlxuICByYXdfYmFja3RyYWNlX3Nsb3QgLT4gYmFja3RyYWNlX3Nsb3QgPSBcImNhbWxfY29udmVydF9yYXdfYmFja3RyYWNlX3Nsb3RcIlxuXG5leHRlcm5hbCBjb252ZXJ0X3Jhd19iYWNrdHJhY2U6XG4gIHJhd19iYWNrdHJhY2UgLT4gYmFja3RyYWNlX3Nsb3QgYXJyYXkgPSBcImNhbWxfY29udmVydF9yYXdfYmFja3RyYWNlXCJcblxubGV0IGNvbnZlcnRfcmF3X2JhY2t0cmFjZSBidCA9XG4gIHRyeSBTb21lIChjb252ZXJ0X3Jhd19iYWNrdHJhY2UgYnQpXG4gIHdpdGggRmFpbHVyZSBfIC0+IE5vbmVcblxubGV0IGZvcm1hdF9iYWNrdHJhY2Vfc2xvdCBwb3Mgc2xvdCA9XG4gIGxldCBpbmZvIGlzX3JhaXNlID1cbiAgICBpZiBpc19yYWlzZSB0aGVuXG4gICAgICBpZiBwb3MgPSAwIHRoZW4gXCJSYWlzZWQgYXRcIiBlbHNlIFwiUmUtcmFpc2VkIGF0XCJcbiAgICBlbHNlXG4gICAgICBpZiBwb3MgPSAwIHRoZW4gXCJSYWlzZWQgYnkgcHJpbWl0aXZlIG9wZXJhdGlvbiBhdFwiIGVsc2UgXCJDYWxsZWQgZnJvbVwiXG4gIGluXG4gIG1hdGNoIHNsb3Qgd2l0aFxuICB8IFVua25vd25fbG9jYXRpb24gbCAtPlxuICAgICAgaWYgbC5pc19yYWlzZSB0aGVuXG4gICAgICAgICgqIGNvbXBpbGVyLWluc2VydGVkIHJlLXJhaXNlLCBza2lwcGVkICopIE5vbmVcbiAgICAgIGVsc2VcbiAgICAgICAgU29tZSAoc3ByaW50ZiBcIiVzIHVua25vd24gbG9jYXRpb25cIiAoaW5mbyBmYWxzZSkpXG4gIHwgS25vd25fbG9jYXRpb24gbCAtPlxuICAgICAgU29tZSAoc3ByaW50ZiBcIiVzICVzIGluIGZpbGUgXFxcIiVzXFxcIiVzLCBsaW5lICVkLCBjaGFyYWN0ZXJzICVkLSVkXCJcbiAgICAgICAgICAgICAgKGluZm8gbC5pc19yYWlzZSkgbC5kZWZuYW1lIGwuZmlsZW5hbWVcbiAgICAgICAgICAgICAgKGlmIGwuaXNfaW5saW5lIHRoZW4gXCIgKGlubGluZWQpXCIgZWxzZSBcIlwiKVxuICAgICAgICAgICAgICBsLmxpbmVfbnVtYmVyIGwuc3RhcnRfY2hhciBsLmVuZF9jaGFyKVxuXG5sZXQgcHJpbnRfZXhjZXB0aW9uX2JhY2t0cmFjZSBvdXRjaGFuIGJhY2t0cmFjZSA9XG4gIG1hdGNoIGJhY2t0cmFjZSB3aXRoXG4gIHwgTm9uZSAtPlxuICAgICAgZnByaW50ZiBvdXRjaGFuXG4gICAgICAgIFwiKFByb2dyYW0gbm90IGxpbmtlZCB3aXRoIC1nLCBjYW5ub3QgcHJpbnQgc3RhY2sgYmFja3RyYWNlKVxcblwiXG4gIHwgU29tZSBhIC0+XG4gICAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGEgLSAxIGRvXG4gICAgICAgIG1hdGNoIGZvcm1hdF9iYWNrdHJhY2Vfc2xvdCBpIGEuKGkpIHdpdGhcbiAgICAgICAgICB8IE5vbmUgLT4gKClcbiAgICAgICAgICB8IFNvbWUgc3RyIC0+IGZwcmludGYgb3V0Y2hhbiBcIiVzXFxuXCIgc3RyXG4gICAgICBkb25lXG5cbmxldCBwcmludF9yYXdfYmFja3RyYWNlIG91dGNoYW4gcmF3X2JhY2t0cmFjZSA9XG4gIHByaW50X2V4Y2VwdGlvbl9iYWNrdHJhY2Ugb3V0Y2hhbiAoY29udmVydF9yYXdfYmFja3RyYWNlIHJhd19iYWNrdHJhY2UpXG5cbigqIGNvbmZ1c2luZ2x5IG5hbWVkOiBwcmludHMgdGhlIGdsb2JhbCBjdXJyZW50IGJhY2t0cmFjZSAqKVxubGV0IHByaW50X2JhY2t0cmFjZSBvdXRjaGFuID1cbiAgcHJpbnRfcmF3X2JhY2t0cmFjZSBvdXRjaGFuIChnZXRfcmF3X2JhY2t0cmFjZSAoKSlcblxubGV0IGJhY2t0cmFjZV90b19zdHJpbmcgYmFja3RyYWNlID1cbiAgbWF0Y2ggYmFja3RyYWNlIHdpdGhcbiAgfCBOb25lIC0+XG4gICAgIFwiKFByb2dyYW0gbm90IGxpbmtlZCB3aXRoIC1nLCBjYW5ub3QgcHJpbnQgc3RhY2sgYmFja3RyYWNlKVxcblwiXG4gIHwgU29tZSBhIC0+XG4gICAgICBsZXQgYiA9IEJ1ZmZlci5jcmVhdGUgMTAyNCBpblxuICAgICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBhIC0gMSBkb1xuICAgICAgICBtYXRjaCBmb3JtYXRfYmFja3RyYWNlX3Nsb3QgaSBhLihpKSB3aXRoXG4gICAgICAgICAgfCBOb25lIC0+ICgpXG4gICAgICAgICAgfCBTb21lIHN0ciAtPiBicHJpbnRmIGIgXCIlc1xcblwiIHN0clxuICAgICAgZG9uZTtcbiAgICAgIEJ1ZmZlci5jb250ZW50cyBiXG5cbmxldCByYXdfYmFja3RyYWNlX3RvX3N0cmluZyByYXdfYmFja3RyYWNlID1cbiAgYmFja3RyYWNlX3RvX3N0cmluZyAoY29udmVydF9yYXdfYmFja3RyYWNlIHJhd19iYWNrdHJhY2UpXG5cbmxldCBiYWNrdHJhY2Vfc2xvdF9pc19yYWlzZSA9IGZ1bmN0aW9uXG4gIHwgS25vd25fbG9jYXRpb24gbCAtPiBsLmlzX3JhaXNlXG4gIHwgVW5rbm93bl9sb2NhdGlvbiBsIC0+IGwuaXNfcmFpc2VcblxubGV0IGJhY2t0cmFjZV9zbG90X2lzX2lubGluZSA9IGZ1bmN0aW9uXG4gIHwgS25vd25fbG9jYXRpb24gbCAtPiBsLmlzX2lubGluZVxuICB8IFVua25vd25fbG9jYXRpb24gXyAtPiBmYWxzZVxuXG50eXBlIGxvY2F0aW9uID0ge1xuICBmaWxlbmFtZSA6IHN0cmluZztcbiAgbGluZV9udW1iZXIgOiBpbnQ7XG4gIHN0YXJ0X2NoYXIgOiBpbnQ7XG4gIGVuZF9jaGFyIDogaW50O1xufVxuXG5sZXQgYmFja3RyYWNlX3Nsb3RfbG9jYXRpb24gPSBmdW5jdGlvblxuICB8IFVua25vd25fbG9jYXRpb24gXyAtPiBOb25lXG4gIHwgS25vd25fbG9jYXRpb24gbCAtPlxuICAgIFNvbWUge1xuICAgICAgZmlsZW5hbWUgICAgPSBsLmZpbGVuYW1lO1xuICAgICAgbGluZV9udW1iZXIgPSBsLmxpbmVfbnVtYmVyO1xuICAgICAgc3RhcnRfY2hhciAgPSBsLnN0YXJ0X2NoYXI7XG4gICAgICBlbmRfY2hhciAgICA9IGwuZW5kX2NoYXI7XG4gICAgfVxuXG5sZXQgYmFja3RyYWNlX3Nsb3RfZGVmbmFtZSA9IGZ1bmN0aW9uXG4gIHwgVW5rbm93bl9sb2NhdGlvbiBfXG4gIHwgS25vd25fbG9jYXRpb24geyBkZWZuYW1lID0gXCJcIiB9IC0+IE5vbmVcbiAgfCBLbm93bl9sb2NhdGlvbiBsIC0+IFNvbWUgbC5kZWZuYW1lXG5cbmxldCBiYWNrdHJhY2Vfc2xvdHMgcmF3X2JhY2t0cmFjZSA9XG4gICgqIFRoZSBkb2N1bWVudGF0aW9uIG9mIHRoaXMgZnVuY3Rpb24gZ3VhcmFudGVlcyB0aGF0IFNvbWUgaXNcbiAgICAgcmV0dXJuZWQgb25seSBpZiBhIHBhcnQgb2YgdGhlIHRyYWNlIGlzIHVzYWJsZS4gVGhpcyBnaXZlcyB1c1xuICAgICBhIGJpdCBtb3JlIHdvcmsgdGhhbiBqdXN0IGNvbnZlcnRfcmF3X2JhY2t0cmFjZSwgYnV0IGl0IG1ha2VzIHRoZVxuICAgICBBUEkgbW9yZSB1c2VyLWZyaWVuZGx5IC0tIG90aGVyd2lzZSBtb3N0IHVzZXJzIHdvdWxkIGhhdmUgdG9cbiAgICAgcmVpbXBsZW1lbnQgdGhlIFwiUHJvZ3JhbSBub3QgbGlua2VkIHdpdGggLWcsIHNvcnJ5XCIgbG9naWNcbiAgICAgdGhlbXNlbHZlcy4gKilcbiAgbWF0Y2ggY29udmVydF9yYXdfYmFja3RyYWNlIHJhd19iYWNrdHJhY2Ugd2l0aFxuICAgIHwgTm9uZSAtPiBOb25lXG4gICAgfCBTb21lIGJhY2t0cmFjZSAtPlxuICAgICAgbGV0IHVzYWJsZV9zbG90ID0gZnVuY3Rpb25cbiAgICAgICAgfCBVbmtub3duX2xvY2F0aW9uIF8gLT4gZmFsc2VcbiAgICAgICAgfCBLbm93bl9sb2NhdGlvbiBfIC0+IHRydWUgaW5cbiAgICAgIGxldCByZWMgZXhpc3RzX3VzYWJsZSA9IGZ1bmN0aW9uXG4gICAgICAgIHwgKC0xKSAtPiBmYWxzZVxuICAgICAgICB8IGkgLT4gdXNhYmxlX3Nsb3QgYmFja3RyYWNlLihpKSB8fCBleGlzdHNfdXNhYmxlIChpIC0gMSkgaW5cbiAgICAgIGlmIGV4aXN0c191c2FibGUgKEFycmF5Lmxlbmd0aCBiYWNrdHJhY2UgLSAxKVxuICAgICAgdGhlbiBTb21lIGJhY2t0cmFjZVxuICAgICAgZWxzZSBOb25lXG5cbmxldCBiYWNrdHJhY2Vfc2xvdHNfb2ZfcmF3X2VudHJ5IGVudHJ5ID1cbiAgYmFja3RyYWNlX3Nsb3RzIFt8IGVudHJ5IHxdXG5cbm1vZHVsZSBTbG90ID0gc3RydWN0XG4gIHR5cGUgdCA9IGJhY2t0cmFjZV9zbG90XG4gIGxldCBmb3JtYXQgPSBmb3JtYXRfYmFja3RyYWNlX3Nsb3RcbiAgbGV0IGlzX3JhaXNlID0gYmFja3RyYWNlX3Nsb3RfaXNfcmFpc2VcbiAgbGV0IGlzX2lubGluZSA9IGJhY2t0cmFjZV9zbG90X2lzX2lubGluZVxuICBsZXQgbG9jYXRpb24gPSBiYWNrdHJhY2Vfc2xvdF9sb2NhdGlvblxuICBsZXQgbmFtZSA9IGJhY2t0cmFjZV9zbG90X2RlZm5hbWVcbmVuZFxuXG5sZXQgcmF3X2JhY2t0cmFjZV9sZW5ndGggYnQgPSBBcnJheS5sZW5ndGggYnRcblxuZXh0ZXJuYWwgZ2V0X3Jhd19iYWNrdHJhY2Vfc2xvdCA6XG4gIHJhd19iYWNrdHJhY2UgLT4gaW50IC0+IHJhd19iYWNrdHJhY2Vfc2xvdCA9IFwiY2FtbF9yYXdfYmFja3RyYWNlX3Nsb3RcIlxuXG5leHRlcm5hbCBnZXRfcmF3X2JhY2t0cmFjZV9uZXh0X3Nsb3QgOlxuICByYXdfYmFja3RyYWNlX3Nsb3QgLT4gcmF3X2JhY2t0cmFjZV9zbG90IG9wdGlvblxuICA9IFwiY2FtbF9yYXdfYmFja3RyYWNlX25leHRfc2xvdFwiXG5cbigqIGNvbmZ1c2luZ2x5IG5hbWVkOlxuICAgcmV0dXJucyB0aGUgKnN0cmluZyogY29ycmVzcG9uZGluZyB0byB0aGUgZ2xvYmFsIGN1cnJlbnQgYmFja3RyYWNlICopXG5sZXQgZ2V0X2JhY2t0cmFjZSAoKSA9IHJhd19iYWNrdHJhY2VfdG9fc3RyaW5nIChnZXRfcmF3X2JhY2t0cmFjZSAoKSlcblxuZXh0ZXJuYWwgcmVjb3JkX2JhY2t0cmFjZTogYm9vbCAtPiB1bml0ID0gXCJjYW1sX3JlY29yZF9iYWNrdHJhY2VcIlxuZXh0ZXJuYWwgYmFja3RyYWNlX3N0YXR1czogdW5pdCAtPiBib29sID0gXCJjYW1sX2JhY2t0cmFjZV9zdGF0dXNcIlxuXG5sZXQgcmVjIHJlZ2lzdGVyX3ByaW50ZXIgZm4gPVxuICBsZXQgb2xkX3ByaW50ZXJzID0gQXRvbWljLmdldCBwcmludGVycyBpblxuICBsZXQgbmV3X3ByaW50ZXJzID0gZm4gOjogb2xkX3ByaW50ZXJzIGluXG4gIGxldCBzdWNjZXNzID0gQXRvbWljLmNvbXBhcmVfYW5kX3NldCBwcmludGVycyBvbGRfcHJpbnRlcnMgbmV3X3ByaW50ZXJzIGluXG4gIGlmIG5vdCBzdWNjZXNzIHRoZW4gcmVnaXN0ZXJfcHJpbnRlciBmblxuXG5leHRlcm5hbCBnZXRfY2FsbHN0YWNrOiBpbnQgLT4gcmF3X2JhY2t0cmFjZSA9IFwiY2FtbF9nZXRfY3VycmVudF9jYWxsc3RhY2tcIlxuXG5sZXQgZXhuX3Nsb3QgeCA9XG4gIGxldCB4ID0gT2JqLnJlcHIgeCBpblxuICBpZiBPYmoudGFnIHggPSAwIHRoZW4gT2JqLmZpZWxkIHggMCBlbHNlIHhcblxubGV0IGV4bl9zbG90X2lkIHggPVxuICBsZXQgc2xvdCA9IGV4bl9zbG90IHggaW5cbiAgKE9iai5vYmogKE9iai5maWVsZCBzbG90IDEpIDogaW50KVxuXG5sZXQgZXhuX3Nsb3RfbmFtZSB4ID1cbiAgbGV0IHNsb3QgPSBleG5fc2xvdCB4IGluXG4gIChPYmoub2JqIChPYmouZmllbGQgc2xvdCAwKSA6IHN0cmluZylcblxuZXh0ZXJuYWwgZ2V0X2RlYnVnX2luZm9fc3RhdHVzIDogdW5pdCAtPiBpbnQgPSBcImNhbWxfbWxfZGVidWdfaW5mb19zdGF0dXNcIlxuXG4oKiBEZXNjcmlwdGlvbnMgZm9yIGVycm9ycyBpbiBzdGFydHVwLmguIFNlZSBhbHNvIGJhY2t0cmFjZS5jICopXG5sZXQgZXJyb3JzID0gW3wgXCJcIjtcbiAgKCogRklMRV9OT1RfRk9VTkQgKilcbiAgXCIoQ2Fubm90IHByaW50IGxvY2F0aW9uczpcXG4gXFxcbiAgICAgIGJ5dGVjb2RlIGV4ZWN1dGFibGUgcHJvZ3JhbSBmaWxlIG5vdCBmb3VuZClcIjtcbiAgKCogQkFEX0JZVEVDT0RFICopXG4gIFwiKENhbm5vdCBwcmludCBsb2NhdGlvbnM6XFxuIFxcXG4gICAgICBieXRlY29kZSBleGVjdXRhYmxlIHByb2dyYW0gZmlsZSBhcHBlYXJzIHRvIGJlIGNvcnJ1cHQpXCI7XG4gICgqIFdST05HX01BR0lDICopXG4gIFwiKENhbm5vdCBwcmludCBsb2NhdGlvbnM6XFxuIFxcXG4gICAgICBieXRlY29kZSBleGVjdXRhYmxlIHByb2dyYW0gZmlsZSBoYXMgd3JvbmcgbWFnaWMgbnVtYmVyKVwiO1xuICAoKiBOT19GRFMgKilcbiAgXCIoQ2Fubm90IHByaW50IGxvY2F0aW9uczpcXG4gXFxcbiAgICAgIGJ5dGVjb2RlIGV4ZWN1dGFibGUgcHJvZ3JhbSBmaWxlIGNhbm5vdCBiZSBvcGVuZWQ7XFxuIFxcXG4gICAgICAtLSB0b28gbWFueSBvcGVuIGZpbGVzLiBUcnkgcnVubmluZyB3aXRoIE9DQU1MUlVOUEFSQU09Yj0yKVwiXG58XVxuXG5sZXQgZGVmYXVsdF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlciBleG4gcmF3X2JhY2t0cmFjZSA9XG4gIGVwcmludGYgXCJGYXRhbCBlcnJvcjogZXhjZXB0aW9uICVzXFxuXCIgKHRvX3N0cmluZyBleG4pO1xuICBwcmludF9yYXdfYmFja3RyYWNlIHN0ZGVyciByYXdfYmFja3RyYWNlO1xuICBsZXQgc3RhdHVzID0gZ2V0X2RlYnVnX2luZm9fc3RhdHVzICgpIGluXG4gIGlmIHN0YXR1cyA8IDAgdGhlblxuICAgIHByZXJyX2VuZGxpbmUgZXJyb3JzLihhYnMgc3RhdHVzKTtcbiAgZmx1c2ggc3RkZXJyXG5cbmxldCB1bmNhdWdodF9leGNlcHRpb25faGFuZGxlciA9IHJlZiBkZWZhdWx0X3VuY2F1Z2h0X2V4Y2VwdGlvbl9oYW5kbGVyXG5cbmxldCBzZXRfdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIgZm4gPSB1bmNhdWdodF9leGNlcHRpb25faGFuZGxlciA6PSBmblxuXG5sZXQgZW1wdHlfYmFja3RyYWNlIDogcmF3X2JhY2t0cmFjZSA9IFt8IHxdXG5cbmxldCB0cnlfZ2V0X3Jhd19iYWNrdHJhY2UgKCkgPVxuICB0cnlcbiAgICBnZXRfcmF3X2JhY2t0cmFjZSAoKVxuICB3aXRoIF8gKCogT3V0X29mX21lbW9yeT8gKikgLT5cbiAgICBlbXB0eV9iYWNrdHJhY2VcblxubGV0IGhhbmRsZV91bmNhdWdodF9leGNlcHRpb24nIGV4biBkZWJ1Z2dlcl9pbl91c2UgPVxuICB0cnlcbiAgICAoKiBHZXQgdGhlIGJhY2t0cmFjZSBub3csIGluIGNhc2Ugb25lIG9mIHRoZSBbYXRfZXhpdF0gZnVuY3Rpb25cbiAgICAgICBkZXN0cm95cyBpdC4gKilcbiAgICBsZXQgcmF3X2JhY2t0cmFjZSA9XG4gICAgICBpZiBkZWJ1Z2dlcl9pbl91c2UgKCogU2FtZSB0ZXN0IGFzIGluIFtydW50aW1lL3ByaW50ZXhjLmNdICopIHRoZW5cbiAgICAgICAgZW1wdHlfYmFja3RyYWNlXG4gICAgICBlbHNlXG4gICAgICAgIHRyeV9nZXRfcmF3X2JhY2t0cmFjZSAoKVxuICAgIGluXG4gICAgKHRyeSBTdGRsaWIuZG9fYXRfZXhpdCAoKSB3aXRoIF8gLT4gKCkpO1xuICAgIHRyeVxuICAgICAgIXVuY2F1Z2h0X2V4Y2VwdGlvbl9oYW5kbGVyIGV4biByYXdfYmFja3RyYWNlXG4gICAgd2l0aCBleG4nIC0+XG4gICAgICBsZXQgcmF3X2JhY2t0cmFjZScgPSB0cnlfZ2V0X3Jhd19iYWNrdHJhY2UgKCkgaW5cbiAgICAgIGVwcmludGYgXCJGYXRhbCBlcnJvcjogZXhjZXB0aW9uICVzXFxuXCIgKHRvX3N0cmluZyBleG4pO1xuICAgICAgcHJpbnRfcmF3X2JhY2t0cmFjZSBzdGRlcnIgcmF3X2JhY2t0cmFjZTtcbiAgICAgIGVwcmludGYgXCJGYXRhbCBlcnJvciBpbiB1bmNhdWdodCBleGNlcHRpb24gaGFuZGxlcjogZXhjZXB0aW9uICVzXFxuXCJcbiAgICAgICAgKHRvX3N0cmluZyBleG4nKTtcbiAgICAgIHByaW50X3Jhd19iYWNrdHJhY2Ugc3RkZXJyIHJhd19iYWNrdHJhY2UnO1xuICAgICAgZmx1c2ggc3RkZXJyXG4gIHdpdGhcbiAgICB8IE91dF9vZl9tZW1vcnkgLT5cbiAgICAgICAgcHJlcnJfZW5kbGluZVxuICAgICAgICAgIFwiRmF0YWwgZXJyb3I6IG91dCBvZiBtZW1vcnkgaW4gdW5jYXVnaHQgZXhjZXB0aW9uIGhhbmRsZXJcIlxuXG4oKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBbY2FtbF9mYXRhbF91bmNhdWdodF9leGNlcHRpb25dIGluXG4gICBbcnVudGltZS9wcmludGV4Yy5jXSB3aGljaCBleHBlY3RzIG5vIGV4Y2VwdGlvbiBpcyByYWlzZWQuICopXG5sZXQgaGFuZGxlX3VuY2F1Z2h0X2V4Y2VwdGlvbiBleG4gZGVidWdnZXJfaW5fdXNlID1cbiAgdHJ5XG4gICAgaGFuZGxlX3VuY2F1Z2h0X2V4Y2VwdGlvbicgZXhuIGRlYnVnZ2VyX2luX3VzZVxuICB3aXRoIF8gLT5cbiAgICAoKiBUaGVyZSBpcyBub3QgbXVjaCB3ZSBjYW4gZG8gYXQgdGhpcyBwb2ludCAqKVxuICAgICgpXG5cbmV4dGVybmFsIHJlZ2lzdGVyX25hbWVkX3ZhbHVlIDogc3RyaW5nIC0+ICdhIC0+IHVuaXRcbiAgPSBcImNhbWxfcmVnaXN0ZXJfbmFtZWRfdmFsdWVcIlxuXG5sZXQgKCkgPVxuICByZWdpc3Rlcl9uYW1lZF92YWx1ZSBcIlByaW50ZXhjLmhhbmRsZV91bmNhdWdodF9leGNlcHRpb25cIlxuICAgIGhhbmRsZV91bmNhdWdodF9leGNlcHRpb25cbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBPQ2FtbCBwcm9ncmFtbWVycyAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTggSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuZXh0ZXJuYWwgaWQgOiAnYSAtPiAnYSA9IFwiJWlkZW50aXR5XCJcbmxldCBjb25zdCBjIF8gPSBjXG5sZXQgZmxpcCBmIHggeSA9IGYgeSB4XG5sZXQgbmVnYXRlIHAgdiA9IG5vdCAocCB2KVxuXG5leGNlcHRpb24gRmluYWxseV9yYWlzZWQgb2YgZXhuXG5cbmxldCAoKSA9IFByaW50ZXhjLnJlZ2lzdGVyX3ByaW50ZXIgQEAgZnVuY3Rpb25cbnwgRmluYWxseV9yYWlzZWQgZXhuIC0+IFNvbWUgKFwiRnVuLkZpbmFsbHlfcmFpc2VkOiBcIiBeIFByaW50ZXhjLnRvX3N0cmluZyBleG4pXG58IF8gLT4gTm9uZVxuXG5sZXQgcHJvdGVjdCB+KGZpbmFsbHkgOiB1bml0IC0+IHVuaXQpIHdvcmsgPVxuICBsZXQgZmluYWxseV9ub19leG4gKCkgPVxuICAgIHRyeSBmaW5hbGx5ICgpIHdpdGggZSAtPlxuICAgICAgbGV0IGJ0ID0gUHJpbnRleGMuZ2V0X3Jhd19iYWNrdHJhY2UgKCkgaW5cbiAgICAgIFByaW50ZXhjLnJhaXNlX3dpdGhfYmFja3RyYWNlIChGaW5hbGx5X3JhaXNlZCBlKSBidFxuICBpblxuICBtYXRjaCB3b3JrICgpIHdpdGhcbiAgfCByZXN1bHQgLT4gZmluYWxseV9ub19leG4gKCkgOyByZXN1bHRcbiAgfCBleGNlcHRpb24gd29ya19leG4gLT5cbiAgICAgIGxldCB3b3JrX2J0ID0gUHJpbnRleGMuZ2V0X3Jhd19iYWNrdHJhY2UgKCkgaW5cbiAgICAgIGZpbmFsbHlfbm9fZXhuICgpIDtcbiAgICAgIFByaW50ZXhjLnJhaXNlX3dpdGhfYmFja3RyYWNlIHdvcmtfZXhuIHdvcmtfYnRcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgRGFtaWVuIERvbGlnZXosIHByb2pldCBQYXJhLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgSmFjcXVlcy1IZW5yaSBKb3VyZGFuLCBwcm9qZXQgR2FsbGl1bSwgSU5SSUEgUGFyaXMgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYtMjAxNiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlICAgKilcbigqICAgICBldCBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSBzdGF0ID0ge1xuICBtaW5vcl93b3JkcyA6IGZsb2F0O1xuICBwcm9tb3RlZF93b3JkcyA6IGZsb2F0O1xuICBtYWpvcl93b3JkcyA6IGZsb2F0O1xuICBtaW5vcl9jb2xsZWN0aW9ucyA6IGludDtcbiAgbWFqb3JfY29sbGVjdGlvbnMgOiBpbnQ7XG4gIGhlYXBfd29yZHMgOiBpbnQ7XG4gIGhlYXBfY2h1bmtzIDogaW50O1xuICBsaXZlX3dvcmRzIDogaW50O1xuICBsaXZlX2Jsb2NrcyA6IGludDtcbiAgZnJlZV93b3JkcyA6IGludDtcbiAgZnJlZV9ibG9ja3MgOiBpbnQ7XG4gIGxhcmdlc3RfZnJlZSA6IGludDtcbiAgZnJhZ21lbnRzIDogaW50O1xuICBjb21wYWN0aW9ucyA6IGludDtcbiAgdG9wX2hlYXBfd29yZHMgOiBpbnQ7XG4gIHN0YWNrX3NpemUgOiBpbnQ7XG4gIGZvcmNlZF9tYWpvcl9jb2xsZWN0aW9uczogaW50O1xufVxuXG50eXBlIGNvbnRyb2wgPSB7XG4gIG11dGFibGUgbWlub3JfaGVhcF9zaXplIDogaW50O1xuICBtdXRhYmxlIG1ham9yX2hlYXBfaW5jcmVtZW50IDogaW50O1xuICBtdXRhYmxlIHNwYWNlX292ZXJoZWFkIDogaW50O1xuICBtdXRhYmxlIHZlcmJvc2UgOiBpbnQ7XG4gIG11dGFibGUgbWF4X292ZXJoZWFkIDogaW50O1xuICBtdXRhYmxlIHN0YWNrX2xpbWl0IDogaW50O1xuICBtdXRhYmxlIGFsbG9jYXRpb25fcG9saWN5IDogaW50O1xuICB3aW5kb3dfc2l6ZSA6IGludDtcbiAgY3VzdG9tX21ham9yX3JhdGlvIDogaW50O1xuICBjdXN0b21fbWlub3JfcmF0aW8gOiBpbnQ7XG4gIGN1c3RvbV9taW5vcl9tYXhfc2l6ZSA6IGludDtcbn1cblxuZXh0ZXJuYWwgc3RhdCA6IHVuaXQgLT4gc3RhdCA9IFwiY2FtbF9nY19zdGF0XCJcbmV4dGVybmFsIHF1aWNrX3N0YXQgOiB1bml0IC0+IHN0YXQgPSBcImNhbWxfZ2NfcXVpY2tfc3RhdFwiXG5leHRlcm5hbCBjb3VudGVycyA6IHVuaXQgLT4gKGZsb2F0ICogZmxvYXQgKiBmbG9hdCkgPSBcImNhbWxfZ2NfY291bnRlcnNcIlxuZXh0ZXJuYWwgbWlub3Jfd29yZHMgOiB1bml0IC0+IChmbG9hdCBbQHVuYm94ZWRdKVxuICA9IFwiY2FtbF9nY19taW5vcl93b3Jkc1wiIFwiY2FtbF9nY19taW5vcl93b3Jkc191bmJveGVkXCJcbmV4dGVybmFsIGdldCA6IHVuaXQgLT4gY29udHJvbCA9IFwiY2FtbF9nY19nZXRcIlxuZXh0ZXJuYWwgc2V0IDogY29udHJvbCAtPiB1bml0ID0gXCJjYW1sX2djX3NldFwiXG5leHRlcm5hbCBtaW5vciA6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9nY19taW5vclwiXG5leHRlcm5hbCBtYWpvcl9zbGljZSA6IGludCAtPiBpbnQgPSBcImNhbWxfZ2NfbWFqb3Jfc2xpY2VcIlxuZXh0ZXJuYWwgbWFqb3IgOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfZ2NfbWFqb3JcIlxuZXh0ZXJuYWwgZnVsbF9tYWpvciA6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9nY19mdWxsX21ham9yXCJcbmV4dGVybmFsIGNvbXBhY3QgOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfZ2NfY29tcGFjdGlvblwiXG5leHRlcm5hbCBnZXRfbWlub3JfZnJlZSA6IHVuaXQgLT4gaW50ID0gXCJjYW1sX2dldF9taW5vcl9mcmVlXCJcbmV4dGVybmFsIGdldF9idWNrZXQgOiBpbnQgLT4gaW50ID0gXCJjYW1sX2dldF9tYWpvcl9idWNrZXRcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZ2V0X2NyZWRpdCA6IHVuaXQgLT4gaW50ID0gXCJjYW1sX2dldF9tYWpvcl9jcmVkaXRcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgaHVnZV9mYWxsYmFja19jb3VudCA6IHVuaXQgLT4gaW50ID0gXCJjYW1sX2djX2h1Z2VfZmFsbGJhY2tfY291bnRcIlxuZXh0ZXJuYWwgZXZlbnRsb2dfcGF1c2UgOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfZXZlbnRsb2dfcGF1c2VcIlxuZXh0ZXJuYWwgZXZlbnRsb2dfcmVzdW1lIDogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2V2ZW50bG9nX3Jlc3VtZVwiXG5cbm9wZW4gUHJpbnRmXG5cbmxldCBwcmludF9zdGF0IGMgPVxuICBsZXQgc3QgPSBzdGF0ICgpIGluXG4gIGZwcmludGYgYyBcIm1pbm9yX2NvbGxlY3Rpb25zOiAgICAgICVkXFxuXCIgc3QubWlub3JfY29sbGVjdGlvbnM7XG4gIGZwcmludGYgYyBcIm1ham9yX2NvbGxlY3Rpb25zOiAgICAgICVkXFxuXCIgc3QubWFqb3JfY29sbGVjdGlvbnM7XG4gIGZwcmludGYgYyBcImNvbXBhY3Rpb25zOiAgICAgICAgICAgICVkXFxuXCIgc3QuY29tcGFjdGlvbnM7XG4gIGZwcmludGYgYyBcImZvcmNlZF9tYWpvcl9jb2xsZWN0aW9uczogJWRcXG5cIiBzdC5mb3JjZWRfbWFqb3JfY29sbGVjdGlvbnM7XG4gIGZwcmludGYgYyBcIlxcblwiO1xuICBsZXQgbDEgPSBTdHJpbmcubGVuZ3RoIChzcHJpbnRmIFwiJS4wZlwiIHN0Lm1pbm9yX3dvcmRzKSBpblxuICBmcHJpbnRmIGMgXCJtaW5vcl93b3JkczogICAgJSouMGZcXG5cIiBsMSBzdC5taW5vcl93b3JkcztcbiAgZnByaW50ZiBjIFwicHJvbW90ZWRfd29yZHM6ICUqLjBmXFxuXCIgbDEgc3QucHJvbW90ZWRfd29yZHM7XG4gIGZwcmludGYgYyBcIm1ham9yX3dvcmRzOiAgICAlKi4wZlxcblwiIGwxIHN0Lm1ham9yX3dvcmRzO1xuICBmcHJpbnRmIGMgXCJcXG5cIjtcbiAgbGV0IGwyID0gU3RyaW5nLmxlbmd0aCAoc3ByaW50ZiBcIiVkXCIgc3QudG9wX2hlYXBfd29yZHMpIGluXG4gIGZwcmludGYgYyBcInRvcF9oZWFwX3dvcmRzOiAlKmRcXG5cIiBsMiBzdC50b3BfaGVhcF93b3JkcztcbiAgZnByaW50ZiBjIFwiaGVhcF93b3JkczogICAgICUqZFxcblwiIGwyIHN0LmhlYXBfd29yZHM7XG4gIGZwcmludGYgYyBcImxpdmVfd29yZHM6ICAgICAlKmRcXG5cIiBsMiBzdC5saXZlX3dvcmRzO1xuICBmcHJpbnRmIGMgXCJmcmVlX3dvcmRzOiAgICAgJSpkXFxuXCIgbDIgc3QuZnJlZV93b3JkcztcbiAgZnByaW50ZiBjIFwibGFyZ2VzdF9mcmVlOiAgICUqZFxcblwiIGwyIHN0Lmxhcmdlc3RfZnJlZTtcbiAgZnByaW50ZiBjIFwiZnJhZ21lbnRzOiAgICAgICUqZFxcblwiIGwyIHN0LmZyYWdtZW50cztcbiAgZnByaW50ZiBjIFwiXFxuXCI7XG4gIGZwcmludGYgYyBcImxpdmVfYmxvY2tzOiAlZFxcblwiIHN0LmxpdmVfYmxvY2tzO1xuICBmcHJpbnRmIGMgXCJmcmVlX2Jsb2NrczogJWRcXG5cIiBzdC5mcmVlX2Jsb2NrcztcbiAgZnByaW50ZiBjIFwiaGVhcF9jaHVua3M6ICVkXFxuXCIgc3QuaGVhcF9jaHVua3NcblxuXG5sZXQgYWxsb2NhdGVkX2J5dGVzICgpID1cbiAgbGV0IChtaSwgcHJvLCBtYSkgPSBjb3VudGVycyAoKSBpblxuICAobWkgKy4gbWEgLS4gcHJvKSAqLiBmbG9hdF9vZl9pbnQgKFN5cy53b3JkX3NpemUgLyA4KVxuXG5cbmV4dGVybmFsIGZpbmFsaXNlIDogKCdhIC0+IHVuaXQpIC0+ICdhIC0+IHVuaXQgPSBcImNhbWxfZmluYWxfcmVnaXN0ZXJcIlxuZXh0ZXJuYWwgZmluYWxpc2VfbGFzdCA6ICh1bml0IC0+IHVuaXQpIC0+ICdhIC0+IHVuaXQgPVxuICBcImNhbWxfZmluYWxfcmVnaXN0ZXJfY2FsbGVkX3dpdGhvdXRfdmFsdWVcIlxuZXh0ZXJuYWwgZmluYWxpc2VfcmVsZWFzZSA6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9maW5hbF9yZWxlYXNlXCJcblxuXG50eXBlIGFsYXJtID0gYm9vbCByZWZcbnR5cGUgYWxhcm1fcmVjID0ge2FjdGl2ZSA6IGFsYXJtOyBmIDogdW5pdCAtPiB1bml0fVxuXG5sZXQgcmVjIGNhbGxfYWxhcm0gYXJlYyA9XG4gIGlmICEoYXJlYy5hY3RpdmUpIHRoZW4gYmVnaW5cbiAgICBmaW5hbGlzZSBjYWxsX2FsYXJtIGFyZWM7XG4gICAgYXJlYy5mICgpO1xuICBlbmRcblxuXG5sZXQgY3JlYXRlX2FsYXJtIGYgPVxuICBsZXQgYXJlYyA9IHsgYWN0aXZlID0gcmVmIHRydWU7IGYgPSBmIH0gaW5cbiAgZmluYWxpc2UgY2FsbF9hbGFybSBhcmVjO1xuICBhcmVjLmFjdGl2ZVxuXG5cbmxldCBkZWxldGVfYWxhcm0gYSA9IGEgOj0gZmFsc2VcblxubW9kdWxlIE1lbXByb2YgPVxuICBzdHJ1Y3RcbiAgICB0eXBlIGFsbG9jYXRpb25fc291cmNlID0gTm9ybWFsIHwgTWFyc2hhbCB8IEN1c3RvbVxuICAgIHR5cGUgYWxsb2NhdGlvbiA9XG4gICAgICB7IG5fc2FtcGxlcyA6IGludDtcbiAgICAgICAgc2l6ZSA6IGludDtcbiAgICAgICAgc291cmNlIDogYWxsb2NhdGlvbl9zb3VyY2U7XG4gICAgICAgIGNhbGxzdGFjayA6IFByaW50ZXhjLnJhd19iYWNrdHJhY2UgfVxuXG4gICAgdHlwZSAoJ21pbm9yLCAnbWFqb3IpIHRyYWNrZXIgPSB7XG4gICAgICBhbGxvY19taW5vcjogYWxsb2NhdGlvbiAtPiAnbWlub3Igb3B0aW9uO1xuICAgICAgYWxsb2NfbWFqb3I6IGFsbG9jYXRpb24gLT4gJ21ham9yIG9wdGlvbjtcbiAgICAgIHByb21vdGU6ICdtaW5vciAtPiAnbWFqb3Igb3B0aW9uO1xuICAgICAgZGVhbGxvY19taW5vcjogJ21pbm9yIC0+IHVuaXQ7XG4gICAgICBkZWFsbG9jX21ham9yOiAnbWFqb3IgLT4gdW5pdDtcbiAgICB9XG5cbiAgICBsZXQgbnVsbF90cmFja2VyID0ge1xuICAgICAgYWxsb2NfbWlub3IgPSAoZnVuIF8gLT4gTm9uZSk7XG4gICAgICBhbGxvY19tYWpvciA9IChmdW4gXyAtPiBOb25lKTtcbiAgICAgIHByb21vdGUgPSAoZnVuIF8gLT4gTm9uZSk7XG4gICAgICBkZWFsbG9jX21pbm9yID0gKGZ1biBfIC0+ICgpKTtcbiAgICAgIGRlYWxsb2NfbWFqb3IgPSAoZnVuIF8gLT4gKCkpO1xuICAgIH1cblxuICAgIGV4dGVybmFsIGNfc3RhcnQgOlxuICAgICAgZmxvYXQgLT4gaW50IC0+ICgnbWlub3IsICdtYWpvcikgdHJhY2tlciAtPiB1bml0XG4gICAgICA9IFwiY2FtbF9tZW1wcm9mX3N0YXJ0XCJcblxuICAgIGxldCBzdGFydFxuICAgICAgfnNhbXBsaW5nX3JhdGVcbiAgICAgID8oY2FsbHN0YWNrX3NpemUgPSBtYXhfaW50KVxuICAgICAgdHJhY2tlciA9XG4gICAgICBjX3N0YXJ0IHNhbXBsaW5nX3JhdGUgY2FsbHN0YWNrX3NpemUgdHJhY2tlclxuXG4gICAgZXh0ZXJuYWwgc3RvcCA6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9tZW1wcm9mX3N0b3BcIlxuICBlbmRcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogTWVzc2FnZSBkaWdlc3QgKE1ENSkgKilcblxudHlwZSB0ID0gc3RyaW5nXG5cbmxldCBjb21wYXJlID0gU3RyaW5nLmNvbXBhcmVcbmxldCBlcXVhbCA9IFN0cmluZy5lcXVhbFxuXG5leHRlcm5hbCB1bnNhZmVfc3RyaW5nOiBzdHJpbmcgLT4gaW50IC0+IGludCAtPiB0ID0gXCJjYW1sX21kNV9zdHJpbmdcIlxuZXh0ZXJuYWwgY2hhbm5lbDogaW5fY2hhbm5lbCAtPiBpbnQgLT4gdCA9IFwiY2FtbF9tZDVfY2hhblwiXG5cbmxldCBzdHJpbmcgc3RyID1cbiAgdW5zYWZlX3N0cmluZyBzdHIgMCAoU3RyaW5nLmxlbmd0aCBzdHIpXG5cbmxldCBieXRlcyBiID0gc3RyaW5nIChCeXRlcy51bnNhZmVfdG9fc3RyaW5nIGIpXG5cbmxldCBzdWJzdHJpbmcgc3RyIG9mcyBsZW4gPVxuICBpZiBvZnMgPCAwIHx8IGxlbiA8IDAgfHwgb2ZzID4gU3RyaW5nLmxlbmd0aCBzdHIgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIkRpZ2VzdC5zdWJzdHJpbmdcIlxuICBlbHNlIHVuc2FmZV9zdHJpbmcgc3RyIG9mcyBsZW5cblxubGV0IHN1YmJ5dGVzIGIgb2ZzIGxlbiA9IHN1YnN0cmluZyAoQnl0ZXMudW5zYWZlX3RvX3N0cmluZyBiKSBvZnMgbGVuXG5cbmxldCBmaWxlIGZpbGVuYW1lID1cbiAgbGV0IGljID0gb3Blbl9pbl9iaW4gZmlsZW5hbWUgaW5cbiAgbWF0Y2ggY2hhbm5lbCBpYyAoLTEpIHdpdGhcbiAgICB8IGQgLT4gY2xvc2VfaW4gaWM7IGRcbiAgICB8IGV4Y2VwdGlvbiBlIC0+IGNsb3NlX2luIGljOyByYWlzZSBlXG5cbmxldCBvdXRwdXQgY2hhbiBkaWdlc3QgPVxuICBvdXRwdXRfc3RyaW5nIGNoYW4gZGlnZXN0XG5cbmxldCBpbnB1dCBjaGFuID0gcmVhbGx5X2lucHV0X3N0cmluZyBjaGFuIDE2XG5cbmxldCBjaGFyX2hleCBuID1cbiAgQ2hhci51bnNhZmVfY2hyIChuICsgaWYgbiA8IDEwIHRoZW4gQ2hhci5jb2RlICcwJyBlbHNlIChDaGFyLmNvZGUgJ2EnIC0gMTApKVxuXG5sZXQgdG9faGV4IGQgPVxuICBpZiBTdHJpbmcubGVuZ3RoIGQgPD4gMTYgdGhlbiBpbnZhbGlkX2FyZyBcIkRpZ2VzdC50b19oZXhcIjtcbiAgbGV0IHJlc3VsdCA9IEJ5dGVzLmNyZWF0ZSAzMiBpblxuICBmb3IgaSA9IDAgdG8gMTUgZG9cbiAgICBsZXQgeCA9IENoYXIuY29kZSBkLltpXSBpblxuICAgIEJ5dGVzLnVuc2FmZV9zZXQgcmVzdWx0IChpKjIpIChjaGFyX2hleCAoeCBsc3IgNCkpO1xuICAgIEJ5dGVzLnVuc2FmZV9zZXQgcmVzdWx0IChpKjIrMSkgKGNoYXJfaGV4ICh4IGxhbmQgMHgwZikpO1xuICBkb25lO1xuICBCeXRlcy51bnNhZmVfdG9fc3RyaW5nIHJlc3VsdFxuXG5sZXQgZnJvbV9oZXggcyA9XG4gIGlmIFN0cmluZy5sZW5ndGggcyA8PiAzMiB0aGVuIGludmFsaWRfYXJnIFwiRGlnZXN0LmZyb21faGV4XCI7XG4gIGxldCBkaWdpdCBjID1cbiAgICBtYXRjaCBjIHdpdGhcbiAgICB8ICcwJy4uJzknIC0+IENoYXIuY29kZSBjIC0gQ2hhci5jb2RlICcwJ1xuICAgIHwgJ0EnLi4nRicgLT4gQ2hhci5jb2RlIGMgLSBDaGFyLmNvZGUgJ0EnICsgMTBcbiAgICB8ICdhJy4uJ2YnIC0+IENoYXIuY29kZSBjIC0gQ2hhci5jb2RlICdhJyArIDEwXG4gICAgfCBfIC0+IHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IFwiRGlnZXN0LmZyb21faGV4XCIpXG4gIGluXG4gIGxldCBieXRlIGkgPSBkaWdpdCBzLltpXSBsc2wgNCArIGRpZ2l0IHMuW2krMV0gaW5cbiAgbGV0IHJlc3VsdCA9IEJ5dGVzLmNyZWF0ZSAxNiBpblxuICBmb3IgaSA9IDAgdG8gMTUgZG9cbiAgICBCeXRlcy5zZXQgcmVzdWx0IGkgKENoYXIuY2hyIChieXRlICgyICogaSkpKTtcbiAgZG9uZTtcbiAgQnl0ZXMudW5zYWZlX3RvX3N0cmluZyByZXN1bHRcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgRGFtaWVuIERvbGlnZXosIHByb2pldCBQYXJhLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogUHNldWRvLXJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yXG4gICBUaGlzIGlzIGEgbGFnZ2VkLUZpYm9uYWNjaSBGKDU1LCAyNCwgKykgd2l0aCBhIG1vZGlmaWVkIGFkZGl0aW9uXG4gICBmdW5jdGlvbiB0byBlbmhhbmNlIHRoZSBtaXhpbmcgb2YgYml0cy5cbiAgIElmIHdlIHVzZSBub3JtYWwgYWRkaXRpb24sIHRoZSBsb3ctb3JkZXIgYml0IGZhaWxzIHRlc3RzIDEgYW5kIDdcbiAgIG9mIHRoZSBEaWVoYXJkIHRlc3Qgc3VpdGUsIGFuZCBiaXRzIDEgYW5kIDIgYWxzbyBmYWlsIHRlc3QgNy5cbiAgIElmIHdlIHVzZSBtdWx0aXBsaWNhdGlvbiBhcyBzdWdnZXN0ZWQgYnkgTWFyc2FnbGlhLCBpdCBkb2Vzbid0IGZhcmVcbiAgIG11Y2ggYmV0dGVyLlxuICAgQnkgbWl4aW5nIHRoZSBiaXRzIG9mIG9uZSBvZiB0aGUgbnVtYmVycyBiZWZvcmUgYWRkaXRpb24gKFhPUiB0aGVcbiAgIDUgaGlnaC1vcmRlciBiaXRzIGludG8gdGhlIGxvdy1vcmRlciBiaXRzKSwgd2UgZ2V0IGEgZ2VuZXJhdG9yIHRoYXRcbiAgIHBhc3NlcyBhbGwgdGhlIERpZWhhcmQgdGVzdHMuXG4qKVxuXG5leHRlcm5hbCByYW5kb21fc2VlZDogdW5pdCAtPiBpbnQgYXJyYXkgPSBcImNhbWxfc3lzX3JhbmRvbV9zZWVkXCJcblxubW9kdWxlIFN0YXRlID0gc3RydWN0XG5cbiAgdHlwZSB0ID0geyBzdCA6IGludCBhcnJheTsgbXV0YWJsZSBpZHggOiBpbnQgfVxuXG4gIGxldCBuZXdfc3RhdGUgKCkgPSB7IHN0ID0gQXJyYXkubWFrZSA1NSAwOyBpZHggPSAwIH1cbiAgbGV0IGFzc2lnbiBzdDEgc3QyID1cbiAgICBBcnJheS5ibGl0IHN0Mi5zdCAwIHN0MS5zdCAwIDU1O1xuICAgIHN0MS5pZHggPC0gc3QyLmlkeFxuXG5cbiAgbGV0IGZ1bGxfaW5pdCBzIHNlZWQgPVxuICAgIGxldCBjb21iaW5lIGFjY3UgeCA9IERpZ2VzdC5zdHJpbmcgKGFjY3UgXiBJbnQudG9fc3RyaW5nIHgpIGluXG4gICAgbGV0IGV4dHJhY3QgZCA9XG4gICAgICBDaGFyLmNvZGUgZC5bMF0gKyAoQ2hhci5jb2RlIGQuWzFdIGxzbCA4KSArIChDaGFyLmNvZGUgZC5bMl0gbHNsIDE2KVxuICAgICAgKyAoQ2hhci5jb2RlIGQuWzNdIGxzbCAyNClcbiAgICBpblxuICAgIGxldCBzZWVkID0gaWYgQXJyYXkubGVuZ3RoIHNlZWQgPSAwIHRoZW4gW3wgMCB8XSBlbHNlIHNlZWQgaW5cbiAgICBsZXQgbCA9IEFycmF5Lmxlbmd0aCBzZWVkIGluXG4gICAgZm9yIGkgPSAwIHRvIDU0IGRvXG4gICAgICBzLnN0LihpKSA8LSBpO1xuICAgIGRvbmU7XG4gICAgbGV0IGFjY3UgPSByZWYgXCJ4XCIgaW5cbiAgICBmb3IgaSA9IDAgdG8gNTQgKyBJbnQubWF4IDU1IGwgZG9cbiAgICAgIGxldCBqID0gaSBtb2QgNTUgaW5cbiAgICAgIGxldCBrID0gaSBtb2QgbCBpblxuICAgICAgYWNjdSA6PSBjb21iaW5lICFhY2N1IHNlZWQuKGspO1xuICAgICAgcy5zdC4oaikgPC0gKHMuc3QuKGopIGx4b3IgZXh0cmFjdCAhYWNjdSkgbGFuZCAweDNGRkZGRkZGOyAgKCogUFIjNTU3NSAqKVxuICAgIGRvbmU7XG4gICAgcy5pZHggPC0gMFxuXG5cbiAgbGV0IG1ha2Ugc2VlZCA9XG4gICAgbGV0IHJlc3VsdCA9IG5ld19zdGF0ZSAoKSBpblxuICAgIGZ1bGxfaW5pdCByZXN1bHQgc2VlZDtcbiAgICByZXN1bHRcblxuXG4gIGxldCBtYWtlX3NlbGZfaW5pdCAoKSA9IG1ha2UgKHJhbmRvbV9zZWVkICgpKVxuXG4gIGxldCBjb3B5IHMgPVxuICAgIGxldCByZXN1bHQgPSBuZXdfc3RhdGUgKCkgaW5cbiAgICBhc3NpZ24gcmVzdWx0IHM7XG4gICAgcmVzdWx0XG5cblxuICAoKiBSZXR1cm5zIDMwIHJhbmRvbSBiaXRzIGFzIGFuIGludGVnZXIgMCA8PSB4IDwgMTA3Mzc0MTgyNCAqKVxuICBsZXQgYml0cyBzID1cbiAgICBzLmlkeCA8LSAocy5pZHggKyAxKSBtb2QgNTU7XG4gICAgbGV0IGN1cnZhbCA9IHMuc3QuKHMuaWR4KSBpblxuICAgIGxldCBuZXd2YWwgPSBzLnN0Ligocy5pZHggKyAyNCkgbW9kIDU1KVxuICAgICAgICAgICAgICAgICArIChjdXJ2YWwgbHhvciAoKGN1cnZhbCBsc3IgMjUpIGxhbmQgMHgxRikpIGluXG4gICAgbGV0IG5ld3ZhbDMwID0gbmV3dmFsIGxhbmQgMHgzRkZGRkZGRiBpbiAgKCogUFIjNTU3NSAqKVxuICAgIHMuc3QuKHMuaWR4KSA8LSBuZXd2YWwzMDtcbiAgICBuZXd2YWwzMFxuXG5cbiAgbGV0IHJlYyBpbnRhdXggcyBuID1cbiAgICBsZXQgciA9IGJpdHMgcyBpblxuICAgIGxldCB2ID0gciBtb2QgbiBpblxuICAgIGlmIHIgLSB2ID4gMHgzRkZGRkZGRiAtIG4gKyAxIHRoZW4gaW50YXV4IHMgbiBlbHNlIHZcblxuICBsZXQgaW50IHMgYm91bmQgPVxuICAgIGlmIGJvdW5kID4gMHgzRkZGRkZGRiB8fCBib3VuZCA8PSAwXG4gICAgdGhlbiBpbnZhbGlkX2FyZyBcIlJhbmRvbS5pbnRcIlxuICAgIGVsc2UgaW50YXV4IHMgYm91bmRcblxuICBsZXQgcmVjIGludDYzYXV4IHMgbiA9XG4gICAgbGV0IG1heF9pbnRfMzIgPSAoMSBsc2wgMzApICsgMHgzRkZGRkZGRiBpbiAoKiAweDdGRkZGRkZGICopXG4gICAgbGV0IGIxID0gYml0cyBzIGluXG4gICAgbGV0IGIyID0gYml0cyBzIGluXG4gICAgbGV0IChyLCBtYXhfaW50KSA9XG4gICAgICBpZiBuIDw9IG1heF9pbnRfMzIgdGhlblxuICAgICAgICAoKiAzMSByYW5kb20gYml0cyBvbiBib3RoIDY0LWJpdCBPQ2FtbCBhbmQgSmF2YVNjcmlwdC5cbiAgICAgICAgICAgVXNlIHVwcGVyIDE1IGJpdHMgb2YgYjEgYW5kIDE2IGJpdHMgb2YgYjIuICopXG4gICAgICAgIGxldCBicG9zID1cbiAgICAgICAgICAoKChiMiBsYW5kIDB4M0ZGRkMwMDApIGxzbCAxKSBsb3IgKGIxIGxzciAxNSkpXG4gICAgICAgIGluXG4gICAgICAgICAgKGJwb3MsIG1heF9pbnRfMzIpXG4gICAgICBlbHNlXG4gICAgICAgIGxldCBiMyA9IGJpdHMgcyBpblxuICAgICAgICAoKiA2MiByYW5kb20gYml0cyBvbiA2NC1iaXQgT0NhbWw7IHVucmVhY2hhYmxlIG9uIEphdmFTY3JpcHQuXG4gICAgICAgICAgIFVzZSB1cHBlciAyMCBiaXRzIG9mIGIxIGFuZCAyMSBiaXRzIG9mIGIyIGFuZCBiMy4gKilcbiAgICAgICAgbGV0IGJwb3MgPVxuICAgICAgICAgICgoKChiMyBsYW5kIDB4M0ZGRkZFMDApIGxzbCAxMikgbG9yIChiMiBsc3IgOSkpIGxzbCAyMClcbiAgICAgICAgICAgIGxvciAoYjEgbHNyIDEwKVxuICAgICAgICBpblxuICAgICAgICAgIChicG9zLCBtYXhfaW50KVxuICAgIGluXG4gICAgbGV0IHYgPSByIG1vZCBuIGluXG4gICAgaWYgciAtIHYgPiBtYXhfaW50IC0gbiArIDEgdGhlbiBpbnQ2M2F1eCBzIG4gZWxzZSB2XG5cbiAgbGV0IGZ1bGxfaW50IHMgYm91bmQgPVxuICAgIGlmIGJvdW5kIDw9IDAgdGhlblxuICAgICAgaW52YWxpZF9hcmcgXCJSYW5kb20uZnVsbF9pbnRcIlxuICAgIGVsc2UgaWYgYm91bmQgPiAweDNGRkZGRkZGIHRoZW5cbiAgICAgIGludDYzYXV4IHMgYm91bmRcbiAgICBlbHNlXG4gICAgICBpbnRhdXggcyBib3VuZFxuXG5cbiAgbGV0IHJlYyBpbnQzMmF1eCBzIG4gPVxuICAgIGxldCBiMSA9IEludDMyLm9mX2ludCAoYml0cyBzKSBpblxuICAgIGxldCBiMiA9IEludDMyLnNoaWZ0X2xlZnQgKEludDMyLm9mX2ludCAoYml0cyBzIGxhbmQgMSkpIDMwIGluXG4gICAgbGV0IHIgPSBJbnQzMi5sb2dvciBiMSBiMiBpblxuICAgIGxldCB2ID0gSW50MzIucmVtIHIgbiBpblxuICAgIGlmIEludDMyLnN1YiByIHYgPiBJbnQzMi5hZGQgKEludDMyLnN1YiBJbnQzMi5tYXhfaW50IG4pIDFsXG4gICAgdGhlbiBpbnQzMmF1eCBzIG5cbiAgICBlbHNlIHZcblxuICBsZXQgaW50MzIgcyBib3VuZCA9XG4gICAgaWYgYm91bmQgPD0gMGxcbiAgICB0aGVuIGludmFsaWRfYXJnIFwiUmFuZG9tLmludDMyXCJcbiAgICBlbHNlIGludDMyYXV4IHMgYm91bmRcblxuXG4gIGxldCByZWMgaW50NjRhdXggcyBuID1cbiAgICBsZXQgYjEgPSBJbnQ2NC5vZl9pbnQgKGJpdHMgcykgaW5cbiAgICBsZXQgYjIgPSBJbnQ2NC5zaGlmdF9sZWZ0IChJbnQ2NC5vZl9pbnQgKGJpdHMgcykpIDMwIGluXG4gICAgbGV0IGIzID0gSW50NjQuc2hpZnRfbGVmdCAoSW50NjQub2ZfaW50IChiaXRzIHMgbGFuZCA3KSkgNjAgaW5cbiAgICBsZXQgciA9IEludDY0LmxvZ29yIGIxIChJbnQ2NC5sb2dvciBiMiBiMykgaW5cbiAgICBsZXQgdiA9IEludDY0LnJlbSByIG4gaW5cbiAgICBpZiBJbnQ2NC5zdWIgciB2ID4gSW50NjQuYWRkIChJbnQ2NC5zdWIgSW50NjQubWF4X2ludCBuKSAxTFxuICAgIHRoZW4gaW50NjRhdXggcyBuXG4gICAgZWxzZSB2XG5cbiAgbGV0IGludDY0IHMgYm91bmQgPVxuICAgIGlmIGJvdW5kIDw9IDBMXG4gICAgdGhlbiBpbnZhbGlkX2FyZyBcIlJhbmRvbS5pbnQ2NFwiXG4gICAgZWxzZSBpbnQ2NGF1eCBzIGJvdW5kXG5cblxuICBsZXQgbmF0aXZlaW50ID1cbiAgICBpZiBOYXRpdmVpbnQuc2l6ZSA9IDMyXG4gICAgdGhlbiBmdW4gcyBib3VuZCAtPiBOYXRpdmVpbnQub2ZfaW50MzIgKGludDMyIHMgKE5hdGl2ZWludC50b19pbnQzMiBib3VuZCkpXG4gICAgZWxzZSBmdW4gcyBib3VuZCAtPiBJbnQ2NC50b19uYXRpdmVpbnQgKGludDY0IHMgKEludDY0Lm9mX25hdGl2ZWludCBib3VuZCkpXG5cblxuICAoKiBSZXR1cm5zIGEgZmxvYXQgMCA8PSB4IDw9IDEgd2l0aCBhdCBtb3N0IDYwIGJpdHMgb2YgcHJlY2lzaW9uLiAqKVxuICBsZXQgcmF3ZmxvYXQgcyA9XG4gICAgbGV0IHNjYWxlID0gMTA3Mzc0MTgyNC4wICAoKiAyXjMwICopXG4gICAgYW5kIHIxID0gU3RkbGliLmZsb2F0IChiaXRzIHMpXG4gICAgYW5kIHIyID0gU3RkbGliLmZsb2F0IChiaXRzIHMpXG4gICAgaW4gKHIxIC8uIHNjYWxlICsuIHIyKSAvLiBzY2FsZVxuXG5cbiAgbGV0IGZsb2F0IHMgYm91bmQgPSByYXdmbG9hdCBzICouIGJvdW5kXG5cbiAgbGV0IGJvb2wgcyA9IChiaXRzIHMgbGFuZCAxID0gMClcblxuICBsZXQgYml0czMyIHMgPVxuICAgIGxldCBiMSA9IEludDMyLihzaGlmdF9yaWdodF9sb2dpY2FsIChvZl9pbnQgKGJpdHMgcykpIDE0KSBpbiAgKCogMTYgYml0cyAqKVxuICAgIGxldCBiMiA9IEludDMyLihzaGlmdF9yaWdodF9sb2dpY2FsIChvZl9pbnQgKGJpdHMgcykpIDE0KSBpbiAgKCogMTYgYml0cyAqKVxuICAgIEludDMyLihsb2dvciBiMSAoc2hpZnRfbGVmdCBiMiAxNikpXG5cbiAgbGV0IGJpdHM2NCBzID1cbiAgICBsZXQgYjEgPSBJbnQ2NC4oc2hpZnRfcmlnaHRfbG9naWNhbCAob2ZfaW50IChiaXRzIHMpKSA5KSBpbiAgKCogMjEgYml0cyAqKVxuICAgIGxldCBiMiA9IEludDY0LihzaGlmdF9yaWdodF9sb2dpY2FsIChvZl9pbnQgKGJpdHMgcykpIDkpIGluICAoKiAyMSBiaXRzICopXG4gICAgbGV0IGIzID0gSW50NjQuKHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgKG9mX2ludCAoYml0cyBzKSkgOCkgaW4gICgqIDIyIGJpdHMgKilcbiAgICBJbnQ2NC4obG9nb3IgYjEgKGxvZ29yIChzaGlmdF9sZWZ0IGIyIDIxKSAoc2hpZnRfbGVmdCBiMyA0MikpKVxuXG4gIGxldCBuYXRpdmViaXRzID1cbiAgICBpZiBOYXRpdmVpbnQuc2l6ZSA9IDMyXG4gICAgdGhlbiBmdW4gcyAtPiBOYXRpdmVpbnQub2ZfaW50MzIgKGJpdHMzMiBzKVxuICAgIGVsc2UgZnVuIHMgLT4gSW50NjQudG9fbmF0aXZlaW50IChiaXRzNjQgcylcblxuZW5kXG5cbigqIFRoaXMgaXMgdGhlIHN0YXRlIHlvdSBnZXQgd2l0aCBbaW5pdCAyNzE4MjgxOF0gYW5kIHRoZW4gYXBwbHlpbmdcbiAgIHRoZSBcImxhbmQgMHgzRkZGRkZGRlwiIGZpbHRlciB0byB0aGVtLiAgU2VlICM1NTc1LCAjNTc5MywgIzU5NzcuICopXG5sZXQgZGVmYXVsdCA9IHtcbiAgU3RhdGUuc3QgPSBbfFxuICAgICAgMHgzYWUyNTIyYjsgMHgxZDhkNDYzNDsgMHgxNWI0ZmFkMDsgMHgxOGIxNGFjZTsgMHgxMmY4YTNjNDsgMHgzYjA4NmM0NztcbiAgICAgIDB4MTZkNDY3ZDY7IDB4MTAxZDkxYzc7IDB4MzIxZGYxNzc7IDB4MDE3NmMxOTM7IDB4MWZmNzJiZjE7IDB4MWU4ODkxMDk7XG4gICAgICAweDBiNDY0YjE4OyAweDJiODZiOTdjOyAweDA4OTFkYTQ4OyAweDAzMTM3NDYzOyAweDA4NWFjNWExOyAweDE1ZDYxZjJmO1xuICAgICAgMHgzYmNlZDM1OTsgMHgyOWMxYzEzMjsgMHgzYTg2NzY2ZTsgMHgzNjZkOGM4NjsgMHgxZjViNjIyMjsgMHgzY2UxYjU5ZjtcbiAgICAgIDB4MmViZjc4ZTE7IDB4MjdjZDFiODY7IDB4MjU4ZjNkYzM7IDB4Mzg5YTgxOTQ7IDB4MDJlNGM0NGM7IDB4MThjNDNmN2Q7XG4gICAgICAweDBmNmU1MzRmOyAweDFlN2RmMzU5OyAweDA1NWQwYjdlOyAweDEwZTg0ZTdlOyAweDEyNjE5OGU0OyAweDBlNzcyMmNiO1xuICAgICAgMHgxY2JlZGUyODsgMHgzMzkxYjk2NDsgMHgzZDQwZTkyYTsgMHgwYzU5OTMzZDsgMHgwYjhjZDBiNzsgMHgyNGVmZmYxYztcbiAgICAgIDB4MjgwM2ZkYWE7IDB4MDhlYmM3MmU7IDB4MGY1MjJlMzI7IDB4MDUzOThlZGM7IDB4MjE0NGEwNGM7IDB4MGFlZjNjYmQ7XG4gICAgICAweDAxYWQ0NzE5OyAweDM1YjkzY2Q2OyAweDJhNTU5ZDRmOyAweDFlNmZkNzY4OyAweDI2ZTI3ZjM2OyAweDE4NmYxOGMzO1xuICAgICAgMHgyZmJmOTY3YTtcbiAgICB8XTtcbiAgU3RhdGUuaWR4ID0gMDtcbn1cblxubGV0IGJpdHMgKCkgPSBTdGF0ZS5iaXRzIGRlZmF1bHRcbmxldCBpbnQgYm91bmQgPSBTdGF0ZS5pbnQgZGVmYXVsdCBib3VuZFxubGV0IGZ1bGxfaW50IGJvdW5kID0gU3RhdGUuZnVsbF9pbnQgZGVmYXVsdCBib3VuZFxubGV0IGludDMyIGJvdW5kID0gU3RhdGUuaW50MzIgZGVmYXVsdCBib3VuZFxubGV0IG5hdGl2ZWludCBib3VuZCA9IFN0YXRlLm5hdGl2ZWludCBkZWZhdWx0IGJvdW5kXG5sZXQgaW50NjQgYm91bmQgPSBTdGF0ZS5pbnQ2NCBkZWZhdWx0IGJvdW5kXG5sZXQgZmxvYXQgc2NhbGUgPSBTdGF0ZS5mbG9hdCBkZWZhdWx0IHNjYWxlXG5sZXQgYm9vbCAoKSA9IFN0YXRlLmJvb2wgZGVmYXVsdFxubGV0IGJpdHMzMiAoKSA9IFN0YXRlLmJpdHMzMiBkZWZhdWx0XG5sZXQgYml0czY0ICgpID0gU3RhdGUuYml0czY0IGRlZmF1bHRcbmxldCBuYXRpdmViaXRzICgpID0gU3RhdGUubmF0aXZlYml0cyBkZWZhdWx0XG5cbmxldCBmdWxsX2luaXQgc2VlZCA9IFN0YXRlLmZ1bGxfaW5pdCBkZWZhdWx0IHNlZWRcbmxldCBpbml0IHNlZWQgPSBTdGF0ZS5mdWxsX2luaXQgZGVmYXVsdCBbfCBzZWVkIHxdXG5sZXQgc2VsZl9pbml0ICgpID0gZnVsbF9pbml0IChyYW5kb21fc2VlZCgpKVxuXG4oKiBNYW5pcHVsYXRpbmcgdGhlIGN1cnJlbnQgc3RhdGUuICopXG5cbmxldCBnZXRfc3RhdGUgKCkgPSBTdGF0ZS5jb3B5IGRlZmF1bHRcbmxldCBzZXRfc3RhdGUgcyA9IFN0YXRlLmFzc2lnbiBkZWZhdWx0IHNcblxuKCoqKioqKioqKioqKioqKioqKioqXG5cbigqIFRlc3QgZnVuY3Rpb25zLiAgTm90IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5LlxuICAgVGhlIFtjaGlzcXVhcmVdIGZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgd2l0aCBuID4gMTByLlxuICAgSXQgcmV0dXJucyBhIHRyaXBsZSAobG93LCBhY3R1YWwsIGhpZ2gpLlxuICAgSWYgbG93IDw9IGFjdHVhbCA8PSBoaWdoLCB0aGUgW2ddIGZ1bmN0aW9uIHBhc3NlZCB0aGUgdGVzdCxcbiAgIG90aGVyd2lzZSBpdCBmYWlsZWQuXG5cbiAgU29tZSByZXN1bHRzOlxuXG5pbml0IDI3MTgyODE4OyBjaGlzcXVhcmUgaW50IDEwMDAwMCAxMDAwXG5pbml0IDI3MTgyODE4OyBjaGlzcXVhcmUgaW50IDEwMDAwMCAxMDBcbmluaXQgMjcxODI4MTg7IGNoaXNxdWFyZSBpbnQgMTAwMDAwIDUwMDBcbmluaXQgMjcxODI4MTg7IGNoaXNxdWFyZSBpbnQgMTAwMDAwMCAxMDAwXG5pbml0IDI3MTgyODE4OyBjaGlzcXVhcmUgaW50IDEwMDAwMCAxMDI0XG5pbml0IDI5OTc5MjY0MzsgY2hpc3F1YXJlIGludCAxMDAwMDAgMTAyNFxuaW5pdCAxNDE0MjEzNjsgY2hpc3F1YXJlIGludCAxMDAwMDAgMTAyNFxuaW5pdCAyNzE4MjgxODsgaW5pdF9kaWZmIDEwMjQ7IGNoaXNxdWFyZSBkaWZmIDEwMDAwMCAxMDI0XG5pbml0IDI3MTgyODE4OyBpbml0X2RpZmYgMTAwOyBjaGlzcXVhcmUgZGlmZiAxMDAwMDAgMTAwXG5pbml0IDI3MTgyODE4OyBpbml0X2RpZmYyIDEwMjQ7IGNoaXNxdWFyZSBkaWZmMiAxMDAwMDAgMTAyNFxuaW5pdCAyNzE4MjgxODsgaW5pdF9kaWZmMiAxMDA7IGNoaXNxdWFyZSBkaWZmMiAxMDAwMDAgMTAwXG5pbml0IDE0MTQyMTM2OyBpbml0X2RpZmYyIDEwMDsgY2hpc3F1YXJlIGRpZmYyIDEwMDAwMCAxMDBcbmluaXQgMjk5NzkyNjQzOyBpbml0X2RpZmYyIDEwMDsgY2hpc3F1YXJlIGRpZmYyIDEwMDAwMCAxMDBcbi0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoOTM2Ljc1NDQ0Njc5NjYzMjQ2NSwgOTk3LjUsIDEwNjMuMjQ1NTUzMjAzMzY3NTQpXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoODAuLCA4OS43NDAwMDAwMDAwMDUyMzg3LCAxMjAuKVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDQ4NTguNTc4NjQzNzYyNjksIDUwNDUuNSwgNTE0MS40MjEzNTYyMzczMSlcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9XG4oOTM2Ljc1NDQ0Njc5NjYzMjQ2NSwgOTQ0LjgwNTk5OTk5OTk4MjMwNSwgMTA2My4yNDU1NTMyMDMzNjc1NClcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg5NjAuLCAxMDE5LjE5NzQ0MDAwMDAwMzU1LCAxMDg4LilcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg5NjAuLCAxMDU5LjMxNzc2MDAwMDAwNTM2LCAxMDg4LilcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg5NjAuLCAxMDM5Ljk4NDYzOTk5OTk5NTEyLCAxMDg4LilcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg5NjAuLCAxMDU0LjM4MjA3OTk5OTk5NTc3LCAxMDg4LilcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg4MC4sIDkwLjA5NjAwMDAwMDAwNSwgMTIwLilcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg5NjAuLCAxMDc2Ljc4NzIwMDAwMDAwNjEyLCAxMDg4LilcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg4MC4sIDg1LjE3NjAwMDAwMDAwNjc1MjEsIDEyMC4pXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoODAuLCA4NS4yMTYwMDAwMDAwMDAzNDkyLCAxMjAuKVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDgwLiwgODAuNjIyMDAwMDAwMDAzMDI2OCwgMTIwLilcblxuKilcblxuKCogUmV0dXJuIHRoZSBzdW0gb2YgdGhlIHNxdWFyZXMgb2YgdltpMCxpMVsgKilcbmxldCByZWMgc3Vtc3EgdiBpMCBpMSA9XG4gIGlmIGkwID49IGkxIHRoZW4gMC4wXG4gIGVsc2UgaWYgaTEgPSBpMCArIDEgdGhlbiBTdGRsaWIuZmxvYXQgdi4oaTApICouIFN0ZGxpYi5mbG9hdCB2LihpMClcbiAgZWxzZSBzdW1zcSB2IGkwICgoaTAraTEpLzIpICsuIHN1bXNxIHYgKChpMCtpMSkvMikgaTFcblxuXG5sZXQgY2hpc3F1YXJlIGcgbiByID1cbiAgaWYgbiA8PSAxMCAqIHIgdGhlbiBpbnZhbGlkX2FyZyBcImNoaXNxdWFyZVwiO1xuICBsZXQgZiA9IEFycmF5Lm1ha2UgciAwIGluXG4gIGZvciBpID0gMSB0byBuIGRvXG4gICAgbGV0IHQgPSBnIHIgaW5cbiAgICBmLih0KSA8LSBmLih0KSArIDFcbiAgZG9uZTtcbiAgbGV0IHQgPSBzdW1zcSBmIDAgclxuICBhbmQgciA9IFN0ZGxpYi5mbG9hdCByXG4gIGFuZCBuID0gU3RkbGliLmZsb2F0IG4gaW5cbiAgbGV0IHNyID0gMi4wICouIHNxcnQgciBpblxuICAociAtLiBzciwgICAociAqLiB0IC8uIG4pIC0uIG4sICAgciArLiBzcilcblxuXG4oKiBUaGlzIGlzIHRvIHRlc3QgZm9yIGxpbmVhciBkZXBlbmRlbmNpZXMgYmV0d2VlbiBzdWNjZXNzaXZlIHJhbmRvbSBudW1iZXJzLlxuKilcbmxldCBzdCA9IHJlZiAwXG5sZXQgaW5pdF9kaWZmIHIgPSBzdCA6PSBpbnQgclxubGV0IGRpZmYgciA9XG4gIGxldCB4MSA9ICFzdFxuICBhbmQgeDIgPSBpbnQgclxuICBpblxuICBzdCA6PSB4MjtcbiAgaWYgeDEgPj0geDIgdGhlblxuICAgIHgxIC0geDJcbiAgZWxzZVxuICAgIHIgKyB4MSAtIHgyXG5cblxubGV0IHN0MSA9IHJlZiAwXG5hbmQgc3QyID0gcmVmIDBcblxuXG4oKiBUaGlzIGlzIHRvIHRlc3QgZm9yIHF1YWRyYXRpYyBkZXBlbmRlbmNpZXMgYmV0d2VlbiBzdWNjZXNzaXZlIHJhbmRvbVxuICAgbnVtYmVycy5cbiopXG5sZXQgaW5pdF9kaWZmMiByID0gc3QxIDo9IGludCByOyBzdDIgOj0gaW50IHJcbmxldCBkaWZmMiByID1cbiAgbGV0IHgxID0gIXN0MVxuICBhbmQgeDIgPSAhc3QyXG4gIGFuZCB4MyA9IGludCByXG4gIGluXG4gIHN0MSA6PSB4MjtcbiAgc3QyIDo9IHgzO1xuICAoeDMgLSB4MiAtIHgyICsgeDEgKyAyKnIpIG1vZCByXG5cblxuKioqKioqKioqKioqKioqKioqKiopXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIEhhc2ggdGFibGVzICopXG5cbigqIFdlIGRvIGR5bmFtaWMgaGFzaGluZywgYW5kIHJlc2l6ZSB0aGUgdGFibGUgYW5kIHJlaGFzaCB0aGUgZWxlbWVudHNcbiAgIHdoZW4gYnVja2V0cyBiZWNvbWUgdG9vIGxvbmcuICopXG5cbnR5cGUgKCdhLCAnYikgdCA9XG4gIHsgbXV0YWJsZSBzaXplOiBpbnQ7ICAgICAgICAgICAgICAgICAgICAgICAgKCogbnVtYmVyIG9mIGVudHJpZXMgKilcbiAgICBtdXRhYmxlIGRhdGE6ICgnYSwgJ2IpIGJ1Y2tldGxpc3QgYXJyYXk7ICAoKiB0aGUgYnVja2V0cyAqKVxuICAgIHNlZWQ6IGludDsgICAgICAgICAgICAgICAgICAgICAgICAoKiBmb3IgcmFuZG9taXphdGlvbiAqKVxuICAgIG11dGFibGUgaW5pdGlhbF9zaXplOiBpbnQ7ICAgICAgICAgICAgICAgICgqIGluaXRpYWwgYXJyYXkgc2l6ZSAqKVxuICB9XG5cbmFuZCAoJ2EsICdiKSBidWNrZXRsaXN0ID1cbiAgICBFbXB0eVxuICB8IENvbnMgb2YgeyBtdXRhYmxlIGtleTogJ2E7XG4gICAgICAgICAgICAgIG11dGFibGUgZGF0YTogJ2I7XG4gICAgICAgICAgICAgIG11dGFibGUgbmV4dDogKCdhLCAnYikgYnVja2V0bGlzdCB9XG5cbigqIFRoZSBzaWduIG9mIGluaXRpYWxfc2l6ZSBlbmNvZGVzIHRoZSBmYWN0IHRoYXQgYSB0cmF2ZXJzYWwgaXNcbiAgIG9uZ29pbmcgb3Igbm90LlxuXG4gICBUaGlzIGRpc2FibGVzIHRoZSBlZmZpY2llbnQgaW4gcGxhY2UgaW1wbGVtZW50YXRpb24gb2YgcmVzaXppbmcuXG4qKVxuXG5sZXQgb25nb2luZ190cmF2ZXJzYWwgaCA9XG4gIE9iai5zaXplIChPYmoucmVwciBoKSA8IDQgKCogY29tcGF0aWJpbGl0eSB3aXRoIG9sZCBoYXNoIHRhYmxlcyAqKVxuICB8fCBoLmluaXRpYWxfc2l6ZSA8IDBcblxubGV0IGZsaXBfb25nb2luZ190cmF2ZXJzYWwgaCA9XG4gIGguaW5pdGlhbF9zaXplIDwtIC0gaC5pbml0aWFsX3NpemVcblxuKCogVG8gcGljayByYW5kb20gc2VlZHMgaWYgcmVxdWVzdGVkICopXG5cbmxldCByYW5kb21pemVkX2RlZmF1bHQgPVxuICBsZXQgcGFyYW1zID1cbiAgICB0cnkgU3lzLmdldGVudiBcIk9DQU1MUlVOUEFSQU1cIiB3aXRoIE5vdF9mb3VuZCAtPlxuICAgIHRyeSBTeXMuZ2V0ZW52IFwiQ0FNTFJVTlBBUkFNXCIgd2l0aCBOb3RfZm91bmQgLT4gXCJcIiBpblxuICBTdHJpbmcuY29udGFpbnMgcGFyYW1zICdSJ1xuXG5sZXQgcmFuZG9taXplZCA9IHJlZiByYW5kb21pemVkX2RlZmF1bHRcblxubGV0IHJhbmRvbWl6ZSAoKSA9IHJhbmRvbWl6ZWQgOj0gdHJ1ZVxubGV0IGlzX3JhbmRvbWl6ZWQgKCkgPSAhcmFuZG9taXplZFxuXG5sZXQgcHJuZyA9IGxhenkgKFJhbmRvbS5TdGF0ZS5tYWtlX3NlbGZfaW5pdCgpKVxuXG4oKiBGdW5jdGlvbnMgd2hpY2ggYXBwZWFyIGJlZm9yZSB0aGUgZnVuY3RvcmlhbCBpbnRlcmZhY2UgbXVzdCBlaXRoZXIgYmVcbiAgIGluZGVwZW5kZW50IG9mIHRoZSBoYXNoIGZ1bmN0aW9uIG9yIHRha2UgaXQgYXMgYSBwYXJhbWV0ZXIgKHNlZSAjMjIwMiBhbmRcbiAgIGNvZGUgYmVsb3cgdGhlIGZ1bmN0b3IgZGVmaW5pdGlvbnMuICopXG5cbigqIENyZWF0aW5nIGEgZnJlc2gsIGVtcHR5IHRhYmxlICopXG5cbmxldCByZWMgcG93ZXJfMl9hYm92ZSB4IG4gPVxuICBpZiB4ID49IG4gdGhlbiB4XG4gIGVsc2UgaWYgeCAqIDIgPiBTeXMubWF4X2FycmF5X2xlbmd0aCB0aGVuIHhcbiAgZWxzZSBwb3dlcl8yX2Fib3ZlICh4ICogMikgblxuXG5sZXQgY3JlYXRlID8ocmFuZG9tID0gIXJhbmRvbWl6ZWQpIGluaXRpYWxfc2l6ZSA9XG4gIGxldCBzID0gcG93ZXJfMl9hYm92ZSAxNiBpbml0aWFsX3NpemUgaW5cbiAgbGV0IHNlZWQgPSBpZiByYW5kb20gdGhlbiBSYW5kb20uU3RhdGUuYml0cyAoTGF6eS5mb3JjZSBwcm5nKSBlbHNlIDAgaW5cbiAgeyBpbml0aWFsX3NpemUgPSBzOyBzaXplID0gMDsgc2VlZCA9IHNlZWQ7IGRhdGEgPSBBcnJheS5tYWtlIHMgRW1wdHkgfVxuXG5sZXQgY2xlYXIgaCA9XG4gIGlmIGguc2l6ZSA+IDAgdGhlbiBiZWdpblxuICAgIGguc2l6ZSA8LSAwO1xuICAgIEFycmF5LmZpbGwgaC5kYXRhIDAgKEFycmF5Lmxlbmd0aCBoLmRhdGEpIEVtcHR5XG4gIGVuZFxuXG5sZXQgcmVzZXQgaCA9XG4gIGxldCBsZW4gPSBBcnJheS5sZW5ndGggaC5kYXRhIGluXG4gIGlmIE9iai5zaXplIChPYmoucmVwciBoKSA8IDQgKCogY29tcGF0aWJpbGl0eSB3aXRoIG9sZCBoYXNoIHRhYmxlcyAqKVxuICAgIHx8IGxlbiA9IGFicyBoLmluaXRpYWxfc2l6ZSB0aGVuXG4gICAgY2xlYXIgaFxuICBlbHNlIGJlZ2luXG4gICAgaC5zaXplIDwtIDA7XG4gICAgaC5kYXRhIDwtIEFycmF5Lm1ha2UgKGFicyBoLmluaXRpYWxfc2l6ZSkgRW1wdHlcbiAgZW5kXG5cbmxldCBjb3B5X2J1Y2tldGxpc3QgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+IEVtcHR5XG4gIHwgQ29ucyB7a2V5OyBkYXRhOyBuZXh0fSAtPlxuICAgICAgbGV0IHJlYyBsb29wIHByZWMgPSBmdW5jdGlvblxuICAgICAgICB8IEVtcHR5IC0+ICgpXG4gICAgICAgIHwgQ29ucyB7a2V5OyBkYXRhOyBuZXh0fSAtPlxuICAgICAgICAgICAgbGV0IHIgPSBDb25zIHtrZXk7IGRhdGE7IG5leHR9IGluXG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBwcmVjIHdpdGhcbiAgICAgICAgICAgIHwgRW1wdHkgLT4gYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICB8IENvbnMgcHJlYyAtPiAgcHJlYy5uZXh0IDwtIHJcbiAgICAgICAgICAgIGVuZDtcbiAgICAgICAgICAgIGxvb3AgciBuZXh0XG4gICAgICBpblxuICAgICAgbGV0IHIgPSBDb25zIHtrZXk7IGRhdGE7IG5leHR9IGluXG4gICAgICBsb29wIHIgbmV4dDtcbiAgICAgIHJcblxubGV0IGNvcHkgaCA9IHsgaCB3aXRoIGRhdGEgPSBBcnJheS5tYXAgY29weV9idWNrZXRsaXN0IGguZGF0YSB9XG5cbmxldCBsZW5ndGggaCA9IGguc2l6ZVxuXG5sZXQgaW5zZXJ0X2FsbF9idWNrZXRzIGluZGV4ZnVuIGlucGxhY2Ugb2RhdGEgbmRhdGEgPVxuICBsZXQgbnNpemUgPSBBcnJheS5sZW5ndGggbmRhdGEgaW5cbiAgbGV0IG5kYXRhX3RhaWwgPSBBcnJheS5tYWtlIG5zaXplIEVtcHR5IGluXG4gIGxldCByZWMgaW5zZXJ0X2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgfCBFbXB0eSAtPiAoKVxuICAgIHwgQ29ucyB7a2V5OyBkYXRhOyBuZXh0fSBhcyBjZWxsIC0+XG4gICAgICAgIGxldCBjZWxsID1cbiAgICAgICAgICBpZiBpbnBsYWNlIHRoZW4gY2VsbFxuICAgICAgICAgIGVsc2UgQ29ucyB7a2V5OyBkYXRhOyBuZXh0ID0gRW1wdHl9XG4gICAgICAgIGluXG4gICAgICAgIGxldCBuaWR4ID0gaW5kZXhmdW4ga2V5IGluXG4gICAgICAgIGJlZ2luIG1hdGNoIG5kYXRhX3RhaWwuKG5pZHgpIHdpdGhcbiAgICAgICAgfCBFbXB0eSAtPiBuZGF0YS4obmlkeCkgPC0gY2VsbDtcbiAgICAgICAgfCBDb25zIHRhaWwgLT4gdGFpbC5uZXh0IDwtIGNlbGw7XG4gICAgICAgIGVuZDtcbiAgICAgICAgbmRhdGFfdGFpbC4obmlkeCkgPC0gY2VsbDtcbiAgICAgICAgaW5zZXJ0X2J1Y2tldCBuZXh0XG4gIGluXG4gIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggb2RhdGEgLSAxIGRvXG4gICAgaW5zZXJ0X2J1Y2tldCBvZGF0YS4oaSlcbiAgZG9uZTtcbiAgaWYgaW5wbGFjZSB0aGVuXG4gICAgZm9yIGkgPSAwIHRvIG5zaXplIC0gMSBkb1xuICAgICAgbWF0Y2ggbmRhdGFfdGFpbC4oaSkgd2l0aFxuICAgICAgfCBFbXB0eSAtPiAoKVxuICAgICAgfCBDb25zIHRhaWwgLT4gdGFpbC5uZXh0IDwtIEVtcHR5XG4gICAgZG9uZVxuXG5sZXQgcmVzaXplIGluZGV4ZnVuIGggPVxuICBsZXQgb2RhdGEgPSBoLmRhdGEgaW5cbiAgbGV0IG9zaXplID0gQXJyYXkubGVuZ3RoIG9kYXRhIGluXG4gIGxldCBuc2l6ZSA9IG9zaXplICogMiBpblxuICBpZiBuc2l6ZSA8IFN5cy5tYXhfYXJyYXlfbGVuZ3RoIHRoZW4gYmVnaW5cbiAgICBsZXQgbmRhdGEgPSBBcnJheS5tYWtlIG5zaXplIEVtcHR5IGluXG4gICAgbGV0IGlucGxhY2UgPSBub3QgKG9uZ29pbmdfdHJhdmVyc2FsIGgpIGluXG4gICAgaC5kYXRhIDwtIG5kYXRhOyAgICAgICAgICAoKiBzbyB0aGF0IGluZGV4ZnVuIHNlZXMgdGhlIG5ldyBidWNrZXQgY291bnQgKilcbiAgICBpbnNlcnRfYWxsX2J1Y2tldHMgKGluZGV4ZnVuIGgpIGlucGxhY2Ugb2RhdGEgbmRhdGFcbiAgZW5kXG5cbmxldCBpdGVyIGYgaCA9XG4gIGxldCByZWMgZG9fYnVja2V0ID0gZnVuY3Rpb25cbiAgICB8IEVtcHR5IC0+XG4gICAgICAgICgpXG4gICAgfCBDb25ze2tleTsgZGF0YTsgbmV4dH0gLT5cbiAgICAgICAgZiBrZXkgZGF0YTsgZG9fYnVja2V0IG5leHQgaW5cbiAgbGV0IG9sZF90cmF2ID0gb25nb2luZ190cmF2ZXJzYWwgaCBpblxuICBpZiBub3Qgb2xkX3RyYXYgdGhlbiBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGg7XG4gIHRyeVxuICAgIGxldCBkID0gaC5kYXRhIGluXG4gICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBkIC0gMSBkb1xuICAgICAgZG9fYnVja2V0IGQuKGkpXG4gICAgZG9uZTtcbiAgICBpZiBub3Qgb2xkX3RyYXYgdGhlbiBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGg7XG4gIHdpdGggZXhuIHdoZW4gbm90IG9sZF90cmF2IC0+XG4gICAgZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCBoO1xuICAgIHJhaXNlIGV4blxuXG5sZXQgcmVjIGZpbHRlcl9tYXBfaW5wbGFjZV9idWNrZXQgZiBoIGkgcHJlYyA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT5cbiAgICAgIGJlZ2luIG1hdGNoIHByZWMgd2l0aFxuICAgICAgfCBFbXB0eSAtPiBoLmRhdGEuKGkpIDwtIEVtcHR5XG4gICAgICB8IENvbnMgYyAtPiBjLm5leHQgPC0gRW1wdHlcbiAgICAgIGVuZFxuICB8IChDb25zICh7a2V5OyBkYXRhOyBuZXh0fSBhcyBjKSkgYXMgc2xvdCAtPlxuICAgICAgYmVnaW4gbWF0Y2ggZiBrZXkgZGF0YSB3aXRoXG4gICAgICB8IE5vbmUgLT5cbiAgICAgICAgICBoLnNpemUgPC0gaC5zaXplIC0gMTtcbiAgICAgICAgICBmaWx0ZXJfbWFwX2lucGxhY2VfYnVja2V0IGYgaCBpIHByZWMgbmV4dFxuICAgICAgfCBTb21lIGRhdGEgLT5cbiAgICAgICAgICBiZWdpbiBtYXRjaCBwcmVjIHdpdGhcbiAgICAgICAgICB8IEVtcHR5IC0+IGguZGF0YS4oaSkgPC0gc2xvdFxuICAgICAgICAgIHwgQ29ucyBjIC0+IGMubmV4dCA8LSBzbG90XG4gICAgICAgICAgZW5kO1xuICAgICAgICAgIGMuZGF0YSA8LSBkYXRhO1xuICAgICAgICAgIGZpbHRlcl9tYXBfaW5wbGFjZV9idWNrZXQgZiBoIGkgc2xvdCBuZXh0XG4gICAgICBlbmRcblxubGV0IGZpbHRlcl9tYXBfaW5wbGFjZSBmIGggPVxuICBsZXQgZCA9IGguZGF0YSBpblxuICBsZXQgb2xkX3RyYXYgPSBvbmdvaW5nX3RyYXZlcnNhbCBoIGluXG4gIGlmIG5vdCBvbGRfdHJhdiB0aGVuIGZsaXBfb25nb2luZ190cmF2ZXJzYWwgaDtcbiAgdHJ5XG4gICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBkIC0gMSBkb1xuICAgICAgZmlsdGVyX21hcF9pbnBsYWNlX2J1Y2tldCBmIGggaSBFbXB0eSBoLmRhdGEuKGkpXG4gICAgZG9uZTtcbiAgICBpZiBub3Qgb2xkX3RyYXYgdGhlbiBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGhcbiAgd2l0aCBleG4gd2hlbiBub3Qgb2xkX3RyYXYgLT5cbiAgICBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGg7XG4gICAgcmFpc2UgZXhuXG5cbmxldCBmb2xkIGYgaCBpbml0ID1cbiAgbGV0IHJlYyBkb19idWNrZXQgYiBhY2N1ID1cbiAgICBtYXRjaCBiIHdpdGhcbiAgICAgIEVtcHR5IC0+XG4gICAgICAgIGFjY3VcbiAgICB8IENvbnN7a2V5OyBkYXRhOyBuZXh0fSAtPlxuICAgICAgICBkb19idWNrZXQgbmV4dCAoZiBrZXkgZGF0YSBhY2N1KSBpblxuICBsZXQgb2xkX3RyYXYgPSBvbmdvaW5nX3RyYXZlcnNhbCBoIGluXG4gIGlmIG5vdCBvbGRfdHJhdiB0aGVuIGZsaXBfb25nb2luZ190cmF2ZXJzYWwgaDtcbiAgdHJ5XG4gICAgbGV0IGQgPSBoLmRhdGEgaW5cbiAgICBsZXQgYWNjdSA9IHJlZiBpbml0IGluXG4gICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBkIC0gMSBkb1xuICAgICAgYWNjdSA6PSBkb19idWNrZXQgZC4oaSkgIWFjY3VcbiAgICBkb25lO1xuICAgIGlmIG5vdCBvbGRfdHJhdiB0aGVuIGZsaXBfb25nb2luZ190cmF2ZXJzYWwgaDtcbiAgICAhYWNjdVxuICB3aXRoIGV4biB3aGVuIG5vdCBvbGRfdHJhdiAtPlxuICAgIGZsaXBfb25nb2luZ190cmF2ZXJzYWwgaDtcbiAgICByYWlzZSBleG5cblxudHlwZSBzdGF0aXN0aWNzID0ge1xuICBudW1fYmluZGluZ3M6IGludDtcbiAgbnVtX2J1Y2tldHM6IGludDtcbiAgbWF4X2J1Y2tldF9sZW5ndGg6IGludDtcbiAgYnVja2V0X2hpc3RvZ3JhbTogaW50IGFycmF5XG59XG5cbmxldCByZWMgYnVja2V0X2xlbmd0aCBhY2N1ID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPiBhY2N1XG4gIHwgQ29uc3tuZXh0fSAtPiBidWNrZXRfbGVuZ3RoIChhY2N1ICsgMSkgbmV4dFxuXG5sZXQgc3RhdHMgaCA9XG4gIGxldCBtYmwgPVxuICAgIEFycmF5LmZvbGRfbGVmdCAoZnVuIG0gYiAtPiBJbnQubWF4IG0gKGJ1Y2tldF9sZW5ndGggMCBiKSkgMCBoLmRhdGEgaW5cbiAgbGV0IGhpc3RvID0gQXJyYXkubWFrZSAobWJsICsgMSkgMCBpblxuICBBcnJheS5pdGVyXG4gICAgKGZ1biBiIC0+XG4gICAgICBsZXQgbCA9IGJ1Y2tldF9sZW5ndGggMCBiIGluXG4gICAgICBoaXN0by4obCkgPC0gaGlzdG8uKGwpICsgMSlcbiAgICBoLmRhdGE7XG4gIHsgbnVtX2JpbmRpbmdzID0gaC5zaXplO1xuICAgIG51bV9idWNrZXRzID0gQXJyYXkubGVuZ3RoIGguZGF0YTtcbiAgICBtYXhfYnVja2V0X2xlbmd0aCA9IG1ibDtcbiAgICBidWNrZXRfaGlzdG9ncmFtID0gaGlzdG8gfVxuXG4oKiogezEgSXRlcmF0b3JzfSAqKVxuXG5sZXQgdG9fc2VxIHRibCA9XG4gICgqIGNhcHR1cmUgY3VycmVudCBhcnJheSwgc28gdGhhdCBldmVuIGlmIHRoZSB0YWJsZSBpcyByZXNpemVkIHdlXG4gICAgIGtlZXAgaXRlcmF0aW5nIG9uIHRoZSBzYW1lIGFycmF5ICopXG4gIGxldCB0YmxfZGF0YSA9IHRibC5kYXRhIGluXG4gICgqIHN0YXRlOiBpbmRleCAqIG5leHQgYnVja2V0IHRvIHRyYXZlcnNlICopXG4gIGxldCByZWMgYXV4IGkgYnVjayAoKSA9IG1hdGNoIGJ1Y2sgd2l0aFxuICAgIHwgRW1wdHkgLT5cbiAgICAgICAgaWYgaSA9IEFycmF5Lmxlbmd0aCB0YmxfZGF0YVxuICAgICAgICB0aGVuIFNlcS5OaWxcbiAgICAgICAgZWxzZSBhdXgoaSsxKSB0YmxfZGF0YS4oaSkgKClcbiAgICB8IENvbnMge2tleTsgZGF0YTsgbmV4dH0gLT5cbiAgICAgICAgU2VxLkNvbnMgKChrZXksIGRhdGEpLCBhdXggaSBuZXh0KVxuICBpblxuICBhdXggMCBFbXB0eVxuXG5sZXQgdG9fc2VxX2tleXMgbSA9IFNlcS5tYXAgZnN0ICh0b19zZXEgbSlcblxubGV0IHRvX3NlcV92YWx1ZXMgbSA9IFNlcS5tYXAgc25kICh0b19zZXEgbSlcblxuKCogRnVuY3RvcmlhbCBpbnRlcmZhY2UgKilcblxubW9kdWxlIHR5cGUgSGFzaGVkVHlwZSA9XG4gIHNpZ1xuICAgIHR5cGUgdFxuICAgIHZhbCBlcXVhbDogdCAtPiB0IC0+IGJvb2xcbiAgICB2YWwgaGFzaDogdCAtPiBpbnRcbiAgZW5kXG5cbm1vZHVsZSB0eXBlIFNlZWRlZEhhc2hlZFR5cGUgPVxuICBzaWdcbiAgICB0eXBlIHRcbiAgICB2YWwgZXF1YWw6IHQgLT4gdCAtPiBib29sXG4gICAgdmFsIGhhc2g6IGludCAtPiB0IC0+IGludFxuICBlbmRcblxubW9kdWxlIHR5cGUgUyA9XG4gIHNpZ1xuICAgIHR5cGUga2V5XG4gICAgdHlwZSAhJ2EgdFxuICAgIHZhbCBjcmVhdGU6IGludCAtPiAnYSB0XG4gICAgdmFsIGNsZWFyIDogJ2EgdCAtPiB1bml0XG4gICAgdmFsIHJlc2V0IDogJ2EgdCAtPiB1bml0XG4gICAgdmFsIGNvcHk6ICdhIHQgLT4gJ2EgdFxuICAgIHZhbCBhZGQ6ICdhIHQgLT4ga2V5IC0+ICdhIC0+IHVuaXRcbiAgICB2YWwgcmVtb3ZlOiAnYSB0IC0+IGtleSAtPiB1bml0XG4gICAgdmFsIGZpbmQ6ICdhIHQgLT4ga2V5IC0+ICdhXG4gICAgdmFsIGZpbmRfb3B0OiAnYSB0IC0+IGtleSAtPiAnYSBvcHRpb25cbiAgICB2YWwgZmluZF9hbGw6ICdhIHQgLT4ga2V5IC0+ICdhIGxpc3RcbiAgICB2YWwgcmVwbGFjZSA6ICdhIHQgLT4ga2V5IC0+ICdhIC0+IHVuaXRcbiAgICB2YWwgbWVtIDogJ2EgdCAtPiBrZXkgLT4gYm9vbFxuICAgIHZhbCBpdGVyOiAoa2V5IC0+ICdhIC0+IHVuaXQpIC0+ICdhIHQgLT4gdW5pdFxuICAgIHZhbCBmaWx0ZXJfbWFwX2lucGxhY2U6IChrZXkgLT4gJ2EgLT4gJ2Egb3B0aW9uKSAtPiAnYSB0IC0+IHVuaXRcbiAgICB2YWwgZm9sZDogKGtleSAtPiAnYSAtPiAnYiAtPiAnYikgLT4gJ2EgdCAtPiAnYiAtPiAnYlxuICAgIHZhbCBsZW5ndGg6ICdhIHQgLT4gaW50XG4gICAgdmFsIHN0YXRzOiAnYSB0IC0+IHN0YXRpc3RpY3NcbiAgICB2YWwgdG9fc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50XG4gICAgdmFsIHRvX3NlcV9rZXlzIDogXyB0IC0+IGtleSBTZXEudFxuICAgIHZhbCB0b19zZXFfdmFsdWVzIDogJ2EgdCAtPiAnYSBTZXEudFxuICAgIHZhbCBhZGRfc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50IC0+IHVuaXRcbiAgICB2YWwgcmVwbGFjZV9zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnQgLT4gdW5pdFxuICAgIHZhbCBvZl9zZXEgOiAoa2V5ICogJ2EpIFNlcS50IC0+ICdhIHRcbiAgZW5kXG5cbm1vZHVsZSB0eXBlIFNlZWRlZFMgPVxuICBzaWdcbiAgICB0eXBlIGtleVxuICAgIHR5cGUgISdhIHRcbiAgICB2YWwgY3JlYXRlIDogP3JhbmRvbTpib29sIC0+IGludCAtPiAnYSB0XG4gICAgdmFsIGNsZWFyIDogJ2EgdCAtPiB1bml0XG4gICAgdmFsIHJlc2V0IDogJ2EgdCAtPiB1bml0XG4gICAgdmFsIGNvcHkgOiAnYSB0IC0+ICdhIHRcbiAgICB2YWwgYWRkIDogJ2EgdCAtPiBrZXkgLT4gJ2EgLT4gdW5pdFxuICAgIHZhbCByZW1vdmUgOiAnYSB0IC0+IGtleSAtPiB1bml0XG4gICAgdmFsIGZpbmQgOiAnYSB0IC0+IGtleSAtPiAnYVxuICAgIHZhbCBmaW5kX29wdDogJ2EgdCAtPiBrZXkgLT4gJ2Egb3B0aW9uXG4gICAgdmFsIGZpbmRfYWxsIDogJ2EgdCAtPiBrZXkgLT4gJ2EgbGlzdFxuICAgIHZhbCByZXBsYWNlIDogJ2EgdCAtPiBrZXkgLT4gJ2EgLT4gdW5pdFxuICAgIHZhbCBtZW0gOiAnYSB0IC0+IGtleSAtPiBib29sXG4gICAgdmFsIGl0ZXIgOiAoa2V5IC0+ICdhIC0+IHVuaXQpIC0+ICdhIHQgLT4gdW5pdFxuICAgIHZhbCBmaWx0ZXJfbWFwX2lucGxhY2U6IChrZXkgLT4gJ2EgLT4gJ2Egb3B0aW9uKSAtPiAnYSB0IC0+IHVuaXRcbiAgICB2YWwgZm9sZCA6IChrZXkgLT4gJ2EgLT4gJ2IgLT4gJ2IpIC0+ICdhIHQgLT4gJ2IgLT4gJ2JcbiAgICB2YWwgbGVuZ3RoIDogJ2EgdCAtPiBpbnRcbiAgICB2YWwgc3RhdHM6ICdhIHQgLT4gc3RhdGlzdGljc1xuICAgIHZhbCB0b19zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnRcbiAgICB2YWwgdG9fc2VxX2tleXMgOiBfIHQgLT4ga2V5IFNlcS50XG4gICAgdmFsIHRvX3NlcV92YWx1ZXMgOiAnYSB0IC0+ICdhIFNlcS50XG4gICAgdmFsIGFkZF9zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnQgLT4gdW5pdFxuICAgIHZhbCByZXBsYWNlX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudCAtPiB1bml0XG4gICAgdmFsIG9mX3NlcSA6IChrZXkgKiAnYSkgU2VxLnQgLT4gJ2EgdFxuICBlbmRcblxubW9kdWxlIE1ha2VTZWVkZWQoSDogU2VlZGVkSGFzaGVkVHlwZSk6IChTZWVkZWRTIHdpdGggdHlwZSBrZXkgPSBILnQpID1cbiAgc3RydWN0XG4gICAgdHlwZSBrZXkgPSBILnRcbiAgICB0eXBlICdhIGhhc2h0YmwgPSAoa2V5LCAnYSkgdFxuICAgIHR5cGUgJ2EgdCA9ICdhIGhhc2h0YmxcbiAgICBsZXQgY3JlYXRlID0gY3JlYXRlXG4gICAgbGV0IGNsZWFyID0gY2xlYXJcbiAgICBsZXQgcmVzZXQgPSByZXNldFxuICAgIGxldCBjb3B5ID0gY29weVxuXG4gICAgbGV0IGtleV9pbmRleCBoIGtleSA9XG4gICAgICAoSC5oYXNoIGguc2VlZCBrZXkpIGxhbmQgKEFycmF5Lmxlbmd0aCBoLmRhdGEgLSAxKVxuXG4gICAgbGV0IGFkZCBoIGtleSBkYXRhID1cbiAgICAgIGxldCBpID0ga2V5X2luZGV4IGgga2V5IGluXG4gICAgICBsZXQgYnVja2V0ID0gQ29uc3trZXk7IGRhdGE7IG5leHQ9aC5kYXRhLihpKX0gaW5cbiAgICAgIGguZGF0YS4oaSkgPC0gYnVja2V0O1xuICAgICAgaC5zaXplIDwtIGguc2l6ZSArIDE7XG4gICAgICBpZiBoLnNpemUgPiBBcnJheS5sZW5ndGggaC5kYXRhIGxzbCAxIHRoZW4gcmVzaXplIGtleV9pbmRleCBoXG5cbiAgICBsZXQgcmVjIHJlbW92ZV9idWNrZXQgaCBpIGtleSBwcmVjID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICAoKVxuICAgICAgfCAoQ29ucyB7a2V5PWs7IG5leHR9KSBhcyBjIC0+XG4gICAgICAgICAgaWYgSC5lcXVhbCBrIGtleVxuICAgICAgICAgIHRoZW4gYmVnaW5cbiAgICAgICAgICAgIGguc2l6ZSA8LSBoLnNpemUgLSAxO1xuICAgICAgICAgICAgbWF0Y2ggcHJlYyB3aXRoXG4gICAgICAgICAgICB8IEVtcHR5IC0+IGguZGF0YS4oaSkgPC0gbmV4dFxuICAgICAgICAgICAgfCBDb25zIGMgLT4gYy5uZXh0IDwtIG5leHRcbiAgICAgICAgICBlbmRcbiAgICAgICAgICBlbHNlIHJlbW92ZV9idWNrZXQgaCBpIGtleSBjIG5leHRcblxuICAgIGxldCByZW1vdmUgaCBrZXkgPVxuICAgICAgbGV0IGkgPSBrZXlfaW5kZXggaCBrZXkgaW5cbiAgICAgIHJlbW92ZV9idWNrZXQgaCBpIGtleSBFbXB0eSBoLmRhdGEuKGkpXG5cbiAgICBsZXQgcmVjIGZpbmRfcmVjIGtleSA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IENvbnN7a2V5PWs7IGRhdGE7IG5leHR9IC0+XG4gICAgICAgICAgaWYgSC5lcXVhbCBrZXkgayB0aGVuIGRhdGEgZWxzZSBmaW5kX3JlYyBrZXkgbmV4dFxuXG4gICAgbGV0IGZpbmQgaCBrZXkgPVxuICAgICAgbWF0Y2ggaC5kYXRhLihrZXlfaW5kZXggaCBrZXkpIHdpdGhcbiAgICAgIHwgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IENvbnN7a2V5PWsxOyBkYXRhPWQxOyBuZXh0PW5leHQxfSAtPlxuICAgICAgICAgIGlmIEguZXF1YWwga2V5IGsxIHRoZW4gZDEgZWxzZVxuICAgICAgICAgIG1hdGNoIG5leHQxIHdpdGhcbiAgICAgICAgICB8IEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgICAgIHwgQ29uc3trZXk9azI7IGRhdGE9ZDI7IG5leHQ9bmV4dDJ9IC0+XG4gICAgICAgICAgICAgIGlmIEguZXF1YWwga2V5IGsyIHRoZW4gZDIgZWxzZVxuICAgICAgICAgICAgICBtYXRjaCBuZXh0MiB3aXRoXG4gICAgICAgICAgICAgIHwgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICAgICAgICAgIHwgQ29uc3trZXk9azM7IGRhdGE9ZDM7IG5leHQ9bmV4dDN9IC0+XG4gICAgICAgICAgICAgICAgICBpZiBILmVxdWFsIGtleSBrMyB0aGVuIGQzIGVsc2UgZmluZF9yZWMga2V5IG5leHQzXG5cbiAgICBsZXQgcmVjIGZpbmRfcmVjX29wdCBrZXkgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgIE5vbmVcbiAgICAgIHwgQ29uc3trZXk9azsgZGF0YTsgbmV4dH0gLT5cbiAgICAgICAgICBpZiBILmVxdWFsIGtleSBrIHRoZW4gU29tZSBkYXRhIGVsc2UgZmluZF9yZWNfb3B0IGtleSBuZXh0XG5cbiAgICBsZXQgZmluZF9vcHQgaCBrZXkgPVxuICAgICAgbWF0Y2ggaC5kYXRhLihrZXlfaW5kZXggaCBrZXkpIHdpdGhcbiAgICAgIHwgRW1wdHkgLT4gTm9uZVxuICAgICAgfCBDb25ze2tleT1rMTsgZGF0YT1kMTsgbmV4dD1uZXh0MX0gLT5cbiAgICAgICAgICBpZiBILmVxdWFsIGtleSBrMSB0aGVuIFNvbWUgZDEgZWxzZVxuICAgICAgICAgIG1hdGNoIG5leHQxIHdpdGhcbiAgICAgICAgICB8IEVtcHR5IC0+IE5vbmVcbiAgICAgICAgICB8IENvbnN7a2V5PWsyOyBkYXRhPWQyOyBuZXh0PW5leHQyfSAtPlxuICAgICAgICAgICAgICBpZiBILmVxdWFsIGtleSBrMiB0aGVuIFNvbWUgZDIgZWxzZVxuICAgICAgICAgICAgICBtYXRjaCBuZXh0MiB3aXRoXG4gICAgICAgICAgICAgIHwgRW1wdHkgLT4gTm9uZVxuICAgICAgICAgICAgICB8IENvbnN7a2V5PWszOyBkYXRhPWQzOyBuZXh0PW5leHQzfSAtPlxuICAgICAgICAgICAgICAgICAgaWYgSC5lcXVhbCBrZXkgazMgdGhlbiBTb21lIGQzIGVsc2UgZmluZF9yZWNfb3B0IGtleSBuZXh0M1xuXG4gICAgbGV0IGZpbmRfYWxsIGgga2V5ID1cbiAgICAgIGxldCByZWMgZmluZF9pbl9idWNrZXQgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgIFtdXG4gICAgICB8IENvbnN7a2V5PWs7IGRhdGE9ZDsgbmV4dH0gLT5cbiAgICAgICAgICBpZiBILmVxdWFsIGsga2V5XG4gICAgICAgICAgdGhlbiBkIDo6IGZpbmRfaW5fYnVja2V0IG5leHRcbiAgICAgICAgICBlbHNlIGZpbmRfaW5fYnVja2V0IG5leHQgaW5cbiAgICAgIGZpbmRfaW5fYnVja2V0IGguZGF0YS4oa2V5X2luZGV4IGgga2V5KVxuXG4gICAgbGV0IHJlYyByZXBsYWNlX2J1Y2tldCBrZXkgZGF0YSA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgdHJ1ZVxuICAgICAgfCBDb25zICh7a2V5PWs7IG5leHR9IGFzIHNsb3QpIC0+XG4gICAgICAgICAgaWYgSC5lcXVhbCBrIGtleVxuICAgICAgICAgIHRoZW4gKHNsb3Qua2V5IDwtIGtleTsgc2xvdC5kYXRhIDwtIGRhdGE7IGZhbHNlKVxuICAgICAgICAgIGVsc2UgcmVwbGFjZV9idWNrZXQga2V5IGRhdGEgbmV4dFxuXG4gICAgbGV0IHJlcGxhY2UgaCBrZXkgZGF0YSA9XG4gICAgICBsZXQgaSA9IGtleV9pbmRleCBoIGtleSBpblxuICAgICAgbGV0IGwgPSBoLmRhdGEuKGkpIGluXG4gICAgICBpZiByZXBsYWNlX2J1Y2tldCBrZXkgZGF0YSBsIHRoZW4gYmVnaW5cbiAgICAgICAgaC5kYXRhLihpKSA8LSBDb25ze2tleTsgZGF0YTsgbmV4dD1sfTtcbiAgICAgICAgaC5zaXplIDwtIGguc2l6ZSArIDE7XG4gICAgICAgIGlmIGguc2l6ZSA+IEFycmF5Lmxlbmd0aCBoLmRhdGEgbHNsIDEgdGhlbiByZXNpemUga2V5X2luZGV4IGhcbiAgICAgIGVuZFxuXG4gICAgbGV0IG1lbSBoIGtleSA9XG4gICAgICBsZXQgcmVjIG1lbV9pbl9idWNrZXQgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgIGZhbHNlXG4gICAgICB8IENvbnN7a2V5PWs7IG5leHR9IC0+XG4gICAgICAgICAgSC5lcXVhbCBrIGtleSB8fCBtZW1faW5fYnVja2V0IG5leHQgaW5cbiAgICAgIG1lbV9pbl9idWNrZXQgaC5kYXRhLihrZXlfaW5kZXggaCBrZXkpXG5cbiAgICBsZXQgYWRkX3NlcSB0YmwgaSA9XG4gICAgICBTZXEuaXRlciAoZnVuIChrLHYpIC0+IGFkZCB0YmwgayB2KSBpXG5cbiAgICBsZXQgcmVwbGFjZV9zZXEgdGJsIGkgPVxuICAgICAgU2VxLml0ZXIgKGZ1biAoayx2KSAtPiByZXBsYWNlIHRibCBrIHYpIGlcblxuICAgIGxldCBvZl9zZXEgaSA9XG4gICAgICBsZXQgdGJsID0gY3JlYXRlIDE2IGluXG4gICAgICByZXBsYWNlX3NlcSB0YmwgaTtcbiAgICAgIHRibFxuXG4gICAgbGV0IGl0ZXIgPSBpdGVyXG4gICAgbGV0IGZpbHRlcl9tYXBfaW5wbGFjZSA9IGZpbHRlcl9tYXBfaW5wbGFjZVxuICAgIGxldCBmb2xkID0gZm9sZFxuICAgIGxldCBsZW5ndGggPSBsZW5ndGhcbiAgICBsZXQgc3RhdHMgPSBzdGF0c1xuICAgIGxldCB0b19zZXEgPSB0b19zZXFcbiAgICBsZXQgdG9fc2VxX2tleXMgPSB0b19zZXFfa2V5c1xuICAgIGxldCB0b19zZXFfdmFsdWVzID0gdG9fc2VxX3ZhbHVlc1xuICBlbmRcblxubW9kdWxlIE1ha2UoSDogSGFzaGVkVHlwZSk6IChTIHdpdGggdHlwZSBrZXkgPSBILnQpID1cbiAgc3RydWN0XG4gICAgaW5jbHVkZSBNYWtlU2VlZGVkKHN0cnVjdFxuICAgICAgICB0eXBlIHQgPSBILnRcbiAgICAgICAgbGV0IGVxdWFsID0gSC5lcXVhbFxuICAgICAgICBsZXQgaGFzaCAoX3NlZWQ6IGludCkgeCA9IEguaGFzaCB4XG4gICAgICBlbmQpXG4gICAgbGV0IGNyZWF0ZSBzeiA9IGNyZWF0ZSB+cmFuZG9tOmZhbHNlIHN6XG4gICAgbGV0IG9mX3NlcSBpID1cbiAgICAgIGxldCB0YmwgPSBjcmVhdGUgMTYgaW5cbiAgICAgIHJlcGxhY2Vfc2VxIHRibCBpO1xuICAgICAgdGJsXG4gIGVuZFxuXG4oKiBQb2x5bW9ycGhpYyBoYXNoIGZ1bmN0aW9uLWJhc2VkIHRhYmxlcyAqKVxuKCogQ29kZSBpbmNsdWRlZCBiZWxvdyB0aGUgZnVuY3RvcmlhbCBpbnRlcmZhY2UgdG8gZ3VhcmQgYWdhaW5zdCBhY2NpZGVudGFsXG4gICB1c2UgLSBzZWUgIzIyMDIgKilcblxuZXh0ZXJuYWwgc2VlZGVkX2hhc2hfcGFyYW0gOlxuICBpbnQgLT4gaW50IC0+IGludCAtPiAnYSAtPiBpbnQgPSBcImNhbWxfaGFzaFwiIFtAQG5vYWxsb2NdXG5cbmxldCBoYXNoIHggPSBzZWVkZWRfaGFzaF9wYXJhbSAxMCAxMDAgMCB4XG5sZXQgaGFzaF9wYXJhbSBuMSBuMiB4ID0gc2VlZGVkX2hhc2hfcGFyYW0gbjEgbjIgMCB4XG5sZXQgc2VlZGVkX2hhc2ggc2VlZCB4ID0gc2VlZGVkX2hhc2hfcGFyYW0gMTAgMTAwIHNlZWQgeFxuXG5sZXQga2V5X2luZGV4IGgga2V5ID1cbiAgaWYgT2JqLnNpemUgKE9iai5yZXByIGgpID49IDRcbiAgdGhlbiAoc2VlZGVkX2hhc2hfcGFyYW0gMTAgMTAwIGguc2VlZCBrZXkpIGxhbmQgKEFycmF5Lmxlbmd0aCBoLmRhdGEgLSAxKVxuICBlbHNlIGludmFsaWRfYXJnIFwiSGFzaHRibDogdW5zdXBwb3J0ZWQgaGFzaCB0YWJsZSBmb3JtYXRcIlxuXG5sZXQgYWRkIGgga2V5IGRhdGEgPVxuICBsZXQgaSA9IGtleV9pbmRleCBoIGtleSBpblxuICBsZXQgYnVja2V0ID0gQ29uc3trZXk7IGRhdGE7IG5leHQ9aC5kYXRhLihpKX0gaW5cbiAgaC5kYXRhLihpKSA8LSBidWNrZXQ7XG4gIGguc2l6ZSA8LSBoLnNpemUgKyAxO1xuICBpZiBoLnNpemUgPiBBcnJheS5sZW5ndGggaC5kYXRhIGxzbCAxIHRoZW4gcmVzaXplIGtleV9pbmRleCBoXG5cbmxldCByZWMgcmVtb3ZlX2J1Y2tldCBoIGkga2V5IHByZWMgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+XG4gICAgICAoKVxuICB8IChDb25zIHtrZXk9azsgbmV4dH0pIGFzIGMgLT5cbiAgICAgIGlmIGNvbXBhcmUgayBrZXkgPSAwXG4gICAgICB0aGVuIGJlZ2luXG4gICAgICAgIGguc2l6ZSA8LSBoLnNpemUgLSAxO1xuICAgICAgICBtYXRjaCBwcmVjIHdpdGhcbiAgICAgICAgfCBFbXB0eSAtPiBoLmRhdGEuKGkpIDwtIG5leHRcbiAgICAgICAgfCBDb25zIGMgLT4gYy5uZXh0IDwtIG5leHRcbiAgICAgIGVuZFxuICAgICAgZWxzZSByZW1vdmVfYnVja2V0IGggaSBrZXkgYyBuZXh0XG5cbmxldCByZW1vdmUgaCBrZXkgPVxuICBsZXQgaSA9IGtleV9pbmRleCBoIGtleSBpblxuICByZW1vdmVfYnVja2V0IGggaSBrZXkgRW1wdHkgaC5kYXRhLihpKVxuXG5sZXQgcmVjIGZpbmRfcmVjIGtleSA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT5cbiAgICAgIHJhaXNlIE5vdF9mb3VuZFxuICB8IENvbnN7a2V5PWs7IGRhdGE7IG5leHR9IC0+XG4gICAgICBpZiBjb21wYXJlIGtleSBrID0gMCB0aGVuIGRhdGEgZWxzZSBmaW5kX3JlYyBrZXkgbmV4dFxuXG5sZXQgZmluZCBoIGtleSA9XG4gIG1hdGNoIGguZGF0YS4oa2V5X2luZGV4IGgga2V5KSB3aXRoXG4gIHwgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gIHwgQ29uc3trZXk9azE7IGRhdGE9ZDE7IG5leHQ9bmV4dDF9IC0+XG4gICAgICBpZiBjb21wYXJlIGtleSBrMSA9IDAgdGhlbiBkMSBlbHNlXG4gICAgICBtYXRjaCBuZXh0MSB3aXRoXG4gICAgICB8IEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBDb25ze2tleT1rMjsgZGF0YT1kMjsgbmV4dD1uZXh0Mn0gLT5cbiAgICAgICAgICBpZiBjb21wYXJlIGtleSBrMiA9IDAgdGhlbiBkMiBlbHNlXG4gICAgICAgICAgbWF0Y2ggbmV4dDIgd2l0aFxuICAgICAgICAgIHwgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICAgICAgfCBDb25ze2tleT1rMzsgZGF0YT1kMzsgbmV4dD1uZXh0M30gLT5cbiAgICAgICAgICAgICAgaWYgY29tcGFyZSBrZXkgazMgPSAwIHRoZW4gZDMgZWxzZSBmaW5kX3JlYyBrZXkgbmV4dDNcblxubGV0IHJlYyBmaW5kX3JlY19vcHQga2V5ID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPlxuICAgICAgTm9uZVxuICB8IENvbnN7a2V5PWs7IGRhdGE7IG5leHR9IC0+XG4gICAgICBpZiBjb21wYXJlIGtleSBrID0gMCB0aGVuIFNvbWUgZGF0YSBlbHNlIGZpbmRfcmVjX29wdCBrZXkgbmV4dFxuXG5sZXQgZmluZF9vcHQgaCBrZXkgPVxuICBtYXRjaCBoLmRhdGEuKGtleV9pbmRleCBoIGtleSkgd2l0aFxuICB8IEVtcHR5IC0+IE5vbmVcbiAgfCBDb25ze2tleT1rMTsgZGF0YT1kMTsgbmV4dD1uZXh0MX0gLT5cbiAgICAgIGlmIGNvbXBhcmUga2V5IGsxID0gMCB0aGVuIFNvbWUgZDEgZWxzZVxuICAgICAgbWF0Y2ggbmV4dDEgd2l0aFxuICAgICAgfCBFbXB0eSAtPiBOb25lXG4gICAgICB8IENvbnN7a2V5PWsyOyBkYXRhPWQyOyBuZXh0PW5leHQyfSAtPlxuICAgICAgICAgIGlmIGNvbXBhcmUga2V5IGsyID0gMCB0aGVuIFNvbWUgZDIgZWxzZVxuICAgICAgICAgIG1hdGNoIG5leHQyIHdpdGhcbiAgICAgICAgICB8IEVtcHR5IC0+IE5vbmVcbiAgICAgICAgICB8IENvbnN7a2V5PWszOyBkYXRhPWQzOyBuZXh0PW5leHQzfSAtPlxuICAgICAgICAgICAgICBpZiBjb21wYXJlIGtleSBrMyA9IDAgdGhlbiBTb21lIGQzIGVsc2UgZmluZF9yZWNfb3B0IGtleSBuZXh0M1xuXG5sZXQgZmluZF9hbGwgaCBrZXkgPVxuICBsZXQgcmVjIGZpbmRfaW5fYnVja2V0ID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPlxuICAgICAgW11cbiAgfCBDb25ze2tleT1rOyBkYXRhOyBuZXh0fSAtPlxuICAgICAgaWYgY29tcGFyZSBrIGtleSA9IDBcbiAgICAgIHRoZW4gZGF0YSA6OiBmaW5kX2luX2J1Y2tldCBuZXh0XG4gICAgICBlbHNlIGZpbmRfaW5fYnVja2V0IG5leHQgaW5cbiAgZmluZF9pbl9idWNrZXQgaC5kYXRhLihrZXlfaW5kZXggaCBrZXkpXG5cbmxldCByZWMgcmVwbGFjZV9idWNrZXQga2V5IGRhdGEgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+XG4gICAgICB0cnVlXG4gIHwgQ29ucyAoe2tleT1rOyBuZXh0fSBhcyBzbG90KSAtPlxuICAgICAgaWYgY29tcGFyZSBrIGtleSA9IDBcbiAgICAgIHRoZW4gKHNsb3Qua2V5IDwtIGtleTsgc2xvdC5kYXRhIDwtIGRhdGE7IGZhbHNlKVxuICAgICAgZWxzZSByZXBsYWNlX2J1Y2tldCBrZXkgZGF0YSBuZXh0XG5cbmxldCByZXBsYWNlIGgga2V5IGRhdGEgPVxuICBsZXQgaSA9IGtleV9pbmRleCBoIGtleSBpblxuICBsZXQgbCA9IGguZGF0YS4oaSkgaW5cbiAgaWYgcmVwbGFjZV9idWNrZXQga2V5IGRhdGEgbCB0aGVuIGJlZ2luXG4gICAgaC5kYXRhLihpKSA8LSBDb25ze2tleTsgZGF0YTsgbmV4dD1sfTtcbiAgICBoLnNpemUgPC0gaC5zaXplICsgMTtcbiAgICBpZiBoLnNpemUgPiBBcnJheS5sZW5ndGggaC5kYXRhIGxzbCAxIHRoZW4gcmVzaXplIGtleV9pbmRleCBoXG4gIGVuZFxuXG5sZXQgbWVtIGgga2V5ID1cbiAgbGV0IHJlYyBtZW1faW5fYnVja2V0ID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPlxuICAgICAgZmFsc2VcbiAgfCBDb25ze2tleT1rOyBuZXh0fSAtPlxuICAgICAgY29tcGFyZSBrIGtleSA9IDAgfHwgbWVtX2luX2J1Y2tldCBuZXh0IGluXG4gIG1lbV9pbl9idWNrZXQgaC5kYXRhLihrZXlfaW5kZXggaCBrZXkpXG5cbmxldCBhZGRfc2VxIHRibCBpID1cbiAgU2VxLml0ZXIgKGZ1biAoayx2KSAtPiBhZGQgdGJsIGsgdikgaVxuXG5sZXQgcmVwbGFjZV9zZXEgdGJsIGkgPVxuICBTZXEuaXRlciAoZnVuIChrLHYpIC0+IHJlcGxhY2UgdGJsIGsgdikgaVxuXG5sZXQgb2Zfc2VxIGkgPVxuICBsZXQgdGJsID0gY3JlYXRlIDE2IGluXG4gIHJlcGxhY2Vfc2VxIHRibCBpO1xuICB0YmxcblxubGV0IHJlYnVpbGQgPyhyYW5kb20gPSAhcmFuZG9taXplZCkgaCA9XG4gIGxldCBzID0gcG93ZXJfMl9hYm92ZSAxNiAoQXJyYXkubGVuZ3RoIGguZGF0YSkgaW5cbiAgbGV0IHNlZWQgPVxuICAgIGlmIHJhbmRvbSB0aGVuIFJhbmRvbS5TdGF0ZS5iaXRzIChMYXp5LmZvcmNlIHBybmcpXG4gICAgZWxzZSBpZiBPYmouc2l6ZSAoT2JqLnJlcHIgaCkgPj0gNCB0aGVuIGguc2VlZFxuICAgIGVsc2UgMCBpblxuICBsZXQgaCcgPSB7XG4gICAgc2l6ZSA9IGguc2l6ZTtcbiAgICBkYXRhID0gQXJyYXkubWFrZSBzIEVtcHR5O1xuICAgIHNlZWQgPSBzZWVkO1xuICAgIGluaXRpYWxfc2l6ZSA9IGlmIE9iai5zaXplIChPYmoucmVwciBoKSA+PSA0IHRoZW4gaC5pbml0aWFsX3NpemUgZWxzZSBzXG4gIH0gaW5cbiAgaW5zZXJ0X2FsbF9idWNrZXRzIChrZXlfaW5kZXggaCcpIGZhbHNlIGguZGF0YSBoJy5kYXRhO1xuICBoJ1xuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgRGFtaWVuIERvbGlnZXosIHByb2pldCBQYXJhLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NyBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiogV2VhayBhcnJheSBvcGVyYXRpb25zICopXG5cbnR5cGUgISdhIHRcblxuZXh0ZXJuYWwgY3JlYXRlIDogaW50IC0+ICdhIHQgPSBcImNhbWxfd2Vha19jcmVhdGVcIlxuXG5sZXQgY3JlYXRlIGwgPVxuICBpZiBub3QgKDAgPD0gbCAmJiBsIDw9IE9iai5FcGhlbWVyb24ubWF4X2VwaGVfbGVuZ3RoKSB0aGVuXG4gICAgaW52YWxpZF9hcmcoXCJXZWFrLmNyZWF0ZVwiKTtcbiAgY3JlYXRlIGxcblxuKCoqIG51bWJlciBvZiBhZGRpdGlvbmFsIHZhbHVlcyBpbiBhIHdlYWsgcG9pbnRlciAqKVxubGV0IGFkZGl0aW9uYWxfdmFsdWVzID0gMlxuXG5sZXQgbGVuZ3RoIHggPSBPYmouc2l6ZShPYmoucmVwciB4KSAtIGFkZGl0aW9uYWxfdmFsdWVzXG5cbmxldCByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gbXNnID1cbiAgaWYgbm90ICgwIDw9IG8gJiYgbyA8IGxlbmd0aCBlKSB0aGVuXG4gICAgaW52YWxpZF9hcmcobXNnKVxuXG5leHRlcm5hbCBzZXQnIDogJ2EgdCAtPiBpbnQgLT4gJ2EgLT4gdW5pdCA9IFwiY2FtbF9lcGhlX3NldF9rZXlcIlxuZXh0ZXJuYWwgdW5zZXQgOiAnYSB0IC0+IGludCAtPiB1bml0ID0gXCJjYW1sX2VwaGVfdW5zZXRfa2V5XCJcbmxldCBzZXQgZSBvIHggPVxuICByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gXCJXZWFrLnNldFwiO1xuICBtYXRjaCB4IHdpdGhcbiAgfCBOb25lIC0+IHVuc2V0IGUgb1xuICB8IFNvbWUgeCAtPiBzZXQnIGUgbyB4XG5cbmV4dGVybmFsIGdldCA6ICdhIHQgLT4gaW50IC0+ICdhIG9wdGlvbiA9IFwiY2FtbF93ZWFrX2dldFwiXG5sZXQgZ2V0IGUgbyA9XG4gIHJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IGUgbyBcIldlYWsuZ2V0XCI7XG4gIGdldCBlIG9cblxuZXh0ZXJuYWwgZ2V0X2NvcHkgOiAnYSB0IC0+IGludCAtPiAnYSBvcHRpb24gPSBcImNhbWxfd2Vha19nZXRfY29weVwiXG5sZXQgZ2V0X2NvcHkgZSBvID1cbiAgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIFwiV2Vhay5nZXRfY29weVwiO1xuICBnZXRfY29weSBlIG9cblxuZXh0ZXJuYWwgY2hlY2sgOiAnYSB0IC0+IGludCAtPiBib29sID0gXCJjYW1sX3dlYWtfY2hlY2tcIlxubGV0IGNoZWNrIGUgbyA9XG4gIHJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IGUgbyBcIldlYWsuY2hlY2tcIjtcbiAgY2hlY2sgZSBvXG5cbmV4dGVybmFsIGJsaXQgOiAnYSB0IC0+IGludCAtPiAnYSB0IC0+IGludCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF93ZWFrX2JsaXRcIlxuXG4oKiBibGl0OiBzcmMgc3Jjb2ZmIGRzdCBkc3RvZmYgbGVuICopXG5sZXQgYmxpdCBlMSBvMSBlMiBvMiBsID1cbiAgaWYgbCA8IDAgfHwgbzEgPCAwIHx8IG8xID4gbGVuZ3RoIGUxIC0gbFxuICAgICB8fCBvMiA8IDAgfHwgbzIgPiBsZW5ndGggZTIgLSBsXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJXZWFrLmJsaXRcIlxuICBlbHNlIGlmIGwgPD4gMCB0aGVuIGJsaXQgZTEgbzEgZTIgbzIgbFxuXG5sZXQgZmlsbCBhciBvZnMgbGVuIHggPVxuICBpZiBvZnMgPCAwIHx8IGxlbiA8IDAgfHwgb2ZzID4gbGVuZ3RoIGFyIC0gbGVuXG4gIHRoZW4gcmFpc2UgKEludmFsaWRfYXJndW1lbnQgXCJXZWFrLmZpbGxcIilcbiAgZWxzZSBiZWdpblxuICAgIGZvciBpID0gb2ZzIHRvIChvZnMgKyBsZW4gLSAxKSBkb1xuICAgICAgc2V0IGFyIGkgeFxuICAgIGRvbmVcbiAgZW5kXG5cblxuKCoqIFdlYWsgaGFzaCB0YWJsZXMgKilcblxubW9kdWxlIHR5cGUgUyA9IHNpZ1xuICB0eXBlIGRhdGFcbiAgdHlwZSB0XG4gIHZhbCBjcmVhdGUgOiBpbnQgLT4gdFxuICB2YWwgY2xlYXIgOiB0IC0+IHVuaXRcbiAgdmFsIG1lcmdlIDogdCAtPiBkYXRhIC0+IGRhdGFcbiAgdmFsIGFkZCA6IHQgLT4gZGF0YSAtPiB1bml0XG4gIHZhbCByZW1vdmUgOiB0IC0+IGRhdGEgLT4gdW5pdFxuICB2YWwgZmluZCA6IHQgLT4gZGF0YSAtPiBkYXRhXG4gIHZhbCBmaW5kX29wdCA6IHQgLT4gZGF0YSAtPiBkYXRhIG9wdGlvblxuICB2YWwgZmluZF9hbGwgOiB0IC0+IGRhdGEgLT4gZGF0YSBsaXN0XG4gIHZhbCBtZW0gOiB0IC0+IGRhdGEgLT4gYm9vbFxuICB2YWwgaXRlciA6IChkYXRhIC0+IHVuaXQpIC0+IHQgLT4gdW5pdFxuICB2YWwgZm9sZCA6IChkYXRhIC0+ICdhIC0+ICdhKSAtPiB0IC0+ICdhIC0+ICdhXG4gIHZhbCBjb3VudCA6IHQgLT4gaW50XG4gIHZhbCBzdGF0cyA6IHQgLT4gaW50ICogaW50ICogaW50ICogaW50ICogaW50ICogaW50XG5lbmRcblxubW9kdWxlIE1ha2UgKEggOiBIYXNodGJsLkhhc2hlZFR5cGUpIDogKFMgd2l0aCB0eXBlIGRhdGEgPSBILnQpID0gc3RydWN0XG5cbiAgdHlwZSAnYSB3ZWFrX3QgPSAnYSB0XG4gIGxldCB3ZWFrX2NyZWF0ZSA9IGNyZWF0ZVxuICBsZXQgZW1wdHlidWNrZXQgPSB3ZWFrX2NyZWF0ZSAwXG5cbiAgdHlwZSBkYXRhID0gSC50XG5cbiAgdHlwZSB0ID0ge1xuICAgIG11dGFibGUgdGFibGUgOiBkYXRhIHdlYWtfdCBhcnJheTtcbiAgICBtdXRhYmxlIGhhc2hlcyA6IGludCBhcnJheSBhcnJheTtcbiAgICBtdXRhYmxlIGxpbWl0IDogaW50OyAgICAgICAgICAgICAgICgqIGJ1Y2tldCBzaXplIGxpbWl0ICopXG4gICAgbXV0YWJsZSBvdmVyc2l6ZSA6IGludDsgICAgICAgICAgICAoKiBudW1iZXIgb2Ygb3ZlcnNpemUgYnVja2V0cyAqKVxuICAgIG11dGFibGUgcm92ZXIgOiBpbnQ7ICAgICAgICAgICAgICAgKCogZm9yIGludGVybmFsIGJvb2trZWVwaW5nICopXG4gIH1cblxuICBsZXQgZ2V0X2luZGV4IHQgaCA9IChoIGxhbmQgbWF4X2ludCkgbW9kIChBcnJheS5sZW5ndGggdC50YWJsZSlcblxuICBsZXQgbGltaXQgPSA3XG4gIGxldCBvdmVyX2xpbWl0ID0gMlxuXG4gIGxldCBjcmVhdGUgc3ogPVxuICAgIGxldCBzeiA9IGlmIHN6IDwgNyB0aGVuIDcgZWxzZSBzeiBpblxuICAgIGxldCBzeiA9IGlmIHN6ID4gU3lzLm1heF9hcnJheV9sZW5ndGggdGhlbiBTeXMubWF4X2FycmF5X2xlbmd0aCBlbHNlIHN6IGluXG4gICAge1xuICAgICAgdGFibGUgPSBBcnJheS5tYWtlIHN6IGVtcHR5YnVja2V0O1xuICAgICAgaGFzaGVzID0gQXJyYXkubWFrZSBzeiBbfCB8XTtcbiAgICAgIGxpbWl0ID0gbGltaXQ7XG4gICAgICBvdmVyc2l6ZSA9IDA7XG4gICAgICByb3ZlciA9IDA7XG4gICAgfVxuXG4gIGxldCBjbGVhciB0ID1cbiAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIHQudGFibGUgLSAxIGRvXG4gICAgICB0LnRhYmxlLihpKSA8LSBlbXB0eWJ1Y2tldDtcbiAgICAgIHQuaGFzaGVzLihpKSA8LSBbfCB8XTtcbiAgICBkb25lO1xuICAgIHQubGltaXQgPC0gbGltaXQ7XG4gICAgdC5vdmVyc2l6ZSA8LSAwXG5cblxuICBsZXQgZm9sZCBmIHQgaW5pdCA9XG4gICAgbGV0IHJlYyBmb2xkX2J1Y2tldCBpIGIgYWNjdSA9XG4gICAgICBpZiBpID49IGxlbmd0aCBiIHRoZW4gYWNjdSBlbHNlXG4gICAgICBtYXRjaCBnZXQgYiBpIHdpdGhcbiAgICAgIHwgU29tZSB2IC0+IGZvbGRfYnVja2V0IChpKzEpIGIgKGYgdiBhY2N1KVxuICAgICAgfCBOb25lIC0+IGZvbGRfYnVja2V0IChpKzEpIGIgYWNjdVxuICAgIGluXG4gICAgQXJyYXkuZm9sZF9yaWdodCAoZm9sZF9idWNrZXQgMCkgdC50YWJsZSBpbml0XG5cblxuICBsZXQgaXRlciBmIHQgPVxuICAgIGxldCByZWMgaXRlcl9idWNrZXQgaSBiID1cbiAgICAgIGlmIGkgPj0gbGVuZ3RoIGIgdGhlbiAoKSBlbHNlXG4gICAgICBtYXRjaCBnZXQgYiBpIHdpdGhcbiAgICAgIHwgU29tZSB2IC0+IGYgdjsgaXRlcl9idWNrZXQgKGkrMSkgYlxuICAgICAgfCBOb25lIC0+IGl0ZXJfYnVja2V0IChpKzEpIGJcbiAgICBpblxuICAgIEFycmF5Lml0ZXIgKGl0ZXJfYnVja2V0IDApIHQudGFibGVcblxuXG4gIGxldCBpdGVyX3dlYWsgZiB0ID1cbiAgICBsZXQgcmVjIGl0ZXJfYnVja2V0IGkgaiBiID1cbiAgICAgIGlmIGkgPj0gbGVuZ3RoIGIgdGhlbiAoKSBlbHNlXG4gICAgICBtYXRjaCBjaGVjayBiIGkgd2l0aFxuICAgICAgfCB0cnVlIC0+IGYgYiB0Lmhhc2hlcy4oaikgaTsgaXRlcl9idWNrZXQgKGkrMSkgaiBiXG4gICAgICB8IGZhbHNlIC0+IGl0ZXJfYnVja2V0IChpKzEpIGogYlxuICAgIGluXG4gICAgQXJyYXkuaXRlcmkgKGl0ZXJfYnVja2V0IDApIHQudGFibGVcblxuXG4gIGxldCByZWMgY291bnRfYnVja2V0IGkgYiBhY2N1ID1cbiAgICBpZiBpID49IGxlbmd0aCBiIHRoZW4gYWNjdSBlbHNlXG4gICAgY291bnRfYnVja2V0IChpKzEpIGIgKGFjY3UgKyAoaWYgY2hlY2sgYiBpIHRoZW4gMSBlbHNlIDApKVxuXG5cbiAgbGV0IGNvdW50IHQgPVxuICAgIEFycmF5LmZvbGRfcmlnaHQgKGNvdW50X2J1Y2tldCAwKSB0LnRhYmxlIDBcblxuXG4gIGxldCBuZXh0X3N6IG4gPSBJbnQubWluICgzICogbiAvIDIgKyAzKSBTeXMubWF4X2FycmF5X2xlbmd0aFxuICBsZXQgcHJldl9zeiBuID0gKChuIC0gMykgKiAyICsgMikgLyAzXG5cbiAgbGV0IHRlc3Rfc2hyaW5rX2J1Y2tldCB0ID1cbiAgICBsZXQgYnVja2V0ID0gdC50YWJsZS4odC5yb3ZlcikgaW5cbiAgICBsZXQgaGJ1Y2tldCA9IHQuaGFzaGVzLih0LnJvdmVyKSBpblxuICAgIGxldCBsZW4gPSBsZW5ndGggYnVja2V0IGluXG4gICAgbGV0IHByZXZfbGVuID0gcHJldl9zeiBsZW4gaW5cbiAgICBsZXQgbGl2ZSA9IGNvdW50X2J1Y2tldCAwIGJ1Y2tldCAwIGluXG4gICAgaWYgbGl2ZSA8PSBwcmV2X2xlbiB0aGVuIGJlZ2luXG4gICAgICBsZXQgcmVjIGxvb3AgaSBqID1cbiAgICAgICAgaWYgaiA+PSBwcmV2X2xlbiB0aGVuIGJlZ2luXG4gICAgICAgICAgaWYgY2hlY2sgYnVja2V0IGkgdGhlbiBsb29wIChpICsgMSkgalxuICAgICAgICAgIGVsc2UgaWYgY2hlY2sgYnVja2V0IGogdGhlbiBiZWdpblxuICAgICAgICAgICAgYmxpdCBidWNrZXQgaiBidWNrZXQgaSAxO1xuICAgICAgICAgICAgaGJ1Y2tldC4oaSkgPC0gaGJ1Y2tldC4oaik7XG4gICAgICAgICAgICBsb29wIChpICsgMSkgKGogLSAxKTtcbiAgICAgICAgICBlbmQgZWxzZSBsb29wIGkgKGogLSAxKTtcbiAgICAgICAgZW5kO1xuICAgICAgaW5cbiAgICAgIGxvb3AgMCAobGVuZ3RoIGJ1Y2tldCAtIDEpO1xuICAgICAgaWYgcHJldl9sZW4gPSAwIHRoZW4gYmVnaW5cbiAgICAgICAgdC50YWJsZS4odC5yb3ZlcikgPC0gZW1wdHlidWNrZXQ7XG4gICAgICAgIHQuaGFzaGVzLih0LnJvdmVyKSA8LSBbfCB8XTtcbiAgICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICAgIGxldCBuZXdidWNrZXQgPSB3ZWFrX2NyZWF0ZSBwcmV2X2xlbiBpblxuICAgICAgICBibGl0IGJ1Y2tldCAwIG5ld2J1Y2tldCAwIHByZXZfbGVuO1xuICAgICAgICB0LnRhYmxlLih0LnJvdmVyKSA8LSBuZXdidWNrZXQ7XG4gICAgICAgIHQuaGFzaGVzLih0LnJvdmVyKSA8LSBBcnJheS5zdWIgaGJ1Y2tldCAwIHByZXZfbGVuXG4gICAgICBlbmQ7XG4gICAgICBpZiBsZW4gPiB0LmxpbWl0ICYmIHByZXZfbGVuIDw9IHQubGltaXQgdGhlbiB0Lm92ZXJzaXplIDwtIHQub3ZlcnNpemUgLSAxO1xuICAgIGVuZDtcbiAgICB0LnJvdmVyIDwtICh0LnJvdmVyICsgMSkgbW9kIChBcnJheS5sZW5ndGggdC50YWJsZSlcblxuXG4gIGxldCByZWMgcmVzaXplIHQgPVxuICAgIGxldCBvbGRsZW4gPSBBcnJheS5sZW5ndGggdC50YWJsZSBpblxuICAgIGxldCBuZXdsZW4gPSBuZXh0X3N6IG9sZGxlbiBpblxuICAgIGlmIG5ld2xlbiA+IG9sZGxlbiB0aGVuIGJlZ2luXG4gICAgICBsZXQgbmV3dCA9IGNyZWF0ZSBuZXdsZW4gaW5cbiAgICAgIGxldCBhZGRfd2VhayBvYiBvaCBvaSA9XG4gICAgICAgIGxldCBzZXR0ZXIgbmIgbmkgXyA9IGJsaXQgb2Igb2kgbmIgbmkgMSBpblxuICAgICAgICBsZXQgaCA9IG9oLihvaSkgaW5cbiAgICAgICAgYWRkX2F1eCBuZXd0IHNldHRlciBOb25lIGggKGdldF9pbmRleCBuZXd0IGgpO1xuICAgICAgaW5cbiAgICAgIGl0ZXJfd2VhayBhZGRfd2VhayB0O1xuICAgICAgdC50YWJsZSA8LSBuZXd0LnRhYmxlO1xuICAgICAgdC5oYXNoZXMgPC0gbmV3dC5oYXNoZXM7XG4gICAgICB0LmxpbWl0IDwtIG5ld3QubGltaXQ7XG4gICAgICB0Lm92ZXJzaXplIDwtIG5ld3Qub3ZlcnNpemU7XG4gICAgICB0LnJvdmVyIDwtIHQucm92ZXIgbW9kIEFycmF5Lmxlbmd0aCBuZXd0LnRhYmxlO1xuICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICB0LmxpbWl0IDwtIG1heF9pbnQ7ICAgICAgICAgICAgICgqIG1heGltdW0gc2l6ZSBhbHJlYWR5IHJlYWNoZWQgKilcbiAgICAgIHQub3ZlcnNpemUgPC0gMDtcbiAgICBlbmRcblxuICBhbmQgYWRkX2F1eCB0IHNldHRlciBkIGggaW5kZXggPVxuICAgIGxldCBidWNrZXQgPSB0LnRhYmxlLihpbmRleCkgaW5cbiAgICBsZXQgaGFzaGVzID0gdC5oYXNoZXMuKGluZGV4KSBpblxuICAgIGxldCBzeiA9IGxlbmd0aCBidWNrZXQgaW5cbiAgICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgICBpZiBpID49IHN6IHRoZW4gYmVnaW5cbiAgICAgICAgbGV0IG5ld3N6ID1cbiAgICAgICAgICBJbnQubWluICgzICogc3ogLyAyICsgMykgKFN5cy5tYXhfYXJyYXlfbGVuZ3RoIC0gYWRkaXRpb25hbF92YWx1ZXMpXG4gICAgICAgIGluXG4gICAgICAgIGlmIG5ld3N6IDw9IHN6IHRoZW4gZmFpbHdpdGggXCJXZWFrLk1ha2U6IGhhc2ggYnVja2V0IGNhbm5vdCBncm93IG1vcmVcIjtcbiAgICAgICAgbGV0IG5ld2J1Y2tldCA9IHdlYWtfY3JlYXRlIG5ld3N6IGluXG4gICAgICAgIGxldCBuZXdoYXNoZXMgPSBBcnJheS5tYWtlIG5ld3N6IDAgaW5cbiAgICAgICAgYmxpdCBidWNrZXQgMCBuZXdidWNrZXQgMCBzejtcbiAgICAgICAgQXJyYXkuYmxpdCBoYXNoZXMgMCBuZXdoYXNoZXMgMCBzejtcbiAgICAgICAgc2V0dGVyIG5ld2J1Y2tldCBzeiBkO1xuICAgICAgICBuZXdoYXNoZXMuKHN6KSA8LSBoO1xuICAgICAgICB0LnRhYmxlLihpbmRleCkgPC0gbmV3YnVja2V0O1xuICAgICAgICB0Lmhhc2hlcy4oaW5kZXgpIDwtIG5ld2hhc2hlcztcbiAgICAgICAgaWYgc3ogPD0gdC5saW1pdCAmJiBuZXdzeiA+IHQubGltaXQgdGhlbiBiZWdpblxuICAgICAgICAgIHQub3ZlcnNpemUgPC0gdC5vdmVyc2l6ZSArIDE7XG4gICAgICAgICAgZm9yIF9pID0gMCB0byBvdmVyX2xpbWl0IGRvIHRlc3Rfc2hyaW5rX2J1Y2tldCB0IGRvbmU7XG4gICAgICAgIGVuZDtcbiAgICAgICAgaWYgdC5vdmVyc2l6ZSA+IEFycmF5Lmxlbmd0aCB0LnRhYmxlIC8gb3Zlcl9saW1pdCB0aGVuIHJlc2l6ZSB0O1xuICAgICAgZW5kIGVsc2UgaWYgY2hlY2sgYnVja2V0IGkgdGhlbiBiZWdpblxuICAgICAgICBsb29wIChpICsgMSlcbiAgICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICAgIHNldHRlciBidWNrZXQgaSBkO1xuICAgICAgICBoYXNoZXMuKGkpIDwtIGg7XG4gICAgICBlbmQ7XG4gICAgaW5cbiAgICBsb29wIDBcblxuXG4gIGxldCBhZGQgdCBkID1cbiAgICBsZXQgaCA9IEguaGFzaCBkIGluXG4gICAgYWRkX2F1eCB0IHNldCAoU29tZSBkKSBoIChnZXRfaW5kZXggdCBoKVxuXG5cbiAgbGV0IGZpbmRfb3IgdCBkIGlmbm90Zm91bmQgPVxuICAgIGxldCBoID0gSC5oYXNoIGQgaW5cbiAgICBsZXQgaW5kZXggPSBnZXRfaW5kZXggdCBoIGluXG4gICAgbGV0IGJ1Y2tldCA9IHQudGFibGUuKGluZGV4KSBpblxuICAgIGxldCBoYXNoZXMgPSB0Lmhhc2hlcy4oaW5kZXgpIGluXG4gICAgbGV0IHN6ID0gbGVuZ3RoIGJ1Y2tldCBpblxuICAgIGxldCByZWMgbG9vcCBpID1cbiAgICAgIGlmIGkgPj0gc3ogdGhlbiBpZm5vdGZvdW5kIGggaW5kZXhcbiAgICAgIGVsc2UgaWYgaCA9IGhhc2hlcy4oaSkgdGhlbiBiZWdpblxuICAgICAgICBtYXRjaCBnZXRfY29weSBidWNrZXQgaSB3aXRoXG4gICAgICAgIHwgU29tZSB2IHdoZW4gSC5lcXVhbCB2IGRcbiAgICAgICAgICAgLT4gYmVnaW4gbWF0Y2ggZ2V0IGJ1Y2tldCBpIHdpdGhcbiAgICAgICAgICAgICAgfCBTb21lIHYgLT4gdlxuICAgICAgICAgICAgICB8IE5vbmUgLT4gbG9vcCAoaSArIDEpXG4gICAgICAgICAgICAgIGVuZFxuICAgICAgICB8IF8gLT4gbG9vcCAoaSArIDEpXG4gICAgICBlbmQgZWxzZSBsb29wIChpICsgMSlcbiAgICBpblxuICAgIGxvb3AgMFxuXG5cbiAgbGV0IG1lcmdlIHQgZCA9XG4gICAgZmluZF9vciB0IGQgKGZ1biBoIGluZGV4IC0+IGFkZF9hdXggdCBzZXQgKFNvbWUgZCkgaCBpbmRleDsgZClcblxuXG4gIGxldCBmaW5kIHQgZCA9IGZpbmRfb3IgdCBkIChmdW4gX2ggX2luZGV4IC0+IHJhaXNlIE5vdF9mb3VuZClcblxuICBsZXQgZmluZF9vcHQgdCBkID1cbiAgICBsZXQgaCA9IEguaGFzaCBkIGluXG4gICAgbGV0IGluZGV4ID0gZ2V0X2luZGV4IHQgaCBpblxuICAgIGxldCBidWNrZXQgPSB0LnRhYmxlLihpbmRleCkgaW5cbiAgICBsZXQgaGFzaGVzID0gdC5oYXNoZXMuKGluZGV4KSBpblxuICAgIGxldCBzeiA9IGxlbmd0aCBidWNrZXQgaW5cbiAgICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgICBpZiBpID49IHN6IHRoZW4gTm9uZVxuICAgICAgZWxzZSBpZiBoID0gaGFzaGVzLihpKSB0aGVuIGJlZ2luXG4gICAgICAgIG1hdGNoIGdldF9jb3B5IGJ1Y2tldCBpIHdpdGhcbiAgICAgICAgfCBTb21lIHYgd2hlbiBILmVxdWFsIHYgZFxuICAgICAgICAgICAtPiBiZWdpbiBtYXRjaCBnZXQgYnVja2V0IGkgd2l0aFxuICAgICAgICAgICAgICB8IFNvbWUgXyBhcyB2IC0+IHZcbiAgICAgICAgICAgICAgfCBOb25lIC0+IGxvb3AgKGkgKyAxKVxuICAgICAgICAgICAgICBlbmRcbiAgICAgICAgfCBfIC0+IGxvb3AgKGkgKyAxKVxuICAgICAgZW5kIGVsc2UgbG9vcCAoaSArIDEpXG4gICAgaW5cbiAgICBsb29wIDBcblxuXG4gIGxldCBmaW5kX3NoYWRvdyB0IGQgaWZmb3VuZCBpZm5vdGZvdW5kID1cbiAgICBsZXQgaCA9IEguaGFzaCBkIGluXG4gICAgbGV0IGluZGV4ID0gZ2V0X2luZGV4IHQgaCBpblxuICAgIGxldCBidWNrZXQgPSB0LnRhYmxlLihpbmRleCkgaW5cbiAgICBsZXQgaGFzaGVzID0gdC5oYXNoZXMuKGluZGV4KSBpblxuICAgIGxldCBzeiA9IGxlbmd0aCBidWNrZXQgaW5cbiAgICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgICBpZiBpID49IHN6IHRoZW4gaWZub3Rmb3VuZFxuICAgICAgZWxzZSBpZiBoID0gaGFzaGVzLihpKSB0aGVuIGJlZ2luXG4gICAgICAgIG1hdGNoIGdldF9jb3B5IGJ1Y2tldCBpIHdpdGhcbiAgICAgICAgfCBTb21lIHYgd2hlbiBILmVxdWFsIHYgZCAtPiBpZmZvdW5kIGJ1Y2tldCBpXG4gICAgICAgIHwgXyAtPiBsb29wIChpICsgMSlcbiAgICAgIGVuZCBlbHNlIGxvb3AgKGkgKyAxKVxuICAgIGluXG4gICAgbG9vcCAwXG5cblxuICBsZXQgcmVtb3ZlIHQgZCA9IGZpbmRfc2hhZG93IHQgZCAoZnVuIHcgaSAtPiBzZXQgdyBpIE5vbmUpICgpXG5cblxuICBsZXQgbWVtIHQgZCA9IGZpbmRfc2hhZG93IHQgZCAoZnVuIF93IF9pIC0+IHRydWUpIGZhbHNlXG5cblxuICBsZXQgZmluZF9hbGwgdCBkID1cbiAgICBsZXQgaCA9IEguaGFzaCBkIGluXG4gICAgbGV0IGluZGV4ID0gZ2V0X2luZGV4IHQgaCBpblxuICAgIGxldCBidWNrZXQgPSB0LnRhYmxlLihpbmRleCkgaW5cbiAgICBsZXQgaGFzaGVzID0gdC5oYXNoZXMuKGluZGV4KSBpblxuICAgIGxldCBzeiA9IGxlbmd0aCBidWNrZXQgaW5cbiAgICBsZXQgcmVjIGxvb3AgaSBhY2N1ID1cbiAgICAgIGlmIGkgPj0gc3ogdGhlbiBhY2N1XG4gICAgICBlbHNlIGlmIGggPSBoYXNoZXMuKGkpIHRoZW4gYmVnaW5cbiAgICAgICAgbWF0Y2ggZ2V0X2NvcHkgYnVja2V0IGkgd2l0aFxuICAgICAgICB8IFNvbWUgdiB3aGVuIEguZXF1YWwgdiBkXG4gICAgICAgICAgIC0+IGJlZ2luIG1hdGNoIGdldCBidWNrZXQgaSB3aXRoXG4gICAgICAgICAgICAgIHwgU29tZSB2IC0+IGxvb3AgKGkgKyAxKSAodiA6OiBhY2N1KVxuICAgICAgICAgICAgICB8IE5vbmUgLT4gbG9vcCAoaSArIDEpIGFjY3VcbiAgICAgICAgICAgICAgZW5kXG4gICAgICAgIHwgXyAtPiBsb29wIChpICsgMSkgYWNjdVxuICAgICAgZW5kIGVsc2UgbG9vcCAoaSArIDEpIGFjY3VcbiAgICBpblxuICAgIGxvb3AgMCBbXVxuXG5cbiAgbGV0IHN0YXRzIHQgPVxuICAgIGxldCBsZW4gPSBBcnJheS5sZW5ndGggdC50YWJsZSBpblxuICAgIGxldCBsZW5zID0gQXJyYXkubWFwIGxlbmd0aCB0LnRhYmxlIGluXG4gICAgQXJyYXkuc29ydCBjb21wYXJlIGxlbnM7XG4gICAgbGV0IHRvdGxlbiA9IEFycmF5LmZvbGRfbGVmdCAoICsgKSAwIGxlbnMgaW5cbiAgICAobGVuLCBjb3VudCB0LCB0b3RsZW4sIGxlbnMuKDApLCBsZW5zLihsZW4vMiksIGxlbnMuKGxlbi0xKSlcblxuXG5lbmRcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFBpZXJyZSBXZWlzLCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogQSBwcmV0dHktcHJpbnRpbmcgZmFjaWxpdHkgYW5kIGRlZmluaXRpb24gb2YgZm9ybWF0dGVycyBmb3IgJ3BhcmFsbGVsJ1xuICAgKGkuZS4gdW5yZWxhdGVkIG9yIGluZGVwZW5kZW50KSBwcmV0dHktcHJpbnRpbmcgb24gbXVsdGlwbGUgb3V0IGNoYW5uZWxzLiAqKVxuXG4oKlxuICAgVGhlIHByZXR0eS1wcmludGluZyBlbmdpbmUgaW50ZXJuYWwgZGF0YSBzdHJ1Y3R1cmVzLlxuKilcblxubGV0IGlkIHggPSB4XG5cbigqIEEgZGV2b3RlZCB0eXBlIGZvciBzaXplcyB0byBhdm9pZCBjb25mdXNpb25cbiAgIGJldHdlZW4gc2l6ZXMgYW5kIG1lcmUgaW50ZWdlcnMuICopXG5tb2R1bGUgU2l6ZSA6IHNpZ1xuICB0eXBlIHRcblxuICB2YWwgdG9faW50IDogdCAtPiBpbnRcbiAgdmFsIG9mX2ludCA6IGludCAtPiB0XG4gIHZhbCB6ZXJvIDogdFxuICB2YWwgdW5rbm93biA6IHRcbiAgdmFsIGlzX2tub3duIDogdCAtPiBib29sXG5lbmQgID0gc3RydWN0XG4gIHR5cGUgdCA9IGludFxuXG4gIGxldCB0b19pbnQgPSBpZFxuICBsZXQgb2ZfaW50ID0gaWRcbiAgbGV0IHplcm8gPSAwXG4gIGxldCB1bmtub3duID0gLTFcbiAgbGV0IGlzX2tub3duIG4gPSBuID49IDBcbmVuZFxuXG5cblxuKCogVGhlIHByZXR0eS1wcmludGluZyBib3hlcyBkZWZpbml0aW9uOlxuICAgYSBwcmV0dHktcHJpbnRpbmcgYm94IGlzIGVpdGhlclxuICAgLSBoYm94OiBob3Jpem9udGFsIGJveCAobm8gbGluZSBzcGxpdHRpbmcpXG4gICAtIHZib3g6IHZlcnRpY2FsIGJveCAoZXZlcnkgYnJlYWsgaGludCBzcGxpdHMgdGhlIGxpbmUpXG4gICAtIGh2Ym94OiBob3Jpem9udGFsL3ZlcnRpY2FsIGJveFxuICAgICAodGhlIGJveCBiZWhhdmVzIGFzIGFuIGhvcml6b250YWwgYm94IGlmIGl0IGZpdHMgb25cbiAgICAgIHRoZSBjdXJyZW50IGxpbmUsIG90aGVyd2lzZSB0aGUgYm94IGJlaGF2ZXMgYXMgYSB2ZXJ0aWNhbCBib3gpXG4gICAtIGhvdmJveDogaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbCBjb21wYWN0aW5nIGJveFxuICAgICAodGhlIGJveCBpcyBjb21wYWN0aW5nIG1hdGVyaWFsLCBwcmludGluZyBhcyBtdWNoIG1hdGVyaWFsIGFzIHBvc3NpYmxlXG4gICAgICBvbiBldmVyeSBsaW5lcylcbiAgIC0gYm94OiBob3Jpem9udGFsIG9yIHZlcnRpY2FsIGNvbXBhY3RpbmcgYm94IHdpdGggZW5oYW5jZWQgYm94IHN0cnVjdHVyZVxuICAgICAodGhlIGJveCBiZWhhdmVzIGFzIGFuIGhvcml6b250YWwgb3IgdmVydGljYWwgYm94IGJ1dCBicmVhayBoaW50cyBzcGxpdFxuICAgICAgdGhlIGxpbmUgaWYgc3BsaXR0aW5nIHdvdWxkIG1vdmUgdG8gdGhlIGxlZnQpXG4qKVxudHlwZSBib3hfdHlwZSA9IENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljcy5ibG9ja190eXBlID1cbiAgfCBQcF9oYm94IHwgUHBfdmJveCB8IFBwX2h2Ym94IHwgUHBfaG92Ym94IHwgUHBfYm94IHwgUHBfZml0c1xuXG5cbigqIFRoZSBwcmV0dHktcHJpbnRpbmcgdG9rZW5zIGRlZmluaXRpb246XG4gICBhcmUgZWl0aGVyIHRleHQgdG8gcHJpbnQgb3IgcHJldHR5IHByaW50aW5nXG4gICBlbGVtZW50cyB0aGF0IGRyaXZlIGluZGVudGF0aW9uIGFuZCBsaW5lIHNwbGl0dGluZy4gKilcbnR5cGUgcHBfdG9rZW4gPVxuICB8IFBwX3RleHQgb2Ygc3RyaW5nICAgICAgICAgICgqIG5vcm1hbCB0ZXh0ICopXG4gIHwgUHBfYnJlYWsgb2YgeyAgICAgICAgICAgICAgKCogY29tcGxldGUgYnJlYWsgKilcbiAgICAgIGZpdHM6IHN0cmluZyAqIGludCAqIHN0cmluZzsgICAoKiBsaW5lIGlzIG5vdCBzcGxpdCAqKVxuICAgICAgYnJlYWtzOiBzdHJpbmcgKiBpbnQgKiBzdHJpbmc7ICgqIGxpbmUgaXMgc3BsaXQgKilcbiAgICB9XG4gIHwgUHBfdGJyZWFrIG9mIGludCAqIGludCAgICAgKCogZ28gdG8gbmV4dCB0YWJ1bGF0aW9uICopXG4gIHwgUHBfc3RhYiAgICAgICAgICAgICAgICAgICAgKCogc2V0IGEgdGFidWxhdGlvbiAqKVxuICB8IFBwX2JlZ2luIG9mIGludCAqIGJveF90eXBlICgqIGJlZ2lubmluZyBvZiBhIGJveCAqKVxuICB8IFBwX2VuZCAgICAgICAgICAgICAgICAgICAgICgqIGVuZCBvZiBhIGJveCAqKVxuICB8IFBwX3RiZWdpbiBvZiB0Ym94ICAgICAgICAgICgqIGJlZ2lubmluZyBvZiBhIHRhYnVsYXRpb24gYm94ICopXG4gIHwgUHBfdGVuZCAgICAgICAgICAgICAgICAgICAgKCogZW5kIG9mIGEgdGFidWxhdGlvbiBib3ggKilcbiAgfCBQcF9uZXdsaW5lICAgICAgICAgICAgICAgICAoKiB0byBmb3JjZSBhIG5ld2xpbmUgaW5zaWRlIGEgYm94ICopXG4gIHwgUHBfaWZfbmV3bGluZSAgICAgICAgICAgICAgKCogdG8gZG8gc29tZXRoaW5nIG9ubHkgaWYgdGhpcyB2ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZSBoYXMgYmVlbiBicm9rZW4gKilcbiAgfCBQcF9vcGVuX3RhZyBvZiBzdGFnICAgICAgICAgKCogb3BlbmluZyBhIHRhZyBuYW1lICopXG4gIHwgUHBfY2xvc2VfdGFnICAgICAgICAgICAgICAgKCogY2xvc2luZyB0aGUgbW9zdCByZWNlbnRseSBvcGVuIHRhZyAqKVxuXG5hbmQgc3RhZyA9IC4uXG5cbmFuZCB0Ym94ID0gUHBfdGJveCBvZiBpbnQgbGlzdCByZWYgICgqIFRhYnVsYXRpb24gYm94ICopXG5cbnR5cGUgdGFnID0gc3RyaW5nXG50eXBlIHN0YWcgKz0gU3RyaW5nX3RhZyBvZiB0YWdcblxuXG4oKiBUaGUgcHJldHR5LXByaW50ZXIgcXVldWU6XG4gICBwcmV0dHktcHJpbnRpbmcgbWF0ZXJpYWwgaXMgbm90IHdyaXR0ZW4gaW4gdGhlIG91dHB1dCBhcyBzb29uIGFzIGVtaXR0ZWQ7XG4gICBpbnN0ZWFkLCB0aGUgbWF0ZXJpYWwgaXMgc2ltcGx5IHJlY29yZGVkIGluIHRoZSBwcmV0dHktcHJpbnRlciBxdWV1ZSxcbiAgIHVudGlsIHRoZSBlbmNsb3NpbmcgYm94IGhhcyBhIGtub3duIGNvbXB1dGVkIHNpemUgYW5kIHByb3BlciBzcGxpdHRpbmdcbiAgIGRlY2lzaW9ucyBjYW4gYmUgbWFkZS5cblxuICAgVGhlIHByZXR0eS1wcmludGVyIHF1ZXVlIGNvbnRhaW5zIGZvcm1hdHRpbmcgZWxlbWVudHMgdG8gYmUgcHJpbnRlZC5cbiAgIEVhY2ggZm9ybWF0dGluZyBlbGVtZW50IGlzIGEgdHVwbGUgKHNpemUsIHRva2VuLCBsZW5ndGgpLCB3aGVyZVxuICAgLSBsZW5ndGggaXMgdGhlIGRlY2xhcmVkIGxlbmd0aCBvZiB0aGUgdG9rZW4sXG4gICAtIHNpemUgaXMgZWZmZWN0aXZlIHNpemUgb2YgdGhlIHRva2VuIHdoZW4gaXQgaXMgcHJpbnRlZFxuICAgICAoc2l6ZSBpcyBzZXQgd2hlbiB0aGUgc2l6ZSBvZiB0aGUgYm94IGlzIGtub3duLCBzbyB0aGF0IHNpemUgb2YgYnJlYWtcbiAgICAgIGhpbnRzIGFyZSBkZWZpbml0aXZlKS4gKilcbnR5cGUgcHBfcXVldWVfZWxlbSA9IHtcbiAgbXV0YWJsZSBzaXplIDogU2l6ZS50O1xuICB0b2tlbiA6IHBwX3Rva2VuO1xuICBsZW5ndGggOiBpbnQ7XG59XG5cblxuKCogVGhlIHByZXR0eS1wcmludGVyIHF1ZXVlIGRlZmluaXRpb24uICopXG50eXBlIHBwX3F1ZXVlID0gcHBfcXVldWVfZWxlbSBRdWV1ZS50XG5cbigqIFRoZSBwcmV0dHktcHJpbnRlciBzY2FubmluZyBzdGFjay4gKilcblxuKCogVGhlIHByZXR0eS1wcmludGVyIHNjYW5uaW5nIHN0YWNrOiBzY2FubmluZyBlbGVtZW50IGRlZmluaXRpb24uICopXG50eXBlIHBwX3NjYW5fZWxlbSA9IHtcbiAgbGVmdF90b3RhbCA6IGludDsgKCogVmFsdWUgb2YgcHBfbGVmdF90b3RhbCB3aGVuIHRoZSBlbGVtZW50IHdhcyBlbnF1ZXVlZC4gKilcbiAgcXVldWVfZWxlbSA6IHBwX3F1ZXVlX2VsZW1cbn1cblxuKCogVGhlIHByZXR0eS1wcmludGVyIGZvcm1hdHRpbmcgc3RhY2s6XG4gICB0aGUgZm9ybWF0dGluZyBzdGFjayBjb250YWlucyB0aGUgZGVzY3JpcHRpb24gb2YgYWxsIHRoZSBjdXJyZW50bHkgYWN0aXZlXG4gICBib3hlczsgdGhlIHByZXR0eS1wcmludGVyIGZvcm1hdHRpbmcgc3RhY2sgaXMgdXNlZCB0byBzcGxpdCB0aGUgbGluZXNcbiAgIHdoaWxlIHByaW50aW5nIHRva2Vucy4gKilcblxuKCogVGhlIHByZXR0eS1wcmludGVyIGZvcm1hdHRpbmcgc3RhY2s6IGZvcm1hdHRpbmcgc3RhY2sgZWxlbWVudCBkZWZpbml0aW9uLlxuICAgRWFjaCBzdGFjayBlbGVtZW50IGRlc2NyaWJlcyBhIHByZXR0eS1wcmludGluZyBib3guICopXG50eXBlIHBwX2Zvcm1hdF9lbGVtID0geyBib3hfdHlwZSA6IGJveF90eXBlOyB3aWR0aCA6IGludCB9XG5cbigqIFRoZSBmb3JtYXR0ZXIgZGVmaW5pdGlvbi5cbiAgIEVhY2ggZm9ybWF0dGVyIHZhbHVlIGlzIGEgcHJldHR5LXByaW50ZXIgaW5zdGFuY2Ugd2l0aCBhbGwgaXRzXG4gICBtYWNoaW5lcnkuICopXG50eXBlIGZvcm1hdHRlciA9IHtcbiAgKCogVGhlIHByZXR0eS1wcmludGVyIHNjYW5uaW5nIHN0YWNrLiAqKVxuICBwcF9zY2FuX3N0YWNrIDogcHBfc2Nhbl9lbGVtIFN0YWNrLnQ7XG4gICgqIFRoZSBwcmV0dHktcHJpbnRlciBmb3JtYXR0aW5nIHN0YWNrLiAqKVxuICBwcF9mb3JtYXRfc3RhY2sgOiBwcF9mb3JtYXRfZWxlbSBTdGFjay50O1xuICBwcF90Ym94X3N0YWNrIDogdGJveCBTdGFjay50O1xuICAoKiBUaGUgcHJldHR5LXByaW50ZXIgc2VtYW50aWNzIHRhZyBzdGFjay4gKilcbiAgcHBfdGFnX3N0YWNrIDogc3RhZyBTdGFjay50O1xuICBwcF9tYXJrX3N0YWNrIDogc3RhZyBTdGFjay50O1xuICAoKiBWYWx1ZSBvZiByaWdodCBtYXJnaW4uICopXG4gIG11dGFibGUgcHBfbWFyZ2luIDogaW50O1xuICAoKiBNaW5pbWFsIHNwYWNlIGxlZnQgYmVmb3JlIG1hcmdpbiwgd2hlbiBvcGVuaW5nIGEgYm94LiAqKVxuICBtdXRhYmxlIHBwX21pbl9zcGFjZV9sZWZ0IDogaW50O1xuICAoKiBNYXhpbXVtIHZhbHVlIG9mIGluZGVudGF0aW9uOlxuICAgICBubyBib3ggY2FuIGJlIG9wZW5lZCBmdXJ0aGVyLiAqKVxuICBtdXRhYmxlIHBwX21heF9pbmRlbnQgOiBpbnQ7XG4gICgqIFNwYWNlIHJlbWFpbmluZyBvbiB0aGUgY3VycmVudCBsaW5lLiAqKVxuICBtdXRhYmxlIHBwX3NwYWNlX2xlZnQgOiBpbnQ7XG4gICgqIEN1cnJlbnQgdmFsdWUgb2YgaW5kZW50YXRpb24uICopXG4gIG11dGFibGUgcHBfY3VycmVudF9pbmRlbnQgOiBpbnQ7XG4gICgqIFRydWUgd2hlbiB0aGUgbGluZSBoYXMgYmVlbiBicm9rZW4gYnkgdGhlIHByZXR0eS1wcmludGVyLiAqKVxuICBtdXRhYmxlIHBwX2lzX25ld19saW5lIDogYm9vbDtcbiAgKCogVG90YWwgd2lkdGggb2YgdG9rZW5zIGFscmVhZHkgcHJpbnRlZC4gKilcbiAgbXV0YWJsZSBwcF9sZWZ0X3RvdGFsIDogaW50O1xuICAoKiBUb3RhbCB3aWR0aCBvZiB0b2tlbnMgZXZlciBwdXQgaW4gcXVldWUuICopXG4gIG11dGFibGUgcHBfcmlnaHRfdG90YWwgOiBpbnQ7XG4gICgqIEN1cnJlbnQgbnVtYmVyIG9mIG9wZW4gYm94ZXMuICopXG4gIG11dGFibGUgcHBfY3Vycl9kZXB0aCA6IGludDtcbiAgKCogTWF4aW11bSBudW1iZXIgb2YgYm94ZXMgd2hpY2ggY2FuIGJlIHNpbXVsdGFuZW91c2x5IG9wZW4uICopXG4gIG11dGFibGUgcHBfbWF4X2JveGVzIDogaW50O1xuICAoKiBFbGxpcHNpcyBzdHJpbmcuICopXG4gIG11dGFibGUgcHBfZWxsaXBzaXMgOiBzdHJpbmc7XG4gICgqIE91dHB1dCBmdW5jdGlvbi4gKilcbiAgbXV0YWJsZSBwcF9vdXRfc3RyaW5nIDogc3RyaW5nIC0+IGludCAtPiBpbnQgLT4gdW5pdDtcbiAgKCogRmx1c2hpbmcgZnVuY3Rpb24uICopXG4gIG11dGFibGUgcHBfb3V0X2ZsdXNoIDogdW5pdCAtPiB1bml0O1xuICAoKiBPdXRwdXQgb2YgbmV3IGxpbmVzLiAqKVxuICBtdXRhYmxlIHBwX291dF9uZXdsaW5lIDogdW5pdCAtPiB1bml0O1xuICAoKiBPdXRwdXQgb2YgYnJlYWsgaGludHMgc3BhY2VzLiAqKVxuICBtdXRhYmxlIHBwX291dF9zcGFjZXMgOiBpbnQgLT4gdW5pdDtcbiAgKCogT3V0cHV0IG9mIGluZGVudGF0aW9uIG9mIG5ldyBsaW5lcy4gKilcbiAgbXV0YWJsZSBwcF9vdXRfaW5kZW50IDogaW50IC0+IHVuaXQ7XG4gICgqIEFyZSB0YWdzIHByaW50ZWQgPyAqKVxuICBtdXRhYmxlIHBwX3ByaW50X3RhZ3MgOiBib29sO1xuICAoKiBBcmUgdGFncyBtYXJrZWQgPyAqKVxuICBtdXRhYmxlIHBwX21hcmtfdGFncyA6IGJvb2w7XG4gICgqIEZpbmQgb3BlbmluZyBhbmQgY2xvc2luZyBtYXJrZXJzIG9mIHRhZ3MuICopXG4gIG11dGFibGUgcHBfbWFya19vcGVuX3RhZyA6IHN0YWcgLT4gc3RyaW5nO1xuICBtdXRhYmxlIHBwX21hcmtfY2xvc2VfdGFnIDogc3RhZyAtPiBzdHJpbmc7XG4gIG11dGFibGUgcHBfcHJpbnRfb3Blbl90YWcgOiBzdGFnIC0+IHVuaXQ7XG4gIG11dGFibGUgcHBfcHJpbnRfY2xvc2VfdGFnIDogc3RhZyAtPiB1bml0O1xuICAoKiBUaGUgcHJldHR5LXByaW50ZXIgcXVldWUuICopXG4gIHBwX3F1ZXVlIDogcHBfcXVldWU7XG59XG5cblxuKCogVGhlIGZvcm1hdHRlciBzcGVjaWZpYyB0YWcgaGFuZGxpbmcgZnVuY3Rpb25zLiAqKVxudHlwZSBmb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMgPSB7XG4gIG1hcmtfb3Blbl9zdGFnIDogc3RhZyAtPiBzdHJpbmc7XG4gIG1hcmtfY2xvc2Vfc3RhZyA6IHN0YWcgLT4gc3RyaW5nO1xuICBwcmludF9vcGVuX3N0YWcgOiBzdGFnIC0+IHVuaXQ7XG4gIHByaW50X2Nsb3NlX3N0YWcgOiBzdGFnIC0+IHVuaXQ7XG59XG5cblxuKCogVGhlIGZvcm1hdHRlciBmdW5jdGlvbnMgdG8gb3V0cHV0IG1hdGVyaWFsLiAqKVxudHlwZSBmb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyA9IHtcbiAgb3V0X3N0cmluZyA6IHN0cmluZyAtPiBpbnQgLT4gaW50IC0+IHVuaXQ7XG4gIG91dF9mbHVzaCA6IHVuaXQgLT4gdW5pdDtcbiAgb3V0X25ld2xpbmUgOiB1bml0IC0+IHVuaXQ7XG4gIG91dF9zcGFjZXMgOiBpbnQgLT4gdW5pdDtcbiAgb3V0X2luZGVudCA6IGludCAtPiB1bml0O1xufVxuXG5cbigqXG5cbiAgQXV4aWxpYXJpZXMgYW5kIGJhc2ljIGZ1bmN0aW9ucy5cblxuKilcblxuKCogRW50ZXIgYSB0b2tlbiBpbiB0aGUgcHJldHR5LXByaW50ZXIgcXVldWUuICopXG5sZXQgcHBfZW5xdWV1ZSBzdGF0ZSB0b2tlbiA9XG4gIHN0YXRlLnBwX3JpZ2h0X3RvdGFsIDwtIHN0YXRlLnBwX3JpZ2h0X3RvdGFsICsgdG9rZW4ubGVuZ3RoO1xuICBRdWV1ZS5hZGQgdG9rZW4gc3RhdGUucHBfcXVldWVcblxuXG5sZXQgcHBfY2xlYXJfcXVldWUgc3RhdGUgPVxuICBzdGF0ZS5wcF9sZWZ0X3RvdGFsIDwtIDE7IHN0YXRlLnBwX3JpZ2h0X3RvdGFsIDwtIDE7XG4gIFF1ZXVlLmNsZWFyIHN0YXRlLnBwX3F1ZXVlXG5cblxuKCogUHBfaW5maW5pdHk6IGxhcmdlIHZhbHVlIGZvciBkZWZhdWx0IHRva2VucyBzaXplLlxuXG4gICBQcF9pbmZpbml0eSBpcyBkb2N1bWVudGVkIGFzIGJlaW5nIGdyZWF0ZXIgdGhhbiAxZTEwOyB0byBhdm9pZFxuICAgY29uZnVzaW9uIGFib3V0IHRoZSB3b3JkICdncmVhdGVyJywgd2UgY2hvb3NlIHBwX2luZmluaXR5IGdyZWF0ZXJcbiAgIHRoYW4gMWUxMCArIDE7IGZvciBjb3JyZWN0IGhhbmRsaW5nIG9mIHRlc3RzIGluIHRoZSBhbGdvcml0aG0sXG4gICBwcF9pbmZpbml0eSBtdXN0IGJlIGV2ZW4gb25lIG1vcmUgdGhhbiAxZTEwICsgMTsgbGV0J3Mgc3RhbmQgb24gdGhlXG4gICBzYWZlIHNpZGUgYnkgY2hvb3NpbmcgMS5lMTArMTAuXG5cbiAgIFBwX2luZmluaXR5IGNvdWxkIHByb2JhYmx5IGJlIDEwNzM3NDE4MjMgdGhhdCBpcyAyXjMwIC0gMSwgdGhhdCBpc1xuICAgdGhlIG1pbmltYWwgdXBwZXIgYm91bmQgZm9yIGludGVnZXJzOyBub3cgdGhhdCBtYXhfaW50IGlzIGRlZmluZWQsXG4gICB0aGlzIGxpbWl0IGNvdWxkIGFsc28gYmUgZGVmaW5lZCBhcyBtYXhfaW50IC0gMS5cblxuICAgSG93ZXZlciwgYmVmb3JlIHNldHRpbmcgcHBfaW5maW5pdHkgdG8gc29tZXRoaW5nIGFyb3VuZCBtYXhfaW50LCB3ZVxuICAgbXVzdCBjYXJlZnVsbHkgZG91YmxlLWNoZWNrIGFsbCB0aGUgaW50ZWdlciBhcml0aG1ldGljIG9wZXJhdGlvbnNcbiAgIHRoYXQgaW52b2x2ZSBwcF9pbmZpbml0eSwgc2luY2UgYW55IG92ZXJmbG93IHdvdWxkIHdyZWNrIGhhdm9jIHRoZVxuICAgcHJldHR5LXByaW50aW5nIGFsZ29yaXRobSdzIGludmFyaWFudHMuIEdpdmVuIHRoYXQgdGhpcyBhcml0aG1ldGljXG4gICBjb3JyZWN0bmVzcyBjaGVjayBpcyBkaWZmaWN1bHQgYW5kIGVycm9yIHByb25lIGFuZCBnaXZlbiB0aGF0IDFlMTBcbiAgICsgMSBpcyBpbiBwcmFjdGljZSBsYXJnZSBlbm91Z2gsIHRoZXJlIGlzIG5vIG5lZWQgdG8gYXR0ZW1wdCB0byBzZXRcbiAgIHBwX2luZmluaXR5IHRvIHRoZSB0aGVvcmV0aWNhbGx5IG1heGltdW0gbGltaXQuIEl0IGlzIG5vdCB3b3J0aCB0aGVcbiAgIGJ1cmRlbiAhICopXG5sZXQgcHBfaW5maW5pdHkgPSAxMDAwMDAwMDEwXG5cbigqIE91dHB1dCBmdW5jdGlvbnMgZm9yIHRoZSBmb3JtYXR0ZXIuICopXG5sZXQgcHBfb3V0cHV0X3N0cmluZyBzdGF0ZSBzID0gc3RhdGUucHBfb3V0X3N0cmluZyBzIDAgKFN0cmluZy5sZW5ndGggcylcbmFuZCBwcF9vdXRwdXRfbmV3bGluZSBzdGF0ZSA9IHN0YXRlLnBwX291dF9uZXdsaW5lICgpXG5hbmQgcHBfb3V0cHV0X3NwYWNlcyBzdGF0ZSBuID0gc3RhdGUucHBfb3V0X3NwYWNlcyBuXG5hbmQgcHBfb3V0cHV0X2luZGVudCBzdGF0ZSBuID0gc3RhdGUucHBfb3V0X2luZGVudCBuXG5cbigqIEZvcm1hdCBhIHRleHR1YWwgdG9rZW4gKilcbmxldCBmb3JtYXRfcHBfdGV4dCBzdGF0ZSBzaXplIHRleHQgPVxuICBzdGF0ZS5wcF9zcGFjZV9sZWZ0IDwtIHN0YXRlLnBwX3NwYWNlX2xlZnQgLSBzaXplO1xuICBwcF9vdXRwdXRfc3RyaW5nIHN0YXRlIHRleHQ7XG4gIHN0YXRlLnBwX2lzX25ld19saW5lIDwtIGZhbHNlXG5cbigqIEZvcm1hdCBhIHN0cmluZyBieSBpdHMgbGVuZ3RoLCBpZiBub3QgZW1wdHkgKilcbmxldCBmb3JtYXRfc3RyaW5nIHN0YXRlIHMgPVxuICBpZiBzIDw+IFwiXCIgdGhlbiBmb3JtYXRfcHBfdGV4dCBzdGF0ZSAoU3RyaW5nLmxlbmd0aCBzKSBzXG5cbigqIFRvIGZvcm1hdCBhIGJyZWFrLCBpbmRlbnRpbmcgYSBuZXcgbGluZS4gKilcbmxldCBicmVha19uZXdfbGluZSBzdGF0ZSAoYmVmb3JlLCBvZmZzZXQsIGFmdGVyKSB3aWR0aCA9XG4gIGZvcm1hdF9zdHJpbmcgc3RhdGUgYmVmb3JlO1xuICBwcF9vdXRwdXRfbmV3bGluZSBzdGF0ZTtcbiAgc3RhdGUucHBfaXNfbmV3X2xpbmUgPC0gdHJ1ZTtcbiAgbGV0IGluZGVudCA9IHN0YXRlLnBwX21hcmdpbiAtIHdpZHRoICsgb2Zmc2V0IGluXG4gICgqIERvbid0IGluZGVudCBtb3JlIHRoYW4gcHBfbWF4X2luZGVudC4gKilcbiAgbGV0IHJlYWxfaW5kZW50ID0gSW50Lm1pbiBzdGF0ZS5wcF9tYXhfaW5kZW50IGluZGVudCBpblxuICBzdGF0ZS5wcF9jdXJyZW50X2luZGVudCA8LSByZWFsX2luZGVudDtcbiAgc3RhdGUucHBfc3BhY2VfbGVmdCA8LSBzdGF0ZS5wcF9tYXJnaW4gLSBzdGF0ZS5wcF9jdXJyZW50X2luZGVudDtcbiAgcHBfb3V0cHV0X2luZGVudCBzdGF0ZSBzdGF0ZS5wcF9jdXJyZW50X2luZGVudDtcbiAgZm9ybWF0X3N0cmluZyBzdGF0ZSBhZnRlclxuXG5cbigqIFRvIGZvcmNlIGEgbGluZSBicmVhayBpbnNpZGUgYSBib3g6IG5vIG9mZnNldCBpcyBhZGRlZC4gKilcbmxldCBicmVha19saW5lIHN0YXRlIHdpZHRoID0gYnJlYWtfbmV3X2xpbmUgc3RhdGUgKFwiXCIsIDAsIFwiXCIpIHdpZHRoXG5cbigqIFRvIGZvcm1hdCBhIGJyZWFrIHRoYXQgZml0cyBvbiB0aGUgY3VycmVudCBsaW5lLiAqKVxubGV0IGJyZWFrX3NhbWVfbGluZSBzdGF0ZSAoYmVmb3JlLCB3aWR0aCwgYWZ0ZXIpID1cbiAgZm9ybWF0X3N0cmluZyBzdGF0ZSBiZWZvcmU7XG4gIHN0YXRlLnBwX3NwYWNlX2xlZnQgPC0gc3RhdGUucHBfc3BhY2VfbGVmdCAtIHdpZHRoO1xuICBwcF9vdXRwdXRfc3BhY2VzIHN0YXRlIHdpZHRoO1xuICBmb3JtYXRfc3RyaW5nIHN0YXRlIGFmdGVyXG5cblxuKCogVG8gaW5kZW50IG5vIG1vcmUgdGhhbiBwcF9tYXhfaW5kZW50LCBpZiBvbmUgdHJpZXMgdG8gb3BlbiBhIGJveFxuICAgYmV5b25kIHBwX21heF9pbmRlbnQsIHRoZW4gdGhlIGJveCBpcyByZWplY3RlZCBvbiB0aGUgbGVmdFxuICAgYnkgc2ltdWxhdGluZyBhIGJyZWFrLiAqKVxubGV0IHBwX2ZvcmNlX2JyZWFrX2xpbmUgc3RhdGUgPVxuICBtYXRjaCBTdGFjay50b3Bfb3B0IHN0YXRlLnBwX2Zvcm1hdF9zdGFjayB3aXRoXG4gIHwgTm9uZSAtPiBwcF9vdXRwdXRfbmV3bGluZSBzdGF0ZVxuICB8IFNvbWUgeyBib3hfdHlwZTsgd2lkdGggfSAtPlxuICAgIGlmIHdpZHRoID4gc3RhdGUucHBfc3BhY2VfbGVmdCB0aGVuXG4gICAgICBtYXRjaCBib3hfdHlwZSB3aXRoXG4gICAgICB8IFBwX2ZpdHMgfCBQcF9oYm94IC0+ICgpXG4gICAgICB8IFBwX3Zib3ggfCBQcF9odmJveCB8IFBwX2hvdmJveCB8IFBwX2JveCAtPiBicmVha19saW5lIHN0YXRlIHdpZHRoXG5cblxuKCogVG8gc2tpcCBhIHRva2VuLCBpZiB0aGUgcHJldmlvdXMgbGluZSBoYXMgYmVlbiBicm9rZW4uICopXG5sZXQgcHBfc2tpcF90b2tlbiBzdGF0ZSA9XG4gIG1hdGNoIFF1ZXVlLnRha2Vfb3B0IHN0YXRlLnBwX3F1ZXVlIHdpdGhcbiAgfCBOb25lIC0+ICgpICgqIHByaW50X2lmX25ld2xpbmUgbXVzdCBoYXZlIGJlZW4gdGhlIGxhc3QgcHJpbnRpbmcgY29tbWFuZCAqKVxuICB8IFNvbWUgeyBzaXplOyBsZW5ndGg7IF8gfSAtPlxuICAgIHN0YXRlLnBwX2xlZnRfdG90YWwgPC0gc3RhdGUucHBfbGVmdF90b3RhbCAtIGxlbmd0aDtcbiAgICBzdGF0ZS5wcF9zcGFjZV9sZWZ0IDwtIHN0YXRlLnBwX3NwYWNlX2xlZnQgKyBTaXplLnRvX2ludCBzaXplXG5cblxuKCpcblxuICBUaGUgbWFpbiBwcmV0dHkgcHJpbnRpbmcgZnVuY3Rpb25zLlxuXG4qKVxuXG4oKiBGb3JtYXR0aW5nIGEgdG9rZW4gd2l0aCBhIGdpdmVuIHNpemUuICopXG5sZXQgZm9ybWF0X3BwX3Rva2VuIHN0YXRlIHNpemUgPSBmdW5jdGlvblxuXG4gIHwgUHBfdGV4dCBzIC0+XG4gICAgZm9ybWF0X3BwX3RleHQgc3RhdGUgc2l6ZSBzXG5cbiAgfCBQcF9iZWdpbiAob2ZmLCB0eSkgLT5cbiAgICBsZXQgaW5zZXJ0aW9uX3BvaW50ID0gc3RhdGUucHBfbWFyZ2luIC0gc3RhdGUucHBfc3BhY2VfbGVmdCBpblxuICAgIGlmIGluc2VydGlvbl9wb2ludCA+IHN0YXRlLnBwX21heF9pbmRlbnQgdGhlblxuICAgICAgKCogY2FuIG5vdCBvcGVuIGEgYm94IHJpZ2h0IHRoZXJlLiAqKVxuICAgICAgYmVnaW4gcHBfZm9yY2VfYnJlYWtfbGluZSBzdGF0ZSBlbmQ7XG4gICAgbGV0IHdpZHRoID0gc3RhdGUucHBfc3BhY2VfbGVmdCAtIG9mZiBpblxuICAgIGxldCBib3hfdHlwZSA9XG4gICAgICBtYXRjaCB0eSB3aXRoXG4gICAgICB8IFBwX3Zib3ggLT4gUHBfdmJveFxuICAgICAgfCBQcF9oYm94IHwgUHBfaHZib3ggfCBQcF9ob3Zib3ggfCBQcF9ib3ggfCBQcF9maXRzIC0+XG4gICAgICAgIGlmIHNpemUgPiBzdGF0ZS5wcF9zcGFjZV9sZWZ0IHRoZW4gdHkgZWxzZSBQcF9maXRzIGluXG4gICAgU3RhY2sucHVzaCB7IGJveF90eXBlOyB3aWR0aCB9IHN0YXRlLnBwX2Zvcm1hdF9zdGFja1xuXG4gIHwgUHBfZW5kIC0+XG4gICAgU3RhY2sucG9wX29wdCBzdGF0ZS5wcF9mb3JtYXRfc3RhY2sgfD4gaWdub3JlXG5cbiAgfCBQcF90YmVnaW4gKFBwX3Rib3ggXyBhcyB0Ym94KSAtPlxuICAgIFN0YWNrLnB1c2ggdGJveCBzdGF0ZS5wcF90Ym94X3N0YWNrXG5cbiAgfCBQcF90ZW5kIC0+XG4gICAgU3RhY2sucG9wX29wdCBzdGF0ZS5wcF90Ym94X3N0YWNrIHw+IGlnbm9yZVxuXG4gIHwgUHBfc3RhYiAtPlxuICAgIGJlZ2luIG1hdGNoIFN0YWNrLnRvcF9vcHQgc3RhdGUucHBfdGJveF9zdGFjayB3aXRoXG4gICAgfCBOb25lIC0+ICgpICgqIE5vIG9wZW4gdGFidWxhdGlvbiBib3guICopXG4gICAgfCBTb21lIChQcF90Ym94IHRhYnMpIC0+XG4gICAgICBsZXQgcmVjIGFkZF90YWIgbiA9IGZ1bmN0aW9uXG4gICAgICAgIHwgW10gLT4gW25dXG4gICAgICAgIHwgeCA6OiBsIGFzIGxzIC0+IGlmIG4gPCB4IHRoZW4gbiA6OiBscyBlbHNlIHggOjogYWRkX3RhYiBuIGwgaW5cbiAgICAgIHRhYnMgOj0gYWRkX3RhYiAoc3RhdGUucHBfbWFyZ2luIC0gc3RhdGUucHBfc3BhY2VfbGVmdCkgIXRhYnNcbiAgICBlbmRcblxuICB8IFBwX3RicmVhayAobiwgb2ZmKSAtPlxuICAgIGxldCBpbnNlcnRpb25fcG9pbnQgPSBzdGF0ZS5wcF9tYXJnaW4gLSBzdGF0ZS5wcF9zcGFjZV9sZWZ0IGluXG4gICAgYmVnaW4gbWF0Y2ggU3RhY2sudG9wX29wdCBzdGF0ZS5wcF90Ym94X3N0YWNrIHdpdGhcbiAgICB8IE5vbmUgLT4gKCkgKCogTm8gb3BlbiB0YWJ1bGF0aW9uIGJveC4gKilcbiAgICB8IFNvbWUgKFBwX3Rib3ggdGFicykgLT5cbiAgICAgIGxldCB0YWIgPVxuICAgICAgICBtYXRjaCAhdGFicyB3aXRoXG4gICAgICAgIHwgW10gLT4gaW5zZXJ0aW9uX3BvaW50XG4gICAgICAgIHwgZmlyc3QgOjogXyAtPlxuICAgICAgICAgIGxldCByZWMgZmluZCA9IGZ1bmN0aW9uXG4gICAgICAgICAgICB8IGhlYWQgOjogdGFpbCAtPlxuICAgICAgICAgICAgICBpZiBoZWFkID49IGluc2VydGlvbl9wb2ludCB0aGVuIGhlYWQgZWxzZSBmaW5kIHRhaWxcbiAgICAgICAgICAgIHwgW10gLT4gZmlyc3QgaW5cbiAgICAgICAgICBmaW5kICF0YWJzIGluXG4gICAgICBsZXQgb2Zmc2V0ID0gdGFiIC0gaW5zZXJ0aW9uX3BvaW50IGluXG4gICAgICBpZiBvZmZzZXQgPj0gMFxuICAgICAgdGhlbiBicmVha19zYW1lX2xpbmUgc3RhdGUgKFwiXCIsIG9mZnNldCArIG4sIFwiXCIpXG4gICAgICBlbHNlIGJyZWFrX25ld19saW5lIHN0YXRlIChcIlwiLCB0YWIgKyBvZmYsIFwiXCIpIHN0YXRlLnBwX21hcmdpblxuICAgIGVuZFxuXG4gIHwgUHBfbmV3bGluZSAtPlxuICAgIGJlZ2luIG1hdGNoIFN0YWNrLnRvcF9vcHQgc3RhdGUucHBfZm9ybWF0X3N0YWNrIHdpdGhcbiAgICB8IE5vbmUgLT4gcHBfb3V0cHV0X25ld2xpbmUgc3RhdGUgKCogTm8gb3BlbiBib3guICopXG4gICAgfCBTb21lIHsgd2lkdGg7IF99IC0+IGJyZWFrX2xpbmUgc3RhdGUgd2lkdGhcbiAgICBlbmRcblxuICB8IFBwX2lmX25ld2xpbmUgLT5cbiAgICBpZiBzdGF0ZS5wcF9jdXJyZW50X2luZGVudCAhPSBzdGF0ZS5wcF9tYXJnaW4gLSBzdGF0ZS5wcF9zcGFjZV9sZWZ0XG4gICAgdGhlbiBwcF9za2lwX3Rva2VuIHN0YXRlXG5cbiAgfCBQcF9icmVhayB7IGZpdHM7IGJyZWFrcyB9IC0+XG4gICAgbGV0IGJlZm9yZSwgb2ZmLCBfID0gYnJlYWtzIGluXG4gICAgYmVnaW4gbWF0Y2ggU3RhY2sudG9wX29wdCBzdGF0ZS5wcF9mb3JtYXRfc3RhY2sgd2l0aFxuICAgIHwgTm9uZSAtPiAoKSAoKiBObyBvcGVuIGJveC4gKilcbiAgICB8IFNvbWUgeyBib3hfdHlwZTsgd2lkdGggfSAtPlxuICAgICAgYmVnaW4gbWF0Y2ggYm94X3R5cGUgd2l0aFxuICAgICAgfCBQcF9ob3Zib3ggLT5cbiAgICAgICAgaWYgc2l6ZSArIFN0cmluZy5sZW5ndGggYmVmb3JlID4gc3RhdGUucHBfc3BhY2VfbGVmdFxuICAgICAgICB0aGVuIGJyZWFrX25ld19saW5lIHN0YXRlIGJyZWFrcyB3aWR0aFxuICAgICAgICBlbHNlIGJyZWFrX3NhbWVfbGluZSBzdGF0ZSBmaXRzXG4gICAgICB8IFBwX2JveCAtPlxuICAgICAgICAoKiBIYXZlIHRoZSBsaW5lIGp1c3QgYmVlbiBicm9rZW4gaGVyZSA/ICopXG4gICAgICAgIGlmIHN0YXRlLnBwX2lzX25ld19saW5lIHRoZW4gYnJlYWtfc2FtZV9saW5lIHN0YXRlIGZpdHMgZWxzZVxuICAgICAgICBpZiBzaXplICsgU3RyaW5nLmxlbmd0aCBiZWZvcmUgPiBzdGF0ZS5wcF9zcGFjZV9sZWZ0XG4gICAgICAgICAgdGhlbiBicmVha19uZXdfbGluZSBzdGF0ZSBicmVha3Mgd2lkdGggZWxzZVxuICAgICAgICAoKiBicmVhayB0aGUgbGluZSBoZXJlIGxlYWRzIHRvIG5ldyBpbmRlbnRhdGlvbiA/ICopXG4gICAgICAgIGlmIHN0YXRlLnBwX2N1cnJlbnRfaW5kZW50ID4gc3RhdGUucHBfbWFyZ2luIC0gd2lkdGggKyBvZmZcbiAgICAgICAgdGhlbiBicmVha19uZXdfbGluZSBzdGF0ZSBicmVha3Mgd2lkdGhcbiAgICAgICAgZWxzZSBicmVha19zYW1lX2xpbmUgc3RhdGUgZml0c1xuICAgICAgfCBQcF9odmJveCAtPiBicmVha19uZXdfbGluZSBzdGF0ZSBicmVha3Mgd2lkdGhcbiAgICAgIHwgUHBfZml0cyAtPiBicmVha19zYW1lX2xpbmUgc3RhdGUgZml0c1xuICAgICAgfCBQcF92Ym94IC0+IGJyZWFrX25ld19saW5lIHN0YXRlIGJyZWFrcyB3aWR0aFxuICAgICAgfCBQcF9oYm94IC0+IGJyZWFrX3NhbWVfbGluZSBzdGF0ZSBmaXRzXG4gICAgICBlbmRcbiAgICBlbmRcblxuICAgfCBQcF9vcGVuX3RhZyB0YWdfbmFtZSAtPlxuICAgICBsZXQgbWFya2VyID0gc3RhdGUucHBfbWFya19vcGVuX3RhZyB0YWdfbmFtZSBpblxuICAgICBwcF9vdXRwdXRfc3RyaW5nIHN0YXRlIG1hcmtlcjtcbiAgICAgU3RhY2sucHVzaCB0YWdfbmFtZSBzdGF0ZS5wcF9tYXJrX3N0YWNrXG5cbiAgIHwgUHBfY2xvc2VfdGFnIC0+XG4gICAgIGJlZ2luIG1hdGNoIFN0YWNrLnBvcF9vcHQgc3RhdGUucHBfbWFya19zdGFjayB3aXRoXG4gICAgIHwgTm9uZSAtPiAoKSAoKiBObyBtb3JlIHRhZyB0byBjbG9zZS4gKilcbiAgICAgfCBTb21lIHRhZ19uYW1lIC0+XG4gICAgICAgbGV0IG1hcmtlciA9IHN0YXRlLnBwX21hcmtfY2xvc2VfdGFnIHRhZ19uYW1lIGluXG4gICAgICAgcHBfb3V0cHV0X3N0cmluZyBzdGF0ZSBtYXJrZXJcbiAgICAgZW5kXG5cblxuKCogUHJpbnQgaWYgdG9rZW4gc2l6ZSBpcyBrbm93biBlbHNlIHByaW50aW5nIGlzIGRlbGF5ZWQuXG4gICBQcmludGluZyBpcyBkZWxheWVkIHdoZW4gdGhlIHRleHQgd2FpdGluZyBpbiB0aGUgcXVldWUgcmVxdWlyZXNcbiAgIG1vcmUgcm9vbSB0byBmb3JtYXQgdGhhbiBleGlzdHMgb24gdGhlIGN1cnJlbnQgbGluZS4gKilcbmxldCByZWMgYWR2YW5jZV9sZWZ0IHN0YXRlID1cbiAgbWF0Y2ggUXVldWUucGVla19vcHQgc3RhdGUucHBfcXVldWUgd2l0aFxuICB8IE5vbmUgLT4gKCkgKCogTm8gdG9rZW5zIHRvIHByaW50ICopXG4gIHwgU29tZSB7IHNpemU7IHRva2VuOyBsZW5ndGggfSAtPlxuICAgIGxldCBwZW5kaW5nX2NvdW50ID0gc3RhdGUucHBfcmlnaHRfdG90YWwgLSBzdGF0ZS5wcF9sZWZ0X3RvdGFsIGluXG4gICAgaWYgU2l6ZS5pc19rbm93biBzaXplIHx8IHBlbmRpbmdfY291bnQgPj0gc3RhdGUucHBfc3BhY2VfbGVmdCB0aGVuIGJlZ2luXG4gICAgICBRdWV1ZS50YWtlIHN0YXRlLnBwX3F1ZXVlIHw+IGlnbm9yZTsgKCogTm90IGVtcHR5OiB3ZSBwZWVrIGludG8gaXQgKilcbiAgICAgIGxldCBzaXplID0gaWYgU2l6ZS5pc19rbm93biBzaXplIHRoZW4gU2l6ZS50b19pbnQgc2l6ZSBlbHNlIHBwX2luZmluaXR5IGluXG4gICAgICBmb3JtYXRfcHBfdG9rZW4gc3RhdGUgc2l6ZSB0b2tlbjtcbiAgICAgIHN0YXRlLnBwX2xlZnRfdG90YWwgPC0gbGVuZ3RoICsgc3RhdGUucHBfbGVmdF90b3RhbDtcbiAgICAgIChhZHZhbmNlX2xlZnQgW0B0YWlsY2FsbF0pIHN0YXRlXG4gICAgZW5kXG5cblxuKCogVG8gZW5xdWV1ZSBhIHRva2VuIDogdHJ5IHRvIGFkdmFuY2UuICopXG5sZXQgZW5xdWV1ZV9hZHZhbmNlIHN0YXRlIHRvayA9IHBwX2VucXVldWUgc3RhdGUgdG9rOyBhZHZhbmNlX2xlZnQgc3RhdGVcblxuXG4oKiBUbyBlbnF1ZXVlIHN0cmluZ3MuICopXG5sZXQgZW5xdWV1ZV9zdHJpbmdfYXMgc3RhdGUgc2l6ZSBzID1cbiAgZW5xdWV1ZV9hZHZhbmNlIHN0YXRlIHsgc2l6ZTsgdG9rZW4gPSBQcF90ZXh0IHM7IGxlbmd0aCA9IFNpemUudG9faW50IHNpemUgfVxuXG5cbmxldCBlbnF1ZXVlX3N0cmluZyBzdGF0ZSBzID1cbiAgZW5xdWV1ZV9zdHJpbmdfYXMgc3RhdGUgKFNpemUub2ZfaW50IChTdHJpbmcubGVuZ3RoIHMpKSBzXG5cblxuKCogUm91dGluZXMgZm9yIHNjYW4gc3RhY2tcbiAgIGRldGVybWluZSBzaXplIG9mIGJveGVzLiAqKVxuXG4oKiBUaGUgc2Nhbl9zdGFjayBpcyBuZXZlciBlbXB0eS4gKilcbmxldCBpbml0aWFsaXplX3NjYW5fc3RhY2sgc3RhY2sgPVxuICBTdGFjay5jbGVhciBzdGFjaztcbiAgbGV0IHF1ZXVlX2VsZW0gPSB7IHNpemUgPSBTaXplLnVua25vd247IHRva2VuID0gUHBfdGV4dCBcIlwiOyBsZW5ndGggPSAwIH0gaW5cbiAgU3RhY2sucHVzaCB7IGxlZnRfdG90YWwgPSAtMTsgcXVldWVfZWxlbSB9IHN0YWNrXG5cbigqIFNldHRpbmcgdGhlIHNpemUgb2YgYm94ZXMgb24gc2NhbiBzdGFjazpcbiAgIGlmIHR5ID0gdHJ1ZSB0aGVuIHNpemUgb2YgYnJlYWsgaXMgc2V0IGVsc2Ugc2l6ZSBvZiBib3ggaXMgc2V0O1xuICAgaW4gZWFjaCBjYXNlIHBwX3NjYW5fc3RhY2sgaXMgcG9wcGVkLlxuXG4gICBOb3RlOlxuICAgUGF0dGVybiBtYXRjaGluZyBvbiBzY2FuIHN0YWNrIGlzIGV4aGF1c3RpdmUsIHNpbmNlIHNjYW5fc3RhY2sgaXMgbmV2ZXJcbiAgIGVtcHR5LlxuICAgUGF0dGVybiBtYXRjaGluZyBvbiB0b2tlbiBpbiBzY2FuIHN0YWNrIGlzIGFsc28gZXhoYXVzdGl2ZSxcbiAgIHNpbmNlIHNjYW5fcHVzaCBpcyB1c2VkIG9uIGJyZWFrcyBhbmQgb3BlbmluZyBvZiBib3hlcy4gKilcbmxldCBzZXRfc2l6ZSBzdGF0ZSB0eSA9XG4gIG1hdGNoIFN0YWNrLnRvcF9vcHQgc3RhdGUucHBfc2Nhbl9zdGFjayB3aXRoXG4gIHwgTm9uZSAtPiAoKSAoKiBzY2FuX3N0YWNrIGlzIG5ldmVyIGVtcHR5LiAqKVxuICB8IFNvbWUgeyBsZWZ0X3RvdGFsOyBxdWV1ZV9lbGVtIH0gLT5cbiAgICBsZXQgc2l6ZSA9IFNpemUudG9faW50IHF1ZXVlX2VsZW0uc2l6ZSBpblxuICAgICgqIHRlc3QgaWYgc2NhbiBzdGFjayBjb250YWlucyBhbnkgZGF0YSB0aGF0IGlzIG5vdCBvYnNvbGV0ZS4gKilcbiAgICBpZiBsZWZ0X3RvdGFsIDwgc3RhdGUucHBfbGVmdF90b3RhbCB0aGVuXG4gICAgICBpbml0aWFsaXplX3NjYW5fc3RhY2sgc3RhdGUucHBfc2Nhbl9zdGFja1xuICAgIGVsc2VcbiAgICAgIG1hdGNoIHF1ZXVlX2VsZW0udG9rZW4gd2l0aFxuICAgICAgfCBQcF9icmVhayBfIHwgUHBfdGJyZWFrIChfLCBfKSAtPlxuICAgICAgICBpZiB0eSB0aGVuIGJlZ2luXG4gICAgICAgICAgcXVldWVfZWxlbS5zaXplIDwtIFNpemUub2ZfaW50IChzdGF0ZS5wcF9yaWdodF90b3RhbCArIHNpemUpO1xuICAgICAgICAgIFN0YWNrLnBvcF9vcHQgc3RhdGUucHBfc2Nhbl9zdGFjayB8PiBpZ25vcmVcbiAgICAgICAgZW5kXG4gICAgICB8IFBwX2JlZ2luIChfLCBfKSAtPlxuICAgICAgICBpZiBub3QgdHkgdGhlbiBiZWdpblxuICAgICAgICAgIHF1ZXVlX2VsZW0uc2l6ZSA8LSBTaXplLm9mX2ludCAoc3RhdGUucHBfcmlnaHRfdG90YWwgKyBzaXplKTtcbiAgICAgICAgICBTdGFjay5wb3Bfb3B0IHN0YXRlLnBwX3NjYW5fc3RhY2sgfD4gaWdub3JlXG4gICAgICAgIGVuZFxuICAgICAgfCBQcF90ZXh0IF8gfCBQcF9zdGFiIHwgUHBfdGJlZ2luIF8gfCBQcF90ZW5kIHwgUHBfZW5kXG4gICAgICB8IFBwX25ld2xpbmUgfCBQcF9pZl9uZXdsaW5lIHwgUHBfb3Blbl90YWcgXyB8IFBwX2Nsb3NlX3RhZyAtPlxuICAgICAgICAoKSAoKiBzY2FuX3B1c2ggaXMgb25seSB1c2VkIGZvciBicmVha3MgYW5kIGJveGVzLiAqKVxuXG5cbigqIFB1c2ggYSB0b2tlbiBvbiBwcmV0dHktcHJpbnRlciBzY2FubmluZyBzdGFjay5cbiAgIElmIGIgaXMgdHJ1ZSBzZXRfc2l6ZSBpcyBjYWxsZWQuICopXG5sZXQgc2Nhbl9wdXNoIHN0YXRlIGIgdG9rZW4gPVxuICBwcF9lbnF1ZXVlIHN0YXRlIHRva2VuO1xuICBpZiBiIHRoZW4gc2V0X3NpemUgc3RhdGUgdHJ1ZTtcbiAgbGV0IGVsZW0gPSB7IGxlZnRfdG90YWwgPSBzdGF0ZS5wcF9yaWdodF90b3RhbDsgcXVldWVfZWxlbSA9IHRva2VuIH0gaW5cbiAgU3RhY2sucHVzaCBlbGVtIHN0YXRlLnBwX3NjYW5fc3RhY2tcblxuXG4oKiBUbyBvcGVuIGEgbmV3IGJveCA6XG4gICB0aGUgdXNlciBtYXkgc2V0IHRoZSBkZXB0aCBib3VuZCBwcF9tYXhfYm94ZXNcbiAgIGFueSB0ZXh0IG5lc3RlZCBkZWVwZXIgaXMgcHJpbnRlZCBhcyB0aGUgZWxsaXBzaXMgc3RyaW5nLiAqKVxubGV0IHBwX29wZW5fYm94X2dlbiBzdGF0ZSBpbmRlbnQgYnJfdHkgPVxuICBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwtIHN0YXRlLnBwX2N1cnJfZGVwdGggKyAxO1xuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwgc3RhdGUucHBfbWF4X2JveGVzIHRoZW5cbiAgICBsZXQgc2l6ZSA9IFNpemUub2ZfaW50ICgtIHN0YXRlLnBwX3JpZ2h0X3RvdGFsKSBpblxuICAgIGxldCBlbGVtID0geyBzaXplOyB0b2tlbiA9IFBwX2JlZ2luIChpbmRlbnQsIGJyX3R5KTsgbGVuZ3RoID0gMCB9IGluXG4gICAgc2Nhbl9wdXNoIHN0YXRlIGZhbHNlIGVsZW0gZWxzZVxuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoID0gc3RhdGUucHBfbWF4X2JveGVzXG4gIHRoZW4gZW5xdWV1ZV9zdHJpbmcgc3RhdGUgc3RhdGUucHBfZWxsaXBzaXNcblxuXG4oKiBUaGUgYm94IHdoaWNoIGlzIGFsd2F5cyBvcGVuLiAqKVxubGV0IHBwX29wZW5fc3lzX2JveCBzdGF0ZSA9IHBwX29wZW5fYm94X2dlbiBzdGF0ZSAwIFBwX2hvdmJveFxuXG4oKiBDbG9zZSBhIGJveCwgc2V0dGluZyBzaXplcyBvZiBpdHMgc3ViIGJveGVzLiAqKVxubGV0IHBwX2Nsb3NlX2JveCBzdGF0ZSAoKSA9XG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPiAxIHRoZW5cbiAgYmVnaW5cbiAgICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwgc3RhdGUucHBfbWF4X2JveGVzIHRoZW5cbiAgICBiZWdpblxuICAgICAgcHBfZW5xdWV1ZSBzdGF0ZSB7IHNpemUgPSBTaXplLnplcm87IHRva2VuID0gUHBfZW5kOyBsZW5ndGggPSAwIH07XG4gICAgICBzZXRfc2l6ZSBzdGF0ZSB0cnVlOyBzZXRfc2l6ZSBzdGF0ZSBmYWxzZVxuICAgIGVuZDtcbiAgICBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwtIHN0YXRlLnBwX2N1cnJfZGVwdGggLSAxO1xuICBlbmRcblxuXG4oKiBPcGVuIGEgdGFnLCBwdXNoaW5nIGl0IG9uIHRoZSB0YWcgc3RhY2suICopXG5sZXQgcHBfb3Blbl9zdGFnIHN0YXRlIHRhZ19uYW1lID1cbiAgaWYgc3RhdGUucHBfcHJpbnRfdGFncyB0aGVuXG4gIGJlZ2luXG4gICAgU3RhY2sucHVzaCB0YWdfbmFtZSBzdGF0ZS5wcF90YWdfc3RhY2s7XG4gICAgc3RhdGUucHBfcHJpbnRfb3Blbl90YWcgdGFnX25hbWVcbiAgZW5kO1xuICBpZiBzdGF0ZS5wcF9tYXJrX3RhZ3MgdGhlblxuICAgIGxldCB0b2tlbiA9IFBwX29wZW5fdGFnIHRhZ19uYW1lIGluXG4gICAgcHBfZW5xdWV1ZSBzdGF0ZSB7IHNpemUgPSBTaXplLnplcm87IHRva2VuOyBsZW5ndGggPSAwIH1cblxuXG4oKiBDbG9zZSBhIHRhZywgcG9wcGluZyBpdCBmcm9tIHRoZSB0YWcgc3RhY2suICopXG5sZXQgcHBfY2xvc2Vfc3RhZyBzdGF0ZSAoKSA9XG4gIGlmIHN0YXRlLnBwX21hcmtfdGFncyB0aGVuXG4gICAgcHBfZW5xdWV1ZSBzdGF0ZSB7IHNpemUgPSBTaXplLnplcm87IHRva2VuID0gUHBfY2xvc2VfdGFnOyBsZW5ndGggPSAwIH07XG4gIGlmIHN0YXRlLnBwX3ByaW50X3RhZ3MgdGhlblxuICAgIG1hdGNoIFN0YWNrLnBvcF9vcHQgc3RhdGUucHBfdGFnX3N0YWNrIHdpdGhcbiAgICB8IE5vbmUgLT4gKCkgKCogTm8gbW9yZSB0YWcgdG8gY2xvc2UuICopXG4gICAgfCBTb21lIHRhZ19uYW1lIC0+XG4gICAgICBzdGF0ZS5wcF9wcmludF9jbG9zZV90YWcgdGFnX25hbWVcblxubGV0IHBwX29wZW5fdGFnIHN0YXRlIHMgPSBwcF9vcGVuX3N0YWcgc3RhdGUgKFN0cmluZ190YWcgcylcbmxldCBwcF9jbG9zZV90YWcgc3RhdGUgKCkgPSBwcF9jbG9zZV9zdGFnIHN0YXRlICgpXG5cbmxldCBwcF9zZXRfcHJpbnRfdGFncyBzdGF0ZSBiID0gc3RhdGUucHBfcHJpbnRfdGFncyA8LSBiXG5sZXQgcHBfc2V0X21hcmtfdGFncyBzdGF0ZSBiID0gc3RhdGUucHBfbWFya190YWdzIDwtIGJcbmxldCBwcF9nZXRfcHJpbnRfdGFncyBzdGF0ZSAoKSA9IHN0YXRlLnBwX3ByaW50X3RhZ3NcbmxldCBwcF9nZXRfbWFya190YWdzIHN0YXRlICgpID0gc3RhdGUucHBfbWFya190YWdzXG5sZXQgcHBfc2V0X3RhZ3Mgc3RhdGUgYiA9XG4gIHBwX3NldF9wcmludF90YWdzIHN0YXRlIGI7IHBwX3NldF9tYXJrX3RhZ3Mgc3RhdGUgYlxuXG5cbigqIEhhbmRsaW5nIHRhZyBoYW5kbGluZyBmdW5jdGlvbnM6IGdldC9zZXQgZnVuY3Rpb25zLiAqKVxubGV0IHBwX2dldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMgc3RhdGUgKCkgPSB7XG4gIG1hcmtfb3Blbl9zdGFnID0gc3RhdGUucHBfbWFya19vcGVuX3RhZztcbiAgbWFya19jbG9zZV9zdGFnID0gc3RhdGUucHBfbWFya19jbG9zZV90YWc7XG4gIHByaW50X29wZW5fc3RhZyA9IHN0YXRlLnBwX3ByaW50X29wZW5fdGFnO1xuICBwcmludF9jbG9zZV9zdGFnID0gc3RhdGUucHBfcHJpbnRfY2xvc2VfdGFnO1xufVxuXG5cbmxldCBwcF9zZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIHN0YXRlIHtcbiAgICAgbWFya19vcGVuX3N0YWcgPSBtb3Q7XG4gICAgIG1hcmtfY2xvc2Vfc3RhZyA9IG1jdDtcbiAgICAgcHJpbnRfb3Blbl9zdGFnID0gcG90O1xuICAgICBwcmludF9jbG9zZV9zdGFnID0gcGN0O1xuICB9ID1cbiAgc3RhdGUucHBfbWFya19vcGVuX3RhZyA8LSBtb3Q7XG4gIHN0YXRlLnBwX21hcmtfY2xvc2VfdGFnIDwtIG1jdDtcbiAgc3RhdGUucHBfcHJpbnRfb3Blbl90YWcgPC0gcG90O1xuICBzdGF0ZS5wcF9wcmludF9jbG9zZV90YWcgPC0gcGN0XG5cblxuKCogSW5pdGlhbGl6ZSBwcmV0dHktcHJpbnRlci4gKilcbmxldCBwcF9yaW5pdCBzdGF0ZSA9XG4gIHBwX2NsZWFyX3F1ZXVlIHN0YXRlO1xuICBpbml0aWFsaXplX3NjYW5fc3RhY2sgc3RhdGUucHBfc2Nhbl9zdGFjaztcbiAgU3RhY2suY2xlYXIgc3RhdGUucHBfZm9ybWF0X3N0YWNrO1xuICBTdGFjay5jbGVhciBzdGF0ZS5wcF90Ym94X3N0YWNrO1xuICBTdGFjay5jbGVhciBzdGF0ZS5wcF90YWdfc3RhY2s7XG4gIFN0YWNrLmNsZWFyIHN0YXRlLnBwX21hcmtfc3RhY2s7XG4gIHN0YXRlLnBwX2N1cnJlbnRfaW5kZW50IDwtIDA7XG4gIHN0YXRlLnBwX2N1cnJfZGVwdGggPC0gMDtcbiAgc3RhdGUucHBfc3BhY2VfbGVmdCA8LSBzdGF0ZS5wcF9tYXJnaW47XG4gIHBwX29wZW5fc3lzX2JveCBzdGF0ZVxuXG5sZXQgY2xlYXJfdGFnX3N0YWNrIHN0YXRlID1cbiAgU3RhY2suaXRlciAoZnVuIF8gLT4gcHBfY2xvc2VfdGFnIHN0YXRlICgpKSBzdGF0ZS5wcF90YWdfc3RhY2tcblxuXG4oKiBGbHVzaGluZyBwcmV0dHktcHJpbnRlciBxdWV1ZS4gKilcbmxldCBwcF9mbHVzaF9xdWV1ZSBzdGF0ZSBiID1cbiAgY2xlYXJfdGFnX3N0YWNrIHN0YXRlO1xuICB3aGlsZSBzdGF0ZS5wcF9jdXJyX2RlcHRoID4gMSBkb1xuICAgIHBwX2Nsb3NlX2JveCBzdGF0ZSAoKVxuICBkb25lO1xuICBzdGF0ZS5wcF9yaWdodF90b3RhbCA8LSBwcF9pbmZpbml0eTtcbiAgYWR2YW5jZV9sZWZ0IHN0YXRlO1xuICBpZiBiIHRoZW4gcHBfb3V0cHV0X25ld2xpbmUgc3RhdGU7XG4gIHBwX3Jpbml0IHN0YXRlXG5cbigqXG5cbiAgUHJvY2VkdXJlcyB0byBmb3JtYXQgdmFsdWVzIGFuZCB1c2UgYm94ZXMuXG5cbiopXG5cbigqIFRvIGZvcm1hdCBhIHN0cmluZy4gKilcbmxldCBwcF9wcmludF9hc19zaXplIHN0YXRlIHNpemUgcyA9XG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPCBzdGF0ZS5wcF9tYXhfYm94ZXNcbiAgdGhlbiBlbnF1ZXVlX3N0cmluZ19hcyBzdGF0ZSBzaXplIHNcblxuXG5sZXQgcHBfcHJpbnRfYXMgc3RhdGUgaXNpemUgcyA9XG4gIHBwX3ByaW50X2FzX3NpemUgc3RhdGUgKFNpemUub2ZfaW50IGlzaXplKSBzXG5cblxubGV0IHBwX3ByaW50X3N0cmluZyBzdGF0ZSBzID1cbiAgcHBfcHJpbnRfYXMgc3RhdGUgKFN0cmluZy5sZW5ndGggcykgc1xuXG5sZXQgcHBfcHJpbnRfYnl0ZXMgc3RhdGUgcyA9XG4gIHBwX3ByaW50X2FzIHN0YXRlIChCeXRlcy5sZW5ndGggcykgKEJ5dGVzLnRvX3N0cmluZyBzKVxuXG4oKiBUbyBmb3JtYXQgYW4gaW50ZWdlci4gKilcbmxldCBwcF9wcmludF9pbnQgc3RhdGUgaSA9IHBwX3ByaW50X3N0cmluZyBzdGF0ZSAoSW50LnRvX3N0cmluZyBpKVxuXG4oKiBUbyBmb3JtYXQgYSBmbG9hdC4gKilcbmxldCBwcF9wcmludF9mbG9hdCBzdGF0ZSBmID0gcHBfcHJpbnRfc3RyaW5nIHN0YXRlIChzdHJpbmdfb2ZfZmxvYXQgZilcblxuKCogVG8gZm9ybWF0IGEgYm9vbGVhbi4gKilcbmxldCBwcF9wcmludF9ib29sIHN0YXRlIGIgPSBwcF9wcmludF9zdHJpbmcgc3RhdGUgKHN0cmluZ19vZl9ib29sIGIpXG5cbigqIFRvIGZvcm1hdCBhIGNoYXIuICopXG5sZXQgcHBfcHJpbnRfY2hhciBzdGF0ZSBjID1cbiAgcHBfcHJpbnRfYXMgc3RhdGUgMSAoU3RyaW5nLm1ha2UgMSBjKVxuXG5cbigqIE9wZW5pbmcgYm94ZXMuICopXG5sZXQgcHBfb3Blbl9oYm94IHN0YXRlICgpID0gcHBfb3Blbl9ib3hfZ2VuIHN0YXRlIDAgUHBfaGJveFxuYW5kIHBwX29wZW5fdmJveCBzdGF0ZSBpbmRlbnQgPSBwcF9vcGVuX2JveF9nZW4gc3RhdGUgaW5kZW50IFBwX3Zib3hcblxuYW5kIHBwX29wZW5faHZib3ggc3RhdGUgaW5kZW50ID0gcHBfb3Blbl9ib3hfZ2VuIHN0YXRlIGluZGVudCBQcF9odmJveFxuYW5kIHBwX29wZW5faG92Ym94IHN0YXRlIGluZGVudCA9IHBwX29wZW5fYm94X2dlbiBzdGF0ZSBpbmRlbnQgUHBfaG92Ym94XG5hbmQgcHBfb3Blbl9ib3ggc3RhdGUgaW5kZW50ID0gcHBfb3Blbl9ib3hfZ2VuIHN0YXRlIGluZGVudCBQcF9ib3hcblxuXG4oKiBQcmludGluZyBxdWV1ZWQgdGV4dC5cblxuICAgW3BwX3ByaW50X2ZsdXNoXSBwcmludHMgYWxsIHBlbmRpbmcgaXRlbXMgaW4gdGhlIHByZXR0eS1wcmludGVyIHF1ZXVlIGFuZFxuICAgdGhlbiBmbHVzaGVzIHRoZSBsb3cgbGV2ZWwgb3V0cHV0IGRldmljZSBvZiB0aGUgZm9ybWF0dGVyIHRvIGFjdHVhbGx5XG4gICBkaXNwbGF5IHByaW50aW5nIG1hdGVyaWFsLlxuXG4gICBbcHBfcHJpbnRfbmV3bGluZV0gYmVoYXZlcyBhcyBbcHBfcHJpbnRfZmx1c2hdIGFmdGVyIHByaW50aW5nIGFuIGFkZGl0aW9uYWxcbiAgIG5ldyBsaW5lLiAqKVxubGV0IHBwX3ByaW50X25ld2xpbmUgc3RhdGUgKCkgPVxuICBwcF9mbHVzaF9xdWV1ZSBzdGF0ZSB0cnVlOyBzdGF0ZS5wcF9vdXRfZmx1c2ggKClcbmFuZCBwcF9wcmludF9mbHVzaCBzdGF0ZSAoKSA9XG4gIHBwX2ZsdXNoX3F1ZXVlIHN0YXRlIGZhbHNlOyBzdGF0ZS5wcF9vdXRfZmx1c2ggKClcblxuXG4oKiBUbyBnZXQgYSBuZXdsaW5lIHdoZW4gb25lIGRvZXMgbm90IHdhbnQgdG8gY2xvc2UgdGhlIGN1cnJlbnQgYm94LiAqKVxubGV0IHBwX2ZvcmNlX25ld2xpbmUgc3RhdGUgKCkgPVxuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwgc3RhdGUucHBfbWF4X2JveGVzIHRoZW5cbiAgICBlbnF1ZXVlX2FkdmFuY2Ugc3RhdGUgeyBzaXplID0gU2l6ZS56ZXJvOyB0b2tlbiA9IFBwX25ld2xpbmU7IGxlbmd0aCA9IDAgfVxuXG5cbigqIFRvIGZvcm1hdCBzb21ldGhpbmcsIG9ubHkgaW4gY2FzZSB0aGUgbGluZSBoYXMganVzdCBiZWVuIGJyb2tlbi4gKilcbmxldCBwcF9wcmludF9pZl9uZXdsaW5lIHN0YXRlICgpID1cbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlcyB0aGVuXG4gICAgZW5xdWV1ZV9hZHZhbmNlIHN0YXRlXG4gICAgICB7IHNpemUgPSBTaXplLnplcm87IHRva2VuID0gUHBfaWZfbmV3bGluZTsgbGVuZ3RoID0gMCB9XG5cblxuKCogR2VuZXJhbGl6ZWQgYnJlYWsgaGludCB0aGF0IGFsbG93cyBwcmludGluZyBzdHJpbmdzIGJlZm9yZS9hZnRlclxuICAgc2FtZS1saW5lIG9mZnNldCAod2lkdGgpIG9yIG5ldy1saW5lIG9mZnNldCAqKVxubGV0IHBwX3ByaW50X2N1c3RvbV9icmVhayBzdGF0ZSB+Zml0cyB+YnJlYWtzID1cbiAgbGV0IGJlZm9yZSwgd2lkdGgsIGFmdGVyID0gZml0cyBpblxuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwgc3RhdGUucHBfbWF4X2JveGVzIHRoZW5cbiAgICBsZXQgc2l6ZSA9IFNpemUub2ZfaW50ICgtIHN0YXRlLnBwX3JpZ2h0X3RvdGFsKSBpblxuICAgIGxldCB0b2tlbiA9IFBwX2JyZWFrIHsgZml0czsgYnJlYWtzIH0gaW5cbiAgICBsZXQgbGVuZ3RoID0gU3RyaW5nLmxlbmd0aCBiZWZvcmUgKyB3aWR0aCArIFN0cmluZy5sZW5ndGggYWZ0ZXIgaW5cbiAgICBsZXQgZWxlbSA9IHsgc2l6ZTsgdG9rZW47IGxlbmd0aCB9IGluXG4gICAgc2Nhbl9wdXNoIHN0YXRlIHRydWUgZWxlbVxuXG4oKiBQcmludGluZyBicmVhayBoaW50czpcbiAgIEEgYnJlYWsgaGludCBpbmRpY2F0ZXMgd2hlcmUgYSBib3ggbWF5IGJlIGJyb2tlbi5cbiAgIElmIGxpbmUgaXMgYnJva2VuIHRoZW4gb2Zmc2V0IGlzIGFkZGVkIHRvIHRoZSBpbmRlbnRhdGlvbiBvZiB0aGUgY3VycmVudFxuICAgYm94IGVsc2UgKHRoZSB2YWx1ZSBvZikgd2lkdGggYmxhbmtzIGFyZSBwcmludGVkLiAqKVxubGV0IHBwX3ByaW50X2JyZWFrIHN0YXRlIHdpZHRoIG9mZnNldCA9XG4gIHBwX3ByaW50X2N1c3RvbV9icmVhayBzdGF0ZVxuICAgIH5maXRzOihcIlwiLCB3aWR0aCwgXCJcIikgfmJyZWFrczooXCJcIiwgb2Zmc2V0LCBcIlwiKVxuXG5cbigqIFByaW50IGEgc3BhY2UgOlxuICAgYSBzcGFjZSBpcyBhIGJyZWFrIGhpbnQgdGhhdCBwcmludHMgYSBzaW5nbGUgc3BhY2UgaWYgdGhlIGJyZWFrIGRvZXMgbm90XG4gICBzcGxpdCB0aGUgbGluZTtcbiAgIGEgY3V0IGlzIGEgYnJlYWsgaGludCB0aGF0IHByaW50cyBub3RoaW5nIGlmIHRoZSBicmVhayBkb2VzIG5vdCBzcGxpdCB0aGVcbiAgIGxpbmUuICopXG5sZXQgcHBfcHJpbnRfc3BhY2Ugc3RhdGUgKCkgPSBwcF9wcmludF9icmVhayBzdGF0ZSAxIDBcbmFuZCBwcF9wcmludF9jdXQgc3RhdGUgKCkgPSBwcF9wcmludF9icmVhayBzdGF0ZSAwIDBcblxuXG4oKiBUYWJ1bGF0aW9uIGJveGVzLiAqKVxubGV0IHBwX29wZW5fdGJveCBzdGF0ZSAoKSA9XG4gIHN0YXRlLnBwX2N1cnJfZGVwdGggPC0gc3RhdGUucHBfY3Vycl9kZXB0aCArIDE7XG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPCBzdGF0ZS5wcF9tYXhfYm94ZXMgdGhlblxuICAgIGxldCBzaXplID0gU2l6ZS56ZXJvIGluXG4gICAgbGV0IGVsZW0gPSB7IHNpemU7IHRva2VuID0gUHBfdGJlZ2luIChQcF90Ym94IChyZWYgW10pKTsgbGVuZ3RoID0gMCB9IGluXG4gICAgZW5xdWV1ZV9hZHZhbmNlIHN0YXRlIGVsZW1cblxuXG4oKiBDbG9zZSBhIHRhYnVsYXRpb24gYm94LiAqKVxubGV0IHBwX2Nsb3NlX3Rib3ggc3RhdGUgKCkgPVxuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoID4gMSB0aGVuXG4gIGJlZ2luXG4gICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwgc3RhdGUucHBfbWF4X2JveGVzIHRoZW5cbiAgICAgbGV0IGVsZW0gPSB7IHNpemUgPSBTaXplLnplcm87IHRva2VuID0gUHBfdGVuZDsgbGVuZ3RoID0gMCB9IGluXG4gICAgIGVucXVldWVfYWR2YW5jZSBzdGF0ZSBlbGVtO1xuICAgICBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwtIHN0YXRlLnBwX2N1cnJfZGVwdGggLSAxXG4gIGVuZFxuXG5cbigqIFByaW50IGEgdGFidWxhdGlvbiBicmVhay4gKilcbmxldCBwcF9wcmludF90YnJlYWsgc3RhdGUgd2lkdGggb2Zmc2V0ID1cbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlcyB0aGVuXG4gICAgbGV0IHNpemUgPSBTaXplLm9mX2ludCAoLSBzdGF0ZS5wcF9yaWdodF90b3RhbCkgaW5cbiAgICBsZXQgZWxlbSA9IHsgc2l6ZTsgdG9rZW4gPSBQcF90YnJlYWsgKHdpZHRoLCBvZmZzZXQpOyBsZW5ndGggPSB3aWR0aCB9IGluXG4gICAgc2Nhbl9wdXNoIHN0YXRlIHRydWUgZWxlbVxuXG5cbmxldCBwcF9wcmludF90YWIgc3RhdGUgKCkgPSBwcF9wcmludF90YnJlYWsgc3RhdGUgMCAwXG5cbmxldCBwcF9zZXRfdGFiIHN0YXRlICgpID1cbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlcyB0aGVuXG4gICAgbGV0IGVsZW0gPSB7IHNpemUgPSBTaXplLnplcm87IHRva2VuID0gUHBfc3RhYjsgbGVuZ3RoID0gMCB9IGluXG4gICAgZW5xdWV1ZV9hZHZhbmNlIHN0YXRlIGVsZW1cblxuXG4oKlxuXG4gIFByb2NlZHVyZXMgdG8gY29udHJvbCB0aGUgcHJldHR5LXByaW50ZXJzXG5cbiopXG5cbigqIFNldF9tYXhfYm94ZXMuICopXG5sZXQgcHBfc2V0X21heF9ib3hlcyBzdGF0ZSBuID0gaWYgbiA+IDEgdGhlbiBzdGF0ZS5wcF9tYXhfYm94ZXMgPC0gblxuXG4oKiBUbyBrbm93IHRoZSBjdXJyZW50IG1heGltdW0gbnVtYmVyIG9mIGJveGVzIGFsbG93ZWQuICopXG5sZXQgcHBfZ2V0X21heF9ib3hlcyBzdGF0ZSAoKSA9IHN0YXRlLnBwX21heF9ib3hlc1xuXG5sZXQgcHBfb3Zlcl9tYXhfYm94ZXMgc3RhdGUgKCkgPSBzdGF0ZS5wcF9jdXJyX2RlcHRoID0gc3RhdGUucHBfbWF4X2JveGVzXG5cbigqIEVsbGlwc2lzLiAqKVxubGV0IHBwX3NldF9lbGxpcHNpc190ZXh0IHN0YXRlIHMgPSBzdGF0ZS5wcF9lbGxpcHNpcyA8LSBzXG5hbmQgcHBfZ2V0X2VsbGlwc2lzX3RleHQgc3RhdGUgKCkgPSBzdGF0ZS5wcF9lbGxpcHNpc1xuXG5cbigqIFRvIHNldCB0aGUgbWFyZ2luIG9mIHByZXR0eS1wcmludGVyLiAqKVxubGV0IHBwX2xpbWl0IG4gPVxuICBpZiBuIDwgcHBfaW5maW5pdHkgdGhlbiBuIGVsc2UgcHJlZCBwcF9pbmZpbml0eVxuXG5cbigqIEludGVybmFsIHByZXR0eS1wcmludGVyIGZ1bmN0aW9ucy4gKilcbmxldCBwcF9zZXRfbWluX3NwYWNlX2xlZnQgc3RhdGUgbiA9XG4gIGlmIG4gPj0gMSB0aGVuXG4gICAgbGV0IG4gPSBwcF9saW1pdCBuIGluXG4gICAgc3RhdGUucHBfbWluX3NwYWNlX2xlZnQgPC0gbjtcbiAgICBzdGF0ZS5wcF9tYXhfaW5kZW50IDwtIHN0YXRlLnBwX21hcmdpbiAtIHN0YXRlLnBwX21pbl9zcGFjZV9sZWZ0O1xuICAgIHBwX3Jpbml0IHN0YXRlXG5cblxuKCogSW5pdGlhbGx5LCB3ZSBoYXZlIDpcbiAgIHBwX21heF9pbmRlbnQgPSBwcF9tYXJnaW4gLSBwcF9taW5fc3BhY2VfbGVmdCwgYW5kXG4gICBwcF9zcGFjZV9sZWZ0ID0gcHBfbWFyZ2luLiAqKVxubGV0IHBwX3NldF9tYXhfaW5kZW50IHN0YXRlIG4gPVxuICBpZiBuID4gMSB0aGVuXG4gICAgcHBfc2V0X21pbl9zcGFjZV9sZWZ0IHN0YXRlIChzdGF0ZS5wcF9tYXJnaW4gLSBuKVxuXG5cbmxldCBwcF9nZXRfbWF4X2luZGVudCBzdGF0ZSAoKSA9IHN0YXRlLnBwX21heF9pbmRlbnRcblxubGV0IHBwX3NldF9tYXJnaW4gc3RhdGUgbiA9XG4gIGlmIG4gPj0gMSB0aGVuXG4gICAgbGV0IG4gPSBwcF9saW1pdCBuIGluXG4gICAgc3RhdGUucHBfbWFyZ2luIDwtIG47XG4gICAgbGV0IG5ld19tYXhfaW5kZW50ID1cbiAgICAgICgqIFRyeSB0byBtYWludGFpbiBtYXhfaW5kZW50IHRvIGl0cyBhY3R1YWwgdmFsdWUuICopXG4gICAgICBpZiBzdGF0ZS5wcF9tYXhfaW5kZW50IDw9IHN0YXRlLnBwX21hcmdpblxuICAgICAgdGhlbiBzdGF0ZS5wcF9tYXhfaW5kZW50IGVsc2VcbiAgICAgICgqIElmIHBvc3NpYmxlIG1haW50YWluIHBwX21pbl9zcGFjZV9sZWZ0IHRvIGl0cyBhY3R1YWwgdmFsdWUsXG4gICAgICAgICBpZiB0aGlzIGxlYWRzIHRvIGEgdG9vIHNtYWxsIG1heF9pbmRlbnQsIHRha2UgaGFsZiBvZiB0aGVcbiAgICAgICAgIG5ldyBtYXJnaW4sIGlmIGl0IGlzIGdyZWF0ZXIgdGhhbiAxLiAqKVxuICAgICAgIEludC5tYXggKEludC5tYXggKHN0YXRlLnBwX21hcmdpbiAtIHN0YXRlLnBwX21pbl9zcGFjZV9sZWZ0KVxuICAgICAgICAgICAgICAgIChzdGF0ZS5wcF9tYXJnaW4gLyAyKSkgMSBpblxuICAgICgqIFJlYnVpbGQgaW52YXJpYW50cy4gKilcbiAgICBwcF9zZXRfbWF4X2luZGVudCBzdGF0ZSBuZXdfbWF4X2luZGVudFxuXG5cbigqKiBHZW9tZXRyeSBmdW5jdGlvbnMgYW5kIHR5cGVzICopXG50eXBlIGdlb21ldHJ5ID0geyBtYXhfaW5kZW50OmludDsgbWFyZ2luOiBpbnR9XG5cbmxldCB2YWxpZGF0ZV9nZW9tZXRyeSB7bWFyZ2luOyBtYXhfaW5kZW50fSA9XG4gIGlmIG1heF9pbmRlbnQgPCAyIHRoZW5cbiAgICBFcnJvciBcIm1heF9pbmRlbnQgPCAyXCJcbiAgZWxzZSBpZiBtYXJnaW4gPD0gbWF4X2luZGVudCB0aGVuXG4gICAgRXJyb3IgXCJtYXJnaW4gPD0gbWF4X2luZGVudFwiXG4gIGVsc2UgT2sgKClcblxubGV0IGNoZWNrX2dlb21ldHJ5IGdlb21ldHJ5ID1cbiAgbWF0Y2ggdmFsaWRhdGVfZ2VvbWV0cnkgZ2VvbWV0cnkgd2l0aFxuICB8IE9rICgpIC0+IHRydWVcbiAgfCBFcnJvciBfIC0+IGZhbHNlXG5cbmxldCBwcF9nZXRfbWFyZ2luIHN0YXRlICgpID0gc3RhdGUucHBfbWFyZ2luXG5cbmxldCBwcF9zZXRfZnVsbF9nZW9tZXRyeSBzdGF0ZSB7bWFyZ2luOyBtYXhfaW5kZW50fSA9XG4gIHBwX3NldF9tYXJnaW4gc3RhdGUgbWFyZ2luO1xuICBwcF9zZXRfbWF4X2luZGVudCBzdGF0ZSBtYXhfaW5kZW50O1xuICAoKVxuXG5sZXQgcHBfc2V0X2dlb21ldHJ5IHN0YXRlIH5tYXhfaW5kZW50IH5tYXJnaW4gPVxuICBsZXQgZ2VvbWV0cnkgPSB7IG1heF9pbmRlbnQ7IG1hcmdpbiB9IGluXG4gIG1hdGNoIHZhbGlkYXRlX2dlb21ldHJ5IGdlb21ldHJ5IHdpdGhcbiAgfCBFcnJvciBtc2cgLT5cbiAgICByYWlzZSAoSW52YWxpZF9hcmd1bWVudCAoXCJGb3JtYXQucHBfc2V0X2dlb21ldHJ5OiBcIiBeIG1zZykpXG4gIHwgT2sgKCkgLT5cbiAgICBwcF9zZXRfZnVsbF9nZW9tZXRyeSBzdGF0ZSBnZW9tZXRyeVxuXG5sZXQgcHBfc2FmZV9zZXRfZ2VvbWV0cnkgc3RhdGUgfm1heF9pbmRlbnQgfm1hcmdpbiA9XG4gIGxldCBnZW9tZXRyeSA9IHsgbWF4X2luZGVudDsgbWFyZ2luIH0gaW5cbiAgbWF0Y2ggdmFsaWRhdGVfZ2VvbWV0cnkgZ2VvbWV0cnkgd2l0aFxuICB8IEVycm9yIF9tc2cgLT5cbiAgICAgKClcbiAgfCBPayAoKSAtPlxuICAgIHBwX3NldF9mdWxsX2dlb21ldHJ5IHN0YXRlIGdlb21ldHJ5XG5cbmxldCBwcF9nZXRfZ2VvbWV0cnkgc3RhdGUgKCkgPVxuICB7IG1hcmdpbiA9IHBwX2dldF9tYXJnaW4gc3RhdGUgKCk7IG1heF9pbmRlbnQgPSBwcF9nZXRfbWF4X2luZGVudCBzdGF0ZSAoKSB9XG5cbmxldCBwcF91cGRhdGVfZ2VvbWV0cnkgc3RhdGUgdXBkYXRlID1cbiAgbGV0IGdlb21ldHJ5ID0gcHBfZ2V0X2dlb21ldHJ5IHN0YXRlICgpIGluXG4gIHBwX3NldF9mdWxsX2dlb21ldHJ5IHN0YXRlICh1cGRhdGUgZ2VvbWV0cnkpXG5cbigqIFNldHRpbmcgYSBmb3JtYXR0ZXIgYmFzaWMgb3V0cHV0IGZ1bmN0aW9ucy4gKilcbmxldCBwcF9zZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMgc3RhdGUge1xuICAgICAgb3V0X3N0cmluZyA9IGY7XG4gICAgICBvdXRfZmx1c2ggPSBnO1xuICAgICAgb3V0X25ld2xpbmUgPSBoO1xuICAgICAgb3V0X3NwYWNlcyA9IGk7XG4gICAgICBvdXRfaW5kZW50ID0gajtcbiAgICB9ID1cbiAgc3RhdGUucHBfb3V0X3N0cmluZyA8LSBmO1xuICBzdGF0ZS5wcF9vdXRfZmx1c2ggPC0gZztcbiAgc3RhdGUucHBfb3V0X25ld2xpbmUgPC0gaDtcbiAgc3RhdGUucHBfb3V0X3NwYWNlcyA8LSBpO1xuICBzdGF0ZS5wcF9vdXRfaW5kZW50IDwtIGpcblxubGV0IHBwX2dldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyBzdGF0ZSAoKSA9IHtcbiAgb3V0X3N0cmluZyA9IHN0YXRlLnBwX291dF9zdHJpbmc7XG4gIG91dF9mbHVzaCA9IHN0YXRlLnBwX291dF9mbHVzaDtcbiAgb3V0X25ld2xpbmUgPSBzdGF0ZS5wcF9vdXRfbmV3bGluZTtcbiAgb3V0X3NwYWNlcyA9IHN0YXRlLnBwX291dF9zcGFjZXM7XG4gIG91dF9pbmRlbnQgPSBzdGF0ZS5wcF9vdXRfaW5kZW50O1xufVxuXG5cbigqIFNldHRpbmcgYSBmb3JtYXR0ZXIgYmFzaWMgc3RyaW5nIG91dHB1dCBhbmQgZmx1c2ggZnVuY3Rpb25zLiAqKVxubGV0IHBwX3NldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyBzdGF0ZSBmIGcgPVxuICBzdGF0ZS5wcF9vdXRfc3RyaW5nIDwtIGY7IHN0YXRlLnBwX291dF9mbHVzaCA8LSBnXG5cbmxldCBwcF9nZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgc3RhdGUgKCkgPVxuICAoc3RhdGUucHBfb3V0X3N0cmluZywgc3RhdGUucHBfb3V0X2ZsdXNoKVxuXG5cbigqIFRoZSBkZWZhdWx0IGZ1bmN0aW9uIHRvIG91dHB1dCBuZXcgbGluZXMuICopXG5sZXQgZGlzcGxheV9uZXdsaW5lIHN0YXRlICgpID0gc3RhdGUucHBfb3V0X3N0cmluZyBcIlxcblwiIDAgIDFcblxuKCogVGhlIGRlZmF1bHQgZnVuY3Rpb24gdG8gb3V0cHV0IHNwYWNlcy4gKilcbmxldCBibGFua19saW5lID0gU3RyaW5nLm1ha2UgODAgJyAnXG5sZXQgcmVjIGRpc3BsYXlfYmxhbmtzIHN0YXRlIG4gPVxuICBpZiBuID4gMCB0aGVuXG4gIGlmIG4gPD0gODAgdGhlbiBzdGF0ZS5wcF9vdXRfc3RyaW5nIGJsYW5rX2xpbmUgMCBuIGVsc2VcbiAgYmVnaW5cbiAgICBzdGF0ZS5wcF9vdXRfc3RyaW5nIGJsYW5rX2xpbmUgMCA4MDtcbiAgICBkaXNwbGF5X2JsYW5rcyBzdGF0ZSAobiAtIDgwKVxuICBlbmRcblxuXG4oKiBUaGUgZGVmYXVsdCBmdW5jdGlvbiB0byBvdXRwdXQgaW5kZW50YXRpb24gb2YgbmV3IGxpbmVzLiAqKVxubGV0IGRpc3BsYXlfaW5kZW50ID0gZGlzcGxheV9ibGFua3NcblxuKCogU2V0dGluZyBhIGZvcm1hdHRlciBiYXNpYyBvdXRwdXQgZnVuY3Rpb25zIGFzIHByaW50aW5nIHRvIGEgZ2l2ZW5cbiAgIFtQZXJ2YXNpdmUub3V0X2NoYW5uZWxdIHZhbHVlLiAqKVxubGV0IHBwX3NldF9mb3JtYXR0ZXJfb3V0X2NoYW5uZWwgc3RhdGUgb2MgPVxuICBzdGF0ZS5wcF9vdXRfc3RyaW5nIDwtIG91dHB1dF9zdWJzdHJpbmcgb2M7XG4gIHN0YXRlLnBwX291dF9mbHVzaCA8LSAoZnVuICgpIC0+IGZsdXNoIG9jKTtcbiAgc3RhdGUucHBfb3V0X25ld2xpbmUgPC0gZGlzcGxheV9uZXdsaW5lIHN0YXRlO1xuICBzdGF0ZS5wcF9vdXRfc3BhY2VzIDwtIGRpc3BsYXlfYmxhbmtzIHN0YXRlO1xuICBzdGF0ZS5wcF9vdXRfaW5kZW50IDwtIGRpc3BsYXlfaW5kZW50IHN0YXRlXG5cbigqXG5cbiAgRGVmaW5pbmcgc3BlY2lmaWMgZm9ybWF0dGVyc1xuXG4qKVxuXG5sZXQgZGVmYXVsdF9wcF9tYXJrX29wZW5fdGFnID0gZnVuY3Rpb25cbiAgfCBTdHJpbmdfdGFnIHMgLT4gXCI8XCIgXiBzIF4gXCI+XCJcbiAgfCBfIC0+IFwiXCJcbmxldCBkZWZhdWx0X3BwX21hcmtfY2xvc2VfdGFnID0gZnVuY3Rpb25cbiAgfCBTdHJpbmdfdGFnIHMgLT4gXCI8L1wiIF4gcyBeIFwiPlwiXG4gIHwgXyAtPiBcIlwiXG5cbmxldCBkZWZhdWx0X3BwX3ByaW50X29wZW5fdGFnID0gaWdub3JlXG5sZXQgZGVmYXVsdF9wcF9wcmludF9jbG9zZV90YWcgPSBpZ25vcmVcblxuKCogQnVpbGRpbmcgYSBmb3JtYXR0ZXIgZ2l2ZW4gaXRzIGJhc2ljIG91dHB1dCBmdW5jdGlvbnMuXG4gICBPdGhlciBmaWVsZHMgZ2V0IHJlYXNvbmFibGUgZGVmYXVsdCB2YWx1ZXMuICopXG5sZXQgcHBfbWFrZV9mb3JtYXR0ZXIgZiBnIGggaSBqID1cbiAgKCogVGhlIGluaXRpYWwgc3RhdGUgb2YgdGhlIGZvcm1hdHRlciBjb250YWlucyBhIGR1bW15IGJveC4gKilcbiAgbGV0IHBwX3F1ZXVlID0gUXVldWUuY3JlYXRlICgpIGluXG4gIGxldCBzeXNfdG9rID1cbiAgICB7IHNpemUgPSBTaXplLnVua25vd247IHRva2VuID0gUHBfYmVnaW4gKDAsIFBwX2hvdmJveCk7IGxlbmd0aCA9IDAgfSBpblxuICBRdWV1ZS5hZGQgc3lzX3RvayBwcF9xdWV1ZTtcbiAgbGV0IHNjYW5fc3RhY2sgPSBTdGFjay5jcmVhdGUgKCkgaW5cbiAgaW5pdGlhbGl6ZV9zY2FuX3N0YWNrIHNjYW5fc3RhY2s7XG4gIFN0YWNrLnB1c2ggeyBsZWZ0X3RvdGFsID0gMTsgcXVldWVfZWxlbSA9IHN5c190b2sgfSBzY2FuX3N0YWNrO1xuICBsZXQgcHBfbWFyZ2luID0gNzhcbiAgYW5kIHBwX21pbl9zcGFjZV9sZWZ0ID0gMTAgaW5cbiAge1xuICAgIHBwX3NjYW5fc3RhY2sgPSBzY2FuX3N0YWNrO1xuICAgIHBwX2Zvcm1hdF9zdGFjayA9IFN0YWNrLmNyZWF0ZSAoKTtcbiAgICBwcF90Ym94X3N0YWNrID0gU3RhY2suY3JlYXRlICgpO1xuICAgIHBwX3RhZ19zdGFjayA9IFN0YWNrLmNyZWF0ZSAoKTtcbiAgICBwcF9tYXJrX3N0YWNrID0gU3RhY2suY3JlYXRlICgpO1xuICAgIHBwX21hcmdpbiA9IHBwX21hcmdpbjtcbiAgICBwcF9taW5fc3BhY2VfbGVmdCA9IHBwX21pbl9zcGFjZV9sZWZ0O1xuICAgIHBwX21heF9pbmRlbnQgPSBwcF9tYXJnaW4gLSBwcF9taW5fc3BhY2VfbGVmdDtcbiAgICBwcF9zcGFjZV9sZWZ0ID0gcHBfbWFyZ2luO1xuICAgIHBwX2N1cnJlbnRfaW5kZW50ID0gMDtcbiAgICBwcF9pc19uZXdfbGluZSA9IHRydWU7XG4gICAgcHBfbGVmdF90b3RhbCA9IDE7XG4gICAgcHBfcmlnaHRfdG90YWwgPSAxO1xuICAgIHBwX2N1cnJfZGVwdGggPSAxO1xuICAgIHBwX21heF9ib3hlcyA9IG1heF9pbnQ7XG4gICAgcHBfZWxsaXBzaXMgPSBcIi5cIjtcbiAgICBwcF9vdXRfc3RyaW5nID0gZjtcbiAgICBwcF9vdXRfZmx1c2ggPSBnO1xuICAgIHBwX291dF9uZXdsaW5lID0gaDtcbiAgICBwcF9vdXRfc3BhY2VzID0gaTtcbiAgICBwcF9vdXRfaW5kZW50ID0gajtcbiAgICBwcF9wcmludF90YWdzID0gZmFsc2U7XG4gICAgcHBfbWFya190YWdzID0gZmFsc2U7XG4gICAgcHBfbWFya19vcGVuX3RhZyA9IGRlZmF1bHRfcHBfbWFya19vcGVuX3RhZztcbiAgICBwcF9tYXJrX2Nsb3NlX3RhZyA9IGRlZmF1bHRfcHBfbWFya19jbG9zZV90YWc7XG4gICAgcHBfcHJpbnRfb3Blbl90YWcgPSBkZWZhdWx0X3BwX3ByaW50X29wZW5fdGFnO1xuICAgIHBwX3ByaW50X2Nsb3NlX3RhZyA9IGRlZmF1bHRfcHBfcHJpbnRfY2xvc2VfdGFnO1xuICAgIHBwX3F1ZXVlID0gcHBfcXVldWU7XG4gIH1cblxuXG4oKiBCdWlsZCBhIGZvcm1hdHRlciBvdXQgb2YgaXRzIG91dCBmdW5jdGlvbnMuICopXG5sZXQgZm9ybWF0dGVyX29mX291dF9mdW5jdGlvbnMgb3V0X2Z1bnMgPVxuICBwcF9tYWtlX2Zvcm1hdHRlclxuICAgIG91dF9mdW5zLm91dF9zdHJpbmdcbiAgICBvdXRfZnVucy5vdXRfZmx1c2hcbiAgICBvdXRfZnVucy5vdXRfbmV3bGluZVxuICAgIG91dF9mdW5zLm91dF9zcGFjZXNcbiAgICBvdXRfZnVucy5vdXRfaW5kZW50XG5cblxuKCogTWFrZSBhIGZvcm1hdHRlciB3aXRoIGRlZmF1bHQgZnVuY3Rpb25zIHRvIG91dHB1dCBzcGFjZXMsXG4gIGluZGVudGF0aW9uLCBhbmQgbmV3IGxpbmVzLiAqKVxubGV0IG1ha2VfZm9ybWF0dGVyIG91dHB1dCBmbHVzaCA9XG4gIGxldCBwcGYgPSBwcF9tYWtlX2Zvcm1hdHRlciBvdXRwdXQgZmx1c2ggaWdub3JlIGlnbm9yZSBpZ25vcmUgaW5cbiAgcHBmLnBwX291dF9uZXdsaW5lIDwtIGRpc3BsYXlfbmV3bGluZSBwcGY7XG4gIHBwZi5wcF9vdXRfc3BhY2VzIDwtIGRpc3BsYXlfYmxhbmtzIHBwZjtcbiAgcHBmLnBwX291dF9pbmRlbnQgPC0gZGlzcGxheV9pbmRlbnQgcHBmO1xuICBwcGZcblxuXG4oKiBNYWtlIGEgZm9ybWF0dGVyIHdyaXRpbmcgdG8gYSBnaXZlbiBbUGVydmFzaXZlLm91dF9jaGFubmVsXSB2YWx1ZS4gKilcbmxldCBmb3JtYXR0ZXJfb2Zfb3V0X2NoYW5uZWwgb2MgPVxuICBtYWtlX2Zvcm1hdHRlciAob3V0cHV0X3N1YnN0cmluZyBvYykgKGZ1biAoKSAtPiBmbHVzaCBvYylcblxuXG4oKiBNYWtlIGEgZm9ybWF0dGVyIHdyaXRpbmcgdG8gYSBnaXZlbiBbQnVmZmVyLnRdIHZhbHVlLiAqKVxubGV0IGZvcm1hdHRlcl9vZl9idWZmZXIgYiA9XG4gIG1ha2VfZm9ybWF0dGVyIChCdWZmZXIuYWRkX3N1YnN0cmluZyBiKSBpZ25vcmVcblxuXG4oKiBBbGxvY2F0aW5nIGJ1ZmZlciBmb3IgcHJldHR5LXByaW50aW5nIHB1cnBvc2VzLlxuICAgRGVmYXVsdCBidWZmZXIgc2l6ZSBpcyBwcF9idWZmZXJfc2l6ZSBvciA1MTIuXG4qKVxubGV0IHBwX2J1ZmZlcl9zaXplID0gNTEyXG5sZXQgcHBfbWFrZV9idWZmZXIgKCkgPSBCdWZmZXIuY3JlYXRlIHBwX2J1ZmZlcl9zaXplXG5cbigqIFRoZSBzdGFuZGFyZCAoc2hhcmVkKSBidWZmZXIuICopXG5sZXQgc3RkYnVmID0gcHBfbWFrZV9idWZmZXIgKClcblxuKCogUHJlZGVmaW5lZCBmb3JtYXR0ZXJzIHN0YW5kYXJkIGZvcm1hdHRlciB0byBwcmludFxuICAgdG8gW1N0ZGxpYi5zdGRvdXRdLCBbU3RkbGliLnN0ZGVycl0sIGFuZCB7IXN0ZGJ1Zn0uICopXG5sZXQgc3RkX2Zvcm1hdHRlciA9IGZvcm1hdHRlcl9vZl9vdXRfY2hhbm5lbCBTdGRsaWIuc3Rkb3V0XG5hbmQgZXJyX2Zvcm1hdHRlciA9IGZvcm1hdHRlcl9vZl9vdXRfY2hhbm5lbCBTdGRsaWIuc3RkZXJyXG5hbmQgc3RyX2Zvcm1hdHRlciA9IGZvcm1hdHRlcl9vZl9idWZmZXIgc3RkYnVmXG5cblxuKCogW2ZsdXNoX2J1ZmZlcl9mb3JtYXR0ZXIgYnVmIHBwZl0gZmx1c2hlcyBmb3JtYXR0ZXIgW3BwZl0sXG4gICB0aGVuIHJldHVybnMgdGhlIGNvbnRlbnRzIG9mIGJ1ZmZlciBbYnVmXSB0aGF0IGlzIHJlc2V0LlxuICAgRm9ybWF0dGVyIFtwcGZdIGlzIHN1cHBvc2VkIHRvIHByaW50IHRvIGJ1ZmZlciBbYnVmXSwgb3RoZXJ3aXNlIHRoaXNcbiAgIGZ1bmN0aW9uIGlzIG5vdCByZWFsbHkgdXNlZnVsLiAqKVxubGV0IGZsdXNoX2J1ZmZlcl9mb3JtYXR0ZXIgYnVmIHBwZiA9XG4gIHBwX2ZsdXNoX3F1ZXVlIHBwZiBmYWxzZTtcbiAgbGV0IHMgPSBCdWZmZXIuY29udGVudHMgYnVmIGluXG4gIEJ1ZmZlci5yZXNldCBidWY7XG4gIHNcblxuXG4oKiBGbHVzaCBbc3RyX2Zvcm1hdHRlcl0gYW5kIGdldCB0aGUgY29udGVudHMgb2YgW3N0ZGJ1Zl0uICopXG5sZXQgZmx1c2hfc3RyX2Zvcm1hdHRlciAoKSA9IGZsdXNoX2J1ZmZlcl9mb3JtYXR0ZXIgc3RkYnVmIHN0cl9mb3JtYXR0ZXJcblxuKCpcbiAgU3ltYm9saWMgcHJldHR5LXByaW50aW5nXG4qKVxuXG4oKlxuICBTeW1ib2xpYyBwcmV0dHktcHJpbnRpbmcgaXMgcHJldHR5LXByaW50aW5nIHdpdGggbm8gbG93IGxldmVsIG91dHB1dC5cblxuICBXaGVuIHVzaW5nIGEgc3ltYm9saWMgZm9ybWF0dGVyLCBhbGwgcmVndWxhciBwcmV0dHktcHJpbnRpbmcgYWN0aXZpdGllc1xuICBvY2N1ciBidXQgb3V0cHV0IG1hdGVyaWFsIGlzIHN5bWJvbGljIGFuZCBzdG9yZWQgaW4gYSBidWZmZXIgb2Ygb3V0cHV0XG4gIGl0ZW1zLiBBdCB0aGUgZW5kIG9mIHByZXR0eS1wcmludGluZywgZmx1c2hpbmcgdGhlIG91dHB1dCBidWZmZXIgYWxsb3dzXG4gIHBvc3QtcHJvY2Vzc2luZyBvZiBzeW1ib2xpYyBvdXRwdXQgYmVmb3JlIGxvdyBsZXZlbCBvdXRwdXQgb3BlcmF0aW9ucy5cbiopXG5cbnR5cGUgc3ltYm9saWNfb3V0cHV0X2l0ZW0gPVxuICB8IE91dHB1dF9mbHVzaFxuICB8IE91dHB1dF9uZXdsaW5lXG4gIHwgT3V0cHV0X3N0cmluZyBvZiBzdHJpbmdcbiAgfCBPdXRwdXRfc3BhY2VzIG9mIGludFxuICB8IE91dHB1dF9pbmRlbnQgb2YgaW50XG5cbnR5cGUgc3ltYm9saWNfb3V0cHV0X2J1ZmZlciA9IHtcbiAgbXV0YWJsZSBzeW1ib2xpY19vdXRwdXRfY29udGVudHMgOiBzeW1ib2xpY19vdXRwdXRfaXRlbSBsaXN0O1xufVxuXG5sZXQgbWFrZV9zeW1ib2xpY19vdXRwdXRfYnVmZmVyICgpID1cbiAgeyBzeW1ib2xpY19vdXRwdXRfY29udGVudHMgPSBbXSB9XG5cbmxldCBjbGVhcl9zeW1ib2xpY19vdXRwdXRfYnVmZmVyIHNvYiA9XG4gIHNvYi5zeW1ib2xpY19vdXRwdXRfY29udGVudHMgPC0gW11cblxubGV0IGdldF9zeW1ib2xpY19vdXRwdXRfYnVmZmVyIHNvYiA9XG4gIExpc3QucmV2IHNvYi5zeW1ib2xpY19vdXRwdXRfY29udGVudHNcblxubGV0IGZsdXNoX3N5bWJvbGljX291dHB1dF9idWZmZXIgc29iID1cbiAgbGV0IGl0ZW1zID0gZ2V0X3N5bWJvbGljX291dHB1dF9idWZmZXIgc29iIGluXG4gIGNsZWFyX3N5bWJvbGljX291dHB1dF9idWZmZXIgc29iO1xuICBpdGVtc1xuXG5sZXQgYWRkX3N5bWJvbGljX291dHB1dF9pdGVtIHNvYiBpdGVtID1cbiAgc29iLnN5bWJvbGljX291dHB1dF9jb250ZW50cyA8LSBpdGVtIDo6IHNvYi5zeW1ib2xpY19vdXRwdXRfY29udGVudHNcblxubGV0IGZvcm1hdHRlcl9vZl9zeW1ib2xpY19vdXRwdXRfYnVmZmVyIHNvYiA9XG4gIGxldCBzeW1ib2xpY19mbHVzaCBzb2IgKCkgPVxuICAgIGFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSBzb2IgT3V0cHV0X2ZsdXNoXG4gIGFuZCBzeW1ib2xpY19uZXdsaW5lIHNvYiAoKSA9XG4gICAgYWRkX3N5bWJvbGljX291dHB1dF9pdGVtIHNvYiBPdXRwdXRfbmV3bGluZVxuICBhbmQgc3ltYm9saWNfc3RyaW5nIHNvYiBzIGkgbiA9XG4gICAgYWRkX3N5bWJvbGljX291dHB1dF9pdGVtIHNvYiAoT3V0cHV0X3N0cmluZyAoU3RyaW5nLnN1YiBzIGkgbikpXG4gIGFuZCBzeW1ib2xpY19zcGFjZXMgc29iIG4gPVxuICAgIGFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSBzb2IgKE91dHB1dF9zcGFjZXMgbilcbiAgYW5kIHN5bWJvbGljX2luZGVudCBzb2IgbiA9XG4gICAgYWRkX3N5bWJvbGljX291dHB1dF9pdGVtIHNvYiAoT3V0cHV0X2luZGVudCBuKSBpblxuXG4gIGxldCBmID0gc3ltYm9saWNfc3RyaW5nIHNvYlxuICBhbmQgZyA9IHN5bWJvbGljX2ZsdXNoIHNvYlxuICBhbmQgaCA9IHN5bWJvbGljX25ld2xpbmUgc29iXG4gIGFuZCBpID0gc3ltYm9saWNfc3BhY2VzIHNvYlxuICBhbmQgaiA9IHN5bWJvbGljX2luZGVudCBzb2IgaW5cbiAgcHBfbWFrZV9mb3JtYXR0ZXIgZiBnIGggaSBqXG5cbigqXG5cbiAgQmFzaWMgZnVuY3Rpb25zIG9uIHRoZSAnc3RhbmRhcmQnIGZvcm1hdHRlclxuICAodGhlIGZvcm1hdHRlciB0aGF0IHByaW50cyB0byBbU3RkbGliLnN0ZG91dF0pLlxuXG4qKVxuXG5sZXQgb3Blbl9oYm94ID0gcHBfb3Blbl9oYm94IHN0ZF9mb3JtYXR0ZXJcbmFuZCBvcGVuX3Zib3ggPSBwcF9vcGVuX3Zib3ggc3RkX2Zvcm1hdHRlclxuYW5kIG9wZW5faHZib3ggPSBwcF9vcGVuX2h2Ym94IHN0ZF9mb3JtYXR0ZXJcbmFuZCBvcGVuX2hvdmJveCA9IHBwX29wZW5faG92Ym94IHN0ZF9mb3JtYXR0ZXJcbmFuZCBvcGVuX2JveCA9IHBwX29wZW5fYm94IHN0ZF9mb3JtYXR0ZXJcbmFuZCBjbG9zZV9ib3ggPSBwcF9jbG9zZV9ib3ggc3RkX2Zvcm1hdHRlclxuYW5kIG9wZW5fdGFnID0gcHBfb3Blbl90YWcgc3RkX2Zvcm1hdHRlclxuYW5kIGNsb3NlX3RhZyA9IHBwX2Nsb3NlX3RhZyBzdGRfZm9ybWF0dGVyXG5hbmQgb3Blbl9zdGFnID0gcHBfb3Blbl9zdGFnIHN0ZF9mb3JtYXR0ZXJcbmFuZCBjbG9zZV9zdGFnID0gcHBfY2xvc2Vfc3RhZyBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfYXMgPSBwcF9wcmludF9hcyBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfc3RyaW5nID0gcHBfcHJpbnRfc3RyaW5nIHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9ieXRlcyA9IHBwX3ByaW50X2J5dGVzIHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9pbnQgPSBwcF9wcmludF9pbnQgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X2Zsb2F0ID0gcHBfcHJpbnRfZmxvYXQgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X2NoYXIgPSBwcF9wcmludF9jaGFyIHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9ib29sID0gcHBfcHJpbnRfYm9vbCBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfYnJlYWsgPSBwcF9wcmludF9icmVhayBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfY3V0ID0gcHBfcHJpbnRfY3V0IHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9zcGFjZSA9IHBwX3ByaW50X3NwYWNlIHN0ZF9mb3JtYXR0ZXJcbmFuZCBmb3JjZV9uZXdsaW5lID0gcHBfZm9yY2VfbmV3bGluZSBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfZmx1c2ggPSBwcF9wcmludF9mbHVzaCBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfbmV3bGluZSA9IHBwX3ByaW50X25ld2xpbmUgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X2lmX25ld2xpbmUgPSBwcF9wcmludF9pZl9uZXdsaW5lIHN0ZF9mb3JtYXR0ZXJcblxuYW5kIG9wZW5fdGJveCA9IHBwX29wZW5fdGJveCBzdGRfZm9ybWF0dGVyXG5hbmQgY2xvc2VfdGJveCA9IHBwX2Nsb3NlX3Rib3ggc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X3RicmVhayA9IHBwX3ByaW50X3RicmVhayBzdGRfZm9ybWF0dGVyXG5cbmFuZCBzZXRfdGFiID0gcHBfc2V0X3RhYiBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfdGFiID0gcHBfcHJpbnRfdGFiIHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF9tYXJnaW4gPSBwcF9zZXRfbWFyZ2luIHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfbWFyZ2luID0gcHBfZ2V0X21hcmdpbiBzdGRfZm9ybWF0dGVyXG5cbmFuZCBzZXRfbWF4X2luZGVudCA9IHBwX3NldF9tYXhfaW5kZW50IHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfbWF4X2luZGVudCA9IHBwX2dldF9tYXhfaW5kZW50IHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF9nZW9tZXRyeSA9IHBwX3NldF9nZW9tZXRyeSBzdGRfZm9ybWF0dGVyXG5hbmQgc2FmZV9zZXRfZ2VvbWV0cnkgPSBwcF9zYWZlX3NldF9nZW9tZXRyeSBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X2dlb21ldHJ5ID0gcHBfZ2V0X2dlb21ldHJ5IHN0ZF9mb3JtYXR0ZXJcbmFuZCB1cGRhdGVfZ2VvbWV0cnkgPSBwcF91cGRhdGVfZ2VvbWV0cnkgc3RkX2Zvcm1hdHRlclxuXG5hbmQgc2V0X21heF9ib3hlcyA9IHBwX3NldF9tYXhfYm94ZXMgc3RkX2Zvcm1hdHRlclxuYW5kIGdldF9tYXhfYm94ZXMgPSBwcF9nZXRfbWF4X2JveGVzIHN0ZF9mb3JtYXR0ZXJcbmFuZCBvdmVyX21heF9ib3hlcyA9IHBwX292ZXJfbWF4X2JveGVzIHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF9lbGxpcHNpc190ZXh0ID0gcHBfc2V0X2VsbGlwc2lzX3RleHQgc3RkX2Zvcm1hdHRlclxuYW5kIGdldF9lbGxpcHNpc190ZXh0ID0gcHBfZ2V0X2VsbGlwc2lzX3RleHQgc3RkX2Zvcm1hdHRlclxuXG5hbmQgc2V0X2Zvcm1hdHRlcl9vdXRfY2hhbm5lbCA9XG4gIHBwX3NldF9mb3JtYXR0ZXJfb3V0X2NoYW5uZWwgc3RkX2Zvcm1hdHRlclxuXG5hbmQgc2V0X2Zvcm1hdHRlcl9vdXRfZnVuY3Rpb25zID1cbiAgcHBfc2V0X2Zvcm1hdHRlcl9vdXRfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMgPVxuICBwcF9nZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMgc3RkX2Zvcm1hdHRlclxuXG5hbmQgc2V0X2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zID1cbiAgcHBfc2V0X2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgPVxuICBwcF9nZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgc3RkX2Zvcm1hdHRlclxuXG5hbmQgc2V0X2Zvcm1hdHRlcl9zdGFnX2Z1bmN0aW9ucyA9XG4gIHBwX3NldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMgc3RkX2Zvcm1hdHRlclxuYW5kIGdldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMgPVxuICBwcF9nZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcbmFuZCBzZXRfcHJpbnRfdGFncyA9XG4gIHBwX3NldF9wcmludF90YWdzIHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfcHJpbnRfdGFncyA9XG4gIHBwX2dldF9wcmludF90YWdzIHN0ZF9mb3JtYXR0ZXJcbmFuZCBzZXRfbWFya190YWdzID1cbiAgcHBfc2V0X21hcmtfdGFncyBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X21hcmtfdGFncyA9XG4gIHBwX2dldF9tYXJrX3RhZ3Mgc3RkX2Zvcm1hdHRlclxuYW5kIHNldF90YWdzID1cbiAgcHBfc2V0X3RhZ3Mgc3RkX2Zvcm1hdHRlclxuXG5cbigqIENvbnZlbmllbmNlIGZ1bmN0aW9ucyAqKVxuXG4oKiBUbyBmb3JtYXQgYSBsaXN0ICopXG5sZXQgcmVjIHBwX3ByaW50X2xpc3QgPyhwcF9zZXAgPSBwcF9wcmludF9jdXQpIHBwX3YgcHBmID0gZnVuY3Rpb25cbiAgfCBbXSAtPiAoKVxuICB8IFt2XSAtPiBwcF92IHBwZiB2XG4gIHwgdiA6OiB2cyAtPlxuICAgIHBwX3YgcHBmIHY7XG4gICAgcHBfc2VwIHBwZiAoKTtcbiAgICBwcF9wcmludF9saXN0IH5wcF9zZXAgcHBfdiBwcGYgdnNcblxuKCogVG8gZm9ybWF0IGEgc2VxdWVuY2UgKilcbmxldCByZWMgcHBfcHJpbnRfc2VxX2luIH5wcF9zZXAgcHBfdiBwcGYgc2VxID1cbiAgbWF0Y2ggc2VxICgpIHdpdGhcbiAgfCBTZXEuTmlsIC0+ICgpXG4gIHwgU2VxLkNvbnMgKHYsIHNlcSkgLT5cbiAgICBwcF9zZXAgcHBmICgpO1xuICAgIHBwX3YgcHBmIHY7XG4gICAgcHBfcHJpbnRfc2VxX2luIH5wcF9zZXAgcHBfdiBwcGYgc2VxXG5cbmxldCBwcF9wcmludF9zZXEgPyhwcF9zZXAgPSBwcF9wcmludF9jdXQpIHBwX3YgcHBmIHNlcSA9XG4gIG1hdGNoIHNlcSAoKSB3aXRoXG4gIHwgU2VxLk5pbCAtPiAoKVxuICB8IFNlcS5Db25zICh2LCBzZXEpIC0+XG4gICAgcHBfdiBwcGYgdjtcbiAgICBwcF9wcmludF9zZXFfaW4gfnBwX3NlcCBwcF92IHBwZiBzZXFcblxuKCogVG8gZm9ybWF0IGZyZWUtZmxvd2luZyB0ZXh0ICopXG5sZXQgcHBfcHJpbnRfdGV4dCBwcGYgcyA9XG4gIGxldCBsZW4gPSBTdHJpbmcubGVuZ3RoIHMgaW5cbiAgbGV0IGxlZnQgPSByZWYgMCBpblxuICBsZXQgcmlnaHQgPSByZWYgMCBpblxuICBsZXQgZmx1c2ggKCkgPVxuICAgIHBwX3ByaW50X3N0cmluZyBwcGYgKFN0cmluZy5zdWIgcyAhbGVmdCAoIXJpZ2h0IC0gIWxlZnQpKTtcbiAgICBpbmNyIHJpZ2h0OyBsZWZ0IDo9ICFyaWdodDtcbiAgaW5cbiAgd2hpbGUgKCFyaWdodCA8PiBsZW4pIGRvXG4gICAgbWF0Y2ggcy5bIXJpZ2h0XSB3aXRoXG4gICAgICB8ICdcXG4nIC0+XG4gICAgICAgIGZsdXNoICgpO1xuICAgICAgICBwcF9mb3JjZV9uZXdsaW5lIHBwZiAoKVxuICAgICAgfCAnICcgLT5cbiAgICAgICAgZmx1c2ggKCk7IHBwX3ByaW50X3NwYWNlIHBwZiAoKVxuICAgICAgKCogdGhlcmUgaXMgbm8gc3BlY2lmaWMgc3VwcG9ydCBmb3IgJ1xcdCdcbiAgICAgICAgIGFzIGl0IGlzIHVuY2xlYXIgd2hhdCBhIHJpZ2h0IHNlbWFudGljcyB3b3VsZCBiZSAqKVxuICAgICAgfCBfIC0+IGluY3IgcmlnaHRcbiAgZG9uZTtcbiAgaWYgIWxlZnQgPD4gbGVuIHRoZW4gZmx1c2ggKClcblxubGV0IHBwX3ByaW50X29wdGlvbiA/KG5vbmUgPSBmdW4gXyAoKSAtPiAoKSkgcHBfdiBwcGYgPSBmdW5jdGlvblxufCBOb25lIC0+IG5vbmUgcHBmICgpXG58IFNvbWUgdiAtPiBwcF92IHBwZiB2XG5cbmxldCBwcF9wcmludF9yZXN1bHQgfm9rIH5lcnJvciBwcGYgPSBmdW5jdGlvblxufCBPayB2IC0+IG9rIHBwZiB2XG58IEVycm9yIGUgLT4gZXJyb3IgcHBmIGVcblxubGV0IHBwX3ByaW50X2VpdGhlciB+bGVmdCB+cmlnaHQgcHBmID0gZnVuY3Rpb25cbnwgRWl0aGVyLkxlZnQgbCAtPiBsZWZ0IHBwZiBsXG58IEVpdGhlci5SaWdodCByIC0+IHJpZ2h0IHBwZiByXG5cbiAoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbmxldCBjb21wdXRlX3RhZyBvdXRwdXQgdGFnX2FjYyA9XG4gIGxldCBidWYgPSBCdWZmZXIuY3JlYXRlIDE2IGluXG4gIGxldCBwcGYgPSBmb3JtYXR0ZXJfb2ZfYnVmZmVyIGJ1ZiBpblxuICBvdXRwdXQgcHBmIHRhZ19hY2M7XG4gIHBwX3ByaW50X2ZsdXNoIHBwZiAoKTtcbiAgbGV0IGxlbiA9IEJ1ZmZlci5sZW5ndGggYnVmIGluXG4gIGlmIGxlbiA8IDIgdGhlbiBCdWZmZXIuY29udGVudHMgYnVmXG4gIGVsc2UgQnVmZmVyLnN1YiBidWYgMSAobGVuIC0gMilcblxuICgqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4gIERlZmluaW5nIGNvbnRpbnVhdGlvbnMgdG8gYmUgcGFzc2VkIGFzIGFyZ3VtZW50cyBvZlxuICBDYW1saW50ZXJuYWxGb3JtYXQubWFrZV9wcmludGYuXG5cbiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbm9wZW4gQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzXG5vcGVuIENhbWxpbnRlcm5hbEZvcm1hdFxuXG4oKiBJbnRlcnByZXQgYSBmb3JtYXR0aW5nIGVudGl0eSBvbiBhIGZvcm1hdHRlci4gKilcbmxldCBvdXRwdXRfZm9ybWF0dGluZ19saXQgcHBmIGZtdGluZ19saXQgPSBtYXRjaCBmbXRpbmdfbGl0IHdpdGhcbiAgfCBDbG9zZV9ib3ggICAgICAgICAgICAgICAgIC0+IHBwX2Nsb3NlX2JveCBwcGYgKClcbiAgfCBDbG9zZV90YWcgICAgICAgICAgICAgICAgIC0+IHBwX2Nsb3NlX3RhZyBwcGYgKClcbiAgfCBCcmVhayAoXywgd2lkdGgsIG9mZnNldCkgIC0+IHBwX3ByaW50X2JyZWFrIHBwZiB3aWR0aCBvZmZzZXRcbiAgfCBGRmx1c2ggICAgICAgICAgICAgICAgICAgIC0+IHBwX3ByaW50X2ZsdXNoIHBwZiAoKVxuICB8IEZvcmNlX25ld2xpbmUgICAgICAgICAgICAgLT4gcHBfZm9yY2VfbmV3bGluZSBwcGYgKClcbiAgfCBGbHVzaF9uZXdsaW5lICAgICAgICAgICAgIC0+IHBwX3ByaW50X25ld2xpbmUgcHBmICgpXG4gIHwgTWFnaWNfc2l6ZSAoXywgXykgICAgICAgICAtPiAoKVxuICB8IEVzY2FwZWRfYXQgICAgICAgICAgICAgICAgLT4gcHBfcHJpbnRfY2hhciBwcGYgJ0AnXG4gIHwgRXNjYXBlZF9wZXJjZW50ICAgICAgICAgICAtPiBwcF9wcmludF9jaGFyIHBwZiAnJSdcbiAgfCBTY2FuX2luZGljIGMgICAgICAgICAgICAgIC0+IHBwX3ByaW50X2NoYXIgcHBmICdAJzsgcHBfcHJpbnRfY2hhciBwcGYgY1xuXG4oKiBSZWN1cnNpdmVseSBvdXRwdXQgYW4gXCJhY2N1bXVsYXRvclwiIGNvbnRhaW5pbmcgYSByZXZlcnNlZCBsaXN0IG9mXG4gICBwcmludGluZyBlbnRpdGllcyAoc3RyaW5nLCBjaGFyLCBmbHVzLCAuLi4pIGluIGFuIG91dHB1dF9zdHJlYW0uICopXG4oKiBEaWZmZXIgZnJvbSBQcmludGYub3V0cHV0X2FjYyBieSB0aGUgaW50ZXJwcmV0YXRpb24gb2YgZm9ybWF0dGluZy4gKilcbigqIFVzZWQgYXMgYSBjb250aW51YXRpb24gb2YgQ2FtbGludGVybmFsRm9ybWF0Lm1ha2VfcHJpbnRmLiAqKVxubGV0IHJlYyBvdXRwdXRfYWNjIHBwZiBhY2MgPSBtYXRjaCBhY2Mgd2l0aFxuICB8IEFjY19zdHJpbmdfbGl0ZXJhbCAoQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBNYWdpY19zaXplIChfLCBzaXplKSksIHMpXG4gIHwgQWNjX2RhdGFfc3RyaW5nIChBY2NfZm9ybWF0dGluZ19saXQgKHAsIE1hZ2ljX3NpemUgKF8sIHNpemUpKSwgcykgLT5cbiAgICBvdXRwdXRfYWNjIHBwZiBwO1xuICAgIHBwX3ByaW50X2FzX3NpemUgcHBmIChTaXplLm9mX2ludCBzaXplKSBzO1xuICB8IEFjY19jaGFyX2xpdGVyYWwgKEFjY19mb3JtYXR0aW5nX2xpdCAocCwgTWFnaWNfc2l6ZSAoXywgc2l6ZSkpLCBjKVxuICB8IEFjY19kYXRhX2NoYXIgKEFjY19mb3JtYXR0aW5nX2xpdCAocCwgTWFnaWNfc2l6ZSAoXywgc2l6ZSkpLCBjKSAtPlxuICAgIG91dHB1dF9hY2MgcHBmIHA7XG4gICAgcHBfcHJpbnRfYXNfc2l6ZSBwcGYgKFNpemUub2ZfaW50IHNpemUpIChTdHJpbmcubWFrZSAxIGMpO1xuICB8IEFjY19mb3JtYXR0aW5nX2xpdCAocCwgZikgLT5cbiAgICBvdXRwdXRfYWNjIHBwZiBwO1xuICAgIG91dHB1dF9mb3JtYXR0aW5nX2xpdCBwcGYgZjtcbiAgfCBBY2NfZm9ybWF0dGluZ19nZW4gKHAsIEFjY19vcGVuX3RhZyBhY2MnKSAtPlxuICAgIG91dHB1dF9hY2MgcHBmIHA7XG4gICAgcHBfb3Blbl9zdGFnIHBwZiAoU3RyaW5nX3RhZyAoY29tcHV0ZV90YWcgb3V0cHV0X2FjYyBhY2MnKSlcbiAgfCBBY2NfZm9ybWF0dGluZ19nZW4gKHAsIEFjY19vcGVuX2JveCBhY2MnKSAtPlxuICAgIG91dHB1dF9hY2MgcHBmIHA7XG4gICAgbGV0IChpbmRlbnQsIGJ0eSkgPSBvcGVuX2JveF9vZl9zdHJpbmcgKGNvbXB1dGVfdGFnIG91dHB1dF9hY2MgYWNjJykgaW5cbiAgICBwcF9vcGVuX2JveF9nZW4gcHBmIGluZGVudCBidHlcbiAgfCBBY2Nfc3RyaW5nX2xpdGVyYWwgKHAsIHMpXG4gIHwgQWNjX2RhdGFfc3RyaW5nIChwLCBzKSAgIC0+IG91dHB1dF9hY2MgcHBmIHA7IHBwX3ByaW50X3N0cmluZyBwcGYgcztcbiAgfCBBY2NfY2hhcl9saXRlcmFsIChwLCBjKVxuICB8IEFjY19kYXRhX2NoYXIgKHAsIGMpICAgICAtPiBvdXRwdXRfYWNjIHBwZiBwOyBwcF9wcmludF9jaGFyIHBwZiBjO1xuICB8IEFjY19kZWxheSAocCwgZikgICAgICAgICAtPiBvdXRwdXRfYWNjIHBwZiBwOyBmIHBwZjtcbiAgfCBBY2NfZmx1c2ggcCAgICAgICAgICAgICAgLT4gb3V0cHV0X2FjYyBwcGYgcDsgcHBfcHJpbnRfZmx1c2ggcHBmICgpO1xuICB8IEFjY19pbnZhbGlkX2FyZyAocCwgbXNnKSAtPiBvdXRwdXRfYWNjIHBwZiBwOyBpbnZhbGlkX2FyZyBtc2c7XG4gIHwgRW5kX29mX2FjYyAgICAgICAgICAgICAgIC0+ICgpXG5cbigqIFJlY3Vyc2l2ZWx5IG91dHB1dCBhbiBcImFjY3VtdWxhdG9yXCIgY29udGFpbmluZyBhIHJldmVyc2VkIGxpc3Qgb2ZcbiAgIHByaW50aW5nIGVudGl0aWVzIChzdHJpbmcsIGNoYXIsIGZsdXMsIC4uLikgaW4gYSBidWZmZXIuICopXG4oKiBEaWZmZXIgZnJvbSBQcmludGYuYnVmcHV0X2FjYyBieSB0aGUgaW50ZXJwcmV0YXRpb24gb2YgZm9ybWF0dGluZy4gKilcbigqIFVzZWQgYXMgYSBjb250aW51YXRpb24gb2YgQ2FtbGludGVybmFsRm9ybWF0Lm1ha2VfcHJpbnRmLiAqKVxubGV0IHJlYyBzdHJwdXRfYWNjIHBwZiBhY2MgPSBtYXRjaCBhY2Mgd2l0aFxuICB8IEFjY19zdHJpbmdfbGl0ZXJhbCAoQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBNYWdpY19zaXplIChfLCBzaXplKSksIHMpXG4gIHwgQWNjX2RhdGFfc3RyaW5nIChBY2NfZm9ybWF0dGluZ19saXQgKHAsIE1hZ2ljX3NpemUgKF8sIHNpemUpKSwgcykgLT5cbiAgICBzdHJwdXRfYWNjIHBwZiBwO1xuICAgIHBwX3ByaW50X2FzX3NpemUgcHBmIChTaXplLm9mX2ludCBzaXplKSBzO1xuICB8IEFjY19jaGFyX2xpdGVyYWwgKEFjY19mb3JtYXR0aW5nX2xpdCAocCwgTWFnaWNfc2l6ZSAoXywgc2l6ZSkpLCBjKVxuICB8IEFjY19kYXRhX2NoYXIgKEFjY19mb3JtYXR0aW5nX2xpdCAocCwgTWFnaWNfc2l6ZSAoXywgc2l6ZSkpLCBjKSAtPlxuICAgIHN0cnB1dF9hY2MgcHBmIHA7XG4gICAgcHBfcHJpbnRfYXNfc2l6ZSBwcGYgKFNpemUub2ZfaW50IHNpemUpIChTdHJpbmcubWFrZSAxIGMpO1xuICB8IEFjY19kZWxheSAoQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBNYWdpY19zaXplIChfLCBzaXplKSksIGYpIC0+XG4gICAgc3RycHV0X2FjYyBwcGYgcDtcbiAgICBwcF9wcmludF9hc19zaXplIHBwZiAoU2l6ZS5vZl9pbnQgc2l6ZSkgKGYgKCkpO1xuICB8IEFjY19mb3JtYXR0aW5nX2xpdCAocCwgZikgLT5cbiAgICBzdHJwdXRfYWNjIHBwZiBwO1xuICAgIG91dHB1dF9mb3JtYXR0aW5nX2xpdCBwcGYgZjtcbiAgfCBBY2NfZm9ybWF0dGluZ19nZW4gKHAsIEFjY19vcGVuX3RhZyBhY2MnKSAtPlxuICAgIHN0cnB1dF9hY2MgcHBmIHA7XG4gICAgcHBfb3Blbl9zdGFnIHBwZiAoU3RyaW5nX3RhZyAoY29tcHV0ZV90YWcgc3RycHV0X2FjYyBhY2MnKSlcbiAgfCBBY2NfZm9ybWF0dGluZ19nZW4gKHAsIEFjY19vcGVuX2JveCBhY2MnKSAtPlxuICAgIHN0cnB1dF9hY2MgcHBmIHA7XG4gICAgbGV0IChpbmRlbnQsIGJ0eSkgPSBvcGVuX2JveF9vZl9zdHJpbmcgKGNvbXB1dGVfdGFnIHN0cnB1dF9hY2MgYWNjJykgaW5cbiAgICBwcF9vcGVuX2JveF9nZW4gcHBmIGluZGVudCBidHlcbiAgfCBBY2Nfc3RyaW5nX2xpdGVyYWwgKHAsIHMpXG4gIHwgQWNjX2RhdGFfc3RyaW5nIChwLCBzKSAgIC0+IHN0cnB1dF9hY2MgcHBmIHA7IHBwX3ByaW50X3N0cmluZyBwcGYgcztcbiAgfCBBY2NfY2hhcl9saXRlcmFsIChwLCBjKVxuICB8IEFjY19kYXRhX2NoYXIgKHAsIGMpICAgICAtPiBzdHJwdXRfYWNjIHBwZiBwOyBwcF9wcmludF9jaGFyIHBwZiBjO1xuICB8IEFjY19kZWxheSAocCwgZikgICAgICAgICAtPiBzdHJwdXRfYWNjIHBwZiBwOyBwcF9wcmludF9zdHJpbmcgcHBmIChmICgpKTtcbiAgfCBBY2NfZmx1c2ggcCAgICAgICAgICAgICAgLT4gc3RycHV0X2FjYyBwcGYgcDsgcHBfcHJpbnRfZmx1c2ggcHBmICgpO1xuICB8IEFjY19pbnZhbGlkX2FyZyAocCwgbXNnKSAtPiBzdHJwdXRfYWNjIHBwZiBwOyBpbnZhbGlkX2FyZyBtc2c7XG4gIHwgRW5kX29mX2FjYyAgICAgICAgICAgICAgIC0+ICgpXG5cbigqXG5cbiAgRGVmaW5pbmcgW2ZwcmludGZdIGFuZCB2YXJpb3VzIGZsYXZvcnMgb2YgW2ZwcmludGZdLlxuXG4qKVxuXG5sZXQga2ZwcmludGYgayBwcGYgKEZvcm1hdCAoZm10LCBfKSkgPVxuICBtYWtlX3ByaW50ZlxuICAgIChmdW4gYWNjIC0+IG91dHB1dF9hY2MgcHBmIGFjYzsgayBwcGYpXG4gICAgRW5kX29mX2FjYyBmbXRcblxuYW5kIGlrZnByaW50ZiBrIHBwZiAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIG1ha2VfaXByaW50ZiBrIHBwZiBmbXRcblxubGV0IGlmcHJpbnRmIF9wcGYgKEZvcm1hdCAoZm10LCBfKSkgPVxuICBtYWtlX2lwcmludGYgaWdub3JlICgpIGZtdFxuXG5sZXQgZnByaW50ZiBwcGYgPSBrZnByaW50ZiBpZ25vcmUgcHBmXG5sZXQgcHJpbnRmIGZtdCA9IGZwcmludGYgc3RkX2Zvcm1hdHRlciBmbXRcbmxldCBlcHJpbnRmIGZtdCA9IGZwcmludGYgZXJyX2Zvcm1hdHRlciBmbXRcblxubGV0IGtkcHJpbnRmIGsgKEZvcm1hdCAoZm10LCBfKSkgPVxuICBtYWtlX3ByaW50ZlxuICAgIChmdW4gYWNjIC0+IGsgKGZ1biBwcGYgLT4gb3V0cHV0X2FjYyBwcGYgYWNjKSlcbiAgICBFbmRfb2ZfYWNjIGZtdFxuXG5sZXQgZHByaW50ZiBmbXQgPSBrZHByaW50ZiAoZnVuIGkgLT4gaSkgZm10XG5cbmxldCBrc3ByaW50ZiBrIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbGV0IGIgPSBwcF9tYWtlX2J1ZmZlciAoKSBpblxuICBsZXQgcHBmID0gZm9ybWF0dGVyX29mX2J1ZmZlciBiIGluXG4gIGxldCBrIGFjYyA9XG4gICAgc3RycHV0X2FjYyBwcGYgYWNjO1xuICAgIGsgKGZsdXNoX2J1ZmZlcl9mb3JtYXR0ZXIgYiBwcGYpIGluXG4gIG1ha2VfcHJpbnRmIGsgRW5kX29mX2FjYyBmbXRcblxuXG5sZXQgc3ByaW50ZiBmbXQgPSBrc3ByaW50ZiBpZCBmbXRcblxubGV0IGthc3ByaW50ZiBrIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbGV0IGIgPSBwcF9tYWtlX2J1ZmZlciAoKSBpblxuICBsZXQgcHBmID0gZm9ybWF0dGVyX29mX2J1ZmZlciBiIGluXG4gIGxldCBrIGFjYyA9XG4gICAgb3V0cHV0X2FjYyBwcGYgYWNjO1xuICAgIGsgKGZsdXNoX2J1ZmZlcl9mb3JtYXR0ZXIgYiBwcGYpIGluXG4gIG1ha2VfcHJpbnRmIGsgRW5kX29mX2FjYyBmbXRcblxuXG5sZXQgYXNwcmludGYgZm10ID0ga2FzcHJpbnRmIGlkIGZtdFxuXG4oKiBGbHVzaGluZyBzdGFuZGFyZCBmb3JtYXR0ZXJzIGF0IGVuZCBvZiBleGVjdXRpb24uICopXG5cbmxldCBmbHVzaF9zdGFuZGFyZF9mb3JtYXR0ZXJzICgpID1cbiAgcHBfcHJpbnRfZmx1c2ggc3RkX2Zvcm1hdHRlciAoKTtcbiAgcHBfcHJpbnRfZmx1c2ggZXJyX2Zvcm1hdHRlciAoKVxuXG5sZXQgKCkgPSBhdF9leGl0IGZsdXNoX3N0YW5kYXJkX2Zvcm1hdHRlcnNcblxuKCpcblxuICBEZXByZWNhdGVkIHN0dWZmLlxuXG4qKVxuXG4oKiBEZXByZWNhdGVkIDogc3Vic3VtZWQgYnkgcHBfc2V0X2Zvcm1hdHRlcl9vdXRfZnVuY3Rpb25zICopXG5sZXQgcHBfc2V0X2FsbF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyBzdGF0ZVxuICAgIH5vdXQ6ZiB+Zmx1c2g6ZyB+bmV3bGluZTpoIH5zcGFjZXM6aSA9XG4gIHBwX3NldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyBzdGF0ZSBmIGc7XG4gIHN0YXRlLnBwX291dF9uZXdsaW5lIDwtIGg7XG4gIHN0YXRlLnBwX291dF9zcGFjZXMgPC0gaVxuXG4oKiBEZXByZWNhdGVkIDogc3Vic3VtZWQgYnkgcHBfZ2V0X2Zvcm1hdHRlcl9vdXRfZnVuY3Rpb25zICopXG5sZXQgcHBfZ2V0X2FsbF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyBzdGF0ZSAoKSA9XG4gIChzdGF0ZS5wcF9vdXRfc3RyaW5nLCBzdGF0ZS5wcF9vdXRfZmx1c2gsXG4gICBzdGF0ZS5wcF9vdXRfbmV3bGluZSwgc3RhdGUucHBfb3V0X3NwYWNlcylcblxuXG4oKiBEZXByZWNhdGVkIDogc3Vic3VtZWQgYnkgc2V0X2Zvcm1hdHRlcl9vdXRfZnVuY3Rpb25zICopXG5sZXQgc2V0X2FsbF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyA9XG4gIHBwX3NldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgc3RkX2Zvcm1hdHRlclxuXG5cbigqIERlcHJlY2F0ZWQgOiBzdWJzdW1lZCBieSBnZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMgKilcbmxldCBnZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zID1cbiAgcHBfZ2V0X2FsbF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyBzdGRfZm9ybWF0dGVyXG5cblxuKCogRGVwcmVjYXRlZCA6IGVycm9yIHByb25lIGZ1bmN0aW9uLCBkbyBub3QgdXNlIGl0LlxuICAgVGhpcyBmdW5jdGlvbiBpcyBuZWl0aGVyIGNvbXBvc2l0aW9uYWwgbm9yIGluY3JlbWVudGFsLCBzaW5jZSBpdCBmbHVzaGVzXG4gICB0aGUgcHJldHR5LXByaW50ZXIgcXVldWUgYXQgZWFjaCBjYWxsLlxuICAgVG8gZ2V0IHRoZSBzYW1lIGZ1bmN0aW9uYWxpdHksIGRlZmluZSBhIGZvcm1hdHRlciBvZiB5b3VyIG93biB3cml0aW5nIHRvXG4gICB0aGUgYnVmZmVyIGFyZ3VtZW50LCBhcyBpblxuICAgbGV0IHBwZiA9IGZvcm1hdHRlcl9vZl9idWZmZXIgYlxuICAgdGhlbiB1c2UgeyFmcHJpbnRmIHBwZn0gYXMgdXN1YWwuICopXG5sZXQgYnByaW50ZiBiIChGb3JtYXQgKGZtdCwgXykgOiAoJ2EsIGZvcm1hdHRlciwgdW5pdCkgZm9ybWF0KSA9XG4gIGxldCBwcGYgPSBmb3JtYXR0ZXJfb2ZfYnVmZmVyIGIgaW5cbiAgbGV0IGsgYWNjID0gb3V0cHV0X2FjYyBwcGYgYWNjOyBwcF9mbHVzaF9xdWV1ZSBwcGYgZmFsc2UgaW5cbiAgbWFrZV9wcmludGYgayBFbmRfb2ZfYWNjIGZtdFxuXG5cbigqIERlcHJlY2F0ZWQgOiBhbGlhcyBmb3Iga3NwcmludGYuICopXG5sZXQga3ByaW50ZiA9IGtzcHJpbnRmXG5cblxuXG4oKiBEZXByZWNhdGVkIHRhZyBmdW5jdGlvbnMgKilcblxudHlwZSBmb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyA9IHtcbiAgbWFya19vcGVuX3RhZyA6IHRhZyAtPiBzdHJpbmc7XG4gIG1hcmtfY2xvc2VfdGFnIDogdGFnIC0+IHN0cmluZztcbiAgcHJpbnRfb3Blbl90YWcgOiB0YWcgLT4gdW5pdDtcbiAgcHJpbnRfY2xvc2VfdGFnIDogdGFnIC0+IHVuaXQ7XG59XG5cblxubGV0IHBwX3NldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyBzdGF0ZSB7XG4gICAgIG1hcmtfb3Blbl90YWcgPSBtb3Q7XG4gICAgIG1hcmtfY2xvc2VfdGFnID0gbWN0O1xuICAgICBwcmludF9vcGVuX3RhZyA9IHBvdDtcbiAgICAgcHJpbnRfY2xvc2VfdGFnID0gcGN0O1xuICAgfSA9XG4gIGxldCBzdHJpbmdpZnkgZiBlID0gZnVuY3Rpb24gU3RyaW5nX3RhZyBzIC0+IGYgcyB8IF8gLT4gZSBpblxuICBzdGF0ZS5wcF9tYXJrX29wZW5fdGFnIDwtIHN0cmluZ2lmeSBtb3QgXCJcIjtcbiAgc3RhdGUucHBfbWFya19jbG9zZV90YWcgPC0gc3RyaW5naWZ5IG1jdCBcIlwiO1xuICBzdGF0ZS5wcF9wcmludF9vcGVuX3RhZyA8LSBzdHJpbmdpZnkgcG90ICgpO1xuICBzdGF0ZS5wcF9wcmludF9jbG9zZV90YWcgPC0gc3RyaW5naWZ5IHBjdCAoKVxuXG5sZXQgcHBfZ2V0X2Zvcm1hdHRlcl90YWdfZnVuY3Rpb25zIGZtdCAoKSA9XG4gIGxldCBmdW5zID0gcHBfZ2V0X2Zvcm1hdHRlcl9zdGFnX2Z1bmN0aW9ucyBmbXQgKCkgaW5cbiAgbGV0IG1hcmtfb3Blbl90YWcgcyA9IGZ1bnMubWFya19vcGVuX3N0YWcgKFN0cmluZ190YWcgcykgaW5cbiAgbGV0IG1hcmtfY2xvc2VfdGFnIHMgPSBmdW5zLm1hcmtfY2xvc2Vfc3RhZyAoU3RyaW5nX3RhZyBzKSBpblxuICBsZXQgcHJpbnRfb3Blbl90YWcgcyA9IGZ1bnMucHJpbnRfb3Blbl9zdGFnIChTdHJpbmdfdGFnIHMpIGluXG4gIGxldCBwcmludF9jbG9zZV90YWcgcyA9IGZ1bnMucHJpbnRfY2xvc2Vfc3RhZyAoU3RyaW5nX3RhZyBzKSBpblxuICB7bWFya19vcGVuX3RhZzsgbWFya19jbG9zZV90YWc7IHByaW50X29wZW5fdGFnOyBwcmludF9jbG9zZV90YWd9XG5cbmxldCBzZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMgPVxuICBwcF9zZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMgc3RkX2Zvcm1hdHRlclxuYW5kIGdldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyA9XG4gIHBwX2dldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyBzdGRfZm9ybWF0dGVyXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBQaWVycmUgV2VpcywgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDAyIEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbm9wZW4gQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzXG5vcGVuIENhbWxpbnRlcm5hbEZvcm1hdFxuXG4oKiBhbGlhcyB0byBhdm9pZCB3YXJuaW5nIGZvciBhbWJpZ3VpdHkgYmV0d2VlblxuICAgU3RkbGliLmZvcm1hdDZcbiAgIGFuZCBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3MuZm9ybWF0NlxuXG4gICAodGhlIGZvcm1lciBpcyBpbiBmYWN0IGFuIGFsaWFzIGZvciB0aGUgbGF0dGVyLFxuICAgIGJ1dCB0aGUgYW1iaWd1aXR5IHdhcm5pbmcgZG9lc24ndCBjYXJlKVxuKilcbnR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgPVxuICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgU3RkbGliLmZvcm1hdDZcblxuXG4oKiBUaGUgcnVuLXRpbWUgbGlicmFyeSBmb3Igc2Nhbm5lcnMuICopXG5cbigqIFNjYW5uaW5nIGJ1ZmZlcnMuICopXG5tb2R1bGUgdHlwZSBTQ0FOTklORyA9IHNpZ1xuXG4gIHR5cGUgaW5fY2hhbm5lbFxuXG4gIHR5cGUgc2NhbmJ1ZiA9IGluX2NoYW5uZWxcblxuICB0eXBlIGZpbGVfbmFtZSA9IHN0cmluZ1xuXG4gIHZhbCBzdGRpbiA6IGluX2NoYW5uZWxcbiAgKCogVGhlIHNjYW5uaW5nIGJ1ZmZlciByZWFkaW5nIGZyb20gW1N0ZGxpYi5zdGRpbl0uXG4gICAgIFtzdGRpYl0gaXMgZXF1aXZhbGVudCB0byBbU2Nhbm5pbmcuZnJvbV9jaGFubmVsIFN0ZGxpYi5zdGRpbl0uICopXG5cbiAgdmFsIHN0ZGliIDogaW5fY2hhbm5lbFxuICAoKiBBbiBhbGlhcyBmb3IgW1NjYW5mLnN0ZGluXSwgdGhlIHNjYW5uaW5nIGJ1ZmZlciByZWFkaW5nIGZyb21cbiAgICAgW1N0ZGxpYi5zdGRpbl0uICopXG5cbiAgdmFsIG5leHRfY2hhciA6IHNjYW5idWYgLT4gY2hhclxuICAoKiBbU2Nhbm5pbmcubmV4dF9jaGFyIGliXSBhZHZhbmNlIHRoZSBzY2FubmluZyBidWZmZXIgZm9yXG4gICAgIG9uZSBjaGFyYWN0ZXIuXG4gICAgIElmIG5vIG1vcmUgY2hhcmFjdGVyIGNhbiBiZSByZWFkLCBzZXRzIGEgZW5kIG9mIGZpbGUgY29uZGl0aW9uIGFuZFxuICAgICByZXR1cm5zICdcXDAwMCcuICopXG5cbiAgdmFsIGludmFsaWRhdGVfY3VycmVudF9jaGFyIDogc2NhbmJ1ZiAtPiB1bml0XG4gICgqIFtTY2FubmluZy5pbnZhbGlkYXRlX2N1cnJlbnRfY2hhciBpYl0gbWFyayB0aGUgY3VycmVudF9jaGFyIGFzIGFscmVhZHlcbiAgICAgc2Nhbm5lZC4gKilcblxuICB2YWwgcGVla19jaGFyIDogc2NhbmJ1ZiAtPiBjaGFyXG4gICgqIFtTY2FubmluZy5wZWVrX2NoYXIgaWJdIHJldHVybnMgdGhlIGN1cnJlbnQgY2hhciBhdmFpbGFibGUgaW5cbiAgICAgdGhlIGJ1ZmZlciBvciByZWFkcyBvbmUgaWYgbmVjZXNzYXJ5ICh3aGVuIHRoZSBjdXJyZW50IGNoYXJhY3RlciBpc1xuICAgICBhbHJlYWR5IHNjYW5uZWQpLlxuICAgICBJZiBubyBjaGFyYWN0ZXIgY2FuIGJlIHJlYWQsIHNldHMgYW4gZW5kIG9mIGZpbGUgY29uZGl0aW9uIGFuZFxuICAgICByZXR1cm5zICdcXDAwMCcuICopXG5cbiAgdmFsIGNoZWNrZWRfcGVla19jaGFyIDogc2NhbmJ1ZiAtPiBjaGFyXG4gICgqIFNhbWUgYXMgW1NjYW5uaW5nLnBlZWtfY2hhcl0gYWJvdmUgYnV0IGFsd2F5cyByZXR1cm5zIGEgdmFsaWQgY2hhciBvclxuICAgICBmYWlsczogaW5zdGVhZCBvZiByZXR1cm5pbmcgYSBudWxsIGNoYXIgd2hlbiB0aGUgcmVhZGluZyBtZXRob2Qgb2YgdGhlXG4gICAgIGlucHV0IGJ1ZmZlciBoYXMgcmVhY2hlZCBhbiBlbmQgb2YgZmlsZSwgdGhlIGZ1bmN0aW9uIHJhaXNlcyBleGNlcHRpb25cbiAgICAgW0VuZF9vZl9maWxlXS4gKilcblxuICB2YWwgc3RvcmVfY2hhciA6IGludCAtPiBzY2FuYnVmIC0+IGNoYXIgLT4gaW50XG4gICgqIFtTY2FubmluZy5zdG9yZV9jaGFyIGxpbSBpYiBjXSBhZGRzIFtjXSB0byB0aGUgdG9rZW4gYnVmZmVyXG4gICAgIG9mIHRoZSBzY2FubmluZyBidWZmZXIgW2liXS4gSXQgYWxzbyBhZHZhbmNlcyB0aGUgc2Nhbm5pbmcgYnVmZmVyIGZvclxuICAgICBvbmUgY2hhcmFjdGVyIGFuZCByZXR1cm5zIFtsaW0gLSAxXSwgaW5kaWNhdGluZyB0aGUgbmV3IGxpbWl0IGZvciB0aGVcbiAgICAgbGVuZ3RoIG9mIHRoZSBjdXJyZW50IHRva2VuLiAqKVxuXG4gIHZhbCBza2lwX2NoYXIgOiBpbnQgLT4gc2NhbmJ1ZiAtPiBpbnRcbiAgKCogW1NjYW5uaW5nLnNraXBfY2hhciBsaW0gaWJdIGlnbm9yZXMgdGhlIGN1cnJlbnQgY2hhcmFjdGVyLiAqKVxuXG4gIHZhbCBpZ25vcmVfY2hhciA6IGludCAtPiBzY2FuYnVmIC0+IGludFxuICAoKiBbU2Nhbm5pbmcuaWdub3JlX2NoYXIgaWIgbGltXSBpZ25vcmVzIHRoZSBjdXJyZW50IGNoYXJhY3RlciBhbmRcbiAgICAgZGVjcmVtZW50cyB0aGUgbGltaXQuICopXG5cbiAgdmFsIHRva2VuIDogc2NhbmJ1ZiAtPiBzdHJpbmdcbiAgKCogW1NjYW5uaW5nLnRva2VuIGliXSByZXR1cm5zIHRoZSBzdHJpbmcgc3RvcmVkIGludG8gdGhlIHRva2VuXG4gICAgIGJ1ZmZlciBvZiB0aGUgc2Nhbm5pbmcgYnVmZmVyOiBpdCByZXR1cm5zIHRoZSB0b2tlbiBtYXRjaGVkIGJ5IHRoZVxuICAgICBmb3JtYXQuICopXG5cbiAgdmFsIHJlc2V0X3Rva2VuIDogc2NhbmJ1ZiAtPiB1bml0XG4gICgqIFtTY2FubmluZy5yZXNldF90b2tlbiBpYl0gcmVzZXRzIHRoZSB0b2tlbiBidWZmZXIgb2ZcbiAgICAgdGhlIGdpdmVuIHNjYW5uaW5nIGJ1ZmZlci4gKilcblxuICB2YWwgY2hhcl9jb3VudCA6IHNjYW5idWYgLT4gaW50XG4gICgqIFtTY2FubmluZy5jaGFyX2NvdW50IGliXSByZXR1cm5zIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVyc1xuICAgICByZWFkIHNvIGZhciBmcm9tIHRoZSBnaXZlbiBidWZmZXIuICopXG5cbiAgdmFsIGxpbmVfY291bnQgOiBzY2FuYnVmIC0+IGludFxuICAoKiBbU2Nhbm5pbmcubGluZV9jb3VudCBpYl0gcmV0dXJucyB0aGUgbnVtYmVyIG9mIG5ldyBsaW5lXG4gICAgIGNoYXJhY3RlcnMgcmVhZCBzbyBmYXIgZnJvbSB0aGUgZ2l2ZW4gYnVmZmVyLiAqKVxuXG4gIHZhbCB0b2tlbl9jb3VudCA6IHNjYW5idWYgLT4gaW50XG4gICgqIFtTY2FubmluZy50b2tlbl9jb3VudCBpYl0gcmV0dXJucyB0aGUgbnVtYmVyIG9mIHRva2VucyByZWFkXG4gICAgIHNvIGZhciBmcm9tIFtpYl0uICopXG5cbiAgdmFsIGVvZiA6IHNjYW5idWYgLT4gYm9vbFxuICAoKiBbU2Nhbm5pbmcuZW9mIGliXSByZXR1cm5zIHRoZSBlbmQgb2YgaW5wdXQgY29uZGl0aW9uXG4gICAgIG9mIHRoZSBnaXZlbiBidWZmZXIuICopXG5cbiAgdmFsIGVuZF9vZl9pbnB1dCA6IHNjYW5idWYgLT4gYm9vbFxuICAoKiBbU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliXSB0ZXN0cyB0aGUgZW5kIG9mIGlucHV0IGNvbmRpdGlvblxuICAgICBvZiB0aGUgZ2l2ZW4gYnVmZmVyIChpZiBubyBjaGFyIGhhcyBldmVyIGJlZW4gcmVhZCwgYW4gYXR0ZW1wdCB0b1xuICAgICByZWFkIG9uZSBpcyBwZXJmb3JtZWQpLiAqKVxuXG4gIHZhbCBiZWdpbm5pbmdfb2ZfaW5wdXQgOiBzY2FuYnVmIC0+IGJvb2xcbiAgKCogW1NjYW5uaW5nLmJlZ2lubmluZ19vZl9pbnB1dCBpYl0gdGVzdHMgdGhlIGJlZ2lubmluZyBvZiBpbnB1dFxuICAgICBjb25kaXRpb24gb2YgdGhlIGdpdmVuIGJ1ZmZlci4gKilcblxuICB2YWwgbmFtZV9vZl9pbnB1dCA6IHNjYW5idWYgLT4gc3RyaW5nXG4gICgqIFtTY2FubmluZy5uYW1lX29mX2lucHV0IGliXSByZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBjaGFyYWN0ZXJcbiAgICAgc291cmNlIGZvciBpbnB1dCBidWZmZXIgW2liXS4gKilcblxuICB2YWwgb3Blbl9pbiA6IGZpbGVfbmFtZSAtPiBpbl9jaGFubmVsXG4gIHZhbCBvcGVuX2luX2JpbiA6IGZpbGVfbmFtZSAtPiBpbl9jaGFubmVsXG4gIHZhbCBmcm9tX2ZpbGUgOiBmaWxlX25hbWUgLT4gaW5fY2hhbm5lbFxuICB2YWwgZnJvbV9maWxlX2JpbiA6IGZpbGVfbmFtZSAtPiBpbl9jaGFubmVsXG4gIHZhbCBmcm9tX3N0cmluZyA6IHN0cmluZyAtPiBpbl9jaGFubmVsXG4gIHZhbCBmcm9tX2Z1bmN0aW9uIDogKHVuaXQgLT4gY2hhcikgLT4gaW5fY2hhbm5lbFxuICB2YWwgZnJvbV9jaGFubmVsIDogU3RkbGliLmluX2NoYW5uZWwgLT4gaW5fY2hhbm5lbFxuXG4gIHZhbCBjbG9zZV9pbiA6IGluX2NoYW5uZWwgLT4gdW5pdFxuXG4gIHZhbCBtZW1vX2Zyb21fY2hhbm5lbCA6IFN0ZGxpYi5pbl9jaGFubmVsIC0+IGluX2NoYW5uZWxcbiAgKCogT2Jzb2xldGUuICopXG5cbmVuZFxuXG5cbm1vZHVsZSBTY2FubmluZyA6IFNDQU5OSU5HID0gc3RydWN0XG5cbiAgKCogVGhlIHJ1bi10aW1lIGxpYnJhcnkgZm9yIHNjYW5mLiAqKVxuXG4gIHR5cGUgZmlsZV9uYW1lID0gc3RyaW5nXG5cbiAgdHlwZSBpbl9jaGFubmVsX25hbWUgPVxuICAgIHwgRnJvbV9jaGFubmVsIG9mIFN0ZGxpYi5pbl9jaGFubmVsXG4gICAgfCBGcm9tX2ZpbGUgb2YgZmlsZV9uYW1lICogU3RkbGliLmluX2NoYW5uZWxcbiAgICB8IEZyb21fZnVuY3Rpb25cbiAgICB8IEZyb21fc3RyaW5nXG5cblxuICB0eXBlIGluX2NoYW5uZWwgPSB7XG4gICAgbXV0YWJsZSBpY19lb2YgOiBib29sO1xuICAgIG11dGFibGUgaWNfY3VycmVudF9jaGFyIDogY2hhcjtcbiAgICBtdXRhYmxlIGljX2N1cnJlbnRfY2hhcl9pc192YWxpZCA6IGJvb2w7XG4gICAgbXV0YWJsZSBpY19jaGFyX2NvdW50IDogaW50O1xuICAgIG11dGFibGUgaWNfbGluZV9jb3VudCA6IGludDtcbiAgICBtdXRhYmxlIGljX3Rva2VuX2NvdW50IDogaW50O1xuICAgIGljX2dldF9uZXh0X2NoYXIgOiB1bml0IC0+IGNoYXI7XG4gICAgaWNfdG9rZW5fYnVmZmVyIDogQnVmZmVyLnQ7XG4gICAgaWNfaW5wdXRfbmFtZSA6IGluX2NoYW5uZWxfbmFtZTtcbiAgfVxuXG5cbiAgdHlwZSBzY2FuYnVmID0gaW5fY2hhbm5lbFxuXG4gIGxldCBudWxsX2NoYXIgPSAnXFwwMDAnXG5cbiAgKCogUmVhZHMgYSBuZXcgY2hhcmFjdGVyIGZyb20gaW5wdXQgYnVmZmVyLlxuICAgICBOZXh0X2NoYXIgbmV2ZXIgZmFpbHMsIGV2ZW4gaW4gY2FzZSBvZiBlbmQgb2YgaW5wdXQ6XG4gICAgIGl0IHRoZW4gc2ltcGx5IHNldHMgdGhlIGVuZCBvZiBmaWxlIGNvbmRpdGlvbi4gKilcbiAgbGV0IG5leHRfY2hhciBpYiA9XG4gICAgdHJ5XG4gICAgICBsZXQgYyA9IGliLmljX2dldF9uZXh0X2NoYXIgKCkgaW5cbiAgICAgIGliLmljX2N1cnJlbnRfY2hhciA8LSBjO1xuICAgICAgaWIuaWNfY3VycmVudF9jaGFyX2lzX3ZhbGlkIDwtIHRydWU7XG4gICAgICBpYi5pY19jaGFyX2NvdW50IDwtIHN1Y2MgaWIuaWNfY2hhcl9jb3VudDtcbiAgICAgIGlmIGMgPSAnXFxuJyB0aGVuIGliLmljX2xpbmVfY291bnQgPC0gc3VjYyBpYi5pY19saW5lX2NvdW50O1xuICAgICAgYyB3aXRoXG4gICAgfCBFbmRfb2ZfZmlsZSAtPlxuICAgICAgbGV0IGMgPSBudWxsX2NoYXIgaW5cbiAgICAgIGliLmljX2N1cnJlbnRfY2hhciA8LSBjO1xuICAgICAgaWIuaWNfY3VycmVudF9jaGFyX2lzX3ZhbGlkIDwtIGZhbHNlO1xuICAgICAgaWIuaWNfZW9mIDwtIHRydWU7XG4gICAgICBjXG5cblxuICBsZXQgcGVla19jaGFyIGliID1cbiAgICBpZiBpYi5pY19jdXJyZW50X2NoYXJfaXNfdmFsaWRcbiAgICB0aGVuIGliLmljX2N1cnJlbnRfY2hhclxuICAgIGVsc2UgbmV4dF9jaGFyIGliXG5cblxuICAoKiBSZXR1cm5zIGEgdmFsaWQgY3VycmVudCBjaGFyIGZvciB0aGUgaW5wdXQgYnVmZmVyLiBJbiBwYXJ0aWN1bGFyXG4gICAgIG5vIGlycmVsZXZhbnQgbnVsbCBjaGFyYWN0ZXIgKGFzIHNldCBieSBbbmV4dF9jaGFyXSBpbiBjYXNlIG9mIGVuZFxuICAgICBvZiBpbnB1dCkgaXMgcmV0dXJuZWQsIHNpbmNlIFtFbmRfb2ZfZmlsZV0gaXMgcmFpc2VkIHdoZW5cbiAgICAgW25leHRfY2hhcl0gc2V0cyB0aGUgZW5kIG9mIGZpbGUgY29uZGl0aW9uIHdoaWxlIHRyeWluZyB0byByZWFkIGFcbiAgICAgbmV3IGNoYXJhY3Rlci4gKilcbiAgbGV0IGNoZWNrZWRfcGVla19jaGFyIGliID1cbiAgICBsZXQgYyA9IHBlZWtfY2hhciBpYiBpblxuICAgIGlmIGliLmljX2VvZiB0aGVuIHJhaXNlIEVuZF9vZl9maWxlO1xuICAgIGNcblxuXG4gIGxldCBlbmRfb2ZfaW5wdXQgaWIgPVxuICAgIGlnbm9yZSAocGVla19jaGFyIGliKTtcbiAgICBpYi5pY19lb2ZcblxuXG4gIGxldCBlb2YgaWIgPSBpYi5pY19lb2ZcblxuICBsZXQgYmVnaW5uaW5nX29mX2lucHV0IGliID0gaWIuaWNfY2hhcl9jb3VudCA9IDBcblxuICBsZXQgbmFtZV9vZl9pbnB1dCBpYiA9XG4gICAgbWF0Y2ggaWIuaWNfaW5wdXRfbmFtZSB3aXRoXG4gICAgfCBGcm9tX2NoYW5uZWwgX2ljIC0+IFwidW5uYW1lZCBTdGRsaWIgaW5wdXQgY2hhbm5lbFwiXG4gICAgfCBGcm9tX2ZpbGUgKGZuYW1lLCBfaWMpIC0+IGZuYW1lXG4gICAgfCBGcm9tX2Z1bmN0aW9uIC0+IFwidW5uYW1lZCBmdW5jdGlvblwiXG4gICAgfCBGcm9tX3N0cmluZyAtPiBcInVubmFtZWQgY2hhcmFjdGVyIHN0cmluZ1wiXG5cblxuICBsZXQgY2hhcl9jb3VudCBpYiA9XG4gICAgaWYgaWIuaWNfY3VycmVudF9jaGFyX2lzX3ZhbGlkXG4gICAgdGhlbiBpYi5pY19jaGFyX2NvdW50IC0gMVxuICAgIGVsc2UgaWIuaWNfY2hhcl9jb3VudFxuXG5cbiAgbGV0IGxpbmVfY291bnQgaWIgPSBpYi5pY19saW5lX2NvdW50XG5cbiAgbGV0IHJlc2V0X3Rva2VuIGliID0gQnVmZmVyLnJlc2V0IGliLmljX3Rva2VuX2J1ZmZlclxuXG4gIGxldCBpbnZhbGlkYXRlX2N1cnJlbnRfY2hhciBpYiA9IGliLmljX2N1cnJlbnRfY2hhcl9pc192YWxpZCA8LSBmYWxzZVxuXG4gIGxldCB0b2tlbiBpYiA9XG4gICAgbGV0IHRva2VuX2J1ZmZlciA9IGliLmljX3Rva2VuX2J1ZmZlciBpblxuICAgIGxldCB0b2sgPSBCdWZmZXIuY29udGVudHMgdG9rZW5fYnVmZmVyIGluXG4gICAgQnVmZmVyLmNsZWFyIHRva2VuX2J1ZmZlcjtcbiAgICBpYi5pY190b2tlbl9jb3VudCA8LSBzdWNjIGliLmljX3Rva2VuX2NvdW50O1xuICAgIHRva1xuXG5cbiAgbGV0IHRva2VuX2NvdW50IGliID0gaWIuaWNfdG9rZW5fY291bnRcblxuICBsZXQgc2tpcF9jaGFyIHdpZHRoIGliID1cbiAgICBpbnZhbGlkYXRlX2N1cnJlbnRfY2hhciBpYjtcbiAgICB3aWR0aFxuXG5cbiAgbGV0IGlnbm9yZV9jaGFyIHdpZHRoIGliID0gc2tpcF9jaGFyICh3aWR0aCAtIDEpIGliXG5cbiAgbGV0IHN0b3JlX2NoYXIgd2lkdGggaWIgYyA9XG4gICAgQnVmZmVyLmFkZF9jaGFyIGliLmljX3Rva2VuX2J1ZmZlciBjO1xuICAgIGlnbm9yZV9jaGFyIHdpZHRoIGliXG5cblxuICBsZXQgZGVmYXVsdF90b2tlbl9idWZmZXJfc2l6ZSA9IDEwMjRcblxuICBsZXQgY3JlYXRlIGluYW1lIG5leHQgPSB7XG4gICAgaWNfZW9mID0gZmFsc2U7XG4gICAgaWNfY3VycmVudF9jaGFyID0gbnVsbF9jaGFyO1xuICAgIGljX2N1cnJlbnRfY2hhcl9pc192YWxpZCA9IGZhbHNlO1xuICAgIGljX2NoYXJfY291bnQgPSAwO1xuICAgIGljX2xpbmVfY291bnQgPSAwO1xuICAgIGljX3Rva2VuX2NvdW50ID0gMDtcbiAgICBpY19nZXRfbmV4dF9jaGFyID0gbmV4dDtcbiAgICBpY190b2tlbl9idWZmZXIgPSBCdWZmZXIuY3JlYXRlIGRlZmF1bHRfdG9rZW5fYnVmZmVyX3NpemU7XG4gICAgaWNfaW5wdXRfbmFtZSA9IGluYW1lO1xuICB9XG5cblxuICBsZXQgZnJvbV9zdHJpbmcgcyA9XG4gICAgbGV0IGkgPSByZWYgMCBpblxuICAgIGxldCBsZW4gPSBTdHJpbmcubGVuZ3RoIHMgaW5cbiAgICBsZXQgbmV4dCAoKSA9XG4gICAgICBpZiAhaSA+PSBsZW4gdGhlbiByYWlzZSBFbmRfb2ZfZmlsZSBlbHNlXG4gICAgICBsZXQgYyA9IHMuWyFpXSBpblxuICAgICAgaW5jciBpO1xuICAgICAgYyBpblxuICAgIGNyZWF0ZSBGcm9tX3N0cmluZyBuZXh0XG5cblxuICBsZXQgZnJvbV9mdW5jdGlvbiA9IGNyZWF0ZSBGcm9tX2Z1bmN0aW9uXG5cbiAgKCogU2Nhbm5pbmcgZnJvbSBhbiBpbnB1dCBjaGFubmVsLiAqKVxuXG4gICgqIFBvc2l0aW9uIG9mIHRoZSBwcm9ibGVtOlxuXG4gICAgIFdlIGNhbm5vdCBwcmV2ZW50IHRoZSBzY2FubmluZyBtZWNoYW5pc20gdG8gdXNlIG9uZSBsb29rYWhlYWQgY2hhcmFjdGVyLFxuICAgICBpZiBuZWVkZWQgYnkgdGhlIHNlbWFudGljcyBvZiB0aGUgZm9ybWF0IHN0cmluZyBzcGVjaWZpY2F0aW9ucyAoZS5nLiBhXG4gICAgIHRyYWlsaW5nICdza2lwIHNwYWNlJyBzcGVjaWZpY2F0aW9uIGluIHRoZSBmb3JtYXQgc3RyaW5nKTsgaW4gdGhpcyBjYXNlLFxuICAgICB0aGUgbWFuZGF0b3J5IGxvb2thaGVhZCBjaGFyYWN0ZXIgaXMgaW5kZWVkIHJlYWQgZnJvbSB0aGUgaW5wdXQgYW5kIG5vdFxuICAgICB1c2VkIHRvIHJldHVybiB0aGUgdG9rZW4gcmVhZC4gSXQgaXMgdGh1cyBtYW5kYXRvcnkgdG8gYmUgYWJsZSB0byBzdG9yZVxuICAgICBhbiB1bnVzZWQgbG9va2FoZWFkIGNoYXJhY3RlciBzb21ld2hlcmUgdG8gZ2V0IGl0IGFzIHRoZSBmaXJzdCBjaGFyYWN0ZXJcbiAgICAgb2YgdGhlIG5leHQgc2Nhbi5cblxuICAgICBUbyBjaXJjdW12ZW50IHRoaXMgcHJvYmxlbSwgYWxsIHRoZSBzY2FubmluZyBmdW5jdGlvbnMgZ2V0IGEgbG93IGxldmVsXG4gICAgIGlucHV0IGJ1ZmZlciBhcmd1bWVudCB3aGVyZSB0aGV5IHN0b3JlIHRoZSBsb29rYWhlYWQgY2hhcmFjdGVyIHdoZW5cbiAgICAgbmVlZGVkOyBhZGRpdGlvbmFsbHksIHRoZSBpbnB1dCBidWZmZXIgaXMgdGhlIG9ubHkgc291cmNlIG9mIGNoYXJhY3RlciBvZlxuICAgICBhIHNjYW5uZXIuIFRoZSBbc2NhbmJ1Zl0gaW5wdXQgYnVmZmVycyBhcmUgZGVmaW5lZCBpbiBtb2R1bGUgeyFTY2FubmluZ30uXG5cbiAgICAgTm93IHdlIHVuZGVyc3RhbmQgdGhhdCBpdCBpcyBleHRyZW1lbHkgaW1wb3J0YW50IHRoYXQgcmVsYXRlZCBhbmRcbiAgICAgc3VjY2Vzc2l2ZSBjYWxscyB0byBzY2FubmVycyBpbmRlZWQgcmVhZCBmcm9tIHRoZSBzYW1lIGlucHV0IGJ1ZmZlci5cbiAgICAgSW4gZWZmZWN0LCBpZiBhIHNjYW5uZXIgW3NjYW4xXSBpcyByZWFkaW5nIGZyb20gW2liMV0gYW5kIHN0b3JlcyBhblxuICAgICB1bnVzZWQgbG9va2FoZWFkIGNoYXJhY3RlciBbYzFdIGludG8gaXRzIGlucHV0IGJ1ZmZlciBbaWIxXSwgdGhlblxuICAgICBhbm90aGVyIHNjYW5uZXIgW3NjYW4yXSBub3QgcmVhZGluZyBmcm9tIHRoZSBzYW1lIGJ1ZmZlciBbaWIxXSB3aWxsIG1pc3NcbiAgICAgdGhlIGNoYXJhY3RlciBbYzFdLCBzZWVtaW5nbHkgdmFuaXNoZWQgaW4gdGhlIGFpciBmcm9tIHRoZSBwb2ludCBvZiB2aWV3XG4gICAgIG9mIFtzY2FuMl0uXG5cbiAgICAgVGhpcyBtZWNoYW5pc20gd29ya3MgcGVyZmVjdGx5IHRvIHJlYWQgZnJvbSBzdHJpbmdzLCBmcm9tIGZpbGVzLCBhbmQgZnJvbVxuICAgICBmdW5jdGlvbnMsIHNpbmNlIGluIHRob3NlIGNhc2VzLCBhbGxvY2F0aW5nIHR3byBidWZmZXJzIHJlYWRpbmcgZnJvbSB0aGVcbiAgICAgc2FtZSBzb3VyY2UgaXMgdW5uYXR1cmFsLlxuXG4gICAgIFN0aWxsLCB0aGVyZSBpcyBhIGRpZmZpY3VsdHkgaW4gdGhlIGNhc2Ugb2Ygc2Nhbm5pbmcgZnJvbSBhbiBpbnB1dFxuICAgICBjaGFubmVsLiBJbiBlZmZlY3QsIHdoZW4gc2Nhbm5pbmcgZnJvbSBhbiBpbnB1dCBjaGFubmVsIFtpY10sIHRoaXMgY2hhbm5lbFxuICAgICBtYXkgbm90IGhhdmUgYmVlbiBhbGxvY2F0ZWQgZnJvbSB3aXRoaW4gdGhpcyBsaWJyYXJ5LiBIZW5jZSwgaXQgbWF5IGJlXG4gICAgIHNoYXJlZCAodHdvIGZ1bmN0aW9ucyBvZiB0aGUgdXNlcidzIHByb2dyYW0gbWF5IHN1Y2Nlc3NpdmVseSByZWFkIGZyb21cbiAgICAgW2ljXSkuIFRoaXMgaXMgaGlnaGx5IGVycm9yIHByb25lIHNpbmNlLCBvbmUgb2YgdGhlIGZ1bmN0aW9uIG1heSBzZWVrIHRoZVxuICAgICBpbnB1dCBjaGFubmVsLCB3aGlsZSB0aGUgb3RoZXIgZnVuY3Rpb24gaGFzIHN0aWxsIGFuIHVudXNlZCBsb29rYWhlYWRcbiAgICAgY2hhcmFjdGVyIGluIGl0cyBpbnB1dCBidWZmZXIuIEluIGNvbmNsdXNpb24sIHlvdSBzaG91bGQgbmV2ZXIgbWl4IGRpcmVjdFxuICAgICBsb3cgbGV2ZWwgcmVhZGluZyBhbmQgaGlnaCBsZXZlbCBzY2FubmluZyBmcm9tIHRoZSBzYW1lIGlucHV0IGNoYW5uZWwuXG5cbiAgKilcblxuICAoKiBQZXJmb3JtIGJ1ZmZlcml6ZWQgaW5wdXQgdG8gaW1wcm92ZSBlZmZpY2llbmN5LiAqKVxuICBsZXQgZmlsZV9idWZmZXJfc2l6ZSA9IHJlZiAxMDI0XG5cbiAgKCogVGhlIHNjYW5uZXIgY2xvc2VzIHRoZSBpbnB1dCBjaGFubmVsIGF0IGVuZCBvZiBpbnB1dC4gKilcbiAgbGV0IHNjYW5fY2xvc2VfYXRfZW5kIGljID0gU3RkbGliLmNsb3NlX2luIGljOyByYWlzZSBFbmRfb2ZfZmlsZVxuXG4gICgqIFRoZSBzY2FubmVyIGRvZXMgbm90IGNsb3NlIHRoZSBpbnB1dCBjaGFubmVsIGF0IGVuZCBvZiBpbnB1dDpcbiAgICAgaXQganVzdCByYWlzZXMgW0VuZF9vZl9maWxlXS4gKilcbiAgbGV0IHNjYW5fcmFpc2VfYXRfZW5kIF9pYyA9IHJhaXNlIEVuZF9vZl9maWxlXG5cbiAgbGV0IGZyb21faWMgc2Nhbl9jbG9zZV9pYyBpbmFtZSBpYyA9XG4gICAgbGV0IGxlbiA9ICFmaWxlX2J1ZmZlcl9zaXplIGluXG4gICAgbGV0IGJ1ZiA9IEJ5dGVzLmNyZWF0ZSBsZW4gaW5cbiAgICBsZXQgaSA9IHJlZiAwIGluXG4gICAgbGV0IGxpbSA9IHJlZiAwIGluXG4gICAgbGV0IGVvZiA9IHJlZiBmYWxzZSBpblxuICAgIGxldCBuZXh0ICgpID1cbiAgICAgIGlmICFpIDwgIWxpbSB0aGVuIGJlZ2luIGxldCBjID0gQnl0ZXMuZ2V0IGJ1ZiAhaSBpbiBpbmNyIGk7IGMgZW5kIGVsc2VcbiAgICAgIGlmICFlb2YgdGhlbiByYWlzZSBFbmRfb2ZfZmlsZSBlbHNlIGJlZ2luXG4gICAgICAgIGxpbSA6PSBpbnB1dCBpYyBidWYgMCBsZW47XG4gICAgICAgIGlmICFsaW0gPSAwIHRoZW4gYmVnaW4gZW9mIDo9IHRydWU7IHNjYW5fY2xvc2VfaWMgaWMgZW5kIGVsc2UgYmVnaW5cbiAgICAgICAgICBpIDo9IDE7XG4gICAgICAgICAgQnl0ZXMuZ2V0IGJ1ZiAwXG4gICAgICAgIGVuZFxuICAgICAgZW5kIGluXG4gICAgY3JlYXRlIGluYW1lIG5leHRcblxuXG4gIGxldCBmcm9tX2ljX2Nsb3NlX2F0X2VuZCA9IGZyb21faWMgc2Nhbl9jbG9zZV9hdF9lbmRcbiAgbGV0IGZyb21faWNfcmFpc2VfYXRfZW5kID0gZnJvbV9pYyBzY2FuX3JhaXNlX2F0X2VuZFxuXG4gICgqIFRoZSBzY2FubmluZyBidWZmZXIgcmVhZGluZyBmcm9tIFtTdGRsaWIuc3RkaW5dLlxuICAgICBPbmUgY291bGQgdHJ5IHRvIGRlZmluZSBbc3RkaWJdIGFzIGEgc2Nhbm5pbmcgYnVmZmVyIHJlYWRpbmcgYSBjaGFyYWN0ZXJcbiAgICAgYXQgYSB0aW1lIChubyBidWZmZXJpemF0aW9uIGF0IGFsbCksIGJ1dCB1bmZvcnR1bmF0ZWx5IHRoZSB0b3AtbGV2ZWxcbiAgICAgaW50ZXJhY3Rpb24gd291bGQgYmUgd3JvbmcuIFRoaXMgaXMgZHVlIHRvIHNvbWUga2luZCBvZlxuICAgICAncmFjZSBjb25kaXRpb24nIHdoZW4gcmVhZGluZyBmcm9tIFtTdGRsaWIuc3RkaW5dLFxuICAgICBzaW5jZSB0aGUgaW50ZXJhY3RpdmUgY29tcGlsZXIgYW5kIFtTY2FuZi5zY2FuZl0gd2lsbCBzaW11bHRhbmVvdXNseVxuICAgICByZWFkIHRoZSBtYXRlcmlhbCB0aGV5IG5lZWQgZnJvbSBbU3RkbGliLnN0ZGluXTsgdGhlbiwgY29uZnVzaW9uXG4gICAgIHdpbGwgcmVzdWx0IGZyb20gd2hhdCBzaG91bGQgYmUgcmVhZCBieSB0aGUgdG9wLWxldmVsIGFuZCB3aGF0IHNob3VsZCBiZVxuICAgICByZWFkIGJ5IFtTY2FuZi5zY2FuZl0uXG4gICAgIFRoaXMgaXMgZXZlbiBtb3JlIGNvbXBsaWNhdGVkIGJ5IHRoZSBvbmUgY2hhcmFjdGVyIGxvb2thaGVhZCB0aGF0XG4gICAgIFtTY2FuZi5zY2FuZl0gaXMgc29tZXRpbWVzIG9ibGlnZWQgdG8gbWFpbnRhaW46IHRoZSBsb29rYWhlYWQgY2hhcmFjdGVyXG4gICAgIHdpbGwgYmUgYXZhaWxhYmxlIGZvciB0aGUgbmV4dCBbU2NhbmYuc2NhbmZdIGVudHJ5LCBzZWVtaW5nbHkgY29taW5nIGZyb21cbiAgICAgbm93aGVyZS5cbiAgICAgQWxzbyBubyBbRW5kX29mX2ZpbGVdIGlzIHJhaXNlZCB3aGVuIHJlYWRpbmcgZnJvbSBzdGRpbjogaWYgbm90IGVub3VnaFxuICAgICBjaGFyYWN0ZXJzIGhhdmUgYmVlbiByZWFkLCB3ZSBzaW1wbHkgYXNrIHRvIHJlYWQgbW9yZS4gKilcbiAgbGV0IHN0ZGluID1cbiAgICBmcm9tX2ljIHNjYW5fcmFpc2VfYXRfZW5kXG4gICAgICAoRnJvbV9maWxlIChcIi1cIiwgU3RkbGliLnN0ZGluKSkgU3RkbGliLnN0ZGluXG5cblxuICBsZXQgc3RkaWIgPSBzdGRpblxuXG4gIGxldCBvcGVuX2luX2ZpbGUgb3Blbl9pbiBmbmFtZSA9XG4gICAgbWF0Y2ggZm5hbWUgd2l0aFxuICAgIHwgXCItXCIgLT4gc3RkaW5cbiAgICB8IGZuYW1lIC0+XG4gICAgICBsZXQgaWMgPSBvcGVuX2luIGZuYW1lIGluXG4gICAgICBmcm9tX2ljX2Nsb3NlX2F0X2VuZCAoRnJvbV9maWxlIChmbmFtZSwgaWMpKSBpY1xuXG5cbiAgbGV0IG9wZW5faW4gPSBvcGVuX2luX2ZpbGUgU3RkbGliLm9wZW5faW5cbiAgbGV0IG9wZW5faW5fYmluID0gb3Blbl9pbl9maWxlIFN0ZGxpYi5vcGVuX2luX2JpblxuXG4gIGxldCBmcm9tX2ZpbGUgPSBvcGVuX2luXG4gIGxldCBmcm9tX2ZpbGVfYmluID0gb3Blbl9pbl9iaW5cblxuICBsZXQgZnJvbV9jaGFubmVsIGljID1cbiAgICBmcm9tX2ljX3JhaXNlX2F0X2VuZCAoRnJvbV9jaGFubmVsIGljKSBpY1xuXG5cbiAgbGV0IGNsb3NlX2luIGliID1cbiAgICBtYXRjaCBpYi5pY19pbnB1dF9uYW1lIHdpdGhcbiAgICB8IEZyb21fY2hhbm5lbCBpYyAtPlxuICAgICAgU3RkbGliLmNsb3NlX2luIGljXG4gICAgfCBGcm9tX2ZpbGUgKF9mbmFtZSwgaWMpIC0+IFN0ZGxpYi5jbG9zZV9pbiBpY1xuICAgIHwgRnJvbV9mdW5jdGlvbiB8IEZyb21fc3RyaW5nIC0+ICgpXG5cblxuICAoKlxuICAgICBPYnNvbGV0ZTogYSBtZW1vIFtmcm9tX2NoYW5uZWxdIHZlcnNpb24gdG8gYnVpbGQgYSBbU2Nhbm5pbmcuaW5fY2hhbm5lbF1cbiAgICAgc2Nhbm5pbmcgYnVmZmVyIG91dCBvZiBhIFtTdGRsaWIuaW5fY2hhbm5lbF0uXG4gICAgIFRoaXMgZnVuY3Rpb24gd2FzIHVzZWQgdG8gdHJ5IHRvIHByZXNlcnZlIHRoZSBzY2FubmluZ1xuICAgICBzZW1hbnRpY3MgZm9yIHRoZSAobm93IG9ic29sZXRlKSBmdW5jdGlvbiBbZnNjYW5mXS5cbiAgICAgR2l2ZW4gdGhhdCBhbGwgc2Nhbm5lciBtdXN0IHJlYWQgZnJvbSBhIFtTY2FubmluZy5pbl9jaGFubmVsXSBzY2FubmluZ1xuICAgICBidWZmZXIsIFtmc2NhbmZdIG11c3QgcmVhZCBmcm9tIG9uZSFcbiAgICAgTW9yZSBwcmVjaXNlbHksIGdpdmVuIFtpY10sIGFsbCBzdWNjZXNzaXZlIGNhbGxzIFtmc2NhbmYgaWNdIG11c3QgcmVhZFxuICAgICBmcm9tIHRoZSBzYW1lIHNjYW5uaW5nIGJ1ZmZlci5cbiAgICAgVGhpcyBvYmxpZ2VkIHRoaXMgbGlicmFyeSB0byBhbGxvY2F0ZWQgc2Nhbm5pbmcgYnVmZmVycyB0aGF0IHdlcmVcbiAgICAgbm90IHByb3Blcmx5IGdhcmJhZ2UgY29sbGVjdGFibGUsIGhlbmNlIGxlYWRpbmcgdG8gbWVtb3J5IGxlYWtzLlxuICAgICBJZiB5b3UgbmVlZCB0byByZWFkIGZyb20gYSBbU3RkbGliLmluX2NoYW5uZWxdIGlucHV0IGNoYW5uZWxcbiAgICAgW2ljXSwgc2ltcGx5IGRlZmluZSBhIFtTY2FubmluZy5pbl9jaGFubmVsXSBmb3JtYXR0ZWQgaW5wdXQgY2hhbm5lbCBhcyBpblxuICAgICBbbGV0IGliID0gU2Nhbm5pbmcuZnJvbV9jaGFubmVsIGljXSwgdGhlbiB1c2UgW1NjYW5mLmJzY2FuZiBpYl0gYXMgdXN1YWwuXG4gICopXG4gIGxldCBtZW1vX2Zyb21faWMgPVxuICAgIGxldCBtZW1vID0gcmVmIFtdIGluXG4gICAgKGZ1biBzY2FuX2Nsb3NlX2ljIGljIC0+XG4gICAgIHRyeSBMaXN0LmFzc3EgaWMgIW1lbW8gd2l0aFxuICAgICB8IE5vdF9mb3VuZCAtPlxuICAgICAgIGxldCBpYiA9XG4gICAgICAgICBmcm9tX2ljIHNjYW5fY2xvc2VfaWMgKEZyb21fY2hhbm5lbCBpYykgaWMgaW5cbiAgICAgICBtZW1vIDo9IChpYywgaWIpIDo6ICFtZW1vO1xuICAgICAgIGliKVxuXG5cbiAgKCogT2Jzb2xldGU6IHNlZSB7IW1lbW9fZnJvbV9pY30gYWJvdmUuICopXG4gIGxldCBtZW1vX2Zyb21fY2hhbm5lbCA9IG1lbW9fZnJvbV9pYyBzY2FuX3JhaXNlX2F0X2VuZFxuXG5lbmRcblxuXG4oKiBGb3JtYXR0ZWQgaW5wdXQgZnVuY3Rpb25zLiAqKVxuXG50eXBlICgnYSwgJ2IsICdjLCAnZCkgc2Nhbm5lciA9XG4gICAgICgnYSwgU2Nhbm5pbmcuaW5fY2hhbm5lbCwgJ2IsICdjLCAnYSAtPiAnZCwgJ2QpIGZvcm1hdDYgLT4gJ2NcblxuXG4oKiBSZXBvcnRpbmcgZXJyb3JzLiAqKVxuZXhjZXB0aW9uIFNjYW5fZmFpbHVyZSBvZiBzdHJpbmdcblxubGV0IGJhZF9pbnB1dCBzID0gcmFpc2UgKFNjYW5fZmFpbHVyZSBzKVxuXG5sZXQgYmFkX2lucHV0X2VzY2FwZSBjID1cbiAgYmFkX2lucHV0IChQcmludGYuc3ByaW50ZiBcImlsbGVnYWwgZXNjYXBlIGNoYXJhY3RlciAlQ1wiIGMpXG5cblxubGV0IGJhZF90b2tlbl9sZW5ndGggbWVzc2FnZSA9XG4gIGJhZF9pbnB1dFxuICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgIFwic2Nhbm5pbmcgb2YgJXMgZmFpbGVkOiBcXFxuICAgICAgICB0aGUgc3BlY2lmaWVkIGxlbmd0aCB3YXMgdG9vIHNob3J0IGZvciB0b2tlblwiXG4gICAgICAgbWVzc2FnZSlcblxuXG5sZXQgYmFkX2VuZF9vZl9pbnB1dCBtZXNzYWdlID1cbiAgYmFkX2lucHV0XG4gICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgXCJzY2FubmluZyBvZiAlcyBmYWlsZWQ6IFxcXG4gICAgICAgIHByZW1hdHVyZSBlbmQgb2YgZmlsZSBvY2N1cnJlZCBiZWZvcmUgZW5kIG9mIHRva2VuXCJcbiAgICAgICBtZXNzYWdlKVxuXG5cbmxldCBiYWRfZmxvYXQgKCkgPVxuICBiYWRfaW5wdXQgXCJubyBkb3Qgb3IgZXhwb25lbnQgcGFydCBmb3VuZCBpbiBmbG9hdCB0b2tlblwiXG5cblxubGV0IGJhZF9oZXhfZmxvYXQgKCkgPVxuICBiYWRfaW5wdXQgXCJub3QgYSB2YWxpZCBmbG9hdCBpbiBoZXhhZGVjaW1hbCBub3RhdGlvblwiXG5cblxubGV0IGNoYXJhY3Rlcl9taXNtYXRjaF9lcnIgYyBjaSA9XG4gIFByaW50Zi5zcHJpbnRmIFwibG9va2luZyBmb3IgJUMsIGZvdW5kICVDXCIgYyBjaVxuXG5cbmxldCBjaGFyYWN0ZXJfbWlzbWF0Y2ggYyBjaSA9XG4gIGJhZF9pbnB1dCAoY2hhcmFjdGVyX21pc21hdGNoX2VyciBjIGNpKVxuXG5cbmxldCByZWMgc2tpcF93aGl0ZXMgaWIgPVxuICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICBpZiBub3QgKFNjYW5uaW5nLmVvZiBpYikgdGhlbiBiZWdpblxuICAgIG1hdGNoIGMgd2l0aFxuICAgIHwgJyAnIHwgJ1xcdCcgfCAnXFxuJyB8ICdcXHInIC0+XG4gICAgICBTY2FubmluZy5pbnZhbGlkYXRlX2N1cnJlbnRfY2hhciBpYjsgc2tpcF93aGl0ZXMgaWJcbiAgICB8IF8gLT4gKClcbiAgZW5kXG5cblxuKCogQ2hlY2tpbmcgdGhhdCBbY10gaXMgaW5kZWVkIGluIHRoZSBpbnB1dCwgdGhlbiBza2lwcyBpdC5cbiAgIEluIHRoaXMgY2FzZSwgdGhlIGNoYXJhY3RlciBbY10gaGFzIGJlZW4gZXhwbGljaXRseSBzcGVjaWZpZWQgaW4gdGhlXG4gICBmb3JtYXQgYXMgYmVpbmcgbWFuZGF0b3J5IGluIHRoZSBpbnB1dDsgaGVuY2Ugd2Ugc2hvdWxkIGZhaWwgd2l0aFxuICAgW0VuZF9vZl9maWxlXSBpbiBjYXNlIG9mIGVuZF9vZl9pbnB1dC5cbiAgIChSZW1lbWJlciB0aGF0IFtTY2FuX2ZhaWx1cmVdIGlzIHJhaXNlZCBvbmx5IHdoZW4gKHdlIGNhbiBwcm92ZSBieVxuICAgZXZpZGVuY2UpIHRoYXQgdGhlIGlucHV0IGRvZXMgbm90IG1hdGNoIHRoZSBmb3JtYXQgc3RyaW5nIGdpdmVuLiBXZSBtdXN0XG4gICB0aHVzIGRpZmZlcmVudGlhdGUgW0VuZF9vZl9maWxlXSBhcyBhbiBlcnJvciBkdWUgdG8gbGFjayBvZiBpbnB1dCwgYW5kXG4gICBbU2Nhbl9mYWlsdXJlXSB3aGljaCBpcyBkdWUgdG8gcHJvdmFibHkgd3JvbmcgaW5wdXQuIEkgYW0gbm90IHN1cmUgdGhpcyBpc1xuICAgd29ydGggdGhlIGJ1cmRlbjogaXQgaXMgY29tcGxleCBhbmQgc29tZWhvdyBzdWJsaW1pbmFsOyBzaG91bGQgYmUgY2xlYXJlclxuICAgdG8gZmFpbCB3aXRoIFNjYW5fZmFpbHVyZSBcIk5vdCBlbm91Z2ggaW5wdXQgdG8gY29tcGxldGUgc2Nhbm5pbmdcIiEpXG5cbiAgIFRoYXQncyB3aHksIHdhaXRpbmcgZm9yIGEgYmV0dGVyIHNvbHV0aW9uLCB3ZSB1c2UgY2hlY2tlZF9wZWVrX2NoYXIgaGVyZS5cbiAgIFdlIGFyZSBhbHNvIGNhcmVmdWwgdG8gdHJlYXQgXCJcXHJcXG5cIiBpbiB0aGUgaW5wdXQgYXMgYW4gZW5kIG9mIGxpbmUgbWFya2VyOlxuICAgaXQgYWx3YXlzIG1hdGNoZXMgYSAnXFxuJyBzcGVjaWZpY2F0aW9uIGluIHRoZSBpbnB1dCBmb3JtYXQgc3RyaW5nLiAqKVxubGV0IHJlYyBjaGVja19jaGFyIGliIGMgPVxuICBtYXRjaCBjIHdpdGhcbiAgfCAnICcgLT4gc2tpcF93aGl0ZXMgaWJcbiAgfCAnXFxuJyAtPiBjaGVja19uZXdsaW5lIGliXG4gIHwgYyAtPiBjaGVja190aGlzX2NoYXIgaWIgY1xuXG5hbmQgY2hlY2tfdGhpc19jaGFyIGliIGMgPVxuICBsZXQgY2kgPSBTY2FubmluZy5jaGVja2VkX3BlZWtfY2hhciBpYiBpblxuICBpZiBjaSA9IGMgdGhlbiBTY2FubmluZy5pbnZhbGlkYXRlX2N1cnJlbnRfY2hhciBpYiBlbHNlXG4gIGNoYXJhY3Rlcl9taXNtYXRjaCBjIGNpXG5cbmFuZCBjaGVja19uZXdsaW5lIGliID1cbiAgbGV0IGNpID0gU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIgaW5cbiAgbWF0Y2ggY2kgd2l0aFxuICB8ICdcXG4nIC0+IFNjYW5uaW5nLmludmFsaWRhdGVfY3VycmVudF9jaGFyIGliXG4gIHwgJ1xccicgLT4gU2Nhbm5pbmcuaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIgaWI7IGNoZWNrX3RoaXNfY2hhciBpYiAnXFxuJ1xuICB8IF8gLT4gY2hhcmFjdGVyX21pc21hdGNoICdcXG4nIGNpXG5cblxuKCogRXh0cmFjdGluZyB0b2tlbnMgZnJvbSB0aGUgb3V0cHV0IHRva2VuIGJ1ZmZlci4gKilcblxubGV0IHRva2VuX2NoYXIgaWIgPSAoU2Nhbm5pbmcudG9rZW4gaWIpLlswXVxuXG5sZXQgdG9rZW5fc3RyaW5nID0gU2Nhbm5pbmcudG9rZW5cblxubGV0IHRva2VuX2Jvb2wgaWIgPVxuICBtYXRjaCBTY2FubmluZy50b2tlbiBpYiB3aXRoXG4gIHwgXCJ0cnVlXCIgLT4gdHJ1ZVxuICB8IFwiZmFsc2VcIiAtPiBmYWxzZVxuICB8IHMgLT4gYmFkX2lucHV0IChQcmludGYuc3ByaW50ZiBcImludmFsaWQgYm9vbGVhbiAnJXMnXCIgcylcblxuXG4oKiBUaGUgdHlwZSBvZiBpbnRlZ2VyIGNvbnZlcnNpb25zLiAqKVxudHlwZSBpbnRlZ2VyX2NvbnZlcnNpb24gPVxuICB8IEJfY29udmVyc2lvbiAoKiBVbnNpZ25lZCBiaW5hcnkgY29udmVyc2lvbiAqKVxuICB8IERfY29udmVyc2lvbiAoKiBTaWduZWQgZGVjaW1hbCBjb252ZXJzaW9uICopXG4gIHwgSV9jb252ZXJzaW9uICgqIFNpZ25lZCBpbnRlZ2VyIGNvbnZlcnNpb24gKilcbiAgfCBPX2NvbnZlcnNpb24gKCogVW5zaWduZWQgb2N0YWwgY29udmVyc2lvbiAqKVxuICB8IFVfY29udmVyc2lvbiAoKiBVbnNpZ25lZCBkZWNpbWFsIGNvbnZlcnNpb24gKilcbiAgfCBYX2NvbnZlcnNpb24gKCogVW5zaWduZWQgaGV4YWRlY2ltYWwgY29udmVyc2lvbiAqKVxuXG5cbmxldCBpbnRlZ2VyX2NvbnZlcnNpb25fb2ZfY2hhciA9IGZ1bmN0aW9uXG4gIHwgJ2InIC0+IEJfY29udmVyc2lvblxuICB8ICdkJyAtPiBEX2NvbnZlcnNpb25cbiAgfCAnaScgLT4gSV9jb252ZXJzaW9uXG4gIHwgJ28nIC0+IE9fY29udmVyc2lvblxuICB8ICd1JyAtPiBVX2NvbnZlcnNpb25cbiAgfCAneCcgfCAnWCcgLT4gWF9jb252ZXJzaW9uXG4gIHwgXyAtPiBhc3NlcnQgZmFsc2VcblxuXG4oKiBFeHRyYWN0IGFuIGludGVnZXIgbGl0ZXJhbCB0b2tlbi5cbiAgIFNpbmNlIHRoZSBmdW5jdGlvbnMgU3RkbGliLippbnQqX29mX3N0cmluZyBkbyBub3QgYWNjZXB0IGEgbGVhZGluZyArLFxuICAgd2Ugc2tpcCBpdCBpZiBuZWNlc3NhcnkuICopXG5sZXQgdG9rZW5faW50X2xpdGVyYWwgY29udiBpYiA9XG4gIGxldCB0b2sgPVxuICAgIG1hdGNoIGNvbnYgd2l0aFxuICAgIHwgRF9jb252ZXJzaW9uIHwgSV9jb252ZXJzaW9uIC0+IFNjYW5uaW5nLnRva2VuIGliXG4gICAgfCBVX2NvbnZlcnNpb24gLT4gXCIwdVwiIF4gU2Nhbm5pbmcudG9rZW4gaWJcbiAgICB8IE9fY29udmVyc2lvbiAtPiBcIjBvXCIgXiBTY2FubmluZy50b2tlbiBpYlxuICAgIHwgWF9jb252ZXJzaW9uIC0+IFwiMHhcIiBeIFNjYW5uaW5nLnRva2VuIGliXG4gICAgfCBCX2NvbnZlcnNpb24gLT4gXCIwYlwiIF4gU2Nhbm5pbmcudG9rZW4gaWIgaW5cbiAgbGV0IGwgPSBTdHJpbmcubGVuZ3RoIHRvayBpblxuICBpZiBsID0gMCB8fCB0b2suWzBdIDw+ICcrJyB0aGVuIHRvayBlbHNlIFN0cmluZy5zdWIgdG9rIDEgKGwgLSAxKVxuXG5cbigqIEFsbCB0aGUgZnVuY3Rpb25zIHRoYXQgY29udmVydCBhIHN0cmluZyB0byBhIG51bWJlciByYWlzZSB0aGUgZXhjZXB0aW9uXG4gICBGYWlsdXJlIHdoZW4gdGhlIGNvbnZlcnNpb24gaXMgbm90IHBvc3NpYmxlLlxuICAgVGhpcyBleGNlcHRpb24gaXMgdGhlbiB0cmFwcGVkIGluIFtrc2NhbmZdLiAqKVxubGV0IHRva2VuX2ludCBjb252IGliID0gaW50X29mX3N0cmluZyAodG9rZW5faW50X2xpdGVyYWwgY29udiBpYilcblxubGV0IHRva2VuX2Zsb2F0IGliID0gZmxvYXRfb2Zfc3RyaW5nIChTY2FubmluZy50b2tlbiBpYilcblxuKCogVG8gc2NhbiBuYXRpdmUgaW50cywgaW50MzIgYW5kIGludDY0IGludGVnZXJzLlxuICAgV2UgY2Fubm90IGFjY2VzcyB0byBjb252ZXJzaW9ucyB0by9mcm9tIHN0cmluZ3MgZm9yIHRob3NlIHR5cGVzLFxuICAgTmF0aXZlaW50Lm9mX3N0cmluZywgSW50MzIub2Zfc3RyaW5nLCBhbmQgSW50NjQub2Zfc3RyaW5nLFxuICAgc2luY2UgdGhvc2UgbW9kdWxlcyBhcmUgbm90IGF2YWlsYWJsZSB0byBbU2NhbmZdLlxuICAgSG93ZXZlciwgd2UgY2FuIGJpbmQgYW5kIHVzZSB0aGUgY29ycmVzcG9uZGluZyBwcmltaXRpdmVzIHRoYXQgYXJlXG4gICBhdmFpbGFibGUgaW4gdGhlIHJ1bnRpbWUuICopXG5leHRlcm5hbCBuYXRpdmVpbnRfb2Zfc3RyaW5nIDogc3RyaW5nIC0+IG5hdGl2ZWludFxuICA9IFwiY2FtbF9uYXRpdmVpbnRfb2Zfc3RyaW5nXCJcblxuZXh0ZXJuYWwgaW50MzJfb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGludDMyXG4gID0gXCJjYW1sX2ludDMyX29mX3N0cmluZ1wiXG5cbmV4dGVybmFsIGludDY0X29mX3N0cmluZyA6IHN0cmluZyAtPiBpbnQ2NFxuICA9IFwiY2FtbF9pbnQ2NF9vZl9zdHJpbmdcIlxuXG5cbmxldCB0b2tlbl9uYXRpdmVpbnQgY29udiBpYiA9IG5hdGl2ZWludF9vZl9zdHJpbmcgKHRva2VuX2ludF9saXRlcmFsIGNvbnYgaWIpXG5sZXQgdG9rZW5faW50MzIgY29udiBpYiA9IGludDMyX29mX3N0cmluZyAodG9rZW5faW50X2xpdGVyYWwgY29udiBpYilcbmxldCB0b2tlbl9pbnQ2NCBjb252IGliID0gaW50NjRfb2Zfc3RyaW5nICh0b2tlbl9pbnRfbGl0ZXJhbCBjb252IGliKVxuXG4oKiBTY2FubmluZyBudW1iZXJzLiAqKVxuXG4oKiBEaWdpdHMgc2Nhbm5pbmcgZnVuY3Rpb25zIHN1cHBvc2UgdGhhdCBvbmUgY2hhcmFjdGVyIGhhcyBiZWVuIGNoZWNrZWQgYW5kXG4gICBpcyBhdmFpbGFibGUsIHNpbmNlIHRoZXkgcmV0dXJuIGF0IGVuZCBvZiBmaWxlIHdpdGggdGhlIGN1cnJlbnRseSBmb3VuZFxuICAgdG9rZW4gc2VsZWN0ZWQuXG5cbiAgIFB1dCBpdCBpbiBhbm90aGVyIHdheSwgdGhlIGRpZ2l0cyBzY2FubmluZyBmdW5jdGlvbnMgc2NhbiBmb3IgYSBwb3NzaWJseVxuICAgZW1wdHkgc2VxdWVuY2Ugb2YgZGlnaXRzLCAoaGVuY2UsIGEgc3VjY2Vzc2Z1bCBzY2FubmluZyBmcm9tIG9uZSBvZiB0aG9zZVxuICAgZnVuY3Rpb25zIGRvZXMgbm90IGltcGx5IHRoYXQgdGhlIHRva2VuIGlzIGEgd2VsbC1mb3JtZWQgbnVtYmVyOiB0byBnZXQgYVxuICAgdHJ1ZSBudW1iZXIsIGl0IGlzIG1hbmRhdG9yeSB0byBjaGVjayB0aGF0IGF0IGxlYXN0IG9uZSB2YWxpZCBkaWdpdCBpc1xuICAgYXZhaWxhYmxlIGJlZm9yZSBjYWxsaW5nIG9uZSBvZiB0aGUgZGlnaXQgc2Nhbm5pbmcgZnVuY3Rpb25zKS4gKilcblxuKCogVGhlIGRlY2ltYWwgY2FzZSBpcyB0cmVhdGVkIGVzcGVjaWFsbHkgZm9yIG9wdGltaXphdGlvbiBwdXJwb3Nlcy4gKilcbmxldCByZWMgc2Nhbl9kZWNpbWFsX2RpZ2l0X3N0YXIgd2lkdGggaWIgPVxuICBpZiB3aWR0aCA9IDAgdGhlbiB3aWR0aCBlbHNlXG4gIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gIGlmIFNjYW5uaW5nLmVvZiBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgbWF0Y2ggYyB3aXRoXG4gIHwgJzAnIC4uICc5JyBhcyBjIC0+XG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgc2Nhbl9kZWNpbWFsX2RpZ2l0X3N0YXIgd2lkdGggaWJcbiAgfCAnXycgLT5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYiBpblxuICAgIHNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIHdpZHRoIGliXG4gIHwgXyAtPiB3aWR0aFxuXG5cbmxldCBzY2FuX2RlY2ltYWxfZGlnaXRfcGx1cyB3aWR0aCBpYiA9XG4gIGlmIHdpZHRoID0gMCB0aGVuIGJhZF90b2tlbl9sZW5ndGggXCJkZWNpbWFsIGRpZ2l0c1wiIGVsc2VcbiAgbGV0IGMgPSBTY2FubmluZy5jaGVja2VkX3BlZWtfY2hhciBpYiBpblxuICBtYXRjaCBjIHdpdGhcbiAgfCAnMCcgLi4gJzknIC0+XG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgc2Nhbl9kZWNpbWFsX2RpZ2l0X3N0YXIgd2lkdGggaWJcbiAgfCBjIC0+XG4gICAgYmFkX2lucHV0IChQcmludGYuc3ByaW50ZiBcImNoYXJhY3RlciAlQyBpcyBub3QgYSBkZWNpbWFsIGRpZ2l0XCIgYylcblxuXG4oKiBUbyBzY2FuIG51bWJlcnMgZnJvbSBvdGhlciBiYXNlcywgd2UgdXNlIGEgcHJlZGljYXRlIGFyZ3VtZW50IHRvXG4gICBzY2FuIGRpZ2l0cy4gKilcbmxldCBzY2FuX2RpZ2l0X3N0YXIgZGlnaXRwIHdpZHRoIGliID1cbiAgbGV0IHJlYyBzY2FuX2RpZ2l0cyB3aWR0aCBpYiA9XG4gICAgaWYgd2lkdGggPSAwIHRoZW4gd2lkdGggZWxzZVxuICAgIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gICAgaWYgU2Nhbm5pbmcuZW9mIGliIHRoZW4gd2lkdGggZWxzZVxuICAgIG1hdGNoIGMgd2l0aFxuICAgIHwgYyB3aGVuIGRpZ2l0cCBjIC0+XG4gICAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICAgIHNjYW5fZGlnaXRzIHdpZHRoIGliXG4gICAgfCAnXycgLT5cbiAgICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliIGluXG4gICAgICBzY2FuX2RpZ2l0cyB3aWR0aCBpYlxuICAgIHwgXyAtPiB3aWR0aCBpblxuICBzY2FuX2RpZ2l0cyB3aWR0aCBpYlxuXG5cbmxldCBzY2FuX2RpZ2l0X3BsdXMgYmFzaXMgZGlnaXRwIHdpZHRoIGliID1cbiAgKCogRW5zdXJlIHdlIGhhdmUgZ290IGVub3VnaCB3aWR0aCBsZWZ0LFxuICAgICBhbmQgcmVhZCBhdCBsZWFzdCBvbmUgZGlnaXQuICopXG4gIGlmIHdpZHRoID0gMCB0aGVuIGJhZF90b2tlbl9sZW5ndGggXCJkaWdpdHNcIiBlbHNlXG4gIGxldCBjID0gU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIgaW5cbiAgaWYgZGlnaXRwIGMgdGhlblxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgIHNjYW5fZGlnaXRfc3RhciBkaWdpdHAgd2lkdGggaWJcbiAgZWxzZVxuICAgIGJhZF9pbnB1dCAoUHJpbnRmLnNwcmludGYgXCJjaGFyYWN0ZXIgJUMgaXMgbm90IGEgdmFsaWQgJXMgZGlnaXRcIiBjIGJhc2lzKVxuXG5cbmxldCBpc19iaW5hcnlfZGlnaXQgPSBmdW5jdGlvblxuICB8ICcwJyAuLiAnMScgLT4gdHJ1ZVxuICB8IF8gLT4gZmFsc2VcblxuXG5sZXQgc2Nhbl9iaW5hcnlfaW50ID0gc2Nhbl9kaWdpdF9wbHVzIFwiYmluYXJ5XCIgaXNfYmluYXJ5X2RpZ2l0XG5cbmxldCBpc19vY3RhbF9kaWdpdCA9IGZ1bmN0aW9uXG4gIHwgJzAnIC4uICc3JyAtPiB0cnVlXG4gIHwgXyAtPiBmYWxzZVxuXG5cbmxldCBzY2FuX29jdGFsX2ludCA9IHNjYW5fZGlnaXRfcGx1cyBcIm9jdGFsXCIgaXNfb2N0YWxfZGlnaXRcblxubGV0IGlzX2hleGFfZGlnaXQgPSBmdW5jdGlvblxuICB8ICcwJyAuLiAnOScgfCAnYScgLi4gJ2YnIHwgJ0EnIC4uICdGJyAtPiB0cnVlXG4gIHwgXyAtPiBmYWxzZVxuXG5cbmxldCBzY2FuX2hleGFkZWNpbWFsX2ludCA9IHNjYW5fZGlnaXRfcGx1cyBcImhleGFkZWNpbWFsXCIgaXNfaGV4YV9kaWdpdFxuXG4oKiBTY2FuIGEgZGVjaW1hbCBpbnRlZ2VyLiAqKVxubGV0IHNjYW5fdW5zaWduZWRfZGVjaW1hbF9pbnQgPSBzY2FuX2RlY2ltYWxfZGlnaXRfcGx1c1xuXG5sZXQgc2Nhbl9zaWduIHdpZHRoIGliID1cbiAgbGV0IGMgPSBTY2FubmluZy5jaGVja2VkX3BlZWtfY2hhciBpYiBpblxuICBtYXRjaCBjIHdpdGhcbiAgfCAnKycgLT4gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjXG4gIHwgJy0nIC0+IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgY1xuICB8IF8gLT4gd2lkdGhcblxuXG5sZXQgc2Nhbl9vcHRpb25hbGx5X3NpZ25lZF9kZWNpbWFsX2ludCB3aWR0aCBpYiA9XG4gIGxldCB3aWR0aCA9IHNjYW5fc2lnbiB3aWR0aCBpYiBpblxuICBzY2FuX3Vuc2lnbmVkX2RlY2ltYWxfaW50IHdpZHRoIGliXG5cblxuKCogU2NhbiBhbiB1bnNpZ25lZCBpbnRlZ2VyIHRoYXQgY291bGQgYmUgZ2l2ZW4gaW4gYW55IChjb21tb24pIGJhc2lzLlxuICAgSWYgZGlnaXRzIGFyZSBwcmVmaXhlZCBieSBvbmUgb2YgMHgsIDBYLCAwbywgb3IgMGIsIHRoZSBudW1iZXIgaXNcbiAgIGFzc3VtZWQgdG8gYmUgd3JpdHRlbiByZXNwZWN0aXZlbHkgaW4gaGV4YWRlY2ltYWwsIGhleGFkZWNpbWFsLFxuICAgb2N0YWwsIG9yIGJpbmFyeS4gKilcbmxldCBzY2FuX3Vuc2lnbmVkX2ludCB3aWR0aCBpYiA9XG4gIG1hdGNoIFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliIHdpdGhcbiAgfCAnMCcgYXMgYyAtPlxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgIGlmIHdpZHRoID0gMCB0aGVuIHdpZHRoIGVsc2VcbiAgICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICAgIGlmIFNjYW5uaW5nLmVvZiBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgICBiZWdpbiBtYXRjaCBjIHdpdGhcbiAgICB8ICd4JyB8ICdYJyAtPiBzY2FuX2hleGFkZWNpbWFsX2ludCAoU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjKSBpYlxuICAgIHwgJ28nIC0+IHNjYW5fb2N0YWxfaW50IChTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMpIGliXG4gICAgfCAnYicgLT4gc2Nhbl9iaW5hcnlfaW50IChTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMpIGliXG4gICAgfCBfIC0+IHNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIHdpZHRoIGliIGVuZFxuICB8IF8gLT4gc2Nhbl91bnNpZ25lZF9kZWNpbWFsX2ludCB3aWR0aCBpYlxuXG5cbmxldCBzY2FuX29wdGlvbmFsbHlfc2lnbmVkX2ludCB3aWR0aCBpYiA9XG4gIGxldCB3aWR0aCA9IHNjYW5fc2lnbiB3aWR0aCBpYiBpblxuICBzY2FuX3Vuc2lnbmVkX2ludCB3aWR0aCBpYlxuXG5cbmxldCBzY2FuX2ludF9jb252ZXJzaW9uIGNvbnYgd2lkdGggaWIgPVxuICBtYXRjaCBjb252IHdpdGhcbiAgfCBCX2NvbnZlcnNpb24gLT4gc2Nhbl9iaW5hcnlfaW50IHdpZHRoIGliXG4gIHwgRF9jb252ZXJzaW9uIC0+IHNjYW5fb3B0aW9uYWxseV9zaWduZWRfZGVjaW1hbF9pbnQgd2lkdGggaWJcbiAgfCBJX2NvbnZlcnNpb24gLT4gc2Nhbl9vcHRpb25hbGx5X3NpZ25lZF9pbnQgd2lkdGggaWJcbiAgfCBPX2NvbnZlcnNpb24gLT4gc2Nhbl9vY3RhbF9pbnQgd2lkdGggaWJcbiAgfCBVX2NvbnZlcnNpb24gLT4gc2Nhbl91bnNpZ25lZF9kZWNpbWFsX2ludCB3aWR0aCBpYlxuICB8IFhfY29udmVyc2lvbiAtPiBzY2FuX2hleGFkZWNpbWFsX2ludCB3aWR0aCBpYlxuXG5cbigqIFNjYW5uaW5nIGZsb2F0aW5nIHBvaW50IG51bWJlcnMuICopXG5cbigqIEZyYWN0aW9uYWwgcGFydCBpcyBvcHRpb25hbCBhbmQgY2FuIGJlIHJlZHVjZWQgdG8gMCBkaWdpdHMuICopXG5sZXQgc2Nhbl9mcmFjdGlvbmFsX3BhcnQgd2lkdGggaWIgPVxuICBpZiB3aWR0aCA9IDAgdGhlbiB3aWR0aCBlbHNlXG4gIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gIGlmIFNjYW5uaW5nLmVvZiBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgbWF0Y2ggYyB3aXRoXG4gIHwgJzAnIC4uICc5JyBhcyBjIC0+XG4gICAgc2Nhbl9kZWNpbWFsX2RpZ2l0X3N0YXIgKFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYykgaWJcbiAgfCBfIC0+IHdpZHRoXG5cblxuKCogRXhwIHBhcnQgaXMgb3B0aW9uYWwgYW5kIGNhbiBiZSByZWR1Y2VkIHRvIDAgZGlnaXRzLiAqKVxubGV0IHNjYW5fZXhwb25lbnRfcGFydCB3aWR0aCBpYiA9XG4gIGlmIHdpZHRoID0gMCB0aGVuIHdpZHRoIGVsc2VcbiAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgaWYgU2Nhbm5pbmcuZW9mIGliIHRoZW4gd2lkdGggZWxzZVxuICBtYXRjaCBjIHdpdGhcbiAgfCAnZScgfCAnRScgYXMgYyAtPlxuICAgIHNjYW5fb3B0aW9uYWxseV9zaWduZWRfZGVjaW1hbF9pbnQgKFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYykgaWJcbiAgfCBfIC0+IHdpZHRoXG5cblxuKCogU2NhbiB0aGUgaW50ZWdlciBwYXJ0IG9mIGEgZmxvYXRpbmcgcG9pbnQgbnVtYmVyLCAobm90IHVzaW5nIHRoZVxuICAgT0NhbWwgbGV4aWNhbCBjb252ZW50aW9uIHNpbmNlIHRoZSBpbnRlZ2VyIHBhcnQgY2FuIGJlIGVtcHR5KTpcbiAgIGFuIG9wdGlvbmFsIHNpZ24sIGZvbGxvd2VkIGJ5IGEgcG9zc2libHkgZW1wdHkgc2VxdWVuY2Ugb2YgZGVjaW1hbFxuICAgZGlnaXRzIChlLmcuIC0uMSkuICopXG5sZXQgc2Nhbl9pbnRlZ2VyX3BhcnQgd2lkdGggaWIgPVxuICBsZXQgd2lkdGggPSBzY2FuX3NpZ24gd2lkdGggaWIgaW5cbiAgc2Nhbl9kZWNpbWFsX2RpZ2l0X3N0YXIgd2lkdGggaWJcblxuXG4oKlxuICAgRm9yIHRoZSB0aW1lIGJlaW5nIHdlIGhhdmUgKGFzIGZvdW5kIGluIHNjYW5mLm1saSk6XG4gICB0aGUgZmllbGQgd2lkdGggaXMgY29tcG9zZWQgb2YgYW4gb3B0aW9uYWwgaW50ZWdlciBsaXRlcmFsXG4gICBpbmRpY2F0aW5nIHRoZSBtYXhpbWFsIHdpZHRoIG9mIHRoZSB0b2tlbiB0byByZWFkLlxuICAgVW5mb3J0dW5hdGVseSwgdGhlIHR5cGUtY2hlY2tlciBsZXQgdGhlIHVzZXIgd3JpdGUgYW4gb3B0aW9uYWwgcHJlY2lzaW9uLFxuICAgc2luY2UgdGhpcyBpcyB2YWxpZCBmb3IgcHJpbnRmIGZvcm1hdCBzdHJpbmdzLlxuXG4gICBUaHVzLCB0aGUgbmV4dCBzdGVwIGZvciBTY2FuZiBpcyB0byBzdXBwb3J0IGEgZnVsbCB3aWR0aCBhbmQgcHJlY2lzaW9uXG4gICBpbmRpY2F0aW9uLCBtb3JlIG9yIGxlc3Mgc2ltaWxhciB0byB0aGUgb25lIGZvciBwcmludGYsIHBvc3NpYmx5IGV4dGVuZGVkXG4gICB0byB0aGUgc3BlY2lmaWNhdGlvbiBvZiBhIFttYXgsIG1pbl0gcmFuZ2UgZm9yIHRoZSB3aWR0aCBvZiB0aGUgdG9rZW4gcmVhZFxuICAgZm9yIHN0cmluZ3MuIFNvbWV0aGluZyBsaWtlIHRoZSBmb2xsb3dpbmcgc3BlYyBmb3Igc2NhbmYubWxpOlxuXG4gICBUaGUgb3B0aW9uYWwgW3dpZHRoXSBpcyBhbiBpbnRlZ2VyIGluZGljYXRpbmcgdGhlIG1heGltYWxcbiAgIHdpZHRoIG9mIHRoZSB0b2tlbiByZWFkLiBGb3IgaW5zdGFuY2UsIFslNmRdIHJlYWRzIGFuIGludGVnZXIsXG4gICBoYXZpbmcgYXQgbW9zdCA2IGNoYXJhY3RlcnMuXG5cbiAgIFRoZSBvcHRpb25hbCBbcHJlY2lzaW9uXSBpcyBhIGRvdCBbLl0gZm9sbG93ZWQgYnkgYW4gaW50ZWdlcjpcblxuICAgLSBpbiB0aGUgZmxvYXRpbmcgcG9pbnQgbnVtYmVyIGNvbnZlcnNpb25zIChbJWZdLCBbJWVdLCBbJWddLCBbJUZdLCBbJUVdLFxuICAgYW5kIFslRl0gY29udmVyc2lvbnMsIHRoZSBbcHJlY2lzaW9uXSBpbmRpY2F0ZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mXG4gICBkaWdpdHMgdGhhdCBtYXkgZm9sbG93IHRoZSBkZWNpbWFsIHBvaW50LiBGb3IgaW5zdGFuY2UsIFslLjRmXSByZWFkcyBhXG4gICBbZmxvYXRdIHdpdGggYXQgbW9zdCA0IGZyYWN0aW9uYWwgZGlnaXRzLFxuXG4gICAtIGluIHRoZSBzdHJpbmcgY29udmVyc2lvbnMgKFslc10sIFslU10sIFslXFxbIHJhbmdlIFxcXV0pLCBhbmQgaW4gdGhlXG4gICBpbnRlZ2VyIG51bWJlciBjb252ZXJzaW9ucyAoWyVpXSwgWyVkXSwgWyV1XSwgWyV4XSwgWyVvXSwgYW5kIHRoZWlyXG4gICBbaW50MzJdLCBbaW50NjRdLCBhbmQgW25hdGl2ZV9pbnRdIGNvcnJlc3BvbmRlbnQpLCB0aGUgW3ByZWNpc2lvbl1cbiAgIGluZGljYXRlcyB0aGUgcmVxdWlyZWQgbWluaW11bSB3aWR0aCBvZiB0aGUgdG9rZW4gcmVhZCxcblxuICAgLSBvbiBhbGwgb3RoZXIgY29udmVyc2lvbnMsIHRoZSB3aWR0aCBhbmQgcHJlY2lzaW9uIHNwZWNpZnkgdGhlIFttYXgsIG1pbl1cbiAgIHJhbmdlIGZvciB0aGUgd2lkdGggb2YgdGhlIHRva2VuIHJlYWQuXG4qKVxubGV0IHNjYW5fZmxvYXQgd2lkdGggcHJlY2lzaW9uIGliID1cbiAgbGV0IHdpZHRoID0gc2Nhbl9pbnRlZ2VyX3BhcnQgd2lkdGggaWIgaW5cbiAgaWYgd2lkdGggPSAwIHRoZW4gd2lkdGgsIHByZWNpc2lvbiBlbHNlXG4gIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gIGlmIFNjYW5uaW5nLmVvZiBpYiB0aGVuIHdpZHRoLCBwcmVjaXNpb24gZWxzZVxuICBtYXRjaCBjIHdpdGhcbiAgfCAnLicgLT5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICBsZXQgcHJlY2lzaW9uID0gSW50Lm1pbiB3aWR0aCBwcmVjaXNpb24gaW5cbiAgICBsZXQgd2lkdGggPSB3aWR0aCAtIChwcmVjaXNpb24gLSBzY2FuX2ZyYWN0aW9uYWxfcGFydCBwcmVjaXNpb24gaWIpIGluXG4gICAgc2Nhbl9leHBvbmVudF9wYXJ0IHdpZHRoIGliLCBwcmVjaXNpb25cbiAgfCBfIC0+XG4gICAgc2Nhbl9leHBvbmVudF9wYXJ0IHdpZHRoIGliLCBwcmVjaXNpb25cblxuXG5sZXQgY2hlY2tfY2FzZV9pbnNlbnNpdGl2ZV9zdHJpbmcgd2lkdGggaWIgZXJyb3Igc3RyID1cbiAgbGV0IGxvd2VyY2FzZSBjID1cbiAgICBtYXRjaCBjIHdpdGhcbiAgICB8ICdBJyAuLiAnWicgLT5cbiAgICAgIGNoYXJfb2ZfaW50IChpbnRfb2ZfY2hhciBjIC0gaW50X29mX2NoYXIgJ0EnICsgaW50X29mX2NoYXIgJ2EnKVxuICAgIHwgXyAtPiBjIGluXG4gIGxldCBsZW4gPSBTdHJpbmcubGVuZ3RoIHN0ciBpblxuICBsZXQgd2lkdGggPSByZWYgd2lkdGggaW5cbiAgZm9yIGkgPSAwIHRvIGxlbiAtIDEgZG9cbiAgICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICAgIGlmIGxvd2VyY2FzZSBjIDw+IGxvd2VyY2FzZSBzdHIuW2ldIHRoZW4gZXJyb3IgKCk7XG4gICAgaWYgIXdpZHRoID0gMCB0aGVuIGVycm9yICgpO1xuICAgIHdpZHRoIDo9IFNjYW5uaW5nLnN0b3JlX2NoYXIgIXdpZHRoIGliIGM7XG4gIGRvbmU7XG4gICF3aWR0aFxuXG5cbmxldCBzY2FuX2hleF9mbG9hdCB3aWR0aCBwcmVjaXNpb24gaWIgPVxuICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2hleF9mbG9hdCAoKTtcbiAgbGV0IHdpZHRoID0gc2Nhbl9zaWduIHdpZHRoIGliIGluXG4gIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfaGV4X2Zsb2F0ICgpO1xuICBtYXRjaCBTY2FubmluZy5wZWVrX2NoYXIgaWIgd2l0aFxuICB8ICcwJyBhcyBjIC0+IChcbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2hleF9mbG9hdCAoKTtcbiAgICBsZXQgd2lkdGggPSBjaGVja19jYXNlX2luc2Vuc2l0aXZlX3N0cmluZyB3aWR0aCBpYiBiYWRfaGV4X2Zsb2F0IFwieFwiIGluXG4gICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgICAgIGxldCB3aWR0aCA9IG1hdGNoIFNjYW5uaW5nLnBlZWtfY2hhciBpYiB3aXRoXG4gICAgICAgIHwgJy4nIHwgJ3AnIHwgJ1AnIC0+IHdpZHRoXG4gICAgICAgIHwgXyAtPiBzY2FuX2hleGFkZWNpbWFsX2ludCB3aWR0aCBpYiBpblxuICAgICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgICAgICAgbGV0IHdpZHRoID0gbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgICAgICAgICB8ICcuJyBhcyBjIC0+IChcbiAgICAgICAgICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgICAgICAgICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgICAgICAgICAgICAgbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgICAgICAgICAgICAgfCAncCcgfCAnUCcgLT4gd2lkdGhcbiAgICAgICAgICAgICAgfCBfIC0+XG4gICAgICAgICAgICAgICAgbGV0IHByZWNpc2lvbiA9IEludC5taW4gd2lkdGggcHJlY2lzaW9uIGluXG4gICAgICAgICAgICAgICAgd2lkdGggLSAocHJlY2lzaW9uIC0gc2Nhbl9oZXhhZGVjaW1hbF9pbnQgcHJlY2lzaW9uIGliKVxuICAgICAgICAgIClcbiAgICAgICAgICB8IF8gLT4gd2lkdGggaW5cbiAgICAgICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgICAgICAgICBtYXRjaCBTY2FubmluZy5wZWVrX2NoYXIgaWIgd2l0aFxuICAgICAgICAgIHwgJ3AnIHwgJ1AnIGFzIGMgLT5cbiAgICAgICAgICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgICAgICAgICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9oZXhfZmxvYXQgKCk7XG4gICAgICAgICAgICBzY2FuX29wdGlvbmFsbHlfc2lnbmVkX2RlY2ltYWxfaW50IHdpZHRoIGliXG4gICAgICAgICAgfCBfIC0+IHdpZHRoXG4gIClcbiAgfCAnbicgfCAnTicgYXMgYyAtPlxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfaGV4X2Zsb2F0ICgpO1xuICAgIGNoZWNrX2Nhc2VfaW5zZW5zaXRpdmVfc3RyaW5nIHdpZHRoIGliIGJhZF9oZXhfZmxvYXQgXCJhblwiXG4gIHwgJ2knIHwgJ0knIGFzIGMgLT5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2hleF9mbG9hdCAoKTtcbiAgICBjaGVja19jYXNlX2luc2Vuc2l0aXZlX3N0cmluZyB3aWR0aCBpYiBiYWRfaGV4X2Zsb2F0IFwibmZpbml0eVwiXG4gIHwgXyAtPiBiYWRfaGV4X2Zsb2F0ICgpXG5cblxubGV0IHNjYW5fY2FtbF9mbG9hdF9yZXN0IHdpZHRoIHByZWNpc2lvbiBpYiA9XG4gIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfZmxvYXQgKCk7XG4gIGxldCB3aWR0aCA9IHNjYW5fZGVjaW1hbF9kaWdpdF9zdGFyIHdpZHRoIGliIGluXG4gIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfZmxvYXQgKCk7XG4gIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gIG1hdGNoIGMgd2l0aFxuICB8ICcuJyAtPlxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgICgqIFRoZSBlZmZlY3RpdmUgd2lkdGggYXZhaWxhYmxlIGZvciBzY2FubmluZyB0aGUgZnJhY3Rpb25hbCBwYXJ0IGlzXG4gICAgICAgdGhlIG1pbmltdW0gb2YgZGVjbGFyZWQgcHJlY2lzaW9uIGFuZCB3aWR0aCBsZWZ0LiAqKVxuICAgIGxldCBwcmVjaXNpb24gPSBJbnQubWluIHdpZHRoIHByZWNpc2lvbiBpblxuICAgICgqIEFmdGVyIHNjYW5uaW5nIHRoZSBmcmFjdGlvbmFsIHBhcnQgd2l0aCBbcHJlY2lzaW9uXSBwcm92aXNpb25hbCB3aWR0aCxcbiAgICAgICBbd2lkdGhfcHJlY2lzaW9uXSBpcyBsZWZ0LiAqKVxuICAgIGxldCB3aWR0aF9wcmVjaXNpb24gPSBzY2FuX2ZyYWN0aW9uYWxfcGFydCBwcmVjaXNpb24gaWIgaW5cbiAgICAoKiBIZW5jZSwgc2Nhbm5pbmcgdGhlIGZyYWN0aW9uYWwgcGFydCB0b29rIGV4YWN0bHlcbiAgICAgICBbcHJlY2lzaW9uIC0gd2lkdGhfcHJlY2lzaW9uXSBjaGFycy4gKilcbiAgICBsZXQgZnJhY193aWR0aCA9IHByZWNpc2lvbiAtIHdpZHRoX3ByZWNpc2lvbiBpblxuICAgICgqIEFuZCBuZXcgcHJvdmlzaW9uYWwgd2lkdGggaXMgW3dpZHRoIC0gd2lkdGhfcHJlY2lzaW9uLiAqKVxuICAgIGxldCB3aWR0aCA9IHdpZHRoIC0gZnJhY193aWR0aCBpblxuICAgIHNjYW5fZXhwb25lbnRfcGFydCB3aWR0aCBpYlxuICB8ICdlJyB8ICdFJyAtPlxuICAgIHNjYW5fZXhwb25lbnRfcGFydCB3aWR0aCBpYlxuICB8IF8gLT4gYmFkX2Zsb2F0ICgpXG5cblxubGV0IHNjYW5fY2FtbF9mbG9hdCB3aWR0aCBwcmVjaXNpb24gaWIgPVxuICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2Zsb2F0ICgpO1xuICBsZXQgd2lkdGggPSBzY2FuX3NpZ24gd2lkdGggaWIgaW5cbiAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9mbG9hdCAoKTtcbiAgbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgfCAnMCcgYXMgYyAtPiAoXG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9mbG9hdCAoKTtcbiAgICBtYXRjaCBTY2FubmluZy5wZWVrX2NoYXIgaWIgd2l0aFxuICAgIHwgJ3gnIHwgJ1gnIGFzIGMgLT4gKFxuICAgICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2Zsb2F0ICgpO1xuICAgICAgbGV0IHdpZHRoID0gc2Nhbl9oZXhhZGVjaW1hbF9pbnQgd2lkdGggaWIgaW5cbiAgICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfZmxvYXQgKCk7XG4gICAgICBsZXQgd2lkdGggPSBtYXRjaCBTY2FubmluZy5wZWVrX2NoYXIgaWIgd2l0aFxuICAgICAgICB8ICcuJyBhcyBjIC0+IChcbiAgICAgICAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICAgICAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gd2lkdGggZWxzZVxuICAgICAgICAgICAgbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgICAgICAgICAgIHwgJ3AnIHwgJ1AnIC0+IHdpZHRoXG4gICAgICAgICAgICB8IF8gLT5cbiAgICAgICAgICAgICAgbGV0IHByZWNpc2lvbiA9IEludC5taW4gd2lkdGggcHJlY2lzaW9uIGluXG4gICAgICAgICAgICAgIHdpZHRoIC0gKHByZWNpc2lvbiAtIHNjYW5faGV4YWRlY2ltYWxfaW50IHByZWNpc2lvbiBpYilcbiAgICAgICAgKVxuICAgICAgICB8ICdwJyB8ICdQJyAtPiB3aWR0aFxuICAgICAgICB8IF8gLT4gYmFkX2Zsb2F0ICgpIGluXG4gICAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gd2lkdGggZWxzZVxuICAgICAgICBtYXRjaCBTY2FubmluZy5wZWVrX2NoYXIgaWIgd2l0aFxuICAgICAgICB8ICdwJyB8ICdQJyBhcyBjIC0+XG4gICAgICAgICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgICAgICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9oZXhfZmxvYXQgKCk7XG4gICAgICAgICAgc2Nhbl9vcHRpb25hbGx5X3NpZ25lZF9kZWNpbWFsX2ludCB3aWR0aCBpYlxuICAgICAgICB8IF8gLT4gd2lkdGhcbiAgICApXG4gICAgfCBfIC0+XG4gICAgICBzY2FuX2NhbWxfZmxvYXRfcmVzdCB3aWR0aCBwcmVjaXNpb24gaWJcbiAgKVxuICB8ICcxJyAuLiAnOScgYXMgYyAtPlxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfZmxvYXQgKCk7XG4gICAgc2Nhbl9jYW1sX2Zsb2F0X3Jlc3Qgd2lkdGggcHJlY2lzaW9uIGliXG4oKiBTcGVjaWFsIGNhc2Ugb2YgbmFuIGFuZCBpbmZpbml0eTpcbiAgfCAnaScgLT5cbiAgfCAnbicgLT5cbiopXG4gIHwgXyAtPiBiYWRfZmxvYXQgKClcblxuXG4oKiBTY2FuIGEgcmVndWxhciBzdHJpbmc6XG4gICBzdG9wcyB3aGVuIGVuY291bnRlcmluZyBhIHNwYWNlLCBpZiBubyBzY2FubmluZyBpbmRpY2F0aW9uIGhhcyBiZWVuIGdpdmVuO1xuICAgb3RoZXJ3aXNlLCBzdG9wcyB3aGVuIGVuY291bnRlcmluZyB0aGUgY2hhcmFjdGVycyBpbiB0aGUgc2Nhbm5pbmdcbiAgIGluZGljYXRpb24gW3N0cF0uXG4gICBJdCBhbHNvIHN0b3BzIGF0IGVuZCBvZiBmaWxlIG9yIHdoZW4gdGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgaGFzXG4gICBiZWVuIHJlYWQuICopXG5sZXQgc2Nhbl9zdHJpbmcgc3RwIHdpZHRoIGliID1cbiAgbGV0IHJlYyBsb29wIHdpZHRoID1cbiAgICBpZiB3aWR0aCA9IDAgdGhlbiB3aWR0aCBlbHNlXG4gICAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgICBpZiBTY2FubmluZy5lb2YgaWIgdGhlbiB3aWR0aCBlbHNlXG4gICAgICBtYXRjaCBzdHAgd2l0aFxuICAgICAgfCBTb21lIGMnIHdoZW4gYyA9IGMnIC0+IFNjYW5uaW5nLnNraXBfY2hhciB3aWR0aCBpYlxuICAgICAgfCBTb21lIF8gLT4gbG9vcCAoU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjKVxuICAgICAgfCBOb25lIC0+XG4gICAgICAgIG1hdGNoIGMgd2l0aFxuICAgICAgICB8ICcgJyB8ICdcXHQnIHwgJ1xcbicgfCAnXFxyJyAtPiB3aWR0aFxuICAgICAgICB8IF8gLT4gbG9vcCAoU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjKSBpblxuICBsb29wIHdpZHRoXG5cblxuKCogU2NhbiBhIGNoYXI6IHBlZWsgc3RyaWN0bHkgb25lIGNoYXJhY3RlciBpbiB0aGUgaW5wdXQsIHdoYXRzb2V2ZXIuICopXG5sZXQgc2Nhbl9jaGFyIHdpZHRoIGliID1cbiAgKCogVGhlIGNhc2Ugd2lkdGggPSAwIGNvdWxkIG5vdCBoYXBwZW4gaGVyZSwgc2luY2UgaXQgaXMgdGVzdGVkIGJlZm9yZVxuICAgICBjYWxsaW5nIHNjYW5fY2hhciwgaW4gdGhlIG1haW4gc2Nhbm5pbmcgZnVuY3Rpb24uXG4gICAgaWYgd2lkdGggPSAwIHRoZW4gYmFkX3Rva2VuX2xlbmd0aCBcImEgY2hhcmFjdGVyXCIgZWxzZSAqKVxuICBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIChTY2FubmluZy5jaGVja2VkX3BlZWtfY2hhciBpYilcblxuXG5sZXQgY2hhcl9mb3JfYmFja3NsYXNoID0gZnVuY3Rpb25cbiAgfCAnbicgLT4gJ1xcMDEwJ1xuICB8ICdyJyAtPiAnXFwwMTMnXG4gIHwgJ2InIC0+ICdcXDAwOCdcbiAgfCAndCcgLT4gJ1xcMDA5J1xuICB8IGMgLT4gY1xuXG5cbigqIFRoZSBpbnRlZ2VyIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGZhY2lhbCB2YWx1ZSBvZiBhIHZhbGlkXG4gICBkZWNpbWFsIGRpZ2l0IGNoYXJhY3Rlci4gKilcbmxldCBkZWNpbWFsX3ZhbHVlX29mX2NoYXIgYyA9IGludF9vZl9jaGFyIGMgLSBpbnRfb2ZfY2hhciAnMCdcblxubGV0IGNoYXJfZm9yX2RlY2ltYWxfY29kZSBjMCBjMSBjMiA9XG4gIGxldCBjID1cbiAgICAxMDAgKiBkZWNpbWFsX3ZhbHVlX29mX2NoYXIgYzAgK1xuICAgICAxMCAqIGRlY2ltYWxfdmFsdWVfb2ZfY2hhciBjMSArXG4gICAgICAgICAgZGVjaW1hbF92YWx1ZV9vZl9jaGFyIGMyIGluXG4gIGlmIGMgPCAwIHx8IGMgPiAyNTUgdGhlblxuICAgIGJhZF9pbnB1dFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgICBcImJhZCBjaGFyYWN0ZXIgZGVjaW1hbCBlbmNvZGluZyBcXFxcJWMlYyVjXCIgYzAgYzEgYzIpIGVsc2VcbiAgY2hhcl9vZl9pbnQgY1xuXG5cbigqIFRoZSBpbnRlZ2VyIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGZhY2lhbCB2YWx1ZSBvZiBhIHZhbGlkXG4gICBoZXhhZGVjaW1hbCBkaWdpdCBjaGFyYWN0ZXIuICopXG5sZXQgaGV4YWRlY2ltYWxfdmFsdWVfb2ZfY2hhciBjID1cbiAgbGV0IGQgPSBpbnRfb2ZfY2hhciBjIGluXG4gICgqIENvdWxkIGFsc28gYmU6XG4gICAgaWYgZCA8PSBpbnRfb2ZfY2hhciAnOScgdGhlbiBkIC0gaW50X29mX2NoYXIgJzAnIGVsc2VcbiAgICBpZiBkIDw9IGludF9vZl9jaGFyICdGJyB0aGVuIDEwICsgZCAtIGludF9vZl9jaGFyICdBJyBlbHNlXG4gICAgaWYgZCA8PSBpbnRfb2ZfY2hhciAnZicgdGhlbiAxMCArIGQgLSBpbnRfb2ZfY2hhciAnYScgZWxzZSBhc3NlcnQgZmFsc2VcbiAgKilcbiAgaWYgZCA+PSBpbnRfb2ZfY2hhciAnYScgdGhlblxuICAgIGQgLSA4NyAoKiAxMCArIGludF9vZl9jaGFyIGMgLSBpbnRfb2ZfY2hhciAnYScgKikgZWxzZVxuICBpZiBkID49IGludF9vZl9jaGFyICdBJyB0aGVuXG4gICAgZCAtIDU1ICAoKiAxMCArIGludF9vZl9jaGFyIGMgLSBpbnRfb2ZfY2hhciAnQScgKikgZWxzZVxuICAgIGQgLSBpbnRfb2ZfY2hhciAnMCdcblxuXG5sZXQgY2hhcl9mb3JfaGV4YWRlY2ltYWxfY29kZSBjMSBjMiA9XG4gIGxldCBjID1cbiAgICAxNiAqIGhleGFkZWNpbWFsX3ZhbHVlX29mX2NoYXIgYzEgK1xuICAgICAgICAgaGV4YWRlY2ltYWxfdmFsdWVfb2ZfY2hhciBjMiBpblxuICBpZiBjIDwgMCB8fCBjID4gMjU1IHRoZW5cbiAgICBiYWRfaW5wdXRcbiAgICAgIChQcmludGYuc3ByaW50ZiBcImJhZCBjaGFyYWN0ZXIgaGV4YWRlY2ltYWwgZW5jb2RpbmcgXFxcXCVjJWNcIiBjMSBjMikgZWxzZVxuICBjaGFyX29mX2ludCBjXG5cblxuKCogQ2FsbGVkIGluIHBhcnRpY3VsYXIgd2hlbiBlbmNvdW50ZXJpbmcgJ1xcXFwnIGFzIHN0YXJ0ZXIgb2YgYSBjaGFyLlxuICAgU3RvcHMgYmVmb3JlIHRoZSBjb3JyZXNwb25kaW5nICdcXCcnLiAqKVxubGV0IGNoZWNrX25leHRfY2hhciBtZXNzYWdlIHdpZHRoIGliID1cbiAgaWYgd2lkdGggPSAwIHRoZW4gYmFkX3Rva2VuX2xlbmd0aCBtZXNzYWdlIGVsc2VcbiAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgaWYgU2Nhbm5pbmcuZW9mIGliIHRoZW4gYmFkX2VuZF9vZl9pbnB1dCBtZXNzYWdlIGVsc2VcbiAgY1xuXG5cbmxldCBjaGVja19uZXh0X2NoYXJfZm9yX2NoYXIgPSBjaGVja19uZXh0X2NoYXIgXCJhIENoYXJcIlxubGV0IGNoZWNrX25leHRfY2hhcl9mb3Jfc3RyaW5nID0gY2hlY2tfbmV4dF9jaGFyIFwiYSBTdHJpbmdcIlxuXG5sZXQgc2Nhbl9iYWNrc2xhc2hfY2hhciB3aWR0aCBpYiA9XG4gIG1hdGNoIGNoZWNrX25leHRfY2hhcl9mb3JfY2hhciB3aWR0aCBpYiB3aXRoXG4gIHwgJ1xcXFwnIHwgJ1xcJycgfCAnXFxcIicgfCAnbicgfCAndCcgfCAnYicgfCAncicgYXMgYyAtPlxuICAgIFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgKGNoYXJfZm9yX2JhY2tzbGFzaCBjKVxuICB8ICcwJyAuLiAnOScgYXMgYyAtPlxuICAgIGxldCBnZXRfZGlnaXQgKCkgPVxuICAgICAgbGV0IGMgPSBTY2FubmluZy5uZXh0X2NoYXIgaWIgaW5cbiAgICAgIG1hdGNoIGMgd2l0aFxuICAgICAgfCAnMCcgLi4gJzknIGFzIGMgLT4gY1xuICAgICAgfCBjIC0+IGJhZF9pbnB1dF9lc2NhcGUgYyBpblxuICAgIGxldCBjMCA9IGMgaW5cbiAgICBsZXQgYzEgPSBnZXRfZGlnaXQgKCkgaW5cbiAgICBsZXQgYzIgPSBnZXRfZGlnaXQgKCkgaW5cbiAgICBTY2FubmluZy5zdG9yZV9jaGFyICh3aWR0aCAtIDIpIGliIChjaGFyX2Zvcl9kZWNpbWFsX2NvZGUgYzAgYzEgYzIpXG4gIHwgJ3gnIC0+XG4gICAgbGV0IGdldF9kaWdpdCAoKSA9XG4gICAgICBsZXQgYyA9IFNjYW5uaW5nLm5leHRfY2hhciBpYiBpblxuICAgICAgbWF0Y2ggYyB3aXRoXG4gICAgICB8ICcwJyAuLiAnOScgfCAnQScgLi4gJ0YnIHwgJ2EnIC4uICdmJyBhcyBjIC0+IGNcbiAgICAgIHwgYyAtPiBiYWRfaW5wdXRfZXNjYXBlIGMgaW5cbiAgICBsZXQgYzEgPSBnZXRfZGlnaXQgKCkgaW5cbiAgICBsZXQgYzIgPSBnZXRfZGlnaXQgKCkgaW5cbiAgICBTY2FubmluZy5zdG9yZV9jaGFyICh3aWR0aCAtIDIpIGliIChjaGFyX2Zvcl9oZXhhZGVjaW1hbF9jb2RlIGMxIGMyKVxuICB8IGMgLT5cbiAgICBiYWRfaW5wdXRfZXNjYXBlIGNcblxuXG4oKiBTY2FuIGEgY2hhcmFjdGVyIChhbiBPQ2FtbCB0b2tlbikuICopXG5sZXQgc2Nhbl9jYW1sX2NoYXIgd2lkdGggaWIgPVxuXG4gIGxldCByZWMgZmluZF9zdGFydCB3aWR0aCA9XG4gICAgbWF0Y2ggU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIgd2l0aFxuICAgIHwgJ1xcJycgLT4gZmluZF9jaGFyIChTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYilcbiAgICB8IGMgLT4gY2hhcmFjdGVyX21pc21hdGNoICdcXCcnIGNcblxuICBhbmQgZmluZF9jaGFyIHdpZHRoID1cbiAgICBtYXRjaCBjaGVja19uZXh0X2NoYXJfZm9yX2NoYXIgd2lkdGggaWIgd2l0aFxuICAgIHwgJ1xcXFwnIC0+XG4gICAgICBmaW5kX3N0b3AgKHNjYW5fYmFja3NsYXNoX2NoYXIgKFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliKSBpYilcbiAgICB8IGMgLT5cbiAgICAgIGZpbmRfc3RvcCAoU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjKVxuXG4gIGFuZCBmaW5kX3N0b3Agd2lkdGggPVxuICAgIG1hdGNoIGNoZWNrX25leHRfY2hhcl9mb3JfY2hhciB3aWR0aCBpYiB3aXRoXG4gICAgfCAnXFwnJyAtPiBTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYlxuICAgIHwgYyAtPiBjaGFyYWN0ZXJfbWlzbWF0Y2ggJ1xcJycgYyBpblxuXG4gIGZpbmRfc3RhcnQgd2lkdGhcblxuXG4oKiBTY2FuIGEgZGVsaW1pdGVkIHN0cmluZyAoYW4gT0NhbWwgdG9rZW4pLiAqKVxubGV0IHNjYW5fY2FtbF9zdHJpbmcgd2lkdGggaWIgPVxuXG4gIGxldCByZWMgZmluZF9zdGFydCB3aWR0aCA9XG4gICAgbWF0Y2ggU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIgd2l0aFxuICAgIHwgJ1xcXCInIC0+IGZpbmRfc3RvcCAoU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWIpXG4gICAgfCBjIC0+IGNoYXJhY3Rlcl9taXNtYXRjaCAnXFxcIicgY1xuXG4gIGFuZCBmaW5kX3N0b3Agd2lkdGggPVxuICAgIG1hdGNoIGNoZWNrX25leHRfY2hhcl9mb3Jfc3RyaW5nIHdpZHRoIGliIHdpdGhcbiAgICB8ICdcXFwiJyAtPiBTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYlxuICAgIHwgJ1xcXFwnIC0+IHNjYW5fYmFja3NsYXNoIChTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYilcbiAgICB8IGMgLT4gZmluZF9zdG9wIChTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMpXG5cbiAgYW5kIHNjYW5fYmFja3NsYXNoIHdpZHRoID1cbiAgICBtYXRjaCBjaGVja19uZXh0X2NoYXJfZm9yX3N0cmluZyB3aWR0aCBpYiB3aXRoXG4gICAgfCAnXFxyJyAtPiBza2lwX25ld2xpbmUgKFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliKVxuICAgIHwgJ1xcbicgLT4gc2tpcF9zcGFjZXMgKFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliKVxuICAgIHwgXyAtPiBmaW5kX3N0b3AgKHNjYW5fYmFja3NsYXNoX2NoYXIgd2lkdGggaWIpXG5cbiAgYW5kIHNraXBfbmV3bGluZSB3aWR0aCA9XG4gICAgbWF0Y2ggY2hlY2tfbmV4dF9jaGFyX2Zvcl9zdHJpbmcgd2lkdGggaWIgd2l0aFxuICAgIHwgJ1xcbicgLT4gc2tpcF9zcGFjZXMgKFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliKVxuICAgIHwgXyAtPiBmaW5kX3N0b3AgKFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgJ1xccicpXG5cbiAgYW5kIHNraXBfc3BhY2VzIHdpZHRoID1cbiAgICBtYXRjaCBjaGVja19uZXh0X2NoYXJfZm9yX3N0cmluZyB3aWR0aCBpYiB3aXRoXG4gICAgfCAnICcgLT4gc2tpcF9zcGFjZXMgKFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliKVxuICAgIHwgXyAtPiBmaW5kX3N0b3Agd2lkdGggaW5cblxuICBmaW5kX3N0YXJ0IHdpZHRoXG5cblxuKCogU2NhbiBhIGJvb2xlYW4gKGFuIE9DYW1sIHRva2VuKS4gKilcbmxldCBzY2FuX2Jvb2wgaWIgPVxuICBsZXQgYyA9IFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliIGluXG4gIGxldCBtID1cbiAgICBtYXRjaCBjIHdpdGhcbiAgICB8ICd0JyAtPiA0XG4gICAgfCAnZicgLT4gNVxuICAgIHwgYyAtPlxuICAgICAgYmFkX2lucHV0XG4gICAgICAgIChQcmludGYuc3ByaW50ZiBcInRoZSBjaGFyYWN0ZXIgJUMgY2Fubm90IHN0YXJ0IGEgYm9vbGVhblwiIGMpIGluXG4gIHNjYW5fc3RyaW5nIE5vbmUgbSBpYlxuXG5cbigqIFNjYW4gYSBzdHJpbmcgY29udGFpbmluZyBlbGVtZW50cyBpbiBjaGFyX3NldCBhbmQgdGVybWluYXRlZCBieSBzY2FuX2luZGljXG4gICBpZiBwcm92aWRlZC4gKilcbmxldCBzY2FuX2NoYXJzX2luX2NoYXJfc2V0IGNoYXJfc2V0IHNjYW5faW5kaWMgd2lkdGggaWIgPVxuICBsZXQgcmVjIHNjYW5fY2hhcnMgaSBzdHAgPVxuICAgIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gICAgaWYgaSA+IDAgJiYgbm90IChTY2FubmluZy5lb2YgaWIpICYmXG4gICAgICAgaXNfaW5fY2hhcl9zZXQgY2hhcl9zZXQgYyAmJlxuICAgICAgIGludF9vZl9jaGFyIGMgPD4gc3RwIHRoZW5cbiAgICAgIGxldCBfID0gU2Nhbm5pbmcuc3RvcmVfY2hhciBtYXhfaW50IGliIGMgaW5cbiAgICAgIHNjYW5fY2hhcnMgKGkgLSAxKSBzdHAgaW5cbiAgbWF0Y2ggc2Nhbl9pbmRpYyB3aXRoXG4gIHwgTm9uZSAtPiBzY2FuX2NoYXJzIHdpZHRoICgtMSk7XG4gIHwgU29tZSBjIC0+XG4gICAgc2Nhbl9jaGFycyB3aWR0aCAoaW50X29mX2NoYXIgYyk7XG4gICAgaWYgbm90IChTY2FubmluZy5lb2YgaWIpIHRoZW5cbiAgICAgIGxldCBjaSA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICAgICAgaWYgYyA9IGNpXG4gICAgICB0aGVuIFNjYW5uaW5nLmludmFsaWRhdGVfY3VycmVudF9jaGFyIGliXG4gICAgICBlbHNlIGNoYXJhY3Rlcl9taXNtYXRjaCBjIGNpXG5cblxuKCogVGhlIGdsb2JhbCBlcnJvciByZXBvcnQgZnVuY3Rpb24gZm9yIFtTY2FuZl0uICopXG5sZXQgc2NhbmZfYmFkX2lucHV0IGliID0gZnVuY3Rpb25cbiAgfCBTY2FuX2ZhaWx1cmUgcyB8IEZhaWx1cmUgcyAtPlxuICAgIGxldCBpID0gU2Nhbm5pbmcuY2hhcl9jb3VudCBpYiBpblxuICAgIGJhZF9pbnB1dCAoUHJpbnRmLnNwcmludGYgXCJzY2FuZjogYmFkIGlucHV0IGF0IGNoYXIgbnVtYmVyICVpOiAlc1wiIGkgcylcbiAgfCB4IC0+IHJhaXNlIHhcblxuXG4oKiBHZXQgdGhlIGNvbnRlbnQgb2YgYSBjb3VudGVyIGZyb20gYW4gaW5wdXQgYnVmZmVyLiAqKVxubGV0IGdldF9jb3VudGVyIGliIGNvdW50ZXIgPVxuICBtYXRjaCBjb3VudGVyIHdpdGhcbiAgfCBMaW5lX2NvdW50ZXIgLT4gU2Nhbm5pbmcubGluZV9jb3VudCBpYlxuICB8IENoYXJfY291bnRlciAtPiBTY2FubmluZy5jaGFyX2NvdW50IGliXG4gIHwgVG9rZW5fY291bnRlciAtPiBTY2FubmluZy50b2tlbl9jb3VudCBpYlxuXG5cbigqIENvbXB1dGUgdGhlIHdpZHRoIG9mIGEgcGFkZGluZyBvcHRpb24gKHNlZSBcIiU0MntcIiBhbmQgXCIlMTIzKFwiKS4gKilcbmxldCB3aWR0aF9vZl9wYWRfb3B0IHBhZF9vcHQgPSBtYXRjaCBwYWRfb3B0IHdpdGhcbiAgfCBOb25lIC0+IG1heF9pbnRcbiAgfCBTb21lIHdpZHRoIC0+IHdpZHRoXG5cblxubGV0IHN0b3BwZXJfb2ZfZm9ybWF0dGluZ19saXQgZm10aW5nID1cbiAgaWYgZm10aW5nID0gRXNjYXBlZF9wZXJjZW50IHRoZW4gJyUnLCBcIlwiIGVsc2VcbiAgICBsZXQgc3RyID0gc3RyaW5nX29mX2Zvcm1hdHRpbmdfbGl0IGZtdGluZyBpblxuICAgIGxldCBzdHAgPSBzdHIuWzFdIGluXG4gICAgbGV0IHN1Yl9zdHIgPSBTdHJpbmcuc3ViIHN0ciAyIChTdHJpbmcubGVuZ3RoIHN0ciAtIDIpIGluXG4gICAgc3RwLCBzdWJfc3RyXG5cblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIFJlYWRlciBtYW5hZ2VtZW50ICopXG5cbigqIEEgY2FsbCB0byB0YWtlX2Zvcm1hdF9yZWFkZXJzIG9uIGEgZm9ybWF0IGlzIGV2YWx1YXRlZCBpbnRvIGZ1bmN0aW9uc1xuICAgdGFraW5nIHJlYWRlcnMgYXMgYXJndW1lbnRzIGFuZCBhZ2dyZWdhdGUgdGhlbSBpbnRvIGFuIGhldGVyb2dlbmVvdXMgbGlzdCAqKVxuKCogV2hlbiBhbGwgcmVhZGVycyBhcmUgdGFrZW4sIGZpbmFsbHkgcGFzcyB0aGUgbGlzdCBvZiB0aGUgcmVhZGVycyB0byB0aGVcbiAgIGNvbnRpbnVhdGlvbiBrLiAqKVxubGV0IHJlYyB0YWtlX2Zvcm1hdF9yZWFkZXJzIDogdHlwZSBhIGMgZCBlIGYgLlxuICAgICgoZCwgZSkgaGV0ZXJfbGlzdCAtPiBlKSAtPiAoYSwgU2Nhbm5pbmcuaW5fY2hhbm5lbCwgYywgZCwgZSwgZikgZm10IC0+XG4gICAgZCA9XG5mdW4gayBmbXQgLT4gbWF0Y2ggZm10IHdpdGhcbiAgfCBSZWFkZXIgZm10X3Jlc3QgLT5cbiAgICBmdW4gcmVhZGVyIC0+XG4gICAgICBsZXQgbmV3X2sgcmVhZGVyc19yZXN0ID0gayAoQ29ucyAocmVhZGVyLCByZWFkZXJzX3Jlc3QpKSBpblxuICAgICAgdGFrZV9mb3JtYXRfcmVhZGVycyBuZXdfayBmbXRfcmVzdFxuICB8IENoYXIgcmVzdCAgICAgICAgICAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgQ2FtbF9jaGFyIHJlc3QgICAgICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBTdHJpbmcgKF8sIHJlc3QpICAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IENhbWxfc3RyaW5nIChfLCByZXN0KSAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgSW50IChfLCBfLCBfLCByZXN0KSAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBJbnQzMiAoXywgXywgXywgcmVzdCkgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IE5hdGl2ZWludCAoXywgXywgXywgcmVzdCkgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgSW50NjQgKF8sIF8sIF8sIHJlc3QpICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBGbG9hdCAoXywgXywgXywgcmVzdCkgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEJvb2wgKF8sIHJlc3QpICAgICAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgQWxwaGEgcmVzdCAgICAgICAgICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBUaGV0YSByZXN0ICAgICAgICAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEZsdXNoIHJlc3QgICAgICAgICAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgU3RyaW5nX2xpdGVyYWwgKF8sIHJlc3QpICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBDaGFyX2xpdGVyYWwgKF8sIHJlc3QpICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEN1c3RvbSAoXywgXywgcmVzdCkgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG5cbiAgfCBTY2FuX2NoYXJfc2V0IChfLCBfLCByZXN0KSAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IFNjYW5fZ2V0X2NvdW50ZXIgKF8sIHJlc3QpICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgU2Nhbl9uZXh0X2NoYXIgcmVzdCAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcblxuICB8IEZvcm1hdHRpbmdfbGl0IChfLCByZXN0KSAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgRm9ybWF0dGluZ19nZW4gKE9wZW5fdGFnIChGb3JtYXQgKGZtdCwgXykpLCByZXN0KSAtPlxuICAgICAgdGFrZV9mb3JtYXRfcmVhZGVycyBrIChjb25jYXRfZm10IGZtdCByZXN0KVxuICB8IEZvcm1hdHRpbmdfZ2VuIChPcGVuX2JveCAoRm9ybWF0IChmbXQsIF8pKSwgcmVzdCkgLT5cbiAgICAgIHRha2VfZm9ybWF0X3JlYWRlcnMgayAoY29uY2F0X2ZtdCBmbXQgcmVzdClcblxuICB8IEZvcm1hdF9hcmcgKF8sIF8sIHJlc3QpICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgRm9ybWF0X3N1YnN0IChfLCBmbXR0eSwgcmVzdCkgICAgLT5cbiAgICAgdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIChlcmFzZV9yZWwgKHN5bW0gZm10dHkpKSByZXN0XG4gIHwgSWdub3JlZF9wYXJhbSAoaWduLCByZXN0KSAgICAgICAgLT4gdGFrZV9pZ25vcmVkX2Zvcm1hdF9yZWFkZXJzIGsgaWduIHJlc3RcblxuICB8IEVuZF9vZl9mb3JtYXQgICAgICAgICAgICAgICAgICAgIC0+IGsgTmlsXG5cbigqIFRha2UgcmVhZGVycyBhc3NvY2lhdGVkIHRvIGFuIGZtdHR5IGNvbWluZyBmcm9tIGEgRm9ybWF0X3N1YnN0IFwiJSguLi4lKVwiLiAqKVxuYW5kIHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgOiB0eXBlIHggeSBhIGMgZCBlIGYgLlxuICAgICgoZCwgZSkgaGV0ZXJfbGlzdCAtPiBlKSAtPiAoYSwgU2Nhbm5pbmcuaW5fY2hhbm5lbCwgYywgZCwgeCwgeSkgZm10dHkgLT5cbiAgICAgICh5LCBTY2FubmluZy5pbl9jaGFubmVsLCBjLCB4LCBlLCBmKSBmbXQgLT4gZCA9XG5mdW4gayBmbXR0eSBmbXQgLT4gbWF0Y2ggZm10dHkgd2l0aFxuICB8IFJlYWRlcl90eSBmbXRfcmVzdCAtPlxuICAgIGZ1biByZWFkZXIgLT5cbiAgICAgIGxldCBuZXdfayByZWFkZXJzX3Jlc3QgPSBrIChDb25zIChyZWFkZXIsIHJlYWRlcnNfcmVzdCkpIGluXG4gICAgICB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIG5ld19rIGZtdF9yZXN0IGZtdFxuICB8IElnbm9yZWRfcmVhZGVyX3R5IGZtdF9yZXN0IC0+XG4gICAgZnVuIHJlYWRlciAtPlxuICAgICAgbGV0IG5ld19rIHJlYWRlcnNfcmVzdCA9IGsgKENvbnMgKHJlYWRlciwgcmVhZGVyc19yZXN0KSkgaW5cbiAgICAgIHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgbmV3X2sgZm10X3Jlc3QgZm10XG4gIHwgQ2hhcl90eSByZXN0ICAgICAgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IFN0cmluZ190eSByZXN0ICAgICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBJbnRfdHkgcmVzdCAgICAgICAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgSW50MzJfdHkgcmVzdCAgICAgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IE5hdGl2ZWludF90eSByZXN0ICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBJbnQ2NF90eSByZXN0ICAgICAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgRmxvYXRfdHkgcmVzdCAgICAgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IEJvb2xfdHkgcmVzdCAgICAgICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBBbHBoYV90eSByZXN0ICAgICAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgVGhldGFfdHkgcmVzdCAgICAgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IEFueV90eSByZXN0ICAgICAgICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBGb3JtYXRfYXJnX3R5IChfLCByZXN0KSAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgRW5kX29mX2ZtdHR5ICAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBGb3JtYXRfc3Vic3RfdHkgKHR5MSwgdHkyLCByZXN0KSAtPlxuICAgIGxldCB0eSA9IHRyYW5zIChzeW1tIHR5MSkgdHkyIGluXG4gICAgdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIChjb25jYXRfZm10dHkgdHkgcmVzdCkgZm10XG5cbigqIFRha2UgcmVhZGVycyBhc3NvY2lhdGVkIHRvIGFuIGlnbm9yZWQgcGFyYW1ldGVyLiAqKVxuYW5kIHRha2VfaWdub3JlZF9mb3JtYXRfcmVhZGVycyA6IHR5cGUgeCB5IGEgYyBkIGUgZiAuXG4gICAgKChkLCBlKSBoZXRlcl9saXN0IC0+IGUpIC0+IChhLCBTY2FubmluZy5pbl9jaGFubmVsLCBjLCBkLCB4LCB5KSBpZ25vcmVkIC0+XG4gICAgICAoeSwgU2Nhbm5pbmcuaW5fY2hhbm5lbCwgYywgeCwgZSwgZikgZm10IC0+IGQgPVxuZnVuIGsgaWduIGZtdCAtPiBtYXRjaCBpZ24gd2l0aFxuICB8IElnbm9yZWRfcmVhZGVyIC0+XG4gICAgZnVuIHJlYWRlciAtPlxuICAgICAgbGV0IG5ld19rIHJlYWRlcnNfcmVzdCA9IGsgKENvbnMgKHJlYWRlciwgcmVhZGVyc19yZXN0KSkgaW5cbiAgICAgIHRha2VfZm9ybWF0X3JlYWRlcnMgbmV3X2sgZm10XG4gIHwgSWdub3JlZF9jaGFyICAgICAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9jYW1sX2NoYXIgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9zdHJpbmcgXyAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9jYW1sX3N0cmluZyBfICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9pbnQgKF8sIF8pICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9pbnQzMiAoXywgXykgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9uYXRpdmVpbnQgKF8sIF8pICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9pbnQ2NCAoXywgXykgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9mbG9hdCAoXywgXykgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9ib29sIF8gICAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9mb3JtYXRfYXJnIF8gICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9mb3JtYXRfc3Vic3QgKF8sIGZtdHR5KSAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgZm10dHkgZm10XG4gIHwgSWdub3JlZF9zY2FuX2NoYXJfc2V0IF8gICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9zY2FuX2dldF9jb3VudGVyIF8gICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG4gIHwgSWdub3JlZF9zY2FuX25leHRfY2hhciAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgZm10XG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICgqIEdlbmVyaWMgc2Nhbm5pbmcgKilcblxuKCogTWFrZSBhIGdlbmVyaWMgc2Nhbm5pbmcgZnVuY3Rpb24uICopXG4oKiBTY2FuIGEgc3RyZWFtIGFjY29yZGluZyB0byBhIGZvcm1hdCBhbmQgcmVhZGVycyBvYnRhaW5lZCBieVxuICAgdGFrZV9mb3JtYXRfcmVhZGVycywgYW5kIGFnZ3JlZ2F0ZSBzY2FubmVkIHZhbHVlcyBpbnRvIGFuXG4gICBoZXRlcm9nZW5lb3VzIGxpc3QuICopXG4oKiBSZXR1cm4gdGhlIGhldGVyb2dlbmVvdXMgbGlzdCBvZiBzY2FubmVkIHZhbHVlcy4gKilcbmxldCByZWMgbWFrZV9zY2FuZiA6IHR5cGUgYSBjIGQgZSBmLlxuICAgIFNjYW5uaW5nLmluX2NoYW5uZWwgLT4gKGEsIFNjYW5uaW5nLmluX2NoYW5uZWwsIGMsIGQsIGUsIGYpIGZtdCAtPlxuICAgICAgKGQsIGUpIGhldGVyX2xpc3QgLT4gKGEsIGYpIGhldGVyX2xpc3QgPVxuZnVuIGliIGZtdCByZWFkZXJzIC0+IG1hdGNoIGZtdCB3aXRoXG4gIHwgQ2hhciByZXN0IC0+XG4gICAgbGV0IF8gPSBzY2FuX2NoYXIgMCBpYiBpblxuICAgIGxldCBjID0gdG9rZW5fY2hhciBpYiBpblxuICAgIENvbnMgKGMsIG1ha2Vfc2NhbmYgaWIgcmVzdCByZWFkZXJzKVxuICB8IENhbWxfY2hhciByZXN0IC0+XG4gICAgbGV0IF8gPSBzY2FuX2NhbWxfY2hhciAwIGliIGluXG4gICAgbGV0IGMgPSB0b2tlbl9jaGFyIGliIGluXG4gICAgQ29ucyAoYywgbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnMpXG5cbiAgfCBTdHJpbmcgKHBhZCwgRm9ybWF0dGluZ19saXQgKGZtdGluZ19saXQsIHJlc3QpKSAtPlxuICAgIGxldCBzdHAsIHN0ciA9IHN0b3BwZXJfb2ZfZm9ybWF0dGluZ19saXQgZm10aW5nX2xpdCBpblxuICAgIGxldCBzY2FuIHdpZHRoIF8gaWIgPSBzY2FuX3N0cmluZyAoU29tZSBzdHApIHdpZHRoIGliIGluXG4gICAgbGV0IHN0cl9yZXN0ID0gU3RyaW5nX2xpdGVyYWwgKHN0ciwgcmVzdCkgaW5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiBzdHJfcmVzdCByZWFkZXJzIHBhZCBOb19wcmVjaXNpb24gc2NhbiB0b2tlbl9zdHJpbmdcbiAgfCBTdHJpbmcgKHBhZCwgRm9ybWF0dGluZ19nZW4gKE9wZW5fdGFnIChGb3JtYXQgKGZtdCcsIF8pKSwgcmVzdCkpIC0+XG4gICAgbGV0IHNjYW4gd2lkdGggXyBpYiA9IHNjYW5fc3RyaW5nIChTb21lICd7Jykgd2lkdGggaWIgaW5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiAoY29uY2F0X2ZtdCBmbXQnIHJlc3QpIHJlYWRlcnMgcGFkIE5vX3ByZWNpc2lvbiBzY2FuXG4gICAgICAgICAgICAgICAgICAgdG9rZW5fc3RyaW5nXG4gIHwgU3RyaW5nIChwYWQsIEZvcm1hdHRpbmdfZ2VuIChPcGVuX2JveCAoRm9ybWF0IChmbXQnLCBfKSksIHJlc3QpKSAtPlxuICAgIGxldCBzY2FuIHdpZHRoIF8gaWIgPSBzY2FuX3N0cmluZyAoU29tZSAnWycpIHdpZHRoIGliIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgKGNvbmNhdF9mbXQgZm10JyByZXN0KSByZWFkZXJzIHBhZCBOb19wcmVjaXNpb24gc2NhblxuICAgICAgICAgICAgICAgICAgIHRva2VuX3N0cmluZ1xuICB8IFN0cmluZyAocGFkLCByZXN0KSAtPlxuICAgIGxldCBzY2FuIHdpZHRoIF8gaWIgPSBzY2FuX3N0cmluZyBOb25lIHdpZHRoIGliIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgcmVzdCByZWFkZXJzIHBhZCBOb19wcmVjaXNpb24gc2NhbiB0b2tlbl9zdHJpbmdcblxuICB8IENhbWxfc3RyaW5nIChwYWQsIHJlc3QpIC0+XG4gICAgbGV0IHNjYW4gd2lkdGggXyBpYiA9IHNjYW5fY2FtbF9zdHJpbmcgd2lkdGggaWIgaW5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiByZXN0IHJlYWRlcnMgcGFkIE5vX3ByZWNpc2lvbiBzY2FuIHRva2VuX3N0cmluZ1xuICB8IEludCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBsZXQgYyA9IGludGVnZXJfY29udmVyc2lvbl9vZl9jaGFyIChjaGFyX29mX2ljb252IGljb252KSBpblxuICAgIGxldCBzY2FuIHdpZHRoIF8gaWIgPSBzY2FuX2ludF9jb252ZXJzaW9uIGMgd2lkdGggaWIgaW5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiByZXN0IHJlYWRlcnMgcGFkIHByZWMgc2NhbiAodG9rZW5faW50IGMpXG4gIHwgSW50MzIgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbGV0IGMgPSBpbnRlZ2VyX2NvbnZlcnNpb25fb2ZfY2hhciAoY2hhcl9vZl9pY29udiBpY29udikgaW5cbiAgICBsZXQgc2NhbiB3aWR0aCBfIGliID0gc2Nhbl9pbnRfY29udmVyc2lvbiBjIHdpZHRoIGliIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgcmVzdCByZWFkZXJzIHBhZCBwcmVjIHNjYW4gKHRva2VuX2ludDMyIGMpXG4gIHwgTmF0aXZlaW50IChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIGxldCBjID0gaW50ZWdlcl9jb252ZXJzaW9uX29mX2NoYXIgKGNoYXJfb2ZfaWNvbnYgaWNvbnYpIGluXG4gICAgbGV0IHNjYW4gd2lkdGggXyBpYiA9IHNjYW5faW50X2NvbnZlcnNpb24gYyB3aWR0aCBpYiBpblxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHJlc3QgcmVhZGVycyBwYWQgcHJlYyBzY2FuICh0b2tlbl9uYXRpdmVpbnQgYylcbiAgfCBJbnQ2NCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBsZXQgYyA9IGludGVnZXJfY29udmVyc2lvbl9vZl9jaGFyIChjaGFyX29mX2ljb252IGljb252KSBpblxuICAgIGxldCBzY2FuIHdpZHRoIF8gaWIgPSBzY2FuX2ludF9jb252ZXJzaW9uIGMgd2lkdGggaWIgaW5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiByZXN0IHJlYWRlcnMgcGFkIHByZWMgc2NhbiAodG9rZW5faW50NjQgYylcbiAgfCBGbG9hdCAoKF8sIChGbG9hdF9GIHwgRmxvYXRfQ0YpKSwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHJlc3QgcmVhZGVycyBwYWQgcHJlYyBzY2FuX2NhbWxfZmxvYXQgdG9rZW5fZmxvYXRcbiAgfCBGbG9hdCAoKF8sIChGbG9hdF9mIHwgRmxvYXRfZSB8IEZsb2F0X0UgfCBGbG9hdF9nIHwgRmxvYXRfRykpLFxuICAgICAgICAgICBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgcmVzdCByZWFkZXJzIHBhZCBwcmVjIHNjYW5fZmxvYXQgdG9rZW5fZmxvYXRcbiAgfCBGbG9hdCAoKF8sIChGbG9hdF9oIHwgRmxvYXRfSCkpLCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgcmVzdCByZWFkZXJzIHBhZCBwcmVjIHNjYW5faGV4X2Zsb2F0IHRva2VuX2Zsb2F0XG4gIHwgQm9vbCAocGFkLCByZXN0KSAtPlxuICAgIGxldCBzY2FuIF8gXyBpYiA9IHNjYW5fYm9vbCBpYiBpblxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHJlc3QgcmVhZGVycyBwYWQgTm9fcHJlY2lzaW9uIHNjYW4gdG9rZW5fYm9vbFxuICB8IEFscGhhIF8gLT5cbiAgICBpbnZhbGlkX2FyZyBcInNjYW5mOiBiYWQgY29udmVyc2lvbiBcXFwiJWFcXFwiXCJcbiAgfCBUaGV0YSBfIC0+XG4gICAgaW52YWxpZF9hcmcgXCJzY2FuZjogYmFkIGNvbnZlcnNpb24gXFxcIiV0XFxcIlwiXG4gIHwgQ3VzdG9tIF8gLT5cbiAgICBpbnZhbGlkX2FyZyBcInNjYW5mOiBiYWQgY29udmVyc2lvbiBcXFwiJT9cXFwiIChjdXN0b20gY29udmVydGVyKVwiXG4gIHwgUmVhZGVyIGZtdF9yZXN0IC0+XG4gICAgYmVnaW4gbWF0Y2ggcmVhZGVycyB3aXRoXG4gICAgfCBDb25zIChyZWFkZXIsIHJlYWRlcnNfcmVzdCkgLT5cbiAgICAgICAgbGV0IHggPSByZWFkZXIgaWIgaW5cbiAgICAgICAgQ29ucyAoeCwgbWFrZV9zY2FuZiBpYiBmbXRfcmVzdCByZWFkZXJzX3Jlc3QpXG4gICAgfCBOaWwgLT5cbiAgICAgICAgaW52YWxpZF9hcmcgXCJzY2FuZjogbWlzc2luZyByZWFkZXJcIlxuICAgIGVuZFxuICB8IEZsdXNoIHJlc3QgLT5cbiAgICBpZiBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBtYWtlX3NjYW5mIGliIHJlc3QgcmVhZGVyc1xuICAgIGVsc2UgYmFkX2lucHV0IFwiZW5kIG9mIGlucHV0IG5vdCBmb3VuZFwiXG5cbiAgfCBTdHJpbmdfbGl0ZXJhbCAoc3RyLCByZXN0KSAtPlxuICAgIFN0cmluZy5pdGVyIChjaGVja19jaGFyIGliKSBzdHI7XG4gICAgbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnNcbiAgfCBDaGFyX2xpdGVyYWwgKGNociwgcmVzdCkgLT5cbiAgICBjaGVja19jaGFyIGliIGNocjtcbiAgICBtYWtlX3NjYW5mIGliIHJlc3QgcmVhZGVyc1xuXG4gIHwgRm9ybWF0X2FyZyAocGFkX29wdCwgZm10dHksIHJlc3QpIC0+XG4gICAgbGV0IF8gPSBzY2FuX2NhbWxfc3RyaW5nICh3aWR0aF9vZl9wYWRfb3B0IHBhZF9vcHQpIGliIGluXG4gICAgbGV0IHMgPSB0b2tlbl9zdHJpbmcgaWIgaW5cbiAgICBsZXQgZm10ID1cbiAgICAgIHRyeSBmb3JtYXRfb2Zfc3RyaW5nX2ZtdHR5IHMgZm10dHlcbiAgICAgIHdpdGggRmFpbHVyZSBtc2cgLT4gYmFkX2lucHV0IG1zZ1xuICAgIGluXG4gICAgQ29ucyAoZm10LCBtYWtlX3NjYW5mIGliIHJlc3QgcmVhZGVycylcbiAgfCBGb3JtYXRfc3Vic3QgKHBhZF9vcHQsIGZtdHR5LCByZXN0KSAtPlxuICAgIGxldCBfID0gc2Nhbl9jYW1sX3N0cmluZyAod2lkdGhfb2ZfcGFkX29wdCBwYWRfb3B0KSBpYiBpblxuICAgIGxldCBzID0gdG9rZW5fc3RyaW5nIGliIGluXG4gICAgbGV0IGZtdCwgZm10JyA9XG4gICAgICB0cnlcbiAgICAgICAgbGV0IEZtdF9FQkIgZm10ID0gZm10X2ViYl9vZl9zdHJpbmcgcyBpblxuICAgICAgICBsZXQgRm10X0VCQiBmbXQnID0gZm10X2ViYl9vZl9zdHJpbmcgcyBpblxuICAgICAgICAoKiBUT0RPOiBmaW5kIGEgd2F5IHRvIGF2b2lkIHJlcGFyc2luZyB0d2ljZSAqKVxuXG4gICAgICAgICgqIFRPRE86IHRoZXNlIHR5cGUtY2hlY2tzIGJlbG93ICpjYW4qIGZhaWwgYmVjYXVzZSBvZiB0eXBlXG4gICAgICAgICAgIGFtYmlndWl0eSBpbiBwcmVzZW5jZSBvZiBpZ25vcmVkLXJlYWRlcnM6IFwiJV9yJWRcIiBhbmQgXCIlZCVfclwiXG4gICAgICAgICAgIGFyZSB0eXBlZCBpbiB0aGUgc2FtZSB3YXkuXG5cbiAgICAgICAgICAgIyBTY2FuZi5zc2NhbmYgXCJcXFwiJV9yJWRcXFwiM1wiIFwiJSglZCVfciUpXCIgaWdub3JlXG4gICAgICAgICAgICAgKGZ1biBmbXQgbiAtPiBzdHJpbmdfb2ZfZm9ybWF0IGZtdCwgbilcbiAgICAgICAgICAgRXhjZXB0aW9uOiBDYW1saW50ZXJuYWxGb3JtYXQuVHlwZV9taXNtYXRjaC5cblxuICAgICAgICAgICBXZSBzaG91bGQgcHJvcGVybHkgY2F0Y2ggdGhpcyBleGNlcHRpb24uXG4gICAgICAgICopXG4gICAgICAgIHR5cGVfZm9ybWF0IGZtdCAoZXJhc2VfcmVsIGZtdHR5KSxcbiAgICAgICAgdHlwZV9mb3JtYXQgZm10JyAoZXJhc2VfcmVsIChzeW1tIGZtdHR5KSlcbiAgICAgIHdpdGggRmFpbHVyZSBtc2cgLT4gYmFkX2lucHV0IG1zZ1xuICAgIGluXG4gICAgQ29ucyAoRm9ybWF0IChmbXQsIHMpLFxuICAgICAgICAgIG1ha2Vfc2NhbmYgaWIgKGNvbmNhdF9mbXQgZm10JyByZXN0KSByZWFkZXJzKVxuXG4gIHwgU2Nhbl9jaGFyX3NldCAod2lkdGhfb3B0LCBjaGFyX3NldCwgRm9ybWF0dGluZ19saXQgKGZtdGluZ19saXQsIHJlc3QpKSAtPlxuICAgIGxldCBzdHAsIHN0ciA9IHN0b3BwZXJfb2ZfZm9ybWF0dGluZ19saXQgZm10aW5nX2xpdCBpblxuICAgIGxldCB3aWR0aCA9IHdpZHRoX29mX3BhZF9vcHQgd2lkdGhfb3B0IGluXG4gICAgc2Nhbl9jaGFyc19pbl9jaGFyX3NldCBjaGFyX3NldCAoU29tZSBzdHApIHdpZHRoIGliO1xuICAgIGxldCBzID0gdG9rZW5fc3RyaW5nIGliIGluXG4gICAgbGV0IHN0cl9yZXN0ID0gU3RyaW5nX2xpdGVyYWwgKHN0ciwgcmVzdCkgaW5cbiAgICBDb25zIChzLCBtYWtlX3NjYW5mIGliIHN0cl9yZXN0IHJlYWRlcnMpXG4gIHwgU2Nhbl9jaGFyX3NldCAod2lkdGhfb3B0LCBjaGFyX3NldCwgcmVzdCkgLT5cbiAgICBsZXQgd2lkdGggPSB3aWR0aF9vZl9wYWRfb3B0IHdpZHRoX29wdCBpblxuICAgIHNjYW5fY2hhcnNfaW5fY2hhcl9zZXQgY2hhcl9zZXQgTm9uZSB3aWR0aCBpYjtcbiAgICBsZXQgcyA9IHRva2VuX3N0cmluZyBpYiBpblxuICAgIENvbnMgKHMsIG1ha2Vfc2NhbmYgaWIgcmVzdCByZWFkZXJzKVxuICB8IFNjYW5fZ2V0X2NvdW50ZXIgKGNvdW50ZXIsIHJlc3QpIC0+XG4gICAgbGV0IGNvdW50ID0gZ2V0X2NvdW50ZXIgaWIgY291bnRlciBpblxuICAgIENvbnMgKGNvdW50LCBtYWtlX3NjYW5mIGliIHJlc3QgcmVhZGVycylcbiAgfCBTY2FuX25leHRfY2hhciByZXN0IC0+XG4gICAgbGV0IGMgPSBTY2FubmluZy5jaGVja2VkX3BlZWtfY2hhciBpYiBpblxuICAgIENvbnMgKGMsIG1ha2Vfc2NhbmYgaWIgcmVzdCByZWFkZXJzKVxuXG4gIHwgRm9ybWF0dGluZ19saXQgKGZvcm1hdHRpbmdfbGl0LCByZXN0KSAtPlxuICAgIFN0cmluZy5pdGVyIChjaGVja19jaGFyIGliKSAoc3RyaW5nX29mX2Zvcm1hdHRpbmdfbGl0IGZvcm1hdHRpbmdfbGl0KTtcbiAgICBtYWtlX3NjYW5mIGliIHJlc3QgcmVhZGVyc1xuICB8IEZvcm1hdHRpbmdfZ2VuIChPcGVuX3RhZyAoRm9ybWF0IChmbXQnLCBfKSksIHJlc3QpIC0+XG4gICAgY2hlY2tfY2hhciBpYiAnQCc7IGNoZWNrX2NoYXIgaWIgJ3snO1xuICAgIG1ha2Vfc2NhbmYgaWIgKGNvbmNhdF9mbXQgZm10JyByZXN0KSByZWFkZXJzXG4gIHwgRm9ybWF0dGluZ19nZW4gKE9wZW5fYm94IChGb3JtYXQgKGZtdCcsIF8pKSwgcmVzdCkgLT5cbiAgICBjaGVja19jaGFyIGliICdAJzsgY2hlY2tfY2hhciBpYiAnWyc7XG4gICAgbWFrZV9zY2FuZiBpYiAoY29uY2F0X2ZtdCBmbXQnIHJlc3QpIHJlYWRlcnNcblxuICB8IElnbm9yZWRfcGFyYW0gKGlnbiwgcmVzdCkgLT5cbiAgICBsZXQgUGFyYW1fZm9ybWF0X0VCQiBmbXQnID0gcGFyYW1fZm9ybWF0X29mX2lnbm9yZWRfZm9ybWF0IGlnbiByZXN0IGluXG4gICAgYmVnaW4gbWF0Y2ggbWFrZV9zY2FuZiBpYiBmbXQnIHJlYWRlcnMgd2l0aFxuICAgIHwgQ29ucyAoXywgYXJnX3Jlc3QpIC0+IGFyZ19yZXN0XG4gICAgfCBOaWwgLT4gYXNzZXJ0IGZhbHNlXG4gICAgZW5kXG5cbiAgfCBFbmRfb2ZfZm9ybWF0IC0+XG4gICAgTmlsXG5cbigqIENhc2UgYW5hbHlzaXMgb24gcGFkZGluZyBhbmQgcHJlY2lzaW9uLiAqKVxuKCogUmVqZWN0IGZvcm1hdHMgY29udGFpbmluZyBcIiUqXCIgb3IgXCIlLipcIi4gKilcbigqIFBhc3MgcGFkZGluZyBhbmQgcHJlY2lzaW9uIHRvIHRoZSBnZW5lcmljIHNjYW5uZXIgYHNjYW4nLiAqKVxuYW5kIHBhZF9wcmVjX3NjYW5mIDogdHlwZSBhIGMgZCBlIGYgeCB5IHogdCAuXG4gICAgU2Nhbm5pbmcuaW5fY2hhbm5lbCAtPiAoYSwgU2Nhbm5pbmcuaW5fY2hhbm5lbCwgYywgZCwgZSwgZikgZm10IC0+XG4gICAgICAoZCwgZSkgaGV0ZXJfbGlzdCAtPiAoeCwgeSkgcGFkZGluZyAtPiAoeSwgeiAtPiBhKSBwcmVjaXNpb24gLT5cbiAgICAgIChpbnQgLT4gaW50IC0+IFNjYW5uaW5nLmluX2NoYW5uZWwgLT4gdCkgLT5cbiAgICAgIChTY2FubmluZy5pbl9jaGFubmVsIC0+IHopIC0+XG4gICAgICAoeCwgZikgaGV0ZXJfbGlzdCA9XG5mdW4gaWIgZm10IHJlYWRlcnMgcGFkIHByZWMgc2NhbiB0b2tlbiAtPiBtYXRjaCBwYWQsIHByZWMgd2l0aFxuICB8IE5vX3BhZGRpbmcsIE5vX3ByZWNpc2lvbiAtPlxuICAgIGxldCBfID0gc2NhbiBtYXhfaW50IG1heF9pbnQgaWIgaW5cbiAgICBsZXQgeCA9IHRva2VuIGliIGluXG4gICAgQ29ucyAoeCwgbWFrZV9zY2FuZiBpYiBmbXQgcmVhZGVycylcbiAgfCBOb19wYWRkaW5nLCBMaXRfcHJlY2lzaW9uIHAgLT5cbiAgICBsZXQgXyA9IHNjYW4gbWF4X2ludCBwIGliIGluXG4gICAgbGV0IHggPSB0b2tlbiBpYiBpblxuICAgIENvbnMgKHgsIG1ha2Vfc2NhbmYgaWIgZm10IHJlYWRlcnMpXG4gIHwgTGl0X3BhZGRpbmcgKChSaWdodCB8IFplcm9zKSwgdyksIE5vX3ByZWNpc2lvbiAtPlxuICAgIGxldCBfID0gc2NhbiB3IG1heF9pbnQgaWIgaW5cbiAgICBsZXQgeCA9IHRva2VuIGliIGluXG4gICAgQ29ucyAoeCwgbWFrZV9zY2FuZiBpYiBmbXQgcmVhZGVycylcbiAgfCBMaXRfcGFkZGluZyAoKFJpZ2h0IHwgWmVyb3MpLCB3KSwgTGl0X3ByZWNpc2lvbiBwIC0+XG4gICAgbGV0IF8gPSBzY2FuIHcgcCBpYiBpblxuICAgIGxldCB4ID0gdG9rZW4gaWIgaW5cbiAgICBDb25zICh4LCBtYWtlX3NjYW5mIGliIGZtdCByZWFkZXJzKVxuICB8IExpdF9wYWRkaW5nIChMZWZ0LCBfKSwgXyAtPlxuICAgIGludmFsaWRfYXJnIFwic2NhbmY6IGJhZCBjb252ZXJzaW9uIFxcXCIlLVxcXCJcIlxuICB8IExpdF9wYWRkaW5nICgoUmlnaHQgfCBaZXJvcyksIF8pLCBBcmdfcHJlY2lzaW9uIC0+XG4gICAgaW52YWxpZF9hcmcgXCJzY2FuZjogYmFkIGNvbnZlcnNpb24gXFxcIiUqXFxcIlwiXG4gIHwgQXJnX3BhZGRpbmcgXywgXyAtPlxuICAgIGludmFsaWRfYXJnIFwic2NhbmY6IGJhZCBjb252ZXJzaW9uIFxcXCIlKlxcXCJcIlxuICB8IE5vX3BhZGRpbmcsIEFyZ19wcmVjaXNpb24gLT5cbiAgICBpbnZhbGlkX2FyZyBcInNjYW5mOiBiYWQgY29udmVyc2lvbiBcXFwiJSpcXFwiXCJcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICgqIERlZmluaW5nIFtzY2FuZl0gYW5kIHZhcmlvdXMgZmxhdm9ycyBvZiBbc2NhbmZdICopXG5cbnR5cGUgJ2Ega3NjYW5mX3Jlc3VsdCA9IEFyZ3Mgb2YgJ2EgfCBFeGMgb2YgZXhuXG5cbmxldCBrc2NhbmYgaWIgZWYgKEZvcm1hdCAoZm10LCBzdHIpKSA9XG4gIGxldCByZWMgYXBwbHkgOiB0eXBlIGEgYiAuIGEgLT4gKGEsIGIpIGhldGVyX2xpc3QgLT4gYiA9XG4gICAgZnVuIGYgYXJncyAtPiBtYXRjaCBhcmdzIHdpdGhcbiAgICB8IENvbnMgKHgsIHIpIC0+IGFwcGx5IChmIHgpIHJcbiAgICB8IE5pbCAtPiBmXG4gIGluXG4gIGxldCBrIHJlYWRlcnMgZiA9XG4gICAgU2Nhbm5pbmcucmVzZXRfdG9rZW4gaWI7XG4gICAgbWF0Y2ggdHJ5IEFyZ3MgKG1ha2Vfc2NhbmYgaWIgZm10IHJlYWRlcnMpIHdpdGhcbiAgICAgIHwgKFNjYW5fZmFpbHVyZSBfIHwgRmFpbHVyZSBfIHwgRW5kX29mX2ZpbGUpIGFzIGV4YyAtPiBFeGMgZXhjXG4gICAgICB8IEludmFsaWRfYXJndW1lbnQgbXNnIC0+XG4gICAgICAgIGludmFsaWRfYXJnIChtc2cgXiBcIiBpbiBmb3JtYXQgXFxcIlwiIF4gU3RyaW5nLmVzY2FwZWQgc3RyIF4gXCJcXFwiXCIpXG4gICAgd2l0aFxuICAgICAgfCBBcmdzIGFyZ3MgLT4gYXBwbHkgZiBhcmdzXG4gICAgICB8IEV4YyBleGMgLT4gZWYgaWIgZXhjXG4gIGluXG4gIHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcblxuKCoqKilcblxubGV0IGtic2NhbmYgPSBrc2NhbmZcbmxldCBic2NhbmYgaWIgZm10ID0ga2JzY2FuZiBpYiBzY2FuZl9iYWRfaW5wdXQgZm10XG5cbmxldCBrc3NjYW5mIHMgZWYgZm10ID0ga2JzY2FuZiAoU2Nhbm5pbmcuZnJvbV9zdHJpbmcgcykgZWYgZm10XG5sZXQgc3NjYW5mIHMgZm10ID0ga2JzY2FuZiAoU2Nhbm5pbmcuZnJvbV9zdHJpbmcgcykgc2NhbmZfYmFkX2lucHV0IGZtdFxuXG5sZXQgc2NhbmYgZm10ID0ga3NjYW5mIFNjYW5uaW5nLnN0ZGliIHNjYW5mX2JhZF9pbnB1dCBmbXRcblxuKCoqKilcblxuKCogU2Nhbm5pbmcgZm9ybWF0IHN0cmluZ3MuICopXG5sZXQgYnNjYW5mX2Zvcm1hdCA6XG4gIFNjYW5uaW5nLmluX2NoYW5uZWwgLT4gKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgLT5cbiAgKCgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2IC0+ICdnKSAtPiAnZyA9XG4gIGZ1biBpYiBmb3JtYXQgZiAtPlxuICAgIGxldCBfID0gc2Nhbl9jYW1sX3N0cmluZyBtYXhfaW50IGliIGluXG4gICAgbGV0IHN0ciA9IHRva2VuX3N0cmluZyBpYiBpblxuICAgIGxldCBmbXQnID1cbiAgICAgIHRyeSBmb3JtYXRfb2Zfc3RyaW5nX2Zvcm1hdCBzdHIgZm9ybWF0XG4gICAgICB3aXRoIEZhaWx1cmUgbXNnIC0+IGJhZF9pbnB1dCBtc2cgaW5cbiAgICBmIGZtdCdcblxuXG5sZXQgc3NjYW5mX2Zvcm1hdCA6XG4gIHN0cmluZyAtPiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiAtPlxuICAoKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgLT4gJ2cpIC0+ICdnID1cbiAgZnVuIHMgZm9ybWF0IGYgLT4gYnNjYW5mX2Zvcm1hdCAoU2Nhbm5pbmcuZnJvbV9zdHJpbmcgcykgZm9ybWF0IGZcblxuXG5sZXQgZm9ybWF0X2Zyb21fc3RyaW5nIHMgZm10ID1cbiAgc3NjYW5mX2Zvcm1hdCAoXCJcXFwiXCIgXiBTdHJpbmcuZXNjYXBlZCBzIF4gXCJcXFwiXCIpIGZtdCAoZnVuIHggLT4geClcblxuXG5sZXQgdW5lc2NhcGVkIHMgPVxuICBzc2NhbmYgKFwiXFxcIlwiIF4gcyBeIFwiXFxcIlwiKSBcIiVTJSFcIiAoZnVuIHggLT4geClcblxuXG4oKiBEZXByZWNhdGVkICopXG5sZXQga2ZzY2FuZiBpYyBlZiBmbXQgPSBrYnNjYW5mIChTY2FubmluZy5tZW1vX2Zyb21fY2hhbm5lbCBpYykgZWYgZm10XG5sZXQgZnNjYW5mIGljIGZtdCA9IGtzY2FuZiAoU2Nhbm5pbmcubWVtb19mcm9tX2NoYW5uZWwgaWMpIHNjYW5mX2JhZF9pbnB1dCBmbXRcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogUmVnaXN0ZXJpbmcgT0NhbWwgdmFsdWVzIHdpdGggdGhlIEMgcnVudGltZSBmb3IgbGF0ZXIgY2FsbGJhY2tzICopXG5cbmV4dGVybmFsIHJlZ2lzdGVyX25hbWVkX3ZhbHVlIDogc3RyaW5nIC0+IE9iai50IC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX3JlZ2lzdGVyX25hbWVkX3ZhbHVlXCJcblxubGV0IHJlZ2lzdGVyIG5hbWUgdiA9XG4gIHJlZ2lzdGVyX25hbWVkX3ZhbHVlIG5hbWUgKE9iai5yZXByIHYpXG5cbmxldCByZWdpc3Rlcl9leGNlcHRpb24gbmFtZSAoZXhuIDogZXhuKSA9XG4gIGxldCBleG4gPSBPYmoucmVwciBleG4gaW5cbiAgbGV0IHNsb3QgPSBpZiBPYmoudGFnIGV4biA9IE9iai5vYmplY3RfdGFnIHRoZW4gZXhuIGVsc2UgT2JqLmZpZWxkIGV4biAwIGluXG4gIHJlZ2lzdGVyX25hbWVkX3ZhbHVlIG5hbWUgc2xvdFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgSmVyb21lIFZvdWlsbG9uLCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAwMiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5vcGVuIE9ialxuXG4oKioqKiBPYmplY3QgcmVwcmVzZW50YXRpb24gKioqKilcblxuZXh0ZXJuYWwgc2V0X2lkOiAnYSAtPiAnYSA9IFwiY2FtbF9zZXRfb29faWRcIiBbQEBub2FsbG9jXVxuXG4oKioqKiBPYmplY3QgY29weSAqKioqKVxuXG5sZXQgY29weSBvID1cbiAgbGV0IG8gPSAoT2JqLm9iaiAoT2JqLmR1cCAoT2JqLnJlcHIgbykpKSBpblxuICBzZXRfaWQgb1xuXG4oKioqKiBDb21wcmVzc2lvbiBvcHRpb25zICoqKiopXG4oKiBQYXJhbWV0ZXJzICopXG50eXBlIHBhcmFtcyA9IHtcbiAgICBtdXRhYmxlIGNvbXBhY3RfdGFibGUgOiBib29sO1xuICAgIG11dGFibGUgY29weV9wYXJlbnQgOiBib29sO1xuICAgIG11dGFibGUgY2xlYW5fd2hlbl9jb3B5aW5nIDogYm9vbDtcbiAgICBtdXRhYmxlIHJldHJ5X2NvdW50IDogaW50O1xuICAgIG11dGFibGUgYnVja2V0X3NtYWxsX3NpemUgOiBpbnRcbiAgfVxuXG5sZXQgcGFyYW1zID0ge1xuICBjb21wYWN0X3RhYmxlID0gdHJ1ZTtcbiAgY29weV9wYXJlbnQgPSB0cnVlO1xuICBjbGVhbl93aGVuX2NvcHlpbmcgPSB0cnVlO1xuICByZXRyeV9jb3VudCA9IDM7XG4gIGJ1Y2tldF9zbWFsbF9zaXplID0gMTZcbn1cblxuKCoqKiogUGFyYW1ldGVycyAqKioqKVxuXG5sZXQgaW5pdGlhbF9vYmplY3Rfc2l6ZSA9IDJcblxuKCoqKiogSXRlbXMgKioqKilcblxudHlwZSBpdGVtID0gRHVtbXlBIHwgRHVtbXlCIHwgRHVtbXlDIG9mIGludFxubGV0IF8gPSBbRHVtbXlBOyBEdW1teUI7IER1bW15QyAwXSAoKiB0byBhdm9pZCB3YXJuaW5ncyAqKVxuXG5sZXQgZHVtbXlfaXRlbSA9IChtYWdpYyAoKSA6IGl0ZW0pXG5cbigqKioqIFR5cGVzICoqKiopXG5cbnR5cGUgdGFnXG50eXBlIGxhYmVsID0gaW50XG50eXBlIGNsb3N1cmUgPSBpdGVtXG50eXBlIHQgPSBEdW1teUEgfCBEdW1teUIgfCBEdW1teUMgb2YgaW50XG5sZXQgXyA9IFtEdW1teUE7IER1bW15QjsgRHVtbXlDIDBdICgqIHRvIGF2b2lkIHdhcm5pbmdzICopXG5cbnR5cGUgb2JqID0gdCBhcnJheVxuZXh0ZXJuYWwgcmV0IDogKG9iaiAtPiAnYSkgLT4gY2xvc3VyZSA9IFwiJWlkZW50aXR5XCJcblxuKCoqKiogTGFiZWxzICoqKiopXG5cbmxldCBwdWJsaWNfbWV0aG9kX2xhYmVsIHMgOiB0YWcgPVxuICBsZXQgYWNjdSA9IHJlZiAwIGluXG4gIGZvciBpID0gMCB0byBTdHJpbmcubGVuZ3RoIHMgLSAxIGRvXG4gICAgYWNjdSA6PSAyMjMgKiAhYWNjdSArIENoYXIuY29kZSBzLltpXVxuICBkb25lO1xuICAoKiByZWR1Y2UgdG8gMzEgYml0cyAqKVxuICBhY2N1IDo9ICFhY2N1IGxhbmQgKDEgbHNsIDMxIC0gMSk7XG4gICgqIG1ha2UgaXQgc2lnbmVkIGZvciA2NCBiaXRzIGFyY2hpdGVjdHVyZXMgKilcbiAgbGV0IHRhZyA9IGlmICFhY2N1ID4gMHgzRkZGRkZGRiB0aGVuICFhY2N1IC0gKDEgbHNsIDMxKSBlbHNlICFhY2N1IGluXG4gICgqIFByaW50Zi5lcHJpbnRmIFwiJXMgPSAlZFxcblwiIHMgdGFnOyBmbHVzaCBzdGRlcnI7ICopXG4gIG1hZ2ljIHRhZ1xuXG4oKioqKiBTcGFyc2UgYXJyYXkgKioqKilcblxubW9kdWxlIFZhcnMgPVxuICBNYXAuTWFrZShzdHJ1Y3QgdHlwZSB0ID0gc3RyaW5nIGxldCBjb21wYXJlICh4OnQpIHkgPSBjb21wYXJlIHggeSBlbmQpXG50eXBlIHZhcnMgPSBpbnQgVmFycy50XG5cbm1vZHVsZSBNZXRocyA9XG4gIE1hcC5NYWtlKHN0cnVjdCB0eXBlIHQgPSBzdHJpbmcgbGV0IGNvbXBhcmUgKHg6dCkgeSA9IGNvbXBhcmUgeCB5IGVuZClcbnR5cGUgbWV0aHMgPSBsYWJlbCBNZXRocy50XG5tb2R1bGUgTGFicyA9XG4gIE1hcC5NYWtlKHN0cnVjdCB0eXBlIHQgPSBsYWJlbCBsZXQgY29tcGFyZSAoeDp0KSB5ID0gY29tcGFyZSB4IHkgZW5kKVxudHlwZSBsYWJzID0gYm9vbCBMYWJzLnRcblxuKCogVGhlIGNvbXBpbGVyIGFzc3VtZXMgdGhhdCB0aGUgZmlyc3QgZmllbGQgb2YgdGhpcyBzdHJ1Y3R1cmUgaXMgW3NpemVdLiAqKVxudHlwZSB0YWJsZSA9XG4geyBtdXRhYmxlIHNpemU6IGludDtcbiAgIG11dGFibGUgbWV0aG9kczogY2xvc3VyZSBhcnJheTtcbiAgIG11dGFibGUgbWV0aG9kc19ieV9uYW1lOiBtZXRocztcbiAgIG11dGFibGUgbWV0aG9kc19ieV9sYWJlbDogbGFicztcbiAgIG11dGFibGUgcHJldmlvdXNfc3RhdGVzOlxuICAgICAobWV0aHMgKiBsYWJzICogKGxhYmVsICogaXRlbSkgbGlzdCAqIHZhcnMgKlxuICAgICAgbGFiZWwgbGlzdCAqIHN0cmluZyBsaXN0KSBsaXN0O1xuICAgbXV0YWJsZSBoaWRkZW5fbWV0aHM6IChsYWJlbCAqIGl0ZW0pIGxpc3Q7XG4gICBtdXRhYmxlIHZhcnM6IHZhcnM7XG4gICBtdXRhYmxlIGluaXRpYWxpemVyczogKG9iaiAtPiB1bml0KSBsaXN0IH1cblxubGV0IGR1bW15X3RhYmxlID1cbiAgeyBtZXRob2RzID0gW3wgZHVtbXlfaXRlbSB8XTtcbiAgICBtZXRob2RzX2J5X25hbWUgPSBNZXRocy5lbXB0eTtcbiAgICBtZXRob2RzX2J5X2xhYmVsID0gTGFicy5lbXB0eTtcbiAgICBwcmV2aW91c19zdGF0ZXMgPSBbXTtcbiAgICBoaWRkZW5fbWV0aHMgPSBbXTtcbiAgICB2YXJzID0gVmFycy5lbXB0eTtcbiAgICBpbml0aWFsaXplcnMgPSBbXTtcbiAgICBzaXplID0gMCB9XG5cbmxldCB0YWJsZV9jb3VudCA9IHJlZiAwXG5cbigqIGR1bW15X21ldCBzaG91bGQgYmUgYSBwb2ludGVyLCBzbyB1c2UgYW4gYXRvbSAqKVxubGV0IGR1bW15X21ldCA6IGl0ZW0gPSBvYmogKE9iai5uZXdfYmxvY2sgMCAwKVxuKCogaWYgZGVidWdnaW5nIGlzIG5lZWRlZCwgdGhpcyBjb3VsZCBiZSBhIGdvb2QgaWRlYTogKilcbigqIGxldCBkdW1teV9tZXQgKCkgPSBmYWlsd2l0aCBcIlVuZGVmaW5lZCBtZXRob2RcIiAqKVxuXG5sZXQgcmVjIGZpdF9zaXplIG4gPVxuICBpZiBuIDw9IDIgdGhlbiBuIGVsc2VcbiAgZml0X3NpemUgKChuKzEpLzIpICogMlxuXG5sZXQgbmV3X3RhYmxlIHB1Yl9sYWJlbHMgPVxuICBpbmNyIHRhYmxlX2NvdW50O1xuICBsZXQgbGVuID0gQXJyYXkubGVuZ3RoIHB1Yl9sYWJlbHMgaW5cbiAgbGV0IG1ldGhvZHMgPSBBcnJheS5tYWtlIChsZW4qMisyKSBkdW1teV9tZXQgaW5cbiAgbWV0aG9kcy4oMCkgPC0gbWFnaWMgbGVuO1xuICBtZXRob2RzLigxKSA8LSBtYWdpYyAoZml0X3NpemUgbGVuICogU3lzLndvcmRfc2l6ZSAvIDggLSAxKTtcbiAgZm9yIGkgPSAwIHRvIGxlbiAtIDEgZG8gbWV0aG9kcy4oaSoyKzMpIDwtIG1hZ2ljIHB1Yl9sYWJlbHMuKGkpIGRvbmU7XG4gIHsgbWV0aG9kcyA9IG1ldGhvZHM7XG4gICAgbWV0aG9kc19ieV9uYW1lID0gTWV0aHMuZW1wdHk7XG4gICAgbWV0aG9kc19ieV9sYWJlbCA9IExhYnMuZW1wdHk7XG4gICAgcHJldmlvdXNfc3RhdGVzID0gW107XG4gICAgaGlkZGVuX21ldGhzID0gW107XG4gICAgdmFycyA9IFZhcnMuZW1wdHk7XG4gICAgaW5pdGlhbGl6ZXJzID0gW107XG4gICAgc2l6ZSA9IGluaXRpYWxfb2JqZWN0X3NpemUgfVxuXG5sZXQgcmVzaXplIGFycmF5IG5ld19zaXplID1cbiAgbGV0IG9sZF9zaXplID0gQXJyYXkubGVuZ3RoIGFycmF5Lm1ldGhvZHMgaW5cbiAgaWYgbmV3X3NpemUgPiBvbGRfc2l6ZSB0aGVuIGJlZ2luXG4gICAgbGV0IG5ld19idWNrID0gQXJyYXkubWFrZSBuZXdfc2l6ZSBkdW1teV9tZXQgaW5cbiAgICBBcnJheS5ibGl0IGFycmF5Lm1ldGhvZHMgMCBuZXdfYnVjayAwIG9sZF9zaXplO1xuICAgIGFycmF5Lm1ldGhvZHMgPC0gbmV3X2J1Y2tcbiBlbmRcblxubGV0IHB1dCBhcnJheSBsYWJlbCBlbGVtZW50ID1cbiAgcmVzaXplIGFycmF5IChsYWJlbCArIDEpO1xuICBhcnJheS5tZXRob2RzLihsYWJlbCkgPC0gZWxlbWVudFxuXG4oKioqKiBDbGFzc2VzICoqKiopXG5cbmxldCBtZXRob2RfY291bnQgPSByZWYgMFxubGV0IGluc3RfdmFyX2NvdW50ID0gcmVmIDBcblxuKCogdHlwZSB0ICopXG50eXBlIG1ldGggPSBpdGVtXG5cbmxldCBuZXdfbWV0aG9kIHRhYmxlID1cbiAgbGV0IGluZGV4ID0gQXJyYXkubGVuZ3RoIHRhYmxlLm1ldGhvZHMgaW5cbiAgcmVzaXplIHRhYmxlIChpbmRleCArIDEpO1xuICBpbmRleFxuXG5sZXQgZ2V0X21ldGhvZF9sYWJlbCB0YWJsZSBuYW1lID1cbiAgdHJ5XG4gICAgTWV0aHMuZmluZCBuYW1lIHRhYmxlLm1ldGhvZHNfYnlfbmFtZVxuICB3aXRoIE5vdF9mb3VuZCAtPlxuICAgIGxldCBsYWJlbCA9IG5ld19tZXRob2QgdGFibGUgaW5cbiAgICB0YWJsZS5tZXRob2RzX2J5X25hbWUgPC0gTWV0aHMuYWRkIG5hbWUgbGFiZWwgdGFibGUubWV0aG9kc19ieV9uYW1lO1xuICAgIHRhYmxlLm1ldGhvZHNfYnlfbGFiZWwgPC0gTGFicy5hZGQgbGFiZWwgdHJ1ZSB0YWJsZS5tZXRob2RzX2J5X2xhYmVsO1xuICAgIGxhYmVsXG5cbmxldCBnZXRfbWV0aG9kX2xhYmVscyB0YWJsZSBuYW1lcyA9XG4gIEFycmF5Lm1hcCAoZ2V0X21ldGhvZF9sYWJlbCB0YWJsZSkgbmFtZXNcblxubGV0IHNldF9tZXRob2QgdGFibGUgbGFiZWwgZWxlbWVudCA9XG4gIGluY3IgbWV0aG9kX2NvdW50O1xuICBpZiBMYWJzLmZpbmQgbGFiZWwgdGFibGUubWV0aG9kc19ieV9sYWJlbCB0aGVuXG4gICAgcHV0IHRhYmxlIGxhYmVsIGVsZW1lbnRcbiAgZWxzZVxuICAgIHRhYmxlLmhpZGRlbl9tZXRocyA8LSAobGFiZWwsIGVsZW1lbnQpIDo6IHRhYmxlLmhpZGRlbl9tZXRoc1xuXG5sZXQgZ2V0X21ldGhvZCB0YWJsZSBsYWJlbCA9XG4gIHRyeSBMaXN0LmFzc29jIGxhYmVsIHRhYmxlLmhpZGRlbl9tZXRoc1xuICB3aXRoIE5vdF9mb3VuZCAtPiB0YWJsZS5tZXRob2RzLihsYWJlbClcblxubGV0IHRvX2xpc3QgYXJyID1cbiAgaWYgYXJyID09IG1hZ2ljIDAgdGhlbiBbXSBlbHNlIEFycmF5LnRvX2xpc3QgYXJyXG5cbmxldCBuYXJyb3cgdGFibGUgdmFycyB2aXJ0X21ldGhzIGNvbmNyX21ldGhzID1cbiAgbGV0IHZhcnMgPSB0b19saXN0IHZhcnNcbiAgYW5kIHZpcnRfbWV0aHMgPSB0b19saXN0IHZpcnRfbWV0aHNcbiAgYW5kIGNvbmNyX21ldGhzID0gdG9fbGlzdCBjb25jcl9tZXRocyBpblxuICBsZXQgdmlydF9tZXRoX2xhYnMgPSBMaXN0Lm1hcCAoZ2V0X21ldGhvZF9sYWJlbCB0YWJsZSkgdmlydF9tZXRocyBpblxuICBsZXQgY29uY3JfbWV0aF9sYWJzID0gTGlzdC5tYXAgKGdldF9tZXRob2RfbGFiZWwgdGFibGUpIGNvbmNyX21ldGhzIGluXG4gIHRhYmxlLnByZXZpb3VzX3N0YXRlcyA8LVxuICAgICAodGFibGUubWV0aG9kc19ieV9uYW1lLCB0YWJsZS5tZXRob2RzX2J5X2xhYmVsLCB0YWJsZS5oaWRkZW5fbWV0aHMsXG4gICAgICB0YWJsZS52YXJzLCB2aXJ0X21ldGhfbGFicywgdmFycylcbiAgICAgOjogdGFibGUucHJldmlvdXNfc3RhdGVzO1xuICB0YWJsZS52YXJzIDwtXG4gICAgVmFycy5mb2xkXG4gICAgICAoZnVuIGxhYiBpbmZvIHR2YXJzIC0+XG4gICAgICAgIGlmIExpc3QubWVtIGxhYiB2YXJzIHRoZW4gVmFycy5hZGQgbGFiIGluZm8gdHZhcnMgZWxzZSB0dmFycylcbiAgICAgIHRhYmxlLnZhcnMgVmFycy5lbXB0eTtcbiAgbGV0IGJ5X25hbWUgPSByZWYgTWV0aHMuZW1wdHkgaW5cbiAgbGV0IGJ5X2xhYmVsID0gcmVmIExhYnMuZW1wdHkgaW5cbiAgTGlzdC5pdGVyMlxuICAgIChmdW4gbWV0IGxhYmVsIC0+XG4gICAgICAgYnlfbmFtZSA6PSBNZXRocy5hZGQgbWV0IGxhYmVsICFieV9uYW1lO1xuICAgICAgIGJ5X2xhYmVsIDo9XG4gICAgICAgICAgTGFicy5hZGQgbGFiZWxcbiAgICAgICAgICAgICh0cnkgTGFicy5maW5kIGxhYmVsIHRhYmxlLm1ldGhvZHNfYnlfbGFiZWwgd2l0aCBOb3RfZm91bmQgLT4gdHJ1ZSlcbiAgICAgICAgICAgICFieV9sYWJlbClcbiAgICBjb25jcl9tZXRocyBjb25jcl9tZXRoX2xhYnM7XG4gIExpc3QuaXRlcjJcbiAgICAoZnVuIG1ldCBsYWJlbCAtPlxuICAgICAgIGJ5X25hbWUgOj0gTWV0aHMuYWRkIG1ldCBsYWJlbCAhYnlfbmFtZTtcbiAgICAgICBieV9sYWJlbCA6PSBMYWJzLmFkZCBsYWJlbCBmYWxzZSAhYnlfbGFiZWwpXG4gICAgdmlydF9tZXRocyB2aXJ0X21ldGhfbGFicztcbiAgdGFibGUubWV0aG9kc19ieV9uYW1lIDwtICFieV9uYW1lO1xuICB0YWJsZS5tZXRob2RzX2J5X2xhYmVsIDwtICFieV9sYWJlbDtcbiAgdGFibGUuaGlkZGVuX21ldGhzIDwtXG4gICAgIExpc3QuZm9sZF9yaWdodFxuICAgICAgIChmdW4gKChsYWIsIF8pIGFzIG1ldCkgaG0gLT5cbiAgICAgICAgICBpZiBMaXN0Lm1lbSBsYWIgdmlydF9tZXRoX2xhYnMgdGhlbiBobSBlbHNlIG1ldDo6aG0pXG4gICAgICAgdGFibGUuaGlkZGVuX21ldGhzXG4gICAgICAgW11cblxubGV0IHdpZGVuIHRhYmxlID1cbiAgbGV0IChieV9uYW1lLCBieV9sYWJlbCwgc2F2ZWRfaGlkZGVuX21ldGhzLCBzYXZlZF92YXJzLCB2aXJ0X21ldGhzLCB2YXJzKSA9XG4gICAgTGlzdC5oZCB0YWJsZS5wcmV2aW91c19zdGF0ZXNcbiAgaW5cbiAgdGFibGUucHJldmlvdXNfc3RhdGVzIDwtIExpc3QudGwgdGFibGUucHJldmlvdXNfc3RhdGVzO1xuICB0YWJsZS52YXJzIDwtXG4gICAgIExpc3QuZm9sZF9sZWZ0XG4gICAgICAgKGZ1biBzIHYgLT4gVmFycy5hZGQgdiAoVmFycy5maW5kIHYgdGFibGUudmFycykgcylcbiAgICAgICBzYXZlZF92YXJzIHZhcnM7XG4gIHRhYmxlLm1ldGhvZHNfYnlfbmFtZSA8LSBieV9uYW1lO1xuICB0YWJsZS5tZXRob2RzX2J5X2xhYmVsIDwtIGJ5X2xhYmVsO1xuICB0YWJsZS5oaWRkZW5fbWV0aHMgPC1cbiAgICAgTGlzdC5mb2xkX3JpZ2h0XG4gICAgICAgKGZ1biAoKGxhYiwgXykgYXMgbWV0KSBobSAtPlxuICAgICAgICAgIGlmIExpc3QubWVtIGxhYiB2aXJ0X21ldGhzIHRoZW4gaG0gZWxzZSBtZXQ6OmhtKVxuICAgICAgIHRhYmxlLmhpZGRlbl9tZXRoc1xuICAgICAgIHNhdmVkX2hpZGRlbl9tZXRoc1xuXG5sZXQgbmV3X3Nsb3QgdGFibGUgPVxuICBsZXQgaW5kZXggPSB0YWJsZS5zaXplIGluXG4gIHRhYmxlLnNpemUgPC0gaW5kZXggKyAxO1xuICBpbmRleFxuXG5sZXQgbmV3X3ZhcmlhYmxlIHRhYmxlIG5hbWUgPVxuICB0cnkgVmFycy5maW5kIG5hbWUgdGFibGUudmFyc1xuICB3aXRoIE5vdF9mb3VuZCAtPlxuICAgIGxldCBpbmRleCA9IG5ld19zbG90IHRhYmxlIGluXG4gICAgaWYgbmFtZSA8PiBcIlwiIHRoZW4gdGFibGUudmFycyA8LSBWYXJzLmFkZCBuYW1lIGluZGV4IHRhYmxlLnZhcnM7XG4gICAgaW5kZXhcblxubGV0IHRvX2FycmF5IGFyciA9XG4gIGlmIGFyciA9IE9iai5tYWdpYyAwIHRoZW4gW3x8XSBlbHNlIGFyclxuXG5sZXQgbmV3X21ldGhvZHNfdmFyaWFibGVzIHRhYmxlIG1ldGhzIHZhbHMgPVxuICBsZXQgbWV0aHMgPSB0b19hcnJheSBtZXRocyBpblxuICBsZXQgbm1ldGhzID0gQXJyYXkubGVuZ3RoIG1ldGhzIGFuZCBudmFscyA9IEFycmF5Lmxlbmd0aCB2YWxzIGluXG4gIGxldCByZXMgPSBBcnJheS5tYWtlIChubWV0aHMgKyBudmFscykgMCBpblxuICBmb3IgaSA9IDAgdG8gbm1ldGhzIC0gMSBkb1xuICAgIHJlcy4oaSkgPC0gZ2V0X21ldGhvZF9sYWJlbCB0YWJsZSBtZXRocy4oaSlcbiAgZG9uZTtcbiAgZm9yIGkgPSAwIHRvIG52YWxzIC0gMSBkb1xuICAgIHJlcy4oaStubWV0aHMpIDwtIG5ld192YXJpYWJsZSB0YWJsZSB2YWxzLihpKVxuICBkb25lO1xuICByZXNcblxubGV0IGdldF92YXJpYWJsZSB0YWJsZSBuYW1lID1cbiAgdHJ5IFZhcnMuZmluZCBuYW1lIHRhYmxlLnZhcnMgd2l0aCBOb3RfZm91bmQgLT4gYXNzZXJ0IGZhbHNlXG5cbmxldCBnZXRfdmFyaWFibGVzIHRhYmxlIG5hbWVzID1cbiAgQXJyYXkubWFwIChnZXRfdmFyaWFibGUgdGFibGUpIG5hbWVzXG5cbmxldCBhZGRfaW5pdGlhbGl6ZXIgdGFibGUgZiA9XG4gIHRhYmxlLmluaXRpYWxpemVycyA8LSBmOjp0YWJsZS5pbml0aWFsaXplcnNcblxuKCpcbm1vZHVsZSBLZXlzID1cbiAgTWFwLk1ha2Uoc3RydWN0IHR5cGUgdCA9IHRhZyBhcnJheSBsZXQgY29tcGFyZSAoeDp0KSB5ID0gY29tcGFyZSB4IHkgZW5kKVxubGV0IGtleV9tYXAgPSByZWYgS2V5cy5lbXB0eVxubGV0IGdldF9rZXkgdGFncyA6IGl0ZW0gPVxuICB0cnkgbWFnaWMgKEtleXMuZmluZCB0YWdzICFrZXlfbWFwIDogdGFnIGFycmF5KVxuICB3aXRoIE5vdF9mb3VuZCAtPlxuICAgIGtleV9tYXAgOj0gS2V5cy5hZGQgdGFncyB0YWdzICFrZXlfbWFwO1xuICAgIG1hZ2ljIHRhZ3NcbiopXG5cbmxldCBjcmVhdGVfdGFibGUgcHVibGljX21ldGhvZHMgPVxuICBpZiBwdWJsaWNfbWV0aG9kcyA9PSBtYWdpYyAwIHRoZW4gbmV3X3RhYmxlIFt8fF0gZWxzZVxuICAoKiBbcHVibGljX21ldGhvZHNdIG11c3QgYmUgaW4gYXNjZW5kaW5nIG9yZGVyIGZvciBieXRlY29kZSAqKVxuICBsZXQgdGFncyA9IEFycmF5Lm1hcCBwdWJsaWNfbWV0aG9kX2xhYmVsIHB1YmxpY19tZXRob2RzIGluXG4gIGxldCB0YWJsZSA9IG5ld190YWJsZSB0YWdzIGluXG4gIEFycmF5Lml0ZXJpXG4gICAgKGZ1biBpIG1ldCAtPlxuICAgICAgbGV0IGxhYiA9IGkqMisyIGluXG4gICAgICB0YWJsZS5tZXRob2RzX2J5X25hbWUgIDwtIE1ldGhzLmFkZCBtZXQgbGFiIHRhYmxlLm1ldGhvZHNfYnlfbmFtZTtcbiAgICAgIHRhYmxlLm1ldGhvZHNfYnlfbGFiZWwgPC0gTGFicy5hZGQgbGFiIHRydWUgdGFibGUubWV0aG9kc19ieV9sYWJlbClcbiAgICBwdWJsaWNfbWV0aG9kcztcbiAgdGFibGVcblxubGV0IGluaXRfY2xhc3MgdGFibGUgPVxuICBpbnN0X3Zhcl9jb3VudCA6PSAhaW5zdF92YXJfY291bnQgKyB0YWJsZS5zaXplIC0gMTtcbiAgdGFibGUuaW5pdGlhbGl6ZXJzIDwtIExpc3QucmV2IHRhYmxlLmluaXRpYWxpemVycztcbiAgcmVzaXplIHRhYmxlICgzICsgbWFnaWMgdGFibGUubWV0aG9kcy4oMSkgKiAxNiAvIFN5cy53b3JkX3NpemUpXG5cbmxldCBpbmhlcml0cyBjbGEgdmFscyB2aXJ0X21ldGhzIGNvbmNyX21ldGhzIChfLCBzdXBlciwgXywgZW52KSB0b3AgPVxuICBuYXJyb3cgY2xhIHZhbHMgdmlydF9tZXRocyBjb25jcl9tZXRocztcbiAgbGV0IGluaXQgPVxuICAgIGlmIHRvcCB0aGVuIHN1cGVyIGNsYSBlbnYgZWxzZSBPYmoucmVwciAoc3VwZXIgY2xhKSBpblxuICB3aWRlbiBjbGE7XG4gIEFycmF5LmNvbmNhdFxuICAgIFtbfCByZXByIGluaXQgfF07XG4gICAgIG1hZ2ljIChBcnJheS5tYXAgKGdldF92YXJpYWJsZSBjbGEpICh0b19hcnJheSB2YWxzKSA6IGludCBhcnJheSk7XG4gICAgIEFycmF5Lm1hcFxuICAgICAgIChmdW4gbm0gLT4gcmVwciAoZ2V0X21ldGhvZCBjbGEgKGdldF9tZXRob2RfbGFiZWwgY2xhIG5tKSA6IGNsb3N1cmUpKVxuICAgICAgICh0b19hcnJheSBjb25jcl9tZXRocykgXVxuXG5sZXQgbWFrZV9jbGFzcyBwdWJfbWV0aHMgY2xhc3NfaW5pdCA9XG4gIGxldCB0YWJsZSA9IGNyZWF0ZV90YWJsZSBwdWJfbWV0aHMgaW5cbiAgbGV0IGVudl9pbml0ID0gY2xhc3NfaW5pdCB0YWJsZSBpblxuICBpbml0X2NsYXNzIHRhYmxlO1xuICAoZW52X2luaXQgKE9iai5yZXByIDApLCBjbGFzc19pbml0LCBlbnZfaW5pdCwgT2JqLnJlcHIgMClcblxudHlwZSBpbml0X3RhYmxlID0geyBtdXRhYmxlIGVudl9pbml0OiB0OyBtdXRhYmxlIGNsYXNzX2luaXQ6IHRhYmxlIC0+IHQgfVxuW0BAd2FybmluZyBcIi11bnVzZWQtZmllbGRcIl1cblxubGV0IG1ha2VfY2xhc3Nfc3RvcmUgcHViX21ldGhzIGNsYXNzX2luaXQgaW5pdF90YWJsZSA9XG4gIGxldCB0YWJsZSA9IGNyZWF0ZV90YWJsZSBwdWJfbWV0aHMgaW5cbiAgbGV0IGVudl9pbml0ID0gY2xhc3NfaW5pdCB0YWJsZSBpblxuICBpbml0X2NsYXNzIHRhYmxlO1xuICBpbml0X3RhYmxlLmNsYXNzX2luaXQgPC0gY2xhc3NfaW5pdDtcbiAgaW5pdF90YWJsZS5lbnZfaW5pdCA8LSBlbnZfaW5pdFxuXG5sZXQgZHVtbXlfY2xhc3MgbG9jID1cbiAgbGV0IHVuZGVmID0gZnVuIF8gLT4gcmFpc2UgKFVuZGVmaW5lZF9yZWN1cnNpdmVfbW9kdWxlIGxvYykgaW5cbiAgKE9iai5tYWdpYyB1bmRlZiwgdW5kZWYsIHVuZGVmLCBPYmoucmVwciAwKVxuXG4oKioqKiBPYmplY3RzICoqKiopXG5cbmxldCBjcmVhdGVfb2JqZWN0IHRhYmxlID1cbiAgKCogWFhYIEFwcGVsIGRlIFtvYmpfYmxvY2tdIHwgQ2FsbCB0byBbb2JqX2Jsb2NrXSAgKilcbiAgbGV0IG9iaiA9IE9iai5uZXdfYmxvY2sgT2JqLm9iamVjdF90YWcgdGFibGUuc2l6ZSBpblxuICAoKiBYWFggQXBwZWwgZGUgW2NhbWxfbW9kaWZ5XSB8IENhbGwgdG8gW2NhbWxfbW9kaWZ5XSAqKVxuICBPYmouc2V0X2ZpZWxkIG9iaiAwIChPYmoucmVwciB0YWJsZS5tZXRob2RzKTtcbiAgT2JqLm9iaiAoc2V0X2lkIG9iailcblxubGV0IGNyZWF0ZV9vYmplY3Rfb3B0IG9ial8wIHRhYmxlID1cbiAgaWYgKE9iai5tYWdpYyBvYmpfMCA6IGJvb2wpIHRoZW4gb2JqXzAgZWxzZSBiZWdpblxuICAgICgqIFhYWCBBcHBlbCBkZSBbb2JqX2Jsb2NrXSB8IENhbGwgdG8gW29ial9ibG9ja10gICopXG4gICAgbGV0IG9iaiA9IE9iai5uZXdfYmxvY2sgT2JqLm9iamVjdF90YWcgdGFibGUuc2l6ZSBpblxuICAgICgqIFhYWCBBcHBlbCBkZSBbY2FtbF9tb2RpZnldIHwgQ2FsbCB0byBbY2FtbF9tb2RpZnldICopXG4gICAgT2JqLnNldF9maWVsZCBvYmogMCAoT2JqLnJlcHIgdGFibGUubWV0aG9kcyk7XG4gICAgT2JqLm9iaiAoc2V0X2lkIG9iailcbiAgZW5kXG5cbmxldCByZWMgaXRlcl9mIG9iaiA9XG4gIGZ1bmN0aW9uXG4gICAgW10gICAtPiAoKVxuICB8IGY6OmwgLT4gZiBvYmo7IGl0ZXJfZiBvYmogbFxuXG5sZXQgcnVuX2luaXRpYWxpemVycyBvYmogdGFibGUgPVxuICBsZXQgaW5pdHMgPSB0YWJsZS5pbml0aWFsaXplcnMgaW5cbiAgaWYgaW5pdHMgPD4gW10gdGhlblxuICAgIGl0ZXJfZiBvYmogaW5pdHNcblxubGV0IHJ1bl9pbml0aWFsaXplcnNfb3B0IG9ial8wIG9iaiB0YWJsZSA9XG4gIGlmIChPYmoubWFnaWMgb2JqXzAgOiBib29sKSB0aGVuIG9iaiBlbHNlIGJlZ2luXG4gICAgbGV0IGluaXRzID0gdGFibGUuaW5pdGlhbGl6ZXJzIGluXG4gICAgaWYgaW5pdHMgPD4gW10gdGhlbiBpdGVyX2Ygb2JqIGluaXRzO1xuICAgIG9ialxuICBlbmRcblxubGV0IGNyZWF0ZV9vYmplY3RfYW5kX3J1bl9pbml0aWFsaXplcnMgb2JqXzAgdGFibGUgPVxuICBpZiAoT2JqLm1hZ2ljIG9ial8wIDogYm9vbCkgdGhlbiBvYmpfMCBlbHNlIGJlZ2luXG4gICAgbGV0IG9iaiA9IGNyZWF0ZV9vYmplY3QgdGFibGUgaW5cbiAgICBydW5faW5pdGlhbGl6ZXJzIG9iaiB0YWJsZTtcbiAgICBvYmpcbiAgZW5kXG5cbigqIEVxdWl2YWxlbnQgcHJpbWl0aXZlIGJlbG93XG5sZXQgc2VuZHNlbGYgb2JqIGxhYiA9XG4gIChtYWdpYyBvYmogOiAob2JqIC0+IHQpIGFycmF5IGFycmF5KS4oMCkuKGxhYikgb2JqXG4qKVxuZXh0ZXJuYWwgc2VuZCA6IG9iaiAtPiB0YWcgLT4gJ2EgPSBcIiVzZW5kXCJcbmV4dGVybmFsIHNlbmRjYWNoZSA6IG9iaiAtPiB0YWcgLT4gdCAtPiBpbnQgLT4gJ2EgPSBcIiVzZW5kY2FjaGVcIlxuZXh0ZXJuYWwgc2VuZHNlbGYgOiBvYmogLT4gbGFiZWwgLT4gJ2EgPSBcIiVzZW5kc2VsZlwiXG5leHRlcm5hbCBnZXRfcHVibGljX21ldGhvZCA6IG9iaiAtPiB0YWcgLT4gY2xvc3VyZVxuICAgID0gXCJjYW1sX2dldF9wdWJsaWNfbWV0aG9kXCIgW0BAbm9hbGxvY11cblxuKCoqKiogdGFibGUgY29sbGVjdGlvbiBhY2Nlc3MgKioqKilcblxudHlwZSB0YWJsZXMgPVxuICB8IEVtcHR5XG4gIHwgQ29ucyBvZiB7a2V5IDogY2xvc3VyZTsgbXV0YWJsZSBkYXRhOiB0YWJsZXM7IG11dGFibGUgbmV4dDogdGFibGVzfVxuXG5sZXQgc2V0X2RhdGEgdGFibGVzIHYgPSBtYXRjaCB0YWJsZXMgd2l0aFxuICB8IEVtcHR5IC0+IGFzc2VydCBmYWxzZVxuICB8IENvbnMgdGFibGVzIC0+IHRhYmxlcy5kYXRhIDwtIHZcbmxldCBzZXRfbmV4dCB0YWJsZXMgdiA9IG1hdGNoIHRhYmxlcyB3aXRoXG4gIHwgRW1wdHkgLT4gYXNzZXJ0IGZhbHNlXG4gIHwgQ29ucyB0YWJsZXMgLT4gdGFibGVzLm5leHQgPC0gdlxubGV0IGdldF9rZXkgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+IGFzc2VydCBmYWxzZVxuICB8IENvbnMgdGFibGVzIC0+IHRhYmxlcy5rZXlcbmxldCBnZXRfZGF0YSA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT4gYXNzZXJ0IGZhbHNlXG4gIHwgQ29ucyB0YWJsZXMgLT4gdGFibGVzLmRhdGFcbmxldCBnZXRfbmV4dCA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT4gYXNzZXJ0IGZhbHNlXG4gIHwgQ29ucyB0YWJsZXMgLT4gdGFibGVzLm5leHRcblxubGV0IGJ1aWxkX3BhdGggbiBrZXlzIHRhYmxlcyA9XG4gIGxldCByZXMgPSBDb25zIHtrZXkgPSBPYmoubWFnaWMgMDsgZGF0YSA9IEVtcHR5OyBuZXh0ID0gRW1wdHl9IGluXG4gIGxldCByID0gcmVmIHJlcyBpblxuICBmb3IgaSA9IDAgdG8gbiBkb1xuICAgIHIgOj0gQ29ucyB7a2V5ID0ga2V5cy4oaSk7IGRhdGEgPSAhcjsgbmV4dCA9IEVtcHR5fVxuICBkb25lO1xuICBzZXRfZGF0YSB0YWJsZXMgIXI7XG4gIHJlc1xuXG5sZXQgcmVjIGxvb2t1cF9rZXlzIGkga2V5cyB0YWJsZXMgPVxuICBpZiBpIDwgMCB0aGVuIHRhYmxlcyBlbHNlXG4gIGxldCBrZXkgPSBrZXlzLihpKSBpblxuICBsZXQgcmVjIGxvb2t1cF9rZXkgKHRhYmxlczp0YWJsZXMpID1cbiAgICBpZiBnZXRfa2V5IHRhYmxlcyA9PSBrZXkgdGhlblxuICAgICAgbWF0Y2ggZ2V0X2RhdGEgdGFibGVzIHdpdGhcbiAgICAgIHwgRW1wdHkgLT4gYXNzZXJ0IGZhbHNlXG4gICAgICB8IENvbnMgXyBhcyB0YWJsZXNfZGF0YSAtPlxuICAgICAgICAgIGxvb2t1cF9rZXlzIChpLTEpIGtleXMgdGFibGVzX2RhdGFcbiAgICBlbHNlXG4gICAgICBtYXRjaCBnZXRfbmV4dCB0YWJsZXMgd2l0aFxuICAgICAgfCBDb25zIF8gYXMgbmV4dCAtPiBsb29rdXBfa2V5IG5leHRcbiAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICBsZXQgbmV4dCA6IHRhYmxlcyA9IENvbnMge2tleTsgZGF0YSA9IEVtcHR5OyBuZXh0ID0gRW1wdHl9IGluXG4gICAgICAgICAgc2V0X25leHQgdGFibGVzIG5leHQ7XG4gICAgICAgICAgYnVpbGRfcGF0aCAoaS0xKSBrZXlzIG5leHRcbiAgaW5cbiAgbG9va3VwX2tleSB0YWJsZXNcblxubGV0IGxvb2t1cF90YWJsZXMgcm9vdCBrZXlzID1cbiAgbWF0Y2ggZ2V0X2RhdGEgcm9vdCB3aXRoXG4gIHwgQ29ucyBfIGFzIHJvb3RfZGF0YSAtPlxuICAgIGxvb2t1cF9rZXlzIChBcnJheS5sZW5ndGgga2V5cyAtIDEpIGtleXMgcm9vdF9kYXRhXG4gIHwgRW1wdHkgLT5cbiAgICBidWlsZF9wYXRoIChBcnJheS5sZW5ndGgga2V5cyAtIDEpIGtleXMgcm9vdFxuXG4oKioqKiBidWlsdGluIG1ldGhvZHMgKioqKilcblxubGV0IGdldF9jb25zdCB4ID0gcmV0IChmdW4gX29iaiAtPiB4KVxubGV0IGdldF92YXIgbiAgID0gcmV0IChmdW4gb2JqIC0+IEFycmF5LnVuc2FmZV9nZXQgb2JqIG4pXG5sZXQgZ2V0X2VudiBlIG4gPVxuICByZXQgKGZ1biBvYmogLT5cbiAgICBBcnJheS51bnNhZmVfZ2V0IChPYmoubWFnaWMgKEFycmF5LnVuc2FmZV9nZXQgb2JqIGUpIDogb2JqKSBuKVxubGV0IGdldF9tZXRoIG4gID0gcmV0IChmdW4gb2JqIC0+IHNlbmRzZWxmIG9iaiBuKVxubGV0IHNldF92YXIgbiAgID0gcmV0IChmdW4gb2JqIHggLT4gQXJyYXkudW5zYWZlX3NldCBvYmogbiB4KVxubGV0IGFwcF9jb25zdCBmIHggPSByZXQgKGZ1biBfb2JqIC0+IGYgeClcbmxldCBhcHBfdmFyIGYgbiAgID0gcmV0IChmdW4gb2JqIC0+IGYgKEFycmF5LnVuc2FmZV9nZXQgb2JqIG4pKVxubGV0IGFwcF9lbnYgZiBlIG4gPVxuICByZXQgKGZ1biBvYmogLT5cbiAgICBmIChBcnJheS51bnNhZmVfZ2V0IChPYmoubWFnaWMgKEFycmF5LnVuc2FmZV9nZXQgb2JqIGUpIDogb2JqKSBuKSlcbmxldCBhcHBfbWV0aCBmIG4gID0gcmV0IChmdW4gb2JqIC0+IGYgKHNlbmRzZWxmIG9iaiBuKSlcbmxldCBhcHBfY29uc3RfY29uc3QgZiB4IHkgPSByZXQgKGZ1biBfb2JqIC0+IGYgeCB5KVxubGV0IGFwcF9jb25zdF92YXIgZiB4IG4gICA9IHJldCAoZnVuIG9iaiAtPiBmIHggKEFycmF5LnVuc2FmZV9nZXQgb2JqIG4pKVxubGV0IGFwcF9jb25zdF9tZXRoIGYgeCBuID0gcmV0IChmdW4gb2JqIC0+IGYgeCAoc2VuZHNlbGYgb2JqIG4pKVxubGV0IGFwcF92YXJfY29uc3QgZiBuIHggPSByZXQgKGZ1biBvYmogLT4gZiAoQXJyYXkudW5zYWZlX2dldCBvYmogbikgeClcbmxldCBhcHBfbWV0aF9jb25zdCBmIG4geCA9IHJldCAoZnVuIG9iaiAtPiBmIChzZW5kc2VsZiBvYmogbikgeClcbmxldCBhcHBfY29uc3RfZW52IGYgeCBlIG4gPVxuICByZXQgKGZ1biBvYmogLT5cbiAgICBmIHggKEFycmF5LnVuc2FmZV9nZXQgKE9iai5tYWdpYyAoQXJyYXkudW5zYWZlX2dldCBvYmogZSkgOiBvYmopIG4pKVxubGV0IGFwcF9lbnZfY29uc3QgZiBlIG4geCA9XG4gIHJldCAoZnVuIG9iaiAtPlxuICAgIGYgKEFycmF5LnVuc2FmZV9nZXQgKE9iai5tYWdpYyAoQXJyYXkudW5zYWZlX2dldCBvYmogZSkgOiBvYmopIG4pIHgpXG5sZXQgbWV0aF9hcHBfY29uc3QgbiB4ID0gcmV0IChmdW4gb2JqIC0+IChzZW5kc2VsZiBvYmogbiA6IF8gLT4gXykgeClcbmxldCBtZXRoX2FwcF92YXIgbiBtID1cbiAgcmV0IChmdW4gb2JqIC0+IChzZW5kc2VsZiBvYmogbiA6IF8gLT4gXykgKEFycmF5LnVuc2FmZV9nZXQgb2JqIG0pKVxubGV0IG1ldGhfYXBwX2VudiBuIGUgbSA9XG4gIHJldCAoZnVuIG9iaiAtPiAoc2VuZHNlbGYgb2JqIG4gOiBfIC0+IF8pXG4gICAgICAoQXJyYXkudW5zYWZlX2dldCAoT2JqLm1hZ2ljIChBcnJheS51bnNhZmVfZ2V0IG9iaiBlKSA6IG9iaikgbSkpXG5sZXQgbWV0aF9hcHBfbWV0aCBuIG0gPVxuICByZXQgKGZ1biBvYmogLT4gKHNlbmRzZWxmIG9iaiBuIDogXyAtPiBfKSAoc2VuZHNlbGYgb2JqIG0pKVxubGV0IHNlbmRfY29uc3QgbSB4IGMgPVxuICByZXQgKGZ1biBvYmogLT4gc2VuZGNhY2hlIHggbSAoQXJyYXkudW5zYWZlX2dldCBvYmogMCkgYylcbmxldCBzZW5kX3ZhciBtIG4gYyA9XG4gIHJldCAoZnVuIG9iaiAtPlxuICAgIHNlbmRjYWNoZSAoT2JqLm1hZ2ljIChBcnJheS51bnNhZmVfZ2V0IG9iaiBuKSA6IG9iaikgbVxuICAgICAgKEFycmF5LnVuc2FmZV9nZXQgb2JqIDApIGMpXG5sZXQgc2VuZF9lbnYgbSBlIG4gYyA9XG4gIHJldCAoZnVuIG9iaiAtPlxuICAgIHNlbmRjYWNoZVxuICAgICAgKE9iai5tYWdpYyAoQXJyYXkudW5zYWZlX2dldFxuICAgICAgICAgICAgICAgICAgICAoT2JqLm1hZ2ljIChBcnJheS51bnNhZmVfZ2V0IG9iaiBlKSA6IG9iaikgbikgOiBvYmopXG4gICAgICBtIChBcnJheS51bnNhZmVfZ2V0IG9iaiAwKSBjKVxubGV0IHNlbmRfbWV0aCBtIG4gYyA9XG4gIHJldCAoZnVuIG9iaiAtPlxuICAgIHNlbmRjYWNoZSAoc2VuZHNlbGYgb2JqIG4pIG0gKEFycmF5LnVuc2FmZV9nZXQgb2JqIDApIGMpXG5sZXQgbmV3X2NhY2hlIHRhYmxlID1cbiAgbGV0IG4gPSBuZXdfbWV0aG9kIHRhYmxlIGluXG4gIGxldCBuID1cbiAgICBpZiBuIG1vZCAyID0gMCB8fCBuID4gMiArIG1hZ2ljIHRhYmxlLm1ldGhvZHMuKDEpICogMTYgLyBTeXMud29yZF9zaXplXG4gICAgdGhlbiBuIGVsc2UgbmV3X21ldGhvZCB0YWJsZVxuICBpblxuICB0YWJsZS5tZXRob2RzLihuKSA8LSBPYmoubWFnaWMgMDtcbiAgblxuXG50eXBlIGltcGwgPVxuICAgIEdldENvbnN0XG4gIHwgR2V0VmFyXG4gIHwgR2V0RW52XG4gIHwgR2V0TWV0aFxuICB8IFNldFZhclxuICB8IEFwcENvbnN0XG4gIHwgQXBwVmFyXG4gIHwgQXBwRW52XG4gIHwgQXBwTWV0aFxuICB8IEFwcENvbnN0Q29uc3RcbiAgfCBBcHBDb25zdFZhclxuICB8IEFwcENvbnN0RW52XG4gIHwgQXBwQ29uc3RNZXRoXG4gIHwgQXBwVmFyQ29uc3RcbiAgfCBBcHBFbnZDb25zdFxuICB8IEFwcE1ldGhDb25zdFxuICB8IE1ldGhBcHBDb25zdFxuICB8IE1ldGhBcHBWYXJcbiAgfCBNZXRoQXBwRW52XG4gIHwgTWV0aEFwcE1ldGhcbiAgfCBTZW5kQ29uc3RcbiAgfCBTZW5kVmFyXG4gIHwgU2VuZEVudlxuICB8IFNlbmRNZXRoXG4gIHwgQ2xvc3VyZSBvZiBjbG9zdXJlXG5cbmxldCBtZXRob2RfaW1wbCB0YWJsZSBpIGFyciA9XG4gIGxldCBuZXh0ICgpID0gaW5jciBpOyBtYWdpYyBhcnIuKCFpKSBpblxuICBtYXRjaCBuZXh0KCkgd2l0aFxuICAgIEdldENvbnN0IC0+IGxldCB4IDogdCA9IG5leHQoKSBpbiBnZXRfY29uc3QgeFxuICB8IEdldFZhciAgIC0+IGxldCBuID0gbmV4dCgpIGluIGdldF92YXIgblxuICB8IEdldEVudiAgIC0+IGxldCBlID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCgpIGluIGdldF9lbnYgZSBuXG4gIHwgR2V0TWV0aCAgLT4gbGV0IG4gPSBuZXh0KCkgaW4gZ2V0X21ldGggblxuICB8IFNldFZhciAgIC0+IGxldCBuID0gbmV4dCgpIGluIHNldF92YXIgblxuICB8IEFwcENvbnN0IC0+IGxldCBmID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluIGFwcF9jb25zdCBmIHhcbiAgfCBBcHBWYXIgICAtPiBsZXQgZiA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQgKCkgaW4gYXBwX3ZhciBmIG5cbiAgfCBBcHBFbnYgICAtPlxuICAgICAgbGV0IGYgPSBuZXh0KCkgaW4gIGxldCBlID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCgpIGluXG4gICAgICBhcHBfZW52IGYgZSBuXG4gIHwgQXBwTWV0aCAgLT4gbGV0IGYgPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0ICgpIGluIGFwcF9tZXRoIGYgblxuICB8IEFwcENvbnN0Q29uc3QgLT5cbiAgICAgIGxldCBmID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluIGxldCB5ID0gbmV4dCgpIGluXG4gICAgICBhcHBfY29uc3RfY29uc3QgZiB4IHlcbiAgfCBBcHBDb25zdFZhciAtPlxuICAgICAgbGV0IGYgPSBuZXh0KCkgaW4gbGV0IHggPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0KCkgaW5cbiAgICAgIGFwcF9jb25zdF92YXIgZiB4IG5cbiAgfCBBcHBDb25zdEVudiAtPlxuICAgICAgbGV0IGYgPSBuZXh0KCkgaW4gbGV0IHggPSBuZXh0KCkgaW4gbGV0IGUgPSBuZXh0ICgpIGluIGxldCBuID0gbmV4dCgpIGluXG4gICAgICBhcHBfY29uc3RfZW52IGYgeCBlIG5cbiAgfCBBcHBDb25zdE1ldGggLT5cbiAgICAgIGxldCBmID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCgpIGluXG4gICAgICBhcHBfY29uc3RfbWV0aCBmIHggblxuICB8IEFwcFZhckNvbnN0IC0+XG4gICAgICBsZXQgZiA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQoKSBpbiBsZXQgeCA9IG5leHQoKSBpblxuICAgICAgYXBwX3Zhcl9jb25zdCBmIG4geFxuICB8IEFwcEVudkNvbnN0IC0+XG4gICAgICBsZXQgZiA9IG5leHQoKSBpbiBsZXQgZSA9IG5leHQgKCkgaW4gbGV0IG4gPSBuZXh0KCkgaW4gbGV0IHggPSBuZXh0KCkgaW5cbiAgICAgIGFwcF9lbnZfY29uc3QgZiBlIG4geFxuICB8IEFwcE1ldGhDb25zdCAtPlxuICAgICAgbGV0IGYgPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0KCkgaW4gbGV0IHggPSBuZXh0KCkgaW5cbiAgICAgIGFwcF9tZXRoX2NvbnN0IGYgbiB4XG4gIHwgTWV0aEFwcENvbnN0IC0+XG4gICAgICBsZXQgbiA9IG5leHQoKSBpbiBsZXQgeCA9IG5leHQoKSBpbiBtZXRoX2FwcF9jb25zdCBuIHhcbiAgfCBNZXRoQXBwVmFyIC0+XG4gICAgICBsZXQgbiA9IG5leHQoKSBpbiBsZXQgbSA9IG5leHQoKSBpbiBtZXRoX2FwcF92YXIgbiBtXG4gIHwgTWV0aEFwcEVudiAtPlxuICAgICAgbGV0IG4gPSBuZXh0KCkgaW4gbGV0IGUgPSBuZXh0KCkgaW4gbGV0IG0gPSBuZXh0KCkgaW5cbiAgICAgIG1ldGhfYXBwX2VudiBuIGUgbVxuICB8IE1ldGhBcHBNZXRoIC0+XG4gICAgICBsZXQgbiA9IG5leHQoKSBpbiBsZXQgbSA9IG5leHQoKSBpbiBtZXRoX2FwcF9tZXRoIG4gbVxuICB8IFNlbmRDb25zdCAtPlxuICAgICAgbGV0IG0gPSBuZXh0KCkgaW4gbGV0IHggPSBuZXh0KCkgaW4gc2VuZF9jb25zdCBtIHggKG5ld19jYWNoZSB0YWJsZSlcbiAgfCBTZW5kVmFyIC0+XG4gICAgICBsZXQgbSA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQgKCkgaW4gc2VuZF92YXIgbSBuIChuZXdfY2FjaGUgdGFibGUpXG4gIHwgU2VuZEVudiAtPlxuICAgICAgbGV0IG0gPSBuZXh0KCkgaW4gbGV0IGUgPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0KCkgaW5cbiAgICAgIHNlbmRfZW52IG0gZSBuIChuZXdfY2FjaGUgdGFibGUpXG4gIHwgU2VuZE1ldGggLT5cbiAgICAgIGxldCBtID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCAoKSBpbiBzZW5kX21ldGggbSBuIChuZXdfY2FjaGUgdGFibGUpXG4gIHwgQ2xvc3VyZSBfIGFzIGNsbyAtPiBtYWdpYyBjbG9cblxubGV0IHNldF9tZXRob2RzIHRhYmxlIG1ldGhvZHMgPVxuICBsZXQgbGVuID0gQXJyYXkubGVuZ3RoIG1ldGhvZHMgaW4gbGV0IGkgPSByZWYgMCBpblxuICB3aGlsZSAhaSA8IGxlbiBkb1xuICAgIGxldCBsYWJlbCA9IG1ldGhvZHMuKCFpKSBpbiBsZXQgY2xvID0gbWV0aG9kX2ltcGwgdGFibGUgaSBtZXRob2RzIGluXG4gICAgc2V0X21ldGhvZCB0YWJsZSBsYWJlbCBjbG87XG4gICAgaW5jciBpXG4gIGRvbmVcblxuKCoqKiogU3RhdGlzdGljcyAqKioqKVxuXG50eXBlIHN0YXRzID1cbiAgeyBjbGFzc2VzOiBpbnQ7IG1ldGhvZHM6IGludDsgaW5zdF92YXJzOiBpbnQ7IH1cblxubGV0IHN0YXRzICgpID1cbiAgeyBjbGFzc2VzID0gIXRhYmxlX2NvdW50O1xuICAgIG1ldGhvZHMgPSAhbWV0aG9kX2NvdW50OyBpbnN0X3ZhcnMgPSAhaW5zdF92YXJfY291bnQ7IH1cbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMDQgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSBzaGFwZSA9XG4gIHwgRnVuY3Rpb25cbiAgfCBMYXp5XG4gIHwgQ2xhc3NcbiAgfCBNb2R1bGUgb2Ygc2hhcGUgYXJyYXlcbiAgfCBWYWx1ZSBvZiBPYmoudFxuXG5sZXQgcmVjIGluaXRfbW9kX2ZpZWxkIG1vZHUgaSBsb2Mgc2hhcGUgPVxuICBsZXQgaW5pdCA9XG4gICAgbWF0Y2ggc2hhcGUgd2l0aFxuICAgIHwgRnVuY3Rpb24gLT5cbiAgICAgICBsZXQgcmVjIGZuICh4IDogJ2EpID1cbiAgICAgICAgIGxldCBmbicgOiAnYSAtPiAnYiA9IE9iai5vYmogKE9iai5maWVsZCBtb2R1IGkpIGluXG4gICAgICAgICBpZiBmbiA9PSBmbicgdGhlblxuICAgICAgICAgICByYWlzZSAoVW5kZWZpbmVkX3JlY3Vyc2l2ZV9tb2R1bGUgbG9jKVxuICAgICAgICAgZWxzZVxuICAgICAgICAgICBmbicgeCBpblxuICAgICAgIE9iai5yZXByIGZuXG4gICAgfCBMYXp5IC0+XG4gICAgICAgbGV0IHJlYyBsID1cbiAgICAgICAgIGxhenkgKFxuICAgICAgICAgICBsZXQgbCcgPSBPYmoub2JqIChPYmouZmllbGQgbW9kdSBpKSBpblxuICAgICAgICAgICBpZiBsID09IGwnIHRoZW5cbiAgICAgICAgICAgICByYWlzZSAoVW5kZWZpbmVkX3JlY3Vyc2l2ZV9tb2R1bGUgbG9jKVxuICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgTGF6eS5mb3JjZSBsJykgaW5cbiAgICAgICBPYmoucmVwciBsXG4gICAgfCBDbGFzcyAtPlxuICAgICAgIE9iai5yZXByIChDYW1saW50ZXJuYWxPTy5kdW1teV9jbGFzcyBsb2MpXG4gICAgfCBNb2R1bGUgY29tcHMgLT5cbiAgICAgICBPYmoucmVwciAoaW5pdF9tb2RfYmxvY2sgbG9jIGNvbXBzKVxuICAgIHwgVmFsdWUgdiAtPiB2XG4gIGluXG4gIE9iai5zZXRfZmllbGQgbW9kdSBpIGluaXRcblxuYW5kIGluaXRfbW9kX2Jsb2NrIGxvYyBjb21wcyA9XG4gIGxldCBsZW5ndGggPSBBcnJheS5sZW5ndGggY29tcHMgaW5cbiAgbGV0IG1vZHUgPSBPYmoubmV3X2Jsb2NrIDAgbGVuZ3RoIGluXG4gIGZvciBpID0gMCB0byBsZW5ndGggLSAxIGRvXG4gICAgaW5pdF9tb2RfZmllbGQgbW9kdSBpIGxvYyBjb21wcy4oaSlcbiAgZG9uZTtcbiAgbW9kdVxuXG5sZXQgaW5pdF9tb2QgbG9jIHNoYXBlID1cbiAgbWF0Y2ggc2hhcGUgd2l0aFxuICB8IE1vZHVsZSBjb21wcyAtPlxuICAgICBPYmoucmVwciAoaW5pdF9tb2RfYmxvY2sgbG9jIGNvbXBzKVxuICB8IF8gLT4gZmFpbHdpdGggXCJDYW1saW50ZXJuYWxNb2QuaW5pdF9tb2Q6IG5vdCBhIG1vZHVsZVwiXG5cbmxldCByZWMgdXBkYXRlX21vZF9maWVsZCBtb2R1IGkgc2hhcGUgbiA9XG4gIG1hdGNoIHNoYXBlIHdpdGhcbiAgfCBGdW5jdGlvbiB8IExhenkgLT5cbiAgICAgT2JqLnNldF9maWVsZCBtb2R1IGkgblxuICB8IFZhbHVlIF8gLT5cbiAgICAgKCkgKCogdGhlIHZhbHVlIGlzIGFscmVhZHkgdGhlcmUgKilcbiAgfCBDbGFzcyAtPlxuICAgICBhc3NlcnQgKE9iai50YWcgbiA9IDAgJiYgT2JqLnNpemUgbiA9IDQpO1xuICAgICBsZXQgY2wgPSBPYmouZmllbGQgbW9kdSBpIGluXG4gICAgIGZvciBqID0gMCB0byAzIGRvXG4gICAgICAgT2JqLnNldF9maWVsZCBjbCBqIChPYmouZmllbGQgbiBqKVxuICAgICBkb25lXG4gIHwgTW9kdWxlIGNvbXBzIC0+XG4gICAgIHVwZGF0ZV9tb2RfYmxvY2sgY29tcHMgKE9iai5maWVsZCBtb2R1IGkpIG5cblxuYW5kIHVwZGF0ZV9tb2RfYmxvY2sgY29tcHMgbyBuID1cbiAgYXNzZXJ0IChPYmoudGFnIG4gPSAwICYmIE9iai5zaXplIG4gPj0gQXJyYXkubGVuZ3RoIGNvbXBzKTtcbiAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBjb21wcyAtIDEgZG9cbiAgICB1cGRhdGVfbW9kX2ZpZWxkIG8gaSBjb21wcy4oaSkgKE9iai5maWVsZCBuIGkpXG4gIGRvbmVcblxubGV0IHVwZGF0ZV9tb2Qgc2hhcGUgbyBuID1cbiAgbWF0Y2ggc2hhcGUgd2l0aFxuICB8IE1vZHVsZSBjb21wcyAtPlxuICAgICB1cGRhdGVfbW9kX2Jsb2NrIGNvbXBzIG8gblxuICB8IF8gLT4gZmFpbHdpdGggXCJDYW1saW50ZXJuYWxNb2QudXBkYXRlX21vZDogbm90IGEgbW9kdWxlXCJcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuW0BAQG9jYW1sLndhcm5pbmcgXCItM1wiXSAoKiBpZ25vcmUgZGVwcmVjYXRpb24gd2FybmluZyBhYm91dCBtb2R1bGUgU3RyZWFtICopXG5cbnR5cGUgdG9rZW4gPVxuICAgIEt3ZCBvZiBzdHJpbmdcbiAgfCBJZGVudCBvZiBzdHJpbmdcbiAgfCBJbnQgb2YgaW50XG4gIHwgRmxvYXQgb2YgZmxvYXRcbiAgfCBTdHJpbmcgb2Ygc3RyaW5nXG4gIHwgQ2hhciBvZiBjaGFyXG5cbigqIFRoZSBzdHJpbmcgYnVmZmVyaW5nIG1hY2hpbmVyeSAqKVxuXG5sZXQgaW5pdGlhbF9idWZmZXIgPSBCeXRlcy5jcmVhdGUgMzJcblxubGV0IGJ1ZmZlciA9IHJlZiBpbml0aWFsX2J1ZmZlclxubGV0IGJ1ZnBvcyA9IHJlZiAwXG5cbmxldCByZXNldF9idWZmZXIgKCkgPSBidWZmZXIgOj0gaW5pdGlhbF9idWZmZXI7IGJ1ZnBvcyA6PSAwXG5cbmxldCBzdG9yZSBjID1cbiAgaWYgIWJ1ZnBvcyA+PSBCeXRlcy5sZW5ndGggIWJ1ZmZlciB0aGVuIGJlZ2luXG4gICAgbGV0IG5ld2J1ZmZlciA9IEJ5dGVzLmNyZWF0ZSAoMiAqICFidWZwb3MpIGluXG4gICAgQnl0ZXMuYmxpdCAhYnVmZmVyIDAgbmV3YnVmZmVyIDAgIWJ1ZnBvcztcbiAgICBidWZmZXIgOj0gbmV3YnVmZmVyXG4gIGVuZDtcbiAgQnl0ZXMuc2V0ICFidWZmZXIgIWJ1ZnBvcyBjO1xuICBpbmNyIGJ1ZnBvc1xuXG5sZXQgZ2V0X3N0cmluZyAoKSA9XG4gIGxldCBzID0gQnl0ZXMuc3ViX3N0cmluZyAhYnVmZmVyIDAgIWJ1ZnBvcyBpbiBidWZmZXIgOj0gaW5pdGlhbF9idWZmZXI7IHNcblxuKCogVGhlIGxleGVyICopXG5cbmxldCBtYWtlX2xleGVyIGtleXdvcmRzID1cbiAgbGV0IGt3ZF90YWJsZSA9IEhhc2h0YmwuY3JlYXRlIDE3IGluXG4gIExpc3QuaXRlciAoZnVuIHMgLT4gSGFzaHRibC5hZGQga3dkX3RhYmxlIHMgKEt3ZCBzKSkga2V5d29yZHM7XG4gIGxldCBpZGVudF9vcl9rZXl3b3JkIGlkID1cbiAgICB0cnkgSGFzaHRibC5maW5kIGt3ZF90YWJsZSBpZCB3aXRoXG4gICAgICBOb3RfZm91bmQgLT4gSWRlbnQgaWRcbiAgYW5kIGtleXdvcmRfb3JfZXJyb3IgYyA9XG4gICAgbGV0IHMgPSBTdHJpbmcubWFrZSAxIGMgaW5cbiAgICB0cnkgSGFzaHRibC5maW5kIGt3ZF90YWJsZSBzIHdpdGhcbiAgICAgIE5vdF9mb3VuZCAtPiByYWlzZSAoU3RyZWFtLkVycm9yIChcIklsbGVnYWwgY2hhcmFjdGVyIFwiIF4gcykpXG4gIGluXG4gIGxldCByZWMgbmV4dF90b2tlbiAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICgnICcgfCAnXFwwMTAnIHwgJ1xcMDEzJyB8ICdcXDAwOScgfCAnXFwwMjYnIHwgJ1xcMDEyJykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBuZXh0X3Rva2VuIHN0cm1fX1xuICAgIHwgU29tZSAoJ0EnLi4nWicgfCAnYScuLid6JyB8ICdfJyB8ICdcXDE5MicuLidcXDI1NScgYXMgYykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fO1xuICAgICAgICBsZXQgcyA9IHN0cm1fXyBpbiByZXNldF9idWZmZXIgKCk7IHN0b3JlIGM7IGlkZW50IHNcbiAgICB8IFNvbWVcbiAgICAgICAgKCchJyB8ICclJyB8ICcmJyB8ICckJyB8ICcjJyB8ICcrJyB8ICcvJyB8ICc6JyB8ICc8JyB8ICc9JyB8ICc+JyB8XG4gICAgICAgICAnPycgfCAnQCcgfCAnXFxcXCcgfCAnficgfCAnXicgfCAnfCcgfCAnKicgYXMgYykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fO1xuICAgICAgICBsZXQgcyA9IHN0cm1fXyBpbiByZXNldF9idWZmZXIgKCk7IHN0b3JlIGM7IGlkZW50MiBzXG4gICAgfCBTb21lICgnMCcuLic5JyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187XG4gICAgICAgIGxldCBzID0gc3RybV9fIGluIHJlc2V0X2J1ZmZlciAoKTsgc3RvcmUgYzsgbnVtYmVyIHNcbiAgICB8IFNvbWUgJ1xcJycgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fO1xuICAgICAgICBsZXQgYyA9XG4gICAgICAgICAgdHJ5IGNoYXIgc3RybV9fIHdpdGhcbiAgICAgICAgICAgIFN0cmVhbS5GYWlsdXJlIC0+IHJhaXNlIChTdHJlYW0uRXJyb3IgXCJcIilcbiAgICAgICAgaW5cbiAgICAgICAgYmVnaW4gbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgICAgICBTb21lICdcXCcnIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgU29tZSAoQ2hhciBjKVxuICAgICAgICB8IF8gLT4gcmFpc2UgKFN0cmVhbS5FcnJvciBcIlwiKVxuICAgICAgICBlbmRcbiAgICB8IFNvbWUgJ1xcXCInIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgbGV0IHMgPSBzdHJtX18gaW4gcmVzZXRfYnVmZmVyICgpOyBTb21lIChTdHJpbmcgKHN0cmluZyBzKSlcbiAgICB8IFNvbWUgJy0nIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgbmVnX251bWJlciBzdHJtX19cbiAgICB8IFNvbWUgJygnIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgbWF5YmVfY29tbWVudCBzdHJtX19cbiAgICB8IFNvbWUgYyAtPiBTdHJlYW0uanVuayBzdHJtX187IFNvbWUgKGtleXdvcmRfb3JfZXJyb3IgYylcbiAgICB8IF8gLT4gTm9uZVxuICBhbmQgaWRlbnQgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZVxuICAgICAgICAoJ0EnLi4nWicgfCAnYScuLid6JyB8ICdcXDE5MicuLidcXDI1NScgfCAnMCcuLic5JyB8ICdfJyB8ICdcXCcnIGFzIGMpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gc3RvcmUgYzsgaWRlbnQgc1xuICAgIHwgXyAtPiBTb21lIChpZGVudF9vcl9rZXl3b3JkIChnZXRfc3RyaW5nICgpKSlcbiAgYW5kIGlkZW50MiAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lXG4gICAgICAgICgnIScgfCAnJScgfCAnJicgfCAnJCcgfCAnIycgfCAnKycgfCAnLScgfCAnLycgfCAnOicgfCAnPCcgfCAnPScgfFxuICAgICAgICAgJz4nIHwgJz8nIHwgJ0AnIHwgJ1xcXFwnIHwgJ34nIHwgJ14nIHwgJ3wnIHwgJyonIGFzIGMpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gc3RvcmUgYzsgaWRlbnQyIHNcbiAgICB8IF8gLT4gU29tZSAoaWRlbnRfb3Jfa2V5d29yZCAoZ2V0X3N0cmluZyAoKSkpXG4gIGFuZCBuZWdfbnVtYmVyIChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgKCcwJy4uJzknIGFzIGMpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgbGV0IHMgPSBzdHJtX18gaW4gcmVzZXRfYnVmZmVyICgpOyBzdG9yZSAnLSc7IHN0b3JlIGM7IG51bWJlciBzXG4gICAgfCBfIC0+IGxldCBzID0gc3RybV9fIGluIHJlc2V0X2J1ZmZlciAoKTsgc3RvcmUgJy0nOyBpZGVudDIgc1xuICBhbmQgbnVtYmVyIChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgKCcwJy4uJzknIGFzIGMpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gc3RvcmUgYzsgbnVtYmVyIHNcbiAgICB8IFNvbWUgJy4nIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gc3RvcmUgJy4nOyBkZWNpbWFsX3BhcnQgc1xuICAgIHwgU29tZSAoJ2UnIHwgJ0UnKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlICdFJzsgZXhwb25lbnRfcGFydCBzXG4gICAgfCBfIC0+IFNvbWUgKEludCAoaW50X29mX3N0cmluZyAoZ2V0X3N0cmluZyAoKSkpKVxuICBhbmQgZGVjaW1hbF9wYXJ0IChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgKCcwJy4uJzknIGFzIGMpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gc3RvcmUgYzsgZGVjaW1hbF9wYXJ0IHNcbiAgICB8IFNvbWUgKCdlJyB8ICdFJykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSAnRSc7IGV4cG9uZW50X3BhcnQgc1xuICAgIHwgXyAtPiBTb21lIChGbG9hdCAoZmxvYXRfb2Zfc3RyaW5nIChnZXRfc3RyaW5nICgpKSkpXG4gIGFuZCBleHBvbmVudF9wYXJ0IChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgKCcrJyB8ICctJyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlIGM7IGVuZF9leHBvbmVudF9wYXJ0IHNcbiAgICB8IF8gLT4gZW5kX2V4cG9uZW50X3BhcnQgc3RybV9fXG4gIGFuZCBlbmRfZXhwb25lbnRfcGFydCAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICgnMCcuLic5JyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlIGM7IGVuZF9leHBvbmVudF9wYXJ0IHNcbiAgICB8IF8gLT4gU29tZSAoRmxvYXQgKGZsb2F0X29mX3N0cmluZyAoZ2V0X3N0cmluZyAoKSkpKVxuICBhbmQgc3RyaW5nIChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgJ1xcXCInIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgZ2V0X3N0cmluZyAoKVxuICAgIHwgU29tZSAnXFxcXCcgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fO1xuICAgICAgICBsZXQgYyA9XG4gICAgICAgICAgdHJ5IGVzY2FwZSBzdHJtX18gd2l0aFxuICAgICAgICAgICAgU3RyZWFtLkZhaWx1cmUgLT4gcmFpc2UgKFN0cmVhbS5FcnJvciBcIlwiKVxuICAgICAgICBpblxuICAgICAgICBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSBjOyBzdHJpbmcgc1xuICAgIHwgU29tZSBjIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gc3RvcmUgYzsgc3RyaW5nIHNcbiAgICB8IF8gLT4gcmFpc2UgU3RyZWFtLkZhaWx1cmVcbiAgYW5kIGNoYXIgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAnXFxcXCcgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fO1xuICAgICAgICBiZWdpbiB0cnkgZXNjYXBlIHN0cm1fXyB3aXRoXG4gICAgICAgICAgU3RyZWFtLkZhaWx1cmUgLT4gcmFpc2UgKFN0cmVhbS5FcnJvciBcIlwiKVxuICAgICAgICBlbmRcbiAgICB8IFNvbWUgYyAtPiBTdHJlYW0uanVuayBzdHJtX187IGNcbiAgICB8IF8gLT4gcmFpc2UgU3RyZWFtLkZhaWx1cmVcbiAgYW5kIGVzY2FwZSAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICduJyAtPiBTdHJlYW0uanVuayBzdHJtX187ICdcXG4nXG4gICAgfCBTb21lICdyJyAtPiBTdHJlYW0uanVuayBzdHJtX187ICdcXHInXG4gICAgfCBTb21lICd0JyAtPiBTdHJlYW0uanVuayBzdHJtX187ICdcXHQnXG4gICAgfCBTb21lICgnMCcuLic5JyBhcyBjMSkgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fO1xuICAgICAgICBiZWdpbiBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgICAgIFNvbWUgKCcwJy4uJzknIGFzIGMyKSAtPlxuICAgICAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fO1xuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgICAgICAgICAgU29tZSAoJzAnLi4nOScgYXMgYzMpIC0+XG4gICAgICAgICAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fO1xuICAgICAgICAgICAgICAgIENoYXIuY2hyXG4gICAgICAgICAgICAgICAgICAoKENoYXIuY29kZSBjMSAtIDQ4KSAqIDEwMCArIChDaGFyLmNvZGUgYzIgLSA0OCkgKiAxMCArXG4gICAgICAgICAgICAgICAgICAgICAoQ2hhci5jb2RlIGMzIC0gNDgpKVxuICAgICAgICAgICAgfCBfIC0+IHJhaXNlIChTdHJlYW0uRXJyb3IgXCJcIilcbiAgICAgICAgICAgIGVuZFxuICAgICAgICB8IF8gLT4gcmFpc2UgKFN0cmVhbS5FcnJvciBcIlwiKVxuICAgICAgICBlbmRcbiAgICB8IFNvbWUgYyAtPiBTdHJlYW0uanVuayBzdHJtX187IGNcbiAgICB8IF8gLT4gcmFpc2UgU3RyZWFtLkZhaWx1cmVcbiAgYW5kIG1heWJlX2NvbW1lbnQgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAnKicgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBjb21tZW50IHM7IG5leHRfdG9rZW4gc1xuICAgIHwgXyAtPiBTb21lIChrZXl3b3JkX29yX2Vycm9yICcoJylcbiAgYW5kIGNvbW1lbnQgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAnKCcgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBtYXliZV9uZXN0ZWRfY29tbWVudCBzdHJtX19cbiAgICB8IFNvbWUgJyonIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgbWF5YmVfZW5kX2NvbW1lbnQgc3RybV9fXG4gICAgfCBTb21lIF8gLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBjb21tZW50IHN0cm1fX1xuICAgIHwgXyAtPiByYWlzZSBTdHJlYW0uRmFpbHVyZVxuICBhbmQgbWF5YmVfbmVzdGVkX2NvbW1lbnQgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAnKicgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBjb21tZW50IHM7IGNvbW1lbnQgc1xuICAgIHwgU29tZSBfIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgY29tbWVudCBzdHJtX19cbiAgICB8IF8gLT4gcmFpc2UgU3RyZWFtLkZhaWx1cmVcbiAgYW5kIG1heWJlX2VuZF9jb21tZW50IChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgJyknIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgKClcbiAgICB8IFNvbWUgJyonIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgbWF5YmVfZW5kX2NvbW1lbnQgc3RybV9fXG4gICAgfCBTb21lIF8gLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBjb21tZW50IHN0cm1fX1xuICAgIHwgXyAtPiByYWlzZSBTdHJlYW0uRmFpbHVyZVxuICBpblxuICBmdW4gaW5wdXQgLT4gU3RyZWFtLmZyb20gKGZ1biBfY291bnQgLT4gbmV4dF90b2tlbiBpbnB1dClcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIERhbWllbiBEb2xpZ2V6LCBwcm9qZXQgUGFyYSwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTcgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuW0BAQG9jYW1sLndhcm5pbmcgXCItMzJcIl1cblxubW9kdWxlIHR5cGUgU2VlZGVkUyA9IHNpZ1xuXG4gIHR5cGUga2V5XG4gIHR5cGUgISdhIHRcbiAgdmFsIGNyZWF0ZSA6ID9yYW5kb20gKCp0aHdhcnQgdG9vbHMvc3luY19zdGRsaWJfZG9jcyopIDogYm9vbCAtPiBpbnQgLT4gJ2EgdFxuICB2YWwgY2xlYXIgOiAnYSB0IC0+IHVuaXRcbiAgdmFsIHJlc2V0IDogJ2EgdCAtPiB1bml0XG4gIHZhbCBjb3B5IDogJ2EgdCAtPiAnYSB0XG4gIHZhbCBhZGQgOiAnYSB0IC0+IGtleSAtPiAnYSAtPiB1bml0XG4gIHZhbCByZW1vdmUgOiAnYSB0IC0+IGtleSAtPiB1bml0XG4gIHZhbCBmaW5kIDogJ2EgdCAtPiBrZXkgLT4gJ2FcbiAgdmFsIGZpbmRfb3B0IDogJ2EgdCAtPiBrZXkgLT4gJ2Egb3B0aW9uXG4gIHZhbCBmaW5kX2FsbCA6ICdhIHQgLT4ga2V5IC0+ICdhIGxpc3RcbiAgdmFsIHJlcGxhY2UgOiAnYSB0IC0+IGtleSAtPiAnYSAtPiB1bml0XG4gIHZhbCBtZW0gOiAnYSB0IC0+IGtleSAtPiBib29sXG4gIHZhbCBpdGVyIDogKGtleSAtPiAnYSAtPiB1bml0KSAtPiAnYSB0IC0+IHVuaXRcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgZmlsdGVyX21hcF9pbnBsYWNlIDogKGtleSAtPiAnYSAtPiAnYSBvcHRpb24pIC0+ICdhIHQgLT4gdW5pdFxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCBmb2xkIDogKGtleSAtPiAnYSAtPiAnYiAtPiAnYikgLT4gJ2EgdCAtPiAnYiAtPiAnYlxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCBsZW5ndGggOiAnYSB0IC0+IGludFxuICB2YWwgc3RhdHMgOiAnYSB0IC0+IEhhc2h0Ymwuc3RhdGlzdGljc1xuICB2YWwgdG9fc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50XG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIHRvX3NlcV9rZXlzIDogXyB0IC0+IGtleSBTZXEudFxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCB0b19zZXFfdmFsdWVzIDogJ2EgdCAtPiAnYSBTZXEudFxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCBhZGRfc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50IC0+IHVuaXRcbiAgdmFsIHJlcGxhY2Vfc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50IC0+IHVuaXRcbiAgdmFsIG9mX3NlcSA6IChrZXkgKiAnYSkgU2VxLnQgLT4gJ2EgdFxuICB2YWwgY2xlYW46ICdhIHQgLT4gdW5pdFxuICB2YWwgc3RhdHNfYWxpdmU6ICdhIHQgLT4gSGFzaHRibC5zdGF0aXN0aWNzXG4gICAgKCoqIHNhbWUgYXMgeyFzdGF0c30gYnV0IG9ubHkgY291bnQgdGhlIGFsaXZlIGJpbmRpbmdzICopXG5lbmRcblxubW9kdWxlIHR5cGUgUyA9IHNpZ1xuXG4gIHR5cGUga2V5XG4gIHR5cGUgISdhIHRcbiAgdmFsIGNyZWF0ZSA6IGludCAtPiAnYSB0XG4gIHZhbCBjbGVhciA6ICdhIHQgLT4gdW5pdFxuICB2YWwgcmVzZXQgOiAnYSB0IC0+IHVuaXRcbiAgdmFsIGNvcHkgOiAnYSB0IC0+ICdhIHRcbiAgdmFsIGFkZCA6ICdhIHQgLT4ga2V5IC0+ICdhIC0+IHVuaXRcbiAgdmFsIHJlbW92ZSA6ICdhIHQgLT4ga2V5IC0+IHVuaXRcbiAgdmFsIGZpbmQgOiAnYSB0IC0+IGtleSAtPiAnYVxuICB2YWwgZmluZF9vcHQgOiAnYSB0IC0+IGtleSAtPiAnYSBvcHRpb25cbiAgdmFsIGZpbmRfYWxsIDogJ2EgdCAtPiBrZXkgLT4gJ2EgbGlzdFxuICB2YWwgcmVwbGFjZSA6ICdhIHQgLT4ga2V5IC0+ICdhIC0+IHVuaXRcbiAgdmFsIG1lbSA6ICdhIHQgLT4ga2V5IC0+IGJvb2xcbiAgdmFsIGl0ZXIgOiAoa2V5IC0+ICdhIC0+IHVuaXQpIC0+ICdhIHQgLT4gdW5pdFxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCBmaWx0ZXJfbWFwX2lucGxhY2UgOiAoa2V5IC0+ICdhIC0+ICdhIG9wdGlvbikgLT4gJ2EgdCAtPiB1bml0XG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIGZvbGQgOiAoa2V5IC0+ICdhIC0+ICdiIC0+ICdiKSAtPiAnYSB0IC0+ICdiIC0+ICdiXG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIGxlbmd0aCA6ICdhIHQgLT4gaW50XG4gIHZhbCBzdGF0cyA6ICdhIHQgLT4gSGFzaHRibC5zdGF0aXN0aWNzXG4gIHZhbCB0b19zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnRcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgdG9fc2VxX2tleXMgOiBfIHQgLT4ga2V5IFNlcS50XG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIHRvX3NlcV92YWx1ZXMgOiAnYSB0IC0+ICdhIFNlcS50XG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIGFkZF9zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnQgLT4gdW5pdFxuICB2YWwgcmVwbGFjZV9zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnQgLT4gdW5pdFxuICB2YWwgb2Zfc2VxIDogKGtleSAqICdhKSBTZXEudCAtPiAnYSB0XG4gIHZhbCBjbGVhbjogJ2EgdCAtPiB1bml0XG4gIHZhbCBzdGF0c19hbGl2ZTogJ2EgdCAtPiBIYXNodGJsLnN0YXRpc3RpY3NcbiAgICAoKiogc2FtZSBhcyB7IXN0YXRzfSBidXQgb25seSBjb3VudCB0aGUgYWxpdmUgYmluZGluZ3MgKilcbmVuZFxuXG5tb2R1bGUgR2VuSGFzaFRhYmxlID0gc3RydWN0XG5cbiAgdHlwZSBlcXVhbCA9XG4gIHwgRVRydWUgfCBFRmFsc2VcbiAgfCBFRGVhZCAoKiogdGhlIGdhcmJhZ2UgY29sbGVjdG9yIHJlY2xhaW1lZCB0aGUgZGF0YSAqKVxuXG4gIG1vZHVsZSBNYWtlU2VlZGVkKEg6IHNpZ1xuICAgIHR5cGUgdFxuICAgIHR5cGUgJ2EgY29udGFpbmVyXG4gICAgdmFsIGNyZWF0ZTogdCAtPiAnYSAtPiAnYSBjb250YWluZXJcbiAgICB2YWwgaGFzaDogaW50IC0+IHQgLT4gaW50XG4gICAgdmFsIGVxdWFsOiAnYSBjb250YWluZXIgLT4gdCAtPiBlcXVhbFxuICAgIHZhbCBnZXRfZGF0YTogJ2EgY29udGFpbmVyIC0+ICdhIG9wdGlvblxuICAgIHZhbCBnZXRfa2V5OiAnYSBjb250YWluZXIgLT4gdCBvcHRpb25cbiAgICB2YWwgc2V0X2tleV9kYXRhOiAnYSBjb250YWluZXIgLT4gdCAtPiAnYSAtPiB1bml0XG4gICAgdmFsIGNoZWNrX2tleTogJ2EgY29udGFpbmVyIC0+IGJvb2xcbiAgZW5kKSA6IFNlZWRlZFMgd2l0aCB0eXBlIGtleSA9IEgudFxuICA9IHN0cnVjdFxuXG4gICAgdHlwZSAnYSB0ID1cbiAgICAgIHsgbXV0YWJsZSBzaXplOiBpbnQ7ICAgICAgICAgICAgICAgICAgKCogbnVtYmVyIG9mIGVudHJpZXMgKilcbiAgICAgICAgbXV0YWJsZSBkYXRhOiAnYSBidWNrZXRsaXN0IGFycmF5OyAgKCogdGhlIGJ1Y2tldHMgKilcbiAgICAgICAgc2VlZDogaW50OyAgICAgICAgICAgICAgICAgICAgICAgICAgKCogZm9yIHJhbmRvbWl6YXRpb24gKilcbiAgICAgICAgaW5pdGlhbF9zaXplOiBpbnQ7ICAgICAgICAgICAgICAgICAgKCogaW5pdGlhbCBhcnJheSBzaXplICopXG4gICAgICB9XG5cbiAgICBhbmQgJ2EgYnVja2V0bGlzdCA9XG4gICAgfCBFbXB0eVxuICAgIHwgQ29ucyBvZiBpbnQgKCogaGFzaCBvZiB0aGUga2V5ICopICogJ2EgSC5jb250YWluZXIgKiAnYSBidWNrZXRsaXN0XG5cbiAgICAoKiogdGhlIGhhc2ggb2YgdGhlIGtleSBpcyBrZXB0IGluIG9yZGVyIHRvIHRlc3QgdGhlIGVxdWFsaXR5IG9mIHRoZSBoYXNoXG4gICAgICBiZWZvcmUgdGhlIGtleS4gU2FtZSByZWFzb24gYXMgZm9yIFdlYWsuTWFrZSAqKVxuXG4gICAgdHlwZSBrZXkgPSBILnRcblxuICAgIGxldCByZWMgcG93ZXJfMl9hYm92ZSB4IG4gPVxuICAgICAgaWYgeCA+PSBuIHRoZW4geFxuICAgICAgZWxzZSBpZiB4ICogMiA+IFN5cy5tYXhfYXJyYXlfbGVuZ3RoIHRoZW4geFxuICAgICAgZWxzZSBwb3dlcl8yX2Fib3ZlICh4ICogMikgblxuXG4gICAgbGV0IHBybmcgPSBsYXp5IChSYW5kb20uU3RhdGUubWFrZV9zZWxmX2luaXQoKSlcblxuICAgIGxldCBjcmVhdGUgPyhyYW5kb20gPSAoSGFzaHRibC5pc19yYW5kb21pemVkICgpKSkgaW5pdGlhbF9zaXplID1cbiAgICAgIGxldCBzID0gcG93ZXJfMl9hYm92ZSAxNiBpbml0aWFsX3NpemUgaW5cbiAgICAgIGxldCBzZWVkID0gaWYgcmFuZG9tIHRoZW4gUmFuZG9tLlN0YXRlLmJpdHMgKExhenkuZm9yY2UgcHJuZykgZWxzZSAwIGluXG4gICAgICB7IGluaXRpYWxfc2l6ZSA9IHM7IHNpemUgPSAwOyBzZWVkID0gc2VlZDsgZGF0YSA9IEFycmF5Lm1ha2UgcyBFbXB0eSB9XG5cbiAgICBsZXQgY2xlYXIgaCA9XG4gICAgICBoLnNpemUgPC0gMDtcbiAgICAgIGxldCBsZW4gPSBBcnJheS5sZW5ndGggaC5kYXRhIGluXG4gICAgICBmb3IgaSA9IDAgdG8gbGVuIC0gMSBkb1xuICAgICAgICBoLmRhdGEuKGkpIDwtIEVtcHR5XG4gICAgICBkb25lXG5cbiAgICBsZXQgcmVzZXQgaCA9XG4gICAgICBsZXQgbGVuID0gQXJyYXkubGVuZ3RoIGguZGF0YSBpblxuICAgICAgaWYgbGVuID0gaC5pbml0aWFsX3NpemUgdGhlblxuICAgICAgICBjbGVhciBoXG4gICAgICBlbHNlIGJlZ2luXG4gICAgICAgIGguc2l6ZSA8LSAwO1xuICAgICAgICBoLmRhdGEgPC0gQXJyYXkubWFrZSBoLmluaXRpYWxfc2l6ZSBFbXB0eVxuICAgICAgZW5kXG5cbiAgICBsZXQgY29weSBoID0geyBoIHdpdGggZGF0YSA9IEFycmF5LmNvcHkgaC5kYXRhIH1cblxuICAgIGxldCBrZXlfaW5kZXggaCBoa2V5ID1cbiAgICAgIGhrZXkgbGFuZCAoQXJyYXkubGVuZ3RoIGguZGF0YSAtIDEpXG5cbiAgICBsZXQgY2xlYW4gaCA9XG4gICAgICBsZXQgcmVjIGRvX2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICAgIEVtcHR5XG4gICAgICAgIHwgQ29ucyhfLCBjLCByZXN0KSB3aGVuIG5vdCAoSC5jaGVja19rZXkgYykgLT5cbiAgICAgICAgICAgIGguc2l6ZSA8LSBoLnNpemUgLSAxO1xuICAgICAgICAgICAgZG9fYnVja2V0IHJlc3RcbiAgICAgICAgfCBDb25zKGhrZXksIGMsIHJlc3QpIC0+XG4gICAgICAgICAgICBDb25zKGhrZXksIGMsIGRvX2J1Y2tldCByZXN0KVxuICAgICAgaW5cbiAgICAgIGxldCBkID0gaC5kYXRhIGluXG4gICAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGQgLSAxIGRvXG4gICAgICAgIGQuKGkpIDwtIGRvX2J1Y2tldCBkLihpKVxuICAgICAgZG9uZVxuXG4gICAgKCoqIHJlc2l6ZSBpcyB0aGUgb25seSBmdW5jdGlvbiB0byBkbyB0aGUgYWN0dWFsIGNsZWFuaW5nIG9mIGRlYWQga2V5c1xuICAgICAgICAocmVtb3ZlIGRvZXMgaXQganVzdCBiZWNhdXNlIGl0IGNvdWxkKS5cblxuICAgICAgICBUaGUgZ29hbCBpcyB0bzpcblxuICAgICAgICAtIG5vdCByZXNpemUgaW5maW5pdGVseSB3aGVuIHRoZSBhY3R1YWwgbnVtYmVyIG9mIGFsaXZlIGtleXMgaXNcbiAgICAgICAgYm91bmRlZCBidXQga2V5cyBhcmUgY29udGludW91c2x5IGFkZGVkLiBUaGF0IHdvdWxkIGhhcHBlbiBpZlxuICAgICAgICB0aGlzIGZ1bmN0aW9uIGFsd2F5cyByZXNpemUuXG4gICAgICAgIC0gbm90IGNhbGwgdGhpcyBmdW5jdGlvbiBhZnRlciBlYWNoIGFkZGl0aW9uLCB0aGF0IHdvdWxkIGhhcHBlbiBpZiB0aGlzXG4gICAgICAgIGZ1bmN0aW9uIGRvbid0IHJlc2l6ZSBldmVuIHdoZW4gb25seSBvbmUga2V5IGlzIGRlYWQuXG5cbiAgICAgICAgU28gdGhlIGFsZ29yaXRobTpcbiAgICAgICAgLSBjbGVhbiB0aGUga2V5cyBiZWZvcmUgcmVzaXppbmdcbiAgICAgICAgLSBpZiB0aGUgbnVtYmVyIG9mIHJlbWFpbmluZyBrZXlzIGlzIGxlc3MgdGhhbiBoYWxmIHRoZSBzaXplIG9mIHRoZVxuICAgICAgICBhcnJheSwgZG9uJ3QgcmVzaXplLlxuICAgICAgICAtIGlmIGl0IGlzIG1vcmUsIHJlc2l6ZS5cblxuICAgICAgICBUaGUgc2Vjb25kIHByb2JsZW0gcmVtYWlucyBpZiB0aGUgdGFibGUgcmVhY2hlcyB7IVN5cy5tYXhfYXJyYXlfbGVuZ3RofS5cblxuICAgICopXG4gICAgbGV0IHJlc2l6ZSBoID1cbiAgICAgIGxldCBvZGF0YSA9IGguZGF0YSBpblxuICAgICAgbGV0IG9zaXplID0gQXJyYXkubGVuZ3RoIG9kYXRhIGluXG4gICAgICBsZXQgbnNpemUgPSBvc2l6ZSAqIDIgaW5cbiAgICAgIGNsZWFuIGg7XG4gICAgICBpZiBuc2l6ZSA8IFN5cy5tYXhfYXJyYXlfbGVuZ3RoICYmIGguc2l6ZSA+PSBvc2l6ZSBsc3IgMSB0aGVuIGJlZ2luXG4gICAgICAgIGxldCBuZGF0YSA9IEFycmF5Lm1ha2UgbnNpemUgRW1wdHkgaW5cbiAgICAgICAgaC5kYXRhIDwtIG5kYXRhOyAgICAgICAoKiBzbyB0aGF0IGtleV9pbmRleCBzZWVzIHRoZSBuZXcgYnVja2V0IGNvdW50ICopXG4gICAgICAgIGxldCByZWMgaW5zZXJ0X2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgICAgICAgICBFbXB0eSAtPiAoKVxuICAgICAgICAgIHwgQ29ucyhoa2V5LCBkYXRhLCByZXN0KSAtPlxuICAgICAgICAgICAgICBpbnNlcnRfYnVja2V0IHJlc3Q7ICgqIHByZXNlcnZlIG9yaWdpbmFsIG9yZGVyIG9mIGVsZW1lbnRzICopXG4gICAgICAgICAgICAgIGxldCBuaWR4ID0ga2V5X2luZGV4IGggaGtleSBpblxuICAgICAgICAgICAgICBuZGF0YS4obmlkeCkgPC0gQ29ucyhoa2V5LCBkYXRhLCBuZGF0YS4obmlkeCkpIGluXG4gICAgICAgIGZvciBpID0gMCB0byBvc2l6ZSAtIDEgZG9cbiAgICAgICAgICBpbnNlcnRfYnVja2V0IG9kYXRhLihpKVxuICAgICAgICBkb25lXG4gICAgICBlbmRcblxuICAgIGxldCBhZGQgaCBrZXkgaW5mbyA9XG4gICAgICBsZXQgaGtleSA9IEguaGFzaCBoLnNlZWQga2V5IGluXG4gICAgICBsZXQgaSA9IGtleV9pbmRleCBoIGhrZXkgaW5cbiAgICAgIGxldCBjb250YWluZXIgPSBILmNyZWF0ZSBrZXkgaW5mbyBpblxuICAgICAgbGV0IGJ1Y2tldCA9IENvbnMoaGtleSwgY29udGFpbmVyLCBoLmRhdGEuKGkpKSBpblxuICAgICAgaC5kYXRhLihpKSA8LSBidWNrZXQ7XG4gICAgICBoLnNpemUgPC0gaC5zaXplICsgMTtcbiAgICAgIGlmIGguc2l6ZSA+IEFycmF5Lmxlbmd0aCBoLmRhdGEgbHNsIDEgdGhlbiByZXNpemUgaFxuXG4gICAgbGV0IHJlbW92ZSBoIGtleSA9XG4gICAgICBsZXQgaGtleSA9IEguaGFzaCBoLnNlZWQga2V5IGluXG4gICAgICBsZXQgcmVjIHJlbW92ZV9idWNrZXQgPSBmdW5jdGlvblxuICAgICAgICB8IEVtcHR5IC0+IEVtcHR5XG4gICAgICAgIHwgQ29ucyhoaywgYywgbmV4dCkgd2hlbiBoa2V5ID0gaGsgLT5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIEguZXF1YWwgYyBrZXkgd2l0aFxuICAgICAgICAgICAgfCBFVHJ1ZSAtPiBoLnNpemUgPC0gaC5zaXplIC0gMTsgbmV4dFxuICAgICAgICAgICAgfCBFRmFsc2UgLT4gQ29ucyhoaywgYywgcmVtb3ZlX2J1Y2tldCBuZXh0KVxuICAgICAgICAgICAgfCBFRGVhZCAtPlxuICAgICAgICAgICAgICAgICgqIFRoZSBkZWFkIGtleSBpcyBhdXRvbWF0aWNhbGx5IHJlbW92ZWQuIEl0IGlzIGFjY2VwdGFibGVcbiAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZnVuY3Rpb24gc2luY2UgaXQgYWxyZWFkeSByZW1vdmVzIGEgYmluZGluZyAqKVxuICAgICAgICAgICAgICAgIGguc2l6ZSA8LSBoLnNpemUgLSAxO1xuICAgICAgICAgICAgICAgIHJlbW92ZV9idWNrZXQgbmV4dFxuICAgICAgICAgICAgZW5kXG4gICAgICAgIHwgQ29ucyhoayxjLG5leHQpIC0+IENvbnMoaGssIGMsIHJlbW92ZV9idWNrZXQgbmV4dCkgaW5cbiAgICAgIGxldCBpID0ga2V5X2luZGV4IGggaGtleSBpblxuICAgICAgaC5kYXRhLihpKSA8LSByZW1vdmVfYnVja2V0IGguZGF0YS4oaSlcblxuICAgICgqKiB7IWZpbmR9IGRvbid0IHJlbW92ZSBkZWFkIGtleXMgYmVjYXVzZSBpdCB3b3VsZCBiZSBzdXJwcmlzaW5nIGZvclxuICAgICAgICB0aGUgdXNlciB0aGF0IGEgcmVhZC1vbmx5IGZ1bmN0aW9uIG11dGF0ZXMgdGhlIHN0YXRlIChlZy4gY29uY3VycmVudFxuICAgICAgICBhY2Nlc3MpLiBTYW1lIGZvciB7IWl0ZXJ9LCB7IWZvbGR9LCB7IW1lbX0uXG4gICAgKilcbiAgICBsZXQgcmVjIGZpbmRfcmVjIGtleSBoa2V5ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgQ29ucyhoaywgYywgcmVzdCkgd2hlbiBoa2V5ID0gaGsgIC0+XG4gICAgICAgICAgYmVnaW4gbWF0Y2ggSC5lcXVhbCBjIGtleSB3aXRoXG4gICAgICAgICAgfCBFVHJ1ZSAtPlxuICAgICAgICAgICAgICBiZWdpbiBtYXRjaCBILmdldF9kYXRhIGMgd2l0aFxuICAgICAgICAgICAgICB8IE5vbmUgLT5cbiAgICAgICAgICAgICAgICAgICgqIFRoaXMgY2FzZSBpcyBub3QgaW1wb3NzaWJsZSBiZWNhdXNlIHRoZSBnYyBjYW4gcnVuIGJldHdlZW5cbiAgICAgICAgICAgICAgICAgICAgICBILmVxdWFsIGFuZCBILmdldF9kYXRhICopXG4gICAgICAgICAgICAgICAgICBmaW5kX3JlYyBrZXkgaGtleSByZXN0XG4gICAgICAgICAgICAgIHwgU29tZSBkIC0+IGRcbiAgICAgICAgICAgICAgZW5kXG4gICAgICAgICAgfCBFRmFsc2UgLT4gZmluZF9yZWMga2V5IGhrZXkgcmVzdFxuICAgICAgICAgIHwgRURlYWQgLT5cbiAgICAgICAgICAgICAgZmluZF9yZWMga2V5IGhrZXkgcmVzdFxuICAgICAgICAgIGVuZFxuICAgICAgfCBDb25zKF8sIF8sIHJlc3QpIC0+XG4gICAgICAgICAgZmluZF9yZWMga2V5IGhrZXkgcmVzdFxuXG4gICAgbGV0IGZpbmQgaCBrZXkgPVxuICAgICAgbGV0IGhrZXkgPSBILmhhc2ggaC5zZWVkIGtleSBpblxuICAgICAgKCogVE9ETyBpbmxpbmUgMyBpdGVyYXRpb25zICopXG4gICAgICBmaW5kX3JlYyBrZXkgaGtleSAoaC5kYXRhLihrZXlfaW5kZXggaCBoa2V5KSlcblxuICAgIGxldCByZWMgZmluZF9yZWNfb3B0IGtleSBoa2V5ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICBOb25lXG4gICAgICB8IENvbnMoaGssIGMsIHJlc3QpIHdoZW4gaGtleSA9IGhrICAtPlxuICAgICAgICAgIGJlZ2luIG1hdGNoIEguZXF1YWwgYyBrZXkgd2l0aFxuICAgICAgICAgIHwgRVRydWUgLT5cbiAgICAgICAgICAgICAgYmVnaW4gbWF0Y2ggSC5nZXRfZGF0YSBjIHdpdGhcbiAgICAgICAgICAgICAgfCBOb25lIC0+XG4gICAgICAgICAgICAgICAgICAoKiBUaGlzIGNhc2UgaXMgbm90IGltcG9zc2libGUgYmVjYXVzZSB0aGUgZ2MgY2FuIHJ1biBiZXR3ZWVuXG4gICAgICAgICAgICAgICAgICAgICAgSC5lcXVhbCBhbmQgSC5nZXRfZGF0YSAqKVxuICAgICAgICAgICAgICAgICAgZmluZF9yZWNfb3B0IGtleSBoa2V5IHJlc3RcbiAgICAgICAgICAgICAgfCBTb21lIF8gYXMgZCAtPiBkXG4gICAgICAgICAgICAgIGVuZFxuICAgICAgICAgIHwgRUZhbHNlIC0+IGZpbmRfcmVjX29wdCBrZXkgaGtleSByZXN0XG4gICAgICAgICAgfCBFRGVhZCAtPlxuICAgICAgICAgICAgICBmaW5kX3JlY19vcHQga2V5IGhrZXkgcmVzdFxuICAgICAgICAgIGVuZFxuICAgICAgfCBDb25zKF8sIF8sIHJlc3QpIC0+XG4gICAgICAgICAgZmluZF9yZWNfb3B0IGtleSBoa2V5IHJlc3RcblxuICAgIGxldCBmaW5kX29wdCBoIGtleSA9XG4gICAgICBsZXQgaGtleSA9IEguaGFzaCBoLnNlZWQga2V5IGluXG4gICAgICAoKiBUT0RPIGlubGluZSAzIGl0ZXJhdGlvbnMgKilcbiAgICAgIGZpbmRfcmVjX29wdCBrZXkgaGtleSAoaC5kYXRhLihrZXlfaW5kZXggaCBoa2V5KSlcblxuICAgIGxldCBmaW5kX2FsbCBoIGtleSA9XG4gICAgICBsZXQgaGtleSA9IEguaGFzaCBoLnNlZWQga2V5IGluXG4gICAgICBsZXQgcmVjIGZpbmRfaW5fYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gW11cbiAgICAgIHwgQ29ucyhoaywgYywgcmVzdCkgd2hlbiBoa2V5ID0gaGsgIC0+XG4gICAgICAgICAgYmVnaW4gbWF0Y2ggSC5lcXVhbCBjIGtleSB3aXRoXG4gICAgICAgICAgfCBFVHJ1ZSAtPiBiZWdpbiBtYXRjaCBILmdldF9kYXRhIGMgd2l0aFxuICAgICAgICAgICAgICB8IE5vbmUgLT5cbiAgICAgICAgICAgICAgICAgIGZpbmRfaW5fYnVja2V0IHJlc3RcbiAgICAgICAgICAgICAgfCBTb21lIGQgLT4gZDo6ZmluZF9pbl9idWNrZXQgcmVzdFxuICAgICAgICAgICAgZW5kXG4gICAgICAgICAgfCBFRmFsc2UgLT4gZmluZF9pbl9idWNrZXQgcmVzdFxuICAgICAgICAgIHwgRURlYWQgLT5cbiAgICAgICAgICAgICAgZmluZF9pbl9idWNrZXQgcmVzdFxuICAgICAgICAgIGVuZFxuICAgICAgfCBDb25zKF8sIF8sIHJlc3QpIC0+XG4gICAgICAgICAgZmluZF9pbl9idWNrZXQgcmVzdCBpblxuICAgICAgZmluZF9pbl9idWNrZXQgaC5kYXRhLihrZXlfaW5kZXggaCBoa2V5KVxuXG5cbiAgICBsZXQgcmVwbGFjZSBoIGtleSBpbmZvID1cbiAgICAgIGxldCBoa2V5ID0gSC5oYXNoIGguc2VlZCBrZXkgaW5cbiAgICAgIGxldCByZWMgcmVwbGFjZV9idWNrZXQgPSBmdW5jdGlvblxuICAgICAgICB8IEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgICB8IENvbnMoaGssIGMsIG5leHQpIHdoZW4gaGtleSA9IGhrIC0+XG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBILmVxdWFsIGMga2V5IHdpdGhcbiAgICAgICAgICAgIHwgRVRydWUgLT4gSC5zZXRfa2V5X2RhdGEgYyBrZXkgaW5mb1xuICAgICAgICAgICAgfCBFRmFsc2UgfCBFRGVhZCAtPiByZXBsYWNlX2J1Y2tldCBuZXh0XG4gICAgICAgICAgICBlbmRcbiAgICAgICAgfCBDb25zKF8sXyxuZXh0KSAtPiByZXBsYWNlX2J1Y2tldCBuZXh0XG4gICAgICBpblxuICAgICAgbGV0IGkgPSBrZXlfaW5kZXggaCBoa2V5IGluXG4gICAgICBsZXQgbCA9IGguZGF0YS4oaSkgaW5cbiAgICAgIHRyeVxuICAgICAgICByZXBsYWNlX2J1Y2tldCBsXG4gICAgICB3aXRoIE5vdF9mb3VuZCAtPlxuICAgICAgICBsZXQgY29udGFpbmVyID0gSC5jcmVhdGUga2V5IGluZm8gaW5cbiAgICAgICAgaC5kYXRhLihpKSA8LSBDb25zKGhrZXksIGNvbnRhaW5lciwgbCk7XG4gICAgICAgIGguc2l6ZSA8LSBoLnNpemUgKyAxO1xuICAgICAgICBpZiBoLnNpemUgPiBBcnJheS5sZW5ndGggaC5kYXRhIGxzbCAxIHRoZW4gcmVzaXplIGhcblxuICAgIGxldCBtZW0gaCBrZXkgPVxuICAgICAgbGV0IGhrZXkgPSBILmhhc2ggaC5zZWVkIGtleSBpblxuICAgICAgbGV0IHJlYyBtZW1faW5fYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICBmYWxzZVxuICAgICAgfCBDb25zKGhrLCBjLCByZXN0KSB3aGVuIGhrID0gaGtleSAtPlxuICAgICAgICAgIGJlZ2luIG1hdGNoIEguZXF1YWwgYyBrZXkgd2l0aFxuICAgICAgICAgIHwgRVRydWUgLT4gdHJ1ZVxuICAgICAgICAgIHwgRUZhbHNlIHwgRURlYWQgLT4gbWVtX2luX2J1Y2tldCByZXN0XG4gICAgICAgICAgZW5kXG4gICAgICB8IENvbnMoX2hrLCBfYywgcmVzdCkgLT4gbWVtX2luX2J1Y2tldCByZXN0IGluXG4gICAgICBtZW1faW5fYnVja2V0IGguZGF0YS4oa2V5X2luZGV4IGggaGtleSlcblxuICAgIGxldCBpdGVyIGYgaCA9XG4gICAgICBsZXQgcmVjIGRvX2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICAgICgpXG4gICAgICAgIHwgQ29ucyhfLCBjLCByZXN0KSAtPlxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggSC5nZXRfa2V5IGMsIEguZ2V0X2RhdGEgYyB3aXRoXG4gICAgICAgICAgICB8IE5vbmUsIF8gfCBfLCBOb25lIC0+ICgpXG4gICAgICAgICAgICB8IFNvbWUgaywgU29tZSBkIC0+IGYgayBkXG4gICAgICAgICAgICBlbmQ7IGRvX2J1Y2tldCByZXN0IGluXG4gICAgICBsZXQgZCA9IGguZGF0YSBpblxuICAgICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBkIC0gMSBkb1xuICAgICAgICBkb19idWNrZXQgZC4oaSlcbiAgICAgIGRvbmVcblxuICAgIGxldCBmb2xkIGYgaCBpbml0ID1cbiAgICAgIGxldCByZWMgZG9fYnVja2V0IGIgYWNjdSA9XG4gICAgICAgIG1hdGNoIGIgd2l0aFxuICAgICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgICBhY2N1XG4gICAgICAgIHwgQ29ucyhfLCBjLCByZXN0KSAtPlxuICAgICAgICAgICAgbGV0IGFjY3UgPSBiZWdpbiBtYXRjaCBILmdldF9rZXkgYywgSC5nZXRfZGF0YSBjIHdpdGhcbiAgICAgICAgICAgICAgfCBOb25lLCBfIHwgXywgTm9uZSAtPiBhY2N1XG4gICAgICAgICAgICAgIHwgU29tZSBrLCBTb21lIGQgLT4gZiBrIGQgYWNjdVxuICAgICAgICAgICAgZW5kIGluXG4gICAgICAgICAgICBkb19idWNrZXQgcmVzdCBhY2N1ICBpblxuICAgICAgbGV0IGQgPSBoLmRhdGEgaW5cbiAgICAgIGxldCBhY2N1ID0gcmVmIGluaXQgaW5cbiAgICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggZCAtIDEgZG9cbiAgICAgICAgYWNjdSA6PSBkb19idWNrZXQgZC4oaSkgIWFjY3VcbiAgICAgIGRvbmU7XG4gICAgICAhYWNjdVxuXG4gICAgbGV0IGZpbHRlcl9tYXBfaW5wbGFjZSBmIGggPVxuICAgICAgbGV0IHJlYyBkb19idWNrZXQgPSBmdW5jdGlvblxuICAgICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgICBFbXB0eVxuICAgICAgICB8IENvbnMoaGssIGMsIHJlc3QpIC0+XG4gICAgICAgICAgICBtYXRjaCBILmdldF9rZXkgYywgSC5nZXRfZGF0YSBjIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSwgXyB8IF8sIE5vbmUgLT5cbiAgICAgICAgICAgICAgICBkb19idWNrZXQgcmVzdFxuICAgICAgICAgICAgfCBTb21lIGssIFNvbWUgZCAtPlxuICAgICAgICAgICAgICAgIG1hdGNoIGYgayBkIHdpdGhcbiAgICAgICAgICAgICAgICB8IE5vbmUgLT5cbiAgICAgICAgICAgICAgICAgICAgZG9fYnVja2V0IHJlc3RcbiAgICAgICAgICAgICAgICB8IFNvbWUgbmV3X2QgLT5cbiAgICAgICAgICAgICAgICAgICAgSC5zZXRfa2V5X2RhdGEgYyBrIG5ld19kO1xuICAgICAgICAgICAgICAgICAgICBDb25zKGhrLCBjLCBkb19idWNrZXQgcmVzdClcbiAgICAgIGluXG4gICAgICBsZXQgZCA9IGguZGF0YSBpblxuICAgICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBkIC0gMSBkb1xuICAgICAgICBkLihpKSA8LSBkb19idWNrZXQgZC4oaSlcbiAgICAgIGRvbmVcblxuICAgIGxldCBsZW5ndGggaCA9IGguc2l6ZVxuXG4gICAgbGV0IHJlYyBidWNrZXRfbGVuZ3RoIGFjY3UgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPiBhY2N1XG4gICAgICB8IENvbnMoXywgXywgcmVzdCkgLT4gYnVja2V0X2xlbmd0aCAoYWNjdSArIDEpIHJlc3RcblxuICAgIGxldCBzdGF0cyBoID1cbiAgICAgIGxldCBtYmwgPVxuICAgICAgICBBcnJheS5mb2xkX2xlZnQgKGZ1biBtIGIgLT4gSW50Lm1heCBtIChidWNrZXRfbGVuZ3RoIDAgYikpIDAgaC5kYXRhIGluXG4gICAgICBsZXQgaGlzdG8gPSBBcnJheS5tYWtlIChtYmwgKyAxKSAwIGluXG4gICAgICBBcnJheS5pdGVyXG4gICAgICAgIChmdW4gYiAtPlxuICAgICAgICAgICBsZXQgbCA9IGJ1Y2tldF9sZW5ndGggMCBiIGluXG4gICAgICAgICAgIGhpc3RvLihsKSA8LSBoaXN0by4obCkgKyAxKVxuICAgICAgICBoLmRhdGE7XG4gICAgICB7IEhhc2h0YmwubnVtX2JpbmRpbmdzID0gaC5zaXplO1xuICAgICAgICBudW1fYnVja2V0cyA9IEFycmF5Lmxlbmd0aCBoLmRhdGE7XG4gICAgICAgIG1heF9idWNrZXRfbGVuZ3RoID0gbWJsO1xuICAgICAgICBidWNrZXRfaGlzdG9ncmFtID0gaGlzdG8gfVxuXG4gICAgbGV0IHJlYyBidWNrZXRfbGVuZ3RoX2FsaXZlIGFjY3UgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPiBhY2N1XG4gICAgICB8IENvbnMoXywgYywgcmVzdCkgd2hlbiBILmNoZWNrX2tleSBjIC0+XG4gICAgICAgICAgYnVja2V0X2xlbmd0aF9hbGl2ZSAoYWNjdSArIDEpIHJlc3RcbiAgICAgIHwgQ29ucyhfLCBfLCByZXN0KSAtPiBidWNrZXRfbGVuZ3RoX2FsaXZlIGFjY3UgcmVzdFxuXG4gICAgbGV0IHN0YXRzX2FsaXZlIGggPVxuICAgICAgbGV0IHNpemUgPSByZWYgMCBpblxuICAgICAgbGV0IG1ibCA9XG4gICAgICAgIEFycmF5LmZvbGRfbGVmdFxuICAgICAgICAgIChmdW4gbSBiIC0+IEludC5tYXggbSAoYnVja2V0X2xlbmd0aF9hbGl2ZSAwIGIpKSAwIGguZGF0YVxuICAgICAgaW5cbiAgICAgIGxldCBoaXN0byA9IEFycmF5Lm1ha2UgKG1ibCArIDEpIDAgaW5cbiAgICAgIEFycmF5Lml0ZXJcbiAgICAgICAgKGZ1biBiIC0+XG4gICAgICAgICAgIGxldCBsID0gYnVja2V0X2xlbmd0aF9hbGl2ZSAwIGIgaW5cbiAgICAgICAgICAgc2l6ZSA6PSAhc2l6ZSArIGw7XG4gICAgICAgICAgIGhpc3RvLihsKSA8LSBoaXN0by4obCkgKyAxKVxuICAgICAgICBoLmRhdGE7XG4gICAgICB7IEhhc2h0YmwubnVtX2JpbmRpbmdzID0gIXNpemU7XG4gICAgICAgIG51bV9idWNrZXRzID0gQXJyYXkubGVuZ3RoIGguZGF0YTtcbiAgICAgICAgbWF4X2J1Y2tldF9sZW5ndGggPSBtYmw7XG4gICAgICAgIGJ1Y2tldF9oaXN0b2dyYW0gPSBoaXN0byB9XG5cbiAgICBsZXQgdG9fc2VxIHRibCA9XG4gICAgICAoKiBjYXB0dXJlIGN1cnJlbnQgYXJyYXksIHNvIHRoYXQgZXZlbiBpZiB0aGUgdGFibGUgaXMgcmVzaXplZCB3ZVxuICAgICAgICAga2VlcCBpdGVyYXRpbmcgb24gdGhlIHNhbWUgYXJyYXkgKilcbiAgICAgIGxldCB0YmxfZGF0YSA9IHRibC5kYXRhIGluXG4gICAgICAoKiBzdGF0ZTogaW5kZXggKiBuZXh0IGJ1Y2tldCB0byB0cmF2ZXJzZSAqKVxuICAgICAgbGV0IHJlYyBhdXggaSBidWNrICgpID0gbWF0Y2ggYnVjayB3aXRoXG4gICAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICAgIGlmIGkgPSBBcnJheS5sZW5ndGggdGJsX2RhdGFcbiAgICAgICAgICAgIHRoZW4gU2VxLk5pbFxuICAgICAgICAgICAgZWxzZSBhdXgoaSsxKSB0YmxfZGF0YS4oaSkgKClcbiAgICAgICAgfCBDb25zIChfLCBjLCBuZXh0KSAtPlxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggSC5nZXRfa2V5IGMsIEguZ2V0X2RhdGEgYyB3aXRoXG4gICAgICAgICAgICAgIHwgTm9uZSwgXyB8IF8sIE5vbmUgLT4gYXV4IGkgbmV4dCAoKVxuICAgICAgICAgICAgICB8IFNvbWUga2V5LCBTb21lIGRhdGEgLT5cbiAgICAgICAgICAgICAgICAgIFNlcS5Db25zICgoa2V5LCBkYXRhKSwgYXV4IGkgbmV4dClcbiAgICAgICAgICAgIGVuZFxuICAgICAgaW5cbiAgICAgIGF1eCAwIEVtcHR5XG5cbiAgICBsZXQgdG9fc2VxX2tleXMgbSA9IFNlcS5tYXAgZnN0ICh0b19zZXEgbSlcblxuICAgIGxldCB0b19zZXFfdmFsdWVzIG0gPSBTZXEubWFwIHNuZCAodG9fc2VxIG0pXG5cbiAgICBsZXQgYWRkX3NlcSB0YmwgaSA9XG4gICAgICBTZXEuaXRlciAoZnVuIChrLHYpIC0+IGFkZCB0YmwgayB2KSBpXG5cbiAgICBsZXQgcmVwbGFjZV9zZXEgdGJsIGkgPVxuICAgICAgU2VxLml0ZXIgKGZ1biAoayx2KSAtPiByZXBsYWNlIHRibCBrIHYpIGlcblxuICAgIGxldCBvZl9zZXEgaSA9XG4gICAgICBsZXQgdGJsID0gY3JlYXRlIDE2IGluXG4gICAgICByZXBsYWNlX3NlcSB0YmwgaTtcbiAgICAgIHRibFxuXG4gIGVuZFxuZW5kXG5cbm1vZHVsZSBPYmpFcGggPSBPYmouRXBoZW1lcm9uXG5cbmxldCBfb2JqX29wdCA6IE9iai50IG9wdGlvbiAtPiAnYSBvcHRpb24gPSBmdW4geCAtPlxuICBtYXRjaCB4IHdpdGhcbiAgfCBOb25lIC0+IHhcbiAgfCBTb21lIHYgLT4gU29tZSAoT2JqLm9iaiB2KVxuXG4oKiogVGhlIHByZXZpb3VzIGZ1bmN0aW9uIGlzIHR5cGVkIHNvIHRoaXMgb25lIGlzIGFsc28gY29ycmVjdCAqKVxubGV0IG9ial9vcHQgOiBPYmoudCBvcHRpb24gLT4gJ2Egb3B0aW9uID0gZnVuIHggLT4gT2JqLm1hZ2ljIHhcblxuXG5tb2R1bGUgSzEgPSBzdHJ1Y3RcbiAgdHlwZSAoJ2ssJ2QpIHQgPSBPYmpFcGgudFxuXG4gIGxldCBjcmVhdGUgKCkgOiAoJ2ssJ2QpIHQgPSBPYmpFcGguY3JlYXRlIDFcblxuICBsZXQgZ2V0X2tleSAodDooJ2ssJ2QpIHQpIDogJ2sgb3B0aW9uID0gb2JqX29wdCAoT2JqRXBoLmdldF9rZXkgdCAwKVxuICBsZXQgZ2V0X2tleV9jb3B5ICh0OignaywnZCkgdCkgOiAnayBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2tleV9jb3B5IHQgMClcbiAgbGV0IHNldF9rZXkgKHQ6KCdrLCdkKSB0KSAoazonaykgOiB1bml0ID0gT2JqRXBoLnNldF9rZXkgdCAwIChPYmoucmVwciBrKVxuICBsZXQgdW5zZXRfa2V5ICh0OignaywnZCkgdCkgOiB1bml0ID0gT2JqRXBoLnVuc2V0X2tleSB0IDBcbiAgbGV0IGNoZWNrX2tleSAodDooJ2ssJ2QpIHQpIDogYm9vbCA9IE9iakVwaC5jaGVja19rZXkgdCAwXG5cbiAgbGV0IGJsaXRfa2V5ICh0MTooJ2ssJ2QpIHQpICh0MjooJ2ssJ2QpIHQpOiB1bml0ID1cbiAgICBPYmpFcGguYmxpdF9rZXkgdDEgMCB0MiAwIDFcblxuICBsZXQgZ2V0X2RhdGEgKHQ6KCdrLCdkKSB0KSA6ICdkIG9wdGlvbiA9IG9ial9vcHQgKE9iakVwaC5nZXRfZGF0YSB0KVxuICBsZXQgZ2V0X2RhdGFfY29weSAodDooJ2ssJ2QpIHQpIDogJ2Qgb3B0aW9uID0gb2JqX29wdCAoT2JqRXBoLmdldF9kYXRhX2NvcHkgdClcbiAgbGV0IHNldF9kYXRhICh0OignaywnZCkgdCkgKGQ6J2QpIDogdW5pdCA9IE9iakVwaC5zZXRfZGF0YSB0IChPYmoucmVwciBkKVxuICBsZXQgdW5zZXRfZGF0YSAodDooJ2ssJ2QpIHQpIDogdW5pdCA9IE9iakVwaC51bnNldF9kYXRhIHRcbiAgbGV0IGNoZWNrX2RhdGEgKHQ6KCdrLCdkKSB0KSA6IGJvb2wgPSBPYmpFcGguY2hlY2tfZGF0YSB0XG4gIGxldCBibGl0X2RhdGEgKHQxOihfLCdkKSB0KSAodDI6KF8sJ2QpIHQpIDogdW5pdCA9IE9iakVwaC5ibGl0X2RhdGEgdDEgdDJcblxuICBsZXQgbWFrZSBrZXkgZGF0YSA9XG4gICAgbGV0IGVwaCA9IGNyZWF0ZSAoKSBpblxuICAgIHNldF9kYXRhIGVwaCBkYXRhO1xuICAgIHNldF9rZXkgZXBoIGtleTtcbiAgICBlcGhcblxuICBsZXQgcXVlcnkgZXBoIGtleSA9XG4gICAgbWF0Y2ggZ2V0X2tleSBlcGggd2l0aFxuICAgIHwgTm9uZSAtPiBOb25lXG4gICAgfCBTb21lIGsgd2hlbiBrID09IGtleSAtPiBnZXRfZGF0YSBlcGhcbiAgICB8IFNvbWUgXyAtPiBOb25lXG5cbiAgbW9kdWxlIE1ha2VTZWVkZWQgKEg6SGFzaHRibC5TZWVkZWRIYXNoZWRUeXBlKSA9XG4gICAgR2VuSGFzaFRhYmxlLk1ha2VTZWVkZWQoc3RydWN0XG4gICAgICB0eXBlICdhIGNvbnRhaW5lciA9IChILnQsJ2EpIHRcbiAgICAgIHR5cGUgdCA9IEgudFxuICAgICAgbGV0IGNyZWF0ZSBrIGQgPVxuICAgICAgICBsZXQgYyA9IGNyZWF0ZSAoKSBpblxuICAgICAgICBzZXRfZGF0YSBjIGQ7XG4gICAgICAgIHNldF9rZXkgYyBrO1xuICAgICAgICBjXG4gICAgICBsZXQgaGFzaCA9IEguaGFzaFxuICAgICAgbGV0IGVxdWFsIGMgayA9XG4gICAgICAgICgqIHshZ2V0X2tleV9jb3B5fSBpcyBub3QgdXNlZCBiZWNhdXNlIHRoZSBlcXVhbGl0eSBvZiB0aGUgdXNlciBjYW4gYmVcbiAgICAgICAgICAgIHRoZSBwaHlzaWNhbCBlcXVhbGl0eSAqKVxuICAgICAgICBtYXRjaCBnZXRfa2V5IGMgd2l0aFxuICAgICAgICB8IE5vbmUgLT4gR2VuSGFzaFRhYmxlLkVEZWFkXG4gICAgICAgIHwgU29tZSBrJyAtPlxuICAgICAgICAgICAgaWYgSC5lcXVhbCBrIGsnIHRoZW4gR2VuSGFzaFRhYmxlLkVUcnVlIGVsc2UgR2VuSGFzaFRhYmxlLkVGYWxzZVxuICAgICAgbGV0IGdldF9kYXRhID0gZ2V0X2RhdGFcbiAgICAgIGxldCBnZXRfa2V5ID0gZ2V0X2tleVxuICAgICAgbGV0IHNldF9rZXlfZGF0YSBjIGsgZCA9XG4gICAgICAgIHVuc2V0X2RhdGEgYztcbiAgICAgICAgc2V0X2tleSBjIGs7XG4gICAgICAgIHNldF9kYXRhIGMgZFxuICAgICAgbGV0IGNoZWNrX2tleSA9IGNoZWNrX2tleVxuICAgIGVuZClcblxuICBtb2R1bGUgTWFrZShIOiBIYXNodGJsLkhhc2hlZFR5cGUpOiAoUyB3aXRoIHR5cGUga2V5ID0gSC50KSA9XG4gIHN0cnVjdFxuICAgIGluY2x1ZGUgTWFrZVNlZWRlZChzdHJ1Y3RcbiAgICAgICAgdHlwZSB0ID0gSC50XG4gICAgICAgIGxldCBlcXVhbCA9IEguZXF1YWxcbiAgICAgICAgbGV0IGhhc2ggKF9zZWVkOiBpbnQpIHggPSBILmhhc2ggeFxuICAgICAgZW5kKVxuICAgIGxldCBjcmVhdGUgc3ogPSBjcmVhdGUgfnJhbmRvbTpmYWxzZSBzelxuICAgIGxldCBvZl9zZXEgaSA9XG4gICAgICBsZXQgdGJsID0gY3JlYXRlIDE2IGluXG4gICAgICByZXBsYWNlX3NlcSB0YmwgaTtcbiAgICAgIHRibFxuICBlbmRcblxuICBtb2R1bGUgQnVja2V0ID0gc3RydWN0XG5cbiAgICB0eXBlIG5vbnJlYyAoJ2ssICdkKSB0ID0gKCdrLCAnZCkgdCBsaXN0IHJlZlxuICAgIGxldCBrMV9tYWtlID0gbWFrZVxuICAgIGxldCBtYWtlICgpID0gcmVmIFtdXG4gICAgbGV0IGFkZCBiIGsgZCA9IGIgOj0gazFfbWFrZSBrIGQgOjogIWJcblxuICAgIGxldCB0ZXN0X2tleSBrIGUgPVxuICAgICAgbWF0Y2ggZ2V0X2tleSBlIHdpdGhcbiAgICAgIHwgU29tZSB4IHdoZW4geCA9PSBrIC0+IHRydWVcbiAgICAgIHwgXyAtPiBmYWxzZVxuXG4gICAgbGV0IHJlbW92ZSBiIGsgPVxuICAgICAgbGV0IHJlYyBsb29wIGwgYWNjID1cbiAgICAgICAgbWF0Y2ggbCB3aXRoXG4gICAgICAgIHwgW10gLT4gKClcbiAgICAgICAgfCBoIDo6IHQgd2hlbiB0ZXN0X2tleSBrIGggLT4gYiA6PSBMaXN0LnJldl9hcHBlbmQgYWNjIHRcbiAgICAgICAgfCBoIDo6IHQgLT4gbG9vcCB0IChoIDo6IGFjYylcbiAgICAgIGluXG4gICAgICBsb29wICFiIFtdXG5cbiAgICBsZXQgZmluZCBiIGsgPVxuICAgICAgbWF0Y2ggTGlzdC5maW5kX29wdCAodGVzdF9rZXkgaykgIWIgd2l0aFxuICAgICAgfCBTb21lIGUgLT4gZ2V0X2RhdGEgZVxuICAgICAgfCBOb25lIC0+IE5vbmVcblxuICAgIGxldCBsZW5ndGggYiA9IExpc3QubGVuZ3RoICFiXG4gICAgbGV0IGNsZWFyIGIgPSBiIDo9IFtdXG5cbiAgZW5kXG5cbmVuZFxuXG5tb2R1bGUgSzIgPSBzdHJ1Y3RcbiAgdHlwZSAoJ2sxLCAnazIsICdkKSB0ID0gT2JqRXBoLnRcblxuICBsZXQgY3JlYXRlICgpIDogKCdrMSwnazIsJ2QpIHQgPSBPYmpFcGguY3JlYXRlIDJcblxuICBsZXQgZ2V0X2tleTEgKHQ6KCdrMSwnazIsJ2QpIHQpIDogJ2sxIG9wdGlvbiA9IG9ial9vcHQgKE9iakVwaC5nZXRfa2V5IHQgMClcbiAgbGV0IGdldF9rZXkxX2NvcHkgKHQ6KCdrMSwnazIsJ2QpIHQpIDogJ2sxIG9wdGlvbiA9XG4gICAgb2JqX29wdCAoT2JqRXBoLmdldF9rZXlfY29weSB0IDApXG4gIGxldCBzZXRfa2V5MSAodDooJ2sxLCdrMiwnZCkgdCkgKGs6J2sxKSA6IHVuaXQgPVxuICAgIE9iakVwaC5zZXRfa2V5IHQgMCAoT2JqLnJlcHIgaylcbiAgbGV0IHVuc2V0X2tleTEgKHQ6KCdrMSwnazIsJ2QpIHQpIDogdW5pdCA9IE9iakVwaC51bnNldF9rZXkgdCAwXG4gIGxldCBjaGVja19rZXkxICh0OignazEsJ2syLCdkKSB0KSA6IGJvb2wgPSBPYmpFcGguY2hlY2tfa2V5IHQgMFxuXG4gIGxldCBnZXRfa2V5MiAodDooJ2sxLCdrMiwnZCkgdCkgOiAnazIgb3B0aW9uID0gb2JqX29wdCAoT2JqRXBoLmdldF9rZXkgdCAxKVxuICBsZXQgZ2V0X2tleTJfY29weSAodDooJ2sxLCdrMiwnZCkgdCkgOiAnazIgb3B0aW9uID1cbiAgICBvYmpfb3B0IChPYmpFcGguZ2V0X2tleV9jb3B5IHQgMSlcbiAgbGV0IHNldF9rZXkyICh0OignazEsJ2syLCdkKSB0KSAoazonazIpIDogdW5pdCA9XG4gICAgT2JqRXBoLnNldF9rZXkgdCAxIChPYmoucmVwciBrKVxuICBsZXQgdW5zZXRfa2V5MiAodDooJ2sxLCdrMiwnZCkgdCkgOiB1bml0ID0gT2JqRXBoLnVuc2V0X2tleSB0IDFcbiAgbGV0IGNoZWNrX2tleTIgKHQ6KCdrMSwnazIsJ2QpIHQpIDogYm9vbCA9IE9iakVwaC5jaGVja19rZXkgdCAxXG5cblxuICBsZXQgYmxpdF9rZXkxICh0MTooJ2sxLF8sXykgdCkgKHQyOignazEsXyxfKSB0KSA6IHVuaXQgPVxuICAgIE9iakVwaC5ibGl0X2tleSB0MSAwIHQyIDAgMVxuICBsZXQgYmxpdF9rZXkyICh0MTooXywnazIsXykgdCkgKHQyOihfLCdrMixfKSB0KSA6IHVuaXQgPVxuICAgIE9iakVwaC5ibGl0X2tleSB0MSAxIHQyIDEgMVxuICBsZXQgYmxpdF9rZXkxMiAodDE6KCdrMSwnazIsXykgdCkgKHQyOignazEsJ2syLF8pIHQpIDogdW5pdCA9XG4gICAgT2JqRXBoLmJsaXRfa2V5IHQxIDAgdDIgMCAyXG5cbiAgbGV0IGdldF9kYXRhICh0OignazEsJ2syLCdkKSB0KSA6ICdkIG9wdGlvbiA9IG9ial9vcHQgKE9iakVwaC5nZXRfZGF0YSB0KVxuICBsZXQgZ2V0X2RhdGFfY29weSAodDooJ2sxLCdrMiwnZCkgdCkgOiAnZCBvcHRpb24gPVxuICAgIG9ial9vcHQgKE9iakVwaC5nZXRfZGF0YV9jb3B5IHQpXG4gIGxldCBzZXRfZGF0YSAodDooJ2sxLCdrMiwnZCkgdCkgKGQ6J2QpIDogdW5pdCA9XG4gICAgT2JqRXBoLnNldF9kYXRhIHQgKE9iai5yZXByIGQpXG4gIGxldCB1bnNldF9kYXRhICh0OignazEsJ2syLCdkKSB0KSA6IHVuaXQgPSBPYmpFcGgudW5zZXRfZGF0YSB0XG4gIGxldCBjaGVja19kYXRhICh0OignazEsJ2syLCdkKSB0KSA6IGJvb2wgPSBPYmpFcGguY2hlY2tfZGF0YSB0XG4gIGxldCBibGl0X2RhdGEgKHQxOihfLF8sJ2QpIHQpICh0MjooXyxfLCdkKSB0KSA6IHVuaXQgPSBPYmpFcGguYmxpdF9kYXRhIHQxIHQyXG5cbiAgbGV0IG1ha2Uga2V5MSBrZXkyIGRhdGEgPVxuICAgIGxldCBlcGggPSBjcmVhdGUgKCkgaW5cbiAgICBzZXRfZGF0YSBlcGggZGF0YTtcbiAgICBzZXRfa2V5MSBlcGgga2V5MTtcbiAgICBzZXRfa2V5MiBlcGgga2V5MjtcbiAgICBpZ25vcmUgKFN5cy5vcGFxdWVfaWRlbnRpdHkga2V5MSk7XG4gICAgZXBoXG5cbiAgbGV0IHF1ZXJ5IGVwaCBrZXkxIGtleTIgPVxuICAgIG1hdGNoIGdldF9rZXkxIGVwaCB3aXRoXG4gICAgfCBOb25lIC0+IE5vbmVcbiAgICB8IFNvbWUgayB3aGVuIGsgPT0ga2V5MSAtPlxuICAgICAgICBiZWdpbiBtYXRjaCBnZXRfa2V5MiBlcGggd2l0aFxuICAgICAgICB8IE5vbmUgLT4gTm9uZVxuICAgICAgICB8IFNvbWUgayB3aGVuIGsgPT0ga2V5MiAtPiBnZXRfZGF0YSBlcGhcbiAgICAgICAgfCBTb21lIF8gLT4gTm9uZVxuICAgICAgICBlbmRcbiAgICB8IFNvbWUgXyAtPiBOb25lXG5cbiAgbW9kdWxlIE1ha2VTZWVkZWRcbiAgICAgIChIMTpIYXNodGJsLlNlZWRlZEhhc2hlZFR5cGUpXG4gICAgICAoSDI6SGFzaHRibC5TZWVkZWRIYXNoZWRUeXBlKSA9XG4gICAgR2VuSGFzaFRhYmxlLk1ha2VTZWVkZWQoc3RydWN0XG4gICAgICB0eXBlICdhIGNvbnRhaW5lciA9IChIMS50LEgyLnQsJ2EpIHRcbiAgICAgIHR5cGUgdCA9IEgxLnQgKiBIMi50XG4gICAgICBsZXQgY3JlYXRlIChrMSxrMikgZCA9XG4gICAgICAgIGxldCBjID0gY3JlYXRlICgpIGluXG4gICAgICAgIHNldF9kYXRhIGMgZDtcbiAgICAgICAgc2V0X2tleTEgYyBrMTsgc2V0X2tleTIgYyBrMjtcbiAgICAgICAgY1xuICAgICAgbGV0IGhhc2ggc2VlZCAoazEsazIpID1cbiAgICAgICAgSDEuaGFzaCBzZWVkIGsxICsgSDIuaGFzaCBzZWVkIGsyICogNjU1OTlcbiAgICAgIGxldCBlcXVhbCBjIChrMSxrMikgPVxuICAgICAgICBtYXRjaCBnZXRfa2V5MSBjLCBnZXRfa2V5MiBjIHdpdGhcbiAgICAgICAgfCBOb25lLCBfIHwgXyAsIE5vbmUgLT4gR2VuSGFzaFRhYmxlLkVEZWFkXG4gICAgICAgIHwgU29tZSBrMScsIFNvbWUgazInIC0+XG4gICAgICAgICAgICBpZiBIMS5lcXVhbCBrMSBrMScgJiYgSDIuZXF1YWwgazIgazInXG4gICAgICAgICAgICB0aGVuIEdlbkhhc2hUYWJsZS5FVHJ1ZSBlbHNlIEdlbkhhc2hUYWJsZS5FRmFsc2VcbiAgICAgIGxldCBnZXRfZGF0YSA9IGdldF9kYXRhXG4gICAgICBsZXQgZ2V0X2tleSBjID1cbiAgICAgICAgbWF0Y2ggZ2V0X2tleTEgYywgZ2V0X2tleTIgYyB3aXRoXG4gICAgICAgIHwgTm9uZSwgXyB8IF8gLCBOb25lIC0+IE5vbmVcbiAgICAgICAgfCBTb21lIGsxJywgU29tZSBrMicgLT4gU29tZSAoazEnLCBrMicpXG4gICAgICBsZXQgc2V0X2tleV9kYXRhIGMgKGsxLGsyKSBkID1cbiAgICAgICAgdW5zZXRfZGF0YSBjO1xuICAgICAgICBzZXRfa2V5MSBjIGsxOyBzZXRfa2V5MiBjIGsyO1xuICAgICAgICBzZXRfZGF0YSBjIGRcbiAgICAgIGxldCBjaGVja19rZXkgYyA9IGNoZWNrX2tleTEgYyAmJiBjaGVja19rZXkyIGNcbiAgICBlbmQpXG5cbiAgbW9kdWxlIE1ha2UoSDE6IEhhc2h0YmwuSGFzaGVkVHlwZSkoSDI6IEhhc2h0YmwuSGFzaGVkVHlwZSk6XG4gICAgKFMgd2l0aCB0eXBlIGtleSA9IEgxLnQgKiBIMi50KSA9XG4gIHN0cnVjdFxuICAgIGluY2x1ZGUgTWFrZVNlZWRlZFxuICAgICAgICAoc3RydWN0XG4gICAgICAgICAgdHlwZSB0ID0gSDEudFxuICAgICAgICAgIGxldCBlcXVhbCA9IEgxLmVxdWFsXG4gICAgICAgICAgbGV0IGhhc2ggKF9zZWVkOiBpbnQpIHggPSBIMS5oYXNoIHhcbiAgICAgICAgZW5kKVxuICAgICAgICAoc3RydWN0XG4gICAgICAgICAgdHlwZSB0ID0gSDIudFxuICAgICAgICAgIGxldCBlcXVhbCA9IEgyLmVxdWFsXG4gICAgICAgICAgbGV0IGhhc2ggKF9zZWVkOiBpbnQpIHggPSBIMi5oYXNoIHhcbiAgICAgICAgZW5kKVxuICAgIGxldCBjcmVhdGUgc3ogPSBjcmVhdGUgfnJhbmRvbTpmYWxzZSBzelxuICAgIGxldCBvZl9zZXEgaSA9XG4gICAgICBsZXQgdGJsID0gY3JlYXRlIDE2IGluXG4gICAgICByZXBsYWNlX3NlcSB0YmwgaTtcbiAgICAgIHRibFxuICBlbmRcblxuICBtb2R1bGUgQnVja2V0ID0gc3RydWN0XG5cbiAgICB0eXBlIG5vbnJlYyAoJ2sxLCAnazIsICdkKSB0ID0gKCdrMSwgJ2syLCAnZCkgdCBsaXN0IHJlZlxuICAgIGxldCBrMl9tYWtlID0gbWFrZVxuICAgIGxldCBtYWtlICgpID0gcmVmIFtdXG4gICAgbGV0IGFkZCBiIGsxIGsyIGQgPSBiIDo9IGsyX21ha2UgazEgazIgZCA6OiAhYlxuXG4gICAgbGV0IHRlc3Rfa2V5cyBrMSBrMiBlID1cbiAgICAgIG1hdGNoIGdldF9rZXkxIGUsIGdldF9rZXkyIGUgd2l0aFxuICAgICAgfCBTb21lIHgxLCBTb21lIHgyIHdoZW4geDEgPT0gazEgJiYgeDIgPT0gazIgLT4gdHJ1ZVxuICAgICAgfCBfIC0+IGZhbHNlXG5cbiAgICBsZXQgcmVtb3ZlIGIgazEgazIgPVxuICAgICAgbGV0IHJlYyBsb29wIGwgYWNjID1cbiAgICAgICAgbWF0Y2ggbCB3aXRoXG4gICAgICAgIHwgW10gLT4gKClcbiAgICAgICAgfCBoIDo6IHQgd2hlbiB0ZXN0X2tleXMgazEgazIgaCAtPiBiIDo9IExpc3QucmV2X2FwcGVuZCBhY2MgdFxuICAgICAgICB8IGggOjogdCAtPiBsb29wIHQgKGggOjogYWNjKVxuICAgICAgaW5cbiAgICAgIGxvb3AgIWIgW11cblxuICAgIGxldCBmaW5kIGIgazEgazIgPVxuICAgICAgbWF0Y2ggTGlzdC5maW5kX29wdCAodGVzdF9rZXlzIGsxIGsyKSAhYiB3aXRoXG4gICAgICB8IFNvbWUgZSAtPiBnZXRfZGF0YSBlXG4gICAgICB8IE5vbmUgLT4gTm9uZVxuXG4gICAgbGV0IGxlbmd0aCBiID0gTGlzdC5sZW5ndGggIWJcbiAgICBsZXQgY2xlYXIgYiA9IGIgOj0gW11cblxuICBlbmRcblxuZW5kXG5cbm1vZHVsZSBLbiA9IHN0cnVjdFxuICB0eXBlICgnaywnZCkgdCA9IE9iakVwaC50XG5cbiAgbGV0IGNyZWF0ZSBuIDogKCdrLCdkKSB0ID0gT2JqRXBoLmNyZWF0ZSBuXG4gIGxldCBsZW5ndGggKGs6KCdrLCdkKSB0KSA6IGludCA9IE9iakVwaC5sZW5ndGgga1xuXG4gIGxldCBnZXRfa2V5ICh0OignaywnZCkgdCkgKG46aW50KSA6ICdrIG9wdGlvbiA9IG9ial9vcHQgKE9iakVwaC5nZXRfa2V5IHQgbilcbiAgbGV0IGdldF9rZXlfY29weSAodDooJ2ssJ2QpIHQpIChuOmludCkgOiAnayBvcHRpb24gPVxuICAgIG9ial9vcHQgKE9iakVwaC5nZXRfa2V5X2NvcHkgdCBuKVxuICBsZXQgc2V0X2tleSAodDooJ2ssJ2QpIHQpIChuOmludCkgKGs6J2spIDogdW5pdCA9XG4gICAgT2JqRXBoLnNldF9rZXkgdCBuIChPYmoucmVwciBrKVxuICBsZXQgdW5zZXRfa2V5ICh0OignaywnZCkgdCkgKG46aW50KSA6IHVuaXQgPSBPYmpFcGgudW5zZXRfa2V5IHQgblxuICBsZXQgY2hlY2tfa2V5ICh0OignaywnZCkgdCkgKG46aW50KSA6IGJvb2wgPSBPYmpFcGguY2hlY2tfa2V5IHQgblxuXG4gIGxldCBibGl0X2tleSAodDE6KCdrLCdkKSB0KSAobzE6aW50KSAodDI6KCdrLCdkKSB0KSAobzI6aW50KSAobDppbnQpIDogdW5pdCA9XG4gICAgT2JqRXBoLmJsaXRfa2V5IHQxIG8xIHQyIG8yIGxcblxuICBsZXQgZ2V0X2RhdGEgKHQ6KCdrLCdkKSB0KSA6ICdkIG9wdGlvbiA9IG9ial9vcHQgKE9iakVwaC5nZXRfZGF0YSB0KVxuICBsZXQgZ2V0X2RhdGFfY29weSAodDooJ2ssJ2QpIHQpIDogJ2Qgb3B0aW9uID0gb2JqX29wdCAoT2JqRXBoLmdldF9kYXRhX2NvcHkgdClcbiAgbGV0IHNldF9kYXRhICh0OignaywnZCkgdCkgKGQ6J2QpIDogdW5pdCA9IE9iakVwaC5zZXRfZGF0YSB0IChPYmoucmVwciBkKVxuICBsZXQgdW5zZXRfZGF0YSAodDooJ2ssJ2QpIHQpIDogdW5pdCA9IE9iakVwaC51bnNldF9kYXRhIHRcbiAgbGV0IGNoZWNrX2RhdGEgKHQ6KCdrLCdkKSB0KSA6IGJvb2wgPSBPYmpFcGguY2hlY2tfZGF0YSB0XG4gIGxldCBibGl0X2RhdGEgKHQxOihfLCdkKSB0KSAodDI6KF8sJ2QpIHQpIDogdW5pdCA9IE9iakVwaC5ibGl0X2RhdGEgdDEgdDJcblxuICBsZXQgbWFrZSBrZXlzIGRhdGEgPVxuICAgIGxldCBsID0gQXJyYXkubGVuZ3RoIGtleXMgaW5cbiAgICBsZXQgZXBoID0gY3JlYXRlIGwgaW5cbiAgICBzZXRfZGF0YSBlcGggZGF0YTtcbiAgICBmb3IgaSA9IDAgdG8gbCAtIDEgZG8gc2V0X2tleSBlcGggaSBrZXlzLihpKSBkb25lO1xuICAgIGVwaFxuXG4gIGxldCBxdWVyeSBlcGgga2V5cyA9XG4gICAgbGV0IGwgPSBsZW5ndGggZXBoIGluXG4gICAgdHJ5XG4gICAgICBpZiBsIDw+IEFycmF5Lmxlbmd0aCBrZXlzIHRoZW4gcmFpc2UgRXhpdDtcbiAgICAgIGZvciBpID0gMCB0byBsIC0gMSBkb1xuICAgICAgICBtYXRjaCBnZXRfa2V5IGVwaCBpIHdpdGhcbiAgICAgICAgfCBOb25lIC0+IHJhaXNlIEV4aXRcbiAgICAgICAgfCBTb21lIGsgd2hlbiBrID09IGtleXMuKGkpIC0+ICgpXG4gICAgICAgIHwgU29tZSBfIC0+IHJhaXNlIEV4aXRcbiAgICAgIGRvbmU7XG4gICAgICBnZXRfZGF0YSBlcGhcbiAgICB3aXRoIEV4aXQgLT4gTm9uZVxuXG4gIG1vZHVsZSBNYWtlU2VlZGVkIChIOkhhc2h0YmwuU2VlZGVkSGFzaGVkVHlwZSkgPVxuICAgIEdlbkhhc2hUYWJsZS5NYWtlU2VlZGVkKHN0cnVjdFxuICAgICAgdHlwZSAnYSBjb250YWluZXIgPSAoSC50LCdhKSB0XG4gICAgICB0eXBlIHQgPSBILnQgYXJyYXlcbiAgICAgIGxldCBjcmVhdGUgayBkID1cbiAgICAgICAgbGV0IGMgPSBjcmVhdGUgKEFycmF5Lmxlbmd0aCBrKSBpblxuICAgICAgICBzZXRfZGF0YSBjIGQ7XG4gICAgICAgIGZvciBpPTAgdG8gQXJyYXkubGVuZ3RoIGsgLTEgZG9cbiAgICAgICAgICBzZXRfa2V5IGMgaSBrLihpKTtcbiAgICAgICAgZG9uZTtcbiAgICAgICAgY1xuICAgICAgbGV0IGhhc2ggc2VlZCBrID1cbiAgICAgICAgbGV0IGggPSByZWYgMCBpblxuICAgICAgICBmb3IgaT0wIHRvIEFycmF5Lmxlbmd0aCBrIC0xIGRvXG4gICAgICAgICAgaCA6PSBILmhhc2ggc2VlZCBrLihpKSAqIDY1NTk5ICsgIWg7XG4gICAgICAgIGRvbmU7XG4gICAgICAgICFoXG4gICAgICBsZXQgZXF1YWwgYyBrID1cbiAgICAgICAgbGV0IGxlbiAgPSBBcnJheS5sZW5ndGggayBpblxuICAgICAgICBsZXQgbGVuJyA9IGxlbmd0aCBjIGluXG4gICAgICAgIGlmIGxlbiAhPSBsZW4nIHRoZW4gR2VuSGFzaFRhYmxlLkVGYWxzZVxuICAgICAgICBlbHNlXG4gICAgICAgICAgbGV0IHJlYyBlcXVhbF9hcnJheSBrIGMgaSA9XG4gICAgICAgICAgICBpZiBpIDwgMCB0aGVuIEdlbkhhc2hUYWJsZS5FVHJ1ZVxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICBtYXRjaCBnZXRfa2V5IGMgaSB3aXRoXG4gICAgICAgICAgICAgIHwgTm9uZSAtPiBHZW5IYXNoVGFibGUuRURlYWRcbiAgICAgICAgICAgICAgfCBTb21lIGtpIC0+XG4gICAgICAgICAgICAgICAgICBpZiBILmVxdWFsIGsuKGkpIGtpXG4gICAgICAgICAgICAgICAgICB0aGVuIGVxdWFsX2FycmF5IGsgYyAoaS0xKVxuICAgICAgICAgICAgICAgICAgZWxzZSBHZW5IYXNoVGFibGUuRUZhbHNlXG4gICAgICAgICAgaW5cbiAgICAgICAgICBlcXVhbF9hcnJheSBrIGMgKGxlbi0xKVxuICAgICAgbGV0IGdldF9kYXRhID0gZ2V0X2RhdGFcbiAgICAgIGxldCBnZXRfa2V5IGMgPVxuICAgICAgICBsZXQgbGVuID0gbGVuZ3RoIGMgaW5cbiAgICAgICAgaWYgbGVuID0gMCB0aGVuIFNvbWUgW3x8XVxuICAgICAgICBlbHNlXG4gICAgICAgICAgbWF0Y2ggZ2V0X2tleSBjIDAgd2l0aFxuICAgICAgICAgIHwgTm9uZSAtPiBOb25lXG4gICAgICAgICAgfCBTb21lIGswIC0+XG4gICAgICAgICAgICAgIGxldCByZWMgZmlsbCBhIGkgPVxuICAgICAgICAgICAgICAgIGlmIGkgPCAxIHRoZW4gU29tZSBhXG4gICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgbWF0Y2ggZ2V0X2tleSBjIGkgd2l0aFxuICAgICAgICAgICAgICAgICAgfCBOb25lIC0+IE5vbmVcbiAgICAgICAgICAgICAgICAgIHwgU29tZSBraSAtPlxuICAgICAgICAgICAgICAgICAgICAgIGEuKGkpIDwtIGtpO1xuICAgICAgICAgICAgICAgICAgICAgIGZpbGwgYSAoaS0xKVxuICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICBsZXQgYSA9IEFycmF5Lm1ha2UgbGVuIGswIGluXG4gICAgICAgICAgICAgIGZpbGwgYSAobGVuLTEpXG4gICAgICBsZXQgc2V0X2tleV9kYXRhIGMgayBkID1cbiAgICAgICAgdW5zZXRfZGF0YSBjO1xuICAgICAgICBmb3IgaT0wIHRvIEFycmF5Lmxlbmd0aCBrIC0xIGRvXG4gICAgICAgICAgc2V0X2tleSBjIGkgay4oaSk7XG4gICAgICAgIGRvbmU7XG4gICAgICAgIHNldF9kYXRhIGMgZFxuICAgICAgbGV0IGNoZWNrX2tleSBjID1cbiAgICAgICAgbGV0IHJlYyBjaGVjayBjIGkgPVxuICAgICAgICAgIGkgPCAwIHx8IChjaGVja19rZXkgYyBpICYmIGNoZWNrIGMgKGktMSkpIGluXG4gICAgICAgIGNoZWNrIGMgKGxlbmd0aCBjIC0gMSlcbiAgICBlbmQpXG5cbiAgbW9kdWxlIE1ha2UoSDogSGFzaHRibC5IYXNoZWRUeXBlKTogKFMgd2l0aCB0eXBlIGtleSA9IEgudCBhcnJheSkgPVxuICBzdHJ1Y3RcbiAgICBpbmNsdWRlIE1ha2VTZWVkZWQoc3RydWN0XG4gICAgICAgIHR5cGUgdCA9IEgudFxuICAgICAgICBsZXQgZXF1YWwgPSBILmVxdWFsXG4gICAgICAgIGxldCBoYXNoIChfc2VlZDogaW50KSB4ID0gSC5oYXNoIHhcbiAgICAgIGVuZClcbiAgICBsZXQgY3JlYXRlIHN6ID0gY3JlYXRlIH5yYW5kb206ZmFsc2Ugc3pcbiAgICBsZXQgb2Zfc2VxIGkgPVxuICAgICAgbGV0IHRibCA9IGNyZWF0ZSAxNiBpblxuICAgICAgcmVwbGFjZV9zZXEgdGJsIGk7XG4gICAgICB0YmxcbiAgZW5kXG5cbiAgbW9kdWxlIEJ1Y2tldCA9IHN0cnVjdFxuXG4gICAgdHlwZSBub25yZWMgKCdrLCAnZCkgdCA9ICgnaywgJ2QpIHQgbGlzdCByZWZcbiAgICBsZXQga25fbWFrZSA9IG1ha2VcbiAgICBsZXQgbWFrZSAoKSA9IHJlZiBbXVxuICAgIGxldCBhZGQgYiBrIGQgPSBiIDo9IGtuX21ha2UgayBkIDo6ICFiXG5cbiAgICBsZXQgdGVzdF9rZXlzIGsgZSA9XG4gICAgICB0cnlcbiAgICAgICAgaWYgbGVuZ3RoIGUgPD4gQXJyYXkubGVuZ3RoIGsgdGhlbiByYWlzZSBFeGl0O1xuICAgICAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGsgLSAxIGRvXG4gICAgICAgICAgbWF0Y2ggZ2V0X2tleSBlIGkgd2l0aFxuICAgICAgICAgIHwgU29tZSB4IHdoZW4geCA9PSBrLihpKSAtPiAoKVxuICAgICAgICAgIHwgXyAtPiByYWlzZSBFeGl0XG4gICAgICAgIGRvbmU7XG4gICAgICAgIHRydWVcbiAgICAgIHdpdGggRXhpdCAtPiBmYWxzZVxuXG4gICAgbGV0IHJlbW92ZSBiIGsgPVxuICAgICAgbGV0IHJlYyBsb29wIGwgYWNjID1cbiAgICAgICAgbWF0Y2ggbCB3aXRoXG4gICAgICAgIHwgW10gLT4gKClcbiAgICAgICAgfCBoIDo6IHQgd2hlbiB0ZXN0X2tleXMgayBoIC0+IGIgOj0gTGlzdC5yZXZfYXBwZW5kIGFjYyB0XG4gICAgICAgIHwgaCA6OiB0IC0+IGxvb3AgdCAoaCA6OiBhY2MpXG4gICAgICBpblxuICAgICAgbG9vcCAhYiBbXVxuXG4gICAgbGV0IGZpbmQgYiBrID1cbiAgICAgIG1hdGNoIExpc3QuZmluZF9vcHQgKHRlc3Rfa2V5cyBrKSAhYiB3aXRoXG4gICAgICB8IFNvbWUgZSAtPiBnZXRfZGF0YSBlXG4gICAgICB8IE5vbmUgLT4gTm9uZVxuXG4gICAgbGV0IGxlbmd0aCBiID0gTGlzdC5sZW5ndGggIWJcbiAgICBsZXQgY2xlYXIgYiA9IGIgOj0gW11cblxuICBlbmRcblxuZW5kXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgWGF2aWVyIExlcm95IGFuZCBEYW1pZW4gRG9saWdleiwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbmxldCBnZW5lcmljX3F1b3RlIHF1b3RlcXVvdGUgcyA9XG4gIGxldCBsID0gU3RyaW5nLmxlbmd0aCBzIGluXG4gIGxldCBiID0gQnVmZmVyLmNyZWF0ZSAobCArIDIwKSBpblxuICBCdWZmZXIuYWRkX2NoYXIgYiAnXFwnJztcbiAgZm9yIGkgPSAwIHRvIGwgLSAxIGRvXG4gICAgaWYgcy5baV0gPSAnXFwnJ1xuICAgIHRoZW4gQnVmZmVyLmFkZF9zdHJpbmcgYiBxdW90ZXF1b3RlXG4gICAgZWxzZSBCdWZmZXIuYWRkX2NoYXIgYiAgcy5baV1cbiAgZG9uZTtcbiAgQnVmZmVyLmFkZF9jaGFyIGIgJ1xcJyc7XG4gIEJ1ZmZlci5jb250ZW50cyBiXG5cbigqIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyB0aGUgT3BlbiBHcm91cCBzcGVjaWZpY2F0aW9uIGZvdW5kIGhlcmU6XG4gIFtbMV1dIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy85Njk5OTE5Nzk5L3V0aWxpdGllcy9iYXNlbmFtZS5odG1sXG4gIEluIHN0ZXAgMSBvZiBbWzFdXSwgd2UgY2hvb3NlIHRvIHJldHVybiBcIi5cIiBmb3IgZW1wdHkgaW5wdXQuXG4gICAgKGZvciBjb21wYXRpYmlsaXR5IHdpdGggcHJldmlvdXMgdmVyc2lvbnMgb2YgT0NhbWwpXG4gIEluIHN0ZXAgMiwgd2UgY2hvb3NlIHRvIHByb2Nlc3MgXCIvL1wiIG5vcm1hbGx5LlxuICBTdGVwIDYgaXMgbm90IGltcGxlbWVudGVkOiB3ZSBjb25zaWRlciB0aGF0IHRoZSBbc3VmZml4XSBvcGVyYW5kIGlzXG4gICAgYWx3YXlzIGFic2VudC4gIFN1ZmZpeGVzIGFyZSBoYW5kbGVkIGJ5IFtjaG9wX3N1ZmZpeF0gYW5kIFtjaG9wX2V4dGVuc2lvbl0uXG4qKVxubGV0IGdlbmVyaWNfYmFzZW5hbWUgaXNfZGlyX3NlcCBjdXJyZW50X2Rpcl9uYW1lIG5hbWUgPVxuICBsZXQgcmVjIGZpbmRfZW5kIG4gPVxuICAgIGlmIG4gPCAwIHRoZW4gU3RyaW5nLnN1YiBuYW1lIDAgMVxuICAgIGVsc2UgaWYgaXNfZGlyX3NlcCBuYW1lIG4gdGhlbiBmaW5kX2VuZCAobiAtIDEpXG4gICAgZWxzZSBmaW5kX2JlZyBuIChuICsgMSlcbiAgYW5kIGZpbmRfYmVnIG4gcCA9XG4gICAgaWYgbiA8IDAgdGhlbiBTdHJpbmcuc3ViIG5hbWUgMCBwXG4gICAgZWxzZSBpZiBpc19kaXJfc2VwIG5hbWUgbiB0aGVuIFN0cmluZy5zdWIgbmFtZSAobiArIDEpIChwIC0gbiAtIDEpXG4gICAgZWxzZSBmaW5kX2JlZyAobiAtIDEpIHBcbiAgaW5cbiAgaWYgbmFtZSA9IFwiXCJcbiAgdGhlbiBjdXJyZW50X2Rpcl9uYW1lXG4gIGVsc2UgZmluZF9lbmQgKFN0cmluZy5sZW5ndGggbmFtZSAtIDEpXG5cbigqIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyB0aGUgT3BlbiBHcm91cCBzcGVjaWZpY2F0aW9uIGZvdW5kIGhlcmU6XG4gIFtbMl1dIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy85Njk5OTE5Nzk5L3V0aWxpdGllcy9kaXJuYW1lLmh0bWxcbiAgSW4gc3RlcCA2IG9mIFtbMl1dLCB3ZSBjaG9vc2UgdG8gcHJvY2VzcyBcIi8vXCIgbm9ybWFsbHkuXG4qKVxubGV0IGdlbmVyaWNfZGlybmFtZSBpc19kaXJfc2VwIGN1cnJlbnRfZGlyX25hbWUgbmFtZSA9XG4gIGxldCByZWMgdHJhaWxpbmdfc2VwIG4gPVxuICAgIGlmIG4gPCAwIHRoZW4gU3RyaW5nLnN1YiBuYW1lIDAgMVxuICAgIGVsc2UgaWYgaXNfZGlyX3NlcCBuYW1lIG4gdGhlbiB0cmFpbGluZ19zZXAgKG4gLSAxKVxuICAgIGVsc2UgYmFzZSBuXG4gIGFuZCBiYXNlIG4gPVxuICAgIGlmIG4gPCAwIHRoZW4gY3VycmVudF9kaXJfbmFtZVxuICAgIGVsc2UgaWYgaXNfZGlyX3NlcCBuYW1lIG4gdGhlbiBpbnRlcm1lZGlhdGVfc2VwIG5cbiAgICBlbHNlIGJhc2UgKG4gLSAxKVxuICBhbmQgaW50ZXJtZWRpYXRlX3NlcCBuID1cbiAgICBpZiBuIDwgMCB0aGVuIFN0cmluZy5zdWIgbmFtZSAwIDFcbiAgICBlbHNlIGlmIGlzX2Rpcl9zZXAgbmFtZSBuIHRoZW4gaW50ZXJtZWRpYXRlX3NlcCAobiAtIDEpXG4gICAgZWxzZSBTdHJpbmcuc3ViIG5hbWUgMCAobiArIDEpXG4gIGluXG4gIGlmIG5hbWUgPSBcIlwiXG4gIHRoZW4gY3VycmVudF9kaXJfbmFtZVxuICBlbHNlIHRyYWlsaW5nX3NlcCAoU3RyaW5nLmxlbmd0aCBuYW1lIC0gMSlcblxubW9kdWxlIHR5cGUgU1lTREVQUyA9IHNpZ1xuICB2YWwgbnVsbCA6IHN0cmluZ1xuICB2YWwgY3VycmVudF9kaXJfbmFtZSA6IHN0cmluZ1xuICB2YWwgcGFyZW50X2Rpcl9uYW1lIDogc3RyaW5nXG4gIHZhbCBkaXJfc2VwIDogc3RyaW5nXG4gIHZhbCBpc19kaXJfc2VwIDogc3RyaW5nIC0+IGludCAtPiBib29sXG4gIHZhbCBpc19yZWxhdGl2ZSA6IHN0cmluZyAtPiBib29sXG4gIHZhbCBpc19pbXBsaWNpdCA6IHN0cmluZyAtPiBib29sXG4gIHZhbCBjaGVja19zdWZmaXggOiBzdHJpbmcgLT4gc3RyaW5nIC0+IGJvb2xcbiAgdmFsIGNob3Bfc3VmZml4X29wdCA6IHN1ZmZpeDpzdHJpbmcgLT4gc3RyaW5nIC0+IHN0cmluZyBvcHRpb25cbiAgdmFsIHRlbXBfZGlyX25hbWUgOiBzdHJpbmdcbiAgdmFsIHF1b3RlIDogc3RyaW5nIC0+IHN0cmluZ1xuICB2YWwgcXVvdGVfY29tbWFuZCA6XG4gICAgc3RyaW5nIC0+ID9zdGRpbjogc3RyaW5nIC0+ID9zdGRvdXQ6IHN0cmluZyAtPiA/c3RkZXJyOiBzdHJpbmdcbiAgICAgICAgICAgLT4gc3RyaW5nIGxpc3QgLT4gc3RyaW5nXG4gIHZhbCBiYXNlbmFtZSA6IHN0cmluZyAtPiBzdHJpbmdcbiAgdmFsIGRpcm5hbWUgOiBzdHJpbmcgLT4gc3RyaW5nXG5lbmRcblxubW9kdWxlIFVuaXggOiBTWVNERVBTID0gc3RydWN0XG4gIGxldCBudWxsID0gXCIvZGV2L251bGxcIlxuICBsZXQgY3VycmVudF9kaXJfbmFtZSA9IFwiLlwiXG4gIGxldCBwYXJlbnRfZGlyX25hbWUgPSBcIi4uXCJcbiAgbGV0IGRpcl9zZXAgPSBcIi9cIlxuICBsZXQgaXNfZGlyX3NlcCBzIGkgPSBzLltpXSA9ICcvJ1xuICBsZXQgaXNfcmVsYXRpdmUgbiA9IFN0cmluZy5sZW5ndGggbiA8IDEgfHwgbi5bMF0gPD4gJy8nXG4gIGxldCBpc19pbXBsaWNpdCBuID1cbiAgICBpc19yZWxhdGl2ZSBuXG4gICAgJiYgKFN0cmluZy5sZW5ndGggbiA8IDIgfHwgU3RyaW5nLnN1YiBuIDAgMiA8PiBcIi4vXCIpXG4gICAgJiYgKFN0cmluZy5sZW5ndGggbiA8IDMgfHwgU3RyaW5nLnN1YiBuIDAgMyA8PiBcIi4uL1wiKVxuICBsZXQgY2hlY2tfc3VmZml4IG5hbWUgc3VmZiA9XG4gICAgU3RyaW5nLmVuZHNfd2l0aCB+c3VmZml4OnN1ZmYgbmFtZVxuXG4gIGxldCBjaG9wX3N1ZmZpeF9vcHQgfnN1ZmZpeCBmaWxlbmFtZSA9XG4gICAgbGV0IGxlbl9zID0gU3RyaW5nLmxlbmd0aCBzdWZmaXggYW5kIGxlbl9mID0gU3RyaW5nLmxlbmd0aCBmaWxlbmFtZSBpblxuICAgIGlmIGxlbl9mID49IGxlbl9zIHRoZW5cbiAgICAgIGxldCByID0gU3RyaW5nLnN1YiBmaWxlbmFtZSAobGVuX2YgLSBsZW5fcykgbGVuX3MgaW5cbiAgICAgIGlmIHIgPSBzdWZmaXggdGhlblxuICAgICAgICBTb21lIChTdHJpbmcuc3ViIGZpbGVuYW1lIDAgKGxlbl9mIC0gbGVuX3MpKVxuICAgICAgZWxzZVxuICAgICAgICBOb25lXG4gICAgZWxzZVxuICAgICAgTm9uZVxuXG4gIGxldCB0ZW1wX2Rpcl9uYW1lID1cbiAgICB0cnkgU3lzLmdldGVudiBcIlRNUERJUlwiIHdpdGggTm90X2ZvdW5kIC0+IFwiL3RtcFwiXG4gIGxldCBxdW90ZSA9IGdlbmVyaWNfcXVvdGUgXCInXFxcXCcnXCJcbiAgbGV0IHF1b3RlX2NvbW1hbmQgY21kID9zdGRpbiA/c3Rkb3V0ID9zdGRlcnIgYXJncyA9XG4gICAgU3RyaW5nLmNvbmNhdCBcIiBcIiAoTGlzdC5tYXAgcXVvdGUgKGNtZCA6OiBhcmdzKSlcbiAgICBeIChtYXRjaCBzdGRpbiAgd2l0aCBOb25lIC0+IFwiXCIgfCBTb21lIGYgLT4gXCIgPFwiIF4gcXVvdGUgZilcbiAgICBeIChtYXRjaCBzdGRvdXQgd2l0aCBOb25lIC0+IFwiXCIgfCBTb21lIGYgLT4gXCIgPlwiIF4gcXVvdGUgZilcbiAgICBeIChtYXRjaCBzdGRlcnIgd2l0aCBOb25lIC0+IFwiXCIgfCBTb21lIGYgLT4gaWYgc3RkZXJyID0gc3Rkb3V0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIFwiIDI+JjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBcIiAyPlwiIF4gcXVvdGUgZilcbiAgbGV0IGJhc2VuYW1lID0gZ2VuZXJpY19iYXNlbmFtZSBpc19kaXJfc2VwIGN1cnJlbnRfZGlyX25hbWVcbiAgbGV0IGRpcm5hbWUgPSBnZW5lcmljX2Rpcm5hbWUgaXNfZGlyX3NlcCBjdXJyZW50X2Rpcl9uYW1lXG5lbmRcblxubW9kdWxlIFdpbjMyIDogU1lTREVQUyA9IHN0cnVjdFxuICBsZXQgbnVsbCA9IFwiTlVMXCJcbiAgbGV0IGN1cnJlbnRfZGlyX25hbWUgPSBcIi5cIlxuICBsZXQgcGFyZW50X2Rpcl9uYW1lID0gXCIuLlwiXG4gIGxldCBkaXJfc2VwID0gXCJcXFxcXCJcbiAgbGV0IGlzX2Rpcl9zZXAgcyBpID0gbGV0IGMgPSBzLltpXSBpbiBjID0gJy8nIHx8IGMgPSAnXFxcXCcgfHwgYyA9ICc6J1xuICBsZXQgaXNfcmVsYXRpdmUgbiA9XG4gICAgKFN0cmluZy5sZW5ndGggbiA8IDEgfHwgbi5bMF0gPD4gJy8nKVxuICAgICYmIChTdHJpbmcubGVuZ3RoIG4gPCAxIHx8IG4uWzBdIDw+ICdcXFxcJylcbiAgICAmJiAoU3RyaW5nLmxlbmd0aCBuIDwgMiB8fCBuLlsxXSA8PiAnOicpXG4gIGxldCBpc19pbXBsaWNpdCBuID1cbiAgICBpc19yZWxhdGl2ZSBuXG4gICAgJiYgKFN0cmluZy5sZW5ndGggbiA8IDIgfHwgU3RyaW5nLnN1YiBuIDAgMiA8PiBcIi4vXCIpXG4gICAgJiYgKFN0cmluZy5sZW5ndGggbiA8IDIgfHwgU3RyaW5nLnN1YiBuIDAgMiA8PiBcIi5cXFxcXCIpXG4gICAgJiYgKFN0cmluZy5sZW5ndGggbiA8IDMgfHwgU3RyaW5nLnN1YiBuIDAgMyA8PiBcIi4uL1wiKVxuICAgICYmIChTdHJpbmcubGVuZ3RoIG4gPCAzIHx8IFN0cmluZy5zdWIgbiAwIDMgPD4gXCIuLlxcXFxcIilcbiAgbGV0IGNoZWNrX3N1ZmZpeCBuYW1lIHN1ZmYgPVxuICAgU3RyaW5nLmxlbmd0aCBuYW1lID49IFN0cmluZy5sZW5ndGggc3VmZiAmJlxuICAgKGxldCBzID0gU3RyaW5nLnN1YiBuYW1lIChTdHJpbmcubGVuZ3RoIG5hbWUgLSBTdHJpbmcubGVuZ3RoIHN1ZmYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFN0cmluZy5sZW5ndGggc3VmZikgaW5cbiAgICBTdHJpbmcubG93ZXJjYXNlX2FzY2lpIHMgPSBTdHJpbmcubG93ZXJjYXNlX2FzY2lpIHN1ZmYpXG5cbiAgbGV0IGNob3Bfc3VmZml4X29wdCB+c3VmZml4IGZpbGVuYW1lID1cbiAgICBsZXQgbGVuX3MgPSBTdHJpbmcubGVuZ3RoIHN1ZmZpeCBhbmQgbGVuX2YgPSBTdHJpbmcubGVuZ3RoIGZpbGVuYW1lIGluXG4gICAgaWYgbGVuX2YgPj0gbGVuX3MgdGhlblxuICAgICAgbGV0IHIgPSBTdHJpbmcuc3ViIGZpbGVuYW1lIChsZW5fZiAtIGxlbl9zKSBsZW5fcyBpblxuICAgICAgaWYgU3RyaW5nLmxvd2VyY2FzZV9hc2NpaSByID0gU3RyaW5nLmxvd2VyY2FzZV9hc2NpaSBzdWZmaXggdGhlblxuICAgICAgICBTb21lIChTdHJpbmcuc3ViIGZpbGVuYW1lIDAgKGxlbl9mIC0gbGVuX3MpKVxuICAgICAgZWxzZVxuICAgICAgICBOb25lXG4gICAgZWxzZVxuICAgICAgTm9uZVxuXG5cbiAgbGV0IHRlbXBfZGlyX25hbWUgPVxuICAgIHRyeSBTeXMuZ2V0ZW52IFwiVEVNUFwiIHdpdGggTm90X2ZvdW5kIC0+IFwiLlwiXG4gIGxldCBxdW90ZSBzID1cbiAgICBsZXQgbCA9IFN0cmluZy5sZW5ndGggcyBpblxuICAgIGxldCBiID0gQnVmZmVyLmNyZWF0ZSAobCArIDIwKSBpblxuICAgIEJ1ZmZlci5hZGRfY2hhciBiICdcXFwiJztcbiAgICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgICBpZiBpID0gbCB0aGVuIEJ1ZmZlci5hZGRfY2hhciBiICdcXFwiJyBlbHNlXG4gICAgICBtYXRjaCBzLltpXSB3aXRoXG4gICAgICB8ICdcXFwiJyAtPiBsb29wX2JzIDAgaTtcbiAgICAgIHwgJ1xcXFwnIC0+IGxvb3BfYnMgMCBpO1xuICAgICAgfCBjICAgIC0+IEJ1ZmZlci5hZGRfY2hhciBiIGM7IGxvb3AgKGkrMSk7XG4gICAgYW5kIGxvb3BfYnMgbiBpID1cbiAgICAgIGlmIGkgPSBsIHRoZW4gYmVnaW5cbiAgICAgICAgQnVmZmVyLmFkZF9jaGFyIGIgJ1xcXCInO1xuICAgICAgICBhZGRfYnMgbjtcbiAgICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICAgIG1hdGNoIHMuW2ldIHdpdGhcbiAgICAgICAgfCAnXFxcIicgLT4gYWRkX2JzICgyKm4rMSk7IEJ1ZmZlci5hZGRfY2hhciBiICdcXFwiJzsgbG9vcCAoaSsxKTtcbiAgICAgICAgfCAnXFxcXCcgLT4gbG9vcF9icyAobisxKSAoaSsxKTtcbiAgICAgICAgfCBfICAgIC0+IGFkZF9icyBuOyBsb29wIGlcbiAgICAgIGVuZFxuICAgIGFuZCBhZGRfYnMgbiA9IGZvciBfaiA9IDEgdG8gbiBkbyBCdWZmZXIuYWRkX2NoYXIgYiAnXFxcXCc7IGRvbmVcbiAgICBpblxuICAgIGxvb3AgMDtcbiAgICBCdWZmZXIuY29udGVudHMgYlxuKCpcblF1b3RpbmcgY29tbWFuZHMgZm9yIGV4ZWN1dGlvbiBieSBjbWQuZXhlIGlzIGRpZmZpY3VsdC5cbjEtIEVhY2ggYXJndW1lbnQgaXMgZmlyc3QgcXVvdGVkIHVzaW5nIHRoZSBcInF1b3RlXCIgZnVuY3Rpb24gYWJvdmUsIHRvXG4gICBwcm90ZWN0IGl0IGFnYWluc3QgdGhlIHByb2Nlc3NpbmcgcGVyZm9ybWVkIGJ5IHRoZSBDIHJ1bnRpbWUgc3lzdGVtLFxuICAgdGhlbiBjbWQuZXhlJ3Mgc3BlY2lhbCBjaGFyYWN0ZXJzIGFyZSBlc2NhcGVkIHdpdGggJ14nLCB1c2luZ1xuICAgdGhlIFwicXVvdGVfY21kXCIgZnVuY3Rpb24gYmVsb3cuICBGb3IgbW9yZSBkZXRhaWxzLCBzZWVcbiAgIGh0dHBzOi8vYmxvZ3MubXNkbi5taWNyb3NvZnQuY29tL3R3aXN0eWxpdHRsZXBhc3NhZ2VzYWxsYWxpa2UvMjAxMS8wNC8yM1xuMi0gVGhlIGNvbW1hbmQgYW5kIHRoZSByZWRpcmVjdGlvbiBmaWxlcywgaWYgYW55LCBtdXN0IGJlIGRvdWJsZS1xdW90ZWRcbiAgIGluIGNhc2UgdGhleSBjb250YWluIHNwYWNlcy4gIFRoaXMgcXVvdGluZyBpcyBpbnRlcnByZXRlZCBieSBjbWQuZXhlLFxuICAgbm90IGJ5IHRoZSBDIHJ1bnRpbWUgc3lzdGVtLCBoZW5jZSB0aGUgXCJxdW90ZVwiIGZ1bmN0aW9uIGFib3ZlXG4gICBjYW5ub3QgYmUgdXNlZC4gIFRoZSB0d28gY2hhcmFjdGVycyB3ZSBkb24ndCBrbm93IGhvdyB0byBxdW90ZVxuICAgaW5zaWRlIGEgZG91YmxlLXF1b3RlZCBjbWQuZXhlIHN0cmluZyBhcmUgZG91YmxlLXF1b3RlIGFuZCBwZXJjZW50LlxuICAgV2UganVzdCBmYWlsIGlmIHRoZSBjb21tYW5kIG5hbWUgb3IgdGhlIHJlZGlyZWN0aW9uIGZpbGUgbmFtZXNcbiAgIGNvbnRhaW4gYSBkb3VibGUgcXVvdGUgKG5vdCBhbGxvd2VkIGluIFdpbmRvd3MgZmlsZSBuYW1lcywgYW55d2F5KVxuICAgb3IgYSBwZXJjZW50LiAgU2VlIGZ1bmN0aW9uIFwicXVvdGVfY21kX2ZpbGVuYW1lXCIgYmVsb3cuXG4zLSBUaGUgd2hvbGUgc3RyaW5nIHBhc3NlZCB0byBTeXMuY29tbWFuZCBpcyB0aGVuIGVuY2xvc2VkIGluIGRvdWJsZVxuICAgcXVvdGVzLCB3aGljaCBhcmUgaW1tZWRpYXRlbHkgc3RyaXBwZWQgYnkgY21kLmV4ZS4gIE90aGVyd2lzZSxcbiAgIHNvbWUgb2YgdGhlIGRvdWJsZSBxdW90ZXMgZnJvbSBzdGVwIDIgYWJvdmUgY2FuIGJlIG1pc3BhcnNlZC5cbiAgIFNlZSBlLmcuIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS85OTY1MTQxXG4qKVxuICBsZXQgcXVvdGVfY21kIHMgPVxuICAgIGxldCBiID0gQnVmZmVyLmNyZWF0ZSAoU3RyaW5nLmxlbmd0aCBzICsgMjApIGluXG4gICAgU3RyaW5nLml0ZXJcbiAgICAgIChmdW4gYyAtPlxuICAgICAgICBtYXRjaCBjIHdpdGhcbiAgICAgICAgfCAnKCcgfCAnKScgfCAnIScgfCAnXicgfCAnJScgfCAnXFxcIicgfCAnPCcgfCAnPicgfCAnJicgfCAnfCcgLT5cbiAgICAgICAgICAgIEJ1ZmZlci5hZGRfY2hhciBiICdeJzsgQnVmZmVyLmFkZF9jaGFyIGIgY1xuICAgICAgICB8IF8gLT5cbiAgICAgICAgICAgIEJ1ZmZlci5hZGRfY2hhciBiIGMpXG4gICAgICBzO1xuICAgIEJ1ZmZlci5jb250ZW50cyBiXG4gIGxldCBxdW90ZV9jbWRfZmlsZW5hbWUgZiA9XG4gICAgaWYgU3RyaW5nLmNvbnRhaW5zIGYgJ1xcXCInIHx8IFN0cmluZy5jb250YWlucyBmICclJyB0aGVuXG4gICAgICBmYWlsd2l0aCAoXCJGaWxlbmFtZS5xdW90ZV9jb21tYW5kOiBiYWQgZmlsZSBuYW1lIFwiIF4gZilcbiAgICBlbHNlIGlmIFN0cmluZy5jb250YWlucyBmICcgJyB0aGVuXG4gICAgICBcIlxcXCJcIiBeIGYgXiBcIlxcXCJcIlxuICAgIGVsc2VcbiAgICAgIGZcbiAgKCogUmVkaXJlY3Rpb25zIGluIGNtZC5leGU6IHNlZSBodHRwczovL3NzNjQuY29tL250L3N5bnRheC1yZWRpcmVjdGlvbi5odG1sXG4gICAgIGFuZCBodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9lbi11cy9wcmV2aW91cy12ZXJzaW9ucy93aW5kb3dzL2l0LXByby93aW5kb3dzLXhwL2JiNDkwOTgyKHY9dGVjaG5ldC4xMClcbiAgKilcbiAgbGV0IHF1b3RlX2NvbW1hbmQgY21kID9zdGRpbiA/c3Rkb3V0ID9zdGRlcnIgYXJncyA9XG4gICAgU3RyaW5nLmNvbmNhdCBcIlwiIFtcbiAgICAgIFwiXFxcIlwiO1xuICAgICAgcXVvdGVfY21kX2ZpbGVuYW1lIGNtZDtcbiAgICAgIFwiIFwiO1xuICAgICAgcXVvdGVfY21kIChTdHJpbmcuY29uY2F0IFwiIFwiIChMaXN0Lm1hcCBxdW90ZSBhcmdzKSk7XG4gICAgICAobWF0Y2ggc3RkaW4gIHdpdGggTm9uZSAtPiBcIlwiIHwgU29tZSBmIC0+IFwiIDxcIiBeIHF1b3RlX2NtZF9maWxlbmFtZSBmKTtcbiAgICAgIChtYXRjaCBzdGRvdXQgd2l0aCBOb25lIC0+IFwiXCIgfCBTb21lIGYgLT4gXCIgPlwiIF4gcXVvdGVfY21kX2ZpbGVuYW1lIGYpO1xuICAgICAgKG1hdGNoIHN0ZGVyciB3aXRoIE5vbmUgLT4gXCJcIiB8IFNvbWUgZiAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHN0ZGVyciA9IHN0ZG91dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gXCIgMj4mMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBcIiAyPlwiIF4gcXVvdGVfY21kX2ZpbGVuYW1lIGYpO1xuICAgICAgXCJcXFwiXCJcbiAgICBdXG4gIGxldCBoYXNfZHJpdmUgcyA9XG4gICAgbGV0IGlzX2xldHRlciA9IGZ1bmN0aW9uXG4gICAgICB8ICdBJyAuLiAnWicgfCAnYScgLi4gJ3onIC0+IHRydWVcbiAgICAgIHwgXyAtPiBmYWxzZVxuICAgIGluXG4gICAgU3RyaW5nLmxlbmd0aCBzID49IDIgJiYgaXNfbGV0dGVyIHMuWzBdICYmIHMuWzFdID0gJzonXG4gIGxldCBkcml2ZV9hbmRfcGF0aCBzID1cbiAgICBpZiBoYXNfZHJpdmUgc1xuICAgIHRoZW4gKFN0cmluZy5zdWIgcyAwIDIsIFN0cmluZy5zdWIgcyAyIChTdHJpbmcubGVuZ3RoIHMgLSAyKSlcbiAgICBlbHNlIChcIlwiLCBzKVxuICBsZXQgZGlybmFtZSBzID1cbiAgICBsZXQgKGRyaXZlLCBwYXRoKSA9IGRyaXZlX2FuZF9wYXRoIHMgaW5cbiAgICBsZXQgZGlyID0gZ2VuZXJpY19kaXJuYW1lIGlzX2Rpcl9zZXAgY3VycmVudF9kaXJfbmFtZSBwYXRoIGluXG4gICAgZHJpdmUgXiBkaXJcbiAgbGV0IGJhc2VuYW1lIHMgPVxuICAgIGxldCAoX2RyaXZlLCBwYXRoKSA9IGRyaXZlX2FuZF9wYXRoIHMgaW5cbiAgICBnZW5lcmljX2Jhc2VuYW1lIGlzX2Rpcl9zZXAgY3VycmVudF9kaXJfbmFtZSBwYXRoXG5lbmRcblxubW9kdWxlIEN5Z3dpbiA6IFNZU0RFUFMgPSBzdHJ1Y3RcbiAgbGV0IG51bGwgPSBcIi9kZXYvbnVsbFwiXG4gIGxldCBjdXJyZW50X2Rpcl9uYW1lID0gXCIuXCJcbiAgbGV0IHBhcmVudF9kaXJfbmFtZSA9IFwiLi5cIlxuICBsZXQgZGlyX3NlcCA9IFwiL1wiXG4gIGxldCBpc19kaXJfc2VwID0gV2luMzIuaXNfZGlyX3NlcFxuICBsZXQgaXNfcmVsYXRpdmUgPSBXaW4zMi5pc19yZWxhdGl2ZVxuICBsZXQgaXNfaW1wbGljaXQgPSBXaW4zMi5pc19pbXBsaWNpdFxuICBsZXQgY2hlY2tfc3VmZml4ID0gV2luMzIuY2hlY2tfc3VmZml4XG4gIGxldCBjaG9wX3N1ZmZpeF9vcHQgPSBXaW4zMi5jaG9wX3N1ZmZpeF9vcHRcbiAgbGV0IHRlbXBfZGlyX25hbWUgPSBVbml4LnRlbXBfZGlyX25hbWVcbiAgbGV0IHF1b3RlID0gVW5peC5xdW90ZVxuICBsZXQgcXVvdGVfY29tbWFuZCA9IFVuaXgucXVvdGVfY29tbWFuZFxuICBsZXQgYmFzZW5hbWUgPSBnZW5lcmljX2Jhc2VuYW1lIGlzX2Rpcl9zZXAgY3VycmVudF9kaXJfbmFtZVxuICBsZXQgZGlybmFtZSA9IGdlbmVyaWNfZGlybmFtZSBpc19kaXJfc2VwIGN1cnJlbnRfZGlyX25hbWVcbmVuZFxuXG5tb2R1bGUgU3lzZGVwcyA9XG4gICh2YWwgKG1hdGNoIFN5cy5vc190eXBlIHdpdGhcbiAgICAgICB8IFwiV2luMzJcIiAtPiAobW9kdWxlIFdpbjMyOiBTWVNERVBTKVxuICAgICAgIHwgXCJDeWd3aW5cIiAtPiAobW9kdWxlIEN5Z3dpbjogU1lTREVQUylcbiAgICAgICB8IF8gLT4gKG1vZHVsZSBVbml4OiBTWVNERVBTKSkpXG5cbmluY2x1ZGUgU3lzZGVwc1xuXG5sZXQgY29uY2F0IGRpcm5hbWUgZmlsZW5hbWUgPVxuICBsZXQgbCA9IFN0cmluZy5sZW5ndGggZGlybmFtZSBpblxuICBpZiBsID0gMCB8fCBpc19kaXJfc2VwIGRpcm5hbWUgKGwtMSlcbiAgdGhlbiBkaXJuYW1lIF4gZmlsZW5hbWVcbiAgZWxzZSBkaXJuYW1lIF4gZGlyX3NlcCBeIGZpbGVuYW1lXG5cbmxldCBjaG9wX3N1ZmZpeCBuYW1lIHN1ZmYgPVxuICBpZiBjaGVja19zdWZmaXggbmFtZSBzdWZmXG4gIHRoZW4gU3RyaW5nLnN1YiBuYW1lIDAgKFN0cmluZy5sZW5ndGggbmFtZSAtIFN0cmluZy5sZW5ndGggc3VmZilcbiAgZWxzZSBpbnZhbGlkX2FyZyBcIkZpbGVuYW1lLmNob3Bfc3VmZml4XCJcblxubGV0IGV4dGVuc2lvbl9sZW4gbmFtZSA9XG4gIGxldCByZWMgY2hlY2sgaTAgaSA9XG4gICAgaWYgaSA8IDAgfHwgaXNfZGlyX3NlcCBuYW1lIGkgdGhlbiAwXG4gICAgZWxzZSBpZiBuYW1lLltpXSA9ICcuJyB0aGVuIGNoZWNrIGkwIChpIC0gMSlcbiAgICBlbHNlIFN0cmluZy5sZW5ndGggbmFtZSAtIGkwXG4gIGluXG4gIGxldCByZWMgc2VhcmNoX2RvdCBpID1cbiAgICBpZiBpIDwgMCB8fCBpc19kaXJfc2VwIG5hbWUgaSB0aGVuIDBcbiAgICBlbHNlIGlmIG5hbWUuW2ldID0gJy4nIHRoZW4gY2hlY2sgaSAoaSAtIDEpXG4gICAgZWxzZSBzZWFyY2hfZG90IChpIC0gMSlcbiAgaW5cbiAgc2VhcmNoX2RvdCAoU3RyaW5nLmxlbmd0aCBuYW1lIC0gMSlcblxubGV0IGV4dGVuc2lvbiBuYW1lID1cbiAgbGV0IGwgPSBleHRlbnNpb25fbGVuIG5hbWUgaW5cbiAgaWYgbCA9IDAgdGhlbiBcIlwiIGVsc2UgU3RyaW5nLnN1YiBuYW1lIChTdHJpbmcubGVuZ3RoIG5hbWUgLSBsKSBsXG5cbmxldCBjaG9wX2V4dGVuc2lvbiBuYW1lID1cbiAgbGV0IGwgPSBleHRlbnNpb25fbGVuIG5hbWUgaW5cbiAgaWYgbCA9IDAgdGhlbiBpbnZhbGlkX2FyZyBcIkZpbGVuYW1lLmNob3BfZXh0ZW5zaW9uXCJcbiAgZWxzZSBTdHJpbmcuc3ViIG5hbWUgMCAoU3RyaW5nLmxlbmd0aCBuYW1lIC0gbClcblxubGV0IHJlbW92ZV9leHRlbnNpb24gbmFtZSA9XG4gIGxldCBsID0gZXh0ZW5zaW9uX2xlbiBuYW1lIGluXG4gIGlmIGwgPSAwIHRoZW4gbmFtZSBlbHNlIFN0cmluZy5zdWIgbmFtZSAwIChTdHJpbmcubGVuZ3RoIG5hbWUgLSBsKVxuXG5leHRlcm5hbCBvcGVuX2Rlc2M6IHN0cmluZyAtPiBvcGVuX2ZsYWcgbGlzdCAtPiBpbnQgLT4gaW50ID0gXCJjYW1sX3N5c19vcGVuXCJcbmV4dGVybmFsIGNsb3NlX2Rlc2M6IGludCAtPiB1bml0ID0gXCJjYW1sX3N5c19jbG9zZVwiXG5cbmxldCBwcm5nID0gbGF6eShSYW5kb20uU3RhdGUubWFrZV9zZWxmX2luaXQgKCkpXG5cbmxldCB0ZW1wX2ZpbGVfbmFtZSB0ZW1wX2RpciBwcmVmaXggc3VmZml4ID1cbiAgbGV0IHJuZCA9IChSYW5kb20uU3RhdGUuYml0cyAoTGF6eS5mb3JjZSBwcm5nKSkgbGFuZCAweEZGRkZGRiBpblxuICBjb25jYXQgdGVtcF9kaXIgKFByaW50Zi5zcHJpbnRmIFwiJXMlMDZ4JXNcIiBwcmVmaXggcm5kIHN1ZmZpeClcblxuXG5sZXQgY3VycmVudF90ZW1wX2Rpcl9uYW1lID0gcmVmIHRlbXBfZGlyX25hbWVcblxubGV0IHNldF90ZW1wX2Rpcl9uYW1lIHMgPSBjdXJyZW50X3RlbXBfZGlyX25hbWUgOj0gc1xubGV0IGdldF90ZW1wX2Rpcl9uYW1lICgpID0gIWN1cnJlbnRfdGVtcF9kaXJfbmFtZVxuXG5sZXQgdGVtcF9maWxlID8odGVtcF9kaXIgPSAhY3VycmVudF90ZW1wX2Rpcl9uYW1lKSBwcmVmaXggc3VmZml4ID1cbiAgbGV0IHJlYyB0cnlfbmFtZSBjb3VudGVyID1cbiAgICBsZXQgbmFtZSA9IHRlbXBfZmlsZV9uYW1lIHRlbXBfZGlyIHByZWZpeCBzdWZmaXggaW5cbiAgICB0cnlcbiAgICAgIGNsb3NlX2Rlc2Mob3Blbl9kZXNjIG5hbWUgW09wZW5fd3Jvbmx5OyBPcGVuX2NyZWF0OyBPcGVuX2V4Y2xdIDBvNjAwKTtcbiAgICAgIG5hbWVcbiAgICB3aXRoIFN5c19lcnJvciBfIGFzIGUgLT5cbiAgICAgIGlmIGNvdW50ZXIgPj0gMTAwMCB0aGVuIHJhaXNlIGUgZWxzZSB0cnlfbmFtZSAoY291bnRlciArIDEpXG4gIGluIHRyeV9uYW1lIDBcblxubGV0IG9wZW5fdGVtcF9maWxlID8obW9kZSA9IFtPcGVuX3RleHRdKSA/KHBlcm1zID0gMG82MDApXG4gICAgICAgICAgICAgICAgICAgPyh0ZW1wX2RpciA9ICFjdXJyZW50X3RlbXBfZGlyX25hbWUpIHByZWZpeCBzdWZmaXggPVxuICBsZXQgcmVjIHRyeV9uYW1lIGNvdW50ZXIgPVxuICAgIGxldCBuYW1lID0gdGVtcF9maWxlX25hbWUgdGVtcF9kaXIgcHJlZml4IHN1ZmZpeCBpblxuICAgIHRyeVxuICAgICAgKG5hbWUsXG4gICAgICAgb3Blbl9vdXRfZ2VuIChPcGVuX3dyb25seTo6T3Blbl9jcmVhdDo6T3Blbl9leGNsOjptb2RlKSBwZXJtcyBuYW1lKVxuICAgIHdpdGggU3lzX2Vycm9yIF8gYXMgZSAtPlxuICAgICAgaWYgY291bnRlciA+PSAxMDAwIHRoZW4gcmFpc2UgZSBlbHNlIHRyeV9uYW1lIChjb3VudGVyICsgMSlcbiAgaW4gdHJ5X25hbWUgMFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAwMiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBDb21wbGV4IG51bWJlcnMgKilcblxudHlwZSB0ID0geyByZTogZmxvYXQ7IGltOiBmbG9hdCB9XG5cbmxldCB6ZXJvID0geyByZSA9IDAuMDsgaW0gPSAwLjAgfVxubGV0IG9uZSA9IHsgcmUgPSAxLjA7IGltID0gMC4wIH1cbmxldCBpID0geyByZSA9IDAuMDsgaW0gPSAxLjAgfVxuXG5sZXQgYWRkIHggeSA9IHsgcmUgPSB4LnJlICsuIHkucmU7IGltID0geC5pbSArLiB5LmltIH1cblxubGV0IHN1YiB4IHkgPSB7IHJlID0geC5yZSAtLiB5LnJlOyBpbSA9IHguaW0gLS4geS5pbSB9XG5cbmxldCBuZWcgeCA9IHsgcmUgPSAtLiB4LnJlOyBpbSA9IC0uIHguaW0gfVxuXG5sZXQgY29uaiB4ID0geyByZSA9IHgucmU7IGltID0gLS4geC5pbSB9XG5cbmxldCBtdWwgeCB5ID0geyByZSA9IHgucmUgKi4geS5yZSAtLiB4LmltICouIHkuaW07XG4gICAgICAgICAgICAgICAgaW0gPSB4LnJlICouIHkuaW0gKy4geC5pbSAqLiB5LnJlIH1cblxubGV0IGRpdiB4IHkgPVxuICBpZiBhYnNfZmxvYXQgeS5yZSA+PSBhYnNfZmxvYXQgeS5pbSB0aGVuXG4gICAgbGV0IHIgPSB5LmltIC8uIHkucmUgaW5cbiAgICBsZXQgZCA9IHkucmUgKy4gciAqLiB5LmltIGluXG4gICAgeyByZSA9ICh4LnJlICsuIHIgKi4geC5pbSkgLy4gZDtcbiAgICAgIGltID0gKHguaW0gLS4gciAqLiB4LnJlKSAvLiBkIH1cbiAgZWxzZVxuICAgIGxldCByID0geS5yZSAvLiB5LmltIGluXG4gICAgbGV0IGQgPSB5LmltICsuIHIgKi4geS5yZSBpblxuICAgIHsgcmUgPSAociAqLiB4LnJlICsuIHguaW0pIC8uIGQ7XG4gICAgICBpbSA9IChyICouIHguaW0gLS4geC5yZSkgLy4gZCB9XG5cbmxldCBpbnYgeCA9IGRpdiBvbmUgeFxuXG5sZXQgbm9ybTIgeCA9IHgucmUgKi4geC5yZSArLiB4LmltICouIHguaW1cblxubGV0IG5vcm0geCA9XG4gICgqIFdhdGNoIG91dCBmb3Igb3ZlcmZsb3cgaW4gY29tcHV0aW5nIHJlXjIgKyBpbV4yICopXG4gIGxldCByID0gYWJzX2Zsb2F0IHgucmUgYW5kIGkgPSBhYnNfZmxvYXQgeC5pbSBpblxuICBpZiByID0gMC4wIHRoZW4gaVxuICBlbHNlIGlmIGkgPSAwLjAgdGhlbiByXG4gIGVsc2UgaWYgciA+PSBpIHRoZW5cbiAgICBsZXQgcSA9IGkgLy4gciBpbiByICouIHNxcnQoMS4wICsuIHEgKi4gcSlcbiAgZWxzZVxuICAgIGxldCBxID0gciAvLiBpIGluIGkgKi4gc3FydCgxLjAgKy4gcSAqLiBxKVxuXG5sZXQgYXJnIHggPSBhdGFuMiB4LmltIHgucmVcblxubGV0IHBvbGFyIG4gYSA9IHsgcmUgPSBjb3MgYSAqLiBuOyBpbSA9IHNpbiBhICouIG4gfVxuXG5sZXQgc3FydCB4ID1cbiAgaWYgeC5yZSA9IDAuMCAmJiB4LmltID0gMC4wIHRoZW4geyByZSA9IDAuMDsgaW0gPSAwLjAgfVxuICBlbHNlIGJlZ2luXG4gICAgbGV0IHIgPSBhYnNfZmxvYXQgeC5yZSBhbmQgaSA9IGFic19mbG9hdCB4LmltIGluXG4gICAgbGV0IHcgPVxuICAgICAgaWYgciA+PSBpIHRoZW4gYmVnaW5cbiAgICAgICAgbGV0IHEgPSBpIC8uIHIgaW5cbiAgICAgICAgc3FydChyKSAqLiBzcXJ0KDAuNSAqLiAoMS4wICsuIHNxcnQoMS4wICsuIHEgKi4gcSkpKVxuICAgICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgICAgbGV0IHEgPSByIC8uIGkgaW5cbiAgICAgICAgc3FydChpKSAqLiBzcXJ0KDAuNSAqLiAocSArLiBzcXJ0KDEuMCArLiBxICouIHEpKSlcbiAgICAgIGVuZCBpblxuICAgIGlmIHgucmUgPj0gMC4wXG4gICAgdGhlbiB7IHJlID0gdzsgIGltID0gMC41ICouIHguaW0gLy4gdyB9XG4gICAgZWxzZSB7IHJlID0gMC41ICouIGkgLy4gdzsgIGltID0gaWYgeC5pbSA+PSAwLjAgdGhlbiB3IGVsc2UgLS4gdyB9XG4gIGVuZFxuXG5sZXQgZXhwIHggPVxuICBsZXQgZSA9IGV4cCB4LnJlIGluIHsgcmUgPSBlICouIGNvcyB4LmltOyBpbSA9IGUgKi4gc2luIHguaW0gfVxuXG5sZXQgbG9nIHggPSB7IHJlID0gbG9nIChub3JtIHgpOyBpbSA9IGF0YW4yIHguaW0geC5yZSB9XG5cbmxldCBwb3cgeCB5ID0gZXhwIChtdWwgeSAobG9nIHgpKVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgIE1hbnVlbCBTZXJyYW5vIGV0IFhhdmllciBMZXJveSwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAwMCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBNb2R1bGUgW0JpZ2FycmF5XTogbGFyZ2UsIG11bHRpLWRpbWVuc2lvbmFsLCBudW1lcmljYWwgYXJyYXlzICopXG5cbigqIFRoZXNlIHR5cGVzIGluIG11c3QgYmUga2VwdCBpbiBzeW5jIHdpdGggdGhlIHRhYmxlcyBpblxuICAgLi4vdHlwaW5nL3R5cGVvcHQubWwgKilcblxudHlwZSBmbG9hdDMyX2VsdCA9IEZsb2F0MzJfZWx0XG50eXBlIGZsb2F0NjRfZWx0ID0gRmxvYXQ2NF9lbHRcbnR5cGUgaW50OF9zaWduZWRfZWx0ID0gSW50OF9zaWduZWRfZWx0XG50eXBlIGludDhfdW5zaWduZWRfZWx0ID0gSW50OF91bnNpZ25lZF9lbHRcbnR5cGUgaW50MTZfc2lnbmVkX2VsdCA9IEludDE2X3NpZ25lZF9lbHRcbnR5cGUgaW50MTZfdW5zaWduZWRfZWx0ID0gSW50MTZfdW5zaWduZWRfZWx0XG50eXBlIGludDMyX2VsdCA9IEludDMyX2VsdFxudHlwZSBpbnQ2NF9lbHQgPSBJbnQ2NF9lbHRcbnR5cGUgaW50X2VsdCA9IEludF9lbHRcbnR5cGUgbmF0aXZlaW50X2VsdCA9IE5hdGl2ZWludF9lbHRcbnR5cGUgY29tcGxleDMyX2VsdCA9IENvbXBsZXgzMl9lbHRcbnR5cGUgY29tcGxleDY0X2VsdCA9IENvbXBsZXg2NF9lbHRcblxudHlwZSAoJ2EsICdiKSBraW5kID1cbiAgICBGbG9hdDMyIDogKGZsb2F0LCBmbG9hdDMyX2VsdCkga2luZFxuICB8IEZsb2F0NjQgOiAoZmxvYXQsIGZsb2F0NjRfZWx0KSBraW5kXG4gIHwgSW50OF9zaWduZWQgOiAoaW50LCBpbnQ4X3NpZ25lZF9lbHQpIGtpbmRcbiAgfCBJbnQ4X3Vuc2lnbmVkIDogKGludCwgaW50OF91bnNpZ25lZF9lbHQpIGtpbmRcbiAgfCBJbnQxNl9zaWduZWQgOiAoaW50LCBpbnQxNl9zaWduZWRfZWx0KSBraW5kXG4gIHwgSW50MTZfdW5zaWduZWQgOiAoaW50LCBpbnQxNl91bnNpZ25lZF9lbHQpIGtpbmRcbiAgfCBJbnQzMiA6IChpbnQzMiwgaW50MzJfZWx0KSBraW5kXG4gIHwgSW50NjQgOiAoaW50NjQsIGludDY0X2VsdCkga2luZFxuICB8IEludCA6IChpbnQsIGludF9lbHQpIGtpbmRcbiAgfCBOYXRpdmVpbnQgOiAobmF0aXZlaW50LCBuYXRpdmVpbnRfZWx0KSBraW5kXG4gIHwgQ29tcGxleDMyIDogKENvbXBsZXgudCwgY29tcGxleDMyX2VsdCkga2luZFxuICB8IENvbXBsZXg2NCA6IChDb21wbGV4LnQsIGNvbXBsZXg2NF9lbHQpIGtpbmRcbiAgfCBDaGFyIDogKGNoYXIsIGludDhfdW5zaWduZWRfZWx0KSBraW5kXG5cbnR5cGUgY19sYXlvdXQgPSBDX2xheW91dF90eXBcbnR5cGUgZm9ydHJhbl9sYXlvdXQgPSBGb3J0cmFuX2xheW91dF90eXAgKCoqKVxuXG50eXBlICdhIGxheW91dCA9XG4gICAgQ19sYXlvdXQ6IGNfbGF5b3V0IGxheW91dFxuICB8IEZvcnRyYW5fbGF5b3V0OiBmb3J0cmFuX2xheW91dCBsYXlvdXRcblxuKCogS2VlcCB0aG9zZSBjb25zdGFudHMgaW4gc3luYyB3aXRoIHRoZSBjYW1sX2JhX2tpbmQgZW51bWVyYXRpb25cbiAgIGluIGJpZ2FycmF5LmggKilcblxubGV0IGZsb2F0MzIgPSBGbG9hdDMyXG5sZXQgZmxvYXQ2NCA9IEZsb2F0NjRcbmxldCBpbnQ4X3NpZ25lZCA9IEludDhfc2lnbmVkXG5sZXQgaW50OF91bnNpZ25lZCA9IEludDhfdW5zaWduZWRcbmxldCBpbnQxNl9zaWduZWQgPSBJbnQxNl9zaWduZWRcbmxldCBpbnQxNl91bnNpZ25lZCA9IEludDE2X3Vuc2lnbmVkXG5sZXQgaW50MzIgPSBJbnQzMlxubGV0IGludDY0ID0gSW50NjRcbmxldCBpbnQgPSBJbnRcbmxldCBuYXRpdmVpbnQgPSBOYXRpdmVpbnRcbmxldCBjb21wbGV4MzIgPSBDb21wbGV4MzJcbmxldCBjb21wbGV4NjQgPSBDb21wbGV4NjRcbmxldCBjaGFyID0gQ2hhclxuXG5sZXQga2luZF9zaXplX2luX2J5dGVzIDogdHlwZSBhIGIuIChhLCBiKSBraW5kIC0+IGludCA9IGZ1bmN0aW9uXG4gIHwgRmxvYXQzMiAtPiA0XG4gIHwgRmxvYXQ2NCAtPiA4XG4gIHwgSW50OF9zaWduZWQgLT4gMVxuICB8IEludDhfdW5zaWduZWQgLT4gMVxuICB8IEludDE2X3NpZ25lZCAtPiAyXG4gIHwgSW50MTZfdW5zaWduZWQgLT4gMlxuICB8IEludDMyIC0+IDRcbiAgfCBJbnQ2NCAtPiA4XG4gIHwgSW50IC0+IFN5cy53b3JkX3NpemUgLyA4XG4gIHwgTmF0aXZlaW50IC0+IFN5cy53b3JkX3NpemUgLyA4XG4gIHwgQ29tcGxleDMyIC0+IDhcbiAgfCBDb21wbGV4NjQgLT4gMTZcbiAgfCBDaGFyIC0+IDFcblxuKCogS2VlcCB0aG9zZSBjb25zdGFudHMgaW4gc3luYyB3aXRoIHRoZSBjYW1sX2JhX2xheW91dCBlbnVtZXJhdGlvblxuICAgaW4gYmlnYXJyYXkuaCAqKVxuXG5sZXQgY19sYXlvdXQgPSBDX2xheW91dFxubGV0IGZvcnRyYW5fbGF5b3V0ID0gRm9ydHJhbl9sYXlvdXRcblxubW9kdWxlIEdlbmFycmF5ID0gc3RydWN0XG4gIHR5cGUgKCEnYSwgISdiLCAhJ2MpIHRcbiAgZXh0ZXJuYWwgY3JlYXRlOiAoJ2EsICdiKSBraW5kIC0+ICdjIGxheW91dCAtPiBpbnQgYXJyYXkgLT4gKCdhLCAnYiwgJ2MpIHRcbiAgICAgPSBcImNhbWxfYmFfY3JlYXRlXCJcbiAgZXh0ZXJuYWwgZ2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgYXJyYXkgLT4gJ2FcbiAgICAgPSBcImNhbWxfYmFfZ2V0X2dlbmVyaWNcIlxuICBleHRlcm5hbCBzZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCBhcnJheSAtPiAnYSAtPiB1bml0XG4gICAgID0gXCJjYW1sX2JhX3NldF9nZW5lcmljXCJcblxuICBsZXQgcmVjIGNsb29wIGFyciBpZHggZiBjb2wgbWF4ID1cbiAgICBpZiBjb2wgPSBBcnJheS5sZW5ndGggaWR4IHRoZW4gc2V0IGFyciBpZHggKGYgaWR4KVxuICAgIGVsc2UgZm9yIGogPSAwIHRvIHByZWQgbWF4Lihjb2wpIGRvXG4gICAgICAgICAgIGlkeC4oY29sKSA8LSBqO1xuICAgICAgICAgICBjbG9vcCBhcnIgaWR4IGYgKHN1Y2MgY29sKSBtYXhcbiAgICAgICAgIGRvbmVcbiAgbGV0IHJlYyBmbG9vcCBhcnIgaWR4IGYgY29sIG1heCA9XG4gICAgaWYgY29sIDwgMCB0aGVuIHNldCBhcnIgaWR4IChmIGlkeClcbiAgICBlbHNlIGZvciBqID0gMSB0byBtYXguKGNvbCkgZG9cbiAgICAgICAgICAgaWR4Lihjb2wpIDwtIGo7XG4gICAgICAgICAgIGZsb29wIGFyciBpZHggZiAocHJlZCBjb2wpIG1heFxuICAgICAgICAgZG9uZVxuICBsZXQgaW5pdCAodHlwZSB0KSBraW5kIChsYXlvdXQgOiB0IGxheW91dCkgZGltcyBmID1cbiAgICBsZXQgYXJyID0gY3JlYXRlIGtpbmQgbGF5b3V0IGRpbXMgaW5cbiAgICBtYXRjaCBBcnJheS5sZW5ndGggZGltcywgbGF5b3V0IHdpdGhcbiAgICB8IDAsIF8gLT4gYXJyXG4gICAgfCBkbGVuLCBDX2xheW91dCAtPiBjbG9vcCBhcnIgKEFycmF5Lm1ha2UgZGxlbiAwKSBmIDAgZGltczsgYXJyXG4gICAgfCBkbGVuLCBGb3J0cmFuX2xheW91dCAtPiBmbG9vcCBhcnIgKEFycmF5Lm1ha2UgZGxlbiAxKSBmIChwcmVkIGRsZW4pIGRpbXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJcblxuICBleHRlcm5hbCBudW1fZGltczogKCdhLCAnYiwgJ2MpIHQgLT4gaW50ID0gXCJjYW1sX2JhX251bV9kaW1zXCJcbiAgZXh0ZXJuYWwgbnRoX2RpbTogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+IGludCA9IFwiY2FtbF9iYV9kaW1cIlxuICBsZXQgZGltcyBhID1cbiAgICBsZXQgbiA9IG51bV9kaW1zIGEgaW5cbiAgICBsZXQgZCA9IEFycmF5Lm1ha2UgbiAwIGluXG4gICAgZm9yIGkgPSAwIHRvIG4tMSBkbyBkLihpKSA8LSBudGhfZGltIGEgaSBkb25lO1xuICAgIGRcblxuICBleHRlcm5hbCBraW5kOiAoJ2EsICdiLCAnYykgdCAtPiAoJ2EsICdiKSBraW5kID0gXCJjYW1sX2JhX2tpbmRcIlxuICBleHRlcm5hbCBsYXlvdXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICdjIGxheW91dCA9IFwiY2FtbF9iYV9sYXlvdXRcIlxuICBleHRlcm5hbCBjaGFuZ2VfbGF5b3V0OiAoJ2EsICdiLCAnYykgdCAtPiAnZCBsYXlvdXQgLT4gKCdhLCAnYiwgJ2QpIHRcbiAgICAgPSBcImNhbWxfYmFfY2hhbmdlX2xheW91dFwiXG5cbiAgbGV0IHNpemVfaW5fYnl0ZXMgYXJyID1cbiAgICAoa2luZF9zaXplX2luX2J5dGVzIChraW5kIGFycikpICogKEFycmF5LmZvbGRfbGVmdCAoICogKSAxIChkaW1zIGFycikpXG5cbiAgZXh0ZXJuYWwgc3ViX2xlZnQ6ICgnYSwgJ2IsIGNfbGF5b3V0KSB0IC0+IGludCAtPiBpbnQgLT4gKCdhLCAnYiwgY19sYXlvdXQpIHRcbiAgICAgPSBcImNhbWxfYmFfc3ViXCJcbiAgZXh0ZXJuYWwgc3ViX3JpZ2h0OiAoJ2EsICdiLCBmb3J0cmFuX2xheW91dCkgdCAtPiBpbnQgLT4gaW50IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICgnYSwgJ2IsIGZvcnRyYW5fbGF5b3V0KSB0XG4gICAgID0gXCJjYW1sX2JhX3N1YlwiXG4gIGV4dGVybmFsIHNsaWNlX2xlZnQ6ICgnYSwgJ2IsIGNfbGF5b3V0KSB0IC0+IGludCBhcnJheSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2EsICdiLCBjX2xheW91dCkgdFxuICAgICA9IFwiY2FtbF9iYV9zbGljZVwiXG4gIGV4dGVybmFsIHNsaWNlX3JpZ2h0OiAoJ2EsICdiLCBmb3J0cmFuX2xheW91dCkgdCAtPiBpbnQgYXJyYXkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKCdhLCAnYiwgZm9ydHJhbl9sYXlvdXQpIHRcbiAgICAgPSBcImNhbWxfYmFfc2xpY2VcIlxuICBleHRlcm5hbCBibGl0OiAoJ2EsICdiLCAnYykgdCAtPiAoJ2EsICdiLCAnYykgdCAtPiB1bml0XG4gICAgID0gXCJjYW1sX2JhX2JsaXRcIlxuICBleHRlcm5hbCBmaWxsOiAoJ2EsICdiLCAnYykgdCAtPiAnYSAtPiB1bml0ID0gXCJjYW1sX2JhX2ZpbGxcIlxuZW5kXG5cbm1vZHVsZSBBcnJheTAgPSBzdHJ1Y3RcbiAgdHlwZSAoISdhLCAhJ2IsICEnYykgdCA9ICgnYSwgJ2IsICdjKSBHZW5hcnJheS50XG4gIGxldCBjcmVhdGUga2luZCBsYXlvdXQgPVxuICAgIEdlbmFycmF5LmNyZWF0ZSBraW5kIGxheW91dCBbfHxdXG4gIGxldCBnZXQgYXJyID0gR2VuYXJyYXkuZ2V0IGFyciBbfHxdXG4gIGxldCBzZXQgYXJyID0gR2VuYXJyYXkuc2V0IGFyciBbfHxdXG4gIGV4dGVybmFsIGtpbmQ6ICgnYSwgJ2IsICdjKSB0IC0+ICgnYSwgJ2IpIGtpbmQgPSBcImNhbWxfYmFfa2luZFwiXG4gIGV4dGVybmFsIGxheW91dDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2MgbGF5b3V0ID0gXCJjYW1sX2JhX2xheW91dFwiXG5cbiAgZXh0ZXJuYWwgY2hhbmdlX2xheW91dDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2QgbGF5b3V0IC0+ICgnYSwgJ2IsICdkKSB0XG4gICAgPSBcImNhbWxfYmFfY2hhbmdlX2xheW91dFwiXG5cbiAgbGV0IHNpemVfaW5fYnl0ZXMgYXJyID0ga2luZF9zaXplX2luX2J5dGVzIChraW5kIGFycilcblxuICBleHRlcm5hbCBibGl0OiAoJ2EsICdiLCAnYykgdCAtPiAoJ2EsICdiLCAnYykgdCAtPiB1bml0ID0gXCJjYW1sX2JhX2JsaXRcIlxuICBleHRlcm5hbCBmaWxsOiAoJ2EsICdiLCAnYykgdCAtPiAnYSAtPiB1bml0ID0gXCJjYW1sX2JhX2ZpbGxcIlxuXG4gIGxldCBvZl92YWx1ZSBraW5kIGxheW91dCB2ID1cbiAgICBsZXQgYSA9IGNyZWF0ZSBraW5kIGxheW91dCBpblxuICAgIHNldCBhIHY7XG4gICAgYVxuICBsZXQgaW5pdCA9IG9mX3ZhbHVlXG5lbmRcblxubW9kdWxlIEFycmF5MSA9IHN0cnVjdFxuICB0eXBlICghJ2EsICEnYiwgISdjKSB0ID0gKCdhLCAnYiwgJ2MpIEdlbmFycmF5LnRcbiAgbGV0IGNyZWF0ZSBraW5kIGxheW91dCBkaW0gPVxuICAgIEdlbmFycmF5LmNyZWF0ZSBraW5kIGxheW91dCBbfGRpbXxdXG4gIGV4dGVybmFsIGdldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+ICdhID0gXCIlY2FtbF9iYV9yZWZfMVwiXG4gIGV4dGVybmFsIHNldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+ICdhIC0+IHVuaXQgPSBcIiVjYW1sX2JhX3NldF8xXCJcbiAgZXh0ZXJuYWwgdW5zYWZlX2dldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+ICdhID0gXCIlY2FtbF9iYV91bnNhZmVfcmVmXzFcIlxuICBleHRlcm5hbCB1bnNhZmVfc2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gJ2EgLT4gdW5pdFxuICAgICA9IFwiJWNhbWxfYmFfdW5zYWZlX3NldF8xXCJcbiAgZXh0ZXJuYWwgZGltOiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgPSBcIiVjYW1sX2JhX2RpbV8xXCJcbiAgZXh0ZXJuYWwga2luZDogKCdhLCAnYiwgJ2MpIHQgLT4gKCdhLCAnYikga2luZCA9IFwiY2FtbF9iYV9raW5kXCJcbiAgZXh0ZXJuYWwgbGF5b3V0OiAoJ2EsICdiLCAnYykgdCAtPiAnYyBsYXlvdXQgPSBcImNhbWxfYmFfbGF5b3V0XCJcblxuICBleHRlcm5hbCBjaGFuZ2VfbGF5b3V0OiAoJ2EsICdiLCAnYykgdCAtPiAnZCBsYXlvdXQgLT4gKCdhLCAnYiwgJ2QpIHRcbiAgICA9IFwiY2FtbF9iYV9jaGFuZ2VfbGF5b3V0XCJcblxuICBsZXQgc2l6ZV9pbl9ieXRlcyBhcnIgPVxuICAgIChraW5kX3NpemVfaW5fYnl0ZXMgKGtpbmQgYXJyKSkgKiAoZGltIGFycilcblxuICBleHRlcm5hbCBzdWI6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiBpbnQgLT4gKCdhLCAnYiwgJ2MpIHQgPSBcImNhbWxfYmFfc3ViXCJcbiAgbGV0IHNsaWNlICh0eXBlIHQpIChhIDogKF8sIF8sIHQpIEdlbmFycmF5LnQpIG4gPVxuICAgIG1hdGNoIGxheW91dCBhIHdpdGhcbiAgICB8IENfbGF5b3V0IC0+IChHZW5hcnJheS5zbGljZV9sZWZ0IGEgW3xufF0gOiAoXywgXywgdCkgR2VuYXJyYXkudClcbiAgICB8IEZvcnRyYW5fbGF5b3V0IC0+IChHZW5hcnJheS5zbGljZV9yaWdodCBhIFt8bnxdOiAoXywgXywgdCkgR2VuYXJyYXkudClcbiAgZXh0ZXJuYWwgYmxpdDogKCdhLCAnYiwgJ2MpIHQgLT4gKCdhLCAnYiwgJ2MpIHQgLT4gdW5pdCA9IFwiY2FtbF9iYV9ibGl0XCJcbiAgZXh0ZXJuYWwgZmlsbDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2EgLT4gdW5pdCA9IFwiY2FtbF9iYV9maWxsXCJcbiAgbGV0IGNfaW5pdCBhcnIgZGltIGYgPVxuICAgIGZvciBpID0gMCB0byBwcmVkIGRpbSBkbyB1bnNhZmVfc2V0IGFyciBpIChmIGkpIGRvbmVcbiAgbGV0IGZvcnRyYW5faW5pdCBhcnIgZGltIGYgPVxuICAgIGZvciBpID0gMSB0byBkaW0gZG8gdW5zYWZlX3NldCBhcnIgaSAoZiBpKSBkb25lXG4gIGxldCBpbml0ICh0eXBlIHQpIGtpbmQgKGxheW91dCA6IHQgbGF5b3V0KSBkaW0gZiA9XG4gICAgbGV0IGFyciA9IGNyZWF0ZSBraW5kIGxheW91dCBkaW0gaW5cbiAgICBtYXRjaCBsYXlvdXQgd2l0aFxuICAgIHwgQ19sYXlvdXQgLT4gY19pbml0IGFyciBkaW0gZjsgYXJyXG4gICAgfCBGb3J0cmFuX2xheW91dCAtPiBmb3J0cmFuX2luaXQgYXJyIGRpbSBmOyBhcnJcbiAgbGV0IG9mX2FycmF5ICh0eXBlIHQpIGtpbmQgKGxheW91dDogdCBsYXlvdXQpIGRhdGEgPVxuICAgIGxldCBiYSA9IGNyZWF0ZSBraW5kIGxheW91dCAoQXJyYXkubGVuZ3RoIGRhdGEpIGluXG4gICAgbGV0IG9mcyA9XG4gICAgICBtYXRjaCBsYXlvdXQgd2l0aFxuICAgICAgICBDX2xheW91dCAtPiAwXG4gICAgICB8IEZvcnRyYW5fbGF5b3V0IC0+IDFcbiAgICBpblxuICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggZGF0YSAtIDEgZG8gdW5zYWZlX3NldCBiYSAoaSArIG9mcykgZGF0YS4oaSkgZG9uZTtcbiAgICBiYVxuZW5kXG5cbm1vZHVsZSBBcnJheTIgPSBzdHJ1Y3RcbiAgdHlwZSAoISdhLCAhJ2IsICEnYykgdCA9ICgnYSwgJ2IsICdjKSBHZW5hcnJheS50XG4gIGxldCBjcmVhdGUga2luZCBsYXlvdXQgZGltMSBkaW0yID1cbiAgICBHZW5hcnJheS5jcmVhdGUga2luZCBsYXlvdXQgW3xkaW0xOyBkaW0yfF1cbiAgZXh0ZXJuYWwgZ2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gaW50IC0+ICdhID0gXCIlY2FtbF9iYV9yZWZfMlwiXG4gIGV4dGVybmFsIHNldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+IGludCAtPiAnYSAtPiB1bml0ID0gXCIlY2FtbF9iYV9zZXRfMlwiXG4gIGV4dGVybmFsIHVuc2FmZV9nZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiBpbnQgLT4gJ2FcbiAgICAgPSBcIiVjYW1sX2JhX3Vuc2FmZV9yZWZfMlwiXG4gIGV4dGVybmFsIHVuc2FmZV9zZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiBpbnQgLT4gJ2EgLT4gdW5pdFxuICAgICA9IFwiJWNhbWxfYmFfdW5zYWZlX3NldF8yXCJcbiAgZXh0ZXJuYWwgZGltMTogKCdhLCAnYiwgJ2MpIHQgLT4gaW50ID0gXCIlY2FtbF9iYV9kaW1fMVwiXG4gIGV4dGVybmFsIGRpbTI6ICgnYSwgJ2IsICdjKSB0IC0+IGludCA9IFwiJWNhbWxfYmFfZGltXzJcIlxuICBleHRlcm5hbCBraW5kOiAoJ2EsICdiLCAnYykgdCAtPiAoJ2EsICdiKSBraW5kID0gXCJjYW1sX2JhX2tpbmRcIlxuICBleHRlcm5hbCBsYXlvdXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICdjIGxheW91dCA9IFwiY2FtbF9iYV9sYXlvdXRcIlxuXG4gIGV4dGVybmFsIGNoYW5nZV9sYXlvdXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICdkIGxheW91dCAtPiAoJ2EsICdiLCAnZCkgdFxuICAgID0gXCJjYW1sX2JhX2NoYW5nZV9sYXlvdXRcIlxuXG4gIGxldCBzaXplX2luX2J5dGVzIGFyciA9XG4gICAgKGtpbmRfc2l6ZV9pbl9ieXRlcyAoa2luZCBhcnIpKSAqIChkaW0xIGFycikgKiAoZGltMiBhcnIpXG5cbiAgZXh0ZXJuYWwgc3ViX2xlZnQ6ICgnYSwgJ2IsIGNfbGF5b3V0KSB0IC0+IGludCAtPiBpbnQgLT4gKCdhLCAnYiwgY19sYXlvdXQpIHRcbiAgICAgPSBcImNhbWxfYmFfc3ViXCJcbiAgZXh0ZXJuYWwgc3ViX3JpZ2h0OlxuICAgICgnYSwgJ2IsIGZvcnRyYW5fbGF5b3V0KSB0IC0+IGludCAtPiBpbnQgLT4gKCdhLCAnYiwgZm9ydHJhbl9sYXlvdXQpIHRcbiAgICAgPSBcImNhbWxfYmFfc3ViXCJcbiAgbGV0IHNsaWNlX2xlZnQgYSBuID0gR2VuYXJyYXkuc2xpY2VfbGVmdCBhIFt8bnxdXG4gIGxldCBzbGljZV9yaWdodCBhIG4gPSBHZW5hcnJheS5zbGljZV9yaWdodCBhIFt8bnxdXG4gIGV4dGVybmFsIGJsaXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICgnYSwgJ2IsICdjKSB0IC0+IHVuaXQgPSBcImNhbWxfYmFfYmxpdFwiXG4gIGV4dGVybmFsIGZpbGw6ICgnYSwgJ2IsICdjKSB0IC0+ICdhIC0+IHVuaXQgPSBcImNhbWxfYmFfZmlsbFwiXG4gIGxldCBjX2luaXQgYXJyIGRpbTEgZGltMiBmID1cbiAgICBmb3IgaSA9IDAgdG8gcHJlZCBkaW0xIGRvXG4gICAgICBmb3IgaiA9IDAgdG8gcHJlZCBkaW0yIGRvXG4gICAgICAgIHVuc2FmZV9zZXQgYXJyIGkgaiAoZiBpIGopXG4gICAgICBkb25lXG4gICAgZG9uZVxuICBsZXQgZm9ydHJhbl9pbml0IGFyciBkaW0xIGRpbTIgZiA9XG4gICAgZm9yIGogPSAxIHRvIGRpbTIgZG9cbiAgICAgIGZvciBpID0gMSB0byBkaW0xIGRvXG4gICAgICAgIHVuc2FmZV9zZXQgYXJyIGkgaiAoZiBpIGopXG4gICAgICBkb25lXG4gICAgZG9uZVxuICBsZXQgaW5pdCAodHlwZSB0KSBraW5kIChsYXlvdXQgOiB0IGxheW91dCkgZGltMSBkaW0yIGYgPVxuICAgIGxldCBhcnIgPSBjcmVhdGUga2luZCBsYXlvdXQgZGltMSBkaW0yIGluXG4gICAgbWF0Y2ggbGF5b3V0IHdpdGhcbiAgICB8IENfbGF5b3V0IC0+IGNfaW5pdCBhcnIgZGltMSBkaW0yIGY7IGFyclxuICAgIHwgRm9ydHJhbl9sYXlvdXQgLT4gZm9ydHJhbl9pbml0IGFyciBkaW0xIGRpbTIgZjsgYXJyXG4gIGxldCBvZl9hcnJheSAodHlwZSB0KSBraW5kIChsYXlvdXQ6IHQgbGF5b3V0KSBkYXRhID1cbiAgICBsZXQgZGltMSA9IEFycmF5Lmxlbmd0aCBkYXRhIGluXG4gICAgbGV0IGRpbTIgPSBpZiBkaW0xID0gMCB0aGVuIDAgZWxzZSBBcnJheS5sZW5ndGggZGF0YS4oMCkgaW5cbiAgICBsZXQgYmEgPSBjcmVhdGUga2luZCBsYXlvdXQgZGltMSBkaW0yIGluXG4gICAgbGV0IG9mcyA9XG4gICAgICBtYXRjaCBsYXlvdXQgd2l0aFxuICAgICAgICBDX2xheW91dCAtPiAwXG4gICAgICB8IEZvcnRyYW5fbGF5b3V0IC0+IDFcbiAgICBpblxuICAgIGZvciBpID0gMCB0byBkaW0xIC0gMSBkb1xuICAgICAgbGV0IHJvdyA9IGRhdGEuKGkpIGluXG4gICAgICBpZiBBcnJheS5sZW5ndGggcm93IDw+IGRpbTIgdGhlblxuICAgICAgICBpbnZhbGlkX2FyZyhcIkJpZ2FycmF5LkFycmF5Mi5vZl9hcnJheTogbm9uLXJlY3Rhbmd1bGFyIGRhdGFcIik7XG4gICAgICBmb3IgaiA9IDAgdG8gZGltMiAtIDEgZG9cbiAgICAgICAgdW5zYWZlX3NldCBiYSAoaSArIG9mcykgKGogKyBvZnMpIHJvdy4oailcbiAgICAgIGRvbmVcbiAgICBkb25lO1xuICAgIGJhXG5lbmRcblxubW9kdWxlIEFycmF5MyA9IHN0cnVjdFxuICB0eXBlICghJ2EsICEnYiwgISdjKSB0ID0gKCdhLCAnYiwgJ2MpIEdlbmFycmF5LnRcbiAgbGV0IGNyZWF0ZSBraW5kIGxheW91dCBkaW0xIGRpbTIgZGltMyA9XG4gICAgR2VuYXJyYXkuY3JlYXRlIGtpbmQgbGF5b3V0IFt8ZGltMTsgZGltMjsgZGltM3xdXG4gIGV4dGVybmFsIGdldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gJ2EgPSBcIiVjYW1sX2JhX3JlZl8zXCJcbiAgZXh0ZXJuYWwgc2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiAnYSAtPiB1bml0XG4gICAgID0gXCIlY2FtbF9iYV9zZXRfM1wiXG4gIGV4dGVybmFsIHVuc2FmZV9nZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiBpbnQgLT4gaW50IC0+ICdhXG4gICAgID0gXCIlY2FtbF9iYV91bnNhZmVfcmVmXzNcIlxuICBleHRlcm5hbCB1bnNhZmVfc2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiAnYSAtPiB1bml0XG4gICAgID0gXCIlY2FtbF9iYV91bnNhZmVfc2V0XzNcIlxuICBleHRlcm5hbCBkaW0xOiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgPSBcIiVjYW1sX2JhX2RpbV8xXCJcbiAgZXh0ZXJuYWwgZGltMjogKCdhLCAnYiwgJ2MpIHQgLT4gaW50ID0gXCIlY2FtbF9iYV9kaW1fMlwiXG4gIGV4dGVybmFsIGRpbTM6ICgnYSwgJ2IsICdjKSB0IC0+IGludCA9IFwiJWNhbWxfYmFfZGltXzNcIlxuICBleHRlcm5hbCBraW5kOiAoJ2EsICdiLCAnYykgdCAtPiAoJ2EsICdiKSBraW5kID0gXCJjYW1sX2JhX2tpbmRcIlxuICBleHRlcm5hbCBsYXlvdXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICdjIGxheW91dCA9IFwiY2FtbF9iYV9sYXlvdXRcIlxuXG4gIGV4dGVybmFsIGNoYW5nZV9sYXlvdXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICdkIGxheW91dCAtPiAoJ2EsICdiLCAnZCkgdFxuICAgID0gXCJjYW1sX2JhX2NoYW5nZV9sYXlvdXRcIlxuXG4gIGxldCBzaXplX2luX2J5dGVzIGFyciA9XG4gICAgKGtpbmRfc2l6ZV9pbl9ieXRlcyAoa2luZCBhcnIpKSAqIChkaW0xIGFycikgKiAoZGltMiBhcnIpICogKGRpbTMgYXJyKVxuXG4gIGV4dGVybmFsIHN1Yl9sZWZ0OiAoJ2EsICdiLCBjX2xheW91dCkgdCAtPiBpbnQgLT4gaW50IC0+ICgnYSwgJ2IsIGNfbGF5b3V0KSB0XG4gICAgID0gXCJjYW1sX2JhX3N1YlwiXG4gIGV4dGVybmFsIHN1Yl9yaWdodDpcbiAgICAgKCdhLCAnYiwgZm9ydHJhbl9sYXlvdXQpIHQgLT4gaW50IC0+IGludCAtPiAoJ2EsICdiLCBmb3J0cmFuX2xheW91dCkgdFxuICAgICA9IFwiY2FtbF9iYV9zdWJcIlxuICBsZXQgc2xpY2VfbGVmdF8xIGEgbiBtID0gR2VuYXJyYXkuc2xpY2VfbGVmdCBhIFt8bjsgbXxdXG4gIGxldCBzbGljZV9yaWdodF8xIGEgbiBtID0gR2VuYXJyYXkuc2xpY2VfcmlnaHQgYSBbfG47IG18XVxuICBsZXQgc2xpY2VfbGVmdF8yIGEgbiA9IEdlbmFycmF5LnNsaWNlX2xlZnQgYSBbfG58XVxuICBsZXQgc2xpY2VfcmlnaHRfMiBhIG4gPSBHZW5hcnJheS5zbGljZV9yaWdodCBhIFt8bnxdXG4gIGV4dGVybmFsIGJsaXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICgnYSwgJ2IsICdjKSB0IC0+IHVuaXQgPSBcImNhbWxfYmFfYmxpdFwiXG4gIGV4dGVybmFsIGZpbGw6ICgnYSwgJ2IsICdjKSB0IC0+ICdhIC0+IHVuaXQgPSBcImNhbWxfYmFfZmlsbFwiXG4gIGxldCBjX2luaXQgYXJyIGRpbTEgZGltMiBkaW0zIGYgPVxuICAgIGZvciBpID0gMCB0byBwcmVkIGRpbTEgZG9cbiAgICAgIGZvciBqID0gMCB0byBwcmVkIGRpbTIgZG9cbiAgICAgICAgZm9yIGsgPSAwIHRvIHByZWQgZGltMyBkb1xuICAgICAgICAgIHVuc2FmZV9zZXQgYXJyIGkgaiBrIChmIGkgaiBrKVxuICAgICAgICBkb25lXG4gICAgICBkb25lXG4gICAgZG9uZVxuICBsZXQgZm9ydHJhbl9pbml0IGFyciBkaW0xIGRpbTIgZGltMyBmID1cbiAgICBmb3IgayA9IDEgdG8gZGltMyBkb1xuICAgICAgZm9yIGogPSAxIHRvIGRpbTIgZG9cbiAgICAgICAgZm9yIGkgPSAxIHRvIGRpbTEgZG9cbiAgICAgICAgICB1bnNhZmVfc2V0IGFyciBpIGogayAoZiBpIGogaylcbiAgICAgICAgZG9uZVxuICAgICAgZG9uZVxuICAgIGRvbmVcbiAgbGV0IGluaXQgKHR5cGUgdCkga2luZCAobGF5b3V0IDogdCBsYXlvdXQpIGRpbTEgZGltMiBkaW0zIGYgPVxuICAgIGxldCBhcnIgPSBjcmVhdGUga2luZCBsYXlvdXQgZGltMSBkaW0yIGRpbTMgaW5cbiAgICBtYXRjaCBsYXlvdXQgd2l0aFxuICAgIHwgQ19sYXlvdXQgLT4gY19pbml0IGFyciBkaW0xIGRpbTIgZGltMyBmOyBhcnJcbiAgICB8IEZvcnRyYW5fbGF5b3V0IC0+IGZvcnRyYW5faW5pdCBhcnIgZGltMSBkaW0yIGRpbTMgZjsgYXJyXG4gIGxldCBvZl9hcnJheSAodHlwZSB0KSBraW5kIChsYXlvdXQ6IHQgbGF5b3V0KSBkYXRhID1cbiAgICBsZXQgZGltMSA9IEFycmF5Lmxlbmd0aCBkYXRhIGluXG4gICAgbGV0IGRpbTIgPSBpZiBkaW0xID0gMCB0aGVuIDAgZWxzZSBBcnJheS5sZW5ndGggZGF0YS4oMCkgaW5cbiAgICBsZXQgZGltMyA9IGlmIGRpbTIgPSAwIHRoZW4gMCBlbHNlIEFycmF5Lmxlbmd0aCBkYXRhLigwKS4oMCkgaW5cbiAgICBsZXQgYmEgPSBjcmVhdGUga2luZCBsYXlvdXQgZGltMSBkaW0yIGRpbTMgaW5cbiAgICBsZXQgb2ZzID1cbiAgICAgIG1hdGNoIGxheW91dCB3aXRoXG4gICAgICAgIENfbGF5b3V0IC0+IDBcbiAgICAgIHwgRm9ydHJhbl9sYXlvdXQgLT4gMVxuICAgIGluXG4gICAgZm9yIGkgPSAwIHRvIGRpbTEgLSAxIGRvXG4gICAgICBsZXQgcm93ID0gZGF0YS4oaSkgaW5cbiAgICAgIGlmIEFycmF5Lmxlbmd0aCByb3cgPD4gZGltMiB0aGVuXG4gICAgICAgIGludmFsaWRfYXJnKFwiQmlnYXJyYXkuQXJyYXkzLm9mX2FycmF5OiBub24tY3ViaWMgZGF0YVwiKTtcbiAgICAgIGZvciBqID0gMCB0byBkaW0yIC0gMSBkb1xuICAgICAgICBsZXQgY29sID0gcm93LihqKSBpblxuICAgICAgICBpZiBBcnJheS5sZW5ndGggY29sIDw+IGRpbTMgdGhlblxuICAgICAgICAgIGludmFsaWRfYXJnKFwiQmlnYXJyYXkuQXJyYXkzLm9mX2FycmF5OiBub24tY3ViaWMgZGF0YVwiKTtcbiAgICAgICAgZm9yIGsgPSAwIHRvIGRpbTMgLSAxIGRvXG4gICAgICAgICAgdW5zYWZlX3NldCBiYSAoaSArIG9mcykgKGogKyBvZnMpIChrICsgb2ZzKSBjb2wuKGspXG4gICAgICAgIGRvbmVcbiAgICAgIGRvbmVcbiAgICBkb25lO1xuICAgIGJhXG5lbmRcblxuZXh0ZXJuYWwgZ2VuYXJyYXlfb2ZfYXJyYXkwOiAoJ2EsICdiLCAnYykgQXJyYXkwLnQgLT4gKCdhLCAnYiwgJ2MpIEdlbmFycmF5LnRcbiAgID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgZ2VuYXJyYXlfb2ZfYXJyYXkxOiAoJ2EsICdiLCAnYykgQXJyYXkxLnQgLT4gKCdhLCAnYiwgJ2MpIEdlbmFycmF5LnRcbiAgID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgZ2VuYXJyYXlfb2ZfYXJyYXkyOiAoJ2EsICdiLCAnYykgQXJyYXkyLnQgLT4gKCdhLCAnYiwgJ2MpIEdlbmFycmF5LnRcbiAgID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgZ2VuYXJyYXlfb2ZfYXJyYXkzOiAoJ2EsICdiLCAnYykgQXJyYXkzLnQgLT4gKCdhLCAnYiwgJ2MpIEdlbmFycmF5LnRcbiAgID0gXCIlaWRlbnRpdHlcIlxubGV0IGFycmF5MF9vZl9nZW5hcnJheSBhID1cbiAgaWYgR2VuYXJyYXkubnVtX2RpbXMgYSA9IDAgdGhlbiBhXG4gIGVsc2UgaW52YWxpZF9hcmcgXCJCaWdhcnJheS5hcnJheTBfb2ZfZ2VuYXJyYXlcIlxubGV0IGFycmF5MV9vZl9nZW5hcnJheSBhID1cbiAgaWYgR2VuYXJyYXkubnVtX2RpbXMgYSA9IDEgdGhlbiBhXG4gIGVsc2UgaW52YWxpZF9hcmcgXCJCaWdhcnJheS5hcnJheTFfb2ZfZ2VuYXJyYXlcIlxubGV0IGFycmF5Ml9vZl9nZW5hcnJheSBhID1cbiAgaWYgR2VuYXJyYXkubnVtX2RpbXMgYSA9IDIgdGhlbiBhXG4gIGVsc2UgaW52YWxpZF9hcmcgXCJCaWdhcnJheS5hcnJheTJfb2ZfZ2VuYXJyYXlcIlxubGV0IGFycmF5M19vZl9nZW5hcnJheSBhID1cbiAgaWYgR2VuYXJyYXkubnVtX2RpbXMgYSA9IDMgdGhlbiBhXG4gIGVsc2UgaW52YWxpZF9hcmcgXCJCaWdhcnJheS5hcnJheTNfb2ZfZ2VuYXJyYXlcIlxuXG5leHRlcm5hbCByZXNoYXBlOlxuICAgKCdhLCAnYiwgJ2MpIEdlbmFycmF5LnQgLT4gaW50IGFycmF5IC0+ICgnYSwgJ2IsICdjKSBHZW5hcnJheS50XG4gICA9IFwiY2FtbF9iYV9yZXNoYXBlXCJcbmxldCByZXNoYXBlXzAgYSA9IHJlc2hhcGUgYSBbfHxdXG5sZXQgcmVzaGFwZV8xIGEgZGltMSA9IHJlc2hhcGUgYSBbfGRpbTF8XVxubGV0IHJlc2hhcGVfMiBhIGRpbTEgZGltMiA9IHJlc2hhcGUgYSBbfGRpbTE7ZGltMnxdXG5sZXQgcmVzaGFwZV8zIGEgZGltMSBkaW0yIGRpbTMgPSByZXNoYXBlIGEgW3xkaW0xO2RpbTI7ZGltM3xdXG5cbigqIEZvcmNlIGNhbWxfYmFfZ2V0X3sxLDIsMyxOfSB0byBiZSBsaW5rZWQgaW4sIHNpbmNlIHdlIGRvbid0IHJlZmVyXG4gICB0byB0aG9zZSBwcmltaXRpdmVzIGRpcmVjdGx5IGluIHRoaXMgZmlsZSAqKVxuXG5sZXQgXyA9XG4gIGxldCBfID0gR2VuYXJyYXkuZ2V0IGluXG4gIGxldCBfID0gQXJyYXkxLmdldCBpblxuICBsZXQgXyA9IEFycmF5Mi5nZXQgaW5cbiAgbGV0IF8gPSBBcnJheTMuZ2V0IGluXG4gICgpXG5cbltAQEBvY2FtbC53YXJuaW5nIFwiLTMyXCJdXG5leHRlcm5hbCBnZXQxOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfYmFfZ2V0XzFcIlxuZXh0ZXJuYWwgZ2V0MjogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2JhX2dldF8yXCJcbmV4dGVybmFsIGdldDM6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9iYV9nZXRfM1wiXG5leHRlcm5hbCBzZXQxOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfYmFfc2V0XzFcIlxuZXh0ZXJuYWwgc2V0MjogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2JhX3NldF8yXCJcbmV4dGVybmFsIHNldDM6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9iYV9zZXRfM1wiXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDIxIEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgdCA9IGluX2NoYW5uZWxcblxudHlwZSBvcGVuX2ZsYWcgPSBTdGRsaWIub3Blbl9mbGFnID1cbiAgfCBPcGVuX3Jkb25seVxuICB8IE9wZW5fd3Jvbmx5XG4gIHwgT3Blbl9hcHBlbmRcbiAgfCBPcGVuX2NyZWF0XG4gIHwgT3Blbl90cnVuY1xuICB8IE9wZW5fZXhjbFxuICB8IE9wZW5fYmluYXJ5XG4gIHwgT3Blbl90ZXh0XG4gIHwgT3Blbl9ub25ibG9ja1xuXG5sZXQgc3RkaW4gPSBTdGRsaWIuc3RkaW5cbmxldCBvcGVuX2JpbiA9IFN0ZGxpYi5vcGVuX2luX2JpblxubGV0IG9wZW5fdGV4dCA9IFN0ZGxpYi5vcGVuX2luXG5sZXQgb3Blbl9nZW4gPSBTdGRsaWIub3Blbl9pbl9nZW5cblxubGV0IHdpdGhfb3BlbiBvcGVuZnVuIHMgZiA9XG4gIGxldCBpYyA9IG9wZW5mdW4gcyBpblxuICBGdW4ucHJvdGVjdCB+ZmluYWxseTooZnVuICgpIC0+IFN0ZGxpYi5jbG9zZV9pbl9ub2VyciBpYylcbiAgICAoZnVuICgpIC0+IGYgaWMpXG5cbmxldCB3aXRoX29wZW5fYmluIHMgZiA9XG4gIHdpdGhfb3BlbiBTdGRsaWIub3Blbl9pbl9iaW4gcyBmXG5cbmxldCB3aXRoX29wZW5fdGV4dCBzIGYgPVxuICB3aXRoX29wZW4gU3RkbGliLm9wZW5faW4gcyBmXG5cbmxldCB3aXRoX29wZW5fZ2VuIGZsYWdzIHBlcm0gcyBmID1cbiAgd2l0aF9vcGVuIChTdGRsaWIub3Blbl9pbl9nZW4gZmxhZ3MgcGVybSkgcyBmXG5cbmxldCBzZWVrID0gU3RkbGliLkxhcmdlRmlsZS5zZWVrX2luXG5sZXQgcG9zID0gU3RkbGliLkxhcmdlRmlsZS5wb3NfaW5cbmxldCBsZW5ndGggPSBTdGRsaWIuTGFyZ2VGaWxlLmluX2NoYW5uZWxfbGVuZ3RoXG5sZXQgY2xvc2UgPSBTdGRsaWIuY2xvc2VfaW5cbmxldCBjbG9zZV9ub2VyciA9IFN0ZGxpYi5jbG9zZV9pbl9ub2VyclxuXG5sZXQgaW5wdXRfY2hhciBpYyA9XG4gIG1hdGNoIFN0ZGxpYi5pbnB1dF9jaGFyIGljIHdpdGhcbiAgfCBjIC0+IFNvbWUgY1xuICB8IGV4Y2VwdGlvbiBFbmRfb2ZfZmlsZSAtPiBOb25lXG5cbmxldCBpbnB1dF9ieXRlIGljID1cbiAgbWF0Y2ggU3RkbGliLmlucHV0X2J5dGUgaWMgd2l0aFxuICB8IG4gLT4gU29tZSBuXG4gIHwgZXhjZXB0aW9uIEVuZF9vZl9maWxlIC0+IE5vbmVcblxubGV0IGlucHV0X2xpbmUgaWMgPVxuICBtYXRjaCBTdGRsaWIuaW5wdXRfbGluZSBpYyB3aXRoXG4gIHwgcyAtPiBTb21lIHNcbiAgfCBleGNlcHRpb24gRW5kX29mX2ZpbGUgLT4gTm9uZVxuXG5sZXQgaW5wdXQgPSBTdGRsaWIuaW5wdXRcblxubGV0IHJlYWxseV9pbnB1dCBpYyBidWYgcG9zIGxlbiA9XG4gIG1hdGNoIFN0ZGxpYi5yZWFsbHlfaW5wdXQgaWMgYnVmIHBvcyBsZW4gd2l0aFxuICB8ICgpIC0+IFNvbWUgKClcbiAgfCBleGNlcHRpb24gRW5kX29mX2ZpbGUgLT4gTm9uZVxuXG5sZXQgcmVhbGx5X2lucHV0X3N0cmluZyBpYyBsZW4gPVxuICBtYXRjaCBTdGRsaWIucmVhbGx5X2lucHV0X3N0cmluZyBpYyBsZW4gd2l0aFxuICB8IHMgLT4gU29tZSBzXG4gIHwgZXhjZXB0aW9uIEVuZF9vZl9maWxlIC0+IE5vbmVcblxuKCogUmVhZCB1cCB0byBbbGVuXSBieXRlcyBpbnRvIFtidWZdLCBzdGFydGluZyBhdCBbb2ZzXS4gUmV0dXJuIHRvdGFsIGJ5dGVzXG4gICByZWFkLiAqKVxubGV0IHJlYWRfdXB0byBpYyBidWYgb2ZzIGxlbiA9XG4gIGxldCByZWMgbG9vcCBvZnMgbGVuID1cbiAgICBpZiBsZW4gPSAwIHRoZW4gb2ZzXG4gICAgZWxzZSBiZWdpblxuICAgICAgbGV0IHIgPSBTdGRsaWIuaW5wdXQgaWMgYnVmIG9mcyBsZW4gaW5cbiAgICAgIGlmIHIgPSAwIHRoZW5cbiAgICAgICAgb2ZzXG4gICAgICBlbHNlXG4gICAgICAgIGxvb3AgKG9mcyArIHIpIChsZW4gLSByKVxuICAgIGVuZFxuICBpblxuICBsb29wIG9mcyBsZW4gLSBvZnNcblxuKCogQmVzdCBlZmZvcnQgYXR0ZW1wdCB0byByZXR1cm4gYSBidWZmZXIgd2l0aCA+PSAob2ZzICsgbikgYnl0ZXMgb2Ygc3RvcmFnZSxcbiAgIGFuZCBzdWNoIHRoYXQgaXQgY29pbmNpZGVzIHdpdGggW2J1Zl0gYXQgaW5kaWNlcyA8IFtvZnNdLlxuXG4gICBUaGUgcmV0dXJuZWQgYnVmZmVyIGlzIGVxdWFsIHRvIFtidWZdIGl0c2VsZiBpZiBpdCBhbHJlYWR5IGhhcyBzdWZmaWNpZW50XG4gICBmcmVlIHNwYWNlLlxuXG4gICBUaGUgcmV0dXJuZWQgYnVmZmVyIG1heSBoYXZlICpmZXdlciogdGhhbiBbb2ZzICsgbl0gYnl0ZXMgb2Ygc3RvcmFnZSBpZiB0aGlzXG4gICBudW1iZXIgaXMgPiBbU3lzLm1heF9zdHJpbmdfbGVuZ3RoXS4gSG93ZXZlciB0aGUgcmV0dXJuZWQgYnVmZmVyIHdpbGxcbiAgICphbHdheXMqIGhhdmUgPiBbb2ZzXSBieXRlcyBvZiBzdG9yYWdlLiBJbiB0aGUgbGltaXRpbmcgY2FzZSB3aGVuIFtvZnMgPSBsZW5cbiAgID0gU3lzLm1heF9zdHJpbmdfbGVuZ3RoXSAoc28gdGhhdCBpdCBpcyBub3QgcG9zc2libGUgdG8gcmVzaXplIHRoZSBidWZmZXIgYXRcbiAgIGFsbCksIGFuIGV4Y2VwdGlvbiBpcyByYWlzZWQuICopXG5cbmxldCBlbnN1cmUgYnVmIG9mcyBuID1cbiAgbGV0IGxlbiA9IEJ5dGVzLmxlbmd0aCBidWYgaW5cbiAgaWYgbGVuID49IG9mcyArIG4gdGhlbiBidWZcbiAgZWxzZSBiZWdpblxuICAgIGxldCBuZXdfbGVuID0gcmVmIGxlbiBpblxuICAgIHdoaWxlICFuZXdfbGVuIDwgb2ZzICsgbiBkb1xuICAgICAgbmV3X2xlbiA6PSAyICogIW5ld19sZW4gKyAxXG4gICAgZG9uZTtcbiAgICBsZXQgbmV3X2xlbiA9ICFuZXdfbGVuIGluXG4gICAgbGV0IG5ld19sZW4gPVxuICAgICAgaWYgbmV3X2xlbiA8PSBTeXMubWF4X3N0cmluZ19sZW5ndGggdGhlblxuICAgICAgICBuZXdfbGVuXG4gICAgICBlbHNlIGlmIG9mcyA8IFN5cy5tYXhfc3RyaW5nX2xlbmd0aCB0aGVuXG4gICAgICAgIFN5cy5tYXhfc3RyaW5nX2xlbmd0aFxuICAgICAgZWxzZVxuICAgICAgICBmYWlsd2l0aCBcIkluX2NoYW5uZWwuaW5wdXRfYWxsOiBjaGFubmVsIGNvbnRlbnQgXFxcbiAgICAgICAgICAgICAgICAgIGlzIGxhcmdlciB0aGFuIG1heGltdW0gc3RyaW5nIGxlbmd0aFwiXG4gICAgaW5cbiAgICBsZXQgbmV3X2J1ZiA9IEJ5dGVzLmNyZWF0ZSBuZXdfbGVuIGluXG4gICAgQnl0ZXMuYmxpdCBidWYgMCBuZXdfYnVmIDAgb2ZzO1xuICAgIG5ld19idWZcbiAgZW5kXG5cbmxldCBpbnB1dF9hbGwgaWMgPVxuICBsZXQgY2h1bmtfc2l6ZSA9IDY1NTM2IGluICgqIElPX0JVRkZFUl9TSVpFICopXG4gIGxldCBpbml0aWFsX3NpemUgPVxuICAgIHRyeVxuICAgICAgU3RkbGliLmluX2NoYW5uZWxfbGVuZ3RoIGljIC0gU3RkbGliLnBvc19pbiBpY1xuICAgIHdpdGggU3lzX2Vycm9yIF8gLT5cbiAgICAgIC0xXG4gIGluXG4gIGxldCBpbml0aWFsX3NpemUgPSBpZiBpbml0aWFsX3NpemUgPCAwIHRoZW4gY2h1bmtfc2l6ZSBlbHNlIGluaXRpYWxfc2l6ZSBpblxuICBsZXQgaW5pdGlhbF9zaXplID1cbiAgICBpZiBpbml0aWFsX3NpemUgPD0gU3lzLm1heF9zdHJpbmdfbGVuZ3RoIHRoZW5cbiAgICAgIGluaXRpYWxfc2l6ZVxuICAgIGVsc2VcbiAgICAgIFN5cy5tYXhfc3RyaW5nX2xlbmd0aFxuICBpblxuICBsZXQgYnVmID0gQnl0ZXMuY3JlYXRlIGluaXRpYWxfc2l6ZSBpblxuICBsZXQgbnJlYWQgPSByZWFkX3VwdG8gaWMgYnVmIDAgaW5pdGlhbF9zaXplIGluXG4gIGlmIG5yZWFkIDwgaW5pdGlhbF9zaXplIHRoZW4gKCogRU9GIHJlYWNoZWQsIGJ1ZmZlciBwYXJ0aWFsbHkgZmlsbGVkICopXG4gICAgQnl0ZXMuc3ViX3N0cmluZyBidWYgMCBucmVhZFxuICBlbHNlIGJlZ2luICgqIG5yZWFkID0gaW5pdGlhbF9zaXplLCBtYXliZSBFT0YgcmVhY2hlZCAqKVxuICAgIG1hdGNoIFN0ZGxpYi5pbnB1dF9jaGFyIGljIHdpdGhcbiAgICB8IGV4Y2VwdGlvbiBFbmRfb2ZfZmlsZSAtPlxuICAgICAgICAoKiBFT0YgcmVhY2hlZCwgYnVmZmVyIGlzIGNvbXBsZXRlbHkgZmlsbGVkICopXG4gICAgICAgIEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgYnVmXG4gICAgfCBjIC0+XG4gICAgICAgICgqIEVPRiBub3QgcmVhY2hlZCAqKVxuICAgICAgICBsZXQgcmVjIGxvb3AgYnVmIG9mcyA9XG4gICAgICAgICAgbGV0IGJ1ZiA9IGVuc3VyZSBidWYgb2ZzIGNodW5rX3NpemUgaW5cbiAgICAgICAgICBsZXQgcmVtID0gQnl0ZXMubGVuZ3RoIGJ1ZiAtIG9mcyBpblxuICAgICAgICAgICgqIFtyZW1dIGNhbiBiZSA8IFtjaHVua19zaXplXSBpZiBidWZmZXIgc2l6ZSBjbG9zZSB0b1xuICAgICAgICAgICAgIFtTeXMubWF4X3N0cmluZ19sZW5ndGhdICopXG4gICAgICAgICAgbGV0IHIgPSByZWFkX3VwdG8gaWMgYnVmIG9mcyByZW0gaW5cbiAgICAgICAgICBpZiByIDwgcmVtIHRoZW4gKCogRU9GIHJlYWNoZWQgKilcbiAgICAgICAgICAgIEJ5dGVzLnN1Yl9zdHJpbmcgYnVmIDAgKG9mcyArIHIpXG4gICAgICAgICAgZWxzZSAoKiByID0gcmVtICopXG4gICAgICAgICAgICBsb29wIGJ1ZiAob2ZzICsgcmVtKVxuICAgICAgICBpblxuICAgICAgICBsZXQgYnVmID0gZW5zdXJlIGJ1ZiBucmVhZCAoY2h1bmtfc2l6ZSArIDEpIGluXG4gICAgICAgIEJ5dGVzLnNldCBidWYgbnJlYWQgYztcbiAgICAgICAgbG9vcCBidWYgKG5yZWFkICsgMSlcbiAgZW5kXG5cbmxldCBzZXRfYmluYXJ5X21vZGUgPSBTdGRsaWIuc2V0X2JpbmFyeV9tb2RlX2luXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDIxIEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgdCA9IG91dF9jaGFubmVsXG5cbnR5cGUgb3Blbl9mbGFnID0gU3RkbGliLm9wZW5fZmxhZyA9XG4gIHwgT3Blbl9yZG9ubHlcbiAgfCBPcGVuX3dyb25seVxuICB8IE9wZW5fYXBwZW5kXG4gIHwgT3Blbl9jcmVhdFxuICB8IE9wZW5fdHJ1bmNcbiAgfCBPcGVuX2V4Y2xcbiAgfCBPcGVuX2JpbmFyeVxuICB8IE9wZW5fdGV4dFxuICB8IE9wZW5fbm9uYmxvY2tcblxubGV0IHN0ZG91dCA9IFN0ZGxpYi5zdGRvdXRcbmxldCBzdGRlcnIgPSBTdGRsaWIuc3RkZXJyXG5sZXQgb3Blbl9iaW4gPSBTdGRsaWIub3Blbl9vdXRfYmluXG5sZXQgb3Blbl90ZXh0ID0gU3RkbGliLm9wZW5fb3V0XG5sZXQgb3Blbl9nZW4gPSBTdGRsaWIub3Blbl9vdXRfZ2VuXG5cbmxldCB3aXRoX29wZW4gb3BlbmZ1biBzIGYgPVxuICBsZXQgb2MgPSBvcGVuZnVuIHMgaW5cbiAgRnVuLnByb3RlY3QgfmZpbmFsbHk6KGZ1biAoKSAtPiBTdGRsaWIuY2xvc2Vfb3V0X25vZXJyIG9jKVxuICAgIChmdW4gKCkgLT4gZiBvYylcblxubGV0IHdpdGhfb3Blbl9iaW4gcyBmID1cbiAgd2l0aF9vcGVuIFN0ZGxpYi5vcGVuX291dF9iaW4gcyBmXG5cbmxldCB3aXRoX29wZW5fdGV4dCBzIGYgPVxuICB3aXRoX29wZW4gU3RkbGliLm9wZW5fb3V0IHMgZlxuXG5sZXQgd2l0aF9vcGVuX2dlbiBmbGFncyBwZXJtIHMgZiA9XG4gIHdpdGhfb3BlbiAoU3RkbGliLm9wZW5fb3V0X2dlbiBmbGFncyBwZXJtKSBzIGZcblxubGV0IHNlZWsgPSBTdGRsaWIuTGFyZ2VGaWxlLnNlZWtfb3V0XG5sZXQgcG9zID0gU3RkbGliLkxhcmdlRmlsZS5wb3Nfb3V0XG5sZXQgbGVuZ3RoID0gU3RkbGliLkxhcmdlRmlsZS5vdXRfY2hhbm5lbF9sZW5ndGhcbmxldCBjbG9zZSA9IFN0ZGxpYi5jbG9zZV9vdXRcbmxldCBjbG9zZV9ub2VyciA9IFN0ZGxpYi5jbG9zZV9vdXRfbm9lcnJcbmxldCBmbHVzaCA9IFN0ZGxpYi5mbHVzaFxubGV0IGZsdXNoX2FsbCA9IFN0ZGxpYi5mbHVzaF9hbGxcbmxldCBvdXRwdXRfY2hhciA9IFN0ZGxpYi5vdXRwdXRfY2hhclxubGV0IG91dHB1dF9ieXRlID0gU3RkbGliLm91dHB1dF9ieXRlXG5sZXQgb3V0cHV0X3N0cmluZyA9IFN0ZGxpYi5vdXRwdXRfc3RyaW5nXG5sZXQgb3V0cHV0X2J5dGVzID0gU3RkbGliLm91dHB1dF9ieXRlc1xubGV0IG91dHB1dCA9IFN0ZGxpYi5vdXRwdXRcbmxldCBvdXRwdXRfc3Vic3RyaW5nID0gU3RkbGliLm91dHB1dF9zdWJzdHJpbmdcbmxldCBzZXRfYmluYXJ5X21vZGUgPSBTdGRsaWIuc2V0X2JpbmFyeV9tb2RlX291dFxuXG5leHRlcm5hbCBzZXRfYnVmZmVyZWQgOiB0IC0+IGJvb2wgLT4gdW5pdCA9IFwiY2FtbF9tbF9zZXRfYnVmZmVyZWRcIlxuXG5leHRlcm5hbCBpc19idWZmZXJlZCA6IHQgLT4gYm9vbCA9IFwiY2FtbF9tbF9pc19idWZmZXJlZFwiXG4iLCIoKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgRGF0ZXNfY2FsYyBsaWJyYXJ5LiBDb3B5cmlnaHQgKEMpIDIwMjIgSW5yaWEsXG4gICBjb250cmlidXRvcnM6IERlbmlzIE1lcmlnb3V4IDxkZW5pcy5tZXJpZ291eEBpbnJpYS5mcj4sIEF5bWVyaWMgRnJvbWhlcnpcbiAgIDxheW1lcmljLmZyb21oZXJ6QGlucmlhLmZyPiwgUmFwaGHDq2wgTW9uYXQgPHJhcGhhZWwubW9uYXRAbGlwNi5mcj5cblxuICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3RcbiAgIHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mXG4gICB0aGUgTGljZW5zZSBhdFxuXG4gICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUXG4gICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGVcbiAgIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyXG4gICB0aGUgTGljZW5zZS4gKilcblxuW0BAQHdhcm5pbmcgXCItMjdcIl1cblxuXG50eXBlIGRhdGUgPSB7IHllYXIgOiBpbnQ7IG1vbnRoIDogaW50OyBkYXkgOiBpbnQgfVxuKCoqIEEgdmFsaWQgZGF0ZSBpbiB0aGUgc3RhbmRhcmQgR3JlZ29yaWFuIGNhbGVuZGFyLiAqKVxuXG50eXBlIHBlcmlvZCA9IHsgeWVhcnMgOiBpbnQ7IG1vbnRocyA6IGludDsgZGF5cyA6IGludCB9XG4oKiogQSBwZXJpb2QgY2FuIGJlIGFueSBudW1iZXIgYW5kIGNvbWJpbmF0aW9uIG9mIGRheXMsIG1vbnRocywgeWVhcnMuICopXG5cbmV4Y2VwdGlvbiBJbnZhbGlkRGF0ZVxuZXhjZXB0aW9uIEFtYmlndW91c0NvbXB1dGF0aW9uXG5cbnR5cGUgZGF0ZV9yb3VuZGluZyA9XG4gIHwgUm91bmRVcFxuICB8IFJvdW5kRG93blxuICB8IEFib3J0T25Sb3VuZFxuICAgICAgKCoqIFdoZW4gY2hvb3NpbmcgW0Fib3J0T25Sb3VuZF0sIGZ1bmN0aW9ucyBtYXkgcmFpc2VcbiAgICAgICAgICBbQW1iaWd1b3VzQ29tcHV0YXRpb25dLiAqKVxuXG4oKiogezIgRnVuY3Rpb25zIG9uIHBlcmlvZHN9KilcbmxldCBmb3JtYXRfcGVyaW9kIChmbXQgOiBGb3JtYXQuZm9ybWF0dGVyKSAocCA6IHBlcmlvZCkgOiB1bml0ID1cbiAgRm9ybWF0LmZwcmludGYgZm10IFwiWyVkIHllYXJzLCAlZCBtb250aHMsICVkIGRheXNdXCIgcC55ZWFycyBwLm1vbnRocyBwLmRheXNcblxubGV0IG1ha2VfcGVyaW9kIH4oeWVhcnMgOiBpbnQpIH4obW9udGhzIDogaW50KSB+KGRheXMgOiBpbnQpIDogcGVyaW9kID1cbiAgeyB5ZWFyczsgbW9udGhzOyBkYXlzIH1cblxubGV0IGFkZF9wZXJpb2RzIChkMSA6IHBlcmlvZCkgKGQyIDogcGVyaW9kKSA6IHBlcmlvZCA9XG4gIHtcbiAgICB5ZWFycyA9IGQxLnllYXJzICsgZDIueWVhcnM7XG4gICAgbW9udGhzID0gZDEubW9udGhzICsgZDIubW9udGhzO1xuICAgIGRheXMgPSBkMS5kYXlzICsgZDIuZGF5cztcbiAgfVxuXG5sZXQgc3ViX3BlcmlvZHMgKGQxIDogcGVyaW9kKSAoZDIgOiBwZXJpb2QpIDogcGVyaW9kID1cbiAge1xuICAgIHllYXJzID0gZDEueWVhcnMgLSBkMi55ZWFycztcbiAgICBtb250aHMgPSBkMS5tb250aHMgLSBkMi5tb250aHM7XG4gICAgZGF5cyA9IGQxLmRheXMgLSBkMi5kYXlzO1xuICB9XG5cbmxldCBtdWxfcGVyaW9kIChkMSA6IHBlcmlvZCkgKG0gOiBpbnQpIDogcGVyaW9kID1cbiAgeyB5ZWFycyA9IGQxLnllYXJzICogbTsgbW9udGhzID0gZDEubW9udGhzICogbTsgZGF5cyA9IGQxLmRheXMgKiBtIH1cblxuKCoqIEByYWlzZSBbQW1iaWd1b3VzQ29tcHV0YXRpb25dXG4gICAgICB3aGVuIHRoZSBwZXJpb2QgaXMgYW55dGhpbmcgZWxzZSB0aGFuIGEgbnVtYmVyIG9mIGRheXMuICopXG5sZXQgcGVyaW9kX3RvX2RheXMgKHAgOiBwZXJpb2QpIDogaW50ID1cbiAgaWYgcC55ZWFycyA8PiAwIHx8IHAubW9udGhzIDw+IDAgdGhlbiByYWlzZSBBbWJpZ3VvdXNDb21wdXRhdGlvbiBlbHNlIHAuZGF5c1xuXG4oKiogezIgRnVuY3Rpb25zIG9uIGRhdGVzfSopXG5cbmxldCBpc19sZWFwX3llYXIgKHllYXIgOiBpbnQpIDogYm9vbCA9XG4gIHllYXIgbW9kIDQwMCA9IDAgfHwgKHllYXIgbW9kIDQgPSAwICYmIHllYXIgbW9kIDEwMCA8PiAwKVxuXG4oKiogQHJhaXNlIFtJbnZhbGlkRGF0ZV0qKVxubGV0IGRheXNfaW5fbW9udGggfihtb250aCA6IGludCkgfihpc19sZWFwX3llYXIgOiBib29sKSA6IGludCA9XG4gIG1hdGNoIG1vbnRoIHdpdGhcbiAgfCAxIHwgMyB8IDUgfCA3IHwgOCB8IDEwIHwgMTIgLT4gMzFcbiAgfCA0IHwgNiB8IDkgfCAxMSAtPiAzMFxuICB8IDIgLT4gaWYgaXNfbGVhcF95ZWFyIHRoZW4gMjkgZWxzZSAyOFxuICB8IF8gLT4gcmFpc2UgSW52YWxpZERhdGVcblxubGV0IGlzX3ZhbGlkX2RhdGUgKGQgOiBkYXRlKSA6IGJvb2wgPVxuICB0cnlcbiAgICBkLmRheSA+PSAxXG4gICAgJiYgZC5kYXkgPD0gZGF5c19pbl9tb250aCB+bW9udGg6ZC5tb250aCB+aXNfbGVhcF95ZWFyOihpc19sZWFwX3llYXIgZC55ZWFyKVxuICB3aXRoIEludmFsaWREYXRlIC0+IGZhbHNlXG5cbigqKiBAcmFpc2UgW0ludmFsaWREYXRlXSopXG5sZXQgbWFrZV9kYXRlIH4oeWVhciA6IGludCkgfihtb250aCA6IGludCkgfihkYXkgOiBpbnQpIDogZGF0ZSA9XG4gIGxldCBkID0geyB5ZWFyOyBtb250aDsgZGF5IH0gaW5cbiAgaWYgaXNfdmFsaWRfZGF0ZSBkIHRoZW4gZCBlbHNlIHJhaXNlIEludmFsaWREYXRlXG5cbigqKiBSZXR1cm5zIG5ldyBbeWVhciwgbW9udGhdLiBQcmVjb25kaXRpb246IFsxIDw9IG1vbnRoIDw9IDEyXSAqKVxubGV0IHJlYyBhZGRfbW9udGhzX3RvX2ZpcnN0X29mX21vbnRoX2RhdGVcbiAgICB+KHllYXIgOiBpbnQpXG4gICAgfihtb250aCA6IGludClcbiAgICB+KG1vbnRocyA6IGludCkgOiBpbnQgKiBpbnQgPVxuICBsZXQgbmV3X21vbnRoID0gbW9udGggKyBtb250aHMgaW5cbiAgaWYgMSA8PSBuZXdfbW9udGggJiYgbmV3X21vbnRoIDw9IDEyIHRoZW4geWVhciwgbmV3X21vbnRoXG4gIGVsc2UgaWYgbmV3X21vbnRoID4gMTIgdGhlblxuICAgIGFkZF9tb250aHNfdG9fZmlyc3Rfb2ZfbW9udGhfZGF0ZSB+eWVhcjooeWVhciArIDEpIH5tb250aFxuICAgICAgfm1vbnRoczoobW9udGhzIC0gMTIpXG4gIGVsc2VcbiAgICAoKiBuZXdfbW9udGggPD0gMCAqKVxuICAgIGFkZF9tb250aHNfdG9fZmlyc3Rfb2ZfbW9udGhfZGF0ZSB+eWVhcjooeWVhciAtIDEpIH5tb250aFxuICAgICAgfm1vbnRoczoobW9udGhzICsgMTIpXG5cbigqIElmIHRoZSBkYXRlIGlzIHZhbGlkLCBkb2VzIG5vdGhpbmcuIFdlIGV4cGVjdCB0aGUgbW9udGggbnVtYmVyIHRvIGJlIGFsd2F5c1xuICAgdmFsaWQgd2hlbiBjYWxsaW5nIHRoaXMuIElmIHRoZSBkYXRlIGlzIGludmFsaWQgZHVlIHRvIHRoZSBkYXkgbnVtYmVyLCB0aGVuXG4gICB0aGlzIGZ1bmN0aW9uIHJvdW5kcyBkb3duOiBpZiB0aGUgZGF5IG51bWJlciBpcyA+PSBkYXlzX2luX21vbnRoLCB0byB0aGUgbGFzdFxuICAgZGF5IG9mIHRoZSBjdXJyZW50IG1vbnRoLiAqKVxubGV0IHByZXZfdmFsaWRfZGF0ZSAoZCA6IGRhdGUpIDogZGF0ZSA9XG4gIGFzc2VydCAoMSA8PSBkLm1vbnRoICYmIGQubW9udGggPD0gMTIpO1xuICBhc3NlcnQgKDEgPD0gZC5kYXkgJiYgZC5kYXkgPD0gMzEpO1xuICBpZiBpc192YWxpZF9kYXRlIGQgdGhlbiBkXG4gIGVsc2VcbiAgICB7XG4gICAgICBkIHdpdGhcbiAgICAgIGRheSA9IGRheXNfaW5fbW9udGggfm1vbnRoOmQubW9udGggfmlzX2xlYXBfeWVhcjooaXNfbGVhcF95ZWFyIGQueWVhcik7XG4gICAgfVxuXG4oKiBJZiB0aGUgZGF0ZSBpcyB2YWxpZCwgZG9lcyBub3RoaW5nLiBXZSBleHBlY3QgdGhlIG1vbnRoIG51bWJlciB0byBiZSBhbHdheXNcbiAgIHZhbGlkIHdoZW4gY2FsbGluZyB0aGlzLiBJZiB0aGUgZGF0ZSBpcyBpbnZhbGlkIGR1ZSB0byB0aGUgZGF5IG51bWJlciwgdGhlblxuICAgdGhpcyBmdW5jdGlvbiByb3VuZHMgZG93bjogaWYgdGhlIGRheSBudW1iZXIgaXMgPj0gZGF5c19pbl9tb250aCwgdG8gdGhlXG4gICBmaXJzdCBkYXkgb2YgdGhlIG5leHQgbW9udGguICopXG5sZXQgbmV4dF92YWxpZF9kYXRlIChkIDogZGF0ZSkgOiBkYXRlID1cbiAgYXNzZXJ0ICgxIDw9IGQubW9udGggJiYgZC5tb250aCA8PSAxMik7XG4gIGFzc2VydCAoMSA8PSBkLmRheSAmJiBkLmRheSA8PSAzMSk7XG4gIGlmIGlzX3ZhbGlkX2RhdGUgZCB0aGVuIGRcbiAgZWxzZVxuICAgIGxldCBuZXdfeWVhciwgbmV3X21vbnRoID1cbiAgICAgIGFkZF9tb250aHNfdG9fZmlyc3Rfb2ZfbW9udGhfZGF0ZSB+eWVhcjpkLnllYXIgfm1vbnRoOmQubW9udGggfm1vbnRoczoxXG4gICAgaW5cbiAgICB7IHllYXIgPSBuZXdfeWVhcjsgbW9udGggPSBuZXdfbW9udGg7IGRheSA9IDEgfVxuXG5sZXQgcm91bmRfZGF0ZSB+KHJvdW5kIDogZGF0ZV9yb3VuZGluZykgKG5ld19kYXRlIDogZGF0ZSkgPVxuICBpZiBpc192YWxpZF9kYXRlIG5ld19kYXRlIHRoZW4gbmV3X2RhdGVcbiAgZWxzZVxuICAgIG1hdGNoIHJvdW5kIHdpdGhcbiAgICB8IEFib3J0T25Sb3VuZCAtPiByYWlzZSBBbWJpZ3VvdXNDb21wdXRhdGlvblxuICAgIHwgUm91bmREb3duIC0+IHByZXZfdmFsaWRfZGF0ZSBuZXdfZGF0ZVxuICAgIHwgUm91bmRVcCAtPiBuZXh0X3ZhbGlkX2RhdGUgbmV3X2RhdGVcblxuKCoqIFRoaXMgZnVuY3Rpb24gaXMgb25seSBldmVyIGNhbGxlZCBmcm9tIGBhZGRfZGF0ZXNgIGJlbG93LlxuICAgIEhlbmNlLCBhbnkgY2FsbCB0byBgYWRkX2RhdGVzX3llYXJzYCB3aWxsIGJlIGZvbGxvd2VkIGJ5IGEgY2FsbFxuICAgIHRvIGBhZGRfZGF0ZXNfbW9udGhgLiBXZSB0aGVyZWZvcmUgcGVyZm9ybSBhIHNpbmdsZSByb3VuZGluZ1xuICAgIGluIGBhZGRfZGF0ZXNfbW9udGhgLCB0byBhdm9pZCBpbnRyb2R1Y2luZyBhZGRpdGlvbmFsIGltcHJlY2lzaW9uIGhlcmUsXG4gICAgYW5kIHRvIGVuc3VyZSB0aGF0IGFkZGluZyBuIHllYXJzICsgbSBtb250aHMgaXMgYWx3YXlzIGVxdWl2YWxlbnQgdG9cbiAgICBhZGRpbmcgKDEybiArIG0pIG1vbnRocyAqKVxubGV0IGFkZF9kYXRlc195ZWFycyB+KHJvdW5kIDogZGF0ZV9yb3VuZGluZykgKGQgOiBkYXRlKSAoeWVhcnMgOiBpbnQpIDogZGF0ZSA9XG4gIHsgZCB3aXRoIHllYXIgPSBkLnllYXIgKyB5ZWFycyB9XG5cbmxldCBhZGRfZGF0ZXNfbW9udGggfihyb3VuZCA6IGRhdGVfcm91bmRpbmcpIChkIDogZGF0ZSkgKG1vbnRocyA6IGludCkgOiBkYXRlID1cbiAgbGV0IG5ld195ZWFyLCBuZXdfbW9udGggPVxuICAgIGFkZF9tb250aHNfdG9fZmlyc3Rfb2ZfbW9udGhfZGF0ZSB+eWVhcjpkLnllYXIgfm1vbnRoOmQubW9udGggfm1vbnRoc1xuICBpblxuICBsZXQgbmV3X2RhdGUgPSB7IGQgd2l0aCB5ZWFyID0gbmV3X3llYXI7IG1vbnRoID0gbmV3X21vbnRoIH0gaW5cbiAgcm91bmRfZGF0ZSB+cm91bmQgbmV3X2RhdGVcblxubGV0IHJlYyBhZGRfZGF0ZXNfZGF5cyAoZCA6IGRhdGUpIChkYXlzIDogaW50KSA9XG4gICgqIEhlbGxvLCBkZWFyIHJlYWRlciEgQnVja2xlIHVwIGJlY2F1c2UgaXQgd2lsbCBiZSBhIGhhcmQgcmlkZS4gVGhlIGZpcnN0XG4gICAgIHRoaW5nIHRvIGRvIGhlcmUgaXMgdG8gcmV0cmlldmUgaG93IG1hbnkgZGF5cyB0aGVyZSBhcmUgaW4gdGhlIGN1cnJlbnRcbiAgICAgbW9udGggb2YgW2RdLiAqKVxuICBsZXQgZGF5c19pbl9kX21vbnRoID1cbiAgICBkYXlzX2luX21vbnRoIH5tb250aDpkLm1vbnRoIH5pc19sZWFwX3llYXI6KGlzX2xlYXBfeWVhciBkLnllYXIpXG4gIGluXG4gICgqIE5vdywgd2UgY2FzZSBhbmFseXplIG9mIHRoZSBzaXR1YXRpb24uIFRvIGRvIHRoYXQsIHdlIGFkZCB0aGUgY3VycmVudCBkYXlzXG4gICAgIG9mIHRoZSBtb250aCB3aXRoIFtkYXlzXSwgYW5kIHNlZSB3aGF0IGhhcHBlbnMuIEJld2FyZSwgW2RheXNdIGlzIGFsZ2VicmFpY1xuICAgICBhbmQgY2FuIGJlIG5lZ2F0aXZlISAqKVxuICBsZXQgbmV3X2RheSA9IGQuZGF5ICsgZGF5cyBpblxuICBpZiAxIDw9IG5ld19kYXkgJiYgbmV3X2RheSA8PSBkYXlzX2luX2RfbW9udGggdGhlblxuICAgICgqIFRoZSBmaXJzdCBjYXNlIGlzIHRoZSBlYXN5IG9uZTogd2hlbiB5b3UgYWRkIFtkYXlzXSwgdGhlIG5ldyBkYXkga2VlcHNcbiAgICAgICBiZWluZyBhIHZhbGlkIGRheSBpbiB0aGUgY3VycmVudCBtb250aC4gQWxsIGlzIGdvb2QsIHdlIHNpbXBseSB3YXJwIHRvXG4gICAgICAgdGhhdCBuZXcgZGF0ZSB3aXRob3V0IGFueSBmdXJ0aGVyIGNoYW5nZXMuICopXG4gICAgeyBkIHdpdGggZGF5ID0gbmV3X2RheSB9XG4gIGVsc2UgaWYgbmV3X2RheSA+PSBkYXlzX2luX2RfbW9udGggdGhlblxuICAgICgqIE5vdywgd2UgZGVhbCB3aXRoIHRoZSBjYXNlIHdoZXJlIHRoZXJlIGlzIGFuIG92ZXJmbG93IDogeW91IGhhdmUgYWRkZWRcbiAgICAgICB0b28gbWFueSBkYXlzIGFuZCB0aGUgY3VycmVudCBtb250aCBjYW5ub3QgaGFuZGxlIHRoZW0gYW55IG1vcmUuIFRoZVxuICAgICAgIHN0cmF0ZWd5IGhlcmUgaXMgdG8gZmlsbCB0aGUgY3VycmVudCBtb250aCwgYW5kIGxldCB0aGUgbmV4dCBtb250aCBoYW5kbGVcbiAgICAgICB0aGUgc2l0dWF0aW9uIHZpYSBhIHJlY3Vyc2l2ZSBjYWxsLiAqKVxuICAgIGxldCBuZXdfeWVhciwgbmV3X21vbnRoID1cbiAgICAgIGFkZF9tb250aHNfdG9fZmlyc3Rfb2ZfbW9udGhfZGF0ZSB+eWVhcjpkLnllYXIgfm1vbnRoOmQubW9udGggfm1vbnRoczoxXG4gICAgaW5cbiAgICBhZGRfZGF0ZXNfZGF5c1xuICAgICAgKCogV2Ugd2FycCB0byB0aGUgZmlyc3QgZGF5IG9mIHRoZSBuZXh0IG1vbnRoISAqKVxuICAgICAgeyB5ZWFyID0gbmV3X3llYXI7IG1vbnRoID0gbmV3X21vbnRoOyBkYXkgPSAxIH1cbiAgICAgICgqIE5vdyB3ZSBjb21wdXRlIGhvdyBtYW55IGRheXMgd2Ugc3RpbGwgaGF2ZSBsZWZ0IHRvIGFkZC4gQmVjYXVzZSB3ZSBoYXZlXG4gICAgICAgICB3YXJwZWQgdG8gdGhlIG5leHQgbW9udGgsIHdlIGFscmVhZHkgaGF2ZSBhZGRlZCB0aGUgcmVzdCBvZiB0aGUgZGF5cyBpblxuICAgICAgICAgdGhlIGN1cnJlbnQgbW9udGg6IFtkYXlzX2luX2RfbW9udGggLSBkLmRheV0uIEJ1dCB0aGVuIHdlIHN3aXRjaFxuICAgICAgICAgbW9udGhzLCBhbmQgdGhhdCBjb3JyZXNwb25kcyB0byBhZGRpbmcgYW5vdGhlciBkYXkuICopXG4gICAgICAoZGF5cyAtIChkYXlzX2luX2RfbW9udGggLSBkLmRheSkgLSAxKVxuICBlbHNlXG4gICAgKCogVGhlIGxhc3QgY2FzZSBpcyBzeW1tZXRyaWNhbCwgd2Ugc3Vic3RyYWN0ZWQgdG9vIG1hbnkgZGF5cyBhbmQgdGhlXG4gICAgICAgY3VycmVudCBtb250aCBjYW4ndCBoYW5kbGUgaXQuIFNvIHdlIHdhcnAgdG8gdGhlIHByZXZpb3VzIG1vbnRoIGFuZCBsZXQgYVxuICAgICAgIHJlY3Vyc2l2ZSBjYWxsIGhhbmRsZSB0aGUgc2l0dWF0aW9uIGZyb20gdGhlcmUuICopXG4gICAgbGV0IG5ld195ZWFyLCBuZXdfbW9udGggPVxuICAgICAgYWRkX21vbnRoc190b19maXJzdF9vZl9tb250aF9kYXRlIH55ZWFyOmQueWVhciB+bW9udGg6ZC5tb250aCB+bW9udGhzOigtMSlcbiAgICBpblxuICAgIGFkZF9kYXRlc19kYXlzXG4gICAgICAoKiBXZSB3YXJwIHRvIHRoZSBsYXN0IGRheSBvZiB0aGUgcHJldmlvdXMgbW9udGguICopXG4gICAgICB7XG4gICAgICAgIHllYXIgPSBuZXdfeWVhcjtcbiAgICAgICAgbW9udGggPSBuZXdfbW9udGg7XG4gICAgICAgIGRheSA9XG4gICAgICAgICAgZGF5c19pbl9tb250aCB+bW9udGg6bmV3X21vbnRoIH5pc19sZWFwX3llYXI6KGlzX2xlYXBfeWVhciBuZXdfeWVhcik7XG4gICAgICB9XG4gICAgICAoKiBXaGF0IHJlbWFpbnMgdG8gYmUgc3Vic3RyYWN0ZWQgKGFzIFtkYXlzXSBpcyBuZWdhdGl2ZSkgaGFzIHRvIGJlXG4gICAgICAgICBkaW1pbmlzaGVkIGJ5IHRoZSBudW1iZXIgb2YgZGF5cyBvZiB0aGUgZGF0ZSBpbiB0aGUgY3VycmVudCBtb250aC4gKilcbiAgICAgIChkYXlzICsgZC5kYXkpXG5cbigqKiBAcmFpc2UgW0FtYmlndW91c0NvbXB1dGF0aW9uXSAqKVxubGV0IGFkZF9kYXRlcyA/KHJvdW5kIDogZGF0ZV9yb3VuZGluZyA9IEFib3J0T25Sb3VuZCkgKGQgOiBkYXRlKSAocCA6IHBlcmlvZCkgOlxuICAgIGRhdGUgPVxuICBsZXQgZCA9IGFkZF9kYXRlc195ZWFycyB+cm91bmQgZCBwLnllYXJzIGluXG4gIGxldCBkID0gYWRkX2RhdGVzX21vbnRoIH5yb3VuZCBkIHAubW9udGhzIGluXG4gIGxldCBkID0gYWRkX2RhdGVzX2RheXMgZCBwLmRheXMgaW5cbiAgZFxuXG5sZXQgY29tcGFyZV9kYXRlcyAoZDEgOiBkYXRlKSAoZDIgOiBkYXRlKSA6IGludCA9XG4gIGlmIEludC5jb21wYXJlIGQxLnllYXIgZDIueWVhciA9IDAgdGhlblxuICAgIGlmIEludC5jb21wYXJlIGQxLm1vbnRoIGQyLm1vbnRoID0gMCB0aGVuIEludC5jb21wYXJlIGQxLmRheSBkMi5kYXlcbiAgICBlbHNlIEludC5jb21wYXJlIGQxLm1vbnRoIGQyLm1vbnRoXG4gIGVsc2UgSW50LmNvbXBhcmUgZDEueWVhciBkMi55ZWFyXG5cbigqKiBSZXNwZWN0cyBJU084NjAxIGZvcm1hdC4gKilcbmxldCBmb3JtYXRfZGF0ZSAoZm10IDogRm9ybWF0LmZvcm1hdHRlcikgKGQgOiBkYXRlKSA6IHVuaXQgPVxuICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlMDRkLSUwMmQtJTAyZFwiIGQueWVhciBkLm1vbnRoIGQuZGF5XG5cbmxldCBmaXJzdF9kYXlfb2ZfbW9udGggKGQgOiBkYXRlKSA6IGRhdGUgPVxuICBhc3NlcnQoaXNfdmFsaWRfZGF0ZSBkKTtcbiAgbWFrZV9kYXRlIH55ZWFyOmQueWVhciB+bW9udGg6ZC5tb250aCB+ZGF5OjFcblxubGV0IGxhc3RfZGF5X29mX21vbnRoIChkIDogZGF0ZSkgOiBkYXRlID1cbiAgYXNzZXJ0KGlzX3ZhbGlkX2RhdGUgZCk7XG4gIGxldCBkYXlzX21vbnRoID0gZGF5c19pbl9tb250aCB+bW9udGg6ZC5tb250aCB+aXNfbGVhcF95ZWFyOihpc19sZWFwX3llYXIgZC55ZWFyKSBpblxuICBtYWtlX2RhdGUgfnllYXI6ZC55ZWFyIH5tb250aDpkLm1vbnRoIH5kYXk6ZGF5c19tb250aFxuXG5sZXQgbmVnX3BlcmlvZCAocCA6IHBlcmlvZCkgOiBwZXJpb2QgPVxuICB7IHllYXJzID0gLXAueWVhcnM7IG1vbnRocyA9IC1wLm1vbnRoczsgZGF5cyA9IC1wLmRheXMgfVxuXG4oKiogVGhlIHJldHVybmVkIFtwZXJpb2RdIGlzIGFsd2F5cyBleHByZXNzZWQgYXMgYSBudW1iZXIgb2YgZGF5cy4gKilcbmxldCByZWMgc3ViX2RhdGVzIChkMSA6IGRhdGUpIChkMiA6IGRhdGUpIDogcGVyaW9kID1cbiAgaWYgZDEueWVhciA9IGQyLnllYXIgJiYgZDEubW9udGggPSBkMi5tb250aCB0aGVuXG4gICAgKCogRWFzeSBjYXNlOiB0aGUgdHdvIGRhdGVzIGFyZSBpbiB0aGUgc2FtZSBtb250aC4gKilcbiAgICBtYWtlX3BlcmlvZCB+eWVhcnM6MCB+bW9udGhzOjAgfmRheXM6KGQxLmRheSAtIGQyLmRheSlcbiAgZWxzZVxuICAgICgqIE90aGVyd2lzZSB3ZSdsbCBhZGQgYSBtb250aCBmb3J3YXJkIGlmIGQyIGlzIGFmdGVyIGQxLiopXG4gICAgbGV0IGNtcCA9IGNvbXBhcmVfZGF0ZXMgZDEgZDIgaW5cbiAgICBpZiBjbXAgPCAwIHRoZW5cbiAgICAgICgqIFRoZSBjYXNlIHdlcmUgZDEgaXMgYWZ0ZXIgZDIgaXMgc3ltbWV0cmljYWwgc28gd2UgaGFuZGxlIGl0IHZpYSBhXG4gICAgICAgICByZWN1cnNpdmUgY2FsbCBjaGFuZ2luZyB0aGUgb3JkZXIgb2YgdGhlIGFyZ3VtZW50cy4gKilcbiAgICAgIG5lZ19wZXJpb2QgKHN1Yl9kYXRlcyBkMiBkMSlcbiAgICBlbHNlXG4gICAgICAoKiB3ZSBrbm93IGNtcCAhPSAwIHNvIGNtcCA+IDAqKVxuICAgICAgKCogV2Ugd2FycCBkMSB0byB0aGUgZmlyc3QgZGF5IG9mIHRoZSBuZXh0IG1vbnRoLiAqKVxuICAgICAgbGV0IG5ld19kMl95ZWFyLCBuZXdfZDJfbW9udGggPVxuICAgICAgICBhZGRfbW9udGhzX3RvX2ZpcnN0X29mX21vbnRoX2RhdGUgfnllYXI6ZDIueWVhciB+bW9udGg6ZDIubW9udGhcbiAgICAgICAgICB+bW9udGhzOjFcbiAgICAgIGluXG4gICAgICBsZXQgbmV3X2QyID0geyB5ZWFyID0gbmV3X2QyX3llYXI7IG1vbnRoID0gbmV3X2QyX21vbnRoOyBkYXkgPSAxIH0gaW5cbiAgICAgICgqIE5leHQgd2UgZGl2aWRlIHRoZSByZXN1bHQgYmV0d2VlbiB0aGUgbnVtYmVyIG9mIGRheXMgd2UndmUgYWRkZWQgdG8gZ29cbiAgICAgICAgIHRvIHRoZSBlbmQgb2YgdGhlIG1vbnRoLCBhbmQgdGhlIHJlbWFpbmluZyBoYW5kbGVkIGJ5IGEgcmVjdXJzaXZlXG4gICAgICAgICBjYWxsLiAqKVxuICAgICAgYWRkX3BlcmlvZHNcbiAgICAgICAgKG1ha2VfcGVyaW9kIH55ZWFyczowIH5tb250aHM6MFxuICAgICAgICAgICB+ZGF5czpcbiAgICAgICAgICAgICAoKiBUaGUgbnVtYmVyIG9mIGRheXMgaXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgbGFzdCBkYXkgb2YgdGhlXG4gICAgICAgICAgICAgICAgbW9udGggYW5kIHRoZSBjdXJyZW50IGRheSBvZiBkMSwgcGx1cyBvbmUgZGF5IGJlY2F1c2Ugd2UgZ28gdG9cbiAgICAgICAgICAgICAgICB0aGUgbmV4dCBtb250aC4gKilcbiAgICAgICAgICAgICAoZGF5c19pbl9tb250aCB+bW9udGg6ZDIubW9udGggfmlzX2xlYXBfeWVhcjooaXNfbGVhcF95ZWFyIGQyLnllYXIpXG4gICAgICAgICAgICAgLSBkMi5kYXkgKyAxKSlcbiAgICAgICAgKHN1Yl9kYXRlcyBkMSBuZXdfZDIpXG5cbmxldCBkYXRlX3RvX3ltZCAoZCA6IGRhdGUpIDogaW50ICogaW50ICogaW50ID0gZC55ZWFyLCBkLm1vbnRoLCBkLmRheVxuXG5sZXQgcGVyaW9kX3RvX3ltZHMgKHAgOiBwZXJpb2QpIDogaW50ICogaW50ICogaW50ID0gcC55ZWFycywgcC5tb250aHMsIHAuZGF5c1xuIiwiIyAxIFwiY29tbW9uLm1sXCJcbmxldCB2ZXJzaW9uID0gXCIyLjAuMlwiXG5cbmV4Y2VwdGlvbiBKc29uX2Vycm9yIG9mIHN0cmluZ1xuXG5sZXQganNvbl9lcnJvciBzID0gcmFpc2UgKEpzb25fZXJyb3IgcylcblxuZXhjZXB0aW9uIEVuZF9vZl9hcnJheVxuZXhjZXB0aW9uIEVuZF9vZl9vYmplY3RcbmV4Y2VwdGlvbiBFbmRfb2ZfdHVwbGVcbmV4Y2VwdGlvbiBFbmRfb2ZfaW5wdXRcblxudHlwZSBpbl9wYXJhbSA9IHtcbiAgc3RyaW5nX2J1ZiA6IEJ1ZmZlci50XG59XG5cbmxldCBjcmVhdGVfaW5fcGFyYW0gPyhsZW4gPSAyNTYpICgpID0ge1xuICBzdHJpbmdfYnVmID0gQnVmZmVyLmNyZWF0ZSBsZW5cbn1cblxuXG5sZXQgdXRmOF9vZl9jb2RlIGJ1ZiB4ID1cbiAgbGV0IGFkZCA9IEJ1ZmZlci5hZGRfY2hhciBpblxuXG4gICgqIFN0cmFpZ2h0IDw9IGRvZXNuJ3Qgd29yayB3aXRoIHNpZ25lZCAzMS1iaXQgaW50cyAqKVxuICBsZXQgbWF4Yml0cyBuIHggPSB4IGxzciBuID0gMCBpblxuXG4gIGlmIG1heGJpdHMgNyB4IHRoZW5cbiAgICAoKiA3ICopXG4gICAgYWRkIGJ1ZiAoQ2hhci5jaHIgeClcbiAgZWxzZSBpZiBtYXhiaXRzIDExIHggdGhlbiAoXG4gICAgKCogNSArIDYgKilcbiAgICBhZGQgYnVmIChDaGFyLmNociAoMGIxMTAwMDAwMCBsb3IgKCh4IGxzciA2KSBsYW5kIDBiMDAwMTExMTEpKSk7XG4gICAgYWRkIGJ1ZiAoQ2hhci5jaHIgKDBiMTAwMDAwMDAgbG9yICh4ICAgICAgICAgbGFuZCAwYjAwMTExMTExKSkpXG4gIClcbiAgZWxzZSBpZiBtYXhiaXRzIDE2IHggdGhlbiAoXG4gICAgKCogNCArIDYgKyA2ICopXG4gICAgYWRkIGJ1ZiAoQ2hhci5jaHIgKDBiMTExMDAwMDAgbG9yICgoeCBsc3IgMTIpIGxhbmQgMGIwMDAwMTExMSkpKTtcbiAgICBhZGQgYnVmIChDaGFyLmNociAoMGIxMDAwMDAwMCBsb3IgKCh4IGxzciAgNikgbGFuZCAwYjAwMTExMTExKSkpO1xuICAgIGFkZCBidWYgKENoYXIuY2hyICgwYjEwMDAwMDAwIGxvciAoeCAgICAgICAgICBsYW5kIDBiMDAxMTExMTEpKSlcbiAgKVxuICBlbHNlIGlmIG1heGJpdHMgMjEgeCB0aGVuIChcbiAgICAoKiAzICsgNiArIDYgKyA2ICopXG4gICAgYWRkIGJ1ZiAoQ2hhci5jaHIgKDBiMTExMTAwMDAgbG9yICgoeCBsc3IgMTgpIGxhbmQgMGIwMDAwMDExMSkpKTtcbiAgICBhZGQgYnVmIChDaGFyLmNociAoMGIxMDAwMDAwMCBsb3IgKCh4IGxzciAxMikgbGFuZCAwYjAwMTExMTExKSkpO1xuICAgIGFkZCBidWYgKENoYXIuY2hyICgwYjEwMDAwMDAwIGxvciAoKHggbHNyICA2KSBsYW5kIDBiMDAxMTExMTEpKSk7XG4gICAgYWRkIGJ1ZiAoQ2hhci5jaHIgKDBiMTAwMDAwMDAgbG9yICh4ICAgICAgICAgIGxhbmQgMGIwMDExMTExMSkpKTtcbiAgKVxuICBlbHNlIGlmIG1heGJpdHMgMjYgeCB0aGVuIChcbiAgICAoKiAyICsgNiArIDYgKyA2ICsgNiAqKVxuICAgIGFkZCBidWYgKENoYXIuY2hyICgwYjExMTExMDAwIGxvciAoKHggbHNyIDI0KSBsYW5kIDBiMDAwMDAwMTEpKSk7XG4gICAgYWRkIGJ1ZiAoQ2hhci5jaHIgKDBiMTAwMDAwMDAgbG9yICgoeCBsc3IgMTgpIGxhbmQgMGIwMDExMTExMSkpKTtcbiAgICBhZGQgYnVmIChDaGFyLmNociAoMGIxMDAwMDAwMCBsb3IgKCh4IGxzciAxMikgbGFuZCAwYjAwMTExMTExKSkpO1xuICAgIGFkZCBidWYgKENoYXIuY2hyICgwYjEwMDAwMDAwIGxvciAoKHggbHNyICA2KSBsYW5kIDBiMDAxMTExMTEpKSk7XG4gICAgYWRkIGJ1ZiAoQ2hhci5jaHIgKDBiMTAwMDAwMDAgbG9yICh4ICAgICAgICAgIGxhbmQgMGIwMDExMTExMSkpKTtcbiAgKVxuICBlbHNlIChcbiAgICBhc3NlcnQgKG1heGJpdHMgMzEgeCk7XG4gICAgKCogMSArIDYgKyA2ICsgNiArIDYgKyA2ICopXG4gICAgYWRkIGJ1ZiAoQ2hhci5jaHIgKDBiMTExMTExMDAgbG9yICgoeCBsc3IgMzApIGxhbmQgMGIwMDAwMDAwMSkpKTtcbiAgICBhZGQgYnVmIChDaGFyLmNociAoMGIxMDAwMDAwMCBsb3IgKCh4IGxzciAyNCkgbGFuZCAwYjAwMTExMTExKSkpO1xuICAgIGFkZCBidWYgKENoYXIuY2hyICgwYjEwMDAwMDAwIGxvciAoKHggbHNyIDE4KSBsYW5kIDBiMDAxMTExMTEpKSk7XG4gICAgYWRkIGJ1ZiAoQ2hhci5jaHIgKDBiMTAwMDAwMDAgbG9yICgoeCBsc3IgMTIpIGxhbmQgMGIwMDExMTExMSkpKTtcbiAgICBhZGQgYnVmIChDaGFyLmNociAoMGIxMDAwMDAwMCBsb3IgKCh4IGxzciAgNikgbGFuZCAwYjAwMTExMTExKSkpO1xuICAgIGFkZCBidWYgKENoYXIuY2hyICgwYjEwMDAwMDAwIGxvciAoeCAgICAgICAgICBsYW5kIDBiMDAxMTExMTEpKSk7XG4gIClcblxubGV0IGNvZGVfb2Zfc3Vycm9nYXRlX3BhaXIgaSBqID1cbiAgbGV0IGhpZ2gxMCA9IGkgLSAweEQ4MDAgaW5cbiAgbGV0IGxvdzEwID0gaiAtIDB4REMwMCBpblxuICAweDEwMDAwICsgKChoaWdoMTAgbHNsIDEwKSBsb3IgbG93MTApXG5cbmxldCB1dGY4X29mX3N1cnJvZ2F0ZV9wYWlyIGJ1ZiBpIGogPVxuICB1dGY4X29mX2NvZGUgYnVmIChjb2RlX29mX3N1cnJvZ2F0ZV9wYWlyIGkgailcblxudHlwZSBsZXhlcl9zdGF0ZSA9IHtcbiAgYnVmIDogQnVmZmVyLnQ7XG4gICAgKCogQnVmZmVyIHVzZWQgdG8gYWNjdW11bGF0ZSBzdWJzdHJpbmdzICopXG5cbiAgbXV0YWJsZSBsbnVtIDogaW50O1xuICAgICgqIEN1cnJlbnQgbGluZSBudW1iZXIgKHN0YXJ0aW5nIGZyb20gMSkgKilcblxuICBtdXRhYmxlIGJvbCA6IGludDtcbiAgICAoKiBBYnNvbHV0ZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBjdXJyZW50IGxpbmVcbiAgICAgICAoc3RhcnRpbmcgZnJvbSAwKSAqKVxuXG4gIG11dGFibGUgZm5hbWUgOiBzdHJpbmcgb3B0aW9uO1xuICAgICgqIE5hbWUgZGVzY3JpYmluZyB0aGUgaW5wdXQgZmlsZSAqKVxufVxuXG5tb2R1bGUgTGV4ZXJfc3RhdGUgPVxuc3RydWN0XG4gIHR5cGUgdCA9IGxleGVyX3N0YXRlID0ge1xuICAgIGJ1ZiA6IEJ1ZmZlci50O1xuICAgIG11dGFibGUgbG51bSA6IGludDtcbiAgICBtdXRhYmxlIGJvbCA6IGludDtcbiAgICBtdXRhYmxlIGZuYW1lIDogc3RyaW5nIG9wdGlvbjtcbiAgfVxuZW5kXG5cbmxldCBpbml0X2xleGVyID9idWYgP2ZuYW1lID8obG51bSA9IDEpICgpID1cbiAgbGV0IGJ1ZiA9XG4gICAgbWF0Y2ggYnVmIHdpdGhcblx0Tm9uZSAtPiBCdWZmZXIuY3JlYXRlIDI1NlxuICAgICAgfCBTb21lIGJ1ZiAtPiBidWZcbiAgaW5cbiAge1xuICAgIGJ1ZiA9IGJ1ZjtcbiAgICBsbnVtID0gbG51bTtcbiAgICBib2wgPSAwO1xuICAgIGZuYW1lID0gZm5hbWVcbiAgfVxuXG4jIDEgXCJ0eXBlLm1sXCJcbigqKiB7MyBUeXBlIG9mIHRoZSBKU09OIHRyZWV9ICopXG5cbnR5cGUgdCA9XG4gICAgW1xuICAgIHwgYE51bGxcbiAgICB8IGBCb29sIG9mIGJvb2xcbiAgICBcbiMgOCBcInR5cGUubWxcIlxuICAgIHwgYEludCBvZiBpbnRcbiAgICBcbiMgMTEgXCJ0eXBlLm1sXCJcbiAgICB8IGBJbnRsaXQgb2Ygc3RyaW5nXG4gICAgXG4jIDE0IFwidHlwZS5tbFwiXG4gICAgfCBgRmxvYXQgb2YgZmxvYXRcbiAgICBcbiMgMTcgXCJ0eXBlLm1sXCJcbiAgICB8IGBGbG9hdGxpdCBvZiBzdHJpbmdcbiAgICBcbiMgMjAgXCJ0eXBlLm1sXCJcbiAgICB8IGBTdHJpbmcgb2Ygc3RyaW5nXG4gICAgXG4jIDIzIFwidHlwZS5tbFwiXG4gICAgfCBgU3RyaW5nbGl0IG9mIHN0cmluZ1xuICAgIFxuIyAyNSBcInR5cGUubWxcIlxuICAgIHwgYEFzc29jIG9mIChzdHJpbmcgKiB0KSBsaXN0XG4gICAgfCBgTGlzdCBvZiB0IGxpc3RcbiAgICBcbiMgMjggXCJ0eXBlLm1sXCJcbiAgICB8IGBUdXBsZSBvZiB0IGxpc3RcbiAgICBcbiMgMzEgXCJ0eXBlLm1sXCJcbiAgICB8IGBWYXJpYW50IG9mIChzdHJpbmcgKiB0IG9wdGlvbilcbiAgICBcbiMgMzMgXCJ0eXBlLm1sXCJcbiAgICBdXG4oKipcbkFsbCBwb3NzaWJsZSBjYXNlcyBkZWZpbmVkIGluIFlvanNvbjpcbi0gYE51bGw6IEpTT04gbnVsbFxuLSBgQm9vbCBvZiBib29sOiBKU09OIGJvb2xlYW5cbi0gYEludCBvZiBpbnQ6IEpTT04gbnVtYmVyIHdpdGhvdXQgZGVjaW1hbCBwb2ludCBvciBleHBvbmVudC5cbi0gYEludGxpdCBvZiBzdHJpbmc6IEpTT04gbnVtYmVyIHdpdGhvdXQgZGVjaW1hbCBwb2ludCBvciBleHBvbmVudCxcblx0ICAgIHByZXNlcnZlZCBhcyBhIHN0cmluZy5cbi0gYEZsb2F0IG9mIGZsb2F0OiBKU09OIG51bWJlciwgSW5maW5pdHksIC1JbmZpbml0eSBvciBOYU4uXG4tIGBGbG9hdGxpdCBvZiBzdHJpbmc6IEpTT04gbnVtYmVyLCBJbmZpbml0eSwgLUluZmluaXR5IG9yIE5hTixcblx0ICAgIHByZXNlcnZlZCBhcyBhIHN0cmluZy5cbi0gYFN0cmluZyBvZiBzdHJpbmc6IEpTT04gc3RyaW5nLiBCeXRlcyBpbiB0aGUgcmFuZ2UgMTI4LTI1NSBhcmUgcHJlc2VydmVkXG5cdCAgICBhcy1pcyB3aXRob3V0IGVuY29kaW5nIHZhbGlkYXRpb24gZm9yIGJvdGggcmVhZGluZ1xuXHQgICAgYW5kIHdyaXRpbmcuXG4tIGBTdHJpbmdsaXQgb2Ygc3RyaW5nOiBKU09OIHN0cmluZyBsaXRlcmFsIGluY2x1ZGluZyB0aGUgZG91YmxlIHF1b3Rlcy5cbi0gYEFzc29jIG9mIChzdHJpbmcgKiBqc29uKSBsaXN0OiBKU09OIG9iamVjdC5cbi0gYExpc3Qgb2YganNvbiBsaXN0OiBKU09OIGFycmF5LlxuLSBgVHVwbGUgb2YganNvbiBsaXN0OiBUdXBsZSAobm9uLXN0YW5kYXJkIGV4dGVuc2lvbiBvZiBKU09OKS5cblx0ICAgIFN5bnRheDogWyhcImFiY1wiLCAxMjMpXS5cbi0gYFZhcmlhbnQgb2YgKHN0cmluZyAqIGpzb24gb3B0aW9uKTogVmFyaWFudCAobm9uLXN0YW5kYXJkIGV4dGVuc2lvbiBvZiBKU09OKS5cblx0ICAgIFN5bnRheDogWzxcIkZvb1wiPl0gb3IgWzxcIkJhclwiOjEyMz5dLlxuKilcblxuKCpcbiAgTm90ZSB0byBhZHZlbnR1cmVyczogb2NhbWxkb2MgZG9lcyBub3Qgc3VwcG9ydCBpbmxpbmUgY29tbWVudHNcbiAgb24gZWFjaCBwb2x5bW9ycGhpYyB2YXJpYW50LCBhbmQgY3BwbyBkb2Vzbid0IGFsbG93IHRvIGNvbmNhdGVuYXRlXG4gIGNvbW1lbnRzLCBzbyBpdCB3b3VsZCBiZSBjb21wbGljYXRlZCB0byBkb2N1bWVudCBvbmx5IHRoZVxuICBjYXNlcyB0aGF0IGFyZSBwcmVzZXJ2ZWQgYnkgY3BwbyBpbiB0aGUgdHlwZSBkZWZpbml0aW9uLlxuKilcbiMgMSBcIndyaXRlLm1sXCJcbigqIGluY2x1ZGVkOiB0eXBlLm1sICopXG5cbmxldCBoZXggbiA9XG4gIENoYXIuY2hyIChcbiAgICBpZiBuIDwgMTAgdGhlbiBuICsgNDhcbiAgICBlbHNlIG4gKyA4N1xuICApXG5cbmxldCB3cml0ZV9zcGVjaWFsIHNyYyBzdGFydCBzdG9wIG9iIHN0ciA9XG4gIEJ1ZmZlci5hZGRfc3Vic3RyaW5nIG9iIHNyYyAhc3RhcnQgKHN0b3AgLSAhc3RhcnQpO1xuICBCdWZmZXIuYWRkX3N0cmluZyBvYiBzdHI7XG4gIHN0YXJ0IDo9IHN0b3AgKyAxXG5cbmxldCB3cml0ZV9jb250cm9sX2NoYXIgc3JjIHN0YXJ0IHN0b3Agb2IgYyA9XG4gIEJ1ZmZlci5hZGRfc3Vic3RyaW5nIG9iIHNyYyAhc3RhcnQgKHN0b3AgLSAhc3RhcnQpO1xuICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIlxcXFx1MDBcIjtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iIChoZXggKENoYXIuY29kZSBjIGxzciA0KSk7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAoaGV4IChDaGFyLmNvZGUgYyBsYW5kIDB4ZikpO1xuICBzdGFydCA6PSBzdG9wICsgMVxuXG5sZXQgZmluaXNoX3N0cmluZyBzcmMgc3RhcnQgb2IgPVxuICB0cnlcbiAgICBCdWZmZXIuYWRkX3N1YnN0cmluZyBvYiBzcmMgIXN0YXJ0IChTdHJpbmcubGVuZ3RoIHNyYyAtICFzdGFydClcbiAgd2l0aCBleGMgLT5cbiAgICBQcmludGYuZXByaW50ZiBcInNyYz0lUyBzdGFydD0laSBsZW49JWlcXG4lIVwiXG4gICAgICBzcmMgIXN0YXJ0IChTdHJpbmcubGVuZ3RoIHNyYyAtICFzdGFydCk7XG4gICAgcmFpc2UgZXhjXG5cbmxldCB3cml0ZV9zdHJpbmdfYm9keSBvYiBzID1cbiAgbGV0IHN0YXJ0ID0gcmVmIDAgaW5cbiAgZm9yIGkgPSAwIHRvIFN0cmluZy5sZW5ndGggcyAtIDEgZG9cbiAgICBtYXRjaCBzLltpXSB3aXRoXG4gICAgICAgICdcIicgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcXFxcIlwiXG4gICAgICB8ICdcXFxcJyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFxcXFxcXCJcbiAgICAgIHwgJ1xcYicgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcYlwiXG4gICAgICB8ICdcXDAxMicgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcZlwiXG4gICAgICB8ICdcXG4nIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXG5cIlxuICAgICAgfCAnXFxyJyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFxyXCJcbiAgICAgIHwgJ1xcdCcgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcdFwiXG4gICAgICB8ICdcXHgwMCcuLidcXHgxRidcbiAgICAgIHwgJ1xceDdGJyBhcyBjIC0+IHdyaXRlX2NvbnRyb2xfY2hhciBzIHN0YXJ0IGkgb2IgY1xuICAgICAgfCBfIC0+ICgpXG4gIGRvbmU7XG4gIGZpbmlzaF9zdHJpbmcgcyBzdGFydCBvYlxuXG5sZXQgd3JpdGVfc3RyaW5nIG9iIHMgPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ1wiJztcbiAgd3JpdGVfc3RyaW5nX2JvZHkgb2IgcztcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICdcIidcblxubGV0IGpzb25fc3RyaW5nX29mX3N0cmluZyBzID1cbiAgbGV0IG9iID0gQnVmZmVyLmNyZWF0ZSAxMCBpblxuICB3cml0ZV9zdHJpbmcgb2IgcztcbiAgQnVmZmVyLmNvbnRlbnRzIG9iXG5cbmxldCB0ZXN0X3N0cmluZyAoKSA9XG4gIGxldCBzID0gQnl0ZXMuY3JlYXRlIDI1NiBpblxuICBmb3IgaSA9IDAgdG8gMjU1IGRvXG4gICAgQnl0ZXMuc2V0IHMgaSAoQ2hhci5jaHIgaSlcbiAgZG9uZTtcbiAganNvbl9zdHJpbmdfb2Zfc3RyaW5nIChCeXRlcy50b19zdHJpbmcgcylcblxuXG5sZXQgd3JpdGVfbnVsbCBvYiAoKSA9XG4gIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwibnVsbFwiXG5cbmxldCB3cml0ZV9ib29sIG9iIHggPVxuICBCdWZmZXIuYWRkX3N0cmluZyBvYiAoaWYgeCB0aGVuIFwidHJ1ZVwiIGVsc2UgXCJmYWxzZVwiKVxuXG5cbmxldCBtYXhfZGlnaXRzID1cbiAgbWF4XG4gICAgKFN0cmluZy5sZW5ndGggKHN0cmluZ19vZl9pbnQgbWF4X2ludCkpXG4gICAgKFN0cmluZy5sZW5ndGggKHN0cmluZ19vZl9pbnQgbWluX2ludCkpXG5cbmxldCBkZWMgbiA9XG4gIENoYXIuY2hyIChuICsgNDgpXG5cbmxldCByZWMgd3JpdGVfZGlnaXRzIHMgeCA9XG4gIGlmIHggPSAwIHRoZW4gKClcbiAgZWxzZVxuICAgIGxldCBkID0geCBtb2QgMTAgaW5cbiAgICB3cml0ZV9kaWdpdHMgcyAoeCAvIDEwKTtcbiAgICBCdWZmZXIuYWRkX2NoYXIgcyAoZGVjIChhYnMgZCkpXG5cbmxldCB3cml0ZV9pbnQgb2IgeCA9XG4gIGlmIHggPiAwIHRoZW5cbiAgICB3cml0ZV9kaWdpdHMgb2IgeFxuICBlbHNlIGlmIHggPCAwIHRoZW4gKFxuICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnLSc7XG4gICAgd3JpdGVfZGlnaXRzIG9iIHhcbiAgKVxuICBlbHNlXG4gICAgQnVmZmVyLmFkZF9jaGFyIG9iICcwJ1xuXG5cbmxldCBqc29uX3N0cmluZ19vZl9pbnQgaSA9XG4gIHN0cmluZ19vZl9pbnQgaVxuXG5cbigqXG4gIEVuc3VyZSB0aGF0IHRoZSBmbG9hdCBpcyBub3QgcHJpbnRlZCBhcyBhbiBpbnQuXG4gIFRoaXMgaXMgbm90IHJlcXVpcmVkIGJ5IEpTT04sIGJ1dCB1c2VmdWwgaW4gb3JkZXIgdG8gZ3VhcmFudGVlXG4gIHJldmVyc2liaWxpdHkuXG4qKVxubGV0IGZsb2F0X25lZWRzX3BlcmlvZCBzID1cbiAgdHJ5XG4gICAgZm9yIGkgPSAwIHRvIFN0cmluZy5sZW5ndGggcyAtIDEgZG9cbiAgICAgIG1hdGNoIHMuW2ldIHdpdGhcbiAgICAgICAgICAnMCcuLic5JyB8ICctJyAtPiAoKVxuICAgICAgICB8IF8gLT4gcmFpc2UgRXhpdFxuICAgIGRvbmU7XG4gICAgdHJ1ZVxuICB3aXRoIEV4aXQgLT5cbiAgICBmYWxzZVxuXG4oKlxuICBHdWFyYW50ZWVzIHRoYXQgYSBzdWZmaWNpZW50IG51bWJlciBvZiBkaWdpdHMgYXJlIHByaW50ZWQgaW4gb3JkZXIgdG8gYWxsb3dcbiAgcmV2ZXJzaWJpbGl0eS5cbiopXG5sZXQgd3JpdGVfZmxvYXQgb2IgeCA9XG4gIG1hdGNoIGNsYXNzaWZ5X2Zsb2F0IHggd2l0aFxuICAgIEZQX25hbiAtPlxuICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCJOYU5cIlxuICB8IEZQX2luZmluaXRlIC0+XG4gICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiAoaWYgeCA+IDAuIHRoZW4gXCJJbmZpbml0eVwiIGVsc2UgXCItSW5maW5pdHlcIilcbiAgfCBfIC0+XG4gICAgICBsZXQgczEgPSBQcmludGYuc3ByaW50ZiBcIiUuMTZnXCIgeCBpblxuICAgICAgbGV0IHMgPVxuICAgICAgICBpZiBmbG9hdF9vZl9zdHJpbmcgczEgPSB4IHRoZW4gczFcbiAgICAgICAgZWxzZSBQcmludGYuc3ByaW50ZiBcIiUuMTdnXCIgeFxuICAgICAgaW5cbiAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHM7XG4gICAgICBpZiBmbG9hdF9uZWVkc19wZXJpb2QgcyB0aGVuXG4gICAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwiLjBcIlxuXG5sZXQgd3JpdGVfbm9ybWFsX2Zsb2F0X3ByZWMgc2lnbmlmaWNhbnRfZmlndXJlcyBvYiB4ID1cbiAgbGV0IG9wZW4gUHJpbnRmIGluXG4gIGxldCBzID1cbiAgICBtYXRjaCBzaWduaWZpY2FudF9maWd1cmVzIHdpdGhcbiAgICAgICAgMSAtPiBzcHJpbnRmIFwiJS4xZ1wiIHhcbiAgICAgIHwgMiAtPiBzcHJpbnRmIFwiJS4yZ1wiIHhcbiAgICAgIHwgMyAtPiBzcHJpbnRmIFwiJS4zZ1wiIHhcbiAgICAgIHwgNCAtPiBzcHJpbnRmIFwiJS40Z1wiIHhcbiAgICAgIHwgNSAtPiBzcHJpbnRmIFwiJS41Z1wiIHhcbiAgICAgIHwgNiAtPiBzcHJpbnRmIFwiJS42Z1wiIHhcbiAgICAgIHwgNyAtPiBzcHJpbnRmIFwiJS43Z1wiIHhcbiAgICAgIHwgOCAtPiBzcHJpbnRmIFwiJS44Z1wiIHhcbiAgICAgIHwgOSAtPiBzcHJpbnRmIFwiJS45Z1wiIHhcbiAgICAgIHwgMTAgLT4gc3ByaW50ZiBcIiUuMTBnXCIgeFxuICAgICAgfCAxMSAtPiBzcHJpbnRmIFwiJS4xMWdcIiB4XG4gICAgICB8IDEyIC0+IHNwcmludGYgXCIlLjEyZ1wiIHhcbiAgICAgIHwgMTMgLT4gc3ByaW50ZiBcIiUuMTNnXCIgeFxuICAgICAgfCAxNCAtPiBzcHJpbnRmIFwiJS4xNGdcIiB4XG4gICAgICB8IDE1IC0+IHNwcmludGYgXCIlLjE1Z1wiIHhcbiAgICAgIHwgMTYgLT4gc3ByaW50ZiBcIiUuMTZnXCIgeFxuICAgICAgfCBfIC0+IHNwcmludGYgXCIlLjE3Z1wiIHhcbiAgaW5cbiAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgcztcbiAgaWYgZmxvYXRfbmVlZHNfcGVyaW9kIHMgdGhlblxuICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwiLjBcIlxuXG4oKiB1c2VkIGJ5IGF0ZGdlbiAqKVxubGV0IHdyaXRlX2Zsb2F0X3ByZWMgc2lnbmlmaWNhbnRfZmlndXJlcyBvYiB4ID1cbiAgbWF0Y2ggY2xhc3NpZnlfZmxvYXQgeCB3aXRoXG4gICAgRlBfbmFuIC0+XG4gICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIk5hTlwiXG4gIHwgRlBfaW5maW5pdGUgLT5cbiAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIChpZiB4ID4gMC4gdGhlbiBcIkluZmluaXR5XCIgZWxzZSBcIi1JbmZpbml0eVwiKVxuICB8IF8gLT5cbiAgICAgIHdyaXRlX25vcm1hbF9mbG9hdF9wcmVjIHNpZ25pZmljYW50X2ZpZ3VyZXMgb2IgeFxuXG5sZXQganNvbl9zdHJpbmdfb2ZfZmxvYXQgeCA9XG4gIGxldCBvYiA9IEJ1ZmZlci5jcmVhdGUgMjAgaW5cbiAgd3JpdGVfZmxvYXQgb2IgeDtcbiAgQnVmZmVyLmNvbnRlbnRzIG9iXG5cblxubGV0IHdyaXRlX3N0ZF9mbG9hdCBvYiB4ID1cbiAgbWF0Y2ggY2xhc3NpZnlfZmxvYXQgeCB3aXRoXG4gICAgRlBfbmFuIC0+XG4gICAgICBqc29uX2Vycm9yIFwiTmFOIHZhbHVlIG5vdCBhbGxvd2VkIGluIHN0YW5kYXJkIEpTT05cIlxuICB8IEZQX2luZmluaXRlIC0+XG4gICAgICBqc29uX2Vycm9yXG4gICAgICAgIChpZiB4ID4gMC4gdGhlblxuICAgICAgICAgICBcIkluZmluaXR5IHZhbHVlIG5vdCBhbGxvd2VkIGluIHN0YW5kYXJkIEpTT05cIlxuICAgICAgICAgZWxzZVxuICAgICAgICAgICBcIi1JbmZpbml0eSB2YWx1ZSBub3QgYWxsb3dlZCBpbiBzdGFuZGFyZCBKU09OXCIpXG4gIHwgXyAtPlxuICAgICAgbGV0IHMxID0gUHJpbnRmLnNwcmludGYgXCIlLjE2Z1wiIHggaW5cbiAgICAgIGxldCBzID1cbiAgICAgICAgaWYgZmxvYXRfb2Zfc3RyaW5nIHMxID0geCB0aGVuIHMxXG4gICAgICAgIGVsc2UgUHJpbnRmLnNwcmludGYgXCIlLjE3Z1wiIHhcbiAgICAgIGluXG4gICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBzO1xuICAgICAgaWYgZmxvYXRfbmVlZHNfcGVyaW9kIHMgdGhlblxuICAgICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIi4wXCJcblxuKCogdXNlZCBieSBhdGRnZW4gKilcbmxldCB3cml0ZV9zdGRfZmxvYXRfcHJlYyBzaWduaWZpY2FudF9maWd1cmVzIG9iIHggPVxuICBtYXRjaCBjbGFzc2lmeV9mbG9hdCB4IHdpdGhcbiAgICBGUF9uYW4gLT5cbiAgICAgIGpzb25fZXJyb3IgXCJOYU4gdmFsdWUgbm90IGFsbG93ZWQgaW4gc3RhbmRhcmQgSlNPTlwiXG4gIHwgRlBfaW5maW5pdGUgLT5cbiAgICAgIGpzb25fZXJyb3JcbiAgICAgICAgKGlmIHggPiAwLiB0aGVuXG4gICAgICAgICAgIFwiSW5maW5pdHkgdmFsdWUgbm90IGFsbG93ZWQgaW4gc3RhbmRhcmQgSlNPTlwiXG4gICAgICAgICBlbHNlXG4gICAgICAgICAgIFwiLUluZmluaXR5IHZhbHVlIG5vdCBhbGxvd2VkIGluIHN0YW5kYXJkIEpTT05cIilcbiAgfCBfIC0+XG4gICAgICB3cml0ZV9ub3JtYWxfZmxvYXRfcHJlYyBzaWduaWZpY2FudF9maWd1cmVzIG9iIHhcblxubGV0IHN0ZF9qc29uX3N0cmluZ19vZl9mbG9hdCB4ID1cbiAgbGV0IG9iID0gQnVmZmVyLmNyZWF0ZSAyMCBpblxuICB3cml0ZV9zdGRfZmxvYXQgb2IgeDtcbiAgQnVmZmVyLmNvbnRlbnRzIG9iXG5cblxubGV0IHRlc3RfZmxvYXQgKCkgPVxuICBsZXQgbCA9IFsgMC47IDEuOyAtMS4gXSBpblxuICBsZXQgbCA9IGwgQCBMaXN0Lm1hcCAoZnVuIHggLT4gMi4gKi4geCArLiAxLikgbCBpblxuICBsZXQgbCA9IGwgQCBMaXN0Lm1hcCAoZnVuIHggLT4geCAvLiBzcXJ0IDIuKSBsIGluXG4gIGxldCBsID0gbCBAIExpc3QubWFwIChmdW4geCAtPiB4ICouIHNxcnQgMy4pIGwgaW5cbiAgbGV0IGwgPSBsIEAgTGlzdC5tYXAgY29zIGwgaW5cbiAgbGV0IGwgPSBsIEAgTGlzdC5tYXAgKGZ1biB4IC0+IHggKi4gMS4yM2U1MCkgbCBpblxuICBsZXQgbCA9IGwgQCBbIGluZmluaXR5OyBuZWdfaW5maW5pdHkgXSBpblxuICBMaXN0Lml0ZXIgKFxuICAgIGZ1biB4IC0+XG4gICAgICBsZXQgcyA9IFByaW50Zi5zcHJpbnRmIFwiJS4xN2dcIiB4IGluXG4gICAgICBsZXQgeSA9IGZsb2F0X29mX3N0cmluZyBzIGluXG4gICAgICBQcmludGYucHJpbnRmIFwiJWcgJWcgJVMgJUJcXG5cIiB4IHkgcyAoeCA9IHkpXG4gIClcbiAgICBsXG5cbigqXG5sZXQgKCkgPSB0ZXN0X2Zsb2F0ICgpXG4qKVxuXG5sZXQgd3JpdGVfaW50bGl0ID0gQnVmZmVyLmFkZF9zdHJpbmdcbmxldCB3cml0ZV9mbG9hdGxpdCA9IEJ1ZmZlci5hZGRfc3RyaW5nXG5sZXQgd3JpdGVfc3RyaW5nbGl0ID0gQnVmZmVyLmFkZF9zdHJpbmdcblxubGV0IHJlYyBpdGVyMl9hdXggZl9lbHQgZl9zZXAgeCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gKClcbiAgfCB5IDo6IGwgLT5cbiAgICAgIGZfc2VwIHg7XG4gICAgICBmX2VsdCB4IHk7XG4gICAgICBpdGVyMl9hdXggZl9lbHQgZl9zZXAgeCBsXG5cbmxldCBpdGVyMiBmX2VsdCBmX3NlcCB4ID0gZnVuY3Rpb25cbiAgICBbXSAtPiAoKVxuICB8IHkgOjogbCAtPlxuICAgICAgZl9lbHQgeCB5O1xuICAgICAgaXRlcjJfYXV4IGZfZWx0IGZfc2VwIHggbFxuXG5sZXQgZl9zZXAgb2IgPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJywnXG5cbmxldCByZWMgd3JpdGVfanNvbiBvYiAoeCA6IHQpID1cbiAgbWF0Y2ggeCB3aXRoXG4gICAgICBgTnVsbCAtPiB3cml0ZV9udWxsIG9iICgpXG4gICAgfCBgQm9vbCBiIC0+IHdyaXRlX2Jvb2wgb2IgYlxuICAgIFxuIyAyNjQgXCJ3cml0ZS5tbFwiXG4gICAgfCBgSW50IGkgLT4gd3JpdGVfaW50IG9iIGlcbiAgICBcbiMgMjY3IFwid3JpdGUubWxcIlxuICAgIHwgYEludGxpdCBzIC0+IEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHNcbiAgICBcbiMgMjcwIFwid3JpdGUubWxcIlxuICAgIHwgYEZsb2F0IGYgLT4gd3JpdGVfZmxvYXQgb2IgZlxuICAgIFxuIyAyNzMgXCJ3cml0ZS5tbFwiXG4gICAgfCBgRmxvYXRsaXQgcyAtPiBCdWZmZXIuYWRkX3N0cmluZyBvYiBzXG4gICAgXG4jIDI3NiBcIndyaXRlLm1sXCJcbiAgICB8IGBTdHJpbmcgcyAtPiB3cml0ZV9zdHJpbmcgb2Igc1xuICAgIFxuIyAyNzkgXCJ3cml0ZS5tbFwiXG4gICAgfCBgU3RyaW5nbGl0IHMgLT4gQnVmZmVyLmFkZF9zdHJpbmcgb2Igc1xuICAgIFxuIyAyODEgXCJ3cml0ZS5tbFwiXG4gICAgfCBgQXNzb2MgbCAtPiB3cml0ZV9hc3NvYyBvYiBsXG4gICAgfCBgTGlzdCBsIC0+IHdyaXRlX2xpc3Qgb2IgbFxuICAgIFxuIyAyODQgXCJ3cml0ZS5tbFwiXG4gICAgfCBgVHVwbGUgbCAtPiB3cml0ZV90dXBsZSBvYiBsXG4gICAgXG4jIDI4NyBcIndyaXRlLm1sXCJcbiAgICB8IGBWYXJpYW50IChzLCBvKSAtPiB3cml0ZV92YXJpYW50IG9iIHMgb1xuXG4jIDI5MCBcIndyaXRlLm1sXCJcbmFuZCB3cml0ZV9hc3NvYyBvYiBsID1cbiAgbGV0IGZfZWx0IG9iIChzLCB4KSA9XG4gICAgd3JpdGVfc3RyaW5nIG9iIHM7XG4gICAgQnVmZmVyLmFkZF9jaGFyIG9iICc6JztcbiAgICB3cml0ZV9qc29uIG9iIHhcbiAgaW5cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICd7JztcbiAgaXRlcjIgZl9lbHQgZl9zZXAgb2IgbDtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICd9JztcblxuYW5kIHdyaXRlX2xpc3Qgb2IgbCA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnWyc7XG4gIGl0ZXIyIHdyaXRlX2pzb24gZl9zZXAgb2IgbDtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICddJ1xuXG4jIDMwNiBcIndyaXRlLm1sXCJcbmFuZCB3cml0ZV90dXBsZSBvYiBsID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICcoJztcbiAgaXRlcjIgd3JpdGVfanNvbiBmX3NlcCBvYiBsO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJyknXG5cbiMgMzEzIFwid3JpdGUubWxcIlxuYW5kIHdyaXRlX3ZhcmlhbnQgb2IgcyBvID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICc8JztcbiAgd3JpdGVfc3RyaW5nIG9iIHM7XG4gIChtYXRjaCBvIHdpdGhcbiAgICAgICBOb25lIC0+ICgpXG4gICAgIHwgU29tZSB4IC0+XG4gICAgICAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJzonO1xuICAgICAgICAgd3JpdGVfanNvbiBvYiB4XG4gICk7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnPidcblxuIyAzMjUgXCJ3cml0ZS5tbFwiXG5sZXQgd3JpdGVfdCA9IHdyaXRlX2pzb25cblxubGV0IHJlYyB3cml0ZV9zdGRfanNvbiBvYiAoeCA6IHQpID1cbiAgbWF0Y2ggeCB3aXRoXG4gICAgICBgTnVsbCAtPiB3cml0ZV9udWxsIG9iICgpXG4gICAgfCBgQm9vbCBiIC0+IHdyaXRlX2Jvb2wgb2IgYlxuICAgIFxuIyAzMzIgXCJ3cml0ZS5tbFwiXG4gICAgfCBgSW50IGkgLT4gd3JpdGVfaW50IG9iIGlcbiAgICBcbiMgMzM1IFwid3JpdGUubWxcIlxuICAgIHwgYEludGxpdCBzIC0+IEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHNcbiAgICBcbiMgMzM4IFwid3JpdGUubWxcIlxuICAgIHwgYEZsb2F0IGYgLT4gd3JpdGVfc3RkX2Zsb2F0IG9iIGZcbiAgICBcbiMgMzQxIFwid3JpdGUubWxcIlxuICAgIHwgYEZsb2F0bGl0IHMgLT4gQnVmZmVyLmFkZF9zdHJpbmcgb2Igc1xuICAgIFxuIyAzNDQgXCJ3cml0ZS5tbFwiXG4gICAgfCBgU3RyaW5nIHMgLT4gd3JpdGVfc3RyaW5nIG9iIHNcbiAgICBcbiMgMzQ3IFwid3JpdGUubWxcIlxuICAgIHwgYFN0cmluZ2xpdCBzIC0+IEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHNcbiAgICBcbiMgMzQ5IFwid3JpdGUubWxcIlxuICAgIHwgYEFzc29jIGwgLT4gd3JpdGVfc3RkX2Fzc29jIG9iIGxcbiAgICB8IGBMaXN0IGwgLT4gd3JpdGVfc3RkX2xpc3Qgb2IgbFxuICAgIFxuIyAzNTIgXCJ3cml0ZS5tbFwiXG4gICAgfCBgVHVwbGUgbCAtPiB3cml0ZV9zdGRfdHVwbGUgb2IgbFxuICAgIFxuIyAzNTUgXCJ3cml0ZS5tbFwiXG4gICAgfCBgVmFyaWFudCAocywgbykgLT4gd3JpdGVfc3RkX3ZhcmlhbnQgb2IgcyBvXG5cbiMgMzU4IFwid3JpdGUubWxcIlxuYW5kIHdyaXRlX3N0ZF9hc3NvYyBvYiBsID1cbiAgbGV0IGZfZWx0IG9iIChzLCB4KSA9XG4gICAgd3JpdGVfc3RyaW5nIG9iIHM7XG4gICAgQnVmZmVyLmFkZF9jaGFyIG9iICc6JztcbiAgICB3cml0ZV9zdGRfanNvbiBvYiB4XG4gIGluXG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAneyc7XG4gIGl0ZXIyIGZfZWx0IGZfc2VwIG9iIGw7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnfSc7XG5cbmFuZCB3cml0ZV9zdGRfbGlzdCBvYiBsID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICdbJztcbiAgaXRlcjIgd3JpdGVfc3RkX2pzb24gZl9zZXAgb2IgbDtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICddJ1xuXG5hbmQgd3JpdGVfc3RkX3R1cGxlIG9iIGwgPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ1snO1xuICBpdGVyMiB3cml0ZV9zdGRfanNvbiBmX3NlcCBvYiBsO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ10nXG5cbiMgMzc5IFwid3JpdGUubWxcIlxuYW5kIHdyaXRlX3N0ZF92YXJpYW50IG9iIHMgbyA9XG4gIG1hdGNoIG8gd2l0aFxuICAgICAgTm9uZSAtPiB3cml0ZV9zdHJpbmcgb2Igc1xuICAgIHwgU29tZSB4IC0+XG4gICAgICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnWyc7XG4gICAgICAgIHdyaXRlX3N0cmluZyBvYiBzO1xuICAgICAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJywnO1xuICAgICAgICB3cml0ZV9zdGRfanNvbiBvYiB4O1xuICAgICAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJ10nXG5cblxuIyAzOTEgXCJ3cml0ZS5tbFwiXG5sZXQgdG9fYnVmZmVyID8oc3VmID0gXCJcIikgPyhzdGQgPSBmYWxzZSkgb2IgeCA9XG4gIGlmIHN0ZCB0aGVuXG4gICAgd3JpdGVfc3RkX2pzb24gb2IgeFxuICBlbHNlXG4gICAgd3JpdGVfanNvbiBvYiB4O1xuICBCdWZmZXIuYWRkX3N0cmluZyBvYiBzdWZcblxubGV0IHRvX3N0cmluZyA/YnVmID8obGVuID0gMjU2KSA/KHN1ZiA9IFwiXCIpID9zdGQgeCA9XG4gIGxldCBvYiA9XG4gICAgbWF0Y2ggYnVmIHdpdGhcbiAgICAgICAgTm9uZSAtPiBCdWZmZXIuY3JlYXRlIGxlblxuICAgICAgfCBTb21lIG9iIC0+XG4gICAgICAgICAgQnVmZmVyLmNsZWFyIG9iO1xuICAgICAgICAgIG9iXG4gIGluXG4gIHRvX2J1ZmZlciB+c3VmID9zdGQgb2IgeDtcbiAgbGV0IHMgPSBCdWZmZXIuY29udGVudHMgb2IgaW5cbiAgQnVmZmVyLmNsZWFyIG9iO1xuICBzXG5cbmxldCB0b19jaGFubmVsID9idWYgPyhsZW49NDA5NikgPyhzdWYgPSBcIlwiKSA/c3RkIG9jIHggPVxuICBsZXQgb2IgPVxuICAgIG1hdGNoIGJ1ZiB3aXRoXG4gICAgICAgIE5vbmUgLT4gQnVmZmVyLmNyZWF0ZSBsZW5cbiAgICAgIHwgU29tZSBvYiAtPiBCdWZmZXIuY2xlYXIgb2I7IG9iXG4gIGluXG4gIHRvX2J1ZmZlciB+c3VmID9zdGQgb2IgeDtcbiAgQnVmZmVyLm91dHB1dF9idWZmZXIgb2Mgb2I7XG4gIEJ1ZmZlci5jbGVhciBvYlxuXG5sZXQgdG9fb3V0cHV0ID9idWYgPyhsZW49NDA5NikgPyhzdWYgPSBcIlwiKSA/c3RkIG91dCB4ID1cbiAgbGV0IG9iID1cbiAgICBtYXRjaCBidWYgd2l0aFxuICAgICAgICBOb25lIC0+IEJ1ZmZlci5jcmVhdGUgbGVuXG4gICAgICB8IFNvbWUgb2IgLT4gQnVmZmVyLmNsZWFyIG9iOyBvYlxuICBpblxuICB0b19idWZmZXIgfnN1ZiA/c3RkIG9iIHg7XG4gIG91dCNvdXRwdXQgKEJ1ZmZlci5jb250ZW50cyBvYikgMCAoQnVmZmVyLmxlbmd0aCBvYik7XG4gIEJ1ZmZlci5jbGVhciBvYlxuXG5sZXQgdG9fZmlsZSA/bGVuID9zdGQgPyhzdWYgPSBcIlxcblwiKSBmaWxlIHggPVxuICBsZXQgb2MgPSBvcGVuX291dCBmaWxlIGluXG4gIHRyeVxuICAgIHRvX2NoYW5uZWwgP2xlbiB+c3VmID9zdGQgb2MgeDtcbiAgICBjbG9zZV9vdXQgb2NcbiAgd2l0aCBlIC0+XG4gICAgY2xvc2Vfb3V0X25vZXJyIG9jO1xuICAgIHJhaXNlIGVcblxubGV0IHNlcV90b19idWZmZXIgPyhzdWYgPSBcIlxcblwiKSA/c3RkIG9iIHN0ID1cbiAgU2VxLml0ZXIgKHRvX2J1ZmZlciB+c3VmID9zdGQgb2IpIHN0XG5cbmxldCBzZXFfdG9fc3RyaW5nID9idWYgPyhsZW4gPSAyNTYpID8oc3VmID0gXCJcXG5cIikgP3N0ZCBzdCA9XG4gIGxldCBvYiA9XG4gICAgbWF0Y2ggYnVmIHdpdGhcbiAgICAgICAgTm9uZSAtPiBCdWZmZXIuY3JlYXRlIGxlblxuICAgICAgfCBTb21lIG9iIC0+XG4gICAgICAgICAgQnVmZmVyLmNsZWFyIG9iO1xuICAgICAgICAgIG9iXG4gIGluXG4gIHNlcV90b19idWZmZXIgfnN1ZiA/c3RkIG9iIHN0O1xuICBsZXQgcyA9IEJ1ZmZlci5jb250ZW50cyBvYiBpblxuICBCdWZmZXIuY2xlYXIgb2I7XG4gIHNcblxubGV0IHNlcV90b19jaGFubmVsID9idWYgPyhsZW49MjA5NikgPyhzdWYgPSBcIlxcblwiKSA/c3RkIG9jIHNlcSA9XG4gIGxldCBvYiA9XG4gICAgbWF0Y2ggYnVmIHdpdGhcbiAgICAgICAgTm9uZSAtPiBCdWZmZXIuY3JlYXRlIGxlblxuICAgICAgfCBTb21lIG9iIC0+IEJ1ZmZlci5jbGVhciBvYjsgb2JcbiAgaW5cbiAgU2VxLml0ZXIgKGZ1biBqc29uIC0+XG4gICAgdG9fYnVmZmVyIH5zdWYgP3N0ZCBvYiBqc29uO1xuICAgIEJ1ZmZlci5vdXRwdXRfYnVmZmVyIG9jIG9iO1xuICAgIEJ1ZmZlci5jbGVhciBvYjtcbiAgKSBzZXFcblxubGV0IHNlcV90b19maWxlID9sZW4gPyhzdWYgPSBcIlxcblwiKSA/c3RkIGZpbGUgc3QgPVxuICBsZXQgb2MgPSBvcGVuX291dCBmaWxlIGluXG4gIHRyeVxuICAgIHNlcV90b19jaGFubmVsID9sZW4gfnN1ZiA/c3RkIG9jIHN0O1xuICAgIGNsb3NlX291dCBvY1xuICB3aXRoIGUgLT5cbiAgICBjbG9zZV9vdXRfbm9lcnIgb2M7XG4gICAgcmFpc2UgZVxuXG5cbmxldCByZWMgc29ydCA9IGZ1bmN0aW9uXG4gIHwgYEFzc29jIGwgLT5cbiAgICAgIGxldCBsID0gTGlzdC5yZXYgKExpc3QucmV2X21hcCAoZnVuIChrLCB2KSAtPiAoaywgc29ydCB2KSkgbCkgaW5cbiAgICAgIGBBc3NvYyAoTGlzdC5zdGFibGVfc29ydCAoZnVuIChhLCBfKSAoYiwgXykgLT4gU3RyaW5nLmNvbXBhcmUgYSBiKSBsKVxuICB8IGBMaXN0IGwgLT5cbiAgICAgIGBMaXN0IChMaXN0LnJldiAoTGlzdC5yZXZfbWFwIHNvcnQgbCkpXG4gIFxuIyA0ODUgXCJ3cml0ZS5tbFwiXG4gIHwgYFR1cGxlIGwgLT5cbiAgICAgIGBUdXBsZSAoTGlzdC5yZXYgKExpc3QucmV2X21hcCBzb3J0IGwpKVxuICBcbiMgNDg5IFwid3JpdGUubWxcIlxuICB8IGBWYXJpYW50IChrLCBTb21lIHYpIGFzIHggLT5cbiAgICAgIGxldCB2JyA9IHNvcnQgdiBpblxuICAgICAgaWYgdiA9PSB2JyB0aGVuIHhcbiAgICAgIGVsc2VcbiAgICAgICAgYFZhcmlhbnQgKGssIFNvbWUgdicpXG4gIFxuIyA0OTUgXCJ3cml0ZS5tbFwiXG4gIHwgeCAtPiB4XG4jIDEgXCJtb25vbW9ycGhpYy5tbFwiXG5sZXQgcmVjIHBwIGZtdCA9XG4gIGZ1bmN0aW9uXG4gIHwgYE51bGwgLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBmbXQgXCJgTnVsbFwiXG4gIHwgYEJvb2wgeCAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBCb29sIChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiJUJcIiB4O1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyA5IFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBJbnQgeCAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBJbnQgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlZFwiIHg7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDE1IFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBJbnRsaXQgeCAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBJbnRsaXQgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlU1wiIHg7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDIxIFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBGbG9hdCB4IC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYEZsb2F0IChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiJUZcIiB4O1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyAyNyBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgRmxvYXRsaXQgeCAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBGbG9hdGxpdCAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVTXCIgeDtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgMzMgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYFN0cmluZyB4IC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYFN0cmluZyAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVTXCIgeDtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgMzkgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYFN0cmluZ2xpdCB4IC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYFN0cmluZ2xpdCAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVTXCIgeDtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgNDQgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYEFzc29jIHhzIC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYEFzc29jIChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQFs8Mj5bXCI7XG4gICAgaWdub3JlIChMaXN0LmZvbGRfbGVmdFxuICAgICAgKGZ1biBzZXAgKGtleSwgdmFsdWUpIC0+XG4gICAgICAgIGlmIHNlcCB0aGVuXG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiO0AgXCI7XG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiKEBbXCI7XG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiJVNcIiBrZXk7XG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiLEAgXCI7XG4gICAgICAgICAgcHAgZm10IHZhbHVlO1xuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiO1xuICAgICAgICAgIHRydWUpIGZhbHNlIHhzKTtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJALF1AXVwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIHwgYExpc3QgeHMgLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgTGlzdCAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBbPDI+W1wiO1xuICAgIGlnbm9yZSAoTGlzdC5mb2xkX2xlZnRcbiAgICAgIChmdW4gc2VwIHggLT5cbiAgICAgICAgaWYgc2VwIHRoZW5cbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCI7QCBcIjtcbiAgICAgICAgICBwcCBmbXQgeDtcbiAgICAgICAgICB0cnVlKSBmYWxzZSB4cyk7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQCxdQF1cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgNzEgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYFR1cGxlIHR1cCAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBUdXBsZSAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBbPDI+W1wiO1xuICAgIGlnbm9yZSAoTGlzdC5mb2xkX2xlZnRcbiAgICAgIChmdW4gc2VwIGUgLT5cbiAgICAgICAgIGlmIHNlcCB0aGVuXG4gICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIjtAIFwiO1xuICAgICAgICAgICBwcCBmbXQgZTtcbiAgICAgICAgICAgdHJ1ZSkgZmFsc2UgdHVwKTtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJALF1AXVwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyA4NCBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgVmFyaWFudCAobmFtZSwgdmFsdWUpIC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYFZhcmlhbnQgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIoQFtcIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlU1wiIG5hbWU7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiLEAgXCI7XG4gICAgKG1hdGNoIHZhbHVlIHdpdGhcbiAgICAgIHwgTm9uZSAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIGZtdCBcIk5vbmVcIlxuICAgICAgfCBTb21lIHggLT5cbiAgICAgICAgRm9ybWF0LnBwX3ByaW50X3N0cmluZyBmbXQgXCIoU29tZSBcIjtcbiAgICAgICAgcHAgZm10IHg7XG4gICAgICAgIEZvcm1hdC5wcF9wcmludF9zdHJpbmcgZm10IFwiKVwiKTtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuXG4jIDk5IFwibW9ub21vcnBoaWMubWxcIlxubGV0IHNob3cgeCA9XG4gIEZvcm1hdC5hc3ByaW50ZiBcIiVhXCIgcHAgeFxuXG5sZXQgcmVjIGVxdWFsIGEgYiA9XG4gIG1hdGNoIGEsIGIgd2l0aFxuICB8IGBOdWxsLCBgTnVsbCAtPiB0cnVlXG4gIHwgYEJvb2wgYSwgYEJvb2wgYiAtPiBhID0gYlxuICBcbiMgMTA3IFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBJbnQgYSwgYEludCBiIC0+IGEgPSBiXG4gICAgXG4jIDExMCBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBJbnRsaXQgYSwgYEludGxpdCBiIC0+IGEgPSBiXG4gICAgXG4jIDExMyBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBGbG9hdCBhLCBgRmxvYXQgYiAtPiBhID0gYlxuICAgIFxuIyAxMTYgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgRmxvYXRsaXQgYSwgYEZsb2F0bGl0IGIgLT4gYSA9IGJcbiAgICBcbiMgMTE5IFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYFN0cmluZyBhLCBgU3RyaW5nIGIgLT4gYSA9IGJcbiAgICBcbiMgMTIyIFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYFN0cmluZ2xpdCBhLCBgU3RyaW5nbGl0IGIgLT4gYSA9IGJcbiAgICBcbiMgMTI0IFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYEFzc29jIHhzLCBgQXNzb2MgeXMgLT5cbiAgICAgIGxldCBjb21wYXJlX2tleXMgPSBmdW4gKGtleSwgXykgKGtleScsIF8pIC0+IFN0cmluZy5jb21wYXJlIGtleSBrZXknIGluXG4gICAgICBsZXQgeHMgPSBMaXN0LnN0YWJsZV9zb3J0IGNvbXBhcmVfa2V5cyB4cyBpblxuICAgICAgbGV0IHlzID0gTGlzdC5zdGFibGVfc29ydCBjb21wYXJlX2tleXMgeXMgaW5cbiAgICAgIChtYXRjaCBMaXN0LmZvcl9hbGwyIChmdW4gKGtleSwgdmFsdWUpIChrZXknLCB2YWx1ZScpIC0+XG4gICAgICAgIG1hdGNoIGtleSA9IGtleScgd2l0aFxuICAgICAgICB8IGZhbHNlIC0+IGZhbHNlXG4gICAgICAgIHwgdHJ1ZSAtPiBlcXVhbCB2YWx1ZSB2YWx1ZScpIHhzIHlzIHdpdGhcbiAgICAgIHwgcmVzdWx0IC0+IHJlc3VsdFxuICAgICAgfCBleGNlcHRpb24gSW52YWxpZF9hcmd1bWVudCBfIC0+XG4gICAgICAgICgqIHRoZSBsaXN0cyB3ZXJlIG9mIGRpZmZlcmVudCBsZW5ndGhzLCB0aHVzIHVuZXF1YWwgKilcbiAgICAgICAgZmFsc2UpXG4gICAgXG4jIDEzNyBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBUdXBsZSB4cywgYFR1cGxlIHlzXG4gICAgXG4jIDEzOSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBMaXN0IHhzLCBgTGlzdCB5cyAtPlxuICAgICAgKG1hdGNoIExpc3QuZm9yX2FsbDIgZXF1YWwgeHMgeXMgd2l0aFxuICAgICAgfCByZXN1bHQgLT4gcmVzdWx0XG4gICAgICB8IGV4Y2VwdGlvbiBJbnZhbGlkX2FyZ3VtZW50IF8gLT5cbiAgICAgICAgKCogdGhlIGxpc3RzIHdlcmUgb2YgZGlmZmVyZW50IGxlbmd0aHMsIHRodXMgdW5lcXVhbCAqKVxuICAgICAgICBmYWxzZSlcbiAgICBcbiMgMTQ2IFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYFZhcmlhbnQgKG5hbWUsIHZhbHVlKSwgYFZhcmlhbnQgKG5hbWUnLCB2YWx1ZScpIC0+XG4gICAgICAobWF0Y2ggbmFtZSA9IG5hbWUnIHdpdGhcbiAgICAgIHwgZmFsc2UgLT4gZmFsc2VcbiAgICAgIHwgdHJ1ZSAtPlxuICAgICAgICBtYXRjaCB2YWx1ZSwgdmFsdWUnIHdpdGhcbiAgICAgICAgfCBOb25lLCBOb25lIC0+IHRydWVcbiAgICAgICAgfCBTb21lIHgsIFNvbWUgeSAtPiBlcXVhbCB4IHlcbiAgICAgICAgfCBfIC0+IGZhbHNlKVxuICAgIFxuIyAxNTUgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBfIC0+IGZhbHNlXG4jIDE0IFwieW9qc29uLmNwcG8ubWxcIlxubW9kdWxlIFByZXR0eSA9XG5zdHJ1Y3RcbiMgMSBcInByZXR0eS5tbFwiXG4oKlxuICAgUHJldHR5LXByaW50IEpTT04gZGF0YSBpbiBhbiBhdHRlbXB0IHRvIG1heGltaXplIHJlYWRhYmlsaXR5LlxuXG4gICAxLiBXaGF0IGZpdHMgb24gb25lIGxpbmUgc3RheXMgb24gb25lIGxpbmUuXG4gICAyLiBXaGF0IGRvZXNuJ3QgZml0IG9uIG9uZSBsaW5lIGdldHMgcHJpbnRlZCBtb3JlIHZlcnRpY2FsbHkgc28gYXMgdG8gbm90XG4gICAgICBleGNlZWQgYSByZWFzb25hYmxlIHBhZ2Ugd2lkdGgsIGlmIHBvc3NpYmxlLlxuXG4gICBBcnJheXMgY29udGFpbmluZyBvbmx5IHNpbXBsZSBlbGVtZW50cyAoXCJhdG9tc1wiKSBhcmUgcHJldHR5LXByaW50ZWQgd2l0aFxuICAgZW5kLW9mLWxpbmUgd3JhcHBpbmcgbGlrZSBvcmRpbmFyeSB0ZXh0OlxuXG4gICAgIFtcbiAgICAgICAgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsXG4gICAgICAgIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiXG4gICAgIF1cblxuICAgT3RoZXIgYXJyYXlzIGFyZSBwcmludGVkIGVpdGhlciBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBkZXBlbmRpbmdcbiAgIG9uIHdoZXRoZXIgdGhleSBmaXQgb24gYSBzaW5nbGUgbGluZTpcblxuICAgICBbIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfSwgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9LCB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH0gXVxuXG4gICBvclxuXG4gICAgIFtcbiAgICAgICB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH0sXG4gICAgICAgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9LFxuICAgICAgIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfSxcbiAgICAgICB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH1cbiAgICAgXVxuKilcblxubGV0IHBwX2xpc3Qgc2VwIHBweCBvdXQgbCA9XG4gIGxldCBwcF9zZXAgb3V0ICgpID0gRm9ybWF0LmZwcmludGYgb3V0IFwiJXNAIFwiIHNlcCBpblxuICBGb3JtYXQucHBfcHJpbnRfbGlzdCB+cHBfc2VwIHBweCBvdXQgbFxuXG5sZXQgaXNfYXRvbSAoeDogWz4gdF0pID1cbiAgbWF0Y2ggeCB3aXRoXG4gIHwgYE51bGxcbiAgfCBgQm9vbCBfXG4gIHwgYEludCBfXG4gIHwgYEZsb2F0IF9cbiAgfCBgU3RyaW5nIF9cbiAgfCBgSW50bGl0IF9cbiAgfCBgRmxvYXRsaXQgX1xuICB8IGBTdHJpbmdsaXQgX1xuICB8IGBMaXN0IFtdXG4gIHwgYEFzc29jIFtdXG4gIHwgYFR1cGxlIFtdXG4gIHwgYFZhcmlhbnQgKF8sIE5vbmUpIC0+IHRydWVcbiAgfCBgTGlzdCBfXG4gIHwgYEFzc29jIF9cbiAgfCBgVHVwbGUgX1xuICB8IGBWYXJpYW50IChfLCBTb21lIF8pIC0+IGZhbHNlXG5cbmxldCBpc19hdG9tX2xpc3QgbCA9XG4gIExpc3QuZm9yX2FsbCBpc19hdG9tIGxcblxuKCpcbiAgIGluc2lkZV9ib3g6IGluZGljYXRlcyB0aGF0IHdlJ3JlIGFscmVhZHkgd2l0aGluIGEgYm94IHRoYXQgaW1wb3Nlc1xuICAgYSBjZXJ0YWluIHN0eWxlIGFuZCB3ZSBzaG91bGRuJ3QgY3JlYXRlIGEgbmV3IG9uZS4gVGhpcyBpcyB1c2VkIGZvclxuICAgcHJpbnRpbmcgZmllbGQgdmFsdWVzIGxpa2UgdGhpczpcblxuICAgICBmb286IFtcbiAgICAgICBiYXJcbiAgICAgXVxuXG4gICByYXRoZXIgdGhhbiBzb21ldGhpbmcgZWxzZSBsaWtlXG5cbiAgICAgZm9vOlxuICAgICAgIFtcbiAgICAgICAgIGJhclxuICAgICAgIF1cbiopXG5sZXQgcmVjIGZvcm1hdCB+aW5zaWRlX2JveCBzdGQgKG91dDpGb3JtYXQuZm9ybWF0dGVyKSAoeDp0KSA6IHVuaXQgPVxuICBtYXRjaCB4IHdpdGhcbiAgICB8IGBOdWxsIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IFwibnVsbFwiXG4gICAgfCBgQm9vbCB4IC0+IEZvcm1hdC5wcF9wcmludF9ib29sIG91dCB4XG4gICAgXG4jIDc4IFwicHJldHR5Lm1sXCJcbiAgICB8IGBJbnQgeCAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCAoanNvbl9zdHJpbmdfb2ZfaW50IHgpXG4gICAgXG4jIDgxIFwicHJldHR5Lm1sXCJcbiAgICB8IGBGbG9hdCB4IC0+XG4gICAgICAgIGxldCBzID1cbiAgICAgICAgICBpZiBzdGQgdGhlbiBzdGRfanNvbl9zdHJpbmdfb2ZfZmxvYXQgeFxuICAgICAgICAgIGVsc2UganNvbl9zdHJpbmdfb2ZfZmxvYXQgeFxuICAgICAgICBpblxuICAgICAgICBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBzXG4gICAgXG4jIDg5IFwicHJldHR5Lm1sXCJcbiAgICB8IGBTdHJpbmcgcyAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCAoanNvbl9zdHJpbmdfb2Zfc3RyaW5nIHMpXG4gICAgXG4jIDkyIFwicHJldHR5Lm1sXCJcbiAgICB8IGBJbnRsaXQgcyAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBzXG4gICAgXG4jIDk1IFwicHJldHR5Lm1sXCJcbiAgICB8IGBGbG9hdGxpdCBzIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IHNcbiAgICBcbiMgOTggXCJwcmV0dHkubWxcIlxuICAgIHwgYFN0cmluZ2xpdCBzIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IHNcbiAgICBcbiMgMTAwIFwicHJldHR5Lm1sXCJcbiAgICB8IGBMaXN0IFtdIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IFwiW11cIlxuICAgIHwgYExpc3QgbCAtPlxuICAgICAgaWYgbm90IGluc2lkZV9ib3ggdGhlbiBGb3JtYXQuZnByaW50ZiBvdXQgXCJAWzxodjI+XCI7XG4gICAgICBpZiBpc19hdG9tX2xpc3QgbCB0aGVuXG4gICAgICAgICgqIHVzZSBsaW5lIHdyYXBwaW5nIGxpa2Ugd2Ugd291bGQgZG8gZm9yIGEgcGFyYWdyYXBoIG9mIHRleHQgKilcbiAgICAgICAgRm9ybWF0LmZwcmludGYgb3V0IFwiW0A7PDEgMD5AWzxob3Y+JWFAXUA7PDEgLTI+XVwiXG4gICAgICAgICAgKHBwX2xpc3QgXCIsXCIgKGZvcm1hdCB+aW5zaWRlX2JveDpmYWxzZSBzdGQpKSBsXG4gICAgICBlbHNlXG4gICAgICAgICgqIHByaW50IHRoZSBlbGVtZW50cyBob3Jpem9udGFsbHkgaWYgdGhleSBmaXQgb24gdGhlIGxpbmUsXG4gICAgICAgICAgIG90aGVyd2lzZSBwcmludCB0aGVtIGluIGEgY29sdW1uICopXG4gICAgICAgIEZvcm1hdC5mcHJpbnRmIG91dCBcIltAOzwxIDA+QFs8aHY+JWFAXUA7PDEgLTI+XVwiXG4gICAgICAgICAgKHBwX2xpc3QgXCIsXCIgKGZvcm1hdCB+aW5zaWRlX2JveDpmYWxzZSBzdGQpKSBsO1xuICAgICAgaWYgbm90IGluc2lkZV9ib3ggdGhlbiBGb3JtYXQuZnByaW50ZiBvdXQgXCJAXVwiO1xuICAgIHwgYEFzc29jIFtdIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IFwie31cIlxuICAgIHwgYEFzc29jIGwgLT5cbiAgICAgIGlmIG5vdCBpbnNpZGVfYm94IHRoZW4gRm9ybWF0LmZwcmludGYgb3V0IFwiQFs8aHYyPlwiO1xuICAgICAgRm9ybWF0LmZwcmludGYgb3V0IFwie0A7PDEgMD4lYUA7PDEgLTI+fVwiIChwcF9saXN0IFwiLFwiIChmb3JtYXRfZmllbGQgc3RkKSkgbDtcbiAgICAgIGlmIG5vdCBpbnNpZGVfYm94IHRoZW4gRm9ybWF0LmZwcmludGYgb3V0IFwiQF1cIjtcbiAgICBcbiMgMTE5IFwicHJldHR5Lm1sXCJcbiAgICB8IGBUdXBsZSBsIC0+XG4gICAgICAgIGlmIHN0ZCB0aGVuXG4gICAgICAgICAgZm9ybWF0IH5pbnNpZGVfYm94IHN0ZCBvdXQgKGBMaXN0IGwpXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBpZiBsID0gW10gdGhlblxuICAgICAgICAgICAgRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgXCIoKVwiXG4gICAgICAgICAgZWxzZSAoXG4gICAgICAgICAgICBpZiBub3QgaW5zaWRlX2JveCB0aGVuIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBbPGhvdjI+XCI7XG4gICAgICAgICAgICBGb3JtYXQuZnByaW50ZiBvdXQgXCIoQCwlYUA7PDAgLTI+KVwiIChwcF9saXN0IFwiLFwiIChmb3JtYXQgfmluc2lkZV9ib3g6ZmFsc2Ugc3RkKSkgbDtcbiAgICAgICAgICAgIGlmIG5vdCBpbnNpZGVfYm94IHRoZW4gRm9ybWF0LmZwcmludGYgb3V0IFwiQF1cIjtcbiAgICAgICAgICApXG4gICAgXG4jIDEzMiBcInByZXR0eS5tbFwiXG4gICAgfCBgVmFyaWFudCAocywgTm9uZSkgLT5cbiAgICAgICAgaWYgc3RkIHRoZW5cbiAgICAgICAgICBcbiMgMTM1IFwicHJldHR5Lm1sXCJcbiAgICAgICAgICBsZXQgcmVwcmVzZW50YXRpb24gPSBgU3RyaW5nIHMgaW5cbiAgICAgICAgICBcbiMgMTM5IFwicHJldHR5Lm1sXCJcbiAgICAgICAgICBmb3JtYXQgfmluc2lkZV9ib3ggc3RkIG91dCByZXByZXNlbnRhdGlvblxuICAgICAgICBlbHNlXG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgb3V0IFwiPCVzPlwiIChqc29uX3N0cmluZ19vZl9zdHJpbmcgcylcblxuICAgIHwgYFZhcmlhbnQgKHMsIFNvbWUgeCkgLT5cbiAgICAgICAgaWYgc3RkIHRoZW5cbiAgICAgICAgICBcbiMgMTQ2IFwicHJldHR5Lm1sXCJcbiAgICAgICAgICBsZXQgcmVwcmVzZW50YXRpb24gPSBgU3RyaW5nIHMgaW5cbiAgICAgICAgICBcbiMgMTUwIFwicHJldHR5Lm1sXCJcbiAgICAgICAgICBmb3JtYXQgfmluc2lkZV9ib3ggc3RkIG91dCAoYExpc3QgWyByZXByZXNlbnRhdGlvbjsgeCBdKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgbGV0IG9wID0ganNvbl9zdHJpbmdfb2Zfc3RyaW5nIHMgaW5cbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBvdXQgXCI8QFs8aHYyPiVzOiAlYUBdPlwiIG9wIChmb3JtYXQgfmluc2lkZV9ib3g6dHJ1ZSBzdGQpIHhcblxuIyAxNTYgXCJwcmV0dHkubWxcIlxuYW5kIGZvcm1hdF9maWVsZCBzdGQgb3V0IChuYW1lLCB4KSA9XG4gIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBbPGh2Mj4lczogJWFAXVwiIChqc29uX3N0cmluZ19vZl9zdHJpbmcgbmFtZSkgKGZvcm1hdCB+aW5zaWRlX2JveDp0cnVlIHN0ZCkgeFxuXG5sZXQgcHAgPyhzdGQgPSBmYWxzZSkgb3V0IHggPVxuICBGb3JtYXQuZnByaW50ZiBvdXQgXCJAWzxodjI+JWFAXVwiIChmb3JtYXQgfmluc2lkZV9ib3g6dHJ1ZSBzdGQpICh4IDo+IHQpXG5cbmxldCB0b19zdHJpbmcgP3N0ZCB4ID1cbiAgRm9ybWF0LmFzcHJpbnRmIFwiJWFcIiAocHAgP3N0ZCkgeFxuXG5sZXQgdG9fY2hhbm5lbCA/c3RkIG9jIHggPVxuICBsZXQgZm10ID0gRm9ybWF0LmZvcm1hdHRlcl9vZl9vdXRfY2hhbm5lbCBvYyBpblxuICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlYUA/XCIgKHBwID9zdGQpIHhcbiMgMTcgXCJ5b2pzb24uY3Bwby5tbFwiXG5lbmRcblxuIyAyIFwid3JpdGUyLm1sXCJcbmxldCBwcmV0dHlfcHJpbnQgP3N0ZCBvdXQgeCA9XG4gIFByZXR0eS5wcCA/c3RkIG91dCB4XG5cbmxldCBwcmV0dHlfdG9fc3RyaW5nID9zdGQgeCA9XG4gIFByZXR0eS50b19zdHJpbmcgP3N0ZCB4XG5cbmxldCBwcmV0dHlfdG9fY2hhbm5lbCA/c3RkIG9jIHggPVxuICBQcmV0dHkudG9fY2hhbm5lbCA/c3RkIG9jIHhcblxuIyAyOCBcInlvanNvbi5jcHBvLm1sXCJcbm1vZHVsZSBCYXNpYyA9XG5zdHJ1Y3RcbiMgMSBcInR5cGUubWxcIlxuKCoqIHszIFR5cGUgb2YgdGhlIEpTT04gdHJlZX0gKilcblxudHlwZSB0ID1cbiAgICBbXG4gICAgfCBgTnVsbFxuICAgIHwgYEJvb2wgb2YgYm9vbFxuICAgIFxuIyA4IFwidHlwZS5tbFwiXG4gICAgfCBgSW50IG9mIGludFxuICAgIFxuIyAxNCBcInR5cGUubWxcIlxuICAgIHwgYEZsb2F0IG9mIGZsb2F0XG4gICAgXG4jIDIwIFwidHlwZS5tbFwiXG4gICAgfCBgU3RyaW5nIG9mIHN0cmluZ1xuICAgIFxuIyAyNSBcInR5cGUubWxcIlxuICAgIHwgYEFzc29jIG9mIChzdHJpbmcgKiB0KSBsaXN0XG4gICAgfCBgTGlzdCBvZiB0IGxpc3RcbiAgICBcbiMgMzMgXCJ0eXBlLm1sXCJcbiAgICBdXG4oKipcbkFsbCBwb3NzaWJsZSBjYXNlcyBkZWZpbmVkIGluIFlvanNvbjpcbi0gYE51bGw6IEpTT04gbnVsbFxuLSBgQm9vbCBvZiBib29sOiBKU09OIGJvb2xlYW5cbi0gYEludCBvZiBpbnQ6IEpTT04gbnVtYmVyIHdpdGhvdXQgZGVjaW1hbCBwb2ludCBvciBleHBvbmVudC5cbi0gYEludGxpdCBvZiBzdHJpbmc6IEpTT04gbnVtYmVyIHdpdGhvdXQgZGVjaW1hbCBwb2ludCBvciBleHBvbmVudCxcblx0ICAgIHByZXNlcnZlZCBhcyBhIHN0cmluZy5cbi0gYEZsb2F0IG9mIGZsb2F0OiBKU09OIG51bWJlciwgSW5maW5pdHksIC1JbmZpbml0eSBvciBOYU4uXG4tIGBGbG9hdGxpdCBvZiBzdHJpbmc6IEpTT04gbnVtYmVyLCBJbmZpbml0eSwgLUluZmluaXR5IG9yIE5hTixcblx0ICAgIHByZXNlcnZlZCBhcyBhIHN0cmluZy5cbi0gYFN0cmluZyBvZiBzdHJpbmc6IEpTT04gc3RyaW5nLiBCeXRlcyBpbiB0aGUgcmFuZ2UgMTI4LTI1NSBhcmUgcHJlc2VydmVkXG5cdCAgICBhcy1pcyB3aXRob3V0IGVuY29kaW5nIHZhbGlkYXRpb24gZm9yIGJvdGggcmVhZGluZ1xuXHQgICAgYW5kIHdyaXRpbmcuXG4tIGBTdHJpbmdsaXQgb2Ygc3RyaW5nOiBKU09OIHN0cmluZyBsaXRlcmFsIGluY2x1ZGluZyB0aGUgZG91YmxlIHF1b3Rlcy5cbi0gYEFzc29jIG9mIChzdHJpbmcgKiBqc29uKSBsaXN0OiBKU09OIG9iamVjdC5cbi0gYExpc3Qgb2YganNvbiBsaXN0OiBKU09OIGFycmF5LlxuLSBgVHVwbGUgb2YganNvbiBsaXN0OiBUdXBsZSAobm9uLXN0YW5kYXJkIGV4dGVuc2lvbiBvZiBKU09OKS5cblx0ICAgIFN5bnRheDogWyhcImFiY1wiLCAxMjMpXS5cbi0gYFZhcmlhbnQgb2YgKHN0cmluZyAqIGpzb24gb3B0aW9uKTogVmFyaWFudCAobm9uLXN0YW5kYXJkIGV4dGVuc2lvbiBvZiBKU09OKS5cblx0ICAgIFN5bnRheDogWzxcIkZvb1wiPl0gb3IgWzxcIkJhclwiOjEyMz5dLlxuKilcblxuKCpcbiAgTm90ZSB0byBhZHZlbnR1cmVyczogb2NhbWxkb2MgZG9lcyBub3Qgc3VwcG9ydCBpbmxpbmUgY29tbWVudHNcbiAgb24gZWFjaCBwb2x5bW9ycGhpYyB2YXJpYW50LCBhbmQgY3BwbyBkb2Vzbid0IGFsbG93IHRvIGNvbmNhdGVuYXRlXG4gIGNvbW1lbnRzLCBzbyBpdCB3b3VsZCBiZSBjb21wbGljYXRlZCB0byBkb2N1bWVudCBvbmx5IHRoZVxuICBjYXNlcyB0aGF0IGFyZSBwcmVzZXJ2ZWQgYnkgY3BwbyBpbiB0aGUgdHlwZSBkZWZpbml0aW9uLlxuKilcbiMgMSBcIndyaXRlLm1sXCJcbigqIGluY2x1ZGVkOiB0eXBlLm1sICopXG5cbmxldCBoZXggbiA9XG4gIENoYXIuY2hyIChcbiAgICBpZiBuIDwgMTAgdGhlbiBuICsgNDhcbiAgICBlbHNlIG4gKyA4N1xuICApXG5cbmxldCB3cml0ZV9zcGVjaWFsIHNyYyBzdGFydCBzdG9wIG9iIHN0ciA9XG4gIEJ1ZmZlci5hZGRfc3Vic3RyaW5nIG9iIHNyYyAhc3RhcnQgKHN0b3AgLSAhc3RhcnQpO1xuICBCdWZmZXIuYWRkX3N0cmluZyBvYiBzdHI7XG4gIHN0YXJ0IDo9IHN0b3AgKyAxXG5cbmxldCB3cml0ZV9jb250cm9sX2NoYXIgc3JjIHN0YXJ0IHN0b3Agb2IgYyA9XG4gIEJ1ZmZlci5hZGRfc3Vic3RyaW5nIG9iIHNyYyAhc3RhcnQgKHN0b3AgLSAhc3RhcnQpO1xuICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIlxcXFx1MDBcIjtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iIChoZXggKENoYXIuY29kZSBjIGxzciA0KSk7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAoaGV4IChDaGFyLmNvZGUgYyBsYW5kIDB4ZikpO1xuICBzdGFydCA6PSBzdG9wICsgMVxuXG5sZXQgZmluaXNoX3N0cmluZyBzcmMgc3RhcnQgb2IgPVxuICB0cnlcbiAgICBCdWZmZXIuYWRkX3N1YnN0cmluZyBvYiBzcmMgIXN0YXJ0IChTdHJpbmcubGVuZ3RoIHNyYyAtICFzdGFydClcbiAgd2l0aCBleGMgLT5cbiAgICBQcmludGYuZXByaW50ZiBcInNyYz0lUyBzdGFydD0laSBsZW49JWlcXG4lIVwiXG4gICAgICBzcmMgIXN0YXJ0IChTdHJpbmcubGVuZ3RoIHNyYyAtICFzdGFydCk7XG4gICAgcmFpc2UgZXhjXG5cbmxldCB3cml0ZV9zdHJpbmdfYm9keSBvYiBzID1cbiAgbGV0IHN0YXJ0ID0gcmVmIDAgaW5cbiAgZm9yIGkgPSAwIHRvIFN0cmluZy5sZW5ndGggcyAtIDEgZG9cbiAgICBtYXRjaCBzLltpXSB3aXRoXG4gICAgICAgICdcIicgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcXFxcIlwiXG4gICAgICB8ICdcXFxcJyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFxcXFxcXCJcbiAgICAgIHwgJ1xcYicgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcYlwiXG4gICAgICB8ICdcXDAxMicgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcZlwiXG4gICAgICB8ICdcXG4nIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXG5cIlxuICAgICAgfCAnXFxyJyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFxyXCJcbiAgICAgIHwgJ1xcdCcgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcdFwiXG4gICAgICB8ICdcXHgwMCcuLidcXHgxRidcbiAgICAgIHwgJ1xceDdGJyBhcyBjIC0+IHdyaXRlX2NvbnRyb2xfY2hhciBzIHN0YXJ0IGkgb2IgY1xuICAgICAgfCBfIC0+ICgpXG4gIGRvbmU7XG4gIGZpbmlzaF9zdHJpbmcgcyBzdGFydCBvYlxuXG5sZXQgd3JpdGVfc3RyaW5nIG9iIHMgPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ1wiJztcbiAgd3JpdGVfc3RyaW5nX2JvZHkgb2IgcztcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICdcIidcblxubGV0IGpzb25fc3RyaW5nX29mX3N0cmluZyBzID1cbiAgbGV0IG9iID0gQnVmZmVyLmNyZWF0ZSAxMCBpblxuICB3cml0ZV9zdHJpbmcgb2IgcztcbiAgQnVmZmVyLmNvbnRlbnRzIG9iXG5cbmxldCB0ZXN0X3N0cmluZyAoKSA9XG4gIGxldCBzID0gQnl0ZXMuY3JlYXRlIDI1NiBpblxuICBmb3IgaSA9IDAgdG8gMjU1IGRvXG4gICAgQnl0ZXMuc2V0IHMgaSAoQ2hhci5jaHIgaSlcbiAgZG9uZTtcbiAganNvbl9zdHJpbmdfb2Zfc3RyaW5nIChCeXRlcy50b19zdHJpbmcgcylcblxuXG5sZXQgd3JpdGVfbnVsbCBvYiAoKSA9XG4gIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwibnVsbFwiXG5cbmxldCB3cml0ZV9ib29sIG9iIHggPVxuICBCdWZmZXIuYWRkX3N0cmluZyBvYiAoaWYgeCB0aGVuIFwidHJ1ZVwiIGVsc2UgXCJmYWxzZVwiKVxuXG5cbmxldCBtYXhfZGlnaXRzID1cbiAgbWF4XG4gICAgKFN0cmluZy5sZW5ndGggKHN0cmluZ19vZl9pbnQgbWF4X2ludCkpXG4gICAgKFN0cmluZy5sZW5ndGggKHN0cmluZ19vZl9pbnQgbWluX2ludCkpXG5cbmxldCBkZWMgbiA9XG4gIENoYXIuY2hyIChuICsgNDgpXG5cbmxldCByZWMgd3JpdGVfZGlnaXRzIHMgeCA9XG4gIGlmIHggPSAwIHRoZW4gKClcbiAgZWxzZVxuICAgIGxldCBkID0geCBtb2QgMTAgaW5cbiAgICB3cml0ZV9kaWdpdHMgcyAoeCAvIDEwKTtcbiAgICBCdWZmZXIuYWRkX2NoYXIgcyAoZGVjIChhYnMgZCkpXG5cbmxldCB3cml0ZV9pbnQgb2IgeCA9XG4gIGlmIHggPiAwIHRoZW5cbiAgICB3cml0ZV9kaWdpdHMgb2IgeFxuICBlbHNlIGlmIHggPCAwIHRoZW4gKFxuICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnLSc7XG4gICAgd3JpdGVfZGlnaXRzIG9iIHhcbiAgKVxuICBlbHNlXG4gICAgQnVmZmVyLmFkZF9jaGFyIG9iICcwJ1xuXG5cbmxldCBqc29uX3N0cmluZ19vZl9pbnQgaSA9XG4gIHN0cmluZ19vZl9pbnQgaVxuXG5cbigqXG4gIEVuc3VyZSB0aGF0IHRoZSBmbG9hdCBpcyBub3QgcHJpbnRlZCBhcyBhbiBpbnQuXG4gIFRoaXMgaXMgbm90IHJlcXVpcmVkIGJ5IEpTT04sIGJ1dCB1c2VmdWwgaW4gb3JkZXIgdG8gZ3VhcmFudGVlXG4gIHJldmVyc2liaWxpdHkuXG4qKVxubGV0IGZsb2F0X25lZWRzX3BlcmlvZCBzID1cbiAgdHJ5XG4gICAgZm9yIGkgPSAwIHRvIFN0cmluZy5sZW5ndGggcyAtIDEgZG9cbiAgICAgIG1hdGNoIHMuW2ldIHdpdGhcbiAgICAgICAgICAnMCcuLic5JyB8ICctJyAtPiAoKVxuICAgICAgICB8IF8gLT4gcmFpc2UgRXhpdFxuICAgIGRvbmU7XG4gICAgdHJ1ZVxuICB3aXRoIEV4aXQgLT5cbiAgICBmYWxzZVxuXG4oKlxuICBHdWFyYW50ZWVzIHRoYXQgYSBzdWZmaWNpZW50IG51bWJlciBvZiBkaWdpdHMgYXJlIHByaW50ZWQgaW4gb3JkZXIgdG8gYWxsb3dcbiAgcmV2ZXJzaWJpbGl0eS5cbiopXG5sZXQgd3JpdGVfZmxvYXQgb2IgeCA9XG4gIG1hdGNoIGNsYXNzaWZ5X2Zsb2F0IHggd2l0aFxuICAgIEZQX25hbiAtPlxuICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCJOYU5cIlxuICB8IEZQX2luZmluaXRlIC0+XG4gICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiAoaWYgeCA+IDAuIHRoZW4gXCJJbmZpbml0eVwiIGVsc2UgXCItSW5maW5pdHlcIilcbiAgfCBfIC0+XG4gICAgICBsZXQgczEgPSBQcmludGYuc3ByaW50ZiBcIiUuMTZnXCIgeCBpblxuICAgICAgbGV0IHMgPVxuICAgICAgICBpZiBmbG9hdF9vZl9zdHJpbmcgczEgPSB4IHRoZW4gczFcbiAgICAgICAgZWxzZSBQcmludGYuc3ByaW50ZiBcIiUuMTdnXCIgeFxuICAgICAgaW5cbiAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHM7XG4gICAgICBpZiBmbG9hdF9uZWVkc19wZXJpb2QgcyB0aGVuXG4gICAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwiLjBcIlxuXG5sZXQgd3JpdGVfbm9ybWFsX2Zsb2F0X3ByZWMgc2lnbmlmaWNhbnRfZmlndXJlcyBvYiB4ID1cbiAgbGV0IG9wZW4gUHJpbnRmIGluXG4gIGxldCBzID1cbiAgICBtYXRjaCBzaWduaWZpY2FudF9maWd1cmVzIHdpdGhcbiAgICAgICAgMSAtPiBzcHJpbnRmIFwiJS4xZ1wiIHhcbiAgICAgIHwgMiAtPiBzcHJpbnRmIFwiJS4yZ1wiIHhcbiAgICAgIHwgMyAtPiBzcHJpbnRmIFwiJS4zZ1wiIHhcbiAgICAgIHwgNCAtPiBzcHJpbnRmIFwiJS40Z1wiIHhcbiAgICAgIHwgNSAtPiBzcHJpbnRmIFwiJS41Z1wiIHhcbiAgICAgIHwgNiAtPiBzcHJpbnRmIFwiJS42Z1wiIHhcbiAgICAgIHwgNyAtPiBzcHJpbnRmIFwiJS43Z1wiIHhcbiAgICAgIHwgOCAtPiBzcHJpbnRmIFwiJS44Z1wiIHhcbiAgICAgIHwgOSAtPiBzcHJpbnRmIFwiJS45Z1wiIHhcbiAgICAgIHwgMTAgLT4gc3ByaW50ZiBcIiUuMTBnXCIgeFxuICAgICAgfCAxMSAtPiBzcHJpbnRmIFwiJS4xMWdcIiB4XG4gICAgICB8IDEyIC0+IHNwcmludGYgXCIlLjEyZ1wiIHhcbiAgICAgIHwgMTMgLT4gc3ByaW50ZiBcIiUuMTNnXCIgeFxuICAgICAgfCAxNCAtPiBzcHJpbnRmIFwiJS4xNGdcIiB4XG4gICAgICB8IDE1IC0+IHNwcmludGYgXCIlLjE1Z1wiIHhcbiAgICAgIHwgMTYgLT4gc3ByaW50ZiBcIiUuMTZnXCIgeFxuICAgICAgfCBfIC0+IHNwcmludGYgXCIlLjE3Z1wiIHhcbiAgaW5cbiAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgcztcbiAgaWYgZmxvYXRfbmVlZHNfcGVyaW9kIHMgdGhlblxuICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwiLjBcIlxuXG4oKiB1c2VkIGJ5IGF0ZGdlbiAqKVxubGV0IHdyaXRlX2Zsb2F0X3ByZWMgc2lnbmlmaWNhbnRfZmlndXJlcyBvYiB4ID1cbiAgbWF0Y2ggY2xhc3NpZnlfZmxvYXQgeCB3aXRoXG4gICAgRlBfbmFuIC0+XG4gICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIk5hTlwiXG4gIHwgRlBfaW5maW5pdGUgLT5cbiAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIChpZiB4ID4gMC4gdGhlbiBcIkluZmluaXR5XCIgZWxzZSBcIi1JbmZpbml0eVwiKVxuICB8IF8gLT5cbiAgICAgIHdyaXRlX25vcm1hbF9mbG9hdF9wcmVjIHNpZ25pZmljYW50X2ZpZ3VyZXMgb2IgeFxuXG5sZXQganNvbl9zdHJpbmdfb2ZfZmxvYXQgeCA9XG4gIGxldCBvYiA9IEJ1ZmZlci5jcmVhdGUgMjAgaW5cbiAgd3JpdGVfZmxvYXQgb2IgeDtcbiAgQnVmZmVyLmNvbnRlbnRzIG9iXG5cblxubGV0IHdyaXRlX3N0ZF9mbG9hdCBvYiB4ID1cbiAgbWF0Y2ggY2xhc3NpZnlfZmxvYXQgeCB3aXRoXG4gICAgRlBfbmFuIC0+XG4gICAgICBqc29uX2Vycm9yIFwiTmFOIHZhbHVlIG5vdCBhbGxvd2VkIGluIHN0YW5kYXJkIEpTT05cIlxuICB8IEZQX2luZmluaXRlIC0+XG4gICAgICBqc29uX2Vycm9yXG4gICAgICAgIChpZiB4ID4gMC4gdGhlblxuICAgICAgICAgICBcIkluZmluaXR5IHZhbHVlIG5vdCBhbGxvd2VkIGluIHN0YW5kYXJkIEpTT05cIlxuICAgICAgICAgZWxzZVxuICAgICAgICAgICBcIi1JbmZpbml0eSB2YWx1ZSBub3QgYWxsb3dlZCBpbiBzdGFuZGFyZCBKU09OXCIpXG4gIHwgXyAtPlxuICAgICAgbGV0IHMxID0gUHJpbnRmLnNwcmludGYgXCIlLjE2Z1wiIHggaW5cbiAgICAgIGxldCBzID1cbiAgICAgICAgaWYgZmxvYXRfb2Zfc3RyaW5nIHMxID0geCB0aGVuIHMxXG4gICAgICAgIGVsc2UgUHJpbnRmLnNwcmludGYgXCIlLjE3Z1wiIHhcbiAgICAgIGluXG4gICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBzO1xuICAgICAgaWYgZmxvYXRfbmVlZHNfcGVyaW9kIHMgdGhlblxuICAgICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIi4wXCJcblxuKCogdXNlZCBieSBhdGRnZW4gKilcbmxldCB3cml0ZV9zdGRfZmxvYXRfcHJlYyBzaWduaWZpY2FudF9maWd1cmVzIG9iIHggPVxuICBtYXRjaCBjbGFzc2lmeV9mbG9hdCB4IHdpdGhcbiAgICBGUF9uYW4gLT5cbiAgICAgIGpzb25fZXJyb3IgXCJOYU4gdmFsdWUgbm90IGFsbG93ZWQgaW4gc3RhbmRhcmQgSlNPTlwiXG4gIHwgRlBfaW5maW5pdGUgLT5cbiAgICAgIGpzb25fZXJyb3JcbiAgICAgICAgKGlmIHggPiAwLiB0aGVuXG4gICAgICAgICAgIFwiSW5maW5pdHkgdmFsdWUgbm90IGFsbG93ZWQgaW4gc3RhbmRhcmQgSlNPTlwiXG4gICAgICAgICBlbHNlXG4gICAgICAgICAgIFwiLUluZmluaXR5IHZhbHVlIG5vdCBhbGxvd2VkIGluIHN0YW5kYXJkIEpTT05cIilcbiAgfCBfIC0+XG4gICAgICB3cml0ZV9ub3JtYWxfZmxvYXRfcHJlYyBzaWduaWZpY2FudF9maWd1cmVzIG9iIHhcblxubGV0IHN0ZF9qc29uX3N0cmluZ19vZl9mbG9hdCB4ID1cbiAgbGV0IG9iID0gQnVmZmVyLmNyZWF0ZSAyMCBpblxuICB3cml0ZV9zdGRfZmxvYXQgb2IgeDtcbiAgQnVmZmVyLmNvbnRlbnRzIG9iXG5cblxubGV0IHRlc3RfZmxvYXQgKCkgPVxuICBsZXQgbCA9IFsgMC47IDEuOyAtMS4gXSBpblxuICBsZXQgbCA9IGwgQCBMaXN0Lm1hcCAoZnVuIHggLT4gMi4gKi4geCArLiAxLikgbCBpblxuICBsZXQgbCA9IGwgQCBMaXN0Lm1hcCAoZnVuIHggLT4geCAvLiBzcXJ0IDIuKSBsIGluXG4gIGxldCBsID0gbCBAIExpc3QubWFwIChmdW4geCAtPiB4ICouIHNxcnQgMy4pIGwgaW5cbiAgbGV0IGwgPSBsIEAgTGlzdC5tYXAgY29zIGwgaW5cbiAgbGV0IGwgPSBsIEAgTGlzdC5tYXAgKGZ1biB4IC0+IHggKi4gMS4yM2U1MCkgbCBpblxuICBsZXQgbCA9IGwgQCBbIGluZmluaXR5OyBuZWdfaW5maW5pdHkgXSBpblxuICBMaXN0Lml0ZXIgKFxuICAgIGZ1biB4IC0+XG4gICAgICBsZXQgcyA9IFByaW50Zi5zcHJpbnRmIFwiJS4xN2dcIiB4IGluXG4gICAgICBsZXQgeSA9IGZsb2F0X29mX3N0cmluZyBzIGluXG4gICAgICBQcmludGYucHJpbnRmIFwiJWcgJWcgJVMgJUJcXG5cIiB4IHkgcyAoeCA9IHkpXG4gIClcbiAgICBsXG5cbigqXG5sZXQgKCkgPSB0ZXN0X2Zsb2F0ICgpXG4qKVxuXG5sZXQgd3JpdGVfaW50bGl0ID0gQnVmZmVyLmFkZF9zdHJpbmdcbmxldCB3cml0ZV9mbG9hdGxpdCA9IEJ1ZmZlci5hZGRfc3RyaW5nXG5sZXQgd3JpdGVfc3RyaW5nbGl0ID0gQnVmZmVyLmFkZF9zdHJpbmdcblxubGV0IHJlYyBpdGVyMl9hdXggZl9lbHQgZl9zZXAgeCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gKClcbiAgfCB5IDo6IGwgLT5cbiAgICAgIGZfc2VwIHg7XG4gICAgICBmX2VsdCB4IHk7XG4gICAgICBpdGVyMl9hdXggZl9lbHQgZl9zZXAgeCBsXG5cbmxldCBpdGVyMiBmX2VsdCBmX3NlcCB4ID0gZnVuY3Rpb25cbiAgICBbXSAtPiAoKVxuICB8IHkgOjogbCAtPlxuICAgICAgZl9lbHQgeCB5O1xuICAgICAgaXRlcjJfYXV4IGZfZWx0IGZfc2VwIHggbFxuXG5sZXQgZl9zZXAgb2IgPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJywnXG5cbmxldCByZWMgd3JpdGVfanNvbiBvYiAoeCA6IHQpID1cbiAgbWF0Y2ggeCB3aXRoXG4gICAgICBgTnVsbCAtPiB3cml0ZV9udWxsIG9iICgpXG4gICAgfCBgQm9vbCBiIC0+IHdyaXRlX2Jvb2wgb2IgYlxuICAgIFxuIyAyNjQgXCJ3cml0ZS5tbFwiXG4gICAgfCBgSW50IGkgLT4gd3JpdGVfaW50IG9iIGlcbiAgICBcbiMgMjcwIFwid3JpdGUubWxcIlxuICAgIHwgYEZsb2F0IGYgLT4gd3JpdGVfZmxvYXQgb2IgZlxuICAgIFxuIyAyNzYgXCJ3cml0ZS5tbFwiXG4gICAgfCBgU3RyaW5nIHMgLT4gd3JpdGVfc3RyaW5nIG9iIHNcbiAgICBcbiMgMjgxIFwid3JpdGUubWxcIlxuICAgIHwgYEFzc29jIGwgLT4gd3JpdGVfYXNzb2Mgb2IgbFxuICAgIHwgYExpc3QgbCAtPiB3cml0ZV9saXN0IG9iIGxcblxuIyAyOTAgXCJ3cml0ZS5tbFwiXG5hbmQgd3JpdGVfYXNzb2Mgb2IgbCA9XG4gIGxldCBmX2VsdCBvYiAocywgeCkgPVxuICAgIHdyaXRlX3N0cmluZyBvYiBzO1xuICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnOic7XG4gICAgd3JpdGVfanNvbiBvYiB4XG4gIGluXG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAneyc7XG4gIGl0ZXIyIGZfZWx0IGZfc2VwIG9iIGw7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnfSc7XG5cbmFuZCB3cml0ZV9saXN0IG9iIGwgPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ1snO1xuICBpdGVyMiB3cml0ZV9qc29uIGZfc2VwIG9iIGw7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnXSdcblxuXG5cbiMgMzI1IFwid3JpdGUubWxcIlxubGV0IHdyaXRlX3QgPSB3cml0ZV9qc29uXG5cbmxldCByZWMgd3JpdGVfc3RkX2pzb24gb2IgKHggOiB0KSA9XG4gIG1hdGNoIHggd2l0aFxuICAgICAgYE51bGwgLT4gd3JpdGVfbnVsbCBvYiAoKVxuICAgIHwgYEJvb2wgYiAtPiB3cml0ZV9ib29sIG9iIGJcbiAgICBcbiMgMzMyIFwid3JpdGUubWxcIlxuICAgIHwgYEludCBpIC0+IHdyaXRlX2ludCBvYiBpXG4gICAgXG4jIDMzOCBcIndyaXRlLm1sXCJcbiAgICB8IGBGbG9hdCBmIC0+IHdyaXRlX3N0ZF9mbG9hdCBvYiBmXG4gICAgXG4jIDM0NCBcIndyaXRlLm1sXCJcbiAgICB8IGBTdHJpbmcgcyAtPiB3cml0ZV9zdHJpbmcgb2Igc1xuICAgIFxuIyAzNDkgXCJ3cml0ZS5tbFwiXG4gICAgfCBgQXNzb2MgbCAtPiB3cml0ZV9zdGRfYXNzb2Mgb2IgbFxuICAgIHwgYExpc3QgbCAtPiB3cml0ZV9zdGRfbGlzdCBvYiBsXG5cbiMgMzU4IFwid3JpdGUubWxcIlxuYW5kIHdyaXRlX3N0ZF9hc3NvYyBvYiBsID1cbiAgbGV0IGZfZWx0IG9iIChzLCB4KSA9XG4gICAgd3JpdGVfc3RyaW5nIG9iIHM7XG4gICAgQnVmZmVyLmFkZF9jaGFyIG9iICc6JztcbiAgICB3cml0ZV9zdGRfanNvbiBvYiB4XG4gIGluXG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAneyc7XG4gIGl0ZXIyIGZfZWx0IGZfc2VwIG9iIGw7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnfSc7XG5cbmFuZCB3cml0ZV9zdGRfbGlzdCBvYiBsID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICdbJztcbiAgaXRlcjIgd3JpdGVfc3RkX2pzb24gZl9zZXAgb2IgbDtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICddJ1xuXG5hbmQgd3JpdGVfc3RkX3R1cGxlIG9iIGwgPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ1snO1xuICBpdGVyMiB3cml0ZV9zdGRfanNvbiBmX3NlcCBvYiBsO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ10nXG5cblxuXG4jIDM5MSBcIndyaXRlLm1sXCJcbmxldCB0b19idWZmZXIgPyhzdWYgPSBcIlwiKSA/KHN0ZCA9IGZhbHNlKSBvYiB4ID1cbiAgaWYgc3RkIHRoZW5cbiAgICB3cml0ZV9zdGRfanNvbiBvYiB4XG4gIGVsc2VcbiAgICB3cml0ZV9qc29uIG9iIHg7XG4gIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHN1ZlxuXG5sZXQgdG9fc3RyaW5nID9idWYgPyhsZW4gPSAyNTYpID8oc3VmID0gXCJcIikgP3N0ZCB4ID1cbiAgbGV0IG9iID1cbiAgICBtYXRjaCBidWYgd2l0aFxuICAgICAgICBOb25lIC0+IEJ1ZmZlci5jcmVhdGUgbGVuXG4gICAgICB8IFNvbWUgb2IgLT5cbiAgICAgICAgICBCdWZmZXIuY2xlYXIgb2I7XG4gICAgICAgICAgb2JcbiAgaW5cbiAgdG9fYnVmZmVyIH5zdWYgP3N0ZCBvYiB4O1xuICBsZXQgcyA9IEJ1ZmZlci5jb250ZW50cyBvYiBpblxuICBCdWZmZXIuY2xlYXIgb2I7XG4gIHNcblxubGV0IHRvX2NoYW5uZWwgP2J1ZiA/KGxlbj00MDk2KSA/KHN1ZiA9IFwiXCIpID9zdGQgb2MgeCA9XG4gIGxldCBvYiA9XG4gICAgbWF0Y2ggYnVmIHdpdGhcbiAgICAgICAgTm9uZSAtPiBCdWZmZXIuY3JlYXRlIGxlblxuICAgICAgfCBTb21lIG9iIC0+IEJ1ZmZlci5jbGVhciBvYjsgb2JcbiAgaW5cbiAgdG9fYnVmZmVyIH5zdWYgP3N0ZCBvYiB4O1xuICBCdWZmZXIub3V0cHV0X2J1ZmZlciBvYyBvYjtcbiAgQnVmZmVyLmNsZWFyIG9iXG5cbmxldCB0b19vdXRwdXQgP2J1ZiA/KGxlbj00MDk2KSA/KHN1ZiA9IFwiXCIpID9zdGQgb3V0IHggPVxuICBsZXQgb2IgPVxuICAgIG1hdGNoIGJ1ZiB3aXRoXG4gICAgICAgIE5vbmUgLT4gQnVmZmVyLmNyZWF0ZSBsZW5cbiAgICAgIHwgU29tZSBvYiAtPiBCdWZmZXIuY2xlYXIgb2I7IG9iXG4gIGluXG4gIHRvX2J1ZmZlciB+c3VmID9zdGQgb2IgeDtcbiAgb3V0I291dHB1dCAoQnVmZmVyLmNvbnRlbnRzIG9iKSAwIChCdWZmZXIubGVuZ3RoIG9iKTtcbiAgQnVmZmVyLmNsZWFyIG9iXG5cbmxldCB0b19maWxlID9sZW4gP3N0ZCA/KHN1ZiA9IFwiXFxuXCIpIGZpbGUgeCA9XG4gIGxldCBvYyA9IG9wZW5fb3V0IGZpbGUgaW5cbiAgdHJ5XG4gICAgdG9fY2hhbm5lbCA/bGVuIH5zdWYgP3N0ZCBvYyB4O1xuICAgIGNsb3NlX291dCBvY1xuICB3aXRoIGUgLT5cbiAgICBjbG9zZV9vdXRfbm9lcnIgb2M7XG4gICAgcmFpc2UgZVxuXG5sZXQgc2VxX3RvX2J1ZmZlciA/KHN1ZiA9IFwiXFxuXCIpID9zdGQgb2Igc3QgPVxuICBTZXEuaXRlciAodG9fYnVmZmVyIH5zdWYgP3N0ZCBvYikgc3RcblxubGV0IHNlcV90b19zdHJpbmcgP2J1ZiA/KGxlbiA9IDI1NikgPyhzdWYgPSBcIlxcblwiKSA/c3RkIHN0ID1cbiAgbGV0IG9iID1cbiAgICBtYXRjaCBidWYgd2l0aFxuICAgICAgICBOb25lIC0+IEJ1ZmZlci5jcmVhdGUgbGVuXG4gICAgICB8IFNvbWUgb2IgLT5cbiAgICAgICAgICBCdWZmZXIuY2xlYXIgb2I7XG4gICAgICAgICAgb2JcbiAgaW5cbiAgc2VxX3RvX2J1ZmZlciB+c3VmID9zdGQgb2Igc3Q7XG4gIGxldCBzID0gQnVmZmVyLmNvbnRlbnRzIG9iIGluXG4gIEJ1ZmZlci5jbGVhciBvYjtcbiAgc1xuXG5sZXQgc2VxX3RvX2NoYW5uZWwgP2J1ZiA/KGxlbj0yMDk2KSA/KHN1ZiA9IFwiXFxuXCIpID9zdGQgb2Mgc2VxID1cbiAgbGV0IG9iID1cbiAgICBtYXRjaCBidWYgd2l0aFxuICAgICAgICBOb25lIC0+IEJ1ZmZlci5jcmVhdGUgbGVuXG4gICAgICB8IFNvbWUgb2IgLT4gQnVmZmVyLmNsZWFyIG9iOyBvYlxuICBpblxuICBTZXEuaXRlciAoZnVuIGpzb24gLT5cbiAgICB0b19idWZmZXIgfnN1ZiA/c3RkIG9iIGpzb247XG4gICAgQnVmZmVyLm91dHB1dF9idWZmZXIgb2Mgb2I7XG4gICAgQnVmZmVyLmNsZWFyIG9iO1xuICApIHNlcVxuXG5sZXQgc2VxX3RvX2ZpbGUgP2xlbiA/KHN1ZiA9IFwiXFxuXCIpID9zdGQgZmlsZSBzdCA9XG4gIGxldCBvYyA9IG9wZW5fb3V0IGZpbGUgaW5cbiAgdHJ5XG4gICAgc2VxX3RvX2NoYW5uZWwgP2xlbiB+c3VmID9zdGQgb2Mgc3Q7XG4gICAgY2xvc2Vfb3V0IG9jXG4gIHdpdGggZSAtPlxuICAgIGNsb3NlX291dF9ub2VyciBvYztcbiAgICByYWlzZSBlXG5cblxubGV0IHJlYyBzb3J0ID0gZnVuY3Rpb25cbiAgfCBgQXNzb2MgbCAtPlxuICAgICAgbGV0IGwgPSBMaXN0LnJldiAoTGlzdC5yZXZfbWFwIChmdW4gKGssIHYpIC0+IChrLCBzb3J0IHYpKSBsKSBpblxuICAgICAgYEFzc29jIChMaXN0LnN0YWJsZV9zb3J0IChmdW4gKGEsIF8pIChiLCBfKSAtPiBTdHJpbmcuY29tcGFyZSBhIGIpIGwpXG4gIHwgYExpc3QgbCAtPlxuICAgICAgYExpc3QgKExpc3QucmV2IChMaXN0LnJldl9tYXAgc29ydCBsKSlcbiAgXG4jIDQ5NSBcIndyaXRlLm1sXCJcbiAgfCB4IC0+IHhcbiMgMzUgXCJ5b2pzb24uY3Bwby5tbFwiXG5tb2R1bGUgUHJldHR5ID1cbnN0cnVjdFxuIyAxIFwicHJldHR5Lm1sXCJcbigqXG4gICBQcmV0dHktcHJpbnQgSlNPTiBkYXRhIGluIGFuIGF0dGVtcHQgdG8gbWF4aW1pemUgcmVhZGFiaWxpdHkuXG5cbiAgIDEuIFdoYXQgZml0cyBvbiBvbmUgbGluZSBzdGF5cyBvbiBvbmUgbGluZS5cbiAgIDIuIFdoYXQgZG9lc24ndCBmaXQgb24gb25lIGxpbmUgZ2V0cyBwcmludGVkIG1vcmUgdmVydGljYWxseSBzbyBhcyB0byBub3RcbiAgICAgIGV4Y2VlZCBhIHJlYXNvbmFibGUgcGFnZSB3aWR0aCwgaWYgcG9zc2libGUuXG5cbiAgIEFycmF5cyBjb250YWluaW5nIG9ubHkgc2ltcGxlIGVsZW1lbnRzIChcImF0b21zXCIpIGFyZSBwcmV0dHktcHJpbnRlZCB3aXRoXG4gICBlbmQtb2YtbGluZSB3cmFwcGluZyBsaWtlIG9yZGluYXJ5IHRleHQ6XG5cbiAgICAgW1xuICAgICAgICBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIixcbiAgICAgICAgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCJcbiAgICAgXVxuXG4gICBPdGhlciBhcnJheXMgYXJlIHByaW50ZWQgZWl0aGVyIGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5IGRlcGVuZGluZ1xuICAgb24gd2hldGhlciB0aGV5IGZpdCBvbiBhIHNpbmdsZSBsaW5lOlxuXG4gICAgIFsgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9LCB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH0sIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfSBdXG5cbiAgIG9yXG5cbiAgICAgW1xuICAgICAgIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfSxcbiAgICAgICB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH0sXG4gICAgICAgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9LFxuICAgICAgIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfVxuICAgICBdXG4qKVxuXG5sZXQgcHBfbGlzdCBzZXAgcHB4IG91dCBsID1cbiAgbGV0IHBwX3NlcCBvdXQgKCkgPSBGb3JtYXQuZnByaW50ZiBvdXQgXCIlc0AgXCIgc2VwIGluXG4gIEZvcm1hdC5wcF9wcmludF9saXN0IH5wcF9zZXAgcHB4IG91dCBsXG5cbmxldCBpc19hdG9tICh4OiBbPiB0XSkgPVxuICBtYXRjaCB4IHdpdGhcbiAgfCBgTnVsbFxuICB8IGBCb29sIF9cbiAgfCBgSW50IF9cbiAgfCBgRmxvYXQgX1xuICB8IGBTdHJpbmcgX1xuICB8IGBJbnRsaXQgX1xuICB8IGBGbG9hdGxpdCBfXG4gIHwgYFN0cmluZ2xpdCBfXG4gIHwgYExpc3QgW11cbiAgfCBgQXNzb2MgW11cbiAgfCBgVHVwbGUgW11cbiAgfCBgVmFyaWFudCAoXywgTm9uZSkgLT4gdHJ1ZVxuICB8IGBMaXN0IF9cbiAgfCBgQXNzb2MgX1xuICB8IGBUdXBsZSBfXG4gIHwgYFZhcmlhbnQgKF8sIFNvbWUgXykgLT4gZmFsc2VcblxubGV0IGlzX2F0b21fbGlzdCBsID1cbiAgTGlzdC5mb3JfYWxsIGlzX2F0b20gbFxuXG4oKlxuICAgaW5zaWRlX2JveDogaW5kaWNhdGVzIHRoYXQgd2UncmUgYWxyZWFkeSB3aXRoaW4gYSBib3ggdGhhdCBpbXBvc2VzXG4gICBhIGNlcnRhaW4gc3R5bGUgYW5kIHdlIHNob3VsZG4ndCBjcmVhdGUgYSBuZXcgb25lLiBUaGlzIGlzIHVzZWQgZm9yXG4gICBwcmludGluZyBmaWVsZCB2YWx1ZXMgbGlrZSB0aGlzOlxuXG4gICAgIGZvbzogW1xuICAgICAgIGJhclxuICAgICBdXG5cbiAgIHJhdGhlciB0aGFuIHNvbWV0aGluZyBlbHNlIGxpa2VcblxuICAgICBmb286XG4gICAgICAgW1xuICAgICAgICAgYmFyXG4gICAgICAgXVxuKilcbmxldCByZWMgZm9ybWF0IH5pbnNpZGVfYm94IHN0ZCAob3V0OkZvcm1hdC5mb3JtYXR0ZXIpICh4OnQpIDogdW5pdCA9XG4gIG1hdGNoIHggd2l0aFxuICAgIHwgYE51bGwgLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgXCJudWxsXCJcbiAgICB8IGBCb29sIHggLT4gRm9ybWF0LnBwX3ByaW50X2Jvb2wgb3V0IHhcbiAgICBcbiMgNzggXCJwcmV0dHkubWxcIlxuICAgIHwgYEludCB4IC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IChqc29uX3N0cmluZ19vZl9pbnQgeClcbiAgICBcbiMgODEgXCJwcmV0dHkubWxcIlxuICAgIHwgYEZsb2F0IHggLT5cbiAgICAgICAgbGV0IHMgPVxuICAgICAgICAgIGlmIHN0ZCB0aGVuIHN0ZF9qc29uX3N0cmluZ19vZl9mbG9hdCB4XG4gICAgICAgICAgZWxzZSBqc29uX3N0cmluZ19vZl9mbG9hdCB4XG4gICAgICAgIGluXG4gICAgICAgIEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IHNcbiAgICBcbiMgODkgXCJwcmV0dHkubWxcIlxuICAgIHwgYFN0cmluZyBzIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IChqc29uX3N0cmluZ19vZl9zdHJpbmcgcylcbiAgICBcbiMgMTAwIFwicHJldHR5Lm1sXCJcbiAgICB8IGBMaXN0IFtdIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IFwiW11cIlxuICAgIHwgYExpc3QgbCAtPlxuICAgICAgaWYgbm90IGluc2lkZV9ib3ggdGhlbiBGb3JtYXQuZnByaW50ZiBvdXQgXCJAWzxodjI+XCI7XG4gICAgICBpZiBpc19hdG9tX2xpc3QgbCB0aGVuXG4gICAgICAgICgqIHVzZSBsaW5lIHdyYXBwaW5nIGxpa2Ugd2Ugd291bGQgZG8gZm9yIGEgcGFyYWdyYXBoIG9mIHRleHQgKilcbiAgICAgICAgRm9ybWF0LmZwcmludGYgb3V0IFwiW0A7PDEgMD5AWzxob3Y+JWFAXUA7PDEgLTI+XVwiXG4gICAgICAgICAgKHBwX2xpc3QgXCIsXCIgKGZvcm1hdCB+aW5zaWRlX2JveDpmYWxzZSBzdGQpKSBsXG4gICAgICBlbHNlXG4gICAgICAgICgqIHByaW50IHRoZSBlbGVtZW50cyBob3Jpem9udGFsbHkgaWYgdGhleSBmaXQgb24gdGhlIGxpbmUsXG4gICAgICAgICAgIG90aGVyd2lzZSBwcmludCB0aGVtIGluIGEgY29sdW1uICopXG4gICAgICAgIEZvcm1hdC5mcHJpbnRmIG91dCBcIltAOzwxIDA+QFs8aHY+JWFAXUA7PDEgLTI+XVwiXG4gICAgICAgICAgKHBwX2xpc3QgXCIsXCIgKGZvcm1hdCB+aW5zaWRlX2JveDpmYWxzZSBzdGQpKSBsO1xuICAgICAgaWYgbm90IGluc2lkZV9ib3ggdGhlbiBGb3JtYXQuZnByaW50ZiBvdXQgXCJAXVwiO1xuICAgIHwgYEFzc29jIFtdIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IFwie31cIlxuICAgIHwgYEFzc29jIGwgLT5cbiAgICAgIGlmIG5vdCBpbnNpZGVfYm94IHRoZW4gRm9ybWF0LmZwcmludGYgb3V0IFwiQFs8aHYyPlwiO1xuICAgICAgRm9ybWF0LmZwcmludGYgb3V0IFwie0A7PDEgMD4lYUA7PDEgLTI+fVwiIChwcF9saXN0IFwiLFwiIChmb3JtYXRfZmllbGQgc3RkKSkgbDtcbiAgICAgIGlmIG5vdCBpbnNpZGVfYm94IHRoZW4gRm9ybWF0LmZwcmludGYgb3V0IFwiQF1cIjtcblxuIyAxNTYgXCJwcmV0dHkubWxcIlxuYW5kIGZvcm1hdF9maWVsZCBzdGQgb3V0IChuYW1lLCB4KSA9XG4gIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBbPGh2Mj4lczogJWFAXVwiIChqc29uX3N0cmluZ19vZl9zdHJpbmcgbmFtZSkgKGZvcm1hdCB+aW5zaWRlX2JveDp0cnVlIHN0ZCkgeFxuXG5sZXQgcHAgPyhzdGQgPSBmYWxzZSkgb3V0IHggPVxuICBGb3JtYXQuZnByaW50ZiBvdXQgXCJAWzxodjI+JWFAXVwiIChmb3JtYXQgfmluc2lkZV9ib3g6dHJ1ZSBzdGQpICh4IDo+IHQpXG5cbmxldCB0b19zdHJpbmcgP3N0ZCB4ID1cbiAgRm9ybWF0LmFzcHJpbnRmIFwiJWFcIiAocHAgP3N0ZCkgeFxuXG5sZXQgdG9fY2hhbm5lbCA/c3RkIG9jIHggPVxuICBsZXQgZm10ID0gRm9ybWF0LmZvcm1hdHRlcl9vZl9vdXRfY2hhbm5lbCBvYyBpblxuICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlYUA/XCIgKHBwID9zdGQpIHhcbiMgMzggXCJ5b2pzb24uY3Bwby5tbFwiXG5lbmRcbiMgMSBcIm1vbm9tb3JwaGljLm1sXCJcbmxldCByZWMgcHAgZm10ID1cbiAgZnVuY3Rpb25cbiAgfCBgTnVsbCAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIGZtdCBcImBOdWxsXCJcbiAgfCBgQm9vbCB4IC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYEJvb2wgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlQlwiIHg7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDkgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYEludCB4IC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYEludCAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVkXCIgeDtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgMjEgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYEZsb2F0IHggLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgRmxvYXQgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlRlwiIHg7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDMzIFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBTdHJpbmcgeCAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBTdHJpbmcgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlU1wiIHg7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDQ0IFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBBc3NvYyB4cyAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBBc3NvYyAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBbPDI+W1wiO1xuICAgIGlnbm9yZSAoTGlzdC5mb2xkX2xlZnRcbiAgICAgIChmdW4gc2VwIChrZXksIHZhbHVlKSAtPlxuICAgICAgICBpZiBzZXAgdGhlblxuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIjtAIFwiO1xuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIihAW1wiO1xuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVTXCIga2V5O1xuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIixAIFwiO1xuICAgICAgICAgIHBwIGZtdCB2YWx1ZTtcbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIjtcbiAgICAgICAgICB0cnVlKSBmYWxzZSB4cyk7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQCxdQF1cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICB8IGBMaXN0IHhzIC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYExpc3QgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAWzwyPltcIjtcbiAgICBpZ25vcmUgKExpc3QuZm9sZF9sZWZ0XG4gICAgICAoZnVuIHNlcCB4IC0+XG4gICAgICAgIGlmIHNlcCB0aGVuXG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiO0AgXCI7XG4gICAgICAgICAgcHAgZm10IHg7XG4gICAgICAgICAgdHJ1ZSkgZmFsc2UgeHMpO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkAsXUBdXCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcblxuIyA5OSBcIm1vbm9tb3JwaGljLm1sXCJcbmxldCBzaG93IHggPVxuICBGb3JtYXQuYXNwcmludGYgXCIlYVwiIHBwIHhcblxubGV0IHJlYyBlcXVhbCBhIGIgPVxuICBtYXRjaCBhLCBiIHdpdGhcbiAgfCBgTnVsbCwgYE51bGwgLT4gdHJ1ZVxuICB8IGBCb29sIGEsIGBCb29sIGIgLT4gYSA9IGJcbiAgXG4jIDEwNyBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgSW50IGEsIGBJbnQgYiAtPiBhID0gYlxuICAgIFxuIyAxMTMgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgRmxvYXQgYSwgYEZsb2F0IGIgLT4gYSA9IGJcbiAgICBcbiMgMTE5IFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYFN0cmluZyBhLCBgU3RyaW5nIGIgLT4gYSA9IGJcbiAgICBcbiMgMTI0IFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYEFzc29jIHhzLCBgQXNzb2MgeXMgLT5cbiAgICAgIGxldCBjb21wYXJlX2tleXMgPSBmdW4gKGtleSwgXykgKGtleScsIF8pIC0+IFN0cmluZy5jb21wYXJlIGtleSBrZXknIGluXG4gICAgICBsZXQgeHMgPSBMaXN0LnN0YWJsZV9zb3J0IGNvbXBhcmVfa2V5cyB4cyBpblxuICAgICAgbGV0IHlzID0gTGlzdC5zdGFibGVfc29ydCBjb21wYXJlX2tleXMgeXMgaW5cbiAgICAgIChtYXRjaCBMaXN0LmZvcl9hbGwyIChmdW4gKGtleSwgdmFsdWUpIChrZXknLCB2YWx1ZScpIC0+XG4gICAgICAgIG1hdGNoIGtleSA9IGtleScgd2l0aFxuICAgICAgICB8IGZhbHNlIC0+IGZhbHNlXG4gICAgICAgIHwgdHJ1ZSAtPiBlcXVhbCB2YWx1ZSB2YWx1ZScpIHhzIHlzIHdpdGhcbiAgICAgIHwgcmVzdWx0IC0+IHJlc3VsdFxuICAgICAgfCBleGNlcHRpb24gSW52YWxpZF9hcmd1bWVudCBfIC0+XG4gICAgICAgICgqIHRoZSBsaXN0cyB3ZXJlIG9mIGRpZmZlcmVudCBsZW5ndGhzLCB0aHVzIHVuZXF1YWwgKilcbiAgICAgICAgZmFsc2UpXG4gICAgXG4jIDEzOSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBMaXN0IHhzLCBgTGlzdCB5cyAtPlxuICAgICAgKG1hdGNoIExpc3QuZm9yX2FsbDIgZXF1YWwgeHMgeXMgd2l0aFxuICAgICAgfCByZXN1bHQgLT4gcmVzdWx0XG4gICAgICB8IGV4Y2VwdGlvbiBJbnZhbGlkX2FyZ3VtZW50IF8gLT5cbiAgICAgICAgKCogdGhlIGxpc3RzIHdlcmUgb2YgZGlmZmVyZW50IGxlbmd0aHMsIHRodXMgdW5lcXVhbCAqKVxuICAgICAgICBmYWxzZSlcbiAgICBcbiMgMTU1IFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgXyAtPiBmYWxzZVxuXG4jIDIgXCJ3cml0ZTIubWxcIlxubGV0IHByZXR0eV9wcmludCA/c3RkIG91dCB4ID1cbiAgUHJldHR5LnBwID9zdGQgb3V0IHhcblxubGV0IHByZXR0eV90b19zdHJpbmcgP3N0ZCB4ID1cbiAgUHJldHR5LnRvX3N0cmluZyA/c3RkIHhcblxubGV0IHByZXR0eV90b19jaGFubmVsID9zdGQgb2MgeCA9XG4gIFByZXR0eS50b19jaGFubmVsID9zdGQgb2MgeFxuXG4jIDEgXCJsaWIvcmVhZC5tbGxcIlxuIFxuICBcbiMgMiBcImxpYi9yZWFkLm1sbFwiXG4gIG1vZHVsZSBMZXhpbmcgPVxuICAgICgqXG4gICAgICBXZSBvdmVycmlkZSBMZXhpbmcuZW5naW5lIGluIG9yZGVyIHRvIGF2b2lkIGNyZWF0aW5nIGEgbmV3IHBvc2l0aW9uXG4gICAgICByZWNvcmQgZWFjaCB0aW1lIGEgcnVsZSBpcyBtYXRjaGVkLlxuICAgICAgVGhpcyByZWR1Y2VzIHRvdGFsIHBhcnNpbmcgdGltZSBieSBhYm91dCAzMSUuXG4gICAgKilcbiAgc3RydWN0XG4gICAgaW5jbHVkZSBMZXhpbmdcblxuICAgIGV4dGVybmFsIGNfZW5naW5lIDogbGV4X3RhYmxlcyAtPiBpbnQgLT4gbGV4YnVmIC0+IGludCA9IFwiY2FtbF9sZXhfZW5naW5lXCJcblxuICAgIGxldCBlbmdpbmUgdGJsIHN0YXRlIGJ1ZiA9XG4gICAgICBsZXQgcmVzdWx0ID0gY19lbmdpbmUgdGJsIHN0YXRlIGJ1ZiBpblxuICAgICAgKCpcbiAgICAgIGlmIHJlc3VsdCA+PSAwIHRoZW4gYmVnaW5cbiAgICAgICAgYnVmLmxleF9zdGFydF9wIDwtIGJ1Zi5sZXhfY3Vycl9wO1xuICAgICAgICBidWYubGV4X2N1cnJfcCA8LSB7YnVmLmxleF9jdXJyX3BcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggcG9zX2NudW0gPSBidWYubGV4X2Fic19wb3MgKyBidWYubGV4X2N1cnJfcG9zfTtcbiAgICAgIGVuZDtcbiAgICAgICopXG4gICAgICByZXN1bHRcbiAgZW5kXG5cbiAgb3BlbiBQcmludGZcbiAgb3BlbiBMZXhpbmdcblxuICAoKiBzZWUgZGVzY3JpcHRpb24gaW4gY29tbW9uLm1saSAqKVxuICB0eXBlIGxleGVyX3N0YXRlID0gTGV4ZXJfc3RhdGUudCA9IHtcbiAgICBidWYgOiBCdWZmZXIudDtcbiAgICBtdXRhYmxlIGxudW0gOiBpbnQ7XG4gICAgbXV0YWJsZSBib2wgOiBpbnQ7XG4gICAgbXV0YWJsZSBmbmFtZSA6IHN0cmluZyBvcHRpb247XG4gIH1cblxuICBsZXQgZGVjIGMgPVxuICAgIENoYXIuY29kZSBjIC0gNDhcblxuICBsZXQgaGV4IGMgPVxuICAgIG1hdGNoIGMgd2l0aFxuICAgICAgICAnMCcuLic5JyAtPiBpbnRfb2ZfY2hhciBjIC0gaW50X29mX2NoYXIgJzAnXG4gICAgICB8ICdhJy4uJ2YnIC0+IGludF9vZl9jaGFyIGMgLSBpbnRfb2ZfY2hhciAnYScgKyAxMFxuICAgICAgfCAnQScuLidGJyAtPiBpbnRfb2ZfY2hhciBjIC0gaW50X29mX2NoYXIgJ0EnICsgMTBcbiAgICAgIHwgXyAtPiBhc3NlcnQgZmFsc2VcblxuICBsZXQgY3VzdG9tX2Vycm9yIGRlc2NyIHYgbGV4YnVmID1cbiAgICBsZXQgb2ZmcyA9IGxleGJ1Zi5sZXhfYWJzX3BvcyAtIDEgaW5cbiAgICBsZXQgYm9sID0gdi5ib2wgaW5cbiAgICBsZXQgcG9zMSA9IG9mZnMgKyBsZXhidWYubGV4X3N0YXJ0X3BvcyAtIGJvbCAtIDEgaW5cbiAgICBsZXQgcG9zMiA9IG1heCBwb3MxIChvZmZzICsgbGV4YnVmLmxleF9jdXJyX3BvcyAtIGJvbCkgaW5cbiAgICBsZXQgZmlsZV9saW5lID1cbiAgICAgIG1hdGNoIHYuZm5hbWUgd2l0aFxuICAgICAgICAgIE5vbmUgLT4gXCJMaW5lXCJcbiAgICAgICAgfCBTb21lIHMgLT5cbiAgICAgICAgICAgIHNwcmludGYgXCJGaWxlICVzLCBsaW5lXCIgc1xuICAgIGluXG4gICAgbGV0IGJ5dGVzID1cbiAgICAgIGlmIHBvczEgPSBwb3MyIHRoZW5cbiAgICAgICAgc3ByaW50ZiBcImJ5dGUgJWlcIiAocG9zMSsxKVxuICAgICAgZWxzZVxuICAgICAgICBzcHJpbnRmIFwiYnl0ZXMgJWktJWlcIiAocG9zMSsxKSAocG9zMisxKVxuICAgIGluXG4gICAgbGV0IG1zZyA9IHNwcmludGYgXCIlcyAlaSwgJXM6XFxuJXNcIiBmaWxlX2xpbmUgdi5sbnVtIGJ5dGVzIGRlc2NyIGluXG4gICAganNvbl9lcnJvciBtc2dcblxuXG4gIGxldCBsZXhlcl9lcnJvciBkZXNjciB2IGxleGJ1ZiA9XG4gICAgY3VzdG9tX2Vycm9yXG4gICAgICAoc3ByaW50ZiBcIiVzICclcydcIiBkZXNjciAoTGV4aW5nLmxleGVtZSBsZXhidWYpKVxuICAgICAgdiBsZXhidWZcblxuICBsZXQgcmVhZF9qdW5rID0gcmVmIChmdW4gXyAtPiBhc3NlcnQgZmFsc2UpXG5cbiAgbGV0IGxvbmdfZXJyb3IgZGVzY3IgdiBsZXhidWYgPVxuICAgIGxldCBqdW5rID0gTGV4aW5nLmxleGVtZSBsZXhidWYgaW5cbiAgICBsZXQgZXh0cmFfanVuayA9ICFyZWFkX2p1bmsgbGV4YnVmIGluXG4gICAgY3VzdG9tX2Vycm9yXG4gICAgICAoc3ByaW50ZiBcIiVzICclcyVzJ1wiIGRlc2NyIGp1bmsgZXh0cmFfanVuaylcbiAgICAgIHYgbGV4YnVmXG5cbiAgbGV0IG1pbjEwID0gbWluX2ludCAvIDEwIC0gKGlmIG1pbl9pbnQgbW9kIDEwID0gMCB0aGVuIDAgZWxzZSAxKVxuICBsZXQgbWF4MTAgPSBtYXhfaW50IC8gMTAgKyAoaWYgbWF4X2ludCBtb2QgMTAgPSAwIHRoZW4gMCBlbHNlIDEpXG5cbiAgZXhjZXB0aW9uIEludF9vdmVyZmxvd1xuXG4gIGxldCBleHRyYWN0X3Bvc2l0aXZlX2ludCBsZXhidWYgPVxuICAgIGxldCBzdGFydCA9IGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGluXG4gICAgbGV0IHN0b3AgPSBsZXhidWYubGV4X2N1cnJfcG9zIGluXG4gICAgbGV0IHMgPSBsZXhidWYubGV4X2J1ZmZlciBpblxuICAgIGxldCBuID0gcmVmIDAgaW5cbiAgICBmb3IgaSA9IHN0YXJ0IHRvIHN0b3AgLSAxIGRvXG4gICAgICBpZiAhbiA+PSBtYXgxMCB0aGVuXG4gICAgICAgIHJhaXNlIEludF9vdmVyZmxvd1xuICAgICAgZWxzZVxuICAgICAgICBuIDo9IDEwICogIW4gKyBkZWMgKEJ5dGVzLmdldCBzIGkpXG4gICAgZG9uZTtcbiAgICBpZiAhbiA8IDAgdGhlblxuICAgICAgcmFpc2UgSW50X292ZXJmbG93XG4gICAgZWxzZVxuICAgICAgIW5cblxuICBsZXQgbWFrZV9wb3NpdGl2ZV9pbnQgdiBsZXhidWYgPVxuICAgICAgXG4jIDEwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICB0cnkgYEludCAoZXh0cmFjdF9wb3NpdGl2ZV9pbnQgbGV4YnVmKVxuICAgICAgd2l0aCBJbnRfb3ZlcmZsb3cgLT5cbiAgICAgICAgXG4jIDExMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgIGxleGVyX2Vycm9yIFwiSW50IG92ZXJmbG93XCIgdiBsZXhidWZcblxuICBcbiMgMTEzIFwibGliL3JlYWQubWxsXCJcbiAgbGV0IGV4dHJhY3RfbmVnYXRpdmVfaW50IGxleGJ1ZiA9XG4gICAgbGV0IHN0YXJ0ID0gbGV4YnVmLmxleF9zdGFydF9wb3MgKyAxIGluXG4gICAgbGV0IHN0b3AgPSBsZXhidWYubGV4X2N1cnJfcG9zIGluXG4gICAgbGV0IHMgPSBsZXhidWYubGV4X2J1ZmZlciBpblxuICAgIGxldCBuID0gcmVmIDAgaW5cbiAgICBmb3IgaSA9IHN0YXJ0IHRvIHN0b3AgLSAxIGRvXG4gICAgICBpZiAhbiA8PSBtaW4xMCB0aGVuXG4gICAgICAgIHJhaXNlIEludF9vdmVyZmxvd1xuICAgICAgZWxzZVxuICAgICAgICBuIDo9IDEwICogIW4gLSBkZWMgKEJ5dGVzLmdldCBzIGkpXG4gICAgZG9uZTtcbiAgICBpZiAhbiA+IDAgdGhlblxuICAgICAgcmFpc2UgSW50X292ZXJmbG93XG4gICAgZWxzZVxuICAgICAgIW5cblxuICBsZXQgbWFrZV9uZWdhdGl2ZV9pbnQgdiBsZXhidWYgPVxuICAgICAgXG4jIDEzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICB0cnkgYEludCAoZXh0cmFjdF9uZWdhdGl2ZV9pbnQgbGV4YnVmKVxuICAgICAgd2l0aCBJbnRfb3ZlcmZsb3cgLT5cbiAgICAgICAgXG4jIDEzNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgIGxleGVyX2Vycm9yIFwiSW50IG92ZXJmbG93XCIgdiBsZXhidWZcblxuXG4gIFxuIyAxNDEgXCJsaWIvcmVhZC5tbGxcIlxuICBsZXQgc2V0X2ZpbGVfbmFtZSB2IGZuYW1lID1cbiAgICB2LmZuYW1lIDwtIGZuYW1lXG5cbiAgbGV0IG5ld2xpbmUgdiBsZXhidWYgPVxuICAgIHYubG51bSA8LSB2LmxudW0gKyAxO1xuICAgIHYuYm9sIDwtIGxleGJ1Zi5sZXhfYWJzX3BvcyArIGxleGJ1Zi5sZXhfY3Vycl9wb3NcblxuICBsZXQgYWRkX2xleGVtZSBidWYgbGV4YnVmID1cbiAgICBsZXQgbGVuID0gbGV4YnVmLmxleF9jdXJyX3BvcyAtIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGluXG4gICAgQnVmZmVyLmFkZF9zdWJieXRlcyBidWYgbGV4YnVmLmxleF9idWZmZXIgbGV4YnVmLmxleF9zdGFydF9wb3MgbGVuXG5cbiAgbGV0IG1hcF9sZXhlbWUgZiBsZXhidWYgPVxuICAgIGxldCBsZW4gPSBsZXhidWYubGV4X2N1cnJfcG9zIC0gbGV4YnVmLmxleF9zdGFydF9wb3MgaW5cbiAgICBmIChCeXRlcy5zdWJfc3RyaW5nIGxleGJ1Zi5sZXhfYnVmZmVyIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGxlbikgMCBsZW5cblxuICB0eXBlIHZhcmlhbnRfa2luZCA9IFsgYEVkZ3lfYnJhY2tldCB8IGBTcXVhcmVfYnJhY2tldCB8IGBEb3VibGVfcXVvdGUgXVxuICB0eXBlIHR1cGxlX2tpbmQgPSBbIGBQYXJlbnRoZXNpcyB8IGBTcXVhcmVfYnJhY2tldCBdXG5cblxuIyAxNjEgXCJsaWIvcmVhZC5tbFwiXG4jIDE2MSBcImxpYi9yZWFkLm1sXCJcbmxldCBfX29jYW1sX2xleF90YWJsZXMgPSB7XG4gIExleGluZy5sZXhfYmFzZSA9XG4gICBcIlxcMDAwXFwwMDBcXDIzNlxcMjU1XFwyMzdcXDI1NVxcMDAzXFwwMDBcXDIzOVxcMjU1XFwwMTZcXDAwMFxcMjQyXFwyNTVcXDI0M1xcMjU1XFxcbiAgICBcXDI0NFxcMjU1XFwyNDVcXDI1NVxcMDAwXFwwMDBcXDAzMVxcMDAwXFwyNDlcXDI1NVxcMDg1XFwwMDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDFcXDAwMFxcMDAyXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAzXFwwMDBcXDI1NFxcMjU1XFwwMDFcXDAwMFxcMDA0XFwwMDBcXDI1M1xcMjU1XFwwMTFcXDAwMFxcMjUyXFwyNTVcXDAwM1xcMDAwXFxcbiAgICBcXDAwMVxcMDAwXFwwMDNcXDAwMFxcMDAyXFwwMDBcXDAwM1xcMDAwXFwwMDBcXDAwMFxcMjUxXFwyNTVcXDAyMVxcMDAwXFwwOTdcXDAwMFxcXG4gICAgXFwwMTBcXDAwMFxcMDIyXFwwMDBcXDAyMFxcMDAwXFwwMTZcXDAwMFxcMDIyXFwwMDBcXDAxMlxcMDAwXFwwMDhcXDAwMFxcMjUwXFwyNTVcXFxuICAgIFxcMTE5XFwwMDBcXDEyOVxcMDAwXFwxMzlcXDAwMFxcMTYxXFwwMDBcXDE3MVxcMDAwXFwxODFcXDAwMFxcMTkzXFwwMDBcXDIwOVxcMDAwXFxcbiAgICBcXDI0MFxcMjU1XFwwMTFcXDAwMFxcMDM4XFwwMDBcXDI1MlxcMjU1XFwwNjVcXDAwMFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwxMTBcXDAwMFxcXG4gICAgXFwyNTJcXDI1NVxcMTYzXFwwMDBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMjM0XFwwMDBcXDI0N1xcMjU1XFwyNDhcXDI1NVxcMDQ4XFwwMDFcXFxuICAgIFxcMjUwXFwyNTVcXDI1MVxcMjU1XFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDcxXFwwMDFcXDEyNlxcMDAxXFxcbiAgICBcXDE0OVxcMDAxXFwyNDlcXDI1NVxcMDM5XFwwMDBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMDM4XFwwMDBcXDE4N1xcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyNDhcXDAwMVxcMDE1XFwwMDJcXDI1NVxcMjU1XFwyMjBcXDAwMFxcMjUzXFwyNTVcXDI1NVxcMjU1XFwyNDVcXDAwMFxcMDM5XFwwMDJcXFxuICAgIFxcMTA5XFwwMDJcXDAxNFxcMDAxXFwwODhcXDAwMlxcMTY0XFwwMDJcXDE4N1xcMDAyXFwyMjVcXDAwMlxcMDEzXFwwMDBcXDI1MlxcMjU1XFxcbiAgICBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAxNFxcMDAwXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMzBcXDAwMFxcXG4gICAgXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMTVcXDAwMFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDE3XFwwMDFcXFxuICAgIFxcMjUxXFwyNTVcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMTlcXDAwMFxcMjUyXFwyNTVcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwwMTVcXDAwMFxcMjU1XFwyNTVcXDAxNlxcMDAwXFwyNTVcXDI1NVxcMDA4XFwwMDFcXDAwNVxcMDAwXFwyNTNcXDI1NVxcXG4gICAgXFwwMjNcXDAwMFxcMjU0XFwyNTVcXDAyMFxcMDAwXFwyNTVcXDI1NVxcMDQ2XFwwMDBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMDQyXFwwMDBcXFxuICAgIFxcMDUyXFwwMDBcXDA1M1xcMDAwXFwyNTVcXDI1NVxcMDUzXFwwMDBcXDA0OFxcMDAwXFwwOTFcXDAwMFxcMDkyXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAyN1xcMDAxXFwyNTBcXDI1NVxcMjUxXFwyNTVcXDEzN1xcMDAwXFwxMDRcXDAwMFxcMDg5XFwwMDBcXDA4OFxcMDAwXFwxMDZcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMTQzXFwwMDBcXDEzN1xcMDAwXFwxNzdcXDAwMFxcMjU0XFwyNTVcXDE4M1xcMDAwXFwxNjhcXDAwMFxcMTY2XFwwMDBcXFxuICAgIFxcMTgzXFwwMDBcXDAwMlxcMDAwXFwyNTNcXDI1NVxcMTc3XFwwMDBcXDE3MlxcMDAwXFwxODdcXDAwMFxcMDA0XFwwMDBcXDI1MlxcMjU1XFxcbiAgICBcXDA1M1xcMDAyXFwyNTFcXDI1NVxcMjUyXFwyNTVcXDI1M1xcMjU1XFwxMDNcXDAwMVxcMjU1XFwyNTVcXDI0OFxcMDAyXFwyNTRcXDI1NVxcXG4gICAgXFwwMDZcXDAwM1xcMDMwXFwwMDNcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwNDBcXDAwM1xcMDUwXFwwMDNcXFxuICAgIFxcMDc0XFwwMDNcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwNjFcXDAwM1xcMDg0XFwwMDNcXDEwOFxcMDAzXFxcbiAgICBcXDI0OVxcMjU1XFwyNTBcXDI1NVxcMjUxXFwyNTVcXDI0NFxcMDAwXFwxMjBcXDAwM1xcMTQyXFwwMDNcXDE3OVxcMDAwXFwxOTRcXDAwMFxcXG4gICAgXFwwMTVcXDAwMFxcMjU1XFwyNTVcXDE5MFxcMDAwXFwxODhcXDAwMFxcMTg3XFwwMDBcXDE5M1xcMDAwXFwxODNcXDAwMFxcMTc5XFwwMDBcXFxuICAgIFxcMjU0XFwyNTVcXDE5MVxcMDAwXFwyMDFcXDAwMFxcMjAwXFwwMDBcXDE5NlxcMDAwXFwyMDNcXDAwMFxcMTkzXFwwMDBcXDE4OVxcMDAwXFxcbiAgICBcXDI1M1xcMjU1XFwxNTdcXDAwM1xcMDk1XFwwMDNcXDE3NFxcMDAzXFwxOTZcXDAwM1xcMjA2XFwwMDNcXDIxNlxcMDAzXFwyMjhcXDAwM1xcXG4gICAgXFwyMzlcXDAwM1xcMDYwXFwwMDBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAxMlxcMDA0XFwyNTJcXDI1NVxcMjUzXFwyNTVcXFxuICAgIFxcMDg3XFwwMDRcXDI1NVxcMjU1XFwxNDVcXDAwNFxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyMjFcXDAwNFxcMjU1XFwyNTVcXDIyOVxcMDAwXFxcbiAgICBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDIzMVxcMDAwXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMDJcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMDE4XFwwMDFcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMzRcXDAwMVxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwM1xcMDAwXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAzOFxcMDAxXFxcbiAgICBcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwxMjBcXDAwMVxcMjUxXFwyNTVcXDI1MlxcMjU1XFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDIwOFxcMDAwXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwyMTFcXDAwMFxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwxODlcXDAwMFxcMjU1XFwyNTVcXDE0M1xcMDAxXFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMTNcXDAwMVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDk1XFwwMDFcXDI1MlxcMjU1XFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDA1MFxcMDAxXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMjZcXDAwMVxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwyMzNcXDAwMFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMjIyXFwwMDBcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDc5XFwwMDVcXDIzN1xcMjU1XFwyMzhcXDI1NVxcMDEwXFwwMDBcXDI0MFxcMjU1XFwwNDRcXDAwMVxcXG4gICAgXFwyNDNcXDI1NVxcMjQ0XFwyNTVcXDI0NVxcMjU1XFwyNDZcXDI1NVxcMDYxXFwwMDFcXDAwMlxcMDA0XFwyNDlcXDI1NVxcMDQ1XFwwMDVcXFxuICAgIFxcMjA5XFwwMDBcXDIyOFxcMDAwXFwyMTFcXDAwMFxcMjMyXFwwMDBcXDIyNVxcMDAwXFwyMjNcXDAwMFxcMjQwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDIzNVxcMDAwXFwyMzRcXDAwMFxcMDA4XFwwMDFcXDI1NFxcMjU1XFwwMDRcXDAwMVxcMDIzXFwwMDFcXDI1M1xcMjU1XFwwNTRcXDAwMVxcXG4gICAgXFwyNTJcXDI1NVxcMDMxXFwwMDFcXDAyOVxcMDAxXFwwMzJcXDAwMVxcMDM5XFwwMDFcXDA0OVxcMDAxXFwwNDVcXDAwMVxcMjUxXFwyNTVcXFxuICAgIFxcMDU3XFwwMDFcXDA4MlxcMDAxXFwwODBcXDAwMVxcMDc4XFwwMDFcXDA4NFxcMDAxXFwwNzRcXDAwMVxcMDg2XFwwMDFcXDI1MFxcMjU1XFxcbiAgICBcXDExMFxcMDA1XFwwMTJcXDAwNFxcMTIzXFwwMDVcXDE1NVxcMDA1XFwxNjVcXDAwNVxcMTc3XFwwMDVcXDE4N1xcMDA1XFwxOTdcXDAwNVxcXG4gICAgXFwyNDFcXDI1NVxcMTk5XFwwMDFcXDA3N1xcMDAyXFwyNTNcXDI1NVxcMjU1XFwyNTVcXDE1NFxcMDAyXFwyMjJcXDAwNVxcMjA5XFwwMDVcXFxuICAgIFxcMTU1XFwwMDJcXDIzOVxcMDA1XFwwNTNcXDAwNlxcMDc2XFwwMDZcXDExNFxcMDA2XFwwMTZcXDAwMlxcMjUyXFwyNTVcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMTUyXFwwMDZcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjI3XFwwMDZcXDI1NVxcMjU1XFwwODVcXDAwN1xcXG4gICAgXFwyNDRcXDI1NVxcMjQ1XFwyNTVcXDAxMVxcMDAwXFwyNDdcXDI1NVxcMDc2XFwwMDJcXDI1MFxcMjU1XFwyNTFcXDI1NVxcMjUyXFwyNTVcXFxuICAgIFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwwMzFcXDAwMlxcMjQzXFwwMDVcXDA1MVxcMDA3XFwxMDBcXDAwMVxcMTE1XFwwMDFcXDEwNFxcMDAxXFxcbiAgICBcXDEzM1xcMDAxXFwxMThcXDAwMVxcMTU0XFwwMDFcXDE3MVxcMDAxXFwyNTVcXDI1NVxcMTczXFwwMDFcXDE3NlxcMDAxXFwxOTFcXDAwMVxcXG4gICAgXFwxODVcXDAwMVxcMTg3XFwwMDFcXDI1M1xcMDAxXFwyMzBcXDAwMVxcMjMwXFwwMDFcXDIzNFxcMDAxXFwyNDdcXDAwMVxcMjM3XFwwMDFcXFxuICAgIFxcMjM0XFwwMDFcXDAwOVxcMDAyXFwwMTlcXDAwMlxcMDE5XFwwMDJcXDAxNVxcMDAyXFwwMjFcXDAwMlxcMDExXFwwMDJcXDAwN1xcMDAyXFxcbiAgICBcXDE0MlxcMDA2XFwxNTJcXDAwNlxcMTE2XFwwMDdcXDE3MFxcMDA3XFwxODBcXDAwN1xcMTkwXFwwMDdcXDIwMFxcMDA3XFwyMTBcXDAwN1xcXG4gICAgXFwyNDhcXDI1NVxcMTIwXFwwMDJcXDE2N1xcMDAyXFwyNTNcXDI1NVxcMjU1XFwyNTVcXDIxNlxcMDAyXFwwODJcXDAwN1xcMjIwXFwwMDdcXFxuICAgIFxcMjM2XFwwMDJcXDI0NFxcMDA3XFwwNThcXDAwOFxcMDgxXFwwMDhcXDExOVxcMDA4XFwwNzZcXDAwMlxcMjUyXFwyNTVcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMTU3XFwwMDhcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjMyXFwwMDhcXDI1NVxcMjU1XFwxMzVcXDAwMlxcXG4gICAgXFwxMjBcXDAwMlxcMjUzXFwyNTVcXDEwMFxcMDAyXFwyNTRcXDI1NVxcMTgyXFwwMDJcXDI1NVxcMjU1XFwwMTFcXDAwMlxcMjU1XFwyNTVcXFxuICAgIFxcMjA0XFwwMDJcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwNDZcXDAwMlxcMjU1XFwyNTVcXDE3OFxcMDAyXFxcbiAgICBcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMjNcXDAwMFxcMjU1XFwyNTVcXDE4M1xcMDAyXFwyNTJcXDI1NVxcXG4gICAgXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwxODdcXDAwMlxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMTIxXFwwMDJcXFxuICAgIFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMTg0XFwwMDJcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDAxOVxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwxNDBcXDAwMVxcMTQ2XFwwMDFcXDI1NVxcMjU1XFwxNTBcXDAwMVxcMTUxXFwwMDFcXDE1NFxcMDAxXFwxNjhcXDAwMVxcXG4gICAgXFwxNzBcXDAwMVxcMTcxXFwwMDFcXDE3MlxcMDAxXFwxNzNcXDAwMVxcMTgxXFwwMDFcXDE4NFxcMDAxXFwxODVcXDAwMVxcMTg3XFwwMDFcXFxuICAgIFxcMTkxXFwwMDFcXDE5M1xcMDAxXFwxOTVcXDAwMVxcMTk2XFwwMDFcXDE5N1xcMDAxXFwyMDBcXDAwMVxcMjAzXFwwMDFcXDIyM1xcMDAxXFxcbiAgICBcXDIyNVxcMDAxXFwyMjhcXDAwMVxcMjQ5XFwwMDFcXDI1MVxcMDAxXFwwMDJcXDAwMlxcMDA0XFwwMDJcXDAxMVxcMDAyXFwwMTJcXDAwMlxcXG4gICAgXFwwMTNcXDAwMlxcMDAwXFwwMDBcIjtcbiAgTGV4aW5nLmxleF9iYWNrdHJrID1cbiAgIFwiXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMTdcXDAwMFxcMjU1XFwyNTVcXDAxOVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDdcXDAwMFxcMDA3XFwwMDBcXDI1NVxcMjU1XFwwMTlcXDAwMFxcMDE5XFwwMDBcXDAxOVxcMDAwXFxcbiAgICBcXDAxOVxcMDAwXFwwMTlcXDAwMFxcMDE5XFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDA4XFwwMDBcXDAwOFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwOVxcMDAwXFwyNTVcXDI1NVxcMDA5XFwwMDBcXDI1NVxcMjU1XFwwMDlcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAxNFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMDJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDdcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwwMDFcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAwM1xcMDAwXFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwwMDRcXDAwMFxcMDAzXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDA0XFwwMDBcXDAwNFxcMDAwXFwwMDRcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwM1xcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDJcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDJcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAzXFwwMDBcXDAwM1xcMDAwXFwwMDVcXDAwMFxcMDA1XFwwMDBcXDAwNVxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAzXFwwMDBcXDI1NVxcMjU1XFwwMDNcXDAwMFxcMjU1XFwyNTVcXDAwM1xcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMDAyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMTZcXDAwMFxcMjU1XFwyNTVcXDAxOFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDdcXDAwMFxcMDA3XFwwMDBcXDI1NVxcMjU1XFwwMThcXDAwMFxcXG4gICAgXFwwMThcXDAwMFxcMDE4XFwwMDBcXDAxOFxcMDAwXFwwMThcXDAwMFxcMDE4XFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDhcXDAwMFxcMjU1XFwyNTVcXDAwOFxcMDAwXFwyNTVcXDI1NVxcMDA4XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMTNcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDAwMVxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDA5XFwwMDBcXDI1NVxcMjU1XFwwMTFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXFxuICAgIFxcMDExXFwwMDBcXDAxMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMDZcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDAwMVxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDAwNFxcMDAwXFxcbiAgICBcXDAwM1xcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAzXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVwiO1xuICBMZXhpbmcubGV4X2RlZmF1bHQgPVxuICAgXCJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMDU3XFwwMDBcXDA2MFxcMDAwXFwwMDBcXDAwMFxcMDYwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDY1XFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDA2NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA3MFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDA4NFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDk0XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDk3XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwOTdcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEwNFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMDlcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTEzXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTE3XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyMVxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI2XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwxMzhcXDAwMFxcMDAwXFwwMDBcXDE0MlxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwxNTRcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwxNzhcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDE4N1xcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDE5NFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDFcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDIzNVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMzlcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjQ0XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNDlcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTNcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDAwM1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDA4XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMTdcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDIyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMjhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDMyXFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMzhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDQzXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA0N1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNTJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDU2XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDYwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA2NFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA2N1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDEyMVxcMDAxXFwxMjVcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDEyOFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTM1XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE0MFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMTQ0XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDE5M1xcMDAxXFwxOTdcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDBcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDIwMFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjA3XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIxMlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDIyMFxcMDAxXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDIyNlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyMzNcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNDBcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjQ1XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI0OVxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1MlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMDAyXFwwMDJcXDAwNFxcMDAyXFwwMDBcXDAwMFxcMDA1XFwwMDJcXDAwNlxcMDAyXFwwMDdcXDAwMlxcMDA4XFwwMDJcXFxuICAgIFxcMDA5XFwwMDJcXDAxMFxcMDAyXFwwMTFcXDAwMlxcMDEyXFwwMDJcXDAxM1xcMDAyXFwwMTRcXDAwMlxcMDE1XFwwMDJcXDAxNlxcMDAyXFxcbiAgICBcXDAxN1xcMDAyXFwwMThcXDAwMlxcMDE5XFwwMDJcXDAyMFxcMDAyXFwwMjFcXDAwMlxcMDIyXFwwMDJcXDAyM1xcMDAyXFwwMjRcXDAwMlxcXG4gICAgXFwwMjVcXDAwMlxcMDI2XFwwMDJcXDAyN1xcMDAyXFwwMjhcXDAwMlxcMDI5XFwwMDJcXDAzMFxcMDAyXFwwMzFcXDAwMlxcMDMyXFwwMDJcXFxuICAgIFxcMDMzXFwwMDJcXDAwM1xcMDAyXCI7XG4gIExleGluZy5sZXhfdHJhbnMgPVxuICAgXCJcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAzXFwwMDBcXDAwNFxcMDAwXFwwMDBcXDAwMFxcMDAzXFwwMDBcXDAwM1xcMDAwXFwxMzRcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAzXFwwMDBcXDAwMFxcMDAwXFwxMzRcXDAwMFxcMDY5XFwwMDFcXDE0NlxcMDAxXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDA2OVxcMDAxXFxcbiAgICBcXDE0NlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI3XFwwMDBcXDEzOVxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDNcXDAwMFxcMDAwXFwwMDBcXDAxMlxcMDAwXFwwMDNcXDAwMFxcMTcwXFwwMDBcXDEzNFxcMDAwXFwxNzVcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDA3XFwwMDBcXDAxMVxcMDAxXFwwNjlcXDAwMVxcMTQ2XFwwMDFcXDAxNFxcMDAxXFwwMTNcXDAwMFxcMDQ5XFwwMDBcXDAwNVxcMDAwXFxcbiAgICBcXDAxMFxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcXG4gICAgXFwwMTFcXDAwMFxcMDExXFwwMDBcXDA1NlxcMDAwXFwxMThcXDAwMFxcMDA2XFwwMDBcXDEyOVxcMDAwXFwxMzBcXDAwMFxcMDU3XFwwMDBcXFxuICAgIFxcMjM3XFwwMDFcXDEzN1xcMDAwXFwwMDBcXDAwMlxcMDQ5XFwwMDBcXDAwMFxcMDAwXFwwNDhcXDAwMFxcMTM4XFwwMDBcXDEwNlxcMDAwXFxcbiAgICBcXDA2MlxcMDAwXFwwMTRcXDAwMFxcMTEwXFwwMDBcXDEwNVxcMDAwXFwwMDBcXDAwMFxcMDQ5XFwwMDBcXDAxNVxcMDAwXFwwMTFcXDAwMFxcXG4gICAgXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXFxuICAgIFxcMDExXFwwMDBcXDAzMFxcMDAwXFwwNDhcXDAwMFxcMDA4XFwwMDBcXDExNFxcMDAwXFwyMDlcXDAwMFxcMjM2XFwwMDBcXDAwMFxcMDAxXFxcbiAgICBcXDAxM1xcMDAxXFwwMjlcXDAwMFxcMDIyXFwwMDBcXDI1NVxcMjU1XFwwNDhcXDAwMFxcMDQ4XFwwMDBcXDAxN1xcMDAwXFwwMjFcXDAwMFxcXG4gICAgXFwwMjVcXDAwMFxcMDMyXFwwMDBcXDAzM1xcMDAwXFwwMzVcXDAwMFxcMDIzXFwwMDBcXDAyN1xcMDAwXFwwMTZcXDAwMFxcMDMxXFwwMDBcXFxuICAgIFxcMDI4XFwwMDBcXDAzNFxcMDAwXFwwMTlcXDAwMFxcMDI0XFwwMDBcXDAxOFxcMDAwXFwwMjZcXDAwMFxcMDIwXFwwMDBcXDAzNlxcMDAwXFxcbiAgICBcXDA0MVxcMDAwXFwwMzdcXDAwMFxcMDQ4XFwwMDBcXDAwOVxcMDAwXFwwNDJcXDAwMFxcMDQzXFwwMDBcXDA0NFxcMDAwXFwwNDVcXDAwMFxcXG4gICAgXFwwNDZcXDAwMFxcMDQ3XFwwMDBcXDA2MVxcMDAwXFwwODVcXDAwMFxcMDQ4XFwwMDBcXDAzOFxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXFxuICAgIFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDA0OVxcMDAwXFxcbiAgICBcXDA2N1xcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcXG4gICAgXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwODZcXDAwMFxcMTQzXFwwMDBcXDI1NVxcMjU1XFwwNDBcXDAwMFxcMTQ0XFwwMDBcXFxuICAgIFxcMTQ1XFwwMDBcXDE0NlxcMDAwXFwwNTVcXDAwMFxcMTQ4XFwwMDBcXDA1NVxcMDAwXFwxNDlcXDAwMFxcMDQ4XFwwMDBcXDA1NFxcMDAwXFxcbiAgICBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcXG4gICAgXFwwNTRcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXFxuICAgIFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFxcbiAgICBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMjU1XFwyNTVcXDA0OFxcMDAwXFwxNTBcXDAwMFxcXG4gICAgXFwxNTFcXDAwMFxcMTYxXFwwMDBcXDA2NlxcMDAwXFwxNThcXDAwMFxcMDUzXFwwMDBcXDE1OVxcMDAwXFwwNTNcXDAwMFxcMTYwXFwwMDBcXFxuICAgIFxcMDUxXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFxcbiAgICBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcXG4gICAgXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXFxuICAgIFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDE2NVxcMDAwXFxcbiAgICBcXDA1MVxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcXG4gICAgXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwxNjJcXDAwMFxcMTYzXFwwMDBcXDE2NlxcMDAwXFwwOTNcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAyXFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFxcbiAgICBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDI1NVxcMjU1XFwwNzdcXDAwMFxcMTAzXFwwMDBcXDEwOFxcMDAwXFwxMTZcXDAwMFxcXG4gICAgXFwxMzJcXDAwMFxcMTM0XFwwMDBcXDEzNVxcMDAwXFwxMjhcXDAwMFxcMTM5XFwwMDBcXDEzNFxcMDAwXFwxNjRcXDAwMFxcMDkzXFwwMDBcXFxuICAgIFxcMTcxXFwwMDBcXDA3N1xcMDAwXFwxNjdcXDAwMFxcMTY4XFwwMDBcXDE2OVxcMDAwXFwxNzJcXDAwMFxcMTEyXFwwMDBcXDE3M1xcMDAwXFxcbiAgICBcXDE3NFxcMDAwXFwyMTBcXDAwMFxcMjI2XFwwMDBcXDIwOFxcMDAwXFwyMTFcXDAwMFxcMjEyXFwwMDBcXDA1OVxcMDAwXFwwODNcXDAwMFxcXG4gICAgXFwxMzRcXDAwMFxcMjEzXFwwMDBcXDIxNFxcMDAwXFwyMTVcXDAwMFxcMjE2XFwwMDBcXDIxOFxcMDAwXFwxNDFcXDAwMFxcMjE5XFwwMDBcXFxuICAgIFxcMDkzXFwwMDBcXDIyMFxcMDAwXFwyMjFcXDAwMFxcMTIzXFwwMDBcXDIyMlxcMDAwXFwyMjNcXDAwMFxcMjI0XFwwMDBcXDEzNlxcMDAwXFxcbiAgICBcXDA5NVxcMDAwXFwyMjVcXDAwMFxcMDM1XFwwMDFcXDA2NVxcMDAxXFwyMzRcXDAwMFxcMTU1XFwwMDBcXDAwNVxcMDAxXFwwOTdcXDAwMVxcXG4gICAgXFwyNTBcXDAwMFxcMjU1XFwyNTVcXDI1NFxcMDAwXFwwNTdcXDAwMVxcMDYxXFwwMDFcXDA5NVxcMDAxXFwwNzdcXDAwMFxcMDQ0XFwwMDFcXFxuICAgIFxcMDkyXFwwMDFcXDA4OFxcMDAxXFwwMDlcXDAwMVxcMDI5XFwwMDFcXDA3NlxcMDAwXFwxMjRcXDAwMFxcMDMzXFwwMDFcXDAxOFxcMDAxXFxcbiAgICBcXDA3NVxcMDAwXFwwOThcXDAwMFxcMDE5XFwwMDFcXDA4NVxcMDAxXFwwODZcXDAwMVxcMDg3XFwwMDFcXDEyMFxcMDAxXFwwODlcXDAwMVxcXG4gICAgXFwwNzRcXDAwMFxcMjI1XFwwMDBcXDA1M1xcMDAxXFwxMjFcXDAwMVxcMDczXFwwMDBcXDA5MFxcMDAxXFwwNzJcXDAwMFxcMDcxXFwwMDBcXFxuICAgIFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFxcbiAgICBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDk4XFwwMDBcXDExM1xcMDAxXFwxMjJcXDAwMFxcMDkxXFwwMDFcXDA2NFxcMDAwXFwwMDRcXDAwMVxcXG4gICAgXFwwOTNcXDAwMVxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc5XFwwMDBcXFxuICAgIFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFxcbiAgICBcXDA3OVxcMDAwXFwxNTZcXDAwMFxcMTEyXFwwMDFcXDA5NFxcMDAxXFwwOTZcXDAwMVxcMDk4XFwwMDFcXDA5OVxcMDAxXFwwNDlcXDAwMVxcXG4gICAgXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwxMDBcXDAwMVxcMTU3XFwwMDBcXFxuICAgIFxcMTAxXFwwMDFcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDE4M1xcMDAwXFxcbiAgICBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcXG4gICAgXFwxODRcXDAwMFxcMDI0XFwwMDFcXDExMlxcMDAxXFwyNTVcXDI1NVxcMDI1XFwwMDFcXDEwMlxcMDAxXFwxMDNcXDAwMVxcMTA1XFwwMDFcXFxuICAgIFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFxcbiAgICBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcXG4gICAgXFwxMDZcXDAwMVxcMTA3XFwwMDFcXDA0OFxcMDAxXFwwNDBcXDAwMVxcMTA4XFwwMDFcXDEwOVxcMDAxXFwxMTBcXDAwMVxcMDgwXFwwMDBcXFxuICAgIFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFxcbiAgICBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwxMTFcXDAwMVxcXG4gICAgXFwwMjdcXDAwMVxcMjU1XFwyNTVcXDE3MVxcMDAxXFwwMzFcXDAwMVxcMTcwXFwwMDFcXDAyM1xcMDAxXFwwODFcXDAwMFxcMDgxXFwwMDBcXFxuICAgIFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA5MlxcMDAwXFwxNjhcXDAwMVxcMDYzXFwwMDFcXDA4MFxcMDAwXFxcbiAgICBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMjQ4XFwwMDBcXDE2NVxcMDAxXFwyNTJcXDAwMFxcXG4gICAgXFwxNjJcXDAwMVxcMDU5XFwwMDFcXDA2OVxcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXFxuICAgIFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwyNTVcXDI1NVxcMDgxXFwwMDBcXDA4MVxcMDAwXFxcbiAgICBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcXG4gICAgXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXFxuICAgIFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDAzOVxcMDAxXFwwNDJcXDAwMVxcMjU1XFwyNTVcXDE2M1xcMDAxXFxcbiAgICBcXDE2NFxcMDAxXFwxMjBcXDAwMFxcMDAyXFwwMDFcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcXG4gICAgXFwwODhcXDAwMFxcMTY2XFwwMDFcXDA1NVxcMDAxXFwxNTNcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXFxuICAgIFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwMDdcXDAwMVxcMTY3XFwwMDFcXDE2NFxcMDAxXFwxNjlcXDAwMVxcMDE2XFwwMDFcXDE2NFxcMDAxXFxcbiAgICBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcXG4gICAgXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA1MVxcMDAxXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXFxuICAgIFxcMDg4XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA5MFxcMDAwXFxcbiAgICBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcXG4gICAgXFwwOTBcXDAwMFxcMDk3XFwwMDBcXDEzN1xcMDAxXFwxNjRcXDAwMVxcMTcyXFwwMDFcXDE4NVxcMDAxXFwxMzZcXDAwMVxcMTczXFwwMDFcXFxuICAgIFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDk3XFwwMDBcXDE3OVxcMDAwXFxcbiAgICBcXDE3NFxcMDAxXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwNDZcXDAwMVxcXG4gICAgXFwxNzVcXDAwMVxcMTc2XFwwMDFcXDE4MFxcMDAwXFwxNjRcXDAwMVxcMTg0XFwwMDFcXDE4MVxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXFxuICAgIFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDEyNFxcMDAxXFxcbiAgICBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDE5MlxcMDAxXFwxNzhcXDAwMVxcXG4gICAgXFwwMjFcXDAwMVxcMTc5XFwwMDFcXDA5N1xcMDAwXFwxOTNcXDAwMVxcMTgwXFwwMDFcXDE4MVxcMDAxXFwxODJcXDAwMVxcMTgzXFwwMDFcXFxuICAgIFxcMTY0XFwwMDFcXDIxNlxcMDAxXFwyNTVcXDI1NVxcMDk3XFwwMDBcXDE4NFxcMDAxXFwyMTZcXDAwMVxcMjA5XFwwMDFcXDA5N1xcMDAwXFxcbiAgICBcXDIyM1xcMDAxXFwwOTdcXDAwMFxcMjA4XFwwMDFcXDIzMFxcMDAxXFwwMDNcXDAwMlxcMDk3XFwwMDBcXDIxOVxcMDAxXFwwMzdcXDAwMVxcXG4gICAgXFwyMTZcXDAwMVxcMjE3XFwwMDFcXDAwM1xcMDAyXFwyMjBcXDAwMVxcMjE2XFwwMDFcXDA5N1xcMDAwXFwwMDNcXDAwMlxcMDAzXFwwMDJcXFxuICAgIFxcMjE2XFwwMDFcXDA5N1xcMDAwXFwwMDNcXDAwMlxcMDk3XFwwMDBcXDA5NlxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFxcbiAgICBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwyMTZcXDAwMVxcXG4gICAgXFwwMDNcXDAwMlxcMTI2XFwwMDFcXDAwM1xcMDAyXFwwMDNcXDAwMlxcMDAzXFwwMDJcXDAwM1xcMDAyXFwwOTlcXDAwMFxcMDk5XFwwMDBcXFxuICAgIFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5N1xcMDAwXFwwMDNcXDAwMlxcMjE4XFwwMDFcXDI1MFxcMDAxXFxcbiAgICBcXDAwM1xcMDAyXFwwMDNcXDAwMlxcMDk3XFwwMDBcXDAwM1xcMDAyXFwxMjRcXDAwMVxcMTI0XFwwMDFcXDA5N1xcMDAwXFwwMDNcXDAwMlxcXG4gICAgXFwyMjFcXDAwMVxcMDAzXFwwMDJcXDI1M1xcMDAxXFwwMDNcXDAwMlxcMDAzXFwwMDJcXDAwM1xcMDAyXFwwOTdcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAzXFwwMDJcXDE5NlxcMDAxXFwwOTdcXDAwMFxcMDAzXFwwMDJcXDA5N1xcMDAwXFwwOTZcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFxcbiAgICBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcXG4gICAgXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwyMzVcXDAwMVxcMDAzXFwwMDJcXFxuICAgIFxcMjQxXFwwMDFcXDAwM1xcMDAyXFwyNTVcXDAwMVxcMjQyXFwwMDFcXDAwM1xcMDAyXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFxcbiAgICBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcXG4gICAgXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDI0NlxcMDAxXFwxMjlcXDAwMVxcMTI5XFwwMDFcXFxuICAgIFxcMjI4XFwwMDFcXDAwM1xcMDAyXFwxOTZcXDAwMVxcMDAzXFwwMDJcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFxcbiAgICBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMDAzXFwwMDJcXDE5OFxcMDAxXFwwMDNcXDAwMlxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcXG4gICAgXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwwMDNcXDAwMlxcMDAzXFwwMDJcXDAwM1xcMDAyXFwxOTZcXDAwMVxcMjM0XFwwMDFcXFxuICAgIFxcMTM0XFwwMDFcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFxcbiAgICBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDAwMFxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcXG4gICAgXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXFxuICAgIFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFxcbiAgICBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDFcXDAwMVxcMTc3XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcXG4gICAgXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXFxuICAgIFxcMTg4XFwwMDBcXDAwMFxcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFxcbiAgICBcXDIwMVxcMDAxXFwyMjdcXDAwMVxcMDAwXFwwMDBcXDE5MVxcMDAwXFwyMDZcXDAwMVxcMTIzXFwwMDFcXDE4OVxcMDAwXFwxOTBcXDAwMFxcXG4gICAgXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXFxuICAgIFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFxcbiAgICBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTg5XFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcXG4gICAgXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTk1XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXFxuICAgIFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5OFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNDhcXDAwMVxcMTk2XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcXG4gICAgXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk2XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXFxuICAgIFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMjAyXFwwMDBcXDIyN1xcMDAwXFxcbiAgICBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcXG4gICAgXFwyMjdcXDAwMFxcMjA1XFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAzXFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXFxuICAgIFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjI2XFwwMDBcXDE5NVxcMDAxXFxcbiAgICBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcXG4gICAgXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIzMlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwNlxcMDAwXFwyMjFcXDAwMVxcMjM5XFwwMDFcXFxuICAgIFxcMjU0XFwwMDFcXDAwMFxcMDAwXFwyMDdcXDAwMFxcMjQ0XFwwMDFcXDAwMFxcMDAwXFwyMjVcXDAwMFxcMjAzXFwwMDBcXDIwNFxcMDAwXFxcbiAgICBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcXG4gICAgXFwyMzJcXDAwMFxcMDAwXFwwMDBcXDIzMlxcMDAwXFwwMDBcXDAwMFxcMjI1XFwwMDFcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXFxuICAgIFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIxN1xcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjI1XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcXG4gICAgXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIzMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwyMzBcXDAwMFxcMDAwXFwwMDBcXDIyOFxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcXG4gICAgXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXFxuICAgIFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFxcbiAgICBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcXG4gICAgXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDAwMFxcMDAwXFwyMjhcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXFxuICAgIFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMTg2XFwwMDBcXDIzMVxcMDAwXFxcbiAgICBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcXG4gICAgXFwyMzFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNDFcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMTEzXFwwMDFcXDAwMFxcMDAwXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFxcbiAgICBcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcXG4gICAgXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwwMDBcXDAwMFxcMTEyXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxOTNcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDExMlxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI0MFxcMDAwXFwyMDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMDAwXFwwMDBcXDI0NlxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI0MFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDAwMFxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDIzOFxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI0NVxcMDAwXFwwMDBcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDA2OVxcMDAxXFwwNzBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNjlcXDAwMVxcMDc2XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcXG4gICAgXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA2OVxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwNzhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEwNFxcMDAxXFwwNzNcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDc5XFwwMDFcXDAwMFxcMDAwXFwwNzFcXDAwMVxcMDc2XFwwMDFcXFxuICAgIFxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFxcbiAgICBcXDA3N1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA3MlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMjQzXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDgwXFwwMDFcXDExOVxcMDAxXFwwMDBcXDAwMFxcMTE5XFwwMDFcXDAwMFxcMDAwXFwwODFcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFxcbiAgICBcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA3NFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXFxuICAgIFxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwwODNcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDgyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwxMTVcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwODRcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMTdcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMTE3XFwwMDFcXDAwMFxcMDAwXFwwNzVcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFxcbiAgICBcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcXG4gICAgXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMTE1XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFxcbiAgICBcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcXG4gICAgXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXFxuICAgIFxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDEyOFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcXG4gICAgXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMTg1XFwwMDFcXDAwMFxcMDAwXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXFxuICAgIFxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcXG4gICAgXFwxODRcXDAwMVxcMDAwXFwwMDBcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMTI4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNjhcXDAwMVxcXG4gICAgXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjdcXDAwMVxcMDAwXFwwMDBcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMTg0XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDEyOFxcMDAxXFwxMjdcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcXG4gICAgXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTMxXFwwMDFcXDEzMVxcMDAxXFxcbiAgICBcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcXG4gICAgXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFxcbiAgICBcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEzMVxcMDAxXFwxMzFcXDAwMVxcXG4gICAgXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFxcbiAgICBcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcXG4gICAgXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXFxuICAgIFxcMTI4XFwwMDFcXDE5MVxcMDAxXFwxNDJcXDAwMVxcMTkxXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTkwXFwwMDFcXDE5MFxcMDAxXFxcbiAgICBcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcXG4gICAgXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXFxuICAgIFxcMTg2XFwwMDFcXDE4NlxcMDAxXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFxcbiAgICBcXDEyOFxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNDFcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE0MVxcMDAxXFwwMDBcXDAwMFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDZcXDAwMVxcMTQ3XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNDZcXDAwMVxcMTU0XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFxcbiAgICBcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAwXFwwMDFcXDE0NlxcMDAxXFwwMDBcXDAwMFxcMTUzXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE3N1xcMDAxXFwxNTBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwyMDBcXDAwMVxcMTU2XFwwMDFcXDAwMFxcMDAwXFwxNDhcXDAwMVxcMTU0XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcXG4gICAgXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDE0OVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDEzOVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE1N1xcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNThcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXFxuICAgIFxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMjAwXFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDE1MVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwyMDBcXDAwMVxcMTg3XFwwMDFcXDAwMFxcMDAwXFwxNjBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMjAwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTU5XFwwMDFcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMjAwXFwwMDFcXDE5OVxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwxNjFcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwxNTJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE4OVxcMDAxXFwwMDBcXDAwMFxcMTg5XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDE4N1xcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFxcbiAgICBcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcXG4gICAgXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXFxuICAgIFxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFxcbiAgICBcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcXG4gICAgXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXFxuICAgIFxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFxcbiAgICBcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXFxuICAgIFxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFxcbiAgICBcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMjAwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNDVcXDAwMVxcMjAwXFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDBcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMjAwXFwwMDFcXDE5OVxcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFxcbiAgICBcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXFxuICAgIFxcMjAzXFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFxcbiAgICBcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFxcbiAgICBcXDIwM1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDBcXDAwMVxcXG4gICAgXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXFxuICAgIFxcMjAwXFwwMDFcXDAwMFxcMDAwXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFxcbiAgICBcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDAwMFxcMDAwXFwyMTRcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIxM1xcMDAxXFwwMDBcXDAwMFxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIxM1xcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIxMVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcIjtcbiAgTGV4aW5nLmxleF9jaGVjayA9XG4gICBcIlxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDNcXDAwMFxcMDAwXFwwMDBcXDEzNFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDNcXDAwMFxcMjU1XFwyNTVcXDEzNFxcMDAwXFwwNjlcXDAwMVxcMTQ2XFwwMDFcXDA1N1xcMDAwXFwyNTVcXDI1NVxcMDY5XFwwMDFcXFxuICAgIFxcMTQ2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMjVcXDAwMFxcMTM4XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwM1xcMDAwXFwxNjlcXDAwMFxcMTM0XFwwMDBcXDE3NFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMDEwXFwwMDFcXDA2OVxcMDAxXFwxNDZcXDAwMVxcMDEyXFwwMDFcXDAwMFxcMDAwXFwwMTBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDA1XFwwMDBcXDExNVxcMDAwXFwwMDBcXDAwMFxcMTI1XFwwMDBcXDEyOVxcMDAwXFwwMDVcXDAwMFxcXG4gICAgXFwyMzZcXDAwMVxcMTM2XFwwMDBcXDI1NVxcMDAxXFwwMzhcXDAwMFxcMjU1XFwyNTVcXDAxMFxcMDAwXFwxMzZcXDAwMFxcMTAyXFwwMDBcXFxuICAgIFxcMDU4XFwwMDBcXDAwMFxcMDAwXFwxMDdcXDAwMFxcMTAyXFwwMDBcXDI1NVxcMjU1XFwwMTFcXDAwMFxcMDAwXFwwMDBcXDAxMVxcMDAwXFxcbiAgICBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcXG4gICAgXFwwMTFcXDAwMFxcMDI5XFwwMDBcXDAzOFxcMDAwXFwwMDBcXDAwMFxcMTExXFwwMDBcXDIwOFxcMDAwXFwyMzNcXDAwMFxcMjU1XFwwMDBcXFxuICAgIFxcMDEyXFwwMDFcXDAxNVxcMDAwXFwwMTdcXDAwMFxcMDYwXFwwMDBcXDAxMVxcMDAwXFwwMTBcXDAwMFxcMDAwXFwwMDBcXDAyMFxcMDAwXFxcbiAgICBcXDAyNFxcMDAwXFwwMzFcXDAwMFxcMDMyXFwwMDBcXDAzNFxcMDAwXFwwMjJcXDAwMFxcMDI2XFwwMDBcXDAwMFxcMDAwXFwwMTRcXDAwMFxcXG4gICAgXFwwMjdcXDAwMFxcMDMzXFwwMDBcXDAxOFxcMDAwXFwwMjNcXDAwMFxcMDAwXFwwMDBcXDAxNlxcMDAwXFwwMTlcXDAwMFxcMDM1XFwwMDBcXFxuICAgIFxcMDQwXFwwMDBcXDAzNlxcMDAwXFwwMzhcXDAwMFxcMDAwXFwwMDBcXDA0MVxcMDAwXFwwNDJcXDAwMFxcMDQzXFwwMDBcXDA0NFxcMDAwXFxcbiAgICBcXDA0NVxcMDAwXFwwNDZcXDAwMFxcMDU4XFwwMDBcXDA4MlxcMDAwXFwwMTFcXDAwMFxcMDEzXFwwMDBcXDAxM1xcMDAwXFwwMTNcXDAwMFxcXG4gICAgXFwwMTNcXDAwMFxcMDEzXFwwMDBcXDAxM1xcMDAwXFwwMTNcXDAwMFxcMDEzXFwwMDBcXDAxM1xcMDAwXFwwMTNcXDAwMFxcMDM5XFwwMDBcXFxuICAgIFxcMDYzXFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFxcbiAgICBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDA4NVxcMDAwXFwxNDBcXDAwMFxcMDYwXFwwMDBcXDAxM1xcMDAwXFwxNDNcXDAwMFxcXG4gICAgXFwxNDRcXDAwMFxcMTQ1XFwwMDBcXDA0OFxcMDAwXFwxNDdcXDAwMFxcMDQ4XFwwMDBcXDE0OFxcMDAwXFwwMzlcXDAwMFxcMDQ4XFwwMDBcXFxuICAgIFxcMDQ4XFwwMDBcXDA0OFxcMDAwXFwwNDhcXDAwMFxcMDQ4XFwwMDBcXDA0OFxcMDAwXFwwNDhcXDAwMFxcMDQ4XFwwMDBcXDA0OFxcMDAwXFxcbiAgICBcXDA0OFxcMDAwXFwwNDlcXDAwMFxcMDQ5XFwwMDBcXDA0OVxcMDAwXFwwNDlcXDAwMFxcMDQ5XFwwMDBcXDA0OVxcMDAwXFwwNDlcXDAwMFxcXG4gICAgXFwwNDlcXDAwMFxcMDQ5XFwwMDBcXDA0OVxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXFxuICAgIFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNjVcXDAwMFxcMDM5XFwwMDBcXDE0OVxcMDAwXFxcbiAgICBcXDE1MFxcMDAwXFwxNTZcXDAwMFxcMDYzXFwwMDBcXDE1N1xcMDAwXFwwNTFcXDAwMFxcMTU4XFwwMDBcXDA1MVxcMDAwXFwxNTlcXDAwMFxcXG4gICAgXFwwNTBcXDAwMFxcMDUxXFwwMDBcXDA1MVxcMDAwXFwwNTFcXDAwMFxcMDUxXFwwMDBcXDA1MVxcMDAwXFwwNTFcXDAwMFxcMDUxXFwwMDBcXFxuICAgIFxcMDUxXFwwMDBcXDA1MVxcMDAwXFwwNTFcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFxcbiAgICBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUzXFwwMDBcXDA1M1xcMDAwXFwwNTNcXDAwMFxcXG4gICAgXFwwNTNcXDAwMFxcMDUzXFwwMDBcXDA1M1xcMDAwXFwwNTNcXDAwMFxcMDUzXFwwMDBcXDA1M1xcMDAwXFwwNTNcXDAwMFxcMTU1XFwwMDBcXFxuICAgIFxcMDUwXFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFxcbiAgICBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDE2MVxcMDAwXFwxNjJcXDAwMFxcMTU1XFwwMDBcXDA5MVxcMDAwXFwwNjVcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDU1XFwwMDBcXDA1NVxcMDAwXFwwNTVcXDAwMFxcMDU1XFwwMDBcXDA1NVxcMDAwXFwwNTVcXDAwMFxcMDU1XFwwMDBcXFxuICAgIFxcMDU1XFwwMDBcXDA1NVxcMDAwXFwwNTVcXDAwMFxcMDU3XFwwMDBcXDA2OFxcMDAwXFwxMDJcXDAwMFxcMTA3XFwwMDBcXDExNVxcMDAwXFxcbiAgICBcXDEzMVxcMDAwXFwxMzNcXDAwMFxcMTMzXFwwMDBcXDEyNVxcMDAwXFwxMzhcXDAwMFxcMTMzXFwwMDBcXDE2M1xcMDAwXFwwOTRcXDAwMFxcXG4gICAgXFwxNjVcXDAwMFxcMDY4XFwwMDBcXDE2NlxcMDAwXFwxNjdcXDAwMFxcMTY4XFwwMDBcXDE3MVxcMDAwXFwxMTFcXDAwMFxcMTcyXFwwMDBcXFxuICAgIFxcMTczXFwwMDBcXDIwNlxcMDAwXFwyMDNcXDAwMFxcMjA3XFwwMDBcXDIxMFxcMDAwXFwyMTFcXDAwMFxcMDU4XFwwMDBcXDA4MlxcMDAwXFxcbiAgICBcXDEzM1xcMDAwXFwyMTJcXDAwMFxcMjEzXFwwMDBcXDIxNFxcMDAwXFwyMTVcXDAwMFxcMjE3XFwwMDBcXDE0MFxcMDAwXFwyMThcXDAwMFxcXG4gICAgXFwwOTdcXDAwMFxcMjE5XFwwMDBcXDIyMFxcMDAwXFwxMTlcXDAwMFxcMjIxXFwwMDBcXDIyMlxcMDAwXFwyMjNcXDAwMFxcMTMzXFwwMDBcXFxuICAgIFxcMDkxXFwwMDBcXDIwM1xcMDAwXFwwMzRcXDAwMVxcMDYyXFwwMDFcXDIzM1xcMDAwXFwxNTJcXDAwMFxcMDAxXFwwMDFcXDA4MFxcMDAxXFxcbiAgICBcXDI0N1xcMDAwXFwwNjBcXDAwMFxcMjUxXFwwMDBcXDA1NFxcMDAxXFwwNThcXDAwMVxcMDgxXFwwMDFcXDA2OFxcMDAwXFwwNDFcXDAwMVxcXG4gICAgXFwwODJcXDAwMVxcMDgzXFwwMDFcXDAwNlxcMDAxXFwwMjZcXDAwMVxcMDY4XFwwMDBcXDExOVxcMDAwXFwwMzBcXDAwMVxcMDE1XFwwMDFcXFxuICAgIFxcMDY4XFwwMDBcXDA5NFxcMDAwXFwwMTVcXDAwMVxcMDg0XFwwMDFcXDA4NVxcMDAxXFwwODZcXDAwMVxcMDcxXFwwMDFcXDA4OFxcMDAxXFxcbiAgICBcXDA2OFxcMDAwXFwyMDNcXDAwMFxcMDUwXFwwMDFcXDA3MVxcMDAxXFwwNjhcXDAwMFxcMDg5XFwwMDFcXDA2OFxcMDAwXFwwNjhcXDAwMFxcXG4gICAgXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXFxuICAgIFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwOTdcXDAwMFxcMDc2XFwwMDFcXDExOVxcMDAwXFwwOTBcXDAwMVxcMDYzXFwwMDBcXDAwMVxcMDAxXFxcbiAgICBcXDA5MlxcMDAxXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzhcXDAwMFxcXG4gICAgXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXFxuICAgIFxcMDc4XFwwMDBcXDE1MlxcMDAwXFwwNzZcXDAwMVxcMDkzXFwwMDFcXDA5NVxcMDAxXFwwOTdcXDAwMVxcMDk4XFwwMDFcXDA0NVxcMDAxXFxcbiAgICBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA5OVxcMDAxXFwxNTJcXDAwMFxcXG4gICAgXFwxMDBcXDAwMVxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMTgwXFwwMDBcXFxuICAgIFxcMTgwXFwwMDBcXDE4MFxcMDAwXFwxODBcXDAwMFxcMTgwXFwwMDBcXDE4MFxcMDAwXFwxODBcXDAwMFxcMTgwXFwwMDBcXDE4MFxcMDAwXFxcbiAgICBcXDE4MFxcMDAwXFwwMjBcXDAwMVxcMDc2XFwwMDFcXDA2NVxcMDAwXFwwMjBcXDAwMVxcMTAxXFwwMDFcXDEwMlxcMDAxXFwxMDRcXDAwMVxcXG4gICAgXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXFxuICAgIFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFxcbiAgICBcXDEwNVxcMDAxXFwxMDZcXDAwMVxcMDQ1XFwwMDFcXDAzNlxcMDAxXFwxMDdcXDAwMVxcMTA4XFwwMDFcXDEwOVxcMDAxXFwwNzlcXDAwMFxcXG4gICAgXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXFxuICAgIFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDExMFxcMDAxXFxcbiAgICBcXDAyNlxcMDAxXFwxMjFcXDAwMVxcMTU3XFwwMDFcXDAzMFxcMDAxXFwxNThcXDAwMVxcMDIwXFwwMDFcXDA4MFxcMDAwXFwwODBcXDAwMFxcXG4gICAgXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDkxXFwwMDBcXDE1OVxcMDAxXFwwNjJcXDAwMVxcMDc5XFwwMDBcXFxuICAgIFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwyNDdcXDAwMFxcMTYwXFwwMDFcXDI1MVxcMDAwXFxcbiAgICBcXDE2MVxcMDAxXFwwNThcXDAwMVxcMDY4XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcXG4gICAgXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA5NFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXFxuICAgIFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFxcbiAgICBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcXG4gICAgXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDM2XFwwMDFcXDA0MVxcMDAxXFwwOTdcXDAwMFxcMTYyXFwwMDFcXFxuICAgIFxcMTYzXFwwMDFcXDExOVxcMDAwXFwwMDFcXDAwMVxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFxcbiAgICBcXDA4N1xcMDAwXFwxNjVcXDAwMVxcMDU0XFwwMDFcXDE1MlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcXG4gICAgXFwwODZcXDAwMFxcMDg2XFwwMDBcXDAwNlxcMDAxXFwxNjZcXDAwMVxcMTY3XFwwMDFcXDE2OFxcMDAxXFwwMTVcXDAwMVxcMTY5XFwwMDFcXFxuICAgIFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFxcbiAgICBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDUwXFwwMDFcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcXG4gICAgXFwwODdcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg5XFwwMDBcXFxuICAgIFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFxcbiAgICBcXDA4OVxcMDAwXFwwOTVcXDAwMFxcMTMzXFwwMDFcXDE3MFxcMDAxXFwxNzFcXDAwMVxcMTU0XFwwMDFcXDEzM1xcMDAxXFwxNzJcXDAwMVxcXG4gICAgXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwOTVcXDAwMFxcMTc2XFwwMDBcXFxuICAgIFxcMTczXFwwMDFcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA0NVxcMDAxXFxcbiAgICBcXDE3NFxcMDAxXFwxNzVcXDAwMVxcMTc2XFwwMDBcXDE3NlxcMDAxXFwxNTRcXDAwMVxcMTc2XFwwMDBcXDE3NlxcMDAwXFwxNzZcXDAwMFxcXG4gICAgXFwxNzZcXDAwMFxcMTc2XFwwMDBcXDE3NlxcMDAwXFwxNzZcXDAwMFxcMTc2XFwwMDBcXDE3NlxcMDAwXFwxNzZcXDAwMFxcMTIyXFwwMDFcXFxuICAgIFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMTQ4XFwwMDFcXDE3N1xcMDAxXFxcbiAgICBcXDAyMFxcMDAxXFwxNzhcXDAwMVxcMDk4XFwwMDBcXDE0OFxcMDAxXFwxNzlcXDAwMVxcMTgwXFwwMDFcXDE4MVxcMDAxXFwxODJcXDAwMVxcXG4gICAgXFwxODNcXDAwMVxcMjE2XFwwMDFcXDE5M1xcMDAxXFwwOTVcXDAwMFxcMTU0XFwwMDFcXDIxNlxcMDAxXFwyMDVcXDAwMVxcMDk4XFwwMDBcXFxuICAgIFxcMjIyXFwwMDFcXDA5NVxcMDAwXFwyMDVcXDAwMVxcMjI5XFwwMDFcXDAwMVxcMDAyXFwwOTVcXDAwMFxcMjE4XFwwMDFcXDAzNlxcMDAxXFxcbiAgICBcXDIxNVxcMDAxXFwyMTVcXDAwMVxcMDAyXFwwMDJcXDIxOFxcMDAxXFwyMTVcXDAwMVxcMDk1XFwwMDBcXDAwNFxcMDAyXFwwMDVcXDAwMlxcXG4gICAgXFwyMTZcXDAwMVxcMDk1XFwwMDBcXDAwNlxcMDAyXFwwOTVcXDAwMFxcMDk1XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXFxuICAgIFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDIxNVxcMDAxXFxcbiAgICBcXDAwN1xcMDAyXFwxMjJcXDAwMVxcMDA4XFwwMDJcXDAwOVxcMDAyXFwwMTBcXDAwMlxcMDExXFwwMDJcXDA5NlxcMDAwXFwwOTZcXDAwMFxcXG4gICAgXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk4XFwwMDBcXDAxMlxcMDAyXFwyMTVcXDAwMVxcMjQ3XFwwMDFcXFxuICAgIFxcMDEzXFwwMDJcXDAxNFxcMDAyXFwwOThcXDAwMFxcMDE1XFwwMDJcXDEyNVxcMDAxXFwxMjhcXDAwMVxcMDk4XFwwMDBcXDAxNlxcMDAyXFxcbiAgICBcXDIyMFxcMDAxXFwwMTdcXDAwMlxcMjUxXFwwMDFcXDAxOFxcMDAyXFwwMTlcXDAwMlxcMDIwXFwwMDJcXDA5OFxcMDAwXFwxMjFcXDAwMVxcXG4gICAgXFwwMjFcXDAwMlxcMTk0XFwwMDFcXDA5OFxcMDAwXFwwMjJcXDAwMlxcMDk4XFwwMDBcXDA5OFxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXFxuICAgIFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFxcbiAgICBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDIzMVxcMDAxXFwwMjNcXDAwMlxcXG4gICAgXFwyMzhcXDAwMVxcMDI0XFwwMDJcXDI1MVxcMDAxXFwyMzhcXDAwMVxcMDI1XFwwMDJcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXFxuICAgIFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFxcbiAgICBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMjQzXFwwMDFcXDEyNVxcMDAxXFwxMjhcXDAwMVxcXG4gICAgXFwyMjRcXDAwMVxcMDI2XFwwMDJcXDE5N1xcMDAxXFwwMjdcXDAwMlxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXFxuICAgIFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwwMjhcXDAwMlxcMTk0XFwwMDFcXDAyOVxcMDAyXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFxcbiAgICBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDAzMFxcMDAyXFwwMzFcXDAwMlxcMDMyXFwwMDJcXDIwMFxcMDAxXFwyMzFcXDAwMVxcXG4gICAgXFwxMzNcXDAwMVxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXFxuICAgIFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMjU1XFwyNTVcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFxcbiAgICBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcXG4gICAgXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXFxuICAgIFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE5N1xcMDAxXFwxNzZcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFxcbiAgICBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcXG4gICAgXFwxODVcXDAwMFxcMjU1XFwyNTVcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXFxuICAgIFxcMjAwXFwwMDFcXDIyNFxcMDAxXFwyNTVcXDI1NVxcMTg1XFwwMDBcXDIwNVxcMDAxXFwxMjJcXDAwMVxcMTg1XFwwMDBcXDE4NVxcMDAwXFxcbiAgICBcXDE4NVxcMDAwXFwxODVcXDAwMFxcMTg1XFwwMDBcXDE4NVxcMDAwXFwxODVcXDAwMFxcMTg1XFwwMDBcXDE4NVxcMDAwXFwxODVcXDAwMFxcXG4gICAgXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXFxuICAgIFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTFcXDAwMFxcMTkxXFwwMDBcXDE5MVxcMDAwXFwxOTFcXDAwMFxcMTkxXFwwMDBcXDE5MVxcMDAwXFxcbiAgICBcXDE5MVxcMDAwXFwxOTFcXDAwMFxcMTkxXFwwMDBcXDE5MVxcMDAwXFwxOTJcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcXG4gICAgXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTkyXFwwMDBcXFxuICAgIFxcMTkzXFwwMDFcXDI0N1xcMDAxXFwxOTJcXDAwMFxcMTkyXFwwMDBcXDE5MlxcMDAwXFwxOTJcXDAwMFxcMTkyXFwwMDBcXDE5MlxcMDAwXFxcbiAgICBcXDE5MlxcMDAwXFwxOTJcXDAwMFxcMTkyXFwwMDBcXDE5MlxcMDAwXFwxOThcXDAwMFxcMTk4XFwwMDBcXDE5OFxcMDAwXFwxOThcXDAwMFxcXG4gICAgXFwxOThcXDAwMFxcMTk4XFwwMDBcXDE5OFxcMDAwXFwxOThcXDAwMFxcMTk4XFwwMDBcXDE5OFxcMDAwXFwxOTlcXDAwMFxcMjI2XFwwMDBcXFxuICAgIFxcMjI2XFwwMDBcXDIyNlxcMDAwXFwyMjZcXDAwMFxcMjI2XFwwMDBcXDIyNlxcMDAwXFwyMjZcXDAwMFxcMjI2XFwwMDBcXDIyNlxcMDAwXFxcbiAgICBcXDIyNlxcMDAwXFwxOTlcXDAwMFxcMTI1XFwwMDFcXDEyOFxcMDAxXFwxOTlcXDAwMFxcMTk5XFwwMDBcXDE5OVxcMDAwXFwxOTlcXDAwMFxcXG4gICAgXFwxOTlcXDAwMFxcMTk5XFwwMDBcXDE5OVxcMDAwXFwxOTlcXDAwMFxcMTk5XFwwMDBcXDE5OVxcMDAwXFwyMDRcXDAwMFxcMTk0XFwwMDFcXFxuICAgIFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFxcbiAgICBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjMxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTk5XFwwMDBcXDIyMFxcMDAxXFwyMzhcXDAwMVxcXG4gICAgXFwyNTFcXDAwMVxcMjU1XFwyNTVcXDE5OVxcMDAwXFwyNDNcXDAwMVxcMjU1XFwyNTVcXDIwNFxcMDAwXFwyMDVcXDAwMFxcMjA1XFwwMDBcXFxuICAgIFxcMjA1XFwwMDBcXDIwNVxcMDAwXFwyMDVcXDAwMFxcMjA1XFwwMDBcXDIwNVxcMDAwXFwyMDVcXDAwMFxcMjA1XFwwMDBcXDIwNVxcMDAwXFxcbiAgICBcXDIyNVxcMDAwXFwyNTVcXDI1NVxcMjI1XFwwMDBcXDI1NVxcMjU1XFwyMjRcXDAwMVxcMjI1XFwwMDBcXDIyNVxcMDAwXFwyMjVcXDAwMFxcXG4gICAgXFwyMjVcXDAwMFxcMjI1XFwwMDBcXDIyNVxcMDAwXFwyMjVcXDAwMFxcMjI1XFwwMDBcXDIyNVxcMDAwXFwyMjVcXDAwMFxcMjA1XFwwMDBcXFxuICAgIFxcMTk3XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDRcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFxcbiAgICBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAwXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjI4XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDIyOFxcMDAwXFwyNTVcXDI1NVxcMjI3XFwwMDBcXDIyOFxcMDAwXFwyMjhcXDAwMFxcMjI4XFwwMDBcXDIyOFxcMDAwXFxcbiAgICBcXDIyOFxcMDAwXFwyMjhcXDAwMFxcMjI4XFwwMDBcXDIyOFxcMDAwXFwyMjhcXDAwMFxcMjI4XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcXG4gICAgXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXFxuICAgIFxcMjMwXFwwMDBcXDIzMFxcMDAwXFwyMzBcXDAwMFxcMjMwXFwwMDBcXDIzMFxcMDAwXFwyMzBcXDAwMFxcMjMwXFwwMDBcXDIzMFxcMDAwXFxcbiAgICBcXDIzMFxcMDAwXFwyMzBcXDAwMFxcMjU1XFwyNTVcXDIyN1xcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcXG4gICAgXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwxODVcXDAwMFxcMjMyXFwwMDBcXFxuICAgIFxcMjMyXFwwMDBcXDIzMlxcMDAwXFwyMzJcXDAwMFxcMjMyXFwwMDBcXDIzMlxcMDAwXFwyMzJcXDAwMFxcMjMyXFwwMDBcXDIzMlxcMDAwXFxcbiAgICBcXDIzMlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIzN1xcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwNzdcXDAwMVxcMjU1XFwyNTVcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXFxuICAgIFxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDExM1xcMDAxXFwxMTNcXDAwMVxcMTEzXFwwMDFcXDExM1xcMDAxXFxcbiAgICBcXDExM1xcMDAxXFwxMTNcXDAwMVxcMTEzXFwwMDFcXDExM1xcMDAxXFwxMTNcXDAwMVxcMTEzXFwwMDFcXDI1NVxcMjU1XFwwNzdcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE5MlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXFxuICAgIFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFxcbiAgICBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcXG4gICAgXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMDc3XFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjM3XFwwMDBcXDE5OVxcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFxcbiAgICBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcXG4gICAgXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXFxuICAgIFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNTVcXDI1NVxcMjQyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjQwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcXG4gICAgXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXFxuICAgIFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFxcbiAgICBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNDJcXDAwMFxcMjU1XFwyNTVcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXFxuICAgIFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFxcbiAgICBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcXG4gICAgXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjM3XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjQ1XFwwMDBcXDI1NVxcMjU1XFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMDY2XFwwMDFcXDA2NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwwNzlcXDAwMVxcMDc5XFwwMDFcXDA3OVxcMDAxXFxcbiAgICBcXDA3OVxcMDAxXFwwNzlcXDAwMVxcMDc5XFwwMDFcXDA3OVxcMDAxXFwwNzlcXDAwMVxcMDc5XFwwMDFcXDA3OVxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDY2XFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDA2NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDc5XFwwMDFcXDA2NlxcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwwNjZcXDAwMVxcXG4gICAgXFwwNjZcXDAwMVxcMDY2XFwwMDFcXDA2NlxcMDAxXFwwNjZcXDAwMVxcMDY2XFwwMDFcXDA2NlxcMDAxXFwwNjZcXDAwMVxcMDY2XFwwMDFcXFxuICAgIFxcMDY2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDY2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNDJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwwNjZcXDAwMVxcMTEyXFwwMDFcXDI1NVxcMjU1XFwxMTJcXDAwMVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwxMTJcXDAwMVxcMTEyXFwwMDFcXFxuICAgIFxcMTEyXFwwMDFcXDExMlxcMDAxXFwxMTJcXDAwMVxcMTEyXFwwMDFcXDExMlxcMDAxXFwxMTJcXDAwMVxcMTEyXFwwMDFcXDExMlxcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDY2XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcXG4gICAgXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDA2NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDExNFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDExNVxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwxMTVcXDAwMVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwxMTVcXDAwMVxcMTE1XFwwMDFcXDExNVxcMDAxXFwxMTVcXDAwMVxcMTE1XFwwMDFcXFxuICAgIFxcMTE1XFwwMDFcXDExNVxcMDAxXFwxMTVcXDAwMVxcMTE1XFwwMDFcXDExNVxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFxcbiAgICBcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwxMTRcXDAwMVxcMTE3XFwwMDFcXDExN1xcMDAxXFwxMTdcXDAwMVxcMTE3XFwwMDFcXDExN1xcMDAxXFwxMTdcXDAwMVxcMTE3XFwwMDFcXFxuICAgIFxcMTE3XFwwMDFcXDExN1xcMDAxXFwxMTdcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFxcbiAgICBcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE5XFwwMDFcXDExOVxcMDAxXFwxMTlcXDAwMVxcXG4gICAgXFwxMTlcXDAwMVxcMTE5XFwwMDFcXDExOVxcMDAxXFwxMTlcXDAwMVxcMTE5XFwwMDFcXDExOVxcMDAxXFwxMTlcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMTI2XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFxcbiAgICBcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTI2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMTI5XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTI5XFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwxNTVcXDAwMVxcMjU1XFwyNTVcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcXG4gICAgXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFxcbiAgICBcXDE1NVxcMDAxXFwyNTVcXDI1NVxcMTI2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxMjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTI2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTI5XFwwMDFcXDEyNlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA2NlxcMDAxXFxcbiAgICBcXDEyNlxcMDAxXFwxMjlcXDAwMVxcMTI2XFwwMDFcXDEyNlxcMDAxXFwyNTVcXDI1NVxcMTI5XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxNTVcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEyOVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDEyOVxcMDAxXFwyNTVcXDI1NVxcMTI5XFwwMDFcXDEyOVxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFxcbiAgICBcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMzBcXDAwMVxcMTMwXFwwMDFcXFxuICAgIFxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFxcbiAgICBcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXFxuICAgIFxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTMwXFwwMDFcXDEzMFxcMDAxXFxcbiAgICBcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXFxuICAgIFxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDI1NVxcMjU1XFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFxcbiAgICBcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcXG4gICAgXFwxMzJcXDAwMVxcMTg0XFwwMDFcXDEzOFxcMDAxXFwxODRcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxODRcXDAwMVxcMTg0XFwwMDFcXFxuICAgIFxcMTg0XFwwMDFcXDE4NFxcMDAxXFwxODRcXDAwMVxcMTg0XFwwMDFcXDE4NFxcMDAxXFwxODRcXDAwMVxcMTg0XFwwMDFcXDE4NFxcMDAxXFxcbiAgICBcXDE4NVxcMDAxXFwxODVcXDAwMVxcMTg1XFwwMDFcXDE4NVxcMDAxXFwxODVcXDAwMVxcMTg1XFwwMDFcXDE4NVxcMDAxXFwxODVcXDAwMVxcXG4gICAgXFwxODVcXDAwMVxcMTg1XFwwMDFcXDI1NVxcMjU1XFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXFxuICAgIFxcMTMyXFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFxcbiAgICBcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcXG4gICAgXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXFxuICAgIFxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEzOFxcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcXG4gICAgXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXFxuICAgIFxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFxcbiAgICBcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTQxXFwwMDFcXDI1NVxcMjU1XFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0M1xcMDAxXFwxNDNcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE0M1xcMDAxXFwxNTZcXDAwMVxcMTU2XFwwMDFcXDE1NlxcMDAxXFwxNTZcXDAwMVxcMTU2XFwwMDFcXFxuICAgIFxcMTU2XFwwMDFcXDE1NlxcMDAxXFwxNTZcXDAwMVxcMTU2XFwwMDFcXDE1NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxOThcXDAwMVxcMTQzXFwwMDFcXDI1NVxcMjU1XFwxNDNcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTU2XFwwMDFcXDE0M1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDE5OFxcMDAxXFwxNDNcXDAwMVxcMjU1XFwyNTVcXDE0M1xcMDAxXFwxNDNcXDAwMVxcMTQzXFwwMDFcXDE0M1xcMDAxXFxcbiAgICBcXDE0M1xcMDAxXFwxNDNcXDAwMVxcMTQzXFwwMDFcXDE0M1xcMDAxXFwxNDNcXDAwMVxcMTQzXFwwMDFcXDE0M1xcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMTQzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTM4XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTQzXFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE0M1xcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcXG4gICAgXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxOThcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMTQzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE5OFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDE5OFxcMDAxXFwxODZcXDAwMVxcMjU1XFwyNTVcXDE0M1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxOThcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMTk4XFwwMDFcXDI1NVxcMjU1XFwxOThcXDAwMVxcMTk4XFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDE0M1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDE0M1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTg3XFwwMDFcXDI1NVxcMjU1XFwxODdcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMTg2XFwwMDFcXDE4N1xcMDAxXFwxODdcXDAwMVxcMTg3XFwwMDFcXDE4N1xcMDAxXFwxODdcXDAwMVxcMTg3XFwwMDFcXFxuICAgIFxcMTg3XFwwMDFcXDE4N1xcMDAxXFwxODdcXDAwMVxcMTg3XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFxcbiAgICBcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OVxcMDAxXFwxODlcXDAwMVxcXG4gICAgXFwxODlcXDAwMVxcMTg5XFwwMDFcXDE4OVxcMDAxXFwxODlcXDAwMVxcMTg5XFwwMDFcXDE4OVxcMDAxXFwxODlcXDAwMVxcMTg5XFwwMDFcXFxuICAgIFxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFxcbiAgICBcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkxXFwwMDFcXDE5MVxcMDAxXFwxOTFcXDAwMVxcMTkxXFwwMDFcXDE5MVxcMDAxXFwxOTFcXDAwMVxcXG4gICAgXFwxOTFcXDAwMVxcMTkxXFwwMDFcXDE5MVxcMDAxXFwxOTFcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXFxuICAgIFxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMjAxXFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcXG4gICAgXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwyMDFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXFxuICAgIFxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyMDFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE0M1xcMDAxXFwyMDFcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwMVxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwyMDFcXDAwMVxcMjAxXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXFxuICAgIFxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcXG4gICAgXFwyMDJcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXFxuICAgIFxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXFxuICAgIFxcMjAyXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwNFxcMDAxXFxcbiAgICBcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcXG4gICAgXFwyMDRcXDAwMVxcMjU1XFwyNTVcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXFxuICAgIFxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjU1XFwyNTVcXDIxMFxcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjEwXFwwMDFcXDI1NVxcMjU1XFwyMTBcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjEzXFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjEwXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVwiO1xuICBMZXhpbmcubGV4X2Jhc2VfY29kZSA9XG4gICBcIlwiO1xuICBMZXhpbmcubGV4X2JhY2t0cmtfY29kZSA9XG4gICBcIlwiO1xuICBMZXhpbmcubGV4X2RlZmF1bHRfY29kZSA9XG4gICBcIlwiO1xuICBMZXhpbmcubGV4X3RyYW5zX2NvZGUgPVxuICAgXCJcIjtcbiAgTGV4aW5nLmxleF9jaGVja19jb2RlID1cbiAgIFwiXCI7XG4gIExleGluZy5sZXhfY29kZSA9XG4gICBcIlwiO1xufVxuXG5sZXQgcmVjIHJlYWRfanNvbiB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2pzb25fcmVjIHYgbGV4YnVmIDBcbmFuZCBfX29jYW1sX2xleF9yZWFkX2pzb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDE4OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDE4OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBgQm9vbCB0cnVlIClcblxuIyAxMDMyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDMzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxODkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAxODkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggYEJvb2wgZmFsc2UgKVxuXG4jIDEwMzcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwMzggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDE5MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDE5MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBgTnVsbCApXG5cbiMgMTA0MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTA0MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMTkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMTkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIFxuIyAxOTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICBgRmxvYXQgbmFuXG4gICAgICAgICAgICAgICAgXG4jIDE5NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKVxuXG4jIDEwNTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwNTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDE5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDE5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICBcbiMgMjAwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgYEZsb2F0IGluZmluaXR5XG4gICAgICAgICAgICAgICAgXG4jIDIwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKVxuXG4jIDEwNjQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwNjUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNSAtPlxuXG4jIDIwNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDIwNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICBcbiMgMjA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgYEZsb2F0IG5lZ19pbmZpbml0eVxuICAgICAgICAgICAgICAgIFxuIyAyMTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIClcblxuIyAxMDc1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDc2IFwibGliL3JlYWQubWxcIlxuICB8IDYgLT5cblxuIyAyMTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAyMTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgXG4jIDIxNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgYFN0cmluZyAoZmluaXNoX3N0cmluZyB2IGxleGJ1ZilcbiAgICAgICAgICAgICAgICBcbiMgMjE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICApXG5cbiMgMTA4NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTA4OCBcImxpYi9yZWFkLm1sXCJcbiAgfCA3IC0+XG5cbiMgMjIwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgMjIwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIG1ha2VfcG9zaXRpdmVfaW50IHYgbGV4YnVmIClcblxuIyAxMDkyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDkzIFwibGliL3JlYWQubWxcIlxuICB8IDggLT5cblxuIyAyMjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyAyMjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggbWFrZV9uZWdhdGl2ZV9pbnQgdiBsZXhidWYgKVxuXG4jIDEwOTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwOTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgOSAtPlxuXG4jIDIyMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDIyMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICBcbiMgMjI0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgYEZsb2F0IChmbG9hdF9vZl9zdHJpbmcgKGxleGVtZSBsZXhidWYpKVxuICAgICAgICAgICAgICAgICBcbiMgMjI4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDExMDggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDExMDkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTAgLT5cblxuIyAyMzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMjMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBsZXQgYWNjID0gcmVmIFtdIGluXG4gICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9vYmplY3RfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGxldCBmaWVsZF9uYW1lID0gcmVhZF9pZGVudCB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfY29sb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYWNjIDo9IChmaWVsZF9uYW1lLCByZWFkX2pzb24gdiBsZXhidWYpIDo6ICFhY2M7XG4gICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfb2JqZWN0X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZpZWxkX25hbWUgPSByZWFkX2lkZW50IHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfY29sb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGFjYyA6PSAoZmllbGRfbmFtZSwgcmVhZF9qc29uIHYgbGV4YnVmKSA6OiAhYWNjO1xuICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX29iamVjdCAtPlxuICAgICAgICAgICAgICAgICAgICAgYEFzc29jIChMaXN0LnJldiAhYWNjKVxuICAgICAgICAgICAgICAgICApXG5cbiMgMTEzNSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTEzNiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMSAtPlxuXG4jIDI1NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAyNTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGxldCBhY2MgPSByZWYgW10gaW5cbiAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX2FycmF5X2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9qc29uIHYgbGV4YnVmIDo6ICFhY2M7XG4gICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfYXJyYXlfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9qc29uIHYgbGV4YnVmIDo6ICFhY2M7XG4gICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2ZfYXJyYXkgLT5cbiAgICAgICAgICAgICAgICAgICAgIGBMaXN0IChMaXN0LnJldiAhYWNjKVxuICAgICAgICAgICAgICAgICApXG5cbiMgMTE1NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTE1NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMiAtPlxuXG4jIDI3MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAyNzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICBcbiMgMjg3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHRva2VuXCIgdiBsZXhidWZcbiAgICAgICAgICAgICAgICAgXG4jIDI4OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIClcblxuIyAxMTc4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMTc5IFwibGliL3JlYWQubWxcIlxuICB8IDEzIC0+XG5cbiMgMjkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDI5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgIFxuIyAyOTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgbG9uZ19lcnJvciBcIkludmFsaWQgdG9rZW5cIiB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgICBcbiMgMzAwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDExOTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDExOTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTQgLT5cblxuIyAzMDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMzAyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCByZWFkX2pzb24gdiBsZXhidWYgKVxuXG4jIDExOTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDExOTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTUgLT5cblxuIyAzMDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMzAzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBmaW5pc2hfY29tbWVudCB2IGxleGJ1ZjsgcmVhZF9qc29uIHYgbGV4YnVmIClcblxuIyAxMjAyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjAzIFwibGliL3JlYWQubWxcIlxuICB8IDE2IC0+XG5cbiMgMzA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDMwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggbmV3bGluZSB2IGxleGJ1ZjsgcmVhZF9qc29uIHYgbGV4YnVmIClcblxuIyAxMjA3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjA4IFwibGliL3JlYWQubWxcIlxuICB8IDE3IC0+XG5cbiMgMzA1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDMwNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggcmVhZF9qc29uIHYgbGV4YnVmIClcblxuIyAxMjEyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjEzIFwibGliL3JlYWQubWxcIlxuICB8IDE4IC0+XG5cbiMgMzA2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDMwNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTIxNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTIxOCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxOSAtPlxuXG4jIDMwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAzMDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHRva2VuXCIgdiBsZXhidWYgKVxuXG4jIDEyMjIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyMjMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2pzb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdHJpbmdfcmVjIHYgbGV4YnVmIDU4XG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX3N0cmluZ19yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMzExIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzMTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgKCBCdWZmZXIuY29udGVudHMgdi5idWYgKVxuXG4jIDEyMzQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyMzUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDMxMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzEyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICggZmluaXNoX2VzY2FwZWRfY2hhciB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgZmluaXNoX3N0cmluZyB2IGxleGJ1ZiApXG5cbiMgMTI0MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTI0MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzE0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzMTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgKCBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgZmluaXNoX3N0cmluZyB2IGxleGJ1ZiApXG5cbiMgMTI0NiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTI0NyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMzE2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzMTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxMjUxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjUyIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX3N0cmluZ19yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIG1hcF9zdHJpbmcgdiBmIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9tYXBfc3RyaW5nX3JlYyB2IGYgbGV4YnVmIDYzXG5hbmQgX19vY2FtbF9sZXhfbWFwX3N0cmluZ19yZWMgdiBmIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAzMTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDMxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAoIGxldCBiID0gdi5idWYgaW5cbiAgICAgICAgICAgICAgICAgICAgZiAoQnVmZmVyLmNvbnRlbnRzIGIpIDAgKEJ1ZmZlci5sZW5ndGggYikgKVxuXG4jIDEyNjQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyNjUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDMyMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzIxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICggZmluaXNoX2VzY2FwZWRfY2hhciB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgbWFwX3N0cmluZyB2IGYgbGV4YnVmIClcblxuIyAxMjcwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjcxIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzMjMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDMyMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAoIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICBtYXBfc3RyaW5nIHYgZiBsZXhidWYgKVxuXG4jIDEyNzYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyNzcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDMyNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzI1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTI4MSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTI4MiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X21hcF9zdHJpbmdfcmVjIHYgZiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9lc2NhcGVkX2NoYXIgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX2VzY2FwZWRfY2hhcl9yZWMgdiBsZXhidWYgNjhcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfZXNjYXBlZF9jaGFyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cbmxldFxuXG4jIDMzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgIFxuIyAzMzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICBjXG5cbiMgMTI5NCBcImxpYi9yZWFkLm1sXCJcbiMgMTI5NCBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgbGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zIGluXG5cbiMgMzMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMzMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiBjIClcblxuIyAxMjk4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjk5IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzMzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDMzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXFxiJyApXG5cbiMgMTMwMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTMwNCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzMzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1xcMDEyJyApXG5cbiMgMTMwOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTMwOSBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMzMzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzMzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1xcbicgKVxuXG4jIDEzMTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEzMTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDMzNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzM0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcXHInIClcblxuIyAxMzE4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMzE5IFwibGliL3JlYWQubWxcIlxuICB8IDUgLT5cblxuIyAzMzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDMzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXFx0JyApXG5cbiMgMTMyMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTMyNCBcImxpYi9yZWFkLm1sXCJcbiAgfCA2IC0+XG5sZXRcblxuIyAzMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAzMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIGFcblxuIyAxMzI5IFwibGliL3JlYWQubWxcIlxuIyAxMzI5IFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiAobGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zICsgMSlcbmFuZFxuXG4jIDMzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgMzM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGJcblxuIyAxMzM0IFwibGliL3JlYWQubWxcIlxuIyAxMzM0IFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiAobGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zICsgMilcbmFuZFxuXG4jIDMzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyAzMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjXG5cbiMgMTMzOSBcImxpYi9yZWFkLm1sXCJcbiMgMTMzOSBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgKGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyArIDMpXG5hbmRcblxuIyAzMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyAzMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRcblxuIyAxMzQ0IFwibGliL3JlYWQubWxcIlxuIyAxMzQ0IFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiAobGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zICsgNCkgaW5cblxuIyAzMzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDMzNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxldCB4ID1cbiAgICAgICAgICAgICAoaGV4IGEgbHNsIDEyKSBsb3IgKGhleCBiIGxzbCA4KSBsb3IgKGhleCBjIGxzbCA0KSBsb3IgaGV4IGRcbiAgICAgICAgICAgaW5cbiAgICAgICAgICAgaWYgeCA+PSAweEQ4MDAgJiYgeCA8PSAweERCRkYgdGhlblxuICAgICAgICAgICAgIGZpbmlzaF9zdXJyb2dhdGVfcGFpciB2IHggbGV4YnVmXG4gICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICB1dGY4X29mX2NvZGUgdi5idWYgeFxuICAgICAgICAgKVxuXG4jIDEzNTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEzNTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNyAtPlxuXG4jIDM0NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzQ1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkludmFsaWQgZXNjYXBlIHNlcXVlbmNlXCIgdiBsZXhidWYgKVxuXG4jIDEzNjAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEzNjEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgOCAtPlxuXG4jIDM0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTM2NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTM2NiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9lc2NhcGVkX2NoYXJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfc3Vycm9nYXRlX3BhaXIgdiB4IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfc3Vycm9nYXRlX3BhaXJfcmVjIHYgeCBsZXhidWYgODJcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfc3Vycm9nYXRlX3BhaXJfcmVjIHYgeCBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5sZXRcblxuIyAzNDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDM0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBhXG5cbiMgMTM3OCBcImxpYi9yZWFkLm1sXCJcbiMgMTM3OCBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgKGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyArIDIpXG5hbmRcblxuIyAzNDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgMzQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYlxuXG4jIDEzODMgXCJsaWIvcmVhZC5tbFwiXG4jIDEzODMgXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIChsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgKyAzKVxuYW5kXG5cbiMgMzQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgMzQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjXG5cbiMgMTM4OCBcImxpYi9yZWFkLm1sXCJcbiMgMTM4OCBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgKGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyArIDQpXG5hbmRcblxuIyAzNDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDM0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkXG5cbiMgMTM5MyBcImxpYi9yZWFkLm1sXCJcbiMgMTM5MyBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgKGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyArIDUpIGluXG5cbiMgMzUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsZXQgeSA9XG4gICAgICAgICAgICAgKGhleCBhIGxzbCAxMikgbG9yIChoZXggYiBsc2wgOCkgbG9yIChoZXggYyBsc2wgNCkgbG9yIGhleCBkXG4gICAgICAgICAgIGluXG4gICAgICAgICAgIGlmIHkgPj0gMHhEQzAwICYmIHkgPD0gMHhERkZGIHRoZW5cbiAgICAgICAgICAgICB1dGY4X29mX3N1cnJvZ2F0ZV9wYWlyIHYuYnVmIHggeVxuICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgbG9uZ19lcnJvciBcIkludmFsaWQgbG93IHN1cnJvZ2F0ZSBmb3IgY29kZSBwb2ludCBiZXlvbmQgVStGRkZGXCJcbiAgICAgICAgICAgICAgIHYgbGV4YnVmXG4gICAgICAgICApXG5cbiMgMTQwNSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQwNiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzU5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiTWlzc2luZyBlc2NhcGUgc2VxdWVuY2UgcmVwcmVzZW50aW5nIGxvdyBzdXJyb2dhdGUgXFxcbiAgICAgICAgICAgICAgICAgICAgICAgZm9yIGNvZGUgcG9pbnQgYmV5b25kIFUrRkZGRlwiIHYgbGV4YnVmIClcblxuIyAxNDExIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDEyIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzNjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE0MTYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0MTcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfc3Vycm9nYXRlX3BhaXJfcmVjIHYgeCBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9zdHJpbmdsaXQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgOTFcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAzNjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM2NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxldCBsZW4gPSBsZXhidWYubGV4X2N1cnJfcG9zIC0gbGV4YnVmLmxleF9zdGFydF9wb3MgaW5cbiAgICAgICAgICAgbGV0IHMgPSBCeXRlcy5jcmVhdGUgKGxlbisxKSBpblxuICAgICAgICAgICBCeXRlcy5zZXQgcyAwICdcIic7XG4gICAgICAgICAgIEJ5dGVzLmJsaXQgbGV4YnVmLmxleF9idWZmZXIgbGV4YnVmLmxleF9zdGFydF9wb3MgcyAxIGxlbjtcbiAgICAgICAgICAgQnl0ZXMudG9fc3RyaW5nIHNcbiAgICAgICAgIClcblxuIyAxNDMzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDM0IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzNzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM3MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHN0cmluZyBsaXRlcmFsXCIgdiBsZXhidWYgKVxuXG4jIDE0MzggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0MzkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDM3MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzczIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTQ0MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQ0NCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfdmFyaWFudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfdmFyaWFudF9yZWMgdiBsZXhidWYgMTAyXG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDM3NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzc2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbGV0IHggPSByZWFkX2pzb24gdiBsZXhidWYgaW5cbiAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgcmVhZF9ndCB2IGxleGJ1ZjtcbiAgICAgICAgICAgU29tZSB4IClcblxuIyAxNDU4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDU5IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzODAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM4MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIE5vbmUgKVxuXG4jIDE0NjMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0NjQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDM4MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzgxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc6JyBvciAnPicgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE0NjggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0NjkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDM4MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzgyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTQ3MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQ3NCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF92YXJpYW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9sdCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2x0X3JlYyB2IGxleGJ1ZiAxMDdcbmFuZCBfX29jYW1sX2xleF9yZWFkX2x0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAzODUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAzODUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDE0ODUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0ODYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDM4NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDM4NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJzwnIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxNDkwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDkxIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzODcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAzODcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTQ5NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQ5NiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfbHRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2d0IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfZ3RfcmVjIHYgbGV4YnVmIDExMVxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfZ3RfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDM5MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzkwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggKCkgKVxuXG4jIDE1MDcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1MDggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDM5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc+JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTUxMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTUxMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzkyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzOTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNTE3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTE4IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9ndF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfY29tbWEgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9jb21tYV9yZWMgdiBsZXhidWYgMTE1XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9jb21tYV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMzk1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzOTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCAoKSApXG5cbiMgMTUyOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTUzMCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzk2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzOTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxNTM0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTM1IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzOTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM5NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE1MzkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1NDAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2NvbW1hX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgc3RhcnRfYW55X3ZhcmlhbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfc3RhcnRfYW55X3ZhcmlhbnRfcmVjIHYgbGV4YnVmIDExOVxuYW5kIF9fb2NhbWxfbGV4X3N0YXJ0X2FueV92YXJpYW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0MDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA0MDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggYEVkZ3lfYnJhY2tldCApXG5cbiMgMTU1MSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU1MiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDAxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNDAxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgIGBEb3VibGVfcXVvdGUgKVxuXG4jIDE1NTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1NTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDQwMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDQwMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBgU3F1YXJlX2JyYWNrZXQgKVxuXG4jIDE1NjIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1NjMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDQwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDQwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJzwnLCAnXFxcIicgb3IgJ1snIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxNTY3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTY4IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA0MDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA0MDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTU3MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU3MyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3N0YXJ0X2FueV92YXJpYW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX2NvbW1lbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX2NvbW1lbnRfcmVjIHYgbGV4YnVmIDEyNVxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9jb21tZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0MDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDQwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoICgpIClcblxuIyAxNTg0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTg1IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0MDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDQwOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJVbnRlcm1pbmF0ZWQgY29tbWVudFwiIHYgbGV4YnVmIClcblxuIyAxNTg5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTkwIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA0MTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDQxMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIG5ld2xpbmUgdiBsZXhidWY7IGZpbmlzaF9jb21tZW50IHYgbGV4YnVmIClcblxuIyAxNTk0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTk1IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA0MTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDQxMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGZpbmlzaF9jb21tZW50IHYgbGV4YnVmIClcblxuIyAxNTk5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjAwIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX2NvbW1lbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2VvZiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9lb2ZfcmVjIGxleGJ1ZiAxMzFcbmFuZCBfX29jYW1sX2xleF9yZWFkX2VvZl9yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgIFxuIyA0MTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAoIHRydWUgKVxuXG4jIDE2MTEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2MTIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQyMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgIFxuIyA0MjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAoIGZhbHNlIClcblxuIyAxNjE2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjE3IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9lb2ZfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9zcGFjZSB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3NwYWNlX3JlYyB2IGxleGJ1ZiAxMzNcbmFuZCBfX29jYW1sX2xleF9yZWFkX3NwYWNlX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0MjMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDIzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBuZXdsaW5lIHYgbGV4YnVmOyByZWFkX3NwYWNlIHYgbGV4YnVmIClcblxuIyAxNjI4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjI5IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0MjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDI0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBmaW5pc2hfY29tbWVudCB2IGxleGJ1ZjsgcmVhZF9zcGFjZSB2IGxleGJ1ZiApXG5cbiMgMTYzMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTYzNCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNDI1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQyNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggbmV3bGluZSB2IGxleGJ1ZjsgcmVhZF9zcGFjZSB2IGxleGJ1ZiApXG5cbiMgMTYzOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTYzOSBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNDI2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQyNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggcmVhZF9zcGFjZSB2IGxleGJ1ZiApXG5cbiMgMTY0MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTY0NCBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgNDI3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQyNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDE2NDggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2NDkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3NwYWNlX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9udWxsIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfbnVsbF9yZWMgdiBsZXhidWYgMTQwXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9udWxsX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0MzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICBcbiMgNDMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMTY2MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTY2MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgXG4jIDQzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICdudWxsJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTY2NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTY2NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNDMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgXG4jIDQzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTY3MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTY3MSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfbnVsbF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfbnVsbF9pZl9wb3NzaWJsZSB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX251bGxfaWZfcG9zc2libGVfcmVjIHYgbGV4YnVmIDE0N1xuYW5kIF9fb2NhbWxfbGV4X3JlYWRfbnVsbF9pZl9wb3NzaWJsZV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgXG4jIDQzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICggdHJ1ZSApXG5cbiMgMTY4MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTY4MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgXG4jIDQzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICggZmFsc2UgKVxuXG4jIDE2ODcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2ODggXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX251bGxfaWZfcG9zc2libGVfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2Jvb2wgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9ib29sX3JlYyB2IGxleGJ1ZiAxNTJcbmFuZCBfX29jYW1sX2xleF9yZWFkX2Jvb2xfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQzOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDQzOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCB0cnVlIClcblxuIyAxNjk5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzAwIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0NDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA0NDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggZmFsc2UgKVxuXG4jIDE3MDQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3MDUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDQ0MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDQ0MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCB0cnVlIClcblxuIyAxNzA5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzEwIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA0NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA0NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggZmFsc2UgKVxuXG4jIDE3MTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3MTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDQ0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDQ0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ3RydWUnIG9yICdmYWxzZScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE3MTkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3MjAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNSAtPlxuXG4jIDQ0NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDQ0NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNzI0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzI1IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9ib29sX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9pbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9pbnRfcmVjIHYgbGV4YnVmIDE3NlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfaW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0NTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0NTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggdHJ5IGV4dHJhY3RfcG9zaXRpdmVfaW50IGxleGJ1ZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBJbnRfb3ZlcmZsb3cgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV4ZXJfZXJyb3IgXCJJbnQgb3ZlcmZsb3dcIiB2IGxleGJ1ZiApXG5cbiMgMTczOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTczOSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIHRyeSBleHRyYWN0X25lZ2F0aXZlX2ludCBsZXhidWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggSW50X292ZXJmbG93IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxleGVyX2Vycm9yIFwiSW50IG92ZXJmbG93XCIgdiBsZXhidWYgKVxuXG4jIDE3NDUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3NDYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDQ1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCAoKiBTdXBwb3J0IGZvciBkb3VibGUtcXVvdGVkIFwiaW50c1wiICopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcyA9IGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBBbnkgT0NhbWwtY29tcGxpYW50IGludCB3aWxsIHBhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGluZyBoZXhhZGVjaW1hbCBhbmQgb2N0YWwgbm90YXRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZW1iZWRkZWQgdW5kZXJzY29yZXMgKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50X29mX3N0cmluZyBzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tX2Vycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJFeHBlY3RlZCBhbiBpbnRlZ2VyIGJ1dCBmb3VuZCBhIHN0cmluZyB0aGF0IFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvZXNuJ3QgZXZlbiByZXByZXNlbnQgYW4gaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiBsZXhidWZcbiAgICAgICAgICAgICAgICAgICAgICAgICApXG5cbiMgMTc2MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTc2NCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNDcwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDcwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCBpbnRlZ2VyIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxNzY4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzY5IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA0NzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0NzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTc3MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTc3NCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfaW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9pbnQzMiB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2ludDMyX3JlYyB2IGxleGJ1ZiAxODVcbmFuZCBfX29jYW1sX2xleF9yZWFkX2ludDMyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0NzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0NzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggdHJ5IEludDMyLm9mX3N0cmluZyAoTGV4aW5nLmxleGVtZSBsZXhidWYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV4ZXJfZXJyb3IgXCJJbnQzMiBvdmVyZmxvd1wiIHYgbGV4YnVmIClcblxuIyAxNzg3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzg4IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0NzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0NzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggKCogU3VwcG9ydCBmb3IgZG91YmxlLXF1b3RlZCBcImludHNcIiAqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHMgPSBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQW55IE9DYW1sLWNvbXBsaWFudCBpbnQgd2lsbCBwYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRpbmcgaGV4YWRlY2ltYWwgYW5kIG9jdGFsIG5vdGF0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGVtYmVkZGVkIHVuZGVyc2NvcmVzICopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludDMyLm9mX3N0cmluZyBzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tX2Vycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJFeHBlY3RlZCBhbiBpbnQzMiBidXQgZm91bmQgYSBzdHJpbmcgdGhhdCBcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2Vzbid0IGV2ZW4gcmVwcmVzZW50IGFuIGludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgbGV4YnVmXG4gICAgICAgICAgICAgICAgICAgICAgICAgKVxuXG4jIDE4MDUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4MDYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDQ5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgaW50MzIgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE4MTAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4MTEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDQ5MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ5MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxODE1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODE2IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9pbnQzMl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfaW50NjQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9pbnQ2NF9yZWMgdiBsZXhidWYgMTkyXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9pbnQ2NF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDk1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDk1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIHRyeSBJbnQ2NC5vZl9zdHJpbmcgKExleGluZy5sZXhlbWUgbGV4YnVmKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxleGVyX2Vycm9yIFwiSW50MzIgb3ZlcmZsb3dcIiB2IGxleGJ1ZiApXG5cbiMgMTgyOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTgzMCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoICgqIFN1cHBvcnQgZm9yIGRvdWJsZS1xdW90ZWQgXCJpbnRzXCIgKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzID0gZmluaXNoX3N0cmluZyB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEFueSBPQ2FtbC1jb21wbGlhbnQgaW50IHdpbGwgcGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkaW5nIGhleGFkZWNpbWFsIGFuZCBvY3RhbCBub3RhdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBlbWJlZGRlZCB1bmRlcnNjb3JlcyAqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnQ2NC5vZl9zdHJpbmcgc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbV9lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRXhwZWN0ZWQgYW4gaW50NjQgYnV0IGZvdW5kIGEgc3RyaW5nIHRoYXQgXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9lc24ndCBldmVuIHJlcHJlc2VudCBhbiBpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgICAgICAgICAgIClcblxuIyAxODQ3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODQ4IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA1MTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA1MTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkIGludDY0IGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxODUyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODUzIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA1MTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA1MTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTg1NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTg1OCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfaW50NjRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX251bWJlciB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX251bWJlcl9yZWMgdiBsZXhidWYgMTk5XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9udW1iZXJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDUxNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDUxNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBuYW4gKVxuXG4jIDE4NjkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4NzAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDUxNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDUxNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBpbmZpbml0eSApXG5cbiMgMTg3NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTg3NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNTE4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNTE4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIG5lZ19pbmZpbml0eSApXG5cbiMgMTg3OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTg4MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNTE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNTE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGZsb2F0X29mX3N0cmluZyAobGV4ZW1lIGxleGJ1ZikgKVxuXG4jIDE4ODQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4ODUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDUyMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDUyMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICAgICBsZXQgcyA9IGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAoKiBBbnkgT0NhbWwtY29tcGxpYW50IGZsb2F0IHdpbGwgcGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkaW5nIGhleGFkZWNpbWFsIGFuZCBvY3RhbCBub3RhdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgIGFuZCBlbWJlZGRlZCB1bmRlcnNjb3Jlcy4gKilcbiAgICAgICAgICAgICAgICAgICAgZmxvYXRfb2Zfc3RyaW5nIHNcbiAgICAgICAgICAgICAgICAgIHdpdGggXyAtPlxuICAgICAgICAgICAgICAgICAgICBtYXRjaCBzIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiTmFOXCIgLT4gbmFuXG4gICAgICAgICAgICAgICAgICAgICAgfCBcIkluZmluaXR5XCIgLT4gaW5maW5pdHlcbiAgICAgICAgICAgICAgICAgICAgICB8IFwiLUluZmluaXR5XCIgLT4gbmVnX2luZmluaXR5XG4gICAgICAgICAgICAgICAgICAgICAgfCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbV9lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRXhwZWN0ZWQgYSBudW1iZXIgYnV0IGZvdW5kIGEgc3RyaW5nIHRoYXQgXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9lc24ndCBldmVuIHJlcHJlc2VudCBhIG51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiBsZXhidWZcbiAgICAgICAgICAgICAgICApXG5cbiMgMTkwNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTkwNyBcImxpYi9yZWFkLm1sXCJcbiAgfCA1IC0+XG5cbiMgNTM4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNTM4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCBudW1iZXIgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE5MTEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5MTIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNiAtPlxuXG4jIDUzOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDUzOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxOTE2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTE3IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9udW1iZXJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3N0cmluZyB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3N0cmluZ19yZWMgdiBsZXhidWYgMjMzXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9zdHJpbmdfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDU0MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU0MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmIClcblxuIyAxOTI5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTMwIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA1NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICdcXFwiJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTkzNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTkzNSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNTQ1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTQ1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE5MzkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5NDAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3N0cmluZ19yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfaWRlbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9pZGVudF9yZWMgdiBsZXhidWYgMjM3XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9pZGVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNTQ4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTQ4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgIGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgKVxuXG4jIDE5NTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5NTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxubGV0XG5cbiMgNTUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBzXG5cbiMgMTk1OCBcImxpYi9yZWFkLm1sXCJcbiMgMTk1OCBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWUgbGV4YnVmIGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyBsZXhidWYuTGV4aW5nLmxleF9jdXJyX3BvcyBpblxuXG4jIDU1MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU1MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBzIClcblxuIyAxOTYyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTYzIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA1NTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkIHN0cmluZyBvciBpZGVudGlmaWVyIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxOTY3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTY4IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA1NTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTk3MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTk3MyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfaWRlbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBtYXBfaWRlbnQgdiBmIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9tYXBfaWRlbnRfcmVjIHYgZiBsZXhidWYgMjQyXG5hbmQgX19vY2FtbF9sZXhfbWFwX2lkZW50X3JlYyB2IGYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDU1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICBtYXBfc3RyaW5nIHYgZiBsZXhidWYgKVxuXG4jIDE5ODUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5ODYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDU1OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU1OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBtYXBfbGV4ZW1lIGYgbGV4YnVmIClcblxuIyAxOTkwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTkxIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA1NjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkIHN0cmluZyBvciBpZGVudGlmaWVyIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxOTk1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTk2IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA1NjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjAwMCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjAwMSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X21hcF9pZGVudF9yZWMgdiBmIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9zZXF1ZW5jZSByZWFkX2NlbGwgaW5pdF9hY2MgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9zZXF1ZW5jZV9yZWMgcmVhZF9jZWxsIGluaXRfYWNjIHYgbGV4YnVmIDI0N1xuYW5kIF9fb2NhbWxfbGV4X3JlYWRfc2VxdWVuY2VfcmVjIHJlYWRfY2VsbCBpbml0X2FjYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA1NjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbGV0IGFjYyA9IHJlZiBpbml0X2FjYyBpblxuICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIHJlYWRfYXJyYXlfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfY2VsbCAhYWNjIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICByZWFkX2FycmF5X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2NlbGwgIWFjYyB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9hcnJheSAtPlxuICAgICAgICAgICAgICAgICAhYWNjXG4gICAgICAgICAgICAgKVxuXG4jIDIwMjYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwMjcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDU3OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU3OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ1snIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMDMxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDMyIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA1ODAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1ODAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjAzNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjAzNyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfc2VxdWVuY2VfcmVjIHJlYWRfY2VsbCBpbml0X2FjYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9saXN0X3JldiByZWFkX2NlbGwgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9saXN0X3Jldl9yZWMgcmVhZF9jZWxsIHYgbGV4YnVmIDI1MVxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfbGlzdF9yZXZfcmVjIHJlYWRfY2VsbCB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA1ODMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1ODMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbGV0IGFjYyA9IHJlZiBbXSBpblxuICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIHJlYWRfYXJyYXlfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfY2VsbCB2IGxleGJ1ZiA6OiAhYWNjO1xuICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICByZWFkX2FycmF5X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2NlbGwgdiBsZXhidWYgOjogIWFjYztcbiAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9hcnJheSAtPlxuICAgICAgICAgICAgICAgICAhYWNjXG4gICAgICAgICAgICAgKVxuXG4jIDIwNjIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwNjMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDU5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ1snIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMDY3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDY4IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA1OTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1OTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjA3MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjA3MyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfbGlzdF9yZXZfcmVjIHJlYWRfY2VsbCB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9hcnJheV9lbmQgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfYXJyYXlfZW5kX3JlYyBsZXhidWYgMjU1XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9hcnJheV9lbmRfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA2MDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2MDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggcmFpc2UgRW5kX29mX2FycmF5IClcblxuIyAyMDg0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDg1IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA2MDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2MDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIwODkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwOTAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2FycmF5X2VuZF9yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2FycmF5X3NlcCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2FycmF5X3NlcF9yZWMgdiBsZXhidWYgMjU3XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9hcnJheV9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDYwNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDYwNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjEwMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjEwMiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNjA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIHJhaXNlIEVuZF9vZl9hcnJheSApXG5cbiMgMjEwNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjEwNyBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNjA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJ10nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMTExIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTEyIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA2MDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2MDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjExNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjExNyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfYXJyYXlfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF90dXBsZSByZWFkX2NlbGwgaW5pdF9hY2MgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9yZWMgcmVhZF9jZWxsIGluaXRfYWNjIHYgbGV4YnVmIDI2MlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfcmVjIHJlYWRfY2VsbCBpbml0X2FjYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA2MTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgNjEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgXG4jIDYzMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICBsb25nX2Vycm9yIFwiSW52YWxpZCB0b2tlblwiIHYgbGV4YnVmXG4gICAgICAgICAgICAgICAgIFxuIyA2MzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICApXG5cbiMgMjE1MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjE1MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNjM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnKScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIxNTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxNTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDYzNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDYzNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMTYwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTYxIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9yZWMgcmVhZF9jZWxsIGluaXRfYWNjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3R1cGxlX2VuZCBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9lbmRfcmVjIGxleGJ1ZiAyNjZcbmFuZCBfX29jYW1sX2xleF9yZWFkX3R1cGxlX2VuZF9yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDY0MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY0MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCByYWlzZSBFbmRfb2ZfdHVwbGUgKVxuXG4jIDIxNzIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxNzMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDY0MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY0MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjE3NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjE3OCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfZW5kX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfdHVwbGVfZW5kMiB2IHN0ZCBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9lbmQyX3JlYyB2IHN0ZCBsZXhidWYgMjY4XG5hbmQgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9lbmQyX3JlYyB2IHN0ZCBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNjQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGlmIHN0ZCB0aGVuXG4gICAgICAgICAgICAgICAgIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnKScgb3IgJycgYnV0IGZvdW5kXCIgdiBsZXhidWZcbiAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgcmFpc2UgRW5kX29mX3R1cGxlIClcblxuIyAyMTkyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTkzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA2NDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggaWYgc3RkIHRoZW5cbiAgICAgICAgICAgICAgICAgcmFpc2UgRW5kX29mX3R1cGxlXG4gICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnXScgb3IgJycgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIyMDAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyMDEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDY1MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY1MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjIwNSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjIwNiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfZW5kMl9yZWMgdiBzdGQgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3R1cGxlX3NlcCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3NlcF9yZWMgdiBsZXhidWYgMjcxXG5hbmQgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDY1NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY1NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjIxNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjIxOCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNjU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIHJhaXNlIEVuZF9vZl90dXBsZSApXG5cbiMgMjIyMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjIyMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNjU3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjU3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJyknIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMjI3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjI4IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA2NTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjIzMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjIzMyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF90dXBsZV9zZXAyIHYgc3RkIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3NlcDJfcmVjIHYgc3RkIGxleGJ1ZiAyNzZcbmFuZCBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3NlcDJfcmVjIHYgc3RkIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA2NjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIyNDQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyNDUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDY2MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY2MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBpZiBzdGQgdGhlblxuICAgICAgICAgICAgICAgICBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICddJyBidXQgZm91bmRcIiB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICByYWlzZSBFbmRfb2ZfdHVwbGUgKVxuXG4jIDIyNTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyNTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDY2NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY2NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBpZiBzdGQgdGhlblxuICAgICAgICAgICAgICAgICByYWlzZSBFbmRfb2ZfdHVwbGVcbiAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnKScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIyNjAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyNjEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDY3MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY3MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICcpJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjI2NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjI2NiBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgNjcxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjcxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIyNzAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyNzEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3NlcDJfcmVjIHYgc3RkIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9hYnN0cmFjdF9maWVsZHMgcmVhZF9rZXkgcmVhZF9maWVsZCBpbml0X2FjYyB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2Fic3RyYWN0X2ZpZWxkc19yZWMgcmVhZF9rZXkgcmVhZF9maWVsZCBpbml0X2FjYyB2IGxleGJ1ZiAyODJcbmFuZCBfX29jYW1sX2xleF9yZWFkX2Fic3RyYWN0X2ZpZWxkc19yZWMgcmVhZF9rZXkgcmVhZF9maWVsZCBpbml0X2FjYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA2NzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbGV0IGFjYyA9IHJlZiBpbml0X2FjYyBpblxuICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIHJlYWRfb2JqZWN0X2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgIGxldCBmaWVsZF9uYW1lID0gcmVhZF9rZXkgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgcmVhZF9jb2xvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfZmllbGQgIWFjYyBmaWVsZF9uYW1lIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICByZWFkX29iamVjdF9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICBsZXQgZmllbGRfbmFtZSA9IHJlYWRfa2V5IHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICByZWFkX2NvbG9uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfZmllbGQgIWFjYyBmaWVsZF9uYW1lIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgIHdpdGggRW5kX29mX29iamVjdCAtPlxuICAgICAgICAgICAgICAgICAhYWNjXG4gICAgICAgICAgICAgKVxuXG4jIDIzMDQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzMDUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDY5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ3snIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMzA5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzEwIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA2OTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2OTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjMxNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjMxNSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfYWJzdHJhY3RfZmllbGRzX3JlYyByZWFkX2tleSByZWFkX2ZpZWxkIGluaXRfYWNjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2xjdXJsIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfbGN1cmxfcmVjIHYgbGV4YnVmIDI4NlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfbGN1cmxfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDcwMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcwMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjMyNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjMyNyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzAzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzAzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAneycgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIzMzEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzMzIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDcwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMzM2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzM3IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9sY3VybF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfb2JqZWN0X2VuZCBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9vYmplY3RfZW5kX3JlYyBsZXhidWYgMjkwXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9vYmplY3RfZW5kX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIHJhaXNlIEVuZF9vZl9vYmplY3QgKVxuXG4jIDIzNDggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzNDkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDcwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjM1MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjM1NCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfb2JqZWN0X2VuZF9yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX29iamVjdF9zZXAgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9vYmplY3Rfc2VwX3JlYyB2IGxleGJ1ZiAyOTJcbmFuZCBfX29jYW1sX2xleF9yZWFkX29iamVjdF9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDcxMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcxMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjM2NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjM2NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzEyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzEyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIHJhaXNlIEVuZF9vZl9vYmplY3QgKVxuXG4jIDIzNzAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzNzEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDcxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICd9JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjM3NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjM3NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNzE0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzE0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIzODAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzODEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX29iamVjdF9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2NvbG9uIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfY29sb25fcmVjIHYgbGV4YnVmIDI5N1xuYW5kIF9fb2NhbWxfbGV4X3JlYWRfY29sb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDcxNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcxNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjM5MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjM5MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzE4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzE4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnOicgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIzOTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzOTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDcxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNDAyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDAzIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9jb2xvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHN0YXJ0X2FueV90dXBsZSB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9zdGFydF9hbnlfdHVwbGVfcmVjIHYgbGV4YnVmIDMwMVxuYW5kIF9fb2NhbWxfbGV4X3N0YXJ0X2FueV90dXBsZV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzIyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzIyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGZhbHNlIClcblxuIyAyNDE0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDE1IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3MjMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MjMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggdHJ1ZSApXG5cbiMgMjQxOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQyMCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzI0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzI0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnKCcgb3IgJ1snIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyNDI0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDI1IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA3MjUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MjUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjQyOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQzMCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3N0YXJ0X2FueV90dXBsZV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfbHBhciB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2xwYXJfcmVjIHYgbGV4YnVmIDMwNlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfbHBhcl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzI4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzI4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyNDQxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDQyIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3MjkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MjkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcoJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjQ0NiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ0NyBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI0NTEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0NTIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2xwYXJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3JwYXIgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9ycGFyX3JlYyB2IGxleGJ1ZiAzMTBcbmFuZCBfX29jYW1sX2xleF9yZWFkX3JwYXJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDczMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDczMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjQ2MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ2NCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzM0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzM0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnKScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI0NjggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0NjkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDczNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDczNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNDczIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDc0IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9ycGFyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9sYnIgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9sYnJfcmVjIHYgbGV4YnVmIDMxNFxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfbGJyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3MzggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MzggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDI0ODUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0ODYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDczOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDczOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ1snIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyNDkwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDkxIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3NDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3NDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjQ5NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ5NiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfbGJyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9yYnIgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9yYnJfcmVjIHYgbGV4YnVmIDMxOFxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfcmJyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3NDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3NDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1MDcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1MDggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDc0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDc0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ10nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyNTEyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTEzIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3NDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3NDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjUxNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjUxOCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfcmJyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgc2tpcF9qc29uIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3NraXBfanNvbl9yZWMgdiBsZXhidWYgMzIyXG5hbmQgX19vY2FtbF9sZXhfc2tpcF9qc29uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3NTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA3NTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1MjkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1MzAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDc1MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDc1MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMjUzNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjUzNSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNzUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoICgpIClcblxuIyAyNTM5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTQwIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA3NTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA3NTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1NDQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1NDUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDc1NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDc1NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMjU0OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjU1MCBcImxpYi9yZWFkLm1sXCJcbiAgfCA1IC0+XG5cbiMgNzU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNzU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoICgpIClcblxuIyAyNTU0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTU1IFwibGliL3JlYWQubWxcIlxuICB8IDYgLT5cblxuIyA3NTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA3NTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggZmluaXNoX3NraXBfc3RyaW5nbGl0IHYgbGV4YnVmIClcblxuIyAyNTU5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTYwIFwibGliL3JlYWQubWxcIlxuICB8IDcgLT5cblxuIyA3NTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNzU4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMjU2NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjU2NSBcImxpYi9yZWFkLm1sXCJcbiAgfCA4IC0+XG5cbiMgNzU5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNzU5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoICgpIClcblxuIyAyNTY5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTcwIFwibGliL3JlYWQubWxcIlxuICB8IDkgLT5cblxuIyA3NjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgNzYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCB0cnlcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX29iamVjdF9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgc2tpcF9pZGVudCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX2NvbG9uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHNraXBfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9vYmplY3Rfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBza2lwX2lkZW50IHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX2NvbG9uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBza2lwX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2Zfb2JqZWN0IC0+XG4gICAgICAgICAgICAgICAgICAgICAoKVxuICAgICAgICAgICAgICAgICApXG5cbiMgMjU5NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjU5NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMCAtPlxuXG4jIDc4NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA3ODQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIHRyeVxuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfYXJyYXlfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHNraXBfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9hcnJheV9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHNraXBfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9hcnJheSAtPlxuICAgICAgICAgICAgICAgICAgICAgKClcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDI2MTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2MTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTEgLT5cblxuIyA3OTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgNzk5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgXG4jIDgxNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICBsb25nX2Vycm9yIFwiSW52YWxpZCB0b2tlblwiIHYgbGV4YnVmXG4gICAgICAgICAgICAgICAgIFxuIyA4MTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICApXG5cbiMgMjYzNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjYzNyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMiAtPlxuXG4jIDgxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4MTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICBcbiMgODI2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHRva2VuXCIgdiBsZXhidWZcbiAgICAgICAgICAgICAgICAgXG4jIDgyOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIClcblxuIyAyNjUwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjUxIFwibGliL3JlYWQubWxcIlxuICB8IDEzIC0+XG5cbiMgODMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDgzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggc2tpcF9qc29uIHYgbGV4YnVmIClcblxuIyAyNjU1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjU2IFwibGliL3JlYWQubWxcIlxuICB8IDE0IC0+XG5cbiMgODMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDgzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggZmluaXNoX2NvbW1lbnQgdiBsZXhidWY7IHNraXBfanNvbiB2IGxleGJ1ZiApXG5cbiMgMjY2MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY2MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxNSAtPlxuXG4jIDgzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4MzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIG5ld2xpbmUgdiBsZXhidWY7IHNraXBfanNvbiB2IGxleGJ1ZiApXG5cbiMgMjY2NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY2NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxNiAtPlxuXG4jIDgzMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4MzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIHNraXBfanNvbiB2IGxleGJ1ZiApXG5cbiMgMjY3MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY3MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxNyAtPlxuXG4jIDgzNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4MzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI2NzUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2NzYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTggLT5cblxuIyA4MzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiSW52YWxpZCB0b2tlblwiIHYgbGV4YnVmIClcblxuIyAyNjgwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjgxIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfc2tpcF9qc29uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX3NraXBfc3RyaW5nbGl0IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9za2lwX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgMzc4XG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX3NraXBfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA4NDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDg0MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoICgpIClcblxuIyAyNjkyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjkzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA4NDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDg0MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHN0cmluZyBsaXRlcmFsXCIgdiBsZXhidWYgKVxuXG4jIDI2OTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2OTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDg0MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgODQzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjcwMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjcwMyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9za2lwX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9za2lwX3ZhcmlhbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX3NraXBfdmFyaWFudF9yZWMgdiBsZXhidWYgMzg5XG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX3NraXBfdmFyaWFudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgODQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA4NDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBza2lwX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgIHJlYWRfZ3QgdiBsZXhidWYgKVxuXG4jIDI3MTYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3MTcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDg0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgODQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggKCkgKVxuXG4jIDI3MjEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3MjIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDg1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgODUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc6JyBvciAnPicgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI3MjYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3MjcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDg1MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgODUxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjczMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjczMiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9za2lwX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBza2lwX2lkZW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3NraXBfaWRlbnRfcmVjIHYgbGV4YnVmIDM5NFxuYW5kIF9fb2NhbWxfbGV4X3NraXBfaWRlbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDg1NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDg1NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBmaW5pc2hfc2tpcF9zdHJpbmdsaXQgdiBsZXhidWYgKVxuXG4jIDI3NDMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3NDQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDg1NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDg1NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjc0OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjc0OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgODU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgODU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCBzdHJpbmcgb3IgaWRlbnRpZmllciBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjc1MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjc1NCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgODU3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgODU3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI3NTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3NTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9za2lwX2lkZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX2pzb24gdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX2pzb25fcmVjIHYgbGV4YnVmIDM5OVxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9qc29uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA4NzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA4NzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWYgKVxuXG4jIDI3NzAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3NzEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDg3MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDg3MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBmaW5pc2hfYnVmZmVyX3N0cmluZ2xpdCB2IGxleGJ1ZiApXG5cbiMgMjc3NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjc3NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgODczIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDg3MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggdHJ5XG4gICAgICAgICAgICAgICAgICAgICBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ3snO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX29iamVjdF9lbmQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfaWRlbnQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfY29sb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfb2JqZWN0X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfaWRlbnQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2NvbG9uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX29iamVjdCAtPlxuICAgICAgICAgICAgICAgICAgICAgKClcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDI4MDIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4MDMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDg5NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4OTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIHRyeVxuICAgICAgICAgICAgICAgICAgICAgQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdbJztcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9hcnJheV9lbmQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfYXJyYXlfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX2FycmF5IC0+XG4gICAgICAgICAgICAgICAgICAgICAoKVxuICAgICAgICAgICAgICAgICApXG5cbiMgMjgyMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjgyMiBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgOTEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDkxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgIFxuIyA5MzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgbG9uZ19lcnJvciBcIkludmFsaWQgdG9rZW5cIiB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgICBcbiMgOTMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDI4NDUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4NDYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNSAtPlxuXG4jIDkzNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA5MzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICBcbiMgOTQyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHRva2VuXCIgdiBsZXhidWZcbiAgICAgICAgICAgICAgICAgXG4jIDk0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIClcblxuIyAyODYwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODYxIFwibGliL3JlYWQubWxcIlxuICB8IDYgLT5cblxuIyA5NDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgOTQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZjsgYnVmZmVyX2pzb24gdiBsZXhidWYgKVxuXG4jIDI4NjUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4NjYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNyAtPlxuXG4jIDk0NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA5NDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfc3RyaW5nIHYuYnVmIFwiLypcIjtcbiAgICAgICAgICAgICAgICAgICBmaW5pc2hfYnVmZmVyX2NvbW1lbnQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWYgKVxuXG4jIDI4NzIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4NzMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgOCAtPlxuXG4jIDk1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA5NTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXFxuJztcbiAgICAgICAgICAgICAgICAgICBuZXdsaW5lIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmIClcblxuIyAyODc5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODgwIFwibGliL3JlYWQubWxcIlxuICB8IDkgLT5cblxuIyA5NTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgOTUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZjsgYnVmZmVyX2pzb24gdiBsZXhidWYgKVxuXG4jIDI4ODQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4ODUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTAgLT5cblxuIyA5NTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgOTU0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyODg5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODkwIFwibGliL3JlYWQubWxcIlxuICB8IDExIC0+XG5cbiMgOTU1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDk1NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkludmFsaWQgdG9rZW5cIiB2IGxleGJ1ZiApXG5cbiMgMjg5NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjg5NSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9qc29uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX2J1ZmZlcl9zdHJpbmdsaXQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIDQ1MFxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA5NjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDk2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXCInO1xuICAgICAgICAgICBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZlxuICAgICAgICAgKVxuXG4jIDI5MDggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5MDkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDk2NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgOTY0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkludmFsaWQgc3RyaW5nIGxpdGVyYWxcIiB2IGxleGJ1ZiApXG5cbiMgMjkxMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjkxNCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgOTY1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA5NjUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyOTE4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTE5IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfYnVmZmVyX3ZhcmlhbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl92YXJpYW50X3JlYyB2IGxleGJ1ZiA0NjFcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDk2OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgOTY4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICc6JztcbiAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgYnVmZmVyX2d0IHYgbGV4YnVmIClcblxuIyAyOTMzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTM0IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA5NzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDk3MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnPicgKVxuXG4jIDI5MzggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5MzkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDk3MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgOTczIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc6JyBvciAnPicgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI5NDMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5NDQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDk3NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgOTc0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjk0OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjk0OSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfdmFyaWFudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9pZGVudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfaWRlbnRfcmVjIHYgbGV4YnVmIDQ2NlxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9pZGVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgOTc3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgOTc3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGZpbmlzaF9idWZmZXJfc3RyaW5nbGl0IHYgbGV4YnVmIClcblxuIyAyOTYwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTYxIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA5NzggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA5NzggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWYgKVxuXG4jIDI5NjUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5NjYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDk3OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDk3OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgc3RyaW5nIG9yIGlkZW50aWZpZXIgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI5NzAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5NzEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDk4MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDk4MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyOTc1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTc2IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX2lkZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX3NwYWNlIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9zcGFjZV9yZWMgdiBsZXhidWYgNDcxXG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX3NwYWNlX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA5ODMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgOTgzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmO1xuICAgIG5ld2xpbmUgdiBsZXhidWY7XG4gICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmIClcblxuIyAyOTkwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTkxIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA5ODcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgOTg3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgIEJ1ZmZlci5hZGRfc3RyaW5nIHYuYnVmIFwiLypcIjtcbiAgICBmaW5pc2hfYnVmZmVyX2NvbW1lbnQgdiBsZXhidWY7XG4gICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmIClcblxuIyAyOTk4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTk5IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA5OTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgOTkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXFxuJztcbiAgICBuZXdsaW5lIHYgbGV4YnVmO1xuICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZiApXG5cbiMgMzAwNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzAwNyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgOTk1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDk5NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZjtcbiAgICBidWZmZXJfc3BhY2UgdiBsZXhidWYgKVxuXG4jIDMwMTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwMTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDk5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA5OTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICgpIClcblxuIyAzMDE4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDE5IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX3NwYWNlX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX29iamVjdF9lbmQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX29iamVjdF9lbmRfcmVjIHYgbGV4YnVmIDQ3OFxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9vYmplY3RfZW5kX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDAxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAwMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKFxuICAgICAgQnVmZmVyLmFkZF9jaGFyIHYuYnVmICd9JztcbiAgICAgIHJhaXNlIEVuZF9vZl9vYmplY3QgKVxuXG4jIDMwMzIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwMzMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwMDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAzMDM3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDM4IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX29iamVjdF9lbmRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfb2JqZWN0X3NlcCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfb2JqZWN0X3NlcF9yZWMgdiBsZXhidWYgNDgwXG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX29iamVjdF9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwMDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnLCcgKVxuXG4jIDMwNDkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwNTAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwMDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnfSc7IHJhaXNlIEVuZF9vZl9vYmplY3QgKVxuXG4jIDMwNTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwNTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDEwMDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDA5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJ30nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAzMDU5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDYwIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAxMDEwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAxMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAzMDY0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDY1IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX29iamVjdF9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfYXJyYXlfZW5kIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9hcnJheV9lbmRfcmVjIHYgbGV4YnVmIDQ4NVxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9hcnJheV9lbmRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwMTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXSc7IHJhaXNlIEVuZF9vZl9hcnJheSApXG5cbiMgMzA3NiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzA3NyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTAxNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDMwODEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwODIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfYXJyYXlfZW5kX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX2FycmF5X3NlcCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfYXJyYXlfc2VwX3JlYyB2IGxleGJ1ZiA0ODdcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfYXJyYXlfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDE3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAxNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJywnIClcblxuIyAzMDkzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDk0IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDE4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAxOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ10nOyByYWlzZSBFbmRfb2ZfYXJyYXkgKVxuXG4jIDMwOTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwOTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDEwMTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJ10nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAzMTAzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTA0IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAxMDIwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAyMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAzMTA4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTA5IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX2FycmF5X3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl90dXBsZV9lbmQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX3R1cGxlX2VuZF9yZWMgdiBsZXhidWYgNDkyXG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX3R1cGxlX2VuZF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTAyMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMjMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIChcbiAgICAgIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnKSc7XG4gICAgICByYWlzZSBFbmRfb2ZfdHVwbGUgKVxuXG4jIDMxMjIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxMjMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwMjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDI2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAzMTI3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTI4IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX3R1cGxlX2VuZF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl90dXBsZV9zZXAgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX3R1cGxlX3NlcF9yZWMgdiBsZXhidWYgNDk0XG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX3R1cGxlX3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTAyOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMjkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICcsJyApXG5cbiMgMzEzOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE0MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTAzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICcpJzsgcmFpc2UgRW5kX29mX3R1cGxlIClcblxuIyAzMTQ0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTQ1IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAxMDMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICcpJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMzE0OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE1MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMTAzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMzE1NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE1NSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl90dXBsZV9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfY29sb24gdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX2NvbG9uX3JlYyB2IGxleGJ1ZiA0OTlcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfY29sb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwMzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnOicgKVxuXG4jIDMxNjYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxNjcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnOicgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDMxNzEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxNzIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDEwMzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDM3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDMxNzYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxNzcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfY29sb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfZ3QgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX2d0X3JlYyB2IGxleGJ1ZiA1MDNcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfZ3RfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwNDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDEwNDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJz4nIClcblxuIyAzMTg4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTg5IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDQxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAxMDQxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc+JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMzE5MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE5NCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMTA0MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMTA0MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDMxOTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxOTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfZ3RfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfYnVmZmVyX2NvbW1lbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl9jb21tZW50X3JlYyB2IGxleGJ1ZiA1MDdcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX2NvbW1lbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwNDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDEwNDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX3N0cmluZyB2LmJ1ZiBcIiovXCIgKVxuXG4jIDMyMTAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMyMTEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwNDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDEwNDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiVW50ZXJtaW5hdGVkIGNvbW1lbnRcIiB2IGxleGJ1ZiApXG5cbiMgMzIxNSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzIxNiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMTA0NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMTA0NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXFxuJztcbiAgICAgICAgICAgbmV3bGluZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgZmluaXNoX2J1ZmZlcl9jb21tZW50IHYgbGV4YnVmIClcblxuIyAzMjIyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMjIzIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAxMDUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAxMDUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWY7IGZpbmlzaF9idWZmZXJfY29tbWVudCB2IGxleGJ1ZiApXG5cbiMgMzIyNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzIyOCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfY29tbWVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGp1bmsgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2p1bmtfcmVjIGxleGJ1ZiA1MTNcbmFuZCBfX29jYW1sX2xleF9qdW5rX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTA1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwNTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggTGV4aW5nLmxleGVtZSBsZXhidWYgKVxuXG4jIDMyMzkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMyNDAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9qdW5rX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuOztcblxuXG4jIDEwNTUgXCJsaWIvcmVhZC5tbGxcIlxuIFxuICBcbiMgMTA1NiBcImxpYi9yZWFkLm1sbFwiXG4gIGxldCBfID0gKHJlYWRfanNvbiA6IGxleGVyX3N0YXRlIC0+IExleGluZy5sZXhidWYgLT4gdClcblxuICBsZXQgcmVhZF90ID0gcmVhZF9qc29uXG5cbiAgbGV0ICgpID1cbiAgICByZWFkX2p1bmsgOj0ganVua1xuXG4gIGxldCByZWFkX2ludDggdiBsZXhidWYgPVxuICAgIGxldCBuID0gcmVhZF9pbnQgdiBsZXhidWYgaW5cbiAgICBpZiBuIDwgMCB8fCBuID4gMjU1IHRoZW5cbiAgICAgIGxleGVyX2Vycm9yIFwiSW50OCBvdmVyZmxvd1wiIHYgbGV4YnVmXG4gICAgZWxzZVxuICAgICAgY2hhcl9vZl9pbnQgblxuXG4gIGxldCByZWFkX2xpc3QgcmVhZF9jZWxsIHYgbGV4YnVmID1cbiAgICBMaXN0LnJldiAocmVhZF9saXN0X3JldiByZWFkX2NlbGwgdiBsZXhidWYpXG5cbiAgbGV0IGFycmF5X29mX3Jldl9saXN0IGwgPVxuICAgIG1hdGNoIGwgd2l0aFxuICAgICAgICBbXSAtPiBbfCB8XVxuICAgICAgfCB4IDo6IHRsIC0+XG4gICAgICAgICAgbGV0IGxlbiA9IExpc3QubGVuZ3RoIGwgaW5cbiAgICAgICAgICBsZXQgYSA9IEFycmF5Lm1ha2UgbGVuIHggaW5cbiAgICAgICAgICBsZXQgciA9IHJlZiB0bCBpblxuICAgICAgICAgIGZvciBpID0gbGVuIC0gMiBkb3dudG8gMCBkb1xuICAgICAgICAgICAgYS4oaSkgPC0gTGlzdC5oZCAhcjtcbiAgICAgICAgICAgIHIgOj0gTGlzdC50bCAhclxuICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgYVxuXG4gIGxldCByZWFkX2FycmF5IHJlYWRfY2VsbCB2IGxleGJ1ZiA9XG4gICAgbGV0IGwgPSByZWFkX2xpc3RfcmV2IHJlYWRfY2VsbCB2IGxleGJ1ZiBpblxuICAgIGFycmF5X29mX3Jldl9saXN0IGxcblxuICAoKiBSZWFkIGEgSlNPTiBvYmplY3QsIHJlYWRpbmcgdGhlIGtleXMgaW50byBPQ2FtbCBzdHJpbmdzXG4gICAgIChwcm92aWRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSkgKilcbiAgbGV0IHJlYWRfZmllbGRzIHJlYWRfZmllbGQgaW5pdF9hY2MgdiA9XG4gICAgcmVhZF9hYnN0cmFjdF9maWVsZHMgcmVhZF9pZGVudCByZWFkX2ZpZWxkIGluaXRfYWNjIHZcblxuICBsZXQgZmluaXNoIHYgbGV4YnVmID1cbiAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgIGlmIG5vdCAocmVhZF9lb2YgbGV4YnVmKSB0aGVuXG4gICAgICBsb25nX2Vycm9yIFwiSnVuayBhZnRlciBlbmQgb2YgSlNPTiB2YWx1ZTpcIiB2IGxleGJ1ZlxuXG4gIGxldCBpbml0X2xleGVyID0gaW5pdF9sZXhlclxuXG4gIGxldCBmcm9tX2xleGJ1ZiB2ID8oc3RyZWFtID0gZmFsc2UpIGxleGJ1ZiA9XG4gICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcblxuICAgIGxldCB4ID1cbiAgICAgIGlmIHJlYWRfZW9mIGxleGJ1ZiB0aGVuXG4gICAgICAgIHJhaXNlIEVuZF9vZl9pbnB1dFxuICAgICAgZWxzZVxuICAgICAgICByZWFkX2pzb24gdiBsZXhidWZcbiAgICBpblxuXG4gICAgaWYgbm90IHN0cmVhbSB0aGVuXG4gICAgICBmaW5pc2ggdiBsZXhidWY7XG5cbiAgICB4XG5cblxuICBsZXQgZnJvbV9zdHJpbmcgP2J1ZiA/Zm5hbWUgP2xudW0gcyA9XG4gICAgdHJ5XG4gICAgICBsZXQgbGV4YnVmID0gTGV4aW5nLmZyb21fc3RyaW5nIHMgaW5cbiAgICAgIGxldCB2ID0gaW5pdF9sZXhlciA/YnVmID9mbmFtZSA/bG51bSAoKSBpblxuICAgICAgZnJvbV9sZXhidWYgdiBsZXhidWZcbiAgICB3aXRoIEVuZF9vZl9pbnB1dCAtPlxuICAgICAganNvbl9lcnJvciBcIkJsYW5rIGlucHV0IGRhdGFcIlxuXG4gIGxldCBmcm9tX2NoYW5uZWwgP2J1ZiA/Zm5hbWUgP2xudW0gaWMgPVxuICAgIHRyeVxuICAgICAgbGV0IGxleGJ1ZiA9IExleGluZy5mcm9tX2NoYW5uZWwgaWMgaW5cbiAgICAgIGxldCB2ID0gaW5pdF9sZXhlciA/YnVmID9mbmFtZSA/bG51bSAoKSBpblxuICAgICAgZnJvbV9sZXhidWYgdiBsZXhidWZcbiAgICB3aXRoIEVuZF9vZl9pbnB1dCAtPlxuICAgICAganNvbl9lcnJvciBcIkJsYW5rIGlucHV0IGRhdGFcIlxuXG4gIGxldCBmcm9tX2ZpbGUgP2J1ZiA/Zm5hbWUgP2xudW0gZmlsZSA9XG4gICAgbGV0IGljID0gb3Blbl9pbiBmaWxlIGluXG4gICAgdHJ5XG4gICAgICBsZXQgeCA9IGZyb21fY2hhbm5lbCA/YnVmID9mbmFtZSA/bG51bSBpYyBpblxuICAgICAgY2xvc2VfaW4gaWM7XG4gICAgICB4XG4gICAgd2l0aCBlIC0+XG4gICAgICBjbG9zZV9pbl9ub2VyciBpYztcbiAgICAgIHJhaXNlIGVcblxuICBleGNlcHRpb24gRmluYWxseSBvZiBleG4gKiBleG5cblxuICBsZXQgc2VxX2Zyb21fbGV4YnVmIHYgPyhmaW4gPSBmdW4gKCkgLT4gKCkpIGxleGJ1ZiA9XG4gICAgbGV0IHN0cmVhbSA9IFNvbWUgdHJ1ZSBpblxuICAgIGxldCByZWMgZiAoKSA9XG4gICAgICB0cnkgU2VxLkNvbnMgKGZyb21fbGV4YnVmIHYgP3N0cmVhbSBsZXhidWYsIGYpXG4gICAgICB3aXRoXG4gICAgICAgICAgRW5kX29mX2lucHV0IC0+XG4gICAgICAgICAgICBmaW4gKCk7XG4gICAgICAgICAgICBTZXEuTmlsXG4gICAgICAgIHwgZSAtPlxuICAgICAgICAgICAgKHRyeSBmaW4gKCkgd2l0aCBmaW5fZSAtPiByYWlzZSAoRmluYWxseSAoZSwgZmluX2UpKSk7XG4gICAgICAgICAgICByYWlzZSBlXG4gICAgaW5cbiAgICBmXG5cbiAgbGV0IHNlcV9mcm9tX3N0cmluZyA/YnVmID9mbmFtZSA/bG51bSBzID1cbiAgICBsZXQgdiA9IGluaXRfbGV4ZXIgP2J1ZiA/Zm5hbWUgP2xudW0gKCkgaW5cbiAgICBzZXFfZnJvbV9sZXhidWYgdiAoTGV4aW5nLmZyb21fc3RyaW5nIHMpXG5cbiAgbGV0IHNlcV9mcm9tX2NoYW5uZWwgP2J1ZiA/ZmluID9mbmFtZSA/bG51bSBpYyA9XG4gICAgbGV0IGxleGJ1ZiA9IExleGluZy5mcm9tX2NoYW5uZWwgaWMgaW5cbiAgICBsZXQgdiA9IGluaXRfbGV4ZXIgP2J1ZiA/Zm5hbWUgP2xudW0gKCkgaW5cbiAgICBzZXFfZnJvbV9sZXhidWYgdiA/ZmluIGxleGJ1ZlxuXG4gIGxldCBzZXFfZnJvbV9maWxlID9idWYgP2ZuYW1lID9sbnVtIGZpbGUgPVxuICAgIGxldCBpYyA9IG9wZW5faW4gZmlsZSBpblxuICAgIGxldCBmaW4gKCkgPSBjbG9zZV9pbiBpYyBpblxuICAgIGxldCBmbmFtZSA9XG4gICAgICBtYXRjaCBmbmFtZSB3aXRoXG4gICAgICAgICAgTm9uZSAtPiBTb21lIGZpbGVcbiAgICAgICAgfCB4IC0+IHhcbiAgICBpblxuICAgIGxldCBsZXhidWYgPSBMZXhpbmcuZnJvbV9jaGFubmVsIGljIGluXG4gICAgbGV0IHYgPSBpbml0X2xleGVyID9idWYgP2ZuYW1lID9sbnVtICgpIGluXG4gICAgc2VxX2Zyb21fbGV4YnVmIHYgfmZpbiBsZXhidWZcblxuICB0eXBlIGpzb25fbGluZSA9IFsgYEpzb24gb2YgdCB8IGBFeG4gb2YgZXhuIF1cblxuICBsZXQgbGluZXNlcV9mcm9tX2NoYW5uZWxcbiAgICAgID9idWYgPyhmaW4gPSBmdW4gKCkgLT4gKCkpID9mbmFtZSA/bG51bToobG51bTAgPSAxKSBpYyA9XG4gICAgbGV0IGJ1ZiA9XG4gICAgICBtYXRjaCBidWYgd2l0aFxuICAgICAgICAgIE5vbmUgLT4gU29tZSAoQnVmZmVyLmNyZWF0ZSAyNTYpXG4gICAgICAgIHwgU29tZSBfIC0+IGJ1ZlxuICAgIGluXG4gICAgbGV0IHJlYyBmIGxudW0gPSBmdW4gKCkgLT5cbiAgICAgIHRyeVxuICAgICAgICBsZXQgbGluZSA9IGlucHV0X2xpbmUgaWMgaW5cbiAgICAgICAgU2VxLkNvbnMgKGBKc29uIChmcm9tX3N0cmluZyA/YnVmID9mbmFtZSB+bG51bSBsaW5lKSwgZiAobG51bSArIDEpKVxuICAgICAgd2l0aFxuICAgICAgICAgIEVuZF9vZl9maWxlIC0+IGZpbiAoKTsgU2VxLk5pbFxuICAgICAgICB8IGUgLT4gU2VxLkNvbnMgKGBFeG4gZSwgZiAobG51bSArIDEpKVxuICAgIGluXG4gICAgZiBsbnVtMFxuXG4gIGxldCBsaW5lc2VxX2Zyb21fZmlsZSA/YnVmID9mbmFtZSA/bG51bSBmaWxlID1cbiAgICBsZXQgaWMgPSBvcGVuX2luIGZpbGUgaW5cbiAgICBsZXQgZmluICgpID0gY2xvc2VfaW4gaWMgaW5cbiAgICBsZXQgZm5hbWUgPVxuICAgICAgbWF0Y2ggZm5hbWUgd2l0aFxuICAgICAgICAgIE5vbmUgLT4gU29tZSBmaWxlXG4gICAgICAgIHwgeCAtPiB4XG4gICAgaW5cbiAgICBsaW5lc2VxX2Zyb21fY2hhbm5lbCA/YnVmIH5maW4gP2ZuYW1lID9sbnVtIGljXG5cbiAgbGV0IHByZXR0aWZ5ID9zdGQgcyA9XG4gICAgcHJldHR5X3RvX3N0cmluZyA/c3RkIChmcm9tX3N0cmluZyBzKVxuXG4gIGxldCBjb21wYWN0ID9zdGQgcyA9XG4gICAgdG9fc3RyaW5nIChmcm9tX3N0cmluZyBzKVxuXG5cbiMgMzQwOCBcImxpYi9yZWFkLm1sXCJcbiMgNDIgXCJ5b2pzb24uY3Bwby5tbFwiXG5tb2R1bGUgVXRpbCA9XG5zdHJ1Y3RcbiMgMSBcInV0aWwubWxcIlxuZXhjZXB0aW9uIFR5cGVfZXJyb3Igb2Ygc3RyaW5nICogdFxuXG5sZXQgdHlwZW9mID0gZnVuY3Rpb25cbiAgfCBgQXNzb2MgXyAtPiBcIm9iamVjdFwiXG4gIHwgYEJvb2wgXyAtPiBcImJvb2xcIlxuICB8IGBGbG9hdCBfIC0+IFwiZmxvYXRcIlxuICB8IGBJbnQgXyAtPiBcImludFwiXG4gIHwgYExpc3QgXyAtPiBcImFycmF5XCJcbiAgfCBgTnVsbCAtPiBcIm51bGxcIlxuICB8IGBTdHJpbmcgXyAtPiBcInN0cmluZ1wiXG4gIHwgYEludGxpdCBfIC0+IFwiaW50bGl0XCJcbiAgfCBgVHVwbGUgXyAtPiBcInR1cGxlXCJcbiAgfCBgVmFyaWFudCBfIC0+IFwidmFyaWFudFwiXG5cbmxldCB0eXBlcnIgbXNnIGpzID0gcmFpc2UgKFR5cGVfZXJyb3IgKG1zZyBeIHR5cGVvZiBqcywganMpKVxuXG5leGNlcHRpb24gVW5kZWZpbmVkIG9mIHN0cmluZyAqIHRcblxubGV0IGFzc29jIG5hbWUgb2JqID1cbiAgdHJ5IExpc3QuYXNzb2MgbmFtZSBvYmpcbiAgd2l0aCBOb3RfZm91bmQgLT4gYE51bGxcblxubGV0IG1lbWJlciBuYW1lID0gZnVuY3Rpb25cbiAgfCBgQXNzb2Mgb2JqIC0+IGFzc29jIG5hbWUgb2JqXG4gIHwganMgLT4gdHlwZXJyIChcIkNhbid0IGdldCBtZW1iZXIgJ1wiIF4gbmFtZSBeIFwiJyBvZiBub24tb2JqZWN0IHR5cGUgXCIpIGpzXG5cbmxldCBpbmRleCBpID0gZnVuY3Rpb25cbiAgfCBgTGlzdCBsIGFzIGpzIC0+XG4gICAgICBsZXQgbGVuID0gTGlzdC5sZW5ndGggbCBpblxuICAgICAgbGV0IHdyYXBwZWRfaW5kZXggPSBpZiBpIDwgMCB0aGVuIGxlbiArIGkgZWxzZSBpIGluXG4gICAgICBpZiB3cmFwcGVkX2luZGV4IDwgMCB8fCB3cmFwcGVkX2luZGV4ID49IGxlbiB0aGVuXG4gICAgICAgIHJhaXNlIChVbmRlZmluZWQgKFwiSW5kZXggXCIgXiBzdHJpbmdfb2ZfaW50IGkgXiBcIiBvdXQgb2YgYm91bmRzXCIsIGpzKSlcbiAgICAgIGVsc2UgTGlzdC5udGggbCB3cmFwcGVkX2luZGV4XG4gIHwganMgLT4gdHlwZXJyIChcIkNhbid0IGdldCBpbmRleCBcIiBeIHN0cmluZ19vZl9pbnQgaVxuICAgICAgICAgICAgICAgICBeIFwiIG9mIG5vbi1hcnJheSB0eXBlIFwiKSBqc1xuXG5sZXQgbWFwIGYgPSBmdW5jdGlvblxuICB8IGBMaXN0IGwgLT4gYExpc3QgKExpc3QubWFwIGYgbClcbiAgfCBqcyAtPiB0eXBlcnIgXCJDYW4ndCBtYXAgZnVuY3Rpb24gb3ZlciBub24tYXJyYXkgdHlwZSBcIiBqc1xuXG5sZXQgdG9fYXNzb2MgPSBmdW5jdGlvblxuICB8IGBBc3NvYyBvYmogLT4gb2JqXG4gIHwganMgLT4gdHlwZXJyIFwiRXhwZWN0ZWQgb2JqZWN0LCBnb3QgXCIganNcblxubGV0IHRvX29wdGlvbiBmID0gZnVuY3Rpb25cbiAgfCBgTnVsbCAtPiBOb25lXG4gIHwgeCAtPiBTb21lIChmIHgpXG5cbmxldCB0b19ib29sID0gZnVuY3Rpb25cbiAgfCBgQm9vbCBiIC0+IGJcbiAgfCBqcyAtPiB0eXBlcnIgXCJFeHBlY3RlZCBib29sLCBnb3QgXCIganNcblxubGV0IHRvX2Jvb2xfb3B0aW9uID0gZnVuY3Rpb25cbiAgfCBgQm9vbCBiIC0+IFNvbWUgYlxuICB8IGBOdWxsIC0+IE5vbmVcbiAgfCBqcyAtPiB0eXBlcnIgXCJFeHBlY3RlZCBib29sIG9yIG51bGwsIGdvdCBcIiBqc1xuXG5sZXQgdG9fbnVtYmVyID0gZnVuY3Rpb25cbiAgfCBgSW50IGkgLT4gZmxvYXQgaVxuICB8IGBGbG9hdCBmIC0+IGZcbiAgfCBqcyAtPiB0eXBlcnIgXCJFeHBlY3RlZCBudW1iZXIsIGdvdCBcIiBqc1xuXG5sZXQgdG9fbnVtYmVyX29wdGlvbiA9IGZ1bmN0aW9uXG4gIHwgYEludCBpIC0+IFNvbWUgKGZsb2F0IGkpXG4gIHwgYEZsb2F0IGYgLT4gU29tZSBmXG4gIHwgYE51bGwgLT4gTm9uZVxuICB8IGpzIC0+IHR5cGVyciBcIkV4cGVjdGVkIG51bWJlciBvciBudWxsLCBnb3QgXCIganNcblxubGV0IHRvX2Zsb2F0ID0gZnVuY3Rpb25cbiAgfCBgRmxvYXQgZiAtPiBmXG4gIHwganMgLT4gdHlwZXJyIFwiRXhwZWN0ZWQgZmxvYXQsIGdvdCBcIiBqc1xuXG5sZXQgdG9fZmxvYXRfb3B0aW9uID0gZnVuY3Rpb25cbiAgfCBgRmxvYXQgZiAtPiBTb21lIGZcbiAgfCBgTnVsbCAtPiBOb25lXG4gIHwganMgLT4gdHlwZXJyIFwiRXhwZWN0ZWQgZmxvYXQgb3IgbnVsbCwgZ290IFwiIGpzXG5cbmxldCB0b19pbnQgPSBmdW5jdGlvblxuICB8IGBJbnQgaSAtPiBpXG4gIHwganMgLT4gdHlwZXJyIFwiRXhwZWN0ZWQgaW50LCBnb3QgXCIganNcblxubGV0IHRvX2ludF9vcHRpb24gPSBmdW5jdGlvblxuICB8IGBJbnQgaSAtPiBTb21lIGlcbiAgfCBgTnVsbCAtPiBOb25lXG4gIHwganMgLT4gdHlwZXJyIFwiRXhwZWN0ZWQgaW50IG9yIG51bGwsIGdvdCBcIiBqc1xuXG5sZXQgdG9fbGlzdCA9IGZ1bmN0aW9uXG4gIHwgYExpc3QgbCAtPiBsXG4gIHwganMgLT4gdHlwZXJyIFwiRXhwZWN0ZWQgYXJyYXksIGdvdCBcIiBqc1xuXG5sZXQgdG9fc3RyaW5nID0gZnVuY3Rpb25cbiAgfCBgU3RyaW5nIHMgLT4gc1xuICB8IGpzIC0+IHR5cGVyciBcIkV4cGVjdGVkIHN0cmluZywgZ290IFwiIGpzXG5cbmxldCB0b19zdHJpbmdfb3B0aW9uID0gZnVuY3Rpb25cbiAgfCBgU3RyaW5nIHMgLT4gU29tZSBzXG4gIHwgYE51bGwgLT4gTm9uZVxuICB8IGpzIC0+IHR5cGVyciBcIkV4cGVjdGVkIHN0cmluZyBvciBudWxsLCBnb3QgXCIganNcblxubGV0IGNvbnZlcnRfZWFjaCBmID0gZnVuY3Rpb25cbiAgfCBgTGlzdCBsIC0+IExpc3QubWFwIGYgbFxuICB8IGpzIC0+IHR5cGVyciBcIkNhbid0IGNvbnZlcnQgZWFjaCBlbGVtZW50IG9mIG5vbi1hcnJheSB0eXBlIFwiIGpzXG5cblxubGV0IHJlYyByZXZfZmlsdGVyX21hcCBmIGFjYyBsID1cbiAgbWF0Y2ggbCB3aXRoXG4gICAgICBbXSAtPiBhY2NcbiAgICB8IHggOjogdGwgLT5cbiAgICAgICAgbWF0Y2ggZiB4IHdpdGhcbiAgICAgICAgICAgIE5vbmUgLT4gcmV2X2ZpbHRlcl9tYXAgZiBhY2MgdGxcbiAgICAgICAgICB8IFNvbWUgeSAtPiByZXZfZmlsdGVyX21hcCBmICh5IDo6IGFjYykgdGxcblxubGV0IGZpbHRlcl9tYXAgZiBsID1cbiAgTGlzdC5yZXYgKHJldl9maWx0ZXJfbWFwIGYgW10gbClcblxubGV0IHJlYyByZXZfZmxhdHRlbiBhY2MgbCA9XG4gIG1hdGNoIGwgd2l0aFxuICAgICAgW10gLT4gYWNjXG4gICAgfCB4IDo6IHRsIC0+XG4gICAgICAgIG1hdGNoIHggd2l0aFxuICAgICAgICAgICAgYExpc3QgbDIgLT4gcmV2X2ZsYXR0ZW4gKExpc3QucmV2X2FwcGVuZCBsMiBhY2MpIHRsXG4gICAgICAgICAgfCBfIC0+IHJldl9mbGF0dGVuIGFjYyB0bFxuXG5sZXQgZmxhdHRlbiBsID1cbiAgTGlzdC5yZXYgKHJldl9mbGF0dGVuIFtdIGwpXG5cbmxldCBmaWx0ZXJfaW5kZXggaSBsID1cbiAgZmlsdGVyX21hcCAoXG4gICAgZnVuY3Rpb25cbiAgICAgICAgYExpc3QgbCAtPlxuICAgICAgICAgICh0cnkgU29tZSAoTGlzdC5udGggbCBpKVxuICAgICAgICAgICB3aXRoIF8gLT4gTm9uZSlcbiAgICAgIHwgXyAtPiBOb25lXG4gICkgbFxuXG5sZXQgZmlsdGVyX2xpc3QgbCA9XG4gIGZpbHRlcl9tYXAgKFxuICAgIGZ1bmN0aW9uXG4gICAgICAgIGBMaXN0IGwgLT4gU29tZSBsXG4gICAgICB8IF8gLT4gTm9uZVxuICApIGxcblxubGV0IGZpbHRlcl9tZW1iZXIgayBsID1cbiAgZmlsdGVyX21hcCAoXG4gICAgZnVuY3Rpb25cbiAgICAgICAgYEFzc29jIGwgLT5cbiAgICAgICAgICAodHJ5IFNvbWUgKExpc3QuYXNzb2MgayBsKVxuICAgICAgICAgICB3aXRoIF8gLT4gTm9uZSlcbiAgICAgIHwgXyAtPiBOb25lXG4gICkgbFxuXG5sZXQgZmlsdGVyX2Fzc29jIGwgPVxuICBmaWx0ZXJfbWFwIChcbiAgICBmdW5jdGlvblxuICAgICAgICBgQXNzb2MgbCAtPiBTb21lIGxcbiAgICAgIHwgXyAtPiBOb25lXG4gICkgbFxuXG5sZXQgZmlsdGVyX2Jvb2wgbCA9XG4gIGZpbHRlcl9tYXAgKFxuICAgIGZ1bmN0aW9uXG4gICAgICAgIGBCb29sIHggLT4gU29tZSB4XG4gICAgICB8IF8gLT4gTm9uZVxuICApIGxcblxubGV0IGZpbHRlcl9pbnQgbCA9XG4gIGZpbHRlcl9tYXAgKFxuICAgIGZ1bmN0aW9uXG4gICAgICAgIGBJbnQgeCAtPiBTb21lIHhcbiAgICAgIHwgXyAtPiBOb25lXG4gICkgbFxuXG5sZXQgZmlsdGVyX2Zsb2F0IGwgPVxuICBmaWx0ZXJfbWFwIChcbiAgICBmdW5jdGlvblxuICAgICAgICBgRmxvYXQgeCAtPiBTb21lIHhcbiAgICAgIHwgXyAtPiBOb25lXG4gICkgbFxuXG5sZXQgZmlsdGVyX251bWJlciBsID1cbiAgZmlsdGVyX21hcCAoXG4gICAgZnVuY3Rpb25cbiAgICAgICAgYEludCB4IC0+IFNvbWUgKGZsb2F0IHgpXG4gICAgICB8IGBGbG9hdCB4IC0+IFNvbWUgeFxuICAgICAgfCBfIC0+IE5vbmVcbiAgKSBsXG5cbmxldCBmaWx0ZXJfc3RyaW5nIGwgPVxuICBmaWx0ZXJfbWFwIChcbiAgICBmdW5jdGlvblxuICAgICAgICBgU3RyaW5nIHggLT4gU29tZSB4XG4gICAgICB8IF8gLT4gTm9uZVxuICApIGxcblxubGV0IGtleXMgbyA9XG4gIHRvX2Fzc29jIG8gfD4gTGlzdC5tYXAgKGZ1biAoa2V5LCBfKSAtPiBrZXkpXG5cbmxldCB2YWx1ZXMgbyA9XG4gIHRvX2Fzc29jIG8gfD4gTGlzdC5tYXAgKGZ1biAoXywgdmFsdWUpIC0+IHZhbHVlKVxuXG5sZXQgY29tYmluZSAoZmlyc3QgOiB0KSAoc2Vjb25kIDogdCkgPVxuICBtYXRjaCAoZmlyc3QsIHNlY29uZCkgd2l0aFxuICB8IChgQXNzb2MgYSwgYEFzc29jIGIpIC0+IChgQXNzb2MgKGEgQCBiKSA6ICB0KVxuICB8IChhLCBiKSAtPiByYWlzZSAoSW52YWxpZF9hcmd1bWVudCBcIkV4cGVjdGVkIHR3byBvYmplY3RzLCBjaGVjayBpbnB1dHNcIilcbiMgNDUgXCJ5b2pzb24uY3Bwby5tbFwiXG5lbmRcbiMgNDkgXCJ5b2pzb24uY3Bwby5tbFwiXG5lbmRcblxubW9kdWxlIFNhZmUgPVxuc3RydWN0XG4jIDEgXCJ0eXBlLm1sXCJcbigqKiB7MyBUeXBlIG9mIHRoZSBKU09OIHRyZWV9ICopXG5cbnR5cGUgdCA9XG4gICAgW1xuICAgIHwgYE51bGxcbiAgICB8IGBCb29sIG9mIGJvb2xcbiAgICBcbiMgOCBcInR5cGUubWxcIlxuICAgIHwgYEludCBvZiBpbnRcbiAgICBcbiMgMTEgXCJ0eXBlLm1sXCJcbiAgICB8IGBJbnRsaXQgb2Ygc3RyaW5nXG4gICAgXG4jIDE0IFwidHlwZS5tbFwiXG4gICAgfCBgRmxvYXQgb2YgZmxvYXRcbiAgICBcbiMgMjAgXCJ0eXBlLm1sXCJcbiAgICB8IGBTdHJpbmcgb2Ygc3RyaW5nXG4gICAgXG4jIDI1IFwidHlwZS5tbFwiXG4gICAgfCBgQXNzb2Mgb2YgKHN0cmluZyAqIHQpIGxpc3RcbiAgICB8IGBMaXN0IG9mIHQgbGlzdFxuICAgIFxuIyAyOCBcInR5cGUubWxcIlxuICAgIHwgYFR1cGxlIG9mIHQgbGlzdFxuICAgIFxuIyAzMSBcInR5cGUubWxcIlxuICAgIHwgYFZhcmlhbnQgb2YgKHN0cmluZyAqIHQgb3B0aW9uKVxuICAgIFxuIyAzMyBcInR5cGUubWxcIlxuICAgIF1cbigqKlxuQWxsIHBvc3NpYmxlIGNhc2VzIGRlZmluZWQgaW4gWW9qc29uOlxuLSBgTnVsbDogSlNPTiBudWxsXG4tIGBCb29sIG9mIGJvb2w6IEpTT04gYm9vbGVhblxuLSBgSW50IG9mIGludDogSlNPTiBudW1iZXIgd2l0aG91dCBkZWNpbWFsIHBvaW50IG9yIGV4cG9uZW50LlxuLSBgSW50bGl0IG9mIHN0cmluZzogSlNPTiBudW1iZXIgd2l0aG91dCBkZWNpbWFsIHBvaW50IG9yIGV4cG9uZW50LFxuXHQgICAgcHJlc2VydmVkIGFzIGEgc3RyaW5nLlxuLSBgRmxvYXQgb2YgZmxvYXQ6IEpTT04gbnVtYmVyLCBJbmZpbml0eSwgLUluZmluaXR5IG9yIE5hTi5cbi0gYEZsb2F0bGl0IG9mIHN0cmluZzogSlNPTiBudW1iZXIsIEluZmluaXR5LCAtSW5maW5pdHkgb3IgTmFOLFxuXHQgICAgcHJlc2VydmVkIGFzIGEgc3RyaW5nLlxuLSBgU3RyaW5nIG9mIHN0cmluZzogSlNPTiBzdHJpbmcuIEJ5dGVzIGluIHRoZSByYW5nZSAxMjgtMjU1IGFyZSBwcmVzZXJ2ZWRcblx0ICAgIGFzLWlzIHdpdGhvdXQgZW5jb2RpbmcgdmFsaWRhdGlvbiBmb3IgYm90aCByZWFkaW5nXG5cdCAgICBhbmQgd3JpdGluZy5cbi0gYFN0cmluZ2xpdCBvZiBzdHJpbmc6IEpTT04gc3RyaW5nIGxpdGVyYWwgaW5jbHVkaW5nIHRoZSBkb3VibGUgcXVvdGVzLlxuLSBgQXNzb2Mgb2YgKHN0cmluZyAqIGpzb24pIGxpc3Q6IEpTT04gb2JqZWN0LlxuLSBgTGlzdCBvZiBqc29uIGxpc3Q6IEpTT04gYXJyYXkuXG4tIGBUdXBsZSBvZiBqc29uIGxpc3Q6IFR1cGxlIChub24tc3RhbmRhcmQgZXh0ZW5zaW9uIG9mIEpTT04pLlxuXHQgICAgU3ludGF4OiBbKFwiYWJjXCIsIDEyMyldLlxuLSBgVmFyaWFudCBvZiAoc3RyaW5nICoganNvbiBvcHRpb24pOiBWYXJpYW50IChub24tc3RhbmRhcmQgZXh0ZW5zaW9uIG9mIEpTT04pLlxuXHQgICAgU3ludGF4OiBbPFwiRm9vXCI+XSBvciBbPFwiQmFyXCI6MTIzPl0uXG4qKVxuXG4oKlxuICBOb3RlIHRvIGFkdmVudHVyZXJzOiBvY2FtbGRvYyBkb2VzIG5vdCBzdXBwb3J0IGlubGluZSBjb21tZW50c1xuICBvbiBlYWNoIHBvbHltb3JwaGljIHZhcmlhbnQsIGFuZCBjcHBvIGRvZXNuJ3QgYWxsb3cgdG8gY29uY2F0ZW5hdGVcbiAgY29tbWVudHMsIHNvIGl0IHdvdWxkIGJlIGNvbXBsaWNhdGVkIHRvIGRvY3VtZW50IG9ubHkgdGhlXG4gIGNhc2VzIHRoYXQgYXJlIHByZXNlcnZlZCBieSBjcHBvIGluIHRoZSB0eXBlIGRlZmluaXRpb24uXG4qKVxuIyAxIFwic2FmZS5tbFwiXG5sZXQgcmVjIHRvX2Jhc2ljIDogdCAtPiBCYXNpYy50ID0gZnVuY3Rpb25cbiAgICBgTnVsbFxuICB8IGBCb29sIF9cbiAgfCBgSW50IF9cbiAgfCBgRmxvYXQgX1xuICB8IGBTdHJpbmcgXyBhcyB4IC0+IHhcbiAgfCBgSW50bGl0IHMgLT4gYFN0cmluZyBzXG4gIHwgYExpc3QgbFxuICB8IGBUdXBsZSBsIC0+XG4gICAgICBgTGlzdCAoTGlzdC5yZXYgKExpc3QucmV2X21hcCB0b19iYXNpYyBsKSlcbiAgfCBgQXNzb2MgbCAtPlxuICAgICAgYEFzc29jIChMaXN0LnJldiAoTGlzdC5yZXZfbWFwIChmdW4gKGssIHYpIC0+IChrLCB0b19iYXNpYyB2KSkgbCkpXG4gIHwgYFZhcmlhbnQgKGssIE5vbmUpIC0+IGBTdHJpbmcga1xuICB8IGBWYXJpYW50IChrLCBTb21lIHYpIC0+IGBMaXN0IFsgYFN0cmluZyBrOyB0b19iYXNpYyB2IF1cbiMgMSBcIndyaXRlLm1sXCJcbigqIGluY2x1ZGVkOiB0eXBlLm1sICopXG5cbmxldCBoZXggbiA9XG4gIENoYXIuY2hyIChcbiAgICBpZiBuIDwgMTAgdGhlbiBuICsgNDhcbiAgICBlbHNlIG4gKyA4N1xuICApXG5cbmxldCB3cml0ZV9zcGVjaWFsIHNyYyBzdGFydCBzdG9wIG9iIHN0ciA9XG4gIEJ1ZmZlci5hZGRfc3Vic3RyaW5nIG9iIHNyYyAhc3RhcnQgKHN0b3AgLSAhc3RhcnQpO1xuICBCdWZmZXIuYWRkX3N0cmluZyBvYiBzdHI7XG4gIHN0YXJ0IDo9IHN0b3AgKyAxXG5cbmxldCB3cml0ZV9jb250cm9sX2NoYXIgc3JjIHN0YXJ0IHN0b3Agb2IgYyA9XG4gIEJ1ZmZlci5hZGRfc3Vic3RyaW5nIG9iIHNyYyAhc3RhcnQgKHN0b3AgLSAhc3RhcnQpO1xuICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIlxcXFx1MDBcIjtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iIChoZXggKENoYXIuY29kZSBjIGxzciA0KSk7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAoaGV4IChDaGFyLmNvZGUgYyBsYW5kIDB4ZikpO1xuICBzdGFydCA6PSBzdG9wICsgMVxuXG5sZXQgZmluaXNoX3N0cmluZyBzcmMgc3RhcnQgb2IgPVxuICB0cnlcbiAgICBCdWZmZXIuYWRkX3N1YnN0cmluZyBvYiBzcmMgIXN0YXJ0IChTdHJpbmcubGVuZ3RoIHNyYyAtICFzdGFydClcbiAgd2l0aCBleGMgLT5cbiAgICBQcmludGYuZXByaW50ZiBcInNyYz0lUyBzdGFydD0laSBsZW49JWlcXG4lIVwiXG4gICAgICBzcmMgIXN0YXJ0IChTdHJpbmcubGVuZ3RoIHNyYyAtICFzdGFydCk7XG4gICAgcmFpc2UgZXhjXG5cbmxldCB3cml0ZV9zdHJpbmdfYm9keSBvYiBzID1cbiAgbGV0IHN0YXJ0ID0gcmVmIDAgaW5cbiAgZm9yIGkgPSAwIHRvIFN0cmluZy5sZW5ndGggcyAtIDEgZG9cbiAgICBtYXRjaCBzLltpXSB3aXRoXG4gICAgICAgICdcIicgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcXFxcIlwiXG4gICAgICB8ICdcXFxcJyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFxcXFxcXCJcbiAgICAgIHwgJ1xcYicgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcYlwiXG4gICAgICB8ICdcXDAxMicgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcZlwiXG4gICAgICB8ICdcXG4nIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXG5cIlxuICAgICAgfCAnXFxyJyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFxyXCJcbiAgICAgIHwgJ1xcdCcgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcdFwiXG4gICAgICB8ICdcXHgwMCcuLidcXHgxRidcbiAgICAgIHwgJ1xceDdGJyBhcyBjIC0+IHdyaXRlX2NvbnRyb2xfY2hhciBzIHN0YXJ0IGkgb2IgY1xuICAgICAgfCBfIC0+ICgpXG4gIGRvbmU7XG4gIGZpbmlzaF9zdHJpbmcgcyBzdGFydCBvYlxuXG5sZXQgd3JpdGVfc3RyaW5nIG9iIHMgPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ1wiJztcbiAgd3JpdGVfc3RyaW5nX2JvZHkgb2IgcztcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICdcIidcblxubGV0IGpzb25fc3RyaW5nX29mX3N0cmluZyBzID1cbiAgbGV0IG9iID0gQnVmZmVyLmNyZWF0ZSAxMCBpblxuICB3cml0ZV9zdHJpbmcgb2IgcztcbiAgQnVmZmVyLmNvbnRlbnRzIG9iXG5cbmxldCB0ZXN0X3N0cmluZyAoKSA9XG4gIGxldCBzID0gQnl0ZXMuY3JlYXRlIDI1NiBpblxuICBmb3IgaSA9IDAgdG8gMjU1IGRvXG4gICAgQnl0ZXMuc2V0IHMgaSAoQ2hhci5jaHIgaSlcbiAgZG9uZTtcbiAganNvbl9zdHJpbmdfb2Zfc3RyaW5nIChCeXRlcy50b19zdHJpbmcgcylcblxuXG5sZXQgd3JpdGVfbnVsbCBvYiAoKSA9XG4gIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwibnVsbFwiXG5cbmxldCB3cml0ZV9ib29sIG9iIHggPVxuICBCdWZmZXIuYWRkX3N0cmluZyBvYiAoaWYgeCB0aGVuIFwidHJ1ZVwiIGVsc2UgXCJmYWxzZVwiKVxuXG5cbmxldCBtYXhfZGlnaXRzID1cbiAgbWF4XG4gICAgKFN0cmluZy5sZW5ndGggKHN0cmluZ19vZl9pbnQgbWF4X2ludCkpXG4gICAgKFN0cmluZy5sZW5ndGggKHN0cmluZ19vZl9pbnQgbWluX2ludCkpXG5cbmxldCBkZWMgbiA9XG4gIENoYXIuY2hyIChuICsgNDgpXG5cbmxldCByZWMgd3JpdGVfZGlnaXRzIHMgeCA9XG4gIGlmIHggPSAwIHRoZW4gKClcbiAgZWxzZVxuICAgIGxldCBkID0geCBtb2QgMTAgaW5cbiAgICB3cml0ZV9kaWdpdHMgcyAoeCAvIDEwKTtcbiAgICBCdWZmZXIuYWRkX2NoYXIgcyAoZGVjIChhYnMgZCkpXG5cbmxldCB3cml0ZV9pbnQgb2IgeCA9XG4gIGlmIHggPiAwIHRoZW5cbiAgICB3cml0ZV9kaWdpdHMgb2IgeFxuICBlbHNlIGlmIHggPCAwIHRoZW4gKFxuICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnLSc7XG4gICAgd3JpdGVfZGlnaXRzIG9iIHhcbiAgKVxuICBlbHNlXG4gICAgQnVmZmVyLmFkZF9jaGFyIG9iICcwJ1xuXG5cbmxldCBqc29uX3N0cmluZ19vZl9pbnQgaSA9XG4gIHN0cmluZ19vZl9pbnQgaVxuXG5cbigqXG4gIEVuc3VyZSB0aGF0IHRoZSBmbG9hdCBpcyBub3QgcHJpbnRlZCBhcyBhbiBpbnQuXG4gIFRoaXMgaXMgbm90IHJlcXVpcmVkIGJ5IEpTT04sIGJ1dCB1c2VmdWwgaW4gb3JkZXIgdG8gZ3VhcmFudGVlXG4gIHJldmVyc2liaWxpdHkuXG4qKVxubGV0IGZsb2F0X25lZWRzX3BlcmlvZCBzID1cbiAgdHJ5XG4gICAgZm9yIGkgPSAwIHRvIFN0cmluZy5sZW5ndGggcyAtIDEgZG9cbiAgICAgIG1hdGNoIHMuW2ldIHdpdGhcbiAgICAgICAgICAnMCcuLic5JyB8ICctJyAtPiAoKVxuICAgICAgICB8IF8gLT4gcmFpc2UgRXhpdFxuICAgIGRvbmU7XG4gICAgdHJ1ZVxuICB3aXRoIEV4aXQgLT5cbiAgICBmYWxzZVxuXG4oKlxuICBHdWFyYW50ZWVzIHRoYXQgYSBzdWZmaWNpZW50IG51bWJlciBvZiBkaWdpdHMgYXJlIHByaW50ZWQgaW4gb3JkZXIgdG8gYWxsb3dcbiAgcmV2ZXJzaWJpbGl0eS5cbiopXG5sZXQgd3JpdGVfZmxvYXQgb2IgeCA9XG4gIG1hdGNoIGNsYXNzaWZ5X2Zsb2F0IHggd2l0aFxuICAgIEZQX25hbiAtPlxuICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCJOYU5cIlxuICB8IEZQX2luZmluaXRlIC0+XG4gICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiAoaWYgeCA+IDAuIHRoZW4gXCJJbmZpbml0eVwiIGVsc2UgXCItSW5maW5pdHlcIilcbiAgfCBfIC0+XG4gICAgICBsZXQgczEgPSBQcmludGYuc3ByaW50ZiBcIiUuMTZnXCIgeCBpblxuICAgICAgbGV0IHMgPVxuICAgICAgICBpZiBmbG9hdF9vZl9zdHJpbmcgczEgPSB4IHRoZW4gczFcbiAgICAgICAgZWxzZSBQcmludGYuc3ByaW50ZiBcIiUuMTdnXCIgeFxuICAgICAgaW5cbiAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHM7XG4gICAgICBpZiBmbG9hdF9uZWVkc19wZXJpb2QgcyB0aGVuXG4gICAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwiLjBcIlxuXG5sZXQgd3JpdGVfbm9ybWFsX2Zsb2F0X3ByZWMgc2lnbmlmaWNhbnRfZmlndXJlcyBvYiB4ID1cbiAgbGV0IG9wZW4gUHJpbnRmIGluXG4gIGxldCBzID1cbiAgICBtYXRjaCBzaWduaWZpY2FudF9maWd1cmVzIHdpdGhcbiAgICAgICAgMSAtPiBzcHJpbnRmIFwiJS4xZ1wiIHhcbiAgICAgIHwgMiAtPiBzcHJpbnRmIFwiJS4yZ1wiIHhcbiAgICAgIHwgMyAtPiBzcHJpbnRmIFwiJS4zZ1wiIHhcbiAgICAgIHwgNCAtPiBzcHJpbnRmIFwiJS40Z1wiIHhcbiAgICAgIHwgNSAtPiBzcHJpbnRmIFwiJS41Z1wiIHhcbiAgICAgIHwgNiAtPiBzcHJpbnRmIFwiJS42Z1wiIHhcbiAgICAgIHwgNyAtPiBzcHJpbnRmIFwiJS43Z1wiIHhcbiAgICAgIHwgOCAtPiBzcHJpbnRmIFwiJS44Z1wiIHhcbiAgICAgIHwgOSAtPiBzcHJpbnRmIFwiJS45Z1wiIHhcbiAgICAgIHwgMTAgLT4gc3ByaW50ZiBcIiUuMTBnXCIgeFxuICAgICAgfCAxMSAtPiBzcHJpbnRmIFwiJS4xMWdcIiB4XG4gICAgICB8IDEyIC0+IHNwcmludGYgXCIlLjEyZ1wiIHhcbiAgICAgIHwgMTMgLT4gc3ByaW50ZiBcIiUuMTNnXCIgeFxuICAgICAgfCAxNCAtPiBzcHJpbnRmIFwiJS4xNGdcIiB4XG4gICAgICB8IDE1IC0+IHNwcmludGYgXCIlLjE1Z1wiIHhcbiAgICAgIHwgMTYgLT4gc3ByaW50ZiBcIiUuMTZnXCIgeFxuICAgICAgfCBfIC0+IHNwcmludGYgXCIlLjE3Z1wiIHhcbiAgaW5cbiAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgcztcbiAgaWYgZmxvYXRfbmVlZHNfcGVyaW9kIHMgdGhlblxuICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwiLjBcIlxuXG4oKiB1c2VkIGJ5IGF0ZGdlbiAqKVxubGV0IHdyaXRlX2Zsb2F0X3ByZWMgc2lnbmlmaWNhbnRfZmlndXJlcyBvYiB4ID1cbiAgbWF0Y2ggY2xhc3NpZnlfZmxvYXQgeCB3aXRoXG4gICAgRlBfbmFuIC0+XG4gICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIk5hTlwiXG4gIHwgRlBfaW5maW5pdGUgLT5cbiAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIChpZiB4ID4gMC4gdGhlbiBcIkluZmluaXR5XCIgZWxzZSBcIi1JbmZpbml0eVwiKVxuICB8IF8gLT5cbiAgICAgIHdyaXRlX25vcm1hbF9mbG9hdF9wcmVjIHNpZ25pZmljYW50X2ZpZ3VyZXMgb2IgeFxuXG5sZXQganNvbl9zdHJpbmdfb2ZfZmxvYXQgeCA9XG4gIGxldCBvYiA9IEJ1ZmZlci5jcmVhdGUgMjAgaW5cbiAgd3JpdGVfZmxvYXQgb2IgeDtcbiAgQnVmZmVyLmNvbnRlbnRzIG9iXG5cblxubGV0IHdyaXRlX3N0ZF9mbG9hdCBvYiB4ID1cbiAgbWF0Y2ggY2xhc3NpZnlfZmxvYXQgeCB3aXRoXG4gICAgRlBfbmFuIC0+XG4gICAgICBqc29uX2Vycm9yIFwiTmFOIHZhbHVlIG5vdCBhbGxvd2VkIGluIHN0YW5kYXJkIEpTT05cIlxuICB8IEZQX2luZmluaXRlIC0+XG4gICAgICBqc29uX2Vycm9yXG4gICAgICAgIChpZiB4ID4gMC4gdGhlblxuICAgICAgICAgICBcIkluZmluaXR5IHZhbHVlIG5vdCBhbGxvd2VkIGluIHN0YW5kYXJkIEpTT05cIlxuICAgICAgICAgZWxzZVxuICAgICAgICAgICBcIi1JbmZpbml0eSB2YWx1ZSBub3QgYWxsb3dlZCBpbiBzdGFuZGFyZCBKU09OXCIpXG4gIHwgXyAtPlxuICAgICAgbGV0IHMxID0gUHJpbnRmLnNwcmludGYgXCIlLjE2Z1wiIHggaW5cbiAgICAgIGxldCBzID1cbiAgICAgICAgaWYgZmxvYXRfb2Zfc3RyaW5nIHMxID0geCB0aGVuIHMxXG4gICAgICAgIGVsc2UgUHJpbnRmLnNwcmludGYgXCIlLjE3Z1wiIHhcbiAgICAgIGluXG4gICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBzO1xuICAgICAgaWYgZmxvYXRfbmVlZHNfcGVyaW9kIHMgdGhlblxuICAgICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIi4wXCJcblxuKCogdXNlZCBieSBhdGRnZW4gKilcbmxldCB3cml0ZV9zdGRfZmxvYXRfcHJlYyBzaWduaWZpY2FudF9maWd1cmVzIG9iIHggPVxuICBtYXRjaCBjbGFzc2lmeV9mbG9hdCB4IHdpdGhcbiAgICBGUF9uYW4gLT5cbiAgICAgIGpzb25fZXJyb3IgXCJOYU4gdmFsdWUgbm90IGFsbG93ZWQgaW4gc3RhbmRhcmQgSlNPTlwiXG4gIHwgRlBfaW5maW5pdGUgLT5cbiAgICAgIGpzb25fZXJyb3JcbiAgICAgICAgKGlmIHggPiAwLiB0aGVuXG4gICAgICAgICAgIFwiSW5maW5pdHkgdmFsdWUgbm90IGFsbG93ZWQgaW4gc3RhbmRhcmQgSlNPTlwiXG4gICAgICAgICBlbHNlXG4gICAgICAgICAgIFwiLUluZmluaXR5IHZhbHVlIG5vdCBhbGxvd2VkIGluIHN0YW5kYXJkIEpTT05cIilcbiAgfCBfIC0+XG4gICAgICB3cml0ZV9ub3JtYWxfZmxvYXRfcHJlYyBzaWduaWZpY2FudF9maWd1cmVzIG9iIHhcblxubGV0IHN0ZF9qc29uX3N0cmluZ19vZl9mbG9hdCB4ID1cbiAgbGV0IG9iID0gQnVmZmVyLmNyZWF0ZSAyMCBpblxuICB3cml0ZV9zdGRfZmxvYXQgb2IgeDtcbiAgQnVmZmVyLmNvbnRlbnRzIG9iXG5cblxubGV0IHRlc3RfZmxvYXQgKCkgPVxuICBsZXQgbCA9IFsgMC47IDEuOyAtMS4gXSBpblxuICBsZXQgbCA9IGwgQCBMaXN0Lm1hcCAoZnVuIHggLT4gMi4gKi4geCArLiAxLikgbCBpblxuICBsZXQgbCA9IGwgQCBMaXN0Lm1hcCAoZnVuIHggLT4geCAvLiBzcXJ0IDIuKSBsIGluXG4gIGxldCBsID0gbCBAIExpc3QubWFwIChmdW4geCAtPiB4ICouIHNxcnQgMy4pIGwgaW5cbiAgbGV0IGwgPSBsIEAgTGlzdC5tYXAgY29zIGwgaW5cbiAgbGV0IGwgPSBsIEAgTGlzdC5tYXAgKGZ1biB4IC0+IHggKi4gMS4yM2U1MCkgbCBpblxuICBsZXQgbCA9IGwgQCBbIGluZmluaXR5OyBuZWdfaW5maW5pdHkgXSBpblxuICBMaXN0Lml0ZXIgKFxuICAgIGZ1biB4IC0+XG4gICAgICBsZXQgcyA9IFByaW50Zi5zcHJpbnRmIFwiJS4xN2dcIiB4IGluXG4gICAgICBsZXQgeSA9IGZsb2F0X29mX3N0cmluZyBzIGluXG4gICAgICBQcmludGYucHJpbnRmIFwiJWcgJWcgJVMgJUJcXG5cIiB4IHkgcyAoeCA9IHkpXG4gIClcbiAgICBsXG5cbigqXG5sZXQgKCkgPSB0ZXN0X2Zsb2F0ICgpXG4qKVxuXG5sZXQgd3JpdGVfaW50bGl0ID0gQnVmZmVyLmFkZF9zdHJpbmdcbmxldCB3cml0ZV9mbG9hdGxpdCA9IEJ1ZmZlci5hZGRfc3RyaW5nXG5sZXQgd3JpdGVfc3RyaW5nbGl0ID0gQnVmZmVyLmFkZF9zdHJpbmdcblxubGV0IHJlYyBpdGVyMl9hdXggZl9lbHQgZl9zZXAgeCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gKClcbiAgfCB5IDo6IGwgLT5cbiAgICAgIGZfc2VwIHg7XG4gICAgICBmX2VsdCB4IHk7XG4gICAgICBpdGVyMl9hdXggZl9lbHQgZl9zZXAgeCBsXG5cbmxldCBpdGVyMiBmX2VsdCBmX3NlcCB4ID0gZnVuY3Rpb25cbiAgICBbXSAtPiAoKVxuICB8IHkgOjogbCAtPlxuICAgICAgZl9lbHQgeCB5O1xuICAgICAgaXRlcjJfYXV4IGZfZWx0IGZfc2VwIHggbFxuXG5sZXQgZl9zZXAgb2IgPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJywnXG5cbmxldCByZWMgd3JpdGVfanNvbiBvYiAoeCA6IHQpID1cbiAgbWF0Y2ggeCB3aXRoXG4gICAgICBgTnVsbCAtPiB3cml0ZV9udWxsIG9iICgpXG4gICAgfCBgQm9vbCBiIC0+IHdyaXRlX2Jvb2wgb2IgYlxuICAgIFxuIyAyNjQgXCJ3cml0ZS5tbFwiXG4gICAgfCBgSW50IGkgLT4gd3JpdGVfaW50IG9iIGlcbiAgICBcbiMgMjY3IFwid3JpdGUubWxcIlxuICAgIHwgYEludGxpdCBzIC0+IEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHNcbiAgICBcbiMgMjcwIFwid3JpdGUubWxcIlxuICAgIHwgYEZsb2F0IGYgLT4gd3JpdGVfZmxvYXQgb2IgZlxuICAgIFxuIyAyNzYgXCJ3cml0ZS5tbFwiXG4gICAgfCBgU3RyaW5nIHMgLT4gd3JpdGVfc3RyaW5nIG9iIHNcbiAgICBcbiMgMjgxIFwid3JpdGUubWxcIlxuICAgIHwgYEFzc29jIGwgLT4gd3JpdGVfYXNzb2Mgb2IgbFxuICAgIHwgYExpc3QgbCAtPiB3cml0ZV9saXN0IG9iIGxcbiAgICBcbiMgMjg0IFwid3JpdGUubWxcIlxuICAgIHwgYFR1cGxlIGwgLT4gd3JpdGVfdHVwbGUgb2IgbFxuICAgIFxuIyAyODcgXCJ3cml0ZS5tbFwiXG4gICAgfCBgVmFyaWFudCAocywgbykgLT4gd3JpdGVfdmFyaWFudCBvYiBzIG9cblxuIyAyOTAgXCJ3cml0ZS5tbFwiXG5hbmQgd3JpdGVfYXNzb2Mgb2IgbCA9XG4gIGxldCBmX2VsdCBvYiAocywgeCkgPVxuICAgIHdyaXRlX3N0cmluZyBvYiBzO1xuICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnOic7XG4gICAgd3JpdGVfanNvbiBvYiB4XG4gIGluXG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAneyc7XG4gIGl0ZXIyIGZfZWx0IGZfc2VwIG9iIGw7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnfSc7XG5cbmFuZCB3cml0ZV9saXN0IG9iIGwgPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ1snO1xuICBpdGVyMiB3cml0ZV9qc29uIGZfc2VwIG9iIGw7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnXSdcblxuIyAzMDYgXCJ3cml0ZS5tbFwiXG5hbmQgd3JpdGVfdHVwbGUgb2IgbCA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnKCc7XG4gIGl0ZXIyIHdyaXRlX2pzb24gZl9zZXAgb2IgbDtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICcpJ1xuXG4jIDMxMyBcIndyaXRlLm1sXCJcbmFuZCB3cml0ZV92YXJpYW50IG9iIHMgbyA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnPCc7XG4gIHdyaXRlX3N0cmluZyBvYiBzO1xuICAobWF0Y2ggbyB3aXRoXG4gICAgICAgTm9uZSAtPiAoKVxuICAgICB8IFNvbWUgeCAtPlxuICAgICAgICAgQnVmZmVyLmFkZF9jaGFyIG9iICc6JztcbiAgICAgICAgIHdyaXRlX2pzb24gb2IgeFxuICApO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJz4nXG5cbiMgMzI1IFwid3JpdGUubWxcIlxubGV0IHdyaXRlX3QgPSB3cml0ZV9qc29uXG5cbmxldCByZWMgd3JpdGVfc3RkX2pzb24gb2IgKHggOiB0KSA9XG4gIG1hdGNoIHggd2l0aFxuICAgICAgYE51bGwgLT4gd3JpdGVfbnVsbCBvYiAoKVxuICAgIHwgYEJvb2wgYiAtPiB3cml0ZV9ib29sIG9iIGJcbiAgICBcbiMgMzMyIFwid3JpdGUubWxcIlxuICAgIHwgYEludCBpIC0+IHdyaXRlX2ludCBvYiBpXG4gICAgXG4jIDMzNSBcIndyaXRlLm1sXCJcbiAgICB8IGBJbnRsaXQgcyAtPiBCdWZmZXIuYWRkX3N0cmluZyBvYiBzXG4gICAgXG4jIDMzOCBcIndyaXRlLm1sXCJcbiAgICB8IGBGbG9hdCBmIC0+IHdyaXRlX3N0ZF9mbG9hdCBvYiBmXG4gICAgXG4jIDM0NCBcIndyaXRlLm1sXCJcbiAgICB8IGBTdHJpbmcgcyAtPiB3cml0ZV9zdHJpbmcgb2Igc1xuICAgIFxuIyAzNDkgXCJ3cml0ZS5tbFwiXG4gICAgfCBgQXNzb2MgbCAtPiB3cml0ZV9zdGRfYXNzb2Mgb2IgbFxuICAgIHwgYExpc3QgbCAtPiB3cml0ZV9zdGRfbGlzdCBvYiBsXG4gICAgXG4jIDM1MiBcIndyaXRlLm1sXCJcbiAgICB8IGBUdXBsZSBsIC0+IHdyaXRlX3N0ZF90dXBsZSBvYiBsXG4gICAgXG4jIDM1NSBcIndyaXRlLm1sXCJcbiAgICB8IGBWYXJpYW50IChzLCBvKSAtPiB3cml0ZV9zdGRfdmFyaWFudCBvYiBzIG9cblxuIyAzNTggXCJ3cml0ZS5tbFwiXG5hbmQgd3JpdGVfc3RkX2Fzc29jIG9iIGwgPVxuICBsZXQgZl9lbHQgb2IgKHMsIHgpID1cbiAgICB3cml0ZV9zdHJpbmcgb2IgcztcbiAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJzonO1xuICAgIHdyaXRlX3N0ZF9qc29uIG9iIHhcbiAgaW5cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICd7JztcbiAgaXRlcjIgZl9lbHQgZl9zZXAgb2IgbDtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICd9JztcblxuYW5kIHdyaXRlX3N0ZF9saXN0IG9iIGwgPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ1snO1xuICBpdGVyMiB3cml0ZV9zdGRfanNvbiBmX3NlcCBvYiBsO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ10nXG5cbmFuZCB3cml0ZV9zdGRfdHVwbGUgb2IgbCA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnWyc7XG4gIGl0ZXIyIHdyaXRlX3N0ZF9qc29uIGZfc2VwIG9iIGw7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnXSdcblxuIyAzNzkgXCJ3cml0ZS5tbFwiXG5hbmQgd3JpdGVfc3RkX3ZhcmlhbnQgb2IgcyBvID1cbiAgbWF0Y2ggbyB3aXRoXG4gICAgICBOb25lIC0+IHdyaXRlX3N0cmluZyBvYiBzXG4gICAgfCBTb21lIHggLT5cbiAgICAgICAgQnVmZmVyLmFkZF9jaGFyIG9iICdbJztcbiAgICAgICAgd3JpdGVfc3RyaW5nIG9iIHM7XG4gICAgICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnLCc7XG4gICAgICAgIHdyaXRlX3N0ZF9qc29uIG9iIHg7XG4gICAgICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnXSdcblxuXG4jIDM5MSBcIndyaXRlLm1sXCJcbmxldCB0b19idWZmZXIgPyhzdWYgPSBcIlwiKSA/KHN0ZCA9IGZhbHNlKSBvYiB4ID1cbiAgaWYgc3RkIHRoZW5cbiAgICB3cml0ZV9zdGRfanNvbiBvYiB4XG4gIGVsc2VcbiAgICB3cml0ZV9qc29uIG9iIHg7XG4gIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHN1ZlxuXG5sZXQgdG9fc3RyaW5nID9idWYgPyhsZW4gPSAyNTYpID8oc3VmID0gXCJcIikgP3N0ZCB4ID1cbiAgbGV0IG9iID1cbiAgICBtYXRjaCBidWYgd2l0aFxuICAgICAgICBOb25lIC0+IEJ1ZmZlci5jcmVhdGUgbGVuXG4gICAgICB8IFNvbWUgb2IgLT5cbiAgICAgICAgICBCdWZmZXIuY2xlYXIgb2I7XG4gICAgICAgICAgb2JcbiAgaW5cbiAgdG9fYnVmZmVyIH5zdWYgP3N0ZCBvYiB4O1xuICBsZXQgcyA9IEJ1ZmZlci5jb250ZW50cyBvYiBpblxuICBCdWZmZXIuY2xlYXIgb2I7XG4gIHNcblxubGV0IHRvX2NoYW5uZWwgP2J1ZiA/KGxlbj00MDk2KSA/KHN1ZiA9IFwiXCIpID9zdGQgb2MgeCA9XG4gIGxldCBvYiA9XG4gICAgbWF0Y2ggYnVmIHdpdGhcbiAgICAgICAgTm9uZSAtPiBCdWZmZXIuY3JlYXRlIGxlblxuICAgICAgfCBTb21lIG9iIC0+IEJ1ZmZlci5jbGVhciBvYjsgb2JcbiAgaW5cbiAgdG9fYnVmZmVyIH5zdWYgP3N0ZCBvYiB4O1xuICBCdWZmZXIub3V0cHV0X2J1ZmZlciBvYyBvYjtcbiAgQnVmZmVyLmNsZWFyIG9iXG5cbmxldCB0b19vdXRwdXQgP2J1ZiA/KGxlbj00MDk2KSA/KHN1ZiA9IFwiXCIpID9zdGQgb3V0IHggPVxuICBsZXQgb2IgPVxuICAgIG1hdGNoIGJ1ZiB3aXRoXG4gICAgICAgIE5vbmUgLT4gQnVmZmVyLmNyZWF0ZSBsZW5cbiAgICAgIHwgU29tZSBvYiAtPiBCdWZmZXIuY2xlYXIgb2I7IG9iXG4gIGluXG4gIHRvX2J1ZmZlciB+c3VmID9zdGQgb2IgeDtcbiAgb3V0I291dHB1dCAoQnVmZmVyLmNvbnRlbnRzIG9iKSAwIChCdWZmZXIubGVuZ3RoIG9iKTtcbiAgQnVmZmVyLmNsZWFyIG9iXG5cbmxldCB0b19maWxlID9sZW4gP3N0ZCA/KHN1ZiA9IFwiXFxuXCIpIGZpbGUgeCA9XG4gIGxldCBvYyA9IG9wZW5fb3V0IGZpbGUgaW5cbiAgdHJ5XG4gICAgdG9fY2hhbm5lbCA/bGVuIH5zdWYgP3N0ZCBvYyB4O1xuICAgIGNsb3NlX291dCBvY1xuICB3aXRoIGUgLT5cbiAgICBjbG9zZV9vdXRfbm9lcnIgb2M7XG4gICAgcmFpc2UgZVxuXG5sZXQgc2VxX3RvX2J1ZmZlciA/KHN1ZiA9IFwiXFxuXCIpID9zdGQgb2Igc3QgPVxuICBTZXEuaXRlciAodG9fYnVmZmVyIH5zdWYgP3N0ZCBvYikgc3RcblxubGV0IHNlcV90b19zdHJpbmcgP2J1ZiA/KGxlbiA9IDI1NikgPyhzdWYgPSBcIlxcblwiKSA/c3RkIHN0ID1cbiAgbGV0IG9iID1cbiAgICBtYXRjaCBidWYgd2l0aFxuICAgICAgICBOb25lIC0+IEJ1ZmZlci5jcmVhdGUgbGVuXG4gICAgICB8IFNvbWUgb2IgLT5cbiAgICAgICAgICBCdWZmZXIuY2xlYXIgb2I7XG4gICAgICAgICAgb2JcbiAgaW5cbiAgc2VxX3RvX2J1ZmZlciB+c3VmID9zdGQgb2Igc3Q7XG4gIGxldCBzID0gQnVmZmVyLmNvbnRlbnRzIG9iIGluXG4gIEJ1ZmZlci5jbGVhciBvYjtcbiAgc1xuXG5sZXQgc2VxX3RvX2NoYW5uZWwgP2J1ZiA/KGxlbj0yMDk2KSA/KHN1ZiA9IFwiXFxuXCIpID9zdGQgb2Mgc2VxID1cbiAgbGV0IG9iID1cbiAgICBtYXRjaCBidWYgd2l0aFxuICAgICAgICBOb25lIC0+IEJ1ZmZlci5jcmVhdGUgbGVuXG4gICAgICB8IFNvbWUgb2IgLT4gQnVmZmVyLmNsZWFyIG9iOyBvYlxuICBpblxuICBTZXEuaXRlciAoZnVuIGpzb24gLT5cbiAgICB0b19idWZmZXIgfnN1ZiA/c3RkIG9iIGpzb247XG4gICAgQnVmZmVyLm91dHB1dF9idWZmZXIgb2Mgb2I7XG4gICAgQnVmZmVyLmNsZWFyIG9iO1xuICApIHNlcVxuXG5sZXQgc2VxX3RvX2ZpbGUgP2xlbiA/KHN1ZiA9IFwiXFxuXCIpID9zdGQgZmlsZSBzdCA9XG4gIGxldCBvYyA9IG9wZW5fb3V0IGZpbGUgaW5cbiAgdHJ5XG4gICAgc2VxX3RvX2NoYW5uZWwgP2xlbiB+c3VmID9zdGQgb2Mgc3Q7XG4gICAgY2xvc2Vfb3V0IG9jXG4gIHdpdGggZSAtPlxuICAgIGNsb3NlX291dF9ub2VyciBvYztcbiAgICByYWlzZSBlXG5cblxubGV0IHJlYyBzb3J0ID0gZnVuY3Rpb25cbiAgfCBgQXNzb2MgbCAtPlxuICAgICAgbGV0IGwgPSBMaXN0LnJldiAoTGlzdC5yZXZfbWFwIChmdW4gKGssIHYpIC0+IChrLCBzb3J0IHYpKSBsKSBpblxuICAgICAgYEFzc29jIChMaXN0LnN0YWJsZV9zb3J0IChmdW4gKGEsIF8pIChiLCBfKSAtPiBTdHJpbmcuY29tcGFyZSBhIGIpIGwpXG4gIHwgYExpc3QgbCAtPlxuICAgICAgYExpc3QgKExpc3QucmV2IChMaXN0LnJldl9tYXAgc29ydCBsKSlcbiAgXG4jIDQ4NSBcIndyaXRlLm1sXCJcbiAgfCBgVHVwbGUgbCAtPlxuICAgICAgYFR1cGxlIChMaXN0LnJldiAoTGlzdC5yZXZfbWFwIHNvcnQgbCkpXG4gIFxuIyA0ODkgXCJ3cml0ZS5tbFwiXG4gIHwgYFZhcmlhbnQgKGssIFNvbWUgdikgYXMgeCAtPlxuICAgICAgbGV0IHYnID0gc29ydCB2IGluXG4gICAgICBpZiB2ID09IHYnIHRoZW4geFxuICAgICAgZWxzZVxuICAgICAgICBgVmFyaWFudCAoaywgU29tZSB2JylcbiAgXG4jIDQ5NSBcIndyaXRlLm1sXCJcbiAgfCB4IC0+IHhcbiMgNjIgXCJ5b2pzb24uY3Bwby5tbFwiXG5tb2R1bGUgUHJldHR5ID1cbnN0cnVjdFxuIyAxIFwicHJldHR5Lm1sXCJcbigqXG4gICBQcmV0dHktcHJpbnQgSlNPTiBkYXRhIGluIGFuIGF0dGVtcHQgdG8gbWF4aW1pemUgcmVhZGFiaWxpdHkuXG5cbiAgIDEuIFdoYXQgZml0cyBvbiBvbmUgbGluZSBzdGF5cyBvbiBvbmUgbGluZS5cbiAgIDIuIFdoYXQgZG9lc24ndCBmaXQgb24gb25lIGxpbmUgZ2V0cyBwcmludGVkIG1vcmUgdmVydGljYWxseSBzbyBhcyB0byBub3RcbiAgICAgIGV4Y2VlZCBhIHJlYXNvbmFibGUgcGFnZSB3aWR0aCwgaWYgcG9zc2libGUuXG5cbiAgIEFycmF5cyBjb250YWluaW5nIG9ubHkgc2ltcGxlIGVsZW1lbnRzIChcImF0b21zXCIpIGFyZSBwcmV0dHktcHJpbnRlZCB3aXRoXG4gICBlbmQtb2YtbGluZSB3cmFwcGluZyBsaWtlIG9yZGluYXJ5IHRleHQ6XG5cbiAgICAgW1xuICAgICAgICBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIixcbiAgICAgICAgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCJcbiAgICAgXVxuXG4gICBPdGhlciBhcnJheXMgYXJlIHByaW50ZWQgZWl0aGVyIGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5IGRlcGVuZGluZ1xuICAgb24gd2hldGhlciB0aGV5IGZpdCBvbiBhIHNpbmdsZSBsaW5lOlxuXG4gICAgIFsgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9LCB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH0sIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfSBdXG5cbiAgIG9yXG5cbiAgICAgW1xuICAgICAgIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfSxcbiAgICAgICB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH0sXG4gICAgICAgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9LFxuICAgICAgIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfVxuICAgICBdXG4qKVxuXG5sZXQgcHBfbGlzdCBzZXAgcHB4IG91dCBsID1cbiAgbGV0IHBwX3NlcCBvdXQgKCkgPSBGb3JtYXQuZnByaW50ZiBvdXQgXCIlc0AgXCIgc2VwIGluXG4gIEZvcm1hdC5wcF9wcmludF9saXN0IH5wcF9zZXAgcHB4IG91dCBsXG5cbmxldCBpc19hdG9tICh4OiBbPiB0XSkgPVxuICBtYXRjaCB4IHdpdGhcbiAgfCBgTnVsbFxuICB8IGBCb29sIF9cbiAgfCBgSW50IF9cbiAgfCBgRmxvYXQgX1xuICB8IGBTdHJpbmcgX1xuICB8IGBJbnRsaXQgX1xuICB8IGBGbG9hdGxpdCBfXG4gIHwgYFN0cmluZ2xpdCBfXG4gIHwgYExpc3QgW11cbiAgfCBgQXNzb2MgW11cbiAgfCBgVHVwbGUgW11cbiAgfCBgVmFyaWFudCAoXywgTm9uZSkgLT4gdHJ1ZVxuICB8IGBMaXN0IF9cbiAgfCBgQXNzb2MgX1xuICB8IGBUdXBsZSBfXG4gIHwgYFZhcmlhbnQgKF8sIFNvbWUgXykgLT4gZmFsc2VcblxubGV0IGlzX2F0b21fbGlzdCBsID1cbiAgTGlzdC5mb3JfYWxsIGlzX2F0b20gbFxuXG4oKlxuICAgaW5zaWRlX2JveDogaW5kaWNhdGVzIHRoYXQgd2UncmUgYWxyZWFkeSB3aXRoaW4gYSBib3ggdGhhdCBpbXBvc2VzXG4gICBhIGNlcnRhaW4gc3R5bGUgYW5kIHdlIHNob3VsZG4ndCBjcmVhdGUgYSBuZXcgb25lLiBUaGlzIGlzIHVzZWQgZm9yXG4gICBwcmludGluZyBmaWVsZCB2YWx1ZXMgbGlrZSB0aGlzOlxuXG4gICAgIGZvbzogW1xuICAgICAgIGJhclxuICAgICBdXG5cbiAgIHJhdGhlciB0aGFuIHNvbWV0aGluZyBlbHNlIGxpa2VcblxuICAgICBmb286XG4gICAgICAgW1xuICAgICAgICAgYmFyXG4gICAgICAgXVxuKilcbmxldCByZWMgZm9ybWF0IH5pbnNpZGVfYm94IHN0ZCAob3V0OkZvcm1hdC5mb3JtYXR0ZXIpICh4OnQpIDogdW5pdCA9XG4gIG1hdGNoIHggd2l0aFxuICAgIHwgYE51bGwgLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgXCJudWxsXCJcbiAgICB8IGBCb29sIHggLT4gRm9ybWF0LnBwX3ByaW50X2Jvb2wgb3V0IHhcbiAgICBcbiMgNzggXCJwcmV0dHkubWxcIlxuICAgIHwgYEludCB4IC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IChqc29uX3N0cmluZ19vZl9pbnQgeClcbiAgICBcbiMgODEgXCJwcmV0dHkubWxcIlxuICAgIHwgYEZsb2F0IHggLT5cbiAgICAgICAgbGV0IHMgPVxuICAgICAgICAgIGlmIHN0ZCB0aGVuIHN0ZF9qc29uX3N0cmluZ19vZl9mbG9hdCB4XG4gICAgICAgICAgZWxzZSBqc29uX3N0cmluZ19vZl9mbG9hdCB4XG4gICAgICAgIGluXG4gICAgICAgIEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IHNcbiAgICBcbiMgODkgXCJwcmV0dHkubWxcIlxuICAgIHwgYFN0cmluZyBzIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IChqc29uX3N0cmluZ19vZl9zdHJpbmcgcylcbiAgICBcbiMgOTIgXCJwcmV0dHkubWxcIlxuICAgIHwgYEludGxpdCBzIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IHNcbiAgICBcbiMgMTAwIFwicHJldHR5Lm1sXCJcbiAgICB8IGBMaXN0IFtdIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IFwiW11cIlxuICAgIHwgYExpc3QgbCAtPlxuICAgICAgaWYgbm90IGluc2lkZV9ib3ggdGhlbiBGb3JtYXQuZnByaW50ZiBvdXQgXCJAWzxodjI+XCI7XG4gICAgICBpZiBpc19hdG9tX2xpc3QgbCB0aGVuXG4gICAgICAgICgqIHVzZSBsaW5lIHdyYXBwaW5nIGxpa2Ugd2Ugd291bGQgZG8gZm9yIGEgcGFyYWdyYXBoIG9mIHRleHQgKilcbiAgICAgICAgRm9ybWF0LmZwcmludGYgb3V0IFwiW0A7PDEgMD5AWzxob3Y+JWFAXUA7PDEgLTI+XVwiXG4gICAgICAgICAgKHBwX2xpc3QgXCIsXCIgKGZvcm1hdCB+aW5zaWRlX2JveDpmYWxzZSBzdGQpKSBsXG4gICAgICBlbHNlXG4gICAgICAgICgqIHByaW50IHRoZSBlbGVtZW50cyBob3Jpem9udGFsbHkgaWYgdGhleSBmaXQgb24gdGhlIGxpbmUsXG4gICAgICAgICAgIG90aGVyd2lzZSBwcmludCB0aGVtIGluIGEgY29sdW1uICopXG4gICAgICAgIEZvcm1hdC5mcHJpbnRmIG91dCBcIltAOzwxIDA+QFs8aHY+JWFAXUA7PDEgLTI+XVwiXG4gICAgICAgICAgKHBwX2xpc3QgXCIsXCIgKGZvcm1hdCB+aW5zaWRlX2JveDpmYWxzZSBzdGQpKSBsO1xuICAgICAgaWYgbm90IGluc2lkZV9ib3ggdGhlbiBGb3JtYXQuZnByaW50ZiBvdXQgXCJAXVwiO1xuICAgIHwgYEFzc29jIFtdIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IFwie31cIlxuICAgIHwgYEFzc29jIGwgLT5cbiAgICAgIGlmIG5vdCBpbnNpZGVfYm94IHRoZW4gRm9ybWF0LmZwcmludGYgb3V0IFwiQFs8aHYyPlwiO1xuICAgICAgRm9ybWF0LmZwcmludGYgb3V0IFwie0A7PDEgMD4lYUA7PDEgLTI+fVwiIChwcF9saXN0IFwiLFwiIChmb3JtYXRfZmllbGQgc3RkKSkgbDtcbiAgICAgIGlmIG5vdCBpbnNpZGVfYm94IHRoZW4gRm9ybWF0LmZwcmludGYgb3V0IFwiQF1cIjtcbiAgICBcbiMgMTE5IFwicHJldHR5Lm1sXCJcbiAgICB8IGBUdXBsZSBsIC0+XG4gICAgICAgIGlmIHN0ZCB0aGVuXG4gICAgICAgICAgZm9ybWF0IH5pbnNpZGVfYm94IHN0ZCBvdXQgKGBMaXN0IGwpXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBpZiBsID0gW10gdGhlblxuICAgICAgICAgICAgRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgXCIoKVwiXG4gICAgICAgICAgZWxzZSAoXG4gICAgICAgICAgICBpZiBub3QgaW5zaWRlX2JveCB0aGVuIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBbPGhvdjI+XCI7XG4gICAgICAgICAgICBGb3JtYXQuZnByaW50ZiBvdXQgXCIoQCwlYUA7PDAgLTI+KVwiIChwcF9saXN0IFwiLFwiIChmb3JtYXQgfmluc2lkZV9ib3g6ZmFsc2Ugc3RkKSkgbDtcbiAgICAgICAgICAgIGlmIG5vdCBpbnNpZGVfYm94IHRoZW4gRm9ybWF0LmZwcmludGYgb3V0IFwiQF1cIjtcbiAgICAgICAgICApXG4gICAgXG4jIDEzMiBcInByZXR0eS5tbFwiXG4gICAgfCBgVmFyaWFudCAocywgTm9uZSkgLT5cbiAgICAgICAgaWYgc3RkIHRoZW5cbiAgICAgICAgICBcbiMgMTM1IFwicHJldHR5Lm1sXCJcbiAgICAgICAgICBsZXQgcmVwcmVzZW50YXRpb24gPSBgU3RyaW5nIHMgaW5cbiAgICAgICAgICBcbiMgMTM5IFwicHJldHR5Lm1sXCJcbiAgICAgICAgICBmb3JtYXQgfmluc2lkZV9ib3ggc3RkIG91dCByZXByZXNlbnRhdGlvblxuICAgICAgICBlbHNlXG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgb3V0IFwiPCVzPlwiIChqc29uX3N0cmluZ19vZl9zdHJpbmcgcylcblxuICAgIHwgYFZhcmlhbnQgKHMsIFNvbWUgeCkgLT5cbiAgICAgICAgaWYgc3RkIHRoZW5cbiAgICAgICAgICBcbiMgMTQ2IFwicHJldHR5Lm1sXCJcbiAgICAgICAgICBsZXQgcmVwcmVzZW50YXRpb24gPSBgU3RyaW5nIHMgaW5cbiAgICAgICAgICBcbiMgMTUwIFwicHJldHR5Lm1sXCJcbiAgICAgICAgICBmb3JtYXQgfmluc2lkZV9ib3ggc3RkIG91dCAoYExpc3QgWyByZXByZXNlbnRhdGlvbjsgeCBdKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgbGV0IG9wID0ganNvbl9zdHJpbmdfb2Zfc3RyaW5nIHMgaW5cbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBvdXQgXCI8QFs8aHYyPiVzOiAlYUBdPlwiIG9wIChmb3JtYXQgfmluc2lkZV9ib3g6dHJ1ZSBzdGQpIHhcblxuIyAxNTYgXCJwcmV0dHkubWxcIlxuYW5kIGZvcm1hdF9maWVsZCBzdGQgb3V0IChuYW1lLCB4KSA9XG4gIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBbPGh2Mj4lczogJWFAXVwiIChqc29uX3N0cmluZ19vZl9zdHJpbmcgbmFtZSkgKGZvcm1hdCB+aW5zaWRlX2JveDp0cnVlIHN0ZCkgeFxuXG5sZXQgcHAgPyhzdGQgPSBmYWxzZSkgb3V0IHggPVxuICBGb3JtYXQuZnByaW50ZiBvdXQgXCJAWzxodjI+JWFAXVwiIChmb3JtYXQgfmluc2lkZV9ib3g6dHJ1ZSBzdGQpICh4IDo+IHQpXG5cbmxldCB0b19zdHJpbmcgP3N0ZCB4ID1cbiAgRm9ybWF0LmFzcHJpbnRmIFwiJWFcIiAocHAgP3N0ZCkgeFxuXG5sZXQgdG9fY2hhbm5lbCA/c3RkIG9jIHggPVxuICBsZXQgZm10ID0gRm9ybWF0LmZvcm1hdHRlcl9vZl9vdXRfY2hhbm5lbCBvYyBpblxuICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlYUA/XCIgKHBwID9zdGQpIHhcbiMgNjUgXCJ5b2pzb24uY3Bwby5tbFwiXG5lbmRcbiMgMSBcIm1vbm9tb3JwaGljLm1sXCJcbmxldCByZWMgcHAgZm10ID1cbiAgZnVuY3Rpb25cbiAgfCBgTnVsbCAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIGZtdCBcImBOdWxsXCJcbiAgfCBgQm9vbCB4IC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYEJvb2wgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlQlwiIHg7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDkgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYEludCB4IC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYEludCAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVkXCIgeDtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgMTUgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYEludGxpdCB4IC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYEludGxpdCAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVTXCIgeDtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgMjEgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYEZsb2F0IHggLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgRmxvYXQgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlRlwiIHg7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDMzIFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBTdHJpbmcgeCAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBTdHJpbmcgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlU1wiIHg7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDQ0IFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBBc3NvYyB4cyAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBBc3NvYyAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBbPDI+W1wiO1xuICAgIGlnbm9yZSAoTGlzdC5mb2xkX2xlZnRcbiAgICAgIChmdW4gc2VwIChrZXksIHZhbHVlKSAtPlxuICAgICAgICBpZiBzZXAgdGhlblxuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIjtAIFwiO1xuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIihAW1wiO1xuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVTXCIga2V5O1xuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIixAIFwiO1xuICAgICAgICAgIHBwIGZtdCB2YWx1ZTtcbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIjtcbiAgICAgICAgICB0cnVlKSBmYWxzZSB4cyk7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQCxdQF1cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICB8IGBMaXN0IHhzIC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYExpc3QgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAWzwyPltcIjtcbiAgICBpZ25vcmUgKExpc3QuZm9sZF9sZWZ0XG4gICAgICAoZnVuIHNlcCB4IC0+XG4gICAgICAgIGlmIHNlcCB0aGVuXG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiO0AgXCI7XG4gICAgICAgICAgcHAgZm10IHg7XG4gICAgICAgICAgdHJ1ZSkgZmFsc2UgeHMpO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkAsXUBdXCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDcxIFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBUdXBsZSB0dXAgLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgVHVwbGUgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAWzwyPltcIjtcbiAgICBpZ25vcmUgKExpc3QuZm9sZF9sZWZ0XG4gICAgICAoZnVuIHNlcCBlIC0+XG4gICAgICAgICBpZiBzZXAgdGhlblxuICAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCI7QCBcIjtcbiAgICAgICAgICAgcHAgZm10IGU7XG4gICAgICAgICAgIHRydWUpIGZhbHNlIHR1cCk7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQCxdQF1cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgODQgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYFZhcmlhbnQgKG5hbWUsIHZhbHVlKSAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBWYXJpYW50IChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiKEBbXCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiJVNcIiBuYW1lO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIixAIFwiO1xuICAgIChtYXRjaCB2YWx1ZSB3aXRoXG4gICAgICB8IE5vbmUgLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBmbXQgXCJOb25lXCJcbiAgICAgIHwgU29tZSB4IC0+XG4gICAgICAgIEZvcm1hdC5wcF9wcmludF9zdHJpbmcgZm10IFwiKFNvbWUgXCI7XG4gICAgICAgIHBwIGZtdCB4O1xuICAgICAgICBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIGZtdCBcIilcIik7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcblxuIyA5OSBcIm1vbm9tb3JwaGljLm1sXCJcbmxldCBzaG93IHggPVxuICBGb3JtYXQuYXNwcmludGYgXCIlYVwiIHBwIHhcblxubGV0IHJlYyBlcXVhbCBhIGIgPVxuICBtYXRjaCBhLCBiIHdpdGhcbiAgfCBgTnVsbCwgYE51bGwgLT4gdHJ1ZVxuICB8IGBCb29sIGEsIGBCb29sIGIgLT4gYSA9IGJcbiAgXG4jIDEwNyBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgSW50IGEsIGBJbnQgYiAtPiBhID0gYlxuICAgIFxuIyAxMTAgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgSW50bGl0IGEsIGBJbnRsaXQgYiAtPiBhID0gYlxuICAgIFxuIyAxMTMgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgRmxvYXQgYSwgYEZsb2F0IGIgLT4gYSA9IGJcbiAgICBcbiMgMTE5IFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYFN0cmluZyBhLCBgU3RyaW5nIGIgLT4gYSA9IGJcbiAgICBcbiMgMTI0IFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYEFzc29jIHhzLCBgQXNzb2MgeXMgLT5cbiAgICAgIGxldCBjb21wYXJlX2tleXMgPSBmdW4gKGtleSwgXykgKGtleScsIF8pIC0+IFN0cmluZy5jb21wYXJlIGtleSBrZXknIGluXG4gICAgICBsZXQgeHMgPSBMaXN0LnN0YWJsZV9zb3J0IGNvbXBhcmVfa2V5cyB4cyBpblxuICAgICAgbGV0IHlzID0gTGlzdC5zdGFibGVfc29ydCBjb21wYXJlX2tleXMgeXMgaW5cbiAgICAgIChtYXRjaCBMaXN0LmZvcl9hbGwyIChmdW4gKGtleSwgdmFsdWUpIChrZXknLCB2YWx1ZScpIC0+XG4gICAgICAgIG1hdGNoIGtleSA9IGtleScgd2l0aFxuICAgICAgICB8IGZhbHNlIC0+IGZhbHNlXG4gICAgICAgIHwgdHJ1ZSAtPiBlcXVhbCB2YWx1ZSB2YWx1ZScpIHhzIHlzIHdpdGhcbiAgICAgIHwgcmVzdWx0IC0+IHJlc3VsdFxuICAgICAgfCBleGNlcHRpb24gSW52YWxpZF9hcmd1bWVudCBfIC0+XG4gICAgICAgICgqIHRoZSBsaXN0cyB3ZXJlIG9mIGRpZmZlcmVudCBsZW5ndGhzLCB0aHVzIHVuZXF1YWwgKilcbiAgICAgICAgZmFsc2UpXG4gICAgXG4jIDEzNyBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBUdXBsZSB4cywgYFR1cGxlIHlzXG4gICAgXG4jIDEzOSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBMaXN0IHhzLCBgTGlzdCB5cyAtPlxuICAgICAgKG1hdGNoIExpc3QuZm9yX2FsbDIgZXF1YWwgeHMgeXMgd2l0aFxuICAgICAgfCByZXN1bHQgLT4gcmVzdWx0XG4gICAgICB8IGV4Y2VwdGlvbiBJbnZhbGlkX2FyZ3VtZW50IF8gLT5cbiAgICAgICAgKCogdGhlIGxpc3RzIHdlcmUgb2YgZGlmZmVyZW50IGxlbmd0aHMsIHRodXMgdW5lcXVhbCAqKVxuICAgICAgICBmYWxzZSlcbiAgICBcbiMgMTQ2IFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYFZhcmlhbnQgKG5hbWUsIHZhbHVlKSwgYFZhcmlhbnQgKG5hbWUnLCB2YWx1ZScpIC0+XG4gICAgICAobWF0Y2ggbmFtZSA9IG5hbWUnIHdpdGhcbiAgICAgIHwgZmFsc2UgLT4gZmFsc2VcbiAgICAgIHwgdHJ1ZSAtPlxuICAgICAgICBtYXRjaCB2YWx1ZSwgdmFsdWUnIHdpdGhcbiAgICAgICAgfCBOb25lLCBOb25lIC0+IHRydWVcbiAgICAgICAgfCBTb21lIHgsIFNvbWUgeSAtPiBlcXVhbCB4IHlcbiAgICAgICAgfCBfIC0+IGZhbHNlKVxuICAgIFxuIyAxNTUgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBfIC0+IGZhbHNlXG5cbiMgMiBcIndyaXRlMi5tbFwiXG5sZXQgcHJldHR5X3ByaW50ID9zdGQgb3V0IHggPVxuICBQcmV0dHkucHAgP3N0ZCBvdXQgeFxuXG5sZXQgcHJldHR5X3RvX3N0cmluZyA/c3RkIHggPVxuICBQcmV0dHkudG9fc3RyaW5nID9zdGQgeFxuXG5sZXQgcHJldHR5X3RvX2NoYW5uZWwgP3N0ZCBvYyB4ID1cbiAgUHJldHR5LnRvX2NoYW5uZWwgP3N0ZCBvYyB4XG5cbiMgMSBcImxpYi9yZWFkLm1sbFwiXG4gXG4gIFxuIyAyIFwibGliL3JlYWQubWxsXCJcbiAgbW9kdWxlIExleGluZyA9XG4gICAgKCpcbiAgICAgIFdlIG92ZXJyaWRlIExleGluZy5lbmdpbmUgaW4gb3JkZXIgdG8gYXZvaWQgY3JlYXRpbmcgYSBuZXcgcG9zaXRpb25cbiAgICAgIHJlY29yZCBlYWNoIHRpbWUgYSBydWxlIGlzIG1hdGNoZWQuXG4gICAgICBUaGlzIHJlZHVjZXMgdG90YWwgcGFyc2luZyB0aW1lIGJ5IGFib3V0IDMxJS5cbiAgICAqKVxuICBzdHJ1Y3RcbiAgICBpbmNsdWRlIExleGluZ1xuXG4gICAgZXh0ZXJuYWwgY19lbmdpbmUgOiBsZXhfdGFibGVzIC0+IGludCAtPiBsZXhidWYgLT4gaW50ID0gXCJjYW1sX2xleF9lbmdpbmVcIlxuXG4gICAgbGV0IGVuZ2luZSB0Ymwgc3RhdGUgYnVmID1cbiAgICAgIGxldCByZXN1bHQgPSBjX2VuZ2luZSB0Ymwgc3RhdGUgYnVmIGluXG4gICAgICAoKlxuICAgICAgaWYgcmVzdWx0ID49IDAgdGhlbiBiZWdpblxuICAgICAgICBidWYubGV4X3N0YXJ0X3AgPC0gYnVmLmxleF9jdXJyX3A7XG4gICAgICAgIGJ1Zi5sZXhfY3Vycl9wIDwtIHtidWYubGV4X2N1cnJfcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBwb3NfY251bSA9IGJ1Zi5sZXhfYWJzX3BvcyArIGJ1Zi5sZXhfY3Vycl9wb3N9O1xuICAgICAgZW5kO1xuICAgICAgKilcbiAgICAgIHJlc3VsdFxuICBlbmRcblxuICBvcGVuIFByaW50ZlxuICBvcGVuIExleGluZ1xuXG4gICgqIHNlZSBkZXNjcmlwdGlvbiBpbiBjb21tb24ubWxpICopXG4gIHR5cGUgbGV4ZXJfc3RhdGUgPSBMZXhlcl9zdGF0ZS50ID0ge1xuICAgIGJ1ZiA6IEJ1ZmZlci50O1xuICAgIG11dGFibGUgbG51bSA6IGludDtcbiAgICBtdXRhYmxlIGJvbCA6IGludDtcbiAgICBtdXRhYmxlIGZuYW1lIDogc3RyaW5nIG9wdGlvbjtcbiAgfVxuXG4gIGxldCBkZWMgYyA9XG4gICAgQ2hhci5jb2RlIGMgLSA0OFxuXG4gIGxldCBoZXggYyA9XG4gICAgbWF0Y2ggYyB3aXRoXG4gICAgICAgICcwJy4uJzknIC0+IGludF9vZl9jaGFyIGMgLSBpbnRfb2ZfY2hhciAnMCdcbiAgICAgIHwgJ2EnLi4nZicgLT4gaW50X29mX2NoYXIgYyAtIGludF9vZl9jaGFyICdhJyArIDEwXG4gICAgICB8ICdBJy4uJ0YnIC0+IGludF9vZl9jaGFyIGMgLSBpbnRfb2ZfY2hhciAnQScgKyAxMFxuICAgICAgfCBfIC0+IGFzc2VydCBmYWxzZVxuXG4gIGxldCBjdXN0b21fZXJyb3IgZGVzY3IgdiBsZXhidWYgPVxuICAgIGxldCBvZmZzID0gbGV4YnVmLmxleF9hYnNfcG9zIC0gMSBpblxuICAgIGxldCBib2wgPSB2LmJvbCBpblxuICAgIGxldCBwb3MxID0gb2ZmcyArIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIC0gYm9sIC0gMSBpblxuICAgIGxldCBwb3MyID0gbWF4IHBvczEgKG9mZnMgKyBsZXhidWYubGV4X2N1cnJfcG9zIC0gYm9sKSBpblxuICAgIGxldCBmaWxlX2xpbmUgPVxuICAgICAgbWF0Y2ggdi5mbmFtZSB3aXRoXG4gICAgICAgICAgTm9uZSAtPiBcIkxpbmVcIlxuICAgICAgICB8IFNvbWUgcyAtPlxuICAgICAgICAgICAgc3ByaW50ZiBcIkZpbGUgJXMsIGxpbmVcIiBzXG4gICAgaW5cbiAgICBsZXQgYnl0ZXMgPVxuICAgICAgaWYgcG9zMSA9IHBvczIgdGhlblxuICAgICAgICBzcHJpbnRmIFwiYnl0ZSAlaVwiIChwb3MxKzEpXG4gICAgICBlbHNlXG4gICAgICAgIHNwcmludGYgXCJieXRlcyAlaS0laVwiIChwb3MxKzEpIChwb3MyKzEpXG4gICAgaW5cbiAgICBsZXQgbXNnID0gc3ByaW50ZiBcIiVzICVpLCAlczpcXG4lc1wiIGZpbGVfbGluZSB2LmxudW0gYnl0ZXMgZGVzY3IgaW5cbiAgICBqc29uX2Vycm9yIG1zZ1xuXG5cbiAgbGV0IGxleGVyX2Vycm9yIGRlc2NyIHYgbGV4YnVmID1cbiAgICBjdXN0b21fZXJyb3JcbiAgICAgIChzcHJpbnRmIFwiJXMgJyVzJ1wiIGRlc2NyIChMZXhpbmcubGV4ZW1lIGxleGJ1ZikpXG4gICAgICB2IGxleGJ1ZlxuXG4gIGxldCByZWFkX2p1bmsgPSByZWYgKGZ1biBfIC0+IGFzc2VydCBmYWxzZSlcblxuICBsZXQgbG9uZ19lcnJvciBkZXNjciB2IGxleGJ1ZiA9XG4gICAgbGV0IGp1bmsgPSBMZXhpbmcubGV4ZW1lIGxleGJ1ZiBpblxuICAgIGxldCBleHRyYV9qdW5rID0gIXJlYWRfanVuayBsZXhidWYgaW5cbiAgICBjdXN0b21fZXJyb3JcbiAgICAgIChzcHJpbnRmIFwiJXMgJyVzJXMnXCIgZGVzY3IganVuayBleHRyYV9qdW5rKVxuICAgICAgdiBsZXhidWZcblxuICBsZXQgbWluMTAgPSBtaW5faW50IC8gMTAgLSAoaWYgbWluX2ludCBtb2QgMTAgPSAwIHRoZW4gMCBlbHNlIDEpXG4gIGxldCBtYXgxMCA9IG1heF9pbnQgLyAxMCArIChpZiBtYXhfaW50IG1vZCAxMCA9IDAgdGhlbiAwIGVsc2UgMSlcblxuICBleGNlcHRpb24gSW50X292ZXJmbG93XG5cbiAgbGV0IGV4dHJhY3RfcG9zaXRpdmVfaW50IGxleGJ1ZiA9XG4gICAgbGV0IHN0YXJ0ID0gbGV4YnVmLmxleF9zdGFydF9wb3MgaW5cbiAgICBsZXQgc3RvcCA9IGxleGJ1Zi5sZXhfY3Vycl9wb3MgaW5cbiAgICBsZXQgcyA9IGxleGJ1Zi5sZXhfYnVmZmVyIGluXG4gICAgbGV0IG4gPSByZWYgMCBpblxuICAgIGZvciBpID0gc3RhcnQgdG8gc3RvcCAtIDEgZG9cbiAgICAgIGlmICFuID49IG1heDEwIHRoZW5cbiAgICAgICAgcmFpc2UgSW50X292ZXJmbG93XG4gICAgICBlbHNlXG4gICAgICAgIG4gOj0gMTAgKiAhbiArIGRlYyAoQnl0ZXMuZ2V0IHMgaSlcbiAgICBkb25lO1xuICAgIGlmICFuIDwgMCB0aGVuXG4gICAgICByYWlzZSBJbnRfb3ZlcmZsb3dcbiAgICBlbHNlXG4gICAgICAhblxuXG4gIGxldCBtYWtlX3Bvc2l0aXZlX2ludCB2IGxleGJ1ZiA9XG4gICAgICBcbiMgMTA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgIHRyeSBgSW50IChleHRyYWN0X3Bvc2l0aXZlX2ludCBsZXhidWYpXG4gICAgICB3aXRoIEludF9vdmVyZmxvdyAtPlxuICAgICAgICBcbiMgMTA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgYEludGxpdCAobGV4ZW1lIGxleGJ1ZilcblxuICBcbiMgMTEzIFwibGliL3JlYWQubWxsXCJcbiAgbGV0IGV4dHJhY3RfbmVnYXRpdmVfaW50IGxleGJ1ZiA9XG4gICAgbGV0IHN0YXJ0ID0gbGV4YnVmLmxleF9zdGFydF9wb3MgKyAxIGluXG4gICAgbGV0IHN0b3AgPSBsZXhidWYubGV4X2N1cnJfcG9zIGluXG4gICAgbGV0IHMgPSBsZXhidWYubGV4X2J1ZmZlciBpblxuICAgIGxldCBuID0gcmVmIDAgaW5cbiAgICBmb3IgaSA9IHN0YXJ0IHRvIHN0b3AgLSAxIGRvXG4gICAgICBpZiAhbiA8PSBtaW4xMCB0aGVuXG4gICAgICAgIHJhaXNlIEludF9vdmVyZmxvd1xuICAgICAgZWxzZVxuICAgICAgICBuIDo9IDEwICogIW4gLSBkZWMgKEJ5dGVzLmdldCBzIGkpXG4gICAgZG9uZTtcbiAgICBpZiAhbiA+IDAgdGhlblxuICAgICAgcmFpc2UgSW50X292ZXJmbG93XG4gICAgZWxzZVxuICAgICAgIW5cblxuICBsZXQgbWFrZV9uZWdhdGl2ZV9pbnQgdiBsZXhidWYgPVxuICAgICAgXG4jIDEzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICB0cnkgYEludCAoZXh0cmFjdF9uZWdhdGl2ZV9pbnQgbGV4YnVmKVxuICAgICAgd2l0aCBJbnRfb3ZlcmZsb3cgLT5cbiAgICAgICAgXG4jIDEzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgIGBJbnRsaXQgKGxleGVtZSBsZXhidWYpXG5cblxuICBcbiMgMTQxIFwibGliL3JlYWQubWxsXCJcbiAgbGV0IHNldF9maWxlX25hbWUgdiBmbmFtZSA9XG4gICAgdi5mbmFtZSA8LSBmbmFtZVxuXG4gIGxldCBuZXdsaW5lIHYgbGV4YnVmID1cbiAgICB2LmxudW0gPC0gdi5sbnVtICsgMTtcbiAgICB2LmJvbCA8LSBsZXhidWYubGV4X2Fic19wb3MgKyBsZXhidWYubGV4X2N1cnJfcG9zXG5cbiAgbGV0IGFkZF9sZXhlbWUgYnVmIGxleGJ1ZiA9XG4gICAgbGV0IGxlbiA9IGxleGJ1Zi5sZXhfY3Vycl9wb3MgLSBsZXhidWYubGV4X3N0YXJ0X3BvcyBpblxuICAgIEJ1ZmZlci5hZGRfc3ViYnl0ZXMgYnVmIGxleGJ1Zi5sZXhfYnVmZmVyIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGxlblxuXG4gIGxldCBtYXBfbGV4ZW1lIGYgbGV4YnVmID1cbiAgICBsZXQgbGVuID0gbGV4YnVmLmxleF9jdXJyX3BvcyAtIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGluXG4gICAgZiAoQnl0ZXMuc3ViX3N0cmluZyBsZXhidWYubGV4X2J1ZmZlciBsZXhidWYubGV4X3N0YXJ0X3BvcyBsZW4pIDAgbGVuXG5cbiAgdHlwZSB2YXJpYW50X2tpbmQgPSBbIGBFZGd5X2JyYWNrZXQgfCBgU3F1YXJlX2JyYWNrZXQgfCBgRG91YmxlX3F1b3RlIF1cbiAgdHlwZSB0dXBsZV9raW5kID0gWyBgUGFyZW50aGVzaXMgfCBgU3F1YXJlX2JyYWNrZXQgXVxuXG5cbiMgMTYxIFwibGliL3JlYWQubWxcIlxuIyAxNjEgXCJsaWIvcmVhZC5tbFwiXG5sZXQgX19vY2FtbF9sZXhfdGFibGVzID0ge1xuICBMZXhpbmcubGV4X2Jhc2UgPVxuICAgXCJcXDAwMFxcMDAwXFwyMzZcXDI1NVxcMjM3XFwyNTVcXDAwM1xcMDAwXFwyMzlcXDI1NVxcMDE2XFwwMDBcXDI0MlxcMjU1XFwyNDNcXDI1NVxcXG4gICAgXFwyNDRcXDI1NVxcMjQ1XFwyNTVcXDAwMFxcMDAwXFwwMzFcXDAwMFxcMjQ5XFwyNTVcXDA4NVxcMDAwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAxXFwwMDBcXDAwMlxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwM1xcMDAwXFwyNTRcXDI1NVxcMDAxXFwwMDBcXDAwNFxcMDAwXFwyNTNcXDI1NVxcMDExXFwwMDBcXDI1MlxcMjU1XFwwMDNcXDAwMFxcXG4gICAgXFwwMDFcXDAwMFxcMDAzXFwwMDBcXDAwMlxcMDAwXFwwMDNcXDAwMFxcMDAwXFwwMDBcXDI1MVxcMjU1XFwwMjFcXDAwMFxcMDk3XFwwMDBcXFxuICAgIFxcMDEwXFwwMDBcXDAyMlxcMDAwXFwwMjBcXDAwMFxcMDE2XFwwMDBcXDAyMlxcMDAwXFwwMTJcXDAwMFxcMDA4XFwwMDBcXDI1MFxcMjU1XFxcbiAgICBcXDExOVxcMDAwXFwxMjlcXDAwMFxcMTM5XFwwMDBcXDE2MVxcMDAwXFwxNzFcXDAwMFxcMTgxXFwwMDBcXDE5M1xcMDAwXFwyMDlcXDAwMFxcXG4gICAgXFwyNDBcXDI1NVxcMDExXFwwMDBcXDAzOFxcMDAwXFwyNTJcXDI1NVxcMDY1XFwwMDBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMTEwXFwwMDBcXFxuICAgIFxcMjUyXFwyNTVcXDE2M1xcMDAwXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDIzNFxcMDAwXFwyNDdcXDI1NVxcMjQ4XFwyNTVcXDA0OFxcMDAxXFxcbiAgICBcXDI1MFxcMjU1XFwyNTFcXDI1NVxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDA3MVxcMDAxXFwxMjZcXDAwMVxcXG4gICAgXFwxNDlcXDAwMVxcMjQ5XFwyNTVcXDAzOVxcMDAwXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDAzOFxcMDAwXFwxODdcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjQ4XFwwMDFcXDAxNVxcMDAyXFwyNTVcXDI1NVxcMjIwXFwwMDBcXDI1M1xcMjU1XFwyNTVcXDI1NVxcMjQ1XFwwMDBcXDAzOVxcMDAyXFxcbiAgICBcXDEwOVxcMDAyXFwwMTRcXDAwMVxcMDg4XFwwMDJcXDE2NFxcMDAyXFwxODdcXDAwMlxcMjI1XFwwMDJcXDAxM1xcMDAwXFwyNTJcXDI1NVxcXG4gICAgXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMTRcXDAwMFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDMwXFwwMDBcXFxuICAgIFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDE1XFwwMDBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAxN1xcMDAxXFxcbiAgICBcXDI1MVxcMjU1XFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDE5XFwwMDBcXDI1MlxcMjU1XFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMDE1XFwwMDBcXDI1NVxcMjU1XFwwMTZcXDAwMFxcMjU1XFwyNTVcXDAwOFxcMDAxXFwwMDVcXDAwMFxcMjUzXFwyNTVcXFxuICAgIFxcMDIzXFwwMDBcXDI1NFxcMjU1XFwwMjBcXDAwMFxcMjU1XFwyNTVcXDA0NlxcMDAwXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDA0MlxcMDAwXFxcbiAgICBcXDA1MlxcMDAwXFwwNTNcXDAwMFxcMjU1XFwyNTVcXDA1M1xcMDAwXFwwNDhcXDAwMFxcMDkxXFwwMDBcXDA5MlxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMjdcXDAwMVxcMjUwXFwyNTVcXDI1MVxcMjU1XFwxMzdcXDAwMFxcMTA0XFwwMDBcXDA4OVxcMDAwXFwwODhcXDAwMFxcMTA2XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDE0M1xcMDAwXFwxMzdcXDAwMFxcMTc3XFwwMDBcXDI1NFxcMjU1XFwxODNcXDAwMFxcMTY4XFwwMDBcXDE2NlxcMDAwXFxcbiAgICBcXDE4M1xcMDAwXFwwMDJcXDAwMFxcMjUzXFwyNTVcXDE3N1xcMDAwXFwxNzJcXDAwMFxcMTg3XFwwMDBcXDAwNFxcMDAwXFwyNTJcXDI1NVxcXG4gICAgXFwwNTNcXDAwMlxcMjUxXFwyNTVcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMTAzXFwwMDFcXDI1NVxcMjU1XFwyNDhcXDAwMlxcMjU0XFwyNTVcXFxuICAgIFxcMDA2XFwwMDNcXDAzMFxcMDAzXFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDQwXFwwMDNcXDA1MFxcMDAzXFxcbiAgICBcXDA3NFxcMDAzXFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDYxXFwwMDNcXDA4NFxcMDAzXFwxMDhcXDAwM1xcXG4gICAgXFwyNDlcXDI1NVxcMjUwXFwyNTVcXDI1MVxcMjU1XFwyNDRcXDAwMFxcMTIwXFwwMDNcXDE0MlxcMDAzXFwxNzlcXDAwMFxcMTk0XFwwMDBcXFxuICAgIFxcMDE1XFwwMDBcXDI1NVxcMjU1XFwxOTBcXDAwMFxcMTg4XFwwMDBcXDE4N1xcMDAwXFwxOTNcXDAwMFxcMTgzXFwwMDBcXDE3OVxcMDAwXFxcbiAgICBcXDI1NFxcMjU1XFwxOTFcXDAwMFxcMjAxXFwwMDBcXDIwMFxcMDAwXFwxOTZcXDAwMFxcMjAzXFwwMDBcXDE5M1xcMDAwXFwxODlcXDAwMFxcXG4gICAgXFwyNTNcXDI1NVxcMTU3XFwwMDNcXDA5NVxcMDAzXFwxNzRcXDAwM1xcMTk2XFwwMDNcXDIwNlxcMDAzXFwyMTZcXDAwM1xcMjI4XFwwMDNcXFxuICAgIFxcMjM5XFwwMDNcXDA2MFxcMDAwXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMTJcXDAwNFxcMjUyXFwyNTVcXDI1M1xcMjU1XFxcbiAgICBcXDA4N1xcMDA0XFwyNTVcXDI1NVxcMTQ1XFwwMDRcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjIxXFwwMDRcXDI1NVxcMjU1XFwyMjlcXDAwMFxcXG4gICAgXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwyMzFcXDAwMFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDAyXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDAxOFxcMDAxXFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDM0XFwwMDFcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDNcXDAwMFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMzhcXDAwMVxcXG4gICAgXFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMTIwXFwwMDFcXDI1MVxcMjU1XFwyNTJcXDI1NVxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwyMDhcXDAwMFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMjExXFwwMDBcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMTg5XFwwMDBcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDEzXFwwMDFcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDA5NVxcMDAxXFwyNTJcXDI1NVxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwNTBcXDAwMVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDI2XFwwMDFcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMjMzXFwwMDBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDIyMlxcMDAwXFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDA3OVxcMDA1XFwyMzdcXDI1NVxcMjM4XFwyNTVcXDAxMFxcMDAwXFwyNDBcXDI1NVxcMDQ0XFwwMDFcXFxuICAgIFxcMjQzXFwyNTVcXDI0NFxcMjU1XFwyNDVcXDI1NVxcMjQ2XFwyNTVcXDA2MVxcMDAxXFwwMDJcXDAwNFxcMjQ5XFwyNTVcXDA0NVxcMDA1XFxcbiAgICBcXDIwOVxcMDAwXFwyMjhcXDAwMFxcMjExXFwwMDBcXDIzMlxcMDAwXFwyMjVcXDAwMFxcMjIzXFwwMDBcXDI0MFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyMzVcXDAwMFxcMjM0XFwwMDBcXDAwOFxcMDAxXFwyNTRcXDI1NVxcMDA0XFwwMDFcXDAyM1xcMDAxXFwyNTNcXDI1NVxcMDU0XFwwMDFcXFxuICAgIFxcMjUyXFwyNTVcXDAzMVxcMDAxXFwwMjlcXDAwMVxcMDMyXFwwMDFcXDAzOVxcMDAxXFwwNDlcXDAwMVxcMDQ1XFwwMDFcXDI1MVxcMjU1XFxcbiAgICBcXDA1N1xcMDAxXFwwODJcXDAwMVxcMDgwXFwwMDFcXDA3OFxcMDAxXFwwODRcXDAwMVxcMDc0XFwwMDFcXDA4NlxcMDAxXFwyNTBcXDI1NVxcXG4gICAgXFwxMTBcXDAwNVxcMDEyXFwwMDRcXDEyM1xcMDA1XFwxNTVcXDAwNVxcMTY1XFwwMDVcXDE3N1xcMDA1XFwxODdcXDAwNVxcMTk3XFwwMDVcXFxuICAgIFxcMjQxXFwyNTVcXDE5OVxcMDAxXFwwNzdcXDAwMlxcMjUzXFwyNTVcXDI1NVxcMjU1XFwxNTRcXDAwMlxcMjIyXFwwMDVcXDIwOVxcMDA1XFxcbiAgICBcXDE1NVxcMDAyXFwyMzlcXDAwNVxcMDUzXFwwMDZcXDA3NlxcMDA2XFwxMTRcXDAwNlxcMDE2XFwwMDJcXDI1MlxcMjU1XFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDE1MlxcMDA2XFwyNTJcXDI1NVxcMjUzXFwyNTVcXDIyN1xcMDA2XFwyNTVcXDI1NVxcMDg1XFwwMDdcXFxuICAgIFxcMjQ0XFwyNTVcXDI0NVxcMjU1XFwwMTFcXDAwMFxcMjQ3XFwyNTVcXDA3NlxcMDAyXFwyNTBcXDI1NVxcMjUxXFwyNTVcXDI1MlxcMjU1XFxcbiAgICBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMDMxXFwwMDJcXDI0M1xcMDA1XFwwNTFcXDAwN1xcMTAwXFwwMDFcXDExNVxcMDAxXFwxMDRcXDAwMVxcXG4gICAgXFwxMzNcXDAwMVxcMTE4XFwwMDFcXDE1NFxcMDAxXFwxNzFcXDAwMVxcMjU1XFwyNTVcXDE3M1xcMDAxXFwxNzZcXDAwMVxcMTkxXFwwMDFcXFxuICAgIFxcMTg1XFwwMDFcXDE4N1xcMDAxXFwyNTNcXDAwMVxcMjMwXFwwMDFcXDIzMFxcMDAxXFwyMzRcXDAwMVxcMjQ3XFwwMDFcXDIzN1xcMDAxXFxcbiAgICBcXDIzNFxcMDAxXFwwMDlcXDAwMlxcMDE5XFwwMDJcXDAxOVxcMDAyXFwwMTVcXDAwMlxcMDIxXFwwMDJcXDAxMVxcMDAyXFwwMDdcXDAwMlxcXG4gICAgXFwxNDJcXDAwNlxcMTUyXFwwMDZcXDExNlxcMDA3XFwxNzBcXDAwN1xcMTgwXFwwMDdcXDE5MFxcMDA3XFwyMDBcXDAwN1xcMjEwXFwwMDdcXFxuICAgIFxcMjQ4XFwyNTVcXDEyMFxcMDAyXFwxNjdcXDAwMlxcMjUzXFwyNTVcXDI1NVxcMjU1XFwyMTZcXDAwMlxcMDgyXFwwMDdcXDIyMFxcMDA3XFxcbiAgICBcXDIzNlxcMDAyXFwyNDRcXDAwN1xcMDU4XFwwMDhcXDA4MVxcMDA4XFwxMTlcXDAwOFxcMDc2XFwwMDJcXDI1MlxcMjU1XFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDE1N1xcMDA4XFwyNTJcXDI1NVxcMjUzXFwyNTVcXDIzMlxcMDA4XFwyNTVcXDI1NVxcMTM1XFwwMDJcXFxuICAgIFxcMTIwXFwwMDJcXDI1M1xcMjU1XFwxMDBcXDAwMlxcMjU0XFwyNTVcXDE4MlxcMDAyXFwyNTVcXDI1NVxcMDExXFwwMDJcXDI1NVxcMjU1XFxcbiAgICBcXDIwNFxcMDAyXFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDQ2XFwwMDJcXDI1NVxcMjU1XFwxNzhcXDAwMlxcXG4gICAgXFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDIzXFwwMDBcXDI1NVxcMjU1XFwxODNcXDAwMlxcMjUyXFwyNTVcXFxuICAgIFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMTg3XFwwMDJcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDEyMVxcMDAyXFxcbiAgICBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDE4NFxcMDAyXFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwwMTlcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMTQwXFwwMDFcXDE0NlxcMDAxXFwyNTVcXDI1NVxcMTUwXFwwMDFcXDE1MVxcMDAxXFwxNTRcXDAwMVxcMTY4XFwwMDFcXFxuICAgIFxcMTcwXFwwMDFcXDE3MVxcMDAxXFwxNzJcXDAwMVxcMTczXFwwMDFcXDE4MVxcMDAxXFwxODRcXDAwMVxcMTg1XFwwMDFcXDE4N1xcMDAxXFxcbiAgICBcXDE5MVxcMDAxXFwxOTNcXDAwMVxcMTk1XFwwMDFcXDE5NlxcMDAxXFwxOTdcXDAwMVxcMjAwXFwwMDFcXDIwM1xcMDAxXFwyMjNcXDAwMVxcXG4gICAgXFwyMjVcXDAwMVxcMjI4XFwwMDFcXDI0OVxcMDAxXFwyNTFcXDAwMVxcMDAyXFwwMDJcXDAwNFxcMDAyXFwwMTFcXDAwMlxcMDEyXFwwMDJcXFxuICAgIFxcMDEzXFwwMDJcXDAwMFxcMDAwXCI7XG4gIExleGluZy5sZXhfYmFja3RyayA9XG4gICBcIlxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDE3XFwwMDBcXDI1NVxcMjU1XFwwMTlcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDA3XFwwMDBcXDAwN1xcMDAwXFwyNTVcXDI1NVxcMDE5XFwwMDBcXDAxOVxcMDAwXFwwMTlcXDAwMFxcXG4gICAgXFwwMTlcXDAwMFxcMDE5XFwwMDBcXDAxOVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwOFxcMDAwXFwwMDhcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDlcXDAwMFxcMjU1XFwyNTVcXDAwOVxcMDAwXFwyNTVcXDI1NVxcMDA5XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMTRcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDAyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDA3XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMDAxXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMDNcXDAwMFxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMDA0XFwwMDBcXDAwM1xcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwNFxcMDAwXFwwMDRcXDAwMFxcMDA0XFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDNcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAyXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAyXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwM1xcMDAwXFwwMDNcXDAwMFxcMDA1XFwwMDBcXDAwNVxcMDAwXFwwMDVcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwM1xcMDAwXFwyNTVcXDI1NVxcMDAzXFwwMDBcXDI1NVxcMjU1XFwwMDNcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDAwMlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDE2XFwwMDBcXDI1NVxcMjU1XFwwMThcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDA3XFwwMDBcXDAwN1xcMDAwXFwyNTVcXDI1NVxcMDE4XFwwMDBcXFxuICAgIFxcMDE4XFwwMDBcXDAxOFxcMDAwXFwwMThcXDAwMFxcMDE4XFwwMDBcXDAxOFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDA4XFwwMDBcXDI1NVxcMjU1XFwwMDhcXDAwMFxcMjU1XFwyNTVcXDAwOFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDEzXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwwMDFcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwOVxcMDAwXFwyNTVcXDI1NVxcMDExXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFxcbiAgICBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDA2XFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwwMDFcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwwMDRcXDAwMFxcXG4gICAgXFwwMDNcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwM1xcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcIjtcbiAgTGV4aW5nLmxleF9kZWZhdWx0ID1cbiAgIFwiXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDA1N1xcMDAwXFwwNjBcXDAwMFxcMDAwXFwwMDBcXDA2MFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA2NVxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwNjVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNzBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwODRcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDA5NFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA5N1xcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDk3XFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMDRcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTA5XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDExM1xcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDExN1xcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjFcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyNlxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMTM4XFwwMDBcXDAwMFxcMDAwXFwxNDJcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMTU0XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMTc4XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwxODdcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxOTRcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAxXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyMzVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjM5XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI0NFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjQ5XFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjUzXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwwMDNcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwOFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDE3XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAyMlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDI4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAzMlxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDM4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDA0M1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNDdcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDUyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA1NlxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA2MFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNjRcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNjdcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwxMjFcXDAwMVxcMTI1XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxMjhcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEzNVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDE0NFxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwxOTNcXDAwMVxcMTk3XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAwXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyMDBcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwN1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMTJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyMjBcXDAwMVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwyMjZcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjMzXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjQwXFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI0NVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNDlcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDAwMlxcMDAyXFwwMDRcXDAwMlxcMDAwXFwwMDBcXDAwNVxcMDAyXFwwMDZcXDAwMlxcMDA3XFwwMDJcXDAwOFxcMDAyXFxcbiAgICBcXDAwOVxcMDAyXFwwMTBcXDAwMlxcMDExXFwwMDJcXDAxMlxcMDAyXFwwMTNcXDAwMlxcMDE0XFwwMDJcXDAxNVxcMDAyXFwwMTZcXDAwMlxcXG4gICAgXFwwMTdcXDAwMlxcMDE4XFwwMDJcXDAxOVxcMDAyXFwwMjBcXDAwMlxcMDIxXFwwMDJcXDAyMlxcMDAyXFwwMjNcXDAwMlxcMDI0XFwwMDJcXFxuICAgIFxcMDI1XFwwMDJcXDAyNlxcMDAyXFwwMjdcXDAwMlxcMDI4XFwwMDJcXDAyOVxcMDAyXFwwMzBcXDAwMlxcMDMxXFwwMDJcXDAzMlxcMDAyXFxcbiAgICBcXDAzM1xcMDAyXFwwMDNcXDAwMlwiO1xuICBMZXhpbmcubGV4X3RyYW5zID1cbiAgIFwiXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwM1xcMDAwXFwwMDRcXDAwMFxcMDAwXFwwMDBcXDAwM1xcMDAwXFwwMDNcXDAwMFxcMTM0XFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwM1xcMDAwXFwwMDBcXDAwMFxcMTM0XFwwMDBcXDA2OVxcMDAxXFwxNDZcXDAwMVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwNjlcXDAwMVxcXG4gICAgXFwxNDZcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyN1xcMDAwXFwxMzlcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAzXFwwMDBcXDAwMFxcMDAwXFwwMTJcXDAwMFxcMDAzXFwwMDBcXDE3MFxcMDAwXFwxMzRcXDAwMFxcMTc1XFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwN1xcMDAwXFwwMTFcXDAwMVxcMDY5XFwwMDFcXDE0NlxcMDAxXFwwMTRcXDAwMVxcMDEzXFwwMDBcXDA0OVxcMDAwXFwwMDVcXDAwMFxcXG4gICAgXFwwMTBcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXFxuICAgIFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwNTZcXDAwMFxcMTE4XFwwMDBcXDAwNlxcMDAwXFwxMjlcXDAwMFxcMTMwXFwwMDBcXDA1N1xcMDAwXFxcbiAgICBcXDIzN1xcMDAxXFwxMzdcXDAwMFxcMDAwXFwwMDJcXDA0OVxcMDAwXFwwMDBcXDAwMFxcMDQ4XFwwMDBcXDEzOFxcMDAwXFwxMDZcXDAwMFxcXG4gICAgXFwwNjJcXDAwMFxcMDE0XFwwMDBcXDExMFxcMDAwXFwxMDVcXDAwMFxcMDAwXFwwMDBcXDA0OVxcMDAwXFwwMTVcXDAwMFxcMDExXFwwMDBcXFxuICAgIFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFxcbiAgICBcXDAxMVxcMDAwXFwwMzBcXDAwMFxcMDQ4XFwwMDBcXDAwOFxcMDAwXFwxMTRcXDAwMFxcMjA5XFwwMDBcXDIzNlxcMDAwXFwwMDBcXDAwMVxcXG4gICAgXFwwMTNcXDAwMVxcMDI5XFwwMDBcXDAyMlxcMDAwXFwyNTVcXDI1NVxcMDQ4XFwwMDBcXDA0OFxcMDAwXFwwMTdcXDAwMFxcMDIxXFwwMDBcXFxuICAgIFxcMDI1XFwwMDBcXDAzMlxcMDAwXFwwMzNcXDAwMFxcMDM1XFwwMDBcXDAyM1xcMDAwXFwwMjdcXDAwMFxcMDE2XFwwMDBcXDAzMVxcMDAwXFxcbiAgICBcXDAyOFxcMDAwXFwwMzRcXDAwMFxcMDE5XFwwMDBcXDAyNFxcMDAwXFwwMThcXDAwMFxcMDI2XFwwMDBcXDAyMFxcMDAwXFwwMzZcXDAwMFxcXG4gICAgXFwwNDFcXDAwMFxcMDM3XFwwMDBcXDA0OFxcMDAwXFwwMDlcXDAwMFxcMDQyXFwwMDBcXDA0M1xcMDAwXFwwNDRcXDAwMFxcMDQ1XFwwMDBcXFxuICAgIFxcMDQ2XFwwMDBcXDA0N1xcMDAwXFwwNjFcXDAwMFxcMDg1XFwwMDBcXDA0OFxcMDAwXFwwMzhcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFxcbiAgICBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwNDlcXDAwMFxcXG4gICAgXFwwNjdcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXFxuICAgIFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDg2XFwwMDBcXDE0M1xcMDAwXFwyNTVcXDI1NVxcMDQwXFwwMDBcXDE0NFxcMDAwXFxcbiAgICBcXDE0NVxcMDAwXFwxNDZcXDAwMFxcMDU1XFwwMDBcXDE0OFxcMDAwXFwwNTVcXDAwMFxcMTQ5XFwwMDBcXDA0OFxcMDAwXFwwNTRcXDAwMFxcXG4gICAgXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXFxuICAgIFxcMDU0XFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFxcbiAgICBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcXG4gICAgXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDI1NVxcMjU1XFwwNDhcXDAwMFxcMTUwXFwwMDBcXFxuICAgIFxcMTUxXFwwMDBcXDE2MVxcMDAwXFwwNjZcXDAwMFxcMTU4XFwwMDBcXDA1M1xcMDAwXFwxNTlcXDAwMFxcMDUzXFwwMDBcXDE2MFxcMDAwXFxcbiAgICBcXDA1MVxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcXG4gICAgXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXFxuICAgIFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFxcbiAgICBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwxNjVcXDAwMFxcXG4gICAgXFwwNTFcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXFxuICAgIFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMTYyXFwwMDBcXDE2M1xcMDAwXFwxNjZcXDAwMFxcMDkzXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMlxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcXG4gICAgXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwyNTVcXDI1NVxcMDc3XFwwMDBcXDEwM1xcMDAwXFwxMDhcXDAwMFxcMTE2XFwwMDBcXFxuICAgIFxcMTMyXFwwMDBcXDEzNFxcMDAwXFwxMzVcXDAwMFxcMTI4XFwwMDBcXDEzOVxcMDAwXFwxMzRcXDAwMFxcMTY0XFwwMDBcXDA5M1xcMDAwXFxcbiAgICBcXDE3MVxcMDAwXFwwNzdcXDAwMFxcMTY3XFwwMDBcXDE2OFxcMDAwXFwxNjlcXDAwMFxcMTcyXFwwMDBcXDExMlxcMDAwXFwxNzNcXDAwMFxcXG4gICAgXFwxNzRcXDAwMFxcMjEwXFwwMDBcXDIyNlxcMDAwXFwyMDhcXDAwMFxcMjExXFwwMDBcXDIxMlxcMDAwXFwwNTlcXDAwMFxcMDgzXFwwMDBcXFxuICAgIFxcMTM0XFwwMDBcXDIxM1xcMDAwXFwyMTRcXDAwMFxcMjE1XFwwMDBcXDIxNlxcMDAwXFwyMThcXDAwMFxcMTQxXFwwMDBcXDIxOVxcMDAwXFxcbiAgICBcXDA5M1xcMDAwXFwyMjBcXDAwMFxcMjIxXFwwMDBcXDEyM1xcMDAwXFwyMjJcXDAwMFxcMjIzXFwwMDBcXDIyNFxcMDAwXFwxMzZcXDAwMFxcXG4gICAgXFwwOTVcXDAwMFxcMjI1XFwwMDBcXDAzNVxcMDAxXFwwNjVcXDAwMVxcMjM0XFwwMDBcXDE1NVxcMDAwXFwwMDVcXDAwMVxcMDk3XFwwMDFcXFxuICAgIFxcMjUwXFwwMDBcXDI1NVxcMjU1XFwyNTRcXDAwMFxcMDU3XFwwMDFcXDA2MVxcMDAxXFwwOTVcXDAwMVxcMDc3XFwwMDBcXDA0NFxcMDAxXFxcbiAgICBcXDA5MlxcMDAxXFwwODhcXDAwMVxcMDA5XFwwMDFcXDAyOVxcMDAxXFwwNzZcXDAwMFxcMTI0XFwwMDBcXDAzM1xcMDAxXFwwMThcXDAwMVxcXG4gICAgXFwwNzVcXDAwMFxcMDk4XFwwMDBcXDAxOVxcMDAxXFwwODVcXDAwMVxcMDg2XFwwMDFcXDA4N1xcMDAxXFwxMjBcXDAwMVxcMDg5XFwwMDFcXFxuICAgIFxcMDc0XFwwMDBcXDIyNVxcMDAwXFwwNTNcXDAwMVxcMTIxXFwwMDFcXDA3M1xcMDAwXFwwOTBcXDAwMVxcMDcyXFwwMDBcXDA3MVxcMDAwXFxcbiAgICBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcXG4gICAgXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA5OFxcMDAwXFwxMTNcXDAwMVxcMTIyXFwwMDBcXDA5MVxcMDAxXFwwNjRcXDAwMFxcMDA0XFwwMDFcXFxuICAgIFxcMDkzXFwwMDFcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OVxcMDAwXFxcbiAgICBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcXG4gICAgXFwwNzlcXDAwMFxcMTU2XFwwMDBcXDExMlxcMDAxXFwwOTRcXDAwMVxcMDk2XFwwMDFcXDA5OFxcMDAxXFwwOTlcXDAwMVxcMDQ5XFwwMDFcXFxuICAgIFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMTAwXFwwMDFcXDE1N1xcMDAwXFxcbiAgICBcXDEwMVxcMDAxXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwxODNcXDAwMFxcXG4gICAgXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXFxuICAgIFxcMTg0XFwwMDBcXDAyNFxcMDAxXFwxMTJcXDAwMVxcMjU1XFwyNTVcXDAyNVxcMDAxXFwxMDJcXDAwMVxcMTAzXFwwMDFcXDEwNVxcMDAxXFxcbiAgICBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcXG4gICAgXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXFxuICAgIFxcMTA2XFwwMDFcXDEwN1xcMDAxXFwwNDhcXDAwMVxcMDQwXFwwMDFcXDEwOFxcMDAxXFwxMDlcXDAwMVxcMTEwXFwwMDFcXDA4MFxcMDAwXFxcbiAgICBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcXG4gICAgXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMTExXFwwMDFcXFxuICAgIFxcMDI3XFwwMDFcXDI1NVxcMjU1XFwxNzFcXDAwMVxcMDMxXFwwMDFcXDE3MFxcMDAxXFwwMjNcXDAwMVxcMDgxXFwwMDBcXDA4MVxcMDAwXFxcbiAgICBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwOTJcXDAwMFxcMTY4XFwwMDFcXDA2M1xcMDAxXFwwODBcXDAwMFxcXG4gICAgXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDI0OFxcMDAwXFwxNjVcXDAwMVxcMjUyXFwwMDBcXFxuICAgIFxcMTYyXFwwMDFcXDA1OVxcMDAxXFwwNjlcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFxcbiAgICBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMjU1XFwyNTVcXDA4MVxcMDAwXFwwODFcXDAwMFxcXG4gICAgXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXFxuICAgIFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFxcbiAgICBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwMzlcXDAwMVxcMDQyXFwwMDFcXDI1NVxcMjU1XFwxNjNcXDAwMVxcXG4gICAgXFwxNjRcXDAwMVxcMTIwXFwwMDBcXDAwMlxcMDAxXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXFxuICAgIFxcMDg4XFwwMDBcXDE2NlxcMDAxXFwwNTVcXDAwMVxcMTUzXFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFxcbiAgICBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDA3XFwwMDFcXDE2N1xcMDAxXFwxNjRcXDAwMVxcMTY5XFwwMDFcXDAxNlxcMDAxXFwxNjRcXDAwMVxcXG4gICAgXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXFxuICAgIFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwNTFcXDAwMVxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFxcbiAgICBcXDA4OFxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwOTBcXDAwMFxcXG4gICAgXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXFxuICAgIFxcMDkwXFwwMDBcXDA5N1xcMDAwXFwxMzdcXDAwMVxcMTY0XFwwMDFcXDE3MlxcMDAxXFwxODVcXDAwMVxcMTM2XFwwMDFcXDE3M1xcMDAxXFxcbiAgICBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5N1xcMDAwXFwxNzlcXDAwMFxcXG4gICAgXFwxNzRcXDAwMVxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDQ2XFwwMDFcXFxuICAgIFxcMTc1XFwwMDFcXDE3NlxcMDAxXFwxODBcXDAwMFxcMTY0XFwwMDFcXDE4NFxcMDAxXFwxODFcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFxcbiAgICBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxMjRcXDAwMVxcXG4gICAgXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwxOTJcXDAwMVxcMTc4XFwwMDFcXFxuICAgIFxcMDIxXFwwMDFcXDE3OVxcMDAxXFwwOTdcXDAwMFxcMTkzXFwwMDFcXDE4MFxcMDAxXFwxODFcXDAwMVxcMTgyXFwwMDFcXDE4M1xcMDAxXFxcbiAgICBcXDE2NFxcMDAxXFwyMTZcXDAwMVxcMjU1XFwyNTVcXDA5N1xcMDAwXFwxODRcXDAwMVxcMjE2XFwwMDFcXDIwOVxcMDAxXFwwOTdcXDAwMFxcXG4gICAgXFwyMjNcXDAwMVxcMDk3XFwwMDBcXDIwOFxcMDAxXFwyMzBcXDAwMVxcMDAzXFwwMDJcXDA5N1xcMDAwXFwyMTlcXDAwMVxcMDM3XFwwMDFcXFxuICAgIFxcMjE2XFwwMDFcXDIxN1xcMDAxXFwwMDNcXDAwMlxcMjIwXFwwMDFcXDIxNlxcMDAxXFwwOTdcXDAwMFxcMDAzXFwwMDJcXDAwM1xcMDAyXFxcbiAgICBcXDIxNlxcMDAxXFwwOTdcXDAwMFxcMDAzXFwwMDJcXDA5N1xcMDAwXFwwOTZcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcXG4gICAgXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMjE2XFwwMDFcXFxuICAgIFxcMDAzXFwwMDJcXDEyNlxcMDAxXFwwMDNcXDAwMlxcMDAzXFwwMDJcXDAwM1xcMDAyXFwwMDNcXDAwMlxcMDk5XFwwMDBcXDA5OVxcMDAwXFxcbiAgICBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTdcXDAwMFxcMDAzXFwwMDJcXDIxOFxcMDAxXFwyNTBcXDAwMVxcXG4gICAgXFwwMDNcXDAwMlxcMDAzXFwwMDJcXDA5N1xcMDAwXFwwMDNcXDAwMlxcMTI0XFwwMDFcXDEyNFxcMDAxXFwwOTdcXDAwMFxcMDAzXFwwMDJcXFxuICAgIFxcMjIxXFwwMDFcXDAwM1xcMDAyXFwyNTNcXDAwMVxcMDAzXFwwMDJcXDAwM1xcMDAyXFwwMDNcXDAwMlxcMDk3XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwM1xcMDAyXFwxOTZcXDAwMVxcMDk3XFwwMDBcXDAwM1xcMDAyXFwwOTdcXDAwMFxcMDk2XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcXG4gICAgXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXFxuICAgIFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMjM1XFwwMDFcXDAwM1xcMDAyXFxcbiAgICBcXDI0MVxcMDAxXFwwMDNcXDAwMlxcMjU1XFwwMDFcXDI0MlxcMDAxXFwwMDNcXDAwMlxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcXG4gICAgXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXFxuICAgIFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwyNDZcXDAwMVxcMTI5XFwwMDFcXDEyOVxcMDAxXFxcbiAgICBcXDIyOFxcMDAxXFwwMDNcXDAwMlxcMTk2XFwwMDFcXDAwM1xcMDAyXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcXG4gICAgXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDAwM1xcMDAyXFwxOThcXDAwMVxcMDAzXFwwMDJcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXFxuICAgIFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMDAzXFwwMDJcXDAwM1xcMDAyXFwwMDNcXDAwMlxcMTk2XFwwMDFcXDIzNFxcMDAxXFxcbiAgICBcXDEzNFxcMDAxXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcXG4gICAgXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwMDBcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXFxuICAgIFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFxcbiAgICBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcXG4gICAgXFwxODJcXDAwMFxcMTgyXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAxXFwwMDFcXDE3N1xcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXFxuICAgIFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFxcbiAgICBcXDE4OFxcMDAwXFwwMDBcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcXG4gICAgXFwyMDFcXDAwMVxcMjI3XFwwMDFcXDAwMFxcMDAwXFwxOTFcXDAwMFxcMjA2XFwwMDFcXDEyM1xcMDAxXFwxODlcXDAwMFxcMTkwXFwwMDBcXFxuICAgIFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFxcbiAgICBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcXG4gICAgXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE4OVxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXFxuICAgIFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5NVxcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFxcbiAgICBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOThcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjQ4XFwwMDFcXDE5NlxcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXFxuICAgIFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5NlxcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFxcbiAgICBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDIwMlxcMDAwXFwyMjdcXDAwMFxcXG4gICAgXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXFxuICAgIFxcMjI3XFwwMDBcXDIwNVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwM1xcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFxcbiAgICBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIyNlxcMDAwXFwxOTVcXDAwMVxcXG4gICAgXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXFxuICAgIFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMzJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDZcXDAwMFxcMjIxXFwwMDFcXDIzOVxcMDAxXFxcbiAgICBcXDI1NFxcMDAxXFwwMDBcXDAwMFxcMjA3XFwwMDBcXDI0NFxcMDAxXFwwMDBcXDAwMFxcMjI1XFwwMDBcXDIwM1xcMDAwXFwyMDRcXDAwMFxcXG4gICAgXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXFxuICAgIFxcMjMyXFwwMDBcXDAwMFxcMDAwXFwyMzJcXDAwMFxcMDAwXFwwMDBcXDIyNVxcMDAxXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFxcbiAgICBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMTdcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIyNVxcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXFxuICAgIFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMzBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMjMwXFwwMDBcXDAwMFxcMDAwXFwyMjhcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXFxuICAgIFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFxcbiAgICBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcXG4gICAgXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXFxuICAgIFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwwMDBcXDAwMFxcMjI4XFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFxcbiAgICBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDE4NlxcMDAwXFwyMzFcXDAwMFxcXG4gICAgXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXFxuICAgIFxcMjMxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjQxXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDExM1xcMDAxXFwwMDBcXDAwMFxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcXG4gICAgXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXFxuICAgIFxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMDAwXFwwMDBcXDExMlxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTkzXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwxMTJcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNDBcXDAwMFxcMjAwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDAwMFxcMDAwXFwyNDZcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwwMDBcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyMzhcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNDVcXDAwMFxcMDAwXFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwwNjlcXDAwMVxcMDcwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDY5XFwwMDFcXDA3NlxcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXFxuICAgIFxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNjlcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDc4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMDRcXDAwMVxcMDczXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA3OVxcMDAxXFwwMDBcXDAwMFxcMDcxXFwwMDFcXDA3NlxcMDAxXFxcbiAgICBcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcXG4gICAgXFwwNzdcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNzJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDI0M1xcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDA4MFxcMDAxXFwxMTlcXDAwMVxcMDAwXFwwMDBcXDExOVxcMDAxXFwwMDBcXDAwMFxcMDgxXFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcXG4gICAgXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNzRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFxcbiAgICBcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMDgzXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA4MlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMTE1XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDg0XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTE3XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDExN1xcMDAxXFwwMDBcXDAwMFxcMDc1XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcXG4gICAgXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXFxuICAgIFxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDExNVxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcXG4gICAgXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXFxuICAgIFxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFxcbiAgICBcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwxMjhcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXFxuICAgIFxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDE4NVxcMDAxXFwwMDBcXDAwMFxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFxcbiAgICBcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXFxuICAgIFxcMTg0XFwwMDFcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDY4XFwwMDFcXFxuICAgIFxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI3XFwwMDFcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDE4NFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMTI3XFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXFxuICAgIFxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEzMVxcMDAxXFwxMzFcXDAwMVxcXG4gICAgXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXFxuICAgIFxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcXG4gICAgXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMzFcXDAwMVxcMTMxXFwwMDFcXFxuICAgIFxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcXG4gICAgXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXFxuICAgIFxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFxcbiAgICBcXDEyOFxcMDAxXFwxOTFcXDAwMVxcMTQyXFwwMDFcXDE5MVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE5MFxcMDAxXFwxOTBcXDAwMVxcXG4gICAgXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXFxuICAgIFxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFxcbiAgICBcXDE4NlxcMDAxXFwxODZcXDAwMVxcMDAwXFwwMDBcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcXG4gICAgXFwxMjhcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTQxXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNDFcXDAwMVxcMDAwXFwwMDBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQ2XFwwMDFcXDE0N1xcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTQ2XFwwMDFcXDE1NFxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcXG4gICAgXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMFxcMDAxXFwxNDZcXDAwMVxcMDAwXFwwMDBcXDE1M1xcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNzdcXDAwMVxcMTUwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMjAwXFwwMDFcXDE1NlxcMDAxXFwwMDBcXDAwMFxcMTQ4XFwwMDFcXDE1NFxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXFxuICAgIFxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwxNDlcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwxMzlcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNTdcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTU4XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFxcbiAgICBcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDIwMFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwxNTFcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMjAwXFwwMDFcXDE4N1xcMDAxXFwwMDBcXDAwMFxcMTYwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE1OVxcMDAxXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDIwMFxcMDAxXFwxOTlcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMTYxXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMTUyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxODlcXDAwMVxcMDAwXFwwMDBcXDE4OVxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwxODdcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcXG4gICAgXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXFxuICAgIFxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFxcbiAgICBcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcXG4gICAgXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXFxuICAgIFxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFxcbiAgICBcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcXG4gICAgXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDBcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFxcbiAgICBcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcXG4gICAgXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTQ1XFwwMDFcXDIwMFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAwXFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDIwMFxcMDAxXFwxOTlcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcXG4gICAgXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFxcbiAgICBcXDIwM1xcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcXG4gICAgXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcXG4gICAgXFwyMDNcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAwXFwwMDFcXFxuICAgIFxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFxcbiAgICBcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcXG4gICAgXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMjE0XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMTNcXDAwMVxcMDAwXFwwMDBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMTNcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMTFcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXCI7XG4gIExleGluZy5sZXhfY2hlY2sgPVxuICAgXCJcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAzXFwwMDBcXDAwMFxcMDAwXFwxMzRcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAzXFwwMDBcXDI1NVxcMjU1XFwxMzRcXDAwMFxcMDY5XFwwMDFcXDE0NlxcMDAxXFwwNTdcXDAwMFxcMjU1XFwyNTVcXDA2OVxcMDAxXFxcbiAgICBcXDE0NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTI1XFwwMDBcXDEzOFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDNcXDAwMFxcMTY5XFwwMDBcXDEzNFxcMDAwXFwxNzRcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDAxMFxcMDAxXFwwNjlcXDAwMVxcMTQ2XFwwMDFcXDAxMlxcMDAxXFwwMDBcXDAwMFxcMDEwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwNVxcMDAwXFwxMTVcXDAwMFxcMDAwXFwwMDBcXDEyNVxcMDAwXFwxMjlcXDAwMFxcMDA1XFwwMDBcXFxuICAgIFxcMjM2XFwwMDFcXDEzNlxcMDAwXFwyNTVcXDAwMVxcMDM4XFwwMDBcXDI1NVxcMjU1XFwwMTBcXDAwMFxcMTM2XFwwMDBcXDEwMlxcMDAwXFxcbiAgICBcXDA1OFxcMDAwXFwwMDBcXDAwMFxcMTA3XFwwMDBcXDEwMlxcMDAwXFwyNTVcXDI1NVxcMDExXFwwMDBcXDAwMFxcMDAwXFwwMTFcXDAwMFxcXG4gICAgXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXFxuICAgIFxcMDExXFwwMDBcXDAyOVxcMDAwXFwwMzhcXDAwMFxcMDAwXFwwMDBcXDExMVxcMDAwXFwyMDhcXDAwMFxcMjMzXFwwMDBcXDI1NVxcMDAwXFxcbiAgICBcXDAxMlxcMDAxXFwwMTVcXDAwMFxcMDE3XFwwMDBcXDA2MFxcMDAwXFwwMTFcXDAwMFxcMDEwXFwwMDBcXDAwMFxcMDAwXFwwMjBcXDAwMFxcXG4gICAgXFwwMjRcXDAwMFxcMDMxXFwwMDBcXDAzMlxcMDAwXFwwMzRcXDAwMFxcMDIyXFwwMDBcXDAyNlxcMDAwXFwwMDBcXDAwMFxcMDE0XFwwMDBcXFxuICAgIFxcMDI3XFwwMDBcXDAzM1xcMDAwXFwwMThcXDAwMFxcMDIzXFwwMDBcXDAwMFxcMDAwXFwwMTZcXDAwMFxcMDE5XFwwMDBcXDAzNVxcMDAwXFxcbiAgICBcXDA0MFxcMDAwXFwwMzZcXDAwMFxcMDM4XFwwMDBcXDAwMFxcMDAwXFwwNDFcXDAwMFxcMDQyXFwwMDBcXDA0M1xcMDAwXFwwNDRcXDAwMFxcXG4gICAgXFwwNDVcXDAwMFxcMDQ2XFwwMDBcXDA1OFxcMDAwXFwwODJcXDAwMFxcMDExXFwwMDBcXDAxM1xcMDAwXFwwMTNcXDAwMFxcMDEzXFwwMDBcXFxuICAgIFxcMDEzXFwwMDBcXDAxM1xcMDAwXFwwMTNcXDAwMFxcMDEzXFwwMDBcXDAxM1xcMDAwXFwwMTNcXDAwMFxcMDEzXFwwMDBcXDAzOVxcMDAwXFxcbiAgICBcXDA2M1xcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcXG4gICAgXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwODVcXDAwMFxcMTQwXFwwMDBcXDA2MFxcMDAwXFwwMTNcXDAwMFxcMTQzXFwwMDBcXFxuICAgIFxcMTQ0XFwwMDBcXDE0NVxcMDAwXFwwNDhcXDAwMFxcMTQ3XFwwMDBcXDA0OFxcMDAwXFwxNDhcXDAwMFxcMDM5XFwwMDBcXDA0OFxcMDAwXFxcbiAgICBcXDA0OFxcMDAwXFwwNDhcXDAwMFxcMDQ4XFwwMDBcXDA0OFxcMDAwXFwwNDhcXDAwMFxcMDQ4XFwwMDBcXDA0OFxcMDAwXFwwNDhcXDAwMFxcXG4gICAgXFwwNDhcXDAwMFxcMDQ5XFwwMDBcXDA0OVxcMDAwXFwwNDlcXDAwMFxcMDQ5XFwwMDBcXDA0OVxcMDAwXFwwNDlcXDAwMFxcMDQ5XFwwMDBcXFxuICAgIFxcMDQ5XFwwMDBcXDA0OVxcMDAwXFwwNDlcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFxcbiAgICBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDY1XFwwMDBcXDAzOVxcMDAwXFwxNDlcXDAwMFxcXG4gICAgXFwxNTBcXDAwMFxcMTU2XFwwMDBcXDA2M1xcMDAwXFwxNTdcXDAwMFxcMDUxXFwwMDBcXDE1OFxcMDAwXFwwNTFcXDAwMFxcMTU5XFwwMDBcXFxuICAgIFxcMDUwXFwwMDBcXDA1MVxcMDAwXFwwNTFcXDAwMFxcMDUxXFwwMDBcXDA1MVxcMDAwXFwwNTFcXDAwMFxcMDUxXFwwMDBcXDA1MVxcMDAwXFxcbiAgICBcXDA1MVxcMDAwXFwwNTFcXDAwMFxcMDUxXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcXG4gICAgXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1M1xcMDAwXFwwNTNcXDAwMFxcMDUzXFwwMDBcXFxuICAgIFxcMDUzXFwwMDBcXDA1M1xcMDAwXFwwNTNcXDAwMFxcMDUzXFwwMDBcXDA1M1xcMDAwXFwwNTNcXDAwMFxcMDUzXFwwMDBcXDE1NVxcMDAwXFxcbiAgICBcXDA1MFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcXG4gICAgXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwxNjFcXDAwMFxcMTYyXFwwMDBcXDE1NVxcMDAwXFwwOTFcXDAwMFxcMDY1XFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDA1NVxcMDAwXFwwNTVcXDAwMFxcMDU1XFwwMDBcXDA1NVxcMDAwXFwwNTVcXDAwMFxcMDU1XFwwMDBcXDA1NVxcMDAwXFxcbiAgICBcXDA1NVxcMDAwXFwwNTVcXDAwMFxcMDU1XFwwMDBcXDA1N1xcMDAwXFwwNjhcXDAwMFxcMTAyXFwwMDBcXDEwN1xcMDAwXFwxMTVcXDAwMFxcXG4gICAgXFwxMzFcXDAwMFxcMTMzXFwwMDBcXDEzM1xcMDAwXFwxMjVcXDAwMFxcMTM4XFwwMDBcXDEzM1xcMDAwXFwxNjNcXDAwMFxcMDk0XFwwMDBcXFxuICAgIFxcMTY1XFwwMDBcXDA2OFxcMDAwXFwxNjZcXDAwMFxcMTY3XFwwMDBcXDE2OFxcMDAwXFwxNzFcXDAwMFxcMTExXFwwMDBcXDE3MlxcMDAwXFxcbiAgICBcXDE3M1xcMDAwXFwyMDZcXDAwMFxcMjAzXFwwMDBcXDIwN1xcMDAwXFwyMTBcXDAwMFxcMjExXFwwMDBcXDA1OFxcMDAwXFwwODJcXDAwMFxcXG4gICAgXFwxMzNcXDAwMFxcMjEyXFwwMDBcXDIxM1xcMDAwXFwyMTRcXDAwMFxcMjE1XFwwMDBcXDIxN1xcMDAwXFwxNDBcXDAwMFxcMjE4XFwwMDBcXFxuICAgIFxcMDk3XFwwMDBcXDIxOVxcMDAwXFwyMjBcXDAwMFxcMTE5XFwwMDBcXDIyMVxcMDAwXFwyMjJcXDAwMFxcMjIzXFwwMDBcXDEzM1xcMDAwXFxcbiAgICBcXDA5MVxcMDAwXFwyMDNcXDAwMFxcMDM0XFwwMDFcXDA2MlxcMDAxXFwyMzNcXDAwMFxcMTUyXFwwMDBcXDAwMVxcMDAxXFwwODBcXDAwMVxcXG4gICAgXFwyNDdcXDAwMFxcMDYwXFwwMDBcXDI1MVxcMDAwXFwwNTRcXDAwMVxcMDU4XFwwMDFcXDA4MVxcMDAxXFwwNjhcXDAwMFxcMDQxXFwwMDFcXFxuICAgIFxcMDgyXFwwMDFcXDA4M1xcMDAxXFwwMDZcXDAwMVxcMDI2XFwwMDFcXDA2OFxcMDAwXFwxMTlcXDAwMFxcMDMwXFwwMDFcXDAxNVxcMDAxXFxcbiAgICBcXDA2OFxcMDAwXFwwOTRcXDAwMFxcMDE1XFwwMDFcXDA4NFxcMDAxXFwwODVcXDAwMVxcMDg2XFwwMDFcXDA3MVxcMDAxXFwwODhcXDAwMVxcXG4gICAgXFwwNjhcXDAwMFxcMjAzXFwwMDBcXDA1MFxcMDAxXFwwNzFcXDAwMVxcMDY4XFwwMDBcXDA4OVxcMDAxXFwwNjhcXDAwMFxcMDY4XFwwMDBcXFxuICAgIFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFxcbiAgICBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDk3XFwwMDBcXDA3NlxcMDAxXFwxMTlcXDAwMFxcMDkwXFwwMDFcXDA2M1xcMDAwXFwwMDFcXDAwMVxcXG4gICAgXFwwOTJcXDAwMVxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDc4XFwwMDBcXFxuICAgIFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFxcbiAgICBcXDA3OFxcMDAwXFwxNTJcXDAwMFxcMDc2XFwwMDFcXDA5M1xcMDAxXFwwOTVcXDAwMVxcMDk3XFwwMDFcXDA5OFxcMDAxXFwwNDVcXDAwMVxcXG4gICAgXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwOTlcXDAwMVxcMTUyXFwwMDBcXFxuICAgIFxcMTAwXFwwMDFcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDE4MFxcMDAwXFxcbiAgICBcXDE4MFxcMDAwXFwxODBcXDAwMFxcMTgwXFwwMDBcXDE4MFxcMDAwXFwxODBcXDAwMFxcMTgwXFwwMDBcXDE4MFxcMDAwXFwxODBcXDAwMFxcXG4gICAgXFwxODBcXDAwMFxcMDIwXFwwMDFcXDA3NlxcMDAxXFwwNjVcXDAwMFxcMDIwXFwwMDFcXDEwMVxcMDAxXFwxMDJcXDAwMVxcMTA0XFwwMDFcXFxuICAgIFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFxcbiAgICBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcXG4gICAgXFwxMDVcXDAwMVxcMTA2XFwwMDFcXDA0NVxcMDAxXFwwMzZcXDAwMVxcMTA3XFwwMDFcXDEwOFxcMDAxXFwxMDlcXDAwMVxcMDc5XFwwMDBcXFxuICAgIFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFxcbiAgICBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwxMTBcXDAwMVxcXG4gICAgXFwwMjZcXDAwMVxcMTIxXFwwMDFcXDE1N1xcMDAxXFwwMzBcXDAwMVxcMTU4XFwwMDFcXDAyMFxcMDAxXFwwODBcXDAwMFxcMDgwXFwwMDBcXFxuICAgIFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA5MVxcMDAwXFwxNTlcXDAwMVxcMDYyXFwwMDFcXDA3OVxcMDAwXFxcbiAgICBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMjQ3XFwwMDBcXDE2MFxcMDAxXFwyNTFcXDAwMFxcXG4gICAgXFwxNjFcXDAwMVxcMDU4XFwwMDFcXDA2OFxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXFxuICAgIFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwOTRcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFxcbiAgICBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcXG4gICAgXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXFxuICAgIFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDAzNlxcMDAxXFwwNDFcXDAwMVxcMDk3XFwwMDBcXDE2MlxcMDAxXFxcbiAgICBcXDE2M1xcMDAxXFwxMTlcXDAwMFxcMDAxXFwwMDFcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcXG4gICAgXFwwODdcXDAwMFxcMTY1XFwwMDFcXDA1NFxcMDAxXFwxNTJcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXFxuICAgIFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwMDZcXDAwMVxcMTY2XFwwMDFcXDE2N1xcMDAxXFwxNjhcXDAwMVxcMDE1XFwwMDFcXDE2OVxcMDAxXFxcbiAgICBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcXG4gICAgXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA1MFxcMDAxXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXFxuICAgIFxcMDg3XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OVxcMDAwXFxcbiAgICBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcXG4gICAgXFwwODlcXDAwMFxcMDk1XFwwMDBcXDEzM1xcMDAxXFwxNzBcXDAwMVxcMTcxXFwwMDFcXDE1NFxcMDAxXFwxMzNcXDAwMVxcMTcyXFwwMDFcXFxuICAgIFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDk1XFwwMDBcXDE3NlxcMDAwXFxcbiAgICBcXDE3M1xcMDAxXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwNDVcXDAwMVxcXG4gICAgXFwxNzRcXDAwMVxcMTc1XFwwMDFcXDE3NlxcMDAwXFwxNzZcXDAwMVxcMTU0XFwwMDFcXDE3NlxcMDAwXFwxNzZcXDAwMFxcMTc2XFwwMDBcXFxuICAgIFxcMTc2XFwwMDBcXDE3NlxcMDAwXFwxNzZcXDAwMFxcMTc2XFwwMDBcXDE3NlxcMDAwXFwxNzZcXDAwMFxcMTc2XFwwMDBcXDEyMlxcMDAxXFxcbiAgICBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDE0OFxcMDAxXFwxNzdcXDAwMVxcXG4gICAgXFwwMjBcXDAwMVxcMTc4XFwwMDFcXDA5OFxcMDAwXFwxNDhcXDAwMVxcMTc5XFwwMDFcXDE4MFxcMDAxXFwxODFcXDAwMVxcMTgyXFwwMDFcXFxuICAgIFxcMTgzXFwwMDFcXDIxNlxcMDAxXFwxOTNcXDAwMVxcMDk1XFwwMDBcXDE1NFxcMDAxXFwyMTZcXDAwMVxcMjA1XFwwMDFcXDA5OFxcMDAwXFxcbiAgICBcXDIyMlxcMDAxXFwwOTVcXDAwMFxcMjA1XFwwMDFcXDIyOVxcMDAxXFwwMDFcXDAwMlxcMDk1XFwwMDBcXDIxOFxcMDAxXFwwMzZcXDAwMVxcXG4gICAgXFwyMTVcXDAwMVxcMjE1XFwwMDFcXDAwMlxcMDAyXFwyMThcXDAwMVxcMjE1XFwwMDFcXDA5NVxcMDAwXFwwMDRcXDAwMlxcMDA1XFwwMDJcXFxuICAgIFxcMjE2XFwwMDFcXDA5NVxcMDAwXFwwMDZcXDAwMlxcMDk1XFwwMDBcXDA5NVxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFxcbiAgICBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwyMTVcXDAwMVxcXG4gICAgXFwwMDdcXDAwMlxcMTIyXFwwMDFcXDAwOFxcMDAyXFwwMDlcXDAwMlxcMDEwXFwwMDJcXDAxMVxcMDAyXFwwOTZcXDAwMFxcMDk2XFwwMDBcXFxuICAgIFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5OFxcMDAwXFwwMTJcXDAwMlxcMjE1XFwwMDFcXDI0N1xcMDAxXFxcbiAgICBcXDAxM1xcMDAyXFwwMTRcXDAwMlxcMDk4XFwwMDBcXDAxNVxcMDAyXFwxMjVcXDAwMVxcMTI4XFwwMDFcXDA5OFxcMDAwXFwwMTZcXDAwMlxcXG4gICAgXFwyMjBcXDAwMVxcMDE3XFwwMDJcXDI1MVxcMDAxXFwwMThcXDAwMlxcMDE5XFwwMDJcXDAyMFxcMDAyXFwwOThcXDAwMFxcMTIxXFwwMDFcXFxuICAgIFxcMDIxXFwwMDJcXDE5NFxcMDAxXFwwOThcXDAwMFxcMDIyXFwwMDJcXDA5OFxcMDAwXFwwOThcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFxcbiAgICBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcXG4gICAgXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwyMzFcXDAwMVxcMDIzXFwwMDJcXFxuICAgIFxcMjM4XFwwMDFcXDAyNFxcMDAyXFwyNTFcXDAwMVxcMjM4XFwwMDFcXDAyNVxcMDAyXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFxcbiAgICBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcXG4gICAgXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDI0M1xcMDAxXFwxMjVcXDAwMVxcMTI4XFwwMDFcXFxuICAgIFxcMjI0XFwwMDFcXDAyNlxcMDAyXFwxOTdcXDAwMVxcMDI3XFwwMDJcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFxcbiAgICBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMDI4XFwwMDJcXDE5NFxcMDAxXFwwMjlcXDAwMlxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcXG4gICAgXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwMzBcXDAwMlxcMDMxXFwwMDJcXDAzMlxcMDAyXFwyMDBcXDAwMVxcMjMxXFwwMDFcXFxuICAgIFxcMTMzXFwwMDFcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFxcbiAgICBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDI1NVxcMjU1XFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcXG4gICAgXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXFxuICAgIFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFxcbiAgICBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxOTdcXDAwMVxcMTc2XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcXG4gICAgXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXFxuICAgIFxcMTg1XFwwMDBcXDI1NVxcMjU1XFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFxcbiAgICBcXDIwMFxcMDAxXFwyMjRcXDAwMVxcMjU1XFwyNTVcXDE4NVxcMDAwXFwyMDVcXDAwMVxcMTIyXFwwMDFcXDE4NVxcMDAwXFwxODVcXDAwMFxcXG4gICAgXFwxODVcXDAwMFxcMTg1XFwwMDBcXDE4NVxcMDAwXFwxODVcXDAwMFxcMTg1XFwwMDBcXDE4NVxcMDAwXFwxODVcXDAwMFxcMTg1XFwwMDBcXFxuICAgIFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFxcbiAgICBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkxXFwwMDBcXDE5MVxcMDAwXFwxOTFcXDAwMFxcMTkxXFwwMDBcXDE5MVxcMDAwXFwxOTFcXDAwMFxcXG4gICAgXFwxOTFcXDAwMFxcMTkxXFwwMDBcXDE5MVxcMDAwXFwxOTFcXDAwMFxcMTkyXFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXFxuICAgIFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5MlxcMDAwXFxcbiAgICBcXDE5M1xcMDAxXFwyNDdcXDAwMVxcMTkyXFwwMDBcXDE5MlxcMDAwXFwxOTJcXDAwMFxcMTkyXFwwMDBcXDE5MlxcMDAwXFwxOTJcXDAwMFxcXG4gICAgXFwxOTJcXDAwMFxcMTkyXFwwMDBcXDE5MlxcMDAwXFwxOTJcXDAwMFxcMTk4XFwwMDBcXDE5OFxcMDAwXFwxOThcXDAwMFxcMTk4XFwwMDBcXFxuICAgIFxcMTk4XFwwMDBcXDE5OFxcMDAwXFwxOThcXDAwMFxcMTk4XFwwMDBcXDE5OFxcMDAwXFwxOThcXDAwMFxcMTk5XFwwMDBcXDIyNlxcMDAwXFxcbiAgICBcXDIyNlxcMDAwXFwyMjZcXDAwMFxcMjI2XFwwMDBcXDIyNlxcMDAwXFwyMjZcXDAwMFxcMjI2XFwwMDBcXDIyNlxcMDAwXFwyMjZcXDAwMFxcXG4gICAgXFwyMjZcXDAwMFxcMTk5XFwwMDBcXDEyNVxcMDAxXFwxMjhcXDAwMVxcMTk5XFwwMDBcXDE5OVxcMDAwXFwxOTlcXDAwMFxcMTk5XFwwMDBcXFxuICAgIFxcMTk5XFwwMDBcXDE5OVxcMDAwXFwxOTlcXDAwMFxcMTk5XFwwMDBcXDE5OVxcMDAwXFwxOTlcXDAwMFxcMjA0XFwwMDBcXDE5NFxcMDAxXFxcbiAgICBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcXG4gICAgXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIzMVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE5OVxcMDAwXFwyMjBcXDAwMVxcMjM4XFwwMDFcXFxuICAgIFxcMjUxXFwwMDFcXDI1NVxcMjU1XFwxOTlcXDAwMFxcMjQzXFwwMDFcXDI1NVxcMjU1XFwyMDRcXDAwMFxcMjA1XFwwMDBcXDIwNVxcMDAwXFxcbiAgICBcXDIwNVxcMDAwXFwyMDVcXDAwMFxcMjA1XFwwMDBcXDIwNVxcMDAwXFwyMDVcXDAwMFxcMjA1XFwwMDBcXDIwNVxcMDAwXFwyMDVcXDAwMFxcXG4gICAgXFwyMjVcXDAwMFxcMjU1XFwyNTVcXDIyNVxcMDAwXFwyNTVcXDI1NVxcMjI0XFwwMDFcXDIyNVxcMDAwXFwyMjVcXDAwMFxcMjI1XFwwMDBcXFxuICAgIFxcMjI1XFwwMDBcXDIyNVxcMDAwXFwyMjVcXDAwMFxcMjI1XFwwMDBcXDIyNVxcMDAwXFwyMjVcXDAwMFxcMjI1XFwwMDBcXDIwNVxcMDAwXFxcbiAgICBcXDE5N1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjA0XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcXG4gICAgXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwMFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIyOFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyMjhcXDAwMFxcMjU1XFwyNTVcXDIyN1xcMDAwXFwyMjhcXDAwMFxcMjI4XFwwMDBcXDIyOFxcMDAwXFwyMjhcXDAwMFxcXG4gICAgXFwyMjhcXDAwMFxcMjI4XFwwMDBcXDIyOFxcMDAwXFwyMjhcXDAwMFxcMjI4XFwwMDBcXDIyOFxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXFxuICAgIFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFxcbiAgICBcXDIzMFxcMDAwXFwyMzBcXDAwMFxcMjMwXFwwMDBcXDIzMFxcMDAwXFwyMzBcXDAwMFxcMjMwXFwwMDBcXDIzMFxcMDAwXFwyMzBcXDAwMFxcXG4gICAgXFwyMzBcXDAwMFxcMjMwXFwwMDBcXDI1NVxcMjU1XFwyMjdcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXFxuICAgIFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMTg1XFwwMDBcXDIzMlxcMDAwXFxcbiAgICBcXDIzMlxcMDAwXFwyMzJcXDAwMFxcMjMyXFwwMDBcXDIzMlxcMDAwXFwyMzJcXDAwMFxcMjMyXFwwMDBcXDIzMlxcMDAwXFwyMzJcXDAwMFxcXG4gICAgXFwyMzJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMzdcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDc3XFwwMDFcXDI1NVxcMjU1XFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFxcbiAgICBcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwxMTNcXDAwMVxcMTEzXFwwMDFcXDExM1xcMDAxXFwxMTNcXDAwMVxcXG4gICAgXFwxMTNcXDAwMVxcMTEzXFwwMDFcXDExM1xcMDAxXFwxMTNcXDAwMVxcMTEzXFwwMDFcXDExM1xcMDAxXFwyNTVcXDI1NVxcMDc3XFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxOTJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFxcbiAgICBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcXG4gICAgXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXFxuICAgIFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDA3N1xcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIzN1xcMDAwXFwxOTlcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcXG4gICAgXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXFxuICAgIFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFxcbiAgICBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjU1XFwyNTVcXDI0MlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI0MFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXFxuICAgIFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFxcbiAgICBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcXG4gICAgXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjQyXFwwMDBcXDI1NVxcMjU1XFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFxcbiAgICBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcXG4gICAgXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXFxuICAgIFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDIzN1xcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI0NVxcMDAwXFwyNTVcXDI1NVxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDA2NlxcMDAxXFwwNjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMDc5XFwwMDFcXDA3OVxcMDAxXFwwNzlcXDAwMVxcXG4gICAgXFwwNzlcXDAwMVxcMDc5XFwwMDFcXDA3OVxcMDAxXFwwNzlcXDAwMVxcMDc5XFwwMDFcXDA3OVxcMDAxXFwwNzlcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA2NlxcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA3OVxcMDAxXFwwNjZcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDY2XFwwMDFcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMDY2XFwwMDFcXFxuICAgIFxcMDY2XFwwMDFcXDA2NlxcMDAxXFwwNjZcXDAwMVxcMDY2XFwwMDFcXDA2NlxcMDAxXFwwNjZcXDAwMVxcMDY2XFwwMDFcXDA2NlxcMDAxXFxcbiAgICBcXDA2NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjQyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMDY2XFwwMDFcXDExMlxcMDAxXFwyNTVcXDI1NVxcMTEyXFwwMDFcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMTEyXFwwMDFcXDExMlxcMDAxXFxcbiAgICBcXDExMlxcMDAxXFwxMTJcXDAwMVxcMTEyXFwwMDFcXDExMlxcMDAxXFwxMTJcXDAwMVxcMTEyXFwwMDFcXDExMlxcMDAxXFwxMTJcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXFxuICAgIFxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwwNjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDY2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxMTRcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMTVcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMTE1XFwwMDFcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMTE1XFwwMDFcXDExNVxcMDAxXFwxMTVcXDAwMVxcMTE1XFwwMDFcXDExNVxcMDAxXFxcbiAgICBcXDExNVxcMDAxXFwxMTVcXDAwMVxcMTE1XFwwMDFcXDExNVxcMDAxXFwxMTVcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcXG4gICAgXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMTE0XFwwMDFcXDExN1xcMDAxXFwxMTdcXDAwMVxcMTE3XFwwMDFcXDExN1xcMDAxXFwxMTdcXDAwMVxcMTE3XFwwMDFcXDExN1xcMDAxXFxcbiAgICBcXDExN1xcMDAxXFwxMTdcXDAwMVxcMTE3XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcXG4gICAgXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOVxcMDAxXFwxMTlcXDAwMVxcMTE5XFwwMDFcXFxuICAgIFxcMTE5XFwwMDFcXDExOVxcMDAxXFwxMTlcXDAwMVxcMTE5XFwwMDFcXDExOVxcMDAxXFwxMTlcXDAwMVxcMTE5XFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDEyNlxcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcXG4gICAgXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEyNlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDEyOVxcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEyOVxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMTU1XFwwMDFcXDI1NVxcMjU1XFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXFxuICAgIFxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcXG4gICAgXFwxNTVcXDAwMVxcMjU1XFwyNTVcXDEyNlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTI2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEyNlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEyOVxcMDAxXFwxMjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNjZcXDAwMVxcXG4gICAgXFwxMjZcXDAwMVxcMTI5XFwwMDFcXDEyNlxcMDAxXFwxMjZcXDAwMVxcMjU1XFwyNTVcXDEyOVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTU1XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMjlcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwxMjlcXDAwMVxcMjU1XFwyNTVcXDEyOVxcMDAxXFwxMjlcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcXG4gICAgXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTMwXFwwMDFcXDEzMFxcMDAxXFxcbiAgICBcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcXG4gICAgXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFxcbiAgICBcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEzMFxcMDAxXFwxMzBcXDAwMVxcXG4gICAgXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFxcbiAgICBcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwyNTVcXDI1NVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcXG4gICAgXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXFxuICAgIFxcMTMyXFwwMDFcXDE4NFxcMDAxXFwxMzhcXDAwMVxcMTg0XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTg0XFwwMDFcXDE4NFxcMDAxXFxcbiAgICBcXDE4NFxcMDAxXFwxODRcXDAwMVxcMTg0XFwwMDFcXDE4NFxcMDAxXFwxODRcXDAwMVxcMTg0XFwwMDFcXDE4NFxcMDAxXFwxODRcXDAwMVxcXG4gICAgXFwxODVcXDAwMVxcMTg1XFwwMDFcXDE4NVxcMDAxXFwxODVcXDAwMVxcMTg1XFwwMDFcXDE4NVxcMDAxXFwxODVcXDAwMVxcMTg1XFwwMDFcXFxuICAgIFxcMTg1XFwwMDFcXDE4NVxcMDAxXFwyNTVcXDI1NVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFxcbiAgICBcXDEzMlxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcXG4gICAgXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXFxuICAgIFxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFxcbiAgICBcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMzhcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXFxuICAgIFxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFxcbiAgICBcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcXG4gICAgXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE0MVxcMDAxXFwyNTVcXDI1NVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDNcXDAwMVxcMTQzXFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMTU2XFwwMDFcXDE1NlxcMDAxXFwxNTZcXDAwMVxcMTU2XFwwMDFcXDE1NlxcMDAxXFxcbiAgICBcXDE1NlxcMDAxXFwxNTZcXDAwMVxcMTU2XFwwMDFcXDE1NlxcMDAxXFwxNTZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTk4XFwwMDFcXDE0M1xcMDAxXFwyNTVcXDI1NVxcMTQzXFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE1NlxcMDAxXFwxNDNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwxOThcXDAwMVxcMTQzXFwwMDFcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMTQzXFwwMDFcXDE0M1xcMDAxXFwxNDNcXDAwMVxcXG4gICAgXFwxNDNcXDAwMVxcMTQzXFwwMDFcXDE0M1xcMDAxXFwxNDNcXDAwMVxcMTQzXFwwMDFcXDE0M1xcMDAxXFwxNDNcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDE0M1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDEzOFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE0M1xcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXFxuICAgIFxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTk4XFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDE0M1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxOThcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxOThcXDAwMVxcMTg2XFwwMDFcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTk4XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTQzXFwwMDFcXDE5OFxcMDAxXFwyNTVcXDI1NVxcMTk4XFwwMDFcXDE5OFxcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxNDNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE4N1xcMDAxXFwyNTVcXDI1NVxcMTg3XFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDE4NlxcMDAxXFwxODdcXDAwMVxcMTg3XFwwMDFcXDE4N1xcMDAxXFwxODdcXDAwMVxcMTg3XFwwMDFcXDE4N1xcMDAxXFxcbiAgICBcXDE4N1xcMDAxXFwxODdcXDAwMVxcMTg3XFwwMDFcXDE4N1xcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcXG4gICAgXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODlcXDAwMVxcMTg5XFwwMDFcXFxuICAgIFxcMTg5XFwwMDFcXDE4OVxcMDAxXFwxODlcXDAwMVxcMTg5XFwwMDFcXDE4OVxcMDAxXFwxODlcXDAwMVxcMTg5XFwwMDFcXDE4OVxcMDAxXFxcbiAgICBcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcXG4gICAgXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MVxcMDAxXFwxOTFcXDAwMVxcMTkxXFwwMDFcXDE5MVxcMDAxXFwxOTFcXDAwMVxcMTkxXFwwMDFcXFxuICAgIFxcMTkxXFwwMDFcXDE5MVxcMDAxXFwxOTFcXDAwMVxcMTkxXFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFxcbiAgICBcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDIwMVxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXFxuICAgIFxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMjAxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFxcbiAgICBcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjAxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMjAxXFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwMVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDFcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMjAxXFwwMDFcXDIwMVxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFxcbiAgICBcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXFxuICAgIFxcMjAyXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFxcbiAgICBcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFxcbiAgICBcXDIwMlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDRcXDAwMVxcXG4gICAgXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXFxuICAgIFxcMjA0XFwwMDFcXDI1NVxcMjU1XFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFxcbiAgICBcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDI1NVxcMjU1XFwyMTBcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIxMFxcMDAxXFwyNTVcXDI1NVxcMjEwXFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIxM1xcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIxMFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcIjtcbiAgTGV4aW5nLmxleF9iYXNlX2NvZGUgPVxuICAgXCJcIjtcbiAgTGV4aW5nLmxleF9iYWNrdHJrX2NvZGUgPVxuICAgXCJcIjtcbiAgTGV4aW5nLmxleF9kZWZhdWx0X2NvZGUgPVxuICAgXCJcIjtcbiAgTGV4aW5nLmxleF90cmFuc19jb2RlID1cbiAgIFwiXCI7XG4gIExleGluZy5sZXhfY2hlY2tfY29kZSA9XG4gICBcIlwiO1xuICBMZXhpbmcubGV4X2NvZGUgPVxuICAgXCJcIjtcbn1cblxubGV0IHJlYyByZWFkX2pzb24gdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9qc29uX3JlYyB2IGxleGJ1ZiAwXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9qc29uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxODggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAxODggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggYEJvb2wgdHJ1ZSApXG5cbiMgMTAzMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTAzMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTg5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMTg5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGBCb29sIGZhbHNlIClcblxuIyAxMDM3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDM4IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAxOTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAxOTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggYE51bGwgKVxuXG4jIDEwNDIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwNDMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDE5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDE5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICBcbiMgMTkzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgYEZsb2F0IG5hblxuICAgICAgICAgICAgICAgIFxuIyAxOTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIClcblxuIyAxMDUzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDU0IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyAxOTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAxOTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgXG4jIDIwMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgIGBGbG9hdCBpbmZpbml0eVxuICAgICAgICAgICAgICAgIFxuIyAyMDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIClcblxuIyAxMDY0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDY1IFwibGliL3JlYWQubWxcIlxuICB8IDUgLT5cblxuIyAyMDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAyMDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgXG4jIDIwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgIGBGbG9hdCBuZWdfaW5maW5pdHlcbiAgICAgICAgICAgICAgICBcbiMgMjExIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICApXG5cbiMgMTA3NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTA3NiBcImxpYi9yZWFkLm1sXCJcbiAgfCA2IC0+XG5cbiMgMjEyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMjEyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIFxuIyAyMTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICAgICAgIGBTdHJpbmcgKGZpbmlzaF9zdHJpbmcgdiBsZXhidWYpXG4gICAgICAgICAgICAgICAgXG4jIDIxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKVxuXG4jIDEwODcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwODggXCJsaWIvcmVhZC5tbFwiXG4gIHwgNyAtPlxuXG4jIDIyMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDIyMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBtYWtlX3Bvc2l0aXZlX2ludCB2IGxleGJ1ZiApXG5cbiMgMTA5MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTA5MyBcImxpYi9yZWFkLm1sXCJcbiAgfCA4IC0+XG5cbiMgMjIxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgMjIxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIG1ha2VfbmVnYXRpdmVfaW50IHYgbGV4YnVmIClcblxuIyAxMDk3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDk4IFwibGliL3JlYWQubWxcIlxuICB8IDkgLT5cblxuIyAyMjIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAyMjIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgXG4jIDIyNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgIGBGbG9hdCAoZmxvYXRfb2Zfc3RyaW5nIChsZXhlbWUgbGV4YnVmKSlcbiAgICAgICAgICAgICAgICAgXG4jIDIyOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIClcblxuIyAxMTA4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMTA5IFwibGliL3JlYWQubWxcIlxuICB8IDEwIC0+XG5cbiMgMjMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDIzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggbGV0IGFjYyA9IHJlZiBbXSBpblxuICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfb2JqZWN0X2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBsZXQgZmllbGRfbmFtZSA9IHJlYWRfaWRlbnQgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX2NvbG9uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGFjYyA6PSAoZmllbGRfbmFtZSwgcmVhZF9qc29uIHYgbGV4YnVmKSA6OiAhYWNjO1xuICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX29iamVjdF9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGxldCBmaWVsZF9uYW1lID0gcmVhZF9pZGVudCB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX2NvbG9uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBhY2MgOj0gKGZpZWxkX25hbWUsIHJlYWRfanNvbiB2IGxleGJ1ZikgOjogIWFjYztcbiAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9vYmplY3QgLT5cbiAgICAgICAgICAgICAgICAgICAgIGBBc3NvYyAoTGlzdC5yZXYgIWFjYylcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDExMzUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDExMzYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTEgLT5cblxuIyAyNTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMjU0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBsZXQgYWNjID0gcmVmIFtdIGluXG4gICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9hcnJheV9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfanNvbiB2IGxleGJ1ZiA6OiAhYWNjO1xuICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX2FycmF5X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfanNvbiB2IGxleGJ1ZiA6OiAhYWNjO1xuICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX2FycmF5IC0+XG4gICAgICAgICAgICAgICAgICAgICBgTGlzdCAoTGlzdC5yZXYgIWFjYylcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDExNTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDExNTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTIgLT5cblxuIyAyNzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMjcwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgXG4jIDI3MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICBsZXQgYWNjID0gcmVmIFtdIGluXG4gICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF90dXBsZV9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9qc29uIHYgbGV4YnVmIDo6ICFhY2M7XG4gICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfdHVwbGVfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfanNvbiB2IGxleGJ1ZiA6OiAhYWNjO1xuICAgICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX3R1cGxlIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGBUdXBsZSAoTGlzdC5yZXYgIWFjYylcbiAgICAgICAgICAgICAgICAgXG4jIDI4OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIClcblxuIyAxMTc4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMTc5IFwibGliL3JlYWQubWxcIlxuICB8IDEzIC0+XG5cbiMgMjkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDI5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgIFxuIyAyOTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGxldCBjb25zID0gcmVhZF9pZGVudCB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGBWYXJpYW50IChjb25zLCBmaW5pc2hfdmFyaWFudCB2IGxleGJ1ZilcbiAgICAgICAgICAgICAgICAgXG4jIDMwMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIClcblxuIyAxMTkyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMTkzIFwibGliL3JlYWQubWxcIlxuICB8IDE0IC0+XG5cbiMgMzAyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDMwMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggcmVhZF9qc29uIHYgbGV4YnVmIClcblxuIyAxMTk3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMTk4IFwibGliL3JlYWQubWxcIlxuICB8IDE1IC0+XG5cbiMgMzAzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDMwMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggZmluaXNoX2NvbW1lbnQgdiBsZXhidWY7IHJlYWRfanNvbiB2IGxleGJ1ZiApXG5cbiMgMTIwMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTIwMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxNiAtPlxuXG4jIDMwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAzMDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIG5ld2xpbmUgdiBsZXhidWY7IHJlYWRfanNvbiB2IGxleGJ1ZiApXG5cbiMgMTIwNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTIwOCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxNyAtPlxuXG4jIDMwNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAzMDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIHJlYWRfanNvbiB2IGxleGJ1ZiApXG5cbiMgMTIxMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTIxMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxOCAtPlxuXG4jIDMwNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAzMDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDEyMTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyMTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTkgLT5cblxuIyAzMDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMzA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiSW52YWxpZCB0b2tlblwiIHYgbGV4YnVmIClcblxuIyAxMjIyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjIzIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9qc29uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX3N0cmluZyB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfc3RyaW5nX3JlYyB2IGxleGJ1ZiA1OFxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdHJpbmdfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDMxMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzExIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICggQnVmZmVyLmNvbnRlbnRzIHYuYnVmIClcblxuIyAxMjM0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjM1IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzMTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDMxMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAoIGZpbmlzaF9lc2NhcGVkX2NoYXIgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgKVxuXG4jIDEyNDAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyNDEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDMxNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzE0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICggYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgKVxuXG4jIDEyNDYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyNDcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDMxNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzE2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTI1MSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTI1MiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdHJpbmdfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBtYXBfc3RyaW5nIHYgZiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfbWFwX3N0cmluZ19yZWMgdiBmIGxleGJ1ZiA2M1xuYW5kIF9fb2NhbWxfbGV4X21hcF9zdHJpbmdfcmVjIHYgZiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMzE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzMTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgKCBsZXQgYiA9IHYuYnVmIGluXG4gICAgICAgICAgICAgICAgICAgIGYgKEJ1ZmZlci5jb250ZW50cyBiKSAwIChCdWZmZXIubGVuZ3RoIGIpIClcblxuIyAxMjY0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjY1IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzMjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDMyMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAoIGZpbmlzaF9lc2NhcGVkX2NoYXIgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgIG1hcF9zdHJpbmcgdiBmIGxleGJ1ZiApXG5cbiMgMTI3MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTI3MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzIzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzMjMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgKCBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgbWFwX3N0cmluZyB2IGYgbGV4YnVmIClcblxuIyAxMjc2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjc3IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAzMjUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDMyNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDEyODEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyODIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9tYXBfc3RyaW5nX3JlYyB2IGYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfZXNjYXBlZF9jaGFyIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9lc2NhcGVkX2NoYXJfcmVjIHYgbGV4YnVmIDY4XG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX2VzY2FwZWRfY2hhcl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5sZXRcblxuIyAzMzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICBcbiMgMzMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgY1xuXG4jIDEyOTQgXCJsaWIvcmVhZC5tbFwiXG4jIDEyOTQgXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyBpblxuXG4jIDMzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDMzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgYyApXG5cbiMgMTI5OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTI5OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzMzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1xcYicgKVxuXG4jIDEzMDMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEzMDQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDMzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcXDAxMicgKVxuXG4jIDEzMDggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEzMDkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDMzMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzMzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcXG4nIClcblxuIyAxMzEzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMzE0IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyAzMzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDMzNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXFxyJyApXG5cbiMgMTMxOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTMxOSBcImxpYi9yZWFkLm1sXCJcbiAgfCA1IC0+XG5cbiMgMzM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzMzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1xcdCcgKVxuXG4jIDEzMjMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEzMjQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNiAtPlxubGV0XG5cbiMgMzM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMzM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBhXG5cbiMgMTMyOSBcImxpYi9yZWFkLm1sXCJcbiMgMTMyOSBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgKGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyArIDEpXG5hbmRcblxuIyAzMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDMzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBiXG5cbiMgMTMzNCBcImxpYi9yZWFkLm1sXCJcbiMgMTMzNCBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgKGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyArIDIpXG5hbmRcblxuIyAzMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgMzM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY1xuXG4jIDEzMzkgXCJsaWIvcmVhZC5tbFwiXG4jIDEzMzkgXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIChsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgKyAzKVxuYW5kXG5cbiMgMzM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgMzM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkXG5cbiMgMTM0NCBcImxpYi9yZWFkLm1sXCJcbiMgMTM0NCBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgKGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyArIDQpIGluXG5cbiMgMzM3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzMzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsZXQgeCA9XG4gICAgICAgICAgICAgKGhleCBhIGxzbCAxMikgbG9yIChoZXggYiBsc2wgOCkgbG9yIChoZXggYyBsc2wgNCkgbG9yIGhleCBkXG4gICAgICAgICAgIGluXG4gICAgICAgICAgIGlmIHggPj0gMHhEODAwICYmIHggPD0gMHhEQkZGIHRoZW5cbiAgICAgICAgICAgICBmaW5pc2hfc3Vycm9nYXRlX3BhaXIgdiB4IGxleGJ1ZlxuICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgdXRmOF9vZl9jb2RlIHYuYnVmIHhcbiAgICAgICAgIClcblxuIyAxMzU1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMzU2IFwibGliL3JlYWQubWxcIlxuICB8IDcgLT5cblxuIyAzNDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM0NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJJbnZhbGlkIGVzY2FwZSBzZXF1ZW5jZVwiIHYgbGV4YnVmIClcblxuIyAxMzYwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMzYxIFwibGliL3JlYWQubWxcIlxuICB8IDggLT5cblxuIyAzNDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDEzNjUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEzNjYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfZXNjYXBlZF9jaGFyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX3N1cnJvZ2F0ZV9wYWlyIHYgeCBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX3N1cnJvZ2F0ZV9wYWlyX3JlYyB2IHggbGV4YnVmIDgyXG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX3N1cnJvZ2F0ZV9wYWlyX3JlYyB2IHggbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxubGV0XG5cbiMgMzQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzNDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgYVxuXG4jIDEzNzggXCJsaWIvcmVhZC5tbFwiXG4jIDEzNzggXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIChsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgKyAyKVxuYW5kXG5cbiMgMzQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDM0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJcblxuIyAxMzgzIFwibGliL3JlYWQubWxcIlxuIyAxMzgzIFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiAobGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zICsgMylcbmFuZFxuXG4jIDM0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDM0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY1xuXG4jIDEzODggXCJsaWIvcmVhZC5tbFwiXG4jIDEzODggXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIChsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgKyA0KVxuYW5kXG5cbiMgMzQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyAzNDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZFxuXG4jIDEzOTMgXCJsaWIvcmVhZC5tbFwiXG4jIDEzOTMgXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIChsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgKyA1KSBpblxuXG4jIDM1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbGV0IHkgPVxuICAgICAgICAgICAgIChoZXggYSBsc2wgMTIpIGxvciAoaGV4IGIgbHNsIDgpIGxvciAoaGV4IGMgbHNsIDQpIGxvciBoZXggZFxuICAgICAgICAgICBpblxuICAgICAgICAgICBpZiB5ID49IDB4REMwMCAmJiB5IDw9IDB4REZGRiB0aGVuXG4gICAgICAgICAgICAgdXRmOF9vZl9zdXJyb2dhdGVfcGFpciB2LmJ1ZiB4IHlcbiAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgIGxvbmdfZXJyb3IgXCJJbnZhbGlkIGxvdyBzdXJyb2dhdGUgZm9yIGNvZGUgcG9pbnQgYmV5b25kIFUrRkZGRlwiXG4gICAgICAgICAgICAgICB2IGxleGJ1ZlxuICAgICAgICAgKVxuXG4jIDE0MDUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0MDYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDM1OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzU5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIk1pc3NpbmcgZXNjYXBlIHNlcXVlbmNlIHJlcHJlc2VudGluZyBsb3cgc3Vycm9nYXRlIFxcXG4gICAgICAgICAgICAgICAgICAgICAgIGZvciBjb2RlIHBvaW50IGJleW9uZCBVK0ZGRkZcIiB2IGxleGJ1ZiApXG5cbiMgMTQxMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQxMiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNDE2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDE3IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX3N1cnJvZ2F0ZV9wYWlyX3JlYyB2IHggbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfc3RyaW5nbGl0IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIDkxXG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMzY2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsZXQgbGVuID0gbGV4YnVmLmxleF9jdXJyX3BvcyAtIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGluXG4gICAgICAgICAgIGxldCBzID0gQnl0ZXMuY3JlYXRlIChsZW4rMSkgaW5cbiAgICAgICAgICAgQnl0ZXMuc2V0IHMgMCAnXCInO1xuICAgICAgICAgICBCeXRlcy5ibGl0IGxleGJ1Zi5sZXhfYnVmZmVyIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIHMgMSBsZW47XG4gICAgICAgICAgIEJ5dGVzLnRvX3N0cmluZyBzXG4gICAgICAgICApXG5cbiMgMTQzMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQzNCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzcyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiSW52YWxpZCBzdHJpbmcgbGl0ZXJhbFwiIHYgbGV4YnVmIClcblxuIyAxNDM4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDM5IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzNzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM3MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE0NDMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0NDQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX3ZhcmlhbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIDEwMlxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF92YXJpYW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAzNzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM3NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxldCB4ID0gcmVhZF9qc29uIHYgbGV4YnVmIGluXG4gICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgIHJlYWRfZ3QgdiBsZXhidWY7XG4gICAgICAgICAgIFNvbWUgeCApXG5cbiMgMTQ1OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQ1OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzgwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzODAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBOb25lIClcblxuIyAxNDYzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDY0IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzODEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM4MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnOicgb3IgJz4nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxNDY4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDY5IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAzODIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM4MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE0NzMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0NzQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfdmFyaWFudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfbHQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9sdF9yZWMgdiBsZXhidWYgMTA3XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9sdF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMzg1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMzg1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAxNDg1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDg2IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzODYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAzODYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc8JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTQ5MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQ5MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzg3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMzg3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE0OTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0OTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2x0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9ndCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2d0X3JlYyB2IGxleGJ1ZiAxMTFcbmFuZCBfX29jYW1sX2xleF9yZWFkX2d0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAzOTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM5MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoICgpIClcblxuIyAxNTA3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTA4IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzOTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnPicgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE1MTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1MTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDM5MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzkyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTUxNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTUxOCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfZ3RfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2NvbW1hIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfY29tbWFfcmVjIHYgbGV4YnVmIDExNVxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfY29tbWFfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDM5NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzk1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggKCkgKVxuXG4jIDE1MjkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1MzAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDM5NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzk2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTUzNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTUzNSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzk3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzOTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNTM5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTQwIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9jb21tYV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHN0YXJ0X2FueV92YXJpYW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3N0YXJ0X2FueV92YXJpYW50X3JlYyB2IGxleGJ1ZiAxMTlcbmFuZCBfX29jYW1sX2xleF9zdGFydF9hbnlfdmFyaWFudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDAwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNDAwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGBFZGd5X2JyYWNrZXQgKVxuXG4jIDE1NTEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1NTIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQwMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDQwMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICBgRG91YmxlX3F1b3RlIClcblxuIyAxNTU3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTU4IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA0MDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA0MDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggYFNxdWFyZV9icmFja2V0IClcblxuIyAxNTYyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTYzIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA0MDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA0MDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc8JywgJ1xcXCInIG9yICdbJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTU2NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU2OCBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgNDA1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNDA1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE1NzIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1NzMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9zdGFydF9hbnlfdmFyaWFudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9jb21tZW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9jb21tZW50X3JlYyB2IGxleGJ1ZiAxMjVcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfY29tbWVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA0MDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCAoKSApXG5cbiMgMTU4NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU4NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDA5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA0MDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiVW50ZXJtaW5hdGVkIGNvbW1lbnRcIiB2IGxleGJ1ZiApXG5cbiMgMTU4OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU5MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNDEwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA0MTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBuZXdsaW5lIHYgbGV4YnVmOyBmaW5pc2hfY29tbWVudCB2IGxleGJ1ZiApXG5cbiMgMTU5NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU5NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNDExIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA0MTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBmaW5pc2hfY29tbWVudCB2IGxleGJ1ZiApXG5cbiMgMTU5OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTYwMCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9jb21tZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9lb2YgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfZW9mX3JlYyBsZXhidWYgMTMxXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9lb2ZfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0MTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICBcbiMgNDE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgKCB0cnVlIClcblxuIyAxNjExIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjEyIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0MjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICBcbiMgNDIwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgKCBmYWxzZSApXG5cbiMgMTYxNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTYxNyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfZW9mX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfc3BhY2UgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9zcGFjZV9yZWMgdiBsZXhidWYgMTMzXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9zcGFjZV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDIzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQyMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggbmV3bGluZSB2IGxleGJ1ZjsgcmVhZF9zcGFjZSB2IGxleGJ1ZiApXG5cbiMgMTYyOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTYyOSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDI0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQyNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggZmluaXNoX2NvbW1lbnQgdiBsZXhidWY7IHJlYWRfc3BhY2UgdiBsZXhidWYgKVxuXG4jIDE2MzMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2MzQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDQyNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0MjUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIG5ld2xpbmUgdiBsZXhidWY7IHJlYWRfc3BhY2UgdiBsZXhidWYgKVxuXG4jIDE2MzggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2MzkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDQyNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0MjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIHJlYWRfc3BhY2UgdiBsZXhidWYgKVxuXG4jIDE2NDMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2NDQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDQyNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0MjcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICgpIClcblxuIyAxNjQ4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjQ5IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9zcGFjZV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfbnVsbCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX251bGxfcmVjIHYgbGV4YnVmIDE0MFxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfbnVsbF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgXG4jIDQzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICggKCkgKVxuXG4jIDE2NjAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2NjEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgIFxuIyA0MzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnbnVsbCcgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE2NjUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2NjYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDQzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgIFxuIyA0MzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE2NzAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2NzEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX251bGxfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX251bGxfaWZfcG9zc2libGUgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9udWxsX2lmX3Bvc3NpYmxlX3JlYyB2IGxleGJ1ZiAxNDdcbmFuZCBfX29jYW1sX2xleF9yZWFkX251bGxfaWZfcG9zc2libGVfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgIFxuIyA0MzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAoIHRydWUgKVxuXG4jIDE2ODIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2ODMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgIFxuIyA0MzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAoIGZhbHNlIClcblxuIyAxNjg3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjg4IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9udWxsX2lmX3Bvc3NpYmxlX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9ib29sIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfYm9vbF9yZWMgdiBsZXhidWYgMTUyXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9ib29sX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0MzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA0MzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggdHJ1ZSApXG5cbiMgMTY5OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTcwMCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDQwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNDQwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGZhbHNlIClcblxuIyAxNzA0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzA1IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA0NDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA0NDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggdHJ1ZSApXG5cbiMgMTcwOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTcxMCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNDQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNDQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGZhbHNlIClcblxuIyAxNzE0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzE1IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA0NDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA0NDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICd0cnVlJyBvciAnZmFsc2UnIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxNzE5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzIwIFwibGliL3JlYWQubWxcIlxuICB8IDUgLT5cblxuIyA0NDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA0NDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTcyNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTcyNSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfYm9vbF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfaW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfaW50X3JlYyB2IGxleGJ1ZiAxNzZcbmFuZCBfX29jYW1sX2xleF9yZWFkX2ludF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIHRyeSBleHRyYWN0X3Bvc2l0aXZlX2ludCBsZXhidWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggSW50X292ZXJmbG93IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxleGVyX2Vycm9yIFwiSW50IG92ZXJmbG93XCIgdiBsZXhidWYgKVxuXG4jIDE3MzggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3MzkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQ1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCB0cnkgZXh0cmFjdF9uZWdhdGl2ZV9pbnQgbGV4YnVmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIEludF9vdmVyZmxvdyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXhlcl9lcnJvciBcIkludCBvdmVyZmxvd1wiIHYgbGV4YnVmIClcblxuIyAxNzQ1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzQ2IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA0NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggKCogU3VwcG9ydCBmb3IgZG91YmxlLXF1b3RlZCBcImludHNcIiAqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHMgPSBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQW55IE9DYW1sLWNvbXBsaWFudCBpbnQgd2lsbCBwYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRpbmcgaGV4YWRlY2ltYWwgYW5kIG9jdGFsIG5vdGF0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGVtYmVkZGVkIHVuZGVyc2NvcmVzICopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludF9vZl9zdHJpbmcgc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbV9lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRXhwZWN0ZWQgYW4gaW50ZWdlciBidXQgZm91bmQgYSBzdHJpbmcgdGhhdCBcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2Vzbid0IGV2ZW4gcmVwcmVzZW50IGFuIGludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgbGV4YnVmXG4gICAgICAgICAgICAgICAgICAgICAgICAgKVxuXG4jIDE3NjMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3NjQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDQ3MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ3MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgaW50ZWdlciBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTc2OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTc2OSBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgNDcxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDcxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE3NzMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3NzQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2ludF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfaW50MzIgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9pbnQzMl9yZWMgdiBsZXhidWYgMTg1XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9pbnQzMl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDc0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDc0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIHRyeSBJbnQzMi5vZl9zdHJpbmcgKExleGluZy5sZXhlbWUgbGV4YnVmKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxleGVyX2Vycm9yIFwiSW50MzIgb3ZlcmZsb3dcIiB2IGxleGJ1ZiApXG5cbiMgMTc4NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTc4OCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDc3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDc3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoICgqIFN1cHBvcnQgZm9yIGRvdWJsZS1xdW90ZWQgXCJpbnRzXCIgKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzID0gZmluaXNoX3N0cmluZyB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEFueSBPQ2FtbC1jb21wbGlhbnQgaW50IHdpbGwgcGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkaW5nIGhleGFkZWNpbWFsIGFuZCBvY3RhbCBub3RhdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBlbWJlZGRlZCB1bmRlcnNjb3JlcyAqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnQzMi5vZl9zdHJpbmcgc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbV9lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRXhwZWN0ZWQgYW4gaW50MzIgYnV0IGZvdW5kIGEgc3RyaW5nIHRoYXQgXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9lc24ndCBldmVuIHJlcHJlc2VudCBhbiBpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgICAgICAgICAgIClcblxuIyAxODA1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODA2IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA0OTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0OTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkIGludDMyIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxODEwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODExIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA0OTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0OTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTgxNSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTgxNiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfaW50MzJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2ludDY0IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfaW50NjRfcmVjIHYgbGV4YnVmIDE5MlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfaW50NjRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQ5NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ5NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCB0cnkgSW50NjQub2Zfc3RyaW5nIChMZXhpbmcubGV4ZW1lIGxleGJ1ZilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXhlcl9lcnJvciBcIkludDMyIG92ZXJmbG93XCIgdiBsZXhidWYgKVxuXG4jIDE4MjkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4MzAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQ5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCAoKiBTdXBwb3J0IGZvciBkb3VibGUtcXVvdGVkIFwiaW50c1wiICopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcyA9IGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBBbnkgT0NhbWwtY29tcGxpYW50IGludCB3aWxsIHBhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGluZyBoZXhhZGVjaW1hbCBhbmQgb2N0YWwgbm90YXRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZW1iZWRkZWQgdW5kZXJzY29yZXMgKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50NjQub2Zfc3RyaW5nIHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21fZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkV4cGVjdGVkIGFuIGludDY0IGJ1dCBmb3VuZCBhIHN0cmluZyB0aGF0IFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvZXNuJ3QgZXZlbiByZXByZXNlbnQgYW4gaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiBsZXhidWZcbiAgICAgICAgICAgICAgICAgICAgICAgICApXG5cbiMgMTg0NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTg0OCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNTEyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNTEyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCBpbnQ2NCBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTg1MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTg1MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNTEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNTEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE4NTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4NTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2ludDY0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9udW1iZXIgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9udW1iZXJfcmVjIHYgbGV4YnVmIDE5OVxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfbnVtYmVyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA1MTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA1MTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggbmFuIClcblxuIyAxODY5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODcwIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA1MTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA1MTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggaW5maW5pdHkgKVxuXG4jIDE4NzQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4NzUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDUxOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDUxOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBuZWdfaW5maW5pdHkgKVxuXG4jIDE4NzkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4ODAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDUxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDUxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBmbG9hdF9vZl9zdHJpbmcgKGxleGVtZSBsZXhidWYpIClcblxuIyAxODg0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODg1IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA1MjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA1MjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgICAgbGV0IHMgPSBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgKCogQW55IE9DYW1sLWNvbXBsaWFudCBmbG9hdCB3aWxsIHBhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGluZyBoZXhhZGVjaW1hbCBhbmQgb2N0YWwgbm90YXRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICBhbmQgZW1iZWRkZWQgdW5kZXJzY29yZXMuICopXG4gICAgICAgICAgICAgICAgICAgIGZsb2F0X29mX3N0cmluZyBzXG4gICAgICAgICAgICAgICAgICB3aXRoIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggcyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBcIk5hTlwiIC0+IG5hblxuICAgICAgICAgICAgICAgICAgICAgIHwgXCJJbmZpbml0eVwiIC0+IGluZmluaXR5XG4gICAgICAgICAgICAgICAgICAgICAgfCBcIi1JbmZpbml0eVwiIC0+IG5lZ19pbmZpbml0eVxuICAgICAgICAgICAgICAgICAgICAgIHwgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21fZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkV4cGVjdGVkIGEgbnVtYmVyIGJ1dCBmb3VuZCBhIHN0cmluZyB0aGF0IFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvZXNuJ3QgZXZlbiByZXByZXNlbnQgYSBudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgbGV4YnVmXG4gICAgICAgICAgICAgICAgKVxuXG4jIDE5MDYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5MDcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNSAtPlxuXG4jIDUzOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDUzOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgbnVtYmVyIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxOTExIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTEyIFwibGliL3JlYWQubWxcIlxuICB8IDYgLT5cblxuIyA1MzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA1MzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTkxNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTkxNyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfbnVtYmVyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9zdHJpbmcgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9zdHJpbmdfcmVjIHYgbGV4YnVmIDIzM1xuYW5kIF9fb2NhbWxfbGV4X3JlYWRfc3RyaW5nX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA1NDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgZmluaXNoX3N0cmluZyB2IGxleGJ1ZiApXG5cbiMgMTkyOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTkzMCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNTQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnXFxcIicgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE5MzQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5MzUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDU0NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU0NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxOTM5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTQwIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9zdHJpbmdfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2lkZW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfaWRlbnRfcmVjIHYgbGV4YnVmIDIzN1xuYW5kIF9fb2NhbWxfbGV4X3JlYWRfaWRlbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDU0OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU0OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmIClcblxuIyAxOTUyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTUzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cbmxldFxuXG4jIDU1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgc1xuXG4jIDE5NTggXCJsaWIvcmVhZC5tbFwiXG4jIDE5NTggXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lIGxleGJ1ZiBsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgbGV4YnVmLkxleGluZy5sZXhfY3Vycl9wb3MgaW5cblxuIyA1NTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggcyApXG5cbiMgMTk2MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTk2MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNTUyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTUyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCBzdHJpbmcgb3IgaWRlbnRpZmllciBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTk2NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTk2OCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNTUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE5NzIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5NzMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2lkZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgbWFwX2lkZW50IHYgZiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfbWFwX2lkZW50X3JlYyB2IGYgbGV4YnVmIDI0MlxuYW5kIF9fb2NhbWxfbGV4X21hcF9pZGVudF9yZWMgdiBmIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA1NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgbWFwX3N0cmluZyB2IGYgbGV4YnVmIClcblxuIyAxOTg1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTg2IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA1NTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbWFwX2xleGVtZSBmIGxleGJ1ZiApXG5cbiMgMTk5MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTk5MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNTYwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTYwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCBzdHJpbmcgb3IgaWRlbnRpZmllciBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTk5NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTk5NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNTYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIwMDAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwMDEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9tYXBfaWRlbnRfcmVjIHYgZiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfc2VxdWVuY2UgcmVhZF9jZWxsIGluaXRfYWNjIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfc2VxdWVuY2VfcmVjIHJlYWRfY2VsbCBpbml0X2FjYyB2IGxleGJ1ZiAyNDdcbmFuZCBfX29jYW1sX2xleF9yZWFkX3NlcXVlbmNlX3JlYyByZWFkX2NlbGwgaW5pdF9hY2MgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNTY0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTY0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxldCBhY2MgPSByZWYgaW5pdF9hY2MgaW5cbiAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICByZWFkX2FycmF5X2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2NlbGwgIWFjYyB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgcmVhZF9hcnJheV9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9jZWxsICFhY2MgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgd2l0aCBFbmRfb2ZfYXJyYXkgLT5cbiAgICAgICAgICAgICAgICAgIWFjY1xuICAgICAgICAgICAgIClcblxuIyAyMDI2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDI3IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA1NzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICdbJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjAzMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjAzMiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNTgwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTgwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIwMzYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwMzcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3NlcXVlbmNlX3JlYyByZWFkX2NlbGwgaW5pdF9hY2MgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfbGlzdF9yZXYgcmVhZF9jZWxsIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfbGlzdF9yZXZfcmVjIHJlYWRfY2VsbCB2IGxleGJ1ZiAyNTFcbmFuZCBfX29jYW1sX2xleF9yZWFkX2xpc3RfcmV2X3JlYyByZWFkX2NlbGwgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNTgzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTgzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxldCBhY2MgPSByZWYgW10gaW5cbiAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICByZWFkX2FycmF5X2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2NlbGwgdiBsZXhidWYgOjogIWFjYztcbiAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgcmVhZF9hcnJheV9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9jZWxsIHYgbGV4YnVmIDo6ICFhY2M7XG4gICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgd2l0aCBFbmRfb2ZfYXJyYXkgLT5cbiAgICAgICAgICAgICAgICAgIWFjY1xuICAgICAgICAgICAgIClcblxuIyAyMDYyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDYzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA1OTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1OTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICdbJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjA2NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjA2OCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNTk5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTk5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIwNzIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwNzMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2xpc3RfcmV2X3JlYyByZWFkX2NlbGwgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfYXJyYXlfZW5kIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2FycmF5X2VuZF9yZWMgbGV4YnVmIDI1NVxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfYXJyYXlfZW5kX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNjAyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjAyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIHJhaXNlIEVuZF9vZl9hcnJheSApXG5cbiMgMjA4NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjA4NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNjAzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjAzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMDg5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDkwIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9hcnJheV9lbmRfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9hcnJheV9zZXAgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9hcnJheV9zZXBfcmVjIHYgbGV4YnVmIDI1N1xuYW5kIF9fb2NhbWxfbGV4X3JlYWRfYXJyYXlfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA2MDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2MDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIxMDEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxMDIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDYwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDYwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCByYWlzZSBFbmRfb2ZfYXJyYXkgKVxuXG4jIDIxMDYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxMDcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDYwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDYwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICddJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjExMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjExMiBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNjA5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjA5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIxMTYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxMTcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2FycmF5X3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfdHVwbGUgcmVhZF9jZWxsIGluaXRfYWNjIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfcmVjIHJlYWRfY2VsbCBpbml0X2FjYyB2IGxleGJ1ZiAyNjJcbmFuZCBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3JlYyByZWFkX2NlbGwgaW5pdF9hY2MgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNjEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDYxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgIFxuIyA2MTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgbGV0IHBvcyA9IHJlZiAwIGluXG4gICAgICAgICAgICAgICAgICAgICBsZXQgYWNjID0gcmVmIGluaXRfYWNjIGluXG4gICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF90dXBsZV9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9jZWxsICFwb3MgIWFjYyB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgaW5jciBwb3M7XG4gICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfdHVwbGVfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfY2VsbCAhcG9zICFhY2MgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgaW5jciBwb3M7XG4gICAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2ZfdHVwbGUgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIWFjY1xuICAgICAgICAgICAgICAgICBcbiMgNjM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDIxNTAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxNTEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDYzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDYzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJyknIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMTU1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTU2IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA2MzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2MzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjE2MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjE2MSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfcmVjIHJlYWRfY2VsbCBpbml0X2FjYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF90dXBsZV9lbmQgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfZW5kX3JlYyBsZXhidWYgMjY2XG5hbmQgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9lbmRfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA2NDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggcmFpc2UgRW5kX29mX3R1cGxlIClcblxuIyAyMTcyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTczIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA2NDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIxNzcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxNzggXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX2VuZF9yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3R1cGxlX2VuZDIgdiBzdGQgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfZW5kMl9yZWMgdiBzdGQgbGV4YnVmIDI2OFxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfZW5kMl9yZWMgdiBzdGQgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDY0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBpZiBzdGQgdGhlblxuICAgICAgICAgICAgICAgICBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJyknIG9yICcnIGJ1dCBmb3VuZFwiIHYgbGV4YnVmXG4gICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgIHJhaXNlIEVuZF9vZl90dXBsZSApXG5cbiMgMjE5MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjE5MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNjQ4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjQ4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGlmIHN0ZCB0aGVuXG4gICAgICAgICAgICAgICAgIHJhaXNlIEVuZF9vZl90dXBsZVxuICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ10nIG9yICcnIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMjAwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjAxIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA2NTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIyMDUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyMDYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX2VuZDJfcmVjIHYgc3RkIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF90dXBsZV9zZXAgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9zZXBfcmVjIHYgbGV4YnVmIDI3MVxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA2NTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIyMTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyMTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDY1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCByYWlzZSBFbmRfb2ZfdHVwbGUgKVxuXG4jIDIyMjIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyMjMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDY1NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY1NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICcpJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjIyNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjIyOCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNjU4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjU4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIyMzIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyMzMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfdHVwbGVfc2VwMiB2IHN0ZCBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9zZXAyX3JlYyB2IHN0ZCBsZXhidWYgMjc2XG5hbmQgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9zZXAyX3JlYyB2IHN0ZCBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNjYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMjQ0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjQ1IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA2NjIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NjIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggaWYgc3RkIHRoZW5cbiAgICAgICAgICAgICAgICAgbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnXScgYnV0IGZvdW5kXCIgdiBsZXhidWZcbiAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgcmFpc2UgRW5kX29mX3R1cGxlIClcblxuIyAyMjUyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjUzIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA2NjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggaWYgc3RkIHRoZW5cbiAgICAgICAgICAgICAgICAgcmFpc2UgRW5kX29mX3R1cGxlXG4gICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJyknIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMjYwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjYxIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA2NzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnKScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIyNjUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyNjYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDY3MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY3MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMjcwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjcxIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9zZXAyX3JlYyB2IHN0ZCBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfYWJzdHJhY3RfZmllbGRzIHJlYWRfa2V5IHJlYWRfZmllbGQgaW5pdF9hY2MgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9hYnN0cmFjdF9maWVsZHNfcmVjIHJlYWRfa2V5IHJlYWRfZmllbGQgaW5pdF9hY2MgdiBsZXhidWYgMjgyXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9hYnN0cmFjdF9maWVsZHNfcmVjIHJlYWRfa2V5IHJlYWRfZmllbGQgaW5pdF9hY2MgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNjc1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjc1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxldCBhY2MgPSByZWYgaW5pdF9hY2MgaW5cbiAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICByZWFkX29iamVjdF9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICBsZXQgZmllbGRfbmFtZSA9IHJlYWRfa2V5IHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIHJlYWRfY29sb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2ZpZWxkICFhY2MgZmllbGRfbmFtZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgcmVhZF9vYmplY3Rfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgbGV0IGZpZWxkX25hbWUgPSByZWFkX2tleSB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgcmVhZF9jb2xvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2ZpZWxkICFhY2MgZmllbGRfbmFtZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9vYmplY3QgLT5cbiAgICAgICAgICAgICAgICAgIWFjY1xuICAgICAgICAgICAgIClcblxuIyAyMzA0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzA1IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA2OTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2OTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICd7JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjMwOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjMxMCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNjk5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjk5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIzMTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzMTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2Fic3RyYWN0X2ZpZWxkc19yZWMgcmVhZF9rZXkgcmVhZF9maWVsZCBpbml0X2FjYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9sY3VybCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2xjdXJsX3JlYyB2IGxleGJ1ZiAyODZcbmFuZCBfX29jYW1sX2xleF9yZWFkX2xjdXJsX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3MDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIzMjYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzMjcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDcwMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcwMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ3snIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMzMxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzMyIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3MDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjMzNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjMzNyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfbGN1cmxfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX29iamVjdF9lbmQgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfb2JqZWN0X2VuZF9yZWMgbGV4YnVmIDI5MFxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfb2JqZWN0X2VuZF9yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDcwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCByYWlzZSBFbmRfb2Zfb2JqZWN0IClcblxuIyAyMzQ4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzQ5IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3MDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIzNTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzNTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX29iamVjdF9lbmRfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9vYmplY3Rfc2VwIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfb2JqZWN0X3NlcF9yZWMgdiBsZXhidWYgMjkyXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9vYmplY3Rfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3MTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIzNjUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzNjYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDcxMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcxMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCByYWlzZSBFbmRfb2Zfb2JqZWN0IClcblxuIyAyMzcwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzcxIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3MTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnfScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIzNzUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzNzYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDcxNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcxNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMzgwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzgxIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9vYmplY3Rfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9jb2xvbiB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2NvbG9uX3JlYyB2IGxleGJ1ZiAyOTdcbmFuZCBfX29jYW1sX2xleF9yZWFkX2NvbG9uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3MTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIzOTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzOTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDcxOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcxOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJzonIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMzk3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzk4IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3MTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjQwMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQwMyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfY29sb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBzdGFydF9hbnlfdHVwbGUgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfc3RhcnRfYW55X3R1cGxlX3JlYyB2IGxleGJ1ZiAzMDFcbmFuZCBfX29jYW1sX2xleF9zdGFydF9hbnlfdHVwbGVfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDcyMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcyMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBmYWxzZSApXG5cbiMgMjQxNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQxNSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzIzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzIzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIHRydWUgKVxuXG4jIDI0MTkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0MjAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDcyNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcyNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJygnIG9yICdbJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjQyNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQyNSBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNzI1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzI1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI0MjkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0MzAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9zdGFydF9hbnlfdHVwbGVfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2xwYXIgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9scGFyX3JlYyB2IGxleGJ1ZiAzMDZcbmFuZCBfX29jYW1sX2xleF9yZWFkX2xwYXJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDcyOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcyOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjQ0MSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ0MiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzI5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzI5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnKCcgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI0NDYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0NDcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDczMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDczMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNDUxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDUyIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9scGFyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9ycGFyIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfcnBhcl9yZWMgdiBsZXhidWYgMzEwXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9ycGFyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3MzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDI0NjMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0NjQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDczNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDczNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJyknIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyNDY4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDY5IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3MzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjQ3MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ3NCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfcnBhcl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfbGJyIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfbGJyX3JlYyB2IGxleGJ1ZiAzMTRcbmFuZCBfX29jYW1sX2xleF9yZWFkX2xicl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzM4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzM4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyNDg1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDg2IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3MzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICdbJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjQ5MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ5MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzQwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzQwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI0OTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0OTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2xicl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfcmJyIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfcmJyX3JlYyB2IGxleGJ1ZiAzMThcbmFuZCBfX29jYW1sX2xleF9yZWFkX3Jicl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzQzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzQzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyNTA3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTA4IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICddJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjUxMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjUxMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzQ1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzQ1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI1MTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1MTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3Jicl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHNraXBfanNvbiB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9za2lwX2pzb25fcmVjIHYgbGV4YnVmIDMyMlxuYW5kIF9fb2NhbWxfbGV4X3NraXBfanNvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzUxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNzUxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoICgpIClcblxuIyAyNTI5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTMwIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3NTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA3NTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1MzQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1MzUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDc1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDc1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMjUzOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjU0MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNzU0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNzU0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoICgpIClcblxuIyAyNTQ0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTQ1IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA3NTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA3NTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1NDkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1NTAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNSAtPlxuXG4jIDc1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDc1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMjU1NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjU1NSBcImxpYi9yZWFkLm1sXCJcbiAgfCA2IC0+XG5cbiMgNzU3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNzU3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGZpbmlzaF9za2lwX3N0cmluZ2xpdCB2IGxleGJ1ZiApXG5cbiMgMjU1OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjU2MCBcImxpYi9yZWFkLm1sXCJcbiAgfCA3IC0+XG5cbiMgNzU4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDc1OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1NjQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1NjUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgOCAtPlxuXG4jIDc1OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDc1OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMjU2OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjU3MCBcImxpYi9yZWFkLm1sXCJcbiAgfCA5IC0+XG5cbiMgNzYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDc2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggdHJ5XG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9vYmplY3RfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHNraXBfaWRlbnQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9jb2xvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBza2lwX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfb2JqZWN0X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9pZGVudCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9jb2xvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX29iamVjdCAtPlxuICAgICAgICAgICAgICAgICAgICAgKClcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDI1OTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1OTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTAgLT5cblxuIyA3ODQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgNzg0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCB0cnlcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX2FycmF5X2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBza2lwX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfYXJyYXlfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBza2lwX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2ZfYXJyYXkgLT5cbiAgICAgICAgICAgICAgICAgICAgICgpXG4gICAgICAgICAgICAgICAgIClcblxuIyAyNjEzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjE0IFwibGliL3JlYWQubWxcIlxuICB8IDExIC0+XG5cbiMgNzk5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDc5OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgIFxuIyA4MDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfdHVwbGVfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICByZWFkX3R1cGxlX3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl90dXBsZSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAoKVxuICAgICAgICAgICAgICAgICBcbiMgODE3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDI2MzYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2MzcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTIgLT5cblxuIyA4MTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgXG4jIDgyMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgc2tpcF9pZGVudCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBmaW5pc2hfc2tpcF92YXJpYW50IHYgbGV4YnVmXG4gICAgICAgICAgICAgICAgIFxuIyA4MjggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICApXG5cbiMgMjY1MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY1MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMyAtPlxuXG4jIDgzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4MzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIHNraXBfanNvbiB2IGxleGJ1ZiApXG5cbiMgMjY1NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY1NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxNCAtPlxuXG4jIDgzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4MzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGZpbmlzaF9jb21tZW50IHYgbGV4YnVmOyBza2lwX2pzb24gdiBsZXhidWYgKVxuXG4jIDI2NjAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2NjEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTUgLT5cblxuIyA4MzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBuZXdsaW5lIHYgbGV4YnVmOyBza2lwX2pzb24gdiBsZXhidWYgKVxuXG4jIDI2NjUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2NjYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTYgLT5cblxuIyA4MzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODMzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBza2lwX2pzb24gdiBsZXhidWYgKVxuXG4jIDI2NzAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2NzEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTcgLT5cblxuIyA4MzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODM0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNjc1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjc2IFwibGliL3JlYWQubWxcIlxuICB8IDE4IC0+XG5cbiMgODM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDgzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkludmFsaWQgdG9rZW5cIiB2IGxleGJ1ZiApXG5cbiMgMjY4MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY4MSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3NraXBfanNvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9za2lwX3N0cmluZ2xpdCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfc2tpcF9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIDM3OFxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9za2lwX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgODQxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA4NDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCAoKSApXG5cbiMgMjY5MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY5MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgODQyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA4NDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiSW52YWxpZCBzdHJpbmcgbGl0ZXJhbFwiIHYgbGV4YnVmIClcblxuIyAyNjk3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjk4IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA4NDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDg0MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI3MDIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3MDMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfc2tpcF9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfc2tpcF92YXJpYW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9za2lwX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIDM4OVxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9za2lwX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDg0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgODQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggc2tpcF9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICByZWFkX2d0IHYgbGV4YnVmIClcblxuIyAyNzE2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzE3IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA4NDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDg0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoICgpIClcblxuIyAyNzIxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzIyIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA4NTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDg1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnOicgb3IgJz4nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyNzI2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzI3IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA4NTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDg1MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI3MzEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3MzIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfc2tpcF92YXJpYW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgc2tpcF9pZGVudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9za2lwX2lkZW50X3JlYyB2IGxleGJ1ZiAzOTRcbmFuZCBfX29jYW1sX2xleF9za2lwX2lkZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA4NTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA4NTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggZmluaXNoX3NraXBfc3RyaW5nbGl0IHYgbGV4YnVmIClcblxuIyAyNzQzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzQ0IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA4NTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA4NTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDI3NDggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3NDkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDg1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDg1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgc3RyaW5nIG9yIGlkZW50aWZpZXIgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI3NTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3NTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDg1NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDg1NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNzU4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzU5IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfc2tpcF9pZGVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9qc29uIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9qc29uX3JlYyB2IGxleGJ1ZiAzOTlcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfanNvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgODcwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgODcwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmIClcblxuIyAyNzcwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzcxIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA4NzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA4NzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggZmluaXNoX2J1ZmZlcl9zdHJpbmdsaXQgdiBsZXhidWYgKVxuXG4jIDI3NzUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3NzYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDg3MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4NzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIHRyeVxuICAgICAgICAgICAgICAgICAgICAgQnVmZmVyLmFkZF9jaGFyIHYuYnVmICd7JztcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9vYmplY3RfZW5kIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2lkZW50IHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2NvbG9uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX29iamVjdF9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2lkZW50IHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9jb2xvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9vYmplY3QgLT5cbiAgICAgICAgICAgICAgICAgICAgICgpXG4gICAgICAgICAgICAgICAgIClcblxuIyAyODAyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODAzIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA4OTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODk3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCB0cnlcbiAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnWyc7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfYXJyYXlfZW5kIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2FycmF5X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9hcnJheSAtPlxuICAgICAgICAgICAgICAgICAgICAgKClcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDI4MjEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4MjIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDkxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA5MTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICBcbiMgOTE1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJygnO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl90dXBsZV9lbmQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl90dXBsZV9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX3R1cGxlIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICgpXG4gICAgICAgICAgICAgICAgIFxuIyA5MzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICApXG5cbiMgMjg0NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjg0NiBcImxpYi9yZWFkLm1sXCJcbiAgfCA1IC0+XG5cbiMgOTM0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDkzNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgIFxuIyA5MzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgQnVmZmVyLmFkZF9jaGFyIHYuYnVmICc8JztcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9pZGVudCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGZpbmlzaF9idWZmZXJfdmFyaWFudCB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgICBcbiMgOTQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDI4NjAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4NjEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNiAtPlxuXG4jIDk0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA5NDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmOyBidWZmZXJfanNvbiB2IGxleGJ1ZiApXG5cbiMgMjg2NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjg2NiBcImxpYi9yZWFkLm1sXCJcbiAgfCA3IC0+XG5cbiMgOTQ3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDk0NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggQnVmZmVyLmFkZF9zdHJpbmcgdi5idWYgXCIvKlwiO1xuICAgICAgICAgICAgICAgICAgIGZpbmlzaF9idWZmZXJfY29tbWVudCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZiApXG5cbiMgMjg3MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjg3MyBcImxpYi9yZWFkLm1sXCJcbiAgfCA4IC0+XG5cbiMgOTUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDk1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcXG4nO1xuICAgICAgICAgICAgICAgICAgIG5ld2xpbmUgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWYgKVxuXG4jIDI4NzkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4ODAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgOSAtPlxuXG4jIDk1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA5NTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmOyBidWZmZXJfanNvbiB2IGxleGJ1ZiApXG5cbiMgMjg4NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjg4NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMCAtPlxuXG4jIDk1NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA5NTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI4ODkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4OTAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTEgLT5cblxuIyA5NTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgOTU1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiSW52YWxpZCB0b2tlblwiIHYgbGV4YnVmIClcblxuIyAyODk0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODk1IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX2pzb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfYnVmZmVyX3N0cmluZ2xpdCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgNDUwXG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDk2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgOTYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcIic7XG4gICAgICAgICAgIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmXG4gICAgICAgICApXG5cbiMgMjkwOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjkwOSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgOTY0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA5NjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiSW52YWxpZCBzdHJpbmcgbGl0ZXJhbFwiIHYgbGV4YnVmIClcblxuIyAyOTEzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTE0IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA5NjUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDk2NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI5MTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5MTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9idWZmZXJfdmFyaWFudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIDQ2MVxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfdmFyaWFudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgOTY4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA5NjggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJzonO1xuICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICBidWZmZXJfZ3QgdiBsZXhidWYgKVxuXG4jIDI5MzMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5MzQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDk3MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgOTcyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICc+JyApXG5cbiMgMjkzOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjkzOSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgOTczIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA5NzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJzonIG9yICc+JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjk0MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjk0NCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgOTc0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA5NzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyOTQ4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTQ5IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl92YXJpYW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX2lkZW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9pZGVudF9yZWMgdiBsZXhidWYgNDY2XG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX2lkZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA5NzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA5NzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggZmluaXNoX2J1ZmZlcl9zdHJpbmdsaXQgdiBsZXhidWYgKVxuXG4jIDI5NjAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5NjEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDk3OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDk3OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZiApXG5cbiMgMjk2NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjk2NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgOTc5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgOTc5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCBzdHJpbmcgb3IgaWRlbnRpZmllciBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjk3MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjk3MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgOTgwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgOTgwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI5NzUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5NzYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfaWRlbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfc3BhY2UgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX3NwYWNlX3JlYyB2IGxleGJ1ZiA0NzFcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfc3BhY2VfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDk4MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA5ODMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWY7XG4gICAgbmV3bGluZSB2IGxleGJ1ZjtcbiAgICBidWZmZXJfc3BhY2UgdiBsZXhidWYgKVxuXG4jIDI5OTAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5OTEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDk4NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA5ODcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgQnVmZmVyLmFkZF9zdHJpbmcgdi5idWYgXCIvKlwiO1xuICAgIGZpbmlzaF9idWZmZXJfY29tbWVudCB2IGxleGJ1ZjtcbiAgICBidWZmZXJfc3BhY2UgdiBsZXhidWYgKVxuXG4jIDI5OTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5OTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDk5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA5OTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcXG4nO1xuICAgIG5ld2xpbmUgdiBsZXhidWY7XG4gICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmIClcblxuIyAzMDA2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDA3IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA5OTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgOTk1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmO1xuICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZiApXG5cbiMgMzAxMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzAxNCBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgOTk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDk5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDMwMTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwMTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfc3BhY2VfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfb2JqZWN0X2VuZCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfb2JqZWN0X2VuZF9yZWMgdiBsZXhidWYgNDc4XG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX29iamVjdF9lbmRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwMDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDAxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoXG4gICAgICBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ30nO1xuICAgICAgcmFpc2UgRW5kX29mX29iamVjdCApXG5cbiMgMzAzMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzAzMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTAwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDMwMzcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwMzggXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfb2JqZWN0X2VuZF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9vYmplY3Rfc2VwIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9vYmplY3Rfc2VwX3JlYyB2IGxleGJ1ZiA0ODBcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfb2JqZWN0X3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTAwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICcsJyApXG5cbiMgMzA0OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzA1MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTAwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICd9JzsgcmFpc2UgRW5kX29mX29iamVjdCApXG5cbiMgMzA1NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzA1NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMTAwOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnfScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDMwNTkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwNjAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDEwMTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDEwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDMwNjQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwNjUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfb2JqZWN0X3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9hcnJheV9lbmQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX2FycmF5X2VuZF9yZWMgdiBsZXhidWYgNDg1XG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX2FycmF5X2VuZF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTAxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICddJzsgcmFpc2UgRW5kX29mX2FycmF5IClcblxuIyAzMDc2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDc3IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDE0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAxNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMzA4MSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzA4MiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9hcnJheV9lbmRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfYXJyYXlfc2VwIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9hcnJheV9zZXBfcmVjIHYgbGV4YnVmIDQ4N1xuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9hcnJheV9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwMTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDE3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnLCcgKVxuXG4jIDMwOTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwOTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwMTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDE4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXSc7IHJhaXNlIEVuZF9vZl9hcnJheSApXG5cbiMgMzA5OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzA5OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMTAxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnXScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDMxMDMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxMDQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDEwMjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDIwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDMxMDggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxMDkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfYXJyYXlfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX3R1cGxlX2VuZCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfdHVwbGVfZW5kX3JlYyB2IGxleGJ1ZiA0OTJcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfdHVwbGVfZW5kX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDIzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAyMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKFxuICAgICAgQnVmZmVyLmFkZF9jaGFyIHYuYnVmICcpJztcbiAgICAgIHJhaXNlIEVuZF9vZl90dXBsZSApXG5cbiMgMzEyMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzEyMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTAyNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDMxMjcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxMjggXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfdHVwbGVfZW5kX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX3R1cGxlX3NlcCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfdHVwbGVfc2VwX3JlYyB2IGxleGJ1ZiA0OTRcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfdHVwbGVfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDI5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAyOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJywnIClcblxuIyAzMTM5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTQwIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJyknOyByYWlzZSBFbmRfb2ZfdHVwbGUgKVxuXG4jIDMxNDQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxNDUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDEwMzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJyknIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAzMTQ5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTUwIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAxMDMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAzMTU0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTU1IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX3R1cGxlX3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9jb2xvbiB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfY29sb25fcmVjIHYgbGV4YnVmIDQ5OVxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9jb2xvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTAzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICc6JyApXG5cbiMgMzE2NiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE2NyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTAzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc6JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMzE3MSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE3MiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMTAzNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMzE3NiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE3NyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9jb2xvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9ndCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfZ3RfcmVjIHYgbGV4YnVmIDUwM1xuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9ndF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTA0MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMTA0MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnPicgKVxuXG4jIDMxODggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxODkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwNDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDEwNDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJz4nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAzMTkzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTk0IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAxMDQyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAxMDQyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMzE5OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE5OSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9ndF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9idWZmZXJfY29tbWVudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX2NvbW1lbnRfcmVjIHYgbGV4YnVmIDUwN1xuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfY29tbWVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTA0NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMTA0NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfc3RyaW5nIHYuYnVmIFwiKi9cIiApXG5cbiMgMzIxMCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzIxMSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTA0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMTA0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJVbnRlcm1pbmF0ZWQgY29tbWVudFwiIHYgbGV4YnVmIClcblxuIyAzMjE1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMjE2IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAxMDQ3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAxMDQ3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcXG4nO1xuICAgICAgICAgICBuZXdsaW5lIHYgbGV4YnVmO1xuICAgICAgICAgICBmaW5pc2hfYnVmZmVyX2NvbW1lbnQgdiBsZXhidWYgKVxuXG4jIDMyMjIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMyMjMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDEwNTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDEwNTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZjsgZmluaXNoX2J1ZmZlcl9jb21tZW50IHYgbGV4YnVmIClcblxuIyAzMjI3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMjI4IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl9jb21tZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQganVuayBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfanVua19yZWMgbGV4YnVmIDUxM1xuYW5kIF9fb2NhbWxfbGV4X2p1bmtfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTA1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBMZXhpbmcubGV4ZW1lIGxleGJ1ZiApXG5cbiMgMzIzOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzI0MCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2p1bmtfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG47O1xuXG5cbiMgMTA1NSBcImxpYi9yZWFkLm1sbFwiXG4gXG4gIFxuIyAxMDU2IFwibGliL3JlYWQubWxsXCJcbiAgbGV0IF8gPSAocmVhZF9qc29uIDogbGV4ZXJfc3RhdGUgLT4gTGV4aW5nLmxleGJ1ZiAtPiB0KVxuXG4gIGxldCByZWFkX3QgPSByZWFkX2pzb25cblxuICBsZXQgKCkgPVxuICAgIHJlYWRfanVuayA6PSBqdW5rXG5cbiAgbGV0IHJlYWRfaW50OCB2IGxleGJ1ZiA9XG4gICAgbGV0IG4gPSByZWFkX2ludCB2IGxleGJ1ZiBpblxuICAgIGlmIG4gPCAwIHx8IG4gPiAyNTUgdGhlblxuICAgICAgbGV4ZXJfZXJyb3IgXCJJbnQ4IG92ZXJmbG93XCIgdiBsZXhidWZcbiAgICBlbHNlXG4gICAgICBjaGFyX29mX2ludCBuXG5cbiAgbGV0IHJlYWRfbGlzdCByZWFkX2NlbGwgdiBsZXhidWYgPVxuICAgIExpc3QucmV2IChyZWFkX2xpc3RfcmV2IHJlYWRfY2VsbCB2IGxleGJ1ZilcblxuICBsZXQgYXJyYXlfb2ZfcmV2X2xpc3QgbCA9XG4gICAgbWF0Y2ggbCB3aXRoXG4gICAgICAgIFtdIC0+IFt8IHxdXG4gICAgICB8IHggOjogdGwgLT5cbiAgICAgICAgICBsZXQgbGVuID0gTGlzdC5sZW5ndGggbCBpblxuICAgICAgICAgIGxldCBhID0gQXJyYXkubWFrZSBsZW4geCBpblxuICAgICAgICAgIGxldCByID0gcmVmIHRsIGluXG4gICAgICAgICAgZm9yIGkgPSBsZW4gLSAyIGRvd250byAwIGRvXG4gICAgICAgICAgICBhLihpKSA8LSBMaXN0LmhkICFyO1xuICAgICAgICAgICAgciA6PSBMaXN0LnRsICFyXG4gICAgICAgICAgZG9uZTtcbiAgICAgICAgICBhXG5cbiAgbGV0IHJlYWRfYXJyYXkgcmVhZF9jZWxsIHYgbGV4YnVmID1cbiAgICBsZXQgbCA9IHJlYWRfbGlzdF9yZXYgcmVhZF9jZWxsIHYgbGV4YnVmIGluXG4gICAgYXJyYXlfb2ZfcmV2X2xpc3QgbFxuXG4gICgqIFJlYWQgYSBKU09OIG9iamVjdCwgcmVhZGluZyB0aGUga2V5cyBpbnRvIE9DYW1sIHN0cmluZ3NcbiAgICAgKHByb3ZpZGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5KSAqKVxuICBsZXQgcmVhZF9maWVsZHMgcmVhZF9maWVsZCBpbml0X2FjYyB2ID1cbiAgICByZWFkX2Fic3RyYWN0X2ZpZWxkcyByZWFkX2lkZW50IHJlYWRfZmllbGQgaW5pdF9hY2MgdlxuXG4gIGxldCBmaW5pc2ggdiBsZXhidWYgPVxuICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgaWYgbm90IChyZWFkX2VvZiBsZXhidWYpIHRoZW5cbiAgICAgIGxvbmdfZXJyb3IgXCJKdW5rIGFmdGVyIGVuZCBvZiBKU09OIHZhbHVlOlwiIHYgbGV4YnVmXG5cbiAgbGV0IGluaXRfbGV4ZXIgPSBpbml0X2xleGVyXG5cbiAgbGV0IGZyb21fbGV4YnVmIHYgPyhzdHJlYW0gPSBmYWxzZSkgbGV4YnVmID1cbiAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuXG4gICAgbGV0IHggPVxuICAgICAgaWYgcmVhZF9lb2YgbGV4YnVmIHRoZW5cbiAgICAgICAgcmFpc2UgRW5kX29mX2lucHV0XG4gICAgICBlbHNlXG4gICAgICAgIHJlYWRfanNvbiB2IGxleGJ1ZlxuICAgIGluXG5cbiAgICBpZiBub3Qgc3RyZWFtIHRoZW5cbiAgICAgIGZpbmlzaCB2IGxleGJ1ZjtcblxuICAgIHhcblxuXG4gIGxldCBmcm9tX3N0cmluZyA/YnVmID9mbmFtZSA/bG51bSBzID1cbiAgICB0cnlcbiAgICAgIGxldCBsZXhidWYgPSBMZXhpbmcuZnJvbV9zdHJpbmcgcyBpblxuICAgICAgbGV0IHYgPSBpbml0X2xleGVyID9idWYgP2ZuYW1lID9sbnVtICgpIGluXG4gICAgICBmcm9tX2xleGJ1ZiB2IGxleGJ1ZlxuICAgIHdpdGggRW5kX29mX2lucHV0IC0+XG4gICAgICBqc29uX2Vycm9yIFwiQmxhbmsgaW5wdXQgZGF0YVwiXG5cbiAgbGV0IGZyb21fY2hhbm5lbCA/YnVmID9mbmFtZSA/bG51bSBpYyA9XG4gICAgdHJ5XG4gICAgICBsZXQgbGV4YnVmID0gTGV4aW5nLmZyb21fY2hhbm5lbCBpYyBpblxuICAgICAgbGV0IHYgPSBpbml0X2xleGVyID9idWYgP2ZuYW1lID9sbnVtICgpIGluXG4gICAgICBmcm9tX2xleGJ1ZiB2IGxleGJ1ZlxuICAgIHdpdGggRW5kX29mX2lucHV0IC0+XG4gICAgICBqc29uX2Vycm9yIFwiQmxhbmsgaW5wdXQgZGF0YVwiXG5cbiAgbGV0IGZyb21fZmlsZSA/YnVmID9mbmFtZSA/bG51bSBmaWxlID1cbiAgICBsZXQgaWMgPSBvcGVuX2luIGZpbGUgaW5cbiAgICB0cnlcbiAgICAgIGxldCB4ID0gZnJvbV9jaGFubmVsID9idWYgP2ZuYW1lID9sbnVtIGljIGluXG4gICAgICBjbG9zZV9pbiBpYztcbiAgICAgIHhcbiAgICB3aXRoIGUgLT5cbiAgICAgIGNsb3NlX2luX25vZXJyIGljO1xuICAgICAgcmFpc2UgZVxuXG4gIGV4Y2VwdGlvbiBGaW5hbGx5IG9mIGV4biAqIGV4blxuXG4gIGxldCBzZXFfZnJvbV9sZXhidWYgdiA/KGZpbiA9IGZ1biAoKSAtPiAoKSkgbGV4YnVmID1cbiAgICBsZXQgc3RyZWFtID0gU29tZSB0cnVlIGluXG4gICAgbGV0IHJlYyBmICgpID1cbiAgICAgIHRyeSBTZXEuQ29ucyAoZnJvbV9sZXhidWYgdiA/c3RyZWFtIGxleGJ1ZiwgZilcbiAgICAgIHdpdGhcbiAgICAgICAgICBFbmRfb2ZfaW5wdXQgLT5cbiAgICAgICAgICAgIGZpbiAoKTtcbiAgICAgICAgICAgIFNlcS5OaWxcbiAgICAgICAgfCBlIC0+XG4gICAgICAgICAgICAodHJ5IGZpbiAoKSB3aXRoIGZpbl9lIC0+IHJhaXNlIChGaW5hbGx5IChlLCBmaW5fZSkpKTtcbiAgICAgICAgICAgIHJhaXNlIGVcbiAgICBpblxuICAgIGZcblxuICBsZXQgc2VxX2Zyb21fc3RyaW5nID9idWYgP2ZuYW1lID9sbnVtIHMgPVxuICAgIGxldCB2ID0gaW5pdF9sZXhlciA/YnVmID9mbmFtZSA/bG51bSAoKSBpblxuICAgIHNlcV9mcm9tX2xleGJ1ZiB2IChMZXhpbmcuZnJvbV9zdHJpbmcgcylcblxuICBsZXQgc2VxX2Zyb21fY2hhbm5lbCA/YnVmID9maW4gP2ZuYW1lID9sbnVtIGljID1cbiAgICBsZXQgbGV4YnVmID0gTGV4aW5nLmZyb21fY2hhbm5lbCBpYyBpblxuICAgIGxldCB2ID0gaW5pdF9sZXhlciA/YnVmID9mbmFtZSA/bG51bSAoKSBpblxuICAgIHNlcV9mcm9tX2xleGJ1ZiB2ID9maW4gbGV4YnVmXG5cbiAgbGV0IHNlcV9mcm9tX2ZpbGUgP2J1ZiA/Zm5hbWUgP2xudW0gZmlsZSA9XG4gICAgbGV0IGljID0gb3Blbl9pbiBmaWxlIGluXG4gICAgbGV0IGZpbiAoKSA9IGNsb3NlX2luIGljIGluXG4gICAgbGV0IGZuYW1lID1cbiAgICAgIG1hdGNoIGZuYW1lIHdpdGhcbiAgICAgICAgICBOb25lIC0+IFNvbWUgZmlsZVxuICAgICAgICB8IHggLT4geFxuICAgIGluXG4gICAgbGV0IGxleGJ1ZiA9IExleGluZy5mcm9tX2NoYW5uZWwgaWMgaW5cbiAgICBsZXQgdiA9IGluaXRfbGV4ZXIgP2J1ZiA/Zm5hbWUgP2xudW0gKCkgaW5cbiAgICBzZXFfZnJvbV9sZXhidWYgdiB+ZmluIGxleGJ1ZlxuXG4gIHR5cGUganNvbl9saW5lID0gWyBgSnNvbiBvZiB0IHwgYEV4biBvZiBleG4gXVxuXG4gIGxldCBsaW5lc2VxX2Zyb21fY2hhbm5lbFxuICAgICAgP2J1ZiA/KGZpbiA9IGZ1biAoKSAtPiAoKSkgP2ZuYW1lID9sbnVtOihsbnVtMCA9IDEpIGljID1cbiAgICBsZXQgYnVmID1cbiAgICAgIG1hdGNoIGJ1ZiB3aXRoXG4gICAgICAgICAgTm9uZSAtPiBTb21lIChCdWZmZXIuY3JlYXRlIDI1NilcbiAgICAgICAgfCBTb21lIF8gLT4gYnVmXG4gICAgaW5cbiAgICBsZXQgcmVjIGYgbG51bSA9IGZ1biAoKSAtPlxuICAgICAgdHJ5XG4gICAgICAgIGxldCBsaW5lID0gaW5wdXRfbGluZSBpYyBpblxuICAgICAgICBTZXEuQ29ucyAoYEpzb24gKGZyb21fc3RyaW5nID9idWYgP2ZuYW1lIH5sbnVtIGxpbmUpLCBmIChsbnVtICsgMSkpXG4gICAgICB3aXRoXG4gICAgICAgICAgRW5kX29mX2ZpbGUgLT4gZmluICgpOyBTZXEuTmlsXG4gICAgICAgIHwgZSAtPiBTZXEuQ29ucyAoYEV4biBlLCBmIChsbnVtICsgMSkpXG4gICAgaW5cbiAgICBmIGxudW0wXG5cbiAgbGV0IGxpbmVzZXFfZnJvbV9maWxlID9idWYgP2ZuYW1lID9sbnVtIGZpbGUgPVxuICAgIGxldCBpYyA9IG9wZW5faW4gZmlsZSBpblxuICAgIGxldCBmaW4gKCkgPSBjbG9zZV9pbiBpYyBpblxuICAgIGxldCBmbmFtZSA9XG4gICAgICBtYXRjaCBmbmFtZSB3aXRoXG4gICAgICAgICAgTm9uZSAtPiBTb21lIGZpbGVcbiAgICAgICAgfCB4IC0+IHhcbiAgICBpblxuICAgIGxpbmVzZXFfZnJvbV9jaGFubmVsID9idWYgfmZpbiA/Zm5hbWUgP2xudW0gaWNcblxuICBsZXQgcHJldHRpZnkgP3N0ZCBzID1cbiAgICBwcmV0dHlfdG9fc3RyaW5nID9zdGQgKGZyb21fc3RyaW5nIHMpXG5cbiAgbGV0IGNvbXBhY3QgP3N0ZCBzID1cbiAgICB0b19zdHJpbmcgKGZyb21fc3RyaW5nIHMpXG5cblxuIyAzNDA4IFwibGliL3JlYWQubWxcIlxuIyA2OSBcInlvanNvbi5jcHBvLm1sXCJcbm1vZHVsZSBVdGlsID1cbnN0cnVjdFxuIyAxIFwidXRpbC5tbFwiXG5leGNlcHRpb24gVHlwZV9lcnJvciBvZiBzdHJpbmcgKiB0XG5cbmxldCB0eXBlb2YgPSBmdW5jdGlvblxuICB8IGBBc3NvYyBfIC0+IFwib2JqZWN0XCJcbiAgfCBgQm9vbCBfIC0+IFwiYm9vbFwiXG4gIHwgYEZsb2F0IF8gLT4gXCJmbG9hdFwiXG4gIHwgYEludCBfIC0+IFwiaW50XCJcbiAgfCBgTGlzdCBfIC0+IFwiYXJyYXlcIlxuICB8IGBOdWxsIC0+IFwibnVsbFwiXG4gIHwgYFN0cmluZyBfIC0+IFwic3RyaW5nXCJcbiAgfCBgSW50bGl0IF8gLT4gXCJpbnRsaXRcIlxuICB8IGBUdXBsZSBfIC0+IFwidHVwbGVcIlxuICB8IGBWYXJpYW50IF8gLT4gXCJ2YXJpYW50XCJcblxubGV0IHR5cGVyciBtc2cganMgPSByYWlzZSAoVHlwZV9lcnJvciAobXNnIF4gdHlwZW9mIGpzLCBqcykpXG5cbmV4Y2VwdGlvbiBVbmRlZmluZWQgb2Ygc3RyaW5nICogdFxuXG5sZXQgYXNzb2MgbmFtZSBvYmogPVxuICB0cnkgTGlzdC5hc3NvYyBuYW1lIG9ialxuICB3aXRoIE5vdF9mb3VuZCAtPiBgTnVsbFxuXG5sZXQgbWVtYmVyIG5hbWUgPSBmdW5jdGlvblxuICB8IGBBc3NvYyBvYmogLT4gYXNzb2MgbmFtZSBvYmpcbiAgfCBqcyAtPiB0eXBlcnIgKFwiQ2FuJ3QgZ2V0IG1lbWJlciAnXCIgXiBuYW1lIF4gXCInIG9mIG5vbi1vYmplY3QgdHlwZSBcIikganNcblxubGV0IGluZGV4IGkgPSBmdW5jdGlvblxuICB8IGBMaXN0IGwgYXMganMgLT5cbiAgICAgIGxldCBsZW4gPSBMaXN0Lmxlbmd0aCBsIGluXG4gICAgICBsZXQgd3JhcHBlZF9pbmRleCA9IGlmIGkgPCAwIHRoZW4gbGVuICsgaSBlbHNlIGkgaW5cbiAgICAgIGlmIHdyYXBwZWRfaW5kZXggPCAwIHx8IHdyYXBwZWRfaW5kZXggPj0gbGVuIHRoZW5cbiAgICAgICAgcmFpc2UgKFVuZGVmaW5lZCAoXCJJbmRleCBcIiBeIHN0cmluZ19vZl9pbnQgaSBeIFwiIG91dCBvZiBib3VuZHNcIiwganMpKVxuICAgICAgZWxzZSBMaXN0Lm50aCBsIHdyYXBwZWRfaW5kZXhcbiAgfCBqcyAtPiB0eXBlcnIgKFwiQ2FuJ3QgZ2V0IGluZGV4IFwiIF4gc3RyaW5nX29mX2ludCBpXG4gICAgICAgICAgICAgICAgIF4gXCIgb2Ygbm9uLWFycmF5IHR5cGUgXCIpIGpzXG5cbmxldCBtYXAgZiA9IGZ1bmN0aW9uXG4gIHwgYExpc3QgbCAtPiBgTGlzdCAoTGlzdC5tYXAgZiBsKVxuICB8IGpzIC0+IHR5cGVyciBcIkNhbid0IG1hcCBmdW5jdGlvbiBvdmVyIG5vbi1hcnJheSB0eXBlIFwiIGpzXG5cbmxldCB0b19hc3NvYyA9IGZ1bmN0aW9uXG4gIHwgYEFzc29jIG9iaiAtPiBvYmpcbiAgfCBqcyAtPiB0eXBlcnIgXCJFeHBlY3RlZCBvYmplY3QsIGdvdCBcIiBqc1xuXG5sZXQgdG9fb3B0aW9uIGYgPSBmdW5jdGlvblxuICB8IGBOdWxsIC0+IE5vbmVcbiAgfCB4IC0+IFNvbWUgKGYgeClcblxubGV0IHRvX2Jvb2wgPSBmdW5jdGlvblxuICB8IGBCb29sIGIgLT4gYlxuICB8IGpzIC0+IHR5cGVyciBcIkV4cGVjdGVkIGJvb2wsIGdvdCBcIiBqc1xuXG5sZXQgdG9fYm9vbF9vcHRpb24gPSBmdW5jdGlvblxuICB8IGBCb29sIGIgLT4gU29tZSBiXG4gIHwgYE51bGwgLT4gTm9uZVxuICB8IGpzIC0+IHR5cGVyciBcIkV4cGVjdGVkIGJvb2wgb3IgbnVsbCwgZ290IFwiIGpzXG5cbmxldCB0b19udW1iZXIgPSBmdW5jdGlvblxuICB8IGBJbnQgaSAtPiBmbG9hdCBpXG4gIHwgYEZsb2F0IGYgLT4gZlxuICB8IGpzIC0+IHR5cGVyciBcIkV4cGVjdGVkIG51bWJlciwgZ290IFwiIGpzXG5cbmxldCB0b19udW1iZXJfb3B0aW9uID0gZnVuY3Rpb25cbiAgfCBgSW50IGkgLT4gU29tZSAoZmxvYXQgaSlcbiAgfCBgRmxvYXQgZiAtPiBTb21lIGZcbiAgfCBgTnVsbCAtPiBOb25lXG4gIHwganMgLT4gdHlwZXJyIFwiRXhwZWN0ZWQgbnVtYmVyIG9yIG51bGwsIGdvdCBcIiBqc1xuXG5sZXQgdG9fZmxvYXQgPSBmdW5jdGlvblxuICB8IGBGbG9hdCBmIC0+IGZcbiAgfCBqcyAtPiB0eXBlcnIgXCJFeHBlY3RlZCBmbG9hdCwgZ290IFwiIGpzXG5cbmxldCB0b19mbG9hdF9vcHRpb24gPSBmdW5jdGlvblxuICB8IGBGbG9hdCBmIC0+IFNvbWUgZlxuICB8IGBOdWxsIC0+IE5vbmVcbiAgfCBqcyAtPiB0eXBlcnIgXCJFeHBlY3RlZCBmbG9hdCBvciBudWxsLCBnb3QgXCIganNcblxubGV0IHRvX2ludCA9IGZ1bmN0aW9uXG4gIHwgYEludCBpIC0+IGlcbiAgfCBqcyAtPiB0eXBlcnIgXCJFeHBlY3RlZCBpbnQsIGdvdCBcIiBqc1xuXG5sZXQgdG9faW50X29wdGlvbiA9IGZ1bmN0aW9uXG4gIHwgYEludCBpIC0+IFNvbWUgaVxuICB8IGBOdWxsIC0+IE5vbmVcbiAgfCBqcyAtPiB0eXBlcnIgXCJFeHBlY3RlZCBpbnQgb3IgbnVsbCwgZ290IFwiIGpzXG5cbmxldCB0b19saXN0ID0gZnVuY3Rpb25cbiAgfCBgTGlzdCBsIC0+IGxcbiAgfCBqcyAtPiB0eXBlcnIgXCJFeHBlY3RlZCBhcnJheSwgZ290IFwiIGpzXG5cbmxldCB0b19zdHJpbmcgPSBmdW5jdGlvblxuICB8IGBTdHJpbmcgcyAtPiBzXG4gIHwganMgLT4gdHlwZXJyIFwiRXhwZWN0ZWQgc3RyaW5nLCBnb3QgXCIganNcblxubGV0IHRvX3N0cmluZ19vcHRpb24gPSBmdW5jdGlvblxuICB8IGBTdHJpbmcgcyAtPiBTb21lIHNcbiAgfCBgTnVsbCAtPiBOb25lXG4gIHwganMgLT4gdHlwZXJyIFwiRXhwZWN0ZWQgc3RyaW5nIG9yIG51bGwsIGdvdCBcIiBqc1xuXG5sZXQgY29udmVydF9lYWNoIGYgPSBmdW5jdGlvblxuICB8IGBMaXN0IGwgLT4gTGlzdC5tYXAgZiBsXG4gIHwganMgLT4gdHlwZXJyIFwiQ2FuJ3QgY29udmVydCBlYWNoIGVsZW1lbnQgb2Ygbm9uLWFycmF5IHR5cGUgXCIganNcblxuXG5sZXQgcmVjIHJldl9maWx0ZXJfbWFwIGYgYWNjIGwgPVxuICBtYXRjaCBsIHdpdGhcbiAgICAgIFtdIC0+IGFjY1xuICAgIHwgeCA6OiB0bCAtPlxuICAgICAgICBtYXRjaCBmIHggd2l0aFxuICAgICAgICAgICAgTm9uZSAtPiByZXZfZmlsdGVyX21hcCBmIGFjYyB0bFxuICAgICAgICAgIHwgU29tZSB5IC0+IHJldl9maWx0ZXJfbWFwIGYgKHkgOjogYWNjKSB0bFxuXG5sZXQgZmlsdGVyX21hcCBmIGwgPVxuICBMaXN0LnJldiAocmV2X2ZpbHRlcl9tYXAgZiBbXSBsKVxuXG5sZXQgcmVjIHJldl9mbGF0dGVuIGFjYyBsID1cbiAgbWF0Y2ggbCB3aXRoXG4gICAgICBbXSAtPiBhY2NcbiAgICB8IHggOjogdGwgLT5cbiAgICAgICAgbWF0Y2ggeCB3aXRoXG4gICAgICAgICAgICBgTGlzdCBsMiAtPiByZXZfZmxhdHRlbiAoTGlzdC5yZXZfYXBwZW5kIGwyIGFjYykgdGxcbiAgICAgICAgICB8IF8gLT4gcmV2X2ZsYXR0ZW4gYWNjIHRsXG5cbmxldCBmbGF0dGVuIGwgPVxuICBMaXN0LnJldiAocmV2X2ZsYXR0ZW4gW10gbClcblxubGV0IGZpbHRlcl9pbmRleCBpIGwgPVxuICBmaWx0ZXJfbWFwIChcbiAgICBmdW5jdGlvblxuICAgICAgICBgTGlzdCBsIC0+XG4gICAgICAgICAgKHRyeSBTb21lIChMaXN0Lm50aCBsIGkpXG4gICAgICAgICAgIHdpdGggXyAtPiBOb25lKVxuICAgICAgfCBfIC0+IE5vbmVcbiAgKSBsXG5cbmxldCBmaWx0ZXJfbGlzdCBsID1cbiAgZmlsdGVyX21hcCAoXG4gICAgZnVuY3Rpb25cbiAgICAgICAgYExpc3QgbCAtPiBTb21lIGxcbiAgICAgIHwgXyAtPiBOb25lXG4gICkgbFxuXG5sZXQgZmlsdGVyX21lbWJlciBrIGwgPVxuICBmaWx0ZXJfbWFwIChcbiAgICBmdW5jdGlvblxuICAgICAgICBgQXNzb2MgbCAtPlxuICAgICAgICAgICh0cnkgU29tZSAoTGlzdC5hc3NvYyBrIGwpXG4gICAgICAgICAgIHdpdGggXyAtPiBOb25lKVxuICAgICAgfCBfIC0+IE5vbmVcbiAgKSBsXG5cbmxldCBmaWx0ZXJfYXNzb2MgbCA9XG4gIGZpbHRlcl9tYXAgKFxuICAgIGZ1bmN0aW9uXG4gICAgICAgIGBBc3NvYyBsIC0+IFNvbWUgbFxuICAgICAgfCBfIC0+IE5vbmVcbiAgKSBsXG5cbmxldCBmaWx0ZXJfYm9vbCBsID1cbiAgZmlsdGVyX21hcCAoXG4gICAgZnVuY3Rpb25cbiAgICAgICAgYEJvb2wgeCAtPiBTb21lIHhcbiAgICAgIHwgXyAtPiBOb25lXG4gICkgbFxuXG5sZXQgZmlsdGVyX2ludCBsID1cbiAgZmlsdGVyX21hcCAoXG4gICAgZnVuY3Rpb25cbiAgICAgICAgYEludCB4IC0+IFNvbWUgeFxuICAgICAgfCBfIC0+IE5vbmVcbiAgKSBsXG5cbmxldCBmaWx0ZXJfZmxvYXQgbCA9XG4gIGZpbHRlcl9tYXAgKFxuICAgIGZ1bmN0aW9uXG4gICAgICAgIGBGbG9hdCB4IC0+IFNvbWUgeFxuICAgICAgfCBfIC0+IE5vbmVcbiAgKSBsXG5cbmxldCBmaWx0ZXJfbnVtYmVyIGwgPVxuICBmaWx0ZXJfbWFwIChcbiAgICBmdW5jdGlvblxuICAgICAgICBgSW50IHggLT4gU29tZSAoZmxvYXQgeClcbiAgICAgIHwgYEZsb2F0IHggLT4gU29tZSB4XG4gICAgICB8IF8gLT4gTm9uZVxuICApIGxcblxubGV0IGZpbHRlcl9zdHJpbmcgbCA9XG4gIGZpbHRlcl9tYXAgKFxuICAgIGZ1bmN0aW9uXG4gICAgICAgIGBTdHJpbmcgeCAtPiBTb21lIHhcbiAgICAgIHwgXyAtPiBOb25lXG4gICkgbFxuXG5sZXQga2V5cyBvID1cbiAgdG9fYXNzb2MgbyB8PiBMaXN0Lm1hcCAoZnVuIChrZXksIF8pIC0+IGtleSlcblxubGV0IHZhbHVlcyBvID1cbiAgdG9fYXNzb2MgbyB8PiBMaXN0Lm1hcCAoZnVuIChfLCB2YWx1ZSkgLT4gdmFsdWUpXG5cbmxldCBjb21iaW5lIChmaXJzdCA6IHQpIChzZWNvbmQgOiB0KSA9XG4gIG1hdGNoIChmaXJzdCwgc2Vjb25kKSB3aXRoXG4gIHwgKGBBc3NvYyBhLCBgQXNzb2MgYikgLT4gKGBBc3NvYyAoYSBAIGIpIDogIHQpXG4gIHwgKGEsIGIpIC0+IHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IFwiRXhwZWN0ZWQgdHdvIG9iamVjdHMsIGNoZWNrIGlucHV0c1wiKVxuIyA3MiBcInlvanNvbi5jcHBvLm1sXCJcbmVuZFxuIyA3OSBcInlvanNvbi5jcHBvLm1sXCJcbmVuZFxuXG5tb2R1bGUgUmF3ID1cbnN0cnVjdFxuIyAxIFwidHlwZS5tbFwiXG4oKiogezMgVHlwZSBvZiB0aGUgSlNPTiB0cmVlfSAqKVxuXG50eXBlIHQgPVxuICAgIFtcbiAgICB8IGBOdWxsXG4gICAgfCBgQm9vbCBvZiBib29sXG4gICAgXG4jIDExIFwidHlwZS5tbFwiXG4gICAgfCBgSW50bGl0IG9mIHN0cmluZ1xuICAgIFxuIyAxNyBcInR5cGUubWxcIlxuICAgIHwgYEZsb2F0bGl0IG9mIHN0cmluZ1xuICAgIFxuIyAyMyBcInR5cGUubWxcIlxuICAgIHwgYFN0cmluZ2xpdCBvZiBzdHJpbmdcbiAgICBcbiMgMjUgXCJ0eXBlLm1sXCJcbiAgICB8IGBBc3NvYyBvZiAoc3RyaW5nICogdCkgbGlzdFxuICAgIHwgYExpc3Qgb2YgdCBsaXN0XG4gICAgXG4jIDI4IFwidHlwZS5tbFwiXG4gICAgfCBgVHVwbGUgb2YgdCBsaXN0XG4gICAgXG4jIDMxIFwidHlwZS5tbFwiXG4gICAgfCBgVmFyaWFudCBvZiAoc3RyaW5nICogdCBvcHRpb24pXG4gICAgXG4jIDMzIFwidHlwZS5tbFwiXG4gICAgXVxuKCoqXG5BbGwgcG9zc2libGUgY2FzZXMgZGVmaW5lZCBpbiBZb2pzb246XG4tIGBOdWxsOiBKU09OIG51bGxcbi0gYEJvb2wgb2YgYm9vbDogSlNPTiBib29sZWFuXG4tIGBJbnQgb2YgaW50OiBKU09OIG51bWJlciB3aXRob3V0IGRlY2ltYWwgcG9pbnQgb3IgZXhwb25lbnQuXG4tIGBJbnRsaXQgb2Ygc3RyaW5nOiBKU09OIG51bWJlciB3aXRob3V0IGRlY2ltYWwgcG9pbnQgb3IgZXhwb25lbnQsXG5cdCAgICBwcmVzZXJ2ZWQgYXMgYSBzdHJpbmcuXG4tIGBGbG9hdCBvZiBmbG9hdDogSlNPTiBudW1iZXIsIEluZmluaXR5LCAtSW5maW5pdHkgb3IgTmFOLlxuLSBgRmxvYXRsaXQgb2Ygc3RyaW5nOiBKU09OIG51bWJlciwgSW5maW5pdHksIC1JbmZpbml0eSBvciBOYU4sXG5cdCAgICBwcmVzZXJ2ZWQgYXMgYSBzdHJpbmcuXG4tIGBTdHJpbmcgb2Ygc3RyaW5nOiBKU09OIHN0cmluZy4gQnl0ZXMgaW4gdGhlIHJhbmdlIDEyOC0yNTUgYXJlIHByZXNlcnZlZFxuXHQgICAgYXMtaXMgd2l0aG91dCBlbmNvZGluZyB2YWxpZGF0aW9uIGZvciBib3RoIHJlYWRpbmdcblx0ICAgIGFuZCB3cml0aW5nLlxuLSBgU3RyaW5nbGl0IG9mIHN0cmluZzogSlNPTiBzdHJpbmcgbGl0ZXJhbCBpbmNsdWRpbmcgdGhlIGRvdWJsZSBxdW90ZXMuXG4tIGBBc3NvYyBvZiAoc3RyaW5nICoganNvbikgbGlzdDogSlNPTiBvYmplY3QuXG4tIGBMaXN0IG9mIGpzb24gbGlzdDogSlNPTiBhcnJheS5cbi0gYFR1cGxlIG9mIGpzb24gbGlzdDogVHVwbGUgKG5vbi1zdGFuZGFyZCBleHRlbnNpb24gb2YgSlNPTikuXG5cdCAgICBTeW50YXg6IFsoXCJhYmNcIiwgMTIzKV0uXG4tIGBWYXJpYW50IG9mIChzdHJpbmcgKiBqc29uIG9wdGlvbik6IFZhcmlhbnQgKG5vbi1zdGFuZGFyZCBleHRlbnNpb24gb2YgSlNPTikuXG5cdCAgICBTeW50YXg6IFs8XCJGb29cIj5dIG9yIFs8XCJCYXJcIjoxMjM+XS5cbiopXG5cbigqXG4gIE5vdGUgdG8gYWR2ZW50dXJlcnM6IG9jYW1sZG9jIGRvZXMgbm90IHN1cHBvcnQgaW5saW5lIGNvbW1lbnRzXG4gIG9uIGVhY2ggcG9seW1vcnBoaWMgdmFyaWFudCwgYW5kIGNwcG8gZG9lc24ndCBhbGxvdyB0byBjb25jYXRlbmF0ZVxuICBjb21tZW50cywgc28gaXQgd291bGQgYmUgY29tcGxpY2F0ZWQgdG8gZG9jdW1lbnQgb25seSB0aGVcbiAgY2FzZXMgdGhhdCBhcmUgcHJlc2VydmVkIGJ5IGNwcG8gaW4gdGhlIHR5cGUgZGVmaW5pdGlvbi5cbiopXG4jIDEgXCJ3cml0ZS5tbFwiXG4oKiBpbmNsdWRlZDogdHlwZS5tbCAqKVxuXG5sZXQgaGV4IG4gPVxuICBDaGFyLmNociAoXG4gICAgaWYgbiA8IDEwIHRoZW4gbiArIDQ4XG4gICAgZWxzZSBuICsgODdcbiAgKVxuXG5sZXQgd3JpdGVfc3BlY2lhbCBzcmMgc3RhcnQgc3RvcCBvYiBzdHIgPVxuICBCdWZmZXIuYWRkX3N1YnN0cmluZyBvYiBzcmMgIXN0YXJ0IChzdG9wIC0gIXN0YXJ0KTtcbiAgQnVmZmVyLmFkZF9zdHJpbmcgb2Igc3RyO1xuICBzdGFydCA6PSBzdG9wICsgMVxuXG5sZXQgd3JpdGVfY29udHJvbF9jaGFyIHNyYyBzdGFydCBzdG9wIG9iIGMgPVxuICBCdWZmZXIuYWRkX3N1YnN0cmluZyBvYiBzcmMgIXN0YXJ0IChzdG9wIC0gIXN0YXJ0KTtcbiAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCJcXFxcdTAwXCI7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAoaGV4IChDaGFyLmNvZGUgYyBsc3IgNCkpO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgKGhleCAoQ2hhci5jb2RlIGMgbGFuZCAweGYpKTtcbiAgc3RhcnQgOj0gc3RvcCArIDFcblxubGV0IGZpbmlzaF9zdHJpbmcgc3JjIHN0YXJ0IG9iID1cbiAgdHJ5XG4gICAgQnVmZmVyLmFkZF9zdWJzdHJpbmcgb2Igc3JjICFzdGFydCAoU3RyaW5nLmxlbmd0aCBzcmMgLSAhc3RhcnQpXG4gIHdpdGggZXhjIC0+XG4gICAgUHJpbnRmLmVwcmludGYgXCJzcmM9JVMgc3RhcnQ9JWkgbGVuPSVpXFxuJSFcIlxuICAgICAgc3JjICFzdGFydCAoU3RyaW5nLmxlbmd0aCBzcmMgLSAhc3RhcnQpO1xuICAgIHJhaXNlIGV4Y1xuXG5sZXQgd3JpdGVfc3RyaW5nX2JvZHkgb2IgcyA9XG4gIGxldCBzdGFydCA9IHJlZiAwIGluXG4gIGZvciBpID0gMCB0byBTdHJpbmcubGVuZ3RoIHMgLSAxIGRvXG4gICAgbWF0Y2ggcy5baV0gd2l0aFxuICAgICAgICAnXCInIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXFxcXCJcIlxuICAgICAgfCAnXFxcXCcgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcXFxcXFwiXG4gICAgICB8ICdcXGInIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXGJcIlxuICAgICAgfCAnXFwwMTInIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXGZcIlxuICAgICAgfCAnXFxuJyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFxuXCJcbiAgICAgIHwgJ1xccicgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcclwiXG4gICAgICB8ICdcXHQnIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXHRcIlxuICAgICAgfCAnXFx4MDAnLi4nXFx4MUYnXG4gICAgICB8ICdcXHg3RicgYXMgYyAtPiB3cml0ZV9jb250cm9sX2NoYXIgcyBzdGFydCBpIG9iIGNcbiAgICAgIHwgXyAtPiAoKVxuICBkb25lO1xuICBmaW5pc2hfc3RyaW5nIHMgc3RhcnQgb2JcblxubGV0IHdyaXRlX3N0cmluZyBvYiBzID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICdcIic7XG4gIHdyaXRlX3N0cmluZ19ib2R5IG9iIHM7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnXCInXG5cbmxldCBqc29uX3N0cmluZ19vZl9zdHJpbmcgcyA9XG4gIGxldCBvYiA9IEJ1ZmZlci5jcmVhdGUgMTAgaW5cbiAgd3JpdGVfc3RyaW5nIG9iIHM7XG4gIEJ1ZmZlci5jb250ZW50cyBvYlxuXG5sZXQgdGVzdF9zdHJpbmcgKCkgPVxuICBsZXQgcyA9IEJ5dGVzLmNyZWF0ZSAyNTYgaW5cbiAgZm9yIGkgPSAwIHRvIDI1NSBkb1xuICAgIEJ5dGVzLnNldCBzIGkgKENoYXIuY2hyIGkpXG4gIGRvbmU7XG4gIGpzb25fc3RyaW5nX29mX3N0cmluZyAoQnl0ZXMudG9fc3RyaW5nIHMpXG5cblxubGV0IHdyaXRlX251bGwgb2IgKCkgPVxuICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIm51bGxcIlxuXG5sZXQgd3JpdGVfYm9vbCBvYiB4ID1cbiAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgKGlmIHggdGhlbiBcInRydWVcIiBlbHNlIFwiZmFsc2VcIilcblxuXG5sZXQgbWF4X2RpZ2l0cyA9XG4gIG1heFxuICAgIChTdHJpbmcubGVuZ3RoIChzdHJpbmdfb2ZfaW50IG1heF9pbnQpKVxuICAgIChTdHJpbmcubGVuZ3RoIChzdHJpbmdfb2ZfaW50IG1pbl9pbnQpKVxuXG5sZXQgZGVjIG4gPVxuICBDaGFyLmNociAobiArIDQ4KVxuXG5sZXQgcmVjIHdyaXRlX2RpZ2l0cyBzIHggPVxuICBpZiB4ID0gMCB0aGVuICgpXG4gIGVsc2VcbiAgICBsZXQgZCA9IHggbW9kIDEwIGluXG4gICAgd3JpdGVfZGlnaXRzIHMgKHggLyAxMCk7XG4gICAgQnVmZmVyLmFkZF9jaGFyIHMgKGRlYyAoYWJzIGQpKVxuXG5sZXQgd3JpdGVfaW50IG9iIHggPVxuICBpZiB4ID4gMCB0aGVuXG4gICAgd3JpdGVfZGlnaXRzIG9iIHhcbiAgZWxzZSBpZiB4IDwgMCB0aGVuIChcbiAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJy0nO1xuICAgIHdyaXRlX2RpZ2l0cyBvYiB4XG4gIClcbiAgZWxzZVxuICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnMCdcblxuXG5sZXQganNvbl9zdHJpbmdfb2ZfaW50IGkgPVxuICBzdHJpbmdfb2ZfaW50IGlcblxuXG4oKlxuICBFbnN1cmUgdGhhdCB0aGUgZmxvYXQgaXMgbm90IHByaW50ZWQgYXMgYW4gaW50LlxuICBUaGlzIGlzIG5vdCByZXF1aXJlZCBieSBKU09OLCBidXQgdXNlZnVsIGluIG9yZGVyIHRvIGd1YXJhbnRlZVxuICByZXZlcnNpYmlsaXR5LlxuKilcbmxldCBmbG9hdF9uZWVkc19wZXJpb2QgcyA9XG4gIHRyeVxuICAgIGZvciBpID0gMCB0byBTdHJpbmcubGVuZ3RoIHMgLSAxIGRvXG4gICAgICBtYXRjaCBzLltpXSB3aXRoXG4gICAgICAgICAgJzAnLi4nOScgfCAnLScgLT4gKClcbiAgICAgICAgfCBfIC0+IHJhaXNlIEV4aXRcbiAgICBkb25lO1xuICAgIHRydWVcbiAgd2l0aCBFeGl0IC0+XG4gICAgZmFsc2VcblxuKCpcbiAgR3VhcmFudGVlcyB0aGF0IGEgc3VmZmljaWVudCBudW1iZXIgb2YgZGlnaXRzIGFyZSBwcmludGVkIGluIG9yZGVyIHRvIGFsbG93XG4gIHJldmVyc2liaWxpdHkuXG4qKVxubGV0IHdyaXRlX2Zsb2F0IG9iIHggPVxuICBtYXRjaCBjbGFzc2lmeV9mbG9hdCB4IHdpdGhcbiAgICBGUF9uYW4gLT5cbiAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwiTmFOXCJcbiAgfCBGUF9pbmZpbml0ZSAtPlxuICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgKGlmIHggPiAwLiB0aGVuIFwiSW5maW5pdHlcIiBlbHNlIFwiLUluZmluaXR5XCIpXG4gIHwgXyAtPlxuICAgICAgbGV0IHMxID0gUHJpbnRmLnNwcmludGYgXCIlLjE2Z1wiIHggaW5cbiAgICAgIGxldCBzID1cbiAgICAgICAgaWYgZmxvYXRfb2Zfc3RyaW5nIHMxID0geCB0aGVuIHMxXG4gICAgICAgIGVsc2UgUHJpbnRmLnNwcmludGYgXCIlLjE3Z1wiIHhcbiAgICAgIGluXG4gICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBzO1xuICAgICAgaWYgZmxvYXRfbmVlZHNfcGVyaW9kIHMgdGhlblxuICAgICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIi4wXCJcblxubGV0IHdyaXRlX25vcm1hbF9mbG9hdF9wcmVjIHNpZ25pZmljYW50X2ZpZ3VyZXMgb2IgeCA9XG4gIGxldCBvcGVuIFByaW50ZiBpblxuICBsZXQgcyA9XG4gICAgbWF0Y2ggc2lnbmlmaWNhbnRfZmlndXJlcyB3aXRoXG4gICAgICAgIDEgLT4gc3ByaW50ZiBcIiUuMWdcIiB4XG4gICAgICB8IDIgLT4gc3ByaW50ZiBcIiUuMmdcIiB4XG4gICAgICB8IDMgLT4gc3ByaW50ZiBcIiUuM2dcIiB4XG4gICAgICB8IDQgLT4gc3ByaW50ZiBcIiUuNGdcIiB4XG4gICAgICB8IDUgLT4gc3ByaW50ZiBcIiUuNWdcIiB4XG4gICAgICB8IDYgLT4gc3ByaW50ZiBcIiUuNmdcIiB4XG4gICAgICB8IDcgLT4gc3ByaW50ZiBcIiUuN2dcIiB4XG4gICAgICB8IDggLT4gc3ByaW50ZiBcIiUuOGdcIiB4XG4gICAgICB8IDkgLT4gc3ByaW50ZiBcIiUuOWdcIiB4XG4gICAgICB8IDEwIC0+IHNwcmludGYgXCIlLjEwZ1wiIHhcbiAgICAgIHwgMTEgLT4gc3ByaW50ZiBcIiUuMTFnXCIgeFxuICAgICAgfCAxMiAtPiBzcHJpbnRmIFwiJS4xMmdcIiB4XG4gICAgICB8IDEzIC0+IHNwcmludGYgXCIlLjEzZ1wiIHhcbiAgICAgIHwgMTQgLT4gc3ByaW50ZiBcIiUuMTRnXCIgeFxuICAgICAgfCAxNSAtPiBzcHJpbnRmIFwiJS4xNWdcIiB4XG4gICAgICB8IDE2IC0+IHNwcmludGYgXCIlLjE2Z1wiIHhcbiAgICAgIHwgXyAtPiBzcHJpbnRmIFwiJS4xN2dcIiB4XG4gIGluXG4gIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHM7XG4gIGlmIGZsb2F0X25lZWRzX3BlcmlvZCBzIHRoZW5cbiAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIi4wXCJcblxuKCogdXNlZCBieSBhdGRnZW4gKilcbmxldCB3cml0ZV9mbG9hdF9wcmVjIHNpZ25pZmljYW50X2ZpZ3VyZXMgb2IgeCA9XG4gIG1hdGNoIGNsYXNzaWZ5X2Zsb2F0IHggd2l0aFxuICAgIEZQX25hbiAtPlxuICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCJOYU5cIlxuICB8IEZQX2luZmluaXRlIC0+XG4gICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiAoaWYgeCA+IDAuIHRoZW4gXCJJbmZpbml0eVwiIGVsc2UgXCItSW5maW5pdHlcIilcbiAgfCBfIC0+XG4gICAgICB3cml0ZV9ub3JtYWxfZmxvYXRfcHJlYyBzaWduaWZpY2FudF9maWd1cmVzIG9iIHhcblxubGV0IGpzb25fc3RyaW5nX29mX2Zsb2F0IHggPVxuICBsZXQgb2IgPSBCdWZmZXIuY3JlYXRlIDIwIGluXG4gIHdyaXRlX2Zsb2F0IG9iIHg7XG4gIEJ1ZmZlci5jb250ZW50cyBvYlxuXG5cbmxldCB3cml0ZV9zdGRfZmxvYXQgb2IgeCA9XG4gIG1hdGNoIGNsYXNzaWZ5X2Zsb2F0IHggd2l0aFxuICAgIEZQX25hbiAtPlxuICAgICAganNvbl9lcnJvciBcIk5hTiB2YWx1ZSBub3QgYWxsb3dlZCBpbiBzdGFuZGFyZCBKU09OXCJcbiAgfCBGUF9pbmZpbml0ZSAtPlxuICAgICAganNvbl9lcnJvclxuICAgICAgICAoaWYgeCA+IDAuIHRoZW5cbiAgICAgICAgICAgXCJJbmZpbml0eSB2YWx1ZSBub3QgYWxsb3dlZCBpbiBzdGFuZGFyZCBKU09OXCJcbiAgICAgICAgIGVsc2VcbiAgICAgICAgICAgXCItSW5maW5pdHkgdmFsdWUgbm90IGFsbG93ZWQgaW4gc3RhbmRhcmQgSlNPTlwiKVxuICB8IF8gLT5cbiAgICAgIGxldCBzMSA9IFByaW50Zi5zcHJpbnRmIFwiJS4xNmdcIiB4IGluXG4gICAgICBsZXQgcyA9XG4gICAgICAgIGlmIGZsb2F0X29mX3N0cmluZyBzMSA9IHggdGhlbiBzMVxuICAgICAgICBlbHNlIFByaW50Zi5zcHJpbnRmIFwiJS4xN2dcIiB4XG4gICAgICBpblxuICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgcztcbiAgICAgIGlmIGZsb2F0X25lZWRzX3BlcmlvZCBzIHRoZW5cbiAgICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCIuMFwiXG5cbigqIHVzZWQgYnkgYXRkZ2VuICopXG5sZXQgd3JpdGVfc3RkX2Zsb2F0X3ByZWMgc2lnbmlmaWNhbnRfZmlndXJlcyBvYiB4ID1cbiAgbWF0Y2ggY2xhc3NpZnlfZmxvYXQgeCB3aXRoXG4gICAgRlBfbmFuIC0+XG4gICAgICBqc29uX2Vycm9yIFwiTmFOIHZhbHVlIG5vdCBhbGxvd2VkIGluIHN0YW5kYXJkIEpTT05cIlxuICB8IEZQX2luZmluaXRlIC0+XG4gICAgICBqc29uX2Vycm9yXG4gICAgICAgIChpZiB4ID4gMC4gdGhlblxuICAgICAgICAgICBcIkluZmluaXR5IHZhbHVlIG5vdCBhbGxvd2VkIGluIHN0YW5kYXJkIEpTT05cIlxuICAgICAgICAgZWxzZVxuICAgICAgICAgICBcIi1JbmZpbml0eSB2YWx1ZSBub3QgYWxsb3dlZCBpbiBzdGFuZGFyZCBKU09OXCIpXG4gIHwgXyAtPlxuICAgICAgd3JpdGVfbm9ybWFsX2Zsb2F0X3ByZWMgc2lnbmlmaWNhbnRfZmlndXJlcyBvYiB4XG5cbmxldCBzdGRfanNvbl9zdHJpbmdfb2ZfZmxvYXQgeCA9XG4gIGxldCBvYiA9IEJ1ZmZlci5jcmVhdGUgMjAgaW5cbiAgd3JpdGVfc3RkX2Zsb2F0IG9iIHg7XG4gIEJ1ZmZlci5jb250ZW50cyBvYlxuXG5cbmxldCB0ZXN0X2Zsb2F0ICgpID1cbiAgbGV0IGwgPSBbIDAuOyAxLjsgLTEuIF0gaW5cbiAgbGV0IGwgPSBsIEAgTGlzdC5tYXAgKGZ1biB4IC0+IDIuICouIHggKy4gMS4pIGwgaW5cbiAgbGV0IGwgPSBsIEAgTGlzdC5tYXAgKGZ1biB4IC0+IHggLy4gc3FydCAyLikgbCBpblxuICBsZXQgbCA9IGwgQCBMaXN0Lm1hcCAoZnVuIHggLT4geCAqLiBzcXJ0IDMuKSBsIGluXG4gIGxldCBsID0gbCBAIExpc3QubWFwIGNvcyBsIGluXG4gIGxldCBsID0gbCBAIExpc3QubWFwIChmdW4geCAtPiB4ICouIDEuMjNlNTApIGwgaW5cbiAgbGV0IGwgPSBsIEAgWyBpbmZpbml0eTsgbmVnX2luZmluaXR5IF0gaW5cbiAgTGlzdC5pdGVyIChcbiAgICBmdW4geCAtPlxuICAgICAgbGV0IHMgPSBQcmludGYuc3ByaW50ZiBcIiUuMTdnXCIgeCBpblxuICAgICAgbGV0IHkgPSBmbG9hdF9vZl9zdHJpbmcgcyBpblxuICAgICAgUHJpbnRmLnByaW50ZiBcIiVnICVnICVTICVCXFxuXCIgeCB5IHMgKHggPSB5KVxuICApXG4gICAgbFxuXG4oKlxubGV0ICgpID0gdGVzdF9mbG9hdCAoKVxuKilcblxubGV0IHdyaXRlX2ludGxpdCA9IEJ1ZmZlci5hZGRfc3RyaW5nXG5sZXQgd3JpdGVfZmxvYXRsaXQgPSBCdWZmZXIuYWRkX3N0cmluZ1xubGV0IHdyaXRlX3N0cmluZ2xpdCA9IEJ1ZmZlci5hZGRfc3RyaW5nXG5cbmxldCByZWMgaXRlcjJfYXV4IGZfZWx0IGZfc2VwIHggPSBmdW5jdGlvblxuICAgIFtdIC0+ICgpXG4gIHwgeSA6OiBsIC0+XG4gICAgICBmX3NlcCB4O1xuICAgICAgZl9lbHQgeCB5O1xuICAgICAgaXRlcjJfYXV4IGZfZWx0IGZfc2VwIHggbFxuXG5sZXQgaXRlcjIgZl9lbHQgZl9zZXAgeCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gKClcbiAgfCB5IDo6IGwgLT5cbiAgICAgIGZfZWx0IHggeTtcbiAgICAgIGl0ZXIyX2F1eCBmX2VsdCBmX3NlcCB4IGxcblxubGV0IGZfc2VwIG9iID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICcsJ1xuXG5sZXQgcmVjIHdyaXRlX2pzb24gb2IgKHggOiB0KSA9XG4gIG1hdGNoIHggd2l0aFxuICAgICAgYE51bGwgLT4gd3JpdGVfbnVsbCBvYiAoKVxuICAgIHwgYEJvb2wgYiAtPiB3cml0ZV9ib29sIG9iIGJcbiAgICBcbiMgMjY3IFwid3JpdGUubWxcIlxuICAgIHwgYEludGxpdCBzIC0+IEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHNcbiAgICBcbiMgMjczIFwid3JpdGUubWxcIlxuICAgIHwgYEZsb2F0bGl0IHMgLT4gQnVmZmVyLmFkZF9zdHJpbmcgb2Igc1xuICAgIFxuIyAyNzkgXCJ3cml0ZS5tbFwiXG4gICAgfCBgU3RyaW5nbGl0IHMgLT4gQnVmZmVyLmFkZF9zdHJpbmcgb2Igc1xuICAgIFxuIyAyODEgXCJ3cml0ZS5tbFwiXG4gICAgfCBgQXNzb2MgbCAtPiB3cml0ZV9hc3NvYyBvYiBsXG4gICAgfCBgTGlzdCBsIC0+IHdyaXRlX2xpc3Qgb2IgbFxuICAgIFxuIyAyODQgXCJ3cml0ZS5tbFwiXG4gICAgfCBgVHVwbGUgbCAtPiB3cml0ZV90dXBsZSBvYiBsXG4gICAgXG4jIDI4NyBcIndyaXRlLm1sXCJcbiAgICB8IGBWYXJpYW50IChzLCBvKSAtPiB3cml0ZV92YXJpYW50IG9iIHMgb1xuXG4jIDI5MCBcIndyaXRlLm1sXCJcbmFuZCB3cml0ZV9hc3NvYyBvYiBsID1cbiAgbGV0IGZfZWx0IG9iIChzLCB4KSA9XG4gICAgd3JpdGVfc3RyaW5nIG9iIHM7XG4gICAgQnVmZmVyLmFkZF9jaGFyIG9iICc6JztcbiAgICB3cml0ZV9qc29uIG9iIHhcbiAgaW5cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICd7JztcbiAgaXRlcjIgZl9lbHQgZl9zZXAgb2IgbDtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICd9JztcblxuYW5kIHdyaXRlX2xpc3Qgb2IgbCA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnWyc7XG4gIGl0ZXIyIHdyaXRlX2pzb24gZl9zZXAgb2IgbDtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICddJ1xuXG4jIDMwNiBcIndyaXRlLm1sXCJcbmFuZCB3cml0ZV90dXBsZSBvYiBsID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICcoJztcbiAgaXRlcjIgd3JpdGVfanNvbiBmX3NlcCBvYiBsO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJyknXG5cbiMgMzEzIFwid3JpdGUubWxcIlxuYW5kIHdyaXRlX3ZhcmlhbnQgb2IgcyBvID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICc8JztcbiAgd3JpdGVfc3RyaW5nIG9iIHM7XG4gIChtYXRjaCBvIHdpdGhcbiAgICAgICBOb25lIC0+ICgpXG4gICAgIHwgU29tZSB4IC0+XG4gICAgICAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJzonO1xuICAgICAgICAgd3JpdGVfanNvbiBvYiB4XG4gICk7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnPidcblxuIyAzMjUgXCJ3cml0ZS5tbFwiXG5sZXQgd3JpdGVfdCA9IHdyaXRlX2pzb25cblxubGV0IHJlYyB3cml0ZV9zdGRfanNvbiBvYiAoeCA6IHQpID1cbiAgbWF0Y2ggeCB3aXRoXG4gICAgICBgTnVsbCAtPiB3cml0ZV9udWxsIG9iICgpXG4gICAgfCBgQm9vbCBiIC0+IHdyaXRlX2Jvb2wgb2IgYlxuICAgIFxuIyAzMzUgXCJ3cml0ZS5tbFwiXG4gICAgfCBgSW50bGl0IHMgLT4gQnVmZmVyLmFkZF9zdHJpbmcgb2Igc1xuICAgIFxuIyAzNDEgXCJ3cml0ZS5tbFwiXG4gICAgfCBgRmxvYXRsaXQgcyAtPiBCdWZmZXIuYWRkX3N0cmluZyBvYiBzXG4gICAgXG4jIDM0NyBcIndyaXRlLm1sXCJcbiAgICB8IGBTdHJpbmdsaXQgcyAtPiBCdWZmZXIuYWRkX3N0cmluZyBvYiBzXG4gICAgXG4jIDM0OSBcIndyaXRlLm1sXCJcbiAgICB8IGBBc3NvYyBsIC0+IHdyaXRlX3N0ZF9hc3NvYyBvYiBsXG4gICAgfCBgTGlzdCBsIC0+IHdyaXRlX3N0ZF9saXN0IG9iIGxcbiAgICBcbiMgMzUyIFwid3JpdGUubWxcIlxuICAgIHwgYFR1cGxlIGwgLT4gd3JpdGVfc3RkX3R1cGxlIG9iIGxcbiAgICBcbiMgMzU1IFwid3JpdGUubWxcIlxuICAgIHwgYFZhcmlhbnQgKHMsIG8pIC0+IHdyaXRlX3N0ZF92YXJpYW50IG9iIHMgb1xuXG4jIDM1OCBcIndyaXRlLm1sXCJcbmFuZCB3cml0ZV9zdGRfYXNzb2Mgb2IgbCA9XG4gIGxldCBmX2VsdCBvYiAocywgeCkgPVxuICAgIHdyaXRlX3N0cmluZyBvYiBzO1xuICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnOic7XG4gICAgd3JpdGVfc3RkX2pzb24gb2IgeFxuICBpblxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ3snO1xuICBpdGVyMiBmX2VsdCBmX3NlcCBvYiBsO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ30nO1xuXG5hbmQgd3JpdGVfc3RkX2xpc3Qgb2IgbCA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnWyc7XG4gIGl0ZXIyIHdyaXRlX3N0ZF9qc29uIGZfc2VwIG9iIGw7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnXSdcblxuYW5kIHdyaXRlX3N0ZF90dXBsZSBvYiBsID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICdbJztcbiAgaXRlcjIgd3JpdGVfc3RkX2pzb24gZl9zZXAgb2IgbDtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICddJ1xuXG4jIDM3OSBcIndyaXRlLm1sXCJcbmFuZCB3cml0ZV9zdGRfdmFyaWFudCBvYiBzIG8gPVxuICBtYXRjaCBvIHdpdGhcbiAgICAgIE5vbmUgLT4gd3JpdGVfc3RyaW5nIG9iIHNcbiAgICB8IFNvbWUgeCAtPlxuICAgICAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJ1snO1xuICAgICAgICB3cml0ZV9zdHJpbmcgb2IgcztcbiAgICAgICAgQnVmZmVyLmFkZF9jaGFyIG9iICcsJztcbiAgICAgICAgd3JpdGVfc3RkX2pzb24gb2IgeDtcbiAgICAgICAgQnVmZmVyLmFkZF9jaGFyIG9iICddJ1xuXG5cbiMgMzkxIFwid3JpdGUubWxcIlxubGV0IHRvX2J1ZmZlciA/KHN1ZiA9IFwiXCIpID8oc3RkID0gZmFsc2UpIG9iIHggPVxuICBpZiBzdGQgdGhlblxuICAgIHdyaXRlX3N0ZF9qc29uIG9iIHhcbiAgZWxzZVxuICAgIHdyaXRlX2pzb24gb2IgeDtcbiAgQnVmZmVyLmFkZF9zdHJpbmcgb2Igc3VmXG5cbmxldCB0b19zdHJpbmcgP2J1ZiA/KGxlbiA9IDI1NikgPyhzdWYgPSBcIlwiKSA/c3RkIHggPVxuICBsZXQgb2IgPVxuICAgIG1hdGNoIGJ1ZiB3aXRoXG4gICAgICAgIE5vbmUgLT4gQnVmZmVyLmNyZWF0ZSBsZW5cbiAgICAgIHwgU29tZSBvYiAtPlxuICAgICAgICAgIEJ1ZmZlci5jbGVhciBvYjtcbiAgICAgICAgICBvYlxuICBpblxuICB0b19idWZmZXIgfnN1ZiA/c3RkIG9iIHg7XG4gIGxldCBzID0gQnVmZmVyLmNvbnRlbnRzIG9iIGluXG4gIEJ1ZmZlci5jbGVhciBvYjtcbiAgc1xuXG5sZXQgdG9fY2hhbm5lbCA/YnVmID8obGVuPTQwOTYpID8oc3VmID0gXCJcIikgP3N0ZCBvYyB4ID1cbiAgbGV0IG9iID1cbiAgICBtYXRjaCBidWYgd2l0aFxuICAgICAgICBOb25lIC0+IEJ1ZmZlci5jcmVhdGUgbGVuXG4gICAgICB8IFNvbWUgb2IgLT4gQnVmZmVyLmNsZWFyIG9iOyBvYlxuICBpblxuICB0b19idWZmZXIgfnN1ZiA/c3RkIG9iIHg7XG4gIEJ1ZmZlci5vdXRwdXRfYnVmZmVyIG9jIG9iO1xuICBCdWZmZXIuY2xlYXIgb2JcblxubGV0IHRvX291dHB1dCA/YnVmID8obGVuPTQwOTYpID8oc3VmID0gXCJcIikgP3N0ZCBvdXQgeCA9XG4gIGxldCBvYiA9XG4gICAgbWF0Y2ggYnVmIHdpdGhcbiAgICAgICAgTm9uZSAtPiBCdWZmZXIuY3JlYXRlIGxlblxuICAgICAgfCBTb21lIG9iIC0+IEJ1ZmZlci5jbGVhciBvYjsgb2JcbiAgaW5cbiAgdG9fYnVmZmVyIH5zdWYgP3N0ZCBvYiB4O1xuICBvdXQjb3V0cHV0IChCdWZmZXIuY29udGVudHMgb2IpIDAgKEJ1ZmZlci5sZW5ndGggb2IpO1xuICBCdWZmZXIuY2xlYXIgb2JcblxubGV0IHRvX2ZpbGUgP2xlbiA/c3RkID8oc3VmID0gXCJcXG5cIikgZmlsZSB4ID1cbiAgbGV0IG9jID0gb3Blbl9vdXQgZmlsZSBpblxuICB0cnlcbiAgICB0b19jaGFubmVsID9sZW4gfnN1ZiA/c3RkIG9jIHg7XG4gICAgY2xvc2Vfb3V0IG9jXG4gIHdpdGggZSAtPlxuICAgIGNsb3NlX291dF9ub2VyciBvYztcbiAgICByYWlzZSBlXG5cbmxldCBzZXFfdG9fYnVmZmVyID8oc3VmID0gXCJcXG5cIikgP3N0ZCBvYiBzdCA9XG4gIFNlcS5pdGVyICh0b19idWZmZXIgfnN1ZiA/c3RkIG9iKSBzdFxuXG5sZXQgc2VxX3RvX3N0cmluZyA/YnVmID8obGVuID0gMjU2KSA/KHN1ZiA9IFwiXFxuXCIpID9zdGQgc3QgPVxuICBsZXQgb2IgPVxuICAgIG1hdGNoIGJ1ZiB3aXRoXG4gICAgICAgIE5vbmUgLT4gQnVmZmVyLmNyZWF0ZSBsZW5cbiAgICAgIHwgU29tZSBvYiAtPlxuICAgICAgICAgIEJ1ZmZlci5jbGVhciBvYjtcbiAgICAgICAgICBvYlxuICBpblxuICBzZXFfdG9fYnVmZmVyIH5zdWYgP3N0ZCBvYiBzdDtcbiAgbGV0IHMgPSBCdWZmZXIuY29udGVudHMgb2IgaW5cbiAgQnVmZmVyLmNsZWFyIG9iO1xuICBzXG5cbmxldCBzZXFfdG9fY2hhbm5lbCA/YnVmID8obGVuPTIwOTYpID8oc3VmID0gXCJcXG5cIikgP3N0ZCBvYyBzZXEgPVxuICBsZXQgb2IgPVxuICAgIG1hdGNoIGJ1ZiB3aXRoXG4gICAgICAgIE5vbmUgLT4gQnVmZmVyLmNyZWF0ZSBsZW5cbiAgICAgIHwgU29tZSBvYiAtPiBCdWZmZXIuY2xlYXIgb2I7IG9iXG4gIGluXG4gIFNlcS5pdGVyIChmdW4ganNvbiAtPlxuICAgIHRvX2J1ZmZlciB+c3VmID9zdGQgb2IganNvbjtcbiAgICBCdWZmZXIub3V0cHV0X2J1ZmZlciBvYyBvYjtcbiAgICBCdWZmZXIuY2xlYXIgb2I7XG4gICkgc2VxXG5cbmxldCBzZXFfdG9fZmlsZSA/bGVuID8oc3VmID0gXCJcXG5cIikgP3N0ZCBmaWxlIHN0ID1cbiAgbGV0IG9jID0gb3Blbl9vdXQgZmlsZSBpblxuICB0cnlcbiAgICBzZXFfdG9fY2hhbm5lbCA/bGVuIH5zdWYgP3N0ZCBvYyBzdDtcbiAgICBjbG9zZV9vdXQgb2NcbiAgd2l0aCBlIC0+XG4gICAgY2xvc2Vfb3V0X25vZXJyIG9jO1xuICAgIHJhaXNlIGVcblxuXG5sZXQgcmVjIHNvcnQgPSBmdW5jdGlvblxuICB8IGBBc3NvYyBsIC0+XG4gICAgICBsZXQgbCA9IExpc3QucmV2IChMaXN0LnJldl9tYXAgKGZ1biAoaywgdikgLT4gKGssIHNvcnQgdikpIGwpIGluXG4gICAgICBgQXNzb2MgKExpc3Quc3RhYmxlX3NvcnQgKGZ1biAoYSwgXykgKGIsIF8pIC0+IFN0cmluZy5jb21wYXJlIGEgYikgbClcbiAgfCBgTGlzdCBsIC0+XG4gICAgICBgTGlzdCAoTGlzdC5yZXYgKExpc3QucmV2X21hcCBzb3J0IGwpKVxuICBcbiMgNDg1IFwid3JpdGUubWxcIlxuICB8IGBUdXBsZSBsIC0+XG4gICAgICBgVHVwbGUgKExpc3QucmV2IChMaXN0LnJldl9tYXAgc29ydCBsKSlcbiAgXG4jIDQ4OSBcIndyaXRlLm1sXCJcbiAgfCBgVmFyaWFudCAoaywgU29tZSB2KSBhcyB4IC0+XG4gICAgICBsZXQgdicgPSBzb3J0IHYgaW5cbiAgICAgIGlmIHYgPT0gdicgdGhlbiB4XG4gICAgICBlbHNlXG4gICAgICAgIGBWYXJpYW50IChrLCBTb21lIHYnKVxuICBcbiMgNDk1IFwid3JpdGUubWxcIlxuICB8IHggLT4geFxuIyA5MCBcInlvanNvbi5jcHBvLm1sXCJcbm1vZHVsZSBQcmV0dHkgPVxuc3RydWN0XG4jIDEgXCJwcmV0dHkubWxcIlxuKCpcbiAgIFByZXR0eS1wcmludCBKU09OIGRhdGEgaW4gYW4gYXR0ZW1wdCB0byBtYXhpbWl6ZSByZWFkYWJpbGl0eS5cblxuICAgMS4gV2hhdCBmaXRzIG9uIG9uZSBsaW5lIHN0YXlzIG9uIG9uZSBsaW5lLlxuICAgMi4gV2hhdCBkb2Vzbid0IGZpdCBvbiBvbmUgbGluZSBnZXRzIHByaW50ZWQgbW9yZSB2ZXJ0aWNhbGx5IHNvIGFzIHRvIG5vdFxuICAgICAgZXhjZWVkIGEgcmVhc29uYWJsZSBwYWdlIHdpZHRoLCBpZiBwb3NzaWJsZS5cblxuICAgQXJyYXlzIGNvbnRhaW5pbmcgb25seSBzaW1wbGUgZWxlbWVudHMgKFwiYXRvbXNcIikgYXJlIHByZXR0eS1wcmludGVkIHdpdGhcbiAgIGVuZC1vZi1saW5lIHdyYXBwaW5nIGxpa2Ugb3JkaW5hcnkgdGV4dDpcblxuICAgICBbXG4gICAgICAgIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLFxuICAgICAgICBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIlxuICAgICBdXG5cbiAgIE90aGVyIGFycmF5cyBhcmUgcHJpbnRlZCBlaXRoZXIgaG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgZGVwZW5kaW5nXG4gICBvbiB3aGV0aGVyIHRoZXkgZml0IG9uIGEgc2luZ2xlIGxpbmU6XG5cbiAgICAgWyB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH0sIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfSwgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9IF1cblxuICAgb3JcblxuICAgICBbXG4gICAgICAgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9LFxuICAgICAgIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfSxcbiAgICAgICB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH0sXG4gICAgICAgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9XG4gICAgIF1cbiopXG5cbmxldCBwcF9saXN0IHNlcCBwcHggb3V0IGwgPVxuICBsZXQgcHBfc2VwIG91dCAoKSA9IEZvcm1hdC5mcHJpbnRmIG91dCBcIiVzQCBcIiBzZXAgaW5cbiAgRm9ybWF0LnBwX3ByaW50X2xpc3QgfnBwX3NlcCBwcHggb3V0IGxcblxubGV0IGlzX2F0b20gKHg6IFs+IHRdKSA9XG4gIG1hdGNoIHggd2l0aFxuICB8IGBOdWxsXG4gIHwgYEJvb2wgX1xuICB8IGBJbnQgX1xuICB8IGBGbG9hdCBfXG4gIHwgYFN0cmluZyBfXG4gIHwgYEludGxpdCBfXG4gIHwgYEZsb2F0bGl0IF9cbiAgfCBgU3RyaW5nbGl0IF9cbiAgfCBgTGlzdCBbXVxuICB8IGBBc3NvYyBbXVxuICB8IGBUdXBsZSBbXVxuICB8IGBWYXJpYW50IChfLCBOb25lKSAtPiB0cnVlXG4gIHwgYExpc3QgX1xuICB8IGBBc3NvYyBfXG4gIHwgYFR1cGxlIF9cbiAgfCBgVmFyaWFudCAoXywgU29tZSBfKSAtPiBmYWxzZVxuXG5sZXQgaXNfYXRvbV9saXN0IGwgPVxuICBMaXN0LmZvcl9hbGwgaXNfYXRvbSBsXG5cbigqXG4gICBpbnNpZGVfYm94OiBpbmRpY2F0ZXMgdGhhdCB3ZSdyZSBhbHJlYWR5IHdpdGhpbiBhIGJveCB0aGF0IGltcG9zZXNcbiAgIGEgY2VydGFpbiBzdHlsZSBhbmQgd2Ugc2hvdWxkbid0IGNyZWF0ZSBhIG5ldyBvbmUuIFRoaXMgaXMgdXNlZCBmb3JcbiAgIHByaW50aW5nIGZpZWxkIHZhbHVlcyBsaWtlIHRoaXM6XG5cbiAgICAgZm9vOiBbXG4gICAgICAgYmFyXG4gICAgIF1cblxuICAgcmF0aGVyIHRoYW4gc29tZXRoaW5nIGVsc2UgbGlrZVxuXG4gICAgIGZvbzpcbiAgICAgICBbXG4gICAgICAgICBiYXJcbiAgICAgICBdXG4qKVxubGV0IHJlYyBmb3JtYXQgfmluc2lkZV9ib3ggc3RkIChvdXQ6Rm9ybWF0LmZvcm1hdHRlcikgKHg6dCkgOiB1bml0ID1cbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBgTnVsbCAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBcIm51bGxcIlxuICAgIHwgYEJvb2wgeCAtPiBGb3JtYXQucHBfcHJpbnRfYm9vbCBvdXQgeFxuICAgIFxuIyA5MiBcInByZXR0eS5tbFwiXG4gICAgfCBgSW50bGl0IHMgLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgc1xuICAgIFxuIyA5NSBcInByZXR0eS5tbFwiXG4gICAgfCBgRmxvYXRsaXQgcyAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBzXG4gICAgXG4jIDk4IFwicHJldHR5Lm1sXCJcbiAgICB8IGBTdHJpbmdsaXQgcyAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBzXG4gICAgXG4jIDEwMCBcInByZXR0eS5tbFwiXG4gICAgfCBgTGlzdCBbXSAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBcIltdXCJcbiAgICB8IGBMaXN0IGwgLT5cbiAgICAgIGlmIG5vdCBpbnNpZGVfYm94IHRoZW4gRm9ybWF0LmZwcmludGYgb3V0IFwiQFs8aHYyPlwiO1xuICAgICAgaWYgaXNfYXRvbV9saXN0IGwgdGhlblxuICAgICAgICAoKiB1c2UgbGluZSB3cmFwcGluZyBsaWtlIHdlIHdvdWxkIGRvIGZvciBhIHBhcmFncmFwaCBvZiB0ZXh0ICopXG4gICAgICAgIEZvcm1hdC5mcHJpbnRmIG91dCBcIltAOzwxIDA+QFs8aG92PiVhQF1AOzwxIC0yPl1cIlxuICAgICAgICAgIChwcF9saXN0IFwiLFwiIChmb3JtYXQgfmluc2lkZV9ib3g6ZmFsc2Ugc3RkKSkgbFxuICAgICAgZWxzZVxuICAgICAgICAoKiBwcmludCB0aGUgZWxlbWVudHMgaG9yaXpvbnRhbGx5IGlmIHRoZXkgZml0IG9uIHRoZSBsaW5lLFxuICAgICAgICAgICBvdGhlcndpc2UgcHJpbnQgdGhlbSBpbiBhIGNvbHVtbiAqKVxuICAgICAgICBGb3JtYXQuZnByaW50ZiBvdXQgXCJbQDs8MSAwPkBbPGh2PiVhQF1AOzwxIC0yPl1cIlxuICAgICAgICAgIChwcF9saXN0IFwiLFwiIChmb3JtYXQgfmluc2lkZV9ib3g6ZmFsc2Ugc3RkKSkgbDtcbiAgICAgIGlmIG5vdCBpbnNpZGVfYm94IHRoZW4gRm9ybWF0LmZwcmludGYgb3V0IFwiQF1cIjtcbiAgICB8IGBBc3NvYyBbXSAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBcInt9XCJcbiAgICB8IGBBc3NvYyBsIC0+XG4gICAgICBpZiBub3QgaW5zaWRlX2JveCB0aGVuIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBbPGh2Mj5cIjtcbiAgICAgIEZvcm1hdC5mcHJpbnRmIG91dCBcIntAOzwxIDA+JWFAOzwxIC0yPn1cIiAocHBfbGlzdCBcIixcIiAoZm9ybWF0X2ZpZWxkIHN0ZCkpIGw7XG4gICAgICBpZiBub3QgaW5zaWRlX2JveCB0aGVuIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBdXCI7XG4gICAgXG4jIDExOSBcInByZXR0eS5tbFwiXG4gICAgfCBgVHVwbGUgbCAtPlxuICAgICAgICBpZiBzdGQgdGhlblxuICAgICAgICAgIGZvcm1hdCB+aW5zaWRlX2JveCBzdGQgb3V0IChgTGlzdCBsKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgaWYgbCA9IFtdIHRoZW5cbiAgICAgICAgICAgIEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IFwiKClcIlxuICAgICAgICAgIGVsc2UgKFxuICAgICAgICAgICAgaWYgbm90IGluc2lkZV9ib3ggdGhlbiBGb3JtYXQuZnByaW50ZiBvdXQgXCJAWzxob3YyPlwiO1xuICAgICAgICAgICAgRm9ybWF0LmZwcmludGYgb3V0IFwiKEAsJWFAOzwwIC0yPilcIiAocHBfbGlzdCBcIixcIiAoZm9ybWF0IH5pbnNpZGVfYm94OmZhbHNlIHN0ZCkpIGw7XG4gICAgICAgICAgICBpZiBub3QgaW5zaWRlX2JveCB0aGVuIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBdXCI7XG4gICAgICAgICAgKVxuICAgIFxuIyAxMzIgXCJwcmV0dHkubWxcIlxuICAgIHwgYFZhcmlhbnQgKHMsIE5vbmUpIC0+XG4gICAgICAgIGlmIHN0ZCB0aGVuXG4gICAgICAgICAgXG4jIDEzNyBcInByZXR0eS5tbFwiXG4gICAgICAgICAgbGV0IHJlcHJlc2VudGF0aW9uID0gYFN0cmluZ2xpdCBzIGluXG4gICAgICAgICAgXG4jIDEzOSBcInByZXR0eS5tbFwiXG4gICAgICAgICAgZm9ybWF0IH5pbnNpZGVfYm94IHN0ZCBvdXQgcmVwcmVzZW50YXRpb25cbiAgICAgICAgZWxzZVxuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIG91dCBcIjwlcz5cIiAoanNvbl9zdHJpbmdfb2Zfc3RyaW5nIHMpXG5cbiAgICB8IGBWYXJpYW50IChzLCBTb21lIHgpIC0+XG4gICAgICAgIGlmIHN0ZCB0aGVuXG4gICAgICAgICAgXG4jIDE0OCBcInByZXR0eS5tbFwiXG4gICAgICAgICAgbGV0IHJlcHJlc2VudGF0aW9uID0gYFN0cmluZ2xpdCBzIGluXG4gICAgICAgICAgXG4jIDE1MCBcInByZXR0eS5tbFwiXG4gICAgICAgICAgZm9ybWF0IH5pbnNpZGVfYm94IHN0ZCBvdXQgKGBMaXN0IFsgcmVwcmVzZW50YXRpb247IHggXSlcbiAgICAgICAgZWxzZVxuICAgICAgICAgIGxldCBvcCA9IGpzb25fc3RyaW5nX29mX3N0cmluZyBzIGluXG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgb3V0IFwiPEBbPGh2Mj4lczogJWFAXT5cIiBvcCAoZm9ybWF0IH5pbnNpZGVfYm94OnRydWUgc3RkKSB4XG5cbiMgMTU2IFwicHJldHR5Lm1sXCJcbmFuZCBmb3JtYXRfZmllbGQgc3RkIG91dCAobmFtZSwgeCkgPVxuICBGb3JtYXQuZnByaW50ZiBvdXQgXCJAWzxodjI+JXM6ICVhQF1cIiAoanNvbl9zdHJpbmdfb2Zfc3RyaW5nIG5hbWUpIChmb3JtYXQgfmluc2lkZV9ib3g6dHJ1ZSBzdGQpIHhcblxubGV0IHBwID8oc3RkID0gZmFsc2UpIG91dCB4ID1cbiAgRm9ybWF0LmZwcmludGYgb3V0IFwiQFs8aHYyPiVhQF1cIiAoZm9ybWF0IH5pbnNpZGVfYm94OnRydWUgc3RkKSAoeCA6PiB0KVxuXG5sZXQgdG9fc3RyaW5nID9zdGQgeCA9XG4gIEZvcm1hdC5hc3ByaW50ZiBcIiVhXCIgKHBwID9zdGQpIHhcblxubGV0IHRvX2NoYW5uZWwgP3N0ZCBvYyB4ID1cbiAgbGV0IGZtdCA9IEZvcm1hdC5mb3JtYXR0ZXJfb2Zfb3V0X2NoYW5uZWwgb2MgaW5cbiAgRm9ybWF0LmZwcmludGYgZm10IFwiJWFAP1wiIChwcCA/c3RkKSB4XG4jIDkzIFwieW9qc29uLmNwcG8ubWxcIlxuZW5kXG4jIDEgXCJtb25vbW9ycGhpYy5tbFwiXG5sZXQgcmVjIHBwIGZtdCA9XG4gIGZ1bmN0aW9uXG4gIHwgYE51bGwgLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBmbXQgXCJgTnVsbFwiXG4gIHwgYEJvb2wgeCAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBCb29sIChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiJUJcIiB4O1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyAxNSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgSW50bGl0IHggLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgSW50bGl0IChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiJVNcIiB4O1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyAyNyBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgRmxvYXRsaXQgeCAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBGbG9hdGxpdCAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVTXCIgeDtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgMzkgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYFN0cmluZ2xpdCB4IC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYFN0cmluZ2xpdCAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVTXCIgeDtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgNDQgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYEFzc29jIHhzIC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYEFzc29jIChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQFs8Mj5bXCI7XG4gICAgaWdub3JlIChMaXN0LmZvbGRfbGVmdFxuICAgICAgKGZ1biBzZXAgKGtleSwgdmFsdWUpIC0+XG4gICAgICAgIGlmIHNlcCB0aGVuXG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiO0AgXCI7XG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiKEBbXCI7XG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiJVNcIiBrZXk7XG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiLEAgXCI7XG4gICAgICAgICAgcHAgZm10IHZhbHVlO1xuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiO1xuICAgICAgICAgIHRydWUpIGZhbHNlIHhzKTtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJALF1AXVwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIHwgYExpc3QgeHMgLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgTGlzdCAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBbPDI+W1wiO1xuICAgIGlnbm9yZSAoTGlzdC5mb2xkX2xlZnRcbiAgICAgIChmdW4gc2VwIHggLT5cbiAgICAgICAgaWYgc2VwIHRoZW5cbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCI7QCBcIjtcbiAgICAgICAgICBwcCBmbXQgeDtcbiAgICAgICAgICB0cnVlKSBmYWxzZSB4cyk7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQCxdQF1cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgNzEgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYFR1cGxlIHR1cCAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBUdXBsZSAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBbPDI+W1wiO1xuICAgIGlnbm9yZSAoTGlzdC5mb2xkX2xlZnRcbiAgICAgIChmdW4gc2VwIGUgLT5cbiAgICAgICAgIGlmIHNlcCB0aGVuXG4gICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIjtAIFwiO1xuICAgICAgICAgICBwcCBmbXQgZTtcbiAgICAgICAgICAgdHJ1ZSkgZmFsc2UgdHVwKTtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJALF1AXVwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyA4NCBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgVmFyaWFudCAobmFtZSwgdmFsdWUpIC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYFZhcmlhbnQgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIoQFtcIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlU1wiIG5hbWU7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiLEAgXCI7XG4gICAgKG1hdGNoIHZhbHVlIHdpdGhcbiAgICAgIHwgTm9uZSAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIGZtdCBcIk5vbmVcIlxuICAgICAgfCBTb21lIHggLT5cbiAgICAgICAgRm9ybWF0LnBwX3ByaW50X3N0cmluZyBmbXQgXCIoU29tZSBcIjtcbiAgICAgICAgcHAgZm10IHg7XG4gICAgICAgIEZvcm1hdC5wcF9wcmludF9zdHJpbmcgZm10IFwiKVwiKTtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuXG4jIDk5IFwibW9ub21vcnBoaWMubWxcIlxubGV0IHNob3cgeCA9XG4gIEZvcm1hdC5hc3ByaW50ZiBcIiVhXCIgcHAgeFxuXG5sZXQgcmVjIGVxdWFsIGEgYiA9XG4gIG1hdGNoIGEsIGIgd2l0aFxuICB8IGBOdWxsLCBgTnVsbCAtPiB0cnVlXG4gIHwgYEJvb2wgYSwgYEJvb2wgYiAtPiBhID0gYlxuICAgIFxuIyAxMTAgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgSW50bGl0IGEsIGBJbnRsaXQgYiAtPiBhID0gYlxuICAgIFxuIyAxMTYgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgRmxvYXRsaXQgYSwgYEZsb2F0bGl0IGIgLT4gYSA9IGJcbiAgICBcbiMgMTIyIFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYFN0cmluZ2xpdCBhLCBgU3RyaW5nbGl0IGIgLT4gYSA9IGJcbiAgICBcbiMgMTI0IFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYEFzc29jIHhzLCBgQXNzb2MgeXMgLT5cbiAgICAgIGxldCBjb21wYXJlX2tleXMgPSBmdW4gKGtleSwgXykgKGtleScsIF8pIC0+IFN0cmluZy5jb21wYXJlIGtleSBrZXknIGluXG4gICAgICBsZXQgeHMgPSBMaXN0LnN0YWJsZV9zb3J0IGNvbXBhcmVfa2V5cyB4cyBpblxuICAgICAgbGV0IHlzID0gTGlzdC5zdGFibGVfc29ydCBjb21wYXJlX2tleXMgeXMgaW5cbiAgICAgIChtYXRjaCBMaXN0LmZvcl9hbGwyIChmdW4gKGtleSwgdmFsdWUpIChrZXknLCB2YWx1ZScpIC0+XG4gICAgICAgIG1hdGNoIGtleSA9IGtleScgd2l0aFxuICAgICAgICB8IGZhbHNlIC0+IGZhbHNlXG4gICAgICAgIHwgdHJ1ZSAtPiBlcXVhbCB2YWx1ZSB2YWx1ZScpIHhzIHlzIHdpdGhcbiAgICAgIHwgcmVzdWx0IC0+IHJlc3VsdFxuICAgICAgfCBleGNlcHRpb24gSW52YWxpZF9hcmd1bWVudCBfIC0+XG4gICAgICAgICgqIHRoZSBsaXN0cyB3ZXJlIG9mIGRpZmZlcmVudCBsZW5ndGhzLCB0aHVzIHVuZXF1YWwgKilcbiAgICAgICAgZmFsc2UpXG4gICAgXG4jIDEzNyBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBUdXBsZSB4cywgYFR1cGxlIHlzXG4gICAgXG4jIDEzOSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBMaXN0IHhzLCBgTGlzdCB5cyAtPlxuICAgICAgKG1hdGNoIExpc3QuZm9yX2FsbDIgZXF1YWwgeHMgeXMgd2l0aFxuICAgICAgfCByZXN1bHQgLT4gcmVzdWx0XG4gICAgICB8IGV4Y2VwdGlvbiBJbnZhbGlkX2FyZ3VtZW50IF8gLT5cbiAgICAgICAgKCogdGhlIGxpc3RzIHdlcmUgb2YgZGlmZmVyZW50IGxlbmd0aHMsIHRodXMgdW5lcXVhbCAqKVxuICAgICAgICBmYWxzZSlcbiAgICBcbiMgMTQ2IFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYFZhcmlhbnQgKG5hbWUsIHZhbHVlKSwgYFZhcmlhbnQgKG5hbWUnLCB2YWx1ZScpIC0+XG4gICAgICAobWF0Y2ggbmFtZSA9IG5hbWUnIHdpdGhcbiAgICAgIHwgZmFsc2UgLT4gZmFsc2VcbiAgICAgIHwgdHJ1ZSAtPlxuICAgICAgICBtYXRjaCB2YWx1ZSwgdmFsdWUnIHdpdGhcbiAgICAgICAgfCBOb25lLCBOb25lIC0+IHRydWVcbiAgICAgICAgfCBTb21lIHgsIFNvbWUgeSAtPiBlcXVhbCB4IHlcbiAgICAgICAgfCBfIC0+IGZhbHNlKVxuICAgIFxuIyAxNTUgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBfIC0+IGZhbHNlXG5cbiMgMiBcIndyaXRlMi5tbFwiXG5sZXQgcHJldHR5X3ByaW50ID9zdGQgb3V0IHggPVxuICBQcmV0dHkucHAgP3N0ZCBvdXQgeFxuXG5sZXQgcHJldHR5X3RvX3N0cmluZyA/c3RkIHggPVxuICBQcmV0dHkudG9fc3RyaW5nID9zdGQgeFxuXG5sZXQgcHJldHR5X3RvX2NoYW5uZWwgP3N0ZCBvYyB4ID1cbiAgUHJldHR5LnRvX2NoYW5uZWwgP3N0ZCBvYyB4XG5cbiMgMSBcImxpYi9yZWFkLm1sbFwiXG4gXG4gIFxuIyAyIFwibGliL3JlYWQubWxsXCJcbiAgbW9kdWxlIExleGluZyA9XG4gICAgKCpcbiAgICAgIFdlIG92ZXJyaWRlIExleGluZy5lbmdpbmUgaW4gb3JkZXIgdG8gYXZvaWQgY3JlYXRpbmcgYSBuZXcgcG9zaXRpb25cbiAgICAgIHJlY29yZCBlYWNoIHRpbWUgYSBydWxlIGlzIG1hdGNoZWQuXG4gICAgICBUaGlzIHJlZHVjZXMgdG90YWwgcGFyc2luZyB0aW1lIGJ5IGFib3V0IDMxJS5cbiAgICAqKVxuICBzdHJ1Y3RcbiAgICBpbmNsdWRlIExleGluZ1xuXG4gICAgZXh0ZXJuYWwgY19lbmdpbmUgOiBsZXhfdGFibGVzIC0+IGludCAtPiBsZXhidWYgLT4gaW50ID0gXCJjYW1sX2xleF9lbmdpbmVcIlxuXG4gICAgbGV0IGVuZ2luZSB0Ymwgc3RhdGUgYnVmID1cbiAgICAgIGxldCByZXN1bHQgPSBjX2VuZ2luZSB0Ymwgc3RhdGUgYnVmIGluXG4gICAgICAoKlxuICAgICAgaWYgcmVzdWx0ID49IDAgdGhlbiBiZWdpblxuICAgICAgICBidWYubGV4X3N0YXJ0X3AgPC0gYnVmLmxleF9jdXJyX3A7XG4gICAgICAgIGJ1Zi5sZXhfY3Vycl9wIDwtIHtidWYubGV4X2N1cnJfcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBwb3NfY251bSA9IGJ1Zi5sZXhfYWJzX3BvcyArIGJ1Zi5sZXhfY3Vycl9wb3N9O1xuICAgICAgZW5kO1xuICAgICAgKilcbiAgICAgIHJlc3VsdFxuICBlbmRcblxuICBvcGVuIFByaW50ZlxuICBvcGVuIExleGluZ1xuXG4gICgqIHNlZSBkZXNjcmlwdGlvbiBpbiBjb21tb24ubWxpICopXG4gIHR5cGUgbGV4ZXJfc3RhdGUgPSBMZXhlcl9zdGF0ZS50ID0ge1xuICAgIGJ1ZiA6IEJ1ZmZlci50O1xuICAgIG11dGFibGUgbG51bSA6IGludDtcbiAgICBtdXRhYmxlIGJvbCA6IGludDtcbiAgICBtdXRhYmxlIGZuYW1lIDogc3RyaW5nIG9wdGlvbjtcbiAgfVxuXG4gIGxldCBkZWMgYyA9XG4gICAgQ2hhci5jb2RlIGMgLSA0OFxuXG4gIGxldCBoZXggYyA9XG4gICAgbWF0Y2ggYyB3aXRoXG4gICAgICAgICcwJy4uJzknIC0+IGludF9vZl9jaGFyIGMgLSBpbnRfb2ZfY2hhciAnMCdcbiAgICAgIHwgJ2EnLi4nZicgLT4gaW50X29mX2NoYXIgYyAtIGludF9vZl9jaGFyICdhJyArIDEwXG4gICAgICB8ICdBJy4uJ0YnIC0+IGludF9vZl9jaGFyIGMgLSBpbnRfb2ZfY2hhciAnQScgKyAxMFxuICAgICAgfCBfIC0+IGFzc2VydCBmYWxzZVxuXG4gIGxldCBjdXN0b21fZXJyb3IgZGVzY3IgdiBsZXhidWYgPVxuICAgIGxldCBvZmZzID0gbGV4YnVmLmxleF9hYnNfcG9zIC0gMSBpblxuICAgIGxldCBib2wgPSB2LmJvbCBpblxuICAgIGxldCBwb3MxID0gb2ZmcyArIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIC0gYm9sIC0gMSBpblxuICAgIGxldCBwb3MyID0gbWF4IHBvczEgKG9mZnMgKyBsZXhidWYubGV4X2N1cnJfcG9zIC0gYm9sKSBpblxuICAgIGxldCBmaWxlX2xpbmUgPVxuICAgICAgbWF0Y2ggdi5mbmFtZSB3aXRoXG4gICAgICAgICAgTm9uZSAtPiBcIkxpbmVcIlxuICAgICAgICB8IFNvbWUgcyAtPlxuICAgICAgICAgICAgc3ByaW50ZiBcIkZpbGUgJXMsIGxpbmVcIiBzXG4gICAgaW5cbiAgICBsZXQgYnl0ZXMgPVxuICAgICAgaWYgcG9zMSA9IHBvczIgdGhlblxuICAgICAgICBzcHJpbnRmIFwiYnl0ZSAlaVwiIChwb3MxKzEpXG4gICAgICBlbHNlXG4gICAgICAgIHNwcmludGYgXCJieXRlcyAlaS0laVwiIChwb3MxKzEpIChwb3MyKzEpXG4gICAgaW5cbiAgICBsZXQgbXNnID0gc3ByaW50ZiBcIiVzICVpLCAlczpcXG4lc1wiIGZpbGVfbGluZSB2LmxudW0gYnl0ZXMgZGVzY3IgaW5cbiAgICBqc29uX2Vycm9yIG1zZ1xuXG5cbiAgbGV0IGxleGVyX2Vycm9yIGRlc2NyIHYgbGV4YnVmID1cbiAgICBjdXN0b21fZXJyb3JcbiAgICAgIChzcHJpbnRmIFwiJXMgJyVzJ1wiIGRlc2NyIChMZXhpbmcubGV4ZW1lIGxleGJ1ZikpXG4gICAgICB2IGxleGJ1ZlxuXG4gIGxldCByZWFkX2p1bmsgPSByZWYgKGZ1biBfIC0+IGFzc2VydCBmYWxzZSlcblxuICBsZXQgbG9uZ19lcnJvciBkZXNjciB2IGxleGJ1ZiA9XG4gICAgbGV0IGp1bmsgPSBMZXhpbmcubGV4ZW1lIGxleGJ1ZiBpblxuICAgIGxldCBleHRyYV9qdW5rID0gIXJlYWRfanVuayBsZXhidWYgaW5cbiAgICBjdXN0b21fZXJyb3JcbiAgICAgIChzcHJpbnRmIFwiJXMgJyVzJXMnXCIgZGVzY3IganVuayBleHRyYV9qdW5rKVxuICAgICAgdiBsZXhidWZcblxuICBsZXQgbWluMTAgPSBtaW5faW50IC8gMTAgLSAoaWYgbWluX2ludCBtb2QgMTAgPSAwIHRoZW4gMCBlbHNlIDEpXG4gIGxldCBtYXgxMCA9IG1heF9pbnQgLyAxMCArIChpZiBtYXhfaW50IG1vZCAxMCA9IDAgdGhlbiAwIGVsc2UgMSlcblxuICBleGNlcHRpb24gSW50X292ZXJmbG93XG5cbiAgbGV0IGV4dHJhY3RfcG9zaXRpdmVfaW50IGxleGJ1ZiA9XG4gICAgbGV0IHN0YXJ0ID0gbGV4YnVmLmxleF9zdGFydF9wb3MgaW5cbiAgICBsZXQgc3RvcCA9IGxleGJ1Zi5sZXhfY3Vycl9wb3MgaW5cbiAgICBsZXQgcyA9IGxleGJ1Zi5sZXhfYnVmZmVyIGluXG4gICAgbGV0IG4gPSByZWYgMCBpblxuICAgIGZvciBpID0gc3RhcnQgdG8gc3RvcCAtIDEgZG9cbiAgICAgIGlmICFuID49IG1heDEwIHRoZW5cbiAgICAgICAgcmFpc2UgSW50X292ZXJmbG93XG4gICAgICBlbHNlXG4gICAgICAgIG4gOj0gMTAgKiAhbiArIGRlYyAoQnl0ZXMuZ2V0IHMgaSlcbiAgICBkb25lO1xuICAgIGlmICFuIDwgMCB0aGVuXG4gICAgICByYWlzZSBJbnRfb3ZlcmZsb3dcbiAgICBlbHNlXG4gICAgICAhblxuXG4gIGxldCBtYWtlX3Bvc2l0aXZlX2ludCB2IGxleGJ1ZiA9XG4gICAgICAgIFxuIyAxMDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICBgSW50bGl0IChsZXhlbWUgbGV4YnVmKVxuXG4gIFxuIyAxMTMgXCJsaWIvcmVhZC5tbGxcIlxuICBsZXQgZXh0cmFjdF9uZWdhdGl2ZV9pbnQgbGV4YnVmID1cbiAgICBsZXQgc3RhcnQgPSBsZXhidWYubGV4X3N0YXJ0X3BvcyArIDEgaW5cbiAgICBsZXQgc3RvcCA9IGxleGJ1Zi5sZXhfY3Vycl9wb3MgaW5cbiAgICBsZXQgcyA9IGxleGJ1Zi5sZXhfYnVmZmVyIGluXG4gICAgbGV0IG4gPSByZWYgMCBpblxuICAgIGZvciBpID0gc3RhcnQgdG8gc3RvcCAtIDEgZG9cbiAgICAgIGlmICFuIDw9IG1pbjEwIHRoZW5cbiAgICAgICAgcmFpc2UgSW50X292ZXJmbG93XG4gICAgICBlbHNlXG4gICAgICAgIG4gOj0gMTAgKiAhbiAtIGRlYyAoQnl0ZXMuZ2V0IHMgaSlcbiAgICBkb25lO1xuICAgIGlmICFuID4gMCB0aGVuXG4gICAgICByYWlzZSBJbnRfb3ZlcmZsb3dcbiAgICBlbHNlXG4gICAgICAhblxuXG4gIGxldCBtYWtlX25lZ2F0aXZlX2ludCB2IGxleGJ1ZiA9XG4gICAgICAgIFxuIyAxMzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICBgSW50bGl0IChsZXhlbWUgbGV4YnVmKVxuXG5cbiAgXG4jIDE0MSBcImxpYi9yZWFkLm1sbFwiXG4gIGxldCBzZXRfZmlsZV9uYW1lIHYgZm5hbWUgPVxuICAgIHYuZm5hbWUgPC0gZm5hbWVcblxuICBsZXQgbmV3bGluZSB2IGxleGJ1ZiA9XG4gICAgdi5sbnVtIDwtIHYubG51bSArIDE7XG4gICAgdi5ib2wgPC0gbGV4YnVmLmxleF9hYnNfcG9zICsgbGV4YnVmLmxleF9jdXJyX3Bvc1xuXG4gIGxldCBhZGRfbGV4ZW1lIGJ1ZiBsZXhidWYgPVxuICAgIGxldCBsZW4gPSBsZXhidWYubGV4X2N1cnJfcG9zIC0gbGV4YnVmLmxleF9zdGFydF9wb3MgaW5cbiAgICBCdWZmZXIuYWRkX3N1YmJ5dGVzIGJ1ZiBsZXhidWYubGV4X2J1ZmZlciBsZXhidWYubGV4X3N0YXJ0X3BvcyBsZW5cblxuICBsZXQgbWFwX2xleGVtZSBmIGxleGJ1ZiA9XG4gICAgbGV0IGxlbiA9IGxleGJ1Zi5sZXhfY3Vycl9wb3MgLSBsZXhidWYubGV4X3N0YXJ0X3BvcyBpblxuICAgIGYgKEJ5dGVzLnN1Yl9zdHJpbmcgbGV4YnVmLmxleF9idWZmZXIgbGV4YnVmLmxleF9zdGFydF9wb3MgbGVuKSAwIGxlblxuXG4gIHR5cGUgdmFyaWFudF9raW5kID0gWyBgRWRneV9icmFja2V0IHwgYFNxdWFyZV9icmFja2V0IHwgYERvdWJsZV9xdW90ZSBdXG4gIHR5cGUgdHVwbGVfa2luZCA9IFsgYFBhcmVudGhlc2lzIHwgYFNxdWFyZV9icmFja2V0IF1cblxuXG4jIDE2MSBcImxpYi9yZWFkLm1sXCJcbiMgMTYxIFwibGliL3JlYWQubWxcIlxubGV0IF9fb2NhbWxfbGV4X3RhYmxlcyA9IHtcbiAgTGV4aW5nLmxleF9iYXNlID1cbiAgIFwiXFwwMDBcXDAwMFxcMjM2XFwyNTVcXDIzN1xcMjU1XFwwMDNcXDAwMFxcMjM5XFwyNTVcXDAxNlxcMDAwXFwyNDJcXDI1NVxcMjQzXFwyNTVcXFxuICAgIFxcMjQ0XFwyNTVcXDI0NVxcMjU1XFwwMDBcXDAwMFxcMDMxXFwwMDBcXDI0OVxcMjU1XFwwODVcXDAwMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMVxcMDAwXFwwMDJcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDNcXDAwMFxcMjU0XFwyNTVcXDAwMVxcMDAwXFwwMDRcXDAwMFxcMjUzXFwyNTVcXDAxMVxcMDAwXFwyNTJcXDI1NVxcMDAzXFwwMDBcXFxuICAgIFxcMDAxXFwwMDBcXDAwM1xcMDAwXFwwMDJcXDAwMFxcMDAzXFwwMDBcXDAwMFxcMDAwXFwyNTFcXDI1NVxcMDIxXFwwMDBcXDA5N1xcMDAwXFxcbiAgICBcXDAxMFxcMDAwXFwwMjJcXDAwMFxcMDIwXFwwMDBcXDAxNlxcMDAwXFwwMjJcXDAwMFxcMDEyXFwwMDBcXDAwOFxcMDAwXFwyNTBcXDI1NVxcXG4gICAgXFwxMTlcXDAwMFxcMTI5XFwwMDBcXDEzOVxcMDAwXFwxNjFcXDAwMFxcMTcxXFwwMDBcXDE4MVxcMDAwXFwxOTNcXDAwMFxcMjA5XFwwMDBcXFxuICAgIFxcMjQwXFwyNTVcXDAxMVxcMDAwXFwwMzhcXDAwMFxcMjUyXFwyNTVcXDA2NVxcMDAwXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDExMFxcMDAwXFxcbiAgICBcXDI1MlxcMjU1XFwxNjNcXDAwMFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwyMzRcXDAwMFxcMjQ3XFwyNTVcXDI0OFxcMjU1XFwwNDhcXDAwMVxcXG4gICAgXFwyNTBcXDI1NVxcMjUxXFwyNTVcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwNzFcXDAwMVxcMTI2XFwwMDFcXFxuICAgIFxcMTQ5XFwwMDFcXDI0OVxcMjU1XFwwMzlcXDAwMFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwwMzhcXDAwMFxcMTg3XFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDI0OFxcMDAxXFwwMTVcXDAwMlxcMjU1XFwyNTVcXDIyMFxcMDAwXFwyNTNcXDI1NVxcMjU1XFwyNTVcXDI0NVxcMDAwXFwwMzlcXDAwMlxcXG4gICAgXFwxMDlcXDAwMlxcMDE0XFwwMDFcXDA4OFxcMDAyXFwxNjRcXDAwMlxcMTg3XFwwMDJcXDIyNVxcMDAyXFwwMTNcXDAwMFxcMjUyXFwyNTVcXFxuICAgIFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDE0XFwwMDBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAzMFxcMDAwXFxcbiAgICBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAxNVxcMDAwXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMTdcXDAwMVxcXG4gICAgXFwyNTFcXDI1NVxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAxOVxcMDAwXFwyNTJcXDI1NVxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDAxNVxcMDAwXFwyNTVcXDI1NVxcMDE2XFwwMDBcXDI1NVxcMjU1XFwwMDhcXDAwMVxcMDA1XFwwMDBcXDI1M1xcMjU1XFxcbiAgICBcXDAyM1xcMDAwXFwyNTRcXDI1NVxcMDIwXFwwMDBcXDI1NVxcMjU1XFwwNDZcXDAwMFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwwNDJcXDAwMFxcXG4gICAgXFwwNTJcXDAwMFxcMDUzXFwwMDBcXDI1NVxcMjU1XFwwNTNcXDAwMFxcMDQ4XFwwMDBcXDA5MVxcMDAwXFwwOTJcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDI3XFwwMDFcXDI1MFxcMjU1XFwyNTFcXDI1NVxcMTM3XFwwMDBcXDEwNFxcMDAwXFwwODlcXDAwMFxcMDg4XFwwMDBcXDEwNlxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwxNDNcXDAwMFxcMTM3XFwwMDBcXDE3N1xcMDAwXFwyNTRcXDI1NVxcMTgzXFwwMDBcXDE2OFxcMDAwXFwxNjZcXDAwMFxcXG4gICAgXFwxODNcXDAwMFxcMDAyXFwwMDBcXDI1M1xcMjU1XFwxNzdcXDAwMFxcMTcyXFwwMDBcXDE4N1xcMDAwXFwwMDRcXDAwMFxcMjUyXFwyNTVcXFxuICAgIFxcMDUzXFwwMDJcXDI1MVxcMjU1XFwyNTJcXDI1NVxcMjUzXFwyNTVcXDEwM1xcMDAxXFwyNTVcXDI1NVxcMjQ4XFwwMDJcXDI1NFxcMjU1XFxcbiAgICBcXDAwNlxcMDAzXFwwMzBcXDAwM1xcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDA0MFxcMDAzXFwwNTBcXDAwM1xcXG4gICAgXFwwNzRcXDAwM1xcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDA2MVxcMDAzXFwwODRcXDAwM1xcMTA4XFwwMDNcXFxuICAgIFxcMjQ5XFwyNTVcXDI1MFxcMjU1XFwyNTFcXDI1NVxcMjQ0XFwwMDBcXDEyMFxcMDAzXFwxNDJcXDAwM1xcMTc5XFwwMDBcXDE5NFxcMDAwXFxcbiAgICBcXDAxNVxcMDAwXFwyNTVcXDI1NVxcMTkwXFwwMDBcXDE4OFxcMDAwXFwxODdcXDAwMFxcMTkzXFwwMDBcXDE4M1xcMDAwXFwxNzlcXDAwMFxcXG4gICAgXFwyNTRcXDI1NVxcMTkxXFwwMDBcXDIwMVxcMDAwXFwyMDBcXDAwMFxcMTk2XFwwMDBcXDIwM1xcMDAwXFwxOTNcXDAwMFxcMTg5XFwwMDBcXFxuICAgIFxcMjUzXFwyNTVcXDE1N1xcMDAzXFwwOTVcXDAwM1xcMTc0XFwwMDNcXDE5NlxcMDAzXFwyMDZcXDAwM1xcMjE2XFwwMDNcXDIyOFxcMDAzXFxcbiAgICBcXDIzOVxcMDAzXFwwNjBcXDAwMFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDEyXFwwMDRcXDI1MlxcMjU1XFwyNTNcXDI1NVxcXG4gICAgXFwwODdcXDAwNFxcMjU1XFwyNTVcXDE0NVxcMDA0XFwyNTJcXDI1NVxcMjUzXFwyNTVcXDIyMVxcMDA0XFwyNTVcXDI1NVxcMjI5XFwwMDBcXFxuICAgIFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMjMxXFwwMDBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAwMlxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwwMThcXDAwMVxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAzNFxcMDAxXFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAzXFwwMDBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDM4XFwwMDFcXFxuICAgIFxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDEyMFxcMDAxXFwyNTFcXDI1NVxcMjUyXFwyNTVcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMjA4XFwwMDBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDIxMVxcMDAwXFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDE4OVxcMDAwXFwyNTVcXDI1NVxcMTQzXFwwMDFcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAxM1xcMDAxXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwOTVcXDAwMVxcMjUyXFwyNTVcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDUwXFwwMDFcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAyNlxcMDAxXFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDIzM1xcMDAwXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwyMjJcXDAwMFxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwNzlcXDAwNVxcMjM3XFwyNTVcXDIzOFxcMjU1XFwwMTBcXDAwMFxcMjQwXFwyNTVcXDA0NFxcMDAxXFxcbiAgICBcXDI0M1xcMjU1XFwyNDRcXDI1NVxcMjQ1XFwyNTVcXDI0NlxcMjU1XFwwNjFcXDAwMVxcMDAyXFwwMDRcXDI0OVxcMjU1XFwwNDVcXDAwNVxcXG4gICAgXFwyMDlcXDAwMFxcMjI4XFwwMDBcXDIxMVxcMDAwXFwyMzJcXDAwMFxcMjI1XFwwMDBcXDIyM1xcMDAwXFwyNDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjM1XFwwMDBcXDIzNFxcMDAwXFwwMDhcXDAwMVxcMjU0XFwyNTVcXDAwNFxcMDAxXFwwMjNcXDAwMVxcMjUzXFwyNTVcXDA1NFxcMDAxXFxcbiAgICBcXDI1MlxcMjU1XFwwMzFcXDAwMVxcMDI5XFwwMDFcXDAzMlxcMDAxXFwwMzlcXDAwMVxcMDQ5XFwwMDFcXDA0NVxcMDAxXFwyNTFcXDI1NVxcXG4gICAgXFwwNTdcXDAwMVxcMDgyXFwwMDFcXDA4MFxcMDAxXFwwNzhcXDAwMVxcMDg0XFwwMDFcXDA3NFxcMDAxXFwwODZcXDAwMVxcMjUwXFwyNTVcXFxuICAgIFxcMTEwXFwwMDVcXDAxMlxcMDA0XFwxMjNcXDAwNVxcMTU1XFwwMDVcXDE2NVxcMDA1XFwxNzdcXDAwNVxcMTg3XFwwMDVcXDE5N1xcMDA1XFxcbiAgICBcXDI0MVxcMjU1XFwxOTlcXDAwMVxcMDc3XFwwMDJcXDI1M1xcMjU1XFwyNTVcXDI1NVxcMTU0XFwwMDJcXDIyMlxcMDA1XFwyMDlcXDAwNVxcXG4gICAgXFwxNTVcXDAwMlxcMjM5XFwwMDVcXDA1M1xcMDA2XFwwNzZcXDAwNlxcMTE0XFwwMDZcXDAxNlxcMDAyXFwyNTJcXDI1NVxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwxNTJcXDAwNlxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyMjdcXDAwNlxcMjU1XFwyNTVcXDA4NVxcMDA3XFxcbiAgICBcXDI0NFxcMjU1XFwyNDVcXDI1NVxcMDExXFwwMDBcXDI0N1xcMjU1XFwwNzZcXDAwMlxcMjUwXFwyNTVcXDI1MVxcMjU1XFwyNTJcXDI1NVxcXG4gICAgXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDAzMVxcMDAyXFwyNDNcXDAwNVxcMDUxXFwwMDdcXDEwMFxcMDAxXFwxMTVcXDAwMVxcMTA0XFwwMDFcXFxuICAgIFxcMTMzXFwwMDFcXDExOFxcMDAxXFwxNTRcXDAwMVxcMTcxXFwwMDFcXDI1NVxcMjU1XFwxNzNcXDAwMVxcMTc2XFwwMDFcXDE5MVxcMDAxXFxcbiAgICBcXDE4NVxcMDAxXFwxODdcXDAwMVxcMjUzXFwwMDFcXDIzMFxcMDAxXFwyMzBcXDAwMVxcMjM0XFwwMDFcXDI0N1xcMDAxXFwyMzdcXDAwMVxcXG4gICAgXFwyMzRcXDAwMVxcMDA5XFwwMDJcXDAxOVxcMDAyXFwwMTlcXDAwMlxcMDE1XFwwMDJcXDAyMVxcMDAyXFwwMTFcXDAwMlxcMDA3XFwwMDJcXFxuICAgIFxcMTQyXFwwMDZcXDE1MlxcMDA2XFwxMTZcXDAwN1xcMTcwXFwwMDdcXDE4MFxcMDA3XFwxOTBcXDAwN1xcMjAwXFwwMDdcXDIxMFxcMDA3XFxcbiAgICBcXDI0OFxcMjU1XFwxMjBcXDAwMlxcMTY3XFwwMDJcXDI1M1xcMjU1XFwyNTVcXDI1NVxcMjE2XFwwMDJcXDA4MlxcMDA3XFwyMjBcXDAwN1xcXG4gICAgXFwyMzZcXDAwMlxcMjQ0XFwwMDdcXDA1OFxcMDA4XFwwODFcXDAwOFxcMTE5XFwwMDhcXDA3NlxcMDAyXFwyNTJcXDI1NVxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwxNTdcXDAwOFxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyMzJcXDAwOFxcMjU1XFwyNTVcXDEzNVxcMDAyXFxcbiAgICBcXDEyMFxcMDAyXFwyNTNcXDI1NVxcMTAwXFwwMDJcXDI1NFxcMjU1XFwxODJcXDAwMlxcMjU1XFwyNTVcXDAxMVxcMDAyXFwyNTVcXDI1NVxcXG4gICAgXFwyMDRcXDAwMlxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDA0NlxcMDAyXFwyNTVcXDI1NVxcMTc4XFwwMDJcXFxuICAgIFxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAyM1xcMDAwXFwyNTVcXDI1NVxcMTgzXFwwMDJcXDI1MlxcMjU1XFxcbiAgICBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDE4N1xcMDAyXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwxMjFcXDAwMlxcXG4gICAgXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwxODRcXDAwMlxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMDE5XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDE0MFxcMDAxXFwxNDZcXDAwMVxcMjU1XFwyNTVcXDE1MFxcMDAxXFwxNTFcXDAwMVxcMTU0XFwwMDFcXDE2OFxcMDAxXFxcbiAgICBcXDE3MFxcMDAxXFwxNzFcXDAwMVxcMTcyXFwwMDFcXDE3M1xcMDAxXFwxODFcXDAwMVxcMTg0XFwwMDFcXDE4NVxcMDAxXFwxODdcXDAwMVxcXG4gICAgXFwxOTFcXDAwMVxcMTkzXFwwMDFcXDE5NVxcMDAxXFwxOTZcXDAwMVxcMTk3XFwwMDFcXDIwMFxcMDAxXFwyMDNcXDAwMVxcMjIzXFwwMDFcXFxuICAgIFxcMjI1XFwwMDFcXDIyOFxcMDAxXFwyNDlcXDAwMVxcMjUxXFwwMDFcXDAwMlxcMDAyXFwwMDRcXDAwMlxcMDExXFwwMDJcXDAxMlxcMDAyXFxcbiAgICBcXDAxM1xcMDAyXFwwMDBcXDAwMFwiO1xuICBMZXhpbmcubGV4X2JhY2t0cmsgPVxuICAgXCJcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAxN1xcMDAwXFwyNTVcXDI1NVxcMDE5XFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwN1xcMDAwXFwwMDdcXDAwMFxcMjU1XFwyNTVcXDAxOVxcMDAwXFwwMTlcXDAwMFxcMDE5XFwwMDBcXFxuICAgIFxcMDE5XFwwMDBcXDAxOVxcMDAwXFwwMTlcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDhcXDAwMFxcMDA4XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDA5XFwwMDBcXDI1NVxcMjU1XFwwMDlcXDAwMFxcMjU1XFwyNTVcXDAwOVxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDE0XFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAwMlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwN1xcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDAwMVxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDAzXFwwMDBcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDAwNFxcMDAwXFwwMDNcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDRcXDAwMFxcMDA0XFwwMDBcXDAwNFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAzXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMlxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMlxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDNcXDAwMFxcMDAzXFwwMDBcXDAwNVxcMDAwXFwwMDVcXDAwMFxcMDA1XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDNcXDAwMFxcMjU1XFwyNTVcXDAwM1xcMDAwXFwyNTVcXDI1NVxcMDAzXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwwMDJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAxNlxcMDAwXFwyNTVcXDI1NVxcMDE4XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwN1xcMDAwXFwwMDdcXDAwMFxcMjU1XFwyNTVcXDAxOFxcMDAwXFxcbiAgICBcXDAxOFxcMDAwXFwwMThcXDAwMFxcMDE4XFwwMDBcXDAxOFxcMDAwXFwwMThcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwOFxcMDAwXFwyNTVcXDI1NVxcMDA4XFwwMDBcXDI1NVxcMjU1XFwwMDhcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAxM1xcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMDAxXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDlcXDAwMFxcMjU1XFwyNTVcXDAxMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcXG4gICAgXFwwMTFcXDAwMFxcMDExXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAwNlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMDAxXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMDA0XFwwMDBcXFxuICAgIFxcMDAzXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDNcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XCI7XG4gIExleGluZy5sZXhfZGVmYXVsdCA9XG4gICBcIlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwwNTdcXDAwMFxcMDYwXFwwMDBcXDAwMFxcMDAwXFwwNjBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNjVcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDY1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDcwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDg0XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwOTRcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwOTdcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDA5N1xcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTA0XFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEwOVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMTNcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMTdcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTIxXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjZcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDEzOFxcMDAwXFwwMDBcXDAwMFxcMTQyXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDE1NFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDE3OFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMTg3XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTk0XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwMVxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjM1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIzOVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNDRcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI0OVxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1M1xcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMDAzXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDhcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAxN1xcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMjJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAyOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMzJcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAzOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwNDNcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDQ3XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA1MlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNTZcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNjBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDY0XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDY3XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMTIxXFwwMDFcXDEyNVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTI4XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMzVcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTQwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwxNDRcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMTkzXFwwMDFcXDE5N1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjAwXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDdcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjEyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjIwXFwwMDFcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMjI2XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDIzM1xcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI0MFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNDVcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjQ5XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjUyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwwMDJcXDAwMlxcMDA0XFwwMDJcXDAwMFxcMDAwXFwwMDVcXDAwMlxcMDA2XFwwMDJcXDAwN1xcMDAyXFwwMDhcXDAwMlxcXG4gICAgXFwwMDlcXDAwMlxcMDEwXFwwMDJcXDAxMVxcMDAyXFwwMTJcXDAwMlxcMDEzXFwwMDJcXDAxNFxcMDAyXFwwMTVcXDAwMlxcMDE2XFwwMDJcXFxuICAgIFxcMDE3XFwwMDJcXDAxOFxcMDAyXFwwMTlcXDAwMlxcMDIwXFwwMDJcXDAyMVxcMDAyXFwwMjJcXDAwMlxcMDIzXFwwMDJcXDAyNFxcMDAyXFxcbiAgICBcXDAyNVxcMDAyXFwwMjZcXDAwMlxcMDI3XFwwMDJcXDAyOFxcMDAyXFwwMjlcXDAwMlxcMDMwXFwwMDJcXDAzMVxcMDAyXFwwMzJcXDAwMlxcXG4gICAgXFwwMzNcXDAwMlxcMDAzXFwwMDJcIjtcbiAgTGV4aW5nLmxleF90cmFucyA9XG4gICBcIlxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDNcXDAwMFxcMDA0XFwwMDBcXDAwMFxcMDAwXFwwMDNcXDAwMFxcMDAzXFwwMDBcXDEzNFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDNcXDAwMFxcMDAwXFwwMDBcXDEzNFxcMDAwXFwwNjlcXDAwMVxcMTQ2XFwwMDFcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDY5XFwwMDFcXFxuICAgIFxcMTQ2XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjdcXDAwMFxcMTM5XFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwM1xcMDAwXFwwMDBcXDAwMFxcMDEyXFwwMDBcXDAwM1xcMDAwXFwxNzBcXDAwMFxcMTM0XFwwMDBcXDE3NVxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDdcXDAwMFxcMDExXFwwMDFcXDA2OVxcMDAxXFwxNDZcXDAwMVxcMDE0XFwwMDFcXDAxM1xcMDAwXFwwNDlcXDAwMFxcMDA1XFwwMDBcXFxuICAgIFxcMDEwXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFxcbiAgICBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDU2XFwwMDBcXDExOFxcMDAwXFwwMDZcXDAwMFxcMTI5XFwwMDBcXDEzMFxcMDAwXFwwNTdcXDAwMFxcXG4gICAgXFwyMzdcXDAwMVxcMTM3XFwwMDBcXDAwMFxcMDAyXFwwNDlcXDAwMFxcMDAwXFwwMDBcXDA0OFxcMDAwXFwxMzhcXDAwMFxcMTA2XFwwMDBcXFxuICAgIFxcMDYyXFwwMDBcXDAxNFxcMDAwXFwxMTBcXDAwMFxcMTA1XFwwMDBcXDAwMFxcMDAwXFwwNDlcXDAwMFxcMDE1XFwwMDBcXDAxMVxcMDAwXFxcbiAgICBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcXG4gICAgXFwwMTFcXDAwMFxcMDMwXFwwMDBcXDA0OFxcMDAwXFwwMDhcXDAwMFxcMTE0XFwwMDBcXDIwOVxcMDAwXFwyMzZcXDAwMFxcMDAwXFwwMDFcXFxuICAgIFxcMDEzXFwwMDFcXDAyOVxcMDAwXFwwMjJcXDAwMFxcMjU1XFwyNTVcXDA0OFxcMDAwXFwwNDhcXDAwMFxcMDE3XFwwMDBcXDAyMVxcMDAwXFxcbiAgICBcXDAyNVxcMDAwXFwwMzJcXDAwMFxcMDMzXFwwMDBcXDAzNVxcMDAwXFwwMjNcXDAwMFxcMDI3XFwwMDBcXDAxNlxcMDAwXFwwMzFcXDAwMFxcXG4gICAgXFwwMjhcXDAwMFxcMDM0XFwwMDBcXDAxOVxcMDAwXFwwMjRcXDAwMFxcMDE4XFwwMDBcXDAyNlxcMDAwXFwwMjBcXDAwMFxcMDM2XFwwMDBcXFxuICAgIFxcMDQxXFwwMDBcXDAzN1xcMDAwXFwwNDhcXDAwMFxcMDA5XFwwMDBcXDA0MlxcMDAwXFwwNDNcXDAwMFxcMDQ0XFwwMDBcXDA0NVxcMDAwXFxcbiAgICBcXDA0NlxcMDAwXFwwNDdcXDAwMFxcMDYxXFwwMDBcXDA4NVxcMDAwXFwwNDhcXDAwMFxcMDM4XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcXG4gICAgXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDQ5XFwwMDBcXFxuICAgIFxcMDY3XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFxcbiAgICBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDA4NlxcMDAwXFwxNDNcXDAwMFxcMjU1XFwyNTVcXDA0MFxcMDAwXFwxNDRcXDAwMFxcXG4gICAgXFwxNDVcXDAwMFxcMTQ2XFwwMDBcXDA1NVxcMDAwXFwxNDhcXDAwMFxcMDU1XFwwMDBcXDE0OVxcMDAwXFwwNDhcXDAwMFxcMDU0XFwwMDBcXFxuICAgIFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFxcbiAgICBcXDA1NFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcXG4gICAgXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXFxuICAgIFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwyNTVcXDI1NVxcMDQ4XFwwMDBcXDE1MFxcMDAwXFxcbiAgICBcXDE1MVxcMDAwXFwxNjFcXDAwMFxcMDY2XFwwMDBcXDE1OFxcMDAwXFwwNTNcXDAwMFxcMTU5XFwwMDBcXDA1M1xcMDAwXFwxNjBcXDAwMFxcXG4gICAgXFwwNTFcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXFxuICAgIFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFxcbiAgICBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcXG4gICAgXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMTY1XFwwMDBcXFxuICAgIFxcMDUxXFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFxcbiAgICBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDE2MlxcMDAwXFwxNjNcXDAwMFxcMTY2XFwwMDBcXDA5M1xcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDJcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXFxuICAgIFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMjU1XFwyNTVcXDA3N1xcMDAwXFwxMDNcXDAwMFxcMTA4XFwwMDBcXDExNlxcMDAwXFxcbiAgICBcXDEzMlxcMDAwXFwxMzRcXDAwMFxcMTM1XFwwMDBcXDEyOFxcMDAwXFwxMzlcXDAwMFxcMTM0XFwwMDBcXDE2NFxcMDAwXFwwOTNcXDAwMFxcXG4gICAgXFwxNzFcXDAwMFxcMDc3XFwwMDBcXDE2N1xcMDAwXFwxNjhcXDAwMFxcMTY5XFwwMDBcXDE3MlxcMDAwXFwxMTJcXDAwMFxcMTczXFwwMDBcXFxuICAgIFxcMTc0XFwwMDBcXDIxMFxcMDAwXFwyMjZcXDAwMFxcMjA4XFwwMDBcXDIxMVxcMDAwXFwyMTJcXDAwMFxcMDU5XFwwMDBcXDA4M1xcMDAwXFxcbiAgICBcXDEzNFxcMDAwXFwyMTNcXDAwMFxcMjE0XFwwMDBcXDIxNVxcMDAwXFwyMTZcXDAwMFxcMjE4XFwwMDBcXDE0MVxcMDAwXFwyMTlcXDAwMFxcXG4gICAgXFwwOTNcXDAwMFxcMjIwXFwwMDBcXDIyMVxcMDAwXFwxMjNcXDAwMFxcMjIyXFwwMDBcXDIyM1xcMDAwXFwyMjRcXDAwMFxcMTM2XFwwMDBcXFxuICAgIFxcMDk1XFwwMDBcXDIyNVxcMDAwXFwwMzVcXDAwMVxcMDY1XFwwMDFcXDIzNFxcMDAwXFwxNTVcXDAwMFxcMDA1XFwwMDFcXDA5N1xcMDAxXFxcbiAgICBcXDI1MFxcMDAwXFwyNTVcXDI1NVxcMjU0XFwwMDBcXDA1N1xcMDAxXFwwNjFcXDAwMVxcMDk1XFwwMDFcXDA3N1xcMDAwXFwwNDRcXDAwMVxcXG4gICAgXFwwOTJcXDAwMVxcMDg4XFwwMDFcXDAwOVxcMDAxXFwwMjlcXDAwMVxcMDc2XFwwMDBcXDEyNFxcMDAwXFwwMzNcXDAwMVxcMDE4XFwwMDFcXFxuICAgIFxcMDc1XFwwMDBcXDA5OFxcMDAwXFwwMTlcXDAwMVxcMDg1XFwwMDFcXDA4NlxcMDAxXFwwODdcXDAwMVxcMTIwXFwwMDFcXDA4OVxcMDAxXFxcbiAgICBcXDA3NFxcMDAwXFwyMjVcXDAwMFxcMDUzXFwwMDFcXDEyMVxcMDAxXFwwNzNcXDAwMFxcMDkwXFwwMDFcXDA3MlxcMDAwXFwwNzFcXDAwMFxcXG4gICAgXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXFxuICAgIFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwOThcXDAwMFxcMTEzXFwwMDFcXDEyMlxcMDAwXFwwOTFcXDAwMVxcMDY0XFwwMDBcXDAwNFxcMDAxXFxcbiAgICBcXDA5M1xcMDAxXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzlcXDAwMFxcXG4gICAgXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXFxuICAgIFxcMDc5XFwwMDBcXDE1NlxcMDAwXFwxMTJcXDAwMVxcMDk0XFwwMDFcXDA5NlxcMDAxXFwwOThcXDAwMVxcMDk5XFwwMDFcXDA0OVxcMDAxXFxcbiAgICBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDEwMFxcMDAxXFwxNTdcXDAwMFxcXG4gICAgXFwxMDFcXDAwMVxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMTgzXFwwMDBcXFxuICAgIFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFxcbiAgICBcXDE4NFxcMDAwXFwwMjRcXDAwMVxcMTEyXFwwMDFcXDI1NVxcMjU1XFwwMjVcXDAwMVxcMTAyXFwwMDFcXDEwM1xcMDAxXFwxMDVcXDAwMVxcXG4gICAgXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXFxuICAgIFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFxcbiAgICBcXDEwNlxcMDAxXFwxMDdcXDAwMVxcMDQ4XFwwMDFcXDA0MFxcMDAxXFwxMDhcXDAwMVxcMTA5XFwwMDFcXDExMFxcMDAxXFwwODBcXDAwMFxcXG4gICAgXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXFxuICAgIFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDExMVxcMDAxXFxcbiAgICBcXDAyN1xcMDAxXFwyNTVcXDI1NVxcMTcxXFwwMDFcXDAzMVxcMDAxXFwxNzBcXDAwMVxcMDIzXFwwMDFcXDA4MVxcMDAwXFwwODFcXDAwMFxcXG4gICAgXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDkyXFwwMDBcXDE2OFxcMDAxXFwwNjNcXDAwMVxcMDgwXFwwMDBcXFxuICAgIFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwyNDhcXDAwMFxcMTY1XFwwMDFcXDI1MlxcMDAwXFxcbiAgICBcXDE2MlxcMDAxXFwwNTlcXDAwMVxcMDY5XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcXG4gICAgXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDI1NVxcMjU1XFwwODFcXDAwMFxcMDgxXFwwMDBcXFxuICAgIFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFxcbiAgICBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcXG4gICAgXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDM5XFwwMDFcXDA0MlxcMDAxXFwyNTVcXDI1NVxcMTYzXFwwMDFcXFxuICAgIFxcMTY0XFwwMDFcXDEyMFxcMDAwXFwwMDJcXDAwMVxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFxcbiAgICBcXDA4OFxcMDAwXFwxNjZcXDAwMVxcMDU1XFwwMDFcXDE1M1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcXG4gICAgXFwwODdcXDAwMFxcMDg3XFwwMDBcXDAwN1xcMDAxXFwxNjdcXDAwMVxcMTY0XFwwMDFcXDE2OVxcMDAxXFwwMTZcXDAwMVxcMTY0XFwwMDFcXFxuICAgIFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFxcbiAgICBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDUxXFwwMDFcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcXG4gICAgXFwwODhcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDkwXFwwMDBcXFxuICAgIFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFxcbiAgICBcXDA5MFxcMDAwXFwwOTdcXDAwMFxcMTM3XFwwMDFcXDE2NFxcMDAxXFwxNzJcXDAwMVxcMTg1XFwwMDFcXDEzNlxcMDAxXFwxNzNcXDAwMVxcXG4gICAgXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTdcXDAwMFxcMTc5XFwwMDBcXFxuICAgIFxcMTc0XFwwMDFcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA0NlxcMDAxXFxcbiAgICBcXDE3NVxcMDAxXFwxNzZcXDAwMVxcMTgwXFwwMDBcXDE2NFxcMDAxXFwxODRcXDAwMVxcMTgxXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcXG4gICAgXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTI0XFwwMDFcXFxuICAgIFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMTkyXFwwMDFcXDE3OFxcMDAxXFxcbiAgICBcXDAyMVxcMDAxXFwxNzlcXDAwMVxcMDk3XFwwMDBcXDE5M1xcMDAxXFwxODBcXDAwMVxcMTgxXFwwMDFcXDE4MlxcMDAxXFwxODNcXDAwMVxcXG4gICAgXFwxNjRcXDAwMVxcMjE2XFwwMDFcXDI1NVxcMjU1XFwwOTdcXDAwMFxcMTg0XFwwMDFcXDIxNlxcMDAxXFwyMDlcXDAwMVxcMDk3XFwwMDBcXFxuICAgIFxcMjIzXFwwMDFcXDA5N1xcMDAwXFwyMDhcXDAwMVxcMjMwXFwwMDFcXDAwM1xcMDAyXFwwOTdcXDAwMFxcMjE5XFwwMDFcXDAzN1xcMDAxXFxcbiAgICBcXDIxNlxcMDAxXFwyMTdcXDAwMVxcMDAzXFwwMDJcXDIyMFxcMDAxXFwyMTZcXDAwMVxcMDk3XFwwMDBcXDAwM1xcMDAyXFwwMDNcXDAwMlxcXG4gICAgXFwyMTZcXDAwMVxcMDk3XFwwMDBcXDAwM1xcMDAyXFwwOTdcXDAwMFxcMDk2XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXFxuICAgIFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDIxNlxcMDAxXFxcbiAgICBcXDAwM1xcMDAyXFwxMjZcXDAwMVxcMDAzXFwwMDJcXDAwM1xcMDAyXFwwMDNcXDAwMlxcMDAzXFwwMDJcXDA5OVxcMDAwXFwwOTlcXDAwMFxcXG4gICAgXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk3XFwwMDBcXDAwM1xcMDAyXFwyMThcXDAwMVxcMjUwXFwwMDFcXFxuICAgIFxcMDAzXFwwMDJcXDAwM1xcMDAyXFwwOTdcXDAwMFxcMDAzXFwwMDJcXDEyNFxcMDAxXFwxMjRcXDAwMVxcMDk3XFwwMDBcXDAwM1xcMDAyXFxcbiAgICBcXDIyMVxcMDAxXFwwMDNcXDAwMlxcMjUzXFwwMDFcXDAwM1xcMDAyXFwwMDNcXDAwMlxcMDAzXFwwMDJcXDA5N1xcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDNcXDAwMlxcMTk2XFwwMDFcXDA5N1xcMDAwXFwwMDNcXDAwMlxcMDk3XFwwMDBcXDA5NlxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXFxuICAgIFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFxcbiAgICBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDIzNVxcMDAxXFwwMDNcXDAwMlxcXG4gICAgXFwyNDFcXDAwMVxcMDAzXFwwMDJcXDI1NVxcMDAxXFwyNDJcXDAwMVxcMDAzXFwwMDJcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXFxuICAgIFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFxcbiAgICBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMjQ2XFwwMDFcXDEyOVxcMDAxXFwxMjlcXDAwMVxcXG4gICAgXFwyMjhcXDAwMVxcMDAzXFwwMDJcXDE5NlxcMDAxXFwwMDNcXDAwMlxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXFxuICAgIFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwwMDNcXDAwMlxcMTk4XFwwMDFcXDAwM1xcMDAyXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFxcbiAgICBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDAwM1xcMDAyXFwwMDNcXDAwMlxcMDAzXFwwMDJcXDE5NlxcMDAxXFwyMzRcXDAwMVxcXG4gICAgXFwxMzRcXDAwMVxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXFxuICAgIFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDAwXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFxcbiAgICBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcXG4gICAgXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXFxuICAgIFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMVxcMDAxXFwxNzdcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFxcbiAgICBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcXG4gICAgXFwxODhcXDAwMFxcMDAwXFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXFxuICAgIFxcMjAxXFwwMDFcXDIyN1xcMDAxXFwwMDBcXDAwMFxcMTkxXFwwMDBcXDIwNlxcMDAxXFwxMjNcXDAwMVxcMTg5XFwwMDBcXDE5MFxcMDAwXFxcbiAgICBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcXG4gICAgXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXFxuICAgIFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxODlcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFxcbiAgICBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTVcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcXG4gICAgXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk4XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI0OFxcMDAxXFwxOTZcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFxcbiAgICBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTZcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcXG4gICAgXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwyMDJcXDAwMFxcMjI3XFwwMDBcXFxuICAgIFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFxcbiAgICBcXDIyN1xcMDAwXFwyMDVcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDNcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcXG4gICAgXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMjZcXDAwMFxcMTk1XFwwMDFcXFxuICAgIFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFxcbiAgICBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjMyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjA2XFwwMDBcXDIyMVxcMDAxXFwyMzlcXDAwMVxcXG4gICAgXFwyNTRcXDAwMVxcMDAwXFwwMDBcXDIwN1xcMDAwXFwyNDRcXDAwMVxcMDAwXFwwMDBcXDIyNVxcMDAwXFwyMDNcXDAwMFxcMjA0XFwwMDBcXFxuICAgIFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFxcbiAgICBcXDIzMlxcMDAwXFwwMDBcXDAwMFxcMjMyXFwwMDBcXDAwMFxcMDAwXFwyMjVcXDAwMVxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcXG4gICAgXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjE3XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMjVcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFxcbiAgICBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjMwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDIzMFxcMDAwXFwwMDBcXDAwMFxcMjI4XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFxcbiAgICBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcXG4gICAgXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXFxuICAgIFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFxcbiAgICBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMDAwXFwwMDBcXDIyOFxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcXG4gICAgXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwxODZcXDAwMFxcMjMxXFwwMDBcXFxuICAgIFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFxcbiAgICBcXDIzMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI0MVxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwxMTNcXDAwMVxcMDAwXFwwMDBcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXFxuICAgIFxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFxcbiAgICBcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDAwMFxcMDAwXFwxMTJcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE5M1xcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMTEyXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjQwXFwwMDBcXDIwMFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwwMDBcXDAwMFxcMjQ2XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjQwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMDAwXFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjM4XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjQ1XFwwMDBcXDAwMFxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMDY5XFwwMDFcXDA3MFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA2OVxcMDAxXFwwNzZcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFxcbiAgICBcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDY5XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDA3OFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTA0XFwwMDFcXDA3M1xcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNzlcXDAwMVxcMDAwXFwwMDBcXDA3MVxcMDAxXFwwNzZcXDAwMVxcXG4gICAgXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXFxuICAgIFxcMDc3XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDcyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwyNDNcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwODBcXDAwMVxcMTE5XFwwMDFcXDAwMFxcMDAwXFwxMTlcXDAwMVxcMDAwXFwwMDBcXDA4MVxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXFxuICAgIFxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDc0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcXG4gICAgXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDA4M1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwODJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDExNVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA4NFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDExN1xcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwxMTdcXDAwMVxcMDAwXFwwMDBcXDA3NVxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXFxuICAgIFxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFxcbiAgICBcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwxMTVcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXFxuICAgIFxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFxcbiAgICBcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcXG4gICAgXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMTI4XFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFxcbiAgICBcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwxODVcXDAwMVxcMDAwXFwwMDBcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcXG4gICAgXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFxcbiAgICBcXDE4NFxcMDAxXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA2OFxcMDAxXFxcbiAgICBcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyN1xcMDAxXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwxODRcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDEyN1xcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFxcbiAgICBcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMzFcXDAwMVxcMTMxXFwwMDFcXFxuICAgIFxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFxcbiAgICBcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXFxuICAgIFxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTMxXFwwMDFcXDEzMVxcMDAxXFxcbiAgICBcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXFxuICAgIFxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDAwMFxcMDAwXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFxcbiAgICBcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcXG4gICAgXFwxMjhcXDAwMVxcMTkxXFwwMDFcXDE0MlxcMDAxXFwxOTFcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxOTBcXDAwMVxcMTkwXFwwMDFcXFxuICAgIFxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFxcbiAgICBcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcXG4gICAgXFwxODZcXDAwMVxcMTg2XFwwMDFcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXFxuICAgIFxcMTI4XFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE0MVxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTQxXFwwMDFcXDAwMFxcMDAwXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0NlxcMDAxXFwxNDdcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE0NlxcMDAxXFwxNTRcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXFxuICAgIFxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDBcXDAwMVxcMTQ2XFwwMDFcXDAwMFxcMDAwXFwxNTNcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTc3XFwwMDFcXDE1MFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDIwMFxcMDAxXFwxNTZcXDAwMVxcMDAwXFwwMDBcXDE0OFxcMDAxXFwxNTRcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFxcbiAgICBcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMTQ5XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMTM5XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTU3XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE1OFxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcXG4gICAgXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwyMDBcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMTUxXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDIwMFxcMDAxXFwxODdcXDAwMVxcMDAwXFwwMDBcXDE2MFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNTlcXDAwMVxcMjAwXFwwMDFcXDAwMFxcMDAwXFwyMDBcXDAwMVxcMTk5XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDE2MVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDE1MlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTg5XFwwMDFcXDAwMFxcMDAwXFwxODlcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMTg3XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXFxuICAgIFxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFxcbiAgICBcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcXG4gICAgXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXFxuICAgIFxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFxcbiAgICBcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcXG4gICAgXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXFxuICAgIFxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAwXFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcXG4gICAgXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXFxuICAgIFxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE0NVxcMDAxXFwyMDBcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwyMDBcXDAwMVxcMTk5XFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXFxuICAgIFxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcXG4gICAgXFwyMDNcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXFxuICAgIFxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXFxuICAgIFxcMjAzXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMFxcMDAxXFxcbiAgICBcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcXG4gICAgXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXFxuICAgIFxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDIxNFxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjEzXFwwMDFcXDAwMFxcMDAwXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjEzXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjExXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFwiO1xuICBMZXhpbmcubGV4X2NoZWNrID1cbiAgIFwiXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwM1xcMDAwXFwwMDBcXDAwMFxcMTM0XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwM1xcMDAwXFwyNTVcXDI1NVxcMTM0XFwwMDBcXDA2OVxcMDAxXFwxNDZcXDAwMVxcMDU3XFwwMDBcXDI1NVxcMjU1XFwwNjlcXDAwMVxcXG4gICAgXFwxNDZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEyNVxcMDAwXFwxMzhcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAzXFwwMDBcXDE2OVxcMDAwXFwxMzRcXDAwMFxcMTc0XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwwMTBcXDAwMVxcMDY5XFwwMDFcXDE0NlxcMDAxXFwwMTJcXDAwMVxcMDAwXFwwMDBcXDAxMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDVcXDAwMFxcMTE1XFwwMDBcXDAwMFxcMDAwXFwxMjVcXDAwMFxcMTI5XFwwMDBcXDAwNVxcMDAwXFxcbiAgICBcXDIzNlxcMDAxXFwxMzZcXDAwMFxcMjU1XFwwMDFcXDAzOFxcMDAwXFwyNTVcXDI1NVxcMDEwXFwwMDBcXDEzNlxcMDAwXFwxMDJcXDAwMFxcXG4gICAgXFwwNThcXDAwMFxcMDAwXFwwMDBcXDEwN1xcMDAwXFwxMDJcXDAwMFxcMjU1XFwyNTVcXDAxMVxcMDAwXFwwMDBcXDAwMFxcMDExXFwwMDBcXFxuICAgIFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFxcbiAgICBcXDAxMVxcMDAwXFwwMjlcXDAwMFxcMDM4XFwwMDBcXDAwMFxcMDAwXFwxMTFcXDAwMFxcMjA4XFwwMDBcXDIzM1xcMDAwXFwyNTVcXDAwMFxcXG4gICAgXFwwMTJcXDAwMVxcMDE1XFwwMDBcXDAxN1xcMDAwXFwwNjBcXDAwMFxcMDExXFwwMDBcXDAxMFxcMDAwXFwwMDBcXDAwMFxcMDIwXFwwMDBcXFxuICAgIFxcMDI0XFwwMDBcXDAzMVxcMDAwXFwwMzJcXDAwMFxcMDM0XFwwMDBcXDAyMlxcMDAwXFwwMjZcXDAwMFxcMDAwXFwwMDBcXDAxNFxcMDAwXFxcbiAgICBcXDAyN1xcMDAwXFwwMzNcXDAwMFxcMDE4XFwwMDBcXDAyM1xcMDAwXFwwMDBcXDAwMFxcMDE2XFwwMDBcXDAxOVxcMDAwXFwwMzVcXDAwMFxcXG4gICAgXFwwNDBcXDAwMFxcMDM2XFwwMDBcXDAzOFxcMDAwXFwwMDBcXDAwMFxcMDQxXFwwMDBcXDA0MlxcMDAwXFwwNDNcXDAwMFxcMDQ0XFwwMDBcXFxuICAgIFxcMDQ1XFwwMDBcXDA0NlxcMDAwXFwwNThcXDAwMFxcMDgyXFwwMDBcXDAxMVxcMDAwXFwwMTNcXDAwMFxcMDEzXFwwMDBcXDAxM1xcMDAwXFxcbiAgICBcXDAxM1xcMDAwXFwwMTNcXDAwMFxcMDEzXFwwMDBcXDAxM1xcMDAwXFwwMTNcXDAwMFxcMDEzXFwwMDBcXDAxM1xcMDAwXFwwMzlcXDAwMFxcXG4gICAgXFwwNjNcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXFxuICAgIFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDg1XFwwMDBcXDE0MFxcMDAwXFwwNjBcXDAwMFxcMDEzXFwwMDBcXDE0M1xcMDAwXFxcbiAgICBcXDE0NFxcMDAwXFwxNDVcXDAwMFxcMDQ4XFwwMDBcXDE0N1xcMDAwXFwwNDhcXDAwMFxcMTQ4XFwwMDBcXDAzOVxcMDAwXFwwNDhcXDAwMFxcXG4gICAgXFwwNDhcXDAwMFxcMDQ4XFwwMDBcXDA0OFxcMDAwXFwwNDhcXDAwMFxcMDQ4XFwwMDBcXDA0OFxcMDAwXFwwNDhcXDAwMFxcMDQ4XFwwMDBcXFxuICAgIFxcMDQ4XFwwMDBcXDA0OVxcMDAwXFwwNDlcXDAwMFxcMDQ5XFwwMDBcXDA0OVxcMDAwXFwwNDlcXDAwMFxcMDQ5XFwwMDBcXDA0OVxcMDAwXFxcbiAgICBcXDA0OVxcMDAwXFwwNDlcXDAwMFxcMDQ5XFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcXG4gICAgXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA2NVxcMDAwXFwwMzlcXDAwMFxcMTQ5XFwwMDBcXFxuICAgIFxcMTUwXFwwMDBcXDE1NlxcMDAwXFwwNjNcXDAwMFxcMTU3XFwwMDBcXDA1MVxcMDAwXFwxNThcXDAwMFxcMDUxXFwwMDBcXDE1OVxcMDAwXFxcbiAgICBcXDA1MFxcMDAwXFwwNTFcXDAwMFxcMDUxXFwwMDBcXDA1MVxcMDAwXFwwNTFcXDAwMFxcMDUxXFwwMDBcXDA1MVxcMDAwXFwwNTFcXDAwMFxcXG4gICAgXFwwNTFcXDAwMFxcMDUxXFwwMDBcXDA1MVxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXFxuICAgIFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTNcXDAwMFxcMDUzXFwwMDBcXDA1M1xcMDAwXFxcbiAgICBcXDA1M1xcMDAwXFwwNTNcXDAwMFxcMDUzXFwwMDBcXDA1M1xcMDAwXFwwNTNcXDAwMFxcMDUzXFwwMDBcXDA1M1xcMDAwXFwxNTVcXDAwMFxcXG4gICAgXFwwNTBcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXFxuICAgIFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMTYxXFwwMDBcXDE2MlxcMDAwXFwxNTVcXDAwMFxcMDkxXFwwMDBcXDA2NVxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwNTVcXDAwMFxcMDU1XFwwMDBcXDA1NVxcMDAwXFwwNTVcXDAwMFxcMDU1XFwwMDBcXDA1NVxcMDAwXFwwNTVcXDAwMFxcXG4gICAgXFwwNTVcXDAwMFxcMDU1XFwwMDBcXDA1NVxcMDAwXFwwNTdcXDAwMFxcMDY4XFwwMDBcXDEwMlxcMDAwXFwxMDdcXDAwMFxcMTE1XFwwMDBcXFxuICAgIFxcMTMxXFwwMDBcXDEzM1xcMDAwXFwxMzNcXDAwMFxcMTI1XFwwMDBcXDEzOFxcMDAwXFwxMzNcXDAwMFxcMTYzXFwwMDBcXDA5NFxcMDAwXFxcbiAgICBcXDE2NVxcMDAwXFwwNjhcXDAwMFxcMTY2XFwwMDBcXDE2N1xcMDAwXFwxNjhcXDAwMFxcMTcxXFwwMDBcXDExMVxcMDAwXFwxNzJcXDAwMFxcXG4gICAgXFwxNzNcXDAwMFxcMjA2XFwwMDBcXDIwM1xcMDAwXFwyMDdcXDAwMFxcMjEwXFwwMDBcXDIxMVxcMDAwXFwwNThcXDAwMFxcMDgyXFwwMDBcXFxuICAgIFxcMTMzXFwwMDBcXDIxMlxcMDAwXFwyMTNcXDAwMFxcMjE0XFwwMDBcXDIxNVxcMDAwXFwyMTdcXDAwMFxcMTQwXFwwMDBcXDIxOFxcMDAwXFxcbiAgICBcXDA5N1xcMDAwXFwyMTlcXDAwMFxcMjIwXFwwMDBcXDExOVxcMDAwXFwyMjFcXDAwMFxcMjIyXFwwMDBcXDIyM1xcMDAwXFwxMzNcXDAwMFxcXG4gICAgXFwwOTFcXDAwMFxcMjAzXFwwMDBcXDAzNFxcMDAxXFwwNjJcXDAwMVxcMjMzXFwwMDBcXDE1MlxcMDAwXFwwMDFcXDAwMVxcMDgwXFwwMDFcXFxuICAgIFxcMjQ3XFwwMDBcXDA2MFxcMDAwXFwyNTFcXDAwMFxcMDU0XFwwMDFcXDA1OFxcMDAxXFwwODFcXDAwMVxcMDY4XFwwMDBcXDA0MVxcMDAxXFxcbiAgICBcXDA4MlxcMDAxXFwwODNcXDAwMVxcMDA2XFwwMDFcXDAyNlxcMDAxXFwwNjhcXDAwMFxcMTE5XFwwMDBcXDAzMFxcMDAxXFwwMTVcXDAwMVxcXG4gICAgXFwwNjhcXDAwMFxcMDk0XFwwMDBcXDAxNVxcMDAxXFwwODRcXDAwMVxcMDg1XFwwMDFcXDA4NlxcMDAxXFwwNzFcXDAwMVxcMDg4XFwwMDFcXFxuICAgIFxcMDY4XFwwMDBcXDIwM1xcMDAwXFwwNTBcXDAwMVxcMDcxXFwwMDFcXDA2OFxcMDAwXFwwODlcXDAwMVxcMDY4XFwwMDBcXDA2OFxcMDAwXFxcbiAgICBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcXG4gICAgXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA5N1xcMDAwXFwwNzZcXDAwMVxcMTE5XFwwMDBcXDA5MFxcMDAxXFwwNjNcXDAwMFxcMDAxXFwwMDFcXFxuICAgIFxcMDkyXFwwMDFcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3OFxcMDAwXFxcbiAgICBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcXG4gICAgXFwwNzhcXDAwMFxcMTUyXFwwMDBcXDA3NlxcMDAxXFwwOTNcXDAwMVxcMDk1XFwwMDFcXDA5N1xcMDAxXFwwOThcXDAwMVxcMDQ1XFwwMDFcXFxuICAgIFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDk5XFwwMDFcXDE1MlxcMDAwXFxcbiAgICBcXDEwMFxcMDAxXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwxODBcXDAwMFxcXG4gICAgXFwxODBcXDAwMFxcMTgwXFwwMDBcXDE4MFxcMDAwXFwxODBcXDAwMFxcMTgwXFwwMDBcXDE4MFxcMDAwXFwxODBcXDAwMFxcMTgwXFwwMDBcXFxuICAgIFxcMTgwXFwwMDBcXDAyMFxcMDAxXFwwNzZcXDAwMVxcMDY1XFwwMDBcXDAyMFxcMDAxXFwxMDFcXDAwMVxcMTAyXFwwMDFcXDEwNFxcMDAxXFxcbiAgICBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcXG4gICAgXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXFxuICAgIFxcMTA1XFwwMDFcXDEwNlxcMDAxXFwwNDVcXDAwMVxcMDM2XFwwMDFcXDEwN1xcMDAxXFwxMDhcXDAwMVxcMTA5XFwwMDFcXDA3OVxcMDAwXFxcbiAgICBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcXG4gICAgXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMTEwXFwwMDFcXFxuICAgIFxcMDI2XFwwMDFcXDEyMVxcMDAxXFwxNTdcXDAwMVxcMDMwXFwwMDFcXDE1OFxcMDAxXFwwMjBcXDAwMVxcMDgwXFwwMDBcXDA4MFxcMDAwXFxcbiAgICBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwOTFcXDAwMFxcMTU5XFwwMDFcXDA2MlxcMDAxXFwwNzlcXDAwMFxcXG4gICAgXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDI0N1xcMDAwXFwxNjBcXDAwMVxcMjUxXFwwMDBcXFxuICAgIFxcMTYxXFwwMDFcXDA1OFxcMDAxXFwwNjhcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFxcbiAgICBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDk0XFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcXG4gICAgXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXFxuICAgIFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFxcbiAgICBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwMzZcXDAwMVxcMDQxXFwwMDFcXDA5N1xcMDAwXFwxNjJcXDAwMVxcXG4gICAgXFwxNjNcXDAwMVxcMTE5XFwwMDBcXDAwMVxcMDAxXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXFxuICAgIFxcMDg3XFwwMDBcXDE2NVxcMDAxXFwwNTRcXDAwMVxcMTUyXFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFxcbiAgICBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDA2XFwwMDFcXDE2NlxcMDAxXFwxNjdcXDAwMVxcMTY4XFwwMDFcXDAxNVxcMDAxXFwxNjlcXDAwMVxcXG4gICAgXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXFxuICAgIFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwNTBcXDAwMVxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFxcbiAgICBcXDA4N1xcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODlcXDAwMFxcXG4gICAgXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXFxuICAgIFxcMDg5XFwwMDBcXDA5NVxcMDAwXFwxMzNcXDAwMVxcMTcwXFwwMDFcXDE3MVxcMDAxXFwxNTRcXDAwMVxcMTMzXFwwMDFcXDE3MlxcMDAxXFxcbiAgICBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA5NVxcMDAwXFwxNzZcXDAwMFxcXG4gICAgXFwxNzNcXDAwMVxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDQ1XFwwMDFcXFxuICAgIFxcMTc0XFwwMDFcXDE3NVxcMDAxXFwxNzZcXDAwMFxcMTc2XFwwMDFcXDE1NFxcMDAxXFwxNzZcXDAwMFxcMTc2XFwwMDBcXDE3NlxcMDAwXFxcbiAgICBcXDE3NlxcMDAwXFwxNzZcXDAwMFxcMTc2XFwwMDBcXDE3NlxcMDAwXFwxNzZcXDAwMFxcMTc2XFwwMDBcXDE3NlxcMDAwXFwxMjJcXDAwMVxcXG4gICAgXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwxNDhcXDAwMVxcMTc3XFwwMDFcXFxuICAgIFxcMDIwXFwwMDFcXDE3OFxcMDAxXFwwOThcXDAwMFxcMTQ4XFwwMDFcXDE3OVxcMDAxXFwxODBcXDAwMVxcMTgxXFwwMDFcXDE4MlxcMDAxXFxcbiAgICBcXDE4M1xcMDAxXFwyMTZcXDAwMVxcMTkzXFwwMDFcXDA5NVxcMDAwXFwxNTRcXDAwMVxcMjE2XFwwMDFcXDIwNVxcMDAxXFwwOThcXDAwMFxcXG4gICAgXFwyMjJcXDAwMVxcMDk1XFwwMDBcXDIwNVxcMDAxXFwyMjlcXDAwMVxcMDAxXFwwMDJcXDA5NVxcMDAwXFwyMThcXDAwMVxcMDM2XFwwMDFcXFxuICAgIFxcMjE1XFwwMDFcXDIxNVxcMDAxXFwwMDJcXDAwMlxcMjE4XFwwMDFcXDIxNVxcMDAxXFwwOTVcXDAwMFxcMDA0XFwwMDJcXDAwNVxcMDAyXFxcbiAgICBcXDIxNlxcMDAxXFwwOTVcXDAwMFxcMDA2XFwwMDJcXDA5NVxcMDAwXFwwOTVcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcXG4gICAgXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMjE1XFwwMDFcXFxuICAgIFxcMDA3XFwwMDJcXDEyMlxcMDAxXFwwMDhcXDAwMlxcMDA5XFwwMDJcXDAxMFxcMDAyXFwwMTFcXDAwMlxcMDk2XFwwMDBcXDA5NlxcMDAwXFxcbiAgICBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOThcXDAwMFxcMDEyXFwwMDJcXDIxNVxcMDAxXFwyNDdcXDAwMVxcXG4gICAgXFwwMTNcXDAwMlxcMDE0XFwwMDJcXDA5OFxcMDAwXFwwMTVcXDAwMlxcMTI1XFwwMDFcXDEyOFxcMDAxXFwwOThcXDAwMFxcMDE2XFwwMDJcXFxuICAgIFxcMjIwXFwwMDFcXDAxN1xcMDAyXFwyNTFcXDAwMVxcMDE4XFwwMDJcXDAxOVxcMDAyXFwwMjBcXDAwMlxcMDk4XFwwMDBcXDEyMVxcMDAxXFxcbiAgICBcXDAyMVxcMDAyXFwxOTRcXDAwMVxcMDk4XFwwMDBcXDAyMlxcMDAyXFwwOThcXDAwMFxcMDk4XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcXG4gICAgXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXFxuICAgIFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMjMxXFwwMDFcXDAyM1xcMDAyXFxcbiAgICBcXDIzOFxcMDAxXFwwMjRcXDAwMlxcMjUxXFwwMDFcXDIzOFxcMDAxXFwwMjVcXDAwMlxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcXG4gICAgXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXFxuICAgIFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwyNDNcXDAwMVxcMTI1XFwwMDFcXDEyOFxcMDAxXFxcbiAgICBcXDIyNFxcMDAxXFwwMjZcXDAwMlxcMTk3XFwwMDFcXDAyN1xcMDAyXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcXG4gICAgXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDAyOFxcMDAyXFwxOTRcXDAwMVxcMDI5XFwwMDJcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXFxuICAgIFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDMwXFwwMDJcXDAzMVxcMDAyXFwwMzJcXDAwMlxcMjAwXFwwMDFcXDIzMVxcMDAxXFxcbiAgICBcXDEzM1xcMDAxXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcXG4gICAgXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwyNTVcXDI1NVxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXFxuICAgIFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFxcbiAgICBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcXG4gICAgXFwxODJcXDAwMFxcMTgyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTk3XFwwMDFcXDE3NlxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXFxuICAgIFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFxcbiAgICBcXDE4NVxcMDAwXFwyNTVcXDI1NVxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcXG4gICAgXFwyMDBcXDAwMVxcMjI0XFwwMDFcXDI1NVxcMjU1XFwxODVcXDAwMFxcMjA1XFwwMDFcXDEyMlxcMDAxXFwxODVcXDAwMFxcMTg1XFwwMDBcXFxuICAgIFxcMTg1XFwwMDBcXDE4NVxcMDAwXFwxODVcXDAwMFxcMTg1XFwwMDBcXDE4NVxcMDAwXFwxODVcXDAwMFxcMTg1XFwwMDBcXDE4NVxcMDAwXFxcbiAgICBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcXG4gICAgXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MVxcMDAwXFwxOTFcXDAwMFxcMTkxXFwwMDBcXDE5MVxcMDAwXFwxOTFcXDAwMFxcMTkxXFwwMDBcXFxuICAgIFxcMTkxXFwwMDBcXDE5MVxcMDAwXFwxOTFcXDAwMFxcMTkxXFwwMDBcXDE5MlxcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFxcbiAgICBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTJcXDAwMFxcXG4gICAgXFwxOTNcXDAwMVxcMjQ3XFwwMDFcXDE5MlxcMDAwXFwxOTJcXDAwMFxcMTkyXFwwMDBcXDE5MlxcMDAwXFwxOTJcXDAwMFxcMTkyXFwwMDBcXFxuICAgIFxcMTkyXFwwMDBcXDE5MlxcMDAwXFwxOTJcXDAwMFxcMTkyXFwwMDBcXDE5OFxcMDAwXFwxOThcXDAwMFxcMTk4XFwwMDBcXDE5OFxcMDAwXFxcbiAgICBcXDE5OFxcMDAwXFwxOThcXDAwMFxcMTk4XFwwMDBcXDE5OFxcMDAwXFwxOThcXDAwMFxcMTk4XFwwMDBcXDE5OVxcMDAwXFwyMjZcXDAwMFxcXG4gICAgXFwyMjZcXDAwMFxcMjI2XFwwMDBcXDIyNlxcMDAwXFwyMjZcXDAwMFxcMjI2XFwwMDBcXDIyNlxcMDAwXFwyMjZcXDAwMFxcMjI2XFwwMDBcXFxuICAgIFxcMjI2XFwwMDBcXDE5OVxcMDAwXFwxMjVcXDAwMVxcMTI4XFwwMDFcXDE5OVxcMDAwXFwxOTlcXDAwMFxcMTk5XFwwMDBcXDE5OVxcMDAwXFxcbiAgICBcXDE5OVxcMDAwXFwxOTlcXDAwMFxcMTk5XFwwMDBcXDE5OVxcMDAwXFwxOTlcXDAwMFxcMTk5XFwwMDBcXDIwNFxcMDAwXFwxOTRcXDAwMVxcXG4gICAgXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXFxuICAgIFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMzFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxOTlcXDAwMFxcMjIwXFwwMDFcXDIzOFxcMDAxXFxcbiAgICBcXDI1MVxcMDAxXFwyNTVcXDI1NVxcMTk5XFwwMDBcXDI0M1xcMDAxXFwyNTVcXDI1NVxcMjA0XFwwMDBcXDIwNVxcMDAwXFwyMDVcXDAwMFxcXG4gICAgXFwyMDVcXDAwMFxcMjA1XFwwMDBcXDIwNVxcMDAwXFwyMDVcXDAwMFxcMjA1XFwwMDBcXDIwNVxcMDAwXFwyMDVcXDAwMFxcMjA1XFwwMDBcXFxuICAgIFxcMjI1XFwwMDBcXDI1NVxcMjU1XFwyMjVcXDAwMFxcMjU1XFwyNTVcXDIyNFxcMDAxXFwyMjVcXDAwMFxcMjI1XFwwMDBcXDIyNVxcMDAwXFxcbiAgICBcXDIyNVxcMDAwXFwyMjVcXDAwMFxcMjI1XFwwMDBcXDIyNVxcMDAwXFwyMjVcXDAwMFxcMjI1XFwwMDBcXDIyNVxcMDAwXFwyMDVcXDAwMFxcXG4gICAgXFwxOTdcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwNFxcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXFxuICAgIFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDBcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMjhcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjI4XFwwMDBcXDI1NVxcMjU1XFwyMjdcXDAwMFxcMjI4XFwwMDBcXDIyOFxcMDAwXFwyMjhcXDAwMFxcMjI4XFwwMDBcXFxuICAgIFxcMjI4XFwwMDBcXDIyOFxcMDAwXFwyMjhcXDAwMFxcMjI4XFwwMDBcXDIyOFxcMDAwXFwyMjhcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFxcbiAgICBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcXG4gICAgXFwyMzBcXDAwMFxcMjMwXFwwMDBcXDIzMFxcMDAwXFwyMzBcXDAwMFxcMjMwXFwwMDBcXDIzMFxcMDAwXFwyMzBcXDAwMFxcMjMwXFwwMDBcXFxuICAgIFxcMjMwXFwwMDBcXDIzMFxcMDAwXFwyNTVcXDI1NVxcMjI3XFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFxcbiAgICBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDE4NVxcMDAwXFwyMzJcXDAwMFxcXG4gICAgXFwyMzJcXDAwMFxcMjMyXFwwMDBcXDIzMlxcMDAwXFwyMzJcXDAwMFxcMjMyXFwwMDBcXDIzMlxcMDAwXFwyMzJcXDAwMFxcMjMyXFwwMDBcXFxuICAgIFxcMjMyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjM3XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDA3N1xcMDAxXFwyNTVcXDI1NVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcXG4gICAgXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMTEzXFwwMDFcXDExM1xcMDAxXFwxMTNcXDAwMVxcMTEzXFwwMDFcXFxuICAgIFxcMTEzXFwwMDFcXDExM1xcMDAxXFwxMTNcXDAwMVxcMTEzXFwwMDFcXDExM1xcMDAxXFwxMTNcXDAwMVxcMjU1XFwyNTVcXDA3N1xcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTkyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcXG4gICAgXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXFxuICAgIFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFxcbiAgICBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwwNzdcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMzdcXDAwMFxcMTk5XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXFxuICAgIFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFxcbiAgICBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcXG4gICAgXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI1NVxcMjU1XFwyNDJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFxcbiAgICBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcXG4gICAgXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXFxuICAgIFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI0MlxcMDAwXFwyNTVcXDI1NVxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcXG4gICAgXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXFxuICAgIFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFxcbiAgICBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyMzdcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNDVcXDAwMFxcMjU1XFwyNTVcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwwNjZcXDAwMVxcMDY2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDY2XFwwMDFcXDA3OVxcMDAxXFwwNzlcXDAwMVxcMDc5XFwwMDFcXFxuICAgIFxcMDc5XFwwMDFcXDA3OVxcMDAxXFwwNzlcXDAwMVxcMDc5XFwwMDFcXDA3OVxcMDAxXFwwNzlcXDAwMVxcMDc5XFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNjZcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMDY2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNzlcXDAwMVxcMDY2XFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwyNTVcXDI1NVxcMDY2XFwwMDFcXDA2NlxcMDAxXFxcbiAgICBcXDA2NlxcMDAxXFwwNjZcXDAwMVxcMDY2XFwwMDFcXDA2NlxcMDAxXFwwNjZcXDAwMVxcMDY2XFwwMDFcXDA2NlxcMDAxXFwwNjZcXDAwMVxcXG4gICAgXFwwNjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI0MlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDA2NlxcMDAxXFwxMTJcXDAwMVxcMjU1XFwyNTVcXDExMlxcMDAxXFwyNTVcXDI1NVxcMDY2XFwwMDFcXDExMlxcMDAxXFwxMTJcXDAwMVxcXG4gICAgXFwxMTJcXDAwMVxcMTEyXFwwMDFcXDExMlxcMDAxXFwxMTJcXDAwMVxcMTEyXFwwMDFcXDExMlxcMDAxXFwxMTJcXDAwMVxcMTEyXFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFxcbiAgICBcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMDY2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTE0XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDY2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTE1XFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDExNVxcMDAxXFwyNTVcXDI1NVxcMDY2XFwwMDFcXDExNVxcMDAxXFwxMTVcXDAwMVxcMTE1XFwwMDFcXDExNVxcMDAxXFwxMTVcXDAwMVxcXG4gICAgXFwxMTVcXDAwMVxcMTE1XFwwMDFcXDExNVxcMDAxXFwxMTVcXDAwMVxcMTE1XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXFxuICAgIFxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDExNFxcMDAxXFwxMTdcXDAwMVxcMTE3XFwwMDFcXDExN1xcMDAxXFwxMTdcXDAwMVxcMTE3XFwwMDFcXDExN1xcMDAxXFwxMTdcXDAwMVxcXG4gICAgXFwxMTdcXDAwMVxcMTE3XFwwMDFcXDExN1xcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXFxuICAgIFxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMTlcXDAwMVxcMTE5XFwwMDFcXDExOVxcMDAxXFxcbiAgICBcXDExOVxcMDAxXFwxMTlcXDAwMVxcMTE5XFwwMDFcXDExOVxcMDAxXFwxMTlcXDAwMVxcMTE5XFwwMDFcXDExOVxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwxMjZcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXFxuICAgIFxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwxMjlcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMjlcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDE1NVxcMDAxXFwyNTVcXDI1NVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFxcbiAgICBcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXFxuICAgIFxcMTU1XFwwMDFcXDI1NVxcMjU1XFwxMjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDEyNlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMjlcXDAwMVxcMTI2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDY2XFwwMDFcXFxuICAgIFxcMTI2XFwwMDFcXDEyOVxcMDAxXFwxMjZcXDAwMVxcMTI2XFwwMDFcXDI1NVxcMjU1XFwxMjlcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDE1NVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTI5XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMTI5XFwwMDFcXDI1NVxcMjU1XFwxMjlcXDAwMVxcMTI5XFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXFxuICAgIFxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEzMFxcMDAxXFwxMzBcXDAwMVxcXG4gICAgXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXFxuICAgIFxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcXG4gICAgXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMzBcXDAwMVxcMTMwXFwwMDFcXFxuICAgIFxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcXG4gICAgXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMjU1XFwyNTVcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXFxuICAgIFxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFxcbiAgICBcXDEzMlxcMDAxXFwxODRcXDAwMVxcMTM4XFwwMDFcXDE4NFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE4NFxcMDAxXFwxODRcXDAwMVxcXG4gICAgXFwxODRcXDAwMVxcMTg0XFwwMDFcXDE4NFxcMDAxXFwxODRcXDAwMVxcMTg0XFwwMDFcXDE4NFxcMDAxXFwxODRcXDAwMVxcMTg0XFwwMDFcXFxuICAgIFxcMTg1XFwwMDFcXDE4NVxcMDAxXFwxODVcXDAwMVxcMTg1XFwwMDFcXDE4NVxcMDAxXFwxODVcXDAwMVxcMTg1XFwwMDFcXDE4NVxcMDAxXFxcbiAgICBcXDE4NVxcMDAxXFwxODVcXDAwMVxcMjU1XFwyNTVcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcXG4gICAgXFwxMzJcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXFxuICAgIFxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFxcbiAgICBcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcXG4gICAgXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTM4XFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFxcbiAgICBcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcXG4gICAgXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXFxuICAgIFxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxNDFcXDAwMVxcMjU1XFwyNTVcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQzXFwwMDFcXDE0M1xcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTQzXFwwMDFcXDE1NlxcMDAxXFwxNTZcXDAwMVxcMTU2XFwwMDFcXDE1NlxcMDAxXFwxNTZcXDAwMVxcXG4gICAgXFwxNTZcXDAwMVxcMTU2XFwwMDFcXDE1NlxcMDAxXFwxNTZcXDAwMVxcMTU2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE5OFxcMDAxXFwxNDNcXDAwMVxcMjU1XFwyNTVcXDE0M1xcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxNTZcXDAwMVxcMTQzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMTk4XFwwMDFcXDE0M1xcMDAxXFwyNTVcXDI1NVxcMTQzXFwwMDFcXDE0M1xcMDAxXFwxNDNcXDAwMVxcMTQzXFwwMDFcXFxuICAgIFxcMTQzXFwwMDFcXDE0M1xcMDAxXFwxNDNcXDAwMVxcMTQzXFwwMDFcXDE0M1xcMDAxXFwxNDNcXDAwMVxcMTQzXFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxMzhcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTQzXFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFxcbiAgICBcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE5OFxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwxNDNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTk4XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTk4XFwwMDFcXDE4NlxcMDAxXFwyNTVcXDI1NVxcMTQzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDE5OFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE0M1xcMDAxXFwxOThcXDAwMVxcMjU1XFwyNTVcXDE5OFxcMDAxXFwxOThcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMTQzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTQzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxODdcXDAwMVxcMjU1XFwyNTVcXDE4N1xcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwxODZcXDAwMVxcMTg3XFwwMDFcXDE4N1xcMDAxXFwxODdcXDAwMVxcMTg3XFwwMDFcXDE4N1xcMDAxXFwxODdcXDAwMVxcXG4gICAgXFwxODdcXDAwMVxcMTg3XFwwMDFcXDE4N1xcMDAxXFwxODdcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXFxuICAgIFxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg5XFwwMDFcXDE4OVxcMDAxXFxcbiAgICBcXDE4OVxcMDAxXFwxODlcXDAwMVxcMTg5XFwwMDFcXDE4OVxcMDAxXFwxODlcXDAwMVxcMTg5XFwwMDFcXDE4OVxcMDAxXFwxODlcXDAwMVxcXG4gICAgXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXFxuICAgIFxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTFcXDAwMVxcMTkxXFwwMDFcXDE5MVxcMDAxXFwxOTFcXDAwMVxcMTkxXFwwMDFcXDE5MVxcMDAxXFxcbiAgICBcXDE5MVxcMDAxXFwxOTFcXDAwMVxcMTkxXFwwMDFcXDE5MVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcXG4gICAgXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwyMDFcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFxcbiAgICBcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDIwMVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcXG4gICAgXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDIwMVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTQzXFwwMDFcXDIwMVxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwMVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAxXFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDIwMVxcMDAxXFwyMDFcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcXG4gICAgXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFxcbiAgICBcXDIwMlxcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcXG4gICAgXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcXG4gICAgXFwyMDJcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjA0XFwwMDFcXFxuICAgIFxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFxcbiAgICBcXDIwNFxcMDAxXFwyNTVcXDI1NVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcXG4gICAgXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyNTVcXDI1NVxcMjEwXFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMTBcXDAwMVxcMjU1XFwyNTVcXDIxMFxcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMTNcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMTBcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XCI7XG4gIExleGluZy5sZXhfYmFzZV9jb2RlID1cbiAgIFwiXCI7XG4gIExleGluZy5sZXhfYmFja3Rya19jb2RlID1cbiAgIFwiXCI7XG4gIExleGluZy5sZXhfZGVmYXVsdF9jb2RlID1cbiAgIFwiXCI7XG4gIExleGluZy5sZXhfdHJhbnNfY29kZSA9XG4gICBcIlwiO1xuICBMZXhpbmcubGV4X2NoZWNrX2NvZGUgPVxuICAgXCJcIjtcbiAgTGV4aW5nLmxleF9jb2RlID1cbiAgIFwiXCI7XG59XG5cbmxldCByZWMgcmVhZF9qc29uIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfanNvbl9yZWMgdiBsZXhidWYgMFxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfanNvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTg4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMTg4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGBCb29sIHRydWUgKVxuXG4jIDEwMzIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwMzMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDE4OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDE4OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBgQm9vbCBmYWxzZSApXG5cbiMgMTAzNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTAzOCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMTkwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMTkwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGBOdWxsIClcblxuIyAxMDQyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDQzIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAxOTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAxOTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgXG4jIDE5NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgIGBGbG9hdGxpdCBcIk5hTlwiXG4gICAgICAgICAgICAgICAgXG4jIDE5NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKVxuXG4jIDEwNTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwNTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDE5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDE5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICBcbiMgMjAyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgYEZsb2F0bGl0IFwiSW5maW5pdHlcIlxuICAgICAgICAgICAgICAgIFxuIyAyMDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIClcblxuIyAxMDY0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDY1IFwibGliL3JlYWQubWxcIlxuICB8IDUgLT5cblxuIyAyMDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAyMDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgXG4jIDIwOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgIGBGbG9hdGxpdCBcIi1JbmZpbml0eVwiXG4gICAgICAgICAgICAgICAgXG4jIDIxMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKVxuXG4jIDEwNzUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwNzYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNiAtPlxuXG4jIDIxMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDIxMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICBcbiMgMjE3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgYFN0cmluZ2xpdCAoZmluaXNoX3N0cmluZ2xpdCB2IGxleGJ1ZilcbiAgICAgICAgICAgICAgICBcbiMgMjE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICApXG5cbiMgMTA4NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTA4OCBcImxpYi9yZWFkLm1sXCJcbiAgfCA3IC0+XG5cbiMgMjIwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgMjIwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIG1ha2VfcG9zaXRpdmVfaW50IHYgbGV4YnVmIClcblxuIyAxMDkyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDkzIFwibGliL3JlYWQubWxcIlxuICB8IDggLT5cblxuIyAyMjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyAyMjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggbWFrZV9uZWdhdGl2ZV9pbnQgdiBsZXhidWYgKVxuXG4jIDEwOTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwOTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgOSAtPlxuXG4jIDIyMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDIyMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICBcbiMgMjI2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgYEZsb2F0bGl0IChsZXhlbWUgbGV4YnVmKVxuICAgICAgICAgICAgICAgICBcbiMgMjI4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDExMDggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDExMDkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTAgLT5cblxuIyAyMzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMjMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBsZXQgYWNjID0gcmVmIFtdIGluXG4gICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9vYmplY3RfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGxldCBmaWVsZF9uYW1lID0gcmVhZF9pZGVudCB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfY29sb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYWNjIDo9IChmaWVsZF9uYW1lLCByZWFkX2pzb24gdiBsZXhidWYpIDo6ICFhY2M7XG4gICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfb2JqZWN0X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZpZWxkX25hbWUgPSByZWFkX2lkZW50IHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfY29sb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGFjYyA6PSAoZmllbGRfbmFtZSwgcmVhZF9qc29uIHYgbGV4YnVmKSA6OiAhYWNjO1xuICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX29iamVjdCAtPlxuICAgICAgICAgICAgICAgICAgICAgYEFzc29jIChMaXN0LnJldiAhYWNjKVxuICAgICAgICAgICAgICAgICApXG5cbiMgMTEzNSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTEzNiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMSAtPlxuXG4jIDI1NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAyNTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGxldCBhY2MgPSByZWYgW10gaW5cbiAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX2FycmF5X2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9qc29uIHYgbGV4YnVmIDo6ICFhY2M7XG4gICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfYXJyYXlfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9qc29uIHYgbGV4YnVmIDo6ICFhY2M7XG4gICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2ZfYXJyYXkgLT5cbiAgICAgICAgICAgICAgICAgICAgIGBMaXN0IChMaXN0LnJldiAhYWNjKVxuICAgICAgICAgICAgICAgICApXG5cbiMgMTE1NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTE1NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMiAtPlxuXG4jIDI3MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAyNzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICBcbiMgMjcyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgIGxldCBhY2MgPSByZWYgW10gaW5cbiAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3R1cGxlX2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2pzb24gdiBsZXhidWYgOjogIWFjYztcbiAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF90dXBsZV9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9qc29uIHYgbGV4YnVmIDo6ICFhY2M7XG4gICAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2ZfdHVwbGUgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgYFR1cGxlIChMaXN0LnJldiAhYWNjKVxuICAgICAgICAgICAgICAgICBcbiMgMjg5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDExNzggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDExNzkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTMgLT5cblxuIyAyOTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMjkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgXG4jIDI5MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgbGV0IGNvbnMgPSByZWFkX2lkZW50IHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYFZhcmlhbnQgKGNvbnMsIGZpbmlzaF92YXJpYW50IHYgbGV4YnVmKVxuICAgICAgICAgICAgICAgICBcbiMgMzAwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDExOTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDExOTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTQgLT5cblxuIyAzMDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMzAyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCByZWFkX2pzb24gdiBsZXhidWYgKVxuXG4jIDExOTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDExOTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTUgLT5cblxuIyAzMDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMzAzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBmaW5pc2hfY29tbWVudCB2IGxleGJ1ZjsgcmVhZF9qc29uIHYgbGV4YnVmIClcblxuIyAxMjAyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjAzIFwibGliL3JlYWQubWxcIlxuICB8IDE2IC0+XG5cbiMgMzA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDMwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggbmV3bGluZSB2IGxleGJ1ZjsgcmVhZF9qc29uIHYgbGV4YnVmIClcblxuIyAxMjA3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjA4IFwibGliL3JlYWQubWxcIlxuICB8IDE3IC0+XG5cbiMgMzA1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDMwNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggcmVhZF9qc29uIHYgbGV4YnVmIClcblxuIyAxMjEyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjEzIFwibGliL3JlYWQubWxcIlxuICB8IDE4IC0+XG5cbiMgMzA2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDMwNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTIxNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTIxOCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxOSAtPlxuXG4jIDMwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAzMDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHRva2VuXCIgdiBsZXhidWYgKVxuXG4jIDEyMjIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyMjMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2pzb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdHJpbmdfcmVjIHYgbGV4YnVmIDU4XG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX3N0cmluZ19yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMzExIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzMTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgKCBCdWZmZXIuY29udGVudHMgdi5idWYgKVxuXG4jIDEyMzQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyMzUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDMxMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzEyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICggZmluaXNoX2VzY2FwZWRfY2hhciB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgZmluaXNoX3N0cmluZyB2IGxleGJ1ZiApXG5cbiMgMTI0MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTI0MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzE0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzMTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgKCBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgZmluaXNoX3N0cmluZyB2IGxleGJ1ZiApXG5cbiMgMTI0NiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTI0NyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMzE2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzMTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxMjUxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjUyIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX3N0cmluZ19yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIG1hcF9zdHJpbmcgdiBmIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9tYXBfc3RyaW5nX3JlYyB2IGYgbGV4YnVmIDYzXG5hbmQgX19vY2FtbF9sZXhfbWFwX3N0cmluZ19yZWMgdiBmIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAzMTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDMxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAoIGxldCBiID0gdi5idWYgaW5cbiAgICAgICAgICAgICAgICAgICAgZiAoQnVmZmVyLmNvbnRlbnRzIGIpIDAgKEJ1ZmZlci5sZW5ndGggYikgKVxuXG4jIDEyNjQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyNjUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDMyMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzIxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICggZmluaXNoX2VzY2FwZWRfY2hhciB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgbWFwX3N0cmluZyB2IGYgbGV4YnVmIClcblxuIyAxMjcwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjcxIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzMjMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDMyMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAoIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICBtYXBfc3RyaW5nIHYgZiBsZXhidWYgKVxuXG4jIDEyNzYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyNzcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDMyNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzI1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTI4MSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTI4MiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X21hcF9zdHJpbmdfcmVjIHYgZiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9lc2NhcGVkX2NoYXIgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX2VzY2FwZWRfY2hhcl9yZWMgdiBsZXhidWYgNjhcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfZXNjYXBlZF9jaGFyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cbmxldFxuXG4jIDMzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgIFxuIyAzMzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICBjXG5cbiMgMTI5NCBcImxpYi9yZWFkLm1sXCJcbiMgMTI5NCBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgbGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zIGluXG5cbiMgMzMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMzMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiBjIClcblxuIyAxMjk4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjk5IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzMzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDMzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXFxiJyApXG5cbiMgMTMwMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTMwNCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzMzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1xcMDEyJyApXG5cbiMgMTMwOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTMwOSBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMzMzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzMzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1xcbicgKVxuXG4jIDEzMTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEzMTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDMzNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzM0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcXHInIClcblxuIyAxMzE4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMzE5IFwibGliL3JlYWQubWxcIlxuICB8IDUgLT5cblxuIyAzMzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDMzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXFx0JyApXG5cbiMgMTMyMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTMyNCBcImxpYi9yZWFkLm1sXCJcbiAgfCA2IC0+XG5sZXRcblxuIyAzMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAzMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIGFcblxuIyAxMzI5IFwibGliL3JlYWQubWxcIlxuIyAxMzI5IFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiAobGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zICsgMSlcbmFuZFxuXG4jIDMzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgMzM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGJcblxuIyAxMzM0IFwibGliL3JlYWQubWxcIlxuIyAxMzM0IFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiAobGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zICsgMilcbmFuZFxuXG4jIDMzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyAzMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjXG5cbiMgMTMzOSBcImxpYi9yZWFkLm1sXCJcbiMgMTMzOSBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgKGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyArIDMpXG5hbmRcblxuIyAzMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyAzMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRcblxuIyAxMzQ0IFwibGliL3JlYWQubWxcIlxuIyAxMzQ0IFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiAobGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zICsgNCkgaW5cblxuIyAzMzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDMzNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxldCB4ID1cbiAgICAgICAgICAgICAoaGV4IGEgbHNsIDEyKSBsb3IgKGhleCBiIGxzbCA4KSBsb3IgKGhleCBjIGxzbCA0KSBsb3IgaGV4IGRcbiAgICAgICAgICAgaW5cbiAgICAgICAgICAgaWYgeCA+PSAweEQ4MDAgJiYgeCA8PSAweERCRkYgdGhlblxuICAgICAgICAgICAgIGZpbmlzaF9zdXJyb2dhdGVfcGFpciB2IHggbGV4YnVmXG4gICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICB1dGY4X29mX2NvZGUgdi5idWYgeFxuICAgICAgICAgKVxuXG4jIDEzNTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEzNTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNyAtPlxuXG4jIDM0NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzQ1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkludmFsaWQgZXNjYXBlIHNlcXVlbmNlXCIgdiBsZXhidWYgKVxuXG4jIDEzNjAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEzNjEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgOCAtPlxuXG4jIDM0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTM2NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTM2NiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9lc2NhcGVkX2NoYXJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfc3Vycm9nYXRlX3BhaXIgdiB4IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfc3Vycm9nYXRlX3BhaXJfcmVjIHYgeCBsZXhidWYgODJcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfc3Vycm9nYXRlX3BhaXJfcmVjIHYgeCBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5sZXRcblxuIyAzNDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDM0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBhXG5cbiMgMTM3OCBcImxpYi9yZWFkLm1sXCJcbiMgMTM3OCBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgKGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyArIDIpXG5hbmRcblxuIyAzNDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgMzQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYlxuXG4jIDEzODMgXCJsaWIvcmVhZC5tbFwiXG4jIDEzODMgXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIChsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgKyAzKVxuYW5kXG5cbiMgMzQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgMzQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjXG5cbiMgMTM4OCBcImxpYi9yZWFkLm1sXCJcbiMgMTM4OCBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgKGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyArIDQpXG5hbmRcblxuIyAzNDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDM0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkXG5cbiMgMTM5MyBcImxpYi9yZWFkLm1sXCJcbiMgMTM5MyBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgKGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyArIDUpIGluXG5cbiMgMzUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsZXQgeSA9XG4gICAgICAgICAgICAgKGhleCBhIGxzbCAxMikgbG9yIChoZXggYiBsc2wgOCkgbG9yIChoZXggYyBsc2wgNCkgbG9yIGhleCBkXG4gICAgICAgICAgIGluXG4gICAgICAgICAgIGlmIHkgPj0gMHhEQzAwICYmIHkgPD0gMHhERkZGIHRoZW5cbiAgICAgICAgICAgICB1dGY4X29mX3N1cnJvZ2F0ZV9wYWlyIHYuYnVmIHggeVxuICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgbG9uZ19lcnJvciBcIkludmFsaWQgbG93IHN1cnJvZ2F0ZSBmb3IgY29kZSBwb2ludCBiZXlvbmQgVStGRkZGXCJcbiAgICAgICAgICAgICAgIHYgbGV4YnVmXG4gICAgICAgICApXG5cbiMgMTQwNSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQwNiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzU5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiTWlzc2luZyBlc2NhcGUgc2VxdWVuY2UgcmVwcmVzZW50aW5nIGxvdyBzdXJyb2dhdGUgXFxcbiAgICAgICAgICAgICAgICAgICAgICAgZm9yIGNvZGUgcG9pbnQgYmV5b25kIFUrRkZGRlwiIHYgbGV4YnVmIClcblxuIyAxNDExIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDEyIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzNjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE0MTYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0MTcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfc3Vycm9nYXRlX3BhaXJfcmVjIHYgeCBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9zdHJpbmdsaXQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgOTFcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAzNjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM2NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxldCBsZW4gPSBsZXhidWYubGV4X2N1cnJfcG9zIC0gbGV4YnVmLmxleF9zdGFydF9wb3MgaW5cbiAgICAgICAgICAgbGV0IHMgPSBCeXRlcy5jcmVhdGUgKGxlbisxKSBpblxuICAgICAgICAgICBCeXRlcy5zZXQgcyAwICdcIic7XG4gICAgICAgICAgIEJ5dGVzLmJsaXQgbGV4YnVmLmxleF9idWZmZXIgbGV4YnVmLmxleF9zdGFydF9wb3MgcyAxIGxlbjtcbiAgICAgICAgICAgQnl0ZXMudG9fc3RyaW5nIHNcbiAgICAgICAgIClcblxuIyAxNDMzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDM0IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzNzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM3MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHN0cmluZyBsaXRlcmFsXCIgdiBsZXhidWYgKVxuXG4jIDE0MzggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0MzkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDM3MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzczIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTQ0MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQ0NCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfdmFyaWFudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfdmFyaWFudF9yZWMgdiBsZXhidWYgMTAyXG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDM3NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzc2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbGV0IHggPSByZWFkX2pzb24gdiBsZXhidWYgaW5cbiAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgcmVhZF9ndCB2IGxleGJ1ZjtcbiAgICAgICAgICAgU29tZSB4IClcblxuIyAxNDU4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDU5IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzODAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM4MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIE5vbmUgKVxuXG4jIDE0NjMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0NjQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDM4MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzgxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc6JyBvciAnPicgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE0NjggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0NjkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDM4MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzgyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTQ3MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQ3NCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF92YXJpYW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9sdCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2x0X3JlYyB2IGxleGJ1ZiAxMDdcbmFuZCBfX29jYW1sX2xleF9yZWFkX2x0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAzODUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAzODUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDE0ODUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0ODYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDM4NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDM4NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJzwnIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxNDkwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDkxIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzODcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAzODcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTQ5NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQ5NiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfbHRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2d0IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfZ3RfcmVjIHYgbGV4YnVmIDExMVxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfZ3RfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDM5MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzkwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggKCkgKVxuXG4jIDE1MDcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1MDggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDM5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc+JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTUxMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTUxMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzkyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzOTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNTE3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTE4IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9ndF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfY29tbWEgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9jb21tYV9yZWMgdiBsZXhidWYgMTE1XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9jb21tYV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMzk1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzOTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCAoKSApXG5cbiMgMTUyOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTUzMCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzk2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzOTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxNTM0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTM1IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzOTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM5NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE1MzkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1NDAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2NvbW1hX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgc3RhcnRfYW55X3ZhcmlhbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfc3RhcnRfYW55X3ZhcmlhbnRfcmVjIHYgbGV4YnVmIDExOVxuYW5kIF9fb2NhbWxfbGV4X3N0YXJ0X2FueV92YXJpYW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0MDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA0MDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggYEVkZ3lfYnJhY2tldCApXG5cbiMgMTU1MSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU1MiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDAxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNDAxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgIGBEb3VibGVfcXVvdGUgKVxuXG4jIDE1NTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1NTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDQwMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDQwMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBgU3F1YXJlX2JyYWNrZXQgKVxuXG4jIDE1NjIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1NjMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDQwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDQwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJzwnLCAnXFxcIicgb3IgJ1snIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxNTY3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTY4IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA0MDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA0MDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTU3MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU3MyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3N0YXJ0X2FueV92YXJpYW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX2NvbW1lbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX2NvbW1lbnRfcmVjIHYgbGV4YnVmIDEyNVxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9jb21tZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0MDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDQwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoICgpIClcblxuIyAxNTg0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTg1IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0MDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDQwOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJVbnRlcm1pbmF0ZWQgY29tbWVudFwiIHYgbGV4YnVmIClcblxuIyAxNTg5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTkwIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA0MTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDQxMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIG5ld2xpbmUgdiBsZXhidWY7IGZpbmlzaF9jb21tZW50IHYgbGV4YnVmIClcblxuIyAxNTk0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTk1IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA0MTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDQxMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGZpbmlzaF9jb21tZW50IHYgbGV4YnVmIClcblxuIyAxNTk5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjAwIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX2NvbW1lbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2VvZiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9lb2ZfcmVjIGxleGJ1ZiAxMzFcbmFuZCBfX29jYW1sX2xleF9yZWFkX2VvZl9yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgIFxuIyA0MTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAoIHRydWUgKVxuXG4jIDE2MTEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2MTIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQyMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgIFxuIyA0MjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAoIGZhbHNlIClcblxuIyAxNjE2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjE3IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9lb2ZfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9zcGFjZSB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3NwYWNlX3JlYyB2IGxleGJ1ZiAxMzNcbmFuZCBfX29jYW1sX2xleF9yZWFkX3NwYWNlX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0MjMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDIzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBuZXdsaW5lIHYgbGV4YnVmOyByZWFkX3NwYWNlIHYgbGV4YnVmIClcblxuIyAxNjI4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjI5IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0MjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDI0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBmaW5pc2hfY29tbWVudCB2IGxleGJ1ZjsgcmVhZF9zcGFjZSB2IGxleGJ1ZiApXG5cbiMgMTYzMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTYzNCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNDI1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQyNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggbmV3bGluZSB2IGxleGJ1ZjsgcmVhZF9zcGFjZSB2IGxleGJ1ZiApXG5cbiMgMTYzOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTYzOSBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNDI2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQyNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggcmVhZF9zcGFjZSB2IGxleGJ1ZiApXG5cbiMgMTY0MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTY0NCBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgNDI3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQyNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDE2NDggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2NDkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3NwYWNlX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9udWxsIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfbnVsbF9yZWMgdiBsZXhidWYgMTQwXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9udWxsX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0MzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICBcbiMgNDMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMTY2MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTY2MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgXG4jIDQzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICdudWxsJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTY2NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTY2NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNDMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgXG4jIDQzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTY3MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTY3MSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfbnVsbF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfbnVsbF9pZl9wb3NzaWJsZSB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX251bGxfaWZfcG9zc2libGVfcmVjIHYgbGV4YnVmIDE0N1xuYW5kIF9fb2NhbWxfbGV4X3JlYWRfbnVsbF9pZl9wb3NzaWJsZV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgXG4jIDQzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICggdHJ1ZSApXG5cbiMgMTY4MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTY4MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgXG4jIDQzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICggZmFsc2UgKVxuXG4jIDE2ODcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2ODggXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX251bGxfaWZfcG9zc2libGVfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2Jvb2wgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9ib29sX3JlYyB2IGxleGJ1ZiAxNTJcbmFuZCBfX29jYW1sX2xleF9yZWFkX2Jvb2xfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQzOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDQzOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCB0cnVlIClcblxuIyAxNjk5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzAwIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0NDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA0NDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggZmFsc2UgKVxuXG4jIDE3MDQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3MDUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDQ0MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDQ0MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCB0cnVlIClcblxuIyAxNzA5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzEwIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA0NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA0NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggZmFsc2UgKVxuXG4jIDE3MTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3MTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDQ0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDQ0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ3RydWUnIG9yICdmYWxzZScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE3MTkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3MjAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNSAtPlxuXG4jIDQ0NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDQ0NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNzI0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzI1IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9ib29sX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9pbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9pbnRfcmVjIHYgbGV4YnVmIDE3NlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfaW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0NTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0NTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggdHJ5IGV4dHJhY3RfcG9zaXRpdmVfaW50IGxleGJ1ZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBJbnRfb3ZlcmZsb3cgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV4ZXJfZXJyb3IgXCJJbnQgb3ZlcmZsb3dcIiB2IGxleGJ1ZiApXG5cbiMgMTczOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTczOSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIHRyeSBleHRyYWN0X25lZ2F0aXZlX2ludCBsZXhidWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggSW50X292ZXJmbG93IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxleGVyX2Vycm9yIFwiSW50IG92ZXJmbG93XCIgdiBsZXhidWYgKVxuXG4jIDE3NDUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3NDYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDQ1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCAoKiBTdXBwb3J0IGZvciBkb3VibGUtcXVvdGVkIFwiaW50c1wiICopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcyA9IGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBBbnkgT0NhbWwtY29tcGxpYW50IGludCB3aWxsIHBhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGluZyBoZXhhZGVjaW1hbCBhbmQgb2N0YWwgbm90YXRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZW1iZWRkZWQgdW5kZXJzY29yZXMgKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50X29mX3N0cmluZyBzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tX2Vycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJFeHBlY3RlZCBhbiBpbnRlZ2VyIGJ1dCBmb3VuZCBhIHN0cmluZyB0aGF0IFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvZXNuJ3QgZXZlbiByZXByZXNlbnQgYW4gaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiBsZXhidWZcbiAgICAgICAgICAgICAgICAgICAgICAgICApXG5cbiMgMTc2MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTc2NCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNDcwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDcwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCBpbnRlZ2VyIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxNzY4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzY5IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA0NzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0NzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTc3MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTc3NCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfaW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9pbnQzMiB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2ludDMyX3JlYyB2IGxleGJ1ZiAxODVcbmFuZCBfX29jYW1sX2xleF9yZWFkX2ludDMyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0NzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0NzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggdHJ5IEludDMyLm9mX3N0cmluZyAoTGV4aW5nLmxleGVtZSBsZXhidWYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV4ZXJfZXJyb3IgXCJJbnQzMiBvdmVyZmxvd1wiIHYgbGV4YnVmIClcblxuIyAxNzg3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzg4IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0NzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0NzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggKCogU3VwcG9ydCBmb3IgZG91YmxlLXF1b3RlZCBcImludHNcIiAqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHMgPSBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQW55IE9DYW1sLWNvbXBsaWFudCBpbnQgd2lsbCBwYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRpbmcgaGV4YWRlY2ltYWwgYW5kIG9jdGFsIG5vdGF0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGVtYmVkZGVkIHVuZGVyc2NvcmVzICopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludDMyLm9mX3N0cmluZyBzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tX2Vycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJFeHBlY3RlZCBhbiBpbnQzMiBidXQgZm91bmQgYSBzdHJpbmcgdGhhdCBcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2Vzbid0IGV2ZW4gcmVwcmVzZW50IGFuIGludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgbGV4YnVmXG4gICAgICAgICAgICAgICAgICAgICAgICAgKVxuXG4jIDE4MDUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4MDYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDQ5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgaW50MzIgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE4MTAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4MTEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDQ5MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ5MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxODE1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODE2IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9pbnQzMl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfaW50NjQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9pbnQ2NF9yZWMgdiBsZXhidWYgMTkyXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9pbnQ2NF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDk1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDk1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIHRyeSBJbnQ2NC5vZl9zdHJpbmcgKExleGluZy5sZXhlbWUgbGV4YnVmKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxleGVyX2Vycm9yIFwiSW50MzIgb3ZlcmZsb3dcIiB2IGxleGJ1ZiApXG5cbiMgMTgyOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTgzMCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoICgqIFN1cHBvcnQgZm9yIGRvdWJsZS1xdW90ZWQgXCJpbnRzXCIgKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzID0gZmluaXNoX3N0cmluZyB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEFueSBPQ2FtbC1jb21wbGlhbnQgaW50IHdpbGwgcGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkaW5nIGhleGFkZWNpbWFsIGFuZCBvY3RhbCBub3RhdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBlbWJlZGRlZCB1bmRlcnNjb3JlcyAqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnQ2NC5vZl9zdHJpbmcgc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbV9lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRXhwZWN0ZWQgYW4gaW50NjQgYnV0IGZvdW5kIGEgc3RyaW5nIHRoYXQgXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9lc24ndCBldmVuIHJlcHJlc2VudCBhbiBpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgICAgICAgICAgIClcblxuIyAxODQ3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODQ4IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA1MTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA1MTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkIGludDY0IGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxODUyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODUzIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA1MTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA1MTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTg1NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTg1OCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfaW50NjRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX251bWJlciB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX251bWJlcl9yZWMgdiBsZXhidWYgMTk5XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9udW1iZXJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDUxNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDUxNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBuYW4gKVxuXG4jIDE4NjkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4NzAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDUxNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDUxNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBpbmZpbml0eSApXG5cbiMgMTg3NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTg3NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNTE4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNTE4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIG5lZ19pbmZpbml0eSApXG5cbiMgMTg3OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTg4MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNTE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNTE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGZsb2F0X29mX3N0cmluZyAobGV4ZW1lIGxleGJ1ZikgKVxuXG4jIDE4ODQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4ODUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDUyMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDUyMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICAgICBsZXQgcyA9IGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAoKiBBbnkgT0NhbWwtY29tcGxpYW50IGZsb2F0IHdpbGwgcGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkaW5nIGhleGFkZWNpbWFsIGFuZCBvY3RhbCBub3RhdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgIGFuZCBlbWJlZGRlZCB1bmRlcnNjb3Jlcy4gKilcbiAgICAgICAgICAgICAgICAgICAgZmxvYXRfb2Zfc3RyaW5nIHNcbiAgICAgICAgICAgICAgICAgIHdpdGggXyAtPlxuICAgICAgICAgICAgICAgICAgICBtYXRjaCBzIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiTmFOXCIgLT4gbmFuXG4gICAgICAgICAgICAgICAgICAgICAgfCBcIkluZmluaXR5XCIgLT4gaW5maW5pdHlcbiAgICAgICAgICAgICAgICAgICAgICB8IFwiLUluZmluaXR5XCIgLT4gbmVnX2luZmluaXR5XG4gICAgICAgICAgICAgICAgICAgICAgfCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbV9lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRXhwZWN0ZWQgYSBudW1iZXIgYnV0IGZvdW5kIGEgc3RyaW5nIHRoYXQgXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9lc24ndCBldmVuIHJlcHJlc2VudCBhIG51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiBsZXhidWZcbiAgICAgICAgICAgICAgICApXG5cbiMgMTkwNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTkwNyBcImxpYi9yZWFkLm1sXCJcbiAgfCA1IC0+XG5cbiMgNTM4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNTM4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCBudW1iZXIgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE5MTEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5MTIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNiAtPlxuXG4jIDUzOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDUzOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxOTE2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTE3IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9udW1iZXJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3N0cmluZyB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3N0cmluZ19yZWMgdiBsZXhidWYgMjMzXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9zdHJpbmdfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDU0MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU0MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmIClcblxuIyAxOTI5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTMwIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA1NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICdcXFwiJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTkzNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTkzNSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNTQ1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTQ1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE5MzkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5NDAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3N0cmluZ19yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfaWRlbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9pZGVudF9yZWMgdiBsZXhidWYgMjM3XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9pZGVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNTQ4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTQ4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgIGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgKVxuXG4jIDE5NTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5NTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxubGV0XG5cbiMgNTUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBzXG5cbiMgMTk1OCBcImxpYi9yZWFkLm1sXCJcbiMgMTk1OCBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWUgbGV4YnVmIGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyBsZXhidWYuTGV4aW5nLmxleF9jdXJyX3BvcyBpblxuXG4jIDU1MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU1MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBzIClcblxuIyAxOTYyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTYzIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA1NTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkIHN0cmluZyBvciBpZGVudGlmaWVyIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxOTY3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTY4IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA1NTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTk3MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTk3MyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfaWRlbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBtYXBfaWRlbnQgdiBmIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9tYXBfaWRlbnRfcmVjIHYgZiBsZXhidWYgMjQyXG5hbmQgX19vY2FtbF9sZXhfbWFwX2lkZW50X3JlYyB2IGYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDU1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICBtYXBfc3RyaW5nIHYgZiBsZXhidWYgKVxuXG4jIDE5ODUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5ODYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDU1OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU1OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBtYXBfbGV4ZW1lIGYgbGV4YnVmIClcblxuIyAxOTkwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTkxIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA1NjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkIHN0cmluZyBvciBpZGVudGlmaWVyIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxOTk1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTk2IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA1NjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjAwMCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjAwMSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X21hcF9pZGVudF9yZWMgdiBmIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9zZXF1ZW5jZSByZWFkX2NlbGwgaW5pdF9hY2MgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9zZXF1ZW5jZV9yZWMgcmVhZF9jZWxsIGluaXRfYWNjIHYgbGV4YnVmIDI0N1xuYW5kIF9fb2NhbWxfbGV4X3JlYWRfc2VxdWVuY2VfcmVjIHJlYWRfY2VsbCBpbml0X2FjYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA1NjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbGV0IGFjYyA9IHJlZiBpbml0X2FjYyBpblxuICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIHJlYWRfYXJyYXlfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfY2VsbCAhYWNjIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICByZWFkX2FycmF5X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2NlbGwgIWFjYyB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9hcnJheSAtPlxuICAgICAgICAgICAgICAgICAhYWNjXG4gICAgICAgICAgICAgKVxuXG4jIDIwMjYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwMjcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDU3OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU3OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ1snIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMDMxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDMyIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA1ODAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1ODAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjAzNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjAzNyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfc2VxdWVuY2VfcmVjIHJlYWRfY2VsbCBpbml0X2FjYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9saXN0X3JldiByZWFkX2NlbGwgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9saXN0X3Jldl9yZWMgcmVhZF9jZWxsIHYgbGV4YnVmIDI1MVxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfbGlzdF9yZXZfcmVjIHJlYWRfY2VsbCB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA1ODMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1ODMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbGV0IGFjYyA9IHJlZiBbXSBpblxuICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIHJlYWRfYXJyYXlfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfY2VsbCB2IGxleGJ1ZiA6OiAhYWNjO1xuICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICByZWFkX2FycmF5X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2NlbGwgdiBsZXhidWYgOjogIWFjYztcbiAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9hcnJheSAtPlxuICAgICAgICAgICAgICAgICAhYWNjXG4gICAgICAgICAgICAgKVxuXG4jIDIwNjIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwNjMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDU5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ1snIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMDY3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDY4IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA1OTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1OTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjA3MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjA3MyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfbGlzdF9yZXZfcmVjIHJlYWRfY2VsbCB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9hcnJheV9lbmQgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfYXJyYXlfZW5kX3JlYyBsZXhidWYgMjU1XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9hcnJheV9lbmRfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA2MDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2MDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggcmFpc2UgRW5kX29mX2FycmF5IClcblxuIyAyMDg0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDg1IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA2MDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2MDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIwODkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwOTAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2FycmF5X2VuZF9yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2FycmF5X3NlcCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2FycmF5X3NlcF9yZWMgdiBsZXhidWYgMjU3XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9hcnJheV9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDYwNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDYwNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjEwMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjEwMiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNjA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIHJhaXNlIEVuZF9vZl9hcnJheSApXG5cbiMgMjEwNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjEwNyBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNjA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJ10nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMTExIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTEyIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA2MDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2MDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjExNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjExNyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfYXJyYXlfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF90dXBsZSByZWFkX2NlbGwgaW5pdF9hY2MgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9yZWMgcmVhZF9jZWxsIGluaXRfYWNjIHYgbGV4YnVmIDI2MlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfcmVjIHJlYWRfY2VsbCBpbml0X2FjYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA2MTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgNjEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgXG4jIDYxNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICBsZXQgcG9zID0gcmVmIDAgaW5cbiAgICAgICAgICAgICAgICAgICAgIGxldCBhY2MgPSByZWYgaW5pdF9hY2MgaW5cbiAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3R1cGxlX2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2NlbGwgIXBvcyAhYWNjIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBpbmNyIHBvcztcbiAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF90dXBsZV9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9jZWxsICFwb3MgIWFjYyB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyIHBvcztcbiAgICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl90dXBsZSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAhYWNjXG4gICAgICAgICAgICAgICAgIFxuIyA2MzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICApXG5cbiMgMjE1MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjE1MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNjM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnKScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIxNTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxNTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDYzNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDYzNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMTYwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTYxIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9yZWMgcmVhZF9jZWxsIGluaXRfYWNjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3R1cGxlX2VuZCBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9lbmRfcmVjIGxleGJ1ZiAyNjZcbmFuZCBfX29jYW1sX2xleF9yZWFkX3R1cGxlX2VuZF9yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDY0MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY0MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCByYWlzZSBFbmRfb2ZfdHVwbGUgKVxuXG4jIDIxNzIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxNzMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDY0MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY0MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjE3NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjE3OCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfZW5kX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfdHVwbGVfZW5kMiB2IHN0ZCBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9lbmQyX3JlYyB2IHN0ZCBsZXhidWYgMjY4XG5hbmQgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9lbmQyX3JlYyB2IHN0ZCBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNjQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGlmIHN0ZCB0aGVuXG4gICAgICAgICAgICAgICAgIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnKScgb3IgJycgYnV0IGZvdW5kXCIgdiBsZXhidWZcbiAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgcmFpc2UgRW5kX29mX3R1cGxlIClcblxuIyAyMTkyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTkzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA2NDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggaWYgc3RkIHRoZW5cbiAgICAgICAgICAgICAgICAgcmFpc2UgRW5kX29mX3R1cGxlXG4gICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnXScgb3IgJycgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIyMDAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyMDEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDY1MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY1MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjIwNSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjIwNiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfZW5kMl9yZWMgdiBzdGQgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3R1cGxlX3NlcCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3NlcF9yZWMgdiBsZXhidWYgMjcxXG5hbmQgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDY1NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY1NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjIxNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjIxOCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNjU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIHJhaXNlIEVuZF9vZl90dXBsZSApXG5cbiMgMjIyMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjIyMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNjU3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjU3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJyknIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMjI3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjI4IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA2NTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjIzMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjIzMyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF90dXBsZV9zZXAyIHYgc3RkIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3NlcDJfcmVjIHYgc3RkIGxleGJ1ZiAyNzZcbmFuZCBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3NlcDJfcmVjIHYgc3RkIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA2NjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIyNDQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyNDUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDY2MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY2MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBpZiBzdGQgdGhlblxuICAgICAgICAgICAgICAgICBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICddJyBidXQgZm91bmRcIiB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICByYWlzZSBFbmRfb2ZfdHVwbGUgKVxuXG4jIDIyNTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyNTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDY2NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY2NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBpZiBzdGQgdGhlblxuICAgICAgICAgICAgICAgICByYWlzZSBFbmRfb2ZfdHVwbGVcbiAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnKScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIyNjAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyNjEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDY3MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY3MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICcpJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjI2NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjI2NiBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgNjcxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjcxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIyNzAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyNzEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3NlcDJfcmVjIHYgc3RkIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9hYnN0cmFjdF9maWVsZHMgcmVhZF9rZXkgcmVhZF9maWVsZCBpbml0X2FjYyB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2Fic3RyYWN0X2ZpZWxkc19yZWMgcmVhZF9rZXkgcmVhZF9maWVsZCBpbml0X2FjYyB2IGxleGJ1ZiAyODJcbmFuZCBfX29jYW1sX2xleF9yZWFkX2Fic3RyYWN0X2ZpZWxkc19yZWMgcmVhZF9rZXkgcmVhZF9maWVsZCBpbml0X2FjYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA2NzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbGV0IGFjYyA9IHJlZiBpbml0X2FjYyBpblxuICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIHJlYWRfb2JqZWN0X2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgIGxldCBmaWVsZF9uYW1lID0gcmVhZF9rZXkgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgcmVhZF9jb2xvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfZmllbGQgIWFjYyBmaWVsZF9uYW1lIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICByZWFkX29iamVjdF9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICBsZXQgZmllbGRfbmFtZSA9IHJlYWRfa2V5IHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICByZWFkX2NvbG9uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfZmllbGQgIWFjYyBmaWVsZF9uYW1lIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgIHdpdGggRW5kX29mX29iamVjdCAtPlxuICAgICAgICAgICAgICAgICAhYWNjXG4gICAgICAgICAgICAgKVxuXG4jIDIzMDQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzMDUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDY5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ3snIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMzA5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzEwIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA2OTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2OTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjMxNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjMxNSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfYWJzdHJhY3RfZmllbGRzX3JlYyByZWFkX2tleSByZWFkX2ZpZWxkIGluaXRfYWNjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2xjdXJsIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfbGN1cmxfcmVjIHYgbGV4YnVmIDI4NlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfbGN1cmxfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDcwMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcwMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjMyNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjMyNyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzAzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzAzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAneycgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIzMzEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzMzIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDcwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMzM2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzM3IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9sY3VybF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfb2JqZWN0X2VuZCBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9vYmplY3RfZW5kX3JlYyBsZXhidWYgMjkwXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9vYmplY3RfZW5kX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIHJhaXNlIEVuZF9vZl9vYmplY3QgKVxuXG4jIDIzNDggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzNDkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDcwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjM1MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjM1NCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfb2JqZWN0X2VuZF9yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX29iamVjdF9zZXAgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9vYmplY3Rfc2VwX3JlYyB2IGxleGJ1ZiAyOTJcbmFuZCBfX29jYW1sX2xleF9yZWFkX29iamVjdF9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDcxMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcxMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjM2NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjM2NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzEyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzEyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIHJhaXNlIEVuZF9vZl9vYmplY3QgKVxuXG4jIDIzNzAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzNzEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDcxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICd9JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjM3NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjM3NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNzE0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzE0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIzODAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzODEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX29iamVjdF9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2NvbG9uIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfY29sb25fcmVjIHYgbGV4YnVmIDI5N1xuYW5kIF9fb2NhbWxfbGV4X3JlYWRfY29sb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDcxNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcxNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjM5MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjM5MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzE4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzE4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnOicgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIzOTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzOTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDcxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNDAyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDAzIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9jb2xvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHN0YXJ0X2FueV90dXBsZSB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9zdGFydF9hbnlfdHVwbGVfcmVjIHYgbGV4YnVmIDMwMVxuYW5kIF9fb2NhbWxfbGV4X3N0YXJ0X2FueV90dXBsZV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzIyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzIyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGZhbHNlIClcblxuIyAyNDE0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDE1IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3MjMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MjMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggdHJ1ZSApXG5cbiMgMjQxOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQyMCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzI0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzI0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnKCcgb3IgJ1snIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyNDI0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDI1IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA3MjUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MjUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjQyOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQzMCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3N0YXJ0X2FueV90dXBsZV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfbHBhciB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2xwYXJfcmVjIHYgbGV4YnVmIDMwNlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfbHBhcl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzI4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzI4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyNDQxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDQyIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3MjkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MjkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcoJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjQ0NiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ0NyBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI0NTEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0NTIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2xwYXJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3JwYXIgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9ycGFyX3JlYyB2IGxleGJ1ZiAzMTBcbmFuZCBfX29jYW1sX2xleF9yZWFkX3JwYXJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDczMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDczMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjQ2MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ2NCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzM0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzM0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnKScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI0NjggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0NjkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDczNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDczNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNDczIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDc0IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9ycGFyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9sYnIgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9sYnJfcmVjIHYgbGV4YnVmIDMxNFxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfbGJyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3MzggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MzggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDI0ODUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0ODYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDczOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDczOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ1snIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyNDkwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDkxIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3NDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3NDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjQ5NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ5NiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfbGJyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9yYnIgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9yYnJfcmVjIHYgbGV4YnVmIDMxOFxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfcmJyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3NDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3NDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1MDcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1MDggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDc0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDc0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ10nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyNTEyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTEzIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3NDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3NDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjUxNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjUxOCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfcmJyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgc2tpcF9qc29uIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3NraXBfanNvbl9yZWMgdiBsZXhidWYgMzIyXG5hbmQgX19vY2FtbF9sZXhfc2tpcF9qc29uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3NTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA3NTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1MjkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1MzAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDc1MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDc1MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMjUzNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjUzNSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNzUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoICgpIClcblxuIyAyNTM5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTQwIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA3NTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA3NTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1NDQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1NDUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDc1NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDc1NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMjU0OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjU1MCBcImxpYi9yZWFkLm1sXCJcbiAgfCA1IC0+XG5cbiMgNzU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNzU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoICgpIClcblxuIyAyNTU0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTU1IFwibGliL3JlYWQubWxcIlxuICB8IDYgLT5cblxuIyA3NTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA3NTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggZmluaXNoX3NraXBfc3RyaW5nbGl0IHYgbGV4YnVmIClcblxuIyAyNTU5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTYwIFwibGliL3JlYWQubWxcIlxuICB8IDcgLT5cblxuIyA3NTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNzU4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMjU2NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjU2NSBcImxpYi9yZWFkLm1sXCJcbiAgfCA4IC0+XG5cbiMgNzU5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNzU5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoICgpIClcblxuIyAyNTY5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTcwIFwibGliL3JlYWQubWxcIlxuICB8IDkgLT5cblxuIyA3NjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgNzYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCB0cnlcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX29iamVjdF9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgc2tpcF9pZGVudCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX2NvbG9uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHNraXBfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9vYmplY3Rfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBza2lwX2lkZW50IHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX2NvbG9uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBza2lwX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2Zfb2JqZWN0IC0+XG4gICAgICAgICAgICAgICAgICAgICAoKVxuICAgICAgICAgICAgICAgICApXG5cbiMgMjU5NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjU5NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMCAtPlxuXG4jIDc4NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA3ODQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIHRyeVxuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfYXJyYXlfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHNraXBfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9hcnJheV9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHNraXBfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9hcnJheSAtPlxuICAgICAgICAgICAgICAgICAgICAgKClcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDI2MTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2MTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTEgLT5cblxuIyA3OTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgNzk5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgXG4jIDgwMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF90dXBsZV9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBza2lwX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfdHVwbGVfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX3R1cGxlIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICgpXG4gICAgICAgICAgICAgICAgIFxuIyA4MTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICApXG5cbiMgMjYzNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjYzNyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMiAtPlxuXG4jIDgxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4MTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICBcbiMgODIxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBza2lwX2lkZW50IHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGZpbmlzaF9za2lwX3ZhcmlhbnQgdiBsZXhidWZcbiAgICAgICAgICAgICAgICAgXG4jIDgyOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIClcblxuIyAyNjUwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjUxIFwibGliL3JlYWQubWxcIlxuICB8IDEzIC0+XG5cbiMgODMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDgzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggc2tpcF9qc29uIHYgbGV4YnVmIClcblxuIyAyNjU1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjU2IFwibGliL3JlYWQubWxcIlxuICB8IDE0IC0+XG5cbiMgODMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDgzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggZmluaXNoX2NvbW1lbnQgdiBsZXhidWY7IHNraXBfanNvbiB2IGxleGJ1ZiApXG5cbiMgMjY2MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY2MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxNSAtPlxuXG4jIDgzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4MzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIG5ld2xpbmUgdiBsZXhidWY7IHNraXBfanNvbiB2IGxleGJ1ZiApXG5cbiMgMjY2NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY2NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxNiAtPlxuXG4jIDgzMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4MzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIHNraXBfanNvbiB2IGxleGJ1ZiApXG5cbiMgMjY3MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY3MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxNyAtPlxuXG4jIDgzNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4MzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI2NzUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2NzYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTggLT5cblxuIyA4MzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiSW52YWxpZCB0b2tlblwiIHYgbGV4YnVmIClcblxuIyAyNjgwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjgxIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfc2tpcF9qc29uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX3NraXBfc3RyaW5nbGl0IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9za2lwX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgMzc4XG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX3NraXBfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA4NDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDg0MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoICgpIClcblxuIyAyNjkyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjkzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA4NDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDg0MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHN0cmluZyBsaXRlcmFsXCIgdiBsZXhidWYgKVxuXG4jIDI2OTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2OTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDg0MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgODQzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjcwMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjcwMyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9za2lwX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9za2lwX3ZhcmlhbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX3NraXBfdmFyaWFudF9yZWMgdiBsZXhidWYgMzg5XG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX3NraXBfdmFyaWFudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgODQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA4NDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBza2lwX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgIHJlYWRfZ3QgdiBsZXhidWYgKVxuXG4jIDI3MTYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3MTcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDg0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgODQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggKCkgKVxuXG4jIDI3MjEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3MjIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDg1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgODUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc6JyBvciAnPicgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI3MjYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3MjcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDg1MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgODUxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjczMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjczMiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9za2lwX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBza2lwX2lkZW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3NraXBfaWRlbnRfcmVjIHYgbGV4YnVmIDM5NFxuYW5kIF9fb2NhbWxfbGV4X3NraXBfaWRlbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDg1NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDg1NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBmaW5pc2hfc2tpcF9zdHJpbmdsaXQgdiBsZXhidWYgKVxuXG4jIDI3NDMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3NDQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDg1NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDg1NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjc0OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjc0OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgODU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgODU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCBzdHJpbmcgb3IgaWRlbnRpZmllciBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjc1MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjc1NCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgODU3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgODU3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI3NTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3NTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9za2lwX2lkZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX2pzb24gdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX2pzb25fcmVjIHYgbGV4YnVmIDM5OVxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9qc29uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA4NzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA4NzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWYgKVxuXG4jIDI3NzAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3NzEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDg3MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDg3MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBmaW5pc2hfYnVmZmVyX3N0cmluZ2xpdCB2IGxleGJ1ZiApXG5cbiMgMjc3NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjc3NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgODczIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDg3MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggdHJ5XG4gICAgICAgICAgICAgICAgICAgICBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ3snO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX29iamVjdF9lbmQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfaWRlbnQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfY29sb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfb2JqZWN0X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfaWRlbnQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2NvbG9uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX29iamVjdCAtPlxuICAgICAgICAgICAgICAgICAgICAgKClcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDI4MDIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4MDMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDg5NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4OTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIHRyeVxuICAgICAgICAgICAgICAgICAgICAgQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdbJztcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9hcnJheV9lbmQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfYXJyYXlfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX2FycmF5IC0+XG4gICAgICAgICAgICAgICAgICAgICAoKVxuICAgICAgICAgICAgICAgICApXG5cbiMgMjgyMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjgyMiBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgOTEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDkxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgIFxuIyA5MTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnKCc7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3R1cGxlX2VuZCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3R1cGxlX3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2ZfdHVwbGUgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgKClcbiAgICAgICAgICAgICAgICAgXG4jIDkzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIClcblxuIyAyODQ1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODQ2IFwibGliL3JlYWQubWxcIlxuICB8IDUgLT5cblxuIyA5MzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgOTM0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgXG4jIDkzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJzwnO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2lkZW50IHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgZmluaXNoX2J1ZmZlcl92YXJpYW50IHYgbGV4YnVmXG4gICAgICAgICAgICAgICAgIFxuIyA5NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICApXG5cbiMgMjg2MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjg2MSBcImxpYi9yZWFkLm1sXCJcbiAgfCA2IC0+XG5cbiMgOTQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDk0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWY7IGJ1ZmZlcl9qc29uIHYgbGV4YnVmIClcblxuIyAyODY1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODY2IFwibGliL3JlYWQubWxcIlxuICB8IDcgLT5cblxuIyA5NDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgOTQ3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBCdWZmZXIuYWRkX3N0cmluZyB2LmJ1ZiBcIi8qXCI7XG4gICAgICAgICAgICAgICAgICAgZmluaXNoX2J1ZmZlcl9jb21tZW50IHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmIClcblxuIyAyODcyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODczIFwibGliL3JlYWQubWxcIlxuICB8IDggLT5cblxuIyA5NTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgOTUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1xcbic7XG4gICAgICAgICAgICAgICAgICAgbmV3bGluZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZiApXG5cbiMgMjg3OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjg4MCBcImxpYi9yZWFkLm1sXCJcbiAgfCA5IC0+XG5cbiMgOTUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDk1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWY7IGJ1ZmZlcl9qc29uIHYgbGV4YnVmIClcblxuIyAyODg0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODg1IFwibGliL3JlYWQubWxcIlxuICB8IDEwIC0+XG5cbiMgOTU0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDk1NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjg4OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjg5MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMSAtPlxuXG4jIDk1NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA5NTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHRva2VuXCIgdiBsZXhidWYgKVxuXG4jIDI4OTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4OTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfanNvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9idWZmZXJfc3RyaW5nbGl0IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiA0NTBcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgOTYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA5NjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1wiJztcbiAgICAgICAgICAgYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWZcbiAgICAgICAgIClcblxuIyAyOTA4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTA5IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA5NjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDk2NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHN0cmluZyBsaXRlcmFsXCIgdiBsZXhidWYgKVxuXG4jIDI5MTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5MTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDk2NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgOTY1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjkxOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjkxOSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX2J1ZmZlcl92YXJpYW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfdmFyaWFudF9yZWMgdiBsZXhidWYgNDYxXG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl92YXJpYW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA5NjggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDk2OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnOic7XG4gICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgIGJ1ZmZlcl9ndCB2IGxleGJ1ZiApXG5cbiMgMjkzMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjkzNCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgOTcyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA5NzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJz4nIClcblxuIyAyOTM4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTM5IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA5NzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDk3MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnOicgb3IgJz4nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyOTQzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTQ0IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA5NzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDk3NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI5NDggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5NDkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfaWRlbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX2lkZW50X3JlYyB2IGxleGJ1ZiA0NjZcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfaWRlbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDk3NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDk3NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBmaW5pc2hfYnVmZmVyX3N0cmluZ2xpdCB2IGxleGJ1ZiApXG5cbiMgMjk2MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjk2MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgOTc4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgOTc4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmIClcblxuIyAyOTY1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTY2IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA5NzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA5NzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkIHN0cmluZyBvciBpZGVudGlmaWVyIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyOTcwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTcxIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA5ODAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA5ODAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjk3NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjk3NiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9pZGVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfc3BhY2VfcmVjIHYgbGV4YnVmIDQ3MVxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9zcGFjZV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgOTgzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDk4MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZjtcbiAgICBuZXdsaW5lIHYgbGV4YnVmO1xuICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZiApXG5cbiMgMjk5MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjk5MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgOTg3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDk4NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICBCdWZmZXIuYWRkX3N0cmluZyB2LmJ1ZiBcIi8qXCI7XG4gICAgZmluaXNoX2J1ZmZlcl9jb21tZW50IHYgbGV4YnVmO1xuICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZiApXG5cbiMgMjk5OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjk5OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgOTkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDk5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1xcbic7XG4gICAgbmV3bGluZSB2IGxleGJ1ZjtcbiAgICBidWZmZXJfc3BhY2UgdiBsZXhidWYgKVxuXG4jIDMwMDYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwMDcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDk5NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA5OTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWY7XG4gICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmIClcblxuIyAzMDEzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDE0IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA5OTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgOTk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMzAxOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzAxOSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9zcGFjZV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9vYmplY3RfZW5kIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9vYmplY3RfZW5kX3JlYyB2IGxleGJ1ZiA0NzhcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfb2JqZWN0X2VuZF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTAwMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIChcbiAgICAgIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnfSc7XG4gICAgICByYWlzZSBFbmRfb2Zfb2JqZWN0IClcblxuIyAzMDMyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDMzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMzAzNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzAzOCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9vYmplY3RfZW5kX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX29iamVjdF9zZXAgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX29iamVjdF9zZXBfcmVjIHYgbGV4YnVmIDQ4MFxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9vYmplY3Rfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJywnIClcblxuIyAzMDQ5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDUwIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ30nOyByYWlzZSBFbmRfb2Zfb2JqZWN0IClcblxuIyAzMDU0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDU1IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAxMDA5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAwOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICd9JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMzA1OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzA2MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMTAxMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMzA2NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzA2NSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9vYmplY3Rfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX2FycmF5X2VuZCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfYXJyYXlfZW5kX3JlYyB2IGxleGJ1ZiA0ODVcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfYXJyYXlfZW5kX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ10nOyByYWlzZSBFbmRfb2ZfYXJyYXkgKVxuXG4jIDMwNzYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwNzcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwMTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDE0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAzMDgxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDgyIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX2FycmF5X2VuZF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9hcnJheV9zZXAgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX2FycmF5X3NlcF9yZWMgdiBsZXhidWYgNDg3XG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX2FycmF5X3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTAxNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICcsJyApXG5cbiMgMzA5MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzA5NCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTAxOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICddJzsgcmFpc2UgRW5kX29mX2FycmF5IClcblxuIyAzMDk4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDk5IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAxMDE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICddJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMzEwMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzEwNCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMTAyMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMzEwOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzEwOSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9hcnJheV9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfdHVwbGVfZW5kIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl90dXBsZV9lbmRfcmVjIHYgbGV4YnVmIDQ5MlxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl90dXBsZV9lbmRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwMjMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDIzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoXG4gICAgICBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJyknO1xuICAgICAgcmFpc2UgRW5kX29mX3R1cGxlIClcblxuIyAzMTIyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTIzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDI2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAyNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMzEyNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzEyOCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl90dXBsZV9lbmRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfdHVwbGVfc2VwIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl90dXBsZV9zZXBfcmVjIHYgbGV4YnVmIDQ5NFxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl90dXBsZV9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwMjkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDI5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnLCcgKVxuXG4jIDMxMzkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxNDAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwMzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnKSc7IHJhaXNlIEVuZF9vZl90dXBsZSApXG5cbiMgMzE0NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE0NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMTAzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnKScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDMxNDkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxNTAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDEwMzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDMxNTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxNTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfdHVwbGVfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX2NvbG9uIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9jb2xvbl9yZWMgdiBsZXhidWYgNDk5XG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX2NvbG9uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJzonIClcblxuIyAzMTY2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTY3IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJzonIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAzMTcxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTcyIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAxMDM3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAzNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAzMTc2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTc3IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX2NvbG9uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX2d0IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9ndF9yZWMgdiBsZXhidWYgNTAzXG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX2d0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDQwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAxMDQwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICc+JyApXG5cbiMgMzE4OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE4OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTA0MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMTA0MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnPicgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDMxOTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxOTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDEwNDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDEwNDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAzMTk4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTk5IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX2d0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX2J1ZmZlcl9jb21tZW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfY29tbWVudF9yZWMgdiBsZXhidWYgNTA3XG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl9jb21tZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDQ1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAxMDQ1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9zdHJpbmcgdi5idWYgXCIqL1wiIClcblxuIyAzMjEwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMjExIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAxMDQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIlVudGVybWluYXRlZCBjb21tZW50XCIgdiBsZXhidWYgKVxuXG4jIDMyMTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMyMTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDEwNDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDEwNDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1xcbic7XG4gICAgICAgICAgIG5ld2xpbmUgdiBsZXhidWY7XG4gICAgICAgICAgIGZpbmlzaF9idWZmZXJfY29tbWVudCB2IGxleGJ1ZiApXG5cbiMgMzIyMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzIyMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMTA1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMTA1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmOyBmaW5pc2hfYnVmZmVyX2NvbW1lbnQgdiBsZXhidWYgKVxuXG4jIDMyMjcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMyMjggXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX2NvbW1lbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBqdW5rIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9qdW5rX3JlYyBsZXhidWYgNTEzXG5hbmQgX19vY2FtbF9sZXhfanVua19yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwNTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIExleGluZy5sZXhlbWUgbGV4YnVmIClcblxuIyAzMjM5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMjQwIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfanVua19yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbjs7XG5cblxuIyAxMDU1IFwibGliL3JlYWQubWxsXCJcbiBcbiAgXG4jIDEwNTYgXCJsaWIvcmVhZC5tbGxcIlxuICBsZXQgXyA9IChyZWFkX2pzb24gOiBsZXhlcl9zdGF0ZSAtPiBMZXhpbmcubGV4YnVmIC0+IHQpXG5cbiAgbGV0IHJlYWRfdCA9IHJlYWRfanNvblxuXG4gIGxldCAoKSA9XG4gICAgcmVhZF9qdW5rIDo9IGp1bmtcblxuICBsZXQgcmVhZF9pbnQ4IHYgbGV4YnVmID1cbiAgICBsZXQgbiA9IHJlYWRfaW50IHYgbGV4YnVmIGluXG4gICAgaWYgbiA8IDAgfHwgbiA+IDI1NSB0aGVuXG4gICAgICBsZXhlcl9lcnJvciBcIkludDggb3ZlcmZsb3dcIiB2IGxleGJ1ZlxuICAgIGVsc2VcbiAgICAgIGNoYXJfb2ZfaW50IG5cblxuICBsZXQgcmVhZF9saXN0IHJlYWRfY2VsbCB2IGxleGJ1ZiA9XG4gICAgTGlzdC5yZXYgKHJlYWRfbGlzdF9yZXYgcmVhZF9jZWxsIHYgbGV4YnVmKVxuXG4gIGxldCBhcnJheV9vZl9yZXZfbGlzdCBsID1cbiAgICBtYXRjaCBsIHdpdGhcbiAgICAgICAgW10gLT4gW3wgfF1cbiAgICAgIHwgeCA6OiB0bCAtPlxuICAgICAgICAgIGxldCBsZW4gPSBMaXN0Lmxlbmd0aCBsIGluXG4gICAgICAgICAgbGV0IGEgPSBBcnJheS5tYWtlIGxlbiB4IGluXG4gICAgICAgICAgbGV0IHIgPSByZWYgdGwgaW5cbiAgICAgICAgICBmb3IgaSA9IGxlbiAtIDIgZG93bnRvIDAgZG9cbiAgICAgICAgICAgIGEuKGkpIDwtIExpc3QuaGQgIXI7XG4gICAgICAgICAgICByIDo9IExpc3QudGwgIXJcbiAgICAgICAgICBkb25lO1xuICAgICAgICAgIGFcblxuICBsZXQgcmVhZF9hcnJheSByZWFkX2NlbGwgdiBsZXhidWYgPVxuICAgIGxldCBsID0gcmVhZF9saXN0X3JldiByZWFkX2NlbGwgdiBsZXhidWYgaW5cbiAgICBhcnJheV9vZl9yZXZfbGlzdCBsXG5cbiAgKCogUmVhZCBhIEpTT04gb2JqZWN0LCByZWFkaW5nIHRoZSBrZXlzIGludG8gT0NhbWwgc3RyaW5nc1xuICAgICAocHJvdmlkZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkpICopXG4gIGxldCByZWFkX2ZpZWxkcyByZWFkX2ZpZWxkIGluaXRfYWNjIHYgPVxuICAgIHJlYWRfYWJzdHJhY3RfZmllbGRzIHJlYWRfaWRlbnQgcmVhZF9maWVsZCBpbml0X2FjYyB2XG5cbiAgbGV0IGZpbmlzaCB2IGxleGJ1ZiA9XG4gICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICBpZiBub3QgKHJlYWRfZW9mIGxleGJ1ZikgdGhlblxuICAgICAgbG9uZ19lcnJvciBcIkp1bmsgYWZ0ZXIgZW5kIG9mIEpTT04gdmFsdWU6XCIgdiBsZXhidWZcblxuICBsZXQgaW5pdF9sZXhlciA9IGluaXRfbGV4ZXJcblxuICBsZXQgZnJvbV9sZXhidWYgdiA/KHN0cmVhbSA9IGZhbHNlKSBsZXhidWYgPVxuICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG5cbiAgICBsZXQgeCA9XG4gICAgICBpZiByZWFkX2VvZiBsZXhidWYgdGhlblxuICAgICAgICByYWlzZSBFbmRfb2ZfaW5wdXRcbiAgICAgIGVsc2VcbiAgICAgICAgcmVhZF9qc29uIHYgbGV4YnVmXG4gICAgaW5cblxuICAgIGlmIG5vdCBzdHJlYW0gdGhlblxuICAgICAgZmluaXNoIHYgbGV4YnVmO1xuXG4gICAgeFxuXG5cbiAgbGV0IGZyb21fc3RyaW5nID9idWYgP2ZuYW1lID9sbnVtIHMgPVxuICAgIHRyeVxuICAgICAgbGV0IGxleGJ1ZiA9IExleGluZy5mcm9tX3N0cmluZyBzIGluXG4gICAgICBsZXQgdiA9IGluaXRfbGV4ZXIgP2J1ZiA/Zm5hbWUgP2xudW0gKCkgaW5cbiAgICAgIGZyb21fbGV4YnVmIHYgbGV4YnVmXG4gICAgd2l0aCBFbmRfb2ZfaW5wdXQgLT5cbiAgICAgIGpzb25fZXJyb3IgXCJCbGFuayBpbnB1dCBkYXRhXCJcblxuICBsZXQgZnJvbV9jaGFubmVsID9idWYgP2ZuYW1lID9sbnVtIGljID1cbiAgICB0cnlcbiAgICAgIGxldCBsZXhidWYgPSBMZXhpbmcuZnJvbV9jaGFubmVsIGljIGluXG4gICAgICBsZXQgdiA9IGluaXRfbGV4ZXIgP2J1ZiA/Zm5hbWUgP2xudW0gKCkgaW5cbiAgICAgIGZyb21fbGV4YnVmIHYgbGV4YnVmXG4gICAgd2l0aCBFbmRfb2ZfaW5wdXQgLT5cbiAgICAgIGpzb25fZXJyb3IgXCJCbGFuayBpbnB1dCBkYXRhXCJcblxuICBsZXQgZnJvbV9maWxlID9idWYgP2ZuYW1lID9sbnVtIGZpbGUgPVxuICAgIGxldCBpYyA9IG9wZW5faW4gZmlsZSBpblxuICAgIHRyeVxuICAgICAgbGV0IHggPSBmcm9tX2NoYW5uZWwgP2J1ZiA/Zm5hbWUgP2xudW0gaWMgaW5cbiAgICAgIGNsb3NlX2luIGljO1xuICAgICAgeFxuICAgIHdpdGggZSAtPlxuICAgICAgY2xvc2VfaW5fbm9lcnIgaWM7XG4gICAgICByYWlzZSBlXG5cbiAgZXhjZXB0aW9uIEZpbmFsbHkgb2YgZXhuICogZXhuXG5cbiAgbGV0IHNlcV9mcm9tX2xleGJ1ZiB2ID8oZmluID0gZnVuICgpIC0+ICgpKSBsZXhidWYgPVxuICAgIGxldCBzdHJlYW0gPSBTb21lIHRydWUgaW5cbiAgICBsZXQgcmVjIGYgKCkgPVxuICAgICAgdHJ5IFNlcS5Db25zIChmcm9tX2xleGJ1ZiB2ID9zdHJlYW0gbGV4YnVmLCBmKVxuICAgICAgd2l0aFxuICAgICAgICAgIEVuZF9vZl9pbnB1dCAtPlxuICAgICAgICAgICAgZmluICgpO1xuICAgICAgICAgICAgU2VxLk5pbFxuICAgICAgICB8IGUgLT5cbiAgICAgICAgICAgICh0cnkgZmluICgpIHdpdGggZmluX2UgLT4gcmFpc2UgKEZpbmFsbHkgKGUsIGZpbl9lKSkpO1xuICAgICAgICAgICAgcmFpc2UgZVxuICAgIGluXG4gICAgZlxuXG4gIGxldCBzZXFfZnJvbV9zdHJpbmcgP2J1ZiA/Zm5hbWUgP2xudW0gcyA9XG4gICAgbGV0IHYgPSBpbml0X2xleGVyID9idWYgP2ZuYW1lID9sbnVtICgpIGluXG4gICAgc2VxX2Zyb21fbGV4YnVmIHYgKExleGluZy5mcm9tX3N0cmluZyBzKVxuXG4gIGxldCBzZXFfZnJvbV9jaGFubmVsID9idWYgP2ZpbiA/Zm5hbWUgP2xudW0gaWMgPVxuICAgIGxldCBsZXhidWYgPSBMZXhpbmcuZnJvbV9jaGFubmVsIGljIGluXG4gICAgbGV0IHYgPSBpbml0X2xleGVyID9idWYgP2ZuYW1lID9sbnVtICgpIGluXG4gICAgc2VxX2Zyb21fbGV4YnVmIHYgP2ZpbiBsZXhidWZcblxuICBsZXQgc2VxX2Zyb21fZmlsZSA/YnVmID9mbmFtZSA/bG51bSBmaWxlID1cbiAgICBsZXQgaWMgPSBvcGVuX2luIGZpbGUgaW5cbiAgICBsZXQgZmluICgpID0gY2xvc2VfaW4gaWMgaW5cbiAgICBsZXQgZm5hbWUgPVxuICAgICAgbWF0Y2ggZm5hbWUgd2l0aFxuICAgICAgICAgIE5vbmUgLT4gU29tZSBmaWxlXG4gICAgICAgIHwgeCAtPiB4XG4gICAgaW5cbiAgICBsZXQgbGV4YnVmID0gTGV4aW5nLmZyb21fY2hhbm5lbCBpYyBpblxuICAgIGxldCB2ID0gaW5pdF9sZXhlciA/YnVmID9mbmFtZSA/bG51bSAoKSBpblxuICAgIHNlcV9mcm9tX2xleGJ1ZiB2IH5maW4gbGV4YnVmXG5cbiAgdHlwZSBqc29uX2xpbmUgPSBbIGBKc29uIG9mIHQgfCBgRXhuIG9mIGV4biBdXG5cbiAgbGV0IGxpbmVzZXFfZnJvbV9jaGFubmVsXG4gICAgICA/YnVmID8oZmluID0gZnVuICgpIC0+ICgpKSA/Zm5hbWUgP2xudW06KGxudW0wID0gMSkgaWMgPVxuICAgIGxldCBidWYgPVxuICAgICAgbWF0Y2ggYnVmIHdpdGhcbiAgICAgICAgICBOb25lIC0+IFNvbWUgKEJ1ZmZlci5jcmVhdGUgMjU2KVxuICAgICAgICB8IFNvbWUgXyAtPiBidWZcbiAgICBpblxuICAgIGxldCByZWMgZiBsbnVtID0gZnVuICgpIC0+XG4gICAgICB0cnlcbiAgICAgICAgbGV0IGxpbmUgPSBpbnB1dF9saW5lIGljIGluXG4gICAgICAgIFNlcS5Db25zIChgSnNvbiAoZnJvbV9zdHJpbmcgP2J1ZiA/Zm5hbWUgfmxudW0gbGluZSksIGYgKGxudW0gKyAxKSlcbiAgICAgIHdpdGhcbiAgICAgICAgICBFbmRfb2ZfZmlsZSAtPiBmaW4gKCk7IFNlcS5OaWxcbiAgICAgICAgfCBlIC0+IFNlcS5Db25zIChgRXhuIGUsIGYgKGxudW0gKyAxKSlcbiAgICBpblxuICAgIGYgbG51bTBcblxuICBsZXQgbGluZXNlcV9mcm9tX2ZpbGUgP2J1ZiA/Zm5hbWUgP2xudW0gZmlsZSA9XG4gICAgbGV0IGljID0gb3Blbl9pbiBmaWxlIGluXG4gICAgbGV0IGZpbiAoKSA9IGNsb3NlX2luIGljIGluXG4gICAgbGV0IGZuYW1lID1cbiAgICAgIG1hdGNoIGZuYW1lIHdpdGhcbiAgICAgICAgICBOb25lIC0+IFNvbWUgZmlsZVxuICAgICAgICB8IHggLT4geFxuICAgIGluXG4gICAgbGluZXNlcV9mcm9tX2NoYW5uZWwgP2J1ZiB+ZmluID9mbmFtZSA/bG51bSBpY1xuXG4gIGxldCBwcmV0dGlmeSA/c3RkIHMgPVxuICAgIHByZXR0eV90b19zdHJpbmcgP3N0ZCAoZnJvbV9zdHJpbmcgcylcblxuICBsZXQgY29tcGFjdCA/c3RkIHMgPVxuICAgIHRvX3N0cmluZyAoZnJvbV9zdHJpbmcgcylcblxuXG4jIDM0MDggXCJsaWIvcmVhZC5tbFwiXG4jIDEwMiBcInlvanNvbi5jcHBvLm1sXCJcbmVuZFxuIiwib3BlbiBTdGRMYWJlbHNcbm9wZW4gTW9yZUxhYmVsc1xub3BlbiEgWW9qc29uXG5cbnR5cGUgdCA9IFlvanNvbi5TYWZlLnRcblxubGV0IHlvanNvbl9vZl91bml0ICgpIDogdCA9IGBOdWxsXG5sZXQgeW9qc29uX29mX2Jvb2wgYiA6IHQgPSBgQm9vbCBiXG5sZXQgeW9qc29uX29mX3N0cmluZyBzdHIgOiB0ID0gYFN0cmluZyBzdHJcbmxldCB5b2pzb25fb2ZfYnl0ZXMgYnl0ZXMgOiB0ID0gYFN0cmluZyAoQnl0ZXMudG9fc3RyaW5nIGJ5dGVzKVxubGV0IHlvanNvbl9vZl9jaGFyIGMgOiB0ID0gYFN0cmluZyAoU3RyaW5nLm1ha2UgMSBjKVxubGV0IHlvanNvbl9vZl9pbnQgbiA6IHQgPSBgSW50IG5cbmxldCB5b2pzb25fb2ZfZmxvYXQgbiA6IHQgPSBgRmxvYXQgblxubGV0IHlvanNvbl9vZl9pbnQzMiAobiA6IEludDMyLnQpIDogdCA9IGBJbnRsaXQgKEludDMyLnRvX3N0cmluZyBuKVxubGV0IHlvanNvbl9vZl9pbnQ2NCAobiA6IEludDY0LnQpIDogdCA9IGBJbnRsaXQgKEludDY0LnRvX3N0cmluZyBuKVxubGV0IHlvanNvbl9vZl9uYXRpdmVpbnQgbiA6IHQgPSBgSW50bGl0IChOYXRpdmVpbnQudG9fc3RyaW5nIG4pXG5sZXQgeW9qc29uX29mX3JlZiB5b2pzb25fb2ZfX2EgcmYgPSB5b2pzb25fb2ZfX2EgIXJmXG5sZXQgeW9qc29uX29mX2xhenlfdCB5b2pzb25fb2ZfX2EgbHYgPSB5b2pzb25fb2ZfX2EgKExhenkuZm9yY2UgbHYpXG5cbmxldCB5b2pzb25fb2Zfb3B0aW9uIHlvanNvbl9vZl9fYSA9IGZ1bmN0aW9uXG4gIHwgU29tZSB4IC0+IHlvanNvbl9vZl9fYSB4XG4gIHwgTm9uZSAtPiBgTnVsbFxuOztcblxubGV0IHlvanNvbl9vZl9wYWlyIHlvanNvbl9vZl9fYSB5b2pzb25fb2ZfX2IgKGEsIGIpID1cbiAgYExpc3QgWyB5b2pzb25fb2ZfX2EgYTsgeW9qc29uX29mX19iIGIgXVxuOztcblxubGV0IHlvanNvbl9vZl90cmlwbGUgeW9qc29uX29mX19hIHlvanNvbl9vZl9fYiB5b2pzb25fb2ZfX2MgKGEsIGIsIGMpID1cbiAgYExpc3QgWyB5b2pzb25fb2ZfX2EgYTsgeW9qc29uX29mX19iIGI7IHlvanNvbl9vZl9fYyBjIF1cbjs7XG5cbigqIExpc3QucmV2IChMaXN0LnJldl9tYXAgLi4uKSBpcyB0YWlsIHJlY3Vyc2l2ZSwgdGhlIE9DYW1sIHN0YW5kYXJkXG4gICBsaWJyYXJ5IExpc3QubWFwIGlzIE5PVC4gKilcbmxldCB5b2pzb25fb2ZfbGlzdCB5b2pzb25fb2ZfX2EgbHN0ID0gYExpc3QgKExpc3QucmV2IChMaXN0LnJldl9tYXAgfmY6eW9qc29uX29mX19hIGxzdCkpXG5cbmxldCB5b2pzb25fb2ZfYXJyYXkgeW9qc29uX29mX19hIGFyID1cbiAgbGV0IGxzdF9yZWYgPSByZWYgW10gaW5cbiAgZm9yIGkgPSBBcnJheS5sZW5ndGggYXIgLSAxIGRvd250byAwIGRvXG4gICAgbHN0X3JlZiA6PSB5b2pzb25fb2ZfX2EgYXIuKGkpIDo6ICFsc3RfcmVmXG4gIGRvbmU7XG4gIGBMaXN0ICFsc3RfcmVmXG47O1xuXG5sZXQgeW9qc29uX29mX2hhc2h0YmwgeW9qc29uX29mX2tleSB5b2pzb25fb2ZfdmFsIGh0YmwgPVxuICBsZXQgY29sbCB+a2V5OmsgfmRhdGE6diBhY2MgPSBgTGlzdCBbIHlvanNvbl9vZl9rZXkgazsgeW9qc29uX29mX3ZhbCB2IF0gOjogYWNjIGluXG4gIGBMaXN0IChIYXNodGJsLmZvbGQgaHRibCB+aW5pdDpbXSB+Zjpjb2xsKVxuOztcblxubGV0IHlvanNvbl9vZl9vcGFxdWUgXyA9IGBTdHJpbmcgXCI8b3BhcXVlPlwiXG5sZXQgeW9qc29uX29mX2Z1biBfID0gYFN0cmluZyBcIjxmdW4+XCJcblxuZXhjZXB0aW9uIE9mX3lvanNvbl9lcnJvciBvZiBleG4gKiB0XG5cbmxldCByZWNvcmRfY2hlY2tfZXh0cmFfZmllbGRzID0gcmVmIHRydWVcbmxldCBvZl95b2pzb25fZXJyb3JfZXhuIGV4YyB5b2pzb24gPSByYWlzZSAoT2ZfeW9qc29uX2Vycm9yIChleGMsIHlvanNvbikpXG5sZXQgb2ZfeW9qc29uX2Vycm9yIHdoYXQgeW9qc29uID0gcmFpc2UgKE9mX3lvanNvbl9lcnJvciAoRmFpbHVyZSB3aGF0LCB5b2pzb24pKVxuXG5sZXQgdW5pdF9vZl95b2pzb24geW9qc29uID1cbiAgbWF0Y2ggeW9qc29uIHdpdGhcbiAgfCBgTnVsbCAtPiAoKVxuICB8IF8gLT4gb2ZfeW9qc29uX2Vycm9yIFwidW5pdF9vZl95b2pzb246IGBOdWxsIG5lZWRlZFwiIHlvanNvblxuOztcblxubGV0IGJvb2xfb2ZfeW9qc29uIHlvanNvbiA9XG4gIG1hdGNoIHlvanNvbiB3aXRoXG4gIHwgYEJvb2wgdiAtPiB2XG4gIHwgXyAtPiBvZl95b2pzb25fZXJyb3IgXCJib29sX29mX3lvanNvbjogdHJ1ZS9mYWxzZSBuZWVkZWRcIiB5b2pzb25cbjs7XG5cbmxldCBzdHJpbmdfb2ZfeW9qc29uIHlvanNvbiA9XG4gIG1hdGNoIHlvanNvbiB3aXRoXG4gIHwgYFN0cmluZyBzdHIgLT4gc3RyXG4gIHwgXyAtPiBvZl95b2pzb25fZXJyb3IgXCJzdHJpbmdfb2ZfeW9qc29uOiBzdHJpbmcgbmVlZGVkXCIgeW9qc29uXG47O1xuXG5sZXQgYnl0ZXNfb2ZfeW9qc29uIHlvanNvbiA9XG4gIG1hdGNoIHlvanNvbiB3aXRoXG4gIHwgYFN0cmluZyBzdHIgLT4gQnl0ZXMub2Zfc3RyaW5nIHN0clxuICB8IF8gLT4gb2ZfeW9qc29uX2Vycm9yIFwiYnl0ZXNfb2ZfeW9qc29uOiBzdHJpbmcgbmVlZGVkXCIgeW9qc29uXG47O1xuXG5sZXQgY2hhcl9vZl95b2pzb24geW9qc29uID1cbiAgbWF0Y2ggeW9qc29uIHdpdGhcbiAgfCBgU3RyaW5nIHN0ciAtPlxuICAgIGlmIFN0cmluZy5sZW5ndGggc3RyIDw+IDFcbiAgICB0aGVuIG9mX3lvanNvbl9lcnJvciBcImNoYXJfb2ZfeW9qc29uOiBzdHJpbmcgbXVzdCBjb250YWluIG9uZSBjaGFyYWN0ZXIgb25seVwiIHlvanNvbjtcbiAgICBzdHIuWzBdXG4gIHwgXyAtPiBvZl95b2pzb25fZXJyb3IgXCJjaGFyX29mX3lvanNvbjogc3RyaW5nIG9mIHNpemUgb25lIG5lZWRlZFwiIHlvanNvblxuOztcblxubGV0IGludF9vZl95b2pzb24geW9qc29uID1cbiAgbWF0Y2ggeW9qc29uIHdpdGhcbiAgfCBgSW50IHYgLT4gdlxuICB8IF8gLT4gb2ZfeW9qc29uX2Vycm9yIFwiaW50X29mX3lvanNvbjogaW50ZWdlciBuZWVkZWRcIiB5b2pzb25cbjs7XG5cbmxldCBmbG9hdF9vZl95b2pzb24geW9qc29uID1cbiAgbWF0Y2ggeW9qc29uIHdpdGhcbiAgfCBgRmxvYXQgdiAtPiB2XG4gIHwgYEludCBpIC0+IGZsb2F0X29mX2ludCBpXG4gIHwgYEludGxpdCBzdHIgLT4gZmxvYXRfb2Zfc3RyaW5nIHN0clxuICB8IF8gLT4gb2ZfeW9qc29uX2Vycm9yIFwiZmxvYXRfb2ZfeW9qc29uOiBmbG9hdCBuZWVkZWRcIiB5b2pzb25cbjs7XG5cbmxldCBpbnQzMl9vZl95b2pzb24geW9qc29uID1cbiAgbWF0Y2ggeW9qc29uIHdpdGhcbiAgfCBgSW50bGl0IHN0ciAtPiBJbnQzMi5vZl9zdHJpbmcgc3RyXG4gIHwgYEludCB2IC0+IEludDMyLm9mX2ludCB2XG4gIHwgXyAtPiBvZl95b2pzb25fZXJyb3IgXCJpbnQzMl9vZl95b2pzb246IGludGVnZXIgbmVlZGVkXCIgeW9qc29uXG47O1xuXG5sZXQgaW50NjRfb2ZfeW9qc29uIHlvanNvbiA9XG4gIG1hdGNoIHlvanNvbiB3aXRoXG4gIHwgYEludGxpdCBzdHIgLT4gSW50NjQub2Zfc3RyaW5nIHN0clxuICB8IGBJbnQgdiAtPiBJbnQ2NC5vZl9pbnQgdlxuICB8IF8gLT4gb2ZfeW9qc29uX2Vycm9yIFwiaW50NjRfb2ZfeW9qc29uOiBpbnRlZ2VyIG5lZWRlZFwiIHlvanNvblxuOztcblxubGV0IG5hdGl2ZWludF9vZl95b2pzb24geW9qc29uID1cbiAgbWF0Y2ggeW9qc29uIHdpdGhcbiAgfCBgSW50bGl0IHN0ciAtPiBOYXRpdmVpbnQub2Zfc3RyaW5nIHN0clxuICB8IGBJbnQgdiAtPiBOYXRpdmVpbnQub2ZfaW50IHZcbiAgfCBfIC0+IG9mX3lvanNvbl9lcnJvciBcIm5hdGl2ZWludF9vZl95b2pzb246IGludGVnZXIgbmVlZGVkXCIgeW9qc29uXG47O1xuXG5sZXQgcmVmX29mX3lvanNvbiBhX19vZl95b2pzb24geW9qc29uID0gcmVmIChhX19vZl95b2pzb24geW9qc29uKVxubGV0IGxhenlfdF9vZl95b2pzb24gYV9fb2ZfeW9qc29uIHlvanNvbiA9IExhenkuZnJvbV92YWwgKGFfX29mX3lvanNvbiB5b2pzb24pXG5cbmxldCBvcHRpb25fb2ZfeW9qc29uIGFfX29mX3lvanNvbiB5b2pzb24gPVxuICBtYXRjaCB5b2pzb24gd2l0aFxuICB8IGBOdWxsIC0+IE5vbmVcbiAgfCBlbCAtPiBTb21lIChhX19vZl95b2pzb24gZWwpXG47O1xuXG5sZXQgcGFpcl9vZl95b2pzb24gYV9fb2ZfeW9qc29uIGJfX29mX3lvanNvbiB5b2pzb24gPVxuICBtYXRjaCB5b2pzb24gd2l0aFxuICB8IGBMaXN0IFsgYV95b2pzb247IGJfeW9qc29uIF0gLT5cbiAgICBsZXQgYSA9IGFfX29mX3lvanNvbiBhX3lvanNvbiBpblxuICAgIGxldCBiID0gYl9fb2ZfeW9qc29uIGJfeW9qc29uIGluXG4gICAgYSwgYlxuICB8IF8gLT4gb2ZfeW9qc29uX2Vycm9yIFwicGFpcl9vZl95b2pzb246IGludmFsaWQgZm9ybWF0XCIgeW9qc29uXG47O1xuXG5sZXQgdHJpcGxlX29mX3lvanNvbiBhX19vZl95b2pzb24gYl9fb2ZfeW9qc29uIGNfX29mX3lvanNvbiB5b2pzb24gPVxuICBtYXRjaCB5b2pzb24gd2l0aFxuICB8IGBMaXN0IFsgYV95b2pzb247IGJfeW9qc29uOyBjX3lvanNvbiBdIC0+XG4gICAgbGV0IGEgPSBhX19vZl95b2pzb24gYV95b2pzb24gaW5cbiAgICBsZXQgYiA9IGJfX29mX3lvanNvbiBiX3lvanNvbiBpblxuICAgIGxldCBjID0gY19fb2ZfeW9qc29uIGNfeW9qc29uIGluXG4gICAgYSwgYiwgY1xuICB8IF8gLT4gb2ZfeW9qc29uX2Vycm9yIFwidHJpcGxlX29mX3lvanNvbjogaW52YWxpZCBmb3JtYXRcIiB5b2pzb25cbjs7XG5cbmxldCBsaXN0X29mX3lvanNvbiBhX19vZl95b2pzb24geW9qc29uID1cbiAgbWF0Y2ggeW9qc29uIHdpdGhcbiAgfCBgTGlzdCBsc3QgLT5cbiAgICBsZXQgcmV2X2xzdCA9IExpc3QucmV2X21hcCBsc3QgfmY6YV9fb2ZfeW9qc29uIGluXG4gICAgTGlzdC5yZXYgcmV2X2xzdFxuICB8IF8gLT4gb2ZfeW9qc29uX2Vycm9yIFwibGlzdF9vZl95b2pzb246IGxpc3QgbmVlZGVkXCIgeW9qc29uXG47O1xuXG5sZXQgYXJyYXlfb2ZfeW9qc29uIGFfX29mX3lvanNvbiB5b2pzb24gPVxuICBtYXRjaCB5b2pzb24gd2l0aFxuICB8IGBMaXN0IFtdIC0+IFt8fF1cbiAgfCBgTGlzdCAoaCA6OiB0KSAtPlxuICAgIGxldCBsZW4gPSBMaXN0Lmxlbmd0aCB0ICsgMSBpblxuICAgIGxldCByZXMgPSBBcnJheS5tYWtlIGxlbiAoYV9fb2ZfeW9qc29uIGgpIGluXG4gICAgbGV0IHJlYyBsb29wIGkgPSBmdW5jdGlvblxuICAgICAgfCBbXSAtPiByZXNcbiAgICAgIHwgaCA6OiB0IC0+XG4gICAgICAgIHJlcy4oaSkgPC0gYV9fb2ZfeW9qc29uIGg7XG4gICAgICAgIGxvb3AgKGkgKyAxKSB0XG4gICAgaW5cbiAgICBsb29wIDEgdFxuICB8IF8gLT4gb2ZfeW9qc29uX2Vycm9yIFwiYXJyYXlfb2ZfeW9qc29uOiBsaXN0IG5lZWRlZFwiIHlvanNvblxuOztcblxubGV0IGhhc2h0Ymxfb2ZfeW9qc29uIGtleV9vZl95b2pzb24gdmFsX29mX3lvanNvbiB5b2pzb24gPVxuICBtYXRjaCB5b2pzb24gd2l0aFxuICB8IGBMaXN0IGxzdCAtPlxuICAgIGxldCBodGJsID0gSGFzaHRibC5jcmVhdGUgMCBpblxuICAgIGxldCBhY3QgPSBmdW5jdGlvblxuICAgICAgfCBgTGlzdCBbIGtfeW9qc29uOyB2X3lvanNvbiBdIC0+XG4gICAgICAgIEhhc2h0YmwuYWRkIGh0YmwgfmtleTooa2V5X29mX3lvanNvbiBrX3lvanNvbikgfmRhdGE6KHZhbF9vZl95b2pzb24gdl95b2pzb24pXG4gICAgICB8IF8gLT4gb2ZfeW9qc29uX2Vycm9yIFwiaGFzaHRibF9vZl95b2pzb246IHR1cGxlIGxpc3QgbmVlZGVkXCIgeW9qc29uXG4gICAgaW5cbiAgICBMaXN0Lml0ZXIgbHN0IH5mOmFjdDtcbiAgICBodGJsXG4gIHwgXyAtPiBvZl95b2pzb25fZXJyb3IgXCJoYXNodGJsX29mX3lvanNvbjogbGlzdCBuZWVkZWRcIiB5b2pzb25cbjs7XG5cbmxldCBvcGFxdWVfb2ZfeW9qc29uIHlvanNvbiA9XG4gIG9mX3lvanNvbl9lcnJvciBcIm9wYXF1ZV9vZl95b2pzb246IGNhbm5vdCBjb252ZXJ0IG9wYXF1ZSB2YWx1ZXNcIiB5b2pzb25cbjs7XG5cbmxldCBmdW5fb2ZfeW9qc29uIHlvanNvbiA9XG4gIG9mX3lvanNvbl9lcnJvciBcImZ1bl9vZl95b2pzb246IGNhbm5vdCBjb252ZXJ0IGZ1bmN0aW9uIHZhbHVlc1wiIHlvanNvblxuOztcblxubW9kdWxlIFByaW1pdGl2ZXMgPSBzdHJ1Y3RcbiAgbGV0IHlvanNvbl9vZl9hcnJheSA9IHlvanNvbl9vZl9hcnJheVxuICBsZXQgYXJyYXlfb2ZfeW9qc29uID0gYXJyYXlfb2ZfeW9qc29uXG4gIGxldCB5b2pzb25fb2ZfYm9vbCA9IHlvanNvbl9vZl9ib29sXG4gIGxldCBib29sX29mX3lvanNvbiA9IGJvb2xfb2ZfeW9qc29uXG4gIGxldCB5b2pzb25fb2ZfY2hhciA9IHlvanNvbl9vZl9jaGFyXG4gIGxldCBjaGFyX29mX3lvanNvbiA9IGNoYXJfb2ZfeW9qc29uXG4gIGxldCB5b2pzb25fb2ZfZmxvYXQgPSB5b2pzb25fb2ZfZmxvYXRcbiAgbGV0IGZsb2F0X29mX3lvanNvbiA9IGZsb2F0X29mX3lvanNvblxuICBsZXQgeW9qc29uX29mX2ludCA9IHlvanNvbl9vZl9pbnRcbiAgbGV0IGludF9vZl95b2pzb24gPSBpbnRfb2ZfeW9qc29uXG4gIGxldCB5b2pzb25fb2ZfaW50MzIgPSB5b2pzb25fb2ZfaW50MzJcbiAgbGV0IGludDMyX29mX3lvanNvbiA9IGludDMyX29mX3lvanNvblxuICBsZXQgeW9qc29uX29mX2ludDY0ID0geW9qc29uX29mX2ludDY0XG4gIGxldCBpbnQ2NF9vZl95b2pzb24gPSBpbnQ2NF9vZl95b2pzb25cbiAgbGV0IHlvanNvbl9vZl9saXN0ID0geW9qc29uX29mX2xpc3RcbiAgbGV0IGxpc3Rfb2ZfeW9qc29uID0gbGlzdF9vZl95b2pzb25cbiAgbGV0IHlvanNvbl9vZl9uYXRpdmVpbnQgPSB5b2pzb25fb2ZfbmF0aXZlaW50XG4gIGxldCBuYXRpdmVpbnRfb2ZfeW9qc29uID0gbmF0aXZlaW50X29mX3lvanNvblxuICBsZXQgeW9qc29uX29mX29wdGlvbiA9IHlvanNvbl9vZl9vcHRpb25cbiAgbGV0IG9wdGlvbl9vZl95b2pzb24gPSBvcHRpb25fb2ZfeW9qc29uXG4gIGxldCB5b2pzb25fb2ZfcmVmID0geW9qc29uX29mX3JlZlxuICBsZXQgcmVmX29mX3lvanNvbiA9IHJlZl9vZl95b2pzb25cbiAgbGV0IHlvanNvbl9vZl9zdHJpbmcgPSB5b2pzb25fb2Zfc3RyaW5nXG4gIGxldCBzdHJpbmdfb2ZfeW9qc29uID0gc3RyaW5nX29mX3lvanNvblxuICBsZXQgeW9qc29uX29mX2J5dGVzID0geW9qc29uX29mX2J5dGVzXG4gIGxldCBieXRlc19vZl95b2pzb24gPSBieXRlc19vZl95b2pzb25cbiAgbGV0IHlvanNvbl9vZl91bml0ID0geW9qc29uX29mX3VuaXRcbiAgbGV0IHVuaXRfb2ZfeW9qc29uID0gdW5pdF9vZl95b2pzb25cbiAgbGV0IHlvanNvbl9vZl9sYXp5X3QgPSB5b2pzb25fb2ZfbGF6eV90XG4gIGxldCBsYXp5X3Rfb2ZfeW9qc29uID0gbGF6eV90X29mX3lvanNvblxuICBsZXQgeW9qc29uX29mX2hhc2h0YmwgPSB5b2pzb25fb2ZfaGFzaHRibFxuICBsZXQgaGFzaHRibF9vZl95b2pzb24gPSBoYXNodGJsX29mX3lvanNvblxuZW5kXG4iLCIoKiBDb252X2Vycm9yOiBNb2R1bGUgZm9yIEhhbmRsaW5nIEVycm9ycyBkdXJpbmcgQXV0b21hdGVkIFlvanNvblxuICAgQ29udmVyc2lvbnMgKilcblxub3BlbiEgU3RkTGFiZWxzXG5vcGVuIFlvanNvbl9jb252XG5cbmxldCBzcHJpbnRmID0gUHJpbnRmLnNwcmludGZcblxuKCogRXJyb3JzIGNvbmNlcm5pbmcgdHVwbGVzICopXG5cbmxldCB0dXBsZV9vZl9zaXplX25fZXhwZWN0ZWQgbG9jIG4geW9qc29uID1cbiAgb2ZfeW9qc29uX2Vycm9yIChzcHJpbnRmIFwiJXNfb2ZfeW9qc29uOiB0dXBsZSBvZiBzaXplICVkIGV4cGVjdGVkXCIgbG9jIG4pIHlvanNvblxuOztcblxuKCogRXJyb3JzIGNvbmNlcm5pbmcgc3VtIHR5cGVzICopXG5cbmxldCBzdGFnX25vX2FyZ3MgbG9jIHlvanNvbiA9XG4gIG9mX3lvanNvbl9lcnJvciAobG9jIF4gXCJfb2ZfeW9qc29uOiB0aGlzIGNvbnN0cnVjdG9yIGRvZXMgbm90IHRha2UgYXJndW1lbnRzXCIpIHlvanNvblxuOztcblxubGV0IHN0YWdfaW5jb3JyZWN0X25fYXJncyBsb2MgdGFnIHlvanNvbiA9XG4gIGxldCBtc2cgPVxuICAgIHNwcmludGYgXCIlc19vZl95b2pzb246IHN1bSB0YWcgJVMgaGFzIGluY29ycmVjdCBudW1iZXIgb2YgYXJndW1lbnRzXCIgbG9jIHRhZ1xuICBpblxuICBvZl95b2pzb25fZXJyb3IgbXNnIHlvanNvblxuOztcblxubGV0IHN0YWdfdGFrZXNfYXJncyBsb2MgeW9qc29uID1cbiAgb2ZfeW9qc29uX2Vycm9yIChsb2MgXiBcIl9vZl95b2pzb246IHRoaXMgY29uc3RydWN0b3IgcmVxdWlyZXMgYXJndW1lbnRzXCIpIHlvanNvblxuOztcblxubGV0IG5lc3RlZF9saXN0X2ludmFsaWRfc3VtIGxvYyB5b2pzb24gPVxuICBvZl95b2pzb25fZXJyb3IgKGxvYyBeIFwiX29mX3lvanNvbjogZXhwZWN0ZWQgYSB2YXJpYW50IHR5cGUsIHNhdyBhIG5lc3RlZCBsaXN0XCIpIHlvanNvblxuOztcblxubGV0IGVtcHR5X2xpc3RfaW52YWxpZF9zdW0gbG9jIHlvanNvbiA9XG4gIG9mX3lvanNvbl9lcnJvciAobG9jIF4gXCJfb2ZfeW9qc29uOiBleHBlY3RlZCBhIHZhcmlhbnQgdHlwZSwgc2F3IGFuIGVtcHR5IGxpc3RcIikgeW9qc29uXG47O1xuXG5sZXQgdW5leHBlY3RlZF9zdGFnIGxvYyB5b2pzb24gPVxuICBvZl95b2pzb25fZXJyb3IgKGxvYyBeIFwiX29mX3lvanNvbjogdW5leHBlY3RlZCB2YXJpYW50IGNvbnN0cnVjdG9yXCIpIHlvanNvblxuOztcblxuKCogRXJyb3JzIGNvbmNlcm5pbmcgcmVjb3JkcyAqKVxuXG5sZXQgcmVjb3JkX3N1cGVyZmx1b3VzX2ZpZWxkcyB+d2hhdCB+bG9jIHJldl9mbGRfbmFtZXMgeW9qc29uID1cbiAgbGV0IGZsZF9uYW1lc19zdHIgPSBTdHJpbmcuY29uY2F0IChMaXN0LnJldiByZXZfZmxkX25hbWVzKSB+c2VwOlwiIFwiIGluXG4gIGxldCBtc2cgPSBzcHJpbnRmIFwiJXNfb2ZfeW9qc29uOiAlczogJXNcIiBsb2Mgd2hhdCBmbGRfbmFtZXNfc3RyIGluXG4gIG9mX3lvanNvbl9lcnJvciBtc2cgeW9qc29uXG47O1xuXG5sZXQgcmVjb3JkX2R1cGxpY2F0ZV9maWVsZHMgbG9jIHJldl9mbGRfbmFtZXMgeW9qc29uID1cbiAgcmVjb3JkX3N1cGVyZmx1b3VzX2ZpZWxkcyB+d2hhdDpcImR1cGxpY2F0ZSBmaWVsZHNcIiB+bG9jIHJldl9mbGRfbmFtZXMgeW9qc29uXG47O1xuXG5sZXQgcmVjb3JkX2V4dHJhX2ZpZWxkcyBsb2MgcmV2X2ZsZF9uYW1lcyB5b2pzb24gPVxuICByZWNvcmRfc3VwZXJmbHVvdXNfZmllbGRzIH53aGF0OlwiZXh0cmEgZmllbGRzXCIgfmxvYyByZXZfZmxkX25hbWVzIHlvanNvblxuOztcblxubGV0IHJlYyByZWNvcmRfZ2V0X3VuZGVmaW5lZF9sb29wIGZpZWxkcyA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gU3RyaW5nLmNvbmNhdCAoTGlzdC5yZXYgZmllbGRzKSB+c2VwOlwiIFwiXG4gIHwgKHRydWUsIGZpZWxkKSA6OiByZXN0IC0+IHJlY29yZF9nZXRfdW5kZWZpbmVkX2xvb3AgKGZpZWxkIDo6IGZpZWxkcykgcmVzdFxuICB8IF8gOjogcmVzdCAtPiByZWNvcmRfZ2V0X3VuZGVmaW5lZF9sb29wIGZpZWxkcyByZXN0XG47O1xuXG5sZXQgcmVjb3JkX3VuZGVmaW5lZF9lbGVtZW50cyBsb2MgeW9qc29uIGxzdCA9XG4gIGxldCB1bmRlZmluZWQgPSByZWNvcmRfZ2V0X3VuZGVmaW5lZF9sb29wIFtdIGxzdCBpblxuICBsZXQgbXNnID1cbiAgICBzcHJpbnRmIFwiJXNfb2ZfeW9qc29uOiB0aGUgZm9sbG93aW5nIHJlY29yZCBlbGVtZW50cyB3ZXJlIHVuZGVmaW5lZDogJXNcIiBsb2MgdW5kZWZpbmVkXG4gIGluXG4gIG9mX3lvanNvbl9lcnJvciBtc2cgeW9qc29uXG47O1xuXG5sZXQgcmVjb3JkX2xpc3RfaW5zdGVhZF9hdG9tIGxvYyB5b2pzb24gPVxuICBsZXQgbXNnID0gbG9jIF4gXCJfb2ZfeW9qc29uOiBsaXN0IGluc3RlYWQgb2YgYXRvbSBmb3IgcmVjb3JkIGV4cGVjdGVkXCIgaW5cbiAgb2ZfeW9qc29uX2Vycm9yIG1zZyB5b2pzb25cbjs7XG5cbmxldCByZWNvcmRfcG9seV9maWVsZF92YWx1ZSBsb2MgeW9qc29uID1cbiAgbGV0IG1zZyA9XG4gICAgbG9jXG4gICAgXiBcIl9vZl95b2pzb246IGNhbm5vdCBjb252ZXJ0IHZhbHVlcyBvZiB0eXBlcyByZXN1bHRpbmcgZnJvbSBwb2x5bW9ycGhpYyByZWNvcmQgXFxcbiAgICAgICBmaWVsZHNcIlxuICBpblxuICBvZl95b2pzb25fZXJyb3IgbXNnIHlvanNvblxuOztcblxuKCogRXJyb3JzIGNvbmNlcm5pbmcgcG9seW1vcnBoaWMgdmFyaWFudHMgKilcblxuZXhjZXB0aW9uIE5vX3ZhcmlhbnRfbWF0Y2hcblxubGV0IG5vX3ZhcmlhbnRfbWF0Y2ggKCkgPSByYWlzZSBOb192YXJpYW50X21hdGNoXG5cbmxldCBub19tYXRjaGluZ192YXJpYW50X2ZvdW5kIGxvYyB5b2pzb24gPVxuICBvZl95b2pzb25fZXJyb3IgKGxvYyBeIFwiX29mX3lvanNvbjogbm8gbWF0Y2hpbmcgdmFyaWFudCBmb3VuZFwiKSB5b2pzb25cbjs7XG5cbmxldCBwdGFnX25vX2FyZ3MgbG9jIHlvanNvbiA9XG4gIG9mX3lvanNvbl9lcnJvciAobG9jIF4gXCJfb2ZfeW9qc29uOiBwb2x5bW9ycGhpYyB2YXJpYW50IGRvZXMgbm90IHRha2UgYXJndW1lbnRzXCIpIHlvanNvblxuOztcblxubGV0IHB0YWdfaW5jb3JyZWN0X25fYXJncyBsb2MgY25zdHIgeW9qc29uID1cbiAgbGV0IG1zZyA9XG4gICAgc3ByaW50ZlxuICAgICAgXCIlc19vZl95b2pzb246IHBvbHltb3JwaGljIHZhcmlhbnQgdGFnICVTIGhhcyBpbmNvcnJlY3QgbnVtYmVyIG9mIGFyZ3VtZW50c1wiXG4gICAgICBsb2NcbiAgICAgIGNuc3RyXG4gIGluXG4gIG9mX3lvanNvbl9lcnJvciBtc2cgeW9qc29uXG47O1xuXG5sZXQgcHRhZ190YWtlc19hcmdzIGxvYyB5b2pzb24gPVxuICBvZl95b2pzb25fZXJyb3IgKGxvYyBeIFwiX29mX3lvanNvbjogcG9seW1vcnBoaWMgdmFyaWFudCB0YWcgdGFrZXMgYW4gYXJndW1lbnRcIikgeW9qc29uXG47O1xuXG5sZXQgbmVzdGVkX2xpc3RfaW52YWxpZF9wb2x5X3ZhciBsb2MgeW9qc29uID1cbiAgb2ZfeW9qc29uX2Vycm9yXG4gICAgKGxvYyBeIFwiX29mX3lvanNvbjogYSBuZXN0ZWQgbGlzdCBpcyBhbiBpbnZhbGlkIHBvbHltb3JwaGljIHZhcmlhbnRcIilcbiAgICB5b2pzb25cbjs7XG5cbmxldCBlbXB0eV9saXN0X2ludmFsaWRfcG9seV92YXIgbG9jIHlvanNvbiA9XG4gIG9mX3lvanNvbl9lcnJvclxuICAgIChsb2MgXiBcIl9vZl95b2pzb246IHRoZSBlbXB0eSBsaXN0IGlzIGFuIGludmFsaWQgcG9seW1vcnBoaWMgdmFyaWFudFwiKVxuICAgIHlvanNvblxuOztcblxubGV0IGVtcHR5X3R5cGUgbG9jIHlvanNvbiA9XG4gIG9mX3lvanNvbl9lcnJvciAobG9jIF4gXCJfb2ZfeW9qc29uOiB0cnlpbmcgdG8gY29udmVydCBhbiBlbXB0eSB0eXBlXCIpIHlvanNvblxuOztcbiIsIm1vZHVsZSBZb2pzb25fY29udl9lcnJvciA9IFlvanNvbl9jb252X2Vycm9yXG5tb2R1bGUgWW9qc29uX2NvbnYgPSBZb2pzb25fY29udlxubW9kdWxlIFlvanNvbmFibGUgPSBZb2pzb25hYmxlX2ludGZcbm1vZHVsZSBZb2pzb24gPSBZb2pzb25cblxubW9kdWxlIE9wdGlvbiA9IHN0cnVjdFxuICB0eXBlICdhIHQgPSAnYSBvcHRpb24gPVxuICAgIHwgTm9uZVxuICAgIHwgU29tZSBvZiAnYVxuZW5kXG5cbmV4dGVybmFsIGlnbm9yZSA6IF8gLT4gdW5pdCA9IFwiJWlnbm9yZVwiXG5leHRlcm5hbCBwb2x5X2VxdWFsIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWVxdWFsXCJcblxubGV0ICggISApIDogJ2EgcmVmIC0+ICdhID0gZnVuIHggLT4gIXhcbiIsIigqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDYXRhbGEgY29tcGlsZXIsIGEgc3BlY2lmaWNhdGlvbiBsYW5ndWFnZSBmb3IgdGF4XG4gICBhbmQgc29jaWFsIGJlbmVmaXRzIGNvbXB1dGF0aW9uIHJ1bGVzLiBDb3B5cmlnaHQgKEMpIDIwMjAgSW5yaWEsIGNvbnRyaWJ1dG9yOlxuICAgRGVuaXMgTWVyaWdvdXggPGRlbmlzLm1lcmlnb3V4QGlucmlhLmZyPiwgRW1pbGUgUm9sbGV5IDxlbWlsZS5yb2xsZXlAdHV0YS5pbz5cblxuICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3RcbiAgIHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mXG4gICB0aGUgTGljZW5zZSBhdFxuXG4gICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUXG4gICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGVcbiAgIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyXG4gICB0aGUgTGljZW5zZS4gKilcblxuKCogQW4gaW50ZWdlciBudW1iZXIgb2YgY2VudHMgKilcbnR5cGUgbW9uZXkgPSBaLnRcbnR5cGUgaW50ZWdlciA9IFoudFxudHlwZSBkZWNpbWFsID0gUS50XG50eXBlIGRhdGUgPSBEYXRlc19jYWxjLkRhdGVzLmRhdGVcbnR5cGUgZGF0ZV9yb3VuZGluZyA9IERhdGVzX2NhbGMuRGF0ZXMuZGF0ZV9yb3VuZGluZ1xudHlwZSBkdXJhdGlvbiA9IERhdGVzX2NhbGMuRGF0ZXMucGVyaW9kXG50eXBlICdhIGVvcHRpb24gPSBFTm9uZSBvZiB1bml0IHwgRVNvbWUgb2YgJ2FcblxudHlwZSBzb3VyY2VfcG9zaXRpb24gPSB7XG4gIGZpbGVuYW1lIDogc3RyaW5nO1xuICBzdGFydF9saW5lIDogaW50O1xuICBzdGFydF9jb2x1bW4gOiBpbnQ7XG4gIGVuZF9saW5lIDogaW50O1xuICBlbmRfY29sdW1uIDogaW50O1xuICBsYXdfaGVhZGluZ3MgOiBzdHJpbmcgbGlzdDtcbn1cbltAQGRlcml2aW5nIHlvanNvbl9vZl1cblxuZXhjZXB0aW9uIEVtcHR5RXJyb3JcbmV4Y2VwdGlvbiBBc3NlcnRpb25GYWlsZWQgb2Ygc291cmNlX3Bvc2l0aW9uXG5leGNlcHRpb24gQ29uZmxpY3RFcnJvciBvZiBzb3VyY2VfcG9zaXRpb25cbmV4Y2VwdGlvbiBVbmNvbXBhcmFibGVEdXJhdGlvbnNcbmV4Y2VwdGlvbiBJbmRpdmlzaWJsZUR1cmF0aW9uc1xuZXhjZXB0aW9uIEltcG9zc2libGVEYXRlXG5leGNlcHRpb24gTm9WYWx1ZVByb3ZpZGVkIG9mIHNvdXJjZV9wb3NpdGlvblxuXG5sZXQgbW9uZXlfb2ZfY2VudHNfc3RyaW5nIChjZW50cyA6IHN0cmluZykgOiBtb25leSA9IFoub2Zfc3RyaW5nIGNlbnRzXG5sZXQgbW9uZXlfb2ZfdW5pdHNfaW50ICh1bml0cyA6IGludCkgOiBtb25leSA9IFouKG9mX2ludCB1bml0cyAqIG9mX2ludCAxMDApXG5sZXQgbW9uZXlfb2ZfY2VudHNfaW50ZWdlciAoY2VudHMgOiBpbnRlZ2VyKSA6IG1vbmV5ID0gY2VudHNcbmxldCBtb25leV90b19mbG9hdCAobSA6IG1vbmV5KSA6IGZsb2F0ID0gWi50b19mbG9hdCBtIC8uIDEwMC5cblxubGV0IG1vbmV5X29mX2RlY2ltYWwgKGQgOiBkZWNpbWFsKSA6IG1vbmV5ID1cbiAgUS50b19iaWdpbnQgKFEubXVsIGQgKFEub2ZfaW50IDEwMCkpXG5cbmxldCBtb25leV90b19zdHJpbmcgKG0gOiBtb25leSkgOiBzdHJpbmcgPVxuICBGb3JtYXQuYXNwcmludGYgXCIlLjJmXCIgUS4odG9fZmxvYXQgKG9mX2JpZ2ludCBtIC8gb2ZfaW50IDEwMCkpXG5cbmxldCBtb25leV90b19jZW50cyBtID0gbVxuXG5sZXQgbW9uZXlfcm91bmQgKG0gOiBtb25leSkgOiBtb25leSA9XG4gIGxldCB1bml0cywgY2VudHMgPSBaLmRpdl9yZW0gbSAoWi5vZl9pbnQgMTAwKSBpblxuICAoKiBJZiBbbV0gaXMgbmVnYXRpdmUsIFtjZW50c10gd2lsbCBhbHNvIGJlIG5lZ2F0aXZlLiAqKVxuICBpZiBaLihhYnMgY2VudHMgPCBvZl9pbnQgNTApIHRoZW4gWi4odW5pdHMgKiBvZl9pbnQgMTAwKVxuICBlbHNlIFouKCh1bml0cyArIG9mX2ludCAoc2lnbiB1bml0cykpICogb2ZfaW50IDEwMClcblxubGV0IGRlY2ltYWxfb2Zfc3RyaW5nIChkIDogc3RyaW5nKSA6IGRlY2ltYWwgPSBRLm9mX3N0cmluZyBkXG5sZXQgZGVjaW1hbF90b19mbG9hdCAoZCA6IGRlY2ltYWwpIDogZmxvYXQgPSBRLnRvX2Zsb2F0IGRcbmxldCBkZWNpbWFsX29mX2Zsb2F0IChkIDogZmxvYXQpIDogZGVjaW1hbCA9IFEub2ZfZmxvYXQgZFxubGV0IGRlY2ltYWxfb2ZfaW50ZWdlciAoZCA6IGludGVnZXIpIDogZGVjaW1hbCA9IFEub2ZfYmlnaW50IGRcblxubGV0IGRlY2ltYWxfdG9fc3RyaW5nIH4obWF4X3ByZWNfZGlnaXRzIDogaW50KSAoaSA6IGRlY2ltYWwpIDogc3RyaW5nID1cbiAgbGV0IHNpZ24gPSBRLnNpZ24gaSBpblxuICBsZXQgbiA9IFouYWJzIChRLm51bSBpKSBpblxuICBsZXQgZCA9IFouYWJzIChRLmRlbiBpKSBpblxuICBsZXQgaW50X3BhcnQgPSBaLmVkaXYgbiBkIGluXG4gIGxldCBuID0gcmVmIChaLmVyZW0gbiBkKSBpblxuICBsZXQgZGlnaXRzID0gcmVmIFtdIGluXG4gIGxldCBsZWFkaW5nX3plcm9lcyAoZGlnaXRzIDogWi50IGxpc3QpIDogaW50ID1cbiAgICBtYXRjaFxuICAgICAgTGlzdC5mb2xkX3JpZ2h0XG4gICAgICAgIChmdW4gZGlnaXQgbnVtX2xlYWRpbmdfemVyb2VzIC0+XG4gICAgICAgICAgbWF0Y2ggbnVtX2xlYWRpbmdfemVyb2VzIHdpdGhcbiAgICAgICAgICB8IGBFbmQgXyAtPiBudW1fbGVhZGluZ196ZXJvZXNcbiAgICAgICAgICB8IGBCZWdpbiBpIC0+IGlmIFouKGRpZ2l0ID0gemVybykgdGhlbiBgQmVnaW4gKGkgKyAxKSBlbHNlIGBFbmQgaSlcbiAgICAgICAgZGlnaXRzIChgQmVnaW4gMClcbiAgICB3aXRoXG4gICAgfCBgRW5kIGkgLT4gaVxuICAgIHwgYEJlZ2luIGkgLT4gaVxuICBpblxuICB3aGlsZVxuICAgICFuIDw+IFouemVyb1xuICAgICYmIExpc3QubGVuZ3RoICFkaWdpdHMgLSBsZWFkaW5nX3plcm9lcyAhZGlnaXRzIDwgbWF4X3ByZWNfZGlnaXRzXG4gIGRvXG4gICAgbiA6PSBaLm11bCAhbiAoWi5vZl9pbnQgMTApO1xuICAgIGRpZ2l0cyA6PSBaLmVkaXYgIW4gZCA6OiAhZGlnaXRzO1xuICAgIG4gOj0gWi5lcmVtICFuIGRcbiAgZG9uZTtcbiAgRm9ybWF0LmFzcHJpbnRmIFwiJXMlYS4lYSVzXCJcbiAgICAoaWYgc2lnbiA8IDAgdGhlbiBcIi1cIiBlbHNlIFwiXCIpXG4gICAgWi5wcF9wcmludCBpbnRfcGFydFxuICAgIChGb3JtYXQucHBfcHJpbnRfbGlzdFxuICAgICAgIH5wcF9zZXA6KGZ1biBfZm10ICgpIC0+ICgpKVxuICAgICAgIChmdW4gZm10IGRpZ2l0IC0+IEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVhXCIgWi5wcF9wcmludCBkaWdpdCkpXG4gICAgKExpc3QucmV2ICFkaWdpdHMpXG4gICAgKGlmIExpc3QubGVuZ3RoICFkaWdpdHMgLSBsZWFkaW5nX3plcm9lcyAhZGlnaXRzID0gbWF4X3ByZWNfZGlnaXRzIHRoZW4gXCLigKZcIlxuICAgIGVsc2UgXCJcIilcblxubGV0IGRlY2ltYWxfcm91bmQgKHEgOiBkZWNpbWFsKSA6IGRlY2ltYWwgPVxuICAoKiBJbXBsZW1lbnRzIHRoZSB3b3JrYXJvdW5kIGJ5XG4gICAgIGh0dHBzOi8vZ21wbGliLm9yZy9saXN0LWFyY2hpdmVzL2dtcC1kaXNjdXNzLzIwMDktTWF5LzAwMzc2Ny5odG1sICopXG4gIGxldCBuID0gUS5udW0gcSBpblxuICBsZXQgZCA9IFEuZGVuIHEgaW5cbiAgUS5vZl9iaWdpbnQgWi4oZmRpdiAoKG9mX2ludCAyICogbikgKyBkKSAob2ZfaW50IDIgKiBkKSlcblxubGV0IGRlY2ltYWxfb2ZfbW9uZXkgKG0gOiBtb25leSkgOiBkZWNpbWFsID1cbiAgUS5kaXYgKFEub2ZfYmlnaW50IG0pIChRLm9mX2ludCAxMDApXG5cbmxldCBpbnRlZ2VyX29mX3N0cmluZyAocyA6IHN0cmluZykgOiBpbnRlZ2VyID0gWi5vZl9zdHJpbmcgc1xubGV0IGludGVnZXJfdG9fc3RyaW5nIChpIDogaW50ZWdlcikgOiBzdHJpbmcgPSBaLnRvX3N0cmluZyBpXG5sZXQgaW50ZWdlcl90b19pbnQgKGkgOiBpbnRlZ2VyKSA6IGludCA9IFoudG9faW50IGlcbmxldCBpbnRlZ2VyX29mX2ludCAoaSA6IGludCkgOiBpbnRlZ2VyID0gWi5vZl9pbnQgaVxubGV0IGludGVnZXJfZXhwb25lbnRpYXRpb24gKGkgOiBpbnRlZ2VyKSAoZSA6IGludCkgOiBpbnRlZ2VyID0gWi5wb3cgaSBlXG5sZXQgaW50ZWdlcl9sb2cyID0gWi5sb2cyXG5cbmxldCB5ZWFyX29mX2RhdGUgKGQgOiBkYXRlKSA6IGludGVnZXIgPVxuICBsZXQgeSwgXywgXyA9IERhdGVzX2NhbGMuRGF0ZXMuZGF0ZV90b195bWQgZCBpblxuICBaLm9mX2ludCB5XG5cbmxldCBtb250aF9udW1iZXJfb2ZfZGF0ZSAoZCA6IGRhdGUpIDogaW50ZWdlciA9XG4gIGxldCBfLCBtLCBfID0gRGF0ZXNfY2FsYy5EYXRlcy5kYXRlX3RvX3ltZCBkIGluXG4gIFoub2ZfaW50IG1cblxubGV0IGlzX2xlYXBfeWVhciAoeSA6IGludGVnZXIpID1cbiAgbGV0IHkgPSBaLnRvX2ludCB5IGluXG4gIERhdGVzX2NhbGMuRGF0ZXMuaXNfbGVhcF95ZWFyIHlcblxubGV0IGRheV9vZl9tb250aF9vZl9kYXRlIChkIDogZGF0ZSkgOiBpbnRlZ2VyID1cbiAgbGV0IF8sIF8sIGQgPSBEYXRlc19jYWxjLkRhdGVzLmRhdGVfdG9feW1kIGQgaW5cbiAgWi5vZl9pbnQgZFxuXG5sZXQgZGF0ZV9vZl9udW1iZXJzICh5ZWFyIDogaW50KSAobW9udGggOiBpbnQpIChkYXkgOiBpbnQpIDogZGF0ZSA9XG4gIHRyeSBEYXRlc19jYWxjLkRhdGVzLm1ha2VfZGF0ZSB+eWVhciB+bW9udGggfmRheVxuICB3aXRoIF8gLT4gcmFpc2UgSW1wb3NzaWJsZURhdGVcblxubGV0IGRhdGVfdG9fc3RyaW5nIChkIDogZGF0ZSkgOiBzdHJpbmcgPVxuICBGb3JtYXQuYXNwcmludGYgXCIlYVwiIERhdGVzX2NhbGMuRGF0ZXMuZm9ybWF0X2RhdGUgZFxuXG5sZXQgZmlyc3RfZGF5X29mX21vbnRoID0gRGF0ZXNfY2FsYy5EYXRlcy5maXJzdF9kYXlfb2ZfbW9udGhcbmxldCBsYXN0X2RheV9vZl9tb250aCA9IERhdGVzX2NhbGMuRGF0ZXMubGFzdF9kYXlfb2ZfbW9udGhcblxubGV0IGR1cmF0aW9uX29mX251bWJlcnMgKHllYXIgOiBpbnQpIChtb250aCA6IGludCkgKGRheSA6IGludCkgOiBkdXJhdGlvbiA9XG4gIERhdGVzX2NhbGMuRGF0ZXMubWFrZV9wZXJpb2QgfnllYXJzOnllYXIgfm1vbnRoczptb250aCB+ZGF5czpkYXlcblxubGV0IGR1cmF0aW9uX3RvX3N0cmluZyAoZCA6IGR1cmF0aW9uKSA6IHN0cmluZyA9XG4gIEZvcm1hdC5hc3ByaW50ZiBcIiVhXCIgRGF0ZXNfY2FsYy5EYXRlcy5mb3JtYXRfcGVyaW9kIGRcbigqIGJyZWFrcyBwcmV2aW91cyBmb3JtYXQgKilcbigqIGxldCB4LCB5LCB6ID0gQ2FsZW5kYXJMaWIuRGF0ZS5QZXJpb2QueW1kIGQgaW5cbiAqIGxldCB0b19wcmludCA9XG4gKiAgIExpc3QuZmlsdGVyIChmdW4gKGEsIF8pIC0+IGEgPD4gMCkgW3gsIFwieWVhcnNcIjsgeSwgXCJtb250aHNcIjsgeiwgXCJkYXlzXCJdXG4gKiBpblxuICogbWF0Y2ggdG9fcHJpbnQgd2l0aFxuICogfCBbXSAtPiBcImVtcHR5IGR1cmF0aW9uXCJcbiAqIHwgXyAtPlxuICogICBGb3JtYXQuYXNwcmludGYgXCIlYVwiXG4gKiAgICAgKEZvcm1hdC5wcF9wcmludF9saXN0XG4gKiAgICAgICAgfnBwX3NlcDooZnVuIGZtdCAoKSAtPiBGb3JtYXQuZnByaW50ZiBmbXQgXCIsQCBcIilcbiAqICAgICAgICAoZnVuIGZtdCAoZCwgbCkgLT4gRm9ybWF0LmZwcmludGYgZm10IFwiJWQgJXNcIiBkIGwpKVxuICogICAgIHRvX3ByaW50ICopXG5cbmxldCBkdXJhdGlvbl90b195ZWFyc19tb250aHNfZGF5cyAoZCA6IGR1cmF0aW9uKSA6IGludCAqIGludCAqIGludCA9XG4gIERhdGVzX2NhbGMuRGF0ZXMucGVyaW9kX3RvX3ltZHMgZFxuXG5sZXQgeW9qc29uX29mX21vbmV5IChtIDogbW9uZXkpID0gYEZsb2F0IChtb25leV90b19mbG9hdCBtKVxubGV0IHlvanNvbl9vZl9pbnRlZ2VyIChpIDogaW50ZWdlcikgPSBgSW50IChpbnRlZ2VyX3RvX2ludCBpKVxubGV0IHlvanNvbl9vZl9kZWNpbWFsIChkIDogZGVjaW1hbCkgPSBgRmxvYXQgKGRlY2ltYWxfdG9fZmxvYXQgZClcbmxldCB5b2pzb25fb2ZfZGF0ZSAoZCA6IGRhdGUpID0gYFN0cmluZyAoZGF0ZV90b19zdHJpbmcgZClcbmxldCB5b2pzb25fb2ZfZHVyYXRpb24gKGQgOiBkdXJhdGlvbikgPSBgU3RyaW5nIChkdXJhdGlvbl90b19zdHJpbmcgZClcblxudHlwZSBydW50aW1lX3ZhbHVlID1cbiAgfCBVbml0XG4gIHwgQm9vbCBvZiBib29sXG4gIHwgTW9uZXkgb2YgbW9uZXlcbiAgfCBJbnRlZ2VyIG9mIGludGVnZXJcbiAgfCBEZWNpbWFsIG9mIGRlY2ltYWxcbiAgfCBEYXRlIG9mIGRhdGVcbiAgfCBEdXJhdGlvbiBvZiBkdXJhdGlvblxuICB8IEVudW0gb2Ygc3RyaW5nIGxpc3QgKiAoc3RyaW5nICogcnVudGltZV92YWx1ZSlcbiAgfCBTdHJ1Y3Qgb2Ygc3RyaW5nIGxpc3QgKiAoc3RyaW5nICogcnVudGltZV92YWx1ZSkgbGlzdFxuICB8IEFycmF5IG9mIHJ1bnRpbWVfdmFsdWUgYXJyYXlcbiAgfCBVbmVtYmVkZGFibGVcbltAQGRlcml2aW5nIHlvanNvbl9vZl1cblxubGV0IHVuZW1iZWRkYWJsZSBfID0gVW5lbWJlZGRhYmxlXG5sZXQgZW1iZWRfdW5pdCAoKSA9IFVuaXRcbmxldCBlbWJlZF9ib29sIHggPSBCb29sIHhcbmxldCBlbWJlZF9tb25leSB4ID0gTW9uZXkgeFxubGV0IGVtYmVkX2ludGVnZXIgeCA9IEludGVnZXIgeFxubGV0IGVtYmVkX2RlY2ltYWwgeCA9IERlY2ltYWwgeFxubGV0IGVtYmVkX2RhdGUgeCA9IERhdGUgeFxubGV0IGVtYmVkX2R1cmF0aW9uIHggPSBEdXJhdGlvbiB4XG5sZXQgZW1iZWRfYXJyYXkgZiB4ID0gQXJyYXkgKEFycmF5Lm1hcCBmIHgpXG5cbnR5cGUgaW5mb3JtYXRpb24gPSBzdHJpbmcgbGlzdCBbQEBkZXJpdmluZyB5b2pzb25fb2ZdXG5cbnR5cGUgcmF3X2V2ZW50ID1cbiAgfCBCZWdpbkNhbGwgb2YgaW5mb3JtYXRpb25cbiAgfCBFbmRDYWxsIG9mIGluZm9ybWF0aW9uXG4gIHwgVmFyaWFibGVEZWZpbml0aW9uIG9mIGluZm9ybWF0aW9uICogcnVudGltZV92YWx1ZVxuICB8IERlY2lzaW9uVGFrZW4gb2Ygc291cmNlX3Bvc2l0aW9uXG5cbnR5cGUgZXZlbnQgPVxuICB8IFZhckNvbXB1dGF0aW9uIG9mIHZhcl9kZWZcbiAgfCBGdW5DYWxsIG9mIGZ1bl9jYWxsXG4gIHwgU3ViU2NvcGVDYWxsIG9mIHtcbiAgICAgIG5hbWUgOiBpbmZvcm1hdGlvbjtcbiAgICAgIGlucHV0cyA6IHZhcl9kZWYgbGlzdDtcbiAgICAgIGJvZHkgOiBldmVudCBsaXN0O1xuICAgIH1cbltAQGRlcml2aW5nIHlvanNvbl9vZl1cblxuYW5kIHZhcl9kZWYgPSB7XG4gIHBvcyA6IHNvdXJjZV9wb3NpdGlvbiBvcHRpb247XG4gIG5hbWUgOiBpbmZvcm1hdGlvbjtcbiAgdmFsdWUgOiBydW50aW1lX3ZhbHVlO1xuICBmdW5fY2FsbHMgOiBmdW5fY2FsbCBsaXN0IG9wdGlvbjtcbn1cblxuYW5kIGZ1bl9jYWxsID0ge1xuICBmdW5fbmFtZSA6IGluZm9ybWF0aW9uO1xuICBmdW5faW5wdXRzIDogdmFyX2RlZiBsaXN0O1xuICBib2R5IDogZXZlbnQgbGlzdDtcbiAgb3V0cHV0IDogdmFyX2RlZjtcbn1cblxubGV0IGxvZ19yZWYgOiByYXdfZXZlbnQgbGlzdCByZWYgPSByZWYgW11cbmxldCByZXNldF9sb2cgKCkgPSBsb2dfcmVmIDo9IFtdXG5sZXQgcmV0cmlldmVfbG9nICgpID0gTGlzdC5yZXYgIWxvZ19yZWZcblxubGV0IGxvZ19iZWdpbl9jYWxsIGluZm8gZiA9XG4gIGxvZ19yZWYgOj0gQmVnaW5DYWxsIGluZm8gOjogIWxvZ19yZWY7XG4gIGZcblxubGV0IGxvZ19lbmRfY2FsbCBpbmZvIHggPVxuICBsb2dfcmVmIDo9IEVuZENhbGwgaW5mbyA6OiAhbG9nX3JlZjtcbiAgeFxuXG5sZXQgbG9nX3ZhcmlhYmxlX2RlZmluaXRpb24gKGluZm8gOiBzdHJpbmcgbGlzdCkgZW1iZWQgKHggOiAnYSkgPVxuICBsb2dfcmVmIDo9IFZhcmlhYmxlRGVmaW5pdGlvbiAoaW5mbywgZW1iZWQgeCkgOjogIWxvZ19yZWY7XG4gIHhcblxubGV0IGxvZ19kZWNpc2lvbl90YWtlbiBwb3MgeCA9XG4gIGlmIHggdGhlbiBsb2dfcmVmIDo9IERlY2lzaW9uVGFrZW4gcG9zIDo6ICFsb2dfcmVmO1xuICB4XG5cbmxldCByZWMgcHBfZXZlbnRzID8oaXNfZmlyc3RfY2FsbCA9IHRydWUpIHBwZiBldmVudHMgPVxuICBsZXQgcmVjIGZvcm1hdF92YXJfZGVmIHBwZiB2YXIgPVxuICAgIEZvcm1hdC5mcHJpbnRmIHBwZiBcIkBbPGhvdiAyPjx2YXJfZGVmIGF0ICVhPkAgJXM6QCAlYUBdXCIgZm9ybWF0X3Bvc19vcHRcbiAgICAgIHZhci5wb3NcbiAgICAgIChTdHJpbmcuY29uY2F0IFwiLlwiIHZhci5uYW1lKVxuICAgICAgZm9ybWF0X3ZhbHVlIHZhci52YWx1ZVxuICBhbmQgZm9ybWF0X3Bvc19vcHQgcHBmID0gZnVuY3Rpb25cbiAgICB8IE5vbmUgLT4gRm9ybWF0LmZwcmludGYgcHBmIFwibm9fcG9zXCJcbiAgICB8IFNvbWUgcG9zIC0+XG4gICAgICBGb3JtYXQuZnByaW50ZiBwcGYgXCIlcyBsaW5lICVkIHRvICVkXCIgcG9zLmZpbGVuYW1lIHBvcy5zdGFydF9saW5lXG4gICAgICAgIHBvcy5lbmRfbGluZVxuICBhbmQgZm9ybWF0X3Zhcl9kZWZzIHBwZiA9XG4gICAgRm9ybWF0LnBwX3ByaW50X2xpc3RcbiAgICAgIH5wcF9zZXA6KGZ1biBwcGYgKCkgLT4gRm9ybWF0LmZwcmludGYgcHBmIFwiQCBcIilcbiAgICAgIGZvcm1hdF92YXJfZGVmIHBwZlxuICBhbmQgZm9ybWF0X3Zhcl9kZWZfd2l0aF9mdW5fY2FsbHMgcHBmIHZhcl93aXRoX2Z1biA9XG4gICAgbWF0Y2ggdmFyX3dpdGhfZnVuLmZ1bl9jYWxscyB3aXRoXG4gICAgfCBOb25lIHwgU29tZSBbXSAtPiBmb3JtYXRfdmFyX2RlZiBwcGYgdmFyX3dpdGhfZnVuXG4gICAgfCBTb21lIGZ1bl9jYWxscyAtPlxuICAgICAgRm9ybWF0LmZwcmludGYgcHBmXG4gICAgICAgIFwiQFs8aG92IDI+PHZhcl9kZWZfd2l0aF9mdW4+QCAlczogJWFAIGNvbXB1dGVkIGZyb21AIDpAIEBbPGh2IDI+W0AgJWFAO1xcXG4gICAgICAgICA8MSAtMj5dQF0gQF1cIlxuICAgICAgICAoU3RyaW5nLmNvbmNhdCBcIi5cIiB2YXJfd2l0aF9mdW4ubmFtZSlcbiAgICAgICAgZm9ybWF0X3ZhbHVlIHZhcl93aXRoX2Z1bi52YWx1ZVxuICAgICAgICAoRm9ybWF0LnBwX3ByaW50X2xpc3RcbiAgICAgICAgICAgfnBwX3NlcDooZnVuIHBwZiAoKSAtPiBGb3JtYXQuZnByaW50ZiBwcGYgXCIsQCBcIilcbiAgICAgICAgICAgKGZ1biBwcGYgZnVuX2NhbGwgLT4gZm9ybWF0X2V2ZW50IHBwZiAoRnVuQ2FsbCBmdW5fY2FsbCkpKVxuICAgICAgICBmdW5fY2FsbHNcbiAgYW5kIGZvcm1hdF92YWx1ZSBwcGYgPSBmdW5jdGlvblxuICAgIHwgVW5lbWJlZGRhYmxlIC0+IEZvcm1hdC5mcHJpbnRmIHBwZiBcImZ1blwiXG4gICAgfCBVbml0IC0+IEZvcm1hdC5mcHJpbnRmIHBwZiBcIigpXCJcbiAgICB8IEJvb2wgeCAtPiBGb3JtYXQuZnByaW50ZiBwcGYgXCIlYlwiIHhcbiAgICB8IE1vbmV5IHggLT4gRm9ybWF0LmZwcmludGYgcHBmIFwiJXPigqxcIiAobW9uZXlfdG9fc3RyaW5nIHgpXG4gICAgfCBJbnRlZ2VyIHggLT4gRm9ybWF0LmZwcmludGYgcHBmIFwiJWRcIiAoaW50ZWdlcl90b19pbnQgeClcbiAgICB8IERlY2ltYWwgeCAtPlxuICAgICAgRm9ybWF0LmZwcmludGYgcHBmIFwiJXNcIiAoZGVjaW1hbF90b19zdHJpbmcgfm1heF9wcmVjX2RpZ2l0czoxMCB4KVxuICAgIHwgRGF0ZSB4IC0+IEZvcm1hdC5mcHJpbnRmIHBwZiBcIiVzXCIgKGRhdGVfdG9fc3RyaW5nIHgpXG4gICAgfCBEdXJhdGlvbiB4IC0+IEZvcm1hdC5mcHJpbnRmIHBwZiBcIiVzXCIgKGR1cmF0aW9uX3RvX3N0cmluZyB4KVxuICAgIHwgRW51bSAoXywgKG5hbWUsIF8pKSAtPiBGb3JtYXQuZnByaW50ZiBwcGYgXCIlc1wiIG5hbWVcbiAgICB8IFN0cnVjdCAobmFtZSwgYXR0cnMpIC0+XG4gICAgICBGb3JtYXQuZnByaW50ZiBwcGYgXCJAWzxodiAyPiVzID0ge0AgJWFAOzwxIC0yPn1AXVwiXG4gICAgICAgIChTdHJpbmcuY29uY2F0IFwiLlwiIG5hbWUpXG4gICAgICAgIChGb3JtYXQucHBfcHJpbnRfbGlzdFxuICAgICAgICAgICB+cHBfc2VwOihmdW4gcHBmICgpIC0+IEZvcm1hdC5mcHJpbnRmIHBwZiBcIixALFwiKVxuICAgICAgICAgICAoZnVuIGZtdCAobmFtZSwgdmFsdWUpIC0+XG4gICAgICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiJXM6ICVhXCIgbmFtZSBmb3JtYXRfdmFsdWUgdmFsdWUpKVxuICAgICAgICBhdHRyc1xuICAgIHwgQXJyYXkgZWx0cyAtPlxuICAgICAgRm9ybWF0LmZwcmludGYgcHBmIFwiQFs8aHYgMj5bQCAlYUA7PDEgLTI+XUBdXCJcbiAgICAgICAgKEZvcm1hdC5wcF9wcmludF9saXN0XG4gICAgICAgICAgIH5wcF9zZXA6KGZ1biBwcGYgKCkgLT4gRm9ybWF0LmZwcmludGYgcHBmIFwiO0AgXCIpXG4gICAgICAgICAgIGZvcm1hdF92YWx1ZSlcbiAgICAgICAgKGVsdHMgfD4gQXJyYXkudG9fbGlzdClcbiAgYW5kIGZvcm1hdF9ldmVudCBwcGYgPSBmdW5jdGlvblxuICAgIHwgVmFyQ29tcHV0YXRpb24gdmFyX2RlZl93aXRoX2Z1blxuICAgICAgd2hlbiBPcHRpb24uaXNfc29tZSB2YXJfZGVmX3dpdGhfZnVuLmZ1bl9jYWxscyAtPlxuICAgICAgRm9ybWF0LmZwcmludGYgcHBmIFwiJWFcIiBmb3JtYXRfdmFyX2RlZl93aXRoX2Z1bl9jYWxscyB2YXJfZGVmX3dpdGhfZnVuXG4gICAgfCBWYXJDb21wdXRhdGlvbiB2YXJfZGVmIC0+IEZvcm1hdC5mcHJpbnRmIHBwZiBcIiVhXCIgZm9ybWF0X3Zhcl9kZWYgdmFyX2RlZlxuICAgIHwgRnVuQ2FsbCB7IGZ1bl9uYW1lOyBmdW5faW5wdXRzOyBib2R5OyBvdXRwdXQgfSAtPlxuICAgICAgRm9ybWF0LmZwcmludGYgcHBmXG4gICAgICAgIFwiQFs8aG92IDE+PGZ1bmN0aW9uX2NhbGw+QCAlcyA6PUAge0BbPGh2IDE+QCBpbnB1dDpAICVhLEAgb3V0cHV0OkAgXFxcbiAgICAgICAgICVhLEAgYm9keTpAIFtALFxcXG4gICAgICAgICAlYV1AXUAsXFxcbiAgICAgICAgIEBdQCxcXFxuICAgICAgICAgfVwiXG4gICAgICAgIChTdHJpbmcuY29uY2F0IFwiLlwiIGZ1bl9uYW1lKVxuICAgICAgICAoRm9ybWF0LnBwX3ByaW50X2xpc3RcbiAgICAgICAgICAgfnBwX3NlcDooZnVuIGZtdCAoKSAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIGZtdCBcIjsgXCIpXG4gICAgICAgICAgIGZvcm1hdF92YXJfZGVmKVxuICAgICAgICBmdW5faW5wdXRzIGZvcm1hdF92YXJfZGVmX3dpdGhfZnVuX2NhbGxzIG91dHB1dFxuICAgICAgICAocHBfZXZlbnRzIH5pc19maXJzdF9jYWxsOmZhbHNlKVxuICAgICAgICBib2R5XG4gICAgfCBTdWJTY29wZUNhbGwgeyBuYW1lOyBpbnB1dHM7IGJvZHkgfSAtPlxuICAgICAgRm9ybWF0LmZwcmludGYgcHBmXG4gICAgICAgIFwiQFs8aHYgMj48c3Vic2NvcGVfY2FsbD5AICVzIDo9QCB7QFs8aHYgMT5ALFxcXG4gICAgICAgICBpbnB1dHM6QCBAWzxodiAyPltALFxcXG4gICAgICAgICAlYUBdXSxALFxcXG4gICAgICAgICBib2R5OkAgQFs8aHYgMj5bQCAlYUAgXUBdQF1AXUAsXFxcbiAgICAgICAgIH1cIlxuICAgICAgICAoU3RyaW5nLmNvbmNhdCBcIi5cIiBuYW1lKSBmb3JtYXRfdmFyX2RlZnMgaW5wdXRzXG4gICAgICAgIChwcF9ldmVudHMgfmlzX2ZpcnN0X2NhbGw6ZmFsc2UpXG4gICAgICAgIGJvZHlcbiAgaW5cbiAgRm9ybWF0LmZwcmludGYgcHBmXG4gICAgKFwiQFs8aHYgMT4lYUBdXCIgXl4gaWYgaXNfZmlyc3RfY2FsbCB0aGVuIFwiQC5cIiBlbHNlIFwiXCIpXG4gICAgKEZvcm1hdC5wcF9wcmludF9saXN0XG4gICAgICAgfnBwX3NlcDooZnVuIHBwZiAoKSAtPiBGb3JtYXQuZnByaW50ZiBwcGYgXCJAIFwiKVxuICAgICAgIGZvcm1hdF9ldmVudClcbiAgICBldmVudHNcblxubW9kdWxlIEV2ZW50UGFyc2VyID0gc3RydWN0XG4gIG1vZHVsZSBWYXJEZWZNYXAgPSBzdHJ1Y3RcbiAgICBtb2R1bGUgU3RyaW5nTWFwID0gTWFwLk1ha2UgKFN0cmluZylcblxuICAgIHR5cGUgdCA9IHZhcl9kZWYgbGlzdCBTdHJpbmdNYXAudFxuXG4gICAgbGV0IGFkZCAobmFtZSA6IHN0cmluZykgKHYgOiB2YXJfZGVmKSAobWFwIDogdCkgOiB0ID1cbiAgICAgIG1hdGNoIFN0cmluZ01hcC5maW5kX29wdCBuYW1lIG1hcCB3aXRoXG4gICAgICB8IFNvbWUgbHMgLT4gU3RyaW5nTWFwLmFkZCBuYW1lICh2IDo6IGxzKSBtYXBcbiAgICAgIHwgTm9uZSAtPiBTdHJpbmdNYXAuYWRkIG5hbWUgW3ZdIG1hcFxuXG4gICAgKCoqIFtnZXQgbmFtZSBtYXBdIHJldHVybnMgdGhlIGxpc3Qgb2YgZGVmaW5pdGlvbnMgaWYgdGhlcmUgaXMgYVxuICAgICAgICBjb3JyZXNwb25kaW5nIGVudHJ5LCBvdGhlcndpc2UsIHJldHVybnMgYW4gZW1wdHkgYXJyYXkuICopXG4gICAgbGV0IGdldCAobmFtZSA6IHN0cmluZykgKG1hcCA6IHQpIDogdmFyX2RlZiBsaXN0ID1cbiAgICAgIG1hdGNoIFN0cmluZ01hcC5maW5kX29wdCBuYW1lIG1hcCB3aXRoIFNvbWUgbHMgLT4gbHMgfCBOb25lIC0+IFtdXG5cbiAgICBsZXQgZW1wdHkgOiB0ID0gU3RyaW5nTWFwLmVtcHR5XG4gIGVuZFxuXG4gIHR5cGUgY29udGV4dCA9IHtcbiAgICAoKiBLZWVwcyB0cmFja3Mgb2YgdGhlIHN1YnNjb3BlIGlucHV0IHZhcmlhYmxlIGRlZmluaXRpb25zLiAqKVxuICAgIHZhcnMgOiBWYXJEZWZNYXAudDtcbiAgICAoKiBDdXJyZW50IHBhcnNlZCBldmVudHMuICopXG4gICAgZXZlbnRzIDogZXZlbnQgbGlzdDtcbiAgICByZXN0IDogcmF3X2V2ZW50IGxpc3Q7XG4gIH1cblxuICBsZXQgZW1wdHlfY3R4ID0geyB2YXJzID0gVmFyRGVmTWFwLmVtcHR5OyBldmVudHMgPSBbXTsgcmVzdCA9IFtdIH1cblxuICBsZXQgcmF3X2V2ZW50X3RvX3N0cmluZyA9IGZ1bmN0aW9uXG4gICAgfCBCZWdpbkNhbGwgbmFtZSAtPlxuICAgICAgUHJpbnRmLnNwcmludGYgXCJCZWdpbkNhbGwoWyBcIiBeIFN0cmluZy5jb25jYXQgXCIsIFwiIG5hbWUgXiBcIiBdKVwiXG4gICAgfCBFbmRDYWxsIG5hbWUgLT5cbiAgICAgIFByaW50Zi5zcHJpbnRmIFwiRW5kQ2FsbChbIFwiIF4gU3RyaW5nLmNvbmNhdCBcIiwgXCIgbmFtZSBeIFwiIF0pXCJcbiAgICB8IFZhcmlhYmxlRGVmaW5pdGlvbiAobmFtZSwgdmFsdWUpIC0+XG4gICAgICBQcmludGYuc3ByaW50ZiBcIlZhcmlhYmxlRGVmaW5pdGlvbihbICVzIF0sICVzKVwiIChTdHJpbmcuY29uY2F0IFwiLCBcIiBuYW1lKVxuICAgICAgICAoeW9qc29uX29mX3J1bnRpbWVfdmFsdWUgdmFsdWUgfD4gWW9qc29uLlNhZmUudG9fc3RyaW5nKVxuICAgIHwgRGVjaXNpb25UYWtlbiBwb3MgLT5cbiAgICAgIFByaW50Zi5zcHJpbnRmIFwiRGVjaXNpb25UYWtlbiglczolZC4lZC0lZC4lZClcIiBwb3MuZmlsZW5hbWUgcG9zLnN0YXJ0X2xpbmVcbiAgICAgICAgcG9zLnN0YXJ0X2NvbHVtbiBwb3MuZW5kX2xpbmUgcG9zLmVuZF9jb2x1bW5cblxuICAoKiogW3Rha2V3aGlsZSBwIHhzXSBzcGxpdCB0aGUgbGlzdCBbeHNdIGFzIHRoZSBsb25nZXN0IHByZWZpeCBvZiB0aGUgbGlzdFxuICAgICAgW3hzXSB3aGVyZSBldmVyeSBlbGVtZW50IFt4XSBzYXRpc2ZpZXMgW3AgeF0gYW5kIHRoZSByZXN0LiAqKVxuICBsZXQgcmVjIHRha2Vfd2hpbGUgKHAgOiAnYSAtPiBib29sKSAobCA6ICdhIGxpc3QpIDogJ2EgbGlzdCAqICdhIGxpc3QgPVxuICAgIG1hdGNoIGwgd2l0aFxuICAgIHwgW10gLT4gW10sIFtdXG4gICAgfCBoIDo6IHQgd2hlbiBwIGggLT5cbiAgICAgIGxldCB0LCByZXN0ID0gdGFrZV93aGlsZSBwIHQgaW5cbiAgICAgIGggOjogdCwgcmVzdFxuICAgIHwgXyAtPiBbXSwgbFxuXG4gIGxldCBwYXJzZV9yYXdfZXZlbnRzIHJhd19ldmVudHMgPVxuICAgIGxldCBuYl9yYXdfZXZlbnRzID0gTGlzdC5sZW5ndGggcmF3X2V2ZW50c1xuICAgIGFuZCBpc19mdW5jdGlvbl9jYWxsIGluZm9zID0gMiA9IExpc3QubGVuZ3RoIGluZm9zXG4gICAgYW5kIGlzX3N1YnNjb3BlX2NhbGwgaW5mb3MgPSAzID0gTGlzdC5sZW5ndGggaW5mb3NcbiAgICBhbmQgaXNfdmFyX2RlZiBuYW1lID0gMiA9IExpc3QubGVuZ3RoIG5hbWVcbiAgICBhbmQgaXNfb3V0cHV0X3Zhcl9kZWYgbmFtZSA9XG4gICAgICAzID0gTGlzdC5sZW5ndGggbmFtZSAmJiBcIm91dHB1dFwiID0gTGlzdC5udGggbmFtZSAyXG4gICAgYW5kIGlzX2lucHV0X3Zhcl9kZWYgbmFtZSA9XG4gICAgICAzID0gTGlzdC5sZW5ndGggbmFtZVxuICAgICAgJiYgU3RyaW5nLnN0YXJ0c193aXRoIH5wcmVmaXg6XCJpbnB1dFwiIChMaXN0Lm50aCBuYW1lIDIpXG4gICAgYW5kIGlzX3N1YnNjb3BlX2lucHV0X3Zhcl9kZWYgbmFtZSA9XG4gICAgICAyID0gTGlzdC5sZW5ndGggbmFtZSAmJiBTdHJpbmcuY29udGFpbnMgKExpc3QubnRoIG5hbWUgMSkgJy4nXG4gICAgaW5cbiAgICBsZXQgcmVjIHBhcnNlX2V2ZW50cyAoY3R4IDogY29udGV4dCkgOiBjb250ZXh0ID1cbiAgICAgIG1hdGNoIGN0eC5yZXN0IHdpdGhcbiAgICAgIHwgW10gLT4geyBjdHggd2l0aCBldmVudHMgPSBjdHguZXZlbnRzIHw+IExpc3QucmV2IH1cbiAgICAgIHwgVmFyaWFibGVEZWZpbml0aW9uIChuYW1lLCBfKSA6OiByZXN0IHdoZW4gaXNfdmFyX2RlZiBuYW1lIC0+XG4gICAgICAgICgqIFZhcmlhYmxlRGVmaW5pdGlvbiB3aXRob3V0IHBvc2l0aW9uIGNvcnJlc3BvbmRzIHRvIGEgZnVuY3Rpb25cbiAgICAgICAgICAgZGVmaW5pdGlvbiB3aGljaCBhcmUgaWdub3JlZCBmb3Igbm93IGluIHN0cnVjdHVyZWQgZXZlbnRzLiAqKVxuICAgICAgICBwYXJzZV9ldmVudHMgeyBjdHggd2l0aCByZXN0IH1cbiAgICAgIHwgRGVjaXNpb25UYWtlbiBwb3MgOjogVmFyaWFibGVEZWZpbml0aW9uIChuYW1lLCB2YWx1ZSkgOjogcmVzdFxuICAgICAgICB3aGVuIGlzX3N1YnNjb3BlX2lucHV0X3Zhcl9kZWYgbmFtZSAtPiAoXG4gICAgICAgIG1hdGNoIG5hbWUgd2l0aFxuICAgICAgICB8IFtfOyB2YXJfZG90X3N1YnNjb3BlX3Zhcl9uYW1lXSAtPlxuICAgICAgICAgIGxldCB2YXJfbmFtZSA9XG4gICAgICAgICAgICBMaXN0Lm50aCAoU3RyaW5nLnNwbGl0X29uX2NoYXIgJy4nIHZhcl9kb3Rfc3Vic2NvcGVfdmFyX25hbWUpIDBcbiAgICAgICAgICBpblxuICAgICAgICAgIHBhcnNlX2V2ZW50c1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjdHggd2l0aFxuICAgICAgICAgICAgICB2YXJzID1cbiAgICAgICAgICAgICAgICBjdHgudmFyc1xuICAgICAgICAgICAgICAgIHw+IFZhckRlZk1hcC5hZGQgdmFyX25hbWVcbiAgICAgICAgICAgICAgICAgICAgIHsgcG9zID0gU29tZSBwb3M7IG5hbWU7IHZhbHVlOyBmdW5fY2FsbHMgPSBOb25lIH07XG4gICAgICAgICAgICAgIHJlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIHwgXyAtPlxuICAgICAgICAgIGZhaWx3aXRoIFwidW5yZWFjaGFibGUgZHVlIHRvIHRoZSBbaXNfc3Vic2NvcGVfaW5wdXRfdmFyX2RlZl0gdGVzdFwiKVxuICAgICAgfCBEZWNpc2lvblRha2VuIHBvcyA6OiBWYXJpYWJsZURlZmluaXRpb24gKG5hbWUsIHZhbHVlKSA6OiByZXN0XG4gICAgICAgIHdoZW4gaXNfdmFyX2RlZiBuYW1lIHx8IGlzX291dHB1dF92YXJfZGVmIG5hbWUgLT5cbiAgICAgICAgcGFyc2VfZXZlbnRzXG4gICAgICAgICAge1xuICAgICAgICAgICAgY3R4IHdpdGhcbiAgICAgICAgICAgIGV2ZW50cyA9XG4gICAgICAgICAgICAgIFZhckNvbXB1dGF0aW9uIHsgcG9zID0gU29tZSBwb3M7IG5hbWU7IHZhbHVlOyBmdW5fY2FsbHMgPSBOb25lIH1cbiAgICAgICAgICAgICAgOjogY3R4LmV2ZW50cztcbiAgICAgICAgICAgIHJlc3Q7XG4gICAgICAgICAgfVxuICAgICAgfCBEZWNpc2lvblRha2VuIHBvcyA6OiBWYXJpYWJsZURlZmluaXRpb24gXyA6OiBCZWdpbkNhbGwgaW5mb3MgOjogX1xuICAgICAgICB3aGVuIGlzX2Z1bmN0aW9uX2NhbGwgaW5mb3MgLT5cbiAgICAgICAgKCogVmFyaWFibGUgZGVmaW5pdGlvbiB3aXRoIGZ1bmN0aW9uIGNhbGxzLiAqKVxuICAgICAgICBsZXQgcmVjIHBhcnNlX2Z1bl9jYWxscyBmdW5fY2FsbHMgcmF3X2V2ZW50cyA9XG4gICAgICAgICAgbWF0Y2hcbiAgICAgICAgICAgIHRha2Vfd2hpbGVcbiAgICAgICAgICAgICAgKGZ1bmN0aW9uIFZhcmlhYmxlRGVmaW5pdGlvbiBfIC0+IHRydWUgfCBfIC0+IGZhbHNlKVxuICAgICAgICAgICAgICByYXdfZXZlbnRzXG4gICAgICAgICAgd2l0aFxuICAgICAgICAgIHwgXywgQmVnaW5DYWxsIGluZm9zIDo6IF8gd2hlbiBpc19mdW5jdGlvbl9jYWxsIGluZm9zIC0+XG4gICAgICAgICAgICBsZXQgcmVzdCwgZnVuX2NhbGwgPSBwYXJzZV9mdW5fY2FsbCByYXdfZXZlbnRzIGluXG4gICAgICAgICAgICBwYXJzZV9mdW5fY2FsbHMgKGZ1bl9jYWxsIDo6IGZ1bl9jYWxscykgcmVzdFxuICAgICAgICAgIHwgXyAtPiByYXdfZXZlbnRzLCBmdW5fY2FsbHMgfD4gTGlzdC5yZXZcbiAgICAgICAgaW5cbiAgICAgICAgbGV0IHJlc3QsIHZhcl9jb21wID1cbiAgICAgICAgICBsZXQgcmVzdCwgZnVuX2NhbGxzID0gcGFyc2VfZnVuX2NhbGxzIFtdIChMaXN0LnRsIGN0eC5yZXN0KSBpblxuICAgICAgICAgIG1hdGNoIHJlc3Qgd2l0aFxuICAgICAgICAgIHwgVmFyaWFibGVEZWZpbml0aW9uIChuYW1lLCB2YWx1ZSkgOjogcmVzdCAtPlxuICAgICAgICAgICAgKCByZXN0LFxuICAgICAgICAgICAgICBWYXJDb21wdXRhdGlvblxuICAgICAgICAgICAgICAgIHsgcG9zID0gU29tZSBwb3M7IG5hbWU7IHZhbHVlOyBmdW5fY2FsbHMgPSBTb21lIGZ1bl9jYWxscyB9IClcbiAgICAgICAgICB8IGV2ZW50IDo6IF8gLT5cbiAgICAgICAgICAgIGZhaWx3aXRoXG4gICAgICAgICAgICAgIChcIkludmFsaWQgZnVuY3Rpb24gY2FsbCAoWyBcIlxuICAgICAgICAgICAgICBeIFN0cmluZy5jb25jYXQgXCIsIFwiIGluZm9zXG4gICAgICAgICAgICAgIF4gXCIgXSk6IGV4cGVjdGVkIHZhcmlhYmxlIGRlZmluaXRpb24gKGZ1bmN0aW9uIG91dHB1dCksIGZvdW5kOiBcIlxuICAgICAgICAgICAgICBeIHJhd19ldmVudF90b19zdHJpbmcgZXZlbnRcbiAgICAgICAgICAgICAgXiBcIltcIlxuICAgICAgICAgICAgICBeIChuYl9yYXdfZXZlbnRzIC0gTGlzdC5sZW5ndGggcmVzdCArIDEgfD4gc3RyaW5nX29mX2ludClcbiAgICAgICAgICAgICAgXiBcIl1cIilcbiAgICAgICAgICB8IFtdIC0+XG4gICAgICAgICAgICBmYWlsd2l0aFxuICAgICAgICAgICAgICAoXCJJbnZhbGlkIGZ1bmN0aW9uIGNhbGwgKFsgXCJcbiAgICAgICAgICAgICAgXiBTdHJpbmcuY29uY2F0IFwiLCBcIiBpbmZvc1xuICAgICAgICAgICAgICBeIFwiIF0pOiBleHBlY3RlZCB2YXJpYWJsZSBkZWZpbml0aW9uIChmdW5jdGlvbiBvdXRwdXQpLCBmb3VuZDogXFxcbiAgICAgICAgICAgICAgICAgZW5kIG9mIHRva2Vuc1wiKVxuICAgICAgICBpblxuXG4gICAgICAgIHBhcnNlX2V2ZW50cyB7IGN0eCB3aXRoIGV2ZW50cyA9IHZhcl9jb21wIDo6IGN0eC5ldmVudHM7IHJlc3QgfVxuICAgICAgfCBWYXJpYWJsZURlZmluaXRpb24gXyA6OiBCZWdpbkNhbGwgaW5mb3MgOjogXyB3aGVuIGlzX2Z1bmN0aW9uX2NhbGwgaW5mb3NcbiAgICAgICAgLT5cbiAgICAgICAgbGV0IHJlc3QsIGZ1bl9jYWxsID0gcGFyc2VfZnVuX2NhbGwgY3R4LnJlc3QgaW5cblxuICAgICAgICBwYXJzZV9ldmVudHMgeyBjdHggd2l0aCBldmVudHMgPSBGdW5DYWxsIGZ1bl9jYWxsIDo6IGN0eC5ldmVudHM7IHJlc3QgfVxuICAgICAgfCBCZWdpbkNhbGwgaW5mb3MgOjogcmVzdCB3aGVuIGlzX3N1YnNjb3BlX2NhbGwgaW5mb3MgLT4gKFxuICAgICAgICBtYXRjaCBpbmZvcyB3aXRoXG4gICAgICAgIHwgW187IHZhcl9uYW1lOyBfXSAtPlxuICAgICAgICAgIGxldCBib2R5X2N0eCA9IHBhcnNlX2V2ZW50cyB7IGVtcHR5X2N0eCB3aXRoIHJlc3QgfSBpblxuICAgICAgICAgIGxldCBpbnB1dHMgPSBWYXJEZWZNYXAuZ2V0IHZhcl9uYW1lIGN0eC52YXJzIGluXG4gICAgICAgICAgcGFyc2VfZXZlbnRzXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGN0eCB3aXRoXG4gICAgICAgICAgICAgIGV2ZW50cyA9XG4gICAgICAgICAgICAgICAgU3ViU2NvcGVDYWxsIHsgbmFtZSA9IGluZm9zOyBpbnB1dHM7IGJvZHkgPSBib2R5X2N0eC5ldmVudHMgfVxuICAgICAgICAgICAgICAgIDo6IGN0eC5ldmVudHM7XG4gICAgICAgICAgICAgIHJlc3QgPSBib2R5X2N0eC5yZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB8IF8gLT4gZmFpbHdpdGggXCJ1bnJlYWNoYWJsZSBkdWUgdG8gdGhlIFtpc19zdWJzY29wZV9jYWxsXSB0ZXN0XCIpXG4gICAgICB8IEVuZENhbGwgXyA6OiByZXN0IC0+IHsgY3R4IHdpdGggZXZlbnRzID0gY3R4LmV2ZW50cyB8PiBMaXN0LnJldjsgcmVzdCB9XG4gICAgICB8IGV2ZW50IDo6IF8gLT4gZmFpbHdpdGggKFwiVW5leHBlY3RlZCBldmVudDogXCIgXiByYXdfZXZlbnRfdG9fc3RyaW5nIGV2ZW50KVxuICAgIGFuZCBwYXJzZV9mdW5fY2FsbCBldmVudHMgPVxuICAgICAgbWF0Y2hcbiAgICAgICAgdGFrZV93aGlsZVxuICAgICAgICAgIChmdW5jdGlvblxuICAgICAgICAgICAgfCBWYXJpYWJsZURlZmluaXRpb24gKG5hbWUsIF8pIC0+IGlzX2lucHV0X3Zhcl9kZWYgbmFtZSB8IF8gLT4gZmFsc2UpXG4gICAgICAgICAgZXZlbnRzXG4gICAgICB3aXRoXG4gICAgICB8IGlucHV0cywgQmVnaW5DYWxsIGluZm9zIDo6IHJlc3Qgd2hlbiBpc19mdW5jdGlvbl9jYWxsIGluZm9zIC0+XG4gICAgICAgIGxldCBmdW5faW5wdXRzID1cbiAgICAgICAgICBMaXN0TGFiZWxzLm1hcCBpbnB1dHMgfmY6KGZ1bmN0aW9uXG4gICAgICAgICAgICB8IFZhcmlhYmxlRGVmaW5pdGlvbiAobmFtZSwgdmFsdWUpIC0+XG4gICAgICAgICAgICAgIHsgcG9zID0gTm9uZTsgbmFtZTsgdmFsdWU7IGZ1bl9jYWxscyA9IE5vbmUgfVxuICAgICAgICAgICAgfCBfIC0+IGFzc2VydCBmYWxzZSlcbiAgICAgICAgaW5cbiAgICAgICAgbGV0IHJlc3QsIGJvZHksIG91dHB1dCA9XG4gICAgICAgICAgbGV0IGJvZHlfY3R4ID1cbiAgICAgICAgICAgIHBhcnNlX2V2ZW50cyB7IHZhcnMgPSBWYXJEZWZNYXAuZW1wdHk7IGV2ZW50cyA9IFtdOyByZXN0IH1cbiAgICAgICAgICBpblxuICAgICAgICAgIGxldCBib2R5X3JldiA9IExpc3QucmV2IGJvZHlfY3R4LmV2ZW50cyBpblxuICAgICAgICAgIGJvZHlfY3R4LnJlc3QsIGJvZHlfcmV2IHw+IExpc3QudGwgfD4gTGlzdC5yZXYsIGJvZHlfcmV2IHw+IExpc3QuaGRcbiAgICAgICAgaW5cbiAgICAgICAgbGV0IG91dHB1dCA9XG4gICAgICAgICAgbWF0Y2ggb3V0cHV0IHdpdGhcbiAgICAgICAgICB8IFZhckNvbXB1dGF0aW9uIHZhcl9kZWYgLT4gdmFyX2RlZlxuICAgICAgICAgIHwgXyAtPiBmYWlsd2l0aCBcIk1pc3NpbmcgZnVuY3Rpb24gb3V0cHV0IHZhcmlhYmxlIGRlZmluaXRpb24uXCJcbiAgICAgICAgaW5cblxuICAgICAgICByZXN0LCB7IGZ1bl9uYW1lID0gaW5mb3M7IGZ1bl9pbnB1dHM7IGJvZHk7IG91dHB1dCB9XG4gICAgICB8IF8gLT4gZmFpbHdpdGggXCJJbnZhbGlkIHN0YXJ0IG9mIGZ1bmN0aW9uIGNhbGwuXCJcbiAgICBpblxuXG4gICAgbGV0IGN0eCA9XG4gICAgICB0cnkgcGFyc2VfZXZlbnRzIHsgZW1wdHlfY3R4IHdpdGggcmVzdCA9IHJhd19ldmVudHMgfVxuICAgICAgd2l0aCBGYWlsdXJlIG1zZyAtPlxuICAgICAgICAoKiBUT0RPOiBkaXNjdXNzIHdoYXQgc2hvdWxkIGJlIGRvbmUuICopXG4gICAgICAgIFByaW50Zi5lcHJpbnRmIFwiQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgcGFyc2luZyByYXcgZXZlbnRzOiAlc1xcblwiIG1zZztcbiAgICAgICAgZW1wdHlfY3R4XG4gICAgaW5cbiAgICBjdHguZXZlbnRzXG5lbmRcblxubGV0IGhhbmRsZV9kZWZhdWx0IDpcbiAgICAgICdhLlxuICAgICAgc291cmNlX3Bvc2l0aW9uIC0+XG4gICAgICAodW5pdCAtPiAnYSkgYXJyYXkgLT5cbiAgICAgICh1bml0IC0+IGJvb2wpIC0+XG4gICAgICAodW5pdCAtPiAnYSkgLT5cbiAgICAgICdhID1cbiBmdW4gcG9zIGV4Y2VwdGlvbnMganVzdCBjb25zIC0+XG4gIGxldCBleGNlcHQgPVxuICAgIEFycmF5LmZvbGRfbGVmdFxuICAgICAgKGZ1biBhY2MgZXhjZXB0IC0+XG4gICAgICAgIGxldCBuZXdfdmFsID0gdHJ5IFNvbWUgKGV4Y2VwdCAoKSkgd2l0aCBFbXB0eUVycm9yIC0+IE5vbmUgaW5cbiAgICAgICAgbWF0Y2ggYWNjLCBuZXdfdmFsIHdpdGhcbiAgICAgICAgfCBOb25lLCBfIC0+IG5ld192YWxcbiAgICAgICAgfCBTb21lIF8sIE5vbmUgLT4gYWNjXG4gICAgICAgIHwgU29tZSBfLCBTb21lIF8gLT4gcmFpc2UgKENvbmZsaWN0RXJyb3IgcG9zKSlcbiAgICAgIE5vbmUgZXhjZXB0aW9uc1xuICBpblxuICBtYXRjaCBleGNlcHQgd2l0aFxuICB8IFNvbWUgeCAtPiB4XG4gIHwgTm9uZSAtPiBpZiBqdXN0ICgpIHRoZW4gY29ucyAoKSBlbHNlIHJhaXNlIEVtcHR5RXJyb3JcblxubGV0IGhhbmRsZV9kZWZhdWx0X29wdFxuICAgIChwb3MgOiBzb3VyY2VfcG9zaXRpb24pXG4gICAgKGV4Y2VwdGlvbnMgOiAnYSBlb3B0aW9uIGFycmF5KVxuICAgIChqdXN0IDogYm9vbCBlb3B0aW9uKVxuICAgIChjb25zIDogJ2EgZW9wdGlvbikgOiAnYSBlb3B0aW9uID1cbiAgbGV0IGV4Y2VwdCA9XG4gICAgQXJyYXkuZm9sZF9sZWZ0XG4gICAgICAoZnVuIGFjYyBleGNlcHQgLT5cbiAgICAgICAgbWF0Y2ggYWNjLCBleGNlcHQgd2l0aFxuICAgICAgICB8IEVOb25lIF8sIF8gLT4gZXhjZXB0XG4gICAgICAgIHwgRVNvbWUgXywgRU5vbmUgXyAtPiBhY2NcbiAgICAgICAgfCBFU29tZSBfLCBFU29tZSBfIC0+IHJhaXNlIChDb25mbGljdEVycm9yIHBvcykpXG4gICAgICAoRU5vbmUgKCkpIGV4Y2VwdGlvbnNcbiAgaW5cbiAgbWF0Y2ggZXhjZXB0IHdpdGhcbiAgfCBFU29tZSBfIC0+IGV4Y2VwdFxuICB8IEVOb25lIF8gLT4gKFxuICAgIG1hdGNoIGp1c3Qgd2l0aFxuICAgIHwgRVNvbWUgYiAtPiBpZiBiIHRoZW4gY29ucyBlbHNlIEVOb25lICgpXG4gICAgfCBFTm9uZSBfIC0+IEVOb25lICgpKVxuXG5sZXQgbm9faW5wdXQgOiB1bml0IC0+ICdhID0gZnVuIF8gLT4gcmFpc2UgRW1wdHlFcnJvclxuXG4oKiBUT0RPOiBhZGQgYSBjb21wYXJlIGJ1aWx0LWluIHRvIGRhdGVzX2NhbGMuIEF0IHRoZSBtb21lbnQgdGhpcyBmYWlscyBvbiBlLmcuXG4gICBbMyBtb250aHMsIDQgbW9udGhzXSAqKVxubGV0IGNvbXBhcmVfcGVyaW9kcyAocDEgOiBkdXJhdGlvbikgKHAyIDogZHVyYXRpb24pIDogaW50ID1cbiAgdHJ5XG4gICAgbGV0IHAxX2RheXMgPSBEYXRlc19jYWxjLkRhdGVzLnBlcmlvZF90b19kYXlzIHAxIGluXG4gICAgbGV0IHAyX2RheXMgPSBEYXRlc19jYWxjLkRhdGVzLnBlcmlvZF90b19kYXlzIHAyIGluXG4gICAgY29tcGFyZSBwMV9kYXlzIHAyX2RheXNcbiAgd2l0aCBEYXRlc19jYWxjLkRhdGVzLkFtYmlndW91c0NvbXB1dGF0aW9uIC0+IHJhaXNlIFVuY29tcGFyYWJsZUR1cmF0aW9uc1xuXG4oKiBUT0RPOiBzYW1lIGhlcmUsIGFsdGhvdWdoIGl0IHdhcyB0d2Vha2VkIHRvIG5ldmVyIGZhaWwgb24gZXF1YWwgZGF0ZXMuXG4gICBDb21wYXJpbmcgdGhlIGRpZmZlcmVuY2UgdG8gZHVyYXRpb25fMCBpcyBub3QgYSBnb29kIGlkZWEgYmVjYXVzZSB3ZSBzdGlsbFxuICAgd2FudCB0byBmYWlsIG9uIFsxIG1vbnRoLCAzMCBkYXlzXSByYXRoZXIgdGhhbiByZXR1cm4gW2ZhbHNlXSAqKVxubGV0IGVxdWFsX3BlcmlvZHMgKHAxIDogZHVyYXRpb24pIChwMiA6IGR1cmF0aW9uKSA6IGJvb2wgPVxuICB0cnkgRGF0ZXNfY2FsYy5EYXRlcy5wZXJpb2RfdG9fZGF5cyAoRGF0ZXNfY2FsYy5EYXRlcy5zdWJfcGVyaW9kcyBwMSBwMikgPSAwXG4gIHdpdGggRGF0ZXNfY2FsYy5EYXRlcy5BbWJpZ3VvdXNDb21wdXRhdGlvbiAtPiByYWlzZSBVbmNvbXBhcmFibGVEdXJhdGlvbnNcblxubW9kdWxlIE9wZXIgPSBzdHJ1Y3RcbiAgbGV0IG9fbm90ID0gU3RkbGliLm5vdFxuICBsZXQgb19sZW5ndGggYSA9IFoub2ZfaW50IChBcnJheS5sZW5ndGggYSlcbiAgbGV0IG9fdG9yYXRfaW50ID0gZGVjaW1hbF9vZl9pbnRlZ2VyXG4gIGxldCBvX3RvcmF0X21vbiA9IGRlY2ltYWxfb2ZfbW9uZXlcbiAgbGV0IG9fdG9tb25leV9yYXQgPSBtb25leV9vZl9kZWNpbWFsXG4gIGxldCBvX2dldERheSA9IGRheV9vZl9tb250aF9vZl9kYXRlXG4gIGxldCBvX2dldE1vbnRoID0gbW9udGhfbnVtYmVyX29mX2RhdGVcbiAgbGV0IG9fZ2V0WWVhciA9IHllYXJfb2ZfZGF0ZVxuICBsZXQgb19maXJzdERheU9mTW9udGggPSBmaXJzdF9kYXlfb2ZfbW9udGhcbiAgbGV0IG9fbGFzdERheU9mTW9udGggPSBsYXN0X2RheV9vZl9tb250aFxuICBsZXQgb19yb3VuZF9tb24gPSBtb25leV9yb3VuZFxuICBsZXQgb19yb3VuZF9yYXQgPSBkZWNpbWFsX3JvdW5kXG4gIGxldCBvX21pbnVzX2ludCBpMSA9IFouc3ViIFouemVybyBpMVxuICBsZXQgb19taW51c19yYXQgaTEgPSBRLnN1YiBRLnplcm8gaTFcbiAgbGV0IG9fbWludXNfbW9uIG0xID0gWi5zdWIgWi56ZXJvIG0xXG4gIGxldCBvX21pbnVzX2R1ciA9IERhdGVzX2NhbGMuRGF0ZXMubmVnX3BlcmlvZFxuICBsZXQgb19hbmQgPSAoICYmIClcbiAgbGV0IG9fb3IgPSAoIHx8IClcbiAgbGV0IG9feG9yIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSAoIDw+IClcbiAgbGV0IG9fZXEgPSAoID0gKVxuICBsZXQgb19tYXAgPSBBcnJheS5tYXBcblxuICBsZXQgb19yZWR1Y2UgZiBkZnQgYSA9XG4gICAgbGV0IGxlbiA9IEFycmF5Lmxlbmd0aCBhIGluXG4gICAgaWYgbGVuID0gMCB0aGVuIGRmdFxuICAgIGVsc2VcbiAgICAgIGxldCByID0gcmVmIGEuKDApIGluXG4gICAgICBmb3IgaSA9IDEgdG8gbGVuIC0gMSBkb1xuICAgICAgICByIDo9IGYgIXIgYS4oaSlcbiAgICAgIGRvbmU7XG4gICAgICAhclxuXG4gIGxldCBvX2NvbmNhdCA9IEFycmF5LmFwcGVuZFxuICBsZXQgb19maWx0ZXIgZiBhID0gQXJyYXkub2ZfbGlzdCAoTGlzdC5maWx0ZXIgZiAoQXJyYXkudG9fbGlzdCBhKSlcbiAgbGV0IG9fYWRkX2ludF9pbnQgaTEgaTIgPSBaLmFkZCBpMSBpMlxuICBsZXQgb19hZGRfcmF0X3JhdCBpMSBpMiA9IFEuYWRkIGkxIGkyXG4gIGxldCBvX2FkZF9tb25fbW9uIG0xIG0yID0gWi5hZGQgbTEgbTJcbiAgbGV0IG9fYWRkX2RhdF9kdXIgciBkYSBkdSA9IERhdGVzX2NhbGMuRGF0ZXMuYWRkX2RhdGVzIH5yb3VuZDpyIGRhIGR1XG4gIGxldCBvX2FkZF9kdXJfZHVyID0gRGF0ZXNfY2FsYy5EYXRlcy5hZGRfcGVyaW9kc1xuICBsZXQgb19zdWJfaW50X2ludCBpMSBpMiA9IFouc3ViIGkxIGkyXG4gIGxldCBvX3N1Yl9yYXRfcmF0IGkxIGkyID0gUS5zdWIgaTEgaTJcbiAgbGV0IG9fc3ViX21vbl9tb24gbTEgbTIgPSBaLnN1YiBtMSBtMlxuICBsZXQgb19zdWJfZGF0X2RhdCA9IERhdGVzX2NhbGMuRGF0ZXMuc3ViX2RhdGVzXG4gIGxldCBvX3N1Yl9kYXRfZHVyIGRhdCBkdXIgPSBEYXRlc19jYWxjLkRhdGVzLihhZGRfZGF0ZXMgZGF0IChuZWdfcGVyaW9kIGR1cikpXG4gIGxldCBvX3N1Yl9kdXJfZHVyID0gRGF0ZXNfY2FsYy5EYXRlcy5zdWJfcGVyaW9kc1xuICBsZXQgb19tdWx0X2ludF9pbnQgaTEgaTIgPSBaLm11bCBpMSBpMlxuICBsZXQgb19tdWx0X3JhdF9yYXQgaTEgaTIgPSBRLm11bCBpMSBpMlxuXG4gIGxldCBvX211bHRfbW9uX3JhdCBpMSBpMiA9XG4gICAgbGV0IGkxX2FicyA9IFouYWJzIGkxIGluXG4gICAgbGV0IGkyX2FicyA9IFEuYWJzIGkyIGluXG4gICAgbGV0IHNpZ25faW50ID0gWi5zaWduIGkxICogUS5zaWduIGkyIGluXG4gICAgbGV0IHJhdF9yZXN1bHQgPSBRLm11bCAoUS5vZl9iaWdpbnQgaTFfYWJzKSBpMl9hYnMgaW5cbiAgICBsZXQgcmVzLCByZW1haW5kZXIgPSBaLmRpdl9yZW0gKFEubnVtIHJhdF9yZXN1bHQpIChRLmRlbiByYXRfcmVzdWx0KSBpblxuICAgICgqIHdlIHBlcmZvcm0gbmVhcmVzdCByb3VuZGluZyB3aGVuIG11bHRpcGx5aW5nIGFuIGFtb3VudCBvZiBtb25leSBieSBhXG4gICAgICAgZGVjaW1hbCAhKilcbiAgICBpZiBaLihvZl9pbnQgMiAqIHJlbWFpbmRlciA+PSBRLmRlbiByYXRfcmVzdWx0KSB0aGVuXG4gICAgICBaLihhZGQgcmVzIChvZl9pbnQgMSkgKiBvZl9pbnQgc2lnbl9pbnQpXG4gICAgZWxzZSBaLihyZXMgKiBvZl9pbnQgc2lnbl9pbnQpXG5cbiAgbGV0IG9fbXVsdF9kdXJfaW50IGQgbSA9IERhdGVzX2NhbGMuRGF0ZXMubXVsX3BlcmlvZCBkIChaLnRvX2ludCBtKVxuXG4gIGxldCBvX2Rpdl9pbnRfaW50IGkxIGkyID1cbiAgICAoKiBJdCdzIG5vdCBvbiB0aGUgb2NhbWxkb2MsIGJ1dCBRLmRpdiBsaWtlbHkgYWxyZWFkeSByYWlzZXMgdGhpcyA/ICopXG4gICAgaWYgWi56ZXJvID0gaTIgdGhlbiByYWlzZSBEaXZpc2lvbl9ieV96ZXJvXG4gICAgZWxzZSBRLmRpdiAoUS5vZl9iaWdpbnQgaTEpIChRLm9mX2JpZ2ludCBpMilcblxuICBsZXQgb19kaXZfcmF0X3JhdCBpMSBpMiA9XG4gICAgaWYgUS56ZXJvID0gaTIgdGhlbiByYWlzZSBEaXZpc2lvbl9ieV96ZXJvIGVsc2UgUS5kaXYgaTEgaTJcblxuICBsZXQgb19kaXZfbW9uX21vbiBtMSBtMiA9XG4gICAgaWYgWi56ZXJvID0gbTIgdGhlbiByYWlzZSBEaXZpc2lvbl9ieV96ZXJvXG4gICAgZWxzZSBRLmRpdiAoUS5vZl9iaWdpbnQgbTEpIChRLm9mX2JpZ2ludCBtMilcblxuICBsZXQgb19kaXZfbW9uX3JhdCBtMSByMSA9XG4gICAgaWYgUS56ZXJvID0gcjEgdGhlbiByYWlzZSBEaXZpc2lvbl9ieV96ZXJvIGVsc2Ugb19tdWx0X21vbl9yYXQgbTEgKFEuaW52IHIxKVxuXG4gIGxldCBvX2Rpdl9kdXJfZHVyIGQxIGQyID1cbiAgICBsZXQgaTEsIGkyID1cbiAgICAgIHRyeVxuICAgICAgICAoIGludGVnZXJfb2ZfaW50IChEYXRlc19jYWxjLkRhdGVzLnBlcmlvZF90b19kYXlzIGQxKSxcbiAgICAgICAgICBpbnRlZ2VyX29mX2ludCAoRGF0ZXNfY2FsYy5EYXRlcy5wZXJpb2RfdG9fZGF5cyBkMikgKVxuICAgICAgd2l0aCBEYXRlc19jYWxjLkRhdGVzLkFtYmlndW91c0NvbXB1dGF0aW9uIC0+IHJhaXNlIEluZGl2aXNpYmxlRHVyYXRpb25zXG4gICAgaW5cbiAgICBvX2Rpdl9pbnRfaW50IGkxIGkyXG5cbiAgbGV0IG9fbHRfaW50X2ludCBpMSBpMiA9IFouY29tcGFyZSBpMSBpMiA8IDBcbiAgbGV0IG9fbHRfcmF0X3JhdCBpMSBpMiA9IFEuY29tcGFyZSBpMSBpMiA8IDBcbiAgbGV0IG9fbHRfbW9uX21vbiBtMSBtMiA9IFouY29tcGFyZSBtMSBtMiA8IDBcbiAgbGV0IG9fbHRfZHVyX2R1ciBkMSBkMiA9IGNvbXBhcmVfcGVyaW9kcyBkMSBkMiA8IDBcbiAgbGV0IG9fbHRfZGF0X2RhdCBkMSBkMiA9IERhdGVzX2NhbGMuRGF0ZXMuY29tcGFyZV9kYXRlcyBkMSBkMiA8IDBcbiAgbGV0IG9fbHRlX2ludF9pbnQgaTEgaTIgPSBaLmNvbXBhcmUgaTEgaTIgPD0gMFxuICBsZXQgb19sdGVfcmF0X3JhdCBpMSBpMiA9IFEuY29tcGFyZSBpMSBpMiA8PSAwXG4gIGxldCBvX2x0ZV9tb25fbW9uIG0xIG0yID0gWi5jb21wYXJlIG0xIG0yIDw9IDBcbiAgbGV0IG9fbHRlX2R1cl9kdXIgZDEgZDIgPSBjb21wYXJlX3BlcmlvZHMgZDEgZDIgPD0gMFxuICBsZXQgb19sdGVfZGF0X2RhdCBkMSBkMiA9IERhdGVzX2NhbGMuRGF0ZXMuY29tcGFyZV9kYXRlcyBkMSBkMiA8PSAwXG4gIGxldCBvX2d0X2ludF9pbnQgaTEgaTIgPSBaLmNvbXBhcmUgaTEgaTIgPiAwXG4gIGxldCBvX2d0X3JhdF9yYXQgaTEgaTIgPSBRLmNvbXBhcmUgaTEgaTIgPiAwXG4gIGxldCBvX2d0X21vbl9tb24gbTEgbTIgPSBaLmNvbXBhcmUgbTEgbTIgPiAwXG4gIGxldCBvX2d0X2R1cl9kdXIgZDEgZDIgPSBjb21wYXJlX3BlcmlvZHMgZDEgZDIgPiAwXG4gIGxldCBvX2d0X2RhdF9kYXQgZDEgZDIgPSBEYXRlc19jYWxjLkRhdGVzLmNvbXBhcmVfZGF0ZXMgZDEgZDIgPiAwXG4gIGxldCBvX2d0ZV9pbnRfaW50IGkxIGkyID0gWi5jb21wYXJlIGkxIGkyID49IDBcbiAgbGV0IG9fZ3RlX3JhdF9yYXQgaTEgaTIgPSBRLmNvbXBhcmUgaTEgaTIgPj0gMFxuICBsZXQgb19ndGVfbW9uX21vbiBtMSBtMiA9IFouY29tcGFyZSBtMSBtMiA+PSAwXG4gIGxldCBvX2d0ZV9kdXJfZHVyIGQxIGQyID0gY29tcGFyZV9wZXJpb2RzIGQxIGQyID49IDBcbiAgbGV0IG9fZ3RlX2RhdF9kYXQgZDEgZDIgPSBEYXRlc19jYWxjLkRhdGVzLmNvbXBhcmVfZGF0ZXMgZDEgZDIgPj0gMFxuICBsZXQgb19lcV9pbnRfaW50IGkxIGkyID0gWi5lcXVhbCBpMSBpMlxuICBsZXQgb19lcV9yYXRfcmF0IGkxIGkyID0gUS5lcXVhbCBpMSBpMlxuICBsZXQgb19lcV9tb25fbW9uIG0xIG0yID0gWi5lcXVhbCBtMSBtMlxuICBsZXQgb19lcV9kdXJfZHVyIGQxIGQyID0gZXF1YWxfcGVyaW9kcyBkMSBkMlxuICBsZXQgb19lcV9kYXRfZGF0IGQxIGQyID0gRGF0ZXNfY2FsYy5EYXRlcy5jb21wYXJlX2RhdGVzIGQxIGQyID0gMFxuICBsZXQgb19mb2xkID0gQXJyYXkuZm9sZF9sZWZ0XG5lbmRcblxuaW5jbHVkZSBPcGVyXG4iLCIoKiBnZW5lcmF0ZWQgYnkgZHVuZSAqKVxuXG4oKiogQGNhbm9uaWNhbCBKc29vX3J1bnRpbWUuUnVudGltZV92ZXJzaW9uICopXG5tb2R1bGUgUnVudGltZV92ZXJzaW9uID0gSnNvb19ydW50aW1lX19SdW50aW1lX3ZlcnNpb25cblxubW9kdWxlIEpzb29fcnVudGltZV9fID0gc3RydWN0IGVuZFxuW0BAZGVwcmVjYXRlZCBcInRoaXMgbW9kdWxlIGlzIHNoYWRvd2VkXCJdXG4iLCJtb2R1bGUgSnMgPSBzdHJ1Y3RcbiAgdHlwZSB0XG5cbiAgdHlwZSAnYSBqc19hcnJheSA9IHRcblxuICB0eXBlICgnYSwgJ2IpIG1ldGhfY2FsbGJhY2sgPSB0XG5cbiAgZXh0ZXJuYWwgc3RyaW5nIDogc3RyaW5nIC0+IHQgPSBcImNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXCJcblxuICBleHRlcm5hbCB0b19zdHJpbmcgOiB0IC0+IHN0cmluZyA9IFwiY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcIlxuXG4gIGV4dGVybmFsIGJ5dGVzdHJpbmcgOiBzdHJpbmcgLT4gdCA9IFwiY2FtbF9qc2J5dGVzX29mX3N0cmluZ1wiXG5cbiAgZXh0ZXJuYWwgdG9fYnl0ZXN0cmluZyA6IHQgLT4gc3RyaW5nID0gXCJjYW1sX3N0cmluZ19vZl9qc2J5dGVzXCJcblxuICBleHRlcm5hbCBib29sIDogYm9vbCAtPiB0ID0gXCJjYW1sX2pzX2Zyb21fYm9vbFwiXG5cbiAgZXh0ZXJuYWwgdG9fYm9vbCA6IHQgLT4gYm9vbCA9IFwiY2FtbF9qc190b19ib29sXCJcblxuICBleHRlcm5hbCBhcnJheSA6ICdhIGFycmF5IC0+IHQgPSBcImNhbWxfanNfZnJvbV9hcnJheVwiXG5cbiAgZXh0ZXJuYWwgdG9fYXJyYXkgOiB0IC0+ICdhIGFycmF5ID0gXCJjYW1sX2pzX3RvX2FycmF5XCJcblxuICBleHRlcm5hbCBudW1iZXJfb2ZfZmxvYXQgOiBmbG9hdCAtPiB0ID0gXCJjYW1sX2pzX2Zyb21fZmxvYXRcIlxuXG4gIGV4dGVybmFsIGZsb2F0X29mX251bWJlciA6IHQgLT4gZmxvYXQgPSBcImNhbWxfanNfdG9fZmxvYXRcIlxuXG4gIGV4dGVybmFsIHR5cGVvZiA6IHQgLT4gdCA9IFwiY2FtbF9qc190eXBlb2ZcIlxuXG4gIGV4dGVybmFsIGluc3RhbmNlb2YgOiB0IC0+IHQgLT4gYm9vbCA9IFwiY2FtbF9qc19pbnN0YW5jZW9mXCJcblxuICBleHRlcm5hbCBkZWJ1Z2dlciA6IHVuaXQgLT4gdW5pdCA9IFwiZGVidWdnZXJcIlxuXG4gIGV4dGVybmFsIGdldCA6IHQgLT4gdCAtPiB0ID0gXCJjYW1sX2pzX2dldFwiXG5cbiAgZXh0ZXJuYWwgc2V0IDogdCAtPiB0IC0+IHQgLT4gdW5pdCA9IFwiY2FtbF9qc19zZXRcIlxuXG4gIGV4dGVybmFsIGRlbGV0ZSA6IHQgLT4gdCAtPiB1bml0ID0gXCJjYW1sX2pzX2RlbGV0ZVwiXG5cbiAgZXh0ZXJuYWwgY2FsbCA6IHQgLT4gdCAtPiB0IGFycmF5IC0+IHQgPSBcImNhbWxfanNfY2FsbFwiXG5cbiAgZXh0ZXJuYWwgZnVuX2NhbGwgOiB0IC0+IHQgYXJyYXkgLT4gdCA9IFwiY2FtbF9qc19mdW5fY2FsbFwiXG5cbiAgZXh0ZXJuYWwgbWV0aF9jYWxsIDogdCAtPiBzdHJpbmcgLT4gdCBhcnJheSAtPiB0ID0gXCJjYW1sX2pzX21ldGhfY2FsbFwiXG5cbiAgZXh0ZXJuYWwgbmV3X29iaiA6IHQgLT4gdCBhcnJheSAtPiB0ID0gXCJjYW1sX2pzX25ld1wiXG5cbiAgZXh0ZXJuYWwgbmV3X29ial9hcnIgOiB0IC0+IHQganNfYXJyYXkgLT4gdCA9IFwiY2FtbF9vanNfbmV3X2FyclwiXG5cbiAgZXh0ZXJuYWwgb2JqIDogKHN0cmluZyAqIHQpIGFycmF5IC0+IHQgPSBcImNhbWxfanNfb2JqZWN0XCJcblxuICBleHRlcm5hbCBlcXVhbHMgOiB0IC0+IHQgLT4gYm9vbCA9IFwiY2FtbF9qc19lcXVhbHNcIlxuXG4gIGV4dGVybmFsIHB1cmVfZXhwciA6ICh1bml0IC0+ICdhKSAtPiAnYSA9IFwiY2FtbF9qc19wdXJlX2V4cHJcIlxuXG4gIGV4dGVybmFsIGV2YWxfc3RyaW5nIDogc3RyaW5nIC0+ICdhID0gXCJjYW1sX2pzX2V2YWxfc3RyaW5nXCJcblxuICBleHRlcm5hbCBqc19leHByIDogc3RyaW5nIC0+ICdhID0gXCJjYW1sX2pzX2V4cHJcIlxuXG4gIGV4dGVybmFsIHB1cmVfanNfZXhwciA6IHN0cmluZyAtPiAnYSA9IFwiY2FtbF9wdXJlX2pzX2V4cHJcIlxuXG4gIGV4dGVybmFsIGNhbGxiYWNrIDogKCdiIC0+ICdhKSAtPiAoJ2IsICdhKSBtZXRoX2NhbGxiYWNrXG4gICAgPSBcImNhbWxfanNfd3JhcF9jYWxsYmFja191bnNhZmVcIlxuXG4gIGV4dGVybmFsIGNhbGxiYWNrX3dpdGhfYXJndW1lbnRzIDpcbiAgICAodCBqc19hcnJheSAtPiAnYikgLT4gKCdjLCB0IGpzX2FycmF5IC0+ICdiKSBtZXRoX2NhbGxiYWNrXG4gICAgPSBcImNhbWxfanNfd3JhcF9jYWxsYmFja19hcmd1bWVudHNcIlxuXG4gIGV4dGVybmFsIGNhbGxiYWNrX3dpdGhfYXJpdHkgOiBpbnQgLT4gKCdhIC0+ICdiKSAtPiAoJ2MsICdhIC0+ICdiKSBtZXRoX2NhbGxiYWNrXG4gICAgPSBcImNhbWxfanNfd3JhcF9jYWxsYmFja19zdHJpY3RcIlxuXG4gIGV4dGVybmFsIG1ldGhfY2FsbGJhY2sgOiAoJ2IgLT4gJ2EpIC0+ICgnYiwgJ2EpIG1ldGhfY2FsbGJhY2tcbiAgICA9IFwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfdW5zYWZlXCJcblxuICBleHRlcm5hbCBtZXRoX2NhbGxiYWNrX3dpdGhfYXJpdHkgOiBpbnQgLT4gKCdiIC0+ICdhKSAtPiAoJ2IsICdhKSBtZXRoX2NhbGxiYWNrXG4gICAgPSBcImNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX3N0cmljdFwiXG5cbiAgZXh0ZXJuYWwgbWV0aF9jYWxsYmFja193aXRoX2FyZ3VtZW50cyA6XG4gICAgKCdiIC0+IHQganNfYXJyYXkgLT4gJ2EpIC0+ICgnYiwgdCBqc19hcnJheSAtPiAnYSkgbWV0aF9jYWxsYmFja1xuICAgID0gXCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja19hcmd1bWVudHNcIlxuXG4gIGV4dGVybmFsIHdyYXBfY2FsbGJhY2sgOiAoJ2EgLT4gJ2IpIC0+ICgnYywgJ2EgLT4gJ2IpIG1ldGhfY2FsbGJhY2tcbiAgICA9IFwiY2FtbF9qc193cmFwX2NhbGxiYWNrXCJcblxuICBleHRlcm5hbCB3cmFwX21ldGhfY2FsbGJhY2sgOiAoJ2EgLT4gJ2IpIC0+ICgnYSwgJ2IpIG1ldGhfY2FsbGJhY2tcbiAgICA9IFwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tcIlxuZW5kXG5cbm1vZHVsZSBTeXMgPSBzdHJ1Y3RcbiAgdHlwZSAnYSBjYWxsYmFjayA9ICdhXG5cbiAgZXh0ZXJuYWwgY3JlYXRlX2ZpbGUgOiBuYW1lOnN0cmluZyAtPiBjb250ZW50OnN0cmluZyAtPiB1bml0ID0gXCJjYW1sX2NyZWF0ZV9maWxlXCJcblxuICBleHRlcm5hbCByZWFkX2ZpbGUgOiBuYW1lOnN0cmluZyAtPiBzdHJpbmcgPSBcImNhbWxfcmVhZF9maWxlX2NvbnRlbnRcIlxuXG4gIGV4dGVybmFsIHNldF9jaGFubmVsX291dHB1dCcgOiBvdXRfY2hhbm5lbCAtPiAoanNfc3RyaW5nOkpzLnQgLT4gdW5pdCkgY2FsbGJhY2sgLT4gdW5pdFxuICAgID0gXCJjYW1sX21sX3NldF9jaGFubmVsX291dHB1dFwiXG5cbiAgZXh0ZXJuYWwgc2V0X2NoYW5uZWxfaW5wdXQnIDogaW5fY2hhbm5lbCAtPiAodW5pdCAtPiBzdHJpbmcpIGNhbGxiYWNrIC0+IHVuaXRcbiAgICA9IFwiY2FtbF9tbF9zZXRfY2hhbm5lbF9yZWZpbGxcIlxuXG4gIGV4dGVybmFsIG1vdW50X3BvaW50IDogdW5pdCAtPiBzdHJpbmcgbGlzdCA9IFwiY2FtbF9saXN0X21vdW50X3BvaW50XCJcblxuICBleHRlcm5hbCBtb3VudF9hdXRvbG9hZCA6IHN0cmluZyAtPiAoc3RyaW5nIC0+IHN0cmluZyAtPiBzdHJpbmcgb3B0aW9uKSBjYWxsYmFjayAtPiB1bml0XG4gICAgPSBcImNhbWxfbW91bnRfYXV0b2xvYWRcIlxuXG4gIGV4dGVybmFsIHVubW91bnQgOiBzdHJpbmcgLT4gdW5pdCA9IFwiY2FtbF91bm1vdW50XCJcblxuICBtb2R1bGUgQ29uZmlnID0gc3RydWN0XG4gICAgZXh0ZXJuYWwgdXNlX2pzX3N0cmluZyA6IHVuaXQgLT4gYm9vbCA9IFwiY2FtbF9qc29vX2ZsYWdzX3VzZV9qc19zdHJpbmdcIlxuXG4gICAgZXh0ZXJuYWwgZWZmZWN0cyA6IHVuaXQgLT4gYm9vbCA9IFwiY2FtbF9qc29vX2ZsYWdzX2VmZmVjdHNcIlxuICBlbmRcblxuICBsZXQgdmVyc2lvbiA9IFJ1bnRpbWVfdmVyc2lvbi5zXG5cbiAgbGV0IGdpdF92ZXJzaW9uID0gUnVudGltZV92ZXJzaW9uLmdpdF92ZXJzaW9uXG5lbmRcblxubW9kdWxlIEVycm9yIDogc2lnXG4gIHR5cGUgdFxuXG4gIHZhbCByYWlzZV8gOiB0IC0+ICdhXG5cbiAgdmFsIGF0dGFjaF9qc19iYWNrdHJhY2UgOiBleG4gLT4gZm9yY2U6Ym9vbCAtPiBleG5cbiAgKCoqIEF0dGFjaCBhIEphdmFzU2NyaXB0IGVycm9yIHRvIGFuIE9DYW1sIGV4Y2VwdGlvbi4gIGlmIFtmb3JjZSA9IGZhbHNlXSBhbmQgYVxuICAgIEphdmFzU2NyaXB0IGVycm9yIGlzIGFscmVhZHkgYXR0YWNoZWQsIGl0IHdpbGwgZG8gbm90aGluZy4gVGhpcyBmdW5jdGlvbiBpcyB1c2VmdWwgdG9cbiAgICBzdG9yZSBhbmQgcmV0cmlldmUgaW5mb3JtYXRpb24gYWJvdXQgSmF2YVNjcmlwdCBzdGFjayB0cmFjZXMuXG5cbiAgICBBdHRhY2hpbmcgSmF2YXNTY3JpcHQgZXJyb3JzIHdpbGwgaGFwcGVuIGF1dG9tYXRpY2FsbHkgd2hlbiBjb21waWxpbmcgd2l0aFxuICAgIFstLWVuYWJsZSB3aXRoLWpzLWVycm9yXS4gKilcblxuICB2YWwgb2ZfZXhuIDogZXhuIC0+IHQgb3B0aW9uXG4gICgqKiBFeHRyYWN0IGEgSmF2YVNjcmlwdCBlcnJvciBhdHRhY2hlZCB0byBhbiBPQ2FtbCBleGNlcHRpb24sIGlmIGFueS4gIFRoaXMgaXMgdXNlZnVsIHRvXG4gICAgICBpbnNwZWN0IGFuIGV2ZW50dWFsIHN0YWNrIHN0cmFjZSwgZXNwZWNpYWxseSB3aGVuIHNvdXJjZW1hcCBpcyBlbmFibGVkLiAqKVxuXG4gIGV4Y2VwdGlvbiBFeG4gb2YgdFxuICAoKiogVGhlIFtFcnJvcl0gZXhjZXB0aW9uIHdyYXAgamF2YXNjcmlwdCBleGNlcHRpb25zIHdoZW4gY2F1Z2h0IGJ5IE9DYW1sIGNvZGUuXG4gICAgICBJbiBjYXNlIHRoZSBqYXZhc2NyaXB0IGV4Y2VwdGlvbiBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgamF2YXNjcmlwdCBbRXJyb3JdLFxuICAgICAgaXQgd2lsbCBiZSBzZXJpYWxpemVkIGFuZCB3cmFwcGVkIGludG8gYSBbRmFpbHVyZV0gZXhjZXB0aW9uLlxuICAqKVxuZW5kID0gc3RydWN0XG4gIHR5cGUgdFxuXG4gIGV4Y2VwdGlvbiBFeG4gb2YgdFxuXG4gIGxldCBfID0gQ2FsbGJhY2sucmVnaXN0ZXJfZXhjZXB0aW9uIFwianNFcnJvclwiIChFeG4gKE9iai5tYWdpYyBbfHxdKSlcblxuICBsZXQgcmFpc2VfIDogdCAtPiAnYSA9IEpzLmpzX2V4cHIgXCIoZnVuY3Rpb24gKGV4bikgeyB0aHJvdyBleG4gfSlcIlxuXG4gIGV4dGVybmFsIG9mX2V4biA6IGV4biAtPiB0IG9wdGlvbiA9IFwiY2FtbF9qc19lcnJvcl9vcHRpb25fb2ZfZXhjZXB0aW9uXCJcblxuICBleHRlcm5hbCBhdHRhY2hfanNfYmFja3RyYWNlIDogZXhuIC0+IGZvcmNlOmJvb2wgLT4gZXhuID0gXCJjYW1sX2V4bl93aXRoX2pzX2JhY2t0cmFjZVwiXG5lbmRcblxuW0BAQG9jYW1sLndhcm5pbmcgXCItMzItNjBcIl1cblxubW9kdWxlIEZvcl9jb21wYXRpYmlsaXR5X29ubHkgPSBzdHJ1Y3RcbiAgKCogQWRkIHByaW1pdGl2ZXMgZm9yIGNvbXBhdGliaWxpdHkgcmVhc29ucy4gRXhpc3RpbmcgdXNlcnMgbWlnaHRcbiAgICAgZGVwZW5kIG9uIGl0IChlLmcuIGdlbl9qc19hcGkpLCB3ZSBkb250IHdhbnQgdGhlIG9jYW1sIGNvbXBpbGVyXG4gICAgIHRvIGNvbXBsYWluIGFib3V0IHRoZXNlcyBtaXNzaW5nIHByaW1pdGl2ZXMuICopXG5cbiAgZXh0ZXJuYWwgY2FtbF9qc19mcm9tX3N0cmluZyA6IHN0cmluZyAtPiBKcy50ID0gXCJjYW1sX2pzX2Zyb21fc3RyaW5nXCJcblxuICBleHRlcm5hbCBjYW1sX2pzX3RvX2J5dGVfc3RyaW5nIDogSnMudCAtPiBzdHJpbmcgPSBcImNhbWxfanNfdG9fYnl0ZV9zdHJpbmdcIlxuXG4gIGV4dGVybmFsIGNhbWxfanNfdG9fc3RyaW5nIDogSnMudCAtPiBzdHJpbmcgPSBcImNhbWxfanNfdG9fc3RyaW5nXCJcblxuICBleHRlcm5hbCBjYW1sX2xpc3Rfb2ZfanNfYXJyYXkgOiAnYSBKcy5qc19hcnJheSAtPiAnYSBsaXN0ID0gXCJjYW1sX2xpc3Rfb2ZfanNfYXJyYXlcIlxuXG4gIGV4dGVybmFsIGNhbWxfbGlzdF90b19qc19hcnJheSA6ICdhIGxpc3QgLT4gJ2EgSnMuanNfYXJyYXkgPSBcImNhbWxfbGlzdF90b19qc19hcnJheVwiXG5cbiAgZXh0ZXJuYWwgdmFyaWFibGUgOiBzdHJpbmcgLT4gJ2EgPSBcImNhbWxfanNfdmFyXCJcbmVuZFxuXG5tb2R1bGUgVHlwZWRfYXJyYXkgPSBzdHJ1Y3RcbiAgdHlwZSAoJ2EsICdiKSB0eXBlZEFycmF5ID0gSnMudFxuXG4gIHR5cGUgYXJyYXlCdWZmZXIgPSBKcy50XG5cbiAgdHlwZSB1aW50OEFycmF5ID0gSnMudFxuXG4gIGV4dGVybmFsIGtpbmQgOiAoJ2EsICdiKSB0eXBlZEFycmF5IC0+ICgnYSwgJ2IpIEJpZ2FycmF5LmtpbmRcbiAgICA9IFwiY2FtbF9iYV9raW5kX29mX3R5cGVkX2FycmF5XCJcblxuICBleHRlcm5hbCBmcm9tX2dlbmFycmF5IDpcbiAgICAoJ2EsICdiLCBCaWdhcnJheS5jX2xheW91dCkgQmlnYXJyYXkuR2VuYXJyYXkudCAtPiAoJ2EsICdiKSB0eXBlZEFycmF5XG4gICAgPSBcImNhbWxfYmFfdG9fdHlwZWRfYXJyYXlcIlxuXG4gIGV4dGVybmFsIHRvX2dlbmFycmF5IDpcbiAgICAoJ2EsICdiKSB0eXBlZEFycmF5IC0+ICgnYSwgJ2IsIEJpZ2FycmF5LmNfbGF5b3V0KSBCaWdhcnJheS5HZW5hcnJheS50XG4gICAgPSBcImNhbWxfYmFfZnJvbV90eXBlZF9hcnJheVwiXG5cbiAgbW9kdWxlIEJpZ3N0cmluZyA9IHN0cnVjdFxuICAgIHR5cGUgdCA9IChjaGFyLCBCaWdhcnJheS5pbnQ4X3Vuc2lnbmVkX2VsdCwgQmlnYXJyYXkuY19sYXlvdXQpIEJpZ2FycmF5LkFycmF5MS50XG5cbiAgICBleHRlcm5hbCB0b19hcnJheUJ1ZmZlciA6IHQgLT4gYXJyYXlCdWZmZXIgPSBcImJpZ3N0cmluZ190b19hcnJheV9idWZmZXJcIlxuXG4gICAgZXh0ZXJuYWwgdG9fdWludDhBcnJheSA6IHQgLT4gdWludDhBcnJheSA9IFwiYmlnc3RyaW5nX3RvX3R5cGVkX2FycmF5XCJcblxuICAgIGV4dGVybmFsIG9mX2FycmF5QnVmZmVyIDogYXJyYXlCdWZmZXIgLT4gdCA9IFwiYmlnc3RyaW5nX29mX2FycmF5X2J1ZmZlclwiXG5cbiAgICBleHRlcm5hbCBvZl91aW50OEFycmF5IDogdWludDhBcnJheSAtPiB0ID0gXCJiaWdzdHJpbmdfb2ZfdHlwZWRfYXJyYXlcIlxuICBlbmRcblxuICBleHRlcm5hbCBvZl91aW50OEFycmF5IDogdWludDhBcnJheSAtPiBzdHJpbmcgPSBcImNhbWxfc3RyaW5nX29mX2FycmF5XCJcbmVuZFxuXG5tb2R1bGUgSW50NjQgPSBzdHJ1Y3RcbiAgZXh0ZXJuYWwgY3JlYXRlX2ludDY0X2xvX21pX2hpIDogaW50IC0+IGludCAtPiBpbnQgLT4gSW50NjQudFxuICAgID0gXCJjYW1sX2ludDY0X2NyZWF0ZV9sb19taV9oaVwiXG5lbmRcbiIsIigqIGdlbmVyYXRlZCBieSBkdW5lICopXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLkNTUyAqKVxubW9kdWxlIENTUyA9IEpzX29mX29jYW1sX19DU1NcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuRG9tICopXG5tb2R1bGUgRG9tID0gSnNfb2Zfb2NhbWxfX0RvbVxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5Eb21fZXZlbnRzICopXG5tb2R1bGUgRG9tX2V2ZW50cyA9IEpzX29mX29jYW1sX19Eb21fZXZlbnRzXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLkRvbV9odG1sICopXG5tb2R1bGUgRG9tX2h0bWwgPSBKc19vZl9vY2FtbF9fRG9tX2h0bWxcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuRG9tX3N2ZyAqKVxubW9kdWxlIERvbV9zdmcgPSBKc19vZl9vY2FtbF9fRG9tX3N2Z1xuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5FdmVudFNvdXJjZSAqKVxubW9kdWxlIEV2ZW50U291cmNlID0gSnNfb2Zfb2NhbWxfX0V2ZW50U291cmNlXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLkZpbGUgKilcbm1vZHVsZSBGaWxlID0gSnNfb2Zfb2NhbWxfX0ZpbGVcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuRmlyZWJ1ZyAqKVxubW9kdWxlIEZpcmVidWcgPSBKc19vZl9vY2FtbF9fRmlyZWJ1Z1xuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5Gb3JtICopXG5tb2R1bGUgRm9ybSA9IEpzX29mX29jYW1sX19Gb3JtXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLkdlb2xvY2F0aW9uICopXG5tb2R1bGUgR2VvbG9jYXRpb24gPSBKc19vZl9vY2FtbF9fR2VvbG9jYXRpb25cblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuSW1wb3J0ICopXG5tb2R1bGUgSW1wb3J0ID0gSnNfb2Zfb2NhbWxfX0ltcG9ydFxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5JbnRlcnNlY3Rpb25PYnNlcnZlciAqKVxubW9kdWxlIEludGVyc2VjdGlvbk9ic2VydmVyID0gSnNfb2Zfb2NhbWxfX0ludGVyc2VjdGlvbk9ic2VydmVyXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLkludGwgKilcbm1vZHVsZSBJbnRsID0gSnNfb2Zfb2NhbWxfX0ludGxcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuSnMgKilcbm1vZHVsZSBKcyA9IEpzX29mX29jYW1sX19Kc1xuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5Kc29uICopXG5tb2R1bGUgSnNvbiA9IEpzX29mX29jYW1sX19Kc29uXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLkpzdGFibGUgKilcbm1vZHVsZSBKc3RhYmxlID0gSnNfb2Zfb2NhbWxfX0pzdGFibGVcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuTGliX3ZlcnNpb24gKilcbm1vZHVsZSBMaWJfdmVyc2lvbiA9IEpzX29mX29jYW1sX19MaWJfdmVyc2lvblxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5NdXRhdGlvbk9ic2VydmVyICopXG5tb2R1bGUgTXV0YXRpb25PYnNlcnZlciA9IEpzX29mX29jYW1sX19NdXRhdGlvbk9ic2VydmVyXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLlBlcmZvcm1hbmNlT2JzZXJ2ZXIgKilcbm1vZHVsZSBQZXJmb3JtYW5jZU9ic2VydmVyID0gSnNfb2Zfb2NhbWxfX1BlcmZvcm1hbmNlT2JzZXJ2ZXJcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuUmVnZXhwICopXG5tb2R1bGUgUmVnZXhwID0gSnNfb2Zfb2NhbWxfX1JlZ2V4cFxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5SZXNpemVPYnNlcnZlciAqKVxubW9kdWxlIFJlc2l6ZU9ic2VydmVyID0gSnNfb2Zfb2NhbWxfX1Jlc2l6ZU9ic2VydmVyXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLlN5c19qcyAqKVxubW9kdWxlIFN5c19qcyA9IEpzX29mX29jYW1sX19TeXNfanNcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuVHlwZWRfYXJyYXkgKilcbm1vZHVsZSBUeXBlZF9hcnJheSA9IEpzX29mX29jYW1sX19UeXBlZF9hcnJheVxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5VcmwgKilcbm1vZHVsZSBVcmwgPSBKc19vZl9vY2FtbF9fVXJsXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLldlYkdMICopXG5tb2R1bGUgV2ViR0wgPSBKc19vZl9vY2FtbF9fV2ViR0xcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuV2ViU29ja2V0cyAqKVxubW9kdWxlIFdlYlNvY2tldHMgPSBKc19vZl9vY2FtbF9fV2ViU29ja2V0c1xuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5Xb3JrZXIgKilcbm1vZHVsZSBXb3JrZXIgPSBKc19vZl9vY2FtbF9fV29ya2VyXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLlhtbEh0dHBSZXF1ZXN0ICopXG5tb2R1bGUgWG1sSHR0cFJlcXVlc3QgPSBKc19vZl9vY2FtbF9fWG1sSHR0cFJlcXVlc3RcblxubW9kdWxlIEpzX29mX29jYW1sX18gPSBzdHJ1Y3QgZW5kXG5bQEBkZXByZWNhdGVkIFwidGhpcyBtb2R1bGUgaXMgc2hhZG93ZWRcIl1cbiIsIigqIEpzX29mX29jYW1sXG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxuXG5tb2R1bGUgUG9seSA9IHN0cnVjdFxuICBleHRlcm5hbCAoIDwgKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVsZXNzdGhhblwiXG5cbiAgZXh0ZXJuYWwgKCA8PSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWxlc3NlcXVhbFwiXG5cbiAgZXh0ZXJuYWwgKCA8PiApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJW5vdGVxdWFsXCJcblxuICBleHRlcm5hbCAoID0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVlcXVhbFwiXG5cbiAgZXh0ZXJuYWwgKCA+ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZ3JlYXRlcnRoYW5cIlxuXG4gIGV4dGVybmFsICggPj0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVncmVhdGVyZXF1YWxcIlxuXG4gIGV4dGVybmFsIGNvbXBhcmUgOiAnYSAtPiAnYSAtPiBpbnQgPSBcIiVjb21wYXJlXCJcblxuICBleHRlcm5hbCBlcXVhbCA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVlcXVhbFwiXG5lbmRcblxubW9kdWxlIEludF9yZXBsYWNlX3BvbHltb3JwaGljX2NvbXBhcmUgPSBzdHJ1Y3RcbiAgZXh0ZXJuYWwgKCA8ICkgOiBpbnQgLT4gaW50IC0+IGJvb2wgPSBcIiVsZXNzdGhhblwiXG5cbiAgZXh0ZXJuYWwgKCA8PSApIDogaW50IC0+IGludCAtPiBib29sID0gXCIlbGVzc2VxdWFsXCJcblxuICBleHRlcm5hbCAoIDw+ICkgOiBpbnQgLT4gaW50IC0+IGJvb2wgPSBcIiVub3RlcXVhbFwiXG5cbiAgZXh0ZXJuYWwgKCA9ICkgOiBpbnQgLT4gaW50IC0+IGJvb2wgPSBcIiVlcXVhbFwiXG5cbiAgZXh0ZXJuYWwgKCA+ICkgOiBpbnQgLT4gaW50IC0+IGJvb2wgPSBcIiVncmVhdGVydGhhblwiXG5cbiAgZXh0ZXJuYWwgKCA+PSApIDogaW50IC0+IGludCAtPiBib29sID0gXCIlZ3JlYXRlcmVxdWFsXCJcblxuICBleHRlcm5hbCBjb21wYXJlIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVjb21wYXJlXCJcblxuICBleHRlcm5hbCBlcXVhbCA6IGludCAtPiBpbnQgLT4gYm9vbCA9IFwiJWVxdWFsXCJcblxuICBsZXQgbWF4ICh4IDogaW50KSB5ID0gaWYgeCA+PSB5IHRoZW4geCBlbHNlIHlcblxuICBsZXQgbWluICh4IDogaW50KSB5ID0gaWYgeCA8PSB5IHRoZW4geCBlbHNlIHlcbmVuZFxuXG5tb2R1bGUgU3RyaW5nID0gc3RydWN0XG4gIGluY2x1ZGUgU3RyaW5nXG5cbiAgbGV0IGVxdWFsICh4IDogc3RyaW5nKSAoeSA6IHN0cmluZykgPSBQb2x5LmVxdWFsIHggeVxuZW5kXG5cbm1vZHVsZSBDaGFyID0gc3RydWN0XG4gIGluY2x1ZGUgQ2hhclxuXG4gIGxldCBlcXVhbCAoeCA6IGNoYXIpICh5IDogY2hhcikgPSBQb2x5LmVxdWFsIHggeVxuZW5kXG5cbmluY2x1ZGUgSW50X3JlcGxhY2VfcG9seW1vcnBoaWNfY29tcGFyZVxuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuICogTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5vcGVuISBJbXBvcnRcblxuKCogVGhpcyBsb2NhbCBtb2R1bGUgW0pzXSBpcyBuZWVkZWQgc28gdGhhdCB0aGUgcHB4X2pzIGV4dGVuc2lvbiB3b3JrIHdpdGhpbiB0aGF0IGZpbGUuICopXG5tb2R1bGUgSnMgPSBzdHJ1Y3RcbiAgdHlwZSArJ2EgdFxuXG4gIHR5cGUgKC0nYSwgKydiKSBtZXRoX2NhbGxiYWNrXG5cbiAgbW9kdWxlIFVuc2FmZSA9IHN0cnVjdFxuICAgIHR5cGUgdG9wXG5cbiAgICB0eXBlIGFueSA9IHRvcCB0XG5cbiAgICB0eXBlIGFueV9qc19hcnJheSA9IGFueVxuXG4gICAgZXh0ZXJuYWwgaW5qZWN0IDogJ2EgLT4gYW55ID0gXCIlaWRlbnRpdHlcIlxuXG4gICAgZXh0ZXJuYWwgY29lcmNlIDogXyB0IC0+IF8gdCA9IFwiJWlkZW50aXR5XCJcblxuICAgIGV4dGVybmFsIGdldCA6ICdhIC0+ICdiIC0+ICdjID0gXCJjYW1sX2pzX2dldFwiXG5cbiAgICBleHRlcm5hbCBzZXQgOiAnYSAtPiAnYiAtPiAnYyAtPiB1bml0ID0gXCJjYW1sX2pzX3NldFwiXG5cbiAgICBleHRlcm5hbCBkZWxldGUgOiAnYSAtPiAnYiAtPiB1bml0ID0gXCJjYW1sX2pzX2RlbGV0ZVwiXG5cbiAgICBleHRlcm5hbCBjYWxsIDogJ2EgLT4gJ2IgLT4gYW55IGFycmF5IC0+ICdjID0gXCJjYW1sX2pzX2NhbGxcIlxuXG4gICAgZXh0ZXJuYWwgZnVuX2NhbGwgOiAnYSAtPiBhbnkgYXJyYXkgLT4gJ2IgPSBcImNhbWxfanNfZnVuX2NhbGxcIlxuXG4gICAgZXh0ZXJuYWwgbWV0aF9jYWxsIDogJ2EgLT4gc3RyaW5nIC0+IGFueSBhcnJheSAtPiAnYiA9IFwiY2FtbF9qc19tZXRoX2NhbGxcIlxuXG4gICAgZXh0ZXJuYWwgbmV3X29iaiA6ICdhIC0+IGFueSBhcnJheSAtPiAnYiA9IFwiY2FtbF9qc19uZXdcIlxuXG4gICAgZXh0ZXJuYWwgbmV3X29ial9hcnIgOiAnYSAtPiBhbnlfanNfYXJyYXkgLT4gJ2IgPSBcImNhbWxfb2pzX25ld19hcnJcIlxuXG4gICAgZXh0ZXJuYWwgb2JqIDogKHN0cmluZyAqIGFueSkgYXJyYXkgLT4gJ2EgPSBcImNhbWxfanNfb2JqZWN0XCJcblxuICAgIGV4dGVybmFsIGVxdWFscyA6ICdhIC0+ICdiIC0+IGJvb2wgPSBcImNhbWxfanNfZXF1YWxzXCJcblxuICAgIGV4dGVybmFsIHB1cmVfZXhwciA6ICh1bml0IC0+ICdhKSAtPiAnYSA9IFwiY2FtbF9qc19wdXJlX2V4cHJcIlxuXG4gICAgZXh0ZXJuYWwgZXZhbF9zdHJpbmcgOiBzdHJpbmcgLT4gJ2EgPSBcImNhbWxfanNfZXZhbF9zdHJpbmdcIlxuXG4gICAgZXh0ZXJuYWwganNfZXhwciA6IHN0cmluZyAtPiAnYSA9IFwiY2FtbF9qc19leHByXCJcblxuICAgIGV4dGVybmFsIHB1cmVfanNfZXhwciA6IHN0cmluZyAtPiAnYSA9IFwiY2FtbF9wdXJlX2pzX2V4cHJcIlxuXG4gICAgbGV0IGdsb2JhbCA9IHB1cmVfanNfZXhwciBcImdsb2JhbFRoaXNcIlxuXG4gICAgZXh0ZXJuYWwgY2FsbGJhY2sgOiAoJ2EgLT4gJ2IpIC0+ICgnYywgJ2EgLT4gJ2IpIG1ldGhfY2FsbGJhY2tcbiAgICAgID0gXCJjYW1sX2pzX3dyYXBfY2FsbGJhY2tfdW5zYWZlXCJcblxuICAgIGV4dGVybmFsIGNhbGxiYWNrX3dpdGhfYXJndW1lbnRzIDpcbiAgICAgIChhbnlfanNfYXJyYXkgLT4gJ2IpIC0+ICgnYywgYW55X2pzX2FycmF5IC0+ICdiKSBtZXRoX2NhbGxiYWNrXG4gICAgICA9IFwiY2FtbF9qc193cmFwX2NhbGxiYWNrX2FyZ3VtZW50c1wiXG5cbiAgICBleHRlcm5hbCBjYWxsYmFja193aXRoX2FyaXR5IDogaW50IC0+ICgnYSAtPiAnYikgLT4gKCdjLCAnYSAtPiAnYikgbWV0aF9jYWxsYmFja1xuICAgICAgPSBcImNhbWxfanNfd3JhcF9jYWxsYmFja19zdHJpY3RcIlxuXG4gICAgZXh0ZXJuYWwgbWV0aF9jYWxsYmFjayA6ICgnYiAtPiAnYSkgLT4gKCdiLCAnYSkgbWV0aF9jYWxsYmFja1xuICAgICAgPSBcImNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX3Vuc2FmZVwiXG5cbiAgICBleHRlcm5hbCBtZXRoX2NhbGxiYWNrX3dpdGhfYXJpdHkgOiBpbnQgLT4gKCdiIC0+ICdhKSAtPiAoJ2IsICdhKSBtZXRoX2NhbGxiYWNrXG4gICAgICA9IFwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfc3RyaWN0XCJcblxuICAgIGV4dGVybmFsIG1ldGhfY2FsbGJhY2tfd2l0aF9hcmd1bWVudHMgOlxuICAgICAgKCdiIC0+IGFueV9qc19hcnJheSAtPiAnYSkgLT4gKCdiLCBhbnlfanNfYXJyYXkgLT4gJ2EpIG1ldGhfY2FsbGJhY2tcbiAgICAgID0gXCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja19hcmd1bWVudHNcIlxuXG4gICAgKCogREVQUkVDQVRFRCAqKVxuICAgIGV4dGVybmFsIHZhcmlhYmxlIDogc3RyaW5nIC0+ICdhID0gXCJjYW1sX2pzX3ZhclwiXG4gIGVuZFxuXG4gICgqKioqKVxuXG4gIHR5cGUgJ2Egb3B0ID0gJ2FcblxuICB0eXBlICdhIG9wdGRlZiA9ICdhXG5cbiAgZXh0ZXJuYWwgZGVidWdnZXIgOiB1bml0IC0+IHVuaXQgPSBcImRlYnVnZ2VyXCJcblxuICBsZXQgbnVsbCA6ICdhIG9wdCA9IFVuc2FmZS5wdXJlX2pzX2V4cHIgXCJudWxsXCJcblxuICBleHRlcm5hbCBzb21lIDogJ2EgLT4gJ2Egb3B0ID0gXCIlaWRlbnRpdHlcIlxuXG4gIGxldCB1bmRlZmluZWQgOiAnYSBvcHRkZWYgPSBVbnNhZmUucHVyZV9qc19leHByIFwidW5kZWZpbmVkXCJcblxuICBleHRlcm5hbCBkZWYgOiAnYSAtPiAnYSBvcHRkZWYgPSBcIiVpZGVudGl0eVwiXG5cbiAgbW9kdWxlIHR5cGUgT1BUID0gc2lnXG4gICAgdHlwZSAnYSB0XG5cbiAgICB2YWwgZW1wdHkgOiAnYSB0XG5cbiAgICB2YWwgcmV0dXJuIDogJ2EgLT4gJ2EgdFxuXG4gICAgdmFsIG1hcCA6ICdhIHQgLT4gKCdhIC0+ICdiKSAtPiAnYiB0XG5cbiAgICB2YWwgYmluZCA6ICdhIHQgLT4gKCdhIC0+ICdiIHQpIC0+ICdiIHRcblxuICAgIHZhbCB0ZXN0IDogJ2EgdCAtPiBib29sXG5cbiAgICB2YWwgaXRlciA6ICdhIHQgLT4gKCdhIC0+IHVuaXQpIC0+IHVuaXRcblxuICAgIHZhbCBjYXNlIDogJ2EgdCAtPiAodW5pdCAtPiAnYikgLT4gKCdhIC0+ICdiKSAtPiAnYlxuXG4gICAgdmFsIGdldCA6ICdhIHQgLT4gKHVuaXQgLT4gJ2EpIC0+ICdhXG5cbiAgICB2YWwgb3B0aW9uIDogJ2Egb3B0aW9uIC0+ICdhIHRcblxuICAgIHZhbCB0b19vcHRpb24gOiAnYSB0IC0+ICdhIG9wdGlvblxuICBlbmRcblxuICBtb2R1bGUgT3B0IDogT1BUIHdpdGggdHlwZSAnYSB0ID0gJ2Egb3B0ID0gc3RydWN0XG4gICAgdHlwZSAnYSB0ID0gJ2Egb3B0XG5cbiAgICBsZXQgZW1wdHkgPSBudWxsXG5cbiAgICBsZXQgcmV0dXJuID0gc29tZVxuXG4gICAgbGV0IG1hcCB4IGYgPSBpZiBVbnNhZmUuZXF1YWxzIHggbnVsbCB0aGVuIG51bGwgZWxzZSByZXR1cm4gKGYgeClcblxuICAgIGxldCBiaW5kIHggZiA9IGlmIFVuc2FmZS5lcXVhbHMgeCBudWxsIHRoZW4gbnVsbCBlbHNlIGYgeFxuXG4gICAgbGV0IHRlc3QgeCA9IG5vdCAoVW5zYWZlLmVxdWFscyB4IG51bGwpXG5cbiAgICBsZXQgaXRlciB4IGYgPSBpZiBub3QgKFVuc2FmZS5lcXVhbHMgeCBudWxsKSB0aGVuIGYgeFxuXG4gICAgbGV0IGNhc2UgeCBmIGcgPSBpZiBVbnNhZmUuZXF1YWxzIHggbnVsbCB0aGVuIGYgKCkgZWxzZSBnIHhcblxuICAgIGxldCBnZXQgeCBmID0gaWYgVW5zYWZlLmVxdWFscyB4IG51bGwgdGhlbiBmICgpIGVsc2UgeFxuXG4gICAgbGV0IG9wdGlvbiB4ID1cbiAgICAgIG1hdGNoIHggd2l0aFxuICAgICAgfCBOb25lIC0+IGVtcHR5XG4gICAgICB8IFNvbWUgeCAtPiByZXR1cm4geFxuXG4gICAgbGV0IHRvX29wdGlvbiB4ID0gY2FzZSB4IChmdW4gKCkgLT4gTm9uZSkgKGZ1biB4IC0+IFNvbWUgeClcbiAgZW5kXG5cbiAgbW9kdWxlIE9wdGRlZiA6IE9QVCB3aXRoIHR5cGUgJ2EgdCA9ICdhIG9wdGRlZiA9IHN0cnVjdFxuICAgIHR5cGUgJ2EgdCA9ICdhIG9wdGRlZlxuXG4gICAgbGV0IGVtcHR5ID0gdW5kZWZpbmVkXG5cbiAgICBsZXQgcmV0dXJuID0gZGVmXG5cbiAgICBsZXQgbWFwIHggZiA9IGlmIHggPT0gdW5kZWZpbmVkIHRoZW4gdW5kZWZpbmVkIGVsc2UgcmV0dXJuIChmIHgpXG5cbiAgICBsZXQgYmluZCB4IGYgPSBpZiB4ID09IHVuZGVmaW5lZCB0aGVuIHVuZGVmaW5lZCBlbHNlIGYgeFxuXG4gICAgbGV0IHRlc3QgeCA9IHggIT0gdW5kZWZpbmVkXG5cbiAgICBsZXQgaXRlciB4IGYgPSBpZiB4ICE9IHVuZGVmaW5lZCB0aGVuIGYgeFxuXG4gICAgbGV0IGNhc2UgeCBmIGcgPSBpZiB4ID09IHVuZGVmaW5lZCB0aGVuIGYgKCkgZWxzZSBnIHhcblxuICAgIGxldCBnZXQgeCBmID0gaWYgeCA9PSB1bmRlZmluZWQgdGhlbiBmICgpIGVsc2UgeFxuXG4gICAgbGV0IG9wdGlvbiB4ID1cbiAgICAgIG1hdGNoIHggd2l0aFxuICAgICAgfCBOb25lIC0+IGVtcHR5XG4gICAgICB8IFNvbWUgeCAtPiByZXR1cm4geFxuXG4gICAgbGV0IHRvX29wdGlvbiB4ID0gY2FzZSB4IChmdW4gKCkgLT4gTm9uZSkgKGZ1biB4IC0+IFNvbWUgeClcbiAgZW5kXG5cbiAgKCoqKiopXG5cbiAgbGV0IGNvZXJjZSB4IGYgZyA9IE9wdC5nZXQgKGYgeCkgKGZ1biAoKSAtPiBnIHgpXG5cbiAgbGV0IGNvZXJjZV9vcHQgeCBmIGcgPSBPcHQuZ2V0IChPcHQuYmluZCB4IGYpIChmdW4gKCkgLT4gZyB4KVxuXG4gICgqKioqKVxuXG4gIHR5cGUgKydhIG1ldGhcblxuICB0eXBlICsnYSBnZW5fcHJvcFxuXG4gIHR5cGUgJ2EgcmVhZG9ubHlfcHJvcCA9IDwgZ2V0IDogJ2EgPiBnZW5fcHJvcFxuXG4gIHR5cGUgJ2Egd3JpdGVvbmx5X3Byb3AgPSA8IHNldCA6ICdhIC0+IHVuaXQgPiBnZW5fcHJvcFxuXG4gIHR5cGUgJ2EgcHJvcCA9IDwgZ2V0IDogJ2EgOyBzZXQgOiAnYSAtPiB1bml0ID4gZ2VuX3Byb3BcblxuICB0eXBlICdhIG9wdGRlZl9wcm9wID0gPCBnZXQgOiAnYSBvcHRkZWYgOyBzZXQgOiAnYSAtPiB1bml0ID4gZ2VuX3Byb3BcblxuICB0eXBlICsnYSBjb25zdHJcblxuICAoKioqKilcblxuICB0eXBlICdhIGNhbGxiYWNrID0gKHVuaXQsICdhKSBtZXRoX2NhbGxiYWNrXG5cbiAgZXh0ZXJuYWwgd3JhcF9jYWxsYmFjayA6ICgnYSAtPiAnYikgLT4gKCdjLCAnYSAtPiAnYikgbWV0aF9jYWxsYmFja1xuICAgID0gXCJjYW1sX2pzX3dyYXBfY2FsbGJhY2tcIlxuXG4gIGV4dGVybmFsIHdyYXBfbWV0aF9jYWxsYmFjayA6ICgnYSAtPiAnYikgLT4gKCdhLCAnYikgbWV0aF9jYWxsYmFja1xuICAgID0gXCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja1wiXG5cbiAgKCoqKiopXG5cbiAgbGV0IF90cnVlID0gVW5zYWZlLnB1cmVfanNfZXhwciBcInRydWVcIlxuXG4gIGxldCBfZmFsc2UgPSBVbnNhZmUucHVyZV9qc19leHByIFwiZmFsc2VcIlxuXG4gIHR5cGUgbWF0Y2hfcmVzdWx0X2hhbmRsZVxuXG4gIHR5cGUgc3RyaW5nX2FycmF5XG5cbiAgY2xhc3MgdHlwZSBqc19zdHJpbmcgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIHRvU3RyaW5nIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2QgdmFsdWVPZiA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIGNoYXJBdCA6IGludCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBjaGFyQ29kZUF0IDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgICAgKCogVGhpcyBtYXkgcmV0dXJuIE5hTi4uLiAqKVxuICAgICAgbWV0aG9kIGNvbmNhdCA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIGNvbmNhdF8yIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2QgY29uY2F0XzMgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBjb25jYXRfNCA6XG4gICAgICAgIGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIGluZGV4T2YgOiBqc19zdHJpbmcgdCAtPiBpbnQgbWV0aFxuXG4gICAgICBtZXRob2QgaW5kZXhPZl9mcm9tIDoganNfc3RyaW5nIHQgLT4gaW50IC0+IGludCBtZXRoXG5cbiAgICAgIG1ldGhvZCBsYXN0SW5kZXhPZiA6IGpzX3N0cmluZyB0IC0+IGludCBtZXRoXG5cbiAgICAgIG1ldGhvZCBsYXN0SW5kZXhPZl9mcm9tIDoganNfc3RyaW5nIHQgLT4gaW50IC0+IGludCBtZXRoXG5cbiAgICAgIG1ldGhvZCBsb2NhbGVDb21wYXJlIDoganNfc3RyaW5nIHQgLT4gZmxvYXQgbWV0aFxuXG4gICAgICBtZXRob2QgX21hdGNoIDogcmVnRXhwIHQgLT4gbWF0Y2hfcmVzdWx0X2hhbmRsZSB0IG9wdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBub3JtYWxpemUgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBub3JtYWxpemVfZm9ybSA6IG5vcm1hbGl6YXRpb24gdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCByZXBsYWNlIDogcmVnRXhwIHQgLT4ganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2QgcmVwbGFjZV9zdHJpbmcgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBzZWFyY2ggOiByZWdFeHAgdCAtPiBpbnQgbWV0aFxuXG4gICAgICBtZXRob2Qgc2xpY2UgOiBpbnQgLT4gaW50IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIHNsaWNlX2VuZCA6IGludCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBzcGxpdCA6IGpzX3N0cmluZyB0IC0+IHN0cmluZ19hcnJheSB0IG1ldGhcblxuICAgICAgbWV0aG9kIHNwbGl0X2xpbWl0ZWQgOiBqc19zdHJpbmcgdCAtPiBpbnQgLT4gc3RyaW5nX2FycmF5IHQgbWV0aFxuXG4gICAgICBtZXRob2Qgc3BsaXRfcmVnRXhwIDogcmVnRXhwIHQgLT4gc3RyaW5nX2FycmF5IHQgbWV0aFxuXG4gICAgICBtZXRob2Qgc3BsaXRfcmVnRXhwTGltaXRlZCA6IHJlZ0V4cCB0IC0+IGludCAtPiBzdHJpbmdfYXJyYXkgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBzdWJzdHJpbmcgOiBpbnQgLT4gaW50IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIHN1YnN0cmluZ190b0VuZCA6IGludCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCB0b0xvd2VyQ2FzZSA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIHRvTG9jYWxlTG93ZXJDYXNlIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2QgdG9VcHBlckNhc2UgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCB0b0xvY2FsZVVwcGVyQ2FzZSA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIHRyaW0gOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBsZW5ndGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuICAgIGVuZFxuXG4gIGFuZCByZWdFeHAgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIGV4ZWMgOiBqc19zdHJpbmcgdCAtPiBtYXRjaF9yZXN1bHRfaGFuZGxlIHQgb3B0IG1ldGhcblxuICAgICAgbWV0aG9kIHRlc3QgOiBqc19zdHJpbmcgdCAtPiBib29sIHQgbWV0aFxuXG4gICAgICBtZXRob2QgdG9TdHJpbmcgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBzb3VyY2UgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBnbG9iYWwgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgaWdub3JlQ2FzZSA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBtdWx0aWxpbmUgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgbGFzdEluZGV4IDogaW50IHByb3BcbiAgICBlbmRcblxuICBhbmQgbm9ybWFsaXphdGlvbiA9IGpzX3N0cmluZ1xuXG4gICgqIHN0cmluZyBpcyB1c2VkIGJ5IHBweF9qcywgaXQgbmVlZHMgdG8gY29tZSBiZWZvcmUgYW55IHVzZSBvZiB0aGVcbiAgICAgbmV3IHN5bnRheCBpbiB0aGlzIGZpbGUgKilcbiAgZXh0ZXJuYWwgc3RyaW5nIDogc3RyaW5nIC0+IGpzX3N0cmluZyB0ID0gXCJjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1wiXG5cbiAgZXh0ZXJuYWwgdG9fc3RyaW5nIDoganNfc3RyaW5nIHQgLT4gc3RyaW5nID0gXCJjYW1sX3N0cmluZ19vZl9qc3N0cmluZ1wiXG5cbiAgbGV0IG5mYyA9IHN0cmluZyBcIk5GQ1wiXG5cbiAgbGV0IG5mZCA9IHN0cmluZyBcIk5GRFwiXG5cbiAgbGV0IG5ma2MgPSBzdHJpbmcgXCJORktDXCJcblxuICBsZXQgbmZrZCA9IHN0cmluZyBcIk5GS0RcIlxuZW5kXG5cbmluY2x1ZGUgSnNcblxuY2xhc3MgdHlwZSBzdHJpbmdfY29uc3RyID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGZyb21DaGFyQ29kZSA6IGludCAtPiBqc19zdHJpbmcgdCBtZXRoXG4gIGVuZFxuXG5sZXQgc3RyaW5nX2NvbnN0ciA9IFVuc2FmZS5nbG9iYWwjIy5fU3RyaW5nXG5cbmxldCByZWdFeHAgPSBVbnNhZmUuZ2xvYmFsIyMuX1JlZ0V4cFxuXG5sZXQgcmVnRXhwX2NvcHkgPSByZWdFeHBcblxubGV0IHJlZ0V4cF93aXRoRmxhZ3MgPSByZWdFeHBcblxuY2xhc3MgdHlwZSBbJ2FdIGpzX2FycmF5ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHRvU3RyaW5nIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRvTG9jYWxlU3RyaW5nIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIGNvbmNhdCA6ICdhIGpzX2FycmF5IHQgLT4gJ2EganNfYXJyYXkgdCBtZXRoXG5cbiAgICBtZXRob2Qgam9pbiA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCBwb3AgOiAnYSBvcHRkZWYgbWV0aFxuXG4gICAgbWV0aG9kIHB1c2ggOiAnYSAtPiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIHB1c2hfMiA6ICdhIC0+ICdhIC0+IGludCBtZXRoXG5cbiAgICBtZXRob2QgcHVzaF8zIDogJ2EgLT4gJ2EgLT4gJ2EgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCBwdXNoXzQgOiAnYSAtPiAnYSAtPiAnYSAtPiAnYSAtPiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIHJldmVyc2UgOiAnYSBqc19hcnJheSB0IG1ldGhcblxuICAgIG1ldGhvZCBzaGlmdCA6ICdhIG9wdGRlZiBtZXRoXG5cbiAgICBtZXRob2Qgc2xpY2UgOiBpbnQgLT4gaW50IC0+ICdhIGpzX2FycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIHNsaWNlX2VuZCA6IGludCAtPiAnYSBqc19hcnJheSB0IG1ldGhcblxuICAgIG1ldGhvZCBzb3J0IDogKCdhIC0+ICdhIC0+IGZsb2F0KSBjYWxsYmFjayAtPiAnYSBqc19hcnJheSB0IG1ldGhcblxuICAgIG1ldGhvZCBzb3J0X2FzU3RyaW5ncyA6ICdhIGpzX2FycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIHNwbGljZSA6IGludCAtPiBpbnQgLT4gJ2EganNfYXJyYXkgdCBtZXRoXG5cbiAgICBtZXRob2Qgc3BsaWNlXzEgOiBpbnQgLT4gaW50IC0+ICdhIC0+ICdhIGpzX2FycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIHNwbGljZV8yIDogaW50IC0+IGludCAtPiAnYSAtPiAnYSAtPiAnYSBqc19hcnJheSB0IG1ldGhcblxuICAgIG1ldGhvZCBzcGxpY2VfMyA6IGludCAtPiBpbnQgLT4gJ2EgLT4gJ2EgLT4gJ2EgLT4gJ2EganNfYXJyYXkgdCBtZXRoXG5cbiAgICBtZXRob2Qgc3BsaWNlXzQgOiBpbnQgLT4gaW50IC0+ICdhIC0+ICdhIC0+ICdhIC0+ICdhIC0+ICdhIGpzX2FycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIHVuc2hpZnQgOiAnYSAtPiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIHVuc2hpZnRfMiA6ICdhIC0+ICdhIC0+IGludCBtZXRoXG5cbiAgICBtZXRob2QgdW5zaGlmdF8zIDogJ2EgLT4gJ2EgLT4gJ2EgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCB1bnNoaWZ0XzQgOiAnYSAtPiAnYSAtPiAnYSAtPiAnYSAtPiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIHNvbWUgOiAoJ2EgLT4gaW50IC0+ICdhIGpzX2FycmF5IHQgLT4gYm9vbCB0KSBjYWxsYmFjayAtPiBib29sIHQgbWV0aFxuXG4gICAgbWV0aG9kIGV2ZXJ5IDogKCdhIC0+IGludCAtPiAnYSBqc19hcnJheSB0IC0+IGJvb2wgdCkgY2FsbGJhY2sgLT4gYm9vbCB0IG1ldGhcblxuICAgIG1ldGhvZCBmb3JFYWNoIDogKCdhIC0+IGludCAtPiAnYSBqc19hcnJheSB0IC0+IHVuaXQpIGNhbGxiYWNrIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIG1hcCA6ICgnYSAtPiBpbnQgLT4gJ2EganNfYXJyYXkgdCAtPiAnYikgY2FsbGJhY2sgLT4gJ2IganNfYXJyYXkgdCBtZXRoXG5cbiAgICBtZXRob2QgZmlsdGVyIDogKCdhIC0+IGludCAtPiAnYSBqc19hcnJheSB0IC0+IGJvb2wgdCkgY2FsbGJhY2sgLT4gJ2EganNfYXJyYXkgdCBtZXRoXG5cbiAgICBtZXRob2QgcmVkdWNlX2luaXQgOlxuICAgICAgKCdiIC0+ICdhIC0+IGludCAtPiAnYSBqc19hcnJheSB0IC0+ICdiKSBjYWxsYmFjayAtPiAnYiAtPiAnYiBtZXRoXG5cbiAgICBtZXRob2QgcmVkdWNlIDogKCdhIC0+ICdhIC0+IGludCAtPiAnYSBqc19hcnJheSB0IC0+ICdhKSBjYWxsYmFjayAtPiAnYSBtZXRoXG5cbiAgICBtZXRob2QgcmVkdWNlUmlnaHRfaW5pdCA6XG4gICAgICAoJ2IgLT4gJ2EgLT4gaW50IC0+ICdhIGpzX2FycmF5IHQgLT4gJ2IpIGNhbGxiYWNrIC0+ICdiIC0+ICdiIG1ldGhcblxuICAgIG1ldGhvZCByZWR1Y2VSaWdodCA6ICgnYSAtPiAnYSAtPiBpbnQgLT4gJ2EganNfYXJyYXkgdCAtPiAnYSkgY2FsbGJhY2sgLT4gJ2EgbWV0aFxuXG4gICAgbWV0aG9kIGxlbmd0aCA6IGludCBwcm9wXG4gIGVuZFxuXG5sZXQgb2JqZWN0X2NvbnN0cnVjdG9yID0gVW5zYWZlLmdsb2JhbCMjLl9PYmplY3RcblxubGV0IG9iamVjdF9rZXlzIG8gOiBqc19zdHJpbmcgdCBqc19hcnJheSB0ID0gb2JqZWN0X2NvbnN0cnVjdG9yIyNrZXlzIG9cblxubGV0IGFycmF5X2NvbnN0cnVjdG9yID0gVW5zYWZlLmdsb2JhbCMjLl9BcnJheVxuXG5sZXQgYXJyYXlfZW1wdHkgPSBhcnJheV9jb25zdHJ1Y3RvclxuXG5sZXQgYXJyYXlfbGVuZ3RoID0gYXJyYXlfY29uc3RydWN0b3JcblxubGV0IGFycmF5X2dldCA6ICdhICNqc19hcnJheSB0IC0+IGludCAtPiAnYSBvcHRkZWYgPSBVbnNhZmUuZ2V0XG5cbmxldCBhcnJheV9zZXQgOiAnYSAjanNfYXJyYXkgdCAtPiBpbnQgLT4gJ2EgLT4gdW5pdCA9IFVuc2FmZS5zZXRcblxubGV0IGFycmF5X21hcF9wb2x5IDpcbiAgICAnYSAjanNfYXJyYXkgdCAtPiAoJ2EgLT4gaW50IC0+ICdhICNqc19hcnJheSB0IC0+ICdiKSBjYWxsYmFjayAtPiAnYiAjanNfYXJyYXkgdCA9XG4gZnVuIGEgY2IgLT4gKFVuc2FmZS5jb2VyY2UgYSkjI21hcCBjYlxuXG5sZXQgYXJyYXlfbWFwIGYgYSA9IGFycmF5X21hcF9wb2x5IGEgKHdyYXBfY2FsbGJhY2sgKGZ1biB4IF9pZHggXyAtPiBmIHgpKVxuXG5sZXQgYXJyYXlfbWFwaSBmIGEgPSBhcnJheV9tYXBfcG9seSBhICh3cmFwX2NhbGxiYWNrIChmdW4geCBpZHggXyAtPiBmIGlkeCB4KSlcblxuY2xhc3MgdHlwZSBtYXRjaF9yZXN1bHQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IFtqc19zdHJpbmcgdF0ganNfYXJyYXlcblxuICAgIG1ldGhvZCBpbmRleCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaW5wdXQgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgc3RyX2FycmF5IDogc3RyaW5nX2FycmF5IHQgLT4ganNfc3RyaW5nIHQganNfYXJyYXkgdCA9IFVuc2FmZS5jb2VyY2VcblxubGV0IG1hdGNoX3Jlc3VsdCA6IG1hdGNoX3Jlc3VsdF9oYW5kbGUgdCAtPiBtYXRjaF9yZXN1bHQgdCA9IFVuc2FmZS5jb2VyY2VcblxuY2xhc3MgdHlwZSBudW1iZXIgPVxuICBvYmplY3RcbiAgICBtZXRob2QgdG9TdHJpbmcgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgdG9TdHJpbmdfcmFkaXggOiBpbnQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRvTG9jYWxlU3RyaW5nIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRvRml4ZWQgOiBpbnQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRvRXhwb25lbnRpYWwgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgdG9FeHBvbmVudGlhbF9kaWdpdHMgOiBpbnQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRvUHJlY2lzaW9uIDogaW50IC0+IGpzX3N0cmluZyB0IG1ldGhcbiAgZW5kXG5cbmV4dGVybmFsIG51bWJlcl9vZl9mbG9hdCA6IGZsb2F0IC0+IG51bWJlciB0ID0gXCJjYW1sX2pzX2Zyb21fZmxvYXRcIlxuXG5leHRlcm5hbCBmbG9hdF9vZl9udW1iZXIgOiBudW1iZXIgdCAtPiBmbG9hdCA9IFwiY2FtbF9qc190b19mbG9hdFwiXG5cbmNsYXNzIHR5cGUgZGF0ZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB0b1N0cmluZyA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCB0b0RhdGVTdHJpbmcgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgdG9UaW1lU3RyaW5nIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRvTG9jYWxlU3RyaW5nIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRvTG9jYWxlRGF0ZVN0cmluZyA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCB0b0xvY2FsZVRpbWVTdHJpbmcgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgdmFsdWVPZiA6IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRUaW1lIDogZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEZ1bGxZZWFyIDogaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRVVENGdWxsWWVhciA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0TW9udGggOiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFVUQ01vbnRoIDogaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXREYXRlIDogaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRVVENEYXRlIDogaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXREYXkgOiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFVUQ0RheSA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0SG91cnMgOiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFVUQ0hvdXJzIDogaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRNaW51dGVzIDogaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRVVENNaW51dGVzIDogaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRTZWNvbmRzIDogaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRVVENTZWNvbmRzIDogaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRNaWxsaXNlY29uZHMgOiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFVUQ01pbGxpc2Vjb25kcyA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VGltZXpvbmVPZmZzZXQgOiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFRpbWUgOiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0RnVsbFllYXIgOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFVUQ0Z1bGxZZWFyIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRNb250aCA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0VVRDTW9udGggOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldERhdGUgOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFVUQ0RhdGUgOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldERheSA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0VVRDRGF5IDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRIb3VycyA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0VVRDSG91cnMgOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldE1pbnV0ZXMgOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFVUQ01pbnV0ZXMgOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFNlY29uZHMgOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFVUQ1NlY29uZHMgOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldE1pbGxpc2Vjb25kcyA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0VVRDTWlsbGlzZWNvbmRzIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCB0b1VUQ1N0cmluZyA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCB0b0lTT1N0cmluZyA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCB0b0pTT04gOiAnYSAtPiBqc19zdHJpbmcgdCBtZXRoXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGRhdGVfY29uc3RyID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHBhcnNlIDoganNfc3RyaW5nIHQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIF9VVENfbW9udGggOiBpbnQgLT4gaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBfVVRDX2RheSA6IGludCAtPiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIF9VVENfaG91ciA6IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgX1VUQ19taW4gOiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBfVVRDX3NlYyA6IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBfVVRDX21zIDogaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBub3cgOiBmbG9hdCBtZXRoXG4gIGVuZFxuXG5sZXQgZGF0ZV9jb25zdHIgPSBVbnNhZmUuZ2xvYmFsIyMuX0RhdGVcblxubGV0IGRhdGUgOiBkYXRlX2NvbnN0ciB0ID0gZGF0ZV9jb25zdHJcblxubGV0IGRhdGVfbm93IDogZGF0ZSB0IGNvbnN0ciA9IGRhdGVfY29uc3RyXG5cbmxldCBkYXRlX2Zyb21UaW1lVmFsdWUgOiAoZmxvYXQgLT4gZGF0ZSB0KSBjb25zdHIgPSBkYXRlX2NvbnN0clxuXG5sZXQgZGF0ZV9tb250aCA6IChpbnQgLT4gaW50IC0+IGRhdGUgdCkgY29uc3RyID0gZGF0ZV9jb25zdHJcblxubGV0IGRhdGVfZGF5IDogKGludCAtPiBpbnQgLT4gaW50IC0+IGRhdGUgdCkgY29uc3RyID0gZGF0ZV9jb25zdHJcblxubGV0IGRhdGVfaG91ciA6IChpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gZGF0ZSB0KSBjb25zdHIgPSBkYXRlX2NvbnN0clxuXG5sZXQgZGF0ZV9taW4gOiAoaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBkYXRlIHQpIGNvbnN0ciA9IGRhdGVfY29uc3RyXG5cbmxldCBkYXRlX3NlYyA6IChpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBkYXRlIHQpIGNvbnN0ciA9IGRhdGVfY29uc3RyXG5cbmxldCBkYXRlX21zIDogKGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBkYXRlIHQpIGNvbnN0ciA9XG4gIGRhdGVfY29uc3RyXG5cbmNsYXNzIHR5cGUgbWF0aCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBfRSA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTE4yIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9MTjEwIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9MT0cyRSA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTE9HMTBFIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9QSSA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1FSVDFfMl8gOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NRUlQyIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFicyA6IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBhY29zIDogZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGFzaW4gOiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgYXRhbiA6IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBhdGFuMiA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBjZWlsIDogZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGNvcyA6IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBleHAgOiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgZmxvb3IgOiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgbG9nIDogZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIG1heCA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBtYXhfMyA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBtYXhfNCA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBtaW4gOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgbWluXzMgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgbWluXzQgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgcG93IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHJhbmRvbSA6IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCByb3VuZCA6IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzaW4gOiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgc3FydCA6IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCB0YW4gOiBmbG9hdCAtPiBmbG9hdCBtZXRoXG4gIGVuZFxuXG5sZXQgbWF0aCA9IFVuc2FmZS5nbG9iYWwjIy5fTWF0aFxuXG5jbGFzcyB0eXBlIGVycm9yID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbWVzc2FnZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBzdGFjayA6IGpzX3N0cmluZyB0IG9wdGRlZiBwcm9wXG5cbiAgICBtZXRob2QgdG9TdHJpbmcgOiBqc19zdHJpbmcgdCBtZXRoXG4gIGVuZFxuXG5sZXQgZXJyb3JfY29uc3RyID0gVW5zYWZlLmdsb2JhbCMjLl9FcnJvclxuXG5tb2R1bGUgSnNfZXJyb3IgPSBzdHJ1Y3RcbiAgdHlwZSBlcnJvcl90ID0gZXJyb3IgdFxuXG4gIGluY2x1ZGUgSnNvb19ydW50aW1lLkVycm9yXG5cbiAgZXh0ZXJuYWwgb2ZfZXJyb3IgOiBlcnJvcl90IC0+IHQgPSBcIiVpZGVudGl0eVwiXG5cbiAgZXh0ZXJuYWwgdG9fZXJyb3IgOiB0IC0+IGVycm9yX3QgPSBcIiVpZGVudGl0eVwiXG5cbiAgbGV0IG5hbWUgZSA9IHRvX3N0cmluZyAodG9fZXJyb3IgZSkjIy5uYW1lXG5cbiAgbGV0IG1lc3NhZ2UgZSA9IHRvX3N0cmluZyAodG9fZXJyb3IgZSkjIy5tZXNzYWdlXG5cbiAgbGV0IHN0YWNrIChlIDogdCkgOiBzdHJpbmcgb3B0aW9uID1cbiAgICBPcHQudG9fb3B0aW9uIChPcHQubWFwICh0b19lcnJvciBlKSMjLnN0YWNrIHRvX3N0cmluZylcblxuICBsZXQgdG9fc3RyaW5nIGUgPSB0b19zdHJpbmcgKHRvX2Vycm9yIGUpIyN0b1N0cmluZ1xuZW5kXG5cbm1vZHVsZSBNYWdpYyA9IHN0cnVjdFxuICBtb2R1bGUgdHlwZSBUID0gc2lnXG4gICAgZXhjZXB0aW9uIEVycm9yIG9mIGVycm9yIHRcbiAgZW5kXG5cbiAgdHlwZSAoJ2EsICdiKSBlcSA9IEVxIDogKCdhLCAnYSkgZXFcblxuICBsZXQgKGVxIDogKGVycm9yIHQsIEpzX2Vycm9yLnQpIGVxKSA9IE9iai5tYWdpYyBFcVxuXG4gIGxldCBtID1cbiAgICBtYXRjaCBlcSB3aXRoXG4gICAgfCBFcSAtPlxuICAgICAgICAobW9kdWxlIHN0cnVjdFxuICAgICAgICAgIGV4Y2VwdGlvbiBFcnJvciA9IEpzX2Vycm9yLkV4blxuICAgICAgICBlbmQgOiBUKVxuXG4gIG1vZHVsZSBFcnJvciA9ICh2YWwgbSA6IFQpXG5lbmRcblxuaW5jbHVkZSBNYWdpYy5FcnJvclxuXG5sZXQgcmFpc2VfanNfZXJyb3IgZSA9IEpzX2Vycm9yLnJhaXNlXyAoSnNfZXJyb3Iub2ZfZXJyb3IgZSlcblxubGV0IHN0cmluZ19vZl9lcnJvciBlID0gSnNfZXJyb3IudG9fc3RyaW5nIChKc19lcnJvci5vZl9lcnJvciBlKVxuXG5sZXQgZXhuX3dpdGhfanNfYmFja3RyYWNlID0gSnNfZXJyb3IuYXR0YWNoX2pzX2JhY2t0cmFjZVxuXG5leHRlcm5hbCBqc19lcnJvcl9vZl9leG4gOiBleG4gLT4gZXJyb3IgdCBvcHQgPSBcImNhbWxfanNfZXJyb3Jfb2ZfZXhjZXB0aW9uXCJcblxuY2xhc3MgdHlwZSBqc29uID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHBhcnNlIDoganNfc3RyaW5nIHQgLT4gJ2EgbWV0aFxuXG4gICAgbWV0aG9kIHN0cmluZ2lmeSA6ICdhIC0+IGpzX3N0cmluZyB0IG1ldGhcbiAgZW5kXG5cbmxldCBfSlNPTiA6IGpzb24gdCA9IFVuc2FmZS5nbG9iYWwjIy5fSlNPTlxuXG5sZXQgZGVjb2RlVVJJIChzIDoganNfc3RyaW5nIHQpIDoganNfc3RyaW5nIHQgPVxuICBVbnNhZmUuZnVuX2NhbGwgVW5zYWZlLmdsb2JhbCMjLmRlY29kZVVSSSBbfCBVbnNhZmUuaW5qZWN0IHMgfF1cblxubGV0IGRlY29kZVVSSUNvbXBvbmVudCAocyA6IGpzX3N0cmluZyB0KSA6IGpzX3N0cmluZyB0ID1cbiAgVW5zYWZlLmZ1bl9jYWxsIFVuc2FmZS5nbG9iYWwjIy5kZWNvZGVVUklDb21wb25lbnQgW3wgVW5zYWZlLmluamVjdCBzIHxdXG5cbmxldCBlbmNvZGVVUkkgKHMgOiBqc19zdHJpbmcgdCkgOiBqc19zdHJpbmcgdCA9XG4gIFVuc2FmZS5mdW5fY2FsbCBVbnNhZmUuZ2xvYmFsIyMuZW5jb2RlVVJJIFt8IFVuc2FmZS5pbmplY3QgcyB8XVxuXG5sZXQgZW5jb2RlVVJJQ29tcG9uZW50IChzIDoganNfc3RyaW5nIHQpIDoganNfc3RyaW5nIHQgPVxuICBVbnNhZmUuZnVuX2NhbGwgVW5zYWZlLmdsb2JhbCMjLmVuY29kZVVSSUNvbXBvbmVudCBbfCBVbnNhZmUuaW5qZWN0IHMgfF1cblxubGV0IGVzY2FwZSAocyA6IGpzX3N0cmluZyB0KSA6IGpzX3N0cmluZyB0ID1cbiAgVW5zYWZlLmZ1bl9jYWxsIFVuc2FmZS5nbG9iYWwjIy5lc2NhcGUgW3wgVW5zYWZlLmluamVjdCBzIHxdXG5cbmxldCB1bmVzY2FwZSAocyA6IGpzX3N0cmluZyB0KSA6IGpzX3N0cmluZyB0ID1cbiAgVW5zYWZlLmZ1bl9jYWxsIFVuc2FmZS5nbG9iYWwjIy51bmVzY2FwZSBbfCBVbnNhZmUuaW5qZWN0IHMgfF1cblxuZXh0ZXJuYWwgYm9vbCA6IGJvb2wgLT4gYm9vbCB0ID0gXCJjYW1sX2pzX2Zyb21fYm9vbFwiXG5cbmV4dGVybmFsIHRvX2Jvb2wgOiBib29sIHQgLT4gYm9vbCA9IFwiY2FtbF9qc190b19ib29sXCJcblxuZXh0ZXJuYWwgYXJyYXkgOiAnYSBhcnJheSAtPiAnYSBqc19hcnJheSB0ID0gXCJjYW1sX2pzX2Zyb21fYXJyYXlcIlxuXG5leHRlcm5hbCB0b19hcnJheSA6ICdhIGpzX2FycmF5IHQgLT4gJ2EgYXJyYXkgPSBcImNhbWxfanNfdG9fYXJyYXlcIlxuXG5leHRlcm5hbCBieXRlc3RyaW5nIDogc3RyaW5nIC0+IGpzX3N0cmluZyB0ID0gXCJjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXCJcblxuZXh0ZXJuYWwgdG9fYnl0ZXN0cmluZyA6IGpzX3N0cmluZyB0IC0+IHN0cmluZyA9IFwiY2FtbF9zdHJpbmdfb2ZfanNieXRlc1wiXG5cbmV4dGVybmFsIHR5cGVvZiA6IF8gdCAtPiBqc19zdHJpbmcgdCA9IFwiY2FtbF9qc190eXBlb2ZcIlxuXG5leHRlcm5hbCBpbnN0YW5jZW9mIDogXyB0IC0+IF8gY29uc3RyIC0+IGJvb2wgPSBcImNhbWxfanNfaW5zdGFuY2VvZlwiXG5cbmxldCBpc05hTiAoaSA6ICdhKSA6IGJvb2wgPVxuICB0b19ib29sIChVbnNhZmUuZnVuX2NhbGwgVW5zYWZlLmdsb2JhbCMjLmlzTmFOIFt8IFVuc2FmZS5pbmplY3QgaSB8XSlcblxubGV0IHBhcnNlSW50IChzIDoganNfc3RyaW5nIHQpIDogaW50ID1cbiAgbGV0IHMgPSBVbnNhZmUuZnVuX2NhbGwgVW5zYWZlLmdsb2JhbCMjLnBhcnNlSW50IFt8IFVuc2FmZS5pbmplY3QgcyB8XSBpblxuICBpZiBpc05hTiBzIHRoZW4gZmFpbHdpdGggXCJwYXJzZUludFwiIGVsc2Ugc1xuXG5sZXQgcGFyc2VGbG9hdCAocyA6IGpzX3N0cmluZyB0KSA6IGZsb2F0ID1cbiAgbGV0IHMgPSBVbnNhZmUuZnVuX2NhbGwgVW5zYWZlLmdsb2JhbCMjLnBhcnNlRmxvYXQgW3wgVW5zYWZlLmluamVjdCBzIHxdIGluXG4gIGlmIGlzTmFOIHMgdGhlbiBmYWlsd2l0aCBcInBhcnNlRmxvYXRcIiBlbHNlIHNcblxubGV0IF8gPVxuICBQcmludGV4Yy5yZWdpc3Rlcl9wcmludGVyIChmdW5jdGlvblxuICAgICAgfCBKc19lcnJvci5FeG4gZSAtPiBTb21lIChKc19lcnJvci50b19zdHJpbmcgZSlcbiAgICAgIHwgXyAtPiBOb25lKVxuXG5sZXQgXyA9XG4gIFByaW50ZXhjLnJlZ2lzdGVyX3ByaW50ZXIgKGZ1biBlIC0+XG4gICAgICBsZXQgZSA6IDwgLi4gPiB0ID0gT2JqLm1hZ2ljIGUgaW5cbiAgICAgIGlmIGluc3RhbmNlb2YgZSBhcnJheV9jb25zdHJ1Y3RvciB0aGVuIE5vbmUgZWxzZSBTb21lICh0b19zdHJpbmcgZSMjdG9TdHJpbmcpKVxuXG5sZXQgZXhwb3J0X2pzIChmaWVsZCA6IGpzX3N0cmluZyB0KSB4ID1cbiAgVW5zYWZlLnNldFxuICAgIChVbnNhZmUucHVyZV9qc19leHByIFwianNvb19leHBvcnRzXCIpXG4gICAgZmllbGRcbiAgICAoaWYgU3RyaW5nLmVxdWFsIChKcy50b19zdHJpbmcgKHR5cGVvZiAoT2JqLm1hZ2ljIHgpKSkgXCJmdW5jdGlvblwiXG4gICAgICAgICgqIGZ1bmN0aW9uIHdpdGggYXJpdHkvbGVuZ3RoIGVxdWFsIHRvIHplcm8gYXJlIGFscmVhZHkgd3JhcHBlZCAqKVxuICAgICAgICAmJiBVbnNhZmUuZ2V0IChPYmoubWFnaWMgeCkgKEpzLnN0cmluZyBcImxlbmd0aFwiKSA+IDBcbiAgICB0aGVuIE9iai5tYWdpYyAod3JhcF9jYWxsYmFjayAoT2JqLm1hZ2ljIHgpKVxuICAgIGVsc2UgeClcblxubGV0IGV4cG9ydCBmaWVsZCB4ID0gZXhwb3J0X2pzIChzdHJpbmcgZmllbGQpIHhcblxubGV0IGV4cG9ydF9hbGwgb2JqID1cbiAgbGV0IGtleXMgPSBvYmplY3Rfa2V5cyBvYmogaW5cbiAga2V5cyMjZm9yRWFjaFxuICAgICh3cmFwX2NhbGxiYWNrIChmdW4gKGtleSA6IGpzX3N0cmluZyB0KSBfIF8gLT4gZXhwb3J0X2pzIGtleSAoVW5zYWZlLmdldCBvYmoga2V5KSkpXG5cbigqKioqKVxuXG4oKiBERVBSRUNBVEVEICopXG5cbnR5cGUgZmxvYXRfcHJvcCA9IGZsb2F0IHByb3BcblxuZXh0ZXJuYWwgZmxvYXQgOiBmbG9hdCAtPiBmbG9hdCA9IFwiJWlkZW50aXR5XCJcblxuZXh0ZXJuYWwgdG9fZmxvYXQgOiBmbG9hdCAtPiBmbG9hdCA9IFwiJWlkZW50aXR5XCJcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbiAqIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxuXG5vcGVuIEpzXG5vcGVuISBJbXBvcnRcblxuY2xhc3MgdHlwZSBbJ25vZGVdIG5vZGVMaXN0ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGl0ZW0gOiBpbnQgLT4gJ25vZGUgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIGxlbmd0aCA6IGludCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgbGlzdF9vZl9ub2RlTGlzdCAobm9kZUxpc3QgOiAnYSBub2RlTGlzdCB0KSA9XG4gIGxldCBsZW5ndGggPSBub2RlTGlzdCMjLmxlbmd0aCBpblxuICBsZXQgcmVjIGFkZF9pdGVtIGFjYyBpID1cbiAgICBpZiBpIDwgbGVuZ3RoXG4gICAgdGhlblxuICAgICAgbWF0Y2ggT3B0LnRvX29wdGlvbiAobm9kZUxpc3QjI2l0ZW0gaSkgd2l0aFxuICAgICAgfCBOb25lIC0+IGFkZF9pdGVtIGFjYyAoaSArIDEpXG4gICAgICB8IFNvbWUgZSAtPiBhZGRfaXRlbSAoZSA6OiBhY2MpIChpICsgMSlcbiAgICBlbHNlIExpc3QucmV2IGFjY1xuICBpblxuICBhZGRfaXRlbSBbXSAwXG5cbnR5cGUgbm9kZVR5cGUgPVxuICB8IE9USEVSXG4gICgqIFdpbGwgbm90IGhhcHBlbiAqKVxuICB8IEVMRU1FTlRcbiAgfCBBVFRSSUJVVEVcbiAgfCBURVhUXG4gIHwgQ0RBVEFfU0VDVElPTlxuICB8IEVOVElUWV9SRUZFUkVOQ0VcbiAgfCBFTlRJVFlcbiAgfCBQUk9DRVNTSU5HX0lOU1RSVUNUSU9OXG4gIHwgQ09NTUVOVFxuICB8IERPQ1VNRU5UXG4gIHwgRE9DVU1FTlRfVFlQRVxuICB8IERPQ1VNRU5UX0ZSQUdNRU5UXG4gIHwgTk9UQVRJT05cblxubW9kdWxlIERvY3VtZW50UG9zaXRpb24gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0gaW50XG5cbiAgdHlwZSBtYXNrID0gaW50XG5cbiAgbGV0IGRpc2Nvbm5lY3RlZCA9IDB4MDFcblxuICBsZXQgcHJlY2VkaW5nID0gMHgwMlxuXG4gIGxldCBmb2xsb3dpbmcgPSAweDA0XG5cbiAgbGV0IGNvbnRhaW5zID0gMHgwOFxuXG4gIGxldCBjb250YWluZWRfYnkgPSAweDEwXG5cbiAgbGV0IGltcGxlbWVudGF0aW9uX3NwZWNpZmljID0gMHgyMFxuXG4gIGxldCBoYXMgdCBtYXNrID0gdCBsYW5kIG1hc2sgPSBtYXNrXG5cbiAgbGV0IGFkZCB4IHkgPSB4IGxvciB5XG5cbiAgbGV0ICggKyApID0gYWRkXG5lbmRcblxuY2xhc3MgdHlwZSBub2RlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG5vZGVOYW1lIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG5vZGVWYWx1ZSA6IGpzX3N0cmluZyB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgbm9kZVR5cGUgOiBub2RlVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcGFyZW50Tm9kZSA6IG5vZGUgdCBvcHQgcHJvcFxuXG4gICAgbWV0aG9kIGNoaWxkTm9kZXMgOiBub2RlIG5vZGVMaXN0IHQgcHJvcFxuXG4gICAgbWV0aG9kIGZpcnN0Q2hpbGQgOiBub2RlIHQgb3B0IHByb3BcblxuICAgIG1ldGhvZCBsYXN0Q2hpbGQgOiBub2RlIHQgb3B0IHByb3BcblxuICAgIG1ldGhvZCBwcmV2aW91c1NpYmxpbmcgOiBub2RlIHQgb3B0IHByb3BcblxuICAgIG1ldGhvZCBuZXh0U2libGluZyA6IG5vZGUgdCBvcHQgcHJvcFxuXG4gICAgbWV0aG9kIG5hbWVzcGFjZVVSSSA6IGpzX3N0cmluZyB0IG9wdCBwcm9wXG5cbiAgICBtZXRob2QgaW5zZXJ0QmVmb3JlIDogbm9kZSB0IC0+IG5vZGUgdCBvcHQgLT4gbm9kZSB0IG1ldGhcblxuICAgIG1ldGhvZCByZXBsYWNlQ2hpbGQgOiBub2RlIHQgLT4gbm9kZSB0IC0+IG5vZGUgdCBtZXRoXG5cbiAgICBtZXRob2QgcmVtb3ZlQ2hpbGQgOiBub2RlIHQgLT4gbm9kZSB0IG1ldGhcblxuICAgIG1ldGhvZCBhcHBlbmRDaGlsZCA6IG5vZGUgdCAtPiBub2RlIHQgbWV0aFxuXG4gICAgbWV0aG9kIGhhc0NoaWxkTm9kZXMgOiBib29sIHQgbWV0aFxuXG4gICAgbWV0aG9kIGNsb25lTm9kZSA6IGJvb2wgdCAtPiBub2RlIHQgbWV0aFxuXG4gICAgbWV0aG9kIGNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIDogbm9kZSB0IC0+IERvY3VtZW50UG9zaXRpb24udCBtZXRoXG5cbiAgICBtZXRob2QgbG9va3VwTmFtZXNwYWNlVVJJIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBsb29rdXBQcmVmaXggOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBvcHQgbWV0aFxuICBlbmRcblxubGV0IGFwcGVuZENoaWxkIChwIDogI25vZGUgdCkgKG4gOiAjbm9kZSB0KSA9IGlnbm9yZSAocCMjYXBwZW5kQ2hpbGQgKG4gOj4gbm9kZSB0KSlcblxubGV0IHJlbW92ZUNoaWxkIChwIDogI25vZGUgdCkgKG4gOiAjbm9kZSB0KSA9IGlnbm9yZSAocCMjcmVtb3ZlQ2hpbGQgKG4gOj4gbm9kZSB0KSlcblxubGV0IHJlcGxhY2VDaGlsZCAocCA6ICNub2RlIHQpIChuIDogI25vZGUgdCkgKG8gOiAjbm9kZSB0KSA9XG4gIGlnbm9yZSAocCMjcmVwbGFjZUNoaWxkIChuIDo+IG5vZGUgdCkgKG8gOj4gbm9kZSB0KSlcblxubGV0IGluc2VydEJlZm9yZSAocCA6ICNub2RlIHQpIChuIDogI25vZGUgdCkgKG8gOiAjbm9kZSB0IG9wdCkgPVxuICBpZ25vcmUgKHAjI2luc2VydEJlZm9yZSAobiA6PiBub2RlIHQpIChvIDo+IG5vZGUgdCBvcHQpKVxuXG4oKiogU3BlY2lmaWNhdGlvbiBvZiBbQXR0cl0gb2JqZWN0cy4gKilcbmNsYXNzIHR5cGUgYXR0ciA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgbm9kZVxuXG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3BlY2lmaWVkIDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB2YWx1ZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBvd25lckVsZW1lbnQgOiBlbGVtZW50IHQgcHJvcFxuICBlbmRcblxuKCoqIFNwZWNpZmljYXRpb24gb2YgW05hbWVkTm9kZU1hcF0gb2JqZWN0cy4gKilcbmFuZCBbJ25vZGVdIG5hbWVkTm9kZU1hcCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBnZXROYW1lZEl0ZW0gOiBqc19zdHJpbmcgdCAtPiAnbm9kZSB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0TmFtZWRJdGVtIDogJ25vZGUgdCAtPiAnbm9kZSB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2QgcmVtb3ZlTmFtZWRJdGVtIDoganNfc3RyaW5nIHQgLT4gJ25vZGUgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIGl0ZW0gOiBpbnQgLT4gJ25vZGUgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIGxlbmd0aCA6IGludCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiogU3BlY2lmaWNhdGlvbiBvZiBbRWxlbWVudF0gb2JqZWN0cy4gKilcbmFuZCBlbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBub2RlXG5cbiAgICBtZXRob2QgdGFnTmFtZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBnZXRBdHRyaWJ1dGUgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEF0dHJpYnV0ZSA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlbW92ZUF0dHJpYnV0ZSA6IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGhhc0F0dHJpYnV0ZSA6IGpzX3N0cmluZyB0IC0+IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0QXR0cmlidXRlTlMgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEF0dHJpYnV0ZU5TIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVtb3ZlQXR0cmlidXRlTlMgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBoYXNBdHRyaWJ1dGVOUyA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0QXR0cmlidXRlTm9kZSA6IGpzX3N0cmluZyB0IC0+IGF0dHIgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEF0dHJpYnV0ZU5vZGUgOiBhdHRyIHQgLT4gYXR0ciB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2QgcmVtb3ZlQXR0cmlidXRlTm9kZSA6IGF0dHIgdCAtPiBhdHRyIHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEF0dHJpYnV0ZU5vZGVOUyA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IGF0dHIgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEF0dHJpYnV0ZU5vZGVOUyA6IGF0dHIgdCAtPiBhdHRyIHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRFbGVtZW50c0J5VGFnTmFtZSA6IGpzX3N0cmluZyB0IC0+IGVsZW1lbnQgbm9kZUxpc3QgdCBtZXRoXG5cbiAgICBtZXRob2QgYXR0cmlidXRlcyA6IGF0dHIgbmFtZWROb2RlTWFwIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBjaGFyYWN0ZXJEYXRhID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBub2RlXG5cbiAgICBtZXRob2QgZGF0YSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBsZW5ndGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHN1YmpzX3N0cmluZ0RhdGEgOiBpbnQgLT4gaW50IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCBhcHBlbmREYXRhIDoganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgaW5zZXJ0RGF0YSA6IGludCAtPiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkZWxldGVEYXRhIDogaW50IC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZXBsYWNlRGF0YSA6IGludCAtPiBpbnQgLT4ganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGNvbW1lbnQgPSBjaGFyYWN0ZXJEYXRhXG5cbmNsYXNzIHR5cGUgdGV4dCA9IGNoYXJhY3RlckRhdGFcblxuY2xhc3MgdHlwZSBkb2N1bWVudEZyYWdtZW50ID0gbm9kZVxuXG5jbGFzcyB0eXBlIFsnZWxlbWVudF0gZG9jdW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IG5vZGVcblxuICAgIG1ldGhvZCBkb2N1bWVudEVsZW1lbnQgOiAnZWxlbWVudCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjcmVhdGVEb2N1bWVudEZyYWdtZW50IDogZG9jdW1lbnRGcmFnbWVudCB0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVFbGVtZW50IDoganNfc3RyaW5nIHQgLT4gJ2VsZW1lbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlRWxlbWVudE5TIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4gJ2VsZW1lbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlVGV4dE5vZGUgOiBqc19zdHJpbmcgdCAtPiB0ZXh0IHQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZUF0dHJpYnV0ZSA6IGpzX3N0cmluZyB0IC0+IGF0dHIgdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlQ29tbWVudCA6IGpzX3N0cmluZyB0IC0+IGNvbW1lbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RWxlbWVudEJ5SWQgOiBqc19zdHJpbmcgdCAtPiAnZWxlbWVudCB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RWxlbWVudHNCeVRhZ05hbWUgOiBqc19zdHJpbmcgdCAtPiAnZWxlbWVudCBub2RlTGlzdCB0IG1ldGhcblxuICAgIG1ldGhvZCBpbXBvcnROb2RlIDogZWxlbWVudCB0IC0+IGJvb2wgdCAtPiAnZWxlbWVudCB0IG1ldGhcblxuICAgIG1ldGhvZCBhZG9wdE5vZGUgOiBlbGVtZW50IHQgLT4gJ2VsZW1lbnQgdCBtZXRoXG4gIGVuZFxuXG50eXBlIG5vZGVfdHlwZSA9XG4gIHwgRWxlbWVudCBvZiBlbGVtZW50IHRcbiAgfCBBdHRyIG9mIGF0dHIgdFxuICB8IFRleHQgb2YgdGV4dCB0XG4gIHwgT3RoZXIgb2Ygbm9kZSB0XG5cbmxldCBub2RlVHlwZSBlID1cbiAgbWF0Y2ggZSMjLm5vZGVUeXBlIHdpdGhcbiAgfCBFTEVNRU5UIC0+IEVsZW1lbnQgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgfCBBVFRSSUJVVEUgLT4gQXR0ciAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICB8IENEQVRBX1NFQ1RJT04gfCBURVhUIC0+IFRleHQgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgfCBfIC0+IE90aGVyIChlIDo+IG5vZGUgdClcblxubW9kdWxlIENvZXJjZVRvID0gc3RydWN0XG4gIGxldCBjYXN0IChlIDogI25vZGUgSnMudCkgdCA9XG4gICAgaWYgZSMjLm5vZGVUeXBlID09IHQgdGhlbiBKcy5zb21lIChKcy5VbnNhZmUuY29lcmNlIGUpIGVsc2UgSnMubnVsbFxuXG4gIGxldCBlbGVtZW50IGUgOiBlbGVtZW50IEpzLnQgSnMub3B0ID0gY2FzdCBlIEVMRU1FTlRcblxuICBsZXQgdGV4dCBlIDogdGV4dCBKcy50IEpzLm9wdCA9XG4gICAgaWYgZSMjLm5vZGVUeXBlID09IFRFWFQgfHwgZSMjLm5vZGVUeXBlID09IENEQVRBX1NFQ1RJT05cbiAgICB0aGVuIEpzLnNvbWUgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICBlbHNlIEpzLm51bGxcblxuICBsZXQgYXR0ciBlIDogYXR0ciBKcy50IEpzLm9wdCA9IGNhc3QgZSBBVFRSSUJVVEVcbmVuZFxuXG50eXBlICgnYSwgJ2IpIGV2ZW50X2xpc3RlbmVyID0gKCdhLCAnYiAtPiBib29sIHQpIG1ldGhfY2FsbGJhY2sgb3B0XG4oKiogVGhlIHR5cGUgb2YgZXZlbnQgbGlzdGVuZXIgZnVuY3Rpb25zLiAgVGhlIGZpcnN0IHR5cGUgcGFyYW1ldGVyXG4gICAgICBbJ2FdIGlzIHRoZSB0eXBlIG9mIHRoZSB0YXJnZXQgb2JqZWN0OyB0aGUgc2Vjb25kIHBhcmFtZXRlclxuICAgICAgWydiXSBpcyB0aGUgdHlwZSBvZiB0aGUgZXZlbnQgb2JqZWN0LiAqKVxuXG5jbGFzcyB0eXBlIFsnYV0gZXZlbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgX3R5cGUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdGFyZ2V0IDogJ2EgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGN1cnJlbnRUYXJnZXQgOiAnYSB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICAoKiBMZWdhY3kgbWV0aG9kcyAqKVxuICAgIG1ldGhvZCBzcmNFbGVtZW50IDogJ2EgdCBvcHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBbJ2EsICdiXSBjdXN0b21FdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgWydhXSBldmVudFxuXG4gICAgbWV0aG9kIGRldGFpbCA6ICdiIEpzLm9wdCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgbm9faGFuZGxlciA6ICgnYSwgJ2IpIGV2ZW50X2xpc3RlbmVyID0gSnMubnVsbFxuXG5sZXQgd2luZG93X2V2ZW50ICgpIDogJ2EgI2V2ZW50IHQgPSBKcy5VbnNhZmUucHVyZV9qc19leHByIFwiZXZlbnRcIlxuXG4oKiBUaGUgZnVuY3Rpb24gcHJldmVudERlZmF1bHQgbXVzdCBiZSBjYWxsZWQgZXhwbGljaXRseSB3aGVuXG4gICB1c2luZyBhZGRFdmVudExpc3RlbmVyLi4uICopXG5sZXQgaGFuZGxlciBmID1cbiAgSnMuc29tZVxuICAgIChKcy5VbnNhZmUuY2FsbGJhY2sgKGZ1biBlIC0+XG4gICAgICAgICAoKiBkZXBlbmRpbmcgb24gdGhlIGludGVybmV0IGV4cGxvcmVyIHZlcnNpb24sIGUgY2FuIGJlIG51bGwgb3IgdW5kZWZpbmVkLiAqKVxuICAgICAgICAgaWYgbm90IChKcy5PcHQudGVzdCAoc29tZSBlKSlcbiAgICAgICAgIHRoZW4gKFxuICAgICAgICAgICBsZXQgZSA9IHdpbmRvd19ldmVudCAoKSBpblxuICAgICAgICAgICBsZXQgcmVzID0gZiBlIGluXG4gICAgICAgICAgIGlmIG5vdCAoSnMudG9fYm9vbCByZXMpIHRoZW4gZSMjLnJldHVyblZhbHVlIDo9IHJlcztcbiAgICAgICAgICAgcmVzKVxuICAgICAgICAgZWxzZVxuICAgICAgICAgICBsZXQgcmVzID0gZiBlIGluXG4gICAgICAgICAgIGlmIG5vdCAoSnMudG9fYm9vbCByZXMpIHRoZW4gKEpzLlVuc2FmZS5jb2VyY2UgZSkjI3ByZXZlbnREZWZhdWx0O1xuICAgICAgICAgICByZXMpKVxuXG5sZXQgZnVsbF9oYW5kbGVyIGYgPVxuICBKcy5zb21lXG4gICAgKEpzLlVuc2FmZS5tZXRoX2NhbGxiYWNrIChmdW4gdGhpcyBlIC0+XG4gICAgICAgICAoKiBkZXBlbmRpbmcgb24gdGhlIGludGVybmV0IGV4cGxvcmVyIHZlcnNpb24sIGUgY2FuIGJlIG51bGwgb3IgdW5kZWZpbmVkICopXG4gICAgICAgICBpZiBub3QgKEpzLk9wdC50ZXN0IChzb21lIGUpKVxuICAgICAgICAgdGhlbiAoXG4gICAgICAgICAgIGxldCBlID0gd2luZG93X2V2ZW50ICgpIGluXG4gICAgICAgICAgIGxldCByZXMgPSBmIHRoaXMgZSBpblxuICAgICAgICAgICBpZiBub3QgKEpzLnRvX2Jvb2wgcmVzKSB0aGVuIGUjIy5yZXR1cm5WYWx1ZSA6PSByZXM7XG4gICAgICAgICAgIHJlcylcbiAgICAgICAgIGVsc2VcbiAgICAgICAgICAgbGV0IHJlcyA9IGYgdGhpcyBlIGluXG4gICAgICAgICAgIGlmIG5vdCAoSnMudG9fYm9vbCByZXMpIHRoZW4gKEpzLlVuc2FmZS5jb2VyY2UgZSkjI3ByZXZlbnREZWZhdWx0O1xuICAgICAgICAgICByZXMpKVxuXG5sZXQgaW52b2tlX2hhbmRsZXIgKGYgOiAoJ2EsICdiKSBldmVudF9saXN0ZW5lcikgKHRoaXMgOiAnYSkgKGV2ZW50IDogJ2IpIDogYm9vbCB0ID1cbiAgSnMuVW5zYWZlLmNhbGwgZiB0aGlzIFt8IEpzLlVuc2FmZS5pbmplY3QgZXZlbnQgfF1cblxubGV0IGV2ZW50VGFyZ2V0IChlIDogKDwgLi4gPiBhcyAnYSkgI2V2ZW50IHQpIDogJ2EgdCA9XG4gIGxldCB0YXJnZXQgPVxuICAgIE9wdC5nZXQgZSMjLnRhcmdldCAoZnVuICgpIC0+IE9wdC5nZXQgZSMjLnNyY0VsZW1lbnQgKGZ1biAoKSAtPiByYWlzZSBOb3RfZm91bmQpKVxuICBpblxuICBpZiBKcy5pbnN0YW5jZW9mIHRhcmdldCBKcy5VbnNhZmUuZ2xvYmFsIyMuX05vZGVcbiAgdGhlblxuICAgICgqIFdvcmthcm91bmQgZm9yIFNhZmFyaSBidWcgKilcbiAgICBsZXQgdGFyZ2V0JyA6IG5vZGUgSnMudCA9IEpzLlVuc2FmZS5jb2VyY2UgdGFyZ2V0IGluXG4gICAgaWYgdGFyZ2V0JyMjLm5vZGVUeXBlID09IFRFWFRcbiAgICB0aGVuIEpzLlVuc2FmZS5jb2VyY2UgKE9wdC5nZXQgdGFyZ2V0JyMjLnBhcmVudE5vZGUgKGZ1biAoKSAtPiBhc3NlcnQgZmFsc2UpKVxuICAgIGVsc2UgdGFyZ2V0XG4gIGVsc2UgdGFyZ2V0XG5cbm1vZHVsZSBFdmVudCA9IHN0cnVjdFxuICB0eXBlICdhIHR5cCA9IEpzLmpzX3N0cmluZyBKcy50XG5cbiAgbGV0IG1ha2UgcyA9IEpzLnN0cmluZyBzXG5lbmRcblxudHlwZSBldmVudF9saXN0ZW5lcl9pZCA9IHVuaXQgLT4gdW5pdFxuXG5jbGFzcyB0eXBlIGV2ZW50X2xpc3RlbmVyX29wdGlvbnMgPVxuICBvYmplY3RcbiAgICBtZXRob2QgY2FwdHVyZSA6IGJvb2wgdCB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uY2UgOiBib29sIHQgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwYXNzaXZlIDogYm9vbCB0IHdyaXRlb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgYWRkRXZlbnRMaXN0ZW5lcldpdGhPcHRpb25zIChlIDogKDwgLi4gPiBhcyAnYSkgdCkgdHlwID9jYXB0dXJlID9vbmNlID9wYXNzaXZlIGggPVxuICBpZiAoSnMuVW5zYWZlLmNvZXJjZSBlKSMjLmFkZEV2ZW50TGlzdGVuZXIgPT0gSnMudW5kZWZpbmVkXG4gIHRoZW5cbiAgICBsZXQgZXYgPSAoSnMuc3RyaW5nIFwib25cIikjI2NvbmNhdCB0eXAgaW5cbiAgICBsZXQgY2FsbGJhY2sgZSA9IEpzLlVuc2FmZS5jYWxsIChoLCBlLCBbfHxdKSBpblxuICAgIGxldCAoKSA9IChKcy5VbnNhZmUuY29lcmNlIGUpIyNhdHRhY2hFdmVudCBldiBjYWxsYmFjayBpblxuICAgIGZ1biAoKSAtPiAoSnMuVW5zYWZlLmNvZXJjZSBlKSMjZGV0YWNoRXZlbnQgZXYgY2FsbGJhY2tcbiAgZWxzZVxuICAgIGxldCBvcHRzIDogZXZlbnRfbGlzdGVuZXJfb3B0aW9ucyB0ID0gSnMuVW5zYWZlLm9iaiBbfHxdIGluXG4gICAgbGV0IGl0ZXIgdCBmID1cbiAgICAgIG1hdGNoIHQgd2l0aFxuICAgICAgfCBOb25lIC0+ICgpXG4gICAgICB8IFNvbWUgYiAtPiBmIGJcbiAgICBpblxuICAgIGl0ZXIgY2FwdHVyZSAoZnVuIGIgLT4gb3B0cyMjLmNhcHR1cmUgOj0gYik7XG4gICAgaXRlciBvbmNlIChmdW4gYiAtPiBvcHRzIyMub25jZSA6PSBiKTtcbiAgICBpdGVyIHBhc3NpdmUgKGZ1biBiIC0+IG9wdHMjIy5wYXNzaXZlIDo9IGIpO1xuICAgIGxldCAoKSA9IChKcy5VbnNhZmUuY29lcmNlIGUpIyNhZGRFdmVudExpc3RlbmVyIHR5cCBoIG9wdHMgaW5cbiAgICBmdW4gKCkgLT4gKEpzLlVuc2FmZS5jb2VyY2UgZSkjI3JlbW92ZUV2ZW50TGlzdGVuZXIgdHlwIGggb3B0c1xuXG5sZXQgYWRkRXZlbnRMaXN0ZW5lciAoZSA6ICg8IC4uID4gYXMgJ2EpIHQpIHR5cCBoIGNhcHQgPVxuICBhZGRFdmVudExpc3RlbmVyV2l0aE9wdGlvbnMgZSB0eXAgfmNhcHR1cmU6Y2FwdCBoXG5cbmxldCByZW1vdmVFdmVudExpc3RlbmVyIGlkID0gaWQgKClcblxubGV0IHByZXZlbnREZWZhdWx0IGV2ID1cbiAgaWYgSnMuT3B0ZGVmLnRlc3QgKEpzLlVuc2FmZS5jb2VyY2UgZXYpIyMucHJldmVudERlZmF1bHQgKCogSUUgaGFjayAqKVxuICB0aGVuIChKcy5VbnNhZmUuY29lcmNlIGV2KSMjcHJldmVudERlZmF1bHRcbiAgZWxzZSAoSnMuVW5zYWZlLmNvZXJjZSBldikjIy5yZXR1cm5WYWx1ZSA6PSBKcy5ib29sIGZhbHNlXG5cbmxldCBjcmVhdGVDdXN0b21FdmVudCA/YnViYmxlcyA/Y2FuY2VsYWJsZSA/ZGV0YWlsIHR5cCA9XG4gIGxldCBvcHRfaXRlciBmID0gZnVuY3Rpb25cbiAgICB8IE5vbmUgLT4gKClcbiAgICB8IFNvbWUgeCAtPiBmIHhcbiAgaW5cbiAgbGV0IG9wdHMgPSBVbnNhZmUub2JqIFt8fF0gaW5cbiAgb3B0X2l0ZXIgKGZ1biB4IC0+IG9wdHMjIy5idWJibGVzIDo9IGJvb2wgeCkgYnViYmxlcztcbiAgb3B0X2l0ZXIgKGZ1biB4IC0+IG9wdHMjIy5jYW5jZWxhYmxlIDo9IGJvb2wgeCkgY2FuY2VsYWJsZTtcbiAgb3B0X2l0ZXIgKGZ1biB4IC0+IG9wdHMjIy5kZXRhaWwgOj0gc29tZSB4KSBkZXRhaWw7XG4gIGxldCBjb25zdHIgOlxuICAgICAgKCAgICgnYSwgJ2IpICNjdXN0b21FdmVudCBKcy50IEV2ZW50LnR5cFxuICAgICAgIC0+IDwgZGV0YWlsIDogJ2Igb3B0IHByb3AgPiB0XG4gICAgICAgLT4gKCdhLCAnYikgY3VzdG9tRXZlbnQgdClcbiAgICAgIGNvbnN0ciA9XG4gICAgVW5zYWZlLmdsb2JhbCMjLl9DdXN0b21FdmVudFxuICBpblxuICBuZXclanMgY29uc3RyIHR5cCBvcHRzXG5cbigqIElFIDwgOSAqKVxuXG5jbGFzcyB0eXBlIHN0cmluZ0xpc3QgPVxuICBvYmplY3RcbiAgICBtZXRob2QgaXRlbSA6IGludCAtPiBqc19zdHJpbmcgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIGxlbmd0aCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY29udGFpbnMgOiBqc19zdHJpbmcgdCAtPiBib29sIHQgbWV0aFxuICBlbmRcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSsOpcsO0bWUgVm91aWxsb25cbiAqIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxub3BlbiEgSW1wb3J0XG5vcGVuIEpzXG5cbnR5cGUgdWludDMyID0gZmxvYXRcblxuY2xhc3MgdHlwZSBhcnJheUJ1ZmZlciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBieXRlTGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzbGljZSA6IGludCAtPiBpbnQgLT4gYXJyYXlCdWZmZXIgdCBtZXRoXG5cbiAgICBtZXRob2Qgc2xpY2VfdG9FbmQgOiBpbnQgLT4gYXJyYXlCdWZmZXIgdCBtZXRoXG4gIGVuZFxuXG5sZXQgYXJyYXlCdWZmZXIgOiAoaW50IC0+IGFycmF5QnVmZmVyIHQpIGNvbnN0ciA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fQXJyYXlCdWZmZXJcblxuY2xhc3MgdHlwZSBhcnJheUJ1ZmZlclZpZXcgPVxuICBvYmplY3RcbiAgICBtZXRob2QgYnVmZmVyIDogYXJyYXlCdWZmZXIgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYnl0ZU9mZnNldCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYnl0ZUxlbmd0aCA6IGludCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIFsnYSwgJ2JdIHR5cGVkQXJyYXkgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGFycmF5QnVmZmVyVmlld1xuXG4gICAgbWV0aG9kIF9CWVRFU19QRVJfRUxFTUVOVCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzZXRfZnJvbUFycmF5IDogJ2EganNfYXJyYXkgdCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0X2Zyb21UeXBlZEFycmF5IDogKCdhLCAnYikgdHlwZWRBcnJheSB0IC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzdWJhcnJheSA6IGludCAtPiBpbnQgLT4gKCdhLCAnYikgdHlwZWRBcnJheSB0IG1ldGhcblxuICAgIG1ldGhvZCBzdWJhcnJheV90b0VuZCA6IGludCAtPiAoJ2EsICdiKSB0eXBlZEFycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIHNsaWNlIDogaW50IC0+IGludCAtPiAoJ2EsICdiKSB0eXBlZEFycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIHNsaWNlX3RvRW5kIDogaW50IC0+ICgnYSwgJ2IpIHR5cGVkQXJyYXkgdCBtZXRoXG5cbiAgICAoKiBUaGlzIGZha2UgbWV0aG9kIGlzIG5lZWRlZCBmb3IgdHlwaW5nIHB1cnBvc2VzLlxuICAgICAgIFdpdGhvdXQgaXQsIFsnYl0gd291bGQgbm90IGJlIGNvbnN0cmFpbmVkLiAqKVxuICAgIG1ldGhvZCBfY29udGVudF90eXBlXyA6ICdiIG9wdGRlZiByZWFkb25seV9wcm9wXG4gIGVuZFxuXG50eXBlIGludDhBcnJheSA9IChpbnQsIEJpZ2FycmF5LmludDhfc2lnbmVkX2VsdCkgdHlwZWRBcnJheVxuXG50eXBlIHVpbnQ4QXJyYXkgPSAoaW50LCBCaWdhcnJheS5pbnQ4X3Vuc2lnbmVkX2VsdCkgdHlwZWRBcnJheVxuXG50eXBlIGludDE2QXJyYXkgPSAoaW50LCBCaWdhcnJheS5pbnQxNl9zaWduZWRfZWx0KSB0eXBlZEFycmF5XG5cbnR5cGUgdWludDE2QXJyYXkgPSAoaW50LCBCaWdhcnJheS5pbnQxNl91bnNpZ25lZF9lbHQpIHR5cGVkQXJyYXlcblxudHlwZSBpbnQzMkFycmF5ID0gKGludDMyLCBCaWdhcnJheS5pbnQzMl9lbHQpIHR5cGVkQXJyYXlcblxudHlwZSB1aW50MzJBcnJheSA9IChpbnQzMiwgQmlnYXJyYXkuaW50MzJfZWx0KSB0eXBlZEFycmF5XG5cbnR5cGUgZmxvYXQzMkFycmF5ID0gKGZsb2F0LCBCaWdhcnJheS5mbG9hdDMyX2VsdCkgdHlwZWRBcnJheVxuXG50eXBlIGZsb2F0NjRBcnJheSA9IChmbG9hdCwgQmlnYXJyYXkuZmxvYXQ2NF9lbHQpIHR5cGVkQXJyYXlcblxuZXh0ZXJuYWwga2luZCA6ICgnYSwgJ2IpIHR5cGVkQXJyYXkgdCAtPiAoJ2EsICdiKSBCaWdhcnJheS5raW5kXG4gID0gXCJjYW1sX2JhX2tpbmRfb2ZfdHlwZWRfYXJyYXlcIlxuXG5leHRlcm5hbCBmcm9tX2dlbmFycmF5IDpcbiAgKCdhLCAnYiwgQmlnYXJyYXkuY19sYXlvdXQpIEJpZ2FycmF5LkdlbmFycmF5LnQgLT4gKCdhLCAnYikgdHlwZWRBcnJheSB0XG4gID0gXCJjYW1sX2JhX3RvX3R5cGVkX2FycmF5XCJcblxuZXh0ZXJuYWwgdG9fZ2VuYXJyYXkgOlxuICAoJ2EsICdiKSB0eXBlZEFycmF5IHQgLT4gKCdhLCAnYiwgQmlnYXJyYXkuY19sYXlvdXQpIEJpZ2FycmF5LkdlbmFycmF5LnRcbiAgPSBcImNhbWxfYmFfZnJvbV90eXBlZF9hcnJheVwiXG5cbmxldCBpbnQ4QXJyYXkgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX0ludDhBcnJheVxuXG5sZXQgaW50OEFycmF5X2Zyb21BcnJheSA9IGludDhBcnJheVxuXG5sZXQgaW50OEFycmF5X2Zyb21UeXBlZEFycmF5ID0gaW50OEFycmF5XG5cbmxldCBpbnQ4QXJyYXlfZnJvbUJ1ZmZlciA9IGludDhBcnJheVxuXG5sZXQgaW50OEFycmF5X2luQnVmZmVyID0gaW50OEFycmF5XG5cbmxldCB1aW50OEFycmF5ID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9VaW50OEFycmF5XG5cbmxldCB1aW50OEFycmF5X2Zyb21BcnJheSA9IHVpbnQ4QXJyYXlcblxubGV0IHVpbnQ4QXJyYXlfZnJvbVR5cGVkQXJyYXkgPSB1aW50OEFycmF5XG5cbmxldCB1aW50OEFycmF5X2Zyb21CdWZmZXIgPSB1aW50OEFycmF5XG5cbmxldCB1aW50OEFycmF5X2luQnVmZmVyID0gdWludDhBcnJheVxuXG5sZXQgaW50MTZBcnJheSA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fSW50MTZBcnJheVxuXG5sZXQgaW50MTZBcnJheV9mcm9tQXJyYXkgPSBpbnQxNkFycmF5XG5cbmxldCBpbnQxNkFycmF5X2Zyb21UeXBlZEFycmF5ID0gaW50MTZBcnJheVxuXG5sZXQgaW50MTZBcnJheV9mcm9tQnVmZmVyID0gaW50MTZBcnJheVxuXG5sZXQgaW50MTZBcnJheV9pbkJ1ZmZlciA9IGludDE2QXJyYXlcblxubGV0IHVpbnQxNkFycmF5ID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9VaW50MTZBcnJheVxuXG5sZXQgdWludDE2QXJyYXlfZnJvbUFycmF5ID0gdWludDE2QXJyYXlcblxubGV0IHVpbnQxNkFycmF5X2Zyb21UeXBlZEFycmF5ID0gdWludDE2QXJyYXlcblxubGV0IHVpbnQxNkFycmF5X2Zyb21CdWZmZXIgPSB1aW50MTZBcnJheVxuXG5sZXQgdWludDE2QXJyYXlfaW5CdWZmZXIgPSB1aW50MTZBcnJheVxuXG5sZXQgaW50MzJBcnJheSA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fSW50MzJBcnJheVxuXG5sZXQgaW50MzJBcnJheV9mcm9tQXJyYXkgPSBpbnQzMkFycmF5XG5cbmxldCBpbnQzMkFycmF5X2Zyb21UeXBlZEFycmF5ID0gaW50MzJBcnJheVxuXG5sZXQgaW50MzJBcnJheV9mcm9tQnVmZmVyID0gaW50MzJBcnJheVxuXG5sZXQgaW50MzJBcnJheV9pbkJ1ZmZlciA9IGludDMyQXJyYXlcblxubGV0IHVpbnQzMkFycmF5ID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9VaW50MzJBcnJheVxuXG5sZXQgdWludDMyQXJyYXlfZnJvbUFycmF5ID0gdWludDMyQXJyYXlcblxubGV0IHVpbnQzMkFycmF5X2Zyb21UeXBlZEFycmF5ID0gdWludDMyQXJyYXlcblxubGV0IHVpbnQzMkFycmF5X2Zyb21CdWZmZXIgPSB1aW50MzJBcnJheVxuXG5sZXQgdWludDMyQXJyYXlfaW5CdWZmZXIgPSB1aW50MzJBcnJheVxuXG5sZXQgZmxvYXQzMkFycmF5ID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9GbG9hdDMyQXJyYXlcblxubGV0IGZsb2F0MzJBcnJheV9mcm9tQXJyYXkgPSBmbG9hdDMyQXJyYXlcblxubGV0IGZsb2F0MzJBcnJheV9mcm9tVHlwZWRBcnJheSA9IGZsb2F0MzJBcnJheVxuXG5sZXQgZmxvYXQzMkFycmF5X2Zyb21CdWZmZXIgPSBmbG9hdDMyQXJyYXlcblxubGV0IGZsb2F0MzJBcnJheV9pbkJ1ZmZlciA9IGZsb2F0MzJBcnJheVxuXG5sZXQgZmxvYXQ2NEFycmF5ID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9GbG9hdDY0QXJyYXlcblxubGV0IGZsb2F0NjRBcnJheV9mcm9tQXJyYXkgPSBmbG9hdDY0QXJyYXlcblxubGV0IGZsb2F0NjRBcnJheV9mcm9tVHlwZWRBcnJheSA9IGZsb2F0NjRBcnJheVxuXG5sZXQgZmxvYXQ2NEFycmF5X2Zyb21CdWZmZXIgPSBmbG9hdDY0QXJyYXlcblxubGV0IGZsb2F0NjRBcnJheV9pbkJ1ZmZlciA9IGZsb2F0NjRBcnJheVxuXG5sZXQgc2V0IDogKCdhLCAnYikgdHlwZWRBcnJheSB0IC0+IGludCAtPiAnYSAtPiB1bml0ID1cbiBmdW4gYSBpIHYgLT4gYXJyYXlfc2V0IChVbnNhZmUuY29lcmNlIGEpIGkgdlxuXG5sZXQgZ2V0IDogKCdhLCAnYikgdHlwZWRBcnJheSB0IC0+IGludCAtPiAnYSBvcHRkZWYgPSBmdW4gYSBpIC0+IEpzLlVuc2FmZS5nZXQgYSBpXG5cbmxldCB1bnNhZmVfZ2V0IDogKCdhLCAnYikgdHlwZWRBcnJheSB0IC0+IGludCAtPiAnYSA9IGZ1biBhIGkgLT4gSnMuVW5zYWZlLmdldCBhIGlcblxuY2xhc3MgdHlwZSBkYXRhVmlldyA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgYXJyYXlCdWZmZXJWaWV3XG5cbiAgICBtZXRob2QgZ2V0SW50OCA6IGludCAtPiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFVpbnQ4IDogaW50IC0+IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0SW50MTYgOiBpbnQgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRJbnQxNl8gOiBpbnQgLT4gYm9vbCB0IC0+IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VWludDE2IDogaW50IC0+IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VWludDE2XyA6IGludCAtPiBib29sIHQgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRJbnQzMiA6IGludCAtPiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEludDMyXyA6IGludCAtPiBib29sIHQgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRVaW50MzIgOiBpbnQgLT4gdWludDMyIG1ldGhcblxuICAgIG1ldGhvZCBnZXRVaW50MzJfIDogaW50IC0+IGJvb2wgdCAtPiB1aW50MzIgbWV0aFxuXG4gICAgbWV0aG9kIGdldEZsb2F0MzIgOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEZsb2F0MzJfIDogaW50IC0+IGJvb2wgdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RmxvYXQ2NCA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RmxvYXQ2NF8gOiBpbnQgLT4gYm9vbCB0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRJbnQ4IDogaW50IC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRVaW50OCA6IGludCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0SW50MTYgOiBpbnQgLT4gaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEludDE2XyA6IGludCAtPiBpbnQgLT4gYm9vbCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFVpbnQxNiA6IGludCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0VWludDE2XyA6IGludCAtPiBpbnQgLT4gYm9vbCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEludDMyIDogaW50IC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRJbnQzMl8gOiBpbnQgLT4gaW50IC0+IGJvb2wgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRVaW50MzIgOiBpbnQgLT4gdWludDMyIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFVpbnQzMl8gOiBpbnQgLT4gdWludDMyIC0+IGJvb2wgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRGbG9hdDMyIDogaW50IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEZsb2F0MzJfIDogaW50IC0+IGZsb2F0IC0+IGJvb2wgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRGbG9hdDY0IDogaW50IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEZsb2F0NjRfIDogaW50IC0+IGZsb2F0IC0+IGJvb2wgdCAtPiB1bml0IG1ldGhcbiAgZW5kXG5cbmxldCBkYXRhVmlldyA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fRGF0YVZpZXdcblxubGV0IGRhdGFWaWV3X2luQnVmZmVyID0gZGF0YVZpZXdcblxubW9kdWxlIEJpZ3N0cmluZyA9IHN0cnVjdFxuICB0eXBlIHQgPSAoY2hhciwgQmlnYXJyYXkuaW50OF91bnNpZ25lZF9lbHQsIEJpZ2FycmF5LmNfbGF5b3V0KSBCaWdhcnJheS5BcnJheTEudFxuXG4gIGV4dGVybmFsIHRvX2FycmF5QnVmZmVyIDogdCAtPiBhcnJheUJ1ZmZlciBKcy50ID0gXCJiaWdzdHJpbmdfdG9fYXJyYXlfYnVmZmVyXCJcblxuICBleHRlcm5hbCB0b191aW50OEFycmF5IDogdCAtPiB1aW50OEFycmF5IEpzLnQgPSBcImJpZ3N0cmluZ190b190eXBlZF9hcnJheVwiXG5cbiAgZXh0ZXJuYWwgb2ZfYXJyYXlCdWZmZXIgOiBhcnJheUJ1ZmZlciBKcy50IC0+IHQgPSBcImJpZ3N0cmluZ19vZl9hcnJheV9idWZmZXJcIlxuXG4gIGV4dGVybmFsIG9mX3VpbnQ4QXJyYXkgOiB1aW50OEFycmF5IEpzLnQgLT4gdCA9IFwiYmlnc3RyaW5nX29mX3R5cGVkX2FycmF5XCJcbmVuZFxuXG5tb2R1bGUgU3RyaW5nID0gc3RydWN0XG4gIGV4dGVybmFsIG9mX3VpbnQ4QXJyYXkgOiB1aW50OEFycmF5IEpzLnQgLT4gc3RyaW5nID0gXCJjYW1sX3N0cmluZ19vZl9hcnJheVwiXG5cbiAgbGV0IG9mX2FycmF5QnVmZmVyIGFiID1cbiAgICBsZXQgdWludDggPSBuZXclanMgdWludDhBcnJheV9mcm9tQnVmZmVyIGFiIGluXG4gICAgb2ZfdWludDhBcnJheSB1aW50OFxuZW5kXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDExIFBpZXJyZSBDaGFtYmFydFxuICogTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5cbm9wZW4gSnNcbm9wZW4gRG9tXG5vcGVuISBJbXBvcnRcblxuY2xhc3MgdHlwZSBibG9iID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHNpemUgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF90eXBlIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNsaWNlIDogaW50IC0+IGludCAtPiBibG9iIHQgbWV0aFxuXG4gICAgbWV0aG9kIHNsaWNlX3dpdGhDb250ZW50VHlwZSA6IGludCAtPiBpbnQgLT4ganNfc3RyaW5nIHQgLT4gYmxvYiB0IG1ldGhcbiAgZW5kXG5cbmxldCBibG9iX2NvbnN0ciA9IFVuc2FmZS5nbG9iYWwjIy5fQmxvYlxuXG50eXBlICdhIG1ha2VfYmxvYiA9XG4gID9jb250ZW50VHlwZTpzdHJpbmcgLT4gP2VuZGluZ3M6WyBgVHJhbnNwYXJlbnQgfCBgTmF0aXZlIF0gLT4gJ2EgLT4gYmxvYiB0XG5cbmxldCByZWMgZmlsdGVyX21hcCBmID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBbXVxuICB8IHYgOjogcSAtPiAoXG4gICAgICBtYXRjaCBmIHYgd2l0aFxuICAgICAgfCBOb25lIC0+IGZpbHRlcl9tYXAgZiBxXG4gICAgICB8IFNvbWUgdicgLT4gdicgOjogZmlsdGVyX21hcCBmIHEpXG5cbmxldCBtYWtlX2Jsb2Jfb3B0aW9ucyBjb250ZW50VHlwZSBlbmRpbmdzID1cbiAgbGV0IG9wdGlvbnMgPVxuICAgIGZpbHRlcl9tYXBcbiAgICAgIChmdW4gKG5hbWUsIHYpIC0+XG4gICAgICAgIG1hdGNoIHYgd2l0aFxuICAgICAgICB8IE5vbmUgLT4gTm9uZVxuICAgICAgICB8IFNvbWUgdiAtPiBTb21lIChuYW1lLCBVbnNhZmUuaW5qZWN0IChzdHJpbmcgdikpKVxuICAgICAgWyBcInR5cGVcIiwgY29udGVudFR5cGVcbiAgICAgIDsgKCBcImVuZGluZ3NcIlxuICAgICAgICAsIG1hdGNoIGVuZGluZ3Mgd2l0aFxuICAgICAgICAgIHwgTm9uZSAtPiBOb25lXG4gICAgICAgICAgfCBTb21lIGBUcmFuc3BhcmVudCAtPiBTb21lIFwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgIHwgU29tZSBgTmF0aXZlIC0+IFNvbWUgXCJuYXRpdmVcIiApXG4gICAgICBdXG4gIGluXG4gIG1hdGNoIG9wdGlvbnMgd2l0aFxuICB8IFtdIC0+IHVuZGVmaW5lZFxuICB8IGwgLT4gVW5zYWZlLm9iaiAoQXJyYXkub2ZfbGlzdCBsKVxuXG5sZXQgYmxvYl9yYXcgP2NvbnRlbnRUeXBlID9lbmRpbmdzIGEgPVxuICBsZXQgb3B0aW9ucyA9IG1ha2VfYmxvYl9vcHRpb25zIGNvbnRlbnRUeXBlIGVuZGluZ3MgaW5cbiAgbmV3JWpzIGJsb2JfY29uc3RyIChhcnJheSBhKSBvcHRpb25zXG5cbmxldCBibG9iX2Zyb21fc3RyaW5nID9jb250ZW50VHlwZSA/ZW5kaW5ncyBzID1cbiAgYmxvYl9yYXcgP2NvbnRlbnRUeXBlID9lbmRpbmdzIFt8IHN0cmluZyBzIHxdXG5cbmxldCBibG9iX2Zyb21fYW55ID9jb250ZW50VHlwZSA/ZW5kaW5ncyBsID1cbiAgbGV0IGwgPVxuICAgIExpc3QubWFwXG4gICAgICAoZnVuY3Rpb25cbiAgICAgICAgfCBgYXJyYXlCdWZmZXIgYSAtPiBVbnNhZmUuaW5qZWN0IGFcbiAgICAgICAgfCBgYXJyYXlCdWZmZXJWaWV3IGEgLT4gVW5zYWZlLmluamVjdCBhXG4gICAgICAgIHwgYHN0cmluZyBzIC0+IFVuc2FmZS5pbmplY3QgKHN0cmluZyBzKVxuICAgICAgICB8IGBqc19zdHJpbmcgcyAtPiBVbnNhZmUuaW5qZWN0IHNcbiAgICAgICAgfCBgYmxvYiBiIC0+IFVuc2FmZS5pbmplY3QgYilcbiAgICAgIGxcbiAgaW5cbiAgYmxvYl9yYXcgP2NvbnRlbnRUeXBlID9lbmRpbmdzIChBcnJheS5vZl9saXN0IGwpXG5cbmNsYXNzIHR5cGUgZmlsZSA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgYmxvYlxuXG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbGFzdE1vZGlmaWVkRGF0ZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGluIGZpcmVmb3ggMy4wLTMuNSBmaWxlLm5hbWUgaXMgbm90IGF2YWlsYWJsZSwgd2UgdXNlIHRoZSBub25zdGFuZGFyZCBmaWxlTmFtZSBpbnN0ZWFkICopXG5jbGFzcyB0eXBlIGZpbGVfbmFtZV9vbmx5ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGZpbGVOYW1lIDoganNfc3RyaW5nIHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBmaWxlbmFtZSBmaWxlID1cbiAgbGV0IGZpbGUgOiBmaWxlX25hbWVfb25seSB0ID0gSnMuVW5zYWZlLmNvZXJjZSBmaWxlIGluXG4gIG1hdGNoIE9wdGRlZi50b19vcHRpb24gZmlsZSMjLm5hbWUgd2l0aFxuICB8IE5vbmUgLT4gKFxuICAgICAgbWF0Y2ggT3B0ZGVmLnRvX29wdGlvbiBmaWxlIyMuZmlsZU5hbWUgd2l0aFxuICAgICAgfCBOb25lIC0+IGZhaWx3aXRoIFwiY2FuJ3QgcmV0cmlldmUgZmlsZSBuYW1lOiBub3QgaW1wbGVtZW50ZWRcIlxuICAgICAgfCBTb21lIG5hbWUgLT4gbmFtZSlcbiAgfCBTb21lIG5hbWUgLT4gbmFtZVxuXG50eXBlIGZpbGVfYW55ID0gPCA+IHRcblxubGV0IGRvY19jb25zdHIgPSBVbnNhZmUuZ2xvYmFsIyMuX0RvY3VtZW50XG5cbm1vZHVsZSBDb2VyY2VUbyA9IHN0cnVjdFxuICBleHRlcm5hbCBqc29uIDogZmlsZV9hbnkgLT4gJ2EgT3B0LnQgPSBcIiVpZGVudGl0eVwiXG5cbiAgbGV0IGRvY3VtZW50IChlIDogZmlsZV9hbnkpID1cbiAgICBpZiBpbnN0YW5jZW9mIGUgZG9jX2NvbnN0clxuICAgIHRoZW4gSnMuc29tZSAoVW5zYWZlLmNvZXJjZSBlIDogZWxlbWVudCBkb2N1bWVudCB0KVxuICAgIGVsc2UgSnMubnVsbFxuXG4gIGxldCBibG9iIChlIDogZmlsZV9hbnkpID1cbiAgICBpZiBpbnN0YW5jZW9mIGUgYmxvYl9jb25zdHIgdGhlbiBKcy5zb21lIChVbnNhZmUuY29lcmNlIGUgOiAjYmxvYiB0KSBlbHNlIEpzLm51bGxcblxuICBsZXQgc3RyaW5nIChlIDogZmlsZV9hbnkpID1cbiAgICBpZiB0eXBlb2YgZSA9PSBzdHJpbmcgXCJzdHJpbmdcIlxuICAgIHRoZW4gSnMuc29tZSAoVW5zYWZlLmNvZXJjZSBlIDoganNfc3RyaW5nIHQpXG4gICAgZWxzZSBKcy5udWxsXG5cbiAgbGV0IGFycmF5QnVmZmVyIChlIDogZmlsZV9hbnkpID1cbiAgICBpZiBpbnN0YW5jZW9mIGUgVHlwZWRfYXJyYXkuYXJyYXlCdWZmZXJcbiAgICB0aGVuIEpzLnNvbWUgKFVuc2FmZS5jb2VyY2UgZSA6IFR5cGVkX2FycmF5LmFycmF5QnVmZmVyIHQpXG4gICAgZWxzZSBKcy5udWxsXG5lbmRcblxuY2xhc3MgdHlwZSBmaWxlTGlzdCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgW2ZpbGVdIERvbS5ub2RlTGlzdFxuICBlbmRcblxuY2xhc3MgdHlwZSBmaWxlRXJyb3IgPVxuICBvYmplY3RcbiAgICBtZXRob2QgY29kZSA6IGludCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIFsnYV0gcHJvZ3Jlc3NFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgWydhXSBldmVudFxuXG4gICAgbWV0aG9kIGxlbmd0aENvbXB1dGFibGUgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGxvYWRlZCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdG90YWwgOiBpbnQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBwcm9ncmVzc0V2ZW50VGFyZ2V0ID1cbiAgb2JqZWN0ICgnc2VsZilcbiAgICBtZXRob2Qgb25sb2Fkc3RhcnQgOiAoJ3NlbGYgdCwgJ3NlbGYgcHJvZ3Jlc3NFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ucHJvZ3Jlc3MgOiAoJ3NlbGYgdCwgJ3NlbGYgcHJvZ3Jlc3NFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ubG9hZCA6ICgnc2VsZiB0LCAnc2VsZiBwcm9ncmVzc0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25hYm9ydCA6ICgnc2VsZiB0LCAnc2VsZiBwcm9ncmVzc0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25lcnJvciA6ICgnc2VsZiB0LCAnc2VsZiBwcm9ncmVzc0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25sb2FkZW5kIDogKCdzZWxmIHQsICdzZWxmIHByb2dyZXNzRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcbiAgZW5kXG5cbnR5cGUgcmVhZHlTdGF0ZSA9XG4gIHwgRU1QVFlcbiAgfCBMT0FESU5HXG4gIHwgRE9ORVxuXG5jbGFzcyB0eXBlIGZpbGVSZWFkZXIgPVxuICBvYmplY3QgKCdzZWxmKVxuICAgIG1ldGhvZCByZWFkQXNBcnJheUJ1ZmZlciA6ICNibG9iIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVhZEFzQmluYXJ5U3RyaW5nIDogI2Jsb2IgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZWFkQXNUZXh0IDogI2Jsb2IgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZWFkQXNUZXh0X3dpdGhFbmNvZGluZyA6ICNibG9iIHQgLT4ganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVhZEFzRGF0YVVSTCA6ICNibG9iIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYWJvcnQgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZWFkeVN0YXRlIDogcmVhZHlTdGF0ZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcmVzdWx0IDogZmlsZV9hbnkgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGVycm9yIDogZmlsZUVycm9yIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgaW5oZXJpdCBwcm9ncmVzc0V2ZW50VGFyZ2V0XG4gIGVuZFxuXG5tb2R1bGUgUmVhZGVyRXZlbnQgPSBzdHJ1Y3RcbiAgdHlwZSB0eXAgPSBmaWxlUmVhZGVyIHByb2dyZXNzRXZlbnQgdCBEb20uRXZlbnQudHlwXG5cbiAgbGV0IGxvYWRzdGFydCA9IEV2ZW50Lm1ha2UgXCJsb2Fkc3RhcnRcIlxuXG4gIGxldCBwcm9ncmVzcyA9IEV2ZW50Lm1ha2UgXCJwcm9ncmVzc1wiXG5cbiAgbGV0IGFib3J0ID0gRXZlbnQubWFrZSBcImFib3J0XCJcblxuICBsZXQgZXJyb3IgPSBFdmVudC5tYWtlIFwiZXJyb3JcIlxuXG4gIGxldCBsb2FkID0gRXZlbnQubWFrZSBcImxvYWRcIlxuXG4gIGxldCBsb2FkZW5kID0gRXZlbnQubWFrZSBcImxvYWRlbmRcIlxuZW5kXG5cbmxldCBmaWxlUmVhZGVyIDogZmlsZVJlYWRlciB0IGNvbnN0ciA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fRmlsZVJlYWRlclxuXG5sZXQgYWRkRXZlbnRMaXN0ZW5lciA9IERvbS5hZGRFdmVudExpc3RlbmVyXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4gKiBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3RcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcblxub3BlbiBKc1xub3BlbiEgSW1wb3J0XG5cbmV4dGVybmFsIGNhbWxfanNfb25faWUgOiB1bml0IC0+IGJvb2wgdCA9IFwiY2FtbF9qc19vbl9pZVwiXG5cbmxldCBvbklFID0gSnMudG9fYm9vbCAoY2FtbF9qc19vbl9pZSAoKSlcblxuZXh0ZXJuYWwgaHRtbF9lc2NhcGUgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCA9IFwiY2FtbF9qc19odG1sX2VzY2FwZVwiXG5cbmV4dGVybmFsIGRlY29kZV9odG1sX2VudGl0aWVzIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgPSBcImNhbWxfanNfaHRtbF9lbnRpdGllc1wiXG5cbmNsYXNzIHR5cGUgY3NzU3R5bGVEZWNsYXJhdGlvbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBzZXRQcm9wZXJ0eSA6XG4gICAgICBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBvcHRkZWYgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFByb3BlcnR5VmFsdWUgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0UHJvcGVydHlQcmlvcml0eSA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCByZW1vdmVQcm9wZXJ0eSA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCBhbmltYXRpb24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYW5pbWF0aW9uRGVsYXkgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYW5pbWF0aW9uRGlyZWN0aW9uIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFuaW1hdGlvbkR1cmF0aW9uIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFuaW1hdGlvbkZpbGxNb2RlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFuaW1hdGlvbk5hbWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYW5pbWF0aW9uUGxheVN0YXRlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJhY2tncm91bmQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYmFja2dyb3VuZEF0dGFjaG1lbnQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYmFja2dyb3VuZENvbG9yIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJhY2tncm91bmRJbWFnZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBiYWNrZ3JvdW5kUG9zaXRpb24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYmFja2dyb3VuZFJlcGVhdCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXIgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyQm90dG9tIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlckJvdHRvbUNvbG9yIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlckJvdHRvbVN0eWxlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlckJvdHRvbVdpZHRoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlckNvbGxhcHNlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlckNvbG9yIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlckxlZnQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyTGVmdENvbG9yIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlckxlZnRTdHlsZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXJMZWZ0V2lkdGggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyUmFkaXVzIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlclJpZ2h0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlclJpZ2h0Q29sb3IgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyUmlnaHRTdHlsZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXJSaWdodFdpZHRoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlclNwYWNpbmcgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyU3R5bGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyVG9wIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlclRvcENvbG9yIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlclRvcFN0eWxlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlclRvcFdpZHRoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlcldpZHRoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvdHRvbSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjYXB0aW9uU2lkZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjbGVhciA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjbGlwIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNvbG9yIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNvbnRlbnQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY291bnRlckluY3JlbWVudCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjb3VudGVyUmVzZXQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY3NzRmxvYXQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY3NzVGV4dCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjdXJzb3IgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZGlyZWN0aW9uIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGRpc3BsYXkgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZW1wdHlDZWxscyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBmaWxsIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGZvbnQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZm9udEZhbWlseSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBmb250U2l6ZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBmb250U3R5bGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZm9udFZhcmlhbnQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZm9udFdlaWdodCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbGVmdCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBsZXR0ZXJTcGFjaW5nIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGxpbmVIZWlnaHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbGlzdFN0eWxlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGxpc3RTdHlsZUltYWdlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGxpc3RTdHlsZVBvc2l0aW9uIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGxpc3RTdHlsZVR5cGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbWFyZ2luIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1hcmdpbkJvdHRvbSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBtYXJnaW5MZWZ0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1hcmdpblJpZ2h0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1hcmdpblRvcCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBtYXhIZWlnaHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbWF4V2lkdGggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbWluSGVpZ2h0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1pbldpZHRoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG9wYWNpdHkgOiBqc19zdHJpbmcgdCBvcHRkZWYgcHJvcFxuXG4gICAgbWV0aG9kIG91dGxpbmUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgb3V0bGluZUNvbG9yIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG91dGxpbmVPZmZzZXQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgb3V0bGluZVN0eWxlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG91dGxpbmVXaWR0aCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBvdmVyZmxvdyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBvdmVyZmxvd1ggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgb3ZlcmZsb3dZIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHBhZGRpbmcgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcGFkZGluZ0JvdHRvbSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBwYWRkaW5nTGVmdCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBwYWRkaW5nUmlnaHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcGFkZGluZ1RvcCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBwYWdlQnJlYWtBZnRlciA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBwYWdlQnJlYWtCZWZvcmUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcG9pbnRlckV2ZW50cyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBwb3NpdGlvbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCByaWdodCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBzdHJva2UgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc3Ryb2tlV2lkdGggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGFibGVMYXlvdXQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGV4dEFsaWduIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRleHRBbmNob3IgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGV4dERlY29yYXRpb24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGV4dEluZGVudCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0ZXh0VHJhbnNmb3JtIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRvcCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0cmFuc2Zvcm0gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdmVydGljYWxBbGlnbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB2aXNpYmlsaXR5IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHdoaXRlU3BhY2UgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgd2lkdGggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgd29yZFNwYWNpbmcgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgekluZGV4IDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxudHlwZSAoJ2EsICdiKSBldmVudF9saXN0ZW5lciA9ICgnYSwgJ2IpIERvbS5ldmVudF9saXN0ZW5lclxuXG50eXBlIG1vdXNlX2J1dHRvbiA9XG4gIHwgTm9fYnV0dG9uXG4gIHwgTGVmdF9idXR0b25cbiAgfCBNaWRkbGVfYnV0dG9uXG4gIHwgUmlnaHRfYnV0dG9uXG5cbnR5cGUgZGVsdGFfbW9kZSA9XG4gIHwgRGVsdGFfcGl4ZWxcbiAgfCBEZWx0YV9saW5lXG4gIHwgRGVsdGFfcGFnZVxuXG5jbGFzcyB0eXBlIGV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBbZWxlbWVudF0gRG9tLmV2ZW50XG4gIGVuZFxuXG5hbmQgWydhXSBjdXN0b21FdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgW2VsZW1lbnQsICdhXSBEb20uY3VzdG9tRXZlbnRcbiAgZW5kXG5cbmFuZCBmb2N1c0V2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBldmVudFxuXG4gICAgbWV0aG9kIHJlbGF0ZWRUYXJnZXQgOiBlbGVtZW50IHQgb3B0IG9wdGRlZiByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgbW91c2VFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZXZlbnRcblxuICAgIG1ldGhvZCByZWxhdGVkVGFyZ2V0IDogZWxlbWVudCB0IG9wdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNsaWVudFggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNsaWVudFkgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNjcmVlblggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNjcmVlblkgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9mZnNldFggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9mZnNldFkgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGN0cmxLZXkgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNoaWZ0S2V5IDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhbHRLZXkgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG1ldGFLZXkgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGJ1dHRvbiA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgd2hpY2ggOiBtb3VzZV9idXR0b24gb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBmcm9tRWxlbWVudCA6IGVsZW1lbnQgdCBvcHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0b0VsZW1lbnQgOiBlbGVtZW50IHQgb3B0IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcGFnZVggOiBpbnQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwYWdlWSA6IGludCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIGtleWJvYXJkRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGV2ZW50XG5cbiAgICBtZXRob2QgYWx0S2V5IDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzaGlmdEtleSA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY3RybEtleSA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbWV0YUtleSA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbG9jYXRpb24gOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGtleSA6IGpzX3N0cmluZyB0IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY29kZSA6IGpzX3N0cmluZyB0IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgd2hpY2ggOiBpbnQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjaGFyQ29kZSA6IGludCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGtleUNvZGUgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGdldE1vZGlmaWVyU3RhdGUgOiBqc19zdHJpbmcgdCAtPiBib29sIHQgbWV0aFxuXG4gICAgbWV0aG9kIGtleUlkZW50aWZpZXIgOiBqc19zdHJpbmcgdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIG1vdXNld2hlZWxFdmVudCA9XG4gIG9iamVjdFxuICAgICgqIEFsbCBtb2Rlcm4gYnJvd3NlcnMgKilcbiAgICBpbmhlcml0IG1vdXNlRXZlbnRcblxuICAgIG1ldGhvZCB3aGVlbERlbHRhIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB3aGVlbERlbHRhWCA6IGludCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHdoZWVsRGVsdGFZIDogaW50IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZGVsdGFYIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGRlbHRhWSA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkZWx0YVogOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZGVsdGFNb2RlIDogZGVsdGFfbW9kZSByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgbW91c2VTY3JvbGxFdmVudCA9XG4gIG9iamVjdFxuICAgICgqIEZpcmVmb3ggKilcbiAgICBpbmhlcml0IG1vdXNlRXZlbnRcblxuICAgIG1ldGhvZCBkZXRhaWwgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGF4aXMgOiBpbnQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfSE9SSVpPTlRBTF9BWElTIDogaW50IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1ZFUlRJQ0FMX0FYSVMgOiBpbnQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCB0b3VjaEV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBldmVudFxuXG4gICAgbWV0aG9kIHRvdWNoZXMgOiB0b3VjaExpc3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdGFyZ2V0VG91Y2hlcyA6IHRvdWNoTGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjaGFuZ2VkVG91Y2hlcyA6IHRvdWNoTGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjdHJsS2V5IDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzaGlmdEtleSA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYWx0S2V5IDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBtZXRhS2V5IDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByZWxhdGVkVGFyZ2V0IDogZWxlbWVudCB0IG9wdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIHRvdWNoTGlzdCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBsZW5ndGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGl0ZW0gOiBpbnQgLT4gdG91Y2ggdCBvcHRkZWYgbWV0aFxuICBlbmRcblxuYW5kIHRvdWNoID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGlkZW50aWZpZXIgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHRhcmdldCA6IGVsZW1lbnQgdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNjcmVlblggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNjcmVlblkgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNsaWVudFggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNsaWVudFkgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBhZ2VYIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwYWdlWSA6IGludCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgc3VibWl0RXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGV2ZW50XG5cbiAgICBtZXRob2Qgc3VibWl0dGVyIDogZWxlbWVudCB0IG9wdGRlZiByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgZHJhZ0V2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBtb3VzZUV2ZW50XG5cbiAgICBtZXRob2QgZGF0YVRyYW5zZmVyIDogZGF0YVRyYW5zZmVyIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIGNsaXBib2FyZEV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBldmVudFxuXG4gICAgbWV0aG9kIGNsaXBib2FyZERhdGEgOiBkYXRhVHJhbnNmZXIgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgZGF0YVRyYW5zZmVyID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGRyb3BFZmZlY3QgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZWZmZWN0QWxsb3dlZCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBmaWxlcyA6IEZpbGUuZmlsZUxpc3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdHlwZXMgOiBqc19zdHJpbmcgdCBqc19hcnJheSB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhZGRFbGVtZW50IDogZWxlbWVudCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNsZWFyRGF0YSA6IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNsZWFyRGF0YV9hbGwgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBnZXREYXRhIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHNldERhdGEgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXREcmFnSW1hZ2UgOiBlbGVtZW50IHQgLT4gaW50IC0+IGludCAtPiB1bml0IG1ldGhcbiAgZW5kXG5cbmFuZCBldmVudFRhcmdldCA9XG4gIG9iamVjdCAoJ3NlbGYpXG4gICAgbWV0aG9kIG9uY2xpY2sgOiAoJ3NlbGYgdCwgbW91c2VFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uZGJsY2xpY2sgOiAoJ3NlbGYgdCwgbW91c2VFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ubW91c2Vkb3duIDogKCdzZWxmIHQsIG1vdXNlRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbm1vdXNldXAgOiAoJ3NlbGYgdCwgbW91c2VFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ubW91c2VvdmVyIDogKCdzZWxmIHQsIG1vdXNlRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbm1vdXNlbW92ZSA6ICgnc2VsZiB0LCBtb3VzZUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25tb3VzZW91dCA6ICgnc2VsZiB0LCBtb3VzZUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25rZXlwcmVzcyA6ICgnc2VsZiB0LCBrZXlib2FyZEV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25rZXlkb3duIDogKCdzZWxmIHQsIGtleWJvYXJkRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmtleXVwIDogKCdzZWxmIHQsIGtleWJvYXJkRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnNjcm9sbCA6ICgnc2VsZiB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ud2hlZWwgOiAoJ3NlbGYgdCwgbW91c2V3aGVlbEV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25kcmFnc3RhcnQgOiAoJ3NlbGYgdCwgZHJhZ0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25kcmFnZW5kIDogKCdzZWxmIHQsIGRyYWdFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uZHJhZ2VudGVyIDogKCdzZWxmIHQsIGRyYWdFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uZHJhZ292ZXIgOiAoJ3NlbGYgdCwgZHJhZ0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25kcmFnbGVhdmUgOiAoJ3NlbGYgdCwgZHJhZ0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25kcmFnIDogKCdzZWxmIHQsIGRyYWdFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uZHJvcCA6ICgnc2VsZiB0LCBkcmFnRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmFuaW1hdGlvbnN0YXJ0IDogKCdzZWxmIHQsIGFuaW1hdGlvbkV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25hbmltYXRpb25lbmQgOiAoJ3NlbGYgdCwgYW5pbWF0aW9uRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmFuaW1hdGlvbml0ZXJhdGlvbiA6XG4gICAgICAoJ3NlbGYgdCwgYW5pbWF0aW9uRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmFuaW1hdGlvbmNhbmNlbCA6ICgnc2VsZiB0LCBhbmltYXRpb25FdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9udHJhbnNpdGlvbnJ1biA6ICgnc2VsZiB0LCB0cmFuc2l0aW9uRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnRyYW5zaXRpb25zdGFydCA6ICgnc2VsZiB0LCB0cmFuc2l0aW9uRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnRyYW5zaXRpb25lbmQgOiAoJ3NlbGYgdCwgdHJhbnNpdGlvbkV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb250cmFuc2l0aW9uY2FuY2VsIDogKCdzZWxmIHQsIHRyYW5zaXRpb25FdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uZ290cG9pbnRlcmNhcHR1cmUgOiAoJ3NlbGYgdCwgcG9pbnRlckV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25sb3N0cG9pbnRlcmNhcHR1cmUgOiAoJ3NlbGYgdCwgcG9pbnRlckV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25wb2ludGVyZW50ZXIgOiAoJ3NlbGYgdCwgcG9pbnRlckV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25wb2ludGVyY2FuY2VsIDogKCdzZWxmIHQsIHBvaW50ZXJFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ucG9pbnRlcmRvd24gOiAoJ3NlbGYgdCwgcG9pbnRlckV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25wb2ludGVybGVhdmUgOiAoJ3NlbGYgdCwgcG9pbnRlckV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25wb2ludGVybW92ZSA6ICgnc2VsZiB0LCBwb2ludGVyRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnBvaW50ZXJvdXQgOiAoJ3NlbGYgdCwgcG9pbnRlckV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25wb2ludGVyb3ZlciA6ICgnc2VsZiB0LCBwb2ludGVyRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnBvaW50ZXJ1cCA6ICgnc2VsZiB0LCBwb2ludGVyRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkaXNwYXRjaEV2ZW50IDogZXZlbnQgdCAtPiBib29sIHQgbWV0aFxuICBlbmRcblxuYW5kIHBvcFN0YXRlRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGV2ZW50XG5cbiAgICBtZXRob2Qgc3RhdGUgOiBKcy5VbnNhZmUuYW55IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBwb2ludGVyRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IG1vdXNlRXZlbnRcblxuICAgIG1ldGhvZCBwb2ludGVySWQgOiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHdpZHRoIDogZmxvYXQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGZsb2F0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwcmVzc3VyZSA6IGZsb2F0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0YW5nZW50aWFsUHJlc3N1cmUgOiBmbG9hdCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdGlsdFggOiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHRpbHRZIDogaW50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0d2lzdCA6IGludCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcG9pbnRlclR5cGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaXNQcmltYXJ5IDogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBzdG9yYWdlRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGV2ZW50XG5cbiAgICBtZXRob2Qga2V5IDoganNfc3RyaW5nIHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbGRWYWx1ZSA6IGpzX3N0cmluZyB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbmV3VmFsdWUgOiBqc19zdHJpbmcgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHVybCA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzdG9yYWdlQXJlYSA6IHN0b3JhZ2UgdCBvcHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIHN0b3JhZ2UgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBrZXkgOiBpbnQgLT4ganNfc3RyaW5nIHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRJdGVtIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRJdGVtIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVtb3ZlSXRlbSA6IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNsZWFyIDogdW5pdCBtZXRoXG4gIGVuZFxuXG5hbmQgaGFzaENoYW5nZUV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBldmVudFxuXG4gICAgbWV0aG9kIG9sZFVSTCA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBuZXdVUkwgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgYW5pbWF0aW9uRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGV2ZW50XG5cbiAgICBtZXRob2QgYW5pbWF0aW9uTmFtZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBlbGFwc2VkVGltZSA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwc2V1ZG9FbGVtZW50IDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIHRyYW5zaXRpb25FdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZXZlbnRcblxuICAgIG1ldGhvZCBwcm9wZXJ0eU5hbWUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZWxhcHNlZFRpbWUgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcHNldWRvRWxlbWVudCA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBtZWRpYUV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBldmVudFxuICBlbmRcblxuYW5kIG1lc3NhZ2VFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZXZlbnRcblxuICAgIG1ldGhvZCBkYXRhIDogVW5zYWZlLmFueSBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNvdXJjZSA6IFVuc2FmZS5hbnkgb3B0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBub2RlU2VsZWN0b3IgPVxuICBvYmplY3RcbiAgICBtZXRob2QgcXVlcnlTZWxlY3RvciA6IGpzX3N0cmluZyB0IC0+IGVsZW1lbnQgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIHF1ZXJ5U2VsZWN0b3JBbGwgOiBqc19zdHJpbmcgdCAtPiBlbGVtZW50IERvbS5ub2RlTGlzdCB0IG1ldGhcbiAgZW5kXG5cbmFuZCB0b2tlbkxpc3QgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBpdGVtIDogaW50IC0+IGpzX3N0cmluZyB0IG9wdGRlZiBtZXRoXG5cbiAgICBtZXRob2QgY29udGFpbnMgOiBqc19zdHJpbmcgdCAtPiBib29sIHQgbWV0aFxuXG4gICAgbWV0aG9kIGFkZCA6IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlbW92ZSA6IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRvZ2dsZSA6IGpzX3N0cmluZyB0IC0+IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2Qgc3RyaW5naWZpZXIgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5hbmQgZWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgRG9tLmVsZW1lbnRcblxuICAgIGluaGVyaXQgbm9kZVNlbGVjdG9yXG5cbiAgICBtZXRob2QgaWQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGl0bGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbGFuZyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBkaXIgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY2xhc3NOYW1lIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNsYXNzTGlzdCA6IHRva2VuTGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjbG9zZXN0IDoganNfc3RyaW5nIHQgLT4gZWxlbWVudCB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2Qgc3R5bGUgOiBjc3NTdHlsZURlY2xhcmF0aW9uIHQgcHJvcFxuXG4gICAgbWV0aG9kIGlubmVySFRNTCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBvdXRlckhUTUwgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGV4dENvbnRlbnQgOiBqc19zdHJpbmcgdCBvcHQgcHJvcFxuXG4gICAgbWV0aG9kIGlubmVyVGV4dCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjbGllbnRMZWZ0IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjbGllbnRUb3AgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNsaWVudFdpZHRoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjbGllbnRIZWlnaHQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9mZnNldExlZnQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9mZnNldFRvcCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb2Zmc2V0UGFyZW50IDogZWxlbWVudCB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb2Zmc2V0V2lkdGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9mZnNldEhlaWdodCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2Nyb2xsTGVmdCA6IGludCBwcm9wXG5cbiAgICBtZXRob2Qgc2Nyb2xsVG9wIDogaW50IHByb3BcblxuICAgIG1ldGhvZCBzY3JvbGxXaWR0aCA6IGludCBwcm9wXG5cbiAgICBtZXRob2Qgc2Nyb2xsSGVpZ2h0IDogaW50IHByb3BcblxuICAgIG1ldGhvZCBnZXRDbGllbnRSZWN0cyA6IGNsaWVudFJlY3RMaXN0IHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEJvdW5kaW5nQ2xpZW50UmVjdCA6IGNsaWVudFJlY3QgdCBtZXRoXG5cbiAgICBtZXRob2Qgc2Nyb2xsSW50b1ZpZXcgOiBib29sIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY2xpY2sgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBmb2N1cyA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJsdXIgOiB1bml0IG1ldGhcblxuICAgIGluaGVyaXQgZXZlbnRUYXJnZXRcbiAgZW5kXG5cbmFuZCBjbGllbnRSZWN0ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHRvcCA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByaWdodCA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBib3R0b20gOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbGVmdCA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGZsb2F0IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaGVpZ2h0IDogZmxvYXQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBjbGllbnRSZWN0TGlzdCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBsZW5ndGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGl0ZW0gOiBpbnQgLT4gY2xpZW50UmVjdCB0IG9wdCBtZXRoXG4gIGVuZFxuXG5sZXQgbm9faGFuZGxlciA6ICgnYSwgJ2IpIGV2ZW50X2xpc3RlbmVyID0gRG9tLm5vX2hhbmRsZXJcblxubGV0IGhhbmRsZXIgPSBEb20uaGFuZGxlclxuXG5sZXQgZnVsbF9oYW5kbGVyID0gRG9tLmZ1bGxfaGFuZGxlclxuXG5sZXQgaW52b2tlX2hhbmRsZXIgPSBEb20uaW52b2tlX2hhbmRsZXJcblxubW9kdWxlIEV2ZW50ID0gc3RydWN0XG4gIHR5cGUgJ2EgdHlwID0gJ2EgRG9tLkV2ZW50LnR5cFxuXG4gIGxldCBjbGljayA9IERvbS5FdmVudC5tYWtlIFwiY2xpY2tcIlxuXG4gIGxldCBjb3B5ID0gRG9tLkV2ZW50Lm1ha2UgXCJjb3B5XCJcblxuICBsZXQgY3V0ID0gRG9tLkV2ZW50Lm1ha2UgXCJjdXRcIlxuXG4gIGxldCBwYXN0ZSA9IERvbS5FdmVudC5tYWtlIFwicGFzdGVcIlxuXG4gIGxldCBkYmxjbGljayA9IERvbS5FdmVudC5tYWtlIFwiZGJsY2xpY2tcIlxuXG4gIGxldCBtb3VzZWRvd24gPSBEb20uRXZlbnQubWFrZSBcIm1vdXNlZG93blwiXG5cbiAgbGV0IG1vdXNldXAgPSBEb20uRXZlbnQubWFrZSBcIm1vdXNldXBcIlxuXG4gIGxldCBtb3VzZW92ZXIgPSBEb20uRXZlbnQubWFrZSBcIm1vdXNlb3ZlclwiXG5cbiAgbGV0IG1vdXNlbW92ZSA9IERvbS5FdmVudC5tYWtlIFwibW91c2Vtb3ZlXCJcblxuICBsZXQgbW91c2VvdXQgPSBEb20uRXZlbnQubWFrZSBcIm1vdXNlb3V0XCJcblxuICBsZXQga2V5cHJlc3MgPSBEb20uRXZlbnQubWFrZSBcImtleXByZXNzXCJcblxuICBsZXQga2V5ZG93biA9IERvbS5FdmVudC5tYWtlIFwia2V5ZG93blwiXG5cbiAgbGV0IGtleXVwID0gRG9tLkV2ZW50Lm1ha2UgXCJrZXl1cFwiXG5cbiAgbGV0IG1vdXNld2hlZWwgPSBEb20uRXZlbnQubWFrZSBcIm1vdXNld2hlZWxcIlxuXG4gIGxldCB3aGVlbCA9IERvbS5FdmVudC5tYWtlIFwid2hlZWxcIlxuXG4gIGxldCBfRE9NTW91c2VTY3JvbGwgPSBEb20uRXZlbnQubWFrZSBcIkRPTU1vdXNlU2Nyb2xsXCJcblxuICBsZXQgdG91Y2hzdGFydCA9IERvbS5FdmVudC5tYWtlIFwidG91Y2hzdGFydFwiXG5cbiAgbGV0IHRvdWNobW92ZSA9IERvbS5FdmVudC5tYWtlIFwidG91Y2htb3ZlXCJcblxuICBsZXQgdG91Y2hlbmQgPSBEb20uRXZlbnQubWFrZSBcInRvdWNoZW5kXCJcblxuICBsZXQgdG91Y2hjYW5jZWwgPSBEb20uRXZlbnQubWFrZSBcInRvdWNoY2FuY2VsXCJcblxuICBsZXQgZHJhZ3N0YXJ0ID0gRG9tLkV2ZW50Lm1ha2UgXCJkcmFnc3RhcnRcIlxuXG4gIGxldCBkcmFnZW5kID0gRG9tLkV2ZW50Lm1ha2UgXCJkcmFnZW5kXCJcblxuICBsZXQgZHJhZ2VudGVyID0gRG9tLkV2ZW50Lm1ha2UgXCJkcmFnZW50ZXJcIlxuXG4gIGxldCBkcmFnb3ZlciA9IERvbS5FdmVudC5tYWtlIFwiZHJhZ292ZXJcIlxuXG4gIGxldCBkcmFnbGVhdmUgPSBEb20uRXZlbnQubWFrZSBcImRyYWdsZWF2ZVwiXG5cbiAgbGV0IGRyYWcgPSBEb20uRXZlbnQubWFrZSBcImRyYWdcIlxuXG4gIGxldCBkcm9wID0gRG9tLkV2ZW50Lm1ha2UgXCJkcm9wXCJcblxuICBsZXQgaGFzaGNoYW5nZSA9IERvbS5FdmVudC5tYWtlIFwiaGFzaGNoYW5nZVwiXG5cbiAgbGV0IGNoYW5nZSA9IERvbS5FdmVudC5tYWtlIFwiY2hhbmdlXCJcblxuICBsZXQgaW5wdXQgPSBEb20uRXZlbnQubWFrZSBcImlucHV0XCJcblxuICBsZXQgdGltZXVwZGF0ZSA9IERvbS5FdmVudC5tYWtlIFwidGltZXVwZGF0ZVwiXG5cbiAgbGV0IHN1Ym1pdCA9IERvbS5FdmVudC5tYWtlIFwic3VibWl0XCJcblxuICBsZXQgc2Nyb2xsID0gRG9tLkV2ZW50Lm1ha2UgXCJzY3JvbGxcIlxuXG4gIGxldCBmb2N1cyA9IERvbS5FdmVudC5tYWtlIFwiZm9jdXNcIlxuXG4gIGxldCBibHVyID0gRG9tLkV2ZW50Lm1ha2UgXCJibHVyXCJcblxuICBsZXQgbG9hZCA9IERvbS5FdmVudC5tYWtlIFwibG9hZFwiXG5cbiAgbGV0IHVubG9hZCA9IERvbS5FdmVudC5tYWtlIFwidW5sb2FkXCJcblxuICBsZXQgYmVmb3JldW5sb2FkID0gRG9tLkV2ZW50Lm1ha2UgXCJiZWZvcmV1bmxvYWRcIlxuXG4gIGxldCByZXNpemUgPSBEb20uRXZlbnQubWFrZSBcInJlc2l6ZVwiXG5cbiAgbGV0IG9yaWVudGF0aW9uY2hhbmdlID0gRG9tLkV2ZW50Lm1ha2UgXCJvcmllbnRhdGlvbmNoYW5nZVwiXG5cbiAgbGV0IHBvcHN0YXRlID0gRG9tLkV2ZW50Lm1ha2UgXCJwb3BzdGF0ZVwiXG5cbiAgbGV0IGVycm9yID0gRG9tLkV2ZW50Lm1ha2UgXCJlcnJvclwiXG5cbiAgbGV0IGFib3J0ID0gRG9tLkV2ZW50Lm1ha2UgXCJhYm9ydFwiXG5cbiAgbGV0IHNlbGVjdCA9IERvbS5FdmVudC5tYWtlIFwic2VsZWN0XCJcblxuICBsZXQgb25saW5lID0gRG9tLkV2ZW50Lm1ha2UgXCJvbmxpbmVcIlxuXG4gIGxldCBvZmZsaW5lID0gRG9tLkV2ZW50Lm1ha2UgXCJvZmZsaW5lXCJcblxuICBsZXQgY2hlY2tpbmcgPSBEb20uRXZlbnQubWFrZSBcImNoZWNraW5nXCJcblxuICBsZXQgbm91cGRhdGUgPSBEb20uRXZlbnQubWFrZSBcIm5vdXBkYXRlXCJcblxuICBsZXQgZG93bmxvYWRpbmcgPSBEb20uRXZlbnQubWFrZSBcImRvd25sb2FkaW5nXCJcblxuICBsZXQgcHJvZ3Jlc3MgPSBEb20uRXZlbnQubWFrZSBcInByb2dyZXNzXCJcblxuICBsZXQgdXBkYXRlcmVhZHkgPSBEb20uRXZlbnQubWFrZSBcInVwZGF0ZXJlYWR5XCJcblxuICBsZXQgY2FjaGVkID0gRG9tLkV2ZW50Lm1ha2UgXCJjYWNoZWRcIlxuXG4gIGxldCBvYnNvbGV0ZSA9IERvbS5FdmVudC5tYWtlIFwib2Jzb2xldGVcIlxuXG4gIGxldCBkb21Db250ZW50TG9hZGVkID0gRG9tLkV2ZW50Lm1ha2UgXCJET01Db250ZW50TG9hZGVkXCJcblxuICBsZXQgYW5pbWF0aW9uc3RhcnQgPSBEb20uRXZlbnQubWFrZSBcImFuaW1hdGlvbnN0YXJ0XCJcblxuICBsZXQgYW5pbWF0aW9uZW5kID0gRG9tLkV2ZW50Lm1ha2UgXCJhbmltYXRpb25lbmRcIlxuXG4gIGxldCBhbmltYXRpb25pdGVyYXRpb24gPSBEb20uRXZlbnQubWFrZSBcImFuaW1hdGlvbml0ZXJhdGlvblwiXG5cbiAgbGV0IGFuaW1hdGlvbmNhbmNlbCA9IERvbS5FdmVudC5tYWtlIFwiYW5pbWF0aW9uY2FuY2VsXCJcblxuICBsZXQgdHJhbnNpdGlvbnJ1biA9IERvbS5FdmVudC5tYWtlIFwidHJhbnNpdGlvbnJ1blwiXG5cbiAgbGV0IHRyYW5zaXRpb25zdGFydCA9IERvbS5FdmVudC5tYWtlIFwidHJhbnNpdGlvbnN0YXJ0XCJcblxuICBsZXQgdHJhbnNpdGlvbmVuZCA9IERvbS5FdmVudC5tYWtlIFwidHJhbnNpdGlvbmVuZFwiXG5cbiAgbGV0IHRyYW5zaXRpb25jYW5jZWwgPSBEb20uRXZlbnQubWFrZSBcInRyYW5zaXRpb25jYW5jZWxcIlxuXG4gIGxldCBjYW5wbGF5ID0gRG9tLkV2ZW50Lm1ha2UgXCJjYW5wbGF5XCJcblxuICBsZXQgY2FucGxheXRocm91Z2ggPSBEb20uRXZlbnQubWFrZSBcImNhbnBsYXl0aHJvdWdoXCJcblxuICBsZXQgZHVyYXRpb25jaGFuZ2UgPSBEb20uRXZlbnQubWFrZSBcImR1cmF0aW9uY2hhbmdlXCJcblxuICBsZXQgZW1wdGllZCA9IERvbS5FdmVudC5tYWtlIFwiZW1wdGllZFwiXG5cbiAgbGV0IGVuZGVkID0gRG9tLkV2ZW50Lm1ha2UgXCJlbmRlZFwiXG5cbiAgbGV0IGdvdHBvaW50ZXJjYXB0dXJlID0gRG9tLkV2ZW50Lm1ha2UgXCJnb3Rwb2ludGVyY2FwdHVyZVwiXG5cbiAgbGV0IGxvYWRlZGRhdGEgPSBEb20uRXZlbnQubWFrZSBcImxvYWRlZGRhdGFcIlxuXG4gIGxldCBsb2FkZWRtZXRhZGF0YSA9IERvbS5FdmVudC5tYWtlIFwibG9hZGVkbWV0YWRhdGFcIlxuXG4gIGxldCBsb2Fkc3RhcnQgPSBEb20uRXZlbnQubWFrZSBcImxvYWRzdGFydFwiXG5cbiAgbGV0IGxvc3Rwb2ludGVyY2FwdHVyZSA9IERvbS5FdmVudC5tYWtlIFwibG9zdHBvaW50ZXJjYXB0dXJlXCJcblxuICBsZXQgbWVzc2FnZSA9IERvbS5FdmVudC5tYWtlIFwibWVzc2FnZVwiXG5cbiAgbGV0IHBhdXNlID0gRG9tLkV2ZW50Lm1ha2UgXCJwYXVzZVwiXG5cbiAgbGV0IHBsYXkgPSBEb20uRXZlbnQubWFrZSBcInBsYXlcIlxuXG4gIGxldCBwbGF5aW5nID0gRG9tLkV2ZW50Lm1ha2UgXCJwbGF5aW5nXCJcblxuICBsZXQgcG9pbnRlcmVudGVyID0gRG9tLkV2ZW50Lm1ha2UgXCJwb2ludGVyZW50ZXJcIlxuXG4gIGxldCBwb2ludGVyY2FuY2VsID0gRG9tLkV2ZW50Lm1ha2UgXCJwb2ludGVyY2FuY2VsXCJcblxuICBsZXQgcG9pbnRlcmRvd24gPSBEb20uRXZlbnQubWFrZSBcInBvaW50ZXJkb3duXCJcblxuICBsZXQgcG9pbnRlcmxlYXZlID0gRG9tLkV2ZW50Lm1ha2UgXCJwb2ludGVybGVhdmVcIlxuXG4gIGxldCBwb2ludGVybW92ZSA9IERvbS5FdmVudC5tYWtlIFwicG9pbnRlcm1vdmVcIlxuXG4gIGxldCBwb2ludGVyb3V0ID0gRG9tLkV2ZW50Lm1ha2UgXCJwb2ludGVyb3V0XCJcblxuICBsZXQgcG9pbnRlcm92ZXIgPSBEb20uRXZlbnQubWFrZSBcInBvaW50ZXJvdmVyXCJcblxuICBsZXQgcG9pbnRlcnVwID0gRG9tLkV2ZW50Lm1ha2UgXCJwb2ludGVydXBcIlxuXG4gIGxldCByYXRlY2hhbmdlID0gRG9tLkV2ZW50Lm1ha2UgXCJyYXRlY2hhbmdlXCJcblxuICBsZXQgc2Vla2VkID0gRG9tLkV2ZW50Lm1ha2UgXCJzZWVrZWRcIlxuXG4gIGxldCBzZWVraW5nID0gRG9tLkV2ZW50Lm1ha2UgXCJzZWVraW5nXCJcblxuICBsZXQgc3RhbGxlZCA9IERvbS5FdmVudC5tYWtlIFwic3RhbGxlZFwiXG5cbiAgbGV0IHN1c3BlbmQgPSBEb20uRXZlbnQubWFrZSBcInN1c3BlbmRcIlxuXG4gIGxldCB2b2x1bWVjaGFuZ2UgPSBEb20uRXZlbnQubWFrZSBcInZvbHVtZWNoYW5nZVwiXG5cbiAgbGV0IHdhaXRpbmcgPSBEb20uRXZlbnQubWFrZSBcIndhaXRpbmdcIlxuXG4gIGxldCBtYWtlID0gRG9tLkV2ZW50Lm1ha2VcbmVuZFxuXG50eXBlIGV2ZW50X2xpc3RlbmVyX2lkID0gRG9tLmV2ZW50X2xpc3RlbmVyX2lkXG5cbmxldCBhZGRFdmVudExpc3RlbmVyID0gRG9tLmFkZEV2ZW50TGlzdGVuZXJcblxubGV0IGFkZEV2ZW50TGlzdGVuZXJXaXRoT3B0aW9ucyA9IERvbS5hZGRFdmVudExpc3RlbmVyV2l0aE9wdGlvbnNcblxubGV0IHJlbW92ZUV2ZW50TGlzdGVuZXIgPSBEb20ucmVtb3ZlRXZlbnRMaXN0ZW5lclxuXG5sZXQgY3JlYXRlQ3VzdG9tRXZlbnQgPSBEb20uY3JlYXRlQ3VzdG9tRXZlbnRcblxuY2xhc3MgdHlwZSBbJ25vZGVdIGNvbGxlY3Rpb24gPVxuICBvYmplY3RcbiAgICBtZXRob2QgbGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBpdGVtIDogaW50IC0+ICdub2RlIHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBuYW1lZEl0ZW0gOiBqc19zdHJpbmcgdCAtPiAnbm9kZSB0IG9wdCBtZXRoXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGh0bWxFbGVtZW50ID0gZWxlbWVudFxuXG5jbGFzcyB0eXBlIGhlYWRFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgcHJvZmlsZSA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgbGlua0VsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBkaXNhYmxlZCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgY2hhcnNldCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjcm9zc29yaWdpbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBocmVmIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGhyZWZsYW5nIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1lZGlhIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHJlbCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCByZXYgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGFyZ2V0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIF90eXBlIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSB0aXRsZUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCB0ZXh0IDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBtZXRhRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGNvbnRlbnQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgaHR0cEVxdWl2IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc2NoZW1lIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBiYXNlRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGhyZWYgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGFyZ2V0IDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBzdHlsZUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBkaXNhYmxlZCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgbWVkaWEgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgX3R5cGUgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGJvZHlFbGVtZW50ID0gZWxlbWVudFxuXG5jbGFzcyB0eXBlIGZvcm1FbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgZWxlbWVudHMgOiBlbGVtZW50IGNvbGxlY3Rpb24gdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhY2NlcHRDaGFyc2V0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFjdGlvbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBlbmN0eXBlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIF9tZXRob2QgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGFyZ2V0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHN1Ym1pdCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlc2V0IDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgb25zdWJtaXQgOiAoJ3NlbGYgdCwgc3VibWl0RXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgb3B0R3JvdXBFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgZGlzYWJsZWQgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIGxhYmVsIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBvcHRpb25FbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBvcHRHcm91cEVsZW1lbnRcblxuICAgIG1ldGhvZCBmb3JtIDogZm9ybUVsZW1lbnQgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGRlZmF1bHRTZWxlY3RlZCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgdGV4dCA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBpbmRleCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2VsZWN0ZWQgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIHZhbHVlIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBzZWxlY3RFbGVtZW50ID1cbiAgb2JqZWN0ICgnc2VsZilcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBfdHlwZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzZWxlY3RlZEluZGV4IDogaW50IHByb3BcblxuICAgIG1ldGhvZCB2YWx1ZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBsZW5ndGggOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIGZvcm0gOiBmb3JtRWxlbWVudCB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb3B0aW9ucyA6IG9wdGlvbkVsZW1lbnQgY29sbGVjdGlvbiB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkaXNhYmxlZCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgbXVsdGlwbGUgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2l6ZSA6IGludCBwcm9wXG5cbiAgICBtZXRob2QgdGFiSW5kZXggOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIGFkZCA6ICNvcHRHcm91cEVsZW1lbnQgdCAtPiAjb3B0R3JvdXBFbGVtZW50IHQgb3B0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlbW92ZSA6IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZXF1aXJlZCA6IGJvb2wgdCB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uY2hhbmdlIDogKCdzZWxmIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmlucHV0IDogKCdzZWxmIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgaW5wdXRFbGVtZW50ID1cbiAgb2JqZWN0ICgnc2VsZilcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBkZWZhdWx0VmFsdWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZGVmYXVsdENoZWNrZWQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZm9ybSA6IGZvcm1FbGVtZW50IHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhY2NlcHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYWNjZXNzS2V5IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFsaWduIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFsdCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjaGVja2VkIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBkaXNhYmxlZCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgbWF4TGVuZ3RoIDogaW50IHByb3BcblxuICAgIG1ldGhvZCBuYW1lIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJlYWRPbmx5IDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCByZXF1aXJlZCA6IGJvb2wgdCB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNpemUgOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIHNyYyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0YWJJbmRleCA6IGludCBwcm9wXG5cbiAgICBtZXRob2QgX3R5cGUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdXNlTWFwIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHZhbHVlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHNlbGVjdCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGZpbGVzIDogRmlsZS5maWxlTGlzdCB0IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcGxhY2Vob2xkZXIgOiBqc19zdHJpbmcgdCB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNlbGVjdGlvbkRpcmVjdGlvbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBzZWxlY3Rpb25TdGFydCA6IGludCBwcm9wXG5cbiAgICBtZXRob2Qgc2VsZWN0aW9uRW5kIDogaW50IHByb3BcblxuICAgIG1ldGhvZCBvbnNlbGVjdCA6ICgnc2VsZiB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25jaGFuZ2UgOiAoJ3NlbGYgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9uaW5wdXQgOiAoJ3NlbGYgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9uYmx1ciA6ICgnc2VsZiB0LCBmb2N1c0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmZvY3VzIDogKCdzZWxmIHQsIGZvY3VzRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSB0ZXh0QXJlYUVsZW1lbnQgPVxuICBvYmplY3QgKCdzZWxmKVxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGRlZmF1bHRWYWx1ZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBmb3JtIDogZm9ybUVsZW1lbnQgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFjY2Vzc0tleSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjb2xzIDogaW50IHByb3BcblxuICAgIG1ldGhvZCBkaXNhYmxlZCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgbmFtZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByZWFkT25seSA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2Qgcm93cyA6IGludCBwcm9wXG5cbiAgICBtZXRob2Qgc2VsZWN0aW9uRGlyZWN0aW9uIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHNlbGVjdGlvbkVuZCA6IGludCBwcm9wXG5cbiAgICBtZXRob2Qgc2VsZWN0aW9uU3RhcnQgOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIHRhYkluZGV4IDogaW50IHByb3BcblxuICAgIG1ldGhvZCBfdHlwZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB2YWx1ZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBzZWxlY3QgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZXF1aXJlZCA6IGJvb2wgdCB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBsYWNlaG9sZGVyIDoganNfc3RyaW5nIHQgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnNlbGVjdCA6ICgnc2VsZiB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25jaGFuZ2UgOiAoJ3NlbGYgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9uaW5wdXQgOiAoJ3NlbGYgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9uYmx1ciA6ICgnc2VsZiB0LCBmb2N1c0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmZvY3VzIDogKCdzZWxmIHQsIGZvY3VzRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBidXR0b25FbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgZm9ybSA6IGZvcm1FbGVtZW50IHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhY2Nlc3NLZXkgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZGlzYWJsZWQgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdGFiSW5kZXggOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIF90eXBlIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHZhbHVlIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBsYWJlbEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBmb3JtIDogZm9ybUVsZW1lbnQgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFjY2Vzc0tleSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBodG1sRm9yIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBmaWVsZFNldEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBmb3JtIDogZm9ybUVsZW1lbnQgdCBvcHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBsZWdlbmRFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgZm9ybSA6IGZvcm1FbGVtZW50IHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhY2Nlc3NLZXkgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHVMaXN0RWxlbWVudCA9IGVsZW1lbnRcblxuY2xhc3MgdHlwZSBvTGlzdEVsZW1lbnQgPSBlbGVtZW50XG5cbmNsYXNzIHR5cGUgZExpc3RFbGVtZW50ID0gZWxlbWVudFxuXG5jbGFzcyB0eXBlIGxpRWxlbWVudCA9IGVsZW1lbnRcblxuY2xhc3MgdHlwZSBkaXZFbGVtZW50ID0gZWxlbWVudFxuXG5jbGFzcyB0eXBlIHBhcmFncmFwaEVsZW1lbnQgPSBlbGVtZW50XG5cbmNsYXNzIHR5cGUgaGVhZGluZ0VsZW1lbnQgPSBlbGVtZW50XG5cbmNsYXNzIHR5cGUgcXVvdGVFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgY2l0ZSA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgcHJlRWxlbWVudCA9IGVsZW1lbnRcblxuY2xhc3MgdHlwZSBickVsZW1lbnQgPSBlbGVtZW50XG5cbmNsYXNzIHR5cGUgaHJFbGVtZW50ID0gZWxlbWVudFxuXG5jbGFzcyB0eXBlIG1vZEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBjaXRlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGRhdGVUaW1lIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBhbmNob3JFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgYWNjZXNzS2V5IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNoYXJzZXQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY29vcmRzIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGhyZWYgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgaHJlZmxhbmcgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbmFtZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCByZWwgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcmV2IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHNoYXBlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRhYkluZGV4IDogaW50IHByb3BcblxuICAgIG1ldGhvZCB0YXJnZXQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgX3R5cGUgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGltYWdlRWxlbWVudCA9XG4gIG9iamVjdCAoJ3NlbGYpXG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgYWx0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHNyYyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB1c2VNYXAgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgaXNNYXAgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIHdpZHRoIDogaW50IHByb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIG5hdHVyYWxXaWR0aCA6IGludCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG5hdHVyYWxIZWlnaHQgOiBpbnQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjb21wbGV0ZSA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2Qgb25sb2FkIDogKCdzZWxmIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmVycm9yIDogKCdzZWxmIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmFib3J0IDogKCdzZWxmIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgb2JqZWN0RWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGZvcm0gOiBmb3JtRWxlbWVudCB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY29kZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBhcmNoaXZlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNvZGVCYXNlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNvZGVUeXBlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGRhdGEgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZGVjbGFyZSA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgaGVpZ2h0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc3RhbmRieSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0YWJJbmRleCA6IGludCBwcm9wXG5cbiAgICBtZXRob2QgX3R5cGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdXNlTWFwIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHdpZHRoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGRvY3VtZW50IDogRG9tLmVsZW1lbnQgRG9tLmRvY3VtZW50IHQgb3B0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgcGFyYW1FbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgbmFtZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBfdHlwZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB2YWx1ZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB2YWx1ZVR5cGUgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGFyZWFFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgYWNjZXNzS2V5IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFsdCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjb29yZHMgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgaHJlZiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBub0hyZWYgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIHNoYXBlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRhYkluZGV4IDogaW50IHByb3BcblxuICAgIG1ldGhvZCB0YXJnZXQgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIG1hcEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBhcmVhcyA6IGFyZWFFbGVtZW50IGNvbGxlY3Rpb24gdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbmFtZSA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgc2NyaXB0RWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIHRleHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY2hhcnNldCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBkZWZlciA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2Qgc3JjIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIF90eXBlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFzeW5jIDogYm9vbCB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgZW1iZWRFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2Qgc3JjIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBfdHlwZSA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgdGFibGVDZWxsRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGNlbGxJbmRleCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYWJiciA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBhbGlnbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBheGlzIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNoT2ZmIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNvbFNwYW4gOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIGhlYWRlcnMgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgcm93U3BhbiA6IGludCBwcm9wXG5cbiAgICBtZXRob2Qgc2NvcGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdkFsaWduIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSB0YWJsZVJvd0VsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCByb3dJbmRleCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2VjdGlvblJvd0luZGV4IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjZWxscyA6IHRhYmxlQ2VsbEVsZW1lbnQgY29sbGVjdGlvbiB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhbGlnbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjaCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjaE9mZiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB2QWxpZ24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgaW5zZXJ0Q2VsbCA6IGludCAtPiB0YWJsZUNlbGxFbGVtZW50IHQgbWV0aFxuXG4gICAgbWV0aG9kIGRlbGV0ZUNlbGwgOiBpbnQgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHRhYmxlQ29sRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGFsaWduIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNoT2ZmIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHNwYW4gOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIHZBbGlnbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgdGFibGVTZWN0aW9uRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGFsaWduIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNoT2ZmIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHZBbGlnbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCByb3dzIDogdGFibGVSb3dFbGVtZW50IGNvbGxlY3Rpb24gdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaW5zZXJ0Um93IDogaW50IC0+IHRhYmxlUm93RWxlbWVudCB0IG1ldGhcblxuICAgIG1ldGhvZCBkZWxldGVSb3cgOiBpbnQgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHRhYmxlQ2FwdGlvbkVsZW1lbnQgPSBlbGVtZW50XG5cbmNsYXNzIHR5cGUgdGFibGVFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgY2FwdGlvbiA6IHRhYmxlQ2FwdGlvbkVsZW1lbnQgdCBwcm9wXG5cbiAgICBtZXRob2QgdEhlYWQgOiB0YWJsZVNlY3Rpb25FbGVtZW50IHQgcHJvcFxuXG4gICAgbWV0aG9kIHRGb290IDogdGFibGVTZWN0aW9uRWxlbWVudCB0IHByb3BcblxuICAgIG1ldGhvZCByb3dzIDogdGFibGVSb3dFbGVtZW50IGNvbGxlY3Rpb24gdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdEJvZGllcyA6IHRhYmxlU2VjdGlvbkVsZW1lbnQgY29sbGVjdGlvbiB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhbGlnbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXIgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY2VsbFBhZGRpbmcgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY2VsbFNwYWNpbmcgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZnJhbWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcnVsZXMgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc3VtbWFyeSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjcmVhdGVUSGVhZCA6IHRhYmxlU2VjdGlvbkVsZW1lbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgZGVsZXRlVEhlYWQgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVURm9vdCA6IHRhYmxlU2VjdGlvbkVsZW1lbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgZGVsZXRlVEZvb3QgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVDYXB0aW9uIDogdGFibGVDYXB0aW9uRWxlbWVudCB0IG1ldGhcblxuICAgIG1ldGhvZCBkZWxldGVDYXB0aW9uIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgaW5zZXJ0Um93IDogaW50IC0+IHRhYmxlUm93RWxlbWVudCB0IG1ldGhcblxuICAgIG1ldGhvZCBkZWxldGVSb3cgOiBpbnQgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHRpbWVSYW5nZXMgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzdGFydCA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgZW5kXyA6IGludCAtPiBmbG9hdCBtZXRoXG4gIGVuZFxuXG50eXBlIG5ldHdvcmtTdGF0ZSA9XG4gIHwgTkVUV09SS19FTVBUWVxuICB8IE5FVFdPUktfSURMRVxuICB8IE5FVFdPUktfTE9BRElOR1xuICB8IE5FVFdPUktfTk9fU09VUkNFXG5cbnR5cGUgcmVhZHlTdGF0ZSA9XG4gIHwgSEFWRV9OT1RISU5HXG4gIHwgSEFWRV9NRVRBREFUQVxuICB8IEhBVkVfQ1VSUkVOVF9EQVRBXG4gIHwgSEFWRV9GVVRVUkVfREFUQVxuICB8IEhBVkVfRU5PVUdIX0RBVEFcblxuKCogaHR0cDovL3d3dy53M3NjaG9vbHMuY29tL3RhZ3MvcmVmX2F2X2RvbS5hc3AgKilcbigqIG9ubHkgZmVhdHVyZXMgc3VwcG9ydGVkIGJ5IGFsbCBicm93c2VyLiAoSUU5KykgKilcbmNsYXNzIHR5cGUgbWVkaWFFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgY2FuUGxheVR5cGUgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgbG9hZCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHBsYXkgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBwYXVzZSA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGF1dG9wbGF5IDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBidWZmZXJlZCA6IHRpbWVSYW5nZXMgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY29udHJvbHMgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIGN1cnJlbnRTcmMgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY3VycmVudFRpbWUgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgZHVyYXRpb24gOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZW5kZWQgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGxvb3AgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1lZGlhZ3JvdXAgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbXV0ZWQgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIG5ldHdvcmtTdGF0ZV9pbnQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG5ldHdvcmtTdGF0ZSA6IG5ldHdvcmtTdGF0ZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcGF1c2VkIDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwbGF5YmFja1JhdGUgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgcGxheWVkIDogdGltZVJhbmdlcyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwcmVsb2FkIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHJlYWR5U3RhdGVfaW50IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByZWFkeVN0YXRlIDogcmVhZHlTdGF0ZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2Vla2FibGUgOiB0aW1lUmFuZ2VzIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNlZWtpbmcgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNyYyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB2b2x1bWUgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2Qgb25jYW5wbGF5IDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmNhbnBsYXl0aHJvdWdoIDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmR1cmF0aW9uY2hhbmdlIDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmVtcHRpZWQgOiAoJ3NlbGYgdCwgbWVkaWFFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uZW5kZWQgOiAoJ3NlbGYgdCwgbWVkaWFFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ubG9hZGVkZGF0YSA6ICgnc2VsZiB0LCBtZWRpYUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25sb2FkZWRtZXRhZGF0YSA6ICgnc2VsZiB0LCBtZWRpYUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25sb2Fkc3RhcnQgOiAoJ3NlbGYgdCwgbWVkaWFFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ucGF1c2UgOiAoJ3NlbGYgdCwgbWVkaWFFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ucGxheSA6ICgnc2VsZiB0LCBtZWRpYUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25wbGF5aW5nIDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnJhdGVjaGFuZ2UgOiAoJ3NlbGYgdCwgbWVkaWFFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uc2Vla2VkIDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnNlZWtpbmcgOiAoJ3NlbGYgdCwgbWVkaWFFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uc3RhbGxlZCA6ICgnc2VsZiB0LCBtZWRpYUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25zdXNwZW5kIDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnZvbHVtZWNoYW5nZSA6ICgnc2VsZiB0LCBtZWRpYUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb253YWl0aW5nIDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgYXVkaW9FbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBtZWRpYUVsZW1lbnRcbiAgZW5kXG5cbmNsYXNzIHR5cGUgdmlkZW9FbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBtZWRpYUVsZW1lbnRcbiAgZW5kXG5cbnR5cGUgY29udGV4dCA9IGpzX3N0cmluZyB0XG5cbmxldCBfMmRfID0gSnMuc3RyaW5nIFwiMmRcIlxuXG50eXBlIGNhbnZhc1BhdHRlcm5cblxuY2xhc3MgdHlwZSBjYW52YXNFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2Qgd2lkdGggOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGludCBwcm9wXG5cbiAgICBtZXRob2QgdG9EYXRhVVJMIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRvRGF0YVVSTF90eXBlIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRvRGF0YVVSTF90eXBlX2NvbXByZXNzaW9uIDoganNfc3RyaW5nIHQgLT4gZmxvYXQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldENvbnRleHQgOiBqc19zdHJpbmcgdCAtPiBjYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgdCBtZXRoXG4gIGVuZFxuXG5hbmQgY2FudmFzUmVuZGVyaW5nQ29udGV4dDJEID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGNhbnZhcyA6IGNhbnZhc0VsZW1lbnQgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2F2ZSA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlc3RvcmUgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzY2FsZSA6IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJvdGF0ZSA6IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRyYW5zbGF0ZSA6IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRyYW5zZm9ybSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFRyYW5zZm9ybSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdsb2JhbEFscGhhIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIGdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBzdHJva2VTdHlsZSA6IGpzX3N0cmluZyB0IHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3Ryb2tlU3R5bGVfZ3JhZGllbnQgOiBjYW52YXNHcmFkaWVudCB0IHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3Ryb2tlU3R5bGVfcGF0dGVybiA6IGNhbnZhc1BhdHRlcm4gdCB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGZpbGxTdHlsZSA6IGpzX3N0cmluZyB0IHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgZmlsbFN0eWxlX2dyYWRpZW50IDogY2FudmFzR3JhZGllbnQgdCB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGZpbGxTdHlsZV9wYXR0ZXJuIDogY2FudmFzUGF0dGVybiB0IHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgY3JlYXRlTGluZWFyR3JhZGllbnQgOlxuICAgICAgZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gY2FudmFzR3JhZGllbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlUmFkaWFsR3JhZGllbnQgOlxuICAgICAgZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gY2FudmFzR3JhZGllbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlUGF0dGVybiA6IGltYWdlRWxlbWVudCB0IC0+IGpzX3N0cmluZyB0IC0+IGNhbnZhc1BhdHRlcm4gdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlUGF0dGVybl9mcm9tQ2FudmFzIDpcbiAgICAgIGNhbnZhc0VsZW1lbnQgdCAtPiBqc19zdHJpbmcgdCAtPiBjYW52YXNQYXR0ZXJuIHQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVBhdHRlcm5fZnJvbVZpZGVvIDogdmlkZW9FbGVtZW50IHQgLT4ganNfc3RyaW5nIHQgLT4gY2FudmFzUGF0dGVybiB0IG1ldGhcblxuICAgIG1ldGhvZCBsaW5lV2lkdGggOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgbGluZUNhcCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBsaW5lSm9pbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBtaXRlckxpbWl0IDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHNoYWRvd09mZnNldFggOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2Qgc2hhZG93T2Zmc2V0WSA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCBzaGFkb3dCbHVyIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHNoYWRvd0NvbG9yIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNsZWFyUmVjdCA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGZpbGxSZWN0IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc3Ryb2tlUmVjdCA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJlZ2luUGF0aCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNsb3NlUGF0aCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIG1vdmVUbyA6IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGxpbmVUbyA6IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHF1YWRyYXRpY0N1cnZlVG8gOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBiZXppZXJDdXJ2ZVRvIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYXJjVG8gOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZWN0IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYXJjIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gYm9vbCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGZpbGwgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzdHJva2UgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjbGlwIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgaXNQb2ludEluUGF0aCA6IGZsb2F0IC0+IGZsb2F0IC0+IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2QgZHJhd0ZvY3VzUmluZyA6ICNlbGVtZW50IHQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gYm9vbCB0IC0+IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2QgZm9udCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0ZXh0QWxpZ24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGV4dEJhc2VsaW5lIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGZpbGxUZXh0IDoganNfc3RyaW5nIHQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZmlsbFRleHRfd2l0aFdpZHRoIDoganNfc3RyaW5nIHQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc3Ryb2tlVGV4dCA6IGpzX3N0cmluZyB0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHN0cm9rZVRleHRfd2l0aFdpZHRoIDoganNfc3RyaW5nIHQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgbWVhc3VyZVRleHQgOiBqc19zdHJpbmcgdCAtPiB0ZXh0TWV0cmljcyB0IG1ldGhcblxuICAgIG1ldGhvZCBkcmF3SW1hZ2UgOiBpbWFnZUVsZW1lbnQgdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkcmF3SW1hZ2Vfd2l0aFNpemUgOlxuICAgICAgaW1hZ2VFbGVtZW50IHQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZHJhd0ltYWdlX2Z1bGwgOlxuICAgICAgICAgaW1hZ2VFbGVtZW50IHRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZHJhd0ltYWdlX2Zyb21DYW52YXMgOiBjYW52YXNFbGVtZW50IHQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZHJhd0ltYWdlX2Zyb21DYW52YXNXaXRoU2l6ZSA6XG4gICAgICBjYW52YXNFbGVtZW50IHQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZHJhd0ltYWdlX2Z1bGxGcm9tQ2FudmFzIDpcbiAgICAgICAgIGNhbnZhc0VsZW1lbnQgdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkcmF3SW1hZ2VfZnJvbVZpZGVvV2l0aFZpZGVvIDogdmlkZW9FbGVtZW50IHQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZHJhd0ltYWdlX2Zyb21WaWRlb1dpdGhTaXplIDpcbiAgICAgIHZpZGVvRWxlbWVudCB0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRyYXdJbWFnZV9mdWxsRnJvbVZpZGVvIDpcbiAgICAgICAgIHZpZGVvRWxlbWVudCB0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZUltYWdlRGF0YSA6IGludCAtPiBpbnQgLT4gaW1hZ2VEYXRhIHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEltYWdlRGF0YSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGltYWdlRGF0YSB0IG1ldGhcblxuICAgIG1ldGhvZCBwdXRJbWFnZURhdGEgOiBpbWFnZURhdGEgdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcbiAgZW5kXG5cbmFuZCBjYW52YXNHcmFkaWVudCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBhZGRDb2xvclN0b3AgOiBmbG9hdCAtPiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcbiAgZW5kXG5cbmFuZCB0ZXh0TWV0cmljcyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB3aWR0aCA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBpbWFnZURhdGEgPVxuICBvYmplY3RcbiAgICBtZXRob2Qgd2lkdGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZGF0YSA6IGNhbnZhc1BpeGVsQXJyYXkgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgY2FudmFzUGl4ZWxBcnJheSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBsZW5ndGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuZXh0ZXJuYWwgcGl4ZWxfZ2V0IDogY2FudmFzUGl4ZWxBcnJheSB0IC0+IGludCAtPiBpbnQgPSBcImNhbWxfanNfZ2V0XCJcblxuZXh0ZXJuYWwgcGl4ZWxfc2V0IDogY2FudmFzUGl4ZWxBcnJheSB0IC0+IGludCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9qc19zZXRcIlxuXG5jbGFzcyB0eXBlIHJhbmdlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGNvbGxhcHNlZCA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3RhcnRPZmZzZXQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGVuZE9mZnNldCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3RhcnRDb250YWluZXIgOiBEb20ubm9kZSB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBlbmRDb250YWluZXIgOiBEb20ubm9kZSB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzZXRTdGFydCA6IERvbS5ub2RlIHQgLT4gaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEVuZCA6IERvbS5ub2RlIHQgLT4gaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFN0YXJ0QmVmb3JlIDogRG9tLm5vZGUgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRFbmRCZWZvcmUgOiBEb20ubm9kZSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFN0YXJ0QWZ0ZXIgOiBEb20ubm9kZSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEVuZEFmdGVyIDogRG9tLm5vZGUgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZWxlY3ROb2RlIDogRG9tLm5vZGUgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZWxlY3ROb2RlQ29udGVudHMgOiBEb20ubm9kZSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNvbGxhcHNlIDogYm9vbCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNsb25lQ29udGVudHMgOiBEb20uZG9jdW1lbnRGcmFnbWVudCB0IG1ldGhcblxuICAgIG1ldGhvZCBleHRyYWN0Q29udGVudHMgOiBEb20uZG9jdW1lbnRGcmFnbWVudCB0IG1ldGhcblxuICAgIG1ldGhvZCBkZWxldGVDb250ZW50cyA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGluc2VydE5vZGUgOiBEb20ubm9kZSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHN1cnJvdW5kQ29udGVudHMgOiBEb20ubm9kZSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNsb25lUmFuZ2UgOiByYW5nZSB0IG1ldGhcblxuICAgIG1ldGhvZCB0b1N0cmluZyA6IGpzX3N0cmluZyB0IG1ldGhcbiAgZW5kXG5cbigqKiBJbmZvcm1hdGlvbiBvbiBjdXJyZW50IHNlbGVjdGlvbiAqKVxuY2xhc3MgdHlwZSBzZWxlY3Rpb24gPVxuICBvYmplY3RcbiAgICBtZXRob2QgYW5jaG9yTm9kZSA6IERvbS5ub2RlIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFuY2hvck9mZnNldCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZm9jdXNOb2RlIDogRG9tLm5vZGUgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZm9jdXNPZmZzZXQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGlzQ29sbGFwc2VkIDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByYW5nZUNvdW50IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBnZXRSYW5nZUF0IDogaW50IC0+IHJhbmdlIHQgbWV0aFxuXG4gICAgbWV0aG9kIGNvbGxhcHNlIDogYm9vbCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGV4dGVuZCA6IERvbS5ub2RlIHQgLT4gaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIG1vZGlmeSA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNvbGxhcHNlVG9TdGFydCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNvbGxhcHNlVG9FbmQgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZWxlY3RBbGxDaGlsZHJlbiA6IERvbS5ub2RlIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYWRkUmFuZ2UgOiByYW5nZSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlbW92ZVJhbmdlIDogcmFuZ2UgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZW1vdmVBbGxSYW5nZXMgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkZWxldGVGcm9tRG9jdW1lbnQgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjb250YWluc05vZGUgOiBEb20ubm9kZSB0IC0+IGJvb2wgdCAtPiBib29sIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRvU3RyaW5nIDoganNfc3RyaW5nIHQgbWV0aFxuICBlbmRcblxuY2xhc3MgdHlwZSBkb2N1bWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgW2VsZW1lbnRdIERvbS5kb2N1bWVudFxuXG4gICAgaW5oZXJpdCBub2RlU2VsZWN0b3JcblxuICAgIGluaGVyaXQgZXZlbnRUYXJnZXRcblxuICAgIG1ldGhvZCB0aXRsZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCByZWZlcnJlciA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkb21haW4gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgX1VSTCA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBoZWFkIDogaGVhZEVsZW1lbnQgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9keSA6IGJvZHlFbGVtZW50IHQgcHJvcFxuXG4gICAgbWV0aG9kIGRvY3VtZW50RWxlbWVudCA6IGh0bWxFbGVtZW50IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGltYWdlcyA6IGltYWdlRWxlbWVudCBjb2xsZWN0aW9uIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFwcGxldHMgOiBlbGVtZW50IGNvbGxlY3Rpb24gdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbGlua3MgOiBlbGVtZW50IGNvbGxlY3Rpb24gdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZm9ybXMgOiBmb3JtRWxlbWVudCBjb2xsZWN0aW9uIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFuY2hvcnMgOiBlbGVtZW50IGNvbGxlY3Rpb24gdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY29va2llIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGRlc2lnbk1vZGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgb3Blbl8gOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjbG9zZSA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHdyaXRlIDoganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZXhlY0NvbW1hbmQgOiBqc19zdHJpbmcgdCAtPiBib29sIHQgLT4ganNfc3RyaW5nIHQgb3B0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVJhbmdlIDogcmFuZ2UgdCBtZXRoXG5cbiAgICBtZXRob2QgcmVhZHlTdGF0ZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lIDoganNfc3RyaW5nIHQgLT4gZWxlbWVudCBEb20ubm9kZUxpc3QgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RWxlbWVudHNCeU5hbWUgOiBqc19zdHJpbmcgdCAtPiBlbGVtZW50IERvbS5ub2RlTGlzdCB0IG1ldGhcblxuICAgIG1ldGhvZCBhY3RpdmVFbGVtZW50IDogZWxlbWVudCB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaGlkZGVuIDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmZ1bGxzY3JlZW5jaGFuZ2UgOiAoZG9jdW1lbnQgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UgOiAoZG9jdW1lbnQgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIGluaGVyaXQgZXZlbnRUYXJnZXRcbiAgZW5kXG5cbnR5cGUgaW50ZXJ2YWxfaWRcblxudHlwZSB0aW1lb3V0X2lkXG5cbnR5cGUgYW5pbWF0aW9uX2ZyYW1lX3JlcXVlc3RfaWRcblxuY2xhc3MgdHlwZSBsb2NhdGlvbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBocmVmIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHByb3RvY29sIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGhvc3QgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgaG9zdG5hbWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgb3JpZ2luIDoganNfc3RyaW5nIHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwb3J0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHBhdGhuYW1lIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHNlYXJjaCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBoYXNoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFzc2lnbiA6IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlcGxhY2UgOiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZWxvYWQgOiB1bml0IG1ldGhcbiAgZW5kXG5cbmxldCBsb2NhdGlvbl9vcmlnaW4gKGxvYyA6IGxvY2F0aW9uIHQpID1cbiAgT3B0ZGVmLmNhc2VcbiAgICBsb2MjIy5vcmlnaW5cbiAgICAoZnVuICgpIC0+XG4gICAgICBsZXQgcHJvdG9jb2wgPSBsb2MjIy5wcm90b2NvbCBpblxuICAgICAgbGV0IGhvc3RuYW1lID0gbG9jIyMuaG9zdG5hbWUgaW5cbiAgICAgIGxldCBwb3J0ID0gbG9jIyMucG9ydCBpblxuICAgICAgaWYgcHJvdG9jb2wjIy5sZW5ndGggPSAwICYmIGhvc3RuYW1lIyMubGVuZ3RoID0gMFxuICAgICAgdGhlbiBKcy5zdHJpbmcgXCJcIlxuICAgICAgZWxzZVxuICAgICAgICBsZXQgb3JpZ2luID0gcHJvdG9jb2wjI2NvbmNhdF8yIChKcy5zdHJpbmcgXCIvL1wiKSBob3N0bmFtZSBpblxuICAgICAgICBpZiBwb3J0IyMubGVuZ3RoID4gMCB0aGVuIG9yaWdpbiMjY29uY2F0XzIgKEpzLnN0cmluZyBcIjpcIikgbG9jIyMucG9ydCBlbHNlIG9yaWdpbilcbiAgICAoZnVuIG8gLT4gbylcblxuY2xhc3MgdHlwZSBoaXN0b3J5ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGxlbmd0aCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3RhdGUgOiBKcy5VbnNhZmUuYW55IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBnbyA6IGludCBvcHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYmFjayA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGZvcndhcmQgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBwdXNoU3RhdGUgOiAnYS4gJ2EgLT4ganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgb3B0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlcGxhY2VTdGF0ZSA6ICdhLiAnYSAtPiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBvcHQgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHVuZG9NYW5hZ2VyID0gb2JqZWN0IGVuZFxuXG5jbGFzcyB0eXBlIG5hdmlnYXRvciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBhcHBDb2RlTmFtZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhcHBOYW1lIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFwcFZlcnNpb24gOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY29va2llRW5hYmxlZCA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25MaW5lIDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwbGF0Zm9ybSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB2ZW5kb3IgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdXNlckFnZW50IDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGxhbmd1YWdlIDoganNfc3RyaW5nIHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB1c2VyTGFuZ3VhZ2UgOiBqc19zdHJpbmcgdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG1heFRvdWNoUG9pbnRzIDogaW50IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgc2NyZWVuID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHdpZHRoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGF2YWlsV2lkdGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGF2YWlsSGVpZ2h0IDogaW50IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgYXBwbGljYXRpb25DYWNoZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBzdGF0dXMgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHVwZGF0ZSA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGFib3J0IDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc3dhcENhY2hlIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgb25jaGVja2luZyA6IChhcHBsaWNhdGlvbkNhY2hlIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmVycm9yIDogKGFwcGxpY2F0aW9uQ2FjaGUgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9ubm91cGRhdGUgOiAoYXBwbGljYXRpb25DYWNoZSB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25kb3dubG9hZGluZyA6IChhcHBsaWNhdGlvbkNhY2hlIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbnByb2dyZXNzIDogKGFwcGxpY2F0aW9uQ2FjaGUgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9udXBkYXRlcmVhZHkgOiAoYXBwbGljYXRpb25DYWNoZSB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25jYWNoZWQgOiAoYXBwbGljYXRpb25DYWNoZSB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25vYnNvbGV0ZSA6IChhcHBsaWNhdGlvbkNhY2hlIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIGluaGVyaXQgZXZlbnRUYXJnZXRcbiAgZW5kXG5cbmNsYXNzIHR5cGUgX1VSTCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBjcmVhdGVPYmplY3RVUkwgOiAjRmlsZS5ibG9iIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHJldm9rZU9iamVjdFVSTCA6IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuICBlbmRcblxuY2xhc3MgdHlwZSB3aW5kb3cgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGV2ZW50VGFyZ2V0XG5cbiAgICBtZXRob2QgZG9jdW1lbnQgOiBkb2N1bWVudCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhcHBsaWNhdGlvbkNhY2hlIDogYXBwbGljYXRpb25DYWNoZSB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBuYW1lIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGxvY2F0aW9uIDogbG9jYXRpb24gdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaGlzdG9yeSA6IGhpc3RvcnkgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdW5kb01hbmFnZXIgOiB1bmRvTWFuYWdlciB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBuYXZpZ2F0b3IgOiBuYXZpZ2F0b3IgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZ2V0U2VsZWN0aW9uIDogc2VsZWN0aW9uIHQgbWV0aFxuXG4gICAgbWV0aG9kIGNsb3NlIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY2xvc2VkIDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzdG9wIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZm9jdXMgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBibHVyIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2Nyb2xsIDogaW50IC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzY3JvbGxCeSA6IGludCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2Vzc2lvblN0b3JhZ2UgOiBzdG9yYWdlIHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBsb2NhbFN0b3JhZ2UgOiBzdG9yYWdlIHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0b3AgOiB3aW5kb3cgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcGFyZW50IDogd2luZG93IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGZyYW1lRWxlbWVudCA6IGVsZW1lbnQgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9wZW5fIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgb3B0IC0+IHdpbmRvdyB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2QgYWxlcnQgOiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjb25maXJtIDoganNfc3RyaW5nIHQgLT4gYm9vbCB0IG1ldGhcblxuICAgIG1ldGhvZCBwcm9tcHQgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIHByaW50IDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0SW50ZXJ2YWwgOiAodW5pdCAtPiB1bml0KSBKcy5jYWxsYmFjayAtPiBmbG9hdCAtPiBpbnRlcnZhbF9pZCBtZXRoXG5cbiAgICBtZXRob2QgY2xlYXJJbnRlcnZhbCA6IGludGVydmFsX2lkIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFRpbWVvdXQgOiAodW5pdCAtPiB1bml0KSBKcy5jYWxsYmFjayAtPiBmbG9hdCAtPiB0aW1lb3V0X2lkIG1ldGhcblxuICAgIG1ldGhvZCBjbGVhclRpbWVvdXQgOiB0aW1lb3V0X2lkIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlcXVlc3RBbmltYXRpb25GcmFtZSA6XG4gICAgICAoZmxvYXQgLT4gdW5pdCkgSnMuY2FsbGJhY2sgLT4gYW5pbWF0aW9uX2ZyYW1lX3JlcXVlc3RfaWQgbWV0aFxuXG4gICAgbWV0aG9kIGNhbmNlbEFuaW1hdGlvbkZyYW1lIDogYW5pbWF0aW9uX2ZyYW1lX3JlcXVlc3RfaWQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2NyZWVuIDogc2NyZWVuIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGlubmVyV2lkdGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGlubmVySGVpZ2h0IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvdXRlcldpZHRoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvdXRlckhlaWdodCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZ2V0Q29tcHV0ZWRTdHlsZSA6ICNlbGVtZW50IHQgLT4gY3NzU3R5bGVEZWNsYXJhdGlvbiB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRDb21wdXRlZFN0eWxlX3BzZXVkb0VsdCA6XG4gICAgICAjZWxlbWVudCB0IC0+IGpzX3N0cmluZyB0IC0+IGNzc1N0eWxlRGVjbGFyYXRpb24gdCBtZXRoXG5cbiAgICBtZXRob2QgYXRvYiA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCBidG9hIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIG9ubG9hZCA6ICh3aW5kb3cgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9udW5sb2FkIDogKHdpbmRvdyB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25iZWZvcmV1bmxvYWQgOiAod2luZG93IHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmJsdXIgOiAod2luZG93IHQsIGZvY3VzRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9uZm9jdXMgOiAod2luZG93IHQsIGZvY3VzRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9ucmVzaXplIDogKHdpbmRvdyB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25vcmllbnRhdGlvbmNoYW5nZSA6ICh3aW5kb3cgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9ucG9wc3RhdGUgOiAod2luZG93IHQsIHBvcFN0YXRlRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9uaGFzaGNoYW5nZSA6ICh3aW5kb3cgdCwgaGFzaENoYW5nZUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbm9ubGluZSA6ICh3aW5kb3cgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbm9mZmxpbmUgOiAod2luZG93IHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1VSTCA6IF9VUkwgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZGV2aWNlUGl4ZWxSYXRpbyA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCB3aW5kb3cgOiB3aW5kb3cgdCA9IEpzLlVuc2FmZS5nbG9iYWxcblxuKCogVGhlIHRvcGxldmVsIG9iamVjdCAqKVxuXG5sZXQgZG9jdW1lbnQgPSB3aW5kb3cjIy5kb2N1bWVudFxuXG5sZXQgZ2V0RWxlbWVudEJ5SWQgaWQgPVxuICBKcy5PcHQuY2FzZVxuICAgIChkb2N1bWVudCMjZ2V0RWxlbWVudEJ5SWQgKEpzLnN0cmluZyBpZCkpXG4gICAgKGZ1biAoKSAtPiByYWlzZSBOb3RfZm91bmQpXG4gICAgKGZ1biBwbm9kZSAtPiBwbm9kZSlcblxubGV0IGdldEVsZW1lbnRCeUlkX2V4biBpZCA9XG4gIEpzLk9wdC5jYXNlXG4gICAgKGRvY3VtZW50IyNnZXRFbGVtZW50QnlJZCAoSnMuc3RyaW5nIGlkKSlcbiAgICAoZnVuICgpIC0+IGZhaWx3aXRoIChQcmludGYuc3ByaW50ZiBcImdldEVsZW1lbnRCeUlkX2V4bjogJVMgbm90IGZvdW5kXCIgaWQpKVxuICAgIChmdW4gcG5vZGUgLT4gcG5vZGUpXG5cbmxldCBnZXRFbGVtZW50QnlJZF9vcHQgaWQgPSBKcy5PcHQudG9fb3B0aW9uIChkb2N1bWVudCMjZ2V0RWxlbWVudEJ5SWQgKEpzLnN0cmluZyBpZCkpXG5cbmxldCBnZXRFbGVtZW50QnlJZF9jb2VyY2UgaWQgY29lcmNlID1cbiAgSnMuT3B0LmNhc2VcbiAgICAoZG9jdW1lbnQjI2dldEVsZW1lbnRCeUlkIChKcy5zdHJpbmcgaWQpKVxuICAgIChmdW4gKCkgLT4gTm9uZSlcbiAgICAoZnVuIGUgLT4gSnMuT3B0LnRvX29wdGlvbiAoY29lcmNlIGUpKVxuXG4oKioqKilcblxuY2xhc3MgdHlwZSBmcmFtZVNldEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBjb2xzIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHJvd3MgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGZyYW1lRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGZyYW1lQm9yZGVyIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGxvbmdEZXNjIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1hcmdpbkhlaWdodCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBtYXJnaW5XaWR0aCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBuYW1lIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG5vUmVzaXplIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBzY3JvbGxpbmcgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc3JjIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNvbnRlbnREb2N1bWVudCA6IGRvY3VtZW50IHQgb3B0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgaUZyYW1lRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGZyYW1lQm9yZGVyIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBsb25nRGVzYyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBtYXJnaW5IZWlnaHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbWFyZ2luV2lkdGggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbmFtZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBzY3JvbGxpbmcgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc3JjIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNvbnRlbnREb2N1bWVudCA6IGRvY3VtZW50IHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjb250ZW50V2luZG93IDogd2luZG93IHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCoqKiopXG5cbigqWFhYIFNob3VsZCBwcm92aWRlIGNyZWF0aW9uIGZ1bmN0aW9ucyBhIGxhIGxhYmxndGsuLi4gKilcblxubGV0IG9wdF9pdGVyIHggZiA9XG4gIG1hdGNoIHggd2l0aFxuICB8IE5vbmUgLT4gKClcbiAgfCBTb21lIHYgLT4gZiB2XG5cbmxldCBjcmVhdGVFbGVtZW50IChkb2MgOiBkb2N1bWVudCB0KSBuYW1lID0gZG9jIyNjcmVhdGVFbGVtZW50IChKcy5zdHJpbmcgbmFtZSlcblxubGV0IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIG5hbWUgPSBKcy5VbnNhZmUuY29lcmNlIChjcmVhdGVFbGVtZW50IGRvYyBuYW1lKVxuXG5sZXQgY3JlYXRlRWxlbWVudFN5bnRheCA9IHJlZiBgVW5rbm93blxuXG5sZXQgcmVjIHVuc2FmZUNyZWF0ZUVsZW1lbnRFeCA/X3R5cGUgP25hbWUgZG9jIGVsdCA9XG4gIGlmIFBvbHkuKF90eXBlID0gTm9uZSkgJiYgUG9seS4obmFtZSA9IE5vbmUpXG4gIHRoZW4gSnMuVW5zYWZlLmNvZXJjZSAoY3JlYXRlRWxlbWVudCBkb2MgZWx0KVxuICBlbHNlXG4gICAgbWF0Y2ggIWNyZWF0ZUVsZW1lbnRTeW50YXggd2l0aFxuICAgIHwgYFN0YW5kYXJkIC0+XG4gICAgICAgIGxldCByZXMgPSBKcy5VbnNhZmUuY29lcmNlIChjcmVhdGVFbGVtZW50IGRvYyBlbHQpIGluXG4gICAgICAgIG9wdF9pdGVyIF90eXBlIChmdW4gdCAtPiByZXMjIy5fdHlwZSA6PSB0KTtcbiAgICAgICAgb3B0X2l0ZXIgbmFtZSAoZnVuIG4gLT4gcmVzIyMubmFtZSA6PSBuKTtcbiAgICAgICAgcmVzXG4gICAgfCBgRXh0ZW5kZWQgLT5cbiAgICAgICAgbGV0IGEgPSBuZXclanMgSnMuYXJyYXlfZW1wdHkgaW5cbiAgICAgICAgaWdub3JlIChhIyNwdXNoXzIgKEpzLnN0cmluZyBcIjxcIikgKEpzLnN0cmluZyBlbHQpKTtcbiAgICAgICAgb3B0X2l0ZXIgX3R5cGUgKGZ1biB0IC0+XG4gICAgICAgICAgICBpZ25vcmUgKGEjI3B1c2hfMyAoSnMuc3RyaW5nIFwiIHR5cGU9XFxcIlwiKSAoaHRtbF9lc2NhcGUgdCkgKEpzLnN0cmluZyBcIlxcXCJcIikpKTtcbiAgICAgICAgb3B0X2l0ZXIgbmFtZSAoZnVuIG4gLT5cbiAgICAgICAgICAgIGlnbm9yZSAoYSMjcHVzaF8zIChKcy5zdHJpbmcgXCIgbmFtZT1cXFwiXCIpIChodG1sX2VzY2FwZSBuKSAoSnMuc3RyaW5nIFwiXFxcIlwiKSkpO1xuICAgICAgICBpZ25vcmUgKGEjI3B1c2ggKEpzLnN0cmluZyBcIj5cIikpO1xuICAgICAgICBKcy5VbnNhZmUuY29lcmNlIChkb2MjI2NyZWF0ZUVsZW1lbnQgKGEjI2pvaW4gKEpzLnN0cmluZyBcIlwiKSkpXG4gICAgfCBgVW5rbm93biAtPlxuICAgICAgICBjcmVhdGVFbGVtZW50U3ludGF4IDo9XG4gICAgICAgICAgaWYgdHJ5XG4gICAgICAgICAgICAgICBsZXQgZWwgOiBpbnB1dEVsZW1lbnQgSnMudCA9XG4gICAgICAgICAgICAgICAgIEpzLlVuc2FmZS5jb2VyY2VcbiAgICAgICAgICAgICAgICAgICAoZG9jdW1lbnQjI2NyZWF0ZUVsZW1lbnQgKEpzLnN0cmluZyBcIjxpbnB1dCBuYW1lPVxcXCJ4XFxcIj5cIikpXG4gICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgZWwjIy50YWdOYW1lIyN0b0xvd2VyQ2FzZSA9PSBKcy5zdHJpbmcgXCJpbnB1dFwiXG4gICAgICAgICAgICAgICAmJiBlbCMjLm5hbWUgPT0gSnMuc3RyaW5nIFwieFwiXG4gICAgICAgICAgICAgd2l0aCBfIC0+IGZhbHNlXG4gICAgICAgICAgdGhlbiBgRXh0ZW5kZWRcbiAgICAgICAgICBlbHNlIGBTdGFuZGFyZDtcbiAgICAgICAgdW5zYWZlQ3JlYXRlRWxlbWVudEV4ID9fdHlwZSA/bmFtZSBkb2MgZWx0XG5cbmxldCBjcmVhdGVIdG1sIGRvYyA6IGh0bWxFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImh0bWxcIlxuXG5sZXQgY3JlYXRlSGVhZCBkb2MgOiBoZWFkRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJoZWFkXCJcblxubGV0IGNyZWF0ZUxpbmsgZG9jIDogbGlua0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwibGlua1wiXG5cbmxldCBjcmVhdGVUaXRsZSBkb2MgOiB0aXRsZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwidGl0bGVcIlxuXG5sZXQgY3JlYXRlTWV0YSBkb2MgOiBtZXRhRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJtZXRhXCJcblxubGV0IGNyZWF0ZUJhc2UgZG9jIDogYmFzZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiYmFzZVwiXG5cbmxldCBjcmVhdGVTdHlsZSBkb2MgOiBzdHlsZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwic3R5bGVcIlxuXG5sZXQgY3JlYXRlQm9keSBkb2MgOiBib2R5RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJib2R5XCJcblxubGV0IGNyZWF0ZUZvcm0gZG9jIDogZm9ybUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZm9ybVwiXG5cbmxldCBjcmVhdGVPcHRncm91cCBkb2MgOiBvcHRHcm91cEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwib3B0Z3JvdXBcIlxuXG5sZXQgY3JlYXRlT3B0aW9uIGRvYyA6IG9wdGlvbkVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwib3B0aW9uXCJcblxubGV0IGNyZWF0ZVNlbGVjdCA/X3R5cGUgP25hbWUgZG9jIDogc2VsZWN0RWxlbWVudCB0ID1cbiAgdW5zYWZlQ3JlYXRlRWxlbWVudEV4ID9fdHlwZSA/bmFtZSBkb2MgXCJzZWxlY3RcIlxuXG5sZXQgY3JlYXRlSW5wdXQgP190eXBlID9uYW1lIGRvYyA6IGlucHV0RWxlbWVudCB0ID1cbiAgdW5zYWZlQ3JlYXRlRWxlbWVudEV4ID9fdHlwZSA/bmFtZSBkb2MgXCJpbnB1dFwiXG5cbmxldCBjcmVhdGVUZXh0YXJlYSA/X3R5cGUgP25hbWUgZG9jIDogdGV4dEFyZWFFbGVtZW50IHQgPVxuICB1bnNhZmVDcmVhdGVFbGVtZW50RXggP190eXBlID9uYW1lIGRvYyBcInRleHRhcmVhXCJcblxubGV0IGNyZWF0ZUJ1dHRvbiA/X3R5cGUgP25hbWUgZG9jIDogYnV0dG9uRWxlbWVudCB0ID1cbiAgdW5zYWZlQ3JlYXRlRWxlbWVudEV4ID9fdHlwZSA/bmFtZSBkb2MgXCJidXR0b25cIlxuXG5sZXQgY3JlYXRlTGFiZWwgZG9jIDogbGFiZWxFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImxhYmVsXCJcblxubGV0IGNyZWF0ZUZpZWxkc2V0IGRvYyA6IGZpZWxkU2V0RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJmaWVsZHNldFwiXG5cbmxldCBjcmVhdGVMZWdlbmQgZG9jIDogbGVnZW5kRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJsZWdlbmRcIlxuXG5sZXQgY3JlYXRlVWwgZG9jIDogdUxpc3RFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInVsXCJcblxubGV0IGNyZWF0ZU9sIGRvYyA6IG9MaXN0RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJvbFwiXG5cbmxldCBjcmVhdGVEbCBkb2MgOiBkTGlzdEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZGxcIlxuXG5sZXQgY3JlYXRlTGkgZG9jIDogbGlFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImxpXCJcblxubGV0IGNyZWF0ZURpdiBkb2MgOiBkaXZFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImRpdlwiXG5cbmxldCBjcmVhdGVFbWJlZCBkb2MgOiBlbWJlZEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZW1iZWRcIlxuXG5sZXQgY3JlYXRlUCBkb2MgOiBwYXJhZ3JhcGhFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInBcIlxuXG5sZXQgY3JlYXRlSDEgZG9jIDogaGVhZGluZ0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiaDFcIlxuXG5sZXQgY3JlYXRlSDIgZG9jIDogaGVhZGluZ0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiaDJcIlxuXG5sZXQgY3JlYXRlSDMgZG9jIDogaGVhZGluZ0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiaDNcIlxuXG5sZXQgY3JlYXRlSDQgZG9jIDogaGVhZGluZ0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiaDRcIlxuXG5sZXQgY3JlYXRlSDUgZG9jIDogaGVhZGluZ0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiaDVcIlxuXG5sZXQgY3JlYXRlSDYgZG9jIDogaGVhZGluZ0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiaDZcIlxuXG5sZXQgY3JlYXRlUSBkb2MgOiBxdW90ZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwicVwiXG5cbmxldCBjcmVhdGVCbG9ja3F1b3RlIGRvYyA6IHF1b3RlRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJibG9ja3F1b3RlXCJcblxubGV0IGNyZWF0ZVByZSBkb2MgOiBwcmVFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInByZVwiXG5cbmxldCBjcmVhdGVCciBkb2MgOiBickVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiYnJcIlxuXG5sZXQgY3JlYXRlSHIgZG9jIDogaHJFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImhyXCJcblxubGV0IGNyZWF0ZUlucyBkb2MgOiBtb2RFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImluc1wiXG5cbmxldCBjcmVhdGVEZWwgZG9jIDogbW9kRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJkZWxcIlxuXG5sZXQgY3JlYXRlQSBkb2MgOiBhbmNob3JFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImFcIlxuXG5sZXQgY3JlYXRlSW1nIGRvYyA6IGltYWdlRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJpbWdcIlxuXG5sZXQgY3JlYXRlT2JqZWN0IGRvYyA6IG9iamVjdEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwib2JqZWN0XCJcblxubGV0IGNyZWF0ZVBhcmFtIGRvYyA6IHBhcmFtRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJwYXJhbVwiXG5cbmxldCBjcmVhdGVNYXAgZG9jIDogbWFwRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJtYXBcIlxuXG5sZXQgY3JlYXRlQXJlYSBkb2MgOiBhcmVhRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJhcmVhXCJcblxubGV0IGNyZWF0ZVNjcmlwdCBkb2MgOiBzY3JpcHRFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInNjcmlwdFwiXG5cbmxldCBjcmVhdGVUYWJsZSBkb2MgOiB0YWJsZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwidGFibGVcIlxuXG5sZXQgY3JlYXRlQ2FwdGlvbiBkb2MgOiB0YWJsZUNhcHRpb25FbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImNhcHRpb25cIlxuXG5sZXQgY3JlYXRlQ29sIGRvYyA6IHRhYmxlQ29sRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJjb2xcIlxuXG5sZXQgY3JlYXRlQ29sZ3JvdXAgZG9jIDogdGFibGVDb2xFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImNvbGdyb3VwXCJcblxubGV0IGNyZWF0ZVRoZWFkIGRvYyA6IHRhYmxlU2VjdGlvbkVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwidGhlYWRcIlxuXG5sZXQgY3JlYXRlVGZvb3QgZG9jIDogdGFibGVTZWN0aW9uRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJ0Zm9vdFwiXG5cbmxldCBjcmVhdGVUYm9keSBkb2MgOiB0YWJsZVNlY3Rpb25FbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInRib2R5XCJcblxubGV0IGNyZWF0ZVRyIGRvYyA6IHRhYmxlUm93RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJ0clwiXG5cbmxldCBjcmVhdGVUaCBkb2MgOiB0YWJsZUNlbGxFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInRoXCJcblxubGV0IGNyZWF0ZVRkIGRvYyA6IHRhYmxlQ2VsbEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwidGRcIlxuXG5sZXQgY3JlYXRlU3ViIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwic3ViXCJcblxubGV0IGNyZWF0ZVN1cCBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcInN1cFwiXG5cbmxldCBjcmVhdGVTcGFuIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwic3BhblwiXG5cbmxldCBjcmVhdGVUdCBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcInR0XCJcblxubGV0IGNyZWF0ZUkgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJpXCJcblxubGV0IGNyZWF0ZUIgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJiXCJcblxubGV0IGNyZWF0ZUJpZyBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcImJpZ1wiXG5cbmxldCBjcmVhdGVTbWFsbCBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcInNtYWxsXCJcblxubGV0IGNyZWF0ZUVtIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwiZW1cIlxuXG5sZXQgY3JlYXRlU3Ryb25nIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwic3Ryb25nXCJcblxubGV0IGNyZWF0ZUNpdGUgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJjaXRlXCJcblxubGV0IGNyZWF0ZURmbiBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcImRmblwiXG5cbmxldCBjcmVhdGVDb2RlIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwiY29kZVwiXG5cbmxldCBjcmVhdGVTYW1wIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwic2FtcFwiXG5cbmxldCBjcmVhdGVLYmQgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJrYmRcIlxuXG5sZXQgY3JlYXRlVmFyIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwidmFyXCJcblxubGV0IGNyZWF0ZUFiYnIgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJhYmJyXCJcblxubGV0IGNyZWF0ZURkIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwiZGRcIlxuXG5sZXQgY3JlYXRlRHQgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJkdFwiXG5cbmxldCBjcmVhdGVOb3NjcmlwdCBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcIm5vc2NyaXB0XCJcblxubGV0IGNyZWF0ZUFkZHJlc3MgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJhZGRyZXNzXCJcblxubGV0IGNyZWF0ZUZyYW1lc2V0IGRvYyA6IGZyYW1lU2V0RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJmcmFtZXNldFwiXG5cbmxldCBjcmVhdGVGcmFtZSBkb2MgOiBmcmFtZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZnJhbWVcIlxuXG5sZXQgY3JlYXRlSWZyYW1lIGRvYyA6IGlGcmFtZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiaWZyYW1lXCJcblxubGV0IGNyZWF0ZUF1ZGlvIGRvYyA6IGF1ZGlvRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJhdWRpb1wiXG5cbmxldCBjcmVhdGVWaWRlbyBkb2MgOiBhdWRpb0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwidmlkZW9cIlxuXG5leGNlcHRpb24gQ2FudmFzX25vdF9hdmFpbGFibGVcblxubGV0IGNyZWF0ZUNhbnZhcyBkb2MgOiBjYW52YXNFbGVtZW50IHQgPVxuICBsZXQgYyA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiY2FudmFzXCIgaW5cbiAgaWYgbm90IChPcHQudGVzdCBjIyMuZ2V0Q29udGV4dCkgdGhlbiByYWlzZSBDYW52YXNfbm90X2F2YWlsYWJsZTtcbiAgY1xuXG5sZXQgaHRtbF9lbGVtZW50IDogaHRtbEVsZW1lbnQgdCBjb25zdHIgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX0hUTUxFbGVtZW50XG5cbm1vZHVsZSBDb2VyY2VUbyA9IHN0cnVjdFxuICBsZXQgZWxlbWVudCA6ICNEb20ubm9kZSBKcy50IC0+IGVsZW1lbnQgSnMudCBKcy5vcHQgPVxuICAgIGlmIGRlZiBodG1sX2VsZW1lbnQgPT0gdW5kZWZpbmVkXG4gICAgdGhlblxuICAgICAgKCogaWUgPCA5IGRvZXMgbm90IGhhdmUgSFRNTEVsZW1lbnQ6IHdlIGhhdmUgdG8gY2hlYXQgdG8gY2hlY2tcbiAgICAgICAgIHRoYXQgc29tZXRoaW5nIGlzIGFuIGh0bWwgZWxlbWVudCAqKVxuICAgICAgZnVuIGUgLT5cbiAgICAgIGlmIGRlZiAoSnMuVW5zYWZlLmNvZXJjZSBlKSMjLmlubmVySFRNTCA9PSB1bmRlZmluZWRcbiAgICAgIHRoZW4gSnMubnVsbFxuICAgICAgZWxzZSBKcy5zb21lIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgZWxzZVxuICAgICAgZnVuIGUgLT5cbiAgICAgIGlmIEpzLmluc3RhbmNlb2YgZSBodG1sX2VsZW1lbnQgdGhlbiBKcy5zb21lIChKcy5VbnNhZmUuY29lcmNlIGUpIGVsc2UgSnMubnVsbFxuXG4gIGxldCB1bnNhZmVDb2VyY2UgdGFnIChlIDogI2VsZW1lbnQgdCkgPVxuICAgIGlmIGUjIy50YWdOYW1lIyN0b0xvd2VyQ2FzZSA9PSBKcy5zdHJpbmcgdGFnXG4gICAgdGhlbiBKcy5zb21lIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgZWxzZSBKcy5udWxsXG5cbiAgbGV0IGEgZSA9IHVuc2FmZUNvZXJjZSBcImFcIiBlXG5cbiAgbGV0IGFyZWEgZSA9IHVuc2FmZUNvZXJjZSBcImFyZWFcIiBlXG5cbiAgbGV0IGJhc2UgZSA9IHVuc2FmZUNvZXJjZSBcImJhc2VcIiBlXG5cbiAgbGV0IGJsb2NrcXVvdGUgZSA9IHVuc2FmZUNvZXJjZSBcImJsb2NrcXVvdGVcIiBlXG5cbiAgbGV0IGJvZHkgZSA9IHVuc2FmZUNvZXJjZSBcImJvZHlcIiBlXG5cbiAgbGV0IGJyIGUgPSB1bnNhZmVDb2VyY2UgXCJiclwiIGVcblxuICBsZXQgYnV0dG9uIGUgPSB1bnNhZmVDb2VyY2UgXCJidXR0b25cIiBlXG5cbiAgbGV0IGNhbnZhcyBlID0gdW5zYWZlQ29lcmNlIFwiY2FudmFzXCIgZVxuXG4gIGxldCBjYXB0aW9uIGUgPSB1bnNhZmVDb2VyY2UgXCJjYXB0aW9uXCIgZVxuXG4gIGxldCBjb2wgZSA9IHVuc2FmZUNvZXJjZSBcImNvbFwiIGVcblxuICBsZXQgY29sZ3JvdXAgZSA9IHVuc2FmZUNvZXJjZSBcImNvbGdyb3VwXCIgZVxuXG4gIGxldCBkZWwgZSA9IHVuc2FmZUNvZXJjZSBcImRlbFwiIGVcblxuICBsZXQgZGl2IGUgPSB1bnNhZmVDb2VyY2UgXCJkaXZcIiBlXG5cbiAgbGV0IGRsIGUgPSB1bnNhZmVDb2VyY2UgXCJkbFwiIGVcblxuICBsZXQgZmllbGRzZXQgZSA9IHVuc2FmZUNvZXJjZSBcImZpZWxkc2V0XCIgZVxuXG4gIGxldCBlbWJlZCBlID0gdW5zYWZlQ29lcmNlIFwiZW1iZWRcIiBlXG5cbiAgbGV0IGZvcm0gZSA9IHVuc2FmZUNvZXJjZSBcImZvcm1cIiBlXG5cbiAgbGV0IGZyYW1lc2V0IGUgPSB1bnNhZmVDb2VyY2UgXCJmcmFtZXNldFwiIGVcblxuICBsZXQgZnJhbWUgZSA9IHVuc2FmZUNvZXJjZSBcImZyYW1lXCIgZVxuXG4gIGxldCBoMSBlID0gdW5zYWZlQ29lcmNlIFwiaDFcIiBlXG5cbiAgbGV0IGgyIGUgPSB1bnNhZmVDb2VyY2UgXCJoMlwiIGVcblxuICBsZXQgaDMgZSA9IHVuc2FmZUNvZXJjZSBcImgzXCIgZVxuXG4gIGxldCBoNCBlID0gdW5zYWZlQ29lcmNlIFwiaDRcIiBlXG5cbiAgbGV0IGg1IGUgPSB1bnNhZmVDb2VyY2UgXCJoNVwiIGVcblxuICBsZXQgaDYgZSA9IHVuc2FmZUNvZXJjZSBcImg2XCIgZVxuXG4gIGxldCBoZWFkIGUgPSB1bnNhZmVDb2VyY2UgXCJoZWFkXCIgZVxuXG4gIGxldCBociBlID0gdW5zYWZlQ29lcmNlIFwiaHJcIiBlXG5cbiAgbGV0IGh0bWwgZSA9IHVuc2FmZUNvZXJjZSBcImh0bWxcIiBlXG5cbiAgbGV0IGlmcmFtZSBlID0gdW5zYWZlQ29lcmNlIFwiaWZyYW1lXCIgZVxuXG4gIGxldCBpbWcgZSA9IHVuc2FmZUNvZXJjZSBcImltZ1wiIGVcblxuICBsZXQgaW5wdXQgZSA9IHVuc2FmZUNvZXJjZSBcImlucHV0XCIgZVxuXG4gIGxldCBpbnMgZSA9IHVuc2FmZUNvZXJjZSBcImluc1wiIGVcblxuICBsZXQgbGFiZWwgZSA9IHVuc2FmZUNvZXJjZSBcImxhYmVsXCIgZVxuXG4gIGxldCBsZWdlbmQgZSA9IHVuc2FmZUNvZXJjZSBcImxlZ2VuZFwiIGVcblxuICBsZXQgbGkgZSA9IHVuc2FmZUNvZXJjZSBcImxpXCIgZVxuXG4gIGxldCBsaW5rIGUgPSB1bnNhZmVDb2VyY2UgXCJsaW5rXCIgZVxuXG4gIGxldCBtYXAgZSA9IHVuc2FmZUNvZXJjZSBcIm1hcFwiIGVcblxuICBsZXQgbWV0YSBlID0gdW5zYWZlQ29lcmNlIFwibWV0YVwiIGVcblxuICBsZXQgX29iamVjdCBlID0gdW5zYWZlQ29lcmNlIFwib2JqZWN0XCIgZVxuXG4gIGxldCBvbCBlID0gdW5zYWZlQ29lcmNlIFwib2xcIiBlXG5cbiAgbGV0IG9wdGdyb3VwIGUgPSB1bnNhZmVDb2VyY2UgXCJvcHRncm91cFwiIGVcblxuICBsZXQgb3B0aW9uIGUgPSB1bnNhZmVDb2VyY2UgXCJvcHRpb25cIiBlXG5cbiAgbGV0IHAgZSA9IHVuc2FmZUNvZXJjZSBcInBcIiBlXG5cbiAgbGV0IHBhcmFtIGUgPSB1bnNhZmVDb2VyY2UgXCJwYXJhbVwiIGVcblxuICBsZXQgcHJlIGUgPSB1bnNhZmVDb2VyY2UgXCJwcmVcIiBlXG5cbiAgbGV0IHEgZSA9IHVuc2FmZUNvZXJjZSBcInFcIiBlXG5cbiAgbGV0IHNjcmlwdCBlID0gdW5zYWZlQ29lcmNlIFwic2NyaXB0XCIgZVxuXG4gIGxldCBzZWxlY3QgZSA9IHVuc2FmZUNvZXJjZSBcInNlbGVjdFwiIGVcblxuICBsZXQgc3R5bGUgZSA9IHVuc2FmZUNvZXJjZSBcInN0eWxlXCIgZVxuXG4gIGxldCB0YWJsZSBlID0gdW5zYWZlQ29lcmNlIFwidGFibGVcIiBlXG5cbiAgbGV0IHRib2R5IGUgPSB1bnNhZmVDb2VyY2UgXCJ0Ym9keVwiIGVcblxuICBsZXQgdGQgZSA9IHVuc2FmZUNvZXJjZSBcInRkXCIgZVxuXG4gIGxldCB0ZXh0YXJlYSBlID0gdW5zYWZlQ29lcmNlIFwidGV4dGFyZWFcIiBlXG5cbiAgbGV0IHRmb290IGUgPSB1bnNhZmVDb2VyY2UgXCJ0Zm9vdFwiIGVcblxuICBsZXQgdGggZSA9IHVuc2FmZUNvZXJjZSBcInRoXCIgZVxuXG4gIGxldCB0aGVhZCBlID0gdW5zYWZlQ29lcmNlIFwidGhlYWRcIiBlXG5cbiAgbGV0IHRpdGxlIGUgPSB1bnNhZmVDb2VyY2UgXCJ0aXRsZVwiIGVcblxuICBsZXQgdHIgZSA9IHVuc2FmZUNvZXJjZSBcInRyXCIgZVxuXG4gIGxldCB1bCBlID0gdW5zYWZlQ29lcmNlIFwidWxcIiBlXG5cbiAgbGV0IGF1ZGlvIGUgPSB1bnNhZmVDb2VyY2UgXCJhdWRpb1wiIGVcblxuICBsZXQgdmlkZW8gZSA9IHVuc2FmZUNvZXJjZSBcInZpZGVvXCIgZVxuXG4gIGxldCB1bnNhZmVDb2VyY2VFdmVudCBjb25zdHIgKGV2IDogI2V2ZW50IHQpID1cbiAgICBpZiBkZWYgY29uc3RyICE9IHVuZGVmaW5lZCAmJiBKcy5pbnN0YW5jZW9mIGV2IGNvbnN0clxuICAgIHRoZW4gSnMuc29tZSAoSnMuVW5zYWZlLmNvZXJjZSBldilcbiAgICBlbHNlIEpzLm51bGxcblxuICBsZXQgbW91c2VFdmVudCBldiA9IHVuc2FmZUNvZXJjZUV2ZW50IEpzLlVuc2FmZS5nbG9iYWwjIy5fTW91c2VFdmVudCBldlxuXG4gIGxldCBrZXlib2FyZEV2ZW50IGV2ID0gdW5zYWZlQ29lcmNlRXZlbnQgSnMuVW5zYWZlLmdsb2JhbCMjLl9LZXlib2FyZEV2ZW50IGV2XG5cbiAgbGV0IHdoZWVsRXZlbnQgZXYgPSB1bnNhZmVDb2VyY2VFdmVudCBKcy5VbnNhZmUuZ2xvYmFsIyMuX1doZWVsRXZlbnQgZXZcblxuICBsZXQgbW91c2VTY3JvbGxFdmVudCBldiA9IHVuc2FmZUNvZXJjZUV2ZW50IEpzLlVuc2FmZS5nbG9iYWwjIy5fTW91c2VTY3JvbGxFdmVudCBldlxuXG4gIGxldCBwb3BTdGF0ZUV2ZW50IGV2ID0gdW5zYWZlQ29lcmNlRXZlbnQgSnMuVW5zYWZlLmdsb2JhbCMjLl9Qb3BTdGF0ZUV2ZW50IGV2XG5cbiAgbGV0IG1lc3NhZ2VFdmVudCBldiA9IHVuc2FmZUNvZXJjZUV2ZW50IEpzLlVuc2FmZS5nbG9iYWwjIy5fTWVzc2FnZUV2ZW50IGV2XG5lbmRcblxuKCoqKiopXG5cbmxldCBldmVudFRhcmdldCA9IERvbS5ldmVudFRhcmdldFxuXG5sZXQgZXZlbnRSZWxhdGVkVGFyZ2V0IChlIDogI21vdXNlRXZlbnQgdCkgPVxuICBPcHRkZWYuZ2V0IGUjIy5yZWxhdGVkVGFyZ2V0IChmdW4gKCkgLT5cbiAgICAgIG1hdGNoIEpzLnRvX3N0cmluZyBlIyMuX3R5cGUgd2l0aFxuICAgICAgfCBcIm1vdXNlb3ZlclwiIC0+IE9wdGRlZi5nZXQgZSMjLmZyb21FbGVtZW50IChmdW4gKCkgLT4gYXNzZXJ0IGZhbHNlKVxuICAgICAgfCBcIm1vdXNlb3V0XCIgLT4gT3B0ZGVmLmdldCBlIyMudG9FbGVtZW50IChmdW4gKCkgLT4gYXNzZXJ0IGZhbHNlKVxuICAgICAgfCBfIC0+IEpzLm51bGwpXG5cbmxldCBldmVudEFic29sdXRlUG9zaXRpb24nIChlIDogI21vdXNlRXZlbnQgdCkgPVxuICBsZXQgYm9keSA9IGRvY3VtZW50IyMuYm9keSBpblxuICBsZXQgaHRtbCA9IGRvY3VtZW50IyMuZG9jdW1lbnRFbGVtZW50IGluXG4gICggZSMjLmNsaWVudFggKyBib2R5IyMuc2Nyb2xsTGVmdCArIGh0bWwjIy5zY3JvbGxMZWZ0XG4gICwgZSMjLmNsaWVudFkgKyBib2R5IyMuc2Nyb2xsVG9wICsgaHRtbCMjLnNjcm9sbFRvcCApXG5cbmxldCBldmVudEFic29sdXRlUG9zaXRpb24gKGUgOiAjbW91c2VFdmVudCB0KSA9XG4gIE9wdGRlZi5jYXNlXG4gICAgZSMjLnBhZ2VYXG4gICAgKGZ1biAoKSAtPiBldmVudEFic29sdXRlUG9zaXRpb24nIGUpXG4gICAgKGZ1biB4IC0+IE9wdGRlZi5jYXNlIGUjIy5wYWdlWSAoZnVuICgpIC0+IGV2ZW50QWJzb2x1dGVQb3NpdGlvbicgZSkgKGZ1biB5IC0+IHgsIHkpKVxuXG5sZXQgZWxlbWVudENsaWVudFBvc2l0aW9uIChlIDogI2VsZW1lbnQgdCkgPVxuICBsZXQgciA9IGUjI2dldEJvdW5kaW5nQ2xpZW50UmVjdCBpblxuICBsZXQgYm9keSA9IGRvY3VtZW50IyMuYm9keSBpblxuICBsZXQgaHRtbCA9IGRvY3VtZW50IyMuZG9jdW1lbnRFbGVtZW50IGluXG4gICggdHJ1bmNhdGUgciMjLmxlZnQgLSBib2R5IyMuY2xpZW50TGVmdCAtIGh0bWwjIy5jbGllbnRMZWZ0XG4gICwgdHJ1bmNhdGUgciMjLnRvcCAtIGJvZHkjIy5jbGllbnRUb3AgLSBodG1sIyMuY2xpZW50VG9wIClcblxubGV0IGdldERvY3VtZW50U2Nyb2xsICgpID1cbiAgbGV0IGJvZHkgPSBkb2N1bWVudCMjLmJvZHkgaW5cbiAgbGV0IGh0bWwgPSBkb2N1bWVudCMjLmRvY3VtZW50RWxlbWVudCBpblxuICBib2R5IyMuc2Nyb2xsTGVmdCArIGh0bWwjIy5zY3JvbGxMZWZ0LCBib2R5IyMuc2Nyb2xsVG9wICsgaHRtbCMjLnNjcm9sbFRvcFxuXG5sZXQgYnV0dG9uUHJlc3NlZCAoZXYgOiAjbW91c2VFdmVudCBKcy50KSA9XG4gIEpzLk9wdGRlZi5jYXNlXG4gICAgZXYjIy53aGljaFxuICAgIChmdW4gKCkgLT5cbiAgICAgIG1hdGNoIGV2IyMuYnV0dG9uIHdpdGhcbiAgICAgIHwgMSAtPiBMZWZ0X2J1dHRvblxuICAgICAgfCAyIC0+IFJpZ2h0X2J1dHRvblxuICAgICAgfCA0IC0+IE1pZGRsZV9idXR0b25cbiAgICAgIHwgXyAtPiBOb19idXR0b24pXG4gICAgKGZ1biB4IC0+IHgpXG5cbmxldCBhZGRNb3VzZXdoZWVsRXZlbnRMaXN0ZW5lcldpdGhPcHRpb25zIGUgP2NhcHR1cmUgP29uY2UgP3Bhc3NpdmUgaCA9XG4gIGFkZEV2ZW50TGlzdGVuZXJXaXRoT3B0aW9uc1xuICAgID9jYXB0dXJlXG4gICAgP29uY2VcbiAgICA/cGFzc2l2ZVxuICAgIGVcbiAgICBFdmVudC53aGVlbFxuICAgIChoYW5kbGVyIChmdW4gKGUgOiBtb3VzZXdoZWVsRXZlbnQgdCkgLT5cbiAgICAgICAgIGxldCBkeCA9IC1PcHRkZWYuZ2V0IGUjIy53aGVlbERlbHRhWCAoZnVuICgpIC0+IDApIC8gNDAgaW5cbiAgICAgICAgIGxldCBkeSA9IC1PcHRkZWYuZ2V0IGUjIy53aGVlbERlbHRhWSAoZnVuICgpIC0+IGUjIy53aGVlbERlbHRhKSAvIDQwIGluXG4gICAgICAgICBoIChlIDo+IG1vdXNlRXZlbnQgdCkgfmR4IH5keSkpXG5cbmxldCBhZGRNb3VzZXdoZWVsRXZlbnRMaXN0ZW5lciBlIGggY2FwdCA9XG4gIGFkZE1vdXNld2hlZWxFdmVudExpc3RlbmVyV2l0aE9wdGlvbnMgfmNhcHR1cmU6Y2FwdCBlIGhcblxuKCoqKioqKVxuXG5tb2R1bGUgS2V5Ym9hcmRfY29kZSA9IHN0cnVjdFxuICB0eXBlIHQgPVxuICAgIHwgVW5pZGVudGlmaWVkXG4gICAgKCogQWxwaGFiZXRpYyBDaGFyYWN0ZXJzICopXG4gICAgfCBLZXlBXG4gICAgfCBLZXlCXG4gICAgfCBLZXlDXG4gICAgfCBLZXlEXG4gICAgfCBLZXlFXG4gICAgfCBLZXlGXG4gICAgfCBLZXlHXG4gICAgfCBLZXlIXG4gICAgfCBLZXlJXG4gICAgfCBLZXlKXG4gICAgfCBLZXlLXG4gICAgfCBLZXlMXG4gICAgfCBLZXlNXG4gICAgfCBLZXlOXG4gICAgfCBLZXlPXG4gICAgfCBLZXlQXG4gICAgfCBLZXlRXG4gICAgfCBLZXlSXG4gICAgfCBLZXlTXG4gICAgfCBLZXlUXG4gICAgfCBLZXlVXG4gICAgfCBLZXlWXG4gICAgfCBLZXlXXG4gICAgfCBLZXlYXG4gICAgfCBLZXlZXG4gICAgfCBLZXlaXG4gICAgKCogRGlnaXRzICopXG4gICAgfCBEaWdpdDBcbiAgICB8IERpZ2l0MVxuICAgIHwgRGlnaXQyXG4gICAgfCBEaWdpdDNcbiAgICB8IERpZ2l0NFxuICAgIHwgRGlnaXQ1XG4gICAgfCBEaWdpdDZcbiAgICB8IERpZ2l0N1xuICAgIHwgRGlnaXQ4XG4gICAgfCBEaWdpdDlcbiAgICB8IE1pbnVzXG4gICAgfCBFcXVhbFxuICAgICgqIFdoaXRlc3BhY2UgKilcbiAgICB8IFRhYlxuICAgIHwgRW50ZXJcbiAgICB8IFNwYWNlXG4gICAgKCogRWRpdGluZyAqKVxuICAgIHwgRXNjYXBlXG4gICAgfCBCYWNrc3BhY2VcbiAgICB8IEluc2VydFxuICAgIHwgRGVsZXRlXG4gICAgfCBDYXBzTG9ja1xuICAgICgqIE1pc2MgUHJpbnRhYmxlICopXG4gICAgfCBCcmFja2V0TGVmdFxuICAgIHwgQnJhY2tldFJpZ2h0XG4gICAgfCBTZW1pY29sb25cbiAgICB8IFF1b3RlXG4gICAgfCBCYWNrcXVvdGVcbiAgICB8IEJhY2tzbGFzaFxuICAgIHwgQ29tbWFcbiAgICB8IFBlcmlvZFxuICAgIHwgU2xhc2hcbiAgICAoKiBGdW5jdGlvbiBrZXlzICopXG4gICAgfCBGMVxuICAgIHwgRjJcbiAgICB8IEYzXG4gICAgfCBGNFxuICAgIHwgRjVcbiAgICB8IEY2XG4gICAgfCBGN1xuICAgIHwgRjhcbiAgICB8IEY5XG4gICAgfCBGMTBcbiAgICB8IEYxMVxuICAgIHwgRjEyXG4gICAgKCogTnVtcGFkIGtleXMgKilcbiAgICB8IE51bXBhZDBcbiAgICB8IE51bXBhZDFcbiAgICB8IE51bXBhZDJcbiAgICB8IE51bXBhZDNcbiAgICB8IE51bXBhZDRcbiAgICB8IE51bXBhZDVcbiAgICB8IE51bXBhZDZcbiAgICB8IE51bXBhZDdcbiAgICB8IE51bXBhZDhcbiAgICB8IE51bXBhZDlcbiAgICB8IE51bXBhZE11bHRpcGx5XG4gICAgfCBOdW1wYWRTdWJ0cmFjdFxuICAgIHwgTnVtcGFkQWRkXG4gICAgfCBOdW1wYWREZWNpbWFsXG4gICAgfCBOdW1wYWRFcXVhbFxuICAgIHwgTnVtcGFkRW50ZXJcbiAgICB8IE51bXBhZERpdmlkZVxuICAgIHwgTnVtTG9ja1xuICAgICgqIE1vZGlmaWVyIGtleXMgKilcbiAgICB8IENvbnRyb2xMZWZ0XG4gICAgfCBDb250cm9sUmlnaHRcbiAgICB8IE1ldGFMZWZ0XG4gICAgfCBNZXRhUmlnaHRcbiAgICB8IFNoaWZ0TGVmdFxuICAgIHwgU2hpZnRSaWdodFxuICAgIHwgQWx0TGVmdFxuICAgIHwgQWx0UmlnaHRcbiAgICAoKiBBcnJvdyBrZXlzICopXG4gICAgfCBBcnJvd0xlZnRcbiAgICB8IEFycm93UmlnaHRcbiAgICB8IEFycm93VXBcbiAgICB8IEFycm93RG93blxuICAgICgqIE5hdmlnYXRpb24gKilcbiAgICB8IFBhZ2VVcFxuICAgIHwgUGFnZURvd25cbiAgICB8IEhvbWVcbiAgICB8IEVuZFxuICAgICgqIFNvdW5kICopXG4gICAgfCBWb2x1bWVNdXRlXG4gICAgfCBWb2x1bWVEb3duXG4gICAgfCBWb2x1bWVVcFxuICAgICgqIE1lZGlhICopXG4gICAgfCBNZWRpYVRyYWNrUHJldmlvdXNcbiAgICB8IE1lZGlhVHJhY2tOZXh0XG4gICAgfCBNZWRpYVBsYXlQYXVzZVxuICAgIHwgTWVkaWFTdG9wXG4gICAgKCogQnJvd3NlciBzcGVjaWFsICopXG4gICAgfCBDb250ZXh0TWVudVxuICAgIHwgQnJvd3NlclNlYXJjaFxuICAgIHwgQnJvd3NlckhvbWVcbiAgICB8IEJyb3dzZXJGYXZvcml0ZXNcbiAgICB8IEJyb3dzZXJSZWZyZXNoXG4gICAgfCBCcm93c2VyU3RvcFxuICAgIHwgQnJvd3NlckZvcndhcmRcbiAgICB8IEJyb3dzZXJCYWNrXG4gICAgKCogTWlzYyAqKVxuICAgIHwgT1NMZWZ0XG4gICAgfCBPU1JpZ2h0XG4gICAgfCBTY3JvbGxMb2NrXG4gICAgfCBQcmludFNjcmVlblxuICAgIHwgSW50bEJhY2tzbGFzaFxuICAgIHwgSW50bFllblxuICAgIHwgUGF1c2VcblxuICBsZXQgdHJ5X2NvZGUgdiA9XG4gICAgbWF0Y2ggSnMudG9fc3RyaW5nIHYgd2l0aFxuICAgICgqIEFscGhhYmV0aWMgQ2hhcmFjdGVycyAqKVxuICAgIHwgXCJLZXlBXCIgLT4gS2V5QVxuICAgIHwgXCJLZXlCXCIgLT4gS2V5QlxuICAgIHwgXCJLZXlDXCIgLT4gS2V5Q1xuICAgIHwgXCJLZXlEXCIgLT4gS2V5RFxuICAgIHwgXCJLZXlFXCIgLT4gS2V5RVxuICAgIHwgXCJLZXlGXCIgLT4gS2V5RlxuICAgIHwgXCJLZXlHXCIgLT4gS2V5R1xuICAgIHwgXCJLZXlIXCIgLT4gS2V5SFxuICAgIHwgXCJLZXlJXCIgLT4gS2V5SVxuICAgIHwgXCJLZXlKXCIgLT4gS2V5SlxuICAgIHwgXCJLZXlLXCIgLT4gS2V5S1xuICAgIHwgXCJLZXlMXCIgLT4gS2V5TFxuICAgIHwgXCJLZXlNXCIgLT4gS2V5TVxuICAgIHwgXCJLZXlOXCIgLT4gS2V5TlxuICAgIHwgXCJLZXlPXCIgLT4gS2V5T1xuICAgIHwgXCJLZXlQXCIgLT4gS2V5UFxuICAgIHwgXCJLZXlRXCIgLT4gS2V5UVxuICAgIHwgXCJLZXlSXCIgLT4gS2V5UlxuICAgIHwgXCJLZXlTXCIgLT4gS2V5U1xuICAgIHwgXCJLZXlUXCIgLT4gS2V5VFxuICAgIHwgXCJLZXlVXCIgLT4gS2V5VVxuICAgIHwgXCJLZXlWXCIgLT4gS2V5VlxuICAgIHwgXCJLZXlXXCIgLT4gS2V5V1xuICAgIHwgXCJLZXlYXCIgLT4gS2V5WFxuICAgIHwgXCJLZXlZXCIgLT4gS2V5WVxuICAgIHwgXCJLZXlaXCIgLT4gS2V5WlxuICAgICgqIERpZ2l0cyAqKVxuICAgIHwgXCJEaWdpdDBcIiAtPiBEaWdpdDBcbiAgICB8IFwiRGlnaXQxXCIgLT4gRGlnaXQxXG4gICAgfCBcIkRpZ2l0MlwiIC0+IERpZ2l0MlxuICAgIHwgXCJEaWdpdDNcIiAtPiBEaWdpdDNcbiAgICB8IFwiRGlnaXQ0XCIgLT4gRGlnaXQ0XG4gICAgfCBcIkRpZ2l0NVwiIC0+IERpZ2l0NVxuICAgIHwgXCJEaWdpdDZcIiAtPiBEaWdpdDZcbiAgICB8IFwiRGlnaXQ3XCIgLT4gRGlnaXQ3XG4gICAgfCBcIkRpZ2l0OFwiIC0+IERpZ2l0OFxuICAgIHwgXCJEaWdpdDlcIiAtPiBEaWdpdDlcbiAgICB8IFwiTWludXNcIiAtPiBNaW51c1xuICAgIHwgXCJFcXVhbFwiIC0+IEVxdWFsXG4gICAgKCogV2hpdGVzcGFjZSAqKVxuICAgIHwgXCJUYWJcIiAtPiBUYWJcbiAgICB8IFwiRW50ZXJcIiAtPiBFbnRlclxuICAgIHwgXCJTcGFjZVwiIC0+IFNwYWNlXG4gICAgKCogRWRpdGluZyAqKVxuICAgIHwgXCJFc2NhcGVcIiAtPiBFc2NhcGVcbiAgICB8IFwiQmFja3NwYWNlXCIgLT4gQmFja3NwYWNlXG4gICAgfCBcIkluc2VydFwiIC0+IEluc2VydFxuICAgIHwgXCJEZWxldGVcIiAtPiBEZWxldGVcbiAgICB8IFwiQ2Fwc0xvY2tcIiAtPiBDYXBzTG9ja1xuICAgICgqIE1pc2MgUHJpbnRhYmxlICopXG4gICAgfCBcIkJyYWNrZXRMZWZ0XCIgLT4gQnJhY2tldExlZnRcbiAgICB8IFwiQnJhY2tldFJpZ2h0XCIgLT4gQnJhY2tldFJpZ2h0XG4gICAgfCBcIlNlbWljb2xvblwiIC0+IFNlbWljb2xvblxuICAgIHwgXCJRdW90ZVwiIC0+IFF1b3RlXG4gICAgfCBcIkJhY2txdW90ZVwiIC0+IEJhY2txdW90ZVxuICAgIHwgXCJCYWNrc2xhc2hcIiAtPiBCYWNrc2xhc2hcbiAgICB8IFwiQ29tbWFcIiAtPiBDb21tYVxuICAgIHwgXCJQZXJpb2RcIiAtPiBQZXJpb2RcbiAgICB8IFwiU2xhc2hcIiAtPiBTbGFzaFxuICAgICgqIEZ1bmN0aW9uIGtleXMgKilcbiAgICB8IFwiRjFcIiAtPiBGMVxuICAgIHwgXCJGMlwiIC0+IEYyXG4gICAgfCBcIkYzXCIgLT4gRjNcbiAgICB8IFwiRjRcIiAtPiBGNFxuICAgIHwgXCJGNVwiIC0+IEY1XG4gICAgfCBcIkY2XCIgLT4gRjZcbiAgICB8IFwiRjdcIiAtPiBGN1xuICAgIHwgXCJGOFwiIC0+IEY4XG4gICAgfCBcIkY5XCIgLT4gRjlcbiAgICB8IFwiRjEwXCIgLT4gRjEwXG4gICAgfCBcIkYxMVwiIC0+IEYxMVxuICAgIHwgXCJGMTJcIiAtPiBGMTJcbiAgICAoKiBOdW1wYWQga2V5cyAqKVxuICAgIHwgXCJOdW1wYWQwXCIgLT4gTnVtcGFkMFxuICAgIHwgXCJOdW1wYWQxXCIgLT4gTnVtcGFkMVxuICAgIHwgXCJOdW1wYWQyXCIgLT4gTnVtcGFkMlxuICAgIHwgXCJOdW1wYWQzXCIgLT4gTnVtcGFkM1xuICAgIHwgXCJOdW1wYWQ0XCIgLT4gTnVtcGFkNFxuICAgIHwgXCJOdW1wYWQ1XCIgLT4gTnVtcGFkNVxuICAgIHwgXCJOdW1wYWQ2XCIgLT4gTnVtcGFkNlxuICAgIHwgXCJOdW1wYWQ3XCIgLT4gTnVtcGFkN1xuICAgIHwgXCJOdW1wYWQ4XCIgLT4gTnVtcGFkOFxuICAgIHwgXCJOdW1wYWQ5XCIgLT4gTnVtcGFkOVxuICAgIHwgXCJOdW1wYWRNdWx0aXBseVwiIC0+IE51bXBhZE11bHRpcGx5XG4gICAgfCBcIk51bXBhZFN1YnRyYWN0XCIgLT4gTnVtcGFkU3VidHJhY3RcbiAgICB8IFwiTnVtcGFkQWRkXCIgLT4gTnVtcGFkQWRkXG4gICAgfCBcIk51bXBhZERlY2ltYWxcIiAtPiBOdW1wYWREZWNpbWFsXG4gICAgfCBcIk51bXBhZEVxdWFsXCIgLT4gTnVtcGFkRXF1YWxcbiAgICB8IFwiTnVtcGFkRW50ZXJcIiAtPiBOdW1wYWRFbnRlclxuICAgIHwgXCJOdW1wYWREaXZpZGVcIiAtPiBOdW1wYWREaXZpZGVcbiAgICB8IFwiTnVtTG9ja1wiIC0+IE51bUxvY2tcbiAgICAoKiBNb2RpZmllciBrZXlzICopXG4gICAgfCBcIkNvbnRyb2xMZWZ0XCIgLT4gQ29udHJvbExlZnRcbiAgICB8IFwiQ29udHJvbFJpZ2h0XCIgLT4gQ29udHJvbFJpZ2h0XG4gICAgfCBcIk1ldGFMZWZ0XCIgLT4gTWV0YUxlZnRcbiAgICB8IFwiTWV0YVJpZ2h0XCIgLT4gTWV0YVJpZ2h0XG4gICAgfCBcIlNoaWZ0TGVmdFwiIC0+IFNoaWZ0TGVmdFxuICAgIHwgXCJTaGlmdFJpZ2h0XCIgLT4gU2hpZnRSaWdodFxuICAgIHwgXCJBbHRMZWZ0XCIgLT4gQWx0TGVmdFxuICAgIHwgXCJBbHRSaWdodFwiIC0+IEFsdFJpZ2h0XG4gICAgKCogQXJyb3cga2V5cyAqKVxuICAgIHwgXCJBcnJvd0xlZnRcIiAtPiBBcnJvd0xlZnRcbiAgICB8IFwiQXJyb3dSaWdodFwiIC0+IEFycm93UmlnaHRcbiAgICB8IFwiQXJyb3dVcFwiIC0+IEFycm93VXBcbiAgICB8IFwiQXJyb3dEb3duXCIgLT4gQXJyb3dEb3duXG4gICAgKCogTmF2aWdhdGlvbiAqKVxuICAgIHwgXCJQYWdlVXBcIiAtPiBQYWdlVXBcbiAgICB8IFwiUGFnZURvd25cIiAtPiBQYWdlRG93blxuICAgIHwgXCJIb21lXCIgLT4gSG9tZVxuICAgIHwgXCJFbmRcIiAtPiBFbmRcbiAgICAoKiBTb3VuZCAqKVxuICAgIHwgXCJWb2x1bWVNdXRlXCIgLT4gVm9sdW1lTXV0ZVxuICAgIHwgXCJWb2x1bWVEb3duXCIgLT4gVm9sdW1lRG93blxuICAgIHwgXCJWb2x1bWVVcFwiIC0+IFZvbHVtZVVwXG4gICAgKCogTWVkaWEgKilcbiAgICB8IFwiTWVkaWFUcmFja1ByZXZpb3VzXCIgLT4gTWVkaWFUcmFja1ByZXZpb3VzXG4gICAgfCBcIk1lZGlhVHJhY2tOZXh0XCIgLT4gTWVkaWFUcmFja05leHRcbiAgICB8IFwiTWVkaWFQbGF5UGF1c2VcIiAtPiBNZWRpYVBsYXlQYXVzZVxuICAgIHwgXCJNZWRpYVN0b3BcIiAtPiBNZWRpYVN0b3BcbiAgICAoKiBCcm93c2VyIHNwZWNpYWwgKilcbiAgICB8IFwiQ29udGV4dE1lbnVcIiAtPiBDb250ZXh0TWVudVxuICAgIHwgXCJCcm93c2VyU2VhcmNoXCIgLT4gQnJvd3NlclNlYXJjaFxuICAgIHwgXCJCcm93c2VySG9tZVwiIC0+IEJyb3dzZXJIb21lXG4gICAgfCBcIkJyb3dzZXJGYXZvcml0ZXNcIiAtPiBCcm93c2VyRmF2b3JpdGVzXG4gICAgfCBcIkJyb3dzZXJSZWZyZXNoXCIgLT4gQnJvd3NlclJlZnJlc2hcbiAgICB8IFwiQnJvd3NlclN0b3BcIiAtPiBCcm93c2VyU3RvcFxuICAgIHwgXCJCcm93c2VyRm9yd2FyZFwiIC0+IEJyb3dzZXJGb3J3YXJkXG4gICAgfCBcIkJyb3dzZXJCYWNrXCIgLT4gQnJvd3NlckJhY2tcbiAgICAoKiBNaXNjICopXG4gICAgfCBcIk9TTGVmdFwiIC0+IE9TTGVmdFxuICAgIHwgXCJPU1JpZ2h0XCIgLT4gT1NSaWdodFxuICAgIHwgXCJTY3JvbGxMb2NrXCIgLT4gU2Nyb2xsTG9ja1xuICAgIHwgXCJQcmludFNjcmVlblwiIC0+IFByaW50U2NyZWVuXG4gICAgfCBcIkludGxCYWNrc2xhc2hcIiAtPiBJbnRsQmFja3NsYXNoXG4gICAgfCBcIkludGxZZW5cIiAtPiBJbnRsWWVuXG4gICAgfCBcIlBhdXNlXCIgLT4gUGF1c2VcbiAgICB8IF8gLT4gVW5pZGVudGlmaWVkXG5cbiAgbGV0IHRyeV9rZXlfY29kZV9sZWZ0ID0gZnVuY3Rpb25cbiAgICB8IDE2IC0+IFNoaWZ0TGVmdFxuICAgIHwgMTcgLT4gQ29udHJvbExlZnRcbiAgICB8IDE4IC0+IEFsdExlZnRcbiAgICB8IDkxIC0+IE1ldGFMZWZ0XG4gICAgfCBfIC0+IFVuaWRlbnRpZmllZFxuXG4gIGxldCB0cnlfa2V5X2NvZGVfcmlnaHQgPSBmdW5jdGlvblxuICAgIHwgMTYgLT4gU2hpZnRSaWdodFxuICAgIHwgMTcgLT4gQ29udHJvbFJpZ2h0XG4gICAgfCAxOCAtPiBBbHRSaWdodFxuICAgIHwgOTEgLT4gTWV0YVJpZ2h0XG4gICAgfCBfIC0+IFVuaWRlbnRpZmllZFxuXG4gIGxldCB0cnlfa2V5X2NvZGVfbnVtcGFkID0gZnVuY3Rpb25cbiAgICB8IDQ2IC0+IE51bXBhZERlY2ltYWxcbiAgICB8IDQ1IC0+IE51bXBhZDBcbiAgICB8IDM1IC0+IE51bXBhZDFcbiAgICB8IDQwIC0+IE51bXBhZDJcbiAgICB8IDM0IC0+IE51bXBhZDNcbiAgICB8IDM3IC0+IE51bXBhZDRcbiAgICB8IDEyIC0+IE51bXBhZDVcbiAgICB8IDM5IC0+IE51bXBhZDZcbiAgICB8IDM2IC0+IE51bXBhZDdcbiAgICB8IDM4IC0+IE51bXBhZDhcbiAgICB8IDMzIC0+IE51bXBhZDlcbiAgICB8IDEzIC0+IE51bXBhZEVudGVyXG4gICAgfCAxMTEgLT4gTnVtcGFkRGl2aWRlXG4gICAgfCAxMDcgLT4gTnVtcGFkQWRkXG4gICAgfCAxMDkgLT4gTnVtcGFkU3VidHJhY3RcbiAgICB8IDEwNiAtPiBOdW1wYWRNdWx0aXBseVxuICAgIHwgMTEwIC0+IE51bXBhZERlY2ltYWxcbiAgICB8IDk2IC0+IE51bXBhZDBcbiAgICB8IDk3IC0+IE51bXBhZDFcbiAgICB8IDk4IC0+IE51bXBhZDJcbiAgICB8IDk5IC0+IE51bXBhZDNcbiAgICB8IDEwMCAtPiBOdW1wYWQ0XG4gICAgfCAxMDEgLT4gTnVtcGFkNVxuICAgIHwgMTAyIC0+IE51bXBhZDZcbiAgICB8IDEwMyAtPiBOdW1wYWQ3XG4gICAgfCAxMDQgLT4gTnVtcGFkOFxuICAgIHwgMTA1IC0+IE51bXBhZDlcbiAgICB8IF8gLT4gVW5pZGVudGlmaWVkXG5cbiAgbGV0IHRyeV9rZXlfY29kZV9ub3JtYWwgPSBmdW5jdGlvblxuICAgIHwgMjcgLT4gRXNjYXBlXG4gICAgfCAxMTIgLT4gRjFcbiAgICB8IDExMyAtPiBGMlxuICAgIHwgMTE0IC0+IEYzXG4gICAgfCAxMTUgLT4gRjRcbiAgICB8IDExNiAtPiBGNVxuICAgIHwgMTE3IC0+IEY2XG4gICAgfCAxMTggLT4gRjdcbiAgICB8IDExOSAtPiBGOFxuICAgIHwgMTIwIC0+IEY5XG4gICAgfCAxMjEgLT4gRjEwXG4gICAgfCAxMjIgLT4gRjExXG4gICAgfCAxMjMgLT4gRjEyXG4gICAgfCA0MiAtPiBQcmludFNjcmVlblxuICAgIHwgMTQ1IC0+IFNjcm9sbExvY2tcbiAgICB8IDE5IC0+IFBhdXNlXG4gICAgfCAxOTIgLT4gQmFja3F1b3RlXG4gICAgfCA0OSAtPiBEaWdpdDFcbiAgICB8IDUwIC0+IERpZ2l0MlxuICAgIHwgNTEgLT4gRGlnaXQzXG4gICAgfCA1MiAtPiBEaWdpdDRcbiAgICB8IDUzIC0+IERpZ2l0NVxuICAgIHwgNTQgLT4gRGlnaXQ2XG4gICAgfCA1NSAtPiBEaWdpdDdcbiAgICB8IDU2IC0+IERpZ2l0OFxuICAgIHwgNTcgLT4gRGlnaXQ5XG4gICAgfCA0OCAtPiBEaWdpdDBcbiAgICB8IDE4OSAtPiBNaW51c1xuICAgIHwgMTg3IC0+IEVxdWFsXG4gICAgfCA4IC0+IEJhY2tzcGFjZVxuICAgIHwgOSAtPiBUYWJcbiAgICB8IDgxIC0+IEtleVFcbiAgICB8IDg3IC0+IEtleVdcbiAgICB8IDY5IC0+IEtleUVcbiAgICB8IDgyIC0+IEtleVJcbiAgICB8IDg0IC0+IEtleVRcbiAgICB8IDg5IC0+IEtleVlcbiAgICB8IDg1IC0+IEtleVVcbiAgICB8IDczIC0+IEtleUlcbiAgICB8IDc5IC0+IEtleU9cbiAgICB8IDgwIC0+IEtleVBcbiAgICB8IDIxOSAtPiBCcmFja2V0TGVmdFxuICAgIHwgMjIxIC0+IEJyYWNrZXRSaWdodFxuICAgIHwgMjIwIC0+IEJhY2tzbGFzaFxuICAgIHwgMjAgLT4gQ2Fwc0xvY2tcbiAgICB8IDY1IC0+IEtleUFcbiAgICB8IDgzIC0+IEtleVNcbiAgICB8IDY4IC0+IEtleURcbiAgICB8IDcwIC0+IEtleUZcbiAgICB8IDcxIC0+IEtleUdcbiAgICB8IDcyIC0+IEtleUhcbiAgICB8IDc0IC0+IEtleUpcbiAgICB8IDc1IC0+IEtleUtcbiAgICB8IDc2IC0+IEtleUxcbiAgICB8IDE4NiAtPiBTZW1pY29sb25cbiAgICB8IDIyMiAtPiBRdW90ZVxuICAgIHwgMTMgLT4gRW50ZXJcbiAgICB8IDkwIC0+IEtleVpcbiAgICB8IDg4IC0+IEtleVhcbiAgICB8IDY3IC0+IEtleUNcbiAgICB8IDg2IC0+IEtleVZcbiAgICB8IDY2IC0+IEtleUJcbiAgICB8IDc4IC0+IEtleU5cbiAgICB8IDc3IC0+IEtleU1cbiAgICB8IDE4OCAtPiBDb21tYVxuICAgIHwgMTkwIC0+IFBlcmlvZFxuICAgIHwgMTkxIC0+IFNsYXNoXG4gICAgfCAzMiAtPiBTcGFjZVxuICAgIHwgOTMgLT4gQ29udGV4dE1lbnVcbiAgICB8IDQ1IC0+IEluc2VydFxuICAgIHwgMzYgLT4gSG9tZVxuICAgIHwgMzMgLT4gUGFnZVVwXG4gICAgfCA0NiAtPiBEZWxldGVcbiAgICB8IDM1IC0+IEVuZFxuICAgIHwgMzQgLT4gUGFnZURvd25cbiAgICB8IDM3IC0+IEFycm93TGVmdFxuICAgIHwgNDAgLT4gQXJyb3dEb3duXG4gICAgfCAzOSAtPiBBcnJvd1JpZ2h0XG4gICAgfCAzOCAtPiBBcnJvd1VwXG4gICAgfCBfIC0+IFVuaWRlbnRpZmllZFxuXG4gIGxldCBtYWtlX3VuaWRlbnRpZmllZCBfID0gVW5pZGVudGlmaWVkXG5cbiAgbGV0IHRyeV9uZXh0IHZhbHVlIGYgPSBmdW5jdGlvblxuICAgIHwgVW5pZGVudGlmaWVkIC0+IE9wdGRlZi5jYXNlIHZhbHVlIG1ha2VfdW5pZGVudGlmaWVkIGZcbiAgICB8IHYgLT4gdlxuXG4gIGxldCBydW5fbmV4dCB2YWx1ZSBmID0gZnVuY3Rpb25cbiAgICB8IFVuaWRlbnRpZmllZCAtPiBmIHZhbHVlXG4gICAgfCB2IC0+IHZcblxuICBsZXQgZ2V0X2tleV9jb2RlIGV2dCA9IGV2dCMjLmtleUNvZGVcblxuICBsZXQgdHJ5X2tleV9sb2NhdGlvbiBldnQgPVxuICAgIG1hdGNoIGV2dCMjLmxvY2F0aW9uIHdpdGhcbiAgICB8IDEgLT4gcnVuX25leHQgKGdldF9rZXlfY29kZSBldnQpIHRyeV9rZXlfY29kZV9sZWZ0XG4gICAgfCAyIC0+IHJ1bl9uZXh0IChnZXRfa2V5X2NvZGUgZXZ0KSB0cnlfa2V5X2NvZGVfcmlnaHRcbiAgICB8IDMgLT4gcnVuX25leHQgKGdldF9rZXlfY29kZSBldnQpIHRyeV9rZXlfY29kZV9udW1wYWRcbiAgICB8IF8gLT4gbWFrZV91bmlkZW50aWZpZWRcblxuICBsZXQgKCB8PiApIHggZiA9IGYgeFxuXG4gIGxldCBvZl9ldmVudCBldnQgPVxuICAgIFVuaWRlbnRpZmllZFxuICAgIHw+IHRyeV9uZXh0IGV2dCMjLmNvZGUgdHJ5X2NvZGVcbiAgICB8PiB0cnlfa2V5X2xvY2F0aW9uIGV2dFxuICAgIHw+IHJ1bl9uZXh0IChnZXRfa2V5X2NvZGUgZXZ0KSB0cnlfa2V5X2NvZGVfbm9ybWFsXG5cbiAgbGV0IG9mX2tleV9jb2RlID0gdHJ5X2tleV9jb2RlX25vcm1hbFxuZW5kXG5cbm1vZHVsZSBLZXlib2FyZF9rZXkgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0gVWNoYXIudCBvcHRpb25cblxuICBsZXQgY2hhcl9vZl9pbnQgdmFsdWUgPVxuICAgIGlmIDAgPCB2YWx1ZSB0aGVuIHRyeSBTb21lIChVY2hhci5vZl9pbnQgdmFsdWUpIHdpdGggXyAtPiBOb25lIGVsc2UgTm9uZVxuXG4gIGxldCBlbXB0eV9zdHJpbmcgXyA9IEpzLnN0cmluZyBcIlwiXG5cbiAgbGV0IG5vbmUgXyA9IE5vbmVcblxuICBsZXQgb2ZfZXZlbnQgZXZ0ID1cbiAgICBsZXQga2V5ID0gT3B0ZGVmLmdldCBldnQjIy5rZXkgZW1wdHlfc3RyaW5nIGluXG4gICAgbWF0Y2gga2V5IyMubGVuZ3RoIHdpdGhcbiAgICB8IDAgLT4gT3B0ZGVmLmNhc2UgZXZ0IyMuY2hhckNvZGUgbm9uZSBjaGFyX29mX2ludFxuICAgIHwgMSAtPiBjaGFyX29mX2ludCAoaW50X29mX2Zsb2F0IChrZXkjI2NoYXJDb2RlQXQgMCkpXG4gICAgfCBfIC0+IE5vbmVcbmVuZFxuXG4oKioqKiopXG5cbmxldCBlbGVtZW50IDogI0RvbS5lbGVtZW50IHQgLT4gZWxlbWVudCB0ID0gSnMuVW5zYWZlLmNvZXJjZVxuXG50eXBlIHRhZ2dlZEVsZW1lbnQgPVxuICB8IEEgb2YgYW5jaG9yRWxlbWVudCB0XG4gIHwgQXJlYSBvZiBhcmVhRWxlbWVudCB0XG4gIHwgQXVkaW8gb2YgYXVkaW9FbGVtZW50IHRcbiAgfCBCYXNlIG9mIGJhc2VFbGVtZW50IHRcbiAgfCBCbG9ja3F1b3RlIG9mIHF1b3RlRWxlbWVudCB0XG4gIHwgQm9keSBvZiBib2R5RWxlbWVudCB0XG4gIHwgQnIgb2YgYnJFbGVtZW50IHRcbiAgfCBCdXR0b24gb2YgYnV0dG9uRWxlbWVudCB0XG4gIHwgQ2FudmFzIG9mIGNhbnZhc0VsZW1lbnQgdFxuICB8IENhcHRpb24gb2YgdGFibGVDYXB0aW9uRWxlbWVudCB0XG4gIHwgQ29sIG9mIHRhYmxlQ29sRWxlbWVudCB0XG4gIHwgQ29sZ3JvdXAgb2YgdGFibGVDb2xFbGVtZW50IHRcbiAgfCBEZWwgb2YgbW9kRWxlbWVudCB0XG4gIHwgRGl2IG9mIGRpdkVsZW1lbnQgdFxuICB8IERsIG9mIGRMaXN0RWxlbWVudCB0XG4gIHwgRW1iZWQgb2YgZW1iZWRFbGVtZW50IHRcbiAgfCBGaWVsZHNldCBvZiBmaWVsZFNldEVsZW1lbnQgdFxuICB8IEZvcm0gb2YgZm9ybUVsZW1lbnQgdFxuICB8IEZyYW1lc2V0IG9mIGZyYW1lU2V0RWxlbWVudCB0XG4gIHwgRnJhbWUgb2YgZnJhbWVFbGVtZW50IHRcbiAgfCBIMSBvZiBoZWFkaW5nRWxlbWVudCB0XG4gIHwgSDIgb2YgaGVhZGluZ0VsZW1lbnQgdFxuICB8IEgzIG9mIGhlYWRpbmdFbGVtZW50IHRcbiAgfCBINCBvZiBoZWFkaW5nRWxlbWVudCB0XG4gIHwgSDUgb2YgaGVhZGluZ0VsZW1lbnQgdFxuICB8IEg2IG9mIGhlYWRpbmdFbGVtZW50IHRcbiAgfCBIZWFkIG9mIGhlYWRFbGVtZW50IHRcbiAgfCBIciBvZiBockVsZW1lbnQgdFxuICB8IEh0bWwgb2YgaHRtbEVsZW1lbnQgdFxuICB8IElmcmFtZSBvZiBpRnJhbWVFbGVtZW50IHRcbiAgfCBJbWcgb2YgaW1hZ2VFbGVtZW50IHRcbiAgfCBJbnB1dCBvZiBpbnB1dEVsZW1lbnQgdFxuICB8IElucyBvZiBtb2RFbGVtZW50IHRcbiAgfCBMYWJlbCBvZiBsYWJlbEVsZW1lbnQgdFxuICB8IExlZ2VuZCBvZiBsZWdlbmRFbGVtZW50IHRcbiAgfCBMaSBvZiBsaUVsZW1lbnQgdFxuICB8IExpbmsgb2YgbGlua0VsZW1lbnQgdFxuICB8IE1hcCBvZiBtYXBFbGVtZW50IHRcbiAgfCBNZXRhIG9mIG1ldGFFbGVtZW50IHRcbiAgfCBPYmplY3Qgb2Ygb2JqZWN0RWxlbWVudCB0XG4gIHwgT2wgb2Ygb0xpc3RFbGVtZW50IHRcbiAgfCBPcHRncm91cCBvZiBvcHRHcm91cEVsZW1lbnQgdFxuICB8IE9wdGlvbiBvZiBvcHRpb25FbGVtZW50IHRcbiAgfCBQIG9mIHBhcmFtRWxlbWVudCB0XG4gIHwgUGFyYW0gb2YgcGFyYW1FbGVtZW50IHRcbiAgfCBQcmUgb2YgcHJlRWxlbWVudCB0XG4gIHwgUSBvZiBxdW90ZUVsZW1lbnQgdFxuICB8IFNjcmlwdCBvZiBzY3JpcHRFbGVtZW50IHRcbiAgfCBTZWxlY3Qgb2Ygc2VsZWN0RWxlbWVudCB0XG4gIHwgU3R5bGUgb2Ygc3R5bGVFbGVtZW50IHRcbiAgfCBUYWJsZSBvZiB0YWJsZUVsZW1lbnQgdFxuICB8IFRib2R5IG9mIHRhYmxlU2VjdGlvbkVsZW1lbnQgdFxuICB8IFRkIG9mIHRhYmxlQ2VsbEVsZW1lbnQgdFxuICB8IFRleHRhcmVhIG9mIHRleHRBcmVhRWxlbWVudCB0XG4gIHwgVGZvb3Qgb2YgdGFibGVTZWN0aW9uRWxlbWVudCB0XG4gIHwgVGggb2YgdGFibGVDZWxsRWxlbWVudCB0XG4gIHwgVGhlYWQgb2YgdGFibGVTZWN0aW9uRWxlbWVudCB0XG4gIHwgVGl0bGUgb2YgdGl0bGVFbGVtZW50IHRcbiAgfCBUciBvZiB0YWJsZVJvd0VsZW1lbnQgdFxuICB8IFVsIG9mIHVMaXN0RWxlbWVudCB0XG4gIHwgVmlkZW8gb2YgdmlkZW9FbGVtZW50IHRcbiAgfCBPdGhlciBvZiBlbGVtZW50IHRcblxubGV0IG90aGVyIGUgPSBPdGhlciAoZSA6ICNlbGVtZW50IHQgOj4gZWxlbWVudCB0KVxuXG5sZXQgdGFnZ2VkIChlIDogI2VsZW1lbnQgdCkgPVxuICBsZXQgdGFnID0gSnMudG9fYnl0ZXN0cmluZyBlIyMudGFnTmFtZSMjdG9Mb3dlckNhc2UgaW5cbiAgaWYgU3RyaW5nLmxlbmd0aCB0YWcgPSAwXG4gIHRoZW4gb3RoZXIgZVxuICBlbHNlXG4gICAgbWF0Y2ggU3RyaW5nLnVuc2FmZV9nZXQgdGFnIDAgd2l0aFxuICAgIHwgJ2EnIC0+IChcbiAgICAgICAgbWF0Y2ggdGFnIHdpdGhcbiAgICAgICAgfCBcImFcIiAtPiBBIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJhcmVhXCIgLT4gQXJlYSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiYXVkaW9cIiAtPiBBdWRpbyAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IF8gLT4gb3RoZXIgZSlcbiAgICB8ICdiJyAtPiAoXG4gICAgICAgIG1hdGNoIHRhZyB3aXRoXG4gICAgICAgIHwgXCJiYXNlXCIgLT4gQmFzZSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiYmxvY2txdW90ZVwiIC0+IEJsb2NrcXVvdGUgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImJvZHlcIiAtPiBCb2R5IChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJiclwiIC0+IEJyIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJidXR0b25cIiAtPiBCdXR0b24gKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCAnYycgLT4gKFxuICAgICAgICBtYXRjaCB0YWcgd2l0aFxuICAgICAgICB8IFwiY2FudmFzXCIgLT4gQ2FudmFzIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJjYXB0aW9uXCIgLT4gQ2FwdGlvbiAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiY29sXCIgLT4gQ29sIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJjb2xncm91cFwiIC0+IENvbGdyb3VwIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXyAtPiBvdGhlciBlKVxuICAgIHwgJ2QnIC0+IChcbiAgICAgICAgbWF0Y2ggdGFnIHdpdGhcbiAgICAgICAgfCBcImRlbFwiIC0+IERlbCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiZGl2XCIgLT4gRGl2IChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJkbFwiIC0+IERsIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXyAtPiBvdGhlciBlKVxuICAgIHwgJ2UnIC0+IChcbiAgICAgICAgbWF0Y2ggdGFnIHdpdGhcbiAgICAgICAgfCBcImVtYmVkXCIgLT4gRW1iZWQgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCAnZicgLT4gKFxuICAgICAgICBtYXRjaCB0YWcgd2l0aFxuICAgICAgICB8IFwiZmllbGRzZXRcIiAtPiBGaWVsZHNldCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiZm9ybVwiIC0+IEZvcm0gKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImZyYW1lc2V0XCIgLT4gRnJhbWVzZXQgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImZyYW1lXCIgLT4gRnJhbWUgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCAnaCcgLT4gKFxuICAgICAgICBtYXRjaCB0YWcgd2l0aFxuICAgICAgICB8IFwiaDFcIiAtPiBIMSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiaDJcIiAtPiBIMiAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiaDNcIiAtPiBIMyAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiaDRcIiAtPiBINCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiaDVcIiAtPiBINSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiaDZcIiAtPiBINiAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiaGVhZFwiIC0+IEhlYWQgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImhyXCIgLT4gSHIgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImh0bWxcIiAtPiBIdG1sIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXyAtPiBvdGhlciBlKVxuICAgIHwgJ2knIC0+IChcbiAgICAgICAgbWF0Y2ggdGFnIHdpdGhcbiAgICAgICAgfCBcImlmcmFtZVwiIC0+IElmcmFtZSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiaW1nXCIgLT4gSW1nIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJpbnB1dFwiIC0+IElucHV0IChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJpbnNcIiAtPiBJbnMgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCAnbCcgLT4gKFxuICAgICAgICBtYXRjaCB0YWcgd2l0aFxuICAgICAgICB8IFwibGFiZWxcIiAtPiBMYWJlbCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwibGVnZW5kXCIgLT4gTGVnZW5kIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJsaVwiIC0+IExpIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJsaW5rXCIgLT4gTGluayAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IF8gLT4gb3RoZXIgZSlcbiAgICB8ICdtJyAtPiAoXG4gICAgICAgIG1hdGNoIHRhZyB3aXRoXG4gICAgICAgIHwgXCJtYXBcIiAtPiBNYXAgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcIm1ldGFcIiAtPiBNZXRhIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXyAtPiBvdGhlciBlKVxuICAgIHwgJ28nIC0+IChcbiAgICAgICAgbWF0Y2ggdGFnIHdpdGhcbiAgICAgICAgfCBcIm9iamVjdFwiIC0+IE9iamVjdCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwib2xcIiAtPiBPbCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwib3B0Z3JvdXBcIiAtPiBPcHRncm91cCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwib3B0aW9uXCIgLT4gT3B0aW9uIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXyAtPiBvdGhlciBlKVxuICAgIHwgJ3AnIC0+IChcbiAgICAgICAgbWF0Y2ggdGFnIHdpdGhcbiAgICAgICAgfCBcInBcIiAtPiBQIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJwYXJhbVwiIC0+IFBhcmFtIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJwcmVcIiAtPiBQcmUgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCAncScgLT4gKFxuICAgICAgICBtYXRjaCB0YWcgd2l0aFxuICAgICAgICB8IFwicVwiIC0+IFEgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCAncycgLT4gKFxuICAgICAgICBtYXRjaCB0YWcgd2l0aFxuICAgICAgICB8IFwic2NyaXB0XCIgLT4gU2NyaXB0IChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJzZWxlY3RcIiAtPiBTZWxlY3QgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcInN0eWxlXCIgLT4gU3R5bGUgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCAndCcgLT4gKFxuICAgICAgICBtYXRjaCB0YWcgd2l0aFxuICAgICAgICB8IFwidGFibGVcIiAtPiBUYWJsZSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwidGJvZHlcIiAtPiBUYm9keSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwidGRcIiAtPiBUZCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwidGV4dGFyZWFcIiAtPiBUZXh0YXJlYSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwidGZvb3RcIiAtPiBUZm9vdCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwidGhcIiAtPiBUaCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwidGhlYWRcIiAtPiBUaGVhZCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwidGl0bGVcIiAtPiBUaXRsZSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwidHJcIiAtPiBUciAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IF8gLT4gb3RoZXIgZSlcbiAgICB8ICd1JyAtPiAoXG4gICAgICAgIG1hdGNoIHRhZyB3aXRoXG4gICAgICAgIHwgXCJ1bFwiIC0+IFVsIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXyAtPiBvdGhlciBlKVxuICAgIHwgJ3YnIC0+IChcbiAgICAgICAgbWF0Y2ggdGFnIHdpdGhcbiAgICAgICAgfCBcInZpZGVvXCIgLT4gVmlkZW8gKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCBfIC0+IG90aGVyIGVcblxubGV0IG9wdF90YWdnZWQgZSA9IE9wdC5jYXNlIGUgKGZ1biAoKSAtPiBOb25lKSAoZnVuIGUgLT4gU29tZSAodGFnZ2VkIGUpKVxuXG50eXBlIHRhZ2dlZEV2ZW50ID1cbiAgfCBNb3VzZUV2ZW50IG9mIG1vdXNlRXZlbnQgdFxuICB8IEtleWJvYXJkRXZlbnQgb2Yga2V5Ym9hcmRFdmVudCB0XG4gIHwgTWVzc2FnZUV2ZW50IG9mIG1lc3NhZ2VFdmVudCB0XG4gIHwgTW91c2V3aGVlbEV2ZW50IG9mIG1vdXNld2hlZWxFdmVudCB0XG4gIHwgTW91c2VTY3JvbGxFdmVudCBvZiBtb3VzZVNjcm9sbEV2ZW50IHRcbiAgfCBQb3BTdGF0ZUV2ZW50IG9mIHBvcFN0YXRlRXZlbnQgdFxuICB8IE90aGVyRXZlbnQgb2YgZXZlbnQgdFxuXG5sZXQgdGFnZ2VkRXZlbnQgKGV2IDogI2V2ZW50IEpzLnQpID1cbiAgSnMuT3B0LmNhc2VcbiAgICAoQ29lcmNlVG8ubW91c2VFdmVudCBldilcbiAgICAoZnVuICgpIC0+XG4gICAgICBKcy5PcHQuY2FzZVxuICAgICAgICAoQ29lcmNlVG8ua2V5Ym9hcmRFdmVudCBldilcbiAgICAgICAgKGZ1biAoKSAtPlxuICAgICAgICAgIEpzLk9wdC5jYXNlXG4gICAgICAgICAgICAoQ29lcmNlVG8ud2hlZWxFdmVudCBldilcbiAgICAgICAgICAgIChmdW4gKCkgLT5cbiAgICAgICAgICAgICAgSnMuT3B0LmNhc2VcbiAgICAgICAgICAgICAgICAoQ29lcmNlVG8ubW91c2VTY3JvbGxFdmVudCBldilcbiAgICAgICAgICAgICAgICAoZnVuICgpIC0+XG4gICAgICAgICAgICAgICAgICBKcy5PcHQuY2FzZVxuICAgICAgICAgICAgICAgICAgICAoQ29lcmNlVG8ucG9wU3RhdGVFdmVudCBldilcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoKSAtPlxuICAgICAgICAgICAgICAgICAgICAgIEpzLk9wdC5jYXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAoQ29lcmNlVG8ubWVzc2FnZUV2ZW50IGV2KVxuICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoKSAtPiBPdGhlckV2ZW50IChldiA6PiBldmVudCB0KSlcbiAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gZXYgLT4gTWVzc2FnZUV2ZW50IGV2KSlcbiAgICAgICAgICAgICAgICAgICAgKGZ1biBldiAtPiBQb3BTdGF0ZUV2ZW50IGV2KSlcbiAgICAgICAgICAgICAgICAoZnVuIGV2IC0+IE1vdXNlU2Nyb2xsRXZlbnQgZXYpKVxuICAgICAgICAgICAgKGZ1biBldiAtPiBNb3VzZXdoZWVsRXZlbnQgZXYpKVxuICAgICAgICAoZnVuIGV2IC0+IEtleWJvYXJkRXZlbnQgZXYpKVxuICAgIChmdW4gZXYgLT4gTW91c2VFdmVudCBldilcblxubGV0IG9wdF90YWdnZWRFdmVudCBldiA9IE9wdC5jYXNlIGV2IChmdW4gKCkgLT4gTm9uZSkgKGZ1biBldiAtPiBTb21lICh0YWdnZWRFdmVudCBldikpXG5cbmxldCBzdG9wUHJvcGFnYXRpb24gZXYgPVxuICBsZXQgZSA9IEpzLlVuc2FmZS5jb2VyY2UgZXYgaW5cbiAgT3B0ZGVmLmNhc2VcbiAgICBlIyMuc3RvcFByb3BhZ2F0aW9uXG4gICAgKGZ1biAoKSAtPiBlIyMuY2FuY2VsQnViYmxlIDo9IEpzLl90cnVlKVxuICAgIChmdW4gXyAtPiBlIyNfc3RvcFByb3BhZ2F0aW9uKVxuXG5sZXQgX3JlcXVlc3RBbmltYXRpb25GcmFtZSA6ICh1bml0IC0+IHVuaXQpIEpzLmNhbGxiYWNrIC0+IHVuaXQgPVxuICBKcy5VbnNhZmUucHVyZV9leHByIChmdW4gXyAtPlxuICAgICAgbGV0IHcgPSBKcy5VbnNhZmUuY29lcmNlIHdpbmRvdyBpblxuICAgICAgbGV0IGwgPVxuICAgICAgICBbIHcjIy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWVcbiAgICAgICAgOyB3IyMubW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lXG4gICAgICAgIDsgdyMjLndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZVxuICAgICAgICA7IHcjIy5vUmVxdWVzdEFuaW1hdGlvbkZyYW1lXG4gICAgICAgIDsgdyMjLm1zUmVxdWVzdEFuaW1hdGlvbkZyYW1lXG4gICAgICAgIF1cbiAgICAgIGluXG4gICAgICB0cnlcbiAgICAgICAgbGV0IHJlcSA9IExpc3QuZmluZCAoZnVuIGMgLT4gSnMuT3B0ZGVmLnRlc3QgYykgbCBpblxuICAgICAgICBmdW4gY2FsbGJhY2sgLT4gSnMuVW5zYWZlLmZ1bl9jYWxsIHJlcSBbfCBKcy5VbnNhZmUuaW5qZWN0IGNhbGxiYWNrIHxdXG4gICAgICB3aXRoIE5vdF9mb3VuZCAtPlxuICAgICAgICBsZXQgbm93ICgpID0gKG5ldyVqcyBKcy5kYXRlX25vdykjI2dldFRpbWUgaW5cbiAgICAgICAgbGV0IGxhc3QgPSByZWYgKG5vdyAoKSkgaW5cbiAgICAgICAgZnVuIGNhbGxiYWNrIC0+XG4gICAgICAgICAgbGV0IHQgPSBub3cgKCkgaW5cbiAgICAgICAgICBsZXQgZHQgPSAhbGFzdCArLiAoMTAwMC4gLy4gNjAuKSAtLiB0IGluXG4gICAgICAgICAgbGV0IGR0ID0gaWYgUG9seS4oZHQgPCAwLikgdGhlbiAwLiBlbHNlIGR0IGluXG4gICAgICAgICAgbGFzdCA6PSB0O1xuICAgICAgICAgIGlnbm9yZSAod2luZG93IyNzZXRUaW1lb3V0IGNhbGxiYWNrIGR0KSlcblxuKCoqKiopXG5cbmxldCBoYXNQdXNoU3RhdGUgKCkgPSBKcy5PcHRkZWYudGVzdCAoSnMuVW5zYWZlLmNvZXJjZSB3aW5kb3cjIy5oaXN0b3J5KSMjLnB1c2hTdGF0ZVxuXG5sZXQgaGFzUGxhY2Vob2xkZXIgKCkgPVxuICBsZXQgaSA9IGNyZWF0ZUlucHV0IGRvY3VtZW50IGluXG4gIEpzLk9wdGRlZi50ZXN0IChKcy5VbnNhZmUuY29lcmNlIGkpIyMucGxhY2Vob2xkZXJcblxubGV0IGhhc1JlcXVpcmVkICgpID1cbiAgbGV0IGkgPSBjcmVhdGVJbnB1dCBkb2N1bWVudCBpblxuICBKcy5PcHRkZWYudGVzdCAoSnMuVW5zYWZlLmNvZXJjZSBpKSMjLnJlcXVpcmVkXG5cbmxldCBvdmVyZmxvd19saW1pdCA9IDIxNDc0ODNfMDAwLlxuXG4oKiBtcyAqKVxuXG50eXBlIHRpbWVvdXRfaWRfc2FmZSA9IHRpbWVvdXRfaWQgb3B0aW9uIHJlZlxuXG5sZXQgc2V0VGltZW91dCBjYWxsYmFjayBkIDogdGltZW91dF9pZF9zYWZlID1cbiAgbGV0IGlkID0gcmVmIE5vbmUgaW5cbiAgbGV0IHJlYyBsb29wIGQgKCkgPVxuICAgIGxldCBzdGVwLCByZW1haW4gPVxuICAgICAgaWYgUG9seS4oZCA+IG92ZXJmbG93X2xpbWl0KSB0aGVuIG92ZXJmbG93X2xpbWl0LCBkIC0uIG92ZXJmbG93X2xpbWl0IGVsc2UgZCwgMC5cbiAgICBpblxuICAgIGxldCBjYiA9IGlmIFBvbHkuKHJlbWFpbiA9IDAuKSB0aGVuIGNhbGxiYWNrIGVsc2UgbG9vcCByZW1haW4gaW5cbiAgICBpZCA6PSBTb21lICh3aW5kb3cjI3NldFRpbWVvdXQgKEpzLndyYXBfY2FsbGJhY2sgY2IpIHN0ZXApXG4gIGluXG4gIGxvb3AgZCAoKTtcbiAgaWRcblxubGV0IGNsZWFyVGltZW91dCAoaWQgOiB0aW1lb3V0X2lkX3NhZmUpID1cbiAgbWF0Y2ggIWlkIHdpdGhcbiAgfCBOb25lIC0+ICgpXG4gIHwgU29tZSB4IC0+XG4gICAgICBpZCA6PSBOb25lO1xuICAgICAgd2luZG93IyNjbGVhclRpbWVvdXQgeFxuXG5sZXQganNfYXJyYXlfb2ZfY29sbGVjdGlvbiAoYyA6ICNlbGVtZW50IGNvbGxlY3Rpb24gSnMudCkgOiAjZWxlbWVudCBKcy50IEpzLmpzX2FycmF5IEpzLnRcbiAgICA9XG4gIEpzLlVuc2FmZS4obWV0aF9jYWxsIChqc19leHByIFwiW10uc2xpY2VcIikgXCJjYWxsXCIgW3wgaW5qZWN0IGMgfF0pXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDExIFBpZXJyZSBDaGFtYmFydFxuICogTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5cbm9wZW4gSnNcbm9wZW4gRG9tX2h0bWxcbm9wZW4hIEltcG9ydFxuXG5jbGFzcyB0eXBlIGZvcm1EYXRhID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGFwcGVuZCA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGFwcGVuZF9ibG9iIDoganNfc3RyaW5nIHQgLT4gRmlsZS5ibG9iIHQgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG5sZXQgZm9ybURhdGEgOiBmb3JtRGF0YSB0IGNvbnN0ciA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fRm9ybURhdGFcblxubGV0IGZvcm1EYXRhX2Zvcm0gOiAoZm9ybUVsZW1lbnQgdCAtPiBmb3JtRGF0YSB0KSBjb25zdHIgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX0Zvcm1EYXRhXG5cbnR5cGUgZm9ybV9lbHQgPVxuICBbIGBTdHJpbmcgb2YganNfc3RyaW5nIHRcbiAgfCBgRmlsZSBvZiBGaWxlLmZpbGUgdFxuICBdXG5cbnR5cGUgZm9ybV9jb250ZW50cyA9XG4gIFsgYEZpZWxkcyBvZiAoc3RyaW5nICogZm9ybV9lbHQpIGxpc3QgcmVmXG4gIHwgYEZvcm1EYXRhIG9mIGZvcm1EYXRhIHRcbiAgXVxuXG5sZXQgcmVjIGZpbHRlcl9tYXAgZiA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gW11cbiAgfCB2IDo6IHEgLT4gKFxuICAgICAgbWF0Y2ggZiB2IHdpdGhcbiAgICAgIHwgTm9uZSAtPiBmaWx0ZXJfbWFwIGYgcVxuICAgICAgfCBTb21lIHYnIC0+IHYnIDo6IGZpbHRlcl9tYXAgZiBxKVxuXG5jbGFzcyB0eXBlIHN1Ym1pdHRhYmxlRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBkaXNhYmxlZCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgbmFtZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB2YWx1ZSA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmxldCBoYXZlX2NvbnRlbnQgKGVsdCA6IHN1Ym1pdHRhYmxlRWxlbWVudCB0KSA9XG4gIGVsdCMjLm5hbWUjIy5sZW5ndGggPiAwICYmIG5vdCAoSnMudG9fYm9vbCBlbHQjIy5kaXNhYmxlZClcblxubGV0IGdldF90ZXh0YXJlYV92YWwgKGVsdCA6IHRleHRBcmVhRWxlbWVudCB0KSA9XG4gIGlmIGhhdmVfY29udGVudCAoZWx0IDo+IHN1Ym1pdHRhYmxlRWxlbWVudCB0KVxuICB0aGVuXG4gICAgbGV0IG5hbWUgPSB0b19zdHJpbmcgZWx0IyMubmFtZSBpblxuICAgIFsgbmFtZSwgYFN0cmluZyBlbHQjIy52YWx1ZSBdXG4gIGVsc2UgW11cblxubGV0IGdldF9zZWxlY3RfdmFsIChlbHQgOiBzZWxlY3RFbGVtZW50IHQpID1cbiAgaWYgaGF2ZV9jb250ZW50IChlbHQgOj4gc3VibWl0dGFibGVFbGVtZW50IHQpXG4gIHRoZW5cbiAgICBsZXQgbmFtZSA9IHRvX3N0cmluZyBlbHQjIy5uYW1lIGluXG4gICAgaWYgdG9fYm9vbCBlbHQjIy5tdWx0aXBsZVxuICAgIHRoZW5cbiAgICAgIGxldCBvcHRpb25zID1cbiAgICAgICAgQXJyYXkuaW5pdCBlbHQjIy5vcHRpb25zIyMubGVuZ3RoIChmdW4gaSAtPiBPcHQudG9fb3B0aW9uIChlbHQjIy5vcHRpb25zIyNpdGVtIGkpKVxuICAgICAgaW5cbiAgICAgIGZpbHRlcl9tYXBcbiAgICAgICAgKGZ1bmN0aW9uXG4gICAgICAgICAgfCBOb25lIC0+IE5vbmVcbiAgICAgICAgICB8IFNvbWUgZSAtPlxuICAgICAgICAgICAgICBpZiBKcy50b19ib29sIGUjIy5zZWxlY3RlZCB0aGVuIFNvbWUgKG5hbWUsIGBTdHJpbmcgZSMjLnZhbHVlKSBlbHNlIE5vbmUpXG4gICAgICAgIChBcnJheS50b19saXN0IG9wdGlvbnMpXG4gICAgZWxzZSBbIG5hbWUsIGBTdHJpbmcgZWx0IyMudmFsdWUgXVxuICBlbHNlIFtdXG5cbmNsYXNzIHR5cGUgZmlsZV9pbnB1dCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgaW5wdXRFbGVtZW50XG5cbiAgICBtZXRob2QgZmlsZXMgOiBGaWxlLmZpbGVMaXN0IHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBtdWx0aXBsZSA6IGJvb2wgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBnZXRfaW5wdXRfdmFsID8oZ2V0ID0gZmFsc2UpIChlbHQgOiBpbnB1dEVsZW1lbnQgdCkgPVxuICBpZiBoYXZlX2NvbnRlbnQgKGVsdCA6PiBzdWJtaXR0YWJsZUVsZW1lbnQgdClcbiAgdGhlblxuICAgIGxldCBuYW1lID0gdG9fc3RyaW5nIGVsdCMjLm5hbWUgaW5cbiAgICBsZXQgdmFsdWUgPSBlbHQjIy52YWx1ZSBpblxuICAgIG1hdGNoIHRvX2J5dGVzdHJpbmcgZWx0IyMuX3R5cGUjI3RvTG93ZXJDYXNlIHdpdGhcbiAgICB8IFwiY2hlY2tib3hcIiB8IFwicmFkaW9cIiAtPlxuICAgICAgICBpZiB0b19ib29sIGVsdCMjLmNoZWNrZWQgdGhlbiBbIG5hbWUsIGBTdHJpbmcgdmFsdWUgXSBlbHNlIFtdXG4gICAgfCBcInN1Ym1pdFwiIHwgXCJyZXNldFwiIC0+IFtdXG4gICAgfCBcInRleHRcIiB8IFwicGFzc3dvcmRcIiAtPiBbIG5hbWUsIGBTdHJpbmcgdmFsdWUgXVxuICAgIHwgXCJmaWxlXCIgLT4gKFxuICAgICAgICBpZiBnZXRcbiAgICAgICAgdGhlbiBbIG5hbWUsIGBTdHJpbmcgdmFsdWUgXVxuICAgICAgICBlbHNlXG4gICAgICAgICAgbGV0IGVsdCA6IGZpbGVfaW5wdXQgdCA9IFVuc2FmZS5jb2VyY2UgZWx0IGluXG4gICAgICAgICAgbWF0Y2ggT3B0ZGVmLnRvX29wdGlvbiBlbHQjIy5maWxlcyB3aXRoXG4gICAgICAgICAgfCBOb25lIC0+IFtdXG4gICAgICAgICAgfCBTb21lIGxpc3QgLT4gKFxuICAgICAgICAgICAgICBpZiBsaXN0IyMubGVuZ3RoID0gMFxuICAgICAgICAgICAgICB0aGVuIFsgbmFtZSwgYFN0cmluZyAoSnMuc3RyaW5nIFwiXCIpIF1cbiAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIG1hdGNoIE9wdGRlZi50b19vcHRpb24gZWx0IyMubXVsdGlwbGUgd2l0aFxuICAgICAgICAgICAgICAgIHwgTm9uZSB8IFNvbWUgZmFsc2UgLT4gKFxuICAgICAgICAgICAgICAgICAgICBtYXRjaCBPcHQudG9fb3B0aW9uIChsaXN0IyNpdGVtIDApIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgfCBOb25lIC0+IFtdXG4gICAgICAgICAgICAgICAgICAgIHwgU29tZSBmaWxlIC0+IFsgbmFtZSwgYEZpbGUgZmlsZSBdKVxuICAgICAgICAgICAgICAgIHwgU29tZSB0cnVlIC0+XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcl9tYXBcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIGYgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIE9wdC50b19vcHRpb24gZiB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IE5vbmUgLT4gTm9uZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBTb21lIGZpbGUgLT4gU29tZSAobmFtZSwgYEZpbGUgZmlsZSkpXG4gICAgICAgICAgICAgICAgICAgICAgKEFycmF5LnRvX2xpc3QgKEFycmF5LmluaXQgbGlzdCMjLmxlbmd0aCAoZnVuIGkgLT4gbGlzdCMjaXRlbSBpKSkpKSlcbiAgICB8IF8gLT4gWyBuYW1lLCBgU3RyaW5nIHZhbHVlIF1cbiAgZWxzZSBbXVxuXG5sZXQgZ2V0X2Zvcm1fZWxlbWVudHMgKGZvcm0gOiBmb3JtRWxlbWVudCB0KSA9XG4gIGxldCByZWMgbG9vcCBhY2MgaSA9XG4gICAgaWYgaSA8IDBcbiAgICB0aGVuIGFjY1xuICAgIGVsc2VcbiAgICAgIG1hdGNoIE9wdC50b19vcHRpb24gKGZvcm0jIy5lbGVtZW50cyMjaXRlbSBpKSB3aXRoXG4gICAgICB8IE5vbmUgLT4gbG9vcCBhY2MgKGkgLSBpKVxuICAgICAgfCBTb21lIHggLT4gbG9vcCAoeCA6OiBhY2MpIChpIC0gMSlcbiAgaW5cbiAgbG9vcCBbXSAoZm9ybSMjLmVsZW1lbnRzIyMubGVuZ3RoIC0gMSlcblxubGV0IGdldF9lbGVtZW50X2NvbnRlbnQgP2dldCB2ID1cbiAgbWF0Y2ggdGFnZ2VkIHYgd2l0aFxuICB8IFNlbGVjdCB2IC0+IGdldF9zZWxlY3RfdmFsIHZcbiAgfCBJbnB1dCB2IC0+IGdldF9pbnB1dF92YWwgP2dldCB2XG4gIHwgVGV4dGFyZWEgdiAtPiBnZXRfdGV4dGFyZWFfdmFsIHZcbiAgfCBfIC0+IFtdXG5cbmxldCBmb3JtX2VsZW1lbnRzID9nZXQgKGZvcm0gOiBmb3JtRWxlbWVudCB0KSA9XG4gIExpc3QuZmxhdHRlbiAoTGlzdC5tYXAgKGZ1biB2IC0+IGdldF9lbGVtZW50X2NvbnRlbnQgP2dldCB2KSAoZ2V0X2Zvcm1fZWxlbWVudHMgZm9ybSkpXG5cbmxldCBhcHBlbmQgKGZvcm1fY29udGVudHMgOiBmb3JtX2NvbnRlbnRzKSAoZm9ybV9lbHQgOiBzdHJpbmcgKiBmb3JtX2VsdCkgPVxuICBtYXRjaCBmb3JtX2NvbnRlbnRzIHdpdGhcbiAgfCBgRmllbGRzIGxpc3QgLT4gbGlzdCA6PSBmb3JtX2VsdCA6OiAhbGlzdFxuICB8IGBGb3JtRGF0YSBmIC0+IChcbiAgICAgIG1hdGNoIGZvcm1fZWx0IHdpdGhcbiAgICAgIHwgbmFtZSwgYFN0cmluZyBzIC0+IGYjI2FwcGVuZCAoc3RyaW5nIG5hbWUpIHNcbiAgICAgIHwgbmFtZSwgYEZpbGUgZmlsZSAtPiBmIyNhcHBlbmRfYmxvYiAoc3RyaW5nIG5hbWUpIChmaWxlIDo+IEZpbGUuYmxvYiB0KSlcblxubGV0IGVtcHR5X2Zvcm1fY29udGVudHMgKCkgPVxuICBtYXRjaCBPcHRkZWYudG9fb3B0aW9uIChKcy5kZWYgZm9ybURhdGEpIHdpdGhcbiAgfCBOb25lIC0+IGBGaWVsZHMgKHJlZiBbXSlcbiAgfCBTb21lIGNvbnN0ciAtPiBgRm9ybURhdGEgKG5ldyVqcyBjb25zdHIpXG5cbmxldCBwb3N0X2Zvcm1fY29udGVudHMgZm9ybSA9XG4gIGxldCBjb250ZW50cyA9IGVtcHR5X2Zvcm1fY29udGVudHMgKCkgaW5cbiAgTGlzdC5pdGVyIChhcHBlbmQgY29udGVudHMpIChmb3JtX2VsZW1lbnRzIGZvcm0pO1xuICBjb250ZW50c1xuXG5sZXQgZ2V0X2Zvcm1fY29udGVudHMgZm9ybSA9XG4gIExpc3QubWFwXG4gICAgKGZ1bmN0aW9uXG4gICAgICB8IG5hbWUsIGBTdHJpbmcgcyAtPiBuYW1lLCB0b19zdHJpbmcgc1xuICAgICAgfCBfIC0+IGFzc2VydCBmYWxzZSlcbiAgICAoZm9ybV9lbGVtZW50cyB+Z2V0OnRydWUgZm9ybSlcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbiAqIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxuXG5vcGVuIEpzXG5vcGVuISBJbXBvcnRcblxudHlwZSByZWFkeVN0YXRlID1cbiAgfCBVTlNFTlRcbiAgfCBPUEVORURcbiAgfCBIRUFERVJTX1JFQ0VJVkVEXG4gIHwgTE9BRElOR1xuICB8IERPTkVcblxudHlwZSBfIHJlc3BvbnNlID1cbiAgfCBBcnJheUJ1ZmZlciA6IFR5cGVkX2FycmF5LmFycmF5QnVmZmVyIHQgT3B0LnQgcmVzcG9uc2VcbiAgfCBCbG9iIDogI0ZpbGUuYmxvYiB0IE9wdC50IHJlc3BvbnNlXG4gIHwgRG9jdW1lbnQgOiBEb20uZWxlbWVudCBEb20uZG9jdW1lbnQgdCBPcHQudCByZXNwb25zZVxuICB8IEpTT04gOiAnYSBPcHQudCByZXNwb25zZVxuICB8IFRleHQgOiBqc19zdHJpbmcgdCByZXNwb25zZVxuICB8IERlZmF1bHQgOiBzdHJpbmcgcmVzcG9uc2VcblxuY2xhc3MgdHlwZSB4bWxIdHRwUmVxdWVzdCA9XG4gIG9iamVjdCAoJ3NlbGYpXG4gICAgbWV0aG9kIG9ucmVhZHlzdGF0ZWNoYW5nZSA6ICh1bml0IC0+IHVuaXQpIEpzLmNhbGxiYWNrIEpzLndyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgcmVhZHlTdGF0ZSA6IHJlYWR5U3RhdGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9vcGVuIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4gYm9vbCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIF9vcGVuX2Z1bGwgOlxuICAgICAgICAganNfc3RyaW5nIHRcbiAgICAgIC0+IGpzX3N0cmluZyB0XG4gICAgICAtPiBib29sIHRcbiAgICAgIC0+IGpzX3N0cmluZyB0IG9wdFxuICAgICAgLT4ganNfc3RyaW5nIHQgb3B0XG4gICAgICAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRSZXF1ZXN0SGVhZGVyIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgb3ZlcnJpZGVNaW1lVHlwZSA6IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNlbmQgOiBqc19zdHJpbmcgdCBvcHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2VuZF9ibG9iIDogI0ZpbGUuYmxvYiB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNlbmRfZG9jdW1lbnQgOiBEb20uZWxlbWVudCBEb20uZG9jdW1lbnQgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZW5kX2Zvcm1EYXRhIDogRm9ybS5mb3JtRGF0YSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGFib3J0IDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc3RhdHVzIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzdGF0dXNUZXh0IDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGdldFJlc3BvbnNlSGVhZGVyIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRBbGxSZXNwb25zZUhlYWRlcnMgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgcmVzcG9uc2UgOiBGaWxlLmZpbGVfYW55IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByZXNwb25zZVRleHQgOiBqc19zdHJpbmcgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJlc3BvbnNlWE1MIDogRG9tLmVsZW1lbnQgRG9tLmRvY3VtZW50IHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByZXNwb25zZVR5cGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgd2l0aENyZWRlbnRpYWxzIDogYm9vbCB0IHdyaXRlb25seV9wcm9wXG5cbiAgICBpbmhlcml0IEZpbGUucHJvZ3Jlc3NFdmVudFRhcmdldFxuXG4gICAgbWV0aG9kIG9udGltZW91dCA6XG4gICAgICAoJ3NlbGYgdCwgJ3NlbGYgRmlsZS5wcm9ncmVzc0V2ZW50IHQpIERvbS5ldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHVwbG9hZCA6IHhtbEh0dHBSZXF1ZXN0VXBsb2FkIHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCB4bWxIdHRwUmVxdWVzdFVwbG9hZCA9XG4gIG9iamVjdCAoJ3NlbGYpXG4gICAgaW5oZXJpdCBGaWxlLnByb2dyZXNzRXZlbnRUYXJnZXRcbiAgZW5kXG5cbm1vZHVsZSBFdmVudCA9IHN0cnVjdFxuICB0eXBlIHR5cCA9IHhtbEh0dHBSZXF1ZXN0IEZpbGUucHJvZ3Jlc3NFdmVudCB0IERvbS5FdmVudC50eXBcblxuICBsZXQgcmVhZHlzdGF0ZWNoYW5nZSA9IERvbS5FdmVudC5tYWtlIFwicmVhZHlzdGF0ZWNoYW5nZVwiXG5cbiAgbGV0IGxvYWRzdGFydCA9IERvbS5FdmVudC5tYWtlIFwibG9hZHN0YXJ0XCJcblxuICBsZXQgcHJvZ3Jlc3MgPSBEb20uRXZlbnQubWFrZSBcInByb2dyZXNzXCJcblxuICBsZXQgYWJvcnQgPSBEb20uRXZlbnQubWFrZSBcImFib3J0XCJcblxuICBsZXQgZXJyb3IgPSBEb20uRXZlbnQubWFrZSBcImVycm9yXCJcblxuICBsZXQgbG9hZCA9IERvbS5FdmVudC5tYWtlIFwibG9hZFwiXG5cbiAgbGV0IHRpbWVvdXQgPSBEb20uRXZlbnQubWFrZSBcInRpbWVvdXRcIlxuXG4gIGxldCBsb2FkZW5kID0gRG9tLkV2ZW50Lm1ha2UgXCJsb2FkZW5kXCJcbmVuZFxuXG5leHRlcm5hbCBjcmVhdGUgOiB1bml0IC0+IHhtbEh0dHBSZXF1ZXN0IEpzLnQgPSBcImNhbWxfeG1saHR0cHJlcXVlc3RfY3JlYXRlXCJcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgT0NhbWxQcm86IEdyw6lnb2lyZSBIZW5yeSwgw4dhxJ9kYcWfIEJvem1hbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcblxub3BlbiBKc1xub3BlbiBEb21faHRtbFxub3BlbiEgSW1wb3J0XG5cbmNsYXNzIHR5cGUgWydhLCAnYl0gd29ya2VyID1cbiAgb2JqZWN0ICgnc2VsZilcbiAgICBpbmhlcml0IGV2ZW50VGFyZ2V0XG5cbiAgICBtZXRob2Qgb25lcnJvciA6ICgnc2VsZiB0LCBlcnJvckV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25tZXNzYWdlIDogKCdzZWxmIHQsICdiIG1lc3NhZ2VFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBvc3RNZXNzYWdlIDogJ2EgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdGVybWluYXRlIDogdW5pdCBtZXRoXG4gIGVuZFxuXG5hbmQgZXJyb3JFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZXZlbnRcblxuICAgIG1ldGhvZCBtZXNzYWdlIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGZpbGVuYW1lIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGxpbmVubyA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY29sbm8gOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGVycm9yIDogVW5zYWZlLmFueSByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgWydhXSBtZXNzYWdlRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGV2ZW50XG5cbiAgICBtZXRob2QgZGF0YSA6ICdhIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCB3b3JrZXIgPSBVbnNhZmUuZ2xvYmFsIyMuX1dvcmtlclxuXG5sZXQgY3JlYXRlIHNjcmlwdCA9IG5ldyVqcyB3b3JrZXIgKHN0cmluZyBzY3JpcHQpXG5cbmxldCBpbXBvcnRfc2NyaXB0cyBzY3JpcHRzIDogdW5pdCA9XG4gIGlmIFVuc2FmZS5nbG9iYWwjIy5pbXBvcnRTY3JpcHRzID09IHVuZGVmaW5lZFxuICB0aGVuIGludmFsaWRfYXJnIFwiV29ya2VyLmltcG9ydF9zY3JpcHRzIGlzIHVuZGVmaW5lZFwiO1xuICBVbnNhZmUuZnVuX2NhbGxcbiAgICBVbnNhZmUuZ2xvYmFsIyMuaW1wb3J0U2NyaXB0c1xuICAgIChBcnJheS5tYXAgKGZ1biBzIC0+IFVuc2FmZS5pbmplY3QgKHN0cmluZyBzKSkgKEFycmF5Lm9mX2xpc3Qgc2NyaXB0cykpXG5cbmxldCBzZXRfb25tZXNzYWdlIGhhbmRsZXIgPVxuICBpZiBVbnNhZmUuZ2xvYmFsIyMub25tZXNzYWdlID09IHVuZGVmaW5lZFxuICB0aGVuIGludmFsaWRfYXJnIFwiV29ya2VyLm9ubWVzc2FnZSBpcyB1bmRlZmluZWRcIjtcbiAgbGV0IGpzX2hhbmRsZXIgKGV2IDogJ2EgbWVzc2FnZUV2ZW50IEpzLnQpID0gaGFuZGxlciBldiMjLmRhdGEgaW5cbiAgVW5zYWZlLmdsb2JhbCMjLm9ubWVzc2FnZSA6PSB3cmFwX2NhbGxiYWNrIGpzX2hhbmRsZXJcblxubGV0IHBvc3RfbWVzc2FnZSBtc2cgPVxuICBpZiBVbnNhZmUuZ2xvYmFsIyMucG9zdE1lc3NhZ2UgPT0gdW5kZWZpbmVkXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJXb3JrZXIub25tZXNzYWdlIGlzIHVuZGVmaW5lZFwiO1xuICBVbnNhZmUuZ2xvYmFsIyNwb3N0TWVzc2FnZSBtc2dcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSmFjcXVlcy1QYXNjYWwgRGVwbGFpeFxuICogTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5cbm9wZW4hIEltcG9ydFxuXG50eXBlIHJlYWR5U3RhdGUgPVxuICB8IENPTk5FQ1RJTkdcbiAgfCBPUEVOXG4gIHwgQ0xPU0lOR1xuICB8IENMT1NFRFxuXG5jbGFzcyB0eXBlIFsnYV0gY2xvc2VFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgWydhXSBEb20uZXZlbnRcblxuICAgIG1ldGhvZCBjb2RlIDogaW50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByZWFzb24gOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgd2FzQ2xlYW4gOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBbJ2FdIG1lc3NhZ2VFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgWydhXSBEb20uZXZlbnRcblxuICAgIG1ldGhvZCBkYXRhIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGRhdGFfYnVmZmVyIDogVHlwZWRfYXJyYXkuYXJyYXlCdWZmZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZGF0YV9ibG9iIDogRmlsZS5ibG9iIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSB3ZWJTb2NrZXQgPVxuICBvYmplY3QgKCdzZWxmKVxuICAgIGluaGVyaXQgRG9tX2h0bWwuZXZlbnRUYXJnZXRcblxuICAgIG1ldGhvZCB1cmwgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcmVhZHlTdGF0ZSA6IHJlYWR5U3RhdGUgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGJ1ZmZlcmVkQW1vdW50IDogaW50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbm9wZW4gOlxuICAgICAgKCdzZWxmIEpzLnQsICdzZWxmIERvbS5ldmVudCBKcy50KSBEb20uZXZlbnRfbGlzdGVuZXIgSnMud3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmNsb3NlIDpcbiAgICAgICgnc2VsZiBKcy50LCAnc2VsZiBjbG9zZUV2ZW50IEpzLnQpIERvbS5ldmVudF9saXN0ZW5lciBKcy53cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uZXJyb3IgOlxuICAgICAgKCdzZWxmIEpzLnQsICdzZWxmIERvbS5ldmVudCBKcy50KSBEb20uZXZlbnRfbGlzdGVuZXIgSnMud3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBleHRlbnNpb25zIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHByb3RvY29sIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNsb3NlIDogdW5pdCBKcy5tZXRoXG5cbiAgICBtZXRob2QgY2xvc2Vfd2l0aENvZGUgOiBpbnQgLT4gdW5pdCBKcy5tZXRoXG5cbiAgICBtZXRob2QgY2xvc2Vfd2l0aENvZGVBbmRSZWFzb24gOiBpbnQgLT4gSnMuanNfc3RyaW5nIEpzLnQgLT4gdW5pdCBKcy5tZXRoXG5cbiAgICBtZXRob2Qgb25tZXNzYWdlIDpcbiAgICAgICgnc2VsZiBKcy50LCAnc2VsZiBtZXNzYWdlRXZlbnQgSnMudCkgRG9tLmV2ZW50X2xpc3RlbmVyIEpzLndyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgYmluYXJ5VHlwZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnByb3BcblxuICAgIG1ldGhvZCBzZW5kIDogSnMuanNfc3RyaW5nIEpzLnQgLT4gdW5pdCBKcy5tZXRoXG5cbiAgICBtZXRob2Qgc2VuZF9idWZmZXIgOiBUeXBlZF9hcnJheS5hcnJheUJ1ZmZlciBKcy50IC0+IHVuaXQgSnMubWV0aFxuXG4gICAgbWV0aG9kIHNlbmRfYmxvYiA6IEZpbGUuYmxvYiBKcy50IC0+IHVuaXQgSnMubWV0aFxuICBlbmRcblxubGV0IHdlYlNvY2tldCA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fV2ViU29ja2V0XG5cbmxldCB3ZWJTb2NrZXRfd2l0aFByb3RvY29sID0gd2ViU29ja2V0XG5cbmxldCB3ZWJTb2NrZXRfd2l0aFByb3RvY29scyA9IHdlYlNvY2tldFxuXG5sZXQgaXNfc3VwcG9ydGVkICgpID0gSnMuT3B0ZGVmLnRlc3Qgd2ViU29ja2V0XG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDEyIErDqXLDtG1lIFZvdWlsbG9uXG4gKiBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3RcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcblxub3BlbiBKc1xub3BlbiEgSW1wb3J0XG5cbigqKiA1LjEgVHlwZXMgKilcblxudHlwZSBzaXplaSA9IGludFxuXG50eXBlIHNpemVpcHRyID0gaW50XG5cbnR5cGUgaW50cHRyID0gaW50XG5cbnR5cGUgdWludCA9IGludFxuXG50eXBlIGNsYW1wZiA9IGZsb2F0XG5cbnR5cGUgdm9pZFxuXG50eXBlIGNsZWFyQnVmZmVyTWFzayA9IGludFxuXG50eXBlIGJlZ2luTW9kZVxuXG50eXBlIGJsZW5kaW5nRmFjdG9yXG5cbnR5cGUgYmxlbmRNb2RlXG5cbnR5cGUgYnVmZmVyVGFyZ2V0XG5cbnR5cGUgYnVmZmVyVXNhZ2VcblxudHlwZSBjdWxsRmFjZU1vZGVcblxudHlwZSBkZXB0aEZ1bmN0aW9uXG5cbnR5cGUgZW5hYmxlQ2FwXG5cbnR5cGUgZXJyb3JDb2RlXG5cbnR5cGUgZnJvbnRGYWNlRGlyXG5cbnR5cGUgaGludFRhcmdldFxuXG50eXBlIGhpbnRNb2RlXG5cbnR5cGUgdGV4dHVyZVVuaXQgPSBpbnRcblxudHlwZSAnYSBwaXhlbFN0b3JlUGFyYW1cblxudHlwZSBzdGVuY2lsT3BcblxudHlwZSBmYlRhcmdldFxuXG50eXBlIGF0dGFjaG1lbnRQb2ludFxuXG50eXBlIHJiVGFyZ2V0XG5cbnR5cGUgdGV4VGFyZ2V0XG5cbnR5cGUgJ2EgcGFyYW1ldGVyXG5cbnR5cGUgJ2EgYnVmZmVyUGFyYW1ldGVyXG5cbnR5cGUgJ2EgdmVydGV4QXR0cmliUGFyYW1cblxudHlwZSB2ZXJ0ZXhBdHRyaWJQb2ludGVyUGFyYW1cblxudHlwZSAnYSBhdHRhY2hQYXJhbVxuXG50eXBlIGZyYW1lYnVmZmVyU3RhdHVzXG5cbnR5cGUgJ2EgcmVuZGVyYnVmZmVyUGFyYW1cblxudHlwZSBmb3JtYXRcblxudHlwZSBwaXhlbEZvcm1hdFxuXG50eXBlIHBpeGVsVHlwZVxuXG50eXBlICdhIHRleFBhcmFtXG5cbnR5cGUgZGF0YVR5cGVcblxudHlwZSBzaGFkZXJUeXBlXG5cbnR5cGUgJ2EgcHJvZ3JhbVBhcmFtXG5cbnR5cGUgJ2Egc2hhZGVyUGFyYW1cblxudHlwZSB0ZXh0dXJlRmlsdGVyXG5cbnR5cGUgd3JhcE1vZGVcblxudHlwZSB0ZXhGaWx0ZXJcblxudHlwZSB1bmlmb3JtVHlwZVxuXG50eXBlIGNvbG9yc3BhY2VDb252ZXJzaW9uXG5cbnR5cGUgc2hhZGVyUHJlY2lzaW9uVHlwZVxuXG50eXBlIG9iamVjdFR5cGVcblxuKCoqIDUuMiBXZWJHTENvbnRleHRBdHRyaWJ1dGVzICopXG5jbGFzcyB0eXBlIGNvbnRleHRBdHRyaWJ1dGVzID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGFscGhhIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBkZXB0aCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2Qgc3RlbmNpbCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgYW50aWFsaWFzIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBwcmVtdWx0aXBsaWVkQWxwaGEgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIHByZXNlcnZlRHJhd2luZ0J1ZmZlciA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgcHJlZmVyTG93UG93ZXJUb0hpZ2hQZXJmb3JtYW5jZSA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdCA6IGJvb2wgdCBwcm9wXG4gIGVuZFxuXG5sZXQgZGVmYXVsdENvbnRleHRBdHRyaWJ1dGVzID1cbiAgSnMuVW5zYWZlLihcbiAgICBvYmpcbiAgICAgIFt8IFwiYWxwaGFcIiwgaW5qZWN0IF90cnVlXG4gICAgICAgOyBcImRlcHRoXCIsIGluamVjdCBfdHJ1ZVxuICAgICAgIDsgXCJzdGVuY2lsXCIsIGluamVjdCBfZmFsc2VcbiAgICAgICA7IFwiYW50aWFsaWFzXCIsIGluamVjdCBfdHJ1ZVxuICAgICAgIDsgXCJwcmVtdWx0aXBsaWVkQWxwaGFcIiwgaW5qZWN0IF9mYWxzZVxuICAgICAgIDsgXCJwcmVzZXJ2ZURyYXdpbmdCdWZmZXJcIiwgaW5qZWN0IF9mYWxzZVxuICAgICAgIDsgXCJwcmVmZXJMb3dQb3dlclRvSGlnaFBlcmZvcm1hbmNlXCIsIGluamVjdCBfZmFsc2VcbiAgICAgICA7IFwiZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdFwiLCBpbmplY3QgX2ZhbHNlXG4gICAgICB8XSlcblxudHlwZSBidWZmZXJcblxudHlwZSBmcmFtZWJ1ZmZlclxuXG50eXBlIHByb2dyYW1cblxudHlwZSByZW5kZXJidWZmZXJcblxudHlwZSBzaGFkZXJcblxudHlwZSB0ZXh0dXJlXG5cbnR5cGUgJ2EgdW5pZm9ybUxvY2F0aW9uXG5cbmNsYXNzIHR5cGUgYWN0aXZlSW5mbyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBzaXplIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfdHlwZSA6IHVuaWZvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBuYW1lIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBzaGFkZXJQcmVjaXNpb25Gb3JtYXQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgcmFuZ2VNaW4gOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJhbmdlTWF4IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwcmVjaXNpb24gOiBpbnQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSByZW5kZXJpbmdDb250ZXh0ID1cbiAgb2JqZWN0XG5cbiAgICAoKiogNS4xMy4xIEF0dHJpYnV0ZXMgKilcblxuICAgIG1ldGhvZCBjYW52YXMgOiBEb21faHRtbC5jYW52YXNFbGVtZW50IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGRyYXdpbmdCdWZmZXJXaWR0aCA6IHNpemVpIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkcmF3aW5nQnVmZmVySGVpZ2h0IDogc2l6ZWkgcmVhZG9ubHlfcHJvcFxuXG4gICAgKCoqIDUuMTMuMiBHZXR0aW5nIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb250ZXh0ICopXG5cbiAgICBtZXRob2QgZ2V0Q29udGV4dEF0dHJpYnV0ZXMgOiBjb250ZXh0QXR0cmlidXRlcyB0IG1ldGhcblxuICAgICgqKiA1LjEzLjMgU2V0dGluZyBhbmQgZ2V0dGluZyBzdGF0ZSAqKVxuXG4gICAgbWV0aG9kIGFjdGl2ZVRleHR1cmUgOiB0ZXh0dXJlVW5pdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBibGVuZENvbG9yIDogY2xhbXBmIC0+IGNsYW1wZiAtPiBjbGFtcGYgLT4gY2xhbXBmIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJsZW5kRXF1YXRpb24gOiBibGVuZE1vZGUgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYmxlbmRFcXVhdGlvblNlcGFyYXRlIDogYmxlbmRNb2RlIC0+IGJsZW5kTW9kZSAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBibGVuZEZ1bmMgOiBibGVuZGluZ0ZhY3RvciAtPiBibGVuZGluZ0ZhY3RvciAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBibGVuZEZ1bmNTZXBhcmF0ZSA6XG4gICAgICBibGVuZGluZ0ZhY3RvciAtPiBibGVuZGluZ0ZhY3RvciAtPiBibGVuZGluZ0ZhY3RvciAtPiBibGVuZGluZ0ZhY3RvciAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjbGVhckNvbG9yIDogY2xhbXBmIC0+IGNsYW1wZiAtPiBjbGFtcGYgLT4gY2xhbXBmIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNsZWFyRGVwdGggOiBjbGFtcGYgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY2xlYXJTdGVuY2lsIDogaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNvbG9yTWFzayA6IGJvb2wgdCAtPiBib29sIHQgLT4gYm9vbCB0IC0+IGJvb2wgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjdWxsRmFjZSA6IGN1bGxGYWNlTW9kZSAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkZXB0aEZ1bmMgOiBkZXB0aEZ1bmN0aW9uIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRlcHRoTWFzayA6IGJvb2wgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkZXB0aFJhbmdlIDogY2xhbXBmIC0+IGNsYW1wZiAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkaXNhYmxlIDogZW5hYmxlQ2FwIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGVuYWJsZSA6IGVuYWJsZUNhcCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBmcm9udEZhY2UgOiBmcm9udEZhY2VEaXIgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0UGFyYW1ldGVyIDogJ2EuICdhIHBhcmFtZXRlciAtPiAnYSBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RXJyb3IgOiBlcnJvckNvZGUgbWV0aFxuXG4gICAgbWV0aG9kIGhpbnQgOiBoaW50VGFyZ2V0IC0+IGhpbnRNb2RlIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGlzRW5hYmxlZCA6IGVuYWJsZUNhcCAtPiBib29sIHQgbWV0aFxuXG4gICAgbWV0aG9kIGxpbmVXaWR0aCA6IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHBpeGVsU3RvcmVpIDogJ2EuICdhIHBpeGVsU3RvcmVQYXJhbSAtPiAnYSAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBwb2x5Z29uT2Zmc2V0IDogZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2FtcGxlQ292ZXJhZ2UgOiBjbGFtcGYgLT4gYm9vbCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHN0ZW5jaWxGdW5jIDogZGVwdGhGdW5jdGlvbiAtPiBpbnQgLT4gdWludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzdGVuY2lsRnVuY1NlcGFyYXRlIDogY3VsbEZhY2VNb2RlIC0+IGRlcHRoRnVuY3Rpb24gLT4gaW50IC0+IHVpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc3RlbmNpbE1hc2sgOiB1aW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHN0ZW5jaWxNYXNrU2VwYXJhdGUgOiBjdWxsRmFjZU1vZGUgLT4gdWludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzdGVuY2lsT3AgOiBzdGVuY2lsT3AgLT4gc3RlbmNpbE9wIC0+IHN0ZW5jaWxPcCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzdGVuY2lsT3BTZXBhcmF0ZSA6XG4gICAgICBjdWxsRmFjZU1vZGUgLT4gc3RlbmNpbE9wIC0+IHN0ZW5jaWxPcCAtPiBzdGVuY2lsT3AgLT4gdW5pdCBtZXRoXG5cbiAgICAoKiogNS4xMy40IFZpZXdpbmcgYW5kIGNsaXBwaW5nICopXG5cbiAgICBtZXRob2Qgc2Npc3NvciA6IGludCAtPiBpbnQgLT4gc2l6ZWkgLT4gc2l6ZWkgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgdmlld3BvcnQgOiBpbnQgLT4gaW50IC0+IHNpemVpIC0+IHNpemVpIC0+IHVuaXQgbWV0aFxuXG4gICAgKCoqIDUuMTMuNSBCdWZmZXIgb2JqZWN0cyAqKVxuXG4gICAgbWV0aG9kIGJpbmRCdWZmZXIgOiBidWZmZXJUYXJnZXQgLT4gYnVmZmVyIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYmluZEJ1ZmZlcl8gOiBidWZmZXJUYXJnZXQgLT4gYnVmZmVyIHQgb3B0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJ1ZmZlckRhdGFfY3JlYXRlIDogYnVmZmVyVGFyZ2V0IC0+IHNpemVpcHRyIC0+IGJ1ZmZlclVzYWdlIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJ1ZmZlckRhdGEgOlxuICAgICAgYnVmZmVyVGFyZ2V0IC0+ICNUeXBlZF9hcnJheS5hcnJheUJ1ZmZlclZpZXcgdCAtPiBidWZmZXJVc2FnZSAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBidWZmZXJEYXRhX3JhdyA6XG4gICAgICBidWZmZXJUYXJnZXQgLT4gVHlwZWRfYXJyYXkuYXJyYXlCdWZmZXIgdCAtPiBidWZmZXJVc2FnZSAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBidWZmZXJTdWJEYXRhIDpcbiAgICAgIGJ1ZmZlclRhcmdldCAtPiBpbnRwdHIgLT4gI1R5cGVkX2FycmF5LmFycmF5QnVmZmVyVmlldyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJ1ZmZlclN1YkRhdGFfcmF3IDpcbiAgICAgIGJ1ZmZlclRhcmdldCAtPiBpbnRwdHIgLT4gVHlwZWRfYXJyYXkuYXJyYXlCdWZmZXIgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVCdWZmZXIgOiBidWZmZXIgdCBtZXRoXG5cbiAgICBtZXRob2QgZGVsZXRlQnVmZmVyIDogYnVmZmVyIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0QnVmZmVyUGFyYW1ldGVyIDogJ2EuIGJ1ZmZlclRhcmdldCAtPiAnYSBidWZmZXJQYXJhbWV0ZXIgLT4gJ2EgbWV0aFxuXG4gICAgbWV0aG9kIGlzQnVmZmVyIDogYnVmZmVyIHQgLT4gYm9vbCB0IG1ldGhcblxuICAgICgqKiA1LjEzLjYgRnJhbWVidWZmZXIgb2JqZWN0cyAqKVxuXG4gICAgbWV0aG9kIGJpbmRGcmFtZWJ1ZmZlciA6IGZiVGFyZ2V0IC0+IGZyYW1lYnVmZmVyIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYmluZEZyYW1lYnVmZmVyXyA6IGZiVGFyZ2V0IC0+IGZyYW1lYnVmZmVyIHQgb3B0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNoZWNrRnJhbWVidWZmZXJTdGF0dXMgOiBmYlRhcmdldCAtPiBmcmFtZWJ1ZmZlclN0YXR1cyBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlRnJhbWVidWZmZXIgOiBmcmFtZWJ1ZmZlciB0IG1ldGhcblxuICAgIG1ldGhvZCBkZWxldGVGcmFtZWJ1ZmZlciA6IGZyYW1lYnVmZmVyIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZnJhbWVidWZmZXJSZW5kZXJidWZmZXIgOlxuICAgICAgZmJUYXJnZXQgLT4gYXR0YWNobWVudFBvaW50IC0+IHJiVGFyZ2V0IC0+IHJlbmRlcmJ1ZmZlciB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGZyYW1lYnVmZmVyVGV4dHVyZTJEIDpcbiAgICAgIGZiVGFyZ2V0IC0+IGF0dGFjaG1lbnRQb2ludCAtPiB0ZXhUYXJnZXQgLT4gdGV4dHVyZSB0IC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIgOlxuICAgICAgJ2EuIGZiVGFyZ2V0IC0+IGF0dGFjaG1lbnRQb2ludCAtPiAnYSBhdHRhY2hQYXJhbSAtPiAnYSBtZXRoXG5cbiAgICBtZXRob2QgaXNGcmFtZWJ1ZmZlciA6IGZyYW1lYnVmZmVyIHQgLT4gYm9vbCB0IG1ldGhcblxuICAgICgqKiA1LjEzLjcgUmVuZGVyYnVmZmVyIG9iamVjdHMgKilcblxuICAgIG1ldGhvZCBiaW5kUmVuZGVyYnVmZmVyIDogcmJUYXJnZXQgLT4gcmVuZGVyYnVmZmVyIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYmluZFJlbmRlcmJ1ZmZlcl8gOiByYlRhcmdldCAtPiByZW5kZXJidWZmZXIgdCBvcHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlUmVuZGVyYnVmZmVyIDogcmVuZGVyYnVmZmVyIHQgbWV0aFxuXG4gICAgbWV0aG9kIGRlbGV0ZVJlbmRlcmJ1ZmZlciA6IHJlbmRlcmJ1ZmZlciB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlciA6ICdhLiByYlRhcmdldCAtPiAnYSByZW5kZXJidWZmZXJQYXJhbSAtPiAnYSBtZXRoXG5cbiAgICBtZXRob2QgaXNSZW5kZXJidWZmZXIgOiByZW5kZXJidWZmZXIgdCAtPiBib29sIHQgbWV0aFxuXG4gICAgbWV0aG9kIHJlbmRlcmJ1ZmZlclN0b3JhZ2UgOiByYlRhcmdldCAtPiBmb3JtYXQgLT4gc2l6ZWkgLT4gc2l6ZWkgLT4gdW5pdCBtZXRoXG5cbiAgICAoKiogNS4xMy44IFRleHR1cmUgb2JqZWN0cyAqKVxuXG4gICAgbWV0aG9kIGJpbmRUZXh0dXJlIDogdGV4VGFyZ2V0IC0+IHRleHR1cmUgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBiaW5kVGV4dHVyZV8gOiB0ZXhUYXJnZXQgLT4gdGV4dHVyZSB0IG9wdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjb21wcmVzc2VkVGV4SW1hZ2UyRCA6XG4gICAgICAgICB0ZXhUYXJnZXRcbiAgICAgIC0+IGludFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHNpemVpXG4gICAgICAtPiBzaXplaVxuICAgICAgLT4gaW50XG4gICAgICAtPiAjVHlwZWRfYXJyYXkuYXJyYXlCdWZmZXJWaWV3IHRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNvbXByZXNzZWRUZXhTdWJJbWFnZTJEIDpcbiAgICAgICAgIHRleFRhcmdldFxuICAgICAgLT4gaW50XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IGludFxuICAgICAgLT4gc2l6ZWlcbiAgICAgIC0+IHNpemVpXG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gI1R5cGVkX2FycmF5LmFycmF5QnVmZmVyVmlldyB0XG4gICAgICAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjb3B5VGV4SW1hZ2UyRCA6XG4gICAgICB0ZXhUYXJnZXQgLT4gaW50IC0+IHBpeGVsRm9ybWF0IC0+IGludCAtPiBpbnQgLT4gc2l6ZWkgLT4gc2l6ZWkgLT4gaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNvcHlUZXhTdWJJbWFnZTJEIDpcbiAgICAgIHRleFRhcmdldCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IHNpemVpIC0+IHNpemVpIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVRleHR1cmUgOiB0ZXh0dXJlIHQgbWV0aFxuXG4gICAgbWV0aG9kIGRlbGV0ZVRleHR1cmUgOiB0ZXh0dXJlIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ2VuZXJhdGVNaXBtYXAgOiB0ZXhUYXJnZXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VGV4UGFyYW1ldGVyIDogdGV4VGFyZ2V0IC0+ICdhIHRleFBhcmFtIC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCBpc1RleHR1cmUgOiB0ZXh0dXJlIHQgLT4gYm9vbCB0IG1ldGhcblxuICAgIG1ldGhvZCB0ZXhJbWFnZTJEX25ldyA6XG4gICAgICAgICB0ZXhUYXJnZXRcbiAgICAgIC0+IGludFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHNpemVpXG4gICAgICAtPiBzaXplaVxuICAgICAgLT4gaW50XG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gcGl4ZWxUeXBlXG4gICAgICAtPiB2b2lkIG9wdFxuICAgICAgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdGV4SW1hZ2UyRF9mcm9tVmlldyA6XG4gICAgICAgICB0ZXhUYXJnZXRcbiAgICAgIC0+IGludFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHNpemVpXG4gICAgICAtPiBzaXplaVxuICAgICAgLT4gaW50XG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gcGl4ZWxUeXBlXG4gICAgICAtPiAjVHlwZWRfYXJyYXkuYXJyYXlCdWZmZXJWaWV3IHRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRleEltYWdlMkRfZnJvbUltYWdlRGF0YSA6XG4gICAgICAgICB0ZXhUYXJnZXRcbiAgICAgIC0+IGludFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiBwaXhlbFR5cGVcbiAgICAgIC0+IERvbV9odG1sLmltYWdlRGF0YSB0XG4gICAgICAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB0ZXhJbWFnZTJEX2Zyb21JbWFnZSA6XG4gICAgICAgICB0ZXhUYXJnZXRcbiAgICAgIC0+IGludFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiBwaXhlbFR5cGVcbiAgICAgIC0+IERvbV9odG1sLmltYWdlRWxlbWVudCB0XG4gICAgICAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB0ZXhJbWFnZTJEX2Zyb21DYW52YXMgOlxuICAgICAgICAgdGV4VGFyZ2V0XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gcGl4ZWxUeXBlXG4gICAgICAtPiBEb21faHRtbC5jYW52YXNFbGVtZW50IHRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRleEltYWdlMkRfZnJvbVZpZGVvIDpcbiAgICAgICAgIHRleFRhcmdldFxuICAgICAgLT4gaW50XG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHBpeGVsVHlwZVxuICAgICAgLT4gRG9tX2h0bWwudmlkZW9FbGVtZW50IHRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgKCoge1tcbiAgICAgICAgbWV0aG9kIHRleFBhcmFtZXRlcmYgOiB0ZXhUYXJnZXQgLT4gdGV4UGFyYW0gLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG4gICAgICAgXX1cbiAgICAqKVxuICAgIG1ldGhvZCB0ZXhQYXJhbWV0ZXJpIDogdGV4VGFyZ2V0IC0+ICdhIHRleFBhcmFtIC0+ICdhIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRleFN1YkltYWdlMkRfZnJvbVZpZXcgOlxuICAgICAgICAgdGV4VGFyZ2V0XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IGludFxuICAgICAgLT4gaW50XG4gICAgICAtPiBzaXplaVxuICAgICAgLT4gc2l6ZWlcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiBwaXhlbFR5cGVcbiAgICAgIC0+ICNUeXBlZF9hcnJheS5hcnJheUJ1ZmZlclZpZXcgdFxuICAgICAgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdGV4U3ViSW1hZ2UyRF9mcm9tSW1hZ2VEYXRhIDpcbiAgICAgICAgIHRleFRhcmdldFxuICAgICAgLT4gaW50XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IGludFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHBpeGVsVHlwZVxuICAgICAgLT4gRG9tX2h0bWwuaW1hZ2VEYXRhIHRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRleFN1YkltYWdlMkRfZnJvbUltYWdlIDpcbiAgICAgICAgIHRleFRhcmdldFxuICAgICAgLT4gaW50XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IGludFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHBpeGVsVHlwZVxuICAgICAgLT4gRG9tX2h0bWwuaW1hZ2VFbGVtZW50IHRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRleFN1YkltYWdlMkRfZnJvbUNhbnZhcyA6XG4gICAgICAgICB0ZXhUYXJnZXRcbiAgICAgIC0+IGludFxuICAgICAgLT4gaW50XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiBwaXhlbFR5cGVcbiAgICAgIC0+IERvbV9odG1sLmNhbnZhc0VsZW1lbnQgdFxuICAgICAgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdGV4U3ViSW1hZ2UyRF9mcm9tVmlkZW8gOlxuICAgICAgICAgdGV4VGFyZ2V0XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IGludFxuICAgICAgLT4gaW50XG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gcGl4ZWxUeXBlXG4gICAgICAtPiBEb21faHRtbC52aWRlb0VsZW1lbnQgdFxuICAgICAgLT4gdW5pdCBtZXRoXG5cbiAgICAoKiogNS4xMy45IFByb2dyYW1zIGFuZCBTaGFkZXJzICopXG5cbiAgICBtZXRob2QgYXR0YWNoU2hhZGVyIDogcHJvZ3JhbSB0IC0+IHNoYWRlciB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJpbmRBdHRyaWJMb2NhdGlvbiA6IHByb2dyYW0gdCAtPiB1aW50IC0+IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNvbXBpbGVTaGFkZXIgOiBzaGFkZXIgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVQcm9ncmFtIDogcHJvZ3JhbSB0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTaGFkZXIgOiBzaGFkZXJUeXBlIC0+IHNoYWRlciB0IG1ldGhcblxuICAgIG1ldGhvZCBkZWxldGVQcm9ncmFtIDogcHJvZ3JhbSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRlbGV0ZVNoYWRlciA6IHNoYWRlciB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRldGFjaFNoYWRlciA6IHByb2dyYW0gdCAtPiBzaGFkZXIgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRBdHRhY2hlZFNoYWRlcnMgOiBwcm9ncmFtIHQgLT4gc2hhZGVyIHQganNfYXJyYXkgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0UHJvZ3JhbVBhcmFtZXRlciA6ICdhLiBwcm9ncmFtIHQgLT4gJ2EgcHJvZ3JhbVBhcmFtIC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCBnZXRQcm9ncmFtSW5mb0xvZyA6IHByb2dyYW0gdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0U2hhZGVyUGFyYW1ldGVyIDogJ2EuIHNoYWRlciB0IC0+ICdhIHNoYWRlclBhcmFtIC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCBnZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQgOlxuICAgICAgc2hhZGVyVHlwZSAtPiBzaGFkZXJQcmVjaXNpb25UeXBlIC0+IHNoYWRlclByZWNpc2lvbkZvcm1hdCB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRTaGFkZXJJbmZvTG9nIDogc2hhZGVyIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFNoYWRlclNvdXJjZSA6IHNoYWRlciB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCBpc1Byb2dyYW0gOiBwcm9ncmFtIHQgLT4gYm9vbCB0IG1ldGhcblxuICAgIG1ldGhvZCBpc1NoYWRlciA6IHNoYWRlciB0IC0+IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2QgbGlua1Byb2dyYW0gOiBwcm9ncmFtIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2hhZGVyU291cmNlIDogc2hhZGVyIHQgLT4ganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdXNlUHJvZ3JhbSA6IHByb2dyYW0gdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB2YWxpZGF0ZVByb2dyYW0gOiBwcm9ncmFtIHQgLT4gdW5pdCBtZXRoXG5cbiAgICAoKiogNS4xMy4xMCBVbmlmb3JtcyBhbmQgYXR0cmlidXRlcyAqKVxuXG4gICAgbWV0aG9kIGRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheSA6IHVpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZW5hYmxlVmVydGV4QXR0cmliQXJyYXkgOiB1aW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEFjdGl2ZUF0dHJpYiA6IHByb2dyYW0gdCAtPiB1aW50IC0+IGFjdGl2ZUluZm8gdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0QWN0aXZlVW5pZm9ybSA6IHByb2dyYW0gdCAtPiB1aW50IC0+IGFjdGl2ZUluZm8gdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0QXR0cmliTG9jYXRpb24gOiBwcm9ncmFtIHQgLT4ganNfc3RyaW5nIHQgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRVbmlmb3JtIDogJ2EgJ2IuIHByb2dyYW0gdCAtPiAnYSB1bmlmb3JtTG9jYXRpb24gdCAtPiAnYiBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VW5pZm9ybUxvY2F0aW9uIDogJ2EuIHByb2dyYW0gdCAtPiBqc19zdHJpbmcgdCAtPiAnYSB1bmlmb3JtTG9jYXRpb24gdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VmVydGV4QXR0cmliIDogJ2EuIHVpbnQgLT4gJ2EgdmVydGV4QXR0cmliUGFyYW0gLT4gJ2EgbWV0aFxuXG4gICAgbWV0aG9kIGdldFZlcnRleEF0dHJpYk9mZnNldCA6IHVpbnQgLT4gdmVydGV4QXR0cmliUG9pbnRlclBhcmFtIC0+IHNpemVpcHRyIG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtMWYgOiBmbG9hdCB1bmlmb3JtTG9jYXRpb24gdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtMWZ2X3R5cGVkIDpcbiAgICAgIGZsb2F0IHVuaWZvcm1Mb2NhdGlvbiB0IC0+IFR5cGVkX2FycmF5LmZsb2F0MzJBcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm0xZnYgOiBmbG9hdCB1bmlmb3JtTG9jYXRpb24gdCAtPiBmbG9hdCBqc19hcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm0xaSA6IGludCB1bmlmb3JtTG9jYXRpb24gdCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTFpdl90eXBlZCA6XG4gICAgICBpbnQgdW5pZm9ybUxvY2F0aW9uIHQgLT4gVHlwZWRfYXJyYXkuaW50MzJBcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm0xaXYgOiBpbnQgdW5pZm9ybUxvY2F0aW9uIHQgLT4gaW50IGpzX2FycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTJmIDogWyBgdmVjMiBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm0yZnZfdHlwZWQgOlxuICAgICAgWyBgdmVjMiBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IFR5cGVkX2FycmF5LmZsb2F0MzJBcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm0yZnYgOiBbIGB2ZWMyIF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gZmxvYXQganNfYXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtMmkgOiBbIGBpdmVjMiBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGludCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTJpdiA6IFsgYGl2ZWMyIF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gaW50IGpzX2FycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTJpdl90eXBlZCA6XG4gICAgICBbIGBpdmVjMiBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IFR5cGVkX2FycmF5LmludDMyQXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtM2YgOiBbIGB2ZWMzIF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTNmdl90eXBlZCA6XG4gICAgICBbIGB2ZWMzIF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gVHlwZWRfYXJyYXkuZmxvYXQzMkFycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTNmdiA6IFsgYHZlYzMgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBmbG9hdCBqc19hcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm0zaSA6IFsgYGl2ZWMzIF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTNpdiA6IFsgYGl2ZWMzIF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gaW50IGpzX2FycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTNpdl90eXBlZCA6XG4gICAgICBbIGBpdmVjMyBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IFR5cGVkX2FycmF5LmludDMyQXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtNGYgOlxuICAgICAgWyBgdmVjNCBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm00ZnZfdHlwZWQgOlxuICAgICAgWyBgdmVjNCBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IFR5cGVkX2FycmF5LmZsb2F0MzJBcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm00ZnYgOiBbIGB2ZWM0IF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gZmxvYXQganNfYXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtNGkgOlxuICAgICAgWyBgaXZlYzQgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTRpdiA6IFsgYGl2ZWM0IF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gaW50IGpzX2FycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTRpdl90eXBlZCA6XG4gICAgICBbIGBpdmVjNCBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IFR5cGVkX2FycmF5LmludDMyQXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtTWF0cml4MmZ2IDpcbiAgICAgIFsgYG1hdDIgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBib29sIHQgLT4gZmxvYXQganNfYXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtTWF0cml4MmZ2X3R5cGVkIDpcbiAgICAgIFsgYG1hdDIgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBib29sIHQgLT4gVHlwZWRfYXJyYXkuZmxvYXQzMkFycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybU1hdHJpeDNmdiA6XG4gICAgICBbIGBtYXQzIF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gYm9vbCB0IC0+IGZsb2F0IGpzX2FycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybU1hdHJpeDNmdl90eXBlZCA6XG4gICAgICBbIGBtYXQzIF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gYm9vbCB0IC0+IFR5cGVkX2FycmF5LmZsb2F0MzJBcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm1NYXRyaXg0ZnYgOlxuICAgICAgWyBgbWF0NCBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGJvb2wgdCAtPiBmbG9hdCBqc19hcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm1NYXRyaXg0ZnZfdHlwZWQgOlxuICAgICAgWyBgbWF0NCBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGJvb2wgdCAtPiBUeXBlZF9hcnJheS5mbG9hdDMyQXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB2ZXJ0ZXhBdHRyaWIxZiA6IHVpbnQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdmVydGV4QXR0cmliMWZ2IDogdWludCAtPiBmbG9hdCBqc19hcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHZlcnRleEF0dHJpYjFmdl90eXBlZCA6IHVpbnQgLT4gVHlwZWRfYXJyYXkuZmxvYXQzMkFycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdmVydGV4QXR0cmliMmYgOiB1aW50IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHZlcnRleEF0dHJpYjJmdiA6IHVpbnQgLT4gZmxvYXQganNfYXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB2ZXJ0ZXhBdHRyaWIyZnZfdHlwZWQgOiB1aW50IC0+IFR5cGVkX2FycmF5LmZsb2F0MzJBcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHZlcnRleEF0dHJpYjNmIDogdWludCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB2ZXJ0ZXhBdHRyaWIzZnYgOiB1aW50IC0+IGZsb2F0IGpzX2FycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdmVydGV4QXR0cmliM2Z2X3R5cGVkIDogdWludCAtPiBUeXBlZF9hcnJheS5mbG9hdDMyQXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB2ZXJ0ZXhBdHRyaWI0ZiA6IHVpbnQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdmVydGV4QXR0cmliNGZ2IDogdWludCAtPiBmbG9hdCBqc19hcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHZlcnRleEF0dHJpYjRmdl90eXBlZCA6IHVpbnQgLT4gVHlwZWRfYXJyYXkuZmxvYXQzMkFycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdmVydGV4QXR0cmliUG9pbnRlciA6XG4gICAgICB1aW50IC0+IGludCAtPiBkYXRhVHlwZSAtPiBib29sIHQgLT4gc2l6ZWkgLT4gaW50cHRyIC0+IHVuaXQgbWV0aFxuXG4gICAgKCoqIDUuMTMuMTEgV3JpdGluZyB0byB0aGUgZHJhd2luZyBidWZmZXIgKilcblxuICAgIG1ldGhvZCBjbGVhciA6IGNsZWFyQnVmZmVyTWFzayAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkcmF3QXJyYXlzIDogYmVnaW5Nb2RlIC0+IGludCAtPiBzaXplaSAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkcmF3RWxlbWVudHMgOiBiZWdpbk1vZGUgLT4gc2l6ZWkgLT4gZGF0YVR5cGUgLT4gaW50cHRyIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGZpbmlzaCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGZsdXNoIDogdW5pdCBtZXRoXG5cbiAgICAoKiogNS4xMy4xMiBSZWFkaW5nIGJhY2sgcGl4ZWxzICopXG5cbiAgICBtZXRob2QgcmVhZFBpeGVscyA6XG4gICAgICAgICBpbnRcbiAgICAgIC0+IGludFxuICAgICAgLT4gc2l6ZWlcbiAgICAgIC0+IHNpemVpXG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gcGl4ZWxUeXBlXG4gICAgICAtPiAjVHlwZWRfYXJyYXkuYXJyYXlCdWZmZXJWaWV3IHRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgKCoqIDUuMTMuMTMgRGV0ZWN0aW5nIGNvbnRleHQgbG9zdCBldmVudHMgKilcblxuICAgIG1ldGhvZCBpc0NvbnRleHRMb3N0IDogYm9vbCB0IG1ldGhcblxuICAgICgqKiA1LjEzLjE0IERldGVjdGluZyBhbmQgZW5hYmxpbmcgZXh0ZW5zaW9ucyAqKVxuXG4gICAgbWV0aG9kIGdldFN1cHBvcnRlZEV4dGVuc2lvbnMgOiBqc19zdHJpbmcgdCBqc19hcnJheSB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRFeHRlbnNpb24gOiAnYS4ganNfc3RyaW5nIHQgLT4gJ2EgdCBvcHQgbWV0aFxuXG4gICAgKCogVW50eXBlZCEgKilcbiAgICAoKiogQ29uc3RhbnRzICopXG5cbiAgICBtZXRob2QgX0RFUFRIX0JVRkZFUl9CSVRfIDogY2xlYXJCdWZmZXJNYXNrIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9CVUZGRVJfQklUXyA6IGNsZWFyQnVmZmVyTWFzayByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NPTE9SX0JVRkZFUl9CSVRfIDogY2xlYXJCdWZmZXJNYXNrIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUE9JTlRTIDogYmVnaW5Nb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTElORVMgOiBiZWdpbk1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9MSU5FX0xPT1BfIDogYmVnaW5Nb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTElORV9TVFJJUF8gOiBiZWdpbk1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9UUklBTkdMRVMgOiBiZWdpbk1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9UUklBTkdMRV9TVFJJUF8gOiBiZWdpbk1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9UUklBTkdMRV9GQU5fIDogYmVnaW5Nb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfWkVSTyA6IGJsZW5kaW5nRmFjdG9yIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfT05FIDogYmxlbmRpbmdGYWN0b3IgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TUkNfQ09MT1JfIDogYmxlbmRpbmdGYWN0b3IgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9PTkVfTUlOVVNfU1JDX0NPTE9SXyA6IGJsZW5kaW5nRmFjdG9yIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1JDX0FMUEhBXyA6IGJsZW5kaW5nRmFjdG9yIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfT05FX01JTlVTX1NSQ19BTFBIQV8gOiBibGVuZGluZ0ZhY3RvciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RTVF9BTFBIQV8gOiBibGVuZGluZ0ZhY3RvciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX09ORV9NSU5VU19EU1RfQUxQSEFfIDogYmxlbmRpbmdGYWN0b3IgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9EU1RfQ09MT1JfIDogYmxlbmRpbmdGYWN0b3IgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9PTkVfTUlOVVNfRFNUX0NPTE9SXyA6IGJsZW5kaW5nRmFjdG9yIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1JDX0FMUEhBX1NBVFVSQVRFXyA6IGJsZW5kaW5nRmFjdG9yIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlVOQ19BRERfIDogYmxlbmRNb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlVOQ19TVUJUUkFDVF8gOiBibGVuZE1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GVU5DX1JFVkVSU0VfU1VCVFJBQ1RfIDogYmxlbmRNb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQ09OU1RBTlRfQ09MT1JfIDogYmxlbmRNb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfT05FX01JTlVTX0NPTlNUQU5UX0NPTE9SXyA6IGJsZW5kTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NPTlNUQU5UX0FMUEhBXyA6IGJsZW5kTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX09ORV9NSU5VU19DT05TVEFOVF9BTFBIQV8gOiBibGVuZE1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9BUlJBWV9CVUZGRVJfIDogYnVmZmVyVGFyZ2V0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRUxFTUVOVF9BUlJBWV9CVUZGRVJfIDogYnVmZmVyVGFyZ2V0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RSRUFNX0RSQVdfIDogYnVmZmVyVXNhZ2UgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEFUSUNfRFJBV18gOiBidWZmZXJVc2FnZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RZTkFNSUNfRFJBV18gOiBidWZmZXJVc2FnZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZST05UIDogY3VsbEZhY2VNb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQkFDSyA6IGN1bGxGYWNlTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZST05UX0FORF9CQUNLXyA6IGN1bGxGYWNlTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NVTExfRkFDRV8gOiBlbmFibGVDYXAgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CTEVORCA6IGVuYWJsZUNhcCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RJVEhFUiA6IGVuYWJsZUNhcCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfVEVTVF8gOiBlbmFibGVDYXAgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ERVBUSF9URVNUXyA6IGVuYWJsZUNhcCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NDSVNTT1JfVEVTVF8gOiBlbmFibGVDYXAgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9QT0xZR09OX09GRlNFVF9GSUxMXyA6IGVuYWJsZUNhcCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NBTVBMRV9BTFBIQV9UT19DT1ZFUkFHRV8gOiBlbmFibGVDYXAgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TQU1QTEVfQ09WRVJBR0VfIDogZW5hYmxlQ2FwIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTk9fRVJST1JfIDogZXJyb3JDb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfSU5WQUxJRF9FTlVNXyA6IGVycm9yQ29kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0lOVkFMSURfVkFMVUVfIDogZXJyb3JDb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfSU5WQUxJRF9PUEVSQVRJT05fIDogZXJyb3JDb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfT1VUX09GX01FTU9SWV8gOiBlcnJvckNvZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9DT05URVhUX0xPU1RfV0VCR0xfIDogZXJyb3JDb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT05fIDogZXJyb3JDb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQ1cgOiBmcm9udEZhY2VEaXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9DQ1cgOiBmcm9udEZhY2VEaXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ET05UX0NBUkVfIDogaGludE1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GQVNURVNUIDogaGludE1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9OSUNFU1QgOiBoaW50TW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0dFTkVSQVRFX01JUE1BUF9ISU5UXyA6IGhpbnRUYXJnZXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CTEVORF9FUVVBVElPTl8gOiBibGVuZE1vZGUgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQkxFTkRfRVFVQVRJT05fUkdCXyA6IGJsZW5kTW9kZSBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CTEVORF9FUVVBVElPTl9BTFBIQV8gOiBibGVuZE1vZGUgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQkxFTkRfRFNUX1JHQl8gOiBibGVuZGluZ0ZhY3RvciBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CTEVORF9TUkNfUkdCXyA6IGJsZW5kaW5nRmFjdG9yIHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JMRU5EX0RTVF9BTFBIQV8gOiBibGVuZGluZ0ZhY3RvciBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CTEVORF9TUkNfQUxQSEFfIDogYmxlbmRpbmdGYWN0b3IgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQkxFTkRfQ09MT1JfIDogVHlwZWRfYXJyYXkuZmxvYXQzMkFycmF5IHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQVJSQVlfQlVGRkVSX0JJTkRJTkdfIDogYnVmZmVyIHQgb3B0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0VMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkdfIDogYnVmZmVyIHQgb3B0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NVTExfRkFDRV9QQVJBTSA6IGJvb2wgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CTEVORF9QQVJBTSA6IGJvb2wgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ESVRIRVJfUEFSQU0gOiBib29sIHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9URVNUX1BBUkFNIDogYm9vbCB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RFUFRIX1RFU1RfUEFSQU0gOiBib29sIHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU0NJU1NPUl9URVNUX1BBUkFNIDogYm9vbCB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1BPTFlHT05fT0ZGU0VUX0ZJTExfUEFSQU0gOiBib29sIHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTElORV9XSURUSF8gOiBmbG9hdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9BTElBU0VEX1BPSU5UX1NJWkVfUkFOR0VfIDogVHlwZWRfYXJyYXkuZmxvYXQzMkFycmF5IHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQUxJQVNFRF9MSU5FX1dJRFRIX1JBTkdFXyA6IFR5cGVkX2FycmF5LmZsb2F0MzJBcnJheSB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NVTExfRkFDRV9NT0RFXyA6IGN1bGxGYWNlTW9kZSBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GUk9OVF9GQUNFXyA6IGZyb250RmFjZURpciBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ERVBUSF9SQU5HRV8gOiBUeXBlZF9hcnJheS5mbG9hdDMyQXJyYXkgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ERVBUSF9XUklURU1BU0tfIDogYm9vbCB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RFUFRIX0NMRUFSX1ZBTFVFXyA6IGZsb2F0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RFUFRIX0ZVTkNfIDogZGVwdGhGdW5jdGlvbiBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX0NMRUFSX1ZBTFVFXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX0ZVTkNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfRkFJTF8gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9QQVNTX0RFUFRIX0ZBSUxfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfUEFTU19ERVBUSF9QQVNTXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX1JFRl8gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9WQUxVRV9NQVNLXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX1dSSVRFTUFTS18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9CQUNLX0ZVTkNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfQkFDS19GQUlMXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX0JBQ0tfUEFTU19ERVBUSF9GQUlMXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX0JBQ0tfUEFTU19ERVBUSF9QQVNTXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX0JBQ0tfUkVGXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX0JBQ0tfVkFMVUVfTUFTS18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9CQUNLX1dSSVRFTUFTS18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVklFV1BPUlQgOiBUeXBlZF9hcnJheS5pbnQzMkFycmF5IHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU0NJU1NPUl9CT1hfIDogVHlwZWRfYXJyYXkuaW50MzJBcnJheSB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NPTE9SX0NMRUFSX1ZBTFVFXyA6IFR5cGVkX2FycmF5LmZsb2F0MzJBcnJheSB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NPTE9SX1dSSVRFTUFTS18gOiBib29sIHQganNfYXJyYXkgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9VTlBBQ0tfQUxJR05NRU5UX1BBUkFNIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1BBQ0tfQUxJR05NRU5UXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9NQVhfVEVYVFVSRV9TSVpFXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9NQVhfVklFV1BPUlRfRElNU18gOiBUeXBlZF9hcnJheS5pbnQzMkFycmF5IHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1VCUElYRUxfQklUU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkVEX0JJVFNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0dSRUVOX0JJVFNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JMVUVfQklUU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQUxQSEFfQklUU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfREVQVEhfQklUU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9CSVRTXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9QT0xZR09OX09GRlNFVF9VTklUU18gOiBmbG9hdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9QT0xZR09OX09GRlNFVF9GQUNUT1JfIDogZmxvYXQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRV9CSU5ESU5HXzJEXyA6IHRleHR1cmUgdCBvcHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQXyA6IHRleHR1cmUgdCBvcHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU0FNUExFX0JVRkZFUlNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NBTVBMRVNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NBTVBMRV9DT1ZFUkFHRV9WQUxVRV8gOiBmbG9hdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TQU1QTEVfQ09WRVJBR0VfSU5WRVJUXyA6IGJvb2wgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9OVU1fQ09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTXyA6XG4gICAgICBUeXBlZF9hcnJheS51aW50MzJBcnJheSB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0dFTkVSQVRFX01JUE1BUF9ISU5UX1BBUkFNXyA6IGhpbnRNb2RlIHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JVRkZFUl9TSVpFXyA6IGludCBidWZmZXJQYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CVUZGRVJfVVNBR0VfIDogYnVmZmVyVXNhZ2UgYnVmZmVyUGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQllURSA6IGRhdGFUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVU5TSUdORURfQllURV9EVCA6IGRhdGFUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU0hPUlQgOiBkYXRhVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1VOU0lHTkVEX1NIT1JUXyA6IGRhdGFUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfSU5UIDogZGF0YVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9VTlNJR05FRF9JTlRfIDogZGF0YVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GTE9BVCA6IGRhdGFUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVU5TSUdORURfQllURV8gOiBwaXhlbFR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9VTlNJR05FRF9TSE9SVF80XzRfNF80XyA6IHBpeGVsVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1VOU0lHTkVEX1NIT1JUXzVfNV81XzFfIDogcGl4ZWxUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVU5TSUdORURfU0hPUlRfNV82XzVfIDogcGl4ZWxUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQUxQSEEgOiBwaXhlbEZvcm1hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JHQiA6IHBpeGVsRm9ybWF0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkdCQSA6IHBpeGVsRm9ybWF0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTFVNSU5BTkNFIDogcGl4ZWxGb3JtYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9MVU1JTkFOQ0VfQUxQSEFfIDogcGl4ZWxGb3JtYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX0lOREVYXyA6IHBpeGVsRm9ybWF0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfREVQVEhfU1RFTkNJTF8gOiBwaXhlbEZvcm1hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RFUFRIX0NPTVBPTkVOVF8gOiBwaXhlbEZvcm1hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZSQUdNRU5UX1NIQURFUl8gOiBzaGFkZXJUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVkVSVEVYX1NIQURFUl8gOiBzaGFkZXJUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTUFYX1ZFUlRFWF9BVFRSSUJTXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9NQVhfVkVSVEVYX1VOSUZPUk1fVkVDVE9SU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTUFYX1ZBUllJTkdfVkVDVE9SU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTUFYX0NPTUJJTkVEX1RFWFRVUkVfSU1BR0VfVU5JVFNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX01BWF9WRVJURVhfVEVYVFVSRV9JTUFHRV9VTklUU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTUFYX1RFWFRVUkVfSU1BR0VfVU5JVFNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX01BWF9GUkFHTUVOVF9VTklGT1JNX1ZFQ1RPUlNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NIQURFUl9UWVBFXyA6IHNoYWRlclR5cGUgc2hhZGVyUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ERUxFVEVfU1RBVFVTXyA6IGJvb2wgdCBzaGFkZXJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NPTVBJTEVfU1RBVFVTXyA6IGJvb2wgdCBzaGFkZXJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RFTEVURV9TVEFUVVNfUFJPRyA6IGJvb2wgdCBwcm9ncmFtUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9MSU5LX1NUQVRVU18gOiBib29sIHQgcHJvZ3JhbVBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVkFMSURBVEVfU1RBVFVTXyA6IGJvb2wgdCBwcm9ncmFtUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9BVFRBQ0hFRF9TSEFERVJTXyA6IGludCBwcm9ncmFtUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9BQ1RJVkVfVU5JRk9STVNfIDogaW50IHByb2dyYW1QYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0FDVElWRV9BVFRSSUJVVEVTXyA6IGludCBwcm9ncmFtUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TSEFESU5HX0xBTkdVQUdFX1ZFUlNJT05fIDoganNfc3RyaW5nIHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQ1VSUkVOVF9QUk9HUkFNXyA6IHByb2dyYW0gdCBvcHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVkVORE9SIDoganNfc3RyaW5nIHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkVOREVSRVIgOiBqc19zdHJpbmcgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9WRVJTSU9OIDoganNfc3RyaW5nIHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTUFYX0NVQkVfTUFQX1RFWFRVUkVfU0laRV8gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQUNUSVZFX1RFWFRVUkVfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZSQU1FQlVGRkVSX0JJTkRJTkdfIDogZnJhbWVidWZmZXIgdCBvcHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkVOREVSQlVGRkVSX0JJTkRJTkdfIDogcmVuZGVyYnVmZmVyIHQgb3B0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX01BWF9SRU5ERVJCVUZGRVJfU0laRSA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ORVZFUiA6IGRlcHRoRnVuY3Rpb24gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9MRVNTIDogZGVwdGhGdW5jdGlvbiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0VRVUFMIDogZGVwdGhGdW5jdGlvbiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0xFUVVBTCA6IGRlcHRoRnVuY3Rpb24gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9HUkVBVEVSIDogZGVwdGhGdW5jdGlvbiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX05PVEVRVUFMIDogZGVwdGhGdW5jdGlvbiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0dFUVVBTCA6IGRlcHRoRnVuY3Rpb24gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9BTFdBWVMgOiBkZXB0aEZ1bmN0aW9uIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfS0VFUCA6IHN0ZW5jaWxPcCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JFUExBQ0UgOiBzdGVuY2lsT3AgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9JTkNSIDogc3RlbmNpbE9wIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfREVDUiA6IHN0ZW5jaWxPcCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0lOVkVSVCA6IHN0ZW5jaWxPcCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0lOQ1JfV1JBUF8gOiBzdGVuY2lsT3AgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ERUNSX1dSQVBfIDogc3RlbmNpbE9wIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfWkVST18gOiBzdGVuY2lsT3AgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ORUFSRVNUIDogdGV4RmlsdGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTElORUFSIDogdGV4RmlsdGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTkVBUkVTVF9NSVBNQVBfTkVBUkVTVF8gOiB0ZXhGaWx0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9MSU5FQVJfTUlQTUFQX05FQVJFU1RfIDogdGV4RmlsdGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTkVBUkVTVF9NSVBNQVBfTElORUFSXyA6IHRleEZpbHRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0xJTkVBUl9NSVBNQVBfTElORUFSXyA6IHRleEZpbHRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkVfTUFHX0ZJTFRFUl8gOiB0ZXhGaWx0ZXIgdGV4UGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFX01JTl9GSUxURVJfIDogdGV4RmlsdGVyIHRleFBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRV9XUkFQX1NfIDogd3JhcE1vZGUgdGV4UGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFX1dSQVBfVF8gOiB3cmFwTW9kZSB0ZXhQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX05PTkVfT1QgOiBvYmplY3RUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRV9PVCA6IG9iamVjdFR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SRU5ERVJCVUZGRVJfT1QgOiBvYmplY3RUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRV8yRF8gOiB0ZXhUYXJnZXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFX0NVQkVfTUFQXyA6IHRleFRhcmdldCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWF8gOiB0ZXhUYXJnZXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1hfIDogdGV4VGFyZ2V0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9ZXyA6IHRleFRhcmdldCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWV8gOiB0ZXhUYXJnZXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1pfIDogdGV4VGFyZ2V0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aXyA6IHRleFRhcmdldCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUwIDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMSA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTIgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUzIDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFNCA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTUgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkU2IDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFNyA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTggOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkU5IDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMTAgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUxMSA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTEyIDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMTMgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUxNCA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTE1IDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMTYgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUxNyA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTE4IDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMTkgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUyMCA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTIxIDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMjIgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUyMyA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTI0IDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMjUgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUyNiA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTI3IDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMjggOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUyOSA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTMwIDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMzEgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JFUEVBVCA6IHdyYXBNb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQ0xBTVBfVE9fRURHRV8gOiB3cmFwTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX01JUlJPUkVEX1JFUEVBVF8gOiB3cmFwTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZMT0FUXyA6IHVuaWZvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRkxPQVRfVkVDMl8gOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZMT0FUX1ZFQzNfIDogdW5pZm9ybVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GTE9BVF9WRUM0XyA6IHVuaWZvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfSU5UXyA6IHVuaWZvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfSU5UX1ZFQzJfIDogdW5pZm9ybVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9JTlRfVkVDM18gOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0lOVF9WRUM0XyA6IHVuaWZvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQk9PTF8gOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JPT0xfVkVDMl8gOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JPT0xfVkVDM18gOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JPT0xfVkVDNF8gOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZMT0FUX01BVDJfIDogdW5pZm9ybVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GTE9BVF9NQVQzXyA6IHVuaWZvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRkxPQVRfTUFUNF8gOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NBTVBMRVJfMkRfIDogdW5pZm9ybVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TQU1QTEVSX0NVQkVfIDogdW5pZm9ybVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9WRVJURVhfQVRUUklCX0FSUkFZX0VOQUJMRURfIDogYm9vbCB0IHZlcnRleEF0dHJpYlBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVkVSVEVYX0FUVFJJQl9BUlJBWV9TSVpFXyA6IGludCB2ZXJ0ZXhBdHRyaWJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1ZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFXyA6IGludCB2ZXJ0ZXhBdHRyaWJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1ZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRV8gOiBpbnQgdmVydGV4QXR0cmliUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9WRVJURVhfQVRUUklCX0FSUkFZX05PUk1BTElaRURfIDogYm9vbCB0IHZlcnRleEF0dHJpYlBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVkVSVEVYX0FUVFJJQl9BUlJBWV9QT0lOVEVSXyA6IHZlcnRleEF0dHJpYlBvaW50ZXJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1ZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJTkRJTkdfIDpcbiAgICAgIGJ1ZmZlciB0IG9wdCB2ZXJ0ZXhBdHRyaWJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NVUlJFTlRfVkVSVEVYX0FUVFJJQl8gOlxuICAgICAgVHlwZWRfYXJyYXkuZmxvYXQzMkFycmF5IHQgdmVydGV4QXR0cmliUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9MT1dfRkxPQVRfIDogc2hhZGVyUHJlY2lzaW9uVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX01FRElVTV9GTE9BVF8gOiBzaGFkZXJQcmVjaXNpb25UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfSElHSF9GTE9BVF8gOiBzaGFkZXJQcmVjaXNpb25UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTE9XX0lOVF8gOiBzaGFkZXJQcmVjaXNpb25UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTUVESVVNX0lOVF8gOiBzaGFkZXJQcmVjaXNpb25UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfSElHSF9JTlRfIDogc2hhZGVyUHJlY2lzaW9uVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZSQU1FQlVGRkVSIDogZmJUYXJnZXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SRU5ERVJCVUZGRVIgOiByYlRhcmdldCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JHQkE0IDogZm9ybWF0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkdCNV9BMV8gOiBmb3JtYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SR0I1NjUgOiBmb3JtYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ERVBUSF9DT01QT05FTlQxNl8gOiBmb3JtYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX0lOREVYOF8gOiBmb3JtYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SRU5ERVJCVUZGRVJfV0lEVEhfIDogaW50IHJlbmRlcmJ1ZmZlclBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkVOREVSQlVGRkVSX0hFSUdIVF8gOiBpbnQgcmVuZGVyYnVmZmVyUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUXyA6IGZvcm1hdCByZW5kZXJidWZmZXJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JFTkRFUkJVRkZFUl9SRURfU0laRV8gOiBpbnQgcmVuZGVyYnVmZmVyUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SRU5ERVJCVUZGRVJfR1JFRU5fU0laRV8gOiBpbnQgcmVuZGVyYnVmZmVyUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SRU5ERVJCVUZGRVJfQkxVRV9TSVpFXyA6IGludCByZW5kZXJidWZmZXJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JFTkRFUkJVRkZFUl9BTFBIQV9TSVpFXyA6IGludCByZW5kZXJidWZmZXJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JFTkRFUkJVRkZFUl9ERVBUSF9TSVpFXyA6IGludCByZW5kZXJidWZmZXJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JFTkRFUkJVRkZFUl9TVEVOQ0lMX1NJWkVfIDogaW50IHJlbmRlcmJ1ZmZlclBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRV8gOiBvYmplY3RUeXBlIGF0dGFjaFBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFNRV9SRU5ERVJCVUZGRVIgOlxuICAgICAgcmVuZGVyYnVmZmVyIHQgYXR0YWNoUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FX1RFWFRVUkUgOlxuICAgICAgdGV4dHVyZSB0IGF0dGFjaFBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xFVkVMXyA6IGludCBhdHRhY2hQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9DVUJFX01BUF9GQUNFXyA6IGludCBhdHRhY2hQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NPTE9SX0FUVEFDSE1FTlQwXyA6IGF0dGFjaG1lbnRQb2ludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RFUFRIX0FUVEFDSE1FTlRfIDogYXR0YWNobWVudFBvaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9BVFRBQ0hNRU5UXyA6IGF0dGFjaG1lbnRQb2ludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RFUFRIX1NURU5DSUxfQVRUQUNITUVOVF8gOiBhdHRhY2htZW50UG9pbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GUkFNRUJVRkZFUl9DT01QTEVURV8gOiBmcmFtZWJ1ZmZlclN0YXR1cyByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVF8gOiBmcmFtZWJ1ZmZlclN0YXR1cyByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5UXyA6IGZyYW1lYnVmZmVyU3RhdHVzIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TXyA6IGZyYW1lYnVmZmVyU3RhdHVzIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlJBTUVCVUZGRVJfVU5TVVBQT1JURURfIDogZnJhbWVidWZmZXJTdGF0dXMgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9VTlBBQ0tfRkxJUF9ZX1dFQkdMX1BBUkFNIDogYm9vbCB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1VOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTF9QQVJBTSA6IGJvb2wgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9VTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMX1BBUkFNIDpcbiAgICAgIGNvbG9yc3BhY2VDb252ZXJzaW9uIHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX05PTkUgOiBjb2xvcnNwYWNlQ29udmVyc2lvbiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JST1dTRVJfREVGQVVMVF9XRUJHTF8gOiBjb2xvcnNwYWNlQ29udmVyc2lvbiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1VOUEFDS19BTElHTk1FTlRfIDogaW50IHBpeGVsU3RvcmVQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1VOUEFDS19GTElQX1lfV0VCR0xfIDogYm9vbCB0IHBpeGVsU3RvcmVQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1VOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTF8gOiBib29sIHQgcGl4ZWxTdG9yZVBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVU5QQUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTF8gOiBpbnQgcGl4ZWxTdG9yZVBhcmFtIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqKiA1LjE0IFdlYkdMQ29udGV4dEV2ZW50ICopXG5cbmNsYXNzIHR5cGUgY29udGV4dEV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBEb21faHRtbC5ldmVudFxuXG4gICAgbWV0aG9kIHN0YXR1c01lc3NhZ2UgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5tb2R1bGUgRXZlbnQgPSBzdHJ1Y3RcbiAgbGV0IHdlYmdsY29udGV4dGxvc3QgPSBEb21faHRtbC5FdmVudC5tYWtlIFwid2ViZ2xjb250ZXh0bG9zdFwiXG5cbiAgbGV0IHdlYmdsY29udGV4dHJlc3RvcmVkID0gRG9tX2h0bWwuRXZlbnQubWFrZSBcIndlYmdsY29udGV4dHJlc3RvcmVkXCJcblxuICBsZXQgd2ViZ2xjb250ZXh0Y3JlYXRpb25lcnJvciA9IERvbV9odG1sLkV2ZW50Lm1ha2UgXCJ3ZWJnbGNvbnRleHRjcmVhdGlvbmVycm9yXCJcbmVuZFxuXG4oKioqKilcblxuY2xhc3MgdHlwZSBjYW52YXNFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGdldENvbnRleHQgOiBqc19zdHJpbmcgdCAtPiByZW5kZXJpbmdDb250ZXh0IHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRDb250ZXh0XyA6IGpzX3N0cmluZyB0IC0+IGNvbnRleHRBdHRyaWJ1dGVzIHQgLT4gcmVuZGVyaW5nQ29udGV4dCB0IG9wdCBtZXRoXG4gIGVuZFxuXG5sZXQgZ2V0Q29udGV4dCAoYyA6IERvbV9odG1sLmNhbnZhc0VsZW1lbnQgdCkgPVxuICBsZXQgYyA6IGNhbnZhc0VsZW1lbnQgdCA9IEpzLlVuc2FmZS5jb2VyY2UgYyBpblxuICBsZXQgY3R4ID0gYyMjZ2V0Q29udGV4dCAoSnMuc3RyaW5nIFwid2ViZ2xcIikgaW5cbiAgaWYgT3B0LnRlc3QgY3R4IHRoZW4gY3R4IGVsc2UgYyAjIyAoZ2V0Q29udGV4dCAoSnMuc3RyaW5nIFwiZXhwZXJpbWVudGFsLXdlYmdsXCIpKVxuXG5sZXQgZ2V0Q29udGV4dFdpdGhBdHRyaWJ1dGVzIChjIDogRG9tX2h0bWwuY2FudmFzRWxlbWVudCB0KSBhdHRyaWJzID1cbiAgbGV0IGMgOiBjYW52YXNFbGVtZW50IHQgPSBKcy5VbnNhZmUuY29lcmNlIGMgaW5cbiAgbGV0IGN0eCA9IGMjI2dldENvbnRleHRfIChKcy5zdHJpbmcgXCJ3ZWJnbFwiKSBhdHRyaWJzIGluXG4gIGlmIE9wdC50ZXN0IGN0eCB0aGVuIGN0eCBlbHNlIGMjI2dldENvbnRleHRfIChKcy5zdHJpbmcgXCJleHBlcmltZW50YWwtd2ViZ2xcIikgYXR0cmlic1xuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxMCBSYXBoYcOrbCBQcm91c3QsIErDqXLDtG1lIFZvdWlsbG9uXG4gKiBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3RcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcbm9wZW4hIEltcG9ydFxuXG50eXBlIHJlZ2V4cCA9IEpzLnJlZ0V4cCBKcy50XG5cbnR5cGUgcmVzdWx0ID0gSnMubWF0Y2hfcmVzdWx0IEpzLnRcblxubGV0IHJlZ2V4cCBzID0gbmV3JWpzIEpzLnJlZ0V4cF93aXRoRmxhZ3MgKEpzLmJ5dGVzdHJpbmcgcykgKEpzLnN0cmluZyBcImdcIilcblxubGV0IHJlZ2V4cF9jYXNlX2ZvbGQgcyA9IG5ldyVqcyBKcy5yZWdFeHBfd2l0aEZsYWdzIChKcy5ieXRlc3RyaW5nIHMpIChKcy5zdHJpbmcgXCJnaVwiKVxuXG5sZXQgcmVnZXhwX3dpdGhfZmxhZyBzIGYgPVxuICBuZXclanMgSnMucmVnRXhwX3dpdGhGbGFncyAoSnMuYnl0ZXN0cmluZyBzKSAoSnMuc3RyaW5nIChcImdcIiBeIGYpKVxuXG5sZXQgYmx1bnRfc3RyX2FycmF5X2dldCBhIGkgPVxuICBKcy50b19ieXRlc3RyaW5nIChKcy5PcHRkZWYuZ2V0IChKcy5hcnJheV9nZXQgYSBpKSAoZnVuICgpIC0+IGFzc2VydCBmYWxzZSkpXG5cbmxldCBzdHJpbmdfbWF0Y2ggciBzIGkgPVxuICByIyMubGFzdEluZGV4IDo9IGk7XG4gIEpzLk9wdC50b19vcHRpb24gKEpzLk9wdC5tYXAgKHIjI2V4ZWMgKEpzLmJ5dGVzdHJpbmcgcykpIEpzLm1hdGNoX3Jlc3VsdClcblxubGV0IHNlYXJjaCByIHMgaSA9XG4gIHIjIy5sYXN0SW5kZXggOj0gaTtcbiAgSnMuT3B0LnRvX29wdGlvblxuICAgIChKcy5PcHQubWFwXG4gICAgICAgKHIjI2V4ZWMgKEpzLmJ5dGVzdHJpbmcgcykpXG4gICAgICAgKGZ1biByZXNfcHJlIC0+XG4gICAgICAgICBsZXQgcmVzID0gSnMubWF0Y2hfcmVzdWx0IHJlc19wcmUgaW5cbiAgICAgICAgIHJlcyMjLmluZGV4LCByZXMpKVxuXG5sZXQgc2VhcmNoX2ZvcndhcmQgPSBzZWFyY2hcblxubGV0IG1hdGNoZWRfc3RyaW5nIHIgPSBibHVudF9zdHJfYXJyYXlfZ2V0IHIgMFxuXG5sZXQgbWF0Y2hlZF9ncm91cCByIGkgPVxuICBKcy5PcHRkZWYudG9fb3B0aW9uIChKcy5PcHRkZWYubWFwIChKcy5hcnJheV9nZXQgciBpKSBKcy50b19ieXRlc3RyaW5nKVxuXG5sZXQgcXVvdGVfcmVwbF9yZSA9IG5ldyVqcyBKcy5yZWdFeHBfd2l0aEZsYWdzIChKcy5zdHJpbmcgXCJbJF1cIikgKEpzLnN0cmluZyBcImdcIilcblxubGV0IHF1b3RlX3JlcGwgcyA9IChKcy5ieXRlc3RyaW5nIHMpIyNyZXBsYWNlIHF1b3RlX3JlcGxfcmUgKEpzLnN0cmluZyBcIiQkJCRcIilcblxubGV0IGdsb2JhbF9yZXBsYWNlIHIgcyBzX2J5ID1cbiAgciMjLmxhc3RJbmRleCA6PSAwO1xuICBKcy50b19ieXRlc3RyaW5nIChKcy5ieXRlc3RyaW5nIHMpICMjIChyZXBsYWNlIHIgKHF1b3RlX3JlcGwgc19ieSkpXG5cbmxldCByZXBsYWNlX2ZpcnN0IHIgcyBzX2J5ID1cbiAgbGV0IGZsYWdzID1cbiAgICBtYXRjaCBKcy50b19ib29sIHIjIy5pZ25vcmVDYXNlLCBKcy50b19ib29sIHIjIy5tdWx0aWxpbmUgd2l0aFxuICAgIHwgZmFsc2UsIGZhbHNlIC0+IEpzLnN0cmluZyBcIlwiXG4gICAgfCBmYWxzZSwgdHJ1ZSAtPiBKcy5zdHJpbmcgXCJtXCJcbiAgICB8IHRydWUsIGZhbHNlIC0+IEpzLnN0cmluZyBcImlcIlxuICAgIHwgdHJ1ZSwgdHJ1ZSAtPiBKcy5zdHJpbmcgXCJtaVwiXG4gIGluXG4gIGxldCByJyA9IG5ldyVqcyBKcy5yZWdFeHBfd2l0aEZsYWdzIHIjIy5zb3VyY2UgZmxhZ3MgaW5cbiAgSnMudG9fYnl0ZXN0cmluZyAoSnMuYnl0ZXN0cmluZyBzKSAjIyAocmVwbGFjZSByJyAocXVvdGVfcmVwbCBzX2J5KSlcblxubGV0IGxpc3Rfb2ZfanNfYXJyYXkgYSA9XG4gIGxldCByZWMgYXV4IGFjY3UgaWR4ID1cbiAgICBpZiBpZHggPCAwIHRoZW4gYWNjdSBlbHNlIGF1eCAoYmx1bnRfc3RyX2FycmF5X2dldCBhIGlkeCA6OiBhY2N1KSAoaWR4IC0gMSlcbiAgaW5cbiAgYXV4IFtdIChhIyMubGVuZ3RoIC0gMSlcblxubGV0IHNwbGl0IHIgcyA9XG4gIHIjIy5sYXN0SW5kZXggOj0gMDtcbiAgbGlzdF9vZl9qc19hcnJheSAoSnMuc3RyX2FycmF5IChKcy5ieXRlc3RyaW5nIHMpICMjIChzcGxpdF9yZWdFeHAgcikpXG5cbmxldCBib3VuZGVkX3NwbGl0IHIgcyBpID1cbiAgciMjLmxhc3RJbmRleCA6PSAwO1xuICBsaXN0X29mX2pzX2FycmF5IChKcy5zdHJfYXJyYXkgKEpzLmJ5dGVzdHJpbmcgcykgIyMgKHNwbGl0X3JlZ0V4cExpbWl0ZWQgciBpKSlcblxuKCogTW9yZSBjb25zdHJ1Y3RvcnMgKilcblxubGV0IHF1b3RlX3JlID0gcmVnZXhwIFwiW1xcXFxdWygpXFxcXFxcXFx8KyouP3t9XiRdXCJcblxubGV0IHF1b3RlIHMgPSBKcy50b19ieXRlc3RyaW5nIChKcy5ieXRlc3RyaW5nIHMpICMjIChyZXBsYWNlIHF1b3RlX3JlIChKcy5zdHJpbmcgXCJcXFxcJCZcIikpXG5cbmxldCByZWdleHBfc3RyaW5nIHMgPSByZWdleHAgKHF1b3RlIHMpXG5cbmxldCByZWdleHBfc3RyaW5nX2Nhc2VfZm9sZCBzID0gcmVnZXhwX2Nhc2VfZm9sZCAocXVvdGUgcylcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTAgUmFwaGHDq2wgUHJvdXN0XG4gKiBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3RcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcbm9wZW4hIEltcG9ydFxuXG4oKiBVcmwgdGFtcGVyaW5nLiAqKVxuXG5sZXQgc3BsaXQgYyBzID0gSnMuc3RyX2FycmF5IChzIyNzcGxpdCAoSnMuc3RyaW5nIChTdHJpbmcubWFrZSAxIGMpKSlcblxubGV0IHNwbGl0XzIgYyBzID1cbiAgbGV0IGluZGV4ID0gcyMjaW5kZXhPZiAoSnMuc3RyaW5nIChTdHJpbmcubWFrZSAxIGMpKSBpblxuICBpZiBpbmRleCA8IDAgdGhlbiBKcy51bmRlZmluZWQgZWxzZSBKcy5kZWYgKHMjI3NsaWNlIDAgaW5kZXgsIHMjI3NsaWNlX2VuZCAoaW5kZXggKyAxKSlcblxuZXhjZXB0aW9uIExvY2FsX2V4blxuXG5sZXQgaW50ZXJydXB0ICgpID0gcmFpc2UgTG9jYWxfZXhuXG5cbigqIHVybCAoQUtBIHBlcmNlbnQpIGVuY29kaW5nL2RlY29kaW5nICopXG5cbmxldCBwbHVzX3JlID0gUmVnZXhwLnJlZ2V4cF9zdHJpbmcgXCIrXCJcblxubGV0IGVzY2FwZV9wbHVzIHMgPSBSZWdleHAuZ2xvYmFsX3JlcGxhY2UgcGx1c19yZSBzIFwiJTJCXCJcblxubGV0IHVuZXNjYXBlX3BsdXMgcyA9IFJlZ2V4cC5nbG9iYWxfcmVwbGFjZSBwbHVzX3JlIHMgXCIgXCJcblxubGV0IHBsdXNfcmVfanNfc3RyaW5nID0gbmV3JWpzIEpzLnJlZ0V4cF93aXRoRmxhZ3MgKEpzLnN0cmluZyBcIlxcXFwrXCIpIChKcy5zdHJpbmcgXCJnXCIpXG5cbmxldCB1bmVzY2FwZV9wbHVzX2pzX3N0cmluZyBzID1cbiAgcGx1c19yZV9qc19zdHJpbmcjIy5sYXN0SW5kZXggOj0gMDtcbiAgcyMjcmVwbGFjZSBwbHVzX3JlX2pzX3N0cmluZyAoSnMuc3RyaW5nIFwiIFwiKVxuXG5sZXQgdXJsZGVjb2RlX2pzX3N0cmluZ19zdHJpbmcgcyA9XG4gIEpzLnRvX2J5dGVzdHJpbmcgKEpzLnVuZXNjYXBlICh1bmVzY2FwZV9wbHVzX2pzX3N0cmluZyBzKSlcblxubGV0IHVybGRlY29kZSBzID0gSnMudG9fYnl0ZXN0cmluZyAoSnMudW5lc2NhcGUgKEpzLmJ5dGVzdHJpbmcgKHVuZXNjYXBlX3BsdXMgcykpKVxuXG4oKmxldCB1cmxlbmNvZGVfanNfc3RyaW5nX3N0cmluZyBzID1cbiAgSnMudG9fYnl0ZXN0cmluZyAoSnMuZXNjYXBlIHMpKilcblxubGV0IHVybGVuY29kZSA/KHdpdGhfcGx1cyA9IHRydWUpIHMgPVxuICBpZiB3aXRoX3BsdXNcbiAgdGhlbiBlc2NhcGVfcGx1cyAoSnMudG9fYnl0ZXN0cmluZyAoSnMuZXNjYXBlIChKcy5ieXRlc3RyaW5nIHMpKSlcbiAgZWxzZSBKcy50b19ieXRlc3RyaW5nIChKcy5lc2NhcGUgKEpzLmJ5dGVzdHJpbmcgcykpXG5cbnR5cGUgaHR0cF91cmwgPVxuICB7IGh1X2hvc3QgOiBzdHJpbmcgICgqKiBUaGUgaG9zdCBwYXJ0IG9mIHRoZSB1cmwuICopXG4gIDsgaHVfcG9ydCA6IGludCAgKCoqIFRoZSBwb3J0IGZvciB0aGUgY29ubmVjdGlvbiBpZiBhbnkuICopXG4gIDsgaHVfcGF0aCA6IHN0cmluZyBsaXN0ICAoKiogVGhlIHBhdGggc3BsaXQgb24gWycvJ10gY2hhcmFjdGVycy4gKilcbiAgOyBodV9wYXRoX3N0cmluZyA6IHN0cmluZyAgKCoqIFRoZSBvcmlnaW5hbCBlbnRpcmUgcGF0aC4gKilcbiAgOyBodV9hcmd1bWVudHMgOiAoc3RyaW5nICogc3RyaW5nKSBsaXN0XG4gICAgICAgICgqKiBBcmd1bWVudHMgYXMgYSBmaWVsZC12YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzb2NpYXRpb24gbGlzdC4qKVxuICA7IGh1X2ZyYWdtZW50IDogc3RyaW5nICAoKiogVGhlIGZyYWdtZW50IHBhcnQgKGFmdGVyIHRoZSBbJyMnXSBjaGFyYWN0ZXIpLiAqKVxuICB9XG4oKiogVGhlIHR5cGUgZm9yIEhUVFAgdXJsLiAqKVxuXG50eXBlIGZpbGVfdXJsID1cbiAgeyBmdV9wYXRoIDogc3RyaW5nIGxpc3RcbiAgOyBmdV9wYXRoX3N0cmluZyA6IHN0cmluZ1xuICA7IGZ1X2FyZ3VtZW50cyA6IChzdHJpbmcgKiBzdHJpbmcpIGxpc3RcbiAgOyBmdV9mcmFnbWVudCA6IHN0cmluZ1xuICB9XG4oKiogVGhlIHR5cGUgZm9yIGxvY2FsIGZpbGUgdXJscy4gKilcblxudHlwZSB1cmwgPVxuICB8IEh0dHAgb2YgaHR0cF91cmxcbiAgfCBIdHRwcyBvZiBodHRwX3VybFxuICB8IEZpbGUgb2YgZmlsZV91cmxcbiAgICAgICgqKiBUaGUgdHlwZSBmb3IgdXJscy4gW0ZpbGVdIGlzIGZvciBsb2NhbCBmaWxlcyBhbmQgW0V4b3RpYyBzXSBpcyBmb3JcbiAgICB1bmtub3duL3Vuc3VwcG9ydGVkIHByb3RvY29scy4gKilcblxuZXhjZXB0aW9uIE5vdF9hbl9odHRwX3Byb3RvY29sXG5cbmxldCBpc19zZWN1cmUgcHJvdF9zdHJpbmcgPVxuICBtYXRjaCBKcy50b19ieXRlc3RyaW5nIHByb3Rfc3RyaW5nIyN0b0xvd2VyQ2FzZSB3aXRoXG4gIHwgXCJodHRwczpcIiB8IFwiaHR0cHNcIiAtPiB0cnVlXG4gIHwgXCJodHRwOlwiIHwgXCJodHRwXCIgLT4gZmFsc2VcbiAgfCBcImZpbGU6XCIgfCBcImZpbGVcIiB8IF8gLT4gcmFpc2UgTm90X2FuX2h0dHBfcHJvdG9jb2xcblxuKCogcG9ydCBudW1iZXIgKilcbmxldCBkZWZhdWx0X2h0dHBfcG9ydCA9IDgwXG5cbmxldCBkZWZhdWx0X2h0dHBzX3BvcnQgPSA0NDNcblxuKCogcGF0aCAqKVxubGV0IHBhdGhfb2ZfcGF0aF9zdHJpbmcgcyA9XG4gIGxldCBsID0gU3RyaW5nLmxlbmd0aCBzIGluXG4gIGxldCByZWMgYXV4IGkgPVxuICAgIGxldCBqID0gdHJ5IFN0cmluZy5pbmRleF9mcm9tIHMgaSAnLycgd2l0aCBOb3RfZm91bmQgLT4gbCBpblxuICAgIGxldCB3b3JkID0gU3RyaW5nLnN1YiBzIGkgKGogLSBpKSBpblxuICAgIGlmIGogPj0gbCB0aGVuIFsgd29yZCBdIGVsc2Ugd29yZCA6OiBhdXggKGogKyAxKVxuICBpblxuICBtYXRjaCBhdXggMCB3aXRoXG4gIHwgWyBcIlwiIF0gLT4gW11cbiAgfCBbIFwiXCI7IFwiXCIgXSAtPiBbIFwiXCIgXVxuICB8IGEgLT4gYVxuXG4oKiBBcmd1bWVudHMgKilcbmxldCBlbmNvZGVfYXJndW1lbnRzIGwgPVxuICBTdHJpbmcuY29uY2F0IFwiJlwiIChMaXN0Lm1hcCAoZnVuIChuLCB2KSAtPiB1cmxlbmNvZGUgbiBeIFwiPVwiIF4gdXJsZW5jb2RlIHYpIGwpXG5cbmxldCBkZWNvZGVfYXJndW1lbnRzX2pzX3N0cmluZyBzID1cbiAgbGV0IGFyciA9IHNwbGl0ICcmJyBzIGluXG4gIGxldCBsZW4gPSBhcnIjIy5sZW5ndGggaW5cbiAgbGV0IG5hbWVfdmFsdWVfc3BsaXQgcyA9IHNwbGl0XzIgJz0nIHMgaW5cbiAgbGV0IHJlYyBhdXggYWNjIGlkeCA9XG4gICAgaWYgaWR4IDwgMFxuICAgIHRoZW4gYWNjXG4gICAgZWxzZVxuICAgICAgdHJ5XG4gICAgICAgIGF1eFxuICAgICAgICAgIChKcy5PcHRkZWYuY2FzZSAoSnMuYXJyYXlfZ2V0IGFyciBpZHgpIGludGVycnVwdCAoZnVuIHMgLT5cbiAgICAgICAgICAgICAgIEpzLk9wdGRlZi5jYXNlIChuYW1lX3ZhbHVlX3NwbGl0IHMpIGludGVycnVwdCAoZnVuICh4LCB5KSAtPlxuICAgICAgICAgICAgICAgICAgIGxldCBnZXQgPSB1cmxkZWNvZGVfanNfc3RyaW5nX3N0cmluZyBpblxuICAgICAgICAgICAgICAgICAgIGdldCB4LCBnZXQgeSkpXG4gICAgICAgICAgOjogYWNjKVxuICAgICAgICAgIChwcmVkIGlkeClcbiAgICAgIHdpdGggTG9jYWxfZXhuIC0+IGF1eCBhY2MgKHByZWQgaWR4KVxuICBpblxuICBhdXggW10gKGxlbiAtIDEpXG5cbmxldCBkZWNvZGVfYXJndW1lbnRzIHMgPSBkZWNvZGVfYXJndW1lbnRzX2pzX3N0cmluZyAoSnMuYnl0ZXN0cmluZyBzKVxuXG5sZXQgdXJsX3JlID1cbiAgbmV3JWpzIEpzLnJlZ0V4cFxuICAgIChKcy5ieXRlc3RyaW5nXG4gICAgICAgXCJeKFtIaF1bVHRdW1R0XVtQcF1bU3NdPyk6Ly8oWzAtOWEtekEtWi4tXSt8XFxcXFtbMC05YS16QS1aLi1dK1xcXFxdfFxcXFxbWzAtOUEtRmEtZjouXStcXFxcXSk/KDooWzAtOV0rKSk/KC8oW15cXFxcPyNdKikoXFxcXD8oW14jXSopKT8oIyguKikpPyk/JFwiKVxuXG5sZXQgZmlsZV9yZSA9XG4gIG5ldyVqcyBKcy5yZWdFeHBcbiAgICAoSnMuYnl0ZXN0cmluZyBcIl4oW0ZmXVtJaV1bTGxdW0VlXSk6Ly8oW15cXFxcPyNdKikoXFxcXD8oW14jXSopKT8oIyguKikpPyRcIilcblxubGV0IHVybF9vZl9qc19zdHJpbmcgcyA9XG4gIEpzLk9wdC5jYXNlXG4gICAgKHVybF9yZSMjZXhlYyBzKVxuICAgIChmdW4gKCkgLT5cbiAgICAgIEpzLk9wdC5jYXNlXG4gICAgICAgIChmaWxlX3JlIyNleGVjIHMpXG4gICAgICAgIChmdW4gKCkgLT4gTm9uZSlcbiAgICAgICAgKGZ1biBoYW5kbGUgLT5cbiAgICAgICAgICBsZXQgcmVzID0gSnMubWF0Y2hfcmVzdWx0IGhhbmRsZSBpblxuICAgICAgICAgIGxldCBwYXRoX3N0ciA9XG4gICAgICAgICAgICB1cmxkZWNvZGVfanNfc3RyaW5nX3N0cmluZyAoSnMuT3B0ZGVmLmdldCAoSnMuYXJyYXlfZ2V0IHJlcyAyKSBpbnRlcnJ1cHQpXG4gICAgICAgICAgaW5cbiAgICAgICAgICBTb21lXG4gICAgICAgICAgICAoRmlsZVxuICAgICAgICAgICAgICAgeyBmdV9wYXRoID0gcGF0aF9vZl9wYXRoX3N0cmluZyBwYXRoX3N0clxuICAgICAgICAgICAgICAgOyBmdV9wYXRoX3N0cmluZyA9IHBhdGhfc3RyXG4gICAgICAgICAgICAgICA7IGZ1X2FyZ3VtZW50cyA9XG4gICAgICAgICAgICAgICAgICAgZGVjb2RlX2FyZ3VtZW50c19qc19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgIChKcy5PcHRkZWYuZ2V0IChKcy5hcnJheV9nZXQgcmVzIDQpIChmdW4gKCkgLT4gSnMuYnl0ZXN0cmluZyBcIlwiKSlcbiAgICAgICAgICAgICAgIDsgZnVfZnJhZ21lbnQgPVxuICAgICAgICAgICAgICAgICAgIEpzLnRvX2J5dGVzdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgIChKcy5PcHRkZWYuZ2V0IChKcy5hcnJheV9nZXQgcmVzIDYpIChmdW4gKCkgLT4gSnMuYnl0ZXN0cmluZyBcIlwiKSlcbiAgICAgICAgICAgICAgIH0pKSlcbiAgICAoZnVuIGhhbmRsZSAtPlxuICAgICAgbGV0IHJlcyA9IEpzLm1hdGNoX3Jlc3VsdCBoYW5kbGUgaW5cbiAgICAgIGxldCBzc2wgPSBpc19zZWN1cmUgKEpzLk9wdGRlZi5nZXQgKEpzLmFycmF5X2dldCByZXMgMSkgaW50ZXJydXB0KSBpblxuICAgICAgbGV0IHBvcnRfb2Zfc3RyaW5nID0gZnVuY3Rpb25cbiAgICAgICAgfCBcIlwiIC0+IGlmIHNzbCB0aGVuIDQ0MyBlbHNlIDgwXG4gICAgICAgIHwgcyAtPiBpbnRfb2Zfc3RyaW5nIHNcbiAgICAgIGluXG4gICAgICBsZXQgcGF0aF9zdHIgPVxuICAgICAgICB1cmxkZWNvZGVfanNfc3RyaW5nX3N0cmluZ1xuICAgICAgICAgIChKcy5PcHRkZWYuZ2V0IChKcy5hcnJheV9nZXQgcmVzIDYpIChmdW4gKCkgLT4gSnMuYnl0ZXN0cmluZyBcIlwiKSlcbiAgICAgIGluXG4gICAgICBsZXQgdXJsID1cbiAgICAgICAgeyBodV9ob3N0ID1cbiAgICAgICAgICAgIHVybGRlY29kZV9qc19zdHJpbmdfc3RyaW5nIChKcy5PcHRkZWYuZ2V0IChKcy5hcnJheV9nZXQgcmVzIDIpIGludGVycnVwdClcbiAgICAgICAgOyBodV9wb3J0ID1cbiAgICAgICAgICAgIHBvcnRfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgIChKcy50b19ieXRlc3RyaW5nXG4gICAgICAgICAgICAgICAgIChKcy5PcHRkZWYuZ2V0IChKcy5hcnJheV9nZXQgcmVzIDQpIChmdW4gKCkgLT4gSnMuYnl0ZXN0cmluZyBcIlwiKSkpXG4gICAgICAgIDsgaHVfcGF0aCA9IHBhdGhfb2ZfcGF0aF9zdHJpbmcgcGF0aF9zdHJcbiAgICAgICAgOyBodV9wYXRoX3N0cmluZyA9IHBhdGhfc3RyXG4gICAgICAgIDsgaHVfYXJndW1lbnRzID1cbiAgICAgICAgICAgIGRlY29kZV9hcmd1bWVudHNfanNfc3RyaW5nXG4gICAgICAgICAgICAgIChKcy5PcHRkZWYuZ2V0IChKcy5hcnJheV9nZXQgcmVzIDgpIChmdW4gKCkgLT4gSnMuYnl0ZXN0cmluZyBcIlwiKSlcbiAgICAgICAgOyBodV9mcmFnbWVudCA9XG4gICAgICAgICAgICB1cmxkZWNvZGVfanNfc3RyaW5nX3N0cmluZ1xuICAgICAgICAgICAgICAoSnMuT3B0ZGVmLmdldCAoSnMuYXJyYXlfZ2V0IHJlcyAxMCkgKGZ1biAoKSAtPiBKcy5ieXRlc3RyaW5nIFwiXCIpKVxuICAgICAgICB9XG4gICAgICBpblxuICAgICAgU29tZSAoaWYgc3NsIHRoZW4gSHR0cHMgdXJsIGVsc2UgSHR0cCB1cmwpKVxuXG5sZXQgdXJsX29mX3N0cmluZyBzID0gdXJsX29mX2pzX3N0cmluZyAoSnMuYnl0ZXN0cmluZyBzKVxuXG5sZXQgc3RyaW5nX29mX3VybCA9IGZ1bmN0aW9uXG4gIHwgRmlsZSB7IGZ1X3BhdGggPSBwYXRoOyBmdV9hcmd1bWVudHMgPSBhcmdzOyBmdV9mcmFnbWVudCA9IGZyYWc7IF8gfSAtPiAoXG4gICAgICBcImZpbGU6Ly9cIlxuICAgICAgXiBTdHJpbmcuY29uY2F0IFwiL1wiIChMaXN0Lm1hcCAoZnVuIHggLT4gdXJsZW5jb2RlIHgpIHBhdGgpXG4gICAgICBeIChtYXRjaCBhcmdzIHdpdGhcbiAgICAgICAgfCBbXSAtPiBcIlwiXG4gICAgICAgIHwgbCAtPiBcIj9cIiBeIGVuY29kZV9hcmd1bWVudHMgbClcbiAgICAgIF5cbiAgICAgIG1hdGNoIGZyYWcgd2l0aFxuICAgICAgfCBcIlwiIC0+IFwiXCJcbiAgICAgIHwgcyAtPiBcIiNcIiBeIHVybGVuY29kZSBzKVxuICB8IEh0dHBcbiAgICAgIHsgaHVfaG9zdCA9IGhvc3RcbiAgICAgIDsgaHVfcG9ydCA9IHBvcnRcbiAgICAgIDsgaHVfcGF0aCA9IHBhdGhcbiAgICAgIDsgaHVfYXJndW1lbnRzID0gYXJnc1xuICAgICAgOyBodV9mcmFnbWVudCA9IGZyYWdcbiAgICAgIDsgX1xuICAgICAgfSAtPiAoXG4gICAgICBcImh0dHA6Ly9cIlxuICAgICAgXiB1cmxlbmNvZGUgaG9zdFxuICAgICAgXiAobWF0Y2ggcG9ydCB3aXRoXG4gICAgICAgIHwgODAgLT4gXCJcIlxuICAgICAgICB8IG4gLT4gXCI6XCIgXiBzdHJpbmdfb2ZfaW50IG4pXG4gICAgICBeIFwiL1wiXG4gICAgICBeIFN0cmluZy5jb25jYXQgXCIvXCIgKExpc3QubWFwIChmdW4geCAtPiB1cmxlbmNvZGUgeCkgcGF0aClcbiAgICAgIF4gKG1hdGNoIGFyZ3Mgd2l0aFxuICAgICAgICB8IFtdIC0+IFwiXCJcbiAgICAgICAgfCBsIC0+IFwiP1wiIF4gZW5jb2RlX2FyZ3VtZW50cyBsKVxuICAgICAgXlxuICAgICAgbWF0Y2ggZnJhZyB3aXRoXG4gICAgICB8IFwiXCIgLT4gXCJcIlxuICAgICAgfCBzIC0+IFwiI1wiIF4gdXJsZW5jb2RlIHMpXG4gIHwgSHR0cHNcbiAgICAgIHsgaHVfaG9zdCA9IGhvc3RcbiAgICAgIDsgaHVfcG9ydCA9IHBvcnRcbiAgICAgIDsgaHVfcGF0aCA9IHBhdGhcbiAgICAgIDsgaHVfYXJndW1lbnRzID0gYXJnc1xuICAgICAgOyBodV9mcmFnbWVudCA9IGZyYWdcbiAgICAgIDsgX1xuICAgICAgfSAtPiAoXG4gICAgICBcImh0dHBzOi8vXCJcbiAgICAgIF4gdXJsZW5jb2RlIGhvc3RcbiAgICAgIF4gKG1hdGNoIHBvcnQgd2l0aFxuICAgICAgICB8IDQ0MyAtPiBcIlwiXG4gICAgICAgIHwgbiAtPiBcIjpcIiBeIHN0cmluZ19vZl9pbnQgbilcbiAgICAgIF4gXCIvXCJcbiAgICAgIF4gU3RyaW5nLmNvbmNhdCBcIi9cIiAoTGlzdC5tYXAgKGZ1biB4IC0+IHVybGVuY29kZSB4KSBwYXRoKVxuICAgICAgXiAobWF0Y2ggYXJncyB3aXRoXG4gICAgICAgIHwgW10gLT4gXCJcIlxuICAgICAgICB8IGwgLT4gXCI/XCIgXiBlbmNvZGVfYXJndW1lbnRzIGwpXG4gICAgICBeXG4gICAgICBtYXRjaCBmcmFnIHdpdGhcbiAgICAgIHwgXCJcIiAtPiBcIlwiXG4gICAgICB8IHMgLT4gXCIjXCIgXiB1cmxlbmNvZGUgcylcblxubW9kdWxlIEN1cnJlbnQgPSBzdHJ1Y3RcbiAgbGV0IGwgPVxuICAgIGlmIEpzLk9wdGRlZi50ZXN0IChKcy5PcHRkZWYucmV0dXJuIERvbV9odG1sLndpbmRvdyMjLmxvY2F0aW9uKVxuICAgIHRoZW4gRG9tX2h0bWwud2luZG93IyMubG9jYXRpb25cbiAgICBlbHNlXG4gICAgICBsZXQgZW1wdHkgPSBKcy5zdHJpbmcgXCJcIiBpblxuICAgICAgb2JqZWN0JWpzXG4gICAgICAgIHZhbCBtdXRhYmxlIGhyZWYgPSBlbXB0eVxuXG4gICAgICAgIHZhbCBtdXRhYmxlIHByb3RvY29sID0gZW1wdHlcblxuICAgICAgICB2YWwgbXV0YWJsZSBob3N0ID0gZW1wdHlcblxuICAgICAgICB2YWwgbXV0YWJsZSBob3N0bmFtZSA9IGVtcHR5XG5cbiAgICAgICAgdmFsIG11dGFibGUgcG9ydCA9IGVtcHR5XG5cbiAgICAgICAgdmFsIG11dGFibGUgcGF0aG5hbWUgPSBlbXB0eVxuXG4gICAgICAgIHZhbCBtdXRhYmxlIHNlYXJjaCA9IGVtcHR5XG5cbiAgICAgICAgdmFsIG11dGFibGUgaGFzaCA9IGVtcHR5XG5cbiAgICAgICAgdmFsIG9yaWdpbiA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICAgIG1ldGhvZCByZWxvYWQgPSAoKVxuXG4gICAgICAgIG1ldGhvZCByZXBsYWNlIF8gPSAoKVxuXG4gICAgICAgIG1ldGhvZCBhc3NpZ24gXyA9ICgpXG4gICAgICBlbmRcblxuICBsZXQgaG9zdCA9IHVybGRlY29kZV9qc19zdHJpbmdfc3RyaW5nIGwjIy5ob3N0bmFtZVxuXG4gIGxldCBwcm90b2NvbCA9IHVybGRlY29kZV9qc19zdHJpbmdfc3RyaW5nIGwjIy5wcm90b2NvbFxuXG4gIGxldCBwb3J0ID1cbiAgICAoZnVuICgpIC0+XG4gICAgICB0cnkgU29tZSAoaW50X29mX3N0cmluZyAoSnMudG9fYnl0ZXN0cmluZyBsIyMucG9ydCkpIHdpdGggRmFpbHVyZSBfIC0+IE5vbmUpXG4gICAgICAoKVxuXG4gIGxldCBwYXRoX3N0cmluZyA9IHVybGRlY29kZV9qc19zdHJpbmdfc3RyaW5nIGwjIy5wYXRobmFtZVxuXG4gIGxldCBwYXRoID0gcGF0aF9vZl9wYXRoX3N0cmluZyBwYXRoX3N0cmluZ1xuXG4gIGxldCBhcmd1bWVudHMgPVxuICAgIGRlY29kZV9hcmd1bWVudHNfanNfc3RyaW5nXG4gICAgICAoaWYgbCMjLnNlYXJjaCMjY2hhckF0IDAgPT0gSnMuc3RyaW5nIFwiP1wiXG4gICAgICB0aGVuIGwjIy5zZWFyY2gjI3NsaWNlX2VuZCAxXG4gICAgICBlbHNlIGwjIy5zZWFyY2gpXG5cbiAgbGV0IGdldF9mcmFnbWVudCAoKSA9XG4gICAgKCogbG9jYXRpb24uaGFzaCBkb2Vzbid0IGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IgZGVwZW5kaW5nIG9uIHRoZSBicm93c2VyXG4gICAgICAgRmlyZWZveCBidWcgOiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD00ODMzMDQgKilcbiAgICAoKiBsZXQgcyA9IEpzLnRvX2J5dGVzdHJpbmcgKGwjI2hhc2gpIGluICopXG4gICAgKCogaWYgU3RyaW5nLmxlbmd0aCBzID4gMCAmJiBzLlswXSA9ICcjJyAqKVxuICAgICgqIHRoZW4gU3RyaW5nLnN1YiBzIDEgKFN0cmluZy5sZW5ndGggcyAtIDEpICopXG4gICAgKCogZWxzZSBzOyAqKVxuICAgIEpzLk9wdC5jYXNlXG4gICAgICAobCMjLmhyZWYjI19tYXRjaCAobmV3JWpzIEpzLnJlZ0V4cCAoSnMuc3RyaW5nIFwiIyguKilcIikpKVxuICAgICAgKGZ1biAoKSAtPiBcIlwiKVxuICAgICAgKGZ1biByZXMgLT5cbiAgICAgICAgbGV0IHJlcyA9IEpzLm1hdGNoX3Jlc3VsdCByZXMgaW5cbiAgICAgICAgSnMudG9fc3RyaW5nIChKcy5VbnNhZmUuZ2V0IHJlcyAxKSlcblxuICBsZXQgc2V0X2ZyYWdtZW50IHMgPSBsIyMuaGFzaCA6PSBKcy5ieXRlc3RyaW5nICh1cmxlbmNvZGUgcylcblxuICBsZXQgZ2V0ICgpID0gdXJsX29mX2pzX3N0cmluZyBsIyMuaHJlZlxuXG4gIGxldCBzZXQgdSA9IGwjIy5ocmVmIDo9IEpzLmJ5dGVzdHJpbmcgKHN0cmluZ19vZl91cmwgdSlcblxuICBsZXQgYXNfc3RyaW5nID0gdXJsZGVjb2RlX2pzX3N0cmluZ19zdHJpbmcgbCMjLmhyZWZcbmVuZFxuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxNCBIdWdvIEhldXphcmRcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcbm9wZW4hIEltcG9ydFxuXG5leHRlcm5hbCBjcmVhdGVfZmlsZSA6IG5hbWU6c3RyaW5nIC0+IGNvbnRlbnQ6c3RyaW5nIC0+IHVuaXQgPSBcImNhbWxfY3JlYXRlX2ZpbGVcIlxuXG5leHRlcm5hbCByZWFkX2ZpbGUgOiBuYW1lOnN0cmluZyAtPiBzdHJpbmcgPSBcImNhbWxfcmVhZF9maWxlX2NvbnRlbnRcIlxuXG5sZXQgdXBkYXRlX2ZpbGUgfm5hbWUgfmNvbnRlbnQgPVxuICBsZXQgb2MgPSBvcGVuX291dCBuYW1lIGluXG4gIG91dHB1dF9zdHJpbmcgb2MgY29udGVudDtcbiAgY2xvc2Vfb3V0IG9jXG5cbmV4dGVybmFsIHNldF9jaGFubmVsX291dHB1dCcgOlxuICBvdXRfY2hhbm5lbCAtPiAoSnMuanNfc3RyaW5nIEpzLnQgLT4gdW5pdCkgSnMuY2FsbGJhY2sgLT4gdW5pdFxuICA9IFwiY2FtbF9tbF9zZXRfY2hhbm5lbF9vdXRwdXRcIlxuXG5leHRlcm5hbCBzZXRfY2hhbm5lbF9pbnB1dCcgOiBpbl9jaGFubmVsIC0+ICh1bml0IC0+IHN0cmluZykgSnMuY2FsbGJhY2sgLT4gdW5pdFxuICA9IFwiY2FtbF9tbF9zZXRfY2hhbm5lbF9yZWZpbGxcIlxuXG5sZXQgc2V0X2NoYW5uZWxfZmx1c2hlciAob3V0X2NoYW5uZWwgOiBvdXRfY2hhbm5lbCkgKGYgOiBzdHJpbmcgLT4gdW5pdCkgPVxuICBsZXQgZicgOiAoSnMuanNfc3RyaW5nIEpzLnQgLT4gdW5pdCkgSnMuY2FsbGJhY2sgPVxuICAgIEpzLndyYXBfY2FsbGJhY2sgKGZ1biBzIC0+IGYgKEpzLnRvX2J5dGVzdHJpbmcgcykpXG4gIGluXG4gIHNldF9jaGFubmVsX291dHB1dCcgb3V0X2NoYW5uZWwgZidcblxubGV0IHNldF9jaGFubmVsX2ZpbGxlciAoaW5fY2hhbm5lbCA6IGluX2NoYW5uZWwpIChmIDogdW5pdCAtPiBzdHJpbmcpID1cbiAgbGV0IGYnIDogKHVuaXQgLT4gc3RyaW5nKSBKcy5jYWxsYmFjayA9IEpzLndyYXBfY2FsbGJhY2sgZiBpblxuICBzZXRfY2hhbm5lbF9pbnB1dCcgaW5fY2hhbm5lbCBmJ1xuXG5leHRlcm5hbCBtb3VudF9wb2ludCA6IHVuaXQgLT4gc3RyaW5nIGxpc3QgPSBcImNhbWxfbGlzdF9tb3VudF9wb2ludFwiXG5cbmV4dGVybmFsIG1vdW50X2F1dG9sb2FkIDpcbiAgc3RyaW5nIC0+IChzdHJpbmcgLT4gc3RyaW5nIC0+IHN0cmluZyBvcHRpb24pIEpzLmNhbGxiYWNrIC0+IHVuaXRcbiAgPSBcImNhbWxfbW91bnRfYXV0b2xvYWRcIlxuXG5leHRlcm5hbCB1bm1vdW50IDogc3RyaW5nIC0+IHVuaXQgPSBcImNhbWxfdW5tb3VudFwiXG5cbmxldCBtb3VudCB+cGF0aCBmID1cbiAgbW91bnRfYXV0b2xvYWQgcGF0aCAoSnMud3JhcF9jYWxsYmFjayAoZnVuIHByZWZpeCBwYXRoIC0+IGYgfnByZWZpeCB+cGF0aCkpXG5cbmxldCB1bm1vdW50IH5wYXRoID0gdW5tb3VudCBwYXRoXG5cbmxldCBqc19vZl9vY2FtbF92ZXJzaW9uID1cbiAgaWYgU3RyaW5nLmVxdWFsIExpYl92ZXJzaW9uLmdpdF92ZXJzaW9uIFwiXCJcbiAgdGhlbiBMaWJfdmVyc2lvbi5zXG4gIGVsc2UgTGliX3ZlcnNpb24ucyBeIFwiK1wiIF4gTGliX3ZlcnNpb24uZ2l0X3ZlcnNpb25cbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQWxleGFuZGVyIFlhbmluXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5vcGVuISBJbXBvcnRcblxuY2xhc3MgdHlwZSByZXNpemVPYnNlcnZlclNpemUgPVxuICBvYmplY3RcbiAgICBtZXRob2QgaW5saW5lU2l6ZSA6IGZsb2F0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBibG9ja1NpemUgOiBmbG9hdCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHJlc2l6ZU9ic2VydmVyRW50cnkgPVxuICBvYmplY3RcbiAgICBtZXRob2QgdGFyZ2V0IDogRG9tLm5vZGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY29udGVudFJlY3QgOiBEb21faHRtbC5jbGllbnRSZWN0IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlckJveFNpemUgOiByZXNpemVPYnNlcnZlclNpemUgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjb250ZW50Qm94U2l6ZSA6IHJlc2l6ZU9ic2VydmVyU2l6ZSBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSByZXNpemVPYnNlcnZlck9wdGlvbnMgPVxuICBvYmplY3RcbiAgICBtZXRob2QgYm94IDogSnMuanNfc3RyaW5nIEpzLnQgSnMud3JpdGVvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgcmVzaXplT2JzZXJ2ZXIgPVxuICBvYmplY3RcbiAgICBtZXRob2Qgb2JzZXJ2ZSA6ICNEb20ubm9kZSBKcy50IC0+IHVuaXQgSnMubWV0aFxuXG4gICAgbWV0aG9kIG9ic2VydmVfd2l0aE9wdGlvbnMgOlxuICAgICAgI0RvbS5ub2RlIEpzLnQgLT4gcmVzaXplT2JzZXJ2ZXJPcHRpb25zIEpzLnQgLT4gdW5pdCBKcy5tZXRoXG5cbiAgICBtZXRob2QgdW5vYnNlcnZlIDogI0RvbS5ub2RlIEpzLnQgLT4gdW5pdCBKcy5tZXRoXG5cbiAgICBtZXRob2QgZGlzY29ubmVjdCA6IHVuaXQgSnMubWV0aFxuICBlbmRcblxubGV0IGVtcHR5X3Jlc2l6ZV9vYnNlcnZlcl9vcHRpb25zICgpIDogcmVzaXplT2JzZXJ2ZXJPcHRpb25zIEpzLnQgPSBKcy5VbnNhZmUub2JqIFt8fF1cblxubGV0IHJlc2l6ZU9ic2VydmVyID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9SZXNpemVPYnNlcnZlclxuXG5sZXQgaXNfc3VwcG9ydGVkICgpID0gSnMuT3B0ZGVmLnRlc3QgcmVzaXplT2JzZXJ2ZXJcblxubGV0IHJlc2l6ZU9ic2VydmVyIDpcbiAgICAoICAgKHJlc2l6ZU9ic2VydmVyRW50cnkgSnMudCBKcy5qc19hcnJheSBKcy50IC0+IHJlc2l6ZU9ic2VydmVyIEpzLnQgLT4gdW5pdClcbiAgICAgICAgSnMuY2FsbGJhY2tcbiAgICAgLT4gcmVzaXplT2JzZXJ2ZXIgSnMudClcbiAgICBKcy5jb25zdHIgPVxuICByZXNpemVPYnNlcnZlclxuXG5sZXQgb2JzZXJ2ZVxuICAgIH4obm9kZSA6ICNEb20ubm9kZSBKcy50KVxuICAgIH4oZiA6IHJlc2l6ZU9ic2VydmVyRW50cnkgSnMudCBKcy5qc19hcnJheSBKcy50IC0+IHJlc2l6ZU9ic2VydmVyIEpzLnQgLT4gdW5pdClcbiAgICA/KGJveCA6IEpzLmpzX3N0cmluZyBKcy50IG9wdGlvbilcbiAgICAoKSA6IHJlc2l6ZU9ic2VydmVyIEpzLnQgPVxuICBsZXQgb2JzID0gbmV3JWpzIHJlc2l6ZU9ic2VydmVyIChKcy53cmFwX2NhbGxiYWNrIGYpIGluXG4gIChtYXRjaCBib3ggd2l0aFxuICB8IE5vbmUgLT4gb2JzIyNvYnNlcnZlIG5vZGVcbiAgfCBTb21lIGJveCAtPlxuICAgICAgbGV0IG9wdHMgPSBlbXB0eV9yZXNpemVfb2JzZXJ2ZXJfb3B0aW9ucyAoKSBpblxuICAgICAgb3B0cyMjLmJveCA6PSBib3g7XG4gICAgICBvYnMjI29ic2VydmVfd2l0aE9wdGlvbnMgbm9kZSBvcHRzKTtcbiAgb2JzXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDIxIFBoaWxpcCBXaGl0ZVxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxuXG5vcGVuISBJbXBvcnRcblxuY2xhc3MgdHlwZSBwZXJmb3JtYW5jZU9ic2VydmVySW5pdCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBlbnRyeVR5cGVzIDogSnMuanNfc3RyaW5nIEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy53cml0ZW9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBwZXJmb3JtYW5jZUVudHJ5ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG5hbWUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZW50cnlUeXBlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHN0YXJ0VGltZSA6IGZsb2F0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkdXJhdGlvbiA6IGZsb2F0IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgcGVyZm9ybWFuY2VPYnNlcnZlckVudHJ5TGlzdCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBnZXRFbnRyaWVzIDogcGVyZm9ybWFuY2VFbnRyeSBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMubWV0aFxuICBlbmRcblxuY2xhc3MgdHlwZSBwZXJmb3JtYW5jZU9ic2VydmVyID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG9ic2VydmUgOiBwZXJmb3JtYW5jZU9ic2VydmVySW5pdCBKcy50IC0+IHVuaXQgSnMubWV0aFxuXG4gICAgbWV0aG9kIGRpc2Nvbm5lY3QgOiB1bml0IEpzLm1ldGhcblxuICAgIG1ldGhvZCB0YWtlUmVjb3JkcyA6IHBlcmZvcm1hbmNlRW50cnkgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLm1ldGhcbiAgZW5kXG5cbmxldCBwZXJmb3JtYW5jZU9ic2VydmVyID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9QZXJmb3JtYW5jZU9ic2VydmVyXG5cbmxldCBpc19zdXBwb3J0ZWQgKCkgPSBKcy5PcHRkZWYudGVzdCBwZXJmb3JtYW5jZU9ic2VydmVyXG5cbmxldCBwZXJmb3JtYW5jZU9ic2VydmVyIDpcbiAgICAoICAgKHBlcmZvcm1hbmNlT2JzZXJ2ZXJFbnRyeUxpc3QgSnMudCAtPiBwZXJmb3JtYW5jZU9ic2VydmVyIEpzLnQgLT4gdW5pdCkgSnMuY2FsbGJhY2tcbiAgICAgLT4gcGVyZm9ybWFuY2VPYnNlcnZlciBKcy50KVxuICAgIEpzLmNvbnN0ciA9XG4gIHBlcmZvcm1hbmNlT2JzZXJ2ZXJcblxubGV0IG9ic2VydmUgfmVudHJ5X3R5cGVzIH5mID1cbiAgbGV0IGVudHJ5X3R5cGVzID0gZW50cnlfdHlwZXMgfD4gTGlzdC5tYXAgSnMuc3RyaW5nIHw+IEFycmF5Lm9mX2xpc3QgfD4gSnMuYXJyYXkgaW5cbiAgbGV0IHBlcmZvcm1hbmNlX29ic2VydmVyX2luaXQgOiBwZXJmb3JtYW5jZU9ic2VydmVySW5pdCBKcy50ID0gSnMuVW5zYWZlLm9iaiBbfHxdIGluXG4gIGxldCAoKSA9IHBlcmZvcm1hbmNlX29ic2VydmVyX2luaXQjIy5lbnRyeVR5cGVzIDo9IGVudHJ5X3R5cGVzIGluXG4gIGxldCBvYnMgPSBuZXclanMgcGVyZm9ybWFuY2VPYnNlcnZlciAoSnMud3JhcF9jYWxsYmFjayBmKSBpblxuICBsZXQgKCkgPSBvYnMjI29ic2VydmUgcGVyZm9ybWFuY2Vfb2JzZXJ2ZXJfaW5pdCBpblxuICBvYnNcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgU3TDqXBoYW5lIExlZ3JhbmRcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcbm9wZW4hIEltcG9ydFxuXG5jbGFzcyB0eXBlIG11dGF0aW9uT2JzZXJ2ZXJJbml0ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGNoaWxkTGlzdCA6IGJvb2wgSnMud3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhdHRyaWJ1dGVzIDogYm9vbCBKcy53cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNoYXJhY3RlckRhdGEgOiBib29sIEpzLndyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3VidHJlZSA6IGJvb2wgSnMud3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhdHRyaWJ1dGVPbGRWYWx1ZSA6IGJvb2wgSnMud3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjaGFyYWN0ZXJEYXRhT2xkVmFsdWUgOiBib29sIEpzLndyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgYXR0cmlidXRlRmlsdGVyIDogSnMuanNfc3RyaW5nIEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy53cml0ZW9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBtdXRhdGlvblJlY29yZCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBfdHlwZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0YXJnZXQgOiBEb20ubm9kZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhZGRlZE5vZGVzIDogRG9tLm5vZGUgRG9tLm5vZGVMaXN0IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJlbW92ZWROb2RlcyA6IERvbS5ub2RlIERvbS5ub2RlTGlzdCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwcmV2aW91c1NpYmxpbmcgOiBEb20ubm9kZSBKcy50IEpzLm9wdCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbmV4dFNpYmxpbmcgOiBEb20ubm9kZSBKcy50IEpzLm9wdCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYXR0cmlidXRlTmFtZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYXR0cmlidXRlTmFtZXNwYWNlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbGRWYWx1ZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIG11dGF0aW9uT2JzZXJ2ZXIgPVxuICBvYmplY3RcbiAgICBtZXRob2Qgb2JzZXJ2ZSA6ICNEb20ubm9kZSBKcy50IC0+IG11dGF0aW9uT2JzZXJ2ZXJJbml0IEpzLnQgLT4gdW5pdCBKcy5tZXRoXG5cbiAgICBtZXRob2QgZGlzY29ubmVjdCA6IHVuaXQgSnMubWV0aFxuXG4gICAgbWV0aG9kIHRha2VSZWNvcmRzIDogbXV0YXRpb25SZWNvcmQgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLm1ldGhcbiAgZW5kXG5cbmxldCBlbXB0eV9tdXRhdGlvbl9vYnNlcnZlcl9pbml0ICgpIDogbXV0YXRpb25PYnNlcnZlckluaXQgSnMudCA9IEpzLlVuc2FmZS5vYmogW3x8XVxuXG5sZXQgbXV0YXRpb25PYnNlcnZlciA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fTXV0YXRpb25PYnNlcnZlclxuXG5sZXQgaXNfc3VwcG9ydGVkICgpID0gSnMuT3B0ZGVmLnRlc3QgbXV0YXRpb25PYnNlcnZlclxuXG5sZXQgbXV0YXRpb25PYnNlcnZlciA6XG4gICAgKCAgIChtdXRhdGlvblJlY29yZCBKcy50IEpzLmpzX2FycmF5IEpzLnQgLT4gbXV0YXRpb25PYnNlcnZlciBKcy50IC0+IHVuaXQpIEpzLmNhbGxiYWNrXG4gICAgIC0+IG11dGF0aW9uT2JzZXJ2ZXIgSnMudClcbiAgICBKcy5jb25zdHIgPVxuICBtdXRhdGlvbk9ic2VydmVyXG5cbmxldCBvYnNlcnZlXG4gICAgfihub2RlIDogI0RvbS5ub2RlIEpzLnQpXG4gICAgfihmIDogbXV0YXRpb25SZWNvcmQgSnMudCBKcy5qc19hcnJheSBKcy50IC0+IG11dGF0aW9uT2JzZXJ2ZXIgSnMudCAtPiB1bml0KVxuICAgID8oY2hpbGRfbGlzdCA6IGJvb2wgb3B0aW9uKVxuICAgID8oYXR0cmlidXRlcyA6IGJvb2wgb3B0aW9uKVxuICAgID8oY2hhcmFjdGVyX2RhdGEgOiBib29sIG9wdGlvbilcbiAgICA/KHN1YnRyZWUgOiBib29sIG9wdGlvbilcbiAgICA/KGF0dHJpYnV0ZV9vbGRfdmFsdWUgOiBib29sIG9wdGlvbilcbiAgICA/KGNoYXJhY3Rlcl9kYXRhX29sZF92YWx1ZSA6IGJvb2wgb3B0aW9uKVxuICAgID8oYXR0cmlidXRlX2ZpbHRlciA6IEpzLmpzX3N0cmluZyBKcy50IGxpc3Qgb3B0aW9uKVxuICAgICgpIDogbXV0YXRpb25PYnNlcnZlciBKcy50ID1cbiAgbGV0IG9wdF9pdGVyIHggZiA9XG4gICAgbWF0Y2ggeCB3aXRoXG4gICAgfCBOb25lIC0+ICgpXG4gICAgfCBTb21lIHggLT4gZiB4XG4gIGluXG4gIGxldCBvYnMgPSBuZXclanMgbXV0YXRpb25PYnNlcnZlciAoSnMud3JhcF9jYWxsYmFjayBmKSBpblxuICBsZXQgY2ZnID0gZW1wdHlfbXV0YXRpb25fb2JzZXJ2ZXJfaW5pdCAoKSBpblxuICBsZXQgKCkgPSBvcHRfaXRlciBjaGlsZF9saXN0IChmdW4gdiAtPiBjZmcjIy5jaGlsZExpc3QgOj0gdikgaW5cbiAgbGV0ICgpID0gb3B0X2l0ZXIgYXR0cmlidXRlcyAoZnVuIHYgLT4gY2ZnIyMuYXR0cmlidXRlcyA6PSB2KSBpblxuICBsZXQgKCkgPSBvcHRfaXRlciBjaGFyYWN0ZXJfZGF0YSAoZnVuIHYgLT4gY2ZnIyMuY2hhcmFjdGVyRGF0YSA6PSB2KSBpblxuICBsZXQgKCkgPSBvcHRfaXRlciBzdWJ0cmVlIChmdW4gdiAtPiBjZmcjIy5zdWJ0cmVlIDo9IHYpIGluXG4gIGxldCAoKSA9IG9wdF9pdGVyIGF0dHJpYnV0ZV9vbGRfdmFsdWUgKGZ1biB2IC0+IGNmZyMjLmF0dHJpYnV0ZU9sZFZhbHVlIDo9IHYpIGluXG4gIGxldCAoKSA9XG4gICAgb3B0X2l0ZXIgY2hhcmFjdGVyX2RhdGFfb2xkX3ZhbHVlIChmdW4gdiAtPiBjZmcjIy5jaGFyYWN0ZXJEYXRhT2xkVmFsdWUgOj0gdilcbiAgaW5cbiAgbGV0ICgpID1cbiAgICBvcHRfaXRlciBhdHRyaWJ1dGVfZmlsdGVyIChmdW4gbCAtPlxuICAgICAgICBjZmcjIy5hdHRyaWJ1dGVGaWx0ZXIgOj0gSnMuYXJyYXkgKEFycmF5Lm9mX2xpc3QgbCkpXG4gIGluXG4gIGxldCAoKSA9IG9icyMjb2JzZXJ2ZSBub2RlIGNmZyBpblxuICBvYnNcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgUGllcnJlIENoYW1iYXJ0IDIwMTIuXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5vcGVuISBJbXBvcnRcblxudHlwZSAnYSB0ID0gPCA+IEpzLnRcblxubGV0IG9iaiA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fT2JqZWN0XG5cbmxldCBjcmVhdGUgKCkgOiAnYSB0ID0gbmV3JWpzIG9ialxuXG5sZXQgYWRkICh0IDogJ2EgdCkgKGsgOiBKcy5qc19zdHJpbmcgSnMudCkgKHYgOiAnYSkgPVxuICAoKiAnXycgaXMgYWRkZWQgdG8gYXZvaWQgY29uZmxpY3RzIHdpdGggb2JqZWN0cyBtZXRob2RzICopXG4gIEpzLlVuc2FmZS5zZXQgdCAoayMjY29uY2F0IChKcy5zdHJpbmcgXCJfXCIpKSB2XG5cbmxldCByZW1vdmUgKHQgOiAnYSB0KSAoayA6IEpzLmpzX3N0cmluZyBKcy50KSA9XG4gIEpzLlVuc2FmZS5kZWxldGUgdCAoayMjY29uY2F0IChKcy5zdHJpbmcgXCJfXCIpKVxuXG5sZXQgZmluZCAodCA6ICdhIHQpIChrIDogSnMuanNfc3RyaW5nIEpzLnQpIDogJ2EgSnMuT3B0ZGVmLnQgPVxuICBKcy5VbnNhZmUuZ2V0IHQgKGsjI2NvbmNhdCAoSnMuc3RyaW5nIFwiX1wiKSlcblxubGV0IGtleXMgKHQgOiAnYSB0KSA6IEpzLmpzX3N0cmluZyBKcy50IGxpc3QgPVxuICBsZXQga2V5X2FycmF5IDogSnMuanNfc3RyaW5nIEpzLnQgSnMuanNfYXJyYXkgSnMudCA9XG4gICAgSnMuVW5zYWZlLmdsb2JhbCMjLl9PYmplY3QjI2tleXMgdFxuICBpblxuICBsZXQgcmVzID0gcmVmIFtdIGluXG4gIGZvciBpID0gMCB0byBwcmVkIGtleV9hcnJheSMjLmxlbmd0aCBkb1xuICAgIGxldCBrZXkgPVxuICAgICAgSnMuT3B0ZGVmLmdldCAoSnMuYXJyYXlfZ2V0IGtleV9hcnJheSBpKSAoZnVuICgpIC0+IGZhaWx3aXRoIFwiSnN0YWJsZS5rZXlzXCIpXG4gICAgaW5cbiAgICByZXMgOj0ga2V5IyNzdWJzdHJpbmcgMCAocHJlZCBrZXkjIy5sZW5ndGgpIDo6ICFyZXNcbiAgZG9uZTtcbiAgTGlzdC5yZXYgIXJlc1xuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCBHcsOpZ29pcmUgSGVucnkgMjAxMC5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcblxub3BlbiBKc1xub3BlbiEgSW1wb3J0XG5cbmNsYXNzIHR5cGUganNvbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBwYXJzZSA6ICdhLiBqc19zdHJpbmcgdCAtPiAnYSBtZXRoXG5cbiAgICBtZXRob2QgcGFyc2VfIDpcbiAgICAgICdhICdiICdjICdkLiBqc19zdHJpbmcgdCAtPiAoJ2IgdCwganNfc3RyaW5nIHQgLT4gJ2MgLT4gJ2QpIG1ldGhfY2FsbGJhY2sgLT4gJ2EgbWV0aFxuXG4gICAgbWV0aG9kIHN0cmluZ2lmeSA6ICdhLiAnYSAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2Qgc3RyaW5naWZ5XyA6XG4gICAgICAnYSAnYiAnYyAnZC4gJ2EgLT4gKCdiLCBqc19zdHJpbmcgdCAtPiAnYyAtPiAnZCkgbWV0aF9jYWxsYmFjayAtPiBqc19zdHJpbmcgdCBtZXRoXG4gIGVuZFxuXG5sZXQganNvbiA6IGpzb24gSnMudCA9IFVuc2FmZS5nbG9iYWwjIy5fSlNPTlxuXG5sZXQgaW5wdXRfcmV2aXZlciA9XG4gIGxldCByZXZpdmVyIF90aGlzIF9rZXkgKHZhbHVlIDogVW5zYWZlLmFueSkgOiBPYmoudCA9XG4gICAgaWYgdHlwZW9mIHZhbHVlID09IHN0cmluZyBcInN0cmluZ1wiXG4gICAgdGhlbiBPYmoucmVwciAodG9fYnl0ZXN0cmluZyAoVW5zYWZlLmNvZXJjZSB2YWx1ZSkpXG4gICAgZWxzZSBpZiBpbnN0YW5jZW9mIHZhbHVlIEpzLmFycmF5X2VtcHR5XG4gICAgICAgICAgICAmJiAoVW5zYWZlLmNvZXJjZSB2YWx1ZSkjIy5sZW5ndGggPT0gNFxuICAgICAgICAgICAgJiYgVW5zYWZlLmdldCB2YWx1ZSAwID09IDI1NVxuICAgIHRoZW5cbiAgICAgIE9iai5yZXByXG4gICAgICAgIChKc29vX3J1bnRpbWUuSW50NjQuY3JlYXRlX2ludDY0X2xvX21pX2hpXG4gICAgICAgICAgIChVbnNhZmUuZ2V0IHZhbHVlIDEpXG4gICAgICAgICAgIChVbnNhZmUuZ2V0IHZhbHVlIDIpXG4gICAgICAgICAgIChVbnNhZmUuZ2V0IHZhbHVlIDMpKVxuICAgIGVsc2UgT2JqLnJlcHIgdmFsdWVcbiAgaW5cbiAgd3JhcF9tZXRoX2NhbGxiYWNrIHJldml2ZXJcblxubGV0IHVuc2FmZV9pbnB1dCBzID0ganNvbiMjcGFyc2VfIHMgaW5wdXRfcmV2aXZlclxuXG5jbGFzcyB0eXBlIG9iaiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBjb25zdHJ1Y3RvciA6ICdhLiAnYSBjb25zdHIgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IG1sSW50NjRfY29uc3RyID1cbiAgbGV0IGR1bW15X2ludDY0ID0gMUwgaW5cbiAgbGV0IGR1bW15X29iaiA6IG9iaiB0ID0gT2JqLm1hZ2ljIGR1bW15X2ludDY0IGluXG4gIGR1bW15X29iaiMjLmNvbnN0cnVjdG9yXG5cbmxldCBvdXRwdXRfcmV2aXZlciBfa2V5ICh2YWx1ZSA6IFVuc2FmZS5hbnkpIDogT2JqLnQgPVxuICBpZiBPYmoudGFnIChPYmoucmVwciB2YWx1ZSkgPSBPYmouc3RyaW5nX3RhZ1xuICB0aGVuIE9iai5yZXByIChieXRlc3RyaW5nIChPYmoubWFnaWMgdmFsdWUgOiBzdHJpbmcpKVxuICBlbHNlIGlmIGluc3RhbmNlb2YgdmFsdWUgbWxJbnQ2NF9jb25zdHJcbiAgdGhlblxuICAgIGxldCB2YWx1ZSA9IFVuc2FmZS5jb2VyY2UgdmFsdWUgaW5cbiAgICBPYmoucmVwciAoYXJyYXkgW3wgMjU1OyB2YWx1ZSMjLmxvOyB2YWx1ZSMjLm1pOyB2YWx1ZSMjLmhpIHxdKVxuICBlbHNlIE9iai5yZXByIHZhbHVlXG5cbmxldCBvdXRwdXQgb2JqID0ganNvbiMjc3RyaW5naWZ5XyBvYmogKEpzLndyYXBfY2FsbGJhY2sgb3V0cHV0X3Jldml2ZXIpXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDEwIFJhcGhhw6tsIFByb3VzdFxuICogTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5cbm9wZW4hIEltcG9ydFxuXG5tb2R1bGUgQ29sb3IgPSBzdHJ1Y3RcbiAgKCogVGhlIHR5cGUgb2YgQ1NTIGNvbG9ycy4gRmlyc3QgYnkgbmFtZSBhbmQgdGhlbiBieSBjb25zdHJ1Y3Rvci4gKilcbiAgdHlwZSBuYW1lID1cbiAgICB8IEFsaWNlYmx1ZVxuICAgIHwgQW50aXF1ZXdoaXRlXG4gICAgfCBBcXVhXG4gICAgfCBBcXVhbWFyaW5lXG4gICAgfCBBenVyZVxuICAgIHwgQmVpZ2VcbiAgICB8IEJpc3F1ZVxuICAgIHwgQmxhY2tcbiAgICB8IEJsYW5jaGVkYWxtb25kXG4gICAgfCBCbHVlXG4gICAgfCBCbHVldmlvbGV0XG4gICAgfCBCcm93blxuICAgIHwgQnVybHl3b29kXG4gICAgfCBDYWRldGJsdWVcbiAgICB8IENoYXJ0cmV1c2VcbiAgICB8IENob2NvbGF0ZVxuICAgIHwgQ29yYWxcbiAgICB8IENvcm5mbG93ZXJibHVlXG4gICAgfCBDb3Juc2lsa1xuICAgIHwgQ3JpbXNvblxuICAgIHwgQ3lhblxuICAgIHwgRGFya2JsdWVcbiAgICB8IERhcmtjeWFuXG4gICAgfCBEYXJrZ29sZGVucm9kXG4gICAgfCBEYXJrZ3JheVxuICAgIHwgRGFya2dyZWVuXG4gICAgfCBEYXJrZ3JleVxuICAgIHwgRGFya2toYWtpXG4gICAgfCBEYXJrbWFnZW50YVxuICAgIHwgRGFya29saXZlZ3JlZW5cbiAgICB8IERhcmtvcmFuZ2VcbiAgICB8IERhcmtvcmNoaWRcbiAgICB8IERhcmtyZWRcbiAgICB8IERhcmtzYWxtb25cbiAgICB8IERhcmtzZWFncmVlblxuICAgIHwgRGFya3NsYXRlYmx1ZVxuICAgIHwgRGFya3NsYXRlZ3JheVxuICAgIHwgRGFya3NsYXRlZ3JleVxuICAgIHwgRGFya3R1cnF1b2lzZVxuICAgIHwgRGFya3Zpb2xldFxuICAgIHwgRGVlcHBpbmtcbiAgICB8IERlZXBza3libHVlXG4gICAgfCBEaW1ncmF5XG4gICAgfCBEaW1ncmV5XG4gICAgfCBEb2RnZXJibHVlXG4gICAgfCBGaXJlYnJpY2tcbiAgICB8IEZsb3JhbHdoaXRlXG4gICAgfCBGb3Jlc3RncmVlblxuICAgIHwgRnVjaHNpYVxuICAgIHwgR2FpbnNib3JvXG4gICAgfCBHaG9zdHdoaXRlXG4gICAgfCBHb2xkXG4gICAgfCBHb2xkZW5yb2RcbiAgICB8IEdyYXlcbiAgICB8IEdyZXlcbiAgICB8IEdyZWVuXG4gICAgfCBHcmVlbnllbGxvd1xuICAgIHwgSG9uZXlkZXdcbiAgICB8IEhvdHBpbmtcbiAgICB8IEluZGlhbnJlZFxuICAgIHwgSW5kaWdvXG4gICAgfCBJdm9yeVxuICAgIHwgS2hha2lcbiAgICB8IExhdmVuZGVyXG4gICAgfCBMYXZlbmRlcmJsdXNoXG4gICAgfCBMYXduZ3JlZW5cbiAgICB8IExlbW9uY2hpZmZvblxuICAgIHwgTGlnaHRibHVlXG4gICAgfCBMaWdodGNvcmFsXG4gICAgfCBMaWdodGN5YW5cbiAgICB8IExpZ2h0Z29sZGVucm9keWVsbG93XG4gICAgfCBMaWdodGdyYXlcbiAgICB8IExpZ2h0Z3JlZW5cbiAgICB8IExpZ2h0Z3JleVxuICAgIHwgTGlnaHRwaW5rXG4gICAgfCBMaWdodHNhbG1vblxuICAgIHwgTGlnaHRzZWFncmVlblxuICAgIHwgTGlnaHRza3libHVlXG4gICAgfCBMaWdodHNsYXRlZ3JheVxuICAgIHwgTGlnaHRzbGF0ZWdyZXlcbiAgICB8IExpZ2h0c3RlZWxibHVlXG4gICAgfCBMaWdodHllbGxvd1xuICAgIHwgTGltZVxuICAgIHwgTGltZWdyZWVuXG4gICAgfCBMaW5lblxuICAgIHwgTWFnZW50YVxuICAgIHwgTWFyb29uXG4gICAgfCBNZWRpdW1hcXVhbWFyaW5lXG4gICAgfCBNZWRpdW1ibHVlXG4gICAgfCBNZWRpdW1vcmNoaWRcbiAgICB8IE1lZGl1bXB1cnBsZVxuICAgIHwgTWVkaXVtc2VhZ3JlZW5cbiAgICB8IE1lZGl1bXNsYXRlYmx1ZVxuICAgIHwgTWVkaXVtc3ByaW5nZ3JlZW5cbiAgICB8IE1lZGl1bXR1cnF1b2lzZVxuICAgIHwgTWVkaXVtdmlvbGV0cmVkXG4gICAgfCBNaWRuaWdodGJsdWVcbiAgICB8IE1pbnRjcmVhbVxuICAgIHwgTWlzdHlyb3NlXG4gICAgfCBNb2NjYXNpblxuICAgIHwgTmF2YWpvd2hpdGVcbiAgICB8IE5hdnlcbiAgICB8IE9sZGxhY2VcbiAgICB8IE9saXZlXG4gICAgfCBPbGl2ZWRyYWJcbiAgICB8IE9yYW5nZVxuICAgIHwgT3JhbmdlcmVkXG4gICAgfCBPcmNoaWRcbiAgICB8IFBhbGVnb2xkZW5yb2RcbiAgICB8IFBhbGVncmVlblxuICAgIHwgUGFsZXR1cnF1b2lzZVxuICAgIHwgUGFsZXZpb2xldHJlZFxuICAgIHwgUGFwYXlhd2hpcFxuICAgIHwgUGVhY2hwdWZmXG4gICAgfCBQZXJ1XG4gICAgfCBQaW5rXG4gICAgfCBQbHVtXG4gICAgfCBQb3dkZXJibHVlXG4gICAgfCBQdXJwbGVcbiAgICB8IFJlZFxuICAgIHwgUm9zeWJyb3duXG4gICAgfCBSb3lhbGJsdWVcbiAgICB8IFNhZGRsZWJyb3duXG4gICAgfCBTYWxtb25cbiAgICB8IFNhbmR5YnJvd25cbiAgICB8IFNlYWdyZWVuXG4gICAgfCBTZWFzaGVsbFxuICAgIHwgU2llbm5hXG4gICAgfCBTaWx2ZXJcbiAgICB8IFNreWJsdWVcbiAgICB8IFNsYXRlYmx1ZVxuICAgIHwgU2xhdGVncmF5XG4gICAgfCBTbGF0ZWdyZXlcbiAgICB8IFNub3dcbiAgICB8IFNwcmluZ2dyZWVuXG4gICAgfCBTdGVlbGJsdWVcbiAgICB8IFRhblxuICAgIHwgVGVhbFxuICAgIHwgVGhpc3RsZVxuICAgIHwgVG9tYXRvXG4gICAgfCBUdXJxdW9pc2VcbiAgICB8IFZpb2xldFxuICAgIHwgV2hlYXRcbiAgICB8IFdoaXRlXG4gICAgfCBXaGl0ZXNtb2tlXG4gICAgfCBZZWxsb3dcbiAgICB8IFllbGxvd2dyZWVuXG5cbiAgbGV0IHN0cmluZ19vZl9uYW1lID0gZnVuY3Rpb25cbiAgICB8IEFsaWNlYmx1ZSAtPiBcImFsaWNlYmx1ZVwiXG4gICAgfCBBbnRpcXVld2hpdGUgLT4gXCJhbnRpcXVld2hpdGVcIlxuICAgIHwgQXF1YSAtPiBcImFxdWFcIlxuICAgIHwgQXF1YW1hcmluZSAtPiBcImFxdWFtYXJpbmVcIlxuICAgIHwgQXp1cmUgLT4gXCJhenVyZVwiXG4gICAgfCBCZWlnZSAtPiBcImJlaWdlXCJcbiAgICB8IEJpc3F1ZSAtPiBcImJpc3F1ZVwiXG4gICAgfCBCbGFjayAtPiBcImJsYWNrXCJcbiAgICB8IEJsYW5jaGVkYWxtb25kIC0+IFwiYmxhbmNoZWRhbG1vbmRcIlxuICAgIHwgQmx1ZSAtPiBcImJsdWVcIlxuICAgIHwgQmx1ZXZpb2xldCAtPiBcImJsdWV2aW9sZXRcIlxuICAgIHwgQnJvd24gLT4gXCJicm93blwiXG4gICAgfCBCdXJseXdvb2QgLT4gXCJidXJseXdvb2RcIlxuICAgIHwgQ2FkZXRibHVlIC0+IFwiY2FkZXRibHVlXCJcbiAgICB8IENoYXJ0cmV1c2UgLT4gXCJjaGFydHJldXNlXCJcbiAgICB8IENob2NvbGF0ZSAtPiBcImNob2NvbGF0ZVwiXG4gICAgfCBDb3JhbCAtPiBcImNvcmFsXCJcbiAgICB8IENvcm5mbG93ZXJibHVlIC0+IFwiY29ybmZsb3dlcmJsdWVcIlxuICAgIHwgQ29ybnNpbGsgLT4gXCJjb3Juc2lsa1wiXG4gICAgfCBDcmltc29uIC0+IFwiY3JpbXNvblwiXG4gICAgfCBDeWFuIC0+IFwiY3lhblwiXG4gICAgfCBEYXJrYmx1ZSAtPiBcImRhcmtibHVlXCJcbiAgICB8IERhcmtjeWFuIC0+IFwiZGFya2N5YW5cIlxuICAgIHwgRGFya2dvbGRlbnJvZCAtPiBcImRhcmtnb2xkZW5yb2RcIlxuICAgIHwgRGFya2dyYXkgLT4gXCJkYXJrZ3JheVwiXG4gICAgfCBEYXJrZ3JlZW4gLT4gXCJkYXJrZ3JlZW5cIlxuICAgIHwgRGFya2dyZXkgLT4gXCJkYXJrZ3JleVwiXG4gICAgfCBEYXJra2hha2kgLT4gXCJkYXJra2hha2lcIlxuICAgIHwgRGFya21hZ2VudGEgLT4gXCJkYXJrbWFnZW50YVwiXG4gICAgfCBEYXJrb2xpdmVncmVlbiAtPiBcImRhcmtvbGl2ZWdyZWVuXCJcbiAgICB8IERhcmtvcmFuZ2UgLT4gXCJkYXJrb3JhbmdlXCJcbiAgICB8IERhcmtvcmNoaWQgLT4gXCJkYXJrb3JjaGlkXCJcbiAgICB8IERhcmtyZWQgLT4gXCJkYXJrcmVkXCJcbiAgICB8IERhcmtzYWxtb24gLT4gXCJkYXJrc2FsbW9uXCJcbiAgICB8IERhcmtzZWFncmVlbiAtPiBcImRhcmtzZWFncmVlblwiXG4gICAgfCBEYXJrc2xhdGVibHVlIC0+IFwiZGFya3NsYXRlYmx1ZVwiXG4gICAgfCBEYXJrc2xhdGVncmF5IC0+IFwiZGFya3NsYXRlZ3JheVwiXG4gICAgfCBEYXJrc2xhdGVncmV5IC0+IFwiZGFya3NsYXRlZ3JleVwiXG4gICAgfCBEYXJrdHVycXVvaXNlIC0+IFwiZGFya3R1cnF1b2lzZVwiXG4gICAgfCBEYXJrdmlvbGV0IC0+IFwiZGFya3Zpb2xldFwiXG4gICAgfCBEZWVwcGluayAtPiBcImRlZXBwaW5rXCJcbiAgICB8IERlZXBza3libHVlIC0+IFwiZGVlcHNreWJsdWVcIlxuICAgIHwgRGltZ3JheSAtPiBcImRpbWdyYXlcIlxuICAgIHwgRGltZ3JleSAtPiBcImRpbWdyZXlcIlxuICAgIHwgRG9kZ2VyYmx1ZSAtPiBcImRvZGdlcmJsdWVcIlxuICAgIHwgRmlyZWJyaWNrIC0+IFwiZmlyZWJyaWNrXCJcbiAgICB8IEZsb3JhbHdoaXRlIC0+IFwiZmxvcmFsd2hpdGVcIlxuICAgIHwgRm9yZXN0Z3JlZW4gLT4gXCJmb3Jlc3RncmVlblwiXG4gICAgfCBGdWNoc2lhIC0+IFwiZnVjaHNpYVwiXG4gICAgfCBHYWluc2Jvcm8gLT4gXCJnYWluc2Jvcm9cIlxuICAgIHwgR2hvc3R3aGl0ZSAtPiBcImdob3N0d2hpdGVcIlxuICAgIHwgR29sZCAtPiBcImdvbGRcIlxuICAgIHwgR29sZGVucm9kIC0+IFwiZ29sZGVucm9kXCJcbiAgICB8IEdyYXkgLT4gXCJncmF5XCJcbiAgICB8IEdyZWVuIC0+IFwiZ3JlZW5cIlxuICAgIHwgR3JlZW55ZWxsb3cgLT4gXCJncmVlbnllbGxvd1wiXG4gICAgfCBHcmV5IC0+IFwiZ3JleVwiXG4gICAgfCBIb25leWRldyAtPiBcImhvbmV5ZGV3XCJcbiAgICB8IEhvdHBpbmsgLT4gXCJob3RwaW5rXCJcbiAgICB8IEluZGlhbnJlZCAtPiBcImluZGlhbnJlZFwiXG4gICAgfCBJbmRpZ28gLT4gXCJpbmRpZ29cIlxuICAgIHwgSXZvcnkgLT4gXCJpdm9yeVwiXG4gICAgfCBLaGFraSAtPiBcImtoYWtpXCJcbiAgICB8IExhdmVuZGVyIC0+IFwibGF2ZW5kZXJcIlxuICAgIHwgTGF2ZW5kZXJibHVzaCAtPiBcImxhdmVuZGVyYmx1c2hcIlxuICAgIHwgTGF3bmdyZWVuIC0+IFwibGF3bmdyZWVuXCJcbiAgICB8IExlbW9uY2hpZmZvbiAtPiBcImxlbW9uY2hpZmZvblwiXG4gICAgfCBMaWdodGJsdWUgLT4gXCJsaWdodGJsdWVcIlxuICAgIHwgTGlnaHRjb3JhbCAtPiBcImxpZ2h0Y29yYWxcIlxuICAgIHwgTGlnaHRjeWFuIC0+IFwibGlnaHRjeWFuXCJcbiAgICB8IExpZ2h0Z29sZGVucm9keWVsbG93IC0+IFwibGlnaHRnb2xkZW5yb2R5ZWxsb3dcIlxuICAgIHwgTGlnaHRncmF5IC0+IFwibGlnaHRncmF5XCJcbiAgICB8IExpZ2h0Z3JlZW4gLT4gXCJsaWdodGdyZWVuXCJcbiAgICB8IExpZ2h0Z3JleSAtPiBcImxpZ2h0Z3JleVwiXG4gICAgfCBMaWdodHBpbmsgLT4gXCJsaWdodHBpbmtcIlxuICAgIHwgTGlnaHRzYWxtb24gLT4gXCJsaWdodHNhbG1vblwiXG4gICAgfCBMaWdodHNlYWdyZWVuIC0+IFwibGlnaHRzZWFncmVlblwiXG4gICAgfCBMaWdodHNreWJsdWUgLT4gXCJsaWdodHNreWJsdWVcIlxuICAgIHwgTGlnaHRzbGF0ZWdyYXkgLT4gXCJsaWdodHNsYXRlZ3JheVwiXG4gICAgfCBMaWdodHNsYXRlZ3JleSAtPiBcImxpZ2h0c2xhdGVncmV5XCJcbiAgICB8IExpZ2h0c3RlZWxibHVlIC0+IFwibGlnaHRzdGVlbGJsdWVcIlxuICAgIHwgTGlnaHR5ZWxsb3cgLT4gXCJsaWdodHllbGxvd1wiXG4gICAgfCBMaW1lIC0+IFwibGltZVwiXG4gICAgfCBMaW1lZ3JlZW4gLT4gXCJsaW1lZ3JlZW5cIlxuICAgIHwgTGluZW4gLT4gXCJsaW5lblwiXG4gICAgfCBNYWdlbnRhIC0+IFwibWFnZW50YVwiXG4gICAgfCBNYXJvb24gLT4gXCJtYXJvb25cIlxuICAgIHwgTWVkaXVtYXF1YW1hcmluZSAtPiBcIm1lZGl1bWFxdWFtYXJpbmVcIlxuICAgIHwgTWVkaXVtYmx1ZSAtPiBcIm1lZGl1bWJsdWVcIlxuICAgIHwgTWVkaXVtb3JjaGlkIC0+IFwibWVkaXVtb3JjaGlkXCJcbiAgICB8IE1lZGl1bXB1cnBsZSAtPiBcIm1lZGl1bXB1cnBsZVwiXG4gICAgfCBNZWRpdW1zZWFncmVlbiAtPiBcIm1lZGl1bXNlYWdyZWVuXCJcbiAgICB8IE1lZGl1bXNsYXRlYmx1ZSAtPiBcIm1lZGl1bXNsYXRlYmx1ZVwiXG4gICAgfCBNZWRpdW1zcHJpbmdncmVlbiAtPiBcIm1lZGl1bXNwcmluZ2dyZWVuXCJcbiAgICB8IE1lZGl1bXR1cnF1b2lzZSAtPiBcIm1lZGl1bXR1cnF1b2lzZVwiXG4gICAgfCBNZWRpdW12aW9sZXRyZWQgLT4gXCJtZWRpdW12aW9sZXRyZWRcIlxuICAgIHwgTWlkbmlnaHRibHVlIC0+IFwibWlkbmlnaHRibHVlXCJcbiAgICB8IE1pbnRjcmVhbSAtPiBcIm1pbnRjcmVhbVwiXG4gICAgfCBNaXN0eXJvc2UgLT4gXCJtaXN0eXJvc2VcIlxuICAgIHwgTW9jY2FzaW4gLT4gXCJtb2NjYXNpblwiXG4gICAgfCBOYXZham93aGl0ZSAtPiBcIm5hdmFqb3doaXRlXCJcbiAgICB8IE5hdnkgLT4gXCJuYXZ5XCJcbiAgICB8IE9sZGxhY2UgLT4gXCJvbGRsYWNlXCJcbiAgICB8IE9saXZlIC0+IFwib2xpdmVcIlxuICAgIHwgT2xpdmVkcmFiIC0+IFwib2xpdmVkcmFiXCJcbiAgICB8IE9yYW5nZSAtPiBcIm9yYW5nZVwiXG4gICAgfCBPcmFuZ2VyZWQgLT4gXCJvcmFuZ2VyZWRcIlxuICAgIHwgT3JjaGlkIC0+IFwib3JjaGlkXCJcbiAgICB8IFBhbGVnb2xkZW5yb2QgLT4gXCJwYWxlZ29sZGVucm9kXCJcbiAgICB8IFBhbGVncmVlbiAtPiBcInBhbGVncmVlblwiXG4gICAgfCBQYWxldHVycXVvaXNlIC0+IFwicGFsZXR1cnF1b2lzZVwiXG4gICAgfCBQYWxldmlvbGV0cmVkIC0+IFwicGFsZXZpb2xldHJlZFwiXG4gICAgfCBQYXBheWF3aGlwIC0+IFwicGFwYXlhd2hpcFwiXG4gICAgfCBQZWFjaHB1ZmYgLT4gXCJwZWFjaHB1ZmZcIlxuICAgIHwgUGVydSAtPiBcInBlcnVcIlxuICAgIHwgUGluayAtPiBcInBpbmtcIlxuICAgIHwgUGx1bSAtPiBcInBsdW1cIlxuICAgIHwgUG93ZGVyYmx1ZSAtPiBcInBvd2RlcmJsdWVcIlxuICAgIHwgUHVycGxlIC0+IFwicHVycGxlXCJcbiAgICB8IFJlZCAtPiBcInJlZFwiXG4gICAgfCBSb3N5YnJvd24gLT4gXCJyb3N5YnJvd25cIlxuICAgIHwgUm95YWxibHVlIC0+IFwicm95YWxibHVlXCJcbiAgICB8IFNhZGRsZWJyb3duIC0+IFwic2FkZGxlYnJvd25cIlxuICAgIHwgU2FsbW9uIC0+IFwic2FsbW9uXCJcbiAgICB8IFNhbmR5YnJvd24gLT4gXCJzYW5keWJyb3duXCJcbiAgICB8IFNlYWdyZWVuIC0+IFwic2VhZ3JlZW5cIlxuICAgIHwgU2Vhc2hlbGwgLT4gXCJzZWFzaGVsbFwiXG4gICAgfCBTaWVubmEgLT4gXCJzaWVubmFcIlxuICAgIHwgU2lsdmVyIC0+IFwic2lsdmVyXCJcbiAgICB8IFNreWJsdWUgLT4gXCJza3libHVlXCJcbiAgICB8IFNsYXRlYmx1ZSAtPiBcInNsYXRlYmx1ZVwiXG4gICAgfCBTbGF0ZWdyYXkgLT4gXCJzbGF0ZWdyYXlcIlxuICAgIHwgU2xhdGVncmV5IC0+IFwic2xhdGVncmV5XCJcbiAgICB8IFNub3cgLT4gXCJzbm93XCJcbiAgICB8IFNwcmluZ2dyZWVuIC0+IFwic3ByaW5nZ3JlZW5cIlxuICAgIHwgU3RlZWxibHVlIC0+IFwic3RlZWxibHVlXCJcbiAgICB8IFRhbiAtPiBcInRhblwiXG4gICAgfCBUZWFsIC0+IFwidGVhbFwiXG4gICAgfCBUaGlzdGxlIC0+IFwidGhpc3RsZVwiXG4gICAgfCBUb21hdG8gLT4gXCJ0b21hdG9cIlxuICAgIHwgVHVycXVvaXNlIC0+IFwidHVycXVvaXNlXCJcbiAgICB8IFZpb2xldCAtPiBcInZpb2xldFwiXG4gICAgfCBXaGVhdCAtPiBcIndoZWF0XCJcbiAgICB8IFdoaXRlIC0+IFwid2hpdGVcIlxuICAgIHwgV2hpdGVzbW9rZSAtPiBcIndoaXRlc21va2VcIlxuICAgIHwgWWVsbG93IC0+IFwieWVsbG93XCJcbiAgICB8IFllbGxvd2dyZWVuIC0+IFwieWVsbG93Z3JlZW5cIlxuXG4gIGxldCBuYW1lX29mX3N0cmluZyA9IGZ1bmN0aW9uXG4gICAgfCBcImFsaWNlYmx1ZVwiIC0+IEFsaWNlYmx1ZVxuICAgIHwgXCJhbnRpcXVld2hpdGVcIiAtPiBBbnRpcXVld2hpdGVcbiAgICB8IFwiYXF1YVwiIC0+IEFxdWFcbiAgICB8IFwiYXF1YW1hcmluZVwiIC0+IEFxdWFtYXJpbmVcbiAgICB8IFwiYXp1cmVcIiAtPiBBenVyZVxuICAgIHwgXCJiZWlnZVwiIC0+IEJlaWdlXG4gICAgfCBcImJpc3F1ZVwiIC0+IEJpc3F1ZVxuICAgIHwgXCJibGFja1wiIC0+IEJsYWNrXG4gICAgfCBcImJsYW5jaGVkYWxtb25kXCIgLT4gQmxhbmNoZWRhbG1vbmRcbiAgICB8IFwiYmx1ZVwiIC0+IEJsdWVcbiAgICB8IFwiYmx1ZXZpb2xldFwiIC0+IEJsdWV2aW9sZXRcbiAgICB8IFwiYnJvd25cIiAtPiBCcm93blxuICAgIHwgXCJidXJseXdvb2RcIiAtPiBCdXJseXdvb2RcbiAgICB8IFwiY2FkZXRibHVlXCIgLT4gQ2FkZXRibHVlXG4gICAgfCBcImNoYXJ0cmV1c2VcIiAtPiBDaGFydHJldXNlXG4gICAgfCBcImNob2NvbGF0ZVwiIC0+IENob2NvbGF0ZVxuICAgIHwgXCJjb3JhbFwiIC0+IENvcmFsXG4gICAgfCBcImNvcm5mbG93ZXJibHVlXCIgLT4gQ29ybmZsb3dlcmJsdWVcbiAgICB8IFwiY29ybnNpbGtcIiAtPiBDb3Juc2lsa1xuICAgIHwgXCJjcmltc29uXCIgLT4gQ3JpbXNvblxuICAgIHwgXCJjeWFuXCIgLT4gQ3lhblxuICAgIHwgXCJkYXJrYmx1ZVwiIC0+IERhcmtibHVlXG4gICAgfCBcImRhcmtjeWFuXCIgLT4gRGFya2N5YW5cbiAgICB8IFwiZGFya2dvbGRlbnJvZFwiIC0+IERhcmtnb2xkZW5yb2RcbiAgICB8IFwiZGFya2dyYXlcIiAtPiBEYXJrZ3JheVxuICAgIHwgXCJkYXJrZ3JlZW5cIiAtPiBEYXJrZ3JlZW5cbiAgICB8IFwiZGFya2dyZXlcIiAtPiBEYXJrZ3JleVxuICAgIHwgXCJkYXJra2hha2lcIiAtPiBEYXJra2hha2lcbiAgICB8IFwiZGFya21hZ2VudGFcIiAtPiBEYXJrbWFnZW50YVxuICAgIHwgXCJkYXJrb2xpdmVncmVlblwiIC0+IERhcmtvbGl2ZWdyZWVuXG4gICAgfCBcImRhcmtvcmFuZ2VcIiAtPiBEYXJrb3JhbmdlXG4gICAgfCBcImRhcmtvcmNoaWRcIiAtPiBEYXJrb3JjaGlkXG4gICAgfCBcImRhcmtyZWRcIiAtPiBEYXJrcmVkXG4gICAgfCBcImRhcmtzYWxtb25cIiAtPiBEYXJrc2FsbW9uXG4gICAgfCBcImRhcmtzZWFncmVlblwiIC0+IERhcmtzZWFncmVlblxuICAgIHwgXCJkYXJrc2xhdGVibHVlXCIgLT4gRGFya3NsYXRlYmx1ZVxuICAgIHwgXCJkYXJrc2xhdGVncmF5XCIgLT4gRGFya3NsYXRlZ3JheVxuICAgIHwgXCJkYXJrc2xhdGVncmV5XCIgLT4gRGFya3NsYXRlZ3JleVxuICAgIHwgXCJkYXJrdHVycXVvaXNlXCIgLT4gRGFya3R1cnF1b2lzZVxuICAgIHwgXCJkYXJrdmlvbGV0XCIgLT4gRGFya3Zpb2xldFxuICAgIHwgXCJkZWVwcGlua1wiIC0+IERlZXBwaW5rXG4gICAgfCBcImRlZXBza3libHVlXCIgLT4gRGVlcHNreWJsdWVcbiAgICB8IFwiZGltZ3JheVwiIC0+IERpbWdyYXlcbiAgICB8IFwiZGltZ3JleVwiIC0+IERpbWdyZXlcbiAgICB8IFwiZG9kZ2VyYmx1ZVwiIC0+IERvZGdlcmJsdWVcbiAgICB8IFwiZmlyZWJyaWNrXCIgLT4gRmlyZWJyaWNrXG4gICAgfCBcImZsb3JhbHdoaXRlXCIgLT4gRmxvcmFsd2hpdGVcbiAgICB8IFwiZm9yZXN0Z3JlZW5cIiAtPiBGb3Jlc3RncmVlblxuICAgIHwgXCJmdWNoc2lhXCIgLT4gRnVjaHNpYVxuICAgIHwgXCJnYWluc2Jvcm9cIiAtPiBHYWluc2Jvcm9cbiAgICB8IFwiZ2hvc3R3aGl0ZVwiIC0+IEdob3N0d2hpdGVcbiAgICB8IFwiZ29sZFwiIC0+IEdvbGRcbiAgICB8IFwiZ29sZGVucm9kXCIgLT4gR29sZGVucm9kXG4gICAgfCBcImdyYXlcIiAtPiBHcmF5XG4gICAgfCBcImdyZWVuXCIgLT4gR3JlZW5cbiAgICB8IFwiZ3JlZW55ZWxsb3dcIiAtPiBHcmVlbnllbGxvd1xuICAgIHwgXCJncmV5XCIgLT4gR3JleVxuICAgIHwgXCJob25leWRld1wiIC0+IEhvbmV5ZGV3XG4gICAgfCBcImhvdHBpbmtcIiAtPiBIb3RwaW5rXG4gICAgfCBcImluZGlhbnJlZFwiIC0+IEluZGlhbnJlZFxuICAgIHwgXCJpbmRpZ29cIiAtPiBJbmRpZ29cbiAgICB8IFwiaXZvcnlcIiAtPiBJdm9yeVxuICAgIHwgXCJraGFraVwiIC0+IEtoYWtpXG4gICAgfCBcImxhdmVuZGVyXCIgLT4gTGF2ZW5kZXJcbiAgICB8IFwibGF2ZW5kZXJibHVzaFwiIC0+IExhdmVuZGVyYmx1c2hcbiAgICB8IFwibGF3bmdyZWVuXCIgLT4gTGF3bmdyZWVuXG4gICAgfCBcImxlbW9uY2hpZmZvblwiIC0+IExlbW9uY2hpZmZvblxuICAgIHwgXCJsaWdodGJsdWVcIiAtPiBMaWdodGJsdWVcbiAgICB8IFwibGlnaHRjb3JhbFwiIC0+IExpZ2h0Y29yYWxcbiAgICB8IFwibGlnaHRjeWFuXCIgLT4gTGlnaHRjeWFuXG4gICAgfCBcImxpZ2h0Z29sZGVucm9keWVsbG93XCIgLT4gTGlnaHRnb2xkZW5yb2R5ZWxsb3dcbiAgICB8IFwibGlnaHRncmF5XCIgLT4gTGlnaHRncmF5XG4gICAgfCBcImxpZ2h0Z3JlZW5cIiAtPiBMaWdodGdyZWVuXG4gICAgfCBcImxpZ2h0Z3JleVwiIC0+IExpZ2h0Z3JleVxuICAgIHwgXCJsaWdodHBpbmtcIiAtPiBMaWdodHBpbmtcbiAgICB8IFwibGlnaHRzYWxtb25cIiAtPiBMaWdodHNhbG1vblxuICAgIHwgXCJsaWdodHNlYWdyZWVuXCIgLT4gTGlnaHRzZWFncmVlblxuICAgIHwgXCJsaWdodHNreWJsdWVcIiAtPiBMaWdodHNreWJsdWVcbiAgICB8IFwibGlnaHRzbGF0ZWdyYXlcIiAtPiBMaWdodHNsYXRlZ3JheVxuICAgIHwgXCJsaWdodHNsYXRlZ3JleVwiIC0+IExpZ2h0c2xhdGVncmV5XG4gICAgfCBcImxpZ2h0c3RlZWxibHVlXCIgLT4gTGlnaHRzdGVlbGJsdWVcbiAgICB8IFwibGlnaHR5ZWxsb3dcIiAtPiBMaWdodHllbGxvd1xuICAgIHwgXCJsaW1lXCIgLT4gTGltZVxuICAgIHwgXCJsaW1lZ3JlZW5cIiAtPiBMaW1lZ3JlZW5cbiAgICB8IFwibGluZW5cIiAtPiBMaW5lblxuICAgIHwgXCJtYWdlbnRhXCIgLT4gTWFnZW50YVxuICAgIHwgXCJtYXJvb25cIiAtPiBNYXJvb25cbiAgICB8IFwibWVkaXVtYXF1YW1hcmluZVwiIC0+IE1lZGl1bWFxdWFtYXJpbmVcbiAgICB8IFwibWVkaXVtYmx1ZVwiIC0+IE1lZGl1bWJsdWVcbiAgICB8IFwibWVkaXVtb3JjaGlkXCIgLT4gTWVkaXVtb3JjaGlkXG4gICAgfCBcIm1lZGl1bXB1cnBsZVwiIC0+IE1lZGl1bXB1cnBsZVxuICAgIHwgXCJtZWRpdW1zZWFncmVlblwiIC0+IE1lZGl1bXNlYWdyZWVuXG4gICAgfCBcIm1lZGl1bXNsYXRlYmx1ZVwiIC0+IE1lZGl1bXNsYXRlYmx1ZVxuICAgIHwgXCJtZWRpdW1zcHJpbmdncmVlblwiIC0+IE1lZGl1bXNwcmluZ2dyZWVuXG4gICAgfCBcIm1lZGl1bXR1cnF1b2lzZVwiIC0+IE1lZGl1bXR1cnF1b2lzZVxuICAgIHwgXCJtZWRpdW12aW9sZXRyZWRcIiAtPiBNZWRpdW12aW9sZXRyZWRcbiAgICB8IFwibWlkbmlnaHRibHVlXCIgLT4gTWlkbmlnaHRibHVlXG4gICAgfCBcIm1pbnRjcmVhbVwiIC0+IE1pbnRjcmVhbVxuICAgIHwgXCJtaXN0eXJvc2VcIiAtPiBNaXN0eXJvc2VcbiAgICB8IFwibW9jY2FzaW5cIiAtPiBNb2NjYXNpblxuICAgIHwgXCJuYXZham93aGl0ZVwiIC0+IE5hdmFqb3doaXRlXG4gICAgfCBcIm5hdnlcIiAtPiBOYXZ5XG4gICAgfCBcIm9sZGxhY2VcIiAtPiBPbGRsYWNlXG4gICAgfCBcIm9saXZlXCIgLT4gT2xpdmVcbiAgICB8IFwib2xpdmVkcmFiXCIgLT4gT2xpdmVkcmFiXG4gICAgfCBcIm9yYW5nZVwiIC0+IE9yYW5nZVxuICAgIHwgXCJvcmFuZ2VyZWRcIiAtPiBPcmFuZ2VyZWRcbiAgICB8IFwib3JjaGlkXCIgLT4gT3JjaGlkXG4gICAgfCBcInBhbGVnb2xkZW5yb2RcIiAtPiBQYWxlZ29sZGVucm9kXG4gICAgfCBcInBhbGVncmVlblwiIC0+IFBhbGVncmVlblxuICAgIHwgXCJwYWxldHVycXVvaXNlXCIgLT4gUGFsZXR1cnF1b2lzZVxuICAgIHwgXCJwYWxldmlvbGV0cmVkXCIgLT4gUGFsZXZpb2xldHJlZFxuICAgIHwgXCJwYXBheWF3aGlwXCIgLT4gUGFwYXlhd2hpcFxuICAgIHwgXCJwZWFjaHB1ZmZcIiAtPiBQZWFjaHB1ZmZcbiAgICB8IFwicGVydVwiIC0+IFBlcnVcbiAgICB8IFwicGlua1wiIC0+IFBpbmtcbiAgICB8IFwicGx1bVwiIC0+IFBsdW1cbiAgICB8IFwicG93ZGVyYmx1ZVwiIC0+IFBvd2RlcmJsdWVcbiAgICB8IFwicHVycGxlXCIgLT4gUHVycGxlXG4gICAgfCBcInJlZFwiIC0+IFJlZFxuICAgIHwgXCJyb3N5YnJvd25cIiAtPiBSb3N5YnJvd25cbiAgICB8IFwicm95YWxibHVlXCIgLT4gUm95YWxibHVlXG4gICAgfCBcInNhZGRsZWJyb3duXCIgLT4gU2FkZGxlYnJvd25cbiAgICB8IFwic2FsbW9uXCIgLT4gU2FsbW9uXG4gICAgfCBcInNhbmR5YnJvd25cIiAtPiBTYW5keWJyb3duXG4gICAgfCBcInNlYWdyZWVuXCIgLT4gU2VhZ3JlZW5cbiAgICB8IFwic2Vhc2hlbGxcIiAtPiBTZWFzaGVsbFxuICAgIHwgXCJzaWVubmFcIiAtPiBTaWVubmFcbiAgICB8IFwic2lsdmVyXCIgLT4gU2lsdmVyXG4gICAgfCBcInNreWJsdWVcIiAtPiBTa3libHVlXG4gICAgfCBcInNsYXRlYmx1ZVwiIC0+IFNsYXRlYmx1ZVxuICAgIHwgXCJzbGF0ZWdyYXlcIiAtPiBTbGF0ZWdyYXlcbiAgICB8IFwic2xhdGVncmV5XCIgLT4gU2xhdGVncmV5XG4gICAgfCBcInNub3dcIiAtPiBTbm93XG4gICAgfCBcInNwcmluZ2dyZWVuXCIgLT4gU3ByaW5nZ3JlZW5cbiAgICB8IFwic3RlZWxibHVlXCIgLT4gU3RlZWxibHVlXG4gICAgfCBcInRhblwiIC0+IFRhblxuICAgIHwgXCJ0ZWFsXCIgLT4gVGVhbFxuICAgIHwgXCJ0aGlzdGxlXCIgLT4gVGhpc3RsZVxuICAgIHwgXCJ0b21hdG9cIiAtPiBUb21hdG9cbiAgICB8IFwidHVycXVvaXNlXCIgLT4gVHVycXVvaXNlXG4gICAgfCBcInZpb2xldFwiIC0+IFZpb2xldFxuICAgIHwgXCJ3aGVhdFwiIC0+IFdoZWF0XG4gICAgfCBcIndoaXRlXCIgLT4gV2hpdGVcbiAgICB8IFwid2hpdGVzbW9rZVwiIC0+IFdoaXRlc21va2VcbiAgICB8IFwieWVsbG93XCIgLT4gWWVsbG93XG4gICAgfCBcInllbGxvd2dyZWVuXCIgLT4gWWVsbG93Z3JlZW5cbiAgICB8IHMgLT4gcmFpc2UgKEludmFsaWRfYXJndW1lbnQgKHMgXiBcIiBpcyBub3QgYSB2YWxpZCBjb2xvciBuYW1lXCIpKVxuXG4gIGxldCByZ2Jfb2ZfbmFtZSA9IGZ1bmN0aW9uXG4gICAgfCBBbGljZWJsdWUgLT4gMjQwLCAyNDgsIDI1NVxuICAgIHwgQW50aXF1ZXdoaXRlIC0+IDI1MCwgMjM1LCAyMTVcbiAgICB8IEFxdWEgLT4gMCwgMjU1LCAyNTVcbiAgICB8IEFxdWFtYXJpbmUgLT4gMTI3LCAyNTUsIDIxMlxuICAgIHwgQXp1cmUgLT4gMjQwLCAyNTUsIDI1NVxuICAgIHwgQmVpZ2UgLT4gMjQ1LCAyNDUsIDIyMFxuICAgIHwgQmlzcXVlIC0+IDI1NSwgMjI4LCAxOTZcbiAgICB8IEJsYWNrIC0+IDAsIDAsIDBcbiAgICB8IEJsYW5jaGVkYWxtb25kIC0+IDI1NSwgMjM1LCAyMDVcbiAgICB8IEJsdWUgLT4gMCwgMCwgMjU1XG4gICAgfCBCbHVldmlvbGV0IC0+IDEzOCwgNDMsIDIyNlxuICAgIHwgQnJvd24gLT4gMTY1LCA0MiwgNDJcbiAgICB8IEJ1cmx5d29vZCAtPiAyMjIsIDE4NCwgMTM1XG4gICAgfCBDYWRldGJsdWUgLT4gOTUsIDE1OCwgMTYwXG4gICAgfCBDaGFydHJldXNlIC0+IDEyNywgMjU1LCAwXG4gICAgfCBDaG9jb2xhdGUgLT4gMjEwLCAxMDUsIDMwXG4gICAgfCBDb3JhbCAtPiAyNTUsIDEyNywgODBcbiAgICB8IENvcm5mbG93ZXJibHVlIC0+IDEwMCwgMTQ5LCAyMzdcbiAgICB8IENvcm5zaWxrIC0+IDI1NSwgMjQ4LCAyMjBcbiAgICB8IENyaW1zb24gLT4gMjIwLCAyMCwgNjBcbiAgICB8IEN5YW4gLT4gMCwgMjU1LCAyNTVcbiAgICB8IERhcmtibHVlIC0+IDAsIDAsIDEzOVxuICAgIHwgRGFya2N5YW4gLT4gMCwgMTM5LCAxMzlcbiAgICB8IERhcmtnb2xkZW5yb2QgLT4gMTg0LCAxMzQsIDExXG4gICAgfCBEYXJrZ3JheSAtPiAxNjksIDE2OSwgMTY5XG4gICAgfCBEYXJrZ3JlZW4gLT4gMCwgMTAwLCAwXG4gICAgfCBEYXJrZ3JleSAtPiAxNjksIDE2OSwgMTY5XG4gICAgfCBEYXJra2hha2kgLT4gMTg5LCAxODMsIDEwN1xuICAgIHwgRGFya21hZ2VudGEgLT4gMTM5LCAwLCAxMzlcbiAgICB8IERhcmtvbGl2ZWdyZWVuIC0+IDg1LCAxMDcsIDQ3XG4gICAgfCBEYXJrb3JhbmdlIC0+IDI1NSwgMTQwLCAwXG4gICAgfCBEYXJrb3JjaGlkIC0+IDE1MywgNTAsIDIwNFxuICAgIHwgRGFya3JlZCAtPiAxMzksIDAsIDBcbiAgICB8IERhcmtzYWxtb24gLT4gMjMzLCAxNTAsIDEyMlxuICAgIHwgRGFya3NlYWdyZWVuIC0+IDE0MywgMTg4LCAxNDNcbiAgICB8IERhcmtzbGF0ZWJsdWUgLT4gNzIsIDYxLCAxMzlcbiAgICB8IERhcmtzbGF0ZWdyYXkgLT4gNDcsIDc5LCA3OVxuICAgIHwgRGFya3NsYXRlZ3JleSAtPiA0NywgNzksIDc5XG4gICAgfCBEYXJrdHVycXVvaXNlIC0+IDAsIDIwNiwgMjA5XG4gICAgfCBEYXJrdmlvbGV0IC0+IDE0OCwgMCwgMjExXG4gICAgfCBEZWVwcGluayAtPiAyNTUsIDIwLCAxNDdcbiAgICB8IERlZXBza3libHVlIC0+IDAsIDE5MSwgMjU1XG4gICAgfCBEaW1ncmF5IC0+IDEwNSwgMTA1LCAxMDVcbiAgICB8IERpbWdyZXkgLT4gMTA1LCAxMDUsIDEwNVxuICAgIHwgRG9kZ2VyYmx1ZSAtPiAzMCwgMTQ0LCAyNTVcbiAgICB8IEZpcmVicmljayAtPiAxNzgsIDM0LCAzNFxuICAgIHwgRmxvcmFsd2hpdGUgLT4gMjU1LCAyNTAsIDI0MFxuICAgIHwgRm9yZXN0Z3JlZW4gLT4gMzQsIDEzOSwgMzRcbiAgICB8IEZ1Y2hzaWEgLT4gMjU1LCAwLCAyNTVcbiAgICB8IEdhaW5zYm9ybyAtPiAyMjAsIDIyMCwgMjIwXG4gICAgfCBHaG9zdHdoaXRlIC0+IDI0OCwgMjQ4LCAyNTVcbiAgICB8IEdvbGQgLT4gMjU1LCAyMTUsIDBcbiAgICB8IEdvbGRlbnJvZCAtPiAyMTgsIDE2NSwgMzJcbiAgICB8IEdyYXkgLT4gMTI4LCAxMjgsIDEyOFxuICAgIHwgR3JlZW4gLT4gMCwgMTI4LCAwXG4gICAgfCBHcmVlbnllbGxvdyAtPiAxNzMsIDI1NSwgNDdcbiAgICB8IEdyZXkgLT4gMTI4LCAxMjgsIDEyOFxuICAgIHwgSG9uZXlkZXcgLT4gMjQwLCAyNTUsIDI0MFxuICAgIHwgSG90cGluayAtPiAyNTUsIDEwNSwgMTgwXG4gICAgfCBJbmRpYW5yZWQgLT4gMjA1LCA5MiwgOTJcbiAgICB8IEluZGlnbyAtPiA3NSwgMCwgMTMwXG4gICAgfCBJdm9yeSAtPiAyNTUsIDI1NSwgMjQwXG4gICAgfCBLaGFraSAtPiAyNDAsIDIzMCwgMTQwXG4gICAgfCBMYXZlbmRlciAtPiAyMzAsIDIzMCwgMjUwXG4gICAgfCBMYXZlbmRlcmJsdXNoIC0+IDI1NSwgMjQwLCAyNDVcbiAgICB8IExhd25ncmVlbiAtPiAxMjQsIDI1MiwgMFxuICAgIHwgTGVtb25jaGlmZm9uIC0+IDI1NSwgMjUwLCAyMDVcbiAgICB8IExpZ2h0Ymx1ZSAtPiAxNzMsIDIxNiwgMjMwXG4gICAgfCBMaWdodGNvcmFsIC0+IDI0MCwgMTI4LCAxMjhcbiAgICB8IExpZ2h0Y3lhbiAtPiAyMjQsIDI1NSwgMjU1XG4gICAgfCBMaWdodGdvbGRlbnJvZHllbGxvdyAtPiAyNTAsIDI1MCwgMjEwXG4gICAgfCBMaWdodGdyYXkgLT4gMjExLCAyMTEsIDIxMVxuICAgIHwgTGlnaHRncmVlbiAtPiAxNDQsIDIzOCwgMTQ0XG4gICAgfCBMaWdodGdyZXkgLT4gMjExLCAyMTEsIDIxMVxuICAgIHwgTGlnaHRwaW5rIC0+IDI1NSwgMTgyLCAxOTNcbiAgICB8IExpZ2h0c2FsbW9uIC0+IDI1NSwgMTYwLCAxMjJcbiAgICB8IExpZ2h0c2VhZ3JlZW4gLT4gMzIsIDE3OCwgMTcwXG4gICAgfCBMaWdodHNreWJsdWUgLT4gMTM1LCAyMDYsIDI1MFxuICAgIHwgTGlnaHRzbGF0ZWdyYXkgLT4gMTE5LCAxMzYsIDE1M1xuICAgIHwgTGlnaHRzbGF0ZWdyZXkgLT4gMTE5LCAxMzYsIDE1M1xuICAgIHwgTGlnaHRzdGVlbGJsdWUgLT4gMTc2LCAxOTYsIDIyMlxuICAgIHwgTGlnaHR5ZWxsb3cgLT4gMjU1LCAyNTUsIDIyNFxuICAgIHwgTGltZSAtPiAwLCAyNTUsIDBcbiAgICB8IExpbWVncmVlbiAtPiA1MCwgMjA1LCA1MFxuICAgIHwgTGluZW4gLT4gMjUwLCAyNDAsIDIzMFxuICAgIHwgTWFnZW50YSAtPiAyNTUsIDAsIDI1NVxuICAgIHwgTWFyb29uIC0+IDEyOCwgMCwgMFxuICAgIHwgTWVkaXVtYXF1YW1hcmluZSAtPiAxMDIsIDIwNSwgMTcwXG4gICAgfCBNZWRpdW1ibHVlIC0+IDAsIDAsIDIwNVxuICAgIHwgTWVkaXVtb3JjaGlkIC0+IDE4NiwgODUsIDIxMVxuICAgIHwgTWVkaXVtcHVycGxlIC0+IDE0NywgMTEyLCAyMTlcbiAgICB8IE1lZGl1bXNlYWdyZWVuIC0+IDYwLCAxNzksIDExM1xuICAgIHwgTWVkaXVtc2xhdGVibHVlIC0+IDEyMywgMTA0LCAyMzhcbiAgICB8IE1lZGl1bXNwcmluZ2dyZWVuIC0+IDAsIDI1MCwgMTU0XG4gICAgfCBNZWRpdW10dXJxdW9pc2UgLT4gNzIsIDIwOSwgMjA0XG4gICAgfCBNZWRpdW12aW9sZXRyZWQgLT4gMTk5LCAyMSwgMTMzXG4gICAgfCBNaWRuaWdodGJsdWUgLT4gMjUsIDI1LCAxMTJcbiAgICB8IE1pbnRjcmVhbSAtPiAyNDUsIDI1NSwgMjUwXG4gICAgfCBNaXN0eXJvc2UgLT4gMjU1LCAyMjgsIDIyNVxuICAgIHwgTW9jY2FzaW4gLT4gMjU1LCAyMjgsIDE4MVxuICAgIHwgTmF2YWpvd2hpdGUgLT4gMjU1LCAyMjIsIDE3M1xuICAgIHwgTmF2eSAtPiAwLCAwLCAxMjhcbiAgICB8IE9sZGxhY2UgLT4gMjUzLCAyNDUsIDIzMFxuICAgIHwgT2xpdmUgLT4gMTI4LCAxMjgsIDBcbiAgICB8IE9saXZlZHJhYiAtPiAxMDcsIDE0MiwgMzVcbiAgICB8IE9yYW5nZSAtPiAyNTUsIDE2NSwgMFxuICAgIHwgT3JhbmdlcmVkIC0+IDI1NSwgNjksIDBcbiAgICB8IE9yY2hpZCAtPiAyMTgsIDExMiwgMjE0XG4gICAgfCBQYWxlZ29sZGVucm9kIC0+IDIzOCwgMjMyLCAxNzBcbiAgICB8IFBhbGVncmVlbiAtPiAxNTIsIDI1MSwgMTUyXG4gICAgfCBQYWxldHVycXVvaXNlIC0+IDE3NSwgMjM4LCAyMzhcbiAgICB8IFBhbGV2aW9sZXRyZWQgLT4gMjE5LCAxMTIsIDE0N1xuICAgIHwgUGFwYXlhd2hpcCAtPiAyNTUsIDIzOSwgMjEzXG4gICAgfCBQZWFjaHB1ZmYgLT4gMjU1LCAyMTgsIDE4NVxuICAgIHwgUGVydSAtPiAyMDUsIDEzMywgNjNcbiAgICB8IFBpbmsgLT4gMjU1LCAxOTIsIDIwM1xuICAgIHwgUGx1bSAtPiAyMjEsIDE2MCwgMjIxXG4gICAgfCBQb3dkZXJibHVlIC0+IDE3NiwgMjI0LCAyMzBcbiAgICB8IFB1cnBsZSAtPiAxMjgsIDAsIDEyOFxuICAgIHwgUmVkIC0+IDI1NSwgMCwgMFxuICAgIHwgUm9zeWJyb3duIC0+IDE4OCwgMTQzLCAxNDNcbiAgICB8IFJveWFsYmx1ZSAtPiA2NSwgMTA1LCAyMjVcbiAgICB8IFNhZGRsZWJyb3duIC0+IDEzOSwgNjksIDE5XG4gICAgfCBTYWxtb24gLT4gMjUwLCAxMjgsIDExNFxuICAgIHwgU2FuZHlicm93biAtPiAyNDQsIDE2NCwgOTZcbiAgICB8IFNlYWdyZWVuIC0+IDQ2LCAxMzksIDg3XG4gICAgfCBTZWFzaGVsbCAtPiAyNTUsIDI0NSwgMjM4XG4gICAgfCBTaWVubmEgLT4gMTYwLCA4MiwgNDVcbiAgICB8IFNpbHZlciAtPiAxOTIsIDE5MiwgMTkyXG4gICAgfCBTa3libHVlIC0+IDEzNSwgMjA2LCAyMzVcbiAgICB8IFNsYXRlYmx1ZSAtPiAxMDYsIDkwLCAyMDVcbiAgICB8IFNsYXRlZ3JheSAtPiAxMTIsIDEyOCwgMTQ0XG4gICAgfCBTbGF0ZWdyZXkgLT4gMTEyLCAxMjgsIDE0NFxuICAgIHwgU25vdyAtPiAyNTUsIDI1MCwgMjUwXG4gICAgfCBTcHJpbmdncmVlbiAtPiAwLCAyNTUsIDEyN1xuICAgIHwgU3RlZWxibHVlIC0+IDcwLCAxMzAsIDE4MFxuICAgIHwgVGFuIC0+IDIxMCwgMTgwLCAxNDBcbiAgICB8IFRlYWwgLT4gMCwgMTI4LCAxMjhcbiAgICB8IFRoaXN0bGUgLT4gMjE2LCAxOTEsIDIxNlxuICAgIHwgVG9tYXRvIC0+IDI1NSwgOTksIDcxXG4gICAgfCBUdXJxdW9pc2UgLT4gNjQsIDIyNCwgMjA4XG4gICAgfCBWaW9sZXQgLT4gMjM4LCAxMzAsIDIzOFxuICAgIHwgV2hlYXQgLT4gMjQ1LCAyMjIsIDE3OVxuICAgIHwgV2hpdGUgLT4gMjU1LCAyNTUsIDI1NVxuICAgIHwgV2hpdGVzbW9rZSAtPiAyNDUsIDI0NSwgMjQ1XG4gICAgfCBZZWxsb3cgLT4gMjU1LCAyNTUsIDBcbiAgICB8IFllbGxvd2dyZWVuIC0+IDE1NCwgMjA1LCA1MFxuXG4gIHR5cGUgdCA9XG4gICAgfCBOYW1lIG9mIG5hbWVcbiAgICB8IFJHQiBvZiAoaW50ICogaW50ICogaW50KVxuICAgICAgICAoKiogUmVkLCBHcmVlbiBhbmQgQmx1ZSB2YWx1ZXMuIENsaXBwZWQgdG8gW1swLi4yNTVdXSBieSBtb3N0IChBbGw/KVxuICAgICAgICAgICAgYnJvd3NlcnMuICopXG4gICAgfCBSR0JfcGVyY2VudCBvZiAoaW50ICogaW50ICogaW50KVxuICAgICAgICAoKiogUkdCIGNoYW5uZWxzIGFyZSBzcGVjaWZpZWQgYXMgYSBwZXJjZW50YWdlIG9mIHRoZWlyIG1heGltYWwgdmFsdWUuICopXG4gICAgfCBSR0JBIG9mIChpbnQgKiBpbnQgKiBpbnQgKiBmbG9hdClcbiAgICAgICAgKCoqIFNhbWUgYXMgUkdCIHdpdGggYWRkaXRpb25hbCB0cmFuc3BhcmVuY3kgYXJndW1lbnQuIE9wYWNpdHkgc2hvdWxkIGJlIGluXG4gICAgICAgICAgICBbMC5dIChjb21wbGV0ZWx5IHRyYW5zcGFyZW50KSBhbmQgWzEuXSAoY29tcGxldGVseSBvcGFxdWUpLiAqKVxuICAgIHwgUkdCQV9wZXJjZW50IG9mIChpbnQgKiBpbnQgKiBpbnQgKiBmbG9hdClcbiAgICAgICAgKCoqIFJHQiBjaGFubmVscyBzcGVjaWZpZWQgYXMgcGVyY2VudGFnZSBvZiB0aGVpciBtYXhpbWFsIHZhbHVlLiBBbHBoYVxuICAgICAgICAgICAgY2hhbm5lbCAob3BhY2l0eSkgaXMgc3RpbGwgYSBbMC5dIHRvIFsxLl0gZmxvYXQuICopXG4gICAgfCBIU0wgb2YgKGludCAqIGludCAqIGludClcbiAgICAgICAgKCoqIEh1ZSwgU2F0dXJhdGlvbiBhbmQgTGlnaHRuZXNzIHZhbHVlcy4gSHVlIGlzIGFuIGFuZ2xlIGluIGRlZ3JlZSAoaW5cbiAgICAgICAgICAgIGludGVydmFsIFtbMC4uMzYwW10pLiBTYXR1cmF0aW9uIGlzIGEgcGVyY2VudGFnZSAoW1swLi4xMDBdXSkgd2l0aCBbMF1cbiAgICAgICAgICAgIGJlaW5nIGNvbG9ybGVzcy4gTGlnaHRuZXNzIGlzIGFsc28gYSBwZXJjZW50YWdlIChbWzAuLjEwMF1dKSB3aXRoIFswXVxuICAgICAgICAgICAgYmVpbmcgYmxhY2suICopXG4gICAgfCBIU0xBIG9mIChpbnQgKiBpbnQgKiBpbnQgKiBmbG9hdClcbiAgICAgICAgKCoqIFNhbWUgYXMgSFNMIHdpdGggYW4gb3BhY2l0eSBhcmd1bWVudCBiZXR3ZWVuIFswLl0gYW5kIFsxLl0uICopXG5cbiAgbGV0IHJnYiA/YSByIGcgYiA9XG4gICAgbWF0Y2ggYSB3aXRoXG4gICAgfCBOb25lIC0+IFJHQiAociwgZywgYilcbiAgICB8IFNvbWUgYSAtPiBSR0JBIChyLCBnLCBiLCBhKVxuXG4gIGxldCBoc2wgP2EgaCBzIGwgPVxuICAgIG1hdGNoIGEgd2l0aFxuICAgIHwgTm9uZSAtPiBIU0wgKGgsIHMsIGwpXG4gICAgfCBTb21lIGEgLT4gSFNMQSAoaCwgcywgbCwgYSlcblxuICBsZXQgc3RyaW5nX29mX3QgPSBmdW5jdGlvblxuICAgIHwgTmFtZSBuIC0+IHN0cmluZ19vZl9uYW1lIG5cbiAgICB8IFJHQiAociwgZywgYikgLT4gUHJpbnRmLnNwcmludGYgXCJyZ2IoJWQsJWQsJWQpXCIgciBnIGJcbiAgICB8IFJHQl9wZXJjZW50IChyLCBnLCBiKSAtPiBQcmludGYuc3ByaW50ZiBcInJnYiglZCUlLCVkJSUsJWQlJSlcIiByIGcgYlxuICAgIHwgUkdCQSAociwgZywgYiwgYSkgLT4gUHJpbnRmLnNwcmludGYgXCJyZ2JhKCVkLCVkLCVkLCVmKVwiIHIgZyBiIGFcbiAgICB8IFJHQkFfcGVyY2VudCAociwgZywgYiwgYSkgLT4gUHJpbnRmLnNwcmludGYgXCJyZ2JhKCVkJSUsJWQlJSwlZCUlLCVmKVwiIHIgZyBiIGFcbiAgICB8IEhTTCAoaCwgcywgbCkgLT4gUHJpbnRmLnNwcmludGYgXCJoc2woJWQsJWQlJSwlZCUlKVwiIGggcyBsXG4gICAgfCBIU0xBIChoLCBzLCBsLCBhKSAtPiBQcmludGYuc3ByaW50ZiBcImhzbGEoJWQsJWQlJSwlZCUlLCVmKVwiIGggcyBsIGFcblxuICBsZXQgaGV4X29mX3JnYiAocmVkLCBncmVlbiwgYmx1ZSkgPVxuICAgIGxldCBpbl9yYW5nZSBpID1cbiAgICAgIGlmIGkgPCAwIHx8IGkgPiAyNTVcbiAgICAgIHRoZW4gcmFpc2UgKEludmFsaWRfYXJndW1lbnQgKHN0cmluZ19vZl9pbnQgaSBeIFwiIGlzIG91dCBvZiB2YWxpZCByYW5nZVwiKSlcbiAgICBpblxuICAgIGluX3JhbmdlIHJlZDtcbiAgICBpbl9yYW5nZSBncmVlbjtcbiAgICBpbl9yYW5nZSBibHVlO1xuICAgIFByaW50Zi5zcHJpbnRmIFwiIyUwMlglMDJYJTAyWFwiIHJlZCBncmVlbiBibHVlXG5cbiAgKCogT2NhbWwgPC0+IEpTIHJlcHJlc2VudGF0aW9uICopXG4gIHR5cGUganNfdCA9IEpzLmpzX3N0cmluZyBKcy50XG5cbiAgKCogVE9ETz8gYmUgbW9yZSByZXN0cmljdGl2ZSwgY2xpcCB2YWx1ZXMgaW50byBzdGFuZGFyZCByYW5nZSAqKVxuICBsZXQganNfdF9vZl9qc19zdHJpbmcgcyA9XG4gICAgbGV0IHJnYl9yZSA9XG4gICAgICBuZXclanMgSnMucmVnRXhwIChKcy5ieXRlc3RyaW5nIFwiXnJnYlxcXFwoXFxcXHMqXFxcXGQqLFxcXFxzKlxcXFxkKixcXFxccypcXFxcZCpcXFxcKSRcIilcbiAgICBpblxuICAgIGxldCByZ2JfcGN0X3JlID1cbiAgICAgIG5ldyVqcyBKcy5yZWdFeHAgKEpzLmJ5dGVzdHJpbmcgXCJecmdiXFxcXChcXFxccypcXFxcZColLFxcXFxzKlxcXFxkKiUsXFxcXHMqXFxcXGQqJVxcXFwpJFwiKVxuICAgIGluXG4gICAgbGV0IHJnYmFfcmUgPVxuICAgICAgbmV3JWpzIEpzLnJlZ0V4cFxuICAgICAgICAoSnMuYnl0ZXN0cmluZyBcIl5yZ2JhXFxcXChcXFxccypcXFxcZCosXFxcXHMqXFxcXGQqLFxcXFxzKlxcXFxkKixcXFxcZCpcXFxcLj9cXFxcZCpcXFxcKSRcIilcbiAgICBpblxuICAgIGxldCByZ2JhX3BjdF9yZSA9XG4gICAgICBuZXclanMgSnMucmVnRXhwXG4gICAgICAgIChKcy5ieXRlc3RyaW5nIFwiXnJnYmFcXFxcKFxcXFxzKlxcXFxkKiUsXFxcXHMqXFxcXGQqJSxcXFxccypcXFxcZColLFxcXFxkKlxcXFwuP1xcXFxkKlxcXFwpJFwiKVxuICAgIGluXG4gICAgbGV0IGhzbF9yZSA9XG4gICAgICBuZXclanMgSnMucmVnRXhwIChKcy5ieXRlc3RyaW5nIFwiXmhzbFxcXFwoXFxcXHMqXFxcXGQqLFxcXFxzKlxcXFxkKiUsXFxcXHMqXFxcXGQqJVxcXFwpJFwiKVxuICAgIGluXG4gICAgbGV0IGhzbGFfcmUgPVxuICAgICAgbmV3JWpzIEpzLnJlZ0V4cFxuICAgICAgICAoSnMuYnl0ZXN0cmluZyBcIl5oc2xhXFxcXChcXFxccypcXFxcZCosXFxcXHMqXFxcXGQqJSxcXFxccypcXFxcZColLFxcXFxkKlxcXFwuP1xcXFxkKlxcXFwpJFwiKVxuICAgIGluXG4gICAgaWYgSnMudG9fYm9vbCAocmdiX3JlIyN0ZXN0IHMpXG4gICAgICAgfHwgSnMudG9fYm9vbCAocmdiYV9yZSMjdGVzdCBzKVxuICAgICAgIHx8IEpzLnRvX2Jvb2wgKHJnYl9wY3RfcmUjI3Rlc3QgcylcbiAgICAgICB8fCBKcy50b19ib29sIChyZ2JhX3BjdF9yZSMjdGVzdCBzKVxuICAgICAgIHx8IEpzLnRvX2Jvb2wgKGhzbF9yZSMjdGVzdCBzKVxuICAgICAgIHx8IEpzLnRvX2Jvb2wgKGhzbGFfcmUjI3Rlc3QgcylcbiAgICB0aGVuIHNcbiAgICBlbHNlIGlmIExpc3QubWVtXG4gICAgICAgICAgICAgIChKcy50b19zdHJpbmcgcylcbiAgICAgICAgICAgICAgWyBcImFsaWNlYmx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJhbnRpcXVld2hpdGVcIlxuICAgICAgICAgICAgICA7IFwiYXF1YVwiXG4gICAgICAgICAgICAgIDsgXCJhcXVhbWFyaW5lXCJcbiAgICAgICAgICAgICAgOyBcImF6dXJlXCJcbiAgICAgICAgICAgICAgOyBcImJlaWdlXCJcbiAgICAgICAgICAgICAgOyBcImJpc3F1ZVwiXG4gICAgICAgICAgICAgIDsgXCJibGFja1wiXG4gICAgICAgICAgICAgIDsgXCJibGFuY2hlZGFsbW9uZFwiXG4gICAgICAgICAgICAgIDsgXCJibHVlXCJcbiAgICAgICAgICAgICAgOyBcImJsdWV2aW9sZXRcIlxuICAgICAgICAgICAgICA7IFwiYnJvd25cIlxuICAgICAgICAgICAgICA7IFwiYnVybHl3b29kXCJcbiAgICAgICAgICAgICAgOyBcImNhZGV0Ymx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJjaGFydHJldXNlXCJcbiAgICAgICAgICAgICAgOyBcImNob2NvbGF0ZVwiXG4gICAgICAgICAgICAgIDsgXCJjb3JhbFwiXG4gICAgICAgICAgICAgIDsgXCJjb3JuZmxvd2VyYmx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJjb3Juc2lsa1wiXG4gICAgICAgICAgICAgIDsgXCJjcmltc29uXCJcbiAgICAgICAgICAgICAgOyBcImN5YW5cIlxuICAgICAgICAgICAgICA7IFwiZGFya2JsdWVcIlxuICAgICAgICAgICAgICA7IFwiZGFya2N5YW5cIlxuICAgICAgICAgICAgICA7IFwiZGFya2dvbGRlbnJvZFwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrZ3JheVwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrZ3JlZW5cIlxuICAgICAgICAgICAgICA7IFwiZGFya2dyZXlcIlxuICAgICAgICAgICAgICA7IFwiZGFya2toYWtpXCJcbiAgICAgICAgICAgICAgOyBcImRhcmttYWdlbnRhXCJcbiAgICAgICAgICAgICAgOyBcImRhcmtvbGl2ZWdyZWVuXCJcbiAgICAgICAgICAgICAgOyBcImRhcmtvcmFuZ2VcIlxuICAgICAgICAgICAgICA7IFwiZGFya29yY2hpZFwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrcmVkXCJcbiAgICAgICAgICAgICAgOyBcImRhcmtzYWxtb25cIlxuICAgICAgICAgICAgICA7IFwiZGFya3NlYWdyZWVuXCJcbiAgICAgICAgICAgICAgOyBcImRhcmtzbGF0ZWJsdWVcIlxuICAgICAgICAgICAgICA7IFwiZGFya3NsYXRlZ3JheVwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrc2xhdGVncmV5XCJcbiAgICAgICAgICAgICAgOyBcImRhcmt0dXJxdW9pc2VcIlxuICAgICAgICAgICAgICA7IFwiZGFya3Zpb2xldFwiXG4gICAgICAgICAgICAgIDsgXCJkZWVwcGlua1wiXG4gICAgICAgICAgICAgIDsgXCJkZWVwc2t5Ymx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJkaW1ncmF5XCJcbiAgICAgICAgICAgICAgOyBcImRpbWdyZXlcIlxuICAgICAgICAgICAgICA7IFwiZG9kZ2VyYmx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJmaXJlYnJpY2tcIlxuICAgICAgICAgICAgICA7IFwiZmxvcmFsd2hpdGVcIlxuICAgICAgICAgICAgICA7IFwiZm9yZXN0Z3JlZW5cIlxuICAgICAgICAgICAgICA7IFwiZnVjaHNpYVwiXG4gICAgICAgICAgICAgIDsgXCJnYWluc2Jvcm9cIlxuICAgICAgICAgICAgICA7IFwiZ2hvc3R3aGl0ZVwiXG4gICAgICAgICAgICAgIDsgXCJnb2xkXCJcbiAgICAgICAgICAgICAgOyBcImdvbGRlbnJvZFwiXG4gICAgICAgICAgICAgIDsgXCJncmF5XCJcbiAgICAgICAgICAgICAgOyBcImdyZWVuXCJcbiAgICAgICAgICAgICAgOyBcImdyZWVueWVsbG93XCJcbiAgICAgICAgICAgICAgOyBcImdyZXlcIlxuICAgICAgICAgICAgICA7IFwiaG9uZXlkZXdcIlxuICAgICAgICAgICAgICA7IFwiaG90cGlua1wiXG4gICAgICAgICAgICAgIDsgXCJpbmRpYW5yZWRcIlxuICAgICAgICAgICAgICA7IFwiaW5kaWdvXCJcbiAgICAgICAgICAgICAgOyBcIml2b3J5XCJcbiAgICAgICAgICAgICAgOyBcImtoYWtpXCJcbiAgICAgICAgICAgICAgOyBcImxhdmVuZGVyXCJcbiAgICAgICAgICAgICAgOyBcImxhdmVuZGVyYmx1c2hcIlxuICAgICAgICAgICAgICA7IFwibGF3bmdyZWVuXCJcbiAgICAgICAgICAgICAgOyBcImxlbW9uY2hpZmZvblwiXG4gICAgICAgICAgICAgIDsgXCJsaWdodGJsdWVcIlxuICAgICAgICAgICAgICA7IFwibGlnaHRjb3JhbFwiXG4gICAgICAgICAgICAgIDsgXCJsaWdodGN5YW5cIlxuICAgICAgICAgICAgICA7IFwibGlnaHRnb2xkZW5yb2R5ZWxsb3dcIlxuICAgICAgICAgICAgICA7IFwibGlnaHRncmF5XCJcbiAgICAgICAgICAgICAgOyBcImxpZ2h0Z3JlZW5cIlxuICAgICAgICAgICAgICA7IFwibGlnaHRncmV5XCJcbiAgICAgICAgICAgICAgOyBcImxpZ2h0cGlua1wiXG4gICAgICAgICAgICAgIDsgXCJsaWdodHNhbG1vblwiXG4gICAgICAgICAgICAgIDsgXCJsaWdodHNlYWdyZWVuXCJcbiAgICAgICAgICAgICAgOyBcImxpZ2h0c2t5Ymx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJsaWdodHNsYXRlZ3JheVwiXG4gICAgICAgICAgICAgIDsgXCJsaWdodHNsYXRlZ3JleVwiXG4gICAgICAgICAgICAgIDsgXCJsaWdodHN0ZWVsYmx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJsaWdodHllbGxvd1wiXG4gICAgICAgICAgICAgIDsgXCJsaW1lXCJcbiAgICAgICAgICAgICAgOyBcImxpbWVncmVlblwiXG4gICAgICAgICAgICAgIDsgXCJsaW5lblwiXG4gICAgICAgICAgICAgIDsgXCJtYWdlbnRhXCJcbiAgICAgICAgICAgICAgOyBcIm1hcm9vblwiXG4gICAgICAgICAgICAgIDsgXCJtZWRpdW1hcXVhbWFyaW5lXCJcbiAgICAgICAgICAgICAgOyBcIm1lZGl1bWJsdWVcIlxuICAgICAgICAgICAgICA7IFwibWVkaXVtb3JjaGlkXCJcbiAgICAgICAgICAgICAgOyBcIm1lZGl1bXB1cnBsZVwiXG4gICAgICAgICAgICAgIDsgXCJtZWRpdW1zZWFncmVlblwiXG4gICAgICAgICAgICAgIDsgXCJtZWRpdW1zbGF0ZWJsdWVcIlxuICAgICAgICAgICAgICA7IFwibWVkaXVtc3ByaW5nZ3JlZW5cIlxuICAgICAgICAgICAgICA7IFwibWVkaXVtdHVycXVvaXNlXCJcbiAgICAgICAgICAgICAgOyBcIm1lZGl1bXZpb2xldHJlZFwiXG4gICAgICAgICAgICAgIDsgXCJtaWRuaWdodGJsdWVcIlxuICAgICAgICAgICAgICA7IFwibWludGNyZWFtXCJcbiAgICAgICAgICAgICAgOyBcIm1pc3R5cm9zZVwiXG4gICAgICAgICAgICAgIDsgXCJtb2NjYXNpblwiXG4gICAgICAgICAgICAgIDsgXCJuYXZham93aGl0ZVwiXG4gICAgICAgICAgICAgIDsgXCJuYXZ5XCJcbiAgICAgICAgICAgICAgOyBcIm9sZGxhY2VcIlxuICAgICAgICAgICAgICA7IFwib2xpdmVcIlxuICAgICAgICAgICAgICA7IFwib2xpdmVkcmFiXCJcbiAgICAgICAgICAgICAgOyBcIm9yYW5nZVwiXG4gICAgICAgICAgICAgIDsgXCJvcmFuZ2VyZWRcIlxuICAgICAgICAgICAgICA7IFwib3JjaGlkXCJcbiAgICAgICAgICAgICAgOyBcInBhbGVnb2xkZW5yb2RcIlxuICAgICAgICAgICAgICA7IFwicGFsZWdyZWVuXCJcbiAgICAgICAgICAgICAgOyBcInBhbGV0dXJxdW9pc2VcIlxuICAgICAgICAgICAgICA7IFwicGFsZXZpb2xldHJlZFwiXG4gICAgICAgICAgICAgIDsgXCJwYXBheWF3aGlwXCJcbiAgICAgICAgICAgICAgOyBcInBlYWNocHVmZlwiXG4gICAgICAgICAgICAgIDsgXCJwZXJ1XCJcbiAgICAgICAgICAgICAgOyBcInBpbmtcIlxuICAgICAgICAgICAgICA7IFwicGx1bVwiXG4gICAgICAgICAgICAgIDsgXCJwb3dkZXJibHVlXCJcbiAgICAgICAgICAgICAgOyBcInB1cnBsZVwiXG4gICAgICAgICAgICAgIDsgXCJyZWRcIlxuICAgICAgICAgICAgICA7IFwicm9zeWJyb3duXCJcbiAgICAgICAgICAgICAgOyBcInJveWFsYmx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJzYWRkbGVicm93blwiXG4gICAgICAgICAgICAgIDsgXCJzYWxtb25cIlxuICAgICAgICAgICAgICA7IFwic2FuZHlicm93blwiXG4gICAgICAgICAgICAgIDsgXCJzZWFncmVlblwiXG4gICAgICAgICAgICAgIDsgXCJzZWFzaGVsbFwiXG4gICAgICAgICAgICAgIDsgXCJzaWVubmFcIlxuICAgICAgICAgICAgICA7IFwic2lsdmVyXCJcbiAgICAgICAgICAgICAgOyBcInNreWJsdWVcIlxuICAgICAgICAgICAgICA7IFwic2xhdGVibHVlXCJcbiAgICAgICAgICAgICAgOyBcInNsYXRlZ3JheVwiXG4gICAgICAgICAgICAgIDsgXCJzbGF0ZWdyZXlcIlxuICAgICAgICAgICAgICA7IFwic25vd1wiXG4gICAgICAgICAgICAgIDsgXCJzcHJpbmdncmVlblwiXG4gICAgICAgICAgICAgIDsgXCJzdGVlbGJsdWVcIlxuICAgICAgICAgICAgICA7IFwidGFuXCJcbiAgICAgICAgICAgICAgOyBcInRlYWxcIlxuICAgICAgICAgICAgICA7IFwidGhpc3RsZVwiXG4gICAgICAgICAgICAgIDsgXCJ0b21hdG9cIlxuICAgICAgICAgICAgICA7IFwidHVycXVvaXNlXCJcbiAgICAgICAgICAgICAgOyBcInZpb2xldFwiXG4gICAgICAgICAgICAgIDsgXCJ3aGVhdFwiXG4gICAgICAgICAgICAgIDsgXCJ3aGl0ZVwiXG4gICAgICAgICAgICAgIDsgXCJ3aGl0ZXNtb2tlXCJcbiAgICAgICAgICAgICAgOyBcInllbGxvd1wiXG4gICAgICAgICAgICAgIDsgXCJ5ZWxsb3dncmVlblwiXG4gICAgICAgICAgICAgIF1cbiAgICB0aGVuIHNcbiAgICBlbHNlIHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IChKcy50b19zdHJpbmcgcyBeIFwiIGlzIG5vdCBhIHZhbGlkIGNvbG9yXCIpKVxuXG4gIGxldCBuYW1lIGNuID0gSnMuc3RyaW5nIChzdHJpbmdfb2ZfbmFtZSBjbilcblxuICBsZXQganMgPSBmdW5jdGlvblxuICAgIHwgTmFtZSBuIC0+IG5hbWUgblxuICAgIHwgKFJHQiBfIHwgUkdCX3BlcmNlbnQgXyB8IFJHQkEgXyB8IFJHQkFfcGVyY2VudCBfIHwgSFNMIF8gfCBIU0xBIF8pIGFzIGMgLT5cbiAgICAgICAgSnMuc3RyaW5nIChzdHJpbmdfb2ZfdCBjKVxuXG4gIGxldCBtbCBjID1cbiAgICBsZXQgcyA9IEpzLnRvX3N0cmluZyBjIGluXG4gICAgdHJ5IE5hbWUgKG5hbWVfb2Zfc3RyaW5nIHMpXG4gICAgd2l0aCBJbnZhbGlkX2FyZ3VtZW50IF8gLT4gKFxuICAgICAgbGV0IGZhaWwgKCkgPSByYWlzZSAoSW52YWxpZF9hcmd1bWVudCAocyBeIFwiIGlzIG5vdCBhIHZhbGlkIGNvbG9yXCIpKSBpblxuICAgICAgbGV0IHJlX3JnYiA9XG4gICAgICAgIFJlZ2V4cC5yZWdleHAgXCIocmdiYT8pXFxcXCgoPzooXFxcXGQqKSwoXFxcXGQqKSwoXFxcXGQqKSg/OiwoXFxcXGQqKD86XFxcXC5cXFxcZCopPykpPylcXFxcKVwiXG4gICAgICBpblxuICAgICAgbGV0IHJlX3JnYl9wY3QgPVxuICAgICAgICBSZWdleHAucmVnZXhwIFwiKHJnYmE/KVxcXFwoKD86KFxcXFxkKiklLChcXFxcZCopJSwoXFxcXGQqKSUoPzosKFxcXFxkKig/OlxcXFwuXFxcXGQqKT8pKT8pXFxcXClcIlxuICAgICAgaW5cbiAgICAgIGxldCByZV9oc2wgPVxuICAgICAgICBSZWdleHAucmVnZXhwIFwiKGhzbGE/KVxcXFwoKD86KFxcXFxkKiksKFxcXFxkKiklLChcXFxcZCopJSg/OiwoXFxcXGQqKD86XFxcXC5cXFxcZCopPykpPylcXFxcKVwiXG4gICAgICBpblxuICAgICAgbGV0IGlfb2Zfc19vID0gZnVuY3Rpb25cbiAgICAgICAgfCBOb25lIC0+IGZhaWwgKClcbiAgICAgICAgfCBTb21lIGkgLT4gKFxuICAgICAgICAgICAgdHJ5IGludF9vZl9zdHJpbmcgaVxuICAgICAgICAgICAgd2l0aCBJbnZhbGlkX2FyZ3VtZW50IHMgfCBGYWlsdXJlIHMgLT5cbiAgICAgICAgICAgICAgcmFpc2UgKEludmFsaWRfYXJndW1lbnQgKFwiY29sb3IgY29udmVyc2lvbiBlcnJvciAoXCIgXiBpIF4gXCIpOiBcIiBeIHMpKSlcbiAgICAgIGluXG4gICAgICBsZXQgZl9vZl9zIGYgPVxuICAgICAgICB0cnkgZmxvYXRfb2Zfc3RyaW5nIGZcbiAgICAgICAgd2l0aCBJbnZhbGlkX2FyZ3VtZW50IHMgfCBGYWlsdXJlIHMgLT5cbiAgICAgICAgICByYWlzZSAoSW52YWxpZF9hcmd1bWVudCAoXCJjb2xvciBjb252ZXJzaW9uIGVycm9yIChcIiBeIGYgXiBcIik6IFwiIF4gcykpXG4gICAgICBpblxuICAgICAgbWF0Y2ggUmVnZXhwLnN0cmluZ19tYXRjaCByZV9yZ2IgcyAwIHdpdGhcbiAgICAgIHwgU29tZSByIC0+IChcbiAgICAgICAgICBsZXQgcmVkID0gUmVnZXhwLm1hdGNoZWRfZ3JvdXAgciAyIGluXG4gICAgICAgICAgbGV0IGdyZWVuID0gUmVnZXhwLm1hdGNoZWRfZ3JvdXAgciAzIGluXG4gICAgICAgICAgbGV0IGJsdWUgPSBSZWdleHAubWF0Y2hlZF9ncm91cCByIDQgaW5cbiAgICAgICAgICBsZXQgYWxwaGEgPSBSZWdleHAubWF0Y2hlZF9ncm91cCByIDUgaW5cbiAgICAgICAgICBtYXRjaCBSZWdleHAubWF0Y2hlZF9ncm91cCByIDEgd2l0aFxuICAgICAgICAgIHwgU29tZSBcInJnYlwiIC0+IChcbiAgICAgICAgICAgICAgbWF0Y2ggYWxwaGEgd2l0aFxuICAgICAgICAgICAgICB8IFNvbWUgXyAtPiBmYWlsICgpXG4gICAgICAgICAgICAgIHwgTm9uZSAtPiBSR0IgKGlfb2Zfc19vIHJlZCwgaV9vZl9zX28gZ3JlZW4sIGlfb2Zfc19vIGJsdWUpKVxuICAgICAgICAgIHwgU29tZSBcInJnYmFcIiAtPiAoXG4gICAgICAgICAgICAgIG1hdGNoIGFscGhhIHdpdGhcbiAgICAgICAgICAgICAgfCBOb25lIC0+IGZhaWwgKClcbiAgICAgICAgICAgICAgfCBTb21lIGEgLT4gUkdCQSAoaV9vZl9zX28gcmVkLCBpX29mX3NfbyBncmVlbiwgaV9vZl9zX28gYmx1ZSwgZl9vZl9zIGEpKVxuICAgICAgICAgIHwgU29tZSBfIHwgTm9uZSAtPiBmYWlsICgpKVxuICAgICAgfCBOb25lIC0+IChcbiAgICAgICAgICBtYXRjaCBSZWdleHAuc3RyaW5nX21hdGNoIHJlX3JnYl9wY3QgcyAwIHdpdGhcbiAgICAgICAgICB8IFNvbWUgciAtPiAoXG4gICAgICAgICAgICAgIGxldCByZWQgPSBSZWdleHAubWF0Y2hlZF9ncm91cCByIDIgaW5cbiAgICAgICAgICAgICAgbGV0IGdyZWVuID0gUmVnZXhwLm1hdGNoZWRfZ3JvdXAgciAzIGluXG4gICAgICAgICAgICAgIGxldCBibHVlID0gUmVnZXhwLm1hdGNoZWRfZ3JvdXAgciA0IGluXG4gICAgICAgICAgICAgIGxldCBhbHBoYSA9IFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgNSBpblxuICAgICAgICAgICAgICBtYXRjaCBSZWdleHAubWF0Y2hlZF9ncm91cCByIDEgd2l0aFxuICAgICAgICAgICAgICB8IFNvbWUgXCJyZ2JcIiAtPiAoXG4gICAgICAgICAgICAgICAgICBtYXRjaCBhbHBoYSB3aXRoXG4gICAgICAgICAgICAgICAgICB8IFNvbWUgXyAtPiBmYWlsICgpXG4gICAgICAgICAgICAgICAgICB8IE5vbmUgLT4gUkdCX3BlcmNlbnQgKGlfb2Zfc19vIHJlZCwgaV9vZl9zX28gZ3JlZW4sIGlfb2Zfc19vIGJsdWUpKVxuICAgICAgICAgICAgICB8IFNvbWUgXCJyZ2JhXCIgLT4gKFxuICAgICAgICAgICAgICAgICAgbWF0Y2ggYWxwaGEgd2l0aFxuICAgICAgICAgICAgICAgICAgfCBOb25lIC0+IGZhaWwgKClcbiAgICAgICAgICAgICAgICAgIHwgU29tZSBhIC0+XG4gICAgICAgICAgICAgICAgICAgICAgUkdCQV9wZXJjZW50IChpX29mX3NfbyByZWQsIGlfb2Zfc19vIGdyZWVuLCBpX29mX3NfbyBibHVlLCBmX29mX3MgYSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfCBTb21lIF8gfCBOb25lIC0+IGZhaWwgKCkpXG4gICAgICAgICAgfCBOb25lIC0+IChcbiAgICAgICAgICAgICAgbWF0Y2ggUmVnZXhwLnN0cmluZ19tYXRjaCByZV9oc2wgcyAwIHdpdGhcbiAgICAgICAgICAgICAgfCBTb21lIHIgLT4gKFxuICAgICAgICAgICAgICAgICAgbGV0IHJlZCA9IFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgMiBpblxuICAgICAgICAgICAgICAgICAgbGV0IGdyZWVuID0gUmVnZXhwLm1hdGNoZWRfZ3JvdXAgciAzIGluXG4gICAgICAgICAgICAgICAgICBsZXQgYmx1ZSA9IFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgNCBpblxuICAgICAgICAgICAgICAgICAgbGV0IGFscGhhID0gUmVnZXhwLm1hdGNoZWRfZ3JvdXAgciA1IGluXG4gICAgICAgICAgICAgICAgICBtYXRjaCBSZWdleHAubWF0Y2hlZF9ncm91cCByIDEgd2l0aFxuICAgICAgICAgICAgICAgICAgfCBTb21lIFwiaHNsXCIgLT4gKFxuICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIGFscGhhIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICB8IFNvbWUgXyAtPiBmYWlsICgpXG4gICAgICAgICAgICAgICAgICAgICAgfCBOb25lIC0+IEhTTCAoaV9vZl9zX28gcmVkLCBpX29mX3NfbyBncmVlbiwgaV9vZl9zX28gYmx1ZSkpXG4gICAgICAgICAgICAgICAgICB8IFNvbWUgXCJoc2xhXCIgLT4gKFxuICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIGFscGhhIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICB8IE5vbmUgLT4gZmFpbCAoKVxuICAgICAgICAgICAgICAgICAgICAgIHwgU29tZSBhIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIEhTTEEgKGlfb2Zfc19vIHJlZCwgaV9vZl9zX28gZ3JlZW4sIGlfb2Zfc19vIGJsdWUsIGZfb2ZfcyBhKSlcbiAgICAgICAgICAgICAgICAgIHwgU29tZSBfIHwgTm9uZSAtPiBmYWlsICgpKVxuICAgICAgICAgICAgICB8IE5vbmUgLT4gZmFpbCAoKSkpKVxuZW5kXG5cbm1vZHVsZSBMZW5ndGggPSBzdHJ1Y3RcbiAgKCogaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy12YWx1ZXMvI2xlbmd0aHMgKilcblxuICAoKiBUT0RPOlxuICAgICB7W1xuICAgICAgIHR5cGUganNfdCA9IHByaXZhdGUgSnMuc3RyaW5nIEpzLnRcbiAgICAgICB2YWwganNfdF9vZl90XG4gICAgICAgdmFsIHRfb2ZfanNfdFxuICAgICAgIHZhbCB0X29mX3N0cmluZ1xuICAgICBdfVxuICAqKVxuXG4gIHR5cGUgdCA9XG4gICAgfCBaZXJvXG4gICAgKCogcmVsYXRpdmUgKilcbiAgICB8IEVtIG9mIGZsb2F0XG4gICAgfCBFeCBvZiBmbG9hdFxuICAgIHwgUHggb2YgZmxvYXRcbiAgICB8IEdkIG9mIGZsb2F0XG4gICAgfCBSZW0gb2YgZmxvYXRcbiAgICB8IFZ3IG9mIGZsb2F0XG4gICAgfCBWaCBvZiBmbG9hdFxuICAgIHwgVm0gb2YgZmxvYXRcbiAgICB8IENoIG9mIGZsb2F0XG4gICAgKCogYWJzb2x1dGUgKilcbiAgICB8IE1tIG9mIGZsb2F0XG4gICAgfCBDbSBvZiBmbG9hdFxuICAgIHwgSW4gb2YgZmxvYXRcbiAgICB8IFB0IG9mIGZsb2F0XG4gICAgfCBQYyBvZiBmbG9hdFxuXG4gIGxldCBzdHJpbmdfb2ZfdCA9IGZ1bmN0aW9uXG4gICAgfCBaZXJvIC0+IFwiMFwiXG4gICAgfCBFbSBmIC0+IFByaW50Zi5zcHJpbnRmIFwiJWYlc1wiIGYgXCJlbVwiXG4gICAgfCBFeCBmIC0+IFByaW50Zi5zcHJpbnRmIFwiJWYlc1wiIGYgXCJleFwiXG4gICAgfCBQeCBmIC0+IFByaW50Zi5zcHJpbnRmIFwiJWYlc1wiIGYgXCJweFwiXG4gICAgfCBHZCBmIC0+IFByaW50Zi5zcHJpbnRmIFwiJWYlc1wiIGYgXCJnZFwiXG4gICAgfCBSZW0gZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwicmVtXCJcbiAgICB8IFZ3IGYgLT4gUHJpbnRmLnNwcmludGYgXCIlZiVzXCIgZiBcInZ3XCJcbiAgICB8IFZoIGYgLT4gUHJpbnRmLnNwcmludGYgXCIlZiVzXCIgZiBcInZoXCJcbiAgICB8IFZtIGYgLT4gUHJpbnRmLnNwcmludGYgXCIlZiVzXCIgZiBcInZtXCJcbiAgICB8IENoIGYgLT4gUHJpbnRmLnNwcmludGYgXCIlZiVzXCIgZiBcImNoXCJcbiAgICB8IE1tIGYgLT4gUHJpbnRmLnNwcmludGYgXCIlZiVzXCIgZiBcIm1tXCJcbiAgICB8IENtIGYgLT4gUHJpbnRmLnNwcmludGYgXCIlZiVzXCIgZiBcImNtXCJcbiAgICB8IEluIGYgLT4gUHJpbnRmLnNwcmludGYgXCIlZiVzXCIgZiBcImluXCJcbiAgICB8IFB0IGYgLT4gUHJpbnRmLnNwcmludGYgXCIlZiVzXCIgZiBcInB0XCJcbiAgICB8IFBjIGYgLT4gUHJpbnRmLnNwcmludGYgXCIlZiVzXCIgZiBcInBjXCJcblxuICB0eXBlIGpzX3QgPSBKcy5qc19zdHJpbmcgSnMudFxuXG4gIGxldCBqcyB0ID0gSnMuc3RyaW5nIChzdHJpbmdfb2ZfdCB0KVxuXG4gIGxldCBtbCB0ID1cbiAgICBsZXQgcyA9IEpzLnRvX3N0cmluZyB0IGluXG4gICAgaWYgU3RyaW5nLmVxdWFsIHMgXCIwXCJcbiAgICB0aGVuIFplcm9cbiAgICBlbHNlXG4gICAgICBsZXQgZmFpbCAoKSA9IHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IChzIF4gXCIgaXMgbm90IGEgdmFsaWQgbGVuZ3RoXCIpKSBpblxuICAgICAgbGV0IHJlID0gUmVnZXhwLnJlZ2V4cCBcIl4oXFxcXGQqKD86XFxcXC5cXFxcZCopPylcXFxccyooXFxcXFMqKSRcIiBpblxuICAgICAgbWF0Y2ggUmVnZXhwLnN0cmluZ19tYXRjaCByZSBzIDAgd2l0aFxuICAgICAgfCBOb25lIC0+IGZhaWwgKClcbiAgICAgIHwgU29tZSByIC0+IChcbiAgICAgICAgICBsZXQgZiA9XG4gICAgICAgICAgICBtYXRjaCBSZWdleHAubWF0Y2hlZF9ncm91cCByIDEgd2l0aFxuICAgICAgICAgICAgfCBOb25lIC0+IGZhaWwgKClcbiAgICAgICAgICAgIHwgU29tZSBmIC0+IChcbiAgICAgICAgICAgICAgICB0cnkgZmxvYXRfb2Zfc3RyaW5nIGZcbiAgICAgICAgICAgICAgICB3aXRoIEludmFsaWRfYXJndW1lbnQgcyAtPlxuICAgICAgICAgICAgICAgICAgcmFpc2UgKEludmFsaWRfYXJndW1lbnQgKFwibGVuZ3RoIGNvbnZlcnNpb24gZXJyb3I6IFwiIF4gcykpKVxuICAgICAgICAgIGluXG4gICAgICAgICAgbWF0Y2ggUmVnZXhwLm1hdGNoZWRfZ3JvdXAgciAyIHdpdGhcbiAgICAgICAgICB8IE5vbmUgLT4gZmFpbCAoKVxuICAgICAgICAgIHwgU29tZSBcImVtXCIgLT4gRW0gZlxuICAgICAgICAgIHwgU29tZSBcImV4XCIgLT4gRXggZlxuICAgICAgICAgIHwgU29tZSBcInB4XCIgLT4gUHggZlxuICAgICAgICAgIHwgU29tZSBcImdkXCIgLT4gR2QgZlxuICAgICAgICAgIHwgU29tZSBcInJlbVwiIC0+IFJlbSBmXG4gICAgICAgICAgfCBTb21lIFwidndcIiAtPiBWdyBmXG4gICAgICAgICAgfCBTb21lIFwidmhcIiAtPiBWaCBmXG4gICAgICAgICAgfCBTb21lIFwidm1cIiAtPiBWbSBmXG4gICAgICAgICAgfCBTb21lIFwiY2hcIiAtPiBDaCBmXG4gICAgICAgICAgfCBTb21lIFwibW1cIiAtPiBNbSBmXG4gICAgICAgICAgfCBTb21lIFwiY21cIiAtPiBDbSBmXG4gICAgICAgICAgfCBTb21lIFwiaW5cIiAtPiBJbiBmXG4gICAgICAgICAgfCBTb21lIFwicHRcIiAtPiBQdCBmXG4gICAgICAgICAgfCBTb21lIFwicGNcIiAtPiBQYyBmXG4gICAgICAgICAgfCBTb21lIF8gLT4gZmFpbCAoKSlcbmVuZFxuXG5tb2R1bGUgQW5nbGUgPSBzdHJ1Y3RcbiAgdHlwZSB0ID1cbiAgICB8IERlZyBvZiBmbG9hdFxuICAgIHwgR3JhZCBvZiBmbG9hdFxuICAgIHwgUmFkIG9mIGZsb2F0XG4gICAgfCBUdXJucyBvZiBmbG9hdFxuXG4gIGxldCBzdHJpbmdfb2ZfdCA9IGZ1bmN0aW9uXG4gICAgfCBEZWcgZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwiZGVnXCJcbiAgICB8IEdyYWQgZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwiZ3JhZFwiXG4gICAgfCBSYWQgZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwicmFkXCJcbiAgICB8IFR1cm5zIGYgLT4gUHJpbnRmLnNwcmludGYgXCIlZiVzXCIgZiBcInR1cm5zXCJcblxuICB0eXBlIGpzX3QgPSBKcy5qc19zdHJpbmcgSnMudFxuXG4gIGxldCBqcyB0ID0gSnMuc3RyaW5nIChzdHJpbmdfb2ZfdCB0KVxuXG4gIGxldCBtbCBqID1cbiAgICBsZXQgcyA9IEpzLnRvX3N0cmluZyBqIGluXG4gICAgbGV0IHJlID0gUmVnZXhwLnJlZ2V4cCBcIl4oXFxcXGQqKD86XFxcXC5cXFxcZCopKShkZWd8Z3JhZHxyYWR8dHVybnMpJFwiIGluXG4gICAgbGV0IGZhaWwgKCkgPSByYWlzZSAoSW52YWxpZF9hcmd1bWVudCAocyBeIFwiIGlzIG5vdCBhIHZhbGlkIGxlbmd0aFwiKSkgaW5cbiAgICBtYXRjaCBSZWdleHAuc3RyaW5nX21hdGNoIHJlIHMgMCB3aXRoXG4gICAgfCBOb25lIC0+IGZhaWwgKClcbiAgICB8IFNvbWUgciAtPiAoXG4gICAgICAgIGxldCBmID1cbiAgICAgICAgICBtYXRjaCBSZWdleHAubWF0Y2hlZF9ncm91cCByIDEgd2l0aFxuICAgICAgICAgIHwgTm9uZSAtPiBmYWlsICgpXG4gICAgICAgICAgfCBTb21lIGYgLT4gKFxuICAgICAgICAgICAgICB0cnkgZmxvYXRfb2Zfc3RyaW5nIGZcbiAgICAgICAgICAgICAgd2l0aCBJbnZhbGlkX2FyZ3VtZW50IHMgLT5cbiAgICAgICAgICAgICAgICByYWlzZSAoSW52YWxpZF9hcmd1bWVudCAoXCJsZW5ndGggY29udmVyc2lvbiBlcnJvcjogXCIgXiBzKSkpXG4gICAgICAgIGluXG4gICAgICAgIG1hdGNoIFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgMiB3aXRoXG4gICAgICAgIHwgU29tZSBcImRlZ1wiIC0+IERlZyBmXG4gICAgICAgIHwgU29tZSBcImdyYWRcIiAtPiBHcmFkIGZcbiAgICAgICAgfCBTb21lIFwicmFkXCIgLT4gUmFkIGZcbiAgICAgICAgfCBTb21lIFwidHVybnNcIiAtPiBUdXJucyBmXG4gICAgICAgIHwgU29tZSBfIHwgTm9uZSAtPiBmYWlsICgpKVxuZW5kXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4gKiBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3RcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcblxuKCoqIEphdmFzY3JpcHQgZXZlbnRzLiAqKVxuXG5vcGVuISBJbXBvcnRcbm1vZHVsZSBUeXAgPSBEb21faHRtbC5FdmVudFxuXG50eXBlIGxpc3RlbmVyID0gRG9tX2h0bWwuZXZlbnRfbGlzdGVuZXJfaWRcblxubGV0IGxpc3RlbiA/KGNhcHR1cmUgPSBmYWxzZSkgdGFyZ2V0IHR5cCBjYiA9XG4gIERvbV9odG1sLmFkZEV2ZW50TGlzdGVuZXJcbiAgICB0YXJnZXRcbiAgICB0eXBcbiAgICAoRG9tX2h0bWwuZnVsbF9oYW5kbGVyIChmdW4gbiBlIC0+IEpzLmJvb2wgKGNiIG4gZSkpKVxuICAgIChKcy5ib29sIGNhcHR1cmUpXG5cbmxldCBzdG9wX2xpc3RlbiA9IERvbV9odG1sLnJlbW92ZUV2ZW50TGlzdGVuZXJcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTQgSHVnbyBIZXV6YXJkXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTQgSsOpcsO0bWUgVm91aWxsb25cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcblxub3BlbiBKc1xub3BlbiEgSW1wb3J0XG5cbmxldCB4bWxucyA9IEpzLnN0cmluZyBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcblxuKCogdHJhbnNsYXRlIHNwZWMgZnJvbSBodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcvaWRsLmh0bWwgKilcbigqIGh0dHA6Ly93d3cudzMub3JnL1RSL1NWRy9zdHJ1Y3QuaHRtbCAqKVxuXG50eXBlIGVycm9yX2NvZGUgPVxuICB8IFdST05HX1RZUEVfRVJSXG4gIHwgSU5WQUxJRF9WQUxVRV9FUlJcbiAgfCBNQVRSSVhfTk9UX0lOVkVSVEFCTEVcblxuY2xhc3MgdHlwZSBzdmdfZXJyb3IgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IEpzLmVycm9yXG5cbiAgICBtZXRob2QgY29kZSA6IGVycm9yX2NvZGUgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5leGNlcHRpb24gU1ZHRXJyb3Igb2Ygc3ZnX2Vycm9yXG5cbnR5cGUgbGVuZ3RoVW5pdFR5cGUgPVxuICB8IExFTkdUSFRZUEVfVU5LTk9XTlxuICB8IExFTkdUSFRZUEVfTlVNQkVSXG4gIHwgTEVOR1RIVFlQRV9QRVJDRU5UQUdFXG4gIHwgTEVOR1RIVFlQRV9FTVNcbiAgfCBMRU5HVEhUWVBFX0VYU1xuICB8IExFTkdUSFRZUEVfUFhcbiAgfCBMRU5HVEhUWVBFX0NNXG4gIHwgTEVOR1RIVFlQRV9NTVxuICB8IExFTkdUSFRZUEVfSU5cbiAgfCBMRU5HVEhUWVBFX1BUXG4gIHwgTEVOR1RIVFlQRV9QQ1xuXG50eXBlIGFuZ2xlVW5pdFR5cGUgPVxuICB8IEFOR0xFVFlQRV9VTktOT1dOXG4gIHwgQU5HTEVUWVBFX1VOU1BFQ0lGSUVEXG4gIHwgQU5HTEVUWVBFX0RFR1xuICB8IEFOR0xFVFlQRV9SQURcbiAgfCBBTkdMRVRZUEVfR1JBRFxuXG50eXBlIGNvbG9yVHlwZSA9XG4gIHwgQ09MT1JUWVBFX1VOS05PV05cbiAgfCBDT0xPUlRZUEVfUkdCQ09MT1JcbiAgfCBDT0xPUlRZUEVfUkdCQ09MT1JfSUNDQ09MT1JcbiAgfCBDT0xPUlRZUEVfQ1VSUkVOVENPTE9SXG5cbnR5cGUgYWxpZ25tZW50VHlwZSA9XG4gIHwgUFJFU0VSVkVBU1BFQ1RSQVRJT19VTktOT1dOXG4gIHwgUFJFU0VSVkVBU1BFQ1RSQVRJT19OT05FXG4gIHwgUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1JTlxuICB8IFBSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlNSU5cbiAgfCBQUkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZTUlOXG4gIHwgUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1JRFxuICB8IFBSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlNSURcbiAgfCBQUkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZTUlEXG4gIHwgUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1BWFxuICB8IFBSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlNQVhcbiAgfCBQUkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZTUFYXG5cbnR5cGUgbWVldE9yU2xpY2VUeXBlID1cbiAgfCBNRUVUT1JTTElDRV9VTktOT1dOXG4gIHwgTUVFVE9SU0xJQ0VfTUVFVFxuICB8IE1FRVRPUlNMSUNFX1NMSUNFXG5cbnR5cGUgdHJhbnNmb3JtVHlwZSA9XG4gIHwgVFJBTlNGT1JNX1VOS05PV05cbiAgfCBUUkFOU0ZPUk1fTUFUUklYXG4gIHwgVFJBTlNGT1JNX1RSQU5TTEFURVxuICB8IFRSQU5TRk9STV9TQ0FMRVxuICB8IFRSQU5TRk9STV9ST1RBVEVcbiAgfCBUUkFOU0ZPUk1fU0tFV1hcbiAgfCBUUkFOU0ZPUk1fU0tFV1lcblxudHlwZSB6b29tQW5kUGFuVHlwZSA9XG4gIHwgWk9PTUFORFBBTl9VTktOT1dOXG4gIHwgWk9PTUFORFBBTl9ESVNBQkxFXG4gIHwgWk9PTUFORFBBTl9NQUdOSUZZXG5cbnR5cGUgbGVuZ3RoQWRqdXN0ID1cbiAgfCBMRU5HVEhBREpVU1RfVU5LTk9XTlxuICB8IExFTkdUSEFESlVTVF9TUEFDSU5HXG4gIHwgTEVOR1RIQURKVVNUX1NQQUNJTkdBTkRHTFlQSFNcblxudHlwZSB1bml0VHlwZSA9XG4gIHwgVU5JVF9UWVBFX1VOS05PV05cbiAgfCBVTklUX1RZUEVfVVNFUlNQQUNFT05VU0VcbiAgfCBVTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1hcblxuKCogaW50ZXJmYWNlIFNWR1JlbmRlcmluZ0ludGVudCAqKVxudHlwZSBpbnRlbnRUeXBlID1cbiAgfCBSRU5ERVJJTkdfSU5URU5UX1VOS05PV05cbiAgfCBSRU5ERVJJTkdfSU5URU5UX0FVVE9cbiAgfCBSRU5ERVJJTkdfSU5URU5UX1BFUkNFUFRVQUxcbiAgfCBSRU5ERVJJTkdfSU5URU5UX1JFTEFUSVZFX0NPTE9SSU1FVFJJQ1xuICB8IFJFTkRFUklOR19JTlRFTlRfU0FUVVJBVElPTlxuICB8IFJFTkRFUklOR19JTlRFTlRfQUJTT0xVVEVfQ09MT1JJTUVUUklDXG5cbigqIFBhdGggU2VnbWVudCBUeXBlcyAqKVxudHlwZSBwYXRoU2VnbWVudFR5cGUgPVxuICB8IFBBVEhTRUdfVU5LTk9XTlxuICB8IFBBVEhTRUdfQ0xPU0VQQVRIXG4gIHwgUEFUSFNFR19NT1ZFVE9fQUJTXG4gIHwgUEFUSFNFR19NT1ZFVE9fUkVMXG4gIHwgUEFUSFNFR19MSU5FVE9fQUJTXG4gIHwgUEFUSFNFR19MSU5FVE9fUkVMXG4gIHwgUEFUSFNFR19DVVJWRVRPX0NVQklDX0FCU1xuICB8IFBBVEhTRUdfQ1VSVkVUT19DVUJJQ19SRUxcbiAgfCBQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX0FCU1xuICB8IFBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfUkVMXG4gIHwgUEFUSFNFR19BUkNfQUJTXG4gIHwgUEFUSFNFR19BUkNfUkVMXG4gIHwgUEFUSFNFR19MSU5FVE9fSE9SSVpPTlRBTF9BQlNcbiAgfCBQQVRIU0VHX0xJTkVUT19IT1JJWk9OVEFMX1JFTFxuICB8IFBBVEhTRUdfTElORVRPX1ZFUlRJQ0FMX0FCU1xuICB8IFBBVEhTRUdfTElORVRPX1ZFUlRJQ0FMX1JFTFxuICB8IFBBVEhTRUdfQ1VSVkVUT19DVUJJQ19TTU9PVEhfQUJTXG4gIHwgUEFUSFNFR19DVVJWRVRPX0NVQklDX1NNT09USF9SRUxcbiAgfCBQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09USF9BQlNcbiAgfCBQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09USF9SRUxcblxuKCogdGV4dFBhdGggTWV0aG9kIFR5cGVzICopXG50eXBlIHRleHRQYXRoTWV0aG9kVHlwZSA9XG4gIHwgVEVYVFBBVEhfTUVUSE9EVFlQRV9VTktOT1dOXG4gIHwgVEVYVFBBVEhfTUVUSE9EVFlQRV9BTElHTlxuICB8IFRFWFRQQVRIX01FVEhPRFRZUEVfU1RSRVRDSFxuXG4oKiB0ZXh0UGF0aCBTcGFjaW5nIFR5cGVzICopXG50eXBlIHRleHRQYXRoU3BhY2luZ1R5cGUgPVxuICB8IFRFWFRQQVRIX1NQQUNJTkdUWVBFX1VOS05PV05cbiAgfCBURVhUUEFUSF9TUEFDSU5HVFlQRV9BVVRPXG4gIHwgVEVYVFBBVEhfU1BBQ0lOR1RZUEVfRVhBQ1RcblxuKCogU3ByZWFkIE1ldGhvZCBUeXBlcyAqKVxudHlwZSBzcHJlYWRNZXRob2RUeXBlID1cbiAgfCBTUFJFQURNRVRIT0RfVU5LTk9XTlxuICB8IFNQUkVBRE1FVEhPRF9QQURcbiAgfCBTUFJFQURNRVRIT0RfUkVGTEVDVFxuICB8IFNQUkVBRE1FVEhPRF9SRVBFQVRcblxudHlwZSBzdXNwZW5kSGFuZGxlSURcblxuKCoqKiopXG5cbmNsYXNzIHR5cGUgWydhXSBhbmltYXRlZCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBiYXNlVmFsIDogJ2EgcHJvcFxuXG4gICAgbWV0aG9kIGFuaW1WYWwgOiAnYSBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIFsnYV0gbGlzdCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBudW1iZXJPZkl0ZW1zIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjbGVhciA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGluaXRpYWxpemUgOiAnYSAtPiAnYSBtZXRoXG5cbiAgICBtZXRob2QgZ2V0SXRlbSA6IGludCAtPiAnYSBtZXRoXG5cbiAgICBtZXRob2QgaW5zZXJ0SXRlbUJlZm9yZSA6ICdhIC0+IGludCAtPiAnYSBtZXRoXG5cbiAgICBtZXRob2QgcmVwbGFjZUl0ZW0gOiAnYSAtPiBpbnQgLT4gJ2EgbWV0aFxuXG4gICAgbWV0aG9kIHJlbW92ZUl0ZW0gOiBpbnQgLT4gJ2EgbWV0aFxuXG4gICAgbWV0aG9kIGFwcGVuZEl0ZW0gOiAnYSAtPiAnYSBtZXRoXG4gIGVuZFxuXG4oKioqKilcblxuKCogaW50ZXJmYWNlIFNWR0VsZW1lbnQgKilcbmNsYXNzIHR5cGUgZWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgRG9tLmVsZW1lbnRcblxuICAgIG1ldGhvZCBpZCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB4bWxiYXNlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG93bmVyU1ZHRWxlbWVudCA6IHN2Z0VsZW1lbnQgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgdmlld3BvcnRFbGVtZW50IDogZWxlbWVudCB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlZFN0cmluZyAqKVxuYW5kIGFuaW1hdGVkU3RyaW5nID0gW2pzX3N0cmluZyB0XSBhbmltYXRlZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0ZWRCb29sZWFuICopXG5hbmQgYW5pbWF0ZWRCb29sZWFuID0gW2Jvb2wgdF0gYW5pbWF0ZWRcblxuKCogaW50ZXJmYWNlIFNWR1N0cmluZ0xpc3QgKilcbmFuZCBzdHJpbmdMaXN0ID0gW2pzX3N0cmluZyB0XSBsaXN0XG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uICopXG5hbmQgYW5pbWF0ZWRFbnVtZXJhdGlvbiA9IFtpbnQgKCpzaG9ydCopXSBhbmltYXRlZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0ZWRJbnRlZ2VyICopXG5hbmQgYW5pbWF0ZWRJbnRlZ2VyID0gW2ludF0gYW5pbWF0ZWRcblxuKCogaW50ZXJmYWNlIFNWR0FuaW1hdGVkTnVtYmVyICopXG5hbmQgYW5pbWF0ZWROdW1iZXIgPSBbZmxvYXRdIGFuaW1hdGVkXG5cbigqIGludGVyZmFjZSBTVkdOdW1iZXJMaXN0ICopXG5hbmQgbnVtYmVyTGlzdCA9IFtudW1iZXIgdF0gbGlzdFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0ICopXG5hbmQgYW5pbWF0ZWROdW1iZXJMaXN0ID0gW251bWJlckxpc3QgdF0gYW5pbWF0ZWRcblxuKCogaW50ZXJmYWNlIFNWR0xlbmd0aCAqKVxuYW5kIGxlbmd0aCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB1bml0VHlwZSA6IGxlbmd0aFVuaXRUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB2YWx1ZSA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgdmFsdWVBc1N0cmluZyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBuZXdWYWx1ZVNwZWNpZmllZFVuaXRzIDogbGVuZ3RoVW5pdFR5cGUgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY29udmVydFRvU3BlY2lmaWVkVW5pdHMgOiBsZW5ndGhVbml0VHlwZSAtPiB1bml0IG1ldGhcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlZExlbmd0aCAqKVxuYW5kIGFuaW1hdGVkTGVuZ3RoID0gW2xlbmd0aCB0XSBhbmltYXRlZFxuXG4oKiBpbnRlcmZhY2UgU1ZHTGVuZ3RoTGlzdCAqKVxuYW5kIGxlbmd0aExpc3QgPSBbbGVuZ3RoIHRdIGxpc3RcblxuKCogaW50ZXJmYWNlIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdCAqKVxuYW5kIGFuaW1hdGVkTGVuZ3RoTGlzdCA9IFtsZW5ndGhMaXN0IHRdIGFuaW1hdGVkXG5cbigqIGludGVyZmFjZSBTVkdBbmdsZSAqKVxuYW5kIGFuZ2xlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHVuaXRUeXBlIDogYW5nbGVVbml0VHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdmFsdWUgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgdmFsdWVJblNwZWNpZmllZFVuaXRzIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHZhbHVlQXNTdHJpbmcgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbmV3VmFsdWVTcGVjaWZpZWRVbml0cyA6IGFuZ2xlVW5pdFR5cGUgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY29udmVydFRvU3BlY2lmaWVkVW5pdHMgOiBhbmdsZVVuaXRUeXBlIC0+IHVuaXQgbWV0aFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0FuaW1hdGVkQW5nbGUgKilcbmFuZCBhbmltYXRlZEFuZ2xlID0gW2FuZ2xlIHRdIGFuaW1hdGVkXG5cbigqIFhYWFhYIE1vdmUgaXQgKilcbmFuZCByZ2JDb2xvciA9IG9iamVjdCBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0NvbG9yICopXG5hbmQgY29sb3IgPVxuICBvYmplY3RcbiAgICAoKiBYWFggaW5oZXJpdCBjc3NWYWx1ZSAqKVxuICAgIG1ldGhvZCBjb2xvclR5cGUgOiBjb2xvclR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJnYkNvbG9yIDogcmdiQ29sb3IgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaWNjQ29sb3IgOiBpY2NDb2xvciB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzZXRSR0JDb2xvciA6IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFJHQkNvbG9ySUNDQ29sb3IgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRDb2xvciA6IGNvbG9yVHlwZSAtPiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdJQ0NDb2xvciAqKVxuYW5kIGljY0NvbG9yID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGNvbG9yUHJvZmlsZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjb2xvcnMgOiBudW1iZXJMaXN0IHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1JlY3QgKilcbmFuZCByZWN0ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHggOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgeSA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBmbG9hdCBwcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0ZWRSZWN0ICopXG5hbmQgYW5pbWF0ZWRSZWN0ID0gW3JlY3QgdF0gYW5pbWF0ZWRcblxuKCogaW50ZXJmYWNlIFNWR1N0eWxhYmxlICopXG5hbmQgc3R5bGFibGUgPVxuICBvYmplY3RcbiAgICBtZXRob2QgY2xhc3NOYW1lIDogYW5pbWF0ZWRTdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3R5bGUgOiBEb21faHRtbC5jc3NTdHlsZURlY2xhcmF0aW9uIHQgcmVhZG9ubHlfcHJvcFxuICAgICgqICAgQ1NTVmFsdWUgZ2V0UHJlc2VudGF0aW9uQXR0cmlidXRlKGluIERPTVN0cmluZyBuYW1lKTsgKilcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdMb2NhdGFibGUgKilcbmFuZCBsb2NhdGFibGUgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbmVhcmVzdFZpZXdwb3J0RWxlbWVudCA6IGVsZW1lbnQgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQgOiBlbGVtZW50IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGdldEJCb3ggOiByZWN0IHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldENUTSA6IG1hdHJpeCB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRTY3JlZW5DVE0gOiBtYXRyaXggdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VHJhbnNmb3JtVG9FbGVtZW50IDogZWxlbWVudCB0IC0+IG1hdHJpeCB0IG1ldGhcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdUcmFuc2Zvcm1hYmxlICopXG5hbmQgdHJhbnNmb3JtYWJsZSA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgbG9jYXRhYmxlXG5cbiAgICBtZXRob2QgdHJhbnNmb3JtIDogYW5pbWF0ZWRUcmFuc2Zvcm1MaXN0IHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1Rlc3RzICopXG5hbmQgdGVzdHMgPVxuICBvYmplY3RcbiAgICBtZXRob2QgcmVxdWlyZWRGZWF0dXJlcyA6IHN0cmluZ0xpc3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcmVxdWlyZWRFeHRlbnNpb25zIDogc3RyaW5nTGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzeXN0ZW1MYW5ndWFnZSA6IHN0cmluZ0xpc3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaGFzRXh0ZW5zaW9uIDoganNfc3RyaW5nIHQgLT4gYm9vbCB0IG1ldGhcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdMYW5nU3BhY2UgKilcbmFuZCBsYW5nU3BhY2UgPVxuICBvYmplY3RcbiAgICBtZXRob2QgeG1sbGFuZyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB4bWxzcGFjZSA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkICopXG5hbmQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkIDogYW5pbWF0ZWRCb29sZWFuIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0ZpdFRvVmlld0JveCAqKVxuYW5kIGZpdFRvVmlld0JveCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB2aWV3Qm94IDogYW5pbWF0ZWRSZWN0IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHByZXNlcnZlQXNwZWN0UmF0aW8gOiBhbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8gdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHWm9vbUFuZFBhbiAqKVxuYW5kIHpvb21BbmRQYW4gPVxuICBvYmplY3RcbiAgICBtZXRob2Qgem9vbUFuZFBhbiA6IHpvb21BbmRQYW5UeXBlIHByb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdWaWV3U3BlYyAqKVxuYW5kIHZpZXdTcGVjID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCB6b29tQW5kUGFuXG5cbiAgICBpbmhlcml0IGZpdFRvVmlld0JveFxuXG4gICAgbWV0aG9kIHRyYW5zZm9ybSA6IHRyYW5zZm9ybUxpc3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgdmlld1RhcmdldCA6IGVsZW1lbnQgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgdmlld0JveFN0cmluZyA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHRyYW5zZm9ybVN0cmluZyA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB2aWV3VGFyZ2V0U3RyaW5nIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1VSSVJlZmVyZW5jZSAqKVxuYW5kIHVyaVJlZmVyZW5jZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBocmVmIDogYW5pbWF0ZWRTdHJpbmcgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQ1NTUnVsZSA6IENTU1J1bGUgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ09MT1JfUFJPRklMRV9SVUxFID0gNzsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdEb2N1bWVudCAqKVxuYW5kIGRvY3VtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBbZWxlbWVudF0gRG9tLmRvY3VtZW50XG5cbiAgICAoKlhYWCBpbmhlcml0IGRvY3VtZW50RXZlbnQgKilcbiAgICBtZXRob2QgdGl0bGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcmVmZXJyZXIgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZG9tYWluIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIF9VUkwgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgcm9vdEVsZW1lbnQgOiBzdmdFbGVtZW50IHQgb3B0IHJlYWRvbmx5X3Byb3BcbiAgICAoKiByb290RWxlbWVudCB3aWxsIGJlIG51bGwgb3IgdW5kZWZpbmVkIGluIGFuIGh0bWwgY29udGV4dCAqKVxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1NWR0VsZW1lbnQgKilcbmFuZCBzdmdFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHRlc3RzXG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICBpbmhlcml0IGxvY2F0YWJsZVxuXG4gICAgaW5oZXJpdCBmaXRUb1ZpZXdCb3hcblxuICAgIGluaGVyaXQgem9vbUFuZFBhblxuXG4gICAgKCpYWFggaW5oZXJpdCBkb2N1bWVudGV2ZW50LCB2aWV3Y3NzLCBkb2N1bWVudGNzcyAqKVxuICAgIG1ldGhvZCB4IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgeSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHdpZHRoIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaGVpZ2h0IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY29udGVudFNjcmlwdFR5cGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY29udGVudFN0eWxlVHlwZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB2aWV3cG9ydCA6IHJlY3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcGl4ZWxVbml0VG9NaWxsaW1ldGVyWCA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwaXhlbFVuaXRUb01pbGxpbWV0ZXJZIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNjcmVlblBpeGVsVW5pdFRvTWlsbGltZXRlclggOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2NyZWVuUGl4ZWxVbml0VG9NaWxsaW1ldGVyWSA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB1c2VDdXJyZW50VmlldyA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY3VycmVudFZpZXcgOiB2aWV3U3BlYyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjdXJyZW50U2NhbGUgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgY3VycmVudFRyYW5zbGF0ZSA6IHBvaW50IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHN1c3BlbmRSZWRyYXcgOiBpbnQgLT4gc3VzcGVuZEhhbmRsZUlEIG1ldGhcblxuICAgIG1ldGhvZCB1bnN1c3BlbmRSZWRyYXcgOiBzdXNwZW5kSGFuZGxlSUQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5zdXNwZW5kUmVkcmF3QWxsIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZm9yY2VSZWRyYXcgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBwYXVzZUFuaW1hdGlvbnMgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bnBhdXNlQW5pbWF0aW9ucyA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGFuaW1hdGlvbnNQYXVzZWQgOiBib29sIHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEN1cnJlbnRUaW1lIDogZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEN1cnJlbnRUaW1lIDogaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEludGVyc2VjdGlvbkxpc3QgOiByZWN0IHQgLT4gZWxlbWVudCB0IC0+IGVsZW1lbnQgRG9tLm5vZGVMaXN0IHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEVuY2xvc3VyZUxpc3QgOiByZWN0IHQgLT4gZWxlbWVudCB0IC0+IGVsZW1lbnQgRG9tLm5vZGVMaXN0IHQgbWV0aFxuXG4gICAgbWV0aG9kIGNoZWNrSW50ZXJzZWN0aW9uIDogZWxlbWVudCB0IC0+IHJlY3QgdCAtPiBib29sIHRcblxuICAgIG1ldGhvZCBjaGVja0VuY2xvc3VyZSA6IGVsZW1lbnQgdCAtPiByZWN0IHQgLT4gYm9vbCB0XG5cbiAgICBtZXRob2QgZGVzZWxlY3RBbGwgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdOdW1iZXIgOiBudW1iZXIgdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHTGVuZ3RoIDogbGVuZ3RoIHQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR0FuZ2xlIDogYW5nbGUgdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUG9pbnQgOiBwb2ludCB0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdNYXRyaXggOiBtYXRyaXggdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUmVjdCA6IHJlY3QgdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHVHJhbnNmb3JtIDogdHJhbnNmb3JtIHQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXggOiBtYXRyaXggdCAtPiB0cmFuc2Zvcm0gdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RWxlbWVudEJ5SWQgOiBqc19zdHJpbmcgdCAtPiBEb20uZWxlbWVudCB0IG1ldGhcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdHRWxlbWVudCAqKVxuYW5kIGdFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHRlc3RzXG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICBpbmhlcml0IHRyYW5zZm9ybWFibGVcblxuICAgIGluaGVyaXQgRG9tX2h0bWwuZXZlbnRUYXJnZXRcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdEZWZzRWxlbWVudCAqKVxuYW5kIGRlZnNFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHRlc3RzXG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICBpbmhlcml0IHRyYW5zZm9ybWFibGVcbiAgICAoKiBYWFhYWFhYID8gaW5oZXJpdCBEb21faHRtbC5ldmVudFRhcmdldCAqKVxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0Rlc2NFbGVtZW50ICopXG5hbmQgZGVzY0VsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG4gICAgKCogWFhYWFhYWCA/IGluaGVyaXQgRG9tX2h0bWwuZXZlbnRUYXJnZXQgKilcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdUaXRsZUVsZW1lbnQgKilcbmFuZCB0aXRsZUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHU3ltYm9sRWxlbWVudCAqKVxuYW5kIHN5bWJvbEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgZml0VG9WaWV3Qm94XG5cbiAgICBpbmhlcml0IERvbV9odG1sLmV2ZW50VGFyZ2V0XG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHVXNlRWxlbWVudCAqKVxuYW5kIHVzZUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdXJpUmVmZXJlbmNlXG5cbiAgICBpbmhlcml0IHRlc3RzXG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICBpbmhlcml0IHRyYW5zZm9ybWFibGVcblxuICAgIG1ldGhvZCB4IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgeSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHdpZHRoIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaGVpZ2h0IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaW5zdGFuY2VSb290IDogZWxlbWVudEluc3RhbmNlIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFuaW1hdGVkSW5zdGFuY2VSb290IDogZWxlbWVudEluc3RhbmNlIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIGVsZW1lbnRJbnN0YW5jZSA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgRG9tX2h0bWwuZXZlbnRUYXJnZXRcblxuICAgIG1ldGhvZCBjb3JyZXNwb25kaW5nRWxlbWVudCA6IGVsZW1lbnQgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQgOiB1c2VFbGVtZW50IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBhcmVudE5vZGUgOiBlbGVtZW50SW5zdGFuY2UgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY2hpbGROb2RlcyA6IGVsZW1lbnRJbnN0YW5jZUxpc3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZmlyc3RDaGlsZCA6IGVsZW1lbnRJbnN0YW5jZSB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBsYXN0Q2hpbGQgOiBlbGVtZW50SW5zdGFuY2UgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcHJldmlvdXNTaWJsaW5nIDogZWxlbWVudEluc3RhbmNlIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG5leHRTaWJsaW5nIDogZWxlbWVudEluc3RhbmNlIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0VsZW1lbnRJbnN0YW5jZUxpc3QgKilcbmFuZCBlbGVtZW50SW5zdGFuY2VMaXN0ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGxlbmd0aCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaXRlbSA6IGludCAtPiBlbGVtZW50SW5zdGFuY2UgdFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0ltYWdlRWxlbWVudCAqKVxuYW5kIGltYWdlRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB1cmlSZWZlcmVuY2VcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuXG4gICAgbWV0aG9kIHggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB5IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgd2lkdGggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcbiAgICAoKiByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvIHByZXNlcnZlQXNwZWN0UmF0aW8gKilcbiAgZW5kXG5cbmFuZCBzd2l0Y2hFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHRlc3RzXG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICBpbmhlcml0IHRyYW5zZm9ybWFibGVcbiAgZW5kXG5cbigqIFhYWCBkZXByZWNhdGVkID0+IGludGVyZmFjZSBHZXRTVkdEb2N1bWVudCA9PiBTVkdEb2N1bWVudCBnZXRTVkdEb2N1bWVudCgpICopXG5cbigqIGludGVyZmFjZSBTVkdTdHlsZUVsZW1lbnQgKilcbmFuZCBzdHlsZUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBtZXRob2QgdHlwZV8gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbWVkaWEgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGl0bGUgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUG9pbnQgKilcbmFuZCBwb2ludCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB4IDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHkgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbWF0cml4VHJhbnNmb3JtIDogbWF0cml4IHQgLT4gcG9pbnQgdCBtZXRoXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUG9pbnRMaXN0ICopXG5hbmQgcG9pbnRMaXN0ID0gW3BvaW50IHRdIGxpc3RcblxuKCogaW50ZXJmYWNlIFNWR01hdHJpeCAqKVxuYW5kIG1hdHJpeCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBhIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGIgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYyA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGUgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZiA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBtdWx0aXBseSA6IG1hdHJpeCB0IC0+IG1hdHJpeCB0IG1ldGhcblxuICAgIG1ldGhvZCBpbnZlcnNlIDogbWF0cml4IHQgbWV0aFxuXG4gICAgbWV0aG9kIHRyYW5zbGF0ZSA6IGZsb2F0IC0+IGZsb2F0IC0+IG1hdHJpeCB0IG1ldGhcblxuICAgIG1ldGhvZCBzY2FsZSA6IGZsb2F0IC0+IG1hdHJpeCB0IG1ldGhcblxuICAgIG1ldGhvZCBzY2FsZU5vblVuaWZvcm0gOiBmbG9hdCAtPiBmbG9hdCAtPiBtYXRyaXggdCBtZXRoXG5cbiAgICBtZXRob2Qgcm90YXRlIDogZmxvYXQgLT4gbWF0cml4IHQgbWV0aFxuXG4gICAgbWV0aG9kIHJvdGF0ZUZyb21WZWN0b3IgOiBmbG9hdCAtPiBmbG9hdCAtPiBtYXRyaXggdCBtZXRoXG5cbiAgICBtZXRob2QgZmxpcFggOiBtYXRyaXggdCBtZXRoXG5cbiAgICBtZXRob2QgZmxpcFkgOiBtYXRyaXggdCBtZXRoXG5cbiAgICBtZXRob2Qgc2tld1ggOiBmbG9hdCAtPiBtYXRyaXggdCBtZXRoXG5cbiAgICBtZXRob2Qgc2tld1kgOiBmbG9hdCAtPiBtYXRyaXggdCBtZXRoXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHVHJhbnNmb3JtICopXG5hbmQgdHJhbnNmb3JtID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIF90eXBlIDogdHJhbnNmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbWF0cml4IDogbWF0cml4IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFuZ2xlIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNldE1hdHJpeCA6IG1hdHJpeCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFRyYW5zbGF0ZSA6IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFNjYWxlIDogZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0Um90YXRlIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0U2tld1ggOiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRTa2V3WSA6IGZsb2F0IC0+IHVuaXQgbWV0aFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1RyYW5zZm9ybUxpc3QgKilcbmFuZCB0cmFuc2Zvcm1MaXN0ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBbdHJhbnNmb3JtIHRdIGxpc3RcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4IDogbWF0cml4IC0+IHRyYW5zZm9ybSB0IG1ldGhcblxuICAgIG1ldGhvZCBjb25zb2xpZGF0ZSA6IHRyYW5zZm9ybSB0IG1ldGhcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QgKilcbmFuZCBhbmltYXRlZFRyYW5zZm9ybUxpc3QgPSBbdHJhbnNmb3JtTGlzdCB0XSBhbmltYXRlZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyAqKVxuYW5kIHByZXNlcnZlQXNwZWN0UmF0aW8gPVxuICBvYmplY3RcbiAgICBtZXRob2QgYWxpZ24gOiBhbGlnbm1lbnRUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBtZWV0T3JTbGljZSA6IG1lZXRPclNsaWNlVHlwZSByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvICopXG5hbmQgYW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvID0gW3ByZXNlcnZlQXNwZWN0UmF0aW8gdF0gYW5pbWF0ZWRcblxuKCogaW50ZXJmYWNlIFNWR1BhdGhTZWcgKilcbmFuZCBwYXRoU2VnID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHBhdGhTZWdUeXBlIDogcGF0aFNlZ21lbnRUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwYXRoU2VnVHlwZUFzTGV0dGVyIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1BhdGhTZWdDbG9zZVBhdGggKilcbmFuZCBwYXRoU2VnQ2xvc2VQYXRoID0gcGF0aFNlZ1xuXG4oKiBpbnRlcmZhY2UgU1ZHUGF0aFNlZ01vdmV0b0FicyAqKVxuKCogaW50ZXJmYWNlIFNWR1BhdGhTZWdNb3ZldG9SZWwgKilcbmFuZCBwYXRoU2VnTW92ZXRvID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBwYXRoU2VnXG5cbiAgICBtZXRob2QgeCA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB5IDogZmxvYXQgcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1BhdGhTZWdMaW5ldG9BYnMgKilcbigqIGludGVyZmFjZSBTVkdQYXRoU2VnTGluZXRvUmVsICopXG5hbmQgcGF0aFNlZ0xpbmV0byA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgcGF0aFNlZ1xuXG4gICAgbWV0aG9kIHggOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgeSA6IGZsb2F0IHByb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzICopXG4oKiBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbCAqKVxuYW5kIHBhdGhTZWdDdXJ2ZXRvQ3ViaWMgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IHBhdGhTZWdcblxuICAgIG1ldGhvZCB4IDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHkgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgeDEgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgeTEgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgeDIgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgeTIgOiBmbG9hdCBwcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMgKilcbigqIGludGVyZmFjZSBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbCAqKVxuYW5kIHBhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBwYXRoU2VnXG5cbiAgICBtZXRob2QgeCA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB5IDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHgxIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHkxIDogZmxvYXQgcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1BhdGhTZWdBcmNBYnMgKilcbigqIGludGVyZmFjZSBTVkdQYXRoU2VnQXJjUmVsKilcbmFuZCBwYXRoU2VnQXJjID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBwYXRoU2VnXG5cbiAgICBtZXRob2QgeSA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCByMSA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCByMiA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCBhbmdsZSA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCBsYXJnZUFyY0ZsYWcgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIHN3ZWVwRmxhZyA6IGJvb2wgdCBwcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMgKilcbigqIGludGVyZmFjZSBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbCAqKVxuYW5kIHBhdGhTZWdMaW5ldG9Ib3Jpem9udGFsID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBwYXRoU2VnXG5cbiAgICBtZXRob2QgeCA6IGZsb2F0XG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzICopXG4oKiBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsICopXG5hbmQgcGF0aFNlZ0xpbmV0b1ZlcnRpY2FsID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBwYXRoU2VnXG5cbiAgICBtZXRob2QgeSA6IGZsb2F0XG4gIGVuZFxuXG5hbmQgcGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgcGF0aFNlZ1xuXG4gICAgbWV0aG9kIHggOiBmbG9hdFxuXG4gICAgbWV0aG9kIHkgOiBmbG9hdFxuXG4gICAgbWV0aG9kIHgyIDogZmxvYXRcblxuICAgIG1ldGhvZCB5MiA6IGZsb2F0XG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMgKilcbigqIGludGVyZmFjZSBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbCAgKilcbmFuZCBwYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgcGF0aFNlZ1xuXG4gICAgbWV0aG9kIHggOiBmbG9hdFxuXG4gICAgbWV0aG9kIHkgOiBmbG9hdFxuICBlbmRcblxuYW5kIHBhdGhTZWdMaXN0ID0gW3BhdGhTZWcgdF0gbGlzdFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0ZWRQYXRoRGF0YSAqKVxuYW5kIGFuaW1hdGVkUGF0aERhdGEgPVxuICBvYmplY3RcbiAgICBtZXRob2QgcGF0aFNlZ0xpc3QgOiBwYXRoU2VnTGlzdCB0IHByb3BcblxuICAgIG1ldGhvZCBub3JtYWxpemVkUGF0aFNlZ0xpc3QgOiBwYXRoU2VnTGlzdCB0IHByb3BcblxuICAgIG1ldGhvZCBhbmltYXRlZFBhdGhTZWdMaXN0IDogcGF0aFNlZ0xpc3QgdCBwcm9wXG5cbiAgICBtZXRob2QgYW5pbWF0ZWROb3JtYWxpemVkUGF0aFNlZ0xpc3QgOiBwYXRoU2VnTGlzdCB0IHByb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdQYXRoRWxlbWVudCAqKVxuYW5kIHBhdGhFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHRlc3RzXG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICBpbmhlcml0IHRyYW5zZm9ybWFibGVcblxuICAgIGluaGVyaXQgYW5pbWF0ZWRQYXRoRGF0YVxuXG4gICAgbWV0aG9kIHBhdGhMZW5ndGggOiBhbmltYXRlZE51bWJlciB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBnZXRUb3RhbExlbmd0aCA6IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRQb2ludEF0TGVuZ3RoIDogZmxvYXQgLT4gcG9pbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0UGF0aFNlZ0F0TGVuZ3RoIDogZmxvYXQgLT4gaW50XG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0Nsb3NlUGF0aCA6IHBhdGhTZWdDbG9zZVBhdGggbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9BYnMgOiBmbG9hdCAtPiBmbG9hdCAtPiBwYXRoU2VnTW92ZXRvIG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnTW92ZXRvUmVsIDogZmxvYXQgLT4gZmxvYXQgLT4gcGF0aFNlZ01vdmV0byBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0FicyA6IGZsb2F0IC0+IGZsb2F0IC0+IHBhdGhTZWdMaW5ldG8gbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9SZWwgOiBmbG9hdCAtPiBmbG9hdCAtPiBwYXRoU2VnTGluZXRvIG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzIDpcbiAgICAgIGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHBhdGhTZWdDdXJ2ZXRvQ3ViaWMgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwgOlxuICAgICAgZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gcGF0aFNlZ0N1cnZldG9DdWJpYyBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMgOlxuICAgICAgZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gcGF0aFNlZ0N1cnZldG9RdWFkcmF0aWMgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsIDpcbiAgICAgIGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHBhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljIG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnQXJjQWJzIDpcbiAgICAgIGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGJvb2wgdCAtPiBib29sIHQgLT4gcGF0aFNlZ0FyYyBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0FyY1JlbCA6XG4gICAgICBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBib29sIHQgLT4gYm9vbCB0IC0+IHBhdGhTZWdBcmMgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzIDogZmxvYXQgLT4gcGF0aFNlZ0xpbmV0b0hvcml6b250YWwgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsIDogZmxvYXQgLT4gcGF0aFNlZ0xpbmV0b0hvcml6b250YWwgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicyA6IGZsb2F0IC0+IHBhdGhTZWdMaW5ldG9WZXJ0aWNhbCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsIDogZmxvYXQgLT4gcGF0aFNlZ0xpbmV0b1ZlcnRpY2FsIG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzIDpcbiAgICAgIGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHBhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGggbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwgOlxuICAgICAgZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gcGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMgOlxuICAgICAgZmxvYXQgLT4gZmxvYXQgLT4gcGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGggbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsIDpcbiAgICAgIGZsb2F0IC0+IGZsb2F0IC0+IHBhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoIG1ldGhcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdSZWN0RWxlbWVudCAqKVxuYW5kIHJlY3RFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHRlc3RzXG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICBpbmhlcml0IHRyYW5zZm9ybWFibGVcblxuICAgIG1ldGhvZCB4IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgeSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHdpZHRoIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaGVpZ2h0IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcnggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByeSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0NpcmNsZUVsZW1lbnQgKilcbmFuZCBjaXJjbGVFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHRlc3RzXG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICBpbmhlcml0IHRyYW5zZm9ybWFibGVcblxuICAgIG1ldGhvZCBjeCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGN5IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgciA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0VsbGlwc2VFbGVtZW50ICopXG5hbmQgZWxsaXBzZUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuXG4gICAgbWV0aG9kIGN4IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY3kgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByeCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJ5IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHTGluZUVsZW1lbnQgKilcbmNsYXNzIHR5cGUgbGluZUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuXG4gICAgaW5oZXJpdCBEb21faHRtbC5ldmVudFRhcmdldFxuXG4gICAgbWV0aG9kIHgxIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgeTEgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB4MiA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHkyIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0ZWRQb2ludHMgKilcbmFuZCBhbmltYXRlZFBvaW50cyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBwb2ludHMgOiBwb2ludExpc3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYW5pbWF0ZWRwb2ludHMgOiBwb2ludExpc3QgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUG9seWxpbmVFbGVtZW50ICopXG5hbmQgcG9seUxpbmVFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHRlc3RzXG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICBpbmhlcml0IHRyYW5zZm9ybWFibGVcblxuICAgIGluaGVyaXQgYW5pbWF0ZWRQb2ludHNcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdQb2x5Z29uRWxlbWVudCAqKVxuYW5kIHBvbHlnb25FbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHRlc3RzXG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICBpbmhlcml0IHRyYW5zZm9ybWFibGVcblxuICAgIGluaGVyaXQgYW5pbWF0ZWRQb2ludHNcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdUZXh0Q29udGVudEVsZW1lbnQgKilcbmFuZCB0ZXh0Q29udGVudEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgRG9tX2h0bWwuZXZlbnRUYXJnZXRcblxuICAgIG1ldGhvZCB0ZXh0TGVuZ3RoIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbGVuZ3RoQWRqdXN0IDogbGVuZ3RoQWRqdXN0IGFuaW1hdGVkIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGdldE51bWJlck9mQ2hhcnMgOiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldENvbXB1dGVkVGV4dExlbmd0aCA6IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRTdWJTdHJpbmdMZW5ndGggOiBpbnQgLT4gaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRTdGFydFBvc2l0aW9uT2ZDaGFyIDogaW50IC0+IHBvaW50IHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEVuZFBvc2l0aW9uT2ZDaGFyIDogaW50IC0+IHBvaW50IHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEV4dGVudE9mQ2hhciA6IGludCAtPiByZWN0IHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFJvdGF0aW9uT2ZDaGFyIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRDaGFyTnVtQXRQb3NpdGlvbiA6IHBvaW50IC0+IGludCBtZXRoXG5cbiAgICBtZXRob2Qgc2VsZWN0U3ViU3RyaW5nIDogaW50IC0+IGludCAtPiB1bml0IG1ldGhcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50ICopXG5hbmQgdGV4dFBvc2l0aW9uaW5nRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgdGV4dENvbnRlbnRFbGVtZW50XG5cbiAgICBtZXRob2QgeCA6IGFuaW1hdGVkTGVuZ3RoTGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB5IDogYW5pbWF0ZWRMZW5ndGhMaXN0IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGR4IDogYW5pbWF0ZWRMZW5ndGhMaXN0IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGR5IDogYW5pbWF0ZWRMZW5ndGhMaXN0IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJvdGF0ZSA6IGFuaW1hdGVkTnVtYmVyTGlzdCB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdUZXh0RWxlbWVudCAqKVxuYW5kIHRleHRFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCB0ZXh0UG9zaXRpb25pbmdFbGVtZW50XG5cbiAgICBpbmhlcml0IHRyYW5zZm9ybWFibGVcbiAgZW5kXG5cbmFuZCB0c3BhbkVsZW1lbnQgPSB0ZXh0UG9zaXRpb25pbmdFbGVtZW50XG5cbmFuZCB0cmVmRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgdGV4dFBvc2l0aW9uaW5nRWxlbWVudFxuXG4gICAgaW5oZXJpdCB1cmlSZWZlcmVuY2VcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdUZXh0UGF0aEVsZW1lbnQgKilcbmFuZCB0ZXh0UGF0aEVsZW1lbnRNZXRob2QgPSBbdGV4dFBhdGhNZXRob2RUeXBlXSBhbmltYXRlZFxuXG5hbmQgdGV4dFBhdGhFbGVtZW50U3BhY2luZyA9IFt0ZXh0UGF0aFNwYWNpbmdUeXBlXSBhbmltYXRlZFxuXG5hbmQgdGV4dFBhdGhFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCB0ZXh0Q29udGVudEVsZW1lbnRcblxuICAgIGluaGVyaXQgdXJpUmVmZXJlbmNlXG5cbiAgICBtZXRob2Qgc3RhcnRPZmZzZXQgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBtZXRob2RfIDogdGV4dFBhdGhFbGVtZW50TWV0aG9kIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzcGFjaW5nIDogdGV4dFBhdGhFbGVtZW50U3BhY2luZyByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQWx0R2x5cGhFbGVtZW50ICopXG5hbmQgYWx0R2x5cGhFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCB0ZXh0UG9zaXRpb25pbmdFbGVtZW50XG5cbiAgICBpbmhlcml0IHVyaVJlZmVyZW5jZVxuXG4gICAgbWV0aG9kIGdseXBoUmVmIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGZvcm1hdCA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdBbHRHbHlwaERlZkVsZW1lbnQgKilcbmFuZCBhbHRHbHlwaERlZkVsZW1lbnQgPSBlbGVtZW50XG5cbigqIGludGVyZmFjZSBTVkdBbHRHbHlwaEl0ZW1FbGVtZW50ICopXG5hbmQgYWx0R2x5cGhJdGVtRWxlbWVudCA9IGVsZW1lbnRcblxuKCogaW50ZXJmYWNlIFNWR0dseXBoUmVmRWxlbWVudCAqKVxuYW5kIGdseXBoUmVmRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB1cmlSZWZlcmVuY2VcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIG1ldGhvZCBnbHlwaFJlZiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBmb3JtYXQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgeCA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB5IDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIGR4IDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIGR5IDogZmxvYXQgcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1BhaW50IDogU1ZHQ29sb3IgeyAqKVxuXG4oKiAgIC8vIFBhaW50IFR5cGVzICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QQUlOVFRZUEVfVU5LTk9XTiA9IDA7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QQUlOVFRZUEVfUkdCQ09MT1IgPSAxOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUEFJTlRUWVBFX1JHQkNPTE9SX0lDQ0NPTE9SID0gMjsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BBSU5UVFlQRV9OT05FID0gMTAxOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUEFJTlRUWVBFX0NVUlJFTlRDT0xPUiA9IDEwMjsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BBSU5UVFlQRV9VUklfTk9ORSA9IDEwMzsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BBSU5UVFlQRV9VUklfQ1VSUkVOVENPTE9SID0gMTA0OyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUEFJTlRUWVBFX1VSSV9SR0JDT0xPUiA9IDEwNTsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BBSU5UVFlQRV9VUklfUkdCQ09MT1JfSUNDQ09MT1IgPSAxMDY7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QQUlOVFRZUEVfVVJJID0gMTA3OyAqKVxuXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBwYWludFR5cGU7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdXJpOyAqKVxuXG4oKiAgIHZvaWQgc2V0VXJpKGluIERPTVN0cmluZyB1cmkpOyAqKVxuKCogICB2b2lkIHNldFBhaW50KGluIHVuc2lnbmVkIHNob3J0IHBhaW50VHlwZSwgaW4gRE9NU3RyaW5nIHVyaSwgaW4gRE9NU3RyaW5nIHJnYkNvbG9yLCBpbiBET01TdHJpbmcgaWNjQ29sb3IpIHJhaXNlcyhTVkdFeGNlcHRpb24pOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR01hcmtlckVsZW1lbnQgOiBTVkdFbGVtZW50LCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdMYW5nU3BhY2UsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1N0eWxhYmxlLCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaXRUb1ZpZXdCb3ggeyAqKVxuXG4oKiAgIC8vIE1hcmtlciBVbml0IFR5cGVzICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NQVJLRVJVTklUU19VTktOT1dOID0gMDsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX01BUktFUlVOSVRTX1VTRVJTUEFDRU9OVVNFID0gMTsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX01BUktFUlVOSVRTX1NUUk9LRVdJRFRIID0gMjsgKilcblxuKCogICAvLyBNYXJrZXIgT3JpZW50YXRpb24gVHlwZXMgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX01BUktFUl9PUklFTlRfVU5LTk9XTiA9IDA7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NQVJLRVJfT1JJRU5UX0FVVE8gPSAxOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTUFSS0VSX09SSUVOVF9BTkdMRSA9IDI7ICopXG5cbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHJlZlg7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCByZWZZOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBtYXJrZXJVbml0czsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIG1hcmtlcldpZHRoOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggbWFya2VySGVpZ2h0OyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBvcmllbnRUeXBlOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRBbmdsZSBvcmllbnRBbmdsZTsgKilcblxuKCogICB2b2lkIHNldE9yaWVudFRvQXV0bygpIHJhaXNlcyhET01FeGNlcHRpb24pOyAqKVxuKCogICB2b2lkIHNldE9yaWVudFRvQW5nbGUoaW4gU1ZHQW5nbGUgYW5nbGUpIHJhaXNlcyhET01FeGNlcHRpb24pOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0NvbG9yUHJvZmlsZUVsZW1lbnQgOiBTVkdFbGVtZW50LCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdVUklSZWZlcmVuY2UsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1JlbmRlcmluZ0ludGVudCB7ICopXG4oKiAgIGF0dHJpYnV0ZSBET01TdHJpbmcgbG9jYWw7ICopXG4oKiAgIGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsgKilcbigqICAgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHJlbmRlcmluZ0ludGVudDsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdDb2xvclByb2ZpbGVSdWxlIDogU1ZHQ1NTUnVsZSwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHUmVuZGVyaW5nSW50ZW50IHsgKilcbigqICAgYXR0cmlidXRlIERPTVN0cmluZyBzcmMgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7ICopXG4oKiAgIGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZSBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsgKilcbigqICAgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHJlbmRlcmluZ0ludGVudCBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdHcmFkaWVudEVsZW1lbnQgKilcbmFuZCBhbmltYXRlZFNwcmVhZE1ldGhvZCA9IFtzcHJlYWRNZXRob2RUeXBlXSBhbmltYXRlZFxuXG5hbmQgZ3JhZGllbnRFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHVyaVJlZmVyZW5jZVxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBncmFkaWVudFVuaXRzOyAqKVxuICAgIG1ldGhvZCBncmFkaWVudFRyYW5zZm9ybSA6IGFuaW1hdGVkVHJhbnNmb3JtTGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzcHJlYWRNZXRob2QgOiBhbmltYXRlZFNwcmVhZE1ldGhvZCB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQgKilcbmFuZCBsaW5lYXJHcmFkaWVudEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGdyYWRpZW50RWxlbWVudFxuXG4gICAgbWV0aG9kIHgxIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgeTEgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB4MiA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHkyIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50ICopXG5hbmQgcmFkaWFsR3JhZGllbnRFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBncmFkaWVudEVsZW1lbnRcblxuICAgIG1ldGhvZCBjeCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGN5IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgciA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGZ4IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZnkgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdTdG9wRWxlbWVudCAqKVxuYW5kIHN0b3BFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICBtZXRob2Qgb2Zmc2V0IDogYW5pbWF0ZWROdW1iZXIgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUGF0dGVybkVsZW1lbnQgKilcbmFuZCBwYXR0ZXJuRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB1cmlSZWZlcmVuY2VcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgZml0VG9WaWV3Qm94XG5cbiAgICAoKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIHBhdHRlcm5Vbml0czsgKilcbiAgICAoKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIHBhdHRlcm5Db250ZW50VW5pdHM7ICopXG4gICAgbWV0aG9kIHBhdHRlcm5UcmFuc2Zvcm0gOiBhbmltYXRlZFRyYW5zZm9ybUxpc3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgeCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHkgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0NsaXBQYXRoRWxlbWVudCAqKVxuYW5kIGNsaXBQYXRoRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCB0cmFuc2Zvcm1hYmxlXG4gICAgKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBjbGlwUGF0aFVuaXRzOyAqKVxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR01hc2tFbGVtZW50ICopXG5hbmQgbWFza0VsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgICgqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gbWFza1VuaXRzOyAqKVxuICAgICgqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gbWFza0NvbnRlbnRVbml0czsgKilcbiAgICBtZXRob2QgeCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHkgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0ZpbHRlckVsZW1lbnQgKilcbmFuZCBmaWx0ZXJFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHVyaVJlZmVyZW5jZVxuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBmaWx0ZXJVbml0czsgKilcbiAgICAoKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIHByaW1pdGl2ZVVuaXRzOyAqKVxuICAgIG1ldGhvZCB4IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgeSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHdpZHRoIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaGVpZ2h0IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZmlsdGVyUmVzWCA6IGFuaW1hdGVkSW50ZWdlciB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBmaWx0ZXJSZXNZIDogYW5pbWF0ZWRJbnRlZ2VyIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNldEZpbHRlclJlcyA6IGludCAtPiBpbnQgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIDogU1ZHU3R5bGFibGUgeyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggeDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHk7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB3aWR0aDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIGhlaWdodDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIHJlc3VsdDsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRUJsZW5kRWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgeyAqKVxuXG4oKiAgIC8vIEJsZW5kIE1vZGUgVHlwZXMgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQkxFTkRfTU9ERV9VTktOT1dOID0gMDsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQkxFTkRfTU9ERV9OT1JNQUwgPSAxOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVCTEVORF9NT0RFX01VTFRJUExZID0gMjsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQkxFTkRfTU9ERV9TQ1JFRU4gPSAzOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVCTEVORF9NT0RFX0RBUktFTiA9IDQ7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUJMRU5EX01PREVfTElHSFRFTiA9IDU7ICopXG5cbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMjsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gbW9kZTsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRUNvbG9yTWF0cml4RWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgeyAqKVxuXG4oKiAgIC8vIENvbG9yIE1hdHJpeCBUeXBlcyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT0xPUk1BVFJJWF9UWVBFX1VOS05PV04gPSAwOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT0xPUk1BVFJJWF9UWVBFX01BVFJJWCA9IDE7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTE9STUFUUklYX1RZUEVfU0FUVVJBVEUgPSAyOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT0xPUk1BVFJJWF9UWVBFX0hVRVJPVEFURSA9IDM7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTE9STUFUUklYX1RZUEVfTFVNSU5BTkNFVE9BTFBIQSA9IDQ7ICopXG5cbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gdHlwZTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyTGlzdCB2YWx1ZXM7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQgOiBTVkdFbGVtZW50LCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMTsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCA6IFNWR0VsZW1lbnQgeyAqKVxuXG4oKiAgIC8vIENvbXBvbmVudCBUcmFuc2ZlciBUeXBlcyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT01QT05FTlRUUkFOU0ZFUl9UWVBFX1VOS05PV04gPSAwOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT01QT05FTlRUUkFOU0ZFUl9UWVBFX0lERU5USVRZID0gMTsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09NUE9ORU5UVFJBTlNGRVJfVFlQRV9UQUJMRSA9IDI7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTVBPTkVOVFRSQU5TRkVSX1RZUEVfRElTQ1JFVEUgPSAzOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT01QT05FTlRUUkFOU0ZFUl9UWVBFX0xJTkVBUiA9IDQ7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTVBPTkVOVFRSQU5TRkVSX1RZUEVfR0FNTUEgPSA1OyAqKVxuXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIHR5cGU7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlckxpc3QgdGFibGVWYWx1ZXM7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBzbG9wZTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGludGVyY2VwdDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGFtcGxpdHVkZTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGV4cG9uZW50OyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgb2Zmc2V0OyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFRnVuY1JFbGVtZW50IDogU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQgeyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFRnVuY0dFbGVtZW50IDogU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQgeyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFRnVuY0JFbGVtZW50IDogU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQgeyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFRnVuY0FFbGVtZW50IDogU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQgeyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFQ29tcG9zaXRlRWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsgKilcblxuKCogICAvLyBDb21wb3NpdGUgT3BlcmF0b3JzICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTVBPU0lURV9PUEVSQVRPUl9VTktOT1dOID0gMDsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09NUE9TSVRFX09QRVJBVE9SX09WRVIgPSAxOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT01QT1NJVEVfT1BFUkFUT1JfSU4gPSAyOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT01QT1NJVEVfT1BFUkFUT1JfT1VUID0gMzsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09NUE9TSVRFX09QRVJBVE9SX0FUT1AgPSA0OyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT01QT1NJVEVfT1BFUkFUT1JfWE9SID0gNTsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09NUE9TSVRFX09QRVJBVE9SX0FSSVRITUVUSUMgPSA2OyAqKVxuXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBpbjE7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBpbjI7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIG9wZXJhdG9yOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgazE7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBrMjsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGszOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgazQ7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQgOiBTVkdFbGVtZW50LCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsgKilcblxuKCogICAvLyBFZGdlIE1vZGUgVmFsdWVzICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19FREdFTU9ERV9VTktOT1dOID0gMDsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0VER0VNT0RFX0RVUExJQ0FURSA9IDE7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19FREdFTU9ERV9XUkFQID0gMjsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0VER0VNT0RFX05PTkUgPSAzOyAqKVxuXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBpbjE7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEludGVnZXIgb3JkZXJYOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRJbnRlZ2VyIG9yZGVyWTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyTGlzdCBrZXJuZWxNYXRyaXg7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBkaXZpc29yOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgYmlhczsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkSW50ZWdlciB0YXJnZXRYOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRJbnRlZ2VyIHRhcmdldFk7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIGVkZ2VNb2RlOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIga2VybmVsVW5pdExlbmd0aFg7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBrZXJuZWxVbml0TGVuZ3RoWTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkQm9vbGVhbiBwcmVzZXJ2ZUFscGhhOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHN1cmZhY2VTY2FsZTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGRpZmZ1c2VDb25zdGFudDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGtlcm5lbFVuaXRMZW5ndGhYOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIga2VybmVsVW5pdExlbmd0aFk7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50IDogU1ZHRWxlbWVudCB7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBhemltdXRoOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgZWxldmF0aW9uOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQgOiBTVkdFbGVtZW50IHsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHg7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciB5OyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgejsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRVNwb3RMaWdodEVsZW1lbnQgOiBTVkdFbGVtZW50IHsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHg7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciB5OyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgejsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHBvaW50c0F0WDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHBvaW50c0F0WTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHBvaW50c0F0WjsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHNwZWN1bGFyRXhwb25lbnQ7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBsaW1pdGluZ0NvbmVBbmdsZTsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQgOiBTVkdFbGVtZW50LCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7ICopXG5cbigqICAgLy8gQ2hhbm5lbCBTZWxlY3RvcnMgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0NIQU5ORUxfVU5LTk9XTiA9IDA7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19DSEFOTkVMX1IgPSAxOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQ0hBTk5FTF9HID0gMjsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0NIQU5ORUxfQiA9IDM7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19DSEFOTkVMX0EgPSA0OyAqKVxuXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBpbjE7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBpbjI7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBzY2FsZTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24geENoYW5uZWxTZWxlY3RvcjsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24geUNoYW5uZWxTZWxlY3RvcjsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRUZsb29kRWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgeyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsgKilcblxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4xOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgc3RkRGV2aWF0aW9uWDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHN0ZERldmlhdGlvblk7ICopXG5cbigqICAgdm9pZCBzZXRTdGREZXZpYXRpb24oaW4gZmxvYXQgc3RkRGV2aWF0aW9uWCwgaW4gZmxvYXQgc3RkRGV2aWF0aW9uWSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVJbWFnZUVsZW1lbnQgOiBTVkdFbGVtZW50LCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHVVJJUmVmZXJlbmNlLCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHTGFuZ1NwYWNlLCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8gcHJlc2VydmVBc3BlY3RSYXRpbzsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRU1lcmdlRWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgeyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFTWVyZ2VOb2RlRWxlbWVudCA6IFNWR0VsZW1lbnQgeyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4xOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQgOiBTVkdFbGVtZW50LCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgeyAqKVxuXG4oKiAgIC8vIE1vcnBob2xvZ3kgT3BlcmF0b3JzICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NT1JQSE9MT0dZX09QRVJBVE9SX1VOS05PV04gPSAwOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTU9SUEhPTE9HWV9PUEVSQVRPUl9FUk9ERSA9IDE7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NT1JQSE9MT0dZX09QRVJBVE9SX0RJTEFURSA9IDI7ICopXG5cbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gb3BlcmF0b3I7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciByYWRpdXNYOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgcmFkaXVzWTsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRU9mZnNldEVsZW1lbnQgOiBTVkdFbGVtZW50LCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBpbjE7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBkeDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGR5OyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQgOiBTVkdFbGVtZW50LCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgeyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4xOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgc3VyZmFjZVNjYWxlOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgc3BlY3VsYXJDb25zdGFudDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHNwZWN1bGFyRXhwb25lbnQ7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBrZXJuZWxVbml0TGVuZ3RoWDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGtlcm5lbFVuaXRMZW5ndGhZOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFVGlsZUVsZW1lbnQgOiBTVkdFbGVtZW50LCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgeyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4xOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQgOiBTVkdFbGVtZW50LCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgeyAqKVxuXG4oKiAgIC8vIFR1cmJ1bGVuY2UgVHlwZXMgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1RVUkJVTEVOQ0VfVFlQRV9VTktOT1dOID0gMDsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1RVUkJVTEVOQ0VfVFlQRV9GUkFDVEFMTk9JU0UgPSAxOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfVFVSQlVMRU5DRV9UWVBFX1RVUkJVTEVOQ0UgPSAyOyAqKVxuXG4oKiAgIC8vIFN0aXRjaCBPcHRpb25zICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19TVElUQ0hUWVBFX1VOS05PV04gPSAwOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfU1RJVENIVFlQRV9TVElUQ0ggPSAxOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfU1RJVENIVFlQRV9OT1NUSVRDSCA9IDI7ICopXG5cbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGJhc2VGcmVxdWVuY3lYOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgYmFzZUZyZXF1ZW5jeVk7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEludGVnZXIgbnVtT2N0YXZlczsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHNlZWQ7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIHN0aXRjaFRpbGVzOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiB0eXBlOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0N1cnNvckVsZW1lbnQgKilcbmFuZCBjdXJzb3JFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHVyaVJlZmVyZW5jZVxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBtZXRob2QgeCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHkgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdBRWxlbWVudCAqKVxuYW5kIGFFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHVyaVJlZmVyZW5jZVxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCB0cmFuc2Zvcm1hYmxlXG5cbiAgICBtZXRob2QgdGFyZ2V0IDogYW5pbWF0ZWRTdHJpbmcgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHVmlld0VsZW1lbnQgKilcbmFuZCB2aWV3RWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IGZpdFRvVmlld0JveFxuXG4gICAgaW5oZXJpdCB6b29tQW5kUGFuXG5cbiAgICBtZXRob2Qgdmlld1RhcmdldCA6IHN0cmluZ0xpc3QgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHU2NyaXB0RWxlbWVudCAqKVxuYW5kIHNjcmlwdEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdXJpUmVmZXJlbmNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIG1ldGhvZCB0eXBlXyA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdab29tRXZlbnQgOiBVSUV2ZW50ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdSZWN0IHpvb21SZWN0U2NyZWVuOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgcHJldmlvdXNTY2FsZTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1BvaW50IHByZXZpb3VzVHJhbnNsYXRlOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgbmV3U2NhbGU7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdQb2ludCBuZXdUcmFuc2xhdGU7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0aW9uRWxlbWVudCAqKVxuYW5kIGFuaW1hdGlvbkVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgKCogaW5oZXJpdCBlbGVtZW50VGltZUNvbnRyb2wgKilcbiAgICBtZXRob2QgdGFyZ2V0RWxlbWVudCA6IGVsZW1lbnQgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZ2V0U3RhcnRUaW1lIDogZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEN1cnJlbnRUaW1lIDogZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFNpbXBsZUR1cmF0aW9uIDogZmxvYXQgbWV0aFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0FuaW1hdGVFbGVtZW50ICopXG5hbmQgYW5pbWF0ZUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGFuaW1hdGlvbkVsZW1lbnRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdTZXRFbGVtZW50ICopXG5hbmQgc2V0RWxlbWVudCA9IGFuaW1hdGlvbkVsZW1lbnRcblxuKCogaW50ZXJmYWNlIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50ICopXG5hbmQgYW5pbWF0ZU1vdGlvbkVsZW1lbnQgPSBhbmltYXRpb25FbGVtZW50XG5cbigqIGludGVyZmFjZSBTVkdNUGF0aEVsZW1lbnQgKilcbmFuZCBtUGF0aEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdXJpUmVmZXJlbmNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlQ29sb3JFbGVtZW50ICopXG5hbmQgYW5pbWF0ZUNvbG9yRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgYW5pbWF0aW9uRWxlbWVudFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50ICopXG5hbmQgYW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQgPSBhbmltYXRpb25FbGVtZW50XG5cbigqIGludGVyZmFjZSBTVkdGb250RWxlbWVudCAqKVxuYW5kIGZvbnRFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHR2x5cGhFbGVtZW50ICopXG4oKiBpbnRlcmZhY2UgU1ZHTWlzc2luZ0dseXBoRWxlbWVudCopXG5hbmQgZ2x5cGhFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHSEtlcm5FbGVtZW50IDogU1ZHRWxlbWVudCAqKVxuKCogaW50ZXJmYWNlIFNWR1ZLZXJuRWxlbWVudCA6IFNWR0VsZW1lbnQgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZvbnRGYWNlRWxlbWVudCAqKVxuY2xhc3MgdHlwZSBmb250RmFjZUVsZW1lbnQgPSBlbGVtZW50XG5cbigqIGludGVyZmFjZSBTVkdGb250RmFjZVNyY0VsZW1lbnQgKilcbmNsYXNzIHR5cGUgZm9udEZhY2VTcmNFbGVtZW50ID0gZWxlbWVudFxuXG4oKiBpbnRlcmZhY2UgU1ZHRm9udEZhY2VVcmlFbGVtZW50ICopXG5jbGFzcyB0eXBlIGZvbnRGYWNlVXJpRWxlbWVudCA9IGVsZW1lbnRcblxuKCogaW50ZXJmYWNlIFNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudCAqKVxuY2xhc3MgdHlwZSBmb250RmFjZUZvcm1hdEVsZW1lbnQgPSBlbGVtZW50XG5cbigqIGludGVyZmFjZSBTVkdGb250RmFjZU5hbWVFbGVtZW50ICopXG5jbGFzcyB0eXBlIGZvbnRGYWNlTmFtZUVsZW1lbnQgPSBlbGVtZW50XG5cbigqIGludGVyZmFjZSBTVkdNZXRhZGF0YUVsZW1lbnQgKilcbmNsYXNzIHR5cGUgbWV0YWRhdGFFbGVtZW50ID0gZWxlbWVudFxuXG4oKiBpbnRlcmZhY2UgU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQgKilcbmNsYXNzIHR5cGUgZm9yZWlnbk9iamVjdEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuXG4gICAgbWV0aG9kIHggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB5IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgd2lkdGggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBjcmVhdGVFbGVtZW50IChkb2MgOiBkb2N1bWVudCB0KSBuYW1lID0gZG9jIyNjcmVhdGVFbGVtZW50TlMgeG1sbnMgKEpzLnN0cmluZyBuYW1lKVxuXG5sZXQgdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgbmFtZSA9IEpzLlVuc2FmZS5jb2VyY2UgKGNyZWF0ZUVsZW1lbnQgZG9jIG5hbWUpXG5cbmxldCBjcmVhdGVBIGRvYyA6IGFFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImFcIlxuXG5sZXQgY3JlYXRlQWx0R2x5cGggZG9jIDogYWx0R2x5cGhFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImFsdGdseXBoXCJcblxubGV0IGNyZWF0ZUFsdEdseXBoRGVmIGRvYyA6IGFsdEdseXBoRGVmRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJhbHRnbHlwaGRlZlwiXG5cbmxldCBjcmVhdGVBbHRHbHlwaEl0ZW0gZG9jIDogYWx0R2x5cGhJdGVtRWxlbWVudCB0ID1cbiAgdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJhbHRnbHlwaGl0ZW1cIlxuXG5sZXQgY3JlYXRlQW5pbWF0ZSBkb2MgOiBhbmltYXRlRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJhbmltYXRlXCJcblxubGV0IGNyZWF0ZUFuaW1hdGVDb2xvciBkb2MgOiBhbmltYXRlQ29sb3JFbGVtZW50IHQgPVxuICB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImFuaW1hdGVjb2xvclwiXG5cbmxldCBjcmVhdGVBbmltYXRlTW90aW9uIGRvYyA6IGFuaW1hdGVNb3Rpb25FbGVtZW50IHQgPVxuICB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImFuaW1hdGVtb3Rpb25cIlxuXG5sZXQgY3JlYXRlQW5pbWF0ZVRyYW5zZm9ybSBkb2MgOiBhbmltYXRlVHJhbnNmb3JtRWxlbWVudCB0ID1cbiAgdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJhbmltYXRldHJhbnNmb3JtXCJcblxubGV0IGNyZWF0ZUNpcmNsZSBkb2MgOiBjaXJjbGVFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImNpcmNsZVwiXG5cbmxldCBjcmVhdGVDbGlwUGF0aCBkb2MgOiBjbGlwUGF0aEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiY2xpcHBhdGhcIlxuXG4oKiBsZXQgY3JlYXRlQ29sb3JQcm9maWxlIGRvYyA6IGNvbG9yUHJvZmlsZSB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJjb2xvci1wcm9maWxlXCIgKilcbmxldCBjcmVhdGVDdXJzb3IgZG9jIDogY3Vyc29yRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJjdXJzb3JcIlxuXG5sZXQgY3JlYXRlRGVmcyBkb2MgOiBkZWZzRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJkZWZzXCJcblxubGV0IGNyZWF0ZURlc2MgZG9jIDogZGVzY0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZGVzY1wiXG5cbmxldCBjcmVhdGVFbGxpcHNlIGRvYyA6IGVsbGlwc2VFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImVsbGlwc2VcIlxuXG4oKiBsZXQgY3JlYXRlRmUqICopXG5sZXQgY3JlYXRlRmlsdGVyIGRvYyA6IGZpbHRlckVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZmlsdGVyXCJcblxubGV0IGNyZWF0ZUZvbnQgZG9jIDogZm9udEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZm9udFwiXG5cbmxldCBjcmVhdGVGb250RmFjZSBkb2MgOiBmb250RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJmb250LWZhY2VcIlxuXG5sZXQgY3JlYXRlRm9udEZhY2VGb3JtYXQgZG9jIDogZm9udEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZm9udC1mYWNlLWZvcm1hdFwiXG5cbmxldCBjcmVhdGVGb250RmFjZU5hbWUgZG9jIDogZm9udEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZm9udC1mYWNlLW5hbWVcIlxuXG5sZXQgY3JlYXRlRm9udEZhY2VTcmMgZG9jIDogZm9udEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZm9udC1mYWNlLXNyY1wiXG5cbmxldCBjcmVhdGVGb250RmFjZVVyaSBkb2MgOiBmb250RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJmb250LWZhY2UtdXJpXCJcblxubGV0IGNyZWF0ZUZvcmVpZ25PYmplY3QgZG9jIDogZm9yZWlnbk9iamVjdEVsZW1lbnQgdCA9XG4gIHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZm9yZWlnbk9iamVjdFwiXG5cbmxldCBjcmVhdGVHIGRvYyA6IGdFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImdcIlxuXG5sZXQgY3JlYXRlR2x5cGggZG9jIDogZ2x5cGhFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImdseXBoXCJcblxubGV0IGNyZWF0ZUdseXBoUmVmIGRvYyA6IGdseXBoRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJnbHlwaHJlZlwiXG5cbmxldCBjcmVhdGVoa2VybiBkb2MgOiBlbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImhrZXJuXCJcblxubGV0IGNyZWF0ZUltYWdlIGRvYyA6IGltYWdlRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJpbWFnZVwiXG5cbmxldCBjcmVhdGVMaW5lRWxlbWVudCBkb2MgOiBsaW5lRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJsaW5lXCJcblxubGV0IGNyZWF0ZUxpbmVhckVsZW1lbnQgZG9jIDogbGluZWFyR3JhZGllbnRFbGVtZW50IHQgPVxuICB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImxpbmVhcmdyYWRpZW50XCJcblxuKCogbGV0IGNyZWF0ZU1hcmtlciBkb2MgOiBtYXJrZXJFbGVtZW50ICopXG5sZXQgY3JlYXRlTWFzayBkb2MgOiBtYXNrRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJtYXNrXCJcblxubGV0IGNyZWF0ZU1ldGFEYXRhIGRvYyA6IG1ldGFkYXRhRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJtZXRhZGF0YVwiXG5cbmxldCBjcmVhdGVNaXNzaW5nR2x5cGggZG9jIDogZ2x5cGhFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcIm1pc3NpbmctZ2x5cGhcIlxuXG5sZXQgY3JlYXRlTVBhdGggZG9jIDogbVBhdGhFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcIm1wYXRoXCJcblxubGV0IGNyZWF0ZVBhdGggZG9jIDogcGF0aEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwicGF0aFwiXG5cbmxldCBjcmVhdGVQYXR0ZXJuIGRvYyA6IHBhdHRlcm5FbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInBhdHRlcm5cIlxuXG5sZXQgY3JlYXRlUG9seWdvbiBkb2MgOiBwb2x5Z29uRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJwb2x5Z29uXCJcblxubGV0IGNyZWF0ZVBvbHlsaW5lIGRvYyA6IHBvbHlMaW5lRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJwb2x5bGluZVwiXG5cbmxldCBjcmVhdGVSYWRpYWxncmFkaWVudCBkb2MgOiByYWRpYWxHcmFkaWVudEVsZW1lbnQgdCA9XG4gIHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwicmFkaWFsZ3JhZGllbnRcIlxuXG5sZXQgY3JlYXRlUmVjdCBkb2MgOiByZWN0RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJyZWN0XCJcblxubGV0IGNyZWF0ZVNjcmlwdCBkb2MgOiBzY3JpcHRFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInNjcmlwdFwiXG5cbmxldCBjcmVhdGVTZXQgZG9jIDogc2V0RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJzZXRcIlxuXG5sZXQgY3JlYXRlU3RvcCBkb2MgOiBzdG9wRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJzdG9wXCJcblxubGV0IGNyZWF0ZVN0eWxlIGRvYyA6IHN0eWxlRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJzdHlsZVwiXG5cbmxldCBjcmVhdGVTdmcgZG9jIDogc3ZnRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJzdmdcIlxuXG5sZXQgY3JlYXRlU3dpdGNoIGRvYyA6IHN3aXRjaEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwic3dpdGNoXCJcblxubGV0IGNyZWF0ZVN5bWJvbCBkb2MgOiBzeW1ib2xFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInN5bWJvbFwiXG5cbmxldCBjcmVhdGVUZXh0RWxlbWVudCBkb2MgOiB0ZXh0RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJ0ZXh0XCJcblxubGV0IGNyZWF0ZVRleHRwYXRoIGRvYyA6IHRleHRQYXRoRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJ0ZXh0cGF0aFwiXG5cbmxldCBjcmVhdGVUaXRsZSBkb2MgOiB0aXRsZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwidGl0bGVcIlxuXG5sZXQgY3JlYXRlVHJlZiBkb2MgOiB0cmVmRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJ0cmVmXCJcblxubGV0IGNyZWF0ZVRzcGFuIGRvYyA6IHRzcGFuRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJ0c3BhblwiXG5cbmxldCBjcmVhdGVVc2UgZG9jIDogdXNlRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJ1c2VcIlxuXG5sZXQgY3JlYXRlVmlldyBkb2MgOiB2aWV3RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJ2aWV3XCJcblxubGV0IGNyZWF0ZXZrZXJuIGRvYyA6IGVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwidmtlcm5cIlxuXG4oKioqKilcblxubGV0IHN2Z19lbGVtZW50IDogZWxlbWVudCB0IGNvbnN0ciA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fU1ZHRWxlbWVudFxuXG5sZXQgZG9jdW1lbnQgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuZG9jdW1lbnRcblxubGV0IGdldEVsZW1lbnRCeUlkIGlkIDogZWxlbWVudCB0ID1cbiAgSnMuT3B0LmNhc2VcbiAgICAoSnMuVW5zYWZlLmdsb2JhbCMjLmRvY3VtZW50IyNnZXRFbGVtZW50QnlJZCAoSnMuc3RyaW5nIGlkKSlcbiAgICAoZnVuICgpIC0+IHJhaXNlIE5vdF9mb3VuZClcbiAgICAoZnVuIGUgLT4gaWYgSnMuaW5zdGFuY2VvZiBlIHN2Z19lbGVtZW50IHRoZW4gZSBlbHNlIHJhaXNlIE5vdF9mb3VuZClcblxubW9kdWxlIENvZXJjZVRvID0gc3RydWN0XG4gIGxldCBlbGVtZW50IChlIDogI0RvbS5ub2RlIEpzLnQpIDogZWxlbWVudCBKcy50IEpzLm9wdCA9XG4gICAgaWYgSnMuaW5zdGFuY2VvZiBlIHN2Z19lbGVtZW50IHRoZW4gSnMuc29tZSAoSnMuVW5zYWZlLmNvZXJjZSBlKSBlbHNlIEpzLm51bGxcblxuICBsZXQgdW5zYWZlQ29lcmNlIChlIDogI2VsZW1lbnQgdCkgdGFnID1cbiAgICBpZiBlIyMudGFnTmFtZSMjdG9Mb3dlckNhc2UgPT0gSnMuc3RyaW5nIHRhZ1xuICAgIHRoZW4gSnMuc29tZSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgIGVsc2UgSnMubnVsbFxuXG4gIGxldCBhIGUgOiBhRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiYVwiXG5cbiAgbGV0IGFsdEdseXBoIGUgOiBhbHRHbHlwaEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImFsdGdseXBoXCJcblxuICBsZXQgYWx0R2x5cGhEZWYgZSA6IGFsdEdseXBoRGVmRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiYWx0Z2x5cGhkZWZcIlxuXG4gIGxldCBhbHRHbHlwaEl0ZW0gZSA6IGFsdEdseXBoSXRlbUVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImFsdGdseXBoaXRlbVwiXG5cbiAgbGV0IGFuaW1hdGUgZSA6IGFuaW1hdGVFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJhbmltYXRlXCJcblxuICBsZXQgYW5pbWF0ZUNvbG9yIGUgOiBhbmltYXRlQ29sb3JFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJhbmltYXRlY29sb3JcIlxuXG4gIGxldCBhbmltYXRlTW90aW9uIGUgOiBhbmltYXRlTW90aW9uRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiYW5pbWF0ZW1vdGlvblwiXG5cbiAgbGV0IGFuaW1hdGVUcmFuc2Zvcm0gZSA6IGFuaW1hdGVUcmFuc2Zvcm1FbGVtZW50IHQgb3B0ID1cbiAgICB1bnNhZmVDb2VyY2UgZSBcImFuaW1hdGV0cmFuc2Zvcm1cIlxuXG4gIGxldCBjaXJjbGUgZSA6IGNpcmNsZUVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImNpcmNsZVwiXG5cbiAgbGV0IGNsaXBQYXRoIGUgOiBjbGlwUGF0aEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImNsaXBwYXRoXCJcblxuICAoKiBsZXQgQ29sb3JQcm9maWxlIGUgOiBjb2xvclByb2ZpbGUgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImNvbG9yLXByb2ZpbGVcIiAqKVxuICBsZXQgY3Vyc29yIGUgOiBjdXJzb3JFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJjdXJzb3JcIlxuXG4gIGxldCBkZWZzIGUgOiBkZWZzRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiZGVmc1wiXG5cbiAgbGV0IGRlc2MgZSA6IGRlc2NFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJkZXNjXCJcblxuICBsZXQgZWxsaXBzZSBlIDogZWxsaXBzZUVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImVsbGlwc2VcIlxuXG4gICgqIGxldCBGZSogKilcbiAgbGV0IGZpbHRlciBlIDogZmlsdGVyRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiZmlsdGVyXCJcblxuICBsZXQgZm9udCBlIDogZm9udEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImZvbnRcIlxuXG4gIGxldCBmb250RmFjZSBlIDogZm9udEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImZvbnQtZmFjZVwiXG5cbiAgbGV0IGZvbnRGYWNlRm9ybWF0IGUgOiBmb250RWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiZm9udC1mYWNlLWZvcm1hdFwiXG5cbiAgbGV0IGZvbnRGYWNlTmFtZSBlIDogZm9udEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImZvbnQtZmFjZS1uYW1lXCJcblxuICBsZXQgZm9udEZhY2VTcmMgZSA6IGZvbnRFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJmb250LWZhY2Utc3JjXCJcblxuICBsZXQgZm9udEZhY2VVcmkgZSA6IGZvbnRFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJmb250LWZhY2UtdXJpXCJcblxuICBsZXQgZm9yZWlnbk9iamVjdCBlIDogZm9yZWlnbk9iamVjdEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImZvcmVpZ25vYmplY3RcIlxuXG4gIGxldCBnIGUgOiBnRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiZ1wiXG5cbiAgbGV0IGdseXBoIGUgOiBnbHlwaEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImdseXBoXCJcblxuICBsZXQgZ2x5cGhSZWYgZSA6IGdseXBoRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiZ2x5cGhyZWZcIlxuXG4gIGxldCBoa2VybiBlIDogZWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiaGtlcm5cIlxuXG4gIGxldCBpbWFnZSBlIDogaW1hZ2VFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJpbWFnZVwiXG5cbiAgbGV0IGxpbmVFbGVtZW50IGUgOiBsaW5lRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwibGluZVwiXG5cbiAgbGV0IGxpbmVhckVsZW1lbnQgZSA6IGxpbmVhckdyYWRpZW50RWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwibGluZWFyZ3JhZGllbnRcIlxuXG4gICgqIGxldCBNYXJrZXIgZSA6IG1hcmtlckVsZW1lbnQgKilcbiAgbGV0IG1hc2sgZSA6IG1hc2tFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJtYXNrXCJcblxuICBsZXQgbWV0YURhdGEgZSA6IG1ldGFkYXRhRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwibWV0YWRhdGFcIlxuXG4gIGxldCBtaXNzaW5nR2x5cGggZSA6IGdseXBoRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwibWlzc2luZy1nbHlwaFwiXG5cbiAgbGV0IG1QYXRoIGUgOiBtUGF0aEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcIm1wYXRoXCJcblxuICBsZXQgcGF0aCBlIDogcGF0aEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInBhdGhcIlxuXG4gIGxldCBwYXR0ZXJuIGUgOiBwYXR0ZXJuRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwicGF0dGVyblwiXG5cbiAgbGV0IHBvbHlnb24gZSA6IHBvbHlnb25FbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJwb2x5Z29uXCJcblxuICBsZXQgcG9seWxpbmUgZSA6IHBvbHlMaW5lRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwicG9seWxpbmVcIlxuXG4gIGxldCByYWRpYWxncmFkaWVudCBlIDogcmFkaWFsR3JhZGllbnRFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJyYWRpYWxncmFkaWVudFwiXG5cbiAgbGV0IHJlY3QgZSA6IHJlY3RFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJyZWN0XCJcblxuICBsZXQgc2NyaXB0IGUgOiBzY3JpcHRFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJzY3JpcHRcIlxuXG4gIGxldCBzZXQgZSA6IHNldEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInNldFwiXG5cbiAgbGV0IHN0b3AgZSA6IHN0b3BFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJzdG9wXCJcblxuICBsZXQgc3R5bGUgZSA6IHN0eWxlRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwic3R5bGVcIlxuXG4gIGxldCBzdmcgZSA6IHN2Z0VsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInN2Z1wiXG5cbiAgbGV0IHN3aXRjaCBlIDogc3dpdGNoRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwic3dpdGNoXCJcblxuICBsZXQgc3ltYm9sIGUgOiBzeW1ib2xFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJzeW1ib2xcIlxuXG4gIGxldCB0ZXh0RWxlbWVudCBlIDogdGV4dEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInRleHRcIlxuXG4gIGxldCB0ZXh0cGF0aCBlIDogdGV4dFBhdGhFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJ0ZXh0cGF0aFwiXG5cbiAgbGV0IHRpdGxlIGUgOiB0aXRsZUVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInRpdGxlXCJcblxuICBsZXQgdHJlZiBlIDogdHJlZkVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInRyZWZcIlxuXG4gIGxldCB0c3BhbiBlIDogdHNwYW5FbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJ0c3BhblwiXG5cbiAgbGV0IHVzZSBlIDogdXNlRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwidXNlXCJcblxuICBsZXQgdmlldyBlIDogdmlld0VsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInZpZXdcIlxuXG4gIGxldCB2a2VybiBlIDogZWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwidmtlcm5cIlxuZW5kXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDE0IEh1Z28gSGV1emFyZFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxuXG4oKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvRXZlbnRTb3VyY2UgKilcbm9wZW4gSnNcbm9wZW4gRG9tXG5vcGVuISBJbXBvcnRcblxudHlwZSBzdGF0ZSA9XG4gIHwgQ09OTkVDVElOR1xuICB8IE9QRU5cbiAgfCBDTE9TRURcblxuY2xhc3MgdHlwZSBbJ2FdIG1lc3NhZ2VFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgWydhXSBEb20uZXZlbnRcblxuICAgIG1ldGhvZCBkYXRhIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9yaWdpbiA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBsYXN0RXZlbnRJZCA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcbiAgICAoKiBtZXRob2Qgc291cmNlIDogdW5pdCAqKVxuICBlbmRcblxuY2xhc3MgdHlwZSBldmVudFNvdXJjZSA9XG4gIG9iamVjdCAoJ3NlbGYpXG4gICAgbWV0aG9kIHVybCA6IHN0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB3aXRoQ3JlZGVudGlhbHMgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJlYWR5U3RhdGUgOiBzdGF0ZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY2xvc2UgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBvbm9wZW4gOiAoJ3NlbGYgdCwgJ3NlbGYgbWVzc2FnZUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25tZXNzYWdlIDogKCdzZWxmIHQsICdzZWxmIG1lc3NhZ2VFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uZXJyb3IgOiAoJ3NlbGYgdCwgJ3NlbGYgbWVzc2FnZUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIG9wdGlvbnMgPVxuICBvYmplY3RcbiAgICBtZXRob2Qgd2l0aENyZWRlbnRpYWxzIDogYm9vbCB0IHdyaXRlb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgd2l0aENyZWRlbnRpYWxzIGIgOiBvcHRpb25zIHQgPVxuICBsZXQgaW5pdCA9IEpzLlVuc2FmZS5vYmogW3x8XSBpblxuICBpbml0IyMud2l0aENyZWRlbnRpYWxzIDo9IEpzLmJvb2wgYjtcbiAgaW5pdFxuXG5sZXQgZXZlbnRTb3VyY2UgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX0V2ZW50U291cmNlXG5cbmxldCBldmVudFNvdXJjZV9vcHRpb25zID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9FdmVudFNvdXJjZVxuXG5sZXQgYWRkRXZlbnRMaXN0ZW5lciA9IERvbS5hZGRFdmVudExpc3RlbmVyXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4gKiBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3RcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcblxub3BlbiBKc1xub3BlbiEgSW1wb3J0XG5cbmNsYXNzIHR5cGUgY29uc29sZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBsb2cgOiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGxvZ18yIDogXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGxvZ18zIDogXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgbG9nXzQgOiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGxvZ181IDogXyAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGxvZ182IDogXyAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgbG9nXzcgOiBfIC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGxvZ184IDogXyAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRlYnVnIDogXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkZWJ1Z18yIDogXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRlYnVnXzMgOiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkZWJ1Z180IDogXyAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkZWJ1Z181IDogXyAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGluZm8gOiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGluZm9fMiA6IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBpbmZvXzMgOiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBpbmZvXzQgOiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGluZm9fNSA6IF8gLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB3YXJuIDogXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB3YXJuXzIgOiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgd2Fybl8zIDogXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgd2Fybl80IDogXyAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB3YXJuXzUgOiBfIC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZXJyb3IgOiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGVycm9yXzIgOiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZXJyb3JfMyA6IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGVycm9yXzQgOiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGVycm9yXzUgOiBfIC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYXNzZXJ0XyA6IGJvb2wgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBhc3NlcnRfMSA6IGJvb2wgdCAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGFzc2VydF8yIDogYm9vbCB0IC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBhc3NlcnRfMyA6IGJvb2wgdCAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBhc3NlcnRfNCA6IGJvb2wgdCAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGFzc2VydF81IDogYm9vbCB0IC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkaXIgOiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRpcnhtbCA6IERvbS5ub2RlIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdHJhY2UgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBncm91cCA6IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ3JvdXBfMiA6IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBncm91cF8zIDogXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ3JvdXBfNCA6IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ3JvdXBfNSA6IF8gLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBncm91cENvbGxhcHNlZCA6IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ3JvdXBDb2xsYXBzZWRfMiA6IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBncm91cENvbGxhcHNlZF8zIDogXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ3JvdXBDb2xsYXBzZWRfNCA6IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ3JvdXBDb2xsYXBzZWRfNSA6IF8gLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBncm91cEVuZCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRpbWUgOiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB0aW1lRW5kIDoganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG5leHRlcm5hbCBnZXRfY29uc29sZSA6IHVuaXQgLT4gY29uc29sZSB0ID0gXCJjYW1sX2pzX2dldF9jb25zb2xlXCJcblxubGV0IGNvbnNvbGUgPSBnZXRfY29uc29sZSAoKVxuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxNSBTdMOpcGhhbmUgTGVncmFuZFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxub3BlbiEgSW1wb3J0XG5cbnR5cGUgcG9zaXRpb25FcnJvckNvZGVcblxudHlwZSB3YXRjaElkXG5cbmNsYXNzIHR5cGUgY29vcmRpbmF0ZXMgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbGF0aXR1ZGUgOiBmbG9hdCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbG9uZ2l0dWRlIDogZmxvYXQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFsdGl0dWRlIDogZmxvYXQgSnMub3B0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhY2N1cmFjeSA6IGZsb2F0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhbHRpdHVkZUFjY3VyYWN5IDogZmxvYXQgSnMub3B0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBoZWFkaW5nIDogZmxvYXQgSnMub3B0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzcGVlZCA6IGZsb2F0IEpzLm9wdCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHBvc2l0aW9uID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGNvb3JkcyA6IGNvb3JkaW5hdGVzIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHRpbWVzdGFtcCA6IEpzLmRhdGUgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBwb3NpdGlvbk9wdGlvbnMgPVxuICBvYmplY3RcbiAgICBtZXRob2QgZW5hYmxlSGlnaEFjY3VyYWN5IDogYm9vbCBKcy53cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHRpbWVvdXQgOiBpbnQgSnMud3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBtYXhpbXVtQWdlIDogaW50IEpzLndyaXRlb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHBvc2l0aW9uRXJyb3IgPVxuICBvYmplY3RcbiAgICBtZXRob2QgX1BFUk1JU1NJT05fREVOSUVEXyA6IHBvc2l0aW9uRXJyb3JDb2RlIEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUE9TSVRJT05fVU5BVkFJTEFCTEVfIDogcG9zaXRpb25FcnJvckNvZGUgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9USU1FT1VUIDogcG9zaXRpb25FcnJvckNvZGUgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNvZGUgOiBwb3NpdGlvbkVycm9yQ29kZSBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbWVzc2FnZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgZ2VvbG9jYXRpb24gPVxuICBvYmplY3RcbiAgICBtZXRob2QgZ2V0Q3VycmVudFBvc2l0aW9uIDpcbiAgICAgICAgIChwb3NpdGlvbiBKcy50IC0+IHVuaXQpIEpzLmNhbGxiYWNrXG4gICAgICAtPiAocG9zaXRpb25FcnJvciBKcy50IC0+IHVuaXQpIEpzLmNhbGxiYWNrXG4gICAgICAtPiBwb3NpdGlvbk9wdGlvbnMgSnMudFxuICAgICAgLT4gdW5pdCBKcy5tZXRoXG5cbiAgICBtZXRob2Qgd2F0Y2hQb3NpdGlvbiA6XG4gICAgICAgICAocG9zaXRpb24gSnMudCAtPiB1bml0KSBKcy5jYWxsYmFja1xuICAgICAgLT4gKHBvc2l0aW9uRXJyb3IgSnMudCAtPiB1bml0KSBKcy5jYWxsYmFja1xuICAgICAgLT4gcG9zaXRpb25PcHRpb25zIEpzLnRcbiAgICAgIC0+IHdhdGNoSWQgSnMubWV0aFxuXG4gICAgbWV0aG9kIGNsZWFyV2F0Y2ggOiB3YXRjaElkIC0+IHVuaXQgSnMubWV0aFxuICBlbmRcblxubGV0IGVtcHR5X3Bvc2l0aW9uX29wdGlvbnMgKCkgPSBKcy5VbnNhZmUub2JqIFt8fF1cblxubGV0IGdlb2xvY2F0aW9uID1cbiAgbGV0IHggPSBKcy5VbnNhZmUuZ2xvYmFsIyMubmF2aWdhdG9yIGluXG4gIGlmIEpzLk9wdGRlZi50ZXN0IHggdGhlbiB4IyMuZ2VvbG9jYXRpb24gZWxzZSB4XG5cbigqIHVuZGVmaW5lZCAqKVxuXG5sZXQgaXNfc3VwcG9ydGVkICgpID0gSnMuT3B0ZGVmLnRlc3QgZ2VvbG9jYXRpb25cbiIsImNsYXNzIHR5cGUgaW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB0YXJnZXQgOiBEb20ubm9kZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBib3VuZGluZ0NsaWVudFJlY3QgOiBEb21faHRtbC5jbGllbnRSZWN0IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJvb3RCb3VuZHMgOiBEb21faHRtbC5jbGllbnRSZWN0IEpzLnQgSnMub3B0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBpbnRlcnNlY3Rpb25SZWN0IDogRG9tX2h0bWwuY2xpZW50UmVjdCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBpbnRlcnNlY3Rpb25SYXRpbyA6IGZsb2F0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBpc0ludGVyc2VjdGluZyA6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdGltZSA6IGZsb2F0IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgaW50ZXJzZWN0aW9uT2JzZXJ2ZXJPcHRpb25zID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHJvb3QgOiBEb20ubm9kZSBKcy50IEpzLndyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgcm9vdE1hcmdpbiA6IEpzLmpzX3N0cmluZyBKcy50IEpzLndyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgdGhyZXNob2xkIDogZmxvYXQgSnMuanNfYXJyYXkgSnMudCBKcy53cml0ZW9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBpbnRlcnNlY3Rpb25PYnNlcnZlciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCByb290IDogRG9tLm5vZGUgSnMudCBKcy5vcHQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJvb3RNYXJnaW4gOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdGhyZXNob2xkcyA6IGZsb2F0IEpzLmpzX2FycmF5IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ic2VydmUgOiAjRG9tLm5vZGUgSnMudCAtPiB1bml0IEpzLm1ldGhcblxuICAgIG1ldGhvZCB1bm9ic2VydmUgOiAjRG9tLm5vZGUgSnMudCAtPiB1bml0IEpzLm1ldGhcblxuICAgIG1ldGhvZCBkaXNjb25uZWN0IDogdW5pdCBKcy5tZXRoXG5cbiAgICBtZXRob2QgdGFrZVJlY29yZHMgOiBpbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5IEpzLnQgSnMuanNfYXJyYXkgSnMubWV0aFxuICBlbmRcblxubGV0IGVtcHR5X2ludGVyc2VjdGlvbl9vYnNlcnZlcl9vcHRpb25zICgpIDogaW50ZXJzZWN0aW9uT2JzZXJ2ZXJPcHRpb25zIEpzLnQgPVxuICBKcy5VbnNhZmUub2JqIFt8fF1cblxubGV0IGludGVyc2VjdGlvbk9ic2VydmVyX3Vuc2FmZSA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fSW50ZXJzZWN0aW9uT2JzZXJ2ZXJcblxubGV0IGlzX3N1cHBvcnRlZCAoKSA9IEpzLk9wdGRlZi50ZXN0IGludGVyc2VjdGlvbk9ic2VydmVyX3Vuc2FmZVxuXG5sZXQgaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgOlxuICAgICggICAoICAgaW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeSBKcy50IEpzLmpzX2FycmF5IEpzLnRcbiAgICAgICAgIC0+IGludGVyc2VjdGlvbk9ic2VydmVyIEpzLnRcbiAgICAgICAgIC0+IHVuaXQpXG4gICAgICAgIEpzLmNhbGxiYWNrXG4gICAgIC0+IGludGVyc2VjdGlvbk9ic2VydmVyT3B0aW9ucyBKcy50XG4gICAgIC0+IGludGVyc2VjdGlvbk9ic2VydmVyIEpzLnQpXG4gICAgSnMuY29uc3RyID1cbiAgaW50ZXJzZWN0aW9uT2JzZXJ2ZXJfdW5zYWZlXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDE4IFN0w6lwaGFuZSBMZWdyYW5kXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5vcGVuISBJbXBvcnRcblxubW9kdWxlIHR5cGUgU2hhcmVkID0gc2lnXG4gIGNsYXNzIHR5cGUgb2JqZWN0X29wdGlvbnMgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIGxvY2FsZU1hdGNoZXIgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5wcm9wXG4gICAgZW5kXG5cbiAgdmFsIG9iamVjdF9vcHRpb25zIDogdW5pdCAtPiBvYmplY3Rfb3B0aW9ucyBKcy50XG5cbiAgY2xhc3MgdHlwZSBfb2JqZWN0ID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBzdXBwb3J0ZWRMb2NhbGVzT2YgOlxuICAgICAgICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5qc19hcnJheSBKcy50XG4gICAgICAgIC0+IG9iamVjdF9vcHRpb25zIEpzLnQgSnMub3B0ZGVmXG4gICAgICAgIC0+IEpzLmpzX3N0cmluZyBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMubWV0aFxuICAgIGVuZFxuZW5kXG5cbm1vZHVsZSBTaGFyZWQgOiBTaGFyZWQgPSBzdHJ1Y3RcbiAgY2xhc3MgdHlwZSBvYmplY3Rfb3B0aW9ucyA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2QgbG9jYWxlTWF0Y2hlciA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnByb3BcbiAgICBlbmRcblxuICBsZXQgb2JqZWN0X29wdGlvbnMgKCkgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG11dGFibGUgbG9jYWxlTWF0Y2hlciA9IEpzLnN0cmluZyBcImJlc3QgZml0XCJcbiAgICBlbmRcblxuICBjbGFzcyB0eXBlIF9vYmplY3QgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIHN1cHBvcnRlZExvY2FsZXNPZiA6XG4gICAgICAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLmpzX2FycmF5IEpzLnRcbiAgICAgICAgLT4gb2JqZWN0X29wdGlvbnMgSnMudCBKcy5vcHRkZWZcbiAgICAgICAgLT4gSnMuanNfc3RyaW5nIEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5tZXRoXG4gICAgZW5kXG5lbmRcblxubW9kdWxlIENvbGxhdG9yID0gc3RydWN0XG4gIGluY2x1ZGUgU2hhcmVkXG5cbiAgY2xhc3MgdHlwZSByZXNvbHZlZF9vcHRpb25zID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBsb2NhbGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCB1c2FnZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIHNlbnNpdGl2aXR5IDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgaWdub3JlUHVuY3R1YXRpb24gOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgY29sbGF0aW9uIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgbnVtZXJpYyA6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBjYXNlRmlyc3QgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgZW5kXG5cbiAgY2xhc3MgdHlwZSBvcHRpb25zID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBsb2NhbGVNYXRjaGVyIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucHJvcFxuXG4gICAgICBtZXRob2QgdXNhZ2UgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBzZW5zaXRpdml0eSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnByb3BcblxuICAgICAgbWV0aG9kIGlnbm9yZVB1bmN0dWF0aW9uIDogYm9vbCBKcy50IEpzLnByb3BcblxuICAgICAgbWV0aG9kIG51bWVyaWMgOiBib29sIEpzLnQgSnMucHJvcFxuXG4gICAgICBtZXRob2QgY2FzZUZpcnN0IDogSnMuanNfc3RyaW5nIEpzLnQgSnMucHJvcFxuICAgIGVuZFxuXG4gIGxldCBvcHRpb25zICgpID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtdXRhYmxlIGxvY2FsZU1hdGNoZXIgPSBKcy5zdHJpbmcgXCJiZXN0IGZpdFwiXG5cbiAgICAgIHZhbCBtdXRhYmxlIHVzYWdlID0gSnMuc3RyaW5nIFwic29ydFwiXG5cbiAgICAgIHZhbCBtdXRhYmxlIHNlbnNpdGl2aXR5ID0gSnMuc3RyaW5nIFwidmFyaWFudFwiXG5cbiAgICAgIHZhbCBtdXRhYmxlIGlnbm9yZVB1bmN0dWF0aW9uID0gSnMuX2ZhbHNlXG5cbiAgICAgIHZhbCBtdXRhYmxlIG51bWVyaWMgPSBKcy5fZmFsc2VcblxuICAgICAgdmFsIG11dGFibGUgY2FzZUZpcnN0ID0gSnMuc3RyaW5nIFwiZmFsc2VcIlxuICAgIGVuZFxuXG4gIGNsYXNzIHR5cGUgdCA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2QgY29tcGFyZSA6IChKcy5qc19zdHJpbmcgSnMudCAtPiBKcy5qc19zdHJpbmcgSnMudCAtPiBpbnQpIEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIHJlc29sdmVkT3B0aW9ucyA6IHVuaXQgLT4gcmVzb2x2ZWRfb3B0aW9ucyBKcy50IEpzLm1ldGhcbiAgICBlbmRcbmVuZFxuXG5tb2R1bGUgRGF0ZVRpbWVGb3JtYXQgPSBzdHJ1Y3RcbiAgaW5jbHVkZSBTaGFyZWRcblxuICBjbGFzcyB0eXBlIHJlc29sdmVkX29wdGlvbnMgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIGxvY2FsZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIGNhbGVuZGFyIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgbnVtYmVyaW5nU3lzdGVtIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgdGltZVpvbmUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBob3VyMTIgOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2Qgd2Vla2RheSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCBlcmEgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWZfcHJvcFxuXG4gICAgICBtZXRob2QgeWVhciA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCBtb250aCA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCBkYXkgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWZfcHJvcFxuXG4gICAgICBtZXRob2QgaG91ciA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCBtaW51dGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWZfcHJvcFxuXG4gICAgICBtZXRob2Qgc2Vjb25kIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIHRpbWVab25lTmFtZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZl9wcm9wXG4gICAgZW5kXG5cbiAgY2xhc3MgdHlwZSBvcHRpb25zID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBkYXRlU3R5bGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgdGltZVN0eWxlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIGNhbGVuZGFyIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIGRheVBlcmlvZCA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBudW1iZXJpbmdTeXN0ZW0gOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgbG9jYWxlTWF0Y2hlciA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnByb3BcblxuICAgICAgbWV0aG9kIHRpbWVab25lIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIGhvdXIxMiA6IGJvb2wgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgaG91ckN5Y2xlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIGZvcm1hdE1hdGNoZXIgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCB3ZWVrZGF5IDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIGVyYSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCB5ZWFyIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIG1vbnRoIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIGRheSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBob3VyIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIG1pbnV0ZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBzZWNvbmQgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgZnJhY3Rpb25hbFNlY29uZERpZ2l0cyA6IGludCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgdGltZVpvbmVOYW1lIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcbiAgICBlbmRcblxuICBsZXQgb3B0aW9ucyAoKSA6IG9wdGlvbnMgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbXV0YWJsZSBkYXRlU3R5bGUgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgdGltZVN0eWxlID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIGNhbGVuZGFyID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIGRheVBlcmlvZCA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBudW1iZXJpbmdTeXN0ZW0gPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgbG9jYWxlTWF0Y2hlciA9IEpzLnN0cmluZyBcImJlc3QgZml0XCJcblxuICAgICAgdmFsIG11dGFibGUgdGltZVpvbmUgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgaG91cjEyID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIGhvdXJDeWNsZSA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBmb3JtYXRNYXRjaGVyID0gSnMuc3RyaW5nIFwiYmVzdCBmaXRcIlxuXG4gICAgICB2YWwgbXV0YWJsZSB3ZWVrZGF5ID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIGVyYSA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSB5ZWFyID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIG1vbnRoID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIGRheSA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBob3VyID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIG1pbnV0ZSA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBzZWNvbmQgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgZnJhY3Rpb25hbFNlY29uZERpZ2l0cyA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSB0aW1lWm9uZU5hbWUgPSBKcy51bmRlZmluZWRcbiAgICBlbmRcblxuICBjbGFzcyB0eXBlIGZvcm1hdF9wYXJ0ID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBfdHlwZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIF92YWx1ZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBlbmRcblxuICBjbGFzcyB0eXBlIHQgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIGZvcm1hdCA6IChKcy5kYXRlIEpzLnQgLT4gSnMuanNfc3RyaW5nIEpzLnQpIEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIGZvcm1hdFRvUGFydHMgOlxuICAgICAgICBKcy5kYXRlIEpzLnQgSnMub3B0ZGVmIC0+IGZvcm1hdF9wYXJ0IEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5tZXRoXG5cbiAgICAgIG1ldGhvZCByZXNvbHZlZE9wdGlvbnMgOiB1bml0IC0+IHJlc29sdmVkX29wdGlvbnMgSnMudCBKcy5tZXRoXG4gICAgZW5kXG5lbmRcblxubW9kdWxlIE51bWJlckZvcm1hdCA9IHN0cnVjdFxuICBpbmNsdWRlIFNoYXJlZFxuXG4gIGNsYXNzIHR5cGUgcmVzb2x2ZWRfb3B0aW9ucyA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2QgbG9jYWxlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgbnVtYmVyaW5nU3lzdGVtIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2Qgc3R5bGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBjdXJyZW5jeSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCBjdXJyZW5jeURpc3BsYXkgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWZfcHJvcFxuXG4gICAgICBtZXRob2QgdXNlR3JvdXBpbmcgOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgbWluaW11bUludGVnZXJEaWdpdHMgOiBpbnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIG1pbmltdW1GcmFjdGlvbkRpZ2l0cyA6IGludCBKcy5vcHRkZWZfcHJvcFxuXG4gICAgICBtZXRob2QgbWF4aW11bUZyYWN0aW9uRGlnaXRzIDogaW50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCBtaW5pbXVtU2lnbmlmaWNhbnREaWdpdHMgOiBpbnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIG1heGltdW1TaWduaWZpY2FudERpZ2l0cyA6IGludCBKcy5vcHRkZWZfcHJvcFxuICAgIGVuZFxuXG4gIGNsYXNzIHR5cGUgb3B0aW9ucyA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2QgY29tcGFjdERpc3BsYXkgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgY3VycmVuY3kgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgY3VycmVuY3lEaXNwbGF5IDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIGN1cnJlbmN5U2lnbiA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBsb2NhbGVNYXRjaGVyIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucHJvcFxuXG4gICAgICBtZXRob2Qgbm90YXRpb24gOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgbnVtYmVyaW5nU3lzdGVtIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIHNpZ25EaXNwbGF5IDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIHN0eWxlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucHJvcFxuXG4gICAgICBtZXRob2QgdW5pdCA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCB1bml0RGlzcGxheSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCB1c2VHcm91cGluZyA6IGJvb2wgSnMudCBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCByb3VuZGluZ01vZGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2Qgcm91bmRpbmdQcmlvcml0eSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCByb3VuZGluZ0luY3JlbWVudCA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCB0cmFpbGluZ1plcm9EaXNwbGF5IDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIG1pbmltdW1JbnRlZ2VyRGlnaXRzIDogaW50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBtaW5pbXVtRnJhY3Rpb25EaWdpdHMgOiBpbnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIG1heGltdW1GcmFjdGlvbkRpZ2l0cyA6IGludCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgbWluaW11bVNpZ25pZmljYW50RGlnaXRzIDogaW50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBtYXhpbXVtU2lnbmlmaWNhbnREaWdpdHMgOiBpbnQgSnMub3B0ZGVmIEpzLnByb3BcbiAgICBlbmRcblxuICBsZXQgb3B0aW9ucyAoKSA6IG9wdGlvbnMgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbXV0YWJsZSBjb21wYWN0RGlzcGxheSA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBjdXJyZW5jeSA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBjdXJyZW5jeURpc3BsYXkgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgY3VycmVuY3lTaWduID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIGxvY2FsZU1hdGNoZXIgPSBKcy5zdHJpbmcgXCJiZXN0IGZpdFwiXG5cbiAgICAgIHZhbCBtdXRhYmxlIG5vdGF0aW9uID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIG51bWJlcmluZ1N5c3RlbSA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBzaWduRGlzcGxheSA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBzdHlsZSA9IEpzLnN0cmluZyBcImRlY2ltYWxcIlxuXG4gICAgICB2YWwgbXV0YWJsZSB1bml0ID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIHVuaXREaXNwbGF5ID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIHVzZUdyb3VwaW5nID0gSnMuX3RydWVcblxuICAgICAgdmFsIG11dGFibGUgcm91bmRpbmdNb2RlID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIHJvdW5kaW5nUHJpb3JpdHkgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgcm91bmRpbmdJbmNyZW1lbnQgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgdHJhaWxpbmdaZXJvRGlzcGxheSA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBtaW5pbXVtSW50ZWdlckRpZ2l0cyA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBtaW5pbXVtRnJhY3Rpb25EaWdpdHMgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgbWF4aW11bUZyYWN0aW9uRGlnaXRzID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIG1pbmltdW1TaWduaWZpY2FudERpZ2l0cyA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBtYXhpbXVtU2lnbmlmaWNhbnREaWdpdHMgPSBKcy51bmRlZmluZWRcbiAgICBlbmRcblxuICBjbGFzcyB0eXBlIGZvcm1hdF9wYXJ0ID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBfdHlwZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIF92YWx1ZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBlbmRcblxuICBjbGFzcyB0eXBlIHQgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIGZvcm1hdCA6IChKcy5udW1iZXIgSnMudCAtPiBKcy5qc19zdHJpbmcgSnMudCkgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgZm9ybWF0VG9QYXJ0cyA6XG4gICAgICAgIEpzLm51bWJlciBKcy50IEpzLm9wdGRlZiAtPiBmb3JtYXRfcGFydCBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMubWV0aFxuXG4gICAgICBtZXRob2QgcmVzb2x2ZWRPcHRpb25zIDogdW5pdCAtPiByZXNvbHZlZF9vcHRpb25zIEpzLnQgSnMubWV0aFxuICAgIGVuZFxuZW5kXG5cbm1vZHVsZSBQbHVyYWxSdWxlcyA9IHN0cnVjdFxuICBpbmNsdWRlIFNoYXJlZFxuXG4gIGNsYXNzIHR5cGUgcmVzb2x2ZWRfb3B0aW9ucyA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2QgbG9jYWxlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgcGx1cmFsQ2F0ZWdvcmllcyA6IEpzLmpzX3N0cmluZyBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgX3R5cGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBtaW5pbXVtSW50ZWdlckRpZ2l0cyA6IGludCBKcy5vcHRkZWZfcHJvcFxuXG4gICAgICBtZXRob2QgbWluaW11bUZyYWN0aW9uRGlnaXRzIDogaW50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCBtYXhpbXVtRnJhY3Rpb25EaWdpdHMgOiBpbnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIG1pbmltdW1TaWduaWZpY2FudERpZ2l0cyA6IGludCBKcy5vcHRkZWZfcHJvcFxuXG4gICAgICBtZXRob2QgbWF4aW11bVNpZ25pZmljYW50RGlnaXRzIDogaW50IEpzLm9wdGRlZl9wcm9wXG4gICAgZW5kXG5cbiAgY2xhc3MgdHlwZSBvcHRpb25zID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBsb2NhbGVNYXRjaGVyIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucHJvcFxuXG4gICAgICBtZXRob2QgX3R5cGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5wcm9wXG4gICAgZW5kXG5cbiAgbGV0IG9wdGlvbnMgKCkgOiBvcHRpb25zIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG11dGFibGUgbG9jYWxlTWF0Y2hlciA9IEpzLnN0cmluZyBcImJlc3QgZml0XCJcblxuICAgICAgdmFsIG11dGFibGUgX3R5cGUgPSBKcy5zdHJpbmcgXCJjYXJkaW5hbFwiXG4gICAgZW5kXG5cbiAgY2xhc3MgdHlwZSB0ID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBzZWxlY3QgOiBKcy5udW1iZXIgSnMudCAtPiBKcy5qc19zdHJpbmcgSnMudCBKcy5tZXRoXG5cbiAgICAgIG1ldGhvZCByZXNvbHZlZE9wdGlvbnMgOiB1bml0IC0+IHJlc29sdmVkX29wdGlvbnMgSnMudCBKcy5tZXRoXG4gICAgZW5kXG5lbmRcblxuY2xhc3MgdHlwZSBpbnRsID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIF9Db2xsYXRvciA6IENvbGxhdG9yLl9vYmplY3QgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RhdGVUaW1lRm9ybWF0IDogRGF0ZVRpbWVGb3JtYXQuX29iamVjdCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTnVtYmVyRm9ybWF0IDogTnVtYmVyRm9ybWF0Ll9vYmplY3QgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1BsdXJhbFJ1bGVzIDogUGx1cmFsUnVsZXMuX29iamVjdCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBnZXRDYW5vbmljYWxMb2NhbGVzIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLmpzX2FycmF5IEpzLnQgLT4gSnMuanNfc3RyaW5nIEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5tZXRoXG4gIGVuZFxuXG5sZXQgaW50bCA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fSW50bFxuXG5sZXQgY29sbGF0b3JfY29uc3RyID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9JbnRsIyMuX0NvbGxhdG9yXG5cbmxldCBkYXRlVGltZUZvcm1hdF9jb25zdHIgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX0ludGwjIy5fRGF0ZVRpbWVGb3JtYXRcblxubGV0IG51bWJlckZvcm1hdF9jb25zdHIgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX0ludGwjIy5fTnVtYmVyRm9ybWF0XG5cbmxldCBwbHVyYWxSdWxlc19jb25zdHIgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX0ludGwjIy5fUGx1cmFsUnVsZXNcblxubGV0IGlzX3N1cHBvcnRlZCAoKSA9IEpzLk9wdGRlZi50ZXN0IGludGxcbiIsIigqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDYXRhbGEgY29tcGlsZXIsIGEgc3BlY2lmaWNhdGlvbiBsYW5ndWFnZSBmb3IgdGF4XG4gICBhbmQgc29jaWFsIGJlbmVmaXRzIGNvbXB1dGF0aW9uIHJ1bGVzLiBDb3B5cmlnaHQgKEMpIDIwMjAgSW5yaWEsIGNvbnRyaWJ1dG9yOlxuICAgRW1pbGUgUm9sbGV5IDxlbWlsZS5yb2xsZXlAdHV0YS5pbz4uXG5cbiAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7IHlvdSBtYXkgbm90XG4gICB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZlxuICAgdGhlIExpY2Vuc2UgYXRcblxuICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVFxuICAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlXG4gICBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlclxuICAgdGhlIExpY2Vuc2UuICopXG5cbm9wZW4gSnNfb2Zfb2NhbWxcbm1vZHVsZSBSX29jYW1sID0gUnVudGltZV9vY2FtbC5SdW50aW1lXG5cbmNsYXNzIHR5cGUgc291cmNlX3Bvc2l0aW9uID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGZpbGVOYW1lIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucHJvcFxuICAgIG1ldGhvZCBzdGFydExpbmUgOiBpbnQgSnMucHJvcFxuICAgIG1ldGhvZCBlbmRMaW5lIDogaW50IEpzLnByb3BcbiAgICBtZXRob2Qgc3RhcnRDb2x1bW4gOiBpbnQgSnMucHJvcFxuICAgIG1ldGhvZCBlbmRDb2x1bW4gOiBpbnQgSnMucHJvcFxuICAgIG1ldGhvZCBsYXdIZWFkaW5ncyA6IEpzLmpzX3N0cmluZyBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMucHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSByYXdfZXZlbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgZXZlbnRUeXBlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucHJvcFxuICAgIG1ldGhvZCBpbmZvcm1hdGlvbiA6IEpzLmpzX3N0cmluZyBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMucHJvcFxuICAgIG1ldGhvZCBzb3VyY2VQb3NpdGlvbiA6IHNvdXJjZV9wb3NpdGlvbiBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG4gICAgbWV0aG9kIGxvZ2dlZFZhbHVlSnNvbiA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgZXZlbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgZGF0YSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgZHVyYXRpb24gPVxuICBvYmplY3RcbiAgICBtZXRob2QgeWVhcnMgOiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBtb250aHMgOiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXlzIDogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBkdXJhdGlvbl9vZl9qc29vIGQgPVxuICBSX29jYW1sLmR1cmF0aW9uX29mX251bWJlcnMgZCMjLnllYXJzIGQjIy5tb250aHMgZCMjLmRheXNcblxubGV0IGR1cmF0aW9uX3RvX2pzb28gZCA9XG4gIGxldCB5ZWFycywgbW9udGhzLCBkYXlzID0gUl9vY2FtbC5kdXJhdGlvbl90b195ZWFyc19tb250aHNfZGF5cyBkIGluXG4gIG9iamVjdCVqc1xuICAgIHZhbCB5ZWFycyA9IHllYXJzXG4gICAgdmFsIG1vbnRocyA9IG1vbnRoc1xuICAgIHZhbCBkYXlzID0gZGF5c1xuICBlbmRcblxubGV0IGRhdGVfb2ZfanNvbyBkID1cbiAgbGV0IGQgPSBKcy50b19zdHJpbmcgZCBpblxuICBsZXQgZCA9XG4gICAgaWYgU3RyaW5nLmNvbnRhaW5zIGQgJ1QnIHRoZW4gZCB8PiBTdHJpbmcuc3BsaXRfb25fY2hhciAnVCcgfD4gTGlzdC5oZFxuICAgIGVsc2UgZFxuICBpblxuICBtYXRjaCBTdHJpbmcuc3BsaXRfb25fY2hhciAnLScgZCB3aXRoXG4gIHwgW3llYXI7IG1vbnRoOyBkYXldIC0+XG4gICAgUl9vY2FtbC5kYXRlX29mX251bWJlcnMgKGludF9vZl9zdHJpbmcgeWVhcikgKGludF9vZl9zdHJpbmcgbW9udGgpXG4gICAgICAoaW50X29mX3N0cmluZyBkYXkpXG4gIHwgXyAtPiBmYWlsd2l0aCBcImRhdGVfb2ZfanNvbzogaW52YWxpZCBkYXRlXCJcblxubGV0IGRhdGVfdG9fanNvbyBkID0gSnMuc3RyaW5nIEBAIFJfb2NhbWwuZGF0ZV90b19zdHJpbmcgZFxuXG5jbGFzcyB0eXBlIGV2ZW50X21hbmFnZXIgPVxuICBvYmplY3RcbiAgICBtZXRob2QgcmVzZXRMb2cgOiAodW5pdCwgdW5pdCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG5cbiAgICBtZXRob2QgcmV0cmlldmVFdmVudHMgOlxuICAgICAgKHVuaXQsIGV2ZW50IEpzLnQgSnMuanNfYXJyYXkgSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG5cbiAgICBtZXRob2QgcmV0cmlldmVSYXdFdmVudHMgOlxuICAgICAgKHVuaXQsIHJhd19ldmVudCBKcy50IEpzLmpzX2FycmF5IEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICBlbmRcblxubGV0IGV2ZW50X21hbmFnZXIgOiBldmVudF9tYW5hZ2VyIEpzLnQgPVxuICBvYmplY3QlanNcbiAgICBtZXRob2QgcmVzZXRMb2cgPSBKcy53cmFwX21ldGhfY2FsbGJhY2sgUl9vY2FtbC5yZXNldF9sb2dcblxuICAgIG1ldGhvZCByZXRyaWV2ZUV2ZW50cyA9XG4gICAgICBKcy53cmFwX21ldGhfY2FsbGJhY2sgKGZ1biAoKSAtPlxuICAgICAgICAgIEpzLmFycmF5XG4gICAgICAgICAgICAoQXJyYXkub2ZfbGlzdFxuICAgICAgICAgICAgICAgKFJfb2NhbWwucmV0cmlldmVfbG9nICgpXG4gICAgICAgICAgICAgICB8PiBSX29jYW1sLkV2ZW50UGFyc2VyLnBhcnNlX3Jhd19ldmVudHNcbiAgICAgICAgICAgICAgIHw+IExpc3QubWFwIChmdW4gZXZlbnQgLT5cbiAgICAgICAgICAgICAgICAgICAgICBvYmplY3QlanNcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbCBtdXRhYmxlIGRhdGEgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICB8PiBSX29jYW1sLnlvanNvbl9vZl9ldmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICB8PiBZb2pzb24uU2FmZS50b19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfD4gSnMuc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgZW5kKSkpKVxuXG4gICAgbWV0aG9kIHJldHJpZXZlUmF3RXZlbnRzID1cbiAgICAgIEpzLndyYXBfbWV0aF9jYWxsYmFjayAoZnVuICgpIC0+XG4gICAgICAgICAgSnMuYXJyYXlcbiAgICAgICAgICAgIChBcnJheS5vZl9saXN0XG4gICAgICAgICAgICAgICAoTGlzdC5tYXBcbiAgICAgICAgICAgICAgICAgIChmdW4gZXZ0IC0+XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdCVqc1xuICAgICAgICAgICAgICAgICAgICAgIHZhbCBtdXRhYmxlIGV2ZW50VHlwZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICBKcy5zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIGV2dCB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUl9vY2FtbC5CZWdpbkNhbGwgXyAtPiBcIkJlZ2luIGNhbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IEVuZENhbGwgXyAtPiBcIkVuZCBjYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBWYXJpYWJsZURlZmluaXRpb24gXyAtPiBcIlZhcmlhYmxlIGRlZmluaXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IERlY2lzaW9uVGFrZW4gXyAtPiBcIkRlY2lzaW9uIHRha2VuXCIpXG5cbiAgICAgICAgICAgICAgICAgICAgICB2YWwgbXV0YWJsZSBpbmZvcm1hdGlvbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICBKcy5hcnJheVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoQXJyYXkub2ZfbGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggZXZ0IHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBCZWdpbkNhbGwgaW5mb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEVuZENhbGwgaW5mb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFZhcmlhYmxlRGVmaW5pdGlvbiAoaW5mbywgXykgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0Lm1hcCBKcy5zdHJpbmcgaW5mb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERlY2lzaW9uVGFrZW4gXyAtPiBbXSkpXG5cbiAgICAgICAgICAgICAgICAgICAgICB2YWwgbXV0YWJsZSBsb2dnZWRWYWx1ZUpzb24gPVxuICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIGV2dCB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFZhcmlhYmxlRGVmaW5pdGlvbiAoXywgdikgLT4gdlxuICAgICAgICAgICAgICAgICAgICAgICAgfCBFbmRDYWxsIF8gfCBCZWdpbkNhbGwgXyB8IERlY2lzaW9uVGFrZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBSX29jYW1sLnVuZW1iZWRkYWJsZSAoKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHw+IFJfb2NhbWwueW9qc29uX29mX3J1bnRpbWVfdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHw+IFlvanNvbi5TYWZlLnRvX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgfD4gSnMuc3RyaW5nXG5cbiAgICAgICAgICAgICAgICAgICAgICB2YWwgbXV0YWJsZSBzb3VyY2VQb3NpdGlvbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCBldnQgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBEZWNpc2lvblRha2VuIHBvcyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBKcy5kZWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob2JqZWN0JWpzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsIG11dGFibGUgZmlsZU5hbWUgPSBKcy5zdHJpbmcgcG9zLmZpbGVuYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsIG11dGFibGUgc3RhcnRMaW5lID0gcG9zLnN0YXJ0X2xpbmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwgbXV0YWJsZSBlbmRMaW5lID0gcG9zLmVuZF9saW5lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsIG11dGFibGUgc3RhcnRDb2x1bW4gPSBwb3Muc3RhcnRfY29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsIG11dGFibGUgZW5kQ29sdW1uID0gcG9zLmVuZF9jb2x1bW5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCBtdXRhYmxlIGxhd0hlYWRpbmdzID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpzLmFycmF5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChBcnJheS5vZl9saXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChMaXN0Lm1hcCBKcy5zdHJpbmcgcG9zLmxhd19oZWFkaW5ncykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kKVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBfIC0+IEpzLnVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICBlbmQpXG4gICAgICAgICAgICAgICAgICAoUl9vY2FtbC5yZXRyaWV2ZV9sb2cgKCkpKSkpXG4gIGVuZFxuXG5sZXQgZXhlY3V0ZV9vcl90aHJvd19lcnJvciBmID1cbiAgbGV0IHRocm93X2Vycm9yIChkZXNjciA6IHN0cmluZykgKHBvcyA6IFJfb2NhbWwuc291cmNlX3Bvc2l0aW9uKSA9XG4gICAgbGV0IG1zZyA9XG4gICAgICBKcy5zdHJpbmdcbiAgICAgICAgKEZvcm1hdC5hc3ByaW50ZiBcIiVzIGluIGZpbGUgJXMsIHBvc2l0aW9uICVkOiVkLS0lZDolZC5cIiBkZXNjclxuICAgICAgICAgICBwb3MuZmlsZW5hbWUgcG9zLnN0YXJ0X2xpbmUgcG9zLnN0YXJ0X2NvbHVtbiBwb3MuZW5kX2xpbmVcbiAgICAgICAgICAgcG9zLmVuZF9jb2x1bW4pXG4gICAgaW5cbiAgICBKcy5Kc19lcnJvci5yYWlzZV9cbiAgICAgIChKcy5Kc19lcnJvci5vZl9lcnJvclxuICAgICAgICAgKG9iamVjdCVqc1xuICAgICAgICAgICAgdmFsIG11dGFibGUgbmFtZSA9IEpzLnN0cmluZyBcIk5vVmFsdWVQcm92aWRlZFwiXG4gICAgICAgICAgICB2YWwgbXV0YWJsZSBtZXNzYWdlID0gbXNnXG4gICAgICAgICAgICB2YWwgbXV0YWJsZSBzdGFjayA9IEpzLk9wdGRlZi5lbXB0eVxuICAgICAgICAgICAgbWV0aG9kIHRvU3RyaW5nID0gbXNnXG4gICAgICAgICBlbmQpKVxuICBpblxuICB0cnkgZiAoKSB3aXRoXG4gIHwgUl9vY2FtbC5Ob1ZhbHVlUHJvdmlkZWQgcG9zIC0+XG4gICAgdGhyb3dfZXJyb3JcbiAgICAgIFwiTm8gcnVsZSBhcHBsaWVzIGluIHRoZSBnaXZlbiBjb250ZXh0IHRvIGdpdmUgYSB2YWx1ZSB0byB0aGUgdmFyaWFibGVcIiBwb3NcbiAgfCBSX29jYW1sLkNvbmZsaWN0RXJyb3IgcG9zIC0+XG4gICAgdGhyb3dfZXJyb3JcbiAgICAgIFwiQSBjb25mbGljdCBoYXBwZW5lZCBiZXR3ZWVuIHR3byBydWxlcyBnaXZpbmcgYSB2YWx1ZSB0byB0aGUgdmFyaWFibGVcIiBwb3NcbiAgfCBSX29jYW1sLkFzc2VydGlvbkZhaWxlZCBwb3MgLT5cbiAgICB0aHJvd19lcnJvciBcIkEgZmFpbHVyZSBoYXBwZW5lZCBpbiB0aGUgYXNzZXJ0aW9uXCIgcG9zXG4iLCIoKiogVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBieSB0aGUgQ2F0YWxhIGNvbXBpbGVyLCBkbyBub3QgZWRpdCEgKilcblxub3BlbiBSdW50aW1lX29jYW1sLlJ1bnRpbWVcblxuW0BAQG9jYW1sLndhcm5pbmcgXCItNC0yNi0yNy0zMi00MS00MlwiXVxuXG5tb2R1bGUgUHJpc2VFbkNoYXJnZSA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBHYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zIG9mIHVuaXRcbiAgICB8IEdhcmRlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZSBvZiB1bml0XG4gICAgfCBFZmZlY3RpdmVFdFBlcm1hbmVudGUgb2YgdW5pdFxuICAgIHwgU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGUgb2YgdW5pdFxuICAgIHwgU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eCBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX3ByaXNlX2VuX2NoYXJnZSAoeDogUHJpc2VFbkNoYXJnZS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlByaXNlRW5DaGFyZ2VcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9ucyB4IC0+XG4gICAgICAoXCJHYXJkZUFsdGVybsOpZVBhcnRhZ2VBbGxvY2F0aW9uc1wiLCBlbWJlZF91bml0IHgpXG4gICAgfCBHYXJkZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWUgeCAtPlxuICAgICAgKFwiR2FyZGVBbHRlcm7DqWVBbGxvY2F0YWlyZVVuaXF1ZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBFZmZlY3RpdmVFdFBlcm1hbmVudGUgeCAtPiAoXCJFZmZlY3RpdmVFdFBlcm1hbmVudGVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGUgeCAtPlxuICAgICAgKFwiU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnPDqWXDgExhRmFtaWxsZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4IHggLT5cbiAgICAgIChcIlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzw6llQXV4U2VydmljZXNTb2NpYXV4XCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZSA9IHN0cnVjdFxuIHR5cGUgdCA9XG4gICAgfCBBdmFudCBvZiB1bml0XG4gICAgfCBQZW5kYW50IG9mIHVuaXRcbiAgICB8IEFwcmVzIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmUgKHg6IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS50KVxuICA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZVwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBBdmFudCB4IC0+IChcIkF2YW50XCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFBlbmRhbnQgeCAtPiAoXCJQZW5kYW50XCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFwcmVzIHggLT4gKFwiQXByw6hzXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIFByaXNlRW5Db21wdGUgPSBzdHJ1Y3RcbiB0eXBlIHQgPVxuICAgIHwgQ29tcGxldGUgb2YgdW5pdFxuICAgIHwgUGFydGFnZWUgb2YgdW5pdFxuICAgIHwgWmVybyBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX3ByaXNlX2VuX2NvbXB0ZSAoeDogUHJpc2VFbkNvbXB0ZS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlByaXNlRW5Db21wdGVcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgQ29tcGxldGUgeCAtPiAoXCJDb21wbMOodGVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgUGFydGFnZWUgeCAtPiAoXCJQYXJ0YWfDqWVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgWmVybyB4IC0+IChcIlrDqXJvXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIFZlcnNlbWVudEFsbG9jYXRpb25zID0gc3RydWN0XG4gdHlwZSB0ID1cbiAgICB8IE5vcm1hbCBvZiB1bml0XG4gICAgfCBBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4IG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfdmVyc2VtZW50X2FsbG9jYXRpb25zICh4OiBWZXJzZW1lbnRBbGxvY2F0aW9ucy50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlZlcnNlbWVudEFsbG9jYXRpb25zXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IE5vcm1hbCB4IC0+IChcIk5vcm1hbFwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4IHggLT5cbiAgICAgIChcIkFsbG9jYXRpb25WZXJzw6llQXV4U2VydmljZXNTb2NpYXV4XCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgUHJlc3RhdGlvbkFjY3VlaWxKZXVuZUVuZmFudCBvZiB1bml0XG4gICAgfCBBbGxvY2F0aW9uc0ZhbWlsaWFsZXMgb2YgdW5pdFxuICAgIHwgQ29tcGxlbWVudEZhbWlsaWFsIG9mIHVuaXRcbiAgICB8IEFsbG9jYXRpb25Mb2dlbWVudCBvZiB1bml0XG4gICAgfCBBbGxvY2F0aW9uRWR1Y2F0aW9uRW5mYW50SGFuZGljYXBlIG9mIHVuaXRcbiAgICB8IEFsbG9jYXRpb25Tb3V0aWVuRmFtaWxpYWwgb2YgdW5pdFxuICAgIHwgQWxsb2NhdGlvblJlbnRyZWVTY29sYWlyZSBvZiB1bml0XG4gICAgfCBBbGxvY2F0aW9uSm91cm5hbGllcmVQcmVzZW5jZVBhcmVudGFsZSBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX2VsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyAoeDogRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy50KVxuICA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIsOJbMOpbWVudFByZXN0YXRpb25zRmFtaWxpYWxlc1wiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBQcmVzdGF0aW9uQWNjdWVpbEpldW5lRW5mYW50IHggLT5cbiAgICAgIChcIlByZXN0YXRpb25BY2N1ZWlsSmV1bmVFbmZhbnRcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQWxsb2NhdGlvbnNGYW1pbGlhbGVzIHggLT4gKFwiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IENvbXBsZW1lbnRGYW1pbGlhbCB4IC0+IChcIkNvbXBsw6ltZW50RmFtaWxpYWxcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQWxsb2NhdGlvbkxvZ2VtZW50IHggLT4gKFwiQWxsb2NhdGlvbkxvZ2VtZW50XCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFsbG9jYXRpb25FZHVjYXRpb25FbmZhbnRIYW5kaWNhcGUgeCAtPlxuICAgICAgKFwiQWxsb2NhdGlvbsOJZHVjYXRpb25FbmZhbnRIYW5kaWNhcMOpXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFsbG9jYXRpb25Tb3V0aWVuRmFtaWxpYWwgeCAtPlxuICAgICAgKFwiQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbFwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBbGxvY2F0aW9uUmVudHJlZVNjb2xhaXJlIHggLT5cbiAgICAgIChcIkFsbG9jYXRpb25SZW50csOpZVNjb2xhaXJlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFsbG9jYXRpb25Kb3VybmFsaWVyZVByZXNlbmNlUGFyZW50YWxlIHggLT5cbiAgICAgIChcIkFsbG9jYXRpb25Kb3VybmFsacOocmVQcmVzZW5jZVBhcmVudGFsZVwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBDb2xsZWN0aXZpdGUgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgR3VhZGVsb3VwZSBvZiB1bml0XG4gICAgfCBHdXlhbmUgb2YgdW5pdFxuICAgIHwgTWFydGluaXF1ZSBvZiB1bml0XG4gICAgfCBMYVJldW5pb24gb2YgdW5pdFxuICAgIHwgU2FpbnRCYXJ0aGVsZW15IG9mIHVuaXRcbiAgICB8IFNhaW50TWFydGluIG9mIHVuaXRcbiAgICB8IE1ldHJvcG9sZSBvZiB1bml0XG4gICAgfCBTYWludFBpZXJyZUV0TWlxdWVsb24gb2YgdW5pdFxuICAgIHwgTWF5b3R0ZSBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX2NvbGxlY3Rpdml0ZSAoeDogQ29sbGVjdGl2aXRlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiQ29sbGVjdGl2aXTDqVwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBHdWFkZWxvdXBlIHggLT4gKFwiR3VhZGVsb3VwZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBHdXlhbmUgeCAtPiAoXCJHdXlhbmVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgTWFydGluaXF1ZSB4IC0+IChcIk1hcnRpbmlxdWVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgTGFSZXVuaW9uIHggLT4gKFwiTGFSw6l1bmlvblwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBTYWludEJhcnRoZWxlbXkgeCAtPiAoXCJTYWludEJhcnRow6lsZW15XCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFNhaW50TWFydGluIHggLT4gKFwiU2FpbnRNYXJ0aW5cIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgTWV0cm9wb2xlIHggLT4gKFwiTcOpdHJvcG9sZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBTYWludFBpZXJyZUV0TWlxdWVsb24geCAtPiAoXCJTYWludFBpZXJyZUV0TWlxdWVsb25cIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgTWF5b3R0ZSB4IC0+IChcIk1heW90dGVcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgQWxsb2NhdGlvbkZhbWlsaWFsZXNBdnJpbDIwMDggPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge2FnZV9taW5pbXVtX2FsaW5lYV8xX2w1MjFfMzogZHVyYXRpb259XG5lbmRcbmxldCBlbWJlZF9hbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4ICh4OiBBbGxvY2F0aW9uRmFtaWxpYWxlc0F2cmlsMjAwOC50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQWxsb2NhdGlvbkZhbWlsaWFsZXNBdnJpbDIwMDhcIl0sXG4gIFsoXCLDomdlX21pbmltdW1fYWxpbsOpYV8xX2w1MjFfM1wiLCBlbWJlZF9kdXJhdGlvblxuICAgIHguQWxsb2NhdGlvbkZhbWlsaWFsZXNBdnJpbDIwMDguYWdlX21pbmltdW1fYWxpbmVhXzFfbDUyMV8zKV0pXG5cblxubW9kdWxlIEFsbG9jYXRpb25zRmFtaWxpYWxlcyA9IHN0cnVjdFxuICB0eXBlIHQgPSB7bW9udGFudF92ZXJzZTogbW9uZXl9XG5lbmRcbmxldCBlbWJlZF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzICh4OiBBbGxvY2F0aW9uc0ZhbWlsaWFsZXMudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiXSxcbiAgWyhcIm1vbnRhbnRfdmVyc8OpXCIsIGVtYmVkX21vbmV5IHguQWxsb2NhdGlvbnNGYW1pbGlhbGVzLm1vbnRhbnRfdmVyc2UpXSlcblxuXG5tb2R1bGUgVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQSA9IHN0cnVjdFxuICB0eXBlIHQgPSB7ZXN0X2luZmVyaWV1cl9vdV9lZ2FsOiBib29sfVxuZW5kXG5sZXQgZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hICh4OiBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJWw6lyaWZpY2F0aW9uw4JnZUluZsOpcmlldXJPdcOJZ2Fsw4BcIl0sXG4gIFsoXCJlc3RfaW5mw6lyaWV1cl9vdV/DqWdhbFwiLCBlbWJlZF9ib29sXG4gICAgeC5WZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBLmVzdF9pbmZlcmlldXJfb3VfZWdhbCldKVxuXG5cbm1vZHVsZSBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBID0gc3RydWN0XG4gIHR5cGUgdCA9IHtlc3Rfc3VwZXJpZXVyOiBib29sfVxuZW5kXG5sZXQgZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYSAoeDogVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiVsOpcmlmaWNhdGlvbsOCZ2VTdXDDqXJpZXVyw4BcIl0sXG4gIFsoXCJlc3Rfc3Vww6lyaWV1clwiLCBlbWJlZF9ib29sIHguVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS5lc3Rfc3VwZXJpZXVyKV0pXG5cblxubW9kdWxlIFNtaWMgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge2JydXRfaG9yYWlyZTogbW9uZXl9XG5lbmRcbmxldCBlbWJlZF9zbWljICh4OiBTbWljLnQpIDogcnVudGltZV92YWx1ZSA9IFN0cnVjdChbXCJTbWljXCJdLFxuICBbKFwiYnJ1dF9ob3JhaXJlXCIsIGVtYmVkX21vbmV5IHguU21pYy5icnV0X2hvcmFpcmUpXSlcblxuXG5tb2R1bGUgQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcyA9IHN0cnVjdFxuICB0eXBlIHQgPSB7bW9udGFudDogbW9uZXl9XG5lbmRcbmxldCBlbWJlZF9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzICh4OiBCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCJdLFxuICBbKFwibW9udGFudFwiLCBlbWJlZF9tb25leSB4LkJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXMubW9udGFudCldKVxuXG5cbm1vZHVsZSBJbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXMgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge2lfbW9udGFudF92ZXJzZTogbW9uZXl9XG5lbmRcbmxldCBlbWJlZF9pbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyAoeDogSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJJbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIl0sXG4gIFsoXCJpX21vbnRhbnRfdmVyc8OpXCIsIGVtYmVkX21vbmV5XG4gICAgeC5JbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXMuaV9tb250YW50X3ZlcnNlKV0pXG5cblxubW9kdWxlIEVuZmFudEVudHJlZSA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgZF9pZGVudGlmaWFudDogaW50ZWdlcjtcbiAgICBkX3JlbXVuZXJhdGlvbl9tZW5zdWVsbGU6IG1vbmV5O1xuICAgIGRfZGF0ZV9kZV9uYWlzc2FuY2U6IGRhdGU7XG4gICAgZF9wcmlzZV9lbl9jaGFyZ2U6IFByaXNlRW5DaGFyZ2UudDtcbiAgICBkX2FfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXM6IGJvb2w7XG4gICAgZF9iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQ6IGJvb2xcbiAgfVxuZW5kXG5sZXQgZW1iZWRfZW5mYW50X2VudHJlZSAoeDogRW5mYW50RW50cmVlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJFbmZhbnRFbnRyw6llXCJdLFxuICBbKFwiZF9pZGVudGlmaWFudFwiLCBlbWJlZF9pbnRlZ2VyXG4gICAgeC5FbmZhbnRFbnRyZWUuZF9pZGVudGlmaWFudCk7XG4gICAgKFwiZF9yw6ltdW5lcmF0aW9uX21lbnN1ZWxsZVwiLCBlbWJlZF9tb25leVxuICAgIHguRW5mYW50RW50cmVlLmRfcmVtdW5lcmF0aW9uX21lbnN1ZWxsZSk7XG4gICAgKFwiZF9kYXRlX2RlX25haXNzYW5jZVwiLCBlbWJlZF9kYXRlXG4gICAgeC5FbmZhbnRFbnRyZWUuZF9kYXRlX2RlX25haXNzYW5jZSk7XG4gICAgKFwiZF9wcmlzZV9lbl9jaGFyZ2VcIiwgZW1iZWRfcHJpc2VfZW5fY2hhcmdlXG4gICAgeC5FbmZhbnRFbnRyZWUuZF9wcmlzZV9lbl9jaGFyZ2UpO1xuICAgIChcImRfYV9kw6lqw6Bfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkVuZmFudEVudHJlZS5kX2FfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMpO1xuICAgIChcImRfYsOpbsOpZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnRcIiwgZW1iZWRfYm9vbFxuICAgIHguRW5mYW50RW50cmVlLmRfYmVuZWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50KV0pXG5cblxubW9kdWxlIEVuZmFudCA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgaWRlbnRpZmlhbnQ6IGludGVnZXI7XG4gICAgb2JsaWdhdGlvbl9zY29sYWlyZTogU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLnQ7XG4gICAgcmVtdW5lcmF0aW9uX21lbnN1ZWxsZTogbW9uZXk7XG4gICAgZGF0ZV9kZV9uYWlzc2FuY2U6IGRhdGU7XG4gICAgcHJpc2VfZW5fY2hhcmdlOiBQcmlzZUVuQ2hhcmdlLnQ7XG4gICAgYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlczogYm9vbDtcbiAgICBiZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQ6IGJvb2xcbiAgfVxuZW5kXG5sZXQgZW1iZWRfZW5mYW50ICh4OiBFbmZhbnQudCkgOiBydW50aW1lX3ZhbHVlID0gU3RydWN0KFtcIkVuZmFudFwiXSxcbiAgWyhcImlkZW50aWZpYW50XCIsIGVtYmVkX2ludGVnZXJcbiAgICB4LkVuZmFudC5pZGVudGlmaWFudCk7XG4gICAgKFwib2JsaWdhdGlvbl9zY29sYWlyZVwiLCBlbWJlZF9zaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZVxuICAgIHguRW5mYW50Lm9ibGlnYXRpb25fc2NvbGFpcmUpO1xuICAgIChcInLDqW11bmVyYXRpb25fbWVuc3VlbGxlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5FbmZhbnQucmVtdW5lcmF0aW9uX21lbnN1ZWxsZSk7XG4gICAgKFwiZGF0ZV9kZV9uYWlzc2FuY2VcIiwgZW1iZWRfZGF0ZVxuICAgIHguRW5mYW50LmRhdGVfZGVfbmFpc3NhbmNlKTtcbiAgICAoXCJwcmlzZV9lbl9jaGFyZ2VcIiwgZW1iZWRfcHJpc2VfZW5fY2hhcmdlXG4gICAgeC5FbmZhbnQucHJpc2VfZW5fY2hhcmdlKTtcbiAgICAoXCJhX2TDqWrDoF9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcIiwgZW1iZWRfYm9vbFxuICAgIHguRW5mYW50LmFfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMpO1xuICAgIChcImLDqW7DqWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50XCIsIGVtYmVkX2Jvb2xcbiAgICB4LkVuZmFudC5iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQpXSlcblxuXG5tb2R1bGUgRW5mYW50TGVQbHVzQWdlID0gc3RydWN0XG4gIHR5cGUgdCA9IHtsZV9wbHVzX2FnZTogRW5mYW50LnR9XG5lbmRcbmxldCBlbWJlZF9lbmZhbnRfbGVfcGx1c19hZ2UgKHg6IEVuZmFudExlUGx1c0FnZS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiRW5mYW50TGVQbHVzw4Jnw6lcIl0sXG4gIFsoXCJsZV9wbHVzX8OiZ8OpXCIsIGVtYmVkX2VuZmFudCB4LkVuZmFudExlUGx1c0FnZS5sZV9wbHVzX2FnZSldKVxuXG5cbm1vZHVsZSBQcmVzdGF0aW9uc0ZhbWlsaWFsZXMgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGRyb2l0X291dmVydDogRW5mYW50LnQgLT4gYm9vbDtcbiAgICBjb25kaXRpb25zX2hvcnNfYWdlOiBFbmZhbnQudCAtPiBib29sO1xuICAgIGFnZV9sNTEyXzNfMjogZHVyYXRpb247XG4gICAgcmVnaW1lX291dHJlX21lcl9sNzUxXzE6IGJvb2xcbiAgfVxuZW5kXG5sZXQgZW1iZWRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyAoeDogUHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIl0sXG4gIFsoXCJkcm9pdF9vdXZlcnRcIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5QcmVzdGF0aW9uc0ZhbWlsaWFsZXMuZHJvaXRfb3V2ZXJ0KTtcbiAgICAoXCJjb25kaXRpb25zX2hvcnNfw6JnZVwiLCB1bmVtYmVkZGFibGVcbiAgICB4LlByZXN0YXRpb25zRmFtaWxpYWxlcy5jb25kaXRpb25zX2hvcnNfYWdlKTtcbiAgICAoXCLDomdlX2w1MTJfM18yXCIsIGVtYmVkX2R1cmF0aW9uXG4gICAgeC5QcmVzdGF0aW9uc0ZhbWlsaWFsZXMuYWdlX2w1MTJfM18yKTtcbiAgICAoXCJyw6lnaW1lX291dHJlX21lcl9sNzUxXzFcIiwgZW1iZWRfYm9vbFxuICAgIHguUHJlc3RhdGlvbnNGYW1pbGlhbGVzLnJlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xKV0pXG5cblxubW9kdWxlIFByZXN0YXRpb25zRmFtaWxpYWxlc0luID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBkYXRlX2NvdXJhbnRlX2luOiBkYXRlO1xuICAgIHByZXN0YXRpb25fY291cmFudGVfaW46IEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudDtcbiAgICByZXNpZGVuY2VfaW46IENvbGxlY3Rpdml0ZS50XG4gIH1cbmVuZFxubGV0IGVtYmVkX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4gKHg6IFByZXN0YXRpb25zRmFtaWxpYWxlc0luLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJQcmVzdGF0aW9uc0ZhbWlsaWFsZXNfaW5cIl0sXG4gIFsoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LlByZXN0YXRpb25zRmFtaWxpYWxlc0luLmRhdGVfY291cmFudGVfaW4pO1xuICAgIChcInByZXN0YXRpb25fY291cmFudGVfaW5cIiwgZW1iZWRfZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzXG4gICAgeC5QcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5wcmVzdGF0aW9uX2NvdXJhbnRlX2luKTtcbiAgICAoXCJyw6lzaWRlbmNlX2luXCIsIGVtYmVkX2NvbGxlY3Rpdml0ZVxuICAgIHguUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4ucmVzaWRlbmNlX2luKV0pXG5cblxubW9kdWxlIEFsbG9jYXRpb25GYW1pbGlhbGVzQXZyaWwyMDA4SW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0gdW5pdFxuZW5kXG5sZXQgZW1iZWRfYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOF9pbiAoXzogQWxsb2NhdGlvbkZhbWlsaWFsZXNBdnJpbDIwMDhJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPSBVbml0XG5cblxubW9kdWxlIEVuZmFudExlUGx1c0FnZUluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtlbmZhbnRzX2luOiBFbmZhbnQudCBhcnJheX1cbmVuZFxubGV0IGVtYmVkX2VuZmFudF9sZV9wbHVzX2FnZV9pbiAoeDogRW5mYW50TGVQbHVzQWdlSW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkVuZmFudExlUGx1c8OCZ8OpX2luXCJdLFxuICBbKFwiZW5mYW50c19pblwiLCBlbWJlZF9hcnJheSAoZW1iZWRfZW5mYW50KSB4LkVuZmFudExlUGx1c0FnZUluLmVuZmFudHNfaW4pXSlcblxuXG5tb2R1bGUgQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIHBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9lc3RfcGFyZW50X2luOiBib29sO1xuICAgIHBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9yZW1wbGl0X3RpdHJlX0lfaW46IGJvb2w7XG4gICAgcmVzc291cmNlc19tZW5hZ2VfaW46IG1vbmV5O1xuICAgIHJlc2lkZW5jZV9pbjogQ29sbGVjdGl2aXRlLnQ7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICBlbmZhbnRzX2FfY2hhcmdlX2luOiBFbmZhbnQudCBhcnJheTtcbiAgICBhdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl9pbjogYm9vbFxuICB9XG5lbmRcbmxldCBlbWJlZF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luICh4OiBBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzX2luXCJdLFxuICBbKFwicGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX2VzdF9wYXJlbnRfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4ucGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX2VzdF9wYXJlbnRfaW4pO1xuICAgIChcInBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9yZW1wbGl0X3RpdHJlX0lfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4ucGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX3JlbXBsaXRfdGl0cmVfSV9pbik7XG4gICAgKFwicmVzc291cmNlc19tw6luYWdlX2luXCIsIGVtYmVkX21vbmV5XG4gICAgeC5BbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5yZXNzb3VyY2VzX21lbmFnZV9pbik7XG4gICAgKFwicsOpc2lkZW5jZV9pblwiLCBlbWJlZF9jb2xsZWN0aXZpdGVcbiAgICB4LkFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnJlc2lkZW5jZV9pbik7XG4gICAgKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5BbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJlbmZhbnRzX8OgX2NoYXJnZV9pblwiLCBlbWJlZF9hcnJheSAoZW1iZWRfZW5mYW50KVxuICAgIHguQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uZW5mYW50c19hX2NoYXJnZV9pbik7XG4gICAgKFwiYXZhaXRfZW5mYW50X8OgX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyX2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmF2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyX2luKV0pXG5cblxubW9kdWxlIFZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgZGF0ZV9uYWlzc2FuY2VfaW46IGRhdGU7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICBhbm5lZXNfaW46IGR1cmF0aW9uXG4gIH1cbmVuZFxubGV0IGVtYmVkX3ZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbiAoeDogVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJWw6lyaWZpY2F0aW9uw4JnZUluZsOpcmlldXJPdcOJZ2Fsw4BfaW5cIl0sXG4gIFsoXCJkYXRlX25haXNzYW5jZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5WZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBSW4uZGF0ZV9uYWlzc2FuY2VfaW4pO1xuICAgIChcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluLmRhdGVfY291cmFudGVfaW4pO1xuICAgIChcImFubsOpZXNfaW5cIiwgZW1iZWRfZHVyYXRpb25cbiAgICB4LlZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi5hbm5lZXNfaW4pXSlcblxuXG5tb2R1bGUgVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBkYXRlX25haXNzYW5jZV9pbjogZGF0ZTtcbiAgICBkYXRlX2NvdXJhbnRlX2luOiBkYXRlO1xuICAgIGFubmVlc19pbjogZHVyYXRpb25cbiAgfVxuZW5kXG5sZXQgZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbiAoeDogVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJWw6lyaWZpY2F0aW9uw4JnZVN1cMOpcmlldXLDgF9pblwiXSxcbiAgWyhcImRhdGVfbmFpc3NhbmNlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LlZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi5kYXRlX25haXNzYW5jZV9pbik7XG4gICAgKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5WZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwiYW5uw6llc19pblwiLCBlbWJlZF9kdXJhdGlvbiB4LlZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi5hbm5lZXNfaW4pXSlcblxuXG5tb2R1bGUgU21pY0luID0gc3RydWN0XG4gIHR5cGUgdCA9IHtkYXRlX2NvdXJhbnRlX2luOiBkYXRlOyByZXNpZGVuY2VfaW46IENvbGxlY3Rpdml0ZS50fVxuZW5kXG5sZXQgZW1iZWRfc21pY19pbiAoeDogU21pY0luLnQpIDogcnVudGltZV92YWx1ZSA9IFN0cnVjdChbXCJTbWljX2luXCJdLFxuICBbKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5TbWljSW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwicsOpc2lkZW5jZV9pblwiLCBlbWJlZF9jb2xsZWN0aXZpdGUgeC5TbWljSW4ucmVzaWRlbmNlX2luKV0pXG5cblxubW9kdWxlIEJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7ZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZX1cbmVuZFxubGV0IGVtYmVkX2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gKHg6IEJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc19pblwiXSxcbiAgWyhcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmRhdGVfY291cmFudGVfaW4pXSlcblxuXG5tb2R1bGUgSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGlfZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICBpX2VuZmFudHNfaW46IEVuZmFudEVudHJlZS50IGFycmF5O1xuICAgIGlfcmVzc291cmNlc19tZW5hZ2VfaW46IG1vbmV5O1xuICAgIGlfcmVzaWRlbmNlX2luOiBDb2xsZWN0aXZpdGUudDtcbiAgICBpX3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9lc3RfcGFyZW50X2luOiBib29sO1xuICAgIGlfcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX3JlbXBsaXRfdGl0cmVfSV9pbjogYm9vbDtcbiAgICBpX2F2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyX2luOiBib29sXG4gIH1cbmVuZFxubGV0IGVtYmVkX2ludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luICh4OiBJbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzX2luXCJdLFxuICBbKFwiaV9kYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmlfZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwiaV9lbmZhbnRzX2luXCIsIGVtYmVkX2FycmF5IChlbWJlZF9lbmZhbnRfZW50cmVlKVxuICAgIHguSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uaV9lbmZhbnRzX2luKTtcbiAgICAoXCJpX3Jlc3NvdXJjZXNfbcOpbmFnZV9pblwiLCBlbWJlZF9tb25leVxuICAgIHguSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uaV9yZXNzb3VyY2VzX21lbmFnZV9pbik7XG4gICAgKFwiaV9yw6lzaWRlbmNlX2luXCIsIGVtYmVkX2NvbGxlY3Rpdml0ZVxuICAgIHguSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uaV9yZXNpZGVuY2VfaW4pO1xuICAgIChcImlfcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX2VzdF9wYXJlbnRfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uaV9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfZXN0X3BhcmVudF9pbik7XG4gICAgKFwiaV9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfcmVtcGxpdF90aXRyZV9JX2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmlfcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX3JlbXBsaXRfdGl0cmVfSV9pbik7XG4gICAgKFwiaV9hdmFpdF9lbmZhbnRfw6BfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uaV9hdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl9pbildKVxuXG5cblxuXG5sZXQgYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOCAoYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOF9pbjogQWxsb2NhdGlvbkZhbWlsaWFsZXNBdnJpbDIwMDhJbi50KSA6IEFsbG9jYXRpb25GYW1pbGlhbGVzQXZyaWwyMDA4LnQgPVxuICBsZXQgYWdlX21pbmltdW1fYWxpbmVhXzFfbDUyMV8zXzogZHVyYXRpb24gPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uRmFtaWxpYWxlc0F2cmlsMjAwOFwiOyBcIsOiZ2VfbWluaW11bV9hbGluw6lhXzFfbDUyMV8zXCJdXG4gICAgKGVtYmVkX2R1cmF0aW9uKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT03NjsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9SLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTc4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTc4OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSNTIxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBlbiBDb25zZWlsIGQnRXRhdFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGR1cmF0aW9uX29mX251bWJlcnMgKDE2KSAoMCkgKDApKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc2OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTc2OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAge0FsbG9jYXRpb25GYW1pbGlhbGVzQXZyaWwyMDA4LmFnZV9taW5pbXVtX2FsaW5lYV8xX2w1MjFfMyA9XG4gICAgIGFnZV9taW5pbXVtX2FsaW5lYV8xX2w1MjFfM199XG5cbmxldCBlbmZhbnRfbGVfcGx1c19hZ2UgKGVuZmFudF9sZV9wbHVzX2FnZV9pbjogRW5mYW50TGVQbHVzQWdlSW4udCkgOiBFbmZhbnRMZVBsdXNBZ2UudCA9XG4gIGxldCBlbmZhbnRzXzogRW5mYW50LnQgYXJyYXkgPSBlbmZhbnRfbGVfcGx1c19hZ2VfaW4uRW5mYW50TGVQbHVzQWdlSW4uZW5mYW50c19pbiBpblxuICBsZXQgbGVfcGx1c19hZ2VfOiBFbmZhbnQudCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkVuZmFudExlUGx1c8OCZ8OpXCI7IFwibGVfcGx1c1/DomfDqVwiXSAoZW1iZWRfZW5mYW50KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT04MDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT04MDsgZW5kX2NvbHVtbj0yMztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTI7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJSw6hnbGVzIGRpdmVyc2VzXCI7IFwiw4lwaWxvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX3JlZHVjZVxuICAgICAgICAgICAgICAoZnVuIChwb3RlbnRpZWxfcGx1c19hZ2VfMV86IEVuZmFudC50KVxuICAgICAgICAgICAgICAgICAocG90ZW50aWVsX3BsdXNfYWdlXzJfOiBFbmZhbnQudCkgLT5cbiAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgIChsZXQgcG90ZW50aWVsX3BsdXNfYWdlXyA6IEVuZmFudC50ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICBwb3RlbnRpZWxfcGx1c19hZ2VfMV9cbiAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgIChwb3RlbnRpZWxfcGx1c19hZ2VfLkVuZmFudC5kYXRlX2RlX25haXNzYW5jZSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGxldCBwb3RlbnRpZWxfcGx1c19hZ2VfIDogRW5mYW50LnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgIHBvdGVudGllbF9wbHVzX2FnZV8yX1xuICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgKHBvdGVudGllbF9wbHVzX2FnZV8uRW5mYW50LmRhdGVfZGVfbmFpc3NhbmNlKSkpIHRoZW5cbiAgICAgICAgICAgICAgICAgICBwb3RlbnRpZWxfcGx1c19hZ2VfMV8gZWxzZSBwb3RlbnRpZWxfcGx1c19hZ2VfMl8pXG4gICAgICAgICAgICAgICh7RW5mYW50LmlkZW50aWZpYW50ID0gKGludGVnZXJfb2Zfc3RyaW5nIFwiLTFcIik7XG4gICAgICAgICAgICAgICAgICBFbmZhbnQub2JsaWdhdGlvbl9zY29sYWlyZSA9XG4gICAgICAgICAgICAgICAgICAgIChTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuUGVuZGFudCAoKSk7XG4gICAgICAgICAgICAgICAgICBFbmZhbnQucmVtdW5lcmF0aW9uX21lbnN1ZWxsZSA9IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpO1xuICAgICAgICAgICAgICAgICAgRW5mYW50LmRhdGVfZGVfbmFpc3NhbmNlID1cbiAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjk5OSkgKDEyKSAoMzEpKTtcbiAgICAgICAgICAgICAgICAgIEVuZmFudC5wcmlzZV9lbl9jaGFyZ2UgPVxuICAgICAgICAgICAgICAgICAgICAoUHJpc2VFbkNoYXJnZS5FZmZlY3RpdmVFdFBlcm1hbmVudGUgKCkpO1xuICAgICAgICAgICAgICAgICAgRW5mYW50LmFfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgPVxuICAgICAgICAgICAgICAgICAgICBmYWxzZTtcbiAgICAgICAgICAgICAgICAgIEVuZmFudC5iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQgPVxuICAgICAgICAgICAgICAgICAgICBmYWxzZX0pIGVuZmFudHNfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTgwOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTgwOyBlbmRfY29sdW1uPTIzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAge0VuZmFudExlUGx1c0FnZS5sZV9wbHVzX2FnZSA9IGxlX3BsdXNfYWdlX31cblxubGV0IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYSAodmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luOiBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBSW4udCkgOiBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBLnQgPVxuICBsZXQgZGF0ZV9uYWlzc2FuY2VfOiBkYXRlID0gdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luLlZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi5kYXRlX25haXNzYW5jZV9pbiBpblxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4uVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IGFubmVlc186IGR1cmF0aW9uID0gdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luLlZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi5hbm5lZXNfaW4gaW5cbiAgbGV0IGVzdF9pbmZlcmlldXJfb3VfZWdhbF86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJWw6lyaWZpY2F0aW9uw4JnZUluZsOpcmlldXJPdcOJZ2Fsw4BcIjsgXCJlc3RfaW5mw6lyaWV1cl9vdV/DqWdhbFwiXVxuICAgIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljLy4uL3Byb2xvZ3VlX2ZyYW5jZS9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0yMjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0yMjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX0gKFxuICAgICAgICAgW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljLy4uL3Byb2xvZ3VlX2ZyYW5jZS9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yNTsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fbHRlX2RhdF9kYXQgKG9fYWRkX2RhdF9kdXIgUm91bmRVcCBkYXRlX25haXNzYW5jZV8gYW5uZWVzXylcbiAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy8uLi9wcm9sb2d1ZV9mcmFuY2UvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MjI7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MjI7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiOyBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19KSkpKSBpblxuICB7VmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQS5lc3RfaW5mZXJpZXVyX291X2VnYWwgPVxuICAgICBlc3RfaW5mZXJpZXVyX291X2VnYWxffVxuXG5sZXQgdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYSAodmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbjogVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLnQpIDogVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS50ID1cbiAgbGV0IGRhdGVfbmFpc3NhbmNlXzogZGF0ZSA9IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4uVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLmRhdGVfbmFpc3NhbmNlX2luIGluXG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4uVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IGFubmVlc186IGR1cmF0aW9uID0gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbi5WZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4uYW5uZWVzX2luIGluXG4gIGxldCBlc3Rfc3VwZXJpZXVyXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIlbDqXJpZmljYXRpb27DgmdlU3Vww6lyaWV1csOAXCI7IFwiZXN0X3N1cMOpcmlldXJcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvLi4vcHJvbG9ndWVfZnJhbmNlL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTMzOyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfSAoXG4gICAgICAgICBbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvLi4vcHJvbG9ndWVfZnJhbmNlL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM2OyBlbmRfY29sdW1uPTI3O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19ndF9kYXRfZGF0IChvX2FkZF9kYXRfZHVyIFJvdW5kVXAgZGF0ZV9uYWlzc2FuY2VfIGFubmVlc18pXG4gICAgICAgICAgICAgIGRhdGVfY291cmFudGVfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvLi4vcHJvbG9ndWVfZnJhbmNlL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTMzOyBlbmRfY29sdW1uPTI1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjsgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfSkpKSkgaW5cbiAge1ZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckEuZXN0X3N1cGVyaWV1ciA9IGVzdF9zdXBlcmlldXJffVxuXG5sZXQgc21pYyAoc21pY19pbjogU21pY0luLnQpIDogU21pYy50ID1cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gc21pY19pbi5TbWljSW4uZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgcmVzaWRlbmNlXzogQ29sbGVjdGl2aXRlLnQgPSBzbWljX2luLlNtaWNJbi5yZXNpZGVuY2VfaW4gaW5cbiAgbGV0IGJydXRfaG9yYWlyZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiU21pY1wiOyBcImJydXRfaG9yYWlyZVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDM7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsCAyMDE4LTExNzMgZHUgMTkgZMOpY2VtYnJlIDIwMTggcG9ydGFudCByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1eWFuZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSkpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDAzXCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01Mjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTQ7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsCAyMDE4LTExNzMgZHUgMTkgZMOpY2VtYnJlIDIwMTggcG9ydGFudCByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzU3XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03Mzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODI7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsCAyMDE5LTEzODcgZHUgMTggZMOpY2VtYnJlIDIwMTkgcG9ydGFudCByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1eWFuZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSkpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDE1XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTM7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsCAyMDE5LTEzODcgZHUgMTggZMOpY2VtYnJlIDIwMTkgcG9ydGFudCByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzY2XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyMTsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwIDIwMjAtMTU5OCBkdSAxNiBkw6ljZW1icmUgMjAyMCBwb3J0YW50IHJlbMOodmVtZW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19vciAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWV0cm9wb2xlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3V5YW5lICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTGFSZXVuaW9uICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludE1hcnRpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEwMjVcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzMDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTMyOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAyMC0xNTk4IGR1IDE2IGTDqWNlbWJyZSAyMDIwIHBvcnRhbnQgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjc3NFwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjA7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsCAyMDIxLTE3NDEgZHUgMjIgZMOpY2VtYnJlIDIwMjEgcG9ydGFudCByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDQpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19vciAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWV0cm9wb2xlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3V5YW5lICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTGFSZXVuaW9uICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludE1hcnRpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEwNTdcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE3MDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTcyOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAyMS0xNzQxIGR1IDIyIGTDqWNlbWJyZSAyMDIxIHBvcnRhbnQgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg0KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzk4XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xOTE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIwMDsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDE5IGF2cmlsIDIwMjIgcmVsYXRpZiBhdSByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg1KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19vciAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWV0cm9wb2xlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3V5YW5lICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTGFSZXVuaW9uICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludE1hcnRpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEwODVcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIwOTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjExOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMTkgYXZyaWwgMjAyMiByZWxhdGlmIGF1IHJlbMOodmVtZW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDUpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjgxOVwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjMwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMzk7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg4KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1eWFuZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSkpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMTA3XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNDg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI1MDsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI5IGp1aWxsZXQgMjAyMiByZWxhdGlmIGF1IHJlbMOodmVtZW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDgpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI4MzVcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI3MDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mjc5OyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAyMi0xNjA4IGR1IDIyIGTDqWNlbWJyZSAyMDIyIHBvcnRhbnQgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1eWFuZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjExMjdcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI4ODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjkwOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAyMi0xNjA4IGR1IDIyIGTDqWNlbWJyZSAyMDIyIHBvcnRhbnQgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI4NTFcIikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiOyBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19KSkpKSBpblxuICBsZXQgXzogdW5pdCA9IGlmIChcbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2OyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTY7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfSkpKVxuICAgICAgICAgICAgICAgICAgdGhlbiAoKSBlbHNlXG4gICAgICAgICAgICAgICAgICByYWlzZSAoQXNzZXJ0aW9uRmFpbGVkIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX0pIGluXG4gIHtTbWljLmJydXRfaG9yYWlyZSA9IGJydXRfaG9yYWlyZV99XG5cbmxldCBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzIChiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luOiBCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4udCkgOiBCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLnQgPVxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLkJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCBtb250YW50XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwibW9udGFudFwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvYm1hZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY7IGVuZF9jb2x1bW49MTk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJNb250YW50IGRlIGxhIGJhc2UgbWVuc3VlbGxlIGRlcyBhbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY7IGVuZF9jb2x1bW49MTk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzM7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkluc3RydWN0aW9uIG1pbmlzdMOpcmllbGxlIE7CsERTUy9TRDJCLzIwMTkvNjUgZHUgMjUgbWFycyAyMDE5IHJlbGF0aXZlIMOgIGxhIHJldmFsb3Jpc2F0aW9uIGF1IDFlciBhdnJpbCAyMDE5IGRlcyBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIHNlcnZpZXMgZW4gbcOpdHJvcG9sZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICg0KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICg0KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MTMxNlwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvYm1hZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjsgZW5kX2NvbHVtbj0xOTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvYm1hZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTUyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01MzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW5zdHJ1Y3Rpb24gaW50ZXJtaW5pc3TDqXJpZWxsZSBubyBEU1MvU0QyQi8yMDIwLzMzIGR1IDE4IGbDqXZyaWVyIDIwMjAgcmVsYXRpdmUgw6AgbGEgcmV2YWxvcmlzYXRpb24gYXUgMWVyIGF2cmlsIDIwMjAgZGVzIHByZXN0YXRpb25zIGZhbWlsaWFsZXMgc2VydmllcyBlbiBtw6l0cm9wb2xlLCBlbiBHdWFkZWxvdXBlLCBlbiBHdXlhbmUsIGVuIE1hcnRpbmlxdWUsIMOgIExhIFLDqXVuaW9uLCDDoCBTYWludC1CYXJ0aMOpbGVteSwgw6AgU2FpbnQtTWFydGluIGV0IGRhbnMgbGUgZMOpcGFydGVtZW50IGRlIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoNCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoNCkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDE0NDBcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY7IGVuZF9jb2x1bW49MTk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02ODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Njk7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkluc3RydWN0aW9uIGludGVybWluaXN0w6lyaWVsbGUgbsKwRFNTLzJCLzIwMjEvNjUgZHUgMTkgbWFycyAyMDIxIHJlbGF0aXZlIMOgIGxhIHJldmFsb3Jpc2F0aW9uIGF1IDFlciBhdnJpbCAyMDIxIGRlcyBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIHNlcnZpZXMgZW4gbcOpdHJvcG9sZSwgZW4gR3VhZGVsb3VwZSwgZW4gR3V5YW5lLCBlbiBNYXJ0aW5pcXVlLCDDoCBsYSBSw6l1bmlvbiwgw6AgU2FpbnQtQmFydGjDqWxlbXksIMOgIFNhaW50LU1hcnRpbiBldCBkYW5zIGxlIGTDqXBhcnRlbWVudCBkZSBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGRlIGxhIGJhc2UgbWVuc3VlbGxlIGRlcyBhbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDQpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDQpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQxNDgxXCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02OyBlbmRfY29sdW1uPTE5O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJNb250YW50IGRlIGxhIGJhc2UgbWVuc3VlbGxlIGRlcyBhbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTg2OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnN0cnVjdGlvbiBpbnRlcm1pbmlzdMOpcmllbGxlIG7CsERTUy8yQi8yMDIyLzgyIGR1IDI4IG1hcnMgMjAyMiByZWxhdGl2ZSDDoCBsYSByZXZhbG9yaXNhdGlvbiBhdSAxZXIgYXZyaWwgMjAyMiBkZXMgcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBzZXJ2aWVzIGVuIG3DqXRyb3BvbGUsIGVuIEd1YWRlbG91cGUsIGVuIEd1eWFuZSwgZW4gTWFydGluaXF1ZSwgw6AgbGEgUsOpdW5pb24sIMOgIFNhaW50LUJhcnRow6lsZW15LCDDoCBTYWludC1NYXJ0aW4gZXQgZGFucyBsZSBkw6lwYXJ0ZW1lbnQgZGUgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDQpICgxKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDIyMjhcIikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02OyBlbmRfY29sdW1uPTE5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX0pKSkpIGluXG4gIGxldCBfOiB1bml0ID0gaWYgKFxuICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICg0KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX0pKSlcbiAgICAgICAgICAgICAgICAgIHRoZW4gKCkgZWxzZVxuICAgICAgICAgICAgICAgICAgcmFpc2UgKEFzc2VydGlvbkZhaWxlZCB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX0pIGluXG4gIHtCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLm1vbnRhbnQgPSBtb250YW50X31cblxubGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXMgKHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW46IFByZXN0YXRpb25zRmFtaWxpYWxlc0luLnQpIDogUHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQgPVxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luLlByZXN0YXRpb25zRmFtaWxpYWxlc0luLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IHByZXN0YXRpb25fY291cmFudGVfOiBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQgPSBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luLlByZXN0YXRpb25zRmFtaWxpYWxlc0luLnByZXN0YXRpb25fY291cmFudGVfaW4gaW5cbiAgbGV0IHJlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbi5QcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5yZXNpZGVuY2VfaW4gaW5cbiAgbGV0IGFnZV9sNTEyXzNfMl86IGR1cmF0aW9uID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7IFwiw6JnZV9sNTEyXzNfMlwiXSAoZW1iZWRfZHVyYXRpb24pIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTYwOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTYwOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX1IuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MjE7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI1MTItMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDEgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uIC0gR8OpbsOpcmFsaXTDqXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIGVuIENvbnNlaWwgZCdFdGF0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZHVyYXRpb25fb2ZfbnVtYmVycyAoMjApICgwKSAoMCkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjA7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjA7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgc21pY19kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7IFwic21pYy5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Njk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Njk7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTY5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTY5OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfY291cmFudGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Njk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Njk7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkgaW5cbiAgbGV0IHNtaWNfZG90X3Jlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIlByZXN0YXRpb25zRmFtaWxpYWxlc1wiOyBcInNtaWMucsOpc2lkZW5jZVwiXSAoZW1iZWRfY29sbGVjdGl2aXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Njg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Njg7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTY4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTY4OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJlc2lkZW5jZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT02ODsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogU21pYy50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIlByZXN0YXRpb25zRmFtaWxpYWxlc1wiOyBcInNtaWNcIjsgXCJTbWljXCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjsgXCJzbWljXCI7IFwiU21pY1wiXSBzbWljKVxuICAgICh7U21pY0luLmRhdGVfY291cmFudGVfaW4gPSBzbWljX2RvdF9kYXRlX2NvdXJhbnRlXztcbiAgICAgICAgU21pY0luLnJlc2lkZW5jZV9pbiA9IHNtaWNfZG90X3Jlc2lkZW5jZV99KSkpIGluXG4gIGxldCBzbWljX2RvdF9icnV0X2hvcmFpcmVfOiBtb25leSA9IHJlc3VsdF8uU21pYy5icnV0X2hvcmFpcmUgaW5cbiAgbGV0IHJlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIlByZXN0YXRpb25zRmFtaWxpYWxlc1wiOyBcInLDqWdpbWVfb3V0cmVfbWVyX2w3NTFfMVwiXSAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjE7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjE7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNTc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM2MjsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNzUxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEfDqW7DqXJhbGl0w6lzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSA1IDogRGlzcG9zaXRpb25zIHBhcnRpY3VsacOocmVzIMOgIGxhIEd1YWRlbG91cGUsIMOgIGxhIEd1eWFuZSwgw6AgbGEgTWFydGluaXF1ZSwgw6AgTGEgUsOpdW5pb24sIMOgIFNhaW50LUJhcnRow6lsZW15IGV0IMOgIFNhaW50LU1hcnRpblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNyA6IFLDqWdpbWVzIGRpdmVycyAtIERpc3Bvc2l0aW9ucyBkaXZlcnNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX29yIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1eWFuZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gKCkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjE7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjE7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjE7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjE7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgcGxhZm9uZF9sNTEyXzNfMl86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7IFwicGxhZm9uZF9sNTEyXzNfMlwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTU5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTU5OyBlbmRfY29sdW1uPTI3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU5OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTk7IGVuZF9jb2x1bW49Mjc7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9SLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjE1OyBzdGFydF9jb2x1bW49MTg7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjE1OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI3NTUtMC0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgNSA6IETDqXBhcnRlbWVudHMgZCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDcgOiBSw6lnaW1lcyBkaXZlcnMgLSBEaXNwb3NpdGlvbnMgZGl2ZXJzZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIGVuIENvbnNlaWwgZCdFdGF0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgcmVnaW1lX291dHJlX21lcl9sNzUxXzFfKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgc21pY19kb3RfYnJ1dF9ob3JhaXJlX1xuICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNTVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTY5LlwiKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9SLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTMxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTMxOyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSNTEyLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogQ2hhbXAgZCdhcHBsaWNhdGlvbi5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAxIDogQ2hhbXAgZCdhcHBsaWNhdGlvbiAtIEfDqW7DqXJhbGl0w6lzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBlbiBDb25zZWlsIGQnRXRhdFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgc21pY19kb3RfYnJ1dF9ob3JhaXJlX1xuICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjU1XCIpKSAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxNjkuXCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTU5OyBlbmRfY29sdW1uPTI3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IGNvbmRpdGlvbnNfaG9yc19hZ2VfOiBFbmZhbnQudCAtPiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7IFwiY29uZGl0aW9uc19ob3JzX8OiZ2VcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoZW5mYW50XzogRW5mYW50LnQpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT01ODsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT01ODsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01ODsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Njg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzE7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTEyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMSA6IENoYW1wIGQnYXBwbGljYXRpb24gLSBHw6luw6lyYWxpdMOpc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChlbmZhbnRfLkVuZmFudC5vYmxpZ2F0aW9uX3Njb2xhaXJlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkF2YW50IF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5QZW5kYW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkFwcmVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChlbmZhbnRfLkVuZmFudC5vYmxpZ2F0aW9uX3Njb2xhaXJlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkF2YW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLlBlbmRhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BcHJlcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKGVuZmFudF8uRW5mYW50Lm9ibGlnYXRpb25fc2NvbGFpcmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXZhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuUGVuZGFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BcHJlcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnQucmVtdW5lcmF0aW9uX21lbnN1ZWxsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFmb25kX2w1MTJfM18yXykpKSkgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTg7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01ODsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTU4OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTU4OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU4OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTU4OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IGRyb2l0X291dmVydF86IEVuZmFudC50IC0+IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjsgXCJkcm9pdF9vdXZlcnRcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoZW5mYW50XzogRW5mYW50LnQpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT01Nzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT01NzsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01Nzsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTc7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTc7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTc7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2F1dHJlc19jb2Rlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI0OyBlbmRfY29sdW1uPTYzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIxLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IFLDqGdsZXMgZGUgbm9uLWN1bXVsXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogUHJpbmNpcGVzIGfDqW7DqXJhdXhcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnQuYmVuZWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50KSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTc7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTc7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTc7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NzsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU3OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NzsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjI7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTEyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMSA6IENoYW1wIGQnYXBwbGljYXRpb24gLSBHw6luw6lyYWxpdMOpc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudC5vYmxpZ2F0aW9uX3Njb2xhaXJlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkF2YW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLlBlbmRhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXByZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudC5yZW11bmVyYXRpb25fbWVuc3VlbGxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfbDUxMl8zXzJfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfZGF0X2R1ciBBYm9ydE9uUm91bmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnQuZGF0ZV9kZV9uYWlzc2FuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlX2w1MTJfM18yXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlXykpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01MDsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTEyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAxIDogQ2hhbXAgZCdhcHBsaWNhdGlvbiAtIEfDqW7DqXJhbGl0w6lzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnQub2JsaWdhdGlvbl9zY29sYWlyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkF2YW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5QZW5kYW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXByZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50Lm9ibGlnYXRpb25fc2NvbGFpcmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BdmFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLlBlbmRhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkFwcmVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01Nzsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU3OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTc7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NTc7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NTc7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NTc7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICB7UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmRyb2l0X291dmVydCA9IGRyb2l0X291dmVydF87XG4gICAgIFByZXN0YXRpb25zRmFtaWxpYWxlcy5jb25kaXRpb25zX2hvcnNfYWdlID0gY29uZGl0aW9uc19ob3JzX2FnZV87XG4gICAgIFByZXN0YXRpb25zRmFtaWxpYWxlcy5hZ2VfbDUxMl8zXzIgPSBhZ2VfbDUxMl8zXzJfO1xuICAgICBQcmVzdGF0aW9uc0ZhbWlsaWFsZXMucmVnaW1lX291dHJlX21lcl9sNzUxXzEgPSByZWdpbWVfb3V0cmVfbWVyX2w3NTFfMV99XG5cbmxldCBhbGxvY2F0aW9uc19mYW1pbGlhbGVzIChhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luOiBBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi50KSA6IEFsbG9jYXRpb25zRmFtaWxpYWxlcy50ID1cbiAgbGV0IHBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9lc3RfcGFyZW50XzogYm9vbCA9IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4ucGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX2VzdF9wYXJlbnRfaW4gaW5cbiAgbGV0IHBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9yZW1wbGl0X3RpdHJlX19pXzogYm9vbCA9IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4ucGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX3JlbXBsaXRfdGl0cmVfSV9pbiBpblxuICBsZXQgcmVzc291cmNlc19tZW5hZ2VfOiBtb25leSA9IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4ucmVzc291cmNlc19tZW5hZ2VfaW4gaW5cbiAgbGV0IHJlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5BbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5yZXNpZGVuY2VfaW4gaW5cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5BbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCBlbmZhbnRzX2FfY2hhcmdlXzogRW5mYW50LnQgYXJyYXkgPSBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLkFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmVuZmFudHNfYV9jaGFyZ2VfaW4gaW5cbiAgbGV0IGF2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyXzogYm9vbCA9IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfaW4gaW5cbiAgbGV0IHByaXNlX2VuX2NvbXB0ZV86IEVuZmFudC50IC0+IFByaXNlRW5Db21wdGUudCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcInByaXNlX2VuX2NvbXB0ZVwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChlbmZhbnRfOiBFbmZhbnQudCkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk3OyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NzsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMTU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjE1OyBlbmRfY29sdW1uPTcwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDUyMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChlbmZhbnRfLkVuZmFudC5wcmlzZV9lbl9jaGFyZ2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5FZmZlY3RpdmVFdFBlcm1hbmVudGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBQcmlzZUVuQ29tcHRlLlBhcnRhZ2VlICgpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05Nzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTc7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjU0OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI1NTsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw1MjEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAoZW5mYW50Xy5FbmZhbnQucHJpc2VfZW5fY2hhcmdlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5HYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5HYXJkZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkVmZmVjdGl2ZUV0UGVybWFuZW50ZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5TZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQUxhRmFtaWxsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gUHJpc2VFbkNvbXB0ZS5aZXJvICgpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05Nzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTc7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTc7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NzsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNjQ7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI2NTsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTIxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50LnByaXNlX2VuX2NoYXJnZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5HYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkdhcmRlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5FZmZlY3RpdmVFdFBlcm1hbmVudGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5TZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmlzZUVuQ29tcHRlLkNvbXBsZXRlICgpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjA1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjA1OyBlbmRfY29sdW1uPTY5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTIxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKGVuZmFudF8uRW5mYW50LnByaXNlX2VuX2NoYXJnZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5HYXJkZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkVmZmVjdGl2ZUV0UGVybWFuZW50ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBTGFGYW1pbGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBQcmlzZUVuQ29tcHRlLkNvbXBsZXRlICgpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTg1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE4NTsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw1MjEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAoZW5mYW50Xy5FbmZhbnQucHJpc2VfZW5fY2hhcmdlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5HYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5HYXJkZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkVmZmVjdGl2ZUV0UGVybWFuZW50ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBTGFGYW1pbGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5TZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gUHJpc2VFbkNvbXB0ZS5Db21wbGV0ZSAoKSkpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTc7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTc7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgdmVyc2VtZW50XzogRW5mYW50LnQgLT4gVmVyc2VtZW50QWxsb2NhdGlvbnMudCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcInZlcnNlbWVudFwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChlbmZhbnRfOiBFbmZhbnQudCkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk4OyBlbmRfY29sdW1uPTIwO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05ODsgZW5kX2NvbHVtbj0yMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNTk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjYwOyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDUyMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChlbmZhbnRfLkVuZmFudC5wcmlzZV9lbl9jaGFyZ2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkdhcmRlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuRWZmZWN0aXZlRXRQZXJtYW5lbnRlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBTGFGYW1pbGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5TZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNlbWVudEFsbG9jYXRpb25zLkFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05ODsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTg7IGVuZF9jb2x1bW49MjA7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTg7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTg7IGVuZF9jb2x1bW49MjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTg7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05ODsgZW5kX2NvbHVtbj0yMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTg7IGVuZF9jb2x1bW49MjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjcwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNzE7IGVuZF9jb2x1bW49NDg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTIxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnQucHJpc2VfZW5fY2hhcmdlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5HYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5HYXJkZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkVmZmVjdGl2ZUV0UGVybWFuZW50ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2VtZW50QWxsb2NhdGlvbnMuTm9ybWFsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIxOTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjE5OyBlbmRfY29sdW1uPTcwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw1MjEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnQucHJpc2VfZW5fY2hhcmdlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5HYXJkZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuRWZmZWN0aXZlRXRQZXJtYW5lbnRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBTGFGYW1pbGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNlbWVudEFsbG9jYXRpb25zLk5vcm1hbCAoKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIwOTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIwOTsgZW5kX2NvbHVtbj02OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDUyMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChlbmZhbnRfLkVuZmFudC5wcmlzZV9lbl9jaGFyZ2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5HYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5FZmZlY3RpdmVFdFBlcm1hbmVudGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5TZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQUxhRmFtaWxsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNlbWVudEFsbG9jYXRpb25zLk5vcm1hbCAoKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE4OTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xODk7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTIxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKGVuZmFudF8uRW5mYW50LnByaXNlX2VuX2NoYXJnZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9ucyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5FZmZlY3RpdmVFdFBlcm1hbmVudGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5TZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQUxhRmFtaWxsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IFZlcnNlbWVudEFsbG9jYXRpb25zLk5vcm1hbCAoKSkpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTg7IGVuZF9jb2x1bW49MjA7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTg7IGVuZF9jb2x1bW49MjA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgbm9tYnJlX2VuZmFudHNfbDUyMV8xXzogaW50ZWdlciA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcIm5vbWJyZV9lbmZhbnRzX2w1MjFfMVwiXSAoZW1iZWRfaW50ZWdlcikgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTUxOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTE1MTsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTI5NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yOTQ7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xNTE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTUxOyBlbmRfY29sdW1uPTMyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IG5vbWJyZV9lbmZhbnRzX2FsaW5lYV8yX2w1MjFfM186IGludGVnZXIgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJub21icmVfZW5mYW50c19hbGluw6lhXzJfbDUyMV8zXCJdXG4gICAgKGVtYmVkX2ludGVnZXIpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTE1NDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xNTQ7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfUi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT02NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT02NDsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjUyMS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgZW4gQ29uc2VpbCBkJ0V0YXRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xNTQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTU0OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IHJlc3VsdF86IEFsbG9jYXRpb25GYW1pbGlhbGVzQXZyaWwyMDA4LnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwidmVyc2lvbl9hdnJpbF8yMDA4XCI7XG4gICAgICBcIkFsbG9jYXRpb25GYW1pbGlhbGVzQXZyaWwyMDA4XCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJ2ZXJzaW9uX2F2cmlsXzIwMDhcIjtcbiAgICAgIFwiQWxsb2NhdGlvbkZhbWlsaWFsZXNBdnJpbDIwMDhcIl0gYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOClcbiAgICAoKCkpKSkgaW5cbiAgbGV0IHZlcnNpb25fYXZyaWxfMjAwOF9kb3RfYWdlX21pbmltdW1fYWxpbmVhXzFfbDUyMV8zXzogZHVyYXRpb24gPSByZXN1bHRfLkFsbG9jYXRpb25GYW1pbGlhbGVzQXZyaWwyMDA4LmFnZV9taW5pbXVtX2FsaW5lYV8xX2w1MjFfMyBpblxuICBsZXQgYm1hZl9kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwiYm1hZi5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTY3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE2NzsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTY3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE2NzsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTE2Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xNjc7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkgaW5cbiAgbGV0IHJlc3VsdF86IEJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXMudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJibWFmXCI7IFwiQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiXVxuICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJibWFmXCI7IFwiQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiXVxuICAgIGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMpXG4gICAgKHtCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGJtYWZfZG90X2RhdGVfY291cmFudGVffSkpKSBpblxuICBsZXQgYm1hZl9kb3RfbW9udGFudF86IG1vbmV5ID0gcmVzdWx0Xy5CYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLm1vbnRhbnQgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcInByZXN0YXRpb25zX2ZhbWlsaWFsZXMuZGF0ZV9jb3VyYW50ZVwiXVxuICAgICAgKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xNjM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTYzOyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTYzOyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfY291cmFudGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTYzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE2MzsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSBpblxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcHJlc3RhdGlvbl9jb3VyYW50ZV86IEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzLnByZXN0YXRpb25fY291cmFudGVcIl1cbiAgICAgIChlbWJlZF9lbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xNjE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTYxOyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTYxOyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLkFsbG9jYXRpb25zRmFtaWxpYWxlcyAoKSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTE2MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xNjE7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3Jlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcInByZXN0YXRpb25zX2ZhbWlsaWFsZXMucsOpc2lkZW5jZVwiXVxuICAgICAgKGVtYmVkX2NvbGxlY3Rpdml0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTE2NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xNjU7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE2NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xNjU7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmVzaWRlbmNlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTE2NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xNjU7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkgaW5cbiAgbGV0IHJlc3VsdF86IFByZXN0YXRpb25zRmFtaWxpYWxlcy50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcInByZXN0YXRpb25zX2ZhbWlsaWFsZXNcIjtcbiAgICAgIFwiUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzXCI7XG4gICAgICBcIlByZXN0YXRpb25zRmFtaWxpYWxlc1wiXSBwcmVzdGF0aW9uc19mYW1pbGlhbGVzKVxuICAgICh7UHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2RhdGVfY291cmFudGVfO1xuICAgICAgICBQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5wcmVzdGF0aW9uX2NvdXJhbnRlX2luID1cbiAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9wcmVzdGF0aW9uX2NvdXJhbnRlXztcbiAgICAgICAgUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4ucmVzaWRlbmNlX2luID1cbiAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9yZXNpZGVuY2VffSkpKSBpblxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfZHJvaXRfb3V2ZXJ0XzogRW5mYW50LnQgLT4gYm9vbCA9IHJlc3VsdF8uUHJlc3RhdGlvbnNGYW1pbGlhbGVzLmRyb2l0X291dmVydCBpblxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfY29uZGl0aW9uc19ob3JzX2FnZV86IEVuZmFudC50IC0+IGJvb2wgPSByZXN1bHRfLlByZXN0YXRpb25zRmFtaWxpYWxlcy5jb25kaXRpb25zX2hvcnNfYWdlIGluXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9hZ2VfbDUxMl8zXzJfOiBkdXJhdGlvbiA9IHJlc3VsdF8uUHJlc3RhdGlvbnNGYW1pbGlhbGVzLmFnZV9sNTEyXzNfMiBpblxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVnaW1lX291dHJlX21lcl9sNzUxXzFfOiBib29sID0gcmVzdWx0Xy5QcmVzdGF0aW9uc0ZhbWlsaWFsZXMucmVnaW1lX291dHJlX21lcl9sNzUxXzEgaW5cbiAgbGV0IGVuZmFudF9sZV9wbHVzX2FnZV9kb3RfZW5mYW50c186IEVuZmFudC50IGFycmF5ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcImVuZmFudF9sZV9wbHVzX8OiZ8OpLmVuZmFudHNcIl1cbiAgICAgIChlbWJlZF9hcnJheSAoZW1iZWRfZW5mYW50KSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTMzOyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUsOoZ2xlcyBkaXZlcnNlc1wiOyBcIsOJcGlsb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzM7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJSw6hnbGVzIGRpdmVyc2VzXCI7IFwiw4lwaWxvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGVuZmFudHNfYV9jaGFyZ2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzM7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJSw6hnbGVzIGRpdmVyc2VzXCI7IFwiw4lwaWxvZ3VlXCJdfSkpIGluXG4gIGxldCByZXN1bHRfOiBFbmZhbnRMZVBsdXNBZ2UudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJlbmZhbnRfbGVfcGx1c1/DomfDqVwiOyBcIkVuZmFudExlUGx1c8OCZ8OpXCJdXG4gICAgKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcImVuZmFudF9sZV9wbHVzX8OiZ8OpXCI7IFwiRW5mYW50TGVQbHVzw4Jnw6lcIl1cbiAgICBlbmZhbnRfbGVfcGx1c19hZ2UpXG4gICAgKHtFbmZhbnRMZVBsdXNBZ2VJbi5lbmZhbnRzX2luID0gZW5mYW50X2xlX3BsdXNfYWdlX2RvdF9lbmZhbnRzX30pKSkgaW5cbiAgbGV0IGVuZmFudF9sZV9wbHVzX2FnZV9kb3RfbGVfcGx1c19hZ2VfOiBFbmZhbnQudCA9IHJlc3VsdF8uRW5mYW50TGVQbHVzQWdlLmxlX3BsdXNfYWdlIGluXG4gIGxldCBhZ2VfbWluaW11bV9hbGluZWFfMV9sNTIxXzNfOiBFbmZhbnQudCAtPiBkdXJhdGlvbiA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcIsOiZ2VfbWluaW11bV9hbGluw6lhXzFfbDUyMV8zXCJdICh1bmVtYmVkZGFibGUpXG4gICAgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoZW5mYW50XzogRW5mYW50LnQpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTUyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX1IuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTgzOyBzdGFydF9jb2x1bW49MTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT04MzsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI1MjEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBlbiBDb25zZWlsIGQnRXRhdFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9kYXRfZHVyIEFib3J0T25Sb3VuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudC5kYXRlX2RlX25haXNzYW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHVyYXRpb25fb2ZfbnVtYmVycyAoMTEpICgwKSAoMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDgpICg0KSAoMzApKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbl9hdnJpbF8yMDA4X2RvdF9hZ2VfbWluaW11bV9hbGluZWFfMV9sNTIxXzNfKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9SLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTY7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NjsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSNTIxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIGVuIENvbnNlaWwgZCdFdGF0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGR1cmF0aW9uX29mX251bWJlcnMgKDE0KSAoMCkgKDApKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTE1MjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xNTI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTUyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXzogRW5mYW50LnQgYXJyYXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgIFwiZW5mYW50c1/DoF9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXCJdXG4gICAgKGVtYmVkX2FycmF5IChlbWJlZF9lbmZhbnQpKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NTsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTc1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTc1OyBlbmRfY29sdW1uPTY0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTEyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDEgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uIC0gR8OpbsOpcmFsaXTDqXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19maWx0ZXJcbiAgICAgICAgICAgICAgKGZ1biAoZW5mYW50XzogRW5mYW50LnQpIC0+IChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgW1wiUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7IFwiZHJvaXRfb3V2ZXJ0XCJdXG4gICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgW1wiUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7IFwiZHJvaXRfb3V2ZXJ0XCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgIChlbWJlZF9ib29sKSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgIFtcIlByZXN0YXRpb25zRmFtaWxpYWxlc1wiOyBcImRyb2l0X291dmVydFwiXVxuICAgICAgICAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9kcm9pdF9vdXZlcnRfKVxuICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgIFtcIlByZXN0YXRpb25zRmFtaWxpYWxlc1wiOyBcImRyb2l0X291dmVydFwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAoZW1iZWRfZW5mYW50KSBlbmZhbnRfKSkpKSkpKSBlbmZhbnRzX2FfY2hhcmdlXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NTsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBlc3RfZW5mYW50X2xlX3BsdXNfYWdlXzogRW5mYW50LnQgLT4gYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcImVzdF9lbmZhbnRfbGVfcGx1c1/DomfDqVwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChlbmZhbnRfOiBFbmZhbnQudCkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xNTU7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfSAoXG4gICAgICAgICAgICAgIFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzQ7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUsOoZ2xlcyBkaXZlcnNlc1wiOyBcIsOJcGlsb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIG9fZXEgZW5mYW50X2xlX3BsdXNfYWdlX2RvdF9sZV9wbHVzX2FnZV8gZW5mYW50XykpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTE1NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xNTU7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTU1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTE1NTsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBwbGFmb25kX19pX2lfZDUyMV8zXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJwbGFmb25kX0lJX2Q1MjFfM1wiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTE1ODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xNTg7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU4OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1ODsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU4OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMDsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDaXJjdWxhaXJlIGludGVybWluaXN0w6lyaWVsbGUgTsKwIERTUy9TRDJCLzIwMTcvMzUyIGR1IDIyIGTDqWNlbWJyZSAyMDE3IHJlbGF0aXZlIMOgIGxhIHJldmFsb3Jpc2F0aW9uIGF1IDFlciBqYW52aWVyIDIwMTggZGVzIHBsYWZvbmRzIGRlIHJlc3NvdXJjZXMgZOKAmWF0dHJpYnV0aW9uIGRlIGNlcnRhaW5lcyBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIHNlcnZpZXMgZW4gbcOpdHJvcG9sZSwgZW4gR3VhZGVsb3VwZSwgZW4gR3V5YW5lLCBlbiBNYXJ0aW5pcXVlLCDDoCBsYSBSw6l1bmlvbiwgw6AgU2FpbnQtQmFydGjDqWxlbXksIMOgIFNhaW50LU1hcnRpbiBldCDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZGVzIHBsYWZvbmRzIGRlIHJlc3NvdXJjZXNcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE4KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTgpICgxMikgKDMxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI3ODc3MDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1NjI4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1ODsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU4OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02Mzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MzsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnN0cnVjdGlvbiBpbnRlcm1pbmlzdMOpcmllbGxlIG7CsCBEU1MvU0QyQi8yMDE4LzI3OSBkdSAxNyBkw6ljZW1icmUgMjAxOCByZWxhdGl2ZSDDoCBsYSByZXZhbG9yaXNhdGlvbiBhdSAxZXIgamFudmllciAyMDE5IGRlcyBwbGFmb25kcyBkZSByZXNzb3VyY2VzIGTigJlhdHRyaWJ1dGlvbiBkZSBjZXJ0YWluZXMgcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBzZXJ2aWVzIGVuIG3DqXRyb3BvbGUsIGVuIEd1YWRlbG91cGUsIGVuIEd1eWFuZSwgZW4gTWFydGluaXF1ZSwgw6AgbGEgUsOpdW5pb24sIMOgIFNhaW50LUJhcnRow6lsZW15LCDDoCBTYWludC1NYXJ0aW4gZXQgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGRlcyBwbGFmb25kcyBkZSByZXNzb3VyY2VzXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTIpICgzMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzk1NTgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTY4NDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTg7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1ODsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTY7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW5zdHJ1Y3Rpb24gaW50ZXJtaW5pc3RlcmllbGxlIG5vIERTUy9TRDJCLzIwMTkvMjYxIGR1IDE4IGTDqWNlbWJyZSAyMDE5IHJlbGF0aXZlIMOgIGxhIHJldmFsb3Jpc2F0aW9uIGF1IDFlciBqYW52aWVyIDIwMjAgZGVzIHBsYWZvbmRzIGRlIHJlc3NvdXJjZXMgZOKAmWF0dHJpYnV0aW9uIGRlIGNlcnRhaW5lcyBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIHNlcnZpZXMgZW4gbcOpdHJvcG9sZSwgZW4gR3VhZGVsb3VwZSwgZW4gR3V5YW5lLCBlbiBNYXJ0aW5pcXVlLCDDoCBMYSBSw6l1bmlvbiwgw6AgU2FpbnQtQmFydGjDqWxlbXksIMOgIFNhaW50LU1hcnRpbiBldCDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZGVzIHBsYWZvbmRzIGRlIHJlc3NvdXJjZXNcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMikgKDMxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4MDgzMTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1Nzc1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1ODsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU4OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTMyOyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAxNCBkw6ljZW1icmUgMjAyMCByZWxhdGlmIGF1IG1vbnRhbnQgZGVzIHBsYWZvbmRzIGRlIHJlc3NvdXJjZXMgZGUgY2VydGFpbmVzIHByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgYXV4IHRyYW5jaGVzIGR1IGJhcsOobWUgYXBwbGljYWJsZSBhdSByZWNvdXZyZW1lbnQgZGVzIGluZHVzIGV0IMOgIGxhIHNhaXNpZSBkZXMgcHJlc3RhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkZXMgcGxhZm9uZHMgZGUgcmVzc291cmNlc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEyKSAoMzEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjgxNTU4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU4MjcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXykpKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTMxNDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI3ODMwMDAwXCIpXG4gICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTU5NTAwXCIpXG4gICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTE1ODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xNTg7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgcGxhZm9uZF9faV9kNTIxXzNfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcInBsYWZvbmRfSV9kNTIxXzNcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xNTc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTU3OyBlbmRfY29sdW1uPTI3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1Nzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NzsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NzsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjM7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2lyY3VsYWlyZSBpbnRlcm1pbmlzdMOpcmllbGxlIE7CsCBEU1MvU0QyQi8yMDE3LzM1MiBkdSAyMiBkw6ljZW1icmUgMjAxNyByZWxhdGl2ZSDDoCBsYSByZXZhbG9yaXNhdGlvbiBhdSAxZXIgamFudmllciAyMDE4IGRlcyBwbGFmb25kcyBkZSByZXNzb3VyY2VzIGTigJlhdHRyaWJ1dGlvbiBkZSBjZXJ0YWluZXMgcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBzZXJ2aWVzIGVuIG3DqXRyb3BvbGUsIGVuIEd1YWRlbG91cGUsIGVuIEd1eWFuZSwgZW4gTWFydGluaXF1ZSwgw6AgbGEgUsOpdW5pb24sIMOgIFNhaW50LUJhcnRow6lsZW15LCDDoCBTYWludC1NYXJ0aW4gZXQgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGRlcyBwbGFmb25kcyBkZSByZXNzb3VyY2VzXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE4KSAoMTIpICgzMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTYyODYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTYyODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NzsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTY7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW5zdHJ1Y3Rpb24gaW50ZXJtaW5pc3TDqXJpZWxsZSBuwrAgRFNTL1NEMkIvMjAxOC8yNzkgZHUgMTcgZMOpY2VtYnJlIDIwMTggcmVsYXRpdmUgw6AgbGEgcmV2YWxvcmlzYXRpb24gYXUgMWVyIGphbnZpZXIgMjAxOSBkZXMgcGxhZm9uZHMgZGUgcmVzc291cmNlcyBk4oCZYXR0cmlidXRpb24gZGUgY2VydGFpbmVzIHByZXN0YXRpb25zIGZhbWlsaWFsZXMgc2VydmllcyBlbiBtw6l0cm9wb2xlLCBlbiBHdWFkZWxvdXBlLCBlbiBHdXlhbmUsIGVuIE1hcnRpbmlxdWUsIMOgIGxhIFLDqXVuaW9uLCDDoCBTYWludC1CYXJ0aMOpbGVteSwgw6AgU2FpbnQtTWFydGluIGV0IMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkZXMgcGxhZm9uZHMgZGUgcmVzc291cmNlc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEyKSAoMzEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU2ODQ5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU2ODQwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXykpKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTc7IGVuZF9jb2x1bW49Mjc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTg5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTg5OyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkluc3RydWN0aW9uIGludGVybWluaXN0ZXJpZWxsZSBubyBEU1MvU0QyQi8yMDE5LzI2MSBkdSAxOCBkw6ljZW1icmUgMjAxOSByZWxhdGl2ZSDDoCBsYSByZXZhbG9yaXNhdGlvbiBhdSAxZXIgamFudmllciAyMDIwIGRlcyBwbGFmb25kcyBkZSByZXNzb3VyY2VzIGTigJlhdHRyaWJ1dGlvbiBkZSBjZXJ0YWluZXMgcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBzZXJ2aWVzIGVuIG3DqXRyb3BvbGUsIGVuIEd1YWRlbG91cGUsIGVuIEd1eWFuZSwgZW4gTWFydGluaXF1ZSwgw6AgTGEgUsOpdW5pb24sIMOgIFNhaW50LUJhcnRow6lsZW15LCDDoCBTYWludC1NYXJ0aW4gZXQgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGRlcyBwbGFmb25kcyBkZSByZXNzb3VyY2VzXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTIpICgzMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTc3NTkwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTc3NTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NzsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExNjsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMTQgZMOpY2VtYnJlIDIwMjAgcmVsYXRpZiBhdSBtb250YW50IGRlcyBwbGFmb25kcyBkZSByZXNzb3VyY2VzIGRlIGNlcnRhaW5lcyBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IGF1eCB0cmFuY2hlcyBkdSBiYXLDqG1lIGFwcGxpY2FibGUgYXUgcmVjb3V2cmVtZW50IGRlcyBpbmR1cyBldCDDoCBsYSBzYWlzaWUgZGVzIHByZXN0YXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZGVzIHBsYWZvbmRzIGRlIHJlc3NvdXJjZXNcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMikgKDMxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1ODI3OTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1ODI3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pKSkpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTMwNDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMDQ7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTU5NTAwMFwiKVxuICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU1OTUwMFwiKVxuICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXykpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xNTc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTU3OyBlbmRfY29sdW1uPTI3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IGRyb2l0X291dmVydF9jb21wbGVtZW50XzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcImRyb2l0X291dmVydF9jb21wbMOpbWVudFwiXSAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTM3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEzNzsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzc7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTM3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzc7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mjk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDMwOyBlbmRfY29sdW1uPTcxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDc1NS0xMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSA1IDogRGlzcG9zaXRpb25zIHBhcnRpY3VsacOocmVzIMOgIGxhIEd1YWRlbG91cGUsIMOgIGxhIEd1eWFuZSwgw6AgbGEgTWFydGluaXF1ZSwgw6AgTGEgUsOpdW5pb24sIMOgIFNhaW50LUJhcnRow6lsZW15IGV0IMOgIFNhaW50LU1hcnRpblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA3IDogUsOpZ2ltZXMgZGl2ZXJzIC0gRGlzcG9zaXRpb25zIGRpdmVyc2VzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVnaW1lX291dHJlX21lcl9sNzUxXzFfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMxOyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJSw6hnbGVzIGRpdmVyc2VzXCI7IFwiw4lwaWxvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTM3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEzNzsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMzc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTM3OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IGRyb2l0X291dmVydF9mb3JmYWl0YWlyZV86IEVuZmFudC50IC0+IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJkcm9pdF9vdXZlcnRfZm9yZmFpdGFpcmVcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoZW5mYW50XzogRW5mYW50LnQpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTIwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTIwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MjM7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MjQ7IGVuZF9jb2x1bW49NzI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw3NTUtMTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDUgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbGEgR3VhZGVsb3VwZSwgw6AgbGEgR3V5YW5lLCDDoCBsYSBNYXJ0aW5pcXVlLCDDoCBMYSBSw6l1bmlvbiwgw6AgU2FpbnQtQmFydGjDqWxlbXkgZXQgw6AgU2FpbnQtTWFydGluXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNyA6IFLDqWdpbWVzIGRpdmVycyAtIERpc3Bvc2l0aW9ucyBkaXZlcnNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVnaW1lX291dHJlX21lcl9sNzUxXzFfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTI2OyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDUyMS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnQgKG9fbGVuZ3RoIGVuZmFudHNfYV9jaGFyZ2VfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9lbmZhbnRzX2FsaW5lYV8yX2w1MjFfM18pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZHVyX2R1clxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2RhdF9kdXIgQWJvcnRPblJvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50LmRhdGVfZGVfbmFpc3NhbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2FnZV9sNTEyXzNfMl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGR1cmF0aW9uX29mX251bWJlcnMgKDApICgwKSAoMzY1KSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50LmFfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY29uZGl0aW9uc19ob3JzX8OiZ2VcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNvbmRpdGlvbnNfaG9yc1/DomdlXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY29uZGl0aW9uc19ob3JzX8OiZ2VcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9jb25kaXRpb25zX2hvcnNfYWdlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNvbmRpdGlvbnNfaG9yc1/DomdlXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2VuZmFudCkgZW5mYW50XykpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTEyMDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMjA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTIwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEyMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X2luaXRpYWxfYmFzZV9xdWF0cmllbWVfZW5mYW50X2V0X3BsdXNfbWF5b3R0ZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICBcIm1vbnRhbnRfaW5pdGlhbF9iYXNlX3F1YXRyacOobWVfZW5mYW50X2V0X3BsdXNfbWF5b3R0ZVwiXSAoZW1iZWRfbW9uZXkpXG4gICAgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTE3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExNzsgZW5kX2NvbHVtbj02NDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTk1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE5NTsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDQ2M1wiKSlcbiAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpKSkgZWxzZVxuICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTE3OyBlbmRfY29sdW1uPTY0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfaW5pdGlhbF9iYXNlX3Ryb2lzaWVtZV9lbmZhbnRfbWF5b3R0ZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICBcIm1vbnRhbnRfaW5pdGlhbF9iYXNlX3Ryb2lzacOobWVfZW5mYW50X21heW90dGVcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTE2OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExNjsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExNjsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDMxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzMTsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTEpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMSkgKDEyKSAoMzEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjA0NjNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExNjsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzOTsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMikgKDEyKSAoMzEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjA1MzlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExNjsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ3OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0NzsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTMpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMykgKDEyKSAoMzEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjA2MTVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExNjsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDU1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ1NTsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTQpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNCkgKDEyKSAoMzEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjA2OVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE2OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NjM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDYzOyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE1KSAoMTIpICgzMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDc2NlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE2OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NzE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDcxOyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE2KSAoMTIpICgzMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDg0MlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE2OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Nzk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDc5OyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE3KSAoMTIpICgzMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDkxOFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE2OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00ODc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDg3OyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE4KSAoMTIpICgzMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMTA4OVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE2OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00OTU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDk1OyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTIpICgzMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMTI1OVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE2OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01MDM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTAzOyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTIpICgzMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMTQzXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTg2OyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50XyAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjE2XCIpKVxuICAgICAgICAgICAgICBlbHNlIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMTY7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgbm9tYnJlX3RvdGFsX2VuZmFudHNfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwibm9tYnJlX3RvdGFsX2VuZmFudHNcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTExMDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMTA7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfUi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTYwOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSNTIxLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBlbiBDb25zZWlsIGQnRXRhdFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAob19sZW5ndGggZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTEwOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IG5vbWJyZV9tb3llbl9lbmZhbnRzXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcIm5vbWJyZV9tb3llbl9lbmZhbnRzXCJdIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTA5OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX1IuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE0MjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjUyMS0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgZW4gQ29uc2VpbCBkJ0V0YXRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19yZWR1Y2VcbiAgICAgICAgICAgICAgKGZ1biAoc3VtMV86IGRlY2ltYWwpIChzdW0yXzogZGVjaW1hbCkgLT5cbiAgICAgICAgICAgICAgICAgb19hZGRfcmF0X3JhdCBzdW0xXyBzdW0yXykgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC5cIilcbiAgICAgICAgICAgICAgKG9fbWFwXG4gICAgICAgICAgICAgICAgIChmdW4gKGVuZmFudF86IEVuZmFudC50KSAtPlxuICAgICAgICAgICAgICAgICAgICBtYXRjaCAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcInByaXNlX2VuX2NvbXB0ZVwiXVxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJwcmlzZV9lbl9jb21wdGVcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfcHJpc2VfZW5fY29tcHRlKSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwicHJpc2VfZW5fY29tcHRlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgcHJpc2VfZW5fY29tcHRlXykgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcInByaXNlX2VuX2NvbXB0ZVwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9lbmZhbnQpIGVuZmFudF8pKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ29tcHRlLkNvbXBsZXRlIF8gLT4gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMS5cIilcbiAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ29tcHRlLlBhcnRhZ2VlIF8gLT4gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC41XCIpXG4gICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNvbXB0ZS5aZXJvIF8gLT4gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC5cIikpXG4gICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXykpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwOTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X2luaXRpYWxfYmFzZV9wcmVtaWVyX2VuZmFudF86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwibW9udGFudF9pbml0aWFsX2Jhc2VfcHJlbWllcl9lbmZhbnRcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwNTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDU7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA1OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA1OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA1OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNTE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNTI7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTEpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX25vdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4xNDVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNTsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjYwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjYxOyBlbmRfY29sdW1uPTUzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDEyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTIpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ub3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyXykpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMTM5M1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA1OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNjk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNzA7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTMpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMykgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX25vdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4xMzM1XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDU7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI3ODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI3OTsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE0KSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl8pKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjEyNzhcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNTsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjg3OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mjg4OyBlbmRfY29sdW1uPTUzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE1KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTUpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ub3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyXykpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMTIyXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDU7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI5Njsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI5NzsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE2KSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl8pKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjExNjNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNTsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzA1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzA2OyBlbmRfY29sdW1uPTUzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE3KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTcpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ub3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyXykpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMTEwNVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA1OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTQ7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTU7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTgpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOCkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX25vdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wOTc2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDU7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMyMzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMyNDsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl8pKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjA4NDdcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNTsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzMyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzMzOyBlbmRfY29sdW1uPTUzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ub3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyXykpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDcxN1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA1OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNDE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNDE7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU3MjhcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTY3OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTY3OyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjA1ODhcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNTsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNjU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM2NjsgZW5kX2NvbHVtbj03MTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENzU1LTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSA1IDogRMOpcGFydGVtZW50cyBkJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNyA6IFLDqWdpbWVzIGRpdmVycyAtIERpc3Bvc2l0aW9ucyBkaXZlcnNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9yZWdpbWVfb3V0cmVfbWVyX2w3NTFfMV9cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjA1ODhcIikpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNjI7IHN0YXJ0X2NvbHVtbj0yOTsgZW5kX2xpbmU9MzYyOyBlbmRfY29sdW1uPTY0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENzU1LTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDUgOiBEw6lwYXJ0ZW1lbnRzIGQnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNyA6IFLDqWdpbWVzIGRpdmVycyAtIERpc3Bvc2l0aW9ucyBkaXZlcnNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwNTsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBkcm9pdF9vdXZlcnRfYmFzZV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJkcm9pdF9vdXZlcnRfYmFzZVwiXSAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTAzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwMzsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDM7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDM7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAzOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDM7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDM7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAzOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAzOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU5OyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTk7IGVuZF9jb2x1bW49NzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQwOTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQxMDsgZW5kX2NvbHVtbj03MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDc1NS0xMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgNSA6IERpc3Bvc2l0aW9ucyBwYXJ0aWN1bGnDqHJlcyDDoCBsYSBHdWFkZWxvdXBlLCDDoCBsYSBHdXlhbmUsIMOgIGxhIE1hcnRpbmlxdWUsIMOgIExhIFLDqXVuaW9uLCDDoCBTYWludC1CYXJ0aMOpbGVteSBldCDDoCBTYWludC1NYXJ0aW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA3IDogUsOpZ2ltZXMgZGl2ZXJzIC0gRGlzcG9zaXRpb25zIGRpdmVyc2VzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9yZWdpbWVfb3V0cmVfbWVyX2w3NTFfMV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDE7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDUyMS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTAzOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwMzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDM7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25fOiBFbmZhbnQudCAtPiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoZW5mYW50XzogRW5mYW50LnQpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTI2OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTI2OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTg7IGVuZF9jb2x1bW49MjE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw1MjEtM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX2VuZmFudHNfYWxpbmVhXzJfbDUyMV8zXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfZGF0X2R1ciBBYm9ydE9uUm91bmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudC5kYXRlX2RlX25haXNzYW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCLDomdlX21pbmltdW1fYWxpbsOpYV8xX2w1MjFfM1wiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiw6JnZV9taW5pbXVtX2FsaW7DqWFfMV9sNTIxXzNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX2R1cmF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiw6JnZV9taW5pbXVtX2FsaW7DqWFfMV9sNTIxXzNcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZV9taW5pbXVtX2FsaW5lYV8xX2w1MjFfM18pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCLDomdlX21pbmltdW1fYWxpbsOpYV8xX2w1MjFfM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfZW5mYW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50XykpKSkpKSkpIGRhdGVfY291cmFudGVfKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMwMDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMDI7IGVuZF9jb2x1bW49MjE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTIxLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ub3QgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZXN0X2VuZmFudF9sZV9wbHVzX8OiZ8OpXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlc3RfZW5mYW50X2xlX3BsdXNfw6Jnw6lcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfYm9vbCkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlc3RfZW5mYW50X2xlX3BsdXNfw6Jnw6lcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlc3RfZW5mYW50X2xlX3BsdXNfYWdlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImVzdF9lbmZhbnRfbGVfcGx1c1/DomfDqVwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9lbmZhbnQpIGVuZmFudF8pKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2RhdF9kdXIgQWJvcnRPblJvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50LmRhdGVfZGVfbmFpc3NhbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIsOiZ2VfbWluaW11bV9hbGluw6lhXzFfbDUyMV8zXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCLDomdlX21pbmltdW1fYWxpbsOpYV8xX2w1MjFfM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX2R1cmF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiw6JnZV9taW5pbXVtX2FsaW7DqWFfMV9sNTIxXzNcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2VfbWluaW11bV9hbGluZWFfMV9sNTIxXzNfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiw6JnZV9taW5pbXVtX2FsaW7DqWFfMV9sNTIxXzNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9lbmZhbnQpIGVuZmFudF8pKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfKSkpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT0xMjY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTI2OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMjY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgY29tcGxlbWVudF9kZWdyZXNzaWZfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcImNvbXBsw6ltZW50X2TDqWdyZXNzaWZcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWxsb2NhdGlvbl86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTM5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEzOTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzk7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEzOTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzk7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTM5OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTY1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTY2OyBlbmRfY29sdW1uPTY1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFmb25kX19pX2Q1MjFfM18pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIHBsYWZvbmRfX2lfZDUyMV8zX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGFsbG9jYXRpb25fXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMi5cIikpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBwbGFmb25kX19pX2Q1MjFfM19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGFsbG9jYXRpb25fXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEyLlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3NvdXJjZXNfbWVuYWdlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZGl2X3JhdF9yYXQgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMS5cIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTIuXCIpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzk7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTM5OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTc0OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTc1OyBlbmRfY29sdW1uPTY1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFmb25kX19pX2lfZDUyMV8zXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gcGxhZm9uZF9faV9pX2Q1MjFfM19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBhbGxvY2F0aW9uX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTIuXCIpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gcGxhZm9uZF9faV9pX2Q1MjFfM19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGFsbG9jYXRpb25fXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEyLlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3NvdXJjZXNfbWVuYWdlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZGl2X3JhdF9yYXQgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMS5cIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTIuXCIpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE4MTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE4MTsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTM5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEzOTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMzk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTM5OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfdmVyc2VfZm9yZmFpdGFpcmVfcGFyX2VuZmFudF86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwibW9udGFudF92ZXJzw6lfZm9yZmFpdGFpcmVfcGFyX2VuZmFudFwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTIyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEyMjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjI7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjIxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMjE7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fbHRlX21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfIHBsYWZvbmRfX2lfZDUyMV8zXykpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMjAyMzRcIikpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjI7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjM1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMzY7IGVuZF9jb2x1bW49NDU7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0X21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfIHBsYWZvbmRfX2lfZDUyMV8zXylcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfIHBsYWZvbmRfX2lfaV9kNTIxXzNfKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMTAxMTdcIikpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjI7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjQ5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNDk7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV8gcGxhZm9uZF9faV9pX2Q1MjFfM18pKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjA1MDU5XCIpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyMjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMjI7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9pbml0aWFsX2Jhc2VfdHJvaXNpZW1lX2VuZmFudF9ldF9wbHVzXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgIFwibW9udGFudF9pbml0aWFsX2Jhc2VfdHJvaXNpw6htZV9lbmZhbnRfZXRfcGx1c1wiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDc7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA3OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQzOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDM7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fbHRlX21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfIHBsYWZvbmRfX2lfZDUyMV8zXykpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjQxXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA3OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTg0OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODQ7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0X21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfIHBsYWZvbmRfX2lfZDUyMV8zXylcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfIHBsYWZvbmRfX2lfaV9kNTIxXzNfKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjIwNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSkpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNzsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjI7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjI7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV8gcGxhZm9uZF9faV9pX2Q1MjFfM18pKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4xMDI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDc7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9pbml0aWFsX2Jhc2VfZGV1eGllbWVfZW5mYW50XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJtb250YW50X2luaXRpYWxfYmFzZV9kZXV4acOobWVfZW5mYW50XCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTA2OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzUwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzUwOyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDExKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDExKSAoMTIpICgzMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjIzMlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA2OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNTg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNTg7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTIpICgxMikgKDMxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMjM3OVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA2OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNjY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNjY7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTMpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTMpICgxMikgKDMxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMjQzN1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA2OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNzQ7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNzQ7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTQpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTQpICgxMikgKDMxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMjQ5NlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA2OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zODI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zODI7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTUpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTUpICgxMikgKDMxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMjU1NVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA2OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTA7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTYpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTYpICgxMikgKDMxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMjYxM1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA2OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTg7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTcpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTcpICgxMikgKDMxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMjY3MlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA2OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MDY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MDY7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTgpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTgpICgxMikgKDMxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMjgwNFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA2OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MTQ7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MTQ7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMikgKDMxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMjkzNlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA2OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MjI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MjI7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMikgKDMxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMzA2OFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTc3OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTc3OyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjMyXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTA2OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA2OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM4OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zODsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlXyBwbGFmb25kX19pX2Q1MjFfM18pKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMzJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03OTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Nzk7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfX2lfZDUyMV8zXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFmb25kX19pX2lfZDUyMV8zXykpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMTZcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTc7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExNzsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9faV9pX2Q1MjFfM18pKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDhcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDY7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgcmFwcG9ydF9lbmZhbnRzX3RvdGFsX21veWVuXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcInJhcHBvcnRfZW5mYW50c190b3RhbF9tb3llblwiXSAoZW1iZWRfZGVjaW1hbClcbiAgICAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTA4OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX1IuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyODsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjUyMS0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgZW4gQ29uc2VpbCBkJ0V0YXRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmIChvX2VxIG5vbWJyZV90b3RhbF9lbmZhbnRzXyAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKSkgdGhlblxuICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKSBlbHNlXG4gICAgICAgICAgICAgIChvX2Rpdl9yYXRfcmF0IG5vbWJyZV9tb3llbl9lbmZhbnRzXyBub21icmVfdG90YWxfZW5mYW50c18pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDg7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9pbml0aWFsX21ldHJvcG9sZV9tYWpvcmF0aW9uXzogRW5mYW50LnQgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJtb250YW50X2luaXRpYWxfbcOpdHJvcG9sZV9tYWpvcmF0aW9uXCJdXG4gICAgKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoZW5mYW50XzogRW5mYW50LnQpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTI4OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyODsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTI4OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9faV9kNTIxXzNfKSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfYm9vbCkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyb2l0X291dmVydF9tYWpvcmF0aW9uXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2VuZmFudCkgZW5mYW50XykpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjE2XCIpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjg7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyODsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAxOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFmb25kX19pX2Q1MjFfM18pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9faV9pX2Q1MjFfM18pKSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfYm9vbCkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyb2l0X291dmVydF9tYWpvcmF0aW9uXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2VuZmFudCkgZW5mYW50XykpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjA4XCIpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjg7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyODsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTM4OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFmb25kX19pX2lfZDUyMV8zXykgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcm9pdF9vdXZlcnRfbWFqb3JhdGlvbl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9lbmZhbnQpIGVuZmFudF8pKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wNFwiKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjg7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yODsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJSw6hnbGVzIGRpdmVyc2VzXCI7IFwiw4lwaWxvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX25vdCAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfYm9vbCkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyb2l0X291dmVydF9tYWpvcmF0aW9uXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2VuZmFudCkgZW5mYW50XykpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTEyODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMjg7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTI4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEyODsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X3ZlcnNlX2ZvcmZhaXRhaXJlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJtb250YW50X3ZlcnPDqV9mb3JmYWl0YWlyZVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyMzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMjM7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xOTk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTk5OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0IG1vbnRhbnRfdmVyc2VfZm9yZmFpdGFpcmVfcGFyX2VuZmFudF9cbiAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAob19maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoZW5mYW50XzogRW5mYW50LnQpIC0+IChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfZm9yZmFpdGFpcmVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9mb3JmYWl0YWlyZVwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfYm9vbCkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9mb3JmYWl0YWlyZVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkcm9pdF9vdXZlcnRfZm9yZmFpdGFpcmVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X2ZvcmZhaXRhaXJlXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9lbmZhbnQpIGVuZmFudF8pKSkpKSkpIGVuZmFudHNfYV9jaGFyZ2VfKSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyMzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMjM7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9pbml0aWFsX2Jhc2VfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcIm1vbnRhbnRfaW5pdGlhbF9iYXNlXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwNDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQ7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDQ7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDQ7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNTY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzU3OyBlbmRfY29sdW1uPTY5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDc1NS01XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDUgOiBEw6lwYXJ0ZW1lbnRzIGQnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDcgOiBSw6lnaW1lcyBkaXZlcnMgLSBEaXNwb3NpdGlvbnMgZGl2ZXJzZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9yZWdpbWVfb3V0cmVfbWVyX2w3NTFfMV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9pbml0aWFsX2Jhc2VfcHJlbWllcl9lbmZhbnRfKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQ7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUxOyBzdGFydF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9pbml0aWFsX2Jhc2VfcHJlbWllcl9lbmZhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X2luaXRpYWxfYmFzZV9kZXV4aWVtZV9lbmZhbnRfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9pbml0aWFsX2Jhc2VfdHJvaXNpZW1lX2VuZmFudF9tYXlvdHRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfaW5pdGlhbF9iYXNlX3F1YXRyaWVtZV9lbmZhbnRfZXRfcGx1c19tYXlvdHRlXykpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTg7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19hZGRfbW9uX21vbiBtb250YW50X2luaXRpYWxfYmFzZV9kZXV4aWVtZV9lbmZhbnRfXG4gICAgICAgICAgICAgIG1vbnRhbnRfaW5pdGlhbF9iYXNlX3Ryb2lzaWVtZV9lbmZhbnRfZXRfcGx1c18pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwNDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X2luaXRpYWxfbWFqb3JhdGlvbl86IEVuZmFudC50IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwibW9udGFudF9pbml0aWFsX21ham9yYXRpb25cIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoZW5mYW50XzogRW5mYW50LnQpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTMwOyBlbmRfY29sdW1uPTM3O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzMDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTMwOyBlbmRfY29sdW1uPTM3O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzMDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzA7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNzk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zODM7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ3NTUtNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgNSA6IETDqXBhcnRlbWVudHMgZCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA3IDogUsOpZ2ltZXMgZGl2ZXJzIC0gRGlzcG9zaXRpb25zIGRpdmVyc2VzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9ib29sKSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25fKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9lbmZhbnQpIGVuZmFudF8pKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3JlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2RhdF9kdXIgQWJvcnRPblJvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnQuZGF0ZV9kZV9uYWlzc2FuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHVyYXRpb25fb2ZfbnVtYmVycyAoMTEpICgwKSAoMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfZGF0X2R1ciBBYm9ydE9uUm91bmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudC5kYXRlX2RlX25haXNzYW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkdXJhdGlvbl9vZl9udW1iZXJzICgxNikgKDApICgwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAzNjlcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTMwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEzMDsgZW5kX2NvbHVtbj0zNztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM4OTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5MjsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDc1NS01XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSA1IDogRMOpcGFydGVtZW50cyBkJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDcgOiBSw6lnaW1lcyBkaXZlcnMgLSBEaXNwb3NpdGlvbnMgZGl2ZXJzZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmQgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcm9pdF9vdXZlcnRfbWFqb3JhdGlvbl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2VuZmFudCkgZW5mYW50XykpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVnaW1lX291dHJlX21lcl9sNzUxXzFfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2RhdF9kdXIgQWJvcnRPblJvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnQuZGF0ZV9kZV9uYWlzc2FuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHVyYXRpb25fb2ZfbnVtYmVycyAoMTYpICgwKSAoMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV8pKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjA1NjdcIikpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMjsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIyOyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgIFwibW9udGFudF9pbml0aWFsX23DqXRyb3BvbGVfbWFqb3JhdGlvblwiXVxuICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgIFwibW9udGFudF9pbml0aWFsX23DqXRyb3BvbGVfbWFqb3JhdGlvblwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgXCJtb250YW50X2luaXRpYWxfbcOpdHJvcG9sZV9tYWpvcmF0aW9uXCJdXG4gICAgICAgICAgICAgICAgIG1vbnRhbnRfaW5pdGlhbF9tZXRyb3BvbGVfbWFqb3JhdGlvbl8pXG4gICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgXCJtb250YW50X2luaXRpYWxfbcOpdHJvcG9sZV9tYWpvcmF0aW9uXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgIChlbWJlZF9lbmZhbnQpIGVuZmFudF8pKSkpKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT0xMzA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTMwOyBlbmRfY29sdW1uPTM3O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEzMDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMzA7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF92ZXJzZV9jb21wbGVtZW50X3BvdXJfZm9yZmFpdGFpcmVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcIm1vbnRhbnRfdmVyc8OpX2NvbXBsw6ltZW50X3BvdXJfZm9yZmFpdGFpcmVcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTE0Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xNDI7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjY4OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI3MDsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9faV9kNTIxXzNfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIHBsYWZvbmRfX2lfZDUyMV8zX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfdmVyc2VfZm9yZmFpdGFpcmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTIuXCIpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIHBsYWZvbmRfX2lfZDUyMV8zX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X3ZlcnNlX2ZvcmZhaXRhaXJlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTIuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3NvdXJjZXNfbWVuYWdlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2Rpdl9yYXRfcmF0IChkZWNpbWFsX29mX3N0cmluZyBcIjEuXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMi5cIikpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0MjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI3ODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yODA7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfX2lfaV9kNTIxXzNfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIHBsYWZvbmRfX2lfaV9kNTIxXzNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF92ZXJzZV9mb3JmYWl0YWlyZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMi5cIikpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gcGxhZm9uZF9faV9pX2Q1MjFfM19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF92ZXJzZV9mb3JmYWl0YWlyZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEyLlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNzb3VyY2VzX21lbmFnZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19kaXZfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxLlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTIuXCIpKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjg2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI4NjsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xNDI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTQyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfYXZlY19nYXJkZV9hbHRlcm5lZV9iYXNlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJtb250YW50X2F2ZWNfZ2FyZGVfYWx0ZXJuw6llX2Jhc2VcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTExMTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMTE7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfUi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTI1OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSNTIxLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBlbiBDb25zZWlsIGQnRXRhdFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX211bHRfbW9uX3JhdCBtb250YW50X2luaXRpYWxfYmFzZV8gcmFwcG9ydF9lbmZhbnRzX3RvdGFsX21veWVuXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTExOyBlbmRfY29sdW1uPTQzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfYXZlY19nYXJkZV9hbHRlcm5lZV9tYWpvcmF0aW9uXzogRW5mYW50LnQgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJtb250YW50X2F2ZWNfZ2FyZGVfYWx0ZXJuw6llX21ham9yYXRpb25cIl1cbiAgICAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChlbmZhbnRfOiBFbmZhbnQudCkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzMjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMzI7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfSAoXG4gICAgICAgICAgICAgIFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfUi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE4Njsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTg2OyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI1MjEtNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgZW4gQ29uc2VpbCBkJ0V0YXRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXQgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJtb250YW50X2luaXRpYWxfbWFqb3JhdGlvblwiXVxuICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJtb250YW50X2luaXRpYWxfbWFqb3JhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwibW9udGFudF9pbml0aWFsX21ham9yYXRpb25cIl1cbiAgICAgICAgICAgICAgICAgICBtb250YW50X2luaXRpYWxfbWFqb3JhdGlvbl8pICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJtb250YW50X2luaXRpYWxfbWFqb3JhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX2VuZmFudCkgZW5mYW50XykpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAobWF0Y2ggKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJwcmlzZV9lbl9jb21wdGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwicHJpc2VfZW5fY29tcHRlXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX3ByaXNlX2VuX2NvbXB0ZSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcInByaXNlX2VuX2NvbXB0ZVwiXVxuICAgICAgICAgICAgICAgICAgICAgIHByaXNlX2VuX2NvbXB0ZV8pICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJwcmlzZV9lbl9jb21wdGVcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZW5mYW50KSBlbmZhbnRfKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNvbXB0ZS5Db21wbGV0ZSBfIC0+IChkZWNpbWFsX29mX3N0cmluZyBcIjEuXCIpXG4gICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNvbXB0ZS5QYXJ0YWdlZSBfIC0+IChkZWNpbWFsX29mX3N0cmluZyBcIjAuNVwiKVxuICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5Db21wdGUuWmVybyBfIC0+IChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTEzMjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMzI7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTMyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEzMjsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X3ZlcnNlX2Jhc2VfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcIm1vbnRhbnRfdmVyc8OpX2Jhc2VcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTEyOyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNzsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlLDqGdsZXMgZGl2ZXJzZXNcIjsgXCLDiXBpbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICBpZiBkcm9pdF9vdXZlcnRfYmFzZV8gdGhlbiBtb250YW50X2F2ZWNfZ2FyZGVfYWx0ZXJuZWVfYmFzZV9cbiAgICAgICAgICAgICAgZWxzZSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTEyOyBlbmRfY29sdW1uPTI5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfdmVyc2VfbWFqb3JhdGlvbl86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwibW9udGFudF92ZXJzw6lfbWFqb3JhdGlvblwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEzNDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMzQ7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM5OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUsOoZ2xlcyBkaXZlcnNlc1wiOyBcIsOJcGlsb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmIGRyb2l0X291dmVydF9iYXNlXyB0aGVuXG4gICAgICAgICAgICAgIChvX3JlZHVjZVxuICAgICAgICAgICAgICAgICAoZnVuIChzdW0xXzogbW9uZXkpIChzdW0yXzogbW9uZXkpIC0+XG4gICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb24gc3VtMV8gc3VtMl8pIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpXG4gICAgICAgICAgICAgICAgIChvX21hcFxuICAgICAgICAgICAgICAgICAgICAoZnVuIChlbmZhbnRfOiBFbmZhbnQudCkgLT4gKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRfYXZlY19nYXJkZV9hbHRlcm7DqWVfbWFqb3JhdGlvblwiXVxuICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwibW9udGFudF9hdmVjX2dhcmRlX2FsdGVybsOpZV9tYWpvcmF0aW9uXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRfYXZlY19nYXJkZV9hbHRlcm7DqWVfbWFqb3JhdGlvblwiXVxuICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X2F2ZWNfZ2FyZGVfYWx0ZXJuZWVfbWFqb3JhdGlvbl8pXG4gICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJtb250YW50X2F2ZWNfZ2FyZGVfYWx0ZXJuw6llX21ham9yYXRpb25cIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2VuZmFudCkgZW5mYW50XykpKSkpKSkgZW5mYW50c19hX2NoYXJnZV8pKSBlbHNlXG4gICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEzNDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMzQ7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9iYXNlX2NvbXBsZW1lbnRfcG91cl9iYXNlX2V0X21ham9yYXRpb25fOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgXCJtb250YW50X2Jhc2VfY29tcGzDqW1lbnRfcG91cl9iYXNlX2V0X21ham9yYXRpb25cIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMzg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTM4OyBlbmRfY29sdW1uPTU4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTg5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE4OTsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX2FkZF9tb25fbW9uIG1vbnRhbnRfdmVyc2VfYmFzZV8gbW9udGFudF92ZXJzZV9tYWpvcmF0aW9uXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMzg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTM4OyBlbmRfY29sdW1uPTU4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfdmVyc2VfY29tcGxlbWVudF9wb3VyX2Jhc2VfZXRfbWFqb3JhdGlvbl86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICBcIm1vbnRhbnRfdmVyc8OpX2NvbXBsw6ltZW50X3BvdXJfYmFzZV9ldF9tYWpvcmF0aW9uXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTQxOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTE0MTsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE4Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xODM7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmIGRyb2l0X291dmVydF9jb21wbGVtZW50XyB0aGVuXG4gICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwiY29tcGzDqW1lbnRfZMOpZ3Jlc3NpZlwiXVxuICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJjb21wbMOpbWVudF9kw6lncmVzc2lmXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwiY29tcGzDqW1lbnRfZMOpZ3Jlc3NpZlwiXVxuICAgICAgICAgICAgICAgIGNvbXBsZW1lbnRfZGVncmVzc2lmXykgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcImNvbXBsw6ltZW50X2TDqWdyZXNzaWZcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgbW9udGFudF9iYXNlX2NvbXBsZW1lbnRfcG91cl9iYXNlX2V0X21ham9yYXRpb25fKSkpKSkpKSBlbHNlXG4gICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTE0MTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xNDE7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF92ZXJzZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwibW9udGFudF92ZXJzw6lcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDA7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTAwOyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NTsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlLDqGdsZXMgZGl2ZXJzZXNcIjsgXCLDiXBpbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICBpZiBkcm9pdF9vdXZlcnRfYmFzZV8gdGhlblxuICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBtb250YW50X3ZlcnNlX2Jhc2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfdmVyc2VfbWFqb3JhdGlvbl8pXG4gICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfdmVyc2VfZm9yZmFpdGFpcmVfKVxuICAgICAgICAgICAgICAgICAgICBtb250YW50X3ZlcnNlX2NvbXBsZW1lbnRfcG91cl9iYXNlX2V0X21ham9yYXRpb25fKVxuICAgICAgICAgICAgICAgICBtb250YW50X3ZlcnNlX2NvbXBsZW1lbnRfcG91cl9mb3JmYWl0YWlyZV8pIGVsc2VcbiAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTAwOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTEwMDsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBfOiB1bml0ID0gaWYgKFxuICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgIChvX29yIHBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9lc3RfcGFyZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9lc3RfcGFyZW50XylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX3JlbXBsaXRfdGl0cmVfX2lfKSlcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIzMTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjM1OyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDUyMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0pKSlcbiAgICAgICAgICAgICAgICAgIHRoZW4gKCkgZWxzZVxuICAgICAgICAgICAgICAgICAgcmFpc2UgKEFzc2VydGlvbkZhaWxlZCB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjMxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMzU7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTIxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSkgaW5cbiAge0FsbG9jYXRpb25zRmFtaWxpYWxlcy5tb250YW50X3ZlcnNlID0gbW9udGFudF92ZXJzZV99XG5cbmxldCBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyAoaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW46IEludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnQpIDogSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLnQgPVxuICBsZXQgaV9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmlfZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgaV9lbmZhbnRzXzogRW5mYW50RW50cmVlLnQgYXJyYXkgPSBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5JbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5pX2VuZmFudHNfaW4gaW5cbiAgbGV0IGlfcmVzc291cmNlc19tZW5hZ2VfOiBtb25leSA9IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmlfcmVzc291cmNlc19tZW5hZ2VfaW4gaW5cbiAgbGV0IGlfcmVzaWRlbmNlXzogQ29sbGVjdGl2aXRlLnQgPSBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5JbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5pX3Jlc2lkZW5jZV9pbiBpblxuICBsZXQgaV9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfZXN0X3BhcmVudF86IGJvb2wgPSBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5JbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5pX3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9lc3RfcGFyZW50X2luIGluXG4gIGxldCBpX3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9yZW1wbGl0X3RpdHJlX19pXzogYm9vbCA9IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmlfcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX3JlbXBsaXRfdGl0cmVfSV9pbiBpblxuICBsZXQgaV9hdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl86IGJvb2wgPSBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5JbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5pX2F2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyX2luIGluXG4gIGxldCBlbmZhbnRzX2FfY2hhcmdlXzogRW5mYW50LnQgYXJyYXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJJbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJlbmZhbnRzX8OgX2NoYXJnZVwiXVxuICAgIChlbWJlZF9hcnJheSAoZW1iZWRfZW5mYW50KSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NzY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NzY7IGVuZF9jb2x1bW49Mjc7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE3OyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMMTMxLTFcIjsgXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiw4lwaWxvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX21hcFxuICAgICAgICAgICAgICAoZnVuIChlbmZhbnRfOiBFbmZhbnRFbnRyZWUudCkgLT5cbiAgICAgICAgICAgICAgICAge0VuZmFudC5pZGVudGlmaWFudCA9IChlbmZhbnRfLkVuZmFudEVudHJlZS5kX2lkZW50aWZpYW50KTtcbiAgICAgICAgICAgICAgICAgICAgRW5mYW50Lm9ibGlnYXRpb25fc2NvbGFpcmUgPVxuICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9kYXRfZHVyIEFib3J0T25Sb3VuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEVudHJlZS5kX2RhdGVfZGVfbmFpc3NhbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkdXJhdGlvbl9vZl9udW1iZXJzICgzKSAoMCkgKDApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpX2RhdGVfY291cmFudGVfKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BdmFudCAoKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9kYXRfZHVyIEFib3J0T25Sb3VuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEVudHJlZS5kX2RhdGVfZGVfbmFpc3NhbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkdXJhdGlvbl9vZl9udW1iZXJzICgxNikgKDApICgwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaV9kYXRlX2NvdXJhbnRlXykgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuUGVuZGFudCAoKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXByZXMgKCkpKSk7XG4gICAgICAgICAgICAgICAgICAgIEVuZmFudC5yZW11bmVyYXRpb25fbWVuc3VlbGxlID1cbiAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRFbnRyZWUuZF9yZW11bmVyYXRpb25fbWVuc3VlbGxlKTtcbiAgICAgICAgICAgICAgICAgICAgRW5mYW50LmRhdGVfZGVfbmFpc3NhbmNlID1cbiAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRFbnRyZWUuZF9kYXRlX2RlX25haXNzYW5jZSk7XG4gICAgICAgICAgICAgICAgICAgIEVuZmFudC5wcmlzZV9lbl9jaGFyZ2UgPVxuICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEVudHJlZS5kX3ByaXNlX2VuX2NoYXJnZSk7XG4gICAgICAgICAgICAgICAgICAgIEVuZmFudC5hX2RlamFfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzID1cbiAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRFbnRyZWUuZF9hX2RlamFfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzKTtcbiAgICAgICAgICAgICAgICAgICAgRW5mYW50LmJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudCA9XG4gICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50RW50cmVlLmRfYmVuZWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50KX0pXG4gICAgICAgICAgICAgIGlfZW5mYW50c18pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NzY7IGVuZF9jb2x1bW49Mjc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9lc3RfcGFyZW50XzogYm9vbCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJJbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgXCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzLnBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9lc3RfcGFyZW50XCJdXG4gICAgICAoZW1iZWRfYm9vbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTkyOyBzdGFydF9jb2x1bW49NTsgZW5kX2xpbmU9OTI7IGVuZF9jb2x1bW49NzU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkyOyBzdGFydF9jb2x1bW49NTsgZW5kX2xpbmU9OTI7IGVuZF9jb2x1bW49NzU7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkzOyBzdGFydF9jb2x1bW49MTg7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTM7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgIGlfcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX2VzdF9wYXJlbnRfKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTI7IHN0YXJ0X2NvbHVtbj01OyBlbmRfbGluZT05MjsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05Mjsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTkyOyBlbmRfY29sdW1uPTc1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX0pKSBpblxuICBsZXQgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX3JlbXBsaXRfdGl0cmVfX2lfOiBib29sID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICBcImFsbG9jYXRpb25zX2ZhbWlsaWFsZXMucGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX3JlbXBsaXRfdGl0cmVfSVwiXVxuICAgICAgKGVtYmVkX2Jvb2wpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05Njsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTk2OyBlbmRfY29sdW1uPTgwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05Njsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTk2OyBlbmRfY29sdW1uPTgwO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05Nzsgc3RhcnRfY29sdW1uPTE4O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk3OyBlbmRfY29sdW1uPTcyO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICBpX3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9yZW1wbGl0X3RpdHJlX19pXykpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTk2OyBzdGFydF9jb2x1bW49NTsgZW5kX2xpbmU9OTY7IGVuZF9jb2x1bW49ODA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTY7IHN0YXJ0X2NvbHVtbj01OyBlbmRfbGluZT05NjsgZW5kX2NvbHVtbj04MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19KSkgaW5cbiAgbGV0IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X3Jlc3NvdXJjZXNfbWVuYWdlXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgIFwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy5yZXNzb3VyY2VzX23DqW5hZ2VcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9ODg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODg7IGVuZF9jb2x1bW49NTQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT04ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04ODsgZW5kX2NvbHVtbj01NDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gaV9yZXNzb3VyY2VzX21lbmFnZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT04ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04ODsgZW5kX2NvbHVtbj01NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19KSkgaW5cbiAgbGV0IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X3Jlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcImFsbG9jYXRpb25zX2ZhbWlsaWFsZXMucsOpc2lkZW5jZVwiXVxuICAgICAgKGVtYmVkX2NvbGxlY3Rpdml0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTg5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg5OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODk7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGlfcmVzaWRlbmNlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTg5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg5OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX0pKSBpblxuICBsZXQgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgIFwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9ODY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODY7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT04Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04NjsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gaV9kYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTg2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg2OyBlbmRfY29sdW1uPTUwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX0pKSBpblxuICBsZXQgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfZW5mYW50c19hX2NoYXJnZV86IEVuZmFudC50IGFycmF5ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICBcImFsbG9jYXRpb25zX2ZhbWlsaWFsZXMuZW5mYW50c1/DoF9jaGFyZ2VcIl1cbiAgICAgIChlbWJlZF9hcnJheSAoZW1iZWRfZW5mYW50KSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTg3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg3OyBlbmRfY29sdW1uPTUzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODc7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGVuZmFudHNfYV9jaGFyZ2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9ODc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODc7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfSkpIGluXG4gIGxldCBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9hdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl86IGJvb2wgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgIFwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy5hdmFpdF9lbmZhbnRfw6BfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJcIl1cbiAgICAgIChlbWJlZF9ib29sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTAwOyBzdGFydF9jb2x1bW49NTsgZW5kX2xpbmU9MTAwOyBlbmRfY29sdW1uPTcyO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMDsgZW5kX2NvbHVtbj03MjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAxOyBzdGFydF9jb2x1bW49MTg7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAxOyBlbmRfY29sdW1uPTY0O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICBpX2F2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyXykpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMDsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTEwMDsgZW5kX2NvbHVtbj03MjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDA7IHN0YXJ0X2NvbHVtbj01OyBlbmRfbGluZT0xMDA7IGVuZF9jb2x1bW49NzI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfSkpIGluXG4gIGxldCByZXN1bHRfOiBBbGxvY2F0aW9uc0ZhbWlsaWFsZXMudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJJbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzXCI7XG4gICAgICBcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1wiO1xuICAgICAgXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIl0gYWxsb2NhdGlvbnNfZmFtaWxpYWxlcylcbiAgICAoe0FsbG9jYXRpb25zRmFtaWxpYWxlc0luLnBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9lc3RfcGFyZW50X2luID1cbiAgICAgICAgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX2VzdF9wYXJlbnRfO1xuICAgICAgICBBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfcmVtcGxpdF90aXRyZV9JX2luID1cbiAgICAgICAgICBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfcmVtcGxpdF90aXRyZV9faV87XG4gICAgICAgIEFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnJlc3NvdXJjZXNfbWVuYWdlX2luID1cbiAgICAgICAgICBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9yZXNzb3VyY2VzX21lbmFnZV87XG4gICAgICAgIEFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnJlc2lkZW5jZV9pbiA9XG4gICAgICAgICAgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVzaWRlbmNlXztcbiAgICAgICAgQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIEFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmVuZmFudHNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICAgIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X2VuZmFudHNfYV9jaGFyZ2VfO1xuICAgICAgICBBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5hdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl9pbiA9XG4gICAgICAgICAgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJffSkpKSBpblxuICBsZXQgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfbW9udGFudF92ZXJzZV86IG1vbmV5ID0gcmVzdWx0Xy5BbGxvY2F0aW9uc0ZhbWlsaWFsZXMubW9udGFudF92ZXJzZSBpblxuICBsZXQgaV9tb250YW50X3ZlcnNlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJJbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJpX21vbnRhbnRfdmVyc8OpXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9ODA7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9ODA7IGVuZF9jb2x1bW49Mjc7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT05MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05MDsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfbW9udGFudF92ZXJzZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9ODA7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9ODA7IGVuZF9jb2x1bW49Mjc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfSkpKSkgaW5cbiAge0ludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlcy5pX21vbnRhbnRfdmVyc2UgPSBpX21vbnRhbnRfdmVyc2VffVxuIiwiKCoqIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgdGhlIENhdGFsYSBjb21waWxlciwgZG8gbm90IGVkaXQhICopXG5cbm9wZW4gUnVudGltZV9vY2FtbC5SdW50aW1lXG5vcGVuIFJ1bnRpbWVfanNvby5SdW50aW1lXG5vcGVuIEpzX29mX29jYW1sXG5vcGVuIEFsbG9jYXRpb25zX2ZhbWlsaWFsZXNcblxuW0BAQG9jYW1sLndhcm5pbmcgXCItNC0yNi0yNy0zMi00MS00MlwiXVxuXG4oKiBHZW5lcmF0ZWQgQVBJICopXG5cbmNsYXNzIHR5cGUgcHJpc2VfZW5fY2hhcmdlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9uc1wiXG4gICAgICAgIC0gXCJHYXJkZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWVcIlxuICAgICAgICAtIFwiRWZmZWN0aXZlRXRQZXJtYW5lbnRlXCJcbiAgICAgICAgLSBcIlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBTGFGYW1pbGxlXCJcbiAgICAgICAgLSBcIlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXhcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBwcmlzZV9lbl9jaGFyZ2VfdG9fanNvbyA6IFByaXNlRW5DaGFyZ2UudCAtPiBwcmlzZV9lbl9jaGFyZ2UgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9ucyBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnNcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBHYXJkZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJHYXJkZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBFZmZlY3RpdmVFdFBlcm1hbmVudGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJFZmZlY3RpdmVFdFBlcm1hbmVudGVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQUxhRmFtaWxsZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBTGFGYW1pbGxlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXhcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IHByaXNlX2VuX2NoYXJnZV9vZl9qc29vIChwcmlzZV9lbl9jaGFyZ2UgOiBwcmlzZV9lbl9jaGFyZ2UgSnMudClcbiAgOiBQcmlzZUVuQ2hhcmdlLnQgPVxuICBtYXRjaCBwcmlzZV9lbl9jaGFyZ2UjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJHYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zXCIgLT5cbiAgICBQcmlzZUVuQ2hhcmdlLkdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnMgKClcbiAgfCBcIkdhcmRlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZVwiIC0+XG4gICAgUHJpc2VFbkNoYXJnZS5HYXJkZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWUgKClcbiAgfCBcIkVmZmVjdGl2ZUV0UGVybWFuZW50ZVwiIC0+IFByaXNlRW5DaGFyZ2UuRWZmZWN0aXZlRXRQZXJtYW5lbnRlICgpXG4gIHwgXCJTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQUxhRmFtaWxsZVwiIC0+XG4gICAgUHJpc2VFbkNoYXJnZS5TZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQUxhRmFtaWxsZSAoKVxuICB8IFwiU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eFwiIC0+XG4gICAgUHJpc2VFbkNoYXJnZS5TZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4ICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdQcmlzZUVuQ2hhcmdlLnQnXCIgY29ucylcblxuXG5jbGFzcyB0eXBlIHNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiQXZhbnRcIlxuICAgICAgICAtIFwiUGVuZGFudFwiXG4gICAgICAgIC0gXCJBcHJlc1wiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlX3RvX2pzb29cbiAgOiBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUudCAtPiBzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZSBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBBdmFudCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkF2YW50XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgUGVuZGFudCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlBlbmRhbnRcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBcHJlcyBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFwcmVzXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZV9vZl9qc29vXG4gIChzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZSA6IHNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlIEpzLnQpXG4gIDogU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLnQgPVxuICBtYXRjaCBzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZSMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIkF2YW50XCIgLT4gU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkF2YW50ICgpXG4gIHwgXCJQZW5kYW50XCIgLT4gU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLlBlbmRhbnQgKClcbiAgfCBcIkFwcmVzXCIgLT4gU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkFwcmVzICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgcHJpc2VfZW5fY29tcHRlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiQ29tcGxldGVcIlxuICAgICAgICAtIFwiUGFydGFnZWVcIlxuICAgICAgICAtIFwiWmVyb1wiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHByaXNlX2VuX2NvbXB0ZV90b19qc29vIDogUHJpc2VFbkNvbXB0ZS50IC0+IHByaXNlX2VuX2NvbXB0ZSBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBDb21wbGV0ZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkNvbXBsZXRlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgUGFydGFnZWUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJQYXJ0YWdlZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFplcm8gYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJaZXJvXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBwcmlzZV9lbl9jb21wdGVfb2ZfanNvbyAocHJpc2VfZW5fY29tcHRlIDogcHJpc2VfZW5fY29tcHRlIEpzLnQpXG4gIDogUHJpc2VFbkNvbXB0ZS50ID1cbiAgbWF0Y2ggcHJpc2VfZW5fY29tcHRlIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiQ29tcGxldGVcIiAtPiBQcmlzZUVuQ29tcHRlLkNvbXBsZXRlICgpXG4gIHwgXCJQYXJ0YWdlZVwiIC0+IFByaXNlRW5Db21wdGUuUGFydGFnZWUgKClcbiAgfCBcIlplcm9cIiAtPiBQcmlzZUVuQ29tcHRlLlplcm8gKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1ByaXNlRW5Db21wdGUudCdcIiBjb25zKVxuXG5cbmNsYXNzIHR5cGUgdmVyc2VtZW50X2FsbG9jYXRpb25zID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiTm9ybWFsXCJcbiAgICAgICAgLSBcIkFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXhcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCB2ZXJzZW1lbnRfYWxsb2NhdGlvbnNfdG9fanNvb1xuICA6IFZlcnNlbWVudEFsbG9jYXRpb25zLnQgLT4gdmVyc2VtZW50X2FsbG9jYXRpb25zIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IE5vcm1hbCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIk5vcm1hbFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXggYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCB2ZXJzZW1lbnRfYWxsb2NhdGlvbnNfb2ZfanNvb1xuICAodmVyc2VtZW50X2FsbG9jYXRpb25zIDogdmVyc2VtZW50X2FsbG9jYXRpb25zIEpzLnQpXG4gIDogVmVyc2VtZW50QWxsb2NhdGlvbnMudCA9XG4gIG1hdGNoIHZlcnNlbWVudF9hbGxvY2F0aW9ucyMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIk5vcm1hbFwiIC0+IFZlcnNlbWVudEFsbG9jYXRpb25zLk5vcm1hbCAoKVxuICB8IFwiQWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eFwiIC0+XG4gICAgVmVyc2VtZW50QWxsb2NhdGlvbnMuQWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eCAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnVmVyc2VtZW50QWxsb2NhdGlvbnMudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiUHJlc3RhdGlvbkFjY3VlaWxKZXVuZUVuZmFudFwiXG4gICAgICAgIC0gXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIlxuICAgICAgICAtIFwiQ29tcGxlbWVudEZhbWlsaWFsXCJcbiAgICAgICAgLSBcIkFsbG9jYXRpb25Mb2dlbWVudFwiXG4gICAgICAgIC0gXCJBbGxvY2F0aW9uRWR1Y2F0aW9uRW5mYW50SGFuZGljYXBlXCJcbiAgICAgICAgLSBcIkFsbG9jYXRpb25Tb3V0aWVuRmFtaWxpYWxcIlxuICAgICAgICAtIFwiQWxsb2NhdGlvblJlbnRyZWVTY29sYWlyZVwiXG4gICAgICAgIC0gXCJBbGxvY2F0aW9uSm91cm5hbGllcmVQcmVzZW5jZVBhcmVudGFsZVwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IGVsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc190b19qc29vXG4gIDogRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy50IC0+IGVsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBQcmVzdGF0aW9uQWNjdWVpbEpldW5lRW5mYW50IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiUHJlc3RhdGlvbkFjY3VlaWxKZXVuZUVuZmFudFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEFsbG9jYXRpb25zRmFtaWxpYWxlcyBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IENvbXBsZW1lbnRGYW1pbGlhbCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkNvbXBsZW1lbnRGYW1pbGlhbFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEFsbG9jYXRpb25Mb2dlbWVudCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFsbG9jYXRpb25Mb2dlbWVudFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEFsbG9jYXRpb25FZHVjYXRpb25FbmZhbnRIYW5kaWNhcGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBbGxvY2F0aW9uRWR1Y2F0aW9uRW5mYW50SGFuZGljYXBlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFsbG9jYXRpb25Tb3V0aWVuRmFtaWxpYWxcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBbGxvY2F0aW9uUmVudHJlZVNjb2xhaXJlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWxsb2NhdGlvblJlbnRyZWVTY29sYWlyZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEFsbG9jYXRpb25Kb3VybmFsaWVyZVByZXNlbmNlUGFyZW50YWxlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWxsb2NhdGlvbkpvdXJuYWxpZXJlUHJlc2VuY2VQYXJlbnRhbGVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IGVsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vXG4gIChlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgOiBlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgSnMudClcbiAgOiBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQgPVxuICBtYXRjaCBlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJQcmVzdGF0aW9uQWNjdWVpbEpldW5lRW5mYW50XCIgLT5cbiAgICBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLlByZXN0YXRpb25BY2N1ZWlsSmV1bmVFbmZhbnQgKClcbiAgfCBcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiIC0+XG4gICAgRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy5BbGxvY2F0aW9uc0ZhbWlsaWFsZXMgKClcbiAgfCBcIkNvbXBsZW1lbnRGYW1pbGlhbFwiIC0+XG4gICAgRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy5Db21wbGVtZW50RmFtaWxpYWwgKClcbiAgfCBcIkFsbG9jYXRpb25Mb2dlbWVudFwiIC0+XG4gICAgRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy5BbGxvY2F0aW9uTG9nZW1lbnQgKClcbiAgfCBcIkFsbG9jYXRpb25FZHVjYXRpb25FbmZhbnRIYW5kaWNhcGVcIiAtPlxuICAgIEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuQWxsb2NhdGlvbkVkdWNhdGlvbkVuZmFudEhhbmRpY2FwZSAoKVxuICB8IFwiQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbFwiIC0+XG4gICAgRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy5BbGxvY2F0aW9uU291dGllbkZhbWlsaWFsICgpXG4gIHwgXCJBbGxvY2F0aW9uUmVudHJlZVNjb2xhaXJlXCIgLT5cbiAgICBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLkFsbG9jYXRpb25SZW50cmVlU2NvbGFpcmUgKClcbiAgfCBcIkFsbG9jYXRpb25Kb3VybmFsaWVyZVByZXNlbmNlUGFyZW50YWxlXCIgLT5cbiAgICBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLkFsbG9jYXRpb25Kb3VybmFsaWVyZVByZXNlbmNlUGFyZW50YWxlICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIGNvbGxlY3Rpdml0ZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkd1YWRlbG91cGVcIlxuICAgICAgICAtIFwiR3V5YW5lXCJcbiAgICAgICAgLSBcIk1hcnRpbmlxdWVcIlxuICAgICAgICAtIFwiTGFSZXVuaW9uXCJcbiAgICAgICAgLSBcIlNhaW50QmFydGhlbGVteVwiXG4gICAgICAgIC0gXCJTYWludE1hcnRpblwiXG4gICAgICAgIC0gXCJNZXRyb3BvbGVcIlxuICAgICAgICAtIFwiU2FpbnRQaWVycmVFdE1pcXVlbG9uXCJcbiAgICAgICAgLSBcIk1heW90dGVcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBjb2xsZWN0aXZpdGVfdG9fanNvbyA6IENvbGxlY3Rpdml0ZS50IC0+IGNvbGxlY3Rpdml0ZSBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBHdWFkZWxvdXBlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiR3VhZGVsb3VwZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEd1eWFuZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkd1eWFuZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IE1hcnRpbmlxdWUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJNYXJ0aW5pcXVlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgTGFSZXVuaW9uIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTGFSZXVuaW9uXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgU2FpbnRCYXJ0aGVsZW15IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiU2FpbnRCYXJ0aGVsZW15XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgU2FpbnRNYXJ0aW4gYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJTYWludE1hcnRpblwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IE1ldHJvcG9sZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIk1ldHJvcG9sZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFNhaW50UGllcnJlRXRNaXF1ZWxvbiBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlNhaW50UGllcnJlRXRNaXF1ZWxvblwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IE1heW90dGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJNYXlvdHRlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBjb2xsZWN0aXZpdGVfb2ZfanNvbyAoY29sbGVjdGl2aXRlIDogY29sbGVjdGl2aXRlIEpzLnQpXG4gIDogQ29sbGVjdGl2aXRlLnQgPVxuICBtYXRjaCBjb2xsZWN0aXZpdGUjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJHdWFkZWxvdXBlXCIgLT4gQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgKClcbiAgfCBcIkd1eWFuZVwiIC0+IENvbGxlY3Rpdml0ZS5HdXlhbmUgKClcbiAgfCBcIk1hcnRpbmlxdWVcIiAtPiBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSAoKVxuICB8IFwiTGFSZXVuaW9uXCIgLT4gQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiAoKVxuICB8IFwiU2FpbnRCYXJ0aGVsZW15XCIgLT4gQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSAoKVxuICB8IFwiU2FpbnRNYXJ0aW5cIiAtPiBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gKClcbiAgfCBcIk1ldHJvcG9sZVwiIC0+IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgKClcbiAgfCBcIlNhaW50UGllcnJlRXRNaXF1ZWxvblwiIC0+IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gKClcbiAgfCBcIk1heW90dGVcIiAtPiBDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnQ29sbGVjdGl2aXRlLnQnXCIgY29ucylcblxuXG5jbGFzcyB0eXBlIGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDggPVxuICBvYmplY3RcbiAgICBtZXRob2QgYWdlTWluaW11bUFsaW5lYTFMNTIxMzpcbiAgICAgIFJ1bnRpbWVfanNvby5SdW50aW1lLmR1cmF0aW9uIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDhfdG9fanNvb1xuICAgIChhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4IDogQWxsb2NhdGlvbkZhbWlsaWFsZXNBdnJpbDIwMDgudClcbiAgICA6IGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDggSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgYWdlTWluaW11bUFsaW5lYTFMNTIxMyA9XG4gICAgICAgIGR1cmF0aW9uX3RvX2pzb28gYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOC5hZ2VfbWluaW11bV9hbGluZWFfMV9sNTIxXzNcbiAgICAgIGVuZFxuICBsZXQgYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOF9vZl9qc29vXG4gICAgKGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDggOiBhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4IEpzLnQpIDpcbiAgICBBbGxvY2F0aW9uRmFtaWxpYWxlc0F2cmlsMjAwOC50ID1cbiAgICB7XG4gICAgICBhZ2VfbWluaW11bV9hbGluZWFfMV9sNTIxXzMgPVxuICAgICAgICBkdXJhdGlvbl9vZl9qc29vXG4gICAgICAgICAgYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOCMjLmFnZU1pbmltdW1BbGluZWExTDUyMTNcbiAgICB9XG5cbmNsYXNzIHR5cGUgYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyA9XG4gIG9iamVjdCBtZXRob2QgbW9udGFudFZlcnNlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc190b19qc29vIChhbGxvY2F0aW9uc19mYW1pbGlhbGVzXG4gICAgOiBBbGxvY2F0aW9uc0ZhbWlsaWFsZXMudCkgOiBhbGxvY2F0aW9uc19mYW1pbGlhbGVzIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG1vbnRhbnRWZXJzZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBhbGxvY2F0aW9uc19mYW1pbGlhbGVzLm1vbnRhbnRfdmVyc2VcbiAgICAgIGVuZFxuICBsZXQgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vXG4gICAgKGFsbG9jYXRpb25zX2ZhbWlsaWFsZXMgOiBhbGxvY2F0aW9uc19mYW1pbGlhbGVzIEpzLnQpIDpcbiAgICBBbGxvY2F0aW9uc0ZhbWlsaWFsZXMudCA9XG4gICAge1xuICAgICAgbW9udGFudF92ZXJzZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBhbGxvY2F0aW9uc19mYW1pbGlhbGVzIyMubW9udGFudFZlcnNlXG4gICAgfVxuXG5jbGFzcyB0eXBlIHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYSA9XG4gIG9iamVjdCBtZXRob2QgZXN0SW5mZXJpZXVyT3VFZ2FsOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV90b19qc29vXG4gICAgKHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYVxuICAgIDogVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQS50KVxuICAgIDogdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGVzdEluZmVyaWV1ck91RWdhbCA9XG4gICAgICAgIEpzLmJvb2wgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hLmVzdF9pbmZlcmlldXJfb3VfZWdhbFxuICAgICAgZW5kXG4gIGxldCB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2Ffb2ZfanNvb1xuICAgICh2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FcbiAgICAgIDogdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hIEpzLnQpIDpcbiAgICBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBLnQgPVxuICAgIHtcbiAgICAgIGVzdF9pbmZlcmlldXJfb3VfZWdhbCA9XG4gICAgICAgIEpzLnRvX2Jvb2wgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hIyMuZXN0SW5mZXJpZXVyT3VFZ2FsXG4gICAgfVxuXG5jbGFzcyB0eXBlIHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EgPVxuICBvYmplY3QgbWV0aG9kIGVzdFN1cGVyaWV1cjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX3RvX2pzb28gKHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FcbiAgICA6IFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckEudCkgOiB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGVzdFN1cGVyaWV1ciA9IEpzLmJvb2wgdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYS5lc3Rfc3VwZXJpZXVyXG4gICAgICBlbmRcbiAgbGV0IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2Ffb2ZfanNvb1xuICAgICh2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hIDogdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYSBKcy50KSA6XG4gICAgVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS50ID1cbiAgICB7ZXN0X3N1cGVyaWV1ciA9IEpzLnRvX2Jvb2wgdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYSMjLmVzdFN1cGVyaWV1clxuICAgIH1cblxuY2xhc3MgdHlwZSBzbWljID1cbiAgb2JqZWN0IG1ldGhvZCBicnV0SG9yYWlyZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IHNtaWNfdG9fanNvbyAoc21pYyA6IFNtaWMudCkgOiBzbWljIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGJydXRIb3JhaXJlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IHNtaWMuYnJ1dF9ob3JhaXJlXG4gICAgICBlbmRcbiAgbGV0IHNtaWNfb2ZfanNvbyAoc21pYyA6IHNtaWMgSnMudCkgOiBTbWljLnQgPVxuICAgIHtcbiAgICAgIGJydXRfaG9yYWlyZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBzbWljIyMuYnJ1dEhvcmFpcmVcbiAgICB9XG5cbmNsYXNzIHR5cGUgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyA9XG4gIG9iamVjdCBtZXRob2QgbW9udGFudDogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfdG9fanNvb1xuICAgIChiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzXG4gICAgOiBCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLnQpXG4gICAgOiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG1vbnRhbnQgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy5tb250YW50XG4gICAgICBlbmRcbiAgbGV0IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfb2ZfanNvb1xuICAgIChiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzXG4gICAgICA6IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgSnMudCkgOlxuICAgIEJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXMudCA9XG4gICAge1xuICAgICAgbW9udGFudCA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzIyMubW9udGFudFxuICAgIH1cblxuY2xhc3MgdHlwZSBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyA9XG4gIG9iamVjdCBtZXRob2QgaU1vbnRhbnRWZXJzZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX3RvX2pzb29cbiAgICAoaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgOiBJbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXMudClcbiAgICA6IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGlNb250YW50VmVyc2UgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMuaV9tb250YW50X3ZlcnNlXG4gICAgICBlbmRcbiAgbGV0IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX29mX2pzb29cbiAgICAoaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcbiAgICAgIDogaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgSnMudCkgOlxuICAgIEludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlcy50ID1cbiAgICB7XG4gICAgICBpX21vbnRhbnRfdmVyc2UgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMjIy5pTW9udGFudFZlcnNlXG4gICAgfVxuXG5jbGFzcyB0eXBlIGVuZmFudF9lbnRyZWUgPVxuICBvYmplY3RcbiAgICBtZXRob2QgZElkZW50aWZpYW50OiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkUmVtdW5lcmF0aW9uTWVuc3VlbGxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGREYXRlRGVOYWlzc2FuY2U6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZFByaXNlRW5DaGFyZ2U6IHByaXNlX2VuX2NoYXJnZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZEFEZWphT3V2ZXJ0RHJvaXRBdXhBbGxvY2F0aW9uc0ZhbWlsaWFsZXM6XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkQmVuZWZpY2llVGl0cmVQZXJzb25uZWxBaWRlUGVyc29ubmVsbGVMb2dlbWVudDpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgZW5mYW50X2VudHJlZV90b19qc29vIChlbmZhbnRfZW50cmVlIDogRW5mYW50RW50cmVlLnQpXG4gICAgOiBlbmZhbnRfZW50cmVlIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGRJZGVudGlmaWFudCA9IGludGVnZXJfdG9faW50IGVuZmFudF9lbnRyZWUuZF9pZGVudGlmaWFudFxuICAgICAgdmFsIGRSZW11bmVyYXRpb25NZW5zdWVsbGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgZW5mYW50X2VudHJlZS5kX3JlbXVuZXJhdGlvbl9tZW5zdWVsbGVcbiAgICAgIHZhbCBkRGF0ZURlTmFpc3NhbmNlID0gZGF0ZV90b19qc29vIGVuZmFudF9lbnRyZWUuZF9kYXRlX2RlX25haXNzYW5jZVxuICAgICAgdmFsIGRQcmlzZUVuQ2hhcmdlID1cbiAgICAgICAgcHJpc2VfZW5fY2hhcmdlX3RvX2pzb28gZW5mYW50X2VudHJlZS5kX3ByaXNlX2VuX2NoYXJnZVxuICAgICAgdmFsIGRBRGVqYU91dmVydERyb2l0QXV4QWxsb2NhdGlvbnNGYW1pbGlhbGVzID1cbiAgICAgICAgSnMuYm9vbCBlbmZhbnRfZW50cmVlLmRfYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICAgICAgdmFsIGRCZW5lZmljaWVUaXRyZVBlcnNvbm5lbEFpZGVQZXJzb25uZWxsZUxvZ2VtZW50ID1cbiAgICAgICAgSnMuYm9vbCBlbmZhbnRfZW50cmVlLmRfYmVuZWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50XG4gICAgICBlbmRcbiAgbGV0IGVuZmFudF9lbnRyZWVfb2ZfanNvbyAoZW5mYW50X2VudHJlZSA6IGVuZmFudF9lbnRyZWUgSnMudCkgOlxuICAgIEVuZmFudEVudHJlZS50ID1cbiAgICB7XG4gICAgICBkX2lkZW50aWZpYW50ID0gaW50ZWdlcl9vZl9pbnQgZW5mYW50X2VudHJlZSMjLmRJZGVudGlmaWFudDtcbiAgICAgIGRfcmVtdW5lcmF0aW9uX21lbnN1ZWxsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBlbmZhbnRfZW50cmVlIyMuZFJlbXVuZXJhdGlvbk1lbnN1ZWxsZTtcbiAgICAgIGRfZGF0ZV9kZV9uYWlzc2FuY2UgPSBkYXRlX29mX2pzb28gZW5mYW50X2VudHJlZSMjLmREYXRlRGVOYWlzc2FuY2U7XG4gICAgICBkX3ByaXNlX2VuX2NoYXJnZSA9XG4gICAgICAgIHByaXNlX2VuX2NoYXJnZV9vZl9qc29vIGVuZmFudF9lbnRyZWUjIy5kUHJpc2VFbkNoYXJnZTtcbiAgICAgIGRfYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyA9XG4gICAgICAgIEpzLnRvX2Jvb2wgZW5mYW50X2VudHJlZSMjLmRBRGVqYU91dmVydERyb2l0QXV4QWxsb2NhdGlvbnNGYW1pbGlhbGVzO1xuICAgICAgZF9iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQgPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgZW5mYW50X2VudHJlZSMjLmRCZW5lZmljaWVUaXRyZVBlcnNvbm5lbEFpZGVQZXJzb25uZWxsZUxvZ2VtZW50XG4gICAgfVxuXG5jbGFzcyB0eXBlIGVuZmFudCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBpZGVudGlmaWFudDogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgb2JsaWdhdGlvblNjb2xhaXJlOlxuICAgICAgc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlbXVuZXJhdGlvbk1lbnN1ZWxsZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlRGVOYWlzc2FuY2U6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcHJpc2VFbkNoYXJnZTogcHJpc2VfZW5fY2hhcmdlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhRGVqYU91dmVydERyb2l0QXV4QWxsb2NhdGlvbnNGYW1pbGlhbGVzOlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYmVuZWZpY2llVGl0cmVQZXJzb25uZWxBaWRlUGVyc29ubmVsbGVMb2dlbWVudDpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgZW5mYW50X3RvX2pzb28gKGVuZmFudCA6IEVuZmFudC50KSA6IGVuZmFudCBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBpZGVudGlmaWFudCA9IGludGVnZXJfdG9faW50IGVuZmFudC5pZGVudGlmaWFudFxuICAgICAgdmFsIG9ibGlnYXRpb25TY29sYWlyZSA9XG4gICAgICAgIHNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlX3RvX2pzb28gZW5mYW50Lm9ibGlnYXRpb25fc2NvbGFpcmVcbiAgICAgIHZhbCByZW11bmVyYXRpb25NZW5zdWVsbGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgZW5mYW50LnJlbXVuZXJhdGlvbl9tZW5zdWVsbGVcbiAgICAgIHZhbCBkYXRlRGVOYWlzc2FuY2UgPSBkYXRlX3RvX2pzb28gZW5mYW50LmRhdGVfZGVfbmFpc3NhbmNlXG4gICAgICB2YWwgcHJpc2VFbkNoYXJnZSA9IHByaXNlX2VuX2NoYXJnZV90b19qc29vIGVuZmFudC5wcmlzZV9lbl9jaGFyZ2VcbiAgICAgIHZhbCBhRGVqYU91dmVydERyb2l0QXV4QWxsb2NhdGlvbnNGYW1pbGlhbGVzID1cbiAgICAgICAgSnMuYm9vbCBlbmZhbnQuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICAgICAgdmFsIGJlbmVmaWNpZVRpdHJlUGVyc29ubmVsQWlkZVBlcnNvbm5lbGxlTG9nZW1lbnQgPVxuICAgICAgICBKcy5ib29sIGVuZmFudC5iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgICAgIGVuZFxuICBsZXQgZW5mYW50X29mX2pzb28gKGVuZmFudCA6IGVuZmFudCBKcy50KSA6IEVuZmFudC50ID1cbiAgICB7XG4gICAgICBpZGVudGlmaWFudCA9IGludGVnZXJfb2ZfaW50IGVuZmFudCMjLmlkZW50aWZpYW50O1xuICAgICAgb2JsaWdhdGlvbl9zY29sYWlyZSA9XG4gICAgICAgIHNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlX29mX2pzb28gZW5mYW50IyMub2JsaWdhdGlvblNjb2xhaXJlO1xuICAgICAgcmVtdW5lcmF0aW9uX21lbnN1ZWxsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBlbmZhbnQjIy5yZW11bmVyYXRpb25NZW5zdWVsbGU7XG4gICAgICBkYXRlX2RlX25haXNzYW5jZSA9IGRhdGVfb2ZfanNvbyBlbmZhbnQjIy5kYXRlRGVOYWlzc2FuY2U7XG4gICAgICBwcmlzZV9lbl9jaGFyZ2UgPSBwcmlzZV9lbl9jaGFyZ2Vfb2ZfanNvbyBlbmZhbnQjIy5wcmlzZUVuQ2hhcmdlO1xuICAgICAgYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyA9XG4gICAgICAgIEpzLnRvX2Jvb2wgZW5mYW50IyMuYURlamFPdXZlcnREcm9pdEF1eEFsbG9jYXRpb25zRmFtaWxpYWxlcztcbiAgICAgIGJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudCA9XG4gICAgICAgIEpzLnRvX2Jvb2wgZW5mYW50IyMuYmVuZWZpY2llVGl0cmVQZXJzb25uZWxBaWRlUGVyc29ubmVsbGVMb2dlbWVudFxuICAgIH1cblxuY2xhc3MgdHlwZSBlbmZhbnRfbGVfcGx1c19hZ2UgPVxuICBvYmplY3QgbWV0aG9kIGxlUGx1c0FnZTogZW5mYW50IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGVuZmFudF9sZV9wbHVzX2FnZV90b19qc29vIChlbmZhbnRfbGVfcGx1c19hZ2UgOiBFbmZhbnRMZVBsdXNBZ2UudClcbiAgICA6IGVuZmFudF9sZV9wbHVzX2FnZSBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBsZVBsdXNBZ2UgPSBlbmZhbnRfdG9fanNvbyBlbmZhbnRfbGVfcGx1c19hZ2UubGVfcGx1c19hZ2VcbiAgICAgIGVuZFxuICBsZXQgZW5mYW50X2xlX3BsdXNfYWdlX29mX2pzb29cbiAgICAoZW5mYW50X2xlX3BsdXNfYWdlIDogZW5mYW50X2xlX3BsdXNfYWdlIEpzLnQpIDogRW5mYW50TGVQbHVzQWdlLnQgPVxuICAgIHtsZV9wbHVzX2FnZSA9IGVuZmFudF9vZl9qc29vIGVuZmFudF9sZV9wbHVzX2FnZSMjLmxlUGx1c0FnZVxuICAgIH1cblxuY2xhc3MgdHlwZSBwcmVzdGF0aW9uc19mYW1pbGlhbGVzID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGRyb2l0T3V2ZXJ0OlxuICAgICAgKHVuaXQsICBlbmZhbnQgSnMudCAtPiBib29sIEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICAgIG1ldGhvZCBjb25kaXRpb25zSG9yc0FnZTpcbiAgICAgICh1bml0LCAgZW5mYW50IEpzLnQgLT4gYm9vbCBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgICBtZXRob2QgYWdlTDUxMjMyOiBSdW50aW1lX2pzb28uUnVudGltZS5kdXJhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVnaW1lT3V0cmVNZXJMNzUxMTogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX3RvX2pzb28gKHByZXN0YXRpb25zX2ZhbWlsaWFsZXNcbiAgICA6IFByZXN0YXRpb25zRmFtaWxpYWxlcy50KSA6IHByZXN0YXRpb25zX2ZhbWlsaWFsZXMgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICBtZXRob2QgZHJvaXRPdXZlcnQgPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IGVuZmFudCBKcy50KSAtPlxuICAgICAgICAgIEpzLmJvb2wgKHByZXN0YXRpb25zX2ZhbWlsaWFsZXMuZHJvaXRfb3V2ZXJ0IChlbmZhbnRfb2ZfanNvb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb25faW5wdXQwKSkpXG4gICAgICBtZXRob2QgY29uZGl0aW9uc0hvcnNBZ2UgPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IGVuZmFudCBKcy50KSAtPlxuICAgICAgICAgIEpzLmJvb2wgKHByZXN0YXRpb25zX2ZhbWlsaWFsZXMuY29uZGl0aW9uc19ob3JzX2FnZSAoZW5mYW50X29mX2pzb29cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbl9pbnB1dDApKSlcbiAgICAgIHZhbCBhZ2VMNTEyMzIgPSBkdXJhdGlvbl90b19qc29vIHByZXN0YXRpb25zX2ZhbWlsaWFsZXMuYWdlX2w1MTJfM18yXG4gICAgICB2YWwgcmVnaW1lT3V0cmVNZXJMNzUxMSA9XG4gICAgICAgIEpzLmJvb2wgcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy5yZWdpbWVfb3V0cmVfbWVyX2w3NTFfMVxuICAgICAgZW5kXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX29mX2pzb29cbiAgICAocHJlc3RhdGlvbnNfZmFtaWxpYWxlcyA6IHByZXN0YXRpb25zX2ZhbWlsaWFsZXMgSnMudCkgOlxuICAgIFByZXN0YXRpb25zRmFtaWxpYWxlcy50ID1cbiAgICB7XG4gICAgICBkcm9pdF9vdXZlcnQgPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAnZHJvaXRfb3V2ZXJ0JyB0cmFuc2xhdGlvbiBpc24ndCB5ZXQgc3VwcG9ydGVkLi4uXCI7XG4gICAgICBjb25kaXRpb25zX2hvcnNfYWdlID0gZmFpbHdpdGggXCJUaGUgZnVuY3Rpb24gJ2NvbmRpdGlvbnNfaG9yc19hZ2UnIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIjtcbiAgICAgIGFnZV9sNTEyXzNfMiA9IGR1cmF0aW9uX29mX2pzb28gcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyMjLmFnZUw1MTIzMjtcbiAgICAgIHJlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xID1cbiAgICAgICAgSnMudG9fYm9vbCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzIyMucmVnaW1lT3V0cmVNZXJMNzUxMVxuICAgIH1cblxuY2xhc3MgdHlwZSBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHByZXN0YXRpb25Db3VyYW50ZUluOlxuICAgICAgZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNpZGVuY2VJbjogY29sbGVjdGl2aXRlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW5fdG9fanNvbyAocHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pblxuICAgIDogUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4udCkgOiBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGRhdGVDb3VyYW50ZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIHByZXN0YXRpb25Db3VyYW50ZUluID1cbiAgICAgICAgZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX3RvX2pzb28gcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbi5wcmVzdGF0aW9uX2NvdXJhbnRlX2luXG4gICAgICB2YWwgcmVzaWRlbmNlSW4gPVxuICAgICAgICBjb2xsZWN0aXZpdGVfdG9fanNvbyBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luLnJlc2lkZW5jZV9pblxuICAgICAgZW5kXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luX29mX2pzb29cbiAgICAocHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbiA6IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4gSnMudCkgOlxuICAgIFByZXN0YXRpb25zRmFtaWxpYWxlc0luLnQgPVxuICAgIHtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb28gcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbiMjLmRhdGVDb3VyYW50ZUluO1xuICAgICAgcHJlc3RhdGlvbl9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGVsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vXG4gICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbiMjLnByZXN0YXRpb25Db3VyYW50ZUluO1xuICAgICAgcmVzaWRlbmNlX2luID1cbiAgICAgICAgY29sbGVjdGl2aXRlX29mX2pzb28gcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbiMjLnJlc2lkZW5jZUluXG4gICAgfVxuXG5jbGFzcyB0eXBlIGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDhfaW4gPVxub2JqZWN0IGVuZFxubGV0IGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDhfaW5fdG9fanNvbyAoXyA6IEFsbG9jYXRpb25GYW1pbGlhbGVzQXZyaWwyMDA4SW4udCkgOiBhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4X2luIEpzLnQgPSBvYmplY3QlanMgZW5kXG5sZXQgYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOF9pbl9vZl9qc29vIChfIDogYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOF9pbiBKcy50KSA6IEFsbG9jYXRpb25GYW1pbGlhbGVzQXZyaWwyMDA4SW4udCA9ICgpXG5jbGFzcyB0eXBlIGVuZmFudF9sZV9wbHVzX2FnZV9pbiA9XG4gIG9iamVjdCBtZXRob2QgZW5mYW50c0luOiBlbmZhbnQgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBlbmZhbnRfbGVfcGx1c19hZ2VfaW5fdG9fanNvbyAoZW5mYW50X2xlX3BsdXNfYWdlX2luXG4gICAgOiBFbmZhbnRMZVBsdXNBZ2VJbi50KSA6IGVuZmFudF9sZV9wbHVzX2FnZV9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBlbmZhbnRzSW4gPVxuICAgICAgICBKcy5hcnJheSBAQCBBcnJheS5tYXAgKGZ1biB4IC0+IGVuZmFudF90b19qc29vIHgpIGVuZmFudF9sZV9wbHVzX2FnZV9pbi5lbmZhbnRzX2luXG4gICAgICBlbmRcbiAgbGV0IGVuZmFudF9sZV9wbHVzX2FnZV9pbl9vZl9qc29vXG4gICAgKGVuZmFudF9sZV9wbHVzX2FnZV9pbiA6IGVuZmFudF9sZV9wbHVzX2FnZV9pbiBKcy50KSA6XG4gICAgRW5mYW50TGVQbHVzQWdlSW4udCA9XG4gICAge1xuICAgICAgZW5mYW50c19pbiA9XG4gICAgICAgIEFycmF5Lm1hcCAoZnVuIHggLT4gZW5mYW50X29mX2pzb28geCkgQEAgSnMudG9fYXJyYXlcbiAgICAgICAgICBlbmZhbnRfbGVfcGx1c19hZ2VfaW4jIy5lbmZhbnRzSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBwZXJzb25uZUNoYXJnZUVmZmVjdGl2ZVBlcm1hbmVudGVFc3RQYXJlbnRJbjpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHBlcnNvbm5lQ2hhcmdlRWZmZWN0aXZlUGVybWFuZW50ZVJlbXBsaXRUaXRyZUlJbjpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc3NvdXJjZXNNZW5hZ2VJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNpZGVuY2VJbjogY29sbGVjdGl2aXRlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBlbmZhbnRzQUNoYXJnZUluOiBlbmZhbnQgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYXZhaXRFbmZhbnRBQ2hhcmdlQXZhbnQxZXJKYW52aWVyMjAxMkluOlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX3RvX2pzb28gKGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5cbiAgICA6IEFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnQpIDogYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBwZXJzb25uZUNoYXJnZUVmZmVjdGl2ZVBlcm1hbmVudGVFc3RQYXJlbnRJbiA9XG4gICAgICAgIEpzLmJvb2wgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfZXN0X3BhcmVudF9pblxuICAgICAgdmFsIHBlcnNvbm5lQ2hhcmdlRWZmZWN0aXZlUGVybWFuZW50ZVJlbXBsaXRUaXRyZUlJbiA9XG4gICAgICAgIEpzLmJvb2wgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfcmVtcGxpdF90aXRyZV9JX2luXG4gICAgICB2YWwgcmVzc291cmNlc01lbmFnZUluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4ucmVzc291cmNlc19tZW5hZ2VfaW5cbiAgICAgIHZhbCByZXNpZGVuY2VJbiA9XG4gICAgICAgIGNvbGxlY3Rpdml0ZV90b19qc29vIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4ucmVzaWRlbmNlX2luXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5kYXRlX2NvdXJhbnRlX2luXG4gICAgICB2YWwgZW5mYW50c0FDaGFyZ2VJbiA9XG4gICAgICAgIEpzLmFycmF5IEBAIEFycmF5Lm1hcCAoZnVuIHggLT4gZW5mYW50X3RvX2pzb28geCkgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5lbmZhbnRzX2FfY2hhcmdlX2luXG4gICAgICB2YWwgYXZhaXRFbmZhbnRBQ2hhcmdlQXZhbnQxZXJKYW52aWVyMjAxMkluID1cbiAgICAgICAgSnMuYm9vbCBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLmF2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyX2luXG4gICAgICBlbmRcbiAgbGV0IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5fb2ZfanNvb1xuICAgIChhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIDogYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiBKcy50KSA6XG4gICAgQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4udCA9XG4gICAge1xuICAgICAgcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX2VzdF9wYXJlbnRfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pblxuICAgICAgICAgICMjLnBlcnNvbm5lQ2hhcmdlRWZmZWN0aXZlUGVybWFuZW50ZUVzdFBhcmVudEluO1xuICAgICAgcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX3JlbXBsaXRfdGl0cmVfSV9pbiA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luXG4gICAgICAgICAgIyMucGVyc29ubmVDaGFyZ2VFZmZlY3RpdmVQZXJtYW5lbnRlUmVtcGxpdFRpdHJlSUluO1xuICAgICAgcmVzc291cmNlc19tZW5hZ2VfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiMjLnJlc3NvdXJjZXNNZW5hZ2VJbjtcbiAgICAgIHJlc2lkZW5jZV9pbiA9XG4gICAgICAgIGNvbGxlY3Rpdml0ZV9vZl9qc29vIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4jIy5yZXNpZGVuY2VJbjtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb28gYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiMjLmRhdGVDb3VyYW50ZUluO1xuICAgICAgZW5mYW50c19hX2NoYXJnZV9pbiA9XG4gICAgICAgIEFycmF5Lm1hcCAoZnVuIHggLT4gZW5mYW50X29mX2pzb28geCkgQEAgSnMudG9fYXJyYXlcbiAgICAgICAgICBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIyMuZW5mYW50c0FDaGFyZ2VJbjtcbiAgICAgIGF2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyX2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4jIy5hdmFpdEVuZmFudEFDaGFyZ2VBdmFudDFlckphbnZpZXIyMDEySW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGRhdGVOYWlzc2FuY2VJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhbm5lZXNJbjogUnVudGltZV9qc29vLlJ1bnRpbWUuZHVyYXRpb24gSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luX3RvX2pzb29cbiAgICAodmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luXG4gICAgOiBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBSW4udClcbiAgICA6IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBkYXRlTmFpc3NhbmNlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luLmRhdGVfbmFpc3NhbmNlX2luXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCBhbm5lZXNJbiA9XG4gICAgICAgIGR1cmF0aW9uX3RvX2pzb28gdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luLmFubmVlc19pblxuICAgICAgZW5kXG4gIGxldCB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW5fb2ZfanNvb1xuICAgICh2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW5cbiAgICAgIDogdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luIEpzLnQpIDpcbiAgICBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBSW4udCA9XG4gICAge1xuICAgICAgZGF0ZV9uYWlzc2FuY2VfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4jIy5kYXRlTmFpc3NhbmNlSW47XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vIHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbiMjLmRhdGVDb3VyYW50ZUluO1xuICAgICAgYW5uZWVzX2luID1cbiAgICAgICAgZHVyYXRpb25fb2ZfanNvbyB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4jIy5hbm5lZXNJblxuICAgIH1cblxuY2xhc3MgdHlwZSB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGRhdGVOYWlzc2FuY2VJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhbm5lZXNJbjogUnVudGltZV9qc29vLlJ1bnRpbWUuZHVyYXRpb24gSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbl90b19qc29vXG4gICAgKHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4gOiBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4udClcbiAgICA6IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZGF0ZU5haXNzYW5jZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4uZGF0ZV9uYWlzc2FuY2VfaW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCBhbm5lZXNJbiA9XG4gICAgICAgIGR1cmF0aW9uX3RvX2pzb28gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbi5hbm5lZXNfaW5cbiAgICAgIGVuZFxuICBsZXQgdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbl9vZl9qc29vXG4gICAgKHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4gOiB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luIEpzLnQpIDpcbiAgICBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4udCA9XG4gICAge1xuICAgICAgZGF0ZV9uYWlzc2FuY2VfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb28gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbiMjLmRhdGVOYWlzc2FuY2VJbjtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb28gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbiMjLmRhdGVDb3VyYW50ZUluO1xuICAgICAgYW5uZWVzX2luID0gZHVyYXRpb25fb2ZfanNvbyB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luIyMuYW5uZWVzSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgc21pY19pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNpZGVuY2VJbjogY29sbGVjdGl2aXRlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IHNtaWNfaW5fdG9fanNvbyAoc21pY19pbiA6IFNtaWNJbi50KSA6IHNtaWNfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPSBkYXRlX3RvX2pzb28gc21pY19pbi5kYXRlX2NvdXJhbnRlX2luXG4gICAgICB2YWwgcmVzaWRlbmNlSW4gPSBjb2xsZWN0aXZpdGVfdG9fanNvbyBzbWljX2luLnJlc2lkZW5jZV9pblxuICAgICAgZW5kXG4gIGxldCBzbWljX2luX29mX2pzb28gKHNtaWNfaW4gOiBzbWljX2luIEpzLnQpIDogU21pY0luLnQgPVxuICAgIHtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPSBkYXRlX29mX2pzb28gc21pY19pbiMjLmRhdGVDb3VyYW50ZUluO1xuICAgICAgcmVzaWRlbmNlX2luID0gY29sbGVjdGl2aXRlX29mX2pzb28gc21pY19pbiMjLnJlc2lkZW5jZUluXG4gICAgfVxuXG5jbGFzcyB0eXBlIGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gPVxuICBvYmplY3QgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbl90b19qc29vXG4gICAgKGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5cbiAgICA6IEJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi50KVxuICAgIDogYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIGVuZFxuICBsZXQgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbl9vZl9qc29vXG4gICAgKGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5cbiAgICAgIDogYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiBKcy50KSA6XG4gICAgQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnQgPVxuICAgIHtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIyMuZGF0ZUNvdXJhbnRlSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgaURhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGlFbmZhbnRzSW46IGVuZmFudF9lbnRyZWUgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgaVJlc3NvdXJjZXNNZW5hZ2VJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBpUmVzaWRlbmNlSW46IGNvbGxlY3Rpdml0ZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgaVBlcnNvbm5lQ2hhcmdlRWZmZWN0aXZlUGVybWFuZW50ZUVzdFBhcmVudEluOlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgaVBlcnNvbm5lQ2hhcmdlRWZmZWN0aXZlUGVybWFuZW50ZVJlbXBsaXRUaXRyZUlJbjpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGlBdmFpdEVuZmFudEFDaGFyZ2VBdmFudDFlckphbnZpZXIyMDEySW46XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX3RvX2pzb29cbiAgICAoaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5cbiAgICA6IEludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnQpXG4gICAgOiBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBpRGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uaV9kYXRlX2NvdXJhbnRlX2luXG4gICAgICB2YWwgaUVuZmFudHNJbiA9XG4gICAgICAgIEpzLmFycmF5IEBAIEFycmF5Lm1hcCAoZnVuIHggLT4gZW5mYW50X2VudHJlZV90b19qc29vIHgpIGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLmlfZW5mYW50c19pblxuICAgICAgdmFsIGlSZXNzb3VyY2VzTWVuYWdlSW4gPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uaV9yZXNzb3VyY2VzX21lbmFnZV9pblxuICAgICAgdmFsIGlSZXNpZGVuY2VJbiA9XG4gICAgICAgIGNvbGxlY3Rpdml0ZV90b19qc29vIGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLmlfcmVzaWRlbmNlX2luXG4gICAgICB2YWwgaVBlcnNvbm5lQ2hhcmdlRWZmZWN0aXZlUGVybWFuZW50ZUVzdFBhcmVudEluID1cbiAgICAgICAgSnMuYm9vbCBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5pX3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9lc3RfcGFyZW50X2luXG4gICAgICB2YWwgaVBlcnNvbm5lQ2hhcmdlRWZmZWN0aXZlUGVybWFuZW50ZVJlbXBsaXRUaXRyZUlJbiA9XG4gICAgICAgIEpzLmJvb2wgaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uaV9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfcmVtcGxpdF90aXRyZV9JX2luXG4gICAgICB2YWwgaUF2YWl0RW5mYW50QUNoYXJnZUF2YW50MWVySmFudmllcjIwMTJJbiA9XG4gICAgICAgIEpzLmJvb2wgaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uaV9hdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl9pblxuICAgICAgZW5kXG4gIGxldCBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbl9vZl9qc29vXG4gICAgKGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luXG4gICAgICA6IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQpIDpcbiAgICBJbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi50ID1cbiAgICB7XG4gICAgICBpX2RhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb28gaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4jIy5pRGF0ZUNvdXJhbnRlSW47XG4gICAgICBpX2VuZmFudHNfaW4gPVxuICAgICAgICBBcnJheS5tYXAgKGZ1biB4IC0+IGVuZmFudF9lbnRyZWVfb2ZfanNvbyB4KSBAQCBKcy50b19hcnJheVxuICAgICAgICAgIGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIyMuaUVuZmFudHNJbjtcbiAgICAgIGlfcmVzc291cmNlc19tZW5hZ2VfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4jIy5pUmVzc291cmNlc01lbmFnZUluO1xuICAgICAgaV9yZXNpZGVuY2VfaW4gPVxuICAgICAgICBjb2xsZWN0aXZpdGVfb2ZfanNvb1xuICAgICAgICAgIGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIyMuaVJlc2lkZW5jZUluO1xuICAgICAgaV9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfZXN0X3BhcmVudF9pbiA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pblxuICAgICAgICAgICMjLmlQZXJzb25uZUNoYXJnZUVmZmVjdGl2ZVBlcm1hbmVudGVFc3RQYXJlbnRJbjtcbiAgICAgIGlfcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX3JlbXBsaXRfdGl0cmVfSV9pbiA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pblxuICAgICAgICAgICMjLmlQZXJzb25uZUNoYXJnZUVmZmVjdGl2ZVBlcm1hbmVudGVSZW1wbGl0VGl0cmVJSW47XG4gICAgICBpX2F2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyX2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luXG4gICAgICAgICAgIyMuaUF2YWl0RW5mYW50QUNoYXJnZUF2YW50MWVySmFudmllcjIwMTJJblxuICAgIH1cblxuXG5cblxubGV0IGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDhcbiAgKGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDhfaW4gOiBhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4X2luIEpzLnQpXG4gIDogYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOCBKcy50ID1cbiAgYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOF9pblxuICB8PiBhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4X2luX29mX2pzb29cbiAgfD4gYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOFxuICB8PiBhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4X3RvX2pzb29cblxuXG5sZXQgZW5mYW50X2xlX3BsdXNfYWdlIChlbmZhbnRfbGVfcGx1c19hZ2VfaW4gOiBlbmZhbnRfbGVfcGx1c19hZ2VfaW4gSnMudClcbiAgOiBlbmZhbnRfbGVfcGx1c19hZ2UgSnMudCA9XG4gIGVuZmFudF9sZV9wbHVzX2FnZV9pblxuICB8PiBlbmZhbnRfbGVfcGx1c19hZ2VfaW5fb2ZfanNvb1xuICB8PiBlbmZhbnRfbGVfcGx1c19hZ2VcbiAgfD4gZW5mYW50X2xlX3BsdXNfYWdlX3RvX2pzb29cblxuXG5sZXQgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hXG4gICh2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4gOiB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4gSnMudClcbiAgOiB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2EgSnMudCA9XG4gIHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pblxuICB8PiB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW5fb2ZfanNvb1xuICB8PiB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FcbiAgfD4gdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX3RvX2pzb29cblxuXG5sZXQgdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYVxuICAodmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbiA6IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4gSnMudClcbiAgOiB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hIEpzLnQgPVxuICB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luXG4gIHw+IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW5fb2ZfanNvb1xuICB8PiB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hXG4gIHw+IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfdG9fanNvb1xuXG5cbmxldCBzbWljIChzbWljX2luIDogc21pY19pbiBKcy50KVxuICA6IHNtaWMgSnMudCA9XG4gIHNtaWNfaW4gfD4gc21pY19pbl9vZl9qc29vIHw+IHNtaWMgfD4gc21pY190b19qc29vXG5cblxubGV0IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcbiAgKGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gOiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQpXG4gIDogYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyBKcy50ID1cbiAgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pblxuICB8PiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX29mX2pzb29cbiAgfD4gYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICB8PiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX3RvX2pzb29cblxuXG5sZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc1xuICAocHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbiA6IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4gSnMudClcbiAgOiBwcmVzdGF0aW9uc19mYW1pbGlhbGVzIEpzLnQgPVxuICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luXG4gIHw+IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW5fb2ZfanNvb1xuICB8PiBwcmVzdGF0aW9uc19mYW1pbGlhbGVzXG4gIHw+IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfdG9fanNvb1xuXG5cbmxldCBhbGxvY2F0aW9uc19mYW1pbGlhbGVzXG4gIChhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIDogYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiBKcy50KVxuICA6IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXMgSnMudCA9XG4gIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5cbiAgfD4gYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbl9vZl9qc29vXG4gIHw+IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNcbiAgfD4gYWxsb2NhdGlvbnNfZmFtaWxpYWxlc190b19qc29vXG5cblxubGV0IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzXG4gIChpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiA6IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQpXG4gIDogaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgSnMudCA9XG4gIGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luXG4gIHw+IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX29mX2pzb29cbiAgfD4gaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcbiAgfD4gaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfdG9fanNvb1xuXG5cbmxldCBfID1cbiAgIEpzLmV4cG9ydCBcIkFsbG9jYXRpb25zRmFtaWxpYWxlc0xpYlwiXG4gICAgKG9iamVjdCVqc1xuICAgICAgXG4gICAgICBtZXRob2QgYWxsb2NhdGlvbkZhbWlsaWFsZXNBdnJpbDIwMDggOiAoYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOF9pbiBKcy50IC0+IGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDggSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDhcbiAgICAgIFxuICAgICAgbWV0aG9kIGVuZmFudExlUGx1c0FnZSA6IChlbmZhbnRfbGVfcGx1c19hZ2VfaW4gSnMudCAtPiBlbmZhbnRfbGVfcGx1c19hZ2UgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIGVuZmFudF9sZV9wbHVzX2FnZVxuICAgICAgXG4gICAgICBtZXRob2QgdmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQSA6ICh2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4gSnMudCAtPiB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2EgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYVxuICAgICAgXG4gICAgICBtZXRob2QgdmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQSA6ICh2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luIEpzLnQgLT4gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYSBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYVxuICAgICAgXG4gICAgICBtZXRob2Qgc21pYyA6IChzbWljX2luIEpzLnQgLT4gc21pYyBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgc21pY1xuICAgICAgXG4gICAgICBtZXRob2QgYmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcyA6IChiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQgLT4gYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICAgICAgXG4gICAgICBtZXRob2QgcHJlc3RhdGlvbnNGYW1pbGlhbGVzIDogKHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4gSnMudCAtPiBwcmVzdGF0aW9uc19mYW1pbGlhbGVzIEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayBwcmVzdGF0aW9uc19mYW1pbGlhbGVzXG4gICAgICBcbiAgICAgIG1ldGhvZCBhbGxvY2F0aW9uc0ZhbWlsaWFsZXMgOiAoYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiBKcy50IC0+IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXMgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNcbiAgICAgIFxuICAgICAgbWV0aG9kIGludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlcyA6IChpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiBKcy50IC0+IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzIEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICAgICAgXG4gICAgZW5kKSIsIigqKiBUaGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IHRoZSBDYXRhbGEgY29tcGlsZXIsIGRvIG5vdCBlZGl0ISAqKVxuXG5vcGVuIFJ1bnRpbWVfb2NhbWwuUnVudGltZVxuXG5bQEBAb2NhbWwud2FybmluZyBcIi00LTI2LTI3LTMyLTQxLTQyXCJdXG5cbm1vZHVsZSBUeXBlUHJldCA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBEMzMxXzMyIG9mIHVuaXRcbiAgICB8IEQzMzFfNjNfNjQgb2YgdW5pdFxuICAgIHwgRDMzMV81OV84IG9mIHVuaXRcbiAgICB8IEQzMzFfNzZfMSBvZiB1bml0XG4gICAgfCBBdXRyZSBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX3R5cGVfcHJldCAoeDogVHlwZVByZXQudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJUeXBlUHLDqnRcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgRDMzMV8zMiB4IC0+IChcIkQzMzFfMzJcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgRDMzMV82M182NCB4IC0+IChcIkQzMzFfNjNfNjRcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgRDMzMV81OV84IHggLT4gKFwiRDMzMV81OV84XCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEQzMzFfNzZfMSB4IC0+IChcIkQzMzFfNzZfMVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBdXRyZSB4IC0+IChcIkF1dHJlXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIFRpdHVsYWlyZVByZXQgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgRGVtYW5kZXVyIG9mIHVuaXRcbiAgICB8IFZlbmRldXJRdWFuZERlbWFuZGV1ckFDb250cmF0TG9jYXRpb25BY2Nlc3Npb24gb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF90aXR1bGFpcmVfcHJldCAoeDogVGl0dWxhaXJlUHJldC50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlRpdHVsYWlyZVByw6p0XCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IERlbWFuZGV1ciB4IC0+IChcIkRlbWFuZGV1clwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBWZW5kZXVyUXVhbmREZW1hbmRldXJBQ29udHJhdExvY2F0aW9uQWNjZXNzaW9uIHggLT5cbiAgICAgIChcIlZlbmRldXJRdWFuZERlbWFuZGV1ckFDb250cmF0TG9jYXRpb25BY2Nlc3Npb25cIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNSA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBUcmF2YXV4UG91ckFjcXVpc2l0aW9uRDgzMl8xNV8xIG9mIHVuaXRcbiAgICB8IFRyYXZhdXhTdXJMb2dlbWVudERlamFBY3F1aXNEODMyXzE1XzIgb2YgdW5pdFxuICAgIHwgUGFzRGVUcmF2YXV4IG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfdHlwZV90cmF2YXV4X2xvZ2VtZW50X2Q4MzJfMTUgKHg6IFR5cGVUcmF2YXV4TG9nZW1lbnREODMyMTUudClcbiAgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJUeXBlVHJhdmF1eExvZ2VtZW50RDgzMl8xNVwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBUcmF2YXV4UG91ckFjcXVpc2l0aW9uRDgzMl8xNV8xIHggLT5cbiAgICAgIChcIlRyYXZhdXhQb3VyQWNxdWlzaXRpb25EODMyXzE1XzFcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgVHJhdmF1eFN1ckxvZ2VtZW50RGVqYUFjcXVpc0Q4MzJfMTVfMiB4IC0+XG4gICAgICAoXCJUcmF2YXV4U3VyTG9nZW1lbnREw6lqw6BBY3F1aXNEODMyXzE1XzJcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgUGFzRGVUcmF2YXV4IHggLT4gKFwiUGFzRGVUcmF2YXV4XCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNSA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBPYmplY3RpZkRlY2VuY2VMb2dlbWVudCBvZiB1bml0XG4gICAgfCBQcmV2dURhbnNMaXN0ZVIzMjFfMTUgb2YgdW5pdFxuICAgIHwgQWdyYW5kaXJPdVJlbmRyZUhhYml0YWJsZUQzMzFfNjMgb2YgdW5pdFxuICAgIHwgUGFzRGVUcmF2YXV4IG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfdHlwZV90cmF2YXV4X2xvZ2VtZW50X3I4NDJfNSAoeDogVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LnQpXG4gIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiVHlwZVRyYXZhdXhMb2dlbWVudFI4NDJfNVwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBPYmplY3RpZkRlY2VuY2VMb2dlbWVudCB4IC0+IChcIk9iamVjdGlmRMOpY2VuY2VMb2dlbWVudFwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBQcmV2dURhbnNMaXN0ZVIzMjFfMTUgeCAtPiAoXCJQcsOpdnVEYW5zTGlzdGVSMzIxXzE1XCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFncmFuZGlyT3VSZW5kcmVIYWJpdGFibGVEMzMxXzYzIHggLT5cbiAgICAgIChcIkFncmFuZGlyT3VSZW5kcmVIYWJpdGFibGVEMzMxXzYzXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFBhc0RlVHJhdmF1eCB4IC0+IChcIlBhc0RlVHJhdmF1eFwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBBbWVsaW9yZVBhck9jY3VwYW50ID0gc3RydWN0XG4gdHlwZSB0ID1cbiAgICB8IE91aSBvZiB1bml0XG4gICAgfCBOb24gb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9hbWVsaW9yZV9wYXJfb2NjdXBhbnQgKHg6IEFtZWxpb3JlUGFyT2NjdXBhbnQudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJBbcOpbGlvcsOpUGFyT2NjdXBhbnRcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgT3VpIHggLT4gKFwiT3VpXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IE5vbiB4IC0+IChcIk5vblwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBMaW1pdGVUcmFuY2hlID0gc3RydWN0XG4gdHlwZSB0ID1cbiAgICB8IFJldmVudSBvZiBtb25leVxuICAgIHwgSW5maW5pIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfbGltaXRlX3RyYW5jaGUgKHg6IExpbWl0ZVRyYW5jaGUudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJMaW1pdGVUcmFuY2hlXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IFJldmVudSB4IC0+IChcIlJldmVudVwiLCBlbWJlZF9tb25leSB4KVxuICAgIHwgSW5maW5pIHggLT4gKFwiSW5maW5pXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIExpbWl0ZVRyYW5jaGVEZWNpbWFsID0gc3RydWN0XG4gdHlwZSB0ID1cbiAgICB8IFJldmVudSBvZiBkZWNpbWFsXG4gICAgfCBJbmZpbmkgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9saW1pdGVfdHJhbmNoZV9kZWNpbWFsICh4OiBMaW1pdGVUcmFuY2hlRGVjaW1hbC50KVxuICA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIkxpbWl0ZVRyYW5jaGVEw6ljaW1hbFwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBSZXZlbnUgeCAtPiAoXCJSZXZlbnVcIiwgZW1iZWRfZGVjaW1hbCB4KVxuICAgIHwgSW5maW5pIHggLT4gKFwiSW5maW5pXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIFByZXN0YXRpb25SZWN1ZSA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBBbGxvY2F0aW9uc0ZhbWlsaWFsZXMgb2YgdW5pdFxuICAgIHwgQ29tcGxlbWVudEZhbWlsaWFsIG9mIHVuaXRcbiAgICB8IEFsbG9jYXRpb25KZXVuZUVuZmFudCBvZiB1bml0XG4gICAgfCBBbGxvY2F0aW9uU291dGllbkZhbWlsaWFsIG9mIHVuaXRcbiAgICB8IEFsbG9jYXRpb25Tb3V0aWVuRW5mYW50SGFuZGljYXBlIG9mIHVuaXRcbiAgICB8IEFsbG9jYXRpb25BZHVsdGVIYW5kaWNhcGUgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9wcmVzdGF0aW9uX3JlY3VlICh4OiBQcmVzdGF0aW9uUmVjdWUudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJQcmVzdGF0aW9uUmXDp3VlXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IEFsbG9jYXRpb25zRmFtaWxpYWxlcyB4IC0+IChcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiLCBlbWJlZF91bml0IHgpXG4gICAgfCBDb21wbGVtZW50RmFtaWxpYWwgeCAtPiAoXCJDb21wbMOpbWVudEZhbWlsaWFsXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFsbG9jYXRpb25KZXVuZUVuZmFudCB4IC0+IChcIkFsbG9jYXRpb25KZXVuZUVuZmFudFwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBbGxvY2F0aW9uU291dGllbkZhbWlsaWFsIHggLT5cbiAgICAgIChcIkFsbG9jYXRpb25Tb3V0aWVuRmFtaWxpYWxcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQWxsb2NhdGlvblNvdXRpZW5FbmZhbnRIYW5kaWNhcGUgeCAtPlxuICAgICAgKFwiQWxsb2NhdGlvblNvdXRpZW5FbmZhbnRIYW5kaWNhcMOpXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFsbG9jYXRpb25BZHVsdGVIYW5kaWNhcGUgeCAtPlxuICAgICAgKFwiQWxsb2NhdGlvbkFkdWx0ZUhhbmRpY2Fww6lcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgUGFyZW50T3VBdXRyZSA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBEZW1hbmRldXJPdUNvbmpvaW50T3VQYXJlbnRPdVZpYVBhcnRzU29jaWV0ZXMgb2YgZGVjaW1hbFxuICAgIHwgQXV0cmUgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9wYXJlbnRfb3VfYXV0cmUgKHg6IFBhcmVudE91QXV0cmUudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJQYXJlbnRPdUF1dHJlXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IERlbWFuZGV1ck91Q29uam9pbnRPdVBhcmVudE91VmlhUGFydHNTb2NpZXRlcyB4IC0+XG4gICAgICAoXCJEZW1hbmRldXJPdUNvbmpvaW50T3VQYXJlbnRPdVZpYVBhcnRzU29jacOpdMOpc1wiLCBlbWJlZF9kZWNpbWFsIHgpXG4gICAgfCBBdXRyZSB4IC0+IChcIkF1dHJlXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgUGFzRGVHYXJkZUFsdGVybmVlIG9mIHVuaXRcbiAgICB8IEdhcmRlQWx0ZXJuZWVDb2VmZmljaWVudFByaXNlRW5DaGFyZ2Ugb2YgZGVjaW1hbFxuICBlbmRcbmxldCBlbWJlZF9zaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWUgKHg6IFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUudClcbiAgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJTaXR1YXRpb25HYXJkZUFsdGVybsOpZVwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBQYXNEZUdhcmRlQWx0ZXJuZWUgeCAtPiAoXCJQYXNEZUdhcmRlQWx0ZXJuw6llXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEdhcmRlQWx0ZXJuZWVDb2VmZmljaWVudFByaXNlRW5DaGFyZ2UgeCAtPlxuICAgICAgKFwiR2FyZGVBbHRlcm7DqWVDb2VmZmljaWVudFByaXNlRW5DaGFyZ2VcIiwgZW1iZWRfZGVjaW1hbCB4KSlcblxuXG5tb2R1bGUgUGFyZW50ZSA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBBc2NlbmRhbnQgb2YgdW5pdFxuICAgIHwgRGVzY2VuZGFudCBvZiB1bml0XG4gICAgfCBDb2xsYXRlcmFsRGV1eGllbWVUcm9pc2llbWVEZWdyZSBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX3BhcmVudGUgKHg6IFBhcmVudGUudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJQYXJlbnTDqVwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBBc2NlbmRhbnQgeCAtPiAoXCJBc2NlbmRhbnRcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgRGVzY2VuZGFudCB4IC0+IChcIkRlc2NlbmRhbnRcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQ29sbGF0ZXJhbERldXhpZW1lVHJvaXNpZW1lRGVncmUgeCAtPlxuICAgICAgKFwiQ29sbGF0w6lyYWxEZXV4acOobWVUcm9pc2nDqG1lRGVncsOpXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIERhdGVEZU5haXNzYW5jZU91TW9pc0RlR3Jvc3Nlc3NlID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IERhdGVEZU5haXNzYW5jZSBvZiBkYXRlXG4gICAgfCBBdmFudFByZW1pZXJKb3VyTW9pc0NpdmlsVHJvaXNpZW1lTW9pc0RlR3Jvc3Nlc3NlIG9mIHVuaXRcbiAgICB8IEFwcmVzUHJlbWllckpvdXJNb2lzQ2l2aWxUcm9pc2llbWVNb2lzRGVHcm9zc2Vzc2Ugb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9kYXRlX2RlX25haXNzYW5jZV9vdV9tb2lzX2RlX2dyb3NzZXNzZVxuICAoeDogRGF0ZURlTmFpc3NhbmNlT3VNb2lzRGVHcm9zc2Vzc2UudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJEYXRlRGVOYWlzc2FuY2VPdU1vaXNEZUdyb3NzZXNzZVwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBEYXRlRGVOYWlzc2FuY2UgeCAtPiAoXCJEYXRlRGVOYWlzc2FuY2VcIiwgZW1iZWRfZGF0ZSB4KVxuICAgIHwgQXZhbnRQcmVtaWVySm91ck1vaXNDaXZpbFRyb2lzaWVtZU1vaXNEZUdyb3NzZXNzZSB4IC0+XG4gICAgICAoXCJBdmFudFByZW1pZXJKb3VyTW9pc0NpdmlsVHJvaXNpw6htZU1vaXNEZUdyb3NzZXNzZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBcHJlc1ByZW1pZXJKb3VyTW9pc0NpdmlsVHJvaXNpZW1lTW9pc0RlR3Jvc3Nlc3NlIHggLT5cbiAgICAgIChcIkFwcsOoc1ByZW1pZXJKb3VyTW9pc0NpdmlsVHJvaXNpw6htZU1vaXNEZUdyb3NzZXNzZVwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBab25lREhhYml0YXRpb24gPSBzdHJ1Y3RcbiB0eXBlIHQgPVxuICAgIHwgWm9uZTEgb2YgdW5pdFxuICAgIHwgWm9uZTIgb2YgdW5pdFxuICAgIHwgWm9uZTMgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF96b25lX2RfaGFiaXRhdGlvbiAoeDogWm9uZURIYWJpdGF0aW9uLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiWm9uZURIYWJpdGF0aW9uXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IFpvbmUxIHggLT4gKFwiWm9uZTFcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgWm9uZTIgeCAtPiAoXCJab25lMlwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBab25lMyB4IC0+IChcIlpvbmUzXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIFBhaWVtZW50TG9nZW1lbnREaXN0aW5jdFByb2Zlc3Npb25uZWwgPSBzdHJ1Y3RcbiB0eXBlIHQgPVxuICAgIHwgT3VpQXZlY0xveWVyT3VDaGFyZ2VzIG9mIG1vbmV5XG4gICAgfCBOb24gb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9wYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm9mZXNzaW9ubmVsXG4gICh4OiBQYWllbWVudExvZ2VtZW50RGlzdGluY3RQcm9mZXNzaW9ubmVsLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiUGFpZW1lbnRMb2dlbWVudERpc3RpbmN0UHJvZmVzc2lvbm5lbFwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBPdWlBdmVjTG95ZXJPdUNoYXJnZXMgeCAtPiAoXCJPdWlBdmVjTG95ZXJPdUNoYXJnZXNcIiwgZW1iZWRfbW9uZXkgeClcbiAgICB8IE5vbiB4IC0+IChcIk5vblwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBWZXJzZW1lbnRBID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IEJhaWxsZXVyIG9mIHVuaXRcbiAgICB8IEJlbmVmaWNpYWlyZSBvZiB1bml0XG4gICAgfCBFdGFibGlzc2VtZW50SGFiaWxpdGUgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF92ZXJzZW1lbnRfYSAoeDogVmVyc2VtZW50QS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlZlcnNlbWVudMOAXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IEJhaWxsZXVyIHggLT4gKFwiQmFpbGxldXJcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQmVuZWZpY2lhaXJlIHggLT4gKFwiQsOpbsOpZmljaWFpcmVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgRXRhYmxpc3NlbWVudEhhYmlsaXRlIHggLT4gKFwiw4l0YWJsaXNzZW1lbnRIYWJpbGl0w6lcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgRGVwZW5zZUxvZ2VtZW50ID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IFRvdGFsQW5udWVsRWNoZWFuY2VzIG9mIG1vbmV5XG4gICAgfCBNZW5zdWFsaXRlIG9mIG1vbmV5XG4gICAgfCBMb3llciBvZiBtb25leVxuICBlbmRcbmxldCBlbWJlZF9kZXBlbnNlX2xvZ2VtZW50ICh4OiBEZXBlbnNlTG9nZW1lbnQudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJEw6lwZW5zZUxvZ2VtZW50XCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IFRvdGFsQW5udWVsRWNoZWFuY2VzIHggLT4gKFwiVG90YWxBbm51ZWzDiWNow6lhbmNlc1wiLCBlbWJlZF9tb25leSB4KVxuICAgIHwgTWVuc3VhbGl0ZSB4IC0+IChcIk1lbnN1YWxpdMOpXCIsIGVtYmVkX21vbmV5IHgpXG4gICAgfCBMb3llciB4IC0+IChcIkxveWVyXCIsIGVtYmVkX21vbmV5IHgpKVxuXG5cbm1vZHVsZSBNb2RlT2NjdXBhdGlvbkltcGF5ZSA9IHN0cnVjdFxuIHR5cGUgdCA9XG4gICAgfCBJbXBheWVMb3llciBvZiB1bml0XG4gICAgfCBJbXBheWVQcmV0IG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZSAoeDogTW9kZU9jY3VwYXRpb25JbXBheWUudClcbiAgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJNb2RlT2NjdXBhdGlvbkltcGF5w6lcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgSW1wYXllTG95ZXIgeCAtPiAoXCJJbXBhecOpTG95ZXJcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgSW1wYXllUHJldCB4IC0+IChcIkltcGF5w6lQcsOqdFwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgUGFzRWxpZ2libGUgb2YgdW5pdFxuICAgIHwgQWxsb2NhdGlvbkxvZ2VtZW50RmFtaWxpYWxlIG9mIHVuaXRcbiAgICB8IEFsbG9jYXRpb25Mb2dlbWVudFNvY2lhbGUgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF90eXBlX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRcbiAgKHg6IFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlR5cGXDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IFBhc0VsaWdpYmxlIHggLT4gKFwiUGFzw4lsaWdpYmxlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZSB4IC0+XG4gICAgICAoXCJBbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZSB4IC0+XG4gICAgICAoXCJBbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIEFjY29yZEZpbmFuY2VtZW50UmVwcmVzZW50YW50RXRhdE91dHJlTWVyID0gc3RydWN0XG4gdHlwZSB0ID1cbiAgICB8IEFjY29yZCBvZiBkYXRlXG4gICAgfCBQYXNkQWNjb3JkIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFudF9ldGF0X291dHJlX21lclxuICAoeDogQWNjb3JkRmluYW5jZW1lbnRSZXByZXNlbnRhbnRFdGF0T3V0cmVNZXIudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJBY2NvcmRGaW5hbmNlbWVudFJlcHLDqXNlbnRhbnTDiXRhdE91dHJlTWVyXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IEFjY29yZCB4IC0+IChcIkFjY29yZFwiLCBlbWJlZF9kYXRlIHgpXG4gICAgfCBQYXNkQWNjb3JkIHggLT4gKFwiUGFzZEFjY29yZFwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50ID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQgb2YgdW5pdFxuICAgIHwgQWxsb2NhdGlvbkxvZ2VtZW50RmFtaWxpYWxlIG9mIHVuaXRcbiAgICB8IEFsbG9jYXRpb25Mb2dlbWVudFNvY2lhbGUgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF90eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50ICh4OiBUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQpXG4gIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiVHlwZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50IHggLT5cbiAgICAgIChcIkFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZSB4IC0+XG4gICAgICAoXCJBbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZSB4IC0+XG4gICAgICAoXCJBbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIFNpdHVhdGlvbkZhbWlsaWFsZSA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBDZWxpYmF0YWlyZSBvZiB1bml0XG4gICAgfCBNYXJpZXMgb2YgZGF0ZVxuICAgIHwgUGFjc2VzIG9mIHVuaXRcbiAgICB8IENvbmN1YmlucyBvZiB1bml0XG4gICAgfCBDZWxpYmF0YWlyZVNlcGFyZURlRmFpdCBvZiB1bml0XG4gICAgfCBDb25jdWJpbmFnZURvbnRTZXBhcmVEZUZhaXQgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlICh4OiBTaXR1YXRpb25GYW1pbGlhbGUudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJTaXR1YXRpb25GYW1pbGlhbGVcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgQ2VsaWJhdGFpcmUgeCAtPiAoXCJDw6lsaWJhdGFpcmVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgTWFyaWVzIHggLT4gKFwiTWFyacOpc1wiLCBlbWJlZF9kYXRlIHgpXG4gICAgfCBQYWNzZXMgeCAtPiAoXCJQYWNzw6lzXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IENvbmN1YmlucyB4IC0+IChcIkNvbmN1Ymluc1wiLCBlbWJlZF91bml0IHgpXG4gICAgfCBDZWxpYmF0YWlyZVNlcGFyZURlRmFpdCB4IC0+XG4gICAgICAoXCJDw6lsaWJhdGFpcmVTw6lwYXLDqURlRmFpdFwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBDb25jdWJpbmFnZURvbnRTZXBhcmVEZUZhaXQgeCAtPlxuICAgICAgKFwiQ29uY3ViaW5hZ2VEb250U8OpcGFyw6lEZUZhaXRcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgUHJpc2VFbkNoYXJnZSA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBFZmZlY3RpdmVFdFBlcm1hbmVudGUgb2YgdW5pdFxuICAgIHwgUmVzaWRlbmNlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZSBvZiB1bml0XG4gICAgfCBSZXNpZGVuY2VBbHRlcm5lZUFsbG9jYXRpb25zUGFydGFnZWUgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9wcmlzZV9lbl9jaGFyZ2UgKHg6IFByaXNlRW5DaGFyZ2UudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJQcmlzZUVuQ2hhcmdlXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IEVmZmVjdGl2ZUV0UGVybWFuZW50ZSB4IC0+IChcIkVmZmVjdGl2ZUV0UGVybWFuZW50ZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBSZXNpZGVuY2VBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlIHggLT5cbiAgICAgIChcIlLDqXNpZGVuY2VBbHRlcm7DqWVBbGxvY2F0YWlyZVVuaXF1ZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBSZXNpZGVuY2VBbHRlcm5lZUFsbG9jYXRpb25zUGFydGFnZWUgeCAtPlxuICAgICAgKFwiUsOpc2lkZW5jZUFsdGVybsOpZUFsbG9jYXRpb25zUGFydGFnw6llXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIFR5cGVMb2dlbWVudEZveWVyID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IExvZ2VtZW50UGVyc29ubmVzQWdlZXNPdUhhbmRpY2FwZWVzIG9mIHVuaXRcbiAgICB8IFJlc2lkZW5jZVNvY2lhbGUgb2YgdW5pdFxuICAgIHwgRm95ZXJKZXVuZXNUcnZhaWxsZXVyc091TWlncmFudHNDb252ZW50aW9ubmVMMzUzXzJBdmFudDE5OTUgb2YgdW5pdFxuICAgIHwgQXV0cmUgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF90eXBlX2xvZ2VtZW50X2ZveWVyICh4OiBUeXBlTG9nZW1lbnRGb3llci50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlR5cGVMb2dlbWVudEZveWVyXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IExvZ2VtZW50UGVyc29ubmVzQWdlZXNPdUhhbmRpY2FwZWVzIHggLT5cbiAgICAgIChcIkxvZ2VtZW50UGVyc29ubmVzw4Jnw6llc091SGFuZGljYXDDqWVzXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFJlc2lkZW5jZVNvY2lhbGUgeCAtPiAoXCJSw6lzaWRlbmNlU29jaWFsZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBGb3llckpldW5lc1RydmFpbGxldXJzT3VNaWdyYW50c0NvbnZlbnRpb25uZUwzNTNfMkF2YW50MTk5NSB4IC0+XG4gICAgICAoXCJGb3llckpldW5lc1RydmFpbGxldXJzT3VNaWdyYW50c0NvbnZlbnRpb25uw6lMMzUzXzJBdmFudDE5OTVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQXV0cmUgeCAtPiAoXCJBdXRyZVwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVMgb2YgdW5pdFxuICAgIHwgRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZSBvZiB1bml0XG4gICAgfCBQZXJzb25uZXNBZ2Vlc1NlbG9uM0RlRDg0Ml8xNiBvZiB1bml0XG4gICAgfCBBdXRyZXNQZXJzb25uZXMgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9jYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llclxuICAoeDogQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiQ2F0w6lnb3JpZcOJcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVMgeCAtPlxuICAgICAgKFwiw4l0dWRpYW50TG9nw6lFbkNoYW1icmVDUk9VU1wiLCBlbWJlZF91bml0IHgpXG4gICAgfCBFdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VU1JlaGFiaWxpdGVlIHggLT5cbiAgICAgIChcIsOJdHVkaWFudExvZ8OpRW5DaGFtYnJlQ1JPVVNSw6loYWJpbGl0w6llXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2IHggLT5cbiAgICAgIChcIlBlcnNvbm5lc8OCZ8OpZXNTZWxvbjNEZUQ4NDJfMTZcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQXV0cmVzUGVyc29ubmVzIHggLT4gKFwiQXV0cmVzUGVyc29ubmVzXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTCA9IHN0cnVjdFxuIHR5cGUgdCA9XG4gICAgfCBQZXJzb25uZVNldWxlIG9mIHVuaXRcbiAgICB8IENvdXBsZSBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sICh4OiBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwudClcbiAgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUExcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgUGVyc29ubmVTZXVsZSB4IC0+IChcIlBlcnNvbm5lU2V1bGVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQ291cGxlIHggLT4gKFwiQ291cGxlXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIENvbGxlY3Rpdml0ZSA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBHdWFkZWxvdXBlIG9mIHVuaXRcbiAgICB8IEd1eWFuZSBvZiB1bml0XG4gICAgfCBNYXJ0aW5pcXVlIG9mIHVuaXRcbiAgICB8IExhUmV1bmlvbiBvZiB1bml0XG4gICAgfCBTYWludEJhcnRoZWxlbXkgb2YgdW5pdFxuICAgIHwgU2FpbnRNYXJ0aW4gb2YgdW5pdFxuICAgIHwgTWV0cm9wb2xlIG9mIHVuaXRcbiAgICB8IFNhaW50UGllcnJlRXRNaXF1ZWxvbiBvZiB1bml0XG4gICAgfCBNYXlvdHRlIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfY29sbGVjdGl2aXRlICh4OiBDb2xsZWN0aXZpdGUudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJDb2xsZWN0aXZpdMOpXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IEd1YWRlbG91cGUgeCAtPiAoXCJHdWFkZWxvdXBlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEd1eWFuZSB4IC0+IChcIkd1eWFuZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBNYXJ0aW5pcXVlIHggLT4gKFwiTWFydGluaXF1ZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBMYVJldW5pb24geCAtPiAoXCJMYVLDqXVuaW9uXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFNhaW50QmFydGhlbGVteSB4IC0+IChcIlNhaW50QmFydGjDqWxlbXlcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgU2FpbnRNYXJ0aW4geCAtPiAoXCJTYWludE1hcnRpblwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBNZXRyb3BvbGUgeCAtPiAoXCJNw6l0cm9wb2xlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFNhaW50UGllcnJlRXRNaXF1ZWxvbiB4IC0+IChcIlNhaW50UGllcnJlRXRNaXF1ZWxvblwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBNYXlvdHRlIHggLT4gKFwiTWF5b3R0ZVwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBQcmlzZUVuQ2hhcmdlRW5mYW50ID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IEdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnMgb2YgdW5pdFxuICAgIHwgR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlIG9mIHVuaXRcbiAgICB8IEVmZmVjdGl2ZUV0UGVybWFuZW50ZSBvZiB1bml0XG4gICAgfCBTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQUxhRmFtaWxsZSBvZiB1bml0XG4gICAgfCBTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4IG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfcHJpc2VfZW5fY2hhcmdlX2VuZmFudCAoeDogUHJpc2VFbkNoYXJnZUVuZmFudC50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlByaXNlRW5DaGFyZ2VFbmZhbnRcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9ucyB4IC0+XG4gICAgICAoXCJHYXJkZUFsdGVybsOpZVBhcnRhZ2VBbGxvY2F0aW9uc1wiLCBlbWJlZF91bml0IHgpXG4gICAgfCBHYXJkZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWUgeCAtPlxuICAgICAgKFwiR2FyZGVBbHRlcm7DqWVBbGxvY2F0YWlyZVVuaXF1ZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBFZmZlY3RpdmVFdFBlcm1hbmVudGUgeCAtPiAoXCJFZmZlY3RpdmVFdFBlcm1hbmVudGVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGUgeCAtPlxuICAgICAgKFwiU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnPDqWXDgExhRmFtaWxsZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4IHggLT5cbiAgICAgIChcIlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzw6llQXV4U2VydmljZXNTb2NpYXV4XCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZSA9IHN0cnVjdFxuIHR5cGUgdCA9XG4gICAgfCBBdmFudCBvZiB1bml0XG4gICAgfCBQZW5kYW50IG9mIHVuaXRcbiAgICB8IEFwcmVzIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmUgKHg6IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS50KVxuICA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZVwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBBdmFudCB4IC0+IChcIkF2YW50XCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFBlbmRhbnQgeCAtPiAoXCJQZW5kYW50XCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFwcmVzIHggLT4gKFwiQXByw6hzXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgUHJlc3RhdGlvbkFjY3VlaWxKZXVuZUVuZmFudCBvZiB1bml0XG4gICAgfCBBbGxvY2F0aW9uc0ZhbWlsaWFsZXMgb2YgdW5pdFxuICAgIHwgQ29tcGxlbWVudEZhbWlsaWFsIG9mIHVuaXRcbiAgICB8IEFsbG9jYXRpb25Mb2dlbWVudCBvZiB1bml0XG4gICAgfCBBbGxvY2F0aW9uRWR1Y2F0aW9uRW5mYW50SGFuZGljYXBlIG9mIHVuaXRcbiAgICB8IEFsbG9jYXRpb25Tb3V0aWVuRmFtaWxpYWwgb2YgdW5pdFxuICAgIHwgQWxsb2NhdGlvblJlbnRyZWVTY29sYWlyZSBvZiB1bml0XG4gICAgfCBBbGxvY2F0aW9uSm91cm5hbGllcmVQcmVzZW5jZVBhcmVudGFsZSBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX2VsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyAoeDogRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy50KVxuICA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIsOJbMOpbWVudFByZXN0YXRpb25zRmFtaWxpYWxlc1wiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBQcmVzdGF0aW9uQWNjdWVpbEpldW5lRW5mYW50IHggLT5cbiAgICAgIChcIlByZXN0YXRpb25BY2N1ZWlsSmV1bmVFbmZhbnRcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQWxsb2NhdGlvbnNGYW1pbGlhbGVzIHggLT4gKFwiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IENvbXBsZW1lbnRGYW1pbGlhbCB4IC0+IChcIkNvbXBsw6ltZW50RmFtaWxpYWxcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQWxsb2NhdGlvbkxvZ2VtZW50IHggLT4gKFwiQWxsb2NhdGlvbkxvZ2VtZW50XCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFsbG9jYXRpb25FZHVjYXRpb25FbmZhbnRIYW5kaWNhcGUgeCAtPlxuICAgICAgKFwiQWxsb2NhdGlvbsOJZHVjYXRpb25FbmZhbnRIYW5kaWNhcMOpXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFsbG9jYXRpb25Tb3V0aWVuRmFtaWxpYWwgeCAtPlxuICAgICAgKFwiQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbFwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBbGxvY2F0aW9uUmVudHJlZVNjb2xhaXJlIHggLT5cbiAgICAgIChcIkFsbG9jYXRpb25SZW50csOpZVNjb2xhaXJlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFsbG9jYXRpb25Kb3VybmFsaWVyZVByZXNlbmNlUGFyZW50YWxlIHggLT5cbiAgICAgIChcIkFsbG9jYXRpb25Kb3VybmFsacOocmVQcmVzZW5jZVBhcmVudGFsZVwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBDb252ZW50aW9uQmFpbGxldXJTb2NpYWwgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGNvbnZlbnRpb25uZV9saXZyZV9JSUlfdGl0cmVfVl9jaGFwX0lJSTogYm9vbDtcbiAgICByZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV9wZXJjdWU6IG1vbmV5XG4gIH1cbmVuZFxubGV0IGVtYmVkX2NvbnZlbnRpb25fYmFpbGxldXJfc29jaWFsICh4OiBDb252ZW50aW9uQmFpbGxldXJTb2NpYWwudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNvbnZlbnRpb25CYWlsbGV1clNvY2lhbFwiXSxcbiAgWyhcImNvbnZlbnRpb25uw6lfbGl2cmVfSUlJX3RpdHJlX1ZfY2hhcF9JSUlcIiwgZW1iZWRfYm9vbFxuICAgIHguQ29udmVudGlvbkJhaWxsZXVyU29jaWFsLmNvbnZlbnRpb25uZV9saXZyZV9JSUlfdGl0cmVfVl9jaGFwX0lJSSk7XG4gICAgKFwicsOpZHVjdGlvbl9sb3llcl9zb2xpZGFyaXTDqV9wZXLDp3VlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5Db252ZW50aW9uQmFpbGxldXJTb2NpYWwucmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfcGVyY3VlKV0pXG5cblxubW9kdWxlIENvbnZlbnRpb25BTkhBID0gc3RydWN0XG4gIHR5cGUgdCA9IHtjb252ZW50aW9ubmVfbGl2cmVfSUlJX3RpdHJlX0lJX2NoYXBfSV9zZWNfMzogYm9vbH1cbmVuZFxubGV0IGVtYmVkX2NvbnZlbnRpb25fYV9uX2hfYSAoeDogQ29udmVudGlvbkFOSEEudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNvbnZlbnRpb25BTkhBXCJdLFxuICBbKFwiY29udmVudGlvbm7DqV9saXZyZV9JSUlfdGl0cmVfSUlfY2hhcF9JX3NlY18zXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkNvbnZlbnRpb25BTkhBLmNvbnZlbnRpb25uZV9saXZyZV9JSUlfdGl0cmVfSUlfY2hhcF9JX3NlY18zKV0pXG5cblxubW9kdWxlIFBlcnNvbm5lU291c0xvY2F0aW9uID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBkYXRlX25haXNzYW5jZV9wZXJzb25uZV9zb3VzX2xvY2F0aW9uOiBkYXRlO1xuICAgIGNvbmZvcm1lX2FydGljbGVfbDQ0Ml8xOiBib29sXG4gIH1cbmVuZFxubGV0IGVtYmVkX3BlcnNvbm5lX3NvdXNfbG9jYXRpb24gKHg6IFBlcnNvbm5lU291c0xvY2F0aW9uLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJQZXJzb25uZVNvdXNMb2NhdGlvblwiXSxcbiAgWyhcImRhdGVfbmFpc3NhbmNlX3BlcnNvbm5lX3NvdXNfbG9jYXRpb25cIiwgZW1iZWRfZGF0ZVxuICAgIHguUGVyc29ubmVTb3VzTG9jYXRpb24uZGF0ZV9uYWlzc2FuY2VfcGVyc29ubmVfc291c19sb2NhdGlvbik7XG4gICAgKFwiY29uZm9ybWVfYXJ0aWNsZV9sNDQyXzFcIiwgZW1iZWRfYm9vbFxuICAgIHguUGVyc29ubmVTb3VzTG9jYXRpb24uY29uZm9ybWVfYXJ0aWNsZV9sNDQyXzEpXSlcblxuXG5tb2R1bGUgUGF0cmltb2luZSA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgcHJvZHVpc2FudF9yZXZlbnVfcGVyaW9kZV9yODIyXzNfM19yODIyXzQ6IG1vbmV5O1xuICAgIG5lX3Byb2R1aXNhbnRfcGFzX3JldmVudV9wZXJpb2RlX3I4MjJfM18zX3I4MjJfNDogbW9uZXlcbiAgfVxuZW5kXG5sZXQgZW1iZWRfcGF0cmltb2luZSAoeDogUGF0cmltb2luZS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiUGF0cmltb2luZVwiXSxcbiAgWyhcInByb2R1aXNhbnRfcmV2ZW51X3DDqXJpb2RlX3I4MjJfM18zX3I4MjJfNFwiLCBlbWJlZF9tb25leVxuICAgIHguUGF0cmltb2luZS5wcm9kdWlzYW50X3JldmVudV9wZXJpb2RlX3I4MjJfM18zX3I4MjJfNCk7XG4gICAgKFwibmVfcHJvZHVpc2FudF9wYXNfcmV2ZW51X3DDqXJpb2RlX3I4MjJfM18zX3I4MjJfNFwiLCBlbWJlZF9tb25leVxuICAgIHguUGF0cmltb2luZS5uZV9wcm9kdWlzYW50X3Bhc19yZXZlbnVfcGVyaW9kZV9yODIyXzNfM19yODIyXzQpXSlcblxuXG5tb2R1bGUgQ29uZGl0aW9uc0V0cmFuZ2VycyA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgc2F0aXNmYWl0X2NvbmRpdGlvbnNfbDUxMl8yX2NvZGVfc2VjdXJpdGVfc29jaWFsZTogYm9vbDtcbiAgICBzYXRpc2ZhaXRfYXJ0XzRfb3Jkb25uYW5jZV8yMDAyX21heW90dGU6IGJvb2xcbiAgfVxuZW5kXG5sZXQgZW1iZWRfY29uZGl0aW9uc19ldHJhbmdlcnMgKHg6IENvbmRpdGlvbnNFdHJhbmdlcnMudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNvbmRpdGlvbnPDiXRyYW5nZXJzXCJdLFxuICBbKFwic2F0aXNmYWl0X2NvbmRpdGlvbnNfbDUxMl8yX2NvZGVfc8OpY3VyaXTDqV9zb2NpYWxlXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkNvbmRpdGlvbnNFdHJhbmdlcnMuc2F0aXNmYWl0X2NvbmRpdGlvbnNfbDUxMl8yX2NvZGVfc2VjdXJpdGVfc29jaWFsZSk7XG4gICAgKFwic2F0aXNmYWl0X2FydF80X29yZG9ubmFuY2VfMjAwMl9tYXlvdHRlXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkNvbmRpdGlvbnNFdHJhbmdlcnMuc2F0aXNmYWl0X2FydF80X29yZG9ubmFuY2VfMjAwMl9tYXlvdHRlKV0pXG5cblxubW9kdWxlIFBlcnNvbm5lVml2YW50SGFiaXR1ZWxsZW1lbnRBdUZveWVyID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBkdXJlZV9yZXNpZGVuY2VfZHVyYW50X3BlcmlvZGVfcl84MjJfM18xX3N1cGVyaWV1cmVfYV82X21vaXM6IGJvb2w7XG4gICAgcmVzc291cmNlczogbW9uZXlcbiAgfVxuZW5kXG5sZXQgZW1iZWRfcGVyc29ubmVfdml2YW50X2hhYml0dWVsbGVtZW50X2F1X2ZveWVyICh4OiBQZXJzb25uZVZpdmFudEhhYml0dWVsbGVtZW50QXVGb3llci50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiUGVyc29ubmVWaXZhbnRIYWJpdHVlbGxlbWVudEF1Rm95ZXJcIl0sXG4gIFsoXCJkdXLDqWVfcsOpc2lkZW5jZV9kdXJhbnRfcMOpcmlvZGVfcl84MjJfM18xX3N1cMOpcmlldXJlX8OgXzZfbW9pc1wiLFxuICAgIGVtYmVkX2Jvb2xcbiAgICB4LlBlcnNvbm5lVml2YW50SGFiaXR1ZWxsZW1lbnRBdUZveWVyLmR1cmVlX3Jlc2lkZW5jZV9kdXJhbnRfcGVyaW9kZV9yXzgyMl8zXzFfc3VwZXJpZXVyZV9hXzZfbW9pcyk7XG4gICAgKFwicmVzc291cmNlc1wiLCBlbWJlZF9tb25leVxuICAgIHguUGVyc29ubmVWaXZhbnRIYWJpdHVlbGxlbWVudEF1Rm95ZXIucmVzc291cmNlcyldKVxuXG5cbm1vZHVsZSBFbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGRhdGVfY291cmFudGU6IGRhdGU7XG4gICAgZWxpZ2liaWxpdGU6IGJvb2w7XG4gICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlOiBpbnRlZ2VyO1xuICAgIGNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGU6IGRlY2ltYWwgYXJyYXlcbiAgfVxuZW5kXG5sZXQgZW1iZWRfZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50ICh4OiBFbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiXSxcbiAgWyhcImRhdGVfY291cmFudGVcIiwgZW1iZWRfZGF0ZVxuICAgIHguRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LmRhdGVfY291cmFudGUpO1xuICAgIChcIsOpbGlnaWJpbGl0w6lcIiwgZW1iZWRfYm9vbFxuICAgIHguRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LmVsaWdpYmlsaXRlKTtcbiAgICAoXCJub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXCIsIGVtYmVkX2ludGVnZXJcbiAgICB4LkVsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudC5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGUpO1xuICAgIChcImNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuw6llX3ByaXNfZW5fY29tcHRlXCIsXG4gICAgZW1iZWRfYXJyYXkgKGVtYmVkX2RlY2ltYWwpXG4gICAgeC5FbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSldKVxuXG5cbm1vZHVsZSBFbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnQgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge21vbnRhbnRfcHJpbWVfZGVtZW5hZ2VtZW50OiBtb25leX1cbmVuZFxubGV0IGVtYmVkX2VsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudCAoeDogRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50LnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCLDiWxpZ2liaWxpdMOpUHJpbWVEZUTDqW3DqW5hZ2VtZW50XCJdLFxuICBbKFwibW9udGFudF9wcmltZV9kw6ltw6luYWdlbWVudFwiLCBlbWJlZF9tb25leVxuICAgIHguRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50Lm1vbnRhbnRfcHJpbWVfZGVtZW5hZ2VtZW50KV0pXG5cblxubW9kdWxlIFJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge3Jlc3NvdXJjZXNfcHJpc2VzX2VuX2NvbXB0ZTogbW9uZXl9XG5lbmRcbmxldCBlbWJlZF9yZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50ICh4OiBSZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJSZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCJdLFxuICBbKFwicmVzc291cmNlc19wcmlzZXNfZW5fY29tcHRlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnJlc3NvdXJjZXNfcHJpc2VzX2VuX2NvbXB0ZSldKVxuXG5cbm1vZHVsZSBDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge21vbnRhbnQ6IG1vbmV5IC0+IG1vbmV5fVxuZW5kXG5sZXQgZW1iZWRfY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCAoeDogQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIl0sXG4gIFsoXCJtb250YW50XCIsIHVuZW1iZWRkYWJsZVxuICAgIHguQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50Lm1vbnRhbnQpXSlcblxuXG5tb2R1bGUgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODIzXzE2OiBtb25leTtcbiAgICBwbGFmb25kX2xveWVyX2Q4MjNfMTZfMjogbW9uZXk7XG4gICAgcGFydGljaXBhdGlvbl9taW5pbWFsZTogbW9uZXk7XG4gICAgdGF1eF9jb21wb3NpdGlvbl9mYW1pbGlhbGU6IGRlY2ltYWw7XG4gICAgcGFydGljaXBhdGlvbl9wZXJzb25uZWxsZTogbW9uZXk7XG4gICAgYWlkZV9maW5hbGVfZm9ybXVsZTogbW9uZXk7XG4gICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZTogbW9uZXkgLT4gbW9uZXlcbiAgfVxuZW5kXG5sZXQgZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmICh4OiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCJdLFxuICBbKFwibW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4MjNfMTZcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODIzXzE2KTtcbiAgICAoXCJwbGFmb25kX2xveWVyX2Q4MjNfMTZfMlwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGxhZm9uZF9sb3llcl9kODIzXzE2XzIpO1xuICAgIChcInBhcnRpY2lwYXRpb25fbWluaW1hbGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnBhcnRpY2lwYXRpb25fbWluaW1hbGUpO1xuICAgIChcInRhdXhfY29tcG9zaXRpb25fZmFtaWxpYWxlXCIsIGVtYmVkX2RlY2ltYWxcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnRhdXhfY29tcG9zaXRpb25fZmFtaWxpYWxlKTtcbiAgICAoXCJwYXJ0aWNpcGF0aW9uX3BlcnNvbm5lbGxlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5wYXJ0aWNpcGF0aW9uX3BlcnNvbm5lbGxlKTtcbiAgICAoXCJhaWRlX2ZpbmFsZV9mb3JtdWxlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5haWRlX2ZpbmFsZV9mb3JtdWxlKTtcbiAgICAoXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCIsIHVuZW1iZWRkYWJsZVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSldKVxuXG5cbm1vZHVsZSBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGUgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge21vbnRhbnQ6IG1vbmV5fVxuZW5kXG5sZXQgZW1iZWRfY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlICh4OiBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGUudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNhbGN1bMOJcXVpdmFsZW5jZUxveWVyTWluaW1hbGVcIl0sXG4gIFsoXCJtb250YW50XCIsIGVtYmVkX21vbmV5IHguQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlLm1vbnRhbnQpXSlcblxuXG5tb2R1bGUgQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXIgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge25fbm9tYnJlX3BhcnRzX2Q4MzJfMjU6IGRlY2ltYWx9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXIgKHg6IENhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llclwiXSxcbiAgWyhcIm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVcIiwgZW1iZWRfZGVjaW1hbFxuICAgIHguQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXIubl9ub21icmVfcGFydHNfZDgzMl8yNSldKVxuXG5cbm1vZHVsZSBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMjU6IG1vbmV5O1xuICAgIGNvZWZmaWNpZW50X3JfZDgzMl8yNTogbW9uZXk7XG4gICAgbl9ub21icmVfcGFydHNfZDgzMl8yNTogZGVjaW1hbDtcbiAgICBlcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZTogbW9uZXk7XG4gICAgcGxhZm9uZF9lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZTogbW9uZXk7XG4gICAgZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGU6IG1vbmV5O1xuICAgIGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1OiBkZWNpbWFsO1xuICAgIGFpZGVfZmluYWxlX2Zvcm11bGU6IG1vbmV5O1xuICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGU6IG1vbmV5IC0+IG1vbmV5XG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIgKHg6IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiXSxcbiAgWyhcImNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMjVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5jb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzI1KTtcbiAgICAoXCJjb2VmZmljaWVudF9yX2Q4MzJfMjVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5jb2VmZmljaWVudF9yX2Q4MzJfMjUpO1xuICAgIChcIm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVcIiwgZW1iZWRfZGVjaW1hbFxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjUpO1xuICAgIChcIsOpcXVpdmFsZW5jZV9sb3llcl/DqWxpZ2libGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZSk7XG4gICAgKFwicGxhZm9uZF/DqXF1aXZhbGVuY2VfbG95ZXJfw6lsaWdpYmxlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIucGxhZm9uZF9lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZSk7XG4gICAgKFwiw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUpO1xuICAgIChcImNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1XCIsIGVtYmVkX2RlY2ltYWxcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5jb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNSk7XG4gICAgKFwiYWlkZV9maW5hbGVfZm9ybXVsZVwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgIChcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIudHJhaXRlbWVudF9haWRlX2ZpbmFsZSldKVxuXG5cbm1vZHVsZSBDYWxjdWxOb21icmVQYXJ0c0FjY2Vzc2lvblByb3ByaWV0ZSA9IHN0cnVjdFxuICB0eXBlIHQgPSB7bl9ub21icmVfcGFydHNfZDgzMl8xMTogZGVjaW1hbH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZSAoeDogQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGUudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpw6l0w6lcIl0sXG4gIFsoXCJuX25vbWJyZV9wYXJ0c19kODMyXzExXCIsIGVtYmVkX2RlY2ltYWxcbiAgICB4LkNhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMTEpXSlcblxuXG5tb2R1bGUgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZSA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgbWVuc3VhbGl0ZV9lbGlnaWJsZTogbW9uZXk7XG4gICAgbWVuc3VhbGl0ZV9taW5pbWFsZTogbW9uZXk7XG4gICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTA6IGRlY2ltYWw7XG4gICAgYWlkZV9maW5hbGVfZm9ybXVsZTogbW9uZXk7XG4gICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZTogbW9uZXkgLT4gbW9uZXlcbiAgfVxuZW5kXG5sZXQgZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlICh4OiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCJdLFxuICBbKFwibWVuc3VhbGl0w6lfw6lsaWdpYmxlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLm1lbnN1YWxpdGVfZWxpZ2libGUpO1xuICAgIChcIm1lbnN1YWxpdMOpX21pbmltYWxlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLm1lbnN1YWxpdGVfbWluaW1hbGUpO1xuICAgIChcImNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzEwXCIsIGVtYmVkX2RlY2ltYWxcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUuY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTApO1xuICAgIChcImFpZGVfZmluYWxlX2Zvcm11bGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgKFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiLCB1bmVtYmVkZGFibGVcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSldKVxuXG5cbm1vZHVsZSBUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGFpZGVfZmluYWxlX2Zvcm11bGU6IG1vbmV5O1xuICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGU6IG1vbmV5IC0+IG1vbmV5XG4gIH1cbmVuZFxubGV0IGVtYmVkX3RyYWl0ZW1lbnRfZm9ybXVsZV9haWRlX2ZpbmFsZSAoeDogVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJUcmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGVcIl0sXG4gIFsoXCJhaWRlX2ZpbmFsZV9mb3JtdWxlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5UcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgKFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiLCB1bmVtYmVkZGFibGVcbiAgICB4LlRyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS50cmFpdGVtZW50X2FpZGVfZmluYWxlKV0pXG5cblxubW9kdWxlIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGFpZGVfZmluYWxlX2Zvcm11bGU6IG1vbmV5O1xuICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGU6IG1vbmV5IC0+IG1vbmV5XG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQgKHg6IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCJdLFxuICBbKFwiYWlkZV9maW5hbGVfZm9ybXVsZVwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudC5haWRlX2ZpbmFsZV9mb3JtdWxlKTtcbiAgICAoXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCIsIHVuZW1iZWRkYWJsZVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudC50cmFpdGVtZW50X2FpZGVfZmluYWxlKV0pXG5cblxubW9kdWxlIEluZm9zQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGFuY2llbl9sb3llcl9wcmluY2lwYWw6IG1vbmV5O1xuICAgIGFuY2llbm5lX2FsbG9jYXRpb25fbG9nZW1lbnQ6IG1vbmV5XG4gIH1cbmVuZFxubGV0IGVtYmVkX2luZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80ICh4OiBJbmZvc0NoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJJbmZvc0NoYW5nZW1lbnRMb2dlbWVudEQ4NDJfNFwiXSxcbiAgWyhcImFuY2llbl9sb3llcl9wcmluY2lwYWxcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkluZm9zQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQuYW5jaWVuX2xveWVyX3ByaW5jaXBhbCk7XG4gICAgKFwiYW5jaWVubmVfYWxsb2NhdGlvbl9sb2dlbWVudFwiLCBlbWJlZF9tb25leVxuICAgIHguSW5mb3NDaGFuZ2VtZW50TG9nZW1lbnREODQyNC5hbmNpZW5uZV9hbGxvY2F0aW9uX2xvZ2VtZW50KV0pXG5cblxubW9kdWxlIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGFpZGVfZmluYWxlX2Zvcm11bGU6IG1vbmV5O1xuICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGU6IG1vbmV5IC0+IG1vbmV5XG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWYgKHg6IENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIl0sXG4gIFsoXCJhaWRlX2ZpbmFsZV9mb3JtdWxlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgIChcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpXSlcblxuXG5tb2R1bGUgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBhaWRlX2ZpbmFsZV9mb3JtdWxlOiBtb25leTtcbiAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlOiBtb25leSAtPiBtb25leVxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlICh4OiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCJdLFxuICBbKFwiYWlkZV9maW5hbGVfZm9ybXVsZVwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgIChcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSldKVxuXG5cbm1vZHVsZSBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llciA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlOiBkZWNpbWFsO1xuICAgIGVxdWl2YWxlbmNlX2xveWVyOiBtb25leTtcbiAgICBtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXM6IG1vbmV5O1xuICAgIGxveWVyX21pbmltYWw6IG1vbmV5O1xuICAgIGFpZGVfZmluYWxlX2Zvcm11bGU6IG1vbmV5O1xuICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGU6IG1vbmV5IC0+IG1vbmV5XG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyICh4OiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIl0sXG4gIFsoXCJjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VcIiwgZW1iZWRfZGVjaW1hbFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlKTtcbiAgICAoXCLDqXF1aXZhbGVuY2VfbG95ZXJcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLmVxdWl2YWxlbmNlX2xveWVyKTtcbiAgICAoXCJtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlcyk7XG4gICAgKFwibG95ZXJfbWluaW1hbFwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIubG95ZXJfbWluaW1hbCk7XG4gICAgKFwiYWlkZV9maW5hbGVfZm9ybXVsZVwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgKFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiLCB1bmVtYmVkZGFibGVcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpXSlcblxuXG5tb2R1bGUgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50ID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBhaWRlX2ZpbmFsZV9mb3JtdWxlOiBtb25leTtcbiAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlOiBtb25leSAtPiBtb25leVxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudCAoeDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50LnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRcIl0sXG4gIFsoXCJhaWRlX2ZpbmFsZV9mb3JtdWxlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnQuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgKFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiLCB1bmVtYmVkZGFibGVcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudC50cmFpdGVtZW50X2FpZGVfZmluYWxlKV0pXG5cblxubW9kdWxlIE91dmVydHVyZURyb2l0c1JldHJhaXRlID0gc3RydWN0XG4gIHR5cGUgdCA9IHthZ2Vfb3V2ZXJ0dXJlX2Ryb2l0OiBkdXJhdGlvbn1cbmVuZFxubGV0IGVtYmVkX291dmVydHVyZV9kcm9pdHNfcmV0cmFpdGUgKHg6IE91dmVydHVyZURyb2l0c1JldHJhaXRlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJPdXZlcnR1cmVEcm9pdHNSZXRyYWl0ZVwiXSxcbiAgWyhcIsOiZ2Vfb3V2ZXJ0dXJlX2Ryb2l0XCIsIGVtYmVkX2R1cmF0aW9uXG4gICAgeC5PdXZlcnR1cmVEcm9pdHNSZXRyYWl0ZS5hZ2Vfb3V2ZXJ0dXJlX2Ryb2l0KV0pXG5cblxubW9kdWxlIEltcGF5ZURlcGVuc2VMb2dlbWVudCA9IHN0cnVjdFxuICB0eXBlIHQgPSB7bW9udGFudF9pbXBheWU6IG1vbmV5fVxuZW5kXG5sZXQgZW1iZWRfaW1wYXllX2RlcGVuc2VfbG9nZW1lbnQgKHg6IEltcGF5ZURlcGVuc2VMb2dlbWVudC50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiSW1wYXnDqUTDqXBlbnNlTG9nZW1lbnRcIl0sXG4gIFsoXCJtb250YW50X2ltcGF5w6lcIiwgZW1iZWRfbW9uZXkgeC5JbXBheWVEZXBlbnNlTG9nZW1lbnQubW9udGFudF9pbXBheWUpXSlcblxuXG5tb2R1bGUgQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudCA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgZWxpZ2liaWxpdGU6IGJvb2w7XG4gICAgYWlkZV9maW5hbGVfZm9ybXVsZTogbW9uZXk7XG4gICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZTogbW9uZXkgLT4gbW9uZXk7XG4gICAgY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZTogZGVjaW1hbCBhcnJheVxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50ICh4OiBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCJdLFxuICBbKFwiw6lsaWdpYmlsaXTDqVwiLCBlbWJlZF9ib29sXG4gICAgeC5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LmVsaWdpYmlsaXRlKTtcbiAgICAoXCJhaWRlX2ZpbmFsZV9mb3JtdWxlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgIChcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpO1xuICAgIChcImNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuw6llX3ByaXNfZW5fY29tcHRlXCIsXG4gICAgZW1iZWRfYXJyYXkgKGVtYmVkX2RlY2ltYWwpXG4gICAgeC5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LmNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGUpXSlcblxuXG5tb2R1bGUgQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWUgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge2VsaWdpYmlsaXRlOiBib29sOyBhaWRlX2ZpbmFsZTogbW9uZXl9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlICh4OiBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm5lZS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuw6llXCJdLFxuICBbKFwiw6lsaWdpYmlsaXTDqVwiLCBlbWJlZF9ib29sXG4gICAgeC5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm5lZS5lbGlnaWJpbGl0ZSk7XG4gICAgKFwiYWlkZV9maW5hbGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybmVlLmFpZGVfZmluYWxlKV0pXG5cblxubW9kdWxlIEJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXMgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge21vbnRhbnQ6IG1vbmV5fVxuZW5kXG5sZXQgZW1iZWRfYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyAoeDogQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcy50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiXSxcbiAgWyhcIm1vbnRhbnRcIiwgZW1iZWRfbW9uZXkgeC5CYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLm1vbnRhbnQpXSlcblxuXG5tb2R1bGUgVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQSA9IHN0cnVjdFxuICB0eXBlIHQgPSB7ZXN0X2luZmVyaWV1cl9vdV9lZ2FsOiBib29sfVxuZW5kXG5sZXQgZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hICh4OiBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJWw6lyaWZpY2F0aW9uw4JnZUluZsOpcmlldXJPdcOJZ2Fsw4BcIl0sXG4gIFsoXCJlc3RfaW5mw6lyaWV1cl9vdV/DqWdhbFwiLCBlbWJlZF9ib29sXG4gICAgeC5WZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBLmVzdF9pbmZlcmlldXJfb3VfZWdhbCldKVxuXG5cbm1vZHVsZSBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBID0gc3RydWN0XG4gIHR5cGUgdCA9IHtlc3Rfc3VwZXJpZXVyOiBib29sfVxuZW5kXG5sZXQgZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYSAoeDogVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiVsOpcmlmaWNhdGlvbsOCZ2VTdXDDqXJpZXVyw4BcIl0sXG4gIFsoXCJlc3Rfc3Vww6lyaWV1clwiLCBlbWJlZF9ib29sIHguVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS5lc3Rfc3VwZXJpZXVyKV0pXG5cblxubW9kdWxlIFNtaWMgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge2JydXRfaG9yYWlyZTogbW9uZXl9XG5lbmRcbmxldCBlbWJlZF9zbWljICh4OiBTbWljLnQpIDogcnVudGltZV92YWx1ZSA9IFN0cnVjdChbXCJTbWljXCJdLFxuICBbKFwiYnJ1dF9ob3JhaXJlXCIsIGVtYmVkX21vbmV5IHguU21pYy5icnV0X2hvcmFpcmUpXSlcblxuXG5tb2R1bGUgTmV1Zk91QW5jaWVuID0gc3RydWN0XG4gdHlwZSB0ID1cbiAgICB8IE5ldWYgb2YgdW5pdFxuICAgIHwgQW5jaWVuIG9mIEFtZWxpb3JlUGFyT2NjdXBhbnQudFxuICBlbmRcbmxldCBlbWJlZF9uZXVmX291X2FuY2llbiAoeDogTmV1Zk91QW5jaWVuLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiTmV1Zk91QW5jaWVuXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IE5ldWYgeCAtPiAoXCJOZXVmXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFuY2llbiB4IC0+IChcIkFuY2llblwiLCBlbWJlZF9hbWVsaW9yZV9wYXJfb2NjdXBhbnQgeCkpXG5cblxubW9kdWxlIFRyYW5jaGVSZXZlbnUgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge2hhdXQ6IExpbWl0ZVRyYW5jaGUudDsgYmFzOiBtb25leTsgdGF1eDogZGVjaW1hbH1cbmVuZFxubGV0IGVtYmVkX3RyYW5jaGVfcmV2ZW51ICh4OiBUcmFuY2hlUmV2ZW51LnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJUcmFuY2hlUmV2ZW51XCJdLFxuICBbKFwiaGF1dFwiLCBlbWJlZF9saW1pdGVfdHJhbmNoZSB4LlRyYW5jaGVSZXZlbnUuaGF1dCk7XG4gICAgKFwiYmFzXCIsIGVtYmVkX21vbmV5IHguVHJhbmNoZVJldmVudS5iYXMpO1xuICAgIChcInRhdXhcIiwgZW1iZWRfZGVjaW1hbCB4LlRyYW5jaGVSZXZlbnUudGF1eCldKVxuXG5cbm1vZHVsZSBUcmFuY2hlUmV2ZW51RGVjaW1hbCA9IHN0cnVjdFxuICB0eXBlIHQgPSB7aGF1dDogTGltaXRlVHJhbmNoZURlY2ltYWwudDsgYmFzOiBkZWNpbWFsOyB0YXV4OiBkZWNpbWFsfVxuZW5kXG5sZXQgZW1iZWRfdHJhbmNoZV9yZXZlbnVfZGVjaW1hbCAoeDogVHJhbmNoZVJldmVudURlY2ltYWwudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIlRyYW5jaGVSZXZlbnVEw6ljaW1hbFwiXSxcbiAgWyhcImhhdXRcIiwgZW1iZWRfbGltaXRlX3RyYW5jaGVfZGVjaW1hbCB4LlRyYW5jaGVSZXZlbnVEZWNpbWFsLmhhdXQpO1xuICAgIChcImJhc1wiLCBlbWJlZF9kZWNpbWFsIHguVHJhbmNoZVJldmVudURlY2ltYWwuYmFzKTtcbiAgICAoXCJ0YXV4XCIsIGVtYmVkX2RlY2ltYWwgeC5UcmFuY2hlUmV2ZW51RGVjaW1hbC50YXV4KV0pXG5cblxubW9kdWxlIEF1dHJlUGVyc29ubmVBQ2hhcmdlID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBkYXRlX25haXNzYW5jZTogZGF0ZTtcbiAgICByZXNzb3VyY2VzOiBtb25leTtcbiAgICBhc2NlbmRhbnRfZGVzY2VuZGFudF9jb2xsYXRlcmFsX2RldXhpZW1lX3Ryb2lzaWVtZV9kZWdyZTogYm9vbDtcbiAgICBwYXJlbnRlOiBQYXJlbnRlLnQ7XG4gICAgaW5jYXBhY2l0ZV84MF9wb3VyY2VudF9vdV9yZXN0cmljdGlvbl9lbXBsb2k6IGJvb2w7XG4gICAgYmVuZWZpY2lhaXJlX2wxNjFfMTlfbDM1MV84X2w2NDNfM19zZWN1OiBib29sO1xuICAgIHRpdHVsYWlyZV9hbGxvY2F0aW9uX3BlcnNvbm5lX2FnZWU6IGJvb2xcbiAgfVxuZW5kXG5sZXQgZW1iZWRfYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UgKHg6IEF1dHJlUGVyc29ubmVBQ2hhcmdlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJBdXRyZVBlcnNvbm5lw4BDaGFyZ2VcIl0sXG4gIFsoXCJkYXRlX25haXNzYW5jZVwiLCBlbWJlZF9kYXRlXG4gICAgeC5BdXRyZVBlcnNvbm5lQUNoYXJnZS5kYXRlX25haXNzYW5jZSk7XG4gICAgKFwicmVzc291cmNlc1wiLCBlbWJlZF9tb25leVxuICAgIHguQXV0cmVQZXJzb25uZUFDaGFyZ2UucmVzc291cmNlcyk7XG4gICAgKFwiYXNjZW5kYW50X2Rlc2NlbmRhbnRfY29sbGF0w6lyYWxfZGV1eGnDqG1lX3Ryb2lzacOobWVfZGVncsOpXCIsXG4gICAgZW1iZWRfYm9vbFxuICAgIHguQXV0cmVQZXJzb25uZUFDaGFyZ2UuYXNjZW5kYW50X2Rlc2NlbmRhbnRfY29sbGF0ZXJhbF9kZXV4aWVtZV90cm9pc2llbWVfZGVncmUpO1xuICAgIChcInBhcmVudMOpXCIsIGVtYmVkX3BhcmVudGVcbiAgICB4LkF1dHJlUGVyc29ubmVBQ2hhcmdlLnBhcmVudGUpO1xuICAgIChcImluY2FwYWNpdMOpXzgwX3BvdXJjZW50X291X3Jlc3RyaWN0aW9uX2VtcGxvaVwiLCBlbWJlZF9ib29sXG4gICAgeC5BdXRyZVBlcnNvbm5lQUNoYXJnZS5pbmNhcGFjaXRlXzgwX3BvdXJjZW50X291X3Jlc3RyaWN0aW9uX2VtcGxvaSk7XG4gICAgKFwiYsOpbsOpZmljaWFpcmVfbDE2MV8xOV9sMzUxXzhfbDY0M18zX3PDqWN1XCIsIGVtYmVkX2Jvb2xcbiAgICB4LkF1dHJlUGVyc29ubmVBQ2hhcmdlLmJlbmVmaWNpYWlyZV9sMTYxXzE5X2wzNTFfOF9sNjQzXzNfc2VjdSk7XG4gICAgKFwidGl0dWxhaXJlX2FsbG9jYXRpb25fcGVyc29ubmVfw6Jnw6llXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkF1dHJlUGVyc29ubmVBQ2hhcmdlLnRpdHVsYWlyZV9hbGxvY2F0aW9uX3BlcnNvbm5lX2FnZWUpXSlcblxuXG5tb2R1bGUgRGF0ZU5haXNzYW5jZVRyb2lzaWVtZU91RGVybmllclBsdXNFbmZhbnQgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgTW9pbnNEZVRyb2lzRW5mYW50cyBvZiB1bml0XG4gICAgfCBQbHVzRGVUcm9pc0VuZmFudHMgb2YgRGF0ZURlTmFpc3NhbmNlT3VNb2lzRGVHcm9zc2Vzc2UudFxuICBlbmRcbmxldCBlbWJlZF9kYXRlX25haXNzYW5jZV90cm9pc2llbWVfb3VfZGVybmllcl9wbHVzX2VuZmFudFxuICAoeDogRGF0ZU5haXNzYW5jZVRyb2lzaWVtZU91RGVybmllclBsdXNFbmZhbnQudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJEYXRlTmFpc3NhbmNlVHJvaXNpw6htZU91RGVybmllclBsdXNFbmZhbnRcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgTW9pbnNEZVRyb2lzRW5mYW50cyB4IC0+IChcIk1vaW5zRGVUcm9pc0VuZmFudHNcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgUGx1c0RlVHJvaXNFbmZhbnRzIHggLT5cbiAgICAgIChcIlBsdXNEZVRyb2lzRW5mYW50c1wiLCBlbWJlZF9kYXRlX2RlX25haXNzYW5jZV9vdV9tb2lzX2RlX2dyb3NzZXNzZSB4KSlcblxuXG5tb2R1bGUgRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGVsaWdpYmlsaXRlOiBUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQudDtcbiAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGU6IGludGVnZXI7XG4gICAgY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZTogZGVjaW1hbCBhcnJheVxuICB9XG5lbmRcbmxldCBlbWJlZF9lbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50ICh4OiBFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiw4lsaWdpYmlsaXTDqUFsbG9jYXRpb25Mb2dlbWVudFwiXSxcbiAgWyhcIsOpbGlnaWJpbGl0w6lcIiwgZW1iZWRfdHlwZV9lbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50XG4gICAgeC5FbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5lbGlnaWJpbGl0ZSk7XG4gICAgKFwibm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZVwiLCBlbWJlZF9pbnRlZ2VyXG4gICAgeC5FbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGUpO1xuICAgIChcImNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuw6llX3ByaXNfZW5fY29tcHRlXCIsXG4gICAgZW1iZWRfYXJyYXkgKGVtYmVkX2RlY2ltYWwpXG4gICAgeC5FbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5jb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlKV0pXG5cblxubW9kdWxlIFByZXQgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIHR5cGVfcHJldDogVHlwZVByZXQudDtcbiAgICBkYXRlX3NpZ25hdHVyZTogZGF0ZTtcbiAgICB0aXR1bGFpcmVfcHJldDogVGl0dWxhaXJlUHJldC50O1xuICAgIGFjY29yZF9maW5hbmNlbWVudF9yZXByZXNlbnRhbnRfRXRhdF9vdXRyZV9tZXI6XG4gICAgICBBY2NvcmRGaW5hbmNlbWVudFJlcHJlc2VudGFudEV0YXRPdXRyZU1lci50XG4gIH1cbmVuZFxubGV0IGVtYmVkX3ByZXQgKHg6IFByZXQudCkgOiBydW50aW1lX3ZhbHVlID0gU3RydWN0KFtcIlByw6p0XCJdLFxuICBbKFwidHlwZV9wcsOqdFwiLCBlbWJlZF90eXBlX3ByZXQgeC5QcmV0LnR5cGVfcHJldCk7XG4gICAgKFwiZGF0ZV9zaWduYXR1cmVcIiwgZW1iZWRfZGF0ZSB4LlByZXQuZGF0ZV9zaWduYXR1cmUpO1xuICAgIChcInRpdHVsYWlyZV9wcsOqdFwiLCBlbWJlZF90aXR1bGFpcmVfcHJldFxuICAgIHguUHJldC50aXR1bGFpcmVfcHJldCk7XG4gICAgKFwiYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHLDqXNlbnRhbnRfw4l0YXRfb3V0cmVfbWVyXCIsXG4gICAgZW1iZWRfYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFudF9ldGF0X291dHJlX21lclxuICAgIHguUHJldC5hY2NvcmRfZmluYW5jZW1lbnRfcmVwcmVzZW50YW50X0V0YXRfb3V0cmVfbWVyKV0pXG5cblxubW9kdWxlIExvZ2VtZW50Rm95ZXIgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIHR5cGVfdXNlcjogVHlwZUxvZ2VtZW50Rm95ZXIudDtcbiAgICByZW1wbGl0X2NvbmRpdGlvbnNfcjgzMl8yMTogYm9vbDtcbiAgICBjb252ZW50aW9ubmVfbGl2cmVfSUlJX3RpdHJlX1ZfY2hhcF9JSUk6IGJvb2w7XG4gICAgY29udmVudGlvbm5lX3NlbG9uX3JlZ2xlc19tYXlvdHRlOiBib29sO1xuICAgIGRhdGVfY29udmVudGlvbm5lbWVudDogZGF0ZTtcbiAgICBjb25zdHJ1aXRfYXBwbGljYXRpb25fbG9pXzE5NTdfMTJfSUlJOiBib29sO1xuICAgIHJlZGV2YW5jZTogbW9uZXk7XG4gICAgY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTY6XG4gICAgICBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIudDtcbiAgICBiZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXM6IGJvb2w7XG4gICAgbG9nZW1lbnRfbWV1YmxlX2Q4NDJfMjogYm9vbFxuICB9XG5lbmRcbmxldCBlbWJlZF9sb2dlbWVudF9mb3llciAoeDogTG9nZW1lbnRGb3llci50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiTG9nZW1lbnRGb3llclwiXSxcbiAgWyhcInR5cGVcIiwgZW1iZWRfdHlwZV9sb2dlbWVudF9mb3llclxuICAgIHguTG9nZW1lbnRGb3llci50eXBlX3VzZXIpO1xuICAgIChcInJlbXBsaXRfY29uZGl0aW9uc19yODMyXzIxXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkxvZ2VtZW50Rm95ZXIucmVtcGxpdF9jb25kaXRpb25zX3I4MzJfMjEpO1xuICAgIChcImNvbnZlbnRpb25uw6lfbGl2cmVfSUlJX3RpdHJlX1ZfY2hhcF9JSUlcIiwgZW1iZWRfYm9vbFxuICAgIHguTG9nZW1lbnRGb3llci5jb252ZW50aW9ubmVfbGl2cmVfSUlJX3RpdHJlX1ZfY2hhcF9JSUkpO1xuICAgIChcImNvbnZlbnRpb25uw6lfc2Vsb25fcsOoZ2xlc19tYXlvdHRlXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkxvZ2VtZW50Rm95ZXIuY29udmVudGlvbm5lX3NlbG9uX3JlZ2xlc19tYXlvdHRlKTtcbiAgICAoXCJkYXRlX2NvbnZlbnRpb25uZW1lbnRcIiwgZW1iZWRfZGF0ZVxuICAgIHguTG9nZW1lbnRGb3llci5kYXRlX2NvbnZlbnRpb25uZW1lbnQpO1xuICAgIChcImNvbnN0cnVpdF9hcHBsaWNhdGlvbl9sb2lfMTk1N18xMl9JSUlcIiwgZW1iZWRfYm9vbFxuICAgIHguTG9nZW1lbnRGb3llci5jb25zdHJ1aXRfYXBwbGljYXRpb25fbG9pXzE5NTdfMTJfSUlJKTtcbiAgICAoXCJyZWRldmFuY2VcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkxvZ2VtZW50Rm95ZXIucmVkZXZhbmNlKTtcbiAgICAoXCJjYXTDqWdvcmllX8OpcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2XCIsXG4gICAgZW1iZWRfY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJcbiAgICB4LkxvZ2VtZW50Rm95ZXIuY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTYpO1xuICAgIChcImLDqW7DqWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcMOpc1wiLCBlbWJlZF9ib29sXG4gICAgeC5Mb2dlbWVudEZveWVyLmJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlcyk7XG4gICAgKFwibG9nZW1lbnRfbWV1YmzDqV9kODQyXzJcIiwgZW1iZWRfYm9vbFxuICAgIHguTG9nZW1lbnRGb3llci5sb2dlbWVudF9tZXVibGVfZDg0Ml8yKV0pXG5cblxubW9kdWxlIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcyA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgaWRlbnRpZmlhbnQ6IGludGVnZXI7XG4gICAgb2JsaWdhdGlvbl9zY29sYWlyZTogU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLnQ7XG4gICAgcmVtdW5lcmF0aW9uX21lbnN1ZWxsZTogbW9uZXk7XG4gICAgZGF0ZV9kZV9uYWlzc2FuY2U6IGRhdGU7XG4gICAgcHJpc2VfZW5fY2hhcmdlOiBQcmlzZUVuQ2hhcmdlRW5mYW50LnQ7XG4gICAgYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlczogYm9vbDtcbiAgICBiZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQ6IGJvb2xcbiAgfVxuZW5kXG5sZXQgZW1iZWRfZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgKHg6IEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzXCJdLFxuICBbKFwiaWRlbnRpZmlhbnRcIiwgZW1iZWRfaW50ZWdlclxuICAgIHguRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmlkZW50aWZpYW50KTtcbiAgICAoXCJvYmxpZ2F0aW9uX3Njb2xhaXJlXCIsIGVtYmVkX3NpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlXG4gICAgeC5FbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMub2JsaWdhdGlvbl9zY29sYWlyZSk7XG4gICAgKFwicsOpbXVuZXJhdGlvbl9tZW5zdWVsbGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5yZW11bmVyYXRpb25fbWVuc3VlbGxlKTtcbiAgICAoXCJkYXRlX2RlX25haXNzYW5jZVwiLCBlbWJlZF9kYXRlXG4gICAgeC5FbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuZGF0ZV9kZV9uYWlzc2FuY2UpO1xuICAgIChcInByaXNlX2VuX2NoYXJnZVwiLCBlbWJlZF9wcmlzZV9lbl9jaGFyZ2VfZW5mYW50XG4gICAgeC5FbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMucHJpc2VfZW5fY2hhcmdlKTtcbiAgICAoXCJhX2TDqWrDoF9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcIiwgZW1iZWRfYm9vbFxuICAgIHguRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmFfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMpO1xuICAgIChcImLDqW7DqWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50XCIsIGVtYmVkX2Jvb2xcbiAgICB4LkVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQpXSlcblxuXG5tb2R1bGUgVHlwZUJhaWxsZXVyID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IEJhaWxsZXVyU29jaWFsIG9mIENvbnZlbnRpb25CYWlsbGV1clNvY2lhbC50XG4gICAgfCBCYWlsbGV1clByaXZlQXZlY0NvbnZlbnRpb25uZW1lbnRTb2NpYWwgb2YgQ29udmVudGlvbkFOSEEudFxuICAgIHwgQmFpbGxldXJQcml2ZSBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX3R5cGVfYmFpbGxldXIgKHg6IFR5cGVCYWlsbGV1ci50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlR5cGVCYWlsbGV1clwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBCYWlsbGV1clNvY2lhbCB4IC0+XG4gICAgICAoXCJCYWlsbGV1clNvY2lhbFwiLCBlbWJlZF9jb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbCB4KVxuICAgIHwgQmFpbGxldXJQcml2ZUF2ZWNDb252ZW50aW9ubmVtZW50U29jaWFsIHggLT5cbiAgICAgIChcIkJhaWxsZXVyUHJpdsOpQXZlY0NvbnZlbnRpb25uZW1lbnRTb2NpYWxcIiwgZW1iZWRfY29udmVudGlvbl9hX25faF9hIHgpXG4gICAgfCBCYWlsbGV1clByaXZlIHggLT4gKFwiQmFpbGxldXJQcml2w6lcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgTG91ZU91U291c0xvdWVBRGVzVGllcnMgPSBzdHJ1Y3RcbiB0eXBlIHQgPVxuICAgIHwgTm9uIG9mIHVuaXRcbiAgICB8IE91aSBvZiBQZXJzb25uZVNvdXNMb2NhdGlvbi50XG4gIGVuZFxubGV0IGVtYmVkX2xvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzICh4OiBMb3VlT3VTb3VzTG91ZUFEZXNUaWVycy50KVxuICA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIkxvdcOpT3VTb3VzTG91w6nDgERlc1RpZXJzXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IE5vbiB4IC0+IChcIk5vblwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBPdWkgeCAtPiAoXCJPdWlcIiwgZW1iZWRfcGVyc29ubmVfc291c19sb2NhdGlvbiB4KSlcblxuXG5tb2R1bGUgTmF0aW9uYWxpdGUgPSBzdHJ1Y3RcbiB0eXBlIHQgPVxuICAgIHwgRnJhbmNhaXNlIG9mIHVuaXRcbiAgICB8IEV0cmFuZ2VyZSBvZiBDb25kaXRpb25zRXRyYW5nZXJzLnRcbiAgZW5kXG5sZXQgZW1iZWRfbmF0aW9uYWxpdGUgKHg6IE5hdGlvbmFsaXRlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiTmF0aW9uYWxpdMOpXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IEZyYW5jYWlzZSB4IC0+IChcIkZyYW7Dp2Fpc2VcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgRXRyYW5nZXJlIHggLT4gKFwiw4l0cmFuZ8OocmVcIiwgZW1iZWRfY29uZGl0aW9uc19ldHJhbmdlcnMgeCkpXG5cblxubW9kdWxlIENoYW5nZW1lbnRMb2dlbWVudEQ4NDI0ID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IENoYW5nZW1lbnQgb2YgSW5mb3NDaGFuZ2VtZW50TG9nZW1lbnREODQyNC50XG4gICAgfCBQYXNEZUNoYW5nZW1lbnQgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNCAoeDogQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQudClcbiAgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJDaGFuZ2VtZW50TG9nZW1lbnREODQyXzRcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgQ2hhbmdlbWVudCB4IC0+XG4gICAgICAoXCJDaGFuZ2VtZW50XCIsIGVtYmVkX2luZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80IHgpXG4gICAgfCBQYXNEZUNoYW5nZW1lbnQgeCAtPiAoXCJQYXNEZUNoYW5nZW1lbnRcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgSW5mb3JtYXRpb25zUHJpbWVEZURlbWVuYWdlbWVudCA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgbm9tYnJlX2VuZmFudHNfYV9uYWl0cmVfYXByZXNfdHJvaXNpZW1lX21vaXNfZ3Jvc3Nlc3NlOiBpbnRlZ2VyO1xuICAgIGRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9lbmZhbnRfb3VfZGVybmllcl9zaV9wbHVzOlxuICAgICAgRGF0ZU5haXNzYW5jZVRyb2lzaWVtZU91RGVybmllclBsdXNFbmZhbnQudFxuICB9XG5lbmRcbmxldCBlbWJlZF9pbmZvcm1hdGlvbnNfcHJpbWVfZGVfZGVtZW5hZ2VtZW50ICh4OiBJbmZvcm1hdGlvbnNQcmltZURlRGVtZW5hZ2VtZW50LnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJJbmZvcm1hdGlvbnNQcmltZURlRMOpbcOpbmFnZW1lbnRcIl0sXG4gIFsoXCJub21icmVfZW5mYW50c1/DoF9uYcOudHJlX2FwcsOoc190cm9pc2nDqG1lX21vaXNfZ3Jvc3Nlc3NlXCIsXG4gICAgZW1iZWRfaW50ZWdlclxuICAgIHguSW5mb3JtYXRpb25zUHJpbWVEZURlbWVuYWdlbWVudC5ub21icmVfZW5mYW50c19hX25haXRyZV9hcHJlc190cm9pc2llbWVfbW9pc19ncm9zc2Vzc2UpO1xuICAgIChcImRhdGVfbmFpc3NhbmNlX3Ryb2lzacOobWVfZW5mYW50X291X2Rlcm5pZXJfc2lfcGx1c1wiLFxuICAgIGVtYmVkX2RhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9vdV9kZXJuaWVyX3BsdXNfZW5mYW50XG4gICAgeC5JbmZvcm1hdGlvbnNQcmltZURlRGVtZW5hZ2VtZW50LmRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9lbmZhbnRfb3VfZGVybmllcl9zaV9wbHVzKV0pXG5cblxubW9kdWxlIFByb3ByaWV0YWlyZSA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgbWVuc3VhbGl0ZV9wcmluY2lwYWxlOiBtb25leTtcbiAgICBjaGFyZ2VzX21lbnN1ZWxsZXNfcHJldDogbW9uZXk7XG4gICAgZGF0ZV9lbnRyZWVfbG9nZW1lbnQ6IGRhdGU7XG4gICAgdHlwZV90cmF2YXV4X2xvZ2VtZW50X2Q4MzJfMTU6IFR5cGVUcmF2YXV4TG9nZW1lbnREODMyMTUudDtcbiAgICB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81OiBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUudDtcbiAgICBsb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW5lZmljaWFpcmU6IGJvb2w7XG4gICAgY29wcm9wcmlldGU6IGJvb2w7XG4gICAgc2l0dWF0aW9uX3I4MjJfMTFfMTNfMTc6IGJvb2w7XG4gICAgYW5jaWVubmV0ZV9sb2dlbWVudDogTmV1Zk91QW5jaWVuLnQ7XG4gICAgcHJldDogUHJldC50O1xuICAgIG9wZXJhdGlvbnNfbG9nZW1lbnRfZXZvbHV0aWZzX3NvY2lhdXhfYWNjZXNzaW9uX3Byb3ByaWV0ZV9haWRlZV9FdGF0OlxuICAgICAgYm9vbFxuICB9XG5lbmRcbmxldCBlbWJlZF9wcm9wcmlldGFpcmUgKHg6IFByb3ByaWV0YWlyZS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiUHJvcHJpw6l0YWlyZVwiXSxcbiAgWyhcIm1lbnN1YWxpdMOpX3ByaW5jaXBhbGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LlByb3ByaWV0YWlyZS5tZW5zdWFsaXRlX3ByaW5jaXBhbGUpO1xuICAgIChcImNoYXJnZXNfbWVuc3VlbGxlc19wcsOqdFwiLCBlbWJlZF9tb25leVxuICAgIHguUHJvcHJpZXRhaXJlLmNoYXJnZXNfbWVuc3VlbGxlc19wcmV0KTtcbiAgICAoXCJkYXRlX2VudHLDqWVfbG9nZW1lbnRcIiwgZW1iZWRfZGF0ZVxuICAgIHguUHJvcHJpZXRhaXJlLmRhdGVfZW50cmVlX2xvZ2VtZW50KTtcbiAgICAoXCJ0eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNVwiLCBlbWJlZF90eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNVxuICAgIHguUHJvcHJpZXRhaXJlLnR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1KTtcbiAgICAoXCJ0eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81XCIsIGVtYmVkX3R5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzVcbiAgICB4LlByb3ByaWV0YWlyZS50eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81KTtcbiAgICAoXCJsb2NhbF9oYWJpdMOpX3ByZW1pw6hyZV9mb2lzX2LDqW7DqWZpY2lhaXJlXCIsIGVtYmVkX2Jvb2xcbiAgICB4LlByb3ByaWV0YWlyZS5sb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW5lZmljaWFpcmUpO1xuICAgIChcImNvcHJvcHJpw6l0w6lcIiwgZW1iZWRfYm9vbFxuICAgIHguUHJvcHJpZXRhaXJlLmNvcHJvcHJpZXRlKTtcbiAgICAoXCJzaXR1YXRpb25fcjgyMl8xMV8xM18xN1wiLCBlbWJlZF9ib29sXG4gICAgeC5Qcm9wcmlldGFpcmUuc2l0dWF0aW9uX3I4MjJfMTFfMTNfMTcpO1xuICAgIChcImFuY2llbm5ldMOpX2xvZ2VtZW50XCIsIGVtYmVkX25ldWZfb3VfYW5jaWVuXG4gICAgeC5Qcm9wcmlldGFpcmUuYW5jaWVubmV0ZV9sb2dlbWVudCk7XG4gICAgKFwicHLDqnRcIiwgZW1iZWRfcHJldFxuICAgIHguUHJvcHJpZXRhaXJlLnByZXQpO1xuICAgIChcIm9ww6lyYXRpb25zX2xvZ2VtZW50X8Opdm9sdXRpZnNfc29jaWF1eF9hY2Nlc3Npb25fcHJvcHJpw6l0w6lfYWlkw6llX8OJdGF0XCIsXG4gICAgZW1iZWRfYm9vbFxuICAgIHguUHJvcHJpZXRhaXJlLm9wZXJhdGlvbnNfbG9nZW1lbnRfZXZvbHV0aWZzX3NvY2lhdXhfYWNjZXNzaW9uX3Byb3ByaWV0ZV9haWRlZV9FdGF0KV0pXG5cblxubW9kdWxlIEVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBhZ2VfbDUxMl8zXzI6IGR1cmF0aW9uO1xuICAgIGRyb2l0X291dmVydDogRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQgLT4gYm9vbDtcbiAgICBjb25kaXRpb25zX2hvcnNfYWdlOiBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCAtPiBib29sO1xuICAgIHJlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xOiBib29sXG4gIH1cbmVuZFxubGV0IGVtYmVkX2VsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgKHg6IEVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCJdLFxuICBbKFwiw6JnZV9sNTEyXzNfMlwiLCBlbWJlZF9kdXJhdGlvblxuICAgIHguRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuYWdlX2w1MTJfM18yKTtcbiAgICAoXCJkcm9pdF9vdXZlcnRcIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcy5kcm9pdF9vdXZlcnQpO1xuICAgIChcImNvbmRpdGlvbnNfaG9yc1/DomdlXCIsIHVuZW1iZWRkYWJsZVxuICAgIHguRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuY29uZGl0aW9uc19ob3JzX2FnZSk7XG4gICAgKFwicsOpZ2ltZV9vdXRyZV9tZXJfbDc1MV8xXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzLnJlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xKV0pXG5cblxubW9kdWxlIERlbWFuZGV1ciA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgZGF0ZV9uYWlzc2FuY2U6IGRhdGU7XG4gICAgbmF0aW9uYWxpdGU6IE5hdGlvbmFsaXRlLnQ7XG4gICAgcGF0cmltb2luZTogUGF0cmltb2luZS50O1xuICAgIHBlcnNvbm5lX2hlYmVyZ2VlX2NlbnRyZV9zb2luX2xfTDE2Ml8yMl8zX3NlY3VyaXRlX3NvY2lhbGU6IGJvb2w7XG4gICAgZXN0X25vbl9zYWxhcmllX2Fncmljb2xlX2w3ODFfOF9sXzc4MV80Nl9jb2RlX3J1cmFsOiBib29sO1xuICAgIG1hZ2lzdHJhdF9mb25jdGlvbm5haXJlX2NlbnRyZV9pbnRlcmV0c19tYXRlcmllbHNfZmFtaWxpYXV4X2hvcnNfbWF5b3R0ZTpcbiAgICAgIGJvb2xcbiAgfVxuZW5kXG5sZXQgZW1iZWRfZGVtYW5kZXVyICh4OiBEZW1hbmRldXIudCkgOiBydW50aW1lX3ZhbHVlID0gU3RydWN0KFtcIkRlbWFuZGV1clwiXSxcbiAgWyhcImRhdGVfbmFpc3NhbmNlXCIsIGVtYmVkX2RhdGUgeC5EZW1hbmRldXIuZGF0ZV9uYWlzc2FuY2UpO1xuICAgIChcIm5hdGlvbmFsaXTDqVwiLCBlbWJlZF9uYXRpb25hbGl0ZVxuICAgIHguRGVtYW5kZXVyLm5hdGlvbmFsaXRlKTtcbiAgICAoXCJwYXRyaW1vaW5lXCIsIGVtYmVkX3BhdHJpbW9pbmVcbiAgICB4LkRlbWFuZGV1ci5wYXRyaW1vaW5lKTtcbiAgICAoXCJwZXJzb25uZV9ow6liZXJnw6llX2NlbnRyZV9zb2luX2xfTDE2Ml8yMl8zX3PDqWN1cml0w6lfc29jaWFsZVwiLFxuICAgIGVtYmVkX2Jvb2xcbiAgICB4LkRlbWFuZGV1ci5wZXJzb25uZV9oZWJlcmdlZV9jZW50cmVfc29pbl9sX0wxNjJfMjJfM19zZWN1cml0ZV9zb2NpYWxlKTtcbiAgICAoXCJlc3Rfbm9uX3NhbGFyacOpX2Fncmljb2xlX2w3ODFfOF9sXzc4MV80Nl9jb2RlX3J1cmFsXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkRlbWFuZGV1ci5lc3Rfbm9uX3NhbGFyaWVfYWdyaWNvbGVfbDc4MV84X2xfNzgxXzQ2X2NvZGVfcnVyYWwpO1xuICAgIChcIm1hZ2lzdHJhdF9mb25jdGlvbm5haXJlX2NlbnRyZV9pbnTDqXLDqnRzX21hdMOpcmllbHNfZmFtaWxpYXV4X2hvcnNfbWF5b3R0ZVwiLFxuICAgIGVtYmVkX2Jvb2xcbiAgICB4LkRlbWFuZGV1ci5tYWdpc3RyYXRfZm9uY3Rpb25uYWlyZV9jZW50cmVfaW50ZXJldHNfbWF0ZXJpZWxzX2ZhbWlsaWF1eF9ob3JzX21heW90dGUpXSlcblxuXG5tb2R1bGUgRW5mYW50QUNoYXJnZSA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgaWRlbnRpZmlhbnQ6IGludGVnZXI7XG4gICAgbmF0aW9uYWxpdGU6IE5hdGlvbmFsaXRlLnQ7XG4gICAgYmVuZWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50OiBib29sO1xuICAgIGFfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXM6IGJvb2w7XG4gICAgZGF0ZV9kZV9uYWlzc2FuY2U6IGRhdGU7XG4gICAgcmVtdW5lcmF0aW9uX21lbnN1ZWxsZTogbW9uZXk7XG4gICAgb2JsaWdhdGlvbl9zY29sYWlyZTogU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLnQ7XG4gICAgc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlOiBTaXR1YXRpb25HYXJkZUFsdGVybmVlLnQ7XG4gICAgZXR1ZGVzX2FwcHJlbnRpc3NhZ2Vfc3RhZ2VfZm9ybWF0aW9uX3Byb19pbXBvc3NpYmlsaXRlX3RyYXZhaWw6IGJvb2xcbiAgfVxuZW5kXG5sZXQgZW1iZWRfZW5mYW50X2FfY2hhcmdlICh4OiBFbmZhbnRBQ2hhcmdlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJFbmZhbnTDgENoYXJnZVwiXSxcbiAgWyhcImlkZW50aWZpYW50XCIsIGVtYmVkX2ludGVnZXJcbiAgICB4LkVuZmFudEFDaGFyZ2UuaWRlbnRpZmlhbnQpO1xuICAgIChcIm5hdGlvbmFsaXTDqVwiLCBlbWJlZF9uYXRpb25hbGl0ZVxuICAgIHguRW5mYW50QUNoYXJnZS5uYXRpb25hbGl0ZSk7XG4gICAgKFwiYsOpbsOpZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnRcIiwgZW1iZWRfYm9vbFxuICAgIHguRW5mYW50QUNoYXJnZS5iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQpO1xuICAgIChcImFfZMOpasOgX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1wiLCBlbWJlZF9ib29sXG4gICAgeC5FbmZhbnRBQ2hhcmdlLmFfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMpO1xuICAgIChcImRhdGVfZGVfbmFpc3NhbmNlXCIsIGVtYmVkX2RhdGVcbiAgICB4LkVuZmFudEFDaGFyZ2UuZGF0ZV9kZV9uYWlzc2FuY2UpO1xuICAgIChcInLDqW11bmVyYXRpb25fbWVuc3VlbGxlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5FbmZhbnRBQ2hhcmdlLnJlbXVuZXJhdGlvbl9tZW5zdWVsbGUpO1xuICAgIChcIm9ibGlnYXRpb25fc2NvbGFpcmVcIiwgZW1iZWRfc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmVcbiAgICB4LkVuZmFudEFDaGFyZ2Uub2JsaWdhdGlvbl9zY29sYWlyZSk7XG4gICAgKFwic2l0dWF0aW9uX2dhcmRlX2FsdGVybsOpZVwiLCBlbWJlZF9zaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWVcbiAgICB4LkVuZmFudEFDaGFyZ2Uuc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlKTtcbiAgICAoXCLDqXR1ZGVzX2FwcHJlbnRpc3NhZ2Vfc3RhZ2VfZm9ybWF0aW9uX3Byb19pbXBvc3NpYmlsaXTDqV90cmF2YWlsXCIsXG4gICAgZW1iZWRfYm9vbFxuICAgIHguRW5mYW50QUNoYXJnZS5ldHVkZXNfYXBwcmVudGlzc2FnZV9zdGFnZV9mb3JtYXRpb25fcHJvX2ltcG9zc2liaWxpdGVfdHJhdmFpbCldKVxuXG5cbm1vZHVsZSBMb2NhdGlvbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgYmFpbGxldXI6IFR5cGVCYWlsbGV1ci50O1xuICAgIGxveWVyX3ByaW5jaXBhbDogbW9uZXk7XG4gICAgYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzOiBib29sO1xuICAgIGxvZ2VtZW50X2VzdF9jaGFtYnJlOiBib29sO1xuICAgIGNvbG9jYXRpb246IGJvb2w7XG4gICAgYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnM6IGJvb2w7XG4gICAgbG9nZW1lbnRfbWV1YmxlX2Q4NDJfMjogYm9vbDtcbiAgICBjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNDogQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQudFxuICB9XG5lbmRcbmxldCBlbWJlZF9sb2NhdGlvbiAoeDogTG9jYXRpb24udCkgOiBydW50aW1lX3ZhbHVlID0gU3RydWN0KFtcIkxvY2F0aW9uXCJdLFxuICBbKFwiYmFpbGxldXJcIiwgZW1iZWRfdHlwZV9iYWlsbGV1ciB4LkxvY2F0aW9uLmJhaWxsZXVyKTtcbiAgICAoXCJsb3llcl9wcmluY2lwYWxcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkxvY2F0aW9uLmxveWVyX3ByaW5jaXBhbCk7XG4gICAgKFwiYsOpbsOpZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2Fww6lzXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkxvY2F0aW9uLmJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlcyk7XG4gICAgKFwibG9nZW1lbnRfZXN0X2NoYW1icmVcIiwgZW1iZWRfYm9vbFxuICAgIHguTG9jYXRpb24ubG9nZW1lbnRfZXN0X2NoYW1icmUpO1xuICAgIChcImNvbG9jYXRpb25cIiwgZW1iZWRfYm9vbFxuICAgIHguTG9jYXRpb24uY29sb2NhdGlvbik7XG4gICAgKFwiw6Jnw6llc19vdV9oYW5kaWNhcF9hZHVsdGVzX2jDqWJlcmfDqWVzX29uw6lyZXV4X3BhcnRpY3VsaWVyc1wiLFxuICAgIGVtYmVkX2Jvb2xcbiAgICB4LkxvY2F0aW9uLmFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzKTtcbiAgICAoXCJsb2dlbWVudF9tZXVibMOpX2Q4NDJfMlwiLCBlbWJlZF9ib29sXG4gICAgeC5Mb2NhdGlvbi5sb2dlbWVudF9tZXVibGVfZDg0Ml8yKTtcbiAgICAoXCJjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNFwiLCBlbWJlZF9jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNFxuICAgIHguTG9jYXRpb24uY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzQpXSlcblxuXG5tb2R1bGUgUGVyc29ubmVBQ2hhcmdlID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IEVuZmFudEFDaGFyZ2Ugb2YgRW5mYW50QUNoYXJnZS50XG4gICAgfCBBdXRyZVBlcnNvbm5lQUNoYXJnZSBvZiBBdXRyZVBlcnNvbm5lQUNoYXJnZS50XG4gIGVuZFxubGV0IGVtYmVkX3BlcnNvbm5lX2FfY2hhcmdlICh4OiBQZXJzb25uZUFDaGFyZ2UudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJQZXJzb25uZcOAQ2hhcmdlXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IEVuZmFudEFDaGFyZ2UgeCAtPiAoXCJFbmZhbnTDgENoYXJnZVwiLCBlbWJlZF9lbmZhbnRfYV9jaGFyZ2UgeClcbiAgICB8IEF1dHJlUGVyc29ubmVBQ2hhcmdlIHggLT5cbiAgICAgIChcIkF1dHJlUGVyc29ubmXDgENoYXJnZVwiLCBlbWJlZF9hdXRyZV9wZXJzb25uZV9hX2NoYXJnZSB4KSlcblxuXG5tb2R1bGUgQ2F0ZWdvcmllQ2FsY3VsQVBMID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IExvY2F0aW9uIG9mIExvY2F0aW9uLnRcbiAgICB8IEFjY2Vzc2lvblByb3ByaWV0ZSBvZiBQcm9wcmlldGFpcmUudFxuICAgIHwgTG9nZW1lbnRGb3llciBvZiBMb2dlbWVudEZveWVyLnRcbiAgZW5kXG5sZXQgZW1iZWRfY2F0ZWdvcmllX2NhbGN1bF9hX3BfbCAoeDogQ2F0ZWdvcmllQ2FsY3VsQVBMLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiQ2F0w6lnb3JpZUNhbGN1bEFQTFwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBMb2NhdGlvbiB4IC0+IChcIkxvY2F0aW9uXCIsIGVtYmVkX2xvY2F0aW9uIHgpXG4gICAgfCBBY2Nlc3Npb25Qcm9wcmlldGUgeCAtPiAoXCJBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiLCBlbWJlZF9wcm9wcmlldGFpcmUgeClcbiAgICB8IExvZ2VtZW50Rm95ZXIgeCAtPiAoXCJMb2dlbWVudEZveWVyXCIsIGVtYmVkX2xvZ2VtZW50X2ZveWVyIHgpKVxuXG5cbm1vZHVsZSBNb2RlT2NjdXBhdGlvbiA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBMb2NhdGFpcmUgb2YgTG9jYXRpb24udFxuICAgIHwgUmVzaWRlbnRMb2dlbWVudEZveWVyIG9mIExvZ2VtZW50Rm95ZXIudFxuICAgIHwgQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBvZiBQcm9wcmlldGFpcmUudFxuICAgIHwgU291c0xvY2F0YWlyZSBvZiBMb2NhdGlvbi50XG4gICAgfCBMb2NhdGlvbkFjY2Vzc2lvbiBvZiBQcm9wcmlldGFpcmUudFxuICBlbmRcbmxldCBlbWJlZF9tb2RlX29jY3VwYXRpb24gKHg6IE1vZGVPY2N1cGF0aW9uLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiTW9kZU9jY3VwYXRpb25cIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgTG9jYXRhaXJlIHggLT4gKFwiTG9jYXRhaXJlXCIsIGVtYmVkX2xvY2F0aW9uIHgpXG4gICAgfCBSZXNpZGVudExvZ2VtZW50Rm95ZXIgeCAtPlxuICAgICAgKFwiUsOpc2lkZW50TG9nZW1lbnRGb3llclwiLCBlbWJlZF9sb2dlbWVudF9mb3llciB4KVxuICAgIHwgQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiB4IC0+XG4gICAgICAoXCJBY2Nlc3Npb25Qcm9wcmnDqXTDqUxvY2FsVXNhZ2VFeGNsdXNpZkhhYml0YXRpb25cIiwgZW1iZWRfcHJvcHJpZXRhaXJlIHgpXG4gICAgfCBTb3VzTG9jYXRhaXJlIHggLT4gKFwiU291c0xvY2F0YWlyZVwiLCBlbWJlZF9sb2NhdGlvbiB4KVxuICAgIHwgTG9jYXRpb25BY2Nlc3Npb24geCAtPiAoXCJMb2NhdGlvbkFjY2Vzc2lvblwiLCBlbWJlZF9wcm9wcmlldGFpcmUgeCkpXG5cblxubW9kdWxlIEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50ID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBkYXRlX2NvdXJhbnRlOiBkYXRlO1xuICAgIGVsaWdpYmlsaXRlOiBib29sO1xuICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZTogaW50ZWdlcjtcbiAgICBjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlOiBkZWNpbWFsIGFycmF5O1xuICAgIGNvbmRpdGlvbl8yX3I4MjNfNDogUGVyc29ubmVBQ2hhcmdlLnQgLT4gYm9vbFxuICB9XG5lbmRcbmxldCBlbWJlZF9lbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCAoeDogRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIl0sXG4gIFsoXCJkYXRlX2NvdXJhbnRlXCIsIGVtYmVkX2RhdGVcbiAgICB4LkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LmRhdGVfY291cmFudGUpO1xuICAgIChcIsOpbGlnaWJpbGl0w6lcIiwgZW1iZWRfYm9vbFxuICAgIHguRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuZWxpZ2liaWxpdGUpO1xuICAgIChcIm5vbWJyZV9wZXJzb25uZXNfw6BfY2hhcmdlX3ByaXNlc19lbl9jb21wdGVcIiwgZW1iZWRfaW50ZWdlclxuICAgIHguRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlKTtcbiAgICAoXCJjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybsOpZV9wcmlzX2VuX2NvbXB0ZVwiLFxuICAgIGVtYmVkX2FycmF5IChlbWJlZF9kZWNpbWFsKVxuICAgIHguRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSk7XG4gICAgKFwiY29uZGl0aW9uXzJfcjgyM180XCIsIHVuZW1iZWRkYWJsZVxuICAgIHguRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuY29uZGl0aW9uXzJfcjgyM180KV0pXG5cblxubW9kdWxlIExvZ2VtZW50ID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICByZXNpZGVuY2VfcHJpbmNpcGFsZTogYm9vbDtcbiAgICBlc3RfZWhwYWRfb3VfbWFpc29uX2F1dG9ub21pZV9sMzEzXzEyX2FzZjogYm9vbDtcbiAgICBtb2RlX29jY3VwYXRpb246IE1vZGVPY2N1cGF0aW9uLnQ7XG4gICAgcHJvcHJpZXRhaXJlOiBQYXJlbnRPdUF1dHJlLnQ7XG4gICAgbG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnM6IExvdWVPdVNvdXNMb3VlQURlc1RpZXJzLnQ7XG4gICAgdXN1ZnJ1aXQ6IFBhcmVudE91QXV0cmUudDtcbiAgICBsb2dlbWVudF9kZWNlbnRfbDg5XzQ2MjogYm9vbDtcbiAgICBzdXJmYWNlX21fY2FycmVzOiBpbnRlZ2VyO1xuICAgIHpvbmU6IFpvbmVESGFiaXRhdGlvbi50XG4gIH1cbmVuZFxubGV0IGVtYmVkX2xvZ2VtZW50ICh4OiBMb2dlbWVudC50KSA6IHJ1bnRpbWVfdmFsdWUgPSBTdHJ1Y3QoW1wiTG9nZW1lbnRcIl0sXG4gIFsoXCJyw6lzaWRlbmNlX3ByaW5jaXBhbGVcIiwgZW1iZWRfYm9vbFxuICAgIHguTG9nZW1lbnQucmVzaWRlbmNlX3ByaW5jaXBhbGUpO1xuICAgIChcImVzdF9laHBhZF9vdV9tYWlzb25fYXV0b25vbWllX2wzMTNfMTJfYXNmXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkxvZ2VtZW50LmVzdF9laHBhZF9vdV9tYWlzb25fYXV0b25vbWllX2wzMTNfMTJfYXNmKTtcbiAgICAoXCJtb2RlX29jY3VwYXRpb25cIiwgZW1iZWRfbW9kZV9vY2N1cGF0aW9uXG4gICAgeC5Mb2dlbWVudC5tb2RlX29jY3VwYXRpb24pO1xuICAgIChcInByb3ByacOpdGFpcmVcIiwgZW1iZWRfcGFyZW50X291X2F1dHJlXG4gICAgeC5Mb2dlbWVudC5wcm9wcmlldGFpcmUpO1xuICAgIChcImxvdcOpX291X3NvdXNfbG91w6lfw6BfZGVzX3RpZXJzXCIsIGVtYmVkX2xvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzXG4gICAgeC5Mb2dlbWVudC5sb3VlX291X3NvdXNfbG91ZV9hX2Rlc190aWVycyk7XG4gICAgKFwidXN1ZnJ1aXRcIiwgZW1iZWRfcGFyZW50X291X2F1dHJlXG4gICAgeC5Mb2dlbWVudC51c3VmcnVpdCk7XG4gICAgKFwibG9nZW1lbnRfZGVjZW50X2w4OV80NjJcIiwgZW1iZWRfYm9vbFxuICAgIHguTG9nZW1lbnQubG9nZW1lbnRfZGVjZW50X2w4OV80NjIpO1xuICAgIChcInN1cmZhY2VfbV9jYXJyw6lzXCIsIGVtYmVkX2ludGVnZXIgeC5Mb2dlbWVudC5zdXJmYWNlX21fY2FycmVzKTtcbiAgICAoXCJ6b25lXCIsIGVtYmVkX3pvbmVfZF9oYWJpdGF0aW9uIHguTG9nZW1lbnQuem9uZSldKVxuXG5cbm1vZHVsZSBNZW5hZ2UgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIHByZXN0YXRpb25zX3JlY3VlczogUHJlc3RhdGlvblJlY3VlLnQgYXJyYXk7XG4gICAgbG9nZW1lbnQ6IExvZ2VtZW50LnQ7XG4gICAgcGVyc29ubmVzX2FfY2hhcmdlOiBQZXJzb25uZUFDaGFyZ2UudCBhcnJheTtcbiAgICBub21icmVfYXV0cmVzX29jY3VwYW50c19sb2dlbWVudDogaW50ZWdlcjtcbiAgICBzaXR1YXRpb25fZmFtaWxpYWxlOiBTaXR1YXRpb25GYW1pbGlhbGUudDtcbiAgICBjb25kaXRpb25fcmF0dGFjaGVfZm95ZXJfZmlzY2FsX3BhcmVudF9pZmk6IGJvb2w7XG4gICAgZW5mYW50X2FfbmFpdHJlX2FwcmVzX3F1YXRyaWVtZV9tb2lzX2dyb3NzZXNzZTogYm9vbDtcbiAgICBwZXJzb25uZXNfYWdlZXNfaGFuZGljYXBlZXNfZm95ZXJfcjg0NF80OiBib29sO1xuICAgIHJlc2lkZW5jZTogQ29sbGVjdGl2aXRlLnRcbiAgfVxuZW5kXG5sZXQgZW1iZWRfbWVuYWdlICh4OiBNZW5hZ2UudCkgOiBydW50aW1lX3ZhbHVlID0gU3RydWN0KFtcIk3DqW5hZ2VcIl0sXG4gIFsoXCJwcmVzdGF0aW9uc19yZcOndWVzXCIsIGVtYmVkX2FycmF5IChlbWJlZF9wcmVzdGF0aW9uX3JlY3VlKVxuICAgIHguTWVuYWdlLnByZXN0YXRpb25zX3JlY3Vlcyk7XG4gICAgKFwibG9nZW1lbnRcIiwgZW1iZWRfbG9nZW1lbnQgeC5NZW5hZ2UubG9nZW1lbnQpO1xuICAgIChcInBlcnNvbm5lc1/DoF9jaGFyZ2VcIiwgZW1iZWRfYXJyYXkgKGVtYmVkX3BlcnNvbm5lX2FfY2hhcmdlKVxuICAgIHguTWVuYWdlLnBlcnNvbm5lc19hX2NoYXJnZSk7XG4gICAgKFwibm9tYnJlX2F1dHJlc19vY2N1cGFudHNfbG9nZW1lbnRcIiwgZW1iZWRfaW50ZWdlclxuICAgIHguTWVuYWdlLm5vbWJyZV9hdXRyZXNfb2NjdXBhbnRzX2xvZ2VtZW50KTtcbiAgICAoXCJzaXR1YXRpb25fZmFtaWxpYWxlXCIsIGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVcbiAgICB4Lk1lbmFnZS5zaXR1YXRpb25fZmFtaWxpYWxlKTtcbiAgICAoXCJjb25kaXRpb25fcmF0dGFjaMOpX2ZveWVyX2Zpc2NhbF9wYXJlbnRfaWZpXCIsIGVtYmVkX2Jvb2xcbiAgICB4Lk1lbmFnZS5jb25kaXRpb25fcmF0dGFjaGVfZm95ZXJfZmlzY2FsX3BhcmVudF9pZmkpO1xuICAgIChcImVuZmFudF/DoF9uYcOudHJlX2FwcsOoc19xdWF0cmnDqG1lX21vaXNfZ3Jvc3Nlc3NlXCIsIGVtYmVkX2Jvb2xcbiAgICB4Lk1lbmFnZS5lbmZhbnRfYV9uYWl0cmVfYXByZXNfcXVhdHJpZW1lX21vaXNfZ3Jvc3Nlc3NlKTtcbiAgICAoXCJwZXJzb25uZXNfw6Jnw6llc19oYW5kaWNhcMOpZXNfZm95ZXJfcjg0NF80XCIsIGVtYmVkX2Jvb2xcbiAgICB4Lk1lbmFnZS5wZXJzb25uZXNfYWdlZXNfaGFuZGljYXBlZXNfZm95ZXJfcjg0NF80KTtcbiAgICAoXCJyw6lzaWRlbmNlXCIsIGVtYmVkX2NvbGxlY3Rpdml0ZSB4Lk1lbmFnZS5yZXNpZGVuY2UpXSlcblxuXG5tb2R1bGUgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgbWVuYWdlX2luOiBNZW5hZ2UudDtcbiAgICBkZW1hbmRldXJfaW46IERlbWFuZGV1ci50O1xuICAgIGRhdGVfY291cmFudGVfaW46IGRhdGU7XG4gICAgY29uZGl0aW9uX2xvZ2VtZW50X3Jlc2lkZW5jZV9wcmluY2lwYWxlX2luOiB1bml0IC0+IGJvb2w7XG4gICAgY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfaW46IHVuaXQgLT4gYm9vbDtcbiAgICBkYXRlX2VudHJlZV92aWd1ZXVyX2RpZmZlcmVlX2NjaF9pbjogdW5pdCAtPiBkYXRlXG4gIH1cbmVuZFxubGV0IGVtYmVkX2VsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luICh4OiBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50X2luXCJdLFxuICBbKFwibcOpbmFnZV9pblwiLCBlbWJlZF9tZW5hZ2VcbiAgICB4LkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4ubWVuYWdlX2luKTtcbiAgICAoXCJkZW1hbmRldXJfaW5cIiwgZW1iZWRfZGVtYW5kZXVyXG4gICAgeC5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRlbWFuZGV1cl9pbik7XG4gICAgKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4pO1xuICAgIChcImNvbmRpdGlvbl9sb2dlbWVudF9yw6lzaWRlbmNlX3ByaW5jaXBhbGVfaW5cIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmNvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcHJpbmNpcGFsZV9pbik7XG4gICAgKFwiY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfaW5cIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmNvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlX2luKTtcbiAgICAoXCJkYXRlX2VudHLDqWVfdmlndWV1cl9kaWZmw6lyw6llX2NjaF9pblwiLCB1bmVtYmVkZGFibGVcbiAgICB4LkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jY2hfaW4pXSlcblxuXG5tb2R1bGUgRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIG1lbmFnZV9pbjogTWVuYWdlLnQ7XG4gICAgZGVtYW5kZXVyX2luOiBEZW1hbmRldXIudDtcbiAgICBkYXRlX2NvdXJhbnRlX2luOiBkYXRlXG4gIH1cbmVuZFxubGV0IGVtYmVkX2VsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiAoeDogRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudF9pblwiXSxcbiAgWyhcIm3DqW5hZ2VfaW5cIiwgZW1iZWRfbWVuYWdlXG4gICAgeC5FbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi5tZW5hZ2VfaW4pO1xuICAgIChcImRlbWFuZGV1cl9pblwiLCBlbWJlZF9kZW1hbmRldXJcbiAgICB4LkVsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLmRlbWFuZGV1cl9pbik7XG4gICAgKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5FbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luKV0pXG5cblxubW9kdWxlIEVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50SW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGRhdGVfY291cmFudGVfaW46IGRhdGU7XG4gICAgbWVuYWdlX2luOiBNZW5hZ2UudDtcbiAgICBkZW1hbmRldXJfaW46IERlbWFuZGV1ci50O1xuICAgIGJlbmVmaWNpZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW46IGJvb2xcbiAgfVxuZW5kXG5sZXQgZW1iZWRfZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiAoeDogRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnRJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiw4lsaWdpYmlsaXTDqUFsbG9jYXRpb25Mb2dlbWVudF9pblwiXSxcbiAgWyhcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJtw6luYWdlX2luXCIsIGVtYmVkX21lbmFnZVxuICAgIHguRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnRJbi5tZW5hZ2VfaW4pO1xuICAgIChcImRlbWFuZGV1cl9pblwiLCBlbWJlZF9kZW1hbmRldXJcbiAgICB4LkVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50SW4uZGVtYW5kZXVyX2luKTtcbiAgICAoXCJiw6luw6lmaWNpZV9haWRlX3BlcnNvbm5hbGlzw6llX2xvZ2VtZW50X2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50SW4uYmVuZWZpY2llX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbildKVxuXG5cbm1vZHVsZSBFbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnRJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgaW5mb3JtYXRpb25zX2luOiBJbmZvcm1hdGlvbnNQcmltZURlRGVtZW5hZ2VtZW50LnQ7XG4gICAgZGF0ZV9lbW1lbmFnZW1lbnRfaW46IGRhdGU7XG4gICAgbWVuYWdlX2luOiBNZW5hZ2UudDtcbiAgICBkZW1hbmRldXJfaW46IERlbWFuZGV1ci50O1xuICAgIGRhdGVfY291cmFudGVfaW46IGRhdGU7XG4gICAgZGVwZW5zZXNfanVzdGlmaWVlc19yZWVsbGVtZW50X2VuZ2FnZWVzX2luOiBtb25leVxuICB9XG5lbmRcbmxldCBlbWJlZF9lbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4gKHg6IEVsaWdpYmlsaXRlUHJpbWVEZURlbWVuYWdlbWVudEluLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCLDiWxpZ2liaWxpdMOpUHJpbWVEZUTDqW3DqW5hZ2VtZW50X2luXCJdLFxuICBbKFwiaW5mb3JtYXRpb25zX2luXCIsIGVtYmVkX2luZm9ybWF0aW9uc19wcmltZV9kZV9kZW1lbmFnZW1lbnRcbiAgICB4LkVsaWdpYmlsaXRlUHJpbWVEZURlbWVuYWdlbWVudEluLmluZm9ybWF0aW9uc19pbik7XG4gICAgKFwiZGF0ZV9lbW3DqW5hZ2VtZW50X2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkVsaWdpYmlsaXRlUHJpbWVEZURlbWVuYWdlbWVudEluLmRhdGVfZW1tZW5hZ2VtZW50X2luKTtcbiAgICAoXCJtw6luYWdlX2luXCIsIGVtYmVkX21lbmFnZVxuICAgIHguRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50SW4ubWVuYWdlX2luKTtcbiAgICAoXCJkZW1hbmRldXJfaW5cIiwgZW1iZWRfZGVtYW5kZXVyXG4gICAgeC5FbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnRJbi5kZW1hbmRldXJfaW4pO1xuICAgIChcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50SW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwiZMOpcGVuc2VzX2p1c3RpZmnDqWVzX3LDqWVsbGVtZW50X2VuZ2Fnw6llc19pblwiLCBlbWJlZF9tb25leVxuICAgIHguRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50SW4uZGVwZW5zZXNfanVzdGlmaWVlc19yZWVsbGVtZW50X2VuZ2FnZWVzX2luKV0pXG5cblxubW9kdWxlIFJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgcmVzc291cmNlc19kZW1hbmRldXJfaW46IG1vbmV5O1xuICAgIHJlc3NvdXJjZXNfY29uam9pbnRfaW46IG1vbmV5O1xuICAgIHBlcnNvbm5lc192aXZhbnRfaGFiaXR1ZWxsZW1lbnRfZm95ZXJfaW46XG4gICAgICBQZXJzb25uZVZpdmFudEhhYml0dWVsbGVtZW50QXVGb3llci50IGFycmF5O1xuICAgIGRlbWFuZGV1cl9leGVyY2VfYWN0aXZpdGVfcmVtdW5lcmVlX2luOiBib29sO1xuICAgIGNvbmpvaW50X2V4ZXJjZV9hY3Rpdml0ZV9yZW11bmVyZWVfaW46IGJvb2w7XG4gICAgcGVyc29ubmVzX2FfY2hhcmdlX2luOiBQZXJzb25uZUFDaGFyZ2UudCBhcnJheTtcbiAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2luOiBTaXR1YXRpb25GYW1pbGlhbGUudDtcbiAgICBtb2RlX29jY3VwYXRpb25faW46IE1vZGVPY2N1cGF0aW9uLnQ7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICBjb25kaXRpb25fYWdlX2JvdXJzZV9lbnNlaWduZW1lbnRfc3VwZXJpZXVyX2luOiBib29sO1xuICAgIGRlbWFuZGV1cl9wb3Vyc3VpdF9kZXNfZXR1ZGVzX2luOiBib29sO1xuICAgIGRhdGVfZGVtYW5kZV9vdV9yZWV4YW1lbl9kcm9pdF9pbjogZGF0ZTtcbiAgICBwYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm9mZXNzaW9ubmVsX2luOlxuICAgICAgUGFpZW1lbnRMb2dlbWVudERpc3RpbmN0UHJvZmVzc2lvbm5lbC50O1xuICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19iYXNlX2luOiBtb25leVxuICB9XG5lbmRcbmxldCBlbWJlZF9yZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luICh4OiBSZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRfaW5cIl0sXG4gIFsoXCJyZXNzb3VyY2VzX2RlbWFuZGV1cl9pblwiLCBlbWJlZF9tb25leVxuICAgIHguUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnJlc3NvdXJjZXNfZGVtYW5kZXVyX2luKTtcbiAgICAoXCJyZXNzb3VyY2VzX2NvbmpvaW50X2luXCIsIGVtYmVkX21vbmV5XG4gICAgeC5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4ucmVzc291cmNlc19jb25qb2ludF9pbik7XG4gICAgKFwicGVyc29ubmVzX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9mb3llcl9pblwiLFxuICAgIGVtYmVkX2FycmF5IChlbWJlZF9wZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnRfYXVfZm95ZXIpXG4gICAgeC5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4ucGVyc29ubmVzX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9mb3llcl9pbik7XG4gICAgKFwiZGVtYW5kZXVyX2V4ZXJjZV9hY3Rpdml0w6lfcsOpbXVuw6lyw6llX2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kZW1hbmRldXJfZXhlcmNlX2FjdGl2aXRlX3JlbXVuZXJlZV9pbik7XG4gICAgKFwiY29uam9pbnRfZXhlcmNlX2FjdGl2aXTDqV9yw6ltdW7DqXLDqWVfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmNvbmpvaW50X2V4ZXJjZV9hY3Rpdml0ZV9yZW11bmVyZWVfaW4pO1xuICAgIChcInBlcnNvbm5lc1/DoF9jaGFyZ2VfaW5cIiwgZW1iZWRfYXJyYXkgKGVtYmVkX3BlcnNvbm5lX2FfY2hhcmdlKVxuICAgIHguUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnBlcnNvbm5lc19hX2NoYXJnZV9pbik7XG4gICAgKFwic2l0dWF0aW9uX2ZhbWlsaWFsZV9pblwiLCBlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlXG4gICAgeC5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9pbik7XG4gICAgKFwibW9kZV9vY2N1cGF0aW9uX2luXCIsIGVtYmVkX21vZGVfb2NjdXBhdGlvblxuICAgIHguUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLm1vZGVfb2NjdXBhdGlvbl9pbik7XG4gICAgKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwiY29uZGl0aW9uX8OiZ2VfYm91cnNlX2Vuc2VpZ25lbWVudF9zdXDDqXJpZXVyX2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5jb25kaXRpb25fYWdlX2JvdXJzZV9lbnNlaWduZW1lbnRfc3VwZXJpZXVyX2luKTtcbiAgICAoXCJkZW1hbmRldXJfcG91cnN1aXRfZGVzX8OpdHVkZXNfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRlbWFuZGV1cl9wb3Vyc3VpdF9kZXNfZXR1ZGVzX2luKTtcbiAgICAoXCJkYXRlX2RlbWFuZGVfb3VfcmVleGFtZW5fZHJvaXRfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRhdGVfZGVtYW5kZV9vdV9yZWV4YW1lbl9kcm9pdF9pbik7XG4gICAgKFwicGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluY3RfcHJvZmVzc2lvbm5lbF9pblwiLFxuICAgIGVtYmVkX3BhaWVtZW50X2xvZ2VtZW50X2Rpc3RpbmN0X3Byb2Zlc3Npb25uZWxcbiAgICB4LlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5wYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm9mZXNzaW9ubmVsX2luKTtcbiAgICAoXCJyZXNzb3VyY2VzX23DqW5hZ2VfYXJyb25kaWVzX2Jhc2VfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfYmFzZV9pbildKVxuXG5cbm1vZHVsZSBDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7ZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZX1cbmVuZFxubGV0IGVtYmVkX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4gKHg6IENvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRfaW5cIl0sXG4gIFsoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4pXSlcblxuXG5tb2R1bGUgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgbG95ZXJfcHJpbmNpcGFsX2Jhc2VfaW46IG1vbmV5O1xuICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbjogbW9uZXk7XG4gICAgYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzX2luOiBib29sO1xuICAgIGRhdGVfY291cmFudGVfaW46IGRhdGU7XG4gICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbjogaW50ZWdlcjtcbiAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW46IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50O1xuICAgIHpvbmVfaW46IFpvbmVESGFiaXRhdGlvbi50O1xuICAgIGxvZ2VtZW50X2VzdF9jaGFtYnJlX2luOiBib29sO1xuICAgIGFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzX2luOiBib29sO1xuICAgIHR5cGVfYWlkZV9pbjogVHlwZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50O1xuICAgIGNvbG9jYXRpb25faW46IGJvb2w7XG4gICAgcmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfaW46IG1vbmV5O1xuICAgIGxvZ2VtZW50X21ldWJsZV9kODQyXzJfaW46IGJvb2w7XG4gICAgcmVzaWRlbmNlX2luOiBDb2xsZWN0aXZpdGUudFxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4gKHg6IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZl9pblwiXSxcbiAgWyhcImxveWVyX3ByaW5jaXBhbF9iYXNlX2luXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmxveWVyX3ByaW5jaXBhbF9iYXNlX2luKTtcbiAgICAoXCJyZXNzb3VyY2VzX23DqW5hZ2VfYXJyb25kaWVzX2luXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbik7XG4gICAgKFwiYsOpbsOpZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2Fww6lzX2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzX2luKTtcbiAgICAoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwibm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VfaW5cIiwgZW1iZWRfaW50ZWdlclxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luKTtcbiAgICAoXCJzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW5cIixcbiAgICBlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbFxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4pO1xuICAgIChcInpvbmVfaW5cIiwgZW1iZWRfem9uZV9kX2hhYml0YXRpb25cbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uem9uZV9pbik7XG4gICAgKFwibG9nZW1lbnRfZXN0X2NoYW1icmVfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5sb2dlbWVudF9lc3RfY2hhbWJyZV9pbik7XG4gICAgKFwiw6Jnw6llc19vdV9oYW5kaWNhcF9hZHVsdGVzX2jDqWJlcmfDqWVzX29uw6lyZXV4X3BhcnRpY3VsaWVyc19pblwiLFxuICAgIGVtYmVkX2Jvb2xcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfaW4pO1xuICAgIChcInR5cGVfYWlkZV9pblwiLCBlbWJlZF90eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnR5cGVfYWlkZV9pbik7XG4gICAgKFwiY29sb2NhdGlvbl9pblwiLCBlbWJlZF9ib29sXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmNvbG9jYXRpb25faW4pO1xuICAgIChcInLDqWR1Y3Rpb25fbG95ZXJfc29saWRhcml0w6lfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ucmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfaW4pO1xuICAgIChcImxvZ2VtZW50X21ldWJsw6lfZDg0Ml8yX2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ubG9nZW1lbnRfbWV1YmxlX2Q4NDJfMl9pbik7XG4gICAgKFwicsOpc2lkZW5jZV9pblwiLCBlbWJlZF9jb2xsZWN0aXZpdGVcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ucmVzaWRlbmNlX2luKV0pXG5cblxubW9kdWxlIENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBkYXRlX2NvdXJhbnRlX2luOiBkYXRlO1xuICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbjogbW9uZXk7XG4gICAgY29uZGl0aW9uXzJfZHVfODMyXzI1X2luOiBib29sO1xuICAgIG5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfaW46IGRlY2ltYWxcbiAgfVxuZW5kXG5sZXQgZW1iZWRfY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luICh4OiBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3Vsw4lxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZV9pblwiXSxcbiAgWyhcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwicmVzc291cmNlc19tw6luYWdlX2Fycm9uZGllc19pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luKTtcbiAgICAoXCJjb25kaXRpb25fMl9kdV84MzJfMjVfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4uY29uZGl0aW9uXzJfZHVfODMyXzI1X2luKTtcbiAgICAoXCJuX25vbWJyZV9wYXJ0c19kODMyXzI1X2luXCIsIGVtYmVkX2RlY2ltYWxcbiAgICB4LkNhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfaW4pXSlcblxuXG5tb2R1bGUgQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgY29uZGl0aW9uXzJfZHVfODMyXzI1X2luOiBib29sO1xuICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW46IGludGVnZXI7XG4gICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luOiBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwudDtcbiAgICByZXNpZGVuY2VfaW46IENvbGxlY3Rpdml0ZS50O1xuICAgIGxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfaW46IHVuaXQgLT4gYm9vbFxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW4gKHg6IENhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyX2luXCJdLFxuICBbKFwiY29uZGl0aW9uXzJfZHVfODMyXzI1X2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4uY29uZGl0aW9uXzJfZHVfODMyXzI1X2luKTtcbiAgICAoXCJub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZV9pblwiLCBlbWJlZF9pbnRlZ2VyXG4gICAgeC5DYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llckluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4pO1xuICAgIChcInNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pblwiLFxuICAgIGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sXG4gICAgeC5DYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llckluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbik7XG4gICAgKFwicsOpc2lkZW5jZV9pblwiLCBlbWJlZF9jb2xsZWN0aXZpdGVcbiAgICB4LkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4ucmVzaWRlbmNlX2luKTtcbiAgICAoXCJsaW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX8OgX2NoYXJnZV9pblwiLCB1bmVtYmVkZGFibGVcbiAgICB4LkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4ubGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV9pbildKVxuXG5cbm1vZHVsZSBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgdHlwZV9sb2dlbWVudF9mb3llcl9pbjogVHlwZUxvZ2VtZW50Rm95ZXIudDtcbiAgICBkYXRlX2NvbnZlbnRpb25uZW1lbnRfaW46IGRhdGU7XG4gICAgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luOiBtb25leTtcbiAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luOiBpbnRlZ2VyO1xuICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbjogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQ7XG4gICAgem9uZV9pbjogWm9uZURIYWJpdGF0aW9uLnQ7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICByZWRldmFuY2VfaW46IG1vbmV5O1xuICAgIHJlc2lkZW5jZV9pbjogQ29sbGVjdGl2aXRlLnQ7XG4gICAgY29uZGl0aW9uXzJfZHVfODMyXzI1X2luOiB1bml0IC0+IGJvb2w7XG4gICAgbGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV9pbjogdW5pdCAtPiBib29sO1xuICAgIG5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfaW46IHVuaXQgLT4gZGVjaW1hbFxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luICh4OiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llcl9pblwiXSxcbiAgWyhcInR5cGVfbG9nZW1lbnRfZm95ZXJfaW5cIiwgZW1iZWRfdHlwZV9sb2dlbWVudF9mb3llclxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4udHlwZV9sb2dlbWVudF9mb3llcl9pbik7XG4gICAgKFwiZGF0ZV9jb252ZW50aW9ubmVtZW50X2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLmRhdGVfY29udmVudGlvbm5lbWVudF9pbik7XG4gICAgKFwicmVzc291cmNlc19tw6luYWdlX2Fycm9uZGllc19pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luKTtcbiAgICAoXCJub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZV9pblwiLCBlbWJlZF9pbnRlZ2VyXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luKTtcbiAgICAoXCJzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW5cIixcbiAgICBlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbFxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luKTtcbiAgICAoXCJ6b25lX2luXCIsIGVtYmVkX3pvbmVfZF9oYWJpdGF0aW9uXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi56b25lX2luKTtcbiAgICAoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLmRhdGVfY291cmFudGVfaW4pO1xuICAgIChcInJlZGV2YW5jZV9pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ucmVkZXZhbmNlX2luKTtcbiAgICAoXCJyw6lzaWRlbmNlX2luXCIsIGVtYmVkX2NvbGxlY3Rpdml0ZVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ucmVzaWRlbmNlX2luKTtcbiAgICAoXCJjb25kaXRpb25fMl9kdV84MzJfMjVfaW5cIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5jb25kaXRpb25fMl9kdV84MzJfMjVfaW4pO1xuICAgIChcImxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfw6BfY2hhcmdlX2luXCIsIHVuZW1iZWRkYWJsZVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ubGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV9pbik7XG4gICAgKFwibl9ub21icmVfcGFydHNfZDgzMl8yNV9pblwiLCB1bmVtYmVkZGFibGVcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfaW4pXSlcblxuXG5tb2R1bGUgQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGVJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbjogaW50ZWdlcjtcbiAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW46IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50XG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiAoeDogQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGVJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmnDqXTDqV9pblwiXSxcbiAgWyhcIm5vbWJyZV9wZXJzb25uZXNfw6BfY2hhcmdlX2luXCIsIGVtYmVkX2ludGVnZXJcbiAgICB4LkNhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlSW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbik7XG4gICAgKFwic2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luXCIsXG4gICAgZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2xcbiAgICB4LkNhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlSW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luKV0pXG5cblxubW9kdWxlIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgbWVuc3VhbGl0ZV9wcmluY2lwYWxlX2luOiBtb25leTtcbiAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW46IG1vbmV5O1xuICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW46IGludGVnZXI7XG4gICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luOiBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwudDtcbiAgICB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfaW46IFR5cGVUcmF2YXV4TG9nZW1lbnREODMyMTUudDtcbiAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X2luOiBkYXRlO1xuICAgIGxvY2FsX2hhYml0ZV9wcmVtaWVyZV9mb2lzX2JlbmVmaWNpYWlyZV9pbjogYm9vbDtcbiAgICBkYXRlX2VudHJlZV9sb2dlbWVudF9pbjogZGF0ZTtcbiAgICBjb3Byb3ByaWV0ZV9pbjogYm9vbDtcbiAgICBzaXR1YXRpb25fcjgyMl8xMV8xM18xN19pbjogYm9vbDtcbiAgICB6b25lX2luOiBab25lREhhYml0YXRpb24udDtcbiAgICB0eXBlX3ByZXRfaW46IFR5cGVQcmV0LnQ7XG4gICAgYW5jaWVubmV0ZV9sb2dlbWVudF9pbjogTmV1Zk91QW5jaWVuLnQ7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZVxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4gKHg6IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqV9pblwiXSxcbiAgWyhcIm1lbnN1YWxpdMOpX3ByaW5jaXBhbGVfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5tZW5zdWFsaXRlX3ByaW5jaXBhbGVfaW4pO1xuICAgIChcInJlc3NvdXJjZXNfbcOpbmFnZV9hcnJvbmRpZXNfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4pO1xuICAgIChcIm5vbWJyZV9wZXJzb25uZXNfw6BfY2hhcmdlX2luXCIsIGVtYmVkX2ludGVnZXJcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luKTtcbiAgICAoXCJzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW5cIixcbiAgICBlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbFxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbik7XG4gICAgKFwidHlwZV90cmF2YXV4X2xvZ2VtZW50X2luXCIsIGVtYmVkX3R5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4udHlwZV90cmF2YXV4X2xvZ2VtZW50X2luKTtcbiAgICAoXCJkYXRlX3NpZ25hdHVyZV9wcsOqdF9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9zaWduYXR1cmVfcHJldF9pbik7XG4gICAgKFwibG9jYWxfaGFiaXTDqV9wcmVtacOocmVfZm9pc19iw6luw6lmaWNpYWlyZV9pblwiLCBlbWJlZF9ib29sXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ubG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuZWZpY2lhaXJlX2luKTtcbiAgICAoXCJkYXRlX2VudHLDqWVfbG9nZW1lbnRfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmRhdGVfZW50cmVlX2xvZ2VtZW50X2luKTtcbiAgICAoXCJjb3Byb3ByacOpdMOpX2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5jb3Byb3ByaWV0ZV9pbik7XG4gICAgKFwic2l0dWF0aW9uX3I4MjJfMTFfMTNfMTdfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnNpdHVhdGlvbl9yODIyXzExXzEzXzE3X2luKTtcbiAgICAoXCJ6b25lX2luXCIsIGVtYmVkX3pvbmVfZF9oYWJpdGF0aW9uXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uem9uZV9pbik7XG4gICAgKFwidHlwZV9wcsOqdF9pblwiLCBlbWJlZF90eXBlX3ByZXRcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi50eXBlX3ByZXRfaW4pO1xuICAgIChcImFuY2llbm5ldMOpX2xvZ2VtZW50X2luXCIsIGVtYmVkX25ldWZfb3VfYW5jaWVuXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uYW5jaWVubmV0ZV9sb2dlbWVudF9pbik7XG4gICAgKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9jb3VyYW50ZV9pbildKVxuXG5cbm1vZHVsZSBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIG1vZGVfb2NjdXBhdGlvbl9pbjogTW9kZU9jY3VwYXRpb24udDtcbiAgICB0eXBlX2FpZGVfaW46IFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudDtcbiAgICByZXNzb3VyY2VzX21lbmFnZV9zYW5zX2Fycm9uZGlfaW46IG1vbmV5O1xuICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfaW46IFNpdHVhdGlvbkZhbWlsaWFsZS50O1xuICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW46IGludGVnZXI7XG4gICAgem9uZV9pbjogWm9uZURIYWJpdGF0aW9uLnQ7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICByZXNpZGVuY2VfaW46IENvbGxlY3Rpdml0ZS50XG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4gKHg6IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRfaW5cIl0sXG4gIFsoXCJtb2RlX29jY3VwYXRpb25faW5cIiwgZW1iZWRfbW9kZV9vY2N1cGF0aW9uXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4ubW9kZV9vY2N1cGF0aW9uX2luKTtcbiAgICAoXCJ0eXBlX2FpZGVfaW5cIiwgZW1iZWRfdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudFxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnR5cGVfYWlkZV9pbik7XG4gICAgKFwicmVzc291cmNlc19tw6luYWdlX3NhbnNfYXJyb25kaV9pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnJlc3NvdXJjZXNfbWVuYWdlX3NhbnNfYXJyb25kaV9pbik7XG4gICAgKFwic2l0dWF0aW9uX2ZhbWlsaWFsZV9pblwiLCBlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9pbik7XG4gICAgKFwibm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VfaW5cIiwgZW1iZWRfaW50ZWdlclxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4pO1xuICAgIChcInpvbmVfaW5cIiwgZW1iZWRfem9uZV9kX2hhYml0YXRpb25cbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi56b25lX2luKTtcbiAgICAoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJyw6lzaWRlbmNlX2luXCIsIGVtYmVkX2NvbGxlY3Rpdml0ZVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnJlc2lkZW5jZV9pbildKVxuXG5cbm1vZHVsZSBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGxveWVyX3ByaW5jaXBhbF9pbjogbW9uZXk7XG4gICAgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luOiBtb25leTtcbiAgICBiZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNfaW46IGJvb2w7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luOiBpbnRlZ2VyO1xuICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbjogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQ7XG4gICAgem9uZV9pbjogWm9uZURIYWJpdGF0aW9uLnQ7XG4gICAgbG9nZW1lbnRfZXN0X2NoYW1icmVfaW46IGJvb2w7XG4gICAgYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfaW46IGJvb2w7XG4gICAgdHlwZV9haWRlX2luOiBUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQ7XG4gICAgY29sb2NhdGlvbl9pbjogYm9vbDtcbiAgICByZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV9pbjogbW9uZXk7XG4gICAgbG9nZW1lbnRfbWV1YmxlX2Q4NDJfMl9pbjogYm9vbDtcbiAgICByZXNpZGVuY2VfaW46IENvbGxlY3Rpdml0ZS50O1xuICAgIGNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80X2luOiBDaGFuZ2VtZW50TG9nZW1lbnREODQyNC50XG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4gKHg6IENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZl9pblwiXSxcbiAgWyhcImxveWVyX3ByaW5jaXBhbF9pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmxveWVyX3ByaW5jaXBhbF9pbik7XG4gICAgKFwicmVzc291cmNlc19tw6luYWdlX2Fycm9uZGllc19pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbik7XG4gICAgKFwiYsOpbsOpZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2Fww6lzX2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5iZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNfaW4pO1xuICAgIChcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmRhdGVfY291cmFudGVfaW4pO1xuICAgIChcIm5vbWJyZV9wZXJzb25uZXNfw6BfY2hhcmdlX2luXCIsIGVtYmVkX2ludGVnZXJcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luKTtcbiAgICAoXCJzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW5cIixcbiAgICBlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbik7XG4gICAgKFwiem9uZV9pblwiLCBlbWJlZF96b25lX2RfaGFiaXRhdGlvblxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnpvbmVfaW4pO1xuICAgIChcImxvZ2VtZW50X2VzdF9jaGFtYnJlX2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5sb2dlbWVudF9lc3RfY2hhbWJyZV9pbik7XG4gICAgKFwiw6Jnw6llc19vdV9oYW5kaWNhcF9hZHVsdGVzX2jDqWJlcmfDqWVzX29uw6lyZXV4X3BhcnRpY3VsaWVyc19pblwiLFxuICAgIGVtYmVkX2Jvb2xcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5hZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVyc19pbik7XG4gICAgKFwidHlwZV9haWRlX2luXCIsIGVtYmVkX3R5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi50eXBlX2FpZGVfaW4pO1xuICAgIChcImNvbG9jYXRpb25faW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmNvbG9jYXRpb25faW4pO1xuICAgIChcInLDqWR1Y3Rpb25fbG95ZXJfc29saWRhcml0w6lfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5yZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV9pbik7XG4gICAgKFwibG9nZW1lbnRfbWV1YmzDqV9kODQyXzJfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmxvZ2VtZW50X21ldWJsZV9kODQyXzJfaW4pO1xuICAgIChcInLDqXNpZGVuY2VfaW5cIiwgZW1iZWRfY29sbGVjdGl2aXRlXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4ucmVzaWRlbmNlX2luKTtcbiAgICAoXCJjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF9pblwiLCBlbWJlZF9jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80X2luKV0pXG5cblxubW9kdWxlIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfYmFzZV9pbjogbW9uZXk7XG4gICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbjogaW50ZWdlcjtcbiAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW46IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50O1xuICAgIHpvbmVfaW46IFpvbmVESGFiaXRhdGlvbi50O1xuICAgIHJlc2lkZW5jZV9pbjogQ29sbGVjdGl2aXRlLnQ7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICBtZW5zdWFsaXRlX3ByaW5jaXBhbGVfaW46IG1vbmV5O1xuICAgIHNpdHVhdGlvbl9yODIyXzExXzEzXzE3X2luOiBib29sO1xuICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfaW46IGRhdGU7XG4gICAgdHlwZV90cmF2YXV4X2xvZ2VtZW50X2luOiBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUudDtcbiAgICBsb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW5lZmljaWFpcmVfaW46IGJvb2w7XG4gICAgZGF0ZV9lbnRyZWVfbG9nZW1lbnRfaW46IGRhdGU7XG4gICAgY2hhcmdlc19tZW5zdWVsbGVzX3ByZXRfaW46IG1vbmV5O1xuICAgIGNvcHJvcHJpZXRlX2luOiBib29sO1xuICAgIG9wZXJhdGlvbnNfbG9nZW1lbnRfZXZvbHV0aWZzX3NvY2lhdXhfYWNjZXNzaW9uX3Byb3ByaWV0ZV9haWRlZV9FdGF0X2luOlxuICAgICAgYm9vbFxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luICh4OiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lfaW5cIl0sXG4gIFsoXCJyZXNzb3VyY2VzX23DqW5hZ2VfYXJyb25kaWVzX2Jhc2VfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19iYXNlX2luKTtcbiAgICAoXCJub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZV9pblwiLCBlbWJlZF9pbnRlZ2VyXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luKTtcbiAgICAoXCJzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW5cIixcbiAgICBlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luKTtcbiAgICAoXCJ6b25lX2luXCIsIGVtYmVkX3pvbmVfZF9oYWJpdGF0aW9uXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi56b25lX2luKTtcbiAgICAoXCJyw6lzaWRlbmNlX2luXCIsIGVtYmVkX2NvbGxlY3Rpdml0ZVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ucmVzaWRlbmNlX2luKTtcbiAgICAoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmRhdGVfY291cmFudGVfaW4pO1xuICAgIChcIm1lbnN1YWxpdMOpX3ByaW5jaXBhbGVfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLm1lbnN1YWxpdGVfcHJpbmNpcGFsZV9pbik7XG4gICAgKFwic2l0dWF0aW9uX3I4MjJfMTFfMTNfMTdfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uc2l0dWF0aW9uX3I4MjJfMTFfMTNfMTdfaW4pO1xuICAgIChcImRhdGVfc2lnbmF0dXJlX3Byw6p0X2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmRhdGVfc2lnbmF0dXJlX3ByZXRfaW4pO1xuICAgIChcInR5cGVfdHJhdmF1eF9sb2dlbWVudF9pblwiLCBlbWJlZF90eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81XG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi50eXBlX3RyYXZhdXhfbG9nZW1lbnRfaW4pO1xuICAgIChcImxvY2FsX2hhYml0w6lfcHJlbWnDqHJlX2ZvaXNfYsOpbsOpZmljaWFpcmVfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ubG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuZWZpY2lhaXJlX2luKTtcbiAgICAoXCJkYXRlX2VudHLDqWVfbG9nZW1lbnRfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9lbnRyZWVfbG9nZW1lbnRfaW4pO1xuICAgIChcImNoYXJnZXNfbWVuc3VlbGxlc19wcsOqdF9pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uY2hhcmdlc19tZW5zdWVsbGVzX3ByZXRfaW4pO1xuICAgIChcImNvcHJvcHJpw6l0w6lfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uY29wcm9wcmlldGVfaW4pO1xuICAgIChcIm9ww6lyYXRpb25zX2xvZ2VtZW50X8Opdm9sdXRpZnNfc29jaWF1eF9hY2Nlc3Npb25fcHJvcHJpw6l0w6lfYWlkw6llX8OJdGF0X2luXCIsXG4gICAgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ub3BlcmF0aW9uc19sb2dlbWVudF9ldm9sdXRpZnNfc29jaWF1eF9hY2Nlc3Npb25fcHJvcHJpZXRlX2FpZGVlX0V0YXRfaW4pXSlcblxuXG5tb2R1bGUgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgdHlwZV9sb2dlbWVudF9mb3llcl9pbjogVHlwZUxvZ2VtZW50Rm95ZXIudDtcbiAgICBkYXRlX2NvbnZlbnRpb25uZW1lbnRfaW46IGRhdGU7XG4gICAgcmVzaWRlbmNlX2luOiBDb2xsZWN0aXZpdGUudDtcbiAgICByZWRldmFuY2VfaW46IG1vbmV5O1xuICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbjogbW9uZXk7XG4gICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbjogaW50ZWdlcjtcbiAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW46IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50O1xuICAgIHpvbmVfaW46IFpvbmVESGFiaXRhdGlvbi50O1xuICAgIGRhdGVfY291cmFudGVfaW46IGRhdGU7XG4gICAgY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfaW46XG4gICAgICBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIudFxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbiAoeDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJfaW5cIl0sXG4gIFsoXCJ0eXBlX2xvZ2VtZW50X2ZveWVyX2luXCIsIGVtYmVkX3R5cGVfbG9nZW1lbnRfZm95ZXJcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4udHlwZV9sb2dlbWVudF9mb3llcl9pbik7XG4gICAgKFwiZGF0ZV9jb252ZW50aW9ubmVtZW50X2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4uZGF0ZV9jb252ZW50aW9ubmVtZW50X2luKTtcbiAgICAoXCJyw6lzaWRlbmNlX2luXCIsIGVtYmVkX2NvbGxlY3Rpdml0ZVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi5yZXNpZGVuY2VfaW4pO1xuICAgIChcInJlZGV2YW5jZV9pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi5yZWRldmFuY2VfaW4pO1xuICAgIChcInJlc3NvdXJjZXNfbcOpbmFnZV9hcnJvbmRpZXNfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luKTtcbiAgICAoXCJub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZV9pblwiLCBlbWJlZF9pbnRlZ2VyXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4pO1xuICAgIChcInNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pblwiLFxuICAgIGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbik7XG4gICAgKFwiem9uZV9pblwiLCBlbWJlZF96b25lX2RfaGFiaXRhdGlvblxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi56b25lX2luKTtcbiAgICAoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwiY2F0w6lnb3JpZV/DqXF1aXZhbGVuY2VfbG95ZXJfZDg0Ml8xNl9pblwiLFxuICAgIGVtYmVkX2NhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLmNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2X2luKV0pXG5cblxubW9kdWxlIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBtb2RlX29jY3VwYXRpb25faW46IE1vZGVPY2N1cGF0aW9uLnQ7XG4gICAgcmVzc291cmNlc19tZW5hZ2Vfc2Fuc19hcnJvbmRpX2luOiBtb25leTtcbiAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2luOiBTaXR1YXRpb25GYW1pbGlhbGUudDtcbiAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luOiBpbnRlZ2VyO1xuICAgIHpvbmVfaW46IFpvbmVESGFiaXRhdGlvbi50O1xuICAgIGRhdGVfY291cmFudGVfaW46IGRhdGU7XG4gICAgdHlwZV9haWRlX2luOiBUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQ7XG4gICAgcmVzaWRlbmNlX2luOiBDb2xsZWN0aXZpdGUudFxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiAoeDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudF9pblwiXSxcbiAgWyhcIm1vZGVfb2NjdXBhdGlvbl9pblwiLCBlbWJlZF9tb2RlX29jY3VwYXRpb25cbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLm1vZGVfb2NjdXBhdGlvbl9pbik7XG4gICAgKFwicmVzc291cmNlc19tw6luYWdlX3NhbnNfYXJyb25kaV9pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4ucmVzc291cmNlc19tZW5hZ2Vfc2Fuc19hcnJvbmRpX2luKTtcbiAgICAoXCJzaXR1YXRpb25fZmFtaWxpYWxlX2luXCIsIGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLnNpdHVhdGlvbl9mYW1pbGlhbGVfaW4pO1xuICAgIChcIm5vbWJyZV9wZXJzb25uZXNfw6BfY2hhcmdlX2luXCIsIGVtYmVkX2ludGVnZXJcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4pO1xuICAgIChcInpvbmVfaW5cIiwgZW1iZWRfem9uZV9kX2hhYml0YXRpb25cbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLnpvbmVfaW4pO1xuICAgIChcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwidHlwZV9haWRlX2luXCIsIGVtYmVkX3R5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLnR5cGVfYWlkZV9pbik7XG4gICAgKFwicsOpc2lkZW5jZV9pblwiLCBlbWJlZF9jb2xsZWN0aXZpdGVcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLnJlc2lkZW5jZV9pbildKVxuXG5cbm1vZHVsZSBPdXZlcnR1cmVEcm9pdHNSZXRyYWl0ZUluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtkYXRlX25haXNzYW5jZV9hc3N1cmVfaW46IGRhdGV9XG5lbmRcbmxldCBlbWJlZF9vdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luICh4OiBPdXZlcnR1cmVEcm9pdHNSZXRyYWl0ZUluLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJPdXZlcnR1cmVEcm9pdHNSZXRyYWl0ZV9pblwiXSxcbiAgWyhcImRhdGVfbmFpc3NhbmNlX2Fzc3Vyw6lfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguT3V2ZXJ0dXJlRHJvaXRzUmV0cmFpdGVJbi5kYXRlX25haXNzYW5jZV9hc3N1cmVfaW4pXSlcblxuXG5tb2R1bGUgSW1wYXllRGVwZW5zZUxvZ2VtZW50SW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIG1vZGVfb2NjdXBhdGlvbl9pbjogTW9kZU9jY3VwYXRpb24udDtcbiAgICBhaWRlX3ZlcnNlZV9pbjogVmVyc2VtZW50QS50O1xuICAgIG1vbnRhbnRfYXBsX2luOiBtb25leTtcbiAgICBtb250YW50X2NoYXJnZXNfaW46IG1vbmV5O1xuICAgIGRlcGVuc2VfbG9nZW1lbnRfaW46IERlcGVuc2VMb2dlbWVudC50O1xuICAgIG1vbnRhbnRfZGV0dGVfaW46IG1vbmV5XG4gIH1cbmVuZFxubGV0IGVtYmVkX2ltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luICh4OiBJbXBheWVEZXBlbnNlTG9nZW1lbnRJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiSW1wYXnDqUTDqXBlbnNlTG9nZW1lbnRfaW5cIl0sXG4gIFsoXCJtb2RlX29jY3VwYXRpb25faW5cIiwgZW1iZWRfbW9kZV9vY2N1cGF0aW9uXG4gICAgeC5JbXBheWVEZXBlbnNlTG9nZW1lbnRJbi5tb2RlX29jY3VwYXRpb25faW4pO1xuICAgIChcImFpZGVfdmVyc8OpZV9pblwiLCBlbWJlZF92ZXJzZW1lbnRfYVxuICAgIHguSW1wYXllRGVwZW5zZUxvZ2VtZW50SW4uYWlkZV92ZXJzZWVfaW4pO1xuICAgIChcIm1vbnRhbnRfYXBsX2luXCIsIGVtYmVkX21vbmV5XG4gICAgeC5JbXBheWVEZXBlbnNlTG9nZW1lbnRJbi5tb250YW50X2FwbF9pbik7XG4gICAgKFwibW9udGFudF9jaGFyZ2VzX2luXCIsIGVtYmVkX21vbmV5XG4gICAgeC5JbXBheWVEZXBlbnNlTG9nZW1lbnRJbi5tb250YW50X2NoYXJnZXNfaW4pO1xuICAgIChcImTDqXBlbnNlX2xvZ2VtZW50X2luXCIsIGVtYmVkX2RlcGVuc2VfbG9nZW1lbnRcbiAgICB4LkltcGF5ZURlcGVuc2VMb2dlbWVudEluLmRlcGVuc2VfbG9nZW1lbnRfaW4pO1xuICAgIChcIm1vbnRhbnRfZGV0dGVfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LkltcGF5ZURlcGVuc2VMb2dlbWVudEluLm1vbnRhbnRfZGV0dGVfaW4pXSlcblxuXG5tb2R1bGUgQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBtZW5hZ2VfaW46IE1lbmFnZS50O1xuICAgIGRlbWFuZGV1cl9pbjogRGVtYW5kZXVyLnQ7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICByZXNzb3VyY2VzX21lbmFnZV9wcmlzZXNfZW5fY29tcHRlX2luOiBtb25leVxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luICh4OiBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50SW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRfaW5cIl0sXG4gIFsoXCJtw6luYWdlX2luXCIsIGVtYmVkX21lbmFnZVxuICAgIHguQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEluLm1lbmFnZV9pbik7XG4gICAgKFwiZGVtYW5kZXVyX2luXCIsIGVtYmVkX2RlbWFuZGV1clxuICAgIHguQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEluLmRlbWFuZGV1cl9pbik7XG4gICAgKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50SW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwicmVzc291cmNlc19tw6luYWdlX3ByaXNlc19lbl9jb21wdGVfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRJbi5yZXNzb3VyY2VzX21lbmFnZV9wcmlzZXNfZW5fY29tcHRlX2luKV0pXG5cblxubW9kdWxlIENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybmVlSW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIG1lbmFnZV9pbjogTWVuYWdlLnQ7XG4gICAgZGVtYW5kZXVyX2luOiBEZW1hbmRldXIudDtcbiAgICBkYXRlX2NvdXJhbnRlX2luOiBkYXRlO1xuICAgIHJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVfaW46IG1vbmV5XG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW4gKHg6IENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybmVlSW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybsOpZV9pblwiXSxcbiAgWyhcIm3DqW5hZ2VfaW5cIiwgZW1iZWRfbWVuYWdlXG4gICAgeC5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm5lZUluLm1lbmFnZV9pbik7XG4gICAgKFwiZGVtYW5kZXVyX2luXCIsIGVtYmVkX2RlbWFuZGV1clxuICAgIHguQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWVJbi5kZW1hbmRldXJfaW4pO1xuICAgIChcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWVJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJyZXNzb3VyY2VzX23DqW5hZ2VfcHJpc2VzX2VuX2NvbXB0ZV9pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWVJbi5yZXNzb3VyY2VzX21lbmFnZV9wcmlzZXNfZW5fY29tcHRlX2luKV0pXG5cblxubW9kdWxlIEJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7ZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZX1cbmVuZFxubGV0IGVtYmVkX2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gKHg6IEJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc19pblwiXSxcbiAgWyhcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmRhdGVfY291cmFudGVfaW4pXSlcblxuXG5tb2R1bGUgVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBkYXRlX25haXNzYW5jZV9pbjogZGF0ZTtcbiAgICBkYXRlX2NvdXJhbnRlX2luOiBkYXRlO1xuICAgIGFubmVlc19pbjogZHVyYXRpb25cbiAgfVxuZW5kXG5sZXQgZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luICh4OiBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBSW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIlbDqXJpZmljYXRpb27DgmdlSW5mw6lyaWV1ck91w4lnYWzDgF9pblwiXSxcbiAgWyhcImRhdGVfbmFpc3NhbmNlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LlZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi5kYXRlX25haXNzYW5jZV9pbik7XG4gICAgKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5WZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBSW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwiYW5uw6llc19pblwiLCBlbWJlZF9kdXJhdGlvblxuICAgIHguVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluLmFubmVlc19pbildKVxuXG5cbm1vZHVsZSBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGRhdGVfbmFpc3NhbmNlX2luOiBkYXRlO1xuICAgIGRhdGVfY291cmFudGVfaW46IGRhdGU7XG4gICAgYW5uZWVzX2luOiBkdXJhdGlvblxuICB9XG5lbmRcbmxldCBlbWJlZF92ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luICh4OiBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIlbDqXJpZmljYXRpb27DgmdlU3Vww6lyaWV1csOAX2luXCJdLFxuICBbKFwiZGF0ZV9uYWlzc2FuY2VfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLmRhdGVfbmFpc3NhbmNlX2luKTtcbiAgICAoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LlZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJhbm7DqWVzX2luXCIsIGVtYmVkX2R1cmF0aW9uIHguVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLmFubmVlc19pbildKVxuXG5cbm1vZHVsZSBTbWljSW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge2RhdGVfY291cmFudGVfaW46IGRhdGU7IHJlc2lkZW5jZV9pbjogQ29sbGVjdGl2aXRlLnR9XG5lbmRcbmxldCBlbWJlZF9zbWljX2luICh4OiBTbWljSW4udCkgOiBydW50aW1lX3ZhbHVlID0gU3RydWN0KFtcIlNtaWNfaW5cIl0sXG4gIFsoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LlNtaWNJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJyw6lzaWRlbmNlX2luXCIsIGVtYmVkX2NvbGxlY3Rpdml0ZSB4LlNtaWNJbi5yZXNpZGVuY2VfaW4pXSlcblxuXG5tb2R1bGUgRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICBwcmVzdGF0aW9uX2NvdXJhbnRlX2luOiBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQ7XG4gICAgcmVzaWRlbmNlX2luOiBDb2xsZWN0aXZpdGUudDtcbiAgICBhZ2VfbDUxMl8zXzJfaW46IHVuaXQgLT4gZHVyYXRpb25cbiAgfVxuZW5kXG5sZXQgZW1iZWRfZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbiAoeDogRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc19pblwiXSxcbiAgWyhcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJwcmVzdGF0aW9uX2NvdXJhbnRlX2luXCIsIGVtYmVkX2VsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc1xuICAgIHguRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5wcmVzdGF0aW9uX2NvdXJhbnRlX2luKTtcbiAgICAoXCJyw6lzaWRlbmNlX2luXCIsIGVtYmVkX2NvbGxlY3Rpdml0ZVxuICAgIHguRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5yZXNpZGVuY2VfaW4pO1xuICAgIChcIsOiZ2VfbDUxMl8zXzJfaW5cIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luLmFnZV9sNTEyXzNfMl9pbildKVxuXG5cblxuXG5sZXQgY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCAoY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbjogQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4udCkgOiBDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudCA9XG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgZXhvbmVyZV9jc2dfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7IFwiZXhvbsOpcsOpX2NzZ1wiXVxuICAgIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTU2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTU1NjsgZW5kX2NvbHVtbj0yMjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bCBkZXMgY29udHJpYnV0aW9ucyBzb2NpYWxlcyBzJ2FwcGxpcXVhbnQgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTU2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTU2OyBlbmRfY29sdW1uPTIyO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWwgZGVzIGNvbnRyaWJ1dGlvbnMgc29jaWFsZXMgcydhcHBsaXF1YW50IGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfc8OpY3VyaXTDqV9zb2NpYWxlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzc7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM3OyBlbmRfY29sdW1uPTIwO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEwxMzYtMS0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBEZSBsYSBjb250cmlidXRpb24gc29jaWFsZSBzdXIgbGVzIHJldmVudXMgZCdhY3Rpdml0w6kgZXQgc3VyIGxlcyByZXZlbnVzIGRlIHJlbXBsYWNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgNiA6IENvbnRyaWJ1dGlvbiBzb2NpYWxlIGfDqW7DqXJhbGlzw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUk6IFRpdHJlIElJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyByZWxhdGl2ZXMgYXUgZmluYW5jZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTU1Njsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01NTY7IGVuZF9jb2x1bW49MjI7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWwgZGVzIGNvbnRyaWJ1dGlvbnMgc29jaWFsZXMgcydhcHBsaXF1YW50IGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU1Njsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01NTY7IGVuZF9jb2x1bW49MjI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWwgZGVzIGNvbnRyaWJ1dGlvbnMgc29jaWFsZXMgcydhcHBsaXF1YW50IGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdGF1eF9jcmRzXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcInRhdXhfY3Jkc1wiXVxuICAgIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTU1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTU1NTsgZW5kX2NvbHVtbj0yMDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bCBkZXMgY29udHJpYnV0aW9ucyBzb2NpYWxlcyBzJ2FwcGxpcXVhbnQgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2F1dHJlc19zb3VyY2VzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE5MDsgc3RhcnRfY29sdW1uPTM5OyBlbmRfbGluZT0xOTA7IGVuZF9jb2x1bW49Njg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE5XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBEZXMgY29udHJpYnV0aW9ucyBwb3VyIGxlIHJlbWJvdXJzZW1lbnQgZGUgbGEgZGV0dGUgc29jaWFsZS5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJPcmRvbm5hbmNlIG7CsCA5Ni01MCBkdSAyNCBqYW52aWVyIDE5OTYgcmVsYXRpdmUgYXUgcmVtYm91cnNlbWVudCBkZSBsYSBkZXR0ZSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMDVcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NTU1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTU1NTsgZW5kX2NvbHVtbj0yMDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bCBkZXMgY29udHJpYnV0aW9ucyBzb2NpYWxlcyBzJ2FwcGxpcXVhbnQgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtb250YW50XzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjsgXCJtb250YW50XCJdXG4gICAgKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWlkZV9maW5hbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT01NTg7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NTU4OyBlbmRfY29sdW1uPTE5O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWwgZGVzIGNvbnRyaWJ1dGlvbnMgc29jaWFsZXMgcydhcHBsaXF1YW50IGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2F1dHJlc19zb3VyY2VzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTI7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogRGVzIGNvbnRyaWJ1dGlvbnMgcG91ciBsZSByZW1ib3Vyc2VtZW50IGRlIGxhIGRldHRlIHNvY2lhbGUuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJPcmRvbm5hbmNlIG7CsCA5Ni01MCBkdSAyNCBqYW52aWVyIDE5OTYgcmVsYXRpdmUgYXUgcmVtYm91cnNlbWVudCBkZSBsYSBkZXR0ZSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE4KSAoOSkgKDEpKSkpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBvX211bHRfbW9uX3JhdCBhaWRlX2ZpbmFsZV8gdGF1eF9jcmRzXykpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT01NTg7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NTU4OyBlbmRfY29sdW1uPTE5O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWwgZGVzIGNvbnRyaWJ1dGlvbnMgc29jaWFsZXMgcydhcHBsaXF1YW50IGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU1ODsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT01NTg7IGVuZF9jb2x1bW49MTk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWwgZGVzIGNvbnRyaWJ1dGlvbnMgc29jaWFsZXMgcydhcHBsaXF1YW50IGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgXzogdW5pdCA9IGlmICh0cnkgZXhvbmVyZV9jc2dfIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hdXRyZXNfc291cmNlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1Njsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NjsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBEZXMgY29udHJpYnV0aW9ucyBwb3VyIGxlIHJlbWJvdXJzZW1lbnQgZGUgbGEgZGV0dGUgc29jaWFsZS5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk9yZG9ubmFuY2UgbsKwIDk2LTUwIGR1IDI0IGphbnZpZXIgMTk5NiByZWxhdGl2ZSBhdSByZW1ib3Vyc2VtZW50IGRlIGxhIGRldHRlIHNvY2lhbGVcIl19KSkpXG4gICAgICAgICAgICAgICAgICB0aGVuICgpIGVsc2VcbiAgICAgICAgICAgICAgICAgIHJhaXNlIChBc3NlcnRpb25GYWlsZWQge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hdXRyZXNfc291cmNlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1Njsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NjsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBEZXMgY29udHJpYnV0aW9ucyBwb3VyIGxlIHJlbWJvdXJzZW1lbnQgZGUgbGEgZGV0dGUgc29jaWFsZS5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk9yZG9ubmFuY2UgbsKwIDk2LTUwIGR1IDI0IGphbnZpZXIgMTk5NiByZWxhdGl2ZSBhdSByZW1ib3Vyc2VtZW50IGRlIGxhIGRldHRlIHNvY2lhbGVcIl19KSBpblxuICBsZXQgXzogdW5pdCA9IGlmIChcbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU2Mzsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU2MzsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsIGRlcyBjb250cmlidXRpb25zIHNvY2lhbGVzIHMnYXBwbGlxdWFudCBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkgdGhlblxuICAgICAgICAgICAgICAgICAgKCkgZWxzZVxuICAgICAgICAgICAgICAgICAgcmFpc2UgKEFzc2VydGlvbkZhaWxlZCB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTYzOyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTYzOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWwgZGVzIGNvbnRyaWJ1dGlvbnMgc29jaWFsZXMgcydhcHBsaXF1YW50IGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkgaW5cbiAge0NvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5tb250YW50ID0gbW9udGFudF99XG5cbmxldCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUgKGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pbjogQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4udCkgOiBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGUudCA9XG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pbi5DYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfOiBtb25leSA9IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pbi5DYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gaW5cbiAgbGV0IGNvbmRpdGlvbl8yX2R1XzgzMl8yNV86IGJvb2wgPSBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW4uQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4uY29uZGl0aW9uXzJfZHVfODMyXzI1X2luIGluXG4gIGxldCBuX25vbWJyZV9wYXJ0c19kODMyXzI1XzogZGVjaW1hbCA9IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pbi5DYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi5uX25vbWJyZV9wYXJ0c19kODMyXzI1X2luIGluXG4gIGxldCBtb250YW50X2ZvcmZhaXRhaXJlX2Q4MzJfMjZfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bMOJcXVpdmFsZW5jZUxveWVyTWluaW1hbGVcIjsgXCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4MzJfMjZcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02NTU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjU1OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTI3MjA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MjcyMDsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgIChvX2d0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmIGNvbmRpdGlvbl8yX2R1XzgzMl8yNV8gdGhlbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzYzMlwiKVxuICAgICAgICAgICAgICBlbHNlIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NTU3XCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02NTU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjU1OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0cmFuY2hlc19yZXZlbnVzX2Q4MzJfMjZfOiBUcmFuY2hlUmV2ZW51LnQgYXJyYXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWzDiXF1aXZhbGVuY2VMb3llck1pbmltYWxlXCI7IFwidHJhbmNoZXNfcmV2ZW51c19kODMyXzI2XCJdXG4gICAgKGVtYmVkX2FycmF5IChlbWJlZF90cmFuY2hlX3JldmVudSkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02NTI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjUyOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjUyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjUyOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjY4NDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjY4NDsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25fMl9kdV84MzJfMjVfKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIFt8KHtUcmFuY2hlUmV2ZW51LmhhdXQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoTGltaXRlVHJhbmNoZS5SZXZlbnUgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE0MjMwM1wiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUuYmFzID0gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUudGF1eCA9IChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpfSk7XG4gICAgICAgICAgICAgICAgICAgICAgKHtUcmFuY2hlUmV2ZW51LmhhdXQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoTGltaXRlVHJhbmNoZS5SZXZlbnUgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwNDc2MVwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUuYmFzID0gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTQyMzAzXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuY2hlUmV2ZW51LnRhdXggPSAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyNFwiKX0pO1xuICAgICAgICAgICAgICAgICAgICAgICh7VHJhbmNoZVJldmVudS5oYXV0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKExpbWl0ZVRyYW5jaGUuUmV2ZW51IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjI5ODVcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuY2hlUmV2ZW51LmJhcyA9IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwNDc2MVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudS50YXV4ID0gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4yMDhcIil9KTtcbiAgICAgICAgICAgICAgICAgICAgICAoe1RyYW5jaGVSZXZlbnUuaGF1dCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChMaW1pdGVUcmFuY2hlLlJldmVudSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDA5NTA1XCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudS5iYXMgPSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjI5ODVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUudGF1eCA9IChkZWNpbWFsX29mX3N0cmluZyBcIjAuMjMyXCIpfSk7XG4gICAgICAgICAgICAgICAgICAgICAgKHtUcmFuY2hlUmV2ZW51LmhhdXQgPSAoTGltaXRlVHJhbmNoZS5JbmZpbmkgKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuY2hlUmV2ZW51LmJhcyA9IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwOTUwNVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudS50YXV4ID0gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4zMjhcIil9KXxdKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjYzNDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yNjM0OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIFYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBbfCh7VHJhbmNoZVJldmVudS5oYXV0ID1cbiAgICAgICAgICAgICAgICAgIChMaW1pdGVUcmFuY2hlLlJldmVudSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTk0ODEwXCIpKTtcbiAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUuYmFzID0gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIik7XG4gICAgICAgICAgICAgICAgICBUcmFuY2hlUmV2ZW51LnRhdXggPSAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjA0XCIpfSk7XG4gICAgICAgICAgICAgICh7VHJhbmNoZVJldmVudS5oYXV0ID1cbiAgICAgICAgICAgICAgICAgIChMaW1pdGVUcmFuY2hlLlJldmVudSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjY3ODcxXCIpKTtcbiAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUuYmFzID0gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE5NDgxMFwiKTtcbiAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUudGF1eCA9IChkZWNpbWFsX29mX3N0cmluZyBcIjAuMTA0XCIpfSk7XG4gICAgICAgICAgICAgICh7VHJhbmNoZVJldmVudS5oYXV0ID1cbiAgICAgICAgICAgICAgICAgIChMaW1pdGVUcmFuY2hlLlJldmVudSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzg5NjE4XCIpKTtcbiAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUuYmFzID0gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI2Nzg3MVwiKTtcbiAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUudGF1eCA9IChkZWNpbWFsX29mX3N0cmluZyBcIjAuMjE2XCIpfSk7XG4gICAgICAgICAgICAgICh7VHJhbmNoZVJldmVudS5oYXV0ID1cbiAgICAgICAgICAgICAgICAgIChMaW1pdGVUcmFuY2hlLlJldmVudSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTM1NzQ0XCIpKTtcbiAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUuYmFzID0gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM4OTYxOFwiKTtcbiAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUudGF1eCA9IChkZWNpbWFsX29mX3N0cmluZyBcIjAuMjY0XCIpfSk7XG4gICAgICAgICAgICAgICh7VHJhbmNoZVJldmVudS5oYXV0ID1cbiAgICAgICAgICAgICAgICAgIChMaW1pdGVUcmFuY2hlLlJldmVudSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNjMzMTI5XCIpKTtcbiAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUuYmFzID0gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUzNTc0NFwiKTtcbiAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUudGF1eCA9IChkZWNpbWFsX29mX3N0cmluZyBcIjAuMzJcIil9KTtcbiAgICAgICAgICAgICAgKHtUcmFuY2hlUmV2ZW51LmhhdXQgPSAoTGltaXRlVHJhbmNoZS5JbmZpbmkgKCkpO1xuICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudS5iYXMgPSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNjMzMTI5XCIpO1xuICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudS50YXV4ID0gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC40OFwiKX0pfF0pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTY1Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02NTI7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYW5jaGVzX3JldmVudXNfZDgzMl8yNl9tdWx0aXBsaWVlc186IFRyYW5jaGVSZXZlbnVEZWNpbWFsLnQgYXJyYXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWzDiXF1aXZhbGVuY2VMb3llck1pbmltYWxlXCI7XG4gICAgICBcInRyYW5jaGVzX3JldmVudXNfZDgzMl8yNl9tdWx0aXBsacOpZXNcIl1cbiAgICAoZW1iZWRfYXJyYXkgKGVtYmVkX3RyYW5jaGVfcmV2ZW51X2RlY2ltYWwpKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjUzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTY1MzsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQwNDY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDA0NjsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19tYXBcbiAgICAgICAgICAgICAgKGZ1biAodHJhbmNoZV86IFRyYW5jaGVSZXZlbnUudCkgLT5cbiAgICAgICAgICAgICAgICAge1RyYW5jaGVSZXZlbnVEZWNpbWFsLmhhdXQgPVxuICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKHRyYW5jaGVfLlRyYW5jaGVSZXZlbnUuaGF1dClcbiAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgIHwgTGltaXRlVHJhbmNoZS5SZXZlbnUgdHJhbmNoZV9oYXV0XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIChMaW1pdGVUcmFuY2hlRGVjaW1hbC5SZXZlbnVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXQgKG9fdG9yYXRfbW9uIHRyYW5jaGVfaGF1dF8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbl9ub21icmVfcGFydHNfZDgzMl8yNV8pKVxuICAgICAgICAgICAgICAgICAgICAgfCBMaW1pdGVUcmFuY2hlLkluZmluaSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgKExpbWl0ZVRyYW5jaGVEZWNpbWFsLkluZmluaSAoKSkpO1xuICAgICAgICAgICAgICAgICAgICBUcmFuY2hlUmV2ZW51RGVjaW1hbC5iYXMgPVxuICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X21vbiAodHJhbmNoZV8uVHJhbmNoZVJldmVudS5iYXMpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIG5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfKTtcbiAgICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudURlY2ltYWwudGF1eCA9ICh0cmFuY2hlXy5UcmFuY2hlUmV2ZW51LnRhdXgpfSlcbiAgICAgICAgICAgICAgdHJhbmNoZXNfcmV2ZW51c19kODMyXzI2XykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjUzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTY1MzsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3Vsw4lxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZVwiOyBcIm1vbnRhbnRcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjU3OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY1NzsgZW5kX2NvbHVtbj0xOTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY1Nzsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY1NzsgZW5kX2NvbHVtbj0xOTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDA5Nzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDA5NzsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uXzJfZHVfODMyXzI1XykpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIChsZXQgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXyA6IGRlY2ltYWwgPVxuICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9tb24gcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXylcbiAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgKG9fdG9tb25leV9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZGl2X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fcmVkdWNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKHN1bTFfOiBkZWNpbWFsKSAoc3VtMl86IGRlY2ltYWwpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX3JhdF9yYXQgc3VtMV8gc3VtMl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX21hcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuICh0cmFuY2hlXzogVHJhbmNoZVJldmVudURlY2ltYWwudCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5jaGVfLlRyYW5jaGVSZXZlbnVEZWNpbWFsLmJhcykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5jaGVfLlRyYW5jaGVSZXZlbnVEZWNpbWFsLmhhdXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBMaW1pdGVUcmFuY2hlRGVjaW1hbC5SZXZlbnUgdHJhbmNoZV9oYXV0XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5jaGVfaGF1dF8pIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5jaGVfaGF1dF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFuY2hlXy5UcmFuY2hlUmV2ZW51RGVjaW1hbC5iYXMpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5jaGVfLlRyYW5jaGVSZXZlbnVEZWNpbWFsLnRhdXgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5jaGVfLlRyYW5jaGVSZXZlbnVEZWNpbWFsLmJhcykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJhbmNoZV8uVHJhbmNoZVJldmVudURlY2ltYWwudGF1eCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IExpbWl0ZVRyYW5jaGVEZWNpbWFsLkluZmluaSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJhbmNoZV8uVHJhbmNoZVJldmVudURlY2ltYWwuYmFzKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFuY2hlXy5UcmFuY2hlUmV2ZW51RGVjaW1hbC50YXV4KSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuY2hlc19yZXZlbnVzX2Q4MzJfMjZfbXVsdGlwbGllZXNfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfbW9uIG1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8yNl8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMi5cIikpKSkpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQwNTk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDA1OTsgZW5kX2NvbHVtbj0yMTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgKGxldCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfIDogZGVjaW1hbCA9XG4gICAgICAgICAgICAgICAob190b3JhdF9tb24gcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXylcbiAgICAgICAgICAgIGluXG4gICAgICAgICAgICAob190b21vbmV5X3JhdFxuICAgICAgICAgICAgICAgKG9fZGl2X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgIChvX2FkZF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAob19yZWR1Y2VcbiAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKHN1bTFfOiBkZWNpbWFsKSAoc3VtMl86IGRlY2ltYWwpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9yYXRfcmF0IHN1bTFfIHN1bTJfKVxuICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC5cIilcbiAgICAgICAgICAgICAgICAgICAgICAgIChvX21hcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAodHJhbmNoZV86IFRyYW5jaGVSZXZlbnVEZWNpbWFsLnQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX3JhdF9yYXQgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJhbmNoZV8uVHJhbmNoZVJldmVudURlY2ltYWwuYmFzKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAodHJhbmNoZV8uVHJhbmNoZVJldmVudURlY2ltYWwuaGF1dClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTGltaXRlVHJhbmNoZURlY2ltYWwuUmV2ZW51IHRyYW5jaGVfaGF1dF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbmNoZV9oYXV0XykgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9yYXRfcmF0IHRyYW5jaGVfaGF1dF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJhbmNoZV8uVHJhbmNoZVJldmVudURlY2ltYWwuYmFzKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJhbmNoZV8uVHJhbmNoZVJldmVudURlY2ltYWwudGF1eCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFuY2hlXy5UcmFuY2hlUmV2ZW51RGVjaW1hbC5iYXMpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFuY2hlXy5UcmFuY2hlUmV2ZW51RGVjaW1hbC50YXV4KSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IExpbWl0ZVRyYW5jaGVEZWNpbWFsLkluZmluaSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5jaGVfLlRyYW5jaGVSZXZlbnVEZWNpbWFsLmJhcykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5jaGVfLlRyYW5jaGVSZXZlbnVEZWNpbWFsLnRhdXgpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuY2hlc19yZXZlbnVzX2Q4MzJfMjZfbXVsdGlwbGllZXNfKSlcbiAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfbW9uIG1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8yNl8pXG4gICAgICAgICAgICAgICAgICAgICAgICBuX25vbWJyZV9wYXJ0c19kODMyXzI1XykpIChkZWNpbWFsX29mX3N0cmluZyBcIjEyLlwiKSkpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjU3OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY1NzsgZW5kX2NvbHVtbj0xOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICB7Q2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlLm1vbnRhbnQgPSBtb250YW50X31cblxubGV0IGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llciAoY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luOiBDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llckluLnQpIDogQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXIudCA9XG4gIGxldCBjb25kaXRpb25fMl9kdV84MzJfMjVfOiBib29sID0gY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4uY29uZGl0aW9uXzJfZHVfODMyXzI1X2luIGluXG4gIGxldCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlciA9IGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pbi5DYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llckluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gaW5cbiAgbGV0IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF86IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50ID0gY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luIGluXG4gIGxldCByZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pbi5DYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llckluLnJlc2lkZW5jZV9pbiBpblxuICBsZXQgbGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV86IHVuaXQgLT4gYm9vbCA9IGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pbi5DYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llckluLmxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gaW5cbiAgbGV0IGxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJcIjtcbiAgICAgIFwibGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc1/DoF9jaGFyZ2VcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02NjU7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjY1OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+IGxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfICgpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjY1OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY2NTsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY2NTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY2NTsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjY1OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY2NTsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbl9ub21icmVfcGFydHNfZDgzMl8yNV9iYXNlXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyXCI7IFwibl9ub21icmVfcGFydHNfZDgzMl8yNV9iYXNlXCJdXG4gICAgKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02Njc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjY3OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjY3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjY3OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MDA3OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MDA3OyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25fMl9kdV84MzJfMjVfKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8gKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEuMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMS41XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkgdGhlbiAoZGVjaW1hbF9vZl9zdHJpbmcgXCIyLjVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIzLlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjMuN1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNC4zXCIpKSkpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTEzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM5MTM7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICBpZiAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXyAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxLjRcIilcbiAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMS44XCIpKSBlbHNlXG4gICAgICAgICAgICAgICggaWYgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8gKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSlcbiAgICAgICAgICAgICAgICAgdGhlbiAoZGVjaW1hbF9vZl9zdHJpbmcgXCIyLjVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpXG4gICAgICAgICAgICAgICAgICAgIHRoZW4gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMy5cIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIjNcIikpIHRoZW4gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMy43XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNC4zXCIpKSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02Njc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjY3OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBuX25vbWJyZV9wYXJ0c19kODMyXzI1X21ham9yYXRpb25fOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJcIjsgXCJuX25vbWJyZV9wYXJ0c19kODMyXzI1X21ham9yYXRpb25cIl1cbiAgICAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTY2ODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02Njg7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02Njg7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02Njg7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjY4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02Njg7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01NTIyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU1Mjg7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYxLThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbiBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxLlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXQgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC41XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKSkpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQwMjQ7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQwMjQ7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbl8yX2R1XzgzMl8yNV8pKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTI4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM5Mjg7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAob19ndF9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0IChkZWNpbWFsX29mX3N0cmluZyBcIjAuNVwiKVxuICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkpKSBlbHNlXG4gICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02Njg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjY4OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBuX25vbWJyZV9wYXJ0c19kODMyXzI1XzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyXCI7IFwibl9ub21icmVfcGFydHNfZDgzMl8yNVwiXVxuICAgIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjcwOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY3MDsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM5MzM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzkzMzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19hZGRfcmF0X3JhdCBuX25vbWJyZV9wYXJ0c19kODMyXzI1X2Jhc2VfXG4gICAgICAgICAgICAgIG5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfbWFqb3JhdGlvbl8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTY3MDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02NzA7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAge0NhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjUgPVxuICAgICBuX25vbWJyZV9wYXJ0c19kODMyXzI1X31cblxubGV0IGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZSAoY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlX2luOiBDYWxjdWxOb21icmVQYXJ0c0FjY2Vzc2lvblByb3ByaWV0ZUluLnQpIDogQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGUudCA9XG4gIGxldCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlciA9IGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxOb21icmVQYXJ0c0FjY2Vzc2lvblByb3ByaWV0ZUluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gaW5cbiAgbGV0IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF86IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50ID0gY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlSW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luIGluXG4gIGxldCBuX25vbWJyZV9wYXJ0c19kODMyXzExXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpw6l0w6lcIjsgXCJuX25vbWJyZV9wYXJ0c19kODMyXzExXCJdXG4gICAgKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03MzU7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NzM1OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTMyNTc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzI1NzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWYgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8gKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMS40XCIpXG4gICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEuOFwiKSkgZWxzZVxuICAgICAgICAgICAgICAoIGlmIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpXG4gICAgICAgICAgICAgICAgIHRoZW4gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMi41XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXyAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKVxuICAgICAgICAgICAgICAgICAgICB0aGVuIChkZWNpbWFsX29mX3N0cmluZyBcIjMuXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXyAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzXCIpKSB0aGVuIChkZWNpbWFsX29mX3N0cmluZyBcIjMuN1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8gKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNFwiKSkgdGhlbiAoZGVjaW1hbF9vZl9zdHJpbmcgXCI0LjNcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCI0LjNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0IChkZWNpbWFsX29mX3N0cmluZyBcIjAuNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkpKSkpKSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03MzU7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NzM1OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICB7Q2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGUubl9ub21icmVfcGFydHNfZDgzMl8xMSA9XG4gICAgIG5fbm9tYnJlX3BhcnRzX2Q4MzJfMTFffVxuXG5sZXQgb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZSAob3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9pbjogT3V2ZXJ0dXJlRHJvaXRzUmV0cmFpdGVJbi50KSA6IE91dmVydHVyZURyb2l0c1JldHJhaXRlLnQgPVxuICBsZXQgZGF0ZV9uYWlzc2FuY2VfYXNzdXJlXzogZGF0ZSA9IG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW4uT3V2ZXJ0dXJlRHJvaXRzUmV0cmFpdGVJbi5kYXRlX25haXNzYW5jZV9hc3N1cmVfaW4gaW5cbiAgbGV0IGFnZV9vdXZlcnR1cmVfZHJvaXRfOiBkdXJhdGlvbiA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIk91dmVydHVyZURyb2l0c1JldHJhaXRlXCI7IFwiw6JnZV9vdXZlcnR1cmVfZHJvaXRcIl0gKGVtYmVkX2R1cmF0aW9uKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTExODsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMTE4OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiRGF0ZSBkJ291dmVydHVyZSBkZXMgZHJvaXRzIMOgIGxhIHJldHJhaXRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTExODsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExMTg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkRhdGUgZCdvdXZlcnR1cmUgZGVzIGRyb2l0cyDDoCBsYSByZXRyYWl0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfc8OpY3VyaXTDqV9zb2NpYWxlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTk7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDE2MS0xNy0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJhZ3JhcGhlIDEgOiBJbmZvcm1hdGlvbiBldCBzaW1wbGlmaWNhdGlvbiBkZXMgZMOpbWFyY2hlcyBkZXMgYXNzdXLDqXMuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gNCA6IEFzc3VyYW5jZSB2aWVpbGxlc3NlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBCw6luw6lmaWNpYWlyZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IERpc3Bvc2l0aW9ucyByZWxhdGl2ZXMgYXV4IHByZXN0YXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyByZWxhdGl2ZXMgYXV4IHByZXN0YXRpb25zIGV0IGF1eCBzb2lucyAtIENvbnRyw7RsZSBtw6lkaWNhbCAtIFR1dGVsbGUgYXV4IHByZXN0YXRpb25zIHNvY2lhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUk6IFRpdHJlIElJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyByZWxhdGl2ZXMgYXUgZmluYW5jZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX25haXNzYW5jZV9hc3N1cmVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5NTUpICgxKSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGR1cmF0aW9uX29mX251bWJlcnMgKDYyKSAoMCkgKDApKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExMTg7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTE4OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJEYXRlIGQnb3V2ZXJ0dXJlIGRlcyBkcm9pdHMgw6AgbGEgcmV0cmFpdGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX3PDqWN1cml0w6lfc29jaWFsZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI1Njsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjU2OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQxNjEtMi0xLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcmFncmFwaGUgMiA6IE91dmVydHVyZSBkdSBkcm9pdCBldCBsaXF1aWRhdGlvbi5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiA0IDogQXNzdXJhbmNlIHZpZWlsbGVzc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IELDqW7DqWZpY2lhaXJlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogRGlzcG9zaXRpb25zIHJlbGF0aXZlcyBhdXggcHJlc3RhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHJlbGF0aXZlcyBhdXggcHJlc3RhdGlvbnMgZXQgYXV4IHNvaW5zIC0gQ29udHLDtGxlIG3DqWRpY2FsIC0gVHV0ZWxsZSBhdXggcHJlc3RhdGlvbnMgc29jaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIEkgOiBHw6luw6lyYWxpdMOpcyAtIERpc3Bvc2l0aW9ucyBjb21tdW5lcyDDoCB0b3V0IG91IHBhcnRpZSBkZXMgcsOpZ2ltZXMgZGUgYmFzZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9uYWlzc2FuY2VfYXNzdXJlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTUxKSAoNykgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkdXJhdGlvbl9vZl9udW1iZXJzICg2MCkgKDApICgwKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTE4OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTExODsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiRGF0ZSBkJ291dmVydHVyZSBkZXMgZHJvaXRzIMOgIGxhIHJldHJhaXRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9zw6ljdXJpdMOpX3NvY2lhbGUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNjY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI2NzsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEMTYxLTItMS05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJhZ3JhcGhlIDIgOiBPdXZlcnR1cmUgZHUgZHJvaXQgZXQgbGlxdWlkYXRpb24uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gNCA6IEFzc3VyYW5jZSB2aWVpbGxlc3NlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBCw6luw6lmaWNpYWlyZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IERpc3Bvc2l0aW9ucyByZWxhdGl2ZXMgYXV4IHByZXN0YXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyByZWxhdGl2ZXMgYXV4IHByZXN0YXRpb25zIGV0IGF1eCBzb2lucyAtIENvbnRyw7RsZSBtw6lkaWNhbCAtIFR1dGVsbGUgYXV4IHByZXN0YXRpb25zIHNvY2lhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBJIDogR8OpbsOpcmFsaXTDqXMgLSBEaXNwb3NpdGlvbnMgY29tbXVuZXMgw6AgdG91dCBvdSBwYXJ0aWUgZGVzIHLDqWdpbWVzIGRlIGJhc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9uYWlzc2FuY2VfYXNzdXJlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTUxKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9uYWlzc2FuY2VfYXNzdXJlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTUxKSAoMTIpICgzMSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBvX2FkZF9kdXJfZHVyIChkdXJhdGlvbl9vZl9udW1iZXJzICg2MCkgKDApICgwKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZHVyYXRpb25fb2ZfbnVtYmVycyAoMCkgKDQpICgwKSkpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTExODsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExMTg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkRhdGUgZCdvdXZlcnR1cmUgZGVzIGRyb2l0cyDDoCBsYSByZXRyYWl0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfc8OpY3VyaXTDqV9zb2NpYWxlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjc2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNzY7IGVuZF9jb2x1bW49NDg7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDE2MS0yLTEtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFyYWdyYXBoZSAyIDogT3V2ZXJ0dXJlIGR1IGRyb2l0IGV0IGxpcXVpZGF0aW9uLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDQgOiBBc3N1cmFuY2UgdmllaWxsZXNzZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQsOpbsOpZmljaWFpcmVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBEaXNwb3NpdGlvbnMgcmVsYXRpdmVzIGF1eCBwcmVzdGF0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcmVsYXRpdmVzIGF1eCBwcmVzdGF0aW9ucyBldCBhdXggc29pbnMgLSBDb250csO0bGUgbcOpZGljYWwgLSBUdXRlbGxlIGF1eCBwcmVzdGF0aW9ucyBzb2NpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgSSA6IEfDqW7DqXJhbGl0w6lzIC0gRGlzcG9zaXRpb25zIGNvbW11bmVzIMOgIHRvdXQgb3UgcGFydGllIGRlcyByw6lnaW1lcyBkZSBiYXNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fZXEgKG9fZ2V0WWVhciBkYXRlX25haXNzYW5jZV9hc3N1cmVfKVxuICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxOTUyXCIpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG9fYWRkX2R1cl9kdXIgKGR1cmF0aW9uX29mX251bWJlcnMgKDYwKSAoMCkgKDApKVxuICAgICAgICAgICAgICAgICAgICAgIChkdXJhdGlvbl9vZl9udW1iZXJzICgwKSAoOSkgKDApKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTE4OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTExODsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiRGF0ZSBkJ291dmVydHVyZSBkZXMgZHJvaXRzIMOgIGxhIHJldHJhaXRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9zw6ljdXJpdMOpX3NvY2lhbGUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yODU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI4NTsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEMTYxLTItMS05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJhZ3JhcGhlIDIgOiBPdXZlcnR1cmUgZHUgZHJvaXQgZXQgbGlxdWlkYXRpb24uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gNCA6IEFzc3VyYW5jZSB2aWVpbGxlc3NlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBCw6luw6lmaWNpYWlyZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IERpc3Bvc2l0aW9ucyByZWxhdGl2ZXMgYXV4IHByZXN0YXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyByZWxhdGl2ZXMgYXV4IHByZXN0YXRpb25zIGV0IGF1eCBzb2lucyAtIENvbnRyw7RsZSBtw6lkaWNhbCAtIFR1dGVsbGUgYXV4IHByZXN0YXRpb25zIHNvY2lhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBJIDogR8OpbsOpcmFsaXTDqXMgLSBEaXNwb3NpdGlvbnMgY29tbXVuZXMgw6AgdG91dCBvdSBwYXJ0aWUgZGVzIHLDqWdpbWVzIGRlIGJhc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19lcSAob19nZXRZZWFyIGRhdGVfbmFpc3NhbmNlX2Fzc3VyZV8pXG4gICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjE5NTNcIikpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgb19hZGRfZHVyX2R1ciAoZHVyYXRpb25fb2ZfbnVtYmVycyAoNjEpICgwKSAoMCkpXG4gICAgICAgICAgICAgICAgICAgICAgKGR1cmF0aW9uX29mX251bWJlcnMgKDApICgyKSAoMCkpKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExMTg7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTE4OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJEYXRlIGQnb3V2ZXJ0dXJlIGRlcyBkcm9pdHMgw6AgbGEgcmV0cmFpdGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX3PDqWN1cml0w6lfc29jaWFsZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI5NDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mjk0OyBlbmRfY29sdW1uPTQ4O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQxNjEtMi0xLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcmFncmFwaGUgMiA6IE91dmVydHVyZSBkdSBkcm9pdCBldCBsaXF1aWRhdGlvbi5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiA0IDogQXNzdXJhbmNlIHZpZWlsbGVzc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IELDqW7DqWZpY2lhaXJlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogRGlzcG9zaXRpb25zIHJlbGF0aXZlcyBhdXggcHJlc3RhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHJlbGF0aXZlcyBhdXggcHJlc3RhdGlvbnMgZXQgYXV4IHNvaW5zIC0gQ29udHLDtGxlIG3DqWRpY2FsIC0gVHV0ZWxsZSBhdXggcHJlc3RhdGlvbnMgc29jaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIEkgOiBHw6luw6lyYWxpdMOpcyAtIERpc3Bvc2l0aW9ucyBjb21tdW5lcyDDoCB0b3V0IG91IHBhcnRpZSBkZXMgcsOpZ2ltZXMgZGUgYmFzZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2VxIChvX2dldFllYXIgZGF0ZV9uYWlzc2FuY2VfYXNzdXJlXylcbiAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMTk1NFwiKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBvX2FkZF9kdXJfZHVyIChkdXJhdGlvbl9vZl9udW1iZXJzICg2MSkgKDApICgwKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZHVyYXRpb25fb2ZfbnVtYmVycyAoMCkgKDcpICgwKSkpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExMTg7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTExODsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkRhdGUgZCdvdXZlcnR1cmUgZGVzIGRyb2l0cyDDoCBsYSByZXRyYWl0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICB7T3V2ZXJ0dXJlRHJvaXRzUmV0cmFpdGUuYWdlX291dmVydHVyZV9kcm9pdCA9IGFnZV9vdXZlcnR1cmVfZHJvaXRffVxuXG5sZXQgaW1wYXllX2RlcGVuc2VfbG9nZW1lbnQgKGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luOiBJbXBheWVEZXBlbnNlTG9nZW1lbnRJbi50KSA6IEltcGF5ZURlcGVuc2VMb2dlbWVudC50ID1cbiAgbGV0IG1vZGVfb2NjdXBhdGlvbl86IE1vZGVPY2N1cGF0aW9uLnQgPSBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbi5JbXBheWVEZXBlbnNlTG9nZW1lbnRJbi5tb2RlX29jY3VwYXRpb25faW4gaW5cbiAgbGV0IGFpZGVfdmVyc2VlXzogVmVyc2VtZW50QS50ID0gaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW4uSW1wYXllRGVwZW5zZUxvZ2VtZW50SW4uYWlkZV92ZXJzZWVfaW4gaW5cbiAgbGV0IG1vbnRhbnRfYXBsXzogbW9uZXkgPSBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbi5JbXBheWVEZXBlbnNlTG9nZW1lbnRJbi5tb250YW50X2FwbF9pbiBpblxuICBsZXQgbW9udGFudF9jaGFyZ2VzXzogbW9uZXkgPSBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbi5JbXBheWVEZXBlbnNlTG9nZW1lbnRJbi5tb250YW50X2NoYXJnZXNfaW4gaW5cbiAgbGV0IGRlcGVuc2VfbG9nZW1lbnRfOiBEZXBlbnNlTG9nZW1lbnQudCA9IGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luLkltcGF5ZURlcGVuc2VMb2dlbWVudEluLmRlcGVuc2VfbG9nZW1lbnRfaW4gaW5cbiAgbGV0IG1vbnRhbnRfZGV0dGVfOiBtb25leSA9IGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luLkltcGF5ZURlcGVuc2VMb2dlbWVudEluLm1vbnRhbnRfZGV0dGVfaW4gaW5cbiAgbGV0IG1vZGVfb2NjdXBhdGlvbl9pbXBheWVfOiBNb2RlT2NjdXBhdGlvbkltcGF5ZS50ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiSW1wYXnDqUTDqXBlbnNlTG9nZW1lbnRcIjsgXCJtb2RlX29jY3VwYXRpb25faW1wYXnDqVwiXVxuICAgIChlbWJlZF9tb2RlX29jY3VwYXRpb25faW1wYXllKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTEzNDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMTM0OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUXVhbnRpZmljYXRpb24gZGVzIGltcGF5w6lzIGRlIGTDqXBlbnNlIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjM0Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yMzQyOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODI0LTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZXVpbHMgZGUgY29uc3RpdHV0aW9uIGQndW4gaW1wYXnDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogSW1wYXnDqXMgZGUgZMOpcGVuc2VzIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBtYXRjaCBtb2RlX29jY3VwYXRpb25fXG4gICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBfIC0+XG4gICAgICAgICAgICAgICAgKE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZUxveWVyICgpKVxuICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgXyAtPlxuICAgICAgICAgICAgICAgIChNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVQcmV0ICgpKVxuICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5BY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uIF8gLT5cbiAgICAgICAgICAgICAgICAoTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllUHJldCAoKSlcbiAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+XG4gICAgICAgICAgICAgICAgKE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZUxveWVyICgpKVxuICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGlvbkFjY2Vzc2lvbiBfIC0+XG4gICAgICAgICAgICAgICAgKE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZUxveWVyICgpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTEzNDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMTM0OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUXVhbnRpZmljYXRpb24gZGVzIGltcGF5w6lzIGRlIGTDqXBlbnNlIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBkZXBlbnNlX2xvZ2VtZW50X2JydXRlXzogRGVwZW5zZUxvZ2VtZW50LnQgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJJbXBhecOpRMOpcGVuc2VMb2dlbWVudFwiOyBcImTDqXBlbnNlX2xvZ2VtZW50X2JydXRlXCJdXG4gICAgKGVtYmVkX2RlcGVuc2VfbG9nZW1lbnQpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTM1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExMzU7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJRdWFudGlmaWNhdGlvbiBkZXMgaW1wYXnDqXMgZGUgZMOpcGVuc2UgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTM1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTEzNTsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUXVhbnRpZmljYXRpb24gZGVzIGltcGF5w6lzIGRlIGTDqXBlbnNlIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTEzNTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTEzNTsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJRdWFudGlmaWNhdGlvbiBkZXMgaW1wYXnDqXMgZGUgZMOpcGVuc2UgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjMxMDsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjMxMDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjQtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZXVpbHMgZGUgY29uc3RpdHV0aW9uIGQndW4gaW1wYXnDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IEltcGF5w6lzIGRlIGTDqXBlbnNlcyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZUxveWVyIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVQcmV0IF8gLT4gdHJ1ZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlcGVuc2VfbG9nZW1lbnRfKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMjE0OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjIxNDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODI0LTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IFNldWlscyBkZSBjb25zdGl0dXRpb24gZCd1biBpbXBhecOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IEltcGF5w6lzIGRlIGTDqXBlbnNlcyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChtYXRjaCBtb2RlX29jY3VwYXRpb25faW1wYXllX1xuICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVMb3llciBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllUHJldCBfIC0+IGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlcGVuc2VfbG9nZW1lbnRfKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTM1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExMzU7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJRdWFudGlmaWNhdGlvbiBkZXMgaW1wYXnDqXMgZGUgZMOpcGVuc2UgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGRlcGVuc2VfbG9nZW1lbnRfbmV0dGVfOiBEZXBlbnNlTG9nZW1lbnQudCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkltcGF5w6lEw6lwZW5zZUxvZ2VtZW50XCI7IFwiZMOpcGVuc2VfbG9nZW1lbnRfbmV0dGVcIl1cbiAgICAoZW1iZWRfZGVwZW5zZV9sb2dlbWVudCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTExMzY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTEzNjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlF1YW50aWZpY2F0aW9uIGRlcyBpbXBhecOpcyBkZSBkw6lwZW5zZSBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExMzY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTM2OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJRdWFudGlmaWNhdGlvbiBkZXMgaW1wYXnDqXMgZGUgZMOpcGVuc2UgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjIyMzsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIyMjM7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyNC0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZXVpbHMgZGUgY29uc3RpdHV0aW9uIGQndW4gaW1wYXnDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBJbXBhecOpcyBkZSBkw6lwZW5zZXMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAobWF0Y2ggbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZV9cbiAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllTG95ZXIgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZVByZXQgXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBtYXRjaCBkZXBlbnNlX2xvZ2VtZW50X2JydXRlX1xuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgRGVwZW5zZUxvZ2VtZW50LlRvdGFsQW5udWVsRWNoZWFuY2VzIHRvdGFsXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKERlcGVuc2VMb2dlbWVudC5Ub3RhbEFubnVlbEVjaGVhbmNlcyB0b3RhbF8pXG4gICAgICAgICAgICAgICAgICAgIHwgRGVwZW5zZUxvZ2VtZW50Lk1lbnN1YWxpdGUgbWVuc3VhbGl0ZV8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChEZXBlbnNlTG9nZW1lbnQuTWVuc3VhbGl0ZSBtZW5zdWFsaXRlXylcbiAgICAgICAgICAgICAgICAgICAgfCBEZXBlbnNlTG9nZW1lbnQuTG95ZXIgbW9udGFudF9sb3llcl8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChEZXBlbnNlTG9nZW1lbnQuTG95ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIG1vbnRhbnRfbG95ZXJfIG1vbnRhbnRfYXBsXykpKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExMzY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTM2OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJRdWFudGlmaWNhdGlvbiBkZXMgaW1wYXnDqXMgZGUgZMOpcGVuc2UgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjMxOTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIzMTk7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyNC0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZXVpbHMgZGUgY29uc3RpdHV0aW9uIGQndW4gaW1wYXnDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBJbXBhecOpcyBkZSBkw6lwZW5zZXMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAobWF0Y2ggbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZV9cbiAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllTG95ZXIgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVQcmV0IF8gLT4gdHJ1ZSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBtYXRjaCBkZXBlbnNlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgRGVwZW5zZUxvZ2VtZW50LlRvdGFsQW5udWVsRWNoZWFuY2VzIHRvdGFsX2VjaGVhbmNlc18gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChEZXBlbnNlTG9nZW1lbnQuVG90YWxBbm51ZWxFY2hlYW5jZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIHRvdGFsX2VjaGVhbmNlc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBtb250YW50X2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEyLlwiKSkpKVxuICAgICAgICAgICAgICAgICAgICB8IERlcGVuc2VMb2dlbWVudC5NZW5zdWFsaXRlIG1lbnN1YWxpdGVfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoRGVwZW5zZUxvZ2VtZW50Lk1lbnN1YWxpdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIG1lbnN1YWxpdGVfIG1vbnRhbnRfYXBsXykpXG4gICAgICAgICAgICAgICAgICAgIHwgRGVwZW5zZUxvZ2VtZW50LkxveWVyIGxveWVyXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKERlcGVuc2VMb2dlbWVudC5Mb3llciBsb3llcl8pKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTM2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExMzY7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJRdWFudGlmaWNhdGlvbiBkZXMgaW1wYXnDqXMgZGUgZMOpcGVuc2UgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHNldWlsX2ltcGF5ZV9kZXBlbnNlX2RlX2xvZ2VtZW50XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJJbXBhecOpRMOpcGVuc2VMb2dlbWVudFwiOyBcInNldWlsX2ltcGF5w6lfZMOpcGVuc2VfZGVfbG9nZW1lbnRcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTMzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExMzM7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJRdWFudGlmaWNhdGlvbiBkZXMgaW1wYXnDqXMgZGUgZMOpcGVuc2UgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTMzOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTEzMzsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUXVhbnRpZmljYXRpb24gZGVzIGltcGF5w6lzIGRlIGTDqXBlbnNlIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIxODQ7IHN0YXJ0X2NvbHVtbj0yMDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMTg0OyBlbmRfY29sdW1uPTU1O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjQtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2V1aWxzIGRlIGNvbnN0aXR1dGlvbiBkJ3VuIGltcGF5w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogSW1wYXnDqXMgZGUgZMOpcGVuc2VzIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBtb2RlX29jY3VwYXRpb25faW1wYXllX1xuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVMb3llciBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllUHJldCBfIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggYWlkZV92ZXJzZWVfXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFZlcnNlbWVudEEuQmFpbGxldXIgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBWZXJzZW1lbnRBLkJlbmVmaWNpYWlyZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVmVyc2VtZW50QS5FdGFibGlzc2VtZW50SGFiaWxpdGUgXyAtPiBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggZGVwZW5zZV9sb2dlbWVudF9icnV0ZV9cbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IERlcGVuc2VMb2dlbWVudC5Ub3RhbEFubnVlbEVjaGVhbmNlcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKVxuICAgICAgICAgICAgICAgICAgICB8IERlcGVuc2VMb2dlbWVudC5NZW5zdWFsaXRlIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgXCIwXCIpXG4gICAgICAgICAgICAgICAgICAgIHwgRGVwZW5zZUxvZ2VtZW50LkxveWVyIGxveWVyX2JydXRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIGxveWVyX2JydXRfIG1vbnRhbnRfY2hhcmdlc18pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIyLlwiKSkpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTEzMzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExMzM7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlF1YW50aWZpY2F0aW9uIGRlcyBpbXBhecOpcyBkZSBkw6lwZW5zZSBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMjAwOyBzdGFydF9jb2x1bW49MjA7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjIwMDsgZW5kX2NvbHVtbj01MTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODI0LTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IFNldWlscyBkZSBjb25zdGl0dXRpb24gZCd1biBpbXBhecOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IEltcGF5w6lzIGRlIGTDqXBlbnNlcyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllTG95ZXIgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZVByZXQgXyAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIGFpZGVfdmVyc2VlX1xuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBWZXJzZW1lbnRBLkJhaWxsZXVyIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBWZXJzZW1lbnRBLkJlbmVmaWNpYWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFZlcnNlbWVudEEuRXRhYmxpc3NlbWVudEhhYmlsaXRlIF8gLT4gZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIGRlcGVuc2VfbG9nZW1lbnRfbmV0dGVfXG4gICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgfCBEZXBlbnNlTG9nZW1lbnQuVG90YWxBbm51ZWxFY2hlYW5jZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIilcbiAgICAgICAgICAgICAgICAgICAgfCBEZXBlbnNlTG9nZW1lbnQuTWVuc3VhbGl0ZSBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiMFwiKVxuICAgICAgICAgICAgICAgICAgICB8IERlcGVuc2VMb2dlbWVudC5Mb3llciBsb3llcl9uZXRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIGxveWVyX25ldF8gbW9udGFudF9jaGFyZ2VzXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjIuXCIpKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTMzOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTEzMzsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUXVhbnRpZmljYXRpb24gZGVzIGltcGF5w6lzIGRlIGTDqXBlbnNlIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIyNjY7IHN0YXJ0X2NvbHVtbj03O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIyNjY7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyNC0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZXVpbHMgZGUgY29uc3RpdHV0aW9uIGQndW4gaW1wYXnDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBJbXBhecOpcyBkZSBkw6lwZW5zZXMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIG1vZGVfb2NjdXBhdGlvbl9pbXBheWVfXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZUxveWVyIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllUHJldCBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBhaWRlX3ZlcnNlZV9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVmVyc2VtZW50QS5CYWlsbGV1ciBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFZlcnNlbWVudEEuQmVuZWZpY2lhaXJlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBWZXJzZW1lbnRBLkV0YWJsaXNzZW1lbnRIYWJpbGl0ZSBfIC0+IGZhbHNlKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBtYXRjaCBkZXBlbnNlX2xvZ2VtZW50X2JydXRlX1xuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgRGVwZW5zZUxvZ2VtZW50LlRvdGFsQW5udWVsRWNoZWFuY2VzIGVjaGVhbmNlX3ByZXRfYnJ1dGVfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgZWNoZWFuY2VfcHJldF9icnV0ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2Rpdl9yYXRfcmF0IChkZWNpbWFsX29mX3N0cmluZyBcIjEuXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSkpXG4gICAgICAgICAgICAgICAgICAgIHwgRGVwZW5zZUxvZ2VtZW50Lk1lbnN1YWxpdGUgbWVuc3VhbGl0ZV9icnV0ZV8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBtZW5zdWFsaXRlX2JydXRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMi5cIikpXG4gICAgICAgICAgICAgICAgICAgIHwgRGVwZW5zZUxvZ2VtZW50LkxveWVyIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTEzMzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExMzM7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlF1YW50aWZpY2F0aW9uIGRlcyBpbXBhecOpcyBkZSBkw6lwZW5zZSBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMjk0OyBzdGFydF9jb2x1bW49NztcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMjk0OyBlbmRfY29sdW1uPTUxO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjQtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2V1aWxzIGRlIGNvbnN0aXR1dGlvbiBkJ3VuIGltcGF5w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogSW1wYXnDqXMgZGUgZMOpcGVuc2VzIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBtb2RlX29jY3VwYXRpb25faW1wYXllX1xuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVMb3llciBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZVByZXQgXyAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggYWlkZV92ZXJzZWVfXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFZlcnNlbWVudEEuQmFpbGxldXIgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBWZXJzZW1lbnRBLkJlbmVmaWNpYWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFZlcnNlbWVudEEuRXRhYmxpc3NlbWVudEhhYmlsaXRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggZGVwZW5zZV9sb2dlbWVudF9uZXR0ZV9cbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IERlcGVuc2VMb2dlbWVudC5Ub3RhbEFubnVlbEVjaGVhbmNlcyBlY2hlYW5jZV9wcmV0X25ldHRlXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGVjaGVhbmNlX3ByZXRfbmV0dGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19kaXZfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxLlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpKVxuICAgICAgICAgICAgICAgICAgICB8IERlcGVuc2VMb2dlbWVudC5NZW5zdWFsaXRlIG1lbnN1YWxpdGVfbmV0dGVfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgbWVuc3VhbGl0ZV9uZXR0ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjIuXCIpKVxuICAgICAgICAgICAgICAgICAgICB8IERlcGVuc2VMb2dlbWVudC5Mb3llciBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTMzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExMzM7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJRdWFudGlmaWNhdGlvbiBkZXMgaW1wYXnDqXMgZGUgZMOpcGVuc2UgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfaW1wYXllXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJJbXBhecOpRMOpcGVuc2VMb2dlbWVudFwiOyBcIm1vbnRhbnRfaW1wYXnDqVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTM4OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTExMzg7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJRdWFudGlmaWNhdGlvbiBkZXMgaW1wYXnDqXMgZGUgZMOpcGVuc2UgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTM4OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTEzODsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUXVhbnRpZmljYXRpb24gZGVzIGltcGF5w6lzIGRlIGTDqXBlbnNlIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTEzODsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTEzODsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJRdWFudGlmaWNhdGlvbiBkZXMgaW1wYXnDqXMgZGUgZMOpcGVuc2UgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjI0Mjsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjI0MjsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjQtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZXVpbHMgZGUgY29uc3RpdHV0aW9uIGQndW4gaW1wYXnDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IEltcGF5w6lzIGRlIGTDqXBlbnNlcyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZUxveWVyIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVQcmV0IF8gLT4gdHJ1ZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfbW9uX21vbiBtb250YW50X2RldHRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V1aWxfaW1wYXllX2RlcGVuc2VfZGVfbG9nZW1lbnRfKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X2RldHRlXyBlbHNlIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMTc5OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjE3OTsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODI0LTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IFNldWlscyBkZSBjb25zdGl0dXRpb24gZCd1biBpbXBhecOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IEltcGF5w6lzIGRlIGTDqXBlbnNlcyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChtYXRjaCBtb2RlX29jY3VwYXRpb25faW1wYXllX1xuICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVMb3llciBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllUHJldCBfIC0+IGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9tb25fbW9uIG1vbnRhbnRfZGV0dGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgc2V1aWxfaW1wYXllX2RlcGVuc2VfZGVfbG9nZW1lbnRfKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9kZXR0ZV8gZWxzZSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTEzODsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMTM4OyBlbmRfY29sdW1uPTI2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUXVhbnRpZmljYXRpb24gZGVzIGltcGF5w6lzIGRlIGTDqXBlbnNlIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIHtJbXBheWVEZXBlbnNlTG9nZW1lbnQubW9udGFudF9pbXBheWUgPSBtb250YW50X2ltcGF5ZV99XG5cbmxldCBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzIChiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luOiBCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4udCkgOiBCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLnQgPVxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLkJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCBtb250YW50XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwibW9udGFudFwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02OyBlbmRfY29sdW1uPTE5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvYm1hZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjsgZW5kX2NvbHVtbj0xOTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzM7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkluc3RydWN0aW9uIG1pbmlzdMOpcmllbGxlIE7CsERTUy9TRDJCLzIwMTkvNjUgZHUgMjUgbWFycyAyMDE5IHJlbGF0aXZlIMOgIGxhIHJldmFsb3Jpc2F0aW9uIGF1IDFlciBhdnJpbCAyMDE5IGRlcyBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIHNlcnZpZXMgZW4gbcOpdHJvcG9sZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICg0KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICg0KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MTMxNlwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY7IGVuZF9jb2x1bW49MTk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTUzOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnN0cnVjdGlvbiBpbnRlcm1pbmlzdMOpcmllbGxlIG5vIERTUy9TRDJCLzIwMjAvMzMgZHUgMTggZsOpdnJpZXIgMjAyMCByZWxhdGl2ZSDDoCBsYSByZXZhbG9yaXNhdGlvbiBhdSAxZXIgYXZyaWwgMjAyMCBkZXMgcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBzZXJ2aWVzIGVuIG3DqXRyb3BvbGUsIGVuIEd1YWRlbG91cGUsIGVuIEd1eWFuZSwgZW4gTWFydGluaXF1ZSwgw6AgTGEgUsOpdW5pb24sIMOgIFNhaW50LUJhcnRow6lsZW15LCDDoCBTYWludC1NYXJ0aW4gZXQgZGFucyBsZSBkw6lwYXJ0ZW1lbnQgZGUgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICg0KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICg0KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MTQ0MFwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY7IGVuZF9jb2x1bW49MTk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Njg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY5OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnN0cnVjdGlvbiBpbnRlcm1pbmlzdMOpcmllbGxlIG7CsERTUy8yQi8yMDIxLzY1IGR1IDE5IG1hcnMgMjAyMSByZWxhdGl2ZSDDoCBsYSByZXZhbG9yaXNhdGlvbiBhdSAxZXIgYXZyaWwgMjAyMSBkZXMgcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBzZXJ2aWVzIGVuIG3DqXRyb3BvbGUsIGVuIEd1YWRlbG91cGUsIGVuIEd1eWFuZSwgZW4gTWFydGluaXF1ZSwgw6AgbGEgUsOpdW5pb24sIMOgIFNhaW50LUJhcnRow6lsZW15LCDDoCBTYWludC1NYXJ0aW4gZXQgZGFucyBsZSBkw6lwYXJ0ZW1lbnQgZGUgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICg0KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg0KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MTQ4MVwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY7IGVuZF9jb2x1bW49MTk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTg2OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnN0cnVjdGlvbiBpbnRlcm1pbmlzdMOpcmllbGxlIG7CsERTUy8yQi8yMDIyLzgyIGR1IDI4IG1hcnMgMjAyMiByZWxhdGl2ZSDDoCBsYSByZXZhbG9yaXNhdGlvbiBhdSAxZXIgYXZyaWwgMjAyMiBkZXMgcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBzZXJ2aWVzIGVuIG3DqXRyb3BvbGUsIGVuIEd1YWRlbG91cGUsIGVuIEd1eWFuZSwgZW4gTWFydGluaXF1ZSwgw6AgbGEgUsOpdW5pb24sIMOgIFNhaW50LUJhcnRow6lsZW15LCDDoCBTYWludC1NYXJ0aW4gZXQgZGFucyBsZSBkw6lwYXJ0ZW1lbnQgZGUgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDQpICgxKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDIyMjhcIikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjsgZW5kX2NvbHVtbj0xOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19KSkpKSBpblxuICBsZXQgXzogdW5pdCA9IGlmIChcbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoNCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJNb250YW50IGRlIGxhIGJhc2UgbWVuc3VlbGxlIGRlcyBhbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCJdfSkpKVxuICAgICAgICAgICAgICAgICAgdGhlbiAoKSBlbHNlXG4gICAgICAgICAgICAgICAgICByYWlzZSAoQXNzZXJ0aW9uRmFpbGVkIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX0pIGluXG4gIHtCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLm1vbnRhbnQgPSBtb250YW50X31cblxubGV0IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYSAodmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luOiBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBSW4udCkgOiBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBLnQgPVxuICBsZXQgZGF0ZV9uYWlzc2FuY2VfOiBkYXRlID0gdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luLlZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi5kYXRlX25haXNzYW5jZV9pbiBpblxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4uVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IGFubmVlc186IGR1cmF0aW9uID0gdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luLlZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi5hbm5lZXNfaW4gaW5cbiAgbGV0IGVzdF9pbmZlcmlldXJfb3VfZWdhbF86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJWw6lyaWZpY2F0aW9uw4JnZUluZsOpcmlldXJPdcOJZ2Fsw4BcIjsgXCJlc3RfaW5mw6lyaWV1cl9vdV/DqWdhbFwiXVxuICAgIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljLy4uL3Byb2xvZ3VlX2ZyYW5jZS9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0yMjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0yMjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX0gKFxuICAgICAgICAgW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljLy4uL3Byb2xvZ3VlX2ZyYW5jZS9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yNTsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fbHRlX2RhdF9kYXQgKG9fYWRkX2RhdF9kdXIgUm91bmRVcCBkYXRlX25haXNzYW5jZV8gYW5uZWVzXylcbiAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy8uLi9wcm9sb2d1ZV9mcmFuY2UvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MjI7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MjI7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiOyBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19KSkpKSBpblxuICB7VmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQS5lc3RfaW5mZXJpZXVyX291X2VnYWwgPVxuICAgICBlc3RfaW5mZXJpZXVyX291X2VnYWxffVxuXG5sZXQgdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYSAodmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbjogVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLnQpIDogVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS50ID1cbiAgbGV0IGRhdGVfbmFpc3NhbmNlXzogZGF0ZSA9IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4uVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLmRhdGVfbmFpc3NhbmNlX2luIGluXG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4uVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IGFubmVlc186IGR1cmF0aW9uID0gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbi5WZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4uYW5uZWVzX2luIGluXG4gIGxldCBlc3Rfc3VwZXJpZXVyXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIlbDqXJpZmljYXRpb27DgmdlU3Vww6lyaWV1csOAXCI7IFwiZXN0X3N1cMOpcmlldXJcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvLi4vcHJvbG9ndWVfZnJhbmNlL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTMzOyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfSAoXG4gICAgICAgICBbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvLi4vcHJvbG9ndWVfZnJhbmNlL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM2OyBlbmRfY29sdW1uPTI3O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19ndF9kYXRfZGF0IChvX2FkZF9kYXRfZHVyIFJvdW5kVXAgZGF0ZV9uYWlzc2FuY2VfIGFubmVlc18pXG4gICAgICAgICAgICAgIGRhdGVfY291cmFudGVfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvLi4vcHJvbG9ndWVfZnJhbmNlL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTMzOyBlbmRfY29sdW1uPTI1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjsgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfSkpKSkgaW5cbiAge1ZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckEuZXN0X3N1cGVyaWV1ciA9IGVzdF9zdXBlcmlldXJffVxuXG5sZXQgc21pYyAoc21pY19pbjogU21pY0luLnQpIDogU21pYy50ID1cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gc21pY19pbi5TbWljSW4uZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgcmVzaWRlbmNlXzogQ29sbGVjdGl2aXRlLnQgPSBzbWljX2luLlNtaWNJbi5yZXNpZGVuY2VfaW4gaW5cbiAgbGV0IGJydXRfaG9yYWlyZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiU21pY1wiOyBcImJydXRfaG9yYWlyZVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDM7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsCAyMDE4LTExNzMgZHUgMTkgZMOpY2VtYnJlIDIwMTggcG9ydGFudCByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1eWFuZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSkpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDAzXCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01Mjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTQ7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsCAyMDE4LTExNzMgZHUgMTkgZMOpY2VtYnJlIDIwMTggcG9ydGFudCByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzU3XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03Mzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODI7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsCAyMDE5LTEzODcgZHUgMTggZMOpY2VtYnJlIDIwMTkgcG9ydGFudCByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1eWFuZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSkpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDE1XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTM7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsCAyMDE5LTEzODcgZHUgMTggZMOpY2VtYnJlIDIwMTkgcG9ydGFudCByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzY2XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyMTsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwIDIwMjAtMTU5OCBkdSAxNiBkw6ljZW1icmUgMjAyMCBwb3J0YW50IHJlbMOodmVtZW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19vciAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWV0cm9wb2xlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3V5YW5lICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTGFSZXVuaW9uICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludE1hcnRpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEwMjVcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzMDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTMyOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAyMC0xNTk4IGR1IDE2IGTDqWNlbWJyZSAyMDIwIHBvcnRhbnQgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjc3NFwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjA7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsCAyMDIxLTE3NDEgZHUgMjIgZMOpY2VtYnJlIDIwMjEgcG9ydGFudCByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDQpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19vciAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWV0cm9wb2xlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3V5YW5lICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTGFSZXVuaW9uICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludE1hcnRpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEwNTdcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE3MDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTcyOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAyMS0xNzQxIGR1IDIyIGTDqWNlbWJyZSAyMDIxIHBvcnRhbnQgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg0KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzk4XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xOTE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIwMDsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDE5IGF2cmlsIDIwMjIgcmVsYXRpZiBhdSByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg1KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19vciAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWV0cm9wb2xlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3V5YW5lICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTGFSZXVuaW9uICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludE1hcnRpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEwODVcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIwOTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjExOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMTkgYXZyaWwgMjAyMiByZWxhdGlmIGF1IHJlbMOodmVtZW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDUpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjgxOVwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjMwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMzk7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg4KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1eWFuZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSkpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMTA3XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNDg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI1MDsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI5IGp1aWxsZXQgMjAyMiByZWxhdGlmIGF1IHJlbMOodmVtZW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDgpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI4MzVcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI3MDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mjc5OyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAyMi0xNjA4IGR1IDIyIGTDqWNlbWJyZSAyMDIyIHBvcnRhbnQgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1eWFuZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjExMjdcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI4ODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjkwOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAyMi0xNjA4IGR1IDIyIGTDqWNlbWJyZSAyMDIyIHBvcnRhbnQgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI4NTFcIikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiOyBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19KSkpKSBpblxuICBsZXQgXzogdW5pdCA9IGlmIChcbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2OyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTY7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfSkpKVxuICAgICAgICAgICAgICAgICAgdGhlbiAoKSBlbHNlXG4gICAgICAgICAgICAgICAgICByYWlzZSAoQXNzZXJ0aW9uRmFpbGVkIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX0pIGluXG4gIHtTbWljLmJydXRfaG9yYWlyZSA9IGJydXRfaG9yYWlyZV99XG5cbmxldCBhcnJvbmRpX2NlbnRhaW5lX3N1cGVyaWV1cmVfIDogbW9uZXkgLT4gbW9uZXkgPVxuICBmdW4gKHJlc3NvdXJjZXNfbWVuYWdlXzogbW9uZXkpIC0+XG4gICAgb19tdWx0X21vbl9yYXRcbiAgICAgIChvX3JvdW5kX21vblxuICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCByZXNzb3VyY2VzX21lbmFnZV8gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMVwiKSlcbiAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0OVwiKSkpIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMC5cIilcblxubGV0IHRyYWl0ZW1lbnRfbnVsX3RvdXRfbGVfdGVtcHNfIDogbW9uZXkgLT4gbW9uZXkgPVxuICBmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIlxuXG5sZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW46IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4udCkgOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50ID1cbiAgbGV0IGxveWVyX3ByaW5jaXBhbF9iYXNlXzogbW9uZXkgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5sb3llcl9wcmluY2lwYWxfYmFzZV9pbiBpblxuICBsZXQgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXzogbW9uZXkgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gaW5cbiAgbGV0IGJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlc186IGJvb2wgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5iZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNfaW4gaW5cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV86IGludGVnZXIgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luIGluXG4gIGxldCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfOiBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwudCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiBpblxuICBsZXQgem9uZV86IFpvbmVESGFiaXRhdGlvbi50ID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uem9uZV9pbiBpblxuICBsZXQgbG9nZW1lbnRfZXN0X2NoYW1icmVfOiBib29sID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ubG9nZW1lbnRfZXN0X2NoYW1icmVfaW4gaW5cbiAgbGV0IGFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzXzogYm9vbCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzX2luIGluXG4gIGxldCB0eXBlX2FpZGVfOiBUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi50eXBlX2FpZGVfaW4gaW5cbiAgbGV0IGNvbG9jYXRpb25fOiBib29sID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uY29sb2NhdGlvbl9pbiBpblxuICBsZXQgcmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfOiBtb25leSA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnJlZHVjdGlvbl9sb3llcl9zb2xpZGFyaXRlX2luIGluXG4gIGxldCBsb2dlbWVudF9tZXVibGVfZDg0Ml8yXzogYm9vbCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmxvZ2VtZW50X21ldWJsZV9kODQyXzJfaW4gaW5cbiAgbGV0IHJlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ucmVzaWRlbmNlX2luIGluXG4gIGxldCBmcmFjdGlvbl9sODMyXzNfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7IFwiZnJhY3Rpb25fbDgzMl8zXCJdXG4gICAgKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01OTc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTk3OyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODg3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE4ODc7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IENhbGN1bCBkZSBsJ2FpZGUgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBkZWNpbWFsX29mX3N0cmluZyBcIjAuOThcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NTk3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTU5NzsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgXCJjb250cmlidXRpb25zX3NvY2lhbGVzLmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjI5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTYyOTsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTYyOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT02Mjk7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjI5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTYyOTsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7IFwiY29udHJpYnV0aW9uc19zb2NpYWxlc1wiO1xuICAgICAgXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiOyBcImNvbnRyaWJ1dGlvbnNfc29jaWFsZXNcIjtcbiAgICAgIFwiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCJdXG4gICAgY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudClcbiAgICAoe0NvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9kYXRlX2NvdXJhbnRlX30pKSkgaW5cbiAgbGV0IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfZG90X21vbnRhbnRfOiBtb25leSAtPiBtb25leSA9IHJlc3VsdF8uQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50Lm1vbnRhbnQgaW5cbiAgbGV0IG1vbnRhbnRfZm9yZmFpdGFpcmVfZDgyM18xNl86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICBcIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDgyM18xNlwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02MDA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjAwOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjg1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI4NTsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MDBcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjAwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTYwMDsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfZDgyM18xNl86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgIFwibXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyZ2VzX2Q4MjNfMTZcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02MDU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjA1OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDU7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNTsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA1OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIxOTY7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjE5NjsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb190b3JhdF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTEwOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTEwOyBlbmRfY29sdW1uPTU1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX3RvcmF0X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIzNTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIzNTsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA5XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02MDU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjA1OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfbWluaW1hbF9haWRlX2Q4MjNfMTZfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgXCJtb250YW50X21pbmltYWxfYWlkZV9kODIzXzE2XCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTYwMTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02MDE7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yOTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Mjk4OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBtYXRjaCB0eXBlX2FpZGVfXG4gICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICB8IFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudCBfIC0+XG4gICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIilcbiAgICAgICAgICAgIHwgVHlwZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGUgXyAtPlxuICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDAwXCIpXG4gICAgICAgICAgICB8IFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZSBfIC0+XG4gICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEwMDBcIikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYwMTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02MDE7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbG95ZXJfcHJpbmNpcGFsX2F2ZWNfcmVkdWN0aW9uX21ldWJsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICBcImxveWVyX3ByaW5jaXBhbF9hdmVjX3LDqWR1Y3Rpb25fbWV1YmzDqVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01NzQ7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NTc0OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00MjE5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQyMTk7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IFNlY3RldXIgbG9jYXRpZiBvcmRpbmFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWYgbG9nZW1lbnRfbWV1YmxlX2Q4NDJfMl8gdGhlblxuICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgbG95ZXJfcHJpbmNpcGFsX2Jhc2VfXG4gICAgICAgICAgICAgICAgIChvX2Rpdl9yYXRfcmF0IChkZWNpbWFsX29mX3N0cmluZyBcIjIuXCIpXG4gICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjMuXCIpKSkgZWxzZSBsb3llcl9wcmluY2lwYWxfYmFzZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU3NDsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT01NzQ7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdGF1eF9jb21wb3NpdGlvbl9mYW1pbGlhbGVfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7IFwidGF1eF9jb21wb3NpdGlvbl9mYW1pbGlhbGVcIl1cbiAgICAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTYxMjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02MTI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMjsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMjsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ4Njsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NDkzOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVggOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIG91dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyODFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyOTlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMzhcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIxN1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTk0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxOFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNjJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiN1wiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE2N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE2N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAwMDZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiN1wiKSkpKSkpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEyOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEyOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEyOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNjE4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzYyNTsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIwIC0gQXJyw6p0w6kgZHUgMyBqYW52aWVyIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjAgTk9SIDogTE9HTDE5MzQwMDZBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyODFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjk5XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjJcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjE3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE5NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNjJcIikpKSkpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzA3OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzA4NjsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDI4MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDI5OVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIzOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjE3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxOTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE2MlwiKSkpKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjAwNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMDExOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDI4MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjk5XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIzOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIxN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE5NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE2MlwiKSkpKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODg1OyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODkyOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjIgLSBBcnLDqnTDqSBkdSAyMCBkw6ljZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMiBOT1IgOiBMT0dMMjEzNDQ3N0FcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDI4MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyOTlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIzOFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMTdcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTk0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE2MlwiKSkpKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzg3OyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5NDsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqdWlsbGV0IDIwMjIgLSBBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBOT1IgOiBUUkVMMjIyMDc0OEEgLSBBcnLDqnTDqSBkdSAxNiBhb8O7dCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIC0gTk9SIDogVFJFTDIyMjA3NDRBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyODFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyOTlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMzhcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIxN1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTk0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxOFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNjJcIikpKSkpKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02MTI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTI7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTI7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTI7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIyNTk7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMjU5OyBlbmRfY29sdW1uPTU1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyODNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDMxNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIzOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIwMVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE4NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE3OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE3M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE3M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDAwNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2XCIpKSkpKSkpKSkpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExNzI7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE3MjsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDI4M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAzMTVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDI3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIzOFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMDFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTg1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE3OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNzNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNzNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDAwNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNlwiKSkpKSkpKSkpKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNjA7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM2MDsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyODNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAzMTVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyN1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjM4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMDFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE4NVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTc5XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNzNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNzNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMDA2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKSkpKSkpKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02MTI7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjEyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcjBfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICBcIm11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcjBcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02MDc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjA3OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDc7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNzsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA3OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDc7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDc7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNzsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMzOTg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNDA2OyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjAgLSBBcnLDqnTDqSBkdSAzIGphbnZpZXIgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMCBOT1IgOiBMT0dMMTkzNDAwNkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2XCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI4NjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI4Njg7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2XCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC5cIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE3ODU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTc5MzsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjY0OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjcyOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjIgLSBBcnLDqnTDqSBkdSAyMCBkw6ljZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMiBOT1IgOiBMT0dMMjEzNDQ3N0FcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNlwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTc2OyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGp1aWxsZXQgMjAyMiAtIEFycsOqdMOpIGR1IDI5IGp1aWxsZXQgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IE5PUiA6IFRSRUwyMjIwNzQ4QSAtIEFycsOqdMOpIGR1IDE2IGFvw7t0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgLSBOT1IgOiBUUkVMMjIyMDc0NEFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNlwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTYwNzsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA3OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDc7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNzsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNzsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzI1MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMyNTM7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIwIC0gQXJyw6p0w6kgZHUgMyBqYW52aWVyIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjAgTk9SIDogTE9HTDE5MzQwMDZBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTUzMTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTUzMTsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMiAtIEFycsOqdMOpIGR1IDIwIGTDqWNlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIyIE5PUiA6IExPR0wyMTM0NDc3QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzU7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzU7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGp1aWxsZXQgMjAyMiAtIEFycsOqdMOpIGR1IDI5IGp1aWxsZXQgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IE5PUiA6IFRSRUwyMjIwNzQ4QSAtIEFycsOqdMOpIGR1IDE2IGFvw7t0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgLSBOT1IgOiBUUkVMMjIyMDc0NEFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMTIpICgzMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDgyOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00ODI7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02MDc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjA3OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fbG95ZXJfcmVmZXJlbmNlXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgXCJtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2xveWVyX3LDqWbDqXJlbmNlXCJdIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjA2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTYwNjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA2OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDY7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA2OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA2OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDY7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMzc2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzM4NDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIwIC0gQXJyw6p0w6kgZHUgMyBqYW52aWVyIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjAgTk9SIDogTE9HTDE5MzQwMDZBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNlwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbF9vZl9zdHJpbmcgXCI1LlwiKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yODM5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yODQ3OyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNlwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsX29mX3N0cmluZyBcIjUuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNzY0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE3NzI7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNlwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxfb2Zfc3RyaW5nIFwiNS5cIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0Mjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY1MDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIyIC0gQXJyw6p0w6kgZHUgMjAgZMOpY2VtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjIgTk9SIDogTE9HTDIxMzQ0NzdBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVjaW1hbF9vZl9zdHJpbmcgXCI1LlwiKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ3OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NTsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqdWlsbGV0IDIwMjIgLSBBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBOT1IgOiBUUkVMMjIyMDc0OEEgLSBBcnLDqnTDqSBkdSAxNiBhb8O7dCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIC0gTk9SIDogVFJFTDIyMjA3NDRBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiNS5cIikpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02MDY7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA2OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDY7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIzNDA7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMzQwOyBlbmRfY29sdW1uPTU1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNTY7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTI1NjsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDI7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0MjsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYwNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02MDY7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9wbGFmb25kX2xveWVyX2Q4MjNfMTZfMl86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgIFwibXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9wbGFmb25kX2xveWVyX2Q4MjNfMTZfMlwiXSAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTYwNDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02MDQ7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNDsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA0OyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDQ7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNDsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNDsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA0OyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzMxMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMzMTk7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMCAtIEFycsOqdMOpIGR1IDMgamFudmllciAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIwIE5PUiA6IExPR0wxOTM0MDA2QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxfb2Zfc3RyaW5nIFwiNS5cIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjc3NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mjc4MjsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbF9vZl9zdHJpbmcgXCI1LlwiKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTcwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNzA4OyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsX29mX3N0cmluZyBcIjUuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01Nzc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01ODU7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMiAtIEFycsOqdMOpIGR1IDIwIGTDqWNlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIyIE5PUiA6IExPR0wyMTM0NDc3QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiNS5cIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTgyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGp1aWxsZXQgMjAyMiAtIEFycsOqdMOpIGR1IDI5IGp1aWxsZXQgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IE5PUiA6IFRSRUwyMjIwNzQ4QSAtIEFycsOqdMOpIGR1IDE2IGFvw7t0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgLSBOT1IgOiBUUkVMMjIyMDc0NEFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNlwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVjaW1hbF9vZl9zdHJpbmcgXCI1LlwiKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTYwNDsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA0OyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDQ7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNDsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNDsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA0OyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjQwNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNDA1OyBlbmRfY29sdW1uPTYzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvY2F0aW9uXykpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjA4NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIwODY7IGVuZF9jb2x1bW49NjM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzIzOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTMyMzsgZW5kX2NvbHVtbj02MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb2NhdGlvbl8pKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTk5OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk5OTsgZW5kX2NvbHVtbj02MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTI1OyBlbmRfY29sdW1uPTYzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02MDQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjA0OyBlbmRfY29sdW1uPTYwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODIzXzE2XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgIFwibW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4MjNfMTZcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDIzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0MzE7IGVuZF9jb2x1bW49MTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElYIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpIGNvbG9jYXRpb25fKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTM4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NjdcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyZ2VzX2Q4MjNfMTZfKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxNjsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzIzOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIganVpbGxldCAyMDIyIC0gQXJyw6p0w6kgZHUgMjkganVpbGxldCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgTk9SIDogVFJFTDIyMjA3NDhBIC0gQXJyw6p0w6kgZHUgMTYgYW/Du3QgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciAtIE5PUiA6IFRSRUwyMjIwNzQ0QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBtb250YW50XyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE5MzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc2N1wiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5NjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE5MzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc2N1wiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5NjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X21vbl9tb24gbW9udGFudF8gbGltaXRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiBsaW1pdGVfIGVsc2UgbW9udGFudF8pKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xOTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xOTQxOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4NzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY0MFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MzZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBsaW1pdGVfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X21vbl9tb24gbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdGVfKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODE0OyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT04MjE7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjIgLSBBcnLDqnTDqSBkdSAyMCBkw6ljZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMiBOT1IgOiBMT0dMMjEzNDQ3N0FcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwOTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzAwOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMDE2OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODY0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTMyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODY0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTMyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwOTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzU0NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNTU0OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIwIC0gQXJyw6p0w6kgZHUgMyBqYW52aWVyIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjAgTk9SIDogTE9HTDE5MzQwMDZBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBtb250YW50XyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4NThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzYxNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4NThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzYxNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X21vbl9tb24gbW9udGFudF8gbGltaXRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiBsaW1pdGVfIGVsc2UgbW9udGFudF8pKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01ODg7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01ODg7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvY2F0aW9uXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyODA1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU2MTJcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEyNzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfZDgyM18xNl8pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwOTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTM1MTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEzNTE7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9jYXRpb25fKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNzEwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU0MjJcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEyMjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfZDgyM18xNl8pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwOTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjQzNDsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI0MzQ7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvY2F0aW9uXykpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjY5OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1Mzk5XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjI0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyZ2VzX2Q4MjNfMTZfKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQzNjc7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Mzc0OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElYIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzY3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fY2hhcmdlc19kODIzXzE2XykpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwOTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjQxOyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjQ4OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqdWlsbGV0IDIwMjIgLSBBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBOT1IgOiBUUkVMMjIyMDc0OEEgLSBBcnLDqnTDqSBkdSAxNiBhb8O7dCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIC0gTk9SIDogVFJFTDIyMjA3NDRBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NjdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjk2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc2N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTY5XCIpIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmIChvX2d0X21vbl9tb24gbW9udGFudF8gbGltaXRlXykgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE4NjA7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE4Njc7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjQwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjQwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZiAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzM5OyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzQ2OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjIgLSBBcnLDqnTDqSBkdSAyMCBkw6ljZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMiBOT1IgOiBMT0dMMjEzNDQ3N0FcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBtb250YW50XyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY0MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBsaW1pdGVfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjQwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MzZcIikgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWYgKG9fZ3RfbW9uX21vbiBtb250YW50XyBsaW1pdGVfKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdGVfIGVsc2UgbW9udGFudF8pKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwOTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjkzNTsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI5NDI7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MjVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjkzMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzYyNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTMyXCIpIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmIChvX2d0X21vbl9tb24gbW9udGFudF8gbGltaXRlXykgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM0NzM7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNDgwOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjAgLSBBcnLDqnTDqSBkdSAzIGphbnZpZXIgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMCBOT1IgOiBMT0dMMTkzNDAwNkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjkyOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzYxNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTI5XCIpIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmIChvX2d0X21vbl9tb24gbW9udGFudF8gbGltaXRlXykgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDk7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMzk7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIzOTsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogQ2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTYxMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfZDgyM18xNl8pKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTE0OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTE0OyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1NDIyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEyMjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fY2hhcmdlc19kODIzXzE2XykpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIyMDA7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIyMDA7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA5XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1Mzk5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEyMjRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fY2hhcmdlc19kODIzXzE2XykpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYwOTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgYWJhdHRlbWVudF9mb3JmYWl0YWlyZV9kODIzXzE3XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgIFwiYWJhdHRlbWVudF9mb3JmYWl0YWlyZV9kODIzXzE3XCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTYwMjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwMjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwMjsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwMjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjAyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDMzNzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MzQ1OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVggOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIG91dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjgxODEwMFwiKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjAyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NTg0OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ1ODY7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0N1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJWCA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUyNzIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI3NTUyMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTAwODAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTIxMTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTU2MzAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTkxOTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjEwMjcxMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjEwNjI2MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTA2MjYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1MDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjAyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMTM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjIxOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGp1aWxsZXQgMjAyMiAtIEFycsOqdMOpIGR1IDI5IGp1aWxsZXQgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IE5PUiA6IFRSRUwyMjIwNzQ4QSAtIEFycsOqdMOpIGR1IDE2IGFvw7t0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgLSBOT1IgOiBUUkVMMjIyMDc0NEFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODA1MTAwXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwMjsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ2MTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NjM7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0N1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIganVpbGxldCAyMDIyIC0gQXJyw6p0w6kgZHUgMjkganVpbGxldCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgTk9SIDogVFJFTDIyMjA3NDhBIC0gQXJyw6p0w6kgZHUgMTYgYW/Du3QgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciAtIE5PUiA6IFRSRUwyMjIwNzQ0QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDg3MDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjY5NzcwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4MzIyMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4NTA5MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4ODM0MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI5MTYzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTQ4ODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTgxNjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjk4MTYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1MDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjAyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03MTA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzE4OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMiAtIEFycsOqdMOpIGR1IDIwIGTDqWNlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIyIE5PUiA6IExPR0wyMTM0NDc3QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI3NzQyMDBcIikpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwMjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjAyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE5NTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMjA0OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMDEgamFudmllciAyMDIxIC0gQXJyw6p0w6kgZHUgMzEgZMOpY2VtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjEgTk9SIDogTE9HTDIwMjgzNTFBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDI3NDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjYxMjIwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI2OTkwMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI3NDMyMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI3ODU0MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4MjgzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODcxMTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTEzOTAwXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwMjsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjAyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM0NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzQ1MjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMCAtIEFycsOqdMOpIGR1IDMgamFudmllciAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIwIE5PUiA6IExPR0wxOTM0MDA2QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzU4NDAwXCIpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yOTA1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjkxMzsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI3NTg0MDBcIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE4MzI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTg0MDsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjc1ODQwMFwiKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjAyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNzA2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM3MTU7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0N1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIwIC0gQXJyw6p0w6kgZHUgMyBqYW52aWVyIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjAgTk9SIDogTE9HTDE5MzQwMDZBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzk2MDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU2NzMwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI2Mzk2MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI2ODQ5MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI3Mzg2MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI3OTM1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODQ4NDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTAzMjAwXCIpKSkpKSkpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjAyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjAyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00ODY7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ4NjsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDk0OTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjcwOTAwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4NDU2MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4NjQ2MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4OTc3MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI5MzExMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI5NjQyMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTk3NTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5OTc1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMjgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9yMF8pKSkpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwMjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjAyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGp1aWxsZXQgMjAyMiAtIEFycsOqdMOpIGR1IDI5IGp1aWxsZXQgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IE5PUiA6IFRSRUwyMjIwNzQ4QSAtIEFycsOqdMOpIGR1IDE2IGFvw7t0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgLSBOT1IgOiBUUkVMMjIyMDc0NEFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMTIpICgzMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0ODcwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNjk3NzAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjgzMjIwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjg1MDkwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjg4MzQwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjkxNjMwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjk0ODgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI5ODE2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjk4MTYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMyMzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3IwXykpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjAyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01MzU7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTUzNTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjIgLSBBcnLDqnTDqSBkdSAyMCBkw6ljZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMiBOT1IgOiBMT0dMMjEzNDQ3N0FcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NjgzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNjcwOTAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjgwMDIwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjgxOTIwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjg0OTUwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjg4MTEwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjkxMjQwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI5NDM5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjk0MzkwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxMTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3IwXykpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjAyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjU3OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMjU3OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMCAtIEFycsOqdMOpIGR1IDMgamFudmllciAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIwIE5PUiA6IExPR0wxOTM0MDA2QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQ1ODgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI2NTcyMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzgzOTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODAxNTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODMyMjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODYzMTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODkzODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjkyNDYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTI0NjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzA1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNlwiKSkpKSkpKSkpKSkpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYwMjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbG95ZXJfcmVmZXJlbmNlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjsgXCJsb3llcl9yw6lmw6lyZW5jZVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTU5Njsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01OTY7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU5Njsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU5NjsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ1OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQ1OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjY4ODdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMjkxMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzAzMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTM5MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fbG95ZXJfcmVmZXJlbmNlXykpKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU5Njsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU5NjsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI1OTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyNTk7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8gKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNTk3OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMxNzk3XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1NzgwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MjA4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9sb3llcl9yZWZlcmVuY2VfKSkpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTk2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTk2OyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMzQzOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjM0MzsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8gKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNTg2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMxNjY0XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1NjMwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MTg2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9sb3llcl9yZWZlcmVuY2VfKSkpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU5Njsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01OTY7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiOyBcInBsYWZvbmRfbG95ZXJfZDgyM18xNl8yXCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01NDY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTQ3OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogQ2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvY2F0aW9uXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIzMTM4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjAxNjVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODkwMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTU1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU1NjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb2NhdGlvbl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNzkwNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI0NjgzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjI5MTFcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU2NDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NjQ7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9jYXRpb25fKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxNTM5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDU3NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3BsYWZvbmRfbG95ZXJfZDgyM18xNl8yXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjc3NzRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MDQzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNTY4OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2ODJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9wbGFmb25kX2xveWVyX2Q4MjNfMTZfMl8pKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTMwNTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzA2OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9jYXRpb25fKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIyMzU1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTk0ODRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODI2MVwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTMxNDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzE1OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9jYXRpb25fKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI2OTYyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjM4NDhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjEzNlwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTMyNzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzI3OyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9jYXRpb25fKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMDQ3M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ0MjFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9wbGFmb25kX2xveWVyX2Q4MjNfMTZfMl8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI2ODM1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzkwNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3BsYWZvbmRfbG95ZXJfZDgyM18xNl8yXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQ4MjFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTU3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIzODc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjM4ODsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb2NhdGlvbl8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjIyNjJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTQwMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE4MTg1XCIpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMzk2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIzOTc7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9jYXRpb25fKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI2ODQ5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjM3NDhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjA0NFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjQwOTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNDA5OyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvY2F0aW9uXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzAzNDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NDAzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjcyM1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM4OTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9wbGFmb25kX2xveWVyX2Q4MjNfMTZfMl8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0NzE3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU0MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3BsYWZvbmRfbG95ZXJfZDgyM18xNl8yXykpKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xOTg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xOTg7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDhcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2VtZW50X2VzdF9jaGFtYnJlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIzMTM4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIwMTY1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE4OTAwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNzM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDczOyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2VtZW50X2VzdF9jaGFtYnJlXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVyc18pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjM1NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTQ4NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODI2MVwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMTU5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjE1OTsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgOFwiOyBcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nZW1lbnRfZXN0X2NoYW1icmVfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIyMjYyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE5NDAyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE4MTg1XCIpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE5MTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xOTE7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDhcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dlbWVudF9lc3RfY2hhbWJyZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNzc2NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNDE5OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjY4MFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDY2OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNjY7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDhcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2VtZW50X2VzdF9jaGFtYnJlXykpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNjgyNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMzM4MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMTkxM1wiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMTUyOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIxNTI7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDhcIjsgXCJBcnRpY2xlIDdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dlbWVudF9lc3RfY2hhbWJyZV8pKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjY3MTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjMyODJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjE4MjFcIikpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDc7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMDg1MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI2ODg3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjUyMDBcIikpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExNjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTc7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzIwN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMyOTEwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzA1NDhcIikpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzMDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDIwNTJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2MTAxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzAzMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUzOTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9wbGFmb25kX2xveWVyX2Q4MjNfMTZfMl8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM0MjUyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDkwOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3BsYWZvbmRfbG95ZXJfZDgyM18xNl8yXykpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05ODA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTgxOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk4MDdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNTk3OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0MzQ4XCIpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05OTA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTkxOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU5NDlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMTc5N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5NTE1XCIpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDA0OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMDQ7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDA2MzBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1ODk1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTc4MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUyMDhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9wbGFmb25kX2xveWVyX2Q4MjNfMTZfMl8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMzMDk0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDc0M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3BsYWZvbmRfbG95ZXJfZDgyM18xNl8yXykpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMDY3OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIwNjg7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk2ODJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNTg1OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0MjQ2XCIpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMDc3OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIwNzg7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU3OTlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMTY2NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5MzkyXCIpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMDkxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIwOTE7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQwNDYwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTg3MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3BsYWZvbmRfbG95ZXJfZDgyM18xNl8yXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzU2MzBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1MTg2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMjk1NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ3MjNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9wbGFmb25kX2xveWVyX2Q4MjNfMTZfMl8pKSkpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBwbGFmb25kX3N1cHByZXNzaW9uX2Q4MjNfMTZfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgXCJwbGFmb25kX3N1cHByZXNzaW9uX2Q4MjNfMTZcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTk5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTU5OTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTI2OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yNjk7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDEwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogQ2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSkpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IHBsYWZvbmRfbG95ZXJfZDgyM18xNl8yX1xuICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjQuXCIpKVxuICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBwbGFmb25kX2xveWVyX2Q4MjNfMTZfMl9cbiAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIzLjFcIikpXG4gICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IHBsYWZvbmRfbG95ZXJfZDgyM18xNl8yX1xuICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjMuMVwiKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU5OTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01OTk7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgcGxhZm9uZF9kZWdyZXNzaXZpdGVfZDgyM18xNl86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICBcInBsYWZvbmRfZMOpZ3Jlc3Npdml0w6lfZDgyM18xNlwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01OTg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTk4OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjYzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI2MzsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfXG4gICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMy40XCIpKVxuICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBwbGFmb25kX2xveWVyX2Q4MjNfMTZfMl9cbiAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIyLjVcIikpXG4gICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IHBsYWZvbmRfbG95ZXJfZDgyM18xNl8yX1xuICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjIuNVwiKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU5ODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01OTg7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbG95ZXJfZWxpZ2libGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiOyBcImxveWVyX8OpbGlnaWJsZVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTU5MTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01OTE7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE3ODg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTc4ODsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy0xNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiAyIDogQ2FsY3VsIGRlIGwnYWlkZSBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgIChvX2d0X21vbl9tb24gbG95ZXJfcHJpbmNpcGFsX2F2ZWNfcmVkdWN0aW9uX21ldWJsZV9cbiAgICAgICAgICAgICAgICAgcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfKSB0aGVuIHBsYWZvbmRfbG95ZXJfZDgyM18xNl8yXyBlbHNlXG4gICAgICAgICAgICAgIGxveWVyX3ByaW5jaXBhbF9hdmVjX3JlZHVjdGlvbl9tZXVibGVfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01OTE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTkxOyBlbmRfY29sdW1uPTI1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfZGltaW51ZV86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfZGltaW51w6lcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWlkZV9maW5hbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MjI7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NjIyOyBlbmRfY29sdW1uPTE3O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjIyOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MjI7IGVuZF9jb2x1bW49MTc7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE4Mzc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTgzNzsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDIgOiBDYWxjdWwgZGUgbCdhaWRlIGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzXykpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gYWlkZV9maW5hbGVfKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODIzOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTgyMzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IENhbGN1bCBkZSBsJ2FpZGUgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgIChvX2d0X21vbl9tb24gbG95ZXJfcHJpbmNpcGFsX2F2ZWNfcmVkdWN0aW9uX21ldWJsZV9cbiAgICAgICAgICAgICAgICAgICAgICBwbGFmb25kX3N1cHByZXNzaW9uX2Q4MjNfMTZfKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIGxveWVyX3ByaW5jaXBhbF9hdmVjX3JlZHVjdGlvbl9tZXVibGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9kZWdyZXNzaXZpdGVfZDgyM18xNl8pIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiBhaWRlX2ZpbmFsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYWlkZV9maW5hbGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZGl2X21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxveWVyX3ByaW5jaXBhbF9hdmVjX3JlZHVjdGlvbl9tZXVibGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9kZWdyZXNzaXZpdGVfZDgyM18xNl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gcGxhZm9uZF9zdXBwcmVzc2lvbl9kODIzXzE2X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfZGVncmVzc2l2aXRlX2Q4MjNfMTZfKSkpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgYWlkZV9maW5hbGVfKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT02MjI7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NjIyOyBlbmRfY29sdW1uPTE3O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjIyOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTYyMjsgZW5kX2NvbHVtbj0xNztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBwYXJ0aWNpcGF0aW9uX21pbmltYWxlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjsgXCJwYXJ0aWNpcGF0aW9uX21pbmltYWxlXCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjExOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTYxMTsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjExOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTQ7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTQ7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBsb3llcl9lbGlnaWJsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfZDgyM18xNl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wODVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2NjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBsb3llcl9lbGlnaWJsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfZDgyM18xNl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wODVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzY2M1wiKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTE7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExMjg7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTI4OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDEzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gbG95ZXJfZWxpZ2libGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4MjNfMTZfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDg1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTM5XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gbG95ZXJfZWxpZ2libGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4MjNfMTZfKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDg1XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1MzlcIikpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjExOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMjE0OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjIxNDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBsb3llcl9lbGlnaWJsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfZDgyM18xNl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wODVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1MjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBsb3llcl9lbGlnaWJsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfZDgyM18xNl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wODVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzUyNFwiKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjExOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTYxMTsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCByYXBwb3J0X2xveWVyc186IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjsgXCJyYXBwb3J0X2xveWVyc1wiXVxuICAgIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTk1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTU5NTsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTk1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTk1OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTk1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01OTU7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTk1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU5NTsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMjg5OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIyODk7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2Rpdl9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3JvdW5kX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZGl2X21vbl9tb24gbG95ZXJfZWxpZ2libGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxveWVyX3JlZmVyZW5jZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMC5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMDAuXCIpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIwMjsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTIwMjsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fZGl2X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3JvdW5kX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19kaXZfbW9uX21vbiBsb3llcl9lbGlnaWJsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxveWVyX3JlZmVyZW5jZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMDAuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMC5cIikpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTA7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTA7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgb19kaXZfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgIChvX3JvdW5kX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2Rpdl9tb25fbW9uIGxveWVyX2VsaWdpYmxlXyBsb3llcl9yZWZlcmVuY2VfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMC5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMC5cIikpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU5NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01OTU7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjIzOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTYyMzsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODQ3OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTg0NzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IENhbGN1bCBkZSBsJ2FpZGUgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfZGltaW51w6lcIl1cbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfZGltaW51w6lcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kaW1pbnXDqVwiXVxuICAgICAgICAgICAgICAgICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlX2RpbWludWVfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kaW1pbnXDqVwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAob19ndGVfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiBhaWRlX2ZpbmFsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9kODIzXzE2XylcbiAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfIG1vbnRhbnRfZm9yZmFpdGFpcmVfZDgyM18xNl8pXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT02MjM7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NjIzOyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjIzOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTYyMzsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0YXV4X2xveWVyX2VsaWdpYmxlX2Zvcm11bGVfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICBcInRhdXhfbG95ZXJfw6lsaWdpYmxlX2Zvcm11bGVcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01OTM7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NTkzOyBlbmRfY29sdW1uPTE3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01OTM7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01OTM7IGVuZF9jb2x1bW49MTc7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01OTM7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU5MzsgZW5kX2NvbHVtbj0xNztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01OTM7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTkzOyBlbmRfY29sdW1uPTE3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIzMTM7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjMxMzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9yYXRfcmF0IHJhcHBvcnRfbG95ZXJzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjQ1XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX3JhdF9yYXQgcmFwcG9ydF9sb3llcnNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNDVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X3JhdF9yYXQgcmFwcG9ydF9sb3llcnNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNzVcIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAwNDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX3JhdF9yYXQgcmFwcG9ydF9sb3llcnNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDA0NVwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfcmF0X3JhdCByYXBwb3J0X2xveWVyc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC43NVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMDQ1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuM1wiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDA2OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYXBwb3J0X2xveWVyc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC43NVwiKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjI5OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjI5OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9yYXRfcmF0IHJhcHBvcnRfbG95ZXJzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC40NVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC5cIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfcmF0X3JhdCByYXBwb3J0X2xveWVyc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNDVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9yYXRfcmF0IHJhcHBvcnRfbG95ZXJzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC43NVwiKSkpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAwNDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9yYXRfcmF0IHJhcHBvcnRfbG95ZXJzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMDQ1XCIpKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX3JhdF9yYXQgcmFwcG9ydF9sb3llcnNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjc1XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAwNDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuM1wiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMDY4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfcmF0X3JhdCByYXBwb3J0X2xveWVyc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNzVcIikpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC5cIikpKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQxNjsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQxNjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogQ2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAob19sdF9yYXRfcmF0IHJhcHBvcnRfbG95ZXJzX1xuICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNDVcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9yYXRfcmF0IHJhcHBvcnRfbG95ZXJzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNDVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfcmF0X3JhdCByYXBwb3J0X2xveWVyc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjc1XCIpKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAwNDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfcmF0X3JhdCByYXBwb3J0X2xveWVyc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAwNDVcIikpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9yYXRfcmF0IHJhcHBvcnRfbG95ZXJzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNzVcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAwNDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjNcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0IChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDA2OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9yYXRfcmF0IHJhcHBvcnRfbG95ZXJzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNzVcIikpKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpKSkpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU5Mzsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT01OTM7IGVuZF9jb2x1bW49MTc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaVwiXSAodW5lbWJlZGRhYmxlKVxuICAgIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjI0OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTYyNDsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODY0OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTg2NDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IENhbGN1bCBkZSBsJ2FpZGUgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiXVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCJdXG4gICAgICAgICAgICAgICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZV8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKGxldCBjcmRzXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJtb250YW50XCJdICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJtb250YW50XCI7IFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRcIl0gY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfbW9udGFudF8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJtb250YW50XCI7IFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlX21vaW5zX2NyZHNfYXJyb25kaWVfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAob19yb3VuZF9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfIGNyZHNfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTBcIikpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIGFpZGVfZmluYWxlX21vaW5zX2NyZHNfYXJyb25kaWVfIGNyZHNfKVxuICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBhaWRlX2ZpbmFsZV9tb2luc19jcmRzX2Fycm9uZGllXyBjcmRzXylcbiAgICAgICAgICAgICAgICAgICAgZWxzZSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjI0OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTYyNDsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYyNDsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT02MjQ7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdGF1eF9sb3llcl9lbGlnaWJsZV90YXV4X2Fycm9uZGlfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICBcInRhdXhfbG95ZXJfw6lsaWdpYmxlX3RhdXhfYXJyb25kaVwiXSAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTU5NDsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT01OTQ7IGVuZF9jb2x1bW49MjI7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU5NDsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU5NDsgZW5kX2NvbHVtbj0yMjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU5NDsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTk0OyBlbmRfY29sdW1uPTIyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU5NDsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01OTQ7IGVuZF9jb2x1bW49MjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjMyMDsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMzIwOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19kaXZfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19yb3VuZF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhdXhfbG95ZXJfZWxpZ2libGVfZm9ybXVsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTAwMDAwLlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMDAwMC5cIikpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjM2OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjM2OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb19kaXZfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fcm91bmRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXQgdGF1eF9sb3llcl9lbGlnaWJsZV9mb3JtdWxlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTAwMDAwLlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMDAwMDAuXCIpKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDIzOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDIzOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG9fZGl2X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAob19yb3VuZF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXQgdGF1eF9sb3llcl9lbGlnaWJsZV9mb3JtdWxlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMDAwMC5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMDAwMC5cIikpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU5NDsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT01OTQ7IGVuZF9jb2x1bW49MjI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9yZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfcsOpZHVjdGlvbl9sb3llcl9zb2xpZGFyaXTDqVwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYyNTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT02MjU7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODQ0OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODQ0OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MzItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlcIl1cbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlcIl1cbiAgICAgICAgICAgICAgICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAob19ndGVfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiBhaWRlX2ZpbmFsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IHJlZHVjdGlvbl9sb3llcl9zb2xpZGFyaXRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFjdGlvbl9sODMyXzNfKSkgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCByZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhY3Rpb25fbDgzMl8zXykpIGVsc2UgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT02MjU7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NjI1OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjI1OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTYyNTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0YXV4X3ByaXNlX2NvbXB0ZV9yZXNzb3VyY2VzXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgXCJ0YXV4X3ByaXNlX2NvbXB0ZV9yZXNzb3VyY2VzXCJdIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjAzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTYwMzsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTk0Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xOTQ3OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTE3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDIgOiBDYWxjdWwgZGUgbCdhaWRlIGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX2FkZF9yYXRfcmF0IHRhdXhfY29tcG9zaXRpb25fZmFtaWxpYWxlX1xuICAgICAgICAgICAgICB0YXV4X2xveWVyX2VsaWdpYmxlX3RhdXhfYXJyb25kaV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYwMzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02MDM7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50X21pbmltYWxfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21vbnRhbnRfbWluaW1hbFwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYyNjsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT02MjY7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTg5Njsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE4OTY7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy0xNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDIgOiBDYWxjdWwgZGUgbCdhaWRlIGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX3LDqWR1Y3Rpb25fbG95ZXJfc29saWRhcml0w6lcIl1cbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfcsOpZHVjdGlvbl9sb3llcl9zb2xpZGFyaXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfcsOpZHVjdGlvbl9sb3llcl9zb2xpZGFyaXTDqVwiXVxuICAgICAgICAgICAgICAgICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlX3JlZHVjdGlvbl9sb3llcl9zb2xpZGFyaXRlXylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfcsOpZHVjdGlvbl9sb3llcl9zb2xpZGFyaXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgIChvX2x0X21vbl9tb24gYWlkZV9maW5hbGVfIG1vbnRhbnRfbWluaW1hbF9haWRlX2Q4MjNfMTZfKVxuICAgICAgICAgICAgICAgICAgICB0aGVuIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpIGVsc2UgYWlkZV9maW5hbGVfKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjI2OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTYyNjsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYyNjsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT02MjY7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgcGFydGljaXBhdGlvbl9wZXJzb25uZWxsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7IFwicGFydGljaXBhdGlvbl9wZXJzb25uZWxsZVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTYxMzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02MTM7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE5MTM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTkxMzsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy0xN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiAyIDogQ2FsY3VsIGRlIGwnYWlkZSBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgKGxldCBwYXJ0aWNpcGF0aW9uX3Jlc3NvdXJjZXNfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfXG4gICAgICAgICAgICAgICAgICAgICBhYmF0dGVtZW50X2ZvcmZhaXRhaXJlX2Q4MjNfMTdfKVxuICAgICAgICAgICAgICAgICAgdGF1eF9wcmlzZV9jb21wdGVfcmVzc291cmNlc18pXG4gICAgICAgICAgICBpblxuICAgICAgICAgICAgKGxldCBwYXJ0aWNpcGF0aW9uX3Jlc3NvdXJjZXNfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgKG9fbHRfbW9uX21vbiBwYXJ0aWNpcGF0aW9uX3Jlc3NvdXJjZXNfXG4gICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikgZWxzZSBwYXJ0aWNpcGF0aW9uX3Jlc3NvdXJjZXNfKVxuICAgICAgICAgICAgaW5cbiAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIHBhcnRpY2lwYXRpb25fbWluaW1hbGVfIHBhcnRpY2lwYXRpb25fcmVzc291cmNlc18pKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYxMzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02MTM7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgYWlkZV9maW5hbGVfZm9ybXVsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7IFwiYWlkZV9maW5hbGVfZm9ybXVsZVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTYxODsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02MTg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE3NzA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTc3MDsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy0xNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiAyIDogQ2FsY3VsIGRlIGwnYWlkZSBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAob19zdWJfbW9uX21vblxuICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gbG95ZXJfZWxpZ2libGVfXG4gICAgICAgICAgICAgICAgICAgICBtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfZDgyM18xNl8pXG4gICAgICAgICAgICAgICAgICBwYXJ0aWNpcGF0aW9uX3BlcnNvbm5lbGxlXylcbiAgICAgICAgICAgIGluXG4gICAgICAgICAgICAoIGlmIChvX2x0X21vbl9tb24gYWlkZV9maW5hbGVfIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSBlbHNlIGFpZGVfZmluYWxlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02MTg7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjE4OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IF86IHVuaXQgPSBpZiAoXG4gICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb24gcGxhZm9uZF9kZWdyZXNzaXZpdGVfZDgyM18xNl9cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IHBsYWZvbmRfbG95ZXJfZDgyM18xNl8yX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIyLjVcIikpKVxuICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODQwOyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTg0MDsgZW5kX2NvbHVtbj03NDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IENhbGN1bCBkZSBsJ2FpZGUgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSlcbiAgICAgICAgICAgICAgICAgIHRoZW4gKCkgZWxzZVxuICAgICAgICAgICAgICAgICAgcmFpc2UgKEFzc2VydGlvbkZhaWxlZCB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODQwOyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTg0MDsgZW5kX2NvbHVtbj03NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IENhbGN1bCBkZSBsJ2FpZGUgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pIGluXG4gIGxldCBfOiB1bml0ID0gaWYgKFxuICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfcmF0X3JhdCBmcmFjdGlvbl9sODMyXzNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuOVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX3JhdF9yYXQgZnJhY3Rpb25fbDgzMl8zX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjk4XCIpKSlcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODU0OyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODU0OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MzItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKVxuICAgICAgICAgICAgICAgICAgdGhlbiAoKSBlbHNlXG4gICAgICAgICAgICAgICAgICByYWlzZSAoQXNzZXJ0aW9uRmFpbGVkIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTg1NDsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTg1NDsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODMyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pIGluXG4gIGxldCBfOiB1bml0ID0gaWYgKFxuICAgICAgICAgICAgICAgICAgdHJ5IChvX25vdCAob19hbmQgbG9nZW1lbnRfZXN0X2NoYW1icmVfIGNvbG9jYXRpb25fKSkgd2l0aFxuICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjQwOyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjQwOyBlbmRfY29sdW1uPTUzO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpIHRoZW5cbiAgICAgICAgICAgICAgICAgICgpIGVsc2VcbiAgICAgICAgICAgICAgICAgIHJhaXNlIChBc3NlcnRpb25GYWlsZWQge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0MDsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY0MDsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkgaW5cbiAgbGV0IF86IHVuaXQgPSBpZiAoXG4gICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYzMzsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYzMzsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAoKSBlbHNlXG4gICAgICAgICAgICAgICAgICByYWlzZSAoQXNzZXJ0aW9uRmFpbGVkIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MzM7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MzM7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pIGluXG4gIGxldCBfOiB1bml0ID0gaWYgKFxuICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYzMjsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYzMjsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAoKSBlbHNlXG4gICAgICAgICAgICAgICAgICByYWlzZSAoQXNzZXJ0aW9uRmFpbGVkIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MzI7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MzI7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pIGluXG4gIHtDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5tb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfZDgyM18xNiA9XG4gICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODIzXzE2XztcbiAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGxhZm9uZF9sb3llcl9kODIzXzE2XzIgPVxuICAgICAgIHBsYWZvbmRfbG95ZXJfZDgyM18xNl8yXztcbiAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGFydGljaXBhdGlvbl9taW5pbWFsZSA9XG4gICAgICAgcGFydGljaXBhdGlvbl9taW5pbWFsZV87XG4gICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnRhdXhfY29tcG9zaXRpb25fZmFtaWxpYWxlID1cbiAgICAgICB0YXV4X2NvbXBvc2l0aW9uX2ZhbWlsaWFsZV87XG4gICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnBhcnRpY2lwYXRpb25fcGVyc29ubmVsbGUgPVxuICAgICAgIHBhcnRpY2lwYXRpb25fcGVyc29ubmVsbGVfO1xuICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICBhaWRlX2ZpbmFsZV9mb3JtdWxlXztcbiAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50X21pbmltYWxffVxuXG5sZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llciAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbjogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4udCkgOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIudCA9XG4gIGxldCB0eXBlX2xvZ2VtZW50X2ZveWVyXzogVHlwZUxvZ2VtZW50Rm95ZXIudCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4udHlwZV9sb2dlbWVudF9mb3llcl9pbiBpblxuICBsZXQgZGF0ZV9jb252ZW50aW9ubmVtZW50XzogZGF0ZSA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4uZGF0ZV9jb252ZW50aW9ubmVtZW50X2luIGluXG4gIGxldCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfOiBtb25leSA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luIGluXG4gIGxldCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlciA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiBpblxuICBsZXQgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXzogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiBpblxuICBsZXQgem9uZV86IFpvbmVESGFiaXRhdGlvbi50ID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi56b25lX2luIGluXG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4uZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgcmVkZXZhbmNlXzogbW9uZXkgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnJlZGV2YW5jZV9pbiBpblxuICBsZXQgcmVzaWRlbmNlXzogQ29sbGVjdGl2aXRlLnQgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnJlc2lkZW5jZV9pbiBpblxuICBsZXQgY29uZGl0aW9uXzJfZHVfODMyXzI1XzogdW5pdCAtPiBib29sID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5jb25kaXRpb25fMl9kdV84MzJfMjVfaW4gaW5cbiAgbGV0IGxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfOiB1bml0IC0+IGJvb2wgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLmxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gaW5cbiAgbGV0IG5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfOiB1bml0IC0+IGRlY2ltYWwgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfaW4gaW5cbiAgbGV0IGxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgXCJsaW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX8OgX2NoYXJnZVwiXSAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTY4NDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02ODQ7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT4gbGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV8gKCkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT02ODQ7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9Njg0OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Njg0OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Njg0OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02ODQ7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9Njg0OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25fMl9kdV84MzJfMjVfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiOyBcImNvbmRpdGlvbl8yX2R1XzgzMl8yNVwiXVxuICAgIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjgzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY4MzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPiBjb25kaXRpb25fMl9kdV84MzJfMjVfICgpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjgzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY4MzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzg0Nzsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM4NDc7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICBtYXRjaCB0eXBlX2xvZ2VtZW50X2ZveWVyX1xuICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgIHwgVHlwZUxvZ2VtZW50Rm95ZXIuTG9nZW1lbnRQZXJzb25uZXNBZ2Vlc091SGFuZGljYXBlZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgfCBUeXBlTG9nZW1lbnRGb3llci5SZXNpZGVuY2VTb2NpYWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY29udmVudGlvbm5lbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTQpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgIHwgVHlwZUxvZ2VtZW50Rm95ZXIuRm95ZXJKZXVuZXNUcnZhaWxsZXVyc091TWlncmFudHNDb252ZW50aW9ubmVMMzUzXzJBdmFudDE5OTUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb252ZW50aW9ubmVtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5MCkgKDkpICgzMCkpKVxuICAgICAgICAgICAgICAgICB8IFR5cGVMb2dlbWVudEZveWVyLkF1dHJlIF8gLT4gZmFsc2UpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02ODM7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjgzOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgIFwiY29udHJpYnV0aW9uc19zb2NpYWxlcy5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTcyMDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT03MjA7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzIwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTcyMDsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzIwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTcyMDsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IHJlc3VsdF86IENvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjsgXCJjb250cmlidXRpb25zX3NvY2lhbGVzXCI7XG4gICAgICBcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiOyBcImNvbnRyaWJ1dGlvbnNfc29jaWFsZXNcIjtcbiAgICAgIFwiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCJdXG4gICAgY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudClcbiAgICAoe0NvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9kYXRlX2NvdXJhbnRlX30pKSkgaW5cbiAgbGV0IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfZG90X21vbnRhbnRfOiBtb25leSAtPiBtb25leSA9IHJlc3VsdF8uQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50Lm1vbnRhbnQgaW5cbiAgbGV0IG1vbnRhbnRfbWluaW1hbF9haWRlX2Q4MjNfMjRfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjsgXCJtb250YW50X21pbmltYWxfYWlkZV9kODIzXzI0XCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Njk3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTY5NzsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNTgxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI1ODE7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDI5XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEwMDBcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Njk3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTY5NzsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9mb3JmYWl0YWlyZV9kODMyXzI0XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7IFwibW9udGFudF9mb3JmYWl0YWlyZV9kODMyXzI0XCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Njk1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTY5NTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNTY5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI1Njk7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDI4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUwMFwiKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02OTU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Njk1OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBwbGFmb25kX2VxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICBcInBsYWZvbmRfw6lxdWl2YWxlbmNlX2xveWVyX8OpbGlnaWJsZVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02OTA7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjkwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjkwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjkwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjUxNDsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI1MTQ7IGVuZF9jb2x1bW49NDg7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMjdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIFYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDYxOTJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTQxNTJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTc3NDFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI2MTc5NFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjY1ODYyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNzEwMzlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjczNjhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDIyNDJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDkyOTlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTI1NjVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1NjI2OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU5OTU3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjM4ODdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjY2NTlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDAwOTZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDY2MzRcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDk0NzVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1Mjc0MFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU2MDA0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTk2NzVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjYxODBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSkpKSkpKSkpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjkwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjkwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ1Mzsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0NTM7IGVuZF9jb2x1bW49NDg7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMjdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NDYzMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MjMyMVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1NTc4OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU5NzA0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNjM2MzVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2ODYzN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNzExOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MDgxNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NzYzMlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MDc4N1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU0MzY1XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTc5MjlcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2MTcyN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjQzNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzODc0MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NTA1N1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NzgwMlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUwOTU3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTQxMTBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1NzY1N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTk3MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpKSkpKSkpKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02OTA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02OTA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNTM3OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjUzNzsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NDQ0M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MjEwMVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1NTU1NVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU5NDU0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNjMzNjlcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2ODM1MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNzA4OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MDY0M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NzQzM1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MDU3NVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU0MTM4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTc2ODdcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2MTQ2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjQwN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzODU3OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NDg2OVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NzYwMlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUwNzQ0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTM4ODRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1NzQxNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTk0NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpKSkpKSkpKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjkwOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY5MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY29lZmZpY2llbnRfcl9kODMyXzI1XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7IFwiY29lZmZpY2llbnRfcl9kODMyXzI1XCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Njg3OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY4NzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNTk2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI1OTY7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEyMTcyNlwiKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02ODc7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9Njg3OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9jb25kaXRpb25fMl9kdV84MzJfMjVfOiBib29sID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfbm9tYnJlX3BhcnRzLmNvbmRpdGlvbl8yX2R1XzgzMl8yNVwiXSAoZW1iZWRfYm9vbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTM5NDE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Mzk0MTsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk0MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zOTQxOyBlbmRfY29sdW1uPTU1O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gY29uZGl0aW9uXzJfZHVfODMyXzI1XykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTM5NDE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Mzk0MTsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlciA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgIFwiY2FsY3VsX25vbWJyZV9wYXJ0cy5ub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZVwiXSAoZW1iZWRfaW50ZWdlcilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTM5Mzc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzkzNzsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzkzNzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zOTM3OyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zOTM3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM5Mzc7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXzogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF9ub21icmVfcGFydHMuc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXCJdXG4gICAgICAoZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2wpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zOTM5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM5Mzk7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgIChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM5Mzk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzkzOTsgZW5kX2NvbHVtbj02NDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zOTM5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM5Mzk7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3RfcmVzaWRlbmNlXzogQ29sbGVjdGl2aXRlLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF9ub21icmVfcGFydHMucsOpc2lkZW5jZVwiXSAoZW1iZWRfY29sbGVjdGl2aXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk0Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zOTQzOyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTQzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM5NDM7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiByZXNpZGVuY2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Mzk0Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zOTQzOyBlbmRfY29sdW1uPTQzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydHNfZG90X2xpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfOiBcbiAgICB1bml0IC0+IGJvb2wgPSBmdW4gKF86IHVuaXQpIC0+IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9ub21icmVfcGFydHMubGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc1/DoF9jaGFyZ2VcIl1cbiAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9ib29sKVxuICAgICAgICAgICAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTU0Njsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU1NDY7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjEtOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbiBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01NTQ4OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTU0ODsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2MS04XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9uIHBhcnRpY3VsacOocmVzIMOgIGwnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKSkgaW5cbiAgbGV0IHJlc3VsdF86IENhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiOyBcImNhbGN1bF9ub21icmVfcGFydHNcIjtcbiAgICAgIFwiQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjsgXCJjYWxjdWxfbm9tYnJlX3BhcnRzXCI7XG4gICAgICBcIkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyXCJdIGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcilcbiAgICAoe0NhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4uY29uZGl0aW9uXzJfZHVfODMyXzI1X2luID1cbiAgICAgICAgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3RfY29uZGl0aW9uXzJfZHVfODMyXzI1XztcbiAgICAgICAgQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgICBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXztcbiAgICAgICAgQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICAgIGNhbGN1bF9ub21icmVfcGFydHNfZG90X3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF87XG4gICAgICAgIENhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4ucmVzaWRlbmNlX2luID1cbiAgICAgICAgICBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9yZXNpZGVuY2VfO1xuICAgICAgICBDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llckluLmxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICAgIGNhbGN1bF9ub21icmVfcGFydHNfZG90X2xpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VffSkpKSBpblxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfbl9ub21icmVfcGFydHNfZDgzMl8yNV86IGRlY2ltYWwgPSByZXN1bHRfLkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjUgaW5cbiAgbGV0IG1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8yN186IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiOyBcIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8yN1wiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTY5Njsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02OTY7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjc1NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yNzU0OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIFYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmIGNvbmRpdGlvbl8yX2R1XzgzMl8yNV8gdGhlbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTUwMFwiKVxuICAgICAgICAgICAgICBlbHNlIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNjY4XCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02OTY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Njk2OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzI1XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICBcImNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMjVcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Njg2OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY4NjsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNjA3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI2MDc7IGVuZF9jb2x1bW49NDg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWYgY29uZGl0aW9uXzJfZHVfODMyXzI1XyB0aGVuIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMTQyMDkxXCIpXG4gICAgICAgICAgICAgIGVsc2UgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEzMzkzNDBcIikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTY4Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02ODY7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZV86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWlkZV9maW5hbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT03MTQ7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzE0OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNzgwOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzc4MDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgIChvX2d0ZV9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9kODMyXzI0XykgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlXyBtb250YW50X2ZvcmZhaXRhaXJlX2Q4MzJfMjRfKVxuICAgICAgICAgICAgICAgICAgIGVsc2UgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzE0OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTcxNDsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03MTQ7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzE0OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBlcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiOyBcIsOpcXVpdmFsZW5jZV9sb3llcl/DqWxpZ2libGVcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02ODk7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9Njg5OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzc1NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNzU0OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb24gcmVkZXZhbmNlXyBwbGFmb25kX2VxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlXylcbiAgICAgICAgICAgICAgdGhlbiBwbGFmb25kX2VxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlXyBlbHNlIHJlZGV2YW5jZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTY4OTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02ODk7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiOyBcIm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVcIl1cbiAgICAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTY4ODsgc3RhcnRfY29sdW1uPTIxOyBlbmRfbGluZT02ODg7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT4gbl9ub21icmVfcGFydHNfZDgzMl8yNV8gKCkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT02ODg7IHN0YXJ0X2NvbHVtbj0yMTsgZW5kX2xpbmU9Njg4OyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTQ0OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzk0NDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIGNhbGN1bF9ub21icmVfcGFydHNfZG90X25fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Njg4OyBzdGFydF9jb2x1bW49MjE7IGVuZF9saW5lPTY4ODsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzI3XzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICBcImTDqXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMjdcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWxsb2NhdGlvbl9tZW5zdWVsbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT02OTM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjkzOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MTQ1OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDE0NTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIG9fc3ViX21vbl9tb24gZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGVfXG4gICAgICAgICAgICAgICAgICAgYWxsb2NhdGlvbl9tZW5zdWVsbGVfKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTY5Mzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02OTM7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjkzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTY5MzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgIFwiY2FsY3VsX8OpcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZS5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTcyMTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT03MjE7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzIxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTcyMTsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzIxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTcyMTsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUucmVzc291cmNlc19tw6luYWdlX2Fycm9uZGllc1wiXVxuICAgICAgKGVtYmVkX21vbmV5KVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Mzc3MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNzcwOyBlbmRfY29sdW1uPTc1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNzcwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM3NzA7IGVuZF9jb2x1bW49NzU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Mzc3MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNzcwOyBlbmRfY29sdW1uPTc1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfY29uZGl0aW9uXzJfZHVfODMyXzI1XzogYm9vbCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgIFwiY2FsY3VsX8OpcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZS5jb25kaXRpb25fMl9kdV84MzJfMjVcIl1cbiAgICAgIChlbWJlZF9ib29sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Mzc2ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNzY4OyBlbmRfY29sdW1uPTY5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNzY4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM3Njg7IGVuZF9jb2x1bW49Njk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBjb25kaXRpb25fMl9kdV84MzJfMjVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Mzc2ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNzY4OyBlbmRfY29sdW1uPTY5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3Rfbl9ub21icmVfcGFydHNfZDgzMl8yNV86IGRlY2ltYWwgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUubl9ub21icmVfcGFydHNfZDgzMl8yNVwiXVxuICAgICAgKGVtYmVkX2RlY2ltYWwpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zNzcyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM3NzI7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgIChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM3NzI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Mzc3MjsgZW5kX2NvbHVtbj03MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IG5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Mzc3Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNzcyOyBlbmRfY29sdW1uPTcwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IHJlc3VsdF86IENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZS50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgIFwiY2FsY3VsX8OpcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZVwiO1xuICAgICAgXCJDYWxjdWzDiXF1aXZhbGVuY2VMb3llck1pbmltYWxlXCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVcIjtcbiAgICAgIFwiQ2FsY3Vsw4lxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZVwiXSBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUpXG4gICAgKHtDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9kYXRlX2NvdXJhbnRlXztcbiAgICAgICAgQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luID1cbiAgICAgICAgICBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X3Jlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc187XG4gICAgICAgIENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluLmNvbmRpdGlvbl8yX2R1XzgzMl8yNV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9jb25kaXRpb25fMl9kdV84MzJfMjVfO1xuICAgICAgICBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi5uX25vbWJyZV9wYXJ0c19kODMyXzI1X2luID1cbiAgICAgICAgICBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X25fbm9tYnJlX3BhcnRzX2Q4MzJfMjVffSkpKSBpblxuICBsZXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9tb250YW50XzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZS5tb250YW50IGluXG4gIGxldCBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNV9mb3JtdWxlXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgIFwiY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMjVfZm9ybXVsZVwiXSAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTcwNzsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03MDc7IGVuZF9jb2x1bW49MTc7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03MDc7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03MDc7IGVuZF9jb2x1bW49MTc7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5NTc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5NTc7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbl8yX2R1XzgzMl8yNV8pKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBvX3N1Yl9yYXRfcmF0IChkZWNpbWFsX29mX3N0cmluZyBcIjAuOVwiKVxuICAgICAgICAgICAgICAgICAgICAgIChvX2Rpdl9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8yNV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuX25vbWJyZV9wYXJ0c19kODMyXzI1XykpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zODYyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM4NjI7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIChsZXQgZGVub21pbmF0ZXVyXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19cbiAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBjb2VmZmljaWVudF9yX2Q4MzJfMjVfXG4gICAgICAgICAgICAgICAgICAgICBuX25vbWJyZV9wYXJ0c19kODMyXzI1XykpXG4gICAgICAgICAgICBpblxuICAgICAgICAgICAgKGxldCBkZW5vbWluYXRldXJfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgKCBpZiAob19sdF9tb25fbW9uIGRlbm9taW5hdGV1cl8gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICB0aGVuIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpIGVsc2UgZGVub21pbmF0ZXVyXylcbiAgICAgICAgICAgIGluXG4gICAgICAgICAgICAob19zdWJfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjk1XCIpXG4gICAgICAgICAgICAgICAob19kaXZfbW9uX21vbiBkZW5vbWluYXRldXJfXG4gICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8yNV9cbiAgICAgICAgICAgICAgICAgICAgIG5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfKSkpKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTcwNzsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03MDc7IGVuZF9jb2x1bW49MTc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGFiYXR0ZW1lbnRfZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzI3XzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICBcImFiYXR0ZW1lbnRfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8yN1wiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhbGxvY2F0aW9uX21lbnN1ZWxsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY5MTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02OTE7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQxNDk7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MTQ5OyBlbmRfY29sdW1uPTU1O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgKGxldCBkZXBlbnNlX25ldHRlX21pbmltYWxlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8yN1wiXVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImTDqXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMjdcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImTDqXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMjdcIl1cbiAgICAgICAgICAgICAgICAgICAgZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzI3XylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzI3XCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgYWxsb2NhdGlvbl9tZW5zdWVsbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgIChvX2x0ZV9tb25fbW9uIGRlcGVuc2VfbmV0dGVfbWluaW1hbGVfXG4gICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8yN18pIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gbW9udGFudF9mb3JmYWl0YWlyZV9kODMyXzI3X1xuICAgICAgICAgICAgICAgICAgICAgICBkZXBlbnNlX25ldHRlX21pbmltYWxlXykgZWxzZVxuICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTY5MTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02OTE7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjkxOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTY5MTsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjsgXCLDqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02OTg7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9Njk4OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzc2Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNzY2OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfbW9udGFudF8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTY5ODsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02OTg7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1X2NvZWZmX2Fycm9uZGlfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgXCJjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNV9jb2VmZl9hcnJvbmRpXCJdIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NzA4OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTcwODsgZW5kX2NvbHVtbj0yMztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTcwODsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTcwODsgZW5kX2NvbHVtbj0yMztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk3NDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzk3NDsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uXzJfZHVfODMyXzI1XykpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG9fZGl2X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAob19yb3VuZF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1X2Zvcm11bGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMDVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTAwLlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTAwLlwiKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzg4Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zODgzOyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX2Rpdl9yYXRfcmF0XG4gICAgICAgICAgICAgIChvX3JvdW5kX3JhdFxuICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgKG9fc3ViX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMjVfZm9ybXVsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMDVcIikpXG4gICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMC5cIikpKSAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMDAuXCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03MDg7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzA4OyBlbmRfY29sdW1uPTIzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0cmFpdGVtZW50X2FpZGVfZmluYWxlX2FiYXR0ZW1lbnRfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9hYmF0dGVtZW50XCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzE1OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTcxNTsgZW5kX2NvbHVtbj0yMDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzc5NDsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM3OTQ7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCJdXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiXVxuICAgICAgICAgICAgICAgICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcImFiYXR0ZW1lbnRfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8yN1wiXVxuICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcImFiYXR0ZW1lbnRfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8yN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJhYmF0dGVtZW50X2TDqXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMjdcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgYWJhdHRlbWVudF9kZXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMjdfKVxuICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcImFiYXR0ZW1lbnRfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8yN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAob19ndGVfbW9uX21vbiBhaWRlX2ZpbmFsZV8gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgIHRoZW4gYWlkZV9maW5hbGVfIGVsc2UgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzE1OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTcxNTsgZW5kX2NvbHVtbj0yMDtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03MTU7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzE1OyBlbmRfY29sdW1uPTIwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNV9zZXVpbF86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICBcImNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1X3NldWlsXCJdIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NzA5OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTcwOTsgZW5kX2NvbHVtbj0xNTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTcwOTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTcwOTsgZW5kX2NvbHVtbj0xNTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk4MDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzk4MDsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uXzJfZHVfODMyXzI1XykpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMjVfY29lZmZfYXJyb25kaV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjlcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjlcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgIGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1X2NvZWZmX2Fycm9uZGlfKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zODg2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM4ODY7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAob19ndGVfcmF0X3JhdFxuICAgICAgICAgICAgICAgICBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNV9jb2VmZl9hcnJvbmRpX1xuICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjk1XCIpKSB0aGVuIChkZWNpbWFsX29mX3N0cmluZyBcIjAuOTVcIilcbiAgICAgICAgICAgICAgZWxzZSBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNV9jb2VmZl9hcnJvbmRpXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzA5OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTcwOTsgZW5kX2NvbHVtbj0xNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlcIl0gKHVuZW1iZWRkYWJsZSlcbiAgICAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTcxNjsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03MTY7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM4MDg7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zODA4OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfYWJhdHRlbWVudFwiXVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfYWJhdHRlbWVudFwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9hYmF0dGVtZW50XCJdXG4gICAgICAgICAgICAgICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfYWJhdHRlbWVudF8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9hYmF0dGVtZW50XCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAobGV0IGNyZHNfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRcIl0gKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRcIjsgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwibW9udGFudFwiXSBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9tb250YW50XylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRcIjsgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfbW9pbnNfY3Jkc19hcnJvbmRpZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgIChvX3JvdW5kX21vblxuICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiAob19zdWJfbW9uX21vbiBhaWRlX2ZpbmFsZV8gY3Jkc18pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MFwiKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gYWlkZV9maW5hbGVfbW9pbnNfY3Jkc19hcnJvbmRpZV8gY3Jkc18pXG4gICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIGFpZGVfZmluYWxlX21vaW5zX2NyZHNfYXJyb25kaWVfIGNyZHNfKVxuICAgICAgICAgICAgICAgICAgICBlbHNlIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSkpKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT03MTY7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzE2OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTcxNjsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03MTY7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGFpZGVfZmluYWxlX2Zvcm11bGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjsgXCJhaWRlX2ZpbmFsZV9mb3JtdWxlXCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NzExOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTcxMTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM3MzM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzczMzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIGVxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlX1xuICAgICAgICAgICAgICAgICAgICAgZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfKVxuICAgICAgICAgICAgICAgICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMjVfc2V1aWxfKVxuICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICggaWYgKG9fbHRfbW9uX21vbiBhaWRlX2ZpbmFsZV8gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpIGVsc2UgYWlkZV9maW5hbGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTcxMTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT03MTE7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsXzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzE3OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTcxNzsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzgyOTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM4Mjk7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlcIl1cbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaVwiXVxuICAgICAgICAgICAgICAgICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaV8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAob19sdF9tb25fbW9uIGFpZGVfZmluYWxlXyBtb250YW50X21pbmltYWxfYWlkZV9kODIzXzI0XylcbiAgICAgICAgICAgICAgICAgICAgdGhlbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSBlbHNlIGFpZGVfZmluYWxlXykpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTcxNzsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03MTc7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzE3OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTcxNzsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgXzogdW5pdCA9IGlmIChcbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03MjU7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03MjU7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpIHRoZW5cbiAgICAgICAgICAgICAgICAgICgpIGVsc2VcbiAgICAgICAgICAgICAgICAgIHJhaXNlIChBc3NlcnRpb25GYWlsZWQge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTcyNTsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTcyNTsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pIGluXG4gIHtDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8yNSA9XG4gICAgIGNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMjVfO1xuICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfcl9kODMyXzI1ID1cbiAgICAgICBjb2VmZmljaWVudF9yX2Q4MzJfMjVfO1xuICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIubl9ub21icmVfcGFydHNfZDgzMl8yNSA9XG4gICAgICAgbl9ub21icmVfcGFydHNfZDgzMl8yNV87XG4gICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZSA9XG4gICAgICAgZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGVfO1xuICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIucGxhZm9uZF9lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZSA9XG4gICAgICAgcGxhZm9uZF9lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZV87XG4gICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZSA9XG4gICAgICAgZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfO1xuICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMjUgPVxuICAgICAgIGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1X3NldWlsXztcbiAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgIGFpZGVfZmluYWxlX2Zvcm11bGVfO1xuICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50X21pbmltYWxffVxuXG5sZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW46IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi50KSA6IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudCA9XG4gIGxldCBtZW5zdWFsaXRlX3ByaW5jaXBhbGVfOiBtb25leSA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ubWVuc3VhbGl0ZV9wcmluY2lwYWxlX2luIGluXG4gIGxldCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfOiBtb25leSA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luIGluXG4gIGxldCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlciA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiBpblxuICBsZXQgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXzogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiBpblxuICBsZXQgdHlwZV90cmF2YXV4X2xvZ2VtZW50XzogVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNS50ID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi50eXBlX3RyYXZhdXhfbG9nZW1lbnRfaW4gaW5cbiAgbGV0IGRhdGVfc2lnbmF0dXJlX3ByZXRfOiBkYXRlID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5kYXRlX3NpZ25hdHVyZV9wcmV0X2luIGluXG4gIGxldCBsb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW5lZmljaWFpcmVfOiBib29sID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5sb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW5lZmljaWFpcmVfaW4gaW5cbiAgbGV0IGRhdGVfZW50cmVlX2xvZ2VtZW50XzogZGF0ZSA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9lbnRyZWVfbG9nZW1lbnRfaW4gaW5cbiAgbGV0IGNvcHJvcHJpZXRlXzogYm9vbCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uY29wcm9wcmlldGVfaW4gaW5cbiAgbGV0IHNpdHVhdGlvbl9yODIyXzExXzEzXzE3XzogYm9vbCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uc2l0dWF0aW9uX3I4MjJfMTFfMTNfMTdfaW4gaW5cbiAgbGV0IHpvbmVfOiBab25lREhhYml0YXRpb24udCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uem9uZV9pbiBpblxuICBsZXQgdHlwZV9wcmV0XzogVHlwZVByZXQudCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4udHlwZV9wcmV0X2luIGluXG4gIGxldCBhbmNpZW5uZXRlX2xvZ2VtZW50XzogTmV1Zk91QW5jaWVuLnQgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmFuY2llbm5ldGVfbG9nZW1lbnRfaW4gaW5cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwidGF1eF9mcmFuY3NfdmVyc19ldXJvc1wiXSAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTc4MTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03ODE7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2F1dHJlc19zb3VyY2VzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTMyNzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMjc7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIHByZW1pZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJSw6hnbGVtZW50IChDRSkgbsKwMjg2Ni85OCBkdSBjb25zZWlsIGR1IDMxIGTDqWNlbWJyZSAxOTk4IGNvbmNlcm5hbnQgbGVzIHRhdXggZGUgY29udmVyc2lvbiBlbnRyZSBsJ2V1cm8gZXQgbGVzIG1vbm5haWVzIGRlcyDDiXRhdHMgbWVtYnJlcyBhZG9wdGFudCBsJ2V1cm9cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX2Rpdl9yYXRfcmF0IChkZWNpbWFsX29mX3N0cmluZyBcIjEuXCIpXG4gICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuNTU5NTdcIikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc4MTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03ODE7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlciA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY2FsY3VsX25vbWJyZV9wYXJ0cy5ub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZVwiXSAoZW1iZWRfaW50ZWdlcilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMyNzg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzI3ODsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjc4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTMyNzg7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzI3ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMjc4OyBlbmRfY29sdW1uPTU5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTExXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXzogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICBcImNhbGN1bF9ub21icmVfcGFydHMuc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXCJdXG4gICAgICAoZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2wpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zMjgwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTMyODA7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzI4MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMjgwOyBlbmRfY29sdW1uPTY0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTExXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzI4MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMjgwOyBlbmRfY29sdW1uPTY0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTExXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGUudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImNhbGN1bF9ub21icmVfcGFydHNcIjsgXCJDYWxjdWxOb21icmVQYXJ0c0FjY2Vzc2lvblByb3ByacOpdMOpXCJdXG4gICAgKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwiY2FsY3VsX25vbWJyZV9wYXJ0c1wiOyBcIkNhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpw6l0w6lcIl1cbiAgICBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGUpXG4gICAgKHtDYWxjdWxOb21icmVQYXJ0c0FjY2Vzc2lvblByb3ByaWV0ZUluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXztcbiAgICAgICAgQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGVJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICAgIGNhbGN1bF9ub21icmVfcGFydHNfZG90X3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF99KSkpIGluXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzExXzogZGVjaW1hbCA9IHJlc3VsdF8uQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGUubl9ub21icmVfcGFydHNfZDgzMl8xMSBpblxuICBsZXQgY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICBcImNvbnRyaWJ1dGlvbnNfc29jaWFsZXMuZGF0ZV9jb3VyYW50ZVwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03OTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Nzk4OyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT03OTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Nzk4OyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Nzk4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTc5ODsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCByZXN1bHRfOiBDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImNvbnRyaWJ1dGlvbnNfc29jaWFsZXNcIjtcbiAgICAgIFwiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImNvbnRyaWJ1dGlvbnNfc29jaWFsZXNcIjtcbiAgICAgIFwiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCJdXG4gICAgY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudClcbiAgICAoe0NvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9kYXRlX2NvdXJhbnRlX30pKSkgaW5cbiAgbGV0IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfZG90X21vbnRhbnRfOiBtb25leSAtPiBtb25leSA9IHJlc3VsdF8uQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50Lm1vbnRhbnQgaW5cbiAgbGV0IHRhdXhfdHJhbmNoZV9zdXBlcmlldXJlX2Q4MzJfMTVfMV86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcInRhdXhfdHJhbmNoZV9zdXDDqXJpZXVyZV9kODMyXzE1XzFcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03ODA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NzgwOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNDA3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI0MDc7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDIzXCI7IFwiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC40MTZcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzgwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc4MDsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRhdXhfdHJhbmNoZV9pbmZlcmlldXJlX2Q4MzJfMTVfMV86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcInRhdXhfdHJhbmNoZV9pbmbDqXJpZXVyZV9kODMyXzE1XzFcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03Nzk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Nzc5OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNDA2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI0MDY7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDIzXCI7IFwiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4yMDhcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Nzc5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3OTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfbGltaXRlX3RyYW5jaGVzX2Q4MzJfMTVfMV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJtb250YW50X2xpbWl0ZV90cmFuY2hlc19kODMyXzE1XzFcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Nzc4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3ODsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjQwNTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yNDA1OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyM1wiOyBcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI1NjAwODVcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Nzc4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3ODsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMThfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzE4XCJdIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Nzc3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3NzsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjQ4NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yNDg1OyBlbmRfY29sdW1uPTQ4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyNlwiOyBcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZWNpbWFsX29mX3N0cmluZyBcIjE2LjI1XCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc3Nzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03Nzc7IGVuZF9jb2x1bW49NDU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzExXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMTFcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Nzc2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3NjsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjM4OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yMzg5OyBlbmRfY29sdW1uPTQ4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyMlwiOyBcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjExMTMzXCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc3Njsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03NzY7IGVuZF9jb2x1bW49NDU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzE3XzNfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzE3XzNcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03NzU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Nzc1OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNDY2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI0NjY7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDI1XCI7IFwiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBtYXRjaCBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5OCkgKDEwKSAoMSkpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjI2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMzRcIikpXG4gICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gYW1lbGlvcmVfcGFyX29jY3VwYW50XyAtPlxuICAgICAgICAgICAgICAgIChtYXRjaCBhbWVsaW9yZV9wYXJfb2NjdXBhbnRfXG4gICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgfCBBbWVsaW9yZVBhck9jY3VwYW50Lk91aSBfIC0+IChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE3MlwiKVxuICAgICAgICAgICAgICAgICB8IEFtZWxpb3JlUGFyT2NjdXBhbnQuTm9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTk4KSAoMTApICgxKSkpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIyNlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMzRcIikpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Nzc1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3NTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfbWluaW1hbF9haWRlX2Q4MzJfMTBfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwibW9udGFudF9taW5pbWFsX2FpZGVfZDgzMl8xMFwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03NzQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Nzc0OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMzc5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTIzNzk7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDIxXCI7IFwiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEwMDBcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Nzc0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3NDsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8xMF86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4MzJfMTBcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NzczOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3MzsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjM2Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yMzY3OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyMFwiOyBcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MDBcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzczOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3MzsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODMyXzEwXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcIm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODMyXzEwXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTc3Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03NzI7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzcyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzcyOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NzI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc3MjsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjQzODsgc3RhcnRfY29sdW1uPTc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNDM4OyBlbmRfY29sdW1uPTE4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMjRcIjsgXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3Byb3ByaWV0ZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjgwNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1NjEyXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc3Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzcyOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDE4OyBzdGFydF9jb2x1bW49NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0MTg7IGVuZF9jb2x1bW49MTg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHJvcHJpZXRlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNzEwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU0MjJcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEyMjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzcyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NzI7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI1MDI7IHN0YXJ0X2NvbHVtbj03O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjUwMjsgZW5kX2NvbHVtbj0xODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDI0XCI7IFwiQXJ0aWNsZSAxOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3Byb3ByaWV0ZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjY5OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1Mzk5XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjI0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc3Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03NzI7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc3Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzcyOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMzU1OyBzdGFydF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMzU1OyBlbmRfY29sdW1uPTY0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTlcIjsgXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTYxMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc3Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzcyOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzg0OyBzdGFydF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzg0OyBlbmRfY29sdW1uPTY0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTQyMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc3Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzcyOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNDY4OyBzdGFydF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNDY4OyBlbmRfY29sdW1uPTY0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUzOTlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTIyNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc3Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03NzI7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4MzJfMTBfM186IGRhdGUgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4MzJfMTBfM1wiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChkYXRlX3NpZ25hdHVyZV9wcmV0XzogZGF0ZSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT04Mjc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT04NDI7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5MikgKDYpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTQpICgxMSkgKDI3KSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gYW1lbGlvcmVfcGFyX29jY3VwYW50XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1lbGlvcmVfcGFyX29jY3VwYW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBBbWVsaW9yZVBhck9jY3VwYW50Lk91aSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBBbWVsaW9yZVBhck9jY3VwYW50Lk5vbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT4gZmFsc2UpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjg2OTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI5NzEwMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTA3MzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTAyMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwODM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwODc7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTkyKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTQpICgxMSkgKDI3KSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA4NTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI1MTUwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk0NTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDMwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4NjAwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjM5MDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI2MTgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3OTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNzM2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA4MjAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDI4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNDYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF1eF9mcmFuY3NfdmVyc19ldXJvc18pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExMTY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExMjA7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTkyKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTQpICgxMSkgKDI3KSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTY3ODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwMjUwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjM3MjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzQ3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE0OTYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODAxMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxMDYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwNTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxMzk3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTY3NjAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTU1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNzkwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF1eF9mcmFuY3NfdmVyc19ldXJvc18pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExNDk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExNTM7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTk0KSAoMTEpICgyNykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAwKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTk4MTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzOTAwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjc5OTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDA5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE3NjgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMTI4MDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0ODgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNjUwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTk3OTAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzA4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMjkwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF1eF9mcmFuY3NfdmVyc19ldXJvc18pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExODI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExODY7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTk0KSAoMTEpICgyNykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAwKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTU5NTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE5MjUwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjI1NTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzMwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE0MjIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNzEyMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwMDIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5MDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxMzI4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTU5MzAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODU4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjUwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF1eF9mcmFuY3NfdmVyc19ldXJvc18pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMTU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyMTk7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAwKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAxKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjAwMTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE0MTQwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTgyNzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDEzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE3ODYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMTUwMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI1MTQwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNjY3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTk5OTAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzMxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMzIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF1eF9mcmFuY3NfdmVyc19ldXJvc18pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNDg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyNTI7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAwKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAxKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTYxMTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE5NDQwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjI3NzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzMzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE0MzYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNzI5MDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwMjIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5MzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxMzQxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTYwOTAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODc3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF1eF9mcmFuY3NfdmVyc19ldXJvc18pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyODE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyODU7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAxKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMDI1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQ0MzAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyODYxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTgwNzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxNzUwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjU0MzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE2ODcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMDIzMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzNTkwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMzNjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTMxNDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTMxODsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAyKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwODcxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3MjQzXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MzYxNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjYzNzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNzU0OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMzE0OFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzg3NjhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1NjEwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjU3MThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzA4NDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1OTYyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTEyMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzNDc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEzNTE7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAxKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNjMwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTk2NzAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzA0MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMzcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTQ1MzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE3NTAwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA0NzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjEzNTcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNjI4MDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4OTkwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI3MTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTM4MDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTM4NDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAyKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0ODQ5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5OTg3XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTEyNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUxMzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjE1MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjY3OVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzEyMDdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NTI4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA2ODdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQ4MThcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI4OTQ5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDEzMVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0MTM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0MTc7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAyKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDMpICg2KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzEyNDFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc2ODlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ0MTM3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjQ0OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI3ODc5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMzNTU2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzOTIzM1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU2NzdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjAyN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMTIxMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzYzOTNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1MTgzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ0Njsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ1MDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDIpICg2KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMykgKDYpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNTE0N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMDM0N1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU1NDdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1MjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjI0MTdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjY5OTlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxNTgxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDU4MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwOTM1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI1MTE2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTI5N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQxODFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDc5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDgzOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMykgKDYpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDA1KSAoOCkgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxNjE2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM4MTQxXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NDY2NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjY1MjVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyODIxNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMzk1OVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzk3MDRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1NzQ1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjYzMzlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzE1ODRcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2ODI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTI0NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MTI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MTY7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAzKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDUpICg4KSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjU0NDlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzA3MTFcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1OTczXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTI2MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyNjg2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI3MzIzXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMTk2MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ2MzdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMTE4NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNTQxN1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk2NDhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MjMxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU0NTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU0OTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDUpICg4KSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwNikgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzIxODVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzg4MjdcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ1NDY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjY0MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI4NzIyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0NTcwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MDQxOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU4NDhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjgxM1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMjE1MlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc0OTFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1MzM5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU3ODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU4MjsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDUpICg4KSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwNikgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjU5MDdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzEyNjRcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NjIxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTM1N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzMDk0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI3ODE0XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMjUzNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ3MjBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMTU2N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNTg3NFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzAxODFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MzA3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYxMTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTYxNTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDYpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDcpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMzMDg2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5OTE0XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0Njc0MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjY4MjhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTUyNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTUzOFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDE1NTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2MDEyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjc1NjRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzMwNTJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM4NTQxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTQ4OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2NDQ7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2NDg7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDA2KSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDA3KSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjYzMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMjEzOVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc2NDZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1NTA3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjM3NDFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjg1OTNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMzNDQ1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDg1MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyMTcxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NTk4XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMTAyNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ0MjhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjc3OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjgxOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwNykgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwOCkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzM5OTlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDEwMTZcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ4MDMyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNzAxNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwMzQxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NTE5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MjY5N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjYxNzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyODMyNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMzk2NFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzk2MDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1NjM5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTcxMDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTcxNDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDcpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDgpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI3MzY3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMzMDI2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzODY4NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU2NTlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDM5NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTM4MlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzQzNjhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0OTg2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjI3ODNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjczMzJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxODgyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDU1MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE3NDM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE3NDc7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDA4KSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDA5KSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTAwMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MjIyNlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDk0NDlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI3MjIzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzEyMzZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc1OTZcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQzOTU3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjM2MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5MTYxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0OTY2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MDc3M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU4MDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNzc2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNzgwOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwOCkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwOSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjgxNzRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzQwMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5ODI2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTgyNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI1MTE2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwMjQ5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTM4MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUxMzNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzQ1NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyODEzOFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzI4MjNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0Njg0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTgwOTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTgxMzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDkpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTApICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1MTE0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQyMzYxXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0OTYwN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjcyNDZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMTMzNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzcxNlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDQwOThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2MzgwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjkyNTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzUwNzhcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwOTAzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTgyNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE4NDI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE4NDY7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDA5KSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDEwKSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyODI2NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNDEwOVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzk5NTNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1ODQ1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjUxOTZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzAzNDZcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1NDk1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTE0OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzNTMwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI4MjI4XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMjkyOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ2OTlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODc1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xODc5OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMCkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDI4MjdcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUwMTUzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNzMyNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxNjgxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM4MTMxXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NDU4M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjY0NTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTU3NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTQ2NFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDEzNTNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1ODg4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTkwODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTkxMjsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTApICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTEpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI4NTc1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0NDg0XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MDM5MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU5MDlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNTQ3M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMDY4MFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU4ODVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1MjA2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjM3ODlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjg1MzlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMzMjkwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDc1MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE5NDE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE5NDU7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDExKSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDEyKSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTg1NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MzI1NVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTA2NTVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI3Mzk5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzE5OThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzg1MTJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ1MDI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjUxNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5ODcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1ODE5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTc2N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU5NDdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xOTc0OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xOTc4OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMikgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjg4NjFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzQ4MjlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwNzk2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTk2OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI1NzI4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwOTg3XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjI0NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUyNThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDAyN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyODgyNFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzM2MjNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0Nzk5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjAwNzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjAxMTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTIpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTQpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY2MjZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDQxODVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUxNzQ0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNzU1OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMyNjg2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5MzQwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NTk5N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjY2NTVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMDUxNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjU4OVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDI2NjVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2MDc1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjA0MDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjA0NDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTIpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTQpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk0ODJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU1NzhcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQxNjczXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjA5NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI2MjgxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxNjUzXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzAyM1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUzNzFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDU0NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTQ0NFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzQzNDZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0OTAyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjA3Mzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjA3NzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTQpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNSkgKDkpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjgzNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NDQzN1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTIwMzlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI3NjAxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzI4NzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzk1NjRcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ2MjU5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjY5M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwNjg4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2Nzk4XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MjkwOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjYxMTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMTA2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMTEwOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNCkgKDkpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE1KSAoOSkgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5NjUwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1NzgxXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTkxMVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjYxMzFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjQzMVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMTgzM1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzcyMzRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1NDAyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQ2ODRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk2MTJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0NTQyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDkzMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIxMzk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIxNDM7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE1KSAoOSkgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTcpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY4NjRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDQ0NzNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUyMDgxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNzYwN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMyODk4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5NTk2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NjI5NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjY2OThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMDcxM1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjgyN1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDI5NDJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2MTE1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjE3Mjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjE3NjsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTUpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNykgKDkpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTY3NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTgxMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDE5NDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2MTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjY0NTJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzE4NThcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3MjY0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTQwNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0NzA0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5NjM2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNDU3MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ5MzRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMjA1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMjA5OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNykgKDkpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoOSkgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3MTQwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ0ODA3XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1MjQ3MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjc2NjRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMzE0NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzOTg5M1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDY2NDNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2NzQ4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzA5NDNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzcxMDNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQzMjY0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjE2MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIyMzg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIyNDI7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE3KSAoOSkgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk4OTdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzYwNzlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQyMjYwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjE4MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI2NjUwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMyMDk3XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzU0M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU0NDdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDg4OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTg1OFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzQ4MjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0OTcxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjI3MTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjI3NDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzI1MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NDk0MVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTI2MjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI3Njg3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzMyNDRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDAwMTNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ2NzgzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjc2OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxMDM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3MjE1XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MzM5NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjYxNzlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMzAzOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMzA2OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDkpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5OTg2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MTg3XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MjM4NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjYyMDFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjczMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMjE5M1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc2NTZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1NDYzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQ5NjRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk5NDhcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0OTM0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDk4NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYzNTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYzODsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5MikgKDYpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTk0KSAoMTEpICgyNykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+IGZhbHNlKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwODUwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNTE1MDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5NDUwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQzMDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTg2MDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyMzkwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjYxODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNzM2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA4MjAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDI4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF1eF9mcmFuY3NfdmVyc19ldXJvc18pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02ODA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02ODM7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTIpICg2KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5NCkgKDExKSAoMjcpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPiBmYWxzZSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNjc4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjAyNTAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzcyMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNDcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE0OTYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODAxMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxMDYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwNTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTM5NzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE2NzYwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTk1NTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjc5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhdXhfZnJhbmNzX3ZlcnNfZXVyb3NfKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzI2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzI4OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTk0KSAoMTEpICgyNykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+IGZhbHNlKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTg0MDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyMDAwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjYwMDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzgwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNjQyMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTk3NzAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzEyMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMzUwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE1MzIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODM3MDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxNDIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwNTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc3MDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc3MjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5NCkgKDExKSAoMjcpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPiBmYWxzZSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE0ODEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNzg3MDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwOTMwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwNjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTMyMDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE1ODkwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTg1ODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjY5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxMjMzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTQ3OTAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNzI1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF1eF9mcmFuY3NfdmVyc19ldXJvc18pKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSBmYWxzZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG5fbm9tYnJlX3BhcnRzX2Q4MzJfMTFfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJuX25vbWJyZV9wYXJ0c19kODMyXzExXCJdIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NzYyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc2MjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjc2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTMyNzY7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzExXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzYyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc2MjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHJlc3NvdXJjZXNfbWVuYWdlX2F2ZWNfZDgzMl8xOF86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJyZXNzb3VyY2VzX23DqW5hZ2VfYXZlY19kODMyXzE4XCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTc3MTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03NzE7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzcxOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzcxOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzU5Mjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzU5MjsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX3I4MjJfMTFfMTNfMTdfKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXykpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzU4NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNTg0OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAob19sdGVfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfXG4gICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBtZW5zdWFsaXRlX3ByaW5jaXBhbGVfXG4gICAgICAgICAgICAgICAgICAgIGNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMThfKSkgdGhlblxuICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgbWVuc3VhbGl0ZV9wcmluY2lwYWxlX1xuICAgICAgICAgICAgICAgICBjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzE4XykgZWxzZVxuICAgICAgICAgICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03NzE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NzcxOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc5Mjsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03OTI7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTI3OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzEyNzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTEwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgIChvX2d0ZV9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9kODMyXzEwXykgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlXyBtb250YW50X2ZvcmZhaXRhaXJlX2Q4MzJfMTBfKVxuICAgICAgICAgICAgICAgICAgIGVsc2UgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzkyOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTc5MjsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzkyOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTc5MjsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGRlcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8xMF86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzEwXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFsbG9jYXRpb25fbWVuc3VlbGxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzY3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc2NzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzY3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03Njc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzUyODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNTI4OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTk5KSAoNikgKDMwKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG9fc3ViX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIG1lbnN1YWxpdGVfcHJpbmNpcGFsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODMyXzEwXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRpb25fbWVuc3VlbGxlXykpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzUzOTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM1Mzk7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICBvX3N1Yl9tb25fbW9uIG1lbnN1YWxpdGVfcHJpbmNpcGFsZV8gYWxsb2NhdGlvbl9tZW5zdWVsbGVfKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTc2Nzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03Njc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc2Nzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03Njc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBwbGFmb25kX21lbnN1YWxpdGVfZDgzMl8xMF8zX2Jhc2VfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwicGxhZm9uZF9tZW5zdWFsaXTDqV9kODMyXzEwXzNfYmFzZVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03NTg7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzU4OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc1ODsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc1ODsgZW5kX2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMzNjM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMzNjM7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsX2hhYml0ZV9wcmVtaWVyZV9mb2lzX2JlbmVmaWNpYWlyZV8pKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAobGV0IHBsYWZvbmRfc2lnbmF0dXJlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDgzMl8xMF8zXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDgzMl8xMF8zXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODMyXzEwXzNcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODMyXzEwXzNfKVxuICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4MzJfMTBfM1wiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZGF0ZSkgZGF0ZV9zaWduYXR1cmVfcHJldF8pKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgIChsZXQgcGxhZm9uZF9lbnRyZWVfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODMyXzEwXzNcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODMyXzEwXzNcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4MzJfMTBfM1wiXVxuICAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4MzJfMTBfM18pXG4gICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDgzMl8xMF8zXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9kYXRlKSBkYXRlX2VudHJlZV9sb2dlbWVudF8pKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICggaWYgKG9fbHRfbW9uX21vbiBwbGFmb25kX3NpZ25hdHVyZV8gcGxhZm9uZF9lbnRyZWVfKVxuICAgICAgICAgICAgICAgICAgICAgICB0aGVuIHBsYWZvbmRfZW50cmVlXyBlbHNlIHBsYWZvbmRfc2lnbmF0dXJlXykpKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM0Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMzQzOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4MzJfMTBfM1wiXVxuICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4MzJfMTBfM1wiOyBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDgzMl8xMF8zXCJdXG4gICAgICAgICAgICBjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4MzJfMTBfM18pICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODMyXzEwXzNcIjsgXCJpbnB1dDBcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0XykpKSkpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzU4OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTc1ODsgZW5kX2NvbHVtbj0xNDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUuZGF0ZV9jb3VyYW50ZVwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03OTk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Nzk5OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT03OTk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Nzk5OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Nzk5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTc5OTsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X3Jlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc186IG1vbmV5ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlLnJlc3NvdXJjZXNfbcOpbmFnZV9hcnJvbmRpZXNcIl1cbiAgICAgIChlbWJlZF9tb25leSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTM0ODQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzQ4NDsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNDg0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM0ODQ7IGVuZF9jb2x1bW49NzU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc18pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zNDg0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM0ODQ7IGVuZF9jb2x1bW49NzU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X2NvbmRpdGlvbl8yX2R1XzgzMl8yNV86IGJvb2wgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUuY29uZGl0aW9uXzJfZHVfODMyXzI1XCJdXG4gICAgICAoZW1iZWRfYm9vbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTM0ODM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzQ4MzsgZW5kX2NvbHVtbj02OTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNDgzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM0ODM7IGVuZF9jb2x1bW49Njk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzQ4Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNDgzOyBlbmRfY29sdW1uPTY5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzI1XzogZGVjaW1hbCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY2FsY3VsX8OpcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZS5uX25vbWJyZV9wYXJ0c19kODMyXzI1XCJdXG4gICAgICAoZW1iZWRfZGVjaW1hbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTM0ODY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzQ4NjsgZW5kX2NvbHVtbj03MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNDg2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM0ODY7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IG5fbm9tYnJlX3BhcnRzX2Q4MzJfMTFfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzQ4Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNDg2OyBlbmRfY29sdW1uPTcwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjYWxjdWxfw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlXCI7XG4gICAgICBcIkNhbGN1bMOJcXVpdmFsZW5jZUxveWVyTWluaW1hbGVcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwiY2FsY3VsX8OpcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZVwiO1xuICAgICAgXCJDYWxjdWzDiXF1aXZhbGVuY2VMb3llck1pbmltYWxlXCJdIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZSlcbiAgICAoe0NhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X2RhdGVfY291cmFudGVfO1xuICAgICAgICBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICAgIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXztcbiAgICAgICAgQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4uY29uZGl0aW9uXzJfZHVfODMyXzI1X2luID1cbiAgICAgICAgICBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X2NvbmRpdGlvbl8yX2R1XzgzMl8yNV87XG4gICAgICAgIENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3Rfbl9ub21icmVfcGFydHNfZDgzMl8yNV99KSkpIGluXG4gIGxldCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X21vbnRhbnRfOiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlLm1vbnRhbnQgaW5cbiAgbGV0IGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzEwX2Zvcm11bGVfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8xMF9mb3JtdWxlXCJdIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NzY0OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTc2NDsgZW5kX2NvbHVtbj0xNztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTkxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTMxOTE7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19zdWJfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjk1XCIpXG4gICAgICAgICAgICAgIChvX2Rpdl9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19cbiAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMTFfXG4gICAgICAgICAgICAgICAgICAgIG5fbm9tYnJlX3BhcnRzX2Q4MzJfMTFfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc2NDsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03NjQ7IGVuZF9jb2x1bW49MTc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBhYmF0dGVtZW50X2RlcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8xMF86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJhYmF0dGVtZW50X2TDqXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMTBcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWxsb2NhdGlvbl9tZW5zdWVsbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT03Njk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NzY5OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzU1MDsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM1NTA7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAobGV0IGRlcGVuc2VfbmV0dGVfbWluaW1hbGVfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzEwXCJdXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8xMFwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8xMFwiXVxuICAgICAgICAgICAgICAgICAgICBkZXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMTBfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImTDqXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMTBcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSBhbGxvY2F0aW9uX21lbnN1ZWxsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgKG9fbHRlX21vbl9tb24gZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IHJlc3NvdXJjZXNfbWVuYWdlX2F2ZWNfZDgzMl8xOF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8xN18zXykpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IHJlc3NvdXJjZXNfbWVuYWdlX2F2ZWNfZDgzMl8xOF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8xN18zXylcbiAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV8pIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT03Njk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NzY5OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03Njk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NzY5OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgcGxhZm9uZF9tZW5zdWFsaXRlX2Q4MzJfMTBfM19jb3Byb3ByaWV0YWlyZXNfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwicGxhZm9uZF9tZW5zdWFsaXTDqV9kODMyXzEwXzNfY29wcm9wcmnDqXRhaXJlc1wiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03NTk7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzU5OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc1OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc1OTsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzU5OyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NTk7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NTk7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzU5OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjQ4Mjsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNDgyOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGUgMTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBjb3Byb3ByaWV0ZV8gdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9tZW5zdWFsaXRlX2Q4MzJfMTBfM19iYXNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjc1XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfbWVuc3VhbGl0ZV9kODMyXzEwXzNfYmFzZV8pKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzk4OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzk4OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMjRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNvcHJvcHJpZXRlXyB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfbWVuc3VhbGl0ZV9kODMyXzEwXzNfYmFzZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNzVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfbWVuc3VhbGl0ZV9kODMyXzEwXzNfYmFzZV8pKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNDE5OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjQxOTsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyNFwiOyBcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICBpZiBjb3Byb3ByaWV0ZV8gdGhlblxuICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBwbGFmb25kX21lbnN1YWxpdGVfZDgzMl8xMF8zX2Jhc2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC43NVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfbWVuc3VhbGl0ZV9kODMyXzEwXzNfYmFzZV8pKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc1OTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03NTk7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtZW5zdWFsaXRlX21pbmltYWxlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcIm1lbnN1YWxpdMOpX21pbmltYWxlXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTc1Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT03NTY7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzU2OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzU2OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzQyMzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzQzNTsgZW5kX2NvbHVtbj03NztcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNS5UcmF2YXV4UG91ckFjcXVpc2l0aW9uRDgzMl8xNV8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnREODMyMTUuVHJhdmF1eFN1ckxvZ2VtZW50RGVqYUFjcXVpc0Q4MzJfMTVfMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNS5QYXNEZVRyYXZhdXggXyAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNS5UcmF2YXV4UG91ckFjcXVpc2l0aW9uRDgzMl8xNV8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50RDgzMjE1LlRyYXZhdXhTdXJMb2dlbWVudERlamFBY3F1aXNEODMyXzE1XzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnREODMyMTUuUGFzRGVUcmF2YXV4IF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgKGxldCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfIDogZGVjaW1hbCA9XG4gICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X21vbiByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfKVxuICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAobGV0IG1vbnRhbnRfbGltaXRlX3RyYW5jaGVzX2Q4MzJfMTVfMV8gOiBkZWNpbWFsID1cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfbW9uIG1vbnRhbnRfbGltaXRlX3RyYW5jaGVzX2Q4MzJfMTVfMV8pXG4gICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgIChvX3RvbW9uZXlfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgIChvX2Rpdl9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX3JhdF9yYXQgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9saW1pdGVfdHJhbmNoZXNfZDgzMl8xNV8xX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuX25vbWJyZV9wYXJ0c19kODMyXzExXykpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfbGltaXRlX3RyYW5jaGVzX2Q4MzJfMTVfMV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbl9ub21icmVfcGFydHNfZDgzMl8xMV8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X3RyYW5jaGVfc3VwZXJpZXVyZV9kODMyXzE1XzFfKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9yYXRfcmF0IHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfbGltaXRlX3RyYW5jaGVzX2Q4MzJfMTVfMV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbl9ub21icmVfcGFydHNfZDgzMl8xMV8pKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhdXhfdHJhbmNoZV9pbmZlcmlldXJlX2Q4MzJfMTVfMV8pIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X2xpbWl0ZV90cmFuY2hlc19kODMyXzE1XzFfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5fbm9tYnJlX3BhcnRzX2Q4MzJfMTFfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X3RyYW5jaGVfaW5mZXJpZXVyZV9kODMyXzE1XzFfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEyLlwiKSkpKSkpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzU2OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzU2OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzQ3ODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzQ3ODsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNS5UcmF2YXV4UG91ckFjcXVpc2l0aW9uRDgzMl8xNV8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50RDgzMjE1LlRyYXZhdXhTdXJMb2dlbWVudERlamFBY3F1aXNEODMyXzE1XzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNS5QYXNEZVRyYXZhdXggXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X21vbnRhbnRfKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03NTY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NzU2OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTBfY29lZmZfYXJyb25kaV86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzEwX2NvZWZmX2Fycm9uZGlcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03NjU7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzY1OyBlbmRfY29sdW1uPTIzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTMyMDc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzIwNzsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX2Rpdl9yYXRfcmF0XG4gICAgICAgICAgICAgIChvX3JvdW5kX3JhdFxuICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgKG9fc3ViX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTBfZm9ybXVsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMDVcIikpXG4gICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMC5cIikpKSAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMDAuXCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03NjU7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzY1OyBlbmRfY29sdW1uPTIzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9hYmF0dGVtZW50XzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfYWJhdHRlbWVudFwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc5Mzsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03OTM7IGVuZF9jb2x1bW49MjA7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTQxOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzE0MTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTEwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVcIl1cbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCJdXG4gICAgICAgICAgICAgICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZV8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiBhaWRlX2ZpbmFsZV8gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWJhdHRlbWVudF9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzEwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWJhdHRlbWVudF9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzEwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcImFiYXR0ZW1lbnRfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8xMFwiXVxuICAgICAgICAgICAgICAgICAgICAgICBhYmF0dGVtZW50X2RlcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8xMF8pXG4gICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWJhdHRlbWVudF9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzEwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9tb25fbW9uIGFpZGVfZmluYWxlXyAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgdGhlbiBhaWRlX2ZpbmFsZV8gZWxzZSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT03OTM7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzkzOyBlbmRfY29sdW1uPTIwO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03OTM7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzkzOyBlbmRfY29sdW1uPTIwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbWVuc3VhbGl0ZV9lbGlnaWJsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJtZW5zdWFsaXTDqV/DqWxpZ2libGVcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NzU1OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTc1NTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTAyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTMxMDI7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgIChvX2d0X21vbl9tb24gbWVuc3VhbGl0ZV9wcmluY2lwYWxlX1xuICAgICAgICAgICAgICAgICBwbGFmb25kX21lbnN1YWxpdGVfZDgzMl8xMF8zX2NvcHJvcHJpZXRhaXJlc18pIHRoZW5cbiAgICAgICAgICAgICAgcGxhZm9uZF9tZW5zdWFsaXRlX2Q4MzJfMTBfM19jb3Byb3ByaWV0YWlyZXNfIGVsc2VcbiAgICAgICAgICAgICAgbWVuc3VhbGl0ZV9wcmluY2lwYWxlXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzU1OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTc1NTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzEwX3NldWlsXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwiY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTBfc2V1aWxcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03NjY7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzY2OyBlbmRfY29sdW1uPTE1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTMyMTA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzIxMDsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgKG9fZ3RlX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTBfY29lZmZfYXJyb25kaV9cbiAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC45NVwiKSkgdGhlbiAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjk1XCIpXG4gICAgICAgICAgICAgIGVsc2UgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTBfY29lZmZfYXJyb25kaV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc2Njsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03NjY7IGVuZF9jb2x1bW49MTU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaV86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaVwiXSAodW5lbWJlZGRhYmxlKVxuICAgIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Nzk0OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTc5NDsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxNTU7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTU1OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfYWJhdHRlbWVudFwiXVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfYWJhdHRlbWVudFwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9hYmF0dGVtZW50XCJdXG4gICAgICAgICAgICAgICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfYWJhdHRlbWVudF8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9hYmF0dGVtZW50XCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAobGV0IGNyZHNfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRcIl0gKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRcIjsgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwibW9udGFudFwiXSBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9tb250YW50XylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRcIjsgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfbW9pbnNfY3Jkc19hcnJvbmRpZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgIChvX3JvdW5kX21vblxuICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiAob19zdWJfbW9uX21vbiBhaWRlX2ZpbmFsZV8gY3Jkc18pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MFwiKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gYWlkZV9maW5hbGVfbW9pbnNfY3Jkc19hcnJvbmRpZV8gY3Jkc18pXG4gICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIGFpZGVfZmluYWxlX21vaW5zX2NyZHNfYXJyb25kaWVfIGNyZHNfKVxuICAgICAgICAgICAgICAgICAgICBlbHNlIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSkpKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT03OTQ7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9Nzk0OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03OTQ7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9Nzk0OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgYWlkZV9maW5hbGVfZm9ybXVsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJhaWRlX2ZpbmFsZV9mb3JtdWxlXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTc4OTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT03ODk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzA4Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMDgyOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTEwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gbWVuc3VhbGl0ZV9lbGlnaWJsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODMyXzEwXylcbiAgICAgICAgICAgICAgICAgICAgIG1lbnN1YWxpdGVfbWluaW1hbGVfKVxuICAgICAgICAgICAgICAgICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTBfc2V1aWxfKVxuICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICggaWYgKG9fbHRfbW9uX21vbiBhaWRlX2ZpbmFsZV8gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpIGVsc2UgYWlkZV9maW5hbGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc4OTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT03ODk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0cmFpdGVtZW50X2FpZGVfZmluYWxlX21vbnRhbnRfbWluaW1hbF86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21vbnRhbnRfbWluaW1hbFwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc5NTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03OTU7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTc1OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzE3NTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTEwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaVwiXVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCJdXG4gICAgICAgICAgICAgICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgIChvX2x0X21vbl9tb24gYWlkZV9maW5hbGVfIG1vbnRhbnRfbWluaW1hbF9haWRlX2Q4MzJfMTBfKVxuICAgICAgICAgICAgICAgICAgICB0aGVuIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpIGVsc2UgYWlkZV9maW5hbGVfKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Nzk1OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTc5NTsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Nzk1OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTc5NTsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IF86IHVuaXQgPSBpZiAoXG4gICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODAzOyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODAzOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkgdGhlblxuICAgICAgICAgICAgICAgICAgKCkgZWxzZVxuICAgICAgICAgICAgICAgICAgcmFpc2UgKEFzc2VydGlvbkZhaWxlZCB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODAzOyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODAzOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pIGluXG4gIHtDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLm1lbnN1YWxpdGVfZWxpZ2libGUgPVxuICAgICBtZW5zdWFsaXRlX2VsaWdpYmxlXztcbiAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5tZW5zdWFsaXRlX21pbmltYWxlID1cbiAgICAgICBtZW5zdWFsaXRlX21pbmltYWxlXztcbiAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5jb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8xMCA9XG4gICAgICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTBfc2V1aWxfO1xuICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLmFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgIGFpZGVfZmluYWxlX2Zvcm11bGVfO1xuICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsX31cblxubGV0IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgKHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW46IFJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi50KSA6IFJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudCA9XG4gIGxldCByZXNzb3VyY2VzX2RlbWFuZGV1cl86IG1vbmV5ID0gcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4ucmVzc291cmNlc19kZW1hbmRldXJfaW4gaW5cbiAgbGV0IHJlc3NvdXJjZXNfY29uam9pbnRfOiBtb25leSA9IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnJlc3NvdXJjZXNfY29uam9pbnRfaW4gaW5cbiAgbGV0IHBlcnNvbm5lc192aXZhbnRfaGFiaXR1ZWxsZW1lbnRfZm95ZXJfOiBQZXJzb25uZVZpdmFudEhhYml0dWVsbGVtZW50QXVGb3llci50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkgPSByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5wZXJzb25uZXNfdml2YW50X2hhYml0dWVsbGVtZW50X2ZveWVyX2luIGluXG4gIGxldCBkZW1hbmRldXJfZXhlcmNlX2FjdGl2aXRlX3JlbXVuZXJlZV86IGJvb2wgPSByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kZW1hbmRldXJfZXhlcmNlX2FjdGl2aXRlX3JlbXVuZXJlZV9pbiBpblxuICBsZXQgY29uam9pbnRfZXhlcmNlX2FjdGl2aXRlX3JlbXVuZXJlZV86IGJvb2wgPSByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5jb25qb2ludF9leGVyY2VfYWN0aXZpdGVfcmVtdW5lcmVlX2luIGluXG4gIGxldCBwZXJzb25uZXNfYV9jaGFyZ2VfOiBQZXJzb25uZUFDaGFyZ2UudCBhcnJheSA9IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnBlcnNvbm5lc19hX2NoYXJnZV9pbiBpblxuICBsZXQgc2l0dWF0aW9uX2ZhbWlsaWFsZV86IFNpdHVhdGlvbkZhbWlsaWFsZS50ID0gcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9pbiBpblxuICBsZXQgbW9kZV9vY2N1cGF0aW9uXzogTW9kZU9jY3VwYXRpb24udCA9IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLm1vZGVfb2NjdXBhdGlvbl9pbiBpblxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCBjb25kaXRpb25fYWdlX2JvdXJzZV9lbnNlaWduZW1lbnRfc3VwZXJpZXVyXzogYm9vbCA9IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmNvbmRpdGlvbl9hZ2VfYm91cnNlX2Vuc2VpZ25lbWVudF9zdXBlcmlldXJfaW4gaW5cbiAgbGV0IGRlbWFuZGV1cl9wb3Vyc3VpdF9kZXNfZXR1ZGVzXzogYm9vbCA9IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRlbWFuZGV1cl9wb3Vyc3VpdF9kZXNfZXR1ZGVzX2luIGluXG4gIGxldCBkYXRlX2RlbWFuZGVfb3VfcmVleGFtZW5fZHJvaXRfOiBkYXRlID0gcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGF0ZV9kZW1hbmRlX291X3JlZXhhbWVuX2Ryb2l0X2luIGluXG4gIGxldCBwYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm9mZXNzaW9ubmVsXzogUGFpZW1lbnRMb2dlbWVudERpc3RpbmN0UHJvZmVzc2lvbm5lbC50ID0gcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4ucGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluY3RfcHJvZmVzc2lvbm5lbF9pbiBpblxuICBsZXQgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2Jhc2VfOiBtb25leSA9IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19iYXNlX2luIGluXG4gIGxldCByZXNzb3VyY2VzX3BlcnNvbm5lc192aXZhbnRfaGFiaXR1ZWxsZW1lbnRfZm95ZXJfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgIFwicmVzc291cmNlc19wZXJzb25uZXNfdml2YW50X2hhYml0dWVsbGVtZW50X2ZveWVyXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTUzNTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01MzU7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmlzZSBlbiBjb21wdGUgZGVzIHJlc3NvdXJjZXMgcG91ciBsZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTI5OyBlbmRfY29sdW1uPTYyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODIyLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMSA6IE1vZGFsaXTDqXMgZ8OpbsOpcmFsZXMgZGUgbCdhcHByw6ljaWF0aW9uIGRlcyByZXNzb3VyY2VzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQ29uZGl0aW9ucyByZWxhdGl2ZXMgYXV4IHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19yZWR1Y2VcbiAgICAgICAgICAgICAgKGZ1biAoc3VtMV86IG1vbmV5KSAoc3VtMl86IG1vbmV5KSAtPiBvX2FkZF9tb25fbW9uIHN1bTFfIHN1bTJfKVxuICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKVxuICAgICAgICAgICAgICAob19tYXBcbiAgICAgICAgICAgICAgICAgKGZ1biAocGVyc29ubmVfOiBQZXJzb25uZVZpdmFudEhhYml0dWVsbGVtZW50QXVGb3llci50KSAtPlxuICAgICAgICAgICAgICAgICAgICBwZXJzb25uZV8uUGVyc29ubmVWaXZhbnRIYWJpdHVlbGxlbWVudEF1Rm95ZXIucmVzc291cmNlcylcbiAgICAgICAgICAgICAgICAgcGVyc29ubmVzX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9mb3llcl8pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01MzU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTM1OyBlbmRfY29sdW1uPTU5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJpc2UgZW4gY29tcHRlIGRlcyByZXNzb3VyY2VzIHBvdXIgbGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBhYmF0dGVtZW50X3JfODIyXzEwXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJSZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7IFwiYWJhdHRlbWVudF9yXzgyMl8xMFwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTU0MDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01NDA7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmlzZSBlbiBjb21wdGUgZGVzIHJlc3NvdXJjZXMgcG91ciBsZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT01MjQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NTI0OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODIyLTEwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDIgOiBQcmluY2lwZXMgZGUgbmV1dHJhbGlzYXRpb24gZXQgZCdhYmF0dGVtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQ29uZGl0aW9ucyByZWxhdGl2ZXMgYXV4IHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgKGxldCBhYmF0dGVtZW50XyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgIChvX2VxIChvX2xlbmd0aCBwZXJzb25uZXNfYV9jaGFyZ2VfKSAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgIFwiMFwiKSkgdGhlbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAob19sdGVfaW50X2ludCAob19sZW5ndGggcGVyc29ubmVzX2FfY2hhcmdlXylcbiAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI5MDEwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTM1MDAwXCIpKSlcbiAgICAgICAgICAgIGluXG4gICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9cbiAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuQ2VsaWJhdGFpcmUgXyAtPiBhYmF0dGVtZW50X1xuICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLk1hcmllcyBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpXG4gICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuUGFjc2VzIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIilcbiAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5Db25jdWJpbnMgXyAtPiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKVxuICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNlbGliYXRhaXJlU2VwYXJlRGVGYWl0IF8gLT4gYWJhdHRlbWVudF9cbiAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5Db25jdWJpbmFnZURvbnRTZXBhcmVEZUZhaXQgXyAtPlxuICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01NDA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTQwOyBlbmRfY29sdW1uPTMwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJpc2UgZW4gY29tcHRlIGRlcyByZXNzb3VyY2VzIHBvdXIgbGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X2ZvcmZhaXRhaXJlX3JfODIyXzdfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjsgXCJtb250YW50X2ZvcmZhaXRhaXJlX3JfODIyXzdcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01Mzk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTM5OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJpc2UgZW4gY29tcHRlIGRlcyByZXNzb3VyY2VzIHBvdXIgbGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgYXBwbGljYWJsZXMgYXV4IHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI5NTAwXCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTUzOTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01Mzk7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmlzZSBlbiBjb21wdGUgZGVzIHJlc3NvdXJjZXMgcG91ciBsZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfZm9yZmFpdGFpcmVfcl84MjJfOF86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcIm1vbnRhbnRfZm9yZmFpdGFpcmVfcl84MjJfOFwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTUzNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01Mzc7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmlzZSBlbiBjb21wdGUgZGVzIHJlc3NvdXJjZXMgcG91ciBsZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MjM7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBhcHBsaWNhYmxlcyBhdXggcmVzc291cmNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI1ODkwMFwiKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01Mzc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTM3OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJpc2UgZW4gY29tcHRlIGRlcyByZXNzb3VyY2VzIHBvdXIgbGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJSZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgIFwiYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDE4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQxODsgZW5kX2NvbHVtbj02NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMi03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDIgOiBQcmluY2lwZXMgZGUgbmV1dHJhbGlzYXRpb24gZXQgZCdhYmF0dGVtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQ29uZGl0aW9ucyByZWxhdGl2ZXMgYXV4IHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDE4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQxODsgZW5kX2NvbHVtbj02NTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMi03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDIgOiBQcmluY2lwZXMgZGUgbmV1dHJhbGlzYXRpb24gZXQgZCdhYmF0dGVtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQ29uZGl0aW9ucyByZWxhdGl2ZXMgYXV4IHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfZGVtYW5kZV9vdV9yZWV4YW1lbl9kcm9pdF8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00MTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDE4OyBlbmRfY29sdW1uPTY1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODIyLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IFByaW5jaXBlcyBkZSBuZXV0cmFsaXNhdGlvbiBldCBkJ2FiYXR0ZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBDb25kaXRpb25zIHJlbGF0aXZlcyBhdXggcmVzc291cmNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IHJlc3VsdF86IEJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXMudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJSZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICBcImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcIjtcbiAgICAgIFwiQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgXCJiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzXCI7XG4gICAgICBcIkJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIl1cbiAgICBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzKVxuICAgICh7QmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9kYXRlX2NvdXJhbnRlX30pKSkgaW5cbiAgbGV0IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X21vbnRhbnRfOiBtb25leSA9IHJlc3VsdF8uQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcy5tb250YW50IGluXG4gIGxldCByZXNzb3VyY2VzX3ByaXNlc19lbl9jb21wdGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjsgXCJyZXNzb3VyY2VzX3ByaXNlc19lbl9jb21wdGVcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01NDY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NTQ2OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJpc2UgZW4gY29tcHRlIGRlcyByZXNzb3VyY2VzIHBvdXIgbGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTQ2OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTQ2OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmlzZSBlbiBjb21wdGUgZGVzIHJlc3NvdXJjZXMgcG91ciBsZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODU0OyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT04NTc7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMi0yMFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDMgOiBNb250YW50IGZvcmZhaXRhaXJlIGRlIHJlc3NvdXJjZXMgYXBwbGljYWJsZSBhdXggw6l0dWRpYW50c1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQ29uZGl0aW9ucyByZWxhdGl2ZXMgYXV4IHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBtb2RlX29jY3VwYXRpb25fXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0aW9uQWNjZXNzaW9uIF8gLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBtb2RlX29jY3VwYXRpb25fXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlJlc2lkZW50TG9nZW1lbnRGb3llciBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0aW9uQWNjZXNzaW9uIF8gLT4gZmFsc2UpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmQgY29uZGl0aW9uX2FnZV9ib3Vyc2VfZW5zZWlnbmVtZW50X3N1cGVyaWV1cl9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGVtYW5kZXVyX3BvdXJzdWl0X2Rlc19ldHVkZXNfKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjQ7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjItMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiAxIDogTW9kYWxpdMOpcyBnw6luw6lyYWxlcyBkZSBsJ2FwcHLDqWNpYXRpb24gZGVzIHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBDb25kaXRpb25zIHJlbGF0aXZlcyBhdXggcmVzc291cmNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIHJlc3NvdXJjZXNfZGVtYW5kZXVyXyByZXNzb3VyY2VzX2NvbmpvaW50XylcbiAgICAgICAgICAgICAgcmVzc291cmNlc19wZXJzb25uZXNfdml2YW50X2hhYml0dWVsbGVtZW50X2ZveWVyXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NTQ2OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTU0NjsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByaXNlIGVuIGNvbXB0ZSBkZXMgcmVzc291cmNlcyBwb3VyIGxlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgYWJhdHRlbWVudF9yXzgyMl84XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJSZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7IFwiYWJhdHRlbWVudF9yXzgyMl84XCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTM2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTUzNjsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByaXNlIGVuIGNvbXB0ZSBkZXMgcmVzc291cmNlcyBwb3VyIGxlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ2Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NjI7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjItOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiAyIDogUHJpbmNpcGVzIGRlIG5ldXRyYWxpc2F0aW9uIGV0IGQnYWJhdHRlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IENvbmRpdGlvbnMgcmVsYXRpdmVzIGF1eCByZXNzb3VyY2VzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG1hdGNoIHBhaWVtZW50X2xvZ2VtZW50X2Rpc3RpbmN0X3Byb2Zlc3Npb25uZWxfXG4gICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICB8IFBhaWVtZW50TG9nZW1lbnREaXN0aW5jdFByb2Zlc3Npb25uZWwuT3VpQXZlY0xveWVyT3VDaGFyZ2VzIGxveWVyX291X2NoYXJnZXNfIC0+XG4gICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9yXzgyMl84X1xuICAgICAgICAgICAgfCBQYWllbWVudExvZ2VtZW50RGlzdGluY3RQcm9mZXNzaW9ubmVsLk5vbiBfIC0+XG4gICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTUzNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01MzY7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmlzZSBlbiBjb21wdGUgZGVzIHJlc3NvdXJjZXMgcG91ciBsZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGFiYXR0ZW1lbnRfcl84MjJfN186IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcImFiYXR0ZW1lbnRfcl84MjJfN1wiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTUzODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01Mzg7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmlzZSBlbiBjb21wdGUgZGVzIHJlc3NvdXJjZXMgcG91ciBsZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00MDk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDA5OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODIyLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IFByaW5jaXBlcyBkZSBuZXV0cmFsaXNhdGlvbiBldCBkJ2FiYXR0ZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBDb25kaXRpb25zIHJlbGF0aXZlcyBhdXggcmVzc291cmNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgKG9fYW5kIGRlbWFuZGV1cl9leGVyY2VfYWN0aXZpdGVfcmVtdW5lcmVlX1xuICAgICAgICAgICAgICAgICAob19hbmQgY29uam9pbnRfZXhlcmNlX2FjdGl2aXRlX3JlbXVuZXJlZV9cbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gcmVzc291cmNlc19kZW1hbmRldXJfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3NvdXJjZXNfY29uam9pbnRfKVxuICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTIuXCIpKSkpKSB0aGVuXG4gICAgICAgICAgICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfcl84MjJfN18gZWxzZSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NTM4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTUzODsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByaXNlIGVuIGNvbXB0ZSBkZXMgcmVzc291cmNlcyBwb3VyIGxlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgXzogdW5pdCA9IGlmIChcbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAob19mb2xkXG4gICAgICAgICAgICAgICAgICAgICAgIChmdW4gKGFjY186IGJvb2wpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChwZXJzb25uZV86IFBlcnNvbm5lVml2YW50SGFiaXR1ZWxsZW1lbnRBdUZveWVyLnQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9fYW5kIGFjY19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGVyc29ubmVfLlBlcnNvbm5lVml2YW50SGFiaXR1ZWxsZW1lbnRBdUZveWVyLmR1cmVlX3Jlc2lkZW5jZV9kdXJhbnRfcGVyaW9kZV9yXzgyMl8zXzFfc3VwZXJpZXVyZV9hXzZfbW9pcykpXG4gICAgICAgICAgICAgICAgICAgICAgIHRydWUgcGVyc29ubmVzX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9mb3llcl8pXG4gICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0Mjsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0MzsgZW5kX2NvbHVtbj03NDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODIyLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiAxIDogTW9kYWxpdMOpcyBnw6luw6lyYWxlcyBkZSBsJ2FwcHLDqWNpYXRpb24gZGVzIHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IENvbmRpdGlvbnMgcmVsYXRpdmVzIGF1eCByZXNzb3VyY2VzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpXG4gICAgICAgICAgICAgICAgICB0aGVuICgpIGVsc2VcbiAgICAgICAgICAgICAgICAgIHJhaXNlIChBc3NlcnRpb25GYWlsZWQge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQyOyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQzOyBlbmRfY29sdW1uPTc0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjItMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDEgOiBNb2RhbGl0w6lzIGfDqW7DqXJhbGVzIGRlIGwnYXBwcsOpY2lhdGlvbiBkZXMgcmVzc291cmNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQ29uZGl0aW9ucyByZWxhdGl2ZXMgYXV4IHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pIGluXG4gIHtSZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnJlc3NvdXJjZXNfcHJpc2VzX2VuX2NvbXB0ZSA9XG4gICAgIHJlc3NvdXJjZXNfcHJpc2VzX2VuX2NvbXB0ZV99XG5cbmxldCBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIChlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luOiBFbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luLnQpIDogRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCA9XG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4uRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCBwcmVzdGF0aW9uX2NvdXJhbnRlXzogRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy50ID0gZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbi5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luLnByZXN0YXRpb25fY291cmFudGVfaW4gaW5cbiAgbGV0IHJlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbi5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luLnJlc2lkZW5jZV9pbiBpblxuICBsZXQgYWdlX2w1MTJfM18yXzogdW5pdCAtPiBkdXJhdGlvbiA9IGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4uRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5hZ2VfbDUxMl8zXzJfaW4gaW5cbiAgbGV0IGFnZV9sNTEyXzNfMl86IGR1cmF0aW9uID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiOyBcIsOiZ2VfbDUxMl8zXzJcIl0gKGVtYmVkX2R1cmF0aW9uKVxuICAgIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ2OyBzdGFydF9jb2x1bW49MjE7IGVuZF9saW5lPTQ2OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT4gYWdlX2w1MTJfM18yXyAoKSl8XSkgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Njsgc3RhcnRfY29sdW1uPTIxOyBlbmRfbGluZT00NjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfSAoXG4gICAgICAgICAgICAgIFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3PDqWN1cml0w6lfc29jaWFsZV9SLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjE7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMTsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSNTEyLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMSA6IENoYW1wIGQnYXBwbGljYXRpb24gLSBHw6luw6lyYWxpdMOpc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIGVuIENvbnNlaWwgZCdFdGF0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGR1cmF0aW9uX29mX251bWJlcnMgKDIwKSAoMCkgKDApKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00Njsgc3RhcnRfY29sdW1uPTIxOyBlbmRfbGluZT00NjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX0pKSkpIGluXG4gIGxldCBzbWljX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7IFwic21pYy5kYXRlX2NvdXJhbnRlXCJdXG4gICAgICAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTU3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTU3OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT01Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT01NzsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTU3OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfSkpIGluXG4gIGxldCBzbWljX2RvdF9yZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7IFwic21pYy5yw6lzaWRlbmNlXCJdXG4gICAgICAoZW1iZWRfY29sbGVjdGl2aXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NTY7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTU2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTU2OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJlc2lkZW5jZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT01NjsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogU21pYy50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjsgXCJzbWljXCI7IFwiU21pY1wiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiOyBcInNtaWNcIjsgXCJTbWljXCJdIHNtaWMpXG4gICAgKHtTbWljSW4uZGF0ZV9jb3VyYW50ZV9pbiA9IHNtaWNfZG90X2RhdGVfY291cmFudGVfO1xuICAgICAgICBTbWljSW4ucmVzaWRlbmNlX2luID0gc21pY19kb3RfcmVzaWRlbmNlX30pKSkgaW5cbiAgbGV0IHNtaWNfZG90X2JydXRfaG9yYWlyZV86IG1vbmV5ID0gcmVzdWx0Xy5TbWljLmJydXRfaG9yYWlyZSBpblxuICBsZXQgcmVnaW1lX291dHJlX21lcl9sNzUxXzFfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiOyBcInLDqWdpbWVfb3V0cmVfbWVyX2w3NTFfMVwiXVxuICAgIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01MTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT01MTsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01MTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTUxOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19IChcbiAgICAgICAgICAgICAgICAgW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvc8OpY3VyaXTDqV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEzMjsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNzUxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEfDqW7DqXJhbGl0w6lzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSA1IDogRGlzcG9zaXRpb25zIHBhcnRpY3VsacOocmVzIMOgIGxhIEd1YWRlbG91cGUsIMOgIGxhIEd1eWFuZSwgw6AgbGEgTWFydGluaXF1ZSwgw6AgTGEgUsOpdW5pb24sIMOgIFNhaW50LUJhcnRow6lsZW15IGV0IMOgIFNhaW50LU1hcnRpblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNyA6IFLDqWdpbWVzIGRpdmVycyAtIERpc3Bvc2l0aW9ucyBkaXZlcnNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX29yIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1eWFuZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gKCkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTE7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NTE7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NTE7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NTE7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19KSkpKSBpblxuICBsZXQgcGxhZm9uZF9sNTEyXzNfMl86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiOyBcInBsYWZvbmRfbDUxMl8zXzJcIl0gKGVtYmVkX21vbmV5KVxuICAgIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQ0OyBlbmRfY29sdW1uPTI3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQ7IGVuZF9jb2x1bW49Mjc7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX0gKFxuICAgICAgICAgICAgICAgICBbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9zw6ljdXJpdMOpX3NvY2lhbGVfUi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYyOyBzdGFydF9jb2x1bW49MTg7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjc1NS0wLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSA1IDogRMOpcGFydGVtZW50cyBkJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNyA6IFLDqWdpbWVzIGRpdmVycyAtIERpc3Bvc2l0aW9ucyBkaXZlcnNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgZW4gQ29uc2VpbCBkJ0V0YXRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICByZWdpbWVfb3V0cmVfbWVyX2w3NTFfMV8pKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBzbWljX2RvdF9icnV0X2hvcmFpcmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC41NVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxNjkuXCIpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9zw6ljdXJpdMOpX3NvY2lhbGVfUi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMTsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjUxMi0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IENoYW1wIGQnYXBwbGljYXRpb24uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMSA6IENoYW1wIGQnYXBwbGljYXRpb24gLSBHw6luw6lyYWxpdMOpc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgZW4gQ29uc2VpbCBkJ0V0YXRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IHNtaWNfZG90X2JydXRfaG9yYWlyZV9cbiAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC41NVwiKSkgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTY5LlwiKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00NDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00NDsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25zX2hvcnNfYWdlXzogRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQgLT4gYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjsgXCJjb25kaXRpb25zX2hvcnNfw6JnZVwiXVxuICAgICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGVuZmFudF86IEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy50KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDk7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NDk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00OTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9zw6ljdXJpdMOpX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Nzg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODI7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTEyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMSA6IENoYW1wIGQnYXBwbGljYXRpb24gLSBHw6luw6lyYWxpdMOpc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLm9ibGlnYXRpb25fc2NvbGFpcmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXZhbnQgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLlBlbmRhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXByZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMub2JsaWdhdGlvbl9zY29sYWlyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BdmFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5QZW5kYW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXByZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLm9ibGlnYXRpb25fc2NvbGFpcmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXZhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuUGVuZGFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BcHJlcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMucmVtdW5lcmF0aW9uX21lbnN1ZWxsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFmb25kX2w1MTJfM18yXykpKSkgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00OTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT00OTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT00OTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDk7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NDk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19KSkpKSBpblxuICBsZXQgZHJvaXRfb3V2ZXJ0XzogRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQgLT4gYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjsgXCJkcm9pdF9vdXZlcnRcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoZW5mYW50XzogRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Nzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT00NzsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDc7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ3OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDc7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDc7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDc7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NzsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvc8OpY3VyaXTDqV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02Nzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzI7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDUxMi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMSA6IENoYW1wIGQnYXBwbGljYXRpb24gLSBHw6luw6lyYWxpdMOpc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5vYmxpZ2F0aW9uX3Njb2xhaXJlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXZhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5QZW5kYW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXByZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMucmVtdW5lcmF0aW9uX21lbnN1ZWxsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9sNTEyXzNfMl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobGV0IHJlc3VsdF8gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIlbDqXJpZmljYXRpb27DgmdlU3Vww6lyaWV1csOAXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGlyZWN0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiVsOpcmlmaWNhdGlvbsOCZ2VTdXDDqXJpZXVyw4BcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIjsgXCJpbnB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX3ZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe1ZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi5kYXRlX25haXNzYW5jZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmRhdGVfZGVfbmFpc3NhbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3PDqWN1cml0w6lfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTcwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTcwOyBlbmRfY29sdW1uPTYyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgTDUxMi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMSA6IENoYW1wIGQnYXBwbGljYXRpb24gLSBHw6luw6lyYWxpdMOpc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3PDqWN1cml0w6lfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTM3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTcxOyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIEw1MTItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAxIDogQ2hhbXAgZCdhcHBsaWNhdGlvbiAtIEfDqW7DqXJhbGl0w6lzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi5hbm5lZXNfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IGFnZV9sNTEyXzNfMl9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3PDqWN1cml0w6lfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTcyOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIEw1MTItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAxIDogQ2hhbXAgZCdhcHBsaWNhdGlvbiAtIEfDqW7DqXJhbGl0w6lzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19KSkpfSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCByZXN1bHRfIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHtWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBLmVzdF9zdXBlcmlldXIgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS5lc3Rfc3VwZXJpZXVyKX0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIlbDqXJpZmljYXRpb27DgmdlU3Vww6lyaWV1csOAXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJWw6lyaWZpY2F0aW9uw4JnZVN1cMOpcmlldXLDgFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGlyZWN0XCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF92ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3PDqWN1cml0w6lfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzI7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTEyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDEgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uIC0gR8OpbsOpcmFsaXTDqXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkgdGhlbiByZXN1bHRfIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0XykpKSkpKSkuVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS5lc3Rfc3VwZXJpZXVyKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvc8OpY3VyaXTDqV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NzsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDUxMi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAxIDogQ2hhbXAgZCdhcHBsaWNhdGlvbiAtIEfDqW7DqXJhbGl0w6lzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMub2JsaWdhdGlvbl9zY29sYWlyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXZhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuUGVuZGFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXByZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLm9ibGlnYXRpb25fc2NvbGFpcmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkF2YW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5QZW5kYW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkFwcmVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ3OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDc7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX0gdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDc7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NDc7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ3OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTQ3OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfSkpKSkgaW5cbiAge0VsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzLmFnZV9sNTEyXzNfMiA9IGFnZV9sNTEyXzNfMl87XG4gICAgIEVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzLmRyb2l0X291dmVydCA9IGRyb2l0X291dmVydF87XG4gICAgIEVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzLmNvbmRpdGlvbnNfaG9yc19hZ2UgPVxuICAgICAgIGNvbmRpdGlvbnNfaG9yc19hZ2VfO1xuICAgICBFbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcy5yZWdpbWVfb3V0cmVfbWVyX2w3NTFfMSA9XG4gICAgICAgcmVnaW1lX291dHJlX21lcl9sNzUxXzFffVxuXG5sZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZiAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbjogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnQpIDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZi50ID1cbiAgbGV0IGxveWVyX3ByaW5jaXBhbF86IG1vbmV5ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4ubG95ZXJfcHJpbmNpcGFsX2luIGluXG4gIGxldCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfOiBtb25leSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiBpblxuICBsZXQgYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzXzogYm9vbCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlc19pbiBpblxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlciA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gaW5cbiAgbGV0IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF86IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luIGluXG4gIGxldCB6b25lXzogWm9uZURIYWJpdGF0aW9uLnQgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi56b25lX2luIGluXG4gIGxldCBsb2dlbWVudF9lc3RfY2hhbWJyZV86IGJvb2wgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5sb2dlbWVudF9lc3RfY2hhbWJyZV9pbiBpblxuICBsZXQgYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfOiBib29sID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4uYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfaW4gaW5cbiAgbGV0IHR5cGVfYWlkZV86IFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnR5cGVfYWlkZV9pbiBpblxuICBsZXQgY29sb2NhdGlvbl86IGJvb2wgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5jb2xvY2F0aW9uX2luIGluXG4gIGxldCByZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV86IG1vbmV5ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4ucmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfaW4gaW5cbiAgbGV0IGxvZ2VtZW50X21ldWJsZV9kODQyXzJfOiBib29sID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4ubG9nZW1lbnRfbWV1YmxlX2Q4NDJfMl9pbiBpblxuICBsZXQgcmVzaWRlbmNlXzogQ29sbGVjdGl2aXRlLnQgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5yZXNpZGVuY2VfaW4gaW5cbiAgbGV0IGNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80XzogQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQudCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80X2luIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X2xveWVyX3ByaW5jaXBhbF9iYXNlXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9jYXRpZi5sb3llcl9wcmluY2lwYWxfYmFzZVwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9ODgwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg4MDsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT04ODA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODgwOyBlbmRfY29sdW1uPTQ4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBsb3llcl9wcmluY2lwYWxfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTg4MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04ODA7IGVuZF9jb2x1bW49NDg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3Jlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc186IG1vbmV5ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvY2F0aWYucmVzc291cmNlc19tw6luYWdlX2Fycm9uZGllc1wiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9ODgyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg4MjsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT04ODI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODgyOyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTg4Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04ODI7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X2JlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlc186IGJvb2wgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9jYXRpZi5iw6luw6lmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXDDqXNcIl1cbiAgICAgIChlbWJlZF9ib29sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTg4NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04ODQ7IGVuZF9jb2x1bW49Nzg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODg0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg4NDsgZW5kX2NvbHVtbj03ODtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT04ODQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODg0OyBlbmRfY29sdW1uPTc4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7IFwiY2FsY3VsX2FwbF9sb2NhdGlmLmRhdGVfY291cmFudGVcIl1cbiAgICAgIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTg4Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04ODc7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODg3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg4NzsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9ODg3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg4NzsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9jYXRpZl9kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV86IGludGVnZXIgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9jYXRpZi5ub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZVwiXSAoZW1iZWRfaW50ZWdlcilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT04ODk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODg5OyBlbmRfY29sdW1uPTU4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTg4OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04ODk7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTg4OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04ODk7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF86IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvY2F0aWYuc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXCJdXG4gICAgICAoZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2wpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9ODkxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg5MTsgZW5kX2NvbHVtbj02MztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT04OTE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODkxOyBlbmRfY29sdW1uPTYzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTg5MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04OTE7IGVuZF9jb2x1bW49NjM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3pvbmVfOiBab25lREhhYml0YXRpb24udCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7IFwiY2FsY3VsX2FwbF9sb2NhdGlmLnpvbmVcIl1cbiAgICAgIChlbWJlZF96b25lX2RfaGFiaXRhdGlvbilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT04OTM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODkzOyBlbmRfY29sdW1uPTM3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTg5Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04OTM7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHpvbmVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTg5Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04OTM7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X2xvZ2VtZW50X2VzdF9jaGFtYnJlXzogYm9vbCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2NhdGlmLmxvZ2VtZW50X2VzdF9jaGFtYnJlXCJdIChlbWJlZF9ib29sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTg5NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04OTU7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODk1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg5NTsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbG9nZW1lbnRfZXN0X2NoYW1icmVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTg5NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04OTU7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X2FnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzXzogYm9vbCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2NhdGlmLsOiZ8OpZXNfb3VfaGFuZGljYXBfYWR1bHRlc19ow6liZXJnw6llc19vbsOpcmV1eF9wYXJ0aWN1bGllcnNcIl1cbiAgICAgIChlbWJlZF9ib29sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTg5ODsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTg5OTsgZW5kX2NvbHVtbj02MztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT04OTg7IHN0YXJ0X2NvbHVtbj01OyBlbmRfbGluZT04OTk7IGVuZF9jb2x1bW49NjM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBhZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVyc18pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9ODk4OyBzdGFydF9jb2x1bW49NTsgZW5kX2xpbmU9ODk5OyBlbmRfY29sdW1uPTYzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF90eXBlX2FpZGVfOiBUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiOyBcImNhbGN1bF9hcGxfbG9jYXRpZi50eXBlX2FpZGVcIl1cbiAgICAgIChlbWJlZF90eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50KVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTkwMjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05MDI7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTAyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTkwMjsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHlwZV9haWRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05MDI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTAyOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9jb2xvY2F0aW9uXzogYm9vbCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7IFwiY2FsY3VsX2FwbF9sb2NhdGlmLmNvbG9jYXRpb25cIl1cbiAgICAgIChlbWJlZF9ib29sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTkwNDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05MDQ7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTA0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTkwNDsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gY29sb2NhdGlvbl8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTA0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTkwNDsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfcmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfOiBtb25leSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2NhdGlmLnLDqWR1Y3Rpb25fbG95ZXJfc29saWRhcml0w6lcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTkwNjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05MDY7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTA2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTkwNjsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTkwNjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05MDY7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X2xvZ2VtZW50X21ldWJsZV9kODQyXzJfOiBib29sID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvY2F0aWYubG9nZW1lbnRfbWV1YmzDqV9kODQyXzJcIl0gKGVtYmVkX2Jvb2wpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTA4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTkwODsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT05MDg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTA4OyBlbmRfY29sdW1uPTU1O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBsb2dlbWVudF9tZXVibGVfZDg0Ml8yXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05MDg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTA4OyBlbmRfY29sdW1uPTU1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9yZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7IFwiY2FsY3VsX2FwbF9sb2NhdGlmLnLDqXNpZGVuY2VcIl1cbiAgICAgIChlbWJlZF9jb2xsZWN0aXZpdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTEwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTkxMDsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT05MTA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTEwOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByZXNpZGVuY2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTkxMDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05MTA7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCByZXN1bHRfOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjsgXCJjYWxjdWxfYXBsX2xvY2F0aWZcIjtcbiAgICAgIFwiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7IFwiY2FsY3VsX2FwbF9sb2NhdGlmXCI7XG4gICAgICBcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiXVxuICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZilcbiAgICAoe0NhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ubG95ZXJfcHJpbmNpcGFsX2Jhc2VfaW4gPVxuICAgICAgICBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X2xveWVyX3ByaW5jaXBhbF9iYXNlXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5iZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X2RhdGVfY291cmFudGVfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9jYXRpZl9kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uem9uZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF96b25lXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5sb2dlbWVudF9lc3RfY2hhbWJyZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9sb2dlbWVudF9lc3RfY2hhbWJyZV87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnR5cGVfYWlkZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF90eXBlX2FpZGVfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmNvbG9jYXRpb25faW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfY29sb2NhdGlvbl87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ucmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfcmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmxvZ2VtZW50X21ldWJsZV9kODQyXzJfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfbG9nZW1lbnRfbWV1YmxlX2Q4NDJfMl87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ucmVzaWRlbmNlX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3Jlc2lkZW5jZV99KSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X21vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODIzXzE2XzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODIzXzE2IGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3BsYWZvbmRfbG95ZXJfZDgyM18xNl8yXzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnBsYWZvbmRfbG95ZXJfZDgyM18xNl8yIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3BhcnRpY2lwYXRpb25fbWluaW1hbGVfOiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGFydGljaXBhdGlvbl9taW5pbWFsZSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF90YXV4X2NvbXBvc2l0aW9uX2ZhbWlsaWFsZV86IGRlY2ltYWwgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnRhdXhfY29tcG9zaXRpb25fZmFtaWxpYWxlIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3BhcnRpY2lwYXRpb25fcGVyc29ubmVsbGVfOiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGFydGljaXBhdGlvbl9wZXJzb25uZWxsZSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9haWRlX2ZpbmFsZV9mb3JtdWxlXzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLmFpZGVfZmluYWxlX2Zvcm11bGUgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50X21pbmltYWxfOiBcbiAgICBtb25leSAtPiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiOyBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTg3Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT04NzY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTg3Njsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODc2OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mjg5OyBzdGFydF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Mjg5OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IFNlY3RldXIgbG9jYXRpZiBvcmRpbmFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDaGFuZ2VtZW50TG9nZW1lbnREODQyNC5DaGFuZ2VtZW50IGluZm9zXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb24gbG95ZXJfcHJpbmNpcGFsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGluZm9zXy5JbmZvc0NoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LmFuY2llbl9sb3llcl9wcmluY2lwYWwpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IENoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LlBhc0RlQ2hhbmdlbWVudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSAoZnVuIChfOiB1bml0KSAtPiBhaWRlX2ZpbmFsZV8pKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MTQ7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MTQ7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsXCJdXG4gICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21vbnRhbnRfbWluaW1hbFwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21vbnRhbnRfbWluaW1hbFwiXVxuICAgICAgICAgICAgICAgICBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3RyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsXylcbiAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTg3Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT04NzY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTg3Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT04NzY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGFpZGVfZmluYWxlX2Zvcm11bGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjsgXCJhaWRlX2ZpbmFsZV9mb3JtdWxlXCJdIChlbWJlZF9tb25leSlcbiAgICAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9ODc0OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTg3NDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTg3NDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTg3NDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQyODE7IHN0YXJ0X2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MjgxOyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2VjdGV1ciBsb2NhdGlmIG9yZGluYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChtYXRjaCBjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF9cbiAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgIHwgQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQuQ2hhbmdlbWVudCBpbmZvc18gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfbW9uX21vbiBsb3llcl9wcmluY2lwYWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGluZm9zXy5JbmZvc0NoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LmFuY2llbl9sb3llcl9wcmluY2lwYWwpKVxuICAgICAgICAgICAgICAgICAgICAgfCBDaGFuZ2VtZW50TG9nZW1lbnREODQyNC5QYXNEZUNoYW5nZW1lbnQgXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBtYXRjaCBjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF9cbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IENoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LkNoYW5nZW1lbnQgaW5mb3NfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiBsb3llcl9wcmluY2lwYWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGluZm9zXy5JbmZvc0NoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LmFuY2llbl9sb3llcl9wcmluY2lwYWwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5mb3NfLkluZm9zQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQuYW5jaWVubmVfYWxsb2NhdGlvbl9sb2dlbWVudCkpKVxuICAgICAgICAgICAgICAgICAgICB8IENoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LlBhc0RlQ2hhbmdlbWVudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTkxMzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05MTM7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfYWlkZV9maW5hbGVfZm9ybXVsZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTg3NDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT04NzQ7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAge0NhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYuYWlkZV9maW5hbGVfZm9ybXVsZSA9IGFpZGVfZmluYWxlX2Zvcm11bGVfO1xuICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVffVxuXG5sZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIgKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLnQpIDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIudCA9XG4gIGxldCB0eXBlX2xvZ2VtZW50X2ZveWVyXzogVHlwZUxvZ2VtZW50Rm95ZXIudCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4udHlwZV9sb2dlbWVudF9mb3llcl9pbiBpblxuICBsZXQgZGF0ZV9jb252ZW50aW9ubmVtZW50XzogZGF0ZSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4uZGF0ZV9jb252ZW50aW9ubmVtZW50X2luIGluXG4gIGxldCByZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4ucmVzaWRlbmNlX2luIGluXG4gIGxldCByZWRldmFuY2VfOiBtb25leSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4ucmVkZXZhbmNlX2luIGluXG4gIGxldCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfOiBtb25leSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luIGluXG4gIGxldCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlciA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiBpblxuICBsZXQgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXzogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiBpblxuICBsZXQgem9uZV86IFpvbmVESGFiaXRhdGlvbi50ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi56b25lX2luIGluXG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4uZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfOiBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIudCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4uY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfaW4gaW5cbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydHNfZG90X2NvbmRpdGlvbl8yX2R1XzgzMl8yNV86IGJvb2wgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfbm9tYnJlX3BhcnRzLmNvbmRpdGlvbl8yX2R1XzgzMl8yNVwiXSAoZW1iZWRfYm9vbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ4NDE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDg0MTsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiOyBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00ODQxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4NDE7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00ODQxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4NDE7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlciA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF9ub21icmVfcGFydHMubm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VcIl0gKGVtYmVkX2ludGVnZXIpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00ODM2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4MzY7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDgzNjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00ODM2OyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ4MzY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDgzNjsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiOyBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydHNfZG90X3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF86IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgIFwiY2FsY3VsX25vbWJyZV9wYXJ0cy5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxcIl1cbiAgICAgIChlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ4Mzg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDgzODsgZW5kX2NvbHVtbj02NDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiOyBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00ODM4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4Mzg7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00ODM4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4Mzg7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9yZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcImNhbGN1bF9ub21icmVfcGFydHMucsOpc2lkZW5jZVwiXVxuICAgICAgKGVtYmVkX2NvbGxlY3Rpdml0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ4NDA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDg0MDsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiOyBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00ODQwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4NDA7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHJlc2lkZW5jZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00ODQwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4NDA7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlXzogXG4gICAgdW5pdCAtPiBib29sID0gZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX25vbWJyZV9wYXJ0cy5saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX8OgX2NoYXJnZVwiXVxuICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpIChyYWlzZSBFbXB0eUVycm9yKSkgaW5cbiAgbGV0IHJlc3VsdF86IENhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJjYWxjdWxfbm9tYnJlX3BhcnRzXCI7XG4gICAgICBcIkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyXCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcImNhbGN1bF9ub21icmVfcGFydHNcIjtcbiAgICAgIFwiQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJcIl0gY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyKVxuICAgICh7Q2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJJbi5jb25kaXRpb25fMl9kdV84MzJfMjVfaW4gPVxuICAgICAgICBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9jb25kaXRpb25fMl9kdV84MzJfMjVfO1xuICAgICAgICBDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llckluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICAgIGNhbGN1bF9ub21icmVfcGFydHNfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfO1xuICAgICAgICBDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llckluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiA9XG4gICAgICAgICAgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXztcbiAgICAgICAgQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJJbi5yZXNpZGVuY2VfaW4gPVxuICAgICAgICAgIGNhbGN1bF9ub21icmVfcGFydHNfZG90X3Jlc2lkZW5jZV87XG4gICAgICAgIENhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4ubGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3RfbGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV99KSkpIGluXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzI1XzogZGVjaW1hbCA9IHJlc3VsdF8uQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXIubl9ub21icmVfcGFydHNfZDgzMl8yNSBpblxuICBsZXQgY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjb250cmlidXRpb25zX3NvY2lhbGVzLmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA4MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDgxOyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDgxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwODE7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDgxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwODE7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJjb250cmlidXRpb25zX3NvY2lhbGVzXCI7XG4gICAgICBcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJjb250cmlidXRpb25zX3NvY2lhbGVzXCI7XG4gICAgICBcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXVxuICAgIGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQpXG4gICAgKHtDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfZGF0ZV9jb3VyYW50ZV99KSkpIGluXG4gIGxldCBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9tb250YW50XzogbW9uZXkgLT4gbW9uZXkgPSByZXN1bHRfLkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5tb250YW50IGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF90eXBlX2xvZ2VtZW50X2ZveWVyXzogVHlwZUxvZ2VtZW50Rm95ZXIudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXIudHlwZV9sb2dlbWVudF9mb3llclwiXVxuICAgICAgKGVtYmVkX3R5cGVfbG9nZW1lbnRfZm95ZXIpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDY1OyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDY1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNjU7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0eXBlX2xvZ2VtZW50X2ZveWVyXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDY1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNjU7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfZGF0ZV9jb252ZW50aW9ubmVtZW50XzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXIuZGF0ZV9jb252ZW50aW9ubmVtZW50XCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwNjc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTA2NzsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDY3OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb252ZW50aW9ubmVtZW50XykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDY3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNjc7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLnJlc3NvdXJjZXNfbcOpbmFnZV9hcnJvbmRpZXNcIl1cbiAgICAgIChlbWJlZF9tb25leSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDcxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNzE7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNzE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTA3MTsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc18pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA3MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDcxOyBlbmRfY29sdW1uPTY3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfOiBpbnRlZ2VyID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci5ub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZVwiXVxuICAgICAgKGVtYmVkX2ludGVnZXIpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA3Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDczOyBlbmRfY29sdW1uPTY1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDczOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNzM7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDczOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNzM7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3Rfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXzogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbFwiXVxuICAgICAgKGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwNzU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTA3NTsgZW5kX2NvbHVtbj03MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA3NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDc1OyBlbmRfY29sdW1uPTcwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDc1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNzU7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3Rfem9uZV86IFpvbmVESGFiaXRhdGlvbi50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7IFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci56b25lXCJdXG4gICAgICAoZW1iZWRfem9uZV9kX2hhYml0YXRpb24pXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA3Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDc3OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDc3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNzc7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB6b25lXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDc3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNzc7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA3OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDc5OyBlbmRfY29sdW1uPTUzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDc5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNzk7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDc5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNzk7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfcmVkZXZhbmNlXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLnJlZGV2YW5jZVwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDY5OyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDY5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNjk7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByZWRldmFuY2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwNjk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTA2OTsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9yZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXIucsOpc2lkZW5jZVwiXSAoZW1iZWRfY29sbGVjdGl2aXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwNzg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTA3ODsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA3ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDc4OyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmVzaWRlbmNlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDc4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNzg7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfY29uZGl0aW9uXzJfZHVfODMyXzI1XzogdW5pdCAtPiBib29sID0gXG4gICAgZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci5jb25kaXRpb25fMl9kdV84MzJfMjVcIl0gKGVtYmVkX2Jvb2wpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00ODExOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4MTE7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDgxMTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00ODExOyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlXzogXG4gICAgdW5pdCAtPiBib29sID0gZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci5saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX8OgX2NoYXJnZVwiXVxuICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpXG4gICAgICAgICAgICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01NTk5OyBzdGFydF9jb2x1bW49OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTU5OTsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2MS04XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9uIHBhcnRpY3VsacOocmVzIMOgIGwnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU2MDE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NjA3OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYxLThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb24gcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzI1XzogdW5pdCAtPiBkZWNpbWFsID0gXG4gICAgZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci5uX25vbWJyZV9wYXJ0c19kODMyXzI1XCJdIChlbWJlZF9kZWNpbWFsKVxuICAgICAgKHJhaXNlIEVtcHR5RXJyb3IpKSBpblxuICBsZXQgcmVzdWx0XzogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyXCI7XG4gICAgICBcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7IFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llclwiO1xuICAgICAgXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCJdXG4gICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcilcbiAgICAoe0NhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnR5cGVfbG9nZW1lbnRfZm95ZXJfaW4gPVxuICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF90eXBlX2xvZ2VtZW50X2ZveWVyXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4uZGF0ZV9jb252ZW50aW9ubmVtZW50X2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9kYXRlX2NvbnZlbnRpb25uZW1lbnRfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X3Jlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc187XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnpvbmVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X3pvbmVfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9kYXRlX2NvdXJhbnRlXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ucmVkZXZhbmNlX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9yZWRldmFuY2VfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5yZXNpZGVuY2VfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X3Jlc2lkZW5jZV87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLmNvbmRpdGlvbl8yX2R1XzgzMl8yNV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfY29uZGl0aW9uXzJfZHVfODMyXzI1XztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ubGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfbGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X25fbm9tYnJlX3BhcnRzX2Q4MzJfMjVffSkpKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8yNV86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8yNSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfY29lZmZpY2llbnRfcl9kODMyXzI1XzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5jb2VmZmljaWVudF9yX2Q4MzJfMjUgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X25fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfOiBkZWNpbWFsID0gcmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIubl9ub21icmVfcGFydHNfZDgzMl8yNSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGVfOiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmVxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9wbGFmb25kX2VxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlXzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5wbGFmb25kX2VxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2NvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1X3NldWlsXzogZGVjaW1hbCA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1IGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9haWRlX2ZpbmFsZV9mb3JtdWxlXzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5haWRlX2ZpbmFsZV9mb3JtdWxlIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF90cmFpdGVtZW50X2FpZGVfZmluYWxlX21vbnRhbnRfbWluaW1hbF86IFxuICAgIG1vbmV5IC0+IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIudHJhaXRlbWVudF9haWRlX2ZpbmFsZSBpblxuICBsZXQgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyZ2VzXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7IFwibXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyZ2VzXCJdXG4gICAgKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDQxOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwNDE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0MTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQxOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDQxOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQxOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0MTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA0MTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDQxOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM1NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMzNjM7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMCAtIEFycsOqdMOpIGR1IDMgamFudmllciAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIwIE5PUiA6IExPR0wxOTM0MDA2QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjgxODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjgyNjsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTc0MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNzUxOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MjE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02Mjk7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMiAtIEFycsOqdMOpIGR1IDIwIGTDqWNlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIyIE5PUiA6IExPR0wyMTM0NDc3QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzQ7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIganVpbGxldCAyMDIyIC0gQXJyw6p0w6kgZHUgMjkganVpbGxldCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgTk9SIDogVFJFTDIyMjA3NDhBIC0gQXJyw6p0w6kgZHUgMTYgYW/Du3QgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciAtIE5PUiA6IFRSRUwyMjIwNzQ0QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQxOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA0MTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDE7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDE7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA0MTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1OTE7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU5MTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb190b3JhdF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MTY4OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MTY4OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgVklJIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb190b3JhdF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwNDE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTA0MTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfbWluaW1hbF9kZXBlbnNlX25ldHRlX2Q4NDJfMTdfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICBcIm1vbnRhbnRfbWluaW1hbF9kw6lwZW5zZV9uZXR0ZV9kODQyXzE3XCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwNDA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTA0MDsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDI4ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00Mjg4OyBlbmRfY29sdW1uPTUxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIFZJSSA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE1MDBcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA0MDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDQwOyBlbmRfY29sdW1uPTQ4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9mb3JmYWl0YWlyZV9kODQyXzE1XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml8xNVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwMzk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTAzOTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDE4NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MTg0OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0MVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIFZJSSA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUwMFwiKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDM5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwMzk7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X21pbmltYWxfYWlkZV9kODQyXzE1XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcIm1vbnRhbnRfbWluaW1hbF9haWRlX2Q4NDJfMTVcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDM4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwMzg7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQxOTY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDE5NjsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBWSUkgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDAwXCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwMzg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTAzODsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGVxdWl2YWxlbmNlX2xveWVyXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcIsOpcXVpdmFsZW5jZV9sb3llclwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDQzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTEwNDM7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0Mzsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDM7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQyMTQ7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQyMTQ7IGVuZF9jb2x1bW49Nzk7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIFZJSSA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5FdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VUyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLlBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuQXV0cmVzUGVyc29ubmVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjg3MDhcIilcbiAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMzU1OVwiKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQzOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA0MzsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDI0OTsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDI1MDsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0M1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgVklJIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfZDg0Ml8xNl9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLlBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5BdXRyZXNQZXJzb25uZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjEzNjJcIilcbiAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzE5NlwiKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQzOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA0MzsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDM7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDM7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDI2Nzsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MjY4OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgVklJIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5QZXJzb25uZXNBZ2Vlc1NlbG9uM0RlRDg0Ml8xNiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5BdXRyZXNQZXJzb25uZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNzYwN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNzM2NVwiKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQyMzE7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQyMzI7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIFZJSSA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5FdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VUyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTUmVoYWJpbGl0ZWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLlBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuQXV0cmVzUGVyc29ubmVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE3NjA3XCIpXG4gICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjczNjVcIikpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0Mzsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDM7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MTY7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MTY7IGVuZF9jb2x1bW49Nzk7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5FdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VUyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLlBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuQXV0cmVzUGVyc29ubmVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjg0MTRcIilcbiAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMzEwMFwiKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQzOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA0MzsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTY1Mzsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTY1NDsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0M1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfZDg0Ml8xNl9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLlBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5BdXRyZXNQZXJzb25uZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjA2NDBcIilcbiAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMjA3M1wiKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQzOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA0MzsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDM7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDM7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTY3Mjsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjczOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5QZXJzb25uZXNBZ2Vlc1NlbG9uM0RlRDg0Ml8xNiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5BdXRyZXNQZXJzb25uZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNzAxMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNjQ0MFwiKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MzQ7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MzU7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5FdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VUyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTUmVoYWJpbGl0ZWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLlBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuQXV0cmVzUGVyc29ubmVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE3MDEyXCIpXG4gICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjY0NDBcIikpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0Mzsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDM7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI2ODk7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI2ODk7IGVuZF9jb2x1bW49Nzk7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2X1xuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTUmVoYWJpbGl0ZWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5QZXJzb25uZXNBZ2Vlc1NlbG9uM0RlRDg0Ml8xNiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkF1dHJlc1BlcnNvbm5lcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4Mzc5XCIpXG4gICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTMwNDVcIikpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0Mzsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDM7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI3MjY7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI3Mjc7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2X1xuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5FdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VU1JlaGFiaWxpdGVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuUGVyc29ubmVzQWdlZXNTZWxvbjNEZUQ4NDJfMTYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkF1dHJlc1BlcnNvbm5lcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMDU1NFwiKVxuICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMxOTM5XCIpKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDM7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDQzOyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0Mzsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA0MzsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNzQ1OyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI3NDY7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0M1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5QZXJzb25uZXNBZ2Vlc1NlbG9uM0RlRDg0Ml8xNiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5BdXRyZXNQZXJzb25uZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNjk0MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNjMyOVwiKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI3MDc7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI3MDg7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2X1xuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5FdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VU1JlaGFiaWxpdGVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5QZXJzb25uZXNBZ2Vlc1NlbG9uM0RlRDg0Ml8xNiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkF1dHJlc1BlcnNvbm5lcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNjk0MVwiKVxuICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI2MzI5XCIpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDQzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTEwNDM7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgIFwiY2FsY3VsX8OpcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZS5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwODI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTA4MjsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA4Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDgyOyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA4Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDgyOyBlbmRfY29sdW1uPTYxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlLnJlc3NvdXJjZXNfbcOpbmFnZV9hcnJvbmRpZXNcIl1cbiAgICAgIChlbWJlZF9tb25leSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ4MzM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDgzMzsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiOyBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00ODMzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4MzM7IGVuZF9jb2x1bW49NzU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc18pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00ODMzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4MzM7IGVuZF9jb2x1bW49NzU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X2NvbmRpdGlvbl8yX2R1XzgzMl8yNV86IGJvb2wgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlLmNvbmRpdGlvbl8yX2R1XzgzMl8yNVwiXVxuICAgICAgKGVtYmVkX2Jvb2wpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00ODMyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4MzI7IGVuZF9jb2x1bW49Njk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDgzMjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00ODMyOyBlbmRfY29sdW1uPTY5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDgzMjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00ODMyOyBlbmRfY29sdW1uPTY5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE1XCI7IFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzI1XzogZGVjaW1hbCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUubl9ub21icmVfcGFydHNfZDgzMl8yNVwiXVxuICAgICAgKGVtYmVkX2RlY2ltYWwpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00ODQzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4NDM7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDg0Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00ODQzOyBlbmRfY29sdW1uPTcwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfbl9ub21icmVfcGFydHNfZDgzMl8yNV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00ODQzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4NDM7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCByZXN1bHRfOiBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGUudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVcIjtcbiAgICAgIFwiQ2FsY3Vsw4lxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZVwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJjYWxjdWxfw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlXCI7XG4gICAgICBcIkNhbGN1bMOJcXVpdmFsZW5jZUxveWVyTWluaW1hbGVcIl0gY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlKVxuICAgICh7Q2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiA9XG4gICAgICAgICAgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfO1xuICAgICAgICBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi5jb25kaXRpb25fMl9kdV84MzJfMjVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfY29uZGl0aW9uXzJfZHVfODMyXzI1XztcbiAgICAgICAgQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4ubl9ub21icmVfcGFydHNfZDgzMl8yNV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzI1X30pKSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfbW9udGFudF86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGUubW9udGFudCBpblxuICBsZXQgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7IFwiY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlXCJdXG4gICAgKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDQyOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTEwNDI7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDgxNDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00ODE0OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2NvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1X3NldWlsXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA0Mjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMDQyOyBlbmRfY29sdW1uPTM5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcIm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc1wiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwNDQ7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTA0NDsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQ0OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA0NDsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDQ7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDQ7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM5Njsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NDAzOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVggOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIG91dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3NjdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDQ7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDQ7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjgyOyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI4OTsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqdWlsbGV0IDIwMjIgLSBBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBOT1IgOiBUUkVMMjIyMDc0OEEgLSBBcnLDqnTDqSBkdSAxNiBhb8O7dCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIC0gTk9SIDogVFJFTDIyMjA3NDRBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3NjdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3NjdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTY5XCIpIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWYgKG9fZ3RfbW9uX21vbiBtb250YW50XyBsaW1pdGVfKSB0aGVuIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0ZV8gZWxzZSBtb250YW50XykpKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDQ7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDQ7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDQ7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA0NDsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE5MDE7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xOTA4OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjkzNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY0MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZiAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0ZV8gZWxzZSBtb250YW50XykpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc4MDsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03ODc7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIyIC0gQXJyw6p0w6kgZHUgMjAgZMOpY2VtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjIgTk9SIDogTE9HTDIxMzQ0NzdBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2NDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2NDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTM2XCIpIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWYgKG9fZ3RfbW9uX21vbiBtb250YW50XyBsaW1pdGVfKSB0aGVuIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0ZV8gZWxzZSBtb250YW50XykpKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDQ7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDQ7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjk3Njsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yOTgzOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2MjVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTMyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2MjVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTMyXCIpIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWYgKG9fZ3RfbW9uX21vbiBtb250YW50XyBsaW1pdGVfKSB0aGVuIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0ZV8gZWxzZSBtb250YW50XykpKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDQ7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDQ7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzUxNDsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNTIxOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMCAtIEFycsOqdMOpIGR1IDMgamFudmllciAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIwIE5PUiA6IExPR0wxOTM0MDA2QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBtb250YW50XyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzYxNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzYxNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MjlcIikgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZiAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pIHRoZW4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0NDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDQ7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQ0OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDQ0OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQxNzE7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQxNzE7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0MFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBWSUkgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTYxMlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTYxMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQ0OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDQ0OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1OTQ7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1OTQ7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0MFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTQyMlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTQyMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQ0OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDQ0OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI2NjQ7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI2NjQ7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0MFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUzOTlcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUzOTlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTIyNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDQ0OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTEwNDQ7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNTg7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDU4OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ4NTM7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00ODUzOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgKG9fbHRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlX1xuICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml8xNV8pIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICBcIjBcIikpIHRoZW4gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlXyBtb250YW50X2ZvcmZhaXRhaXJlX2Q4NDJfMTVfKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT0xMDU4OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTEwNTg7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDU4OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTEwNTg7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBsb3llcl9taW5pbWFsXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcImxveWVyX21pbmltYWxcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0NTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMDQ1OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ4NDU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDg0NTsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfbW9udGFudF8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwNDU7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTA0NTsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGRlcGVuc2VfbmV0dGVfbWluaW1hbGVfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7IFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIl1cbiAgICAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhbGxvY2F0aW9uX21lbnN1ZWxsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMzQ7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDM0OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ5NjU7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00OTY1OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgb19zdWJfbW9uX21vblxuICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIGVxdWl2YWxlbmNlX2xveWVyX1xuICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc18pIGFsbG9jYXRpb25fbWVuc3VlbGxlXykpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT0xMDM0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwMzQ7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDM0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwMzQ7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBhaWRlX2ZpbmFsZV9mb3JtdWxlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcImFpZGVfZmluYWxlX2Zvcm11bGVcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA1NTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMDU1OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ3OTM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDc5MzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAob19zdWJfbW9uX21vblxuICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBlcXVpdmFsZW5jZV9sb3llcl9cbiAgICAgICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzXykgbG95ZXJfbWluaW1hbF8pXG4gICAgICAgICAgICAgIGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwNTU7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTA1NTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGFiYXR0ZW1lbnRfZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJhYmF0dGVtZW50X2TDqXBlbnNlX25ldHRlX21pbmltYWxlXCJdXG4gICAgKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWxsb2NhdGlvbl9tZW5zdWVsbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDM2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAzNjsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00OTc0OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDk3NDsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgIChvX2x0X21vbl9tb24gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIjsgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXSBkZXBlbnNlX25ldHRlX21pbmltYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIjsgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRpb25fbWVuc3VlbGxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICBtb250YW50X21pbmltYWxfZGVwZW5zZV9uZXR0ZV9kODQyXzE3XykgdGhlblxuICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIG1vbnRhbnRfbWluaW1hbF9kZXBlbnNlX25ldHRlX2Q4NDJfMTdfXG4gICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIjsgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXSBkZXBlbnNlX25ldHRlX21pbmltYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIjsgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRpb25fbWVuc3VlbGxlXykpKSkpKSkpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT0xMDM2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwMzY7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDM2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwMzY7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0cmFpdGVtZW50X2FpZGVfZmluYWxlX2RlcGVuc2VfbmV0dGVfbWluaW1hbGVfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWlkZV9maW5hbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDU5OyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA1OTsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00ODY3OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDg2NzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCJdXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCJdXG4gICAgICAgICAgICAgICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZV8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAobGV0IGFiYXR0ZW1lbnRfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiYWJhdHRlbWVudF9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJhYmF0dGVtZW50X2TDqXBlbnNlX25ldHRlX21pbmltYWxlXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiYWJhdHRlbWVudF9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXVxuICAgICAgICAgICAgICAgICAgICBhYmF0dGVtZW50X2RlcGVuc2VfbmV0dGVfbWluaW1hbGVfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJhYmF0dGVtZW50X2TDqXBlbnNlX25ldHRlX21pbmltYWxlXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgIChvX2x0X21vbl9tb24gKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfIGFiYXR0ZW1lbnRfKVxuICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlXyBhYmF0dGVtZW50XykpKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA1OTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT0xMDU5OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA1OTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT0xMDU5OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9yZWRldmFuY2VfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7IFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9yZWRldmFuY2VcIl1cbiAgICAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNjA7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDYwOyBlbmRfY29sdW1uPTE5O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ4ODU7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00ODg1OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2TDqXBlbnNlX25ldHRlX21pbmltYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kZXBlbnNlX25ldHRlX21pbmltYWxlXylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAoIGlmIChvX2d0X21vbl9tb24gYWlkZV9maW5hbGVfIHJlZGV2YW5jZV8pIHRoZW4gcmVkZXZhbmNlX1xuICAgICAgICAgICAgICAgICAgICBlbHNlIGFpZGVfZmluYWxlXykpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTEwNjA7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9MTA2MDsgZW5kX2NvbHVtbj0xOTtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwNjA7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9MTA2MDsgZW5kX2NvbHVtbj0xOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaVwiXSAodW5lbWJlZGRhYmxlKVxuICAgIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2MTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNjE7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDg5OTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ4OTk7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfcmVkZXZhbmNlXCJdXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfcmVkZXZhbmNlXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9yZWRldmFuY2VcIl1cbiAgICAgICAgICAgICAgICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9yZWRldmFuY2VfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX3JlZGV2YW5jZVwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKGxldCBjcmRzXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJtb250YW50XCJdICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJtb250YW50XCI7IFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRcIl0gY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfbW9udGFudF8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJtb250YW50XCI7IFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlX21vaW5zX2NyZHNfYXJyb25kaWVfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAob19yb3VuZF9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfIGNyZHNfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTBcIikpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIGFpZGVfZmluYWxlX21vaW5zX2NyZHNfYXJyb25kaWVfIGNyZHNfKVxuICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBhaWRlX2ZpbmFsZV9tb2luc19jcmRzX2Fycm9uZGllXyBjcmRzXylcbiAgICAgICAgICAgICAgICAgICAgZWxzZSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2MTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT0xMDYxOyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA2MTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT0xMDYxOyBlbmRfY29sdW1uPTQwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50X21pbmltYWxfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2Mjsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNjI7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDkyMDsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ5MjA7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCJdXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaVwiXVxuICAgICAgICAgICAgICAgICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaV8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgKG9fbHRfbW9uX21vbiBhaWRlX2ZpbmFsZV8gbW9udGFudF9taW5pbWFsX2FpZGVfZDg0Ml8xNV8pXG4gICAgICAgICAgICAgICAgICAgIHRoZW4gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikgZWxzZSBhaWRlX2ZpbmFsZV8pKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT0xMDYyOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTEwNjI7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDYyOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTEwNjI7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBfOiB1bml0ID0gaWYgKFxuICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwODY7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDg2OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpIHRoZW5cbiAgICAgICAgICAgICAgICAgICgpIGVsc2VcbiAgICAgICAgICAgICAgICAgIHJhaXNlIChBc3NlcnRpb25GYWlsZWQge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwODY7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDg2OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSBpblxuICB7Q2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlID1cbiAgICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlXztcbiAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuZXF1aXZhbGVuY2VfbG95ZXIgPSBlcXVpdmFsZW5jZV9sb3llcl87XG4gICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlcyA9XG4gICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzXztcbiAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIubG95ZXJfbWluaW1hbCA9IGxveWVyX21pbmltYWxfO1xuICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5haWRlX2ZpbmFsZV9mb3JtdWxlID0gYWlkZV9maW5hbGVfZm9ybXVsZV87XG4gICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsX31cblxubGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUgKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW46IENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnQpIDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnQgPVxuICBsZXQgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2Jhc2VfOiBtb25leSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2Jhc2VfaW4gaW5cbiAgbGV0IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfOiBpbnRlZ2VyID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luIGluXG4gIGxldCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfOiBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwudCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luIGluXG4gIGxldCB6b25lXzogWm9uZURIYWJpdGF0aW9uLnQgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnpvbmVfaW4gaW5cbiAgbGV0IHJlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5yZXNpZGVuY2VfaW4gaW5cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCBtZW5zdWFsaXRlX3ByaW5jaXBhbGVfOiBtb25leSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ubWVuc3VhbGl0ZV9wcmluY2lwYWxlX2luIGluXG4gIGxldCBzaXR1YXRpb25fcjgyMl8xMV8xM18xN186IGJvb2wgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnNpdHVhdGlvbl9yODIyXzExXzEzXzE3X2luIGluXG4gIGxldCBkYXRlX3NpZ25hdHVyZV9wcmV0XzogZGF0ZSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9zaWduYXR1cmVfcHJldF9pbiBpblxuICBsZXQgdHlwZV90cmF2YXV4X2xvZ2VtZW50XzogVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LnQgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnR5cGVfdHJhdmF1eF9sb2dlbWVudF9pbiBpblxuICBsZXQgbG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuZWZpY2lhaXJlXzogYm9vbCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ubG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuZWZpY2lhaXJlX2luIGluXG4gIGxldCBkYXRlX2VudHJlZV9sb2dlbWVudF86IGRhdGUgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmRhdGVfZW50cmVlX2xvZ2VtZW50X2luIGluXG4gIGxldCBjaGFyZ2VzX21lbnN1ZWxsZXNfcHJldF86IG1vbmV5ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5jaGFyZ2VzX21lbnN1ZWxsZXNfcHJldF9pbiBpblxuICBsZXQgY29wcm9wcmlldGVfOiBib29sID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5jb3Byb3ByaWV0ZV9pbiBpblxuICBsZXQgb3BlcmF0aW9uc19sb2dlbWVudF9ldm9sdXRpZnNfc29jaWF1eF9hY2Nlc3Npb25fcHJvcHJpZXRlX2FpZGVlX19ldGF0XzogYm9vbCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ub3BlcmF0aW9uc19sb2dlbWVudF9ldm9sdXRpZnNfc29jaWF1eF9hY2Nlc3Npb25fcHJvcHJpZXRlX2FpZGVlX0V0YXRfaW4gaW5cbiAgbGV0IHRhdXhfZnJhbmNzX3ZlcnNfZXVyb3NfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwidGF1eF9mcmFuY3NfdmVyc19ldXJvc1wiXSAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTk1NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NTU7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hdXRyZXNfc291cmNlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMzA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzMwOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBwcmVtaWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUsOoZ2xlbWVudCAoQ0UpIG7CsDI4NjYvOTggZHUgY29uc2VpbCBkdSAzMSBkw6ljZW1icmUgMTk5OCBjb25jZXJuYW50IGxlcyB0YXV4IGRlIGNvbnZlcnNpb24gZW50cmUgbCdldXJvIGV0IGxlcyBtb25uYWllcyBkZXMgw4l0YXRzIG1lbWJyZXMgYWRvcHRhbnQgbCdldXJvXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19kaXZfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxLlwiKVxuICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCI2LjU1OTU3XCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05NTU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTU1OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydHNfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfOiBpbnRlZ2VyID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY2FsY3VsX25vbWJyZV9wYXJ0cy5ub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZVwiXSAoZW1iZWRfaW50ZWdlcilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ0NDc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDQ0NzsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ0Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NDQ3OyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00NDQ3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ0NDc7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXzogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfbm9tYnJlX3BhcnRzLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbFwiXVxuICAgICAgKGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ0OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NDQ5OyBlbmRfY29sdW1uPTY0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDQ5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ0NDk7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDQ0OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NDQ5OyBlbmRfY29sdW1uPTY0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IHJlc3VsdF86IENhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjsgXCJjYWxjdWxfbm9tYnJlX3BhcnRzXCI7XG4gICAgICBcIkNhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpw6l0w6lcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7IFwiY2FsY3VsX25vbWJyZV9wYXJ0c1wiO1xuICAgICAgXCJDYWxjdWxOb21icmVQYXJ0c0FjY2Vzc2lvblByb3ByacOpdMOpXCJdXG4gICAgY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlKVxuICAgICh7Q2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGVJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV87XG4gICAgICAgIENhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlSW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luID1cbiAgICAgICAgICBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxffSkpKSBpblxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfbl9ub21icmVfcGFydHNfZDgzMl8xMV86IGRlY2ltYWwgPSByZXN1bHRfLkNhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMTEgaW5cbiAgbGV0IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY29udHJpYnV0aW9uc19zb2NpYWxlcy5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwMDk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTAwOTsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMDk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTAwOTsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDA5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMDk7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IHJlc3VsdF86IENvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImNvbnRyaWJ1dGlvbnNfc29jaWFsZXNcIjtcbiAgICAgIFwiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjb250cmlidXRpb25zX3NvY2lhbGVzXCI7XG4gICAgICBcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXVxuICAgIGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQpXG4gICAgKHtDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfZGF0ZV9jb3VyYW50ZV99KSkpIGluXG4gIGxldCBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9tb250YW50XzogbW9uZXkgLT4gbW9uZXkgPSByZXN1bHRfLkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5tb250YW50IGluXG4gIGxldCBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwibXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyZ2VzXCJdIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTY2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk2NjsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTY2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTY2OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk2Njsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTY2OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTY2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk2NjsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTY2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTY2OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk2NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk2NjsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk2NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NjY7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM0MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMzNDg7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMCAtIEFycsOqdMOpIGR1IDMgamFudmllciAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIwIE5PUiA6IExPR0wxOTM0MDA2QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjgwMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjgxMTsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTcyODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNzM2OyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTQ7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMiAtIEFycsOqdMOpIGR1IDIwIGTDqWNlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIyIE5PUiA6IExPR0wyMTM0NDc3QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExMTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTk7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIganVpbGxldCAyMDIyIC0gQXJyw6p0w6kgZHUgMjkganVpbGxldCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgTk9SIDogVFJFTDIyMjA3NDhBIC0gQXJyw6p0w6kgZHUgMTYgYW/Du3QgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciAtIE5PUiA6IFRSRUwyMjIwNzQ0QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NjY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTY2OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk2Njsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTY2OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTY2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk2NjsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTE2OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MTY7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDM0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDAzMjsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDAzMjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDM0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05NjY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTY2OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvZWZmaWNpZW50X2Q4NDJfMTJfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjsgXCJjb2VmZmljaWVudF9kODQyXzEyXCJdXG4gICAgKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05NjQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTY0OyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDEzNDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MTM0OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTYuMjVcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTY0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk2NDsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb2VmZmljaWVudF9kODQyXzExXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7IFwiY29lZmZpY2llbnRfZDg0Ml8xMVwiXVxuICAgIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTYzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk2MzsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQxMjI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDEyMjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzhcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIzNFwiKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05NjM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTYzOyBlbmRfY29sdW1uPTMwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml8xMl86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwibW9udGFudF9mb3JmYWl0YWlyZV9kODQyXzEyXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTk2Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NjI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00MTQyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQxNDI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDM5XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSkpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzkwMDAwXCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk2Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NjI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9mb3JmYWl0YWlyZV9kODQyXzExXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4NDJfMTFcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTYxOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk2MTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQxMTQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDExNDsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzhcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNTAwXCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk2MTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NjE7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9taW5pbWFsX2FpZGVfZDg0Ml82XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJtb250YW50X21pbmltYWxfYWlkZV9kODQyXzZcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTYwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk2MDsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQwNTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDA1ODsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDAwXCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk2MDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NjA7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9mb3JmYWl0YWlyZV9kODQyXzZfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml82XCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTk1Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NTI7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00MDQ3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQwNDc7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDM1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSkpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTAwXCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk1Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NTI7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY29uZGl0aW9uX2Q4NDJfMTFfM186IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiOyBcImNvbmRpdGlvbl9kODQyXzExXzNcIl1cbiAgICAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTk2NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NjU7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk2NTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk2NTsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NjU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk2NTsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk2NTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NjU7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk2NTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk2NTsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTkyNztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01OTMxOyBlbmRfY29sdW1uPTczO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjItN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSUkgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBTYWludC1CYXJ0aMOpbGVteSBldCBTYWludC1NYXJ0aW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbnNfbG9nZW1lbnRfZXZvbHV0aWZzX3NvY2lhdXhfYWNjZXNzaW9uX3Byb3ByaWV0ZV9haWRlZV9fZXRhdF8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU1NzU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NTgyOyBlbmRfY29sdW1uPTczO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYxLThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb24gcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25zX2xvZ2VtZW50X2V2b2x1dGlmc19zb2NpYXV4X2FjY2Vzc2lvbl9wcm9wcmlldGVfYWlkZWVfX2V0YXRfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDY3Njsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDY3OTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTExXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1Lk9iamVjdGlmRGVjZW5jZUxvZ2VtZW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuUHJldnVEYW5zTGlzdGVSMzIxXzE1IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuQWdyYW5kaXJPdVJlbmRyZUhhYml0YWJsZUQzMzFfNjMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5QYXNEZVRyYXZhdXggXyAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV90cmF2YXV4X2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuT2JqZWN0aWZEZWNlbmNlTG9nZW1lbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LlByZXZ1RGFuc0xpc3RlUjMyMV8xNSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LkFncmFuZGlyT3VSZW5kcmVIYWJpdGFibGVEMzMxXzYzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuUGFzRGVUcmF2YXV4IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1Lk9iamVjdGlmRGVjZW5jZUxvZ2VtZW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuUHJldnVEYW5zTGlzdGVSMzIxXzE1IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuQWdyYW5kaXJPdVJlbmRyZUhhYml0YWJsZUQzMzFfNjMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LlBhc0RlVHJhdmF1eCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5OSkgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT05NjU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTY1OyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05NjU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTY1OyBlbmRfY29sdW1uPTMwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDg0Ml82X2Jhc2VfOiBkYXRlIC0+IGludGVnZXIgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYmFzZVwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChkYXRlX2NhbGN1bF86IGRhdGUpIChub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlcikgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDk7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yOTU1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI5NTU7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5NCkgKDcpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE1ODcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTkxMzAwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjA1NTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMTEzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIxNzEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjI5MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjI4MDAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyODAwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE5ODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTM5MzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNzA2MDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODQ3MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE5MTIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTk3NzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwNDIwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMTg3MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjE4NzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTkxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMzA2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE1ODQwMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE3MjYwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTc5ODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODcwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTk0MjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwODYwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMDg2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMDAwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMwMDA7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTQpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5NykgKDcpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE2MDQwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTkzNDAwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjA3ODAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMTM3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIxOTYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjU1MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjMwNTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzMDUwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwMDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTQwODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNzI1MDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODY3MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE5MzMwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTk5OTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwNjUwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjExMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjIxMTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTkzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMzIwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE4MDEwMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE3NDUwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTgxODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODkxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTk2NDAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxMDkwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMTA5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODQwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMDQ1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMwNDU7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTcpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5OCkgKDcpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE2MzMwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTk2OTAwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjExNjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMTc2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIyMzYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjk2MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjM0NjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzNDYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwNDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTQzMzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNzU2MDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTAxMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE5NjYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjAzNTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxMDIwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjUxMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjI1MTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTk2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMzQ0MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE2MzAwMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE3NzcwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTg1MTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTI1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTk5OTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxNDcwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMTQ3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMDkwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMwOTA7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTgpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5OSkgKDcpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE2NzIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjAxNjAwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjE2NzAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjI4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIyOTAwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzUxMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQwMjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0MDIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwOTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTQ2NzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNzk4MDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTQ3MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIwMTUwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjA4NDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxNTIwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzA1MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjMwNTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjAxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMzc2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE2NjkwMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE4MjAwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTg5NTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTcxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA0NzAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxOTkwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMTk5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTM1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMxMzU7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTkpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMCkgKDcpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE2NzQwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjAxODAwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjE2OTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjMwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIyOTIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzUzMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQwNDAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0MDQwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwOTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTQ2ODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODAwMDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTQ5MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIwMTcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjA4NjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxNTQwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzA3MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjMwNzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjAxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMzc3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE2NzEwMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE4MjIwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTg5NzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTczMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA0OTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyMDEwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjAxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTgzOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMxODM7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDApICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMSkgKDcpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE2OTEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjAzODAwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjE5MTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjUyMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIzMTUwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzc3MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQyODAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0MjgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxMTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTQ4MzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODE4MDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTY4MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIwMzcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjEwNzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxNzYwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzMwMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjMzMDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjAzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMzkxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE2ODgwMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE4NDAwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTkxNjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTkzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA2OTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyMjMwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjIzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTMwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjMxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMyMzE7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDEpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMikgKDEpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE3MTEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjA2MjAwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjIxNzAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjc5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIzNDMwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDA2MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQ1NzAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0NTcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxNDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTUwMTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODQwMDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTkyMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIwNjEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjEzMjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyMDIwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzU4MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjM1ODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNDA4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE3MDgwMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE4NjIwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTkzOTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMDE3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA5NDAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyNTAwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjUwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTUwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjc5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMyNzk7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMikgKDcpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNjA4NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzE0MzVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzc5OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzQ3NDNcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1NzE5XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjY3OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzQ1N1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzQ1N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMyNjJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjg4M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjgwNTFcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMDM2OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzE0MjBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMyNTAyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzU2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTk0N1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTk0N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxMjVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMTQ2NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjYwMzhcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyODM4NlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjk1NjBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMwNzQ5XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTkyM1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNDMwMVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNDMwMVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5NzNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQ5OyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDk7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMzMjY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzMyNjsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAzKSAoNykgKDEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI2Mzk3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTgxMlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM0MjA0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTE2MFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzYxNDhcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3MTE5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3OTA2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3OTA2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzMwMVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIzMTU4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyODM4OFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMwNzMyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTc5N1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzI4OTJcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMzOTcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2Mzc4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2Mzc4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzE2M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIxNzIzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNjM1MFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI4NzI3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyOTkxNVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzExMThcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMyMzA2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0NzEzXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0NzEzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzAwOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDk7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0OTsgZW5kX2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM3Mzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMzczOyBlbmRfY29sdW1uPTYyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAzKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDUpICg5KSAoMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjY3MTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMyMTk0XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzQ2MTRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1NTgyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjU4MlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzc1NjRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzgzNjFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzgzNjFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMzQxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjM0MzZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI4NzI5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzExMDFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMyMTc5XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzI4N1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzQzODBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY4MTVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY4MTVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMjAxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjE5ODRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI2NjY2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjkwNzJcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMwMjc0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTQ5MVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzI2OTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzUxMzBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzUxMzBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMDQ1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNDIwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM0MjA7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDUpICg5KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwNykgKDEpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNzE5NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzI3NzNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTIzN1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzYyMjJcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3MjQwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzODI0MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzOTA1MVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzOTA1MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0MDFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMzg1OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjkyNDZcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTY2MVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzI3NThcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMzODg2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNDk5OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzQ3OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzQ3OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMyNTlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjM4MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjcxNDZcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyOTU5NVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzA4MTlcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMyMDU4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzI4MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTc2MlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTc2MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQ5OyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDk7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM0Njc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzQ2NzsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwNykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDA4KSAoMSkgKDEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI3OTU2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzY5MVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2MjI0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzIzNlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzgyODNcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM5MzExXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwMTQ0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwMTQ0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzQ5NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI0NTI2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMDA2NVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMyNTQ4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzY3NVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzQ4NjVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1OTc5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM4NTI3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM4NTI3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzM1MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIzMDA3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNzkwNlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMwNDI0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTY4MlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzI5NTZcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM0MjE0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NzMzXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NzMzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzE4N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDk7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0OTsgZW5kX2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzUxNDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNTE0OyBlbmRfY29sdW1uPTYyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDA4KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDkpICgxKSAoMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjg3MjhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM0NjIxXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzcyMjRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM4MjY0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzOTM0MFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDAzOTZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDEyNTJcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDEyNTJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTkyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjUyMDNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMwODk1XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzM0NDZcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM0NjA0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTc5NlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzY5NzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzk1OTBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzk1OTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNDQyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjM2NDJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI4Njc2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzEyNjRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMyNTU2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzg2NlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzUxNThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc3NzhcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc3NzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMjc1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNTYxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM1NjE7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDkpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMCkgKDEpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyOTU3NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzU2NDJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzODMyMlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzkzOTNcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQwNTAxXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MTU4OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MjQ2OVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MjQ2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2OThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNTk0NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzE4MDZcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNDQzM1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzU2MjVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2ODUyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzODA2M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MDc1OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MDc1OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1NDRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNDMzOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjk1MjJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMjE4NlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzM1MTZcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM0ODY1XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjE5NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzODg5MlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzODg5MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMzNzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQ5OyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDk7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM2MDg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzYwODsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDExKSAoMSkgKDEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI5NjcwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTc1N1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM4NDQ1XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzOTUxOVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDA2MDFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQxNzIxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQyNjA1XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQyNjA1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzcxMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI2MDI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTkwOFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM0NjQzXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTczOVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzY5NzBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM4MTg1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwODg4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwODg4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU1NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI0NDE3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyOTYxNlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMyMjg5XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzYyM1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzQ5NzdcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2MzExXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5MDE2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5MDE2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzM4M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDk7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0OTsgZW5kX2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzY1NTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNjU1OyBlbmRfY29sdW1uPTYyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDExKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTIpICgxKSAoMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjk5OTZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2MTQ5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzg4NjhcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM5OTU0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MTA3OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDIxODBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDMwNzRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDMwNzRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzUxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjYzMTVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMyMjU5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzQ5MjNcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2MTMyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzM3M1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzg2MDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDEzMzhcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDEzMzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTk0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjQ2ODZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI5OTQyXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzI2NDRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMzOTkzXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTM2MlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzY3MTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzk0NDVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzk0NDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNDIwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNzAyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM3MDI7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMykgKDEpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMDI5NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzY1MTBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzOTI1N1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDAzNTRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQxNDg5XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MjYwMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MzUwNVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MzUwNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3ODlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNjU3OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzI1ODJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTI3MlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzY0OTNcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3NzUxXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzODk5MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTc1MVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTc1MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MzBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNDkzM1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzAyNDFcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMjk3MFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzQzMzNcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1NzE2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzA3N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzOTgzOVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzOTgzOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0NTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQ5OyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDk7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM3NDk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzc0OTsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE0KSAoMTApICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMDk0N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzcyOTVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MDEwMVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDEyMjJcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQyMzgxXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MzUxOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NDQ0MFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NDQ0MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM4NzBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNzE0OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzMyODNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjAzMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzcyNzhcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM4NTYzXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzOTgyOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MjY0OVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MjY1OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3MDhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNTQ2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzA4OTFcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzY3OVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzUwNzFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2NDg0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzg3NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MDY5NlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MDY5NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1MjhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQ5OyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDk7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM3OTY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzc5NjsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNSkgKDEwKSAoMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzExMjNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3NTA4XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDAzMzBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQxNDU3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MjYyM1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDM3NjZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDQ2OTNcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDQ2OTNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzODkyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjczMDRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMzNDczXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzYyMzVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3NDkwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzODc4M1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDAwNTZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDI4OTJcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDI4OTJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjU2MTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMxMDY3XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzM4NzFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1MjcxXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjY5MlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzgwOTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDA5MjhcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDA5MjhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTQ4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zODQzOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM4NDM7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTUpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTcpICgxMCkgKDEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMxMTQ4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzUzOFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQwMzYyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MTQ5MFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDI2NTdcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQzODAxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ0NzI5XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ0NzI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzg5NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI3MzI2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzUwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2MjY0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzUyMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzg4MTRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQwMDg4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQyOTI2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQyOTI2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzczMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI1NjM0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTA5MlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMzODk4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTI5OVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzY3MjFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM4MTIwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwOTYxXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwOTYxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU1MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDk7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0OTsgZW5kX2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzg5MDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zODkwOyBlbmRfY29sdW1uPTYyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE3KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTM4MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzc4MjBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MDY2NVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDE4MDFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQyOTc3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NDEzMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NTA2NFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NTA2NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5MjRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNzUzMVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzM3NTFcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjUzNlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzc4MDFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM5MTA1XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MDM4OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MzI0OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MzI0OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NjBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNTgyNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzEzMjVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNDE1MlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzU1NjRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2OTk2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzODQwNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTI2OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTI2OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1NzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQ5OyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDk7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5Mzc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzkzNzsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTQ3NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzc5MzNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MDc4N1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDE5MjdcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQzMTA2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NDI2MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NTIwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NTIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5MzZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNzYxNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzM4NTNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjY0NlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzc5MTVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM5MjIyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MDUxMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MzM3OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MzM3OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NzFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNTkwNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzE0MTlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNDI1NVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzU2NzBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3MTA3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzODUyMVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTM5MlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTM5MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1ODhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQ5OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTk0OTsgZW5kX2NvbHVtbj0xNDtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05NDk7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTQ5OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc186IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwibW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NDI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0MjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0MjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0MjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQ1MDsgZW5kX2NvbHVtbj0xNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVggOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIG91dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkgY29wcm9wcmlldGVfKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTM4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NjdcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyZ2VzXykpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzQzOyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNTA7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqdWlsbGV0IDIwMjIgLSBBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBOT1IgOiBUUkVMMjIyMDc0OEEgLSBBcnLDqnTDqSBkdSAxNiBhb8O7dCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIC0gTk9SIDogVFJFTDIyMjA3NDRBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IG1vbnRhbnRfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTkzOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzY3XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjk2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBsaW1pdGVfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTkzOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzY3XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjk2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiBtb250YW50XyBsaW1pdGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIGxpbWl0ZV8gZWxzZSBtb250YW50XykpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE5NjE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE5Njg7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBtb250YW50XyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTg3MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjQwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjkzNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4NzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY0MFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MzZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiBtb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0ZV8pIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdGVfIGVsc2UgbW9udGFudF8pKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT04NDE7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTg0ODsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMiAtIEFycsOqdMOpIGR1IDIwIGTDqWNlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIyIE5PUiA6IExPR0wyMTM0NDc3QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBtb250YW50XyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4NzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY0MFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MzZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4NzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY0MFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MzZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X21vbl9tb24gbW9udGFudF8gbGltaXRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiBsaW1pdGVfIGVsc2UgbW9udGFudF8pKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzAzNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMDQzOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODY0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTMyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODY0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTMyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0MjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM1NzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzU4MTsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMCAtIEFycsOqdMOpIGR1IDMgamFudmllciAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIwIE5PUiA6IExPR0wxOTM0MDA2QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODU4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MTRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODU4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MTRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0MjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQzODI7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzODk7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElYIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NjdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyZ2VzXykpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjYyOyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNjk7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqdWlsbGV0IDIwMjIgLSBBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBOT1IgOiBUUkVMMjIyMDc0OEEgLSBBcnLDqnTDqSBkdSAxNiBhb8O7dCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIC0gTk9SIDogVFJFTDIyMjA3NDRBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzY3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzY3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZiAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0MjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTg4MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTg4ODsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjQwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MzZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiBtb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0ZV8pIHRoZW4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03Njc7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjIgLSBBcnLDqnTDqSBkdSAyMCBkw6ljZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMiBOT1IgOiBMT0dMMjEzNDQ3N0FcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBtb250YW50XyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2NDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MzZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2NDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MzZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmIChvX2d0X21vbl9tb24gbW9udGFudF8gbGltaXRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiBsaW1pdGVfIGVsc2UgbW9udGFudF8pKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjk1Njsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mjk2MzsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjI1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTMyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjI1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTMyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZiAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0MjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM0OTQ7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM1MDE7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjAgLSBBcnLDqnTDqSBkdSAzIGphbnZpZXIgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMCBOT1IgOiBMT0dMMTkzNDAwNkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjE0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjE0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZiAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0MjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MDkyOyBzdGFydF9jb2x1bW49NTc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQwOTI7IGVuZF9jb2x1bW49Njg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDM3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29wcm9wcmlldGVfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI4MDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU2MTJcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTI3MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0MjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTU4OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU1ODsgZW5kX2NvbHVtbj0xNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3Byb3ByaWV0ZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjcxMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTQyMlwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxMjI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI2Mzk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNjM5OyBlbmRfY29sdW1uPTE2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3Byb3ByaWV0ZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjY5OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTM5OVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxMjI0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTQyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTQyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MDM1OyBzdGFydF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MDM1OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU2MTJcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU2MTJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTI3MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyZ2VzXykpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MTk7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MTk7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTQyMlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTQyMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0MjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjU5Nzsgc3RhcnRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjU5NzsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDM0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTM5OVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTM5OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjI0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NDI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgc2V1aWxfbWluaW1hbF9yZXNzb3VyY2VzX21lbmFnZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwic2V1aWxfbWluaW1hbF9yZXNzb3VyY2VzX23DqW5hZ2VcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTU0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk1NDsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTU0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTU0OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NzA1OyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NzExOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTIpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5NCkgKDkpICgzMCkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2RhdF9kYXQgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5NCkgKDkpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV90cmF2YXV4X2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuT2JqZWN0aWZEZWNlbmNlTG9nZW1lbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5QcmV2dURhbnNMaXN0ZVIzMjFfMTUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5BZ3JhbmRpck91UmVuZHJlSGFiaXRhYmxlRDMzMV82MyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LlBhc0RlVHJhdmF1eCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1Lk9iamVjdGlmRGVjZW5jZUxvZ2VtZW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5QcmV2dURhbnNMaXN0ZVIzMjFfMTUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5BZ3JhbmRpck91UmVuZHJlSGFiaXRhYmxlRDMzMV82MyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LlBhc0RlVHJhdmF1eCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5PYmplY3RpZkRlY2VuY2VMb2dlbWVudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LlByZXZ1RGFuc0xpc3RlUjMyMV8xNSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LkFncmFuZGlyT3VSZW5kcmVIYWJpdGFibGVEMzMxXzYzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5QYXNEZVRyYXZhdXggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdCBtZW5zdWFsaXRlX3ByaW5jaXBhbGVfXG4gICAgICAgICAgICAgICAgICAgICAgY29lZmZpY2llbnRfZDg0Ml8xMl8pKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTU0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTU0OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NzIzOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NzI0OyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndF9kYXRfZGF0IGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTQpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1Lk9iamVjdGlmRGVjZW5jZUxvZ2VtZW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuUHJldnVEYW5zTGlzdGVSMzIxXzE1IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5BZ3JhbmRpck91UmVuZHJlSGFiaXRhYmxlRDMzMV82MyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LlBhc0RlVHJhdmF1eCBfIC0+IGZhbHNlKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb250YW50X2ZvcmZhaXRhaXJlX2Q4NDJfMTJfKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05NTQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTU0OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZV86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTgwOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTk4MDsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ1Nzsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0NTc7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgKG9fbHRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlXyBtb250YW50X2ZvcmZhaXRhaXJlX2Q4NDJfNl8pXG4gICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfIG1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml82XykpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTgwOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTk4MDsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05ODA7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTgwOyBlbmRfY29sdW1uPTMyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDg0Ml82X2F2ZWNfY29wcm9wcmlldGVfOiBkYXRlIC0+IGludGVnZXIgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiXSAodW5lbWJlZGRhYmxlKVxuICAgIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGRhdGVfY2FsY3VsXzogZGF0ZSkgKG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfOiBpbnRlZ2VyKSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk1MDsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT05NTA7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTUwOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NTA7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NTA7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTUwOyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NTA7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NTA7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTUwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTUwOyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI2MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNjE0OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgY29wcm9wcmlldGVfIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2Jhc2VcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2Jhc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfYmFzZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9iYXNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY2FsY3VsXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9iYXNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQxXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfaW50ZWdlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC43NVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYmFzZVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYmFzZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDJfNl9iYXNlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2Jhc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jYWxjdWxfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2Jhc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfaW50ZWdlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUzNDsgc3RhcnRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MzQ7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNvcHJvcHJpZXRlXyB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2Jhc2VcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2Jhc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDg0Ml82X2Jhc2VfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYmFzZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jYWxjdWxfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2Jhc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQxXCJdIChlbWJlZF9pbnRlZ2VyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNzVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9iYXNlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9iYXNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfYmFzZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9iYXNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9kYXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jYWxjdWxfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2Jhc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDFcIl0gKGVtYmVkX2ludGVnZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSkpKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MDcwOyBzdGFydF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQwNzA7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDM3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBjb3Byb3ByaWV0ZV8gdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9iYXNlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9iYXNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDg0Ml82X2Jhc2VfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYmFzZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9kYXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NhbGN1bF8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYmFzZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQxXCJdIChlbWJlZF9pbnRlZ2VyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC43NVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9iYXNlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9iYXNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDJfNl9iYXNlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2Jhc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9kYXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY2FsY3VsXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9iYXNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MVwiXSAoZW1iZWRfaW50ZWdlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSkpKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTgxOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzk4MTsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSkpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYmFzZVwiXVxuICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYmFzZVwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICgoY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfYmFzZV8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9iYXNlXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgIChlbWJlZF9kYXRlKSBkYXRlX2NhbGN1bF8pKSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYmFzZVwiOyBcImlucHV0MVwiXVxuICAgICAgICAgICAgICAgICAgICAoZW1iZWRfaW50ZWdlcikgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTUwOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTk1MDsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05NTA7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTUwOyBlbmRfY29sdW1uPTI2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGRlcGVuc2VfbmV0dGVfbWluaW1hbGVfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImTDqXBlbnNlX25ldHRlX21pbmltYWxlXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFsbG9jYXRpb25fbWVuc3VlbGxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTU2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk1NjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDY0MTsgc3RhcnRfY29sdW1uPTE1O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ2NDE7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIG9fc3ViX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBjaGFyZ2VzX21lbnN1ZWxsZXNfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICBtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfKSBhbGxvY2F0aW9uX21lbnN1ZWxsZV8pKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTU2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk1NjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05NTY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTU2OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19zZXVpbF86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwicmVzc291cmNlc19tw6luYWdlX2Fycm9uZGllc19zZXVpbFwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05MjQ7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTI0OyBlbmRfY29sdW1uPTE1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MjQ7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MjQ7IGVuZF9jb2x1bW49MTU7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ3NDQ7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ3NDQ7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX3I4MjJfMTFfMTNfMTdfKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2Jhc2VfKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NzM0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ3MzQ7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgKG9fbHRlX21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2Jhc2VfXG4gICAgICAgICAgICAgICAgIHNldWlsX21pbmltYWxfcmVzc291cmNlc19tZW5hZ2VfKSB0aGVuXG4gICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAob19yb3VuZF9tb25cbiAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIHNldWlsX21pbmltYWxfcmVzc291cmNlc19tZW5hZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0OTk5XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxXCIpKSlcbiAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTAwLlwiKSkgZWxzZVxuICAgICAgICAgICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfYmFzZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTkyNDsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT05MjQ7IGVuZF9jb2x1bW49MTU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfYXZlY19saW1pdGF0aW9uX2RvbV90b21fOiBkYXRlIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZWdlciAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfbGltaXRhdGlvbl9kb21fdG9tXCJdXG4gICAgKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoZGF0ZV9jYWxjdWxfOiBkYXRlKSAobm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV86IGludGVnZXIpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTUxOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTk1MTsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NTE7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk1MTsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk1MTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NTE7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk1MTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk1MTsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NTE7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTUxOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk1MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTUxOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM0MTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzQyNjsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjAgLSBBcnLDqnTDqSBkdSAzIGphbnZpZXIgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMCBOT1IgOiBMT0dMMTkzNDAwNkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfYXZlY19jb3Byb3ByaWV0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9kYXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NhbGN1bF8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfaW50ZWdlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNlwiKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDJfNl9hdmVjX2NvcHJvcHJpZXRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2RhdGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY2FsY3VsXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQxXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9pbnRlZ2VyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSkpKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjg4MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI4ODg7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDJfNl9hdmVjX2NvcHJvcHJpZXRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NhbGN1bF8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9pbnRlZ2VyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNlwiKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDJfNl9hdmVjX2NvcHJvcHJpZXRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NhbGN1bF8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9pbnRlZ2VyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKSkpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTgwNztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTgxNDsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDJfNl9hdmVjX2NvcHJvcHJpZXRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9kYXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NhbGN1bF8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDFcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2ludGVnZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKSkpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfYXZlY19jb3Byb3ByaWV0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jYWxjdWxfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQxXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9pbnRlZ2VyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSkpKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02ODU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY5MjsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMiAtIEFycsOqdMOpIGR1IDIwIGTDqWNlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIyIE5PUiA6IExPR0wyMTM0NDc3QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDg0Ml82X2F2ZWNfY29wcm9wcmlldGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9kYXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jYWxjdWxfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MVwiXSAoZW1iZWRfaW50ZWdlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDg0Ml82X2F2ZWNfY29wcm9wcmlldGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9kYXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jYWxjdWxfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MVwiXSAoZW1iZWRfaW50ZWdlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKSkpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE4OTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE5NjsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIganVpbGxldCAyMDIyIC0gQXJyw6p0w6kgZHUgMjkganVpbGxldCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgTk9SIDogVFJFTDIyMjA3NDhBIC0gQXJyw6p0w6kgZHUgMTYgYW/Du3QgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciAtIE5PUiA6IFRSRUwyMjIwNzQ0QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfYXZlY19jb3Byb3ByaWV0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9kYXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY2FsY3VsXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQxXCJdIChlbWJlZF9pbnRlZ2VyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSkpKSkpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDg0Ml82X2F2ZWNfY29wcm9wcmlldGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NhbGN1bF8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MVwiXSAoZW1iZWRfaW50ZWdlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSkpKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTg3OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzk4NzsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSkpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCJdXG4gICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICgoY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfYXZlY19jb3Byb3ByaWV0ZV8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfZGF0ZSkgZGF0ZV9jYWxjdWxfKSlcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQxXCJdIChlbWJlZF9pbnRlZ2VyKSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSkpKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT05NTE7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTUxOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk1MTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT05NTE7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUuZGF0ZV9jb3VyYW50ZVwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDEwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMTA7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDEwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMTA7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTAxMDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDEwOyBlbmRfY29sdW1uPTYxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X3Jlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc186IG1vbmV5ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY2FsY3VsX8OpcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZS5yZXNzb3VyY2VzX23DqW5hZ2VfYXJyb25kaWVzXCJdXG4gICAgICAoZW1iZWRfbW9uZXkpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00NDQzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ0NDM7IGVuZF9jb2x1bW49NzU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgIChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0NDM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDQ0MzsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19zZXVpbF8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00NDQzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ0NDM7IGVuZF9jb2x1bW49NzU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9jb25kaXRpb25fMl9kdV84MzJfMjVfOiBib29sID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY2FsY3VsX8OpcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZS5jb25kaXRpb25fMl9kdV84MzJfMjVcIl1cbiAgICAgIChlbWJlZF9ib29sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ0Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NDQyOyBlbmRfY29sdW1uPTY5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDQyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ0NDI7IGVuZF9jb2x1bW49Njk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDQ0Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NDQyOyBlbmRfY29sdW1uPTY5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3Rfbl9ub21icmVfcGFydHNfZDgzMl8yNV86IGRlY2ltYWwgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVcIl1cbiAgICAgIChlbWJlZF9kZWNpbWFsKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ0NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NDQ1OyBlbmRfY29sdW1uPTcwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDQ1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ0NDU7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfbl9ub21icmVfcGFydHNfZDgzMl8xMV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00NDQ1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ0NDU7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwiY2FsY3VsX8OpcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZVwiO1xuICAgICAgXCJDYWxjdWzDiXF1aXZhbGVuY2VMb3llck1pbmltYWxlXCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjYWxjdWxfw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlXCI7XG4gICAgICBcIkNhbGN1bMOJcXVpdmFsZW5jZUxveWVyTWluaW1hbGVcIl0gY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlKVxuICAgICh7Q2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiA9XG4gICAgICAgICAgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfO1xuICAgICAgICBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi5jb25kaXRpb25fMl9kdV84MzJfMjVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfY29uZGl0aW9uXzJfZHVfODMyXzI1XztcbiAgICAgICAgQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4ubl9ub21icmVfcGFydHNfZDgzMl8yNV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzI1X30pKSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfbW9udGFudF86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGUubW9udGFudCBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfdHlwZV9sb2dlbWVudF9mb3llcl86IFR5cGVMb2dlbWVudEZveWVyLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLnR5cGVfbG9nZW1lbnRfZm95ZXJcIl1cbiAgICAgIChlbWJlZF90eXBlX2xvZ2VtZW50X2ZveWVyKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTk5Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05OTI7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT05OTI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTkyOyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IFR5cGVMb2dlbWVudEZveWVyLkF1dHJlICgpKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk5Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05OTI7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2RhdGVfY29udmVudGlvbm5lbWVudF86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLmRhdGVfY29udmVudGlvbm5lbWVudFwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05OTQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTk0OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTk0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTk5NDsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX29mX251bWJlcnMgKDE5NzApICgxKSAoMSkpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTk0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTk5NDsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLnJlc3NvdXJjZXNfbcOpbmFnZV9hcnJvbmRpZXNcIl1cbiAgICAgIChlbWJlZF9tb25leSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05OTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTk4OyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTk4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTk5ODsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfc2V1aWxfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk5ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05OTg7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfOiBpbnRlZ2VyID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci5ub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZVwiXVxuICAgICAgKGVtYmVkX2ludGVnZXIpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTAwMDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDAwOyBlbmRfY29sdW1uPTY1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAwMDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDAwOyBlbmRfY29sdW1uPTY1O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwMDA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTAwMDsgZW5kX2NvbHVtbj02NTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3Rfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXzogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbFwiXVxuICAgICAgKGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwMDI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTAwMjsgZW5kX2NvbHVtbj03MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMDI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTAwMjsgZW5kX2NvbHVtbj03MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwMDI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTAwMjsgZW5kX2NvbHVtbj03MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3Rfem9uZV86IFpvbmVESGFiaXRhdGlvbi50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci56b25lXCJdIChlbWJlZF96b25lX2RfaGFiaXRhdGlvbilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDA0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMDQ7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDA0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMDQ7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gem9uZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTAwNDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDA0OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXIuZGF0ZV9jb3VyYW50ZVwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDA3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMDc7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDA3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMDc7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTAwNzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDA3OyBlbmRfY29sdW1uPTUzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9yZWRldmFuY2VfOiBtb25leSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXIucmVkZXZhbmNlXCJdIChlbWJlZF9tb25leSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05OTY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTk2OyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTk2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTk5NjsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTk2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTk5NjsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfcmVzaWRlbmNlXzogQ29sbGVjdGl2aXRlLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLnLDqXNpZGVuY2VcIl0gKGVtYmVkX2NvbGxlY3Rpdml0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDA2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMDY7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDA2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMDY7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmVzaWRlbmNlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDA2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMDY7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2NvbmRpdGlvbl8yX2R1XzgzMl8yNV86IHVuaXQgLT4gYm9vbCA9IFxuICAgIGZ1biAoXzogdW5pdCkgLT4gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXIuY29uZGl0aW9uXzJfZHVfODMyXzI1XCJdIChlbWJlZF9ib29sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDQwOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NDA5OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDA5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ0MDk7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlXzogXG4gICAgdW5pdCAtPiBib29sID0gZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci5saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX8OgX2NoYXJnZVwiXVxuICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpXG4gICAgICAgICAgICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01OTExOyBzdGFydF9jb2x1bW49OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTkxMTsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2Mi03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSUkgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogU2FpbnQtQmFydGjDqWxlbXkgZXQgU2FpbnQtTWFydGluXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01OTExOyBzdGFydF9jb2x1bW49OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01OTExOyBlbmRfY29sdW1uPTc1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjItN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSUkgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBTYWludC1CYXJ0aMOpbGVteSBldCBTYWludC1NYXJ0aW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTkxMTsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01OTExOyBlbmRfY29sdW1uPTc1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2Mi03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUlJIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBTYWludC1CYXJ0aMOpbGVteSBldCBTYWludC1NYXJ0aW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU5MTM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTkxNjsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjItN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJSSA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogU2FpbnQtQmFydGjDqWxlbXkgZXQgU2FpbnQtTWFydGluXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU1NTg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU1NjQ7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2MS04XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbiBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X25fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfOiB1bml0IC0+IGRlY2ltYWwgPSBcbiAgICBmdW4gKF86IHVuaXQpIC0+IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVcIl0gKGVtYmVkX2RlY2ltYWwpXG4gICAgICAocmFpc2UgRW1wdHlFcnJvcikpIGluXG4gIGxldCByZXN1bHRfOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyXCI7IFwiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiXVxuICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyXCI7IFwiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiXVxuICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIpXG4gICAgKHtDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi50eXBlX2xvZ2VtZW50X2ZveWVyX2luID1cbiAgICAgICAgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfdHlwZV9sb2dlbWVudF9mb3llcl87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLmRhdGVfY29udmVudGlvbm5lbWVudF9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfZGF0ZV9jb252ZW50aW9ubmVtZW50XztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi56b25lX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF96b25lXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnJlZGV2YW5jZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfcmVkZXZhbmNlXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ucmVzaWRlbmNlX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9yZXNpZGVuY2VfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5jb25kaXRpb25fMl9kdV84MzJfMjVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2NvbmRpdGlvbl8yX2R1XzgzMl8yNV87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLmxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2xpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5uX25vbWJyZV9wYXJ0c19kODMyXzI1X2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzI1X30pKSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2NvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMjVfOiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMjUgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2NvZWZmaWNpZW50X3JfZDgzMl8yNV86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfcl9kODMyXzI1IGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzI1XzogZGVjaW1hbCA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjUgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2VxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlXzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfcGxhZm9uZF9lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZV86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIucGxhZm9uZF9lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfOiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmVxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9jb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNV9zZXVpbF86IGRlY2ltYWwgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5jb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfYWlkZV9maW5hbGVfZm9ybXVsZV86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuYWlkZV9maW5hbGVfZm9ybXVsZSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50X21pbmltYWxfOiBcbiAgICBtb25leSAtPiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgaW5cbiAgbGV0IHNldWlsX21pbmltYWxfZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwic2V1aWxfbWluaW1hbF9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05NTM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTUzOyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NTM7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NTM7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ2ODM7IHN0YXJ0X2NvbHVtbj03O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ2ODM7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uX2Q4NDJfMTFfM18pKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfc2V1aWxfXG4gICAgICAgICAgICAgICAgICAgICAgY29lZmZpY2llbnRfZDg0Ml8xMV8pKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ2NjQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDY2NDsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBtb250YW50X2ZvcmZhaXRhaXJlX2Q4NDJfMTFfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05NTM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTUzOyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHBsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcInBsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82XCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTk0NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NDU7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk0NTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk0NTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDU4ODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDU4ODsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsX2hhYml0ZV9wcmVtaWVyZV9mb2lzX2JlbmVmaWNpYWlyZV8pKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAobGV0IHBsYWZvbmRfc2lnbmF0dXJlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2xpbWl0YXRpb25fZG9tX3RvbVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19saW1pdGF0aW9uX2RvbV90b21cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICgoY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfYXZlY19saW1pdGF0aW9uX2RvbV90b21fKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19saW1pdGF0aW9uX2RvbV90b21cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfZGF0ZSkgZGF0ZV9zaWduYXR1cmVfcHJldF8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19saW1pdGF0aW9uX2RvbV90b21cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MVwiXSAoZW1iZWRfaW50ZWdlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgIChsZXQgcGxhZm9uZF9lbnRyZWVfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfbGltaXRhdGlvbl9kb21fdG9tXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2xpbWl0YXRpb25fZG9tX3RvbVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICAgICAgICAgKChjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDJfNl9hdmVjX2xpbWl0YXRpb25fZG9tX3RvbV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2xpbWl0YXRpb25fZG9tX3RvbVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9kYXRlKSBkYXRlX2VudHJlZV9sb2dlbWVudF8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19saW1pdGF0aW9uX2RvbV90b21cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MVwiXSAoZW1iZWRfaW50ZWdlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICggaWYgKG9fbHRfbW9uX21vbiBwbGFmb25kX3NpZ25hdHVyZV8gcGxhZm9uZF9lbnRyZWVfKVxuICAgICAgICAgICAgICAgICAgICAgICB0aGVuIHBsYWZvbmRfZW50cmVlXyBlbHNlIHBsYWZvbmRfc2lnbmF0dXJlXykpKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDU2OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NTY5OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfbGltaXRhdGlvbl9kb21fdG9tXCJdXG4gICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2xpbWl0YXRpb25fZG9tX3RvbVwiO1xuICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAoKGNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDg0Ml82X2F2ZWNfbGltaXRhdGlvbl9kb21fdG9tXylcbiAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfbGltaXRhdGlvbl9kb21fdG9tXCI7XG4gICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9kYXRlKSBkYXRlX3NpZ25hdHVyZV9wcmV0XykpXG4gICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2xpbWl0YXRpb25fZG9tX3RvbVwiO1xuICAgICAgICAgICAgICAgICBcImlucHV0MVwiXSAoZW1iZWRfaW50ZWdlcikgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk0NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NDU7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbWVuc3VhbGl0ZV9taW5pbWFsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjsgXCJtZW5zdWFsaXTDqV9taW5pbWFsZVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTk0Mzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NDM7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0Mzg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDQzODsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X21vbnRhbnRfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05NDM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTQzOyBlbmRfY29sdW1uPTMwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05NDQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTQ0OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDEyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ0MTI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2NvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1X3NldWlsXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTQ0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk0NDsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBhYmF0dGVtZW50X2RlcGVuc2VfbmV0dGVfbWluaW1hbGVfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImFiYXR0ZW1lbnRfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWxsb2NhdGlvbl9tZW5zdWVsbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NTg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTU4OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NjUzOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDY1MzsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTExXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgKGxldCBkZXBlbnNlX25ldHRlX21pbmltYWxlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImTDqXBlbnNlX25ldHRlX21pbmltYWxlXCJdICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImTDqXBlbnNlX25ldHRlX21pbmltYWxlXCI7IFwib3V0cHV0XCJdIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIl0gZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImTDqXBlbnNlX25ldHRlX21pbmltYWxlXCI7IFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICAgICAgYWxsb2NhdGlvbl9tZW5zdWVsbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgIChvX2x0X21vbl9tb24gZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgc2V1aWxfbWluaW1hbF9kZXBlbnNlX25ldHRlX21pbmltYWxlXykgdGhlblxuICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiBzZXVpbF9taW5pbWFsX2RlcGVuc2VfbmV0dGVfbWluaW1hbGVfXG4gICAgICAgICAgICAgICAgICAgICAgIGRlcGVuc2VfbmV0dGVfbWluaW1hbGVfKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTU4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk1ODsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05NTg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTU4OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1lbnN1YWxpdGVfZWxpZ2libGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7IFwibWVuc3VhbGl0w6lfw6lsaWdpYmxlXCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTQxOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk0MTsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQyMzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NDIzOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiBtZW5zdWFsaXRlX3ByaW5jaXBhbGVfIHBsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfKVxuICAgICAgICAgICAgICB0aGVuIHBsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfIGVsc2UgbWVuc3VhbGl0ZV9wcmluY2lwYWxlXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTQxOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk0MTsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0cmFpdGVtZW50X2FpZGVfZmluYWxlX2RlcGVuc2VfbmV0dGVfbWluaW1hbGVfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWlkZV9maW5hbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT05ODE7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTgxOyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDcxOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQ3MTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiXVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiXVxuICAgICAgICAgICAgICAgICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKGxldCBhYmF0dGVtZW50XyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImFiYXR0ZW1lbnRfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiYWJhdHRlbWVudF9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImFiYXR0ZW1lbnRfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgYWJhdHRlbWVudF9kZXBlbnNlX25ldHRlX21pbmltYWxlXylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiYWJhdHRlbWVudF9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKCBpZiAob19sdF9tb25fbW9uIGFpZGVfZmluYWxlXyBhYmF0dGVtZW50XykgdGhlblxuICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlXyBhYmF0dGVtZW50XykpKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTgxOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTk4MTsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05ODE7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTgxOyBlbmRfY29sdW1uPTMyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGFpZGVfZmluYWxlX2Zvcm11bGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7IFwiYWlkZV9maW5hbGVfZm9ybXVsZVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTk3Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT05NzY7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQzOTA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDM5MDsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb25cbiAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gbWVuc3VhbGl0ZV9lbGlnaWJsZV9cbiAgICAgICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzXykgbWVuc3VhbGl0ZV9taW5pbWFsZV8pXG4gICAgICAgICAgICAgIGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk3Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT05NzY7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCJdICh1bmVtYmVkZGFibGUpXG4gICAgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWlkZV9maW5hbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT05ODI7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTgyOyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDg1OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQ4NTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXVxuICAgICAgICAgICAgICAgICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlX2RlcGVuc2VfbmV0dGVfbWluaW1hbGVfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2TDqXBlbnNlX25ldHRlX21pbmltYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgIChsZXQgY3Jkc18gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwibW9udGFudFwiXSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwibW9udGFudFwiOyBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJtb250YW50XCJdIGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfZG90X21vbnRhbnRfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwibW9udGFudFwiOyBcImlucHV0MFwiXSAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV9tb2luc19jcmRzX2Fycm9uZGllXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgKG9fcm91bmRfbW9uXG4gICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlXyBjcmRzXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUwXCIpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAob19ndGVfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBhaWRlX2ZpbmFsZV9tb2luc19jcmRzX2Fycm9uZGllXyBjcmRzXylcbiAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gYWlkZV9maW5hbGVfbW9pbnNfY3Jkc19hcnJvbmRpZV8gY3Jkc18pXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKSkpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTk4Mjsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT05ODI7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTgyOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTk4MjsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0cmFpdGVtZW50X2FpZGVfZmluYWxlX21vbnRhbnRfbWluaW1hbF86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50X21pbmltYWxcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWlkZV9maW5hbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT05ODM7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTgzOyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NTA1OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDUwNTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCJdXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaVwiXVxuICAgICAgICAgICAgICAgICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaV8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgKG9fbHRfbW9uX21vbiBhaWRlX2ZpbmFsZV8gbW9udGFudF9taW5pbWFsX2FpZGVfZDg0Ml82XylcbiAgICAgICAgICAgICAgICAgICAgdGhlbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSBlbHNlIGFpZGVfZmluYWxlXykpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTk4Mzsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT05ODM7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTgzOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTk4MzsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBfOiB1bml0ID0gaWYgKFxuICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTIpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMTU7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDE1OyBlbmRfY29sdW1uPTQ4O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAoKSBlbHNlXG4gICAgICAgICAgICAgICAgICByYWlzZSAoQXNzZXJ0aW9uRmFpbGVkIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDE1OyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAxNTsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pIGluXG4gIGxldCBfOiB1bml0ID0gaWYgKFxuICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMTQ7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDE0OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAoKSBlbHNlXG4gICAgICAgICAgICAgICAgICByYWlzZSAoQXNzZXJ0aW9uRmFpbGVkIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDE0OyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAxNDsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pIGluXG4gIHtDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUuYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgIGFpZGVfZmluYWxlX2Zvcm11bGVfO1xuICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50X21pbmltYWxffVxuXG5sZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudCAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbjogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnQpIDogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudC50ID1cbiAgbGV0IG1vZGVfb2NjdXBhdGlvbl86IE1vZGVPY2N1cGF0aW9uLnQgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi5tb2RlX29jY3VwYXRpb25faW4gaW5cbiAgbGV0IHR5cGVfYWlkZV86IFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnR5cGVfYWlkZV9pbiBpblxuICBsZXQgcmVzc291cmNlc19tZW5hZ2Vfc2Fuc19hcnJvbmRpXzogbW9uZXkgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi5yZXNzb3VyY2VzX21lbmFnZV9zYW5zX2Fycm9uZGlfaW4gaW5cbiAgbGV0IHNpdHVhdGlvbl9mYW1pbGlhbGVfOiBTaXR1YXRpb25GYW1pbGlhbGUudCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnNpdHVhdGlvbl9mYW1pbGlhbGVfaW4gaW5cbiAgbGV0IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfOiBpbnRlZ2VyID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiBpblxuICBsZXQgem9uZV86IFpvbmVESGFiaXRhdGlvbi50ID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4uem9uZV9pbiBpblxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCByZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnJlc2lkZW5jZV9pbiBpblxuICBsZXQgY2F0ZWdvcmllX2NhbGN1bF9hcGxfOiBDYXRlZ29yaWVDYWxjdWxBUEwudCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7IFwiY2F0w6lnb3JpZV9jYWxjdWxfYXBsXCJdXG4gICAgKGVtYmVkX2NhdGVnb3JpZV9jYWxjdWxfYV9wX2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT04MjY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9ODI2OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiVG91cyBzZWN0ZXVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ0Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xNDQ2OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgbWF0Y2ggbW9kZV9vY2N1cGF0aW9uX1xuICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgbG9jYXRpb25fIC0+XG4gICAgICAgICAgICAgICAgKENhdGVnb3JpZUNhbGN1bEFQTC5Mb2NhdGlvbiBsb2NhdGlvbl8pXG4gICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlJlc2lkZW50TG9nZW1lbnRGb3llciBsb2dlbWVudGZveWVyXyAtPlxuICAgICAgICAgICAgICAgIChDYXRlZ29yaWVDYWxjdWxBUEwuTG9nZW1lbnRGb3llciBsb2dlbWVudGZveWVyXylcbiAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBwcm9wcmlldGFpcmVfIC0+XG4gICAgICAgICAgICAgICAgKENhdGVnb3JpZUNhbGN1bEFQTC5BY2Nlc3Npb25Qcm9wcmlldGUgcHJvcHJpZXRhaXJlXylcbiAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBsb2NhdGlvbl8gLT5cbiAgICAgICAgICAgICAgICAoQ2F0ZWdvcmllQ2FsY3VsQVBMLkxvY2F0aW9uIGxvY2F0aW9uXylcbiAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gcHJvcHJpZXRhaXJlXyAtPlxuICAgICAgICAgICAgICAgIChDYXRlZ29yaWVDYWxjdWxBUEwuQWNjZXNzaW9uUHJvcHJpZXRlIHByb3ByaWV0YWlyZV8pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT04MjY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9ODI2OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiVG91cyBzZWN0ZXVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCByZXNzb3VyY2VzX21lbmFnZV9hdmVjX2Fycm9uZGlfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7IFwicmVzc291cmNlc19tw6luYWdlX2F2ZWNfYXJyb25kaVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTgxOTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT04MTk7IGVuZF9jb2x1bW49MjI7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xOTY4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE5Njg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtMTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IENhbGN1bCBkZSBsJ2FpZGUgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGFycm9uZGlfY2VudGFpbmVfc3VwZXJpZXVyZV8gcmVzc291cmNlc19tZW5hZ2Vfc2Fuc19hcnJvbmRpXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9ODE5OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTgxOTsgZW5kX2NvbHVtbj0yMjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXzogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiOyBcInNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbFwiXVxuICAgIChlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTgyNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT04Mjc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODA7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgbWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9cbiAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNlbGliYXRhaXJlIF8gLT5cbiAgICAgICAgICAgICAgICAoU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgKCkpXG4gICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5NYXJpZXMgXyAtPlxuICAgICAgICAgICAgICAgIChTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlICgpKVxuICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuUGFjc2VzIF8gLT5cbiAgICAgICAgICAgICAgICAoU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSAoKSlcbiAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNvbmN1YmlucyBfIC0+XG4gICAgICAgICAgICAgICAgKFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgKCkpXG4gICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5DZWxpYmF0YWlyZVNlcGFyZURlRmFpdCBfIC0+XG4gICAgICAgICAgICAgICAgKFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlICgpKVxuICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuQ29uY3ViaW5hZ2VEb250U2VwYXJlRGVGYWl0IF8gLT5cbiAgICAgICAgICAgICAgICAoU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSAoKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTgyNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT04Mjc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHNvdXNfY2FsY3VsX3RyYWl0ZW1lbnRfOiBUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUudCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7IFwic291c19jYWxjdWxfdHJhaXRlbWVudFwiXVxuICAgIChlbWJlZF90cmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGUpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT04Mjk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9ODI5OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiVG91cyBzZWN0ZXVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODI5OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODI5OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MzU4OyBzdGFydF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjM1ODsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2F0ZWdvcmllX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUNhbGN1bEFQTC5Mb2NhdGlvbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUNhbGN1bEFQTC5BY2Nlc3Npb25Qcm9wcmlldGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVDYWxjdWxBUEwuTG9nZW1lbnRGb3llciBfIC0+IHRydWUpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIGNhdGVnb3JpZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllQ2FsY3VsQVBMLkxvY2F0aW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICh7VHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLmFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWl0ZW1lbnRfbnVsX3RvdXRfbGVfdGVtcHNffSlcbiAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVDYWxjdWxBUEwuQWNjZXNzaW9uUHJvcHJpZXRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICh7VHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLmFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWl0ZW1lbnRfbnVsX3RvdXRfbGVfdGVtcHNffSlcbiAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVDYWxjdWxBUEwuTG9nZW1lbnRGb3llciBsb2dlbWVudF9mb3llcl9fIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAobGV0IHRyYWl0ZW1lbnRfZm9ybXVsZV8gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRpcmVjdFwiOyBcImlucHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHtDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmxveWVyX3ByaW5jaXBhbF9iYXNlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nZW1lbnRfZm95ZXJfXy5Mb2dlbWVudEZveWVyLnJlZGV2YW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYzODE7IHN0YXJ0X2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjM4MTsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSByZXNzb3VyY2VzX21lbmFnZV9hdmVjX2Fycm9uZGlfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjM3NTsgc3RhcnRfY29sdW1uPTQzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYzNzU7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5iZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dlbWVudF9mb3llcl9fLkxvZ2VtZW50Rm95ZXIuYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MzgzOyBzdGFydF9jb2x1bW49MTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjM4MzsgZW5kX2NvbHVtbj03NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBkYXRlX2NvdXJhbnRlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYzNzg7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02Mzc4OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjM3Njsgc3RhcnRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYzNzY7IGVuZF9jb2x1bW49NjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjM3OTsgc3RhcnRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYzNzk7IGVuZF9jb2x1bW49NzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi56b25lX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgem9uZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02Mzc3OyBzdGFydF9jb2x1bW49MjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjM3NzsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmxvZ2VtZW50X2VzdF9jaGFtYnJlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgdHJ1ZSB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYzODc7IHN0YXJ0X2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02Mzg3OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBmYWxzZSB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYzOTQ7IHN0YXJ0X2NvbHVtbj03MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02Mzk0OyBlbmRfY29sdW1uPTc2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4udHlwZV9haWRlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgdHlwZV9haWRlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYzOTU7IHN0YXJ0X2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02Mzk1OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uY29sb2NhdGlvbl9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IGZhbHNlIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjM5MTsgc3RhcnRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYzOTE7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5yZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjM5ODsgc3RhcnRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYzOTg7IGVuZF9jb2x1bW49NDU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5sb2dlbWVudF9tZXVibGVfZDg0Ml8yX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nZW1lbnRfZm95ZXJfXy5Mb2dlbWVudEZveWVyLmxvZ2VtZW50X21ldWJsZV9kODQyXzIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYzOTk7IHN0YXJ0X2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02Mzk5OyBlbmRfY29sdW1uPTc2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ucmVzaWRlbmNlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgcmVzaWRlbmNlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0MDA7IHN0YXJ0X2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NDAwOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpfSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe0NhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODIzXzE2ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5tb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfZDgyM18xNik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGxhZm9uZF9sb3llcl9kODIzXzE2XzIgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGxhZm9uZF9sb3llcl9kODIzXzE2XzIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnBhcnRpY2lwYXRpb25fbWluaW1hbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGFydGljaXBhdGlvbl9taW5pbWFsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudGF1eF9jb21wb3NpdGlvbl9mYW1pbGlhbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudGF1eF9jb21wb3NpdGlvbl9mYW1pbGlhbGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnBhcnRpY2lwYXRpb25fcGVyc29ubmVsbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGFydGljaXBhdGlvbl9wZXJzb25uZWxsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYuYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5haWRlX2ZpbmFsZV9mb3JtdWxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKHBhcmFtMF86IG1vbmV5KSAtPiAobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSBwYXJhbTBfKSkpKSkpKX0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRpcmVjdFwiXSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02Mzc0OyBzdGFydF9jb2x1bW49OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NDAxOyBlbmRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSB0aGVuIHJlc3VsdF8gZWxzZSByZXN1bHRfKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICh7VHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLmFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFpdGVtZW50X2Zvcm11bGVfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFpdGVtZW50X2Zvcm11bGVfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpfSkpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDY5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE0Njk7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBtYXRjaCBjYXRlZ29yaWVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgIHwgQ2F0ZWdvcmllQ2FsY3VsQVBMLkxvY2F0aW9uIGxvY2F0aW9uXyAtPlxuICAgICAgICAgICAgICAgIChsZXQgdHJhaXRlbWVudF9mb3JtdWxlXyA6XG4gICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudCA9XG4gICAgICAgICAgICAgICAgICAgKGxldCByZXN1bHRfIDogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudCA9XG4gICAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiOyBcImRpcmVjdFwiXVxuICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZilcbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7IFwiZGlyZWN0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbilcbiAgICAgICAgICAgICAgICAgICAgICAoe0NhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ubG95ZXJfcHJpbmNpcGFsX2Jhc2VfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IChsb2NhdGlvbl8uTG9jYXRpb24ubG95ZXJfcHJpbmNpcGFsKSB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0Nzk7IHN0YXJ0X2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0Nzk7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgcmVzc291cmNlc19tZW5hZ2VfYXZlY19hcnJvbmRpXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0NzQ7IHN0YXJ0X2NvbHVtbj00MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ3NDsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9jYXRpb25fLkxvY2F0aW9uLmJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlcylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0ODE7IHN0YXJ0X2NvbHVtbj0xNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ4MTsgZW5kX2NvbHVtbj02OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBkYXRlX2NvdXJhbnRlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0Nzc7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ3NzsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0NzU7IHN0YXJ0X2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ3NTsgZW5kX2NvbHVtbj02NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDc4OyBzdGFydF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0Nzg7IGVuZF9jb2x1bW49NzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnpvbmVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgem9uZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDc2OyBzdGFydF9jb2x1bW49MjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0NzY7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmxvZ2VtZW50X2VzdF9jaGFtYnJlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IChsb2NhdGlvbl8uTG9jYXRpb24ubG9nZW1lbnRfZXN0X2NoYW1icmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDgyOyBzdGFydF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0ODI7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9jYXRpb25fLkxvY2F0aW9uLmFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ4NTsgc3RhcnRfY29sdW1uPTE1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDg1OyBlbmRfY29sdW1uPTgwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi50eXBlX2FpZGVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgdHlwZV9haWRlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0ODY7IHN0YXJ0X2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ4NjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uY29sb2NhdGlvbl9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSAobG9jYXRpb25fLkxvY2F0aW9uLmNvbG9jYXRpb24pIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ4Mzsgc3RhcnRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDgzOyBlbmRfY29sdW1uPTQ1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5yZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChsb2NhdGlvbl8uTG9jYXRpb24uYmFpbGxldXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZUJhaWxsZXVyLkJhaWxsZXVyU29jaWFsIGJhaWxsZXVyXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmFpbGxldXJfLkNvbnZlbnRpb25CYWlsbGV1clNvY2lhbC5yZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV9wZXJjdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlQmFpbGxldXIuQmFpbGxldXJQcml2ZUF2ZWNDb252ZW50aW9ubmVtZW50U29jaWFsIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVCYWlsbGV1ci5CYWlsbGV1clByaXZlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDg4OyBzdGFydF9jb2x1bW49MTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0OTE7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmxvZ2VtZW50X21ldWJsZV9kODQyXzJfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgKGxvY2F0aW9uXy5Mb2NhdGlvbi5sb2dlbWVudF9tZXVibGVfZDg0Ml8yKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ5Mjsgc3RhcnRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDkyOyBlbmRfY29sdW1uPTY5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5yZXNpZGVuY2VfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgcmVzaWRlbmNlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0OTM7IHN0YXJ0X2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ5MzsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSl9KSkpKVxuICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgKGxldCByZXN1bHRfIDogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudCA9XG4gICAgICAgICAgICAgICAgICAgICAgKHtDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5tb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfZDgyM18xNiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODIzXzE2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGxhZm9uZF9sb3llcl9kODIzXzE2XzIgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnBsYWZvbmRfbG95ZXJfZDgyM18xNl8yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGFydGljaXBhdGlvbl9taW5pbWFsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGFydGljaXBhdGlvbl9taW5pbWFsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnRhdXhfY29tcG9zaXRpb25fZmFtaWxpYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50YXV4X2NvbXBvc2l0aW9uX2ZhbWlsaWFsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnBhcnRpY2lwYXRpb25fcGVyc29ubmVsbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnBhcnRpY2lwYXRpb25fcGVyc29ubmVsbGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5haWRlX2ZpbmFsZV9mb3JtdWxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAocGFyYW0wXzogbW9uZXkpIC0+IChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSBwYXJhbTBfKSkpKSkpKX0pXG4gICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiOyBcImRpcmVjdFwiXVxuICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjsgXCJkaXJlY3RcIjtcbiAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgKGVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZilcbiAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgKChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDczOyBzdGFydF9jb2x1bW49OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ5NDsgZW5kX2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSB0aGVuIHJlc3VsdF8gZWxzZSByZXN1bHRfKSkpKSkpKVxuICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgKHtUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUuYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgICAgICAgICAgICAgICh0cmFpdGVtZW50X2Zvcm11bGVfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgICAgICAgICAgICAgICAgICBUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgKHRyYWl0ZW1lbnRfZm9ybXVsZV8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSl9KSlcbiAgICAgICAgICAgIHwgQ2F0ZWdvcmllQ2FsY3VsQVBMLkFjY2Vzc2lvblByb3ByaWV0ZSBwcm9wcmlldGFpcmVfIC0+XG4gICAgICAgICAgICAgICAgKGxldCB0cmFpdGVtZW50X2Zvcm11bGVfIDpcbiAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnQgPVxuICAgICAgICAgICAgICAgICAgIChsZXQgcmVzdWx0XyA6XG4gICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS50ID1cbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUpXG4gICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGlyZWN0XCI7IFwiaW5wdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luKVxuICAgICAgICAgICAgICAgICAgICAgICh7Q2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLm1lbnN1YWxpdGVfcHJpbmNpcGFsZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLm1lbnN1YWxpdGVfcHJpbmNpcGFsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTMyOyBzdGFydF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTMyOyBlbmRfY29sdW1uPTcyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgcmVzc291cmNlc19tZW5hZ2VfYXZlY19hcnJvbmRpXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1Mjc7IHN0YXJ0X2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUyNzsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUyODsgc3RhcnRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTI4OyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUzMTsgc3RhcnRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTMxOyBlbmRfY29sdW1uPTc3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnR5cGVfdHJhdmF1eF9sb2dlbWVudF9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLnR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUzMzsgc3RhcnRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTMzOyBlbmRfY29sdW1uPTgwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmRhdGVfc2lnbmF0dXJlX3ByZXRfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUucHJldCkuUHJldC5kYXRlX3NpZ25hdHVyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MzQ7IHN0YXJ0X2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUzNDsgZW5kX2NvbHVtbj02ODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5sb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW5lZmljaWFpcmVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS5sb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW5lZmljaWFpcmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTM2OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MzY7IGVuZF9jb2x1bW49NjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9lbnRyZWVfbG9nZW1lbnRfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS5kYXRlX2VudHJlZV9sb2dlbWVudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1Mzc7IHN0YXJ0X2NvbHVtbj0zNztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUzNzsgZW5kX2NvbHVtbj03MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5jb3Byb3ByaWV0ZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSAocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUuY29wcm9wcmlldGUpIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUzODsgc3RhcnRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTM4OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnNpdHVhdGlvbl9yODIyXzExXzEzXzE3X2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUuc2l0dWF0aW9uX3I4MjJfMTFfMTNfMTcpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTM5OyBzdGFydF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1Mzk7IGVuZF9jb2x1bW49NzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uem9uZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSB6b25lXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1Mjk7IHN0YXJ0X2NvbHVtbj0yMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUyOTsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi50eXBlX3ByZXRfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUucHJldCkuUHJldC50eXBlX3ByZXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTQwOyBzdGFydF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NDA7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uYW5jaWVubmV0ZV9sb2dlbWVudF9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLmFuY2llbm5ldGVfbG9nZW1lbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTQxOyBzdGFydF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NDE7IGVuZF9jb2x1bW49Njg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBkYXRlX2NvdXJhbnRlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MzA7IHN0YXJ0X2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUzMDsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSl9KSkpKVxuICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgKGxldCByZXN1bHRfIDpcbiAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnQgPVxuICAgICAgICAgICAgICAgICAgICAgICh7Q2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5tZW5zdWFsaXRlX2VsaWdpYmxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5tZW5zdWFsaXRlX2VsaWdpYmxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5tZW5zdWFsaXRlX21pbmltYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLm1lbnN1YWxpdGVfbWluaW1hbGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzEwID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzEwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKHBhcmFtMF86IG1vbmV5KSAtPiAobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgcGFyYW0wXykpKSkpKSl9KVxuICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICBcImRpcmVjdFwiXSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAoZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlKVxuICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MjY7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU0MjsgZW5kX2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSB0aGVuIHJlc3VsdF8gZWxzZSByZXN1bHRfKSkpKSkpKVxuICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgKHtUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUuYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgICAgICAgICAgICAgICh0cmFpdGVtZW50X2Zvcm11bGVfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgICAgICAgICAgICAgICAgIFRyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAodHJhaXRlbWVudF9mb3JtdWxlXy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpfSkpXG4gICAgICAgICAgICB8IENhdGVnb3JpZUNhbGN1bEFQTC5Mb2dlbWVudEZveWVyIGxvZ2VtZW50X2ZveWVyX18gLT5cbiAgICAgICAgICAgICAgICAobGV0IHRyYWl0ZW1lbnRfZm9ybXVsZV8gOlxuICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci50ID1cbiAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIudCA9XG4gICAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjsgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyKVxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7IFwiZGlyZWN0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4pXG4gICAgICAgICAgICAgICAgICAgICAgKHtDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi50eXBlX2xvZ2VtZW50X2ZveWVyX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgKGxvZ2VtZW50X2ZveWVyX18uTG9nZW1lbnRGb3llci50eXBlX3VzZXIpIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUxMzsgc3RhcnRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUxMzsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5kYXRlX2NvbnZlbnRpb25uZW1lbnRfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dlbWVudF9mb3llcl9fLkxvZ2VtZW50Rm95ZXIuZGF0ZV9jb252ZW50aW9ubmVtZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUxNDsgc3RhcnRfY29sdW1uPTM3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTE0OyBlbmRfY29sdW1uPTc0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IHJlc3NvdXJjZXNfbWVuYWdlX2F2ZWNfYXJyb25kaV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTA2OyBzdGFydF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MDY7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUwNzsgc3RhcnRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTA3OyBlbmRfY29sdW1uPTY2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTExOyBzdGFydF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MTE7IGVuZF9jb2x1bW49NzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi56b25lX2luID0gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB6b25lXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MDg7IHN0YXJ0X2NvbHVtbj0yMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUwODsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgZGF0ZV9jb3VyYW50ZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTEwOyBzdGFydF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MTA7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5yZWRldmFuY2VfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgKGxvZ2VtZW50X2ZveWVyX18uTG9nZW1lbnRGb3llci5yZWRldmFuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTEyOyBzdGFydF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MTI7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5yZXNpZGVuY2VfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgcmVzaWRlbmNlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MDk7IHN0YXJ0X2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUwOTsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLmNvbmRpdGlvbl8yX2R1XzgzMl8yNV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLmxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5uX25vbWJyZV9wYXJ0c19kODMyXzI1X2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKX0pKSkpXG4gICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIudCA9XG4gICAgICAgICAgICAgICAgICAgICAgKHtDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8yNSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5jb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzI1KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmNvZWZmaWNpZW50X3JfZDgzMl8yNSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmNvZWZmaWNpZW50X3JfZDgzMl8yNSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5uX25vbWJyZV9wYXJ0c19kODMyXzI1ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIubl9ub21icmVfcGFydHNfZDgzMl8yNSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmVxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLnBsYWZvbmRfZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5wbGFmb25kX2VxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmVxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMjUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5jb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChwYXJhbTBfOiBtb25leSkgLT4gKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIudHJhaXRlbWVudF9haWRlX2ZpbmFsZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgcGFyYW0wXykpKSkpKSl9KVxuICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7IFwiZGlyZWN0XCJdXG4gICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjsgXCJkaXJlY3RcIjtcbiAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgKGVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIpXG4gICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUwNTsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MTU7IGVuZF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkgdGhlbiByZXN1bHRfIGVsc2UgcmVzdWx0XykpKSkpKSlcbiAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICh7VHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLmFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICAgICAgICAgICAgICAodHJhaXRlbWVudF9mb3JtdWxlXy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgICAgICAgICAgICAgICAgIFRyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAodHJhaXRlbWVudF9mb3JtdWxlXy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIudHJhaXRlbWVudF9haWRlX2ZpbmFsZSl9KSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTgyOTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT04Mjk7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7IFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXVxuICAgICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFyZ186IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTgzMjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT04MzI7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0NTk7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDU5OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAoc291c19jYWxjdWxfdHJhaXRlbWVudF8uVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpXG4gICAgICAgICAgICAgICAgICAgYXJnXykpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT04MzI7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9ODMyOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTgzMjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT04MzI7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGFpZGVfZmluYWxlX2Zvcm11bGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7IFwiYWlkZV9maW5hbGVfZm9ybXVsZVwiXSAoZW1iZWRfbW9uZXkpXG4gICAgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTgzMTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT04MzE7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDU3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE0NTc7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBzb3VzX2NhbGN1bF90cmFpdGVtZW50Xy5UcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUuYWlkZV9maW5hbGVfZm9ybXVsZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9ODMxOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTgzMTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICB7Q2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudC5haWRlX2ZpbmFsZV9mb3JtdWxlID0gYWlkZV9maW5hbGVfZm9ybXVsZV87XG4gICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV99XG5cbmxldCBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCAoZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW46IEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4udCkgOiBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID1cbiAgbGV0IG1lbmFnZV86IE1lbmFnZS50ID0gZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5tZW5hZ2VfaW4gaW5cbiAgbGV0IGRlbWFuZGV1cl86IERlbWFuZGV1ci50ID0gZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kZW1hbmRldXJfaW4gaW5cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCBjb25kaXRpb25fbG9nZW1lbnRfcmVzaWRlbmNlX3ByaW5jaXBhbGVfOiB1bml0IC0+IGJvb2wgPSBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmNvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcHJpbmNpcGFsZV9pbiBpblxuICBsZXQgY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfOiB1bml0IC0+IGJvb2wgPSBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmNvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlX2luIGluXG4gIGxldCBkYXRlX2VudHJlZV92aWd1ZXVyX2RpZmZlcmVlX2NjaF86IHVuaXQgLT4gZGF0ZSA9IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jY2hfaW4gaW5cbiAgbGV0IGNvbmRpdGlvbl9wcmV0XzogUHJldC50IC0+IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7IFwiY29uZGl0aW9uX3Byw6p0XCJdXG4gICAgKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAocHJldF86IFByZXQudCkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMDk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzA5OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzA5OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzA5OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzA5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMwOTsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMDk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzA5OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvbmRpdGlvbl9wZXVwbGVtZW50X2xvZ2VtZW50X2w4MjJfMTBfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgXCJjb25kaXRpb25fcGV1cGxlbWVudF9sb2dlbWVudF9sODIyXzEwXCJdIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzE4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxODsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTMxODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMTg7IGVuZF9jb2x1bW49NDg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMxODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMTg7IGVuZF9jb2x1bW49NDg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jY2hfOiBkYXRlID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgXCJkYXRlX2VudHLDqWVfdmlndWV1cl9kaWZmw6lyw6llX2NjaFwiXSAoZW1iZWRfZGF0ZSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMyNTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zMjU7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPiBkYXRlX2VudHJlZV92aWd1ZXVyX2RpZmZlcmVlX2NjaF8gKCkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjU7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MzI1OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01NDY0OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTQ2NDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODYxLTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhcGl0cmUgSSA6IEd1YWRlbG91cGUsIEd1eWFuZSwgTWFydGluaXF1ZSwgTGEgUsOpdW5pb24gZXQgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbiBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBkYXRlX29mX251bWJlcnMgKDIwMjEpICgxKSAoMSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMjU7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MzI1OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHNldWlsX2w4MjJfM19wYXJ0c19wcm9wcmlldGVfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgXCJzZXVpbF9sODIyXzNfcGFydHNfcHJvcHJpw6l0w6lcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zMzE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzMxOyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTA1OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODIyLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDb25kaXRpb25zIHJlbGF0aXZlcyBhdSBiw6luw6lmaWNpYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjFcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzMxOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMzMTsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBzZXVpbF9sODIyXzNfcGFydHNfdXN1ZnJ1aXRfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcInNldWlsX2w4MjJfM19wYXJ0c191c3VmcnVpdFwiXVxuICAgIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzMyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMzMjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNjsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMi0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ29uZGl0aW9ucyByZWxhdGl2ZXMgYXUgYsOpbsOpZmljaWFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4xXCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMzMjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMzI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgc2V1aWxfbDgyMl81X3BhdHJpbW9pbmVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjsgXCJzZXVpbF9sODIyXzVfcGF0cmltb2luZVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMzMzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMzM7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTkyODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05Mjg7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjItMjJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gNCA6IFByaXNlIGVuIGNvbXB0ZSBkdSBwYXRyaW1vaW5lXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQ29uZGl0aW9ucyByZWxhdGl2ZXMgYXV4IHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMwMDAwMDBcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzMzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMzMzsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB1c3VmcnVpdF9vdV9wcm9wcmlldGVfZmFtaWxsZV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICBcInVzdWZydWl0X291X3Byb3ByacOpdMOpX2ZhbWlsbGVcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zMzA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzMwOyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTY0OyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fb3JcbiAgICAgICAgICAgICAgKG1hdGNoICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50LnByb3ByaWV0YWlyZSlcbiAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgIHwgUGFyZW50T3VBdXRyZS5EZW1hbmRldXJPdUNvbmpvaW50T3VQYXJlbnRPdVZpYVBhcnRzU29jaWV0ZXMgcGFydHNfIC0+XG4gICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgfCBQYXJlbnRPdUF1dHJlLkF1dHJlIF8gLT4gZmFsc2UpXG4gICAgICAgICAgICAgIChtYXRjaCAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC51c3VmcnVpdClcbiAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgIHwgUGFyZW50T3VBdXRyZS5EZW1hbmRldXJPdUNvbmpvaW50T3VQYXJlbnRPdVZpYVBhcnRzU29jaWV0ZXMgcGFydHNfIC0+XG4gICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgfCBQYXJlbnRPdUF1dHJlLkF1dHJlIF8gLT4gZmFsc2UpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMzA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzMwOyBlbmRfY29sdW1uPTQwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG5vbWJyZV9wZXJzb25uZXNfbG9nZW1lbnRfOiBpbnRlZ2VyID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcIm5vbWJyZV9wZXJzb25uZXNfbG9nZW1lbnRcIl1cbiAgICAoZW1iZWRfaW50ZWdlcikgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMyNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMjY7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMzU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTAzNTsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IENvbmRpdGlvbnMgcmVsYXRpdmVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fYWRkX2ludF9pbnRcbiAgICAgICAgICAgICAgKG9fYWRkX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgKG1hdGNoIChtZW5hZ2VfLk1lbmFnZS5zaXR1YXRpb25fZmFtaWxpYWxlKVxuICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuQ2VsaWJhdGFpcmUgXyAtPiAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICBcIjFcIilcbiAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLk1hcmllcyBfIC0+IChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIilcbiAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLlBhY3NlcyBfIC0+IChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIilcbiAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNvbmN1YmlucyBfIC0+IChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIilcbiAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNlbGliYXRhaXJlU2VwYXJlRGVGYWl0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpXG4gICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5Db25jdWJpbmFnZURvbnRTZXBhcmVEZUZhaXQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpXG4gICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5ub21icmVfYXV0cmVzX29jY3VwYW50c19sb2dlbWVudCkpXG4gICAgICAgICAgICAgIChvX2xlbmd0aCAobWVuYWdlXy5NZW5hZ2UucGVyc29ubmVzX2FfY2hhcmdlKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMyNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMjY7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgc2VwdGllbWVfYWxpbmVhX2w4MjNfMV9hcHBsaWNhYmxlXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgIFwic2VwdGnDqG1lX2FsaW7DqWFfbDgyM18xX2FwcGxpY2FibGVcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zMTk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzE5OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTk7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTk7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE5OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTk7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTM3Njsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzc2OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg2MS01XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IEd1YWRlbG91cGUsIEd1eWFuZSwgTWFydGluaXF1ZSwgTGEgUsOpdW5pb24gZXQgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDU7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0NTsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIzLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxOTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzE5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxOTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25fbm9uX291dmVydHVyZV9sODIyXzlfZGVjZW5jZV9sb2dlbWVudF86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICBcImNvbmRpdGlvbl9ub25fb3V2ZXJ0dXJlX2w4MjJfOV9kZWNlbmNlX2xvZ2VtZW50XCJdIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzE2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxNjsgZW5kX2NvbHVtbj01ODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzE2OyBlbmRfY29sdW1uPTU4O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNzY7IHN0YXJ0X2NvbHVtbj0xODtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNzY7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19ub3RcbiAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubG9nZW1lbnRfZGVjZW50X2w4OV80NjIpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzE2OyBlbmRfY29sdW1uPTU4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMTY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzE2OyBlbmRfY29sdW1uPTU4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvbmRpdGlvbl9ub25fb3V2ZXJ0dXJlX2w4MjJfOF86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICBcImNvbmRpdGlvbl9ub25fb3V2ZXJ0dXJlX2w4MjJfOFwiXSAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMxNTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMTU7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxNTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMxNTsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzYyOyBzdGFydF9jb2x1bW49MTg7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzYyOyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MjItOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLmNvbmRpdGlvbl9yYXR0YWNoZV9mb3llcl9maXNjYWxfcGFyZW50X2lmaSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxNTsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzE1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxNTsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25fbG9nZW1lbnRfcmVzaWRlbmNlX3ByaW5jaXBhbGVfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgXCJjb25kaXRpb25fbG9nZW1lbnRfcsOpc2lkZW5jZV9wcmluY2lwYWxlXCJdIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzExOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTMxMTsgZW5kX2NvbHVtbj01MTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+IGNvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcHJpbmNpcGFsZV8gKCkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTE7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MzExOyBlbmRfY29sdW1uPTUxO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzExOyBlbmRfY29sdW1uPTUxO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ2OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiAxIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IFLDqGdsZXMgZGUgbm9uLWN1bXVsXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IFByaW5jaXBlcyBnw6luw6lyYXV4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5yZXNpZGVuY2VfcHJpbmNpcGFsZSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTE7IGVuZF9jb2x1bW49NTE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMxMTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zMTE7IGVuZF9jb2x1bW49NTE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9kb3RfZGF0ZV9uYWlzc2FuY2VfYXNzdXJlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgIFwib3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZS5kYXRlX25haXNzYW5jZV9hc3N1csOpXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfc8OpY3VyaXTDqV9zb2NpYWxlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyMzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjM7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEwxNjEtMTctMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcmFncmFwaGUgMSA6IEluZm9ybWF0aW9uIGV0IHNpbXBsaWZpY2F0aW9uIGRlcyBkw6ltYXJjaGVzIGRlcyBhc3N1csOpcy5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gNCA6IEFzc3VyYW5jZSB2aWVpbGxlc3NlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQsOpbsOpZmljaWFpcmVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogRGlzcG9zaXRpb25zIHJlbGF0aXZlcyBhdXggcHJlc3RhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyByZWxhdGl2ZXMgYXV4IHByZXN0YXRpb25zIGV0IGF1eCBzb2lucyAtIENvbnRyw7RsZSBtw6lkaWNhbCAtIFR1dGVsbGUgYXV4IHByZXN0YXRpb25zIHNvY2lhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJOiBUaXRyZSBJSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgcmVsYXRpdmVzIGF1IGZpbmFuY2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9zw6ljdXJpdMOpX3NvY2lhbGUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMzsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDE2MS0xNy0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFyYWdyYXBoZSAxIDogSW5mb3JtYXRpb24gZXQgc2ltcGxpZmljYXRpb24gZGVzIGTDqW1hcmNoZXMgZGVzIGFzc3Vyw6lzLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiA0IDogQXNzdXJhbmNlIHZpZWlsbGVzc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBCw6luw6lmaWNpYWlyZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBEaXNwb3NpdGlvbnMgcmVsYXRpdmVzIGF1eCBwcmVzdGF0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHJlbGF0aXZlcyBhdXggcHJlc3RhdGlvbnMgZXQgYXV4IHNvaW5zIC0gQ29udHLDtGxlIG3DqWRpY2FsIC0gVHV0ZWxsZSBhdXggcHJlc3RhdGlvbnMgc29jaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUk6IFRpdHJlIElJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyByZWxhdGl2ZXMgYXUgZmluYW5jZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVtYW5kZXVyXy5EZW1hbmRldXIuZGF0ZV9uYWlzc2FuY2UpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9zw6ljdXJpdMOpX3NvY2lhbGUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTIzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMzsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDE2MS0xNy0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFyYWdyYXBoZSAxIDogSW5mb3JtYXRpb24gZXQgc2ltcGxpZmljYXRpb24gZGVzIGTDqW1hcmNoZXMgZGVzIGFzc3Vyw6lzLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiA0IDogQXNzdXJhbmNlIHZpZWlsbGVzc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBCw6luw6lmaWNpYWlyZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBEaXNwb3NpdGlvbnMgcmVsYXRpdmVzIGF1eCBwcmVzdGF0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHJlbGF0aXZlcyBhdXggcHJlc3RhdGlvbnMgZXQgYXV4IHNvaW5zIC0gQ29udHLDtGxlIG3DqWRpY2FsIC0gVHV0ZWxsZSBhdXggcHJlc3RhdGlvbnMgc29jaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUk6IFRpdHJlIElJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyByZWxhdGl2ZXMgYXUgZmluYW5jZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19KSkgaW5cbiAgbGV0IHJlc3VsdF86IE91dmVydHVyZURyb2l0c1JldHJhaXRlLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcIm91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVcIjtcbiAgICAgIFwiT3V2ZXJ0dXJlRHJvaXRzUmV0cmFpdGVcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjsgXCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlXCI7XG4gICAgICBcIk91dmVydHVyZURyb2l0c1JldHJhaXRlXCJdIG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGUpXG4gICAgKHtPdXZlcnR1cmVEcm9pdHNSZXRyYWl0ZUluLmRhdGVfbmFpc3NhbmNlX2Fzc3VyZV9pbiA9XG4gICAgICAgIG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfZG90X2RhdGVfbmFpc3NhbmNlX2Fzc3VyZV99KSkpIGluXG4gIGxldCBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2RvdF9hZ2Vfb3V2ZXJ0dXJlX2Ryb2l0XzogZHVyYXRpb24gPSByZXN1bHRfLk91dmVydHVyZURyb2l0c1JldHJhaXRlLmFnZV9vdXZlcnR1cmVfZHJvaXQgaW5cbiAgbGV0IHBhdHJpbW9pbmVfdG90YWxfZGVtYW5kZXVyXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7IFwicGF0cmltb2luZV90b3RhbF9kZW1hbmRldXJcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zMjk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzI5OyBlbmRfY29sdW1uPTM3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNjc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MjY3OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIyLTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgKChkZW1hbmRldXJfLkRlbWFuZGV1ci5wYXRyaW1vaW5lKS5QYXRyaW1vaW5lLnByb2R1aXNhbnRfcmV2ZW51X3BlcmlvZGVfcjgyMl8zXzNfcjgyMl80KVxuICAgICAgICAgICAgICAoKGRlbWFuZGV1cl8uRGVtYW5kZXVyLnBhdHJpbW9pbmUpLlBhdHJpbW9pbmUubmVfcHJvZHVpc2FudF9wYXNfcmV2ZW51X3BlcmlvZGVfcjgyMl8zXzNfcjgyMl80KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzI5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMyOTsgZW5kX2NvbHVtbj0zNztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25fbmF0aW9uYWxpdGVfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcImNvbmRpdGlvbl9uYXRpb25hbGl0w6lcIl1cbiAgICAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMxMDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMTA7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxMDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMxMDsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTMzNDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTMzNDsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODYxLTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBHdWFkZWxvdXBlLCBHdXlhbmUsIE1hcnRpbmlxdWUsIExhIFLDqXVuaW9uIGV0IE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHBhcnRpY3VsacOocmVzIMOgIGwnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChtYXRjaCAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggKGRlbWFuZGV1cl8uRGVtYW5kZXVyLm5hdGlvbmFsaXRlKVxuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgTmF0aW9uYWxpdGUuRnJhbmNhaXNlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgfCBOYXRpb25hbGl0ZS5FdHJhbmdlcmUgY29uZGl0aW9uc18gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChjb25kaXRpb25zXy5Db25kaXRpb25zRXRyYW5nZXJzLnNhdGlzZmFpdF9hcnRfNF9vcmRvbm5hbmNlXzIwMDJfbWF5b3R0ZSkpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjU7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MjItMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgbWF0Y2ggKGRlbWFuZGV1cl8uRGVtYW5kZXVyLm5hdGlvbmFsaXRlKVxuICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgfCBOYXRpb25hbGl0ZS5GcmFuY2Fpc2UgXyAtPiB0cnVlXG4gICAgICAgICAgICB8IE5hdGlvbmFsaXRlLkV0cmFuZ2VyZSBjb25kaXRpb25zXyAtPlxuICAgICAgICAgICAgICAgIChjb25kaXRpb25zXy5Db25kaXRpb25zRXRyYW5nZXJzLnNhdGlzZmFpdF9jb25kaXRpb25zX2w1MTJfMl9jb2RlX3NlY3VyaXRlX3NvY2lhbGUpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMTA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzEwOyBlbmRfY29sdW1uPTMyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHBsYWZvbmRfaW5kaXZpZHVlbF9sODE1Xzlfc2VjdV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgXCJwbGFmb25kX2luZGl2aWR1ZWxfbDgxNV85X3PDqWN1XCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMzNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMzc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMzNzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMzNzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX3PDqWN1cml0w6lfc29jaWFsZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMyOTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzMwOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MTUtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogT3V2ZXJ0dXJlIGR1IGRyb2l0IGV0IGxpcXVpZGF0aW9uIGRlIGwnYWxsb2NhdGlvbiBkZSBzb2xpZGFyaXTDqSBhdXggcGVyc29ubmVzIMOiZ8OpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDUgOiBBbGxvY2F0aW9uIGRlIHNvbGlkYXJpdMOpIGF1eCBwZXJzb25uZXMgw6Jnw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSSA6IEFsbG9jYXRpb25zIGF1eCBwZXJzb25uZXMgw6Jnw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFsbG9jYXRpb25zIGF1eCBwZXJzb25uZXMgw6Jnw6llcyAtIEFsbG9jYXRpb24gYXV4IGFkdWx0ZXMgaGFuZGljYXDDqXMgLSBBaWRlcyDDoCBsJ2VtcGxvaSBwb3VyIGxhIGdhcmRlIGRlcyBqZXVuZXMgZW5mYW50cyAtIFByb3RlY3Rpb24gY29tcGzDqW1lbnRhaXJlIGVuIG1hdGnDqHJlIGRlIHNhbnTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE4KSAoNCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMSkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTk5ODQwXCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzM3OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfc8OpY3VyaXTDqV9zb2NpYWxlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM0OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMzU7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgxNS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBPdXZlcnR1cmUgZHUgZHJvaXQgZXQgbGlxdWlkYXRpb24gZGUgbCdhbGxvY2F0aW9uIGRlIHNvbGlkYXJpdMOpIGF1eCBwZXJzb25uZXMgw6Jnw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgNSA6IEFsbG9jYXRpb24gZGUgc29saWRhcml0w6kgYXV4IHBlcnNvbm5lcyDDomfDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJIDogQWxsb2NhdGlvbnMgYXV4IHBlcnNvbm5lcyDDomfDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWxsb2NhdGlvbnMgYXV4IHBlcnNvbm5lcyDDomfDqWVzIC0gQWxsb2NhdGlvbiBhdXggYWR1bHRlcyBoYW5kaWNhcMOpcyAtIEFpZGVzIMOgIGwnZW1wbG9pIHBvdXIgbGEgZ2FyZGUgZGVzIGpldW5lcyBlbmZhbnRzIC0gUHJvdGVjdGlvbiBjb21wbMOpbWVudGFpcmUgZW4gbWF0acOocmUgZGUgc2FudMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDQxODQwXCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzM3OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfc8OpY3VyaXTDqV9zb2NpYWxlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNDA7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgxNS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBPdXZlcnR1cmUgZHUgZHJvaXQgZXQgbGlxdWlkYXRpb24gZGUgbCdhbGxvY2F0aW9uIGRlIHNvbGlkYXJpdMOpIGF1eCBwZXJzb25uZXMgw6Jnw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgNSA6IEFsbG9jYXRpb24gZGUgc29saWRhcml0w6kgYXV4IHBlcnNvbm5lcyDDomfDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJIDogQWxsb2NhdGlvbnMgYXV4IHBlcnNvbm5lcyDDomfDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWxsb2NhdGlvbnMgYXV4IHBlcnNvbm5lcyDDomfDqWVzIC0gQWxsb2NhdGlvbiBhdXggYWR1bHRlcyBoYW5kaWNhcMOpcyAtIEFpZGVzIMOgIGwnZW1wbG9pIHBvdXIgbGEgZ2FyZGUgZGVzIGpldW5lcyBlbmZhbnRzIC0gUHJvdGVjdGlvbiBjb21wbMOpbWVudGFpcmUgZW4gbWF0acOocmUgZGUgc2FudMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDgzODQwXCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzM3OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2F1dHJlc19zb3VyY2VzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU4OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDaXJjdWxhaXJlIGRlIGxhIENOQVYgMjAyMy0zIGR1IDA5LzAxLzIwMjIgXFxcIlJldmFsb3Jpc2F0aW9uIMOgIGNvbXB0ZXIgZHUgMWVyIGphbnZpZXIgMjAyM1xcXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnRzIHJldmFsb3Jpc8OpcyBkZSBsJ2FsbG9jYXRpb24gZGUgc29saWRhcml0w6kgYXV4IHBlcnNvbm5lcyDDomfDqWVzXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMTUzMzAyXCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzM3OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2F1dHJlc19zb3VyY2VzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkwOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDaXJjdWxhaXJlIGRlIGxhIENOQVYgMjAyMi0zIGR1IDExLzAxLzIwMjIgXFxcIlJldmFsb3Jpc2F0aW9uIMOgIGNvbXB0ZXIgZHUgMWVyIGphbnZpZXIgMjAyMlxcXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnRzIHJldmFsb3Jpc8OpcyBkZSBsJ2FsbG9jYXRpb24gZGUgc29saWRhcml0w6kgYXV4IHBlcnNvbm5lcyDDomfDqWVzXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjExMDAxNDRcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMzc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMzc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXV0cmVzX3NvdXJjZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyMzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2lyY3VsYWlyZSBkZSBsYSBDTkFWIDIwMjEtMSBkdSAxMS8wMS8yMDIxIFxcXCJSZXZhbG9yaXNhdGlvbiDDoCBjb21wdGVyIGR1IDFlciBqYW52aWVyIDIwMjFcXFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50cyByZXZhbG9yaXPDqXMgZGUgbCdhbGxvY2F0aW9uIGRlIHNvbGlkYXJpdMOpIGF1eCBwZXJzb25uZXMgw6Jnw6llc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDg4MTc1XCIpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMzNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMzc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY29uZGl0aW9uX2xvZ2VtZW50X2xvY2F0aW9uX3RpZXJzXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgIFwiY29uZGl0aW9uX2xvZ2VtZW50X2xvY2F0aW9uX3RpZXJzXCJdIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzEzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxMzsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzEzOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzEzOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxMzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzEzOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIyMTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMjk7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIyLTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50LmxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTG91ZU91U291c0xvdWVBRGVzVGllcnMuTm9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IExvdWVPdVNvdXNMb3VlQURlc1RpZXJzLk91aSBwZXJzb25uZV8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxldCByZXN1bHRfIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBLnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJWw6lyaWZpY2F0aW9uw4JnZVN1cMOpcmlldXLDgFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJWw6lyaWZpY2F0aW9uw4JnZVN1cMOpcmlldXLDgFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIjsgXCJpbnB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF92ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh7VmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLmRhdGVfbmFpc3NhbmNlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGVyc29ubmVfLlBlcnNvbm5lU291c0xvY2F0aW9uLmRhdGVfbmFpc3NhbmNlX3BlcnNvbm5lX3NvdXNfbG9jYXRpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMjU7IGVuZF9jb2x1bW49NzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIyLTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgZGF0ZV9jb3VyYW50ZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjI2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIyNjsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4uYW5uZWVzX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHVyYXRpb25fb2ZfbnVtYmVycyAoMzApICgwKSAoMCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjI3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIyNzsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpfSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS50ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh7VmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS5lc3Rfc3VwZXJpZXVyID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5WZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBLmVzdF9zdXBlcmlldXIpfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiVsOpcmlmaWNhdGlvbsOCZ2VTdXDDqXJpZXVyw4BcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIl0gKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiVsOpcmlmaWNhdGlvbsOCZ2VTdXDDqXJpZXVyw4BcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF92ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjI0OyBzdGFydF9jb2x1bW49ODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMjc7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkgdGhlbiByZXN1bHRfIGVsc2UgcmVzdWx0XykpKSkpKSkuVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS5lc3Rfc3VwZXJpZXVyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBlcnNvbm5lXy5QZXJzb25uZVNvdXNMb2NhdGlvbi5jb25mb3JtZV9hcnRpY2xlX2w0NDJfMSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjE1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMTY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnMpXG4gICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICB8IExvdWVPdVNvdXNMb3VlQURlc1RpZXJzLk5vbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgIHwgTG91ZU91U291c0xvdWVBRGVzVGllcnMuT3VpIF8gLT4gZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzEzOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMTM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzEzOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgXCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzLmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzgwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM4MDsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM4MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zODA7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzgwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM4MDsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcHJlc3RhdGlvbl9jb3VyYW50ZV86IEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgIFwicHJlc3RhdGlvbnNfZmFtaWxpYWxlcy5wcmVzdGF0aW9uX2NvdXJhbnRlXCJdXG4gICAgICAoZW1iZWRfZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTM4MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zODE7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zODE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzgxOyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuQWxsb2NhdGlvbkxvZ2VtZW50ICgpKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTM4MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zODE7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3Jlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgXCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzLnLDqXNpZGVuY2VcIl0gKGVtYmVkX2NvbGxlY3Rpdml0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zODM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzgzOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzgzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM4MzsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzgzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM4MzsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfYWdlX2w1MTJfM18yXzogdW5pdCAtPiBkdXJhdGlvbiA9IGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzLsOiZ2VfbDUxMl8zXzJcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2R1cmF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU3MjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTcyNTsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIFI4NjItMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBTYWludC1CYXJ0aMOpbGVteSBldCBTYWludC1NYXJ0aW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU3MjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTcyNTsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIFI4NjItMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBTYWludC1CYXJ0aMOpbGVteSBldCBTYWludC1NYXJ0aW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU3MjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTcyNTsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIFI4NjItMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBTYWludC1CYXJ0aMOpbGVteSBldCBTYWludC1NYXJ0aW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU3MjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTcyNTsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIFI4NjItMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBTYWludC1CYXJ0aMOpbGVteSBldCBTYWludC1NYXJ0aW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTcyNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU3Mjk7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSBSODYyLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIEkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogU2FpbnQtQmFydGjDqWxlbXkgZXQgU2FpbnQtTWFydGluXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfZW50cmVlX3ZpZ3VldXJfZGlmZmVyZWVfY2NoXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uX29mX251bWJlcnMgKDIyKSAoMCkgKDApKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTYzMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU2Mzc7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSBEODYxLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb24gcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbl9vZl9udW1iZXJzICgyMikgKDApICgwKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE1MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTUyOyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgUjgyMy00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uX29mX251bWJlcnMgKDIxKSAoMCkgKDApKSkpIGluXG4gIGxldCByZXN1bHRfOiBFbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcy50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjsgXCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzXCI7XG4gICAgICBcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjsgXCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzXCI7XG4gICAgICBcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIl1cbiAgICBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzKVxuICAgICh7RWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIEVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4ucHJlc3RhdGlvbl9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcHJlc3RhdGlvbl9jb3VyYW50ZV87XG4gICAgICAgIEVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4ucmVzaWRlbmNlX2luID1cbiAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9yZXNpZGVuY2VfO1xuICAgICAgICBFbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luLmFnZV9sNTEyXzNfMl9pbiA9XG4gICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfYWdlX2w1MTJfM18yX30pKSkgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2FnZV9sNTEyXzNfMl86IGR1cmF0aW9uID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcy5hZ2VfbDUxMl8zXzIgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2Ryb2l0X291dmVydF86IEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy50IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgPSByZXN1bHRfLkVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzLmRyb2l0X291dmVydCBpblxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfY29uZGl0aW9uc19ob3JzX2FnZV86IEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy50IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcy5jb25kaXRpb25zX2hvcnNfYWdlIGluXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9yZWdpbWVfb3V0cmVfbWVyX2w3NTFfMV86IGJvb2wgPSByZXN1bHRfLkVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzLnJlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xIGluXG4gIGxldCBjb25kaXRpb25fbG9nZW1lbnRfbW9kZV9vY2N1cGF0aW9uXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgIFwiY29uZGl0aW9uX2xvZ2VtZW50X21vZGVfb2NjdXBhdGlvblwiXSAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMxMjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMTI7IGVuZF9jb2x1bW49NDU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxMjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMxMjsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMxMjsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxMjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTI7IGVuZF9jb2x1bW49NDU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xOTU7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MjItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kIHVzdWZydWl0X291X3Byb3ByaWV0ZV9mYW1pbGxlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50LnByb3ByaWV0YWlyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQYXJlbnRPdUF1dHJlLkRlbWFuZGV1ck91Q29uam9pbnRPdVBhcmVudE91VmlhUGFydHNTb2NpZXRlcyBwYXJ0c18gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydHNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQYXJlbnRPdUF1dHJlLkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC5cIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXVpbF9sODIyXzNfcGFydHNfcHJvcHJpZXRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQudXN1ZnJ1aXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGFyZW50T3VBdXRyZS5EZW1hbmRldXJPdUNvbmpvaW50T3VQYXJlbnRPdVZpYVBhcnRzU29jaWV0ZXMgcGFydHNfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGFyZW50T3VBdXRyZS5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V1aWxfbDgyMl8zX3BhcnRzX3VzdWZydWl0XykpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNzQ7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTc2OyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5tb2RlX29jY3VwYXRpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXN1ZnJ1aXRfb3VfcHJvcHJpZXRlX2ZhbWlsbGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlNvdXNMb2NhdGFpcmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0aW9uQWNjZXNzaW9uIF8gLT4gZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQzOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDk7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlJlc2lkZW50TG9nZW1lbnRGb3llciBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQucmVzaWRlbmNlX3ByaW5jaXBhbGUpXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlNvdXNMb2NhdGFpcmUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0aW9uQWNjZXNzaW9uIF8gLT4gdHJ1ZSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzEyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxMjsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzEyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxMjsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7IFwiY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VcIl1cbiAgICAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMxNDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zMTQ7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPiBjb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZV8gKCkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTQ7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MzE0OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxNDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzE0OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE0OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMxNDsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE0OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzE0OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01MjgwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01MjgxOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4NDQtNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDb25kaXRpb25zIGRlIHBldXBsZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnBlcnNvbm5lc19hZ2Vlc19oYW5kaWNhcGVlc19mb3llcl9yODQ0XzQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTUyNzM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01Mjc1OyBlbmRfY29sdW1uPTU4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODQ0LTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENvbmRpdGlvbnMgZGUgcGV1cGxlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucGVyc29ubmVzX2FnZWVzX2hhbmRpY2FwZWVzX2ZveWVyX3I4NDRfNClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5zdXJmYWNlX21fY2FycmVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjlcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMTZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0ODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDY1OyBlbmRfY29sdW1uPTY1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBDb25kaXRpb25zIHJlbGF0aXZlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAobGV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfbWluaW1hbGVfc2Fuc19zZXVpbF9tX2NhcnJlc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGludGVnZXIgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChtZW5hZ2VfLk1lbmFnZS5zaXR1YXRpb25fZmFtaWxpYWxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNlbGliYXRhaXJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuTWFyaWVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjE2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLlBhY3NlcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5Db25jdWJpbnMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMTZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuQ2VsaWJhdGFpcmVTZXBhcmVEZUZhaXQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5Db25jdWJpbmFnZURvbnRTZXBhcmVEZUZhaXQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMTZcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2Uubm9tYnJlX2F1dHJlc19vY2N1cGFudHNfbG9nZW1lbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnBlcnNvbm5lc19hX2NoYXJnZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjlcIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfbWluaW1hbGVfc2Fuc19zZXVpbF9tX2NhcnJlc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI3MFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludCBub21icmVfcGVyc29ubmVzX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjhcIikpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5zdXJmYWNlX21fY2FycmVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjcwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5zdXJmYWNlX21fY2FycmVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlX21pbmltYWxlX3NhbnNfc2V1aWxfbV9jYXJyZXNfKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE0OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzE0OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMTQ7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MzE0OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGFnZV9sMTYxXzE3XzJfc2VjdV86IGR1cmF0aW9uID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcIsOiZ2VfbDE2MV8xN18yX3PDqWN1XCJdXG4gICAgKGVtYmVkX2R1cmF0aW9uKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzM2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMzNjsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfc8OpY3VyaXTDqV9zb2NpYWxlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjU7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEwxNjEtMTctMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcmFncmFwaGUgMSA6IEluZm9ybWF0aW9uIGV0IHNpbXBsaWZpY2F0aW9uIGRlcyBkw6ltYXJjaGVzIGRlcyBhc3N1csOpcy5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gNCA6IEFzc3VyYW5jZSB2aWVpbGxlc3NlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQsOpbsOpZmljaWFpcmVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogRGlzcG9zaXRpb25zIHJlbGF0aXZlcyBhdXggcHJlc3RhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyByZWxhdGl2ZXMgYXV4IHByZXN0YXRpb25zIGV0IGF1eCBzb2lucyAtIENvbnRyw7RsZSBtw6lkaWNhbCAtIFR1dGVsbGUgYXV4IHByZXN0YXRpb25zIHNvY2lhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJOiBUaXRyZSBJSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgcmVsYXRpdmVzIGF1IGZpbmFuY2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfZG90X2FnZV9vdXZlcnR1cmVfZHJvaXRfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMzY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzM2OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHBhdHJpbW9pbmVfcHJpc19lbl9jb21wdGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjsgXCJwYXRyaW1vaW5lX3ByaXNfZW5fY29tcHRlXCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzM0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMzNDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzM0OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMzNDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzM0OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMzNDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzM0OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTE4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMwMjsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIyLTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50LmVzdF9laHBhZF9vdV9tYWlzb25fYXV0b25vbWllX2wzMTNfMTJfYXNmKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjg4OyBzdGFydF9jb2x1bW49MTg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI5MDsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi01XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19mb2xkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChhY2NfOiBib29sKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByZXN0YXRpb25fOiBQcmVzdGF0aW9uUmVjdWUudCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fb3IgYWNjX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBwcmVzdGF0aW9uX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHJlc3RhdGlvblJlY3VlLkFsbG9jYXRpb25Tb3V0aWVuRW5mYW50SGFuZGljYXBlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcHJlc3RhdGlvbl9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFByZXN0YXRpb25SZWN1ZS5BbGxvY2F0aW9uQWR1bHRlSGFuZGljYXBlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSkpKSBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnByZXN0YXRpb25zX3JlY3VlcykpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQ1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDU7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMi0yMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDQgOiBQcmlzZSBlbiBjb21wdGUgZHUgcGF0cmltb2luZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQ29uZGl0aW9ucyByZWxhdGl2ZXMgYXV4IHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb24gcGF0cmltb2luZV90b3RhbF9kZW1hbmRldXJfXG4gICAgICAgICAgICAgICAgICAgICAgIHNldWlsX2w4MjJfNV9wYXRyaW1vaW5lXykpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAoZGVtYW5kZXVyXy5EZW1hbmRldXIucGF0cmltb2luZSkuUGF0cmltb2luZS5uZV9wcm9kdWlzYW50X3Bhc19yZXZlbnVfcGVyaW9kZV9yODIyXzNfM19yODIyXzQpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTI3MTsgc3RhcnRfY29sdW1uPTMzOyBlbmRfbGluZT0yNzE7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MjItNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgIChvX2d0X21vbl9tb24gcGF0cmltb2luZV90b3RhbF9kZW1hbmRldXJfXG4gICAgICAgICAgICAgICAgIHNldWlsX2w4MjJfNV9wYXRyaW1vaW5lXykgdGhlbiBwYXRyaW1vaW5lX3RvdGFsX2RlbWFuZGV1cl9cbiAgICAgICAgICAgICAgZWxzZSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzM0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMzNDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25fb3V2ZXJ0dXJlX2w4MjJfMTBfcGV1cGxlbWVudF9sb2dlbWVudF86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICBcImNvbmRpdGlvbl9vdXZlcnR1cmVfbDgyMl8xMF9wZXVwbGVtZW50X2xvZ2VtZW50XCJdIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzE3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxNzsgZW5kX2NvbHVtbj01ODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzE3OyBlbmRfY29sdW1uPTU4O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MDE7IHN0YXJ0X2NvbHVtbj0xODtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MDE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi0xMFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfKSkgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTMxNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMTc7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMxNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMTc7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgYWdlX2wzNTFfOF8xX3NlY3VfOiBkdXJhdGlvbiA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjsgXCLDomdlX2wzNTFfOF8xX3PDqWN1XCJdXG4gICAgKGVtYmVkX2R1cmF0aW9uKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzM1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMzNTsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfc8OpY3VyaXTDqV9zb2NpYWxlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE2Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xNjM7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEwzNTEtOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gNSA6IFRhdXggZXQgbW9udGFudCBkZSBsYSBwZW5zaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogT3V2ZXJ0dXJlIGR1IGRyb2l0LCBsaXF1aWRhdGlvbiBldCBjYWxjdWwgZGVzIHBlbnNpb25zIGRlIHJldHJhaXRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgViA6IEFzc3VyYW5jZSB2aWVpbGxlc3NlIC0gQXNzdXJhbmNlIHZldXZhZ2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBJSUkgOiBEaXNwb3NpdGlvbnMgcmVsYXRpdmVzIGF1eCBhc3N1cmFuY2VzIHNvY2lhbGVzIGV0IMOgIGRpdmVyc2VzIGNhdMOpZ29yaWVzIGRlIHBlcnNvbm5lcyByYXR0YWNow6llcyBhdSByw6lnaW1lIGfDqW7DqXJhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fYWRkX2R1cl9kdXIgYWdlX2wxNjFfMTdfMl9zZWN1X1xuICAgICAgICAgICAgICAoZHVyYXRpb25fb2ZfbnVtYmVycyAoNSkgKDApICgwKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMzNTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMzU7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfbG9nZW1lbnRfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcIsOpbGlnaWJpbGl0w6lfbG9nZW1lbnRcIl1cbiAgICAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMyMDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMjA7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMyMDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMyMDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMyMDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgY29uZGl0aW9uX25vbl9vdXZlcnR1cmVfbDgyMl84X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbl9ub25fb3V2ZXJ0dXJlX2w4MjJfOV9kZWNlbmNlX2xvZ2VtZW50XykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT04NDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODc7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZCBjb25kaXRpb25fbG9nZW1lbnRfcmVzaWRlbmNlX3ByaW5jaXBhbGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZCBjb25kaXRpb25fbG9nZW1lbnRfbW9kZV9vY2N1cGF0aW9uX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmQgY29uZGl0aW9uX2xvZ2VtZW50X2xvY2F0aW9uX3RpZXJzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25fb3V2ZXJ0dXJlX2w4MjJfMTBfcGV1cGxlbWVudF9sb2dlbWVudF8pKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzIwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMyMDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzIwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMyMDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25fMl9yODIzXzRfOiBQZXJzb25uZUFDaGFyZ2UudCAtPiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcImNvbmRpdGlvbl8yX3I4MjNfNFwiXVxuICAgICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKHBlcnNvbm5lX2FfY2hhcmdlXzogUGVyc29ubmVBQ2hhcmdlLnQpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzQ2OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTM0NjsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNDY7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM0NjsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTk5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyMjI7IGVuZF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODIzLTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBwZXJzb25uZV9hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5FbmZhbnRBQ2hhcmdlIGVuZmFudF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuQXV0cmVQZXJzb25uZUFDaGFyZ2UgcGFyZW50XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSAocGFyZW50Xy5BdXRyZVBlcnNvbm5lQUNoYXJnZS5wYXJlbnRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFBhcmVudGUuQXNjZW5kYW50ICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJlbnRfLkF1dHJlUGVyc29ubmVBQ2hhcmdlLnJlc3NvdXJjZXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfaW5kaXZpZHVlbF9sODE1Xzlfc2VjdV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEuMjVcIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2RhdF9kdXIgQWJvcnRPblJvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFyZW50Xy5BdXRyZVBlcnNvbm5lQUNoYXJnZS5kYXRlX25haXNzYW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZV9sMzUxXzhfMV9zZWN1XylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFyZW50Xy5BdXRyZVBlcnNvbm5lQUNoYXJnZS50aXR1bGFpcmVfYWxsb2NhdGlvbl9wZXJzb25uZV9hZ2VlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsZXQgcmVzdWx0XyA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQS50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiVsOpcmlmaWNhdGlvbsOCZ2VJbmbDqXJpZXVyT3XDiWdhbMOAXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRpcmVjdFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiVsOpcmlmaWNhdGlvbsOCZ2VJbmbDqXJpZXVyT3XDiWdhbMOAXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRpcmVjdFwiOyBcImlucHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX3ZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe1ZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi5kYXRlX25haXNzYW5jZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhcmVudF8uQXV0cmVQZXJzb25uZUFDaGFyZ2UuZGF0ZV9uYWlzc2FuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTIxMjsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgUjgyMy00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIxMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTM3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjEzOyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgUjgyMy00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi5hbm5lZXNfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkdXJhdGlvbl9vZl9udW1iZXJzICg2NSkgKDApICgwKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyMTQ7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSBSODIzLTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKX0pKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCByZXN1bHRfIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEEudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHtWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBLmVzdF9pbmZlcmlldXJfb3VfZWdhbCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQS5lc3RfaW5mZXJpZXVyX291X2VnYWwpfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiVsOpcmlmaWNhdGlvbsOCZ2VJbmbDqXJpZXVyT3XDiWdhbMOAXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGlyZWN0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJWw6lyaWZpY2F0aW9uw4JnZUluZsOpcmlldXJPdcOJZ2Fsw4BcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF92ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2EpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xNztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjE0OyBlbmRfY29sdW1uPTM3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjMtNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSB0aGVuIHJlc3VsdF8gZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0XykpKSkpKSkuVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQS5lc3RfaW5mZXJpZXVyX291X2VnYWwpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9kYXRfZHVyIEFib3J0T25Sb3VuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhcmVudF8uQXV0cmVQZXJzb25uZUFDaGFyZ2UuZGF0ZV9uYWlzc2FuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2VfbDE2MV8xN18yX3NlY3VfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFyZW50Xy5BdXRyZVBlcnNvbm5lQUNoYXJnZS5iZW5lZmljaWFpcmVfbDE2MV8xOV9sMzUxXzhfbDY0M18zX3NlY3UpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNDY7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNDY7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT0zNDY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MzQ2OyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTM0Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zNDY7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcIsOpbGlnaWJpbGl0w6lcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zNDI7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MzQyOyBlbmRfY29sdW1uPTIzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNDI7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNDI7IGVuZF9jb2x1bW49MjM7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNTM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM1NTsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kIGNvbmRpdGlvbl9uYXRpb25hbGl0ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kIGNvbmRpdGlvbl9sb2dlbWVudF9tb2RlX29jY3VwYXRpb25fXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWdpYmlsaXRlX2xvZ2VtZW50XykpKSkgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM0Mjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zNDI7IGVuZF9jb2x1bW49MjM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTM0Mjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zNDI7IGVuZF9jb2x1bW49MjM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgcHJpc2VfZW5fY29tcHRlX3BlcnNvbm5lX2FfY2hhcmdlXzogUGVyc29ubmVBQ2hhcmdlLnQgLT4gYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgIFwicHJpc2VfZW5fY29tcHRlX3BlcnNvbm5lX8OgX2NoYXJnZVwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChwZXJzb25uZV9hX2NoYXJnZV86IFBlcnNvbm5lQUNoYXJnZS50KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMyMTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMjE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzIxOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMjE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjE7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzIxOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI0Njsgc3RhcnRfY29sdW1uPTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyNTI7IGVuZF9jb2x1bW49NDg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjMtNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcGVyc29ubmVfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkVuZmFudEFDaGFyZ2UgZW5mYW50XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkF1dHJlUGVyc29ubmVBQ2hhcmdlIHBhcmVudF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJlbnRfLkF1dHJlUGVyc29ubmVBQ2hhcmdlLmluY2FwYWNpdGVfODBfcG91cmNlbnRfb3VfcmVzdHJpY3Rpb25fZW1wbG9pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFyZW50Xy5BdXRyZVBlcnNvbm5lQUNoYXJnZS5yZXNzb3VyY2VzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9pbmRpdmlkdWVsX2w4MTVfOV9zZWN1X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxLjI1XCIpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjI3OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyMjc7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODIzLTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjb25kaXRpb25fMl9yODIzXzRcIl0gKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY29uZGl0aW9uXzJfcjgyM180XCI7IFwib3V0cHV0XCJdIChlbWJlZF9ib29sKVxuICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBcImNvbmRpdGlvbl8yX3I4MjNfNFwiXSBjb25kaXRpb25fMl9yODIzXzRfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBcImNvbmRpdGlvbl8yX3I4MjNfNFwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9wZXJzb25uZV9hX2NoYXJnZSkgcGVyc29ubmVfYV9jaGFyZ2VfKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMyMTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzIxOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzIxOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMyMTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzIxOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzIxOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMyMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMyMTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMyMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMjE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODM3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTg0MzsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIEw4NjItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcnNvbm5lX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5FbmZhbnRBQ2hhcmdlIGVuZmFudF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5vYmxpZ2F0aW9uX3Njb2xhaXJlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BdmFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5QZW5kYW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkFwcmVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9kYXRfZHVyIEFib3J0T25Sb3VuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLmRhdGVfZGVfbmFpc3NhbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9hZ2VfbDUxMl8zXzJfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5ldHVkZXNfYXBwcmVudGlzc2FnZV9zdGFnZV9mb3JtYXRpb25fcHJvX2ltcG9zc2liaWxpdGVfdHJhdmFpbCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkF1dHJlUGVyc29ubmVBQ2hhcmdlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTczOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg2MS02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gNCA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IEd1YWRlbG91cGUsIEd1eWFuZSwgTWFydGluaXF1ZSwgTGEgUsOpdW5pb24gZXQgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHBlcnNvbm5lX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkVuZmFudEFDaGFyZ2UgZW5mYW50XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2Uub2JsaWdhdGlvbl9zY29sYWlyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXZhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLlBlbmRhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkFwcmVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2RhdF9kdXIgQWJvcnRPblJvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuZGF0ZV9kZV9uYWlzc2FuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2FnZV9sNTEyXzNfMl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuZXR1ZGVzX2FwcHJlbnRpc3NhZ2Vfc3RhZ2VfZm9ybWF0aW9uX3Byb19pbXBvc3NpYmlsaXRlX3RyYXZhaWwpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuQXV0cmVQZXJzb25uZUFDaGFyZ2UgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0OTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDU3OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MjMtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcHRpZW1lX2FsaW5lYV9sODIzXzFfYXBwbGljYWJsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHBlcnNvbm5lX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuRW5mYW50QUNoYXJnZSBlbmZhbnRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5uYXRpb25hbGl0ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5hdGlvbmFsaXRlLkZyYW5jYWlzZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5hdGlvbmFsaXRlLkV0cmFuZ2VyZSBjb25kaXRpb25zXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uZGl0aW9uc18uQ29uZGl0aW9uc0V0cmFuZ2Vycy5zYXRpc2ZhaXRfY29uZGl0aW9uc19sNTEyXzJfY29kZV9zZWN1cml0ZV9zb2NpYWxlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5BdXRyZVBlcnNvbm5lQUNoYXJnZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE1Njsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTc4OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMy00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcGVyc29ubmVfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuRW5mYW50QUNoYXJnZSBlbmZhbnRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydFwiXSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0XCI7IFwib3V0cHV0XCJdIChlbWJlZF9ib29sKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfZHJvaXRfb3V2ZXJ0XylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9lbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh7RW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmlkZW50aWZpYW50ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLmlkZW50aWZpYW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMub2JsaWdhdGlvbl9zY29sYWlyZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLm9ibGlnYXRpb25fc2NvbGFpcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5yZW11bmVyYXRpb25fbWVuc3VlbGxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UucmVtdW5lcmF0aW9uX21lbnN1ZWxsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmRhdGVfZGVfbmFpc3NhbmNlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuZGF0ZV9kZV9uYWlzc2FuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5wcmlzZV9lbl9jaGFyZ2UgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLnNpdHVhdGlvbl9nYXJkZV9hbHRlcm5lZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25HYXJkZUFsdGVybmVlLlBhc0RlR2FyZGVBbHRlcm5lZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQcmlzZUVuQ2hhcmdlRW5mYW50LkVmZmVjdGl2ZUV0UGVybWFuZW50ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUuR2FyZGVBbHRlcm5lZUNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQcmlzZUVuQ2hhcmdlRW5mYW50LkdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLmFfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQpfSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkF1dHJlUGVyc29ubmVBQ2hhcmdlIHBhcmVudF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjE7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMjE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT0zMjE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzIxOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMyMTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMjE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGVfOiBQZXJzb25uZUFDaGFyZ2UudCBhcnJheSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgIFwicGVyc29ubmVzX8OgX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXCJdXG4gICAgKGVtYmVkX2FycmF5IChlbWJlZF9wZXJzb25uZV9hX2NoYXJnZSkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zMjM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzIzOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTM5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExMzk7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjMtNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX2ZpbHRlclxuICAgICAgICAgICAgICAoZnVuIChwZXJzb25uZV9hX2NoYXJnZV86IFBlcnNvbm5lQUNoYXJnZS50KSAtPiAobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICBcInByaXNlX2VuX2NvbXB0ZV9wZXJzb25uZV/DoF9jaGFyZ2VcIl1cbiAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgXCJwcmlzZV9lbl9jb21wdGVfcGVyc29ubmVfw6BfY2hhcmdlXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgIChlbWJlZF9ib29sKSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICBcInByaXNlX2VuX2NvbXB0ZV9wZXJzb25uZV/DoF9jaGFyZ2VcIl1cbiAgICAgICAgICAgICAgICAgcHJpc2VfZW5fY29tcHRlX3BlcnNvbm5lX2FfY2hhcmdlXylcbiAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgXCJwcmlzZV9lbl9jb21wdGVfcGVyc29ubmVfw6BfY2hhcmdlXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgIChlbWJlZF9wZXJzb25uZV9hX2NoYXJnZSkgcGVyc29ubmVfYV9jaGFyZ2VfKSkpKSkpKVxuICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucGVyc29ubmVzX2FfY2hhcmdlKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzIzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMyMzsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXzogZGVjaW1hbCBhcnJheSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgIFwiY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm7DqWVfcHJpc19lbl9jb21wdGVcIl1cbiAgICAoZW1iZWRfYXJyYXkgKGVtYmVkX2RlY2ltYWwpKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzQ0OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTM0NDsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM1OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNTk7IGVuZF9jb2x1bW49NjM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fbWFwXG4gICAgICAgICAgICAgIChmdW4gKHBlcnNvbm5lX2FfY2hhcmdlXzogUGVyc29ubmVBQ2hhcmdlLnQpIC0+XG4gICAgICAgICAgICAgICAgIG1hdGNoIHBlcnNvbm5lX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkVuZmFudEFDaGFyZ2UgZW5mYW50XyAtPlxuICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChlbmZhbnRfLkVuZmFudEFDaGFyZ2Uuc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlKVxuICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUuUGFzRGVHYXJkZUFsdGVybmVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC5cIilcbiAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUuR2FyZGVBbHRlcm5lZUNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZSBjb2VmZl8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29lZmZfKVxuICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5BdXRyZVBlcnNvbm5lQUNoYXJnZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKSlcbiAgICAgICAgICAgICAgKG9fZmlsdGVyXG4gICAgICAgICAgICAgICAgIChmdW4gKHBlcnNvbm5lX2FfY2hhcmdlXzogUGVyc29ubmVBQ2hhcmdlLnQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIHBlcnNvbm5lX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkVuZmFudEFDaGFyZ2UgZW5mYW50XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLnNpdHVhdGlvbl9nYXJkZV9hbHRlcm5lZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25HYXJkZUFsdGVybmVlLlBhc0RlR2FyZGVBbHRlcm5lZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25HYXJkZUFsdGVybmVlLkdhcmRlQWx0ZXJuZWVDb2VmZmljaWVudFByaXNlRW5DaGFyZ2UgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5BdXRyZVBlcnNvbm5lQUNoYXJnZSBfIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICBwZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZV8pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zNDQ7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MzQ0OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZV86IGludGVnZXIgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICBcIm5vbWJyZV9wZXJzb25uZXNfw6BfY2hhcmdlX3ByaXNlc19lbl9jb21wdGVcIl0gKGVtYmVkX2ludGVnZXIpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zNDM7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MzQzOyBlbmRfY29sdW1uPTU0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzU3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM1NzsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBvX2xlbmd0aCBwZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTM0Mzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zNDM7IGVuZF9jb2x1bW49NTQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgXzogdW5pdCA9IGlmIChcbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAob19sdF9yYXRfcmF0IHNldWlsX2w4MjJfM19wYXJ0c191c3VmcnVpdF9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4yXCIpKVxuICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMDA7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMDA7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKVxuICAgICAgICAgICAgICAgICAgdGhlbiAoKSBlbHNlXG4gICAgICAgICAgICAgICAgICByYWlzZSAoQXNzZXJ0aW9uRmFpbGVkIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIwMDsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIwMDsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSBpblxuICBsZXQgXzogdW5pdCA9IGlmIChcbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAob19sdF9yYXRfcmF0IHNldWlsX2w4MjJfM19wYXJ0c19wcm9wcmlldGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMlwiKSlcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTk5OyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTk5OyBlbmRfY29sdW1uPTQ4O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MjItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSlcbiAgICAgICAgICAgICAgICAgIHRoZW4gKCkgZWxzZVxuICAgICAgICAgICAgICAgICAgcmFpc2UgKEFzc2VydGlvbkZhaWxlZCB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xOTk7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xOTk7IGVuZF9jb2x1bW49NDg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkgaW5cbiAgbGV0IF86IHVuaXQgPSBpZiAoXG4gICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOCkgKDQpICgxKSkpXG4gICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNzg7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNzg7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpIHRoZW5cbiAgICAgICAgICAgICAgICAgICgpIGVsc2VcbiAgICAgICAgICAgICAgICAgIHJhaXNlIChBc3NlcnRpb25GYWlsZWQge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM3ODsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM3ODsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pIGluXG4gIHtFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5kYXRlX2NvdXJhbnRlID0gZGF0ZV9jb3VyYW50ZV87XG4gICAgIEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LmVsaWdpYmlsaXRlID0gZWxpZ2liaWxpdGVfO1xuICAgICBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGUgPVxuICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZV87XG4gICAgIEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LmNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGUgPVxuICAgICAgIGNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVfO1xuICAgICBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5jb25kaXRpb25fMl9yODIzXzQgPVxuICAgICAgIGNvbmRpdGlvbl8yX3I4MjNfNF99XG5cbmxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudCAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW46IENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLnQpIDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50LnQgPVxuICBsZXQgbW9kZV9vY2N1cGF0aW9uXzogTW9kZU9jY3VwYXRpb24udCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLm1vZGVfb2NjdXBhdGlvbl9pbiBpblxuICBsZXQgcmVzc291cmNlc19tZW5hZ2Vfc2Fuc19hcnJvbmRpXzogbW9uZXkgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRJbi5yZXNzb3VyY2VzX21lbmFnZV9zYW5zX2Fycm9uZGlfaW4gaW5cbiAgbGV0IHNpdHVhdGlvbl9mYW1pbGlhbGVfOiBTaXR1YXRpb25GYW1pbGlhbGUudCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLnNpdHVhdGlvbl9mYW1pbGlhbGVfaW4gaW5cbiAgbGV0IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfOiBpbnRlZ2VyID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiBpblxuICBsZXQgem9uZV86IFpvbmVESGFiaXRhdGlvbi50ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4uem9uZV9pbiBpblxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCB0eXBlX2FpZGVfOiBUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRJbi50eXBlX2FpZGVfaW4gaW5cbiAgbGV0IHJlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4ucmVzaWRlbmNlX2luIGluXG4gIGxldCBjYXRlZ29yaWVfY2FsY3VsX2FwbF86IENhdGVnb3JpZUNhbGN1bEFQTC50ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwiY2F0w6lnb3JpZV9jYWxjdWxfYXBsXCJdXG4gICAgKGVtYmVkX2NhdGVnb3JpZV9jYWxjdWxfYV9wX2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTA0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExMDQ7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7IFwiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE0Mjg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTQyODsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG1hdGNoIG1vZGVfb2NjdXBhdGlvbl9cbiAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRhaXJlIGxvY2F0aW9uXyAtPlxuICAgICAgICAgICAgICAgIChDYXRlZ29yaWVDYWxjdWxBUEwuTG9jYXRpb24gbG9jYXRpb25fKVxuICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgbG9nZW1lbnRmb3llcl8gLT5cbiAgICAgICAgICAgICAgICAoQ2F0ZWdvcmllQ2FsY3VsQVBMLkxvZ2VtZW50Rm95ZXIgbG9nZW1lbnRmb3llcl8pXG4gICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkFjY2Vzc2lvblByb3ByaWV0ZUxvY2FsVXNhZ2VFeGNsdXNpZkhhYml0YXRpb24gcHJvcHJpZXRhaXJlXyAtPlxuICAgICAgICAgICAgICAgIChDYXRlZ29yaWVDYWxjdWxBUEwuQWNjZXNzaW9uUHJvcHJpZXRlIHByb3ByaWV0YWlyZV8pXG4gICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlNvdXNMb2NhdGFpcmUgbG9jYXRpb25fIC0+XG4gICAgICAgICAgICAgICAgKENhdGVnb3JpZUNhbGN1bEFQTC5Mb2NhdGlvbiBsb2NhdGlvbl8pXG4gICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0aW9uQWNjZXNzaW9uIHByb3ByaWV0YWlyZV8gLT5cbiAgICAgICAgICAgICAgICAoQ2F0ZWdvcmllQ2FsY3VsQVBMLkFjY2Vzc2lvblByb3ByaWV0ZSBwcm9wcmlldGFpcmVfKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTEwNDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMTA0OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiVG91cyBzZWN0ZXVyc1wiOyBcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHJlc3NvdXJjZXNfbWVuYWdlX2F2ZWNfYXJyb25kaV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwicmVzc291cmNlc19tw6luYWdlX2F2ZWNfYXJyb25kaVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwOTY7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9MTA5NjsgZW5kX2NvbHVtbj0yMjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjsgXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTk3Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xOTcyOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTE3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDIgOiBDYWxjdWwgZGUgbCdhaWRlIGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBhcnJvbmRpX2NlbnRhaW5lX3N1cGVyaWV1cmVfIHJlc3NvdXJjZXNfbWVuYWdlX3NhbnNfYXJyb25kaV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwOTY7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9MTA5NjsgZW5kX2NvbHVtbj0yMjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjsgXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfOiBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwudCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudFwiOyBcInNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbFwiXVxuICAgIChlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTExMDU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTEwNTsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjsgXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTkwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTkwOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogQ2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfXG4gICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5DZWxpYmF0YWlyZSBfIC0+XG4gICAgICAgICAgICAgICAgKFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlICgpKVxuICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuTWFyaWVzIF8gLT5cbiAgICAgICAgICAgICAgICAoU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSAoKSlcbiAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLlBhY3NlcyBfIC0+XG4gICAgICAgICAgICAgICAgKFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgKCkpXG4gICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5Db25jdWJpbnMgXyAtPlxuICAgICAgICAgICAgICAgIChTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlICgpKVxuICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuQ2VsaWJhdGFpcmVTZXBhcmVEZUZhaXQgXyAtPlxuICAgICAgICAgICAgICAgIChTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSAoKSlcbiAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNvbmN1YmluYWdlRG9udFNlcGFyZURlRmFpdCBfIC0+XG4gICAgICAgICAgICAgICAgKFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgKCkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTA1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExMDU7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7IFwiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgc291c19jYWxjdWxfdHJhaXRlbWVudF86IFRyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS50ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwic291c19jYWxjdWxfdHJhaXRlbWVudFwiXVxuICAgIChlbWJlZF90cmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGUpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTA3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExMDc7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7IFwiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExMDc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTA3OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7IFwiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02NDEzOyBzdGFydF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjQxMzsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggY2F0ZWdvcmllX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVDYWxjdWxBUEwuTG9jYXRpb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKHtUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUuYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhaXRlbWVudF9udWxfdG91dF9sZV90ZW1wc199KVxuICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUNhbGN1bEFQTC5BY2Nlc3Npb25Qcm9wcmlldGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKHtUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUuYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhaXRlbWVudF9udWxfdG91dF9sZV90ZW1wc199KVxuICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUNhbGN1bEFQTC5Mb2dlbWVudEZveWVyIGxvZ2VtZW50X2ZveWVyX18gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgdHJhaXRlbWVudF9mb3JtdWxlXyA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCByZXN1bHRfIDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZi50ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjsgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7IFwiZGlyZWN0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHtDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4ubG95ZXJfcHJpbmNpcGFsX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nZW1lbnRfZm95ZXJfXy5Mb2dlbWVudEZveWVyLnJlZGV2YW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0MjU7IHN0YXJ0X2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjQyNTsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IHJlc3NvdXJjZXNfbWVuYWdlX2F2ZWNfYXJyb25kaV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02NDE5OyBzdGFydF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjQxOTsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4uYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nZW1lbnRfZm95ZXJfXy5Mb2dlbWVudEZveWVyLmJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlcylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjQyNzsgc3RhcnRfY29sdW1uPTE1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY0Mjc7IGVuZF9jb2x1bW49NzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBkYXRlX2NvdXJhbnRlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0MjI7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NDIyOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02NDIwOyBzdGFydF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjQyMDsgZW5kX2NvbHVtbj02NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0MjM7IHN0YXJ0X2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NDIzOyBlbmRfY29sdW1uPTc2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi56b25lX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgem9uZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02NDIxOyBzdGFydF9jb2x1bW49MjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjQyMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4ubG9nZW1lbnRfZXN0X2NoYW1icmVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSB0cnVlIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjQzMTsgc3RhcnRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY0MzE7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgZmFsc2Ugd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02NDM4OyBzdGFydF9jb2x1bW49NzI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjQzODsgZW5kX2NvbHVtbj03NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4udHlwZV9haWRlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgdHlwZV9haWRlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0Mzk7IHN0YXJ0X2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NDM5OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5jb2xvY2F0aW9uX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgZmFsc2Ugd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02NDM1OyBzdGFydF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjQzNTsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4ucmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0NDI7IHN0YXJ0X2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NDQyOyBlbmRfY29sdW1uPTQ1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5sb2dlbWVudF9tZXVibGVfZDg0Ml8yX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nZW1lbnRfZm95ZXJfXy5Mb2dlbWVudEZveWVyLmxvZ2VtZW50X21ldWJsZV9kODQyXzIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0NDM7IHN0YXJ0X2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NDQzOyBlbmRfY29sdW1uPTc2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5yZXNpZGVuY2VfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSByZXNpZGVuY2VfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjQxODsgc3RhcnRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY0MTg7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80X2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQuUGFzRGVDaGFuZ2VtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02NDQ0OyBzdGFydF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjQ0NDsgZW5kX2NvbHVtbj01NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKX0pKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCByZXN1bHRfIDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZi50ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh7Q2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZi5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChwYXJhbTBfOiBtb25leSkgLT4gKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgcGFyYW0wXykpKSkpKSl9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7IFwiZGlyZWN0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7IFwiZGlyZWN0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0MTc7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY0NDU7IGVuZF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpIHRoZW4gcmVzdWx0XyBlbHNlIHJlc3VsdF8pKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgKHtUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUuYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYWl0ZW1lbnRfZm9ybXVsZV8uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZi5haWRlX2ZpbmFsZV9mb3JtdWxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJhaXRlbWVudF9mb3JtdWxlXy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpfSkpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTU1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE1NTU7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBtYXRjaCBjYXRlZ29yaWVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgIHwgQ2F0ZWdvcmllQ2FsY3VsQVBMLkxvY2F0aW9uIGxvY2F0aW9uXyAtPlxuICAgICAgICAgICAgICAgIChsZXQgdHJhaXRlbWVudF9mb3JtdWxlXyA6IENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYudFxuICAgICAgICAgICAgICAgICAgID1cbiAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLnQgPVxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7IFwiZGlyZWN0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZilcbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiOyBcImRpcmVjdFwiOyBcImlucHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4pXG4gICAgICAgICAgICAgICAgICAgICAgKHtDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4ubG95ZXJfcHJpbmNpcGFsX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSAobG9jYXRpb25fLkxvY2F0aW9uLmxveWVyX3ByaW5jaXBhbCkgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTY2OyBzdGFydF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTY2OyBlbmRfY29sdW1uPTU1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgcmVzc291cmNlc19tZW5hZ2VfYXZlY19hcnJvbmRpXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1NjE7IHN0YXJ0X2NvbHVtbj00MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU2MTsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5iZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2NhdGlvbl8uTG9jYXRpb24uYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU2ODsgc3RhcnRfY29sdW1uPTE1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTY4OyBlbmRfY29sdW1uPTY5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgZGF0ZV9jb3VyYW50ZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTY0OyBzdGFydF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NjQ7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1NjI7IHN0YXJ0X2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU2MjsgZW5kX2NvbHVtbj02NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1NjU7IHN0YXJ0X2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU2NTsgZW5kX2NvbHVtbj03NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi56b25lX2luID0gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB6b25lXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1NjM7IHN0YXJ0X2NvbHVtbj0yMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU2MzsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5sb2dlbWVudF9lc3RfY2hhbWJyZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSAobG9jYXRpb25fLkxvY2F0aW9uLmxvZ2VtZW50X2VzdF9jaGFtYnJlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU2OTsgc3RhcnRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTY5OyBlbmRfY29sdW1uPTY1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9jYXRpb25fLkxvY2F0aW9uLmFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU3Mjsgc3RhcnRfY29sdW1uPTE1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTcyOyBlbmRfY29sdW1uPTgwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnR5cGVfYWlkZV9pbiA9IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgdHlwZV9haWRlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1NzM7IHN0YXJ0X2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU3MzsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5jb2xvY2F0aW9uX2luID0gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSAobG9jYXRpb25fLkxvY2F0aW9uLmNvbG9jYXRpb24pIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU3MDsgc3RhcnRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTcwOyBlbmRfY29sdW1uPTQ1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnJlZHVjdGlvbl9sb3llcl9zb2xpZGFyaXRlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKGxvY2F0aW9uXy5Mb2NhdGlvbi5iYWlsbGV1cilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlQmFpbGxldXIuQmFpbGxldXJTb2NpYWwgYmFpbGxldXJfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYWlsbGV1cl8uQ29udmVudGlvbkJhaWxsZXVyU29jaWFsLnJlZHVjdGlvbl9sb3llcl9zb2xpZGFyaXRlX3BlcmN1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVCYWlsbGV1ci5CYWlsbGV1clByaXZlQXZlY0NvbnZlbnRpb25uZW1lbnRTb2NpYWwgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZUJhaWxsZXVyLkJhaWxsZXVyUHJpdmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1NzU7IHN0YXJ0X2NvbHVtbj0xNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU3ODsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5sb2dlbWVudF9tZXVibGVfZDg0Ml8yX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IChsb2NhdGlvbl8uTG9jYXRpb24ubG9nZW1lbnRfbWV1YmxlX2Q4NDJfMilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1Nzk7IHN0YXJ0X2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU3OTsgZW5kX2NvbHVtbj02OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5yZXNpZGVuY2VfaW4gPSAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHJlc2lkZW5jZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTYwOyBzdGFydF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NjA7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4uY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2NhdGlvbl8uTG9jYXRpb24uY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTgwOyBzdGFydF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1ODA7IGVuZF9jb2x1bW49Nzc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpfSkpKSlcbiAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgIChsZXQgcmVzdWx0XyA6IENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYudCA9XG4gICAgICAgICAgICAgICAgICAgICAgKHtDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLmFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKHBhcmFtMF86IG1vbmV5KSAtPiAobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgcGFyYW0wXykpKSkpKSl9KVxuICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7IFwiZGlyZWN0XCJdXG4gICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjsgXCJkaXJlY3RcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAoZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZilcbiAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgKChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTU5OyBzdGFydF9jb2x1bW49OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU4MTsgZW5kX2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSB0aGVuIHJlc3VsdF8gZWxzZSByZXN1bHRfKSkpKSkpKVxuICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgKHtUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUuYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgICAgICAgICAgICAgICh0cmFpdGVtZW50X2Zvcm11bGVfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgICAgICAgICAgICAgICAgIFRyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAodHJhaXRlbWVudF9mb3JtdWxlXy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpfSkpXG4gICAgICAgICAgICB8IENhdGVnb3JpZUNhbGN1bEFQTC5BY2Nlc3Npb25Qcm9wcmlldGUgcHJvcHJpZXRhaXJlXyAtPlxuICAgICAgICAgICAgICAgIChsZXQgdHJhaXRlbWVudF9mb3JtdWxlXyA6XG4gICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnQgPVxuICAgICAgICAgICAgICAgICAgIChsZXQgcmVzdWx0XyA6XG4gICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnQgPVxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlKVxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIjsgXCJpbnB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luKVxuICAgICAgICAgICAgICAgICAgICAgICh7Q2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2Jhc2VfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IHJlc3NvdXJjZXNfbWVuYWdlX2F2ZWNfYXJyb25kaV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjE1OyBzdGFydF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjE1OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjE2OyBzdGFydF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MTY7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MjM7IHN0YXJ0X2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTYyMzsgZW5kX2NvbHVtbj03NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnpvbmVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgem9uZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjE3OyBzdGFydF9jb2x1bW49MjE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MTc7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5yZXNpZGVuY2VfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgcmVzaWRlbmNlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MTg7IHN0YXJ0X2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTYxODsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgZGF0ZV9jb3VyYW50ZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjIyOyBzdGFydF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MjI7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5tZW5zdWFsaXRlX3ByaW5jaXBhbGVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS5tZW5zdWFsaXRlX3ByaW5jaXBhbGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjI0OyBzdGFydF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MjQ7IGVuZF9jb2x1bW49NzI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5zaXR1YXRpb25fcjgyMl8xMV8xM18xN19pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLnNpdHVhdGlvbl9yODIyXzExXzEzXzE3KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYzMjsgc3RhcnRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjMyOyBlbmRfY29sdW1uPTc2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9zaWduYXR1cmVfcHJldF9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS5wcmV0KS5QcmV0LmRhdGVfc2lnbmF0dXJlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYyNzsgc3RhcnRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjI3OyBlbmRfY29sdW1uPTY4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4udHlwZV90cmF2YXV4X2xvZ2VtZW50X2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUudHlwZV90cmF2YXV4X2xvZ2VtZW50X3I4NDJfNSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MjY7IHN0YXJ0X2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTYyNjsgZW5kX2NvbHVtbj03OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmxvY2FsX2hhYml0ZV9wcmVtaWVyZV9mb2lzX2JlbmVmaWNpYWlyZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLmxvY2FsX2hhYml0ZV9wcmVtaWVyZV9mb2lzX2JlbmVmaWNpYWlyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2Mjk7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTYyOTsgZW5kX2NvbHVtbj02NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmRhdGVfZW50cmVlX2xvZ2VtZW50X2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUuZGF0ZV9lbnRyZWVfbG9nZW1lbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjMwOyBzdGFydF9jb2x1bW49Mzc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MzA7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5jaGFyZ2VzX21lbnN1ZWxsZXNfcHJldF9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLmNoYXJnZXNfbWVuc3VlbGxlc19wcmV0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYyNTsgc3RhcnRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjI1OyBlbmRfY29sdW1uPTc2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uY29wcm9wcmlldGVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLmNvcHJvcHJpZXRlKSB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MzE7IHN0YXJ0X2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTYzMTsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLm9wZXJhdGlvbnNfbG9nZW1lbnRfZXZvbHV0aWZzX3NvY2lhdXhfYWNjZXNzaW9uX3Byb3ByaWV0ZV9haWRlZV9FdGF0X2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUub3BlcmF0aW9uc19sb2dlbWVudF9ldm9sdXRpZnNfc29jaWF1eF9hY2Nlc3Npb25fcHJvcHJpZXRlX2FpZGVlX0V0YXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjIwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MjE7IGVuZF9jb2x1bW49ODE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpfSkpKSlcbiAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgIChsZXQgcmVzdWx0XyA6XG4gICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnQgPVxuICAgICAgICAgICAgICAgICAgICAgICh7Q2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLmFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChwYXJhbTBfOiBtb25leSkgLT4gKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpIHBhcmFtMF8pKSkpKSkpfSlcbiAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjsgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjsgXCJkaXJlY3RcIjtcbiAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgKGVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUpXG4gICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYxNDsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjMzOyBlbmRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpIHRoZW4gcmVzdWx0XyBlbHNlIHJlc3VsdF8pKSkpKSkpXG4gICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAoe1RyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgICAgICAgICAgICAgKHRyYWl0ZW1lbnRfZm9ybXVsZV8uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgICAgICAgICAgICAgICAgICBUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgKHRyYWl0ZW1lbnRfZm9ybXVsZV8uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpfSkpXG4gICAgICAgICAgICB8IENhdGVnb3JpZUNhbGN1bEFQTC5Mb2dlbWVudEZveWVyIGxvZ2VtZW50X2ZveWVyX18gLT5cbiAgICAgICAgICAgICAgICAobGV0IHRyYWl0ZW1lbnRfZm9ybXVsZV8gOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50ID1cbiAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50ID1cbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcilcbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJkaXJlY3RcIjsgXCJpbnB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbilcbiAgICAgICAgICAgICAgICAgICAgICAoe0NhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4udHlwZV9sb2dlbWVudF9mb3llcl9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IChsb2dlbWVudF9mb3llcl9fLkxvZ2VtZW50Rm95ZXIudHlwZV91c2VyKSB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MDI7IHN0YXJ0X2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MDI7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi5kYXRlX2NvbnZlbnRpb25uZW1lbnRfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dlbWVudF9mb3llcl9fLkxvZ2VtZW50Rm95ZXIuZGF0ZV9jb252ZW50aW9ubmVtZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYwMzsgc3RhcnRfY29sdW1uPTM3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjAzOyBlbmRfY29sdW1uPTc0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi5yZXNpZGVuY2VfaW4gPSAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHJlc2lkZW5jZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTk1OyBzdGFydF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1OTU7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLnJlZGV2YW5jZV9pbiA9IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgKGxvZ2VtZW50X2ZveWVyX18uTG9nZW1lbnRGb3llci5yZWRldmFuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTk5OyBzdGFydF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1OTk7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSByZXNzb3VyY2VzX21lbmFnZV9hdmVjX2Fycm9uZGlfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU5Mzsgc3RhcnRfY29sdW1uPTQzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTkzOyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU5NDsgc3RhcnRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTk0OyBlbmRfY29sdW1uPTY2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1OTg7IHN0YXJ0X2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU5ODsgZW5kX2NvbHVtbj03NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4uem9uZV9pbiA9IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgem9uZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTk2OyBzdGFydF9jb2x1bW49MjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1OTY7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgZGF0ZV9jb3VyYW50ZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTk3OyBzdGFydF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1OTc7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLmNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2X2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nZW1lbnRfZm95ZXJfXy5Mb2dlbWVudEZveWVyLmNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYwMTsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjAxOyBlbmRfY29sdW1uPTY0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKX0pKSkpXG4gICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50ID1cbiAgICAgICAgICAgICAgICAgICAgICAoe0NhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLmVxdWl2YWxlbmNlX2xveWVyID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5lcXVpdmFsZW5jZV9sb3llcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlcyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIubW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIubG95ZXJfbWluaW1hbCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIubG95ZXJfbWluaW1hbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLmFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChwYXJhbTBfOiBtb25leSkgLT4gKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50cmFpdGVtZW50X2FpZGVfZmluYWxlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgcGFyYW0wXykpKSkpKSl9KVxuICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGwgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJkaXJlY3RcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAoZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIpXG4gICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU5Mjsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MDQ7IGVuZF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkgdGhlbiByZXN1bHRfIGVsc2UgcmVzdWx0XykpKSkpKSlcbiAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICh7VHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLmFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICAgICAgICAgICAgICAodHJhaXRlbWVudF9mb3JtdWxlXy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5haWRlX2ZpbmFsZV9mb3JtdWxlKTtcbiAgICAgICAgICAgICAgICAgICAgVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICh0cmFpdGVtZW50X2Zvcm11bGVfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpfSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTA3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExMDc7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7IFwiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhcmdfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgZW5kX2xpbmU9MTExMDsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiVG91cyBzZWN0ZXVyc1wiOyBcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ0MTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0NDE7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIChzb3VzX2NhbGN1bF90cmFpdGVtZW50Xy5UcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSlcbiAgICAgICAgICAgICAgICAgICBhcmdfKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTExMTA7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTExMDsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiVG91cyBzZWN0ZXVyc1wiOyBcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTEwOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTExMTA7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7IFwiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgYWlkZV9maW5hbGVfZm9ybXVsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwiYWlkZV9maW5hbGVfZm9ybXVsZVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTA5OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTExMDk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7IFwiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExMDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTA5OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7IFwiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2F1dHJlc19zb3VyY2VzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzcyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNzM7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAyMS0xNzUwIGR1IDIxIGTDqWNlbWJyZSAyMDIxIHBvcnRhbnQgZGl2ZXJzZXMgbWVzdXJlcyBzdXIgbGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCByZWxhdGlmIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgw6AgU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAoc291c19jYWxjdWxfdHJhaXRlbWVudF8uVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLmFpZGVfZmluYWxlX2Zvcm11bGUpXG4gICAgICAgICAgICAgICAgICAgICAgKG9fZGl2X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludCAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyMDI2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ2V0WWVhciBkYXRlX2NvdXJhbnRlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjguXCIpKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQzOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xNDM5OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgc291c19jYWxjdWxfdHJhaXRlbWVudF8uVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLmFpZGVfZmluYWxlX2Zvcm11bGUpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExMDk7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTEwOTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjsgXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIHtDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnQuYWlkZV9maW5hbGVfZm9ybXVsZSA9IGFpZGVfZmluYWxlX2Zvcm11bGVfO1xuICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnQudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV99XG5cbmxldCBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnQgKGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pbjogRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50SW4udCkgOiBFbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnQudCA9XG4gIGxldCBpbmZvcm1hdGlvbnNfOiBJbmZvcm1hdGlvbnNQcmltZURlRGVtZW5hZ2VtZW50LnQgPSBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4uRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50SW4uaW5mb3JtYXRpb25zX2luIGluXG4gIGxldCBkYXRlX2VtbWVuYWdlbWVudF86IGRhdGUgPSBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4uRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50SW4uZGF0ZV9lbW1lbmFnZW1lbnRfaW4gaW5cbiAgbGV0IG1lbmFnZV86IE1lbmFnZS50ID0gZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luLkVsaWdpYmlsaXRlUHJpbWVEZURlbWVuYWdlbWVudEluLm1lbmFnZV9pbiBpblxuICBsZXQgZGVtYW5kZXVyXzogRGVtYW5kZXVyLnQgPSBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4uRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50SW4uZGVtYW5kZXVyX2luIGluXG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pbi5FbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCBkZXBlbnNlc19qdXN0aWZpZWVzX3JlZWxsZW1lbnRfZW5nYWdlZXNfOiBtb25leSA9IGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pbi5FbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnRJbi5kZXBlbnNlc19qdXN0aWZpZWVzX3JlZWxsZW1lbnRfZW5nYWdlZXNfaW4gaW5cbiAgbGV0IGRlbGFpX2FwcmVzX2VtbWVuYWdlbWVudF9sODIzXzhfMl86IGR1cmF0aW9uID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqVByaW1lRGVEw6ltw6luYWdlbWVudFwiO1xuICAgICAgXCJkw6lsYWlfYXByw6hzX2VtbcOpbmFnZW1lbnRfbDgyM184XzJcIl0gKGVtYmVkX2R1cmF0aW9uKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDk0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQ5NDsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTIwODA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MjA4MDsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy0yMFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IFByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBkdXJhdGlvbl9vZl9udW1iZXJzICgwKSAoNikgKDApKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00OTQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDk0OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25fcmFuZ19lbmZhbnRfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqVByaW1lRGVEw6ltw6luYWdlbWVudFwiOyBcImNvbmRpdGlvbl9yYW5nX2VuZmFudFwiXVxuICAgIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDkxOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQ5MTsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ5MTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ5MTsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIwNTY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIwNjE7IGVuZF9jb2x1bW49Nzc7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy0yMFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogUHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2ZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwZXJzb25uZV9hX2NoYXJnZV86IFBlcnNvbm5lQUNoYXJnZS50KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCBwZXJzb25uZV9hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5FbmZhbnRBQ2hhcmdlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5BdXRyZVBlcnNvbm5lQUNoYXJnZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnBlcnNvbm5lc19hX2NoYXJnZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5mb3JtYXRpb25zXy5JbmZvcm1hdGlvbnNQcmltZURlRGVtZW5hZ2VtZW50Lm5vbWJyZV9lbmZhbnRzX2FfbmFpdHJlX2FwcmVzX3Ryb2lzaWVtZV9tb2lzX2dyb3NzZXNzZSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpKSkgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ5MTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00OTE7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00OTE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDkxOyBlbmRfY29sdW1uPTMyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpUHJpbWVEZUTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgIFwiYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTUwODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT01MDg7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTA4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTUwODsgZW5kX2NvbHVtbj02NTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NTA4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTUwODsgZW5kX2NvbHVtbj02NTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IHJlc3VsdF86IEJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXMudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCLDiWxpZ2liaWxpdMOpUHJpbWVEZUTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICBcImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcIjtcbiAgICAgIFwiQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiw4lsaWdpYmlsaXTDqVByaW1lRGVEw6ltw6luYWdlbWVudFwiO1xuICAgICAgXCJiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzXCI7XG4gICAgICBcIkJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIl1cbiAgICBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzKVxuICAgICh7QmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9kYXRlX2NvdXJhbnRlX30pKSkgaW5cbiAgbGV0IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X21vbnRhbnRfOiBtb25leSA9IHJlc3VsdF8uQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcy5tb250YW50IGluXG4gIGxldCBlbGlnaWJpbGl0ZV9hcGxfZG90X21lbmFnZV86IE1lbmFnZS50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmltZURlRMOpbcOpbmFnZW1lbnRcIjsgXCLDqWxpZ2liaWxpdMOpX2FwbC5tw6luYWdlXCJdXG4gICAgICAoZW1iZWRfbWVuYWdlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTUwNDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT01MDQ7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTA0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTUwNDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbWVuYWdlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01MDQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NTA0OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYXBsX2RvdF9kZW1hbmRldXJfOiBEZW1hbmRldXIudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpUHJpbWVEZUTDqW3DqW5hZ2VtZW50XCI7IFwiw6lsaWdpYmlsaXTDqV9hcGwuZGVtYW5kZXVyXCJdXG4gICAgICAoZW1iZWRfZGVtYW5kZXVyKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTUwNTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT01MDU7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTA1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTUwNTsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVtYW5kZXVyXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01MDU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NTA1OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYXBsX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpUHJpbWVEZUTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9hcGwuZGF0ZV9jb3VyYW50ZVwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01MDY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NTA2OyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTUwNjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT01MDY7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfY291cmFudGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTUwNjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT01MDY7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9hcGxfZG90X2NvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcHJpbmNpcGFsZV86IHVuaXQgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCA9IFxuICAgIGZ1biAoXzogdW5pdCkgLT4gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpUHJpbWVEZUTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9hcGwuY29uZGl0aW9uX2xvZ2VtZW50X3LDqXNpZGVuY2VfcHJpbmNpcGFsZVwiXVxuICAgICAgKGVtYmVkX2Jvb2wpIChyYWlzZSBFbXB0eUVycm9yKSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2FwbF9kb3RfY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfOiB1bml0IC0+IGJvb2wgPSBcbiAgICBmdW4gKF86IHVuaXQpIC0+IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiw4lsaWdpYmlsaXTDqVByaW1lRGVEw6ltw6luYWdlbWVudFwiO1xuICAgICAgICBcIsOpbGlnaWJpbGl0w6lfYXBsLmNvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlXCJdIChlbWJlZF9ib29sKSAocmFpc2VcbiAgICAgIEVtcHR5RXJyb3IpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYXBsX2RvdF9kYXRlX2VudHJlZV92aWd1ZXVyX2RpZmZlcmVlX2NjaF86IHVuaXQgLT4gZGF0ZSA9IFxuICAgIGZ1biAoXzogdW5pdCkgLT4gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpUHJpbWVEZUTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9hcGwuZGF0ZV9lbnRyw6llX3ZpZ3VldXJfZGlmZsOpcsOpZV9jY2hcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAocmFpc2UgRW1wdHlFcnJvcikpIGluXG4gIGxldCByZXN1bHRfOiBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIsOJbGlnaWJpbGl0w6lQcmltZURlRMOpbcOpbmFnZW1lbnRcIjsgXCLDqWxpZ2liaWxpdMOpX2FwbFwiO1xuICAgICAgXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCLDiWxpZ2liaWxpdMOpUHJpbWVEZUTDqW3DqW5hZ2VtZW50XCI7IFwiw6lsaWdpYmlsaXTDqV9hcGxcIjtcbiAgICAgIFwiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXVxuICAgIGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50KVxuICAgICh7RWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5tZW5hZ2VfaW4gPVxuICAgICAgICBlbGlnaWJpbGl0ZV9hcGxfZG90X21lbmFnZV87XG4gICAgICAgIEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGVtYW5kZXVyX2luID1cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9hcGxfZG90X2RlbWFuZGV1cl87XG4gICAgICAgIEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgZWxpZ2liaWxpdGVfYXBsX2RvdF9kYXRlX2NvdXJhbnRlXztcbiAgICAgICAgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5jb25kaXRpb25fbG9nZW1lbnRfcmVzaWRlbmNlX3ByaW5jaXBhbGVfaW4gPVxuICAgICAgICAgIGVsaWdpYmlsaXRlX2FwbF9kb3RfY29uZGl0aW9uX2xvZ2VtZW50X3Jlc2lkZW5jZV9wcmluY2lwYWxlXztcbiAgICAgICAgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5jb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZV9pbiA9XG4gICAgICAgICAgZWxpZ2liaWxpdGVfYXBsX2RvdF9jb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZV87XG4gICAgICAgIEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jY2hfaW4gPVxuICAgICAgICAgIGVsaWdpYmlsaXRlX2FwbF9kb3RfZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jY2hffSkpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYXBsX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuZGF0ZV9jb3VyYW50ZSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYXBsX2RvdF9lbGlnaWJpbGl0ZV86IGJvb2wgPSByZXN1bHRfLkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LmVsaWdpYmlsaXRlIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9hcGxfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZV86IGludGVnZXIgPSByZXN1bHRfLkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50Lm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYXBsX2RvdF9jb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXzogXG4gICAgZGVjaW1hbCBhcnJheSA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYXBsX2RvdF9jb25kaXRpb25fMl9yODIzXzRfOiBQZXJzb25uZUFDaGFyZ2UudCAtPiBib29sID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5jb25kaXRpb25fMl9yODIzXzQgaW5cbiAgbGV0IGNvbmRpdGlvbl9wZXJpb2RlX2RlbWVuYWdlbWVudF86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpUHJpbWVEZUTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICBcImNvbmRpdGlvbl9ww6lyaW9kZV9kw6ltw6luYWdlbWVudFwiXSAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ5Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00OTI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00OTI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00OTI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMDY1OyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMDc2OyBlbmRfY29sdW1uPTc1O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtMjBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IFByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAoaW5mb3JtYXRpb25zXy5JbmZvcm1hdGlvbnNQcmltZURlRGVtZW5hZ2VtZW50LmRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9lbmZhbnRfb3VfZGVybmllcl9zaV9wbHVzKVxuICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgfCBEYXRlTmFpc3NhbmNlVHJvaXNpZW1lT3VEZXJuaWVyUGx1c0VuZmFudC5Nb2luc0RlVHJvaXNFbmZhbnRzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgfCBEYXRlTmFpc3NhbmNlVHJvaXNpZW1lT3VEZXJuaWVyUGx1c0VuZmFudC5QbHVzRGVUcm9pc0VuZmFudHMgZGF0ZV9uYWlzc2FuY2Vfb3VfZ3Jvc3Nlc3NlXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBkYXRlX25haXNzYW5jZV9vdV9ncm9zc2Vzc2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEYXRlRGVOYWlzc2FuY2VPdU1vaXNEZUdyb3NzZXNzZS5EYXRlRGVOYWlzc2FuY2UgZGF0ZV9uYWlzc2FuY2VfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2RhdF9kdXIgQWJvcnRPblJvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19maXJzdERheU9mTW9udGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9kYXRfZHVyIEFib3J0T25Sb3VuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9uYWlzc2FuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHVyYXRpb25fb2ZfbnVtYmVycyAoMikgKDApICgwKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGR1cmF0aW9uX29mX251bWJlcnMgKDApICgwKSAoLTEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGF0ZURlTmFpc3NhbmNlT3VNb2lzRGVHcm9zc2Vzc2UuQXZhbnRQcmVtaWVySm91ck1vaXNDaXZpbFRyb2lzaWVtZU1vaXNEZUdyb3NzZXNzZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IERhdGVEZU5haXNzYW5jZU91TW9pc0RlR3Jvc3Nlc3NlLkFwcmVzUHJlbWllckpvdXJNb2lzQ2l2aWxUcm9pc2llbWVNb2lzRGVHcm9zc2Vzc2UgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSkgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ5Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00OTI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00OTI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDkyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBwbGFmb25kX2Q4MjNfMjJfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lQcmltZURlRMOpbcOpbmFnZW1lbnRcIjsgXCJwbGFmb25kX2Q4MjNfMjJcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDk1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQ5NTsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00MzA0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQzMDQ7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgVklJSSA6IFByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSkpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgIGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjIuNFwiKSlcbiAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAob19maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAocGVyc29ubmVfYV9jaGFyZ2VfOiBQZXJzb25uZUFDaGFyZ2UudCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggcGVyc29ubmVfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuRW5mYW50QUNoYXJnZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuQXV0cmVQZXJzb25uZUFDaGFyZ2UgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpIChtZW5hZ2VfLk1lbmFnZS5wZXJzb25uZXNfYV9jaGFyZ2UpKSlcbiAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBlcnNvbm5lX2FfY2hhcmdlXzogUGVyc29ubmVBQ2hhcmdlLnQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHBlcnNvbm5lX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkVuZmFudEFDaGFyZ2UgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5BdXRyZVBlcnNvbm5lQUNoYXJnZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnBlcnNvbm5lc19hX2NoYXJnZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4yXCIpKSkgZWxzZVxuICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ5NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00OTU7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2xvZ2VtZW50XzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lQcmltZURlRMOpbcOpbmFnZW1lbnRcIjsgXCLDqWxpZ2liaWxpdMOpX2xvZ2VtZW50XCJdXG4gICAgKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00OTM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDkzOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDkzOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDkzOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00OTM7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ5MzsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00OTM7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDkzOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDkzOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDkzOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00OTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00OTM7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTUwMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTUwMjsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjEtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhcGl0cmUgSSA6IEd1YWRlbG91cGUsIEd1eWFuZSwgTWFydGluaXF1ZSwgTGEgUsOpdW5pb24gZXQgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb24gcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTg4MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xODgyOyBlbmRfY29sdW1uPTU0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NjMtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBhcHBsaWNhYmxlcyDDoCBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTMxNDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEzMTQ7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NjEtNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogR3VhZGVsb3VwZSwgR3V5YW5lLCBNYXJ0aW5pcXVlLCBMYSBSw6l1bmlvbiBldCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTk5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMy04XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmQgZWxpZ2liaWxpdGVfYXBsX2RvdF9lbGlnaWJpbGl0ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kIGNvbmRpdGlvbl9yYW5nX2VuZmFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kIGNvbmRpdGlvbl9wZXJpb2RlX2RlbWVuYWdlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2R1cl9kdXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxpZ2liaWxpdGVfYXBsX2RvdF9kYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2VtbWVuYWdlbWVudF8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGFpX2FwcmVzX2VtbWVuYWdlbWVudF9sODIzXzhfMl8pKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ5Mzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00OTM7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00OTM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDkzOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X3ByaW1lX2RlbWVuYWdlbWVudF86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqVByaW1lRGVEw6ltw6luYWdlbWVudFwiOyBcIm1vbnRhbnRfcHJpbWVfZMOpbcOpbmFnZW1lbnRcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01MDE7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NTAxOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjEwNjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yMTA2OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTIyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogUHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgIChvX2x0ZV9tb25fbW9uIGRlcGVuc2VzX2p1c3RpZmllZXNfcmVlbGxlbWVudF9lbmdhZ2Vlc19cbiAgICAgICAgICAgICAgICAgcGxhZm9uZF9kODIzXzIyXykgdGhlblxuICAgICAgICAgICAgICBkZXBlbnNlc19qdXN0aWZpZWVzX3JlZWxsZW1lbnRfZW5nYWdlZXNfIGVsc2UgcGxhZm9uZF9kODIzXzIyXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NTAxOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTUwMTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICB7RWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50Lm1vbnRhbnRfcHJpbWVfZGVtZW5hZ2VtZW50ID1cbiAgICAgbW9udGFudF9wcmltZV9kZW1lbmFnZW1lbnRffVxuXG5sZXQgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudCAoZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pbjogRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnRJbi50KSA6IEVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LnQgPVxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLkVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50SW4uZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgbWVuYWdlXzogTWVuYWdlLnQgPSBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLkVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50SW4ubWVuYWdlX2luIGluXG4gIGxldCBkZW1hbmRldXJfOiBEZW1hbmRldXIudCA9IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4uRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnRJbi5kZW1hbmRldXJfaW4gaW5cbiAgbGV0IGJlbmVmaWNpZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfOiBib29sID0gZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pbi5FbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudEluLmJlbmVmaWNpZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4gaW5cbiAgbGV0IGR1cmVlX2w4NDFfMV8zXzogZHVyYXRpb24gPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwiZHVyw6llX2w4NDFfMV8zXCJdIChlbWJlZF9kdXJhdGlvbikgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ0Mzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00NDM7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDE3OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MTc5OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IGR1cmF0aW9uX29mX251bWJlcnMgKDUpICgwKSAoMCkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ0Mzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00NDM7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7XG4gICAgICAgIFwicHJlc3RhdGlvbnNfZmFtaWxpYWxlcy5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ1OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NTk7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ1OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NTk7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00NTk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDU5OyBlbmRfY29sdW1uPTUwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3ByZXN0YXRpb25fY291cmFudGVfOiBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiw4lsaWdpYmlsaXTDqUFsbG9jYXRpb25Mb2dlbWVudFwiO1xuICAgICAgICBcInByZXN0YXRpb25zX2ZhbWlsaWFsZXMucHJlc3RhdGlvbl9jb3VyYW50ZVwiXVxuICAgICAgKGVtYmVkX2VsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcylcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00NjA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDYwOyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NjA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDYwOyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy5BbGxvY2F0aW9uTG9nZW1lbnQgKCkpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDYwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ2MDsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9yZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7XG4gICAgICAgIFwicHJlc3RhdGlvbnNfZmFtaWxpYWxlcy5yw6lzaWRlbmNlXCJdIChlbWJlZF9jb2xsZWN0aXZpdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDYyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ2MjsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDYyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ2MjsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00NjI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDYyOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2FnZV9sNTEyXzNfMl86IHVuaXQgLT4gZHVyYXRpb24gPSBmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicHJlc3RhdGlvbnNfZmFtaWxpYWxlcy7DomdlX2w1MTJfM18yXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9kdXJhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJhaXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IpKSBpblxuICBsZXQgcmVzdWx0XzogRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc1wiO1xuICAgICAgXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc1wiO1xuICAgICAgXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCJdXG4gICAgZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcylcbiAgICAoe0VsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2RhdGVfY291cmFudGVfO1xuICAgICAgICBFbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luLnByZXN0YXRpb25fY291cmFudGVfaW4gPVxuICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3ByZXN0YXRpb25fY291cmFudGVfO1xuICAgICAgICBFbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luLnJlc2lkZW5jZV9pbiA9XG4gICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVzaWRlbmNlXztcbiAgICAgICAgRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5hZ2VfbDUxMl8zXzJfaW4gPVxuICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2FnZV9sNTEyXzNfMl99KSkpIGluXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9hZ2VfbDUxMl8zXzJfOiBkdXJhdGlvbiA9IHJlc3VsdF8uRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuYWdlX2w1MTJfM18yIGluXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9kcm9pdF9vdXZlcnRfOiBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcy5kcm9pdF9vdXZlcnQgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2NvbmRpdGlvbnNfaG9yc19hZ2VfOiBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCA9IHJlc3VsdF8uRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuY29uZGl0aW9uc19ob3JzX2FnZSBpblxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVnaW1lX291dHJlX21lcl9sNzUxXzFfOiBib29sID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcy5yZWdpbWVfb3V0cmVfbWVyX2w3NTFfMSBpblxuICBsZXQgbF84NDFfMV82X2FwcGxpY2FibGVfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFsbG9jYXRpb25Mb2dlbWVudFwiOyBcImxfODQxXzFfNl9hcHBsaWNhYmxlXCJdIChlbWJlZF9ib29sKVxuICAgIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00NDA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDQwOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0MDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQwOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0NDsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDQ0OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg0MS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NDA7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NDA7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE3NDk7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNzQ5OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODYyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0NDM7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ0MzsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NjEtNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDQgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBHdWFkZWxvdXBlLCBHdXlhbmUsIE1hcnRpbmlxdWUsIExhIFLDqXVuaW9uIGV0IE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDQwOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ0MDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00NDA7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBsXzg0MV8xXzJfYXBwbGljYWJsZV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwibF84NDFfMV8yX2FwcGxpY2FibGVcIl0gKGVtYmVkX2Jvb2wpXG4gICAgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQzOTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00Mzk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM5OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDM5OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM5OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Mzk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05Mjc7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTI3OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg0MS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM5OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Mzk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQzOTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Mzk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE3NDg7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNzQ4OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODYyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0NDI7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ0MjsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NjEtNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDQgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBHdWFkZWxvdXBlLCBHdXlhbmUsIE1hcnRpbmlxdWUsIExhIFLDqXVuaW9uIGV0IE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mzk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDM5OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQzOTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00Mzk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBsXzg0MV8xXzFfYXBwbGljYWJsZV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwibF84NDFfMV8xX2FwcGxpY2FibGVcIl0gKGVtYmVkX2Jvb2wpXG4gICAgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQzODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00Mzg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDM4OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Mzg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MDU7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTA1OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg0MS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Mzg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQzODsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Mzg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE3NDc7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNzQ3OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODYyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0NDE7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ0MTsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NjEtNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDQgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBHdWFkZWxvdXBlLCBHdXlhbmUsIE1hcnRpbmlxdWUsIExhIFLDqXVuaW9uIGV0IE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mzg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDM4OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQzODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00Mzg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25fYWNjZXNzaW9uX3Byb3ByaWV0ZV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwiY29uZGl0aW9uX2FjY2Vzc2lvbl9wcm9wcmnDqXTDqVwiXVxuICAgIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDM3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQzNzsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mzc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Mzc7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mzc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzNzsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzNzsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mzc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Mzc7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mzc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Mzc7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQzNzI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzNzc7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODQyLTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRhaXJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBwcm9wcmlldGFpcmVfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS5wcmV0KS5QcmV0LnRpdHVsYWlyZV9wcmV0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFRpdHVsYWlyZVByZXQuRGVtYW5kZXVyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVGl0dWxhaXJlUHJldC5WZW5kZXVyUXVhbmREZW1hbmRldXJBQ29udHJhdExvY2F0aW9uQWNjZXNzaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS50eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5PYmplY3RpZkRlY2VuY2VMb2dlbWVudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuUHJldnVEYW5zTGlzdGVSMzIxXzE1IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5BZ3JhbmRpck91UmVuZHJlSGFiaXRhYmxlRDMzMV82MyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5QYXNEZVRyYXZhdXggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0aW9uQWNjZXNzaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM1NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MzYwOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4NDItNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRhaXJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkFjY2Vzc2lvblByb3ByaWV0ZUxvY2FsVXNhZ2VFeGNsdXNpZkhhYml0YXRpb24gcHJvcHJpZXRhaXJlXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUucHJldCkuUHJldC50aXR1bGFpcmVfcHJldClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFRpdHVsYWlyZVByZXQuRGVtYW5kZXVyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUaXR1bGFpcmVQcmV0LlZlbmRldXJRdWFuZERlbWFuZGV1ckFDb250cmF0TG9jYXRpb25BY2Nlc3Npb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLnR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuT2JqZWN0aWZEZWNlbmNlTG9nZW1lbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuUHJldnVEYW5zTGlzdGVSMzIxXzE1IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuQWdyYW5kaXJPdVJlbmRyZUhhYml0YWJsZUQzMzFfNjMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuUGFzRGVUcmF2YXV4IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQzMzg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MzQ1OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODQyLTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkFjY2Vzc2lvblByb3ByaWV0ZUxvY2FsVXNhZ2VFeGNsdXNpZkhhYml0YXRpb24gcHJvcHJpZXRhaXJlXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUucHJldCkuUHJldC50aXR1bGFpcmVfcHJldClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVGl0dWxhaXJlUHJldC5EZW1hbmRldXIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVGl0dWxhaXJlUHJldC5WZW5kZXVyUXVhbmREZW1hbmRldXJBQ29udHJhdExvY2F0aW9uQWNjZXNzaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS50eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuT2JqZWN0aWZEZWNlbmNlTG9nZW1lbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5QcmV2dURhbnNMaXN0ZVIzMjFfMTUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5BZ3JhbmRpck91UmVuZHJlSGFiaXRhYmxlRDMzMV82MyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LlBhc0RlVHJhdmF1eCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS50eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuT2JqZWN0aWZEZWNlbmNlTG9nZW1lbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LlByZXZ1RGFuc0xpc3RlUjMyMV8xNSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LkFncmFuZGlyT3VSZW5kcmVIYWJpdGFibGVEMzMxXzYzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuUGFzRGVUcmF2YXV4IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGlvbkFjY2Vzc2lvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQzMDg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzMTA7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjg0Mi01XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlJlc2lkZW50TG9nZW1lbnRGb3llciBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gXyAtPiB0cnVlKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mzc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDM3OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQzNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00Mzc7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9tZW5hZ2VfOiBNZW5hZ2UudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwiw6lsaWdpYmlsaXTDqV9jb21tdW5lLm3DqW5hZ2VcIl1cbiAgICAgIChlbWJlZF9tZW5hZ2UpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDY0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ2NDsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDY0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ2NDsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1lbmFnZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDY0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ2NDsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9kZW1hbmRldXJfOiBEZW1hbmRldXIudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwiw6lsaWdpYmlsaXTDqV9jb21tdW5lLmRlbWFuZGV1clwiXVxuICAgICAgKGVtYmVkX2RlbWFuZGV1cilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00NjU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDY1OyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NjU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDY1OyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVtYW5kZXVyXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00NjU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDY1OyBlbmRfY29sdW1uPTQzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjtcbiAgICAgICAgXCLDqWxpZ2liaWxpdMOpX2NvbW11bmUuZGF0ZV9jb3VyYW50ZVwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00NjY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDY2OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NjY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDY2OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDY2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ2NjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9jb25kaXRpb25fbG9nZW1lbnRfcmVzaWRlbmNlX3ByaW5jaXBhbGVfOiBcbiAgICB1bml0IC0+IGJvb2wgPSBmdW4gKF86IHVuaXQpIC0+IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFsbG9jYXRpb25Mb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIsOpbGlnaWJpbGl0w6lfY29tbXVuZS5jb25kaXRpb25fbG9nZW1lbnRfcsOpc2lkZW5jZV9wcmluY2lwYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICAoZW1iZWRfYm9vbClcbiAgICAgICAgICAgICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ3Nzc7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Nzc3OyBlbmRfY29sdW1uPTY4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODQyLTE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ3Nzc7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Nzc3OyBlbmRfY29sdW1uPTY4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODQyLTE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgbG9nZW1lbnRfZm95ZXJfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dlbWVudF9mb3llcl8uTG9nZW1lbnRGb3llci5jb25zdHJ1aXRfYXBwbGljYXRpb25fbG9pXzE5NTdfMTJfSUlJKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Tb3VzTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0aW9uQWNjZXNzaW9uIF8gLT4gZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlXzogdW5pdCAtPiBib29sID0gXG4gICAgZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjtcbiAgICAgICAgXCLDqWxpZ2liaWxpdMOpX2NvbW11bmUuY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VcIl0gKGVtYmVkX2Jvb2wpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00Nzc4OyBzdGFydF9jb2x1bW49OTsgZW5kX2xpbmU9NDc3ODsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjg0Mi0xNFwiOyBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00Nzc4OyBzdGFydF9jb2x1bW49OTsgZW5kX2xpbmU9NDc3ODsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjg0Mi0xNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAobWF0Y2ggKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKVxuICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgbG9nZW1lbnRfZm95ZXJfIC0+XG4gICAgICAgICAgICAgICAgIChsb2dlbWVudF9mb3llcl8uTG9nZW1lbnRGb3llci5jb25zdHJ1aXRfYXBwbGljYXRpb25fbG9pXzE5NTdfMTJfSUlJKVxuICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Tb3VzTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0aW9uQWNjZXNzaW9uIF8gLT4gZmFsc2UpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2RhdGVfZW50cmVlX3ZpZ3VldXJfZGlmZmVyZWVfY2NoXzogdW5pdCAtPiBkYXRlID0gXG4gICAgZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjtcbiAgICAgICAgXCLDqWxpZ2liaWxpdMOpX2NvbW11bmUuZGF0ZV9lbnRyw6llX3ZpZ3VldXJfZGlmZsOpcsOpZV9jY2hcIl1cbiAgICAgIChlbWJlZF9kYXRlKSAocmFpc2UgRW1wdHlFcnJvcikpIGluXG4gIGxldCByZXN1bHRfOiBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCLDqWxpZ2liaWxpdMOpX2NvbW11bmVcIjtcbiAgICAgIFwiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFsbG9jYXRpb25Mb2dlbWVudFwiOyBcIsOpbGlnaWJpbGl0w6lfY29tbXVuZVwiO1xuICAgICAgXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCJdXG4gICAgZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQpXG4gICAgKHtFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLm1lbmFnZV9pbiA9XG4gICAgICAgIGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X21lbmFnZV87XG4gICAgICAgIEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGVtYW5kZXVyX2luID1cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9kZW1hbmRldXJfO1xuICAgICAgICBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICAgIGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2RhdGVfY291cmFudGVfO1xuICAgICAgICBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmNvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcHJpbmNpcGFsZV9pbiA9XG4gICAgICAgICAgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfY29uZGl0aW9uX2xvZ2VtZW50X3Jlc2lkZW5jZV9wcmluY2lwYWxlXztcbiAgICAgICAgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5jb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZV9pbiA9XG4gICAgICAgICAgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfO1xuICAgICAgICBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRhdGVfZW50cmVlX3ZpZ3VldXJfZGlmZmVyZWVfY2NoX2luID1cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9kYXRlX2VudHJlZV92aWd1ZXVyX2RpZmZlcmVlX2NjaF99KSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuZGF0ZV9jb3VyYW50ZSBpblxuICBsZXQgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZWxpZ2liaWxpdGVfOiBib29sID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5lbGlnaWJpbGl0ZSBpblxuICBsZXQgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXzogaW50ZWdlciA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9jb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXzogXG4gICAgZGVjaW1hbCBhcnJheSA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSBpblxuICBsZXQgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfY29uZGl0aW9uXzJfcjgyM180XzogUGVyc29ubmVBQ2hhcmdlLnQgLT4gYm9vbCA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuY29uZGl0aW9uXzJfcjgyM180IGluXG4gIGxldCBjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXzogZGVjaW1hbCBhcnJheSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjtcbiAgICAgIFwiY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm7DqWVfcHJpc19lbl9jb21wdGVcIl1cbiAgICAoZW1iZWRfYXJyYXkgKGVtYmVkX2RlY2ltYWwpKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDUzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTQ1MzsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDcwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ3MDsgZW5kX2NvbHVtbj02MztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9jb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDUzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTQ1MzsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZV86IGludGVnZXIgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7XG4gICAgICBcIm5vbWJyZV9wZXJzb25uZXNfw6BfY2hhcmdlX3ByaXNlc19lbl9jb21wdGVcIl0gKGVtYmVkX2ludGVnZXIpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00NTI7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NDUyOyBlbmRfY29sdW1uPTU0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00Njg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDY4OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ1Mjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT00NTI7IGVuZF9jb2x1bW49NTQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9kaXNwb3NpdGlvbnNfY29tbXVuZXNfOiBUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQudCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjtcbiAgICAgIFwiw6lsaWdpYmlsaXTDqV9kaXNwb3NpdGlvbnNfY29tbXVuZXNcIl1cbiAgICAoZW1iZWRfdHlwZV9lbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDUwOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTQ1MDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT04Nzc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODc3OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAob19vciAob19ub3QgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZWxpZ2liaWxpdGVfKVxuICAgICAgICAgICAgICAgICAob19ub3QgY29uZGl0aW9uX2FjY2Vzc2lvbl9wcm9wcmlldGVfKSkgdGhlblxuICAgICAgICAgICAgICAoVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LlBhc0VsaWdpYmxlICgpKSBlbHNlXG4gICAgICAgICAgICAgIChUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZSAoKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ1MDsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT00NTA7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZhbWlsaWFsZV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7XG4gICAgICBcIsOpbGlnaWJpbGl0w6lfYWxsb2NhdGlvbl9sb2dlbWVudF9mYW1pbGlhbGVcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00NDI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDQyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0MjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0MjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0MjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0MjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0MjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE4MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xODExOyBlbmRfY29sdW1uPTY2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgTDg2Mi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVtYW5kZXVyXy5EZW1hbmRldXIuZXN0X25vbl9zYWxhcmllX2Fncmljb2xlX2w3ODFfOF9sXzc4MV80Nl9jb2RlX3J1cmFsKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTc3MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE3OTI7IGVuZF9jb2x1bW49OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIEw4NjItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHBhcnRpY3VsacOocmVzIMOgIGwnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGVyc29ubmVfYV9jaGFyZ2VfOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZXJzb25uZUFDaGFyZ2UudCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyc29ubmVfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGVyc29ubmVBQ2hhcmdlLkVuZmFudEFDaGFyZ2UgZW5mYW50XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfYm9vbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2Ryb2l0X291dmVydF8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh7RW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmlkZW50aWZpYW50ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5pZGVudGlmaWFudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5vYmxpZ2F0aW9uX3Njb2xhaXJlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5vYmxpZ2F0aW9uX3Njb2xhaXJlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnJlbXVuZXJhdGlvbl9tZW5zdWVsbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLnJlbXVuZXJhdGlvbl9tZW5zdWVsbGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuZGF0ZV9kZV9uYWlzc2FuY2UgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLmRhdGVfZGVfbmFpc3NhbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnByaXNlX2VuX2NoYXJnZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLnNpdHVhdGlvbl9nYXJkZV9hbHRlcm5lZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaXR1YXRpb25HYXJkZUFsdGVybmVlLlBhc0RlR2FyZGVBbHRlcm5lZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQcmlzZUVuQ2hhcmdlRW5mYW50LkVmZmVjdGl2ZUV0UGVybWFuZW50ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2l0dWF0aW9uR2FyZGVBbHRlcm5lZS5HYXJkZUFsdGVybmVlQ29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFByaXNlRW5DaGFyZ2VFbmZhbnQuR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLmJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudCl9KSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGVyc29ubmVBQ2hhcmdlLkF1dHJlUGVyc29ubmVBQ2hhcmdlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5wZXJzb25uZXNfYV9jaGFyZ2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0MjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NDI7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTIxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUyMTsgZW5kX2NvbHVtbj02NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIEw4NjEtNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gNCA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogR3VhZGVsb3VwZSwgR3V5YW5lLCBNYXJ0aW5pcXVlLCBMYSBSw6l1bmlvbiBldCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVtYW5kZXVyXy5EZW1hbmRldXIuZXN0X25vbl9zYWxhcmllX2Fncmljb2xlX2w3ODFfOF9sXzc4MV80Nl9jb2RlX3J1cmFsKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ3OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MDA7IGVuZF9jb2x1bW49OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIEw4NjEtNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gNCA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogR3VhZGVsb3VwZSwgR3V5YW5lLCBNYXJ0aW5pcXVlLCBMYSBSw6l1bmlvbiBldCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2ZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwZXJzb25uZV9hX2NoYXJnZV86XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBlcnNvbm5lQUNoYXJnZS50KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJzb25uZV9hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZXJzb25uZUFDaGFyZ2UuRW5mYW50QUNoYXJnZSBlbmZhbnRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9ib29sKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfZHJvaXRfb3V2ZXJ0XylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9lbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHtFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuaWRlbnRpZmlhbnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLmlkZW50aWZpYW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLm9ibGlnYXRpb25fc2NvbGFpcmUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLm9ibGlnYXRpb25fc2NvbGFpcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMucmVtdW5lcmF0aW9uX21lbnN1ZWxsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UucmVtdW5lcmF0aW9uX21lbnN1ZWxsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5kYXRlX2RlX25haXNzYW5jZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuZGF0ZV9kZV9uYWlzc2FuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMucHJpc2VfZW5fY2hhcmdlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2Uuc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUuUGFzRGVHYXJkZUFsdGVybmVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFByaXNlRW5DaGFyZ2VFbmZhbnQuRWZmZWN0aXZlRXRQZXJtYW5lbnRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaXR1YXRpb25HYXJkZUFsdGVybmVlLkdhcmRlQWx0ZXJuZWVDb2VmZmljaWVudFByaXNlRW5DaGFyZ2UgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHJpc2VFbkNoYXJnZUVuZmFudC5HYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5hX2RlamFfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5hX2RlamFfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuYmVuZWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50KX0pKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZXJzb25uZUFDaGFyZ2UuQXV0cmVQZXJzb25uZUFDaGFyZ2UgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnBlcnNvbm5lc19hX2NoYXJnZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNTQ7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSBMODQxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbF84NDFfMV82X2FwcGxpY2FibGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5zaXR1YXRpb25fZmFtaWxpYWxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5DZWxpYmF0YWlyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5wZXJzb25uZXNfYV9jaGFyZ2UpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UuZW5mYW50X2FfbmFpdHJlX2FwcmVzX3F1YXRyaWVtZV9tb2lzX2dyb3NzZXNzZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuTWFyaWVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5QYWNzZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNvbmN1YmlucyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuQ2VsaWJhdGFpcmVTZXBhcmVEZUZhaXQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNvbmN1YmluYWdlRG9udFNlcGFyZURlRmFpdCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAyMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAzNDsgZW5kX2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBlcnNvbm5lX2FfY2hhcmdlXzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBlcnNvbm5lQUNoYXJnZS50KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJzb25uZV9hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuRW5mYW50QUNoYXJnZSBlbmZhbnRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuQXV0cmVQZXJzb25uZUFDaGFyZ2UgcGFyZW50XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJlbnRfLkF1dHJlUGVyc29ubmVBQ2hhcmdlLmFzY2VuZGFudF9kZXNjZW5kYW50X2NvbGxhdGVyYWxfZGV1eGllbWVfdHJvaXNpZW1lX2RlZ3JlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFyZW50Xy5BdXRyZVBlcnNvbm5lQUNoYXJnZS5pbmNhcGFjaXRlXzgwX3BvdXJjZW50X291X3Jlc3RyaWN0aW9uX2VtcGxvaSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5wZXJzb25uZXNfYV9jaGFyZ2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDA1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMDc7IGVuZF9jb2x1bW49OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODQxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2ZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwZXJzb25uZV9hX2NoYXJnZV86XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGVyc29ubmVBQ2hhcmdlLnQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY29uZGl0aW9uXzJfcjgyM180XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY29uZGl0aW9uXzJfcjgyM180XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY29uZGl0aW9uXzJfcjgyM180XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvbmRpdGlvbl8yX3I4MjNfNF8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY29uZGl0aW9uXzJfcjgyM180XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX3BlcnNvbm5lX2FfY2hhcmdlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJzb25uZV9hX2NoYXJnZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5wZXJzb25uZXNfYV9jaGFyZ2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NjU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05OTE7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2ZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBlcnNvbm5lX2FfY2hhcmdlXzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGVyc29ubmVBQ2hhcmdlLnQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCBwZXJzb25uZV9hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkVuZmFudEFDaGFyZ2UgZW5mYW50XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX25vdCAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9ib29sKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2Ryb2l0X291dmVydF8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9lbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe0VuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5pZGVudGlmaWFudCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuaWRlbnRpZmlhbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMub2JsaWdhdGlvbl9zY29sYWlyZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5vYmxpZ2F0aW9uX3Njb2xhaXJlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnJlbXVuZXJhdGlvbl9tZW5zdWVsbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UucmVtdW5lcmF0aW9uX21lbnN1ZWxsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5kYXRlX2RlX25haXNzYW5jZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5kYXRlX2RlX25haXNzYW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5wcmlzZV9lbl9jaGFyZ2UgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2Uuc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uR2FyZGVBbHRlcm5lZS5QYXNEZUdhcmRlQWx0ZXJuZWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHJpc2VFbkNoYXJnZUVuZmFudC5FZmZlY3RpdmVFdFBlcm1hbmVudGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uR2FyZGVBbHRlcm5lZS5HYXJkZUFsdGVybmVlQ29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFByaXNlRW5DaGFyZ2VFbmZhbnQuR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5hX2RlamFfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQpfSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuQXV0cmVQZXJzb25uZUFDaGFyZ2UgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnBlcnNvbm5lc19hX2NoYXJnZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnNpdHVhdGlvbl9mYW1pbGlhbGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNlbGliYXRhaXJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5NYXJpZXMgZGF0ZV9tYXJpYWdlXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfZGF0X2R1ciBBYm9ydE9uUm91bmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9tYXJpYWdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkdXJlZV9sODQxXzFfM18pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLlBhY3NlcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuQ29uY3ViaW5zIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5DZWxpYmF0YWlyZVNlcGFyZURlRmFpdCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuQ29uY3ViaW5hZ2VEb250U2VwYXJlRGVGYWl0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkzMjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NTQ7IGVuZF9jb2x1bW49ODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmQgbF84NDFfMV8yX2FwcGxpY2FibGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBlcnNvbm5lX2FfY2hhcmdlXzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBlcnNvbm5lQUNoYXJnZS50KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHBlcnNvbm5lX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5FbmZhbnRBQ2hhcmdlIGVuZmFudF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0XCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9ib29sKSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9kcm9pdF9vdXZlcnRfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydFwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh7RW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmlkZW50aWZpYW50ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuaWRlbnRpZmlhbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLm9ibGlnYXRpb25fc2NvbGFpcmUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLm9ibGlnYXRpb25fc2NvbGFpcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnJlbXVuZXJhdGlvbl9tZW5zdWVsbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLnJlbXVuZXJhdGlvbl9tZW5zdWVsbGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmRhdGVfZGVfbmFpc3NhbmNlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5kYXRlX2RlX25haXNzYW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMucHJpc2VfZW5fY2hhcmdlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2Uuc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25HYXJkZUFsdGVybmVlLlBhc0RlR2FyZGVBbHRlcm5lZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFByaXNlRW5DaGFyZ2VFbmZhbnQuRWZmZWN0aXZlRXRQZXJtYW5lbnRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUuR2FyZGVBbHRlcm5lZUNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFByaXNlRW5DaGFyZ2VFbmZhbnQuR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuYmVuZWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQpfSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuQXV0cmVQZXJzb25uZUFDaGFyZ2UgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucGVyc29ubmVzX2FfY2hhcmdlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MDk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkxNTsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmQgbF84NDFfMV8xX2FwcGxpY2FibGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2ZvbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoYWNjXzogYm9vbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByZXN0YXRpb25fOiBQcmVzdGF0aW9uUmVjdWUudCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19vciBhY2NfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBwcmVzdGF0aW9uX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQcmVzdGF0aW9uUmVjdWUuQWxsb2NhdGlvbnNGYW1pbGlhbGVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcHJlc3RhdGlvbl9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHJlc3RhdGlvblJlY3VlLkNvbXBsZW1lbnRGYW1pbGlhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHByZXN0YXRpb25fXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFByZXN0YXRpb25SZWN1ZS5BbGxvY2F0aW9uU291dGllbkZhbWlsaWFsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHByZXN0YXRpb25fXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFByZXN0YXRpb25SZWN1ZS5BbGxvY2F0aW9uU291dGllbkVuZmFudEhhbmRpY2FwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSkpKSkpIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5wcmVzdGF0aW9uc19yZWN1ZXMpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQ0MjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00NDI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDQyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfbDg0MV8yXzogVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LnQgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwiw6lsaWdpYmlsaXTDqV9sODQxXzJcIl1cbiAgICAoZW1iZWRfdHlwZV9lbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDUxOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTQ1MTsgZW5kX2NvbHVtbj0xNjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NTE7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NTE7IGVuZF9jb2x1bW49MTY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NTE7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ1MTsgZW5kX2NvbHVtbj0xNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDUxOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ1MTsgZW5kX2NvbHVtbj0xNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYzMTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MzI7IGVuZF9jb2x1bW49Nzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MTYtOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gNCA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogR3VhZGVsb3VwZSwgR3V5YW5lLCBNYXJ0aW5pcXVlLCBMYSBSw6l1bmlvbiBldCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVtYW5kZXVyXy5EZW1hbmRldXIubWFnaXN0cmF0X2ZvbmN0aW9ubmFpcmVfY2VudHJlX2ludGVyZXRzX21hdGVyaWVsc19mYW1pbGlhdXhfaG9yc19tYXlvdHRlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5QYXNFbGlnaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU5Nzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjA2OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg2MS02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gNCA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IEd1YWRlbG91cGUsIEd1eWFuZSwgTWFydGluaXF1ZSwgTGEgUsOpdW5pb24gZXQgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5tb2RlX29jY3VwYXRpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlJlc2lkZW50TG9nZW1lbnRGb3llciBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkFjY2Vzc2lvblByb3ByaWV0ZUxvY2FsVXNhZ2VFeGNsdXNpZkhhYml0YXRpb24gcHJvcHJpZXRhaXJlXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUucHJldCkuUHJldC5kYXRlX3NpZ25hdHVyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTcpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUucHJldCkuUHJldC5kYXRlX3NpZ25hdHVyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUucHJldCkuUHJldC5hY2NvcmRfZmluYW5jZW1lbnRfcmVwcmVzZW50YW50X0V0YXRfb3V0cmVfbWVyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEFjY29yZEZpbmFuY2VtZW50UmVwcmVzZW50YW50RXRhdE91dHJlTWVyLkFjY29yZCBkYXRlX2FjY29yZF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9hY2NvcmRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTgpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBBY2NvcmRGaW5hbmNlbWVudFJlcHJlc2VudGFudEV0YXRPdXRyZU1lci5QYXNkQWNjb3JkIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Tb3VzTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGlvbkFjY2Vzc2lvbiBfIC0+IGZhbHNlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LlBhc0VsaWdpYmxlICgpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDUxOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NTE7IGVuZF9jb2x1bW49MTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTgxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExODE7IGVuZF9jb2x1bW49NzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODQxLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlbWFuZGV1cl8uRGVtYW5kZXVyLnBlcnNvbm5lX2hlYmVyZ2VlX2NlbnRyZV9zb2luX2xfTDE2Ml8yMl8zX3NlY3VyaXRlX3NvY2lhbGUpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE5NTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE5ODsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODQxLTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBwcm9wcmlldGFpcmVfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUucHJldCkuUHJldC5kYXRlX3NpZ25hdHVyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE3KSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Tb3VzTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuUGFzRWxpZ2libGUgKCkpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEwODE7IHN0YXJ0X2NvbHVtbj0yOTsgZW5kX2xpbmU9MTA4MTsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg0MS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAob19lcSBlbGlnaWJpbGl0ZV9kaXNwb3NpdGlvbnNfY29tbXVuZXNfXG4gICAgICAgICAgICAgICAgICAgIChUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuUGFzRWxpZ2libGUgKCkpKVxuICAgICAgICAgICAgICAgICBiZW5lZmljaWVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50XykgdGhlblxuICAgICAgICAgICAgICAoVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LlBhc0VsaWdpYmxlICgpKSBlbHNlXG4gICAgICAgICAgICAgICggaWYgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9mYW1pbGlhbGVfIHRoZW5cbiAgICAgICAgICAgICAgICAgKFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGVcbiAgICAgICAgICAgICAgICAgICAgKCkpIGVsc2VcbiAgICAgICAgICAgICAgICAgKFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlXG4gICAgICAgICAgICAgICAgICAgICgpKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ1MTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT00NTE7IGVuZF9jb2x1bW49MTY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIHtFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5lbGlnaWJpbGl0ZSA9IGVsaWdpYmlsaXRlX2w4NDFfMl87XG4gICAgIEVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50Lm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZSA9XG4gICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXztcbiAgICAgRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSA9XG4gICAgICAgY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZV99XG5cbmxldCBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQgKGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbjogRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4udCkgOiBFbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQudCA9XG4gIGxldCBtZW5hZ2VfOiBNZW5hZ2UudCA9IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbi5FbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi5tZW5hZ2VfaW4gaW5cbiAgbGV0IGRlbWFuZGV1cl86IERlbWFuZGV1ci50ID0gZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luLkVsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLmRlbWFuZGV1cl9pbiBpblxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4uRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4uZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgY2FyYWN0ZXJpc3RpcXVlc19wcmV0X2w4MzFfMV8xXzogUHJldC50IC0+IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjtcbiAgICAgIFwiY2FyYWN0w6lyaXN0aXF1ZXNfcHLDqnRfbDgzMV8xXzFcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAocHJldF86IFByZXQudCkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Mzk3OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5Nzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzk3OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMwMTg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMwMjE7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgzMi03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJldF8uUHJldC50aXR1bGFpcmVfcHJldClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVGl0dWxhaXJlUHJldC5EZW1hbmRldXIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFRpdHVsYWlyZVByZXQuVmVuZGV1clF1YW5kRGVtYW5kZXVyQUNvbnRyYXRMb2NhdGlvbkFjY2Vzc2lvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChwcmV0Xy5QcmV0LnR5cGVfcHJldClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAocHJldF8uUHJldC50eXBlX3ByZXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+IGZhbHNlKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjk4Mzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI5ODU7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MzItNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAocHJldF8uUHJldC50aXR1bGFpcmVfcHJldClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUaXR1bGFpcmVQcmV0LkRlbWFuZGV1ciBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFRpdHVsYWlyZVByZXQuVmVuZGV1clF1YW5kRGVtYW5kZXVyQUNvbnRyYXRMb2NhdGlvbkFjY2Vzc2lvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAocHJldF8uUHJldC50eXBlX3ByZXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChwcmV0Xy5QcmV0LnR5cGVfcHJldClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT4gZmFsc2UpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5Nzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5NzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTM5NzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTM5Nzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zOTc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjYXJhY3RlcmlzdGlxdWVzX3ByZXRfbDgzMV8xXzZfOiBQcmV0LnQgLT4gYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgXCJjYXJhY3TDqXJpc3RpcXVlc19wcsOqdF9sODMxXzFfNlwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChwcmV0XzogUHJldC50KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5ODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zOTg7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5ODsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5ODsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTM5ODsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTM5ODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zOTg7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9tZW5hZ2VfOiBNZW5hZ2UudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjtcbiAgICAgICAgXCLDqWxpZ2liaWxpdMOpX2NvbW11bmUubcOpbmFnZVwiXSAoZW1iZWRfbWVuYWdlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQwOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MDk7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQwOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MDk7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtZW5hZ2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQwOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MDk7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZGVtYW5kZXVyXzogRGVtYW5kZXVyLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9jb21tdW5lLmRlbWFuZGV1clwiXSAoZW1iZWRfZGVtYW5kZXVyKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQxMDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MTA7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQxMDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MTA7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZW1hbmRldXJfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQxMDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MTA7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9jb21tdW5lLmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDExOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQxMTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDExOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQxMTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfY291cmFudGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQxMTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MTE7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfY29uZGl0aW9uX2xvZ2VtZW50X3Jlc2lkZW5jZV9wcmluY2lwYWxlXzogXG4gICAgdW5pdCAtPiBib29sID0gZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIsOpbGlnaWJpbGl0w6lfY29tbXVuZS5jb25kaXRpb25fbG9nZW1lbnRfcsOpc2lkZW5jZV9wcmluY2lwYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICAoZW1iZWRfYm9vbCkgKHJhaXNlIEVtcHR5RXJyb3IpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfOiB1bml0IC0+IGJvb2wgPSBcbiAgICBmdW4gKF86IHVuaXQpIC0+IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9jb21tdW5lLmNvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlXCJdIChlbWJlZF9ib29sKVxuICAgICAgKHJhaXNlIEVtcHR5RXJyb3IpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jY2hfOiB1bml0IC0+IGRhdGUgPSBcbiAgICBmdW4gKF86IHVuaXQpIC0+IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9jb21tdW5lLmRhdGVfZW50csOpZV92aWd1ZXVyX2RpZmbDqXLDqWVfY2NoXCJdXG4gICAgICAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTU0Njc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NTQ2NzsgZW5kX2NvbHVtbj02NjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjg2MS01XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FwaXRyZSBJIDogR3VhZGVsb3VwZSwgR3V5YW5lLCBNYXJ0aW5pcXVlLCBMYSBSw6l1bmlvbiBldCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbiBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT01NDY4OyBzdGFydF9jb2x1bW49NTsgZW5kX2xpbmU9NTQ2OTsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjg2MS01XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FwaXRyZSBJIDogR3VhZGVsb3VwZSwgR3V5YW5lLCBNYXJ0aW5pcXVlLCBMYSBSw6l1bmlvbiBldCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbiBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAobWF0Y2ggKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKVxuICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgXyAtPiBmYWxzZVxuICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlNvdXNMb2NhdGFpcmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gXyAtPiBmYWxzZSkpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoNSkgKDEpKSkpIGluXG4gIGxldCByZXN1bHRfOiBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiOyBcIsOpbGlnaWJpbGl0w6lfY29tbXVuZVwiO1xuICAgICAgXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjsgXCLDqWxpZ2liaWxpdMOpX2NvbW11bmVcIjtcbiAgICAgIFwiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXVxuICAgIGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50KVxuICAgICh7RWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5tZW5hZ2VfaW4gPVxuICAgICAgICBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9tZW5hZ2VfO1xuICAgICAgICBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRlbWFuZGV1cl9pbiA9XG4gICAgICAgICAgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZGVtYW5kZXVyXztcbiAgICAgICAgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9kYXRlX2NvdXJhbnRlXztcbiAgICAgICAgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5jb25kaXRpb25fbG9nZW1lbnRfcmVzaWRlbmNlX3ByaW5jaXBhbGVfaW4gPVxuICAgICAgICAgIGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcHJpbmNpcGFsZV87XG4gICAgICAgIEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfaW4gPVxuICAgICAgICAgIGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlXztcbiAgICAgICAgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kYXRlX2VudHJlZV92aWd1ZXVyX2RpZmZlcmVlX2NjaF9pbiA9XG4gICAgICAgICAgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jY2hffSkpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSByZXN1bHRfLkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LmRhdGVfY291cmFudGUgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2VsaWdpYmlsaXRlXzogYm9vbCA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuZWxpZ2liaWxpdGUgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZV86IGludGVnZXIgPSByZXN1bHRfLkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50Lm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZSBpblxuICBsZXQgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZV86IFxuICAgIGRlY2ltYWwgYXJyYXkgPSByZXN1bHRfLkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LmNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGUgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvbmRpdGlvbl8yX3I4MjNfNF86IFBlcnNvbm5lQUNoYXJnZS50IC0+IGJvb2wgPSByZXN1bHRfLkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LmNvbmRpdGlvbl8yX3I4MjNfNCBpblxuICBsZXQgbG9nZW1lbnRfc2l0dWVfY29tbXVuZV9kZXNlcXVpbGlicmVfbDgzMV8yXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgXCJsb2dlbWVudF9zaXR1w6lfY29tbXVuZV9kw6lzw6lxdWlsaWJyZV9sODMxXzJcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zOTQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Mzk0OyBlbmRfY29sdW1uPTUzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5NDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5NDsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDYzODsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDYzODsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0OVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgWEkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC56b25lKVxuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPiB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTM5NDsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zOTQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Mzk0OyBlbmRfY29sdW1uPTUzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY29uZGl0aW9uX2xvZ2VtZW50X2JhaWxsZXVyXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgXCJjb25kaXRpb25fbG9nZW1lbnRfYmFpbGxldXJcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zOTU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Mzk1OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5NTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5NTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5NTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzk1OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQxMjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDE1OyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg2MS01LTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBHdWFkZWxvdXBlLCBHdXlhbmUsIE1hcnRpbmlxdWUsIExhIFLDqXVuaW9uIGV0IE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5tb2RlX29jY3VwYXRpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlJlc2lkZW50TG9nZW1lbnRGb3llciBsb2NhdGlvbl8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2NhdGlvbl8uTG9nZW1lbnRGb3llci5jb252ZW50aW9ubmVfc2Vsb25fcmVnbGVzX21heW90dGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlNvdXNMb2NhdGFpcmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0aW9uQWNjZXNzaW9uIF8gLT4gZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03MjE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTcyNDsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODMxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIGxvY2F0aW9uXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIChsb2NhdGlvbl8uTG9nZW1lbnRGb3llci5jb252ZW50aW9ubmVfbGl2cmVfSUlJX3RpdHJlX1ZfY2hhcF9JSUkpXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkFjY2Vzc2lvblByb3ByaWV0ZUxvY2FsVXNhZ2VFeGNsdXNpZkhhYml0YXRpb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlNvdXNMb2NhdGFpcmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGlvbkFjY2Vzc2lvbiBfIC0+IGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzk1OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTU7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5NTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTU7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzk1OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzk1OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNjkwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNjk1OyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgzMi0yMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAxIDogQ29uZGl0aW9ucyBkJ2Fzc2ltaWxhdGlvbiBkZXMgbG9nZW1lbnRzLWZveWVycyBhdXggbG9nZW1lbnRzIMOgIHVzYWdlIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5tb2RlX29jY3VwYXRpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgbG9nZW1lbnRfZm95ZXJfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nZW1lbnRfZm95ZXJfLkxvZ2VtZW50Rm95ZXIucmVtcGxpdF9jb25kaXRpb25zX3I4MzJfMjEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlNvdXNMb2NhdGFpcmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGlvbkFjY2Vzc2lvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTczODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzQxOyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MzEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlJlc2lkZW50TG9nZW1lbnRGb3llciBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gcHJvcHJpZXRlXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhcmFjdMOpcmlzdGlxdWVzX3Byw6p0X2w4MzFfMV82XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYXJhY3TDqXJpc3RpcXVlc19wcsOqdF9sODMxXzFfNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX2Jvb2wpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYXJhY3TDqXJpc3RpcXVlc19wcsOqdF9sODMxXzFfNlwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcmFjdGVyaXN0aXF1ZXNfcHJldF9sODMxXzFfNl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYXJhY3TDqXJpc3RpcXVlc19wcsOqdF9sODMxXzFfNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX3ByZXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3ByaWV0ZV8uUHJvcHJpZXRhaXJlLnByZXQpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02Nzc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02ODY7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MzEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgbG9jYXRpb25fIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAobG9jYXRpb25fLkxvY2F0aW9uLmJhaWxsZXVyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlQmFpbGxldXIuQmFpbGxldXJTb2NpYWwgY29udmVudGlvbl8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29udmVudGlvbl8uQ29udmVudGlvbkJhaWxsZXVyU29jaWFsLmNvbnZlbnRpb25uZV9saXZyZV9JSUlfdGl0cmVfVl9jaGFwX0lJSSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZUJhaWxsZXVyLkJhaWxsZXVyUHJpdmVBdmVjQ29udmVudGlvbm5lbWVudFNvY2lhbCBjb252ZW50aW9uXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb252ZW50aW9uXy5Db252ZW50aW9uQU5IQS5jb252ZW50aW9ubmVfbGl2cmVfSUlJX3RpdHJlX0lJX2NoYXBfSV9zZWNfMylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZUJhaWxsZXVyLkJhaWxsZXVyUHJpdmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkFjY2Vzc2lvblByb3ByaWV0ZUxvY2FsVXNhZ2VFeGNsdXNpZkhhYml0YXRpb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGlvbkFjY2Vzc2lvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY1Njsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NTk7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODMxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5BY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uIHByb3ByaWV0ZV8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYXJhY3TDqXJpc3RpcXVlc19wcsOqdF9sODMxXzFfMVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FyYWN0w6lyaXN0aXF1ZXNfcHLDqnRfbDgzMV8xXzFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX2Jvb2wpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhcmFjdMOpcmlzdGlxdWVzX3Byw6p0X2w4MzFfMV8xXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXJhY3RlcmlzdGlxdWVzX3ByZXRfbDgzMV8xXzFfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FyYWN0w6lyaXN0aXF1ZXNfcHLDqnRfbDgzMV8xXzFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX3ByZXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvcHJpZXRlXy5Qcm9wcmlldGFpcmUucHJldCkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKSAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM5NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zOTU7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Mzk1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTM5NTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVfOiBkZWNpbWFsIGFycmF5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICBcImNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuw6llX3ByaXNfZW5fY29tcHRlXCJdXG4gICAgKGVtYmVkX2FycmF5IChlbWJlZF9kZWNpbWFsKSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQwNDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT00MDQ7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQxNTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MTU7IGVuZF9jb2x1bW49NjM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQwNDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT00MDQ7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGVfOiBpbnRlZ2VyID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICBcIm5vbWJyZV9wZXJzb25uZXNfw6BfY2hhcmdlX3ByaXNlc19lbl9jb21wdGVcIl0gKGVtYmVkX2ludGVnZXIpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00MDM7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NDAzOyBlbmRfY29sdW1uPTU0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00MTM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDEzOyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQwMzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT00MDM7IGVuZF9jb2x1bW49NTQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25fbG9nZW1lbnRfcHJldF86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjsgXCJjb25kaXRpb25fbG9nZW1lbnRfcHLDqnRcIl1cbiAgICAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTM5Njsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zOTY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzk2OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5Njsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc3Nzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc5MDsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgzMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBwcm9wcmlldGVfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHByb3ByaWV0ZV8uUHJvcHJpZXRhaXJlLnByZXQpLlByZXQuZGF0ZV9zaWduYXR1cmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTgpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHByb3ByaWV0ZV8uUHJvcHJpZXRhaXJlLnByZXQpLlByZXQuZGF0ZV9zaWduYXR1cmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wcmlldGVfLlByb3ByaWV0YWlyZS5hbmNpZW5uZXRlX2xvZ2VtZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nZW1lbnRfc2l0dWVfY29tbXVuZV9kZXNlcXVpbGlicmVfbDgzMV8yXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGlvbkFjY2Vzc2lvbiBwcm9wcmlldGVfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHByb3ByaWV0ZV8uUHJvcHJpZXRhaXJlLnByZXQpLlByZXQuZGF0ZV9zaWduYXR1cmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTgpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHByb3ByaWV0ZV8uUHJvcHJpZXRhaXJlLnByZXQpLlByZXQuZGF0ZV9zaWduYXR1cmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wcmlldGVfLlByb3ByaWV0YWlyZS5hbmNpZW5uZXRlX2xvZ2VtZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nZW1lbnRfc2l0dWVfY29tbXVuZV9kZXNlcXVpbGlicmVfbDgzMV8yXykpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzU4OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MzsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MzEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5tb2RlX29jY3VwYXRpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlJlc2lkZW50TG9nZW1lbnRGb3llciBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkFjY2Vzc2lvblByb3ByaWV0ZUxvY2FsVXNhZ2VFeGNsdXNpZkhhYml0YXRpb24gcHJvcHJpZXRlXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvcHJpZXRlXy5Qcm9wcmlldGFpcmUucHJldCkuUHJldC5kYXRlX3NpZ25hdHVyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTcpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gcHJvcHJpZXRlXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvcHJpZXRlXy5Qcm9wcmlldGFpcmUucHJldCkuUHJldC5kYXRlX3NpZ25hdHVyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTcpICgxMikgKDMxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc1Mzsgc3RhcnRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc1MzsgZW5kX2NvbHVtbj01NDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODMxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Mzk2OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTM5Njsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zOTY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjsgXCLDqWxpZ2liaWxpdMOpXCJdIChlbWJlZF9ib29sKVxuICAgIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00MDI7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NDAyOyBlbmRfY29sdW1uPTIzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQwMjsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQwMjsgZW5kX2NvbHVtbj0yMztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQwMjsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDAyOyBlbmRfY29sdW1uPTIzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI3ODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjc5OyBlbmRfY29sdW1uPTU0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg2MC0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHBhcnRpY3VsacOocmVzIMOgIGwnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IGZhbHNlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02Mjc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYyOTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmQgY29uZGl0aW9uX2xvZ2VtZW50X2JhaWxsZXVyX1xuICAgICAgICAgICAgICAgICAgICAgICAob19hbmQgY29uZGl0aW9uX2xvZ2VtZW50X3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2VsaWdpYmlsaXRlXykpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQwMjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT00MDI7IGVuZF9jb2x1bW49MjM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDAyOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTQwMjsgZW5kX2NvbHVtbj0yMztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAge0VsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudC5kYXRlX2NvdXJhbnRlID0gZGF0ZV9jb3VyYW50ZV87XG4gICAgIEVsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudC5lbGlnaWJpbGl0ZSA9IGVsaWdpYmlsaXRlXztcbiAgICAgRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Lm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZSA9XG4gICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXztcbiAgICAgRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LmNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGUgPVxuICAgICAgIGNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVffVxuXG5sZXQgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudCAoY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pbjogQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEluLnQpIDogQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudC50ID1cbiAgbGV0IG1lbmFnZV86IE1lbmFnZS50ID0gY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pbi5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50SW4ubWVuYWdlX2luIGluXG4gIGxldCBkZW1hbmRldXJfOiBEZW1hbmRldXIudCA9IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW4uQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEluLmRlbWFuZGV1cl9pbiBpblxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luLkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCByZXNzb3VyY2VzX21lbmFnZV9wcmlzZXNfZW5fY29tcHRlXzogbW9uZXkgPSBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luLkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRJbi5yZXNzb3VyY2VzX21lbmFnZV9wcmlzZXNfZW5fY29tcHRlX2luIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9hbGxvY2F0aW9uX2xvZ2VtZW50LmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTE5MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTkwOyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTExOTA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE5MDsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTE5MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTkwOyBlbmRfY29sdW1uPTU5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7IFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfbWVuYWdlXzogTWVuYWdlLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiO1xuICAgICAgICBcIsOpbGlnaWJpbGl0w6lfYWxsb2NhdGlvbl9sb2dlbWVudC5tw6luYWdlXCJdIChlbWJlZF9tZW5hZ2UpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTE4Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTgyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTExODI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE4MjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbWVuYWdlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTgyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExODI7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9kZW1hbmRldXJfOiBEZW1hbmRldXIudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9hbGxvY2F0aW9uX2xvZ2VtZW50LmRlbWFuZGV1clwiXSAoZW1iZWRfZGVtYW5kZXVyKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTExODY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE4NjsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTg2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExODY7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlbWFuZGV1cl8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTE4Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTg2OyBlbmRfY29sdW1uPTU1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7IFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfYmVuZWZpY2llX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF86IGJvb2wgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiO1xuICAgICAgICBcIsOpbGlnaWJpbGl0w6lfYWxsb2NhdGlvbl9sb2dlbWVudC5iw6luw6lmaWNpZV9haWRlX3BlcnNvbm5hbGlzw6llX2xvZ2VtZW50XCJdXG4gICAgICAoZW1iZWRfYm9vbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwOTc7IHN0YXJ0X2NvbHVtbj01OyBlbmRfbGluZT0xMDk3OyBlbmRfY29sdW1uPTc0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODQxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA5Nzsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTEwOTc7IGVuZF9jb2x1bW49NzQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDk3OyBzdGFydF9jb2x1bW49NTsgZW5kX2xpbmU9MTA5NzsgZW5kX2NvbHVtbj03NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg0MS0yXCI7IFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7IFwiw6lsaWdpYmlsaXTDqV9hbGxvY2F0aW9uX2xvZ2VtZW50XCI7XG4gICAgICBcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjsgXCLDqWxpZ2liaWxpdMOpX2FsbG9jYXRpb25fbG9nZW1lbnRcIjtcbiAgICAgIFwiw4lsaWdpYmlsaXTDqUFsbG9jYXRpb25Mb2dlbWVudFwiXSBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50KVxuICAgICh7RWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIEVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50SW4ubWVuYWdlX2luID1cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9tZW5hZ2VfO1xuICAgICAgICBFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudEluLmRlbWFuZGV1cl9pbiA9XG4gICAgICAgICAgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfZGVtYW5kZXVyXztcbiAgICAgICAgRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnRJbi5iZW5lZmljaWVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luID1cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9iZW5lZmljaWVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X30pKSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X2VsaWdpYmlsaXRlX2w4NDFfMl86IFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC50ID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5lbGlnaWJpbGl0ZSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXzogaW50ZWdlciA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9jb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXzogXG4gICAgZGVjaW1hbCBhcnJheSA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9tZW5hZ2VfOiBNZW5hZ2UudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9haWRlX3BlcnNvbm5hbGlzw6llX2xvZ2VtZW50Lm3DqW5hZ2VcIl0gKGVtYmVkX21lbmFnZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTgwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExODA7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE4MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTgwOyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtZW5hZ2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExODA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE4MDsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiOyBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfZGVtYW5kZXVyXzogRGVtYW5kZXVyLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiO1xuICAgICAgICBcIsOpbGlnaWJpbGl0w6lfYWlkZV9wZXJzb25uYWxpc8OpZV9sb2dlbWVudC5kZW1hbmRldXJcIl1cbiAgICAgIChlbWJlZF9kZW1hbmRldXIpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTE4NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTg0OyBlbmRfY29sdW1uPTYzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTExODQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE4NDsgZW5kX2NvbHVtbj02MztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVtYW5kZXVyXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTg0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExODQ7IGVuZF9jb2x1bW49NjM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjtcbiAgICAgICAgXCLDqWxpZ2liaWxpdMOpX2FpZGVfcGVyc29ubmFsaXPDqWVfbG9nZW1lbnQuZGF0ZV9jb3VyYW50ZVwiXVxuICAgICAgKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTE4ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTg4OyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTExODg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE4ODsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTE4ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTg4OyBlbmRfY29sdW1uPTY3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7IFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiO1xuICAgICAgXCLDqWxpZ2liaWxpdMOpX2FpZGVfcGVyc29ubmFsaXPDqWVfbG9nZW1lbnRcIjtcbiAgICAgIFwiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7XG4gICAgICBcIsOpbGlnaWJpbGl0w6lfYWlkZV9wZXJzb25uYWxpc8OpZV9sb2dlbWVudFwiO1xuICAgICAgXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIl1cbiAgICBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQpXG4gICAgKHtFbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi5tZW5hZ2VfaW4gPVxuICAgICAgICBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X21lbmFnZV87XG4gICAgICAgIEVsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLmRlbWFuZGV1cl9pbiA9XG4gICAgICAgICAgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9kZW1hbmRldXJfO1xuICAgICAgICBFbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X2RhdGVfY291cmFudGVffSkpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LmRhdGVfY291cmFudGUgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfZWxpZ2liaWxpdGVfOiBib29sID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQuZWxpZ2liaWxpdGUgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXzogaW50ZWdlciA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Lm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9jb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXzogXG4gICAgZGVjaW1hbCBhcnJheSA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LmNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGUgaW5cbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9tb2RlX29jY3VwYXRpb25fOiBNb2RlT2NjdXBhdGlvbi50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjtcbiAgICAgICAgXCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudC5tb2RlX29jY3VwYXRpb25cIl0gKGVtYmVkX21vZGVfb2NjdXBhdGlvbilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTk0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExOTQ7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE5NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTk0OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvbikpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTk0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExOTQ7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfcmVzc291cmNlc19tZW5hZ2Vfc2Fuc19hcnJvbmRpXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiO1xuICAgICAgICBcImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50LnJlc3NvdXJjZXNfbcOpbmFnZV9zYW5zX2Fycm9uZGlcIl1cbiAgICAgIChlbWJlZF9tb25leSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTk4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExOTg7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE5ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTk4OyBlbmRfY29sdW1uPTU4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByZXNzb3VyY2VzX21lbmFnZV9wcmlzZXNfZW5fY29tcHRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTk4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExOTg7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3Rfc2l0dWF0aW9uX2ZhbWlsaWFsZV86IFNpdHVhdGlvbkZhbWlsaWFsZS50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjtcbiAgICAgICAgXCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudC5zaXR1YXRpb25fZmFtaWxpYWxlXCJdXG4gICAgICAoZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMjAyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMDI7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIwMjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjAyOyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtZW5hZ2VfLk1lbmFnZS5zaXR1YXRpb25fZmFtaWxpYWxlKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyMDI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIwMjsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiOyBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlciA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7XG4gICAgICAgIFwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnQubm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VcIl1cbiAgICAgIChlbWJlZF9pbnRlZ2VyKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyMDk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIwOTsgZW5kX2NvbHVtbj02NjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjA5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMDk7IGVuZF9jb2x1bW49NjY7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyMDk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIwOTsgZW5kX2NvbHVtbj02NjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiOyBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF96b25lXzogWm9uZURIYWJpdGF0aW9uLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiOyBcImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50LnpvbmVcIl1cbiAgICAgIChlbWJlZF96b25lX2RfaGFiaXRhdGlvbilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMjEzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMTM7IGVuZF9jb2x1bW49NDU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIxMzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjEzOyBlbmRfY29sdW1uPTQ1O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50LnpvbmUpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTIxMzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjEzOyBlbmRfY29sdW1uPTQ1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7IFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjtcbiAgICAgICAgXCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudC5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyMTc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIxNzsgZW5kX2NvbHVtbj01NDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjE3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMTc7IGVuZF9jb2x1bW49NTQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfY291cmFudGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyMTc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIxNzsgZW5kX2NvbHVtbj01NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiOyBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF90eXBlX2FpZGVfOiBUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiOyBcImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50LnR5cGVfYWlkZVwiXVxuICAgICAgKGVtYmVkX3R5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTEzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExMTM7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTEzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExMTM7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBtYXRjaCBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9lbGlnaWJpbGl0ZV9sODQxXzJfXG4gICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICB8IFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5QYXNFbGlnaWJsZSBfIC0+XG4gICAgICAgICAgICAgICAgKFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZSAoKSlcbiAgICAgICAgICAgIHwgVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LkFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZSBfIC0+XG4gICAgICAgICAgICAgICAgKFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuQWxsb2NhdGlvbkxvZ2VtZW50RmFtaWxpYWxlICgpKVxuICAgICAgICAgICAgfCBUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZSBfIC0+XG4gICAgICAgICAgICAgICAgKFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZSAoKSkpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTEzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExMTM7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMlwiOyBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9yZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7IFwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnQucsOpc2lkZW5jZVwiXVxuICAgICAgKGVtYmVkX2NvbGxlY3Rpdml0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMjIxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMjE7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIyMTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjIxOyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTIyMTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjIxOyBlbmRfY29sdW1uPTUwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7IFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50LnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiOyBcImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50XCI7XG4gICAgICBcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudFwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiOyBcImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50XCI7XG4gICAgICBcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudFwiXSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudClcbiAgICAoe0NhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLm1vZGVfb2NjdXBhdGlvbl9pbiA9XG4gICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9tb2RlX29jY3VwYXRpb25fO1xuICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRJbi5yZXNzb3VyY2VzX21lbmFnZV9zYW5zX2Fycm9uZGlfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9yZXNzb3VyY2VzX21lbmFnZV9zYW5zX2Fycm9uZGlfO1xuICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2luID1cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3Rfc2l0dWF0aW9uX2ZhbWlsaWFsZV87XG4gICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXztcbiAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4uem9uZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X3pvbmVfO1xuICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLnR5cGVfYWlkZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X3R5cGVfYWlkZV87XG4gICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLnJlc2lkZW5jZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X3Jlc2lkZW5jZV99KSkpIGluXG4gIGxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfYWlkZV9maW5hbGVfZm9ybXVsZV86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnQuYWlkZV9maW5hbGVfZm9ybXVsZSBpblxuICBsZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X3RyYWl0ZW1lbnRfYWlkZV9maW5hbGVfOiBtb25leSAtPiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50LnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgaW5cbiAgbGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X21vZGVfb2NjdXBhdGlvbl86IE1vZGVPY2N1cGF0aW9uLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiO1xuICAgICAgICBcImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzw6llX2xvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvblwiXVxuICAgICAgKGVtYmVkX21vZGVfb2NjdXBhdGlvbilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTkyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExOTI7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE5Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTkyOyBlbmRfY29sdW1uPTY0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvbikpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTkyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExOTI7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF90eXBlX2FpZGVfOiBUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiO1xuICAgICAgICBcImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzw6llX2xvZ2VtZW50LnR5cGVfYWlkZVwiXVxuICAgICAgKGVtYmVkX3R5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTExOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExMTE7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTExOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExMTE7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LkFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQgKCkpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTExOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExMTE7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMlwiOyBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X3Jlc3NvdXJjZXNfbWVuYWdlX3NhbnNfYXJyb25kaV86IG1vbmV5ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjtcbiAgICAgICAgXCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc8OpZV9sb2dlbWVudC5yZXNzb3VyY2VzX23DqW5hZ2Vfc2Fuc19hcnJvbmRpXCJdXG4gICAgICAoZW1iZWRfbW9uZXkpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTE5Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTk2OyBlbmRfY29sdW1uPTY2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTExOTY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE5NjsgZW5kX2NvbHVtbj02NjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmVzc291cmNlc19tZW5hZ2VfcHJpc2VzX2VuX2NvbXB0ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTE5Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTk2OyBlbmRfY29sdW1uPTY2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7IFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3Rfc2l0dWF0aW9uX2ZhbWlsaWFsZV86IFNpdHVhdGlvbkZhbWlsaWFsZS50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjtcbiAgICAgICAgXCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc8OpZV9sb2dlbWVudC5zaXR1YXRpb25fZmFtaWxpYWxlXCJdXG4gICAgICAoZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMjAwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMDA7IGVuZF9jb2x1bW49Njg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIwMDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjAwOyBlbmRfY29sdW1uPTY4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtZW5hZ2VfLk1lbmFnZS5zaXR1YXRpb25fZmFtaWxpYWxlKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyMDA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIwMDsgZW5kX2NvbHVtbj02ODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiOyBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfOiBpbnRlZ2VyID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjtcbiAgICAgICAgXCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc8OpZV9sb2dlbWVudC5ub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZVwiXVxuICAgICAgKGVtYmVkX2ludGVnZXIpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTIwNTsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTEyMDU7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIwNTsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTEyMDU7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTIwNTsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTEyMDU7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF96b25lXzogWm9uZURIYWJpdGF0aW9uLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiO1xuICAgICAgICBcImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzw6llX2xvZ2VtZW50LnpvbmVcIl0gKGVtYmVkX3pvbmVfZF9oYWJpdGF0aW9uKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyMTE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIxMTsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjExOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMTE7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQuem9uZSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjExOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMTE7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7XG4gICAgICAgIFwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXPDqWVfbG9nZW1lbnQuZGF0ZV9jb3VyYW50ZVwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMjE1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMTU7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIxNTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjE1OyBlbmRfY29sdW1uPTYyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjE1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMTU7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9yZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7XG4gICAgICAgIFwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXPDqWVfbG9nZW1lbnQucsOpc2lkZW5jZVwiXVxuICAgICAgKGVtYmVkX2NvbGxlY3Rpdml0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMjE5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMTk7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIxOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjE5OyBlbmRfY29sdW1uPTU4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTIxOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjE5OyBlbmRfY29sdW1uPTU4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7IFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudC50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjsgXCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc8OpZV9sb2dlbWVudFwiO1xuICAgICAgXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiOyBcImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzw6llX2xvZ2VtZW50XCI7XG4gICAgICBcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCJdIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQpXG4gICAgKHtDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4ubW9kZV9vY2N1cGF0aW9uX2luID1cbiAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfbW9kZV9vY2N1cGF0aW9uXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnR5cGVfYWlkZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfdHlwZV9haWRlXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnJlc3NvdXJjZXNfbWVuYWdlX3NhbnNfYXJyb25kaV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfcmVzc291cmNlc19tZW5hZ2Vfc2Fuc19hcnJvbmRpXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnNpdHVhdGlvbl9mYW1pbGlhbGVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X3NpdHVhdGlvbl9mYW1pbGlhbGVfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi56b25lX2luID1cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF96b25lXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X2RhdGVfY291cmFudGVfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4ucmVzaWRlbmNlX2luID1cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9yZXNpZGVuY2VffSkpKSBpblxuICBsZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfYWlkZV9maW5hbGVfZm9ybXVsZV86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LmFpZGVfZmluYWxlX2Zvcm11bGUgaW5cbiAgbGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X3RyYWl0ZW1lbnRfYWlkZV9maW5hbGVfOiBcbiAgICBtb25leSAtPiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudC50cmFpdGVtZW50X2FpZGVfZmluYWxlIGluXG4gIGxldCBjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXzogZGVjaW1hbCBhcnJheSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjtcbiAgICAgIFwiY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm7DqWVfcHJpc19lbl9jb21wdGVcIl1cbiAgICAoZW1iZWRfYXJyYXkgKGVtYmVkX2RlY2ltYWwpKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTE3Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMTc2OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMjQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIyNDsgZW5kX2NvbHVtbj02MztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExNzY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTE3NjsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiOyBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiOyBcIsOpbGlnaWJpbGl0w6lcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTcyOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTExNzI7IGVuZF9jb2x1bW49MjM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTAyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExMDI7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX29yIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfZWxpZ2liaWxpdGVfXG4gICAgICAgICAgICAgIChtYXRjaCBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9lbGlnaWJpbGl0ZV9sODQxXzJfXG4gICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICB8IFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5QYXNFbGlnaWJsZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICB8IFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgIHwgVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LkFsbG9jYXRpb25Mb2dlbWVudFNvY2lhbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgIHRydWUpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTcyOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTExNzI7IGVuZF9jb2x1bW49MjM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjsgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE3NDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgIGVuZF9saW5lPTExNzQ7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE0MDsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExNDA7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg0MS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlX2FwbF8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIjsgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X3RyYWl0ZW1lbnRfYWlkZV9maW5hbGVfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCI7IFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICAgICAgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlX2FsXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudFwiOyBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXVxuICAgICAgICAgICAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfdHJhaXRlbWVudF9haWRlX2ZpbmFsZV8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAoIGlmIChvX25vdCBlbGlnaWJpbGl0ZV8pIHRoZW4gYWlkZV9maW5hbGVfIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9lbGlnaWJpbGl0ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9lbGlnaWJpbGl0ZV9sODQxXzJfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5QYXNFbGlnaWJsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuQWxsb2NhdGlvbkxvZ2VtZW50RmFtaWxpYWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAoIGlmIChvX2d0X21vbl9tb24gYWlkZV9maW5hbGVfYXBsXyBhaWRlX2ZpbmFsZV9hbF8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gYWlkZV9maW5hbGVfYXBsXyBlbHNlIGFpZGVfZmluYWxlX2FsXykgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfZWxpZ2liaWxpdGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gYWlkZV9maW5hbGVfYXBsXyBlbHNlIGFpZGVfZmluYWxlX2FsXykpKSkpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTExNzQ7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTE3NDsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExNzQ7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTE3NDsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiOyBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgYWlkZV9maW5hbGVfZm9ybXVsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiOyBcImFpZGVfZmluYWxlX2Zvcm11bGVcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTE3Mzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMTczOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTEyMzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTIzOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODQxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmIChvX25vdCBlbGlnaWJpbGl0ZV8pIHRoZW4gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikgZWxzZVxuICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X2VsaWdpYmlsaXRlX1xuICAgICAgICAgICAgICAgICAgICAob19ub3RcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X2VsaWdpYmlsaXRlX2w4NDFfMl9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LlBhc0VsaWdpYmxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSB0aGVuXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCI7IFwib3V0cHV0XCJdIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXVxuICAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF90cmFpdGVtZW50X2FpZGVfZmluYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcImlucHV0MFwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X2FpZGVfZmluYWxlX2Zvcm11bGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF90cmFpdGVtZW50X2FpZGVfZmluYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfYWlkZV9maW5hbGVfZm9ybXVsZV8pKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X2FpZGVfZmluYWxlX2Zvcm11bGVfXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X2FpZGVfZmluYWxlX2Zvcm11bGVfKVxuICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9lbGlnaWJpbGl0ZV9cbiAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9haWRlX2ZpbmFsZV9mb3JtdWxlX1xuICAgICAgICAgICAgICAgICAgICBlbHNlIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9haWRlX2ZpbmFsZV9mb3JtdWxlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTczOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTExNzM7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAge0NhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQuZWxpZ2liaWxpdGUgPSBlbGlnaWJpbGl0ZV87XG4gICAgIENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQuYWlkZV9maW5hbGVfZm9ybXVsZSA9IGFpZGVfZmluYWxlX2Zvcm11bGVfO1xuICAgICBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfO1xuICAgICBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LmNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGUgPVxuICAgICAgIGNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVffVxuXG5sZXQgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZSAoY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pbjogQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWVJbi50KSA6IENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybmVlLnQgPVxuICBsZXQgbWVuYWdlXzogTWVuYWdlLnQgPSBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luLkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybmVlSW4ubWVuYWdlX2luIGluXG4gIGxldCBkZW1hbmRldXJfOiBEZW1hbmRldXIudCA9IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW4uQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWVJbi5kZW1hbmRldXJfaW4gaW5cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pbi5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm5lZUluLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IHJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVfOiBtb25leSA9IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW4uQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWVJbi5yZXNzb3VyY2VzX21lbmFnZV9wcmlzZXNfZW5fY29tcHRlX2luIGluXG4gIGxldCBtZW5hZ2Vfc2Fuc19lbmZhbnRzX2dhcmRlX2FsdGVybmVlXzogTWVuYWdlLnQgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm7DqWVcIjtcbiAgICAgIFwibcOpbmFnZV9zYW5zX2VuZmFudHNfZ2FyZGVfYWx0ZXJuw6llXCJdIChlbWJlZF9tZW5hZ2UpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMjQzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEyNDM7IGVuZF9jb2x1bW49NDU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNzU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTI3NTsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICB7TWVuYWdlLnByZXN0YXRpb25zX3JlY3VlcyA9IChtZW5hZ2VfLk1lbmFnZS5wcmVzdGF0aW9uc19yZWN1ZXMpO1xuICAgICAgICAgICAgICAgTWVuYWdlLmxvZ2VtZW50ID0gKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KTtcbiAgICAgICAgICAgICAgIE1lbmFnZS5wZXJzb25uZXNfYV9jaGFyZ2UgPVxuICAgICAgICAgICAgICAgICAob19maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAocGVyc29ubmVfYV9jaGFyZ2VfOiBQZXJzb25uZUFDaGFyZ2UudCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggcGVyc29ubmVfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuRW5mYW50QUNoYXJnZSBlbmZhbnRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2Uuc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUuUGFzRGVHYXJkZUFsdGVybmVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uR2FyZGVBbHRlcm5lZS5HYXJkZUFsdGVybmVlQ29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkF1dHJlUGVyc29ubmVBQ2hhcmdlIF8gLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnBlcnNvbm5lc19hX2NoYXJnZSkpO1xuICAgICAgICAgICAgICAgTWVuYWdlLm5vbWJyZV9hdXRyZXNfb2NjdXBhbnRzX2xvZ2VtZW50ID1cbiAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLm5vbWJyZV9hdXRyZXNfb2NjdXBhbnRzX2xvZ2VtZW50KTtcbiAgICAgICAgICAgICAgIE1lbmFnZS5zaXR1YXRpb25fZmFtaWxpYWxlID1cbiAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnNpdHVhdGlvbl9mYW1pbGlhbGUpO1xuICAgICAgICAgICAgICAgTWVuYWdlLmNvbmRpdGlvbl9yYXR0YWNoZV9mb3llcl9maXNjYWxfcGFyZW50X2lmaSA9XG4gICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5jb25kaXRpb25fcmF0dGFjaGVfZm95ZXJfZmlzY2FsX3BhcmVudF9pZmkpO1xuICAgICAgICAgICAgICAgTWVuYWdlLmVuZmFudF9hX25haXRyZV9hcHJlc19xdWF0cmllbWVfbW9pc19ncm9zc2Vzc2UgPVxuICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UuZW5mYW50X2FfbmFpdHJlX2FwcmVzX3F1YXRyaWVtZV9tb2lzX2dyb3NzZXNzZSk7XG4gICAgICAgICAgICAgICBNZW5hZ2UucGVyc29ubmVzX2FnZWVzX2hhbmRpY2FwZWVzX2ZveWVyX3I4NDRfNCA9XG4gICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5wZXJzb25uZXNfYWdlZXNfaGFuZGljYXBlZXNfZm95ZXJfcjg0NF80KTtcbiAgICAgICAgICAgICAgIE1lbmFnZS5yZXNpZGVuY2UgPSAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKX0pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyNDM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTI0MzsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNhbGN1bGV0dGVfZG90X21lbmFnZV86IE1lbmFnZS50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybsOpZVwiOyBcImNhbGN1bGV0dGUubcOpbmFnZVwiXVxuICAgICAgKGVtYmVkX21lbmFnZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMjU0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyNTQ7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNTQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTI1NDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1lbmFnZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTI1NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjU0OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bGV0dGVfZG90X2RlbWFuZGV1cl86IERlbWFuZGV1ci50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybsOpZVwiOyBcImNhbGN1bGV0dGUuZGVtYW5kZXVyXCJdXG4gICAgICAoZW1iZWRfZGVtYW5kZXVyKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyNTY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTI1NjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI1Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjU2OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVtYW5kZXVyXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjU2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyNTY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsZXR0ZV9kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuw6llXCI7IFwiY2FsY3VsZXR0ZS5kYXRlX2NvdXJhbnRlXCJdXG4gICAgICAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMjU4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyNTg7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTI1ODsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfY291cmFudGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyNTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTI1ODsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxldHRlX2RvdF9yZXNzb3VyY2VzX21lbmFnZV9wcmlzZXNfZW5fY29tcHRlXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuw6llXCI7XG4gICAgICAgIFwiY2FsY3VsZXR0ZS5yZXNzb3VyY2VzX23DqW5hZ2VfcHJpc2VzX2VuX2NvbXB0ZVwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTI2MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjYwOyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjYwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyNjA7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByZXNzb3VyY2VzX21lbmFnZV9wcmlzZXNfZW5fY29tcHRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjYwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyNjA7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudC50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybsOpZVwiOyBcImNhbGN1bGV0dGVcIjtcbiAgICAgIFwiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuw6llXCI7IFwiY2FsY3VsZXR0ZVwiO1xuICAgICAgXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCJdIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnQpXG4gICAgKHtDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50SW4ubWVuYWdlX2luID0gY2FsY3VsZXR0ZV9kb3RfbWVuYWdlXztcbiAgICAgICAgQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEluLmRlbWFuZGV1cl9pbiA9IGNhbGN1bGV0dGVfZG90X2RlbWFuZGV1cl87XG4gICAgICAgIENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgICBjYWxjdWxldHRlX2RvdF9kYXRlX2NvdXJhbnRlXztcbiAgICAgICAgQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEluLnJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVfaW4gPVxuICAgICAgICAgIGNhbGN1bGV0dGVfZG90X3Jlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVffSkpKSBpblxuICBsZXQgY2FsY3VsZXR0ZV9kb3RfZWxpZ2liaWxpdGVfOiBib29sID0gcmVzdWx0Xy5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LmVsaWdpYmlsaXRlIGluXG4gIGxldCBjYWxjdWxldHRlX2RvdF9haWRlX2ZpbmFsZV9mb3JtdWxlXzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQuYWlkZV9maW5hbGVfZm9ybXVsZSBpblxuICBsZXQgY2FsY3VsZXR0ZV9kb3RfdHJhaXRlbWVudF9haWRlX2ZpbmFsZV86IG1vbmV5IC0+IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgaW5cbiAgbGV0IGNhbGN1bGV0dGVfZG90X2NvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVfOiBcbiAgICBkZWNpbWFsIGFycmF5ID0gcmVzdWx0Xy5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LmNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGUgaW5cbiAgbGV0IGNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm5lZV9kb3RfbWVuYWdlXzogTWVuYWdlLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuw6llXCI7XG4gICAgICAgIFwiY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybsOpZS5tw6luYWdlXCJdIChlbWJlZF9tZW5hZ2UpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTI2Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjYyOyBlbmRfY29sdW1uPTUxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjYyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyNjI7IGVuZF9jb2x1bW49NTE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtZW5hZ2Vfc2Fuc19lbmZhbnRzX2dhcmRlX2FsdGVybmVlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjYyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyNjI7IGVuZF9jb2x1bW49NTE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlX2RvdF9kZW1hbmRldXJfOiBEZW1hbmRldXIudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm7DqWVcIjtcbiAgICAgICAgXCJjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuw6llLmRlbWFuZGV1clwiXSAoZW1iZWRfZGVtYW5kZXVyKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyNjQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTI2NDsgZW5kX2NvbHVtbj01NDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI2NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjY0OyBlbmRfY29sdW1uPTU0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVtYW5kZXVyXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjY0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyNjQ7IGVuZF9jb2x1bW49NTQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm7DqWVcIjtcbiAgICAgICAgXCJjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuw6llLmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTI2Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjY2OyBlbmRfY29sdW1uPTU4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjY2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyNjY7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjY2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyNjY7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlX2RvdF9yZXNzb3VyY2VzX21lbmFnZV9wcmlzZXNfZW5fY29tcHRlXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuw6llXCI7XG4gICAgICAgIFwiY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybsOpZS5yZXNzb3VyY2VzX23DqW5hZ2VfcHJpc2VzX2VuX2NvbXB0ZVwiXVxuICAgICAgKGVtYmVkX21vbmV5KVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyNjk7IHN0YXJ0X2NvbHVtbj01OyBlbmRfbGluZT0xMjY5OyBlbmRfY29sdW1uPTcwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjY5OyBzdGFydF9jb2x1bW49NTsgZW5kX2xpbmU9MTI2OTsgZW5kX2NvbHVtbj03MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyNjk7IHN0YXJ0X2NvbHVtbj01OyBlbmRfbGluZT0xMjY5OyBlbmRfY29sdW1uPTcwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IHJlc3VsdF86IENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm7DqWVcIjtcbiAgICAgIFwiY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybsOpZVwiOyBcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIl1cbiAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuw6llXCI7XG4gICAgICBcImNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm7DqWVcIjsgXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCJdXG4gICAgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudClcbiAgICAoe0NhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRJbi5tZW5hZ2VfaW4gPVxuICAgICAgICBjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuZWVfZG90X21lbmFnZV87XG4gICAgICAgIENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRJbi5kZW1hbmRldXJfaW4gPVxuICAgICAgICAgIGNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm5lZV9kb3RfZGVtYW5kZXVyXztcbiAgICAgICAgQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICAgIGNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm5lZV9kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRJbi5yZXNzb3VyY2VzX21lbmFnZV9wcmlzZXNfZW5fY29tcHRlX2luID1cbiAgICAgICAgICBjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuZWVfZG90X3Jlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVffSkpKSBpblxuICBsZXQgY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlX2RvdF9lbGlnaWJpbGl0ZV86IGJvb2wgPSByZXN1bHRfLkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQuZWxpZ2liaWxpdGUgaW5cbiAgbGV0IGNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm5lZV9kb3RfYWlkZV9maW5hbGVfZm9ybXVsZV86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LmFpZGVfZmluYWxlX2Zvcm11bGUgaW5cbiAgbGV0IGNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm5lZV9kb3RfdHJhaXRlbWVudF9haWRlX2ZpbmFsZV86IG1vbmV5IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgaW5cbiAgbGV0IGNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm5lZV9kb3RfY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZV86IFxuICAgIGRlY2ltYWwgYXJyYXkgPSByZXN1bHRfLkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSBpblxuICBsZXQgZWxpZ2liaWxpdGVfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuw6llXCI7IFwiw6lsaWdpYmlsaXTDqVwiXSAoZW1iZWRfYm9vbClcbiAgICAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTI1MDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMjUwOyBlbmRfY29sdW1uPTIzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzA0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEzMDQ7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBjYWxjdWxldHRlX2RvdF9lbGlnaWJpbGl0ZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyNTA7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTI1MDsgZW5kX2NvbHVtbj0yMztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVfOiBkZWNpbWFsIGFycmF5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuw6llXCI7XG4gICAgICBcImNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuw6llX3ByaXNfZW5fY29tcHRlXCJdXG4gICAgKGVtYmVkX2FycmF5IChlbWJlZF9kZWNpbWFsKSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyNDQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTI0NDsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI3Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjczOyBlbmRfY29sdW1uPTYzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGNhbGN1bGV0dGVfZG90X2NvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjQ0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEyNDQ7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBhaWRlX2ZpbmFsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuw6llXCI7IFwiYWlkZV9maW5hbGVcIl0gKGVtYmVkX21vbmV5KVxuICAgIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMjUxOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTEyNTE7IGVuZF9jb2x1bW49MjM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2F1dHJlc19zb3VyY2VzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTI4Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yODM7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDb25zZWlsIGQnw4l0YXQsIDXDqG1lIC0gNMOobWUgY2hhbWJyZXMgcsOpdW5pZXMsIDIxLzA3LzIwMTcsIDM5ODU2M1wiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiOyBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjsgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjsgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdXG4gICAgICAgICAgICBjYWxjdWxldHRlX2RvdF90cmFpdGVtZW50X2FpZGVfZmluYWxlXykgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiOyBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICBjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuZWVfZG90X2FpZGVfZmluYWxlX2Zvcm11bGVfXG4gICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXylcbiAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gY2FsY3VsZXR0ZV9kb3RfYWlkZV9maW5hbGVfZm9ybXVsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm5lZV9kb3RfYWlkZV9maW5hbGVfZm9ybXVsZV8pXG4gICAgICAgICAgICAgICAgICAgICAob19kaXZfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgKG9fcmVkdWNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChzdW0xXzogZGVjaW1hbCkgKHN1bTJfOiBkZWNpbWFsKSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfcmF0X3JhdCBzdW0xXyBzdW0yXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXykpKSkpKSkpKSkpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTI1MTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMjUxOyBlbmRfY29sdW1uPTIzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICB7Q2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWUuZWxpZ2liaWxpdGUgPSBlbGlnaWJpbGl0ZV87XG4gICAgIENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybmVlLmFpZGVfZmluYWxlID0gYWlkZV9maW5hbGVffVxuIiwiKCoqIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgdGhlIENhdGFsYSBjb21waWxlciwgZG8gbm90IGVkaXQhICopXG5cbm9wZW4gUnVudGltZV9vY2FtbC5SdW50aW1lXG5vcGVuIFJ1bnRpbWVfanNvby5SdW50aW1lXG5vcGVuIEpzX29mX29jYW1sXG5vcGVuIEFpZGVzX2xvZ2VtZW50XG5cbltAQEBvY2FtbC53YXJuaW5nIFwiLTQtMjYtMjctMzItNDEtNDJcIl1cblxuKCogR2VuZXJhdGVkIEFQSSAqKVxuXG5jbGFzcyB0eXBlIHR5cGVfcHJldCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkQzMzFfMzJcIlxuICAgICAgICAtIFwiRDMzMV82M182NFwiXG4gICAgICAgIC0gXCJEMzMxXzU5XzhcIlxuICAgICAgICAtIFwiRDMzMV83Nl8xXCJcbiAgICAgICAgLSBcIkF1dHJlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgdHlwZV9wcmV0X3RvX2pzb28gOiBUeXBlUHJldC50IC0+IHR5cGVfcHJldCBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBEMzMxXzMyIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRDMzMV8zMlwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEQzMzFfNjNfNjQgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJEMzMxXzYzXzY0XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgRDMzMV81OV84IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRDMzMV81OV84XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgRDMzMV83Nl8xIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRDMzMV83Nl8xXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQXV0cmUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBdXRyZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgdHlwZV9wcmV0X29mX2pzb28gKHR5cGVfcHJldCA6IHR5cGVfcHJldCBKcy50KSA6IFR5cGVQcmV0LnQgPVxuICBtYXRjaCB0eXBlX3ByZXQjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJEMzMxXzMyXCIgLT4gVHlwZVByZXQuRDMzMV8zMiAoKVxuICB8IFwiRDMzMV82M182NFwiIC0+IFR5cGVQcmV0LkQzMzFfNjNfNjQgKClcbiAgfCBcIkQzMzFfNTlfOFwiIC0+IFR5cGVQcmV0LkQzMzFfNTlfOCAoKVxuICB8IFwiRDMzMV83Nl8xXCIgLT4gVHlwZVByZXQuRDMzMV83Nl8xICgpXG4gIHwgXCJBdXRyZVwiIC0+IFR5cGVQcmV0LkF1dHJlICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGYgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdUeXBlUHJldC50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSB0aXR1bGFpcmVfcHJldCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkRlbWFuZGV1clwiXG4gICAgICAgIC0gXCJWZW5kZXVyUXVhbmREZW1hbmRldXJBQ29udHJhdExvY2F0aW9uQWNjZXNzaW9uXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgdGl0dWxhaXJlX3ByZXRfdG9fanNvbyA6IFRpdHVsYWlyZVByZXQudCAtPiB0aXR1bGFpcmVfcHJldCBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBEZW1hbmRldXIgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJEZW1hbmRldXJcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBWZW5kZXVyUXVhbmREZW1hbmRldXJBQ29udHJhdExvY2F0aW9uQWNjZXNzaW9uIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiVmVuZGV1clF1YW5kRGVtYW5kZXVyQUNvbnRyYXRMb2NhdGlvbkFjY2Vzc2lvblwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgdGl0dWxhaXJlX3ByZXRfb2ZfanNvbyAodGl0dWxhaXJlX3ByZXQgOiB0aXR1bGFpcmVfcHJldCBKcy50KVxuICA6IFRpdHVsYWlyZVByZXQudCA9XG4gIG1hdGNoIHRpdHVsYWlyZV9wcmV0IyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiRGVtYW5kZXVyXCIgLT4gVGl0dWxhaXJlUHJldC5EZW1hbmRldXIgKClcbiAgfCBcIlZlbmRldXJRdWFuZERlbWFuZGV1ckFDb250cmF0TG9jYXRpb25BY2Nlc3Npb25cIiAtPlxuICAgIFRpdHVsYWlyZVByZXQuVmVuZGV1clF1YW5kRGVtYW5kZXVyQUNvbnRyYXRMb2NhdGlvbkFjY2Vzc2lvbiAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnVGl0dWxhaXJlUHJldC50J1wiIGNvbnMpXG5cblxuY2xhc3MgdHlwZSB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIlRyYXZhdXhQb3VyQWNxdWlzaXRpb25EODMyXzE1XzFcIlxuICAgICAgICAtIFwiVHJhdmF1eFN1ckxvZ2VtZW50RGVqYUFjcXVpc0Q4MzJfMTVfMlwiXG4gICAgICAgIC0gXCJQYXNEZVRyYXZhdXhcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNV90b19qc29vXG4gIDogVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNS50IC0+IHR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1IEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IFRyYXZhdXhQb3VyQWNxdWlzaXRpb25EODMyXzE1XzEgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJUcmF2YXV4UG91ckFjcXVpc2l0aW9uRDgzMl8xNV8xXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgVHJhdmF1eFN1ckxvZ2VtZW50RGVqYUFjcXVpc0Q4MzJfMTVfMiBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlRyYXZhdXhTdXJMb2dlbWVudERlamFBY3F1aXNEODMyXzE1XzJcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBQYXNEZVRyYXZhdXggYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJQYXNEZVRyYXZhdXhcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IHR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1X29mX2pzb29cbiAgKHR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1IDogdHlwZV90cmF2YXV4X2xvZ2VtZW50X2Q4MzJfMTUgSnMudClcbiAgOiBUeXBlVHJhdmF1eExvZ2VtZW50RDgzMjE1LnQgPVxuICBtYXRjaCB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNSMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIlRyYXZhdXhQb3VyQWNxdWlzaXRpb25EODMyXzE1XzFcIiAtPlxuICAgIFR5cGVUcmF2YXV4TG9nZW1lbnREODMyMTUuVHJhdmF1eFBvdXJBY3F1aXNpdGlvbkQ4MzJfMTVfMSAoKVxuICB8IFwiVHJhdmF1eFN1ckxvZ2VtZW50RGVqYUFjcXVpc0Q4MzJfMTVfMlwiIC0+XG4gICAgVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNS5UcmF2YXV4U3VyTG9nZW1lbnREZWphQWNxdWlzRDgzMl8xNV8yICgpXG4gIHwgXCJQYXNEZVRyYXZhdXhcIiAtPiBUeXBlVHJhdmF1eExvZ2VtZW50RDgzMjE1LlBhc0RlVHJhdmF1eCAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNS50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiT2JqZWN0aWZEZWNlbmNlTG9nZW1lbnRcIlxuICAgICAgICAtIFwiUHJldnVEYW5zTGlzdGVSMzIxXzE1XCJcbiAgICAgICAgLSBcIkFncmFuZGlyT3VSZW5kcmVIYWJpdGFibGVEMzMxXzYzXCJcbiAgICAgICAgLSBcIlBhc0RlVHJhdmF1eFwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzVfdG9fanNvb1xuICA6IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS50IC0+IHR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzUgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgT2JqZWN0aWZEZWNlbmNlTG9nZW1lbnQgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJPYmplY3RpZkRlY2VuY2VMb2dlbWVudFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFByZXZ1RGFuc0xpc3RlUjMyMV8xNSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlByZXZ1RGFuc0xpc3RlUjMyMV8xNVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEFncmFuZGlyT3VSZW5kcmVIYWJpdGFibGVEMzMxXzYzIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWdyYW5kaXJPdVJlbmRyZUhhYml0YWJsZUQzMzFfNjNcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBQYXNEZVRyYXZhdXggYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJQYXNEZVRyYXZhdXhcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IHR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzVfb2ZfanNvb1xuICAodHlwZV90cmF2YXV4X2xvZ2VtZW50X3I4NDJfNSA6IHR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzUgSnMudClcbiAgOiBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUudCA9XG4gIG1hdGNoIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzUjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJPYmplY3RpZkRlY2VuY2VMb2dlbWVudFwiIC0+XG4gICAgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1Lk9iamVjdGlmRGVjZW5jZUxvZ2VtZW50ICgpXG4gIHwgXCJQcmV2dURhbnNMaXN0ZVIzMjFfMTVcIiAtPlxuICAgIFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5QcmV2dURhbnNMaXN0ZVIzMjFfMTUgKClcbiAgfCBcIkFncmFuZGlyT3VSZW5kcmVIYWJpdGFibGVEMzMxXzYzXCIgLT5cbiAgICBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuQWdyYW5kaXJPdVJlbmRyZUhhYml0YWJsZUQzMzFfNjMgKClcbiAgfCBcIlBhc0RlVHJhdmF1eFwiIC0+IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5QYXNEZVRyYXZhdXggKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1R5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBhbWVsaW9yZV9wYXJfb2NjdXBhbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJPdWlcIlxuICAgICAgICAtIFwiTm9uXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgYW1lbGlvcmVfcGFyX29jY3VwYW50X3RvX2pzb29cbiAgOiBBbWVsaW9yZVBhck9jY3VwYW50LnQgLT4gYW1lbGlvcmVfcGFyX29jY3VwYW50IEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IE91aSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIk91aVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IE5vbiBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIk5vblwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgYW1lbGlvcmVfcGFyX29jY3VwYW50X29mX2pzb29cbiAgKGFtZWxpb3JlX3Bhcl9vY2N1cGFudCA6IGFtZWxpb3JlX3Bhcl9vY2N1cGFudCBKcy50KVxuICA6IEFtZWxpb3JlUGFyT2NjdXBhbnQudCA9XG4gIG1hdGNoIGFtZWxpb3JlX3Bhcl9vY2N1cGFudCMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIk91aVwiIC0+IEFtZWxpb3JlUGFyT2NjdXBhbnQuT3VpICgpXG4gIHwgXCJOb25cIiAtPiBBbWVsaW9yZVBhck9jY3VwYW50Lk5vbiAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnQW1lbGlvcmVQYXJPY2N1cGFudC50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBsaW1pdGVfdHJhbmNoZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIlJldmVudVwiXG4gICAgICAgIC0gXCJJbmZpbmlcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBsaW1pdGVfdHJhbmNoZV90b19qc29vIDogTGltaXRlVHJhbmNoZS50IC0+IGxpbWl0ZV90cmFuY2hlIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IFJldmVudSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlJldmVudVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBhcmcpKVxuICAgIGVuZFxuICB8IEluZmluaSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkluZmluaVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgbGltaXRlX3RyYW5jaGVfb2ZfanNvbyAobGltaXRlX3RyYW5jaGUgOiBsaW1pdGVfdHJhbmNoZSBKcy50KVxuICA6IExpbWl0ZVRyYW5jaGUudCA9XG4gIG1hdGNoIGxpbWl0ZV90cmFuY2hlIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiUmV2ZW51XCIgLT5cbiAgTGltaXRlVHJhbmNoZS5SZXZlbnUgKG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXIgKEpzLlVuc2FmZS5jb2VyY2UgbGltaXRlX3RyYW5jaGUjIy5wYXlsb2FkKSlcbiAgfCBcIkluZmluaVwiIC0+IExpbWl0ZVRyYW5jaGUuSW5maW5pICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdMaW1pdGVUcmFuY2hlLnQnXCIgY29ucylcblxuXG5jbGFzcyB0eXBlIGxpbWl0ZV90cmFuY2hlX2RlY2ltYWwgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJSZXZlbnVcIlxuICAgICAgICAtIFwiSW5maW5pXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgbGltaXRlX3RyYW5jaGVfZGVjaW1hbF90b19qc29vXG4gIDogTGltaXRlVHJhbmNoZURlY2ltYWwudCAtPiBsaW1pdGVfdHJhbmNoZV9kZWNpbWFsIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IFJldmVudSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlJldmVudVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKEpzLm51bWJlcl9vZl9mbG9hdCBAQCBkZWNpbWFsX3RvX2Zsb2F0IGFyZykpXG4gICAgZW5kXG4gIHwgSW5maW5pIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiSW5maW5pXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBsaW1pdGVfdHJhbmNoZV9kZWNpbWFsX29mX2pzb29cbiAgKGxpbWl0ZV90cmFuY2hlX2RlY2ltYWwgOiBsaW1pdGVfdHJhbmNoZV9kZWNpbWFsIEpzLnQpXG4gIDogTGltaXRlVHJhbmNoZURlY2ltYWwudCA9XG4gIG1hdGNoIGxpbWl0ZV90cmFuY2hlX2RlY2ltYWwjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJSZXZlbnVcIiAtPlxuICBMaW1pdGVUcmFuY2hlRGVjaW1hbC5SZXZlbnUgKGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyIChKcy5VbnNhZmUuY29lcmNlIGxpbWl0ZV90cmFuY2hlX2RlY2ltYWwjIy5wYXlsb2FkKSlcbiAgfCBcIkluZmluaVwiIC0+IExpbWl0ZVRyYW5jaGVEZWNpbWFsLkluZmluaSAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnTGltaXRlVHJhbmNoZURlY2ltYWwudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgcHJlc3RhdGlvbl9yZWN1ZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiXG4gICAgICAgIC0gXCJDb21wbGVtZW50RmFtaWxpYWxcIlxuICAgICAgICAtIFwiQWxsb2NhdGlvbkpldW5lRW5mYW50XCJcbiAgICAgICAgLSBcIkFsbG9jYXRpb25Tb3V0aWVuRmFtaWxpYWxcIlxuICAgICAgICAtIFwiQWxsb2NhdGlvblNvdXRpZW5FbmZhbnRIYW5kaWNhcGVcIlxuICAgICAgICAtIFwiQWxsb2NhdGlvbkFkdWx0ZUhhbmRpY2FwZVwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHByZXN0YXRpb25fcmVjdWVfdG9fanNvbyA6IFByZXN0YXRpb25SZWN1ZS50IC0+IHByZXN0YXRpb25fcmVjdWUgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgQWxsb2NhdGlvbnNGYW1pbGlhbGVzIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQ29tcGxlbWVudEZhbWlsaWFsIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQ29tcGxlbWVudEZhbWlsaWFsXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWxsb2NhdGlvbkpldW5lRW5mYW50IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWxsb2NhdGlvbkpldW5lRW5mYW50XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFsbG9jYXRpb25Tb3V0aWVuRmFtaWxpYWxcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBbGxvY2F0aW9uU291dGllbkVuZmFudEhhbmRpY2FwZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFsbG9jYXRpb25Tb3V0aWVuRW5mYW50SGFuZGljYXBlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWxsb2NhdGlvbkFkdWx0ZUhhbmRpY2FwZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFsbG9jYXRpb25BZHVsdGVIYW5kaWNhcGVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IHByZXN0YXRpb25fcmVjdWVfb2ZfanNvbyAocHJlc3RhdGlvbl9yZWN1ZSA6IHByZXN0YXRpb25fcmVjdWUgSnMudClcbiAgOiBQcmVzdGF0aW9uUmVjdWUudCA9XG4gIG1hdGNoIHByZXN0YXRpb25fcmVjdWUjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIiAtPiBQcmVzdGF0aW9uUmVjdWUuQWxsb2NhdGlvbnNGYW1pbGlhbGVzICgpXG4gIHwgXCJDb21wbGVtZW50RmFtaWxpYWxcIiAtPiBQcmVzdGF0aW9uUmVjdWUuQ29tcGxlbWVudEZhbWlsaWFsICgpXG4gIHwgXCJBbGxvY2F0aW9uSmV1bmVFbmZhbnRcIiAtPiBQcmVzdGF0aW9uUmVjdWUuQWxsb2NhdGlvbkpldW5lRW5mYW50ICgpXG4gIHwgXCJBbGxvY2F0aW9uU291dGllbkZhbWlsaWFsXCIgLT5cbiAgICBQcmVzdGF0aW9uUmVjdWUuQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbCAoKVxuICB8IFwiQWxsb2NhdGlvblNvdXRpZW5FbmZhbnRIYW5kaWNhcGVcIiAtPlxuICAgIFByZXN0YXRpb25SZWN1ZS5BbGxvY2F0aW9uU291dGllbkVuZmFudEhhbmRpY2FwZSAoKVxuICB8IFwiQWxsb2NhdGlvbkFkdWx0ZUhhbmRpY2FwZVwiIC0+XG4gICAgUHJlc3RhdGlvblJlY3VlLkFsbG9jYXRpb25BZHVsdGVIYW5kaWNhcGUgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1ByZXN0YXRpb25SZWN1ZS50J1wiIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBwYXJlbnRfb3VfYXV0cmUgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJEZW1hbmRldXJPdUNvbmpvaW50T3VQYXJlbnRPdVZpYVBhcnRzU29jaWV0ZXNcIlxuICAgICAgICAtIFwiQXV0cmVcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBwYXJlbnRfb3VfYXV0cmVfdG9fanNvbyA6IFBhcmVudE91QXV0cmUudCAtPiBwYXJlbnRfb3VfYXV0cmUgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgRGVtYW5kZXVyT3VDb25qb2ludE91UGFyZW50T3VWaWFQYXJ0c1NvY2lldGVzIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRGVtYW5kZXVyT3VDb25qb2ludE91UGFyZW50T3VWaWFQYXJ0c1NvY2lldGVzXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgYXJnKSlcbiAgICBlbmRcbiAgfCBBdXRyZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkF1dHJlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBwYXJlbnRfb3VfYXV0cmVfb2ZfanNvbyAocGFyZW50X291X2F1dHJlIDogcGFyZW50X291X2F1dHJlIEpzLnQpXG4gIDogUGFyZW50T3VBdXRyZS50ID1cbiAgbWF0Y2ggcGFyZW50X291X2F1dHJlIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiRGVtYW5kZXVyT3VDb25qb2ludE91UGFyZW50T3VWaWFQYXJ0c1NvY2lldGVzXCIgLT5cbiAgUGFyZW50T3VBdXRyZS5EZW1hbmRldXJPdUNvbmpvaW50T3VQYXJlbnRPdVZpYVBhcnRzU29jaWV0ZXMgKGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyIChKcy5VbnNhZmUuY29lcmNlIHBhcmVudF9vdV9hdXRyZSMjLnBheWxvYWQpKVxuICB8IFwiQXV0cmVcIiAtPiBQYXJlbnRPdUF1dHJlLkF1dHJlICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdQYXJlbnRPdUF1dHJlLnQnXCIgY29ucylcblxuXG5jbGFzcyB0eXBlIHNpdHVhdGlvbl9nYXJkZV9hbHRlcm5lZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIlBhc0RlR2FyZGVBbHRlcm5lZVwiXG4gICAgICAgIC0gXCJHYXJkZUFsdGVybmVlQ29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlX3RvX2pzb29cbiAgOiBTaXR1YXRpb25HYXJkZUFsdGVybmVlLnQgLT4gc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IFBhc0RlR2FyZGVBbHRlcm5lZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlBhc0RlR2FyZGVBbHRlcm5lZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEdhcmRlQWx0ZXJuZWVDb2VmZmljaWVudFByaXNlRW5DaGFyZ2UgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJHYXJkZUFsdGVybmVlQ29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgYXJnKSlcbiAgICBlbmRcblxubGV0IHNpdHVhdGlvbl9nYXJkZV9hbHRlcm5lZV9vZl9qc29vXG4gIChzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWUgOiBzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWUgSnMudClcbiAgOiBTaXR1YXRpb25HYXJkZUFsdGVybmVlLnQgPVxuICBtYXRjaCBzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWUjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJQYXNEZUdhcmRlQWx0ZXJuZWVcIiAtPiBTaXR1YXRpb25HYXJkZUFsdGVybmVlLlBhc0RlR2FyZGVBbHRlcm5lZSAoKVxuICB8IFwiR2FyZGVBbHRlcm5lZUNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZVwiIC0+XG4gIFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUuR2FyZGVBbHRlcm5lZUNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZSAoZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXIgKEpzLlVuc2FmZS5jb2VyY2Ugc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlIyMucGF5bG9hZCkpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdTaXR1YXRpb25HYXJkZUFsdGVybmVlLnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIHBhcmVudGUgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJBc2NlbmRhbnRcIlxuICAgICAgICAtIFwiRGVzY2VuZGFudFwiXG4gICAgICAgIC0gXCJDb2xsYXRlcmFsRGV1eGllbWVUcm9pc2llbWVEZWdyZVwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHBhcmVudGVfdG9fanNvbyA6IFBhcmVudGUudCAtPiBwYXJlbnRlIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IEFzY2VuZGFudCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFzY2VuZGFudFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IERlc2NlbmRhbnQgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJEZXNjZW5kYW50XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQ29sbGF0ZXJhbERldXhpZW1lVHJvaXNpZW1lRGVncmUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJDb2xsYXRlcmFsRGV1eGllbWVUcm9pc2llbWVEZWdyZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgcGFyZW50ZV9vZl9qc29vIChwYXJlbnRlIDogcGFyZW50ZSBKcy50KSA6IFBhcmVudGUudCA9XG4gIG1hdGNoIHBhcmVudGUjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJBc2NlbmRhbnRcIiAtPiBQYXJlbnRlLkFzY2VuZGFudCAoKVxuICB8IFwiRGVzY2VuZGFudFwiIC0+IFBhcmVudGUuRGVzY2VuZGFudCAoKVxuICB8IFwiQ29sbGF0ZXJhbERldXhpZW1lVHJvaXNpZW1lRGVncmVcIiAtPlxuICAgIFBhcmVudGUuQ29sbGF0ZXJhbERldXhpZW1lVHJvaXNpZW1lRGVncmUgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZiBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1BhcmVudGUudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgZGF0ZV9kZV9uYWlzc2FuY2Vfb3VfbW9pc19kZV9ncm9zc2Vzc2UgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJEYXRlRGVOYWlzc2FuY2VcIlxuICAgICAgICAtIFwiQXZhbnRQcmVtaWVySm91ck1vaXNDaXZpbFRyb2lzaWVtZU1vaXNEZUdyb3NzZXNzZVwiXG4gICAgICAgIC0gXCJBcHJlc1ByZW1pZXJKb3VyTW9pc0NpdmlsVHJvaXNpZW1lTW9pc0RlR3Jvc3Nlc3NlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgZGF0ZV9kZV9uYWlzc2FuY2Vfb3VfbW9pc19kZV9ncm9zc2Vzc2VfdG9fanNvb1xuICA6IERhdGVEZU5haXNzYW5jZU91TW9pc0RlR3Jvc3Nlc3NlLnQgLT4gZGF0ZV9kZV9uYWlzc2FuY2Vfb3VfbW9pc19kZV9ncm9zc2Vzc2UgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgRGF0ZURlTmFpc3NhbmNlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRGF0ZURlTmFpc3NhbmNlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoZGF0ZV90b19qc29vIGFyZykpXG4gICAgZW5kXG4gIHwgQXZhbnRQcmVtaWVySm91ck1vaXNDaXZpbFRyb2lzaWVtZU1vaXNEZUdyb3NzZXNzZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkF2YW50UHJlbWllckpvdXJNb2lzQ2l2aWxUcm9pc2llbWVNb2lzRGVHcm9zc2Vzc2VcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBcHJlc1ByZW1pZXJKb3VyTW9pc0NpdmlsVHJvaXNpZW1lTW9pc0RlR3Jvc3Nlc3NlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQXByZXNQcmVtaWVySm91ck1vaXNDaXZpbFRyb2lzaWVtZU1vaXNEZUdyb3NzZXNzZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgZGF0ZV9kZV9uYWlzc2FuY2Vfb3VfbW9pc19kZV9ncm9zc2Vzc2Vfb2ZfanNvb1xuICAoZGF0ZV9kZV9uYWlzc2FuY2Vfb3VfbW9pc19kZV9ncm9zc2Vzc2VcbiAgICA6IGRhdGVfZGVfbmFpc3NhbmNlX291X21vaXNfZGVfZ3Jvc3Nlc3NlIEpzLnQpXG4gIDogRGF0ZURlTmFpc3NhbmNlT3VNb2lzRGVHcm9zc2Vzc2UudCA9XG4gIG1hdGNoIGRhdGVfZGVfbmFpc3NhbmNlX291X21vaXNfZGVfZ3Jvc3Nlc3NlIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiRGF0ZURlTmFpc3NhbmNlXCIgLT5cbiAgRGF0ZURlTmFpc3NhbmNlT3VNb2lzRGVHcm9zc2Vzc2UuRGF0ZURlTmFpc3NhbmNlIChkYXRlX29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2UgZGF0ZV9kZV9uYWlzc2FuY2Vfb3VfbW9pc19kZV9ncm9zc2Vzc2UjIy5wYXlsb2FkKSlcbiAgfCBcIkF2YW50UHJlbWllckpvdXJNb2lzQ2l2aWxUcm9pc2llbWVNb2lzRGVHcm9zc2Vzc2VcIiAtPlxuICAgIERhdGVEZU5haXNzYW5jZU91TW9pc0RlR3Jvc3Nlc3NlLkF2YW50UHJlbWllckpvdXJNb2lzQ2l2aWxUcm9pc2llbWVNb2lzRGVHcm9zc2Vzc2UgKClcbiAgfCBcIkFwcmVzUHJlbWllckpvdXJNb2lzQ2l2aWxUcm9pc2llbWVNb2lzRGVHcm9zc2Vzc2VcIiAtPlxuICAgIERhdGVEZU5haXNzYW5jZU91TW9pc0RlR3Jvc3Nlc3NlLkFwcmVzUHJlbWllckpvdXJNb2lzQ2l2aWxUcm9pc2llbWVNb2lzRGVHcm9zc2Vzc2UgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ0RhdGVEZU5haXNzYW5jZU91TW9pc0RlR3Jvc3Nlc3NlLnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIHpvbmVfZF9oYWJpdGF0aW9uID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiWm9uZTFcIlxuICAgICAgICAtIFwiWm9uZTJcIlxuICAgICAgICAtIFwiWm9uZTNcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCB6b25lX2RfaGFiaXRhdGlvbl90b19qc29vIDogWm9uZURIYWJpdGF0aW9uLnQgLT4gem9uZV9kX2hhYml0YXRpb24gSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgWm9uZTEgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJab25lMVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFpvbmUyIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiWm9uZTJcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBab25lMyBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlpvbmUzXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCB6b25lX2RfaGFiaXRhdGlvbl9vZl9qc29vICh6b25lX2RfaGFiaXRhdGlvbiA6IHpvbmVfZF9oYWJpdGF0aW9uIEpzLnQpXG4gIDogWm9uZURIYWJpdGF0aW9uLnQgPVxuICBtYXRjaCB6b25lX2RfaGFiaXRhdGlvbiMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIlpvbmUxXCIgLT4gWm9uZURIYWJpdGF0aW9uLlpvbmUxICgpXG4gIHwgXCJab25lMlwiIC0+IFpvbmVESGFiaXRhdGlvbi5ab25lMiAoKVxuICB8IFwiWm9uZTNcIiAtPiBab25lREhhYml0YXRpb24uWm9uZTMgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1pvbmVESGFiaXRhdGlvbi50J1wiIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBwYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm9mZXNzaW9ubmVsID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiT3VpQXZlY0xveWVyT3VDaGFyZ2VzXCJcbiAgICAgICAgLSBcIk5vblwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHBhaWVtZW50X2xvZ2VtZW50X2Rpc3RpbmN0X3Byb2Zlc3Npb25uZWxfdG9fanNvb1xuICA6IFBhaWVtZW50TG9nZW1lbnREaXN0aW5jdFByb2Zlc3Npb25uZWwudCAtPiBwYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm9mZXNzaW9ubmVsIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IE91aUF2ZWNMb3llck91Q2hhcmdlcyBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIk91aUF2ZWNMb3llck91Q2hhcmdlc1wiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBhcmcpKVxuICAgIGVuZFxuICB8IE5vbiBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIk5vblwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgcGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluY3RfcHJvZmVzc2lvbm5lbF9vZl9qc29vXG4gIChwYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm9mZXNzaW9ubmVsXG4gICAgOiBwYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm9mZXNzaW9ubmVsIEpzLnQpXG4gIDogUGFpZW1lbnRMb2dlbWVudERpc3RpbmN0UHJvZmVzc2lvbm5lbC50ID1cbiAgbWF0Y2ggcGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluY3RfcHJvZmVzc2lvbm5lbCMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIk91aUF2ZWNMb3llck91Q2hhcmdlc1wiIC0+XG4gIFBhaWVtZW50TG9nZW1lbnREaXN0aW5jdFByb2Zlc3Npb25uZWwuT3VpQXZlY0xveWVyT3VDaGFyZ2VzIChtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyIChKcy5VbnNhZmUuY29lcmNlIHBhaWVtZW50X2xvZ2VtZW50X2Rpc3RpbmN0X3Byb2Zlc3Npb25uZWwjIy5wYXlsb2FkKSlcbiAgfCBcIk5vblwiIC0+IFBhaWVtZW50TG9nZW1lbnREaXN0aW5jdFByb2Zlc3Npb25uZWwuTm9uICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdQYWllbWVudExvZ2VtZW50RGlzdGluY3RQcm9mZXNzaW9ubmVsLnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIHZlcnNlbWVudF9hID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiQmFpbGxldXJcIlxuICAgICAgICAtIFwiQmVuZWZpY2lhaXJlXCJcbiAgICAgICAgLSBcIkV0YWJsaXNzZW1lbnRIYWJpbGl0ZVwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHZlcnNlbWVudF9hX3RvX2pzb28gOiBWZXJzZW1lbnRBLnQgLT4gdmVyc2VtZW50X2EgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgQmFpbGxldXIgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJCYWlsbGV1clwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEJlbmVmaWNpYWlyZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkJlbmVmaWNpYWlyZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEV0YWJsaXNzZW1lbnRIYWJpbGl0ZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkV0YWJsaXNzZW1lbnRIYWJpbGl0ZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgdmVyc2VtZW50X2Ffb2ZfanNvbyAodmVyc2VtZW50X2EgOiB2ZXJzZW1lbnRfYSBKcy50KSA6IFZlcnNlbWVudEEudCA9XG4gIG1hdGNoIHZlcnNlbWVudF9hIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiQmFpbGxldXJcIiAtPiBWZXJzZW1lbnRBLkJhaWxsZXVyICgpXG4gIHwgXCJCZW5lZmljaWFpcmVcIiAtPiBWZXJzZW1lbnRBLkJlbmVmaWNpYWlyZSAoKVxuICB8IFwiRXRhYmxpc3NlbWVudEhhYmlsaXRlXCIgLT4gVmVyc2VtZW50QS5FdGFibGlzc2VtZW50SGFiaWxpdGUgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1ZlcnNlbWVudEEudCdcIiBjb25zKVxuXG5cbmNsYXNzIHR5cGUgZGVwZW5zZV9sb2dlbWVudCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIlRvdGFsQW5udWVsRWNoZWFuY2VzXCJcbiAgICAgICAgLSBcIk1lbnN1YWxpdGVcIlxuICAgICAgICAtIFwiTG95ZXJcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBkZXBlbnNlX2xvZ2VtZW50X3RvX2pzb28gOiBEZXBlbnNlTG9nZW1lbnQudCAtPiBkZXBlbnNlX2xvZ2VtZW50IEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IFRvdGFsQW5udWVsRWNoZWFuY2VzIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiVG90YWxBbm51ZWxFY2hlYW5jZXNcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0IChKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgYXJnKSlcbiAgICBlbmRcbiAgfCBNZW5zdWFsaXRlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTWVuc3VhbGl0ZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBhcmcpKVxuICAgIGVuZFxuICB8IExveWVyIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTG95ZXJcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0IChKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgYXJnKSlcbiAgICBlbmRcblxubGV0IGRlcGVuc2VfbG9nZW1lbnRfb2ZfanNvbyAoZGVwZW5zZV9sb2dlbWVudCA6IGRlcGVuc2VfbG9nZW1lbnQgSnMudClcbiAgOiBEZXBlbnNlTG9nZW1lbnQudCA9XG4gIG1hdGNoIGRlcGVuc2VfbG9nZW1lbnQjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJUb3RhbEFubnVlbEVjaGVhbmNlc1wiIC0+XG4gIERlcGVuc2VMb2dlbWVudC5Ub3RhbEFubnVlbEVjaGVhbmNlcyAobW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlciAoSnMuVW5zYWZlLmNvZXJjZSBkZXBlbnNlX2xvZ2VtZW50IyMucGF5bG9hZCkpXG4gIHwgXCJNZW5zdWFsaXRlXCIgLT5cbiAgRGVwZW5zZUxvZ2VtZW50Lk1lbnN1YWxpdGUgKG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXIgKEpzLlVuc2FmZS5jb2VyY2UgZGVwZW5zZV9sb2dlbWVudCMjLnBheWxvYWQpKVxuICB8IFwiTG95ZXJcIiAtPlxuICBEZXBlbnNlTG9nZW1lbnQuTG95ZXIgKG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXIgKEpzLlVuc2FmZS5jb2VyY2UgZGVwZW5zZV9sb2dlbWVudCMjLnBheWxvYWQpKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnRGVwZW5zZUxvZ2VtZW50LnQnXCIgY29ucylcblxuXG5jbGFzcyB0eXBlIG1vZGVfb2NjdXBhdGlvbl9pbXBheWUgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJJbXBheWVMb3llclwiXG4gICAgICAgIC0gXCJJbXBheWVQcmV0XCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZV90b19qc29vXG4gIDogTW9kZU9jY3VwYXRpb25JbXBheWUudCAtPiBtb2RlX29jY3VwYXRpb25faW1wYXllIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IEltcGF5ZUxveWVyIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiSW1wYXllTG95ZXJcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBJbXBheWVQcmV0IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiSW1wYXllUHJldFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZV9vZl9qc29vXG4gIChtb2RlX29jY3VwYXRpb25faW1wYXllIDogbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZSBKcy50KVxuICA6IE1vZGVPY2N1cGF0aW9uSW1wYXllLnQgPVxuICBtYXRjaCBtb2RlX29jY3VwYXRpb25faW1wYXllIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiSW1wYXllTG95ZXJcIiAtPiBNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVMb3llciAoKVxuICB8IFwiSW1wYXllUHJldFwiIC0+IE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZVByZXQgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ01vZGVPY2N1cGF0aW9uSW1wYXllLnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIHR5cGVfZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIlBhc0VsaWdpYmxlXCJcbiAgICAgICAgLSBcIkFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZVwiXG4gICAgICAgIC0gXCJBbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgdHlwZV9lbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X3RvX2pzb29cbiAgOiBUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQudCAtPiB0eXBlX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnQgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgUGFzRWxpZ2libGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJQYXNFbGlnaWJsZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEFsbG9jYXRpb25Mb2dlbWVudFNvY2lhbGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCB0eXBlX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfb2ZfanNvb1xuICAodHlwZV9lbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50XG4gICAgOiB0eXBlX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnQgSnMudClcbiAgOiBUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQudCA9XG4gIG1hdGNoIHR5cGVfZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudCMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIlBhc0VsaWdpYmxlXCIgLT4gVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LlBhc0VsaWdpYmxlICgpXG4gIHwgXCJBbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGVcIiAtPlxuICAgIFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGUgKClcbiAgfCBcIkFsbG9jYXRpb25Mb2dlbWVudFNvY2lhbGVcIiAtPlxuICAgIFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFudF9ldGF0X291dHJlX21lciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkFjY29yZFwiXG4gICAgICAgIC0gXCJQYXNkQWNjb3JkXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFudF9ldGF0X291dHJlX21lcl90b19qc29vXG4gIDogQWNjb3JkRmluYW5jZW1lbnRSZXByZXNlbnRhbnRFdGF0T3V0cmVNZXIudCAtPiBhY2NvcmRfZmluYW5jZW1lbnRfcmVwcmVzZW50YW50X2V0YXRfb3V0cmVfbWVyIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IEFjY29yZCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFjY29yZFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKGRhdGVfdG9fanNvbyBhcmcpKVxuICAgIGVuZFxuICB8IFBhc2RBY2NvcmQgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJQYXNkQWNjb3JkXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBhY2NvcmRfZmluYW5jZW1lbnRfcmVwcmVzZW50YW50X2V0YXRfb3V0cmVfbWVyX29mX2pzb29cbiAgKGFjY29yZF9maW5hbmNlbWVudF9yZXByZXNlbnRhbnRfZXRhdF9vdXRyZV9tZXJcbiAgICA6IGFjY29yZF9maW5hbmNlbWVudF9yZXByZXNlbnRhbnRfZXRhdF9vdXRyZV9tZXIgSnMudClcbiAgOiBBY2NvcmRGaW5hbmNlbWVudFJlcHJlc2VudGFudEV0YXRPdXRyZU1lci50ID1cbiAgbWF0Y2ggYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFudF9ldGF0X291dHJlX21lciMjLmtpbmQgfD4gSnMudG9fc3RyaW5nXG4gICAgd2l0aFxuICB8IFwiQWNjb3JkXCIgLT5cbiAgQWNjb3JkRmluYW5jZW1lbnRSZXByZXNlbnRhbnRFdGF0T3V0cmVNZXIuQWNjb3JkIChkYXRlX29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2UgYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFudF9ldGF0X291dHJlX21lciMjLnBheWxvYWQpKVxuICB8IFwiUGFzZEFjY29yZFwiIC0+IEFjY29yZEZpbmFuY2VtZW50UmVwcmVzZW50YW50RXRhdE91dHJlTWVyLlBhc2RBY2NvcmQgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ0FjY29yZEZpbmFuY2VtZW50UmVwcmVzZW50YW50RXRhdE91dHJlTWVyLnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIHR5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50XCJcbiAgICAgICAgLSBcIkFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZVwiXG4gICAgICAgIC0gXCJBbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF90b19qc29vXG4gIDogVHlwZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50IC0+IHR5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9vZl9qc29vXG4gICh0eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IDogdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCBKcy50KVxuICA6IFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudCA9XG4gIG1hdGNoIHR5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50XCIgLT5cbiAgICBUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LkFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQgKClcbiAgfCBcIkFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZVwiIC0+XG4gICAgVHlwZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGUgKClcbiAgfCBcIkFsbG9jYXRpb25Mb2dlbWVudFNvY2lhbGVcIiAtPlxuICAgIFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZSAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnVHlwZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBzaXR1YXRpb25fZmFtaWxpYWxlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiQ2VsaWJhdGFpcmVcIlxuICAgICAgICAtIFwiTWFyaWVzXCJcbiAgICAgICAgLSBcIlBhY3Nlc1wiXG4gICAgICAgIC0gXCJDb25jdWJpbnNcIlxuICAgICAgICAtIFwiQ2VsaWJhdGFpcmVTZXBhcmVEZUZhaXRcIlxuICAgICAgICAtIFwiQ29uY3ViaW5hZ2VEb250U2VwYXJlRGVGYWl0XCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgc2l0dWF0aW9uX2ZhbWlsaWFsZV90b19qc29vXG4gIDogU2l0dWF0aW9uRmFtaWxpYWxlLnQgLT4gc2l0dWF0aW9uX2ZhbWlsaWFsZSBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBDZWxpYmF0YWlyZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkNlbGliYXRhaXJlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgTWFyaWVzIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTWFyaWVzXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoZGF0ZV90b19qc29vIGFyZykpXG4gICAgZW5kXG4gIHwgUGFjc2VzIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiUGFjc2VzXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQ29uY3ViaW5zIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQ29uY3ViaW5zXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQ2VsaWJhdGFpcmVTZXBhcmVEZUZhaXQgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJDZWxpYmF0YWlyZVNlcGFyZURlRmFpdFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IENvbmN1YmluYWdlRG9udFNlcGFyZURlRmFpdCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkNvbmN1YmluYWdlRG9udFNlcGFyZURlRmFpdFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgc2l0dWF0aW9uX2ZhbWlsaWFsZV9vZl9qc29vXG4gIChzaXR1YXRpb25fZmFtaWxpYWxlIDogc2l0dWF0aW9uX2ZhbWlsaWFsZSBKcy50KSA6IFNpdHVhdGlvbkZhbWlsaWFsZS50ID1cbiAgbWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZSMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIkNlbGliYXRhaXJlXCIgLT4gU2l0dWF0aW9uRmFtaWxpYWxlLkNlbGliYXRhaXJlICgpXG4gIHwgXCJNYXJpZXNcIiAtPlxuICBTaXR1YXRpb25GYW1pbGlhbGUuTWFyaWVzIChkYXRlX29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2Ugc2l0dWF0aW9uX2ZhbWlsaWFsZSMjLnBheWxvYWQpKVxuICB8IFwiUGFjc2VzXCIgLT4gU2l0dWF0aW9uRmFtaWxpYWxlLlBhY3NlcyAoKVxuICB8IFwiQ29uY3ViaW5zXCIgLT4gU2l0dWF0aW9uRmFtaWxpYWxlLkNvbmN1YmlucyAoKVxuICB8IFwiQ2VsaWJhdGFpcmVTZXBhcmVEZUZhaXRcIiAtPlxuICAgIFNpdHVhdGlvbkZhbWlsaWFsZS5DZWxpYmF0YWlyZVNlcGFyZURlRmFpdCAoKVxuICB8IFwiQ29uY3ViaW5hZ2VEb250U2VwYXJlRGVGYWl0XCIgLT5cbiAgICBTaXR1YXRpb25GYW1pbGlhbGUuQ29uY3ViaW5hZ2VEb250U2VwYXJlRGVGYWl0ICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdTaXR1YXRpb25GYW1pbGlhbGUudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgcHJpc2VfZW5fY2hhcmdlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiRWZmZWN0aXZlRXRQZXJtYW5lbnRlXCJcbiAgICAgICAgLSBcIlJlc2lkZW5jZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWVcIlxuICAgICAgICAtIFwiUmVzaWRlbmNlQWx0ZXJuZWVBbGxvY2F0aW9uc1BhcnRhZ2VlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgcHJpc2VfZW5fY2hhcmdlX3RvX2pzb28gOiBQcmlzZUVuQ2hhcmdlLnQgLT4gcHJpc2VfZW5fY2hhcmdlIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IEVmZmVjdGl2ZUV0UGVybWFuZW50ZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkVmZmVjdGl2ZUV0UGVybWFuZW50ZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFJlc2lkZW5jZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJSZXNpZGVuY2VBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgUmVzaWRlbmNlQWx0ZXJuZWVBbGxvY2F0aW9uc1BhcnRhZ2VlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiUmVzaWRlbmNlQWx0ZXJuZWVBbGxvY2F0aW9uc1BhcnRhZ2VlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBwcmlzZV9lbl9jaGFyZ2Vfb2ZfanNvbyAocHJpc2VfZW5fY2hhcmdlIDogcHJpc2VfZW5fY2hhcmdlIEpzLnQpXG4gIDogUHJpc2VFbkNoYXJnZS50ID1cbiAgbWF0Y2ggcHJpc2VfZW5fY2hhcmdlIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiRWZmZWN0aXZlRXRQZXJtYW5lbnRlXCIgLT4gUHJpc2VFbkNoYXJnZS5FZmZlY3RpdmVFdFBlcm1hbmVudGUgKClcbiAgfCBcIlJlc2lkZW5jZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWVcIiAtPlxuICAgIFByaXNlRW5DaGFyZ2UuUmVzaWRlbmNlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZSAoKVxuICB8IFwiUmVzaWRlbmNlQWx0ZXJuZWVBbGxvY2F0aW9uc1BhcnRhZ2VlXCIgLT5cbiAgICBQcmlzZUVuQ2hhcmdlLlJlc2lkZW5jZUFsdGVybmVlQWxsb2NhdGlvbnNQYXJ0YWdlZSAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnUHJpc2VFbkNoYXJnZS50J1wiIGNvbnMpXG5cblxuY2xhc3MgdHlwZSB0eXBlX2xvZ2VtZW50X2ZveWVyID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiTG9nZW1lbnRQZXJzb25uZXNBZ2Vlc091SGFuZGljYXBlZXNcIlxuICAgICAgICAtIFwiUmVzaWRlbmNlU29jaWFsZVwiXG4gICAgICAgIC0gXCJGb3llckpldW5lc1RydmFpbGxldXJzT3VNaWdyYW50c0NvbnZlbnRpb25uZUwzNTNfMkF2YW50MTk5NVwiXG4gICAgICAgIC0gXCJBdXRyZVwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHR5cGVfbG9nZW1lbnRfZm95ZXJfdG9fanNvb1xuICA6IFR5cGVMb2dlbWVudEZveWVyLnQgLT4gdHlwZV9sb2dlbWVudF9mb3llciBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBMb2dlbWVudFBlcnNvbm5lc0FnZWVzT3VIYW5kaWNhcGVlcyBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkxvZ2VtZW50UGVyc29ubmVzQWdlZXNPdUhhbmRpY2FwZWVzXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgUmVzaWRlbmNlU29jaWFsZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlJlc2lkZW5jZVNvY2lhbGVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBGb3llckpldW5lc1RydmFpbGxldXJzT3VNaWdyYW50c0NvbnZlbnRpb25uZUwzNTNfMkF2YW50MTk5NSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkZveWVySmV1bmVzVHJ2YWlsbGV1cnNPdU1pZ3JhbnRzQ29udmVudGlvbm5lTDM1M18yQXZhbnQxOTk1XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQXV0cmUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBdXRyZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgdHlwZV9sb2dlbWVudF9mb3llcl9vZl9qc29vXG4gICh0eXBlX2xvZ2VtZW50X2ZveWVyIDogdHlwZV9sb2dlbWVudF9mb3llciBKcy50KSA6IFR5cGVMb2dlbWVudEZveWVyLnQgPVxuICBtYXRjaCB0eXBlX2xvZ2VtZW50X2ZveWVyIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiTG9nZW1lbnRQZXJzb25uZXNBZ2Vlc091SGFuZGljYXBlZXNcIiAtPlxuICAgIFR5cGVMb2dlbWVudEZveWVyLkxvZ2VtZW50UGVyc29ubmVzQWdlZXNPdUhhbmRpY2FwZWVzICgpXG4gIHwgXCJSZXNpZGVuY2VTb2NpYWxlXCIgLT4gVHlwZUxvZ2VtZW50Rm95ZXIuUmVzaWRlbmNlU29jaWFsZSAoKVxuICB8IFwiRm95ZXJKZXVuZXNUcnZhaWxsZXVyc091TWlncmFudHNDb252ZW50aW9ubmVMMzUzXzJBdmFudDE5OTVcIiAtPlxuICAgIFR5cGVMb2dlbWVudEZveWVyLkZveWVySmV1bmVzVHJ2YWlsbGV1cnNPdU1pZ3JhbnRzQ29udmVudGlvbm5lTDM1M18yQXZhbnQxOTk1ICgpXG4gIHwgXCJBdXRyZVwiIC0+IFR5cGVMb2dlbWVudEZveWVyLkF1dHJlICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdUeXBlTG9nZW1lbnRGb3llci50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTXCJcbiAgICAgICAgLSBcIkV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTUmVoYWJpbGl0ZWVcIlxuICAgICAgICAtIFwiUGVyc29ubmVzQWdlZXNTZWxvbjNEZUQ4NDJfMTZcIlxuICAgICAgICAtIFwiQXV0cmVzUGVyc29ubmVzXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfdG9fanNvb1xuICA6IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50IC0+IGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IEV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBFdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VU1JlaGFiaWxpdGVlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiUGVyc29ubmVzQWdlZXNTZWxvbjNEZUQ4NDJfMTZcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBdXRyZXNQZXJzb25uZXMgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBdXRyZXNQZXJzb25uZXNcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX29mX2pzb29cbiAgKGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyXG4gICAgOiBjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llciBKcy50KVxuICA6IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50ID1cbiAgbWF0Y2ggY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIjIy5raW5kXG4gICAgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIkV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTXCIgLT5cbiAgICBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVMgKClcbiAgfCBcIkV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTUmVoYWJpbGl0ZWVcIiAtPlxuICAgIENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5FdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VU1JlaGFiaWxpdGVlICgpXG4gIHwgXCJQZXJzb25uZXNBZ2Vlc1NlbG9uM0RlRDg0Ml8xNlwiIC0+XG4gICAgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLlBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2ICgpXG4gIHwgXCJBdXRyZXNQZXJzb25uZXNcIiAtPlxuICAgIENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5BdXRyZXNQZXJzb25uZXMgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ0NhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIlBlcnNvbm5lU2V1bGVcIlxuICAgICAgICAtIFwiQ291cGxlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2xfdG9fanNvb1xuICA6IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50IC0+IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IFBlcnNvbm5lU2V1bGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJQZXJzb25uZVNldWxlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQ291cGxlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQ291cGxlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbF9vZl9qc29vXG4gIChzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbCA6IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sIEpzLnQpXG4gIDogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPVxuICBtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbCMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIlBlcnNvbm5lU2V1bGVcIiAtPiBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSAoKVxuICB8IFwiQ291cGxlXCIgLT4gU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIGNvbGxlY3Rpdml0ZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkd1YWRlbG91cGVcIlxuICAgICAgICAtIFwiR3V5YW5lXCJcbiAgICAgICAgLSBcIk1hcnRpbmlxdWVcIlxuICAgICAgICAtIFwiTGFSZXVuaW9uXCJcbiAgICAgICAgLSBcIlNhaW50QmFydGhlbGVteVwiXG4gICAgICAgIC0gXCJTYWludE1hcnRpblwiXG4gICAgICAgIC0gXCJNZXRyb3BvbGVcIlxuICAgICAgICAtIFwiU2FpbnRQaWVycmVFdE1pcXVlbG9uXCJcbiAgICAgICAgLSBcIk1heW90dGVcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBjb2xsZWN0aXZpdGVfdG9fanNvbyA6IENvbGxlY3Rpdml0ZS50IC0+IGNvbGxlY3Rpdml0ZSBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBHdWFkZWxvdXBlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiR3VhZGVsb3VwZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEd1eWFuZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkd1eWFuZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IE1hcnRpbmlxdWUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJNYXJ0aW5pcXVlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgTGFSZXVuaW9uIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTGFSZXVuaW9uXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgU2FpbnRCYXJ0aGVsZW15IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiU2FpbnRCYXJ0aGVsZW15XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgU2FpbnRNYXJ0aW4gYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJTYWludE1hcnRpblwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IE1ldHJvcG9sZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIk1ldHJvcG9sZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFNhaW50UGllcnJlRXRNaXF1ZWxvbiBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlNhaW50UGllcnJlRXRNaXF1ZWxvblwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IE1heW90dGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJNYXlvdHRlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBjb2xsZWN0aXZpdGVfb2ZfanNvbyAoY29sbGVjdGl2aXRlIDogY29sbGVjdGl2aXRlIEpzLnQpXG4gIDogQ29sbGVjdGl2aXRlLnQgPVxuICBtYXRjaCBjb2xsZWN0aXZpdGUjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJHdWFkZWxvdXBlXCIgLT4gQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgKClcbiAgfCBcIkd1eWFuZVwiIC0+IENvbGxlY3Rpdml0ZS5HdXlhbmUgKClcbiAgfCBcIk1hcnRpbmlxdWVcIiAtPiBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSAoKVxuICB8IFwiTGFSZXVuaW9uXCIgLT4gQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiAoKVxuICB8IFwiU2FpbnRCYXJ0aGVsZW15XCIgLT4gQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSAoKVxuICB8IFwiU2FpbnRNYXJ0aW5cIiAtPiBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gKClcbiAgfCBcIk1ldHJvcG9sZVwiIC0+IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgKClcbiAgfCBcIlNhaW50UGllcnJlRXRNaXF1ZWxvblwiIC0+IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gKClcbiAgfCBcIk1heW90dGVcIiAtPiBDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnQ29sbGVjdGl2aXRlLnQnXCIgY29ucylcblxuXG5jbGFzcyB0eXBlIHByaXNlX2VuX2NoYXJnZV9lbmZhbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJHYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zXCJcbiAgICAgICAgLSBcIkdhcmRlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZVwiXG4gICAgICAgIC0gXCJFZmZlY3RpdmVFdFBlcm1hbmVudGVcIlxuICAgICAgICAtIFwiU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGVcIlxuICAgICAgICAtIFwiU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eFwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHByaXNlX2VuX2NoYXJnZV9lbmZhbnRfdG9fanNvb1xuICA6IFByaXNlRW5DaGFyZ2VFbmZhbnQudCAtPiBwcmlzZV9lbl9jaGFyZ2VfZW5mYW50IEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IEdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnMgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJHYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgRWZmZWN0aXZlRXRQZXJtYW5lbnRlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRWZmZWN0aXZlRXRQZXJtYW5lbnRlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQUxhRmFtaWxsZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXggYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBwcmlzZV9lbl9jaGFyZ2VfZW5mYW50X29mX2pzb29cbiAgKHByaXNlX2VuX2NoYXJnZV9lbmZhbnQgOiBwcmlzZV9lbl9jaGFyZ2VfZW5mYW50IEpzLnQpXG4gIDogUHJpc2VFbkNoYXJnZUVuZmFudC50ID1cbiAgbWF0Y2ggcHJpc2VfZW5fY2hhcmdlX2VuZmFudCMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIkdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnNcIiAtPlxuICAgIFByaXNlRW5DaGFyZ2VFbmZhbnQuR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9ucyAoKVxuICB8IFwiR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlXCIgLT5cbiAgICBQcmlzZUVuQ2hhcmdlRW5mYW50LkdhcmRlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZSAoKVxuICB8IFwiRWZmZWN0aXZlRXRQZXJtYW5lbnRlXCIgLT4gUHJpc2VFbkNoYXJnZUVuZmFudC5FZmZlY3RpdmVFdFBlcm1hbmVudGUgKClcbiAgfCBcIlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBTGFGYW1pbGxlXCIgLT5cbiAgICBQcmlzZUVuQ2hhcmdlRW5mYW50LlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBTGFGYW1pbGxlICgpXG4gIHwgXCJTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4XCIgLT5cbiAgICBQcmlzZUVuQ2hhcmdlRW5mYW50LlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXggKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1ByaXNlRW5DaGFyZ2VFbmZhbnQudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmUgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJBdmFudFwiXG4gICAgICAgIC0gXCJQZW5kYW50XCJcbiAgICAgICAgLSBcIkFwcmVzXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmVfdG9fanNvb1xuICA6IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS50IC0+IHNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IEF2YW50IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQXZhbnRcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBQZW5kYW50IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiUGVuZGFudFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEFwcmVzIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQXByZXNcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IHNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlX29mX2pzb29cbiAgKHNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlIDogc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmUgSnMudClcbiAgOiBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUudCA9XG4gIG1hdGNoIHNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiQXZhbnRcIiAtPiBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXZhbnQgKClcbiAgfCBcIlBlbmRhbnRcIiAtPiBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuUGVuZGFudCAoKVxuICB8IFwiQXByZXNcIiAtPiBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXByZXMgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1NpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJQcmVzdGF0aW9uQWNjdWVpbEpldW5lRW5mYW50XCJcbiAgICAgICAgLSBcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiXG4gICAgICAgIC0gXCJDb21wbGVtZW50RmFtaWxpYWxcIlxuICAgICAgICAtIFwiQWxsb2NhdGlvbkxvZ2VtZW50XCJcbiAgICAgICAgLSBcIkFsbG9jYXRpb25FZHVjYXRpb25FbmZhbnRIYW5kaWNhcGVcIlxuICAgICAgICAtIFwiQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbFwiXG4gICAgICAgIC0gXCJBbGxvY2F0aW9uUmVudHJlZVNjb2xhaXJlXCJcbiAgICAgICAgLSBcIkFsbG9jYXRpb25Kb3VybmFsaWVyZVByZXNlbmNlUGFyZW50YWxlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX3RvX2pzb29cbiAgOiBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQgLT4gZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IFByZXN0YXRpb25BY2N1ZWlsSmV1bmVFbmZhbnQgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJQcmVzdGF0aW9uQWNjdWVpbEpldW5lRW5mYW50XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWxsb2NhdGlvbnNGYW1pbGlhbGVzIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQ29tcGxlbWVudEZhbWlsaWFsIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQ29tcGxlbWVudEZhbWlsaWFsXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWxsb2NhdGlvbkxvZ2VtZW50IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWxsb2NhdGlvbkxvZ2VtZW50XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWxsb2NhdGlvbkVkdWNhdGlvbkVuZmFudEhhbmRpY2FwZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFsbG9jYXRpb25FZHVjYXRpb25FbmZhbnRIYW5kaWNhcGVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBbGxvY2F0aW9uU291dGllbkZhbWlsaWFsIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEFsbG9jYXRpb25SZW50cmVlU2NvbGFpcmUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBbGxvY2F0aW9uUmVudHJlZVNjb2xhaXJlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWxsb2NhdGlvbkpvdXJuYWxpZXJlUHJlc2VuY2VQYXJlbnRhbGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBbGxvY2F0aW9uSm91cm5hbGllcmVQcmVzZW5jZVBhcmVudGFsZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX29mX2pzb29cbiAgKGVsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyA6IGVsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyBKcy50KVxuICA6IEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCA9XG4gIG1hdGNoIGVsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIlByZXN0YXRpb25BY2N1ZWlsSmV1bmVFbmZhbnRcIiAtPlxuICAgIEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuUHJlc3RhdGlvbkFjY3VlaWxKZXVuZUVuZmFudCAoKVxuICB8IFwiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCIgLT5cbiAgICBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLkFsbG9jYXRpb25zRmFtaWxpYWxlcyAoKVxuICB8IFwiQ29tcGxlbWVudEZhbWlsaWFsXCIgLT5cbiAgICBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLkNvbXBsZW1lbnRGYW1pbGlhbCAoKVxuICB8IFwiQWxsb2NhdGlvbkxvZ2VtZW50XCIgLT5cbiAgICBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLkFsbG9jYXRpb25Mb2dlbWVudCAoKVxuICB8IFwiQWxsb2NhdGlvbkVkdWNhdGlvbkVuZmFudEhhbmRpY2FwZVwiIC0+XG4gICAgRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy5BbGxvY2F0aW9uRWR1Y2F0aW9uRW5mYW50SGFuZGljYXBlICgpXG4gIHwgXCJBbGxvY2F0aW9uU291dGllbkZhbWlsaWFsXCIgLT5cbiAgICBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLkFsbG9jYXRpb25Tb3V0aWVuRmFtaWxpYWwgKClcbiAgfCBcIkFsbG9jYXRpb25SZW50cmVlU2NvbGFpcmVcIiAtPlxuICAgIEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuQWxsb2NhdGlvblJlbnRyZWVTY29sYWlyZSAoKVxuICB8IFwiQWxsb2NhdGlvbkpvdXJuYWxpZXJlUHJlc2VuY2VQYXJlbnRhbGVcIiAtPlxuICAgIEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuQWxsb2NhdGlvbkpvdXJuYWxpZXJlUHJlc2VuY2VQYXJlbnRhbGUgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ0VsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgY29udmVudGlvbl9iYWlsbGV1cl9zb2NpYWwgPVxuICBvYmplY3RcbiAgICBtZXRob2QgY29udmVudGlvbm5lTGl2cmVJSUlUaXRyZVZDaGFwSUlJOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZWR1Y3Rpb25Mb3llclNvbGlkYXJpdGVQZXJjdWU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbF90b19qc29vIChjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbFxuICAgIDogQ29udmVudGlvbkJhaWxsZXVyU29jaWFsLnQpIDogY29udmVudGlvbl9iYWlsbGV1cl9zb2NpYWwgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgY29udmVudGlvbm5lTGl2cmVJSUlUaXRyZVZDaGFwSUlJID1cbiAgICAgICAgSnMuYm9vbCBjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbC5jb252ZW50aW9ubmVfbGl2cmVfSUlJX3RpdHJlX1ZfY2hhcF9JSUlcbiAgICAgIHZhbCByZWR1Y3Rpb25Mb3llclNvbGlkYXJpdGVQZXJjdWUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY29udmVudGlvbl9iYWlsbGV1cl9zb2NpYWwucmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfcGVyY3VlXG4gICAgICBlbmRcbiAgbGV0IGNvbnZlbnRpb25fYmFpbGxldXJfc29jaWFsX29mX2pzb29cbiAgICAoY29udmVudGlvbl9iYWlsbGV1cl9zb2NpYWwgOiBjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbCBKcy50KSA6XG4gICAgQ29udmVudGlvbkJhaWxsZXVyU29jaWFsLnQgPVxuICAgIHtcbiAgICAgIGNvbnZlbnRpb25uZV9saXZyZV9JSUlfdGl0cmVfVl9jaGFwX0lJSSA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbCMjLmNvbnZlbnRpb25uZUxpdnJlSUlJVGl0cmVWQ2hhcElJSTtcbiAgICAgIHJlZHVjdGlvbl9sb3llcl9zb2xpZGFyaXRlX3BlcmN1ZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbCMjLnJlZHVjdGlvbkxveWVyU29saWRhcml0ZVBlcmN1ZVxuICAgIH1cblxuY2xhc3MgdHlwZSBjb252ZW50aW9uX2Ffbl9oX2EgPVxuICBvYmplY3RcbiAgICBtZXRob2QgY29udmVudGlvbm5lTGl2cmVJSUlUaXRyZUlJQ2hhcElTZWMzOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGNvbnZlbnRpb25fYV9uX2hfYV90b19qc29vIChjb252ZW50aW9uX2Ffbl9oX2EgOiBDb252ZW50aW9uQU5IQS50KVxuICAgIDogY29udmVudGlvbl9hX25faF9hIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGNvbnZlbnRpb25uZUxpdnJlSUlJVGl0cmVJSUNoYXBJU2VjMyA9XG4gICAgICAgIEpzLmJvb2wgY29udmVudGlvbl9hX25faF9hLmNvbnZlbnRpb25uZV9saXZyZV9JSUlfdGl0cmVfSUlfY2hhcF9JX3NlY18zXG4gICAgICBlbmRcbiAgbGV0IGNvbnZlbnRpb25fYV9uX2hfYV9vZl9qc29vXG4gICAgKGNvbnZlbnRpb25fYV9uX2hfYSA6IGNvbnZlbnRpb25fYV9uX2hfYSBKcy50KSA6IENvbnZlbnRpb25BTkhBLnQgPVxuICAgIHtcbiAgICAgIGNvbnZlbnRpb25uZV9saXZyZV9JSUlfdGl0cmVfSUlfY2hhcF9JX3NlY18zID1cbiAgICAgICAgSnMudG9fYm9vbCBjb252ZW50aW9uX2Ffbl9oX2EjIy5jb252ZW50aW9ubmVMaXZyZUlJSVRpdHJlSUlDaGFwSVNlYzNcbiAgICB9XG5cbmNsYXNzIHR5cGUgcGVyc29ubmVfc291c19sb2NhdGlvbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBkYXRlTmFpc3NhbmNlUGVyc29ubmVTb3VzTG9jYXRpb246XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGNvbmZvcm1lQXJ0aWNsZUw0NDIxOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IHBlcnNvbm5lX3NvdXNfbG9jYXRpb25fdG9fanNvbyAocGVyc29ubmVfc291c19sb2NhdGlvblxuICAgIDogUGVyc29ubmVTb3VzTG9jYXRpb24udCkgOiBwZXJzb25uZV9zb3VzX2xvY2F0aW9uIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGRhdGVOYWlzc2FuY2VQZXJzb25uZVNvdXNMb2NhdGlvbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBwZXJzb25uZV9zb3VzX2xvY2F0aW9uLmRhdGVfbmFpc3NhbmNlX3BlcnNvbm5lX3NvdXNfbG9jYXRpb25cbiAgICAgIHZhbCBjb25mb3JtZUFydGljbGVMNDQyMSA9XG4gICAgICAgIEpzLmJvb2wgcGVyc29ubmVfc291c19sb2NhdGlvbi5jb25mb3JtZV9hcnRpY2xlX2w0NDJfMVxuICAgICAgZW5kXG4gIGxldCBwZXJzb25uZV9zb3VzX2xvY2F0aW9uX29mX2pzb29cbiAgICAocGVyc29ubmVfc291c19sb2NhdGlvbiA6IHBlcnNvbm5lX3NvdXNfbG9jYXRpb24gSnMudCkgOlxuICAgIFBlcnNvbm5lU291c0xvY2F0aW9uLnQgPVxuICAgIHtcbiAgICAgIGRhdGVfbmFpc3NhbmNlX3BlcnNvbm5lX3NvdXNfbG9jYXRpb24gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICBwZXJzb25uZV9zb3VzX2xvY2F0aW9uIyMuZGF0ZU5haXNzYW5jZVBlcnNvbm5lU291c0xvY2F0aW9uO1xuICAgICAgY29uZm9ybWVfYXJ0aWNsZV9sNDQyXzEgPVxuICAgICAgICBKcy50b19ib29sIHBlcnNvbm5lX3NvdXNfbG9jYXRpb24jIy5jb25mb3JtZUFydGljbGVMNDQyMVxuICAgIH1cblxuY2xhc3MgdHlwZSBwYXRyaW1vaW5lID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHByb2R1aXNhbnRSZXZlbnVQZXJpb2RlUjgyMjMzUjgyMjQ6XG4gICAgICBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG5lUHJvZHVpc2FudFBhc1JldmVudVBlcmlvZGVSODIyMzNSODIyNDpcbiAgICAgIEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBwYXRyaW1vaW5lX3RvX2pzb28gKHBhdHJpbW9pbmUgOiBQYXRyaW1vaW5lLnQpIDogcGF0cmltb2luZSBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBwcm9kdWlzYW50UmV2ZW51UGVyaW9kZVI4MjIzM1I4MjI0ID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IHBhdHJpbW9pbmUucHJvZHVpc2FudF9yZXZlbnVfcGVyaW9kZV9yODIyXzNfM19yODIyXzRcbiAgICAgIHZhbCBuZVByb2R1aXNhbnRQYXNSZXZlbnVQZXJpb2RlUjgyMjMzUjgyMjQgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgcGF0cmltb2luZS5uZV9wcm9kdWlzYW50X3Bhc19yZXZlbnVfcGVyaW9kZV9yODIyXzNfM19yODIyXzRcbiAgICAgIGVuZFxuICBsZXQgcGF0cmltb2luZV9vZl9qc29vIChwYXRyaW1vaW5lIDogcGF0cmltb2luZSBKcy50KSA6IFBhdHJpbW9pbmUudCA9XG4gICAge1xuICAgICAgcHJvZHVpc2FudF9yZXZlbnVfcGVyaW9kZV9yODIyXzNfM19yODIyXzQgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgcGF0cmltb2luZSMjLnByb2R1aXNhbnRSZXZlbnVQZXJpb2RlUjgyMjMzUjgyMjQ7XG4gICAgICBuZV9wcm9kdWlzYW50X3Bhc19yZXZlbnVfcGVyaW9kZV9yODIyXzNfM19yODIyXzQgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgcGF0cmltb2luZSMjLm5lUHJvZHVpc2FudFBhc1JldmVudVBlcmlvZGVSODIyMzNSODIyNFxuICAgIH1cblxuY2xhc3MgdHlwZSBjb25kaXRpb25zX2V0cmFuZ2VycyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBzYXRpc2ZhaXRDb25kaXRpb25zTDUxMjJDb2RlU2VjdXJpdGVTb2NpYWxlOlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgc2F0aXNmYWl0QXJ0NE9yZG9ubmFuY2UyMDAyTWF5b3R0ZTogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjb25kaXRpb25zX2V0cmFuZ2Vyc190b19qc29vIChjb25kaXRpb25zX2V0cmFuZ2Vyc1xuICAgIDogQ29uZGl0aW9uc0V0cmFuZ2Vycy50KSA6IGNvbmRpdGlvbnNfZXRyYW5nZXJzIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIHNhdGlzZmFpdENvbmRpdGlvbnNMNTEyMkNvZGVTZWN1cml0ZVNvY2lhbGUgPVxuICAgICAgICBKcy5ib29sIGNvbmRpdGlvbnNfZXRyYW5nZXJzLnNhdGlzZmFpdF9jb25kaXRpb25zX2w1MTJfMl9jb2RlX3NlY3VyaXRlX3NvY2lhbGVcbiAgICAgIHZhbCBzYXRpc2ZhaXRBcnQ0T3Jkb25uYW5jZTIwMDJNYXlvdHRlID1cbiAgICAgICAgSnMuYm9vbCBjb25kaXRpb25zX2V0cmFuZ2Vycy5zYXRpc2ZhaXRfYXJ0XzRfb3Jkb25uYW5jZV8yMDAyX21heW90dGVcbiAgICAgIGVuZFxuICBsZXQgY29uZGl0aW9uc19ldHJhbmdlcnNfb2ZfanNvb1xuICAgIChjb25kaXRpb25zX2V0cmFuZ2VycyA6IGNvbmRpdGlvbnNfZXRyYW5nZXJzIEpzLnQpIDpcbiAgICBDb25kaXRpb25zRXRyYW5nZXJzLnQgPVxuICAgIHtcbiAgICAgIHNhdGlzZmFpdF9jb25kaXRpb25zX2w1MTJfMl9jb2RlX3NlY3VyaXRlX3NvY2lhbGUgPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgY29uZGl0aW9uc19ldHJhbmdlcnMjIy5zYXRpc2ZhaXRDb25kaXRpb25zTDUxMjJDb2RlU2VjdXJpdGVTb2NpYWxlO1xuICAgICAgc2F0aXNmYWl0X2FydF80X29yZG9ubmFuY2VfMjAwMl9tYXlvdHRlID1cbiAgICAgICAgSnMudG9fYm9vbCBjb25kaXRpb25zX2V0cmFuZ2VycyMjLnNhdGlzZmFpdEFydDRPcmRvbm5hbmNlMjAwMk1heW90dGVcbiAgICB9XG5cbmNsYXNzIHR5cGUgcGVyc29ubmVfdml2YW50X2hhYml0dWVsbGVtZW50X2F1X2ZveWVyID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGR1cmVlUmVzaWRlbmNlRHVyYW50UGVyaW9kZVI4MjIzMVN1cGVyaWV1cmVBNk1vaXM6XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNzb3VyY2VzOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgcGVyc29ubmVfdml2YW50X2hhYml0dWVsbGVtZW50X2F1X2ZveWVyX3RvX2pzb29cbiAgICAocGVyc29ubmVfdml2YW50X2hhYml0dWVsbGVtZW50X2F1X2ZveWVyXG4gICAgOiBQZXJzb25uZVZpdmFudEhhYml0dWVsbGVtZW50QXVGb3llci50KVxuICAgIDogcGVyc29ubmVfdml2YW50X2hhYml0dWVsbGVtZW50X2F1X2ZveWVyIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGR1cmVlUmVzaWRlbmNlRHVyYW50UGVyaW9kZVI4MjIzMVN1cGVyaWV1cmVBNk1vaXMgPVxuICAgICAgICBKcy5ib29sIHBlcnNvbm5lX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9hdV9mb3llci5kdXJlZV9yZXNpZGVuY2VfZHVyYW50X3BlcmlvZGVfcl84MjJfM18xX3N1cGVyaWV1cmVfYV82X21vaXNcbiAgICAgIHZhbCByZXNzb3VyY2VzID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IHBlcnNvbm5lX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9hdV9mb3llci5yZXNzb3VyY2VzXG4gICAgICBlbmRcbiAgbGV0IHBlcnNvbm5lX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9hdV9mb3llcl9vZl9qc29vXG4gICAgKHBlcnNvbm5lX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9hdV9mb3llclxuICAgICAgOiBwZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnRfYXVfZm95ZXIgSnMudCkgOlxuICAgIFBlcnNvbm5lVml2YW50SGFiaXR1ZWxsZW1lbnRBdUZveWVyLnQgPVxuICAgIHtcbiAgICAgIGR1cmVlX3Jlc2lkZW5jZV9kdXJhbnRfcGVyaW9kZV9yXzgyMl8zXzFfc3VwZXJpZXVyZV9hXzZfbW9pcyA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBwZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnRfYXVfZm95ZXJcbiAgICAgICAgICAjIy5kdXJlZVJlc2lkZW5jZUR1cmFudFBlcmlvZGVSODIyMzFTdXBlcmlldXJlQTZNb2lzO1xuICAgICAgcmVzc291cmNlcyA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBwZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnRfYXVfZm95ZXIjIy5yZXNzb3VyY2VzXG4gICAgfVxuXG5jbGFzcyB0eXBlIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGU6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZWxpZ2liaWxpdGU6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VQcmlzZXNFbkNvbXB0ZTogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29lZmZpY2VudHNFbmZhbnRzR2FyZGVBbHRlcm5lZVByaXNFbkNvbXB0ZTpcbiAgICAgIEpzLm51bWJlciBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF90b19qc29vXG4gICAgKGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudFxuICAgIDogRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LnQpXG4gICAgOiBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlID1cbiAgICAgICAgZGF0ZV90b19qc29vIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudC5kYXRlX2NvdXJhbnRlXG4gICAgICB2YWwgZWxpZ2liaWxpdGUgPVxuICAgICAgICBKcy5ib29sIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudC5lbGlnaWJpbGl0ZVxuICAgICAgdmFsIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VQcmlzZXNFbkNvbXB0ZSA9XG4gICAgICAgIGludGVnZXJfdG9faW50IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudC5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGVcbiAgICAgIHZhbCBjb2VmZmljZW50c0VuZmFudHNHYXJkZUFsdGVybmVlUHJpc0VuQ29tcHRlID1cbiAgICAgICAgSnMuYXJyYXkgQEAgQXJyYXkubWFwIChmdW4geCAtPiBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgZGVjaW1hbF90b19mbG9hdCB4KSBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZVxuICAgICAgZW5kXG4gIGxldCBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfb2ZfanNvb1xuICAgIChlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRcbiAgICAgIDogZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50IEpzLnQpIDpcbiAgICBFbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQudCA9XG4gICAge1xuICAgICAgZGF0ZV9jb3VyYW50ZSA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQjIy5kYXRlQ291cmFudGU7XG4gICAgICBlbGlnaWJpbGl0ZSA9XG4gICAgICAgIEpzLnRvX2Jvb2wgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50IyMuZWxpZ2liaWxpdGU7XG4gICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGUgPVxuICAgICAgICBpbnRlZ2VyX29mX2ludFxuICAgICAgICAgIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudFxuICAgICAgICAgICMjLm5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VQcmlzZXNFbkNvbXB0ZTtcbiAgICAgIGNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGUgPVxuICAgICAgICBBcnJheS5tYXAgKGZ1biB4IC0+IGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyIHgpIEBAIEpzLnRvX2FycmF5XG4gICAgICAgICAgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50XG4gICAgICAgICAgIyMuY29lZmZpY2VudHNFbmZhbnRzR2FyZGVBbHRlcm5lZVByaXNFbkNvbXB0ZVxuICAgIH1cblxuY2xhc3MgdHlwZSBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnQgPVxuICBvYmplY3QgbWV0aG9kIG1vbnRhbnRQcmltZURlbWVuYWdlbWVudDogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF90b19qc29vXG4gICAgKGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudCA6IEVsaWdpYmlsaXRlUHJpbWVEZURlbWVuYWdlbWVudC50KVxuICAgIDogZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50IEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG1vbnRhbnRQcmltZURlbWVuYWdlbWVudCA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnQubW9udGFudF9wcmltZV9kZW1lbmFnZW1lbnRcbiAgICAgIGVuZFxuICBsZXQgZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X29mX2pzb29cbiAgICAoZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50XG4gICAgICA6IGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudCBKcy50KSA6XG4gICAgRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50LnQgPVxuICAgIHtcbiAgICAgIG1vbnRhbnRfcHJpbWVfZGVtZW5hZ2VtZW50ID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudCMjLm1vbnRhbnRQcmltZURlbWVuYWdlbWVudFxuICAgIH1cblxuY2xhc3MgdHlwZSByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50ID1cbiAgb2JqZWN0IG1ldGhvZCByZXNzb3VyY2VzUHJpc2VzRW5Db21wdGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X3RvX2pzb29cbiAgICAocmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudFxuICAgIDogUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50KVxuICAgIDogcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCByZXNzb3VyY2VzUHJpc2VzRW5Db21wdGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudC5yZXNzb3VyY2VzX3ByaXNlc19lbl9jb21wdGVcbiAgICAgIGVuZFxuICBsZXQgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9vZl9qc29vXG4gICAgKHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgICAgIDogcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCBKcy50KSA6XG4gICAgUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID1cbiAgICB7XG4gICAgICByZXNzb3VyY2VzX3ByaXNlc19lbl9jb21wdGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCMjLnJlc3NvdXJjZXNQcmlzZXNFbkNvbXB0ZVxuICAgIH1cblxuY2xhc3MgdHlwZSBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG1vbnRhbnQ6XG4gICAgICAodW5pdCwgIEpzLm51bWJlciBKcy50IC0+IEpzLm51bWJlciBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgZW5kXG4gIGxldCBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X3RvX2pzb29cbiAgICAoY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudFxuICAgIDogQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQpXG4gICAgOiBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgbWV0aG9kIG1vbnRhbnQgPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IEpzLm51bWJlciBKcy50KSAtPlxuICAgICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCAoY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudC5tb250YW50IFxuICAgICAgICAgIChtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgICBmdW5jdGlvbl9pbnB1dDApKSlcbiAgICAgIGVuZFxuICBsZXQgY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9vZl9qc29vXG4gICAgKGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgICAgIDogY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCBKcy50KSA6XG4gICAgQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQgPVxuICAgIHtcbiAgICAgIG1vbnRhbnQgPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAnbW9udGFudCcgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBtb250YW50Rm9yZmFpdGFpcmVDaGFyZ2VzRDgyMzE2OiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHBsYWZvbmRMb3llckQ4MjMxNjI6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcGFydGljaXBhdGlvbk1pbmltYWxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHRhdXhDb21wb3NpdGlvbkZhbWlsaWFsZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBwYXJ0aWNpcGF0aW9uUGVyc29ubmVsbGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYWlkZUZpbmFsZUZvcm11bGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGU6XG4gICAgICAodW5pdCwgIEpzLm51bWJlciBKcy50IC0+IEpzLm51bWJlciBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgZW5kXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfdG9fanNvb1xuICAgIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZcbiAgICA6IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnQpXG4gICAgOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWYgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbW9udGFudEZvcmZhaXRhaXJlQ2hhcmdlc0Q4MjMxNiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWYubW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4MjNfMTZcbiAgICAgIHZhbCBwbGFmb25kTG95ZXJEODIzMTYyID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZi5wbGFmb25kX2xveWVyX2Q4MjNfMTZfMlxuICAgICAgdmFsIHBhcnRpY2lwYXRpb25NaW5pbWFsZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWYucGFydGljaXBhdGlvbl9taW5pbWFsZVxuICAgICAgdmFsIHRhdXhDb21wb3NpdGlvbkZhbWlsaWFsZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBkZWNpbWFsX3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZi50YXV4X2NvbXBvc2l0aW9uX2ZhbWlsaWFsZVxuICAgICAgdmFsIHBhcnRpY2lwYXRpb25QZXJzb25uZWxsZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWYucGFydGljaXBhdGlvbl9wZXJzb25uZWxsZVxuICAgICAgdmFsIGFpZGVGaW5hbGVGb3JtdWxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZi5haWRlX2ZpbmFsZV9mb3JtdWxlXG4gICAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGUgPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IEpzLm51bWJlciBKcy50KSAtPlxuICAgICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgXG4gICAgICAgICAgKG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfb2ZfanNvb1xuICAgIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZcbiAgICAgIDogY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmIEpzLnQpIDpcbiAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50ID1cbiAgICB7XG4gICAgICBtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfZDgyM18xNiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZcbiAgICAgICAgICAjIy5tb250YW50Rm9yZmFpdGFpcmVDaGFyZ2VzRDgyMzE2O1xuICAgICAgcGxhZm9uZF9sb3llcl9kODIzXzE2XzIgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmIyMucGxhZm9uZExveWVyRDgyMzE2MjtcbiAgICAgIHBhcnRpY2lwYXRpb25fbWluaW1hbGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmIyMucGFydGljaXBhdGlvbk1pbmltYWxlO1xuICAgICAgdGF1eF9jb21wb3NpdGlvbl9mYW1pbGlhbGUgPVxuICAgICAgICBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZlxuICAgICAgICAgICMjLnRhdXhDb21wb3NpdGlvbkZhbWlsaWFsZTtcbiAgICAgIHBhcnRpY2lwYXRpb25fcGVyc29ubmVsbGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmXG4gICAgICAgICAgIyMucGFydGljaXBhdGlvblBlcnNvbm5lbGxlO1xuICAgICAgYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWYjIy5haWRlRmluYWxlRm9ybXVsZTtcbiAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAndHJhaXRlbWVudF9haWRlX2ZpbmFsZScgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZSA9XG4gIG9iamVjdCBtZXRob2QgbW9udGFudDogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV90b19qc29vXG4gICAgKGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZSA6IENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZS50KVxuICAgIDogY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG1vbnRhbnQgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlLm1vbnRhbnRcbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX29mX2pzb29cbiAgICAoY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlXG4gICAgICA6IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZSBKcy50KSA6XG4gICAgQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlLnQgPVxuICAgIHtcbiAgICAgIG1vbnRhbnQgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlIyMubW9udGFudFxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXIgPVxuICBvYmplY3QgbWV0aG9kIG5Ob21icmVQYXJ0c0Q4MzIyNTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl90b19qc29vXG4gICAgKGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llciA6IENhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyLnQpXG4gICAgOiBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXIgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbk5vbWJyZVBhcnRzRDgzMjI1ID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVcbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX29mX2pzb29cbiAgICAoY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyXG4gICAgICA6IGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llciBKcy50KSA6XG4gICAgQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXIudCA9XG4gICAge1xuICAgICAgbl9ub21icmVfcGFydHNfZDgzMl8yNSA9XG4gICAgICAgIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyIyMubk5vbWJyZVBhcnRzRDgzMjI1XG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIgPVxuICBvYmplY3RcbiAgICBtZXRob2QgY29lZmZpY2llbnRNdWx0aXBsaWNhdGV1ckQ4MzIyNTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb2VmZmljaWVudFJEODMyMjU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgbk5vbWJyZVBhcnRzRDgzMjI1OiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGVxdWl2YWxlbmNlTG95ZXJFbGlnaWJsZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBwbGFmb25kRXF1aXZhbGVuY2VMb3llckVsaWdpYmxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb2VmZmljaWVudFByaXNlRW5DaGFyZ2VEODMyMjU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYWlkZUZpbmFsZUZvcm11bGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGU6XG4gICAgICAodW5pdCwgIEpzLm51bWJlciBKcy50IC0+IEpzLm51bWJlciBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgZW5kXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX3RvX2pzb29cbiAgICAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llclxuICAgIDogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLnQpXG4gICAgOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGNvZWZmaWNpZW50TXVsdGlwbGljYXRldXJEODMyMjUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llci5jb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzI1XG4gICAgICB2YWwgY29lZmZpY2llbnRSRDgzMjI1ID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIuY29lZmZpY2llbnRfcl9kODMyXzI1XG4gICAgICB2YWwgbk5vbWJyZVBhcnRzRDgzMjI1ID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llci5uX25vbWJyZV9wYXJ0c19kODMyXzI1XG4gICAgICB2YWwgZXF1aXZhbGVuY2VMb3llckVsaWdpYmxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIuZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGVcbiAgICAgIHZhbCBwbGFmb25kRXF1aXZhbGVuY2VMb3llckVsaWdpYmxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIucGxhZm9uZF9lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZVxuICAgICAgdmFsIGVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyLmVxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlXG4gICAgICB2YWwgY29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlRDgzMjI1ID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llci5jb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNVxuICAgICAgdmFsIGFpZGVGaW5hbGVGb3JtdWxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIuYWlkZV9maW5hbGVfZm9ybXVsZVxuICAgICAgbWV0aG9kIHRyYWl0ZW1lbnRBaWRlRmluYWxlID0gSnMud3JhcF9tZXRoX2NhbGxiYWNrXG4gICAgICAgIChcbiAgICAgICAgICBmdW4gXyAoZnVuY3Rpb25faW5wdXQwOiBKcy5udW1iZXIgSnMudCkgLT5cbiAgICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIudHJhaXRlbWVudF9haWRlX2ZpbmFsZSBcbiAgICAgICAgICAobW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgICAgZnVuY3Rpb25faW5wdXQwKSkpXG4gICAgICBlbmRcbiAgbGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfb2ZfanNvb1xuICAgIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyXG4gICAgICA6IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIgSnMudCkgOlxuICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci50ID1cbiAgICB7XG4gICAgICBjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzI1ID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJcbiAgICAgICAgICAjIy5jb2VmZmljaWVudE11bHRpcGxpY2F0ZXVyRDgzMjI1O1xuICAgICAgY29lZmZpY2llbnRfcl9kODMyXzI1ID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIjIy5jb2VmZmljaWVudFJEODMyMjU7XG4gICAgICBuX25vbWJyZV9wYXJ0c19kODMyXzI1ID1cbiAgICAgICAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyIyMubk5vbWJyZVBhcnRzRDgzMjI1O1xuICAgICAgZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llciMjLmVxdWl2YWxlbmNlTG95ZXJFbGlnaWJsZTtcbiAgICAgIHBsYWZvbmRfZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llclxuICAgICAgICAgICMjLnBsYWZvbmRFcXVpdmFsZW5jZUxveWVyRWxpZ2libGU7XG4gICAgICBlcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyIyMuZXF1aXZhbGVuY2VMb3llck1pbmltYWxlO1xuICAgICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMjUgPVxuICAgICAgICBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJcbiAgICAgICAgICAjIy5jb2VmZmljaWVudFByaXNlRW5DaGFyZ2VEODMyMjU7XG4gICAgICBhaWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIjIy5haWRlRmluYWxlRm9ybXVsZTtcbiAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAndHJhaXRlbWVudF9haWRlX2ZpbmFsZScgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZSA9XG4gIG9iamVjdCBtZXRob2Qgbk5vbWJyZVBhcnRzRDgzMjExOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlX3RvX2pzb29cbiAgICAoY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlXG4gICAgOiBDYWxjdWxOb21icmVQYXJ0c0FjY2Vzc2lvblByb3ByaWV0ZS50KVxuICAgIDogY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG5Ob21icmVQYXJ0c0Q4MzIxMSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBkZWNpbWFsX3RvX2Zsb2F0IGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZS5uX25vbWJyZV9wYXJ0c19kODMyXzExXG4gICAgICBlbmRcbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9vZl9qc29vXG4gICAgKGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZVxuICAgICAgOiBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGUgSnMudCkgOlxuICAgIENhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlLnQgPVxuICAgIHtcbiAgICAgIG5fbm9tYnJlX3BhcnRzX2Q4MzJfMTEgPVxuICAgICAgICBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZSMjLm5Ob21icmVQYXJ0c0Q4MzIxMVxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbWVuc3VhbGl0ZUVsaWdpYmxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG1lbnN1YWxpdGVNaW5pbWFsZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb2VmZmljaWVudFByaXNlRW5DaGFyZ2VEODMyMTA6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYWlkZUZpbmFsZUZvcm11bGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGU6XG4gICAgICAodW5pdCwgIEpzLm51bWJlciBKcy50IC0+IEpzLm51bWJlciBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgZW5kXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfdG9fanNvb1xuICAgIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVcbiAgICA6IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudClcbiAgICA6IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZSBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtZW5zdWFsaXRlRWxpZ2libGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlLm1lbnN1YWxpdGVfZWxpZ2libGVcbiAgICAgIHZhbCBtZW5zdWFsaXRlTWluaW1hbGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlLm1lbnN1YWxpdGVfbWluaW1hbGVcbiAgICAgIHZhbCBjb2VmZmljaWVudFByaXNlRW5DaGFyZ2VEODMyMTAgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgZGVjaW1hbF90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUuY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTBcbiAgICAgIHZhbCBhaWRlRmluYWxlRm9ybXVsZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUuYWlkZV9maW5hbGVfZm9ybXVsZVxuICAgICAgbWV0aG9kIHRyYWl0ZW1lbnRBaWRlRmluYWxlID0gSnMud3JhcF9tZXRoX2NhbGxiYWNrXG4gICAgICAgIChcbiAgICAgICAgICBmdW4gXyAoZnVuY3Rpb25faW5wdXQwOiBKcy5udW1iZXIgSnMudCkgLT5cbiAgICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZS50cmFpdGVtZW50X2FpZGVfZmluYWxlIFxuICAgICAgICAgIChtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgICBmdW5jdGlvbl9pbnB1dDApKSlcbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX29mX2pzb29cbiAgICAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlXG4gICAgICA6IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZSBKcy50KSA6XG4gICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS50ID1cbiAgICB7XG4gICAgICBtZW5zdWFsaXRlX2VsaWdpYmxlID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZVxuICAgICAgICAgICMjLm1lbnN1YWxpdGVFbGlnaWJsZTtcbiAgICAgIG1lbnN1YWxpdGVfbWluaW1hbGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlXG4gICAgICAgICAgIyMubWVuc3VhbGl0ZU1pbmltYWxlO1xuICAgICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTAgPVxuICAgICAgICBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZVxuICAgICAgICAgICMjLmNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZUQ4MzIxMDtcbiAgICAgIGFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlXG4gICAgICAgICAgIyMuYWlkZUZpbmFsZUZvcm11bGU7XG4gICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlID0gZmFpbHdpdGggXCJUaGUgZnVuY3Rpb24gJ3RyYWl0ZW1lbnRfYWlkZV9maW5hbGUnIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIlxuICAgIH1cblxuY2xhc3MgdHlwZSB0cmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGUgPVxuICBvYmplY3RcbiAgICBtZXRob2QgYWlkZUZpbmFsZUZvcm11bGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGU6XG4gICAgICAodW5pdCwgIEpzLm51bWJlciBKcy50IC0+IEpzLm51bWJlciBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgZW5kXG4gIGxldCB0cmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGVfdG9fanNvbyAodHJhaXRlbWVudF9mb3JtdWxlX2FpZGVfZmluYWxlXG4gICAgOiBUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUudCkgOiB0cmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGUgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgYWlkZUZpbmFsZUZvcm11bGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgdHJhaXRlbWVudF9mb3JtdWxlX2FpZGVfZmluYWxlLmFpZGVfZmluYWxlX2Zvcm11bGVcbiAgICAgIG1ldGhvZCB0cmFpdGVtZW50QWlkZUZpbmFsZSA9IEpzLndyYXBfbWV0aF9jYWxsYmFja1xuICAgICAgICAoXG4gICAgICAgICAgZnVuIF8gKGZ1bmN0aW9uX2lucHV0MDogSnMubnVtYmVyIEpzLnQpIC0+XG4gICAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0ICh0cmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSBcbiAgICAgICAgICAobW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgICAgZnVuY3Rpb25faW5wdXQwKSkpXG4gICAgICBlbmRcbiAgbGV0IHRyYWl0ZW1lbnRfZm9ybXVsZV9haWRlX2ZpbmFsZV9vZl9qc29vXG4gICAgKHRyYWl0ZW1lbnRfZm9ybXVsZV9haWRlX2ZpbmFsZSA6IHRyYWl0ZW1lbnRfZm9ybXVsZV9haWRlX2ZpbmFsZSBKcy50KSA6XG4gICAgVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLnQgPVxuICAgIHtcbiAgICAgIGFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgdHJhaXRlbWVudF9mb3JtdWxlX2FpZGVfZmluYWxlIyMuYWlkZUZpbmFsZUZvcm11bGU7XG4gICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlID0gZmFpbHdpdGggXCJUaGUgZnVuY3Rpb24gJ3RyYWl0ZW1lbnRfYWlkZV9maW5hbGUnIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIlxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGFpZGVGaW5hbGVGb3JtdWxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHRyYWl0ZW1lbnRBaWRlRmluYWxlOlxuICAgICAgKHVuaXQsICBKcy5udW1iZXIgSnMudCAtPiBKcy5udW1iZXIgSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gIGVuZFxuICBsZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF90b19qc29vXG4gICAgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQgOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LnQpXG4gICAgOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50IEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGFpZGVGaW5hbGVGb3JtdWxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQuYWlkZV9maW5hbGVfZm9ybXVsZVxuICAgICAgbWV0aG9kIHRyYWl0ZW1lbnRBaWRlRmluYWxlID0gSnMud3JhcF9tZXRoX2NhbGxiYWNrXG4gICAgICAgIChcbiAgICAgICAgICBmdW4gXyAoZnVuY3Rpb25faW5wdXQwOiBKcy5udW1iZXIgSnMudCkgLT5cbiAgICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQudHJhaXRlbWVudF9haWRlX2ZpbmFsZSBcbiAgICAgICAgICAobW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgICAgZnVuY3Rpb25faW5wdXQwKSkpXG4gICAgICBlbmRcbiAgbGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfb2ZfanNvb1xuICAgIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50XG4gICAgICA6IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQgSnMudCkgOlxuICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQudCA9XG4gICAge1xuICAgICAgYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50IyMuYWlkZUZpbmFsZUZvcm11bGU7XG4gICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlID0gZmFpbHdpdGggXCJUaGUgZnVuY3Rpb24gJ3RyYWl0ZW1lbnRfYWlkZV9maW5hbGUnIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIlxuICAgIH1cblxuY2xhc3MgdHlwZSBpbmZvc19jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBhbmNpZW5Mb3llclByaW5jaXBhbDogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhbmNpZW5uZUFsbG9jYXRpb25Mb2dlbWVudDogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGluZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80X3RvX2pzb29cbiAgICAoaW5mb3NfY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzQgOiBJbmZvc0NoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LnQpXG4gICAgOiBpbmZvc19jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNCBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBhbmNpZW5Mb3llclByaW5jaXBhbCA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBpbmZvc19jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNC5hbmNpZW5fbG95ZXJfcHJpbmNpcGFsXG4gICAgICB2YWwgYW5jaWVubmVBbGxvY2F0aW9uTG9nZW1lbnQgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgaW5mb3NfY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzQuYW5jaWVubmVfYWxsb2NhdGlvbl9sb2dlbWVudFxuICAgICAgZW5kXG4gIGxldCBpbmZvc19jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF9vZl9qc29vXG4gICAgKGluZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80XG4gICAgICA6IGluZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80IEpzLnQpIDpcbiAgICBJbmZvc0NoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LnQgPVxuICAgIHtcbiAgICAgIGFuY2llbl9sb3llcl9wcmluY2lwYWwgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgaW5mb3NfY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzQjIy5hbmNpZW5Mb3llclByaW5jaXBhbDtcbiAgICAgIGFuY2llbm5lX2FsbG9jYXRpb25fbG9nZW1lbnQgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgaW5mb3NfY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzQjIy5hbmNpZW5uZUFsbG9jYXRpb25Mb2dlbWVudFxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGFpZGVGaW5hbGVGb3JtdWxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHRyYWl0ZW1lbnRBaWRlRmluYWxlOlxuICAgICAgKHVuaXQsICBKcy5udW1iZXIgSnMudCAtPiBKcy5udW1iZXIgSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gIGVuZFxuICBsZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl90b19qc29vXG4gICAgKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWYgOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLnQpXG4gICAgOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGFpZGVGaW5hbGVGb3JtdWxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWYuYWlkZV9maW5hbGVfZm9ybXVsZVxuICAgICAgbWV0aG9kIHRyYWl0ZW1lbnRBaWRlRmluYWxlID0gSnMud3JhcF9tZXRoX2NhbGxiYWNrXG4gICAgICAgIChcbiAgICAgICAgICBmdW4gXyAoZnVuY3Rpb25faW5wdXQwOiBKcy5udW1iZXIgSnMudCkgLT5cbiAgICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSBcbiAgICAgICAgICAobW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgICAgZnVuY3Rpb25faW5wdXQwKSkpXG4gICAgICBlbmRcbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfb2ZfanNvb1xuICAgIChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmXG4gICAgICA6IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWYgSnMudCkgOlxuICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYudCA9XG4gICAge1xuICAgICAgYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmIyMuYWlkZUZpbmFsZUZvcm11bGU7XG4gICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlID0gZmFpbHdpdGggXCJUaGUgZnVuY3Rpb24gJ3RyYWl0ZW1lbnRfYWlkZV9maW5hbGUnIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIlxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGFpZGVGaW5hbGVGb3JtdWxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHRyYWl0ZW1lbnRBaWRlRmluYWxlOlxuICAgICAgKHVuaXQsICBKcy5udW1iZXIgSnMudCAtPiBKcy5udW1iZXIgSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gIGVuZFxuICBsZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV90b19qc29vXG4gICAgKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVcbiAgICA6IENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS50KVxuICAgIDogY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZSBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBhaWRlRmluYWxlRm9ybXVsZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlLmFpZGVfZmluYWxlX2Zvcm11bGVcbiAgICAgIG1ldGhvZCB0cmFpdGVtZW50QWlkZUZpbmFsZSA9IEpzLndyYXBfbWV0aF9jYWxsYmFja1xuICAgICAgICAoXG4gICAgICAgICAgZnVuIF8gKGZ1bmN0aW9uX2lucHV0MDogSnMubnVtYmVyIEpzLnQpIC0+XG4gICAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgXG4gICAgICAgICAgKG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX29mX2pzb29cbiAgICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZVxuICAgICAgOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlIEpzLnQpIDpcbiAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudCA9XG4gICAge1xuICAgICAgYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlIyMuYWlkZUZpbmFsZUZvcm11bGU7XG4gICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlID0gZmFpbHdpdGggXCJUaGUgZnVuY3Rpb24gJ3RyYWl0ZW1lbnRfYWlkZV9maW5hbGUnIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIlxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBjb2VmZmljaWVudFByaXNlRW5DaGFyZ2U6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZXF1aXZhbGVuY2VMb3llcjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBtb250YW50Rm9yZmFpdGFpcmVDaGFyZ2VzOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGxveWVyTWluaW1hbDogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhaWRlRmluYWxlRm9ybXVsZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB0cmFpdGVtZW50QWlkZUZpbmFsZTpcbiAgICAgICh1bml0LCAgSnMubnVtYmVyIEpzLnQgLT4gSnMubnVtYmVyIEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICBlbmRcbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX3RvX2pzb29cbiAgICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIgOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50KVxuICAgIDogY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgY29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIuY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlXG4gICAgICB2YWwgZXF1aXZhbGVuY2VMb3llciA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llci5lcXVpdmFsZW5jZV9sb3llclxuICAgICAgdmFsIG1vbnRhbnRGb3JmYWl0YWlyZUNoYXJnZXMgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIubW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzXG4gICAgICB2YWwgbG95ZXJNaW5pbWFsID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyLmxveWVyX21pbmltYWxcbiAgICAgIHZhbCBhaWRlRmluYWxlRm9ybXVsZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llci5haWRlX2ZpbmFsZV9mb3JtdWxlXG4gICAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGUgPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IEpzLm51bWJlciBKcy50KSAtPlxuICAgICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIudHJhaXRlbWVudF9haWRlX2ZpbmFsZSBcbiAgICAgICAgICAobW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgICAgZnVuY3Rpb25faW5wdXQwKSkpXG4gICAgICBlbmRcbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX29mX2pzb29cbiAgICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJcbiAgICAgIDogY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIgSnMudCkgOlxuICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLnQgPVxuICAgIHtcbiAgICAgIGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZSA9XG4gICAgICAgIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIjIy5jb2VmZmljaWVudFByaXNlRW5DaGFyZ2U7XG4gICAgICBlcXVpdmFsZW5jZV9sb3llciA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llciMjLmVxdWl2YWxlbmNlTG95ZXI7XG4gICAgICBtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXMgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIjIy5tb250YW50Rm9yZmFpdGFpcmVDaGFyZ2VzO1xuICAgICAgbG95ZXJfbWluaW1hbCA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llciMjLmxveWVyTWluaW1hbDtcbiAgICAgIGFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIjIy5haWRlRmluYWxlRm9ybXVsZTtcbiAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAndHJhaXRlbWVudF9haWRlX2ZpbmFsZScgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGFpZGVGaW5hbGVGb3JtdWxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHRyYWl0ZW1lbnRBaWRlRmluYWxlOlxuICAgICAgKHVuaXQsICBKcy5udW1iZXIgSnMudCAtPiBKcy5udW1iZXIgSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gIGVuZFxuICBsZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfdG9fanNvbyAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRcbiAgICA6IENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudC50KSA6IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50IEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGFpZGVGaW5hbGVGb3JtdWxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50LmFpZGVfZmluYWxlX2Zvcm11bGVcbiAgICAgIG1ldGhvZCB0cmFpdGVtZW50QWlkZUZpbmFsZSA9IEpzLndyYXBfbWV0aF9jYWxsYmFja1xuICAgICAgICAoXG4gICAgICAgICAgZnVuIF8gKGZ1bmN0aW9uX2lucHV0MDogSnMubnVtYmVyIEpzLnQpIC0+XG4gICAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudC50cmFpdGVtZW50X2FpZGVfZmluYWxlIFxuICAgICAgICAgIChtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgICBmdW5jdGlvbl9pbnB1dDApKSlcbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfb2ZfanNvb1xuICAgIChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudCA6IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50IEpzLnQpIDpcbiAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnQudCA9XG4gICAge1xuICAgICAgYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudCMjLmFpZGVGaW5hbGVGb3JtdWxlO1xuICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9IGZhaWx3aXRoIFwiVGhlIGZ1bmN0aW9uICd0cmFpdGVtZW50X2FpZGVfZmluYWxlJyB0cmFuc2xhdGlvbiBpc24ndCB5ZXQgc3VwcG9ydGVkLi4uXCJcbiAgICB9XG5cbmNsYXNzIHR5cGUgb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBhZ2VPdXZlcnR1cmVEcm9pdDpcbiAgICAgIFJ1bnRpbWVfanNvby5SdW50aW1lLmR1cmF0aW9uIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfdG9fanNvbyAob3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZVxuICAgIDogT3V2ZXJ0dXJlRHJvaXRzUmV0cmFpdGUudCkgOiBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGFnZU91dmVydHVyZURyb2l0ID1cbiAgICAgICAgZHVyYXRpb25fdG9fanNvbyBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlLmFnZV9vdXZlcnR1cmVfZHJvaXRcbiAgICAgIGVuZFxuICBsZXQgb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9vZl9qc29vXG4gICAgKG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGUgOiBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlIEpzLnQpIDpcbiAgICBPdXZlcnR1cmVEcm9pdHNSZXRyYWl0ZS50ID1cbiAgICB7XG4gICAgICBhZ2Vfb3V2ZXJ0dXJlX2Ryb2l0ID1cbiAgICAgICAgZHVyYXRpb25fb2ZfanNvbyBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlIyMuYWdlT3V2ZXJ0dXJlRHJvaXRcbiAgICB9XG5cbmNsYXNzIHR5cGUgaW1wYXllX2RlcGVuc2VfbG9nZW1lbnQgPVxuICBvYmplY3QgbWV0aG9kIG1vbnRhbnRJbXBheWU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF90b19qc29vIChpbXBheWVfZGVwZW5zZV9sb2dlbWVudFxuICAgIDogSW1wYXllRGVwZW5zZUxvZ2VtZW50LnQpIDogaW1wYXllX2RlcGVuc2VfbG9nZW1lbnQgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbW9udGFudEltcGF5ZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBpbXBheWVfZGVwZW5zZV9sb2dlbWVudC5tb250YW50X2ltcGF5ZVxuICAgICAgZW5kXG4gIGxldCBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9vZl9qc29vXG4gICAgKGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50IDogaW1wYXllX2RlcGVuc2VfbG9nZW1lbnQgSnMudCkgOlxuICAgIEltcGF5ZURlcGVuc2VMb2dlbWVudC50ID1cbiAgICB7XG4gICAgICBtb250YW50X2ltcGF5ZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBpbXBheWVfZGVwZW5zZV9sb2dlbWVudCMjLm1vbnRhbnRJbXBheWVcbiAgICB9XG5cbmNsYXNzIHR5cGUgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBlbGlnaWJpbGl0ZTogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYWlkZUZpbmFsZUZvcm11bGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGU6XG4gICAgICAodW5pdCwgIEpzLm51bWJlciBKcy50IC0+IEpzLm51bWJlciBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgICBtZXRob2QgY29lZmZpY2VudHNFbmZhbnRzR2FyZGVBbHRlcm5lZVByaXNFbkNvbXB0ZTpcbiAgICAgIEpzLm51bWJlciBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfdG9fanNvbyAoY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudFxuICAgIDogQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudC50KSA6IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnQgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZWxpZ2liaWxpdGUgPSBKcy5ib29sIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnQuZWxpZ2liaWxpdGVcbiAgICAgIHZhbCBhaWRlRmluYWxlRm9ybXVsZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50LmFpZGVfZmluYWxlX2Zvcm11bGVcbiAgICAgIG1ldGhvZCB0cmFpdGVtZW50QWlkZUZpbmFsZSA9IEpzLndyYXBfbWV0aF9jYWxsYmFja1xuICAgICAgICAoXG4gICAgICAgICAgZnVuIF8gKGZ1bmN0aW9uX2lucHV0MDogSnMubnVtYmVyIEpzLnQpIC0+XG4gICAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IChjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50LnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgXG4gICAgICAgICAgKG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgdmFsIGNvZWZmaWNlbnRzRW5mYW50c0dhcmRlQWx0ZXJuZWVQcmlzRW5Db21wdGUgPVxuICAgICAgICBKcy5hcnJheSBAQCBBcnJheS5tYXAgKGZ1biB4IC0+IEpzLm51bWJlcl9vZl9mbG9hdCBAQCBkZWNpbWFsX3RvX2Zsb2F0IHgpIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZVxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X29mX2pzb29cbiAgICAoY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudCA6IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnQgSnMudCkgOlxuICAgIENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQudCA9XG4gICAge1xuICAgICAgZWxpZ2liaWxpdGUgPSBKcy50b19ib29sIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnQjIy5lbGlnaWJpbGl0ZTtcbiAgICAgIGFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudCMjLmFpZGVGaW5hbGVGb3JtdWxlO1xuICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9IGZhaWx3aXRoIFwiVGhlIGZ1bmN0aW9uICd0cmFpdGVtZW50X2FpZGVfZmluYWxlJyB0cmFuc2xhdGlvbiBpc24ndCB5ZXQgc3VwcG9ydGVkLi4uXCI7XG4gICAgICBjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlID1cbiAgICAgICAgQXJyYXkubWFwIChmdW4geCAtPiBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlciB4KSBAQCBKcy50b19hcnJheVxuICAgICAgICAgIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRcbiAgICAgICAgICAjIy5jb2VmZmljZW50c0VuZmFudHNHYXJkZUFsdGVybmVlUHJpc0VuQ29tcHRlXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWUgPVxuICBvYmplY3RcbiAgICBtZXRob2QgZWxpZ2liaWxpdGU6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFpZGVGaW5hbGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX3RvX2pzb29cbiAgICAoY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZVxuICAgIDogQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWUudClcbiAgICA6IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWUgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZWxpZ2liaWxpdGUgPVxuICAgICAgICBKcy5ib29sIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWUuZWxpZ2liaWxpdGVcbiAgICAgIHZhbCBhaWRlRmluYWxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWUuYWlkZV9maW5hbGVcbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9vZl9qc29vXG4gICAgKGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVcbiAgICAgIDogY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZSBKcy50KSA6XG4gICAgQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWUudCA9XG4gICAge1xuICAgICAgZWxpZ2liaWxpdGUgPVxuICAgICAgICBKcy50b19ib29sIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWUjIy5lbGlnaWJpbGl0ZTtcbiAgICAgIGFpZGVfZmluYWxlID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWUjIy5haWRlRmluYWxlXG4gICAgfVxuXG5jbGFzcyB0eXBlIGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgPVxuICBvYmplY3QgbWV0aG9kIG1vbnRhbnQ6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX3RvX2pzb29cbiAgICAoYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICAgIDogQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcy50KVxuICAgIDogYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtb250YW50ID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMubW9udGFudFxuICAgICAgZW5kXG4gIGxldCBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX29mX2pzb29cbiAgICAoYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICAgICAgOiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzIEpzLnQpIDpcbiAgICBCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLnQgPVxuICAgIHtcbiAgICAgIG1vbnRhbnQgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyMjLm1vbnRhbnRcbiAgICB9XG5cbmNsYXNzIHR5cGUgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hID1cbiAgb2JqZWN0IG1ldGhvZCBlc3RJbmZlcmlldXJPdUVnYWw6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX3RvX2pzb29cbiAgICAodmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hXG4gICAgOiBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBLnQpXG4gICAgOiB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2EgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZXN0SW5mZXJpZXVyT3VFZ2FsID1cbiAgICAgICAgSnMuYm9vbCB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2EuZXN0X2luZmVyaWV1cl9vdV9lZ2FsXG4gICAgICBlbmRcbiAgbGV0IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9vZl9qc29vXG4gICAgKHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYVxuICAgICAgOiB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2EgSnMudCkgOlxuICAgIFZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEEudCA9XG4gICAge1xuICAgICAgZXN0X2luZmVyaWV1cl9vdV9lZ2FsID1cbiAgICAgICAgSnMudG9fYm9vbCB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2EjIy5lc3RJbmZlcmlldXJPdUVnYWxcbiAgICB9XG5cbmNsYXNzIHR5cGUgdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYSA9XG4gIG9iamVjdCBtZXRob2QgZXN0U3VwZXJpZXVyOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfdG9fanNvbyAodmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYVxuICAgIDogVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS50KSA6IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZXN0U3VwZXJpZXVyID0gSnMuYm9vbCB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hLmVzdF9zdXBlcmlldXJcbiAgICAgIGVuZFxuICBsZXQgdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9vZl9qc29vXG4gICAgKHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EgOiB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hIEpzLnQpIDpcbiAgICBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBLnQgPVxuICAgIHtlc3Rfc3VwZXJpZXVyID0gSnMudG9fYm9vbCB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hIyMuZXN0U3VwZXJpZXVyXG4gICAgfVxuXG5jbGFzcyB0eXBlIHNtaWMgPVxuICBvYmplY3QgbWV0aG9kIGJydXRIb3JhaXJlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgc21pY190b19qc29vIChzbWljIDogU21pYy50KSA6IHNtaWMgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgYnJ1dEhvcmFpcmUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgc21pYy5icnV0X2hvcmFpcmVcbiAgICAgIGVuZFxuICBsZXQgc21pY19vZl9qc29vIChzbWljIDogc21pYyBKcy50KSA6IFNtaWMudCA9XG4gICAge1xuICAgICAgYnJ1dF9ob3JhaXJlID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIHNtaWMjIy5icnV0SG9yYWlyZVxuICAgIH1cblxuY2xhc3MgdHlwZSBuZXVmX291X2FuY2llbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIk5ldWZcIlxuICAgICAgICAtIFwiQW5jaWVuXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgbmV1Zl9vdV9hbmNpZW5fdG9fanNvbyA6IE5ldWZPdUFuY2llbi50IC0+IG5ldWZfb3VfYW5jaWVuIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IE5ldWYgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJOZXVmXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQW5jaWVuIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQW5jaWVuXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoYW1lbGlvcmVfcGFyX29jY3VwYW50X3RvX2pzb28gYXJnKSlcbiAgICBlbmRcblxubGV0IG5ldWZfb3VfYW5jaWVuX29mX2pzb28gKG5ldWZfb3VfYW5jaWVuIDogbmV1Zl9vdV9hbmNpZW4gSnMudClcbiAgOiBOZXVmT3VBbmNpZW4udCA9XG4gIG1hdGNoIG5ldWZfb3VfYW5jaWVuIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiTmV1ZlwiIC0+IE5ldWZPdUFuY2llbi5OZXVmICgpXG4gIHwgXCJBbmNpZW5cIiAtPlxuICBOZXVmT3VBbmNpZW4uQW5jaWVuIChhbWVsaW9yZV9wYXJfb2NjdXBhbnRfb2ZfanNvbyAoSnMuVW5zYWZlLmNvZXJjZSBuZXVmX291X2FuY2llbiMjLnBheWxvYWQpKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnTmV1Zk91QW5jaWVuLnQnXCIgY29ucylcblxuXG5jbGFzcyB0eXBlIHRyYW5jaGVfcmV2ZW51ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGhhdXQ6IGxpbWl0ZV90cmFuY2hlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBiYXM6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdGF1eDogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IHRyYW5jaGVfcmV2ZW51X3RvX2pzb28gKHRyYW5jaGVfcmV2ZW51IDogVHJhbmNoZVJldmVudS50KVxuICAgIDogdHJhbmNoZV9yZXZlbnUgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgaGF1dCA9IGxpbWl0ZV90cmFuY2hlX3RvX2pzb28gdHJhbmNoZV9yZXZlbnUuaGF1dFxuICAgICAgdmFsIGJhcyA9IEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCB0cmFuY2hlX3JldmVudS5iYXNcbiAgICAgIHZhbCB0YXV4ID0gSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgdHJhbmNoZV9yZXZlbnUudGF1eFxuICAgICAgZW5kXG4gIGxldCB0cmFuY2hlX3JldmVudV9vZl9qc29vICh0cmFuY2hlX3JldmVudSA6IHRyYW5jaGVfcmV2ZW51IEpzLnQpIDpcbiAgICBUcmFuY2hlUmV2ZW51LnQgPVxuICAgIHtcbiAgICAgIGhhdXQgPSBsaW1pdGVfdHJhbmNoZV9vZl9qc29vIHRyYW5jaGVfcmV2ZW51IyMuaGF1dDtcbiAgICAgIGJhcyA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICB0cmFuY2hlX3JldmVudSMjLmJhcztcbiAgICAgIHRhdXggPSBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlciB0cmFuY2hlX3JldmVudSMjLnRhdXhcbiAgICB9XG5cbmNsYXNzIHR5cGUgdHJhbmNoZV9yZXZlbnVfZGVjaW1hbCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBoYXV0OiBsaW1pdGVfdHJhbmNoZV9kZWNpbWFsIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBiYXM6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdGF1eDogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IHRyYW5jaGVfcmV2ZW51X2RlY2ltYWxfdG9fanNvbyAodHJhbmNoZV9yZXZlbnVfZGVjaW1hbFxuICAgIDogVHJhbmNoZVJldmVudURlY2ltYWwudCkgOiB0cmFuY2hlX3JldmVudV9kZWNpbWFsIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGhhdXQgPSBsaW1pdGVfdHJhbmNoZV9kZWNpbWFsX3RvX2pzb28gdHJhbmNoZV9yZXZlbnVfZGVjaW1hbC5oYXV0XG4gICAgICB2YWwgYmFzID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgdHJhbmNoZV9yZXZlbnVfZGVjaW1hbC5iYXNcbiAgICAgIHZhbCB0YXV4ID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgdHJhbmNoZV9yZXZlbnVfZGVjaW1hbC50YXV4XG4gICAgICBlbmRcbiAgbGV0IHRyYW5jaGVfcmV2ZW51X2RlY2ltYWxfb2ZfanNvb1xuICAgICh0cmFuY2hlX3JldmVudV9kZWNpbWFsIDogdHJhbmNoZV9yZXZlbnVfZGVjaW1hbCBKcy50KSA6XG4gICAgVHJhbmNoZVJldmVudURlY2ltYWwudCA9XG4gICAge1xuICAgICAgaGF1dCA9IGxpbWl0ZV90cmFuY2hlX2RlY2ltYWxfb2ZfanNvbyB0cmFuY2hlX3JldmVudV9kZWNpbWFsIyMuaGF1dDtcbiAgICAgIGJhcyA9XG4gICAgICAgIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyIHRyYW5jaGVfcmV2ZW51X2RlY2ltYWwjIy5iYXM7XG4gICAgICB0YXV4ID1cbiAgICAgICAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXIgdHJhbmNoZV9yZXZlbnVfZGVjaW1hbCMjLnRhdXhcbiAgICB9XG5cbmNsYXNzIHR5cGUgYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UgPVxuICBvYmplY3RcbiAgICBtZXRob2QgZGF0ZU5haXNzYW5jZTogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNzb3VyY2VzOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFzY2VuZGFudERlc2NlbmRhbnRDb2xsYXRlcmFsRGV1eGllbWVUcm9pc2llbWVEZWdyZTpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHBhcmVudGU6IHBhcmVudGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGluY2FwYWNpdGU4MFBvdXJjZW50T3VSZXN0cmljdGlvbkVtcGxvaTpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGJlbmVmaWNpYWlyZUwxNjExOUwzNTE4TDY0MzNTZWN1OiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB0aXR1bGFpcmVBbGxvY2F0aW9uUGVyc29ubmVBZ2VlOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGF1dHJlX3BlcnNvbm5lX2FfY2hhcmdlX3RvX2pzb28gKGF1dHJlX3BlcnNvbm5lX2FfY2hhcmdlXG4gICAgOiBBdXRyZVBlcnNvbm5lQUNoYXJnZS50KSA6IGF1dHJlX3BlcnNvbm5lX2FfY2hhcmdlIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGRhdGVOYWlzc2FuY2UgPSBkYXRlX3RvX2pzb28gYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UuZGF0ZV9uYWlzc2FuY2VcbiAgICAgIHZhbCByZXNzb3VyY2VzID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGF1dHJlX3BlcnNvbm5lX2FfY2hhcmdlLnJlc3NvdXJjZXNcbiAgICAgIHZhbCBhc2NlbmRhbnREZXNjZW5kYW50Q29sbGF0ZXJhbERldXhpZW1lVHJvaXNpZW1lRGVncmUgPVxuICAgICAgICBKcy5ib29sIGF1dHJlX3BlcnNvbm5lX2FfY2hhcmdlLmFzY2VuZGFudF9kZXNjZW5kYW50X2NvbGxhdGVyYWxfZGV1eGllbWVfdHJvaXNpZW1lX2RlZ3JlXG4gICAgICB2YWwgcGFyZW50ZSA9IHBhcmVudGVfdG9fanNvbyBhdXRyZV9wZXJzb25uZV9hX2NoYXJnZS5wYXJlbnRlXG4gICAgICB2YWwgaW5jYXBhY2l0ZTgwUG91cmNlbnRPdVJlc3RyaWN0aW9uRW1wbG9pID1cbiAgICAgICAgSnMuYm9vbCBhdXRyZV9wZXJzb25uZV9hX2NoYXJnZS5pbmNhcGFjaXRlXzgwX3BvdXJjZW50X291X3Jlc3RyaWN0aW9uX2VtcGxvaVxuICAgICAgdmFsIGJlbmVmaWNpYWlyZUwxNjExOUwzNTE4TDY0MzNTZWN1ID1cbiAgICAgICAgSnMuYm9vbCBhdXRyZV9wZXJzb25uZV9hX2NoYXJnZS5iZW5lZmljaWFpcmVfbDE2MV8xOV9sMzUxXzhfbDY0M18zX3NlY3VcbiAgICAgIHZhbCB0aXR1bGFpcmVBbGxvY2F0aW9uUGVyc29ubmVBZ2VlID1cbiAgICAgICAgSnMuYm9vbCBhdXRyZV9wZXJzb25uZV9hX2NoYXJnZS50aXR1bGFpcmVfYWxsb2NhdGlvbl9wZXJzb25uZV9hZ2VlXG4gICAgICBlbmRcbiAgbGV0IGF1dHJlX3BlcnNvbm5lX2FfY2hhcmdlX29mX2pzb29cbiAgICAoYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UgOiBhdXRyZV9wZXJzb25uZV9hX2NoYXJnZSBKcy50KSA6XG4gICAgQXV0cmVQZXJzb25uZUFDaGFyZ2UudCA9XG4gICAge1xuICAgICAgZGF0ZV9uYWlzc2FuY2UgPSBkYXRlX29mX2pzb28gYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UjIy5kYXRlTmFpc3NhbmNlO1xuICAgICAgcmVzc291cmNlcyA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBhdXRyZV9wZXJzb25uZV9hX2NoYXJnZSMjLnJlc3NvdXJjZXM7XG4gICAgICBhc2NlbmRhbnRfZGVzY2VuZGFudF9jb2xsYXRlcmFsX2RldXhpZW1lX3Ryb2lzaWVtZV9kZWdyZSA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBhdXRyZV9wZXJzb25uZV9hX2NoYXJnZVxuICAgICAgICAgICMjLmFzY2VuZGFudERlc2NlbmRhbnRDb2xsYXRlcmFsRGV1eGllbWVUcm9pc2llbWVEZWdyZTtcbiAgICAgIHBhcmVudGUgPSBwYXJlbnRlX29mX2pzb28gYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UjIy5wYXJlbnRlO1xuICAgICAgaW5jYXBhY2l0ZV84MF9wb3VyY2VudF9vdV9yZXN0cmljdGlvbl9lbXBsb2kgPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UjIy5pbmNhcGFjaXRlODBQb3VyY2VudE91UmVzdHJpY3Rpb25FbXBsb2k7XG4gICAgICBiZW5lZmljaWFpcmVfbDE2MV8xOV9sMzUxXzhfbDY0M18zX3NlY3UgPVxuICAgICAgICBKcy50b19ib29sIGF1dHJlX3BlcnNvbm5lX2FfY2hhcmdlIyMuYmVuZWZpY2lhaXJlTDE2MTE5TDM1MThMNjQzM1NlY3U7XG4gICAgICB0aXR1bGFpcmVfYWxsb2NhdGlvbl9wZXJzb25uZV9hZ2VlID1cbiAgICAgICAgSnMudG9fYm9vbCBhdXRyZV9wZXJzb25uZV9hX2NoYXJnZSMjLnRpdHVsYWlyZUFsbG9jYXRpb25QZXJzb25uZUFnZWVcbiAgICB9XG5cbmNsYXNzIHR5cGUgZGF0ZV9uYWlzc2FuY2VfdHJvaXNpZW1lX291X2Rlcm5pZXJfcGx1c19lbmZhbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJNb2luc0RlVHJvaXNFbmZhbnRzXCJcbiAgICAgICAgLSBcIlBsdXNEZVRyb2lzRW5mYW50c1wiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IGRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9vdV9kZXJuaWVyX3BsdXNfZW5mYW50X3RvX2pzb29cbiAgOiBEYXRlTmFpc3NhbmNlVHJvaXNpZW1lT3VEZXJuaWVyUGx1c0VuZmFudC50IC0+IGRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9vdV9kZXJuaWVyX3BsdXNfZW5mYW50IEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IE1vaW5zRGVUcm9pc0VuZmFudHMgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJNb2luc0RlVHJvaXNFbmZhbnRzXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgUGx1c0RlVHJvaXNFbmZhbnRzIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiUGx1c0RlVHJvaXNFbmZhbnRzXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoZGF0ZV9kZV9uYWlzc2FuY2Vfb3VfbW9pc19kZV9ncm9zc2Vzc2VfdG9fanNvbyBhcmcpKVxuICAgIGVuZFxuXG5sZXQgZGF0ZV9uYWlzc2FuY2VfdHJvaXNpZW1lX291X2Rlcm5pZXJfcGx1c19lbmZhbnRfb2ZfanNvb1xuICAoZGF0ZV9uYWlzc2FuY2VfdHJvaXNpZW1lX291X2Rlcm5pZXJfcGx1c19lbmZhbnRcbiAgICA6IGRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9vdV9kZXJuaWVyX3BsdXNfZW5mYW50IEpzLnQpXG4gIDogRGF0ZU5haXNzYW5jZVRyb2lzaWVtZU91RGVybmllclBsdXNFbmZhbnQudCA9XG4gIG1hdGNoIGRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9vdV9kZXJuaWVyX3BsdXNfZW5mYW50IyMua2luZFxuICAgIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJNb2luc0RlVHJvaXNFbmZhbnRzXCIgLT5cbiAgICBEYXRlTmFpc3NhbmNlVHJvaXNpZW1lT3VEZXJuaWVyUGx1c0VuZmFudC5Nb2luc0RlVHJvaXNFbmZhbnRzICgpXG4gIHwgXCJQbHVzRGVUcm9pc0VuZmFudHNcIiAtPlxuICBEYXRlTmFpc3NhbmNlVHJvaXNpZW1lT3VEZXJuaWVyUGx1c0VuZmFudC5QbHVzRGVUcm9pc0VuZmFudHMgKGRhdGVfZGVfbmFpc3NhbmNlX291X21vaXNfZGVfZ3Jvc3Nlc3NlX29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2UgZGF0ZV9uYWlzc2FuY2VfdHJvaXNpZW1lX291X2Rlcm5pZXJfcGx1c19lbmZhbnQjIy5wYXlsb2FkKSlcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ0RhdGVOYWlzc2FuY2VUcm9pc2llbWVPdURlcm5pZXJQbHVzRW5mYW50LnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgZWxpZ2liaWxpdGU6XG4gICAgICB0eXBlX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnQgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VQcmlzZXNFbkNvbXB0ZTogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29lZmZpY2VudHNFbmZhbnRzR2FyZGVBbHRlcm5lZVByaXNFbkNvbXB0ZTpcbiAgICAgIEpzLm51bWJlciBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfdG9fanNvb1xuICAgIChlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50IDogRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQudClcbiAgICA6IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnQgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZWxpZ2liaWxpdGUgPVxuICAgICAgICB0eXBlX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfdG9fanNvbyBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50LmVsaWdpYmlsaXRlXG4gICAgICB2YWwgbm9tYnJlUGVyc29ubmVzQUNoYXJnZVByaXNlc0VuQ29tcHRlID1cbiAgICAgICAgaW50ZWdlcl90b19pbnQgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudC5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGVcbiAgICAgIHZhbCBjb2VmZmljZW50c0VuZmFudHNHYXJkZUFsdGVybmVlUHJpc0VuQ29tcHRlID1cbiAgICAgICAgSnMuYXJyYXkgQEAgQXJyYXkubWFwIChmdW4geCAtPiBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgZGVjaW1hbF90b19mbG9hdCB4KSBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50LmNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVcbiAgICAgIGVuZFxuICBsZXQgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9vZl9qc29vXG4gICAgKGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnQgOiBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50IEpzLnQpIDpcbiAgICBFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC50ID1cbiAgICB7XG4gICAgICBlbGlnaWJpbGl0ZSA9XG4gICAgICAgIHR5cGVfZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9vZl9qc29vXG4gICAgICAgICAgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudCMjLmVsaWdpYmlsaXRlO1xuICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlID1cbiAgICAgICAgaW50ZWdlcl9vZl9pbnRcbiAgICAgICAgICBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50XG4gICAgICAgICAgIyMubm9tYnJlUGVyc29ubmVzQUNoYXJnZVByaXNlc0VuQ29tcHRlO1xuICAgICAgY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSA9XG4gICAgICAgIEFycmF5Lm1hcCAoZnVuIHggLT4gZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXIgeCkgQEAgSnMudG9fYXJyYXlcbiAgICAgICAgICBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50XG4gICAgICAgICAgIyMuY29lZmZpY2VudHNFbmZhbnRzR2FyZGVBbHRlcm5lZVByaXNFbkNvbXB0ZVxuICAgIH1cblxuY2xhc3MgdHlwZSBwcmV0ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHR5cGVQcmV0OiB0eXBlX3ByZXQgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVTaWduYXR1cmU6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdGl0dWxhaXJlUHJldDogdGl0dWxhaXJlX3ByZXQgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFjY29yZEZpbmFuY2VtZW50UmVwcmVzZW50YW50RXRhdE91dHJlTWVyOlxuICAgICAgYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFudF9ldGF0X291dHJlX21lciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBwcmV0X3RvX2pzb28gKHByZXQgOiBQcmV0LnQpIDogcHJldCBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCB0eXBlUHJldCA9IHR5cGVfcHJldF90b19qc29vIHByZXQudHlwZV9wcmV0XG4gICAgICB2YWwgZGF0ZVNpZ25hdHVyZSA9IGRhdGVfdG9fanNvbyBwcmV0LmRhdGVfc2lnbmF0dXJlXG4gICAgICB2YWwgdGl0dWxhaXJlUHJldCA9IHRpdHVsYWlyZV9wcmV0X3RvX2pzb28gcHJldC50aXR1bGFpcmVfcHJldFxuICAgICAgdmFsIGFjY29yZEZpbmFuY2VtZW50UmVwcmVzZW50YW50RXRhdE91dHJlTWVyID1cbiAgICAgICAgYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFudF9ldGF0X291dHJlX21lcl90b19qc29vIHByZXQuYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFudF9FdGF0X291dHJlX21lclxuICAgICAgZW5kXG4gIGxldCBwcmV0X29mX2pzb28gKHByZXQgOiBwcmV0IEpzLnQpIDogUHJldC50ID1cbiAgICB7XG4gICAgICB0eXBlX3ByZXQgPSB0eXBlX3ByZXRfb2ZfanNvbyBwcmV0IyMudHlwZVByZXQ7XG4gICAgICBkYXRlX3NpZ25hdHVyZSA9IGRhdGVfb2ZfanNvbyBwcmV0IyMuZGF0ZVNpZ25hdHVyZTtcbiAgICAgIHRpdHVsYWlyZV9wcmV0ID0gdGl0dWxhaXJlX3ByZXRfb2ZfanNvbyBwcmV0IyMudGl0dWxhaXJlUHJldDtcbiAgICAgIGFjY29yZF9maW5hbmNlbWVudF9yZXByZXNlbnRhbnRfRXRhdF9vdXRyZV9tZXIgPVxuICAgICAgICBhY2NvcmRfZmluYW5jZW1lbnRfcmVwcmVzZW50YW50X2V0YXRfb3V0cmVfbWVyX29mX2pzb29cbiAgICAgICAgICBwcmV0IyMuYWNjb3JkRmluYW5jZW1lbnRSZXByZXNlbnRhbnRFdGF0T3V0cmVNZXJcbiAgICB9XG5cbmNsYXNzIHR5cGUgbG9nZW1lbnRfZm95ZXIgPVxuICBvYmplY3RcbiAgICBtZXRob2QgdHlwZVVzZXI6IHR5cGVfbG9nZW1lbnRfZm95ZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlbXBsaXRDb25kaXRpb25zUjgzMjIxOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb252ZW50aW9ubmVMaXZyZUlJSVRpdHJlVkNoYXBJSUk6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGNvbnZlbnRpb25uZVNlbG9uUmVnbGVzTWF5b3R0ZTogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvbnZlbnRpb25uZW1lbnQ6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29uc3RydWl0QXBwbGljYXRpb25Mb2kxOTU3MTJJSUk6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlZGV2YW5jZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyRDg0MjE2OlxuICAgICAgY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGJlbmVmaWNpYWlyZUFpZGVBZHVsdGVPdUVuZmFudEhhbmRpY2FwZXM6XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBsb2dlbWVudE1ldWJsZUQ4NDIyOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGxvZ2VtZW50X2ZveWVyX3RvX2pzb28gKGxvZ2VtZW50X2ZveWVyIDogTG9nZW1lbnRGb3llci50KVxuICAgIDogbG9nZW1lbnRfZm95ZXIgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgdHlwZVVzZXIgPSB0eXBlX2xvZ2VtZW50X2ZveWVyX3RvX2pzb28gbG9nZW1lbnRfZm95ZXIudHlwZV91c2VyXG4gICAgICB2YWwgcmVtcGxpdENvbmRpdGlvbnNSODMyMjEgPVxuICAgICAgICBKcy5ib29sIGxvZ2VtZW50X2ZveWVyLnJlbXBsaXRfY29uZGl0aW9uc19yODMyXzIxXG4gICAgICB2YWwgY29udmVudGlvbm5lTGl2cmVJSUlUaXRyZVZDaGFwSUlJID1cbiAgICAgICAgSnMuYm9vbCBsb2dlbWVudF9mb3llci5jb252ZW50aW9ubmVfbGl2cmVfSUlJX3RpdHJlX1ZfY2hhcF9JSUlcbiAgICAgIHZhbCBjb252ZW50aW9ubmVTZWxvblJlZ2xlc01heW90dGUgPVxuICAgICAgICBKcy5ib29sIGxvZ2VtZW50X2ZveWVyLmNvbnZlbnRpb25uZV9zZWxvbl9yZWdsZXNfbWF5b3R0ZVxuICAgICAgdmFsIGRhdGVDb252ZW50aW9ubmVtZW50ID1cbiAgICAgICAgZGF0ZV90b19qc29vIGxvZ2VtZW50X2ZveWVyLmRhdGVfY29udmVudGlvbm5lbWVudFxuICAgICAgdmFsIGNvbnN0cnVpdEFwcGxpY2F0aW9uTG9pMTk1NzEySUlJID1cbiAgICAgICAgSnMuYm9vbCBsb2dlbWVudF9mb3llci5jb25zdHJ1aXRfYXBwbGljYXRpb25fbG9pXzE5NTdfMTJfSUlJXG4gICAgICB2YWwgcmVkZXZhbmNlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGxvZ2VtZW50X2ZveWVyLnJlZGV2YW5jZVxuICAgICAgdmFsIGNhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJEODQyMTYgPVxuICAgICAgICBjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl90b19qc29vIGxvZ2VtZW50X2ZveWVyLmNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2XG4gICAgICB2YWwgYmVuZWZpY2lhaXJlQWlkZUFkdWx0ZU91RW5mYW50SGFuZGljYXBlcyA9XG4gICAgICAgIEpzLmJvb2wgbG9nZW1lbnRfZm95ZXIuYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzXG4gICAgICB2YWwgbG9nZW1lbnRNZXVibGVEODQyMiA9IEpzLmJvb2wgbG9nZW1lbnRfZm95ZXIubG9nZW1lbnRfbWV1YmxlX2Q4NDJfMlxuICAgICAgZW5kXG4gIGxldCBsb2dlbWVudF9mb3llcl9vZl9qc29vIChsb2dlbWVudF9mb3llciA6IGxvZ2VtZW50X2ZveWVyIEpzLnQpIDpcbiAgICBMb2dlbWVudEZveWVyLnQgPVxuICAgIHtcbiAgICAgIHR5cGVfdXNlciA9IHR5cGVfbG9nZW1lbnRfZm95ZXJfb2ZfanNvbyBsb2dlbWVudF9mb3llciMjLnR5cGVVc2VyO1xuICAgICAgcmVtcGxpdF9jb25kaXRpb25zX3I4MzJfMjEgPVxuICAgICAgICBKcy50b19ib29sIGxvZ2VtZW50X2ZveWVyIyMucmVtcGxpdENvbmRpdGlvbnNSODMyMjE7XG4gICAgICBjb252ZW50aW9ubmVfbGl2cmVfSUlJX3RpdHJlX1ZfY2hhcF9JSUkgPVxuICAgICAgICBKcy50b19ib29sIGxvZ2VtZW50X2ZveWVyIyMuY29udmVudGlvbm5lTGl2cmVJSUlUaXRyZVZDaGFwSUlJO1xuICAgICAgY29udmVudGlvbm5lX3NlbG9uX3JlZ2xlc19tYXlvdHRlID1cbiAgICAgICAgSnMudG9fYm9vbCBsb2dlbWVudF9mb3llciMjLmNvbnZlbnRpb25uZVNlbG9uUmVnbGVzTWF5b3R0ZTtcbiAgICAgIGRhdGVfY29udmVudGlvbm5lbWVudCA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyBsb2dlbWVudF9mb3llciMjLmRhdGVDb252ZW50aW9ubmVtZW50O1xuICAgICAgY29uc3RydWl0X2FwcGxpY2F0aW9uX2xvaV8xOTU3XzEyX0lJSSA9XG4gICAgICAgIEpzLnRvX2Jvb2wgbG9nZW1lbnRfZm95ZXIjIy5jb25zdHJ1aXRBcHBsaWNhdGlvbkxvaTE5NTcxMklJSTtcbiAgICAgIHJlZGV2YW5jZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBsb2dlbWVudF9mb3llciMjLnJlZGV2YW5jZTtcbiAgICAgIGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2ID1cbiAgICAgICAgY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfb2ZfanNvb1xuICAgICAgICAgIGxvZ2VtZW50X2ZveWVyIyMuY2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckQ4NDIxNjtcbiAgICAgIGJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlcyA9XG4gICAgICAgIEpzLnRvX2Jvb2wgbG9nZW1lbnRfZm95ZXIjIy5iZW5lZmljaWFpcmVBaWRlQWR1bHRlT3VFbmZhbnRIYW5kaWNhcGVzO1xuICAgICAgbG9nZW1lbnRfbWV1YmxlX2Q4NDJfMiA9XG4gICAgICAgIEpzLnRvX2Jvb2wgbG9nZW1lbnRfZm95ZXIjIy5sb2dlbWVudE1ldWJsZUQ4NDIyXG4gICAgfVxuXG5jbGFzcyB0eXBlIGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGlkZW50aWZpYW50OiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBvYmxpZ2F0aW9uU2NvbGFpcmU6XG4gICAgICBzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVtdW5lcmF0aW9uTWVuc3VlbGxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVEZU5haXNzYW5jZTogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBwcmlzZUVuQ2hhcmdlOiBwcmlzZV9lbl9jaGFyZ2VfZW5mYW50IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhRGVqYU91dmVydERyb2l0QXV4QWxsb2NhdGlvbnNGYW1pbGlhbGVzOlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYmVuZWZpY2llVGl0cmVQZXJzb25uZWxBaWRlUGVyc29ubmVsbGVMb2dlbWVudDpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfdG9fanNvbyAoZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNcbiAgICA6IEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy50KSA6IGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGlkZW50aWZpYW50ID1cbiAgICAgICAgaW50ZWdlcl90b19pbnQgZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMuaWRlbnRpZmlhbnRcbiAgICAgIHZhbCBvYmxpZ2F0aW9uU2NvbGFpcmUgPVxuICAgICAgICBzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZV90b19qc29vIGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLm9ibGlnYXRpb25fc2NvbGFpcmVcbiAgICAgIHZhbCByZW11bmVyYXRpb25NZW5zdWVsbGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMucmVtdW5lcmF0aW9uX21lbnN1ZWxsZVxuICAgICAgdmFsIGRhdGVEZU5haXNzYW5jZSA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy5kYXRlX2RlX25haXNzYW5jZVxuICAgICAgdmFsIHByaXNlRW5DaGFyZ2UgPVxuICAgICAgICBwcmlzZV9lbl9jaGFyZ2VfZW5mYW50X3RvX2pzb28gZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMucHJpc2VfZW5fY2hhcmdlXG4gICAgICB2YWwgYURlamFPdXZlcnREcm9pdEF1eEFsbG9jYXRpb25zRmFtaWxpYWxlcyA9XG4gICAgICAgIEpzLmJvb2wgZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICAgICAgdmFsIGJlbmVmaWNpZVRpdHJlUGVyc29ubmVsQWlkZVBlcnNvbm5lbGxlTG9nZW1lbnQgPVxuICAgICAgICBKcy5ib29sIGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLmJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudFxuICAgICAgZW5kXG4gIGxldCBlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vXG4gICAgKGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIDogZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgSnMudCkgOlxuICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy50ID1cbiAgICB7XG4gICAgICBpZGVudGlmaWFudCA9IGludGVnZXJfb2ZfaW50IGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIyMuaWRlbnRpZmlhbnQ7XG4gICAgICBvYmxpZ2F0aW9uX3Njb2xhaXJlID1cbiAgICAgICAgc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmVfb2ZfanNvb1xuICAgICAgICAgIGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIyMub2JsaWdhdGlvblNjb2xhaXJlO1xuICAgICAgcmVtdW5lcmF0aW9uX21lbnN1ZWxsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyMjLnJlbXVuZXJhdGlvbk1lbnN1ZWxsZTtcbiAgICAgIGRhdGVfZGVfbmFpc3NhbmNlID1cbiAgICAgICAgZGF0ZV9vZl9qc29vIGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIyMuZGF0ZURlTmFpc3NhbmNlO1xuICAgICAgcHJpc2VfZW5fY2hhcmdlID1cbiAgICAgICAgcHJpc2VfZW5fY2hhcmdlX2VuZmFudF9vZl9qc29vXG4gICAgICAgICAgZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMjIy5wcmlzZUVuQ2hhcmdlO1xuICAgICAgYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc1xuICAgICAgICAgICMjLmFEZWphT3V2ZXJ0RHJvaXRBdXhBbGxvY2F0aW9uc0ZhbWlsaWFsZXM7XG4gICAgICBiZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQgPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNcbiAgICAgICAgICAjIy5iZW5lZmljaWVUaXRyZVBlcnNvbm5lbEFpZGVQZXJzb25uZWxsZUxvZ2VtZW50XG4gICAgfVxuXG5jbGFzcyB0eXBlIHR5cGVfYmFpbGxldXIgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJCYWlsbGV1clNvY2lhbFwiXG4gICAgICAgIC0gXCJCYWlsbGV1clByaXZlQXZlY0NvbnZlbnRpb25uZW1lbnRTb2NpYWxcIlxuICAgICAgICAtIFwiQmFpbGxldXJQcml2ZVwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHR5cGVfYmFpbGxldXJfdG9fanNvbyA6IFR5cGVCYWlsbGV1ci50IC0+IHR5cGVfYmFpbGxldXIgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgQmFpbGxldXJTb2NpYWwgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJCYWlsbGV1clNvY2lhbFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKGNvbnZlbnRpb25fYmFpbGxldXJfc29jaWFsX3RvX2pzb28gYXJnKSlcbiAgICBlbmRcbiAgfCBCYWlsbGV1clByaXZlQXZlY0NvbnZlbnRpb25uZW1lbnRTb2NpYWwgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJCYWlsbGV1clByaXZlQXZlY0NvbnZlbnRpb25uZW1lbnRTb2NpYWxcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0IChjb252ZW50aW9uX2Ffbl9oX2FfdG9fanNvbyBhcmcpKVxuICAgIGVuZFxuICB8IEJhaWxsZXVyUHJpdmUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJCYWlsbGV1clByaXZlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCB0eXBlX2JhaWxsZXVyX29mX2pzb28gKHR5cGVfYmFpbGxldXIgOiB0eXBlX2JhaWxsZXVyIEpzLnQpXG4gIDogVHlwZUJhaWxsZXVyLnQgPVxuICBtYXRjaCB0eXBlX2JhaWxsZXVyIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiQmFpbGxldXJTb2NpYWxcIiAtPlxuICBUeXBlQmFpbGxldXIuQmFpbGxldXJTb2NpYWwgKGNvbnZlbnRpb25fYmFpbGxldXJfc29jaWFsX29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2UgdHlwZV9iYWlsbGV1ciMjLnBheWxvYWQpKVxuICB8IFwiQmFpbGxldXJQcml2ZUF2ZWNDb252ZW50aW9ubmVtZW50U29jaWFsXCIgLT5cbiAgVHlwZUJhaWxsZXVyLkJhaWxsZXVyUHJpdmVBdmVjQ29udmVudGlvbm5lbWVudFNvY2lhbCAoY29udmVudGlvbl9hX25faF9hX29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2UgdHlwZV9iYWlsbGV1ciMjLnBheWxvYWQpKVxuICB8IFwiQmFpbGxldXJQcml2ZVwiIC0+IFR5cGVCYWlsbGV1ci5CYWlsbGV1clByaXZlICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdUeXBlQmFpbGxldXIudCdcIiBjb25zKVxuXG5cbmNsYXNzIHR5cGUgbG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnMgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJOb25cIlxuICAgICAgICAtIFwiT3VpXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgbG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnNfdG9fanNvb1xuICA6IExvdWVPdVNvdXNMb3VlQURlc1RpZXJzLnQgLT4gbG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnMgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgTm9uIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTm9uXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgT3VpIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiT3VpXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAocGVyc29ubmVfc291c19sb2NhdGlvbl90b19qc29vIGFyZykpXG4gICAgZW5kXG5cbmxldCBsb3VlX291X3NvdXNfbG91ZV9hX2Rlc190aWVyc19vZl9qc29vXG4gIChsb3VlX291X3NvdXNfbG91ZV9hX2Rlc190aWVycyA6IGxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzIEpzLnQpXG4gIDogTG91ZU91U291c0xvdWVBRGVzVGllcnMudCA9XG4gIG1hdGNoIGxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiTm9uXCIgLT4gTG91ZU91U291c0xvdWVBRGVzVGllcnMuTm9uICgpXG4gIHwgXCJPdWlcIiAtPlxuICBMb3VlT3VTb3VzTG91ZUFEZXNUaWVycy5PdWkgKHBlcnNvbm5lX3NvdXNfbG9jYXRpb25fb2ZfanNvbyAoSnMuVW5zYWZlLmNvZXJjZSBsb3VlX291X3NvdXNfbG91ZV9hX2Rlc190aWVycyMjLnBheWxvYWQpKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnTG91ZU91U291c0xvdWVBRGVzVGllcnMudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgbmF0aW9uYWxpdGUgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJGcmFuY2Fpc2VcIlxuICAgICAgICAtIFwiRXRyYW5nZXJlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgbmF0aW9uYWxpdGVfdG9fanNvbyA6IE5hdGlvbmFsaXRlLnQgLT4gbmF0aW9uYWxpdGUgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgRnJhbmNhaXNlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRnJhbmNhaXNlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgRXRyYW5nZXJlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRXRyYW5nZXJlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoY29uZGl0aW9uc19ldHJhbmdlcnNfdG9fanNvbyBhcmcpKVxuICAgIGVuZFxuXG5sZXQgbmF0aW9uYWxpdGVfb2ZfanNvbyAobmF0aW9uYWxpdGUgOiBuYXRpb25hbGl0ZSBKcy50KSA6IE5hdGlvbmFsaXRlLnQgPVxuICBtYXRjaCBuYXRpb25hbGl0ZSMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIkZyYW5jYWlzZVwiIC0+IE5hdGlvbmFsaXRlLkZyYW5jYWlzZSAoKVxuICB8IFwiRXRyYW5nZXJlXCIgLT5cbiAgTmF0aW9uYWxpdGUuRXRyYW5nZXJlIChjb25kaXRpb25zX2V0cmFuZ2Vyc19vZl9qc29vIChKcy5VbnNhZmUuY29lcmNlIG5hdGlvbmFsaXRlIyMucGF5bG9hZCkpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdOYXRpb25hbGl0ZS50J1wiIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkNoYW5nZW1lbnRcIlxuICAgICAgICAtIFwiUGFzRGVDaGFuZ2VtZW50XCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfdG9fanNvb1xuICA6IENoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LnQgLT4gY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzQgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgQ2hhbmdlbWVudCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkNoYW5nZW1lbnRcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0IChpbmZvc19jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF90b19qc29vIGFyZykpXG4gICAgZW5kXG4gIHwgUGFzRGVDaGFuZ2VtZW50IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiUGFzRGVDaGFuZ2VtZW50XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF9vZl9qc29vXG4gIChjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNCA6IGNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80IEpzLnQpXG4gIDogQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQudCA9XG4gIG1hdGNoIGNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80IyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiQ2hhbmdlbWVudFwiIC0+XG4gIENoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LkNoYW5nZW1lbnQgKGluZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80X29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2UgY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzQjIy5wYXlsb2FkKSlcbiAgfCBcIlBhc0RlQ2hhbmdlbWVudFwiIC0+IENoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LlBhc0RlQ2hhbmdlbWVudCAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgaW5mb3JtYXRpb25zX3ByaW1lX2RlX2RlbWVuYWdlbWVudCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBub21icmVFbmZhbnRzQU5haXRyZUFwcmVzVHJvaXNpZW1lTW9pc0dyb3NzZXNzZTpcbiAgICAgIGludCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVOYWlzc2FuY2VUcm9pc2llbWVFbmZhbnRPdURlcm5pZXJTaVBsdXM6XG4gICAgICBkYXRlX25haXNzYW5jZV90cm9pc2llbWVfb3VfZGVybmllcl9wbHVzX2VuZmFudCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBpbmZvcm1hdGlvbnNfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X3RvX2pzb29cbiAgICAoaW5mb3JtYXRpb25zX3ByaW1lX2RlX2RlbWVuYWdlbWVudCA6IEluZm9ybWF0aW9uc1ByaW1lRGVEZW1lbmFnZW1lbnQudClcbiAgICA6IGluZm9ybWF0aW9uc19wcmltZV9kZV9kZW1lbmFnZW1lbnQgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbm9tYnJlRW5mYW50c0FOYWl0cmVBcHJlc1Ryb2lzaWVtZU1vaXNHcm9zc2Vzc2UgPVxuICAgICAgICBpbnRlZ2VyX3RvX2ludCBpbmZvcm1hdGlvbnNfcHJpbWVfZGVfZGVtZW5hZ2VtZW50Lm5vbWJyZV9lbmZhbnRzX2FfbmFpdHJlX2FwcmVzX3Ryb2lzaWVtZV9tb2lzX2dyb3NzZXNzZVxuICAgICAgdmFsIGRhdGVOYWlzc2FuY2VUcm9pc2llbWVFbmZhbnRPdURlcm5pZXJTaVBsdXMgPVxuICAgICAgICBkYXRlX25haXNzYW5jZV90cm9pc2llbWVfb3VfZGVybmllcl9wbHVzX2VuZmFudF90b19qc29vIGluZm9ybWF0aW9uc19wcmltZV9kZV9kZW1lbmFnZW1lbnQuZGF0ZV9uYWlzc2FuY2VfdHJvaXNpZW1lX2VuZmFudF9vdV9kZXJuaWVyX3NpX3BsdXNcbiAgICAgIGVuZFxuICBsZXQgaW5mb3JtYXRpb25zX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9vZl9qc29vXG4gICAgKGluZm9ybWF0aW9uc19wcmltZV9kZV9kZW1lbmFnZW1lbnRcbiAgICAgIDogaW5mb3JtYXRpb25zX3ByaW1lX2RlX2RlbWVuYWdlbWVudCBKcy50KSA6XG4gICAgSW5mb3JtYXRpb25zUHJpbWVEZURlbWVuYWdlbWVudC50ID1cbiAgICB7XG4gICAgICBub21icmVfZW5mYW50c19hX25haXRyZV9hcHJlc190cm9pc2llbWVfbW9pc19ncm9zc2Vzc2UgPVxuICAgICAgICBpbnRlZ2VyX29mX2ludFxuICAgICAgICAgIGluZm9ybWF0aW9uc19wcmltZV9kZV9kZW1lbmFnZW1lbnRcbiAgICAgICAgICAjIy5ub21icmVFbmZhbnRzQU5haXRyZUFwcmVzVHJvaXNpZW1lTW9pc0dyb3NzZXNzZTtcbiAgICAgIGRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9lbmZhbnRfb3VfZGVybmllcl9zaV9wbHVzID1cbiAgICAgICAgZGF0ZV9uYWlzc2FuY2VfdHJvaXNpZW1lX291X2Rlcm5pZXJfcGx1c19lbmZhbnRfb2ZfanNvb1xuICAgICAgICAgIGluZm9ybWF0aW9uc19wcmltZV9kZV9kZW1lbmFnZW1lbnRcbiAgICAgICAgICAjIy5kYXRlTmFpc3NhbmNlVHJvaXNpZW1lRW5mYW50T3VEZXJuaWVyU2lQbHVzXG4gICAgfVxuXG5jbGFzcyB0eXBlIHByb3ByaWV0YWlyZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBtZW5zdWFsaXRlUHJpbmNpcGFsZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjaGFyZ2VzTWVuc3VlbGxlc1ByZXQ6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUVudHJlZUxvZ2VtZW50OiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHR5cGVUcmF2YXV4TG9nZW1lbnREODMyMTU6XG4gICAgICB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1OlxuICAgICAgdHlwZV90cmF2YXV4X2xvZ2VtZW50X3I4NDJfNSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbG9jYWxIYWJpdGVQcmVtaWVyZUZvaXNCZW5lZmljaWFpcmU6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGNvcHJvcHJpZXRlOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBzaXR1YXRpb25SODIyMTExMzE3OiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhbmNpZW5uZXRlTG9nZW1lbnQ6IG5ldWZfb3VfYW5jaWVuIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBwcmV0OiBwcmV0IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBvcGVyYXRpb25zTG9nZW1lbnRFdm9sdXRpZnNTb2NpYXV4QWNjZXNzaW9uUHJvcHJpZXRlQWlkZWVFdGF0OlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBwcm9wcmlldGFpcmVfdG9fanNvbyAocHJvcHJpZXRhaXJlIDogUHJvcHJpZXRhaXJlLnQpXG4gICAgOiBwcm9wcmlldGFpcmUgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbWVuc3VhbGl0ZVByaW5jaXBhbGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgcHJvcHJpZXRhaXJlLm1lbnN1YWxpdGVfcHJpbmNpcGFsZVxuICAgICAgdmFsIGNoYXJnZXNNZW5zdWVsbGVzUHJldCA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBwcm9wcmlldGFpcmUuY2hhcmdlc19tZW5zdWVsbGVzX3ByZXRcbiAgICAgIHZhbCBkYXRlRW50cmVlTG9nZW1lbnQgPSBkYXRlX3RvX2pzb28gcHJvcHJpZXRhaXJlLmRhdGVfZW50cmVlX2xvZ2VtZW50XG4gICAgICB2YWwgdHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNSA9XG4gICAgICAgIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1X3RvX2pzb28gcHJvcHJpZXRhaXJlLnR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1XG4gICAgICB2YWwgdHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1ID1cbiAgICAgICAgdHlwZV90cmF2YXV4X2xvZ2VtZW50X3I4NDJfNV90b19qc29vIHByb3ByaWV0YWlyZS50eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81XG4gICAgICB2YWwgbG9jYWxIYWJpdGVQcmVtaWVyZUZvaXNCZW5lZmljaWFpcmUgPVxuICAgICAgICBKcy5ib29sIHByb3ByaWV0YWlyZS5sb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW5lZmljaWFpcmVcbiAgICAgIHZhbCBjb3Byb3ByaWV0ZSA9IEpzLmJvb2wgcHJvcHJpZXRhaXJlLmNvcHJvcHJpZXRlXG4gICAgICB2YWwgc2l0dWF0aW9uUjgyMjExMTMxNyA9IEpzLmJvb2wgcHJvcHJpZXRhaXJlLnNpdHVhdGlvbl9yODIyXzExXzEzXzE3XG4gICAgICB2YWwgYW5jaWVubmV0ZUxvZ2VtZW50ID1cbiAgICAgICAgbmV1Zl9vdV9hbmNpZW5fdG9fanNvbyBwcm9wcmlldGFpcmUuYW5jaWVubmV0ZV9sb2dlbWVudFxuICAgICAgdmFsIHByZXQgPSBwcmV0X3RvX2pzb28gcHJvcHJpZXRhaXJlLnByZXRcbiAgICAgIHZhbCBvcGVyYXRpb25zTG9nZW1lbnRFdm9sdXRpZnNTb2NpYXV4QWNjZXNzaW9uUHJvcHJpZXRlQWlkZWVFdGF0ID1cbiAgICAgICAgSnMuYm9vbCBwcm9wcmlldGFpcmUub3BlcmF0aW9uc19sb2dlbWVudF9ldm9sdXRpZnNfc29jaWF1eF9hY2Nlc3Npb25fcHJvcHJpZXRlX2FpZGVlX0V0YXRcbiAgICAgIGVuZFxuICBsZXQgcHJvcHJpZXRhaXJlX29mX2pzb28gKHByb3ByaWV0YWlyZSA6IHByb3ByaWV0YWlyZSBKcy50KSA6XG4gICAgUHJvcHJpZXRhaXJlLnQgPVxuICAgIHtcbiAgICAgIG1lbnN1YWxpdGVfcHJpbmNpcGFsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBwcm9wcmlldGFpcmUjIy5tZW5zdWFsaXRlUHJpbmNpcGFsZTtcbiAgICAgIGNoYXJnZXNfbWVuc3VlbGxlc19wcmV0ID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIHByb3ByaWV0YWlyZSMjLmNoYXJnZXNNZW5zdWVsbGVzUHJldDtcbiAgICAgIGRhdGVfZW50cmVlX2xvZ2VtZW50ID0gZGF0ZV9vZl9qc29vIHByb3ByaWV0YWlyZSMjLmRhdGVFbnRyZWVMb2dlbWVudDtcbiAgICAgIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1ID1cbiAgICAgICAgdHlwZV90cmF2YXV4X2xvZ2VtZW50X2Q4MzJfMTVfb2ZfanNvb1xuICAgICAgICAgIHByb3ByaWV0YWlyZSMjLnR5cGVUcmF2YXV4TG9nZW1lbnREODMyMTU7XG4gICAgICB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81ID1cbiAgICAgICAgdHlwZV90cmF2YXV4X2xvZ2VtZW50X3I4NDJfNV9vZl9qc29vXG4gICAgICAgICAgcHJvcHJpZXRhaXJlIyMudHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1O1xuICAgICAgbG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuZWZpY2lhaXJlID1cbiAgICAgICAgSnMudG9fYm9vbCBwcm9wcmlldGFpcmUjIy5sb2NhbEhhYml0ZVByZW1pZXJlRm9pc0JlbmVmaWNpYWlyZTtcbiAgICAgIGNvcHJvcHJpZXRlID0gSnMudG9fYm9vbCBwcm9wcmlldGFpcmUjIy5jb3Byb3ByaWV0ZTtcbiAgICAgIHNpdHVhdGlvbl9yODIyXzExXzEzXzE3ID0gSnMudG9fYm9vbCBwcm9wcmlldGFpcmUjIy5zaXR1YXRpb25SODIyMTExMzE3O1xuICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudCA9XG4gICAgICAgIG5ldWZfb3VfYW5jaWVuX29mX2pzb28gcHJvcHJpZXRhaXJlIyMuYW5jaWVubmV0ZUxvZ2VtZW50O1xuICAgICAgcHJldCA9IHByZXRfb2ZfanNvbyBwcm9wcmlldGFpcmUjIy5wcmV0O1xuICAgICAgb3BlcmF0aW9uc19sb2dlbWVudF9ldm9sdXRpZnNfc29jaWF1eF9hY2Nlc3Npb25fcHJvcHJpZXRlX2FpZGVlX0V0YXQgPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgcHJvcHJpZXRhaXJlXG4gICAgICAgICAgIyMub3BlcmF0aW9uc0xvZ2VtZW50RXZvbHV0aWZzU29jaWF1eEFjY2Vzc2lvblByb3ByaWV0ZUFpZGVlRXRhdFxuICAgIH1cblxuY2xhc3MgdHlwZSBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGFnZUw1MTIzMjogUnVudGltZV9qc29vLlJ1bnRpbWUuZHVyYXRpb24gSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRyb2l0T3V2ZXJ0OlxuICAgICAgKHVuaXQsICBlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyBKcy50IC0+IGJvb2wgSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gICAgbWV0aG9kIGNvbmRpdGlvbnNIb3JzQWdlOlxuICAgICAgKHVuaXQsICBlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyBKcy50IC0+IGJvb2wgSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gICAgbWV0aG9kIHJlZ2ltZU91dHJlTWVyTDc1MTE6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc190b19qc29vXG4gICAgKGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgOiBFbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcy50KVxuICAgIDogZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBhZ2VMNTEyMzIgPVxuICAgICAgICBkdXJhdGlvbl90b19qc29vIGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMuYWdlX2w1MTJfM18yXG4gICAgICBtZXRob2QgZHJvaXRPdXZlcnQgPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIEpzLnQpIC0+XG4gICAgICAgICAgSnMuYm9vbCAoZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy5kcm9pdF9vdXZlcnQgKGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX29mX2pzb29cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb25faW5wdXQwKSkpXG4gICAgICBtZXRob2QgY29uZGl0aW9uc0hvcnNBZ2UgPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIEpzLnQpIC0+XG4gICAgICAgICAgSnMuYm9vbCAoZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy5jb25kaXRpb25zX2hvcnNfYWdlIFxuICAgICAgICAgIChlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vXG4gICAgICAgICAgICBmdW5jdGlvbl9pbnB1dDApKSlcbiAgICAgIHZhbCByZWdpbWVPdXRyZU1lckw3NTExID1cbiAgICAgICAgSnMuYm9vbCBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLnJlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xXG4gICAgICBlbmRcbiAgbGV0IGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfb2ZfanNvb1xuICAgIChlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzXG4gICAgICA6IGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgSnMudCkgOlxuICAgIEVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQgPVxuICAgIHtcbiAgICAgIGFnZV9sNTEyXzNfMiA9XG4gICAgICAgIGR1cmF0aW9uX29mX2pzb28gZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyMjLmFnZUw1MTIzMjtcbiAgICAgIGRyb2l0X291dmVydCA9IGZhaWx3aXRoIFwiVGhlIGZ1bmN0aW9uICdkcm9pdF9vdXZlcnQnIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIjtcbiAgICAgIGNvbmRpdGlvbnNfaG9yc19hZ2UgPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAnY29uZGl0aW9uc19ob3JzX2FnZScgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiO1xuICAgICAgcmVnaW1lX291dHJlX21lcl9sNzUxXzEgPVxuICAgICAgICBKcy50b19ib29sIGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMjIy5yZWdpbWVPdXRyZU1lckw3NTExXG4gICAgfVxuXG5jbGFzcyB0eXBlIGRlbWFuZGV1ciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBkYXRlTmFpc3NhbmNlOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG5hdGlvbmFsaXRlOiBuYXRpb25hbGl0ZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcGF0cmltb2luZTogcGF0cmltb2luZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcGVyc29ubmVIZWJlcmdlZUNlbnRyZVNvaW5MTDE2MjIyM1NlY3VyaXRlU29jaWFsZTpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGVzdE5vblNhbGFyaWVBZ3JpY29sZUw3ODE4TDc4MTQ2Q29kZVJ1cmFsOlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbWFnaXN0cmF0Rm9uY3Rpb25uYWlyZUNlbnRyZUludGVyZXRzTWF0ZXJpZWxzRmFtaWxpYXV4SG9yc01heW90dGU6XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGRlbWFuZGV1cl90b19qc29vIChkZW1hbmRldXIgOiBEZW1hbmRldXIudCkgOiBkZW1hbmRldXIgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZGF0ZU5haXNzYW5jZSA9IGRhdGVfdG9fanNvbyBkZW1hbmRldXIuZGF0ZV9uYWlzc2FuY2VcbiAgICAgIHZhbCBuYXRpb25hbGl0ZSA9IG5hdGlvbmFsaXRlX3RvX2pzb28gZGVtYW5kZXVyLm5hdGlvbmFsaXRlXG4gICAgICB2YWwgcGF0cmltb2luZSA9IHBhdHJpbW9pbmVfdG9fanNvbyBkZW1hbmRldXIucGF0cmltb2luZVxuICAgICAgdmFsIHBlcnNvbm5lSGViZXJnZWVDZW50cmVTb2luTEwxNjIyMjNTZWN1cml0ZVNvY2lhbGUgPVxuICAgICAgICBKcy5ib29sIGRlbWFuZGV1ci5wZXJzb25uZV9oZWJlcmdlZV9jZW50cmVfc29pbl9sX0wxNjJfMjJfM19zZWN1cml0ZV9zb2NpYWxlXG4gICAgICB2YWwgZXN0Tm9uU2FsYXJpZUFncmljb2xlTDc4MThMNzgxNDZDb2RlUnVyYWwgPVxuICAgICAgICBKcy5ib29sIGRlbWFuZGV1ci5lc3Rfbm9uX3NhbGFyaWVfYWdyaWNvbGVfbDc4MV84X2xfNzgxXzQ2X2NvZGVfcnVyYWxcbiAgICAgIHZhbCBtYWdpc3RyYXRGb25jdGlvbm5haXJlQ2VudHJlSW50ZXJldHNNYXRlcmllbHNGYW1pbGlhdXhIb3JzTWF5b3R0ZSA9XG4gICAgICAgIEpzLmJvb2wgZGVtYW5kZXVyLm1hZ2lzdHJhdF9mb25jdGlvbm5haXJlX2NlbnRyZV9pbnRlcmV0c19tYXRlcmllbHNfZmFtaWxpYXV4X2hvcnNfbWF5b3R0ZVxuICAgICAgZW5kXG4gIGxldCBkZW1hbmRldXJfb2ZfanNvbyAoZGVtYW5kZXVyIDogZGVtYW5kZXVyIEpzLnQpIDogRGVtYW5kZXVyLnQgPVxuICAgIHtcbiAgICAgIGRhdGVfbmFpc3NhbmNlID0gZGF0ZV9vZl9qc29vIGRlbWFuZGV1ciMjLmRhdGVOYWlzc2FuY2U7XG4gICAgICBuYXRpb25hbGl0ZSA9IG5hdGlvbmFsaXRlX29mX2pzb28gZGVtYW5kZXVyIyMubmF0aW9uYWxpdGU7XG4gICAgICBwYXRyaW1vaW5lID0gcGF0cmltb2luZV9vZl9qc29vIGRlbWFuZGV1ciMjLnBhdHJpbW9pbmU7XG4gICAgICBwZXJzb25uZV9oZWJlcmdlZV9jZW50cmVfc29pbl9sX0wxNjJfMjJfM19zZWN1cml0ZV9zb2NpYWxlID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGRlbWFuZGV1ciMjLnBlcnNvbm5lSGViZXJnZWVDZW50cmVTb2luTEwxNjIyMjNTZWN1cml0ZVNvY2lhbGU7XG4gICAgICBlc3Rfbm9uX3NhbGFyaWVfYWdyaWNvbGVfbDc4MV84X2xfNzgxXzQ2X2NvZGVfcnVyYWwgPVxuICAgICAgICBKcy50b19ib29sIGRlbWFuZGV1ciMjLmVzdE5vblNhbGFyaWVBZ3JpY29sZUw3ODE4TDc4MTQ2Q29kZVJ1cmFsO1xuICAgICAgbWFnaXN0cmF0X2ZvbmN0aW9ubmFpcmVfY2VudHJlX2ludGVyZXRzX21hdGVyaWVsc19mYW1pbGlhdXhfaG9yc19tYXlvdHRlID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGRlbWFuZGV1clxuICAgICAgICAgICMjLm1hZ2lzdHJhdEZvbmN0aW9ubmFpcmVDZW50cmVJbnRlcmV0c01hdGVyaWVsc0ZhbWlsaWF1eEhvcnNNYXlvdHRlXG4gICAgfVxuXG5jbGFzcyB0eXBlIGVuZmFudF9hX2NoYXJnZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBpZGVudGlmaWFudDogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbmF0aW9uYWxpdGU6IG5hdGlvbmFsaXRlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBiZW5lZmljaWVUaXRyZVBlcnNvbm5lbEFpZGVQZXJzb25uZWxsZUxvZ2VtZW50OlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYURlamFPdXZlcnREcm9pdEF1eEFsbG9jYXRpb25zRmFtaWxpYWxlczpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVEZU5haXNzYW5jZTogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZW11bmVyYXRpb25NZW5zdWVsbGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgb2JsaWdhdGlvblNjb2xhaXJlOlxuICAgICAgc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHNpdHVhdGlvbkdhcmRlQWx0ZXJuZWU6XG4gICAgICBzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGV0dWRlc0FwcHJlbnRpc3NhZ2VTdGFnZUZvcm1hdGlvblByb0ltcG9zc2liaWxpdGVUcmF2YWlsOlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBlbmZhbnRfYV9jaGFyZ2VfdG9fanNvbyAoZW5mYW50X2FfY2hhcmdlIDogRW5mYW50QUNoYXJnZS50KVxuICAgIDogZW5mYW50X2FfY2hhcmdlIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGlkZW50aWZpYW50ID0gaW50ZWdlcl90b19pbnQgZW5mYW50X2FfY2hhcmdlLmlkZW50aWZpYW50XG4gICAgICB2YWwgbmF0aW9uYWxpdGUgPSBuYXRpb25hbGl0ZV90b19qc29vIGVuZmFudF9hX2NoYXJnZS5uYXRpb25hbGl0ZVxuICAgICAgdmFsIGJlbmVmaWNpZVRpdHJlUGVyc29ubmVsQWlkZVBlcnNvbm5lbGxlTG9nZW1lbnQgPVxuICAgICAgICBKcy5ib29sIGVuZmFudF9hX2NoYXJnZS5iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgICAgIHZhbCBhRGVqYU91dmVydERyb2l0QXV4QWxsb2NhdGlvbnNGYW1pbGlhbGVzID1cbiAgICAgICAgSnMuYm9vbCBlbmZhbnRfYV9jaGFyZ2UuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICAgICAgdmFsIGRhdGVEZU5haXNzYW5jZSA9IGRhdGVfdG9fanNvbyBlbmZhbnRfYV9jaGFyZ2UuZGF0ZV9kZV9uYWlzc2FuY2VcbiAgICAgIHZhbCByZW11bmVyYXRpb25NZW5zdWVsbGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgZW5mYW50X2FfY2hhcmdlLnJlbXVuZXJhdGlvbl9tZW5zdWVsbGVcbiAgICAgIHZhbCBvYmxpZ2F0aW9uU2NvbGFpcmUgPVxuICAgICAgICBzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZV90b19qc29vIGVuZmFudF9hX2NoYXJnZS5vYmxpZ2F0aW9uX3Njb2xhaXJlXG4gICAgICB2YWwgc2l0dWF0aW9uR2FyZGVBbHRlcm5lZSA9XG4gICAgICAgIHNpdHVhdGlvbl9nYXJkZV9hbHRlcm5lZV90b19qc29vIGVuZmFudF9hX2NoYXJnZS5zaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWVcbiAgICAgIHZhbCBldHVkZXNBcHByZW50aXNzYWdlU3RhZ2VGb3JtYXRpb25Qcm9JbXBvc3NpYmlsaXRlVHJhdmFpbCA9XG4gICAgICAgIEpzLmJvb2wgZW5mYW50X2FfY2hhcmdlLmV0dWRlc19hcHByZW50aXNzYWdlX3N0YWdlX2Zvcm1hdGlvbl9wcm9faW1wb3NzaWJpbGl0ZV90cmF2YWlsXG4gICAgICBlbmRcbiAgbGV0IGVuZmFudF9hX2NoYXJnZV9vZl9qc29vIChlbmZhbnRfYV9jaGFyZ2UgOiBlbmZhbnRfYV9jaGFyZ2UgSnMudCkgOlxuICAgIEVuZmFudEFDaGFyZ2UudCA9XG4gICAge1xuICAgICAgaWRlbnRpZmlhbnQgPSBpbnRlZ2VyX29mX2ludCBlbmZhbnRfYV9jaGFyZ2UjIy5pZGVudGlmaWFudDtcbiAgICAgIG5hdGlvbmFsaXRlID0gbmF0aW9uYWxpdGVfb2ZfanNvbyBlbmZhbnRfYV9jaGFyZ2UjIy5uYXRpb25hbGl0ZTtcbiAgICAgIGJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudCA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBlbmZhbnRfYV9jaGFyZ2UjIy5iZW5lZmljaWVUaXRyZVBlcnNvbm5lbEFpZGVQZXJzb25uZWxsZUxvZ2VtZW50O1xuICAgICAgYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyA9XG4gICAgICAgIEpzLnRvX2Jvb2wgZW5mYW50X2FfY2hhcmdlIyMuYURlamFPdXZlcnREcm9pdEF1eEFsbG9jYXRpb25zRmFtaWxpYWxlcztcbiAgICAgIGRhdGVfZGVfbmFpc3NhbmNlID0gZGF0ZV9vZl9qc29vIGVuZmFudF9hX2NoYXJnZSMjLmRhdGVEZU5haXNzYW5jZTtcbiAgICAgIHJlbXVuZXJhdGlvbl9tZW5zdWVsbGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgZW5mYW50X2FfY2hhcmdlIyMucmVtdW5lcmF0aW9uTWVuc3VlbGxlO1xuICAgICAgb2JsaWdhdGlvbl9zY29sYWlyZSA9XG4gICAgICAgIHNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlX29mX2pzb29cbiAgICAgICAgICBlbmZhbnRfYV9jaGFyZ2UjIy5vYmxpZ2F0aW9uU2NvbGFpcmU7XG4gICAgICBzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWUgPVxuICAgICAgICBzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWVfb2ZfanNvb1xuICAgICAgICAgIGVuZmFudF9hX2NoYXJnZSMjLnNpdHVhdGlvbkdhcmRlQWx0ZXJuZWU7XG4gICAgICBldHVkZXNfYXBwcmVudGlzc2FnZV9zdGFnZV9mb3JtYXRpb25fcHJvX2ltcG9zc2liaWxpdGVfdHJhdmFpbCA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBlbmZhbnRfYV9jaGFyZ2VcbiAgICAgICAgICAjIy5ldHVkZXNBcHByZW50aXNzYWdlU3RhZ2VGb3JtYXRpb25Qcm9JbXBvc3NpYmlsaXRlVHJhdmFpbFxuICAgIH1cblxuY2xhc3MgdHlwZSBsb2NhdGlvbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBiYWlsbGV1cjogdHlwZV9iYWlsbGV1ciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbG95ZXJQcmluY2lwYWw6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYmVuZWZpY2lhaXJlQWlkZUFkdWx0ZU91RW5mYW50SGFuZGljYXBlczpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGxvZ2VtZW50RXN0Q2hhbWJyZTogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29sb2NhdGlvbjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYWdlZXNPdUhhbmRpY2FwQWR1bHRlc0hlYmVyZ2Vlc09uZXJldXhQYXJ0aWN1bGllcnM6XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBsb2dlbWVudE1ldWJsZUQ4NDIyOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjaGFuZ2VtZW50TG9nZW1lbnREODQyNDpcbiAgICAgIGNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGxvY2F0aW9uX3RvX2pzb28gKGxvY2F0aW9uIDogTG9jYXRpb24udCkgOiBsb2NhdGlvbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBiYWlsbGV1ciA9IHR5cGVfYmFpbGxldXJfdG9fanNvbyBsb2NhdGlvbi5iYWlsbGV1clxuICAgICAgdmFsIGxveWVyUHJpbmNpcGFsID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGxvY2F0aW9uLmxveWVyX3ByaW5jaXBhbFxuICAgICAgdmFsIGJlbmVmaWNpYWlyZUFpZGVBZHVsdGVPdUVuZmFudEhhbmRpY2FwZXMgPVxuICAgICAgICBKcy5ib29sIGxvY2F0aW9uLmJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlc1xuICAgICAgdmFsIGxvZ2VtZW50RXN0Q2hhbWJyZSA9IEpzLmJvb2wgbG9jYXRpb24ubG9nZW1lbnRfZXN0X2NoYW1icmVcbiAgICAgIHZhbCBjb2xvY2F0aW9uID0gSnMuYm9vbCBsb2NhdGlvbi5jb2xvY2F0aW9uXG4gICAgICB2YWwgYWdlZXNPdUhhbmRpY2FwQWR1bHRlc0hlYmVyZ2Vlc09uZXJldXhQYXJ0aWN1bGllcnMgPVxuICAgICAgICBKcy5ib29sIGxvY2F0aW9uLmFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzXG4gICAgICB2YWwgbG9nZW1lbnRNZXVibGVEODQyMiA9IEpzLmJvb2wgbG9jYXRpb24ubG9nZW1lbnRfbWV1YmxlX2Q4NDJfMlxuICAgICAgdmFsIGNoYW5nZW1lbnRMb2dlbWVudEQ4NDI0ID1cbiAgICAgICAgY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfdG9fanNvbyBsb2NhdGlvbi5jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNFxuICAgICAgZW5kXG4gIGxldCBsb2NhdGlvbl9vZl9qc29vIChsb2NhdGlvbiA6IGxvY2F0aW9uIEpzLnQpIDogTG9jYXRpb24udCA9XG4gICAge1xuICAgICAgYmFpbGxldXIgPSB0eXBlX2JhaWxsZXVyX29mX2pzb28gbG9jYXRpb24jIy5iYWlsbGV1cjtcbiAgICAgIGxveWVyX3ByaW5jaXBhbCA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBsb2NhdGlvbiMjLmxveWVyUHJpbmNpcGFsO1xuICAgICAgYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzID1cbiAgICAgICAgSnMudG9fYm9vbCBsb2NhdGlvbiMjLmJlbmVmaWNpYWlyZUFpZGVBZHVsdGVPdUVuZmFudEhhbmRpY2FwZXM7XG4gICAgICBsb2dlbWVudF9lc3RfY2hhbWJyZSA9IEpzLnRvX2Jvb2wgbG9jYXRpb24jIy5sb2dlbWVudEVzdENoYW1icmU7XG4gICAgICBjb2xvY2F0aW9uID0gSnMudG9fYm9vbCBsb2NhdGlvbiMjLmNvbG9jYXRpb247XG4gICAgICBhZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVycyA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBsb2NhdGlvbiMjLmFnZWVzT3VIYW5kaWNhcEFkdWx0ZXNIZWJlcmdlZXNPbmVyZXV4UGFydGljdWxpZXJzO1xuICAgICAgbG9nZW1lbnRfbWV1YmxlX2Q4NDJfMiA9IEpzLnRvX2Jvb2wgbG9jYXRpb24jIy5sb2dlbWVudE1ldWJsZUQ4NDIyO1xuICAgICAgY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzQgPVxuICAgICAgICBjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF9vZl9qc29vIGxvY2F0aW9uIyMuY2hhbmdlbWVudExvZ2VtZW50RDg0MjRcbiAgICB9XG5cbmNsYXNzIHR5cGUgcGVyc29ubmVfYV9jaGFyZ2UgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJFbmZhbnRBQ2hhcmdlXCJcbiAgICAgICAgLSBcIkF1dHJlUGVyc29ubmVBQ2hhcmdlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgcGVyc29ubmVfYV9jaGFyZ2VfdG9fanNvbyA6IFBlcnNvbm5lQUNoYXJnZS50IC0+IHBlcnNvbm5lX2FfY2hhcmdlIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IEVuZmFudEFDaGFyZ2UgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJFbmZhbnRBQ2hhcmdlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoZW5mYW50X2FfY2hhcmdlX3RvX2pzb28gYXJnKSlcbiAgICBlbmRcbiAgfCBBdXRyZVBlcnNvbm5lQUNoYXJnZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkF1dHJlUGVyc29ubmVBQ2hhcmdlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2VfdG9fanNvbyBhcmcpKVxuICAgIGVuZFxuXG5sZXQgcGVyc29ubmVfYV9jaGFyZ2Vfb2ZfanNvbyAocGVyc29ubmVfYV9jaGFyZ2UgOiBwZXJzb25uZV9hX2NoYXJnZSBKcy50KVxuICA6IFBlcnNvbm5lQUNoYXJnZS50ID1cbiAgbWF0Y2ggcGVyc29ubmVfYV9jaGFyZ2UjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJFbmZhbnRBQ2hhcmdlXCIgLT5cbiAgUGVyc29ubmVBQ2hhcmdlLkVuZmFudEFDaGFyZ2UgKGVuZmFudF9hX2NoYXJnZV9vZl9qc29vIChKcy5VbnNhZmUuY29lcmNlIHBlcnNvbm5lX2FfY2hhcmdlIyMucGF5bG9hZCkpXG4gIHwgXCJBdXRyZVBlcnNvbm5lQUNoYXJnZVwiIC0+XG4gIFBlcnNvbm5lQUNoYXJnZS5BdXRyZVBlcnNvbm5lQUNoYXJnZSAoYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2Vfb2ZfanNvbyAoSnMuVW5zYWZlLmNvZXJjZSBwZXJzb25uZV9hX2NoYXJnZSMjLnBheWxvYWQpKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnUGVyc29ubmVBQ2hhcmdlLnQnXCIgY29ucylcblxuXG5jbGFzcyB0eXBlIGNhdGVnb3JpZV9jYWxjdWxfYV9wX2wgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJMb2NhdGlvblwiXG4gICAgICAgIC0gXCJBY2Nlc3Npb25Qcm9wcmlldGVcIlxuICAgICAgICAtIFwiTG9nZW1lbnRGb3llclwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IGNhdGVnb3JpZV9jYWxjdWxfYV9wX2xfdG9fanNvb1xuICA6IENhdGVnb3JpZUNhbGN1bEFQTC50IC0+IGNhdGVnb3JpZV9jYWxjdWxfYV9wX2wgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgTG9jYXRpb24gYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJMb2NhdGlvblwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKGxvY2F0aW9uX3RvX2pzb28gYXJnKSlcbiAgICBlbmRcbiAgfCBBY2Nlc3Npb25Qcm9wcmlldGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBY2Nlc3Npb25Qcm9wcmlldGVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0IChwcm9wcmlldGFpcmVfdG9fanNvbyBhcmcpKVxuICAgIGVuZFxuICB8IExvZ2VtZW50Rm95ZXIgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJMb2dlbWVudEZveWVyXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAobG9nZW1lbnRfZm95ZXJfdG9fanNvbyBhcmcpKVxuICAgIGVuZFxuXG5sZXQgY2F0ZWdvcmllX2NhbGN1bF9hX3BfbF9vZl9qc29vXG4gIChjYXRlZ29yaWVfY2FsY3VsX2FfcF9sIDogY2F0ZWdvcmllX2NhbGN1bF9hX3BfbCBKcy50KVxuICA6IENhdGVnb3JpZUNhbGN1bEFQTC50ID1cbiAgbWF0Y2ggY2F0ZWdvcmllX2NhbGN1bF9hX3BfbCMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIkxvY2F0aW9uXCIgLT5cbiAgQ2F0ZWdvcmllQ2FsY3VsQVBMLkxvY2F0aW9uIChsb2NhdGlvbl9vZl9qc29vIChKcy5VbnNhZmUuY29lcmNlIGNhdGVnb3JpZV9jYWxjdWxfYV9wX2wjIy5wYXlsb2FkKSlcbiAgfCBcIkFjY2Vzc2lvblByb3ByaWV0ZVwiIC0+XG4gIENhdGVnb3JpZUNhbGN1bEFQTC5BY2Nlc3Npb25Qcm9wcmlldGUgKHByb3ByaWV0YWlyZV9vZl9qc29vIChKcy5VbnNhZmUuY29lcmNlIGNhdGVnb3JpZV9jYWxjdWxfYV9wX2wjIy5wYXlsb2FkKSlcbiAgfCBcIkxvZ2VtZW50Rm95ZXJcIiAtPlxuICBDYXRlZ29yaWVDYWxjdWxBUEwuTG9nZW1lbnRGb3llciAobG9nZW1lbnRfZm95ZXJfb2ZfanNvbyAoSnMuVW5zYWZlLmNvZXJjZSBjYXRlZ29yaWVfY2FsY3VsX2FfcF9sIyMucGF5bG9hZCkpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdDYXRlZ29yaWVDYWxjdWxBUEwudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgbW9kZV9vY2N1cGF0aW9uID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiTG9jYXRhaXJlXCJcbiAgICAgICAgLSBcIlJlc2lkZW50TG9nZW1lbnRGb3llclwiXG4gICAgICAgIC0gXCJBY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uXCJcbiAgICAgICAgLSBcIlNvdXNMb2NhdGFpcmVcIlxuICAgICAgICAtIFwiTG9jYXRpb25BY2Nlc3Npb25cIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBtb2RlX29jY3VwYXRpb25fdG9fanNvbyA6IE1vZGVPY2N1cGF0aW9uLnQgLT4gbW9kZV9vY2N1cGF0aW9uIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IExvY2F0YWlyZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkxvY2F0YWlyZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKGxvY2F0aW9uX3RvX2pzb28gYXJnKSlcbiAgICBlbmRcbiAgfCBSZXNpZGVudExvZ2VtZW50Rm95ZXIgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJSZXNpZGVudExvZ2VtZW50Rm95ZXJcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0IChsb2dlbWVudF9mb3llcl90b19qc29vIGFyZykpXG4gICAgZW5kXG4gIHwgQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFjY2Vzc2lvblByb3ByaWV0ZUxvY2FsVXNhZ2VFeGNsdXNpZkhhYml0YXRpb25cIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0IChwcm9wcmlldGFpcmVfdG9fanNvbyBhcmcpKVxuICAgIGVuZFxuICB8IFNvdXNMb2NhdGFpcmUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJTb3VzTG9jYXRhaXJlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAobG9jYXRpb25fdG9fanNvbyBhcmcpKVxuICAgIGVuZFxuICB8IExvY2F0aW9uQWNjZXNzaW9uIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTG9jYXRpb25BY2Nlc3Npb25cIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0IChwcm9wcmlldGFpcmVfdG9fanNvbyBhcmcpKVxuICAgIGVuZFxuXG5sZXQgbW9kZV9vY2N1cGF0aW9uX29mX2pzb28gKG1vZGVfb2NjdXBhdGlvbiA6IG1vZGVfb2NjdXBhdGlvbiBKcy50KVxuICA6IE1vZGVPY2N1cGF0aW9uLnQgPVxuICBtYXRjaCBtb2RlX29jY3VwYXRpb24jIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJMb2NhdGFpcmVcIiAtPlxuICBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgKGxvY2F0aW9uX29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2UgbW9kZV9vY2N1cGF0aW9uIyMucGF5bG9hZCkpXG4gIHwgXCJSZXNpZGVudExvZ2VtZW50Rm95ZXJcIiAtPlxuICBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgKGxvZ2VtZW50X2ZveWVyX29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2UgbW9kZV9vY2N1cGF0aW9uIyMucGF5bG9hZCkpXG4gIHwgXCJBY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uXCIgLT5cbiAgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiAocHJvcHJpZXRhaXJlX29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2UgbW9kZV9vY2N1cGF0aW9uIyMucGF5bG9hZCkpXG4gIHwgXCJTb3VzTG9jYXRhaXJlXCIgLT5cbiAgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSAobG9jYXRpb25fb2ZfanNvbyAoSnMuVW5zYWZlLmNvZXJjZSBtb2RlX29jY3VwYXRpb24jIy5wYXlsb2FkKSlcbiAgfCBcIkxvY2F0aW9uQWNjZXNzaW9uXCIgLT5cbiAgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gKHByb3ByaWV0YWlyZV9vZl9qc29vIChKcy5VbnNhZmUuY29lcmNlIG1vZGVfb2NjdXBhdGlvbiMjLnBheWxvYWQpKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnTW9kZU9jY3VwYXRpb24udCdcIiBjb25zKVxuXG5cbmNsYXNzIHR5cGUgZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGVsaWdpYmlsaXRlOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBub21icmVQZXJzb25uZXNBQ2hhcmdlUHJpc2VzRW5Db21wdGU6IGludCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGNvZWZmaWNlbnRzRW5mYW50c0dhcmRlQWx0ZXJuZWVQcmlzRW5Db21wdGU6XG4gICAgICBKcy5udW1iZXIgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29uZGl0aW9uMlI4MjM0OlxuICAgICAgKHVuaXQsICBwZXJzb25uZV9hX2NoYXJnZSBKcy50IC0+IGJvb2wgSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gIGVuZFxuICBsZXQgZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfdG9fanNvb1xuICAgIChlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudFxuICAgIDogRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudClcbiAgICA6IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGRhdGVDb3VyYW50ZSA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudC5kYXRlX2NvdXJhbnRlXG4gICAgICB2YWwgZWxpZ2liaWxpdGUgPVxuICAgICAgICBKcy5ib29sIGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50LmVsaWdpYmlsaXRlXG4gICAgICB2YWwgbm9tYnJlUGVyc29ubmVzQUNoYXJnZVByaXNlc0VuQ29tcHRlID1cbiAgICAgICAgaW50ZWdlcl90b19pbnQgZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXG4gICAgICB2YWwgY29lZmZpY2VudHNFbmZhbnRzR2FyZGVBbHRlcm5lZVByaXNFbkNvbXB0ZSA9XG4gICAgICAgIEpzLmFycmF5IEBAIEFycmF5Lm1hcCAoZnVuIHggLT4gSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgeCkgZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZVxuICAgICAgbWV0aG9kIGNvbmRpdGlvbjJSODIzNCA9IEpzLndyYXBfbWV0aF9jYWxsYmFja1xuICAgICAgICAoXG4gICAgICAgICAgZnVuIF8gKGZ1bmN0aW9uX2lucHV0MDogcGVyc29ubmVfYV9jaGFyZ2UgSnMudCkgLT5cbiAgICAgICAgICBKcy5ib29sIChlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudC5jb25kaXRpb25fMl9yODIzXzQgXG4gICAgICAgICAgKHBlcnNvbm5lX2FfY2hhcmdlX29mX2pzb29cbiAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgZW5kXG4gIGxldCBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9vZl9qc29vXG4gICAgKGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50XG4gICAgICA6IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IEpzLnQpIDpcbiAgICBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID1cbiAgICB7XG4gICAgICBkYXRlX2NvdXJhbnRlID1cbiAgICAgICAgZGF0ZV9vZl9qc29vIGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IyMuZGF0ZUNvdXJhbnRlO1xuICAgICAgZWxpZ2liaWxpdGUgPVxuICAgICAgICBKcy50b19ib29sIGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IyMuZWxpZ2liaWxpdGU7XG4gICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGUgPVxuICAgICAgICBpbnRlZ2VyX29mX2ludFxuICAgICAgICAgIGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50XG4gICAgICAgICAgIyMubm9tYnJlUGVyc29ubmVzQUNoYXJnZVByaXNlc0VuQ29tcHRlO1xuICAgICAgY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSA9XG4gICAgICAgIEFycmF5Lm1hcCAoZnVuIHggLT4gZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXIgeCkgQEAgSnMudG9fYXJyYXlcbiAgICAgICAgICBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudFxuICAgICAgICAgICMjLmNvZWZmaWNlbnRzRW5mYW50c0dhcmRlQWx0ZXJuZWVQcmlzRW5Db21wdGU7XG4gICAgICBjb25kaXRpb25fMl9yODIzXzQgPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAnY29uZGl0aW9uXzJfcjgyM180JyB0cmFuc2xhdGlvbiBpc24ndCB5ZXQgc3VwcG9ydGVkLi4uXCJcbiAgICB9XG5cbmNsYXNzIHR5cGUgbG9nZW1lbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgcmVzaWRlbmNlUHJpbmNpcGFsZTogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZXN0RWhwYWRPdU1haXNvbkF1dG9ub21pZUwzMTMxMkFzZjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbW9kZU9jY3VwYXRpb246IG1vZGVfb2NjdXBhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcHJvcHJpZXRhaXJlOiBwYXJlbnRfb3VfYXV0cmUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGxvdWVPdVNvdXNMb3VlQURlc1RpZXJzOlxuICAgICAgbG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnMgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHVzdWZydWl0OiBwYXJlbnRfb3VfYXV0cmUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGxvZ2VtZW50RGVjZW50TDg5NDYyOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBzdXJmYWNlTUNhcnJlczogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgem9uZTogem9uZV9kX2hhYml0YXRpb24gSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgbG9nZW1lbnRfdG9fanNvbyAobG9nZW1lbnQgOiBMb2dlbWVudC50KSA6IGxvZ2VtZW50IEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIHJlc2lkZW5jZVByaW5jaXBhbGUgPSBKcy5ib29sIGxvZ2VtZW50LnJlc2lkZW5jZV9wcmluY2lwYWxlXG4gICAgICB2YWwgZXN0RWhwYWRPdU1haXNvbkF1dG9ub21pZUwzMTMxMkFzZiA9XG4gICAgICAgIEpzLmJvb2wgbG9nZW1lbnQuZXN0X2VocGFkX291X21haXNvbl9hdXRvbm9taWVfbDMxM18xMl9hc2ZcbiAgICAgIHZhbCBtb2RlT2NjdXBhdGlvbiA9IG1vZGVfb2NjdXBhdGlvbl90b19qc29vIGxvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvblxuICAgICAgdmFsIHByb3ByaWV0YWlyZSA9IHBhcmVudF9vdV9hdXRyZV90b19qc29vIGxvZ2VtZW50LnByb3ByaWV0YWlyZVxuICAgICAgdmFsIGxvdWVPdVNvdXNMb3VlQURlc1RpZXJzID1cbiAgICAgICAgbG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnNfdG9fanNvbyBsb2dlbWVudC5sb3VlX291X3NvdXNfbG91ZV9hX2Rlc190aWVyc1xuICAgICAgdmFsIHVzdWZydWl0ID0gcGFyZW50X291X2F1dHJlX3RvX2pzb28gbG9nZW1lbnQudXN1ZnJ1aXRcbiAgICAgIHZhbCBsb2dlbWVudERlY2VudEw4OTQ2MiA9IEpzLmJvb2wgbG9nZW1lbnQubG9nZW1lbnRfZGVjZW50X2w4OV80NjJcbiAgICAgIHZhbCBzdXJmYWNlTUNhcnJlcyA9IGludGVnZXJfdG9faW50IGxvZ2VtZW50LnN1cmZhY2VfbV9jYXJyZXNcbiAgICAgIHZhbCB6b25lID0gem9uZV9kX2hhYml0YXRpb25fdG9fanNvbyBsb2dlbWVudC56b25lXG4gICAgICBlbmRcbiAgbGV0IGxvZ2VtZW50X29mX2pzb28gKGxvZ2VtZW50IDogbG9nZW1lbnQgSnMudCkgOiBMb2dlbWVudC50ID1cbiAgICB7XG4gICAgICByZXNpZGVuY2VfcHJpbmNpcGFsZSA9IEpzLnRvX2Jvb2wgbG9nZW1lbnQjIy5yZXNpZGVuY2VQcmluY2lwYWxlO1xuICAgICAgZXN0X2VocGFkX291X21haXNvbl9hdXRvbm9taWVfbDMxM18xMl9hc2YgPVxuICAgICAgICBKcy50b19ib29sIGxvZ2VtZW50IyMuZXN0RWhwYWRPdU1haXNvbkF1dG9ub21pZUwzMTMxMkFzZjtcbiAgICAgIG1vZGVfb2NjdXBhdGlvbiA9IG1vZGVfb2NjdXBhdGlvbl9vZl9qc29vIGxvZ2VtZW50IyMubW9kZU9jY3VwYXRpb247XG4gICAgICBwcm9wcmlldGFpcmUgPSBwYXJlbnRfb3VfYXV0cmVfb2ZfanNvbyBsb2dlbWVudCMjLnByb3ByaWV0YWlyZTtcbiAgICAgIGxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzID1cbiAgICAgICAgbG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnNfb2ZfanNvb1xuICAgICAgICAgIGxvZ2VtZW50IyMubG91ZU91U291c0xvdWVBRGVzVGllcnM7XG4gICAgICB1c3VmcnVpdCA9IHBhcmVudF9vdV9hdXRyZV9vZl9qc29vIGxvZ2VtZW50IyMudXN1ZnJ1aXQ7XG4gICAgICBsb2dlbWVudF9kZWNlbnRfbDg5XzQ2MiA9IEpzLnRvX2Jvb2wgbG9nZW1lbnQjIy5sb2dlbWVudERlY2VudEw4OTQ2MjtcbiAgICAgIHN1cmZhY2VfbV9jYXJyZXMgPSBpbnRlZ2VyX29mX2ludCBsb2dlbWVudCMjLnN1cmZhY2VNQ2FycmVzO1xuICAgICAgem9uZSA9IHpvbmVfZF9oYWJpdGF0aW9uX29mX2pzb28gbG9nZW1lbnQjIy56b25lXG4gICAgfVxuXG5jbGFzcyB0eXBlIG1lbmFnZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBwcmVzdGF0aW9uc1JlY3VlczpcbiAgICAgIHByZXN0YXRpb25fcmVjdWUgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbG9nZW1lbnQ6IGxvZ2VtZW50IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBwZXJzb25uZXNBQ2hhcmdlOlxuICAgICAgcGVyc29ubmVfYV9jaGFyZ2UgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgbm9tYnJlQXV0cmVzT2NjdXBhbnRzTG9nZW1lbnQ6IGludCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHNpdHVhdGlvbkZhbWlsaWFsZTogc2l0dWF0aW9uX2ZhbWlsaWFsZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29uZGl0aW9uUmF0dGFjaGVGb3llckZpc2NhbFBhcmVudElmaTogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZW5mYW50QU5haXRyZUFwcmVzUXVhdHJpZW1lTW9pc0dyb3NzZXNzZTpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHBlcnNvbm5lc0FnZWVzSGFuZGljYXBlZXNGb3llclI4NDQ0OiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNpZGVuY2U6IGNvbGxlY3Rpdml0ZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBtZW5hZ2VfdG9fanNvbyAobWVuYWdlIDogTWVuYWdlLnQpIDogbWVuYWdlIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIHByZXN0YXRpb25zUmVjdWVzID1cbiAgICAgICAgSnMuYXJyYXkgQEAgQXJyYXkubWFwIChmdW4geCAtPiBwcmVzdGF0aW9uX3JlY3VlX3RvX2pzb28geCkgbWVuYWdlLnByZXN0YXRpb25zX3JlY3Vlc1xuICAgICAgdmFsIGxvZ2VtZW50ID0gbG9nZW1lbnRfdG9fanNvbyBtZW5hZ2UubG9nZW1lbnRcbiAgICAgIHZhbCBwZXJzb25uZXNBQ2hhcmdlID1cbiAgICAgICAgSnMuYXJyYXkgQEAgQXJyYXkubWFwIChmdW4geCAtPiBwZXJzb25uZV9hX2NoYXJnZV90b19qc29vIHgpIG1lbmFnZS5wZXJzb25uZXNfYV9jaGFyZ2VcbiAgICAgIHZhbCBub21icmVBdXRyZXNPY2N1cGFudHNMb2dlbWVudCA9XG4gICAgICAgIGludGVnZXJfdG9faW50IG1lbmFnZS5ub21icmVfYXV0cmVzX29jY3VwYW50c19sb2dlbWVudFxuICAgICAgdmFsIHNpdHVhdGlvbkZhbWlsaWFsZSA9XG4gICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfdG9fanNvbyBtZW5hZ2Uuc2l0dWF0aW9uX2ZhbWlsaWFsZVxuICAgICAgdmFsIGNvbmRpdGlvblJhdHRhY2hlRm95ZXJGaXNjYWxQYXJlbnRJZmkgPVxuICAgICAgICBKcy5ib29sIG1lbmFnZS5jb25kaXRpb25fcmF0dGFjaGVfZm95ZXJfZmlzY2FsX3BhcmVudF9pZmlcbiAgICAgIHZhbCBlbmZhbnRBTmFpdHJlQXByZXNRdWF0cmllbWVNb2lzR3Jvc3Nlc3NlID1cbiAgICAgICAgSnMuYm9vbCBtZW5hZ2UuZW5mYW50X2FfbmFpdHJlX2FwcmVzX3F1YXRyaWVtZV9tb2lzX2dyb3NzZXNzZVxuICAgICAgdmFsIHBlcnNvbm5lc0FnZWVzSGFuZGljYXBlZXNGb3llclI4NDQ0ID1cbiAgICAgICAgSnMuYm9vbCBtZW5hZ2UucGVyc29ubmVzX2FnZWVzX2hhbmRpY2FwZWVzX2ZveWVyX3I4NDRfNFxuICAgICAgdmFsIHJlc2lkZW5jZSA9IGNvbGxlY3Rpdml0ZV90b19qc29vIG1lbmFnZS5yZXNpZGVuY2VcbiAgICAgIGVuZFxuICBsZXQgbWVuYWdlX29mX2pzb28gKG1lbmFnZSA6IG1lbmFnZSBKcy50KSA6IE1lbmFnZS50ID1cbiAgICB7XG4gICAgICBwcmVzdGF0aW9uc19yZWN1ZXMgPVxuICAgICAgICBBcnJheS5tYXAgKGZ1biB4IC0+IHByZXN0YXRpb25fcmVjdWVfb2ZfanNvbyB4KSBAQCBKcy50b19hcnJheVxuICAgICAgICAgIG1lbmFnZSMjLnByZXN0YXRpb25zUmVjdWVzO1xuICAgICAgbG9nZW1lbnQgPSBsb2dlbWVudF9vZl9qc29vIG1lbmFnZSMjLmxvZ2VtZW50O1xuICAgICAgcGVyc29ubmVzX2FfY2hhcmdlID1cbiAgICAgICAgQXJyYXkubWFwIChmdW4geCAtPiBwZXJzb25uZV9hX2NoYXJnZV9vZl9qc29vIHgpIEBAIEpzLnRvX2FycmF5XG4gICAgICAgICAgbWVuYWdlIyMucGVyc29ubmVzQUNoYXJnZTtcbiAgICAgIG5vbWJyZV9hdXRyZXNfb2NjdXBhbnRzX2xvZ2VtZW50ID1cbiAgICAgICAgaW50ZWdlcl9vZl9pbnQgbWVuYWdlIyMubm9tYnJlQXV0cmVzT2NjdXBhbnRzTG9nZW1lbnQ7XG4gICAgICBzaXR1YXRpb25fZmFtaWxpYWxlID1cbiAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9vZl9qc29vIG1lbmFnZSMjLnNpdHVhdGlvbkZhbWlsaWFsZTtcbiAgICAgIGNvbmRpdGlvbl9yYXR0YWNoZV9mb3llcl9maXNjYWxfcGFyZW50X2lmaSA9XG4gICAgICAgIEpzLnRvX2Jvb2wgbWVuYWdlIyMuY29uZGl0aW9uUmF0dGFjaGVGb3llckZpc2NhbFBhcmVudElmaTtcbiAgICAgIGVuZmFudF9hX25haXRyZV9hcHJlc19xdWF0cmllbWVfbW9pc19ncm9zc2Vzc2UgPVxuICAgICAgICBKcy50b19ib29sIG1lbmFnZSMjLmVuZmFudEFOYWl0cmVBcHJlc1F1YXRyaWVtZU1vaXNHcm9zc2Vzc2U7XG4gICAgICBwZXJzb25uZXNfYWdlZXNfaGFuZGljYXBlZXNfZm95ZXJfcjg0NF80ID1cbiAgICAgICAgSnMudG9fYm9vbCBtZW5hZ2UjIy5wZXJzb25uZXNBZ2Vlc0hhbmRpY2FwZWVzRm95ZXJSODQ0NDtcbiAgICAgIHJlc2lkZW5jZSA9IGNvbGxlY3Rpdml0ZV9vZl9qc29vIG1lbmFnZSMjLnJlc2lkZW5jZVxuICAgIH1cblxuY2xhc3MgdHlwZSBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBtZW5hZ2VJbjogbWVuYWdlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkZW1hbmRldXJJbjogZGVtYW5kZXVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb25kaXRpb25Mb2dlbWVudFJlc2lkZW5jZVByaW5jaXBhbGVJbjpcbiAgICAgICh1bml0LCAgdW5pdCAtPiBib29sIEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICAgIG1ldGhvZCBjb25kaXRpb25Mb2dlbWVudFN1cmZhY2VJbjpcbiAgICAgICh1bml0LCAgdW5pdCAtPiBib29sIEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICAgIG1ldGhvZCBkYXRlRW50cmVlVmlndWV1ckRpZmZlcmVlQ2NoSW46XG4gICAgICAodW5pdCwgIHVuaXQgLT4gSnMuanNfc3RyaW5nIEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICBlbmRcbiAgbGV0IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luX3RvX2pzb29cbiAgICAoZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW5cbiAgICA6IEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4udClcbiAgICA6IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG1lbmFnZUluID1cbiAgICAgICAgbWVuYWdlX3RvX2pzb28gZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4ubWVuYWdlX2luXG4gICAgICB2YWwgZGVtYW5kZXVySW4gPVxuICAgICAgICBkZW1hbmRldXJfdG9fanNvbyBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5kZW1hbmRldXJfaW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5kYXRlX2NvdXJhbnRlX2luXG4gICAgICBtZXRob2QgY29uZGl0aW9uTG9nZW1lbnRSZXNpZGVuY2VQcmluY2lwYWxlSW4gPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IHVuaXQpIC0+XG4gICAgICAgICAgSnMuYm9vbCAoZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uY29uZGl0aW9uX2xvZ2VtZW50X3Jlc2lkZW5jZV9wcmluY2lwYWxlX2luIFxuICAgICAgICAgIChcbiAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgbWV0aG9kIGNvbmRpdGlvbkxvZ2VtZW50U3VyZmFjZUluID0gSnMud3JhcF9tZXRoX2NhbGxiYWNrXG4gICAgICAgIChcbiAgICAgICAgICBmdW4gXyAoZnVuY3Rpb25faW5wdXQwOiB1bml0KSAtPlxuICAgICAgICAgIEpzLmJvb2wgKGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLmNvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlX2luIFxuICAgICAgICAgIChcbiAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgbWV0aG9kIGRhdGVFbnRyZWVWaWd1ZXVyRGlmZmVyZWVDY2hJbiA9IEpzLndyYXBfbWV0aF9jYWxsYmFja1xuICAgICAgICAoXG4gICAgICAgICAgZnVuIF8gKGZ1bmN0aW9uX2lucHV0MDogdW5pdCkgLT5cbiAgICAgICAgICBkYXRlX3RvX2pzb28gKGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLmRhdGVfZW50cmVlX3ZpZ3VldXJfZGlmZmVyZWVfY2NoX2luIFxuICAgICAgICAgIChcbiAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgZW5kXG4gIGxldCBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbl9vZl9qc29vXG4gICAgKGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luXG4gICAgICA6IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIEpzLnQpIDpcbiAgICBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnQgPVxuICAgIHtcbiAgICAgIG1lbmFnZV9pbiA9XG4gICAgICAgIG1lbmFnZV9vZl9qc29vIGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIyMubWVuYWdlSW47XG4gICAgICBkZW1hbmRldXJfaW4gPVxuICAgICAgICBkZW1hbmRldXJfb2ZfanNvb1xuICAgICAgICAgIGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIyMuZGVtYW5kZXVySW47XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vXG4gICAgICAgICAgZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4jIy5kYXRlQ291cmFudGVJbjtcbiAgICAgIGNvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcHJpbmNpcGFsZV9pbiA9IGZhaWx3aXRoIFwiVGhlIGZ1bmN0aW9uICdjb25kaXRpb25fbG9nZW1lbnRfcmVzaWRlbmNlX3ByaW5jaXBhbGVfaW4nIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIjtcbiAgICAgIGNvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlX2luID0gZmFpbHdpdGggXCJUaGUgZnVuY3Rpb24gJ2NvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlX2luJyB0cmFuc2xhdGlvbiBpc24ndCB5ZXQgc3VwcG9ydGVkLi4uXCI7XG4gICAgICBkYXRlX2VudHJlZV92aWd1ZXVyX2RpZmZlcmVlX2NjaF9pbiA9IGZhaWx3aXRoIFwiVGhlIGZ1bmN0aW9uICdkYXRlX2VudHJlZV92aWd1ZXVyX2RpZmZlcmVlX2NjaF9pbicgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiXG4gICAgfVxuXG5jbGFzcyB0eXBlIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBtZW5hZ2VJbjogbWVuYWdlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkZW1hbmRldXJJbjogZGVtYW5kZXVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbl90b19qc29vXG4gICAgKGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pblxuICAgIDogRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4udClcbiAgICA6IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtZW5hZ2VJbiA9XG4gICAgICAgIG1lbmFnZV90b19qc29vIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbi5tZW5hZ2VfaW5cbiAgICAgIHZhbCBkZW1hbmRldXJJbiA9XG4gICAgICAgIGRlbWFuZGV1cl90b19qc29vIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbi5kZW1hbmRldXJfaW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgZW5kXG4gIGxldCBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW5fb2ZfanNvb1xuICAgIChlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW5cbiAgICAgIDogZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIEpzLnQpIDpcbiAgICBFbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi50ID1cbiAgICB7XG4gICAgICBtZW5hZ2VfaW4gPVxuICAgICAgICBtZW5hZ2Vfb2ZfanNvbyBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4jIy5tZW5hZ2VJbjtcbiAgICAgIGRlbWFuZGV1cl9pbiA9XG4gICAgICAgIGRlbWFuZGV1cl9vZl9qc29vXG4gICAgICAgICAgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIyMuZGVtYW5kZXVySW47XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vXG4gICAgICAgICAgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIyMuZGF0ZUNvdXJhbnRlSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBtZW5hZ2VJbjogbWVuYWdlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkZW1hbmRldXJJbjogZGVtYW5kZXVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBiZW5lZmljaWVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW46IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pbl90b19qc29vXG4gICAgKGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4gOiBFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudEluLnQpXG4gICAgOiBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGRhdGVDb3VyYW50ZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIG1lbmFnZUluID1cbiAgICAgICAgbWVuYWdlX3RvX2pzb28gZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pbi5tZW5hZ2VfaW5cbiAgICAgIHZhbCBkZW1hbmRldXJJbiA9XG4gICAgICAgIGRlbWFuZGV1cl90b19qc29vIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4uZGVtYW5kZXVyX2luXG4gICAgICB2YWwgYmVuZWZpY2llQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluID1cbiAgICAgICAgSnMuYm9vbCBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLmJlbmVmaWNpZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW5cbiAgICAgIGVuZFxuICBsZXQgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pbl9vZl9qc29vXG4gICAgKGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW5cbiAgICAgIDogZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiBKcy50KSA6XG4gICAgRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnRJbi50ID1cbiAgICB7XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4jIy5kYXRlQ291cmFudGVJbjtcbiAgICAgIG1lbmFnZV9pbiA9XG4gICAgICAgIG1lbmFnZV9vZl9qc29vIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4jIy5tZW5hZ2VJbjtcbiAgICAgIGRlbWFuZGV1cl9pbiA9XG4gICAgICAgIGRlbWFuZGV1cl9vZl9qc29vIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4jIy5kZW1hbmRldXJJbjtcbiAgICAgIGJlbmVmaWNpZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pblxuICAgICAgICAgICMjLmJlbmVmaWNpZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJblxuICAgIH1cblxuY2xhc3MgdHlwZSBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgaW5mb3JtYXRpb25zSW46XG4gICAgICBpbmZvcm1hdGlvbnNfcHJpbWVfZGVfZGVtZW5hZ2VtZW50IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlRW1tZW5hZ2VtZW50SW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbWVuYWdlSW46IG1lbmFnZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGVtYW5kZXVySW46IGRlbWFuZGV1ciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGVwZW5zZXNKdXN0aWZpZWVzUmVlbGxlbWVudEVuZ2FnZWVzSW46XG4gICAgICBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luX3RvX2pzb29cbiAgICAoZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luXG4gICAgOiBFbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnRJbi50KVxuICAgIDogZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGluZm9ybWF0aW9uc0luID1cbiAgICAgICAgaW5mb3JtYXRpb25zX3ByaW1lX2RlX2RlbWVuYWdlbWVudF90b19qc29vIGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pbi5pbmZvcm1hdGlvbnNfaW5cbiAgICAgIHZhbCBkYXRlRW1tZW5hZ2VtZW50SW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luLmRhdGVfZW1tZW5hZ2VtZW50X2luXG4gICAgICB2YWwgbWVuYWdlSW4gPVxuICAgICAgICBtZW5hZ2VfdG9fanNvbyBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4ubWVuYWdlX2luXG4gICAgICB2YWwgZGVtYW5kZXVySW4gPVxuICAgICAgICBkZW1hbmRldXJfdG9fanNvbyBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4uZGVtYW5kZXVyX2luXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCBkZXBlbnNlc0p1c3RpZmllZXNSZWVsbGVtZW50RW5nYWdlZXNJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4uZGVwZW5zZXNfanVzdGlmaWVlc19yZWVsbGVtZW50X2VuZ2FnZWVzX2luXG4gICAgICBlbmRcbiAgbGV0IGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pbl9vZl9qc29vXG4gICAgKGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pblxuICAgICAgOiBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4gSnMudCkgOlxuICAgIEVsaWdpYmlsaXRlUHJpbWVEZURlbWVuYWdlbWVudEluLnQgPVxuICAgIHtcbiAgICAgIGluZm9ybWF0aW9uc19pbiA9XG4gICAgICAgIGluZm9ybWF0aW9uc19wcmltZV9kZV9kZW1lbmFnZW1lbnRfb2ZfanNvb1xuICAgICAgICAgIGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pbiMjLmluZm9ybWF0aW9uc0luO1xuICAgICAgZGF0ZV9lbW1lbmFnZW1lbnRfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4jIy5kYXRlRW1tZW5hZ2VtZW50SW47XG4gICAgICBtZW5hZ2VfaW4gPVxuICAgICAgICBtZW5hZ2Vfb2ZfanNvbyBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4jIy5tZW5hZ2VJbjtcbiAgICAgIGRlbWFuZGV1cl9pbiA9XG4gICAgICAgIGRlbWFuZGV1cl9vZl9qc29vIGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pbiMjLmRlbWFuZGV1ckluO1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4jIy5kYXRlQ291cmFudGVJbjtcbiAgICAgIGRlcGVuc2VzX2p1c3RpZmllZXNfcmVlbGxlbWVudF9lbmdhZ2Vlc19pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW5cbiAgICAgICAgICAjIy5kZXBlbnNlc0p1c3RpZmllZXNSZWVsbGVtZW50RW5nYWdlZXNJblxuICAgIH1cblxuY2xhc3MgdHlwZSByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHJlc3NvdXJjZXNEZW1hbmRldXJJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNzb3VyY2VzQ29uam9pbnRJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBwZXJzb25uZXNWaXZhbnRIYWJpdHVlbGxlbWVudEZveWVySW46XG4gICAgICBwZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnRfYXVfZm95ZXIgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGVtYW5kZXVyRXhlcmNlQWN0aXZpdGVSZW11bmVyZWVJbjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29uam9pbnRFeGVyY2VBY3Rpdml0ZVJlbXVuZXJlZUluOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBwZXJzb25uZXNBQ2hhcmdlSW46XG4gICAgICBwZXJzb25uZV9hX2NoYXJnZSBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBzaXR1YXRpb25GYW1pbGlhbGVJbjogc2l0dWF0aW9uX2ZhbWlsaWFsZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbW9kZU9jY3VwYXRpb25JbjogbW9kZV9vY2N1cGF0aW9uIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb25kaXRpb25BZ2VCb3Vyc2VFbnNlaWduZW1lbnRTdXBlcmlldXJJbjpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRlbWFuZGV1clBvdXJzdWl0RGVzRXR1ZGVzSW46IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVEZW1hbmRlT3VSZWV4YW1lbkRyb2l0SW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcGFpZW1lbnRMb2dlbWVudERpc3RpbmN0UHJvZmVzc2lvbm5lbEluOlxuICAgICAgcGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluY3RfcHJvZmVzc2lvbm5lbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzc291cmNlc01lbmFnZUFycm9uZGllc0Jhc2VJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW5fdG9fanNvb1xuICAgIChyZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luXG4gICAgOiBSZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4udClcbiAgICA6IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgcmVzc291cmNlc0RlbWFuZGV1ckluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4ucmVzc291cmNlc19kZW1hbmRldXJfaW5cbiAgICAgIHZhbCByZXNzb3VyY2VzQ29uam9pbnRJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLnJlc3NvdXJjZXNfY29uam9pbnRfaW5cbiAgICAgIHZhbCBwZXJzb25uZXNWaXZhbnRIYWJpdHVlbGxlbWVudEZveWVySW4gPVxuICAgICAgICBKcy5hcnJheSBAQCBBcnJheS5tYXAgKGZ1biB4IC0+IHBlcnNvbm5lX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9hdV9mb3llcl90b19qc29vIHgpIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4ucGVyc29ubmVzX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9mb3llcl9pblxuICAgICAgdmFsIGRlbWFuZGV1ckV4ZXJjZUFjdGl2aXRlUmVtdW5lcmVlSW4gPVxuICAgICAgICBKcy5ib29sIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uZGVtYW5kZXVyX2V4ZXJjZV9hY3Rpdml0ZV9yZW11bmVyZWVfaW5cbiAgICAgIHZhbCBjb25qb2ludEV4ZXJjZUFjdGl2aXRlUmVtdW5lcmVlSW4gPVxuICAgICAgICBKcy5ib29sIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uY29uam9pbnRfZXhlcmNlX2FjdGl2aXRlX3JlbXVuZXJlZV9pblxuICAgICAgdmFsIHBlcnNvbm5lc0FDaGFyZ2VJbiA9XG4gICAgICAgIEpzLmFycmF5IEBAIEFycmF5Lm1hcCAoZnVuIHggLT4gcGVyc29ubmVfYV9jaGFyZ2VfdG9fanNvbyB4KSByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLnBlcnNvbm5lc19hX2NoYXJnZV9pblxuICAgICAgdmFsIHNpdHVhdGlvbkZhbWlsaWFsZUluID1cbiAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV90b19qc29vIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9pblxuICAgICAgdmFsIG1vZGVPY2N1cGF0aW9uSW4gPVxuICAgICAgICBtb2RlX29jY3VwYXRpb25fdG9fanNvbyByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLm1vZGVfb2NjdXBhdGlvbl9pblxuICAgICAgdmFsIGRhdGVDb3VyYW50ZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIGNvbmRpdGlvbkFnZUJvdXJzZUVuc2VpZ25lbWVudFN1cGVyaWV1ckluID1cbiAgICAgICAgSnMuYm9vbCByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLmNvbmRpdGlvbl9hZ2VfYm91cnNlX2Vuc2VpZ25lbWVudF9zdXBlcmlldXJfaW5cbiAgICAgIHZhbCBkZW1hbmRldXJQb3Vyc3VpdERlc0V0dWRlc0luID1cbiAgICAgICAgSnMuYm9vbCByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLmRlbWFuZGV1cl9wb3Vyc3VpdF9kZXNfZXR1ZGVzX2luXG4gICAgICB2YWwgZGF0ZURlbWFuZGVPdVJlZXhhbWVuRHJvaXRJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLmRhdGVfZGVtYW5kZV9vdV9yZWV4YW1lbl9kcm9pdF9pblxuICAgICAgdmFsIHBhaWVtZW50TG9nZW1lbnREaXN0aW5jdFByb2Zlc3Npb25uZWxJbiA9XG4gICAgICAgIHBhaWVtZW50X2xvZ2VtZW50X2Rpc3RpbmN0X3Byb2Zlc3Npb25uZWxfdG9fanNvbyByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLnBhaWVtZW50X2xvZ2VtZW50X2Rpc3RpbmN0X3Byb2Zlc3Npb25uZWxfaW5cbiAgICAgIHZhbCByZXNzb3VyY2VzTWVuYWdlQXJyb25kaWVzQmFzZUluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2Jhc2VfaW5cbiAgICAgIGVuZFxuICBsZXQgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbl9vZl9qc29vXG4gICAgKHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW5cbiAgICAgIDogcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbiBKcy50KSA6XG4gICAgUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnQgPVxuICAgIHtcbiAgICAgIHJlc3NvdXJjZXNfZGVtYW5kZXVyX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4jIy5yZXNzb3VyY2VzRGVtYW5kZXVySW47XG4gICAgICByZXNzb3VyY2VzX2NvbmpvaW50X2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4jIy5yZXNzb3VyY2VzQ29uam9pbnRJbjtcbiAgICAgIHBlcnNvbm5lc192aXZhbnRfaGFiaXR1ZWxsZW1lbnRfZm95ZXJfaW4gPVxuICAgICAgICBBcnJheS5tYXAgKGZ1biB4IC0+IHBlcnNvbm5lX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9hdV9mb3llcl9vZl9qc29vIHgpIEBAIEpzLnRvX2FycmF5XG4gICAgICAgICAgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pblxuICAgICAgICAgICMjLnBlcnNvbm5lc1ZpdmFudEhhYml0dWVsbGVtZW50Rm95ZXJJbjtcbiAgICAgIGRlbWFuZGV1cl9leGVyY2VfYWN0aXZpdGVfcmVtdW5lcmVlX2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW5cbiAgICAgICAgICAjIy5kZW1hbmRldXJFeGVyY2VBY3Rpdml0ZVJlbXVuZXJlZUluO1xuICAgICAgY29uam9pbnRfZXhlcmNlX2FjdGl2aXRlX3JlbXVuZXJlZV9pbiA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luXG4gICAgICAgICAgIyMuY29uam9pbnRFeGVyY2VBY3Rpdml0ZVJlbXVuZXJlZUluO1xuICAgICAgcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgQXJyYXkubWFwIChmdW4geCAtPiBwZXJzb25uZV9hX2NoYXJnZV9vZl9qc29vIHgpIEBAIEpzLnRvX2FycmF5XG4gICAgICAgICAgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbiMjLnBlcnNvbm5lc0FDaGFyZ2VJbjtcbiAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfaW4gPVxuICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX29mX2pzb29cbiAgICAgICAgICByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIyMuc2l0dWF0aW9uRmFtaWxpYWxlSW47XG4gICAgICBtb2RlX29jY3VwYXRpb25faW4gPVxuICAgICAgICBtb2RlX29jY3VwYXRpb25fb2ZfanNvb1xuICAgICAgICAgIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4jIy5tb2RlT2NjdXBhdGlvbkluO1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvb1xuICAgICAgICAgIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4jIy5kYXRlQ291cmFudGVJbjtcbiAgICAgIGNvbmRpdGlvbl9hZ2VfYm91cnNlX2Vuc2VpZ25lbWVudF9zdXBlcmlldXJfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pblxuICAgICAgICAgICMjLmNvbmRpdGlvbkFnZUJvdXJzZUVuc2VpZ25lbWVudFN1cGVyaWV1ckluO1xuICAgICAgZGVtYW5kZXVyX3BvdXJzdWl0X2Rlc19ldHVkZXNfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pblxuICAgICAgICAgICMjLmRlbWFuZGV1clBvdXJzdWl0RGVzRXR1ZGVzSW47XG4gICAgICBkYXRlX2RlbWFuZGVfb3VfcmVleGFtZW5fZHJvaXRfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luXG4gICAgICAgICAgIyMuZGF0ZURlbWFuZGVPdVJlZXhhbWVuRHJvaXRJbjtcbiAgICAgIHBhaWVtZW50X2xvZ2VtZW50X2Rpc3RpbmN0X3Byb2Zlc3Npb25uZWxfaW4gPVxuICAgICAgICBwYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm9mZXNzaW9ubmVsX29mX2pzb29cbiAgICAgICAgICByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luXG4gICAgICAgICAgIyMucGFpZW1lbnRMb2dlbWVudERpc3RpbmN0UHJvZmVzc2lvbm5lbEluO1xuICAgICAgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2Jhc2VfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pblxuICAgICAgICAgICMjLnJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNCYXNlSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbiA9XG4gIG9iamVjdCBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luX3RvX2pzb29cbiAgICAoY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pblxuICAgIDogQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4udClcbiAgICA6IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5kYXRlX2NvdXJhbnRlX2luXG4gICAgICBlbmRcbiAgbGV0IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW5fb2ZfanNvb1xuICAgIChjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luXG4gICAgICA6IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4gSnMudCkgOlxuICAgIENvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnQgPVxuICAgIHtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luXG4gICAgICAgICAgIyMuZGF0ZUNvdXJhbnRlSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGxveWVyUHJpbmNpcGFsQmFzZUluOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBiZW5lZmljaWFpcmVBaWRlQWR1bHRlT3VFbmZhbnRIYW5kaWNhcGVzSW46XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBub21icmVQZXJzb25uZXNBQ2hhcmdlSW46IGludCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFwbEluOlxuICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHpvbmVJbjogem9uZV9kX2hhYml0YXRpb24gSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGxvZ2VtZW50RXN0Q2hhbWJyZUluOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhZ2Vlc091SGFuZGljYXBBZHVsdGVzSGViZXJnZWVzT25lcmV1eFBhcnRpY3VsaWVyc0luOlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHlwZUFpZGVJbjogdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29sb2NhdGlvbkluOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZWR1Y3Rpb25Mb3llclNvbGlkYXJpdGVJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBsb2dlbWVudE1ldWJsZUQ4NDIySW46IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc2lkZW5jZUluOiBjb2xsZWN0aXZpdGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luX3RvX2pzb29cbiAgICAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luXG4gICAgOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnQpXG4gICAgOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbG95ZXJQcmluY2lwYWxCYXNlSW4gPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luLmxveWVyX3ByaW5jaXBhbF9iYXNlX2luXG4gICAgICB2YWwgcmVzc291cmNlc01lbmFnZUFycm9uZGllc0luID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW5cbiAgICAgIHZhbCBiZW5lZmljaWFpcmVBaWRlQWR1bHRlT3VFbmZhbnRIYW5kaWNhcGVzSW4gPVxuICAgICAgICBKcy5ib29sIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5iZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNfaW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbiA9XG4gICAgICAgIGludGVnZXJfdG9faW50IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luXG4gICAgICB2YWwgc2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQXBsSW4gPVxuICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbF90b19qc29vIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW5cbiAgICAgIHZhbCB6b25lSW4gPVxuICAgICAgICB6b25lX2RfaGFiaXRhdGlvbl90b19qc29vIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi56b25lX2luXG4gICAgICB2YWwgbG9nZW1lbnRFc3RDaGFtYnJlSW4gPVxuICAgICAgICBKcy5ib29sIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5sb2dlbWVudF9lc3RfY2hhbWJyZV9pblxuICAgICAgdmFsIGFnZWVzT3VIYW5kaWNhcEFkdWx0ZXNIZWJlcmdlZXNPbmVyZXV4UGFydGljdWxpZXJzSW4gPVxuICAgICAgICBKcy5ib29sIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5hZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVyc19pblxuICAgICAgdmFsIHR5cGVBaWRlSW4gPVxuICAgICAgICB0eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luLnR5cGVfYWlkZV9pblxuICAgICAgdmFsIGNvbG9jYXRpb25JbiA9XG4gICAgICAgIEpzLmJvb2wgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luLmNvbG9jYXRpb25faW5cbiAgICAgIHZhbCByZWR1Y3Rpb25Mb3llclNvbGlkYXJpdGVJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4ucmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfaW5cbiAgICAgIHZhbCBsb2dlbWVudE1ldWJsZUQ4NDIySW4gPVxuICAgICAgICBKcy5ib29sIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5sb2dlbWVudF9tZXVibGVfZDg0Ml8yX2luXG4gICAgICB2YWwgcmVzaWRlbmNlSW4gPVxuICAgICAgICBjb2xsZWN0aXZpdGVfdG9fanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4ucmVzaWRlbmNlX2luXG4gICAgICBlbmRcbiAgbGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbl9vZl9qc29vXG4gICAgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pblxuICAgICAgOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4gSnMudCkgOlxuICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4udCA9XG4gICAge1xuICAgICAgbG95ZXJfcHJpbmNpcGFsX2Jhc2VfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luXG4gICAgICAgICAgIyMubG95ZXJQcmluY2lwYWxCYXNlSW47XG4gICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luXG4gICAgICAgICAgIyMucmVzc291cmNlc01lbmFnZUFycm9uZGllc0luO1xuICAgICAgYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzX2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pblxuICAgICAgICAgICMjLmJlbmVmaWNpYWlyZUFpZGVBZHVsdGVPdUVuZmFudEhhbmRpY2FwZXNJbjtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4jIy5kYXRlQ291cmFudGVJbjtcbiAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICBpbnRlZ2VyX29mX2ludFxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pblxuICAgICAgICAgICMjLm5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbjtcbiAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiA9XG4gICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW5cbiAgICAgICAgICAjIy5zaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbjtcbiAgICAgIHpvbmVfaW4gPVxuICAgICAgICB6b25lX2RfaGFiaXRhdGlvbl9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luIyMuem9uZUluO1xuICAgICAgbG9nZW1lbnRfZXN0X2NoYW1icmVfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luXG4gICAgICAgICAgIyMubG9nZW1lbnRFc3RDaGFtYnJlSW47XG4gICAgICBhZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVyc19pbiA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW5cbiAgICAgICAgICAjIy5hZ2Vlc091SGFuZGljYXBBZHVsdGVzSGViZXJnZWVzT25lcmV1eFBhcnRpY3VsaWVyc0luO1xuICAgICAgdHlwZV9haWRlX2luID1cbiAgICAgICAgdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luIyMudHlwZUFpZGVJbjtcbiAgICAgIGNvbG9jYXRpb25faW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luIyMuY29sb2NhdGlvbkluO1xuICAgICAgcmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luXG4gICAgICAgICAgIyMucmVkdWN0aW9uTG95ZXJTb2xpZGFyaXRlSW47XG4gICAgICBsb2dlbWVudF9tZXVibGVfZDg0Ml8yX2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pblxuICAgICAgICAgICMjLmxvZ2VtZW50TWV1YmxlRDg0MjJJbjtcbiAgICAgIHJlc2lkZW5jZV9pbiA9XG4gICAgICAgIGNvbGxlY3Rpdml0ZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luIyMucmVzaWRlbmNlSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb25kaXRpb24yRHU4MzIyNUluOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBuTm9tYnJlUGFydHNEODMyMjVJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pbl90b19qc29vXG4gICAgKGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pblxuICAgIDogQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4udClcbiAgICA6IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIHJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luXG4gICAgICB2YWwgY29uZGl0aW9uMkR1ODMyMjVJbiA9XG4gICAgICAgIEpzLmJvb2wgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luLmNvbmRpdGlvbl8yX2R1XzgzMl8yNV9pblxuICAgICAgdmFsIG5Ob21icmVQYXJ0c0Q4MzIyNUluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfaW5cbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luX29mX2pzb29cbiAgICAoY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luXG4gICAgICA6IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pbiBKcy50KSA6XG4gICAgQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4udCA9XG4gICAge1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW4jIy5kYXRlQ291cmFudGVJbjtcbiAgICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW4jIy5yZXNzb3VyY2VzTWVuYWdlQXJyb25kaWVzSW47XG4gICAgICBjb25kaXRpb25fMl9kdV84MzJfMjVfaW4gPVxuICAgICAgICBKcy50b19ib29sIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pbiMjLmNvbmRpdGlvbjJEdTgzMjI1SW47XG4gICAgICBuX25vbWJyZV9wYXJ0c19kODMyXzI1X2luID1cbiAgICAgICAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW4jIy5uTm9tYnJlUGFydHNEODMyMjVJblxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgY29uZGl0aW9uMkR1ODMyMjVJbjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgbm9tYnJlUGVyc29ubmVzQUNoYXJnZUluOiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBzaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbjpcbiAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNpZGVuY2VJbjogY29sbGVjdGl2aXRlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBsaW1pdGF0aW9uTWFqb3JhdGlvblBlcnNvbm5lc0FDaGFyZ2VJbjpcbiAgICAgICh1bml0LCAgdW5pdCAtPiBib29sIEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICBlbmRcbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pbl90b19qc29vXG4gICAgKGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pblxuICAgIDogQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJJbi50KVxuICAgIDogY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGNvbmRpdGlvbjJEdTgzMjI1SW4gPVxuICAgICAgICBKcy5ib29sIGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pbi5jb25kaXRpb25fMl9kdV84MzJfMjVfaW5cbiAgICAgIHZhbCBub21icmVQZXJzb25uZXNBQ2hhcmdlSW4gPVxuICAgICAgICBpbnRlZ2VyX3RvX2ludCBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pblxuICAgICAgdmFsIHNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFwbEluID1cbiAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2xfdG9fanNvbyBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luXG4gICAgICB2YWwgcmVzaWRlbmNlSW4gPVxuICAgICAgICBjb2xsZWN0aXZpdGVfdG9fanNvbyBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW4ucmVzaWRlbmNlX2luXG4gICAgICBtZXRob2QgbGltaXRhdGlvbk1ham9yYXRpb25QZXJzb25uZXNBQ2hhcmdlSW4gPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IHVuaXQpIC0+XG4gICAgICAgICAgSnMuYm9vbCAoY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luLmxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gXG4gICAgICAgICAgKFxuICAgICAgICAgICAgZnVuY3Rpb25faW5wdXQwKSkpXG4gICAgICBlbmRcbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pbl9vZl9qc29vXG4gICAgKGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pblxuICAgICAgOiBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW4gSnMudCkgOlxuICAgIENhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4udCA9XG4gICAge1xuICAgICAgY29uZGl0aW9uXzJfZHVfODMyXzI1X2luID1cbiAgICAgICAgSnMudG9fYm9vbCBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW4jIy5jb25kaXRpb24yRHU4MzIyNUluO1xuICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgIGludGVnZXJfb2ZfaW50XG4gICAgICAgICAgY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luIyMubm9tYnJlUGVyc29ubmVzQUNoYXJnZUluO1xuICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luID1cbiAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2xfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pblxuICAgICAgICAgICMjLnNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFwbEluO1xuICAgICAgcmVzaWRlbmNlX2luID1cbiAgICAgICAgY29sbGVjdGl2aXRlX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW4jIy5yZXNpZGVuY2VJbjtcbiAgICAgIGxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAnbGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV9pbicgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgdHlwZUxvZ2VtZW50Rm95ZXJJbjogdHlwZV9sb2dlbWVudF9mb3llciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvbnZlbnRpb25uZW1lbnRJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNzb3VyY2VzTWVuYWdlQXJyb25kaWVzSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgbm9tYnJlUGVyc29ubmVzQUNoYXJnZUluOiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBzaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbjpcbiAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB6b25lSW46IHpvbmVfZF9oYWJpdGF0aW9uIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZWRldmFuY2VJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNpZGVuY2VJbjogY29sbGVjdGl2aXRlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb25kaXRpb24yRHU4MzIyNUluOlxuICAgICAgKHVuaXQsICB1bml0IC0+IGJvb2wgSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gICAgbWV0aG9kIGxpbWl0YXRpb25NYWpvcmF0aW9uUGVyc29ubmVzQUNoYXJnZUluOlxuICAgICAgKHVuaXQsICB1bml0IC0+IGJvb2wgSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gICAgbWV0aG9kIG5Ob21icmVQYXJ0c0Q4MzIyNUluOlxuICAgICAgKHVuaXQsICB1bml0IC0+IEpzLm51bWJlciBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgZW5kXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luX3RvX2pzb29cbiAgICAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pblxuICAgIDogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4udClcbiAgICA6IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgdHlwZUxvZ2VtZW50Rm95ZXJJbiA9XG4gICAgICAgIHR5cGVfbG9nZW1lbnRfZm95ZXJfdG9fanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLnR5cGVfbG9nZW1lbnRfZm95ZXJfaW5cbiAgICAgIHZhbCBkYXRlQ29udmVudGlvbm5lbWVudEluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4uZGF0ZV9jb252ZW50aW9ubmVtZW50X2luXG4gICAgICB2YWwgcmVzc291cmNlc01lbmFnZUFycm9uZGllc0luID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luXG4gICAgICB2YWwgbm9tYnJlUGVyc29ubmVzQUNoYXJnZUluID1cbiAgICAgICAgaW50ZWdlcl90b19pbnQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luXG4gICAgICB2YWwgc2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQXBsSW4gPVxuICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbF90b19qc29vIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luXG4gICAgICB2YWwgem9uZUluID1cbiAgICAgICAgem9uZV9kX2hhYml0YXRpb25fdG9fanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLnpvbmVfaW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCByZWRldmFuY2VJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLnJlZGV2YW5jZV9pblxuICAgICAgdmFsIHJlc2lkZW5jZUluID1cbiAgICAgICAgY29sbGVjdGl2aXRlX3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbi5yZXNpZGVuY2VfaW5cbiAgICAgIG1ldGhvZCBjb25kaXRpb24yRHU4MzIyNUluID0gSnMud3JhcF9tZXRoX2NhbGxiYWNrXG4gICAgICAgIChcbiAgICAgICAgICBmdW4gXyAoZnVuY3Rpb25faW5wdXQwOiB1bml0KSAtPlxuICAgICAgICAgIEpzLmJvb2wgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4uY29uZGl0aW9uXzJfZHVfODMyXzI1X2luIFxuICAgICAgICAgIChcbiAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgbWV0aG9kIGxpbWl0YXRpb25NYWpvcmF0aW9uUGVyc29ubmVzQUNoYXJnZUluID0gSnMud3JhcF9tZXRoX2NhbGxiYWNrXG4gICAgICAgIChcbiAgICAgICAgICBmdW4gXyAoZnVuY3Rpb25faW5wdXQwOiB1bml0KSAtPlxuICAgICAgICAgIEpzLmJvb2wgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4ubGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV9pbiBcbiAgICAgICAgICAoXG4gICAgICAgICAgICBmdW5jdGlvbl9pbnB1dDApKSlcbiAgICAgIG1ldGhvZCBuTm9tYnJlUGFydHNEODMyMjVJbiA9IEpzLndyYXBfbWV0aF9jYWxsYmFja1xuICAgICAgICAoXG4gICAgICAgICAgZnVuIF8gKGZ1bmN0aW9uX2lucHV0MDogdW5pdCkgLT5cbiAgICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgZGVjaW1hbF90b19mbG9hdCAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbi5uX25vbWJyZV9wYXJ0c19kODMyXzI1X2luIFxuICAgICAgICAgIChcbiAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luX29mX2pzb29cbiAgICAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pblxuICAgICAgOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luIEpzLnQpIDpcbiAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi50ID1cbiAgICB7XG4gICAgICB0eXBlX2xvZ2VtZW50X2ZveWVyX2luID1cbiAgICAgICAgdHlwZV9sb2dlbWVudF9mb3llcl9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbiMjLnR5cGVMb2dlbWVudEZveWVySW47XG4gICAgICBkYXRlX2NvbnZlbnRpb25uZW1lbnRfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luXG4gICAgICAgICAgIyMuZGF0ZUNvbnZlbnRpb25uZW1lbnRJbjtcbiAgICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luXG4gICAgICAgICAgIyMucmVzc291cmNlc01lbmFnZUFycm9uZGllc0luO1xuICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgIGludGVnZXJfb2ZfaW50XG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pblxuICAgICAgICAgICMjLm5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbjtcbiAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiA9XG4gICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luXG4gICAgICAgICAgIyMuc2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQXBsSW47XG4gICAgICB6b25lX2luID1cbiAgICAgICAgem9uZV9kX2hhYml0YXRpb25fb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4jIy56b25lSW47XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbiMjLmRhdGVDb3VyYW50ZUluO1xuICAgICAgcmVkZXZhbmNlX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4jIy5yZWRldmFuY2VJbjtcbiAgICAgIHJlc2lkZW5jZV9pbiA9XG4gICAgICAgIGNvbGxlY3Rpdml0ZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbiMjLnJlc2lkZW5jZUluO1xuICAgICAgY29uZGl0aW9uXzJfZHVfODMyXzI1X2luID0gZmFpbHdpdGggXCJUaGUgZnVuY3Rpb24gJ2NvbmRpdGlvbl8yX2R1XzgzMl8yNV9pbicgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiO1xuICAgICAgbGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9IGZhaWx3aXRoIFwiVGhlIGZ1bmN0aW9uICdsaW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlX2luJyB0cmFuc2xhdGlvbiBpc24ndCB5ZXQgc3VwcG9ydGVkLi4uXCI7XG4gICAgICBuX25vbWJyZV9wYXJ0c19kODMyXzI1X2luID0gZmFpbHdpdGggXCJUaGUgZnVuY3Rpb24gJ25fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfaW4nIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIlxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2Qgbm9tYnJlUGVyc29ubmVzQUNoYXJnZUluOiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBzaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbjpcbiAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbl90b19qc29vXG4gICAgKGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgIDogQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGVJbi50KVxuICAgIDogY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlX2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbiA9XG4gICAgICAgIGludGVnZXJfdG9faW50IGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luXG4gICAgICB2YWwgc2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQXBsSW4gPVxuICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbF90b19qc29vIGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW5cbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlX2luX29mX2pzb29cbiAgICAoY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICA6IGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiBKcy50KSA6XG4gICAgQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGVJbi50ID1cbiAgICB7XG4gICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgaW50ZWdlcl9vZl9pbnRcbiAgICAgICAgICBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5ub21icmVQZXJzb25uZXNBQ2hhcmdlSW47XG4gICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbF9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICAgICAgIyMuc2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQXBsSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG1lbnN1YWxpdGVQcmluY2lwYWxlSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzc291cmNlc01lbmFnZUFycm9uZGllc0luOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbjogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgc2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQXBsSW46XG4gICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHlwZVRyYXZhdXhMb2dlbWVudEluOlxuICAgICAgdHlwZV90cmF2YXV4X2xvZ2VtZW50X2Q4MzJfMTUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVTaWduYXR1cmVQcmV0SW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbG9jYWxIYWJpdGVQcmVtaWVyZUZvaXNCZW5lZmljaWFpcmVJbjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUVudHJlZUxvZ2VtZW50SW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29wcm9wcmlldGVJbjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgc2l0dWF0aW9uUjgyMjExMTMxN0luOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB6b25lSW46IHpvbmVfZF9oYWJpdGF0aW9uIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB0eXBlUHJldEluOiB0eXBlX3ByZXQgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFuY2llbm5ldGVMb2dlbWVudEluOiBuZXVmX291X2FuY2llbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5fdG9fanNvb1xuICAgIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICA6IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi50KVxuICAgIDogY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG1lbnN1YWxpdGVQcmluY2lwYWxlSW4gPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLm1lbnN1YWxpdGVfcHJpbmNpcGFsZV9pblxuICAgICAgdmFsIHJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luXG4gICAgICB2YWwgbm9tYnJlUGVyc29ubmVzQUNoYXJnZUluID1cbiAgICAgICAgaW50ZWdlcl90b19pbnQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW5cbiAgICAgIHZhbCBzaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbiA9XG4gICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sX3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pblxuICAgICAgdmFsIHR5cGVUcmF2YXV4TG9nZW1lbnRJbiA9XG4gICAgICAgIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1X3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLnR5cGVfdHJhdmF1eF9sb2dlbWVudF9pblxuICAgICAgdmFsIGRhdGVTaWduYXR1cmVQcmV0SW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLmRhdGVfc2lnbmF0dXJlX3ByZXRfaW5cbiAgICAgIHZhbCBsb2NhbEhhYml0ZVByZW1pZXJlRm9pc0JlbmVmaWNpYWlyZUluID1cbiAgICAgICAgSnMuYm9vbCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4ubG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuZWZpY2lhaXJlX2luXG4gICAgICB2YWwgZGF0ZUVudHJlZUxvZ2VtZW50SW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLmRhdGVfZW50cmVlX2xvZ2VtZW50X2luXG4gICAgICB2YWwgY29wcm9wcmlldGVJbiA9XG4gICAgICAgIEpzLmJvb2wgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLmNvcHJvcHJpZXRlX2luXG4gICAgICB2YWwgc2l0dWF0aW9uUjgyMjExMTMxN0luID1cbiAgICAgICAgSnMuYm9vbCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uc2l0dWF0aW9uX3I4MjJfMTFfMTNfMTdfaW5cbiAgICAgIHZhbCB6b25lSW4gPVxuICAgICAgICB6b25lX2RfaGFiaXRhdGlvbl90b19qc29vIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi56b25lX2luXG4gICAgICB2YWwgdHlwZVByZXRJbiA9XG4gICAgICAgIHR5cGVfcHJldF90b19qc29vIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi50eXBlX3ByZXRfaW5cbiAgICAgIHZhbCBhbmNpZW5uZXRlTG9nZW1lbnRJbiA9XG4gICAgICAgIG5ldWZfb3VfYW5jaWVuX3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLmFuY2llbm5ldGVfbG9nZW1lbnRfaW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5fb2ZfanNvb1xuICAgIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgIDogY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luIEpzLnQpIDpcbiAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4udCA9XG4gICAge1xuICAgICAgbWVuc3VhbGl0ZV9wcmluY2lwYWxlX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLm1lbnN1YWxpdGVQcmluY2lwYWxlSW47XG4gICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICAgICAgIyMucmVzc291cmNlc01lbmFnZUFycm9uZGllc0luO1xuICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgIGludGVnZXJfb2ZfaW50XG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICAgICAgIyMubm9tYnJlUGVyc29ubmVzQUNoYXJnZUluO1xuICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luID1cbiAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2xfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLnNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFwbEluO1xuICAgICAgdHlwZV90cmF2YXV4X2xvZ2VtZW50X2luID1cbiAgICAgICAgdHlwZV90cmF2YXV4X2xvZ2VtZW50X2Q4MzJfMTVfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLnR5cGVUcmF2YXV4TG9nZW1lbnRJbjtcbiAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5kYXRlU2lnbmF0dXJlUHJldEluO1xuICAgICAgbG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuZWZpY2lhaXJlX2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLmxvY2FsSGFiaXRlUHJlbWllcmVGb2lzQmVuZWZpY2lhaXJlSW47XG4gICAgICBkYXRlX2VudHJlZV9sb2dlbWVudF9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLmRhdGVFbnRyZWVMb2dlbWVudEluO1xuICAgICAgY29wcm9wcmlldGVfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICAgICAgIyMuY29wcm9wcmlldGVJbjtcbiAgICAgIHNpdHVhdGlvbl9yODIyXzExXzEzXzE3X2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLnNpdHVhdGlvblI4MjIxMTEzMTdJbjtcbiAgICAgIHpvbmVfaW4gPVxuICAgICAgICB6b25lX2RfaGFiaXRhdGlvbl9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luIyMuem9uZUluO1xuICAgICAgdHlwZV9wcmV0X2luID1cbiAgICAgICAgdHlwZV9wcmV0X29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy50eXBlUHJldEluO1xuICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9pbiA9XG4gICAgICAgIG5ldWZfb3VfYW5jaWVuX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5hbmNpZW5uZXRlTG9nZW1lbnRJbjtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5kYXRlQ291cmFudGVJblxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG1vZGVPY2N1cGF0aW9uSW46IG1vZGVfb2NjdXBhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHlwZUFpZGVJbjogdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzc291cmNlc01lbmFnZVNhbnNBcnJvbmRpSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgc2l0dWF0aW9uRmFtaWxpYWxlSW46IHNpdHVhdGlvbl9mYW1pbGlhbGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbjogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgem9uZUluOiB6b25lX2RfaGFiaXRhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzaWRlbmNlSW46IGNvbGxlY3Rpdml0ZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luX3RvX2pzb29cbiAgICAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pblxuICAgIDogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnQpXG4gICAgOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG1vZGVPY2N1cGF0aW9uSW4gPVxuICAgICAgICBtb2RlX29jY3VwYXRpb25fdG9fanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luLm1vZGVfb2NjdXBhdGlvbl9pblxuICAgICAgdmFsIHR5cGVBaWRlSW4gPVxuICAgICAgICB0eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbi50eXBlX2FpZGVfaW5cbiAgICAgIHZhbCByZXNzb3VyY2VzTWVuYWdlU2Fuc0Fycm9uZGlJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luLnJlc3NvdXJjZXNfbWVuYWdlX3NhbnNfYXJyb25kaV9pblxuICAgICAgdmFsIHNpdHVhdGlvbkZhbWlsaWFsZUluID1cbiAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV90b19qc29vIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9pblxuICAgICAgdmFsIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbiA9XG4gICAgICAgIGludGVnZXJfdG9faW50IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pblxuICAgICAgdmFsIHpvbmVJbiA9XG4gICAgICAgIHpvbmVfZF9oYWJpdGF0aW9uX3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbi56b25lX2luXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbi5kYXRlX2NvdXJhbnRlX2luXG4gICAgICB2YWwgcmVzaWRlbmNlSW4gPVxuICAgICAgICBjb2xsZWN0aXZpdGVfdG9fanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luLnJlc2lkZW5jZV9pblxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luX29mX2pzb29cbiAgICAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pblxuICAgICAgOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIEpzLnQpIDpcbiAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4udCA9XG4gICAge1xuICAgICAgbW9kZV9vY2N1cGF0aW9uX2luID1cbiAgICAgICAgbW9kZV9vY2N1cGF0aW9uX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIyMubW9kZU9jY3VwYXRpb25JbjtcbiAgICAgIHR5cGVfYWlkZV9pbiA9XG4gICAgICAgIHR5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4jIy50eXBlQWlkZUluO1xuICAgICAgcmVzc291cmNlc19tZW5hZ2Vfc2Fuc19hcnJvbmRpX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW5cbiAgICAgICAgICAjIy5yZXNzb3VyY2VzTWVuYWdlU2Fuc0Fycm9uZGlJbjtcbiAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfaW4gPVxuICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIyMuc2l0dWF0aW9uRmFtaWxpYWxlSW47XG4gICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgaW50ZWdlcl9vZl9pbnRcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIyMubm9tYnJlUGVyc29ubmVzQUNoYXJnZUluO1xuICAgICAgem9uZV9pbiA9XG4gICAgICAgIHpvbmVfZF9oYWJpdGF0aW9uX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIyMuem9uZUluO1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICByZXNpZGVuY2VfaW4gPVxuICAgICAgICBjb2xsZWN0aXZpdGVfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4jIy5yZXNpZGVuY2VJblxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGxveWVyUHJpbmNpcGFsSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzc291cmNlc01lbmFnZUFycm9uZGllc0luOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGJlbmVmaWNpYWlyZUFpZGVBZHVsdGVPdUVuZmFudEhhbmRpY2FwZXNJbjpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbjogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgc2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQXBsSW46XG4gICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgem9uZUluOiB6b25lX2RfaGFiaXRhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbG9nZW1lbnRFc3RDaGFtYnJlSW46IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFnZWVzT3VIYW5kaWNhcEFkdWx0ZXNIZWJlcmdlZXNPbmVyZXV4UGFydGljdWxpZXJzSW46XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB0eXBlQWlkZUluOiB0eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb2xvY2F0aW9uSW46IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlZHVjdGlvbkxveWVyU29saWRhcml0ZUluOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGxvZ2VtZW50TWV1YmxlRDg0MjJJbjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzaWRlbmNlSW46IGNvbGxlY3Rpdml0ZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY2hhbmdlbWVudExvZ2VtZW50RDg0MjRJbjpcbiAgICAgIGNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW5fdG9fanNvb1xuICAgIChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luXG4gICAgOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4udClcbiAgICA6IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbG95ZXJQcmluY2lwYWxJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLmxveWVyX3ByaW5jaXBhbF9pblxuICAgICAgdmFsIHJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pblxuICAgICAgdmFsIGJlbmVmaWNpYWlyZUFpZGVBZHVsdGVPdUVuZmFudEhhbmRpY2FwZXNJbiA9XG4gICAgICAgIEpzLmJvb2wgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5iZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNfaW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCBub21icmVQZXJzb25uZXNBQ2hhcmdlSW4gPVxuICAgICAgICBpbnRlZ2VyX3RvX2ludCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW5cbiAgICAgIHZhbCBzaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbiA9XG4gICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW5cbiAgICAgIHZhbCB6b25lSW4gPVxuICAgICAgICB6b25lX2RfaGFiaXRhdGlvbl90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4uem9uZV9pblxuICAgICAgdmFsIGxvZ2VtZW50RXN0Q2hhbWJyZUluID1cbiAgICAgICAgSnMuYm9vbCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLmxvZ2VtZW50X2VzdF9jaGFtYnJlX2luXG4gICAgICB2YWwgYWdlZXNPdUhhbmRpY2FwQWR1bHRlc0hlYmVyZ2Vlc09uZXJldXhQYXJ0aWN1bGllcnNJbiA9XG4gICAgICAgIEpzLmJvb2wgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5hZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVyc19pblxuICAgICAgdmFsIHR5cGVBaWRlSW4gPVxuICAgICAgICB0eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi50eXBlX2FpZGVfaW5cbiAgICAgIHZhbCBjb2xvY2F0aW9uSW4gPVxuICAgICAgICBKcy5ib29sIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4uY29sb2NhdGlvbl9pblxuICAgICAgdmFsIHJlZHVjdGlvbkxveWVyU29saWRhcml0ZUluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4ucmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfaW5cbiAgICAgIHZhbCBsb2dlbWVudE1ldWJsZUQ4NDIySW4gPVxuICAgICAgICBKcy5ib29sIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4ubG9nZW1lbnRfbWV1YmxlX2Q4NDJfMl9pblxuICAgICAgdmFsIHJlc2lkZW5jZUluID1cbiAgICAgICAgY29sbGVjdGl2aXRlX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5yZXNpZGVuY2VfaW5cbiAgICAgIHZhbCBjaGFuZ2VtZW50TG9nZW1lbnREODQyNEluID1cbiAgICAgICAgY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfdG9fanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLmNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80X2luXG4gICAgICBlbmRcbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW5fb2ZfanNvb1xuICAgIChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luXG4gICAgICA6IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4gSnMudCkgOlxuICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi50ID1cbiAgICB7XG4gICAgICBsb3llcl9wcmluY2lwYWxfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbiMjLmxveWVyUHJpbmNpcGFsSW47XG4gICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbiMjLnJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNJbjtcbiAgICAgIGJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlc19pbiA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luXG4gICAgICAgICAgIyMuYmVuZWZpY2lhaXJlQWlkZUFkdWx0ZU91RW5mYW50SGFuZGljYXBlc0luO1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgaW50ZWdlcl9vZl9pbnRcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luIyMubm9tYnJlUGVyc29ubmVzQUNoYXJnZUluO1xuICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luID1cbiAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2xfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW5cbiAgICAgICAgICAjIy5zaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbjtcbiAgICAgIHpvbmVfaW4gPVxuICAgICAgICB6b25lX2RfaGFiaXRhdGlvbl9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbiMjLnpvbmVJbjtcbiAgICAgIGxvZ2VtZW50X2VzdF9jaGFtYnJlX2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4jIy5sb2dlbWVudEVzdENoYW1icmVJbjtcbiAgICAgIGFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzX2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW5cbiAgICAgICAgICAjIy5hZ2Vlc091SGFuZGljYXBBZHVsdGVzSGViZXJnZWVzT25lcmV1eFBhcnRpY3VsaWVyc0luO1xuICAgICAgdHlwZV9haWRlX2luID1cbiAgICAgICAgdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbiMjLnR5cGVBaWRlSW47XG4gICAgICBjb2xvY2F0aW9uX2luID1cbiAgICAgICAgSnMudG9fYm9vbCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luIyMuY29sb2NhdGlvbkluO1xuICAgICAgcmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbiMjLnJlZHVjdGlvbkxveWVyU29saWRhcml0ZUluO1xuICAgICAgbG9nZW1lbnRfbWV1YmxlX2Q4NDJfMl9pbiA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luIyMubG9nZW1lbnRNZXVibGVEODQyMkluO1xuICAgICAgcmVzaWRlbmNlX2luID1cbiAgICAgICAgY29sbGVjdGl2aXRlX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luIyMucmVzaWRlbmNlSW47XG4gICAgICBjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF9pbiA9XG4gICAgICAgIGNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80X29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luIyMuY2hhbmdlbWVudExvZ2VtZW50RDg0MjRJblxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNCYXNlSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgbm9tYnJlUGVyc29ubmVzQUNoYXJnZUluOiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBzaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbjpcbiAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB6b25lSW46IHpvbmVfZF9oYWJpdGF0aW9uIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNpZGVuY2VJbjogY29sbGVjdGl2aXRlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBtZW5zdWFsaXRlUHJpbmNpcGFsZUluOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHNpdHVhdGlvblI4MjIxMTEzMTdJbjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZVNpZ25hdHVyZVByZXRJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB0eXBlVHJhdmF1eExvZ2VtZW50SW46XG4gICAgICB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBsb2NhbEhhYml0ZVByZW1pZXJlRm9pc0JlbmVmaWNpYWlyZUluOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlRW50cmVlTG9nZW1lbnRJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjaGFyZ2VzTWVuc3VlbGxlc1ByZXRJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb3Byb3ByaWV0ZUluOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBvcGVyYXRpb25zTG9nZW1lbnRFdm9sdXRpZnNTb2NpYXV4QWNjZXNzaW9uUHJvcHJpZXRlQWlkZWVFdGF0SW46XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5fdG9fanNvb1xuICAgIChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi50KVxuICAgIDogY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCByZXNzb3VyY2VzTWVuYWdlQXJyb25kaWVzQmFzZUluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2Jhc2VfaW5cbiAgICAgIHZhbCBub21icmVQZXJzb25uZXNBQ2hhcmdlSW4gPVxuICAgICAgICBpbnRlZ2VyX3RvX2ludCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW5cbiAgICAgIHZhbCBzaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbiA9XG4gICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW5cbiAgICAgIHZhbCB6b25lSW4gPVxuICAgICAgICB6b25lX2RfaGFiaXRhdGlvbl90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uem9uZV9pblxuICAgICAgdmFsIHJlc2lkZW5jZUluID1cbiAgICAgICAgY29sbGVjdGl2aXRlX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5yZXNpZGVuY2VfaW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCBtZW5zdWFsaXRlUHJpbmNpcGFsZUluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4ubWVuc3VhbGl0ZV9wcmluY2lwYWxlX2luXG4gICAgICB2YWwgc2l0dWF0aW9uUjgyMjExMTMxN0luID1cbiAgICAgICAgSnMuYm9vbCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLnNpdHVhdGlvbl9yODIyXzExXzEzXzE3X2luXG4gICAgICB2YWwgZGF0ZVNpZ25hdHVyZVByZXRJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLmRhdGVfc2lnbmF0dXJlX3ByZXRfaW5cbiAgICAgIHZhbCB0eXBlVHJhdmF1eExvZ2VtZW50SW4gPVxuICAgICAgICB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81X3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi50eXBlX3RyYXZhdXhfbG9nZW1lbnRfaW5cbiAgICAgIHZhbCBsb2NhbEhhYml0ZVByZW1pZXJlRm9pc0JlbmVmaWNpYWlyZUluID1cbiAgICAgICAgSnMuYm9vbCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLmxvY2FsX2hhYml0ZV9wcmVtaWVyZV9mb2lzX2JlbmVmaWNpYWlyZV9pblxuICAgICAgdmFsIGRhdGVFbnRyZWVMb2dlbWVudEluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uZGF0ZV9lbnRyZWVfbG9nZW1lbnRfaW5cbiAgICAgIHZhbCBjaGFyZ2VzTWVuc3VlbGxlc1ByZXRJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLmNoYXJnZXNfbWVuc3VlbGxlc19wcmV0X2luXG4gICAgICB2YWwgY29wcm9wcmlldGVJbiA9XG4gICAgICAgIEpzLmJvb2wgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5jb3Byb3ByaWV0ZV9pblxuICAgICAgdmFsIG9wZXJhdGlvbnNMb2dlbWVudEV2b2x1dGlmc1NvY2lhdXhBY2Nlc3Npb25Qcm9wcmlldGVBaWRlZUV0YXRJbiA9XG4gICAgICAgIEpzLmJvb2wgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5vcGVyYXRpb25zX2xvZ2VtZW50X2V2b2x1dGlmc19zb2NpYXV4X2FjY2Vzc2lvbl9wcm9wcmlldGVfYWlkZWVfRXRhdF9pblxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luX29mX2pzb29cbiAgICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luIEpzLnQpIDpcbiAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi50ID1cbiAgICB7XG4gICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfYmFzZV9pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICAgICAgIyMucmVzc291cmNlc01lbmFnZUFycm9uZGllc0Jhc2VJbjtcbiAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICBpbnRlZ2VyX29mX2ludFxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5ub21icmVQZXJzb25uZXNBQ2hhcmdlSW47XG4gICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbF9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLnNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFwbEluO1xuICAgICAgem9uZV9pbiA9XG4gICAgICAgIHpvbmVfZF9oYWJpdGF0aW9uX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luIyMuem9uZUluO1xuICAgICAgcmVzaWRlbmNlX2luID1cbiAgICAgICAgY29sbGVjdGl2aXRlX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luIyMucmVzaWRlbmNlSW47XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiMjLmRhdGVDb3VyYW50ZUluO1xuICAgICAgbWVuc3VhbGl0ZV9wcmluY2lwYWxlX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5tZW5zdWFsaXRlUHJpbmNpcGFsZUluO1xuICAgICAgc2l0dWF0aW9uX3I4MjJfMTFfMTNfMTdfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLnNpdHVhdGlvblI4MjIxMTEzMTdJbjtcbiAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICAgICAgIyMuZGF0ZVNpZ25hdHVyZVByZXRJbjtcbiAgICAgIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9pbiA9XG4gICAgICAgIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzVfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy50eXBlVHJhdmF1eExvZ2VtZW50SW47XG4gICAgICBsb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW5lZmljaWFpcmVfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLmxvY2FsSGFiaXRlUHJlbWllcmVGb2lzQmVuZWZpY2lhaXJlSW47XG4gICAgICBkYXRlX2VudHJlZV9sb2dlbWVudF9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5kYXRlRW50cmVlTG9nZW1lbnRJbjtcbiAgICAgIGNoYXJnZXNfbWVuc3VlbGxlc19wcmV0X2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5jaGFyZ2VzTWVuc3VlbGxlc1ByZXRJbjtcbiAgICAgIGNvcHJvcHJpZXRlX2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4jIy5jb3Byb3ByaWV0ZUluO1xuICAgICAgb3BlcmF0aW9uc19sb2dlbWVudF9ldm9sdXRpZnNfc29jaWF1eF9hY2Nlc3Npb25fcHJvcHJpZXRlX2FpZGVlX0V0YXRfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLm9wZXJhdGlvbnNMb2dlbWVudEV2b2x1dGlmc1NvY2lhdXhBY2Nlc3Npb25Qcm9wcmlldGVBaWRlZUV0YXRJblxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB0eXBlTG9nZW1lbnRGb3llckluOiB0eXBlX2xvZ2VtZW50X2ZveWVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlQ29udmVudGlvbm5lbWVudEluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc2lkZW5jZUluOiBjb2xsZWN0aXZpdGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlZGV2YW5jZUluOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBub21icmVQZXJzb25uZXNBQ2hhcmdlSW46IGludCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFwbEluOlxuICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHpvbmVJbjogem9uZV9kX2hhYml0YXRpb24gSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGNhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJEODQyMTZJbjpcbiAgICAgIGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luX3RvX2pzb29cbiAgICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4gOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLnQpXG4gICAgOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCB0eXBlTG9nZW1lbnRGb3llckluID1cbiAgICAgICAgdHlwZV9sb2dlbWVudF9mb3llcl90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLnR5cGVfbG9nZW1lbnRfZm95ZXJfaW5cbiAgICAgIHZhbCBkYXRlQ29udmVudGlvbm5lbWVudEluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLmRhdGVfY29udmVudGlvbm5lbWVudF9pblxuICAgICAgdmFsIHJlc2lkZW5jZUluID1cbiAgICAgICAgY29sbGVjdGl2aXRlX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4ucmVzaWRlbmNlX2luXG4gICAgICB2YWwgcmVkZXZhbmNlSW4gPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4ucmVkZXZhbmNlX2luXG4gICAgICB2YWwgcmVzc291cmNlc01lbmFnZUFycm9uZGllc0luID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pblxuICAgICAgdmFsIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbiA9XG4gICAgICAgIGludGVnZXJfdG9faW50IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW5cbiAgICAgIHZhbCBzaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbiA9XG4gICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luXG4gICAgICB2YWwgem9uZUluID1cbiAgICAgICAgem9uZV9kX2hhYml0YXRpb25fdG9fanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbi56b25lX2luXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIGNhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJEODQyMTZJbiA9XG4gICAgICAgIGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4uY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfaW5cbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW5fb2ZfanNvb1xuICAgIChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pblxuICAgICAgOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbiBKcy50KSA6XG4gICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi50ID1cbiAgICB7XG4gICAgICB0eXBlX2xvZ2VtZW50X2ZveWVyX2luID1cbiAgICAgICAgdHlwZV9sb2dlbWVudF9mb3llcl9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4jIy50eXBlTG9nZW1lbnRGb3llckluO1xuICAgICAgZGF0ZV9jb252ZW50aW9ubmVtZW50X2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4jIy5kYXRlQ29udmVudGlvbm5lbWVudEluO1xuICAgICAgcmVzaWRlbmNlX2luID1cbiAgICAgICAgY29sbGVjdGl2aXRlX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbiMjLnJlc2lkZW5jZUluO1xuICAgICAgcmVkZXZhbmNlX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luIyMucmVkZXZhbmNlSW47XG4gICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4jIy5yZXNzb3VyY2VzTWVuYWdlQXJyb25kaWVzSW47XG4gICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgaW50ZWdlcl9vZl9pbnRcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbiMjLm5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbjtcbiAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiA9XG4gICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbiMjLnNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFwbEluO1xuICAgICAgem9uZV9pbiA9XG4gICAgICAgIHpvbmVfZF9oYWJpdGF0aW9uX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbiMjLnpvbmVJbjtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4jIy5kYXRlQ291cmFudGVJbjtcbiAgICAgIGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2X2luID1cbiAgICAgICAgY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luXG4gICAgICAgICAgIyMuY2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckQ4NDIxNkluXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG1vZGVPY2N1cGF0aW9uSW46IG1vZGVfb2NjdXBhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzc291cmNlc01lbmFnZVNhbnNBcnJvbmRpSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgc2l0dWF0aW9uRmFtaWxpYWxlSW46IHNpdHVhdGlvbl9mYW1pbGlhbGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbjogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgem9uZUluOiB6b25lX2RfaGFiaXRhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHlwZUFpZGVJbjogdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzaWRlbmNlSW46IGNvbGxlY3Rpdml0ZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbl90b19qc29vIChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pblxuICAgIDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4udCkgOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtb2RlT2NjdXBhdGlvbkluID1cbiAgICAgICAgbW9kZV9vY2N1cGF0aW9uX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4ubW9kZV9vY2N1cGF0aW9uX2luXG4gICAgICB2YWwgcmVzc291cmNlc01lbmFnZVNhbnNBcnJvbmRpSW4gPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4ucmVzc291cmNlc19tZW5hZ2Vfc2Fuc19hcnJvbmRpX2luXG4gICAgICB2YWwgc2l0dWF0aW9uRmFtaWxpYWxlSW4gPVxuICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9pblxuICAgICAgdmFsIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbiA9XG4gICAgICAgIGludGVnZXJfdG9faW50IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW5cbiAgICAgIHZhbCB6b25lSW4gPVxuICAgICAgICB6b25lX2RfaGFiaXRhdGlvbl90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLnpvbmVfaW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbi5kYXRlX2NvdXJhbnRlX2luXG4gICAgICB2YWwgdHlwZUFpZGVJbiA9XG4gICAgICAgIHR5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfdG9fanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbi50eXBlX2FpZGVfaW5cbiAgICAgIHZhbCByZXNpZGVuY2VJbiA9XG4gICAgICAgIGNvbGxlY3Rpdml0ZV90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLnJlc2lkZW5jZV9pblxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbl9vZl9qc29vXG4gICAgKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luIDogY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4gSnMudCkgOlxuICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLnQgPVxuICAgIHtcbiAgICAgIG1vZGVfb2NjdXBhdGlvbl9pbiA9XG4gICAgICAgIG1vZGVfb2NjdXBhdGlvbl9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4jIy5tb2RlT2NjdXBhdGlvbkluO1xuICAgICAgcmVzc291cmNlc19tZW5hZ2Vfc2Fuc19hcnJvbmRpX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luIyMucmVzc291cmNlc01lbmFnZVNhbnNBcnJvbmRpSW47XG4gICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2luID1cbiAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4jIy5zaXR1YXRpb25GYW1pbGlhbGVJbjtcbiAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICBpbnRlZ2VyX29mX2ludFxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luIyMubm9tYnJlUGVyc29ubmVzQUNoYXJnZUluO1xuICAgICAgem9uZV9pbiA9XG4gICAgICAgIHpvbmVfZF9oYWJpdGF0aW9uX29mX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4jIy56b25lSW47XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICB0eXBlX2FpZGVfaW4gPVxuICAgICAgICB0eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiMjLnR5cGVBaWRlSW47XG4gICAgICByZXNpZGVuY2VfaW4gPVxuICAgICAgICBjb2xsZWN0aXZpdGVfb2ZfanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiMjLnJlc2lkZW5jZUluXG4gICAgfVxuXG5jbGFzcyB0eXBlIG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW4gPVxuICBvYmplY3QgbWV0aG9kIGRhdGVOYWlzc2FuY2VBc3N1cmVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW5fdG9fanNvbyAob3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9pblxuICAgIDogT3V2ZXJ0dXJlRHJvaXRzUmV0cmFpdGVJbi50KSA6IG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZGF0ZU5haXNzYW5jZUFzc3VyZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW4uZGF0ZV9uYWlzc2FuY2VfYXNzdXJlX2luXG4gICAgICBlbmRcbiAgbGV0IG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW5fb2ZfanNvb1xuICAgIChvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luIDogb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9pbiBKcy50KSA6XG4gICAgT3V2ZXJ0dXJlRHJvaXRzUmV0cmFpdGVJbi50ID1cbiAgICB7XG4gICAgICBkYXRlX25haXNzYW5jZV9hc3N1cmVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb28gb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9pbiMjLmRhdGVOYWlzc2FuY2VBc3N1cmVJblxuICAgIH1cblxuY2xhc3MgdHlwZSBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBtb2RlT2NjdXBhdGlvbkluOiBtb2RlX29jY3VwYXRpb24gSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFpZGVWZXJzZWVJbjogdmVyc2VtZW50X2EgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG1vbnRhbnRBcGxJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBtb250YW50Q2hhcmdlc0luOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRlcGVuc2VMb2dlbWVudEluOiBkZXBlbnNlX2xvZ2VtZW50IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBtb250YW50RGV0dGVJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luX3RvX2pzb28gKGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luXG4gICAgOiBJbXBheWVEZXBlbnNlTG9nZW1lbnRJbi50KSA6IGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG1vZGVPY2N1cGF0aW9uSW4gPVxuICAgICAgICBtb2RlX29jY3VwYXRpb25fdG9fanNvbyBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbi5tb2RlX29jY3VwYXRpb25faW5cbiAgICAgIHZhbCBhaWRlVmVyc2VlSW4gPVxuICAgICAgICB2ZXJzZW1lbnRfYV90b19qc29vIGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luLmFpZGVfdmVyc2VlX2luXG4gICAgICB2YWwgbW9udGFudEFwbEluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luLm1vbnRhbnRfYXBsX2luXG4gICAgICB2YWwgbW9udGFudENoYXJnZXNJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbi5tb250YW50X2NoYXJnZXNfaW5cbiAgICAgIHZhbCBkZXBlbnNlTG9nZW1lbnRJbiA9XG4gICAgICAgIGRlcGVuc2VfbG9nZW1lbnRfdG9fanNvbyBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbi5kZXBlbnNlX2xvZ2VtZW50X2luXG4gICAgICB2YWwgbW9udGFudERldHRlSW4gPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW4ubW9udGFudF9kZXR0ZV9pblxuICAgICAgZW5kXG4gIGxldCBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbl9vZl9qc29vXG4gICAgKGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luIDogaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW4gSnMudCkgOlxuICAgIEltcGF5ZURlcGVuc2VMb2dlbWVudEluLnQgPVxuICAgIHtcbiAgICAgIG1vZGVfb2NjdXBhdGlvbl9pbiA9XG4gICAgICAgIG1vZGVfb2NjdXBhdGlvbl9vZl9qc29vIGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luIyMubW9kZU9jY3VwYXRpb25JbjtcbiAgICAgIGFpZGVfdmVyc2VlX2luID1cbiAgICAgICAgdmVyc2VtZW50X2Ffb2ZfanNvbyBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbiMjLmFpZGVWZXJzZWVJbjtcbiAgICAgIG1vbnRhbnRfYXBsX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luIyMubW9udGFudEFwbEluO1xuICAgICAgbW9udGFudF9jaGFyZ2VzX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luIyMubW9udGFudENoYXJnZXNJbjtcbiAgICAgIGRlcGVuc2VfbG9nZW1lbnRfaW4gPVxuICAgICAgICBkZXBlbnNlX2xvZ2VtZW50X29mX2pzb29cbiAgICAgICAgICBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbiMjLmRlcGVuc2VMb2dlbWVudEluO1xuICAgICAgbW9udGFudF9kZXR0ZV9pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbiMjLm1vbnRhbnREZXR0ZUluXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgbWVuYWdlSW46IG1lbmFnZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGVtYW5kZXVySW46IGRlbWFuZGV1ciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzc291cmNlc01lbmFnZVByaXNlc0VuQ29tcHRlSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luX3RvX2pzb29cbiAgICAoY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pbiA6IENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRJbi50KVxuICAgIDogY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtZW5hZ2VJbiA9IG1lbmFnZV90b19qc29vIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW4ubWVuYWdlX2luXG4gICAgICB2YWwgZGVtYW5kZXVySW4gPVxuICAgICAgICBkZW1hbmRldXJfdG9fanNvbyBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luLmRlbWFuZGV1cl9pblxuICAgICAgdmFsIGRhdGVDb3VyYW50ZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIHJlc3NvdXJjZXNNZW5hZ2VQcmlzZXNFbkNvbXB0ZUluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW4ucmVzc291cmNlc19tZW5hZ2VfcHJpc2VzX2VuX2NvbXB0ZV9pblxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luX29mX2pzb29cbiAgICAoY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pbiA6IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW4gSnMudCkgOlxuICAgIENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRJbi50ID1cbiAgICB7XG4gICAgICBtZW5hZ2VfaW4gPSBtZW5hZ2Vfb2ZfanNvbyBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luIyMubWVuYWdlSW47XG4gICAgICBkZW1hbmRldXJfaW4gPVxuICAgICAgICBkZW1hbmRldXJfb2ZfanNvbyBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luIyMuZGVtYW5kZXVySW47XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW4jIy5kYXRlQ291cmFudGVJbjtcbiAgICAgIHJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pbiMjLnJlc3NvdXJjZXNNZW5hZ2VQcmlzZXNFbkNvbXB0ZUluXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgbWVuYWdlSW46IG1lbmFnZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGVtYW5kZXVySW46IGRlbWFuZGV1ciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzc291cmNlc01lbmFnZVByaXNlc0VuQ29tcHRlSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luX3RvX2pzb29cbiAgICAoY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pblxuICAgIDogQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWVJbi50KVxuICAgIDogY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtZW5hZ2VJbiA9XG4gICAgICAgIG1lbmFnZV90b19qc29vIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW4ubWVuYWdlX2luXG4gICAgICB2YWwgZGVtYW5kZXVySW4gPVxuICAgICAgICBkZW1hbmRldXJfdG9fanNvbyBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luLmRlbWFuZGV1cl9pblxuICAgICAgdmFsIGRhdGVDb3VyYW50ZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIHJlc3NvdXJjZXNNZW5hZ2VQcmlzZXNFbkNvbXB0ZUluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW4ucmVzc291cmNlc19tZW5hZ2VfcHJpc2VzX2VuX2NvbXB0ZV9pblxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luX29mX2pzb29cbiAgICAoY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pblxuICAgICAgOiBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luIEpzLnQpIDpcbiAgICBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm5lZUluLnQgPVxuICAgIHtcbiAgICAgIG1lbmFnZV9pbiA9XG4gICAgICAgIG1lbmFnZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pbiMjLm1lbmFnZUluO1xuICAgICAgZGVtYW5kZXVyX2luID1cbiAgICAgICAgZGVtYW5kZXVyX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luIyMuZGVtYW5kZXVySW47XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pbiMjLmRhdGVDb3VyYW50ZUluO1xuICAgICAgcmVzc291cmNlc19tZW5hZ2VfcHJpc2VzX2VuX2NvbXB0ZV9pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luXG4gICAgICAgICAgIyMucmVzc291cmNlc01lbmFnZVByaXNlc0VuQ29tcHRlSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiA9XG4gIG9iamVjdCBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX3RvX2pzb29cbiAgICAoYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pblxuICAgIDogQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnQpXG4gICAgOiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGRhdGVDb3VyYW50ZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgZW5kXG4gIGxldCBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX29mX2pzb29cbiAgICAoYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pblxuICAgICAgOiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQpIDpcbiAgICBCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4udCA9XG4gICAge1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvb1xuICAgICAgICAgIGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4jIy5kYXRlQ291cmFudGVJblxuICAgIH1cblxuY2xhc3MgdHlwZSB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgZGF0ZU5haXNzYW5jZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFubmVlc0luOiBSdW50aW1lX2pzb28uUnVudGltZS5kdXJhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW5fdG9fanNvb1xuICAgICh2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW5cbiAgICA6IFZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi50KVxuICAgIDogdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGRhdGVOYWlzc2FuY2VJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4uZGF0ZV9uYWlzc2FuY2VfaW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIGFubmVlc0luID1cbiAgICAgICAgZHVyYXRpb25fdG9fanNvbyB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4uYW5uZWVzX2luXG4gICAgICBlbmRcbiAgbGV0IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbl9vZl9qc29vXG4gICAgKHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pblxuICAgICAgOiB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4gSnMudCkgOlxuICAgIFZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi50ID1cbiAgICB7XG4gICAgICBkYXRlX25haXNzYW5jZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvb1xuICAgICAgICAgIHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbiMjLmRhdGVOYWlzc2FuY2VJbjtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb28gdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICBhbm5lZXNfaW4gPVxuICAgICAgICBkdXJhdGlvbl9vZl9qc29vIHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbiMjLmFubmVlc0luXG4gICAgfVxuXG5jbGFzcyB0eXBlIHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgZGF0ZU5haXNzYW5jZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFubmVlc0luOiBSdW50aW1lX2pzb28uUnVudGltZS5kdXJhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luX3RvX2pzb29cbiAgICAodmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbiA6IFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi50KVxuICAgIDogdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBkYXRlTmFpc3NhbmNlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbi5kYXRlX25haXNzYW5jZV9pblxuICAgICAgdmFsIGRhdGVDb3VyYW50ZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIGFubmVlc0luID1cbiAgICAgICAgZHVyYXRpb25fdG9fanNvbyB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luLmFubmVlc19pblxuICAgICAgZW5kXG4gIGxldCB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luX29mX2pzb29cbiAgICAodmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbiA6IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4gSnMudCkgOlxuICAgIFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi50ID1cbiAgICB7XG4gICAgICBkYXRlX25haXNzYW5jZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luIyMuZGF0ZU5haXNzYW5jZUluO1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICBhbm5lZXNfaW4gPSBkdXJhdGlvbl9vZl9qc29vIHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4jIy5hbm5lZXNJblxuICAgIH1cblxuY2xhc3MgdHlwZSBzbWljX2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc2lkZW5jZUluOiBjb2xsZWN0aXZpdGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgc21pY19pbl90b19qc29vIChzbWljX2luIDogU21pY0luLnQpIDogc21pY19pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9IGRhdGVfdG9fanNvbyBzbWljX2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCByZXNpZGVuY2VJbiA9IGNvbGxlY3Rpdml0ZV90b19qc29vIHNtaWNfaW4ucmVzaWRlbmNlX2luXG4gICAgICBlbmRcbiAgbGV0IHNtaWNfaW5fb2ZfanNvbyAoc21pY19pbiA6IHNtaWNfaW4gSnMudCkgOiBTbWljSW4udCA9XG4gICAge1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9IGRhdGVfb2ZfanNvbyBzbWljX2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICByZXNpZGVuY2VfaW4gPSBjb2xsZWN0aXZpdGVfb2ZfanNvbyBzbWljX2luIyMucmVzaWRlbmNlSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBwcmVzdGF0aW9uQ291cmFudGVJbjpcbiAgICAgIGVsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzaWRlbmNlSW46IGNvbGxlY3Rpdml0ZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYWdlTDUxMjMySW46XG4gICAgICAodW5pdCwgIHVuaXQgLT4gUnVudGltZV9qc29vLlJ1bnRpbWUuZHVyYXRpb24gSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gIGVuZFxuICBsZXQgZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbl90b19qc29vXG4gICAgKGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW5cbiAgICA6IEVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4udClcbiAgICA6IGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbi5kYXRlX2NvdXJhbnRlX2luXG4gICAgICB2YWwgcHJlc3RhdGlvbkNvdXJhbnRlSW4gPVxuICAgICAgICBlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfdG9fanNvbyBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luLnByZXN0YXRpb25fY291cmFudGVfaW5cbiAgICAgIHZhbCByZXNpZGVuY2VJbiA9XG4gICAgICAgIGNvbGxlY3Rpdml0ZV90b19qc29vIGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4ucmVzaWRlbmNlX2luXG4gICAgICBtZXRob2QgYWdlTDUxMjMySW4gPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IHVuaXQpIC0+XG4gICAgICAgICAgZHVyYXRpb25fdG9fanNvbyAoZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbi5hZ2VfbDUxMl8zXzJfaW4gXG4gICAgICAgICAgKFxuICAgICAgICAgICAgZnVuY3Rpb25faW5wdXQwKSkpXG4gICAgICBlbmRcbiAgbGV0IGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW5fb2ZfanNvb1xuICAgIChlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luXG4gICAgICA6IGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4gSnMudCkgOlxuICAgIEVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4udCA9XG4gICAge1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICBwcmVzdGF0aW9uX2NvdXJhbnRlX2luID1cbiAgICAgICAgZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX29mX2pzb29cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luIyMucHJlc3RhdGlvbkNvdXJhbnRlSW47XG4gICAgICByZXNpZGVuY2VfaW4gPVxuICAgICAgICBjb2xsZWN0aXZpdGVfb2ZfanNvb1xuICAgICAgICAgIGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4jIy5yZXNpZGVuY2VJbjtcbiAgICAgIGFnZV9sNTEyXzNfMl9pbiA9IGZhaWx3aXRoIFwiVGhlIGZ1bmN0aW9uICdhZ2VfbDUxMl8zXzJfaW4nIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIlxuICAgIH1cblxuXG5cblxubGV0IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgKGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4gOiBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIEpzLnQpXG4gIDogY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCBKcy50ID1cbiAgY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pblxuICB8PiBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luX29mX2pzb29cbiAgfD4gY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudFxuICB8PiBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X3RvX2pzb29cblxuXG5sZXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlXG4gIChjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW4gOiBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW4gSnMudClcbiAgOiBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUgSnMudCA9XG4gIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pblxuICB8PiBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW5fb2ZfanNvb1xuICB8PiBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVcbiAgfD4gY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX3RvX2pzb29cblxuXG5sZXQgY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyXG4gIChjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW4gOiBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW4gSnMudClcbiAgOiBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXIgSnMudCA9XG4gIGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pblxuICB8PiBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW5fb2ZfanNvb1xuICB8PiBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJcbiAgfD4gY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX3RvX2pzb29cblxuXG5sZXQgY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlXG4gIChjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4gOiBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4gSnMudClcbiAgOiBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGUgSnMudCA9XG4gIGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICB8PiBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5fb2ZfanNvb1xuICB8PiBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGVcbiAgfD4gY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlX3RvX2pzb29cblxuXG5sZXQgb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZVxuICAob3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9pbiA6IG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW4gSnMudClcbiAgOiBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlIEpzLnQgPVxuICBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luXG4gIHw+IG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW5fb2ZfanNvb1xuICB8PiBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlXG4gIHw+IG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfdG9fanNvb1xuXG5cbmxldCBpbXBheWVfZGVwZW5zZV9sb2dlbWVudFxuICAoaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW4gOiBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbiBKcy50KVxuICA6IGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50IEpzLnQgPVxuICBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pblxuICB8PiBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbl9vZl9qc29vXG4gIHw+IGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50XG4gIHw+IGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X3RvX2pzb29cblxuXG5sZXQgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICAoYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiA6IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gSnMudClcbiAgOiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzIEpzLnQgPVxuICBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luXG4gIHw+IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5fb2ZfanNvb1xuICB8PiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzXG4gIHw+IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfdG9fanNvb1xuXG5cbmxldCB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FcbiAgKHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbiA6IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbiBKcy50KVxuICA6IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYSBKcy50ID1cbiAgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luXG4gIHw+IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbl9vZl9qc29vXG4gIHw+IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYVxuICB8PiB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfdG9fanNvb1xuXG5cbmxldCB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hXG4gICh2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luIDogdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbiBKcy50KVxuICA6IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EgSnMudCA9XG4gIHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW5cbiAgfD4gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbl9vZl9qc29vXG4gIHw+IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FcbiAgfD4gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV90b19qc29vXG5cblxubGV0IHNtaWMgKHNtaWNfaW4gOiBzbWljX2luIEpzLnQpXG4gIDogc21pYyBKcy50ID1cbiAgc21pY19pbiB8PiBzbWljX2luX29mX2pzb28gfD4gc21pYyB8PiBzbWljX3RvX2pzb29cblxuXG5sZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmXG4gIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4gOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4gSnMudClcbiAgOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWYgSnMudCA9XG4gIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pblxuICB8PiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW5fb2ZfanNvb1xuICB8PiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZcbiAgfD4gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX3RvX2pzb29cblxuXG5sZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llclxuICAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbiA6IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4gSnMudClcbiAgOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyIEpzLnQgPVxuICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luXG4gIHw+IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW5fb2ZfanNvb1xuICB8PiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyXG4gIHw+IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfdG9fanNvb1xuXG5cbmxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVcbiAgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiA6IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiBKcy50KVxuICA6IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZSBKcy50ID1cbiAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gIHw+IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbl9vZl9qc29vXG4gIHw+IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZVxuICB8PiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfdG9fanNvb1xuXG5cbmxldCByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50XG4gIChyZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIDogcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbiBKcy50KVxuICA6IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgSnMudCA9XG4gIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW5cbiAgfD4gcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbl9vZl9qc29vXG4gIHw+IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgfD4gcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF90b19qc29vXG5cblxubGV0IGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNcbiAgKGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4gOiBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQpXG4gIDogZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyBKcy50ID1cbiAgZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pblxuICB8PiBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luX29mX2pzb29cbiAgfD4gZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc1xuICB8PiBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX3RvX2pzb29cblxuXG5sZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZlxuICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbiA6IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4gSnMudClcbiAgOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmIEpzLnQgPVxuICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luXG4gIHw+IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW5fb2ZfanNvb1xuICB8PiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmXG4gIHw+IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfdG9fanNvb1xuXG5cbmxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llclxuICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4gOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbiBKcy50KVxuICA6IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyIEpzLnQgPVxuICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pblxuICB8PiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbl9vZl9qc29vXG4gIHw+IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyXG4gIHw+IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX3RvX2pzb29cblxuXG5sZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZVxuICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiA6IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4gSnMudClcbiAgOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlIEpzLnQgPVxuICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gIHw+IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5fb2ZfanNvb1xuICB8PiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlXG4gIHw+IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfdG9fanNvb1xuXG5cbmxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50XG4gIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIDogY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiBKcy50KVxuICA6IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQgSnMudCA9XG4gIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW5cbiAgfD4gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbl9vZl9qc29vXG4gIHw+IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRcbiAgfD4gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF90b19qc29vXG5cblxubGV0IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50XG4gIChlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbiA6IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIEpzLnQpXG4gIDogZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgSnMudCA9XG4gIGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luXG4gIHw+IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luX29mX2pzb29cbiAgfD4gZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgfD4gZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfdG9fanNvb1xuXG5cbmxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudFxuICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4gOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiBKcy50KVxuICA6IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50IEpzLnQgPVxuICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pblxuICB8PiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbl9vZl9qc29vXG4gIHw+IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50XG4gIHw+IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X3RvX2pzb29cblxuXG5sZXQgZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50XG4gIChlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4gOiBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4gSnMudClcbiAgOiBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnQgSnMudCA9XG4gIGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pblxuICB8PiBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW5fb2ZfanNvb1xuICB8PiBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRcbiAgfD4gZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X3RvX2pzb29cblxuXG5sZXQgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudFxuICAoZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiA6IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4gSnMudClcbiAgOiBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50IEpzLnQgPVxuICBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2luXG4gIHw+IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW5fb2ZfanNvb1xuICB8PiBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50XG4gIHw+IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfdG9fanNvb1xuXG5cbmxldCBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRcbiAgKGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiA6IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiBKcy50KVxuICA6IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudCBKcy50ID1cbiAgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luXG4gIHw+IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbl9vZl9qc29vXG4gIHw+IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudFxuICB8PiBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfdG9fanNvb1xuXG5cbmxldCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50XG4gIChjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luIDogY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pbiBKcy50KVxuICA6IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnQgSnMudCA9XG4gIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW5cbiAgfD4gY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pbl9vZl9qc29vXG4gIHw+IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRcbiAgfD4gY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF90b19qc29vXG5cblxubGV0IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVcbiAgKGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW4gOiBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luIEpzLnQpXG4gIDogY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZSBKcy50ID1cbiAgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pblxuICB8PiBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luX29mX2pzb29cbiAgfD4gY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZVxuICB8PiBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX3RvX2pzb29cblxuXG5sZXQgXyA9XG4gICBKcy5leHBvcnQgXCJBaWRlc0xvZ2VtZW50TGliXCJcbiAgICAob2JqZWN0JWpzXG4gICAgICBcbiAgICAgIG1ldGhvZCBjb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQgOiAoY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbiBKcy50IC0+IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgICAgIFxuICAgICAgbWV0aG9kIGNhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZSA6IChjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW4gSnMudCAtPiBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZVxuICAgICAgXG4gICAgICBtZXRob2QgY2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXIgOiAoY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luIEpzLnQgLT4gY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyIEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJcbiAgICAgIFxuICAgICAgbWV0aG9kIGNhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlIDogKGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiBKcy50IC0+IGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZSBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlXG4gICAgICBcbiAgICAgIG1ldGhvZCBvdXZlcnR1cmVEcm9pdHNSZXRyYWl0ZSA6IChvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luIEpzLnQgLT4gb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZSBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZVxuICAgICAgXG4gICAgICBtZXRob2QgaW1wYXllRGVwZW5zZUxvZ2VtZW50IDogKGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luIEpzLnQgLT4gaW1wYXllX2RlcGVuc2VfbG9nZW1lbnQgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50XG4gICAgICBcbiAgICAgIG1ldGhvZCBiYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzIDogKGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gSnMudCAtPiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzIEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzXG4gICAgICBcbiAgICAgIG1ldGhvZCB2ZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBIDogKHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbiBKcy50IC0+IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYSBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hXG4gICAgICBcbiAgICAgIG1ldGhvZCB2ZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBIDogKHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4gSnMudCAtPiB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hIEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hXG4gICAgICBcbiAgICAgIG1ldGhvZCBzbWljIDogKHNtaWNfaW4gSnMudCAtPiBzbWljIEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayBzbWljXG4gICAgICBcbiAgICAgIG1ldGhvZCBjYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZiA6IChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4gSnMudCAtPiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWYgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZlxuICAgICAgXG4gICAgICBtZXRob2QgY2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyIDogKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4gSnMudCAtPiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyIEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyXG4gICAgICBcbiAgICAgIG1ldGhvZCBjYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlIDogKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiBKcy50IC0+IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZSBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2tcbiAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlXG4gICAgICBcbiAgICAgIG1ldGhvZCByZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50IDogKHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4gSnMudCAtPiByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50XG4gICAgICBcbiAgICAgIG1ldGhvZCBlbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcyA6IChlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQgLT4gZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc1xuICAgICAgXG4gICAgICBtZXRob2QgY2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZiA6IChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luIEpzLnQgLT4gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZiBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZlxuICAgICAgXG4gICAgICBtZXRob2QgY2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIgOiAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4gSnMudCAtPiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llciBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJcbiAgICAgIFxuICAgICAgbWV0aG9kIGNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZSA6IChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luIEpzLnQgLT4gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZSBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZVxuICAgICAgXG4gICAgICBtZXRob2QgY2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudCA6IChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIEpzLnQgLT4gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudCBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudFxuICAgICAgXG4gICAgICBtZXRob2QgZWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQgOiAoZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4gSnMudCAtPiBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgICAgIFxuICAgICAgbWV0aG9kIGNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudCA6IChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiBKcy50IC0+IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50IEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudFxuICAgICAgXG4gICAgICBtZXRob2QgZWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50IDogKGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pbiBKcy50IC0+IGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudCBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50XG4gICAgICBcbiAgICAgIG1ldGhvZCBlbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudCA6IChlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2luIEpzLnQgLT4gZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudCBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudFxuICAgICAgXG4gICAgICBtZXRob2QgZWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50IDogKGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiBKcy50IC0+IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudCBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50XG4gICAgICBcbiAgICAgIG1ldGhvZCBjYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50IDogKGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW4gSnMudCAtPiBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50IEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50XG4gICAgICBcbiAgICAgIG1ldGhvZCBjYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm5lZSA6IChjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luIEpzLnQgLT4gY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZSBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZVxuICAgICAgXG4gICAgZW5kKSIsIigqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBGcmVuY2ggbGF3IGxpYnJhcnksIGEgY29sbGVjdGlvbiBvZiBmdW5jdGlvbnMgZm9yXG4gICBjb21wdXRpbmcgRnJlbmNoIHRheGVzIGFuZCBiZW5lZml0cyBkZXJpdmVkIGZyb20gQ2F0YWxhIHByb2dyYW1zLiBDb3B5cmlnaHRcbiAgIChDKSAyMDIxIElucmlhLCBjb250cmlidXRvcjogRGVuaXMgTWVyaWdvdXggPGRlbmlzLm1lcmlnb3V4QGlucmlhLmZyPiwgRW1pbGVcbiAgIFJvbGxleSA8ZW1pbGUucm9sbGV5QHR1dGEuaW8+XG5cbiAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7IHlvdSBtYXkgbm90XG4gICB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZlxuICAgdGhlIExpY2Vuc2UgYXRcblxuICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVFxuICAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlXG4gICBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlclxuICAgdGhlIExpY2Vuc2UuICopXG5cbm9wZW4gSnNfb2Zfb2NhbWxcbm9wZW4gTGF3X3NvdXJjZVxub3BlbiBSdW50aW1lX2pzb28uUnVudGltZVxubW9kdWxlIEFGID0gQWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xubW9kdWxlIEFGX3dlYiA9IEFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfYXBpX3dlYlxubW9kdWxlIEFMID0gQWlkZXNfbG9nZW1lbnRcbm1vZHVsZSBBTF93ZWIgPSBBaWRlc19sb2dlbWVudF9hcGlfd2ViXG5cbmxldCBfID1cbiAgSnMuZXhwb3J0X2FsbFxuICAgIChvYmplY3QlanNcbiAgICAgICB2YWwgZXZlbnRzTWFuYWdlciA9IGV2ZW50X21hbmFnZXJcblxuICAgICAgIG1ldGhvZCBjb21wdXRlQWxsb2NhdGlvbnNGYW1pbGlhbGVzXG4gICAgICAgICAgIDogKEFGX3dlYi5pbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiAtPiBmbG9hdCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICAgSnMud3JhcF9jYWxsYmFjayAoZnVuIGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIC0+XG4gICAgICAgICAgICAgZXhlY3V0ZV9vcl90aHJvd19lcnJvciAoZnVuICgpIC0+XG4gICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPVxuICAgICAgICAgICAgICAgICAgIGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luXG4gICAgICAgICAgICAgICAgICAgfD4gQUZfd2ViLmludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgIHJlc3VsdCMjLmlNb250YW50VmVyc2UpKVxuXG4gICAgICAgbWV0aG9kIGNvbXB1dGVBaWRlc0F1TG9nZW1lbnRcbiAgICAgICAgICAgOiAoQUxfd2ViLmNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW4gLT4gZmxvYXQpXG4gICAgICAgICAgICAgSnMuY2FsbGJhY2sgPVxuICAgICAgICAgSnMud3JhcF9jYWxsYmFjayAoZnVuIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW4gLT5cbiAgICAgICAgICAgICBleGVjdXRlX29yX3Rocm93X2Vycm9yIChmdW4gKCkgLT5cbiAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9XG4gICAgICAgICAgICAgICAgICAgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pblxuICAgICAgICAgICAgICAgICAgIHw+IEFMX3dlYi5jYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgIHJlc3VsdCMjLmFpZGVGaW5hbGUpKVxuICAgIGVuZClcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogRW5zdXJlIHRoYXQgW2F0X2V4aXRdIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGF0IHRoZSBlbmQgb2YgZXZlcnkgcHJvZ3JhbSAqKVxuXG5sZXQgXyA9IGRvX2F0X2V4aXQoKVxuIl19 diff --git a/french_law/ocaml/law_source/aides_logement.ml b/french_law/ocaml/law_source/aides_logement.ml index 31d8a9de..582d01a1 100644 --- a/french_law/ocaml/law_source/aides_logement.ml +++ b/french_law/ocaml/law_source/aides_logement.ml @@ -1591,6 +1591,7 @@ module RessourcesAidesPersonnelleLogementIn = struct personnes_a_charge_in: PersonneACharge.t array; situation_familiale_in: SituationFamiliale.t; mode_occupation_in: ModeOccupation.t; + date_courante_in: date; condition_age_bourse_enseignement_superieur_in: bool; demandeur_poursuit_des_etudes_in: bool; date_demande_ou_reexamen_droit_in: date; @@ -1618,6 +1619,8 @@ let embed_ressources_aides_personnelle_logement_in (x: RessourcesAidesPersonnell x.RessourcesAidesPersonnelleLogementIn.situation_familiale_in); ("mode_occupation_in", embed_mode_occupation x.RessourcesAidesPersonnelleLogementIn.mode_occupation_in); + ("date_courante_in", embed_date + x.RessourcesAidesPersonnelleLogementIn.date_courante_in); ("condition_âge_bourse_enseignement_supérieur_in", embed_bool x.RessourcesAidesPersonnelleLogementIn.condition_age_bourse_enseignement_superieur_in); ("demandeur_poursuit_des_études_in", embed_bool @@ -2219,15 +2222,15 @@ let contributions_sociales_aides_personnelle_logement (contributions_sociales_ai try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=555; start_column=11; end_line=555; end_column=22; + start_line=556; start_column=11; end_line=556; end_column=22; law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=555; start_column=11; - end_line=555; end_column=22; + start_line=556; start_column=11; + end_line=556; end_column=22; law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) @@ -2244,7 +2247,7 @@ let contributions_sociales_aides_personnelle_logement (contributions_sociales_ai (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=555; start_column=11; end_line=555; end_column=22; + start_line=556; start_column=11; end_line=556; end_column=22; law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) @@ -2252,7 +2255,7 @@ let contributions_sociales_aides_personnelle_logement (contributions_sociales_ai with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=555; start_column=11; end_line=555; end_column=22; + start_line=556; start_column=11; end_line=556; end_column=22; law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]})))) in @@ -2262,7 +2265,7 @@ let contributions_sociales_aides_personnelle_logement (contributions_sociales_ai try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=554; start_column=11; end_line=554; end_column=20; + start_line=555; start_column=11; end_line=555; end_column=20; law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) @@ -2277,7 +2280,7 @@ let contributions_sociales_aides_personnelle_logement (contributions_sociales_ai with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=554; start_column=11; end_line=554; end_column=20; + start_line=555; start_column=11; end_line=555; end_column=20; law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]})))) in @@ -2289,7 +2292,7 @@ let contributions_sociales_aides_personnelle_logement (contributions_sociales_ai try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=557; start_column=12; end_line=557; end_column=19; + start_line=558; start_column=12; end_line=558; end_column=19; law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) @@ -2306,14 +2309,14 @@ let contributions_sociales_aides_personnelle_logement (contributions_sociales_ai with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=557; start_column=12; end_line=557; end_column=19; + start_line=558; start_column=12; end_line=558; end_column=19; law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=557; start_column=12; end_line=557; end_column=19; + start_line=558; start_column=12; end_line=558; end_column=19; law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]})))) in @@ -2339,15 +2342,15 @@ let contributions_sociales_aides_personnelle_logement (contributions_sociales_ai with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=562; start_column=13; - end_line=562; end_column=42; + start_line=563; start_column=13; + end_line=563; end_column=42; law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]}))) then () else raise (AssertionFailed {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=562; start_column=13; - end_line=562; end_column=42; + start_line=563; start_column=13; + end_line=563; end_column=42; law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]}) in @@ -2364,14 +2367,14 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=649; start_column=11; end_line=649; end_column=38; + start_line=655; start_column=11; end_line=655; end_column=38; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2689; start_column=14; end_line=2689; end_column=41; + start_line=2720; start_column=14; end_line=2720; end_column=41; law_headings=["Article 31"; "Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -2382,7 +2385,7 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=649; start_column=11; end_line=649; end_column=38; + start_line=655; start_column=11; end_line=655; end_column=38; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -2393,7 +2396,7 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=646; start_column=11; end_line=646; end_column=35; + start_line=652; start_column=11; end_line=652; end_column=35; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -2401,16 +2404,16 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=646; start_column=11; - end_line=646; end_column=35; + start_line=652; start_column=11; + end_line=652; end_column=35; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2653; start_column=5; - end_line=2653; end_column=26; + start_line=2684; start_column=5; + end_line=2684; end_column=26; law_headings=["Article 31"; "Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -2448,7 +2451,7 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal TrancheRevenu.taux = (decimal_of_string "0.328")})|]))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2603; start_column=14; end_line=2603; end_column=38; + start_line=2634; start_column=14; end_line=2634; end_column=38; law_headings=["Article 31"; "Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -2480,7 +2483,7 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=646; start_column=11; end_line=646; end_column=35; + start_line=652; start_column=11; end_line=652; end_column=35; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -2492,14 +2495,14 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=647; start_column=11; end_line=647; end_column=47; + start_line=653; start_column=11; end_line=653; end_column=47; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4044; start_column=14; end_line=4044; end_column=50; + start_line=4046; start_column=14; end_line=4046; end_column=50; law_headings=["Article D832-26"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -2530,7 +2533,7 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=647; start_column=11; end_line=647; end_column=47; + start_line=653; start_column=11; end_line=653; end_column=47; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -2540,7 +2543,7 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=651; start_column=12; end_line=651; end_column=19; + start_line=657; start_column=12; end_line=657; end_column=19; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -2548,16 +2551,16 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=651; start_column=12; - end_line=651; end_column=19; + start_line=657; start_column=12; + end_line=657; end_column=19; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4095; start_column=5; - end_line=4095; end_column=26; + start_line=4097; start_column=5; + end_line=4097; end_column=26; law_headings=["Article D832-26"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -2615,7 +2618,7 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal (decimal_of_string "12."))))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4057; start_column=14; end_line=4057; end_column=21; + start_line=4059; start_column=14; end_line=4059; end_column=21; law_headings=["Article D832-26"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -2672,7 +2675,7 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=651; start_column=12; end_line=651; end_column=19; + start_line=657; start_column=12; end_line=657; end_column=19; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -2691,7 +2694,7 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=659; start_column=12; end_line=659; end_column=52; + start_line=665; start_column=12; end_line=665; end_column=52; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -2701,15 +2704,15 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=659; start_column=12; end_line=659; end_column=52; + start_line=665; start_column=12; end_line=665; end_column=52; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=659; start_column=12; - end_line=659; end_column=52; + start_line=665; start_column=12; + end_line=665; end_column=52; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -2718,7 +2721,7 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=659; start_column=12; end_line=659; end_column=52; + start_line=665; start_column=12; end_line=665; end_column=52; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -2729,7 +2732,7 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=661; start_column=11; end_line=661; end_column=38; + start_line=667; start_column=11; end_line=667; end_column=38; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -2737,16 +2740,16 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=661; start_column=11; - end_line=661; end_column=38; + start_line=667; start_column=11; + end_line=667; end_column=38; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4005; start_column=5; - end_line=4005; end_column=26; + start_line=4007; start_column=5; + end_line=4007; end_column=26; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -2780,7 +2783,7 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal (decimal_of_string "4.3"))))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3911; start_column=14; end_line=3911; end_column=41; + start_line=3913; start_column=14; end_line=3913; end_column=41; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -2811,7 +2814,7 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=661; start_column=11; end_line=661; end_column=38; + start_line=667; start_column=11; end_line=667; end_column=38; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -2822,7 +2825,7 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=662; start_column=11; end_line=662; end_column=44; + start_line=668; start_column=11; end_line=668; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -2830,8 +2833,8 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=662; start_column=11; - end_line=662; end_column=44; + start_line=668; start_column=11; + end_line=668; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -2839,8 +2842,8 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=662; start_column=11; - end_line=662; end_column=44; + start_line=668; start_column=11; + end_line=668; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -2848,8 +2851,8 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5517; start_column=5; - end_line=5523; end_column=28; + start_line=5522; start_column=5; + end_line=5528; end_column=28; law_headings=["Article D861-8"; "Section 2 : Allocations de logement"; "Titre VI : Disposition particulières à l'outre-mer"; @@ -2883,8 +2886,8 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal (decimal_of_string "0."))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4022; start_column=5; - end_line=4022; end_column=26; + start_line=4024; start_column=5; + end_line=4024; end_column=26; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -2905,7 +2908,7 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal (decimal_of_string "0.")))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3926; start_column=14; end_line=3926; end_column=47; + start_line=3928; start_column=14; end_line=3928; end_column=47; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -2927,7 +2930,7 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=662; start_column=11; end_line=662; end_column=44; + start_line=668; start_column=11; end_line=668; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -2938,14 +2941,14 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=664; start_column=12; end_line=664; end_column=34; + start_line=670; start_column=12; end_line=670; end_column=34; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3931; start_column=14; end_line=3931; end_column=36; + start_line=3933; start_column=14; end_line=3933; end_column=36; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -2961,7 +2964,7 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=664; start_column=12; end_line=664; end_column=34; + start_line=670; start_column=12; end_line=670; end_column=34; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -2978,14 +2981,14 @@ let calcul_nombre_parts_accession_propriete (calcul_nombre_parts_accession_propr try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=728; start_column=12; end_line=728; end_column=34; + start_line=735; start_column=12; end_line=735; end_column=34; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3255; start_column=14; end_line=3255; end_column=36; + start_line=3257; start_column=14; end_line=3257; end_column=36; law_headings=["Article D832-11"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -3022,7 +3025,7 @@ let calcul_nombre_parts_accession_propriete (calcul_nombre_parts_accession_propr with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=728; start_column=12; end_line=728; end_column=34; + start_line=735; start_column=12; end_line=735; end_column=34; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -3037,15 +3040,15 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1107; start_column=12; end_line=1107; end_column=31; + start_line=1118; start_column=12; end_line=1118; end_column=31; law_headings=["Date d'ouverture des droits à la retraite"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1107; start_column=12; - end_line=1107; end_column=31; + start_line=1118; start_column=12; + end_line=1118; end_column=31; law_headings=["Date d'ouverture des droits à la retraite"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -3068,8 +3071,8 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1107; start_column=12; - end_line=1107; end_column=31; + start_line=1118; start_column=12; + end_line=1118; end_column=31; law_headings=["Date d'ouverture des droits à la retraite"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -3092,8 +3095,8 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1107; start_column=12; - end_line=1107; end_column=31; + start_line=1118; start_column=12; + end_line=1118; end_column=31; law_headings=["Date d'ouverture des droits à la retraite"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -3121,8 +3124,8 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1107; start_column=12; - end_line=1107; end_column=31; + start_line=1118; start_column=12; + end_line=1118; end_column=31; law_headings=["Date d'ouverture des droits à la retraite"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -3147,8 +3150,8 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1107; start_column=12; - end_line=1107; end_column=31; + start_line=1118; start_column=12; + end_line=1118; end_column=31; law_headings=["Date d'ouverture des droits à la retraite"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -3173,8 +3176,8 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1107; start_column=12; - end_line=1107; end_column=31; + start_line=1118; start_column=12; + end_line=1118; end_column=31; law_headings=["Date d'ouverture des droits à la retraite"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -3200,7 +3203,7 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1107; start_column=12; end_line=1107; end_column=31; + start_line=1118; start_column=12; end_line=1118; end_column=31; law_headings=["Date d'ouverture des droits à la retraite"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -3219,13 +3222,13 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1123; start_column=11; end_line=1123; end_column=33; + start_line=1134; start_column=11; end_line=1134; end_column=33; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2340; start_column=14; end_line=2340; end_column=36; + start_line=2342; start_column=14; end_line=2342; end_column=36; law_headings=["Article R824-3"; "Section 1 : Seuils de constitution d'un impayé"; "Chapitre IV : Impayés de dépenses de logement"; @@ -3250,7 +3253,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1123; start_column=11; end_line=1123; end_column=33; + start_line=1134; start_column=11; end_line=1134; end_column=33; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -3260,31 +3263,31 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1124; start_column=11; end_line=1124; end_column=33; + start_line=1135; start_column=11; end_line=1135; end_column=33; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1124; start_column=11; - end_line=1124; end_column=33; + start_line=1135; start_column=11; + end_line=1135; end_column=33; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1124; start_column=11; - end_line=1124; end_column=33; + start_line=1135; start_column=11; + end_line=1135; end_column=33; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2308; start_column=14; - end_line=2308; end_column=36; + start_line=2310; start_column=14; + end_line=2310; end_column=36; law_headings=["Article R824-2"; "Section 1 : Seuils de constitution d'un impayé"; "Chapitre IV : Impayés de dépenses de logement"; @@ -3299,8 +3302,8 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn (fun (_: unit) -> depense_logement_))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2212; start_column=14; - end_line=2212; end_column=36; + start_line=2214; start_column=14; + end_line=2214; end_column=36; law_headings=["Article R824-1"; "Section 1 : Seuils de constitution d'un impayé"; "Chapitre IV : Impayés de dépenses de logement"; @@ -3317,7 +3320,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1124; start_column=11; end_line=1124; end_column=33; + start_line=1135; start_column=11; end_line=1135; end_column=33; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -3327,22 +3330,22 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1125; start_column=11; end_line=1125; end_column=33; + start_line=1136; start_column=11; end_line=1136; end_column=33; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1125; start_column=11; - end_line=1125; end_column=33; + start_line=1136; start_column=11; + end_line=1136; end_column=33; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2221; start_column=14; - end_line=2221; end_column=36; + start_line=2223; start_column=14; + end_line=2223; end_column=36; law_headings=["Article R824-1"; "Section 1 : Seuils de constitution d'un impayé"; "Chapitre IV : Impayés de dépenses de logement"; @@ -3367,15 +3370,15 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1125; start_column=11; - end_line=1125; end_column=33; + start_line=1136; start_column=11; + end_line=1136; end_column=33; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2317; start_column=14; - end_line=2317; end_column=36; + start_line=2319; start_column=14; + end_line=2319; end_column=36; law_headings=["Article R824-2"; "Section 1 : Seuils de constitution d'un impayé"; "Chapitre IV : Impayés de dépenses de logement"; @@ -3404,7 +3407,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1125; start_column=11; end_line=1125; end_column=33; + start_line=1136; start_column=11; end_line=1136; end_column=33; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -3414,22 +3417,22 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1122; start_column=11; end_line=1122; end_column=43; + start_line=1133; start_column=11; end_line=1133; end_column=43; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1122; start_column=11; - end_line=1122; end_column=43; + start_line=1133; start_column=11; + end_line=1133; end_column=43; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2182; start_column=20; - end_line=2182; end_column=55; + start_line=2184; start_column=20; + end_line=2184; end_column=55; law_headings=["Article R824-1"; "Section 1 : Seuils de constitution d'un impayé"; "Chapitre IV : Impayés de dépenses de logement"; @@ -3461,15 +3464,15 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1122; start_column=11; - end_line=1122; end_column=43; + start_line=1133; start_column=11; + end_line=1133; end_column=43; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2198; start_column=20; - end_line=2198; end_column=51; + start_line=2200; start_column=20; + end_line=2200; end_column=51; law_headings=["Article R824-1"; "Section 1 : Seuils de constitution d'un impayé"; "Chapitre IV : Impayés de dépenses de logement"; @@ -3501,15 +3504,15 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1122; start_column=11; - end_line=1122; end_column=43; + start_line=1133; start_column=11; + end_line=1133; end_column=43; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2264; start_column=7; - end_line=2264; end_column=42; + start_line=2266; start_column=7; + end_line=2266; end_column=42; law_headings=["Article R824-2"; "Section 1 : Seuils de constitution d'un impayé"; "Chapitre IV : Impayés de dépenses de logement"; @@ -3541,15 +3544,15 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1122; start_column=11; - end_line=1122; end_column=43; + start_line=1133; start_column=11; + end_line=1133; end_column=43; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2292; start_column=7; - end_line=2292; end_column=51; + start_line=2294; start_column=7; + end_line=2294; end_column=51; law_headings=["Article R824-2"; "Section 1 : Seuils de constitution d'un impayé"; "Chapitre IV : Impayés de dépenses de logement"; @@ -3582,7 +3585,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1122; start_column=11; end_line=1122; end_column=43; + start_line=1133; start_column=11; end_line=1133; end_column=43; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -3591,31 +3594,31 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1127; start_column=12; end_line=1127; end_column=26; + start_line=1138; start_column=12; end_line=1138; end_column=26; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1127; start_column=12; - end_line=1127; end_column=26; + start_line=1138; start_column=12; + end_line=1138; end_column=26; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1127; start_column=12; - end_line=1127; end_column=26; + start_line=1138; start_column=12; + end_line=1138; end_column=26; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2240; start_column=14; - end_line=2240; end_column=28; + start_line=2242; start_column=14; + end_line=2242; end_column=28; law_headings=["Article R824-2"; "Section 1 : Seuils de constitution d'un impayé"; "Chapitre IV : Impayés de dépenses de logement"; @@ -3634,8 +3637,8 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn montant_dette_ else (money_of_cents_string "0")))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2177; start_column=14; - end_line=2177; end_column=28; + start_line=2179; start_column=14; + end_line=2179; end_column=28; law_headings=["Article R824-1"; "Section 1 : Seuils de constitution d'un impayé"; "Chapitre IV : Impayés de dépenses de logement"; @@ -3656,7 +3659,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1127; start_column=12; end_line=1127; end_column=26; + start_line=1138; start_column=12; end_line=1138; end_column=26; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -3803,13 +3806,13 @@ let verification_age_superieur_a (verification_age_superieur_a_in: VerificationA try (handle_default {filename = "examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr"; - start_line=32; start_column=12; end_line=32; end_column=25; + start_line=33; start_column=12; end_line=33; end_column=25; law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} ( [||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr"; - start_line=35; start_column=14; end_line=35; end_column=27; + start_line=36; start_column=14; end_line=36; end_column=27; law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} true)) @@ -3819,7 +3822,7 @@ let verification_age_superieur_a (verification_age_superieur_a_in: VerificationA with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr"; - start_line=32; start_column=12; end_line=32; end_column=25; + start_line=33; start_column=12; end_line=33; end_column=25; law_headings=["Prologue"; "Montant du salaire minimum de croissance"]})))) in {VerificationAgeSuperieurA.est_superieur = est_superieur_} @@ -4351,14 +4354,14 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=596; start_column=11; end_line=596; end_column=26; + start_line=597; start_column=11; end_line=597; end_column=26; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1885; start_column=14; end_line=1885; end_column=29; + start_line=1887; start_column=14; end_line=1887; end_column=29; law_headings=["Article D823-16"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -4371,33 +4374,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=596; start_column=11; end_line=596; end_column=26; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})))) in - let montant_forfaitaire_d823_16_: money = (log_variable_definition - ["CalculAidePersonnaliséeLogementLocatif"; - "montant_forfaitaire_d823_16"] (embed_money) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=599; start_column=11; end_line=599; end_column=38; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=274; start_column=14; end_line=274; end_column=41; - law_headings=["Article 11"; - "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: unit) -> money_of_cents_string "500")) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=599; start_column=11; end_line=599; end_column=38; + start_line=597; start_column=11; end_line=597; end_column=26; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -4408,14 +4385,14 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "contributions_sociales.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=623; start_column=14; end_line=623; end_column=50; + start_line=629; start_column=14; end_line=629; end_column=50; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=623; start_column=14; end_line=623; end_column=50; + start_line=629; start_column=14; end_line=629; end_column=50; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -4424,7 +4401,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=623; start_column=14; end_line=623; end_column=50; + start_line=629; start_column=14; end_line=629; end_column=50; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -4438,13 +4415,40 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ({ContributionsSocialesAidesPersonnelleLogementIn.date_courante_in = contributions_sociales_dot_date_courante_}))) in let contributions_sociales_dot_montant_: money -> money = result_.ContributionsSocialesAidesPersonnelleLogement.montant in - let loyer_reference_: money = (log_variable_definition - ["CalculAidePersonnaliséeLogementLocatif"; "loyer_référence"] - (embed_money) ( + let montant_forfaitaire_d823_16_: money = (log_variable_definition + ["CalculAidePersonnaliséeLogementLocatif"; + "montant_forfaitaire_d823_16"] (embed_money) ( try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=595; start_column=11; end_line=595; end_column=26; + start_line=600; start_column=11; end_line=600; end_column=38; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=285; start_column=14; end_line=285; end_column=41; + law_headings=["Article 11"; + "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) + (fun (_: unit) -> money_of_cents_string "500")) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=600; start_column=11; end_line=600; end_column=38; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]})))) in + let multiplicateur_majoration_charges_d823_16_: decimal = (log_variable_definition + ["CalculAidePersonnaliséeLogementLocatif"; + "multiplicateur_majoration_charges_d823_16"] (embed_decimal) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=605; start_column=11; end_line=605; end_column=52; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -4452,169 +4456,74 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=595; start_column=11; - end_line=595; end_column=26; + start_line=605; start_column=11; + end_line=605; end_column=52; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=605; start_column=11; + end_line=605; end_column=52; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=605; start_column=11; + end_line=605; end_column=52; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2196; start_column=14; + end_line=2196; end_column=55; + law_headings=["Article 9"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1)))))) + (fun (_: unit) -> + o_torat_int nombre_personnes_a_charge_))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1110; start_column=14; + end_line=1110; end_column=55; + law_headings=["Article 9"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))))) + (fun (_: unit) -> + o_torat_int nombre_personnes_a_charge_))|]) (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=172; start_column=29; - end_line=172; end_column=44; - law_headings=["Article 46"; - "Articles en vigueur du 1er juillet 2022 au 31 décembre 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))) - (o_lt_dat_dat date_courante_ - (date_of_numbers (2023) (1) (1)))))) - (fun (_: unit) -> - if - (o_eq nombre_personnes_a_charge_ (integer_of_string - "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "25978") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "31797")) else - (let montant_ : money = - (o_add_mon_mon (money_of_cents_string "35780") - (o_mult_mon_rat (money_of_cents_string "5208") - (o_torat_int - (o_sub_int_int nombre_personnes_a_charge_ - (integer_of_string "1"))))) - in - (let limite_ : money = - (o_add_mon_mon (money_of_cents_string "35780") - (o_mult_mon_rat (money_of_cents_string "5208") - (decimal_of_string "6."))) - in - ( if (o_gt_mon_mon montant_ limite_) then limite_ - else montant_)))))|]) (fun (_: unit) -> true) - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=595; start_column=11; end_line=595; end_column=26; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([|(fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=595; start_column=11; - end_line=595; end_column=26; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=430; start_column=29; - end_line=430; end_column=44; - law_headings=["Article 14"; - "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_gte_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))))) - (fun (_: unit) -> - if - (o_eq nombre_personnes_a_charge_ - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "26887") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "32910")) else - (o_add_mon_mon (money_of_cents_string "37032") - (o_mult_mon_rat (money_of_cents_string "5390") - (o_torat_int - (o_sub_int_int nombre_personnes_a_charge_ - (integer_of_string "1"))))))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=595; start_column=11; - end_line=595; end_column=26; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=767; start_column=29; - end_line=767; end_column=44; - law_headings=["Article 14"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1))) - (o_lt_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1)))))) - (fun (_: unit) -> - if - (o_eq nombre_personnes_a_charge_ - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "25978") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "31797")) else - (o_add_mon_mon (money_of_cents_string "35780") - (o_mult_mon_rat (money_of_cents_string "5208") - (o_torat_int - (o_sub_int_int nombre_personnes_a_charge_ - (integer_of_string "1"))))))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=595; start_column=11; - end_line=595; end_column=26; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1722; start_column=29; - end_line=1722; end_column=44; - law_headings=["Article 14"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) - (o_lt_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1)))))) - (fun (_: unit) -> - if - (o_eq nombre_personnes_a_charge_ - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "25869") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "31664")) else - (o_add_mon_mon (money_of_cents_string "35630") - (o_mult_mon_rat (money_of_cents_string "5186") - (o_torat_int - (o_sub_int_int nombre_personnes_a_charge_ - (integer_of_string "1")))))))|]) - (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))) + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=235; start_column=14; + end_line=235; end_column=55; + law_headings=["Article 9"; + "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))))) + (fun (_: unit) -> o_torat_int nombre_personnes_a_charge_))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=595; start_column=11; end_line=595; end_column=26; + start_line=605; start_column=11; end_line=605; end_column=52; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -4625,18 +4534,18 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=600; start_column=11; end_line=600; end_column=39; + start_line=601; start_column=11; end_line=601; end_column=39; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=286; start_column=14; end_line=286; end_column=42; + start_line=298; start_column=14; end_line=298; end_column=42; law_headings=["Article 12"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) (fun (_: unit) -> match type_aide_ with @@ -4649,7 +4558,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=600; start_column=11; end_line=600; end_column=39; + start_line=601; start_column=11; end_line=601; end_column=39; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -4660,14 +4569,14 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=573; start_column=10; end_line=573; end_column=31; + start_line=574; start_column=10; end_line=574; end_column=31; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4217; start_column=14; end_line=4217; end_column=29; + start_line=4219; start_column=14; end_line=4219; end_column=29; law_headings=["Article D842-2"; "Section 1 : Secteur locatif ordinaire"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -4684,7 +4593,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=573; start_column=10; end_line=573; end_column=31; + start_line=574; start_column=10; end_line=574; end_column=31; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -4695,7 +4604,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=607; start_column=12; end_line=607; end_column=38; + start_line=612; start_column=12; end_line=612; end_column=38; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -4703,8 +4612,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=607; start_column=12; - end_line=607; end_column=38; + start_line=612; start_column=12; + end_line=612; end_column=38; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -4712,8 +4621,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=607; start_column=12; - end_line=607; end_column=38; + start_line=612; start_column=12; + end_line=612; end_column=38; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -4721,8 +4630,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4400; start_column=6; - end_line=4407; end_column=28; + start_line=4486; start_column=6; + end_line=4493; end_column=28; law_headings=["Article 46"; "Chapitre IX : Calcul des allocations de logement en outre-mer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -4798,19 +4707,394 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=607; start_column=12; - end_line=607; end_column=38; + start_line=612; start_column=12; + end_line=612; end_column=38; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([||]) + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=612; start_column=12; + end_line=612; end_column=38; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=612; start_column=12; + end_line=612; end_column=38; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=612; + start_column=12; + end_line=612; end_column=38; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=612; + start_column=12; + end_line=612; end_column=38; + law_headings= + ["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=3618; + start_column=6; + end_line=3625; end_column=28; + law_headings= + ["Article 46"; + "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2021) (10) (1)))) + (match + residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true)))) + (fun (_: unit) -> + if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string + "0")) then + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (decimal_of_string "0.0281") + | SituationFamilialeCalculAPL.Couple _ -> + (decimal_of_string "0.0299")) + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string + "1")) + then + (decimal_of_string "0.0238") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string + "2")) + then + (decimal_of_string "0.0217") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string + "3")) + then + (decimal_of_string "0.0194") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string + "4")) + then + (decimal_of_string "0.018") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string + "5")) + then + (decimal_of_string "0.0169") + else + (decimal_of_string "0.0162"))))))))|]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=3079; + start_column=6; + end_line=3086; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2021) (10) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true)))) + (fun (_: unit) -> + if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string + "0")) then + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (decimal_of_string "0.0281") + | SituationFamilialeCalculAPL.Couple _ -> + (decimal_of_string "0.0299")) + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string + "1")) then + (decimal_of_string "0.0238") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string + "2")) then + (decimal_of_string "0.0217") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string + "3")) then + (decimal_of_string "0.0194") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string + "4")) + then + (decimal_of_string "0.018") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string + "5")) + then + (decimal_of_string "0.0169") + else + (decimal_of_string "0.0162"))))))))|]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2004; + start_column=6; + end_line=2011; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2022) (1) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true)))) + (fun (_: unit) -> + if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "0")) + then + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (decimal_of_string "0.0281") + | SituationFamilialeCalculAPL.Couple _ -> + (decimal_of_string "0.0299")) + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "1")) + then + (decimal_of_string "0.0238") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string + "2")) then + (decimal_of_string "0.0217") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string + "3")) then + (decimal_of_string "0.0194") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string + "4")) then + (decimal_of_string "0.018") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string + "5")) then + (decimal_of_string "0.0169") + else + (decimal_of_string "0.0162"))))))))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=885; start_column=6; + end_line=892; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> true + | Collectivite.LaReunion _ -> true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> true + | Collectivite.Metropole _ -> false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true)))) + (fun (_: unit) -> + if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (decimal_of_string "0.0281") + | SituationFamilialeCalculAPL.Couple _ -> + (decimal_of_string "0.0299")) else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")) then + (decimal_of_string "0.0238") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (decimal_of_string "0.0217") else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "3")) + then + (decimal_of_string "0.0194") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "4")) + then + (decimal_of_string "0.018") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string + "5")) then + (decimal_of_string "0.0169") + else + (decimal_of_string "0.0162"))))))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=400; start_column=6; - end_line=407; end_column=28; + start_line=387; start_column=6; + end_line=394; end_column=28; law_headings=["Article 46"; - "Articles en vigueur du 1er juillet 2022 au 31 décembre 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; + "Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_and @@ -4867,7 +5151,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=607; start_column=12; end_line=607; end_column=38; + start_line=612; start_column=12; end_line=612; end_column=38; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -4875,8 +5159,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=607; start_column=12; - end_line=607; end_column=38; + start_line=612; start_column=12; + end_line=612; end_column=38; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -4884,8 +5168,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=607; start_column=12; - end_line=607; end_column=38; + start_line=612; start_column=12; + end_line=612; end_column=38; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -4893,8 +5177,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=607; start_column=12; - end_line=607; end_column=38; + start_line=612; start_column=12; + end_line=612; end_column=38; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -4902,10 +5186,10 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1639; start_column=29; - end_line=1639; end_column=55; + start_line=2259; start_column=29; + end_line=2259; end_column=55; law_headings=["Article 14"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -4977,10 +5261,10 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "6")))))))))))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=681; start_column=29; - end_line=681; end_column=55; + start_line=1172; start_column=29; + end_line=1172; end_column=55; law_headings=["Article 14"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -5041,8 +5325,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "6")))))))))))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=348; start_column=29; - end_line=348; end_column=55; + start_line=360; start_column=29; + end_line=360; end_column=55; law_headings=["Article 14"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -5096,18 +5380,18 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=607; start_column=12; end_line=607; end_column=38; + start_line=612; start_column=12; end_line=612; end_column=38; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]})))) in - let plafond_loyer_d823_16_2_: money = (log_variable_definition - ["CalculAidePersonnaliséeLogementLocatif"; "plafond_loyer_d823_16_2"] - (embed_money) ( + let multiplicateur_majoration_r0_: decimal = (log_variable_definition + ["CalculAidePersonnaliséeLogementLocatif"; + "multiplicateur_majoration_r0"] (embed_decimal) ( try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; end_line=605; end_column=35; + start_line=607; start_column=11; end_line=607; end_column=39; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -5115,8 +5399,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; + start_line=607; start_column=11; + end_line=607; end_column=39; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -5124,153 +5408,235 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; + start_line=607; start_column=11; + end_line=607; end_column=39; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=529; start_column=5; - end_line=530; end_column=34; - law_headings=["Article 16"; - "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))) - colocation_) - (o_and - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - true - | SituationFamilialeCalculAPL.Couple _ -> - false) - (o_eq nombre_personnes_a_charge_ - (integer_of_string "0")))))) - (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> - (money_of_cents_string "23138") - | ZoneDHabitation.Zone2 _ -> - (money_of_cents_string "20165") - | ZoneDHabitation.Zone3 _ -> - (money_of_cents_string "18900"))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=538; start_column=5; - end_line=539; end_column=34; - law_headings=["Article 16"; - "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))) - colocation_) - (o_and - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - false - | SituationFamilialeCalculAPL.Couple _ -> - true) - (o_eq nombre_personnes_a_charge_ - (integer_of_string "0")))))) - (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> - (money_of_cents_string "27905") - | ZoneDHabitation.Zone2 _ -> - (money_of_cents_string "24683") - | ZoneDHabitation.Zone3 _ -> - (money_of_cents_string "22911"))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=547; start_column=5; - end_line=547; end_column=35; - law_headings=["Article 16"; - "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))) - colocation_) - (o_gte_int_int nombre_personnes_a_charge_ - (integer_of_string "1"))))) - (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> - (o_add_mon_mon (money_of_cents_string - "31539") - (o_mult_mon_rat (money_of_cents_string - "4576") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string "1"))))) - | ZoneDHabitation.Zone2 _ -> - (o_add_mon_mon (money_of_cents_string - "27774") - (o_mult_mon_rat (money_of_cents_string - "4043") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string "1"))))) - | ZoneDHabitation.Zone3 _ -> - (o_add_mon_mon (money_of_cents_string - "25689") - (o_mult_mon_rat (money_of_cents_string - "3682") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string "1"))))))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=607; start_column=11; + end_line=607; end_column=39; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=607; start_column=11; + end_line=607; end_column=39; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=607; + start_column=11; + end_line=607; end_column=39; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=607; + start_column=11; + end_line=607; end_column=39; + law_headings= + ["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=3398; + start_column=5; + end_line=3406; end_column=35; + law_headings= + ["Article 46"; + "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2020) (10) (1)))) + (o_and + (match + residence_ + with + | + Collectivite.Guadeloupe _ -> + true + | + Collectivite.Guyane _ -> + false + | + Collectivite.Martinique _ -> + true + | + Collectivite.LaReunion _ -> + true + | + Collectivite.SaintBarthelemy _ -> + true + | + Collectivite.SaintMartin _ -> + true + | + Collectivite.Metropole _ -> + false + | + Collectivite.SaintPierreEtMiquelon _ -> + false + | + Collectivite.Mayotte _ -> + true) + (o_gte_int_int + nombre_personnes_a_charge_ + (integer_of_string + "6")))))) + (fun (_: unit) -> + decimal_of_string "0."))|]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2860; + start_column=5; + end_line=2868; end_column=35; + law_headings=["Article 46"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2021) (10) (1)))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true) + (o_gte_int_int + nombre_personnes_a_charge_ + (integer_of_string + "6")))))) + (fun (_: unit) -> + decimal_of_string "0."))|]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1785; + start_column=5; + end_line=1793; end_column=35; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2022) (1) (1)))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true) + (o_gte_int_int + nombre_personnes_a_charge_ + (integer_of_string "6")))))) + (fun (_: unit) -> + decimal_of_string "0."))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=664; start_column=5; + end_line=672; end_column=35; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true) + (o_gte_int_int + nombre_personnes_a_charge_ + (integer_of_string "6")))))) + (fun (_: unit) -> decimal_of_string "0."))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=77; start_column=5; - end_line=89; end_column=45; + start_line=168; start_column=5; + end_line=176; end_column=35; law_headings=["Article 46"; - "Articles en vigueur du 1er juillet 2022 au 31 décembre 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; + "Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_and @@ -5291,595 +5657,15 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme | Collectivite.SaintPierreEtMiquelon _ -> false | Collectivite.Mayotte _ -> true) - (o_and - (o_gte_int_int - nombre_personnes_a_charge_ - (integer_of_string "1")) - (o_not - (o_or logement_est_chambre_ - colocation_))))))) - (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> - (let montant_ : money = - (o_add_mon_mon (money_of_cents_string - "42052") - (o_mult_mon_rat (money_of_cents_string - "6101") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string "1"))))) - in - (let limite_ : money = - (o_add_mon_mon (money_of_cents_string - "42052") - (o_mult_mon_rat (money_of_cents_string - "6101") (decimal_of_string "6."))) - in - ( if (o_gt_mon_mon montant_ limite_) then - limite_ else montant_))) - | ZoneDHabitation.Zone2 _ -> - (let montant_ : money = - (o_add_mon_mon (money_of_cents_string - "37032") - (o_mult_mon_rat (money_of_cents_string - "5390") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string "1"))))) - in - (let limite_ : money = - (o_add_mon_mon (money_of_cents_string - "37032") - (o_mult_mon_rat (money_of_cents_string - "5390") (decimal_of_string "6."))) - in - ( if (o_gt_mon_mon montant_ limite_) then - limite_ else montant_))) - | ZoneDHabitation.Zone3 _ -> - (let montant_ : money = - (o_add_mon_mon (money_of_cents_string - "34252") - (o_mult_mon_rat (money_of_cents_string - "4909") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string "1"))))) - in - (let limite_ : money = - (o_add_mon_mon (money_of_cents_string - "34252") - (o_mult_mon_rat (money_of_cents_string - "4909") (decimal_of_string "6."))) - in - ( if (o_gt_mon_mon montant_ limite_) then - limite_ else montant_))))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=814; start_column=5; - end_line=815; end_column=34; - law_headings=["Article 16"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1))) - (o_and - (o_lt_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))) - colocation_)) - (o_and - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - true - | SituationFamilialeCalculAPL.Couple _ -> - false) - (o_eq nombre_personnes_a_charge_ - (integer_of_string "0")))))) - (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> - (money_of_cents_string "22355") - | ZoneDHabitation.Zone2 _ -> - (money_of_cents_string "19484") - | ZoneDHabitation.Zone3 _ -> - (money_of_cents_string "18261"))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=823; start_column=5; - end_line=824; end_column=34; - law_headings=["Article 16"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1))) - (o_and - (o_lt_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))) - colocation_)) - (o_and - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - false - | SituationFamilialeCalculAPL.Couple _ -> - true) - (o_eq nombre_personnes_a_charge_ - (integer_of_string "0")))))) - (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> - (money_of_cents_string "26962") - | ZoneDHabitation.Zone2 _ -> - (money_of_cents_string "23848") - | ZoneDHabitation.Zone3 _ -> - (money_of_cents_string "22136"))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=832; start_column=5; - end_line=832; end_column=35; - law_headings=["Article 16"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1))) - (o_and - (o_lt_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))) - colocation_)) - (o_gte_int_int nombre_personnes_a_charge_ - (integer_of_string "1"))))) - (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> - (o_add_mon_mon (money_of_cents_string - "30473") - (o_mult_mon_rat (money_of_cents_string - "4421") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string "1"))))) - | ZoneDHabitation.Zone2 _ -> - (o_add_mon_mon (money_of_cents_string - "26835") - (o_mult_mon_rat (money_of_cents_string - "3906") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string "1"))))) - | ZoneDHabitation.Zone3 _ -> - (o_add_mon_mon (money_of_cents_string - "24821") - (o_mult_mon_rat (money_of_cents_string - "3557") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string "1"))))))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1767; start_column=5; - end_line=1768; end_column=34; - law_headings=["Article 16"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_lt_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1))) - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) - colocation_)) - (o_and - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - true - | SituationFamilialeCalculAPL.Couple _ -> - false) - (o_eq nombre_personnes_a_charge_ - (integer_of_string "0")))))) - (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> - (money_of_cents_string "22262") - | ZoneDHabitation.Zone2 _ -> - (money_of_cents_string "19402") - | ZoneDHabitation.Zone3 _ -> - (money_of_cents_string "18185"))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1776; start_column=5; - end_line=1777; end_column=34; - law_headings=["Article 16"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_lt_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1))) - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) - colocation_)) - (o_and - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - false - | SituationFamilialeCalculAPL.Couple _ -> - true) - (o_eq nombre_personnes_a_charge_ - (integer_of_string "0")))))) - (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> - (money_of_cents_string "26849") - | ZoneDHabitation.Zone2 _ -> - (money_of_cents_string "23748") - | ZoneDHabitation.Zone3 _ -> - (money_of_cents_string "22044"))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1785; start_column=5; - end_line=1785; end_column=35; - law_headings=["Article 16"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_lt_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1))) - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) - colocation_)) - (o_gte_int_int nombre_personnes_a_charge_ - (integer_of_string "1"))))) - (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> - (o_add_mon_mon (money_of_cents_string - "30345") - (o_mult_mon_rat (money_of_cents_string - "4403") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string "1"))))) - | ZoneDHabitation.Zone2 _ -> - (o_add_mon_mon (money_of_cents_string - "26723") - (o_mult_mon_rat (money_of_cents_string - "3890") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string "1"))))) - | ZoneDHabitation.Zone3 _ -> - (o_add_mon_mon (money_of_cents_string - "24717") - (o_mult_mon_rat (money_of_cents_string - "3542") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string "1")))))))|]) - (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([|(fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([|(fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=195; start_column=5; - end_line=195; end_column=61; - law_headings=["Article 8"; - "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))) - logement_est_chambre_) - agees_ou_handicap_adultes_hebergees_onereux_particuliers_))) - (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> - (money_of_cents_string "23138") - | ZoneDHabitation.Zone2 _ -> - (money_of_cents_string "20165") - | ZoneDHabitation.Zone3 _ -> - (money_of_cents_string "18900"))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=587; start_column=5; - end_line=587; end_column=61; - law_headings=["Article 8"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1))) - (o_and - (o_lt_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))) - logement_est_chambre_)) - agees_ou_handicap_adultes_hebergees_onereux_particuliers_))) - (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> - (money_of_cents_string "22355") - | ZoneDHabitation.Zone2 _ -> - (money_of_cents_string "19484") - | ZoneDHabitation.Zone3 _ -> - (money_of_cents_string "18261"))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1544; start_column=5; - end_line=1544; end_column=61; - law_headings=["Article 8"; "Article 7"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_lt_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1))) - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) - logement_est_chambre_)) - agees_ou_handicap_adultes_hebergees_onereux_particuliers_))) - (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> - (money_of_cents_string "22262") - | ZoneDHabitation.Zone2 _ -> - (money_of_cents_string "19402") - | ZoneDHabitation.Zone3 _ -> - (money_of_cents_string "18185")))|]) - (fun (_: unit) -> false) - (fun (_: unit) -> raise EmptyError))|]) - (fun (_: unit) -> true) - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([|(fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=188; start_column=14; - end_line=188; end_column=37; - law_headings=["Article 8"; - "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))) - logement_est_chambre_))) - (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> - (money_of_cents_string "27765") - | ZoneDHabitation.Zone2 _ -> - (money_of_cents_string "24198") - | ZoneDHabitation.Zone3 _ -> - (money_of_cents_string "22680"))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=580; start_column=14; - end_line=580; end_column=37; - law_headings=["Article 8"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1))) - (o_and - (o_lt_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))) - logement_est_chambre_)))) - (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> - (money_of_cents_string "26826") - | ZoneDHabitation.Zone2 _ -> - (money_of_cents_string "23380") - | ZoneDHabitation.Zone3 _ -> - (money_of_cents_string "21913"))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1537; start_column=14; - end_line=1537; end_column=37; - law_headings=["Article 8"; "Article 7"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_lt_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1))) - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) - logement_est_chambre_)))) - (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> - (money_of_cents_string "26714") - | ZoneDHabitation.Zone2 _ -> - (money_of_cents_string "23282") - | ZoneDHabitation.Zone3 _ -> - (money_of_cents_string "21821")))|]) - (fun (_: unit) -> false) - (fun (_: unit) -> raise EmptyError)))|]) + (o_gte_int_int nombre_personnes_a_charge_ + (integer_of_string "6")))))) + (fun (_: unit) -> decimal_of_string "0."))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) (fun (_: unit) -> true) (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; end_line=605; end_column=35; + start_line=607; start_column=11; end_line=607; end_column=39; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -5887,401 +5673,918 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; + start_line=607; start_column=11; + end_line=607; end_column=39; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([||]) + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=607; start_column=11; + end_line=607; end_column=39; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=607; start_column=11; + end_line=607; end_column=39; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=607; + start_column=11; + end_line=607; end_column=39; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=3253; + start_column=14; + end_line=3253; end_column=42; + law_headings=["Article 15"; + "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2022) (1) (1))) + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2020) (1) (1)))))) + (fun (_: unit) -> + o_torat_int + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "6"))))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=531; start_column=14; + end_line=531; end_column=42; + law_headings=["Article 15"; + "Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))))) + (fun (_: unit) -> + o_torat_int + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "6"))))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=35; start_column=14; + end_line=35; end_column=42; + law_headings=["Article 15"; + "Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + (o_lte_dat_dat date_courante_ + (date_of_numbers (2022) (12) (31)))))) + (fun (_: unit) -> + o_torat_int + (o_sub_int_int nombre_personnes_a_charge_ + (integer_of_string "6"))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=104; start_column=5; - end_line=105; end_column=34; - law_headings=["Article 7"; + start_line=482; start_column=14; + end_line=482; end_column=42; + law_headings=["Article 15"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))) - (o_and - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - true - | SituationFamilialeCalculAPL.Couple _ -> - false) - (o_eq nombre_personnes_a_charge_ - (integer_of_string "0")))))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2023) (1) (1))))) (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> (money_of_cents_string - "30850") - | ZoneDHabitation.Zone2 _ -> (money_of_cents_string - "26887") - | ZoneDHabitation.Zone3 _ -> (money_of_cents_string - "25200"))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=114; start_column=5; - end_line=115; end_column=34; - law_headings=["Article 7"; - "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))) - (o_and - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - false - | SituationFamilialeCalculAPL.Couple _ -> - true) - (o_eq nombre_personnes_a_charge_ - (integer_of_string "0")))))) - (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> (money_of_cents_string - "37207") - | ZoneDHabitation.Zone2 _ -> (money_of_cents_string - "32910") - | ZoneDHabitation.Zone3 _ -> (money_of_cents_string - "30548"))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=124; start_column=5; - end_line=124; end_column=35; - law_headings=["Article 7"; - "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))) - (o_gte_int_int nombre_personnes_a_charge_ - (integer_of_string "1"))))) - (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> - (o_add_mon_mon (money_of_cents_string "42052") - (o_mult_mon_rat (money_of_cents_string - "6101") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string "1"))))) - | ZoneDHabitation.Zone2 _ -> - (o_add_mon_mon (money_of_cents_string "37032") - (o_mult_mon_rat (money_of_cents_string - "5390") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string "1"))))) - | ZoneDHabitation.Zone3 _ -> - (o_add_mon_mon (money_of_cents_string "34252") - (o_mult_mon_rat (money_of_cents_string - "4909") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string "1"))))))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=495; start_column=5; - end_line=496; end_column=34; - law_headings=["Article 7"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1))) - (o_lt_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1)))) - (o_and - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - true - | SituationFamilialeCalculAPL.Couple _ -> - false) - (o_eq nombre_personnes_a_charge_ - (integer_of_string "0")))))) - (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> (money_of_cents_string - "29807") - | ZoneDHabitation.Zone2 _ -> (money_of_cents_string - "25978") - | ZoneDHabitation.Zone3 _ -> (money_of_cents_string - "24348"))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=505; start_column=5; - end_line=506; end_column=34; - law_headings=["Article 7"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1))) - (o_lt_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1)))) - (o_and - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - false - | SituationFamilialeCalculAPL.Couple _ -> - true) - (o_eq nombre_personnes_a_charge_ - (integer_of_string "0")))))) - (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> (money_of_cents_string - "35949") - | ZoneDHabitation.Zone2 _ -> (money_of_cents_string - "31797") - | ZoneDHabitation.Zone3 _ -> (money_of_cents_string - "29515"))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=515; start_column=5; - end_line=515; end_column=35; - law_headings=["Article 7"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1))) - (o_lt_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1)))) - (o_gte_int_int nombre_personnes_a_charge_ - (integer_of_string "1"))))) - (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> - (o_add_mon_mon (money_of_cents_string "40630") - (o_mult_mon_rat (money_of_cents_string - "5895") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string "1"))))) - | ZoneDHabitation.Zone2 _ -> - (o_add_mon_mon (money_of_cents_string "35780") - (o_mult_mon_rat (money_of_cents_string - "5208") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string "1"))))) - | ZoneDHabitation.Zone3 _ -> - (o_add_mon_mon (money_of_cents_string "33094") - (o_mult_mon_rat (money_of_cents_string - "4743") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string "1"))))))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1453; start_column=5; - end_line=1454; end_column=34; - law_headings=["Article 7"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_lt_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1))) - (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1)))) - (o_and - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - true - | SituationFamilialeCalculAPL.Couple _ -> - false) - (o_eq nombre_personnes_a_charge_ - (integer_of_string "0")))))) - (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> (money_of_cents_string - "29682") - | ZoneDHabitation.Zone2 _ -> (money_of_cents_string - "25859") - | ZoneDHabitation.Zone3 _ -> (money_of_cents_string - "24246"))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1463; start_column=5; - end_line=1464; end_column=34; - law_headings=["Article 7"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_lt_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1))) - (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1)))) - (o_and - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - false - | SituationFamilialeCalculAPL.Couple _ -> - true) - (o_eq nombre_personnes_a_charge_ - (integer_of_string "0")))))) - (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> (money_of_cents_string - "35799") - | ZoneDHabitation.Zone2 _ -> (money_of_cents_string - "31664") - | ZoneDHabitation.Zone3 _ -> (money_of_cents_string - "29392"))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; - end_line=605; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1473; start_column=5; - end_line=1473; end_column=35; - law_headings=["Article 7"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_lt_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1))) - (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1)))) - (o_gte_int_int nombre_personnes_a_charge_ - (integer_of_string "1"))))) - (fun (_: unit) -> - match zone_ - with - | ZoneDHabitation.Zone1 _ -> - (o_add_mon_mon (money_of_cents_string "40460") - (o_mult_mon_rat (money_of_cents_string - "5870") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string "1"))))) - | ZoneDHabitation.Zone2 _ -> - (o_add_mon_mon (money_of_cents_string "35630") - (o_mult_mon_rat (money_of_cents_string - "5186") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string "1"))))) - | ZoneDHabitation.Zone3 _ -> - (o_add_mon_mon (money_of_cents_string "32956") - (o_mult_mon_rat (money_of_cents_string - "4723") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string "1")))))))|]) + o_torat_int + (o_sub_int_int nombre_personnes_a_charge_ + (integer_of_string "6"))))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=605; start_column=12; end_line=605; end_column=35; + start_line=607; start_column=11; end_line=607; end_column=39; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]})))) in + let multiplicateur_majoration_loyer_reference_: decimal = (log_variable_definition + ["CalculAidePersonnaliséeLogementLocatif"; + "multiplicateur_majoration_loyer_référence"] (embed_decimal) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=606; start_column=11; end_line=606; end_column=52; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=606; start_column=11; + end_line=606; end_column=52; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=606; start_column=11; + end_line=606; end_column=52; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=606; start_column=11; + end_line=606; end_column=52; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=606; start_column=11; + end_line=606; end_column=52; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=606; + start_column=11; + end_line=606; end_column=52; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=606; + start_column=11; + end_line=606; end_column=52; + law_headings= + ["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=3376; + start_column=5; + end_line=3384; end_column=35; + law_headings= + ["Article 46"; + "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2020) (10) (1)))) + (o_and + (match + residence_ + with + | + Collectivite.Guadeloupe _ -> + true + | + Collectivite.Guyane _ -> + false + | + Collectivite.Martinique _ -> + true + | + Collectivite.LaReunion _ -> + true + | + Collectivite.SaintBarthelemy _ -> + true + | + Collectivite.SaintMartin _ -> + true + | + Collectivite.Metropole _ -> + false + | + Collectivite.SaintPierreEtMiquelon _ -> + false + | + Collectivite.Mayotte _ -> + true) + (o_gte_int_int + nombre_personnes_a_charge_ + (integer_of_string + "6")))))) + (fun (_: unit) -> + decimal_of_string "5."))|]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2839; + start_column=5; + end_line=2847; end_column=35; + law_headings=["Article 46"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2021) (10) (1)))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true) + (o_gte_int_int + nombre_personnes_a_charge_ + (integer_of_string + "6")))))) + (fun (_: unit) -> + decimal_of_string "5."))|]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1764; + start_column=5; + end_line=1772; end_column=35; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2022) (1) (1)))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true) + (o_gte_int_int + nombre_personnes_a_charge_ + (integer_of_string "6")))))) + (fun (_: unit) -> + decimal_of_string "5."))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=642; start_column=5; + end_line=650; end_column=35; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true) + (o_gte_int_int + nombre_personnes_a_charge_ + (integer_of_string "6")))))) + (fun (_: unit) -> decimal_of_string "5."))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=147; start_column=5; + end_line=155; end_column=35; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2023) (1) (1)))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> true + | Collectivite.LaReunion _ -> true + | Collectivite.SaintBarthelemy _ -> true + | Collectivite.SaintMartin _ -> true + | Collectivite.Metropole _ -> false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true) + (o_gte_int_int nombre_personnes_a_charge_ + (integer_of_string "6")))))) + (fun (_: unit) -> decimal_of_string "5."))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> true) + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=606; start_column=11; end_line=606; end_column=52; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=606; start_column=11; + end_line=606; end_column=52; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=606; start_column=11; + end_line=606; end_column=52; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=606; start_column=11; + end_line=606; end_column=52; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2340; start_column=14; + end_line=2340; end_column=55; + law_headings=["Article 14"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1)))))) + (fun (_: unit) -> + o_torat_int + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1"))))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1256; start_column=14; + end_line=1256; end_column=55; + law_headings=["Article 14"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))))) + (fun (_: unit) -> + o_torat_int + (o_sub_int_int nombre_personnes_a_charge_ + (integer_of_string "1"))))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=442; start_column=14; + end_line=442; end_column=55; + law_headings=["Article 14"; + "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))))) + (fun (_: unit) -> + o_torat_int + (o_sub_int_int nombre_personnes_a_charge_ + (integer_of_string "1"))))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=606; start_column=11; end_line=606; end_column=52; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]})))) in + let multiplicateur_majoration_plafond_loyer_d823_16_2_: decimal = (log_variable_definition + ["CalculAidePersonnaliséeLogementLocatif"; + "multiplicateur_majoration_plafond_loyer_d823_16_2"] (embed_decimal) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=604; start_column=11; end_line=604; end_column=60; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=604; start_column=11; + end_line=604; end_column=60; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=604; start_column=11; + end_line=604; end_column=60; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=604; start_column=11; + end_line=604; end_column=60; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=604; start_column=11; + end_line=604; end_column=60; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=604; + start_column=11; + end_line=604; end_column=60; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=604; + start_column=11; + end_line=604; end_column=60; + law_headings= + ["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=3311; + start_column=5; + end_line=3319; end_column=35; + law_headings= + ["Article 46"; + "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2020) (10) (1)))) + (o_and + (match + residence_ + with + | + Collectivite.Guadeloupe _ -> + true + | + Collectivite.Guyane _ -> + false + | + Collectivite.Martinique _ -> + true + | + Collectivite.LaReunion _ -> + true + | + Collectivite.SaintBarthelemy _ -> + true + | + Collectivite.SaintMartin _ -> + true + | + Collectivite.Metropole _ -> + false + | + Collectivite.SaintPierreEtMiquelon _ -> + false + | + Collectivite.Mayotte _ -> + true) + (o_gte_int_int + nombre_personnes_a_charge_ + (integer_of_string + "6")))))) + (fun (_: unit) -> + decimal_of_string "5."))|]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2774; + start_column=5; + end_line=2782; end_column=35; + law_headings=["Article 46"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2021) (10) (1)))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true) + (o_gte_int_int + nombre_personnes_a_charge_ + (integer_of_string + "6")))))) + (fun (_: unit) -> + decimal_of_string "5."))|]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1700; + start_column=5; + end_line=1708; end_column=35; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2022) (1) (1)))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true) + (o_gte_int_int + nombre_personnes_a_charge_ + (integer_of_string "6")))))) + (fun (_: unit) -> + decimal_of_string "5."))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=577; start_column=5; + end_line=585; end_column=35; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true) + (o_gte_int_int + nombre_personnes_a_charge_ + (integer_of_string "6")))))) + (fun (_: unit) -> decimal_of_string "5."))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=82; start_column=5; + end_line=90; end_column=35; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2023) (1) (1)))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> true + | Collectivite.LaReunion _ -> true + | Collectivite.SaintBarthelemy _ -> true + | Collectivite.SaintMartin _ -> true + | Collectivite.Metropole _ -> false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true) + (o_gte_int_int nombre_personnes_a_charge_ + (integer_of_string "6")))))) + (fun (_: unit) -> decimal_of_string "5."))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> true) + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=604; start_column=11; end_line=604; end_column=60; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=604; start_column=11; + end_line=604; end_column=60; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=604; start_column=11; + end_line=604; end_column=60; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=604; start_column=11; + end_line=604; end_column=60; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=604; + start_column=11; + end_line=604; end_column=60; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=604; + start_column=11; + end_line=604; end_column=60; + law_headings= + ["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2405; + start_column=14; + end_line=2405; end_column=63; + law_headings= + ["Article 16"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2020) (10) (1))) + colocation_)))) + (fun (_: unit) -> + o_torat_int + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "1"))))|]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2086; + start_column=14; + end_line=2086; end_column=63; + law_headings=["Article 7"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2020) (10) (1)))))) + (fun (_: unit) -> + o_torat_int + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1"))))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1323; start_column=14; + end_line=1323; end_column=63; + law_headings=["Article 16"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + colocation_)))) + (fun (_: unit) -> + o_torat_int + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1"))))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=999; start_column=14; + end_line=999; end_column=63; + law_headings=["Article 7"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))))) + (fun (_: unit) -> + o_torat_int + (o_sub_int_int nombre_personnes_a_charge_ + (integer_of_string "1"))))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=125; start_column=14; + end_line=125; end_column=63; + law_headings=["Article 7"; + "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))))) + (fun (_: unit) -> + o_torat_int + (o_sub_int_int nombre_personnes_a_charge_ + (integer_of_string "1"))))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=604; start_column=11; end_line=604; end_column=60; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -6292,7 +6595,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=604; start_column=12; end_line=604; end_column=47; + start_line=609; start_column=12; end_line=609; end_column=47; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -6300,8 +6603,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=604; start_column=12; - end_line=604; end_column=47; + start_line=609; start_column=12; + end_line=609; end_column=47; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -6309,8 +6612,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=604; start_column=12; - end_line=604; end_column=47; + start_line=609; start_column=12; + end_line=609; end_column=47; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -6318,8 +6621,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=604; start_column=12; - end_line=604; end_column=47; + start_line=609; start_column=12; + end_line=609; end_column=47; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -6327,8 +6630,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=604; start_column=12; - end_line=604; end_column=47; + start_line=609; start_column=12; + end_line=609; end_column=47; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -6337,35 +6640,36 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4339; - start_column=6; - end_line=4346; end_column=28; + start_line=4423; + start_column=5; + end_line=4431; end_column=15; law_headings=["Article 46"; "Chapitre IX : Calcul des allocations de logement en outre-mer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ (date_of_numbers (2023) (1) (1))) - (match residence_ - with - | Collectivite.Guadeloupe _ -> - true - | Collectivite.Guyane _ -> - false - | Collectivite.Martinique _ -> - true - | Collectivite.LaReunion _ -> - true - | Collectivite.SaintBarthelemy _ -> - true - | Collectivite.SaintMartin _ -> - true - | Collectivite.Metropole _ -> - false - | Collectivite.SaintPierreEtMiquelon _ -> - false - | Collectivite.Mayotte _ -> - true)))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true) colocation_)))) (fun (_: unit) -> o_add_mon_mon (match @@ -6380,13 +6684,12 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (o_mult_mon_rat (money_of_cents_string "969") - (o_torat_int - nombre_personnes_a_charge_)))); + multiplicateur_majoration_charges_d823_16_))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=604; start_column=12; - end_line=604; end_column=47; + start_line=609; start_column=12; + end_line=609; end_column=47; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -6395,10 +6698,10 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=329; start_column=6; - end_line=336; end_column=28; + start_line=316; start_column=6; + end_line=323; end_column=28; law_headings=["Article 46"; - "Articles en vigueur du 1er juillet 2022 au 31 décembre 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; + "Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_and @@ -6462,6 +6765,342 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "969") (decimal_of_string "6."))) in + ( if + (o_gt_mon_mon montant_ limite_) + then limite_ else montant_))))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=609; start_column=12; + end_line=609; end_column=47; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=609; + start_column=12; + end_line=609; end_column=47; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1934; + start_column=6; + end_line=1941; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2022) (1) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true)))) + (fun (_: unit) -> + (let montant_ : money = + (o_add_mon_mon + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string + "1872") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string + "3640")) + (o_mult_mon_rat + (money_of_cents_string + "936") + (o_torat_int + nombre_personnes_a_charge_))) + in + (let limite_ : money = + (o_add_mon_mon + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string + "1872") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string + "3640")) + (o_mult_mon_rat + (money_of_cents_string + "936") + (decimal_of_string "6."))) + in + ( if + (o_gt_mon_mon montant_ + limite_) then + limite_ else montant_)))))|]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=814; start_column=6; + end_line=821; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2022) (1) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2022) (7) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true)))) + (fun (_: unit) -> + (let montant_ : money = + (o_add_mon_mon + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string + "1872") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string + "3640")) + (o_mult_mon_rat + (money_of_cents_string + "936") + (o_torat_int + nombre_personnes_a_charge_))) + in + (let limite_ : money = + (o_add_mon_mon + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string + "1872") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string + "3640")) + (o_mult_mon_rat + (money_of_cents_string + "936") + (decimal_of_string "6."))) + in + ( if + (o_gt_mon_mon montant_ limite_) + then limite_ else montant_))))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=609; start_column=12; + end_line=609; end_column=47; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=3009; + start_column=6; + end_line=3016; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2021) (10) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true)))) + (fun (_: unit) -> + (let montant_ : money = + (o_add_mon_mon + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string + "1864") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string + "3625")) + (o_mult_mon_rat + (money_of_cents_string + "932") + (o_torat_int + nombre_personnes_a_charge_))) + in + (let limite_ : money = + (o_add_mon_mon + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string + "1864") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string + "3625")) + (o_mult_mon_rat + (money_of_cents_string + "932") + (decimal_of_string "6."))) + in + ( if + (o_gt_mon_mon montant_ limite_) + then limite_ else montant_))))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=609; start_column=12; + end_line=609; end_column=47; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=3547; + start_column=6; + end_line=3554; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2020) (10) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true)))) + (fun (_: unit) -> + (let montant_ : money = + (o_add_mon_mon + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string + "1858") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string + "3614")) + (o_mult_mon_rat + (money_of_cents_string + "929") + (o_torat_int + nombre_personnes_a_charge_))) + in + (let limite_ : money = + (o_add_mon_mon + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string + "1858") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string + "3614")) + (o_mult_mon_rat + (money_of_cents_string + "929") + (decimal_of_string "6."))) + in ( if (o_gt_mon_mon montant_ limite_) then limite_ else montant_)))))|]) @@ -6471,8 +7110,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=604; start_column=12; - end_line=604; end_column=47; + start_line=609; start_column=12; + end_line=609; end_column=47; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -6480,8 +7119,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=604; start_column=12; - end_line=604; end_column=47; + start_line=609; start_column=12; + end_line=609; end_column=47; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -6489,8 +7128,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=573; start_column=39; - end_line=573; end_column=74; + start_line=588; start_column=14; + end_line=588; end_column=49; law_headings=["Article 16"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -6511,13 +7150,12 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "5612")) (o_mult_mon_rat (money_of_cents_string "1272") - (o_torat_int - nombre_personnes_a_charge_)))); + multiplicateur_majoration_charges_d823_16_))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=604; start_column=12; - end_line=604; end_column=47; + start_line=609; start_column=12; + end_line=609; end_column=47; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -6525,10 +7163,10 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=859; start_column=14; - end_line=859; end_column=49; + start_line=1351; start_column=14; + end_line=1351; end_column=49; law_headings=["Article 16"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -6550,13 +7188,12 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "5422")) (o_mult_mon_rat (money_of_cents_string "1229") - (o_torat_int - nombre_personnes_a_charge_)))); + multiplicateur_majoration_charges_d823_16_))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=604; start_column=12; - end_line=604; end_column=47; + start_line=609; start_column=12; + end_line=609; end_column=47; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -6564,10 +7201,10 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1813; start_column=14; - end_line=1813; end_column=49; + start_line=2434; start_column=14; + end_line=2434; end_column=49; law_headings=["Article 16"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_lt_dat_dat date_courante_ @@ -6589,16 +7226,15 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "5399")) (o_mult_mon_rat (money_of_cents_string "1224") - (o_torat_int - nombre_personnes_a_charge_))))|]) + multiplicateur_majoration_charges_d823_16_)))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)))|]) (fun (_: unit) -> true) (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=604; start_column=12; - end_line=604; end_column=47; + start_line=609; start_column=12; + end_line=609; end_column=47; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -6606,8 +7242,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=604; start_column=12; - end_line=604; end_column=47; + start_line=609; start_column=12; + end_line=609; end_column=47; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -6615,8 +7251,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4283; start_column=6; - end_line=4290; end_column=28; + start_line=4367; start_column=6; + end_line=4374; end_column=28; law_headings=["Article 46"; "Chapitre IX : Calcul des allocations de logement en outre-mer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -6639,12 +7275,12 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme o_add_mon_mon (money_of_cents_string "3767") (o_mult_mon_rat (money_of_cents_string "969") - (o_torat_int nombre_personnes_a_charge_)))); + multiplicateur_majoration_charges_d823_16_))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=604; start_column=12; - end_line=604; end_column=47; + start_line=609; start_column=12; + end_line=609; end_column=47; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -6652,10 +7288,10 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=254; start_column=6; - end_line=261; end_column=28; + start_line=241; start_column=6; + end_line=248; end_column=28; law_headings=["Article 46"; - "Articles en vigueur du 1er juillet 2022 au 31 décembre 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; + "Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_and @@ -6690,6 +7326,222 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (o_mult_mon_rat (money_of_cents_string "969") (decimal_of_string "6."))) in + ( if (o_gt_mon_mon montant_ limite_) then + limite_ else montant_))))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=609; start_column=12; + end_line=609; end_column=47; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=609; start_column=12; + end_line=609; end_column=47; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1860; start_column=6; + end_line=1867; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true)))) + (fun (_: unit) -> + (let montant_ : money = + (o_add_mon_mon + (money_of_cents_string "3640") + (o_mult_mon_rat + (money_of_cents_string + "936") + (o_torat_int + nombre_personnes_a_charge_))) + in + (let limite_ : money = + (o_add_mon_mon + (money_of_cents_string "3640") + (o_mult_mon_rat + (money_of_cents_string + "936") + (decimal_of_string "6."))) + in + ( if (o_gt_mon_mon montant_ limite_) + then limite_ else montant_)))))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=739; start_column=6; + end_line=746; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> true + | Collectivite.LaReunion _ -> true + | Collectivite.SaintBarthelemy _ -> true + | Collectivite.SaintMartin _ -> true + | Collectivite.Metropole _ -> false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true)))) + (fun (_: unit) -> + (let montant_ : money = + (o_add_mon_mon (money_of_cents_string + "3640") + (o_mult_mon_rat (money_of_cents_string + "936") + (o_torat_int + nombre_personnes_a_charge_))) + in + (let limite_ : money = + (o_add_mon_mon (money_of_cents_string + "3640") + (o_mult_mon_rat (money_of_cents_string + "936") (decimal_of_string "6."))) + in + ( if (o_gt_mon_mon montant_ limite_) then + limite_ else montant_))))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=609; start_column=12; + end_line=609; end_column=47; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2935; start_column=6; + end_line=2942; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> true + | Collectivite.LaReunion _ -> true + | Collectivite.SaintBarthelemy _ -> true + | Collectivite.SaintMartin _ -> true + | Collectivite.Metropole _ -> false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true)))) + (fun (_: unit) -> + (let montant_ : money = + (o_add_mon_mon (money_of_cents_string + "3625") + (o_mult_mon_rat (money_of_cents_string + "932") + (o_torat_int + nombre_personnes_a_charge_))) + in + (let limite_ : money = + (o_add_mon_mon (money_of_cents_string + "3625") + (o_mult_mon_rat (money_of_cents_string + "932") (decimal_of_string "6."))) + in + ( if (o_gt_mon_mon montant_ limite_) then + limite_ else montant_))))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=609; start_column=12; + end_line=609; end_column=47; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=3473; start_column=6; + end_line=3480; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> true + | Collectivite.LaReunion _ -> true + | Collectivite.SaintBarthelemy _ -> true + | Collectivite.SaintMartin _ -> true + | Collectivite.Metropole _ -> false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true)))) + (fun (_: unit) -> + (let montant_ : money = + (o_add_mon_mon (money_of_cents_string + "3614") + (o_mult_mon_rat (money_of_cents_string + "929") + (o_torat_int + nombre_personnes_a_charge_))) + in + (let limite_ : money = + (o_add_mon_mon (money_of_cents_string + "3614") + (o_mult_mon_rat (money_of_cents_string + "929") (decimal_of_string "6."))) + in ( if (o_gt_mon_mon montant_ limite_) then limite_ else montant_)))))|]) (fun (_: unit) -> false) @@ -6698,7 +7550,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=604; start_column=12; end_line=604; end_column=47; + start_line=609; start_column=12; end_line=609; end_column=47; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -6706,8 +7558,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=604; start_column=12; - end_line=604; end_column=47; + start_line=609; start_column=12; + end_line=609; end_column=47; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -6715,8 +7567,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=230; start_column=39; - end_line=230; end_column=74; + start_line=239; start_column=14; + end_line=239; end_column=49; law_headings=["Article 9"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -6725,12 +7577,12 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> o_add_mon_mon (money_of_cents_string "5612") (o_mult_mon_rat (money_of_cents_string "1272") - (o_torat_int nombre_personnes_a_charge_)))); + multiplicateur_majoration_charges_d823_16_))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=604; start_column=12; - end_line=604; end_column=47; + start_line=609; start_column=12; + end_line=609; end_column=47; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -6738,10 +7590,10 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=623; start_column=14; - end_line=623; end_column=49; + start_line=1114; start_column=14; + end_line=1114; end_column=49; law_headings=["Article 9"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -6751,12 +7603,12 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> o_add_mon_mon (money_of_cents_string "5422") (o_mult_mon_rat (money_of_cents_string "1229") - (o_torat_int nombre_personnes_a_charge_)))); + multiplicateur_majoration_charges_d823_16_))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=604; start_column=12; - end_line=604; end_column=47; + start_line=609; start_column=12; + end_line=609; end_column=47; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -6764,10 +7616,10 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1580; start_column=14; - end_line=1580; end_column=49; + start_line=2200; start_column=14; + end_line=2200; end_column=49; law_headings=["Article 9"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_lt_dat_dat date_courante_ @@ -6777,12 +7629,12 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> o_add_mon_mon (money_of_cents_string "5399") (o_mult_mon_rat (money_of_cents_string "1224") - (o_torat_int nombre_personnes_a_charge_))))|]) + multiplicateur_majoration_charges_d823_16_)))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=604; start_column=12; end_line=604; end_column=47; + start_line=609; start_column=12; end_line=609; end_column=47; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -6793,7 +7645,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=601; start_column=11; end_line=601; end_column=41; + start_line=602; start_column=11; end_line=602; end_column=41; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -6801,8 +7653,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=601; start_column=11; - end_line=601; end_column=41; + start_line=602; start_column=11; + end_line=602; end_column=41; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -6810,8 +7662,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=601; start_column=11; - end_line=601; end_column=41; + start_line=602; start_column=11; + end_line=602; end_column=41; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -6819,8 +7671,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4253; start_column=5; - end_line=4261; end_column=34; + start_line=4337; start_column=5; + end_line=4345; end_column=34; law_headings=["Article 46"; "Chapitre IX : Calcul des allocations de logement en outre-mer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -6846,47 +7698,90 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=601; start_column=11; - end_line=601; end_column=41; + start_line=602; start_column=11; + end_line=602; end_column=41; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=194; start_column=5; - end_line=202; end_column=35; - law_headings=["Article 46"; - "Articles en vigueur du 1er juillet 2022 au 31 décembre 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=4584; start_column=5; + end_line=4586; end_column=28; + law_headings=["Article 47"; + "Chapitre IX : Calcul des allocations de logement en outre-mer"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))) - (o_lt_dat_dat date_courante_ - (date_of_numbers (2023) (1) (1)))) - (o_and - (match residence_ - with - | Collectivite.Guadeloupe _ -> true - | Collectivite.Guyane _ -> false - | Collectivite.Martinique _ -> true - | Collectivite.LaReunion _ -> true - | Collectivite.SaintBarthelemy _ -> true - | Collectivite.SaintMartin _ -> true - | Collectivite.Metropole _ -> false - | Collectivite.SaintPierreEtMiquelon _ -> - false - | Collectivite.Mayotte _ -> true) - (o_gte_int_int nombre_personnes_a_charge_ - (integer_of_string "6")))))) - (fun (_: unit) -> money_of_cents_string "997500")); + (o_gte_dat_dat date_courante_ + (date_of_numbers (2023) (1) (1))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> false + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> false + | Collectivite.LaReunion _ -> false + | Collectivite.SaintBarthelemy _ -> false + | Collectivite.SaintMartin _ -> false + | Collectivite.Metropole _ -> false + | Collectivite.SaintPierreEtMiquelon _ -> + true + | Collectivite.Mayotte _ -> false)))) + (fun (_: unit) -> + if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "527200") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "755200")) else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")) then + (money_of_cents_string "900800") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "921100") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "3")) then + (money_of_cents_string "956300") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "4")) then + (money_of_cents_string "991900") + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "5")) then + (money_of_cents_string + "1027100") else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "6")) + then + (money_of_cents_string + "1062600") else + (o_add_mon_mon + (money_of_cents_string + "1062600") + (o_mult_mon_rat + (money_of_cents_string + "35000") + (o_torat_int + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "6"))))))))))))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=601; start_column=11; - end_line=601; end_column=41; + start_line=602; start_column=11; + end_line=602; end_column=41; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -6894,10 +7789,10 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=226; start_column=5; - end_line=234; end_column=34; + start_line=213; start_column=5; + end_line=221; end_column=34; law_headings=["Article 46"; - "Articles en vigueur du 1er juillet 2022 au 31 décembre 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; + "Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_and @@ -6924,8 +7819,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=601; start_column=11; - end_line=601; end_column=41; + start_line=602; start_column=11; + end_line=602; end_column=41; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -6933,10 +7828,134 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2296; start_column=5; - end_line=2305; end_column=28; + start_line=461; start_column=5; + end_line=463; end_column=28; law_headings=["Article 47"; - "Articles en vigueur du 01 janvier 2021 au 31 décembre 2021 - Arrêté du 31 décembre 2020 relatif au calcul des aides personnelles au logement pour l'année 2021 NOR : LOGL2028351A"; + "Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2023) (1) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> false + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> false + | Collectivite.LaReunion _ -> false + | Collectivite.SaintBarthelemy _ -> false + | Collectivite.SaintMartin _ -> false + | Collectivite.Metropole _ -> false + | Collectivite.SaintPierreEtMiquelon _ -> + true + | Collectivite.Mayotte _ -> false)))) + (fun (_: unit) -> + if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "487000") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "697700")) else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")) then + (money_of_cents_string "832200") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "850900") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "3")) then + (money_of_cents_string "883400") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "4")) then + (money_of_cents_string "916300") + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "5")) then + (money_of_cents_string "948800") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "6")) + then + (money_of_cents_string + "981600") else + (o_add_mon_mon + (money_of_cents_string + "981600") + (o_mult_mon_rat + (money_of_cents_string + "35000") + (o_torat_int + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "6"))))))))))))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=602; start_column=11; + end_line=602; end_column=41; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=710; start_column=5; + end_line=718; end_column=34; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> true + | Collectivite.LaReunion _ -> true + | Collectivite.SaintBarthelemy _ -> true + | Collectivite.SaintMartin _ -> true + | Collectivite.Metropole _ -> false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true) + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")))))) + (fun (_: unit) -> money_of_cents_string "774200")); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=602; start_column=11; + end_line=602; end_column=41; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=3195; start_column=5; + end_line=3204; end_column=28; + law_headings=["Article 47"; + "Articles en vigueur à partir du 01 janvier 2021 - Arrêté du 31 décembre 2020 relatif au calcul des aides personnelles au logement pour l'année 2021 NOR : LOGL2028351A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_and @@ -6992,8 +8011,143 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=601; start_column=11; - end_line=601; end_column=41; + start_line=602; start_column=11; + end_line=602; end_column=41; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=602; start_column=11; + end_line=602; end_column=41; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=602; start_column=11; + end_line=602; end_column=41; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=3444; + start_column=5; + end_line=3452; end_column=34; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2020) (10) (1)))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true) + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "1")))))) + (fun (_: unit) -> + money_of_cents_string "758400"))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2905; start_column=5; + end_line=2913; end_column=34; + law_headings=["Article 46"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1)))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true) + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")))))) + (fun (_: unit) -> money_of_cents_string + "758400"))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1832; start_column=5; + end_line=1840; end_column=34; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1)))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> true + | Collectivite.LaReunion _ -> true + | Collectivite.SaintBarthelemy _ -> true + | Collectivite.SaintMartin _ -> true + | Collectivite.Metropole _ -> false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true) + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")))))) + (fun (_: unit) -> money_of_cents_string "758400")); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=602; start_column=11; + end_line=602; end_column=41; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7001,10 +8155,10 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2519; start_column=5; - end_line=2528; end_column=28; + start_line=3706; start_column=5; + end_line=3715; end_column=28; law_headings=["Article 47"; - "Articles en vigueur du 01 janvier 2020 au 31 décembre 2021 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; + "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_and @@ -7062,7 +8216,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=601; start_column=11; end_line=601; end_column=41; + start_line=602; start_column=11; end_line=602; end_column=41; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7070,8 +8224,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=601; start_column=11; - end_line=601; end_column=41; + start_line=602; start_column=11; + end_line=602; end_column=41; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7079,8 +8233,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=467; start_column=14; - end_line=467; end_column=44; + start_line=486; start_column=14; + end_line=486; end_column=44; law_headings=["Article 15"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -7128,94 +8282,12 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (o_mult_mon_rat (money_of_cents_string "32800") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string - "6"))))))))))))); + multiplicateur_majoration_r0_)))))))))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=601; start_column=11; - end_line=601; end_column=41; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4504; start_column=5; - end_line=4506; end_column=28; - law_headings=["Article 47"; - "Chapitre IX : Calcul des allocations de logement en outre-mer"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2023) (1) (1))) - (match residence_ - with - | Collectivite.Guadeloupe _ -> false - | Collectivite.Guyane _ -> false - | Collectivite.Martinique _ -> false - | Collectivite.LaReunion _ -> false - | Collectivite.SaintBarthelemy _ -> false - | Collectivite.SaintMartin _ -> false - | Collectivite.Metropole _ -> false - | Collectivite.SaintPierreEtMiquelon _ -> true - | Collectivite.Mayotte _ -> false)))) - (fun (_: unit) -> - if - (o_eq nombre_personnes_a_charge_ - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "527200") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "755200")) else - ( if - (o_eq nombre_personnes_a_charge_ - (integer_of_string "1")) then - (money_of_cents_string "900800") else - ( if - (o_eq nombre_personnes_a_charge_ - (integer_of_string "2")) then - (money_of_cents_string "921100") else - ( if - (o_eq nombre_personnes_a_charge_ - (integer_of_string "3")) then - (money_of_cents_string "956300") else - ( if - (o_eq nombre_personnes_a_charge_ - (integer_of_string "4")) then - (money_of_cents_string "991900") else - ( if - (o_eq nombre_personnes_a_charge_ - (integer_of_string "5")) then - (money_of_cents_string "1027100") - else - ( if - (o_eq nombre_personnes_a_charge_ - (integer_of_string "6")) then - (money_of_cents_string - "1062600") else - (o_add_mon_mon - (money_of_cents_string - "1062600") - (o_mult_mon_rat - (money_of_cents_string - "35000") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string - "6"))))))))))))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=601; start_column=11; - end_line=601; end_column=41; + start_line=602; start_column=11; + end_line=602; end_column=41; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7223,10 +8295,10 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=34; start_column=14; - end_line=34; end_column=44; + start_line=39; start_column=14; + end_line=39; end_column=44; law_headings=["Article 15"; - "Articles en vigueur du 1er juillet 2022 au 31 décembre 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; + "Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -7275,16 +8347,12 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (o_mult_mon_rat (money_of_cents_string "32300") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string - "6"))))))))))))); + multiplicateur_majoration_r0_)))))))))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=601; start_column=11; - end_line=601; end_column=41; + start_line=602; start_column=11; + end_line=602; end_column=41; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7292,10 +8360,10 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1292; start_column=14; - end_line=1292; end_column=44; + start_line=535; start_column=14; + end_line=535; end_column=44; law_headings=["Article 15"; - "Articles en vigueur du 1er janvier 2022 au 30 juin 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A"; + "Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -7344,16 +8412,12 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (o_mult_mon_rat (money_of_cents_string "31100") - (o_torat_int - (o_sub_int_int - nombre_personnes_a_charge_ - (integer_of_string - "6"))))))))))))); + multiplicateur_majoration_r0_)))))))))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=601; start_column=11; - end_line=601; end_column=41; + start_line=602; start_column=11; + end_line=602; end_column=41; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7361,10 +8425,10 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2353; start_column=14; - end_line=2353; end_column=44; + start_line=3257; start_column=14; + end_line=3257; end_column=44; law_headings=["Article 15"; - "Articles en vigueur du 01 janvier 2020 au 31 décembre 2021 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; + "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_lt_dat_dat date_courante_ @@ -7422,7 +8486,1154 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=601; start_column=11; end_line=601; end_column=41; + start_line=602; start_column=11; end_line=602; end_column=41; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]})))) in + let loyer_reference_: money = (log_variable_definition + ["CalculAidePersonnaliséeLogementLocatif"; "loyer_référence"] + (embed_money) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=596; start_column=11; end_line=596; end_column=26; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=596; start_column=11; + end_line=596; end_column=26; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=445; start_column=14; + end_line=445; end_column=29; + law_headings=["Article 14"; + "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))))) + (fun (_: unit) -> + if + (o_eq nombre_personnes_a_charge_ (integer_of_string + "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "26887") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "32910")) else + (o_add_mon_mon (money_of_cents_string "37032") + (o_mult_mon_rat (money_of_cents_string "5390") + multiplicateur_majoration_loyer_reference_)))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=596; start_column=11; + end_line=596; end_column=26; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1259; start_column=14; + end_line=1259; end_column=29; + law_headings=["Article 14"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))))) + (fun (_: unit) -> + if + (o_eq nombre_personnes_a_charge_ (integer_of_string + "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "25978") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "31797")) else + (o_add_mon_mon (money_of_cents_string "35780") + (o_mult_mon_rat (money_of_cents_string "5208") + multiplicateur_majoration_loyer_reference_)))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=596; start_column=11; + end_line=596; end_column=26; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2343; start_column=14; + end_line=2343; end_column=29; + law_headings=["Article 14"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1)))))) + (fun (_: unit) -> + if + (o_eq nombre_personnes_a_charge_ (integer_of_string + "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "25869") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "31664")) else + (o_add_mon_mon (money_of_cents_string "35630") + (o_mult_mon_rat (money_of_cents_string "5186") + multiplicateur_majoration_loyer_reference_))))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=596; start_column=11; end_line=596; end_column=26; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]})))) in + let plafond_loyer_d823_16_2_: money = (log_variable_definition + ["CalculAidePersonnaliséeLogementLocatif"; "plafond_loyer_d823_16_2"] + (embed_money) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=546; start_column=5; + end_line=547; end_column=34; + law_headings=["Article 16"; + "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + colocation_) + (o_and + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + true + | SituationFamilialeCalculAPL.Couple _ -> + false) + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")))))) + (fun (_: unit) -> + match zone_ + with + | ZoneDHabitation.Zone1 _ -> + (money_of_cents_string "23138") + | ZoneDHabitation.Zone2 _ -> + (money_of_cents_string "20165") + | ZoneDHabitation.Zone3 _ -> + (money_of_cents_string "18900"))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=555; start_column=5; + end_line=556; end_column=34; + law_headings=["Article 16"; + "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + colocation_) + (o_and + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + false + | SituationFamilialeCalculAPL.Couple _ -> + true) + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")))))) + (fun (_: unit) -> + match zone_ + with + | ZoneDHabitation.Zone1 _ -> + (money_of_cents_string "27905") + | ZoneDHabitation.Zone2 _ -> + (money_of_cents_string "24683") + | ZoneDHabitation.Zone3 _ -> + (money_of_cents_string "22911"))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=564; start_column=5; + end_line=564; end_column=35; + law_headings=["Article 16"; + "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + colocation_) + (o_gte_int_int nombre_personnes_a_charge_ + (integer_of_string "1"))))) + (fun (_: unit) -> + match zone_ + with + | ZoneDHabitation.Zone1 _ -> + (o_add_mon_mon (money_of_cents_string + "31539") + (o_mult_mon_rat (money_of_cents_string + "4576") + multiplicateur_majoration_plafond_loyer_d823_16_2_)) + | ZoneDHabitation.Zone2 _ -> + (o_add_mon_mon (money_of_cents_string + "27774") + (o_mult_mon_rat (money_of_cents_string + "4043") + multiplicateur_majoration_plafond_loyer_d823_16_2_)) + | ZoneDHabitation.Zone3 _ -> + (o_add_mon_mon (money_of_cents_string + "25689") + (o_mult_mon_rat (money_of_cents_string + "3682") + multiplicateur_majoration_plafond_loyer_d823_16_2_)))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1305; start_column=5; + end_line=1306; end_column=34; + law_headings=["Article 16"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + colocation_)) + (o_and + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + true + | SituationFamilialeCalculAPL.Couple _ -> + false) + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")))))) + (fun (_: unit) -> + match zone_ + with + | ZoneDHabitation.Zone1 _ -> + (money_of_cents_string "22355") + | ZoneDHabitation.Zone2 _ -> + (money_of_cents_string "19484") + | ZoneDHabitation.Zone3 _ -> + (money_of_cents_string "18261"))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1314; start_column=5; + end_line=1315; end_column=34; + law_headings=["Article 16"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + colocation_)) + (o_and + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + false + | SituationFamilialeCalculAPL.Couple _ -> + true) + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")))))) + (fun (_: unit) -> + match zone_ + with + | ZoneDHabitation.Zone1 _ -> + (money_of_cents_string "26962") + | ZoneDHabitation.Zone2 _ -> + (money_of_cents_string "23848") + | ZoneDHabitation.Zone3 _ -> + (money_of_cents_string "22136"))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1327; start_column=5; + end_line=1327; end_column=35; + law_headings=["Article 16"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + colocation_)) + (o_gte_int_int nombre_personnes_a_charge_ + (integer_of_string "1"))))) + (fun (_: unit) -> + match zone_ + with + | ZoneDHabitation.Zone1 _ -> + (o_add_mon_mon (money_of_cents_string + "30473") + (o_mult_mon_rat (money_of_cents_string + "4421") + multiplicateur_majoration_plafond_loyer_d823_16_2_)) + | ZoneDHabitation.Zone2 _ -> + (o_add_mon_mon (money_of_cents_string + "26835") + (o_mult_mon_rat (money_of_cents_string + "3906") + multiplicateur_majoration_plafond_loyer_d823_16_2_)) + | ZoneDHabitation.Zone3 _ -> + (o_add_mon_mon (money_of_cents_string + "24821") + (o_mult_mon_rat (money_of_cents_string + "3557") + multiplicateur_majoration_plafond_loyer_d823_16_2_)))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2387; start_column=5; + end_line=2388; end_column=34; + law_headings=["Article 16"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + colocation_)) + (o_and + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + true + | SituationFamilialeCalculAPL.Couple _ -> + false) + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")))))) + (fun (_: unit) -> + match zone_ + with + | ZoneDHabitation.Zone1 _ -> + (money_of_cents_string "22262") + | ZoneDHabitation.Zone2 _ -> + (money_of_cents_string "19402") + | ZoneDHabitation.Zone3 _ -> + (money_of_cents_string "18185"))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2396; start_column=5; + end_line=2397; end_column=34; + law_headings=["Article 16"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + colocation_)) + (o_and + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + false + | SituationFamilialeCalculAPL.Couple _ -> + true) + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")))))) + (fun (_: unit) -> + match zone_ + with + | ZoneDHabitation.Zone1 _ -> + (money_of_cents_string "26849") + | ZoneDHabitation.Zone2 _ -> + (money_of_cents_string "23748") + | ZoneDHabitation.Zone3 _ -> + (money_of_cents_string "22044"))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2409; start_column=5; + end_line=2409; end_column=35; + law_headings=["Article 16"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + colocation_)) + (o_gte_int_int nombre_personnes_a_charge_ + (integer_of_string "1"))))) + (fun (_: unit) -> + match zone_ + with + | ZoneDHabitation.Zone1 _ -> + (o_add_mon_mon (money_of_cents_string + "30345") + (o_mult_mon_rat (money_of_cents_string + "4403") + multiplicateur_majoration_plafond_loyer_d823_16_2_)) + | ZoneDHabitation.Zone2 _ -> + (o_add_mon_mon (money_of_cents_string + "26723") + (o_mult_mon_rat (money_of_cents_string + "3890") + multiplicateur_majoration_plafond_loyer_d823_16_2_)) + | ZoneDHabitation.Zone3 _ -> + (o_add_mon_mon (money_of_cents_string + "24717") + (o_mult_mon_rat (money_of_cents_string + "3542") + multiplicateur_majoration_plafond_loyer_d823_16_2_))))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=198; start_column=5; + end_line=198; end_column=61; + law_headings=["Article 8"; + "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + logement_est_chambre_) + agees_ou_handicap_adultes_hebergees_onereux_particuliers_))) + (fun (_: unit) -> + match zone_ + with + | ZoneDHabitation.Zone1 _ -> + (money_of_cents_string "23138") + | ZoneDHabitation.Zone2 _ -> + (money_of_cents_string "20165") + | ZoneDHabitation.Zone3 _ -> + (money_of_cents_string "18900"))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1073; start_column=5; + end_line=1073; end_column=61; + law_headings=["Article 8"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + logement_est_chambre_)) + agees_ou_handicap_adultes_hebergees_onereux_particuliers_))) + (fun (_: unit) -> + match zone_ + with + | ZoneDHabitation.Zone1 _ -> + (money_of_cents_string "22355") + | ZoneDHabitation.Zone2 _ -> + (money_of_cents_string "19484") + | ZoneDHabitation.Zone3 _ -> + (money_of_cents_string "18261"))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2159; start_column=5; + end_line=2159; end_column=61; + law_headings=["Article 8"; "Article 7"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + logement_est_chambre_)) + agees_ou_handicap_adultes_hebergees_onereux_particuliers_))) + (fun (_: unit) -> + match zone_ + with + | ZoneDHabitation.Zone1 _ -> + (money_of_cents_string "22262") + | ZoneDHabitation.Zone2 _ -> + (money_of_cents_string "19402") + | ZoneDHabitation.Zone3 _ -> + (money_of_cents_string "18185")))|]) + (fun (_: unit) -> false) + (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> true) + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=191; start_column=14; + end_line=191; end_column=37; + law_headings=["Article 8"; + "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + logement_est_chambre_))) + (fun (_: unit) -> + match zone_ + with + | ZoneDHabitation.Zone1 _ -> + (money_of_cents_string "27765") + | ZoneDHabitation.Zone2 _ -> + (money_of_cents_string "24198") + | ZoneDHabitation.Zone3 _ -> + (money_of_cents_string "22680"))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1066; start_column=14; + end_line=1066; end_column=37; + law_headings=["Article 8"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + logement_est_chambre_)))) + (fun (_: unit) -> + match zone_ + with + | ZoneDHabitation.Zone1 _ -> + (money_of_cents_string "26826") + | ZoneDHabitation.Zone2 _ -> + (money_of_cents_string "23380") + | ZoneDHabitation.Zone3 _ -> + (money_of_cents_string "21913"))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2152; start_column=14; + end_line=2152; end_column=37; + law_headings=["Article 8"; "Article 7"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + logement_est_chambre_)))) + (fun (_: unit) -> + match zone_ + with + | ZoneDHabitation.Zone1 _ -> + (money_of_cents_string "26714") + | ZoneDHabitation.Zone2 _ -> + (money_of_cents_string "23282") + | ZoneDHabitation.Zone3 _ -> + (money_of_cents_string "21821")))|]) + (fun (_: unit) -> false) + (fun (_: unit) -> raise EmptyError)))|]) + (fun (_: unit) -> true) + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=106; start_column=5; + end_line=107; end_column=34; + law_headings=["Article 7"; + "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + (o_and + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + true + | SituationFamilialeCalculAPL.Couple _ -> + false) + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")))))) + (fun (_: unit) -> + match zone_ + with + | ZoneDHabitation.Zone1 _ -> (money_of_cents_string + "30850") + | ZoneDHabitation.Zone2 _ -> (money_of_cents_string + "26887") + | ZoneDHabitation.Zone3 _ -> (money_of_cents_string + "25200"))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=116; start_column=5; + end_line=117; end_column=34; + law_headings=["Article 7"; + "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + (o_and + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + false + | SituationFamilialeCalculAPL.Couple _ -> + true) + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")))))) + (fun (_: unit) -> + match zone_ + with + | ZoneDHabitation.Zone1 _ -> (money_of_cents_string + "37207") + | ZoneDHabitation.Zone2 _ -> (money_of_cents_string + "32910") + | ZoneDHabitation.Zone3 _ -> (money_of_cents_string + "30548"))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=130; start_column=5; + end_line=130; end_column=35; + law_headings=["Article 7"; + "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + (o_gte_int_int nombre_personnes_a_charge_ + (integer_of_string "1"))))) + (fun (_: unit) -> + match zone_ + with + | ZoneDHabitation.Zone1 _ -> + (o_add_mon_mon (money_of_cents_string "42052") + (o_mult_mon_rat (money_of_cents_string + "6101") + multiplicateur_majoration_plafond_loyer_d823_16_2_)) + | ZoneDHabitation.Zone2 _ -> + (o_add_mon_mon (money_of_cents_string "37032") + (o_mult_mon_rat (money_of_cents_string + "5390") + multiplicateur_majoration_plafond_loyer_d823_16_2_)) + | ZoneDHabitation.Zone3 _ -> + (o_add_mon_mon (money_of_cents_string "34252") + (o_mult_mon_rat (money_of_cents_string + "4909") + multiplicateur_majoration_plafond_loyer_d823_16_2_)))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=980; start_column=5; + end_line=981; end_column=34; + law_headings=["Article 7"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) + (o_and + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + true + | SituationFamilialeCalculAPL.Couple _ -> + false) + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")))))) + (fun (_: unit) -> + match zone_ + with + | ZoneDHabitation.Zone1 _ -> (money_of_cents_string + "29807") + | ZoneDHabitation.Zone2 _ -> (money_of_cents_string + "25978") + | ZoneDHabitation.Zone3 _ -> (money_of_cents_string + "24348"))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=990; start_column=5; + end_line=991; end_column=34; + law_headings=["Article 7"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) + (o_and + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + false + | SituationFamilialeCalculAPL.Couple _ -> + true) + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")))))) + (fun (_: unit) -> + match zone_ + with + | ZoneDHabitation.Zone1 _ -> (money_of_cents_string + "35949") + | ZoneDHabitation.Zone2 _ -> (money_of_cents_string + "31797") + | ZoneDHabitation.Zone3 _ -> (money_of_cents_string + "29515"))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1004; start_column=5; + end_line=1004; end_column=35; + law_headings=["Article 7"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) + (o_gte_int_int nombre_personnes_a_charge_ + (integer_of_string "1"))))) + (fun (_: unit) -> + match zone_ + with + | ZoneDHabitation.Zone1 _ -> + (o_add_mon_mon (money_of_cents_string "40630") + (o_mult_mon_rat (money_of_cents_string + "5895") + multiplicateur_majoration_plafond_loyer_d823_16_2_)) + | ZoneDHabitation.Zone2 _ -> + (o_add_mon_mon (money_of_cents_string "35780") + (o_mult_mon_rat (money_of_cents_string + "5208") + multiplicateur_majoration_plafond_loyer_d823_16_2_)) + | ZoneDHabitation.Zone3 _ -> + (o_add_mon_mon (money_of_cents_string "33094") + (o_mult_mon_rat (money_of_cents_string + "4743") + multiplicateur_majoration_plafond_loyer_d823_16_2_)))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2067; start_column=5; + end_line=2068; end_column=34; + law_headings=["Article 7"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1)))) + (o_and + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + true + | SituationFamilialeCalculAPL.Couple _ -> + false) + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")))))) + (fun (_: unit) -> + match zone_ + with + | ZoneDHabitation.Zone1 _ -> (money_of_cents_string + "29682") + | ZoneDHabitation.Zone2 _ -> (money_of_cents_string + "25859") + | ZoneDHabitation.Zone3 _ -> (money_of_cents_string + "24246"))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2077; start_column=5; + end_line=2078; end_column=34; + law_headings=["Article 7"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1)))) + (o_and + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + false + | SituationFamilialeCalculAPL.Couple _ -> + true) + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")))))) + (fun (_: unit) -> + match zone_ + with + | ZoneDHabitation.Zone1 _ -> (money_of_cents_string + "35799") + | ZoneDHabitation.Zone2 _ -> (money_of_cents_string + "31664") + | ZoneDHabitation.Zone3 _ -> (money_of_cents_string + "29392"))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; + end_line=610; end_column=35; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2091; start_column=5; + end_line=2091; end_column=35; + law_headings=["Article 7"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1)))) + (o_gte_int_int nombre_personnes_a_charge_ + (integer_of_string "1"))))) + (fun (_: unit) -> + match zone_ + with + | ZoneDHabitation.Zone1 _ -> + (o_add_mon_mon (money_of_cents_string "40460") + (o_mult_mon_rat (money_of_cents_string + "5870") + multiplicateur_majoration_plafond_loyer_d823_16_2_)) + | ZoneDHabitation.Zone2 _ -> + (o_add_mon_mon (money_of_cents_string "35630") + (o_mult_mon_rat (money_of_cents_string + "5186") + multiplicateur_majoration_plafond_loyer_d823_16_2_)) + | ZoneDHabitation.Zone3 _ -> + (o_add_mon_mon (money_of_cents_string "32956") + (o_mult_mon_rat (money_of_cents_string + "4723") + multiplicateur_majoration_plafond_loyer_d823_16_2_))))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=610; start_column=12; end_line=610; end_column=35; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7433,18 +9644,18 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=598; start_column=11; end_line=598; end_column=38; + start_line=599; start_column=11; end_line=599; end_column=38; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=259; start_column=14; end_line=259; end_column=41; + start_line=269; start_column=14; end_line=269; end_column=41; law_headings=["Article 10"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) (fun (_: unit) -> match zone_ with @@ -7460,7 +9671,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=598; start_column=11; end_line=598; end_column=38; + start_line=599; start_column=11; end_line=599; end_column=38; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7471,18 +9682,18 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=597; start_column=11; end_line=597; end_column=39; + start_line=598; start_column=11; end_line=598; end_column=39; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=253; start_column=14; end_line=253; end_column=42; + start_line=263; start_column=14; end_line=263; end_column=42; law_headings=["Article 10"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) (fun (_: unit) -> match zone_ with @@ -7498,7 +9709,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=597; start_column=11; end_line=597; end_column=39; + start_line=598; start_column=11; end_line=598; end_column=39; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7509,14 +9720,14 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=590; start_column=11; end_line=590; end_column=25; + start_line=591; start_column=11; end_line=591; end_column=25; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1786; start_column=14; end_line=1786; end_column=28; + start_line=1788; start_column=14; end_line=1788; end_column=28; law_headings=["Article D823-16"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -7534,7 +9745,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=590; start_column=11; end_line=590; end_column=25; + start_line=591; start_column=11; end_line=591; end_column=25; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7547,7 +9758,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=616; start_column=10; end_line=616; end_column=17; + start_line=622; start_column=10; end_line=622; end_column=17; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7555,8 +9766,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=616; start_column=10; - end_line=616; end_column=17; + start_line=622; start_column=10; + end_line=622; end_column=17; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7564,8 +9775,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1835; start_column=5; - end_line=1835; end_column=50; + start_line=1837; start_column=5; + end_line=1837; end_column=50; law_headings=["Article D823-16"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -7578,8 +9789,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> aide_finale_))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1821; start_column=14; - end_line=1821; end_column=36; + start_line=1823; start_column=14; + end_line=1823; end_column=36; law_headings=["Article D823-16"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -7609,7 +9820,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=616; start_column=10; end_line=616; end_column=17; + start_line=622; start_column=10; end_line=622; end_column=17; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7617,7 +9828,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=616; start_column=10; end_line=616; end_column=17; + start_line=622; start_column=10; end_line=622; end_column=17; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7628,7 +9839,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=606; start_column=12; end_line=606; end_column=34; + start_line=611; start_column=12; end_line=611; end_column=34; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7636,16 +9847,16 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=606; start_column=12; - end_line=606; end_column=34; + start_line=611; start_column=12; + end_line=611; end_column=34; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=302; start_column=14; - end_line=302; end_column=36; + start_line=314; start_column=14; + end_line=314; end_column=36; law_headings=["Article 13"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -7667,18 +9878,18 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=606; start_column=12; - end_line=606; end_column=34; + start_line=611; start_column=12; + end_line=611; end_column=34; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=637; start_column=14; - end_line=637; end_column=36; + start_line=1128; start_column=14; + end_line=1128; end_column=36; law_headings=["Article 13"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -7701,18 +9912,18 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=606; start_column=12; - end_line=606; end_column=34; + start_line=611; start_column=12; + end_line=611; end_column=34; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1594; start_column=14; - end_line=1594; end_column=36; + start_line=2214; start_column=14; + end_line=2214; end_column=36; law_headings=["Article 13"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_lt_dat_dat date_courante_ @@ -7736,7 +9947,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=606; start_column=12; end_line=606; end_column=34; + start_line=611; start_column=12; end_line=611; end_column=34; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7747,7 +9958,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=594; start_column=11; end_line=594; end_column=25; + start_line=595; start_column=11; end_line=595; end_column=25; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7755,8 +9966,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=594; start_column=11; - end_line=594; end_column=25; + start_line=595; start_column=11; + end_line=595; end_column=25; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7764,8 +9975,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=594; start_column=11; - end_line=594; end_column=25; + start_line=595; start_column=11; + end_line=595; end_column=25; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7773,8 +9984,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=594; start_column=11; - end_line=594; end_column=25; + start_line=595; start_column=11; + end_line=595; end_column=25; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7782,10 +9993,10 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1673; start_column=14; - end_line=1673; end_column=28; + start_line=2289; start_column=14; + end_line=2289; end_column=28; law_headings=["Article 14"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -7802,10 +10013,10 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (decimal_of_string "100.")))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=715; start_column=14; - end_line=715; end_column=28; + start_line=1202; start_column=14; + end_line=1202; end_column=28; law_headings=["Article 14"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -7822,8 +10033,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (decimal_of_string "100.")))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=380; start_column=14; - end_line=380; end_column=28; + start_line=390; start_column=14; + end_line=390; end_column=28; law_headings=["Article 14"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -7840,7 +10051,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=594; start_column=11; end_line=594; end_column=25; + start_line=595; start_column=11; end_line=595; end_column=25; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7853,15 +10064,15 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=617; start_column=10; end_line=617; end_column=32; + start_line=623; start_column=10; end_line=623; end_column=32; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1845; start_column=14; - end_line=1845; end_column=36; + start_line=1847; start_column=14; + end_line=1847; end_column=36; law_headings=["Article D823-16"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -7897,7 +10108,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=617; start_column=10; end_line=617; end_column=32; + start_line=623; start_column=10; end_line=623; end_column=32; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7905,7 +10116,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=617; start_column=10; end_line=617; end_column=32; + start_line=623; start_column=10; end_line=623; end_column=32; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7916,7 +10127,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=592; start_column=10; end_line=592; end_column=17; + start_line=593; start_column=10; end_line=593; end_column=17; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7924,8 +10135,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=592; start_column=10; - end_line=592; end_column=17; + start_line=593; start_column=10; + end_line=593; end_column=17; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7933,8 +10144,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=592; start_column=10; - end_line=592; end_column=17; + start_line=593; start_column=10; + end_line=593; end_column=17; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7942,8 +10153,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=592; start_column=10; - end_line=592; end_column=17; + start_line=593; start_column=10; + end_line=593; end_column=17; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -7951,10 +10162,10 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1697; start_column=14; - end_line=1697; end_column=33; + start_line=2313; start_column=14; + end_line=2313; end_column=33; law_headings=["Article 14"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -7994,10 +10205,10 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme else (decimal_of_string "0.")))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=742; start_column=14; - end_line=742; end_column=33; + start_line=1229; start_column=14; + end_line=1229; end_column=33; law_headings=["Article 14"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -8032,8 +10243,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme else (decimal_of_string "0.")))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=406; start_column=14; - end_line=406; end_column=33; + start_line=416; start_column=14; + end_line=416; end_column=33; law_headings=["Article 14"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -8067,7 +10278,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=592; start_column=10; end_line=592; end_column=17; + start_line=593; start_column=10; end_line=593; end_column=17; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8081,15 +10292,15 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=618; start_column=10; end_line=618; end_column=40; + start_line=624; start_column=10; end_line=624; end_column=40; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1862; start_column=14; - end_line=1862; end_column=36; + start_line=1864; start_column=14; + end_line=1864; end_column=36; law_headings=["Article D823-16"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -8140,7 +10351,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=618; start_column=10; end_line=618; end_column=40; + start_line=624; start_column=10; end_line=624; end_column=40; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8148,7 +10359,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=618; start_column=10; end_line=618; end_column=40; + start_line=624; start_column=10; end_line=624; end_column=40; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8159,7 +10370,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=593; start_column=10; end_line=593; end_column=22; + start_line=594; start_column=10; end_line=594; end_column=22; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8167,8 +10378,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=593; start_column=10; - end_line=593; end_column=22; + start_line=594; start_column=10; + end_line=594; end_column=22; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8176,8 +10387,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=593; start_column=10; - end_line=593; end_column=22; + start_line=594; start_column=10; + end_line=594; end_column=22; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8185,8 +10396,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=593; start_column=10; - end_line=593; end_column=22; + start_line=594; start_column=10; + end_line=594; end_column=22; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8194,10 +10405,10 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1704; start_column=14; - end_line=1704; end_column=33; + start_line=2320; start_column=14; + end_line=2320; end_column=33; law_headings=["Article 14"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -8213,10 +10424,10 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (decimal_of_string "100000.")))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=749; start_column=14; - end_line=749; end_column=33; + start_line=1236; start_column=14; + end_line=1236; end_column=33; law_headings=["Article 14"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -8231,8 +10442,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (decimal_of_string "100000.")))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=413; start_column=14; - end_line=413; end_column=33; + start_line=423; start_column=14; + end_line=423; end_column=33; law_headings=["Article 14"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -8248,7 +10459,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=593; start_column=10; end_line=593; end_column=22; + start_line=594; start_column=10; end_line=594; end_column=22; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8261,7 +10472,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=619; start_column=10; end_line=619; end_column=36; + start_line=625; start_column=10; end_line=625; end_column=36; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8305,7 +10516,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=619; start_column=10; end_line=619; end_column=36; + start_line=625; start_column=10; end_line=625; end_column=36; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8313,7 +10524,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=619; start_column=10; end_line=619; end_column=36; + start_line=625; start_column=10; end_line=625; end_column=36; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8324,14 +10535,14 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=602; start_column=11; end_line=602; end_column=39; + start_line=603; start_column=11; end_line=603; end_column=39; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1945; start_column=14; end_line=1945; end_column=42; + start_line=1947; start_column=14; end_line=1947; end_column=42; law_headings=["Article D823-17"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -8347,7 +10558,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=602; start_column=11; end_line=602; end_column=39; + start_line=603; start_column=11; end_line=603; end_column=39; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8360,15 +10571,15 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=620; start_column=10; end_line=620; end_column=25; + start_line=626; start_column=10; end_line=626; end_column=25; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1894; start_column=14; - end_line=1894; end_column=36; + start_line=1896; start_column=14; + end_line=1896; end_column=36; law_headings=["Article D823-16"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -8400,7 +10611,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=620; start_column=10; end_line=620; end_column=25; + start_line=626; start_column=10; end_line=626; end_column=25; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8408,7 +10619,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=620; start_column=10; end_line=620; end_column=25; + start_line=626; start_column=10; end_line=626; end_column=25; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8419,14 +10630,14 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=608; start_column=12; end_line=608; end_column=37; + start_line=613; start_column=12; end_line=613; end_column=37; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1911; start_column=14; end_line=1911; end_column=39; + start_line=1913; start_column=14; end_line=1913; end_column=39; law_headings=["Article D823-17"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -8453,7 +10664,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=608; start_column=12; end_line=608; end_column=37; + start_line=613; start_column=12; end_line=613; end_column=37; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8464,14 +10675,14 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=613; start_column=12; end_line=613; end_column=31; + start_line=618; start_column=12; end_line=618; end_column=31; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1768; start_column=14; end_line=1768; end_column=33; + start_line=1770; start_column=14; end_line=1770; end_column=33; law_headings=["Article D823-16"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -8493,7 +10704,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=613; start_column=12; end_line=613; end_column=31; + start_line=618; start_column=12; end_line=618; end_column=31; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8506,8 +10717,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1838; start_column=13; - end_line=1838; end_column=74; + start_line=1840; start_column=13; + end_line=1840; end_column=74; law_headings=["Article D823-16"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -8518,8 +10729,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Code de la construction et de l'habitation"]}))) then () else raise (AssertionFailed {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1838; start_column=13; - end_line=1838; end_column=74; + start_line=1840; start_column=13; + end_line=1840; end_column=74; law_headings=["Article D823-16"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -8560,16 +10771,16 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme try (o_not (o_and logement_est_chambre_ colocation_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=634; start_column=13; - end_line=634; end_column=53; + start_line=640; start_column=13; + end_line=640; end_column=53; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]}))) then () else raise (AssertionFailed {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=634; start_column=13; - end_line=634; end_column=53; + start_line=640; start_column=13; + end_line=640; end_column=53; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8581,16 +10792,16 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=627; start_column=13; - end_line=627; end_column=43; + start_line=633; start_column=13; + end_line=633; end_column=43; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]}))) then () else raise (AssertionFailed {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=627; start_column=13; - end_line=627; end_column=43; + start_line=633; start_column=13; + end_line=633; end_column=43; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8602,16 +10813,16 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=626; start_column=13; - end_line=626; end_column=42; + start_line=632; start_column=13; + end_line=632; end_column=42; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]}))) then () else raise (AssertionFailed {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=626; start_column=13; - end_line=626; end_column=42; + start_line=632; start_column=13; + end_line=632; end_column=42; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8650,7 +10861,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=678; start_column=12; end_line=678; end_column=52; + start_line=684; start_column=12; end_line=684; end_column=52; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8660,15 +10871,15 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=678; start_column=12; end_line=678; end_column=52; + start_line=684; start_column=12; end_line=684; end_column=52; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=678; start_column=12; - end_line=678; end_column=52; + start_line=684; start_column=12; + end_line=684; end_column=52; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8677,85 +10888,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=678; start_column=12; end_line=678; end_column=52; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})))) in - let coefficient_r_d832_25_: money = (log_variable_definition - ["CalculAidePersonnaliséeLogementFoyer"; "coefficient_r_d832_25"] - (embed_money) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=681; start_column=12; end_line=681; end_column=33; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2566; start_column=14; end_line=2566; end_column=35; - law_headings=["Article 30"; - "Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: unit) -> money_of_cents_string "121726")) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=681; start_column=12; end_line=681; end_column=33; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})))) in - let montant_forfaitaire_d832_24_: money = (log_variable_definition - ["CalculAidePersonnaliséeLogementFoyer"; "montant_forfaitaire_d832_24"] - (embed_money) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=689; start_column=11; end_line=689; end_column=38; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2541; start_column=14; end_line=2541; end_column=41; - law_headings=["Article 28"; - "Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: unit) -> money_of_cents_string "500")) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=689; start_column=11; end_line=689; end_column=38; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})))) in - let montant_minimal_aide_d823_24_: money = (log_variable_definition - ["CalculAidePersonnaliséeLogementFoyer"; "montant_minimal_aide_d823_24"] - (embed_money) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=691; start_column=11; end_line=691; end_column=39; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2552; start_column=14; end_line=2552; end_column=42; - law_headings=["Article 29"; - "Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: unit) -> money_of_cents_string "1000")) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=691; start_column=11; end_line=691; end_column=39; + start_line=684; start_column=12; end_line=684; end_column=52; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8766,7 +10899,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=677; start_column=12; end_line=677; end_column=33; + start_line=683; start_column=12; end_line=683; end_column=33; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8776,15 +10909,15 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=677; start_column=12; end_line=677; end_column=33; + start_line=683; start_column=12; end_line=683; end_column=33; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3845; start_column=14; - end_line=3845; end_column=35; + start_line=3847; start_column=14; + end_line=3847; end_column=35; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -8809,7 +10942,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=677; start_column=12; end_line=677; end_column=33; + start_line=683; start_column=12; end_line=683; end_column=33; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8820,14 +10953,14 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "contributions_sociales.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=713; start_column=14; end_line=713; end_column=50; + start_line=720; start_column=14; end_line=720; end_column=50; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=713; start_column=14; end_line=713; end_column=50; + start_line=720; start_column=14; end_line=720; end_column=50; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8836,7 +10969,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=713; start_column=14; end_line=713; end_column=50; + start_line=720; start_column=14; end_line=720; end_column=50; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8850,13 +10983,67 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement ({ContributionsSocialesAidesPersonnelleLogementIn.date_courante_in = contributions_sociales_dot_date_courante_}))) in let contributions_sociales_dot_montant_: money -> money = result_.ContributionsSocialesAidesPersonnelleLogement.montant in + let montant_minimal_aide_d823_24_: money = (log_variable_definition + ["CalculAidePersonnaliséeLogementFoyer"; "montant_minimal_aide_d823_24"] + (embed_money) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=697; start_column=11; end_line=697; end_column=39; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=2581; start_column=14; end_line=2581; end_column=42; + law_headings=["Article 29"; + "Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) + (fun (_: unit) -> money_of_cents_string "1000")) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=697; start_column=11; end_line=697; end_column=39; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]})))) in + let montant_forfaitaire_d832_24_: money = (log_variable_definition + ["CalculAidePersonnaliséeLogementFoyer"; "montant_forfaitaire_d832_24"] + (embed_money) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=695; start_column=11; end_line=695; end_column=38; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=2569; start_column=14; end_line=2569; end_column=41; + law_headings=["Article 28"; + "Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) + (fun (_: unit) -> money_of_cents_string "500")) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=695; start_column=11; end_line=695; end_column=38; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]})))) in let plafond_equivalence_loyer_eligible_: money = (log_variable_definition ["CalculAidePersonnaliséeLogementFoyer"; "plafond_équivalence_loyer_éligible"] (embed_money) ( try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=684; start_column=12; end_line=684; end_column=46; + start_line=690; start_column=12; end_line=690; end_column=46; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -8864,16 +11051,16 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=684; start_column=12; - end_line=684; end_column=46; + start_line=690; start_column=12; + end_line=690; end_column=46; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2487; start_column=14; - end_line=2487; end_column=48; + start_line=2514; start_column=14; + end_line=2514; end_column=48; law_headings=["Article 27"; "Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -8975,18 +11162,18 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=684; start_column=12; - end_line=684; end_column=46; + start_line=690; start_column=12; + end_line=690; end_column=46; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=961; start_column=14; - end_line=961; end_column=48; + start_line=1453; start_column=14; + end_line=1453; end_column=48; law_headings=["Article 27"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -9089,18 +11276,18 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=684; start_column=12; - end_line=684; end_column=46; + start_line=690; start_column=12; + end_line=690; end_column=46; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1916; start_column=14; - end_line=1916; end_column=48; + start_line=2537; start_column=14; + end_line=2537; end_column=48; law_headings=["Article 27"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_lt_dat_dat date_courante_ @@ -9204,57 +11391,34 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=684; start_column=12; end_line=684; end_column=46; + start_line=690; start_column=12; end_line=690; end_column=46; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]})))) in - let traitement_aide_finale_minoration_forfaitaire_: money -> money = (log_variable_definition - ["CalculAidePersonnaliséeLogementFoyer"; - "traitement_aide_finale_minoration_forfaitaire"] (unembeddable) ( + let coefficient_r_d832_25_: money = (log_variable_definition + ["CalculAidePersonnaliséeLogementFoyer"; "coefficient_r_d832_25"] + (embed_money) ( try - (fun (aide_finale_: money) -> - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=707; start_column=10; end_line=707; end_column=32; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3778; start_column=14; - end_line=3778; end_column=36; - law_headings=["Article D832-24"; - "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; - "Section 3 : Logements-foyers"; - "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; - "Titre III : Aide personnalisée au logement"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]} - true)) - (fun (_: unit) -> - if - (o_gte_mon_mon - (o_sub_mon_mon aide_finale_ - montant_forfaitaire_d832_24_) (money_of_cents_string - "0")) then - (o_sub_mon_mon aide_finale_ montant_forfaitaire_d832_24_) - else (money_of_cents_string "0"))) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=707; start_column=10; end_line=707; end_column=32; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]}))) + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=687; start_column=12; end_line=687; end_column=33; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=2596; start_column=14; end_line=2596; end_column=35; + law_headings=["Article 30"; + "Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) + (fun (_: unit) -> money_of_cents_string "121726")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=707; start_column=10; end_line=707; end_column=32; + start_line=687; start_column=12; end_line=687; end_column=33; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -9265,7 +11429,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "calcul_nombre_parts.condition_2_du_832_25"] (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3939; start_column=14; end_line=3939; end_column=55; + start_line=3941; start_column=14; end_line=3941; end_column=55; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9277,7 +11441,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3939; start_column=14; end_line=3939; end_column=55; + start_line=3941; start_column=14; end_line=3941; end_column=55; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9290,7 +11454,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3939; start_column=14; end_line=3939; end_column=55; + start_line=3941; start_column=14; end_line=3941; end_column=55; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9305,7 +11469,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "calcul_nombre_parts.nombre_personnes_à_charge"] (embed_integer) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3935; start_column=14; end_line=3935; end_column=59; + start_line=3937; start_column=14; end_line=3937; end_column=59; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9317,7 +11481,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3935; start_column=14; end_line=3935; end_column=59; + start_line=3937; start_column=14; end_line=3937; end_column=59; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9330,7 +11494,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3935; start_column=14; end_line=3935; end_column=59; + start_line=3937; start_column=14; end_line=3937; end_column=59; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9346,7 +11510,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement (embed_situation_familiale_calcul_a_p_l) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3937; start_column=14; end_line=3937; end_column=64; + start_line=3939; start_column=14; end_line=3939; end_column=64; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9358,7 +11522,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3937; start_column=14; end_line=3937; end_column=64; + start_line=3939; start_column=14; end_line=3939; end_column=64; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9371,7 +11535,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3937; start_column=14; end_line=3937; end_column=64; + start_line=3939; start_column=14; end_line=3939; end_column=64; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9386,7 +11550,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "calcul_nombre_parts.résidence"] (embed_collectivite) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3941; start_column=14; end_line=3941; end_column=43; + start_line=3943; start_column=14; end_line=3943; end_column=43; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9398,7 +11562,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3941; start_column=14; end_line=3941; end_column=43; + start_line=3943; start_column=14; end_line=3943; end_column=43; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9411,7 +11575,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3941; start_column=14; end_line=3941; end_column=43; + start_line=3943; start_column=14; end_line=3943; end_column=43; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9427,8 +11591,8 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5541; start_column=5; - end_line=5541; end_column=65; + start_line=5546; start_column=5; + end_line=5546; end_column=65; law_headings=["Article D861-8"; "Section 2 : Allocations de logement"; "Titre VI : Disposition particulières à l'outre-mer"; @@ -9438,8 +11602,8 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5543; start_column=5; - end_line=5543; end_column=45; + start_line=5548; start_column=5; + end_line=5548; end_column=45; law_headings=["Article D861-8"; "Section 2 : Allocations de logement"; "Titre VI : Disposition particulières à l'outre-mer"; @@ -9470,25 +11634,25 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=690; start_column=11; end_line=690; end_column=38; + start_line=696; start_column=11; end_line=696; end_column=38; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2722; start_column=14; end_line=2722; end_column=41; + start_line=2754; start_column=14; end_line=2754; end_column=41; law_headings=["Article 32"; "Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) (fun (_: unit) -> if condition_2_du_832_25_ then (money_of_cents_string "1500") else (money_of_cents_string "2668"))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=690; start_column=11; end_line=690; end_column=38; + start_line=696; start_column=11; end_line=696; end_column=38; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -9499,25 +11663,75 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=680; start_column=12; end_line=680; end_column=46; + start_line=686; start_column=12; end_line=686; end_column=46; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2576; start_column=14; end_line=2576; end_column=48; + start_line=2607; start_column=14; end_line=2607; end_column=48; law_headings=["Article 30"; "Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) (fun (_: unit) -> if condition_2_du_832_25_ then (money_of_cents_string "2142091") else (money_of_cents_string "1339340"))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=680; start_column=12; end_line=680; end_column=46; + start_line=686; start_column=12; end_line=686; end_column=46; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]})))) in + let traitement_aide_finale_minoration_forfaitaire_: money -> money = (log_variable_definition + ["CalculAidePersonnaliséeLogementFoyer"; + "traitement_aide_finale_minoration_forfaitaire"] (unembeddable) ( + try + (fun (aide_finale_: money) -> + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=714; start_column=10; end_line=714; end_column=32; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=3780; start_column=14; + end_line=3780; end_column=36; + law_headings=["Article D832-24"; + "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; + "Section 3 : Logements-foyers"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) + (fun (_: unit) -> + if + (o_gte_mon_mon + (o_sub_mon_mon aide_finale_ + montant_forfaitaire_d832_24_) (money_of_cents_string + "0")) then + (o_sub_mon_mon aide_finale_ montant_forfaitaire_d832_24_) + else (money_of_cents_string "0"))) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=714; start_column=10; end_line=714; end_column=32; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]}))) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=714; start_column=10; end_line=714; end_column=32; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -9528,14 +11742,14 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=683; start_column=12; end_line=683; end_column=38; + start_line=689; start_column=12; end_line=689; end_column=38; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3752; start_column=14; end_line=3752; end_column=40; + start_line=3754; start_column=14; end_line=3754; end_column=40; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9552,7 +11766,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=683; start_column=12; end_line=683; end_column=38; + start_line=689; start_column=12; end_line=689; end_column=38; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -9563,7 +11777,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=682; start_column=21; end_line=682; end_column=43; + start_line=688; start_column=21; end_line=688; end_column=43; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -9573,15 +11787,15 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=682; start_column=21; end_line=682; end_column=43; + start_line=688; start_column=21; end_line=688; end_column=43; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3942; start_column=14; - end_line=3942; end_column=36; + start_line=3944; start_column=14; + end_line=3944; end_column=36; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9596,7 +11810,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=682; start_column=21; end_line=682; end_column=43; + start_line=688; start_column=21; end_line=688; end_column=43; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -9609,15 +11823,15 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=687; start_column=11; end_line=687; end_column=41; + start_line=693; start_column=11; end_line=693; end_column=41; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4143; start_column=14; - end_line=4143; end_column=44; + start_line=4145; start_column=14; + end_line=4145; end_column=44; law_headings=["Article D832-27"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9633,7 +11847,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=687; start_column=11; end_line=687; end_column=41; + start_line=693; start_column=11; end_line=693; end_column=41; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -9641,7 +11855,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=687; start_column=11; end_line=687; end_column=41; + start_line=693; start_column=11; end_line=693; end_column=41; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -9652,14 +11866,14 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "calcul_équivalence_loyer_minimale.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=714; start_column=14; end_line=714; end_column=61; + start_line=721; start_column=14; end_line=721; end_column=61; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=714; start_column=14; end_line=714; end_column=61; + start_line=721; start_column=14; end_line=721; end_column=61; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -9668,7 +11882,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=714; start_column=14; end_line=714; end_column=61; + start_line=721; start_column=14; end_line=721; end_column=61; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -9680,7 +11894,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement (embed_money) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3768; start_column=14; end_line=3768; end_column=75; + start_line=3770; start_column=14; end_line=3770; end_column=75; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9692,7 +11906,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3768; start_column=14; end_line=3768; end_column=75; + start_line=3770; start_column=14; end_line=3770; end_column=75; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9705,7 +11919,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3768; start_column=14; end_line=3768; end_column=75; + start_line=3770; start_column=14; end_line=3770; end_column=75; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9721,7 +11935,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3766; start_column=14; end_line=3766; end_column=69; + start_line=3768; start_column=14; end_line=3768; end_column=69; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9733,7 +11947,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3766; start_column=14; end_line=3766; end_column=69; + start_line=3768; start_column=14; end_line=3768; end_column=69; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9746,7 +11960,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3766; start_column=14; end_line=3766; end_column=69; + start_line=3768; start_column=14; end_line=3768; end_column=69; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9762,7 +11976,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement (embed_decimal) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3770; start_column=14; end_line=3770; end_column=70; + start_line=3772; start_column=14; end_line=3772; end_column=70; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9774,7 +11988,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3770; start_column=14; end_line=3770; end_column=70; + start_line=3772; start_column=14; end_line=3772; end_column=70; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9787,7 +12001,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3770; start_column=14; end_line=3770; end_column=70; + start_line=3772; start_column=14; end_line=3772; end_column=70; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9818,7 +12032,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=701; start_column=10; end_line=701; end_column=17; + start_line=707; start_column=10; end_line=707; end_column=17; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -9826,16 +12040,16 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=701; start_column=10; - end_line=701; end_column=17; + start_line=707; start_column=10; + end_line=707; end_column=17; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3955; start_column=5; - end_line=3955; end_column=26; + start_line=3957; start_column=5; + end_line=3957; end_column=26; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9852,7 +12066,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement n_nombre_parts_d832_25_))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3860; start_column=14; end_line=3860; end_column=49; + start_line=3862; start_column=14; end_line=3862; end_column=49; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9879,7 +12093,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=701; start_column=10; end_line=701; end_column=17; + start_line=707; start_column=10; end_line=707; end_column=17; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -9892,15 +12106,15 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=685; start_column=11; end_line=685; end_column=52; + start_line=691; start_column=11; end_line=691; end_column=52; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4147; start_column=14; - end_line=4147; end_column=55; + start_line=4149; start_column=14; + end_line=4149; end_column=55; law_headings=["Article D832-27"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9935,7 +12149,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=685; start_column=11; end_line=685; end_column=52; + start_line=691; start_column=11; end_line=691; end_column=52; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -9943,7 +12157,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=685; start_column=11; end_line=685; end_column=52; + start_line=691; start_column=11; end_line=691; end_column=52; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -9954,14 +12168,14 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=692; start_column=12; end_line=692; end_column=38; + start_line=698; start_column=12; end_line=698; end_column=38; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3764; start_column=14; end_line=3764; end_column=40; + start_line=3766; start_column=14; end_line=3766; end_column=40; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -9975,7 +12189,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=692; start_column=12; end_line=692; end_column=38; + start_line=698; start_column=12; end_line=698; end_column=38; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -9986,7 +12200,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=702; start_column=10; end_line=702; end_column=23; + start_line=708; start_column=10; end_line=708; end_column=23; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -9994,16 +12208,16 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=702; start_column=10; - end_line=702; end_column=23; + start_line=708; start_column=10; + end_line=708; end_column=23; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3972; start_column=5; - end_line=3972; end_column=26; + start_line=3974; start_column=5; + end_line=3974; end_column=26; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -10024,7 +12238,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement (decimal_of_string "100.")))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3881; start_column=14; end_line=3881; end_column=49; + start_line=3883; start_column=14; end_line=3883; end_column=49; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -10045,7 +12259,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=702; start_column=10; end_line=702; end_column=23; + start_line=708; start_column=10; end_line=708; end_column=23; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -10058,15 +12272,15 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=708; start_column=10; end_line=708; end_column=20; + start_line=715; start_column=10; end_line=715; end_column=20; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3792; start_column=14; - end_line=3792; end_column=36; + start_line=3794; start_column=14; + end_line=3794; end_column=36; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -10114,7 +12328,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=708; start_column=10; end_line=708; end_column=20; + start_line=715; start_column=10; end_line=715; end_column=20; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -10122,7 +12336,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=708; start_column=10; end_line=708; end_column=20; + start_line=715; start_column=10; end_line=715; end_column=20; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -10133,7 +12347,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=703; start_column=10; end_line=703; end_column=15; + start_line=709; start_column=10; end_line=709; end_column=15; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -10141,16 +12355,16 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=703; start_column=10; - end_line=703; end_column=15; + start_line=709; start_column=10; + end_line=709; end_column=15; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3978; start_column=5; - end_line=3978; end_column=26; + start_line=3980; start_column=5; + end_line=3980; end_column=26; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -10169,7 +12383,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement coefficient_prise_en_charge_d832_25_coeff_arrondi_))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3884; start_column=14; end_line=3884; end_column=49; + start_line=3886; start_column=14; end_line=3886; end_column=49; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -10188,7 +12402,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=703; start_column=10; end_line=703; end_column=15; + start_line=709; start_column=10; end_line=709; end_column=15; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -10202,15 +12416,15 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=709; start_column=10; end_line=709; end_column=40; + start_line=716; start_column=10; end_line=716; end_column=40; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3806; start_column=14; - end_line=3806; end_column=36; + start_line=3808; start_column=14; + end_line=3808; end_column=36; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -10261,7 +12475,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=709; start_column=10; end_line=709; end_column=40; + start_line=716; start_column=10; end_line=716; end_column=40; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -10269,7 +12483,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=709; start_column=10; end_line=709; end_column=40; + start_line=716; start_column=10; end_line=716; end_column=40; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -10280,14 +12494,14 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=705; start_column=12; end_line=705; end_column=31; + start_line=711; start_column=12; end_line=711; end_column=31; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3731; start_column=14; end_line=3731; end_column=33; + start_line=3733; start_column=14; end_line=3733; end_column=33; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -10309,7 +12523,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=705; start_column=12; end_line=705; end_column=31; + start_line=711; start_column=12; end_line=711; end_column=31; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -10322,15 +12536,15 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=710; start_column=10; end_line=710; end_column=25; + start_line=717; start_column=10; end_line=717; end_column=25; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3827; start_column=14; - end_line=3827; end_column=36; + start_line=3829; start_column=14; + end_line=3829; end_column=36; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -10362,7 +12576,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=710; start_column=10; end_line=710; end_column=25; + start_line=717; start_column=10; end_line=717; end_column=25; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -10370,7 +12584,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=710; start_column=10; end_line=710; end_column=25; + start_line=717; start_column=10; end_line=717; end_column=25; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -10382,16 +12596,16 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=718; start_column=13; - end_line=718; end_column=42; + start_line=725; start_column=13; + end_line=725; end_column=42; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]}))) then () else raise (AssertionFailed {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=718; start_column=13; - end_line=718; end_column=42; + start_line=725; start_column=13; + end_line=725; end_column=42; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -10430,188 +12644,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna let type_pret_: TypePret.t = calcul_aide_personnalisee_logement_accession_propriete_in.CalculAidePersonnaliseeLogementAccessionProprieteIn.type_pret_in in let anciennete_logement_: NeufOuAncien.t = calcul_aide_personnalisee_logement_accession_propriete_in.CalculAidePersonnaliseeLogementAccessionProprieteIn.anciennete_logement_in in let date_courante_: date = calcul_aide_personnalisee_logement_accession_propriete_in.CalculAidePersonnaliseeLogementAccessionProprieteIn.date_courante_in in - let montant_forfaitaire_d832_10_: money = (log_variable_definition - ["CalculAidePersonnaliséeLogementAccessionPropriété"; - "montant_forfaitaire_d832_10"] (embed_money) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=766; start_column=11; end_line=766; end_column=38; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2345; start_column=14; end_line=2345; end_column=41; - law_headings=["Article 20"; "Article 18"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: unit) -> money_of_cents_string "500")) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=766; start_column=11; end_line=766; end_column=38; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})))) in - let montant_minimal_aide_d832_10_: money = (log_variable_definition - ["CalculAidePersonnaliséeLogementAccessionPropriété"; - "montant_minimal_aide_d832_10"] (embed_money) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=767; start_column=11; end_line=767; end_column=39; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2356; start_column=14; end_line=2356; end_column=42; - law_headings=["Article 21"; "Article 18"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: unit) -> money_of_cents_string "1000")) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=767; start_column=11; end_line=767; end_column=39; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})))) in - let coefficient_multiplicateur_d832_11_: money = (log_variable_definition - ["CalculAidePersonnaliséeLogementAccessionPropriété"; - "coefficient_multiplicateur_d832_11"] (embed_money) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=769; start_column=11; end_line=769; end_column=45; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2365; start_column=15; end_line=2365; end_column=49; - law_headings=["Article 22"; "Article 18"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: unit) -> money_of_cents_string "2211133")) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=769; start_column=11; end_line=769; end_column=45; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})))) in - let coefficient_multiplicateur_d832_18_: decimal = (log_variable_definition - ["CalculAidePersonnaliséeLogementAccessionPropriété"; - "coefficient_multiplicateur_d832_18"] (embed_decimal) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=770; start_column=11; end_line=770; end_column=45; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2458; start_column=14; end_line=2458; end_column=48; - law_headings=["Article 26"; "Article 18"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: unit) -> decimal_of_string "16.25")) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=770; start_column=11; end_line=770; end_column=45; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})))) in - let montant_limite_tranches_d832_15_1_: money = (log_variable_definition - ["CalculAidePersonnaliséeLogementAccessionPropriété"; - "montant_limite_tranches_d832_15_1"] (embed_money) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=771; start_column=11; end_line=771; end_column=44; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2380; start_column=14; end_line=2380; end_column=47; - law_headings=["Article 23"; "Article 18"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: unit) -> money_of_cents_string "560085")) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=771; start_column=11; end_line=771; end_column=44; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})))) in - let taux_tranche_inferieure_d832_15_1_: decimal = (log_variable_definition - ["CalculAidePersonnaliséeLogementAccessionPropriété"; - "taux_tranche_inférieure_d832_15_1"] (embed_decimal) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=772; start_column=11; end_line=772; end_column=44; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2381; start_column=14; end_line=2381; end_column=47; - law_headings=["Article 23"; "Article 18"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: unit) -> decimal_of_string "0.208")) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=772; start_column=11; end_line=772; end_column=44; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})))) in - let taux_tranche_superieure_d832_15_1_: decimal = (log_variable_definition - ["CalculAidePersonnaliséeLogementAccessionPropriété"; - "taux_tranche_supérieure_d832_15_1"] (embed_decimal) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=773; start_column=11; end_line=773; end_column=44; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2382; start_column=14; end_line=2382; end_column=47; - law_headings=["Article 23"; "Article 18"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: unit) -> decimal_of_string "0.416")) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=773; start_column=11; end_line=773; end_column=44; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})))) in let taux_francs_vers_euros_: decimal = (log_variable_definition ["CalculAidePersonnaliséeLogementAccessionPropriété"; "taux_francs_vers_euros"] (embed_decimal) ( try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=774; start_column=11; end_line=774; end_column=33; + start_line=781; start_column=11; end_line=781; end_column=33; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -10628,7 +12667,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=774; start_column=11; end_line=774; end_column=33; + start_line=781; start_column=11; end_line=781; end_column=33; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -10639,7 +12678,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "calcul_nombre_parts.nombre_personnes_à_charge"] (embed_integer) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3276; start_column=14; end_line=3276; end_column=59; + start_line=3278; start_column=14; end_line=3278; end_column=59; law_headings=["Article D832-11"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -10650,7 +12689,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3276; start_column=14; end_line=3276; end_column=59; + start_line=3278; start_column=14; end_line=3278; end_column=59; law_headings=["Article D832-11"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -10662,7 +12701,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3276; start_column=14; end_line=3276; end_column=59; + start_line=3278; start_column=14; end_line=3278; end_column=59; law_headings=["Article D832-11"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -10677,7 +12716,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (embed_situation_familiale_calcul_a_p_l) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3278; start_column=14; end_line=3278; end_column=64; + start_line=3280; start_column=14; end_line=3280; end_column=64; law_headings=["Article D832-11"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -10688,7 +12727,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3278; start_column=14; end_line=3278; end_column=64; + start_line=3280; start_column=14; end_line=3280; end_column=64; law_headings=["Article D832-11"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -10700,7 +12739,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3278; start_column=14; end_line=3278; end_column=64; + start_line=3280; start_column=14; end_line=3280; end_column=64; law_headings=["Article D832-11"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -10720,23 +12759,191 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna CalculNombrePartsAccessionProprieteIn.situation_familiale_calcul_apl_in = calcul_nombre_parts_dot_situation_familiale_calcul_apl_}))) in let calcul_nombre_parts_dot_n_nombre_parts_d832_11_: decimal = result_.CalculNombrePartsAccessionPropriete.n_nombre_parts_d832_11 in - let coefficient_multiplicateur_d832_17_3_: decimal = (log_variable_definition + let contributions_sociales_dot_date_courante_: date = + try ((log_variable_definition + ["CalculAidePersonnaliséeLogementAccessionPropriété"; + "contributions_sociales.date_courante"] (embed_date) + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=798; start_column=14; end_line=798; end_column=50; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=798; start_column=14; end_line=798; end_column=50; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} true)) + (fun (_: unit) -> date_courante_)))) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=798; start_column=14; end_line=798; end_column=50; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]})) in + let result_: ContributionsSocialesAidesPersonnelleLogement.t = (log_end_call ["CalculAidePersonnaliséeLogementAccessionPropriété"; - "coefficient_multiplicateur_d832_17_3"] (embed_decimal) ( + "contributions_sociales"; + "ContributionsSocialesAidesPersonnelleLogement"] ((log_begin_call + ["CalculAidePersonnaliséeLogementAccessionPropriété"; + "contributions_sociales"; + "ContributionsSocialesAidesPersonnelleLogement"] + contributions_sociales_aides_personnelle_logement) + ({ContributionsSocialesAidesPersonnelleLogementIn.date_courante_in = + contributions_sociales_dot_date_courante_}))) in + let contributions_sociales_dot_montant_: money -> money = result_.ContributionsSocialesAidesPersonnelleLogement.montant in + let taux_tranche_superieure_d832_15_1_: decimal = (log_variable_definition + ["CalculAidePersonnaliséeLogementAccessionPropriété"; + "taux_tranche_supérieure_d832_15_1"] (embed_decimal) ( try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=768; start_column=11; end_line=768; end_column=47; + start_line=780; start_column=11; end_line=780; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2440; start_column=14; end_line=2440; end_column=50; + start_line=2407; start_column=14; end_line=2407; end_column=47; + law_headings=["Article 23"; "Article 18"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) + (fun (_: unit) -> decimal_of_string "0.416")) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=780; start_column=11; end_line=780; end_column=44; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]})))) in + let taux_tranche_inferieure_d832_15_1_: decimal = (log_variable_definition + ["CalculAidePersonnaliséeLogementAccessionPropriété"; + "taux_tranche_inférieure_d832_15_1"] (embed_decimal) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=779; start_column=11; end_line=779; end_column=44; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=2406; start_column=14; end_line=2406; end_column=47; + law_headings=["Article 23"; "Article 18"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) + (fun (_: unit) -> decimal_of_string "0.208")) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=779; start_column=11; end_line=779; end_column=44; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]})))) in + let montant_limite_tranches_d832_15_1_: money = (log_variable_definition + ["CalculAidePersonnaliséeLogementAccessionPropriété"; + "montant_limite_tranches_d832_15_1"] (embed_money) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=778; start_column=11; end_line=778; end_column=44; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=2405; start_column=14; end_line=2405; end_column=47; + law_headings=["Article 23"; "Article 18"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) + (fun (_: unit) -> money_of_cents_string "560085")) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=778; start_column=11; end_line=778; end_column=44; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]})))) in + let coefficient_multiplicateur_d832_18_: decimal = (log_variable_definition + ["CalculAidePersonnaliséeLogementAccessionPropriété"; + "coefficient_multiplicateur_d832_18"] (embed_decimal) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=777; start_column=11; end_line=777; end_column=45; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=2485; start_column=14; end_line=2485; end_column=48; + law_headings=["Article 26"; "Article 18"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) + (fun (_: unit) -> decimal_of_string "16.25")) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=777; start_column=11; end_line=777; end_column=45; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]})))) in + let coefficient_multiplicateur_d832_11_: money = (log_variable_definition + ["CalculAidePersonnaliséeLogementAccessionPropriété"; + "coefficient_multiplicateur_d832_11"] (embed_money) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=776; start_column=11; end_line=776; end_column=45; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=2389; start_column=14; end_line=2389; end_column=48; + law_headings=["Article 22"; "Article 18"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) + (fun (_: unit) -> money_of_cents_string "2211133")) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=776; start_column=11; end_line=776; end_column=45; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]})))) in + let coefficient_multiplicateur_d832_17_3_: decimal = (log_variable_definition + ["CalculAidePersonnaliséeLogementAccessionPropriété"; + "coefficient_multiplicateur_d832_17_3"] (embed_decimal) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=775; start_column=11; end_line=775; end_column=47; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=2466; start_column=14; end_line=2466; end_column=50; law_headings=["Article 25"; "Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) (fun (_: unit) -> match anciennete_logement_ with @@ -10759,56 +12966,70 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=768; start_column=11; end_line=768; end_column=47; + start_line=775; start_column=11; end_line=775; end_column=47; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]})))) in - let contributions_sociales_dot_date_courante_: date = - try ((log_variable_definition - ["CalculAidePersonnaliséeLogementAccessionPropriété"; - "contributions_sociales.date_courante"] (embed_date) + let montant_minimal_aide_d832_10_: money = (log_variable_definition + ["CalculAidePersonnaliséeLogementAccessionPropriété"; + "montant_minimal_aide_d832_10"] (embed_money) ( + try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=791; start_column=14; end_line=791; end_column=50; + start_line=774; start_column=11; end_line=774; end_column=39; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=791; start_column=14; end_line=791; end_column=50; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} true)) - (fun (_: unit) -> date_courante_)))) + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=2379; start_column=14; end_line=2379; end_column=42; + law_headings=["Article 21"; "Article 18"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) + (fun (_: unit) -> money_of_cents_string "1000")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=791; start_column=14; end_line=791; end_column=50; + start_line=774; start_column=11; end_line=774; end_column=39; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in - let result_: ContributionsSocialesAidesPersonnelleLogement.t = (log_end_call + "Prologue : aides au logement"]})))) in + let montant_forfaitaire_d832_10_: money = (log_variable_definition ["CalculAidePersonnaliséeLogementAccessionPropriété"; - "contributions_sociales"; - "ContributionsSocialesAidesPersonnelleLogement"] ((log_begin_call - ["CalculAidePersonnaliséeLogementAccessionPropriété"; - "contributions_sociales"; - "ContributionsSocialesAidesPersonnelleLogement"] - contributions_sociales_aides_personnelle_logement) - ({ContributionsSocialesAidesPersonnelleLogementIn.date_courante_in = - contributions_sociales_dot_date_courante_}))) in - let contributions_sociales_dot_montant_: money -> money = result_.ContributionsSocialesAidesPersonnelleLogement.montant in + "montant_forfaitaire_d832_10"] (embed_money) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=773; start_column=11; end_line=773; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=2367; start_column=14; end_line=2367; end_column=41; + law_headings=["Article 20"; "Article 18"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) + (fun (_: unit) -> money_of_cents_string "500")) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=773; start_column=11; end_line=773; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]})))) in let montant_forfaitaire_charges_d832_10_: money = (log_variable_definition ["CalculAidePersonnaliséeLogementAccessionPropriété"; "montant_forfaitaire_charges_d832_10"] (embed_money) ( try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=765; start_column=11; end_line=765; end_column=46; + start_line=772; start_column=11; end_line=772; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -10816,8 +13037,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=765; start_column=11; - end_line=765; end_column=46; + start_line=772; start_column=11; + end_line=772; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -10825,8 +13046,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=765; start_column=11; - end_line=765; end_column=46; + start_line=772; start_column=11; + end_line=772; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -10834,8 +13055,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2413; start_column=7; - end_line=2413; end_column=18; + start_line=2438; start_column=7; + end_line=2438; end_column=18; law_headings=["Article 24"; "Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and @@ -10855,8 +13076,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=765; start_column=11; - end_line=765; end_column=46; + start_line=772; start_column=11; + end_line=772; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -10864,10 +13085,10 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=926; start_column=7; - end_line=926; end_column=18; + start_line=1418; start_column=7; + end_line=1418; end_column=18; law_headings=["Article 24"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_and @@ -10889,8 +13110,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=765; start_column=11; - end_line=765; end_column=46; + start_line=772; start_column=11; + end_line=772; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -10898,10 +13119,10 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1881; start_column=7; - end_line=1881; end_column=18; + start_line=2502; start_column=7; + end_line=2502; end_column=18; law_headings=["Article 24"; "Article 19"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_and @@ -10925,7 +13146,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=765; start_column=11; end_line=765; end_column=46; + start_line=772; start_column=11; end_line=772; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -10933,8 +13154,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=765; start_column=11; - end_line=765; end_column=46; + start_line=772; start_column=11; + end_line=772; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -10942,8 +13163,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2334; start_column=29; - end_line=2334; end_column=64; + start_line=2355; start_column=29; + end_line=2355; end_column=64; law_headings=["Article 19"; "Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_gte_dat_dat date_courante_ @@ -10955,8 +13176,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=765; start_column=11; - end_line=765; end_column=46; + start_line=772; start_column=11; + end_line=772; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -10964,10 +13185,10 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=892; start_column=29; - end_line=892; end_column=64; + start_line=1384; start_column=29; + end_line=1384; end_column=64; law_headings=["Article 19"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -10981,8 +13202,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=765; start_column=11; - end_line=765; end_column=46; + start_line=772; start_column=11; + end_line=772; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -10990,10 +13211,10 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1847; start_column=29; - end_line=1847; end_column=64; + start_line=2468; start_column=29; + end_line=2468; end_column=64; law_headings=["Article 19"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_lt_dat_dat date_courante_ @@ -11008,116 +13229,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=765; start_column=11; end_line=765; end_column=46; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})))) in - let traitement_aide_finale_minoration_forfaitaire_: money -> money = (log_variable_definition - ["CalculAidePersonnaliséeLogementAccessionPropriété"; - "traitement_aide_finale_minoration_forfaitaire"] (unembeddable) ( - try - (fun (aide_finale_: money) -> - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=785; start_column=10; end_line=785; end_column=32; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3125; start_column=14; - end_line=3125; end_column=36; - law_headings=["Article D832-10"; - "Section 2 : Accession à la propriété"; - "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; - "Titre III : Aide personnalisée au logement"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]} - true)) - (fun (_: unit) -> - if - (o_gte_mon_mon - (o_sub_mon_mon aide_finale_ - montant_forfaitaire_d832_10_) (money_of_cents_string - "0")) then - (o_sub_mon_mon aide_finale_ montant_forfaitaire_d832_10_) - else (money_of_cents_string "0"))) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=785; start_column=10; end_line=785; end_column=32; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]}))) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=785; start_column=10; end_line=785; end_column=32; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})))) in - let ressources_menage_avec_d832_18_: money = (log_variable_definition - ["CalculAidePersonnaliséeLogementAccessionPropriété"; - "ressources_ménage_avec_d832_18"] (embed_money) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=764; start_column=11; end_line=764; end_column=41; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([|(fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=764; start_column=11; - end_line=764; end_column=41; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3590; start_column=5; - end_line=3590; end_column=28; - law_headings=["Article D832-18"; - "Section 2 : Accession à la propriété"; - "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; - "Titre III : Aide personnalisée au logement"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]} - situation_r822_11_13_17_)) - (fun (_: unit) -> ressources_menage_arrondies_))|]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3582; start_column=14; end_line=3582; end_column=44; - law_headings=["Article D832-18"; - "Section 2 : Accession à la propriété"; - "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; - "Titre III : Aide personnalisée au logement"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]} - true)) - (fun (_: unit) -> - if - (o_lte_mon_mon ressources_menage_arrondies_ - (o_mult_mon_rat mensualite_principale_ - coefficient_multiplicateur_d832_18_)) then - (o_mult_mon_rat mensualite_principale_ - coefficient_multiplicateur_d832_18_) else - ressources_menage_arrondies_)) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=764; start_column=11; end_line=764; end_column=41; + start_line=772; start_column=11; end_line=772; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -11130,7 +13242,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; end_line=753; end_column=46; + start_line=760; start_column=11; end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -11138,8 +13250,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -11147,8 +13259,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -11156,38 +13268,47 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=807; start_column=5; - end_line=822; end_column=36; + start_line=827; start_column=5; + end_line=842; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2023) (1) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (1992) (6) (30))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2023) (1) (1))) (o_and - (o_lte_dat_dat date_signature_pret_ - (date_of_numbers (1994) (11) (27))) + (o_gte_dat_dat date_signature_pret_ + (date_of_numbers (1992) (6) (30))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien ameliore_par_occupant_ -> - (match - ameliore_par_occupant_ - with - | AmelioreParOccupant.Oui _ -> - true - | AmelioreParOccupant.Non _ -> - false)) - (match type_pret_ - with - | TypePret.D331_32 _ -> false - | TypePret.D331_63_64 _ -> true - | TypePret.D331_59_8 _ -> false - | TypePret.D331_76_1 _ -> false - | TypePret.Autre _ -> false))))))) + (o_lte_dat_dat + date_signature_pret_ + (date_of_numbers (1994) (11) (27))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + false + | NeufOuAncien.Ancien ameliore_par_occupant_ -> + (match + ameliore_par_occupant_ + with + | AmelioreParOccupant.Oui _ -> + true + | AmelioreParOccupant.Non _ -> + false)) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> false)))))))) (fun (_: unit) -> o_mult_mon_rat ( if @@ -11213,8 +13334,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -11222,8 +13343,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -11231,40 +13352,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1062; start_column=5; - end_line=1066; end_column=36; + start_line=1083; start_column=5; + end_line=1087; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (1992) (6) (30))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (1994) (11) (27))) + (date_of_numbers (1992) (6) (30))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - true - | NeufOuAncien.Ancien _ -> - false) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (1994) (11) (27))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + true + | NeufOuAncien.Ancien _ -> + false) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> o_mult_mon_rat (match zone_ @@ -11351,8 +13476,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -11360,40 +13485,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1095; start_column=5; - end_line=1099; end_column=36; + start_line=1116; start_column=5; + end_line=1120; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (1992) (6) (30))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (1994) (11) (27))) + (date_of_numbers (1992) (6) (30))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - false - | NeufOuAncien.Ancien _ -> - true) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (1994) (11) (27))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + false + | NeufOuAncien.Ancien _ -> + true) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> o_mult_mon_rat (match zone_ @@ -11480,8 +13609,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -11489,40 +13618,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1128; start_column=5; - end_line=1132; end_column=36; + start_line=1149; start_column=5; + end_line=1153; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (1994) (11) (27))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2000) (6) (30))) + (date_of_numbers (1994) (11) (27))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - true - | NeufOuAncien.Ancien _ -> - false) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2000) (6) (30))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + true + | NeufOuAncien.Ancien _ -> + false) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> o_mult_mon_rat (match zone_ @@ -11609,8 +13742,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -11618,40 +13751,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1161; start_column=5; - end_line=1165; end_column=36; + start_line=1182; start_column=5; + end_line=1186; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (1994) (11) (27))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2000) (6) (30))) + (date_of_numbers (1994) (11) (27))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - false - | NeufOuAncien.Ancien _ -> - true) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2000) (6) (30))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + false + | NeufOuAncien.Ancien _ -> + true) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> o_mult_mon_rat (match zone_ @@ -11738,8 +13875,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -11747,40 +13884,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1194; start_column=5; - end_line=1198; end_column=36; + start_line=1215; start_column=5; + end_line=1219; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2000) (6) (30))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lte_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2001) (6) (30))) + (date_of_numbers (2000) (6) (30))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - true - | NeufOuAncien.Ancien _ -> - false) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lte_dat_dat + date_signature_pret_ + (date_of_numbers (2001) (6) (30))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + true + | NeufOuAncien.Ancien _ -> + false) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> o_mult_mon_rat (match zone_ @@ -11867,8 +14008,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -11876,40 +14017,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1227; start_column=5; - end_line=1231; end_column=36; + start_line=1248; start_column=5; + end_line=1252; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2000) (6) (30))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lte_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2001) (6) (30))) + (date_of_numbers (2000) (6) (30))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - false - | NeufOuAncien.Ancien _ -> - true) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lte_dat_dat + date_signature_pret_ + (date_of_numbers (2001) (6) (30))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + false + | NeufOuAncien.Ancien _ -> + true) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> o_mult_mon_rat (match zone_ @@ -11996,8 +14141,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -12005,40 +14150,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1260; start_column=5; - end_line=1264; end_column=36; + start_line=1281; start_column=5; + end_line=1285; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2001) (7) (1))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2001) (12) (31))) + (date_of_numbers (2001) (7) (1))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - true - | NeufOuAncien.Ancien _ -> - false) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2001) (12) (31))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + true + | NeufOuAncien.Ancien _ -> + false) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> o_mult_mon_rat (match zone_ @@ -12125,8 +14274,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -12134,40 +14283,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1293; start_column=5; - end_line=1297; end_column=36; + start_line=1314; start_column=5; + end_line=1318; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2002) (1) (1))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2002) (6) (30))) + (date_of_numbers (2002) (1) (1))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - true - | NeufOuAncien.Ancien _ -> - false) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2002) (6) (30))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + true + | NeufOuAncien.Ancien _ -> + false) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -12246,8 +14399,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -12255,40 +14408,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1326; start_column=5; - end_line=1330; end_column=36; + start_line=1347; start_column=5; + end_line=1351; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2001) (7) (1))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2001) (12) (31))) + (date_of_numbers (2001) (7) (1))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - false - | NeufOuAncien.Ancien _ -> - true) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2001) (12) (31))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + false + | NeufOuAncien.Ancien _ -> + true) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> o_mult_mon_rat (match zone_ @@ -12375,8 +14532,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -12384,40 +14541,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1359; start_column=5; - end_line=1363; end_column=36; + start_line=1380; start_column=5; + end_line=1384; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2002) (1) (1))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2002) (6) (30))) + (date_of_numbers (2002) (1) (1))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - false - | NeufOuAncien.Ancien _ -> - true) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2002) (6) (30))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + false + | NeufOuAncien.Ancien _ -> + true) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -12496,8 +14657,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -12505,40 +14666,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1392; start_column=5; - end_line=1396; end_column=36; + start_line=1413; start_column=5; + end_line=1417; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2002) (6) (30))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2003) (6) (30))) + (date_of_numbers (2002) (6) (30))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - true - | NeufOuAncien.Ancien _ -> - false) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2003) (6) (30))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + true + | NeufOuAncien.Ancien _ -> + false) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -12617,8 +14782,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -12626,40 +14791,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1425; start_column=5; - end_line=1429; end_column=36; + start_line=1446; start_column=5; + end_line=1450; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2002) (6) (30))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2003) (6) (30))) + (date_of_numbers (2002) (6) (30))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - false - | NeufOuAncien.Ancien _ -> - true) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2003) (6) (30))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + false + | NeufOuAncien.Ancien _ -> + true) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -12738,8 +14907,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -12747,40 +14916,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1458; start_column=5; - end_line=1462; end_column=36; + start_line=1479; start_column=5; + end_line=1483; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2003) (6) (30))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2005) (8) (31))) + (date_of_numbers (2003) (6) (30))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - true - | NeufOuAncien.Ancien _ -> - false) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2005) (8) (31))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + true + | NeufOuAncien.Ancien _ -> + false) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -12859,8 +15032,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -12868,40 +15041,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1491; start_column=5; - end_line=1495; end_column=36; + start_line=1512; start_column=5; + end_line=1516; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2003) (6) (30))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2005) (8) (31))) + (date_of_numbers (2003) (6) (30))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - false - | NeufOuAncien.Ancien _ -> - true) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2005) (8) (31))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + false + | NeufOuAncien.Ancien _ -> + true) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -12980,8 +15157,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -12989,40 +15166,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1524; start_column=5; - end_line=1528; end_column=36; + start_line=1545; start_column=5; + end_line=1549; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2005) (8) (31))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2006) (12) (31))) + (date_of_numbers (2005) (8) (31))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - true - | NeufOuAncien.Ancien _ -> - false) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2006) (12) (31))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + true + | NeufOuAncien.Ancien _ -> + false) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -13101,8 +15282,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -13110,40 +15291,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1557; start_column=5; - end_line=1561; end_column=36; + start_line=1578; start_column=5; + end_line=1582; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2005) (8) (31))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2006) (12) (31))) + (date_of_numbers (2005) (8) (31))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - false - | NeufOuAncien.Ancien _ -> - true) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2006) (12) (31))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + false + | NeufOuAncien.Ancien _ -> + true) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -13222,8 +15407,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -13231,40 +15416,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1590; start_column=5; - end_line=1594; end_column=36; + start_line=1611; start_column=5; + end_line=1615; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2006) (12) (31))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2007) (12) (31))) + (date_of_numbers (2006) (12) (31))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - true - | NeufOuAncien.Ancien _ -> - false) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2007) (12) (31))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + true + | NeufOuAncien.Ancien _ -> + false) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -13343,8 +15532,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -13352,40 +15541,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1623; start_column=5; - end_line=1627; end_column=36; + start_line=1644; start_column=5; + end_line=1648; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2006) (12) (31))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2007) (12) (31))) + (date_of_numbers (2006) (12) (31))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - false - | NeufOuAncien.Ancien _ -> - true) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2007) (12) (31))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + false + | NeufOuAncien.Ancien _ -> + true) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -13464,8 +15657,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -13473,40 +15666,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1656; start_column=5; - end_line=1660; end_column=36; + start_line=1677; start_column=5; + end_line=1681; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2007) (12) (31))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2008) (12) (31))) + (date_of_numbers (2007) (12) (31))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - true - | NeufOuAncien.Ancien _ -> - false) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2008) (12) (31))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + true + | NeufOuAncien.Ancien _ -> + false) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -13585,8 +15782,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -13594,40 +15791,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1689; start_column=5; - end_line=1693; end_column=36; + start_line=1710; start_column=5; + end_line=1714; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2007) (12) (31))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2008) (12) (31))) + (date_of_numbers (2007) (12) (31))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - false - | NeufOuAncien.Ancien _ -> - true) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2008) (12) (31))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + false + | NeufOuAncien.Ancien _ -> + true) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -13706,8 +15907,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -13715,40 +15916,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1722; start_column=5; - end_line=1726; end_column=36; + start_line=1743; start_column=5; + end_line=1747; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2008) (12) (31))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2009) (12) (31))) + (date_of_numbers (2008) (12) (31))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - true - | NeufOuAncien.Ancien _ -> - false) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2009) (12) (31))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + true + | NeufOuAncien.Ancien _ -> + false) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -13827,8 +16032,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -13836,40 +16041,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1755; start_column=5; - end_line=1759; end_column=36; + start_line=1776; start_column=5; + end_line=1780; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2008) (12) (31))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2009) (12) (31))) + (date_of_numbers (2008) (12) (31))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - false - | NeufOuAncien.Ancien _ -> - true) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2009) (12) (31))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + false + | NeufOuAncien.Ancien _ -> + true) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -13948,8 +16157,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -13957,40 +16166,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1788; start_column=5; - end_line=1792; end_column=36; + start_line=1809; start_column=5; + end_line=1813; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2009) (12) (31))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2010) (12) (31))) + (date_of_numbers (2009) (12) (31))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - true - | NeufOuAncien.Ancien _ -> - false) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2010) (12) (31))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + true + | NeufOuAncien.Ancien _ -> + false) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -14069,8 +16282,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -14078,40 +16291,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1821; start_column=5; - end_line=1825; end_column=36; + start_line=1842; start_column=5; + end_line=1846; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2009) (12) (31))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2010) (12) (31))) + (date_of_numbers (2009) (12) (31))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - false - | NeufOuAncien.Ancien _ -> - true) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2010) (12) (31))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + false + | NeufOuAncien.Ancien _ -> + true) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -14190,8 +16407,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -14199,40 +16416,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1854; start_column=5; - end_line=1858; end_column=36; + start_line=1875; start_column=5; + end_line=1879; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2010) (12) (31))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2011) (12) (31))) + (date_of_numbers (2010) (12) (31))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - true - | NeufOuAncien.Ancien _ -> - false) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2011) (12) (31))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + true + | NeufOuAncien.Ancien _ -> + false) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -14311,8 +16532,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -14320,40 +16541,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1887; start_column=5; - end_line=1891; end_column=36; + start_line=1908; start_column=5; + end_line=1912; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2010) (12) (31))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2011) (12) (31))) + (date_of_numbers (2010) (12) (31))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - false - | NeufOuAncien.Ancien _ -> - true) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2011) (12) (31))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + false + | NeufOuAncien.Ancien _ -> + true) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -14432,8 +16657,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -14441,40 +16666,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1920; start_column=5; - end_line=1924; end_column=36; + start_line=1941; start_column=5; + end_line=1945; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2011) (12) (31))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2012) (12) (31))) + (date_of_numbers (2011) (12) (31))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - true - | NeufOuAncien.Ancien _ -> - false) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2012) (12) (31))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + true + | NeufOuAncien.Ancien _ -> + false) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -14553,8 +16782,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -14562,40 +16791,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1953; start_column=5; - end_line=1957; end_column=36; + start_line=1974; start_column=5; + end_line=1978; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2011) (12) (31))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2012) (12) (31))) + (date_of_numbers (2011) (12) (31))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - false - | NeufOuAncien.Ancien _ -> - true) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2012) (12) (31))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + false + | NeufOuAncien.Ancien _ -> + true) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -14674,8 +16907,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -14683,40 +16916,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=1986; start_column=5; - end_line=1990; end_column=36; + start_line=2007; start_column=5; + end_line=2011; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2012) (12) (31))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2014) (9) (30))) + (date_of_numbers (2012) (12) (31))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - true - | NeufOuAncien.Ancien _ -> - false) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2014) (9) (30))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + true + | NeufOuAncien.Ancien _ -> + false) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -14795,8 +17032,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -14804,40 +17041,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2019; start_column=5; - end_line=2023; end_column=36; + start_line=2040; start_column=5; + end_line=2044; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2012) (12) (31))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2014) (9) (30))) + (date_of_numbers (2012) (12) (31))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - false - | NeufOuAncien.Ancien _ -> - true) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2014) (9) (30))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + false + | NeufOuAncien.Ancien _ -> + true) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -14916,8 +17157,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -14925,40 +17166,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2052; start_column=5; - end_line=2056; end_column=36; + start_line=2073; start_column=5; + end_line=2077; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2014) (9) (30))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2015) (9) (30))) + (date_of_numbers (2014) (9) (30))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - true - | NeufOuAncien.Ancien _ -> - false) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2015) (9) (30))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + true + | NeufOuAncien.Ancien _ -> + false) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -15037,8 +17282,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -15046,40 +17291,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2085; start_column=5; - end_line=2089; end_column=36; + start_line=2106; start_column=5; + end_line=2110; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2014) (9) (30))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2015) (9) (30))) + (date_of_numbers (2014) (9) (30))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - false - | NeufOuAncien.Ancien _ -> - true) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2015) (9) (30))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + false + | NeufOuAncien.Ancien _ -> + true) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -15158,8 +17407,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -15167,40 +17416,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2118; start_column=5; - end_line=2122; end_column=36; + start_line=2139; start_column=5; + end_line=2143; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2015) (9) (30))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2017) (9) (30))) + (date_of_numbers (2015) (9) (30))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - true - | NeufOuAncien.Ancien _ -> - false) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2017) (9) (30))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + true + | NeufOuAncien.Ancien _ -> + false) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -15279,8 +17532,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -15288,40 +17541,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2151; start_column=5; - end_line=2155; end_column=36; + start_line=2172; start_column=5; + end_line=2176; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2015) (9) (30))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2017) (9) (30))) + (date_of_numbers (2015) (9) (30))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - false - | NeufOuAncien.Ancien _ -> - true) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2017) (9) (30))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + false + | NeufOuAncien.Ancien _ -> + true) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -15400,8 +17657,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -15409,40 +17666,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2184; start_column=5; - end_line=2188; end_column=36; + start_line=2205; start_column=5; + end_line=2209; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2017) (9) (30))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2019) (9) (30))) + (date_of_numbers (2017) (9) (30))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - true - | NeufOuAncien.Ancien _ -> - false) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2019) (9) (30))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + true + | NeufOuAncien.Ancien _ -> + false) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -15521,8 +17782,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -15530,40 +17791,44 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2217; start_column=5; - end_line=2221; end_column=36; + start_line=2238; start_column=5; + end_line=2242; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2017) (9) (30))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (o_lt_dat_dat + (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (2019) (9) (30))) + (date_of_numbers (2017) (9) (30))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - false - | NeufOuAncien.Ancien _ -> - true) - (match type_pret_ - with - | TypePret.D331_32 _ -> - false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> - false))))))) + (o_lt_dat_dat + date_signature_pret_ + (date_of_numbers (2019) (9) (30))) + (o_and + (match + anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + false + | NeufOuAncien.Ancien _ -> + true) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false)))))))) (fun (_: unit) -> match zone_ with @@ -15642,8 +17907,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -15651,33 +17916,39 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2250; start_column=5; - end_line=2253; end_column=36; + start_line=2271; start_column=5; + end_line=2274; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2019) (9) (30))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> true - | NeufOuAncien.Ancien _ -> - false) - (match type_pret_ - with - | TypePret.D331_32 _ -> false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> false)))))) + (o_gte_dat_dat + date_signature_pret_ + (date_of_numbers (2019) (9) (30))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + true + | NeufOuAncien.Ancien _ -> + false) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false))))))) (fun (_: unit) -> match zone_ with @@ -15756,8 +18027,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -15765,34 +18036,39 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2282; start_column=5; - end_line=2285; end_column=36; + start_line=2303; start_column=5; + end_line=2306; end_column=36; law_headings=["Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) + (date_of_numbers (2019) (10) (1))) (o_and - (o_gte_dat_dat - date_signature_pret_ - (date_of_numbers (2019) (9) (30))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> - false - | NeufOuAncien.Ancien _ -> - true) - (match type_pret_ - with - | TypePret.D331_32 _ -> false - | TypePret.D331_63_64 _ -> - true - | TypePret.D331_59_8 _ -> - false - | TypePret.D331_76_1 _ -> - false - | TypePret.Autre _ -> false)))))) + (o_gte_dat_dat + date_signature_pret_ + (date_of_numbers (2019) (9) (30))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> + false + | NeufOuAncien.Ancien _ -> + true) + (match type_pret_ + with + | TypePret.D331_32 _ -> + false + | TypePret.D331_63_64 _ -> + true + | TypePret.D331_59_8 _ -> + false + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> + false))))))) (fun (_: unit) -> match zone_ with @@ -15873,8 +18149,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -15882,8 +18158,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -15891,29 +18167,34 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=619; start_column=5; - end_line=622; end_column=33; + start_line=635; start_column=5; + end_line=638; end_column=33; law_headings=["Article 17"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and - (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (1992) (6) (30))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2019) (10) (1))) (o_and - (o_lt_dat_dat date_signature_pret_ - (date_of_numbers (1994) (11) (27))) + (o_gte_dat_dat date_signature_pret_ + (date_of_numbers (1992) (6) (30))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> true - | NeufOuAncien.Ancien _ -> false) - (match type_pret_ - with - | TypePret.D331_32 _ -> true - | TypePret.D331_63_64 _ -> false - | TypePret.D331_59_8 _ -> false - | TypePret.D331_76_1 _ -> false - | TypePret.Autre _ -> false)))))) + (o_lt_dat_dat date_signature_pret_ + (date_of_numbers (1994) (11) (27))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> true + | NeufOuAncien.Ancien _ -> + false) + (match type_pret_ + with + | TypePret.D331_32 _ -> true + | TypePret.D331_63_64 _ -> + false + | TypePret.D331_59_8 _ -> false + | TypePret.D331_76_1 _ -> false + | TypePret.Autre _ -> false))))))) (fun (_: unit) -> o_mult_mon_rat (match zone_ @@ -15994,8 +18275,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -16003,29 +18284,33 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=663; start_column=5; - end_line=666; end_column=33; + start_line=680; start_column=5; + end_line=683; end_column=33; law_headings=["Article 17"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and - (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (1992) (6) (30))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2019) (10) (1))) (o_and - (o_lt_dat_dat date_signature_pret_ - (date_of_numbers (1994) (11) (27))) + (o_gte_dat_dat date_signature_pret_ + (date_of_numbers (1992) (6) (30))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien _ -> true) - (match type_pret_ - with - | TypePret.D331_32 _ -> true - | TypePret.D331_63_64 _ -> false - | TypePret.D331_59_8 _ -> false - | TypePret.D331_76_1 _ -> false - | TypePret.Autre _ -> false)))))) + (o_lt_dat_dat date_signature_pret_ + (date_of_numbers (1994) (11) (27))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> false + | NeufOuAncien.Ancien _ -> true) + (match type_pret_ + with + | TypePret.D331_32 _ -> true + | TypePret.D331_63_64 _ -> + false + | TypePret.D331_59_8 _ -> false + | TypePret.D331_76_1 _ -> false + | TypePret.Autre _ -> false))))))) (fun (_: unit) -> o_mult_mon_rat (match zone_ @@ -16106,8 +18391,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -16115,26 +18400,29 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=708; start_column=5; - end_line=710; end_column=33; + start_line=726; start_column=5; + end_line=728; end_column=33; law_headings=["Article 17"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and - (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (1994) (11) (27))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2019) (10) (1))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> true - | NeufOuAncien.Ancien _ -> false) - (match type_pret_ - with - | TypePret.D331_32 _ -> true - | TypePret.D331_63_64 _ -> false - | TypePret.D331_59_8 _ -> false - | TypePret.D331_76_1 _ -> false - | TypePret.Autre _ -> false))))) + (o_gte_dat_dat date_signature_pret_ + (date_of_numbers (1994) (11) (27))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> true + | NeufOuAncien.Ancien _ -> false) + (match type_pret_ + with + | TypePret.D331_32 _ -> true + | TypePret.D331_63_64 _ -> false + | TypePret.D331_59_8 _ -> false + | TypePret.D331_76_1 _ -> false + | TypePret.Autre _ -> false)))))) (fun (_: unit) -> o_mult_mon_rat (match zone_ @@ -16215,8 +18503,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; - end_line=753; end_column=46; + start_line=760; start_column=11; + end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -16224,26 +18512,29 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=751; start_column=5; - end_line=753; end_column=33; + start_line=770; start_column=5; + end_line=772; end_column=33; law_headings=["Article 17"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and - (o_gte_dat_dat date_signature_pret_ - (date_of_numbers (1994) (11) (27))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2019) (10) (1))) (o_and - (match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien _ -> true) - (match type_pret_ - with - | TypePret.D331_32 _ -> true - | TypePret.D331_63_64 _ -> false - | TypePret.D331_59_8 _ -> false - | TypePret.D331_76_1 _ -> false - | TypePret.Autre _ -> false))))) + (o_gte_dat_dat date_signature_pret_ + (date_of_numbers (1994) (11) (27))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> false + | NeufOuAncien.Ancien _ -> true) + (match type_pret_ + with + | TypePret.D331_32 _ -> true + | TypePret.D331_63_64 _ -> false + | TypePret.D331_59_8 _ -> false + | TypePret.D331_76_1 _ -> false + | TypePret.Autre _ -> false)))))) (fun (_: unit) -> o_mult_mon_rat (match zone_ @@ -16325,8 +18616,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> raise EmptyError))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=55; - end_line=753; end_column=61; + start_line=760; start_column=55; + end_line=760; end_column=61; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -16335,7 +18626,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; end_line=753; end_column=46; + start_line=760; start_column=11; end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -16343,7 +18634,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=753; start_column=11; end_line=753; end_column=46; + start_line=760; start_column=11; end_line=760; end_column=46; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -16354,14 +18645,14 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=755; start_column=11; end_line=755; end_column=33; + start_line=762; start_column=11; end_line=762; end_column=33; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3274; start_column=14; end_line=3274; end_column=36; + start_line=3276; start_column=14; end_line=3276; end_column=36; law_headings=["Article D832-11"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -16374,7 +18665,116 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=755; start_column=11; end_line=755; end_column=33; + start_line=762; start_column=11; end_line=762; end_column=33; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]})))) in + let ressources_menage_avec_d832_18_: money = (log_variable_definition + ["CalculAidePersonnaliséeLogementAccessionPropriété"; + "ressources_ménage_avec_d832_18"] (embed_money) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=771; start_column=11; end_line=771; end_column=41; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=771; start_column=11; + end_line=771; end_column=41; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=3592; start_column=5; + end_line=3592; end_column=28; + law_headings=["Article D832-18"; + "Section 2 : Accession à la propriété"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + situation_r822_11_13_17_)) + (fun (_: unit) -> ressources_menage_arrondies_))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=3584; start_column=14; end_line=3584; end_column=44; + law_headings=["Article D832-18"; + "Section 2 : Accession à la propriété"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) + (fun (_: unit) -> + if + (o_lte_mon_mon ressources_menage_arrondies_ + (o_mult_mon_rat mensualite_principale_ + coefficient_multiplicateur_d832_18_)) then + (o_mult_mon_rat mensualite_principale_ + coefficient_multiplicateur_d832_18_) else + ressources_menage_arrondies_)) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=771; start_column=11; end_line=771; end_column=41; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]})))) in + let traitement_aide_finale_minoration_forfaitaire_: money -> money = (log_variable_definition + ["CalculAidePersonnaliséeLogementAccessionPropriété"; + "traitement_aide_finale_minoration_forfaitaire"] (unembeddable) ( + try + (fun (aide_finale_: money) -> + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=792; start_column=10; end_line=792; end_column=32; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=3127; start_column=14; + end_line=3127; end_column=36; + law_headings=["Article D832-10"; + "Section 2 : Accession à la propriété"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) + (fun (_: unit) -> + if + (o_gte_mon_mon + (o_sub_mon_mon aide_finale_ + montant_forfaitaire_d832_10_) (money_of_cents_string + "0")) then + (o_sub_mon_mon aide_finale_ montant_forfaitaire_d832_10_) + else (money_of_cents_string "0"))) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=792; start_column=10; end_line=792; end_column=32; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'aide personnalisée au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]}))) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=792; start_column=10; end_line=792; end_column=32; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -16387,7 +18787,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=760; start_column=11; end_line=760; end_column=41; + start_line=767; start_column=11; end_line=767; end_column=41; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -16395,8 +18795,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=760; start_column=11; - end_line=760; end_column=41; + start_line=767; start_column=11; + end_line=767; end_column=41; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -16404,8 +18804,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3526; start_column=5; - end_line=3526; end_column=40; + start_line=3528; start_column=5; + end_line=3528; end_column=40; law_headings=["Article D832-17"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -16422,8 +18822,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna allocation_mensuelle_))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3537; start_column=14; - end_line=3537; end_column=44; + start_line=3539; start_column=14; + end_line=3539; end_column=44; law_headings=["Article D832-17"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -16437,7 +18837,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=760; start_column=11; end_line=760; end_column=41; + start_line=767; start_column=11; end_line=767; end_column=41; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -16445,7 +18845,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=760; start_column=11; end_line=760; end_column=41; + start_line=767; start_column=11; end_line=767; end_column=41; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -16456,7 +18856,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=751; start_column=10; end_line=751; end_column=14; + start_line=758; start_column=10; end_line=758; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -16464,16 +18864,16 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=751; start_column=10; - end_line=751; end_column=14; + start_line=758; start_column=10; + end_line=758; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3361; start_column=5; - end_line=3361; end_column=44; + start_line=3363; start_column=5; + end_line=3363; end_column=44; law_headings=["Article D832-14"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -16517,7 +18917,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna then plafond_entree_ else plafond_signature_)))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3341; start_column=14; end_line=3341; end_column=42; + start_line=3343; start_column=14; end_line=3343; end_column=42; law_headings=["Article D832-14"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -16542,7 +18942,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=751; start_column=10; end_line=751; end_column=14; + start_line=758; start_column=10; end_line=758; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -16553,14 +18953,14 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "calcul_équivalence_loyer_minimale.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=792; start_column=14; end_line=792; end_column=61; + start_line=799; start_column=14; end_line=799; end_column=61; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=792; start_column=14; end_line=792; end_column=61; + start_line=799; start_column=14; end_line=799; end_column=61; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -16569,7 +18969,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=792; start_column=14; end_line=792; end_column=61; + start_line=799; start_column=14; end_line=799; end_column=61; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -16581,7 +18981,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (embed_money) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3482; start_column=14; end_line=3482; end_column=75; + start_line=3484; start_column=14; end_line=3484; end_column=75; law_headings=["Article D832-15"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -16592,7 +18992,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3482; start_column=14; end_line=3482; end_column=75; + start_line=3484; start_column=14; end_line=3484; end_column=75; law_headings=["Article D832-15"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -16604,7 +19004,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3482; start_column=14; end_line=3482; end_column=75; + start_line=3484; start_column=14; end_line=3484; end_column=75; law_headings=["Article D832-15"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -16619,7 +19019,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3481; start_column=14; end_line=3481; end_column=69; + start_line=3483; start_column=14; end_line=3483; end_column=69; law_headings=["Article D832-15"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -16630,7 +19030,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3481; start_column=14; end_line=3481; end_column=69; + start_line=3483; start_column=14; end_line=3483; end_column=69; law_headings=["Article D832-15"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -16642,7 +19042,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3481; start_column=14; end_line=3481; end_column=69; + start_line=3483; start_column=14; end_line=3483; end_column=69; law_headings=["Article D832-15"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -16657,7 +19057,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (embed_decimal) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3484; start_column=14; end_line=3484; end_column=70; + start_line=3486; start_column=14; end_line=3486; end_column=70; law_headings=["Article D832-15"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -16668,7 +19068,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3484; start_column=14; end_line=3484; end_column=70; + start_line=3486; start_column=14; end_line=3486; end_column=70; law_headings=["Article D832-15"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -16680,7 +19080,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3484; start_column=14; end_line=3484; end_column=70; + start_line=3486; start_column=14; end_line=3486; end_column=70; law_headings=["Article D832-15"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -16710,14 +19110,14 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=757; start_column=10; end_line=757; end_column=17; + start_line=764; start_column=10; end_line=764; end_column=17; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3189; start_column=14; end_line=3189; end_column=49; + start_line=3191; start_column=14; end_line=3191; end_column=49; law_headings=["Article D832-11"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -16734,7 +19134,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=757; start_column=10; end_line=757; end_column=17; + start_line=764; start_column=10; end_line=764; end_column=17; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -16747,15 +19147,15 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=762; start_column=11; end_line=762; end_column=52; + start_line=769; start_column=11; end_line=769; end_column=52; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3548; start_column=14; - end_line=3548; end_column=55; + start_line=3550; start_column=14; + end_line=3550; end_column=55; law_headings=["Article D832-17"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -16792,7 +19192,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=762; start_column=11; end_line=762; end_column=52; + start_line=769; start_column=11; end_line=769; end_column=52; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -16800,7 +19200,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=762; start_column=11; end_line=762; end_column=52; + start_line=769; start_column=11; end_line=769; end_column=52; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -16811,7 +19211,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=752; start_column=10; end_line=752; end_column=25; + start_line=759; start_column=10; end_line=759; end_column=25; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -16819,8 +19219,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=752; start_column=10; - end_line=752; end_column=25; + start_line=759; start_column=10; + end_line=759; end_column=25; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -16828,8 +19228,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=752; start_column=10; - end_line=752; end_column=25; + start_line=759; start_column=10; + end_line=759; end_column=25; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -16837,8 +19237,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=752; start_column=10; - end_line=752; end_column=25; + start_line=759; start_column=10; + end_line=759; end_column=25; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -16846,11 +19246,11 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1861; start_column=14; - end_line=1861; end_column=42; + start_line=2482; start_column=14; + end_line=2482; end_column=42; law_headings=["Article 24"; "Article 19"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_lt_dat_dat date_courante_ @@ -16865,10 +19265,10 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna plafond_mensualite_d832_10_3_base_))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=906; start_column=14; - end_line=906; end_column=42; + start_line=1398; start_column=14; + end_line=1398; end_column=42; law_headings=["Article 24"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -16883,8 +19283,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna plafond_mensualite_d832_10_3_base_))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2394; start_column=14; - end_line=2394; end_column=42; + start_line=2419; start_column=14; + end_line=2419; end_column=42; law_headings=["Article 24"; "Article 18"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_gte_dat_dat date_courante_ @@ -16898,7 +19298,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=752; start_column=10; end_line=752; end_column=25; + start_line=759; start_column=10; end_line=759; end_column=25; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -16909,7 +19309,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=749; start_column=12; end_line=749; end_column=31; + start_line=756; start_column=12; end_line=756; end_column=31; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -16917,16 +19317,16 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=749; start_column=12; - end_line=749; end_column=31; + start_line=756; start_column=12; + end_line=756; end_column=31; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3421; start_column=5; - end_line=3433; end_column=77; + start_line=3423; start_column=5; + end_line=3435; end_column=77; law_headings=["Article D832-15"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -16988,16 +19388,16 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=749; start_column=12; - end_line=749; end_column=31; + start_line=756; start_column=12; + end_line=756; end_column=31; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3476; start_column=5; - end_line=3476; end_column=75; + start_line=3478; start_column=5; + end_line=3478; end_column=75; law_headings=["Article D832-15"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -17018,7 +19418,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=749; start_column=12; end_line=749; end_column=31; + start_line=756; start_column=12; end_line=756; end_column=31; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -17029,14 +19429,14 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=758; start_column=10; end_line=758; end_column=23; + start_line=765; start_column=10; end_line=765; end_column=23; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3205; start_column=14; end_line=3205; end_column=49; + start_line=3207; start_column=14; end_line=3207; end_column=49; law_headings=["Article D832-11"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -17056,7 +19456,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=758; start_column=10; end_line=758; end_column=23; + start_line=765; start_column=10; end_line=765; end_column=23; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -17069,15 +19469,15 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=786; start_column=10; end_line=786; end_column=20; + start_line=793; start_column=10; end_line=793; end_column=20; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3139; start_column=14; - end_line=3139; end_column=36; + start_line=3141; start_column=14; + end_line=3141; end_column=36; law_headings=["Article D832-10"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -17124,7 +19524,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=786; start_column=10; end_line=786; end_column=20; + start_line=793; start_column=10; end_line=793; end_column=20; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -17132,7 +19532,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=786; start_column=10; end_line=786; end_column=20; + start_line=793; start_column=10; end_line=793; end_column=20; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -17143,14 +19543,14 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=748; start_column=12; end_line=748; end_column=31; + start_line=755; start_column=12; end_line=755; end_column=31; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3100; start_column=14; end_line=3100; end_column=33; + start_line=3102; start_column=14; end_line=3102; end_column=33; law_headings=["Article D832-10"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -17168,7 +19568,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=748; start_column=12; end_line=748; end_column=31; + start_line=755; start_column=12; end_line=755; end_column=31; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -17179,14 +19579,14 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=759; start_column=10; end_line=759; end_column=15; + start_line=766; start_column=10; end_line=766; end_column=15; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3208; start_column=14; end_line=3208; end_column=49; + start_line=3210; start_column=14; end_line=3210; end_column=49; law_headings=["Article D832-11"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -17204,7 +19604,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=759; start_column=10; end_line=759; end_column=15; + start_line=766; start_column=10; end_line=766; end_column=15; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -17218,15 +19618,15 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=787; start_column=10; end_line=787; end_column=40; + start_line=794; start_column=10; end_line=794; end_column=40; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3153; start_column=14; - end_line=3153; end_column=36; + start_line=3155; start_column=14; + end_line=3155; end_column=36; law_headings=["Article D832-10"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -17276,7 +19676,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=787; start_column=10; end_line=787; end_column=40; + start_line=794; start_column=10; end_line=794; end_column=40; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -17284,7 +19684,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=787; start_column=10; end_line=787; end_column=40; + start_line=794; start_column=10; end_line=794; end_column=40; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -17295,14 +19695,14 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=782; start_column=12; end_line=782; end_column=31; + start_line=789; start_column=12; end_line=789; end_column=31; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3080; start_column=14; end_line=3080; end_column=33; + start_line=3082; start_column=14; end_line=3082; end_column=33; law_headings=["Article D832-10"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -17325,7 +19725,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=782; start_column=12; end_line=782; end_column=31; + start_line=789; start_column=12; end_line=789; end_column=31; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -17338,15 +19738,15 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=788; start_column=10; end_line=788; end_column=25; + start_line=795; start_column=10; end_line=795; end_column=25; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3173; start_column=14; - end_line=3173; end_column=36; + start_line=3175; start_column=14; + end_line=3175; end_column=36; law_headings=["Article D832-10"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -17377,7 +19777,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=788; start_column=10; end_line=788; end_column=25; + start_line=795; start_column=10; end_line=795; end_column=25; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -17385,7 +19785,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=788; start_column=10; end_line=788; end_column=25; + start_line=795; start_column=10; end_line=795; end_column=25; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -17397,16 +19797,16 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=796; start_column=13; - end_line=796; end_column=42; + start_line=803; start_column=13; + end_line=803; end_column=42; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]}))) then () else raise (AssertionFailed {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=796; start_column=13; - end_line=796; end_column=42; + start_line=803; start_column=13; + end_line=803; end_column=42; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -17432,66 +19832,19 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement let personnes_a_charge_: PersonneACharge.t array = ressources_aides_personnelle_logement_in.RessourcesAidesPersonnelleLogementIn.personnes_a_charge_in in let situation_familiale_: SituationFamiliale.t = ressources_aides_personnelle_logement_in.RessourcesAidesPersonnelleLogementIn.situation_familiale_in in let mode_occupation_: ModeOccupation.t = ressources_aides_personnelle_logement_in.RessourcesAidesPersonnelleLogementIn.mode_occupation_in in + let date_courante_: date = ressources_aides_personnelle_logement_in.RessourcesAidesPersonnelleLogementIn.date_courante_in in let condition_age_bourse_enseignement_superieur_: bool = ressources_aides_personnelle_logement_in.RessourcesAidesPersonnelleLogementIn.condition_age_bourse_enseignement_superieur_in in let demandeur_poursuit_des_etudes_: bool = ressources_aides_personnelle_logement_in.RessourcesAidesPersonnelleLogementIn.demandeur_poursuit_des_etudes_in in let date_demande_ou_reexamen_droit_: date = ressources_aides_personnelle_logement_in.RessourcesAidesPersonnelleLogementIn.date_demande_ou_reexamen_droit_in in let paiement_logement_distinct_professionnel_: PaiementLogementDistinctProfessionnel.t = ressources_aides_personnelle_logement_in.RessourcesAidesPersonnelleLogementIn.paiement_logement_distinct_professionnel_in in let ressources_menage_arrondies_base_: money = ressources_aides_personnelle_logement_in.RessourcesAidesPersonnelleLogementIn.ressources_menage_arrondies_base_in in - let montant_forfaitaire_r_822_8_: money = (log_variable_definition - ["RessourcesAidesPersonnelleLogement"; "montant_forfaitaire_r_822_8"] - (embed_money) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=536; start_column=11; end_line=536; end_column=38; - law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=21; start_column=14; end_line=21; end_column=41; - law_headings=["Article 4"; - "Chapitre II : Dispositions applicables aux ressources"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: unit) -> money_of_cents_string "258900")) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=536; start_column=11; end_line=536; end_column=38; - law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})))) in - let montant_forfaitaire_r_822_7_: money = (log_variable_definition - ["RessourcesAidesPersonnelleLogement"; "montant_forfaitaire_r_822_7"] - (embed_money) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=538; start_column=11; end_line=538; end_column=38; - law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=11; start_column=14; end_line=11; end_column=41; - law_headings=["Article 3"; - "Chapitre II : Dispositions applicables aux ressources"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: unit) -> money_of_cents_string "9500")) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=538; start_column=11; end_line=538; end_column=38; - law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})))) in let ressources_personnes_vivant_habituellement_foyer_: money = (log_variable_definition ["RessourcesAidesPersonnelleLogement"; "ressources_personnes_vivant_habituellement_foyer"] (embed_money) ( try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=534; start_column=11; end_line=534; end_column=59; + start_line=535; start_column=11; end_line=535; end_column=59; law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) @@ -17518,7 +19871,7 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=534; start_column=11; end_line=534; end_column=59; + start_line=535; start_column=11; end_line=535; end_column=59; law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]})))) in @@ -17528,7 +19881,7 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=539; start_column=11; end_line=539; end_column=30; + start_line=540; start_column=11; end_line=540; end_column=30; law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) @@ -17567,7 +19920,57 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=539; start_column=11; end_line=539; end_column=30; + start_line=540; start_column=11; end_line=540; end_column=30; + law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]})))) in + let montant_forfaitaire_r_822_7_: money = (log_variable_definition + ["RessourcesAidesPersonnelleLogement"; "montant_forfaitaire_r_822_7"] + (embed_money) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=539; start_column=11; end_line=539; end_column=38; + law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=12; start_column=14; end_line=12; end_column=41; + law_headings=["Article 3"; + "Chapitre II : Dispositions applicables aux ressources"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) + (fun (_: unit) -> money_of_cents_string "9500")) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=539; start_column=11; end_line=539; end_column=38; + law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]})))) in + let montant_forfaitaire_r_822_8_: money = (log_variable_definition + ["RessourcesAidesPersonnelleLogement"; "montant_forfaitaire_r_822_8"] + (embed_money) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=537; start_column=11; end_line=537; end_column=38; + law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=23; start_column=14; end_line=23; end_column=41; + law_headings=["Article 4"; + "Chapitre II : Dispositions applicables aux ressources"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) + (fun (_: unit) -> money_of_cents_string "258900")) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=537; start_column=11; end_line=537; end_column=38; law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]})))) in @@ -17622,57 +20025,21 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement ({BaseMensuelleAllocationsFamilialesIn.date_courante_in = base_mensuelle_allocations_familiales_dot_date_courante_}))) in let base_mensuelle_allocations_familiales_dot_montant_: money = result_.BaseMensuelleAllocationsFamiliales.montant in - let abattement_r_822_8_: money = (log_variable_definition - ["RessourcesAidesPersonnelleLogement"; "abattement_r_822_8"] - (embed_money) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=535; start_column=11; end_line=535; end_column=29; - law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=462; start_column=14; end_line=462; end_column=32; - law_headings=["Article R822-8"; - "Sous-section 2 : Principes de neutralisation et d'abattement"; - "Section 2 : Conditions relatives aux ressources"; - "Chapitre II : Conditions générales d'attribution"; - "Titre II : Dispositions communes aux aides personnelles au logement"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]} - true)) - (fun (_: unit) -> - match paiement_logement_distinct_professionnel_ - with - | PaiementLogementDistinctProfessionnel.OuiAvecLoyerOuCharges loyer_ou_charges_ -> - montant_forfaitaire_r_822_8_ - | PaiementLogementDistinctProfessionnel.Non _ -> - (money_of_cents_string "0"))) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=535; start_column=11; end_line=535; end_column=29; - law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})))) in let ressources_prises_en_compte_: money = (log_variable_definition ["RessourcesAidesPersonnelleLogement"; "ressources_prises_en_compte"] (embed_money) ( try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=545; start_column=12; end_line=545; end_column=39; + start_line=546; start_column=12; end_line=546; end_column=39; law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=545; start_column=12; - end_line=545; end_column=39; + start_line=546; start_column=12; + end_line=546; end_column=39; law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) @@ -17728,7 +20095,43 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=545; start_column=12; end_line=545; end_column=39; + start_line=546; start_column=12; end_line=546; end_column=39; + law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]})))) in + let abattement_r_822_8_: money = (log_variable_definition + ["RessourcesAidesPersonnelleLogement"; "abattement_r_822_8"] + (embed_money) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=536; start_column=11; end_line=536; end_column=29; + law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=462; start_column=14; end_line=462; end_column=32; + law_headings=["Article R822-8"; + "Sous-section 2 : Principes de neutralisation et d'abattement"; + "Section 2 : Conditions relatives aux ressources"; + "Chapitre II : Conditions générales d'attribution"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) + (fun (_: unit) -> + match paiement_logement_distinct_professionnel_ + with + | PaiementLogementDistinctProfessionnel.OuiAvecLoyerOuCharges loyer_ou_charges_ -> + montant_forfaitaire_r_822_8_ + | PaiementLogementDistinctProfessionnel.Non _ -> + (money_of_cents_string "0"))) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=536; start_column=11; end_line=536; end_column=29; law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]})))) in @@ -17738,7 +20141,7 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=537; start_column=11; end_line=537; end_column=29; + start_line=538; start_column=11; end_line=538; end_column=29; law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) @@ -17768,7 +20171,7 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=537; start_column=11; end_line=537; end_column=29; + start_line=538; start_column=11; end_line=538; end_column=29; law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]})))) in @@ -18276,13 +20679,13 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C "calcul_apl_locatif.loyer_principal_base"] (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=873; start_column=14; end_line=873; end_column=48; + start_line=880; start_column=14; end_line=880; end_column=48; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=873; start_column=14; end_line=873; end_column=48; + start_line=880; start_column=14; end_line=880; end_column=48; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -18290,7 +20693,7 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=873; start_column=14; end_line=873; end_column=48; + start_line=880; start_column=14; end_line=880; end_column=48; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -18300,13 +20703,13 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C "calcul_apl_locatif.ressources_ménage_arrondies"] (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=875; start_column=14; end_line=875; end_column=60; + start_line=882; start_column=14; end_line=882; end_column=60; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=875; start_column=14; end_line=875; end_column=60; + start_line=882; start_column=14; end_line=882; end_column=60; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -18314,7 +20717,7 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=875; start_column=14; end_line=875; end_column=60; + start_line=882; start_column=14; end_line=882; end_column=60; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -18325,13 +20728,13 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C (embed_bool) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=877; start_column=14; end_line=877; end_column=78; + start_line=884; start_column=14; end_line=884; end_column=78; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=877; start_column=14; end_line=877; end_column=78; + start_line=884; start_column=14; end_line=884; end_column=78; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -18339,7 +20742,7 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=877; start_column=14; end_line=877; end_column=78; + start_line=884; start_column=14; end_line=884; end_column=78; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -18349,13 +20752,13 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=880; start_column=14; end_line=880; end_column=46; + start_line=887; start_column=14; end_line=887; end_column=46; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=880; start_column=14; end_line=880; end_column=46; + start_line=887; start_column=14; end_line=887; end_column=46; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -18363,7 +20766,7 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=880; start_column=14; end_line=880; end_column=46; + start_line=887; start_column=14; end_line=887; end_column=46; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -18373,13 +20776,13 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C "calcul_apl_locatif.nombre_personnes_à_charge"] (embed_integer) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=882; start_column=14; end_line=882; end_column=58; + start_line=889; start_column=14; end_line=889; end_column=58; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=882; start_column=14; end_line=882; end_column=58; + start_line=889; start_column=14; end_line=889; end_column=58; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -18387,7 +20790,7 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=882; start_column=14; end_line=882; end_column=58; + start_line=889; start_column=14; end_line=889; end_column=58; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -18398,13 +20801,13 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C (embed_situation_familiale_calcul_a_p_l) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=884; start_column=14; end_line=884; end_column=63; + start_line=891; start_column=14; end_line=891; end_column=63; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=884; start_column=14; end_line=884; end_column=63; + start_line=891; start_column=14; end_line=891; end_column=63; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -18412,7 +20815,7 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=884; start_column=14; end_line=884; end_column=63; + start_line=891; start_column=14; end_line=891; end_column=63; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -18422,13 +20825,13 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C (embed_zone_d_habitation) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=886; start_column=14; end_line=886; end_column=37; + start_line=893; start_column=14; end_line=893; end_column=37; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=886; start_column=14; end_line=886; end_column=37; + start_line=893; start_column=14; end_line=893; end_column=37; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -18436,7 +20839,7 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=886; start_column=14; end_line=886; end_column=37; + start_line=893; start_column=14; end_line=893; end_column=37; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -18446,13 +20849,13 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C "calcul_apl_locatif.logement_est_chambre"] (embed_bool) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=888; start_column=14; end_line=888; end_column=53; + start_line=895; start_column=14; end_line=895; end_column=53; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=888; start_column=14; end_line=888; end_column=53; + start_line=895; start_column=14; end_line=895; end_column=53; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -18460,7 +20863,7 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=888; start_column=14; end_line=888; end_column=53; + start_line=895; start_column=14; end_line=895; end_column=53; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -18471,13 +20874,13 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C (embed_bool) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=891; start_column=5; end_line=892; end_column=63; + start_line=898; start_column=5; end_line=899; end_column=63; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=891; start_column=5; end_line=892; end_column=63; + start_line=898; start_column=5; end_line=899; end_column=63; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -18486,7 +20889,7 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=891; start_column=5; end_line=892; end_column=63; + start_line=898; start_column=5; end_line=899; end_column=63; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -18496,13 +20899,13 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C (embed_type_aides_personnelle_logement) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=895; start_column=14; end_line=895; end_column=42; + start_line=902; start_column=14; end_line=902; end_column=42; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=895; start_column=14; end_line=895; end_column=42; + start_line=902; start_column=14; end_line=902; end_column=42; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -18510,7 +20913,7 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=895; start_column=14; end_line=895; end_column=42; + start_line=902; start_column=14; end_line=902; end_column=42; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -18520,13 +20923,13 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C (embed_bool) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=897; start_column=14; end_line=897; end_column=43; + start_line=904; start_column=14; end_line=904; end_column=43; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=897; start_column=14; end_line=897; end_column=43; + start_line=904; start_column=14; end_line=904; end_column=43; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -18534,7 +20937,7 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=897; start_column=14; end_line=897; end_column=43; + start_line=904; start_column=14; end_line=904; end_column=43; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -18544,13 +20947,13 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C "calcul_apl_locatif.réduction_loyer_solidarité"] (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=899; start_column=14; end_line=899; end_column=59; + start_line=906; start_column=14; end_line=906; end_column=59; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=899; start_column=14; end_line=899; end_column=59; + start_line=906; start_column=14; end_line=906; end_column=59; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -18558,7 +20961,7 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=899; start_column=14; end_line=899; end_column=59; + start_line=906; start_column=14; end_line=906; end_column=59; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -18568,13 +20971,13 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C "calcul_apl_locatif.logement_meublé_d842_2"] (embed_bool) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=901; start_column=14; end_line=901; end_column=55; + start_line=908; start_column=14; end_line=908; end_column=55; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=901; start_column=14; end_line=901; end_column=55; + start_line=908; start_column=14; end_line=908; end_column=55; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -18582,7 +20985,7 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=901; start_column=14; end_line=901; end_column=55; + start_line=908; start_column=14; end_line=908; end_column=55; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -18592,13 +20995,13 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C (embed_collectivite) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=903; start_column=14; end_line=903; end_column=42; + start_line=910; start_column=14; end_line=910; end_column=42; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=903; start_column=14; end_line=903; end_column=42; + start_line=910; start_column=14; end_line=910; end_column=42; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -18606,7 +21009,7 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=903; start_column=14; end_line=903; end_column=42; + start_line=910; start_column=14; end_line=910; end_column=42; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -18660,23 +21063,23 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=869; start_column=12; end_line=869; end_column=34; + start_line=876; start_column=12; end_line=876; end_column=34; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=869; start_column=12; - end_line=869; end_column=34; + start_line=876; start_column=12; + end_line=876; end_column=34; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4287; start_column=24; - end_line=4287; end_column=46; + start_line=4289; start_column=24; + end_line=4289; end_column=46; law_headings=["Article D842-4"; "Section 1 : Secteur locatif ordinaire"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -18693,8 +21096,8 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C false))) (fun (_: unit) -> aide_finale_))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=907; start_column=14; - end_line=907; end_column=36; + start_line=914; start_column=14; + end_line=914; end_column=36; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -18715,14 +21118,14 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=869; start_column=12; end_line=869; end_column=34; + start_line=876; start_column=12; end_line=876; end_column=34; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=869; start_column=12; end_line=869; end_column=34; + start_line=876; start_column=12; end_line=876; end_column=34; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -18732,22 +21135,22 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=867; start_column=12; end_line=867; end_column=31; + start_line=874; start_column=12; end_line=874; end_column=31; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=867; start_column=12; - end_line=867; end_column=31; + start_line=874; start_column=12; + end_line=874; end_column=31; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4279; start_column=24; - end_line=4279; end_column=43; + start_line=4281; start_column=24; + end_line=4281; end_column=43; law_headings=["Article D842-4"; "Section 1 : Secteur locatif ordinaire"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -18773,7 +21176,7 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C (money_of_cents_string "0")))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=906; start_column=14; end_line=906; end_column=33; + start_line=913; start_column=14; end_line=913; end_column=33; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -18781,7 +21184,7 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=867; start_column=12; end_line=867; end_column=31; + start_line=874; start_column=12; end_line=874; end_column=31; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -18800,85 +21203,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu let zone_: ZoneDHabitation.t = calcul_allocation_logement_foyer_in.CalculAllocationLogementFoyerIn.zone_in in let date_courante_: date = calcul_allocation_logement_foyer_in.CalculAllocationLogementFoyerIn.date_courante_in in let categorie_equivalence_loyer_d842_16_: CategorieEquivalenceLoyerAllocationLogementFoyer.t = calcul_allocation_logement_foyer_in.CalculAllocationLogementFoyerIn.categorie_equivalence_loyer_d842_16_in in - let montant_minimal_aide_d842_15_: money = (log_variable_definition - ["CalculAllocationLogementFoyer"; "montant_minimal_aide_d842_15"] - (embed_money) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1028; start_column=11; end_line=1028; end_column=39; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4109; start_column=14; end_line=4109; end_column=42; - law_headings=["Article 42"; - "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: unit) -> money_of_cents_string "1000")) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1028; start_column=11; end_line=1028; end_column=39; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})))) in - let montant_forfaitaire_d842_15_: money = (log_variable_definition - ["CalculAllocationLogementFoyer"; "montant_forfaitaire_d842_15"] - (embed_money) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1029; start_column=11; end_line=1029; end_column=38; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4098; start_column=14; end_line=4098; end_column=41; - law_headings=["Article 41"; - "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: unit) -> money_of_cents_string "500")) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1029; start_column=11; end_line=1029; end_column=38; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})))) in - let montant_minimal_depense_nette_d842_17_: money = (log_variable_definition - ["CalculAllocationLogementFoyer"; - "montant_minimal_dépense_nette_d842_17"] (embed_money) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1030; start_column=11; end_line=1030; end_column=48; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4200; start_column=14; end_line=4200; end_column=51; - law_headings=["Article 44"; - "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: unit) -> money_of_cents_string "1500")) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1030; start_column=11; end_line=1030; end_column=48; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})))) in let calcul_nombre_parts_dot_condition_2_du_832_25_: bool = try ((log_variable_definition ["CalculAllocationLogementFoyer"; "calcul_nombre_parts.condition_2_du_832_25"] (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4836; start_column=14; end_line=4836; end_column=55; + start_line=4841; start_column=14; end_line=4841; end_column=55; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -18888,7 +21219,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4836; start_column=14; end_line=4836; end_column=55; + start_line=4841; start_column=14; end_line=4841; end_column=55; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -18900,7 +21231,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4836; start_column=14; end_line=4836; end_column=55; + start_line=4841; start_column=14; end_line=4841; end_column=55; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -18913,7 +21244,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "calcul_nombre_parts.nombre_personnes_à_charge"] (embed_integer) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4831; start_column=14; end_line=4831; end_column=59; + start_line=4836; start_column=14; end_line=4836; end_column=59; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -18923,7 +21254,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4831; start_column=14; end_line=4831; end_column=59; + start_line=4836; start_column=14; end_line=4836; end_column=59; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -18935,7 +21266,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4831; start_column=14; end_line=4831; end_column=59; + start_line=4836; start_column=14; end_line=4836; end_column=59; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -18949,7 +21280,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_situation_familiale_calcul_a_p_l) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4833; start_column=14; end_line=4833; end_column=64; + start_line=4838; start_column=14; end_line=4838; end_column=64; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -18959,7 +21290,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4833; start_column=14; end_line=4833; end_column=64; + start_line=4838; start_column=14; end_line=4838; end_column=64; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -18971,7 +21302,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4833; start_column=14; end_line=4833; end_column=64; + start_line=4838; start_column=14; end_line=4838; end_column=64; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -18984,7 +21315,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_collectivite) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4835; start_column=14; end_line=4835; end_column=43; + start_line=4840; start_column=14; end_line=4840; end_column=43; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -18994,7 +21325,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4835; start_column=14; end_line=4835; end_column=43; + start_line=4840; start_column=14; end_line=4840; end_column=43; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -19006,7 +21337,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4835; start_column=14; end_line=4835; end_column=43; + start_line=4840; start_column=14; end_line=4840; end_column=43; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -19040,13 +21371,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "contributions_sociales.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1070; start_column=14; end_line=1070; end_column=50; + start_line=1081; start_column=14; end_line=1081; end_column=50; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1070; start_column=14; end_line=1070; end_column=50; + start_line=1081; start_column=14; end_line=1081; end_column=50; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -19054,7 +21385,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1070; start_column=14; end_line=1070; end_column=50; + start_line=1081; start_column=14; end_line=1081; end_column=50; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -19074,13 +21405,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_type_logement_foyer) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1054; start_column=14; end_line=1054; end_column=59; + start_line=1065; start_column=14; end_line=1065; end_column=59; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1054; start_column=14; end_line=1054; end_column=59; + start_line=1065; start_column=14; end_line=1065; end_column=59; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -19088,7 +21419,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1054; start_column=14; end_line=1054; end_column=59; + start_line=1065; start_column=14; end_line=1065; end_column=59; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -19098,13 +21429,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "calcul_apl_logement_foyer.date_conventionnement"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1056; start_column=14; end_line=1056; end_column=61; + start_line=1067; start_column=14; end_line=1067; end_column=61; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1056; start_column=14; end_line=1056; end_column=61; + start_line=1067; start_column=14; end_line=1067; end_column=61; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -19112,7 +21443,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1056; start_column=14; end_line=1056; end_column=61; + start_line=1067; start_column=14; end_line=1067; end_column=61; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -19123,13 +21454,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1060; start_column=14; end_line=1060; end_column=67; + start_line=1071; start_column=14; end_line=1071; end_column=67; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1060; start_column=14; end_line=1060; end_column=67; + start_line=1071; start_column=14; end_line=1071; end_column=67; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -19137,7 +21468,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1060; start_column=14; end_line=1060; end_column=67; + start_line=1071; start_column=14; end_line=1071; end_column=67; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -19148,13 +21479,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_integer) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1062; start_column=14; end_line=1062; end_column=65; + start_line=1073; start_column=14; end_line=1073; end_column=65; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1062; start_column=14; end_line=1062; end_column=65; + start_line=1073; start_column=14; end_line=1073; end_column=65; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -19162,7 +21493,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1062; start_column=14; end_line=1062; end_column=65; + start_line=1073; start_column=14; end_line=1073; end_column=65; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -19173,13 +21504,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_situation_familiale_calcul_a_p_l) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1064; start_column=14; end_line=1064; end_column=70; + start_line=1075; start_column=14; end_line=1075; end_column=70; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1064; start_column=14; end_line=1064; end_column=70; + start_line=1075; start_column=14; end_line=1075; end_column=70; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -19187,7 +21518,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1064; start_column=14; end_line=1064; end_column=70; + start_line=1075; start_column=14; end_line=1075; end_column=70; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -19197,13 +21528,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_zone_d_habitation) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1066; start_column=14; end_line=1066; end_column=44; + start_line=1077; start_column=14; end_line=1077; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1066; start_column=14; end_line=1066; end_column=44; + start_line=1077; start_column=14; end_line=1077; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -19211,7 +21542,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1066; start_column=14; end_line=1066; end_column=44; + start_line=1077; start_column=14; end_line=1077; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -19221,13 +21552,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "calcul_apl_logement_foyer.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1068; start_column=14; end_line=1068; end_column=53; + start_line=1079; start_column=14; end_line=1079; end_column=53; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1068; start_column=14; end_line=1068; end_column=53; + start_line=1079; start_column=14; end_line=1079; end_column=53; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -19235,7 +21566,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1068; start_column=14; end_line=1068; end_column=53; + start_line=1079; start_column=14; end_line=1079; end_column=53; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -19245,13 +21576,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "calcul_apl_logement_foyer.redevance"] (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1058; start_column=14; end_line=1058; end_column=49; + start_line=1069; start_column=14; end_line=1069; end_column=49; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1058; start_column=14; end_line=1058; end_column=49; + start_line=1069; start_column=14; end_line=1069; end_column=49; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -19259,7 +21590,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1058; start_column=14; end_line=1058; end_column=49; + start_line=1069; start_column=14; end_line=1069; end_column=49; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -19269,13 +21600,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "calcul_apl_logement_foyer.résidence"] (embed_collectivite) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1067; start_column=14; end_line=1067; end_column=49; + start_line=1078; start_column=14; end_line=1078; end_column=49; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1067; start_column=14; end_line=1067; end_column=49; + start_line=1078; start_column=14; end_line=1078; end_column=49; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -19283,7 +21614,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1067; start_column=14; end_line=1067; end_column=49; + start_line=1078; start_column=14; end_line=1078; end_column=49; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -19293,7 +21624,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "calcul_apl_logement_foyer.condition_2_du_832_25"] (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4806; start_column=14; end_line=4806; end_column=61; + start_line=4811; start_column=14; end_line=4811; end_column=61; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -19303,7 +21634,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4806; start_column=14; end_line=4806; end_column=61; + start_line=4811; start_column=14; end_line=4811; end_column=61; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -19319,8 +21650,8 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5594; start_column=9; - end_line=5594; end_column=75; + start_line=5599; start_column=9; + end_line=5599; end_column=75; law_headings=["Article D861-8"; "Section 2 : Allocations de logement"; "Titre VI : Disposition particulières à l'outre-mer"; @@ -19330,8 +21661,8 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5596; start_column=5; - end_line=5602; end_column=28; + start_line=5601; start_column=5; + end_line=5607; end_column=28; law_headings=["Article D861-8"; "Section 2 : Allocations de logement"; "Titre VI : Disposition particulières à l'outre-mer"; @@ -19395,37 +21726,1081 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu let calcul_apl_logement_foyer_dot_aide_finale_formule_: money = result_.CalculAidePersonnaliseeLogementFoyer.aide_finale_formule in let calcul_apl_logement_foyer_dot_traitement_aide_finale_montant_minimal_: money -> money = result_.CalculAidePersonnaliseeLogementFoyer.traitement_aide_finale in - let montant_forfaitaire_charges_: money = (log_variable_definition - ["CalculAllocationLogementFoyer"; "montant_forfaitaire_charges"] - (embed_money) ( + let multiplicateur_majoration_charges_: decimal = (log_variable_definition + ["CalculAllocationLogementFoyer"; "multiplicateur_majoration_charges"] + (embed_decimal) ( try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1033; start_column=12; end_line=1033; end_column=39; + start_line=1041; start_column=11; end_line=1041; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1033; start_column=12; - end_line=1033; end_column=39; + start_line=1041; start_column=11; + end_line=1041; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1033; start_column=12; - end_line=1033; end_column=39; + start_line=1041; start_column=11; + end_line=1041; end_column=44; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1041; start_column=11; + end_line=1041; end_column=44; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1041; start_column=11; + end_line=1041; end_column=44; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1041; + start_column=11; + end_line=1041; end_column=44; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1041; + start_column=11; + end_line=1041; end_column=44; + law_headings= + ["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=3355; + start_column=5; + end_line=3363; end_column=35; + law_headings= + ["Article 46"; + "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2020) (10) (1)))) + (o_and + (match + residence_ + with + | + Collectivite.Guadeloupe _ -> + true + | + Collectivite.Guyane _ -> + false + | + Collectivite.Martinique _ -> + true + | + Collectivite.LaReunion _ -> + true + | + Collectivite.SaintBarthelemy _ -> + true + | + Collectivite.SaintMartin _ -> + true + | + Collectivite.Metropole _ -> + false + | + Collectivite.SaintPierreEtMiquelon _ -> + false + | + Collectivite.Mayotte _ -> + true) + (o_gte_int_int + nombre_personnes_a_charge_ + (integer_of_string + "6")))))) + (fun (_: unit) -> + decimal_of_string "6."))|]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2818; + start_column=5; + end_line=2826; end_column=35; + law_headings=["Article 46"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2021) (10) (1)))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true) + (o_gte_int_int + nombre_personnes_a_charge_ + (integer_of_string + "6")))))) + (fun (_: unit) -> + decimal_of_string "6."))|]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1743; + start_column=5; + end_line=1751; end_column=35; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2022) (1) (1)))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true) + (o_gte_int_int + nombre_personnes_a_charge_ + (integer_of_string "6")))))) + (fun (_: unit) -> + decimal_of_string "6."))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=621; start_column=5; + end_line=629; end_column=35; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true) + (o_gte_int_int + nombre_personnes_a_charge_ + (integer_of_string "6")))))) + (fun (_: unit) -> decimal_of_string "6."))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=126; start_column=5; + end_line=134; end_column=35; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2023) (1) (1)))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> true + | Collectivite.LaReunion _ -> true + | Collectivite.SaintBarthelemy _ -> true + | Collectivite.SaintMartin _ -> true + | Collectivite.Metropole _ -> false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true) + (o_gte_int_int nombre_personnes_a_charge_ + (integer_of_string "6")))))) + (fun (_: unit) -> decimal_of_string "6."))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> true) + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1041; start_column=11; + end_line=1041; end_column=44; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1041; start_column=11; + end_line=1041; end_column=44; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1041; start_column=11; + end_line=1041; end_column=44; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1591; start_column=14; + end_line=1591; end_column=47; + law_headings=["Article 40"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))))) + (fun (_: unit) -> + o_torat_int nombre_personnes_a_charge_))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=4168; start_column=14; + end_line=4168; end_column=47; + law_headings=["Article 40"; + "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))))) + (fun (_: unit) -> + o_torat_int nombre_personnes_a_charge_))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1041; start_column=11; end_line=1041; end_column=44; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]})))) in + let montant_minimal_depense_nette_d842_17_: money = (log_variable_definition + ["CalculAllocationLogementFoyer"; + "montant_minimal_dépense_nette_d842_17"] (embed_money) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1040; start_column=11; end_line=1040; end_column=48; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=4288; start_column=14; end_line=4288; end_column=51; + law_headings=["Article 44"; + "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) + (fun (_: unit) -> money_of_cents_string "1500")) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1040; start_column=11; end_line=1040; end_column=48; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]})))) in + let montant_forfaitaire_d842_15_: money = (log_variable_definition + ["CalculAllocationLogementFoyer"; "montant_forfaitaire_d842_15"] + (embed_money) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1039; start_column=11; end_line=1039; end_column=38; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=4184; start_column=14; end_line=4184; end_column=41; + law_headings=["Article 41"; + "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) + (fun (_: unit) -> money_of_cents_string "500")) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1039; start_column=11; end_line=1039; end_column=38; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]})))) in + let montant_minimal_aide_d842_15_: money = (log_variable_definition + ["CalculAllocationLogementFoyer"; "montant_minimal_aide_d842_15"] + (embed_money) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1038; start_column=11; end_line=1038; end_column=39; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=4196; start_column=14; end_line=4196; end_column=42; + law_headings=["Article 42"; + "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) + (fun (_: unit) -> money_of_cents_string "1000")) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1038; start_column=11; end_line=1038; end_column=39; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]})))) in + let equivalence_loyer_: money = (log_variable_definition + ["CalculAllocationLogementFoyer"; "équivalence_loyer"] (embed_money) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1043; start_column=12; end_line=1043; end_column=29; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1043; start_column=12; + end_line=1043; end_column=29; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=4214; start_column=6; + end_line=4214; end_column=79; + law_headings=["Article 43"; + "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + (match categorie_equivalence_loyer_d842_16_ + with + | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> + true + | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> + false)))) + (fun (_: unit) -> + match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "8708") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "13559"))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1043; start_column=12; + end_line=1043; end_column=29; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=4249; start_column=6; + end_line=4250; end_column=38; + law_headings=["Article 43"; + "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + (match categorie_equivalence_loyer_d842_16_ + with + | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ -> + true + | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> + false)))) + (fun (_: unit) -> + match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "21362") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "33196"))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1043; start_column=12; + end_line=1043; end_column=29; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1043; start_column=12; + end_line=1043; end_column=29; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4312; start_column=6; - end_line=4319; end_column=28; + start_line=4267; start_column=6; + end_line=4268; end_column=24; + law_headings=["Article 43"; + "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + (match categorie_equivalence_loyer_d842_16_ + with + | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> + true)))) + (fun (_: unit) -> + match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "17607") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "27365")))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=4231; start_column=6; + end_line=4232; end_column=46; + law_headings=["Article 43"; + "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + (match categorie_equivalence_loyer_d842_16_ + with + | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ -> + true + | CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> + false)))) + (fun (_: unit) -> + match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "17607") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "27365"))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1043; start_column=12; + end_line=1043; end_column=29; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1616; start_column=6; + end_line=1616; end_column=79; + law_headings=["Article 43"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) + (match categorie_equivalence_loyer_d842_16_ + with + | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> + true + | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> + false)))) + (fun (_: unit) -> + match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "8414") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "13100"))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1043; start_column=12; + end_line=1043; end_column=29; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1653; start_column=6; + end_line=1654; end_column=38; + law_headings=["Article 43"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) + (match categorie_equivalence_loyer_d842_16_ + with + | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ -> + true + | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> + false)))) + (fun (_: unit) -> + match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "20640") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "32073"))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1043; start_column=12; + end_line=1043; end_column=29; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1043; start_column=12; + end_line=1043; end_column=29; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1672; start_column=6; + end_line=1673; end_column=24; + law_headings=["Article 43"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) + (match categorie_equivalence_loyer_d842_16_ + with + | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> + true)))) + (fun (_: unit) -> + match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "17012") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "26440")))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1634; start_column=6; + end_line=1635; end_column=46; + law_headings=["Article 43"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) + (match categorie_equivalence_loyer_d842_16_ + with + | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ -> + true + | CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> + false)))) + (fun (_: unit) -> + match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "17012") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "26440"))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1043; start_column=12; + end_line=1043; end_column=29; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2689; start_column=6; + end_line=2689; end_column=79; + law_headings=["Article 43"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1)))) + (match categorie_equivalence_loyer_d842_16_ + with + | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> + true + | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> + false)))) + (fun (_: unit) -> + match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "8379") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "13045"))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1043; start_column=12; + end_line=1043; end_column=29; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2726; start_column=6; + end_line=2727; end_column=38; + law_headings=["Article 43"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1)))) + (match categorie_equivalence_loyer_d842_16_ + with + | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ -> + true + | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> + false)))) + (fun (_: unit) -> + match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "20554") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "31939"))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1043; start_column=12; + end_line=1043; end_column=29; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1043; start_column=12; + end_line=1043; end_column=29; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2745; start_column=6; + end_line=2746; end_column=24; + law_headings=["Article 43"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1)))) + (match categorie_equivalence_loyer_d842_16_ + with + | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> + true)))) + (fun (_: unit) -> + match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "16941") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "26329")))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2707; start_column=6; + end_line=2708; end_column=46; + law_headings=["Article 43"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1)))) + (match categorie_equivalence_loyer_d842_16_ + with + | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ -> + true + | CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ -> + false + | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> + false)))) + (fun (_: unit) -> + match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "16941") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "26329")))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1043; start_column=12; end_line=1043; end_column=29; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]})))) in + let calcul_equivalence_loyer_minimale_dot_date_courante_: date = + try ((log_variable_definition + ["CalculAllocationLogementFoyer"; + "calcul_équivalence_loyer_minimale.date_courante"] (embed_date) + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1082; start_column=14; end_line=1082; end_column=61; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1082; start_column=14; end_line=1082; end_column=61; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} true)) + (fun (_: unit) -> date_courante_)))) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1082; start_column=14; end_line=1082; end_column=61; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]})) in + let calcul_equivalence_loyer_minimale_dot_ressources_menage_arrondies_: money = + try ((log_variable_definition + ["CalculAllocationLogementFoyer"; + "calcul_équivalence_loyer_minimale.ressources_ménage_arrondies"] + (embed_money) + (handle_default + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4833; start_column=14; end_line=4833; end_column=75; + law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4833; start_column=14; end_line=4833; end_column=75; + law_headings=["Article D842-15"; + "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) (fun (_: unit) -> ressources_menage_arrondies_)))) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4833; start_column=14; end_line=4833; end_column=75; + law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in + let calcul_equivalence_loyer_minimale_dot_condition_2_du_832_25_: bool = + try ((log_variable_definition + ["CalculAllocationLogementFoyer"; + "calcul_équivalence_loyer_minimale.condition_2_du_832_25"] + (embed_bool) + (handle_default + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4832; start_column=14; end_line=4832; end_column=69; + law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4832; start_column=14; end_line=4832; end_column=69; + law_headings=["Article D842-15"; + "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) (fun (_: unit) -> true)))) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4832; start_column=14; end_line=4832; end_column=69; + law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in + let calcul_equivalence_loyer_minimale_dot_n_nombre_parts_d832_25_: decimal = + try ((log_variable_definition + ["CalculAllocationLogementFoyer"; + "calcul_équivalence_loyer_minimale.n_nombre_parts_d832_25"] + (embed_decimal) + (handle_default + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4843; start_column=14; end_line=4843; end_column=70; + law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4843; start_column=14; end_line=4843; end_column=70; + law_headings=["Article D842-15"; + "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) + (fun (_: unit) -> calcul_nombre_parts_dot_n_nombre_parts_d832_25_)))) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4843; start_column=14; end_line=4843; end_column=70; + law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in + let result_: CalculEquivalenceLoyerMinimale.t = (log_end_call + ["CalculAllocationLogementFoyer"; "calcul_équivalence_loyer_minimale"; + "CalculÉquivalenceLoyerMinimale"] ((log_begin_call + ["CalculAllocationLogementFoyer"; "calcul_équivalence_loyer_minimale"; + "CalculÉquivalenceLoyerMinimale"] calcul_equivalence_loyer_minimale) + ({CalculEquivalenceLoyerMinimaleIn.date_courante_in = + calcul_equivalence_loyer_minimale_dot_date_courante_; + CalculEquivalenceLoyerMinimaleIn.ressources_menage_arrondies_in = + calcul_equivalence_loyer_minimale_dot_ressources_menage_arrondies_; + CalculEquivalenceLoyerMinimaleIn.condition_2_du_832_25_in = + calcul_equivalence_loyer_minimale_dot_condition_2_du_832_25_; + CalculEquivalenceLoyerMinimaleIn.n_nombre_parts_d832_25_in = + calcul_equivalence_loyer_minimale_dot_n_nombre_parts_d832_25_}))) in + let calcul_equivalence_loyer_minimale_dot_montant_: money = result_.CalculEquivalenceLoyerMinimale.montant in + let coefficient_prise_en_charge_: decimal = (log_variable_definition + ["CalculAllocationLogementFoyer"; "coefficient_prise_en_charge"] + (embed_decimal) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1042; start_column=12; end_line=1042; end_column=39; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4814; start_column=14; end_line=4814; end_column=41; + law_headings=["Article D842-15"; + "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) + (fun (_: unit) -> + calcul_apl_logement_foyer_dot_coefficient_prise_en_charge_d832_25_seuil_)) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1042; start_column=12; end_line=1042; end_column=39; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]})))) in + let montant_forfaitaire_charges_: money = (log_variable_definition + ["CalculAllocationLogementFoyer"; "montant_forfaitaire_charges"] + (embed_money) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1044; start_column=12; end_line=1044; end_column=39; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1044; start_column=12; + end_line=1044; end_column=39; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1044; start_column=12; + end_line=1044; end_column=39; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=4396; start_column=6; + end_line=4403; end_column=28; law_headings=["Article 46"; "Chapitre IX : Calcul des allocations de logement en outre-mer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -19447,70 +22822,22 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (fun (_: unit) -> o_add_mon_mon (money_of_cents_string "3767") (o_mult_mon_rat (money_of_cents_string "969") - (o_torat_int nombre_personnes_a_charge_)))); + multiplicateur_majoration_charges_))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1033; start_column=12; - end_line=1033; end_column=39; + start_line=1044; start_column=12; + end_line=1044; end_column=39; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=149; start_column=6; - end_line=156; end_column=28; + start_line=282; start_column=6; + end_line=289; end_column=28; law_headings=["Article 46"; - "Articles en vigueur du 1er juillet 2022 au 31 décembre 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))) - (o_lt_dat_dat date_courante_ - (date_of_numbers (2023) (1) (1)))) - (match residence_ - with - | Collectivite.Guadeloupe _ -> true - | Collectivite.Guyane _ -> false - | Collectivite.Martinique _ -> true - | Collectivite.LaReunion _ -> true - | Collectivite.SaintBarthelemy _ -> true - | Collectivite.SaintMartin _ -> true - | Collectivite.Metropole _ -> false - | Collectivite.SaintPierreEtMiquelon _ -> - false - | Collectivite.Mayotte _ -> true)))) - (fun (_: unit) -> - (let montant_ : money = - (o_add_mon_mon (money_of_cents_string "5612") - (o_mult_mon_rat (money_of_cents_string - "1272") - (o_torat_int nombre_personnes_a_charge_))) - in - (let limite_ : money = - (o_add_mon_mon (money_of_cents_string "5612") - (o_mult_mon_rat (money_of_cents_string - "1272") (decimal_of_string "6."))) - in - ( if (o_gt_mon_mon montant_ limite_) then - limite_ else montant_))))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1033; start_column=12; - end_line=1033; end_column=39; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=295; start_column=6; - end_line=302; end_column=28; - law_headings=["Article 46"; - "Articles en vigueur du 1er juillet 2022 au 31 décembre 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; + "Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_and @@ -19542,6 +22869,202 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (o_mult_mon_rat (money_of_cents_string "969") (decimal_of_string "6."))) in + ( if (o_gt_mon_mon montant_ limite_) then + limite_ else montant_))))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1044; start_column=12; + end_line=1044; end_column=39; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1044; start_column=12; + end_line=1044; end_column=39; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1901; start_column=6; + end_line=1908; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> true + | Collectivite.LaReunion _ -> true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> true + | Collectivite.Metropole _ -> false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true)))) + (fun (_: unit) -> + (let montant_ : money = + (o_add_mon_mon (money_of_cents_string + "3640") + (o_mult_mon_rat + (money_of_cents_string "936") + (o_torat_int + nombre_personnes_a_charge_))) + in + (let limite_ : money = + (o_add_mon_mon (money_of_cents_string + "3640") + (o_mult_mon_rat + (money_of_cents_string "936") + (decimal_of_string "6."))) + in + ( if (o_gt_mon_mon montant_ limite_) then + limite_ else montant_)))))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=780; start_column=6; + end_line=787; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> true + | Collectivite.LaReunion _ -> true + | Collectivite.SaintBarthelemy _ -> true + | Collectivite.SaintMartin _ -> true + | Collectivite.Metropole _ -> false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true)))) + (fun (_: unit) -> + (let montant_ : money = + (o_add_mon_mon (money_of_cents_string "3640") + (o_mult_mon_rat (money_of_cents_string + "936") + (o_torat_int nombre_personnes_a_charge_))) + in + (let limite_ : money = + (o_add_mon_mon (money_of_cents_string "3640") + (o_mult_mon_rat (money_of_cents_string + "936") (decimal_of_string "6."))) + in + ( if (o_gt_mon_mon montant_ limite_) then + limite_ else montant_))))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1044; start_column=12; + end_line=1044; end_column=39; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2976; start_column=6; + end_line=2983; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> true + | Collectivite.LaReunion _ -> true + | Collectivite.SaintBarthelemy _ -> true + | Collectivite.SaintMartin _ -> true + | Collectivite.Metropole _ -> false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true)))) + (fun (_: unit) -> + (let montant_ : money = + (o_add_mon_mon (money_of_cents_string "3625") + (o_mult_mon_rat (money_of_cents_string + "932") + (o_torat_int nombre_personnes_a_charge_))) + in + (let limite_ : money = + (o_add_mon_mon (money_of_cents_string "3625") + (o_mult_mon_rat (money_of_cents_string + "932") (decimal_of_string "6."))) + in + ( if (o_gt_mon_mon montant_ limite_) then + limite_ else montant_))))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1044; start_column=12; + end_line=1044; end_column=39; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=3514; start_column=6; + end_line=3521; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> true + | Collectivite.LaReunion _ -> true + | Collectivite.SaintBarthelemy _ -> true + | Collectivite.SaintMartin _ -> true + | Collectivite.Metropole _ -> false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true)))) + (fun (_: unit) -> + (let montant_ : money = + (o_add_mon_mon (money_of_cents_string "3614") + (o_mult_mon_rat (money_of_cents_string + "929") + (o_torat_int nombre_personnes_a_charge_))) + in + (let limite_ : money = + (o_add_mon_mon (money_of_cents_string "3614") + (o_mult_mon_rat (money_of_cents_string + "929") (decimal_of_string "6."))) + in ( if (o_gt_mon_mon montant_ limite_) then limite_ else montant_)))))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) @@ -19549,24 +23072,24 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1033; start_column=12; - end_line=1033; end_column=39; + start_line=1044; start_column=12; + end_line=1044; end_column=39; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1033; start_column=12; - end_line=1033; end_column=39; + start_line=1044; start_column=12; + end_line=1044; end_column=39; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4085; start_column=29; - end_line=4085; end_column=56; + start_line=4171; start_column=29; + end_line=4171; end_column=56; law_headings=["Article 40"; "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -19579,22 +23102,22 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (money_of_cents_string "5612") else (o_add_mon_mon (money_of_cents_string "5612") (o_mult_mon_rat (money_of_cents_string "1272") - (o_torat_int nombre_personnes_a_charge_))))); + multiplicateur_majoration_charges_)))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1033; start_column=12; - end_line=1033; end_column=39; + start_line=1044; start_column=12; + end_line=1044; end_column=39; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1095; start_column=29; - end_line=1095; end_column=56; + start_line=1594; start_column=29; + end_line=1594; end_column=56; law_headings=["Article 40"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -19608,22 +23131,22 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (money_of_cents_string "5422") else (o_add_mon_mon (money_of_cents_string "5422") (o_mult_mon_rat (money_of_cents_string "1229") - (o_torat_int nombre_personnes_a_charge_))))); + multiplicateur_majoration_charges_)))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1033; start_column=12; - end_line=1033; end_column=39; + start_line=1044; start_column=12; + end_line=1044; end_column=39; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2045; start_column=29; - end_line=2045; end_column=56; + start_line=2664; start_column=29; + end_line=2664; end_column=56; law_headings=["Article 40"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -19642,471 +23165,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1033; start_column=12; end_line=1033; end_column=39; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})))) in - let equivalence_loyer_: money = (log_variable_definition - ["CalculAllocationLogementFoyer"; "équivalence_loyer"] (embed_money) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1032; start_column=12; end_line=1032; end_column=29; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} - ([|(fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1032; start_column=12; - end_line=1032; end_column=29; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4127; start_column=6; - end_line=4127; end_column=79; - law_headings=["Article 43"; - "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))) - (match categorie_equivalence_loyer_d842_16_ - with - | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> - true - | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> - false)))) - (fun (_: unit) -> - match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "8708") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "13559"))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1032; start_column=12; - end_line=1032; end_column=29; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4162; start_column=6; - end_line=4163; end_column=38; - law_headings=["Article 43"; - "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))) - (match categorie_equivalence_loyer_d842_16_ - with - | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ -> - true - | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> - false)))) - (fun (_: unit) -> - match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "21362") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "33196"))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1032; start_column=12; - end_line=1032; end_column=29; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} - ([|(fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1032; start_column=12; - end_line=1032; end_column=29; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4180; start_column=6; - end_line=4181; end_column=24; - law_headings=["Article 43"; - "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))) - (match categorie_equivalence_loyer_d842_16_ - with - | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> - true)))) - (fun (_: unit) -> - match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "17607") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "27365")))|]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4144; start_column=6; - end_line=4145; end_column=46; - law_headings=["Article 43"; - "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))) - (match categorie_equivalence_loyer_d842_16_ - with - | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ -> - true - | CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> - false)))) - (fun (_: unit) -> - match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "17607") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "27365"))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1032; start_column=12; - end_line=1032; end_column=29; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1118; start_column=6; - end_line=1118; end_column=79; - law_headings=["Article 43"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1))) - (o_lt_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1)))) - (match categorie_equivalence_loyer_d842_16_ - with - | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> - true - | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> - false)))) - (fun (_: unit) -> - match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "8414") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "13100"))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1032; start_column=12; - end_line=1032; end_column=29; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1155; start_column=6; - end_line=1156; end_column=38; - law_headings=["Article 43"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1))) - (o_lt_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1)))) - (match categorie_equivalence_loyer_d842_16_ - with - | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ -> - true - | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> - false)))) - (fun (_: unit) -> - match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "20640") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "32073"))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1032; start_column=12; - end_line=1032; end_column=29; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} - ([|(fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1032; start_column=12; - end_line=1032; end_column=29; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1174; start_column=6; - end_line=1175; end_column=24; - law_headings=["Article 43"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1))) - (o_lt_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1)))) - (match categorie_equivalence_loyer_d842_16_ - with - | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> - true)))) - (fun (_: unit) -> - match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "17012") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "26440")))|]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1136; start_column=6; - end_line=1137; end_column=46; - law_headings=["Article 43"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1))) - (o_lt_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1)))) - (match categorie_equivalence_loyer_d842_16_ - with - | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ -> - true - | CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> - false)))) - (fun (_: unit) -> - match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "17012") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "26440"))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1032; start_column=12; - end_line=1032; end_column=29; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2070; start_column=6; - end_line=2070; end_column=79; - law_headings=["Article 43"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) - (o_lt_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1)))) - (match categorie_equivalence_loyer_d842_16_ - with - | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> - true - | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> - false)))) - (fun (_: unit) -> - match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "8379") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "13045"))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1032; start_column=12; - end_line=1032; end_column=29; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2107; start_column=6; - end_line=2108; end_column=38; - law_headings=["Article 43"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) - (o_lt_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1)))) - (match categorie_equivalence_loyer_d842_16_ - with - | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ -> - true - | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> - false)))) - (fun (_: unit) -> - match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "20554") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "31939"))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1032; start_column=12; - end_line=1032; end_column=29; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} - ([|(fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1032; start_column=12; - end_line=1032; end_column=29; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2126; start_column=6; - end_line=2127; end_column=24; - law_headings=["Article 43"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) - (o_lt_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1)))) - (match categorie_equivalence_loyer_d842_16_ - with - | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> - true)))) - (fun (_: unit) -> - match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "16941") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "26329")))|]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2088; start_column=6; - end_line=2089; end_column=46; - law_headings=["Article 43"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) - (o_lt_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1)))) - (match categorie_equivalence_loyer_d842_16_ - with - | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUSRehabilitee _ -> - true - | CategorieEquivalenceLoyerAllocationLogementFoyer.PersonnesAgeesSelon3DeD842_16 _ -> - false - | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> - false)))) - (fun (_: unit) -> - match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "16941") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "26329")))|]) - (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1032; start_column=12; end_line=1032; end_column=29; + start_line=1044; start_column=12; end_line=1044; end_column=39; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -20118,15 +23177,15 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1047; start_column=10; - end_line=1047; end_column=32; + start_line=1058; start_column=10; + end_line=1058; end_column=32; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4848; start_column=14; - end_line=4848; end_column=36; + start_line=4853; start_column=14; + end_line=4853; end_column=36; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -20145,177 +23204,29 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1047; start_column=10; end_line=1047; end_column=32; + start_line=1058; start_column=10; end_line=1058; end_column=32; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1047; start_column=10; end_line=1047; end_column=32; + start_line=1058; start_column=10; end_line=1058; end_column=32; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in - let calcul_equivalence_loyer_minimale_dot_date_courante_: date = - try ((log_variable_definition - ["CalculAllocationLogementFoyer"; - "calcul_équivalence_loyer_minimale.date_courante"] (embed_date) - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1071; start_column=14; end_line=1071; end_column=61; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1071; start_column=14; end_line=1071; end_column=61; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} true)) - (fun (_: unit) -> date_courante_)))) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1071; start_column=14; end_line=1071; end_column=61; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in - let calcul_equivalence_loyer_minimale_dot_ressources_menage_arrondies_: money = - try ((log_variable_definition - ["CalculAllocationLogementFoyer"; - "calcul_équivalence_loyer_minimale.ressources_ménage_arrondies"] - (embed_money) - (handle_default - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4828; start_column=14; end_line=4828; end_column=75; - law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; - "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; - "Titre IV : Allocations de Logement"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4828; start_column=14; end_line=4828; end_column=75; - law_headings=["Article D842-15"; - "Section 3 : Logements-foyers"; - "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; - "Titre IV : Allocations de Logement"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]} - true)) (fun (_: unit) -> ressources_menage_arrondies_)))) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4828; start_column=14; end_line=4828; end_column=75; - law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; - "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; - "Titre IV : Allocations de Logement"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]})) in - let calcul_equivalence_loyer_minimale_dot_condition_2_du_832_25_: bool = - try ((log_variable_definition - ["CalculAllocationLogementFoyer"; - "calcul_équivalence_loyer_minimale.condition_2_du_832_25"] - (embed_bool) - (handle_default - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4827; start_column=14; end_line=4827; end_column=69; - law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; - "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; - "Titre IV : Allocations de Logement"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4827; start_column=14; end_line=4827; end_column=69; - law_headings=["Article D842-15"; - "Section 3 : Logements-foyers"; - "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; - "Titre IV : Allocations de Logement"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]} - true)) (fun (_: unit) -> true)))) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4827; start_column=14; end_line=4827; end_column=69; - law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; - "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; - "Titre IV : Allocations de Logement"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]})) in - let calcul_equivalence_loyer_minimale_dot_n_nombre_parts_d832_25_: decimal = - try ((log_variable_definition - ["CalculAllocationLogementFoyer"; - "calcul_équivalence_loyer_minimale.n_nombre_parts_d832_25"] - (embed_decimal) - (handle_default - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4838; start_column=14; end_line=4838; end_column=70; - law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; - "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; - "Titre IV : Allocations de Logement"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4838; start_column=14; end_line=4838; end_column=70; - law_headings=["Article D842-15"; - "Section 3 : Logements-foyers"; - "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; - "Titre IV : Allocations de Logement"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]} - true)) - (fun (_: unit) -> calcul_nombre_parts_dot_n_nombre_parts_d832_25_)))) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4838; start_column=14; end_line=4838; end_column=70; - law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; - "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; - "Titre IV : Allocations de Logement"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]})) in - let result_: CalculEquivalenceLoyerMinimale.t = (log_end_call - ["CalculAllocationLogementFoyer"; "calcul_équivalence_loyer_minimale"; - "CalculÉquivalenceLoyerMinimale"] ((log_begin_call - ["CalculAllocationLogementFoyer"; "calcul_équivalence_loyer_minimale"; - "CalculÉquivalenceLoyerMinimale"] calcul_equivalence_loyer_minimale) - ({CalculEquivalenceLoyerMinimaleIn.date_courante_in = - calcul_equivalence_loyer_minimale_dot_date_courante_; - CalculEquivalenceLoyerMinimaleIn.ressources_menage_arrondies_in = - calcul_equivalence_loyer_minimale_dot_ressources_menage_arrondies_; - CalculEquivalenceLoyerMinimaleIn.condition_2_du_832_25_in = - calcul_equivalence_loyer_minimale_dot_condition_2_du_832_25_; - CalculEquivalenceLoyerMinimaleIn.n_nombre_parts_d832_25_in = - calcul_equivalence_loyer_minimale_dot_n_nombre_parts_d832_25_}))) in - let calcul_equivalence_loyer_minimale_dot_montant_: money = result_.CalculEquivalenceLoyerMinimale.montant in - let coefficient_prise_en_charge_: decimal = (log_variable_definition - ["CalculAllocationLogementFoyer"; "coefficient_prise_en_charge"] - (embed_decimal) ( + let loyer_minimal_: money = (log_variable_definition + ["CalculAllocationLogementFoyer"; "loyer_minimal"] (embed_money) ( try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1031; start_column=12; end_line=1031; end_column=39; + start_line=1045; start_column=12; end_line=1045; end_column=25; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4809; start_column=14; end_line=4809; end_column=41; + start_line=4845; start_column=14; end_line=4845; end_column=27; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -20324,12 +23235,11 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: unit) -> - calcul_apl_logement_foyer_dot_coefficient_prise_en_charge_d832_25_seuil_)) + (fun (_: unit) -> calcul_equivalence_loyer_minimale_dot_montant_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1031; start_column=12; end_line=1031; end_column=39; + start_line=1045; start_column=12; end_line=1045; end_column=25; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -20341,15 +23251,15 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1024; start_column=11; - end_line=1024; end_column=33; + start_line=1034; start_column=11; + end_line=1034; end_column=33; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4960; start_column=14; - end_line=4960; end_column=36; + start_line=4965; start_column=14; + end_line=4965; end_column=36; law_headings=["Article D842-17"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -20365,29 +23275,29 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1024; start_column=11; end_line=1024; end_column=33; + start_line=1034; start_column=11; end_line=1034; end_column=33; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1024; start_column=11; end_line=1024; end_column=33; + start_line=1034; start_column=11; end_line=1034; end_column=33; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in - let loyer_minimal_: money = (log_variable_definition - ["CalculAllocationLogementFoyer"; "loyer_minimal"] (embed_money) ( + let aide_finale_formule_: money = (log_variable_definition + ["CalculAllocationLogementFoyer"; "aide_finale_formule"] (embed_money) ( try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1034; start_column=12; end_line=1034; end_column=25; + start_line=1055; start_column=12; end_line=1055; end_column=31; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4840; start_column=14; end_line=4840; end_column=27; + start_line=4793; start_column=14; end_line=4793; end_column=33; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -20396,11 +23306,16 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: unit) -> calcul_equivalence_loyer_minimale_dot_montant_)) + (fun (_: unit) -> + o_mult_mon_rat + (o_sub_mon_mon + (o_add_mon_mon equivalence_loyer_ + montant_forfaitaire_charges_) loyer_minimal_) + coefficient_prise_en_charge_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1034; start_column=12; end_line=1034; end_column=25; + start_line=1055; start_column=12; end_line=1055; end_column=31; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -20412,15 +23327,15 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1026; start_column=11; - end_line=1026; end_column=44; + start_line=1036; start_column=11; + end_line=1036; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4969; start_column=14; - end_line=4969; end_column=47; + start_line=4974; start_column=14; + end_line=4974; end_column=47; law_headings=["Article D842-17"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -20461,47 +23376,14 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1026; start_column=11; end_line=1026; end_column=44; + start_line=1036; start_column=11; end_line=1036; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1026; start_column=11; end_line=1026; end_column=44; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})))) in - let aide_finale_formule_: money = (log_variable_definition - ["CalculAllocationLogementFoyer"; "aide_finale_formule"] (embed_money) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1044; start_column=12; end_line=1044; end_column=31; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4788; start_column=14; end_line=4788; end_column=33; - law_headings=["Article D842-15"; - "Section 3 : Logements-foyers"; - "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; - "Titre IV : Allocations de Logement"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]} - true)) - (fun (_: unit) -> - o_mult_mon_rat - (o_sub_mon_mon - (o_add_mon_mon equivalence_loyer_ - montant_forfaitaire_charges_) loyer_minimal_) - coefficient_prise_en_charge_)) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1044; start_column=12; end_line=1044; end_column=31; + start_line=1036; start_column=11; end_line=1036; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -20513,15 +23395,15 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1048; start_column=10; - end_line=1048; end_column=32; + start_line=1059; start_column=10; + end_line=1059; end_column=32; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4862; start_column=14; - end_line=4862; end_column=36; + start_line=4867; start_column=14; + end_line=4867; end_column=36; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -20569,14 +23451,14 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1048; start_column=10; end_line=1048; end_column=32; + start_line=1059; start_column=10; end_line=1059; end_column=32; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1048; start_column=10; end_line=1048; end_column=32; + start_line=1059; start_column=10; end_line=1059; end_column=32; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -20588,15 +23470,15 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1049; start_column=10; - end_line=1049; end_column=19; + start_line=1060; start_column=10; + end_line=1060; end_column=19; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4880; start_column=14; - end_line=4880; end_column=36; + start_line=4885; start_column=14; + end_line=4885; end_column=36; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -20626,14 +23508,14 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1049; start_column=10; end_line=1049; end_column=19; + start_line=1060; start_column=10; end_line=1060; end_column=19; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1049; start_column=10; end_line=1049; end_column=19; + start_line=1060; start_column=10; end_line=1060; end_column=19; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -20646,15 +23528,15 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1050; start_column=10; - end_line=1050; end_column=40; + start_line=1061; start_column=10; + end_line=1061; end_column=40; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4894; start_column=14; - end_line=4894; end_column=36; + start_line=4899; start_column=14; + end_line=4899; end_column=36; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -20704,14 +23586,14 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1050; start_column=10; end_line=1050; end_column=40; + start_line=1061; start_column=10; end_line=1061; end_column=40; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1050; start_column=10; end_line=1050; end_column=40; + start_line=1061; start_column=10; end_line=1061; end_column=40; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -20723,15 +23605,15 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1051; start_column=10; - end_line=1051; end_column=25; + start_line=1062; start_column=10; + end_line=1062; end_column=25; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4915; start_column=14; - end_line=4915; end_column=36; + start_line=4920; start_column=14; + end_line=4920; end_column=36; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -20762,14 +23644,14 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1051; start_column=10; end_line=1051; end_column=25; + start_line=1062; start_column=10; end_line=1062; end_column=25; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1051; start_column=10; end_line=1051; end_column=25; + start_line=1062; start_column=10; end_line=1062; end_column=25; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -20780,15 +23662,15 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1075; start_column=13; - end_line=1075; end_column=42; + start_line=1086; start_column=13; + end_line=1086; end_column=42; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) then () else raise (AssertionFailed {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1075; start_column=13; - end_line=1075; end_column=42; + start_line=1086; start_column=13; + end_line=1086; end_column=42; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}) in @@ -20818,37 +23700,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a let charges_mensuelles_pret_: money = calcul_allocation_logement_accession_propriete_in.CalculAllocationLogementAccessionProprieteIn.charges_mensuelles_pret_in in let copropriete_: bool = calcul_allocation_logement_accession_propriete_in.CalculAllocationLogementAccessionProprieteIn.copropriete_in in let operations_logement_evolutifs_sociaux_accession_propriete_aidee__etat_: bool = calcul_allocation_logement_accession_propriete_in.CalculAllocationLogementAccessionProprieteIn.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in in - let montant_forfaitaire_d842_6_: money = (log_variable_definition - ["CalculAllocationLogementAccessionPropriété"; - "montant_forfaitaire_d842_6"] (embed_money) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=943; start_column=11; end_line=943; end_column=37; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3971; start_column=14; end_line=3971; end_column=40; - law_headings=["Article 35"; - "Chapitre IV : Calcul des allocations de logement en secteur accession"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: unit) -> money_of_cents_string "500")) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=943; start_column=11; end_line=943; end_column=37; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})))) in let taux_francs_vers_euros_: decimal = (log_variable_definition ["CalculAllocationLogementAccessionPropriété"; "taux_francs_vers_euros"] (embed_decimal) ( try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=946; start_column=11; end_line=946; end_column=33; + start_line=955; start_column=11; end_line=955; end_column=33; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -20864,127 +23722,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=946; start_column=11; end_line=946; end_column=33; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})))) in - let montant_minimal_aide_d842_6_: money = (log_variable_definition - ["CalculAllocationLogementAccessionPropriété"; - "montant_minimal_aide_d842_6"] (embed_money) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=951; start_column=11; end_line=951; end_column=38; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3981; start_column=14; end_line=3981; end_column=41; - law_headings=["Article 36"; - "Chapitre IV : Calcul des allocations de logement en secteur accession"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: unit) -> money_of_cents_string "1000")) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=951; start_column=11; end_line=951; end_column=38; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})))) in - let montant_forfaitaire_d842_11_: money = (log_variable_definition - ["CalculAllocationLogementAccessionPropriété"; - "montant_forfaitaire_d842_11"] (embed_money) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=952; start_column=11; end_line=952; end_column=38; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4036; start_column=14; end_line=4036; end_column=41; - law_headings=["Article 38"; - "Chapitre IV : Calcul des allocations de logement en secteur accession"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: unit) -> money_of_cents_string "1500")) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=952; start_column=11; end_line=952; end_column=38; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})))) in - let montant_forfaitaire_d842_12_: money = (log_variable_definition - ["CalculAllocationLogementAccessionPropriété"; - "montant_forfaitaire_d842_12"] (embed_money) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=953; start_column=11; end_line=953; end_column=38; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4061; start_column=14; end_line=4061; end_column=41; - law_headings=["Article 39"; - "Chapitre IV : Calcul des allocations de logement en secteur accession"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: unit) -> money_of_cents_string "390000")) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=953; start_column=11; end_line=953; end_column=38; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})))) in - let coefficient_d842_11_: decimal = (log_variable_definition - ["CalculAllocationLogementAccessionPropriété"; "coefficient_d842_11"] - (embed_decimal) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=954; start_column=11; end_line=954; end_column=30; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4043; start_column=14; end_line=4043; end_column=33; - law_headings=["Article 38"; - "Chapitre IV : Calcul des allocations de logement en secteur accession"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: unit) -> decimal_of_string "0.0234")) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=954; start_column=11; end_line=954; end_column=30; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})))) in - let coefficient_d842_12_: decimal = (log_variable_definition - ["CalculAllocationLogementAccessionPropriété"; "coefficient_d842_12"] - (embed_decimal) ( - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=955; start_column=11; end_line=955; end_column=30; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4054; start_column=14; end_line=4054; end_column=33; - law_headings=["Article 39"; - "Chapitre IV : Calcul des allocations de logement en secteur accession"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: unit) -> decimal_of_string "16.25")) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=955; start_column=11; end_line=955; end_column=30; + start_line=955; start_column=11; end_line=955; end_column=33; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -20994,7 +23732,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "calcul_nombre_parts.nombre_personnes_à_charge"] (embed_integer) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4445; start_column=14; end_line=4445; end_column=59; + start_line=4447; start_column=14; end_line=4447; end_column=59; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -21005,7 +23743,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4445; start_column=14; end_line=4445; end_column=59; + start_line=4447; start_column=14; end_line=4447; end_column=59; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -21017,7 +23755,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4445; start_column=14; end_line=4445; end_column=59; + start_line=4447; start_column=14; end_line=4447; end_column=59; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -21032,7 +23770,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (embed_situation_familiale_calcul_a_p_l) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4447; start_column=14; end_line=4447; end_column=64; + start_line=4449; start_column=14; end_line=4449; end_column=64; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -21043,7 +23781,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4447; start_column=14; end_line=4447; end_column=64; + start_line=4449; start_column=14; end_line=4449; end_column=64; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -21055,7 +23793,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4447; start_column=14; end_line=4447; end_column=64; + start_line=4449; start_column=14; end_line=4449; end_column=64; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -21080,13 +23818,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "contributions_sociales.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=999; start_column=14; end_line=999; end_column=50; + start_line=1009; start_column=14; end_line=1009; end_column=50; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=999; start_column=14; end_line=999; end_column=50; + start_line=1009; start_column=14; end_line=1009; end_column=50; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -21094,7 +23832,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=999; start_column=14; end_line=999; end_column=50; + start_line=1009; start_column=14; end_line=1009; end_column=50; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -21109,550 +23847,480 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ({ContributionsSocialesAidesPersonnelleLogementIn.date_courante_in = contributions_sociales_dot_date_courante_}))) in let contributions_sociales_dot_montant_: money -> money = result_.ContributionsSocialesAidesPersonnelleLogement.montant in - let montant_forfaitaire_charges_: money = (log_variable_definition + let multiplicateur_majoration_charges_: decimal = (log_variable_definition ["CalculAllocationLogementAccessionPropriété"; - "montant_forfaitaire_charges"] (embed_money) ( + "multiplicateur_majoration_charges"] (embed_decimal) ( try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=11; end_line=935; end_column=38; + start_line=966; start_column=11; end_line=966; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=11; - end_line=935; end_column=38; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=127; start_column=5; - end_line=138; end_column=20; - law_headings=["Article 46"; - "Articles en vigueur du 1er juillet 2022 au 31 décembre 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))) - (o_lt_dat_dat date_courante_ - (date_of_numbers (2023) (1) (1)))) - (o_and - (match residence_ - with - | Collectivite.Guadeloupe _ -> true - | Collectivite.Guyane _ -> false - | Collectivite.Martinique _ -> true - | Collectivite.LaReunion _ -> true - | Collectivite.SaintBarthelemy _ -> true - | Collectivite.SaintMartin _ -> true - | Collectivite.Metropole _ -> false - | Collectivite.SaintPierreEtMiquelon _ -> false - | Collectivite.Mayotte _ -> true) - (o_not copropriete_))))) - (fun (_: unit) -> - (let montant_ : money = - (o_add_mon_mon (money_of_cents_string "5612") - (o_mult_mon_rat (money_of_cents_string "1272") - (o_torat_int nombre_personnes_a_charge_))) - in - (let limite_ : money = - (o_add_mon_mon (money_of_cents_string "5612") - (o_mult_mon_rat (money_of_cents_string "1272") - (decimal_of_string "6."))) - in - ( if (o_gt_mon_mon montant_ limite_) then limite_ else - montant_))))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=11; - end_line=935; end_column=38; + start_line=966; start_column=11; + end_line=966; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=11; - end_line=935; end_column=38; + start_line=966; start_column=11; + end_line=966; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=11; - end_line=935; end_column=38; + start_line=966; start_column=11; + end_line=966; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=11; - end_line=935; end_column=38; + start_line=966; start_column=11; + end_line=966; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> - (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4357; - start_column=6; - end_line=4364; end_column=28; - law_headings=["Article 46"; - "Chapitre IX : Calcul des allocations de logement en outre-mer"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2023) (1) (1))) - (match residence_ - with - | Collectivite.Guadeloupe _ -> - true - | Collectivite.Guyane _ -> - false - | Collectivite.Martinique _ -> - true - | Collectivite.LaReunion _ -> - true - | Collectivite.SaintBarthelemy _ -> - true - | Collectivite.SaintMartin _ -> - true - | Collectivite.Metropole _ -> - false - | Collectivite.SaintPierreEtMiquelon _ -> - false - | Collectivite.Mayotte _ -> - true)))) - (fun (_: unit) -> - o_add_mon_mon - (match - situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string - "1938") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string - "3767")) - (o_mult_mon_rat - (money_of_cents_string - "969") - (o_torat_int - nombre_personnes_a_charge_)))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=11; - end_line=935; end_column=38; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} - ([||]) + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=966; + start_column=11; + end_line=966; end_column=44; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=966; + start_column=11; + end_line=966; end_column=44; + law_headings= + ["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=3340; + start_column=5; + end_line=3348; end_column=35; + law_headings= + ["Article 46"; + "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2020) (10) (1)))) + (o_and + (match + residence_ + with + | + Collectivite.Guadeloupe _ -> + true + | + Collectivite.Guyane _ -> + false + | + Collectivite.Martinique _ -> + true + | + Collectivite.LaReunion _ -> + true + | + Collectivite.SaintBarthelemy _ -> + true + | + Collectivite.SaintMartin _ -> + true + | + Collectivite.Metropole _ -> + false + | + Collectivite.SaintPierreEtMiquelon _ -> + false + | + Collectivite.Mayotte _ -> + true) + (o_gte_int_int + nombre_personnes_a_charge_ + (integer_of_string + "6")))))) + (fun (_: unit) -> + decimal_of_string "6."))|]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2803; + start_column=5; + end_line=2811; end_column=35; + law_headings=["Article 46"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2021) (10) (1)))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true) + (o_gte_int_int + nombre_personnes_a_charge_ + (integer_of_string + "6")))))) + (fun (_: unit) -> + decimal_of_string "6."))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=356; start_column=6; - end_line=363; end_column=28; + start_line=1728; + start_column=5; + end_line=1736; end_column=35; law_headings=["Article 46"; - "Articles en vigueur du 1er juillet 2022 au 31 décembre 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))) + (date_of_numbers (2021) (10) (1))) (o_lt_dat_dat date_courante_ - (date_of_numbers (2023) (1) (1)))) - (match residence_ - with - | Collectivite.Guadeloupe _ -> - true - | Collectivite.Guyane _ -> - false - | Collectivite.Martinique _ -> - true - | Collectivite.LaReunion _ -> - true - | Collectivite.SaintBarthelemy _ -> - true - | Collectivite.SaintMartin _ -> - true - | Collectivite.Metropole _ -> - false - | Collectivite.SaintPierreEtMiquelon _ -> - false - | Collectivite.Mayotte _ -> - true)))) + (date_of_numbers (2022) (1) (1)))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true) + (o_gte_int_int + nombre_personnes_a_charge_ + (integer_of_string "6")))))) (fun (_: unit) -> - (let montant_ : money = - (o_add_mon_mon - (match - situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string - "1938") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string - "3767")) - (o_mult_mon_rat - (money_of_cents_string - "969") - (o_torat_int - nombre_personnes_a_charge_))) - in - (let limite_ : money = - (o_add_mon_mon - (match - situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string - "1938") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string - "3767")) - (o_mult_mon_rat - (money_of_cents_string - "969") - (decimal_of_string "6."))) - in - ( if - (o_gt_mon_mon montant_ limite_) - then limite_ else montant_)))))|]) - (fun (_: unit) -> false) - (fun (_: unit) -> raise EmptyError))|]) - (fun (_: unit) -> true) - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=11; - end_line=935; end_column=38; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} - ([|(fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=11; - end_line=935; end_column=38; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4298; start_column=6; - end_line=4305; end_column=28; - law_headings=["Article 46"; - "Chapitre IX : Calcul des allocations de logement en outre-mer"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2023) (1) (1))) - (match residence_ - with - | Collectivite.Guadeloupe _ -> - true - | Collectivite.Guyane _ -> false - | Collectivite.Martinique _ -> - true - | Collectivite.LaReunion _ -> - true - | Collectivite.SaintBarthelemy _ -> - true - | Collectivite.SaintMartin _ -> - true - | Collectivite.Metropole _ -> - false - | Collectivite.SaintPierreEtMiquelon _ -> - false - | Collectivite.Mayotte _ -> true)))) - (fun (_: unit) -> - o_add_mon_mon (money_of_cents_string - "3767") - (o_mult_mon_rat - (money_of_cents_string "969") - (o_torat_int - nombre_personnes_a_charge_)))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=11; - end_line=935; end_column=38; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=275; start_column=6; - end_line=282; end_column=28; - law_headings=["Article 46"; - "Articles en vigueur du 1er juillet 2022 au 31 décembre 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))) - (o_lt_dat_dat date_courante_ - (date_of_numbers (2023) (1) (1)))) - (match residence_ - with - | Collectivite.Guadeloupe _ -> - true - | Collectivite.Guyane _ -> false - | Collectivite.Martinique _ -> - true - | Collectivite.LaReunion _ -> - true - | Collectivite.SaintBarthelemy _ -> - true - | Collectivite.SaintMartin _ -> - true - | Collectivite.Metropole _ -> - false - | Collectivite.SaintPierreEtMiquelon _ -> - false - | Collectivite.Mayotte _ -> true)))) - (fun (_: unit) -> - (let montant_ : money = - (o_add_mon_mon - (money_of_cents_string "3767") - (o_mult_mon_rat - (money_of_cents_string - "969") - (o_torat_int - nombre_personnes_a_charge_))) - in - (let limite_ : money = - (o_add_mon_mon - (money_of_cents_string "3767") - (o_mult_mon_rat - (money_of_cents_string - "969") - (decimal_of_string "6."))) - in - ( if (o_gt_mon_mon montant_ limite_) - then limite_ else montant_)))))|]) - (fun (_: unit) -> false) - (fun (_: unit) -> raise EmptyError)))|]) - (fun (_: unit) -> true) - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=11; - end_line=935; end_column=38; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} - ([|(fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=11; - end_line=935; end_column=38; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4014; start_column=5; - end_line=4014; end_column=16; - law_headings=["Article 37"; - "Chapitre IV : Calcul des allocations de logement en secteur accession"; - "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1))) - copropriete_))) - (fun (_: unit) -> - o_add_mon_mon - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "2805") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "5612")) - (o_mult_mon_rat (money_of_cents_string - "1272") - (o_torat_int nombre_personnes_a_charge_)))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=11; - end_line=935; end_column=38; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1064; start_column=5; - end_line=1064; end_column=16; - law_headings=["Article 37"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and + decimal_of_string "6."))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=606; start_column=5; + end_line=614; end_column=35; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1))) - (o_lt_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1)))) - copropriete_))) - (fun (_: unit) -> - o_add_mon_mon - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "2710") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "5422")) - (o_mult_mon_rat (money_of_cents_string - "1229") - (o_torat_int nombre_personnes_a_charge_)))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=11; - end_line=935; end_column=38; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=2020; start_column=5; - end_line=2020; end_column=16; - law_headings=["Article 37"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) - (o_lt_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1)))) - copropriete_))) - (fun (_: unit) -> - o_add_mon_mon - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "2699") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "5399")) - (o_mult_mon_rat (money_of_cents_string - "1224") - (o_torat_int nombre_personnes_a_charge_))))|]) - (fun (_: unit) -> false) - (fun (_: unit) -> raise EmptyError)))|]) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true) + (o_gte_int_int + nombre_personnes_a_charge_ + (integer_of_string "6")))))) + (fun (_: unit) -> decimal_of_string "6."))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=111; start_column=5; + end_line=119; end_column=35; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2023) (1) (1)))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> true + | Collectivite.LaReunion _ -> true + | Collectivite.SaintBarthelemy _ -> true + | Collectivite.SaintMartin _ -> true + | Collectivite.Metropole _ -> false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true) + (o_gte_int_int nombre_personnes_a_charge_ + (integer_of_string "6")))))) + (fun (_: unit) -> decimal_of_string "6."))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) (fun (_: unit) -> true) (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=11; end_line=935; end_column=38; + start_line=966; start_column=11; end_line=966; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=11; - end_line=935; end_column=38; + start_line=966; start_column=11; + end_line=966; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([||]) + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=966; start_column=11; + end_line=966; end_column=44; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1516; start_column=14; + end_line=1516; end_column=47; + law_headings=["Article 34"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))))) + (fun (_: unit) -> + o_torat_int nombre_personnes_a_charge_))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3959; start_column=29; - end_line=3959; end_column=56; + start_line=4032; start_column=14; + end_line=4032; end_column=47; law_headings=["Article 34"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_gte_dat_dat date_courante_ (date_of_numbers (2022) (7) (1))))) (fun (_: unit) -> - if - (o_eq nombre_personnes_a_charge_ - (integer_of_string "0")) then - (money_of_cents_string "5612") else - (o_add_mon_mon (money_of_cents_string "5612") - (o_mult_mon_rat (money_of_cents_string "1272") - (o_torat_int nombre_personnes_a_charge_))))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=11; - end_line=935; end_column=38; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1026; start_column=29; - end_line=1026; end_column=56; - law_headings=["Article 34"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1))) - (o_lt_dat_dat date_courante_ - (date_of_numbers (2022) (7) (1)))))) - (fun (_: unit) -> - if - (o_eq nombre_personnes_a_charge_ - (integer_of_string "0")) then - (money_of_cents_string "5422") else - (o_add_mon_mon (money_of_cents_string "5422") - (o_mult_mon_rat (money_of_cents_string "1229") - (o_torat_int nombre_personnes_a_charge_))))); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=11; - end_line=935; end_column=38; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} - ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1980; start_column=29; - end_line=1980; end_column=56; - law_headings=["Article 34"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; - "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (o_and - (o_gte_dat_dat date_courante_ - (date_of_numbers (2020) (10) (1))) - (o_lt_dat_dat date_courante_ - (date_of_numbers (2021) (10) (1)))))) - (fun (_: unit) -> - if - (o_eq nombre_personnes_a_charge_ - (integer_of_string "0")) then - (money_of_cents_string "5399") else - (o_add_mon_mon (money_of_cents_string "5399") - (o_mult_mon_rat (money_of_cents_string "1224") - (o_torat_int nombre_personnes_a_charge_)))))|]) + o_torat_int nombre_personnes_a_charge_))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=11; end_line=935; end_column=38; + start_line=966; start_column=11; end_line=966; end_column=44; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]})))) in + let coefficient_d842_12_: decimal = (log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; "coefficient_d842_12"] + (embed_decimal) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=964; start_column=11; end_line=964; end_column=30; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=4134; start_column=14; end_line=4134; end_column=33; + law_headings=["Article 39"; + "Chapitre IV : Calcul des allocations de logement en secteur accession"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) + (fun (_: unit) -> decimal_of_string "16.25")) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=964; start_column=11; end_line=964; end_column=30; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]})))) in + let coefficient_d842_11_: decimal = (log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; "coefficient_d842_11"] + (embed_decimal) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=963; start_column=11; end_line=963; end_column=30; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=4122; start_column=14; end_line=4122; end_column=33; + law_headings=["Article 38"; + "Chapitre IV : Calcul des allocations de logement en secteur accession"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) + (fun (_: unit) -> decimal_of_string "0.0234")) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=963; start_column=11; end_line=963; end_column=30; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]})))) in + let montant_forfaitaire_d842_12_: money = (log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "montant_forfaitaire_d842_12"] (embed_money) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=962; start_column=11; end_line=962; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=4142; start_column=14; end_line=4142; end_column=41; + law_headings=["Article 39"; + "Chapitre IV : Calcul des allocations de logement en secteur accession"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) + (fun (_: unit) -> money_of_cents_string "390000")) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=962; start_column=11; end_line=962; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]})))) in + let montant_forfaitaire_d842_11_: money = (log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "montant_forfaitaire_d842_11"] (embed_money) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=961; start_column=11; end_line=961; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=4114; start_column=14; end_line=4114; end_column=41; + law_headings=["Article 38"; + "Chapitre IV : Calcul des allocations de logement en secteur accession"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) + (fun (_: unit) -> money_of_cents_string "1500")) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=961; start_column=11; end_line=961; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]})))) in + let montant_minimal_aide_d842_6_: money = (log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "montant_minimal_aide_d842_6"] (embed_money) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=960; start_column=11; end_line=960; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=4058; start_column=14; end_line=4058; end_column=41; + law_headings=["Article 36"; + "Chapitre IV : Calcul des allocations de logement en secteur accession"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) + (fun (_: unit) -> money_of_cents_string "1000")) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=960; start_column=11; end_line=960; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]})))) in + let montant_forfaitaire_d842_6_: money = (log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "montant_forfaitaire_d842_6"] (embed_money) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=952; start_column=11; end_line=952; end_column=37; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=4047; start_column=14; end_line=4047; end_column=40; + law_headings=["Article 35"; + "Chapitre IV : Calcul des allocations de logement en secteur accession"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) + (fun (_: unit) -> money_of_cents_string "500")) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=952; start_column=11; end_line=952; end_column=37; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -21662,39 +24330,39 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=956; start_column=11; end_line=956; end_column=30; + start_line=965; start_column=11; end_line=965; end_column=30; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=956; start_column=11; - end_line=956; end_column=30; + start_line=965; start_column=11; + end_line=965; end_column=30; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=956; start_column=11; - end_line=956; end_column=30; + start_line=965; start_column=11; + end_line=965; end_column=30; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=956; start_column=11; - end_line=956; end_column=30; + start_line=965; start_column=11; + end_line=965; end_column=30; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=956; start_column=11; - end_line=956; end_column=30; + start_line=965; start_column=11; + end_line=965; end_column=30; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -21702,9 +24370,9 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5922; + start_line=5927; start_column=5; - end_line=5926; end_column=73; + end_line=5931; end_column=73; law_headings=["Article D862-7"; "Section III : Allocations de logement"; "Chapitre II : Saint-Barthélemy et Saint-Martin"; @@ -21736,8 +24404,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> false))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5570; start_column=5; - end_line=5577; end_column=73; + start_line=5575; start_column=5; + end_line=5582; end_column=73; law_headings=["Article D861-8"; "Section 2 : Allocations de logement"; "Titre VI : Disposition particulières à l'outre-mer"; @@ -21764,8 +24432,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> raise EmptyError))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4671; start_column=6; - end_line=4674; end_column=44; + start_line=4676; start_column=6; + end_line=4679; end_column=44; law_headings=["Article D842-11"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -21810,7 +24478,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=956; start_column=11; end_line=956; end_column=30; + start_line=965; start_column=11; end_line=965; end_column=30; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -21818,80 +24486,35 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=956; start_column=11; end_line=956; end_column=30; + start_line=965; start_column=11; end_line=965; end_column=30; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in - let traitement_aide_finale_minoration_forfaitaire_: money -> money = (log_variable_definition - ["CalculAllocationLogementAccessionPropriété"; - "traitement_aide_finale_minoration_forfaitaire"] (unembeddable) ( - try - (fun (aide_finale_: money) -> - try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=970; start_column=10; end_line=970; end_column=32; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4455; start_column=14; - end_line=4455; end_column=36; - law_headings=["Article D842-6"; - "Section 2 : Accession à la propriété"; - "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; - "Titre IV : Allocations de Logement"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]} - true)) - (fun (_: unit) -> - if - (o_lt_mon_mon - (o_sub_mon_mon aide_finale_ montant_forfaitaire_d842_6_) - (money_of_cents_string "0")) then - (money_of_cents_string "0") else - (o_sub_mon_mon aide_finale_ montant_forfaitaire_d842_6_))) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=970; start_column=10; end_line=970; end_column=32; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]}))) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=970; start_column=10; end_line=970; end_column=32; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})))) in - let calcul_plafond_mensualite_d842_6_base_: date -> money = (log_variable_definition + let calcul_plafond_mensualite_d842_6_base_: date -> integer -> money = (log_variable_definition ["CalculAllocationLogementAccessionPropriété"; "calcul_plafond_mensualité_d842_6_base"] (unembeddable) ( try - (fun (date_calcul_: date) -> + (fun (date_calcul_: date) (nombre_personnes_a_charge_: integer) -> try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; end_line=941; end_column=14; + start_line=949; start_column=10; end_line=949; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; - end_line=941; end_column=14; + start_line=949; start_column=10; + end_line=949; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2921; start_column=5; - end_line=2921; end_column=62; + start_line=2955; start_column=5; + end_line=2955; end_column=62; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -22061,16 +24684,16 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; - end_line=941; end_column=14; + start_line=949; start_column=10; + end_line=949; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2967; start_column=5; - end_line=2967; end_column=62; + start_line=3000; start_column=5; + end_line=3000; end_column=62; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -22240,16 +24863,16 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; - end_line=941; end_column=14; + start_line=949; start_column=10; + end_line=949; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3013; start_column=5; - end_line=3013; end_column=62; + start_line=3045; start_column=5; + end_line=3045; end_column=62; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -22419,16 +25042,16 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; - end_line=941; end_column=14; + start_line=949; start_column=10; + end_line=949; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3059; start_column=5; - end_line=3059; end_column=62; + start_line=3090; start_column=5; + end_line=3090; end_column=62; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -22598,16 +25221,16 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; - end_line=941; end_column=14; + start_line=949; start_column=10; + end_line=949; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3105; start_column=5; - end_line=3105; end_column=62; + start_line=3135; start_column=5; + end_line=3135; end_column=62; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -22777,16 +25400,16 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; - end_line=941; end_column=14; + start_line=949; start_column=10; + end_line=949; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3151; start_column=5; - end_line=3151; end_column=62; + start_line=3183; start_column=5; + end_line=3183; end_column=62; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -22956,16 +25579,16 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; - end_line=941; end_column=14; + start_line=949; start_column=10; + end_line=949; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3197; start_column=5; - end_line=3197; end_column=62; + start_line=3231; start_column=5; + end_line=3231; end_column=62; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -23135,16 +25758,16 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; - end_line=941; end_column=14; + start_line=949; start_column=10; + end_line=949; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3243; start_column=5; - end_line=3243; end_column=62; + start_line=3279; start_column=5; + end_line=3279; end_column=62; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -23297,16 +25920,16 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; - end_line=941; end_column=14; + start_line=949; start_column=10; + end_line=949; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3288; start_column=5; - end_line=3288; end_column=62; + start_line=3326; start_column=5; + end_line=3326; end_column=62; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -23459,16 +26082,16 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; - end_line=941; end_column=14; + start_line=949; start_column=10; + end_line=949; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3333; start_column=5; - end_line=3333; end_column=62; + start_line=3373; start_column=5; + end_line=3373; end_column=62; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -23621,16 +26244,16 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; - end_line=941; end_column=14; + start_line=949; start_column=10; + end_line=949; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3378; start_column=5; - end_line=3378; end_column=62; + start_line=3420; start_column=5; + end_line=3420; end_column=62; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -23783,16 +26406,16 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; - end_line=941; end_column=14; + start_line=949; start_column=10; + end_line=949; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3423; start_column=5; - end_line=3423; end_column=62; + start_line=3467; start_column=5; + end_line=3467; end_column=62; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -23945,16 +26568,16 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; - end_line=941; end_column=14; + start_line=949; start_column=10; + end_line=949; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3468; start_column=5; - end_line=3468; end_column=62; + start_line=3514; start_column=5; + end_line=3514; end_column=62; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -24107,16 +26730,16 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; - end_line=941; end_column=14; + start_line=949; start_column=10; + end_line=949; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3513; start_column=5; - end_line=3513; end_column=62; + start_line=3561; start_column=5; + end_line=3561; end_column=62; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -24269,16 +26892,16 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; - end_line=941; end_column=14; + start_line=949; start_column=10; + end_line=949; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3558; start_column=5; - end_line=3558; end_column=62; + start_line=3608; start_column=5; + end_line=3608; end_column=62; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -24431,16 +27054,16 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; - end_line=941; end_column=14; + start_line=949; start_column=10; + end_line=949; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3603; start_column=5; - end_line=3603; end_column=62; + start_line=3655; start_column=5; + end_line=3655; end_column=62; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -24593,16 +27216,16 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; - end_line=941; end_column=14; + start_line=949; start_column=10; + end_line=949; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3648; start_column=5; - end_line=3648; end_column=62; + start_line=3702; start_column=5; + end_line=3702; end_column=62; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -24755,16 +27378,16 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; - end_line=941; end_column=14; + start_line=949; start_column=10; + end_line=949; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3693; start_column=5; - end_line=3693; end_column=62; + start_line=3749; start_column=5; + end_line=3749; end_column=62; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -24917,16 +27540,16 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; - end_line=941; end_column=14; + start_line=949; start_column=10; + end_line=949; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3738; start_column=5; - end_line=3738; end_column=62; + start_line=3796; start_column=5; + end_line=3796; end_column=62; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -25079,16 +27702,16 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; - end_line=941; end_column=14; + start_line=949; start_column=10; + end_line=949; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3783; start_column=5; - end_line=3783; end_column=62; + start_line=3843; start_column=5; + end_line=3843; end_column=62; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -25241,16 +27864,16 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; - end_line=941; end_column=14; + start_line=949; start_column=10; + end_line=949; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3828; start_column=5; - end_line=3828; end_column=62; + start_line=3890; start_column=5; + end_line=3890; end_column=62; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -25403,16 +28026,16 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; - end_line=941; end_column=14; + start_line=949; start_column=10; + end_line=949; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3873; start_column=5; - end_line=3873; end_column=32; + start_line=3937; start_column=5; + end_line=3937; end_column=32; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -25563,14 +28186,1095 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; end_line=941; end_column=14; + start_line=949; start_column=10; end_line=949; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=10; end_line=941; end_column=14; + start_line=949; start_column=10; end_line=949; end_column=14; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]})))) in + let montant_forfaitaire_charges_: money = (log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "montant_forfaitaire_charges"] (embed_money) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; start_column=11; end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; start_column=11; + end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; start_column=11; + end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; start_column=11; + end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; start_column=11; + end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=4442; + start_column=5; + end_line=4450; end_column=16; + law_headings=["Article 46"; + "Chapitre IX : Calcul des allocations de logement en outre-mer"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2023) (1) (1))) + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true) copropriete_)))) + (fun (_: unit) -> + o_add_mon_mon + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string + "1938") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string + "3767")) + (o_mult_mon_rat + (money_of_cents_string + "969") + multiplicateur_majoration_charges_))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; start_column=11; + end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=343; start_column=6; + end_line=350; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2022) (7) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2023) (1) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true)))) + (fun (_: unit) -> + (let montant_ : money = + (o_add_mon_mon + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string + "1938") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string + "3767")) + (o_mult_mon_rat + (money_of_cents_string + "969") + (o_torat_int + nombre_personnes_a_charge_))) + in + (let limite_ : money = + (o_add_mon_mon + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string + "1938") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string + "3767")) + (o_mult_mon_rat + (money_of_cents_string + "969") + (decimal_of_string "6."))) + in + ( if + (o_gt_mon_mon montant_ limite_) + then limite_ else montant_))))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; start_column=11; + end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; + start_column=11; + end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1961; + start_column=6; + end_line=1968; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2022) (1) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true)))) + (fun (_: unit) -> + (let montant_ : money = + (o_add_mon_mon + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string + "1872") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string + "3640")) + (o_mult_mon_rat + (money_of_cents_string + "936") + (o_torat_int + nombre_personnes_a_charge_))) + in + (let limite_ : money = + (o_add_mon_mon + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string + "1872") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string + "3640")) + (o_mult_mon_rat + (money_of_cents_string + "936") + (decimal_of_string "6."))) + in + ( if + (o_gt_mon_mon montant_ + limite_) then + limite_ else montant_)))))|]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=841; start_column=6; + end_line=848; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2022) (1) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2022) (7) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true)))) + (fun (_: unit) -> + (let montant_ : money = + (o_add_mon_mon + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string + "1872") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string + "3640")) + (o_mult_mon_rat + (money_of_cents_string + "936") + (o_torat_int + nombre_personnes_a_charge_))) + in + (let limite_ : money = + (o_add_mon_mon + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string + "1872") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string + "3640")) + (o_mult_mon_rat + (money_of_cents_string + "936") + (decimal_of_string "6."))) + in + ( if + (o_gt_mon_mon montant_ limite_) + then limite_ else montant_))))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; start_column=11; + end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=3036; + start_column=6; + end_line=3043; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2021) (10) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true)))) + (fun (_: unit) -> + (let montant_ : money = + (o_add_mon_mon + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string + "1864") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string + "3625")) + (o_mult_mon_rat + (money_of_cents_string + "932") + (o_torat_int + nombre_personnes_a_charge_))) + in + (let limite_ : money = + (o_add_mon_mon + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string + "1864") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string + "3625")) + (o_mult_mon_rat + (money_of_cents_string + "932") + (decimal_of_string "6."))) + in + ( if + (o_gt_mon_mon montant_ limite_) + then limite_ else montant_))))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; start_column=11; + end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=3574; + start_column=6; + end_line=3581; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2020) (10) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true)))) + (fun (_: unit) -> + (let montant_ : money = + (o_add_mon_mon + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string + "1858") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string + "3614")) + (o_mult_mon_rat + (money_of_cents_string + "929") + (o_torat_int + nombre_personnes_a_charge_))) + in + (let limite_ : money = + (o_add_mon_mon + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string + "1858") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string + "3614")) + (o_mult_mon_rat + (money_of_cents_string + "929") + (decimal_of_string "6."))) + in + ( if + (o_gt_mon_mon montant_ limite_) + then limite_ else montant_)))))|]) + (fun (_: unit) -> false) + (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> true) + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; start_column=11; + end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; start_column=11; + end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=4382; start_column=6; + end_line=4389; end_column=28; + law_headings=["Article 46"; + "Chapitre IX : Calcul des allocations de logement en outre-mer"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2023) (1) (1))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true)))) + (fun (_: unit) -> + o_add_mon_mon (money_of_cents_string + "3767") + (o_mult_mon_rat + (money_of_cents_string "969") + multiplicateur_majoration_charges_))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; start_column=11; + end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=262; start_column=6; + end_line=269; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2023) (1) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true)))) + (fun (_: unit) -> + (let montant_ : money = + (o_add_mon_mon + (money_of_cents_string "3767") + (o_mult_mon_rat + (money_of_cents_string + "969") + (o_torat_int + nombre_personnes_a_charge_))) + in + (let limite_ : money = + (o_add_mon_mon + (money_of_cents_string "3767") + (o_mult_mon_rat + (money_of_cents_string + "969") + (decimal_of_string "6."))) + in + ( if (o_gt_mon_mon montant_ limite_) + then limite_ else montant_))))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; start_column=11; + end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; + start_column=11; + end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1881; + start_column=6; + end_line=1888; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2022) (1) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true)))) + (fun (_: unit) -> + (let montant_ : money = + (o_add_mon_mon + (money_of_cents_string + "3640") + (o_mult_mon_rat + (money_of_cents_string + "936") + (o_torat_int + nombre_personnes_a_charge_))) + in + (let limite_ : money = + (o_add_mon_mon + (money_of_cents_string + "3640") + (o_mult_mon_rat + (money_of_cents_string + "936") + (decimal_of_string "6."))) + in + ( if + (o_gt_mon_mon montant_ + limite_) then + limite_ else montant_)))))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=760; start_column=6; + end_line=767; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true)))) + (fun (_: unit) -> + (let montant_ : money = + (o_add_mon_mon + (money_of_cents_string "3640") + (o_mult_mon_rat + (money_of_cents_string + "936") + (o_torat_int + nombre_personnes_a_charge_))) + in + (let limite_ : money = + (o_add_mon_mon + (money_of_cents_string "3640") + (o_mult_mon_rat + (money_of_cents_string + "936") + (decimal_of_string "6."))) + in + ( if (o_gt_mon_mon montant_ limite_) + then limite_ else montant_))))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; start_column=11; + end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2956; start_column=6; + end_line=2963; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true)))) + (fun (_: unit) -> + (let montant_ : money = + (o_add_mon_mon + (money_of_cents_string "3625") + (o_mult_mon_rat + (money_of_cents_string + "932") + (o_torat_int + nombre_personnes_a_charge_))) + in + (let limite_ : money = + (o_add_mon_mon + (money_of_cents_string "3625") + (o_mult_mon_rat + (money_of_cents_string + "932") + (decimal_of_string "6."))) + in + ( if (o_gt_mon_mon montant_ limite_) + then limite_ else montant_))))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; start_column=11; + end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=3494; start_column=6; + end_line=3501; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true)))) + (fun (_: unit) -> + (let montant_ : money = + (o_add_mon_mon + (money_of_cents_string "3614") + (o_mult_mon_rat + (money_of_cents_string + "929") + (o_torat_int + nombre_personnes_a_charge_))) + in + (let limite_ : money = + (o_add_mon_mon + (money_of_cents_string "3614") + (o_mult_mon_rat + (money_of_cents_string + "929") + (decimal_of_string "6."))) + in + ( if (o_gt_mon_mon montant_ limite_) + then limite_ else montant_)))))|]) + (fun (_: unit) -> false) + (fun (_: unit) -> raise EmptyError)))|]) + (fun (_: unit) -> true) + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; start_column=11; + end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; start_column=11; + end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=4092; start_column=57; + end_line=4092; end_column=68; + law_headings=["Article 37"; + "Chapitre IV : Calcul des allocations de logement en secteur accession"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + copropriete_))) + (fun (_: unit) -> + o_add_mon_mon + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "2805") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "5612")) + (o_mult_mon_rat (money_of_cents_string + "1272") + multiplicateur_majoration_charges_))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; start_column=11; + end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1558; start_column=5; + end_line=1558; end_column=16; + law_headings=["Article 37"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) + copropriete_))) + (fun (_: unit) -> + o_add_mon_mon + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "2710") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "5422")) + (o_mult_mon_rat (money_of_cents_string + "1229") + (o_torat_int nombre_personnes_a_charge_)))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; start_column=11; + end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2639; start_column=5; + end_line=2639; end_column=16; + law_headings=["Article 37"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1)))) + copropriete_))) + (fun (_: unit) -> + o_add_mon_mon + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "2699") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "5399")) + (o_mult_mon_rat (money_of_cents_string + "1224") + (o_torat_int nombre_personnes_a_charge_))))|]) + (fun (_: unit) -> false) + (fun (_: unit) -> raise EmptyError)))|]) + (fun (_: unit) -> true) + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; start_column=11; end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; start_column=11; + end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=4035; start_column=29; + end_line=4035; end_column=56; + law_headings=["Article 34"; + "Chapitre IV : Calcul des allocations de logement en secteur accession"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))))) + (fun (_: unit) -> + if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (money_of_cents_string "5612") else + (o_add_mon_mon (money_of_cents_string "5612") + (o_mult_mon_rat (money_of_cents_string "1272") + multiplicateur_majoration_charges_)))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; start_column=11; + end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1519; start_column=29; + end_line=1519; end_column=56; + law_headings=["Article 34"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))))) + (fun (_: unit) -> + if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (money_of_cents_string "5422") else + (o_add_mon_mon (money_of_cents_string "5422") + (o_mult_mon_rat (money_of_cents_string "1229") + multiplicateur_majoration_charges_)))); + (fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; start_column=11; + end_line=942; end_column=38; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2597; start_column=29; + end_line=2597; end_column=56; + law_headings=["Article 34"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1)))))) + (fun (_: unit) -> + if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (money_of_cents_string "5399") else + (o_add_mon_mon (money_of_cents_string "5399") + (o_mult_mon_rat (money_of_cents_string "1224") + (o_torat_int nombre_personnes_a_charge_)))))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=942; start_column=11; end_line=942; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -25580,22 +29284,22 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=945; start_column=11; end_line=945; end_column=42; + start_line=954; start_column=11; end_line=954; end_column=42; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=945; start_column=11; - end_line=945; end_column=42; + start_line=954; start_column=11; + end_line=954; end_column=42; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4700; start_column=6; - end_line=4706; end_column=6; + start_line=4705; start_column=6; + end_line=4711; end_column=6; law_headings=["Article D842-12"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -25650,15 +29354,15 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=945; start_column=11; - end_line=945; end_column=42; + start_line=954; start_column=11; + end_line=954; end_column=42; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4718; start_column=5; - end_line=4719; end_column=59; + start_line=4723; start_column=5; + end_line=4724; end_column=59; law_headings=["Article D842-12"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -25683,27 +29387,27 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=945; start_column=11; end_line=945; end_column=42; + start_line=954; start_column=11; end_line=954; end_column=42; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in - let depense_nette_minimale_: money -> money = (log_variable_definition + let traitement_aide_finale_minoration_forfaitaire_: money -> money = (log_variable_definition ["CalculAllocationLogementAccessionPropriété"; - "dépense_nette_minimale"] (unembeddable) ( + "traitement_aide_finale_minoration_forfaitaire"] (unembeddable) ( try - (fun (allocation_mensuelle_: money) -> + (fun (aide_finale_: money) -> try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=947; start_column=11; end_line=947; end_column=33; + start_line=980; start_column=10; end_line=980; end_column=32; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4636; start_column=15; - end_line=4636; end_column=37; - law_headings=["Article D842-11"; + start_line=4457; start_column=14; + end_line=4457; end_column=36; + law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -25712,66 +29416,70 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - o_sub_mon_mon - (o_add_mon_mon charges_mensuelles_pret_ - montant_forfaitaire_charges_) allocation_mensuelle_)) + if + (o_lt_mon_mon + (o_sub_mon_mon aide_finale_ montant_forfaitaire_d842_6_) + (money_of_cents_string "0")) then + (money_of_cents_string "0") else + (o_sub_mon_mon aide_finale_ montant_forfaitaire_d842_6_))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=947; start_column=11; end_line=947; end_column=33; + start_line=980; start_column=10; end_line=980; end_column=32; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=947; start_column=11; end_line=947; end_column=33; + start_line=980; start_column=10; end_line=980; end_column=32; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in - let calcul_plafond_mensualite_d842_6_avec_copropriete_: date -> money = (log_variable_definition + let calcul_plafond_mensualite_d842_6_avec_copropriete_: date -> integer -> + money = (log_variable_definition ["CalculAllocationLogementAccessionPropriété"; "calcul_plafond_mensualité_d842_6_avec_copropriété"] (unembeddable) ( try - (fun (date_calcul_: date) -> + (fun (date_calcul_: date) (nombre_personnes_a_charge_: integer) -> try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=10; end_line=942; end_column=26; + start_line=950; start_column=10; end_line=950; end_column=26; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=10; - end_line=942; end_column=26; + start_line=950; start_column=10; + end_line=950; end_column=26; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=10; - end_line=942; end_column=26; + start_line=950; start_column=10; + end_line=950; end_column=26; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=10; - end_line=942; end_column=26; + start_line=950; start_column=10; + end_line=950; end_column=26; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; + start_line=950; start_column=10; - end_line=942; end_column=26; + end_line=950; end_column=26; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -25779,11 +29487,11 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1997; + start_line=2614; start_column=24; - end_line=1997; end_column=56; + end_line=2614; end_column=56; law_headings=["Article 37"; - "Articles en vigueur du 1er octobre 2020 au 31 septembre 2021 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat @@ -25803,16 +29511,19 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "calcul_plafond_mensualité_d842_6_base"; "output"] (embed_money) - ((log_begin_call - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_base"] - calcul_plafond_mensualite_d842_6_base_) - ((log_variable_definition - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_base"; - "input0"] - (embed_date) - date_calcul_))))))) + ((calcul_plafond_mensualite_d842_6_base_) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_base"; + "input0"] + (embed_date) + date_calcul_)) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_base"; + "input1"] + (embed_integer) + nombre_personnes_a_charge_))))))) (decimal_of_string "0.75")) else ((log_end_call @@ -25823,21 +29534,25 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "calcul_plafond_mensualité_d842_6_base"; "output"] (embed_money) - ((log_begin_call - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_base"] - calcul_plafond_mensualite_d842_6_base_) - ((log_variable_definition - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_base"; - "input0"] (embed_date) - date_calcul_)))))))))|]) + ((calcul_plafond_mensualite_d842_6_base_) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_base"; + "input0"] + (embed_date) + date_calcul_)) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_base"; + "input1"] + (embed_integer) + nombre_personnes_a_charge_)))))))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; - start_line=1042; start_column=24; - end_line=1042; end_column=56; + start_line=1534; start_column=24; + end_line=1534; end_column=56; law_headings=["Article 37"; - "Articles en vigueur du 1er octobre 2021 au 31 décembre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ @@ -25853,15 +29568,17 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ["CalculAllocationLogementAccessionPropriété"; "calcul_plafond_mensualité_d842_6_base"; "output"] (embed_money) - ((log_begin_call - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_base"] - calcul_plafond_mensualite_d842_6_base_) - ((log_variable_definition - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_base"; - "input0"] (embed_date) - date_calcul_))))))) + ((calcul_plafond_mensualite_d842_6_base_) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_base"; + "input0"] (embed_date) + date_calcul_)) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_base"; + "input1"] (embed_integer) + nombre_personnes_a_charge_))))))) (decimal_of_string "0.75")) else ((log_end_call @@ -25871,19 +29588,21 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ["CalculAllocationLogementAccessionPropriété"; "calcul_plafond_mensualité_d842_6_base"; "output"] (embed_money) - ((log_begin_call - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_base"] - calcul_plafond_mensualite_d842_6_base_) - ((log_variable_definition - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_base"; - "input0"] (embed_date) - date_calcul_)))))))))|]) + ((calcul_plafond_mensualite_d842_6_base_) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_base"; + "input0"] (embed_date) + date_calcul_)) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_base"; + "input1"] (embed_integer) + nombre_personnes_a_charge_)))))))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3993; start_column=24; - end_line=3993; end_column=56; + start_line=4070; start_column=24; + end_line=4070; end_column=56; law_headings=["Article 37"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -25898,15 +29617,17 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ["CalculAllocationLogementAccessionPropriété"; "calcul_plafond_mensualité_d842_6_base"; "output"] (embed_money) - ((log_begin_call - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_base"] - calcul_plafond_mensualite_d842_6_base_) - ((log_variable_definition - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_base"; - "input0"] (embed_date) - date_calcul_))))))) + ((calcul_plafond_mensualite_d842_6_base_) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_base"; + "input0"] (embed_date) + date_calcul_)) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_base"; + "input1"] (embed_integer) + nombre_personnes_a_charge_))))))) (decimal_of_string "0.75")) else ((log_end_call ["CalculAllocationLogementAccessionPropriété"; @@ -25915,21 +29636,23 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ["CalculAllocationLogementAccessionPropriété"; "calcul_plafond_mensualité_d842_6_base"; "output"] (embed_money) - ((log_begin_call - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_base"] - calcul_plafond_mensualite_d842_6_base_) - ((log_variable_definition - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_base"; - "input0"] (embed_date) - date_calcul_)))))))))|]) + ((calcul_plafond_mensualite_d842_6_base_) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_base"; + "input0"] (embed_date) + date_calcul_)) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_base"; + "input1"] (embed_integer) + nombre_personnes_a_charge_)))))))))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3917; start_column=14; - end_line=3917; end_column=46; + start_line=3981; start_column=14; + end_line=3981; end_column=46; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -25941,25 +29664,68 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ((log_variable_definition ["CalculAllocationLogementAccessionPropriété"; "calcul_plafond_mensualité_d842_6_base"; "output"] - (embed_money) ((log_begin_call - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_base"] - calcul_plafond_mensualite_d842_6_base_) - ((log_variable_definition - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_base"; "input0"] - (embed_date) date_calcul_)))))))) + (embed_money) + ((calcul_plafond_mensualite_d842_6_base_) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_base"; "input0"] + (embed_date) date_calcul_)) ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_base"; "input1"] + (embed_integer) nombre_personnes_a_charge_)))))))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=10; end_line=942; end_column=26; + start_line=950; start_column=10; end_line=950; end_column=26; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=10; end_line=942; end_column=26; + start_line=950; start_column=10; end_line=950; end_column=26; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]})))) in + let depense_nette_minimale_: money -> money = (log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "dépense_nette_minimale"] (unembeddable) ( + try + (fun (allocation_mensuelle_: money) -> + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=956; start_column=11; end_line=956; end_column=33; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4641; start_column=15; + end_line=4641; end_column=37; + law_headings=["Article D842-11"; + "Section 2 : Accession à la propriété"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) + (fun (_: unit) -> + o_sub_mon_mon + (o_add_mon_mon charges_mensuelles_pret_ + montant_forfaitaire_charges_) allocation_mensuelle_)) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=956; start_column=11; end_line=956; end_column=33; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]}))) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=956; start_column=11; end_line=956; end_column=33; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -25969,22 +29735,22 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=917; start_column=10; end_line=917; end_column=15; + start_line=924; start_column=10; end_line=924; end_column=15; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=917; start_column=10; - end_line=917; end_column=15; + start_line=924; start_column=10; + end_line=924; end_column=15; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4739; start_column=5; - end_line=4739; end_column=28; + start_line=4744; start_column=5; + end_line=4744; end_column=28; law_headings=["Article D842-12"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -25996,7 +29762,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> ressources_menage_arrondies_base_))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4729; start_column=14; end_line=4729; end_column=41; + start_line=4734; start_column=14; end_line=4734; end_column=41; law_headings=["Article D842-12"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -26020,102 +29786,532 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=917; start_column=10; end_line=917; end_column=15; + start_line=924; start_column=10; end_line=924; end_column=15; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in - let plafond_mensualite_d842_6_: money = (log_variable_definition + let calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_: date -> + integer -> + money = (log_variable_definition ["CalculAllocationLogementAccessionPropriété"; - "plafond_mensualité_d842_6"] (embed_money) ( + "calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom"] + (unembeddable) ( try - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=938; start_column=11; end_line=938; end_column=36; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} - ([|(fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=938; start_column=11; - end_line=938; end_column=36; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4585; start_column=5; - end_line=4585; end_column=44; - law_headings=["Article D842-9"; - "Section 2 : Accession à la propriété"; - "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; - "Titre IV : Allocations de Logement"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]} - local_habite_premiere_fois_beneficiaire_)) - (fun (_: unit) -> - (let plafond_signature_ : money = ((log_end_call - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_avec_copropriété"] - ((log_variable_definition - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_avec_copropriété"; - "output"] (embed_money) ((log_begin_call - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_avec_copropriété"] - calcul_plafond_mensualite_d842_6_avec_copropriete_) - ((log_variable_definition - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_avec_copropriété"; - "input0"] (embed_date) date_signature_pret_))))))) - in - (let plafond_entree_ : money = ((log_end_call - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_avec_copropriété"] - ((log_variable_definition - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_avec_copropriété"; - "output"] (embed_money) ((log_begin_call - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_avec_copropriété"] - calcul_plafond_mensualite_d842_6_avec_copropriete_) - ((log_variable_definition - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_avec_copropriété"; - "input0"] (embed_date) date_entree_logement_))))))) - in - ( if (o_lt_mon_mon plafond_signature_ plafond_entree_) - then plafond_entree_ else plafond_signature_)))))|]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4567; start_column=14; end_line=4567; end_column=39; - law_headings=["Article D842-9"; - "Section 2 : Accession à la propriété"; - "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; - "Titre IV : Allocations de Logement"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]} - true)) - (fun (_: unit) -> (log_end_call - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_avec_copropriété"] - ((log_variable_definition - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_avec_copropriété"; - "output"] (embed_money) ((log_begin_call - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_avec_copropriété"] - calcul_plafond_mensualite_d842_6_avec_copropriete_) - ((log_variable_definition - ["CalculAllocationLogementAccessionPropriété"; - "calcul_plafond_mensualité_d842_6_avec_copropriété"; - "input0"] (embed_date) date_signature_pret_)))))))) + (fun (date_calcul_: date) (nombre_personnes_a_charge_: integer) -> + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=951; start_column=10; end_line=951; end_column=33; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=951; start_column=10; + end_line=951; end_column=33; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=951; start_column=10; + end_line=951; end_column=33; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=951; start_column=10; + end_line=951; end_column=33; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=951; + start_column=10; + end_line=951; end_column=33; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=951; + start_column=10; + end_line=951; end_column=33; + law_headings= + ["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=951; + start_column=10; + end_line=951; end_column=33; + law_headings= + ["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} + ([||]) + (fun + (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=3419; + start_column=5; + end_line=3426; end_column=28; + law_headings= + ["Article 46"; + "Articles en vigueur à partir du 1er janvier 2020 - Arrêté du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'année 2020 NOR : LOGL1934006A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + ( + o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2020) (10) (1)))) + ( + match + residence_ + with + | + Collectivite.Guadeloupe _ -> + true + | + Collectivite.Guyane _ -> + false + | + Collectivite.Martinique _ -> + true + | + Collectivite.LaReunion _ -> + true + | + Collectivite.SaintBarthelemy _ -> + true + | + Collectivite.SaintMartin _ -> + true + | + Collectivite.Metropole _ -> + false + | + Collectivite.SaintPierreEtMiquelon _ -> + false + | + Collectivite.Mayotte _ -> + true)))) + (fun + (_: unit) -> + if + (o_gte_int_int + nombre_personnes_a_charge_ + (integer_of_string + "6")) + then + ((log_end_call + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"] + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "output"] + (embed_money) + ((calcul_plafond_mensualite_d842_6_avec_copropriete_) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "input0"] + (embed_date) + date_calcul_)) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "input1"] + (embed_integer) + (integer_of_string + "6")))))))) + else + ((log_end_call + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"] + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "output"] + (embed_money) + ((calcul_plafond_mensualite_d842_6_avec_copropriete_) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "input0"] + (embed_date) + date_calcul_)) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "input1"] + (embed_integer) + nombre_personnes_a_charge_)))))))))|]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=2881; + start_column=5; + end_line=2888; end_column=28; + law_headings= + ["Article 46"; + "Articles en vigueur à partir du du 1er octobre 2020 - Arrêté du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2020835A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2021) (10) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true)))) + (fun (_: unit) -> + if + (o_gte_int_int + nombre_personnes_a_charge_ + (integer_of_string + "6")) then + ((log_end_call + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"] + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "output"] + (embed_money) + ((calcul_plafond_mensualite_d842_6_avec_copropriete_) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "input0"] + (embed_date) + date_calcul_)) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "input1"] + (embed_integer) + (integer_of_string + "6")))))))) + else + ((log_end_call + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"] + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "output"] + (embed_money) + ((calcul_plafond_mensualite_d842_6_avec_copropriete_) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "input0"] + (embed_date) + date_calcul_)) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "input1"] + (embed_integer) + nombre_personnes_a_charge_)))))))))|]) + (fun (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=1807; + start_column=5; + end_line=1814; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er octobre 2021 - Arrêté du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer NOR : LOGL2123452A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat + date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat + date_courante_ + (date_of_numbers (2022) (1) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> + false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> + true)))) + (fun (_: unit) -> + if + (o_gte_int_int + nombre_personnes_a_charge_ + (integer_of_string "6")) + then + ((log_end_call + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"] + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "output"] + (embed_money) + ((calcul_plafond_mensualite_d842_6_avec_copropriete_) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "input0"] + (embed_date) + date_calcul_)) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "input1"] + (embed_integer) + (integer_of_string + "6")))))))) else + ((log_end_call + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"] + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "output"] + (embed_money) + ((calcul_plafond_mensualite_d842_6_avec_copropriete_) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "input0"] + (embed_date) + date_calcul_)) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "input1"] + (embed_integer) + nombre_personnes_a_charge_)))))))))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=685; start_column=5; + end_line=692; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er janvier 2022 - Arrêté du 20 décembre 2021 relatif au calcul des aides personnelles au logement pour l'année 2022 NOR : LOGL2134477A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> + true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> + true + | Collectivite.LaReunion _ -> + true + | Collectivite.SaintBarthelemy _ -> + true + | Collectivite.SaintMartin _ -> + true + | Collectivite.Metropole _ -> + false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true)))) + (fun (_: unit) -> + if + (o_gte_int_int + nombre_personnes_a_charge_ + (integer_of_string "6")) then + ((log_end_call + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"] + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "output"] (embed_money) + ((calcul_plafond_mensualite_d842_6_avec_copropriete_) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "input0"] (embed_date) + date_calcul_)) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "input1"] (embed_integer) + (integer_of_string "6")))))))) + else + ((log_end_call + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"] + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "output"] (embed_money) + ((calcul_plafond_mensualite_d842_6_avec_copropriete_) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "input0"] (embed_date) + date_calcul_)) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "input1"] (embed_integer) + nombre_personnes_a_charge_)))))))))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/archives.catala_fr"; + start_line=189; start_column=5; + end_line=196; end_column=28; + law_headings=["Article 46"; + "Articles en vigueur à partir du 1er juillet 2022 - Arrêté du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arrêté du 16 août 2022 relatif au calcul des aides personnelles au logement et de l'aide à l'accession sociale et à la sortie de l'insalubrité spécifique à l'outre-mer - NOR : TREL2220744A"; + "Archives de l'arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2023) (1) (1)))) + (match residence_ + with + | Collectivite.Guadeloupe _ -> true + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> true + | Collectivite.LaReunion _ -> true + | Collectivite.SaintBarthelemy _ -> true + | Collectivite.SaintMartin _ -> true + | Collectivite.Metropole _ -> false + | Collectivite.SaintPierreEtMiquelon _ -> + false + | Collectivite.Mayotte _ -> true)))) + (fun (_: unit) -> + if + (o_gte_int_int nombre_personnes_a_charge_ + (integer_of_string "6")) then + ((log_end_call + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"] + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "output"] (embed_money) + ((calcul_plafond_mensualite_d842_6_avec_copropriete_) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "input0"] (embed_date) + date_calcul_)) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "input1"] (embed_integer) + (integer_of_string "6")))))))) else + ((log_end_call + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"] + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "output"] (embed_money) + ((calcul_plafond_mensualite_d842_6_avec_copropriete_) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "input0"] (embed_date) + date_calcul_)) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "input1"] (embed_integer) + nombre_personnes_a_charge_)))))))))|]) + (fun (_: unit) -> false) + (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; + start_line=3987; start_column=14; + end_line=3987; end_column=46; + law_headings=["Article 33"; + "Chapitre IV : Calcul des allocations de logement en secteur accession"; + "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))))) + (fun (_: unit) -> (log_end_call + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"] + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "output"] (embed_money) + ((calcul_plafond_mensualite_d842_6_avec_copropriete_) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "input0"] (embed_date) date_calcul_)) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_copropriété"; + "input1"] (embed_integer) nombre_personnes_a_charge_)))))))) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=951; start_column=10; end_line=951; end_column=33; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=938; start_column=11; end_line=938; end_column=36; + start_line=951; start_column=10; end_line=951; end_column=33; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -26125,13 +30321,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "calcul_équivalence_loyer_minimale.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1000; start_column=14; end_line=1000; end_column=61; + start_line=1010; start_column=14; end_line=1010; end_column=61; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1000; start_column=14; end_line=1000; end_column=61; + start_line=1010; start_column=14; end_line=1010; end_column=61; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -26139,7 +30335,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1000; start_column=14; end_line=1000; end_column=61; + start_line=1010; start_column=14; end_line=1010; end_column=61; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -26150,7 +30346,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (embed_money) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4441; start_column=14; end_line=4441; end_column=75; + start_line=4443; start_column=14; end_line=4443; end_column=75; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -26161,7 +30357,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4441; start_column=14; end_line=4441; end_column=75; + start_line=4443; start_column=14; end_line=4443; end_column=75; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -26173,7 +30369,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4441; start_column=14; end_line=4441; end_column=75; + start_line=4443; start_column=14; end_line=4443; end_column=75; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -26188,7 +30384,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4440; start_column=14; end_line=4440; end_column=69; + start_line=4442; start_column=14; end_line=4442; end_column=69; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -26199,7 +30395,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4440; start_column=14; end_line=4440; end_column=69; + start_line=4442; start_column=14; end_line=4442; end_column=69; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -26211,7 +30407,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4440; start_column=14; end_line=4440; end_column=69; + start_line=4442; start_column=14; end_line=4442; end_column=69; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -26226,7 +30422,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (embed_decimal) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4443; start_column=14; end_line=4443; end_column=70; + start_line=4445; start_column=14; end_line=4445; end_column=70; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -26237,7 +30433,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4443; start_column=14; end_line=4443; end_column=70; + start_line=4445; start_column=14; end_line=4445; end_column=70; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -26250,7 +30446,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4443; start_column=14; end_line=4443; end_column=70; + start_line=4445; start_column=14; end_line=4445; end_column=70; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -26281,13 +30477,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (embed_type_logement_foyer) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=982; start_column=14; end_line=982; end_column=59; + start_line=992; start_column=14; end_line=992; end_column=59; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=982; start_column=14; end_line=982; end_column=59; + start_line=992; start_column=14; end_line=992; end_column=59; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -26295,7 +30491,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=982; start_column=14; end_line=982; end_column=59; + start_line=992; start_column=14; end_line=992; end_column=59; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -26305,13 +30501,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "calcul_apl_logement_foyer.date_conventionnement"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=984; start_column=14; end_line=984; end_column=61; + start_line=994; start_column=14; end_line=994; end_column=61; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=984; start_column=14; end_line=984; end_column=61; + start_line=994; start_column=14; end_line=994; end_column=61; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -26319,7 +30515,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=984; start_column=14; end_line=984; end_column=61; + start_line=994; start_column=14; end_line=994; end_column=61; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -26330,13 +30526,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=988; start_column=14; end_line=988; end_column=67; + start_line=998; start_column=14; end_line=998; end_column=67; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=988; start_column=14; end_line=988; end_column=67; + start_line=998; start_column=14; end_line=998; end_column=67; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -26344,7 +30540,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=988; start_column=14; end_line=988; end_column=67; + start_line=998; start_column=14; end_line=998; end_column=67; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -26355,13 +30551,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (embed_integer) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=990; start_column=14; end_line=990; end_column=65; + start_line=1000; start_column=14; end_line=1000; end_column=65; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=990; start_column=14; end_line=990; end_column=65; + start_line=1000; start_column=14; end_line=1000; end_column=65; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -26369,7 +30565,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=990; start_column=14; end_line=990; end_column=65; + start_line=1000; start_column=14; end_line=1000; end_column=65; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -26380,13 +30576,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (embed_situation_familiale_calcul_a_p_l) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=992; start_column=14; end_line=992; end_column=70; + start_line=1002; start_column=14; end_line=1002; end_column=70; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=992; start_column=14; end_line=992; end_column=70; + start_line=1002; start_column=14; end_line=1002; end_column=70; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -26394,7 +30590,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=992; start_column=14; end_line=992; end_column=70; + start_line=1002; start_column=14; end_line=1002; end_column=70; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -26404,13 +30600,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "calcul_apl_logement_foyer.zone"] (embed_zone_d_habitation) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=994; start_column=14; end_line=994; end_column=44; + start_line=1004; start_column=14; end_line=1004; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=994; start_column=14; end_line=994; end_column=44; + start_line=1004; start_column=14; end_line=1004; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -26418,7 +30614,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=994; start_column=14; end_line=994; end_column=44; + start_line=1004; start_column=14; end_line=1004; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -26428,13 +30624,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "calcul_apl_logement_foyer.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=997; start_column=14; end_line=997; end_column=53; + start_line=1007; start_column=14; end_line=1007; end_column=53; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=997; start_column=14; end_line=997; end_column=53; + start_line=1007; start_column=14; end_line=1007; end_column=53; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -26442,7 +30638,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=997; start_column=14; end_line=997; end_column=53; + start_line=1007; start_column=14; end_line=1007; end_column=53; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -26450,30 +30646,6 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try ((log_variable_definition ["CalculAllocationLogementAccessionPropriété"; "calcul_apl_logement_foyer.redevance"] (embed_money) - (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=986; start_column=14; end_line=986; end_column=49; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=986; start_column=14; end_line=986; end_column=49; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} true)) - (fun (_: unit) -> money_of_cents_string "0")))) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=986; start_column=14; end_line=986; end_column=49; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in - let calcul_apl_logement_foyer_dot_residence_: Collectivite.t = - try ((log_variable_definition - ["CalculAllocationLogementAccessionPropriété"; - "calcul_apl_logement_foyer.résidence"] (embed_collectivite) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=996; start_column=14; end_line=996; end_column=49; @@ -26486,7 +30658,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: unit) -> residence_)))) + (fun (_: unit) -> money_of_cents_string "0")))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -26494,13 +30666,37 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in + let calcul_apl_logement_foyer_dot_residence_: Collectivite.t = + try ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_apl_logement_foyer.résidence"] (embed_collectivite) + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1006; start_column=14; end_line=1006; end_column=49; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1006; start_column=14; end_line=1006; end_column=49; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} true)) + (fun (_: unit) -> residence_)))) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1006; start_column=14; end_line=1006; end_column=49; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]})) in let calcul_apl_logement_foyer_dot_condition_2_du_832_25_: unit -> bool = fun (_: unit) -> (log_variable_definition ["CalculAllocationLogementAccessionPropriété"; "calcul_apl_logement_foyer.condition_2_du_832_25"] (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4407; start_column=14; end_line=4407; end_column=61; + start_line=4409; start_column=14; end_line=4409; end_column=61; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -26511,7 +30707,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4407; start_column=14; end_line=4407; end_column=61; + start_line=4409; start_column=14; end_line=4409; end_column=61; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -26527,8 +30723,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5906; start_column=9; - end_line=5906; end_column=75; + start_line=5911; start_column=9; + end_line=5911; end_column=75; law_headings=["Article D862-7"; "Section III : Allocations de logement"; "Chapitre II : Saint-Barthélemy et Saint-Martin"; @@ -26538,8 +30734,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5906; start_column=9; - end_line=5906; end_column=75; + start_line=5911; start_column=9; + end_line=5911; end_column=75; law_headings=["Article D862-7"; "Section III : Allocations de logement"; "Chapitre II : Saint-Barthélemy et Saint-Martin"; @@ -26549,8 +30745,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5906; start_column=9; - end_line=5906; end_column=75; + start_line=5911; start_column=9; + end_line=5911; end_column=75; law_headings=["Article D862-7"; "Section III : Allocations de logement"; "Chapitre II : Saint-Barthélemy et Saint-Martin"; @@ -26560,8 +30756,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5908; start_column=5; - end_line=5911; end_column=28; + start_line=5913; start_column=5; + end_line=5916; end_column=28; law_headings=["Article D862-7"; "Section III : Allocations de logement"; "Chapitre II : Saint-Barthélemy et Saint-Martin"; @@ -26589,8 +30785,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5553; start_column=5; - end_line=5559; end_column=28; + start_line=5558; start_column=5; + end_line=5564; end_column=28; law_headings=["Article D861-8"; "Section 2 : Allocations de logement"; "Titre VI : Disposition particulières à l'outre-mer"; @@ -26664,22 +30860,22 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=944; start_column=11; end_line=944; end_column=47; + start_line=953; start_column=11; end_line=953; end_column=47; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=944; start_column=11; - end_line=944; end_column=47; + start_line=953; start_column=11; + end_line=953; end_column=47; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4678; start_column=7; - end_line=4678; end_column=26; + start_line=4683; start_column=7; + end_line=4683; end_column=26; law_headings=["Article D842-11"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -26693,7 +30889,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a coefficient_d842_11_))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4659; start_column=14; end_line=4659; end_column=50; + start_line=4664; start_column=14; end_line=4664; end_column=50; law_headings=["Article D842-11"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -26705,24 +30901,83 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=944; start_column=11; end_line=944; end_column=47; + start_line=953; start_column=11; end_line=953; end_column=47; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in - let mensualite_eligible_: money = (log_variable_definition - ["CalculAllocationLogementAccessionPropriété"; "mensualité_éligible"] - (embed_money) ( + let plafond_mensualite_d842_6_: money = (log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "plafond_mensualité_d842_6"] (embed_money) ( try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=934; start_column=11; end_line=934; end_column=30; + start_line=945; start_column=11; end_line=945; end_column=36; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=945; start_column=11; + end_line=945; end_column=36; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4588; start_column=5; + end_line=4588; end_column=44; + law_headings=["Article D842-9"; + "Section 2 : Accession à la propriété"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + local_habite_premiere_fois_beneficiaire_)) + (fun (_: unit) -> + (let plafond_signature_ : money = ((log_end_call + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom"] + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom"; + "output"] (embed_money) + ((calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom"; + "input0"] (embed_date) date_signature_pret_)) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom"; + "input1"] (embed_integer) + nombre_personnes_a_charge_))))))) + in + (let plafond_entree_ : money = ((log_end_call + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom"] + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom"; + "output"] (embed_money) + ((calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom"; + "input0"] (embed_date) date_entree_logement_)) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom"; + "input1"] (embed_integer) + nombre_personnes_a_charge_))))))) + in + ( if (o_lt_mon_mon plafond_signature_ plafond_entree_) + then plafond_entree_ else plafond_signature_)))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4421; start_column=14; end_line=4421; end_column=33; - law_headings=["Article D842-6"; + start_line=4569; start_column=14; end_line=4569; end_column=39; + law_headings=["Article D842-9"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -26730,14 +30985,26 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: unit) -> - if - (o_gt_mon_mon mensualite_principale_ plafond_mensualite_d842_6_) - then plafond_mensualite_d842_6_ else mensualite_principale_)) + (fun (_: unit) -> (log_end_call + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom"] + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom"; + "output"] (embed_money) + ((calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom"; + "input0"] (embed_date) date_signature_pret_)) + ((log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; + "calcul_plafond_mensualité_d842_6_avec_limitation_dom_tom"; + "input1"] (embed_integer) nombre_personnes_a_charge_)))))))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=934; start_column=11; end_line=934; end_column=30; + start_line=945; start_column=11; end_line=945; end_column=36; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -26747,13 +31014,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=936; start_column=11; end_line=936; end_column=30; + start_line=943; start_column=11; end_line=943; end_column=30; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4436; start_column=14; end_line=4436; end_column=33; + start_line=4438; start_column=14; end_line=4438; end_column=33; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -26766,7 +31033,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=936; start_column=11; end_line=936; end_column=30; + start_line=943; start_column=11; end_line=943; end_column=30; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -26776,13 +31043,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=937; start_column=11; end_line=937; end_column=38; + start_line=944; start_column=11; end_line=944; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4410; start_column=14; end_line=4410; end_column=41; + start_line=4412; start_column=14; end_line=4412; end_column=41; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -26796,7 +31063,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=937; start_column=11; end_line=937; end_column=38; + start_line=944; start_column=11; end_line=944; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -26808,14 +31075,14 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=11; end_line=949; end_column=44; + start_line=958; start_column=11; end_line=958; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4648; start_column=14; - end_line=4648; end_column=47; + start_line=4653; start_column=14; + end_line=4653; end_column=47; law_headings=["Article D842-11"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -26847,30 +31114,30 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=11; end_line=949; end_column=44; + start_line=958; start_column=11; end_line=958; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=11; end_line=949; end_column=44; + start_line=958; start_column=11; end_line=958; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in - let aide_finale_formule_: money = (log_variable_definition - ["CalculAllocationLogementAccessionPropriété"; "aide_finale_formule"] + let mensualite_eligible_: money = (log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; "mensualité_éligible"] (embed_money) ( try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=966; start_column=12; end_line=966; end_column=31; + start_line=941; start_column=11; end_line=941; end_column=30; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4388; start_column=14; end_line=4388; end_column=33; + start_line=4423; start_column=14; end_line=4423; end_column=33; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -26880,15 +31147,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - o_mult_mon_rat - (o_sub_mon_mon - (o_add_mon_mon mensualite_eligible_ - montant_forfaitaire_charges_) mensualite_minimale_) - coefficient_prise_en_charge_)) + if + (o_gt_mon_mon mensualite_principale_ plafond_mensualite_d842_6_) + then plafond_mensualite_d842_6_ else mensualite_principale_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=966; start_column=12; end_line=966; end_column=31; + start_line=941; start_column=11; end_line=941; end_column=30; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -26900,14 +31165,14 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=971; start_column=10; end_line=971; end_column=32; + start_line=981; start_column=10; end_line=981; end_column=32; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4469; start_column=14; - end_line=4469; end_column=36; + start_line=4471; start_column=14; + end_line=4471; end_column=36; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -26953,14 +31218,48 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=971; start_column=10; end_line=971; end_column=32; + start_line=981; start_column=10; end_line=981; end_column=32; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=971; start_column=10; end_line=971; end_column=32; + start_line=981; start_column=10; end_line=981; end_column=32; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]})))) in + let aide_finale_formule_: money = (log_variable_definition + ["CalculAllocationLogementAccessionPropriété"; "aide_finale_formule"] + (embed_money) ( + try + (handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=976; start_column=12; end_line=976; end_column=31; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4390; start_column=14; end_line=4390; end_column=33; + law_headings=["Article D842-6"; + "Section 2 : Accession à la propriété"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) + (fun (_: unit) -> + o_mult_mon_rat + (o_sub_mon_mon + (o_add_mon_mon mensualite_eligible_ + montant_forfaitaire_charges_) mensualite_minimale_) + coefficient_prise_en_charge_)) + with + EmptyError -> (raise (NoValueProvided + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=976; start_column=12; end_line=976; end_column=31; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -26973,14 +31272,14 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=972; start_column=10; end_line=972; end_column=40; + start_line=982; start_column=10; end_line=982; end_column=40; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4483; start_column=14; - end_line=4483; end_column=36; + start_line=4485; start_column=14; + end_line=4485; end_column=36; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -27030,14 +31329,14 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=972; start_column=10; end_line=972; end_column=40; + start_line=982; start_column=10; end_line=982; end_column=40; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=972; start_column=10; end_line=972; end_column=40; + start_line=982; start_column=10; end_line=982; end_column=40; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -27049,14 +31348,14 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=973; start_column=10; end_line=973; end_column=25; + start_line=983; start_column=10; end_line=983; end_column=25; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4503; start_column=14; - end_line=4503; end_column=36; + start_line=4505; start_column=14; + end_line=4505; end_column=36; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -27087,14 +31386,14 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=973; start_column=10; end_line=973; end_column=25; + start_line=983; start_column=10; end_line=983; end_column=25; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=973; start_column=10; end_line=973; end_column=25; + start_line=983; start_column=10; end_line=983; end_column=25; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -27105,15 +31404,15 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1005; start_column=13; - end_line=1005; end_column=48; + start_line=1015; start_column=13; + end_line=1015; end_column=48; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) then () else raise (AssertionFailed {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1005; start_column=13; - end_line=1005; end_column=48; + start_line=1015; start_column=13; + end_line=1015; end_column=48; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}) in @@ -27124,15 +31423,15 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1004; start_column=13; - end_line=1004; end_column=42; + start_line=1014; start_column=13; + end_line=1014; end_column=42; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) then () else raise (AssertionFailed {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1004; start_column=13; - end_line=1004; end_column=42; + start_line=1014; start_column=13; + end_line=1014; end_column=42; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}) in @@ -27156,14 +31455,14 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=819; start_column=11; end_line=819; end_column=31; + start_line=826; start_column=11; end_line=826; end_column=31; law_headings=["Tous secteurs"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1444; start_column=14; end_line=1444; end_column=34; + start_line=1446; start_column=14; end_line=1446; end_column=34; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -27188,7 +31487,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=819; start_column=11; end_line=819; end_column=31; + start_line=826; start_column=11; end_line=826; end_column=31; law_headings=["Tous secteurs"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -27199,14 +31498,14 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=812; start_column=10; end_line=812; end_column=22; + start_line=819; start_column=10; end_line=819; end_column=22; law_headings=["Tous secteurs"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1966; start_column=14; end_line=1966; end_column=31; + start_line=1968; start_column=14; end_line=1968; end_column=31; law_headings=["Article D823-17"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -27221,7 +31520,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=812; start_column=10; end_line=812; end_column=22; + start_line=819; start_column=10; end_line=819; end_column=22; law_headings=["Tous secteurs"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -27232,14 +31531,14 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=820; start_column=11; end_line=820; end_column=41; + start_line=827; start_column=11; end_line=827; end_column=41; law_headings=["Tous secteurs"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=78; start_column=14; end_line=78; end_column=44; + start_line=80; start_column=14; end_line=80; end_column=44; law_headings=["Article 7"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -27262,7 +31561,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=820; start_column=11; end_line=820; end_column=41; + start_line=827; start_column=11; end_line=827; end_column=41; law_headings=["Tous secteurs"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -27273,7 +31572,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=822; start_column=11; end_line=822; end_column=33; + start_line=829; start_column=11; end_line=829; end_column=33; law_headings=["Tous secteurs"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -27281,16 +31580,16 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=822; start_column=11; - end_line=822; end_column=33; + start_line=829; start_column=11; + end_line=829; end_column=33; law_headings=["Tous secteurs"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6353; start_column=24; - end_line=6353; end_column=46; + start_line=6358; start_column=24; + end_line=6358; end_column=46; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -27348,8 +31647,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6376; start_column=31; - end_line=6376; end_column=56; + start_line=6381; start_column=31; + end_line=6381; end_column=56; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -27361,8 +31660,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try ressources_menage_avec_arrondi_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6370; start_column=43; - end_line=6370; end_column=60; + start_line=6375; start_column=43; + end_line=6375; end_column=60; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -27377,8 +31676,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6378; start_column=15; - end_line=6378; end_column=76; + start_line=6383; start_column=15; + end_line=6383; end_column=76; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -27390,8 +31689,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try date_courante_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6373; start_column=29; - end_line=6373; end_column=42; + start_line=6378; start_column=29; + end_line=6378; end_column=42; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -27403,8 +31702,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try nombre_personnes_a_charge_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6371; start_column=41; - end_line=6371; end_column=66; + start_line=6376; start_column=41; + end_line=6376; end_column=66; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -27416,8 +31715,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try situation_familiale_calcul_apl_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6374; start_column=46; - end_line=6374; end_column=76; + start_line=6379; start_column=46; + end_line=6379; end_column=76; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -27429,8 +31728,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try zone_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6372; start_column=20; - end_line=6372; end_column=24; + start_line=6377; start_column=20; + end_line=6377; end_column=24; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -27442,8 +31741,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try true with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6382; start_column=36; - end_line=6382; end_column=40; + start_line=6387; start_column=36; + end_line=6387; end_column=40; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -27455,8 +31754,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try false with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6389; start_column=72; - end_line=6389; end_column=76; + start_line=6394; start_column=72; + end_line=6394; end_column=76; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -27468,8 +31767,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try type_aide_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6390; start_column=25; - end_line=6390; end_column=34; + start_line=6395; start_column=25; + end_line=6395; end_column=34; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -27481,8 +31780,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try false with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6386; start_column=26; - end_line=6386; end_column=30; + start_line=6391; start_column=26; + end_line=6391; end_column=30; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -27494,8 +31793,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try (money_of_cents_string "0") with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6393; start_column=42; - end_line=6393; end_column=45; + start_line=6398; start_column=42; + end_line=6398; end_column=45; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -27510,8 +31809,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6394; start_column=38; - end_line=6394; end_column=76; + start_line=6399; start_column=38; + end_line=6399; end_column=76; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -27523,8 +31822,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try residence_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6395; start_column=25; - end_line=6395; end_column=34; + start_line=6400; start_column=25; + end_line=6400; end_column=34; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -27572,8 +31871,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C ( if ((log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6369; start_column=9; - end_line=6396; end_column=10; + start_line=6374; start_column=9; + end_line=6401; end_column=10; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -27589,7 +31888,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (traitement_formule_.CalculAidePersonnaliseeLogementLocatif.traitement_aide_finale)}))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1467; start_column=14; end_line=1467; end_column=36; + start_line=1469; start_column=14; end_line=1469; end_column=36; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -27616,8 +31915,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try (location_.Location.loyer_principal) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1477; start_column=31; - end_line=1477; end_column=55; + start_line=1479; start_column=31; + end_line=1479; end_column=55; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -27629,8 +31928,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try ressources_menage_avec_arrondi_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1472; start_column=43; - end_line=1472; end_column=60; + start_line=1474; start_column=43; + end_line=1474; end_column=60; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -27645,8 +31944,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1479; start_column=15; - end_line=1479; end_column=69; + start_line=1481; start_column=15; + end_line=1481; end_column=69; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -27658,8 +31957,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try date_courante_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1475; start_column=29; - end_line=1475; end_column=42; + start_line=1477; start_column=29; + end_line=1477; end_column=42; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -27671,8 +31970,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try nombre_personnes_a_charge_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1473; start_column=41; - end_line=1473; end_column=66; + start_line=1475; start_column=41; + end_line=1475; end_column=66; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -27684,8 +31983,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try situation_familiale_calcul_apl_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1476; start_column=46; - end_line=1476; end_column=76; + start_line=1478; start_column=46; + end_line=1478; end_column=76; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -27697,8 +31996,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try zone_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1474; start_column=20; - end_line=1474; end_column=24; + start_line=1476; start_column=20; + end_line=1476; end_column=24; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -27712,8 +32011,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1480; start_column=36; - end_line=1480; end_column=65; + start_line=1482; start_column=36; + end_line=1482; end_column=65; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -27728,8 +32027,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1483; start_column=15; - end_line=1483; end_column=80; + start_line=1485; start_column=15; + end_line=1485; end_column=80; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -27741,8 +32040,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try type_aide_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1484; start_column=25; - end_line=1484; end_column=34; + start_line=1486; start_column=25; + end_line=1486; end_column=34; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -27754,8 +32053,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try (location_.Location.colocation) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1481; start_column=26; - end_line=1481; end_column=45; + start_line=1483; start_column=26; + end_line=1483; end_column=45; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -27777,8 +32076,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1486; start_column=16; - end_line=1489; end_column=39; + start_line=1488; start_column=16; + end_line=1491; end_column=39; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -27792,8 +32091,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1490; start_column=38; - end_line=1490; end_column=69; + start_line=1492; start_column=38; + end_line=1492; end_column=69; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -27805,8 +32104,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try residence_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1491; start_column=25; - end_line=1491; end_column=34; + start_line=1493; start_column=25; + end_line=1493; end_column=34; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -27853,8 +32152,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C ( if ((log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1471; start_column=9; - end_line=1492; end_column=10; + start_line=1473; start_column=9; + end_line=1494; end_column=10; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -27888,8 +32187,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1530; start_column=38; - end_line=1530; end_column=72; + start_line=1532; start_column=38; + end_line=1532; end_column=72; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -27901,8 +32200,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try ressources_menage_avec_arrondi_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1525; start_column=44; - end_line=1525; end_column=61; + start_line=1527; start_column=44; + end_line=1527; end_column=61; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -27914,8 +32213,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try nombre_personnes_a_charge_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1526; start_column=42; - end_line=1526; end_column=67; + start_line=1528; start_column=42; + end_line=1528; end_column=67; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -27927,8 +32226,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try situation_familiale_calcul_apl_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1529; start_column=47; - end_line=1529; end_column=77; + start_line=1531; start_column=47; + end_line=1531; end_column=77; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -27943,8 +32242,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1531; start_column=38; - end_line=1531; end_column=80; + start_line=1533; start_column=38; + end_line=1533; end_column=80; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -27959,8 +32258,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1532; start_column=36; - end_line=1532; end_column=68; + start_line=1534; start_column=36; + end_line=1534; end_column=68; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -27975,8 +32274,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1534; start_column=14; - end_line=1534; end_column=66; + start_line=1536; start_column=14; + end_line=1536; end_column=66; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -27991,8 +32290,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1535; start_column=37; - end_line=1535; end_column=70; + start_line=1537; start_column=37; + end_line=1537; end_column=70; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -28005,8 +32304,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C try (proprietaire_.Proprietaire.copropriete) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1536; start_column=28; - end_line=1536; end_column=52; + start_line=1538; start_column=28; + end_line=1538; end_column=52; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -28021,8 +32320,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1537; start_column=40; - end_line=1537; end_column=76; + start_line=1539; start_column=40; + end_line=1539; end_column=76; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -28034,8 +32333,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try zone_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1527; start_column=21; - end_line=1527; end_column=25; + start_line=1529; start_column=21; + end_line=1529; end_column=25; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -28050,8 +32349,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1538; start_column=26; - end_line=1538; end_column=53; + start_line=1540; start_column=26; + end_line=1540; end_column=53; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -28066,8 +32365,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1539; start_column=36; - end_line=1539; end_column=68; + start_line=1541; start_column=36; + end_line=1541; end_column=68; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -28079,8 +32378,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try date_courante_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1528; start_column=30; - end_line=1528; end_column=43; + start_line=1530; start_column=30; + end_line=1530; end_column=43; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -28124,8 +32423,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C ( if ((log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1524; start_column=10; - end_line=1540; end_column=11; + start_line=1526; start_column=10; + end_line=1542; end_column=11; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -28155,8 +32454,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C try (logement_foyer__.LogementFoyer.type_user) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1511; start_column=35; - end_line=1511; end_column=55; + start_line=1513; start_column=35; + end_line=1513; end_column=55; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -28171,8 +32470,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1512; start_column=37; - end_line=1512; end_column=74; + start_line=1514; start_column=37; + end_line=1514; end_column=74; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -28184,8 +32483,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try ressources_menage_avec_arrondi_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1504; start_column=43; - end_line=1504; end_column=60; + start_line=1506; start_column=43; + end_line=1506; end_column=60; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -28197,8 +32496,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try nombre_personnes_a_charge_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1505; start_column=41; - end_line=1505; end_column=66; + start_line=1507; start_column=41; + end_line=1507; end_column=66; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -28210,8 +32509,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try situation_familiale_calcul_apl_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1509; start_column=46; - end_line=1509; end_column=76; + start_line=1511; start_column=46; + end_line=1511; end_column=76; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -28223,8 +32522,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C try zone_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1506; start_column=20; - end_line=1506; end_column=24; + start_line=1508; start_column=20; + end_line=1508; end_column=24; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -28236,8 +32535,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try date_courante_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1508; start_column=29; - end_line=1508; end_column=42; + start_line=1510; start_column=29; + end_line=1510; end_column=42; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -28251,8 +32550,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1510; start_column=25; - end_line=1510; end_column=50; + start_line=1512; start_column=25; + end_line=1512; end_column=50; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -28264,8 +32563,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try residence_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1507; start_column=25; - end_line=1507; end_column=34; + start_line=1509; start_column=25; + end_line=1509; end_column=34; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -28322,8 +32621,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C ( if ((log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1503; start_column=9; - end_line=1513; end_column=10; + start_line=1505; start_column=9; + end_line=1515; end_column=10; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -28340,7 +32639,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=822; start_column=11; end_line=822; end_column=33; + start_line=829; start_column=11; end_line=829; end_column=33; law_headings=["Tous secteurs"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -28353,15 +32652,15 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=825; start_column=12; end_line=825; end_column=34; + start_line=832; start_column=12; end_line=832; end_column=34; law_headings=["Tous secteurs"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1457; start_column=14; - end_line=1457; end_column=36; + start_line=1459; start_column=14; + end_line=1459; end_column=36; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -28376,7 +32675,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=825; start_column=12; end_line=825; end_column=34; + start_line=832; start_column=12; end_line=832; end_column=34; law_headings=["Tous secteurs"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -28384,7 +32683,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=825; start_column=12; end_line=825; end_column=34; + start_line=832; start_column=12; end_line=832; end_column=34; law_headings=["Tous secteurs"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -28395,14 +32694,14 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=824; start_column=12; end_line=824; end_column=31; + start_line=831; start_column=12; end_line=831; end_column=31; law_headings=["Tous secteurs"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1455; start_column=14; end_line=1455; end_column=33; + start_line=1457; start_column=14; end_line=1457; end_column=33; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -28416,7 +32715,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=824; start_column=12; end_line=824; end_column=31; + start_line=831; start_column=12; end_line=831; end_column=31; law_headings=["Tous secteurs"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; @@ -28511,8 +32810,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5459; start_column=14; - end_line=5459; end_column=46; + start_line=5464; start_column=14; + end_line=5464; end_column=46; law_headings=["Article R861-5"; "Capitre I : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; "Titre VI : Disposition particulières à l'outre-mer"; @@ -28724,8 +33023,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1377; start_column=5; - end_line=1377; end_column=40; + start_line=1376; start_column=5; + end_line=1376; end_column=40; law_headings=["Article L861-5"; "Section 2 : Dispositions communes aux aides personnelles au logement"; "Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; @@ -29017,8 +33316,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1335; start_column=5; - end_line=1335; end_column=40; + start_line=1334; start_column=5; + end_line=1334; end_column=40; law_headings=["Article L861-5"; "Section 2 : Dispositions communes aux aides personnelles au logement"; "Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; @@ -29454,9 +33753,9 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (embed_duration) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5720; + start_line=5725; start_column=24; - end_line=5720; end_column=59; + end_line=5725; end_column=59; law_headings= ["Article R862-2"; "Section I : Dispositions communes aux aides personnelles au logement"; @@ -29469,9 +33768,9 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (_: unit) -> handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5720; + start_line=5725; start_column=24; - end_line=5720; end_column=59; + end_line=5725; end_column=59; law_headings= ["Article R862-2"; "Section I : Dispositions communes aux aides personnelles au logement"; @@ -29484,9 +33783,9 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (_: unit) -> handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5720; + start_line=5725; start_column=24; - end_line=5720; end_column=59; + end_line=5725; end_column=59; law_headings= ["Article R862-2"; "Section I : Dispositions communes aux aides personnelles au logement"; @@ -29499,9 +33798,9 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (_: unit) -> handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5720; + start_line=5725; start_column=24; - end_line=5720; end_column=59; + end_line=5725; end_column=59; law_headings= ["Article R862-2"; "Section I : Dispositions communes aux aides personnelles au logement"; @@ -29514,9 +33813,9 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5721; + start_line=5726; start_column=5; - end_line=5724; end_column=28; + end_line=5729; end_column=28; law_headings= ["Article R862-2"; "Section I : Dispositions communes aux aides personnelles au logement"; @@ -29565,9 +33864,9 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5626; + start_line=5631; start_column=6; - end_line=5632; end_column=30; + end_line=5637; end_column=30; law_headings= ["Article D861-9"; "Section 2 : Allocations de logement"; @@ -29822,8 +34121,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5275; start_column=5; - end_line=5276; end_column=34; + start_line=5280; start_column=5; + end_line=5281; end_column=34; law_headings=["Article R844-4"; "Chapitre IV : Conditions de peuplement"; "Titre IV : Allocations de Logement"; @@ -29838,8 +34137,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (fun (_: unit) -> false))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5268; start_column=5; - end_line=5270; end_column=58; + start_line=5273; start_column=5; + end_line=5275; end_column=58; law_headings=["Article R844-4"; "Chapitre IV : Conditions de peuplement"; "Titre IV : Allocations de Logement"; @@ -30236,7 +34535,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1199; start_column=5; - end_line=1220; end_column=10; + end_line=1222; end_column=10; law_headings=["Article R823-4"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -30284,9 +34583,9 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1211; + start_line=1212; start_column=38; - end_line=1211; end_column=59; + end_line=1212; end_column=59; law_headings= ["Article R823-4"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -30302,9 +34601,9 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1212; + start_line=1213; start_column=37; - end_line=1212; end_column=50; + end_line=1213; end_column=50; law_headings= ["Article R823-4"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -30321,9 +34620,9 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1213; + start_line=1214; start_column=30; - end_line=1213; end_column=35; + end_line=1214; end_column=35; law_headings= ["Article R823-4"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -30349,9 +34648,9 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme ( if ((log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1210; + start_line=1211; start_column=17; - end_line=1213; end_column=37; + end_line=1214; end_column=37; law_headings=["Article R823-4"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -30463,8 +34762,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1244; start_column=4; - end_line=1250; end_column=48; + start_line=1246; start_column=4; + end_line=1252; end_column=48; law_headings=["Article R823-4"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -30487,8 +34786,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1225; start_column=5; - end_line=1225; end_column=44; + start_line=1227; start_column=5; + end_line=1227; end_column=44; law_headings=["Article R823-4"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -30556,9 +34855,9 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1838; + start_line=1837; start_column=5; - end_line=1844; end_column=34; + end_line=1843; end_column=34; law_headings= ["Article L862-3"; "Titre VI : Dispositions particulières à l'outre-mer"; @@ -30619,9 +34918,9 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1568; + start_line=1567; start_column=5; - end_line=1574; end_column=34; + end_line=1573; end_column=34; law_headings=["Article L861-6"; "Section 4 : Allocations de logement"; "Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; @@ -30990,13 +35289,13 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1093; start_column=11; end_line=1093; end_column=31; + start_line=1104; start_column=11; end_line=1104; end_column=31; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1426; start_column=14; end_line=1426; end_column=34; + start_line=1428; start_column=14; end_line=1428; end_column=34; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31021,7 +35320,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1093; start_column=11; end_line=1093; end_column=31; + start_line=1104; start_column=11; end_line=1104; end_column=31; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -31031,13 +35330,13 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1085; start_column=10; end_line=1085; end_column=22; + start_line=1096; start_column=10; end_line=1096; end_column=22; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1970; start_column=14; end_line=1970; end_column=31; + start_line=1972; start_column=14; end_line=1972; end_column=31; law_headings=["Article D823-17"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -31052,7 +35351,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1085; start_column=10; end_line=1085; end_column=22; + start_line=1096; start_column=10; end_line=1096; end_column=22; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -31062,13 +35361,13 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1094; start_column=11; end_line=1094; end_column=41; + start_line=1105; start_column=11; end_line=1105; end_column=41; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=88; start_column=14; end_line=88; end_column=44; + start_line=90; start_column=14; end_line=90; end_column=44; law_headings=["Article 7"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -31091,7 +35390,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1094; start_column=11; end_line=1094; end_column=41; + start_line=1105; start_column=11; end_line=1105; end_column=41; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -31101,22 +35400,22 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1096; start_column=11; end_line=1096; end_column=33; + start_line=1107; start_column=11; end_line=1107; end_column=33; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1096; start_column=11; - end_line=1096; end_column=33; + start_line=1107; start_column=11; + end_line=1107; end_column=33; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6408; start_column=24; - end_line=6408; end_column=46; + start_line=6413; start_column=24; + end_line=6413; end_column=46; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -31166,8 +35465,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6420; start_column=31; - end_line=6420; end_column=56; + start_line=6425; start_column=31; + end_line=6425; end_column=56; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -31179,8 +35478,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try ressources_menage_avec_arrondi_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6414; start_column=43; - end_line=6414; end_column=60; + start_line=6419; start_column=43; + end_line=6419; end_column=60; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -31195,8 +35494,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6422; start_column=15; - end_line=6422; end_column=76; + start_line=6427; start_column=15; + end_line=6427; end_column=76; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -31208,8 +35507,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try date_courante_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6417; start_column=29; - end_line=6417; end_column=42; + start_line=6422; start_column=29; + end_line=6422; end_column=42; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -31221,8 +35520,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try nombre_personnes_a_charge_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6415; start_column=41; - end_line=6415; end_column=66; + start_line=6420; start_column=41; + end_line=6420; end_column=66; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -31234,8 +35533,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try situation_familiale_calcul_apl_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6418; start_column=46; - end_line=6418; end_column=76; + start_line=6423; start_column=46; + end_line=6423; end_column=76; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -31247,8 +35546,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try zone_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6416; start_column=20; - end_line=6416; end_column=24; + start_line=6421; start_column=20; + end_line=6421; end_column=24; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -31260,8 +35559,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try true with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6426; start_column=36; - end_line=6426; end_column=40; + start_line=6431; start_column=36; + end_line=6431; end_column=40; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -31273,8 +35572,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try false with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6433; start_column=72; - end_line=6433; end_column=76; + start_line=6438; start_column=72; + end_line=6438; end_column=76; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -31286,8 +35585,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try type_aide_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6434; start_column=25; - end_line=6434; end_column=34; + start_line=6439; start_column=25; + end_line=6439; end_column=34; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -31299,8 +35598,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try false with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6430; start_column=26; - end_line=6430; end_column=30; + start_line=6435; start_column=26; + end_line=6435; end_column=30; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -31312,8 +35611,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try (money_of_cents_string "0") with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6437; start_column=42; - end_line=6437; end_column=45; + start_line=6442; start_column=42; + end_line=6442; end_column=45; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -31328,8 +35627,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6438; start_column=38; - end_line=6438; end_column=76; + start_line=6443; start_column=38; + end_line=6443; end_column=76; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -31341,8 +35640,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try residence_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6413; start_column=25; - end_line=6413; end_column=34; + start_line=6418; start_column=25; + end_line=6418; end_column=34; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -31358,8 +35657,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6439; start_column=42; - end_line=6439; end_column=57; + start_line=6444; start_column=42; + end_line=6444; end_column=57; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -31396,8 +35695,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL ( if ((log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6412; start_column=9; - end_line=6440; end_column=10; + start_line=6417; start_column=9; + end_line=6445; end_column=10; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -31413,7 +35712,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (traitement_formule_.CalculAllocationLogementLocatif.traitement_aide_finale)}))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1553; start_column=14; end_line=1553; end_column=36; + start_line=1555; start_column=14; end_line=1555; end_column=36; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31439,8 +35738,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try (location_.Location.loyer_principal) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1564; start_column=31; - end_line=1564; end_column=55; + start_line=1566; start_column=31; + end_line=1566; end_column=55; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31452,8 +35751,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try ressources_menage_avec_arrondi_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1559; start_column=43; - end_line=1559; end_column=60; + start_line=1561; start_column=43; + end_line=1561; end_column=60; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31468,8 +35767,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1566; start_column=15; - end_line=1566; end_column=69; + start_line=1568; start_column=15; + end_line=1568; end_column=69; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31481,8 +35780,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try date_courante_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1562; start_column=29; - end_line=1562; end_column=42; + start_line=1564; start_column=29; + end_line=1564; end_column=42; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31494,8 +35793,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try nombre_personnes_a_charge_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1560; start_column=41; - end_line=1560; end_column=66; + start_line=1562; start_column=41; + end_line=1562; end_column=66; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31507,8 +35806,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try situation_familiale_calcul_apl_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1563; start_column=46; - end_line=1563; end_column=76; + start_line=1565; start_column=46; + end_line=1565; end_column=76; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31520,8 +35819,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try zone_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1561; start_column=20; - end_line=1561; end_column=24; + start_line=1563; start_column=20; + end_line=1563; end_column=24; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31535,8 +35834,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1567; start_column=36; - end_line=1567; end_column=65; + start_line=1569; start_column=36; + end_line=1569; end_column=65; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31551,8 +35850,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1570; start_column=15; - end_line=1570; end_column=80; + start_line=1572; start_column=15; + end_line=1572; end_column=80; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31564,8 +35863,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try type_aide_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1571; start_column=25; - end_line=1571; end_column=34; + start_line=1573; start_column=25; + end_line=1573; end_column=34; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31577,8 +35876,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try (location_.Location.colocation) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1568; start_column=26; - end_line=1568; end_column=45; + start_line=1570; start_column=26; + end_line=1570; end_column=45; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31600,8 +35899,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1573; start_column=16; - end_line=1576; end_column=39; + start_line=1575; start_column=16; + end_line=1578; end_column=39; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31615,8 +35914,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1577; start_column=38; - end_line=1577; end_column=69; + start_line=1579; start_column=38; + end_line=1579; end_column=69; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31628,8 +35927,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try residence_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1558; start_column=25; - end_line=1558; end_column=34; + start_line=1560; start_column=25; + end_line=1560; end_column=34; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31644,8 +35943,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1578; start_column=42; - end_line=1578; end_column=77; + start_line=1580; start_column=42; + end_line=1580; end_column=77; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31681,8 +35980,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL ( if ((log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1557; start_column=9; - end_line=1579; end_column=10; + start_line=1559; start_column=9; + end_line=1581; end_column=10; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31713,8 +36012,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try ressources_menage_avec_arrondi_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1613; start_column=44; - end_line=1613; end_column=61; + start_line=1615; start_column=44; + end_line=1615; end_column=61; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31726,8 +36025,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try nombre_personnes_a_charge_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1614; start_column=42; - end_line=1614; end_column=67; + start_line=1616; start_column=42; + end_line=1616; end_column=67; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31739,8 +36038,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try situation_familiale_calcul_apl_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1621; start_column=47; - end_line=1621; end_column=77; + start_line=1623; start_column=47; + end_line=1623; end_column=77; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31752,8 +36051,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try zone_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1615; start_column=21; - end_line=1615; end_column=25; + start_line=1617; start_column=21; + end_line=1617; end_column=25; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31765,8 +36064,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try residence_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1616; start_column=26; - end_line=1616; end_column=35; + start_line=1618; start_column=26; + end_line=1618; end_column=35; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31778,8 +36077,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try date_courante_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1620; start_column=30; - end_line=1620; end_column=43; + start_line=1622; start_column=30; + end_line=1622; end_column=43; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31794,8 +36093,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1622; start_column=38; - end_line=1622; end_column=72; + start_line=1624; start_column=38; + end_line=1624; end_column=72; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31810,8 +36109,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1630; start_column=40; - end_line=1630; end_column=76; + start_line=1632; start_column=40; + end_line=1632; end_column=76; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31826,8 +36125,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1625; start_column=36; - end_line=1625; end_column=68; + start_line=1627; start_column=36; + end_line=1627; end_column=68; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31842,8 +36141,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1624; start_column=38; - end_line=1624; end_column=79; + start_line=1626; start_column=38; + end_line=1626; end_column=79; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31858,8 +36157,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1627; start_column=14; - end_line=1627; end_column=66; + start_line=1629; start_column=14; + end_line=1629; end_column=66; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31874,8 +36173,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1628; start_column=37; - end_line=1628; end_column=70; + start_line=1630; start_column=37; + end_line=1630; end_column=70; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31890,8 +36189,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1623; start_column=40; - end_line=1623; end_column=76; + start_line=1625; start_column=40; + end_line=1625; end_column=76; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31904,8 +36203,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try (proprietaire_.Proprietaire.copropriete) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1629; start_column=28; - end_line=1629; end_column=52; + start_line=1631; start_column=28; + end_line=1631; end_column=52; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31920,8 +36219,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1618; start_column=11; - end_line=1619; end_column=81; + start_line=1620; start_column=11; + end_line=1621; end_column=81; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31959,8 +36258,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL ( if ((log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1612; start_column=10; - end_line=1631; end_column=11; + start_line=1614; start_column=10; + end_line=1633; end_column=11; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31988,8 +36287,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try (logement_foyer__.LogementFoyer.type_user) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1600; start_column=35; - end_line=1600; end_column=55; + start_line=1602; start_column=35; + end_line=1602; end_column=55; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32004,8 +36303,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1601; start_column=37; - end_line=1601; end_column=74; + start_line=1603; start_column=37; + end_line=1603; end_column=74; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32017,8 +36316,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try residence_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1593; start_column=25; - end_line=1593; end_column=34; + start_line=1595; start_column=25; + end_line=1595; end_column=34; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32031,8 +36330,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1597; start_column=25; - end_line=1597; end_column=50; + start_line=1599; start_column=25; + end_line=1599; end_column=50; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32044,8 +36343,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try ressources_menage_avec_arrondi_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1591; start_column=43; - end_line=1591; end_column=60; + start_line=1593; start_column=43; + end_line=1593; end_column=60; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32057,8 +36356,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try nombre_personnes_a_charge_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1592; start_column=41; - end_line=1592; end_column=66; + start_line=1594; start_column=41; + end_line=1594; end_column=66; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32070,8 +36369,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try situation_familiale_calcul_apl_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1596; start_column=46; - end_line=1596; end_column=76; + start_line=1598; start_column=46; + end_line=1598; end_column=76; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32083,8 +36382,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try zone_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1594; start_column=20; - end_line=1594; end_column=24; + start_line=1596; start_column=20; + end_line=1596; end_column=24; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32096,8 +36395,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try date_courante_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1595; start_column=29; - end_line=1595; end_column=42; + start_line=1597; start_column=29; + end_line=1597; end_column=42; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32112,8 +36411,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1599; start_column=13; - end_line=1599; end_column=64; + start_line=1601; start_column=13; + end_line=1601; end_column=64; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32156,8 +36455,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL ( if ((log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1590; start_column=9; - end_line=1602; end_column=10; + start_line=1592; start_column=9; + end_line=1604; end_column=10; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32174,7 +36473,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1096; start_column=11; end_line=1096; end_column=33; + start_line=1107; start_column=11; end_line=1107; end_column=33; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -32185,15 +36484,15 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1099; start_column=12; - end_line=1099; end_column=34; + start_line=1110; start_column=12; + end_line=1110; end_column=34; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1439; start_column=14; - end_line=1439; end_column=36; + start_line=1441; start_column=14; + end_line=1441; end_column=36; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32208,14 +36507,14 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1099; start_column=12; end_line=1099; end_column=34; + start_line=1110; start_column=12; end_line=1110; end_column=34; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1099; start_column=12; end_line=1099; end_column=34; + start_line=1110; start_column=12; end_line=1110; end_column=34; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -32224,13 +36523,49 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1098; start_column=12; end_line=1098; end_column=31; + start_line=1109; start_column=12; end_line=1109; end_column=31; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) + "Prologue : aides au logement"]} + ([|(fun (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=1109; start_column=12; + end_line=1109; end_column=31; + law_headings=["Tous secteurs"; "Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; + "Prologue : aides au logement"]} ([||]) + (fun (_: unit) -> (log_decision_taken + {filename = "examples/aides_logement/autres_sources.catala_fr"; + start_line=372; start_column=5; + end_line=373; end_column=34; + law_headings=["Article 7"; + "Décret n° 2021-1750 du 21 décembre 2021 portant diverses mesures sur les aides personnelles au logement et relatif aux aides personnelles au logement à Saint-Pierre-et-Miquelon"]} + (o_and + (match residence_ + with + | Collectivite.Guadeloupe _ -> false + | Collectivite.Guyane _ -> false + | Collectivite.Martinique _ -> false + | Collectivite.LaReunion _ -> false + | Collectivite.SaintBarthelemy _ -> false + | Collectivite.SaintMartin _ -> false + | Collectivite.Metropole _ -> false + | Collectivite.SaintPierreEtMiquelon _ -> true + | Collectivite.Mayotte _ -> false) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1)))))) + (fun (_: unit) -> + o_mult_mon_rat + (sous_calcul_traitement_.TraitementFormuleAideFinale.aide_finale_formule) + (o_div_rat_rat + (o_torat_int + (o_sub_int_int (integer_of_string "2026") + (o_getYear date_courante_))) + (decimal_of_string "8."))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1437; start_column=14; end_line=1437; end_column=33; + start_line=1439; start_column=14; end_line=1439; end_column=33; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32244,7 +36579,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1098; start_column=12; end_line=1098; end_column=31; + start_line=1109; start_column=12; end_line=1109; end_column=31; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -32271,7 +36606,7 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2078; start_column=14; end_line=2078; end_column=47; + start_line=2080; start_column=14; end_line=2080; end_column=47; law_headings=["Article D823-20"; "Section 2 : Prime de déménagement"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32307,8 +36642,8 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2054; start_column=5; - end_line=2059; end_column=77; + start_line=2056; start_column=5; + end_line=2061; end_column=77; law_headings=["Article D823-20"; "Section 2 : Prime de déménagement"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32511,8 +36846,8 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2063; start_column=6; - end_line=2074; end_column=75; + start_line=2065; start_column=6; + end_line=2076; end_column=75; law_headings=["Article D823-20"; "Section 2 : Prime de déménagement"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32565,11 +36900,11 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4215; start_column=14; end_line=4215; end_column=29; + start_line=4304; start_column=14; end_line=4304; end_column=29; law_headings=["Article 45"; "Chapitre VIII : Prime de déménagement"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) + (o_gte_dat_dat date_courante_ (date_of_numbers (2019) (10) (1))))) (fun (_: unit) -> o_add_mon_mon (o_mult_mon_rat @@ -32667,9 +37002,9 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5497; + start_line=5502; start_column=5; - end_line=5497; end_column=40; + end_line=5502; end_column=40; law_headings=["Article D861-7"; "Capitre I : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; "Titre VI : Disposition particulières à l'outre-mer"; @@ -32705,9 +37040,9 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1883; + start_line=1882; start_column=5; - end_line=1883; end_column=54; + end_line=1882; end_column=54; law_headings=["Article L863-2"; "Section 2 : Dispositions communes aux aides applicables à Saint-Pierre-et-Miquelon"; "Chapitre III : Saint-Pierre-et-Miquelon"; @@ -32742,8 +37077,8 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli (fun (_: unit) -> false))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1315; start_column=5; - end_line=1315; end_column=40; + start_line=1314; start_column=5; + end_line=1314; end_column=40; law_headings=["Article L861-4"; "Section 2 : Dispositions communes aux aides personnelles au logement"; "Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; @@ -32812,7 +37147,7 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2104; start_column=14; end_line=2104; end_column=40; + start_line=2106; start_column=14; end_line=2106; end_column=40; law_headings=["Article D823-22"; "Section 2 : Prime de déménagement"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32852,7 +37187,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4177; start_column=14; end_line=4177; end_column=28; + start_line=4179; start_column=14; end_line=4179; end_column=28; law_headings=["Article D841-1"; "Chapitre 1 : Champ d'application"; "Titre IV : Allocations de Logement"; @@ -33025,8 +37360,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1750; start_column=9; - end_line=1750; end_column=29; + start_line=1749; start_column=9; + end_line=1749; end_column=29; law_headings=["Article L862-3"; "Titre VI : Dispositions particulières à l'outre-mer"; "Livre VIII : Aides personnelles au logement"; @@ -33047,8 +37382,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (fun (_: unit) -> false))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1444; start_column=9; - end_line=1444; end_column=29; + start_line=1443; start_column=9; + end_line=1443; end_column=29; law_headings=["Article L861-6"; "Section 4 : Allocations de logement"; "Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; @@ -33140,8 +37475,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1749; start_column=9; - end_line=1749; end_column=29; + start_line=1748; start_column=9; + end_line=1748; end_column=29; law_headings=["Article L862-3"; "Titre VI : Dispositions particulières à l'outre-mer"; "Livre VIII : Aides personnelles au logement"; @@ -33162,8 +37497,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (fun (_: unit) -> false))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1443; start_column=9; - end_line=1443; end_column=29; + start_line=1442; start_column=9; + end_line=1442; end_column=29; law_headings=["Article L861-6"; "Section 4 : Allocations de logement"; "Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; @@ -33255,8 +37590,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1748; start_column=9; - end_line=1748; end_column=29; + start_line=1747; start_column=9; + end_line=1747; end_column=29; law_headings=["Article L862-3"; "Titre VI : Dispositions particulières à l'outre-mer"; "Livre VIII : Aides personnelles au logement"; @@ -33277,8 +37612,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (fun (_: unit) -> false))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1442; start_column=9; - end_line=1442; end_column=29; + start_line=1441; start_column=9; + end_line=1441; end_column=29; law_headings=["Article L861-6"; "Section 4 : Allocations de logement"; "Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; @@ -33368,9 +37703,9 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4370; + start_line=4372; start_column=5; - end_line=4375; end_column=28; + end_line=4377; end_column=28; law_headings=["Article R842-5"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -33413,9 +37748,9 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4353; + start_line=4355; start_column=5; - end_line=4358; end_column=28; + end_line=4360; end_column=28; law_headings=["Article R842-5"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -33457,8 +37792,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4336; start_column=5; - end_line=4343; end_column=28; + start_line=4338; start_column=5; + end_line=4345; end_column=28; law_headings=["Article R842-5"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -33512,8 +37847,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (fun (_: unit) -> raise EmptyError))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4306; start_column=5; - end_line=4308; end_column=28; + start_line=4308; start_column=5; + end_line=4310; end_column=28; law_headings=["Article R842-5"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -33624,8 +37959,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4772; start_column=9; - end_line=4772; end_column=68; + start_line=4777; start_column=9; + end_line=4777; end_column=68; law_headings=["Article R842-14"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -33636,8 +37971,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4772; start_column=9; - end_line=4772; end_column=68; + start_line=4777; start_column=9; + end_line=4777; end_column=68; law_headings=["Article R842-14"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -33662,7 +37997,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi "éligibilité_commune.condition_logement_surface"] (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4773; start_column=9; end_line=4773; end_column=55; + start_line=4778; start_column=9; end_line=4778; end_column=55; law_headings=["Article R842-14"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -33672,7 +38007,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4773; start_column=9; end_line=4773; end_column=55; + start_line=4778; start_column=9; end_line=4778; end_column=55; law_headings=["Article R842-14"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -33891,9 +38226,9 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1812; + start_line=1811; start_column=5; - end_line=1812; end_column=66; + end_line=1811; end_column=66; law_headings= ["Article L862-3"; "Titre VI : Dispositions particulières à l'outre-mer"; @@ -33939,9 +38274,9 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1772; + start_line=1771; start_column=5; - end_line=1793; end_column=9; + end_line=1792; end_column=9; law_headings= ["Article L862-3"; "Titre VI : Dispositions particulières à l'outre-mer"; @@ -34068,9 +38403,9 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1522; + start_line=1521; start_column=5; - end_line=1522; end_column=66; + end_line=1521; end_column=66; law_headings= ["Article L861-6"; "Section 4 : Allocations de logement"; @@ -34118,9 +38453,9 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1480; + start_line=1479; start_column=5; - end_line=1501; end_column=9; + end_line=1500; end_column=9; law_headings= ["Article L861-6"; "Section 4 : Allocations de logement"; @@ -34557,8 +38892,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1632; start_column=5; - end_line=1633; end_column=79; + start_line=1631; start_column=5; + end_line=1632; end_column=79; law_headings=["Article L816-8"; "Section 4 : Allocations de logement"; "Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; @@ -34586,8 +38921,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi ()))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1598; start_column=5; - end_line=1607; end_column=28; + start_line=1597; start_column=5; + end_line=1606; end_column=28; law_headings=["Article L861-6"; "Section 4 : Allocations de logement"; "Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; @@ -34646,8 +38981,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1182; start_column=5; - end_line=1182; end_column=73; + start_line=1181; start_column=5; + end_line=1181; end_column=73; law_headings=["Article L841-3"; "Chapitre Ier : Champ d'application"; "Titre IV : Allocations de logement"; @@ -34660,8 +38995,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi ()))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1196; start_column=5; - end_line=1199; end_column=28; + start_line=1195; start_column=5; + end_line=1198; end_column=28; law_headings=["Article L841-4"; "Chapitre Ier : Champ d'application"; "Titre IV : Allocations de logement"; @@ -34759,8 +39094,8 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3016; start_column=5; - end_line=3019; end_column=41; + start_line=3018; start_column=5; + end_line=3021; end_column=41; law_headings=["Article R832-7"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -34800,8 +39135,8 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2981; start_column=5; - end_line=2983; end_column=42; + start_line=2983; start_column=5; + end_line=2985; end_column=42; law_headings=["Article R832-5"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -34978,7 +39313,7 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge (embed_date) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5462; start_column=14; end_line=5462; end_column=66; + start_line=5467; start_column=14; end_line=5467; end_column=66; law_headings=["Article R861-5"; "Capitre I : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; "Titre VI : Disposition particulières à l'outre-mer"; @@ -34988,7 +39323,7 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5463; start_column=5; end_line=5464; end_column=53; + start_line=5468; start_column=5; end_line=5469; end_column=53; law_headings=["Article R861-5"; "Capitre I : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; "Titre VI : Disposition particulières à l'outre-mer"; @@ -35048,14 +39383,14 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4560; start_column=6; - end_line=4560; end_column=43; + start_line=4638; start_column=6; + end_line=4638; end_column=43; law_headings=["Article 49"; "Chapitre XI : Dispositions communes"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (o_and (o_gte_dat_dat date_courante_ - (date_of_numbers (2019) (1) (1))) + (date_of_numbers (2019) (10) (1))) (match ((menage_.Menage.logement).Logement.zone) with | ZoneDHabitation.Zone1 _ -> false @@ -35105,8 +39440,8 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1413; start_column=5; - end_line=1416; end_column=30; + start_line=1412; start_column=5; + end_line=1415; end_column=30; law_headings=["Article L861-5-1"; "Section 3 : Aide personnalisée au logement"; "Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; @@ -35191,9 +39526,9 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3688; + start_line=3690; start_column=5; - end_line=3693; end_column=30; + end_line=3695; end_column=30; law_headings=["Article R832-21"; "Sous-Section 1 : Conditions d'assimilation des logements-foyers aux logements à usage locatif"; "Section 3 : Logements-foyers"; @@ -35557,8 +39892,8 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1279; start_column=5; - end_line=1280; end_column=54; + start_line=1278; start_column=5; + end_line=1279; end_column=54; law_headings=["Article L860-3"; "Titre VI : Dispositions particulières à l'outre-mer"; "Livre VIII : Aides personnelles au logement"; @@ -35625,19 +39960,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "éligibilité_allocation_logement.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1179; start_column=14; end_line=1179; end_column=59; + start_line=1190; start_column=14; end_line=1190; end_column=59; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1179; start_column=14; end_line=1179; end_column=59; + start_line=1190; start_column=14; end_line=1190; end_column=59; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1179; start_column=14; end_line=1179; end_column=59; + start_line=1190; start_column=14; end_line=1190; end_column=59; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let eligibilite_allocation_logement_dot_menage_: Menage.t = try ((log_variable_definition @@ -35645,19 +39980,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "éligibilité_allocation_logement.ménage"] (embed_menage) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1171; start_column=14; end_line=1171; end_column=52; + start_line=1182; start_column=14; end_line=1182; end_column=52; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1171; start_column=14; end_line=1171; end_column=52; + start_line=1182; start_column=14; end_line=1182; end_column=52; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> menage_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1171; start_column=14; end_line=1171; end_column=52; + start_line=1182; start_column=14; end_line=1182; end_column=52; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let eligibilite_allocation_logement_dot_demandeur_: Demandeur.t = try ((log_variable_definition @@ -35665,19 +40000,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "éligibilité_allocation_logement.demandeur"] (embed_demandeur) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1175; start_column=14; end_line=1175; end_column=55; + start_line=1186; start_column=14; end_line=1186; end_column=55; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1175; start_column=14; end_line=1175; end_column=55; + start_line=1186; start_column=14; end_line=1186; end_column=55; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> demandeur_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1175; start_column=14; end_line=1175; end_column=55; + start_line=1186; start_column=14; end_line=1186; end_column=55; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let eligibilite_allocation_logement_dot_beneficie_aide_personnalisee_logement_: bool = try ((log_variable_definition @@ -35736,19 +40071,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "éligibilité_aide_personnalisée_logement.ménage"] (embed_menage) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1169; start_column=14; end_line=1169; end_column=60; + start_line=1180; start_column=14; end_line=1180; end_column=60; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1169; start_column=14; end_line=1169; end_column=60; + start_line=1180; start_column=14; end_line=1180; end_column=60; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> menage_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1169; start_column=14; end_line=1169; end_column=60; + start_line=1180; start_column=14; end_line=1180; end_column=60; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let eligibilite_aide_personnalisee_logement_dot_demandeur_: Demandeur.t = try ((log_variable_definition @@ -35757,19 +40092,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_demandeur) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1173; start_column=14; end_line=1173; end_column=63; + start_line=1184; start_column=14; end_line=1184; end_column=63; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1173; start_column=14; end_line=1173; end_column=63; + start_line=1184; start_column=14; end_line=1184; end_column=63; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> demandeur_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1173; start_column=14; end_line=1173; end_column=63; + start_line=1184; start_column=14; end_line=1184; end_column=63; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let eligibilite_aide_personnalisee_logement_dot_date_courante_: date = try ((log_variable_definition @@ -35778,19 +40113,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1177; start_column=14; end_line=1177; end_column=67; + start_line=1188; start_column=14; end_line=1188; end_column=67; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1177; start_column=14; end_line=1177; end_column=67; + start_line=1188; start_column=14; end_line=1188; end_column=67; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1177; start_column=14; end_line=1177; end_column=67; + start_line=1188; start_column=14; end_line=1188; end_column=67; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let result_: EligibiliteAidePersonnaliseeLogement.t = (log_end_call ["CalculetteAidesAuLogement"; @@ -35817,19 +40152,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "calcul_allocation_logement.mode_occupation"] (embed_mode_occupation) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1183; start_column=14; end_line=1183; end_column=56; + start_line=1194; start_column=14; end_line=1194; end_column=56; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1183; start_column=14; end_line=1183; end_column=56; + start_line=1194; start_column=14; end_line=1194; end_column=56; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> (menage_.Menage.logement).Logement.mode_occupation)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1183; start_column=14; end_line=1183; end_column=56; + start_line=1194; start_column=14; end_line=1194; end_column=56; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_allocation_logement_dot_ressources_menage_sans_arrondi_: money = try ((log_variable_definition @@ -35838,19 +40173,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1187; start_column=14; end_line=1187; end_column=58; + start_line=1198; start_column=14; end_line=1198; end_column=58; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1187; start_column=14; end_line=1187; end_column=58; + start_line=1198; start_column=14; end_line=1198; end_column=58; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> ressources_menage_prises_en_compte_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1187; start_column=14; end_line=1187; end_column=58; + start_line=1198; start_column=14; end_line=1198; end_column=58; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_allocation_logement_dot_situation_familiale_: SituationFamiliale.t = try ((log_variable_definition @@ -35859,19 +40194,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_situation_familiale) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1191; start_column=14; end_line=1191; end_column=60; + start_line=1202; start_column=14; end_line=1202; end_column=60; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1191; start_column=14; end_line=1191; end_column=60; + start_line=1202; start_column=14; end_line=1202; end_column=60; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> menage_.Menage.situation_familiale)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1191; start_column=14; end_line=1191; end_column=60; + start_line=1202; start_column=14; end_line=1202; end_column=60; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_allocation_logement_dot_nombre_personnes_a_charge_: integer = try ((log_variable_definition @@ -35880,12 +40215,12 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_integer) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1198; start_column=14; end_line=1198; end_column=66; + start_line=1209; start_column=14; end_line=1209; end_column=66; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1198; start_column=14; end_line=1198; end_column=66; + start_line=1209; start_column=14; end_line=1209; end_column=66; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> @@ -35893,7 +40228,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1198; start_column=14; end_line=1198; end_column=66; + start_line=1209; start_column=14; end_line=1209; end_column=66; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_allocation_logement_dot_zone_: ZoneDHabitation.t = try ((log_variable_definition @@ -35901,19 +40236,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_zone_d_habitation) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1202; start_column=14; end_line=1202; end_column=45; + start_line=1213; start_column=14; end_line=1213; end_column=45; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1202; start_column=14; end_line=1202; end_column=45; + start_line=1213; start_column=14; end_line=1213; end_column=45; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> (menage_.Menage.logement).Logement.zone)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1202; start_column=14; end_line=1202; end_column=45; + start_line=1213; start_column=14; end_line=1213; end_column=45; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_allocation_logement_dot_date_courante_: date = try ((log_variable_definition @@ -35921,19 +40256,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "calcul_allocation_logement.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1206; start_column=14; end_line=1206; end_column=54; + start_line=1217; start_column=14; end_line=1217; end_column=54; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1206; start_column=14; end_line=1206; end_column=54; + start_line=1217; start_column=14; end_line=1217; end_column=54; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1206; start_column=14; end_line=1206; end_column=54; + start_line=1217; start_column=14; end_line=1217; end_column=54; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_allocation_logement_dot_type_aide_: TypeAidesPersonnelleLogement.t = try ((log_variable_definition @@ -35983,19 +40318,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_collectivite) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1210; start_column=14; end_line=1210; end_column=50; + start_line=1221; start_column=14; end_line=1221; end_column=50; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1210; start_column=14; end_line=1210; end_column=50; + start_line=1221; start_column=14; end_line=1221; end_column=50; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> menage_.Menage.residence)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1210; start_column=14; end_line=1210; end_column=50; + start_line=1221; start_column=14; end_line=1221; end_column=50; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let result_: CalculAllocationLogement.t = (log_end_call ["CalculetteAidesAuLogement"; "calcul_allocation_logement"; @@ -36027,19 +40362,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_mode_occupation) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1181; start_column=14; end_line=1181; end_column=64; + start_line=1192; start_column=14; end_line=1192; end_column=64; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1181; start_column=14; end_line=1181; end_column=64; + start_line=1192; start_column=14; end_line=1192; end_column=64; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> (menage_.Menage.logement).Logement.mode_occupation)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1181; start_column=14; end_line=1181; end_column=64; + start_line=1192; start_column=14; end_line=1192; end_column=64; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_aide_personnalisee_logement_dot_type_aide_: TypeAidesPersonnelleLogement.t = try ((log_variable_definition @@ -36084,19 +40419,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1185; start_column=14; end_line=1185; end_column=66; + start_line=1196; start_column=14; end_line=1196; end_column=66; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1185; start_column=14; end_line=1185; end_column=66; + start_line=1196; start_column=14; end_line=1196; end_column=66; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> ressources_menage_prises_en_compte_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1185; start_column=14; end_line=1185; end_column=66; + start_line=1196; start_column=14; end_line=1196; end_column=66; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_aide_personnalisee_logement_dot_situation_familiale_: SituationFamiliale.t = try ((log_variable_definition @@ -36105,19 +40440,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_situation_familiale) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1189; start_column=14; end_line=1189; end_column=68; + start_line=1200; start_column=14; end_line=1200; end_column=68; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1189; start_column=14; end_line=1189; end_column=68; + start_line=1200; start_column=14; end_line=1200; end_column=68; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> menage_.Menage.situation_familiale)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1189; start_column=14; end_line=1189; end_column=68; + start_line=1200; start_column=14; end_line=1200; end_column=68; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_aide_personnalisee_logement_dot_nombre_personnes_a_charge_: integer = try ((log_variable_definition @@ -36126,12 +40461,12 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_integer) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1194; start_column=5; end_line=1194; end_column=65; + start_line=1205; start_column=5; end_line=1205; end_column=65; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1194; start_column=5; end_line=1194; end_column=65; + start_line=1205; start_column=5; end_line=1205; end_column=65; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> @@ -36139,7 +40474,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1194; start_column=5; end_line=1194; end_column=65; + start_line=1205; start_column=5; end_line=1205; end_column=65; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_aide_personnalisee_logement_dot_zone_: ZoneDHabitation.t = try ((log_variable_definition @@ -36147,19 +40482,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "calcul_aide_personnalisée_logement.zone"] (embed_zone_d_habitation) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1200; start_column=14; end_line=1200; end_column=53; + start_line=1211; start_column=14; end_line=1211; end_column=53; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1200; start_column=14; end_line=1200; end_column=53; + start_line=1211; start_column=14; end_line=1211; end_column=53; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> (menage_.Menage.logement).Logement.zone)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1200; start_column=14; end_line=1200; end_column=53; + start_line=1211; start_column=14; end_line=1211; end_column=53; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_aide_personnalisee_logement_dot_date_courante_: date = try ((log_variable_definition @@ -36167,19 +40502,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "calcul_aide_personnalisée_logement.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1204; start_column=14; end_line=1204; end_column=62; + start_line=1215; start_column=14; end_line=1215; end_column=62; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1204; start_column=14; end_line=1204; end_column=62; + start_line=1215; start_column=14; end_line=1215; end_column=62; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1204; start_column=14; end_line=1204; end_column=62; + start_line=1215; start_column=14; end_line=1215; end_column=62; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_aide_personnalisee_logement_dot_residence_: Collectivite.t = try ((log_variable_definition @@ -36188,19 +40523,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_collectivite) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1208; start_column=14; end_line=1208; end_column=58; + start_line=1219; start_column=14; end_line=1219; end_column=58; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1208; start_column=14; end_line=1208; end_column=58; + start_line=1219; start_column=14; end_line=1219; end_column=58; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> menage_.Menage.residence)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1208; start_column=14; end_line=1208; end_column=58; + start_line=1219; start_column=14; end_line=1219; end_column=58; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let result_: CalculAidePersonnaliseeLogement.t = (log_end_call ["CalculetteAidesAuLogement"; "calcul_aide_personnalisée_logement"; @@ -36233,12 +40568,12 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1165; start_column=12; end_line=1165; end_column=61; + start_line=1176; start_column=12; end_line=1176; end_column=61; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1213; start_column=14; end_line=1213; end_column=63; + start_line=1224; start_column=14; end_line=1224; end_column=63; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> @@ -36246,14 +40581,14 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1165; start_column=12; end_line=1165; end_column=61; + start_line=1176; start_column=12; end_line=1176; end_column=61; law_headings=["Calculette globale"; "Prologue : aides au logement"]})))) in let eligibilite_: bool = (log_variable_definition ["CalculetteAidesAuLogement"; "éligibilité"] (embed_bool) ( try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1161; start_column=12; end_line=1161; end_column=23; + start_line=1172; start_column=12; end_line=1172; end_column=23; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken @@ -36278,7 +40613,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1161; start_column=12; end_line=1161; end_column=23; + start_line=1172; start_column=12; end_line=1172; end_column=23; law_headings=["Calculette globale"; "Prologue : aides au logement"]})))) in let traitement_aide_finale_: money -> money = (log_variable_definition ["CalculetteAidesAuLogement"; "traitement_aide_finale"] (unembeddable) ( @@ -36287,8 +40622,8 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1163; start_column=12; - end_line=1163; end_column=34; + start_line=1174; start_column=12; + end_line=1174; end_column=34; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken @@ -36350,20 +40685,20 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1163; start_column=12; end_line=1163; end_column=34; + start_line=1174; start_column=12; end_line=1174; end_column=34; law_headings=["Calculette globale"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1163; start_column=12; end_line=1163; end_column=34; + start_line=1174; start_column=12; end_line=1174; end_column=34; law_headings=["Calculette globale"; "Prologue : aides au logement"]})))) in let aide_finale_formule_: money = (log_variable_definition ["CalculetteAidesAuLogement"; "aide_finale_formule"] (embed_money) ( try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1162; start_column=12; end_line=1162; end_column=31; + start_line=1173; start_column=12; end_line=1173; end_column=31; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken @@ -36428,7 +40763,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1162; start_column=12; end_line=1162; end_column=31; + start_line=1173; start_column=12; end_line=1173; end_column=31; law_headings=["Calculette globale"; "Prologue : aides au logement"]})))) in {CalculetteAidesAuLogement.eligibilite = eligibilite_; CalculetteAidesAuLogement.aide_finale_formule = aide_finale_formule_; @@ -36448,12 +40783,12 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1232; start_column=11; end_line=1232; end_column=45; + start_line=1243; start_column=11; end_line=1243; end_column=45; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1264; start_column=14; end_line=1264; end_column=48; + start_line=1275; start_column=14; end_line=1275; end_column=48; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> @@ -36488,7 +40823,7 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1232; start_column=11; end_line=1232; end_column=45; + start_line=1243; start_column=11; end_line=1243; end_column=45; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]})))) in let calculette_dot_menage_: Menage.t = @@ -36497,19 +40832,19 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga (embed_menage) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1243; start_column=14; end_line=1243; end_column=31; + start_line=1254; start_column=14; end_line=1254; end_column=31; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1243; start_column=14; end_line=1243; end_column=31; + start_line=1254; start_column=14; end_line=1254; end_column=31; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> menage_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1243; start_column=14; end_line=1243; end_column=31; + start_line=1254; start_column=14; end_line=1254; end_column=31; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]})) in let calculette_dot_demandeur_: Demandeur.t = @@ -36518,19 +40853,19 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga (embed_demandeur) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1245; start_column=14; end_line=1245; end_column=34; + start_line=1256; start_column=14; end_line=1256; end_column=34; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1245; start_column=14; end_line=1245; end_column=34; + start_line=1256; start_column=14; end_line=1256; end_column=34; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> demandeur_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1245; start_column=14; end_line=1245; end_column=34; + start_line=1256; start_column=14; end_line=1256; end_column=34; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]})) in let calculette_dot_date_courante_: date = @@ -36539,19 +40874,19 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1247; start_column=14; end_line=1247; end_column=38; + start_line=1258; start_column=14; end_line=1258; end_column=38; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1247; start_column=14; end_line=1247; end_column=38; + start_line=1258; start_column=14; end_line=1258; end_column=38; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1247; start_column=14; end_line=1247; end_column=38; + start_line=1258; start_column=14; end_line=1258; end_column=38; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]})) in let calculette_dot_ressources_menage_prises_en_compte_: money = @@ -36560,19 +40895,19 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga "calculette.ressources_ménage_prises_en_compte"] (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1249; start_column=14; end_line=1249; end_column=59; + start_line=1260; start_column=14; end_line=1260; end_column=59; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1249; start_column=14; end_line=1249; end_column=59; + start_line=1260; start_column=14; end_line=1260; end_column=59; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> ressources_menage_prises_en_compte_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1249; start_column=14; end_line=1249; end_column=59; + start_line=1260; start_column=14; end_line=1260; end_column=59; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]})) in let result_: CalculetteAidesAuLogement.t = (log_end_call @@ -36597,19 +40932,19 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga "calculette_sans_garde_alternée.ménage"] (embed_menage) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1251; start_column=14; end_line=1251; end_column=51; + start_line=1262; start_column=14; end_line=1262; end_column=51; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1251; start_column=14; end_line=1251; end_column=51; + start_line=1262; start_column=14; end_line=1262; end_column=51; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> menage_sans_enfants_garde_alternee_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1251; start_column=14; end_line=1251; end_column=51; + start_line=1262; start_column=14; end_line=1262; end_column=51; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]})) in let calculette_sans_garde_alternee_dot_demandeur_: Demandeur.t = @@ -36618,19 +40953,19 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga "calculette_sans_garde_alternée.demandeur"] (embed_demandeur) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1253; start_column=14; end_line=1253; end_column=54; + start_line=1264; start_column=14; end_line=1264; end_column=54; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1253; start_column=14; end_line=1253; end_column=54; + start_line=1264; start_column=14; end_line=1264; end_column=54; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> demandeur_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1253; start_column=14; end_line=1253; end_column=54; + start_line=1264; start_column=14; end_line=1264; end_column=54; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]})) in let calculette_sans_garde_alternee_dot_date_courante_: date = @@ -36639,19 +40974,19 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga "calculette_sans_garde_alternée.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1255; start_column=14; end_line=1255; end_column=58; + start_line=1266; start_column=14; end_line=1266; end_column=58; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1255; start_column=14; end_line=1255; end_column=58; + start_line=1266; start_column=14; end_line=1266; end_column=58; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1255; start_column=14; end_line=1255; end_column=58; + start_line=1266; start_column=14; end_line=1266; end_column=58; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]})) in let calculette_sans_garde_alternee_dot_ressources_menage_prises_en_compte_: money = @@ -36661,19 +40996,19 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1258; start_column=5; end_line=1258; end_column=70; + start_line=1269; start_column=5; end_line=1269; end_column=70; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1258; start_column=5; end_line=1258; end_column=70; + start_line=1269; start_column=5; end_line=1269; end_column=70; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> ressources_menage_prises_en_compte_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1258; start_column=5; end_line=1258; end_column=70; + start_line=1269; start_column=5; end_line=1269; end_column=70; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]})) in let result_: CalculetteAidesAuLogement.t = (log_end_call @@ -36703,19 +41038,19 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1239; start_column=12; end_line=1239; end_column=23; + start_line=1250; start_column=12; end_line=1250; end_column=23; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1293; start_column=14; end_line=1293; end_column=25; + start_line=1304; start_column=14; end_line=1304; end_column=25; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> calculette_dot_eligibilite_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1239; start_column=12; end_line=1239; end_column=23; + start_line=1250; start_column=12; end_line=1250; end_column=23; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]})))) in let coefficents_enfants_garde_alternee_pris_en_compte_: decimal array = (log_variable_definition @@ -36725,12 +41060,12 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1233; start_column=11; end_line=1233; end_column=60; + start_line=1244; start_column=11; end_line=1244; end_column=60; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1262; start_column=14; end_line=1262; end_column=63; + start_line=1273; start_column=14; end_line=1273; end_column=63; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> @@ -36738,7 +41073,7 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1233; start_column=11; end_line=1233; end_column=60; + start_line=1244; start_column=11; end_line=1244; end_column=60; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]})))) in let aide_finale_: money = (log_variable_definition @@ -36747,7 +41082,7 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1240; start_column=12; end_line=1240; end_column=23; + start_line=1251; start_column=12; end_line=1251; end_column=23; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken @@ -36787,7 +41122,7 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1240; start_column=12; end_line=1240; end_column=23; + start_line=1251; start_column=12; end_line=1251; end_column=23; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]})))) in {CalculetteAidesAuLogementGardeAlternee.eligibilite = eligibilite_; diff --git a/french_law/ocaml/law_source/aides_logement_api_web.ml b/french_law/ocaml/law_source/aides_logement_api_web.ml index 9dfacf18..68237768 100644 --- a/french_law/ocaml/law_source/aides_logement_api_web.ml +++ b/french_law/ocaml/law_source/aides_logement_api_web.ml @@ -3510,6 +3510,7 @@ class type ressources_aides_personnelle_logement_in = personne_a_charge Js.t Js.js_array Js.t Js.readonly_prop method situationFamilialeIn: situation_familiale Js.t Js.readonly_prop method modeOccupationIn: mode_occupation Js.t Js.readonly_prop + method dateCouranteIn: Js.js_string Js.t Js.readonly_prop method conditionAgeBourseEnseignementSuperieurIn: bool Js.t Js.readonly_prop method demandeurPoursuitDesEtudesIn: bool Js.t Js.readonly_prop @@ -3539,6 +3540,8 @@ class type ressources_aides_personnelle_logement_in = situation_familiale_to_jsoo ressources_aides_personnelle_logement_in.situation_familiale_in val modeOccupationIn = mode_occupation_to_jsoo ressources_aides_personnelle_logement_in.mode_occupation_in + val dateCouranteIn = + date_to_jsoo ressources_aides_personnelle_logement_in.date_courante_in val conditionAgeBourseEnseignementSuperieurIn = Js.bool ressources_aides_personnelle_logement_in.condition_age_bourse_enseignement_superieur_in val demandeurPoursuitDesEtudesIn = @@ -3582,6 +3585,9 @@ class type ressources_aides_personnelle_logement_in = mode_occupation_in = mode_occupation_of_jsoo ressources_aides_personnelle_logement_in##.modeOccupationIn; + date_courante_in = + date_of_jsoo + ressources_aides_personnelle_logement_in##.dateCouranteIn; condition_age_bourse_enseignement_superieur_in = Js.to_bool ressources_aides_personnelle_logement_in diff --git a/french_law/ocaml/law_source/allocations_familiales.ml b/french_law/ocaml/law_source/allocations_familiales.ml index 16874674..d77346fc 100644 --- a/french_law/ocaml/law_source/allocations_familiales.ml +++ b/french_law/ocaml/law_source/allocations_familiales.ml @@ -527,13 +527,13 @@ let verification_age_superieur_a (verification_age_superieur_a_in: VerificationA try (handle_default {filename = "examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr"; - start_line=32; start_column=12; end_line=32; end_column=25; + start_line=33; start_column=12; end_line=33; end_column=25; law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} ( [||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr"; - start_line=35; start_column=14; end_line=35; end_column=27; + start_line=36; start_column=14; end_line=36; end_column=27; law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} true)) @@ -543,7 +543,7 @@ let verification_age_superieur_a (verification_age_superieur_a_in: VerificationA with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr"; - start_line=32; start_column=12; end_line=32; end_column=25; + start_line=33; start_column=12; end_line=33; end_column=25; law_headings=["Prologue"; "Montant du salaire minimum de croissance"]})))) in {VerificationAgeSuperieurA.est_superieur = est_superieur_} diff --git a/french_law/python/src/aides_logement.py b/french_law/python/src/aides_logement.py index 2ad16cc3..3fe38fe8 100644 --- a/french_law/python/src/aides_logement.py +++ b/french_law/python/src/aides_logement.py @@ -2124,7 +2124,7 @@ class EligibilitePrimeDeDemenagementIn: self.depenses_justifiees_reellement_engagees_in) class RessourcesAidesPersonnelleLogementIn: - def __init__(self, ressources_demandeur_in: Money, ressources_conjoint_in: Money, personnes_vivant_habituellement_foyer_in: List[PersonneVivantHabituellementAuFoyer], demandeur_exerce_activite_remuneree_in: bool, conjoint_exerce_activite_remuneree_in: bool, personnes_a_charge_in: List[PersonneACharge], situation_familiale_in: SituationFamiliale, mode_occupation_in: ModeOccupation, condition_age_bourse_enseignement_superieur_in: bool, demandeur_poursuit_des_etudes_in: bool, date_demande_ou_reexamen_droit_in: Date, paiement_logement_distinct_professionnel_in: PaiementLogementDistinctProfessionnel, ressources_menage_arrondies_base_in: Money) -> None: + def __init__(self, ressources_demandeur_in: Money, ressources_conjoint_in: Money, personnes_vivant_habituellement_foyer_in: List[PersonneVivantHabituellementAuFoyer], demandeur_exerce_activite_remuneree_in: bool, conjoint_exerce_activite_remuneree_in: bool, personnes_a_charge_in: List[PersonneACharge], situation_familiale_in: SituationFamiliale, mode_occupation_in: ModeOccupation, date_courante_in: Date, condition_age_bourse_enseignement_superieur_in: bool, demandeur_poursuit_des_etudes_in: bool, date_demande_ou_reexamen_droit_in: Date, paiement_logement_distinct_professionnel_in: PaiementLogementDistinctProfessionnel, ressources_menage_arrondies_base_in: Money) -> None: self.ressources_demandeur_in = ressources_demandeur_in self.ressources_conjoint_in = ressources_conjoint_in self.personnes_vivant_habituellement_foyer_in = personnes_vivant_habituellement_foyer_in @@ -2133,6 +2133,7 @@ class RessourcesAidesPersonnelleLogementIn: self.personnes_a_charge_in = personnes_a_charge_in self.situation_familiale_in = situation_familiale_in self.mode_occupation_in = mode_occupation_in + self.date_courante_in = date_courante_in self.condition_age_bourse_enseignement_superieur_in = condition_age_bourse_enseignement_superieur_in self.demandeur_poursuit_des_etudes_in = demandeur_poursuit_des_etudes_in self.date_demande_ou_reexamen_droit_in = date_demande_ou_reexamen_droit_in @@ -2149,6 +2150,7 @@ class RessourcesAidesPersonnelleLogementIn: self.personnes_a_charge_in == other.personnes_a_charge_in and self.situation_familiale_in == other.situation_familiale_in and self.mode_occupation_in == other.mode_occupation_in and + self.date_courante_in == other.date_courante_in and self.condition_age_bourse_enseignement_superieur_in == other.condition_age_bourse_enseignement_superieur_in and self.demandeur_poursuit_des_etudes_in == other.demandeur_poursuit_des_etudes_in and self.date_demande_ou_reexamen_droit_in == other.date_demande_ou_reexamen_droit_in and @@ -2161,13 +2163,13 @@ class RessourcesAidesPersonnelleLogementIn: return not (self == other) def __str__(self) -> str: - return "RessourcesAidesPersonnelleLogementIn(ressources_demandeur_in={},ressources_conjoint_in={},personnes_vivant_habituellement_foyer_in={},demandeur_exerce_activite_remuneree_in={},conjoint_exerce_activite_remuneree_in={},personnes_a_charge_in={},situation_familiale_in={},mode_occupation_in={},condition_age_bourse_enseignement_superieur_in={},demandeur_poursuit_des_etudes_in={},date_demande_ou_reexamen_droit_in={},paiement_logement_distinct_professionnel_in={},ressources_menage_arrondies_base_in={})".format(self.ressources_demandeur_in, + return "RessourcesAidesPersonnelleLogementIn(ressources_demandeur_in={},ressources_conjoint_in={},personnes_vivant_habituellement_foyer_in={},demandeur_exerce_activite_remuneree_in={},conjoint_exerce_activite_remuneree_in={},personnes_a_charge_in={},situation_familiale_in={},mode_occupation_in={},date_courante_in={},condition_age_bourse_enseignement_superieur_in={},demandeur_poursuit_des_etudes_in={},date_demande_ou_reexamen_droit_in={},paiement_logement_distinct_professionnel_in={},ressources_menage_arrondies_base_in={})".format(self.ressources_demandeur_in, self.ressources_conjoint_in, self.personnes_vivant_habituellement_foyer_in, self.demandeur_exerce_activite_remuneree_in, self.conjoint_exerce_activite_remuneree_in, self.personnes_a_charge_in, self.situation_familiale_in, - self.mode_occupation_in, + self.mode_occupation_in, self.date_courante_in, self.condition_age_bourse_enseignement_superieur_in, self.demandeur_poursuit_des_etudes_in, self.date_demande_ou_reexamen_droit_in, @@ -2824,8 +2826,8 @@ def contributions_sociales_aides_personnelle_logement(contributions_sociales_aid except EmptyError: temp_exonere_csg = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=555, start_column=11, - end_line=555, end_column=22, + start_line=556, start_column=11, + end_line=556, end_column=22, law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) @@ -2840,8 +2842,8 @@ def contributions_sociales_aides_personnelle_logement(contributions_sociales_aid except EmptyError: temp_taux_crds = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=554, start_column=11, - end_line=554, end_column=20, + start_line=555, start_column=11, + end_line=555, end_column=20, law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) @@ -2856,9 +2858,9 @@ def contributions_sociales_aides_personnelle_logement(contributions_sociales_aid raise EmptyError except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=557, + start_line=558, start_column=12, - end_line=557, + end_line=558, end_column=19, law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement", "Déclarations des champs d'application", @@ -2866,8 +2868,8 @@ def contributions_sociales_aides_personnelle_logement(contributions_sociales_aid except EmptyError: temp_montant = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=557, start_column=12, - end_line=557, end_column=19, + start_line=558, start_column=12, + end_line=558, end_column=19, law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) @@ -2895,15 +2897,15 @@ def contributions_sociales_aides_personnelle_logement(contributions_sociales_aid except EmptyError: temp___1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=562, start_column=13, - end_line=562, end_column=42, + start_line=563, start_column=13, + end_line=563, end_column=42, law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) if not (temp___1): raise AssertionFailure(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=562, - start_column=13, end_line=562, + start_line=563, + start_column=13, end_line=563, end_column=42, law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement", "Déclarations des champs d'application", @@ -2928,8 +2930,8 @@ def calcul_equivalence_loyer_minimale(calcul_equivalence_loyer_minimale_in:Calcu except EmptyError: temp_montant_forfaitaire_d832_26 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=649, start_column=11, - end_line=649, end_column=38, + start_line=655, start_column=11, + end_line=655, end_column=38, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -2993,8 +2995,8 @@ def calcul_equivalence_loyer_minimale(calcul_equivalence_loyer_minimale_in:Calcu except EmptyError: temp_tranches_revenus_d832_26 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=646, start_column=11, - end_line=646, end_column=35, + start_line=652, start_column=11, + end_line=652, end_column=35, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -3020,8 +3022,8 @@ def calcul_equivalence_loyer_minimale(calcul_equivalence_loyer_minimale_in:Calcu except EmptyError: temp_tranches_revenus_d832_26_multipliees_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=647, start_column=11, - end_line=647, end_column=47, + start_line=653, start_column=11, + end_line=653, end_column=47, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -3091,8 +3093,8 @@ def calcul_equivalence_loyer_minimale(calcul_equivalence_loyer_minimale_in:Calcu except EmptyError: temp_montant_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=651, start_column=12, - end_line=651, end_column=19, + start_line=657, start_column=12, + end_line=657, end_column=19, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -3115,8 +3117,8 @@ def calcul_nombre_part_logement_foyer(calcul_nombre_part_logement_foyer_in:Calcu except EmptyError: temp_limitation_majoration_personnes_a_charge = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=659, start_column=12, - end_line=659, end_column=52, + start_line=665, start_column=12, + end_line=665, end_column=52, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -3178,8 +3180,8 @@ def calcul_nombre_part_logement_foyer(calcul_nombre_part_logement_foyer_in:Calcu except EmptyError: temp_n_nombre_parts_d832_25_base = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=661, start_column=11, - end_line=661, end_column=38, + start_line=667, start_column=11, + end_line=667, end_column=38, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -3254,8 +3256,8 @@ def calcul_nombre_part_logement_foyer(calcul_nombre_part_logement_foyer_in:Calcu except EmptyError: temp_n_nombre_parts_d832_25_majoration_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=662, start_column=11, - end_line=662, end_column=44, + start_line=668, start_column=11, + end_line=668, end_column=44, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -3267,8 +3269,8 @@ def calcul_nombre_part_logement_foyer(calcul_nombre_part_logement_foyer_in:Calcu except EmptyError: temp_n_nombre_parts_d832_25 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=664, start_column=12, - end_line=664, end_column=34, + start_line=670, start_column=12, + end_line=670, end_column=34, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -3313,8 +3315,8 @@ def calcul_nombre_parts_accession_propriete(calcul_nombre_parts_accession_propri except EmptyError: temp_n_nombre_parts_d832_11 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=728, start_column=12, - end_line=728, end_column=34, + start_line=735, start_column=12, + end_line=735, end_column=34, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -3371,9 +3373,9 @@ def ouverture_droits_retraite(ouverture_droits_retraite_in:OuvertureDroitsRetrai else: raise EmptyError temp_age_ouverture_droit_8 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1107, + start_line=1118, start_column=12, - end_line=1107, end_column=31, + end_line=1118, end_column=31, law_headings=["Date d'ouverture des droits à la retraite", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"]), [temp_age_ouverture_droit_7, @@ -3387,8 +3389,8 @@ def ouverture_droits_retraite(ouverture_droits_retraite_in:OuvertureDroitsRetrai except EmptyError: temp_age_ouverture_droit_8 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1107, - start_column=12, end_line=1107, + start_line=1118, + start_column=12, end_line=1118, end_column=31, law_headings=["Date d'ouverture des droits à la retraite", "Calcul du montant de l'allocation logement", @@ -3428,8 +3430,8 @@ def impaye_depense_logement(impaye_depense_logement_in:ImpayeDepenseLogementIn): except EmptyError: temp_mode_occupation_impaye = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1123, - start_column=11, end_line=1123, + start_line=1134, + start_column=11, end_line=1134, end_column=33, law_headings=["Quantification des impayés de dépense de logement", "Calcul du montant de l'allocation logement", @@ -3465,8 +3467,8 @@ def impaye_depense_logement(impaye_depense_logement_in:ImpayeDepenseLogementIn): except EmptyError: temp_depense_logement_brute_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1124, - start_column=11, end_line=1124, + start_line=1135, + start_column=11, end_line=1135, end_column=33, law_headings=["Quantification des impayés de dépense de logement", "Calcul du montant de l'allocation logement", @@ -3526,9 +3528,9 @@ def impaye_depense_logement(impaye_depense_logement_in:ImpayeDepenseLogementIn): else: raise EmptyError temp_depense_logement_nette_6 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1125, + start_line=1136, start_column=11, - end_line=1125, end_column=33, + end_line=1136, end_column=33, law_headings=["Quantification des impayés de dépense de logement", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"]), [temp_depense_logement_nette_4, @@ -3538,8 +3540,8 @@ def impaye_depense_logement(impaye_depense_logement_in:ImpayeDepenseLogementIn): except EmptyError: temp_depense_logement_nette_6 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1125, - start_column=11, end_line=1125, + start_line=1136, + start_column=11, end_line=1136, end_column=33, law_headings=["Quantification des impayés de dépense de logement", "Calcul du montant de l'allocation logement", @@ -3683,9 +3685,9 @@ def impaye_depense_logement(impaye_depense_logement_in:ImpayeDepenseLogementIn): else: raise EmptyError temp_seuil_impaye_depense_de_logement_14 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1122, + start_line=1133, start_column=11, - end_line=1122, end_column=43, + end_line=1133, end_column=43, law_headings=["Quantification des impayés de dépense de logement", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"]), [temp_seuil_impaye_depense_de_logement_11, @@ -3697,8 +3699,8 @@ def impaye_depense_logement(impaye_depense_logement_in:ImpayeDepenseLogementIn): except EmptyError: temp_seuil_impaye_depense_de_logement_14 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1122, - start_column=11, end_line=1122, + start_line=1133, + start_column=11, end_line=1133, end_column=43, law_headings=["Quantification des impayés de dépense de logement", "Calcul du montant de l'allocation logement", @@ -3742,8 +3744,8 @@ def impaye_depense_logement(impaye_depense_logement_in:ImpayeDepenseLogementIn): except EmptyError: temp_montant_impaye_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1127, - start_column=12, end_line=1127, + start_line=1138, + start_column=12, end_line=1138, end_column=26, law_headings=["Quantification des impayés de dépense de logement", "Calcul du montant de l'allocation logement", @@ -3841,8 +3843,8 @@ def verification_age_superieur_a(verification_age_superieur_a_in:VerificationAge except EmptyError: temp_est_superieur = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr", - start_line=32, start_column=12, - end_line=32, end_column=25, + start_line=33, start_column=12, + end_line=33, end_column=25, law_headings=["Prologue", "Montant du salaire minimum de croissance"])) est_superieur = temp_est_superieur @@ -4115,32 +4117,20 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen except EmptyError: temp_fraction_l832_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=596, start_column=11, - end_line=596, end_column=26, + start_line=597, start_column=11, + end_line=597, end_column=26, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) fraction_l832_3 = temp_fraction_l832_3 - try: - temp_montant_forfaitaire_d823_16 = money_of_cents_string("500") - except EmptyError: - temp_montant_forfaitaire_d823_16 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=599, start_column=11, - end_line=599, end_column=38, - law_headings=["Secteur locatif", - "Calcul du montant de l'aide personnalisée au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"])) - montant_forfaitaire_d823_16 = temp_montant_forfaitaire_d823_16 try: temp_contributions_sociales_dot_date_courante = date_courante_6 except EmptyError: temp_contributions_sociales_dot_date_courante = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=623, start_column=14, - end_line=623, end_column=50, + start_line=629, start_column=14, + end_line=629, end_column=50, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -4149,140 +4139,78 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen result = contributions_sociales_aides_personnelle_logement(ContributionsSocialesAidesPersonnelleLogementIn(date_courante_in = contributions_sociales_dot_date_courante)) contributions_sociales_dot_montant = result.montant try: - try: - if ((date_courante_6 >= date_of_numbers(2022,7,1)) and - (date_courante_6 < - date_of_numbers(2023,1,1))): - if (nombre_personnes_a_charge_2 == - integer_of_string("0")): - match_arg_28 = situation_familiale_calcul_apl_2 - if match_arg_28.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_28.value - temp_loyer_reference = money_of_cents_string("25978") - elif match_arg_28.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_28.value - temp_loyer_reference = money_of_cents_string("31797") - else: - if ((money_of_cents_string("35780") + - (money_of_cents_string("5208") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) > - (money_of_cents_string("35780") + - (money_of_cents_string("5208") * - decimal_of_string("6.")))): - temp_loyer_reference = (money_of_cents_string("35780") + - (money_of_cents_string("5208") * - decimal_of_string("6."))) - else: - temp_loyer_reference = (money_of_cents_string("35780") + - (money_of_cents_string("5208") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) - else: - temp_loyer_reference = dead_value - raise EmptyError - except EmptyError: - def temp_loyer_reference_1(_:Unit): - raise EmptyError - def temp_loyer_reference_2(_:Unit): - return False - def temp_loyer_reference_3(_:Unit): - if ((date_courante_6 >= date_of_numbers(2020,10,1)) and - (date_courante_6 < - date_of_numbers(2021,10,1))): - if (nombre_personnes_a_charge_2 == - integer_of_string("0")): - match_arg_29 = situation_familiale_calcul_apl_2 - if match_arg_29.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_29.value - return money_of_cents_string("25869") - elif match_arg_29.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_29.value - return money_of_cents_string("31664") - else: - return (money_of_cents_string("35630") + - (money_of_cents_string("5186") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) - else: - raise EmptyError - def temp_loyer_reference_4(_:Unit): - if ((date_courante_6 >= date_of_numbers(2021,10,1)) and - (date_courante_6 < - date_of_numbers(2022,7,1))): - if (nombre_personnes_a_charge_2 == - integer_of_string("0")): - match_arg_30 = situation_familiale_calcul_apl_2 - if match_arg_30.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_30.value - return money_of_cents_string("25978") - elif match_arg_30.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_30.value - return money_of_cents_string("31797") - else: - return (money_of_cents_string("35780") + - (money_of_cents_string("5208") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) - else: - raise EmptyError - def temp_loyer_reference_5(_:Unit): - if (date_courante_6 >= - date_of_numbers(2022,7,1)): - if (nombre_personnes_a_charge_2 == - integer_of_string("0")): - match_arg_31 = situation_familiale_calcul_apl_2 - if match_arg_31.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_31.value - return money_of_cents_string("26887") - elif match_arg_31.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_31.value - return money_of_cents_string("32910") - else: - return (money_of_cents_string("37032") + - (money_of_cents_string("5390") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) - else: - raise EmptyError - temp_loyer_reference = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=595, - start_column=11, - end_line=595, end_column=26, - law_headings=["Secteur locatif", - "Calcul du montant de l'aide personnalisée au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"]), [temp_loyer_reference_5, - temp_loyer_reference_4, - temp_loyer_reference_3], - temp_loyer_reference_2, - temp_loyer_reference_1) + if (date_courante_6 >= + date_of_numbers(2019,10,1)): + temp_montant_forfaitaire_d823_16 = money_of_cents_string("500") + else: + temp_montant_forfaitaire_d823_16 = dead_value + raise EmptyError except EmptyError: - temp_loyer_reference = dead_value + temp_montant_forfaitaire_d823_16 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=595, start_column=11, - end_line=595, end_column=26, + start_line=600, start_column=11, + end_line=600, end_column=38, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) - loyer_reference = temp_loyer_reference + montant_forfaitaire_d823_16 = temp_montant_forfaitaire_d823_16 try: - match_arg_32 = type_aide - if match_arg_32.code == TypeAidesPersonnelleLogement_Code.AidePersonnaliseeLogement: - _ = match_arg_32.value - temp_montant_minimal_aide_d823_16 = money_of_cents_string("0") - elif match_arg_32.code == TypeAidesPersonnelleLogement_Code.AllocationLogementFamiliale: - _ = match_arg_32.value - temp_montant_minimal_aide_d823_16 = money_of_cents_string("1000") - elif match_arg_32.code == TypeAidesPersonnelleLogement_Code.AllocationLogementSociale: - _ = match_arg_32.value - temp_montant_minimal_aide_d823_16 = money_of_cents_string("1000") + try: + try: + if ((date_courante_6 < date_of_numbers(2021,10,1)) and + (date_courante_6 >= + date_of_numbers(2020,10,1))): + temp_multiplicateur_majoration_charges_d823_16 = decimal_of_integer(nombre_personnes_a_charge_2) + else: + temp_multiplicateur_majoration_charges_d823_16 = dead_value + raise EmptyError + except EmptyError: + if ((date_courante_6 >= date_of_numbers(2021,10,1)) and + (date_courante_6 < + date_of_numbers(2022,7,1))): + temp_multiplicateur_majoration_charges_d823_16 = decimal_of_integer(nombre_personnes_a_charge_2) + else: + temp_multiplicateur_majoration_charges_d823_16 = dead_value + raise EmptyError + except EmptyError: + if (date_courante_6 >= + date_of_numbers(2022,7,1)): + temp_multiplicateur_majoration_charges_d823_16 = decimal_of_integer(nombre_personnes_a_charge_2) + else: + temp_multiplicateur_majoration_charges_d823_16 = dead_value + raise EmptyError + except EmptyError: + temp_multiplicateur_majoration_charges_d823_16 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=605, start_column=11, + end_line=605, end_column=52, + law_headings=["Secteur locatif", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"])) + multiplicateur_majoration_charges_d823_16 = temp_multiplicateur_majoration_charges_d823_16 + try: + if (date_courante_6 >= + date_of_numbers(2019,10,1)): + match_arg_28 = type_aide + if match_arg_28.code == TypeAidesPersonnelleLogement_Code.AidePersonnaliseeLogement: + _ = match_arg_28.value + temp_montant_minimal_aide_d823_16 = money_of_cents_string("0") + elif match_arg_28.code == TypeAidesPersonnelleLogement_Code.AllocationLogementFamiliale: + _ = match_arg_28.value + temp_montant_minimal_aide_d823_16 = money_of_cents_string("1000") + elif match_arg_28.code == TypeAidesPersonnelleLogement_Code.AllocationLogementSociale: + _ = match_arg_28.value + temp_montant_minimal_aide_d823_16 = money_of_cents_string("1000") + else: + temp_montant_minimal_aide_d823_16 = dead_value + raise EmptyError except EmptyError: temp_montant_minimal_aide_d823_16 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=600, start_column=11, - end_line=600, end_column=39, + start_line=601, start_column=11, + end_line=601, end_column=39, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -4297,8 +4225,8 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen except EmptyError: temp_loyer_principal_avec_reduction_meuble = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=573, start_column=10, - end_line=573, end_column=31, + start_line=574, start_column=10, + end_line=574, end_column=31, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -4311,109 +4239,380 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen def temp_taux_composition_familiale_1(_:Unit): return False def temp_taux_composition_familiale_2(_:Unit): - match_arg_33 = residence_2 - if match_arg_33.code == Collectivite_Code.Guadeloupe: - _ = match_arg_33.value - temp_taux_composition_familiale_3 = True - elif match_arg_33.code == Collectivite_Code.Guyane: - _ = match_arg_33.value - temp_taux_composition_familiale_3 = False - elif match_arg_33.code == Collectivite_Code.Martinique: - _ = match_arg_33.value - temp_taux_composition_familiale_3 = True - elif match_arg_33.code == Collectivite_Code.LaReunion: - _ = match_arg_33.value - temp_taux_composition_familiale_3 = True - elif match_arg_33.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_33.value - temp_taux_composition_familiale_3 = True - elif match_arg_33.code == Collectivite_Code.SaintMartin: - _ = match_arg_33.value - temp_taux_composition_familiale_3 = True - elif match_arg_33.code == Collectivite_Code.Metropole: - _ = match_arg_33.value - temp_taux_composition_familiale_3 = False - elif match_arg_33.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_33.value - temp_taux_composition_familiale_3 = False - elif match_arg_33.code == Collectivite_Code.Mayotte: - _ = match_arg_33.value - temp_taux_composition_familiale_3 = True - if (((date_courante_6 >= date_of_numbers(2022,7,1)) and - (date_courante_6 < date_of_numbers(2023,1,1))) and - temp_taux_composition_familiale_3): - if (nombre_personnes_a_charge_2 == - integer_of_string("0")): - match_arg_34 = situation_familiale_calcul_apl_2 - if match_arg_34.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_34.value - return decimal_of_string("0.0281") - elif match_arg_34.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_34.value - return decimal_of_string("0.0299") - else: - if (nombre_personnes_a_charge_2 == - integer_of_string("1")): - return decimal_of_string("0.0238") - else: - if (nombre_personnes_a_charge_2 == - integer_of_string("2")): - return decimal_of_string("0.0217") - else: - if (nombre_personnes_a_charge_2 == - integer_of_string("3")): - return decimal_of_string("0.0194") - else: + try: + try: + try: + try: + match_arg_29 = residence_2 + if match_arg_29.code == Collectivite_Code.Guadeloupe: + _ = match_arg_29.value + temp_taux_composition_familiale_3 = True + elif match_arg_29.code == Collectivite_Code.Guyane: + _ = match_arg_29.value + temp_taux_composition_familiale_3 = False + elif match_arg_29.code == Collectivite_Code.Martinique: + _ = match_arg_29.value + temp_taux_composition_familiale_3 = True + elif match_arg_29.code == Collectivite_Code.LaReunion: + _ = match_arg_29.value + temp_taux_composition_familiale_3 = True + elif match_arg_29.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_29.value + temp_taux_composition_familiale_3 = True + elif match_arg_29.code == Collectivite_Code.SaintMartin: + _ = match_arg_29.value + temp_taux_composition_familiale_3 = True + elif match_arg_29.code == Collectivite_Code.Metropole: + _ = match_arg_29.value + temp_taux_composition_familiale_3 = False + elif match_arg_29.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_29.value + temp_taux_composition_familiale_3 = False + elif match_arg_29.code == Collectivite_Code.Mayotte: + _ = match_arg_29.value + temp_taux_composition_familiale_3 = True + if (((date_courante_6 >= + date_of_numbers(2020,10,1)) and + (date_courante_6 < + date_of_numbers(2021,10,1))) and + temp_taux_composition_familiale_3): if (nombre_personnes_a_charge_2 == - integer_of_string("4")): - return decimal_of_string("0.018") + integer_of_string("0")): + match_arg_30 = situation_familiale_calcul_apl_2 + if match_arg_30.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_30.value + return decimal_of_string("0.0281") + elif match_arg_30.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_30.value + return decimal_of_string("0.0299") else: if (nombre_personnes_a_charge_2 == - integer_of_string("5")): - return decimal_of_string("0.0169") + integer_of_string("1")): + return decimal_of_string("0.0238") else: - return decimal_of_string("0.0162") - else: - raise EmptyError - def temp_taux_composition_familiale_4(_:Unit): - match_arg_35 = residence_2 - if match_arg_35.code == Collectivite_Code.Guadeloupe: - _ = match_arg_35.value - temp_taux_composition_familiale_5 = True - elif match_arg_35.code == Collectivite_Code.Guyane: - _ = match_arg_35.value - temp_taux_composition_familiale_5 = False - elif match_arg_35.code == Collectivite_Code.Martinique: - _ = match_arg_35.value - temp_taux_composition_familiale_5 = True - elif match_arg_35.code == Collectivite_Code.LaReunion: - _ = match_arg_35.value - temp_taux_composition_familiale_5 = True - elif match_arg_35.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_35.value - temp_taux_composition_familiale_5 = True - elif match_arg_35.code == Collectivite_Code.SaintMartin: - _ = match_arg_35.value - temp_taux_composition_familiale_5 = True - elif match_arg_35.code == Collectivite_Code.Metropole: - _ = match_arg_35.value - temp_taux_composition_familiale_5 = False - elif match_arg_35.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_35.value - temp_taux_composition_familiale_5 = False - elif match_arg_35.code == Collectivite_Code.Mayotte: - _ = match_arg_35.value - temp_taux_composition_familiale_5 = True + if (nombre_personnes_a_charge_2 == + integer_of_string("2")): + return decimal_of_string("0.0217") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("3")): + return decimal_of_string("0.0194") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("4")): + return decimal_of_string("0.018") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("5")): + return decimal_of_string("0.0169") + else: + return decimal_of_string("0.0162") + else: + raise EmptyError + except EmptyError: + match_arg_31 = residence_2 + if match_arg_31.code == Collectivite_Code.Guadeloupe: + _ = match_arg_31.value + temp_taux_composition_familiale_4 = True + elif match_arg_31.code == Collectivite_Code.Guyane: + _ = match_arg_31.value + temp_taux_composition_familiale_4 = False + elif match_arg_31.code == Collectivite_Code.Martinique: + _ = match_arg_31.value + temp_taux_composition_familiale_4 = True + elif match_arg_31.code == Collectivite_Code.LaReunion: + _ = match_arg_31.value + temp_taux_composition_familiale_4 = True + elif match_arg_31.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_31.value + temp_taux_composition_familiale_4 = True + elif match_arg_31.code == Collectivite_Code.SaintMartin: + _ = match_arg_31.value + temp_taux_composition_familiale_4 = True + elif match_arg_31.code == Collectivite_Code.Metropole: + _ = match_arg_31.value + temp_taux_composition_familiale_4 = False + elif match_arg_31.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_31.value + temp_taux_composition_familiale_4 = False + elif match_arg_31.code == Collectivite_Code.Mayotte: + _ = match_arg_31.value + temp_taux_composition_familiale_4 = True + if (((date_courante_6 >= + date_of_numbers(2020,10,1)) and + (date_courante_6 < + date_of_numbers(2021,10,1))) and + temp_taux_composition_familiale_4): + if (nombre_personnes_a_charge_2 == + integer_of_string("0")): + match_arg_32 = situation_familiale_calcul_apl_2 + if match_arg_32.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_32.value + return decimal_of_string("0.0281") + elif match_arg_32.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_32.value + return decimal_of_string("0.0299") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("1")): + return decimal_of_string("0.0238") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("2")): + return decimal_of_string("0.0217") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("3")): + return decimal_of_string("0.0194") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("4")): + return decimal_of_string("0.018") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("5")): + return decimal_of_string("0.0169") + else: + return decimal_of_string("0.0162") + else: + raise EmptyError + except EmptyError: + match_arg_33 = residence_2 + if match_arg_33.code == Collectivite_Code.Guadeloupe: + _ = match_arg_33.value + temp_taux_composition_familiale_5 = True + elif match_arg_33.code == Collectivite_Code.Guyane: + _ = match_arg_33.value + temp_taux_composition_familiale_5 = False + elif match_arg_33.code == Collectivite_Code.Martinique: + _ = match_arg_33.value + temp_taux_composition_familiale_5 = True + elif match_arg_33.code == Collectivite_Code.LaReunion: + _ = match_arg_33.value + temp_taux_composition_familiale_5 = True + elif match_arg_33.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_33.value + temp_taux_composition_familiale_5 = True + elif match_arg_33.code == Collectivite_Code.SaintMartin: + _ = match_arg_33.value + temp_taux_composition_familiale_5 = True + elif match_arg_33.code == Collectivite_Code.Metropole: + _ = match_arg_33.value + temp_taux_composition_familiale_5 = False + elif match_arg_33.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_33.value + temp_taux_composition_familiale_5 = False + elif match_arg_33.code == Collectivite_Code.Mayotte: + _ = match_arg_33.value + temp_taux_composition_familiale_5 = True + if (((date_courante_6 >= + date_of_numbers(2021,10,1)) and + (date_courante_6 < + date_of_numbers(2022,1,1))) and + temp_taux_composition_familiale_5): + if (nombre_personnes_a_charge_2 == + integer_of_string("0")): + match_arg_34 = situation_familiale_calcul_apl_2 + if match_arg_34.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_34.value + return decimal_of_string("0.0281") + elif match_arg_34.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_34.value + return decimal_of_string("0.0299") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("1")): + return decimal_of_string("0.0238") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("2")): + return decimal_of_string("0.0217") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("3")): + return decimal_of_string("0.0194") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("4")): + return decimal_of_string("0.018") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("5")): + return decimal_of_string("0.0169") + else: + return decimal_of_string("0.0162") + else: + raise EmptyError + except EmptyError: + match_arg_35 = residence_2 + if match_arg_35.code == Collectivite_Code.Guadeloupe: + _ = match_arg_35.value + temp_taux_composition_familiale_6 = True + elif match_arg_35.code == Collectivite_Code.Guyane: + _ = match_arg_35.value + temp_taux_composition_familiale_6 = False + elif match_arg_35.code == Collectivite_Code.Martinique: + _ = match_arg_35.value + temp_taux_composition_familiale_6 = True + elif match_arg_35.code == Collectivite_Code.LaReunion: + _ = match_arg_35.value + temp_taux_composition_familiale_6 = True + elif match_arg_35.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_35.value + temp_taux_composition_familiale_6 = True + elif match_arg_35.code == Collectivite_Code.SaintMartin: + _ = match_arg_35.value + temp_taux_composition_familiale_6 = True + elif match_arg_35.code == Collectivite_Code.Metropole: + _ = match_arg_35.value + temp_taux_composition_familiale_6 = False + elif match_arg_35.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_35.value + temp_taux_composition_familiale_6 = False + elif match_arg_35.code == Collectivite_Code.Mayotte: + _ = match_arg_35.value + temp_taux_composition_familiale_6 = True + if (((date_courante_6 >= + date_of_numbers(2022,1,1)) and (date_courante_6 < + date_of_numbers(2022,7,1))) and + temp_taux_composition_familiale_6): + if (nombre_personnes_a_charge_2 == + integer_of_string("0")): + match_arg_36 = situation_familiale_calcul_apl_2 + if match_arg_36.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_36.value + return decimal_of_string("0.0281") + elif match_arg_36.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_36.value + return decimal_of_string("0.0299") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("1")): + return decimal_of_string("0.0238") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("2")): + return decimal_of_string("0.0217") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("3")): + return decimal_of_string("0.0194") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("4")): + return decimal_of_string("0.018") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("5")): + return decimal_of_string("0.0169") + else: + return decimal_of_string("0.0162") + else: + raise EmptyError + except EmptyError: + match_arg_37 = residence_2 + if match_arg_37.code == Collectivite_Code.Guadeloupe: + _ = match_arg_37.value + temp_taux_composition_familiale_7 = True + elif match_arg_37.code == Collectivite_Code.Guyane: + _ = match_arg_37.value + temp_taux_composition_familiale_7 = False + elif match_arg_37.code == Collectivite_Code.Martinique: + _ = match_arg_37.value + temp_taux_composition_familiale_7 = True + elif match_arg_37.code == Collectivite_Code.LaReunion: + _ = match_arg_37.value + temp_taux_composition_familiale_7 = True + elif match_arg_37.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_37.value + temp_taux_composition_familiale_7 = True + elif match_arg_37.code == Collectivite_Code.SaintMartin: + _ = match_arg_37.value + temp_taux_composition_familiale_7 = True + elif match_arg_37.code == Collectivite_Code.Metropole: + _ = match_arg_37.value + temp_taux_composition_familiale_7 = False + elif match_arg_37.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_37.value + temp_taux_composition_familiale_7 = False + elif match_arg_37.code == Collectivite_Code.Mayotte: + _ = match_arg_37.value + temp_taux_composition_familiale_7 = True + if (((date_courante_6 >= date_of_numbers(2022,7,1)) and + (date_courante_6 < date_of_numbers(2023,1,1))) and + temp_taux_composition_familiale_7): + if (nombre_personnes_a_charge_2 == + integer_of_string("0")): + match_arg_38 = situation_familiale_calcul_apl_2 + if match_arg_38.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_38.value + return decimal_of_string("0.0281") + elif match_arg_38.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_38.value + return decimal_of_string("0.0299") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("1")): + return decimal_of_string("0.0238") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("2")): + return decimal_of_string("0.0217") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("3")): + return decimal_of_string("0.0194") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("4")): + return decimal_of_string("0.018") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("5")): + return decimal_of_string("0.0169") + else: + return decimal_of_string("0.0162") + else: + raise EmptyError + def temp_taux_composition_familiale_8(_:Unit): + match_arg_39 = residence_2 + if match_arg_39.code == Collectivite_Code.Guadeloupe: + _ = match_arg_39.value + temp_taux_composition_familiale_9 = True + elif match_arg_39.code == Collectivite_Code.Guyane: + _ = match_arg_39.value + temp_taux_composition_familiale_9 = False + elif match_arg_39.code == Collectivite_Code.Martinique: + _ = match_arg_39.value + temp_taux_composition_familiale_9 = True + elif match_arg_39.code == Collectivite_Code.LaReunion: + _ = match_arg_39.value + temp_taux_composition_familiale_9 = True + elif match_arg_39.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_39.value + temp_taux_composition_familiale_9 = True + elif match_arg_39.code == Collectivite_Code.SaintMartin: + _ = match_arg_39.value + temp_taux_composition_familiale_9 = True + elif match_arg_39.code == Collectivite_Code.Metropole: + _ = match_arg_39.value + temp_taux_composition_familiale_9 = False + elif match_arg_39.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_39.value + temp_taux_composition_familiale_9 = False + elif match_arg_39.code == Collectivite_Code.Mayotte: + _ = match_arg_39.value + temp_taux_composition_familiale_9 = True if ((date_courante_6 >= date_of_numbers(2023,1,1)) and - temp_taux_composition_familiale_5): + temp_taux_composition_familiale_9): if (nombre_personnes_a_charge_2 == integer_of_string("0")): - match_arg_36 = situation_familiale_calcul_apl_2 - if match_arg_36.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_36.value + match_arg_40 = situation_familiale_calcul_apl_2 + if match_arg_40.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_40.value return decimal_of_string("0.0281") - elif match_arg_36.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_36.value + elif match_arg_40.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_40.value return decimal_of_string("0.0299") else: if (nombre_personnes_a_charge_2 == @@ -4450,17 +4649,17 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen integer_of_string("7"))))) else: raise EmptyError - temp_taux_composition_familiale_6 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=607, - start_column=12, - end_line=607, end_column=38, - law_headings=["Secteur locatif", - "Calcul du montant de l'aide personnalisée au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"]), [temp_taux_composition_familiale_4, - temp_taux_composition_familiale_2], - temp_taux_composition_familiale_1, - temp_taux_composition_familiale) + temp_taux_composition_familiale_10 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=612, + start_column=12, + end_line=612, end_column=38, + law_headings=["Secteur locatif", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"]), [temp_taux_composition_familiale_8, + temp_taux_composition_familiale_2], + temp_taux_composition_familiale_1, + temp_taux_composition_familiale) except EmptyError: try: try: @@ -4469,44 +4668,44 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen date_of_numbers(2021,10,1))): if (nombre_personnes_a_charge_2 == integer_of_string("0")): - match_arg_37 = situation_familiale_calcul_apl_2 - if match_arg_37.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_37.value - temp_taux_composition_familiale_6 = decimal_of_string("0.0283") - elif match_arg_37.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_37.value - temp_taux_composition_familiale_6 = decimal_of_string("0.0315") + match_arg_41 = situation_familiale_calcul_apl_2 + if match_arg_41.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_41.value + temp_taux_composition_familiale_10 = decimal_of_string("0.0283") + elif match_arg_41.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_41.value + temp_taux_composition_familiale_10 = decimal_of_string("0.0315") else: if (nombre_personnes_a_charge_2 == integer_of_string("1")): - temp_taux_composition_familiale_6 = decimal_of_string("0.027") + temp_taux_composition_familiale_10 = decimal_of_string("0.027") else: if (nombre_personnes_a_charge_2 == integer_of_string("2")): - temp_taux_composition_familiale_6 = decimal_of_string("0.0238") + temp_taux_composition_familiale_10 = decimal_of_string("0.0238") else: if (nombre_personnes_a_charge_2 == integer_of_string("3")): - temp_taux_composition_familiale_6 = decimal_of_string("0.0201") + temp_taux_composition_familiale_10 = decimal_of_string("0.0201") else: if (nombre_personnes_a_charge_2 == integer_of_string("4")): - temp_taux_composition_familiale_6 = decimal_of_string("0.0185") + temp_taux_composition_familiale_10 = decimal_of_string("0.0185") else: if (nombre_personnes_a_charge_2 == integer_of_string("5")): - temp_taux_composition_familiale_6 = decimal_of_string("0.0179") + temp_taux_composition_familiale_10 = decimal_of_string("0.0179") else: if (nombre_personnes_a_charge_2 == integer_of_string("6")): - temp_taux_composition_familiale_6 = decimal_of_string("0.0173") + temp_taux_composition_familiale_10 = decimal_of_string("0.0173") else: - temp_taux_composition_familiale_6 = (decimal_of_string("0.0173") - + temp_taux_composition_familiale_10 = (decimal_of_string("0.0173") - (decimal_of_string("0.0006") * decimal_of_integer((nombre_personnes_a_charge_2 - integer_of_string("6"))))) else: - temp_taux_composition_familiale_6 = dead_value + temp_taux_composition_familiale_10 = dead_value raise EmptyError except EmptyError: if ((date_courante_6 >= date_of_numbers(2021,10,1)) and @@ -4514,837 +4713,851 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen date_of_numbers(2022,7,1))): if (nombre_personnes_a_charge_2 == integer_of_string("0")): - match_arg_38 = situation_familiale_calcul_apl_2 - if match_arg_38.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_38.value - temp_taux_composition_familiale_6 = decimal_of_string("0.0283") - elif match_arg_38.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_38.value - temp_taux_composition_familiale_6 = decimal_of_string("0.0315") + match_arg_42 = situation_familiale_calcul_apl_2 + if match_arg_42.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_42.value + temp_taux_composition_familiale_10 = decimal_of_string("0.0283") + elif match_arg_42.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_42.value + temp_taux_composition_familiale_10 = decimal_of_string("0.0315") else: if (nombre_personnes_a_charge_2 == integer_of_string("1")): - temp_taux_composition_familiale_6 = decimal_of_string("0.027") + temp_taux_composition_familiale_10 = decimal_of_string("0.027") else: if (nombre_personnes_a_charge_2 == integer_of_string("2")): - temp_taux_composition_familiale_6 = decimal_of_string("0.0238") + temp_taux_composition_familiale_10 = decimal_of_string("0.0238") else: if (nombre_personnes_a_charge_2 == integer_of_string("3")): - temp_taux_composition_familiale_6 = decimal_of_string("0.0201") + temp_taux_composition_familiale_10 = decimal_of_string("0.0201") else: if (nombre_personnes_a_charge_2 == integer_of_string("4")): - temp_taux_composition_familiale_6 = decimal_of_string("0.0185") + temp_taux_composition_familiale_10 = decimal_of_string("0.0185") else: if (nombre_personnes_a_charge_2 == integer_of_string("5")): - temp_taux_composition_familiale_6 = decimal_of_string("0.0179") + temp_taux_composition_familiale_10 = decimal_of_string("0.0179") else: if (nombre_personnes_a_charge_2 == integer_of_string("6")): - temp_taux_composition_familiale_6 = decimal_of_string("0.0173") + temp_taux_composition_familiale_10 = decimal_of_string("0.0173") else: - temp_taux_composition_familiale_6 = (decimal_of_string("0.0173") - + temp_taux_composition_familiale_10 = (decimal_of_string("0.0173") - (decimal_of_string("0.0006") * decimal_of_integer((nombre_personnes_a_charge_2 - integer_of_string("6"))))) else: - temp_taux_composition_familiale_6 = dead_value + temp_taux_composition_familiale_10 = dead_value raise EmptyError except EmptyError: if (date_courante_6 >= date_of_numbers(2022,7,1)): if (nombre_personnes_a_charge_2 == integer_of_string("0")): - match_arg_39 = situation_familiale_calcul_apl_2 - if match_arg_39.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_39.value - temp_taux_composition_familiale_6 = decimal_of_string("0.0283") - elif match_arg_39.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_39.value - temp_taux_composition_familiale_6 = decimal_of_string("0.0315") + match_arg_43 = situation_familiale_calcul_apl_2 + if match_arg_43.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_43.value + temp_taux_composition_familiale_10 = decimal_of_string("0.0283") + elif match_arg_43.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_43.value + temp_taux_composition_familiale_10 = decimal_of_string("0.0315") else: if (nombre_personnes_a_charge_2 == integer_of_string("1")): - temp_taux_composition_familiale_6 = decimal_of_string("0.027") + temp_taux_composition_familiale_10 = decimal_of_string("0.027") else: if (nombre_personnes_a_charge_2 == integer_of_string("2")): - temp_taux_composition_familiale_6 = decimal_of_string("0.0238") + temp_taux_composition_familiale_10 = decimal_of_string("0.0238") else: if (nombre_personnes_a_charge_2 == integer_of_string("3")): - temp_taux_composition_familiale_6 = decimal_of_string("0.0201") + temp_taux_composition_familiale_10 = decimal_of_string("0.0201") else: if (nombre_personnes_a_charge_2 == integer_of_string("4")): - temp_taux_composition_familiale_6 = decimal_of_string("0.0185") + temp_taux_composition_familiale_10 = decimal_of_string("0.0185") else: if (nombre_personnes_a_charge_2 == integer_of_string("5")): - temp_taux_composition_familiale_6 = decimal_of_string("0.0179") + temp_taux_composition_familiale_10 = decimal_of_string("0.0179") else: if (nombre_personnes_a_charge_2 == integer_of_string("6")): - temp_taux_composition_familiale_6 = decimal_of_string("0.0173") + temp_taux_composition_familiale_10 = decimal_of_string("0.0173") else: - temp_taux_composition_familiale_6 = (decimal_of_string("0.0173") - + temp_taux_composition_familiale_10 = (decimal_of_string("0.0173") - (decimal_of_string("0.0006") * decimal_of_integer((nombre_personnes_a_charge_2 - integer_of_string("6"))))) else: - temp_taux_composition_familiale_6 = dead_value + temp_taux_composition_familiale_10 = dead_value raise EmptyError except EmptyError: - temp_taux_composition_familiale_6 = dead_value + temp_taux_composition_familiale_10 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=607, start_column=12, - end_line=607, end_column=38, + start_line=612, start_column=12, + end_line=612, end_column=38, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) - taux_composition_familiale = temp_taux_composition_familiale_6 + taux_composition_familiale = temp_taux_composition_familiale_10 try: - def temp_plafond_loyer_d823_16_2(_:Unit): - def temp_plafond_loyer_d823_16_2_1(_:Unit): - raise EmptyError - def temp_plafond_loyer_d823_16_2_2(_:Unit): - return False - def temp_plafond_loyer_d823_16_2_3(_:Unit): - if (((date_courante_6 < date_of_numbers(2021,10,1)) and - (date_courante_6 >= date_of_numbers(2020,10,1))) and - (nombre_personnes_a_charge_2 >= - integer_of_string("1"))): - match_arg_40 = zone - if match_arg_40.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_40.value - return (money_of_cents_string("40460") + - (money_of_cents_string("5870") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) - elif match_arg_40.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_40.value - return (money_of_cents_string("35630") + - (money_of_cents_string("5186") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) - elif match_arg_40.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_40.value - return (money_of_cents_string("32956") + - (money_of_cents_string("4723") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) - else: - raise EmptyError - def temp_plafond_loyer_d823_16_2_4(_:Unit): - match_arg_41 = situation_familiale_calcul_apl_2 - if match_arg_41.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_41.value - temp_plafond_loyer_d823_16_2_5 = False - elif match_arg_41.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_41.value - temp_plafond_loyer_d823_16_2_5 = True - if (((date_courante_6 < date_of_numbers(2021,10,1)) and - (date_courante_6 >= date_of_numbers(2020,10,1))) and - (temp_plafond_loyer_d823_16_2_5 and - (nombre_personnes_a_charge_2 == - integer_of_string("0")))): - match_arg_42 = zone - if match_arg_42.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_42.value - return money_of_cents_string("35799") - elif match_arg_42.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_42.value - return money_of_cents_string("31664") - elif match_arg_42.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_42.value - return money_of_cents_string("29392") - else: - raise EmptyError - def temp_plafond_loyer_d823_16_2_6(_:Unit): - match_arg_43 = situation_familiale_calcul_apl_2 - if match_arg_43.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_43.value - temp_plafond_loyer_d823_16_2_7 = True - elif match_arg_43.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_43.value - temp_plafond_loyer_d823_16_2_7 = False - if (((date_courante_6 < date_of_numbers(2021,10,1)) and - (date_courante_6 >= date_of_numbers(2020,10,1))) and - (temp_plafond_loyer_d823_16_2_7 and - (nombre_personnes_a_charge_2 == - integer_of_string("0")))): - match_arg_44 = zone - if match_arg_44.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_44.value - return money_of_cents_string("29682") - elif match_arg_44.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_44.value - return money_of_cents_string("25859") - elif match_arg_44.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_44.value - return money_of_cents_string("24246") - else: - raise EmptyError - def temp_plafond_loyer_d823_16_2_8(_:Unit): - if (((date_courante_6 >= date_of_numbers(2021,10,1)) and - (date_courante_6 < date_of_numbers(2022,7,1))) and - (nombre_personnes_a_charge_2 >= - integer_of_string("1"))): - match_arg_45 = zone - if match_arg_45.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_45.value - return (money_of_cents_string("40630") + - (money_of_cents_string("5895") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) - elif match_arg_45.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_45.value - return (money_of_cents_string("35780") + - (money_of_cents_string("5208") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) - elif match_arg_45.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_45.value - return (money_of_cents_string("33094") + - (money_of_cents_string("4743") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) - else: - raise EmptyError - def temp_plafond_loyer_d823_16_2_9(_:Unit): - match_arg_46 = situation_familiale_calcul_apl_2 - if match_arg_46.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_46.value - temp_plafond_loyer_d823_16_2_10 = False - elif match_arg_46.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_46.value - temp_plafond_loyer_d823_16_2_10 = True - if (((date_courante_6 >= date_of_numbers(2021,10,1)) and - (date_courante_6 < date_of_numbers(2022,7,1))) and - (temp_plafond_loyer_d823_16_2_10 and - (nombre_personnes_a_charge_2 == - integer_of_string("0")))): - match_arg_47 = zone - if match_arg_47.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_47.value - return money_of_cents_string("35949") - elif match_arg_47.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_47.value - return money_of_cents_string("31797") - elif match_arg_47.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_47.value - return money_of_cents_string("29515") - else: - raise EmptyError - def temp_plafond_loyer_d823_16_2_11(_:Unit): - match_arg_48 = situation_familiale_calcul_apl_2 - if match_arg_48.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_48.value - temp_plafond_loyer_d823_16_2_12 = True - elif match_arg_48.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_48.value - temp_plafond_loyer_d823_16_2_12 = False - if (((date_courante_6 >= date_of_numbers(2021,10,1)) and - (date_courante_6 < date_of_numbers(2022,7,1))) and - (temp_plafond_loyer_d823_16_2_12 and - (nombre_personnes_a_charge_2 == - integer_of_string("0")))): - match_arg_49 = zone - if match_arg_49.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_49.value - return money_of_cents_string("29807") - elif match_arg_49.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_49.value - return money_of_cents_string("25978") - elif match_arg_49.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_49.value - return money_of_cents_string("24348") - else: - raise EmptyError - def temp_plafond_loyer_d823_16_2_13(_:Unit): - if ((date_courante_6 >= date_of_numbers(2022,7,1)) and - (nombre_personnes_a_charge_2 >= - integer_of_string("1"))): - match_arg_50 = zone - if match_arg_50.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_50.value - return (money_of_cents_string("42052") + - (money_of_cents_string("6101") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) - elif match_arg_50.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_50.value - return (money_of_cents_string("37032") + - (money_of_cents_string("5390") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) - elif match_arg_50.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_50.value - return (money_of_cents_string("34252") + - (money_of_cents_string("4909") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) - else: - raise EmptyError - def temp_plafond_loyer_d823_16_2_14(_:Unit): - match_arg_51 = situation_familiale_calcul_apl_2 - if match_arg_51.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_51.value - temp_plafond_loyer_d823_16_2_15 = False - elif match_arg_51.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_51.value - temp_plafond_loyer_d823_16_2_15 = True - if ((date_courante_6 >= date_of_numbers(2022,7,1)) and - (temp_plafond_loyer_d823_16_2_15 and - (nombre_personnes_a_charge_2 == - integer_of_string("0")))): - match_arg_52 = zone - if match_arg_52.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_52.value - return money_of_cents_string("37207") - elif match_arg_52.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_52.value - return money_of_cents_string("32910") - elif match_arg_52.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_52.value - return money_of_cents_string("30548") - else: - raise EmptyError - def temp_plafond_loyer_d823_16_2_16(_:Unit): - match_arg_53 = situation_familiale_calcul_apl_2 - if match_arg_53.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_53.value - temp_plafond_loyer_d823_16_2_17 = True - elif match_arg_53.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_53.value - temp_plafond_loyer_d823_16_2_17 = False - if ((date_courante_6 >= date_of_numbers(2022,7,1)) and - (temp_plafond_loyer_d823_16_2_17 and - (nombre_personnes_a_charge_2 == - integer_of_string("0")))): - match_arg_54 = zone - if match_arg_54.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_54.value - return money_of_cents_string("30850") - elif match_arg_54.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_54.value - return money_of_cents_string("26887") - elif match_arg_54.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_54.value - return money_of_cents_string("25200") - else: - raise EmptyError - return handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=605, start_column=12, - end_line=605, end_column=35, - law_headings=["Secteur locatif", - "Calcul du montant de l'aide personnalisée au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"]), [temp_plafond_loyer_d823_16_2_16, - temp_plafond_loyer_d823_16_2_14, - temp_plafond_loyer_d823_16_2_13, - temp_plafond_loyer_d823_16_2_11, - temp_plafond_loyer_d823_16_2_9, - temp_plafond_loyer_d823_16_2_8, - temp_plafond_loyer_d823_16_2_6, - temp_plafond_loyer_d823_16_2_4, - temp_plafond_loyer_d823_16_2_3], - temp_plafond_loyer_d823_16_2_2, - temp_plafond_loyer_d823_16_2_1) - def temp_plafond_loyer_d823_16_2_18(_:Unit): - return True - def temp_plafond_loyer_d823_16_2_19(_:Unit): + try: try: - def temp_plafond_loyer_d823_16_2_20(_:Unit): - raise EmptyError - def temp_plafond_loyer_d823_16_2_21(_:Unit): - return False - def temp_plafond_loyer_d823_16_2_22(_:Unit): - if (((date_courante_6 < date_of_numbers(2021,10,1)) and - ((date_courante_6 >= date_of_numbers(2020,10,1)) and - logement_est_chambre)) and - agees_ou_handicap_adultes_hebergees_onereux_particuliers): - match_arg_55 = zone - if match_arg_55.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_55.value - return money_of_cents_string("22262") - elif match_arg_55.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_55.value - return money_of_cents_string("19402") - elif match_arg_55.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_55.value - return money_of_cents_string("18185") + try: + try: + try: + match_arg_44 = residence_2 + if match_arg_44.code == Collectivite_Code.Guadeloupe: + _ = match_arg_44.value + temp_multiplicateur_majoration_r0 = True + elif match_arg_44.code == Collectivite_Code.Guyane: + _ = match_arg_44.value + temp_multiplicateur_majoration_r0 = False + elif match_arg_44.code == Collectivite_Code.Martinique: + _ = match_arg_44.value + temp_multiplicateur_majoration_r0 = True + elif match_arg_44.code == Collectivite_Code.LaReunion: + _ = match_arg_44.value + temp_multiplicateur_majoration_r0 = True + elif match_arg_44.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_44.value + temp_multiplicateur_majoration_r0 = True + elif match_arg_44.code == Collectivite_Code.SaintMartin: + _ = match_arg_44.value + temp_multiplicateur_majoration_r0 = True + elif match_arg_44.code == Collectivite_Code.Metropole: + _ = match_arg_44.value + temp_multiplicateur_majoration_r0 = False + elif match_arg_44.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_44.value + temp_multiplicateur_majoration_r0 = False + elif match_arg_44.code == Collectivite_Code.Mayotte: + _ = match_arg_44.value + temp_multiplicateur_majoration_r0 = True + if (((date_courante_6 >= + date_of_numbers(2020,1,1)) and + (date_courante_6 < + date_of_numbers(2020,10,1))) and + (temp_multiplicateur_majoration_r0 and + (nombre_personnes_a_charge_2 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_r0_1 = decimal_of_string("0.") + else: + temp_multiplicateur_majoration_r0_1 = dead_value + raise EmptyError + except EmptyError: + match_arg_45 = residence_2 + if match_arg_45.code == Collectivite_Code.Guadeloupe: + _ = match_arg_45.value + temp_multiplicateur_majoration_r0_2 = True + elif match_arg_45.code == Collectivite_Code.Guyane: + _ = match_arg_45.value + temp_multiplicateur_majoration_r0_2 = False + elif match_arg_45.code == Collectivite_Code.Martinique: + _ = match_arg_45.value + temp_multiplicateur_majoration_r0_2 = True + elif match_arg_45.code == Collectivite_Code.LaReunion: + _ = match_arg_45.value + temp_multiplicateur_majoration_r0_2 = True + elif match_arg_45.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_45.value + temp_multiplicateur_majoration_r0_2 = True + elif match_arg_45.code == Collectivite_Code.SaintMartin: + _ = match_arg_45.value + temp_multiplicateur_majoration_r0_2 = True + elif match_arg_45.code == Collectivite_Code.Metropole: + _ = match_arg_45.value + temp_multiplicateur_majoration_r0_2 = False + elif match_arg_45.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_45.value + temp_multiplicateur_majoration_r0_2 = False + elif match_arg_45.code == Collectivite_Code.Mayotte: + _ = match_arg_45.value + temp_multiplicateur_majoration_r0_2 = True + if (((date_courante_6 >= + date_of_numbers(2020,10,1)) and + (date_courante_6 < + date_of_numbers(2021,10,1))) and + (temp_multiplicateur_majoration_r0_2 and + (nombre_personnes_a_charge_2 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_r0_1 = decimal_of_string("0.") + else: + temp_multiplicateur_majoration_r0_1 = dead_value + raise EmptyError + except EmptyError: + match_arg_46 = residence_2 + if match_arg_46.code == Collectivite_Code.Guadeloupe: + _ = match_arg_46.value + temp_multiplicateur_majoration_r0_3 = True + elif match_arg_46.code == Collectivite_Code.Guyane: + _ = match_arg_46.value + temp_multiplicateur_majoration_r0_3 = False + elif match_arg_46.code == Collectivite_Code.Martinique: + _ = match_arg_46.value + temp_multiplicateur_majoration_r0_3 = True + elif match_arg_46.code == Collectivite_Code.LaReunion: + _ = match_arg_46.value + temp_multiplicateur_majoration_r0_3 = True + elif match_arg_46.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_46.value + temp_multiplicateur_majoration_r0_3 = True + elif match_arg_46.code == Collectivite_Code.SaintMartin: + _ = match_arg_46.value + temp_multiplicateur_majoration_r0_3 = True + elif match_arg_46.code == Collectivite_Code.Metropole: + _ = match_arg_46.value + temp_multiplicateur_majoration_r0_3 = False + elif match_arg_46.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_46.value + temp_multiplicateur_majoration_r0_3 = False + elif match_arg_46.code == Collectivite_Code.Mayotte: + _ = match_arg_46.value + temp_multiplicateur_majoration_r0_3 = True + if (((date_courante_6 >= + date_of_numbers(2021,10,1)) and + (date_courante_6 < + date_of_numbers(2022,1,1))) and + (temp_multiplicateur_majoration_r0_3 and + (nombre_personnes_a_charge_2 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_r0_1 = decimal_of_string("0.") + else: + temp_multiplicateur_majoration_r0_1 = dead_value + raise EmptyError + except EmptyError: + match_arg_47 = residence_2 + if match_arg_47.code == Collectivite_Code.Guadeloupe: + _ = match_arg_47.value + temp_multiplicateur_majoration_r0_4 = True + elif match_arg_47.code == Collectivite_Code.Guyane: + _ = match_arg_47.value + temp_multiplicateur_majoration_r0_4 = False + elif match_arg_47.code == Collectivite_Code.Martinique: + _ = match_arg_47.value + temp_multiplicateur_majoration_r0_4 = True + elif match_arg_47.code == Collectivite_Code.LaReunion: + _ = match_arg_47.value + temp_multiplicateur_majoration_r0_4 = True + elif match_arg_47.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_47.value + temp_multiplicateur_majoration_r0_4 = True + elif match_arg_47.code == Collectivite_Code.SaintMartin: + _ = match_arg_47.value + temp_multiplicateur_majoration_r0_4 = True + elif match_arg_47.code == Collectivite_Code.Metropole: + _ = match_arg_47.value + temp_multiplicateur_majoration_r0_4 = False + elif match_arg_47.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_47.value + temp_multiplicateur_majoration_r0_4 = False + elif match_arg_47.code == Collectivite_Code.Mayotte: + _ = match_arg_47.value + temp_multiplicateur_majoration_r0_4 = True + if (((date_courante_6 >= date_of_numbers(2022,1,1)) and + (date_courante_6 < date_of_numbers(2022,7,1))) and + (temp_multiplicateur_majoration_r0_4 and + (nombre_personnes_a_charge_2 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_r0_1 = decimal_of_string("0.") else: + temp_multiplicateur_majoration_r0_1 = dead_value raise EmptyError - def temp_plafond_loyer_d823_16_2_23(_:Unit): - if (((date_courante_6 >= date_of_numbers(2021,10,1)) and - ((date_courante_6 < date_of_numbers(2022,7,1)) and - logement_est_chambre)) and - agees_ou_handicap_adultes_hebergees_onereux_particuliers): - match_arg_56 = zone - if match_arg_56.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_56.value - return money_of_cents_string("22355") - elif match_arg_56.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_56.value - return money_of_cents_string("19484") - elif match_arg_56.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_56.value - return money_of_cents_string("18261") - else: - raise EmptyError - def temp_plafond_loyer_d823_16_2_24(_:Unit): - if (((date_courante_6 >= date_of_numbers(2022,7,1)) and - logement_est_chambre) and - agees_ou_handicap_adultes_hebergees_onereux_particuliers): - match_arg_57 = zone - if match_arg_57.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_57.value - return money_of_cents_string("23138") - elif match_arg_57.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_57.value - return money_of_cents_string("20165") - elif match_arg_57.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_57.value - return money_of_cents_string("18900") - else: - raise EmptyError - return handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=605, start_column=12, - end_line=605, end_column=35, - law_headings=["Secteur locatif", - "Calcul du montant de l'aide personnalisée au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"]), [temp_plafond_loyer_d823_16_2_24, - temp_plafond_loyer_d823_16_2_23, - temp_plafond_loyer_d823_16_2_22], - temp_plafond_loyer_d823_16_2_21, - temp_plafond_loyer_d823_16_2_20) except EmptyError: - def temp_plafond_loyer_d823_16_2_25(_:Unit): - raise EmptyError - def temp_plafond_loyer_d823_16_2_26(_:Unit): - return False - def temp_plafond_loyer_d823_16_2_27(_:Unit): - if ((date_courante_6 < date_of_numbers(2021,10,1)) and - ((date_courante_6 >= date_of_numbers(2020,10,1)) and - logement_est_chambre)): - match_arg_58 = zone - if match_arg_58.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_58.value - return money_of_cents_string("26714") - elif match_arg_58.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_58.value - return money_of_cents_string("23282") - elif match_arg_58.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_58.value - return money_of_cents_string("21821") - else: - raise EmptyError - def temp_plafond_loyer_d823_16_2_28(_:Unit): - if ((date_courante_6 >= date_of_numbers(2021,10,1)) and - ((date_courante_6 < date_of_numbers(2022,7,1)) and - logement_est_chambre)): - match_arg_59 = zone - if match_arg_59.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_59.value - return money_of_cents_string("26826") - elif match_arg_59.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_59.value - return money_of_cents_string("23380") - elif match_arg_59.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_59.value - return money_of_cents_string("21913") - else: - raise EmptyError - def temp_plafond_loyer_d823_16_2_29(_:Unit): - if ((date_courante_6 >= date_of_numbers(2022,7,1)) and - logement_est_chambre): - match_arg_60 = zone - if match_arg_60.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_60.value - return money_of_cents_string("27765") - elif match_arg_60.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_60.value - return money_of_cents_string("24198") - elif match_arg_60.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_60.value - return money_of_cents_string("22680") - else: - raise EmptyError - return handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=605, start_column=12, - end_line=605, end_column=35, - law_headings=["Secteur locatif", - "Calcul du montant de l'aide personnalisée au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"]), [temp_plafond_loyer_d823_16_2_29, - temp_plafond_loyer_d823_16_2_28, - temp_plafond_loyer_d823_16_2_27], - temp_plafond_loyer_d823_16_2_26, - temp_plafond_loyer_d823_16_2_25) - def temp_plafond_loyer_d823_16_2_30(_:Unit): - def temp_plafond_loyer_d823_16_2_31(_:Unit): - raise EmptyError - def temp_plafond_loyer_d823_16_2_32(_:Unit): - return False - def temp_plafond_loyer_d823_16_2_33(_:Unit): - if (((date_courante_6 < date_of_numbers(2021,10,1)) and - ((date_courante_6 >= date_of_numbers(2020,10,1)) and - colocation)) and (nombre_personnes_a_charge_2 >= - integer_of_string("1"))): - match_arg_61 = zone - if match_arg_61.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_61.value - return (money_of_cents_string("30345") + - (money_of_cents_string("4403") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) - elif match_arg_61.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_61.value - return (money_of_cents_string("26723") + - (money_of_cents_string("3890") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) - elif match_arg_61.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_61.value - return (money_of_cents_string("24717") + - (money_of_cents_string("3542") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) - else: - raise EmptyError - def temp_plafond_loyer_d823_16_2_34(_:Unit): - match_arg_62 = situation_familiale_calcul_apl_2 - if match_arg_62.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_62.value - temp_plafond_loyer_d823_16_2_35 = False - elif match_arg_62.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_62.value - temp_plafond_loyer_d823_16_2_35 = True - if (((date_courante_6 < date_of_numbers(2021,10,1)) and - ((date_courante_6 >= date_of_numbers(2020,10,1)) and - colocation)) and (temp_plafond_loyer_d823_16_2_35 and - (nombre_personnes_a_charge_2 == - integer_of_string("0")))): - match_arg_63 = zone - if match_arg_63.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_63.value - return money_of_cents_string("26849") - elif match_arg_63.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_63.value - return money_of_cents_string("23748") - elif match_arg_63.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_63.value - return money_of_cents_string("22044") - else: - raise EmptyError - def temp_plafond_loyer_d823_16_2_36(_:Unit): - match_arg_64 = situation_familiale_calcul_apl_2 - if match_arg_64.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_64.value - temp_plafond_loyer_d823_16_2_37 = True - elif match_arg_64.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_64.value - temp_plafond_loyer_d823_16_2_37 = False - if (((date_courante_6 < date_of_numbers(2021,10,1)) and - ((date_courante_6 >= date_of_numbers(2020,10,1)) and - colocation)) and (temp_plafond_loyer_d823_16_2_37 and - (nombre_personnes_a_charge_2 == - integer_of_string("0")))): - match_arg_65 = zone - if match_arg_65.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_65.value - return money_of_cents_string("22262") - elif match_arg_65.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_65.value - return money_of_cents_string("19402") - elif match_arg_65.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_65.value - return money_of_cents_string("18185") - else: - raise EmptyError - def temp_plafond_loyer_d823_16_2_38(_:Unit): - if (((date_courante_6 >= date_of_numbers(2021,10,1)) and - ((date_courante_6 < date_of_numbers(2022,7,1)) and - colocation)) and (nombre_personnes_a_charge_2 >= - integer_of_string("1"))): - match_arg_66 = zone - if match_arg_66.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_66.value - return (money_of_cents_string("30473") + - (money_of_cents_string("4421") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) - elif match_arg_66.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_66.value - return (money_of_cents_string("26835") + - (money_of_cents_string("3906") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) - elif match_arg_66.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_66.value - return (money_of_cents_string("24821") + - (money_of_cents_string("3557") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) - else: - raise EmptyError - def temp_plafond_loyer_d823_16_2_39(_:Unit): - match_arg_67 = situation_familiale_calcul_apl_2 - if match_arg_67.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_67.value - temp_plafond_loyer_d823_16_2_40 = False - elif match_arg_67.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_67.value - temp_plafond_loyer_d823_16_2_40 = True - if (((date_courante_6 >= date_of_numbers(2021,10,1)) and - ((date_courante_6 < date_of_numbers(2022,7,1)) and - colocation)) and (temp_plafond_loyer_d823_16_2_40 and - (nombre_personnes_a_charge_2 == - integer_of_string("0")))): - match_arg_68 = zone - if match_arg_68.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_68.value - return money_of_cents_string("26962") - elif match_arg_68.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_68.value - return money_of_cents_string("23848") - elif match_arg_68.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_68.value - return money_of_cents_string("22136") - else: - raise EmptyError - def temp_plafond_loyer_d823_16_2_41(_:Unit): - match_arg_69 = situation_familiale_calcul_apl_2 - if match_arg_69.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_69.value - temp_plafond_loyer_d823_16_2_42 = True - elif match_arg_69.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_69.value - temp_plafond_loyer_d823_16_2_42 = False - if (((date_courante_6 >= date_of_numbers(2021,10,1)) and - ((date_courante_6 < date_of_numbers(2022,7,1)) and - colocation)) and (temp_plafond_loyer_d823_16_2_42 and - (nombre_personnes_a_charge_2 == - integer_of_string("0")))): - match_arg_70 = zone - if match_arg_70.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_70.value - return money_of_cents_string("22355") - elif match_arg_70.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_70.value - return money_of_cents_string("19484") - elif match_arg_70.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_70.value - return money_of_cents_string("18261") - else: - raise EmptyError - def temp_plafond_loyer_d823_16_2_43(_:Unit): - match_arg_71 = residence_2 - if match_arg_71.code == Collectivite_Code.Guadeloupe: - _ = match_arg_71.value - temp_plafond_loyer_d823_16_2_44 = True - elif match_arg_71.code == Collectivite_Code.Guyane: - _ = match_arg_71.value - temp_plafond_loyer_d823_16_2_44 = False - elif match_arg_71.code == Collectivite_Code.Martinique: - _ = match_arg_71.value - temp_plafond_loyer_d823_16_2_44 = True - elif match_arg_71.code == Collectivite_Code.LaReunion: - _ = match_arg_71.value - temp_plafond_loyer_d823_16_2_44 = True - elif match_arg_71.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_71.value - temp_plafond_loyer_d823_16_2_44 = True - elif match_arg_71.code == Collectivite_Code.SaintMartin: - _ = match_arg_71.value - temp_plafond_loyer_d823_16_2_44 = True - elif match_arg_71.code == Collectivite_Code.Metropole: - _ = match_arg_71.value - temp_plafond_loyer_d823_16_2_44 = False - elif match_arg_71.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_71.value - temp_plafond_loyer_d823_16_2_44 = False - elif match_arg_71.code == Collectivite_Code.Mayotte: - _ = match_arg_71.value - temp_plafond_loyer_d823_16_2_44 = True + match_arg_48 = residence_2 + if match_arg_48.code == Collectivite_Code.Guadeloupe: + _ = match_arg_48.value + temp_multiplicateur_majoration_r0_5 = True + elif match_arg_48.code == Collectivite_Code.Guyane: + _ = match_arg_48.value + temp_multiplicateur_majoration_r0_5 = False + elif match_arg_48.code == Collectivite_Code.Martinique: + _ = match_arg_48.value + temp_multiplicateur_majoration_r0_5 = True + elif match_arg_48.code == Collectivite_Code.LaReunion: + _ = match_arg_48.value + temp_multiplicateur_majoration_r0_5 = True + elif match_arg_48.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_48.value + temp_multiplicateur_majoration_r0_5 = True + elif match_arg_48.code == Collectivite_Code.SaintMartin: + _ = match_arg_48.value + temp_multiplicateur_majoration_r0_5 = True + elif match_arg_48.code == Collectivite_Code.Metropole: + _ = match_arg_48.value + temp_multiplicateur_majoration_r0_5 = False + elif match_arg_48.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_48.value + temp_multiplicateur_majoration_r0_5 = False + elif match_arg_48.code == Collectivite_Code.Mayotte: + _ = match_arg_48.value + temp_multiplicateur_majoration_r0_5 = True if (((date_courante_6 >= date_of_numbers(2022,7,1)) and (date_courante_6 < date_of_numbers(2023,1,1))) and - (temp_plafond_loyer_d823_16_2_44 and - ((nombre_personnes_a_charge_2 >= - integer_of_string("1")) and not (logement_est_chambre or - colocation)))): - match_arg_72 = zone - if match_arg_72.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_72.value - if ((money_of_cents_string("42052") + - (money_of_cents_string("6101") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) > - (money_of_cents_string("42052") + - (money_of_cents_string("6101") * - decimal_of_string("6.")))): - return (money_of_cents_string("42052") + - (money_of_cents_string("6101") * - decimal_of_string("6."))) + (temp_multiplicateur_majoration_r0_5 and + (nombre_personnes_a_charge_2 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_r0_1 = decimal_of_string("0.") + else: + temp_multiplicateur_majoration_r0_1 = dead_value + raise EmptyError + except EmptyError: + try: + try: + try: + if ((date_courante_6 < date_of_numbers(2022,1,1)) and + (date_courante_6 >= + date_of_numbers(2020,1,1))): + temp_multiplicateur_majoration_r0_1 = decimal_of_integer((nombre_personnes_a_charge_2 - + integer_of_string("6"))) else: - return (money_of_cents_string("42052") + - (money_of_cents_string("6101") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) - elif match_arg_72.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_72.value - if ((money_of_cents_string("37032") + - (money_of_cents_string("5390") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) > - (money_of_cents_string("37032") + - (money_of_cents_string("5390") * - decimal_of_string("6.")))): - return (money_of_cents_string("37032") + - (money_of_cents_string("5390") * - decimal_of_string("6."))) + temp_multiplicateur_majoration_r0_1 = dead_value + raise EmptyError + except EmptyError: + if ((date_courante_6 >= + date_of_numbers(2022,1,1)) and (date_courante_6 < + date_of_numbers(2022,7,1))): + temp_multiplicateur_majoration_r0_1 = decimal_of_integer((nombre_personnes_a_charge_2 - + integer_of_string("6"))) else: - return (money_of_cents_string("37032") + - (money_of_cents_string("5390") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) - elif match_arg_72.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_72.value - if ((money_of_cents_string("34252") + - (money_of_cents_string("4909") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) > - (money_of_cents_string("34252") + - (money_of_cents_string("4909") * - decimal_of_string("6.")))): - return (money_of_cents_string("34252") + - (money_of_cents_string("4909") * - decimal_of_string("6."))) - else: - return (money_of_cents_string("34252") + - (money_of_cents_string("4909") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) + temp_multiplicateur_majoration_r0_1 = dead_value + raise EmptyError + except EmptyError: + if ((date_courante_6 >= date_of_numbers(2022,7,1)) and + (date_courante_6 <= + date_of_numbers(2022,12,31))): + temp_multiplicateur_majoration_r0_1 = decimal_of_integer((nombre_personnes_a_charge_2 - + integer_of_string("6"))) + else: + temp_multiplicateur_majoration_r0_1 = dead_value + raise EmptyError + except EmptyError: + if (date_courante_6 >= + date_of_numbers(2023,1,1)): + temp_multiplicateur_majoration_r0_1 = decimal_of_integer((nombre_personnes_a_charge_2 - + integer_of_string("6"))) else: + temp_multiplicateur_majoration_r0_1 = dead_value raise EmptyError - def temp_plafond_loyer_d823_16_2_45(_:Unit): - if (((date_courante_6 >= date_of_numbers(2022,7,1)) and - colocation) and (nombre_personnes_a_charge_2 >= - integer_of_string("1"))): - match_arg_73 = zone - if match_arg_73.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_73.value - return (money_of_cents_string("31539") + - (money_of_cents_string("4576") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) - elif match_arg_73.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_73.value - return (money_of_cents_string("27774") + - (money_of_cents_string("4043") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) - elif match_arg_73.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_73.value - return (money_of_cents_string("25689") + - (money_of_cents_string("3682") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("1"))))) - else: - raise EmptyError - def temp_plafond_loyer_d823_16_2_46(_:Unit): - match_arg_74 = situation_familiale_calcul_apl_2 - if match_arg_74.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_74.value - temp_plafond_loyer_d823_16_2_47 = False - elif match_arg_74.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_74.value - temp_plafond_loyer_d823_16_2_47 = True - if (((date_courante_6 >= date_of_numbers(2022,7,1)) and - colocation) and (temp_plafond_loyer_d823_16_2_47 and - (nombre_personnes_a_charge_2 == - integer_of_string("0")))): - match_arg_75 = zone - if match_arg_75.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_75.value - return money_of_cents_string("27905") - elif match_arg_75.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_75.value - return money_of_cents_string("24683") - elif match_arg_75.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_75.value - return money_of_cents_string("22911") - else: - raise EmptyError - def temp_plafond_loyer_d823_16_2_48(_:Unit): - match_arg_76 = situation_familiale_calcul_apl_2 - if match_arg_76.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_76.value - temp_plafond_loyer_d823_16_2_49 = True - elif match_arg_76.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_76.value - temp_plafond_loyer_d823_16_2_49 = False - if (((date_courante_6 >= date_of_numbers(2022,7,1)) and - colocation) and (temp_plafond_loyer_d823_16_2_49 and - (nombre_personnes_a_charge_2 == - integer_of_string("0")))): - match_arg_77 = zone - if match_arg_77.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_77.value - return money_of_cents_string("23138") - elif match_arg_77.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_77.value - return money_of_cents_string("20165") - elif match_arg_77.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_77.value - return money_of_cents_string("18900") - else: - raise EmptyError - return handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=605, start_column=12, - end_line=605, end_column=35, - law_headings=["Secteur locatif", - "Calcul du montant de l'aide personnalisée au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"]), [temp_plafond_loyer_d823_16_2_48, - temp_plafond_loyer_d823_16_2_46, - temp_plafond_loyer_d823_16_2_45, - temp_plafond_loyer_d823_16_2_43, - temp_plafond_loyer_d823_16_2_41, - temp_plafond_loyer_d823_16_2_39, - temp_plafond_loyer_d823_16_2_38, - temp_plafond_loyer_d823_16_2_36, - temp_plafond_loyer_d823_16_2_34, - temp_plafond_loyer_d823_16_2_33], - temp_plafond_loyer_d823_16_2_32, - temp_plafond_loyer_d823_16_2_31) - temp_plafond_loyer_d823_16_2_50 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=605, - start_column=12, - end_line=605, end_column=35, - law_headings=["Secteur locatif", - "Calcul du montant de l'aide personnalisée au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"]), [temp_plafond_loyer_d823_16_2_30, - temp_plafond_loyer_d823_16_2_19], - temp_plafond_loyer_d823_16_2_18, - temp_plafond_loyer_d823_16_2) except EmptyError: - temp_plafond_loyer_d823_16_2_50 = dead_value + temp_multiplicateur_majoration_r0_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=605, start_column=12, - end_line=605, end_column=35, + start_line=607, start_column=11, + end_line=607, end_column=39, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) - plafond_loyer_d823_16_2 = temp_plafond_loyer_d823_16_2_50 + multiplicateur_majoration_r0 = temp_multiplicateur_majoration_r0_1 + try: + try: + try: + try: + try: + try: + match_arg_49 = residence_2 + if match_arg_49.code == Collectivite_Code.Guadeloupe: + _ = match_arg_49.value + temp_multiplicateur_majoration_loyer_reference = True + elif match_arg_49.code == Collectivite_Code.Guyane: + _ = match_arg_49.value + temp_multiplicateur_majoration_loyer_reference = False + elif match_arg_49.code == Collectivite_Code.Martinique: + _ = match_arg_49.value + temp_multiplicateur_majoration_loyer_reference = True + elif match_arg_49.code == Collectivite_Code.LaReunion: + _ = match_arg_49.value + temp_multiplicateur_majoration_loyer_reference = True + elif match_arg_49.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_49.value + temp_multiplicateur_majoration_loyer_reference = True + elif match_arg_49.code == Collectivite_Code.SaintMartin: + _ = match_arg_49.value + temp_multiplicateur_majoration_loyer_reference = True + elif match_arg_49.code == Collectivite_Code.Metropole: + _ = match_arg_49.value + temp_multiplicateur_majoration_loyer_reference = False + elif match_arg_49.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_49.value + temp_multiplicateur_majoration_loyer_reference = False + elif match_arg_49.code == Collectivite_Code.Mayotte: + _ = match_arg_49.value + temp_multiplicateur_majoration_loyer_reference = True + if (((date_courante_6 >= + date_of_numbers(2020,1,1)) and + (date_courante_6 < + date_of_numbers(2020,10,1))) and + (temp_multiplicateur_majoration_loyer_reference and + (nombre_personnes_a_charge_2 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_loyer_reference_1 = decimal_of_string("5.") + else: + temp_multiplicateur_majoration_loyer_reference_1 = dead_value + raise EmptyError + except EmptyError: + match_arg_50 = residence_2 + if match_arg_50.code == Collectivite_Code.Guadeloupe: + _ = match_arg_50.value + temp_multiplicateur_majoration_loyer_reference_2 = True + elif match_arg_50.code == Collectivite_Code.Guyane: + _ = match_arg_50.value + temp_multiplicateur_majoration_loyer_reference_2 = False + elif match_arg_50.code == Collectivite_Code.Martinique: + _ = match_arg_50.value + temp_multiplicateur_majoration_loyer_reference_2 = True + elif match_arg_50.code == Collectivite_Code.LaReunion: + _ = match_arg_50.value + temp_multiplicateur_majoration_loyer_reference_2 = True + elif match_arg_50.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_50.value + temp_multiplicateur_majoration_loyer_reference_2 = True + elif match_arg_50.code == Collectivite_Code.SaintMartin: + _ = match_arg_50.value + temp_multiplicateur_majoration_loyer_reference_2 = True + elif match_arg_50.code == Collectivite_Code.Metropole: + _ = match_arg_50.value + temp_multiplicateur_majoration_loyer_reference_2 = False + elif match_arg_50.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_50.value + temp_multiplicateur_majoration_loyer_reference_2 = False + elif match_arg_50.code == Collectivite_Code.Mayotte: + _ = match_arg_50.value + temp_multiplicateur_majoration_loyer_reference_2 = True + if (((date_courante_6 >= + date_of_numbers(2020,10,1)) and + (date_courante_6 < + date_of_numbers(2021,10,1))) and + (temp_multiplicateur_majoration_loyer_reference_2 and + (nombre_personnes_a_charge_2 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_loyer_reference_1 = decimal_of_string("5.") + else: + temp_multiplicateur_majoration_loyer_reference_1 = dead_value + raise EmptyError + except EmptyError: + match_arg_51 = residence_2 + if match_arg_51.code == Collectivite_Code.Guadeloupe: + _ = match_arg_51.value + temp_multiplicateur_majoration_loyer_reference_3 = True + elif match_arg_51.code == Collectivite_Code.Guyane: + _ = match_arg_51.value + temp_multiplicateur_majoration_loyer_reference_3 = False + elif match_arg_51.code == Collectivite_Code.Martinique: + _ = match_arg_51.value + temp_multiplicateur_majoration_loyer_reference_3 = True + elif match_arg_51.code == Collectivite_Code.LaReunion: + _ = match_arg_51.value + temp_multiplicateur_majoration_loyer_reference_3 = True + elif match_arg_51.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_51.value + temp_multiplicateur_majoration_loyer_reference_3 = True + elif match_arg_51.code == Collectivite_Code.SaintMartin: + _ = match_arg_51.value + temp_multiplicateur_majoration_loyer_reference_3 = True + elif match_arg_51.code == Collectivite_Code.Metropole: + _ = match_arg_51.value + temp_multiplicateur_majoration_loyer_reference_3 = False + elif match_arg_51.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_51.value + temp_multiplicateur_majoration_loyer_reference_3 = False + elif match_arg_51.code == Collectivite_Code.Mayotte: + _ = match_arg_51.value + temp_multiplicateur_majoration_loyer_reference_3 = True + if (((date_courante_6 >= + date_of_numbers(2021,10,1)) and + (date_courante_6 < + date_of_numbers(2022,1,1))) and + (temp_multiplicateur_majoration_loyer_reference_3 and + (nombre_personnes_a_charge_2 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_loyer_reference_1 = decimal_of_string("5.") + else: + temp_multiplicateur_majoration_loyer_reference_1 = dead_value + raise EmptyError + except EmptyError: + match_arg_52 = residence_2 + if match_arg_52.code == Collectivite_Code.Guadeloupe: + _ = match_arg_52.value + temp_multiplicateur_majoration_loyer_reference_4 = True + elif match_arg_52.code == Collectivite_Code.Guyane: + _ = match_arg_52.value + temp_multiplicateur_majoration_loyer_reference_4 = False + elif match_arg_52.code == Collectivite_Code.Martinique: + _ = match_arg_52.value + temp_multiplicateur_majoration_loyer_reference_4 = True + elif match_arg_52.code == Collectivite_Code.LaReunion: + _ = match_arg_52.value + temp_multiplicateur_majoration_loyer_reference_4 = True + elif match_arg_52.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_52.value + temp_multiplicateur_majoration_loyer_reference_4 = True + elif match_arg_52.code == Collectivite_Code.SaintMartin: + _ = match_arg_52.value + temp_multiplicateur_majoration_loyer_reference_4 = True + elif match_arg_52.code == Collectivite_Code.Metropole: + _ = match_arg_52.value + temp_multiplicateur_majoration_loyer_reference_4 = False + elif match_arg_52.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_52.value + temp_multiplicateur_majoration_loyer_reference_4 = False + elif match_arg_52.code == Collectivite_Code.Mayotte: + _ = match_arg_52.value + temp_multiplicateur_majoration_loyer_reference_4 = True + if (((date_courante_6 >= date_of_numbers(2022,1,1)) and + (date_courante_6 < date_of_numbers(2022,7,1))) and + (temp_multiplicateur_majoration_loyer_reference_4 and + (nombre_personnes_a_charge_2 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_loyer_reference_1 = decimal_of_string("5.") + else: + temp_multiplicateur_majoration_loyer_reference_1 = dead_value + raise EmptyError + except EmptyError: + match_arg_53 = residence_2 + if match_arg_53.code == Collectivite_Code.Guadeloupe: + _ = match_arg_53.value + temp_multiplicateur_majoration_loyer_reference_5 = True + elif match_arg_53.code == Collectivite_Code.Guyane: + _ = match_arg_53.value + temp_multiplicateur_majoration_loyer_reference_5 = False + elif match_arg_53.code == Collectivite_Code.Martinique: + _ = match_arg_53.value + temp_multiplicateur_majoration_loyer_reference_5 = True + elif match_arg_53.code == Collectivite_Code.LaReunion: + _ = match_arg_53.value + temp_multiplicateur_majoration_loyer_reference_5 = True + elif match_arg_53.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_53.value + temp_multiplicateur_majoration_loyer_reference_5 = True + elif match_arg_53.code == Collectivite_Code.SaintMartin: + _ = match_arg_53.value + temp_multiplicateur_majoration_loyer_reference_5 = True + elif match_arg_53.code == Collectivite_Code.Metropole: + _ = match_arg_53.value + temp_multiplicateur_majoration_loyer_reference_5 = False + elif match_arg_53.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_53.value + temp_multiplicateur_majoration_loyer_reference_5 = False + elif match_arg_53.code == Collectivite_Code.Mayotte: + _ = match_arg_53.value + temp_multiplicateur_majoration_loyer_reference_5 = True + if (((date_courante_6 >= date_of_numbers(2022,7,1)) and + (date_courante_6 < date_of_numbers(2023,1,1))) and + (temp_multiplicateur_majoration_loyer_reference_5 and + (nombre_personnes_a_charge_2 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_loyer_reference_1 = decimal_of_string("5.") + else: + temp_multiplicateur_majoration_loyer_reference_1 = dead_value + raise EmptyError + except EmptyError: + try: + try: + if ((date_courante_6 >= date_of_numbers(2020,10,1)) and + (date_courante_6 < + date_of_numbers(2021,10,1))): + temp_multiplicateur_majoration_loyer_reference_1 = decimal_of_integer((nombre_personnes_a_charge_2 - + integer_of_string("1"))) + else: + temp_multiplicateur_majoration_loyer_reference_1 = dead_value + raise EmptyError + except EmptyError: + if ((date_courante_6 >= date_of_numbers(2021,10,1)) and + (date_courante_6 < + date_of_numbers(2022,7,1))): + temp_multiplicateur_majoration_loyer_reference_1 = decimal_of_integer((nombre_personnes_a_charge_2 - + integer_of_string("1"))) + else: + temp_multiplicateur_majoration_loyer_reference_1 = dead_value + raise EmptyError + except EmptyError: + if (date_courante_6 >= + date_of_numbers(2022,7,1)): + temp_multiplicateur_majoration_loyer_reference_1 = decimal_of_integer((nombre_personnes_a_charge_2 - + integer_of_string("1"))) + else: + temp_multiplicateur_majoration_loyer_reference_1 = dead_value + raise EmptyError + except EmptyError: + temp_multiplicateur_majoration_loyer_reference_1 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=606, start_column=11, + end_line=606, end_column=52, + law_headings=["Secteur locatif", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"])) + multiplicateur_majoration_loyer_reference = temp_multiplicateur_majoration_loyer_reference_1 + try: + try: + try: + try: + try: + try: + match_arg_54 = residence_2 + if match_arg_54.code == Collectivite_Code.Guadeloupe: + _ = match_arg_54.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2 = True + elif match_arg_54.code == Collectivite_Code.Guyane: + _ = match_arg_54.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2 = False + elif match_arg_54.code == Collectivite_Code.Martinique: + _ = match_arg_54.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2 = True + elif match_arg_54.code == Collectivite_Code.LaReunion: + _ = match_arg_54.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2 = True + elif match_arg_54.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_54.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2 = True + elif match_arg_54.code == Collectivite_Code.SaintMartin: + _ = match_arg_54.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2 = True + elif match_arg_54.code == Collectivite_Code.Metropole: + _ = match_arg_54.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2 = False + elif match_arg_54.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_54.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2 = False + elif match_arg_54.code == Collectivite_Code.Mayotte: + _ = match_arg_54.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2 = True + if (((date_courante_6 >= + date_of_numbers(2020,1,1)) and + (date_courante_6 < + date_of_numbers(2020,10,1))) and + (temp_multiplicateur_majoration_plafond_loyer_d823_16_2 and + (nombre_personnes_a_charge_2 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_1 = decimal_of_string("5.") + else: + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_1 = dead_value + raise EmptyError + except EmptyError: + match_arg_55 = residence_2 + if match_arg_55.code == Collectivite_Code.Guadeloupe: + _ = match_arg_55.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_2 = True + elif match_arg_55.code == Collectivite_Code.Guyane: + _ = match_arg_55.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_2 = False + elif match_arg_55.code == Collectivite_Code.Martinique: + _ = match_arg_55.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_2 = True + elif match_arg_55.code == Collectivite_Code.LaReunion: + _ = match_arg_55.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_2 = True + elif match_arg_55.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_55.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_2 = True + elif match_arg_55.code == Collectivite_Code.SaintMartin: + _ = match_arg_55.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_2 = True + elif match_arg_55.code == Collectivite_Code.Metropole: + _ = match_arg_55.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_2 = False + elif match_arg_55.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_55.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_2 = False + elif match_arg_55.code == Collectivite_Code.Mayotte: + _ = match_arg_55.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_2 = True + if (((date_courante_6 >= + date_of_numbers(2020,10,1)) and + (date_courante_6 < + date_of_numbers(2021,10,1))) and + (temp_multiplicateur_majoration_plafond_loyer_d823_16_2_2 and + (nombre_personnes_a_charge_2 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_1 = decimal_of_string("5.") + else: + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_1 = dead_value + raise EmptyError + except EmptyError: + match_arg_56 = residence_2 + if match_arg_56.code == Collectivite_Code.Guadeloupe: + _ = match_arg_56.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_3 = True + elif match_arg_56.code == Collectivite_Code.Guyane: + _ = match_arg_56.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_3 = False + elif match_arg_56.code == Collectivite_Code.Martinique: + _ = match_arg_56.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_3 = True + elif match_arg_56.code == Collectivite_Code.LaReunion: + _ = match_arg_56.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_3 = True + elif match_arg_56.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_56.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_3 = True + elif match_arg_56.code == Collectivite_Code.SaintMartin: + _ = match_arg_56.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_3 = True + elif match_arg_56.code == Collectivite_Code.Metropole: + _ = match_arg_56.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_3 = False + elif match_arg_56.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_56.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_3 = False + elif match_arg_56.code == Collectivite_Code.Mayotte: + _ = match_arg_56.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_3 = True + if (((date_courante_6 >= + date_of_numbers(2021,10,1)) and + (date_courante_6 < + date_of_numbers(2022,1,1))) and + (temp_multiplicateur_majoration_plafond_loyer_d823_16_2_3 and + (nombre_personnes_a_charge_2 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_1 = decimal_of_string("5.") + else: + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_1 = dead_value + raise EmptyError + except EmptyError: + match_arg_57 = residence_2 + if match_arg_57.code == Collectivite_Code.Guadeloupe: + _ = match_arg_57.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_4 = True + elif match_arg_57.code == Collectivite_Code.Guyane: + _ = match_arg_57.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_4 = False + elif match_arg_57.code == Collectivite_Code.Martinique: + _ = match_arg_57.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_4 = True + elif match_arg_57.code == Collectivite_Code.LaReunion: + _ = match_arg_57.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_4 = True + elif match_arg_57.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_57.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_4 = True + elif match_arg_57.code == Collectivite_Code.SaintMartin: + _ = match_arg_57.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_4 = True + elif match_arg_57.code == Collectivite_Code.Metropole: + _ = match_arg_57.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_4 = False + elif match_arg_57.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_57.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_4 = False + elif match_arg_57.code == Collectivite_Code.Mayotte: + _ = match_arg_57.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_4 = True + if (((date_courante_6 >= date_of_numbers(2022,1,1)) and + (date_courante_6 < date_of_numbers(2022,7,1))) and + (temp_multiplicateur_majoration_plafond_loyer_d823_16_2_4 and + (nombre_personnes_a_charge_2 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_1 = decimal_of_string("5.") + else: + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_1 = dead_value + raise EmptyError + except EmptyError: + match_arg_58 = residence_2 + if match_arg_58.code == Collectivite_Code.Guadeloupe: + _ = match_arg_58.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_5 = True + elif match_arg_58.code == Collectivite_Code.Guyane: + _ = match_arg_58.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_5 = False + elif match_arg_58.code == Collectivite_Code.Martinique: + _ = match_arg_58.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_5 = True + elif match_arg_58.code == Collectivite_Code.LaReunion: + _ = match_arg_58.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_5 = True + elif match_arg_58.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_58.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_5 = True + elif match_arg_58.code == Collectivite_Code.SaintMartin: + _ = match_arg_58.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_5 = True + elif match_arg_58.code == Collectivite_Code.Metropole: + _ = match_arg_58.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_5 = False + elif match_arg_58.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_58.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_5 = False + elif match_arg_58.code == Collectivite_Code.Mayotte: + _ = match_arg_58.value + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_5 = True + if (((date_courante_6 >= date_of_numbers(2022,7,1)) and + (date_courante_6 < date_of_numbers(2023,1,1))) and + (temp_multiplicateur_majoration_plafond_loyer_d823_16_2_5 and + (nombre_personnes_a_charge_2 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_1 = decimal_of_string("5.") + else: + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_1 = dead_value + raise EmptyError + except EmptyError: + try: + try: + try: + try: + if ((date_courante_6 < + date_of_numbers(2021,10,1)) and + ((date_courante_6 >= + date_of_numbers(2020,10,1)) and + colocation)): + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_1 = decimal_of_integer((nombre_personnes_a_charge_2 - + integer_of_string("1"))) + else: + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_1 = dead_value + raise EmptyError + except EmptyError: + if ((date_courante_6 < + date_of_numbers(2021,10,1)) and + (date_courante_6 >= + date_of_numbers(2020,10,1))): + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_1 = decimal_of_integer((nombre_personnes_a_charge_2 - + integer_of_string("1"))) + else: + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_1 = dead_value + raise EmptyError + except EmptyError: + if ((date_courante_6 >= + date_of_numbers(2021,10,1)) and + ((date_courante_6 < + date_of_numbers(2022,7,1)) and + colocation)): + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_1 = decimal_of_integer((nombre_personnes_a_charge_2 - + integer_of_string("1"))) + else: + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_1 = dead_value + raise EmptyError + except EmptyError: + if ((date_courante_6 >= date_of_numbers(2021,10,1)) and + (date_courante_6 < + date_of_numbers(2022,7,1))): + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_1 = decimal_of_integer((nombre_personnes_a_charge_2 - + integer_of_string("1"))) + else: + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_1 = dead_value + raise EmptyError + except EmptyError: + if (date_courante_6 >= + date_of_numbers(2022,7,1)): + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_1 = decimal_of_integer((nombre_personnes_a_charge_2 - + integer_of_string("1"))) + else: + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_1 = dead_value + raise EmptyError + except EmptyError: + temp_multiplicateur_majoration_plafond_loyer_d823_16_2_1 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=604, start_column=11, + end_line=604, end_column=60, + law_headings=["Secteur locatif", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"])) + multiplicateur_majoration_plafond_loyer_d823_16_2 = temp_multiplicateur_majoration_plafond_loyer_d823_16_2_1 try: try: try: @@ -5354,242 +5567,746 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen def temp_montant_forfaitaire_charges_d823_16_1(_:Unit): return False def temp_montant_forfaitaire_charges_d823_16_2(_:Unit): - match_arg_78 = residence_2 - if match_arg_78.code == Collectivite_Code.Guadeloupe: - _ = match_arg_78.value + match_arg_59 = residence_2 + if match_arg_59.code == Collectivite_Code.Guadeloupe: + _ = match_arg_59.value temp_montant_forfaitaire_charges_d823_16_3 = True - elif match_arg_78.code == Collectivite_Code.Guyane: - _ = match_arg_78.value + elif match_arg_59.code == Collectivite_Code.Guyane: + _ = match_arg_59.value temp_montant_forfaitaire_charges_d823_16_3 = False - elif match_arg_78.code == Collectivite_Code.Martinique: - _ = match_arg_78.value + elif match_arg_59.code == Collectivite_Code.Martinique: + _ = match_arg_59.value temp_montant_forfaitaire_charges_d823_16_3 = True - elif match_arg_78.code == Collectivite_Code.LaReunion: - _ = match_arg_78.value + elif match_arg_59.code == Collectivite_Code.LaReunion: + _ = match_arg_59.value temp_montant_forfaitaire_charges_d823_16_3 = True - elif match_arg_78.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_78.value + elif match_arg_59.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_59.value temp_montant_forfaitaire_charges_d823_16_3 = True - elif match_arg_78.code == Collectivite_Code.SaintMartin: - _ = match_arg_78.value + elif match_arg_59.code == Collectivite_Code.SaintMartin: + _ = match_arg_59.value temp_montant_forfaitaire_charges_d823_16_3 = True - elif match_arg_78.code == Collectivite_Code.Metropole: - _ = match_arg_78.value + elif match_arg_59.code == Collectivite_Code.Metropole: + _ = match_arg_59.value temp_montant_forfaitaire_charges_d823_16_3 = False - elif match_arg_78.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_78.value + elif match_arg_59.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_59.value temp_montant_forfaitaire_charges_d823_16_3 = False - elif match_arg_78.code == Collectivite_Code.Mayotte: - _ = match_arg_78.value + elif match_arg_59.code == Collectivite_Code.Mayotte: + _ = match_arg_59.value temp_montant_forfaitaire_charges_d823_16_3 = True if (((date_courante_6 >= - date_of_numbers(2022,7,1)) and (date_courante_6 < - date_of_numbers(2023,1,1))) and + date_of_numbers(2020,1,1)) and (date_courante_6 < + date_of_numbers(2020,10,1))) and temp_montant_forfaitaire_charges_d823_16_3): - match_arg_79 = situation_familiale_calcul_apl_2 - if match_arg_79.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_79.value - temp_montant_forfaitaire_charges_d823_16_4 = money_of_cents_string("1938") - elif match_arg_79.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_79.value - temp_montant_forfaitaire_charges_d823_16_4 = money_of_cents_string("3767") - match_arg_80 = situation_familiale_calcul_apl_2 - if match_arg_80.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_80.value - temp_montant_forfaitaire_charges_d823_16_5 = money_of_cents_string("1938") - elif match_arg_80.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_80.value - temp_montant_forfaitaire_charges_d823_16_5 = money_of_cents_string("3767") + match_arg_60 = situation_familiale_calcul_apl_2 + if match_arg_60.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_60.value + temp_montant_forfaitaire_charges_d823_16_4 = money_of_cents_string("1858") + elif match_arg_60.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_60.value + temp_montant_forfaitaire_charges_d823_16_4 = money_of_cents_string("3614") + match_arg_61 = situation_familiale_calcul_apl_2 + if match_arg_61.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_61.value + temp_montant_forfaitaire_charges_d823_16_5 = money_of_cents_string("1858") + elif match_arg_61.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_61.value + temp_montant_forfaitaire_charges_d823_16_5 = money_of_cents_string("3614") if ((temp_montant_forfaitaire_charges_d823_16_5 + - (money_of_cents_string("969") * + (money_of_cents_string("929") * decimal_of_integer(nombre_personnes_a_charge_2))) > (temp_montant_forfaitaire_charges_d823_16_4 + - (money_of_cents_string("969") * + (money_of_cents_string("929") * decimal_of_string("6.")))): - match_arg_81 = situation_familiale_calcul_apl_2 - if match_arg_81.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_81.value - temp_montant_forfaitaire_charges_d823_16_6 = money_of_cents_string("1938") - elif match_arg_81.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_81.value - temp_montant_forfaitaire_charges_d823_16_6 = money_of_cents_string("3767") + match_arg_62 = situation_familiale_calcul_apl_2 + if match_arg_62.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_62.value + temp_montant_forfaitaire_charges_d823_16_6 = money_of_cents_string("1858") + elif match_arg_62.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_62.value + temp_montant_forfaitaire_charges_d823_16_6 = money_of_cents_string("3614") return (temp_montant_forfaitaire_charges_d823_16_6 + - (money_of_cents_string("969") * + (money_of_cents_string("929") * decimal_of_string("6."))) else: - match_arg_82 = situation_familiale_calcul_apl_2 - if match_arg_82.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_82.value - temp_montant_forfaitaire_charges_d823_16_7 = money_of_cents_string("1938") - elif match_arg_82.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_82.value - temp_montant_forfaitaire_charges_d823_16_7 = money_of_cents_string("3767") + match_arg_63 = situation_familiale_calcul_apl_2 + if match_arg_63.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_63.value + temp_montant_forfaitaire_charges_d823_16_7 = money_of_cents_string("1858") + elif match_arg_63.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_63.value + temp_montant_forfaitaire_charges_d823_16_7 = money_of_cents_string("3614") return (temp_montant_forfaitaire_charges_d823_16_7 + - (money_of_cents_string("969") * + (money_of_cents_string("929") * decimal_of_integer(nombre_personnes_a_charge_2))) else: raise EmptyError def temp_montant_forfaitaire_charges_d823_16_8(_:Unit): - match_arg_83 = residence_2 - if match_arg_83.code == Collectivite_Code.Guadeloupe: - _ = match_arg_83.value + match_arg_64 = residence_2 + if match_arg_64.code == Collectivite_Code.Guadeloupe: + _ = match_arg_64.value temp_montant_forfaitaire_charges_d823_16_9 = True - elif match_arg_83.code == Collectivite_Code.Guyane: - _ = match_arg_83.value + elif match_arg_64.code == Collectivite_Code.Guyane: + _ = match_arg_64.value temp_montant_forfaitaire_charges_d823_16_9 = False - elif match_arg_83.code == Collectivite_Code.Martinique: - _ = match_arg_83.value + elif match_arg_64.code == Collectivite_Code.Martinique: + _ = match_arg_64.value temp_montant_forfaitaire_charges_d823_16_9 = True - elif match_arg_83.code == Collectivite_Code.LaReunion: - _ = match_arg_83.value + elif match_arg_64.code == Collectivite_Code.LaReunion: + _ = match_arg_64.value temp_montant_forfaitaire_charges_d823_16_9 = True - elif match_arg_83.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_83.value + elif match_arg_64.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_64.value temp_montant_forfaitaire_charges_d823_16_9 = True - elif match_arg_83.code == Collectivite_Code.SaintMartin: - _ = match_arg_83.value + elif match_arg_64.code == Collectivite_Code.SaintMartin: + _ = match_arg_64.value temp_montant_forfaitaire_charges_d823_16_9 = True - elif match_arg_83.code == Collectivite_Code.Metropole: - _ = match_arg_83.value + elif match_arg_64.code == Collectivite_Code.Metropole: + _ = match_arg_64.value temp_montant_forfaitaire_charges_d823_16_9 = False - elif match_arg_83.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_83.value + elif match_arg_64.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_64.value temp_montant_forfaitaire_charges_d823_16_9 = False - elif match_arg_83.code == Collectivite_Code.Mayotte: - _ = match_arg_83.value + elif match_arg_64.code == Collectivite_Code.Mayotte: + _ = match_arg_64.value temp_montant_forfaitaire_charges_d823_16_9 = True - if ((date_courante_6 >= - date_of_numbers(2023,1,1)) and + if (((date_courante_6 >= + date_of_numbers(2020,10,1)) and + (date_courante_6 < + date_of_numbers(2021,10,1))) and temp_montant_forfaitaire_charges_d823_16_9): - match_arg_84 = situation_familiale_calcul_apl_2 - if match_arg_84.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_84.value - temp_montant_forfaitaire_charges_d823_16_10 = money_of_cents_string("1938") - elif match_arg_84.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_84.value - temp_montant_forfaitaire_charges_d823_16_10 = money_of_cents_string("3767") - return (temp_montant_forfaitaire_charges_d823_16_10 + - (money_of_cents_string("969") * - decimal_of_integer(nombre_personnes_a_charge_2))) + match_arg_65 = situation_familiale_calcul_apl_2 + if match_arg_65.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_65.value + temp_montant_forfaitaire_charges_d823_16_10 = money_of_cents_string("1864") + elif match_arg_65.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_65.value + temp_montant_forfaitaire_charges_d823_16_10 = money_of_cents_string("3625") + match_arg_66 = situation_familiale_calcul_apl_2 + if match_arg_66.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_66.value + temp_montant_forfaitaire_charges_d823_16_11 = money_of_cents_string("1864") + elif match_arg_66.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_66.value + temp_montant_forfaitaire_charges_d823_16_11 = money_of_cents_string("3625") + if ((temp_montant_forfaitaire_charges_d823_16_11 + + (money_of_cents_string("932") * + decimal_of_integer(nombre_personnes_a_charge_2))) > + (temp_montant_forfaitaire_charges_d823_16_10 + + (money_of_cents_string("932") * + decimal_of_string("6.")))): + match_arg_67 = situation_familiale_calcul_apl_2 + if match_arg_67.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_67.value + temp_montant_forfaitaire_charges_d823_16_12 = money_of_cents_string("1864") + elif match_arg_67.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_67.value + temp_montant_forfaitaire_charges_d823_16_12 = money_of_cents_string("3625") + return (temp_montant_forfaitaire_charges_d823_16_12 + + (money_of_cents_string("932") * + decimal_of_string("6."))) + else: + match_arg_68 = situation_familiale_calcul_apl_2 + if match_arg_68.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_68.value + temp_montant_forfaitaire_charges_d823_16_13 = money_of_cents_string("1864") + elif match_arg_68.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_68.value + temp_montant_forfaitaire_charges_d823_16_13 = money_of_cents_string("3625") + return (temp_montant_forfaitaire_charges_d823_16_13 + + (money_of_cents_string("932") * + decimal_of_integer(nombre_personnes_a_charge_2))) else: raise EmptyError - temp_montant_forfaitaire_charges_d823_16_11 = handle_default( + def temp_montant_forfaitaire_charges_d823_16_14(_:Unit): + try: + match_arg_69 = residence_2 + if match_arg_69.code == Collectivite_Code.Guadeloupe: + _ = match_arg_69.value + temp_montant_forfaitaire_charges_d823_16_15 = True + elif match_arg_69.code == Collectivite_Code.Guyane: + _ = match_arg_69.value + temp_montant_forfaitaire_charges_d823_16_15 = False + elif match_arg_69.code == Collectivite_Code.Martinique: + _ = match_arg_69.value + temp_montant_forfaitaire_charges_d823_16_15 = True + elif match_arg_69.code == Collectivite_Code.LaReunion: + _ = match_arg_69.value + temp_montant_forfaitaire_charges_d823_16_15 = True + elif match_arg_69.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_69.value + temp_montant_forfaitaire_charges_d823_16_15 = True + elif match_arg_69.code == Collectivite_Code.SaintMartin: + _ = match_arg_69.value + temp_montant_forfaitaire_charges_d823_16_15 = True + elif match_arg_69.code == Collectivite_Code.Metropole: + _ = match_arg_69.value + temp_montant_forfaitaire_charges_d823_16_15 = False + elif match_arg_69.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_69.value + temp_montant_forfaitaire_charges_d823_16_15 = False + elif match_arg_69.code == Collectivite_Code.Mayotte: + _ = match_arg_69.value + temp_montant_forfaitaire_charges_d823_16_15 = True + if (((date_courante_6 >= + date_of_numbers(2021,10,1)) and + (date_courante_6 < + date_of_numbers(2022,1,1))) and + temp_montant_forfaitaire_charges_d823_16_15): + match_arg_70 = situation_familiale_calcul_apl_2 + if match_arg_70.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_70.value + temp_montant_forfaitaire_charges_d823_16_16 = money_of_cents_string("1872") + elif match_arg_70.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_70.value + temp_montant_forfaitaire_charges_d823_16_16 = money_of_cents_string("3640") + match_arg_71 = situation_familiale_calcul_apl_2 + if match_arg_71.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_71.value + temp_montant_forfaitaire_charges_d823_16_17 = money_of_cents_string("1872") + elif match_arg_71.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_71.value + temp_montant_forfaitaire_charges_d823_16_17 = money_of_cents_string("3640") + if ((temp_montant_forfaitaire_charges_d823_16_17 + + (money_of_cents_string("936") * + decimal_of_integer(nombre_personnes_a_charge_2))) > + (temp_montant_forfaitaire_charges_d823_16_16 + + (money_of_cents_string("936") * + decimal_of_string("6.")))): + match_arg_72 = situation_familiale_calcul_apl_2 + if match_arg_72.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_72.value + temp_montant_forfaitaire_charges_d823_16_18 = money_of_cents_string("1872") + elif match_arg_72.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_72.value + temp_montant_forfaitaire_charges_d823_16_18 = money_of_cents_string("3640") + return (temp_montant_forfaitaire_charges_d823_16_18 + + (money_of_cents_string("936") * + decimal_of_string("6."))) + else: + match_arg_73 = situation_familiale_calcul_apl_2 + if match_arg_73.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_73.value + temp_montant_forfaitaire_charges_d823_16_19 = money_of_cents_string("1872") + elif match_arg_73.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_73.value + temp_montant_forfaitaire_charges_d823_16_19 = money_of_cents_string("3640") + return (temp_montant_forfaitaire_charges_d823_16_19 + + (money_of_cents_string("936") * + decimal_of_integer(nombre_personnes_a_charge_2))) + else: + raise EmptyError + except EmptyError: + match_arg_74 = residence_2 + if match_arg_74.code == Collectivite_Code.Guadeloupe: + _ = match_arg_74.value + temp_montant_forfaitaire_charges_d823_16_20 = True + elif match_arg_74.code == Collectivite_Code.Guyane: + _ = match_arg_74.value + temp_montant_forfaitaire_charges_d823_16_20 = False + elif match_arg_74.code == Collectivite_Code.Martinique: + _ = match_arg_74.value + temp_montant_forfaitaire_charges_d823_16_20 = True + elif match_arg_74.code == Collectivite_Code.LaReunion: + _ = match_arg_74.value + temp_montant_forfaitaire_charges_d823_16_20 = True + elif match_arg_74.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_74.value + temp_montant_forfaitaire_charges_d823_16_20 = True + elif match_arg_74.code == Collectivite_Code.SaintMartin: + _ = match_arg_74.value + temp_montant_forfaitaire_charges_d823_16_20 = True + elif match_arg_74.code == Collectivite_Code.Metropole: + _ = match_arg_74.value + temp_montant_forfaitaire_charges_d823_16_20 = False + elif match_arg_74.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_74.value + temp_montant_forfaitaire_charges_d823_16_20 = False + elif match_arg_74.code == Collectivite_Code.Mayotte: + _ = match_arg_74.value + temp_montant_forfaitaire_charges_d823_16_20 = True + if (((date_courante_6 >= + date_of_numbers(2022,1,1)) and + (date_courante_6 < + date_of_numbers(2022,7,1))) and + temp_montant_forfaitaire_charges_d823_16_20): + match_arg_75 = situation_familiale_calcul_apl_2 + if match_arg_75.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_75.value + temp_montant_forfaitaire_charges_d823_16_21 = money_of_cents_string("1872") + elif match_arg_75.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_75.value + temp_montant_forfaitaire_charges_d823_16_21 = money_of_cents_string("3640") + match_arg_76 = situation_familiale_calcul_apl_2 + if match_arg_76.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_76.value + temp_montant_forfaitaire_charges_d823_16_22 = money_of_cents_string("1872") + elif match_arg_76.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_76.value + temp_montant_forfaitaire_charges_d823_16_22 = money_of_cents_string("3640") + if ((temp_montant_forfaitaire_charges_d823_16_22 + + (money_of_cents_string("936") * + decimal_of_integer(nombre_personnes_a_charge_2))) > + (temp_montant_forfaitaire_charges_d823_16_21 + + (money_of_cents_string("936") * + decimal_of_string("6.")))): + match_arg_77 = situation_familiale_calcul_apl_2 + if match_arg_77.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_77.value + temp_montant_forfaitaire_charges_d823_16_23 = money_of_cents_string("1872") + elif match_arg_77.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_77.value + temp_montant_forfaitaire_charges_d823_16_23 = money_of_cents_string("3640") + return (temp_montant_forfaitaire_charges_d823_16_23 + + (money_of_cents_string("936") * + decimal_of_string("6."))) + else: + match_arg_78 = situation_familiale_calcul_apl_2 + if match_arg_78.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_78.value + temp_montant_forfaitaire_charges_d823_16_24 = money_of_cents_string("1872") + elif match_arg_78.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_78.value + temp_montant_forfaitaire_charges_d823_16_24 = money_of_cents_string("3640") + return (temp_montant_forfaitaire_charges_d823_16_24 + + (money_of_cents_string("936") * + decimal_of_integer(nombre_personnes_a_charge_2))) + else: + raise EmptyError + def temp_montant_forfaitaire_charges_d823_16_25(_:Unit): + match_arg_79 = residence_2 + if match_arg_79.code == Collectivite_Code.Guadeloupe: + _ = match_arg_79.value + temp_montant_forfaitaire_charges_d823_16_26 = True + elif match_arg_79.code == Collectivite_Code.Guyane: + _ = match_arg_79.value + temp_montant_forfaitaire_charges_d823_16_26 = False + elif match_arg_79.code == Collectivite_Code.Martinique: + _ = match_arg_79.value + temp_montant_forfaitaire_charges_d823_16_26 = True + elif match_arg_79.code == Collectivite_Code.LaReunion: + _ = match_arg_79.value + temp_montant_forfaitaire_charges_d823_16_26 = True + elif match_arg_79.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_79.value + temp_montant_forfaitaire_charges_d823_16_26 = True + elif match_arg_79.code == Collectivite_Code.SaintMartin: + _ = match_arg_79.value + temp_montant_forfaitaire_charges_d823_16_26 = True + elif match_arg_79.code == Collectivite_Code.Metropole: + _ = match_arg_79.value + temp_montant_forfaitaire_charges_d823_16_26 = False + elif match_arg_79.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_79.value + temp_montant_forfaitaire_charges_d823_16_26 = False + elif match_arg_79.code == Collectivite_Code.Mayotte: + _ = match_arg_79.value + temp_montant_forfaitaire_charges_d823_16_26 = True + if (((date_courante_6 >= + date_of_numbers(2022,7,1)) and (date_courante_6 < + date_of_numbers(2023,1,1))) and + temp_montant_forfaitaire_charges_d823_16_26): + match_arg_80 = situation_familiale_calcul_apl_2 + if match_arg_80.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_80.value + temp_montant_forfaitaire_charges_d823_16_27 = money_of_cents_string("1938") + elif match_arg_80.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_80.value + temp_montant_forfaitaire_charges_d823_16_27 = money_of_cents_string("3767") + match_arg_81 = situation_familiale_calcul_apl_2 + if match_arg_81.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_81.value + temp_montant_forfaitaire_charges_d823_16_28 = money_of_cents_string("1938") + elif match_arg_81.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_81.value + temp_montant_forfaitaire_charges_d823_16_28 = money_of_cents_string("3767") + if ((temp_montant_forfaitaire_charges_d823_16_28 + + (money_of_cents_string("969") * + decimal_of_integer(nombre_personnes_a_charge_2))) > + (temp_montant_forfaitaire_charges_d823_16_27 + + (money_of_cents_string("969") * + decimal_of_string("6.")))): + match_arg_82 = situation_familiale_calcul_apl_2 + if match_arg_82.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_82.value + temp_montant_forfaitaire_charges_d823_16_29 = money_of_cents_string("1938") + elif match_arg_82.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_82.value + temp_montant_forfaitaire_charges_d823_16_29 = money_of_cents_string("3767") + return (temp_montant_forfaitaire_charges_d823_16_29 + + (money_of_cents_string("969") * + decimal_of_string("6."))) + else: + match_arg_83 = situation_familiale_calcul_apl_2 + if match_arg_83.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_83.value + temp_montant_forfaitaire_charges_d823_16_30 = money_of_cents_string("1938") + elif match_arg_83.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_83.value + temp_montant_forfaitaire_charges_d823_16_30 = money_of_cents_string("3767") + return (temp_montant_forfaitaire_charges_d823_16_30 + + (money_of_cents_string("969") * + decimal_of_integer(nombre_personnes_a_charge_2))) + else: + raise EmptyError + def temp_montant_forfaitaire_charges_d823_16_31(_:Unit): + match_arg_84 = residence_2 + if match_arg_84.code == Collectivite_Code.Guadeloupe: + _ = match_arg_84.value + temp_montant_forfaitaire_charges_d823_16_32 = True + elif match_arg_84.code == Collectivite_Code.Guyane: + _ = match_arg_84.value + temp_montant_forfaitaire_charges_d823_16_32 = False + elif match_arg_84.code == Collectivite_Code.Martinique: + _ = match_arg_84.value + temp_montant_forfaitaire_charges_d823_16_32 = True + elif match_arg_84.code == Collectivite_Code.LaReunion: + _ = match_arg_84.value + temp_montant_forfaitaire_charges_d823_16_32 = True + elif match_arg_84.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_84.value + temp_montant_forfaitaire_charges_d823_16_32 = True + elif match_arg_84.code == Collectivite_Code.SaintMartin: + _ = match_arg_84.value + temp_montant_forfaitaire_charges_d823_16_32 = True + elif match_arg_84.code == Collectivite_Code.Metropole: + _ = match_arg_84.value + temp_montant_forfaitaire_charges_d823_16_32 = False + elif match_arg_84.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_84.value + temp_montant_forfaitaire_charges_d823_16_32 = False + elif match_arg_84.code == Collectivite_Code.Mayotte: + _ = match_arg_84.value + temp_montant_forfaitaire_charges_d823_16_32 = True + if ((date_courante_6 >= + date_of_numbers(2023,1,1)) and + (temp_montant_forfaitaire_charges_d823_16_32 and + colocation)): + match_arg_85 = situation_familiale_calcul_apl_2 + if match_arg_85.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_85.value + temp_montant_forfaitaire_charges_d823_16_33 = money_of_cents_string("1938") + elif match_arg_85.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_85.value + temp_montant_forfaitaire_charges_d823_16_33 = money_of_cents_string("3767") + return (temp_montant_forfaitaire_charges_d823_16_33 + + (money_of_cents_string("969") * + multiplicateur_majoration_charges_d823_16)) + else: + raise EmptyError + temp_montant_forfaitaire_charges_d823_16_34 = handle_default( SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=604, start_column=12, - end_line=604, end_column=47, + start_line=609, start_column=12, + end_line=609, end_column=47, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", - "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_d823_16_8, + "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_d823_16_31, + temp_montant_forfaitaire_charges_d823_16_25, + temp_montant_forfaitaire_charges_d823_16_14, + temp_montant_forfaitaire_charges_d823_16_8, temp_montant_forfaitaire_charges_d823_16_2], temp_montant_forfaitaire_charges_d823_16_1, temp_montant_forfaitaire_charges_d823_16) except EmptyError: - def temp_montant_forfaitaire_charges_d823_16_12(_:Unit): + def temp_montant_forfaitaire_charges_d823_16_35(_:Unit): raise EmptyError - def temp_montant_forfaitaire_charges_d823_16_13(_:Unit): + def temp_montant_forfaitaire_charges_d823_16_36(_:Unit): return False - def temp_montant_forfaitaire_charges_d823_16_14(_:Unit): + def temp_montant_forfaitaire_charges_d823_16_37(_:Unit): if ((date_courante_6 < date_of_numbers(2021,10,1)) and ((date_courante_6 >= date_of_numbers(2020,10,1)) and colocation)): - match_arg_85 = situation_familiale_calcul_apl_2 - if match_arg_85.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_85.value - temp_montant_forfaitaire_charges_d823_16_15 = money_of_cents_string("2699") - elif match_arg_85.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_85.value - temp_montant_forfaitaire_charges_d823_16_15 = money_of_cents_string("5399") - return (temp_montant_forfaitaire_charges_d823_16_15 + + match_arg_86 = situation_familiale_calcul_apl_2 + if match_arg_86.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_86.value + temp_montant_forfaitaire_charges_d823_16_38 = money_of_cents_string("2699") + elif match_arg_86.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_86.value + temp_montant_forfaitaire_charges_d823_16_38 = money_of_cents_string("5399") + return (temp_montant_forfaitaire_charges_d823_16_38 + (money_of_cents_string("1224") * - decimal_of_integer(nombre_personnes_a_charge_2))) + multiplicateur_majoration_charges_d823_16)) else: raise EmptyError - def temp_montant_forfaitaire_charges_d823_16_16(_:Unit): + def temp_montant_forfaitaire_charges_d823_16_39(_:Unit): if ((date_courante_6 >= date_of_numbers(2021,10,1)) and ((date_courante_6 < date_of_numbers(2022,7,1)) and colocation)): - match_arg_86 = situation_familiale_calcul_apl_2 - if match_arg_86.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_86.value - temp_montant_forfaitaire_charges_d823_16_17 = money_of_cents_string("2710") - elif match_arg_86.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_86.value - temp_montant_forfaitaire_charges_d823_16_17 = money_of_cents_string("5422") - return (temp_montant_forfaitaire_charges_d823_16_17 + - (money_of_cents_string("1229") * - decimal_of_integer(nombre_personnes_a_charge_2))) - else: - raise EmptyError - def temp_montant_forfaitaire_charges_d823_16_18(_:Unit): - if ((date_courante_6 >= - date_of_numbers(2022,7,1)) and - colocation): match_arg_87 = situation_familiale_calcul_apl_2 if match_arg_87.code == SituationFamilialeCalculAPL_Code.PersonneSeule: _ = match_arg_87.value - temp_montant_forfaitaire_charges_d823_16_19 = money_of_cents_string("2805") + temp_montant_forfaitaire_charges_d823_16_40 = money_of_cents_string("2710") elif match_arg_87.code == SituationFamilialeCalculAPL_Code.Couple: _ = match_arg_87.value - temp_montant_forfaitaire_charges_d823_16_19 = money_of_cents_string("5612") - return (temp_montant_forfaitaire_charges_d823_16_19 + - (money_of_cents_string("1272") * - decimal_of_integer(nombre_personnes_a_charge_2))) + temp_montant_forfaitaire_charges_d823_16_40 = money_of_cents_string("5422") + return (temp_montant_forfaitaire_charges_d823_16_40 + + (money_of_cents_string("1229") * + multiplicateur_majoration_charges_d823_16)) else: raise EmptyError - temp_montant_forfaitaire_charges_d823_16_11 = handle_default( + def temp_montant_forfaitaire_charges_d823_16_41(_:Unit): + if ((date_courante_6 >= + date_of_numbers(2022,7,1)) and + colocation): + match_arg_88 = situation_familiale_calcul_apl_2 + if match_arg_88.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_88.value + temp_montant_forfaitaire_charges_d823_16_42 = money_of_cents_string("2805") + elif match_arg_88.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_88.value + temp_montant_forfaitaire_charges_d823_16_42 = money_of_cents_string("5612") + return (temp_montant_forfaitaire_charges_d823_16_42 + + (money_of_cents_string("1272") * + multiplicateur_majoration_charges_d823_16)) + else: + raise EmptyError + temp_montant_forfaitaire_charges_d823_16_34 = handle_default( SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=604, start_column=12, - end_line=604, end_column=47, + start_line=609, start_column=12, + end_line=609, end_column=47, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", - "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_d823_16_18, - temp_montant_forfaitaire_charges_d823_16_16, - temp_montant_forfaitaire_charges_d823_16_14], - temp_montant_forfaitaire_charges_d823_16_13, - temp_montant_forfaitaire_charges_d823_16_12) + "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_d823_16_41, + temp_montant_forfaitaire_charges_d823_16_39, + temp_montant_forfaitaire_charges_d823_16_37], + temp_montant_forfaitaire_charges_d823_16_36, + temp_montant_forfaitaire_charges_d823_16_35) except EmptyError: - def temp_montant_forfaitaire_charges_d823_16_20(_:Unit): + def temp_montant_forfaitaire_charges_d823_16_43(_:Unit): raise EmptyError - def temp_montant_forfaitaire_charges_d823_16_21(_:Unit): + def temp_montant_forfaitaire_charges_d823_16_44(_:Unit): return False - def temp_montant_forfaitaire_charges_d823_16_22(_:Unit): - match_arg_88 = residence_2 - if match_arg_88.code == Collectivite_Code.Guadeloupe: - _ = match_arg_88.value - temp_montant_forfaitaire_charges_d823_16_23 = True - elif match_arg_88.code == Collectivite_Code.Guyane: - _ = match_arg_88.value - temp_montant_forfaitaire_charges_d823_16_23 = False - elif match_arg_88.code == Collectivite_Code.Martinique: - _ = match_arg_88.value - temp_montant_forfaitaire_charges_d823_16_23 = True - elif match_arg_88.code == Collectivite_Code.LaReunion: - _ = match_arg_88.value - temp_montant_forfaitaire_charges_d823_16_23 = True - elif match_arg_88.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_88.value - temp_montant_forfaitaire_charges_d823_16_23 = True - elif match_arg_88.code == Collectivite_Code.SaintMartin: - _ = match_arg_88.value - temp_montant_forfaitaire_charges_d823_16_23 = True - elif match_arg_88.code == Collectivite_Code.Metropole: - _ = match_arg_88.value - temp_montant_forfaitaire_charges_d823_16_23 = False - elif match_arg_88.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_88.value - temp_montant_forfaitaire_charges_d823_16_23 = False - elif match_arg_88.code == Collectivite_Code.Mayotte: - _ = match_arg_88.value - temp_montant_forfaitaire_charges_d823_16_23 = True + def temp_montant_forfaitaire_charges_d823_16_45(_:Unit): + match_arg_89 = residence_2 + if match_arg_89.code == Collectivite_Code.Guadeloupe: + _ = match_arg_89.value + temp_montant_forfaitaire_charges_d823_16_46 = True + elif match_arg_89.code == Collectivite_Code.Guyane: + _ = match_arg_89.value + temp_montant_forfaitaire_charges_d823_16_46 = False + elif match_arg_89.code == Collectivite_Code.Martinique: + _ = match_arg_89.value + temp_montant_forfaitaire_charges_d823_16_46 = True + elif match_arg_89.code == Collectivite_Code.LaReunion: + _ = match_arg_89.value + temp_montant_forfaitaire_charges_d823_16_46 = True + elif match_arg_89.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_89.value + temp_montant_forfaitaire_charges_d823_16_46 = True + elif match_arg_89.code == Collectivite_Code.SaintMartin: + _ = match_arg_89.value + temp_montant_forfaitaire_charges_d823_16_46 = True + elif match_arg_89.code == Collectivite_Code.Metropole: + _ = match_arg_89.value + temp_montant_forfaitaire_charges_d823_16_46 = False + elif match_arg_89.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_89.value + temp_montant_forfaitaire_charges_d823_16_46 = False + elif match_arg_89.code == Collectivite_Code.Mayotte: + _ = match_arg_89.value + temp_montant_forfaitaire_charges_d823_16_46 = True + if (((date_courante_6 >= date_of_numbers(2020,1,1)) and + (date_courante_6 < date_of_numbers(2020,10,1))) and + temp_montant_forfaitaire_charges_d823_16_46): + if ((money_of_cents_string("3614") + + (money_of_cents_string("929") * + decimal_of_integer(nombre_personnes_a_charge_2))) > + (money_of_cents_string("3614") + + (money_of_cents_string("929") * + decimal_of_string("6.")))): + return (money_of_cents_string("3614") + + (money_of_cents_string("929") * + decimal_of_string("6."))) + else: + return (money_of_cents_string("3614") + + (money_of_cents_string("929") * + decimal_of_integer(nombre_personnes_a_charge_2))) + else: + raise EmptyError + def temp_montant_forfaitaire_charges_d823_16_47(_:Unit): + match_arg_90 = residence_2 + if match_arg_90.code == Collectivite_Code.Guadeloupe: + _ = match_arg_90.value + temp_montant_forfaitaire_charges_d823_16_48 = True + elif match_arg_90.code == Collectivite_Code.Guyane: + _ = match_arg_90.value + temp_montant_forfaitaire_charges_d823_16_48 = False + elif match_arg_90.code == Collectivite_Code.Martinique: + _ = match_arg_90.value + temp_montant_forfaitaire_charges_d823_16_48 = True + elif match_arg_90.code == Collectivite_Code.LaReunion: + _ = match_arg_90.value + temp_montant_forfaitaire_charges_d823_16_48 = True + elif match_arg_90.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_90.value + temp_montant_forfaitaire_charges_d823_16_48 = True + elif match_arg_90.code == Collectivite_Code.SaintMartin: + _ = match_arg_90.value + temp_montant_forfaitaire_charges_d823_16_48 = True + elif match_arg_90.code == Collectivite_Code.Metropole: + _ = match_arg_90.value + temp_montant_forfaitaire_charges_d823_16_48 = False + elif match_arg_90.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_90.value + temp_montant_forfaitaire_charges_d823_16_48 = False + elif match_arg_90.code == Collectivite_Code.Mayotte: + _ = match_arg_90.value + temp_montant_forfaitaire_charges_d823_16_48 = True + if (((date_courante_6 >= date_of_numbers(2020,10,1)) and + (date_courante_6 < date_of_numbers(2021,10,1))) and + temp_montant_forfaitaire_charges_d823_16_48): + if ((money_of_cents_string("3625") + + (money_of_cents_string("932") * + decimal_of_integer(nombre_personnes_a_charge_2))) > + (money_of_cents_string("3625") + + (money_of_cents_string("932") * + decimal_of_string("6.")))): + return (money_of_cents_string("3625") + + (money_of_cents_string("932") * + decimal_of_string("6."))) + else: + return (money_of_cents_string("3625") + + (money_of_cents_string("932") * + decimal_of_integer(nombre_personnes_a_charge_2))) + else: + raise EmptyError + def temp_montant_forfaitaire_charges_d823_16_49(_:Unit): + try: + match_arg_91 = residence_2 + if match_arg_91.code == Collectivite_Code.Guadeloupe: + _ = match_arg_91.value + temp_montant_forfaitaire_charges_d823_16_50 = True + elif match_arg_91.code == Collectivite_Code.Guyane: + _ = match_arg_91.value + temp_montant_forfaitaire_charges_d823_16_50 = False + elif match_arg_91.code == Collectivite_Code.Martinique: + _ = match_arg_91.value + temp_montant_forfaitaire_charges_d823_16_50 = True + elif match_arg_91.code == Collectivite_Code.LaReunion: + _ = match_arg_91.value + temp_montant_forfaitaire_charges_d823_16_50 = True + elif match_arg_91.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_91.value + temp_montant_forfaitaire_charges_d823_16_50 = True + elif match_arg_91.code == Collectivite_Code.SaintMartin: + _ = match_arg_91.value + temp_montant_forfaitaire_charges_d823_16_50 = True + elif match_arg_91.code == Collectivite_Code.Metropole: + _ = match_arg_91.value + temp_montant_forfaitaire_charges_d823_16_50 = False + elif match_arg_91.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_91.value + temp_montant_forfaitaire_charges_d823_16_50 = False + elif match_arg_91.code == Collectivite_Code.Mayotte: + _ = match_arg_91.value + temp_montant_forfaitaire_charges_d823_16_50 = True + if (((date_courante_6 >= + date_of_numbers(2021,10,1)) and + (date_courante_6 < + date_of_numbers(2022,1,1))) and + temp_montant_forfaitaire_charges_d823_16_50): + if ((money_of_cents_string("3640") + + (money_of_cents_string("936") * + decimal_of_integer(nombre_personnes_a_charge_2))) > + (money_of_cents_string("3640") + + (money_of_cents_string("936") * + decimal_of_string("6.")))): + return (money_of_cents_string("3640") + + (money_of_cents_string("936") * + decimal_of_string("6."))) + else: + return (money_of_cents_string("3640") + + (money_of_cents_string("936") * + decimal_of_integer(nombre_personnes_a_charge_2))) + else: + raise EmptyError + except EmptyError: + match_arg_92 = residence_2 + if match_arg_92.code == Collectivite_Code.Guadeloupe: + _ = match_arg_92.value + temp_montant_forfaitaire_charges_d823_16_51 = True + elif match_arg_92.code == Collectivite_Code.Guyane: + _ = match_arg_92.value + temp_montant_forfaitaire_charges_d823_16_51 = False + elif match_arg_92.code == Collectivite_Code.Martinique: + _ = match_arg_92.value + temp_montant_forfaitaire_charges_d823_16_51 = True + elif match_arg_92.code == Collectivite_Code.LaReunion: + _ = match_arg_92.value + temp_montant_forfaitaire_charges_d823_16_51 = True + elif match_arg_92.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_92.value + temp_montant_forfaitaire_charges_d823_16_51 = True + elif match_arg_92.code == Collectivite_Code.SaintMartin: + _ = match_arg_92.value + temp_montant_forfaitaire_charges_d823_16_51 = True + elif match_arg_92.code == Collectivite_Code.Metropole: + _ = match_arg_92.value + temp_montant_forfaitaire_charges_d823_16_51 = False + elif match_arg_92.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_92.value + temp_montant_forfaitaire_charges_d823_16_51 = False + elif match_arg_92.code == Collectivite_Code.Mayotte: + _ = match_arg_92.value + temp_montant_forfaitaire_charges_d823_16_51 = True + if (((date_courante_6 >= + date_of_numbers(2022,1,1)) and (date_courante_6 < + date_of_numbers(2022,7,1))) and + temp_montant_forfaitaire_charges_d823_16_51): + if ((money_of_cents_string("3640") + + (money_of_cents_string("936") * + decimal_of_integer(nombre_personnes_a_charge_2))) > + (money_of_cents_string("3640") + + (money_of_cents_string("936") * + decimal_of_string("6.")))): + return (money_of_cents_string("3640") + + (money_of_cents_string("936") * + decimal_of_string("6."))) + else: + return (money_of_cents_string("3640") + + (money_of_cents_string("936") * + decimal_of_integer(nombre_personnes_a_charge_2))) + else: + raise EmptyError + def temp_montant_forfaitaire_charges_d823_16_52(_:Unit): + match_arg_93 = residence_2 + if match_arg_93.code == Collectivite_Code.Guadeloupe: + _ = match_arg_93.value + temp_montant_forfaitaire_charges_d823_16_53 = True + elif match_arg_93.code == Collectivite_Code.Guyane: + _ = match_arg_93.value + temp_montant_forfaitaire_charges_d823_16_53 = False + elif match_arg_93.code == Collectivite_Code.Martinique: + _ = match_arg_93.value + temp_montant_forfaitaire_charges_d823_16_53 = True + elif match_arg_93.code == Collectivite_Code.LaReunion: + _ = match_arg_93.value + temp_montant_forfaitaire_charges_d823_16_53 = True + elif match_arg_93.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_93.value + temp_montant_forfaitaire_charges_d823_16_53 = True + elif match_arg_93.code == Collectivite_Code.SaintMartin: + _ = match_arg_93.value + temp_montant_forfaitaire_charges_d823_16_53 = True + elif match_arg_93.code == Collectivite_Code.Metropole: + _ = match_arg_93.value + temp_montant_forfaitaire_charges_d823_16_53 = False + elif match_arg_93.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_93.value + temp_montant_forfaitaire_charges_d823_16_53 = False + elif match_arg_93.code == Collectivite_Code.Mayotte: + _ = match_arg_93.value + temp_montant_forfaitaire_charges_d823_16_53 = True if (((date_courante_6 >= date_of_numbers(2022,7,1)) and (date_courante_6 < date_of_numbers(2023,1,1))) and - temp_montant_forfaitaire_charges_d823_16_23): + temp_montant_forfaitaire_charges_d823_16_53): if ((money_of_cents_string("3767") + (money_of_cents_string("969") * decimal_of_integer(nombre_personnes_a_charge_2))) > @@ -5605,105 +6322,108 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen decimal_of_integer(nombre_personnes_a_charge_2))) else: raise EmptyError - def temp_montant_forfaitaire_charges_d823_16_24(_:Unit): - match_arg_89 = residence_2 - if match_arg_89.code == Collectivite_Code.Guadeloupe: - _ = match_arg_89.value - temp_montant_forfaitaire_charges_d823_16_25 = True - elif match_arg_89.code == Collectivite_Code.Guyane: - _ = match_arg_89.value - temp_montant_forfaitaire_charges_d823_16_25 = False - elif match_arg_89.code == Collectivite_Code.Martinique: - _ = match_arg_89.value - temp_montant_forfaitaire_charges_d823_16_25 = True - elif match_arg_89.code == Collectivite_Code.LaReunion: - _ = match_arg_89.value - temp_montant_forfaitaire_charges_d823_16_25 = True - elif match_arg_89.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_89.value - temp_montant_forfaitaire_charges_d823_16_25 = True - elif match_arg_89.code == Collectivite_Code.SaintMartin: - _ = match_arg_89.value - temp_montant_forfaitaire_charges_d823_16_25 = True - elif match_arg_89.code == Collectivite_Code.Metropole: - _ = match_arg_89.value - temp_montant_forfaitaire_charges_d823_16_25 = False - elif match_arg_89.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_89.value - temp_montant_forfaitaire_charges_d823_16_25 = False - elif match_arg_89.code == Collectivite_Code.Mayotte: - _ = match_arg_89.value - temp_montant_forfaitaire_charges_d823_16_25 = True + def temp_montant_forfaitaire_charges_d823_16_54(_:Unit): + match_arg_94 = residence_2 + if match_arg_94.code == Collectivite_Code.Guadeloupe: + _ = match_arg_94.value + temp_montant_forfaitaire_charges_d823_16_55 = True + elif match_arg_94.code == Collectivite_Code.Guyane: + _ = match_arg_94.value + temp_montant_forfaitaire_charges_d823_16_55 = False + elif match_arg_94.code == Collectivite_Code.Martinique: + _ = match_arg_94.value + temp_montant_forfaitaire_charges_d823_16_55 = True + elif match_arg_94.code == Collectivite_Code.LaReunion: + _ = match_arg_94.value + temp_montant_forfaitaire_charges_d823_16_55 = True + elif match_arg_94.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_94.value + temp_montant_forfaitaire_charges_d823_16_55 = True + elif match_arg_94.code == Collectivite_Code.SaintMartin: + _ = match_arg_94.value + temp_montant_forfaitaire_charges_d823_16_55 = True + elif match_arg_94.code == Collectivite_Code.Metropole: + _ = match_arg_94.value + temp_montant_forfaitaire_charges_d823_16_55 = False + elif match_arg_94.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_94.value + temp_montant_forfaitaire_charges_d823_16_55 = False + elif match_arg_94.code == Collectivite_Code.Mayotte: + _ = match_arg_94.value + temp_montant_forfaitaire_charges_d823_16_55 = True if ((date_courante_6 >= date_of_numbers(2023,1,1)) and - temp_montant_forfaitaire_charges_d823_16_25): + temp_montant_forfaitaire_charges_d823_16_55): return (money_of_cents_string("3767") + (money_of_cents_string("969") * - decimal_of_integer(nombre_personnes_a_charge_2))) + multiplicateur_majoration_charges_d823_16)) else: raise EmptyError - temp_montant_forfaitaire_charges_d823_16_11 = handle_default( + temp_montant_forfaitaire_charges_d823_16_34 = handle_default( SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=604, start_column=12, - end_line=604, end_column=47, + start_line=609, start_column=12, + end_line=609, end_column=47, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", - "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_d823_16_24, - temp_montant_forfaitaire_charges_d823_16_22], - temp_montant_forfaitaire_charges_d823_16_21, - temp_montant_forfaitaire_charges_d823_16_20) + "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_d823_16_54, + temp_montant_forfaitaire_charges_d823_16_52, + temp_montant_forfaitaire_charges_d823_16_49, + temp_montant_forfaitaire_charges_d823_16_47, + temp_montant_forfaitaire_charges_d823_16_45], + temp_montant_forfaitaire_charges_d823_16_44, + temp_montant_forfaitaire_charges_d823_16_43) except EmptyError: - def temp_montant_forfaitaire_charges_d823_16_26(_:Unit): + def temp_montant_forfaitaire_charges_d823_16_56(_:Unit): raise EmptyError - def temp_montant_forfaitaire_charges_d823_16_27(_:Unit): + def temp_montant_forfaitaire_charges_d823_16_57(_:Unit): return False - def temp_montant_forfaitaire_charges_d823_16_28(_:Unit): + def temp_montant_forfaitaire_charges_d823_16_58(_:Unit): if ((date_courante_6 < date_of_numbers(2021,10,1)) and (date_courante_6 >= date_of_numbers(2020,10,1))): return (money_of_cents_string("5399") + (money_of_cents_string("1224") * - decimal_of_integer(nombre_personnes_a_charge_2))) + multiplicateur_majoration_charges_d823_16)) else: raise EmptyError - def temp_montant_forfaitaire_charges_d823_16_29(_:Unit): + def temp_montant_forfaitaire_charges_d823_16_59(_:Unit): if ((date_courante_6 >= date_of_numbers(2021,10,1)) and (date_courante_6 < date_of_numbers(2022,7,1))): return (money_of_cents_string("5422") + (money_of_cents_string("1229") * - decimal_of_integer(nombre_personnes_a_charge_2))) + multiplicateur_majoration_charges_d823_16)) else: raise EmptyError - def temp_montant_forfaitaire_charges_d823_16_30(_:Unit): + def temp_montant_forfaitaire_charges_d823_16_60(_:Unit): if (date_courante_6 >= date_of_numbers(2022,7,1)): return (money_of_cents_string("5612") + (money_of_cents_string("1272") * - decimal_of_integer(nombre_personnes_a_charge_2))) + multiplicateur_majoration_charges_d823_16)) else: raise EmptyError - temp_montant_forfaitaire_charges_d823_16_11 = handle_default( + temp_montant_forfaitaire_charges_d823_16_34 = handle_default( SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=604, start_column=12, end_line=604, end_column=47, + start_line=609, start_column=12, end_line=609, end_column=47, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", - "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_d823_16_30, - temp_montant_forfaitaire_charges_d823_16_29, - temp_montant_forfaitaire_charges_d823_16_28], - temp_montant_forfaitaire_charges_d823_16_27, - temp_montant_forfaitaire_charges_d823_16_26) + "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_d823_16_60, + temp_montant_forfaitaire_charges_d823_16_59, + temp_montant_forfaitaire_charges_d823_16_58], + temp_montant_forfaitaire_charges_d823_16_57, + temp_montant_forfaitaire_charges_d823_16_56) except EmptyError: - temp_montant_forfaitaire_charges_d823_16_11 = dead_value + temp_montant_forfaitaire_charges_d823_16_34 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=604, start_column=12, - end_line=604, end_column=47, + start_line=609, start_column=12, + end_line=609, end_column=47, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) - montant_forfaitaire_charges_d823_16 = temp_montant_forfaitaire_charges_d823_16_11 + montant_forfaitaire_charges_d823_16 = temp_montant_forfaitaire_charges_d823_16_34 try: try: def temp_abattement_forfaitaire_d823_17(_:Unit): @@ -5711,45 +6431,45 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen def temp_abattement_forfaitaire_d823_17_1(_:Unit): return False def temp_abattement_forfaitaire_d823_17_2(_:Unit): - match_arg_90 = residence_2 - if match_arg_90.code == Collectivite_Code.Guadeloupe: - _ = match_arg_90.value + match_arg_95 = residence_2 + if match_arg_95.code == Collectivite_Code.Guadeloupe: + _ = match_arg_95.value temp_abattement_forfaitaire_d823_17_3 = True - elif match_arg_90.code == Collectivite_Code.Guyane: - _ = match_arg_90.value + elif match_arg_95.code == Collectivite_Code.Guyane: + _ = match_arg_95.value temp_abattement_forfaitaire_d823_17_3 = False - elif match_arg_90.code == Collectivite_Code.Martinique: - _ = match_arg_90.value + elif match_arg_95.code == Collectivite_Code.Martinique: + _ = match_arg_95.value temp_abattement_forfaitaire_d823_17_3 = True - elif match_arg_90.code == Collectivite_Code.LaReunion: - _ = match_arg_90.value + elif match_arg_95.code == Collectivite_Code.LaReunion: + _ = match_arg_95.value temp_abattement_forfaitaire_d823_17_3 = True - elif match_arg_90.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_90.value + elif match_arg_95.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_95.value temp_abattement_forfaitaire_d823_17_3 = True - elif match_arg_90.code == Collectivite_Code.SaintMartin: - _ = match_arg_90.value + elif match_arg_95.code == Collectivite_Code.SaintMartin: + _ = match_arg_95.value temp_abattement_forfaitaire_d823_17_3 = True - elif match_arg_90.code == Collectivite_Code.Metropole: - _ = match_arg_90.value + elif match_arg_95.code == Collectivite_Code.Metropole: + _ = match_arg_95.value temp_abattement_forfaitaire_d823_17_3 = False - elif match_arg_90.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_90.value + elif match_arg_95.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_95.value temp_abattement_forfaitaire_d823_17_3 = False - elif match_arg_90.code == Collectivite_Code.Mayotte: - _ = match_arg_90.value + elif match_arg_95.code == Collectivite_Code.Mayotte: + _ = match_arg_95.value temp_abattement_forfaitaire_d823_17_3 = True if (((date_courante_6 >= date_of_numbers(2020,1,1)) and (date_courante_6 < date_of_numbers(2021,1,1))) and temp_abattement_forfaitaire_d823_17_3): if (nombre_personnes_a_charge_2 == integer_of_string("0")): - match_arg_91 = situation_familiale_calcul_apl_2 - if match_arg_91.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_91.value + match_arg_96 = situation_familiale_calcul_apl_2 + if match_arg_96.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_96.value return money_of_cents_string("396000") - elif match_arg_91.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_91.value + elif match_arg_96.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_96.value return money_of_cents_string("567300") else: if (nombre_personnes_a_charge_2 == @@ -5776,45 +6496,161 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen else: raise EmptyError def temp_abattement_forfaitaire_d823_17_4(_:Unit): - match_arg_92 = residence_2 - if match_arg_92.code == Collectivite_Code.Guadeloupe: - _ = match_arg_92.value - temp_abattement_forfaitaire_d823_17_5 = True - elif match_arg_92.code == Collectivite_Code.Guyane: - _ = match_arg_92.value - temp_abattement_forfaitaire_d823_17_5 = False - elif match_arg_92.code == Collectivite_Code.Martinique: - _ = match_arg_92.value - temp_abattement_forfaitaire_d823_17_5 = True - elif match_arg_92.code == Collectivite_Code.LaReunion: - _ = match_arg_92.value - temp_abattement_forfaitaire_d823_17_5 = True - elif match_arg_92.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_92.value - temp_abattement_forfaitaire_d823_17_5 = True - elif match_arg_92.code == Collectivite_Code.SaintMartin: - _ = match_arg_92.value - temp_abattement_forfaitaire_d823_17_5 = True - elif match_arg_92.code == Collectivite_Code.Metropole: - _ = match_arg_92.value - temp_abattement_forfaitaire_d823_17_5 = False - elif match_arg_92.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_92.value - temp_abattement_forfaitaire_d823_17_5 = False - elif match_arg_92.code == Collectivite_Code.Mayotte: - _ = match_arg_92.value - temp_abattement_forfaitaire_d823_17_5 = True + try: + try: + match_arg_97 = residence_2 + if match_arg_97.code == Collectivite_Code.Guadeloupe: + _ = match_arg_97.value + temp_abattement_forfaitaire_d823_17_5 = True + elif match_arg_97.code == Collectivite_Code.Guyane: + _ = match_arg_97.value + temp_abattement_forfaitaire_d823_17_5 = False + elif match_arg_97.code == Collectivite_Code.Martinique: + _ = match_arg_97.value + temp_abattement_forfaitaire_d823_17_5 = True + elif match_arg_97.code == Collectivite_Code.LaReunion: + _ = match_arg_97.value + temp_abattement_forfaitaire_d823_17_5 = True + elif match_arg_97.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_97.value + temp_abattement_forfaitaire_d823_17_5 = True + elif match_arg_97.code == Collectivite_Code.SaintMartin: + _ = match_arg_97.value + temp_abattement_forfaitaire_d823_17_5 = True + elif match_arg_97.code == Collectivite_Code.Metropole: + _ = match_arg_97.value + temp_abattement_forfaitaire_d823_17_5 = False + elif match_arg_97.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_97.value + temp_abattement_forfaitaire_d823_17_5 = False + elif match_arg_97.code == Collectivite_Code.Mayotte: + _ = match_arg_97.value + temp_abattement_forfaitaire_d823_17_5 = True + if (((date_courante_6 >= + date_of_numbers(2020,1,1)) and (date_courante_6 < + date_of_numbers(2020,10,1))) and + (temp_abattement_forfaitaire_d823_17_5 and + (nombre_personnes_a_charge_2 == + integer_of_string("1")))): + return money_of_cents_string("758400") + else: + raise EmptyError + except EmptyError: + match_arg_98 = residence_2 + if match_arg_98.code == Collectivite_Code.Guadeloupe: + _ = match_arg_98.value + temp_abattement_forfaitaire_d823_17_6 = True + elif match_arg_98.code == Collectivite_Code.Guyane: + _ = match_arg_98.value + temp_abattement_forfaitaire_d823_17_6 = False + elif match_arg_98.code == Collectivite_Code.Martinique: + _ = match_arg_98.value + temp_abattement_forfaitaire_d823_17_6 = True + elif match_arg_98.code == Collectivite_Code.LaReunion: + _ = match_arg_98.value + temp_abattement_forfaitaire_d823_17_6 = True + elif match_arg_98.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_98.value + temp_abattement_forfaitaire_d823_17_6 = True + elif match_arg_98.code == Collectivite_Code.SaintMartin: + _ = match_arg_98.value + temp_abattement_forfaitaire_d823_17_6 = True + elif match_arg_98.code == Collectivite_Code.Metropole: + _ = match_arg_98.value + temp_abattement_forfaitaire_d823_17_6 = False + elif match_arg_98.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_98.value + temp_abattement_forfaitaire_d823_17_6 = False + elif match_arg_98.code == Collectivite_Code.Mayotte: + _ = match_arg_98.value + temp_abattement_forfaitaire_d823_17_6 = True + if (((date_courante_6 >= + date_of_numbers(2020,10,1)) and + (date_courante_6 < + date_of_numbers(2021,10,1))) and + (temp_abattement_forfaitaire_d823_17_6 and + (nombre_personnes_a_charge_2 == + integer_of_string("1")))): + return money_of_cents_string("758400") + else: + raise EmptyError + except EmptyError: + match_arg_99 = residence_2 + if match_arg_99.code == Collectivite_Code.Guadeloupe: + _ = match_arg_99.value + temp_abattement_forfaitaire_d823_17_7 = True + elif match_arg_99.code == Collectivite_Code.Guyane: + _ = match_arg_99.value + temp_abattement_forfaitaire_d823_17_7 = False + elif match_arg_99.code == Collectivite_Code.Martinique: + _ = match_arg_99.value + temp_abattement_forfaitaire_d823_17_7 = True + elif match_arg_99.code == Collectivite_Code.LaReunion: + _ = match_arg_99.value + temp_abattement_forfaitaire_d823_17_7 = True + elif match_arg_99.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_99.value + temp_abattement_forfaitaire_d823_17_7 = True + elif match_arg_99.code == Collectivite_Code.SaintMartin: + _ = match_arg_99.value + temp_abattement_forfaitaire_d823_17_7 = True + elif match_arg_99.code == Collectivite_Code.Metropole: + _ = match_arg_99.value + temp_abattement_forfaitaire_d823_17_7 = False + elif match_arg_99.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_99.value + temp_abattement_forfaitaire_d823_17_7 = False + elif match_arg_99.code == Collectivite_Code.Mayotte: + _ = match_arg_99.value + temp_abattement_forfaitaire_d823_17_7 = True + if (((date_courante_6 >= date_of_numbers(2021,10,1)) and + (date_courante_6 < date_of_numbers(2022,1,1))) and + (temp_abattement_forfaitaire_d823_17_7 and + (nombre_personnes_a_charge_2 == + integer_of_string("1")))): + return money_of_cents_string("758400") + else: + raise EmptyError + def temp_abattement_forfaitaire_d823_17_8(_:Unit): + match_arg_100 = residence_2 + if match_arg_100.code == Collectivite_Code.Guadeloupe: + _ = match_arg_100.value + temp_abattement_forfaitaire_d823_17_9 = True + elif match_arg_100.code == Collectivite_Code.Guyane: + _ = match_arg_100.value + temp_abattement_forfaitaire_d823_17_9 = False + elif match_arg_100.code == Collectivite_Code.Martinique: + _ = match_arg_100.value + temp_abattement_forfaitaire_d823_17_9 = True + elif match_arg_100.code == Collectivite_Code.LaReunion: + _ = match_arg_100.value + temp_abattement_forfaitaire_d823_17_9 = True + elif match_arg_100.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_100.value + temp_abattement_forfaitaire_d823_17_9 = True + elif match_arg_100.code == Collectivite_Code.SaintMartin: + _ = match_arg_100.value + temp_abattement_forfaitaire_d823_17_9 = True + elif match_arg_100.code == Collectivite_Code.Metropole: + _ = match_arg_100.value + temp_abattement_forfaitaire_d823_17_9 = False + elif match_arg_100.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_100.value + temp_abattement_forfaitaire_d823_17_9 = False + elif match_arg_100.code == Collectivite_Code.Mayotte: + _ = match_arg_100.value + temp_abattement_forfaitaire_d823_17_9 = True if (((date_courante_6 >= date_of_numbers(2021,1,1)) and (date_courante_6 < date_of_numbers(2022,1,1))) and - temp_abattement_forfaitaire_d823_17_5): + temp_abattement_forfaitaire_d823_17_9): if (nombre_personnes_a_charge_2 == integer_of_string("0")): - match_arg_93 = situation_familiale_calcul_apl_2 - if match_arg_93.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_93.value + match_arg_101 = situation_familiale_calcul_apl_2 + if match_arg_101.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_101.value return money_of_cents_string("427400") - elif match_arg_93.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_93.value + elif match_arg_101.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_101.value return money_of_cents_string("612200") else: if (nombre_personnes_a_charge_2 == @@ -5840,235 +6676,83 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen return money_of_cents_string("913900") else: raise EmptyError - def temp_abattement_forfaitaire_d823_17_6(_:Unit): - match_arg_94 = residence_2 - if match_arg_94.code == Collectivite_Code.Guadeloupe: - _ = match_arg_94.value - temp_abattement_forfaitaire_d823_17_7 = True - elif match_arg_94.code == Collectivite_Code.Guyane: - _ = match_arg_94.value - temp_abattement_forfaitaire_d823_17_7 = False - elif match_arg_94.code == Collectivite_Code.Martinique: - _ = match_arg_94.value - temp_abattement_forfaitaire_d823_17_7 = True - elif match_arg_94.code == Collectivite_Code.LaReunion: - _ = match_arg_94.value - temp_abattement_forfaitaire_d823_17_7 = True - elif match_arg_94.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_94.value - temp_abattement_forfaitaire_d823_17_7 = True - elif match_arg_94.code == Collectivite_Code.SaintMartin: - _ = match_arg_94.value - temp_abattement_forfaitaire_d823_17_7 = True - elif match_arg_94.code == Collectivite_Code.Metropole: - _ = match_arg_94.value - temp_abattement_forfaitaire_d823_17_7 = False - elif match_arg_94.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_94.value - temp_abattement_forfaitaire_d823_17_7 = False - elif match_arg_94.code == Collectivite_Code.Mayotte: - _ = match_arg_94.value - temp_abattement_forfaitaire_d823_17_7 = True - if (((date_courante_6 >= date_of_numbers(2022,7,1)) and - (date_courante_6 < date_of_numbers(2023,1,1))) and - (temp_abattement_forfaitaire_d823_17_7 and - (nombre_personnes_a_charge_2 == - integer_of_string("1")))): - return money_of_cents_string("805100") - else: - raise EmptyError - def temp_abattement_forfaitaire_d823_17_8(_:Unit): - match_arg_95 = residence_2 - if match_arg_95.code == Collectivite_Code.Guadeloupe: - _ = match_arg_95.value - temp_abattement_forfaitaire_d823_17_9 = True - elif match_arg_95.code == Collectivite_Code.Guyane: - _ = match_arg_95.value - temp_abattement_forfaitaire_d823_17_9 = False - elif match_arg_95.code == Collectivite_Code.Martinique: - _ = match_arg_95.value - temp_abattement_forfaitaire_d823_17_9 = True - elif match_arg_95.code == Collectivite_Code.LaReunion: - _ = match_arg_95.value - temp_abattement_forfaitaire_d823_17_9 = True - elif match_arg_95.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_95.value - temp_abattement_forfaitaire_d823_17_9 = True - elif match_arg_95.code == Collectivite_Code.SaintMartin: - _ = match_arg_95.value - temp_abattement_forfaitaire_d823_17_9 = True - elif match_arg_95.code == Collectivite_Code.Metropole: - _ = match_arg_95.value - temp_abattement_forfaitaire_d823_17_9 = False - elif match_arg_95.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_95.value - temp_abattement_forfaitaire_d823_17_9 = False - elif match_arg_95.code == Collectivite_Code.Mayotte: - _ = match_arg_95.value - temp_abattement_forfaitaire_d823_17_9 = True - if (((date_courante_6 >= date_of_numbers(2022,7,1)) and - (date_courante_6 < date_of_numbers(2023,1,1))) and - (temp_abattement_forfaitaire_d823_17_9 and - (nombre_personnes_a_charge_2 >= - integer_of_string("6")))): - return money_of_cents_string("997500") - else: - raise EmptyError def temp_abattement_forfaitaire_d823_17_10(_:Unit): - match_arg_96 = residence_2 - if match_arg_96.code == Collectivite_Code.Guadeloupe: - _ = match_arg_96.value + match_arg_102 = residence_2 + if match_arg_102.code == Collectivite_Code.Guadeloupe: + _ = match_arg_102.value temp_abattement_forfaitaire_d823_17_11 = True - elif match_arg_96.code == Collectivite_Code.Guyane: - _ = match_arg_96.value + elif match_arg_102.code == Collectivite_Code.Guyane: + _ = match_arg_102.value temp_abattement_forfaitaire_d823_17_11 = False - elif match_arg_96.code == Collectivite_Code.Martinique: - _ = match_arg_96.value + elif match_arg_102.code == Collectivite_Code.Martinique: + _ = match_arg_102.value temp_abattement_forfaitaire_d823_17_11 = True - elif match_arg_96.code == Collectivite_Code.LaReunion: - _ = match_arg_96.value + elif match_arg_102.code == Collectivite_Code.LaReunion: + _ = match_arg_102.value temp_abattement_forfaitaire_d823_17_11 = True - elif match_arg_96.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_96.value + elif match_arg_102.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_102.value temp_abattement_forfaitaire_d823_17_11 = True - elif match_arg_96.code == Collectivite_Code.SaintMartin: - _ = match_arg_96.value + elif match_arg_102.code == Collectivite_Code.SaintMartin: + _ = match_arg_102.value temp_abattement_forfaitaire_d823_17_11 = True - elif match_arg_96.code == Collectivite_Code.Metropole: - _ = match_arg_96.value + elif match_arg_102.code == Collectivite_Code.Metropole: + _ = match_arg_102.value temp_abattement_forfaitaire_d823_17_11 = False - elif match_arg_96.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_96.value + elif match_arg_102.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_102.value temp_abattement_forfaitaire_d823_17_11 = False - elif match_arg_96.code == Collectivite_Code.Mayotte: - _ = match_arg_96.value + elif match_arg_102.code == Collectivite_Code.Mayotte: + _ = match_arg_102.value temp_abattement_forfaitaire_d823_17_11 = True - if ((date_courante_6 >= date_of_numbers(2023,1,1)) and + if (((date_courante_6 >= date_of_numbers(2022,1,1)) and + (date_courante_6 < date_of_numbers(2022,7,1))) and (temp_abattement_forfaitaire_d823_17_11 and (nombre_personnes_a_charge_2 == integer_of_string("1")))): - return money_of_cents_string("818100") + return money_of_cents_string("774200") else: raise EmptyError - temp_abattement_forfaitaire_d823_17_12 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=601, - start_column=11, - end_line=601, end_column=41, - law_headings=["Secteur locatif", - "Calcul du montant de l'aide personnalisée au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"]), [temp_abattement_forfaitaire_d823_17_10, - temp_abattement_forfaitaire_d823_17_8, - temp_abattement_forfaitaire_d823_17_6, - temp_abattement_forfaitaire_d823_17_4, - temp_abattement_forfaitaire_d823_17_2], - temp_abattement_forfaitaire_d823_17_1, - temp_abattement_forfaitaire_d823_17) - except EmptyError: - def temp_abattement_forfaitaire_d823_17_13(_:Unit): - raise EmptyError - def temp_abattement_forfaitaire_d823_17_14(_:Unit): - return False - def temp_abattement_forfaitaire_d823_17_15(_:Unit): - if ((date_courante_6 < date_of_numbers(2022,1,1)) and - (date_courante_6 >= - date_of_numbers(2020,1,1))): + def temp_abattement_forfaitaire_d823_17_12(_:Unit): + match_arg_103 = residence_2 + if match_arg_103.code == Collectivite_Code.Guadeloupe: + _ = match_arg_103.value + temp_abattement_forfaitaire_d823_17_13 = False + elif match_arg_103.code == Collectivite_Code.Guyane: + _ = match_arg_103.value + temp_abattement_forfaitaire_d823_17_13 = False + elif match_arg_103.code == Collectivite_Code.Martinique: + _ = match_arg_103.value + temp_abattement_forfaitaire_d823_17_13 = False + elif match_arg_103.code == Collectivite_Code.LaReunion: + _ = match_arg_103.value + temp_abattement_forfaitaire_d823_17_13 = False + elif match_arg_103.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_103.value + temp_abattement_forfaitaire_d823_17_13 = False + elif match_arg_103.code == Collectivite_Code.SaintMartin: + _ = match_arg_103.value + temp_abattement_forfaitaire_d823_17_13 = False + elif match_arg_103.code == Collectivite_Code.Metropole: + _ = match_arg_103.value + temp_abattement_forfaitaire_d823_17_13 = False + elif match_arg_103.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_103.value + temp_abattement_forfaitaire_d823_17_13 = True + elif match_arg_103.code == Collectivite_Code.Mayotte: + _ = match_arg_103.value + temp_abattement_forfaitaire_d823_17_13 = False + if (((date_courante_6 >= date_of_numbers(2022,7,1)) and + (date_courante_6 < date_of_numbers(2023,1,1))) and + temp_abattement_forfaitaire_d823_17_13): if (nombre_personnes_a_charge_2 == integer_of_string("0")): - match_arg_97 = situation_familiale_calcul_apl_2 - if match_arg_97.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_97.value - return money_of_cents_string("458800") - elif match_arg_97.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_97.value - return money_of_cents_string("657200") - else: - if (nombre_personnes_a_charge_2 == - integer_of_string("1")): - return money_of_cents_string("783900") - else: - if (nombre_personnes_a_charge_2 == - integer_of_string("2")): - return money_of_cents_string("801500") - else: - if (nombre_personnes_a_charge_2 == - integer_of_string("3")): - return money_of_cents_string("832200") - else: - if (nombre_personnes_a_charge_2 == - integer_of_string("4")): - return money_of_cents_string("863100") - else: - if (nombre_personnes_a_charge_2 == - integer_of_string("5")): - return money_of_cents_string("893800") - else: - if (nombre_personnes_a_charge_2 == - integer_of_string("6")): - return money_of_cents_string("924600") - else: - return (money_of_cents_string("924600") + - (money_of_cents_string("30500") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("6"))))) - else: - raise EmptyError - def temp_abattement_forfaitaire_d823_17_16(_:Unit): - if ((date_courante_6 >= date_of_numbers(2022,1,1)) and - (date_courante_6 < - date_of_numbers(2022,7,1))): - if (nombre_personnes_a_charge_2 == - integer_of_string("0")): - match_arg_98 = situation_familiale_calcul_apl_2 - if match_arg_98.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_98.value - return money_of_cents_string("468300") - elif match_arg_98.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_98.value - return money_of_cents_string("670900") - else: - if (nombre_personnes_a_charge_2 == - integer_of_string("1")): - return money_of_cents_string("800200") - else: - if (nombre_personnes_a_charge_2 == - integer_of_string("2")): - return money_of_cents_string("819200") - else: - if (nombre_personnes_a_charge_2 == - integer_of_string("3")): - return money_of_cents_string("849500") - else: - if (nombre_personnes_a_charge_2 == - integer_of_string("4")): - return money_of_cents_string("881100") - else: - if (nombre_personnes_a_charge_2 == - integer_of_string("5")): - return money_of_cents_string("912400") - else: - if (nombre_personnes_a_charge_2 == - integer_of_string("6")): - return money_of_cents_string("943900") - else: - return (money_of_cents_string("943900") + - (money_of_cents_string("31100") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("6"))))) - else: - raise EmptyError - def temp_abattement_forfaitaire_d823_17_17(_:Unit): - if ((date_courante_6 >= date_of_numbers(2022,7,1)) and - (date_courante_6 <= - date_of_numbers(2022,12,31))): - if (nombre_personnes_a_charge_2 == - integer_of_string("0")): - match_arg_99 = situation_familiale_calcul_apl_2 - if match_arg_99.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_99.value + match_arg_104 = situation_familiale_calcul_apl_2 + if match_arg_104.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_104.value return money_of_cents_string("487000") - elif match_arg_99.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_99.value + elif match_arg_104.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_104.value return money_of_cents_string("697700") else: if (nombre_personnes_a_charge_2 == @@ -6096,50 +6780,87 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen return money_of_cents_string("981600") else: return (money_of_cents_string("981600") + - (money_of_cents_string("32300") * + (money_of_cents_string("35000") * decimal_of_integer((nombre_personnes_a_charge_2 - integer_of_string("6"))))) else: raise EmptyError - def temp_abattement_forfaitaire_d823_17_18(_:Unit): - match_arg_100 = residence_2 - if match_arg_100.code == Collectivite_Code.Guadeloupe: - _ = match_arg_100.value - temp_abattement_forfaitaire_d823_17_19 = False - elif match_arg_100.code == Collectivite_Code.Guyane: - _ = match_arg_100.value - temp_abattement_forfaitaire_d823_17_19 = False - elif match_arg_100.code == Collectivite_Code.Martinique: - _ = match_arg_100.value - temp_abattement_forfaitaire_d823_17_19 = False - elif match_arg_100.code == Collectivite_Code.LaReunion: - _ = match_arg_100.value - temp_abattement_forfaitaire_d823_17_19 = False - elif match_arg_100.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_100.value - temp_abattement_forfaitaire_d823_17_19 = False - elif match_arg_100.code == Collectivite_Code.SaintMartin: - _ = match_arg_100.value - temp_abattement_forfaitaire_d823_17_19 = False - elif match_arg_100.code == Collectivite_Code.Metropole: - _ = match_arg_100.value - temp_abattement_forfaitaire_d823_17_19 = False - elif match_arg_100.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_100.value - temp_abattement_forfaitaire_d823_17_19 = True - elif match_arg_100.code == Collectivite_Code.Mayotte: - _ = match_arg_100.value - temp_abattement_forfaitaire_d823_17_19 = False + def temp_abattement_forfaitaire_d823_17_14(_:Unit): + match_arg_105 = residence_2 + if match_arg_105.code == Collectivite_Code.Guadeloupe: + _ = match_arg_105.value + temp_abattement_forfaitaire_d823_17_15 = True + elif match_arg_105.code == Collectivite_Code.Guyane: + _ = match_arg_105.value + temp_abattement_forfaitaire_d823_17_15 = False + elif match_arg_105.code == Collectivite_Code.Martinique: + _ = match_arg_105.value + temp_abattement_forfaitaire_d823_17_15 = True + elif match_arg_105.code == Collectivite_Code.LaReunion: + _ = match_arg_105.value + temp_abattement_forfaitaire_d823_17_15 = True + elif match_arg_105.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_105.value + temp_abattement_forfaitaire_d823_17_15 = True + elif match_arg_105.code == Collectivite_Code.SaintMartin: + _ = match_arg_105.value + temp_abattement_forfaitaire_d823_17_15 = True + elif match_arg_105.code == Collectivite_Code.Metropole: + _ = match_arg_105.value + temp_abattement_forfaitaire_d823_17_15 = False + elif match_arg_105.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_105.value + temp_abattement_forfaitaire_d823_17_15 = False + elif match_arg_105.code == Collectivite_Code.Mayotte: + _ = match_arg_105.value + temp_abattement_forfaitaire_d823_17_15 = True + if (((date_courante_6 >= date_of_numbers(2022,7,1)) and + (date_courante_6 < date_of_numbers(2023,1,1))) and + (temp_abattement_forfaitaire_d823_17_15 and + (nombre_personnes_a_charge_2 == + integer_of_string("1")))): + return money_of_cents_string("805100") + else: + raise EmptyError + def temp_abattement_forfaitaire_d823_17_16(_:Unit): + match_arg_106 = residence_2 + if match_arg_106.code == Collectivite_Code.Guadeloupe: + _ = match_arg_106.value + temp_abattement_forfaitaire_d823_17_17 = False + elif match_arg_106.code == Collectivite_Code.Guyane: + _ = match_arg_106.value + temp_abattement_forfaitaire_d823_17_17 = False + elif match_arg_106.code == Collectivite_Code.Martinique: + _ = match_arg_106.value + temp_abattement_forfaitaire_d823_17_17 = False + elif match_arg_106.code == Collectivite_Code.LaReunion: + _ = match_arg_106.value + temp_abattement_forfaitaire_d823_17_17 = False + elif match_arg_106.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_106.value + temp_abattement_forfaitaire_d823_17_17 = False + elif match_arg_106.code == Collectivite_Code.SaintMartin: + _ = match_arg_106.value + temp_abattement_forfaitaire_d823_17_17 = False + elif match_arg_106.code == Collectivite_Code.Metropole: + _ = match_arg_106.value + temp_abattement_forfaitaire_d823_17_17 = False + elif match_arg_106.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_106.value + temp_abattement_forfaitaire_d823_17_17 = True + elif match_arg_106.code == Collectivite_Code.Mayotte: + _ = match_arg_106.value + temp_abattement_forfaitaire_d823_17_17 = False if ((date_courante_6 >= date_of_numbers(2023,1,1)) and - temp_abattement_forfaitaire_d823_17_19): + temp_abattement_forfaitaire_d823_17_17): if (nombre_personnes_a_charge_2 == integer_of_string("0")): - match_arg_101 = situation_familiale_calcul_apl_2 - if match_arg_101.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_101.value + match_arg_107 = situation_familiale_calcul_apl_2 + if match_arg_107.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_107.value return money_of_cents_string("527200") - elif match_arg_101.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_101.value + elif match_arg_107.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_107.value return money_of_cents_string("755200") else: if (nombre_personnes_a_charge_2 == @@ -6172,17 +6893,205 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen integer_of_string("6"))))) else: raise EmptyError - def temp_abattement_forfaitaire_d823_17_20(_:Unit): + def temp_abattement_forfaitaire_d823_17_18(_:Unit): + match_arg_108 = residence_2 + if match_arg_108.code == Collectivite_Code.Guadeloupe: + _ = match_arg_108.value + temp_abattement_forfaitaire_d823_17_19 = True + elif match_arg_108.code == Collectivite_Code.Guyane: + _ = match_arg_108.value + temp_abattement_forfaitaire_d823_17_19 = False + elif match_arg_108.code == Collectivite_Code.Martinique: + _ = match_arg_108.value + temp_abattement_forfaitaire_d823_17_19 = True + elif match_arg_108.code == Collectivite_Code.LaReunion: + _ = match_arg_108.value + temp_abattement_forfaitaire_d823_17_19 = True + elif match_arg_108.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_108.value + temp_abattement_forfaitaire_d823_17_19 = True + elif match_arg_108.code == Collectivite_Code.SaintMartin: + _ = match_arg_108.value + temp_abattement_forfaitaire_d823_17_19 = True + elif match_arg_108.code == Collectivite_Code.Metropole: + _ = match_arg_108.value + temp_abattement_forfaitaire_d823_17_19 = False + elif match_arg_108.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_108.value + temp_abattement_forfaitaire_d823_17_19 = False + elif match_arg_108.code == Collectivite_Code.Mayotte: + _ = match_arg_108.value + temp_abattement_forfaitaire_d823_17_19 = True + if ((date_courante_6 >= date_of_numbers(2023,1,1)) and + (temp_abattement_forfaitaire_d823_17_19 and + (nombre_personnes_a_charge_2 == + integer_of_string("1")))): + return money_of_cents_string("818100") + else: + raise EmptyError + temp_abattement_forfaitaire_d823_17_20 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=602, + start_column=11, + end_line=602, end_column=41, + law_headings=["Secteur locatif", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"]), [temp_abattement_forfaitaire_d823_17_18, + temp_abattement_forfaitaire_d823_17_16, + temp_abattement_forfaitaire_d823_17_14, + temp_abattement_forfaitaire_d823_17_12, + temp_abattement_forfaitaire_d823_17_10, + temp_abattement_forfaitaire_d823_17_8, + temp_abattement_forfaitaire_d823_17_4, + temp_abattement_forfaitaire_d823_17_2], + temp_abattement_forfaitaire_d823_17_1, + temp_abattement_forfaitaire_d823_17) + except EmptyError: + def temp_abattement_forfaitaire_d823_17_21(_:Unit): + raise EmptyError + def temp_abattement_forfaitaire_d823_17_22(_:Unit): + return False + def temp_abattement_forfaitaire_d823_17_23(_:Unit): + if ((date_courante_6 < date_of_numbers(2022,1,1)) and + (date_courante_6 >= + date_of_numbers(2020,1,1))): + if (nombre_personnes_a_charge_2 == + integer_of_string("0")): + match_arg_109 = situation_familiale_calcul_apl_2 + if match_arg_109.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_109.value + return money_of_cents_string("458800") + elif match_arg_109.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_109.value + return money_of_cents_string("657200") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("1")): + return money_of_cents_string("783900") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("2")): + return money_of_cents_string("801500") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("3")): + return money_of_cents_string("832200") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("4")): + return money_of_cents_string("863100") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("5")): + return money_of_cents_string("893800") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("6")): + return money_of_cents_string("924600") + else: + return (money_of_cents_string("924600") + + (money_of_cents_string("30500") * + decimal_of_integer((nombre_personnes_a_charge_2 - + integer_of_string("6"))))) + else: + raise EmptyError + def temp_abattement_forfaitaire_d823_17_24(_:Unit): + if ((date_courante_6 >= date_of_numbers(2022,1,1)) and + (date_courante_6 < + date_of_numbers(2022,7,1))): + if (nombre_personnes_a_charge_2 == + integer_of_string("0")): + match_arg_110 = situation_familiale_calcul_apl_2 + if match_arg_110.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_110.value + return money_of_cents_string("468300") + elif match_arg_110.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_110.value + return money_of_cents_string("670900") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("1")): + return money_of_cents_string("800200") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("2")): + return money_of_cents_string("819200") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("3")): + return money_of_cents_string("849500") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("4")): + return money_of_cents_string("881100") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("5")): + return money_of_cents_string("912400") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("6")): + return money_of_cents_string("943900") + else: + return (money_of_cents_string("943900") + + (money_of_cents_string("31100") * + multiplicateur_majoration_r0)) + else: + raise EmptyError + def temp_abattement_forfaitaire_d823_17_25(_:Unit): + if ((date_courante_6 >= date_of_numbers(2022,7,1)) and + (date_courante_6 <= + date_of_numbers(2022,12,31))): + if (nombre_personnes_a_charge_2 == + integer_of_string("0")): + match_arg_111 = situation_familiale_calcul_apl_2 + if match_arg_111.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_111.value + return money_of_cents_string("487000") + elif match_arg_111.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_111.value + return money_of_cents_string("697700") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("1")): + return money_of_cents_string("832200") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("2")): + return money_of_cents_string("850900") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("3")): + return money_of_cents_string("883400") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("4")): + return money_of_cents_string("916300") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("5")): + return money_of_cents_string("948800") + else: + if (nombre_personnes_a_charge_2 == + integer_of_string("6")): + return money_of_cents_string("981600") + else: + return (money_of_cents_string("981600") + + (money_of_cents_string("32300") * + multiplicateur_majoration_r0)) + else: + raise EmptyError + def temp_abattement_forfaitaire_d823_17_26(_:Unit): if (date_courante_6 >= date_of_numbers(2023,1,1)): if (nombre_personnes_a_charge_2 == integer_of_string("0")): - match_arg_102 = situation_familiale_calcul_apl_2 - if match_arg_102.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_102.value + match_arg_112 = situation_familiale_calcul_apl_2 + if match_arg_112.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_112.value return money_of_cents_string("494900") - elif match_arg_102.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_102.value + elif match_arg_112.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_112.value return money_of_cents_string("709000") else: if (nombre_personnes_a_charge_2 == @@ -6211,77 +7120,798 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen else: return (money_of_cents_string("997500") + (money_of_cents_string("32800") * - decimal_of_integer((nombre_personnes_a_charge_2 - - integer_of_string("6"))))) + multiplicateur_majoration_r0)) else: raise EmptyError - temp_abattement_forfaitaire_d823_17_12 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=601, + temp_abattement_forfaitaire_d823_17_20 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=602, start_column=11, - end_line=601, end_column=41, + end_line=602, end_column=41, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", - "Prologue : aides au logement"]), [temp_abattement_forfaitaire_d823_17_20, - temp_abattement_forfaitaire_d823_17_18, - temp_abattement_forfaitaire_d823_17_17, - temp_abattement_forfaitaire_d823_17_16, - temp_abattement_forfaitaire_d823_17_15], - temp_abattement_forfaitaire_d823_17_14, - temp_abattement_forfaitaire_d823_17_13) + "Prologue : aides au logement"]), [temp_abattement_forfaitaire_d823_17_26, + temp_abattement_forfaitaire_d823_17_25, + temp_abattement_forfaitaire_d823_17_24, + temp_abattement_forfaitaire_d823_17_23], + temp_abattement_forfaitaire_d823_17_22, + temp_abattement_forfaitaire_d823_17_21) except EmptyError: - temp_abattement_forfaitaire_d823_17_12 = dead_value + temp_abattement_forfaitaire_d823_17_20 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=601, start_column=11, - end_line=601, end_column=41, + start_line=602, start_column=11, + end_line=602, end_column=41, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) - abattement_forfaitaire_d823_17 = temp_abattement_forfaitaire_d823_17_12 + abattement_forfaitaire_d823_17 = temp_abattement_forfaitaire_d823_17_20 try: - match_arg_103 = zone - if match_arg_103.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_103.value - temp_plafond_suppression_d823_16 = (plafond_loyer_d823_16_2 * - decimal_of_string("4.")) - elif match_arg_103.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_103.value - temp_plafond_suppression_d823_16 = (plafond_loyer_d823_16_2 * - decimal_of_string("3.1")) - elif match_arg_103.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_103.value - temp_plafond_suppression_d823_16 = (plafond_loyer_d823_16_2 * - decimal_of_string("3.1")) + def temp_loyer_reference(_:Unit): + raise EmptyError + def temp_loyer_reference_1(_:Unit): + return False + def temp_loyer_reference_2(_:Unit): + if ((date_courante_6 >= date_of_numbers(2020,10,1)) and + (date_courante_6 < + date_of_numbers(2021,10,1))): + if (nombre_personnes_a_charge_2 == + integer_of_string("0")): + match_arg_113 = situation_familiale_calcul_apl_2 + if match_arg_113.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_113.value + return money_of_cents_string("25869") + elif match_arg_113.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_113.value + return money_of_cents_string("31664") + else: + return (money_of_cents_string("35630") + + (money_of_cents_string("5186") * + multiplicateur_majoration_loyer_reference)) + else: + raise EmptyError + def temp_loyer_reference_3(_:Unit): + if ((date_courante_6 >= date_of_numbers(2021,10,1)) and + (date_courante_6 < + date_of_numbers(2022,7,1))): + if (nombre_personnes_a_charge_2 == + integer_of_string("0")): + match_arg_114 = situation_familiale_calcul_apl_2 + if match_arg_114.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_114.value + return money_of_cents_string("25978") + elif match_arg_114.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_114.value + return money_of_cents_string("31797") + else: + return (money_of_cents_string("35780") + + (money_of_cents_string("5208") * + multiplicateur_majoration_loyer_reference)) + else: + raise EmptyError + def temp_loyer_reference_4(_:Unit): + if (date_courante_6 >= + date_of_numbers(2022,7,1)): + if (nombre_personnes_a_charge_2 == + integer_of_string("0")): + match_arg_115 = situation_familiale_calcul_apl_2 + if match_arg_115.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_115.value + return money_of_cents_string("26887") + elif match_arg_115.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_115.value + return money_of_cents_string("32910") + else: + return (money_of_cents_string("37032") + + (money_of_cents_string("5390") * + multiplicateur_majoration_loyer_reference)) + else: + raise EmptyError + temp_loyer_reference_5 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=596, + start_column=11, + end_line=596, end_column=26, + law_headings=["Secteur locatif", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"]), [temp_loyer_reference_4, + temp_loyer_reference_3, + temp_loyer_reference_2], + temp_loyer_reference_1, + temp_loyer_reference) + except EmptyError: + temp_loyer_reference_5 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=596, start_column=11, + end_line=596, end_column=26, + law_headings=["Secteur locatif", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"])) + loyer_reference = temp_loyer_reference_5 + try: + def temp_plafond_loyer_d823_16_2(_:Unit): + def temp_plafond_loyer_d823_16_2_1(_:Unit): + raise EmptyError + def temp_plafond_loyer_d823_16_2_2(_:Unit): + return False + def temp_plafond_loyer_d823_16_2_3(_:Unit): + if (((date_courante_6 < date_of_numbers(2021,10,1)) and + (date_courante_6 >= date_of_numbers(2020,10,1))) and + (nombre_personnes_a_charge_2 >= + integer_of_string("1"))): + match_arg_116 = zone + if match_arg_116.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_116.value + return (money_of_cents_string("40460") + + (money_of_cents_string("5870") * + multiplicateur_majoration_plafond_loyer_d823_16_2)) + elif match_arg_116.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_116.value + return (money_of_cents_string("35630") + + (money_of_cents_string("5186") * + multiplicateur_majoration_plafond_loyer_d823_16_2)) + elif match_arg_116.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_116.value + return (money_of_cents_string("32956") + + (money_of_cents_string("4723") * + multiplicateur_majoration_plafond_loyer_d823_16_2)) + else: + raise EmptyError + def temp_plafond_loyer_d823_16_2_4(_:Unit): + match_arg_117 = situation_familiale_calcul_apl_2 + if match_arg_117.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_117.value + temp_plafond_loyer_d823_16_2_5 = False + elif match_arg_117.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_117.value + temp_plafond_loyer_d823_16_2_5 = True + if (((date_courante_6 < date_of_numbers(2021,10,1)) and + (date_courante_6 >= date_of_numbers(2020,10,1))) and + (temp_plafond_loyer_d823_16_2_5 and + (nombre_personnes_a_charge_2 == + integer_of_string("0")))): + match_arg_118 = zone + if match_arg_118.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_118.value + return money_of_cents_string("35799") + elif match_arg_118.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_118.value + return money_of_cents_string("31664") + elif match_arg_118.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_118.value + return money_of_cents_string("29392") + else: + raise EmptyError + def temp_plafond_loyer_d823_16_2_6(_:Unit): + match_arg_119 = situation_familiale_calcul_apl_2 + if match_arg_119.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_119.value + temp_plafond_loyer_d823_16_2_7 = True + elif match_arg_119.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_119.value + temp_plafond_loyer_d823_16_2_7 = False + if (((date_courante_6 < date_of_numbers(2021,10,1)) and + (date_courante_6 >= date_of_numbers(2020,10,1))) and + (temp_plafond_loyer_d823_16_2_7 and + (nombre_personnes_a_charge_2 == + integer_of_string("0")))): + match_arg_120 = zone + if match_arg_120.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_120.value + return money_of_cents_string("29682") + elif match_arg_120.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_120.value + return money_of_cents_string("25859") + elif match_arg_120.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_120.value + return money_of_cents_string("24246") + else: + raise EmptyError + def temp_plafond_loyer_d823_16_2_8(_:Unit): + if (((date_courante_6 >= date_of_numbers(2021,10,1)) and + (date_courante_6 < date_of_numbers(2022,7,1))) and + (nombre_personnes_a_charge_2 >= + integer_of_string("1"))): + match_arg_121 = zone + if match_arg_121.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_121.value + return (money_of_cents_string("40630") + + (money_of_cents_string("5895") * + multiplicateur_majoration_plafond_loyer_d823_16_2)) + elif match_arg_121.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_121.value + return (money_of_cents_string("35780") + + (money_of_cents_string("5208") * + multiplicateur_majoration_plafond_loyer_d823_16_2)) + elif match_arg_121.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_121.value + return (money_of_cents_string("33094") + + (money_of_cents_string("4743") * + multiplicateur_majoration_plafond_loyer_d823_16_2)) + else: + raise EmptyError + def temp_plafond_loyer_d823_16_2_9(_:Unit): + match_arg_122 = situation_familiale_calcul_apl_2 + if match_arg_122.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_122.value + temp_plafond_loyer_d823_16_2_10 = False + elif match_arg_122.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_122.value + temp_plafond_loyer_d823_16_2_10 = True + if (((date_courante_6 >= date_of_numbers(2021,10,1)) and + (date_courante_6 < date_of_numbers(2022,7,1))) and + (temp_plafond_loyer_d823_16_2_10 and + (nombre_personnes_a_charge_2 == + integer_of_string("0")))): + match_arg_123 = zone + if match_arg_123.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_123.value + return money_of_cents_string("35949") + elif match_arg_123.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_123.value + return money_of_cents_string("31797") + elif match_arg_123.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_123.value + return money_of_cents_string("29515") + else: + raise EmptyError + def temp_plafond_loyer_d823_16_2_11(_:Unit): + match_arg_124 = situation_familiale_calcul_apl_2 + if match_arg_124.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_124.value + temp_plafond_loyer_d823_16_2_12 = True + elif match_arg_124.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_124.value + temp_plafond_loyer_d823_16_2_12 = False + if (((date_courante_6 >= date_of_numbers(2021,10,1)) and + (date_courante_6 < date_of_numbers(2022,7,1))) and + (temp_plafond_loyer_d823_16_2_12 and + (nombre_personnes_a_charge_2 == + integer_of_string("0")))): + match_arg_125 = zone + if match_arg_125.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_125.value + return money_of_cents_string("29807") + elif match_arg_125.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_125.value + return money_of_cents_string("25978") + elif match_arg_125.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_125.value + return money_of_cents_string("24348") + else: + raise EmptyError + def temp_plafond_loyer_d823_16_2_13(_:Unit): + if ((date_courante_6 >= date_of_numbers(2022,7,1)) and + (nombre_personnes_a_charge_2 >= + integer_of_string("1"))): + match_arg_126 = zone + if match_arg_126.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_126.value + return (money_of_cents_string("42052") + + (money_of_cents_string("6101") * + multiplicateur_majoration_plafond_loyer_d823_16_2)) + elif match_arg_126.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_126.value + return (money_of_cents_string("37032") + + (money_of_cents_string("5390") * + multiplicateur_majoration_plafond_loyer_d823_16_2)) + elif match_arg_126.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_126.value + return (money_of_cents_string("34252") + + (money_of_cents_string("4909") * + multiplicateur_majoration_plafond_loyer_d823_16_2)) + else: + raise EmptyError + def temp_plafond_loyer_d823_16_2_14(_:Unit): + match_arg_127 = situation_familiale_calcul_apl_2 + if match_arg_127.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_127.value + temp_plafond_loyer_d823_16_2_15 = False + elif match_arg_127.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_127.value + temp_plafond_loyer_d823_16_2_15 = True + if ((date_courante_6 >= date_of_numbers(2022,7,1)) and + (temp_plafond_loyer_d823_16_2_15 and + (nombre_personnes_a_charge_2 == + integer_of_string("0")))): + match_arg_128 = zone + if match_arg_128.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_128.value + return money_of_cents_string("37207") + elif match_arg_128.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_128.value + return money_of_cents_string("32910") + elif match_arg_128.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_128.value + return money_of_cents_string("30548") + else: + raise EmptyError + def temp_plafond_loyer_d823_16_2_16(_:Unit): + match_arg_129 = situation_familiale_calcul_apl_2 + if match_arg_129.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_129.value + temp_plafond_loyer_d823_16_2_17 = True + elif match_arg_129.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_129.value + temp_plafond_loyer_d823_16_2_17 = False + if ((date_courante_6 >= date_of_numbers(2022,7,1)) and + (temp_plafond_loyer_d823_16_2_17 and + (nombre_personnes_a_charge_2 == + integer_of_string("0")))): + match_arg_130 = zone + if match_arg_130.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_130.value + return money_of_cents_string("30850") + elif match_arg_130.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_130.value + return money_of_cents_string("26887") + elif match_arg_130.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_130.value + return money_of_cents_string("25200") + else: + raise EmptyError + return handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=610, start_column=12, + end_line=610, end_column=35, + law_headings=["Secteur locatif", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"]), [temp_plafond_loyer_d823_16_2_16, + temp_plafond_loyer_d823_16_2_14, + temp_plafond_loyer_d823_16_2_13, + temp_plafond_loyer_d823_16_2_11, + temp_plafond_loyer_d823_16_2_9, + temp_plafond_loyer_d823_16_2_8, + temp_plafond_loyer_d823_16_2_6, + temp_plafond_loyer_d823_16_2_4, + temp_plafond_loyer_d823_16_2_3], + temp_plafond_loyer_d823_16_2_2, + temp_plafond_loyer_d823_16_2_1) + def temp_plafond_loyer_d823_16_2_18(_:Unit): + return True + def temp_plafond_loyer_d823_16_2_19(_:Unit): + try: + def temp_plafond_loyer_d823_16_2_20(_:Unit): + raise EmptyError + def temp_plafond_loyer_d823_16_2_21(_:Unit): + return False + def temp_plafond_loyer_d823_16_2_22(_:Unit): + if (((date_courante_6 < date_of_numbers(2021,10,1)) and + ((date_courante_6 >= date_of_numbers(2020,10,1)) and + logement_est_chambre)) and + agees_ou_handicap_adultes_hebergees_onereux_particuliers): + match_arg_131 = zone + if match_arg_131.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_131.value + return money_of_cents_string("22262") + elif match_arg_131.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_131.value + return money_of_cents_string("19402") + elif match_arg_131.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_131.value + return money_of_cents_string("18185") + else: + raise EmptyError + def temp_plafond_loyer_d823_16_2_23(_:Unit): + if (((date_courante_6 >= date_of_numbers(2021,10,1)) and + ((date_courante_6 < date_of_numbers(2022,7,1)) and + logement_est_chambre)) and + agees_ou_handicap_adultes_hebergees_onereux_particuliers): + match_arg_132 = zone + if match_arg_132.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_132.value + return money_of_cents_string("22355") + elif match_arg_132.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_132.value + return money_of_cents_string("19484") + elif match_arg_132.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_132.value + return money_of_cents_string("18261") + else: + raise EmptyError + def temp_plafond_loyer_d823_16_2_24(_:Unit): + if (((date_courante_6 >= date_of_numbers(2022,7,1)) and + logement_est_chambre) and + agees_ou_handicap_adultes_hebergees_onereux_particuliers): + match_arg_133 = zone + if match_arg_133.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_133.value + return money_of_cents_string("23138") + elif match_arg_133.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_133.value + return money_of_cents_string("20165") + elif match_arg_133.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_133.value + return money_of_cents_string("18900") + else: + raise EmptyError + return handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=610, start_column=12, + end_line=610, end_column=35, + law_headings=["Secteur locatif", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"]), [temp_plafond_loyer_d823_16_2_24, + temp_plafond_loyer_d823_16_2_23, + temp_plafond_loyer_d823_16_2_22], + temp_plafond_loyer_d823_16_2_21, + temp_plafond_loyer_d823_16_2_20) + except EmptyError: + def temp_plafond_loyer_d823_16_2_25(_:Unit): + raise EmptyError + def temp_plafond_loyer_d823_16_2_26(_:Unit): + return False + def temp_plafond_loyer_d823_16_2_27(_:Unit): + if ((date_courante_6 < date_of_numbers(2021,10,1)) and + ((date_courante_6 >= date_of_numbers(2020,10,1)) and + logement_est_chambre)): + match_arg_134 = zone + if match_arg_134.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_134.value + return money_of_cents_string("26714") + elif match_arg_134.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_134.value + return money_of_cents_string("23282") + elif match_arg_134.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_134.value + return money_of_cents_string("21821") + else: + raise EmptyError + def temp_plafond_loyer_d823_16_2_28(_:Unit): + if ((date_courante_6 >= date_of_numbers(2021,10,1)) and + ((date_courante_6 < date_of_numbers(2022,7,1)) and + logement_est_chambre)): + match_arg_135 = zone + if match_arg_135.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_135.value + return money_of_cents_string("26826") + elif match_arg_135.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_135.value + return money_of_cents_string("23380") + elif match_arg_135.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_135.value + return money_of_cents_string("21913") + else: + raise EmptyError + def temp_plafond_loyer_d823_16_2_29(_:Unit): + if ((date_courante_6 >= date_of_numbers(2022,7,1)) and + logement_est_chambre): + match_arg_136 = zone + if match_arg_136.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_136.value + return money_of_cents_string("27765") + elif match_arg_136.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_136.value + return money_of_cents_string("24198") + elif match_arg_136.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_136.value + return money_of_cents_string("22680") + else: + raise EmptyError + return handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=610, start_column=12, + end_line=610, end_column=35, + law_headings=["Secteur locatif", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"]), [temp_plafond_loyer_d823_16_2_29, + temp_plafond_loyer_d823_16_2_28, + temp_plafond_loyer_d823_16_2_27], + temp_plafond_loyer_d823_16_2_26, + temp_plafond_loyer_d823_16_2_25) + def temp_plafond_loyer_d823_16_2_30(_:Unit): + def temp_plafond_loyer_d823_16_2_31(_:Unit): + raise EmptyError + def temp_plafond_loyer_d823_16_2_32(_:Unit): + return False + def temp_plafond_loyer_d823_16_2_33(_:Unit): + if (((date_courante_6 < date_of_numbers(2021,10,1)) and + ((date_courante_6 >= date_of_numbers(2020,10,1)) and + colocation)) and (nombre_personnes_a_charge_2 >= + integer_of_string("1"))): + match_arg_137 = zone + if match_arg_137.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_137.value + return (money_of_cents_string("30345") + + (money_of_cents_string("4403") * + multiplicateur_majoration_plafond_loyer_d823_16_2)) + elif match_arg_137.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_137.value + return (money_of_cents_string("26723") + + (money_of_cents_string("3890") * + multiplicateur_majoration_plafond_loyer_d823_16_2)) + elif match_arg_137.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_137.value + return (money_of_cents_string("24717") + + (money_of_cents_string("3542") * + multiplicateur_majoration_plafond_loyer_d823_16_2)) + else: + raise EmptyError + def temp_plafond_loyer_d823_16_2_34(_:Unit): + match_arg_138 = situation_familiale_calcul_apl_2 + if match_arg_138.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_138.value + temp_plafond_loyer_d823_16_2_35 = False + elif match_arg_138.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_138.value + temp_plafond_loyer_d823_16_2_35 = True + if (((date_courante_6 < date_of_numbers(2021,10,1)) and + ((date_courante_6 >= date_of_numbers(2020,10,1)) and + colocation)) and (temp_plafond_loyer_d823_16_2_35 and + (nombre_personnes_a_charge_2 == + integer_of_string("0")))): + match_arg_139 = zone + if match_arg_139.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_139.value + return money_of_cents_string("26849") + elif match_arg_139.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_139.value + return money_of_cents_string("23748") + elif match_arg_139.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_139.value + return money_of_cents_string("22044") + else: + raise EmptyError + def temp_plafond_loyer_d823_16_2_36(_:Unit): + match_arg_140 = situation_familiale_calcul_apl_2 + if match_arg_140.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_140.value + temp_plafond_loyer_d823_16_2_37 = True + elif match_arg_140.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_140.value + temp_plafond_loyer_d823_16_2_37 = False + if (((date_courante_6 < date_of_numbers(2021,10,1)) and + ((date_courante_6 >= date_of_numbers(2020,10,1)) and + colocation)) and (temp_plafond_loyer_d823_16_2_37 and + (nombre_personnes_a_charge_2 == + integer_of_string("0")))): + match_arg_141 = zone + if match_arg_141.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_141.value + return money_of_cents_string("22262") + elif match_arg_141.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_141.value + return money_of_cents_string("19402") + elif match_arg_141.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_141.value + return money_of_cents_string("18185") + else: + raise EmptyError + def temp_plafond_loyer_d823_16_2_38(_:Unit): + if (((date_courante_6 >= date_of_numbers(2021,10,1)) and + ((date_courante_6 < date_of_numbers(2022,7,1)) and + colocation)) and (nombre_personnes_a_charge_2 >= + integer_of_string("1"))): + match_arg_142 = zone + if match_arg_142.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_142.value + return (money_of_cents_string("30473") + + (money_of_cents_string("4421") * + multiplicateur_majoration_plafond_loyer_d823_16_2)) + elif match_arg_142.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_142.value + return (money_of_cents_string("26835") + + (money_of_cents_string("3906") * + multiplicateur_majoration_plafond_loyer_d823_16_2)) + elif match_arg_142.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_142.value + return (money_of_cents_string("24821") + + (money_of_cents_string("3557") * + multiplicateur_majoration_plafond_loyer_d823_16_2)) + else: + raise EmptyError + def temp_plafond_loyer_d823_16_2_39(_:Unit): + match_arg_143 = situation_familiale_calcul_apl_2 + if match_arg_143.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_143.value + temp_plafond_loyer_d823_16_2_40 = False + elif match_arg_143.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_143.value + temp_plafond_loyer_d823_16_2_40 = True + if (((date_courante_6 >= date_of_numbers(2021,10,1)) and + ((date_courante_6 < date_of_numbers(2022,7,1)) and + colocation)) and (temp_plafond_loyer_d823_16_2_40 and + (nombre_personnes_a_charge_2 == + integer_of_string("0")))): + match_arg_144 = zone + if match_arg_144.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_144.value + return money_of_cents_string("26962") + elif match_arg_144.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_144.value + return money_of_cents_string("23848") + elif match_arg_144.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_144.value + return money_of_cents_string("22136") + else: + raise EmptyError + def temp_plafond_loyer_d823_16_2_41(_:Unit): + match_arg_145 = situation_familiale_calcul_apl_2 + if match_arg_145.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_145.value + temp_plafond_loyer_d823_16_2_42 = True + elif match_arg_145.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_145.value + temp_plafond_loyer_d823_16_2_42 = False + if (((date_courante_6 >= date_of_numbers(2021,10,1)) and + ((date_courante_6 < date_of_numbers(2022,7,1)) and + colocation)) and (temp_plafond_loyer_d823_16_2_42 and + (nombre_personnes_a_charge_2 == + integer_of_string("0")))): + match_arg_146 = zone + if match_arg_146.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_146.value + return money_of_cents_string("22355") + elif match_arg_146.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_146.value + return money_of_cents_string("19484") + elif match_arg_146.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_146.value + return money_of_cents_string("18261") + else: + raise EmptyError + def temp_plafond_loyer_d823_16_2_43(_:Unit): + if (((date_courante_6 >= date_of_numbers(2022,7,1)) and + colocation) and (nombre_personnes_a_charge_2 >= + integer_of_string("1"))): + match_arg_147 = zone + if match_arg_147.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_147.value + return (money_of_cents_string("31539") + + (money_of_cents_string("4576") * + multiplicateur_majoration_plafond_loyer_d823_16_2)) + elif match_arg_147.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_147.value + return (money_of_cents_string("27774") + + (money_of_cents_string("4043") * + multiplicateur_majoration_plafond_loyer_d823_16_2)) + elif match_arg_147.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_147.value + return (money_of_cents_string("25689") + + (money_of_cents_string("3682") * + multiplicateur_majoration_plafond_loyer_d823_16_2)) + else: + raise EmptyError + def temp_plafond_loyer_d823_16_2_44(_:Unit): + match_arg_148 = situation_familiale_calcul_apl_2 + if match_arg_148.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_148.value + temp_plafond_loyer_d823_16_2_45 = False + elif match_arg_148.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_148.value + temp_plafond_loyer_d823_16_2_45 = True + if (((date_courante_6 >= date_of_numbers(2022,7,1)) and + colocation) and (temp_plafond_loyer_d823_16_2_45 and + (nombre_personnes_a_charge_2 == + integer_of_string("0")))): + match_arg_149 = zone + if match_arg_149.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_149.value + return money_of_cents_string("27905") + elif match_arg_149.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_149.value + return money_of_cents_string("24683") + elif match_arg_149.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_149.value + return money_of_cents_string("22911") + else: + raise EmptyError + def temp_plafond_loyer_d823_16_2_46(_:Unit): + match_arg_150 = situation_familiale_calcul_apl_2 + if match_arg_150.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_150.value + temp_plafond_loyer_d823_16_2_47 = True + elif match_arg_150.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_150.value + temp_plafond_loyer_d823_16_2_47 = False + if (((date_courante_6 >= date_of_numbers(2022,7,1)) and + colocation) and (temp_plafond_loyer_d823_16_2_47 and + (nombre_personnes_a_charge_2 == + integer_of_string("0")))): + match_arg_151 = zone + if match_arg_151.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_151.value + return money_of_cents_string("23138") + elif match_arg_151.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_151.value + return money_of_cents_string("20165") + elif match_arg_151.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_151.value + return money_of_cents_string("18900") + else: + raise EmptyError + return handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=610, start_column=12, + end_line=610, end_column=35, + law_headings=["Secteur locatif", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"]), [temp_plafond_loyer_d823_16_2_46, + temp_plafond_loyer_d823_16_2_44, + temp_plafond_loyer_d823_16_2_43, + temp_plafond_loyer_d823_16_2_41, + temp_plafond_loyer_d823_16_2_39, + temp_plafond_loyer_d823_16_2_38, + temp_plafond_loyer_d823_16_2_36, + temp_plafond_loyer_d823_16_2_34, + temp_plafond_loyer_d823_16_2_33], + temp_plafond_loyer_d823_16_2_32, + temp_plafond_loyer_d823_16_2_31) + temp_plafond_loyer_d823_16_2_48 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=610, + start_column=12, + end_line=610, end_column=35, + law_headings=["Secteur locatif", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"]), [temp_plafond_loyer_d823_16_2_30, + temp_plafond_loyer_d823_16_2_19], + temp_plafond_loyer_d823_16_2_18, + temp_plafond_loyer_d823_16_2) + except EmptyError: + temp_plafond_loyer_d823_16_2_48 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=610, start_column=12, + end_line=610, end_column=35, + law_headings=["Secteur locatif", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"])) + plafond_loyer_d823_16_2 = temp_plafond_loyer_d823_16_2_48 + try: + if (date_courante_6 >= + date_of_numbers(2019,10,1)): + match_arg_152 = zone + if match_arg_152.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_152.value + temp_plafond_suppression_d823_16 = (plafond_loyer_d823_16_2 * + decimal_of_string("4.")) + elif match_arg_152.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_152.value + temp_plafond_suppression_d823_16 = (plafond_loyer_d823_16_2 * + decimal_of_string("3.1")) + elif match_arg_152.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_152.value + temp_plafond_suppression_d823_16 = (plafond_loyer_d823_16_2 * + decimal_of_string("3.1")) + else: + temp_plafond_suppression_d823_16 = dead_value + raise EmptyError except EmptyError: temp_plafond_suppression_d823_16 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=598, start_column=11, - end_line=598, end_column=38, + start_line=599, start_column=11, + end_line=599, end_column=38, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) plafond_suppression_d823_16 = temp_plafond_suppression_d823_16 try: - match_arg_104 = zone - if match_arg_104.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_104.value - temp_plafond_degressivite_d823_16 = (plafond_loyer_d823_16_2 * - decimal_of_string("3.4")) - elif match_arg_104.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_104.value - temp_plafond_degressivite_d823_16 = (plafond_loyer_d823_16_2 * - decimal_of_string("2.5")) - elif match_arg_104.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_104.value - temp_plafond_degressivite_d823_16 = (plafond_loyer_d823_16_2 * - decimal_of_string("2.5")) + if (date_courante_6 >= + date_of_numbers(2019,10,1)): + match_arg_153 = zone + if match_arg_153.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_153.value + temp_plafond_degressivite_d823_16 = (plafond_loyer_d823_16_2 * + decimal_of_string("3.4")) + elif match_arg_153.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_153.value + temp_plafond_degressivite_d823_16 = (plafond_loyer_d823_16_2 * + decimal_of_string("2.5")) + elif match_arg_153.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_153.value + temp_plafond_degressivite_d823_16 = (plafond_loyer_d823_16_2 * + decimal_of_string("2.5")) + else: + temp_plafond_degressivite_d823_16 = dead_value + raise EmptyError except EmptyError: temp_plafond_degressivite_d823_16 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=597, start_column=11, - end_line=597, end_column=39, + start_line=598, start_column=11, + end_line=598, end_column=39, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -6296,8 +7926,8 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen except EmptyError: temp_loyer_eligible = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=590, start_column=11, - end_line=590, end_column=25, + start_line=591, start_column=11, + end_line=591, end_column=25, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -6327,9 +7957,9 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen return aide_finale_2 except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=616, + start_line=622, start_column=10, - end_line=616, + end_line=622, end_column=17, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", @@ -6338,8 +7968,8 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen except EmptyError: temp_traitement_aide_finale_diminue = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=616, start_column=10, - end_line=616, end_column=17, + start_line=622, start_column=10, + end_line=622, end_column=17, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -6392,9 +8022,9 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen else: raise EmptyError temp_participation_minimale_5 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=606, + start_line=611, start_column=12, - end_line=606, end_column=34, + end_line=611, end_column=34, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -6406,8 +8036,8 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen except EmptyError: temp_participation_minimale_5 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=606, start_column=12, - end_line=606, end_column=34, + start_line=611, start_column=12, + end_line=611, end_column=34, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -6447,8 +8077,8 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen except EmptyError: temp_rapport_loyers = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=594, start_column=11, - end_line=594, end_column=25, + start_line=595, start_column=11, + end_line=595, end_column=25, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -6466,9 +8096,9 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen return money_of_cents_string("0") except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=617, + start_line=623, start_column=10, - end_line=617, + end_line=623, end_column=32, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", @@ -6477,8 +8107,8 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen except EmptyError: temp_traitement_aide_finale_minoration_forfaitaire = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=617, start_column=10, - end_line=617, end_column=32, + start_line=623, start_column=10, + end_line=623, end_column=32, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -6568,8 +8198,8 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen except EmptyError: temp_taux_loyer_eligible_formule = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=592, start_column=10, - end_line=592, end_column=17, + start_line=593, start_column=10, + end_line=593, end_column=17, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -6597,9 +8227,9 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen return money_of_cents_string("0") except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=618, + start_line=624, start_column=10, - end_line=618, + end_line=624, end_column=40, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", @@ -6608,8 +8238,8 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen except EmptyError: temp_traitement_aide_finale_contributions_sociales_arrondi = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=618, start_column=10, - end_line=618, end_column=40, + start_line=624, start_column=10, + end_line=624, end_column=40, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -6649,8 +8279,8 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen except EmptyError: temp_taux_loyer_eligible_taux_arrondi = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=593, start_column=10, - end_line=593, end_column=22, + start_line=594, start_column=10, + end_line=594, end_column=22, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -6670,9 +8300,9 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen return money_of_cents_string("0") except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=619, + start_line=625, start_column=10, - end_line=619, + end_line=625, end_column=36, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", @@ -6681,8 +8311,8 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen except EmptyError: temp_traitement_aide_finale_reduction_loyer_solidarite = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=619, start_column=10, - end_line=619, end_column=36, + start_line=625, start_column=10, + end_line=625, end_column=36, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -6694,8 +8324,8 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen except EmptyError: temp_taux_prise_compte_ressources = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=602, start_column=11, - end_line=602, end_column=39, + start_line=603, start_column=11, + end_line=603, end_column=39, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -6713,9 +8343,9 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen aide_finale_6) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=620, + start_line=626, start_column=10, - end_line=620, + end_line=626, end_column=25, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", @@ -6724,8 +8354,8 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen except EmptyError: temp_traitement_aide_finale_montant_minimal = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=620, start_column=10, - end_line=620, end_column=25, + start_line=626, start_column=10, + end_line=626, end_column=25, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -6745,8 +8375,8 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen except EmptyError: temp_participation_personnelle_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=608, start_column=12, - end_line=608, end_column=37, + start_line=613, start_column=12, + end_line=613, end_column=37, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -6764,8 +8394,8 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen except EmptyError: temp_aide_finale_formule = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=613, start_column=12, - end_line=613, end_column=31, + start_line=618, start_column=12, + end_line=618, end_column=31, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -6777,8 +8407,8 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen except EmptyError: temp___4 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1838, - start_column=13, end_line=1838, + start_line=1840, + start_column=13, end_line=1840, end_column=74, law_headings=["Article D823-16", "Sous-section 2 : Calcul de l'aide en secteur locatif", @@ -6790,8 +8420,8 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen "Code de la construction et de l'habitation"])) if not (temp___4): raise AssertionFailure(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1838, - start_column=13, end_line=1838, + start_line=1840, + start_column=13, end_line=1840, end_column=74, law_headings=["Article D823-16", "Sous-section 2 : Calcul de l'aide en secteur locatif", @@ -6831,16 +8461,16 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen except EmptyError: temp___6 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=634, start_column=13, - end_line=634, end_column=53, + start_line=640, start_column=13, + end_line=640, end_column=53, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) if not (temp___6): raise AssertionFailure(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=634, - start_column=13, end_line=634, + start_line=640, + start_column=13, end_line=640, end_column=53, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", @@ -6851,16 +8481,16 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen except EmptyError: temp___7 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=627, start_column=13, - end_line=627, end_column=43, + start_line=633, start_column=13, + end_line=633, end_column=43, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) if not (temp___7): raise AssertionFailure(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=627, - start_column=13, end_line=627, + start_line=633, + start_column=13, end_line=633, end_column=43, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", @@ -6871,16 +8501,16 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen except EmptyError: temp___8 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=626, start_column=13, - end_line=626, end_column=42, + start_line=632, start_column=13, + end_line=632, end_column=42, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) if not (temp___8): raise AssertionFailure(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=626, - start_column=13, end_line=626, + start_line=632, + start_column=13, end_line=632, end_column=42, law_headings=["Secteur locatif", "Calcul du montant de l'aide personnalisée au logement", @@ -6916,73 +8546,37 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_limitation_majoration_personnes_a_charge_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=678, start_column=12, - end_line=678, end_column=52, + start_line=684, start_column=12, + end_line=684, end_column=52, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) limitation_majoration_personnes_a_charge_3 = temp_limitation_majoration_personnes_a_charge_1 - try: - temp_coefficient_r_d832_25 = money_of_cents_string("121726") - except EmptyError: - temp_coefficient_r_d832_25 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=681, start_column=12, - end_line=681, end_column=33, - law_headings=["Secteur logement-foyer", - "Calcul du montant de l'aide personnalisée au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"])) - coefficient_r_d832_25 = temp_coefficient_r_d832_25 - try: - temp_montant_forfaitaire_d832_24 = money_of_cents_string("500") - except EmptyError: - temp_montant_forfaitaire_d832_24 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=689, start_column=11, - end_line=689, end_column=38, - law_headings=["Secteur logement-foyer", - "Calcul du montant de l'aide personnalisée au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"])) - montant_forfaitaire_d832_24 = temp_montant_forfaitaire_d832_24 - try: - temp_montant_minimal_aide_d823_24 = money_of_cents_string("1000") - except EmptyError: - temp_montant_minimal_aide_d823_24 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=691, start_column=11, - end_line=691, end_column=39, - law_headings=["Secteur logement-foyer", - "Calcul du montant de l'aide personnalisée au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"])) - montant_minimal_aide_d823_24 = temp_montant_minimal_aide_d823_24 try: try: temp_condition_2_du_832_25 = condition_2_du_832_25_2(Unit()) except EmptyError: - match_arg_105 = type_logement_foyer - if match_arg_105.code == TypeLogementFoyer_Code.LogementPersonnesAgeesOuHandicapees: - _ = match_arg_105.value + match_arg_154 = type_logement_foyer + if match_arg_154.code == TypeLogementFoyer_Code.LogementPersonnesAgeesOuHandicapees: + _ = match_arg_154.value temp_condition_2_du_832_25 = False - elif match_arg_105.code == TypeLogementFoyer_Code.ResidenceSociale: - _ = match_arg_105.value + elif match_arg_154.code == TypeLogementFoyer_Code.ResidenceSociale: + _ = match_arg_154.value temp_condition_2_du_832_25 = (date_conventionnement >= date_of_numbers(1994,12,31)) - elif match_arg_105.code == TypeLogementFoyer_Code.FoyerJeunesTrvailleursOuMigrantsConventionneL353_2Avant1995: - _ = match_arg_105.value + elif match_arg_154.code == TypeLogementFoyer_Code.FoyerJeunesTrvailleursOuMigrantsConventionneL353_2Avant1995: + _ = match_arg_154.value temp_condition_2_du_832_25 = (date_conventionnement >= date_of_numbers(1990,9,30)) - elif match_arg_105.code == TypeLogementFoyer_Code.Autre: - _ = match_arg_105.value + elif match_arg_154.code == TypeLogementFoyer_Code.Autre: + _ = match_arg_154.value temp_condition_2_du_832_25 = False except EmptyError: temp_condition_2_du_832_25 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=677, start_column=12, - end_line=677, end_column=33, + start_line=683, start_column=12, + end_line=683, end_column=33, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -6993,8 +8587,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_contributions_sociales_dot_date_courante_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=713, start_column=14, - end_line=713, end_column=50, + start_line=720, start_column=14, + end_line=720, end_column=50, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -7002,6 +8596,40 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ contributions_sociales_dot_date_courante_1 = temp_contributions_sociales_dot_date_courante_1 result_1 = contributions_sociales_aides_personnelle_logement(ContributionsSocialesAidesPersonnelleLogementIn(date_courante_in = contributions_sociales_dot_date_courante_1)) contributions_sociales_dot_montant_1 = result_1.montant + try: + if (date_courante_7 >= + date_of_numbers(2019,10,1)): + temp_montant_minimal_aide_d823_24 = money_of_cents_string("1000") + else: + temp_montant_minimal_aide_d823_24 = dead_value + raise EmptyError + except EmptyError: + temp_montant_minimal_aide_d823_24 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=697, start_column=11, + end_line=697, end_column=39, + law_headings=["Secteur logement-foyer", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"])) + montant_minimal_aide_d823_24 = temp_montant_minimal_aide_d823_24 + try: + if (date_courante_7 >= + date_of_numbers(2019,10,1)): + temp_montant_forfaitaire_d832_24 = money_of_cents_string("500") + else: + temp_montant_forfaitaire_d832_24 = dead_value + raise EmptyError + except EmptyError: + temp_montant_forfaitaire_d832_24 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=695, start_column=11, + end_line=695, end_column=38, + law_headings=["Secteur logement-foyer", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"])) + montant_forfaitaire_d832_24 = temp_montant_forfaitaire_d832_24 try: def temp_plafond_equivalence_loyer_eligible(_:Unit): raise EmptyError @@ -7011,17 +8639,17 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ if ((date_courante_7 < date_of_numbers(2021,10,1)) and (date_courante_7 >= date_of_numbers(2020,10,1))): - match_arg_106 = zone_1 - if match_arg_106.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_106.value + match_arg_155 = zone_1 + if match_arg_155.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_155.value if (nombre_personnes_a_charge_3 == integer_of_string("0")): - match_arg_107 = situation_familiale_calcul_apl_3 - if match_arg_107.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_107.value + match_arg_156 = situation_familiale_calcul_apl_3 + if match_arg_156.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_156.value return money_of_cents_string("44443") - elif match_arg_107.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_107.value + elif match_arg_156.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_156.value return money_of_cents_string("52101") else: if (nombre_personnes_a_charge_3 == @@ -7040,16 +8668,16 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ (money_of_cents_string("7089") * decimal_of_integer((nombre_personnes_a_charge_3 - integer_of_string("4"))))) - elif match_arg_106.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_106.value + elif match_arg_155.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_155.value if (nombre_personnes_a_charge_3 == integer_of_string("0")): - match_arg_108 = situation_familiale_calcul_apl_3 - if match_arg_108.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_108.value + match_arg_157 = situation_familiale_calcul_apl_3 + if match_arg_157.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_157.value return money_of_cents_string("40643") - elif match_arg_108.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_108.value + elif match_arg_157.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_157.value return money_of_cents_string("47433") else: if (nombre_personnes_a_charge_3 == @@ -7068,16 +8696,16 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ (money_of_cents_string("6407") * decimal_of_integer((nombre_personnes_a_charge_3 - integer_of_string("4"))))) - elif match_arg_106.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_106.value + elif match_arg_155.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_155.value if (nombre_personnes_a_charge_3 == integer_of_string("0")): - match_arg_109 = situation_familiale_calcul_apl_3 - if match_arg_109.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_109.value + match_arg_158 = situation_familiale_calcul_apl_3 + if match_arg_158.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_158.value return money_of_cents_string("38578") - elif match_arg_109.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_109.value + elif match_arg_158.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_158.value return money_of_cents_string("44869") else: if (nombre_personnes_a_charge_3 == @@ -7102,17 +8730,17 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ if ((date_courante_7 >= date_of_numbers(2021,10,1)) and (date_courante_7 < date_of_numbers(2022,7,1))): - match_arg_110 = zone_1 - if match_arg_110.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_110.value + match_arg_159 = zone_1 + if match_arg_159.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_159.value if (nombre_personnes_a_charge_3 == integer_of_string("0")): - match_arg_111 = situation_familiale_calcul_apl_3 - if match_arg_111.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_111.value + match_arg_160 = situation_familiale_calcul_apl_3 + if match_arg_160.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_160.value return money_of_cents_string("44630") - elif match_arg_111.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_111.value + elif match_arg_160.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_160.value return money_of_cents_string("52321") else: if (nombre_personnes_a_charge_3 == @@ -7131,16 +8759,16 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ (money_of_cents_string("7119") * decimal_of_integer((nombre_personnes_a_charge_3 - integer_of_string("4"))))) - elif match_arg_110.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_110.value + elif match_arg_159.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_159.value if (nombre_personnes_a_charge_3 == integer_of_string("0")): - match_arg_112 = situation_familiale_calcul_apl_3 - if match_arg_112.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_112.value + match_arg_161 = situation_familiale_calcul_apl_3 + if match_arg_161.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_161.value return money_of_cents_string("40814") - elif match_arg_112.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_112.value + elif match_arg_161.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_161.value return money_of_cents_string("47632") else: if (nombre_personnes_a_charge_3 == @@ -7159,16 +8787,16 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ (money_of_cents_string("6434") * decimal_of_integer((nombre_personnes_a_charge_3 - integer_of_string("4"))))) - elif match_arg_110.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_110.value + elif match_arg_159.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_159.value if (nombre_personnes_a_charge_3 == integer_of_string("0")): - match_arg_113 = situation_familiale_calcul_apl_3 - if match_arg_113.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_113.value + match_arg_162 = situation_familiale_calcul_apl_3 + if match_arg_162.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_162.value return money_of_cents_string("38740") - elif match_arg_113.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_113.value + elif match_arg_162.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_162.value return money_of_cents_string("45057") else: if (nombre_personnes_a_charge_3 == @@ -7192,17 +8820,17 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ def temp_plafond_equivalence_loyer_eligible_4(_:Unit): if (date_courante_7 >= date_of_numbers(2022,7,1)): - match_arg_114 = zone_1 - if match_arg_114.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_114.value + match_arg_163 = zone_1 + if match_arg_163.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_163.value if (nombre_personnes_a_charge_3 == integer_of_string("0")): - match_arg_115 = situation_familiale_calcul_apl_3 - if match_arg_115.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_115.value + match_arg_164 = situation_familiale_calcul_apl_3 + if match_arg_164.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_164.value return money_of_cents_string("46192") - elif match_arg_115.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_115.value + elif match_arg_164.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_164.value return money_of_cents_string("54152") else: if (nombre_personnes_a_charge_3 == @@ -7221,16 +8849,16 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ (money_of_cents_string("7368") * decimal_of_integer((nombre_personnes_a_charge_3 - integer_of_string("4"))))) - elif match_arg_114.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_114.value + elif match_arg_163.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_163.value if (nombre_personnes_a_charge_3 == integer_of_string("0")): - match_arg_116 = situation_familiale_calcul_apl_3 - if match_arg_116.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_116.value + match_arg_165 = situation_familiale_calcul_apl_3 + if match_arg_165.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_165.value return money_of_cents_string("42242") - elif match_arg_116.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_116.value + elif match_arg_165.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_165.value return money_of_cents_string("49299") else: if (nombre_personnes_a_charge_3 == @@ -7249,16 +8877,16 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ (money_of_cents_string("6659") * decimal_of_integer((nombre_personnes_a_charge_3 - integer_of_string("4"))))) - elif match_arg_114.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_114.value + elif match_arg_163.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_163.value if (nombre_personnes_a_charge_3 == integer_of_string("0")): - match_arg_117 = situation_familiale_calcul_apl_3 - if match_arg_117.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_117.value + match_arg_166 = situation_familiale_calcul_apl_3 + if match_arg_166.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_166.value return money_of_cents_string("40096") - elif match_arg_117.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_117.value + elif match_arg_166.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_166.value return money_of_cents_string("46634") else: if (nombre_personnes_a_charge_3 == @@ -7280,9 +8908,9 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ else: raise EmptyError temp_plafond_equivalence_loyer_eligible_5 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=684, + start_line=690, start_column=12, - end_line=684, end_column=46, + end_line=690, end_column=46, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -7294,48 +8922,37 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_plafond_equivalence_loyer_eligible_5 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=684, start_column=12, - end_line=684, end_column=46, + start_line=690, start_column=12, + end_line=690, end_column=46, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) plafond_equivalence_loyer_eligible = temp_plafond_equivalence_loyer_eligible_5 try: - def temp_traitement_aide_finale_minoration_forfaitaire_1(aide_finale_7:Money): - try: - if ((aide_finale_7 - montant_forfaitaire_d832_24) >= - money_of_cents_string("0")): - return (aide_finale_7 - montant_forfaitaire_d832_24) - else: - return money_of_cents_string("0") - except EmptyError: - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=707, - start_column=10, - end_line=707, - end_column=32, - law_headings=["Secteur logement-foyer", - "Calcul du montant de l'aide personnalisée au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"])) + if (date_courante_7 >= + date_of_numbers(2019,10,1)): + temp_coefficient_r_d832_25 = money_of_cents_string("121726") + else: + temp_coefficient_r_d832_25 = dead_value + raise EmptyError except EmptyError: - temp_traitement_aide_finale_minoration_forfaitaire_1 = dead_value + temp_coefficient_r_d832_25 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=707, start_column=10, - end_line=707, end_column=32, + start_line=687, start_column=12, + end_line=687, end_column=33, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) - traitement_aide_finale_minoration_forfaitaire_1 = temp_traitement_aide_finale_minoration_forfaitaire_1 + coefficient_r_d832_25 = temp_coefficient_r_d832_25 try: temp_calcul_nombre_parts_dot_condition_2_du_832_25 = condition_2_du_832_25_3 except EmptyError: temp_calcul_nombre_parts_dot_condition_2_du_832_25 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=3939, - start_column=14, end_line=3939, + start_line=3941, + start_column=14, end_line=3941, end_column=55, law_headings=["Article D832-25", "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer", @@ -7351,8 +8968,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_calcul_nombre_parts_dot_nombre_personnes_a_charge = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=3935, - start_column=14, end_line=3935, + start_line=3937, + start_column=14, end_line=3937, end_column=59, law_headings=["Article D832-25", "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer", @@ -7368,8 +8985,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_calcul_nombre_parts_dot_situation_familiale_calcul_apl = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=3937, - start_column=14, end_line=3937, + start_line=3939, + start_column=14, end_line=3939, end_column=64, law_headings=["Article D832-25", "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer", @@ -7385,8 +9002,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_calcul_nombre_parts_dot_residence = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=3941, - start_column=14, end_line=3941, + start_line=3943, + start_column=14, end_line=3943, end_column=43, law_headings=["Article D832-25", "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer", @@ -7412,35 +9029,73 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ limitation_majoration_personnes_a_charge_in = calcul_nombre_parts_dot_limitation_majoration_personnes_a_charge)) calcul_nombre_parts_dot_n_nombre_parts_d832_25 = result_2.n_nombre_parts_d832_25 try: - if condition_2_du_832_25_3: - temp_montant_forfaitaire_d832_27 = money_of_cents_string("1500") + if (date_courante_7 >= + date_of_numbers(2019,10,1)): + if condition_2_du_832_25_3: + temp_montant_forfaitaire_d832_27 = money_of_cents_string("1500") + else: + temp_montant_forfaitaire_d832_27 = money_of_cents_string("2668") else: - temp_montant_forfaitaire_d832_27 = money_of_cents_string("2668") + temp_montant_forfaitaire_d832_27 = dead_value + raise EmptyError except EmptyError: temp_montant_forfaitaire_d832_27 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=690, start_column=11, - end_line=690, end_column=38, + start_line=696, start_column=11, + end_line=696, end_column=38, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) montant_forfaitaire_d832_27 = temp_montant_forfaitaire_d832_27 try: - if condition_2_du_832_25_3: - temp_coefficient_multiplicateur_d832_25 = money_of_cents_string("2142091") + if (date_courante_7 >= + date_of_numbers(2019,10,1)): + if condition_2_du_832_25_3: + temp_coefficient_multiplicateur_d832_25 = money_of_cents_string("2142091") + else: + temp_coefficient_multiplicateur_d832_25 = money_of_cents_string("1339340") else: - temp_coefficient_multiplicateur_d832_25 = money_of_cents_string("1339340") + temp_coefficient_multiplicateur_d832_25 = dead_value + raise EmptyError except EmptyError: temp_coefficient_multiplicateur_d832_25 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=680, start_column=12, - end_line=680, end_column=46, + start_line=686, start_column=12, + end_line=686, end_column=46, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) coefficient_multiplicateur_d832_25 = temp_coefficient_multiplicateur_d832_25 + try: + def temp_traitement_aide_finale_minoration_forfaitaire_1(aide_finale_7:Money): + try: + if ((aide_finale_7 - montant_forfaitaire_d832_24) >= + money_of_cents_string("0")): + return (aide_finale_7 - montant_forfaitaire_d832_24) + else: + return money_of_cents_string("0") + except EmptyError: + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=714, + start_column=10, + end_line=714, + end_column=32, + law_headings=["Secteur logement-foyer", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"])) + except EmptyError: + temp_traitement_aide_finale_minoration_forfaitaire_1 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=714, start_column=10, + end_line=714, end_column=32, + law_headings=["Secteur logement-foyer", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"])) + traitement_aide_finale_minoration_forfaitaire_1 = temp_traitement_aide_finale_minoration_forfaitaire_1 try: if (redevance >= plafond_equivalence_loyer_eligible): @@ -7450,8 +9105,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_equivalence_loyer_eligible = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=683, start_column=12, - end_line=683, end_column=38, + start_line=689, start_column=12, + end_line=689, end_column=38, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -7465,8 +9120,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_n_nombre_parts_d832_25_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=682, start_column=21, - end_line=682, end_column=43, + start_line=688, start_column=21, + end_line=688, end_column=43, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -7478,9 +9133,9 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ return (equivalence_loyer_eligible - allocation_mensuelle) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=687, + start_line=693, start_column=11, - end_line=687, + end_line=693, end_column=41, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", @@ -7489,8 +9144,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_depense_nette_minimale_d832_27 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=687, start_column=11, - end_line=687, end_column=41, + start_line=693, start_column=11, + end_line=693, end_column=41, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -7501,8 +9156,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_date_courante = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=714, start_column=14, - end_line=714, end_column=61, + start_line=721, start_column=14, + end_line=721, end_column=61, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -7513,8 +9168,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_ressources_menage_arrondies = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=3768, - start_column=14, end_line=3768, + start_line=3770, + start_column=14, end_line=3770, end_column=75, law_headings=["Article D832-24", "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer", @@ -7530,8 +9185,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_condition_2_du_832_25 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=3766, - start_column=14, end_line=3766, + start_line=3768, + start_column=14, end_line=3768, end_column=69, law_headings=["Article D832-24", "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer", @@ -7547,8 +9202,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_n_nombre_parts_d832_25 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=3770, - start_column=14, end_line=3770, + start_line=3772, + start_column=14, end_line=3772, end_column=70, law_headings=["Article D832-24", "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer", @@ -7589,8 +9244,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_coefficient_prise_en_charge_d832_25_formule = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=701, start_column=10, - end_line=701, end_column=17, + start_line=707, start_column=10, + end_line=707, end_column=17, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -7607,9 +9262,9 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ return money_of_cents_string("0") except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=685, + start_line=691, start_column=11, - end_line=685, + end_line=691, end_column=52, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", @@ -7618,8 +9273,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_abattement_depense_nette_minimale_d832_27 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=685, start_column=11, - end_line=685, end_column=52, + start_line=691, start_column=11, + end_line=691, end_column=52, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -7630,8 +9285,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_equivalence_loyer_minimale = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=692, start_column=12, - end_line=692, end_column=38, + start_line=698, start_column=12, + end_line=698, end_column=38, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -7653,8 +9308,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_coefficient_prise_en_charge_d832_25_coeff_arrondi = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=702, start_column=10, - end_line=702, end_column=23, + start_line=708, start_column=10, + end_line=708, end_column=23, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -7676,9 +9331,9 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ return money_of_cents_string("0") except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=708, + start_line=715, start_column=10, - end_line=708, + end_line=715, end_column=20, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", @@ -7687,8 +9342,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_traitement_aide_finale_abattement = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=708, start_column=10, - end_line=708, end_column=20, + start_line=715, start_column=10, + end_line=715, end_column=20, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -7714,8 +9369,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_coefficient_prise_en_charge_d832_25_seuil = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=703, start_column=10, - end_line=703, end_column=15, + start_line=709, start_column=10, + end_line=709, end_column=15, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -7743,9 +9398,9 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ return money_of_cents_string("0") except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=709, + start_line=716, start_column=10, - end_line=709, + end_line=716, end_column=40, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", @@ -7754,8 +9409,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_traitement_aide_finale_contributions_sociales_arrondi_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=709, start_column=10, - end_line=709, end_column=40, + start_line=716, start_column=10, + end_line=716, end_column=40, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -7773,8 +9428,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_aide_finale_formule_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=705, start_column=12, - end_line=705, end_column=31, + start_line=711, start_column=12, + end_line=711, end_column=31, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -7792,9 +9447,9 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ aide_finale_10) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=710, + start_line=717, start_column=10, - end_line=710, + end_line=717, end_column=25, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", @@ -7803,8 +9458,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_traitement_aide_finale_montant_minimal_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=710, start_column=10, - end_line=710, end_column=25, + start_line=717, start_column=10, + end_line=717, end_column=25, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -7815,16 +9470,16 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp___9 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=718, start_column=13, - end_line=718, end_column=42, + start_line=725, start_column=13, + end_line=725, end_column=42, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) if not (temp___9): raise AssertionFailure(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=718, - start_column=13, end_line=718, + start_line=725, + start_column=13, end_line=725, end_column=42, law_headings=["Secteur logement-foyer", "Calcul du montant de l'aide personnalisée au logement", @@ -7855,98 +9510,14 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal type_pret = calcul_aide_personnalisee_logement_accession_propriete_in.type_pret_in anciennete_logement = calcul_aide_personnalisee_logement_accession_propriete_in.anciennete_logement_in date_courante_8 = calcul_aide_personnalisee_logement_accession_propriete_in.date_courante_in - try: - temp_montant_forfaitaire_d832_10 = money_of_cents_string("500") - except EmptyError: - temp_montant_forfaitaire_d832_10 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=766, start_column=11, - end_line=766, end_column=38, - law_headings=["Secteur accession à la propriété", - "Calcul du montant de l'aide personnalisée au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"])) - montant_forfaitaire_d832_10 = temp_montant_forfaitaire_d832_10 - try: - temp_montant_minimal_aide_d832_10 = money_of_cents_string("1000") - except EmptyError: - temp_montant_minimal_aide_d832_10 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=767, start_column=11, - end_line=767, end_column=39, - law_headings=["Secteur accession à la propriété", - "Calcul du montant de l'aide personnalisée au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"])) - montant_minimal_aide_d832_10 = temp_montant_minimal_aide_d832_10 - try: - temp_coefficient_multiplicateur_d832_11 = money_of_cents_string("2211133") - except EmptyError: - temp_coefficient_multiplicateur_d832_11 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=769, start_column=11, - end_line=769, end_column=45, - law_headings=["Secteur accession à la propriété", - "Calcul du montant de l'aide personnalisée au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"])) - coefficient_multiplicateur_d832_11 = temp_coefficient_multiplicateur_d832_11 - try: - temp_coefficient_multiplicateur_d832_18 = decimal_of_string("16.25") - except EmptyError: - temp_coefficient_multiplicateur_d832_18 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=770, start_column=11, - end_line=770, end_column=45, - law_headings=["Secteur accession à la propriété", - "Calcul du montant de l'aide personnalisée au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"])) - coefficient_multiplicateur_d832_18 = temp_coefficient_multiplicateur_d832_18 - try: - temp_montant_limite_tranches_d832_15_1 = money_of_cents_string("560085") - except EmptyError: - temp_montant_limite_tranches_d832_15_1 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=771, start_column=11, - end_line=771, end_column=44, - law_headings=["Secteur accession à la propriété", - "Calcul du montant de l'aide personnalisée au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"])) - montant_limite_tranches_d832_15_1 = temp_montant_limite_tranches_d832_15_1 - try: - temp_taux_tranche_inferieure_d832_15_1 = decimal_of_string("0.208") - except EmptyError: - temp_taux_tranche_inferieure_d832_15_1 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=772, start_column=11, - end_line=772, end_column=44, - law_headings=["Secteur accession à la propriété", - "Calcul du montant de l'aide personnalisée au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"])) - taux_tranche_inferieure_d832_15_1 = temp_taux_tranche_inferieure_d832_15_1 - try: - temp_taux_tranche_superieure_d832_15_1 = decimal_of_string("0.416") - except EmptyError: - temp_taux_tranche_superieure_d832_15_1 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=773, start_column=11, - end_line=773, end_column=44, - law_headings=["Secteur accession à la propriété", - "Calcul du montant de l'aide personnalisée au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"])) - taux_tranche_superieure_d832_15_1 = temp_taux_tranche_superieure_d832_15_1 try: temp_taux_francs_vers_euros = (decimal_of_string("1.") / decimal_of_string("6.55957")) except EmptyError: temp_taux_francs_vers_euros = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=774, start_column=11, - end_line=774, end_column=33, + start_line=781, start_column=11, + end_line=781, end_column=33, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -7957,8 +9528,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_calcul_nombre_parts_dot_nombre_personnes_a_charge_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=3276, - start_column=14, end_line=3276, + start_line=3278, + start_column=14, end_line=3278, end_column=59, law_headings=["Article D832-11", "Section 2 : Accession à la propriété", @@ -7973,8 +9544,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_calcul_nombre_parts_dot_situation_familiale_calcul_apl_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=3278, - start_column=14, end_line=3278, + start_line=3280, + start_column=14, end_line=3280, end_column=64, law_headings=["Article D832-11", "Section 2 : Accession à la propriété", @@ -7987,45 +9558,13 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal result_4 = calcul_nombre_parts_accession_propriete(CalculNombrePartsAccessionProprieteIn(nombre_personnes_a_charge_in = calcul_nombre_parts_dot_nombre_personnes_a_charge_1, situation_familiale_calcul_apl_in = calcul_nombre_parts_dot_situation_familiale_calcul_apl_1)) calcul_nombre_parts_dot_n_nombre_parts_d832_11 = result_4.n_nombre_parts_d832_11 - try: - match_arg_118 = anciennete_logement - if match_arg_118.code == NeufOuAncien_Code.Neuf: - _ = match_arg_118.value - if (date_signature_pret <= - date_of_numbers(1998,10,1)): - temp_coefficient_multiplicateur_d832_17_3 = decimal_of_string("0.0226") - else: - temp_coefficient_multiplicateur_d832_17_3 = decimal_of_string("0.0234") - elif match_arg_118.code == NeufOuAncien_Code.Ancien: - ameliore_par_occupant = match_arg_118.value - match_arg_119 = ameliore_par_occupant - if match_arg_119.code == AmelioreParOccupant_Code.Oui: - _ = match_arg_119.value - temp_coefficient_multiplicateur_d832_17_3 = decimal_of_string("0.0172") - elif match_arg_119.code == AmelioreParOccupant_Code.Non: - _ = match_arg_119.value - if (date_signature_pret <= - date_of_numbers(1998,10,1)): - temp_coefficient_multiplicateur_d832_17_3 = decimal_of_string("0.0226") - else: - temp_coefficient_multiplicateur_d832_17_3 = decimal_of_string("0.0234") - except EmptyError: - temp_coefficient_multiplicateur_d832_17_3 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=768, start_column=11, - end_line=768, end_column=47, - law_headings=["Secteur accession à la propriété", - "Calcul du montant de l'aide personnalisée au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"])) - coefficient_multiplicateur_d832_17_3 = temp_coefficient_multiplicateur_d832_17_3 try: temp_contributions_sociales_dot_date_courante_2 = date_courante_8 except EmptyError: temp_contributions_sociales_dot_date_courante_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=791, start_column=14, - end_line=791, end_column=50, + start_line=798, start_column=14, + end_line=798, end_column=50, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -8033,6 +9572,162 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal contributions_sociales_dot_date_courante_2 = temp_contributions_sociales_dot_date_courante_2 result_5 = contributions_sociales_aides_personnelle_logement(ContributionsSocialesAidesPersonnelleLogementIn(date_courante_in = contributions_sociales_dot_date_courante_2)) contributions_sociales_dot_montant_2 = result_5.montant + try: + if (date_courante_8 >= + date_of_numbers(2019,10,1)): + temp_taux_tranche_superieure_d832_15_1 = decimal_of_string("0.416") + else: + temp_taux_tranche_superieure_d832_15_1 = dead_value + raise EmptyError + except EmptyError: + temp_taux_tranche_superieure_d832_15_1 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=780, start_column=11, + end_line=780, end_column=44, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"])) + taux_tranche_superieure_d832_15_1 = temp_taux_tranche_superieure_d832_15_1 + try: + if (date_courante_8 >= + date_of_numbers(2019,10,1)): + temp_taux_tranche_inferieure_d832_15_1 = decimal_of_string("0.208") + else: + temp_taux_tranche_inferieure_d832_15_1 = dead_value + raise EmptyError + except EmptyError: + temp_taux_tranche_inferieure_d832_15_1 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=779, start_column=11, + end_line=779, end_column=44, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"])) + taux_tranche_inferieure_d832_15_1 = temp_taux_tranche_inferieure_d832_15_1 + try: + if (date_courante_8 >= + date_of_numbers(2019,10,1)): + temp_montant_limite_tranches_d832_15_1 = money_of_cents_string("560085") + else: + temp_montant_limite_tranches_d832_15_1 = dead_value + raise EmptyError + except EmptyError: + temp_montant_limite_tranches_d832_15_1 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=778, start_column=11, + end_line=778, end_column=44, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"])) + montant_limite_tranches_d832_15_1 = temp_montant_limite_tranches_d832_15_1 + try: + if (date_courante_8 >= + date_of_numbers(2019,10,1)): + temp_coefficient_multiplicateur_d832_18 = decimal_of_string("16.25") + else: + temp_coefficient_multiplicateur_d832_18 = dead_value + raise EmptyError + except EmptyError: + temp_coefficient_multiplicateur_d832_18 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=777, start_column=11, + end_line=777, end_column=45, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"])) + coefficient_multiplicateur_d832_18 = temp_coefficient_multiplicateur_d832_18 + try: + if (date_courante_8 >= + date_of_numbers(2019,10,1)): + temp_coefficient_multiplicateur_d832_11 = money_of_cents_string("2211133") + else: + temp_coefficient_multiplicateur_d832_11 = dead_value + raise EmptyError + except EmptyError: + temp_coefficient_multiplicateur_d832_11 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=776, start_column=11, + end_line=776, end_column=45, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"])) + coefficient_multiplicateur_d832_11 = temp_coefficient_multiplicateur_d832_11 + try: + if (date_courante_8 >= + date_of_numbers(2019,10,1)): + match_arg_167 = anciennete_logement + if match_arg_167.code == NeufOuAncien_Code.Neuf: + _ = match_arg_167.value + if (date_signature_pret <= + date_of_numbers(1998,10,1)): + temp_coefficient_multiplicateur_d832_17_3 = decimal_of_string("0.0226") + else: + temp_coefficient_multiplicateur_d832_17_3 = decimal_of_string("0.0234") + elif match_arg_167.code == NeufOuAncien_Code.Ancien: + ameliore_par_occupant = match_arg_167.value + match_arg_168 = ameliore_par_occupant + if match_arg_168.code == AmelioreParOccupant_Code.Oui: + _ = match_arg_168.value + temp_coefficient_multiplicateur_d832_17_3 = decimal_of_string("0.0172") + elif match_arg_168.code == AmelioreParOccupant_Code.Non: + _ = match_arg_168.value + if (date_signature_pret <= + date_of_numbers(1998,10,1)): + temp_coefficient_multiplicateur_d832_17_3 = decimal_of_string("0.0226") + else: + temp_coefficient_multiplicateur_d832_17_3 = decimal_of_string("0.0234") + else: + temp_coefficient_multiplicateur_d832_17_3 = dead_value + raise EmptyError + except EmptyError: + temp_coefficient_multiplicateur_d832_17_3 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=775, start_column=11, + end_line=775, end_column=47, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"])) + coefficient_multiplicateur_d832_17_3 = temp_coefficient_multiplicateur_d832_17_3 + try: + if (date_courante_8 >= + date_of_numbers(2019,10,1)): + temp_montant_minimal_aide_d832_10 = money_of_cents_string("1000") + else: + temp_montant_minimal_aide_d832_10 = dead_value + raise EmptyError + except EmptyError: + temp_montant_minimal_aide_d832_10 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=774, start_column=11, + end_line=774, end_column=39, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"])) + montant_minimal_aide_d832_10 = temp_montant_minimal_aide_d832_10 + try: + if (date_courante_8 >= + date_of_numbers(2019,10,1)): + temp_montant_forfaitaire_d832_10 = money_of_cents_string("500") + else: + temp_montant_forfaitaire_d832_10 = dead_value + raise EmptyError + except EmptyError: + temp_montant_forfaitaire_d832_10 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=773, start_column=11, + end_line=773, end_column=38, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"])) + montant_forfaitaire_d832_10 = temp_montant_forfaitaire_d832_10 try: try: def temp_montant_forfaitaire_charges_d832_10(_:Unit): @@ -8043,12 +9738,12 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal if (((date_courante_8 < date_of_numbers(2021,10,1)) and (date_courante_8 >= date_of_numbers(2020,10,1))) and copropriete): - match_arg_120 = situation_familiale_calcul_apl_4 - if match_arg_120.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_120.value + match_arg_169 = situation_familiale_calcul_apl_4 + if match_arg_169.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_169.value temp_montant_forfaitaire_charges_d832_10_3 = money_of_cents_string("2699") - elif match_arg_120.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_120.value + elif match_arg_169.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_169.value temp_montant_forfaitaire_charges_d832_10_3 = money_of_cents_string("5399") return (temp_montant_forfaitaire_charges_d832_10_3 + (money_of_cents_string("1224") * @@ -8059,12 +9754,12 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal if (((date_courante_8 >= date_of_numbers(2021,10,1)) and (date_courante_8 < date_of_numbers(2022,7,1))) and copropriete): - match_arg_121 = situation_familiale_calcul_apl_4 - if match_arg_121.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_121.value + match_arg_170 = situation_familiale_calcul_apl_4 + if match_arg_170.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_170.value temp_montant_forfaitaire_charges_d832_10_5 = money_of_cents_string("2710") - elif match_arg_121.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_121.value + elif match_arg_170.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_170.value temp_montant_forfaitaire_charges_d832_10_5 = money_of_cents_string("5422") return (temp_montant_forfaitaire_charges_d832_10_5 + (money_of_cents_string("1229") * @@ -8074,12 +9769,12 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal def temp_montant_forfaitaire_charges_d832_10_6(_:Unit): if ((date_courante_8 >= date_of_numbers(2022,7,1)) and copropriete): - match_arg_122 = situation_familiale_calcul_apl_4 - if match_arg_122.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_122.value + match_arg_171 = situation_familiale_calcul_apl_4 + if match_arg_171.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_171.value temp_montant_forfaitaire_charges_d832_10_7 = money_of_cents_string("2805") - elif match_arg_122.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_122.value + elif match_arg_171.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_171.value temp_montant_forfaitaire_charges_d832_10_7 = money_of_cents_string("5612") return (temp_montant_forfaitaire_charges_d832_10_7 + (money_of_cents_string("1272") * @@ -8088,7 +9783,7 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal raise EmptyError temp_montant_forfaitaire_charges_d832_10_8 = handle_default( SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=765, start_column=11, end_line=765, end_column=46, + start_line=772, start_column=11, end_line=772, end_column=46, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -8130,7 +9825,7 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal raise EmptyError temp_montant_forfaitaire_charges_d832_10_8 = handle_default( SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=765, start_column=11, end_line=765, end_column=46, + start_line=772, start_column=11, end_line=772, end_column=46, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -8142,65 +9837,13 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_montant_forfaitaire_charges_d832_10_8 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=765, start_column=11, - end_line=765, end_column=46, + start_line=772, start_column=11, + end_line=772, end_column=46, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) montant_forfaitaire_charges_d832_10 = temp_montant_forfaitaire_charges_d832_10_8 - try: - def temp_traitement_aide_finale_minoration_forfaitaire_2(aide_finale_11:Money): - try: - if ((aide_finale_11 - montant_forfaitaire_d832_10) >= - money_of_cents_string("0")): - return (aide_finale_11 - montant_forfaitaire_d832_10) - else: - return money_of_cents_string("0") - except EmptyError: - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=785, - start_column=10, - end_line=785, - end_column=32, - law_headings=["Secteur accession à la propriété", - "Calcul du montant de l'aide personnalisée au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"])) - except EmptyError: - temp_traitement_aide_finale_minoration_forfaitaire_2 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=785, start_column=10, - end_line=785, end_column=32, - law_headings=["Secteur accession à la propriété", - "Calcul du montant de l'aide personnalisée au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"])) - traitement_aide_finale_minoration_forfaitaire_2 = temp_traitement_aide_finale_minoration_forfaitaire_2 - try: - try: - if situation_r822_11_13_17: - temp_ressources_menage_avec_d832_18 = ressources_menage_arrondies_3 - else: - temp_ressources_menage_avec_d832_18 = dead_value - raise EmptyError - except EmptyError: - if (ressources_menage_arrondies_3 <= (mensualite_principale * - coefficient_multiplicateur_d832_18)): - temp_ressources_menage_avec_d832_18 = (mensualite_principale * - coefficient_multiplicateur_d832_18) - else: - temp_ressources_menage_avec_d832_18 = ressources_menage_arrondies_3 - except EmptyError: - temp_ressources_menage_avec_d832_18 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=764, start_column=11, - end_line=764, end_column=41, - law_headings=["Secteur accession à la propriété", - "Calcul du montant de l'aide personnalisée au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"])) - ressources_menage_avec_d832_18 = temp_ressources_menage_avec_d832_18 try: def temp_calcul_plafond_mensualite_d832_10_3(date_signature_pret_1:Date): try: @@ -8214,76 +9857,78 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal def temp_calcul_plafond_mensualite_d832_10_3_5(_:Unit): return False def temp_calcul_plafond_mensualite_d832_10_3_6(_:Unit): - match_arg_123 = type_pret - if match_arg_123.code == TypePret_Code.D331_32: - _ = match_arg_123.value + match_arg_172 = type_pret + if match_arg_172.code == TypePret_Code.D331_32: + _ = match_arg_172.value temp_calcul_plafond_mensualite_d832_10_3_7 = True - elif match_arg_123.code == TypePret_Code.D331_63_64: - _ = match_arg_123.value + elif match_arg_172.code == TypePret_Code.D331_63_64: + _ = match_arg_172.value temp_calcul_plafond_mensualite_d832_10_3_7 = False - elif match_arg_123.code == TypePret_Code.D331_59_8: - _ = match_arg_123.value + elif match_arg_172.code == TypePret_Code.D331_59_8: + _ = match_arg_172.value temp_calcul_plafond_mensualite_d832_10_3_7 = False - elif match_arg_123.code == TypePret_Code.D331_76_1: - _ = match_arg_123.value + elif match_arg_172.code == TypePret_Code.D331_76_1: + _ = match_arg_172.value temp_calcul_plafond_mensualite_d832_10_3_7 = False - elif match_arg_123.code == TypePret_Code.Autre: - _ = match_arg_123.value + elif match_arg_172.code == TypePret_Code.Autre: + _ = match_arg_172.value temp_calcul_plafond_mensualite_d832_10_3_7 = False - match_arg_124 = anciennete_logement - if match_arg_124.code == NeufOuAncien_Code.Neuf: - _ = match_arg_124.value + match_arg_173 = anciennete_logement + if match_arg_173.code == NeufOuAncien_Code.Neuf: + _ = match_arg_173.value temp_calcul_plafond_mensualite_d832_10_3_8 = False - elif match_arg_124.code == NeufOuAncien_Code.Ancien: - _ = match_arg_124.value + elif match_arg_173.code == NeufOuAncien_Code.Ancien: + _ = match_arg_173.value temp_calcul_plafond_mensualite_d832_10_3_8 = True - if ((date_signature_pret_1 >= + if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_signature_pret_1 >= date_of_numbers(1994,11,27)) and (temp_calcul_plafond_mensualite_d832_10_3_8 and - temp_calcul_plafond_mensualite_d832_10_3_7)): - match_arg_125 = zone_2 - if match_arg_125.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_125.value + temp_calcul_plafond_mensualite_d832_10_3_7))): + match_arg_174 = zone_2 + if match_arg_174.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_174.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_126 = situation_familiale_calcul_apl_4 - if match_arg_126.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_126.value + match_arg_175 = situation_familiale_calcul_apl_4 + if match_arg_175.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_175.value temp_calcul_plafond_mensualite_d832_10_3_9 = money_of_cents_string("148100") - elif match_arg_126.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_126.value + elif match_arg_175.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_175.value temp_calcul_plafond_mensualite_d832_10_3_9 = money_of_cents_string("178700") else: temp_calcul_plafond_mensualite_d832_10_3_9 = (money_of_cents_string("209300") + (money_of_cents_string("30600") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_125.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_125.value + elif match_arg_174.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_174.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_127 = situation_familiale_calcul_apl_4 - if match_arg_127.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_127.value + match_arg_176 = situation_familiale_calcul_apl_4 + if match_arg_176.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_176.value temp_calcul_plafond_mensualite_d832_10_3_9 = money_of_cents_string("132000") - elif match_arg_127.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_127.value + elif match_arg_176.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_176.value temp_calcul_plafond_mensualite_d832_10_3_9 = money_of_cents_string("158900") else: temp_calcul_plafond_mensualite_d832_10_3_9 = (money_of_cents_string("185800") + (money_of_cents_string("26900") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_125.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_125.value + elif match_arg_174.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_174.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_128 = situation_familiale_calcul_apl_4 - if match_arg_128.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_128.value + match_arg_177 = situation_familiale_calcul_apl_4 + if match_arg_177.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_177.value temp_calcul_plafond_mensualite_d832_10_3_9 = money_of_cents_string("123300") - elif match_arg_128.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_128.value + elif match_arg_177.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_177.value temp_calcul_plafond_mensualite_d832_10_3_9 = money_of_cents_string("147900") else: temp_calcul_plafond_mensualite_d832_10_3_9 = (money_of_cents_string("172500") + @@ -8295,76 +9940,78 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_10(_:Unit): - match_arg_129 = type_pret - if match_arg_129.code == TypePret_Code.D331_32: - _ = match_arg_129.value + match_arg_178 = type_pret + if match_arg_178.code == TypePret_Code.D331_32: + _ = match_arg_178.value temp_calcul_plafond_mensualite_d832_10_3_11 = True - elif match_arg_129.code == TypePret_Code.D331_63_64: - _ = match_arg_129.value + elif match_arg_178.code == TypePret_Code.D331_63_64: + _ = match_arg_178.value temp_calcul_plafond_mensualite_d832_10_3_11 = False - elif match_arg_129.code == TypePret_Code.D331_59_8: - _ = match_arg_129.value + elif match_arg_178.code == TypePret_Code.D331_59_8: + _ = match_arg_178.value temp_calcul_plafond_mensualite_d832_10_3_11 = False - elif match_arg_129.code == TypePret_Code.D331_76_1: - _ = match_arg_129.value + elif match_arg_178.code == TypePret_Code.D331_76_1: + _ = match_arg_178.value temp_calcul_plafond_mensualite_d832_10_3_11 = False - elif match_arg_129.code == TypePret_Code.Autre: - _ = match_arg_129.value + elif match_arg_178.code == TypePret_Code.Autre: + _ = match_arg_178.value temp_calcul_plafond_mensualite_d832_10_3_11 = False - match_arg_130 = anciennete_logement - if match_arg_130.code == NeufOuAncien_Code.Neuf: - _ = match_arg_130.value + match_arg_179 = anciennete_logement + if match_arg_179.code == NeufOuAncien_Code.Neuf: + _ = match_arg_179.value temp_calcul_plafond_mensualite_d832_10_3_12 = True - elif match_arg_130.code == NeufOuAncien_Code.Ancien: - _ = match_arg_130.value + elif match_arg_179.code == NeufOuAncien_Code.Ancien: + _ = match_arg_179.value temp_calcul_plafond_mensualite_d832_10_3_12 = False - if ((date_signature_pret_1 >= + if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_signature_pret_1 >= date_of_numbers(1994,11,27)) and (temp_calcul_plafond_mensualite_d832_10_3_12 and - temp_calcul_plafond_mensualite_d832_10_3_11)): - match_arg_131 = zone_2 - if match_arg_131.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_131.value + temp_calcul_plafond_mensualite_d832_10_3_11))): + match_arg_180 = zone_2 + if match_arg_180.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_180.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_132 = situation_familiale_calcul_apl_4 - if match_arg_132.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_132.value + match_arg_181 = situation_familiale_calcul_apl_4 + if match_arg_181.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_181.value temp_calcul_plafond_mensualite_d832_10_3_13 = money_of_cents_string("184000") - elif match_arg_132.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_132.value + elif match_arg_181.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_181.value temp_calcul_plafond_mensualite_d832_10_3_13 = money_of_cents_string("220000") else: temp_calcul_plafond_mensualite_d832_10_3_13 = (money_of_cents_string("260000") + (money_of_cents_string("38000") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_131.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_131.value + elif match_arg_180.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_180.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_133 = situation_familiale_calcul_apl_4 - if match_arg_133.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_133.value + match_arg_182 = situation_familiale_calcul_apl_4 + if match_arg_182.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_182.value temp_calcul_plafond_mensualite_d832_10_3_13 = money_of_cents_string("164200") - elif match_arg_133.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_133.value + elif match_arg_182.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_182.value temp_calcul_plafond_mensualite_d832_10_3_13 = money_of_cents_string("197700") else: temp_calcul_plafond_mensualite_d832_10_3_13 = (money_of_cents_string("231200") + (money_of_cents_string("33500") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_131.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_131.value + elif match_arg_180.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_180.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_134 = situation_familiale_calcul_apl_4 - if match_arg_134.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_134.value + match_arg_183 = situation_familiale_calcul_apl_4 + if match_arg_183.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_183.value temp_calcul_plafond_mensualite_d832_10_3_13 = money_of_cents_string("153200") - elif match_arg_134.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_134.value + elif match_arg_183.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_183.value temp_calcul_plafond_mensualite_d832_10_3_13 = money_of_cents_string("183700") else: temp_calcul_plafond_mensualite_d832_10_3_13 = (money_of_cents_string("214200") + @@ -8376,78 +10023,80 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_14(_:Unit): - match_arg_135 = type_pret - if match_arg_135.code == TypePret_Code.D331_32: - _ = match_arg_135.value + match_arg_184 = type_pret + if match_arg_184.code == TypePret_Code.D331_32: + _ = match_arg_184.value temp_calcul_plafond_mensualite_d832_10_3_15 = True - elif match_arg_135.code == TypePret_Code.D331_63_64: - _ = match_arg_135.value + elif match_arg_184.code == TypePret_Code.D331_63_64: + _ = match_arg_184.value temp_calcul_plafond_mensualite_d832_10_3_15 = False - elif match_arg_135.code == TypePret_Code.D331_59_8: - _ = match_arg_135.value + elif match_arg_184.code == TypePret_Code.D331_59_8: + _ = match_arg_184.value temp_calcul_plafond_mensualite_d832_10_3_15 = False - elif match_arg_135.code == TypePret_Code.D331_76_1: - _ = match_arg_135.value + elif match_arg_184.code == TypePret_Code.D331_76_1: + _ = match_arg_184.value temp_calcul_plafond_mensualite_d832_10_3_15 = False - elif match_arg_135.code == TypePret_Code.Autre: - _ = match_arg_135.value + elif match_arg_184.code == TypePret_Code.Autre: + _ = match_arg_184.value temp_calcul_plafond_mensualite_d832_10_3_15 = False - match_arg_136 = anciennete_logement - if match_arg_136.code == NeufOuAncien_Code.Neuf: - _ = match_arg_136.value + match_arg_185 = anciennete_logement + if match_arg_185.code == NeufOuAncien_Code.Neuf: + _ = match_arg_185.value temp_calcul_plafond_mensualite_d832_10_3_16 = False - elif match_arg_136.code == NeufOuAncien_Code.Ancien: - _ = match_arg_136.value + elif match_arg_185.code == NeufOuAncien_Code.Ancien: + _ = match_arg_185.value temp_calcul_plafond_mensualite_d832_10_3_16 = True - if ((date_signature_pret_1 >= + if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_signature_pret_1 >= date_of_numbers(1992,6,30)) and ((date_signature_pret_1 < date_of_numbers(1994,11,27)) and (temp_calcul_plafond_mensualite_d832_10_3_16 and - temp_calcul_plafond_mensualite_d832_10_3_15))): - match_arg_137 = zone_2 - if match_arg_137.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_137.value + temp_calcul_plafond_mensualite_d832_10_3_15)))): + match_arg_186 = zone_2 + if match_arg_186.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_186.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_138 = situation_familiale_calcul_apl_4 - if match_arg_138.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_138.value + match_arg_187 = situation_familiale_calcul_apl_4 + if match_arg_187.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_187.value temp_calcul_plafond_mensualite_d832_10_3_17 = money_of_cents_string("167800") - elif match_arg_138.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_138.value + elif match_arg_187.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_187.value temp_calcul_plafond_mensualite_d832_10_3_17 = money_of_cents_string("202500") else: temp_calcul_plafond_mensualite_d832_10_3_17 = (money_of_cents_string("237200") + (money_of_cents_string("34700") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_137.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_137.value + elif match_arg_186.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_186.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_139 = situation_familiale_calcul_apl_4 - if match_arg_139.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_139.value + match_arg_188 = situation_familiale_calcul_apl_4 + if match_arg_188.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_188.value temp_calcul_plafond_mensualite_d832_10_3_17 = money_of_cents_string("149600") - elif match_arg_139.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_139.value + elif match_arg_188.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_188.value temp_calcul_plafond_mensualite_d832_10_3_17 = money_of_cents_string("180100") else: temp_calcul_plafond_mensualite_d832_10_3_17 = (money_of_cents_string("210600") + (money_of_cents_string("30500") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_137.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_137.value + elif match_arg_186.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_186.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_140 = situation_familiale_calcul_apl_4 - if match_arg_140.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_140.value + match_arg_189 = situation_familiale_calcul_apl_4 + if match_arg_189.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_189.value temp_calcul_plafond_mensualite_d832_10_3_17 = money_of_cents_string("139700") - elif match_arg_140.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_140.value + elif match_arg_189.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_189.value temp_calcul_plafond_mensualite_d832_10_3_17 = money_of_cents_string("167600") else: temp_calcul_plafond_mensualite_d832_10_3_17 = (money_of_cents_string("195500") + @@ -8459,78 +10108,80 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_18(_:Unit): - match_arg_141 = type_pret - if match_arg_141.code == TypePret_Code.D331_32: - _ = match_arg_141.value + match_arg_190 = type_pret + if match_arg_190.code == TypePret_Code.D331_32: + _ = match_arg_190.value temp_calcul_plafond_mensualite_d832_10_3_19 = True - elif match_arg_141.code == TypePret_Code.D331_63_64: - _ = match_arg_141.value + elif match_arg_190.code == TypePret_Code.D331_63_64: + _ = match_arg_190.value temp_calcul_plafond_mensualite_d832_10_3_19 = False - elif match_arg_141.code == TypePret_Code.D331_59_8: - _ = match_arg_141.value + elif match_arg_190.code == TypePret_Code.D331_59_8: + _ = match_arg_190.value temp_calcul_plafond_mensualite_d832_10_3_19 = False - elif match_arg_141.code == TypePret_Code.D331_76_1: - _ = match_arg_141.value + elif match_arg_190.code == TypePret_Code.D331_76_1: + _ = match_arg_190.value temp_calcul_plafond_mensualite_d832_10_3_19 = False - elif match_arg_141.code == TypePret_Code.Autre: - _ = match_arg_141.value + elif match_arg_190.code == TypePret_Code.Autre: + _ = match_arg_190.value temp_calcul_plafond_mensualite_d832_10_3_19 = False - match_arg_142 = anciennete_logement - if match_arg_142.code == NeufOuAncien_Code.Neuf: - _ = match_arg_142.value + match_arg_191 = anciennete_logement + if match_arg_191.code == NeufOuAncien_Code.Neuf: + _ = match_arg_191.value temp_calcul_plafond_mensualite_d832_10_3_20 = True - elif match_arg_142.code == NeufOuAncien_Code.Ancien: - _ = match_arg_142.value + elif match_arg_191.code == NeufOuAncien_Code.Ancien: + _ = match_arg_191.value temp_calcul_plafond_mensualite_d832_10_3_20 = False - if ((date_signature_pret_1 >= + if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_signature_pret_1 >= date_of_numbers(1992,6,30)) and ((date_signature_pret_1 < date_of_numbers(1994,11,27)) and (temp_calcul_plafond_mensualite_d832_10_3_20 and - temp_calcul_plafond_mensualite_d832_10_3_19))): - match_arg_143 = zone_2 - if match_arg_143.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_143.value + temp_calcul_plafond_mensualite_d832_10_3_19)))): + match_arg_192 = zone_2 + if match_arg_192.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_192.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_144 = situation_familiale_calcul_apl_4 - if match_arg_144.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_144.value + match_arg_193 = situation_familiale_calcul_apl_4 + if match_arg_193.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_193.value temp_calcul_plafond_mensualite_d832_10_3_21 = money_of_cents_string("208500") - elif match_arg_144.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_144.value + elif match_arg_193.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_193.value temp_calcul_plafond_mensualite_d832_10_3_21 = money_of_cents_string("251500") else: temp_calcul_plafond_mensualite_d832_10_3_21 = (money_of_cents_string("294500") + (money_of_cents_string("43000") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_143.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_143.value + elif match_arg_192.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_192.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_145 = situation_familiale_calcul_apl_4 - if match_arg_145.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_145.value + match_arg_194 = situation_familiale_calcul_apl_4 + if match_arg_194.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_194.value temp_calcul_plafond_mensualite_d832_10_3_21 = money_of_cents_string("186000") - elif match_arg_145.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_145.value + elif match_arg_194.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_194.value temp_calcul_plafond_mensualite_d832_10_3_21 = money_of_cents_string("223900") else: temp_calcul_plafond_mensualite_d832_10_3_21 = (money_of_cents_string("261800") + (money_of_cents_string("37900") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_143.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_143.value + elif match_arg_192.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_192.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_146 = situation_familiale_calcul_apl_4 - if match_arg_146.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_146.value + match_arg_195 = situation_familiale_calcul_apl_4 + if match_arg_195.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_195.value temp_calcul_plafond_mensualite_d832_10_3_21 = money_of_cents_string("173600") - elif match_arg_146.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_146.value + elif match_arg_195.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_195.value temp_calcul_plafond_mensualite_d832_10_3_21 = money_of_cents_string("208200") else: temp_calcul_plafond_mensualite_d832_10_3_21 = (money_of_cents_string("242800") + @@ -8542,8 +10193,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError return handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=753, start_column=11, - end_line=753, end_column=46, + start_line=760, start_column=11, + end_line=760, end_column=46, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -8555,51 +10206,53 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal temp_calcul_plafond_mensualite_d832_10_3_4) def temp_calcul_plafond_mensualite_d832_10_3_22(_:Unit): try: - match_arg_147 = type_pret - if match_arg_147.code == TypePret_Code.D331_32: - _ = match_arg_147.value + match_arg_196 = type_pret + if match_arg_196.code == TypePret_Code.D331_32: + _ = match_arg_196.value temp_calcul_plafond_mensualite_d832_10_3_23 = False - elif match_arg_147.code == TypePret_Code.D331_63_64: - _ = match_arg_147.value + elif match_arg_196.code == TypePret_Code.D331_63_64: + _ = match_arg_196.value temp_calcul_plafond_mensualite_d832_10_3_23 = True - elif match_arg_147.code == TypePret_Code.D331_59_8: - _ = match_arg_147.value + elif match_arg_196.code == TypePret_Code.D331_59_8: + _ = match_arg_196.value temp_calcul_plafond_mensualite_d832_10_3_23 = False - elif match_arg_147.code == TypePret_Code.D331_76_1: - _ = match_arg_147.value + elif match_arg_196.code == TypePret_Code.D331_76_1: + _ = match_arg_196.value temp_calcul_plafond_mensualite_d832_10_3_23 = False - elif match_arg_147.code == TypePret_Code.Autre: - _ = match_arg_147.value + elif match_arg_196.code == TypePret_Code.Autre: + _ = match_arg_196.value temp_calcul_plafond_mensualite_d832_10_3_23 = False - match_arg_148 = anciennete_logement - if match_arg_148.code == NeufOuAncien_Code.Neuf: - _ = match_arg_148.value + match_arg_197 = anciennete_logement + if match_arg_197.code == NeufOuAncien_Code.Neuf: + _ = match_arg_197.value temp_calcul_plafond_mensualite_d832_10_3_24 = False - elif match_arg_148.code == NeufOuAncien_Code.Ancien: - ameliore_par_occupant_1 = match_arg_148.value - match_arg_149 = ameliore_par_occupant_1 - if match_arg_149.code == AmelioreParOccupant_Code.Oui: - _ = match_arg_149.value + elif match_arg_197.code == NeufOuAncien_Code.Ancien: + ameliore_par_occupant_1 = match_arg_197.value + match_arg_198 = ameliore_par_occupant_1 + if match_arg_198.code == AmelioreParOccupant_Code.Oui: + _ = match_arg_198.value temp_calcul_plafond_mensualite_d832_10_3_24 = True - elif match_arg_149.code == AmelioreParOccupant_Code.Non: - _ = match_arg_149.value + elif match_arg_198.code == AmelioreParOccupant_Code.Non: + _ = match_arg_198.value temp_calcul_plafond_mensualite_d832_10_3_24 = False if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2023,1,1)) and ((date_signature_pret_1 >= date_of_numbers(1992,6,30)) and ((date_signature_pret_1 <= date_of_numbers(1994,11,27)) and (temp_calcul_plafond_mensualite_d832_10_3_24 and - temp_calcul_plafond_mensualite_d832_10_3_23)))): + temp_calcul_plafond_mensualite_d832_10_3_23))))): if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_150 = situation_familiale_calcul_apl_4 - if match_arg_150.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_150.value + match_arg_199 = situation_familiale_calcul_apl_4 + if match_arg_199.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_199.value temp_calcul_plafond_mensualite_d832_10_3_25 = money_of_cents_string("86900") - elif match_arg_150.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_150.value + elif match_arg_199.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_199.value temp_calcul_plafond_mensualite_d832_10_3_25 = money_of_cents_string("97100") else: temp_calcul_plafond_mensualite_d832_10_3_25 = (money_of_cents_string("107300") + @@ -8616,78 +10269,80 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal def temp_calcul_plafond_mensualite_d832_10_3_27(_:Unit): return False def temp_calcul_plafond_mensualite_d832_10_3_28(_:Unit): - match_arg_151 = type_pret - if match_arg_151.code == TypePret_Code.D331_32: - _ = match_arg_151.value + match_arg_200 = type_pret + if match_arg_200.code == TypePret_Code.D331_32: + _ = match_arg_200.value temp_calcul_plafond_mensualite_d832_10_3_29 = False - elif match_arg_151.code == TypePret_Code.D331_63_64: - _ = match_arg_151.value + elif match_arg_200.code == TypePret_Code.D331_63_64: + _ = match_arg_200.value temp_calcul_plafond_mensualite_d832_10_3_29 = True - elif match_arg_151.code == TypePret_Code.D331_59_8: - _ = match_arg_151.value + elif match_arg_200.code == TypePret_Code.D331_59_8: + _ = match_arg_200.value temp_calcul_plafond_mensualite_d832_10_3_29 = False - elif match_arg_151.code == TypePret_Code.D331_76_1: - _ = match_arg_151.value + elif match_arg_200.code == TypePret_Code.D331_76_1: + _ = match_arg_200.value temp_calcul_plafond_mensualite_d832_10_3_29 = False - elif match_arg_151.code == TypePret_Code.Autre: - _ = match_arg_151.value + elif match_arg_200.code == TypePret_Code.Autre: + _ = match_arg_200.value temp_calcul_plafond_mensualite_d832_10_3_29 = False - match_arg_152 = anciennete_logement - if match_arg_152.code == NeufOuAncien_Code.Neuf: - _ = match_arg_152.value + match_arg_201 = anciennete_logement + if match_arg_201.code == NeufOuAncien_Code.Neuf: + _ = match_arg_201.value temp_calcul_plafond_mensualite_d832_10_3_30 = False - elif match_arg_152.code == NeufOuAncien_Code.Ancien: - _ = match_arg_152.value + elif match_arg_201.code == NeufOuAncien_Code.Ancien: + _ = match_arg_201.value temp_calcul_plafond_mensualite_d832_10_3_30 = True if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2019,9,30)) and (temp_calcul_plafond_mensualite_d832_10_3_30 and - temp_calcul_plafond_mensualite_d832_10_3_29))): - match_arg_153 = zone_2 - if match_arg_153.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_153.value + temp_calcul_plafond_mensualite_d832_10_3_29)))): + match_arg_202 = zone_2 + if match_arg_202.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_202.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_154 = situation_familiale_calcul_apl_4 - if match_arg_154.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_154.value + match_arg_203 = situation_familiale_calcul_apl_4 + if match_arg_203.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_203.value return money_of_cents_string("29986") - elif match_arg_154.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_154.value + elif match_arg_203.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_203.value return money_of_cents_string("36187") else: return (money_of_cents_string("42386") + (money_of_cents_string("6201") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_153.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_153.value + elif match_arg_202.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_202.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_155 = situation_familiale_calcul_apl_4 - if match_arg_155.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_155.value + match_arg_204 = situation_familiale_calcul_apl_4 + if match_arg_204.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_204.value return money_of_cents_string("26730") - elif match_arg_155.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_155.value + elif match_arg_204.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_204.value return money_of_cents_string("32193") else: return (money_of_cents_string("37656") + (money_of_cents_string("5463") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_153.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_153.value + elif match_arg_202.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_202.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_156 = situation_familiale_calcul_apl_4 - if match_arg_156.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_156.value + match_arg_205 = situation_familiale_calcul_apl_4 + if match_arg_205.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_205.value return money_of_cents_string("24964") - elif match_arg_156.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_156.value + elif match_arg_205.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_205.value return money_of_cents_string("29948") else: return (money_of_cents_string("34934") + @@ -8697,78 +10352,80 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_31(_:Unit): - match_arg_157 = type_pret - if match_arg_157.code == TypePret_Code.D331_32: - _ = match_arg_157.value + match_arg_206 = type_pret + if match_arg_206.code == TypePret_Code.D331_32: + _ = match_arg_206.value temp_calcul_plafond_mensualite_d832_10_3_32 = False - elif match_arg_157.code == TypePret_Code.D331_63_64: - _ = match_arg_157.value + elif match_arg_206.code == TypePret_Code.D331_63_64: + _ = match_arg_206.value temp_calcul_plafond_mensualite_d832_10_3_32 = True - elif match_arg_157.code == TypePret_Code.D331_59_8: - _ = match_arg_157.value + elif match_arg_206.code == TypePret_Code.D331_59_8: + _ = match_arg_206.value temp_calcul_plafond_mensualite_d832_10_3_32 = False - elif match_arg_157.code == TypePret_Code.D331_76_1: - _ = match_arg_157.value + elif match_arg_206.code == TypePret_Code.D331_76_1: + _ = match_arg_206.value temp_calcul_plafond_mensualite_d832_10_3_32 = False - elif match_arg_157.code == TypePret_Code.Autre: - _ = match_arg_157.value + elif match_arg_206.code == TypePret_Code.Autre: + _ = match_arg_206.value temp_calcul_plafond_mensualite_d832_10_3_32 = False - match_arg_158 = anciennete_logement - if match_arg_158.code == NeufOuAncien_Code.Neuf: - _ = match_arg_158.value + match_arg_207 = anciennete_logement + if match_arg_207.code == NeufOuAncien_Code.Neuf: + _ = match_arg_207.value temp_calcul_plafond_mensualite_d832_10_3_33 = True - elif match_arg_158.code == NeufOuAncien_Code.Ancien: - _ = match_arg_158.value + elif match_arg_207.code == NeufOuAncien_Code.Ancien: + _ = match_arg_207.value temp_calcul_plafond_mensualite_d832_10_3_33 = False if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2019,9,30)) and (temp_calcul_plafond_mensualite_d832_10_3_33 and - temp_calcul_plafond_mensualite_d832_10_3_32))): - match_arg_159 = zone_2 - if match_arg_159.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_159.value + temp_calcul_plafond_mensualite_d832_10_3_32)))): + match_arg_208 = zone_2 + if match_arg_208.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_208.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_160 = situation_familiale_calcul_apl_4 - if match_arg_160.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_160.value + match_arg_209 = situation_familiale_calcul_apl_4 + if match_arg_209.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_209.value return money_of_cents_string("37252") - elif match_arg_160.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_160.value + elif match_arg_209.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_209.value return money_of_cents_string("44941") else: return (money_of_cents_string("52629") + (money_of_cents_string("7687") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_159.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_159.value + elif match_arg_208.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_208.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_161 = situation_familiale_calcul_apl_4 - if match_arg_161.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_161.value + match_arg_210 = situation_familiale_calcul_apl_4 + if match_arg_210.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_210.value return money_of_cents_string("33244") - elif match_arg_161.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_161.value + elif match_arg_210.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_210.value return money_of_cents_string("40013") else: return (money_of_cents_string("46783") + (money_of_cents_string("6768") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_159.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_159.value + elif match_arg_208.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_208.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_162 = situation_familiale_calcul_apl_4 - if match_arg_162.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_162.value + match_arg_211 = situation_familiale_calcul_apl_4 + if match_arg_211.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_211.value return money_of_cents_string("31036") - elif match_arg_162.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_162.value + elif match_arg_211.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_211.value return money_of_cents_string("37215") else: return (money_of_cents_string("43394") + @@ -8778,80 +10435,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_34(_:Unit): - match_arg_163 = type_pret - if match_arg_163.code == TypePret_Code.D331_32: - _ = match_arg_163.value + match_arg_212 = type_pret + if match_arg_212.code == TypePret_Code.D331_32: + _ = match_arg_212.value temp_calcul_plafond_mensualite_d832_10_3_35 = False - elif match_arg_163.code == TypePret_Code.D331_63_64: - _ = match_arg_163.value + elif match_arg_212.code == TypePret_Code.D331_63_64: + _ = match_arg_212.value temp_calcul_plafond_mensualite_d832_10_3_35 = True - elif match_arg_163.code == TypePret_Code.D331_59_8: - _ = match_arg_163.value + elif match_arg_212.code == TypePret_Code.D331_59_8: + _ = match_arg_212.value temp_calcul_plafond_mensualite_d832_10_3_35 = False - elif match_arg_163.code == TypePret_Code.D331_76_1: - _ = match_arg_163.value + elif match_arg_212.code == TypePret_Code.D331_76_1: + _ = match_arg_212.value temp_calcul_plafond_mensualite_d832_10_3_35 = False - elif match_arg_163.code == TypePret_Code.Autre: - _ = match_arg_163.value + elif match_arg_212.code == TypePret_Code.Autre: + _ = match_arg_212.value temp_calcul_plafond_mensualite_d832_10_3_35 = False - match_arg_164 = anciennete_logement - if match_arg_164.code == NeufOuAncien_Code.Neuf: - _ = match_arg_164.value + match_arg_213 = anciennete_logement + if match_arg_213.code == NeufOuAncien_Code.Neuf: + _ = match_arg_213.value temp_calcul_plafond_mensualite_d832_10_3_36 = False - elif match_arg_164.code == NeufOuAncien_Code.Ancien: - _ = match_arg_164.value + elif match_arg_213.code == NeufOuAncien_Code.Ancien: + _ = match_arg_213.value temp_calcul_plafond_mensualite_d832_10_3_36 = True if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2017,9,30)) and ((date_signature_pret_1 < date_of_numbers(2019,9,30)) and (temp_calcul_plafond_mensualite_d832_10_3_36 and - temp_calcul_plafond_mensualite_d832_10_3_35)))): - match_arg_165 = zone_2 - if match_arg_165.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_165.value + temp_calcul_plafond_mensualite_d832_10_3_35))))): + match_arg_214 = zone_2 + if match_arg_214.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_214.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_166 = situation_familiale_calcul_apl_4 - if match_arg_166.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_166.value + match_arg_215 = situation_familiale_calcul_apl_4 + if match_arg_215.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_215.value return money_of_cents_string("29897") - elif match_arg_166.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_166.value + elif match_arg_215.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_215.value return money_of_cents_string("36079") else: return (money_of_cents_string("42260") + (money_of_cents_string("6182") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_165.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_165.value + elif match_arg_214.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_214.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_167 = situation_familiale_calcul_apl_4 - if match_arg_167.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_167.value + match_arg_216 = situation_familiale_calcul_apl_4 + if match_arg_216.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_216.value return money_of_cents_string("26650") - elif match_arg_167.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_167.value + elif match_arg_216.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_216.value return money_of_cents_string("32097") else: return (money_of_cents_string("37543") + (money_of_cents_string("5447") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_165.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_165.value + elif match_arg_214.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_214.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_168 = situation_familiale_calcul_apl_4 - if match_arg_168.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_168.value + match_arg_217 = situation_familiale_calcul_apl_4 + if match_arg_217.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_217.value return money_of_cents_string("24889") - elif match_arg_168.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_168.value + elif match_arg_217.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_217.value return money_of_cents_string("29858") else: return (money_of_cents_string("34829") + @@ -8861,80 +10520,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_37(_:Unit): - match_arg_169 = type_pret - if match_arg_169.code == TypePret_Code.D331_32: - _ = match_arg_169.value + match_arg_218 = type_pret + if match_arg_218.code == TypePret_Code.D331_32: + _ = match_arg_218.value temp_calcul_plafond_mensualite_d832_10_3_38 = False - elif match_arg_169.code == TypePret_Code.D331_63_64: - _ = match_arg_169.value + elif match_arg_218.code == TypePret_Code.D331_63_64: + _ = match_arg_218.value temp_calcul_plafond_mensualite_d832_10_3_38 = True - elif match_arg_169.code == TypePret_Code.D331_59_8: - _ = match_arg_169.value + elif match_arg_218.code == TypePret_Code.D331_59_8: + _ = match_arg_218.value temp_calcul_plafond_mensualite_d832_10_3_38 = False - elif match_arg_169.code == TypePret_Code.D331_76_1: - _ = match_arg_169.value + elif match_arg_218.code == TypePret_Code.D331_76_1: + _ = match_arg_218.value temp_calcul_plafond_mensualite_d832_10_3_38 = False - elif match_arg_169.code == TypePret_Code.Autre: - _ = match_arg_169.value + elif match_arg_218.code == TypePret_Code.Autre: + _ = match_arg_218.value temp_calcul_plafond_mensualite_d832_10_3_38 = False - match_arg_170 = anciennete_logement - if match_arg_170.code == NeufOuAncien_Code.Neuf: - _ = match_arg_170.value + match_arg_219 = anciennete_logement + if match_arg_219.code == NeufOuAncien_Code.Neuf: + _ = match_arg_219.value temp_calcul_plafond_mensualite_d832_10_3_39 = True - elif match_arg_170.code == NeufOuAncien_Code.Ancien: - _ = match_arg_170.value + elif match_arg_219.code == NeufOuAncien_Code.Ancien: + _ = match_arg_219.value temp_calcul_plafond_mensualite_d832_10_3_39 = False if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2017,9,30)) and ((date_signature_pret_1 < date_of_numbers(2019,9,30)) and (temp_calcul_plafond_mensualite_d832_10_3_39 and - temp_calcul_plafond_mensualite_d832_10_3_38)))): - match_arg_171 = zone_2 - if match_arg_171.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_171.value + temp_calcul_plafond_mensualite_d832_10_3_38))))): + match_arg_220 = zone_2 + if match_arg_220.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_220.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_172 = situation_familiale_calcul_apl_4 - if match_arg_172.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_172.value + match_arg_221 = situation_familiale_calcul_apl_4 + if match_arg_221.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_221.value return money_of_cents_string("37140") - elif match_arg_172.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_172.value + elif match_arg_221.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_221.value return money_of_cents_string("44807") else: return (money_of_cents_string("52472") + (money_of_cents_string("7664") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_171.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_171.value + elif match_arg_220.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_220.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_173 = situation_familiale_calcul_apl_4 - if match_arg_173.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_173.value + match_arg_222 = situation_familiale_calcul_apl_4 + if match_arg_222.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_222.value return money_of_cents_string("33145") - elif match_arg_173.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_173.value + elif match_arg_222.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_222.value return money_of_cents_string("39893") else: return (money_of_cents_string("46643") + (money_of_cents_string("6748") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_171.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_171.value + elif match_arg_220.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_220.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_174 = situation_familiale_calcul_apl_4 - if match_arg_174.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_174.value + match_arg_223 = situation_familiale_calcul_apl_4 + if match_arg_223.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_223.value return money_of_cents_string("30943") - elif match_arg_174.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_174.value + elif match_arg_223.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_223.value return money_of_cents_string("37103") else: return (money_of_cents_string("43264") + @@ -8944,80 +10605,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_40(_:Unit): - match_arg_175 = type_pret - if match_arg_175.code == TypePret_Code.D331_32: - _ = match_arg_175.value + match_arg_224 = type_pret + if match_arg_224.code == TypePret_Code.D331_32: + _ = match_arg_224.value temp_calcul_plafond_mensualite_d832_10_3_41 = False - elif match_arg_175.code == TypePret_Code.D331_63_64: - _ = match_arg_175.value + elif match_arg_224.code == TypePret_Code.D331_63_64: + _ = match_arg_224.value temp_calcul_plafond_mensualite_d832_10_3_41 = True - elif match_arg_175.code == TypePret_Code.D331_59_8: - _ = match_arg_175.value + elif match_arg_224.code == TypePret_Code.D331_59_8: + _ = match_arg_224.value temp_calcul_plafond_mensualite_d832_10_3_41 = False - elif match_arg_175.code == TypePret_Code.D331_76_1: - _ = match_arg_175.value + elif match_arg_224.code == TypePret_Code.D331_76_1: + _ = match_arg_224.value temp_calcul_plafond_mensualite_d832_10_3_41 = False - elif match_arg_175.code == TypePret_Code.Autre: - _ = match_arg_175.value + elif match_arg_224.code == TypePret_Code.Autre: + _ = match_arg_224.value temp_calcul_plafond_mensualite_d832_10_3_41 = False - match_arg_176 = anciennete_logement - if match_arg_176.code == NeufOuAncien_Code.Neuf: - _ = match_arg_176.value + match_arg_225 = anciennete_logement + if match_arg_225.code == NeufOuAncien_Code.Neuf: + _ = match_arg_225.value temp_calcul_plafond_mensualite_d832_10_3_42 = False - elif match_arg_176.code == NeufOuAncien_Code.Ancien: - _ = match_arg_176.value + elif match_arg_225.code == NeufOuAncien_Code.Ancien: + _ = match_arg_225.value temp_calcul_plafond_mensualite_d832_10_3_42 = True if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2015,9,30)) and ((date_signature_pret_1 < date_of_numbers(2017,9,30)) and (temp_calcul_plafond_mensualite_d832_10_3_42 and - temp_calcul_plafond_mensualite_d832_10_3_41)))): - match_arg_177 = zone_2 - if match_arg_177.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_177.value + temp_calcul_plafond_mensualite_d832_10_3_41))))): + match_arg_226 = zone_2 + if match_arg_226.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_226.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_178 = situation_familiale_calcul_apl_4 - if match_arg_178.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_178.value + match_arg_227 = situation_familiale_calcul_apl_4 + if match_arg_227.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_227.value return money_of_cents_string("29674") - elif match_arg_178.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_178.value + elif match_arg_227.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_227.value return money_of_cents_string("35810") else: return (money_of_cents_string("41945") + (money_of_cents_string("6136") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_177.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_177.value + elif match_arg_226.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_226.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_179 = situation_familiale_calcul_apl_4 - if match_arg_179.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_179.value + match_arg_228 = situation_familiale_calcul_apl_4 + if match_arg_228.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_228.value return money_of_cents_string("26452") - elif match_arg_179.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_179.value + elif match_arg_228.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_228.value return money_of_cents_string("31858") else: return (money_of_cents_string("37264") + (money_of_cents_string("5406") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_177.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_177.value + elif match_arg_226.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_226.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_180 = situation_familiale_calcul_apl_4 - if match_arg_180.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_180.value + match_arg_229 = situation_familiale_calcul_apl_4 + if match_arg_229.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_229.value return money_of_cents_string("24704") - elif match_arg_180.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_180.value + elif match_arg_229.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_229.value return money_of_cents_string("29636") else: return (money_of_cents_string("34570") + @@ -9027,80 +10690,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_43(_:Unit): - match_arg_181 = type_pret - if match_arg_181.code == TypePret_Code.D331_32: - _ = match_arg_181.value + match_arg_230 = type_pret + if match_arg_230.code == TypePret_Code.D331_32: + _ = match_arg_230.value temp_calcul_plafond_mensualite_d832_10_3_44 = False - elif match_arg_181.code == TypePret_Code.D331_63_64: - _ = match_arg_181.value + elif match_arg_230.code == TypePret_Code.D331_63_64: + _ = match_arg_230.value temp_calcul_plafond_mensualite_d832_10_3_44 = True - elif match_arg_181.code == TypePret_Code.D331_59_8: - _ = match_arg_181.value + elif match_arg_230.code == TypePret_Code.D331_59_8: + _ = match_arg_230.value temp_calcul_plafond_mensualite_d832_10_3_44 = False - elif match_arg_181.code == TypePret_Code.D331_76_1: - _ = match_arg_181.value + elif match_arg_230.code == TypePret_Code.D331_76_1: + _ = match_arg_230.value temp_calcul_plafond_mensualite_d832_10_3_44 = False - elif match_arg_181.code == TypePret_Code.Autre: - _ = match_arg_181.value + elif match_arg_230.code == TypePret_Code.Autre: + _ = match_arg_230.value temp_calcul_plafond_mensualite_d832_10_3_44 = False - match_arg_182 = anciennete_logement - if match_arg_182.code == NeufOuAncien_Code.Neuf: - _ = match_arg_182.value + match_arg_231 = anciennete_logement + if match_arg_231.code == NeufOuAncien_Code.Neuf: + _ = match_arg_231.value temp_calcul_plafond_mensualite_d832_10_3_45 = True - elif match_arg_182.code == NeufOuAncien_Code.Ancien: - _ = match_arg_182.value + elif match_arg_231.code == NeufOuAncien_Code.Ancien: + _ = match_arg_231.value temp_calcul_plafond_mensualite_d832_10_3_45 = False if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2015,9,30)) and ((date_signature_pret_1 < date_of_numbers(2017,9,30)) and (temp_calcul_plafond_mensualite_d832_10_3_45 and - temp_calcul_plafond_mensualite_d832_10_3_44)))): - match_arg_183 = zone_2 - if match_arg_183.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_183.value + temp_calcul_plafond_mensualite_d832_10_3_44))))): + match_arg_232 = zone_2 + if match_arg_232.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_232.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_184 = situation_familiale_calcul_apl_4 - if match_arg_184.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_184.value + match_arg_233 = situation_familiale_calcul_apl_4 + if match_arg_233.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_233.value return money_of_cents_string("36864") - elif match_arg_184.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_184.value + elif match_arg_233.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_233.value return money_of_cents_string("44473") else: return (money_of_cents_string("52081") + (money_of_cents_string("7607") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_183.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_183.value + elif match_arg_232.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_232.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_185 = situation_familiale_calcul_apl_4 - if match_arg_185.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_185.value + match_arg_234 = situation_familiale_calcul_apl_4 + if match_arg_234.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_234.value return money_of_cents_string("32898") - elif match_arg_185.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_185.value + elif match_arg_234.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_234.value return money_of_cents_string("39596") else: return (money_of_cents_string("46296") + (money_of_cents_string("6698") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_183.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_183.value + elif match_arg_232.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_232.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_186 = situation_familiale_calcul_apl_4 - if match_arg_186.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_186.value + match_arg_235 = situation_familiale_calcul_apl_4 + if match_arg_235.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_235.value return money_of_cents_string("30713") - elif match_arg_186.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_186.value + elif match_arg_235.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_235.value return money_of_cents_string("36827") else: return (money_of_cents_string("42942") + @@ -9110,80 +10775,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_46(_:Unit): - match_arg_187 = type_pret - if match_arg_187.code == TypePret_Code.D331_32: - _ = match_arg_187.value + match_arg_236 = type_pret + if match_arg_236.code == TypePret_Code.D331_32: + _ = match_arg_236.value temp_calcul_plafond_mensualite_d832_10_3_47 = False - elif match_arg_187.code == TypePret_Code.D331_63_64: - _ = match_arg_187.value + elif match_arg_236.code == TypePret_Code.D331_63_64: + _ = match_arg_236.value temp_calcul_plafond_mensualite_d832_10_3_47 = True - elif match_arg_187.code == TypePret_Code.D331_59_8: - _ = match_arg_187.value + elif match_arg_236.code == TypePret_Code.D331_59_8: + _ = match_arg_236.value temp_calcul_plafond_mensualite_d832_10_3_47 = False - elif match_arg_187.code == TypePret_Code.D331_76_1: - _ = match_arg_187.value + elif match_arg_236.code == TypePret_Code.D331_76_1: + _ = match_arg_236.value temp_calcul_plafond_mensualite_d832_10_3_47 = False - elif match_arg_187.code == TypePret_Code.Autre: - _ = match_arg_187.value + elif match_arg_236.code == TypePret_Code.Autre: + _ = match_arg_236.value temp_calcul_plafond_mensualite_d832_10_3_47 = False - match_arg_188 = anciennete_logement - if match_arg_188.code == NeufOuAncien_Code.Neuf: - _ = match_arg_188.value + match_arg_237 = anciennete_logement + if match_arg_237.code == NeufOuAncien_Code.Neuf: + _ = match_arg_237.value temp_calcul_plafond_mensualite_d832_10_3_48 = False - elif match_arg_188.code == NeufOuAncien_Code.Ancien: - _ = match_arg_188.value + elif match_arg_237.code == NeufOuAncien_Code.Ancien: + _ = match_arg_237.value temp_calcul_plafond_mensualite_d832_10_3_48 = True if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2014,9,30)) and ((date_signature_pret_1 < date_of_numbers(2015,9,30)) and (temp_calcul_plafond_mensualite_d832_10_3_48 and - temp_calcul_plafond_mensualite_d832_10_3_47)))): - match_arg_189 = zone_2 - if match_arg_189.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_189.value + temp_calcul_plafond_mensualite_d832_10_3_47))))): + match_arg_238 = zone_2 + if match_arg_238.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_238.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_190 = situation_familiale_calcul_apl_4 - if match_arg_190.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_190.value + match_arg_239 = situation_familiale_calcul_apl_4 + if match_arg_239.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_239.value return money_of_cents_string("29650") - elif match_arg_190.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_190.value + elif match_arg_239.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_239.value return money_of_cents_string("35781") else: return (money_of_cents_string("41911") + (money_of_cents_string("6131") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_189.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_189.value + elif match_arg_238.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_238.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_191 = situation_familiale_calcul_apl_4 - if match_arg_191.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_191.value + match_arg_240 = situation_familiale_calcul_apl_4 + if match_arg_240.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_240.value return money_of_cents_string("26431") - elif match_arg_191.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_191.value + elif match_arg_240.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_240.value return money_of_cents_string("31833") else: return (money_of_cents_string("37234") + (money_of_cents_string("5402") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_189.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_189.value + elif match_arg_238.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_238.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_192 = situation_familiale_calcul_apl_4 - if match_arg_192.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_192.value + match_arg_241 = situation_familiale_calcul_apl_4 + if match_arg_241.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_241.value return money_of_cents_string("24684") - elif match_arg_192.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_192.value + elif match_arg_241.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_241.value return money_of_cents_string("29612") else: return (money_of_cents_string("34542") + @@ -9193,80 +10860,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_49(_:Unit): - match_arg_193 = type_pret - if match_arg_193.code == TypePret_Code.D331_32: - _ = match_arg_193.value + match_arg_242 = type_pret + if match_arg_242.code == TypePret_Code.D331_32: + _ = match_arg_242.value temp_calcul_plafond_mensualite_d832_10_3_50 = False - elif match_arg_193.code == TypePret_Code.D331_63_64: - _ = match_arg_193.value + elif match_arg_242.code == TypePret_Code.D331_63_64: + _ = match_arg_242.value temp_calcul_plafond_mensualite_d832_10_3_50 = True - elif match_arg_193.code == TypePret_Code.D331_59_8: - _ = match_arg_193.value + elif match_arg_242.code == TypePret_Code.D331_59_8: + _ = match_arg_242.value temp_calcul_plafond_mensualite_d832_10_3_50 = False - elif match_arg_193.code == TypePret_Code.D331_76_1: - _ = match_arg_193.value + elif match_arg_242.code == TypePret_Code.D331_76_1: + _ = match_arg_242.value temp_calcul_plafond_mensualite_d832_10_3_50 = False - elif match_arg_193.code == TypePret_Code.Autre: - _ = match_arg_193.value + elif match_arg_242.code == TypePret_Code.Autre: + _ = match_arg_242.value temp_calcul_plafond_mensualite_d832_10_3_50 = False - match_arg_194 = anciennete_logement - if match_arg_194.code == NeufOuAncien_Code.Neuf: - _ = match_arg_194.value + match_arg_243 = anciennete_logement + if match_arg_243.code == NeufOuAncien_Code.Neuf: + _ = match_arg_243.value temp_calcul_plafond_mensualite_d832_10_3_51 = True - elif match_arg_194.code == NeufOuAncien_Code.Ancien: - _ = match_arg_194.value + elif match_arg_243.code == NeufOuAncien_Code.Ancien: + _ = match_arg_243.value temp_calcul_plafond_mensualite_d832_10_3_51 = False if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2014,9,30)) and ((date_signature_pret_1 < date_of_numbers(2015,9,30)) and (temp_calcul_plafond_mensualite_d832_10_3_51 and - temp_calcul_plafond_mensualite_d832_10_3_50)))): - match_arg_195 = zone_2 - if match_arg_195.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_195.value + temp_calcul_plafond_mensualite_d832_10_3_50))))): + match_arg_244 = zone_2 + if match_arg_244.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_244.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_196 = situation_familiale_calcul_apl_4 - if match_arg_196.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_196.value + match_arg_245 = situation_familiale_calcul_apl_4 + if match_arg_245.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_245.value return money_of_cents_string("36835") - elif match_arg_196.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_196.value + elif match_arg_245.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_245.value return money_of_cents_string("44437") else: return (money_of_cents_string("52039") + (money_of_cents_string("7601") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_195.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_195.value + elif match_arg_244.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_244.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_197 = situation_familiale_calcul_apl_4 - if match_arg_197.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_197.value + match_arg_246 = situation_familiale_calcul_apl_4 + if match_arg_246.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_246.value return money_of_cents_string("32872") - elif match_arg_197.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_197.value + elif match_arg_246.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_246.value return money_of_cents_string("39564") else: return (money_of_cents_string("46259") + (money_of_cents_string("6693") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_195.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_195.value + elif match_arg_244.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_244.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_198 = situation_familiale_calcul_apl_4 - if match_arg_198.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_198.value + match_arg_247 = situation_familiale_calcul_apl_4 + if match_arg_247.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_247.value return money_of_cents_string("30688") - elif match_arg_198.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_198.value + elif match_arg_247.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_247.value return money_of_cents_string("36798") else: return (money_of_cents_string("42908") + @@ -9276,80 +10945,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_52(_:Unit): - match_arg_199 = type_pret - if match_arg_199.code == TypePret_Code.D331_32: - _ = match_arg_199.value + match_arg_248 = type_pret + if match_arg_248.code == TypePret_Code.D331_32: + _ = match_arg_248.value temp_calcul_plafond_mensualite_d832_10_3_53 = False - elif match_arg_199.code == TypePret_Code.D331_63_64: - _ = match_arg_199.value + elif match_arg_248.code == TypePret_Code.D331_63_64: + _ = match_arg_248.value temp_calcul_plafond_mensualite_d832_10_3_53 = True - elif match_arg_199.code == TypePret_Code.D331_59_8: - _ = match_arg_199.value + elif match_arg_248.code == TypePret_Code.D331_59_8: + _ = match_arg_248.value temp_calcul_plafond_mensualite_d832_10_3_53 = False - elif match_arg_199.code == TypePret_Code.D331_76_1: - _ = match_arg_199.value + elif match_arg_248.code == TypePret_Code.D331_76_1: + _ = match_arg_248.value temp_calcul_plafond_mensualite_d832_10_3_53 = False - elif match_arg_199.code == TypePret_Code.Autre: - _ = match_arg_199.value + elif match_arg_248.code == TypePret_Code.Autre: + _ = match_arg_248.value temp_calcul_plafond_mensualite_d832_10_3_53 = False - match_arg_200 = anciennete_logement - if match_arg_200.code == NeufOuAncien_Code.Neuf: - _ = match_arg_200.value + match_arg_249 = anciennete_logement + if match_arg_249.code == NeufOuAncien_Code.Neuf: + _ = match_arg_249.value temp_calcul_plafond_mensualite_d832_10_3_54 = False - elif match_arg_200.code == NeufOuAncien_Code.Ancien: - _ = match_arg_200.value + elif match_arg_249.code == NeufOuAncien_Code.Ancien: + _ = match_arg_249.value temp_calcul_plafond_mensualite_d832_10_3_54 = True if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2012,12,31)) and ((date_signature_pret_1 < date_of_numbers(2014,9,30)) and (temp_calcul_plafond_mensualite_d832_10_3_54 and - temp_calcul_plafond_mensualite_d832_10_3_53)))): - match_arg_201 = zone_2 - if match_arg_201.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_201.value + temp_calcul_plafond_mensualite_d832_10_3_53))))): + match_arg_250 = zone_2 + if match_arg_250.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_250.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_202 = situation_familiale_calcul_apl_4 - if match_arg_202.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_202.value + match_arg_251 = situation_familiale_calcul_apl_4 + if match_arg_251.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_251.value return money_of_cents_string("29482") - elif match_arg_202.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_202.value + elif match_arg_251.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_251.value return money_of_cents_string("35578") else: return (money_of_cents_string("41673") + (money_of_cents_string("6096") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_201.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_201.value + elif match_arg_250.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_250.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_203 = situation_familiale_calcul_apl_4 - if match_arg_203.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_203.value + match_arg_252 = situation_familiale_calcul_apl_4 + if match_arg_252.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_252.value return money_of_cents_string("26281") - elif match_arg_203.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_203.value + elif match_arg_252.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_252.value return money_of_cents_string("31653") else: return (money_of_cents_string("37023") + (money_of_cents_string("5371") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_201.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_201.value + elif match_arg_250.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_250.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_204 = situation_familiale_calcul_apl_4 - if match_arg_204.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_204.value + match_arg_253 = situation_familiale_calcul_apl_4 + if match_arg_253.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_253.value return money_of_cents_string("24544") - elif match_arg_204.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_204.value + elif match_arg_253.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_253.value return money_of_cents_string("29444") else: return (money_of_cents_string("34346") + @@ -9359,80 +11030,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_55(_:Unit): - match_arg_205 = type_pret - if match_arg_205.code == TypePret_Code.D331_32: - _ = match_arg_205.value + match_arg_254 = type_pret + if match_arg_254.code == TypePret_Code.D331_32: + _ = match_arg_254.value temp_calcul_plafond_mensualite_d832_10_3_56 = False - elif match_arg_205.code == TypePret_Code.D331_63_64: - _ = match_arg_205.value + elif match_arg_254.code == TypePret_Code.D331_63_64: + _ = match_arg_254.value temp_calcul_plafond_mensualite_d832_10_3_56 = True - elif match_arg_205.code == TypePret_Code.D331_59_8: - _ = match_arg_205.value + elif match_arg_254.code == TypePret_Code.D331_59_8: + _ = match_arg_254.value temp_calcul_plafond_mensualite_d832_10_3_56 = False - elif match_arg_205.code == TypePret_Code.D331_76_1: - _ = match_arg_205.value + elif match_arg_254.code == TypePret_Code.D331_76_1: + _ = match_arg_254.value temp_calcul_plafond_mensualite_d832_10_3_56 = False - elif match_arg_205.code == TypePret_Code.Autre: - _ = match_arg_205.value + elif match_arg_254.code == TypePret_Code.Autre: + _ = match_arg_254.value temp_calcul_plafond_mensualite_d832_10_3_56 = False - match_arg_206 = anciennete_logement - if match_arg_206.code == NeufOuAncien_Code.Neuf: - _ = match_arg_206.value + match_arg_255 = anciennete_logement + if match_arg_255.code == NeufOuAncien_Code.Neuf: + _ = match_arg_255.value temp_calcul_plafond_mensualite_d832_10_3_57 = True - elif match_arg_206.code == NeufOuAncien_Code.Ancien: - _ = match_arg_206.value + elif match_arg_255.code == NeufOuAncien_Code.Ancien: + _ = match_arg_255.value temp_calcul_plafond_mensualite_d832_10_3_57 = False if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2012,12,31)) and ((date_signature_pret_1 < date_of_numbers(2014,9,30)) and (temp_calcul_plafond_mensualite_d832_10_3_57 and - temp_calcul_plafond_mensualite_d832_10_3_56)))): - match_arg_207 = zone_2 - if match_arg_207.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_207.value + temp_calcul_plafond_mensualite_d832_10_3_56))))): + match_arg_256 = zone_2 + if match_arg_256.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_256.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_208 = situation_familiale_calcul_apl_4 - if match_arg_208.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_208.value + match_arg_257 = situation_familiale_calcul_apl_4 + if match_arg_257.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_257.value return money_of_cents_string("36626") - elif match_arg_208.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_208.value + elif match_arg_257.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_257.value return money_of_cents_string("44185") else: return (money_of_cents_string("51744") + (money_of_cents_string("7558") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_207.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_207.value + elif match_arg_256.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_256.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_209 = situation_familiale_calcul_apl_4 - if match_arg_209.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_209.value + match_arg_258 = situation_familiale_calcul_apl_4 + if match_arg_258.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_258.value return money_of_cents_string("32686") - elif match_arg_209.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_209.value + elif match_arg_258.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_258.value return money_of_cents_string("39340") else: return (money_of_cents_string("45997") + (money_of_cents_string("6655") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_207.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_207.value + elif match_arg_256.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_256.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_210 = situation_familiale_calcul_apl_4 - if match_arg_210.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_210.value + match_arg_259 = situation_familiale_calcul_apl_4 + if match_arg_259.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_259.value return money_of_cents_string("30514") - elif match_arg_210.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_210.value + elif match_arg_259.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_259.value return money_of_cents_string("36589") else: return (money_of_cents_string("42665") + @@ -9442,80 +11115,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_58(_:Unit): - match_arg_211 = type_pret - if match_arg_211.code == TypePret_Code.D331_32: - _ = match_arg_211.value + match_arg_260 = type_pret + if match_arg_260.code == TypePret_Code.D331_32: + _ = match_arg_260.value temp_calcul_plafond_mensualite_d832_10_3_59 = False - elif match_arg_211.code == TypePret_Code.D331_63_64: - _ = match_arg_211.value + elif match_arg_260.code == TypePret_Code.D331_63_64: + _ = match_arg_260.value temp_calcul_plafond_mensualite_d832_10_3_59 = True - elif match_arg_211.code == TypePret_Code.D331_59_8: - _ = match_arg_211.value + elif match_arg_260.code == TypePret_Code.D331_59_8: + _ = match_arg_260.value temp_calcul_plafond_mensualite_d832_10_3_59 = False - elif match_arg_211.code == TypePret_Code.D331_76_1: - _ = match_arg_211.value + elif match_arg_260.code == TypePret_Code.D331_76_1: + _ = match_arg_260.value temp_calcul_plafond_mensualite_d832_10_3_59 = False - elif match_arg_211.code == TypePret_Code.Autre: - _ = match_arg_211.value + elif match_arg_260.code == TypePret_Code.Autre: + _ = match_arg_260.value temp_calcul_plafond_mensualite_d832_10_3_59 = False - match_arg_212 = anciennete_logement - if match_arg_212.code == NeufOuAncien_Code.Neuf: - _ = match_arg_212.value + match_arg_261 = anciennete_logement + if match_arg_261.code == NeufOuAncien_Code.Neuf: + _ = match_arg_261.value temp_calcul_plafond_mensualite_d832_10_3_60 = False - elif match_arg_212.code == NeufOuAncien_Code.Ancien: - _ = match_arg_212.value + elif match_arg_261.code == NeufOuAncien_Code.Ancien: + _ = match_arg_261.value temp_calcul_plafond_mensualite_d832_10_3_60 = True if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2011,12,31)) and ((date_signature_pret_1 < date_of_numbers(2012,12,31)) and (temp_calcul_plafond_mensualite_d832_10_3_60 and - temp_calcul_plafond_mensualite_d832_10_3_59)))): - match_arg_213 = zone_2 - if match_arg_213.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_213.value + temp_calcul_plafond_mensualite_d832_10_3_59))))): + match_arg_262 = zone_2 + if match_arg_262.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_262.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_214 = situation_familiale_calcul_apl_4 - if match_arg_214.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_214.value + match_arg_263 = situation_familiale_calcul_apl_4 + if match_arg_263.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_263.value return money_of_cents_string("28861") - elif match_arg_214.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_214.value + elif match_arg_263.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_263.value return money_of_cents_string("34829") else: return (money_of_cents_string("40796") + (money_of_cents_string("5968") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_213.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_213.value + elif match_arg_262.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_262.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_215 = situation_familiale_calcul_apl_4 - if match_arg_215.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_215.value + match_arg_264 = situation_familiale_calcul_apl_4 + if match_arg_264.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_264.value return money_of_cents_string("25728") - elif match_arg_215.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_215.value + elif match_arg_264.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_264.value return money_of_cents_string("30987") else: return (money_of_cents_string("36244") + (money_of_cents_string("5258") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_213.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_213.value + elif match_arg_262.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_262.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_216 = situation_familiale_calcul_apl_4 - if match_arg_216.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_216.value + match_arg_265 = situation_familiale_calcul_apl_4 + if match_arg_265.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_265.value return money_of_cents_string("24027") - elif match_arg_216.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_216.value + elif match_arg_265.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_265.value return money_of_cents_string("28824") else: return (money_of_cents_string("33623") + @@ -9525,80 +11200,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_61(_:Unit): - match_arg_217 = type_pret - if match_arg_217.code == TypePret_Code.D331_32: - _ = match_arg_217.value + match_arg_266 = type_pret + if match_arg_266.code == TypePret_Code.D331_32: + _ = match_arg_266.value temp_calcul_plafond_mensualite_d832_10_3_62 = False - elif match_arg_217.code == TypePret_Code.D331_63_64: - _ = match_arg_217.value + elif match_arg_266.code == TypePret_Code.D331_63_64: + _ = match_arg_266.value temp_calcul_plafond_mensualite_d832_10_3_62 = True - elif match_arg_217.code == TypePret_Code.D331_59_8: - _ = match_arg_217.value + elif match_arg_266.code == TypePret_Code.D331_59_8: + _ = match_arg_266.value temp_calcul_plafond_mensualite_d832_10_3_62 = False - elif match_arg_217.code == TypePret_Code.D331_76_1: - _ = match_arg_217.value + elif match_arg_266.code == TypePret_Code.D331_76_1: + _ = match_arg_266.value temp_calcul_plafond_mensualite_d832_10_3_62 = False - elif match_arg_217.code == TypePret_Code.Autre: - _ = match_arg_217.value + elif match_arg_266.code == TypePret_Code.Autre: + _ = match_arg_266.value temp_calcul_plafond_mensualite_d832_10_3_62 = False - match_arg_218 = anciennete_logement - if match_arg_218.code == NeufOuAncien_Code.Neuf: - _ = match_arg_218.value + match_arg_267 = anciennete_logement + if match_arg_267.code == NeufOuAncien_Code.Neuf: + _ = match_arg_267.value temp_calcul_plafond_mensualite_d832_10_3_63 = True - elif match_arg_218.code == NeufOuAncien_Code.Ancien: - _ = match_arg_218.value + elif match_arg_267.code == NeufOuAncien_Code.Ancien: + _ = match_arg_267.value temp_calcul_plafond_mensualite_d832_10_3_63 = False if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2011,12,31)) and ((date_signature_pret_1 < date_of_numbers(2012,12,31)) and (temp_calcul_plafond_mensualite_d832_10_3_63 and - temp_calcul_plafond_mensualite_d832_10_3_62)))): - match_arg_219 = zone_2 - if match_arg_219.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_219.value + temp_calcul_plafond_mensualite_d832_10_3_62))))): + match_arg_268 = zone_2 + if match_arg_268.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_268.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_220 = situation_familiale_calcul_apl_4 - if match_arg_220.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_220.value + match_arg_269 = situation_familiale_calcul_apl_4 + if match_arg_269.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_269.value return money_of_cents_string("35855") - elif match_arg_220.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_220.value + elif match_arg_269.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_269.value return money_of_cents_string("43255") else: return (money_of_cents_string("50655") + (money_of_cents_string("7399") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_219.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_219.value + elif match_arg_268.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_268.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_221 = situation_familiale_calcul_apl_4 - if match_arg_221.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_221.value + match_arg_270 = situation_familiale_calcul_apl_4 + if match_arg_270.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_270.value return money_of_cents_string("31998") - elif match_arg_221.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_221.value + elif match_arg_270.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_270.value return money_of_cents_string("38512") else: return (money_of_cents_string("45029") + (money_of_cents_string("6515") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_219.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_219.value + elif match_arg_268.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_268.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_222 = situation_familiale_calcul_apl_4 - if match_arg_222.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_222.value + match_arg_271 = situation_familiale_calcul_apl_4 + if match_arg_271.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_271.value return money_of_cents_string("29872") - elif match_arg_222.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_222.value + elif match_arg_271.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_271.value return money_of_cents_string("35819") else: return (money_of_cents_string("41767") + @@ -9608,80 +11285,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_64(_:Unit): - match_arg_223 = type_pret - if match_arg_223.code == TypePret_Code.D331_32: - _ = match_arg_223.value + match_arg_272 = type_pret + if match_arg_272.code == TypePret_Code.D331_32: + _ = match_arg_272.value temp_calcul_plafond_mensualite_d832_10_3_65 = False - elif match_arg_223.code == TypePret_Code.D331_63_64: - _ = match_arg_223.value + elif match_arg_272.code == TypePret_Code.D331_63_64: + _ = match_arg_272.value temp_calcul_plafond_mensualite_d832_10_3_65 = True - elif match_arg_223.code == TypePret_Code.D331_59_8: - _ = match_arg_223.value + elif match_arg_272.code == TypePret_Code.D331_59_8: + _ = match_arg_272.value temp_calcul_plafond_mensualite_d832_10_3_65 = False - elif match_arg_223.code == TypePret_Code.D331_76_1: - _ = match_arg_223.value + elif match_arg_272.code == TypePret_Code.D331_76_1: + _ = match_arg_272.value temp_calcul_plafond_mensualite_d832_10_3_65 = False - elif match_arg_223.code == TypePret_Code.Autre: - _ = match_arg_223.value + elif match_arg_272.code == TypePret_Code.Autre: + _ = match_arg_272.value temp_calcul_plafond_mensualite_d832_10_3_65 = False - match_arg_224 = anciennete_logement - if match_arg_224.code == NeufOuAncien_Code.Neuf: - _ = match_arg_224.value + match_arg_273 = anciennete_logement + if match_arg_273.code == NeufOuAncien_Code.Neuf: + _ = match_arg_273.value temp_calcul_plafond_mensualite_d832_10_3_66 = False - elif match_arg_224.code == NeufOuAncien_Code.Ancien: - _ = match_arg_224.value + elif match_arg_273.code == NeufOuAncien_Code.Ancien: + _ = match_arg_273.value temp_calcul_plafond_mensualite_d832_10_3_66 = True if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2010,12,31)) and ((date_signature_pret_1 < date_of_numbers(2011,12,31)) and (temp_calcul_plafond_mensualite_d832_10_3_66 and - temp_calcul_plafond_mensualite_d832_10_3_65)))): - match_arg_225 = zone_2 - if match_arg_225.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_225.value + temp_calcul_plafond_mensualite_d832_10_3_65))))): + match_arg_274 = zone_2 + if match_arg_274.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_274.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_226 = situation_familiale_calcul_apl_4 - if match_arg_226.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_226.value + match_arg_275 = situation_familiale_calcul_apl_4 + if match_arg_275.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_275.value return money_of_cents_string("28575") - elif match_arg_226.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_226.value + elif match_arg_275.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_275.value return money_of_cents_string("34484") else: return (money_of_cents_string("40392") + (money_of_cents_string("5909") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_225.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_225.value + elif match_arg_274.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_274.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_227 = situation_familiale_calcul_apl_4 - if match_arg_227.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_227.value + match_arg_276 = situation_familiale_calcul_apl_4 + if match_arg_276.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_276.value return money_of_cents_string("25473") - elif match_arg_227.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_227.value + elif match_arg_276.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_276.value return money_of_cents_string("30680") else: return (money_of_cents_string("35885") + (money_of_cents_string("5206") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_225.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_225.value + elif match_arg_274.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_274.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_228 = situation_familiale_calcul_apl_4 - if match_arg_228.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_228.value + match_arg_277 = situation_familiale_calcul_apl_4 + if match_arg_277.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_277.value return money_of_cents_string("23789") - elif match_arg_228.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_228.value + elif match_arg_277.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_277.value return money_of_cents_string("28539") else: return (money_of_cents_string("33290") + @@ -9691,80 +11370,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_67(_:Unit): - match_arg_229 = type_pret - if match_arg_229.code == TypePret_Code.D331_32: - _ = match_arg_229.value + match_arg_278 = type_pret + if match_arg_278.code == TypePret_Code.D331_32: + _ = match_arg_278.value temp_calcul_plafond_mensualite_d832_10_3_68 = False - elif match_arg_229.code == TypePret_Code.D331_63_64: - _ = match_arg_229.value + elif match_arg_278.code == TypePret_Code.D331_63_64: + _ = match_arg_278.value temp_calcul_plafond_mensualite_d832_10_3_68 = True - elif match_arg_229.code == TypePret_Code.D331_59_8: - _ = match_arg_229.value + elif match_arg_278.code == TypePret_Code.D331_59_8: + _ = match_arg_278.value temp_calcul_plafond_mensualite_d832_10_3_68 = False - elif match_arg_229.code == TypePret_Code.D331_76_1: - _ = match_arg_229.value + elif match_arg_278.code == TypePret_Code.D331_76_1: + _ = match_arg_278.value temp_calcul_plafond_mensualite_d832_10_3_68 = False - elif match_arg_229.code == TypePret_Code.Autre: - _ = match_arg_229.value + elif match_arg_278.code == TypePret_Code.Autre: + _ = match_arg_278.value temp_calcul_plafond_mensualite_d832_10_3_68 = False - match_arg_230 = anciennete_logement - if match_arg_230.code == NeufOuAncien_Code.Neuf: - _ = match_arg_230.value + match_arg_279 = anciennete_logement + if match_arg_279.code == NeufOuAncien_Code.Neuf: + _ = match_arg_279.value temp_calcul_plafond_mensualite_d832_10_3_69 = True - elif match_arg_230.code == NeufOuAncien_Code.Ancien: - _ = match_arg_230.value + elif match_arg_279.code == NeufOuAncien_Code.Ancien: + _ = match_arg_279.value temp_calcul_plafond_mensualite_d832_10_3_69 = False if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2010,12,31)) and ((date_signature_pret_1 < date_of_numbers(2011,12,31)) and (temp_calcul_plafond_mensualite_d832_10_3_69 and - temp_calcul_plafond_mensualite_d832_10_3_68)))): - match_arg_231 = zone_2 - if match_arg_231.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_231.value + temp_calcul_plafond_mensualite_d832_10_3_68))))): + match_arg_280 = zone_2 + if match_arg_280.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_280.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_232 = situation_familiale_calcul_apl_4 - if match_arg_232.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_232.value + match_arg_281 = situation_familiale_calcul_apl_4 + if match_arg_281.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_281.value return money_of_cents_string("35500") - elif match_arg_232.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_232.value + elif match_arg_281.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_281.value return money_of_cents_string("42827") else: return (money_of_cents_string("50153") + (money_of_cents_string("7326") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_231.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_231.value + elif match_arg_280.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_280.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_233 = situation_familiale_calcul_apl_4 - if match_arg_233.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_233.value + match_arg_282 = situation_familiale_calcul_apl_4 + if match_arg_282.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_282.value return money_of_cents_string("31681") - elif match_arg_233.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_233.value + elif match_arg_282.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_282.value return money_of_cents_string("38131") else: return (money_of_cents_string("44583") + (money_of_cents_string("6450") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_231.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_231.value + elif match_arg_280.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_280.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_234 = situation_familiale_calcul_apl_4 - if match_arg_234.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_234.value + match_arg_283 = situation_familiale_calcul_apl_4 + if match_arg_283.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_283.value return money_of_cents_string("29576") - elif match_arg_234.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_234.value + elif match_arg_283.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_283.value return money_of_cents_string("35464") else: return (money_of_cents_string("41353") + @@ -9774,80 +11455,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_70(_:Unit): - match_arg_235 = type_pret - if match_arg_235.code == TypePret_Code.D331_32: - _ = match_arg_235.value + match_arg_284 = type_pret + if match_arg_284.code == TypePret_Code.D331_32: + _ = match_arg_284.value temp_calcul_plafond_mensualite_d832_10_3_71 = False - elif match_arg_235.code == TypePret_Code.D331_63_64: - _ = match_arg_235.value + elif match_arg_284.code == TypePret_Code.D331_63_64: + _ = match_arg_284.value temp_calcul_plafond_mensualite_d832_10_3_71 = True - elif match_arg_235.code == TypePret_Code.D331_59_8: - _ = match_arg_235.value + elif match_arg_284.code == TypePret_Code.D331_59_8: + _ = match_arg_284.value temp_calcul_plafond_mensualite_d832_10_3_71 = False - elif match_arg_235.code == TypePret_Code.D331_76_1: - _ = match_arg_235.value + elif match_arg_284.code == TypePret_Code.D331_76_1: + _ = match_arg_284.value temp_calcul_plafond_mensualite_d832_10_3_71 = False - elif match_arg_235.code == TypePret_Code.Autre: - _ = match_arg_235.value + elif match_arg_284.code == TypePret_Code.Autre: + _ = match_arg_284.value temp_calcul_plafond_mensualite_d832_10_3_71 = False - match_arg_236 = anciennete_logement - if match_arg_236.code == NeufOuAncien_Code.Neuf: - _ = match_arg_236.value + match_arg_285 = anciennete_logement + if match_arg_285.code == NeufOuAncien_Code.Neuf: + _ = match_arg_285.value temp_calcul_plafond_mensualite_d832_10_3_72 = False - elif match_arg_236.code == NeufOuAncien_Code.Ancien: - _ = match_arg_236.value + elif match_arg_285.code == NeufOuAncien_Code.Ancien: + _ = match_arg_285.value temp_calcul_plafond_mensualite_d832_10_3_72 = True if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2009,12,31)) and ((date_signature_pret_1 < date_of_numbers(2010,12,31)) and (temp_calcul_plafond_mensualite_d832_10_3_72 and - temp_calcul_plafond_mensualite_d832_10_3_71)))): - match_arg_237 = zone_2 - if match_arg_237.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_237.value + temp_calcul_plafond_mensualite_d832_10_3_71))))): + match_arg_286 = zone_2 + if match_arg_286.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_286.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_238 = situation_familiale_calcul_apl_4 - if match_arg_238.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_238.value + match_arg_287 = situation_familiale_calcul_apl_4 + if match_arg_287.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_287.value return money_of_cents_string("28264") - elif match_arg_238.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_238.value + elif match_arg_287.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_287.value return money_of_cents_string("34109") else: return (money_of_cents_string("39953") + (money_of_cents_string("5845") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_237.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_237.value + elif match_arg_286.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_286.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_239 = situation_familiale_calcul_apl_4 - if match_arg_239.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_239.value + match_arg_288 = situation_familiale_calcul_apl_4 + if match_arg_288.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_288.value return money_of_cents_string("25196") - elif match_arg_239.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_239.value + elif match_arg_288.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_288.value return money_of_cents_string("30346") else: return (money_of_cents_string("35495") + (money_of_cents_string("5149") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_237.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_237.value + elif match_arg_286.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_286.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_240 = situation_familiale_calcul_apl_4 - if match_arg_240.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_240.value + match_arg_289 = situation_familiale_calcul_apl_4 + if match_arg_289.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_289.value return money_of_cents_string("23530") - elif match_arg_240.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_240.value + elif match_arg_289.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_289.value return money_of_cents_string("28228") else: return (money_of_cents_string("32928") + @@ -9857,80 +11540,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_73(_:Unit): - match_arg_241 = type_pret - if match_arg_241.code == TypePret_Code.D331_32: - _ = match_arg_241.value + match_arg_290 = type_pret + if match_arg_290.code == TypePret_Code.D331_32: + _ = match_arg_290.value temp_calcul_plafond_mensualite_d832_10_3_74 = False - elif match_arg_241.code == TypePret_Code.D331_63_64: - _ = match_arg_241.value + elif match_arg_290.code == TypePret_Code.D331_63_64: + _ = match_arg_290.value temp_calcul_plafond_mensualite_d832_10_3_74 = True - elif match_arg_241.code == TypePret_Code.D331_59_8: - _ = match_arg_241.value + elif match_arg_290.code == TypePret_Code.D331_59_8: + _ = match_arg_290.value temp_calcul_plafond_mensualite_d832_10_3_74 = False - elif match_arg_241.code == TypePret_Code.D331_76_1: - _ = match_arg_241.value + elif match_arg_290.code == TypePret_Code.D331_76_1: + _ = match_arg_290.value temp_calcul_plafond_mensualite_d832_10_3_74 = False - elif match_arg_241.code == TypePret_Code.Autre: - _ = match_arg_241.value + elif match_arg_290.code == TypePret_Code.Autre: + _ = match_arg_290.value temp_calcul_plafond_mensualite_d832_10_3_74 = False - match_arg_242 = anciennete_logement - if match_arg_242.code == NeufOuAncien_Code.Neuf: - _ = match_arg_242.value + match_arg_291 = anciennete_logement + if match_arg_291.code == NeufOuAncien_Code.Neuf: + _ = match_arg_291.value temp_calcul_plafond_mensualite_d832_10_3_75 = True - elif match_arg_242.code == NeufOuAncien_Code.Ancien: - _ = match_arg_242.value + elif match_arg_291.code == NeufOuAncien_Code.Ancien: + _ = match_arg_291.value temp_calcul_plafond_mensualite_d832_10_3_75 = False if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2009,12,31)) and ((date_signature_pret_1 < date_of_numbers(2010,12,31)) and (temp_calcul_plafond_mensualite_d832_10_3_75 and - temp_calcul_plafond_mensualite_d832_10_3_74)))): - match_arg_243 = zone_2 - if match_arg_243.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_243.value + temp_calcul_plafond_mensualite_d832_10_3_74))))): + match_arg_292 = zone_2 + if match_arg_292.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_292.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_244 = situation_familiale_calcul_apl_4 - if match_arg_244.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_244.value + match_arg_293 = situation_familiale_calcul_apl_4 + if match_arg_293.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_293.value return money_of_cents_string("35114") - elif match_arg_244.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_244.value + elif match_arg_293.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_293.value return money_of_cents_string("42361") else: return (money_of_cents_string("49607") + (money_of_cents_string("7246") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_243.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_243.value + elif match_arg_292.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_292.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_245 = situation_familiale_calcul_apl_4 - if match_arg_245.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_245.value + match_arg_294 = situation_familiale_calcul_apl_4 + if match_arg_294.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_294.value return money_of_cents_string("31336") - elif match_arg_245.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_245.value + elif match_arg_294.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_294.value return money_of_cents_string("37716") else: return (money_of_cents_string("44098") + (money_of_cents_string("6380") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_243.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_243.value + elif match_arg_292.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_292.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_246 = situation_familiale_calcul_apl_4 - if match_arg_246.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_246.value + match_arg_295 = situation_familiale_calcul_apl_4 + if match_arg_295.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_295.value return money_of_cents_string("29254") - elif match_arg_246.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_246.value + elif match_arg_295.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_295.value return money_of_cents_string("35078") else: return (money_of_cents_string("40903") + @@ -9940,80 +11625,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_76(_:Unit): - match_arg_247 = type_pret - if match_arg_247.code == TypePret_Code.D331_32: - _ = match_arg_247.value + match_arg_296 = type_pret + if match_arg_296.code == TypePret_Code.D331_32: + _ = match_arg_296.value temp_calcul_plafond_mensualite_d832_10_3_77 = False - elif match_arg_247.code == TypePret_Code.D331_63_64: - _ = match_arg_247.value + elif match_arg_296.code == TypePret_Code.D331_63_64: + _ = match_arg_296.value temp_calcul_plafond_mensualite_d832_10_3_77 = True - elif match_arg_247.code == TypePret_Code.D331_59_8: - _ = match_arg_247.value + elif match_arg_296.code == TypePret_Code.D331_59_8: + _ = match_arg_296.value temp_calcul_plafond_mensualite_d832_10_3_77 = False - elif match_arg_247.code == TypePret_Code.D331_76_1: - _ = match_arg_247.value + elif match_arg_296.code == TypePret_Code.D331_76_1: + _ = match_arg_296.value temp_calcul_plafond_mensualite_d832_10_3_77 = False - elif match_arg_247.code == TypePret_Code.Autre: - _ = match_arg_247.value + elif match_arg_296.code == TypePret_Code.Autre: + _ = match_arg_296.value temp_calcul_plafond_mensualite_d832_10_3_77 = False - match_arg_248 = anciennete_logement - if match_arg_248.code == NeufOuAncien_Code.Neuf: - _ = match_arg_248.value + match_arg_297 = anciennete_logement + if match_arg_297.code == NeufOuAncien_Code.Neuf: + _ = match_arg_297.value temp_calcul_plafond_mensualite_d832_10_3_78 = False - elif match_arg_248.code == NeufOuAncien_Code.Ancien: - _ = match_arg_248.value + elif match_arg_297.code == NeufOuAncien_Code.Ancien: + _ = match_arg_297.value temp_calcul_plafond_mensualite_d832_10_3_78 = True if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2008,12,31)) and ((date_signature_pret_1 < date_of_numbers(2009,12,31)) and (temp_calcul_plafond_mensualite_d832_10_3_78 and - temp_calcul_plafond_mensualite_d832_10_3_77)))): - match_arg_249 = zone_2 - if match_arg_249.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_249.value + temp_calcul_plafond_mensualite_d832_10_3_77))))): + match_arg_298 = zone_2 + if match_arg_298.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_298.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_250 = situation_familiale_calcul_apl_4 - if match_arg_250.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_250.value + match_arg_299 = situation_familiale_calcul_apl_4 + if match_arg_299.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_299.value return money_of_cents_string("28174") - elif match_arg_250.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_250.value + elif match_arg_299.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_299.value return money_of_cents_string("34000") else: return (money_of_cents_string("39826") + (money_of_cents_string("5826") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_249.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_249.value + elif match_arg_298.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_298.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_251 = situation_familiale_calcul_apl_4 - if match_arg_251.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_251.value + match_arg_300 = situation_familiale_calcul_apl_4 + if match_arg_300.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_300.value return money_of_cents_string("25116") - elif match_arg_251.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_251.value + elif match_arg_300.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_300.value return money_of_cents_string("30249") else: return (money_of_cents_string("35382") + (money_of_cents_string("5133") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_249.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_249.value + elif match_arg_298.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_298.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_252 = situation_familiale_calcul_apl_4 - if match_arg_252.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_252.value + match_arg_301 = situation_familiale_calcul_apl_4 + if match_arg_301.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_301.value return money_of_cents_string("23455") - elif match_arg_252.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_252.value + elif match_arg_301.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_301.value return money_of_cents_string("28138") else: return (money_of_cents_string("32823") + @@ -10023,80 +11710,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_79(_:Unit): - match_arg_253 = type_pret - if match_arg_253.code == TypePret_Code.D331_32: - _ = match_arg_253.value + match_arg_302 = type_pret + if match_arg_302.code == TypePret_Code.D331_32: + _ = match_arg_302.value temp_calcul_plafond_mensualite_d832_10_3_80 = False - elif match_arg_253.code == TypePret_Code.D331_63_64: - _ = match_arg_253.value + elif match_arg_302.code == TypePret_Code.D331_63_64: + _ = match_arg_302.value temp_calcul_plafond_mensualite_d832_10_3_80 = True - elif match_arg_253.code == TypePret_Code.D331_59_8: - _ = match_arg_253.value + elif match_arg_302.code == TypePret_Code.D331_59_8: + _ = match_arg_302.value temp_calcul_plafond_mensualite_d832_10_3_80 = False - elif match_arg_253.code == TypePret_Code.D331_76_1: - _ = match_arg_253.value + elif match_arg_302.code == TypePret_Code.D331_76_1: + _ = match_arg_302.value temp_calcul_plafond_mensualite_d832_10_3_80 = False - elif match_arg_253.code == TypePret_Code.Autre: - _ = match_arg_253.value + elif match_arg_302.code == TypePret_Code.Autre: + _ = match_arg_302.value temp_calcul_plafond_mensualite_d832_10_3_80 = False - match_arg_254 = anciennete_logement - if match_arg_254.code == NeufOuAncien_Code.Neuf: - _ = match_arg_254.value + match_arg_303 = anciennete_logement + if match_arg_303.code == NeufOuAncien_Code.Neuf: + _ = match_arg_303.value temp_calcul_plafond_mensualite_d832_10_3_81 = True - elif match_arg_254.code == NeufOuAncien_Code.Ancien: - _ = match_arg_254.value + elif match_arg_303.code == NeufOuAncien_Code.Ancien: + _ = match_arg_303.value temp_calcul_plafond_mensualite_d832_10_3_81 = False if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2008,12,31)) and ((date_signature_pret_1 < date_of_numbers(2009,12,31)) and (temp_calcul_plafond_mensualite_d832_10_3_81 and - temp_calcul_plafond_mensualite_d832_10_3_80)))): - match_arg_255 = zone_2 - if match_arg_255.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_255.value + temp_calcul_plafond_mensualite_d832_10_3_80))))): + match_arg_304 = zone_2 + if match_arg_304.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_304.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_256 = situation_familiale_calcul_apl_4 - if match_arg_256.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_256.value + match_arg_305 = situation_familiale_calcul_apl_4 + if match_arg_305.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_305.value return money_of_cents_string("35002") - elif match_arg_256.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_256.value + elif match_arg_305.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_305.value return money_of_cents_string("42226") else: return (money_of_cents_string("49449") + (money_of_cents_string("7223") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_255.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_255.value + elif match_arg_304.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_304.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_257 = situation_familiale_calcul_apl_4 - if match_arg_257.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_257.value + match_arg_306 = situation_familiale_calcul_apl_4 + if match_arg_306.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_306.value return money_of_cents_string("31236") - elif match_arg_257.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_257.value + elif match_arg_306.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_306.value return money_of_cents_string("37596") else: return (money_of_cents_string("43957") + (money_of_cents_string("6360") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_255.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_255.value + elif match_arg_304.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_304.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_258 = situation_familiale_calcul_apl_4 - if match_arg_258.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_258.value + match_arg_307 = situation_familiale_calcul_apl_4 + if match_arg_307.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_307.value return money_of_cents_string("29161") - elif match_arg_258.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_258.value + elif match_arg_307.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_307.value return money_of_cents_string("34966") else: return (money_of_cents_string("40773") + @@ -10106,80 +11795,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_82(_:Unit): - match_arg_259 = type_pret - if match_arg_259.code == TypePret_Code.D331_32: - _ = match_arg_259.value + match_arg_308 = type_pret + if match_arg_308.code == TypePret_Code.D331_32: + _ = match_arg_308.value temp_calcul_plafond_mensualite_d832_10_3_83 = False - elif match_arg_259.code == TypePret_Code.D331_63_64: - _ = match_arg_259.value + elif match_arg_308.code == TypePret_Code.D331_63_64: + _ = match_arg_308.value temp_calcul_plafond_mensualite_d832_10_3_83 = True - elif match_arg_259.code == TypePret_Code.D331_59_8: - _ = match_arg_259.value + elif match_arg_308.code == TypePret_Code.D331_59_8: + _ = match_arg_308.value temp_calcul_plafond_mensualite_d832_10_3_83 = False - elif match_arg_259.code == TypePret_Code.D331_76_1: - _ = match_arg_259.value + elif match_arg_308.code == TypePret_Code.D331_76_1: + _ = match_arg_308.value temp_calcul_plafond_mensualite_d832_10_3_83 = False - elif match_arg_259.code == TypePret_Code.Autre: - _ = match_arg_259.value + elif match_arg_308.code == TypePret_Code.Autre: + _ = match_arg_308.value temp_calcul_plafond_mensualite_d832_10_3_83 = False - match_arg_260 = anciennete_logement - if match_arg_260.code == NeufOuAncien_Code.Neuf: - _ = match_arg_260.value + match_arg_309 = anciennete_logement + if match_arg_309.code == NeufOuAncien_Code.Neuf: + _ = match_arg_309.value temp_calcul_plafond_mensualite_d832_10_3_84 = False - elif match_arg_260.code == NeufOuAncien_Code.Ancien: - _ = match_arg_260.value + elif match_arg_309.code == NeufOuAncien_Code.Ancien: + _ = match_arg_309.value temp_calcul_plafond_mensualite_d832_10_3_84 = True if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2007,12,31)) and ((date_signature_pret_1 < date_of_numbers(2008,12,31)) and (temp_calcul_plafond_mensualite_d832_10_3_84 and - temp_calcul_plafond_mensualite_d832_10_3_83)))): - match_arg_261 = zone_2 - if match_arg_261.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_261.value + temp_calcul_plafond_mensualite_d832_10_3_83))))): + match_arg_310 = zone_2 + if match_arg_310.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_310.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_262 = situation_familiale_calcul_apl_4 - if match_arg_262.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_262.value + match_arg_311 = situation_familiale_calcul_apl_4 + if match_arg_311.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_311.value return money_of_cents_string("27367") - elif match_arg_262.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_262.value + elif match_arg_311.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_311.value return money_of_cents_string("33026") else: return (money_of_cents_string("38685") + (money_of_cents_string("5659") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_261.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_261.value + elif match_arg_310.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_310.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_263 = situation_familiale_calcul_apl_4 - if match_arg_263.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_263.value + match_arg_312 = situation_familiale_calcul_apl_4 + if match_arg_312.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_312.value return money_of_cents_string("24396") - elif match_arg_263.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_263.value + elif match_arg_312.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_312.value return money_of_cents_string("29382") else: return (money_of_cents_string("34368") + (money_of_cents_string("4986") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_261.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_261.value + elif match_arg_310.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_310.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_264 = situation_familiale_calcul_apl_4 - if match_arg_264.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_264.value + match_arg_313 = situation_familiale_calcul_apl_4 + if match_arg_313.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_313.value return money_of_cents_string("22783") - elif match_arg_264.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_264.value + elif match_arg_313.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_313.value return money_of_cents_string("27332") else: return (money_of_cents_string("31882") + @@ -10189,80 +11880,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_85(_:Unit): - match_arg_265 = type_pret - if match_arg_265.code == TypePret_Code.D331_32: - _ = match_arg_265.value + match_arg_314 = type_pret + if match_arg_314.code == TypePret_Code.D331_32: + _ = match_arg_314.value temp_calcul_plafond_mensualite_d832_10_3_86 = False - elif match_arg_265.code == TypePret_Code.D331_63_64: - _ = match_arg_265.value + elif match_arg_314.code == TypePret_Code.D331_63_64: + _ = match_arg_314.value temp_calcul_plafond_mensualite_d832_10_3_86 = True - elif match_arg_265.code == TypePret_Code.D331_59_8: - _ = match_arg_265.value + elif match_arg_314.code == TypePret_Code.D331_59_8: + _ = match_arg_314.value temp_calcul_plafond_mensualite_d832_10_3_86 = False - elif match_arg_265.code == TypePret_Code.D331_76_1: - _ = match_arg_265.value + elif match_arg_314.code == TypePret_Code.D331_76_1: + _ = match_arg_314.value temp_calcul_plafond_mensualite_d832_10_3_86 = False - elif match_arg_265.code == TypePret_Code.Autre: - _ = match_arg_265.value + elif match_arg_314.code == TypePret_Code.Autre: + _ = match_arg_314.value temp_calcul_plafond_mensualite_d832_10_3_86 = False - match_arg_266 = anciennete_logement - if match_arg_266.code == NeufOuAncien_Code.Neuf: - _ = match_arg_266.value + match_arg_315 = anciennete_logement + if match_arg_315.code == NeufOuAncien_Code.Neuf: + _ = match_arg_315.value temp_calcul_plafond_mensualite_d832_10_3_87 = True - elif match_arg_266.code == NeufOuAncien_Code.Ancien: - _ = match_arg_266.value + elif match_arg_315.code == NeufOuAncien_Code.Ancien: + _ = match_arg_315.value temp_calcul_plafond_mensualite_d832_10_3_87 = False if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2007,12,31)) and ((date_signature_pret_1 < date_of_numbers(2008,12,31)) and (temp_calcul_plafond_mensualite_d832_10_3_87 and - temp_calcul_plafond_mensualite_d832_10_3_86)))): - match_arg_267 = zone_2 - if match_arg_267.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_267.value + temp_calcul_plafond_mensualite_d832_10_3_86))))): + match_arg_316 = zone_2 + if match_arg_316.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_316.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_268 = situation_familiale_calcul_apl_4 - if match_arg_268.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_268.value + match_arg_317 = situation_familiale_calcul_apl_4 + if match_arg_317.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_317.value return money_of_cents_string("33999") - elif match_arg_268.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_268.value + elif match_arg_317.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_317.value return money_of_cents_string("41016") else: return (money_of_cents_string("48032") + (money_of_cents_string("7016") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_267.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_267.value + elif match_arg_316.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_316.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_269 = situation_familiale_calcul_apl_4 - if match_arg_269.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_269.value + match_arg_318 = situation_familiale_calcul_apl_4 + if match_arg_318.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_318.value return money_of_cents_string("30341") - elif match_arg_269.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_269.value + elif match_arg_318.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_318.value return money_of_cents_string("36519") else: return (money_of_cents_string("42697") + (money_of_cents_string("6178") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_267.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_267.value + elif match_arg_316.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_316.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_270 = situation_familiale_calcul_apl_4 - if match_arg_270.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_270.value + match_arg_319 = situation_familiale_calcul_apl_4 + if match_arg_319.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_319.value return money_of_cents_string("28325") - elif match_arg_270.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_270.value + elif match_arg_319.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_319.value return money_of_cents_string("33964") else: return (money_of_cents_string("39605") + @@ -10272,80 +11965,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_88(_:Unit): - match_arg_271 = type_pret - if match_arg_271.code == TypePret_Code.D331_32: - _ = match_arg_271.value + match_arg_320 = type_pret + if match_arg_320.code == TypePret_Code.D331_32: + _ = match_arg_320.value temp_calcul_plafond_mensualite_d832_10_3_89 = False - elif match_arg_271.code == TypePret_Code.D331_63_64: - _ = match_arg_271.value + elif match_arg_320.code == TypePret_Code.D331_63_64: + _ = match_arg_320.value temp_calcul_plafond_mensualite_d832_10_3_89 = True - elif match_arg_271.code == TypePret_Code.D331_59_8: - _ = match_arg_271.value + elif match_arg_320.code == TypePret_Code.D331_59_8: + _ = match_arg_320.value temp_calcul_plafond_mensualite_d832_10_3_89 = False - elif match_arg_271.code == TypePret_Code.D331_76_1: - _ = match_arg_271.value + elif match_arg_320.code == TypePret_Code.D331_76_1: + _ = match_arg_320.value temp_calcul_plafond_mensualite_d832_10_3_89 = False - elif match_arg_271.code == TypePret_Code.Autre: - _ = match_arg_271.value + elif match_arg_320.code == TypePret_Code.Autre: + _ = match_arg_320.value temp_calcul_plafond_mensualite_d832_10_3_89 = False - match_arg_272 = anciennete_logement - if match_arg_272.code == NeufOuAncien_Code.Neuf: - _ = match_arg_272.value + match_arg_321 = anciennete_logement + if match_arg_321.code == NeufOuAncien_Code.Neuf: + _ = match_arg_321.value temp_calcul_plafond_mensualite_d832_10_3_90 = False - elif match_arg_272.code == NeufOuAncien_Code.Ancien: - _ = match_arg_272.value + elif match_arg_321.code == NeufOuAncien_Code.Ancien: + _ = match_arg_321.value temp_calcul_plafond_mensualite_d832_10_3_90 = True if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2006,12,31)) and ((date_signature_pret_1 < date_of_numbers(2007,12,31)) and (temp_calcul_plafond_mensualite_d832_10_3_90 and - temp_calcul_plafond_mensualite_d832_10_3_89)))): - match_arg_273 = zone_2 - if match_arg_273.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_273.value + temp_calcul_plafond_mensualite_d832_10_3_89))))): + match_arg_322 = zone_2 + if match_arg_322.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_322.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_274 = situation_familiale_calcul_apl_4 - if match_arg_274.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_274.value + match_arg_323 = situation_familiale_calcul_apl_4 + if match_arg_323.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_323.value return money_of_cents_string("26632") - elif match_arg_274.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_274.value + elif match_arg_323.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_323.value return money_of_cents_string("32139") else: return (money_of_cents_string("37646") + (money_of_cents_string("5507") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_273.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_273.value + elif match_arg_322.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_322.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_275 = situation_familiale_calcul_apl_4 - if match_arg_275.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_275.value + match_arg_324 = situation_familiale_calcul_apl_4 + if match_arg_324.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_324.value return money_of_cents_string("23741") - elif match_arg_275.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_275.value + elif match_arg_324.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_324.value return money_of_cents_string("28593") else: return (money_of_cents_string("33445") + (money_of_cents_string("4852") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_273.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_273.value + elif match_arg_322.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_322.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_276 = situation_familiale_calcul_apl_4 - if match_arg_276.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_276.value + match_arg_325 = situation_familiale_calcul_apl_4 + if match_arg_325.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_325.value return money_of_cents_string("22171") - elif match_arg_276.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_276.value + elif match_arg_325.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_325.value return money_of_cents_string("36598") else: return (money_of_cents_string("31026") + @@ -10355,80 +12050,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_91(_:Unit): - match_arg_277 = type_pret - if match_arg_277.code == TypePret_Code.D331_32: - _ = match_arg_277.value + match_arg_326 = type_pret + if match_arg_326.code == TypePret_Code.D331_32: + _ = match_arg_326.value temp_calcul_plafond_mensualite_d832_10_3_92 = False - elif match_arg_277.code == TypePret_Code.D331_63_64: - _ = match_arg_277.value + elif match_arg_326.code == TypePret_Code.D331_63_64: + _ = match_arg_326.value temp_calcul_plafond_mensualite_d832_10_3_92 = True - elif match_arg_277.code == TypePret_Code.D331_59_8: - _ = match_arg_277.value + elif match_arg_326.code == TypePret_Code.D331_59_8: + _ = match_arg_326.value temp_calcul_plafond_mensualite_d832_10_3_92 = False - elif match_arg_277.code == TypePret_Code.D331_76_1: - _ = match_arg_277.value + elif match_arg_326.code == TypePret_Code.D331_76_1: + _ = match_arg_326.value temp_calcul_plafond_mensualite_d832_10_3_92 = False - elif match_arg_277.code == TypePret_Code.Autre: - _ = match_arg_277.value + elif match_arg_326.code == TypePret_Code.Autre: + _ = match_arg_326.value temp_calcul_plafond_mensualite_d832_10_3_92 = False - match_arg_278 = anciennete_logement - if match_arg_278.code == NeufOuAncien_Code.Neuf: - _ = match_arg_278.value + match_arg_327 = anciennete_logement + if match_arg_327.code == NeufOuAncien_Code.Neuf: + _ = match_arg_327.value temp_calcul_plafond_mensualite_d832_10_3_93 = True - elif match_arg_278.code == NeufOuAncien_Code.Ancien: - _ = match_arg_278.value + elif match_arg_327.code == NeufOuAncien_Code.Ancien: + _ = match_arg_327.value temp_calcul_plafond_mensualite_d832_10_3_93 = False if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2006,12,31)) and ((date_signature_pret_1 < date_of_numbers(2007,12,31)) and (temp_calcul_plafond_mensualite_d832_10_3_93 and - temp_calcul_plafond_mensualite_d832_10_3_92)))): - match_arg_279 = zone_2 - if match_arg_279.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_279.value + temp_calcul_plafond_mensualite_d832_10_3_92))))): + match_arg_328 = zone_2 + if match_arg_328.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_328.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_280 = situation_familiale_calcul_apl_4 - if match_arg_280.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_280.value + match_arg_329 = situation_familiale_calcul_apl_4 + if match_arg_329.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_329.value return money_of_cents_string("33086") - elif match_arg_280.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_280.value + elif match_arg_329.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_329.value return money_of_cents_string("39914") else: return (money_of_cents_string("46742") + (money_of_cents_string("6828") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_279.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_279.value + elif match_arg_328.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_328.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_281 = situation_familiale_calcul_apl_4 - if match_arg_281.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_281.value + match_arg_330 = situation_familiale_calcul_apl_4 + if match_arg_330.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_330.value return money_of_cents_string("29526") - elif match_arg_281.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_281.value + elif match_arg_330.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_330.value return money_of_cents_string("35538") else: return (money_of_cents_string("41550") + (money_of_cents_string("6012") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_279.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_279.value + elif match_arg_328.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_328.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_282 = situation_familiale_calcul_apl_4 - if match_arg_282.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_282.value + match_arg_331 = situation_familiale_calcul_apl_4 + if match_arg_331.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_331.value return money_of_cents_string("27564") - elif match_arg_282.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_282.value + elif match_arg_331.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_331.value return money_of_cents_string("33052") else: return (money_of_cents_string("38541") + @@ -10438,80 +12135,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_94(_:Unit): - match_arg_283 = type_pret - if match_arg_283.code == TypePret_Code.D331_32: - _ = match_arg_283.value + match_arg_332 = type_pret + if match_arg_332.code == TypePret_Code.D331_32: + _ = match_arg_332.value temp_calcul_plafond_mensualite_d832_10_3_95 = False - elif match_arg_283.code == TypePret_Code.D331_63_64: - _ = match_arg_283.value + elif match_arg_332.code == TypePret_Code.D331_63_64: + _ = match_arg_332.value temp_calcul_plafond_mensualite_d832_10_3_95 = True - elif match_arg_283.code == TypePret_Code.D331_59_8: - _ = match_arg_283.value + elif match_arg_332.code == TypePret_Code.D331_59_8: + _ = match_arg_332.value temp_calcul_plafond_mensualite_d832_10_3_95 = False - elif match_arg_283.code == TypePret_Code.D331_76_1: - _ = match_arg_283.value + elif match_arg_332.code == TypePret_Code.D331_76_1: + _ = match_arg_332.value temp_calcul_plafond_mensualite_d832_10_3_95 = False - elif match_arg_283.code == TypePret_Code.Autre: - _ = match_arg_283.value + elif match_arg_332.code == TypePret_Code.Autre: + _ = match_arg_332.value temp_calcul_plafond_mensualite_d832_10_3_95 = False - match_arg_284 = anciennete_logement - if match_arg_284.code == NeufOuAncien_Code.Neuf: - _ = match_arg_284.value + match_arg_333 = anciennete_logement + if match_arg_333.code == NeufOuAncien_Code.Neuf: + _ = match_arg_333.value temp_calcul_plafond_mensualite_d832_10_3_96 = False - elif match_arg_284.code == NeufOuAncien_Code.Ancien: - _ = match_arg_284.value + elif match_arg_333.code == NeufOuAncien_Code.Ancien: + _ = match_arg_333.value temp_calcul_plafond_mensualite_d832_10_3_96 = True if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2005,8,31)) and ((date_signature_pret_1 < date_of_numbers(2006,12,31)) and (temp_calcul_plafond_mensualite_d832_10_3_96 and - temp_calcul_plafond_mensualite_d832_10_3_95)))): - match_arg_285 = zone_2 - if match_arg_285.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_285.value + temp_calcul_plafond_mensualite_d832_10_3_95))))): + match_arg_334 = zone_2 + if match_arg_334.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_334.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_286 = situation_familiale_calcul_apl_4 - if match_arg_286.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_286.value + match_arg_335 = situation_familiale_calcul_apl_4 + if match_arg_335.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_335.value return money_of_cents_string("25907") - elif match_arg_286.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_286.value + elif match_arg_335.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_335.value return money_of_cents_string("31264") else: return (money_of_cents_string("36621") + (money_of_cents_string("5357") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_285.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_285.value + elif match_arg_334.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_334.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_287 = situation_familiale_calcul_apl_4 - if match_arg_287.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_287.value + match_arg_336 = situation_familiale_calcul_apl_4 + if match_arg_336.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_336.value return money_of_cents_string("23094") - elif match_arg_287.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_287.value + elif match_arg_336.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_336.value return money_of_cents_string("27814") else: return (money_of_cents_string("32534") + (money_of_cents_string("4720") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_285.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_285.value + elif match_arg_334.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_334.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_288 = situation_familiale_calcul_apl_4 - if match_arg_288.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_288.value + match_arg_337 = situation_familiale_calcul_apl_4 + if match_arg_337.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_337.value return money_of_cents_string("21567") - elif match_arg_288.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_288.value + elif match_arg_337.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_337.value return money_of_cents_string("25874") else: return (money_of_cents_string("30181") + @@ -10521,80 +12220,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_97(_:Unit): - match_arg_289 = type_pret - if match_arg_289.code == TypePret_Code.D331_32: - _ = match_arg_289.value + match_arg_338 = type_pret + if match_arg_338.code == TypePret_Code.D331_32: + _ = match_arg_338.value temp_calcul_plafond_mensualite_d832_10_3_98 = False - elif match_arg_289.code == TypePret_Code.D331_63_64: - _ = match_arg_289.value + elif match_arg_338.code == TypePret_Code.D331_63_64: + _ = match_arg_338.value temp_calcul_plafond_mensualite_d832_10_3_98 = True - elif match_arg_289.code == TypePret_Code.D331_59_8: - _ = match_arg_289.value + elif match_arg_338.code == TypePret_Code.D331_59_8: + _ = match_arg_338.value temp_calcul_plafond_mensualite_d832_10_3_98 = False - elif match_arg_289.code == TypePret_Code.D331_76_1: - _ = match_arg_289.value + elif match_arg_338.code == TypePret_Code.D331_76_1: + _ = match_arg_338.value temp_calcul_plafond_mensualite_d832_10_3_98 = False - elif match_arg_289.code == TypePret_Code.Autre: - _ = match_arg_289.value + elif match_arg_338.code == TypePret_Code.Autre: + _ = match_arg_338.value temp_calcul_plafond_mensualite_d832_10_3_98 = False - match_arg_290 = anciennete_logement - if match_arg_290.code == NeufOuAncien_Code.Neuf: - _ = match_arg_290.value + match_arg_339 = anciennete_logement + if match_arg_339.code == NeufOuAncien_Code.Neuf: + _ = match_arg_339.value temp_calcul_plafond_mensualite_d832_10_3_99 = True - elif match_arg_290.code == NeufOuAncien_Code.Ancien: - _ = match_arg_290.value + elif match_arg_339.code == NeufOuAncien_Code.Ancien: + _ = match_arg_339.value temp_calcul_plafond_mensualite_d832_10_3_99 = False if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2005,8,31)) and ((date_signature_pret_1 < date_of_numbers(2006,12,31)) and (temp_calcul_plafond_mensualite_d832_10_3_99 and - temp_calcul_plafond_mensualite_d832_10_3_98)))): - match_arg_291 = zone_2 - if match_arg_291.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_291.value + temp_calcul_plafond_mensualite_d832_10_3_98))))): + match_arg_340 = zone_2 + if match_arg_340.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_340.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_292 = situation_familiale_calcul_apl_4 - if match_arg_292.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_292.value + match_arg_341 = situation_familiale_calcul_apl_4 + if match_arg_341.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_341.value return money_of_cents_string("32185") - elif match_arg_292.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_292.value + elif match_arg_341.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_341.value return money_of_cents_string("38827") else: return (money_of_cents_string("45469") + (money_of_cents_string("6642") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_291.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_291.value + elif match_arg_340.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_340.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_293 = situation_familiale_calcul_apl_4 - if match_arg_293.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_293.value + match_arg_342 = situation_familiale_calcul_apl_4 + if match_arg_342.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_342.value return money_of_cents_string("28722") - elif match_arg_293.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_293.value + elif match_arg_342.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_342.value return money_of_cents_string("34570") else: return (money_of_cents_string("40418") + (money_of_cents_string("5848") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_291.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_291.value + elif match_arg_340.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_340.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_294 = situation_familiale_calcul_apl_4 - if match_arg_294.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_294.value + match_arg_343 = situation_familiale_calcul_apl_4 + if match_arg_343.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_343.value return money_of_cents_string("26813") - elif match_arg_294.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_294.value + elif match_arg_343.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_343.value return money_of_cents_string("32152") else: return (money_of_cents_string("37491") + @@ -10604,80 +12305,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_100(_:Unit): - match_arg_295 = type_pret - if match_arg_295.code == TypePret_Code.D331_32: - _ = match_arg_295.value + match_arg_344 = type_pret + if match_arg_344.code == TypePret_Code.D331_32: + _ = match_arg_344.value temp_calcul_plafond_mensualite_d832_10_3_101 = False - elif match_arg_295.code == TypePret_Code.D331_63_64: - _ = match_arg_295.value + elif match_arg_344.code == TypePret_Code.D331_63_64: + _ = match_arg_344.value temp_calcul_plafond_mensualite_d832_10_3_101 = True - elif match_arg_295.code == TypePret_Code.D331_59_8: - _ = match_arg_295.value + elif match_arg_344.code == TypePret_Code.D331_59_8: + _ = match_arg_344.value temp_calcul_plafond_mensualite_d832_10_3_101 = False - elif match_arg_295.code == TypePret_Code.D331_76_1: - _ = match_arg_295.value + elif match_arg_344.code == TypePret_Code.D331_76_1: + _ = match_arg_344.value temp_calcul_plafond_mensualite_d832_10_3_101 = False - elif match_arg_295.code == TypePret_Code.Autre: - _ = match_arg_295.value + elif match_arg_344.code == TypePret_Code.Autre: + _ = match_arg_344.value temp_calcul_plafond_mensualite_d832_10_3_101 = False - match_arg_296 = anciennete_logement - if match_arg_296.code == NeufOuAncien_Code.Neuf: - _ = match_arg_296.value + match_arg_345 = anciennete_logement + if match_arg_345.code == NeufOuAncien_Code.Neuf: + _ = match_arg_345.value temp_calcul_plafond_mensualite_d832_10_3_102 = False - elif match_arg_296.code == NeufOuAncien_Code.Ancien: - _ = match_arg_296.value + elif match_arg_345.code == NeufOuAncien_Code.Ancien: + _ = match_arg_345.value temp_calcul_plafond_mensualite_d832_10_3_102 = True if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2003,6,30)) and ((date_signature_pret_1 < date_of_numbers(2005,8,31)) and (temp_calcul_plafond_mensualite_d832_10_3_102 and - temp_calcul_plafond_mensualite_d832_10_3_101)))): - match_arg_297 = zone_2 - if match_arg_297.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_297.value + temp_calcul_plafond_mensualite_d832_10_3_101))))): + match_arg_346 = zone_2 + if match_arg_346.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_346.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_298 = situation_familiale_calcul_apl_4 - if match_arg_298.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_298.value + match_arg_347 = situation_familiale_calcul_apl_4 + if match_arg_347.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_347.value return money_of_cents_string("25449") - elif match_arg_298.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_298.value + elif match_arg_347.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_347.value return money_of_cents_string("30711") else: return (money_of_cents_string("35973") + (money_of_cents_string("5262") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_297.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_297.value + elif match_arg_346.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_346.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_299 = situation_familiale_calcul_apl_4 - if match_arg_299.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_299.value + match_arg_348 = situation_familiale_calcul_apl_4 + if match_arg_348.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_348.value return money_of_cents_string("22686") - elif match_arg_299.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_299.value + elif match_arg_348.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_348.value return money_of_cents_string("27323") else: return (money_of_cents_string("31960") + (money_of_cents_string("4637") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_297.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_297.value + elif match_arg_346.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_346.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_300 = situation_familiale_calcul_apl_4 - if match_arg_300.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_300.value + match_arg_349 = situation_familiale_calcul_apl_4 + if match_arg_349.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_349.value return money_of_cents_string("21186") - elif match_arg_300.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_300.value + elif match_arg_349.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_349.value return money_of_cents_string("25417") else: return (money_of_cents_string("29648") + @@ -10687,80 +12390,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_103(_:Unit): - match_arg_301 = type_pret - if match_arg_301.code == TypePret_Code.D331_32: - _ = match_arg_301.value + match_arg_350 = type_pret + if match_arg_350.code == TypePret_Code.D331_32: + _ = match_arg_350.value temp_calcul_plafond_mensualite_d832_10_3_104 = False - elif match_arg_301.code == TypePret_Code.D331_63_64: - _ = match_arg_301.value + elif match_arg_350.code == TypePret_Code.D331_63_64: + _ = match_arg_350.value temp_calcul_plafond_mensualite_d832_10_3_104 = True - elif match_arg_301.code == TypePret_Code.D331_59_8: - _ = match_arg_301.value + elif match_arg_350.code == TypePret_Code.D331_59_8: + _ = match_arg_350.value temp_calcul_plafond_mensualite_d832_10_3_104 = False - elif match_arg_301.code == TypePret_Code.D331_76_1: - _ = match_arg_301.value + elif match_arg_350.code == TypePret_Code.D331_76_1: + _ = match_arg_350.value temp_calcul_plafond_mensualite_d832_10_3_104 = False - elif match_arg_301.code == TypePret_Code.Autre: - _ = match_arg_301.value + elif match_arg_350.code == TypePret_Code.Autre: + _ = match_arg_350.value temp_calcul_plafond_mensualite_d832_10_3_104 = False - match_arg_302 = anciennete_logement - if match_arg_302.code == NeufOuAncien_Code.Neuf: - _ = match_arg_302.value + match_arg_351 = anciennete_logement + if match_arg_351.code == NeufOuAncien_Code.Neuf: + _ = match_arg_351.value temp_calcul_plafond_mensualite_d832_10_3_105 = True - elif match_arg_302.code == NeufOuAncien_Code.Ancien: - _ = match_arg_302.value + elif match_arg_351.code == NeufOuAncien_Code.Ancien: + _ = match_arg_351.value temp_calcul_plafond_mensualite_d832_10_3_105 = False if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2003,6,30)) and ((date_signature_pret_1 < date_of_numbers(2005,8,31)) and (temp_calcul_plafond_mensualite_d832_10_3_105 and - temp_calcul_plafond_mensualite_d832_10_3_104)))): - match_arg_303 = zone_2 - if match_arg_303.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_303.value + temp_calcul_plafond_mensualite_d832_10_3_104))))): + match_arg_352 = zone_2 + if match_arg_352.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_352.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_304 = situation_familiale_calcul_apl_4 - if match_arg_304.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_304.value + match_arg_353 = situation_familiale_calcul_apl_4 + if match_arg_353.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_353.value return money_of_cents_string("31616") - elif match_arg_304.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_304.value + elif match_arg_353.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_353.value return money_of_cents_string("38141") else: return (money_of_cents_string("44666") + (money_of_cents_string("6525") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_303.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_303.value + elif match_arg_352.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_352.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_305 = situation_familiale_calcul_apl_4 - if match_arg_305.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_305.value + match_arg_354 = situation_familiale_calcul_apl_4 + if match_arg_354.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_354.value return money_of_cents_string("28214") - elif match_arg_305.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_305.value + elif match_arg_354.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_354.value return money_of_cents_string("33959") else: return (money_of_cents_string("39704") + (money_of_cents_string("5745") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_303.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_303.value + elif match_arg_352.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_352.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_306 = situation_familiale_calcul_apl_4 - if match_arg_306.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_306.value + match_arg_355 = situation_familiale_calcul_apl_4 + if match_arg_355.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_355.value return money_of_cents_string("26339") - elif match_arg_306.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_306.value + elif match_arg_355.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_355.value return money_of_cents_string("31584") else: return (money_of_cents_string("36829") + @@ -10770,80 +12475,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_106(_:Unit): - match_arg_307 = type_pret - if match_arg_307.code == TypePret_Code.D331_32: - _ = match_arg_307.value + match_arg_356 = type_pret + if match_arg_356.code == TypePret_Code.D331_32: + _ = match_arg_356.value temp_calcul_plafond_mensualite_d832_10_3_107 = False - elif match_arg_307.code == TypePret_Code.D331_63_64: - _ = match_arg_307.value + elif match_arg_356.code == TypePret_Code.D331_63_64: + _ = match_arg_356.value temp_calcul_plafond_mensualite_d832_10_3_107 = True - elif match_arg_307.code == TypePret_Code.D331_59_8: - _ = match_arg_307.value + elif match_arg_356.code == TypePret_Code.D331_59_8: + _ = match_arg_356.value temp_calcul_plafond_mensualite_d832_10_3_107 = False - elif match_arg_307.code == TypePret_Code.D331_76_1: - _ = match_arg_307.value + elif match_arg_356.code == TypePret_Code.D331_76_1: + _ = match_arg_356.value temp_calcul_plafond_mensualite_d832_10_3_107 = False - elif match_arg_307.code == TypePret_Code.Autre: - _ = match_arg_307.value + elif match_arg_356.code == TypePret_Code.Autre: + _ = match_arg_356.value temp_calcul_plafond_mensualite_d832_10_3_107 = False - match_arg_308 = anciennete_logement - if match_arg_308.code == NeufOuAncien_Code.Neuf: - _ = match_arg_308.value + match_arg_357 = anciennete_logement + if match_arg_357.code == NeufOuAncien_Code.Neuf: + _ = match_arg_357.value temp_calcul_plafond_mensualite_d832_10_3_108 = False - elif match_arg_308.code == NeufOuAncien_Code.Ancien: - _ = match_arg_308.value + elif match_arg_357.code == NeufOuAncien_Code.Ancien: + _ = match_arg_357.value temp_calcul_plafond_mensualite_d832_10_3_108 = True if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2002,6,30)) and ((date_signature_pret_1 < date_of_numbers(2003,6,30)) and (temp_calcul_plafond_mensualite_d832_10_3_108 and - temp_calcul_plafond_mensualite_d832_10_3_107)))): - match_arg_309 = zone_2 - if match_arg_309.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_309.value + temp_calcul_plafond_mensualite_d832_10_3_107))))): + match_arg_358 = zone_2 + if match_arg_358.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_358.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_310 = situation_familiale_calcul_apl_4 - if match_arg_310.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_310.value + match_arg_359 = situation_familiale_calcul_apl_4 + if match_arg_359.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_359.value return money_of_cents_string("25147") - elif match_arg_310.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_310.value + elif match_arg_359.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_359.value return money_of_cents_string("30347") else: return (money_of_cents_string("35547") + (money_of_cents_string("5200") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_309.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_309.value + elif match_arg_358.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_358.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_311 = situation_familiale_calcul_apl_4 - if match_arg_311.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_311.value + match_arg_360 = situation_familiale_calcul_apl_4 + if match_arg_360.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_360.value return money_of_cents_string("22417") - elif match_arg_311.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_311.value + elif match_arg_360.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_360.value return money_of_cents_string("26999") else: return (money_of_cents_string("31581") + (money_of_cents_string("4582") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_309.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_309.value + elif match_arg_358.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_358.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_312 = situation_familiale_calcul_apl_4 - if match_arg_312.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_312.value + match_arg_361 = situation_familiale_calcul_apl_4 + if match_arg_361.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_361.value return money_of_cents_string("20935") - elif match_arg_312.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_312.value + elif match_arg_361.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_361.value return money_of_cents_string("25116") else: return (money_of_cents_string("29297") + @@ -10853,80 +12560,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_109(_:Unit): - match_arg_313 = type_pret - if match_arg_313.code == TypePret_Code.D331_32: - _ = match_arg_313.value + match_arg_362 = type_pret + if match_arg_362.code == TypePret_Code.D331_32: + _ = match_arg_362.value temp_calcul_plafond_mensualite_d832_10_3_110 = False - elif match_arg_313.code == TypePret_Code.D331_63_64: - _ = match_arg_313.value + elif match_arg_362.code == TypePret_Code.D331_63_64: + _ = match_arg_362.value temp_calcul_plafond_mensualite_d832_10_3_110 = True - elif match_arg_313.code == TypePret_Code.D331_59_8: - _ = match_arg_313.value + elif match_arg_362.code == TypePret_Code.D331_59_8: + _ = match_arg_362.value temp_calcul_plafond_mensualite_d832_10_3_110 = False - elif match_arg_313.code == TypePret_Code.D331_76_1: - _ = match_arg_313.value + elif match_arg_362.code == TypePret_Code.D331_76_1: + _ = match_arg_362.value temp_calcul_plafond_mensualite_d832_10_3_110 = False - elif match_arg_313.code == TypePret_Code.Autre: - _ = match_arg_313.value + elif match_arg_362.code == TypePret_Code.Autre: + _ = match_arg_362.value temp_calcul_plafond_mensualite_d832_10_3_110 = False - match_arg_314 = anciennete_logement - if match_arg_314.code == NeufOuAncien_Code.Neuf: - _ = match_arg_314.value + match_arg_363 = anciennete_logement + if match_arg_363.code == NeufOuAncien_Code.Neuf: + _ = match_arg_363.value temp_calcul_plafond_mensualite_d832_10_3_111 = True - elif match_arg_314.code == NeufOuAncien_Code.Ancien: - _ = match_arg_314.value + elif match_arg_363.code == NeufOuAncien_Code.Ancien: + _ = match_arg_363.value temp_calcul_plafond_mensualite_d832_10_3_111 = False if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2002,6,30)) and ((date_signature_pret_1 < date_of_numbers(2003,6,30)) and (temp_calcul_plafond_mensualite_d832_10_3_111 and - temp_calcul_plafond_mensualite_d832_10_3_110)))): - match_arg_315 = zone_2 - if match_arg_315.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_315.value + temp_calcul_plafond_mensualite_d832_10_3_110))))): + match_arg_364 = zone_2 + if match_arg_364.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_364.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_316 = situation_familiale_calcul_apl_4 - if match_arg_316.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_316.value + match_arg_365 = situation_familiale_calcul_apl_4 + if match_arg_365.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_365.value return money_of_cents_string("31241") - elif match_arg_316.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_316.value + elif match_arg_365.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_365.value return money_of_cents_string("37689") else: return (money_of_cents_string("44137") + (money_of_cents_string("6448") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_315.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_315.value + elif match_arg_364.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_364.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_317 = situation_familiale_calcul_apl_4 - if match_arg_317.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_317.value + match_arg_366 = situation_familiale_calcul_apl_4 + if match_arg_366.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_366.value return money_of_cents_string("27879") - elif match_arg_317.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_317.value + elif match_arg_366.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_366.value return money_of_cents_string("33556") else: return (money_of_cents_string("39233") + (money_of_cents_string("5677") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_315.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_315.value + elif match_arg_364.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_364.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_318 = situation_familiale_calcul_apl_4 - if match_arg_318.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_318.value + match_arg_367 = situation_familiale_calcul_apl_4 + if match_arg_367.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_367.value return money_of_cents_string("26027") - elif match_arg_318.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_318.value + elif match_arg_367.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_367.value return money_of_cents_string("31210") else: return (money_of_cents_string("36393") + @@ -10936,80 +12645,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_112(_:Unit): - match_arg_319 = type_pret - if match_arg_319.code == TypePret_Code.D331_32: - _ = match_arg_319.value + match_arg_368 = type_pret + if match_arg_368.code == TypePret_Code.D331_32: + _ = match_arg_368.value temp_calcul_plafond_mensualite_d832_10_3_113 = False - elif match_arg_319.code == TypePret_Code.D331_63_64: - _ = match_arg_319.value + elif match_arg_368.code == TypePret_Code.D331_63_64: + _ = match_arg_368.value temp_calcul_plafond_mensualite_d832_10_3_113 = True - elif match_arg_319.code == TypePret_Code.D331_59_8: - _ = match_arg_319.value + elif match_arg_368.code == TypePret_Code.D331_59_8: + _ = match_arg_368.value temp_calcul_plafond_mensualite_d832_10_3_113 = False - elif match_arg_319.code == TypePret_Code.D331_76_1: - _ = match_arg_319.value + elif match_arg_368.code == TypePret_Code.D331_76_1: + _ = match_arg_368.value temp_calcul_plafond_mensualite_d832_10_3_113 = False - elif match_arg_319.code == TypePret_Code.Autre: - _ = match_arg_319.value + elif match_arg_368.code == TypePret_Code.Autre: + _ = match_arg_368.value temp_calcul_plafond_mensualite_d832_10_3_113 = False - match_arg_320 = anciennete_logement - if match_arg_320.code == NeufOuAncien_Code.Neuf: - _ = match_arg_320.value + match_arg_369 = anciennete_logement + if match_arg_369.code == NeufOuAncien_Code.Neuf: + _ = match_arg_369.value temp_calcul_plafond_mensualite_d832_10_3_114 = False - elif match_arg_320.code == NeufOuAncien_Code.Ancien: - _ = match_arg_320.value + elif match_arg_369.code == NeufOuAncien_Code.Ancien: + _ = match_arg_369.value temp_calcul_plafond_mensualite_d832_10_3_114 = True if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2002,1,1)) and ((date_signature_pret_1 < date_of_numbers(2002,6,30)) and (temp_calcul_plafond_mensualite_d832_10_3_114 and - temp_calcul_plafond_mensualite_d832_10_3_113)))): - match_arg_321 = zone_2 - if match_arg_321.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_321.value + temp_calcul_plafond_mensualite_d832_10_3_113))))): + match_arg_370 = zone_2 + if match_arg_370.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_370.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_322 = situation_familiale_calcul_apl_4 - if match_arg_322.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_322.value + match_arg_371 = situation_familiale_calcul_apl_4 + if match_arg_371.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_371.value return money_of_cents_string("24849") - elif match_arg_322.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_322.value + elif match_arg_371.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_371.value return money_of_cents_string("29987") else: return (money_of_cents_string("35125") + (money_of_cents_string("5138") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_321.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_321.value + elif match_arg_370.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_370.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_323 = situation_familiale_calcul_apl_4 - if match_arg_323.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_323.value + match_arg_372 = situation_familiale_calcul_apl_4 + if match_arg_372.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_372.value return money_of_cents_string("22151") - elif match_arg_323.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_323.value + elif match_arg_372.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_372.value return money_of_cents_string("26679") else: return (money_of_cents_string("31207") + (money_of_cents_string("4528") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_321.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_321.value + elif match_arg_370.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_370.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_324 = situation_familiale_calcul_apl_4 - if match_arg_324.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_324.value + match_arg_373 = situation_familiale_calcul_apl_4 + if match_arg_373.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_373.value return money_of_cents_string("20687") - elif match_arg_324.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_324.value + elif match_arg_373.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_373.value return money_of_cents_string("24818") else: return (money_of_cents_string("28949") + @@ -11019,80 +12730,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_115(_:Unit): - match_arg_325 = type_pret - if match_arg_325.code == TypePret_Code.D331_32: - _ = match_arg_325.value + match_arg_374 = type_pret + if match_arg_374.code == TypePret_Code.D331_32: + _ = match_arg_374.value temp_calcul_plafond_mensualite_d832_10_3_116 = False - elif match_arg_325.code == TypePret_Code.D331_63_64: - _ = match_arg_325.value + elif match_arg_374.code == TypePret_Code.D331_63_64: + _ = match_arg_374.value temp_calcul_plafond_mensualite_d832_10_3_116 = True - elif match_arg_325.code == TypePret_Code.D331_59_8: - _ = match_arg_325.value + elif match_arg_374.code == TypePret_Code.D331_59_8: + _ = match_arg_374.value temp_calcul_plafond_mensualite_d832_10_3_116 = False - elif match_arg_325.code == TypePret_Code.D331_76_1: - _ = match_arg_325.value + elif match_arg_374.code == TypePret_Code.D331_76_1: + _ = match_arg_374.value temp_calcul_plafond_mensualite_d832_10_3_116 = False - elif match_arg_325.code == TypePret_Code.Autre: - _ = match_arg_325.value + elif match_arg_374.code == TypePret_Code.Autre: + _ = match_arg_374.value temp_calcul_plafond_mensualite_d832_10_3_116 = False - match_arg_326 = anciennete_logement - if match_arg_326.code == NeufOuAncien_Code.Neuf: - _ = match_arg_326.value + match_arg_375 = anciennete_logement + if match_arg_375.code == NeufOuAncien_Code.Neuf: + _ = match_arg_375.value temp_calcul_plafond_mensualite_d832_10_3_117 = False - elif match_arg_326.code == NeufOuAncien_Code.Ancien: - _ = match_arg_326.value + elif match_arg_375.code == NeufOuAncien_Code.Ancien: + _ = match_arg_375.value temp_calcul_plafond_mensualite_d832_10_3_117 = True if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2001,7,1)) and ((date_signature_pret_1 < date_of_numbers(2001,12,31)) and (temp_calcul_plafond_mensualite_d832_10_3_117 and - temp_calcul_plafond_mensualite_d832_10_3_116)))): - match_arg_327 = zone_2 - if match_arg_327.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_327.value + temp_calcul_plafond_mensualite_d832_10_3_116))))): + match_arg_376 = zone_2 + if match_arg_376.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_376.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_328 = situation_familiale_calcul_apl_4 - if match_arg_328.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_328.value + match_arg_377 = situation_familiale_calcul_apl_4 + if match_arg_377.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_377.value temp_calcul_plafond_mensualite_d832_10_3_118 = money_of_cents_string("163000") - elif match_arg_328.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_328.value + elif match_arg_377.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_377.value temp_calcul_plafond_mensualite_d832_10_3_118 = money_of_cents_string("196700") else: temp_calcul_plafond_mensualite_d832_10_3_118 = (money_of_cents_string("230400") + (money_of_cents_string("33700") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_327.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_327.value + elif match_arg_376.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_376.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_329 = situation_familiale_calcul_apl_4 - if match_arg_329.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_329.value + match_arg_378 = situation_familiale_calcul_apl_4 + if match_arg_378.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_378.value temp_calcul_plafond_mensualite_d832_10_3_118 = money_of_cents_string("145300") - elif match_arg_329.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_329.value + elif match_arg_378.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_378.value temp_calcul_plafond_mensualite_d832_10_3_118 = money_of_cents_string("175000") else: temp_calcul_plafond_mensualite_d832_10_3_118 = (money_of_cents_string("204700") + (money_of_cents_string("29700") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_327.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_327.value + elif match_arg_376.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_376.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_330 = situation_familiale_calcul_apl_4 - if match_arg_330.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_330.value + match_arg_379 = situation_familiale_calcul_apl_4 + if match_arg_379.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_379.value temp_calcul_plafond_mensualite_d832_10_3_118 = money_of_cents_string("135700") - elif match_arg_330.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_330.value + elif match_arg_379.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_379.value temp_calcul_plafond_mensualite_d832_10_3_118 = money_of_cents_string("162800") else: temp_calcul_plafond_mensualite_d832_10_3_118 = (money_of_cents_string("189900") + @@ -11104,80 +12817,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_119(_:Unit): - match_arg_331 = type_pret - if match_arg_331.code == TypePret_Code.D331_32: - _ = match_arg_331.value + match_arg_380 = type_pret + if match_arg_380.code == TypePret_Code.D331_32: + _ = match_arg_380.value temp_calcul_plafond_mensualite_d832_10_3_120 = False - elif match_arg_331.code == TypePret_Code.D331_63_64: - _ = match_arg_331.value + elif match_arg_380.code == TypePret_Code.D331_63_64: + _ = match_arg_380.value temp_calcul_plafond_mensualite_d832_10_3_120 = True - elif match_arg_331.code == TypePret_Code.D331_59_8: - _ = match_arg_331.value + elif match_arg_380.code == TypePret_Code.D331_59_8: + _ = match_arg_380.value temp_calcul_plafond_mensualite_d832_10_3_120 = False - elif match_arg_331.code == TypePret_Code.D331_76_1: - _ = match_arg_331.value + elif match_arg_380.code == TypePret_Code.D331_76_1: + _ = match_arg_380.value temp_calcul_plafond_mensualite_d832_10_3_120 = False - elif match_arg_331.code == TypePret_Code.Autre: - _ = match_arg_331.value + elif match_arg_380.code == TypePret_Code.Autre: + _ = match_arg_380.value temp_calcul_plafond_mensualite_d832_10_3_120 = False - match_arg_332 = anciennete_logement - if match_arg_332.code == NeufOuAncien_Code.Neuf: - _ = match_arg_332.value + match_arg_381 = anciennete_logement + if match_arg_381.code == NeufOuAncien_Code.Neuf: + _ = match_arg_381.value temp_calcul_plafond_mensualite_d832_10_3_121 = True - elif match_arg_332.code == NeufOuAncien_Code.Ancien: - _ = match_arg_332.value + elif match_arg_381.code == NeufOuAncien_Code.Ancien: + _ = match_arg_381.value temp_calcul_plafond_mensualite_d832_10_3_121 = False if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2002,1,1)) and ((date_signature_pret_1 < date_of_numbers(2002,6,30)) and (temp_calcul_plafond_mensualite_d832_10_3_121 and - temp_calcul_plafond_mensualite_d832_10_3_120)))): - match_arg_333 = zone_2 - if match_arg_333.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_333.value + temp_calcul_plafond_mensualite_d832_10_3_120))))): + match_arg_382 = zone_2 + if match_arg_382.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_382.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_334 = situation_familiale_calcul_apl_4 - if match_arg_334.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_334.value + match_arg_383 = situation_familiale_calcul_apl_4 + if match_arg_383.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_383.value return money_of_cents_string("30871") - elif match_arg_334.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_334.value + elif match_arg_383.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_383.value return money_of_cents_string("37243") else: return (money_of_cents_string("43615") + (money_of_cents_string("6372") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_333.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_333.value + elif match_arg_382.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_382.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_335 = situation_familiale_calcul_apl_4 - if match_arg_335.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_335.value + match_arg_384 = situation_familiale_calcul_apl_4 + if match_arg_384.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_384.value return money_of_cents_string("27548") - elif match_arg_335.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_335.value + elif match_arg_384.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_384.value return money_of_cents_string("33148") else: return (money_of_cents_string("38768") + (money_of_cents_string("5610") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_333.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_333.value + elif match_arg_382.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_382.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_336 = situation_familiale_calcul_apl_4 - if match_arg_336.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_336.value + match_arg_385 = situation_familiale_calcul_apl_4 + if match_arg_385.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_385.value return money_of_cents_string("25718") - elif match_arg_336.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_336.value + elif match_arg_385.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_385.value return money_of_cents_string("30840") else: return (money_of_cents_string("35962") + @@ -11187,80 +12902,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_122(_:Unit): - match_arg_337 = type_pret - if match_arg_337.code == TypePret_Code.D331_32: - _ = match_arg_337.value + match_arg_386 = type_pret + if match_arg_386.code == TypePret_Code.D331_32: + _ = match_arg_386.value temp_calcul_plafond_mensualite_d832_10_3_123 = False - elif match_arg_337.code == TypePret_Code.D331_63_64: - _ = match_arg_337.value + elif match_arg_386.code == TypePret_Code.D331_63_64: + _ = match_arg_386.value temp_calcul_plafond_mensualite_d832_10_3_123 = True - elif match_arg_337.code == TypePret_Code.D331_59_8: - _ = match_arg_337.value + elif match_arg_386.code == TypePret_Code.D331_59_8: + _ = match_arg_386.value temp_calcul_plafond_mensualite_d832_10_3_123 = False - elif match_arg_337.code == TypePret_Code.D331_76_1: - _ = match_arg_337.value + elif match_arg_386.code == TypePret_Code.D331_76_1: + _ = match_arg_386.value temp_calcul_plafond_mensualite_d832_10_3_123 = False - elif match_arg_337.code == TypePret_Code.Autre: - _ = match_arg_337.value + elif match_arg_386.code == TypePret_Code.Autre: + _ = match_arg_386.value temp_calcul_plafond_mensualite_d832_10_3_123 = False - match_arg_338 = anciennete_logement - if match_arg_338.code == NeufOuAncien_Code.Neuf: - _ = match_arg_338.value + match_arg_387 = anciennete_logement + if match_arg_387.code == NeufOuAncien_Code.Neuf: + _ = match_arg_387.value temp_calcul_plafond_mensualite_d832_10_3_124 = True - elif match_arg_338.code == NeufOuAncien_Code.Ancien: - _ = match_arg_338.value + elif match_arg_387.code == NeufOuAncien_Code.Ancien: + _ = match_arg_387.value temp_calcul_plafond_mensualite_d832_10_3_124 = False if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2001,7,1)) and ((date_signature_pret_1 < date_of_numbers(2001,12,31)) and (temp_calcul_plafond_mensualite_d832_10_3_124 and - temp_calcul_plafond_mensualite_d832_10_3_123)))): - match_arg_339 = zone_2 - if match_arg_339.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_339.value + temp_calcul_plafond_mensualite_d832_10_3_123))))): + match_arg_388 = zone_2 + if match_arg_388.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_388.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_340 = situation_familiale_calcul_apl_4 - if match_arg_340.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_340.value + match_arg_389 = situation_familiale_calcul_apl_4 + if match_arg_389.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_389.value temp_calcul_plafond_mensualite_d832_10_3_125 = money_of_cents_string("202500") - elif match_arg_340.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_340.value + elif match_arg_389.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_389.value temp_calcul_plafond_mensualite_d832_10_3_125 = money_of_cents_string("244300") else: temp_calcul_plafond_mensualite_d832_10_3_125 = (money_of_cents_string("286100") + (money_of_cents_string("41800") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_339.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_339.value + elif match_arg_388.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_388.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_341 = situation_familiale_calcul_apl_4 - if match_arg_341.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_341.value + match_arg_390 = situation_familiale_calcul_apl_4 + if match_arg_390.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_390.value temp_calcul_plafond_mensualite_d832_10_3_125 = money_of_cents_string("180700") - elif match_arg_341.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_341.value + elif match_arg_390.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_390.value temp_calcul_plafond_mensualite_d832_10_3_125 = money_of_cents_string("217500") else: temp_calcul_plafond_mensualite_d832_10_3_125 = (money_of_cents_string("254300") + (money_of_cents_string("36800") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_339.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_339.value + elif match_arg_388.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_388.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_342 = situation_familiale_calcul_apl_4 - if match_arg_342.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_342.value + match_arg_391 = situation_familiale_calcul_apl_4 + if match_arg_391.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_391.value temp_calcul_plafond_mensualite_d832_10_3_125 = money_of_cents_string("168700") - elif match_arg_342.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_342.value + elif match_arg_391.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_391.value temp_calcul_plafond_mensualite_d832_10_3_125 = money_of_cents_string("202300") else: temp_calcul_plafond_mensualite_d832_10_3_125 = (money_of_cents_string("235900") + @@ -11272,80 +12989,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_126(_:Unit): - match_arg_343 = type_pret - if match_arg_343.code == TypePret_Code.D331_32: - _ = match_arg_343.value + match_arg_392 = type_pret + if match_arg_392.code == TypePret_Code.D331_32: + _ = match_arg_392.value temp_calcul_plafond_mensualite_d832_10_3_127 = False - elif match_arg_343.code == TypePret_Code.D331_63_64: - _ = match_arg_343.value + elif match_arg_392.code == TypePret_Code.D331_63_64: + _ = match_arg_392.value temp_calcul_plafond_mensualite_d832_10_3_127 = True - elif match_arg_343.code == TypePret_Code.D331_59_8: - _ = match_arg_343.value + elif match_arg_392.code == TypePret_Code.D331_59_8: + _ = match_arg_392.value temp_calcul_plafond_mensualite_d832_10_3_127 = False - elif match_arg_343.code == TypePret_Code.D331_76_1: - _ = match_arg_343.value + elif match_arg_392.code == TypePret_Code.D331_76_1: + _ = match_arg_392.value temp_calcul_plafond_mensualite_d832_10_3_127 = False - elif match_arg_343.code == TypePret_Code.Autre: - _ = match_arg_343.value + elif match_arg_392.code == TypePret_Code.Autre: + _ = match_arg_392.value temp_calcul_plafond_mensualite_d832_10_3_127 = False - match_arg_344 = anciennete_logement - if match_arg_344.code == NeufOuAncien_Code.Neuf: - _ = match_arg_344.value + match_arg_393 = anciennete_logement + if match_arg_393.code == NeufOuAncien_Code.Neuf: + _ = match_arg_393.value temp_calcul_plafond_mensualite_d832_10_3_128 = False - elif match_arg_344.code == NeufOuAncien_Code.Ancien: - _ = match_arg_344.value + elif match_arg_393.code == NeufOuAncien_Code.Ancien: + _ = match_arg_393.value temp_calcul_plafond_mensualite_d832_10_3_128 = True if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2000,6,30)) and ((date_signature_pret_1 <= date_of_numbers(2001,6,30)) and (temp_calcul_plafond_mensualite_d832_10_3_128 and - temp_calcul_plafond_mensualite_d832_10_3_127)))): - match_arg_345 = zone_2 - if match_arg_345.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_345.value + temp_calcul_plafond_mensualite_d832_10_3_127))))): + match_arg_394 = zone_2 + if match_arg_394.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_394.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_346 = situation_familiale_calcul_apl_4 - if match_arg_346.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_346.value + match_arg_395 = situation_familiale_calcul_apl_4 + if match_arg_395.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_395.value temp_calcul_plafond_mensualite_d832_10_3_129 = money_of_cents_string("161100") - elif match_arg_346.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_346.value + elif match_arg_395.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_395.value temp_calcul_plafond_mensualite_d832_10_3_129 = money_of_cents_string("194400") else: temp_calcul_plafond_mensualite_d832_10_3_129 = (money_of_cents_string("227700") + (money_of_cents_string("33300") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_345.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_345.value + elif match_arg_394.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_394.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_347 = situation_familiale_calcul_apl_4 - if match_arg_347.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_347.value + match_arg_396 = situation_familiale_calcul_apl_4 + if match_arg_396.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_396.value temp_calcul_plafond_mensualite_d832_10_3_129 = money_of_cents_string("143600") - elif match_arg_347.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_347.value + elif match_arg_396.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_396.value temp_calcul_plafond_mensualite_d832_10_3_129 = money_of_cents_string("172900") else: temp_calcul_plafond_mensualite_d832_10_3_129 = (money_of_cents_string("202200") + (money_of_cents_string("29300") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_345.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_345.value + elif match_arg_394.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_394.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_348 = situation_familiale_calcul_apl_4 - if match_arg_348.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_348.value + match_arg_397 = situation_familiale_calcul_apl_4 + if match_arg_397.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_397.value temp_calcul_plafond_mensualite_d832_10_3_129 = money_of_cents_string("134100") - elif match_arg_348.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_348.value + elif match_arg_397.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_397.value temp_calcul_plafond_mensualite_d832_10_3_129 = money_of_cents_string("160900") else: temp_calcul_plafond_mensualite_d832_10_3_129 = (money_of_cents_string("187700") + @@ -11357,80 +13076,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_130(_:Unit): - match_arg_349 = type_pret - if match_arg_349.code == TypePret_Code.D331_32: - _ = match_arg_349.value + match_arg_398 = type_pret + if match_arg_398.code == TypePret_Code.D331_32: + _ = match_arg_398.value temp_calcul_plafond_mensualite_d832_10_3_131 = False - elif match_arg_349.code == TypePret_Code.D331_63_64: - _ = match_arg_349.value + elif match_arg_398.code == TypePret_Code.D331_63_64: + _ = match_arg_398.value temp_calcul_plafond_mensualite_d832_10_3_131 = True - elif match_arg_349.code == TypePret_Code.D331_59_8: - _ = match_arg_349.value + elif match_arg_398.code == TypePret_Code.D331_59_8: + _ = match_arg_398.value temp_calcul_plafond_mensualite_d832_10_3_131 = False - elif match_arg_349.code == TypePret_Code.D331_76_1: - _ = match_arg_349.value + elif match_arg_398.code == TypePret_Code.D331_76_1: + _ = match_arg_398.value temp_calcul_plafond_mensualite_d832_10_3_131 = False - elif match_arg_349.code == TypePret_Code.Autre: - _ = match_arg_349.value + elif match_arg_398.code == TypePret_Code.Autre: + _ = match_arg_398.value temp_calcul_plafond_mensualite_d832_10_3_131 = False - match_arg_350 = anciennete_logement - if match_arg_350.code == NeufOuAncien_Code.Neuf: - _ = match_arg_350.value + match_arg_399 = anciennete_logement + if match_arg_399.code == NeufOuAncien_Code.Neuf: + _ = match_arg_399.value temp_calcul_plafond_mensualite_d832_10_3_132 = True - elif match_arg_350.code == NeufOuAncien_Code.Ancien: - _ = match_arg_350.value + elif match_arg_399.code == NeufOuAncien_Code.Ancien: + _ = match_arg_399.value temp_calcul_plafond_mensualite_d832_10_3_132 = False if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(2000,6,30)) and ((date_signature_pret_1 <= date_of_numbers(2001,6,30)) and (temp_calcul_plafond_mensualite_d832_10_3_132 and - temp_calcul_plafond_mensualite_d832_10_3_131)))): - match_arg_351 = zone_2 - if match_arg_351.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_351.value + temp_calcul_plafond_mensualite_d832_10_3_131))))): + match_arg_400 = zone_2 + if match_arg_400.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_400.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_352 = situation_familiale_calcul_apl_4 - if match_arg_352.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_352.value + match_arg_401 = situation_familiale_calcul_apl_4 + if match_arg_401.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_401.value temp_calcul_plafond_mensualite_d832_10_3_133 = money_of_cents_string("200100") - elif match_arg_352.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_352.value + elif match_arg_401.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_401.value temp_calcul_plafond_mensualite_d832_10_3_133 = money_of_cents_string("141400") else: temp_calcul_plafond_mensualite_d832_10_3_133 = (money_of_cents_string("182700") + (money_of_cents_string("41300") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_351.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_351.value + elif match_arg_400.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_400.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_353 = situation_familiale_calcul_apl_4 - if match_arg_353.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_353.value + match_arg_402 = situation_familiale_calcul_apl_4 + if match_arg_402.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_402.value temp_calcul_plafond_mensualite_d832_10_3_133 = money_of_cents_string("178600") - elif match_arg_353.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_353.value + elif match_arg_402.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_402.value temp_calcul_plafond_mensualite_d832_10_3_133 = money_of_cents_string("215000") else: temp_calcul_plafond_mensualite_d832_10_3_133 = (money_of_cents_string("251400") + (money_of_cents_string("36400") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_351.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_351.value + elif match_arg_400.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_400.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_354 = situation_familiale_calcul_apl_4 - if match_arg_354.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_354.value + match_arg_403 = situation_familiale_calcul_apl_4 + if match_arg_403.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_403.value temp_calcul_plafond_mensualite_d832_10_3_133 = money_of_cents_string("166700") - elif match_arg_354.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_354.value + elif match_arg_403.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_403.value temp_calcul_plafond_mensualite_d832_10_3_133 = money_of_cents_string("199900") else: temp_calcul_plafond_mensualite_d832_10_3_133 = (money_of_cents_string("233100") + @@ -11442,80 +13163,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_134(_:Unit): - match_arg_355 = type_pret - if match_arg_355.code == TypePret_Code.D331_32: - _ = match_arg_355.value + match_arg_404 = type_pret + if match_arg_404.code == TypePret_Code.D331_32: + _ = match_arg_404.value temp_calcul_plafond_mensualite_d832_10_3_135 = False - elif match_arg_355.code == TypePret_Code.D331_63_64: - _ = match_arg_355.value + elif match_arg_404.code == TypePret_Code.D331_63_64: + _ = match_arg_404.value temp_calcul_plafond_mensualite_d832_10_3_135 = True - elif match_arg_355.code == TypePret_Code.D331_59_8: - _ = match_arg_355.value + elif match_arg_404.code == TypePret_Code.D331_59_8: + _ = match_arg_404.value temp_calcul_plafond_mensualite_d832_10_3_135 = False - elif match_arg_355.code == TypePret_Code.D331_76_1: - _ = match_arg_355.value + elif match_arg_404.code == TypePret_Code.D331_76_1: + _ = match_arg_404.value temp_calcul_plafond_mensualite_d832_10_3_135 = False - elif match_arg_355.code == TypePret_Code.Autre: - _ = match_arg_355.value + elif match_arg_404.code == TypePret_Code.Autre: + _ = match_arg_404.value temp_calcul_plafond_mensualite_d832_10_3_135 = False - match_arg_356 = anciennete_logement - if match_arg_356.code == NeufOuAncien_Code.Neuf: - _ = match_arg_356.value + match_arg_405 = anciennete_logement + if match_arg_405.code == NeufOuAncien_Code.Neuf: + _ = match_arg_405.value temp_calcul_plafond_mensualite_d832_10_3_136 = False - elif match_arg_356.code == NeufOuAncien_Code.Ancien: - _ = match_arg_356.value + elif match_arg_405.code == NeufOuAncien_Code.Ancien: + _ = match_arg_405.value temp_calcul_plafond_mensualite_d832_10_3_136 = True if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(1994,11,27)) and ((date_signature_pret_1 < date_of_numbers(2000,6,30)) and (temp_calcul_plafond_mensualite_d832_10_3_136 and - temp_calcul_plafond_mensualite_d832_10_3_135)))): - match_arg_357 = zone_2 - if match_arg_357.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_357.value + temp_calcul_plafond_mensualite_d832_10_3_135))))): + match_arg_406 = zone_2 + if match_arg_406.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_406.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_358 = situation_familiale_calcul_apl_4 - if match_arg_358.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_358.value + match_arg_407 = situation_familiale_calcul_apl_4 + if match_arg_407.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_407.value temp_calcul_plafond_mensualite_d832_10_3_137 = money_of_cents_string("159500") - elif match_arg_358.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_358.value + elif match_arg_407.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_407.value temp_calcul_plafond_mensualite_d832_10_3_137 = money_of_cents_string("192500") else: temp_calcul_plafond_mensualite_d832_10_3_137 = (money_of_cents_string("225500") + (money_of_cents_string("33000") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_357.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_357.value + elif match_arg_406.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_406.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_359 = situation_familiale_calcul_apl_4 - if match_arg_359.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_359.value + match_arg_408 = situation_familiale_calcul_apl_4 + if match_arg_408.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_408.value temp_calcul_plafond_mensualite_d832_10_3_137 = money_of_cents_string("142200") - elif match_arg_359.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_359.value + elif match_arg_408.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_408.value temp_calcul_plafond_mensualite_d832_10_3_137 = money_of_cents_string("171200") else: temp_calcul_plafond_mensualite_d832_10_3_137 = (money_of_cents_string("200200") + (money_of_cents_string("29000") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_357.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_357.value + elif match_arg_406.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_406.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_360 = situation_familiale_calcul_apl_4 - if match_arg_360.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_360.value + match_arg_409 = situation_familiale_calcul_apl_4 + if match_arg_409.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_409.value temp_calcul_plafond_mensualite_d832_10_3_137 = money_of_cents_string("132800") - elif match_arg_360.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_360.value + elif match_arg_409.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_409.value temp_calcul_plafond_mensualite_d832_10_3_137 = money_of_cents_string("159300") else: temp_calcul_plafond_mensualite_d832_10_3_137 = (money_of_cents_string("185800") + @@ -11527,80 +13250,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_138(_:Unit): - match_arg_361 = type_pret - if match_arg_361.code == TypePret_Code.D331_32: - _ = match_arg_361.value + match_arg_410 = type_pret + if match_arg_410.code == TypePret_Code.D331_32: + _ = match_arg_410.value temp_calcul_plafond_mensualite_d832_10_3_139 = False - elif match_arg_361.code == TypePret_Code.D331_63_64: - _ = match_arg_361.value + elif match_arg_410.code == TypePret_Code.D331_63_64: + _ = match_arg_410.value temp_calcul_plafond_mensualite_d832_10_3_139 = True - elif match_arg_361.code == TypePret_Code.D331_59_8: - _ = match_arg_361.value + elif match_arg_410.code == TypePret_Code.D331_59_8: + _ = match_arg_410.value temp_calcul_plafond_mensualite_d832_10_3_139 = False - elif match_arg_361.code == TypePret_Code.D331_76_1: - _ = match_arg_361.value + elif match_arg_410.code == TypePret_Code.D331_76_1: + _ = match_arg_410.value temp_calcul_plafond_mensualite_d832_10_3_139 = False - elif match_arg_361.code == TypePret_Code.Autre: - _ = match_arg_361.value + elif match_arg_410.code == TypePret_Code.Autre: + _ = match_arg_410.value temp_calcul_plafond_mensualite_d832_10_3_139 = False - match_arg_362 = anciennete_logement - if match_arg_362.code == NeufOuAncien_Code.Neuf: - _ = match_arg_362.value + match_arg_411 = anciennete_logement + if match_arg_411.code == NeufOuAncien_Code.Neuf: + _ = match_arg_411.value temp_calcul_plafond_mensualite_d832_10_3_140 = True - elif match_arg_362.code == NeufOuAncien_Code.Ancien: - _ = match_arg_362.value + elif match_arg_411.code == NeufOuAncien_Code.Ancien: + _ = match_arg_411.value temp_calcul_plafond_mensualite_d832_10_3_140 = False if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(1994,11,27)) and ((date_signature_pret_1 < date_of_numbers(2000,6,30)) and (temp_calcul_plafond_mensualite_d832_10_3_140 and - temp_calcul_plafond_mensualite_d832_10_3_139)))): - match_arg_363 = zone_2 - if match_arg_363.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_363.value + temp_calcul_plafond_mensualite_d832_10_3_139))))): + match_arg_412 = zone_2 + if match_arg_412.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_412.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_364 = situation_familiale_calcul_apl_4 - if match_arg_364.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_364.value + match_arg_413 = situation_familiale_calcul_apl_4 + if match_arg_413.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_413.value temp_calcul_plafond_mensualite_d832_10_3_141 = money_of_cents_string("198100") - elif match_arg_364.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_364.value + elif match_arg_413.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_413.value temp_calcul_plafond_mensualite_d832_10_3_141 = money_of_cents_string("239000") else: temp_calcul_plafond_mensualite_d832_10_3_141 = (money_of_cents_string("279900") + (money_of_cents_string("40900") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_363.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_363.value + elif match_arg_412.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_412.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_365 = situation_familiale_calcul_apl_4 - if match_arg_365.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_365.value + match_arg_414 = situation_familiale_calcul_apl_4 + if match_arg_414.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_414.value temp_calcul_plafond_mensualite_d832_10_3_141 = money_of_cents_string("176800") - elif match_arg_365.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_365.value + elif match_arg_414.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_414.value temp_calcul_plafond_mensualite_d832_10_3_141 = money_of_cents_string("212800") else: temp_calcul_plafond_mensualite_d832_10_3_141 = (money_of_cents_string("248800") + (money_of_cents_string("36000") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_363.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_363.value + elif match_arg_412.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_412.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_366 = situation_familiale_calcul_apl_4 - if match_arg_366.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_366.value + match_arg_415 = situation_familiale_calcul_apl_4 + if match_arg_415.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_415.value temp_calcul_plafond_mensualite_d832_10_3_141 = money_of_cents_string("165000") - elif match_arg_366.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_366.value + elif match_arg_415.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_415.value temp_calcul_plafond_mensualite_d832_10_3_141 = money_of_cents_string("197900") else: temp_calcul_plafond_mensualite_d832_10_3_141 = (money_of_cents_string("230800") + @@ -11612,80 +13337,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_142(_:Unit): - match_arg_367 = type_pret - if match_arg_367.code == TypePret_Code.D331_32: - _ = match_arg_367.value + match_arg_416 = type_pret + if match_arg_416.code == TypePret_Code.D331_32: + _ = match_arg_416.value temp_calcul_plafond_mensualite_d832_10_3_143 = False - elif match_arg_367.code == TypePret_Code.D331_63_64: - _ = match_arg_367.value + elif match_arg_416.code == TypePret_Code.D331_63_64: + _ = match_arg_416.value temp_calcul_plafond_mensualite_d832_10_3_143 = True - elif match_arg_367.code == TypePret_Code.D331_59_8: - _ = match_arg_367.value + elif match_arg_416.code == TypePret_Code.D331_59_8: + _ = match_arg_416.value temp_calcul_plafond_mensualite_d832_10_3_143 = False - elif match_arg_367.code == TypePret_Code.D331_76_1: - _ = match_arg_367.value + elif match_arg_416.code == TypePret_Code.D331_76_1: + _ = match_arg_416.value temp_calcul_plafond_mensualite_d832_10_3_143 = False - elif match_arg_367.code == TypePret_Code.Autre: - _ = match_arg_367.value + elif match_arg_416.code == TypePret_Code.Autre: + _ = match_arg_416.value temp_calcul_plafond_mensualite_d832_10_3_143 = False - match_arg_368 = anciennete_logement - if match_arg_368.code == NeufOuAncien_Code.Neuf: - _ = match_arg_368.value + match_arg_417 = anciennete_logement + if match_arg_417.code == NeufOuAncien_Code.Neuf: + _ = match_arg_417.value temp_calcul_plafond_mensualite_d832_10_3_144 = False - elif match_arg_368.code == NeufOuAncien_Code.Ancien: - _ = match_arg_368.value + elif match_arg_417.code == NeufOuAncien_Code.Ancien: + _ = match_arg_417.value temp_calcul_plafond_mensualite_d832_10_3_144 = True if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(1992,6,30)) and ((date_signature_pret_1 < date_of_numbers(1994,11,27)) and (temp_calcul_plafond_mensualite_d832_10_3_144 and - temp_calcul_plafond_mensualite_d832_10_3_143)))): - match_arg_369 = zone_2 - if match_arg_369.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_369.value + temp_calcul_plafond_mensualite_d832_10_3_143))))): + match_arg_418 = zone_2 + if match_arg_418.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_418.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_370 = situation_familiale_calcul_apl_4 - if match_arg_370.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_370.value + match_arg_419 = situation_familiale_calcul_apl_4 + if match_arg_419.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_419.value temp_calcul_plafond_mensualite_d832_10_3_145 = money_of_cents_string("167800") - elif match_arg_370.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_370.value + elif match_arg_419.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_419.value temp_calcul_plafond_mensualite_d832_10_3_145 = money_of_cents_string("202500") else: temp_calcul_plafond_mensualite_d832_10_3_145 = (money_of_cents_string("237200") + (money_of_cents_string("34700") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_369.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_369.value + elif match_arg_418.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_418.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_371 = situation_familiale_calcul_apl_4 - if match_arg_371.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_371.value + match_arg_420 = situation_familiale_calcul_apl_4 + if match_arg_420.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_420.value temp_calcul_plafond_mensualite_d832_10_3_145 = money_of_cents_string("149600") - elif match_arg_371.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_371.value + elif match_arg_420.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_420.value temp_calcul_plafond_mensualite_d832_10_3_145 = money_of_cents_string("180100") else: temp_calcul_plafond_mensualite_d832_10_3_145 = (money_of_cents_string("210600") + (money_of_cents_string("30500") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_369.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_369.value + elif match_arg_418.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_418.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_372 = situation_familiale_calcul_apl_4 - if match_arg_372.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_372.value + match_arg_421 = situation_familiale_calcul_apl_4 + if match_arg_421.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_421.value temp_calcul_plafond_mensualite_d832_10_3_145 = money_of_cents_string("139700") - elif match_arg_372.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_372.value + elif match_arg_421.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_421.value temp_calcul_plafond_mensualite_d832_10_3_145 = money_of_cents_string("167600") else: temp_calcul_plafond_mensualite_d832_10_3_145 = (money_of_cents_string("195500") + @@ -11697,80 +13424,82 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError def temp_calcul_plafond_mensualite_d832_10_3_146(_:Unit): - match_arg_373 = type_pret - if match_arg_373.code == TypePret_Code.D331_32: - _ = match_arg_373.value + match_arg_422 = type_pret + if match_arg_422.code == TypePret_Code.D331_32: + _ = match_arg_422.value temp_calcul_plafond_mensualite_d832_10_3_147 = False - elif match_arg_373.code == TypePret_Code.D331_63_64: - _ = match_arg_373.value + elif match_arg_422.code == TypePret_Code.D331_63_64: + _ = match_arg_422.value temp_calcul_plafond_mensualite_d832_10_3_147 = True - elif match_arg_373.code == TypePret_Code.D331_59_8: - _ = match_arg_373.value + elif match_arg_422.code == TypePret_Code.D331_59_8: + _ = match_arg_422.value temp_calcul_plafond_mensualite_d832_10_3_147 = False - elif match_arg_373.code == TypePret_Code.D331_76_1: - _ = match_arg_373.value + elif match_arg_422.code == TypePret_Code.D331_76_1: + _ = match_arg_422.value temp_calcul_plafond_mensualite_d832_10_3_147 = False - elif match_arg_373.code == TypePret_Code.Autre: - _ = match_arg_373.value + elif match_arg_422.code == TypePret_Code.Autre: + _ = match_arg_422.value temp_calcul_plafond_mensualite_d832_10_3_147 = False - match_arg_374 = anciennete_logement - if match_arg_374.code == NeufOuAncien_Code.Neuf: - _ = match_arg_374.value + match_arg_423 = anciennete_logement + if match_arg_423.code == NeufOuAncien_Code.Neuf: + _ = match_arg_423.value temp_calcul_plafond_mensualite_d832_10_3_148 = True - elif match_arg_374.code == NeufOuAncien_Code.Ancien: - _ = match_arg_374.value + elif match_arg_423.code == NeufOuAncien_Code.Ancien: + _ = match_arg_423.value temp_calcul_plafond_mensualite_d832_10_3_148 = False if ((date_courante_8 >= + date_of_numbers(2019,10,1)) and + ((date_courante_8 >= date_of_numbers(2020,10,1)) and ((date_signature_pret_1 >= date_of_numbers(1992,6,30)) and ((date_signature_pret_1 < date_of_numbers(1994,11,27)) and (temp_calcul_plafond_mensualite_d832_10_3_148 and - temp_calcul_plafond_mensualite_d832_10_3_147)))): - match_arg_375 = zone_2 - if match_arg_375.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_375.value + temp_calcul_plafond_mensualite_d832_10_3_147))))): + match_arg_424 = zone_2 + if match_arg_424.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_424.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_376 = situation_familiale_calcul_apl_4 - if match_arg_376.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_376.value + match_arg_425 = situation_familiale_calcul_apl_4 + if match_arg_425.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_425.value temp_calcul_plafond_mensualite_d832_10_3_149 = money_of_cents_string("208500") - elif match_arg_376.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_376.value + elif match_arg_425.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_425.value temp_calcul_plafond_mensualite_d832_10_3_149 = money_of_cents_string("251500") else: temp_calcul_plafond_mensualite_d832_10_3_149 = (money_of_cents_string("294500") + (money_of_cents_string("43000") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_375.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_375.value + elif match_arg_424.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_424.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_377 = situation_familiale_calcul_apl_4 - if match_arg_377.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_377.value + match_arg_426 = situation_familiale_calcul_apl_4 + if match_arg_426.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_426.value temp_calcul_plafond_mensualite_d832_10_3_149 = money_of_cents_string("186000") - elif match_arg_377.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_377.value + elif match_arg_426.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_426.value temp_calcul_plafond_mensualite_d832_10_3_149 = money_of_cents_string("223900") else: temp_calcul_plafond_mensualite_d832_10_3_149 = (money_of_cents_string("261800") + (money_of_cents_string("37900") * decimal_of_integer((nombre_personnes_a_charge_4 - integer_of_string("1"))))) - elif match_arg_375.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_375.value + elif match_arg_424.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_424.value if (nombre_personnes_a_charge_4 == integer_of_string("0")): - match_arg_378 = situation_familiale_calcul_apl_4 - if match_arg_378.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_378.value + match_arg_427 = situation_familiale_calcul_apl_4 + if match_arg_427.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_427.value temp_calcul_plafond_mensualite_d832_10_3_149 = money_of_cents_string("173600") - elif match_arg_378.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_378.value + elif match_arg_427.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_427.value temp_calcul_plafond_mensualite_d832_10_3_149 = money_of_cents_string("208200") else: temp_calcul_plafond_mensualite_d832_10_3_149 = (money_of_cents_string("242800") + @@ -11782,9 +13511,9 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError return handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=753, + start_line=760, start_column=11, - end_line=753, end_column=46, + end_line=760, end_column=46, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -11829,8 +13558,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal temp_calcul_plafond_mensualite_d832_10_3_27, temp_calcul_plafond_mensualite_d832_10_3_26) return handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=753, start_column=11, - end_line=753, end_column=46, + start_line=760, start_column=11, + end_line=760, end_column=46, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -11840,9 +13569,9 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal temp_calcul_plafond_mensualite_d832_10_3_1) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=753, + start_line=760, start_column=11, - end_line=753, + end_line=760, end_column=46, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", @@ -11851,8 +13580,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_calcul_plafond_mensualite_d832_10_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=753, start_column=11, - end_line=753, end_column=46, + start_line=760, start_column=11, + end_line=760, end_column=46, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -11863,13 +13592,65 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_n_nombre_parts_d832_11_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=755, start_column=11, - end_line=755, end_column=33, + start_line=762, start_column=11, + end_line=762, end_column=33, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) n_nombre_parts_d832_11_1 = temp_n_nombre_parts_d832_11_1 + try: + try: + if situation_r822_11_13_17: + temp_ressources_menage_avec_d832_18 = ressources_menage_arrondies_3 + else: + temp_ressources_menage_avec_d832_18 = dead_value + raise EmptyError + except EmptyError: + if (ressources_menage_arrondies_3 <= (mensualite_principale * + coefficient_multiplicateur_d832_18)): + temp_ressources_menage_avec_d832_18 = (mensualite_principale * + coefficient_multiplicateur_d832_18) + else: + temp_ressources_menage_avec_d832_18 = ressources_menage_arrondies_3 + except EmptyError: + temp_ressources_menage_avec_d832_18 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=771, start_column=11, + end_line=771, end_column=41, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"])) + ressources_menage_avec_d832_18 = temp_ressources_menage_avec_d832_18 + try: + def temp_traitement_aide_finale_minoration_forfaitaire_2(aide_finale_11:Money): + try: + if ((aide_finale_11 - montant_forfaitaire_d832_10) >= + money_of_cents_string("0")): + return (aide_finale_11 - montant_forfaitaire_d832_10) + else: + return money_of_cents_string("0") + except EmptyError: + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=792, + start_column=10, + end_line=792, + end_column=32, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"])) + except EmptyError: + temp_traitement_aide_finale_minoration_forfaitaire_2 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=792, start_column=10, + end_line=792, end_column=32, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'aide personnalisée au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"])) + traitement_aide_finale_minoration_forfaitaire_2 = temp_traitement_aide_finale_minoration_forfaitaire_2 try: def temp_depense_nette_minimale_d832_10(allocation_mensuelle_2:Money): try: @@ -11885,9 +13666,9 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal return (mensualite_principale - allocation_mensuelle_2) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=760, + start_line=767, start_column=11, - end_line=760, + end_line=767, end_column=41, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", @@ -11896,8 +13677,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_depense_nette_minimale_d832_10 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=760, start_column=11, - end_line=760, end_column=41, + start_line=767, start_column=11, + end_line=767, end_column=41, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -11922,8 +13703,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_plafond_mensualite_d832_10_3_base = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=751, start_column=10, - end_line=751, end_column=14, + start_line=758, start_column=10, + end_line=758, end_column=14, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -11934,8 +13715,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_date_courante_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=792, start_column=14, - end_line=792, end_column=61, + start_line=799, start_column=14, + end_line=799, end_column=61, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -11946,8 +13727,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_ressources_menage_arrondies_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=3482, - start_column=14, end_line=3482, + start_line=3484, + start_column=14, end_line=3484, end_column=75, law_headings=["Article D832-15", "Section 2 : Accession à la propriété", @@ -11962,8 +13743,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_condition_2_du_832_25_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=3481, - start_column=14, end_line=3481, + start_line=3483, + start_column=14, end_line=3483, end_column=69, law_headings=["Article D832-15", "Section 2 : Accession à la propriété", @@ -11978,8 +13759,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_n_nombre_parts_d832_25_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=3484, - start_column=14, end_line=3484, + start_line=3486, + start_column=14, end_line=3486, end_column=70, law_headings=["Article D832-15", "Section 2 : Accession à la propriété", @@ -12001,8 +13782,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_coefficient_prise_en_charge_d832_10_formule = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=757, start_column=10, - end_line=757, end_column=17, + start_line=764, start_column=10, + end_line=764, end_column=17, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -12021,9 +13802,9 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal return money_of_cents_string("0") except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=762, + start_line=769, start_column=11, - end_line=762, + end_line=769, end_column=52, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", @@ -12032,8 +13813,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_abattement_depense_nette_minimale_d832_10 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=762, start_column=11, - end_line=762, end_column=52, + start_line=769, start_column=11, + end_line=769, end_column=52, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -12079,8 +13860,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_plafond_mensualite_d832_10_3_coproprietaires = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=752, start_column=10, - end_line=752, end_column=25, + start_line=759, start_column=10, + end_line=759, end_column=25, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -12092,40 +13873,40 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal def temp_mensualite_minimale_1(_:Unit): return False def temp_mensualite_minimale_2(_:Unit): - match_arg_379 = type_travaux_logement - if match_arg_379.code == TypeTravauxLogementD83215_Code.TravauxPourAcquisitionD832_15_1: - _ = match_arg_379.value + match_arg_428 = type_travaux_logement + if match_arg_428.code == TypeTravauxLogementD83215_Code.TravauxPourAcquisitionD832_15_1: + _ = match_arg_428.value temp_mensualite_minimale_3 = False - elif match_arg_379.code == TypeTravauxLogementD83215_Code.TravauxSurLogementDejaAcquisD832_15_2: - _ = match_arg_379.value + elif match_arg_428.code == TypeTravauxLogementD83215_Code.TravauxSurLogementDejaAcquisD832_15_2: + _ = match_arg_428.value temp_mensualite_minimale_3 = True - elif match_arg_379.code == TypeTravauxLogementD83215_Code.PasDeTravaux: - _ = match_arg_379.value + elif match_arg_428.code == TypeTravauxLogementD83215_Code.PasDeTravaux: + _ = match_arg_428.value temp_mensualite_minimale_3 = False if temp_mensualite_minimale_3: return calcul_equivalence_loyer_minimale_dot_montant_1 else: raise EmptyError def temp_mensualite_minimale_4(_:Unit): - match_arg_380 = type_travaux_logement - if match_arg_380.code == TypeTravauxLogementD83215_Code.TravauxPourAcquisitionD832_15_1: - _ = match_arg_380.value + match_arg_429 = type_travaux_logement + if match_arg_429.code == TypeTravauxLogementD83215_Code.TravauxPourAcquisitionD832_15_1: + _ = match_arg_429.value temp_mensualite_minimale_5 = False - elif match_arg_380.code == TypeTravauxLogementD83215_Code.TravauxSurLogementDejaAcquisD832_15_2: - _ = match_arg_380.value + elif match_arg_429.code == TypeTravauxLogementD83215_Code.TravauxSurLogementDejaAcquisD832_15_2: + _ = match_arg_429.value temp_mensualite_minimale_5 = False - elif match_arg_380.code == TypeTravauxLogementD83215_Code.PasDeTravaux: - _ = match_arg_380.value + elif match_arg_429.code == TypeTravauxLogementD83215_Code.PasDeTravaux: + _ = match_arg_429.value temp_mensualite_minimale_5 = True - match_arg_381 = type_travaux_logement - if match_arg_381.code == TypeTravauxLogementD83215_Code.TravauxPourAcquisitionD832_15_1: - _ = match_arg_381.value + match_arg_430 = type_travaux_logement + if match_arg_430.code == TypeTravauxLogementD83215_Code.TravauxPourAcquisitionD832_15_1: + _ = match_arg_430.value temp_mensualite_minimale_6 = True - elif match_arg_381.code == TypeTravauxLogementD83215_Code.TravauxSurLogementDejaAcquisD832_15_2: - _ = match_arg_381.value + elif match_arg_430.code == TypeTravauxLogementD83215_Code.TravauxSurLogementDejaAcquisD832_15_2: + _ = match_arg_430.value temp_mensualite_minimale_6 = False - elif match_arg_381.code == TypeTravauxLogementD83215_Code.PasDeTravaux: - _ = match_arg_381.value + elif match_arg_430.code == TypeTravauxLogementD83215_Code.PasDeTravaux: + _ = match_arg_430.value temp_mensualite_minimale_6 = False if (temp_mensualite_minimale_6 or temp_mensualite_minimale_5): @@ -12152,9 +13933,9 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal else: raise EmptyError temp_mensualite_minimale_9 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=749, + start_line=756, start_column=12, - end_line=749, end_column=31, + end_line=756, end_column=31, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -12165,8 +13946,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_mensualite_minimale_9 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=749, start_column=12, - end_line=749, end_column=31, + start_line=756, start_column=12, + end_line=756, end_column=31, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -12179,8 +13960,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_coefficient_prise_en_charge_d832_10_coeff_arrondi = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=758, start_column=10, - end_line=758, end_column=23, + start_line=765, start_column=10, + end_line=765, end_column=23, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -12202,9 +13983,9 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal return money_of_cents_string("0") except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=786, + start_line=793, start_column=10, - end_line=786, + end_line=793, end_column=20, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", @@ -12213,8 +13994,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_traitement_aide_finale_abattement_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=786, start_column=10, - end_line=786, end_column=20, + start_line=793, start_column=10, + end_line=793, end_column=20, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -12229,8 +14010,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_mensualite_eligible = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=748, start_column=12, - end_line=748, end_column=31, + start_line=755, start_column=12, + end_line=755, end_column=31, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -12245,8 +14026,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_coefficient_prise_en_charge_d832_10_seuil = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=759, start_column=10, - end_line=759, end_column=15, + start_line=766, start_column=10, + end_line=766, end_column=15, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -12274,9 +14055,9 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal return money_of_cents_string("0") except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=787, + start_line=794, start_column=10, - end_line=787, + end_line=794, end_column=40, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", @@ -12285,8 +14066,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_traitement_aide_finale_contributions_sociales_arrondi_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=787, start_column=10, - end_line=787, end_column=40, + start_line=794, start_column=10, + end_line=794, end_column=40, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -12305,8 +14086,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_aide_finale_formule_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=782, start_column=12, - end_line=782, end_column=31, + start_line=789, start_column=12, + end_line=789, end_column=31, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -12324,9 +14105,9 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal aide_finale_14) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=788, + start_line=795, start_column=10, - end_line=788, + end_line=795, end_column=25, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", @@ -12335,8 +14116,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_traitement_aide_finale_montant_minimal_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=788, start_column=10, - end_line=788, end_column=25, + start_line=795, start_column=10, + end_line=795, end_column=25, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -12347,16 +14128,16 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp___10 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=796, start_column=13, - end_line=796, end_column=42, + start_line=803, start_column=13, + end_line=803, end_column=42, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) if not (temp___10): raise AssertionFailure(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=796, - start_column=13, end_line=796, + start_line=803, + start_column=13, end_line=803, end_column=42, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'aide personnalisée au logement", @@ -12377,33 +14158,12 @@ def ressources_aides_personnelle_logement(ressources_aides_personnelle_logement_ personnes_a_charge = ressources_aides_personnelle_logement_in.personnes_a_charge_in situation_familiale = ressources_aides_personnelle_logement_in.situation_familiale_in mode_occupation_1 = ressources_aides_personnelle_logement_in.mode_occupation_in + date_courante_9 = ressources_aides_personnelle_logement_in.date_courante_in condition_age_bourse_enseignement_superieur = ressources_aides_personnelle_logement_in.condition_age_bourse_enseignement_superieur_in demandeur_poursuit_des_etudes = ressources_aides_personnelle_logement_in.demandeur_poursuit_des_etudes_in date_demande_ou_reexamen_droit = ressources_aides_personnelle_logement_in.date_demande_ou_reexamen_droit_in paiement_logement_distinct_professionnel = ressources_aides_personnelle_logement_in.paiement_logement_distinct_professionnel_in ressources_menage_arrondies_base = ressources_aides_personnelle_logement_in.ressources_menage_arrondies_base_in - try: - temp_montant_forfaitaire_r_822_8 = money_of_cents_string("258900") - except EmptyError: - temp_montant_forfaitaire_r_822_8 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=536, start_column=11, - end_line=536, end_column=38, - law_headings=["Prise en compte des ressources pour les aides personnelles au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"])) - montant_forfaitaire_r_822_8 = temp_montant_forfaitaire_r_822_8 - try: - temp_montant_forfaitaire_r_822_7 = money_of_cents_string("9500") - except EmptyError: - temp_montant_forfaitaire_r_822_7 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=538, start_column=11, - end_line=538, end_column=38, - law_headings=["Prise en compte des ressources pour les aides personnelles au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"])) - montant_forfaitaire_r_822_7 = temp_montant_forfaitaire_r_822_7 try: def temp_ressources_personnes_vivant_habituellement_foyer(personne:PersonneVivantHabituellementAuFoyer): return personne.ressources @@ -12417,16 +14177,16 @@ def ressources_aides_personnelle_logement(ressources_aides_personnelle_logement_ except EmptyError: temp_ressources_personnes_vivant_habituellement_foyer_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=534, start_column=11, - end_line=534, end_column=59, + start_line=535, start_column=11, + end_line=535, end_column=59, law_headings=["Prise en compte des ressources pour les aides personnelles au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) ressources_personnes_vivant_habituellement_foyer = temp_ressources_personnes_vivant_habituellement_foyer_2 try: - match_arg_382 = situation_familiale - if match_arg_382.code == SituationFamiliale_Code.Celibataire: - _ = match_arg_382.value + match_arg_431 = situation_familiale + if match_arg_431.code == SituationFamiliale_Code.Celibataire: + _ = match_arg_431.value if (list_length(personnes_a_charge) == integer_of_string("0")): temp_abattement_r_822_10 = money_of_cents_string("0") @@ -12436,17 +14196,17 @@ def ressources_aides_personnelle_logement(ressources_aides_personnelle_logement_ temp_abattement_r_822_10 = money_of_cents_string("90100") else: temp_abattement_r_822_10 = money_of_cents_string("135000") - elif match_arg_382.code == SituationFamiliale_Code.Maries: - _ = match_arg_382.value + elif match_arg_431.code == SituationFamiliale_Code.Maries: + _ = match_arg_431.value temp_abattement_r_822_10 = money_of_cents_string("0") - elif match_arg_382.code == SituationFamiliale_Code.Pacses: - _ = match_arg_382.value + elif match_arg_431.code == SituationFamiliale_Code.Pacses: + _ = match_arg_431.value temp_abattement_r_822_10 = money_of_cents_string("0") - elif match_arg_382.code == SituationFamiliale_Code.Concubins: - _ = match_arg_382.value + elif match_arg_431.code == SituationFamiliale_Code.Concubins: + _ = match_arg_431.value temp_abattement_r_822_10 = money_of_cents_string("0") - elif match_arg_382.code == SituationFamiliale_Code.CelibataireSepareDeFait: - _ = match_arg_382.value + elif match_arg_431.code == SituationFamiliale_Code.CelibataireSepareDeFait: + _ = match_arg_431.value if (list_length(personnes_a_charge) == integer_of_string("0")): temp_abattement_r_822_10 = money_of_cents_string("0") @@ -12456,18 +14216,50 @@ def ressources_aides_personnelle_logement(ressources_aides_personnelle_logement_ temp_abattement_r_822_10 = money_of_cents_string("90100") else: temp_abattement_r_822_10 = money_of_cents_string("135000") - elif match_arg_382.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: - _ = match_arg_382.value + elif match_arg_431.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: + _ = match_arg_431.value temp_abattement_r_822_10 = money_of_cents_string("0") except EmptyError: temp_abattement_r_822_10 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=539, start_column=11, - end_line=539, end_column=30, + start_line=540, start_column=11, + end_line=540, end_column=30, law_headings=["Prise en compte des ressources pour les aides personnelles au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) abattement_r_822_10 = temp_abattement_r_822_10 + try: + if (date_courante_9 >= + date_of_numbers(2019,10,1)): + temp_montant_forfaitaire_r_822_7 = money_of_cents_string("9500") + else: + temp_montant_forfaitaire_r_822_7 = dead_value + raise EmptyError + except EmptyError: + temp_montant_forfaitaire_r_822_7 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=539, start_column=11, + end_line=539, end_column=38, + law_headings=["Prise en compte des ressources pour les aides personnelles au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"])) + montant_forfaitaire_r_822_7 = temp_montant_forfaitaire_r_822_7 + try: + if (date_courante_9 >= + date_of_numbers(2019,10,1)): + temp_montant_forfaitaire_r_822_8 = money_of_cents_string("258900") + else: + temp_montant_forfaitaire_r_822_8 = dead_value + raise EmptyError + except EmptyError: + temp_montant_forfaitaire_r_822_8 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=537, start_column=11, + end_line=537, end_column=38, + law_headings=["Prise en compte des ressources pour les aides personnelles au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"])) + montant_forfaitaire_r_822_8 = temp_montant_forfaitaire_r_822_8 try: temp_base_mensuelle_allocations_familiales_dot_date_courante = date_demande_ou_reexamen_droit except EmptyError: @@ -12486,56 +14278,39 @@ def ressources_aides_personnelle_logement(ressources_aides_personnelle_logement_ base_mensuelle_allocations_familiales_dot_date_courante = temp_base_mensuelle_allocations_familiales_dot_date_courante result_7 = base_mensuelle_allocations_familiales(BaseMensuelleAllocationsFamilialesIn(date_courante_in = base_mensuelle_allocations_familiales_dot_date_courante)) base_mensuelle_allocations_familiales_dot_montant = result_7.montant - try: - match_arg_383 = paiement_logement_distinct_professionnel - if match_arg_383.code == PaiementLogementDistinctProfessionnel_Code.OuiAvecLoyerOuCharges: - loyer_ou_charges = match_arg_383.value - temp_abattement_r_822_8 = montant_forfaitaire_r_822_8 - elif match_arg_383.code == PaiementLogementDistinctProfessionnel_Code.Non: - _ = match_arg_383.value - temp_abattement_r_822_8 = money_of_cents_string("0") - except EmptyError: - temp_abattement_r_822_8 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=535, start_column=11, - end_line=535, end_column=29, - law_headings=["Prise en compte des ressources pour les aides personnelles au logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"])) - abattement_r_822_8 = temp_abattement_r_822_8 try: try: - match_arg_384 = mode_occupation_1 - if match_arg_384.code == ModeOccupation_Code.Locataire: - _ = match_arg_384.value + match_arg_432 = mode_occupation_1 + if match_arg_432.code == ModeOccupation_Code.Locataire: + _ = match_arg_432.value temp_ressources_prises_en_compte = False - elif match_arg_384.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_384.value + elif match_arg_432.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_432.value temp_ressources_prises_en_compte = True - elif match_arg_384.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - _ = match_arg_384.value + elif match_arg_432.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + _ = match_arg_432.value temp_ressources_prises_en_compte = False - elif match_arg_384.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_384.value + elif match_arg_432.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_432.value temp_ressources_prises_en_compte = False - elif match_arg_384.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_384.value + elif match_arg_432.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_432.value temp_ressources_prises_en_compte = False - match_arg_385 = mode_occupation_1 - if match_arg_385.code == ModeOccupation_Code.Locataire: - _ = match_arg_385.value + match_arg_433 = mode_occupation_1 + if match_arg_433.code == ModeOccupation_Code.Locataire: + _ = match_arg_433.value temp_ressources_prises_en_compte_1 = True - elif match_arg_385.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_385.value + elif match_arg_433.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_433.value temp_ressources_prises_en_compte_1 = False - elif match_arg_385.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - _ = match_arg_385.value + elif match_arg_433.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + _ = match_arg_433.value temp_ressources_prises_en_compte_1 = False - elif match_arg_385.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_385.value + elif match_arg_433.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_433.value temp_ressources_prises_en_compte_1 = False - elif match_arg_385.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_385.value + elif match_arg_433.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_433.value temp_ressources_prises_en_compte_1 = False if ((temp_ressources_prises_en_compte_1 or temp_ressources_prises_en_compte) and @@ -12552,12 +14327,29 @@ def ressources_aides_personnelle_logement(ressources_aides_personnelle_logement_ except EmptyError: temp_ressources_prises_en_compte_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=545, start_column=12, - end_line=545, end_column=39, + start_line=546, start_column=12, + end_line=546, end_column=39, law_headings=["Prise en compte des ressources pour les aides personnelles au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) ressources_prises_en_compte = temp_ressources_prises_en_compte_2 + try: + match_arg_434 = paiement_logement_distinct_professionnel + if match_arg_434.code == PaiementLogementDistinctProfessionnel_Code.OuiAvecLoyerOuCharges: + loyer_ou_charges = match_arg_434.value + temp_abattement_r_822_8 = montant_forfaitaire_r_822_8 + elif match_arg_434.code == PaiementLogementDistinctProfessionnel_Code.Non: + _ = match_arg_434.value + temp_abattement_r_822_8 = money_of_cents_string("0") + except EmptyError: + temp_abattement_r_822_8 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=536, start_column=11, + end_line=536, end_column=29, + law_headings=["Prise en compte des ressources pour les aides personnelles au logement", + "Déclarations des champs d'application", + "Prologue : aides au logement"])) + abattement_r_822_8 = temp_abattement_r_822_8 try: if (demandeur_exerce_activite_remuneree and (conjoint_exerce_activite_remuneree and ((ressources_demandeur + @@ -12570,8 +14362,8 @@ def ressources_aides_personnelle_logement(ressources_aides_personnelle_logement_ except EmptyError: temp_abattement_r_822_7 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=537, start_column=11, - end_line=537, end_column=29, + start_line=538, start_column=11, + end_line=538, end_column=29, law_headings=["Prise en compte des ressources pour les aides personnelles au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) @@ -12611,7 +14403,7 @@ def ressources_aides_personnelle_logement(ressources_aides_personnelle_logement_ return RessourcesAidesPersonnelleLogement(ressources_prises_en_compte = ressources_prises_en_compte) def eligibilite_prestations_familiales(eligibilite_prestations_familiales_in:EligibilitePrestationsFamilialesIn): - date_courante_9 = eligibilite_prestations_familiales_in.date_courante_in + date_courante_10 = eligibilite_prestations_familiales_in.date_courante_in prestation_courante = eligibilite_prestations_familiales_in.prestation_courante_in residence_4 = eligibilite_prestations_familiales_in.residence_in age_l512_3_2 = eligibilite_prestations_familiales_in.age_l512_3_2_in @@ -12628,7 +14420,7 @@ def eligibilite_prestations_familiales(eligibilite_prestations_familiales_in:Eli law_headings=["Prologue : prestations familiales"])) age_l512_3_2_1 = temp_age_l512_3_2 try: - temp_smic_dot_date_courante = date_courante_9 + temp_smic_dot_date_courante = date_courante_10 except EmptyError: temp_smic_dot_date_courante = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/../prestations_familiales/prologue.catala_fr", @@ -12695,35 +14487,35 @@ def eligibilite_prestations_familiales(eligibilite_prestations_familiales_in:Eli def temp_conditions_hors_age(enfant:EnfantPrestationsFamiliales): try: try: - match_arg_386 = enfant.obligation_scolaire - if match_arg_386.code == SituationObligationScolaire_Code.Avant: - _ = match_arg_386.value + match_arg_435 = enfant.obligation_scolaire + if match_arg_435.code == SituationObligationScolaire_Code.Avant: + _ = match_arg_435.value temp_conditions_hors_age_1 = False - elif match_arg_386.code == SituationObligationScolaire_Code.Pendant: - _ = match_arg_386.value + elif match_arg_435.code == SituationObligationScolaire_Code.Pendant: + _ = match_arg_435.value temp_conditions_hors_age_1 = False - elif match_arg_386.code == SituationObligationScolaire_Code.Apres: - _ = match_arg_386.value + elif match_arg_435.code == SituationObligationScolaire_Code.Apres: + _ = match_arg_435.value temp_conditions_hors_age_1 = True - match_arg_387 = enfant.obligation_scolaire - if match_arg_387.code == SituationObligationScolaire_Code.Avant: - _ = match_arg_387.value + match_arg_436 = enfant.obligation_scolaire + if match_arg_436.code == SituationObligationScolaire_Code.Avant: + _ = match_arg_436.value temp_conditions_hors_age_2 = False - elif match_arg_387.code == SituationObligationScolaire_Code.Pendant: - _ = match_arg_387.value + elif match_arg_436.code == SituationObligationScolaire_Code.Pendant: + _ = match_arg_436.value temp_conditions_hors_age_2 = True - elif match_arg_387.code == SituationObligationScolaire_Code.Apres: - _ = match_arg_387.value + elif match_arg_436.code == SituationObligationScolaire_Code.Apres: + _ = match_arg_436.value temp_conditions_hors_age_2 = False - match_arg_388 = enfant.obligation_scolaire - if match_arg_388.code == SituationObligationScolaire_Code.Avant: - _ = match_arg_388.value + match_arg_437 = enfant.obligation_scolaire + if match_arg_437.code == SituationObligationScolaire_Code.Avant: + _ = match_arg_437.value temp_conditions_hors_age_3 = True - elif match_arg_388.code == SituationObligationScolaire_Code.Pendant: - _ = match_arg_388.value + elif match_arg_437.code == SituationObligationScolaire_Code.Pendant: + _ = match_arg_437.value temp_conditions_hors_age_3 = False - elif match_arg_388.code == SituationObligationScolaire_Code.Apres: - _ = match_arg_388.value + elif match_arg_437.code == SituationObligationScolaire_Code.Apres: + _ = match_arg_437.value temp_conditions_hors_age_3 = False if ((temp_conditions_hors_age_3 or (temp_conditions_hors_age_2 or @@ -12770,7 +14562,7 @@ def eligibilite_prestations_familiales(eligibilite_prestations_familiales_in:Eli "Partie législative", "Code de la sécurité sociale"])) try: - temp_droit_ouvert_2 = date_courante_9 + temp_droit_ouvert_2 = date_courante_10 except EmptyError: temp_droit_ouvert_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/../prestations_familiales/sécurité_sociale_L.catala_fr", @@ -12799,15 +14591,15 @@ def eligibilite_prestations_familiales(eligibilite_prestations_familiales_in:Eli "Livre 5 : Prestations familiales et prestations assimilées", "Partie législative", "Code de la sécurité sociale"])) - match_arg_389 = enfant_1.obligation_scolaire - if match_arg_389.code == SituationObligationScolaire_Code.Avant: - _ = match_arg_389.value + match_arg_438 = enfant_1.obligation_scolaire + if match_arg_438.code == SituationObligationScolaire_Code.Avant: + _ = match_arg_438.value temp_droit_ouvert_4 = False - elif match_arg_389.code == SituationObligationScolaire_Code.Pendant: - _ = match_arg_389.value + elif match_arg_438.code == SituationObligationScolaire_Code.Pendant: + _ = match_arg_438.value temp_droit_ouvert_4 = False - elif match_arg_389.code == SituationObligationScolaire_Code.Apres: - _ = match_arg_389.value + elif match_arg_438.code == SituationObligationScolaire_Code.Apres: + _ = match_arg_438.value temp_droit_ouvert_4 = True if (temp_droit_ouvert_4 and ((enfant_1.remuneration_mensuelle <= @@ -12820,25 +14612,25 @@ def eligibilite_prestations_familiales(eligibilite_prestations_familiales_in:Eli else: raise EmptyError except EmptyError: - match_arg_390 = enfant_1.obligation_scolaire - if match_arg_390.code == SituationObligationScolaire_Code.Avant: - _ = match_arg_390.value + match_arg_439 = enfant_1.obligation_scolaire + if match_arg_439.code == SituationObligationScolaire_Code.Avant: + _ = match_arg_439.value temp_droit_ouvert_5 = False - elif match_arg_390.code == SituationObligationScolaire_Code.Pendant: - _ = match_arg_390.value + elif match_arg_439.code == SituationObligationScolaire_Code.Pendant: + _ = match_arg_439.value temp_droit_ouvert_5 = True - elif match_arg_390.code == SituationObligationScolaire_Code.Apres: - _ = match_arg_390.value + elif match_arg_439.code == SituationObligationScolaire_Code.Apres: + _ = match_arg_439.value temp_droit_ouvert_5 = False - match_arg_391 = enfant_1.obligation_scolaire - if match_arg_391.code == SituationObligationScolaire_Code.Avant: - _ = match_arg_391.value + match_arg_440 = enfant_1.obligation_scolaire + if match_arg_440.code == SituationObligationScolaire_Code.Avant: + _ = match_arg_440.value temp_droit_ouvert_6 = True - elif match_arg_391.code == SituationObligationScolaire_Code.Pendant: - _ = match_arg_391.value + elif match_arg_440.code == SituationObligationScolaire_Code.Pendant: + _ = match_arg_440.value temp_droit_ouvert_6 = False - elif match_arg_391.code == SituationObligationScolaire_Code.Apres: - _ = match_arg_391.value + elif match_arg_440.code == SituationObligationScolaire_Code.Apres: + _ = match_arg_440.value temp_droit_ouvert_6 = False if (temp_droit_ouvert_6 or temp_droit_ouvert_5): @@ -12870,7 +14662,7 @@ def calcul_allocation_logement_locatif(calcul_allocation_logement_locatif_in:Cal loyer_principal = calcul_allocation_logement_locatif_in.loyer_principal_in ressources_menage_arrondies_4 = calcul_allocation_logement_locatif_in.ressources_menage_arrondies_in beneficiaire_aide_adulte_ou_enfant_handicapes_1 = calcul_allocation_logement_locatif_in.beneficiaire_aide_adulte_ou_enfant_handicapes_in - date_courante_10 = calcul_allocation_logement_locatif_in.date_courante_in + date_courante_11 = calcul_allocation_logement_locatif_in.date_courante_in nombre_personnes_a_charge_5 = calcul_allocation_logement_locatif_in.nombre_personnes_a_charge_in situation_familiale_calcul_apl_5 = calcul_allocation_logement_locatif_in.situation_familiale_calcul_apl_in zone_3 = calcul_allocation_logement_locatif_in.zone_in @@ -12887,8 +14679,8 @@ def calcul_allocation_logement_locatif(calcul_allocation_logement_locatif_in:Cal except EmptyError: temp_calcul_apl_locatif_dot_loyer_principal_base = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=873, start_column=14, - end_line=873, end_column=48, + start_line=880, start_column=14, + end_line=880, end_column=48, law_headings=["Secteur locatif", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -12898,8 +14690,8 @@ def calcul_allocation_logement_locatif(calcul_allocation_logement_locatif_in:Cal except EmptyError: temp_calcul_apl_locatif_dot_ressources_menage_arrondies = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=875, start_column=14, - end_line=875, end_column=60, + start_line=882, start_column=14, + end_line=882, end_column=60, law_headings=["Secteur locatif", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -12909,19 +14701,19 @@ def calcul_allocation_logement_locatif(calcul_allocation_logement_locatif_in:Cal except EmptyError: temp_calcul_apl_locatif_dot_beneficiaire_aide_adulte_ou_enfant_handicapes = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=877, start_column=14, - end_line=877, end_column=78, + start_line=884, start_column=14, + end_line=884, end_column=78, law_headings=["Secteur locatif", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) calcul_apl_locatif_dot_beneficiaire_aide_adulte_ou_enfant_handicapes = temp_calcul_apl_locatif_dot_beneficiaire_aide_adulte_ou_enfant_handicapes try: - temp_calcul_apl_locatif_dot_date_courante = date_courante_10 + temp_calcul_apl_locatif_dot_date_courante = date_courante_11 except EmptyError: temp_calcul_apl_locatif_dot_date_courante = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=880, start_column=14, - end_line=880, end_column=46, + start_line=887, start_column=14, + end_line=887, end_column=46, law_headings=["Secteur locatif", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -12931,8 +14723,8 @@ def calcul_allocation_logement_locatif(calcul_allocation_logement_locatif_in:Cal except EmptyError: temp_calcul_apl_locatif_dot_nombre_personnes_a_charge = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=882, start_column=14, - end_line=882, end_column=58, + start_line=889, start_column=14, + end_line=889, end_column=58, law_headings=["Secteur locatif", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -12942,8 +14734,8 @@ def calcul_allocation_logement_locatif(calcul_allocation_logement_locatif_in:Cal except EmptyError: temp_calcul_apl_locatif_dot_situation_familiale_calcul_apl = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=884, start_column=14, - end_line=884, end_column=63, + start_line=891, start_column=14, + end_line=891, end_column=63, law_headings=["Secteur locatif", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -12953,8 +14745,8 @@ def calcul_allocation_logement_locatif(calcul_allocation_logement_locatif_in:Cal except EmptyError: temp_calcul_apl_locatif_dot_zone = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=886, start_column=14, - end_line=886, end_column=37, + start_line=893, start_column=14, + end_line=893, end_column=37, law_headings=["Secteur locatif", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -12964,8 +14756,8 @@ def calcul_allocation_logement_locatif(calcul_allocation_logement_locatif_in:Cal except EmptyError: temp_calcul_apl_locatif_dot_logement_est_chambre = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=888, start_column=14, - end_line=888, end_column=53, + start_line=895, start_column=14, + end_line=895, end_column=53, law_headings=["Secteur locatif", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -12975,8 +14767,8 @@ def calcul_allocation_logement_locatif(calcul_allocation_logement_locatif_in:Cal except EmptyError: temp_calcul_apl_locatif_dot_agees_ou_handicap_adultes_hebergees_onereux_particuliers = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=891, start_column=5, - end_line=892, end_column=63, + start_line=898, start_column=5, + end_line=899, end_column=63, law_headings=["Secteur locatif", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -12986,8 +14778,8 @@ def calcul_allocation_logement_locatif(calcul_allocation_logement_locatif_in:Cal except EmptyError: temp_calcul_apl_locatif_dot_type_aide = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=895, start_column=14, - end_line=895, end_column=42, + start_line=902, start_column=14, + end_line=902, end_column=42, law_headings=["Secteur locatif", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -12997,8 +14789,8 @@ def calcul_allocation_logement_locatif(calcul_allocation_logement_locatif_in:Cal except EmptyError: temp_calcul_apl_locatif_dot_colocation = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=897, start_column=14, - end_line=897, end_column=43, + start_line=904, start_column=14, + end_line=904, end_column=43, law_headings=["Secteur locatif", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -13008,8 +14800,8 @@ def calcul_allocation_logement_locatif(calcul_allocation_logement_locatif_in:Cal except EmptyError: temp_calcul_apl_locatif_dot_reduction_loyer_solidarite = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=899, start_column=14, - end_line=899, end_column=59, + start_line=906, start_column=14, + end_line=906, end_column=59, law_headings=["Secteur locatif", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -13019,8 +14811,8 @@ def calcul_allocation_logement_locatif(calcul_allocation_logement_locatif_in:Cal except EmptyError: temp_calcul_apl_locatif_dot_logement_meuble_d842_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=901, start_column=14, - end_line=901, end_column=55, + start_line=908, start_column=14, + end_line=908, end_column=55, law_headings=["Secteur locatif", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -13030,8 +14822,8 @@ def calcul_allocation_logement_locatif(calcul_allocation_logement_locatif_in:Cal except EmptyError: temp_calcul_apl_locatif_dot_residence = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=903, start_column=14, - end_line=903, end_column=42, + start_line=910, start_column=14, + end_line=910, end_column=42, law_headings=["Secteur locatif", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -13061,13 +14853,13 @@ def calcul_allocation_logement_locatif(calcul_allocation_logement_locatif_in:Cal def temp_traitement_aide_finale(aide_finale_15:Money): try: try: - match_arg_392 = changement_logement_d842_4 - if match_arg_392.code == ChangementLogementD8424_Code.Changement: - infos = match_arg_392.value + match_arg_441 = changement_logement_d842_4 + if match_arg_441.code == ChangementLogementD8424_Code.Changement: + infos = match_arg_441.value temp_traitement_aide_finale_1 = (loyer_principal >= infos.ancien_loyer_principal) - elif match_arg_392.code == ChangementLogementD8424_Code.PasDeChangement: - _ = match_arg_392.value + elif match_arg_441.code == ChangementLogementD8424_Code.PasDeChangement: + _ = match_arg_441.value temp_traitement_aide_finale_1 = False if temp_traitement_aide_finale_1: return aide_finale_15 @@ -13078,9 +14870,9 @@ def calcul_allocation_logement_locatif(calcul_allocation_logement_locatif_in:Cal aide_finale_15) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=869, + start_line=876, start_column=12, - end_line=869, + end_line=876, end_column=34, law_headings=["Secteur locatif", "Calcul du montant de l'allocation logement", @@ -13088,31 +14880,31 @@ def calcul_allocation_logement_locatif(calcul_allocation_logement_locatif_in:Cal except EmptyError: temp_traitement_aide_finale = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=869, start_column=12, - end_line=869, end_column=34, + start_line=876, start_column=12, + end_line=876, end_column=34, law_headings=["Secteur locatif", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) traitement_aide_finale = temp_traitement_aide_finale try: try: - match_arg_393 = changement_logement_d842_4 - if match_arg_393.code == ChangementLogementD8424_Code.Changement: - infos_1 = match_arg_393.value + match_arg_442 = changement_logement_d842_4 + if match_arg_442.code == ChangementLogementD8424_Code.Changement: + infos_1 = match_arg_442.value temp_aide_finale_formule_3 = (loyer_principal >= infos_1.ancien_loyer_principal) - elif match_arg_393.code == ChangementLogementD8424_Code.PasDeChangement: - _ = match_arg_393.value + elif match_arg_442.code == ChangementLogementD8424_Code.PasDeChangement: + _ = match_arg_442.value temp_aide_finale_formule_3 = False if temp_aide_finale_formule_3: - match_arg_394 = changement_logement_d842_4 - if match_arg_394.code == ChangementLogementD8424_Code.Changement: - infos_2 = match_arg_394.value + match_arg_443 = changement_logement_d842_4 + if match_arg_443.code == ChangementLogementD8424_Code.Changement: + infos_2 = match_arg_443.value temp_aide_finale_formule_4 = (loyer_principal - (infos_2.ancien_loyer_principal - infos_2.ancienne_allocation_logement)) - elif match_arg_394.code == ChangementLogementD8424_Code.PasDeChangement: - _ = match_arg_394.value + elif match_arg_443.code == ChangementLogementD8424_Code.PasDeChangement: + _ = match_arg_443.value temp_aide_finale_formule_4 = money_of_cents_string("0") else: temp_aide_finale_formule_4 = dead_value @@ -13122,8 +14914,8 @@ def calcul_allocation_logement_locatif(calcul_allocation_logement_locatif_in:Cal except EmptyError: temp_aide_finale_formule_4 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=867, start_column=12, - end_line=867, end_column=31, + start_line=874, start_column=12, + end_line=874, end_column=31, law_headings=["Secteur locatif", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -13140,51 +14932,15 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA nombre_personnes_a_charge_6 = calcul_allocation_logement_foyer_in.nombre_personnes_a_charge_in situation_familiale_calcul_apl_6 = calcul_allocation_logement_foyer_in.situation_familiale_calcul_apl_in zone_4 = calcul_allocation_logement_foyer_in.zone_in - date_courante_11 = calcul_allocation_logement_foyer_in.date_courante_in + date_courante_12 = calcul_allocation_logement_foyer_in.date_courante_in categorie_equivalence_loyer_d842_16 = calcul_allocation_logement_foyer_in.categorie_equivalence_loyer_d842_16_in - try: - temp_montant_minimal_aide_d842_15 = money_of_cents_string("1000") - except EmptyError: - temp_montant_minimal_aide_d842_15 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1028, - start_column=11, end_line=1028, - end_column=39, - law_headings=["Secteur logement-foyer", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) - montant_minimal_aide_d842_15 = temp_montant_minimal_aide_d842_15 - try: - temp_montant_forfaitaire_d842_15 = money_of_cents_string("500") - except EmptyError: - temp_montant_forfaitaire_d842_15 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1029, - start_column=11, end_line=1029, - end_column=38, - law_headings=["Secteur logement-foyer", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) - montant_forfaitaire_d842_15 = temp_montant_forfaitaire_d842_15 - try: - temp_montant_minimal_depense_nette_d842_17 = money_of_cents_string("1500") - except EmptyError: - temp_montant_minimal_depense_nette_d842_17 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1030, - start_column=11, end_line=1030, - end_column=48, - law_headings=["Secteur logement-foyer", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) - montant_minimal_depense_nette_d842_17 = temp_montant_minimal_depense_nette_d842_17 try: temp_calcul_nombre_parts_dot_condition_2_du_832_25_1 = True except EmptyError: temp_calcul_nombre_parts_dot_condition_2_du_832_25_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=4836, - start_column=14, end_line=4836, + start_line=4841, + start_column=14, end_line=4841, end_column=55, law_headings=["Article D842-15", "Section 3 : Logements-foyers", @@ -13199,8 +14955,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_nombre_parts_dot_nombre_personnes_a_charge_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=4831, - start_column=14, end_line=4831, + start_line=4836, + start_column=14, end_line=4836, end_column=59, law_headings=["Article D842-15", "Section 3 : Logements-foyers", @@ -13215,8 +14971,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_nombre_parts_dot_situation_familiale_calcul_apl_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=4833, - start_column=14, end_line=4833, + start_line=4838, + start_column=14, end_line=4838, end_column=64, law_headings=["Article D842-15", "Section 3 : Logements-foyers", @@ -13231,8 +14987,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_nombre_parts_dot_residence_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=4835, - start_column=14, end_line=4835, + start_line=4840, + start_column=14, end_line=4840, end_column=43, law_headings=["Article D842-15", "Section 3 : Logements-foyers", @@ -13254,12 +15010,12 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA limitation_majoration_personnes_a_charge_in = calcul_nombre_parts_dot_limitation_majoration_personnes_a_charge_1)) calcul_nombre_parts_dot_n_nombre_parts_d832_25_1 = result_10.n_nombre_parts_d832_25 try: - temp_contributions_sociales_dot_date_courante_3 = date_courante_11 + temp_contributions_sociales_dot_date_courante_3 = date_courante_12 except EmptyError: temp_contributions_sociales_dot_date_courante_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1070, - start_column=14, end_line=1070, + start_line=1081, + start_column=14, end_line=1081, end_column=50, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -13272,8 +15028,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_apl_logement_foyer_dot_type_logement_foyer = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1054, - start_column=14, end_line=1054, + start_line=1065, + start_column=14, end_line=1065, end_column=59, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -13284,8 +15040,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_apl_logement_foyer_dot_date_conventionnement = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1056, - start_column=14, end_line=1056, + start_line=1067, + start_column=14, end_line=1067, end_column=61, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -13296,8 +15052,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_apl_logement_foyer_dot_ressources_menage_arrondies = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1060, - start_column=14, end_line=1060, + start_line=1071, + start_column=14, end_line=1071, end_column=67, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -13308,8 +15064,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_apl_logement_foyer_dot_nombre_personnes_a_charge = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1062, - start_column=14, end_line=1062, + start_line=1073, + start_column=14, end_line=1073, end_column=65, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -13320,8 +15076,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_apl_logement_foyer_dot_situation_familiale_calcul_apl = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1064, - start_column=14, end_line=1064, + start_line=1075, + start_column=14, end_line=1075, end_column=70, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -13332,20 +15088,20 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_apl_logement_foyer_dot_zone = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1066, - start_column=14, end_line=1066, + start_line=1077, + start_column=14, end_line=1077, end_column=44, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) calcul_apl_logement_foyer_dot_zone = temp_calcul_apl_logement_foyer_dot_zone try: - temp_calcul_apl_logement_foyer_dot_date_courante = date_courante_11 + temp_calcul_apl_logement_foyer_dot_date_courante = date_courante_12 except EmptyError: temp_calcul_apl_logement_foyer_dot_date_courante = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1068, - start_column=14, end_line=1068, + start_line=1079, + start_column=14, end_line=1079, end_column=53, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -13356,8 +15112,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_apl_logement_foyer_dot_redevance = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1058, - start_column=14, end_line=1058, + start_line=1069, + start_column=14, end_line=1069, end_column=49, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -13368,8 +15124,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_apl_logement_foyer_dot_residence = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1067, - start_column=14, end_line=1067, + start_line=1078, + start_column=14, end_line=1078, end_column=49, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -13379,33 +15135,33 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA return True calcul_apl_logement_foyer_dot_condition_2_du_832_25 = temp_calcul_apl_logement_foyer_dot_condition_2_du_832_25 def temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge(_:Unit): - match_arg_395 = residence_6 - if match_arg_395.code == Collectivite_Code.Guadeloupe: - _ = match_arg_395.value + match_arg_444 = residence_6 + if match_arg_444.code == Collectivite_Code.Guadeloupe: + _ = match_arg_444.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_1 = True - elif match_arg_395.code == Collectivite_Code.Guyane: - _ = match_arg_395.value + elif match_arg_444.code == Collectivite_Code.Guyane: + _ = match_arg_444.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_1 = True - elif match_arg_395.code == Collectivite_Code.Martinique: - _ = match_arg_395.value + elif match_arg_444.code == Collectivite_Code.Martinique: + _ = match_arg_444.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_1 = True - elif match_arg_395.code == Collectivite_Code.LaReunion: - _ = match_arg_395.value + elif match_arg_444.code == Collectivite_Code.LaReunion: + _ = match_arg_444.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_1 = True - elif match_arg_395.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_395.value + elif match_arg_444.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_444.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_1 = False - elif match_arg_395.code == Collectivite_Code.SaintMartin: - _ = match_arg_395.value + elif match_arg_444.code == Collectivite_Code.SaintMartin: + _ = match_arg_444.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_1 = False - elif match_arg_395.code == Collectivite_Code.Metropole: - _ = match_arg_395.value + elif match_arg_444.code == Collectivite_Code.Metropole: + _ = match_arg_444.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_1 = False - elif match_arg_395.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_395.value + elif match_arg_444.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_444.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_1 = False - elif match_arg_395.code == Collectivite_Code.Mayotte: - _ = match_arg_395.value + elif match_arg_444.code == Collectivite_Code.Mayotte: + _ = match_arg_444.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_1 = True if temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_1: temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_2 = True @@ -13442,215 +15198,282 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA calcul_apl_logement_foyer_dot_traitement_aide_finale_montant_minimal = result_12.traitement_aide_finale try: try: - def temp_montant_forfaitaire_charges(_:Unit): - raise EmptyError - def temp_montant_forfaitaire_charges_1(_:Unit): - return False - def temp_montant_forfaitaire_charges_2(_:Unit): - match_arg_396 = residence_6 - if match_arg_396.code == Collectivite_Code.Guadeloupe: - _ = match_arg_396.value - temp_montant_forfaitaire_charges_3 = True - elif match_arg_396.code == Collectivite_Code.Guyane: - _ = match_arg_396.value - temp_montant_forfaitaire_charges_3 = False - elif match_arg_396.code == Collectivite_Code.Martinique: - _ = match_arg_396.value - temp_montant_forfaitaire_charges_3 = True - elif match_arg_396.code == Collectivite_Code.LaReunion: - _ = match_arg_396.value - temp_montant_forfaitaire_charges_3 = True - elif match_arg_396.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_396.value - temp_montant_forfaitaire_charges_3 = True - elif match_arg_396.code == Collectivite_Code.SaintMartin: - _ = match_arg_396.value - temp_montant_forfaitaire_charges_3 = True - elif match_arg_396.code == Collectivite_Code.Metropole: - _ = match_arg_396.value - temp_montant_forfaitaire_charges_3 = False - elif match_arg_396.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_396.value - temp_montant_forfaitaire_charges_3 = False - elif match_arg_396.code == Collectivite_Code.Mayotte: - _ = match_arg_396.value - temp_montant_forfaitaire_charges_3 = True - if (((date_courante_11 >= date_of_numbers(2022,7,1)) and - (date_courante_11 < date_of_numbers(2023,1,1))) and - temp_montant_forfaitaire_charges_3): - if ((money_of_cents_string("3767") + - (money_of_cents_string("969") * - decimal_of_integer(nombre_personnes_a_charge_6))) > - (money_of_cents_string("3767") + - (money_of_cents_string("969") * - decimal_of_string("6.")))): - return (money_of_cents_string("3767") + - (money_of_cents_string("969") * - decimal_of_string("6."))) + try: + try: + try: + try: + match_arg_445 = residence_6 + if match_arg_445.code == Collectivite_Code.Guadeloupe: + _ = match_arg_445.value + temp_multiplicateur_majoration_charges = True + elif match_arg_445.code == Collectivite_Code.Guyane: + _ = match_arg_445.value + temp_multiplicateur_majoration_charges = False + elif match_arg_445.code == Collectivite_Code.Martinique: + _ = match_arg_445.value + temp_multiplicateur_majoration_charges = True + elif match_arg_445.code == Collectivite_Code.LaReunion: + _ = match_arg_445.value + temp_multiplicateur_majoration_charges = True + elif match_arg_445.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_445.value + temp_multiplicateur_majoration_charges = True + elif match_arg_445.code == Collectivite_Code.SaintMartin: + _ = match_arg_445.value + temp_multiplicateur_majoration_charges = True + elif match_arg_445.code == Collectivite_Code.Metropole: + _ = match_arg_445.value + temp_multiplicateur_majoration_charges = False + elif match_arg_445.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_445.value + temp_multiplicateur_majoration_charges = False + elif match_arg_445.code == Collectivite_Code.Mayotte: + _ = match_arg_445.value + temp_multiplicateur_majoration_charges = True + if (((date_courante_12 >= + date_of_numbers(2020,1,1)) and + (date_courante_12 < + date_of_numbers(2020,10,1))) and + (temp_multiplicateur_majoration_charges and + (nombre_personnes_a_charge_6 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_charges_1 = decimal_of_string("6.") + else: + temp_multiplicateur_majoration_charges_1 = dead_value + raise EmptyError + except EmptyError: + match_arg_446 = residence_6 + if match_arg_446.code == Collectivite_Code.Guadeloupe: + _ = match_arg_446.value + temp_multiplicateur_majoration_charges_2 = True + elif match_arg_446.code == Collectivite_Code.Guyane: + _ = match_arg_446.value + temp_multiplicateur_majoration_charges_2 = False + elif match_arg_446.code == Collectivite_Code.Martinique: + _ = match_arg_446.value + temp_multiplicateur_majoration_charges_2 = True + elif match_arg_446.code == Collectivite_Code.LaReunion: + _ = match_arg_446.value + temp_multiplicateur_majoration_charges_2 = True + elif match_arg_446.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_446.value + temp_multiplicateur_majoration_charges_2 = True + elif match_arg_446.code == Collectivite_Code.SaintMartin: + _ = match_arg_446.value + temp_multiplicateur_majoration_charges_2 = True + elif match_arg_446.code == Collectivite_Code.Metropole: + _ = match_arg_446.value + temp_multiplicateur_majoration_charges_2 = False + elif match_arg_446.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_446.value + temp_multiplicateur_majoration_charges_2 = False + elif match_arg_446.code == Collectivite_Code.Mayotte: + _ = match_arg_446.value + temp_multiplicateur_majoration_charges_2 = True + if (((date_courante_12 >= + date_of_numbers(2020,10,1)) and + (date_courante_12 < + date_of_numbers(2021,10,1))) and + (temp_multiplicateur_majoration_charges_2 and + (nombre_personnes_a_charge_6 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_charges_1 = decimal_of_string("6.") + else: + temp_multiplicateur_majoration_charges_1 = dead_value + raise EmptyError + except EmptyError: + match_arg_447 = residence_6 + if match_arg_447.code == Collectivite_Code.Guadeloupe: + _ = match_arg_447.value + temp_multiplicateur_majoration_charges_3 = True + elif match_arg_447.code == Collectivite_Code.Guyane: + _ = match_arg_447.value + temp_multiplicateur_majoration_charges_3 = False + elif match_arg_447.code == Collectivite_Code.Martinique: + _ = match_arg_447.value + temp_multiplicateur_majoration_charges_3 = True + elif match_arg_447.code == Collectivite_Code.LaReunion: + _ = match_arg_447.value + temp_multiplicateur_majoration_charges_3 = True + elif match_arg_447.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_447.value + temp_multiplicateur_majoration_charges_3 = True + elif match_arg_447.code == Collectivite_Code.SaintMartin: + _ = match_arg_447.value + temp_multiplicateur_majoration_charges_3 = True + elif match_arg_447.code == Collectivite_Code.Metropole: + _ = match_arg_447.value + temp_multiplicateur_majoration_charges_3 = False + elif match_arg_447.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_447.value + temp_multiplicateur_majoration_charges_3 = False + elif match_arg_447.code == Collectivite_Code.Mayotte: + _ = match_arg_447.value + temp_multiplicateur_majoration_charges_3 = True + if (((date_courante_12 >= + date_of_numbers(2021,10,1)) and + (date_courante_12 < + date_of_numbers(2022,1,1))) and + (temp_multiplicateur_majoration_charges_3 and + (nombre_personnes_a_charge_6 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_charges_1 = decimal_of_string("6.") + else: + temp_multiplicateur_majoration_charges_1 = dead_value + raise EmptyError + except EmptyError: + match_arg_448 = residence_6 + if match_arg_448.code == Collectivite_Code.Guadeloupe: + _ = match_arg_448.value + temp_multiplicateur_majoration_charges_4 = True + elif match_arg_448.code == Collectivite_Code.Guyane: + _ = match_arg_448.value + temp_multiplicateur_majoration_charges_4 = False + elif match_arg_448.code == Collectivite_Code.Martinique: + _ = match_arg_448.value + temp_multiplicateur_majoration_charges_4 = True + elif match_arg_448.code == Collectivite_Code.LaReunion: + _ = match_arg_448.value + temp_multiplicateur_majoration_charges_4 = True + elif match_arg_448.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_448.value + temp_multiplicateur_majoration_charges_4 = True + elif match_arg_448.code == Collectivite_Code.SaintMartin: + _ = match_arg_448.value + temp_multiplicateur_majoration_charges_4 = True + elif match_arg_448.code == Collectivite_Code.Metropole: + _ = match_arg_448.value + temp_multiplicateur_majoration_charges_4 = False + elif match_arg_448.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_448.value + temp_multiplicateur_majoration_charges_4 = False + elif match_arg_448.code == Collectivite_Code.Mayotte: + _ = match_arg_448.value + temp_multiplicateur_majoration_charges_4 = True + if (((date_courante_12 >= date_of_numbers(2022,1,1)) and + (date_courante_12 < date_of_numbers(2022,7,1))) and + (temp_multiplicateur_majoration_charges_4 and + (nombre_personnes_a_charge_6 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_charges_1 = decimal_of_string("6.") else: - return (money_of_cents_string("3767") + - (money_of_cents_string("969") * - decimal_of_integer(nombre_personnes_a_charge_6))) + temp_multiplicateur_majoration_charges_1 = dead_value + raise EmptyError + except EmptyError: + match_arg_449 = residence_6 + if match_arg_449.code == Collectivite_Code.Guadeloupe: + _ = match_arg_449.value + temp_multiplicateur_majoration_charges_5 = True + elif match_arg_449.code == Collectivite_Code.Guyane: + _ = match_arg_449.value + temp_multiplicateur_majoration_charges_5 = False + elif match_arg_449.code == Collectivite_Code.Martinique: + _ = match_arg_449.value + temp_multiplicateur_majoration_charges_5 = True + elif match_arg_449.code == Collectivite_Code.LaReunion: + _ = match_arg_449.value + temp_multiplicateur_majoration_charges_5 = True + elif match_arg_449.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_449.value + temp_multiplicateur_majoration_charges_5 = True + elif match_arg_449.code == Collectivite_Code.SaintMartin: + _ = match_arg_449.value + temp_multiplicateur_majoration_charges_5 = True + elif match_arg_449.code == Collectivite_Code.Metropole: + _ = match_arg_449.value + temp_multiplicateur_majoration_charges_5 = False + elif match_arg_449.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_449.value + temp_multiplicateur_majoration_charges_5 = False + elif match_arg_449.code == Collectivite_Code.Mayotte: + _ = match_arg_449.value + temp_multiplicateur_majoration_charges_5 = True + if (((date_courante_12 >= date_of_numbers(2022,7,1)) and + (date_courante_12 < date_of_numbers(2023,1,1))) and + (temp_multiplicateur_majoration_charges_5 and + (nombre_personnes_a_charge_6 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_charges_1 = decimal_of_string("6.") else: + temp_multiplicateur_majoration_charges_1 = dead_value raise EmptyError - def temp_montant_forfaitaire_charges_4(_:Unit): - match_arg_397 = residence_6 - if match_arg_397.code == Collectivite_Code.Guadeloupe: - _ = match_arg_397.value - temp_montant_forfaitaire_charges_5 = True - elif match_arg_397.code == Collectivite_Code.Guyane: - _ = match_arg_397.value - temp_montant_forfaitaire_charges_5 = False - elif match_arg_397.code == Collectivite_Code.Martinique: - _ = match_arg_397.value - temp_montant_forfaitaire_charges_5 = True - elif match_arg_397.code == Collectivite_Code.LaReunion: - _ = match_arg_397.value - temp_montant_forfaitaire_charges_5 = True - elif match_arg_397.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_397.value - temp_montant_forfaitaire_charges_5 = True - elif match_arg_397.code == Collectivite_Code.SaintMartin: - _ = match_arg_397.value - temp_montant_forfaitaire_charges_5 = True - elif match_arg_397.code == Collectivite_Code.Metropole: - _ = match_arg_397.value - temp_montant_forfaitaire_charges_5 = False - elif match_arg_397.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_397.value - temp_montant_forfaitaire_charges_5 = False - elif match_arg_397.code == Collectivite_Code.Mayotte: - _ = match_arg_397.value - temp_montant_forfaitaire_charges_5 = True - if (((date_courante_11 >= date_of_numbers(2022,7,1)) and - (date_courante_11 < date_of_numbers(2023,1,1))) and - temp_montant_forfaitaire_charges_5): - if ((money_of_cents_string("5612") + - (money_of_cents_string("1272") * - decimal_of_integer(nombre_personnes_a_charge_6))) > - (money_of_cents_string("5612") + - (money_of_cents_string("1272") * - decimal_of_string("6.")))): - return (money_of_cents_string("5612") + - (money_of_cents_string("1272") * - decimal_of_string("6."))) - else: - return (money_of_cents_string("5612") + - (money_of_cents_string("1272") * - decimal_of_integer(nombre_personnes_a_charge_6))) - else: - raise EmptyError - def temp_montant_forfaitaire_charges_6(_:Unit): - match_arg_398 = residence_6 - if match_arg_398.code == Collectivite_Code.Guadeloupe: - _ = match_arg_398.value - temp_montant_forfaitaire_charges_7 = True - elif match_arg_398.code == Collectivite_Code.Guyane: - _ = match_arg_398.value - temp_montant_forfaitaire_charges_7 = False - elif match_arg_398.code == Collectivite_Code.Martinique: - _ = match_arg_398.value - temp_montant_forfaitaire_charges_7 = True - elif match_arg_398.code == Collectivite_Code.LaReunion: - _ = match_arg_398.value - temp_montant_forfaitaire_charges_7 = True - elif match_arg_398.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_398.value - temp_montant_forfaitaire_charges_7 = True - elif match_arg_398.code == Collectivite_Code.SaintMartin: - _ = match_arg_398.value - temp_montant_forfaitaire_charges_7 = True - elif match_arg_398.code == Collectivite_Code.Metropole: - _ = match_arg_398.value - temp_montant_forfaitaire_charges_7 = False - elif match_arg_398.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_398.value - temp_montant_forfaitaire_charges_7 = False - elif match_arg_398.code == Collectivite_Code.Mayotte: - _ = match_arg_398.value - temp_montant_forfaitaire_charges_7 = True - if ((date_courante_11 >= date_of_numbers(2023,1,1)) and - temp_montant_forfaitaire_charges_7): - return (money_of_cents_string("3767") + - (money_of_cents_string("969") * - decimal_of_integer(nombre_personnes_a_charge_6))) - else: - raise EmptyError - temp_montant_forfaitaire_charges_8 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1033, - start_column=12, - end_line=1033, end_column=39, - law_headings=["Secteur logement-foyer", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_6, - temp_montant_forfaitaire_charges_4, - temp_montant_forfaitaire_charges_2], - temp_montant_forfaitaire_charges_1, - temp_montant_forfaitaire_charges) except EmptyError: - def temp_montant_forfaitaire_charges_9(_:Unit): - raise EmptyError - def temp_montant_forfaitaire_charges_10(_:Unit): - return False - def temp_montant_forfaitaire_charges_11(_:Unit): - if ((date_courante_11 >= date_of_numbers(2020,10,1)) and - (date_courante_11 < - date_of_numbers(2021,10,1))): - if (nombre_personnes_a_charge_6 == - integer_of_string("0")): - return money_of_cents_string("5399") - else: - return (money_of_cents_string("5399") + - (money_of_cents_string("1224") * - decimal_of_integer(nombre_personnes_a_charge_6))) - else: - raise EmptyError - def temp_montant_forfaitaire_charges_12(_:Unit): - if ((date_courante_11 >= date_of_numbers(2021,10,1)) and - (date_courante_11 < + try: + if ((date_courante_12 >= date_of_numbers(2021,10,1)) and + (date_courante_12 < date_of_numbers(2022,7,1))): - if (nombre_personnes_a_charge_6 == - integer_of_string("0")): - return money_of_cents_string("5422") - else: - return (money_of_cents_string("5422") + - (money_of_cents_string("1229") * - decimal_of_integer(nombre_personnes_a_charge_6))) + temp_multiplicateur_majoration_charges_1 = decimal_of_integer(nombre_personnes_a_charge_6) else: + temp_multiplicateur_majoration_charges_1 = dead_value raise EmptyError - def temp_montant_forfaitaire_charges_13(_:Unit): - if (date_courante_11 >= + except EmptyError: + if (date_courante_12 >= date_of_numbers(2022,7,1)): - if (nombre_personnes_a_charge_6 == - integer_of_string("0")): - return money_of_cents_string("5612") - else: - return (money_of_cents_string("5612") + - (money_of_cents_string("1272") * - decimal_of_integer(nombre_personnes_a_charge_6))) + temp_multiplicateur_majoration_charges_1 = decimal_of_integer(nombre_personnes_a_charge_6) else: + temp_multiplicateur_majoration_charges_1 = dead_value raise EmptyError - temp_montant_forfaitaire_charges_8 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1033, - start_column=12, - end_line=1033, end_column=39, - law_headings=["Secteur logement-foyer", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_13, - temp_montant_forfaitaire_charges_12, - temp_montant_forfaitaire_charges_11], - temp_montant_forfaitaire_charges_10, - temp_montant_forfaitaire_charges_9) except EmptyError: - temp_montant_forfaitaire_charges_8 = dead_value + temp_multiplicateur_majoration_charges_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1033, - start_column=12, end_line=1033, + start_line=1041, + start_column=11, end_line=1041, + end_column=44, + law_headings=["Secteur logement-foyer", + "Calcul du montant de l'allocation logement", + "Prologue : aides au logement"])) + multiplicateur_majoration_charges = temp_multiplicateur_majoration_charges_1 + try: + if (date_courante_12 >= + date_of_numbers(2019,10,1)): + temp_montant_minimal_depense_nette_d842_17 = money_of_cents_string("1500") + else: + temp_montant_minimal_depense_nette_d842_17 = dead_value + raise EmptyError + except EmptyError: + temp_montant_minimal_depense_nette_d842_17 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=1040, + start_column=11, end_line=1040, + end_column=48, + law_headings=["Secteur logement-foyer", + "Calcul du montant de l'allocation logement", + "Prologue : aides au logement"])) + montant_minimal_depense_nette_d842_17 = temp_montant_minimal_depense_nette_d842_17 + try: + if (date_courante_12 >= + date_of_numbers(2019,10,1)): + temp_montant_forfaitaire_d842_15 = money_of_cents_string("500") + else: + temp_montant_forfaitaire_d842_15 = dead_value + raise EmptyError + except EmptyError: + temp_montant_forfaitaire_d842_15 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=1039, + start_column=11, end_line=1039, + end_column=38, + law_headings=["Secteur logement-foyer", + "Calcul du montant de l'allocation logement", + "Prologue : aides au logement"])) + montant_forfaitaire_d842_15 = temp_montant_forfaitaire_d842_15 + try: + if (date_courante_12 >= + date_of_numbers(2019,10,1)): + temp_montant_minimal_aide_d842_15 = money_of_cents_string("1000") + else: + temp_montant_minimal_aide_d842_15 = dead_value + raise EmptyError + except EmptyError: + temp_montant_minimal_aide_d842_15 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=1038, + start_column=11, end_line=1038, end_column=39, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) - montant_forfaitaire_charges = temp_montant_forfaitaire_charges_8 + montant_minimal_aide_d842_15 = temp_montant_minimal_aide_d842_15 try: def temp_equivalence_loyer(_:Unit): raise EmptyError @@ -13658,319 +15481,319 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA return False def temp_equivalence_loyer_2(_:Unit): try: - match_arg_399 = categorie_equivalence_loyer_d842_16 - if match_arg_399.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUS: - _ = match_arg_399.value + match_arg_450 = categorie_equivalence_loyer_d842_16 + if match_arg_450.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUS: + _ = match_arg_450.value temp_equivalence_loyer_3 = False - elif match_arg_399.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUSRehabilitee: - _ = match_arg_399.value + elif match_arg_450.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUSRehabilitee: + _ = match_arg_450.value temp_equivalence_loyer_3 = False - elif match_arg_399.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.PersonnesAgeesSelon3DeD842_16: - _ = match_arg_399.value + elif match_arg_450.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.PersonnesAgeesSelon3DeD842_16: + _ = match_arg_450.value temp_equivalence_loyer_3 = False - elif match_arg_399.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.AutresPersonnes: - _ = match_arg_399.value + elif match_arg_450.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.AutresPersonnes: + _ = match_arg_450.value temp_equivalence_loyer_3 = True - if (((date_courante_11 >= date_of_numbers(2020,10,1)) and - (date_courante_11 < date_of_numbers(2021,10,1))) and + if (((date_courante_12 >= date_of_numbers(2020,10,1)) and + (date_courante_12 < date_of_numbers(2021,10,1))) and temp_equivalence_loyer_3): - match_arg_400 = situation_familiale_calcul_apl_6 - if match_arg_400.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_400.value + match_arg_451 = situation_familiale_calcul_apl_6 + if match_arg_451.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_451.value return money_of_cents_string("16941") - elif match_arg_400.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_400.value + elif match_arg_451.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_451.value return money_of_cents_string("26329") else: raise EmptyError except EmptyError: - match_arg_401 = categorie_equivalence_loyer_d842_16 - if match_arg_401.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUS: - _ = match_arg_401.value + match_arg_452 = categorie_equivalence_loyer_d842_16 + if match_arg_452.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUS: + _ = match_arg_452.value temp_equivalence_loyer_4 = False - elif match_arg_401.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUSRehabilitee: - _ = match_arg_401.value + elif match_arg_452.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUSRehabilitee: + _ = match_arg_452.value temp_equivalence_loyer_4 = True - elif match_arg_401.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.PersonnesAgeesSelon3DeD842_16: - _ = match_arg_401.value + elif match_arg_452.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.PersonnesAgeesSelon3DeD842_16: + _ = match_arg_452.value temp_equivalence_loyer_4 = False - elif match_arg_401.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.AutresPersonnes: - _ = match_arg_401.value + elif match_arg_452.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.AutresPersonnes: + _ = match_arg_452.value temp_equivalence_loyer_4 = False - if (((date_courante_11 >= date_of_numbers(2020,10,1)) and - (date_courante_11 < date_of_numbers(2021,10,1))) and + if (((date_courante_12 >= date_of_numbers(2020,10,1)) and + (date_courante_12 < date_of_numbers(2021,10,1))) and temp_equivalence_loyer_4): - match_arg_402 = situation_familiale_calcul_apl_6 - if match_arg_402.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_402.value + match_arg_453 = situation_familiale_calcul_apl_6 + if match_arg_453.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_453.value return money_of_cents_string("16941") - elif match_arg_402.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_402.value + elif match_arg_453.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_453.value return money_of_cents_string("26329") else: raise EmptyError def temp_equivalence_loyer_5(_:Unit): - match_arg_403 = categorie_equivalence_loyer_d842_16 - if match_arg_403.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUS: - _ = match_arg_403.value + match_arg_454 = categorie_equivalence_loyer_d842_16 + if match_arg_454.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUS: + _ = match_arg_454.value temp_equivalence_loyer_6 = False - elif match_arg_403.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUSRehabilitee: - _ = match_arg_403.value + elif match_arg_454.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUSRehabilitee: + _ = match_arg_454.value temp_equivalence_loyer_6 = False - elif match_arg_403.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.PersonnesAgeesSelon3DeD842_16: - _ = match_arg_403.value + elif match_arg_454.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.PersonnesAgeesSelon3DeD842_16: + _ = match_arg_454.value temp_equivalence_loyer_6 = True - elif match_arg_403.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.AutresPersonnes: - _ = match_arg_403.value + elif match_arg_454.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.AutresPersonnes: + _ = match_arg_454.value temp_equivalence_loyer_6 = False - if (((date_courante_11 >= date_of_numbers(2020,10,1)) and - (date_courante_11 < date_of_numbers(2021,10,1))) and + if (((date_courante_12 >= date_of_numbers(2020,10,1)) and + (date_courante_12 < date_of_numbers(2021,10,1))) and temp_equivalence_loyer_6): - match_arg_404 = situation_familiale_calcul_apl_6 - if match_arg_404.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_404.value + match_arg_455 = situation_familiale_calcul_apl_6 + if match_arg_455.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_455.value return money_of_cents_string("20554") - elif match_arg_404.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_404.value + elif match_arg_455.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_455.value return money_of_cents_string("31939") else: raise EmptyError def temp_equivalence_loyer_7(_:Unit): - match_arg_405 = categorie_equivalence_loyer_d842_16 - if match_arg_405.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUS: - _ = match_arg_405.value + match_arg_456 = categorie_equivalence_loyer_d842_16 + if match_arg_456.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUS: + _ = match_arg_456.value temp_equivalence_loyer_8 = True - elif match_arg_405.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUSRehabilitee: - _ = match_arg_405.value + elif match_arg_456.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUSRehabilitee: + _ = match_arg_456.value temp_equivalence_loyer_8 = False - elif match_arg_405.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.PersonnesAgeesSelon3DeD842_16: - _ = match_arg_405.value + elif match_arg_456.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.PersonnesAgeesSelon3DeD842_16: + _ = match_arg_456.value temp_equivalence_loyer_8 = False - elif match_arg_405.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.AutresPersonnes: - _ = match_arg_405.value + elif match_arg_456.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.AutresPersonnes: + _ = match_arg_456.value temp_equivalence_loyer_8 = False - if (((date_courante_11 >= date_of_numbers(2020,10,1)) and - (date_courante_11 < date_of_numbers(2021,10,1))) and + if (((date_courante_12 >= date_of_numbers(2020,10,1)) and + (date_courante_12 < date_of_numbers(2021,10,1))) and temp_equivalence_loyer_8): - match_arg_406 = situation_familiale_calcul_apl_6 - if match_arg_406.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_406.value + match_arg_457 = situation_familiale_calcul_apl_6 + if match_arg_457.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_457.value return money_of_cents_string("8379") - elif match_arg_406.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_406.value + elif match_arg_457.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_457.value return money_of_cents_string("13045") else: raise EmptyError def temp_equivalence_loyer_9(_:Unit): try: - match_arg_407 = categorie_equivalence_loyer_d842_16 - if match_arg_407.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUS: - _ = match_arg_407.value + match_arg_458 = categorie_equivalence_loyer_d842_16 + if match_arg_458.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUS: + _ = match_arg_458.value temp_equivalence_loyer_10 = False - elif match_arg_407.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUSRehabilitee: - _ = match_arg_407.value + elif match_arg_458.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUSRehabilitee: + _ = match_arg_458.value temp_equivalence_loyer_10 = False - elif match_arg_407.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.PersonnesAgeesSelon3DeD842_16: - _ = match_arg_407.value + elif match_arg_458.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.PersonnesAgeesSelon3DeD842_16: + _ = match_arg_458.value temp_equivalence_loyer_10 = False - elif match_arg_407.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.AutresPersonnes: - _ = match_arg_407.value + elif match_arg_458.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.AutresPersonnes: + _ = match_arg_458.value temp_equivalence_loyer_10 = True - if (((date_courante_11 >= date_of_numbers(2021,10,1)) and - (date_courante_11 < date_of_numbers(2022,7,1))) and + if (((date_courante_12 >= date_of_numbers(2021,10,1)) and + (date_courante_12 < date_of_numbers(2022,7,1))) and temp_equivalence_loyer_10): - match_arg_408 = situation_familiale_calcul_apl_6 - if match_arg_408.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_408.value + match_arg_459 = situation_familiale_calcul_apl_6 + if match_arg_459.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_459.value return money_of_cents_string("17012") - elif match_arg_408.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_408.value + elif match_arg_459.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_459.value return money_of_cents_string("26440") else: raise EmptyError except EmptyError: - match_arg_409 = categorie_equivalence_loyer_d842_16 - if match_arg_409.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUS: - _ = match_arg_409.value + match_arg_460 = categorie_equivalence_loyer_d842_16 + if match_arg_460.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUS: + _ = match_arg_460.value temp_equivalence_loyer_11 = False - elif match_arg_409.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUSRehabilitee: - _ = match_arg_409.value + elif match_arg_460.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUSRehabilitee: + _ = match_arg_460.value temp_equivalence_loyer_11 = True - elif match_arg_409.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.PersonnesAgeesSelon3DeD842_16: - _ = match_arg_409.value + elif match_arg_460.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.PersonnesAgeesSelon3DeD842_16: + _ = match_arg_460.value temp_equivalence_loyer_11 = False - elif match_arg_409.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.AutresPersonnes: - _ = match_arg_409.value + elif match_arg_460.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.AutresPersonnes: + _ = match_arg_460.value temp_equivalence_loyer_11 = False - if (((date_courante_11 >= date_of_numbers(2021,10,1)) and - (date_courante_11 < date_of_numbers(2022,7,1))) and + if (((date_courante_12 >= date_of_numbers(2021,10,1)) and + (date_courante_12 < date_of_numbers(2022,7,1))) and temp_equivalence_loyer_11): - match_arg_410 = situation_familiale_calcul_apl_6 - if match_arg_410.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_410.value + match_arg_461 = situation_familiale_calcul_apl_6 + if match_arg_461.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_461.value return money_of_cents_string("17012") - elif match_arg_410.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_410.value + elif match_arg_461.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_461.value return money_of_cents_string("26440") else: raise EmptyError def temp_equivalence_loyer_12(_:Unit): - match_arg_411 = categorie_equivalence_loyer_d842_16 - if match_arg_411.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUS: - _ = match_arg_411.value + match_arg_462 = categorie_equivalence_loyer_d842_16 + if match_arg_462.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUS: + _ = match_arg_462.value temp_equivalence_loyer_13 = False - elif match_arg_411.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUSRehabilitee: - _ = match_arg_411.value + elif match_arg_462.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUSRehabilitee: + _ = match_arg_462.value temp_equivalence_loyer_13 = False - elif match_arg_411.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.PersonnesAgeesSelon3DeD842_16: - _ = match_arg_411.value + elif match_arg_462.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.PersonnesAgeesSelon3DeD842_16: + _ = match_arg_462.value temp_equivalence_loyer_13 = True - elif match_arg_411.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.AutresPersonnes: - _ = match_arg_411.value + elif match_arg_462.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.AutresPersonnes: + _ = match_arg_462.value temp_equivalence_loyer_13 = False - if (((date_courante_11 >= date_of_numbers(2021,10,1)) and - (date_courante_11 < date_of_numbers(2022,7,1))) and + if (((date_courante_12 >= date_of_numbers(2021,10,1)) and + (date_courante_12 < date_of_numbers(2022,7,1))) and temp_equivalence_loyer_13): - match_arg_412 = situation_familiale_calcul_apl_6 - if match_arg_412.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_412.value + match_arg_463 = situation_familiale_calcul_apl_6 + if match_arg_463.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_463.value return money_of_cents_string("20640") - elif match_arg_412.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_412.value + elif match_arg_463.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_463.value return money_of_cents_string("32073") else: raise EmptyError def temp_equivalence_loyer_14(_:Unit): - match_arg_413 = categorie_equivalence_loyer_d842_16 - if match_arg_413.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUS: - _ = match_arg_413.value + match_arg_464 = categorie_equivalence_loyer_d842_16 + if match_arg_464.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUS: + _ = match_arg_464.value temp_equivalence_loyer_15 = True - elif match_arg_413.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUSRehabilitee: - _ = match_arg_413.value + elif match_arg_464.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUSRehabilitee: + _ = match_arg_464.value temp_equivalence_loyer_15 = False - elif match_arg_413.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.PersonnesAgeesSelon3DeD842_16: - _ = match_arg_413.value + elif match_arg_464.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.PersonnesAgeesSelon3DeD842_16: + _ = match_arg_464.value temp_equivalence_loyer_15 = False - elif match_arg_413.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.AutresPersonnes: - _ = match_arg_413.value + elif match_arg_464.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.AutresPersonnes: + _ = match_arg_464.value temp_equivalence_loyer_15 = False - if (((date_courante_11 >= date_of_numbers(2021,10,1)) and - (date_courante_11 < date_of_numbers(2022,7,1))) and + if (((date_courante_12 >= date_of_numbers(2021,10,1)) and + (date_courante_12 < date_of_numbers(2022,7,1))) and temp_equivalence_loyer_15): - match_arg_414 = situation_familiale_calcul_apl_6 - if match_arg_414.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_414.value + match_arg_465 = situation_familiale_calcul_apl_6 + if match_arg_465.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_465.value return money_of_cents_string("8414") - elif match_arg_414.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_414.value + elif match_arg_465.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_465.value return money_of_cents_string("13100") else: raise EmptyError def temp_equivalence_loyer_16(_:Unit): try: - match_arg_415 = categorie_equivalence_loyer_d842_16 - if match_arg_415.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUS: - _ = match_arg_415.value + match_arg_466 = categorie_equivalence_loyer_d842_16 + if match_arg_466.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUS: + _ = match_arg_466.value temp_equivalence_loyer_17 = False - elif match_arg_415.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUSRehabilitee: - _ = match_arg_415.value + elif match_arg_466.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUSRehabilitee: + _ = match_arg_466.value temp_equivalence_loyer_17 = False - elif match_arg_415.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.PersonnesAgeesSelon3DeD842_16: - _ = match_arg_415.value + elif match_arg_466.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.PersonnesAgeesSelon3DeD842_16: + _ = match_arg_466.value temp_equivalence_loyer_17 = False - elif match_arg_415.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.AutresPersonnes: - _ = match_arg_415.value + elif match_arg_466.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.AutresPersonnes: + _ = match_arg_466.value temp_equivalence_loyer_17 = True - if ((date_courante_11 >= date_of_numbers(2022,7,1)) and + if ((date_courante_12 >= date_of_numbers(2022,7,1)) and temp_equivalence_loyer_17): - match_arg_416 = situation_familiale_calcul_apl_6 - if match_arg_416.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_416.value + match_arg_467 = situation_familiale_calcul_apl_6 + if match_arg_467.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_467.value return money_of_cents_string("17607") - elif match_arg_416.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_416.value + elif match_arg_467.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_467.value return money_of_cents_string("27365") else: raise EmptyError except EmptyError: - match_arg_417 = categorie_equivalence_loyer_d842_16 - if match_arg_417.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUS: - _ = match_arg_417.value + match_arg_468 = categorie_equivalence_loyer_d842_16 + if match_arg_468.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUS: + _ = match_arg_468.value temp_equivalence_loyer_18 = False - elif match_arg_417.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUSRehabilitee: - _ = match_arg_417.value + elif match_arg_468.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUSRehabilitee: + _ = match_arg_468.value temp_equivalence_loyer_18 = True - elif match_arg_417.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.PersonnesAgeesSelon3DeD842_16: - _ = match_arg_417.value + elif match_arg_468.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.PersonnesAgeesSelon3DeD842_16: + _ = match_arg_468.value temp_equivalence_loyer_18 = False - elif match_arg_417.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.AutresPersonnes: - _ = match_arg_417.value + elif match_arg_468.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.AutresPersonnes: + _ = match_arg_468.value temp_equivalence_loyer_18 = False - if ((date_courante_11 >= date_of_numbers(2022,7,1)) and + if ((date_courante_12 >= date_of_numbers(2022,7,1)) and temp_equivalence_loyer_18): - match_arg_418 = situation_familiale_calcul_apl_6 - if match_arg_418.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_418.value + match_arg_469 = situation_familiale_calcul_apl_6 + if match_arg_469.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_469.value return money_of_cents_string("17607") - elif match_arg_418.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_418.value + elif match_arg_469.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_469.value return money_of_cents_string("27365") else: raise EmptyError def temp_equivalence_loyer_19(_:Unit): - match_arg_419 = categorie_equivalence_loyer_d842_16 - if match_arg_419.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUS: - _ = match_arg_419.value + match_arg_470 = categorie_equivalence_loyer_d842_16 + if match_arg_470.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUS: + _ = match_arg_470.value temp_equivalence_loyer_20 = False - elif match_arg_419.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUSRehabilitee: - _ = match_arg_419.value + elif match_arg_470.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUSRehabilitee: + _ = match_arg_470.value temp_equivalence_loyer_20 = False - elif match_arg_419.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.PersonnesAgeesSelon3DeD842_16: - _ = match_arg_419.value + elif match_arg_470.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.PersonnesAgeesSelon3DeD842_16: + _ = match_arg_470.value temp_equivalence_loyer_20 = True - elif match_arg_419.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.AutresPersonnes: - _ = match_arg_419.value + elif match_arg_470.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.AutresPersonnes: + _ = match_arg_470.value temp_equivalence_loyer_20 = False - if ((date_courante_11 >= date_of_numbers(2022,7,1)) and + if ((date_courante_12 >= date_of_numbers(2022,7,1)) and temp_equivalence_loyer_20): - match_arg_420 = situation_familiale_calcul_apl_6 - if match_arg_420.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_420.value + match_arg_471 = situation_familiale_calcul_apl_6 + if match_arg_471.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_471.value return money_of_cents_string("21362") - elif match_arg_420.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_420.value + elif match_arg_471.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_471.value return money_of_cents_string("33196") else: raise EmptyError def temp_equivalence_loyer_21(_:Unit): - match_arg_421 = categorie_equivalence_loyer_d842_16 - if match_arg_421.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUS: - _ = match_arg_421.value + match_arg_472 = categorie_equivalence_loyer_d842_16 + if match_arg_472.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUS: + _ = match_arg_472.value temp_equivalence_loyer_22 = True - elif match_arg_421.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUSRehabilitee: - _ = match_arg_421.value + elif match_arg_472.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.EtudiantLogeEnChambreCROUSRehabilitee: + _ = match_arg_472.value temp_equivalence_loyer_22 = False - elif match_arg_421.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.PersonnesAgeesSelon3DeD842_16: - _ = match_arg_421.value + elif match_arg_472.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.PersonnesAgeesSelon3DeD842_16: + _ = match_arg_472.value temp_equivalence_loyer_22 = False - elif match_arg_421.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.AutresPersonnes: - _ = match_arg_421.value + elif match_arg_472.code == CategorieEquivalenceLoyerAllocationLogementFoyer_Code.AutresPersonnes: + _ = match_arg_472.value temp_equivalence_loyer_22 = False - if ((date_courante_11 >= date_of_numbers(2022,7,1)) and + if ((date_courante_12 >= date_of_numbers(2022,7,1)) and temp_equivalence_loyer_22): - match_arg_422 = situation_familiale_calcul_apl_6 - if match_arg_422.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_422.value + match_arg_473 = situation_familiale_calcul_apl_6 + if match_arg_473.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_473.value return money_of_cents_string("8708") - elif match_arg_422.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_422.value + elif match_arg_473.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_473.value return money_of_cents_string("13559") else: raise EmptyError temp_equivalence_loyer_23 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1032, + start_line=1043, start_column=12, - end_line=1032, end_column=29, + end_line=1043, end_column=29, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"]), [temp_equivalence_loyer_21, @@ -13987,47 +15810,20 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_equivalence_loyer_23 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1032, - start_column=12, end_line=1032, + start_line=1043, + start_column=12, end_line=1043, end_column=29, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) equivalence_loyer = temp_equivalence_loyer_23 try: - def temp_traitement_aide_finale_minoration_forfaitaire_3(aide_finale_16:Money): - try: - if ((aide_finale_16 - montant_forfaitaire_d842_15) < - money_of_cents_string("0")): - return money_of_cents_string("0") - else: - return (aide_finale_16 - montant_forfaitaire_d842_15) - except EmptyError: - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1047, - start_column=10, - end_line=1047, - end_column=32, - law_headings=["Secteur logement-foyer", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) - except EmptyError: - temp_traitement_aide_finale_minoration_forfaitaire_3 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1047, - start_column=10, end_line=1047, - end_column=32, - law_headings=["Secteur logement-foyer", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) - traitement_aide_finale_minoration_forfaitaire_3 = temp_traitement_aide_finale_minoration_forfaitaire_3 - try: - temp_calcul_equivalence_loyer_minimale_dot_date_courante_2 = date_courante_11 + temp_calcul_equivalence_loyer_minimale_dot_date_courante_2 = date_courante_12 except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_date_courante_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1071, - start_column=14, end_line=1071, + start_line=1082, + start_column=14, end_line=1082, end_column=61, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -14038,8 +15834,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_ressources_menage_arrondies_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=4828, - start_column=14, end_line=4828, + start_line=4833, + start_column=14, end_line=4833, end_column=75, law_headings=["Article D842-15", "Section 3 : Logements-foyers", @@ -14054,8 +15850,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_condition_2_du_832_25_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=4827, - start_column=14, end_line=4827, + start_line=4832, + start_column=14, end_line=4832, end_column=69, law_headings=["Article D842-15", "Section 3 : Logements-foyers", @@ -14070,8 +15866,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_n_nombre_parts_d832_25_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=4838, - start_column=14, end_line=4838, + start_line=4843, + start_column=14, end_line=4843, end_column=70, law_headings=["Article D842-15", "Section 3 : Logements-foyers", @@ -14091,13 +15887,407 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_coefficient_prise_en_charge = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1031, - start_column=12, end_line=1031, + start_line=1042, + start_column=12, end_line=1042, end_column=39, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) coefficient_prise_en_charge = temp_coefficient_prise_en_charge + try: + try: + def temp_montant_forfaitaire_charges(_:Unit): + raise EmptyError + def temp_montant_forfaitaire_charges_1(_:Unit): + return False + def temp_montant_forfaitaire_charges_2(_:Unit): + match_arg_474 = residence_6 + if match_arg_474.code == Collectivite_Code.Guadeloupe: + _ = match_arg_474.value + temp_montant_forfaitaire_charges_3 = True + elif match_arg_474.code == Collectivite_Code.Guyane: + _ = match_arg_474.value + temp_montant_forfaitaire_charges_3 = False + elif match_arg_474.code == Collectivite_Code.Martinique: + _ = match_arg_474.value + temp_montant_forfaitaire_charges_3 = True + elif match_arg_474.code == Collectivite_Code.LaReunion: + _ = match_arg_474.value + temp_montant_forfaitaire_charges_3 = True + elif match_arg_474.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_474.value + temp_montant_forfaitaire_charges_3 = True + elif match_arg_474.code == Collectivite_Code.SaintMartin: + _ = match_arg_474.value + temp_montant_forfaitaire_charges_3 = True + elif match_arg_474.code == Collectivite_Code.Metropole: + _ = match_arg_474.value + temp_montant_forfaitaire_charges_3 = False + elif match_arg_474.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_474.value + temp_montant_forfaitaire_charges_3 = False + elif match_arg_474.code == Collectivite_Code.Mayotte: + _ = match_arg_474.value + temp_montant_forfaitaire_charges_3 = True + if (((date_courante_12 >= date_of_numbers(2020,1,1)) and + (date_courante_12 < date_of_numbers(2020,10,1))) and + temp_montant_forfaitaire_charges_3): + if ((money_of_cents_string("3614") + + (money_of_cents_string("929") * + decimal_of_integer(nombre_personnes_a_charge_6))) > + (money_of_cents_string("3614") + + (money_of_cents_string("929") * + decimal_of_string("6.")))): + return (money_of_cents_string("3614") + + (money_of_cents_string("929") * + decimal_of_string("6."))) + else: + return (money_of_cents_string("3614") + + (money_of_cents_string("929") * + decimal_of_integer(nombre_personnes_a_charge_6))) + else: + raise EmptyError + def temp_montant_forfaitaire_charges_4(_:Unit): + match_arg_475 = residence_6 + if match_arg_475.code == Collectivite_Code.Guadeloupe: + _ = match_arg_475.value + temp_montant_forfaitaire_charges_5 = True + elif match_arg_475.code == Collectivite_Code.Guyane: + _ = match_arg_475.value + temp_montant_forfaitaire_charges_5 = False + elif match_arg_475.code == Collectivite_Code.Martinique: + _ = match_arg_475.value + temp_montant_forfaitaire_charges_5 = True + elif match_arg_475.code == Collectivite_Code.LaReunion: + _ = match_arg_475.value + temp_montant_forfaitaire_charges_5 = True + elif match_arg_475.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_475.value + temp_montant_forfaitaire_charges_5 = True + elif match_arg_475.code == Collectivite_Code.SaintMartin: + _ = match_arg_475.value + temp_montant_forfaitaire_charges_5 = True + elif match_arg_475.code == Collectivite_Code.Metropole: + _ = match_arg_475.value + temp_montant_forfaitaire_charges_5 = False + elif match_arg_475.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_475.value + temp_montant_forfaitaire_charges_5 = False + elif match_arg_475.code == Collectivite_Code.Mayotte: + _ = match_arg_475.value + temp_montant_forfaitaire_charges_5 = True + if (((date_courante_12 >= date_of_numbers(2020,10,1)) and + (date_courante_12 < date_of_numbers(2021,10,1))) and + temp_montant_forfaitaire_charges_5): + if ((money_of_cents_string("3625") + + (money_of_cents_string("932") * + decimal_of_integer(nombre_personnes_a_charge_6))) > + (money_of_cents_string("3625") + + (money_of_cents_string("932") * + decimal_of_string("6.")))): + return (money_of_cents_string("3625") + + (money_of_cents_string("932") * + decimal_of_string("6."))) + else: + return (money_of_cents_string("3625") + + (money_of_cents_string("932") * + decimal_of_integer(nombre_personnes_a_charge_6))) + else: + raise EmptyError + def temp_montant_forfaitaire_charges_6(_:Unit): + try: + match_arg_476 = residence_6 + if match_arg_476.code == Collectivite_Code.Guadeloupe: + _ = match_arg_476.value + temp_montant_forfaitaire_charges_7 = True + elif match_arg_476.code == Collectivite_Code.Guyane: + _ = match_arg_476.value + temp_montant_forfaitaire_charges_7 = False + elif match_arg_476.code == Collectivite_Code.Martinique: + _ = match_arg_476.value + temp_montant_forfaitaire_charges_7 = True + elif match_arg_476.code == Collectivite_Code.LaReunion: + _ = match_arg_476.value + temp_montant_forfaitaire_charges_7 = True + elif match_arg_476.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_476.value + temp_montant_forfaitaire_charges_7 = True + elif match_arg_476.code == Collectivite_Code.SaintMartin: + _ = match_arg_476.value + temp_montant_forfaitaire_charges_7 = True + elif match_arg_476.code == Collectivite_Code.Metropole: + _ = match_arg_476.value + temp_montant_forfaitaire_charges_7 = False + elif match_arg_476.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_476.value + temp_montant_forfaitaire_charges_7 = False + elif match_arg_476.code == Collectivite_Code.Mayotte: + _ = match_arg_476.value + temp_montant_forfaitaire_charges_7 = True + if (((date_courante_12 >= date_of_numbers(2021,10,1)) and + (date_courante_12 < date_of_numbers(2022,1,1))) and + temp_montant_forfaitaire_charges_7): + if ((money_of_cents_string("3640") + + (money_of_cents_string("936") * + decimal_of_integer(nombre_personnes_a_charge_6))) > + (money_of_cents_string("3640") + + (money_of_cents_string("936") * + decimal_of_string("6.")))): + return (money_of_cents_string("3640") + + (money_of_cents_string("936") * + decimal_of_string("6."))) + else: + return (money_of_cents_string("3640") + + (money_of_cents_string("936") * + decimal_of_integer(nombre_personnes_a_charge_6))) + else: + raise EmptyError + except EmptyError: + match_arg_477 = residence_6 + if match_arg_477.code == Collectivite_Code.Guadeloupe: + _ = match_arg_477.value + temp_montant_forfaitaire_charges_8 = True + elif match_arg_477.code == Collectivite_Code.Guyane: + _ = match_arg_477.value + temp_montant_forfaitaire_charges_8 = False + elif match_arg_477.code == Collectivite_Code.Martinique: + _ = match_arg_477.value + temp_montant_forfaitaire_charges_8 = True + elif match_arg_477.code == Collectivite_Code.LaReunion: + _ = match_arg_477.value + temp_montant_forfaitaire_charges_8 = True + elif match_arg_477.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_477.value + temp_montant_forfaitaire_charges_8 = True + elif match_arg_477.code == Collectivite_Code.SaintMartin: + _ = match_arg_477.value + temp_montant_forfaitaire_charges_8 = True + elif match_arg_477.code == Collectivite_Code.Metropole: + _ = match_arg_477.value + temp_montant_forfaitaire_charges_8 = False + elif match_arg_477.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_477.value + temp_montant_forfaitaire_charges_8 = False + elif match_arg_477.code == Collectivite_Code.Mayotte: + _ = match_arg_477.value + temp_montant_forfaitaire_charges_8 = True + if (((date_courante_12 >= date_of_numbers(2022,1,1)) and + (date_courante_12 < date_of_numbers(2022,7,1))) and + temp_montant_forfaitaire_charges_8): + if ((money_of_cents_string("3640") + + (money_of_cents_string("936") * + decimal_of_integer(nombre_personnes_a_charge_6))) > + (money_of_cents_string("3640") + + (money_of_cents_string("936") * + decimal_of_string("6.")))): + return (money_of_cents_string("3640") + + (money_of_cents_string("936") * + decimal_of_string("6."))) + else: + return (money_of_cents_string("3640") + + (money_of_cents_string("936") * + decimal_of_integer(nombre_personnes_a_charge_6))) + else: + raise EmptyError + def temp_montant_forfaitaire_charges_9(_:Unit): + match_arg_478 = residence_6 + if match_arg_478.code == Collectivite_Code.Guadeloupe: + _ = match_arg_478.value + temp_montant_forfaitaire_charges_10 = True + elif match_arg_478.code == Collectivite_Code.Guyane: + _ = match_arg_478.value + temp_montant_forfaitaire_charges_10 = False + elif match_arg_478.code == Collectivite_Code.Martinique: + _ = match_arg_478.value + temp_montant_forfaitaire_charges_10 = True + elif match_arg_478.code == Collectivite_Code.LaReunion: + _ = match_arg_478.value + temp_montant_forfaitaire_charges_10 = True + elif match_arg_478.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_478.value + temp_montant_forfaitaire_charges_10 = True + elif match_arg_478.code == Collectivite_Code.SaintMartin: + _ = match_arg_478.value + temp_montant_forfaitaire_charges_10 = True + elif match_arg_478.code == Collectivite_Code.Metropole: + _ = match_arg_478.value + temp_montant_forfaitaire_charges_10 = False + elif match_arg_478.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_478.value + temp_montant_forfaitaire_charges_10 = False + elif match_arg_478.code == Collectivite_Code.Mayotte: + _ = match_arg_478.value + temp_montant_forfaitaire_charges_10 = True + if (((date_courante_12 >= date_of_numbers(2022,7,1)) and + (date_courante_12 < date_of_numbers(2023,1,1))) and + temp_montant_forfaitaire_charges_10): + if ((money_of_cents_string("3767") + + (money_of_cents_string("969") * + decimal_of_integer(nombre_personnes_a_charge_6))) > + (money_of_cents_string("3767") + + (money_of_cents_string("969") * + decimal_of_string("6.")))): + return (money_of_cents_string("3767") + + (money_of_cents_string("969") * + decimal_of_string("6."))) + else: + return (money_of_cents_string("3767") + + (money_of_cents_string("969") * + decimal_of_integer(nombre_personnes_a_charge_6))) + else: + raise EmptyError + def temp_montant_forfaitaire_charges_11(_:Unit): + match_arg_479 = residence_6 + if match_arg_479.code == Collectivite_Code.Guadeloupe: + _ = match_arg_479.value + temp_montant_forfaitaire_charges_12 = True + elif match_arg_479.code == Collectivite_Code.Guyane: + _ = match_arg_479.value + temp_montant_forfaitaire_charges_12 = False + elif match_arg_479.code == Collectivite_Code.Martinique: + _ = match_arg_479.value + temp_montant_forfaitaire_charges_12 = True + elif match_arg_479.code == Collectivite_Code.LaReunion: + _ = match_arg_479.value + temp_montant_forfaitaire_charges_12 = True + elif match_arg_479.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_479.value + temp_montant_forfaitaire_charges_12 = True + elif match_arg_479.code == Collectivite_Code.SaintMartin: + _ = match_arg_479.value + temp_montant_forfaitaire_charges_12 = True + elif match_arg_479.code == Collectivite_Code.Metropole: + _ = match_arg_479.value + temp_montant_forfaitaire_charges_12 = False + elif match_arg_479.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_479.value + temp_montant_forfaitaire_charges_12 = False + elif match_arg_479.code == Collectivite_Code.Mayotte: + _ = match_arg_479.value + temp_montant_forfaitaire_charges_12 = True + if ((date_courante_12 >= date_of_numbers(2023,1,1)) and + temp_montant_forfaitaire_charges_12): + return (money_of_cents_string("3767") + + (money_of_cents_string("969") * + multiplicateur_majoration_charges)) + else: + raise EmptyError + temp_montant_forfaitaire_charges_13 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=1044, + start_column=12, + end_line=1044, end_column=39, + law_headings=["Secteur logement-foyer", + "Calcul du montant de l'allocation logement", + "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_11, + temp_montant_forfaitaire_charges_9, + temp_montant_forfaitaire_charges_6, + temp_montant_forfaitaire_charges_4, + temp_montant_forfaitaire_charges_2], + temp_montant_forfaitaire_charges_1, + temp_montant_forfaitaire_charges) + except EmptyError: + def temp_montant_forfaitaire_charges_14(_:Unit): + raise EmptyError + def temp_montant_forfaitaire_charges_15(_:Unit): + return False + def temp_montant_forfaitaire_charges_16(_:Unit): + if ((date_courante_12 >= date_of_numbers(2020,10,1)) and + (date_courante_12 < + date_of_numbers(2021,10,1))): + if (nombre_personnes_a_charge_6 == + integer_of_string("0")): + return money_of_cents_string("5399") + else: + return (money_of_cents_string("5399") + + (money_of_cents_string("1224") * + decimal_of_integer(nombre_personnes_a_charge_6))) + else: + raise EmptyError + def temp_montant_forfaitaire_charges_17(_:Unit): + if ((date_courante_12 >= date_of_numbers(2021,10,1)) and + (date_courante_12 < + date_of_numbers(2022,7,1))): + if (nombre_personnes_a_charge_6 == + integer_of_string("0")): + return money_of_cents_string("5422") + else: + return (money_of_cents_string("5422") + + (money_of_cents_string("1229") * + multiplicateur_majoration_charges)) + else: + raise EmptyError + def temp_montant_forfaitaire_charges_18(_:Unit): + if (date_courante_12 >= + date_of_numbers(2022,7,1)): + if (nombre_personnes_a_charge_6 == + integer_of_string("0")): + return money_of_cents_string("5612") + else: + return (money_of_cents_string("5612") + + (money_of_cents_string("1272") * + multiplicateur_majoration_charges)) + else: + raise EmptyError + temp_montant_forfaitaire_charges_13 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=1044, + start_column=12, + end_line=1044, end_column=39, + law_headings=["Secteur logement-foyer", + "Calcul du montant de l'allocation logement", + "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_18, + temp_montant_forfaitaire_charges_17, + temp_montant_forfaitaire_charges_16], + temp_montant_forfaitaire_charges_15, + temp_montant_forfaitaire_charges_14) + except EmptyError: + temp_montant_forfaitaire_charges_13 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=1044, + start_column=12, end_line=1044, + end_column=39, + law_headings=["Secteur logement-foyer", + "Calcul du montant de l'allocation logement", + "Prologue : aides au logement"])) + montant_forfaitaire_charges = temp_montant_forfaitaire_charges_13 + try: + def temp_traitement_aide_finale_minoration_forfaitaire_3(aide_finale_16:Money): + try: + if ((aide_finale_16 - montant_forfaitaire_d842_15) < + money_of_cents_string("0")): + return money_of_cents_string("0") + else: + return (aide_finale_16 - montant_forfaitaire_d842_15) + except EmptyError: + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=1058, + start_column=10, + end_line=1058, + end_column=32, + law_headings=["Secteur logement-foyer", + "Calcul du montant de l'allocation logement", + "Prologue : aides au logement"])) + except EmptyError: + temp_traitement_aide_finale_minoration_forfaitaire_3 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=1058, + start_column=10, end_line=1058, + end_column=32, + law_headings=["Secteur logement-foyer", + "Calcul du montant de l'allocation logement", + "Prologue : aides au logement"])) + traitement_aide_finale_minoration_forfaitaire_3 = temp_traitement_aide_finale_minoration_forfaitaire_3 + try: + temp_loyer_minimal = calcul_equivalence_loyer_minimale_dot_montant_2 + except EmptyError: + temp_loyer_minimal = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=1045, + start_column=12, end_line=1045, + end_column=25, + law_headings=["Secteur logement-foyer", + "Calcul du montant de l'allocation logement", + "Prologue : aides au logement"])) + loyer_minimal = temp_loyer_minimal try: def temp_depense_nette_minimale(allocation_mensuelle_4:Money): try: @@ -14105,9 +16295,9 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA allocation_mensuelle_4) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1024, + start_line=1034, start_column=11, - end_line=1024, + end_line=1034, end_column=33, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -14115,25 +16305,27 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_depense_nette_minimale = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1024, - start_column=11, end_line=1024, + start_line=1034, + start_column=11, end_line=1034, end_column=33, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) depense_nette_minimale = temp_depense_nette_minimale try: - temp_loyer_minimal = calcul_equivalence_loyer_minimale_dot_montant_2 + temp_aide_finale_formule_5 = (((equivalence_loyer + + montant_forfaitaire_charges) - loyer_minimal) * + coefficient_prise_en_charge) except EmptyError: - temp_loyer_minimal = dead_value + temp_aide_finale_formule_5 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1034, - start_column=12, end_line=1034, - end_column=25, + start_line=1055, + start_column=12, end_line=1055, + end_column=31, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) - loyer_minimal = temp_loyer_minimal + aide_finale_formule_4 = temp_aide_finale_formule_5 try: def temp_abattement_depense_nette_minimale(allocation_mensuelle_5:Money): try: @@ -14145,9 +16337,9 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA return money_of_cents_string("0") except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1026, + start_line=1036, start_column=11, - end_line=1026, + end_line=1036, end_column=44, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -14155,27 +16347,13 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_abattement_depense_nette_minimale = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1026, - start_column=11, end_line=1026, + start_line=1036, + start_column=11, end_line=1036, end_column=44, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) abattement_depense_nette_minimale = temp_abattement_depense_nette_minimale - try: - temp_aide_finale_formule_5 = (((equivalence_loyer + - montant_forfaitaire_charges) - loyer_minimal) * - coefficient_prise_en_charge) - except EmptyError: - temp_aide_finale_formule_5 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1044, - start_column=12, end_line=1044, - end_column=31, - law_headings=["Secteur logement-foyer", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) - aide_finale_formule_4 = temp_aide_finale_formule_5 try: def temp_traitement_aide_finale_depense_nette_minimale(aide_finale_17:Money): try: @@ -14192,9 +16370,9 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA aide_finale_17))) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1048, + start_line=1059, start_column=10, - end_line=1048, + end_line=1059, end_column=32, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -14202,8 +16380,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_traitement_aide_finale_depense_nette_minimale = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1048, - start_column=10, end_line=1048, + start_line=1059, + start_column=10, end_line=1059, end_column=32, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -14220,9 +16398,9 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA aide_finale_18) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1049, + start_line=1060, start_column=10, - end_line=1049, + end_line=1060, end_column=19, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -14230,8 +16408,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_traitement_aide_finale_redevance = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1049, - start_column=10, end_line=1049, + start_line=1060, + start_column=10, end_line=1060, end_column=19, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -14258,9 +16436,9 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA return money_of_cents_string("0") except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1050, + start_line=1061, start_column=10, - end_line=1050, + end_line=1061, end_column=40, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -14268,8 +16446,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_traitement_aide_finale_contributions_sociales_arrondi_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1050, - start_column=10, end_line=1050, + start_line=1061, + start_column=10, end_line=1061, end_column=40, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -14287,9 +16465,9 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA aide_finale_20) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1051, + start_line=1062, start_column=10, - end_line=1051, + end_line=1062, end_column=25, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -14297,28 +16475,28 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_traitement_aide_finale_montant_minimal_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1051, - start_column=10, end_line=1051, + start_line=1062, + start_column=10, end_line=1062, end_column=25, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) traitement_aide_finale_montant_minimal_3 = temp_traitement_aide_finale_montant_minimal_3 try: - temp___13 = (date_courante_11 >= date_of_numbers(2021,10,1)) + temp___13 = (date_courante_12 >= date_of_numbers(2021,10,1)) except EmptyError: temp___13 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1075, - start_column=13, end_line=1075, + start_line=1086, + start_column=13, end_line=1086, end_column=42, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) if not (temp___13): raise AssertionFailure(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1075, - start_column=13, end_line=1075, + start_line=1086, + start_column=13, end_line=1086, end_column=42, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -14336,7 +16514,7 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac situation_familiale_calcul_apl_7 = calcul_allocation_logement_accession_propriete_in.situation_familiale_calcul_apl_in zone_5 = calcul_allocation_logement_accession_propriete_in.zone_in residence_7 = calcul_allocation_logement_accession_propriete_in.residence_in - date_courante_12 = calcul_allocation_logement_accession_propriete_in.date_courante_in + date_courante_13 = calcul_allocation_logement_accession_propriete_in.date_courante_in mensualite_principale_1 = calcul_allocation_logement_accession_propriete_in.mensualite_principale_in situation_r822_11_13_17_1 = calcul_allocation_logement_accession_propriete_in.situation_r822_11_13_17_in date_signature_pret_2 = calcul_allocation_logement_accession_propriete_in.date_signature_pret_in @@ -14346,91 +16524,25 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac charges_mensuelles_pret = calcul_allocation_logement_accession_propriete_in.charges_mensuelles_pret_in copropriete_1 = calcul_allocation_logement_accession_propriete_in.copropriete_in operations_logement_evolutifs_sociaux_accession_propriete_aidee__etat = calcul_allocation_logement_accession_propriete_in.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in - try: - temp_montant_forfaitaire_d842_6 = money_of_cents_string("500") - except EmptyError: - temp_montant_forfaitaire_d842_6 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=943, start_column=11, - end_line=943, end_column=37, - law_headings=["Secteur accession à la propriété", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) - montant_forfaitaire_d842_6 = temp_montant_forfaitaire_d842_6 try: temp_taux_francs_vers_euros_1 = (decimal_of_string("1.") / decimal_of_string("6.55957")) except EmptyError: temp_taux_francs_vers_euros_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=946, start_column=11, - end_line=946, end_column=33, + start_line=955, start_column=11, + end_line=955, end_column=33, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) taux_francs_vers_euros_1 = temp_taux_francs_vers_euros_1 - try: - temp_montant_minimal_aide_d842_6 = money_of_cents_string("1000") - except EmptyError: - temp_montant_minimal_aide_d842_6 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=951, start_column=11, - end_line=951, end_column=38, - law_headings=["Secteur accession à la propriété", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) - montant_minimal_aide_d842_6 = temp_montant_minimal_aide_d842_6 - try: - temp_montant_forfaitaire_d842_11 = money_of_cents_string("1500") - except EmptyError: - temp_montant_forfaitaire_d842_11 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=952, start_column=11, - end_line=952, end_column=38, - law_headings=["Secteur accession à la propriété", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) - montant_forfaitaire_d842_11 = temp_montant_forfaitaire_d842_11 - try: - temp_montant_forfaitaire_d842_12 = money_of_cents_string("390000") - except EmptyError: - temp_montant_forfaitaire_d842_12 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=953, start_column=11, - end_line=953, end_column=38, - law_headings=["Secteur accession à la propriété", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) - montant_forfaitaire_d842_12 = temp_montant_forfaitaire_d842_12 - try: - temp_coefficient_d842_11 = decimal_of_string("0.0234") - except EmptyError: - temp_coefficient_d842_11 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=954, start_column=11, - end_line=954, end_column=30, - law_headings=["Secteur accession à la propriété", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) - coefficient_d842_11 = temp_coefficient_d842_11 - try: - temp_coefficient_d842_12 = decimal_of_string("16.25") - except EmptyError: - temp_coefficient_d842_12 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=955, start_column=11, - end_line=955, end_column=30, - law_headings=["Secteur accession à la propriété", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) - coefficient_d842_12 = temp_coefficient_d842_12 try: temp_calcul_nombre_parts_dot_nombre_personnes_a_charge_3 = nombre_personnes_a_charge_7 except EmptyError: temp_calcul_nombre_parts_dot_nombre_personnes_a_charge_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=4445, - start_column=14, end_line=4445, + start_line=4447, + start_column=14, end_line=4447, end_column=59, law_headings=["Article D842-6", "Section 2 : Accession à la propriété", @@ -14445,8 +16557,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_nombre_parts_dot_situation_familiale_calcul_apl_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=4447, - start_column=14, end_line=4447, + start_line=4449, + start_column=14, end_line=4449, end_column=64, law_headings=["Article D842-6", "Section 2 : Accession à la propriété", @@ -14460,12 +16572,13 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac situation_familiale_calcul_apl_in = calcul_nombre_parts_dot_situation_familiale_calcul_apl_3)) calcul_nombre_parts_dot_n_nombre_parts_d832_11_1 = result_14.n_nombre_parts_d832_11 try: - temp_contributions_sociales_dot_date_courante_4 = date_courante_12 + temp_contributions_sociales_dot_date_courante_4 = date_courante_13 except EmptyError: temp_contributions_sociales_dot_date_courante_4 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=999, start_column=14, - end_line=999, end_column=50, + start_line=1009, + start_column=14, end_line=1009, + end_column=50, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -14473,458 +16586,358 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac result_15 = contributions_sociales_aides_personnelle_logement(ContributionsSocialesAidesPersonnelleLogementIn(date_courante_in = contributions_sociales_dot_date_courante_4)) contributions_sociales_dot_montant_4 = result_15.montant try: - def temp_montant_forfaitaire_charges_14(_:Unit): - def temp_montant_forfaitaire_charges_15(_:Unit): - raise EmptyError - def temp_montant_forfaitaire_charges_16(_:Unit): - return False - def temp_montant_forfaitaire_charges_17(_:Unit): - if ((date_courante_12 >= date_of_numbers(2020,10,1)) and - (date_courante_12 < - date_of_numbers(2021,10,1))): - if (nombre_personnes_a_charge_7 == - integer_of_string("0")): - return money_of_cents_string("5399") - else: - return (money_of_cents_string("5399") + - (money_of_cents_string("1224") * - decimal_of_integer(nombre_personnes_a_charge_7))) - else: - raise EmptyError - def temp_montant_forfaitaire_charges_18(_:Unit): - if ((date_courante_12 >= date_of_numbers(2021,10,1)) and - (date_courante_12 < - date_of_numbers(2022,7,1))): - if (nombre_personnes_a_charge_7 == - integer_of_string("0")): - return money_of_cents_string("5422") - else: - return (money_of_cents_string("5422") + - (money_of_cents_string("1229") * - decimal_of_integer(nombre_personnes_a_charge_7))) - else: - raise EmptyError - def temp_montant_forfaitaire_charges_19(_:Unit): - if (date_courante_12 >= - date_of_numbers(2022,7,1)): - if (nombre_personnes_a_charge_7 == - integer_of_string("0")): - return money_of_cents_string("5612") - else: - return (money_of_cents_string("5612") + - (money_of_cents_string("1272") * - decimal_of_integer(nombre_personnes_a_charge_7))) - else: - raise EmptyError - return handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=935, start_column=11, - end_line=935, end_column=38, - law_headings=["Secteur accession à la propriété", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_19, - temp_montant_forfaitaire_charges_18, - temp_montant_forfaitaire_charges_17], - temp_montant_forfaitaire_charges_16, - temp_montant_forfaitaire_charges_15) - def temp_montant_forfaitaire_charges_20(_:Unit): - return True - def temp_montant_forfaitaire_charges_21(_:Unit): + try: try: try: - def temp_montant_forfaitaire_charges_22(_:Unit): - raise EmptyError - def temp_montant_forfaitaire_charges_23(_:Unit): - return False - def temp_montant_forfaitaire_charges_24(_:Unit): - match_arg_423 = residence_7 - if match_arg_423.code == Collectivite_Code.Guadeloupe: - _ = match_arg_423.value - temp_montant_forfaitaire_charges_25 = True - elif match_arg_423.code == Collectivite_Code.Guyane: - _ = match_arg_423.value - temp_montant_forfaitaire_charges_25 = False - elif match_arg_423.code == Collectivite_Code.Martinique: - _ = match_arg_423.value - temp_montant_forfaitaire_charges_25 = True - elif match_arg_423.code == Collectivite_Code.LaReunion: - _ = match_arg_423.value - temp_montant_forfaitaire_charges_25 = True - elif match_arg_423.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_423.value - temp_montant_forfaitaire_charges_25 = True - elif match_arg_423.code == Collectivite_Code.SaintMartin: - _ = match_arg_423.value - temp_montant_forfaitaire_charges_25 = True - elif match_arg_423.code == Collectivite_Code.Metropole: - _ = match_arg_423.value - temp_montant_forfaitaire_charges_25 = False - elif match_arg_423.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_423.value - temp_montant_forfaitaire_charges_25 = False - elif match_arg_423.code == Collectivite_Code.Mayotte: - _ = match_arg_423.value - temp_montant_forfaitaire_charges_25 = True - if (((date_courante_12 >= - date_of_numbers(2022,7,1)) and - (date_courante_12 < - date_of_numbers(2023,1,1))) and - temp_montant_forfaitaire_charges_25): - match_arg_424 = situation_familiale_calcul_apl_7 - if match_arg_424.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_424.value - temp_montant_forfaitaire_charges_26 = money_of_cents_string("1938") - elif match_arg_424.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_424.value - temp_montant_forfaitaire_charges_26 = money_of_cents_string("3767") - match_arg_425 = situation_familiale_calcul_apl_7 - if match_arg_425.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_425.value - temp_montant_forfaitaire_charges_27 = money_of_cents_string("1938") - elif match_arg_425.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_425.value - temp_montant_forfaitaire_charges_27 = money_of_cents_string("3767") - if ((temp_montant_forfaitaire_charges_27 + - (money_of_cents_string("969") * - decimal_of_integer(nombre_personnes_a_charge_7))) > - (temp_montant_forfaitaire_charges_26 + - (money_of_cents_string("969") * - decimal_of_string("6.")))): - match_arg_426 = situation_familiale_calcul_apl_7 - if match_arg_426.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_426.value - temp_montant_forfaitaire_charges_28 = money_of_cents_string("1938") - elif match_arg_426.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_426.value - temp_montant_forfaitaire_charges_28 = money_of_cents_string("3767") - return (temp_montant_forfaitaire_charges_28 + - (money_of_cents_string("969") * - decimal_of_string("6."))) + try: + try: + match_arg_480 = residence_7 + if match_arg_480.code == Collectivite_Code.Guadeloupe: + _ = match_arg_480.value + temp_multiplicateur_majoration_charges_6 = True + elif match_arg_480.code == Collectivite_Code.Guyane: + _ = match_arg_480.value + temp_multiplicateur_majoration_charges_6 = False + elif match_arg_480.code == Collectivite_Code.Martinique: + _ = match_arg_480.value + temp_multiplicateur_majoration_charges_6 = True + elif match_arg_480.code == Collectivite_Code.LaReunion: + _ = match_arg_480.value + temp_multiplicateur_majoration_charges_6 = True + elif match_arg_480.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_480.value + temp_multiplicateur_majoration_charges_6 = True + elif match_arg_480.code == Collectivite_Code.SaintMartin: + _ = match_arg_480.value + temp_multiplicateur_majoration_charges_6 = True + elif match_arg_480.code == Collectivite_Code.Metropole: + _ = match_arg_480.value + temp_multiplicateur_majoration_charges_6 = False + elif match_arg_480.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_480.value + temp_multiplicateur_majoration_charges_6 = False + elif match_arg_480.code == Collectivite_Code.Mayotte: + _ = match_arg_480.value + temp_multiplicateur_majoration_charges_6 = True + if (((date_courante_13 >= + date_of_numbers(2020,1,1)) and + (date_courante_13 < + date_of_numbers(2020,10,1))) and + (temp_multiplicateur_majoration_charges_6 and + (nombre_personnes_a_charge_7 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_charges_7 = decimal_of_string("6.") else: - match_arg_427 = situation_familiale_calcul_apl_7 - if match_arg_427.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_427.value - temp_montant_forfaitaire_charges_29 = money_of_cents_string("1938") - elif match_arg_427.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_427.value - temp_montant_forfaitaire_charges_29 = money_of_cents_string("3767") - return (temp_montant_forfaitaire_charges_29 + - (money_of_cents_string("969") * - decimal_of_integer(nombre_personnes_a_charge_7))) + temp_multiplicateur_majoration_charges_7 = dead_value + raise EmptyError + except EmptyError: + match_arg_481 = residence_7 + if match_arg_481.code == Collectivite_Code.Guadeloupe: + _ = match_arg_481.value + temp_multiplicateur_majoration_charges_8 = True + elif match_arg_481.code == Collectivite_Code.Guyane: + _ = match_arg_481.value + temp_multiplicateur_majoration_charges_8 = False + elif match_arg_481.code == Collectivite_Code.Martinique: + _ = match_arg_481.value + temp_multiplicateur_majoration_charges_8 = True + elif match_arg_481.code == Collectivite_Code.LaReunion: + _ = match_arg_481.value + temp_multiplicateur_majoration_charges_8 = True + elif match_arg_481.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_481.value + temp_multiplicateur_majoration_charges_8 = True + elif match_arg_481.code == Collectivite_Code.SaintMartin: + _ = match_arg_481.value + temp_multiplicateur_majoration_charges_8 = True + elif match_arg_481.code == Collectivite_Code.Metropole: + _ = match_arg_481.value + temp_multiplicateur_majoration_charges_8 = False + elif match_arg_481.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_481.value + temp_multiplicateur_majoration_charges_8 = False + elif match_arg_481.code == Collectivite_Code.Mayotte: + _ = match_arg_481.value + temp_multiplicateur_majoration_charges_8 = True + if (((date_courante_13 >= + date_of_numbers(2020,10,1)) and + (date_courante_13 < + date_of_numbers(2021,10,1))) and + (temp_multiplicateur_majoration_charges_8 and + (nombre_personnes_a_charge_7 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_charges_7 = decimal_of_string("6.") + else: + temp_multiplicateur_majoration_charges_7 = dead_value + raise EmptyError + except EmptyError: + match_arg_482 = residence_7 + if match_arg_482.code == Collectivite_Code.Guadeloupe: + _ = match_arg_482.value + temp_multiplicateur_majoration_charges_9 = True + elif match_arg_482.code == Collectivite_Code.Guyane: + _ = match_arg_482.value + temp_multiplicateur_majoration_charges_9 = False + elif match_arg_482.code == Collectivite_Code.Martinique: + _ = match_arg_482.value + temp_multiplicateur_majoration_charges_9 = True + elif match_arg_482.code == Collectivite_Code.LaReunion: + _ = match_arg_482.value + temp_multiplicateur_majoration_charges_9 = True + elif match_arg_482.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_482.value + temp_multiplicateur_majoration_charges_9 = True + elif match_arg_482.code == Collectivite_Code.SaintMartin: + _ = match_arg_482.value + temp_multiplicateur_majoration_charges_9 = True + elif match_arg_482.code == Collectivite_Code.Metropole: + _ = match_arg_482.value + temp_multiplicateur_majoration_charges_9 = False + elif match_arg_482.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_482.value + temp_multiplicateur_majoration_charges_9 = False + elif match_arg_482.code == Collectivite_Code.Mayotte: + _ = match_arg_482.value + temp_multiplicateur_majoration_charges_9 = True + if (((date_courante_13 >= + date_of_numbers(2021,10,1)) and + (date_courante_13 < + date_of_numbers(2022,1,1))) and + (temp_multiplicateur_majoration_charges_9 and + (nombre_personnes_a_charge_7 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_charges_7 = decimal_of_string("6.") else: + temp_multiplicateur_majoration_charges_7 = dead_value raise EmptyError - def temp_montant_forfaitaire_charges_30(_:Unit): - match_arg_428 = residence_7 - if match_arg_428.code == Collectivite_Code.Guadeloupe: - _ = match_arg_428.value - temp_montant_forfaitaire_charges_31 = True - elif match_arg_428.code == Collectivite_Code.Guyane: - _ = match_arg_428.value - temp_montant_forfaitaire_charges_31 = False - elif match_arg_428.code == Collectivite_Code.Martinique: - _ = match_arg_428.value - temp_montant_forfaitaire_charges_31 = True - elif match_arg_428.code == Collectivite_Code.LaReunion: - _ = match_arg_428.value - temp_montant_forfaitaire_charges_31 = True - elif match_arg_428.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_428.value - temp_montant_forfaitaire_charges_31 = True - elif match_arg_428.code == Collectivite_Code.SaintMartin: - _ = match_arg_428.value - temp_montant_forfaitaire_charges_31 = True - elif match_arg_428.code == Collectivite_Code.Metropole: - _ = match_arg_428.value - temp_montant_forfaitaire_charges_31 = False - elif match_arg_428.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_428.value - temp_montant_forfaitaire_charges_31 = False - elif match_arg_428.code == Collectivite_Code.Mayotte: - _ = match_arg_428.value - temp_montant_forfaitaire_charges_31 = True - if ((date_courante_12 >= - date_of_numbers(2023,1,1)) and - temp_montant_forfaitaire_charges_31): - match_arg_429 = situation_familiale_calcul_apl_7 - if match_arg_429.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_429.value - temp_montant_forfaitaire_charges_32 = money_of_cents_string("1938") - elif match_arg_429.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_429.value - temp_montant_forfaitaire_charges_32 = money_of_cents_string("3767") - return (temp_montant_forfaitaire_charges_32 + - (money_of_cents_string("969") * - decimal_of_integer(nombre_personnes_a_charge_7))) - else: - raise EmptyError - return handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=935, start_column=11, - end_line=935, end_column=38, - law_headings=["Secteur accession à la propriété", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_30, - temp_montant_forfaitaire_charges_24], - temp_montant_forfaitaire_charges_23, - temp_montant_forfaitaire_charges_22) except EmptyError: - def temp_montant_forfaitaire_charges_33(_:Unit): + match_arg_483 = residence_7 + if match_arg_483.code == Collectivite_Code.Guadeloupe: + _ = match_arg_483.value + temp_multiplicateur_majoration_charges_10 = True + elif match_arg_483.code == Collectivite_Code.Guyane: + _ = match_arg_483.value + temp_multiplicateur_majoration_charges_10 = False + elif match_arg_483.code == Collectivite_Code.Martinique: + _ = match_arg_483.value + temp_multiplicateur_majoration_charges_10 = True + elif match_arg_483.code == Collectivite_Code.LaReunion: + _ = match_arg_483.value + temp_multiplicateur_majoration_charges_10 = True + elif match_arg_483.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_483.value + temp_multiplicateur_majoration_charges_10 = True + elif match_arg_483.code == Collectivite_Code.SaintMartin: + _ = match_arg_483.value + temp_multiplicateur_majoration_charges_10 = True + elif match_arg_483.code == Collectivite_Code.Metropole: + _ = match_arg_483.value + temp_multiplicateur_majoration_charges_10 = False + elif match_arg_483.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_483.value + temp_multiplicateur_majoration_charges_10 = False + elif match_arg_483.code == Collectivite_Code.Mayotte: + _ = match_arg_483.value + temp_multiplicateur_majoration_charges_10 = True + if (((date_courante_13 >= date_of_numbers(2022,1,1)) and + (date_courante_13 < date_of_numbers(2022,7,1))) and + (temp_multiplicateur_majoration_charges_10 and + (nombre_personnes_a_charge_7 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_charges_7 = decimal_of_string("6.") + else: + temp_multiplicateur_majoration_charges_7 = dead_value raise EmptyError - def temp_montant_forfaitaire_charges_34(_:Unit): - return False - def temp_montant_forfaitaire_charges_35(_:Unit): - match_arg_430 = residence_7 - if match_arg_430.code == Collectivite_Code.Guadeloupe: - _ = match_arg_430.value - temp_montant_forfaitaire_charges_36 = True - elif match_arg_430.code == Collectivite_Code.Guyane: - _ = match_arg_430.value - temp_montant_forfaitaire_charges_36 = False - elif match_arg_430.code == Collectivite_Code.Martinique: - _ = match_arg_430.value - temp_montant_forfaitaire_charges_36 = True - elif match_arg_430.code == Collectivite_Code.LaReunion: - _ = match_arg_430.value - temp_montant_forfaitaire_charges_36 = True - elif match_arg_430.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_430.value - temp_montant_forfaitaire_charges_36 = True - elif match_arg_430.code == Collectivite_Code.SaintMartin: - _ = match_arg_430.value - temp_montant_forfaitaire_charges_36 = True - elif match_arg_430.code == Collectivite_Code.Metropole: - _ = match_arg_430.value - temp_montant_forfaitaire_charges_36 = False - elif match_arg_430.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_430.value - temp_montant_forfaitaire_charges_36 = False - elif match_arg_430.code == Collectivite_Code.Mayotte: - _ = match_arg_430.value - temp_montant_forfaitaire_charges_36 = True - if (((date_courante_12 >= - date_of_numbers(2022,7,1)) and - (date_courante_12 < - date_of_numbers(2023,1,1))) and - temp_montant_forfaitaire_charges_36): - if ((money_of_cents_string("3767") + - (money_of_cents_string("969") * - decimal_of_integer(nombre_personnes_a_charge_7))) > - (money_of_cents_string("3767") + - (money_of_cents_string("969") * - decimal_of_string("6.")))): - return (money_of_cents_string("3767") + - (money_of_cents_string("969") * - decimal_of_string("6."))) - else: - return (money_of_cents_string("3767") + - (money_of_cents_string("969") * - decimal_of_integer(nombre_personnes_a_charge_7))) - else: - raise EmptyError - def temp_montant_forfaitaire_charges_37(_:Unit): - match_arg_431 = residence_7 - if match_arg_431.code == Collectivite_Code.Guadeloupe: - _ = match_arg_431.value - temp_montant_forfaitaire_charges_38 = True - elif match_arg_431.code == Collectivite_Code.Guyane: - _ = match_arg_431.value - temp_montant_forfaitaire_charges_38 = False - elif match_arg_431.code == Collectivite_Code.Martinique: - _ = match_arg_431.value - temp_montant_forfaitaire_charges_38 = True - elif match_arg_431.code == Collectivite_Code.LaReunion: - _ = match_arg_431.value - temp_montant_forfaitaire_charges_38 = True - elif match_arg_431.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_431.value - temp_montant_forfaitaire_charges_38 = True - elif match_arg_431.code == Collectivite_Code.SaintMartin: - _ = match_arg_431.value - temp_montant_forfaitaire_charges_38 = True - elif match_arg_431.code == Collectivite_Code.Metropole: - _ = match_arg_431.value - temp_montant_forfaitaire_charges_38 = False - elif match_arg_431.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_431.value - temp_montant_forfaitaire_charges_38 = False - elif match_arg_431.code == Collectivite_Code.Mayotte: - _ = match_arg_431.value - temp_montant_forfaitaire_charges_38 = True - if ((date_courante_12 >= - date_of_numbers(2023,1,1)) and - temp_montant_forfaitaire_charges_38): - return (money_of_cents_string("3767") + - (money_of_cents_string("969") * - decimal_of_integer(nombre_personnes_a_charge_7))) - else: - raise EmptyError - return handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=935, start_column=11, - end_line=935, end_column=38, - law_headings=["Secteur accession à la propriété", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_37, - temp_montant_forfaitaire_charges_35], - temp_montant_forfaitaire_charges_34, - temp_montant_forfaitaire_charges_33) except EmptyError: - def temp_montant_forfaitaire_charges_39(_:Unit): - raise EmptyError - def temp_montant_forfaitaire_charges_40(_:Unit): - return False - def temp_montant_forfaitaire_charges_41(_:Unit): - if (((date_courante_12 >= date_of_numbers(2020,10,1)) and - (date_courante_12 < date_of_numbers(2021,10,1))) and - copropriete_1): - match_arg_432 = situation_familiale_calcul_apl_7 - if match_arg_432.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_432.value - temp_montant_forfaitaire_charges_42 = money_of_cents_string("2699") - elif match_arg_432.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_432.value - temp_montant_forfaitaire_charges_42 = money_of_cents_string("5399") - return (temp_montant_forfaitaire_charges_42 + - (money_of_cents_string("1224") * - decimal_of_integer(nombre_personnes_a_charge_7))) - else: - raise EmptyError - def temp_montant_forfaitaire_charges_43(_:Unit): - if (((date_courante_12 >= date_of_numbers(2021,10,1)) and - (date_courante_12 < date_of_numbers(2022,7,1))) and - copropriete_1): - match_arg_433 = situation_familiale_calcul_apl_7 - if match_arg_433.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_433.value - temp_montant_forfaitaire_charges_44 = money_of_cents_string("2710") - elif match_arg_433.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_433.value - temp_montant_forfaitaire_charges_44 = money_of_cents_string("5422") - return (temp_montant_forfaitaire_charges_44 + - (money_of_cents_string("1229") * - decimal_of_integer(nombre_personnes_a_charge_7))) - else: - raise EmptyError - def temp_montant_forfaitaire_charges_45(_:Unit): - if ((date_courante_12 >= date_of_numbers(2022,7,1)) and - copropriete_1): - match_arg_434 = situation_familiale_calcul_apl_7 - if match_arg_434.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_434.value - temp_montant_forfaitaire_charges_46 = money_of_cents_string("2805") - elif match_arg_434.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_434.value - temp_montant_forfaitaire_charges_46 = money_of_cents_string("5612") - return (temp_montant_forfaitaire_charges_46 + - (money_of_cents_string("1272") * - decimal_of_integer(nombre_personnes_a_charge_7))) - else: - raise EmptyError - return handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=935, start_column=11, - end_line=935, end_column=38, - law_headings=["Secteur accession à la propriété", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_45, - temp_montant_forfaitaire_charges_43, - temp_montant_forfaitaire_charges_41], - temp_montant_forfaitaire_charges_40, - temp_montant_forfaitaire_charges_39) - def temp_montant_forfaitaire_charges_47(_:Unit): - match_arg_435 = residence_7 - if match_arg_435.code == Collectivite_Code.Guadeloupe: - _ = match_arg_435.value - temp_montant_forfaitaire_charges_48 = True - elif match_arg_435.code == Collectivite_Code.Guyane: - _ = match_arg_435.value - temp_montant_forfaitaire_charges_48 = False - elif match_arg_435.code == Collectivite_Code.Martinique: - _ = match_arg_435.value - temp_montant_forfaitaire_charges_48 = True - elif match_arg_435.code == Collectivite_Code.LaReunion: - _ = match_arg_435.value - temp_montant_forfaitaire_charges_48 = True - elif match_arg_435.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_435.value - temp_montant_forfaitaire_charges_48 = True - elif match_arg_435.code == Collectivite_Code.SaintMartin: - _ = match_arg_435.value - temp_montant_forfaitaire_charges_48 = True - elif match_arg_435.code == Collectivite_Code.Metropole: - _ = match_arg_435.value - temp_montant_forfaitaire_charges_48 = False - elif match_arg_435.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_435.value - temp_montant_forfaitaire_charges_48 = False - elif match_arg_435.code == Collectivite_Code.Mayotte: - _ = match_arg_435.value - temp_montant_forfaitaire_charges_48 = True - if (((date_courante_12 >= date_of_numbers(2022,7,1)) and - (date_courante_12 < date_of_numbers(2023,1,1))) and - (temp_montant_forfaitaire_charges_48 and - not copropriete_1)): - if ((money_of_cents_string("5612") + - (money_of_cents_string("1272") * - decimal_of_integer(nombre_personnes_a_charge_7))) > - (money_of_cents_string("5612") + - (money_of_cents_string("1272") * - decimal_of_string("6.")))): - return (money_of_cents_string("5612") + - (money_of_cents_string("1272") * - decimal_of_string("6."))) + match_arg_484 = residence_7 + if match_arg_484.code == Collectivite_Code.Guadeloupe: + _ = match_arg_484.value + temp_multiplicateur_majoration_charges_11 = True + elif match_arg_484.code == Collectivite_Code.Guyane: + _ = match_arg_484.value + temp_multiplicateur_majoration_charges_11 = False + elif match_arg_484.code == Collectivite_Code.Martinique: + _ = match_arg_484.value + temp_multiplicateur_majoration_charges_11 = True + elif match_arg_484.code == Collectivite_Code.LaReunion: + _ = match_arg_484.value + temp_multiplicateur_majoration_charges_11 = True + elif match_arg_484.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_484.value + temp_multiplicateur_majoration_charges_11 = True + elif match_arg_484.code == Collectivite_Code.SaintMartin: + _ = match_arg_484.value + temp_multiplicateur_majoration_charges_11 = True + elif match_arg_484.code == Collectivite_Code.Metropole: + _ = match_arg_484.value + temp_multiplicateur_majoration_charges_11 = False + elif match_arg_484.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_484.value + temp_multiplicateur_majoration_charges_11 = False + elif match_arg_484.code == Collectivite_Code.Mayotte: + _ = match_arg_484.value + temp_multiplicateur_majoration_charges_11 = True + if (((date_courante_13 >= date_of_numbers(2022,7,1)) and + (date_courante_13 < date_of_numbers(2023,1,1))) and + (temp_multiplicateur_majoration_charges_11 and + (nombre_personnes_a_charge_7 >= + integer_of_string("6")))): + temp_multiplicateur_majoration_charges_7 = decimal_of_string("6.") else: - return (money_of_cents_string("5612") + - (money_of_cents_string("1272") * - decimal_of_integer(nombre_personnes_a_charge_7))) - else: - raise EmptyError - temp_montant_forfaitaire_charges_49 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=935, - start_column=11, - end_line=935, end_column=38, - law_headings=["Secteur accession à la propriété", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_47, - temp_montant_forfaitaire_charges_21], - temp_montant_forfaitaire_charges_20, - temp_montant_forfaitaire_charges_14) + temp_multiplicateur_majoration_charges_7 = dead_value + raise EmptyError + except EmptyError: + try: + if ((date_courante_13 >= date_of_numbers(2021,10,1)) and + (date_courante_13 < + date_of_numbers(2022,7,1))): + temp_multiplicateur_majoration_charges_7 = decimal_of_integer(nombre_personnes_a_charge_7) + else: + temp_multiplicateur_majoration_charges_7 = dead_value + raise EmptyError + except EmptyError: + if (date_courante_13 >= + date_of_numbers(2022,7,1)): + temp_multiplicateur_majoration_charges_7 = decimal_of_integer(nombre_personnes_a_charge_7) + else: + temp_multiplicateur_majoration_charges_7 = dead_value + raise EmptyError except EmptyError: - temp_montant_forfaitaire_charges_49 = dead_value + temp_multiplicateur_majoration_charges_7 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=935, start_column=11, - end_line=935, end_column=38, + start_line=966, start_column=11, + end_line=966, end_column=44, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) - montant_forfaitaire_charges_1 = temp_montant_forfaitaire_charges_49 + multiplicateur_majoration_charges_1 = temp_multiplicateur_majoration_charges_7 + try: + if (date_courante_13 >= + date_of_numbers(2019,10,1)): + temp_coefficient_d842_12 = decimal_of_string("16.25") + else: + temp_coefficient_d842_12 = dead_value + raise EmptyError + except EmptyError: + temp_coefficient_d842_12 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=964, start_column=11, + end_line=964, end_column=30, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'allocation logement", + "Prologue : aides au logement"])) + coefficient_d842_12 = temp_coefficient_d842_12 + try: + if (date_courante_13 >= + date_of_numbers(2019,10,1)): + temp_coefficient_d842_11 = decimal_of_string("0.0234") + else: + temp_coefficient_d842_11 = dead_value + raise EmptyError + except EmptyError: + temp_coefficient_d842_11 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=963, start_column=11, + end_line=963, end_column=30, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'allocation logement", + "Prologue : aides au logement"])) + coefficient_d842_11 = temp_coefficient_d842_11 + try: + if (date_courante_13 >= + date_of_numbers(2019,10,1)): + temp_montant_forfaitaire_d842_12 = money_of_cents_string("390000") + else: + temp_montant_forfaitaire_d842_12 = dead_value + raise EmptyError + except EmptyError: + temp_montant_forfaitaire_d842_12 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=962, start_column=11, + end_line=962, end_column=38, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'allocation logement", + "Prologue : aides au logement"])) + montant_forfaitaire_d842_12 = temp_montant_forfaitaire_d842_12 + try: + if (date_courante_13 >= + date_of_numbers(2019,10,1)): + temp_montant_forfaitaire_d842_11 = money_of_cents_string("1500") + else: + temp_montant_forfaitaire_d842_11 = dead_value + raise EmptyError + except EmptyError: + temp_montant_forfaitaire_d842_11 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=961, start_column=11, + end_line=961, end_column=38, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'allocation logement", + "Prologue : aides au logement"])) + montant_forfaitaire_d842_11 = temp_montant_forfaitaire_d842_11 + try: + if (date_courante_13 >= + date_of_numbers(2019,10,1)): + temp_montant_minimal_aide_d842_6 = money_of_cents_string("1000") + else: + temp_montant_minimal_aide_d842_6 = dead_value + raise EmptyError + except EmptyError: + temp_montant_minimal_aide_d842_6 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=960, start_column=11, + end_line=960, end_column=38, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'allocation logement", + "Prologue : aides au logement"])) + montant_minimal_aide_d842_6 = temp_montant_minimal_aide_d842_6 + try: + if (date_courante_13 >= + date_of_numbers(2019,10,1)): + temp_montant_forfaitaire_d842_6 = money_of_cents_string("500") + else: + temp_montant_forfaitaire_d842_6 = dead_value + raise EmptyError + except EmptyError: + temp_montant_forfaitaire_d842_6 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=952, start_column=11, + end_line=952, end_column=37, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'allocation logement", + "Prologue : aides au logement"])) + montant_forfaitaire_d842_6 = temp_montant_forfaitaire_d842_6 try: try: try: try: - match_arg_436 = residence_7 - if match_arg_436.code == Collectivite_Code.Guadeloupe: - _ = match_arg_436.value + match_arg_485 = residence_7 + if match_arg_485.code == Collectivite_Code.Guadeloupe: + _ = match_arg_485.value temp_condition_d842_11_3 = False - elif match_arg_436.code == Collectivite_Code.Guyane: - _ = match_arg_436.value + elif match_arg_485.code == Collectivite_Code.Guyane: + _ = match_arg_485.value temp_condition_d842_11_3 = False - elif match_arg_436.code == Collectivite_Code.Martinique: - _ = match_arg_436.value + elif match_arg_485.code == Collectivite_Code.Martinique: + _ = match_arg_485.value temp_condition_d842_11_3 = False - elif match_arg_436.code == Collectivite_Code.LaReunion: - _ = match_arg_436.value + elif match_arg_485.code == Collectivite_Code.LaReunion: + _ = match_arg_485.value temp_condition_d842_11_3 = False - elif match_arg_436.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_436.value + elif match_arg_485.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_485.value temp_condition_d842_11_3 = True - elif match_arg_436.code == Collectivite_Code.SaintMartin: - _ = match_arg_436.value + elif match_arg_485.code == Collectivite_Code.SaintMartin: + _ = match_arg_485.value temp_condition_d842_11_3 = True - elif match_arg_436.code == Collectivite_Code.Metropole: - _ = match_arg_436.value + elif match_arg_485.code == Collectivite_Code.Metropole: + _ = match_arg_485.value temp_condition_d842_11_3 = False - elif match_arg_436.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_436.value + elif match_arg_485.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_485.value temp_condition_d842_11_3 = False - elif match_arg_436.code == Collectivite_Code.Mayotte: - _ = match_arg_436.value + elif match_arg_485.code == Collectivite_Code.Mayotte: + _ = match_arg_485.value temp_condition_d842_11_3 = False if (temp_condition_d842_11_3 and operations_logement_evolutifs_sociaux_accession_propriete_aidee__etat): @@ -14933,33 +16946,33 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac temp_condition_d842_11_3_1 = dead_value raise EmptyError except EmptyError: - match_arg_437 = residence_7 - if match_arg_437.code == Collectivite_Code.Guadeloupe: - _ = match_arg_437.value + match_arg_486 = residence_7 + if match_arg_486.code == Collectivite_Code.Guadeloupe: + _ = match_arg_486.value temp_condition_d842_11_3_2 = True - elif match_arg_437.code == Collectivite_Code.Guyane: - _ = match_arg_437.value + elif match_arg_486.code == Collectivite_Code.Guyane: + _ = match_arg_486.value temp_condition_d842_11_3_2 = True - elif match_arg_437.code == Collectivite_Code.Martinique: - _ = match_arg_437.value + elif match_arg_486.code == Collectivite_Code.Martinique: + _ = match_arg_486.value temp_condition_d842_11_3_2 = True - elif match_arg_437.code == Collectivite_Code.LaReunion: - _ = match_arg_437.value + elif match_arg_486.code == Collectivite_Code.LaReunion: + _ = match_arg_486.value temp_condition_d842_11_3_2 = True - elif match_arg_437.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_437.value + elif match_arg_486.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_486.value temp_condition_d842_11_3_2 = False - elif match_arg_437.code == Collectivite_Code.SaintMartin: - _ = match_arg_437.value + elif match_arg_486.code == Collectivite_Code.SaintMartin: + _ = match_arg_486.value temp_condition_d842_11_3_2 = False - elif match_arg_437.code == Collectivite_Code.Metropole: - _ = match_arg_437.value + elif match_arg_486.code == Collectivite_Code.Metropole: + _ = match_arg_486.value temp_condition_d842_11_3_2 = False - elif match_arg_437.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_437.value + elif match_arg_486.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_486.value temp_condition_d842_11_3_2 = False - elif match_arg_437.code == Collectivite_Code.Mayotte: - _ = match_arg_437.value + elif match_arg_486.code == Collectivite_Code.Mayotte: + _ = match_arg_486.value temp_condition_d842_11_3_2 = True if (temp_condition_d842_11_3_2 and operations_logement_evolutifs_sociaux_accession_propriete_aidee__etat): @@ -14968,44 +16981,44 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac temp_condition_d842_11_3_1 = dead_value raise EmptyError except EmptyError: - match_arg_438 = type_travaux_logement_1 - if match_arg_438.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: - _ = match_arg_438.value + match_arg_487 = type_travaux_logement_1 + if match_arg_487.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: + _ = match_arg_487.value temp_condition_d842_11_3_3 = False - elif match_arg_438.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: - _ = match_arg_438.value + elif match_arg_487.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: + _ = match_arg_487.value temp_condition_d842_11_3_3 = False - elif match_arg_438.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: - _ = match_arg_438.value + elif match_arg_487.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: + _ = match_arg_487.value temp_condition_d842_11_3_3 = True - elif match_arg_438.code == TypeTravauxLogementR8425_Code.PasDeTravaux: - _ = match_arg_438.value + elif match_arg_487.code == TypeTravauxLogementR8425_Code.PasDeTravaux: + _ = match_arg_487.value temp_condition_d842_11_3_3 = False - match_arg_439 = type_travaux_logement_1 - if match_arg_439.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: - _ = match_arg_439.value + match_arg_488 = type_travaux_logement_1 + if match_arg_488.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: + _ = match_arg_488.value temp_condition_d842_11_3_4 = True - elif match_arg_439.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: - _ = match_arg_439.value + elif match_arg_488.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: + _ = match_arg_488.value temp_condition_d842_11_3_4 = False - elif match_arg_439.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: - _ = match_arg_439.value + elif match_arg_488.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: + _ = match_arg_488.value temp_condition_d842_11_3_4 = False - elif match_arg_439.code == TypeTravauxLogementR8425_Code.PasDeTravaux: - _ = match_arg_439.value + elif match_arg_488.code == TypeTravauxLogementR8425_Code.PasDeTravaux: + _ = match_arg_488.value temp_condition_d842_11_3_4 = False - match_arg_440 = type_travaux_logement_1 - if match_arg_440.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: - _ = match_arg_440.value + match_arg_489 = type_travaux_logement_1 + if match_arg_489.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: + _ = match_arg_489.value temp_condition_d842_11_3_5 = False - elif match_arg_440.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: - _ = match_arg_440.value + elif match_arg_489.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: + _ = match_arg_489.value temp_condition_d842_11_3_5 = False - elif match_arg_440.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: - _ = match_arg_440.value + elif match_arg_489.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: + _ = match_arg_489.value temp_condition_d842_11_3_5 = False - elif match_arg_440.code == TypeTravauxLogementR8425_Code.PasDeTravaux: - _ = match_arg_440.value + elif match_arg_489.code == TypeTravauxLogementR8425_Code.PasDeTravaux: + _ = match_arg_489.value temp_condition_d842_11_3_5 = True if ((temp_condition_d842_11_3_5 or (temp_condition_d842_11_3_4 or @@ -15021,2613 +17034,2587 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_condition_d842_11_3_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=956, start_column=11, - end_line=956, end_column=30, + start_line=965, start_column=11, + end_line=965, end_column=30, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) condition_d842_11_3 = temp_condition_d842_11_3_1 try: - def temp_traitement_aide_finale_minoration_forfaitaire_4(aide_finale_21:Money): - try: - if ((aide_finale_21 - montant_forfaitaire_d842_6) < - money_of_cents_string("0")): - return money_of_cents_string("0") - else: - return (aide_finale_21 - montant_forfaitaire_d842_6) - except EmptyError: - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=970, - start_column=10, - end_line=970, - end_column=32, - law_headings=["Secteur accession à la propriété", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) - except EmptyError: - temp_traitement_aide_finale_minoration_forfaitaire_4 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=970, start_column=10, - end_line=970, end_column=32, - law_headings=["Secteur accession à la propriété", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) - traitement_aide_finale_minoration_forfaitaire_4 = temp_traitement_aide_finale_minoration_forfaitaire_4 - try: - def temp_calcul_plafond_mensualite_d842_6_base(date_calcul:Date): + def temp_calcul_plafond_mensualite_d842_6_base(date_calcul:Date, nombre_personnes_a_charge_8:Integer): try: def temp_calcul_plafond_mensualite_d842_6_base_1(_:Unit): raise EmptyError def temp_calcul_plafond_mensualite_d842_6_base_2(_:Unit): return False def temp_calcul_plafond_mensualite_d842_6_base_3(_:Unit): - if ((date_courante_12 >= date_of_numbers(2020,1,1)) and + if ((date_courante_13 >= date_of_numbers(2020,1,1)) and (date_calcul >= date_of_numbers(2019,10,1))): - match_arg_441 = zone_5 - if match_arg_441.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_441.value - if (nombre_personnes_a_charge_7 == + match_arg_490 = zone_5 + if match_arg_490.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_490.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_442 = situation_familiale_calcul_apl_7 - if match_arg_442.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_442.value + match_arg_491 = situation_familiale_calcul_apl_7 + if match_arg_491.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_491.value return money_of_cents_string("31476") - elif match_arg_442.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_442.value + elif match_arg_491.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_491.value return money_of_cents_string("37933") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("40787") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("41927") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("43106") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("44262") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("45200") else: return (money_of_cents_string("45200") + (money_of_cents_string("3936") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_441.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_441.value - if (nombre_personnes_a_charge_7 == + elif match_arg_490.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_490.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_443 = situation_familiale_calcul_apl_7 - if match_arg_443.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_443.value + match_arg_492 = situation_familiale_calcul_apl_7 + if match_arg_492.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_492.value return money_of_cents_string("27614") - elif match_arg_443.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_443.value + elif match_arg_492.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_492.value return money_of_cents_string("33853") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("36646") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("37915") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("39222") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("40510") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("43378") else: return (money_of_cents_string("43378") + (money_of_cents_string("3771") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_441.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_441.value - if (nombre_personnes_a_charge_7 == + elif match_arg_490.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_490.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_444 = situation_familiale_calcul_apl_7 - if match_arg_444.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_444.value + match_arg_493 = situation_familiale_calcul_apl_7 + if match_arg_493.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_493.value return money_of_cents_string("25904") - elif match_arg_444.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_444.value + elif match_arg_493.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_493.value return money_of_cents_string("31419") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("34255") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("35670") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("37107") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("38521") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("41392") else: return (money_of_cents_string("41392") + (money_of_cents_string("3588") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) else: raise EmptyError def temp_calcul_plafond_mensualite_d842_6_base_4(_:Unit): - if ((date_courante_12 >= date_of_numbers(2020,1,1)) and + if ((date_courante_13 >= date_of_numbers(2020,1,1)) and ((date_calcul >= date_of_numbers(2017,10,1)) and (date_calcul < date_of_numbers(2019,10,1)))): - match_arg_445 = zone_5 - if match_arg_445.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_445.value - if (nombre_personnes_a_charge_7 == + match_arg_494 = zone_5 + if match_arg_494.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_494.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_446 = situation_familiale_calcul_apl_7 - if match_arg_446.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_446.value + match_arg_495 = situation_familiale_calcul_apl_7 + if match_arg_495.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_495.value return money_of_cents_string("31382") - elif match_arg_446.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_446.value + elif match_arg_495.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_495.value return money_of_cents_string("37820") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("40665") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("41801") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("42977") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("44130") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("45064") else: return (money_of_cents_string("45064") + (money_of_cents_string("3924") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_445.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_445.value - if (nombre_personnes_a_charge_7 == + elif match_arg_494.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_494.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_447 = situation_familiale_calcul_apl_7 - if match_arg_447.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_447.value + match_arg_496 = situation_familiale_calcul_apl_7 + if match_arg_496.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_496.value return money_of_cents_string("27531") - elif match_arg_447.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_447.value + elif match_arg_496.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_496.value return money_of_cents_string("33751") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("36536") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("37801") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("39105") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("40389") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("43248") else: return (money_of_cents_string("43248") + (money_of_cents_string("3760") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_445.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_445.value - if (nombre_personnes_a_charge_7 == + elif match_arg_494.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_494.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_448 = situation_familiale_calcul_apl_7 - if match_arg_448.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_448.value + match_arg_497 = situation_familiale_calcul_apl_7 + if match_arg_497.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_497.value return money_of_cents_string("25826") - elif match_arg_448.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_448.value + elif match_arg_497.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_497.value return money_of_cents_string("31325") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("34152") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("35564") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("36996") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("38406") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("41268") else: return (money_of_cents_string("41268") + (money_of_cents_string("3578") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) else: raise EmptyError def temp_calcul_plafond_mensualite_d842_6_base_5(_:Unit): - if ((date_courante_12 >= date_of_numbers(2020,1,1)) and + if ((date_courante_13 >= date_of_numbers(2020,1,1)) and ((date_calcul >= date_of_numbers(2015,10,1)) and (date_calcul < date_of_numbers(2017,10,1)))): - match_arg_449 = zone_5 - if match_arg_449.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_449.value - if (nombre_personnes_a_charge_7 == + match_arg_498 = zone_5 + if match_arg_498.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_498.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_450 = situation_familiale_calcul_apl_7 - if match_arg_450.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_450.value + match_arg_499 = situation_familiale_calcul_apl_7 + if match_arg_499.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_499.value return money_of_cents_string("31148") - elif match_arg_450.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_450.value + elif match_arg_499.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_499.value return money_of_cents_string("37538") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("40362") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("41490") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("42657") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("43801") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("44729") else: return (money_of_cents_string("44729") + (money_of_cents_string("3895") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_449.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_449.value - if (nombre_personnes_a_charge_7 == + elif match_arg_498.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_498.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_451 = situation_familiale_calcul_apl_7 - if match_arg_451.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_451.value + match_arg_500 = situation_familiale_calcul_apl_7 + if match_arg_500.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_500.value return money_of_cents_string("27326") - elif match_arg_451.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_451.value + elif match_arg_500.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_500.value return money_of_cents_string("33500") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("36264") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("37520") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("38814") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("40088") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("42926") else: return (money_of_cents_string("42926") + (money_of_cents_string("3732") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_449.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_449.value - if (nombre_personnes_a_charge_7 == + elif match_arg_498.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_498.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_452 = situation_familiale_calcul_apl_7 - if match_arg_452.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_452.value + match_arg_501 = situation_familiale_calcul_apl_7 + if match_arg_501.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_501.value return money_of_cents_string("25634") - elif match_arg_452.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_452.value + elif match_arg_501.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_501.value return money_of_cents_string("31092") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("33898") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("35299") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("36721") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("38120") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("40961") else: return (money_of_cents_string("40961") + (money_of_cents_string("3551") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) else: raise EmptyError def temp_calcul_plafond_mensualite_d842_6_base_6(_:Unit): - if ((date_courante_12 >= date_of_numbers(2020,1,1)) and + if ((date_courante_13 >= date_of_numbers(2020,1,1)) and ((date_calcul >= date_of_numbers(2014,10,1)) and (date_calcul < date_of_numbers(2015,10,1)))): - match_arg_453 = zone_5 - if match_arg_453.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_453.value - if (nombre_personnes_a_charge_7 == + match_arg_502 = zone_5 + if match_arg_502.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_502.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_454 = situation_familiale_calcul_apl_7 - if match_arg_454.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_454.value + match_arg_503 = situation_familiale_calcul_apl_7 + if match_arg_503.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_503.value return money_of_cents_string("31123") - elif match_arg_454.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_454.value + elif match_arg_503.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_503.value return money_of_cents_string("37508") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("40330") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("41457") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("42623") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("43766") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("44693") else: return (money_of_cents_string("44693") + (money_of_cents_string("3892") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_453.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_453.value - if (nombre_personnes_a_charge_7 == + elif match_arg_502.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_502.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_455 = situation_familiale_calcul_apl_7 - if match_arg_455.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_455.value + match_arg_504 = situation_familiale_calcul_apl_7 + if match_arg_504.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_504.value return money_of_cents_string("27304") - elif match_arg_455.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_455.value + elif match_arg_504.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_504.value return money_of_cents_string("33473") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("36235") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("37490") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("38783") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("40056") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("42892") else: return (money_of_cents_string("42892") + (money_of_cents_string("3729") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_453.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_453.value - if (nombre_personnes_a_charge_7 == + elif match_arg_502.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_502.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_456 = situation_familiale_calcul_apl_7 - if match_arg_456.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_456.value + match_arg_505 = situation_familiale_calcul_apl_7 + if match_arg_505.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_505.value return money_of_cents_string("25614") - elif match_arg_456.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_456.value + elif match_arg_505.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_505.value return money_of_cents_string("31067") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("33871") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("35271") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("36692") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("38090") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("40928") else: return (money_of_cents_string("40928") + (money_of_cents_string("3548") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) else: raise EmptyError def temp_calcul_plafond_mensualite_d842_6_base_7(_:Unit): - if ((date_courante_12 >= date_of_numbers(2020,1,1)) and + if ((date_courante_13 >= date_of_numbers(2020,1,1)) and ((date_calcul >= date_of_numbers(2013,1,1)) and (date_calcul < date_of_numbers(2014,10,1)))): - match_arg_457 = zone_5 - if match_arg_457.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_457.value - if (nombre_personnes_a_charge_7 == + match_arg_506 = zone_5 + if match_arg_506.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_506.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_458 = situation_familiale_calcul_apl_7 - if match_arg_458.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_458.value + match_arg_507 = situation_familiale_calcul_apl_7 + if match_arg_507.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_507.value return money_of_cents_string("30947") - elif match_arg_458.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_458.value + elif match_arg_507.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_507.value return money_of_cents_string("37295") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("40101") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("41222") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("42381") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("43518") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("44440") else: return (money_of_cents_string("44440") + (money_of_cents_string("3870") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_457.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_457.value - if (nombre_personnes_a_charge_7 == + elif match_arg_506.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_506.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_459 = situation_familiale_calcul_apl_7 - if match_arg_459.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_459.value + match_arg_508 = situation_familiale_calcul_apl_7 + if match_arg_508.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_508.value return money_of_cents_string("27149") - elif match_arg_459.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_459.value + elif match_arg_508.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_508.value return money_of_cents_string("33283") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("36030") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("37278") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("38563") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("39829") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("42649") else: return (money_of_cents_string("42659") + (money_of_cents_string("3708") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_457.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_457.value - if (nombre_personnes_a_charge_7 == + elif match_arg_506.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_506.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_460 = situation_familiale_calcul_apl_7 - if match_arg_460.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_460.value + match_arg_509 = situation_familiale_calcul_apl_7 + if match_arg_509.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_509.value return money_of_cents_string("25469") - elif match_arg_460.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_460.value + elif match_arg_509.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_509.value return money_of_cents_string("30891") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("33679") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("35071") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("36484") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("37874") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("40696") else: return (money_of_cents_string("40696") + (money_of_cents_string("3528") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) else: raise EmptyError def temp_calcul_plafond_mensualite_d842_6_base_8(_:Unit): - if ((date_courante_12 >= date_of_numbers(2020,1,1)) and + if ((date_courante_13 >= date_of_numbers(2020,1,1)) and ((date_calcul >= date_of_numbers(2012,1,1)) and (date_calcul < date_of_numbers(2013,1,1)))): - match_arg_461 = zone_5 - if match_arg_461.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_461.value - if (nombre_personnes_a_charge_7 == + match_arg_510 = zone_5 + if match_arg_510.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_510.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_462 = situation_familiale_calcul_apl_7 - if match_arg_462.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_462.value + match_arg_511 = situation_familiale_calcul_apl_7 + if match_arg_511.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_511.value return money_of_cents_string("30296") - elif match_arg_462.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_462.value + elif match_arg_511.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_511.value return money_of_cents_string("36510") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("39257") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("40354") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("41489") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("42602") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("43505") else: return (money_of_cents_string("43505") + (money_of_cents_string("3789") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_461.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_461.value - if (nombre_personnes_a_charge_7 == + elif match_arg_510.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_510.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_463 = situation_familiale_calcul_apl_7 - if match_arg_463.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_463.value + match_arg_512 = situation_familiale_calcul_apl_7 + if match_arg_512.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_512.value return money_of_cents_string("26578") - elif match_arg_463.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_463.value + elif match_arg_512.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_512.value return money_of_cents_string("32582") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("35272") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("36493") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("37751") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("38991") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("41751") else: return (money_of_cents_string("41751") + (money_of_cents_string("3630") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_461.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_461.value - if (nombre_personnes_a_charge_7 == + elif match_arg_510.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_510.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_464 = situation_familiale_calcul_apl_7 - if match_arg_464.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_464.value + match_arg_513 = situation_familiale_calcul_apl_7 + if match_arg_513.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_513.value return money_of_cents_string("24933") - elif match_arg_464.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_464.value + elif match_arg_513.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_513.value return money_of_cents_string("30241") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("32970") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("34333") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("35716") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("37077") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("39839") else: return (money_of_cents_string("39839") + (money_of_cents_string("3454") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) else: raise EmptyError def temp_calcul_plafond_mensualite_d842_6_base_9(_:Unit): - if ((date_courante_12 >= date_of_numbers(2020,1,1)) and + if ((date_courante_13 >= date_of_numbers(2020,1,1)) and ((date_calcul >= date_of_numbers(2011,1,1)) and (date_calcul < date_of_numbers(2012,1,1)))): - match_arg_465 = zone_5 - if match_arg_465.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_465.value - if (nombre_personnes_a_charge_7 == + match_arg_514 = zone_5 + if match_arg_514.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_514.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_466 = situation_familiale_calcul_apl_7 - if match_arg_466.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_466.value + match_arg_515 = situation_familiale_calcul_apl_7 + if match_arg_515.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_515.value return money_of_cents_string("29996") - elif match_arg_466.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_466.value + elif match_arg_515.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_515.value return money_of_cents_string("36149") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("38868") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("39954") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("41078") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("42180") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("43074") else: return (money_of_cents_string("43074") + (money_of_cents_string("3751") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_465.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_465.value - if (nombre_personnes_a_charge_7 == + elif match_arg_514.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_514.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_467 = situation_familiale_calcul_apl_7 - if match_arg_467.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_467.value + match_arg_516 = situation_familiale_calcul_apl_7 + if match_arg_516.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_516.value return money_of_cents_string("26315") - elif match_arg_467.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_467.value + elif match_arg_516.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_516.value return money_of_cents_string("32259") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("34923") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("36132") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("37373") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("38605") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("41338") else: return (money_of_cents_string("41338") + (money_of_cents_string("3594") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_465.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_465.value - if (nombre_personnes_a_charge_7 == + elif match_arg_514.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_514.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_468 = situation_familiale_calcul_apl_7 - if match_arg_468.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_468.value + match_arg_517 = situation_familiale_calcul_apl_7 + if match_arg_517.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_517.value return money_of_cents_string("24686") - elif match_arg_468.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_468.value + elif match_arg_517.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_517.value return money_of_cents_string("29942") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("32644") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("33993") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("35362") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("36710") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("39445") else: return (money_of_cents_string("39445") + (money_of_cents_string("3420") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) else: raise EmptyError def temp_calcul_plafond_mensualite_d842_6_base_10(_:Unit): - if ((date_courante_12 >= date_of_numbers(2020,1,1)) and + if ((date_courante_13 >= date_of_numbers(2020,1,1)) and ((date_calcul >= date_of_numbers(2010,1,1)) and (date_calcul < date_of_numbers(2011,1,1)))): - match_arg_469 = zone_5 - if match_arg_469.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_469.value - if (nombre_personnes_a_charge_7 == + match_arg_518 = zone_5 + if match_arg_518.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_518.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_470 = situation_familiale_calcul_apl_7 - if match_arg_470.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_470.value + match_arg_519 = situation_familiale_calcul_apl_7 + if match_arg_519.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_519.value return money_of_cents_string("29670") - elif match_arg_470.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_470.value + elif match_arg_519.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_519.value return money_of_cents_string("35757") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("38445") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("39519") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("40601") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("41721") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("42605") else: return (money_of_cents_string("42605") + (money_of_cents_string("3710") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_469.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_469.value - if (nombre_personnes_a_charge_7 == + elif match_arg_518.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_518.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_471 = situation_familiale_calcul_apl_7 - if match_arg_471.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_471.value + match_arg_520 = situation_familiale_calcul_apl_7 + if match_arg_520.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_520.value return money_of_cents_string("26029") - elif match_arg_471.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_471.value + elif match_arg_520.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_520.value return money_of_cents_string("31908") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("34643") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("35739") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("36970") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("38185") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("40888") else: return (money_of_cents_string("40888") + (money_of_cents_string("3555") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_469.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_469.value - if (nombre_personnes_a_charge_7 == + elif match_arg_518.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_518.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_472 = situation_familiale_calcul_apl_7 - if match_arg_472.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_472.value + match_arg_521 = situation_familiale_calcul_apl_7 + if match_arg_521.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_521.value return money_of_cents_string("24417") - elif match_arg_472.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_472.value + elif match_arg_521.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_521.value return money_of_cents_string("29616") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("32289") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("33623") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("34977") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("36311") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("39016") else: return (money_of_cents_string("39016") + (money_of_cents_string("3383") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) else: raise EmptyError def temp_calcul_plafond_mensualite_d842_6_base_11(_:Unit): - if ((date_courante_12 >= date_of_numbers(2020,1,1)) and + if ((date_courante_13 >= date_of_numbers(2020,1,1)) and ((date_calcul >= date_of_numbers(2009,1,1)) and (date_calcul < date_of_numbers(2010,1,1)))): - match_arg_473 = zone_5 - if match_arg_473.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_473.value - if (nombre_personnes_a_charge_7 == + match_arg_522 = zone_5 + if match_arg_522.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_522.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_474 = situation_familiale_calcul_apl_7 - if match_arg_474.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_474.value + match_arg_523 = situation_familiale_calcul_apl_7 + if match_arg_523.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_523.value return money_of_cents_string("29575") - elif match_arg_474.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_474.value + elif match_arg_523.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_523.value return money_of_cents_string("35642") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("38322") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("39393") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("40501") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("41588") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("42469") else: return (money_of_cents_string("42469") + (money_of_cents_string("3698") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_473.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_473.value - if (nombre_personnes_a_charge_7 == + elif match_arg_522.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_522.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_475 = situation_familiale_calcul_apl_7 - if match_arg_475.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_475.value + match_arg_524 = situation_familiale_calcul_apl_7 + if match_arg_524.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_524.value return money_of_cents_string("25946") - elif match_arg_475.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_475.value + elif match_arg_524.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_524.value return money_of_cents_string("31806") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("34433") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("35625") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("36852") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("38063") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("40758") else: return (money_of_cents_string("40758") + (money_of_cents_string("3544") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_473.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_473.value - if (nombre_personnes_a_charge_7 == + elif match_arg_522.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_522.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_476 = situation_familiale_calcul_apl_7 - if match_arg_476.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_476.value + match_arg_525 = situation_familiale_calcul_apl_7 + if match_arg_525.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_525.value return money_of_cents_string("24339") - elif match_arg_476.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_476.value + elif match_arg_525.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_525.value return money_of_cents_string("29522") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("32186") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("33516") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("34865") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("36195") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("38892") else: return (money_of_cents_string("38892") + (money_of_cents_string("3372") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) else: raise EmptyError def temp_calcul_plafond_mensualite_d842_6_base_12(_:Unit): - if ((date_courante_12 >= date_of_numbers(2020,1,1)) and + if ((date_courante_13 >= date_of_numbers(2020,1,1)) and ((date_calcul >= date_of_numbers(2008,1,1)) and (date_calcul < date_of_numbers(2009,1,1)))): - match_arg_477 = zone_5 - if match_arg_477.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_477.value - if (nombre_personnes_a_charge_7 == + match_arg_526 = zone_5 + if match_arg_526.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_526.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_478 = situation_familiale_calcul_apl_7 - if match_arg_478.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_478.value + match_arg_527 = situation_familiale_calcul_apl_7 + if match_arg_527.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_527.value return money_of_cents_string("28728") - elif match_arg_478.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_478.value + elif match_arg_527.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_527.value return money_of_cents_string("34621") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("37224") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("38264") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("39340") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("40396") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("41252") else: return (money_of_cents_string("41252") + (money_of_cents_string("3592") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_477.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_477.value - if (nombre_personnes_a_charge_7 == + elif match_arg_526.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_526.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_479 = situation_familiale_calcul_apl_7 - if match_arg_479.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_479.value + match_arg_528 = situation_familiale_calcul_apl_7 + if match_arg_528.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_528.value return money_of_cents_string("25203") - elif match_arg_479.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_479.value + elif match_arg_528.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_528.value return money_of_cents_string("30895") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("33446") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("34604") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("35796") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("36972") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("39590") else: return (money_of_cents_string("39590") + (money_of_cents_string("3442") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_477.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_477.value - if (nombre_personnes_a_charge_7 == + elif match_arg_526.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_526.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_480 = situation_familiale_calcul_apl_7 - if match_arg_480.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_480.value + match_arg_529 = situation_familiale_calcul_apl_7 + if match_arg_529.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_529.value return money_of_cents_string("23642") - elif match_arg_480.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_480.value + elif match_arg_529.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_529.value return money_of_cents_string("28676") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("31264") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("32556") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("33866") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("35158") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("37778") else: return (money_of_cents_string("37778") + (money_of_cents_string("3275") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) else: raise EmptyError def temp_calcul_plafond_mensualite_d842_6_base_13(_:Unit): - if ((date_courante_12 >= date_of_numbers(2020,1,1)) and + if ((date_courante_13 >= date_of_numbers(2020,1,1)) and ((date_calcul >= date_of_numbers(2007,1,1)) and (date_calcul < date_of_numbers(2008,1,1)))): - match_arg_481 = zone_5 - if match_arg_481.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_481.value - if (nombre_personnes_a_charge_7 == + match_arg_530 = zone_5 + if match_arg_530.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_530.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_482 = situation_familiale_calcul_apl_7 - if match_arg_482.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_482.value + match_arg_531 = situation_familiale_calcul_apl_7 + if match_arg_531.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_531.value return money_of_cents_string("27956") - elif match_arg_482.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_482.value + elif match_arg_531.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_531.value return money_of_cents_string("33691") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("36224") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("37236") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("38283") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("39311") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("40144") else: return (money_of_cents_string("40144") + (money_of_cents_string("3496") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_481.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_481.value - if (nombre_personnes_a_charge_7 == + elif match_arg_530.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_530.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_483 = situation_familiale_calcul_apl_7 - if match_arg_483.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_483.value + match_arg_532 = situation_familiale_calcul_apl_7 + if match_arg_532.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_532.value return money_of_cents_string("24526") - elif match_arg_483.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_483.value + elif match_arg_532.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_532.value return money_of_cents_string("30065") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("32548") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("33675") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("34865") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("35979") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("38527") else: return (money_of_cents_string("38527") + (money_of_cents_string("3350") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_481.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_481.value - if (nombre_personnes_a_charge_7 == + elif match_arg_530.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_530.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_484 = situation_familiale_calcul_apl_7 - if match_arg_484.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_484.value + match_arg_533 = situation_familiale_calcul_apl_7 + if match_arg_533.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_533.value return money_of_cents_string("23007") - elif match_arg_484.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_484.value + elif match_arg_533.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_533.value return money_of_cents_string("27906") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("30424") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("31682") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("32956") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("34214") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("36733") else: return (money_of_cents_string("36733") + (money_of_cents_string("3187") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) else: raise EmptyError def temp_calcul_plafond_mensualite_d842_6_base_14(_:Unit): - if ((date_courante_12 >= date_of_numbers(2020,1,1)) and + if ((date_courante_13 >= date_of_numbers(2020,1,1)) and ((date_calcul >= date_of_numbers(2005,9,1)) and (date_calcul < date_of_numbers(2007,1,1)))): - match_arg_485 = zone_5 - if match_arg_485.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_485.value - if (nombre_personnes_a_charge_7 == + match_arg_534 = zone_5 + if match_arg_534.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_534.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_486 = situation_familiale_calcul_apl_7 - if match_arg_486.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_486.value + match_arg_535 = situation_familiale_calcul_apl_7 + if match_arg_535.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_535.value return money_of_cents_string("27195") - elif match_arg_486.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_486.value + elif match_arg_535.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_535.value return money_of_cents_string("32773") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("35237") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("36222") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("37240") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("38240") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("39051") else: return (money_of_cents_string("39051") + (money_of_cents_string("3401") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_485.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_485.value - if (nombre_personnes_a_charge_7 == + elif match_arg_534.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_534.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_487 = situation_familiale_calcul_apl_7 - if match_arg_487.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_487.value + match_arg_536 = situation_familiale_calcul_apl_7 + if match_arg_536.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_536.value return money_of_cents_string("23858") - elif match_arg_487.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_487.value + elif match_arg_536.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_536.value return money_of_cents_string("29246") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("31661") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("32758") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("33886") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("34999") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("37478") else: return (money_of_cents_string("37478") + (money_of_cents_string("3259") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_485.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_485.value - if (nombre_personnes_a_charge_7 == + elif match_arg_534.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_534.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_488 = situation_familiale_calcul_apl_7 - if match_arg_488.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_488.value + match_arg_537 = situation_familiale_calcul_apl_7 + if match_arg_537.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_537.value return money_of_cents_string("22380") - elif match_arg_488.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_488.value + elif match_arg_537.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_537.value return money_of_cents_string("27146") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("29595") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("30819") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("32058") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("33282") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("35762") else: return (money_of_cents_string("35762") + (money_of_cents_string("3100") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) else: raise EmptyError def temp_calcul_plafond_mensualite_d842_6_base_15(_:Unit): - if ((date_courante_12 >= date_of_numbers(2020,1,1)) and + if ((date_courante_13 >= date_of_numbers(2020,1,1)) and ((date_calcul >= date_of_numbers(2003,7,1)) and (date_calcul < date_of_numbers(2005,9,1)))): - match_arg_489 = zone_5 - if match_arg_489.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_489.value - if (nombre_personnes_a_charge_7 == + match_arg_538 = zone_5 + if match_arg_538.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_538.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_490 = situation_familiale_calcul_apl_7 - if match_arg_490.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_490.value + match_arg_539 = situation_familiale_calcul_apl_7 + if match_arg_539.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_539.value return money_of_cents_string("26714") - elif match_arg_490.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_490.value + elif match_arg_539.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_539.value return money_of_cents_string("32194") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("34614") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("35582") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("36582") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("37564") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("38361") else: return (money_of_cents_string("38361") + (money_of_cents_string("3341") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_489.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_489.value - if (nombre_personnes_a_charge_7 == + elif match_arg_538.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_538.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_491 = situation_familiale_calcul_apl_7 - if match_arg_491.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_491.value + match_arg_540 = situation_familiale_calcul_apl_7 + if match_arg_540.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_540.value return money_of_cents_string("23436") - elif match_arg_491.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_491.value + elif match_arg_540.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_540.value return money_of_cents_string("28729") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("31101") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("32179") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("33287") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("34380") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("36815") else: return (money_of_cents_string("36815") + (money_of_cents_string("3201") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_489.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_489.value - if (nombre_personnes_a_charge_7 == + elif match_arg_538.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_538.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_492 = situation_familiale_calcul_apl_7 - if match_arg_492.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_492.value + match_arg_541 = situation_familiale_calcul_apl_7 + if match_arg_541.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_541.value return money_of_cents_string("21984") - elif match_arg_492.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_492.value + elif match_arg_541.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_541.value return money_of_cents_string("26666") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("29072") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("30274") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("31491") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("32694") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("35130") else: return (money_of_cents_string("35130") + (money_of_cents_string("3045") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) else: raise EmptyError def temp_calcul_plafond_mensualite_d842_6_base_16(_:Unit): - if ((date_courante_12 >= date_of_numbers(2020,1,1)) and + if ((date_courante_13 >= date_of_numbers(2020,1,1)) and ((date_calcul >= date_of_numbers(2002,7,1)) and (date_calcul < date_of_numbers(2003,7,1)))): - match_arg_493 = zone_5 - if match_arg_493.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_493.value - if (nombre_personnes_a_charge_7 == + match_arg_542 = zone_5 + if match_arg_542.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_542.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_494 = situation_familiale_calcul_apl_7 - if match_arg_494.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_494.value + match_arg_543 = situation_familiale_calcul_apl_7 + if match_arg_543.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_543.value return money_of_cents_string("26397") - elif match_arg_494.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_494.value + elif match_arg_543.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_543.value return money_of_cents_string("31812") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("34204") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("35160") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("36148") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("37119") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("37906") else: return (money_of_cents_string("37906") + (money_of_cents_string("3301") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_493.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_493.value - if (nombre_personnes_a_charge_7 == + elif match_arg_542.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_542.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_495 = situation_familiale_calcul_apl_7 - if match_arg_495.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_495.value + match_arg_544 = situation_familiale_calcul_apl_7 + if match_arg_544.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_544.value return money_of_cents_string("23158") - elif match_arg_495.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_495.value + elif match_arg_544.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_544.value return money_of_cents_string("28388") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("30732") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("31797") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("32892") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("33972") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("36378") else: return (money_of_cents_string("36378") + (money_of_cents_string("3163") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_493.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_493.value - if (nombre_personnes_a_charge_7 == + elif match_arg_542.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_542.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_496 = situation_familiale_calcul_apl_7 - if match_arg_496.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_496.value + match_arg_545 = situation_familiale_calcul_apl_7 + if match_arg_545.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_545.value return money_of_cents_string("21723") - elif match_arg_496.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_496.value + elif match_arg_545.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_545.value return money_of_cents_string("26350") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("28727") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("29915") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("31118") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("32306") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("34713") else: return (money_of_cents_string("34713") + (money_of_cents_string("3009") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) else: raise EmptyError def temp_calcul_plafond_mensualite_d842_6_base_17(_:Unit): - if ((date_courante_12 >= date_of_numbers(2020,1,1)) and + if ((date_courante_13 >= date_of_numbers(2020,1,1)) and ((date_calcul >= date_of_numbers(2002,1,1)) and (date_calcul < date_of_numbers(2002,7,1)))): - match_arg_497 = zone_5 - if match_arg_497.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_497.value - if (nombre_personnes_a_charge_7 == + match_arg_546 = zone_5 + if match_arg_546.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_546.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_498 = situation_familiale_calcul_apl_7 - if match_arg_498.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_498.value + match_arg_547 = situation_familiale_calcul_apl_7 + if match_arg_547.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_547.value return money_of_cents_string("26084") - elif match_arg_498.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_498.value + elif match_arg_547.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_547.value return money_of_cents_string("31435") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("33798") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("34743") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("35719") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("36679") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("37457") else: return (money_of_cents_string("37457") + (money_of_cents_string("3262") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_497.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_497.value - if (nombre_personnes_a_charge_7 == + elif match_arg_546.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_546.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_499 = situation_familiale_calcul_apl_7 - if match_arg_499.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_499.value + match_arg_548 = situation_familiale_calcul_apl_7 + if match_arg_548.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_548.value return money_of_cents_string("22883") - elif match_arg_499.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_499.value + elif match_arg_548.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_548.value return money_of_cents_string("28051") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("30368") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("31420") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("32502") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("33569") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("35947") else: return (money_of_cents_string("35947") + (money_of_cents_string("3125") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_497.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_497.value - if (nombre_personnes_a_charge_7 == + elif match_arg_546.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_546.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_500 = situation_familiale_calcul_apl_7 - if match_arg_500.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_500.value + match_arg_549 = situation_familiale_calcul_apl_7 + if match_arg_549.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_549.value return money_of_cents_string("21465") - elif match_arg_500.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_500.value + elif match_arg_549.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_549.value return money_of_cents_string("26038") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): return money_of_cents_string("28386") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): return money_of_cents_string("29560") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): return money_of_cents_string("30749") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): return money_of_cents_string("31923") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): return money_of_cents_string("34301") else: return (money_of_cents_string("34301") + (money_of_cents_string("2973") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) else: raise EmptyError def temp_calcul_plafond_mensualite_d842_6_base_18(_:Unit): - if ((date_courante_12 >= date_of_numbers(2020,1,1)) and + if ((date_courante_13 >= date_of_numbers(2020,1,1)) and ((date_calcul >= date_of_numbers(2001,7,1)) and (date_calcul < date_of_numbers(2002,1,1)))): - match_arg_501 = zone_5 - if match_arg_501.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_501.value - if (nombre_personnes_a_charge_7 == + match_arg_550 = zone_5 + if match_arg_550.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_550.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_502 = situation_familiale_calcul_apl_7 - if match_arg_502.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_502.value + match_arg_551 = situation_familiale_calcul_apl_7 + if match_arg_551.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_551.value temp_calcul_plafond_mensualite_d842_6_base_19 = money_of_cents_string("171100") - elif match_arg_502.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_502.value + elif match_arg_551.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_551.value temp_calcul_plafond_mensualite_d842_6_base_19 = money_of_cents_string("206200") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): temp_calcul_plafond_mensualite_d842_6_base_19 = money_of_cents_string("221700") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): temp_calcul_plafond_mensualite_d842_6_base_19 = money_of_cents_string("227900") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): temp_calcul_plafond_mensualite_d842_6_base_19 = money_of_cents_string("234300") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): temp_calcul_plafond_mensualite_d842_6_base_19 = money_of_cents_string("240600") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): temp_calcul_plafond_mensualite_d842_6_base_19 = money_of_cents_string("245700") else: temp_calcul_plafond_mensualite_d842_6_base_19 = (money_of_cents_string("245700") + (money_of_cents_string("21400") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_501.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_501.value - if (nombre_personnes_a_charge_7 == + elif match_arg_550.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_550.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_503 = situation_familiale_calcul_apl_7 - if match_arg_503.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_503.value + match_arg_552 = situation_familiale_calcul_apl_7 + if match_arg_552.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_552.value temp_calcul_plafond_mensualite_d842_6_base_19 = money_of_cents_string("150100") - elif match_arg_503.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_503.value + elif match_arg_552.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_552.value temp_calcul_plafond_mensualite_d842_6_base_19 = money_of_cents_string("184000") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): temp_calcul_plafond_mensualite_d842_6_base_19 = money_of_cents_string("199200") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): temp_calcul_plafond_mensualite_d842_6_base_19 = money_of_cents_string("206100") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): temp_calcul_plafond_mensualite_d842_6_base_19 = money_of_cents_string("213200") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): temp_calcul_plafond_mensualite_d842_6_base_19 = money_of_cents_string("220200") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): temp_calcul_plafond_mensualite_d842_6_base_19 = money_of_cents_string("235800") else: temp_calcul_plafond_mensualite_d842_6_base_19 = (money_of_cents_string("235800") + (money_of_cents_string("20500") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_501.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_501.value - if (nombre_personnes_a_charge_7 == + elif match_arg_550.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_550.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_504 = situation_familiale_calcul_apl_7 - if match_arg_504.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_504.value + match_arg_553 = situation_familiale_calcul_apl_7 + if match_arg_553.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_553.value temp_calcul_plafond_mensualite_d842_6_base_19 = money_of_cents_string("140800") - elif match_arg_504.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_504.value + elif match_arg_553.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_553.value temp_calcul_plafond_mensualite_d842_6_base_19 = money_of_cents_string("170800") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): temp_calcul_plafond_mensualite_d842_6_base_19 = money_of_cents_string("186200") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): temp_calcul_plafond_mensualite_d842_6_base_19 = money_of_cents_string("193900") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): temp_calcul_plafond_mensualite_d842_6_base_19 = money_of_cents_string("201700") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): temp_calcul_plafond_mensualite_d842_6_base_19 = money_of_cents_string("209400") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): temp_calcul_plafond_mensualite_d842_6_base_19 = money_of_cents_string("225000") else: temp_calcul_plafond_mensualite_d842_6_base_19 = (money_of_cents_string("225000") + (money_of_cents_string("19500") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) return (temp_calcul_plafond_mensualite_d842_6_base_19 * taux_francs_vers_euros_1) else: raise EmptyError def temp_calcul_plafond_mensualite_d842_6_base_20(_:Unit): - if ((date_courante_12 >= date_of_numbers(2020,1,1)) and + if ((date_courante_13 >= date_of_numbers(2020,1,1)) and ((date_calcul >= date_of_numbers(2000,7,1)) and (date_calcul < date_of_numbers(2001,7,1)))): - match_arg_505 = zone_5 - if match_arg_505.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_505.value - if (nombre_personnes_a_charge_7 == + match_arg_554 = zone_5 + if match_arg_554.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_554.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_506 = situation_familiale_calcul_apl_7 - if match_arg_506.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_506.value + match_arg_555 = situation_familiale_calcul_apl_7 + if match_arg_555.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_555.value temp_calcul_plafond_mensualite_d842_6_base_21 = money_of_cents_string("169100") - elif match_arg_506.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_506.value + elif match_arg_555.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_555.value temp_calcul_plafond_mensualite_d842_6_base_21 = money_of_cents_string("203800") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): temp_calcul_plafond_mensualite_d842_6_base_21 = money_of_cents_string("219100") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): temp_calcul_plafond_mensualite_d842_6_base_21 = money_of_cents_string("225200") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): temp_calcul_plafond_mensualite_d842_6_base_21 = money_of_cents_string("231500") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): temp_calcul_plafond_mensualite_d842_6_base_21 = money_of_cents_string("237700") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): temp_calcul_plafond_mensualite_d842_6_base_21 = money_of_cents_string("242800") else: temp_calcul_plafond_mensualite_d842_6_base_21 = (money_of_cents_string("242800") + (money_of_cents_string("21100") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_505.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_505.value - if (nombre_personnes_a_charge_7 == + elif match_arg_554.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_554.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_507 = situation_familiale_calcul_apl_7 - if match_arg_507.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_507.value + match_arg_556 = situation_familiale_calcul_apl_7 + if match_arg_556.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_556.value temp_calcul_plafond_mensualite_d842_6_base_21 = money_of_cents_string("148300") - elif match_arg_507.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_507.value + elif match_arg_556.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_556.value temp_calcul_plafond_mensualite_d842_6_base_21 = money_of_cents_string("181800") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): temp_calcul_plafond_mensualite_d842_6_base_21 = money_of_cents_string("196800") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): temp_calcul_plafond_mensualite_d842_6_base_21 = money_of_cents_string("203700") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): temp_calcul_plafond_mensualite_d842_6_base_21 = money_of_cents_string("210700") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): temp_calcul_plafond_mensualite_d842_6_base_21 = money_of_cents_string("217600") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): temp_calcul_plafond_mensualite_d842_6_base_21 = money_of_cents_string("233000") else: temp_calcul_plafond_mensualite_d842_6_base_21 = (money_of_cents_string("233000") + (money_of_cents_string("20300") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_505.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_505.value - if (nombre_personnes_a_charge_7 == + elif match_arg_554.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_554.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_508 = situation_familiale_calcul_apl_7 - if match_arg_508.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_508.value + match_arg_557 = situation_familiale_calcul_apl_7 + if match_arg_557.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_557.value temp_calcul_plafond_mensualite_d842_6_base_21 = money_of_cents_string("139100") - elif match_arg_508.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_508.value + elif match_arg_557.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_557.value temp_calcul_plafond_mensualite_d842_6_base_21 = money_of_cents_string("168800") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): temp_calcul_plafond_mensualite_d842_6_base_21 = money_of_cents_string("184000") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): temp_calcul_plafond_mensualite_d842_6_base_21 = money_of_cents_string("191600") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): temp_calcul_plafond_mensualite_d842_6_base_21 = money_of_cents_string("199300") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): temp_calcul_plafond_mensualite_d842_6_base_21 = money_of_cents_string("206900") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): temp_calcul_plafond_mensualite_d842_6_base_21 = money_of_cents_string("222300") else: temp_calcul_plafond_mensualite_d842_6_base_21 = (money_of_cents_string("222300") + (money_of_cents_string("19300") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) return (temp_calcul_plafond_mensualite_d842_6_base_21 * taux_francs_vers_euros_1) else: raise EmptyError def temp_calcul_plafond_mensualite_d842_6_base_22(_:Unit): - if ((date_courante_12 >= date_of_numbers(2020,1,1)) and + if ((date_courante_13 >= date_of_numbers(2020,1,1)) and ((date_calcul >= date_of_numbers(1999,7,1)) and (date_calcul < date_of_numbers(2000,7,1)))): - match_arg_509 = zone_5 - if match_arg_509.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_509.value - if (nombre_personnes_a_charge_7 == + match_arg_558 = zone_5 + if match_arg_558.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_558.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_510 = situation_familiale_calcul_apl_7 - if match_arg_510.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_510.value + match_arg_559 = situation_familiale_calcul_apl_7 + if match_arg_559.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_559.value temp_calcul_plafond_mensualite_d842_6_base_23 = money_of_cents_string("167400") - elif match_arg_510.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_510.value + elif match_arg_559.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_559.value temp_calcul_plafond_mensualite_d842_6_base_23 = money_of_cents_string("201800") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): temp_calcul_plafond_mensualite_d842_6_base_23 = money_of_cents_string("216900") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): temp_calcul_plafond_mensualite_d842_6_base_23 = money_of_cents_string("223000") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): temp_calcul_plafond_mensualite_d842_6_base_23 = money_of_cents_string("229200") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): temp_calcul_plafond_mensualite_d842_6_base_23 = money_of_cents_string("235300") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): temp_calcul_plafond_mensualite_d842_6_base_23 = money_of_cents_string("240400") else: temp_calcul_plafond_mensualite_d842_6_base_23 = (money_of_cents_string("240400") + (money_of_cents_string("20900") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_509.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_509.value - if (nombre_personnes_a_charge_7 == + elif match_arg_558.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_558.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_511 = situation_familiale_calcul_apl_7 - if match_arg_511.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_511.value + match_arg_560 = situation_familiale_calcul_apl_7 + if match_arg_560.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_560.value temp_calcul_plafond_mensualite_d842_6_base_23 = money_of_cents_string("146800") - elif match_arg_511.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_511.value + elif match_arg_560.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_560.value temp_calcul_plafond_mensualite_d842_6_base_23 = money_of_cents_string("180000") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): temp_calcul_plafond_mensualite_d842_6_base_23 = money_of_cents_string("194900") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): temp_calcul_plafond_mensualite_d842_6_base_23 = money_of_cents_string("201700") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): temp_calcul_plafond_mensualite_d842_6_base_23 = money_of_cents_string("208600") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): temp_calcul_plafond_mensualite_d842_6_base_23 = money_of_cents_string("215400") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): temp_calcul_plafond_mensualite_d842_6_base_23 = money_of_cents_string("230700") else: temp_calcul_plafond_mensualite_d842_6_base_23 = (money_of_cents_string("230700") + (money_of_cents_string("20100") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_509.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_509.value - if (nombre_personnes_a_charge_7 == + elif match_arg_558.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_558.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_512 = situation_familiale_calcul_apl_7 - if match_arg_512.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_512.value + match_arg_561 = situation_familiale_calcul_apl_7 + if match_arg_561.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_561.value temp_calcul_plafond_mensualite_d842_6_base_23 = money_of_cents_string("137700") - elif match_arg_512.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_512.value + elif match_arg_561.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_561.value temp_calcul_plafond_mensualite_d842_6_base_23 = money_of_cents_string("167100") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): temp_calcul_plafond_mensualite_d842_6_base_23 = money_of_cents_string("182200") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): temp_calcul_plafond_mensualite_d842_6_base_23 = money_of_cents_string("189700") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): temp_calcul_plafond_mensualite_d842_6_base_23 = money_of_cents_string("197300") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): temp_calcul_plafond_mensualite_d842_6_base_23 = money_of_cents_string("204900") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): temp_calcul_plafond_mensualite_d842_6_base_23 = money_of_cents_string("220100") else: temp_calcul_plafond_mensualite_d842_6_base_23 = (money_of_cents_string("220100") + (money_of_cents_string("19100") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) return (temp_calcul_plafond_mensualite_d842_6_base_23 * taux_francs_vers_euros_1) else: raise EmptyError def temp_calcul_plafond_mensualite_d842_6_base_24(_:Unit): - if ((date_courante_12 >= date_of_numbers(2020,1,1)) and + if ((date_courante_13 >= date_of_numbers(2020,1,1)) and ((date_calcul >= date_of_numbers(1998,7,1)) and (date_calcul < date_of_numbers(1999,7,1)))): - match_arg_513 = zone_5 - if match_arg_513.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_513.value - if (nombre_personnes_a_charge_7 == + match_arg_562 = zone_5 + if match_arg_562.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_562.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_514 = situation_familiale_calcul_apl_7 - if match_arg_514.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_514.value + match_arg_563 = situation_familiale_calcul_apl_7 + if match_arg_563.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_563.value temp_calcul_plafond_mensualite_d842_6_base_25 = money_of_cents_string("167200") - elif match_arg_514.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_514.value + elif match_arg_563.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_563.value temp_calcul_plafond_mensualite_d842_6_base_25 = money_of_cents_string("201600") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): temp_calcul_plafond_mensualite_d842_6_base_25 = money_of_cents_string("216700") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): temp_calcul_plafond_mensualite_d842_6_base_25 = money_of_cents_string("222800") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): temp_calcul_plafond_mensualite_d842_6_base_25 = money_of_cents_string("229000") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): temp_calcul_plafond_mensualite_d842_6_base_25 = money_of_cents_string("235100") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): temp_calcul_plafond_mensualite_d842_6_base_25 = money_of_cents_string("240200") else: temp_calcul_plafond_mensualite_d842_6_base_25 = (money_of_cents_string("240200") + (money_of_cents_string("20900") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_513.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_513.value - if (nombre_personnes_a_charge_7 == + elif match_arg_562.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_562.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_515 = situation_familiale_calcul_apl_7 - if match_arg_515.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_515.value + match_arg_564 = situation_familiale_calcul_apl_7 + if match_arg_564.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_564.value temp_calcul_plafond_mensualite_d842_6_base_25 = money_of_cents_string("146700") - elif match_arg_515.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_515.value + elif match_arg_564.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_564.value temp_calcul_plafond_mensualite_d842_6_base_25 = money_of_cents_string("179800") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): temp_calcul_plafond_mensualite_d842_6_base_25 = money_of_cents_string("194700") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): temp_calcul_plafond_mensualite_d842_6_base_25 = money_of_cents_string("201500") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): temp_calcul_plafond_mensualite_d842_6_base_25 = money_of_cents_string("208400") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): temp_calcul_plafond_mensualite_d842_6_base_25 = money_of_cents_string("215200") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): temp_calcul_plafond_mensualite_d842_6_base_25 = money_of_cents_string("230500") else: temp_calcul_plafond_mensualite_d842_6_base_25 = (money_of_cents_string("230500") + (money_of_cents_string("20100") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_513.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_513.value - if (nombre_personnes_a_charge_7 == + elif match_arg_562.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_562.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_516 = situation_familiale_calcul_apl_7 - if match_arg_516.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_516.value + match_arg_565 = situation_familiale_calcul_apl_7 + if match_arg_565.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_565.value temp_calcul_plafond_mensualite_d842_6_base_25 = money_of_cents_string("137600") - elif match_arg_516.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_516.value + elif match_arg_565.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_565.value temp_calcul_plafond_mensualite_d842_6_base_25 = money_of_cents_string("166900") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): temp_calcul_plafond_mensualite_d842_6_base_25 = money_of_cents_string("182000") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): temp_calcul_plafond_mensualite_d842_6_base_25 = money_of_cents_string("189500") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): temp_calcul_plafond_mensualite_d842_6_base_25 = money_of_cents_string("197100") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): temp_calcul_plafond_mensualite_d842_6_base_25 = money_of_cents_string("204700") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): temp_calcul_plafond_mensualite_d842_6_base_25 = money_of_cents_string("219900") else: temp_calcul_plafond_mensualite_d842_6_base_25 = (money_of_cents_string("219900") + (money_of_cents_string("19100") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) return (temp_calcul_plafond_mensualite_d842_6_base_25 * taux_francs_vers_euros_1) else: raise EmptyError def temp_calcul_plafond_mensualite_d842_6_base_26(_:Unit): - if ((date_courante_12 >= date_of_numbers(2020,1,1)) and + if ((date_courante_13 >= date_of_numbers(2020,1,1)) and ((date_calcul >= date_of_numbers(1997,7,1)) and (date_calcul < date_of_numbers(1998,7,1)))): - match_arg_517 = zone_5 - if match_arg_517.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_517.value - if (nombre_personnes_a_charge_7 == + match_arg_566 = zone_5 + if match_arg_566.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_566.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_518 = situation_familiale_calcul_apl_7 - if match_arg_518.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_518.value + match_arg_567 = situation_familiale_calcul_apl_7 + if match_arg_567.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_567.value temp_calcul_plafond_mensualite_d842_6_base_27 = money_of_cents_string("163300") - elif match_arg_518.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_518.value + elif match_arg_567.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_567.value temp_calcul_plafond_mensualite_d842_6_base_27 = money_of_cents_string("196900") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): temp_calcul_plafond_mensualite_d842_6_base_27 = money_of_cents_string("211600") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): temp_calcul_plafond_mensualite_d842_6_base_27 = money_of_cents_string("217600") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): temp_calcul_plafond_mensualite_d842_6_base_27 = money_of_cents_string("223600") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): temp_calcul_plafond_mensualite_d842_6_base_27 = money_of_cents_string("229600") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): temp_calcul_plafond_mensualite_d842_6_base_27 = money_of_cents_string("234600") else: temp_calcul_plafond_mensualite_d842_6_base_27 = (money_of_cents_string("234600") + (money_of_cents_string("20400") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_517.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_517.value - if (nombre_personnes_a_charge_7 == + elif match_arg_566.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_566.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_519 = situation_familiale_calcul_apl_7 - if match_arg_519.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_519.value + match_arg_568 = situation_familiale_calcul_apl_7 + if match_arg_568.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_568.value temp_calcul_plafond_mensualite_d842_6_base_27 = money_of_cents_string("143300") - elif match_arg_519.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_519.value + elif match_arg_568.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_568.value temp_calcul_plafond_mensualite_d842_6_base_27 = money_of_cents_string("175600") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): temp_calcul_plafond_mensualite_d842_6_base_27 = money_of_cents_string("190100") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): temp_calcul_plafond_mensualite_d842_6_base_27 = money_of_cents_string("196600") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): temp_calcul_plafond_mensualite_d842_6_base_27 = money_of_cents_string("203500") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): temp_calcul_plafond_mensualite_d842_6_base_27 = money_of_cents_string("210200") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): temp_calcul_plafond_mensualite_d842_6_base_27 = money_of_cents_string("225100") else: temp_calcul_plafond_mensualite_d842_6_base_27 = (money_of_cents_string("225100") + (money_of_cents_string("19600") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_517.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_517.value - if (nombre_personnes_a_charge_7 == + elif match_arg_566.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_566.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_520 = situation_familiale_calcul_apl_7 - if match_arg_520.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_520.value + match_arg_569 = situation_familiale_calcul_apl_7 + if match_arg_569.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_569.value temp_calcul_plafond_mensualite_d842_6_base_27 = money_of_cents_string("134400") - elif match_arg_520.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_520.value + elif match_arg_569.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_569.value temp_calcul_plafond_mensualite_d842_6_base_27 = money_of_cents_string("163000") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): temp_calcul_plafond_mensualite_d842_6_base_27 = money_of_cents_string("177700") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): temp_calcul_plafond_mensualite_d842_6_base_27 = money_of_cents_string("185100") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): temp_calcul_plafond_mensualite_d842_6_base_27 = money_of_cents_string("192500") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): temp_calcul_plafond_mensualite_d842_6_base_27 = money_of_cents_string("199900") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): temp_calcul_plafond_mensualite_d842_6_base_27 = money_of_cents_string("214700") else: temp_calcul_plafond_mensualite_d842_6_base_27 = (money_of_cents_string("214700") + (money_of_cents_string("18700") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) return (temp_calcul_plafond_mensualite_d842_6_base_27 * taux_francs_vers_euros_1) else: raise EmptyError def temp_calcul_plafond_mensualite_d842_6_base_28(_:Unit): - if ((date_courante_12 >= date_of_numbers(2020,1,1)) and + if ((date_courante_13 >= date_of_numbers(2020,1,1)) and ((date_calcul >= date_of_numbers(1994,7,1)) and (date_calcul < date_of_numbers(1997,7,1)))): - match_arg_521 = zone_5 - if match_arg_521.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_521.value - if (nombre_personnes_a_charge_7 == + match_arg_570 = zone_5 + if match_arg_570.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_570.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_522 = situation_familiale_calcul_apl_7 - if match_arg_522.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_522.value + match_arg_571 = situation_familiale_calcul_apl_7 + if match_arg_571.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_571.value temp_calcul_plafond_mensualite_d842_6_base_29 = money_of_cents_string("160400") - elif match_arg_522.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_522.value + elif match_arg_571.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_571.value temp_calcul_plafond_mensualite_d842_6_base_29 = money_of_cents_string("193400") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): temp_calcul_plafond_mensualite_d842_6_base_29 = money_of_cents_string("207800") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): temp_calcul_plafond_mensualite_d842_6_base_29 = money_of_cents_string("213700") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): temp_calcul_plafond_mensualite_d842_6_base_29 = money_of_cents_string("219600") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): temp_calcul_plafond_mensualite_d842_6_base_29 = money_of_cents_string("225500") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): temp_calcul_plafond_mensualite_d842_6_base_29 = money_of_cents_string("230500") else: temp_calcul_plafond_mensualite_d842_6_base_29 = (money_of_cents_string("230500") + (money_of_cents_string("20000") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_521.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_521.value - if (nombre_personnes_a_charge_7 == + elif match_arg_570.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_570.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_523 = situation_familiale_calcul_apl_7 - if match_arg_523.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_523.value + match_arg_572 = situation_familiale_calcul_apl_7 + if match_arg_572.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_572.value temp_calcul_plafond_mensualite_d842_6_base_29 = money_of_cents_string("140800") - elif match_arg_523.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_523.value + elif match_arg_572.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_572.value temp_calcul_plafond_mensualite_d842_6_base_29 = money_of_cents_string("172500") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): temp_calcul_plafond_mensualite_d842_6_base_29 = money_of_cents_string("186700") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): temp_calcul_plafond_mensualite_d842_6_base_29 = money_of_cents_string("193300") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): temp_calcul_plafond_mensualite_d842_6_base_29 = money_of_cents_string("199900") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): temp_calcul_plafond_mensualite_d842_6_base_29 = money_of_cents_string("206500") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): temp_calcul_plafond_mensualite_d842_6_base_29 = money_of_cents_string("221100") else: temp_calcul_plafond_mensualite_d842_6_base_29 = (money_of_cents_string("221100") + (money_of_cents_string("19300") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_521.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_521.value - if (nombre_personnes_a_charge_7 == + elif match_arg_570.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_570.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_524 = situation_familiale_calcul_apl_7 - if match_arg_524.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_524.value + match_arg_573 = situation_familiale_calcul_apl_7 + if match_arg_573.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_573.value temp_calcul_plafond_mensualite_d842_6_base_29 = money_of_cents_string("132000") - elif match_arg_524.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_524.value + elif match_arg_573.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_573.value temp_calcul_plafond_mensualite_d842_6_base_29 = money_of_cents_string("180100") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): temp_calcul_plafond_mensualite_d842_6_base_29 = money_of_cents_string("174500") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): temp_calcul_plafond_mensualite_d842_6_base_29 = money_of_cents_string("181800") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): temp_calcul_plafond_mensualite_d842_6_base_29 = money_of_cents_string("189100") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): temp_calcul_plafond_mensualite_d842_6_base_29 = money_of_cents_string("196400") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): temp_calcul_plafond_mensualite_d842_6_base_29 = money_of_cents_string("210900") else: temp_calcul_plafond_mensualite_d842_6_base_29 = (money_of_cents_string("210900") + (money_of_cents_string("18400") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) return (temp_calcul_plafond_mensualite_d842_6_base_29 * taux_francs_vers_euros_1) else: raise EmptyError def temp_calcul_plafond_mensualite_d842_6_base_30(_:Unit): - if ((date_courante_12 >= date_of_numbers(2020,1,1)) and + if ((date_courante_13 >= date_of_numbers(2020,1,1)) and ((date_calcul >= date_of_numbers(1992,7,1)) and (date_calcul < date_of_numbers(1994,7,1)))): - match_arg_525 = zone_5 - if match_arg_525.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_525.value - if (nombre_personnes_a_charge_7 == + match_arg_574 = zone_5 + if match_arg_574.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_574.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_526 = situation_familiale_calcul_apl_7 - if match_arg_526.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_526.value + match_arg_575 = situation_familiale_calcul_apl_7 + if match_arg_575.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_575.value temp_calcul_plafond_mensualite_d842_6_base_31 = money_of_cents_string("158700") - elif match_arg_526.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_526.value + elif match_arg_575.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_575.value temp_calcul_plafond_mensualite_d842_6_base_31 = money_of_cents_string("191300") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): temp_calcul_plafond_mensualite_d842_6_base_31 = money_of_cents_string("205500") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): temp_calcul_plafond_mensualite_d842_6_base_31 = money_of_cents_string("211300") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): temp_calcul_plafond_mensualite_d842_6_base_31 = money_of_cents_string("217100") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): temp_calcul_plafond_mensualite_d842_6_base_31 = money_of_cents_string("222900") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): temp_calcul_plafond_mensualite_d842_6_base_31 = money_of_cents_string("228000") else: temp_calcul_plafond_mensualite_d842_6_base_31 = (money_of_cents_string("228000") + (money_of_cents_string("19800") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_525.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_525.value - if (nombre_personnes_a_charge_7 == + elif match_arg_574.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_574.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_527 = situation_familiale_calcul_apl_7 - if match_arg_527.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_527.value + match_arg_576 = situation_familiale_calcul_apl_7 + if match_arg_576.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_576.value temp_calcul_plafond_mensualite_d842_6_base_31 = money_of_cents_string("139300") - elif match_arg_527.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_527.value + elif match_arg_576.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_576.value temp_calcul_plafond_mensualite_d842_6_base_31 = money_of_cents_string("170600") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): temp_calcul_plafond_mensualite_d842_6_base_31 = money_of_cents_string("184700") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): temp_calcul_plafond_mensualite_d842_6_base_31 = money_of_cents_string("191200") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): temp_calcul_plafond_mensualite_d842_6_base_31 = money_of_cents_string("197700") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): temp_calcul_plafond_mensualite_d842_6_base_31 = money_of_cents_string("204200") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): temp_calcul_plafond_mensualite_d842_6_base_31 = money_of_cents_string("218700") else: temp_calcul_plafond_mensualite_d842_6_base_31 = (money_of_cents_string("218700") + (money_of_cents_string("19100") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) - elif match_arg_525.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_525.value - if (nombre_personnes_a_charge_7 == + elif match_arg_574.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_574.value + if (nombre_personnes_a_charge_8 == integer_of_string("0")): - match_arg_528 = situation_familiale_calcul_apl_7 - if match_arg_528.code == SituationFamilialeCalculAPL_Code.PersonneSeule: - _ = match_arg_528.value + match_arg_577 = situation_familiale_calcul_apl_7 + if match_arg_577.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_577.value temp_calcul_plafond_mensualite_d842_6_base_31 = money_of_cents_string("130600") - elif match_arg_528.code == SituationFamilialeCalculAPL_Code.Couple: - _ = match_arg_528.value + elif match_arg_577.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_577.value temp_calcul_plafond_mensualite_d842_6_base_31 = money_of_cents_string("158400") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("1")): temp_calcul_plafond_mensualite_d842_6_base_31 = money_of_cents_string("172600") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("2")): temp_calcul_plafond_mensualite_d842_6_base_31 = money_of_cents_string("179800") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("3")): temp_calcul_plafond_mensualite_d842_6_base_31 = money_of_cents_string("187000") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("4")): temp_calcul_plafond_mensualite_d842_6_base_31 = money_of_cents_string("194200") else: - if (nombre_personnes_a_charge_7 == + if (nombre_personnes_a_charge_8 == integer_of_string("5")): temp_calcul_plafond_mensualite_d842_6_base_31 = money_of_cents_string("208600") else: temp_calcul_plafond_mensualite_d842_6_base_31 = (money_of_cents_string("208600") + (money_of_cents_string("18200") * - decimal_of_integer((nombre_personnes_a_charge_7 - + decimal_of_integer((nombre_personnes_a_charge_8 - integer_of_string("5"))))) return (temp_calcul_plafond_mensualite_d842_6_base_31 * taux_francs_vers_euros_1) else: raise EmptyError return handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=941, start_column=10, - end_line=941, end_column=14, + start_line=949, start_column=10, + end_line=949, end_column=14, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"]), [temp_calcul_plafond_mensualite_d842_6_base_30, @@ -17656,9 +19643,9 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac temp_calcul_plafond_mensualite_d842_6_base_1) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=941, + start_line=949, start_column=10, - end_line=941, + end_line=949, end_column=14, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", @@ -17666,30 +19653,909 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_plafond_mensualite_d842_6_base = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=941, start_column=10, - end_line=941, end_column=14, + start_line=949, start_column=10, + end_line=949, end_column=14, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) calcul_plafond_mensualite_d842_6_base = temp_calcul_plafond_mensualite_d842_6_base + try: + try: + try: + try: + def temp_montant_forfaitaire_charges_19(_:Unit): + raise EmptyError + def temp_montant_forfaitaire_charges_20(_:Unit): + return False + def temp_montant_forfaitaire_charges_21(_:Unit): + match_arg_578 = residence_7 + if match_arg_578.code == Collectivite_Code.Guadeloupe: + _ = match_arg_578.value + temp_montant_forfaitaire_charges_22 = True + elif match_arg_578.code == Collectivite_Code.Guyane: + _ = match_arg_578.value + temp_montant_forfaitaire_charges_22 = False + elif match_arg_578.code == Collectivite_Code.Martinique: + _ = match_arg_578.value + temp_montant_forfaitaire_charges_22 = True + elif match_arg_578.code == Collectivite_Code.LaReunion: + _ = match_arg_578.value + temp_montant_forfaitaire_charges_22 = True + elif match_arg_578.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_578.value + temp_montant_forfaitaire_charges_22 = True + elif match_arg_578.code == Collectivite_Code.SaintMartin: + _ = match_arg_578.value + temp_montant_forfaitaire_charges_22 = True + elif match_arg_578.code == Collectivite_Code.Metropole: + _ = match_arg_578.value + temp_montant_forfaitaire_charges_22 = False + elif match_arg_578.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_578.value + temp_montant_forfaitaire_charges_22 = False + elif match_arg_578.code == Collectivite_Code.Mayotte: + _ = match_arg_578.value + temp_montant_forfaitaire_charges_22 = True + if (((date_courante_13 >= + date_of_numbers(2020,1,1)) and + (date_courante_13 < + date_of_numbers(2020,10,1))) and + temp_montant_forfaitaire_charges_22): + match_arg_579 = situation_familiale_calcul_apl_7 + if match_arg_579.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_579.value + temp_montant_forfaitaire_charges_23 = money_of_cents_string("1858") + elif match_arg_579.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_579.value + temp_montant_forfaitaire_charges_23 = money_of_cents_string("3614") + match_arg_580 = situation_familiale_calcul_apl_7 + if match_arg_580.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_580.value + temp_montant_forfaitaire_charges_24 = money_of_cents_string("1858") + elif match_arg_580.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_580.value + temp_montant_forfaitaire_charges_24 = money_of_cents_string("3614") + if ((temp_montant_forfaitaire_charges_24 + + (money_of_cents_string("929") * + decimal_of_integer(nombre_personnes_a_charge_7))) > + (temp_montant_forfaitaire_charges_23 + + (money_of_cents_string("929") * + decimal_of_string("6.")))): + match_arg_581 = situation_familiale_calcul_apl_7 + if match_arg_581.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_581.value + temp_montant_forfaitaire_charges_25 = money_of_cents_string("1858") + elif match_arg_581.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_581.value + temp_montant_forfaitaire_charges_25 = money_of_cents_string("3614") + return (temp_montant_forfaitaire_charges_25 + + (money_of_cents_string("929") * + decimal_of_string("6."))) + else: + match_arg_582 = situation_familiale_calcul_apl_7 + if match_arg_582.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_582.value + temp_montant_forfaitaire_charges_26 = money_of_cents_string("1858") + elif match_arg_582.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_582.value + temp_montant_forfaitaire_charges_26 = money_of_cents_string("3614") + return (temp_montant_forfaitaire_charges_26 + + (money_of_cents_string("929") * + decimal_of_integer(nombre_personnes_a_charge_7))) + else: + raise EmptyError + def temp_montant_forfaitaire_charges_27(_:Unit): + match_arg_583 = residence_7 + if match_arg_583.code == Collectivite_Code.Guadeloupe: + _ = match_arg_583.value + temp_montant_forfaitaire_charges_28 = True + elif match_arg_583.code == Collectivite_Code.Guyane: + _ = match_arg_583.value + temp_montant_forfaitaire_charges_28 = False + elif match_arg_583.code == Collectivite_Code.Martinique: + _ = match_arg_583.value + temp_montant_forfaitaire_charges_28 = True + elif match_arg_583.code == Collectivite_Code.LaReunion: + _ = match_arg_583.value + temp_montant_forfaitaire_charges_28 = True + elif match_arg_583.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_583.value + temp_montant_forfaitaire_charges_28 = True + elif match_arg_583.code == Collectivite_Code.SaintMartin: + _ = match_arg_583.value + temp_montant_forfaitaire_charges_28 = True + elif match_arg_583.code == Collectivite_Code.Metropole: + _ = match_arg_583.value + temp_montant_forfaitaire_charges_28 = False + elif match_arg_583.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_583.value + temp_montant_forfaitaire_charges_28 = False + elif match_arg_583.code == Collectivite_Code.Mayotte: + _ = match_arg_583.value + temp_montant_forfaitaire_charges_28 = True + if (((date_courante_13 >= + date_of_numbers(2020,10,1)) and + (date_courante_13 < + date_of_numbers(2021,10,1))) and + temp_montant_forfaitaire_charges_28): + match_arg_584 = situation_familiale_calcul_apl_7 + if match_arg_584.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_584.value + temp_montant_forfaitaire_charges_29 = money_of_cents_string("1864") + elif match_arg_584.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_584.value + temp_montant_forfaitaire_charges_29 = money_of_cents_string("3625") + match_arg_585 = situation_familiale_calcul_apl_7 + if match_arg_585.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_585.value + temp_montant_forfaitaire_charges_30 = money_of_cents_string("1864") + elif match_arg_585.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_585.value + temp_montant_forfaitaire_charges_30 = money_of_cents_string("3625") + if ((temp_montant_forfaitaire_charges_30 + + (money_of_cents_string("932") * + decimal_of_integer(nombre_personnes_a_charge_7))) > + (temp_montant_forfaitaire_charges_29 + + (money_of_cents_string("932") * + decimal_of_string("6.")))): + match_arg_586 = situation_familiale_calcul_apl_7 + if match_arg_586.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_586.value + temp_montant_forfaitaire_charges_31 = money_of_cents_string("1864") + elif match_arg_586.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_586.value + temp_montant_forfaitaire_charges_31 = money_of_cents_string("3625") + return (temp_montant_forfaitaire_charges_31 + + (money_of_cents_string("932") * + decimal_of_string("6."))) + else: + match_arg_587 = situation_familiale_calcul_apl_7 + if match_arg_587.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_587.value + temp_montant_forfaitaire_charges_32 = money_of_cents_string("1864") + elif match_arg_587.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_587.value + temp_montant_forfaitaire_charges_32 = money_of_cents_string("3625") + return (temp_montant_forfaitaire_charges_32 + + (money_of_cents_string("932") * + decimal_of_integer(nombre_personnes_a_charge_7))) + else: + raise EmptyError + def temp_montant_forfaitaire_charges_33(_:Unit): + try: + match_arg_588 = residence_7 + if match_arg_588.code == Collectivite_Code.Guadeloupe: + _ = match_arg_588.value + temp_montant_forfaitaire_charges_34 = True + elif match_arg_588.code == Collectivite_Code.Guyane: + _ = match_arg_588.value + temp_montant_forfaitaire_charges_34 = False + elif match_arg_588.code == Collectivite_Code.Martinique: + _ = match_arg_588.value + temp_montant_forfaitaire_charges_34 = True + elif match_arg_588.code == Collectivite_Code.LaReunion: + _ = match_arg_588.value + temp_montant_forfaitaire_charges_34 = True + elif match_arg_588.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_588.value + temp_montant_forfaitaire_charges_34 = True + elif match_arg_588.code == Collectivite_Code.SaintMartin: + _ = match_arg_588.value + temp_montant_forfaitaire_charges_34 = True + elif match_arg_588.code == Collectivite_Code.Metropole: + _ = match_arg_588.value + temp_montant_forfaitaire_charges_34 = False + elif match_arg_588.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_588.value + temp_montant_forfaitaire_charges_34 = False + elif match_arg_588.code == Collectivite_Code.Mayotte: + _ = match_arg_588.value + temp_montant_forfaitaire_charges_34 = True + if (((date_courante_13 >= + date_of_numbers(2021,10,1)) and + (date_courante_13 < + date_of_numbers(2022,1,1))) and + temp_montant_forfaitaire_charges_34): + match_arg_589 = situation_familiale_calcul_apl_7 + if match_arg_589.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_589.value + temp_montant_forfaitaire_charges_35 = money_of_cents_string("1872") + elif match_arg_589.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_589.value + temp_montant_forfaitaire_charges_35 = money_of_cents_string("3640") + match_arg_590 = situation_familiale_calcul_apl_7 + if match_arg_590.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_590.value + temp_montant_forfaitaire_charges_36 = money_of_cents_string("1872") + elif match_arg_590.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_590.value + temp_montant_forfaitaire_charges_36 = money_of_cents_string("3640") + if ((temp_montant_forfaitaire_charges_36 + + (money_of_cents_string("936") * + decimal_of_integer(nombre_personnes_a_charge_7))) > + (temp_montant_forfaitaire_charges_35 + + (money_of_cents_string("936") * + decimal_of_string("6.")))): + match_arg_591 = situation_familiale_calcul_apl_7 + if match_arg_591.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_591.value + temp_montant_forfaitaire_charges_37 = money_of_cents_string("1872") + elif match_arg_591.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_591.value + temp_montant_forfaitaire_charges_37 = money_of_cents_string("3640") + return (temp_montant_forfaitaire_charges_37 + + (money_of_cents_string("936") * + decimal_of_string("6."))) + else: + match_arg_592 = situation_familiale_calcul_apl_7 + if match_arg_592.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_592.value + temp_montant_forfaitaire_charges_38 = money_of_cents_string("1872") + elif match_arg_592.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_592.value + temp_montant_forfaitaire_charges_38 = money_of_cents_string("3640") + return (temp_montant_forfaitaire_charges_38 + + (money_of_cents_string("936") * + decimal_of_integer(nombre_personnes_a_charge_7))) + else: + raise EmptyError + except EmptyError: + match_arg_593 = residence_7 + if match_arg_593.code == Collectivite_Code.Guadeloupe: + _ = match_arg_593.value + temp_montant_forfaitaire_charges_39 = True + elif match_arg_593.code == Collectivite_Code.Guyane: + _ = match_arg_593.value + temp_montant_forfaitaire_charges_39 = False + elif match_arg_593.code == Collectivite_Code.Martinique: + _ = match_arg_593.value + temp_montant_forfaitaire_charges_39 = True + elif match_arg_593.code == Collectivite_Code.LaReunion: + _ = match_arg_593.value + temp_montant_forfaitaire_charges_39 = True + elif match_arg_593.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_593.value + temp_montant_forfaitaire_charges_39 = True + elif match_arg_593.code == Collectivite_Code.SaintMartin: + _ = match_arg_593.value + temp_montant_forfaitaire_charges_39 = True + elif match_arg_593.code == Collectivite_Code.Metropole: + _ = match_arg_593.value + temp_montant_forfaitaire_charges_39 = False + elif match_arg_593.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_593.value + temp_montant_forfaitaire_charges_39 = False + elif match_arg_593.code == Collectivite_Code.Mayotte: + _ = match_arg_593.value + temp_montant_forfaitaire_charges_39 = True + if (((date_courante_13 >= + date_of_numbers(2022,1,1)) and + (date_courante_13 < + date_of_numbers(2022,7,1))) and + temp_montant_forfaitaire_charges_39): + match_arg_594 = situation_familiale_calcul_apl_7 + if match_arg_594.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_594.value + temp_montant_forfaitaire_charges_40 = money_of_cents_string("1872") + elif match_arg_594.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_594.value + temp_montant_forfaitaire_charges_40 = money_of_cents_string("3640") + match_arg_595 = situation_familiale_calcul_apl_7 + if match_arg_595.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_595.value + temp_montant_forfaitaire_charges_41 = money_of_cents_string("1872") + elif match_arg_595.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_595.value + temp_montant_forfaitaire_charges_41 = money_of_cents_string("3640") + if ((temp_montant_forfaitaire_charges_41 + + (money_of_cents_string("936") * + decimal_of_integer(nombre_personnes_a_charge_7))) > + (temp_montant_forfaitaire_charges_40 + + (money_of_cents_string("936") * + decimal_of_string("6.")))): + match_arg_596 = situation_familiale_calcul_apl_7 + if match_arg_596.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_596.value + temp_montant_forfaitaire_charges_42 = money_of_cents_string("1872") + elif match_arg_596.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_596.value + temp_montant_forfaitaire_charges_42 = money_of_cents_string("3640") + return (temp_montant_forfaitaire_charges_42 + + (money_of_cents_string("936") * + decimal_of_string("6."))) + else: + match_arg_597 = situation_familiale_calcul_apl_7 + if match_arg_597.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_597.value + temp_montant_forfaitaire_charges_43 = money_of_cents_string("1872") + elif match_arg_597.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_597.value + temp_montant_forfaitaire_charges_43 = money_of_cents_string("3640") + return (temp_montant_forfaitaire_charges_43 + + (money_of_cents_string("936") * + decimal_of_integer(nombre_personnes_a_charge_7))) + else: + raise EmptyError + def temp_montant_forfaitaire_charges_44(_:Unit): + match_arg_598 = residence_7 + if match_arg_598.code == Collectivite_Code.Guadeloupe: + _ = match_arg_598.value + temp_montant_forfaitaire_charges_45 = True + elif match_arg_598.code == Collectivite_Code.Guyane: + _ = match_arg_598.value + temp_montant_forfaitaire_charges_45 = False + elif match_arg_598.code == Collectivite_Code.Martinique: + _ = match_arg_598.value + temp_montant_forfaitaire_charges_45 = True + elif match_arg_598.code == Collectivite_Code.LaReunion: + _ = match_arg_598.value + temp_montant_forfaitaire_charges_45 = True + elif match_arg_598.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_598.value + temp_montant_forfaitaire_charges_45 = True + elif match_arg_598.code == Collectivite_Code.SaintMartin: + _ = match_arg_598.value + temp_montant_forfaitaire_charges_45 = True + elif match_arg_598.code == Collectivite_Code.Metropole: + _ = match_arg_598.value + temp_montant_forfaitaire_charges_45 = False + elif match_arg_598.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_598.value + temp_montant_forfaitaire_charges_45 = False + elif match_arg_598.code == Collectivite_Code.Mayotte: + _ = match_arg_598.value + temp_montant_forfaitaire_charges_45 = True + if (((date_courante_13 >= + date_of_numbers(2022,7,1)) and + (date_courante_13 < + date_of_numbers(2023,1,1))) and + temp_montant_forfaitaire_charges_45): + match_arg_599 = situation_familiale_calcul_apl_7 + if match_arg_599.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_599.value + temp_montant_forfaitaire_charges_46 = money_of_cents_string("1938") + elif match_arg_599.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_599.value + temp_montant_forfaitaire_charges_46 = money_of_cents_string("3767") + match_arg_600 = situation_familiale_calcul_apl_7 + if match_arg_600.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_600.value + temp_montant_forfaitaire_charges_47 = money_of_cents_string("1938") + elif match_arg_600.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_600.value + temp_montant_forfaitaire_charges_47 = money_of_cents_string("3767") + if ((temp_montant_forfaitaire_charges_47 + + (money_of_cents_string("969") * + decimal_of_integer(nombre_personnes_a_charge_7))) > + (temp_montant_forfaitaire_charges_46 + + (money_of_cents_string("969") * + decimal_of_string("6.")))): + match_arg_601 = situation_familiale_calcul_apl_7 + if match_arg_601.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_601.value + temp_montant_forfaitaire_charges_48 = money_of_cents_string("1938") + elif match_arg_601.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_601.value + temp_montant_forfaitaire_charges_48 = money_of_cents_string("3767") + return (temp_montant_forfaitaire_charges_48 + + (money_of_cents_string("969") * + decimal_of_string("6."))) + else: + match_arg_602 = situation_familiale_calcul_apl_7 + if match_arg_602.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_602.value + temp_montant_forfaitaire_charges_49 = money_of_cents_string("1938") + elif match_arg_602.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_602.value + temp_montant_forfaitaire_charges_49 = money_of_cents_string("3767") + return (temp_montant_forfaitaire_charges_49 + + (money_of_cents_string("969") * + decimal_of_integer(nombre_personnes_a_charge_7))) + else: + raise EmptyError + def temp_montant_forfaitaire_charges_50(_:Unit): + match_arg_603 = residence_7 + if match_arg_603.code == Collectivite_Code.Guadeloupe: + _ = match_arg_603.value + temp_montant_forfaitaire_charges_51 = True + elif match_arg_603.code == Collectivite_Code.Guyane: + _ = match_arg_603.value + temp_montant_forfaitaire_charges_51 = False + elif match_arg_603.code == Collectivite_Code.Martinique: + _ = match_arg_603.value + temp_montant_forfaitaire_charges_51 = True + elif match_arg_603.code == Collectivite_Code.LaReunion: + _ = match_arg_603.value + temp_montant_forfaitaire_charges_51 = True + elif match_arg_603.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_603.value + temp_montant_forfaitaire_charges_51 = True + elif match_arg_603.code == Collectivite_Code.SaintMartin: + _ = match_arg_603.value + temp_montant_forfaitaire_charges_51 = True + elif match_arg_603.code == Collectivite_Code.Metropole: + _ = match_arg_603.value + temp_montant_forfaitaire_charges_51 = False + elif match_arg_603.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_603.value + temp_montant_forfaitaire_charges_51 = False + elif match_arg_603.code == Collectivite_Code.Mayotte: + _ = match_arg_603.value + temp_montant_forfaitaire_charges_51 = True + if ((date_courante_13 >= + date_of_numbers(2023,1,1)) and + (temp_montant_forfaitaire_charges_51 and + copropriete_1)): + match_arg_604 = situation_familiale_calcul_apl_7 + if match_arg_604.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_604.value + temp_montant_forfaitaire_charges_52 = money_of_cents_string("1938") + elif match_arg_604.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_604.value + temp_montant_forfaitaire_charges_52 = money_of_cents_string("3767") + return (temp_montant_forfaitaire_charges_52 + + (money_of_cents_string("969") * + multiplicateur_majoration_charges_1)) + else: + raise EmptyError + temp_montant_forfaitaire_charges_53 = handle_default( + SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=942, start_column=11, + end_line=942, end_column=38, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'allocation logement", + "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_50, + temp_montant_forfaitaire_charges_44, + temp_montant_forfaitaire_charges_33, + temp_montant_forfaitaire_charges_27, + temp_montant_forfaitaire_charges_21], + temp_montant_forfaitaire_charges_20, + temp_montant_forfaitaire_charges_19) + except EmptyError: + def temp_montant_forfaitaire_charges_54(_:Unit): + raise EmptyError + def temp_montant_forfaitaire_charges_55(_:Unit): + return False + def temp_montant_forfaitaire_charges_56(_:Unit): + match_arg_605 = residence_7 + if match_arg_605.code == Collectivite_Code.Guadeloupe: + _ = match_arg_605.value + temp_montant_forfaitaire_charges_57 = True + elif match_arg_605.code == Collectivite_Code.Guyane: + _ = match_arg_605.value + temp_montant_forfaitaire_charges_57 = False + elif match_arg_605.code == Collectivite_Code.Martinique: + _ = match_arg_605.value + temp_montant_forfaitaire_charges_57 = True + elif match_arg_605.code == Collectivite_Code.LaReunion: + _ = match_arg_605.value + temp_montant_forfaitaire_charges_57 = True + elif match_arg_605.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_605.value + temp_montant_forfaitaire_charges_57 = True + elif match_arg_605.code == Collectivite_Code.SaintMartin: + _ = match_arg_605.value + temp_montant_forfaitaire_charges_57 = True + elif match_arg_605.code == Collectivite_Code.Metropole: + _ = match_arg_605.value + temp_montant_forfaitaire_charges_57 = False + elif match_arg_605.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_605.value + temp_montant_forfaitaire_charges_57 = False + elif match_arg_605.code == Collectivite_Code.Mayotte: + _ = match_arg_605.value + temp_montant_forfaitaire_charges_57 = True + if (((date_courante_13 >= + date_of_numbers(2020,1,1)) and + (date_courante_13 < + date_of_numbers(2020,10,1))) and + temp_montant_forfaitaire_charges_57): + if ((money_of_cents_string("3614") + + (money_of_cents_string("929") * + decimal_of_integer(nombre_personnes_a_charge_7))) > + (money_of_cents_string("3614") + + (money_of_cents_string("929") * + decimal_of_string("6.")))): + return (money_of_cents_string("3614") + + (money_of_cents_string("929") * + decimal_of_string("6."))) + else: + return (money_of_cents_string("3614") + + (money_of_cents_string("929") * + decimal_of_integer(nombre_personnes_a_charge_7))) + else: + raise EmptyError + def temp_montant_forfaitaire_charges_58(_:Unit): + match_arg_606 = residence_7 + if match_arg_606.code == Collectivite_Code.Guadeloupe: + _ = match_arg_606.value + temp_montant_forfaitaire_charges_59 = True + elif match_arg_606.code == Collectivite_Code.Guyane: + _ = match_arg_606.value + temp_montant_forfaitaire_charges_59 = False + elif match_arg_606.code == Collectivite_Code.Martinique: + _ = match_arg_606.value + temp_montant_forfaitaire_charges_59 = True + elif match_arg_606.code == Collectivite_Code.LaReunion: + _ = match_arg_606.value + temp_montant_forfaitaire_charges_59 = True + elif match_arg_606.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_606.value + temp_montant_forfaitaire_charges_59 = True + elif match_arg_606.code == Collectivite_Code.SaintMartin: + _ = match_arg_606.value + temp_montant_forfaitaire_charges_59 = True + elif match_arg_606.code == Collectivite_Code.Metropole: + _ = match_arg_606.value + temp_montant_forfaitaire_charges_59 = False + elif match_arg_606.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_606.value + temp_montant_forfaitaire_charges_59 = False + elif match_arg_606.code == Collectivite_Code.Mayotte: + _ = match_arg_606.value + temp_montant_forfaitaire_charges_59 = True + if (((date_courante_13 >= + date_of_numbers(2020,10,1)) and + (date_courante_13 < + date_of_numbers(2021,10,1))) and + temp_montant_forfaitaire_charges_59): + if ((money_of_cents_string("3625") + + (money_of_cents_string("932") * + decimal_of_integer(nombre_personnes_a_charge_7))) > + (money_of_cents_string("3625") + + (money_of_cents_string("932") * + decimal_of_string("6.")))): + return (money_of_cents_string("3625") + + (money_of_cents_string("932") * + decimal_of_string("6."))) + else: + return (money_of_cents_string("3625") + + (money_of_cents_string("932") * + decimal_of_integer(nombre_personnes_a_charge_7))) + else: + raise EmptyError + def temp_montant_forfaitaire_charges_60(_:Unit): + try: + match_arg_607 = residence_7 + if match_arg_607.code == Collectivite_Code.Guadeloupe: + _ = match_arg_607.value + temp_montant_forfaitaire_charges_61 = True + elif match_arg_607.code == Collectivite_Code.Guyane: + _ = match_arg_607.value + temp_montant_forfaitaire_charges_61 = False + elif match_arg_607.code == Collectivite_Code.Martinique: + _ = match_arg_607.value + temp_montant_forfaitaire_charges_61 = True + elif match_arg_607.code == Collectivite_Code.LaReunion: + _ = match_arg_607.value + temp_montant_forfaitaire_charges_61 = True + elif match_arg_607.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_607.value + temp_montant_forfaitaire_charges_61 = True + elif match_arg_607.code == Collectivite_Code.SaintMartin: + _ = match_arg_607.value + temp_montant_forfaitaire_charges_61 = True + elif match_arg_607.code == Collectivite_Code.Metropole: + _ = match_arg_607.value + temp_montant_forfaitaire_charges_61 = False + elif match_arg_607.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_607.value + temp_montant_forfaitaire_charges_61 = False + elif match_arg_607.code == Collectivite_Code.Mayotte: + _ = match_arg_607.value + temp_montant_forfaitaire_charges_61 = True + if (((date_courante_13 >= + date_of_numbers(2021,10,1)) and + (date_courante_13 < + date_of_numbers(2022,1,1))) and + temp_montant_forfaitaire_charges_61): + if ((money_of_cents_string("3640") + + (money_of_cents_string("936") * + decimal_of_integer(nombre_personnes_a_charge_7))) > + (money_of_cents_string("3640") + + (money_of_cents_string("936") * + decimal_of_string("6.")))): + return (money_of_cents_string("3640") + + (money_of_cents_string("936") * + decimal_of_string("6."))) + else: + return (money_of_cents_string("3640") + + (money_of_cents_string("936") * + decimal_of_integer(nombre_personnes_a_charge_7))) + else: + raise EmptyError + except EmptyError: + match_arg_608 = residence_7 + if match_arg_608.code == Collectivite_Code.Guadeloupe: + _ = match_arg_608.value + temp_montant_forfaitaire_charges_62 = True + elif match_arg_608.code == Collectivite_Code.Guyane: + _ = match_arg_608.value + temp_montant_forfaitaire_charges_62 = False + elif match_arg_608.code == Collectivite_Code.Martinique: + _ = match_arg_608.value + temp_montant_forfaitaire_charges_62 = True + elif match_arg_608.code == Collectivite_Code.LaReunion: + _ = match_arg_608.value + temp_montant_forfaitaire_charges_62 = True + elif match_arg_608.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_608.value + temp_montant_forfaitaire_charges_62 = True + elif match_arg_608.code == Collectivite_Code.SaintMartin: + _ = match_arg_608.value + temp_montant_forfaitaire_charges_62 = True + elif match_arg_608.code == Collectivite_Code.Metropole: + _ = match_arg_608.value + temp_montant_forfaitaire_charges_62 = False + elif match_arg_608.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_608.value + temp_montant_forfaitaire_charges_62 = False + elif match_arg_608.code == Collectivite_Code.Mayotte: + _ = match_arg_608.value + temp_montant_forfaitaire_charges_62 = True + if (((date_courante_13 >= + date_of_numbers(2022,1,1)) and + (date_courante_13 < + date_of_numbers(2022,7,1))) and + temp_montant_forfaitaire_charges_62): + if ((money_of_cents_string("3640") + + (money_of_cents_string("936") * + decimal_of_integer(nombre_personnes_a_charge_7))) > + (money_of_cents_string("3640") + + (money_of_cents_string("936") * + decimal_of_string("6.")))): + return (money_of_cents_string("3640") + + (money_of_cents_string("936") * + decimal_of_string("6."))) + else: + return (money_of_cents_string("3640") + + (money_of_cents_string("936") * + decimal_of_integer(nombre_personnes_a_charge_7))) + else: + raise EmptyError + def temp_montant_forfaitaire_charges_63(_:Unit): + match_arg_609 = residence_7 + if match_arg_609.code == Collectivite_Code.Guadeloupe: + _ = match_arg_609.value + temp_montant_forfaitaire_charges_64 = True + elif match_arg_609.code == Collectivite_Code.Guyane: + _ = match_arg_609.value + temp_montant_forfaitaire_charges_64 = False + elif match_arg_609.code == Collectivite_Code.Martinique: + _ = match_arg_609.value + temp_montant_forfaitaire_charges_64 = True + elif match_arg_609.code == Collectivite_Code.LaReunion: + _ = match_arg_609.value + temp_montant_forfaitaire_charges_64 = True + elif match_arg_609.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_609.value + temp_montant_forfaitaire_charges_64 = True + elif match_arg_609.code == Collectivite_Code.SaintMartin: + _ = match_arg_609.value + temp_montant_forfaitaire_charges_64 = True + elif match_arg_609.code == Collectivite_Code.Metropole: + _ = match_arg_609.value + temp_montant_forfaitaire_charges_64 = False + elif match_arg_609.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_609.value + temp_montant_forfaitaire_charges_64 = False + elif match_arg_609.code == Collectivite_Code.Mayotte: + _ = match_arg_609.value + temp_montant_forfaitaire_charges_64 = True + if (((date_courante_13 >= + date_of_numbers(2022,7,1)) and + (date_courante_13 < + date_of_numbers(2023,1,1))) and + temp_montant_forfaitaire_charges_64): + if ((money_of_cents_string("3767") + + (money_of_cents_string("969") * + decimal_of_integer(nombre_personnes_a_charge_7))) > + (money_of_cents_string("3767") + + (money_of_cents_string("969") * + decimal_of_string("6.")))): + return (money_of_cents_string("3767") + + (money_of_cents_string("969") * + decimal_of_string("6."))) + else: + return (money_of_cents_string("3767") + + (money_of_cents_string("969") * + decimal_of_integer(nombre_personnes_a_charge_7))) + else: + raise EmptyError + def temp_montant_forfaitaire_charges_65(_:Unit): + match_arg_610 = residence_7 + if match_arg_610.code == Collectivite_Code.Guadeloupe: + _ = match_arg_610.value + temp_montant_forfaitaire_charges_66 = True + elif match_arg_610.code == Collectivite_Code.Guyane: + _ = match_arg_610.value + temp_montant_forfaitaire_charges_66 = False + elif match_arg_610.code == Collectivite_Code.Martinique: + _ = match_arg_610.value + temp_montant_forfaitaire_charges_66 = True + elif match_arg_610.code == Collectivite_Code.LaReunion: + _ = match_arg_610.value + temp_montant_forfaitaire_charges_66 = True + elif match_arg_610.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_610.value + temp_montant_forfaitaire_charges_66 = True + elif match_arg_610.code == Collectivite_Code.SaintMartin: + _ = match_arg_610.value + temp_montant_forfaitaire_charges_66 = True + elif match_arg_610.code == Collectivite_Code.Metropole: + _ = match_arg_610.value + temp_montant_forfaitaire_charges_66 = False + elif match_arg_610.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_610.value + temp_montant_forfaitaire_charges_66 = False + elif match_arg_610.code == Collectivite_Code.Mayotte: + _ = match_arg_610.value + temp_montant_forfaitaire_charges_66 = True + if ((date_courante_13 >= + date_of_numbers(2023,1,1)) and + temp_montant_forfaitaire_charges_66): + return (money_of_cents_string("3767") + + (money_of_cents_string("969") * + multiplicateur_majoration_charges_1)) + else: + raise EmptyError + temp_montant_forfaitaire_charges_53 = handle_default( + SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=942, start_column=11, + end_line=942, end_column=38, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'allocation logement", + "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_65, + temp_montant_forfaitaire_charges_63, + temp_montant_forfaitaire_charges_60, + temp_montant_forfaitaire_charges_58, + temp_montant_forfaitaire_charges_56], + temp_montant_forfaitaire_charges_55, + temp_montant_forfaitaire_charges_54) + except EmptyError: + def temp_montant_forfaitaire_charges_67(_:Unit): + raise EmptyError + def temp_montant_forfaitaire_charges_68(_:Unit): + return False + def temp_montant_forfaitaire_charges_69(_:Unit): + if (((date_courante_13 >= date_of_numbers(2020,10,1)) and + (date_courante_13 < date_of_numbers(2021,10,1))) and + copropriete_1): + match_arg_611 = situation_familiale_calcul_apl_7 + if match_arg_611.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_611.value + temp_montant_forfaitaire_charges_70 = money_of_cents_string("2699") + elif match_arg_611.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_611.value + temp_montant_forfaitaire_charges_70 = money_of_cents_string("5399") + return (temp_montant_forfaitaire_charges_70 + + (money_of_cents_string("1224") * + decimal_of_integer(nombre_personnes_a_charge_7))) + else: + raise EmptyError + def temp_montant_forfaitaire_charges_71(_:Unit): + if (((date_courante_13 >= date_of_numbers(2021,10,1)) and + (date_courante_13 < date_of_numbers(2022,7,1))) and + copropriete_1): + match_arg_612 = situation_familiale_calcul_apl_7 + if match_arg_612.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_612.value + temp_montant_forfaitaire_charges_72 = money_of_cents_string("2710") + elif match_arg_612.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_612.value + temp_montant_forfaitaire_charges_72 = money_of_cents_string("5422") + return (temp_montant_forfaitaire_charges_72 + + (money_of_cents_string("1229") * + decimal_of_integer(nombre_personnes_a_charge_7))) + else: + raise EmptyError + def temp_montant_forfaitaire_charges_73(_:Unit): + if ((date_courante_13 >= date_of_numbers(2022,7,1)) and + copropriete_1): + match_arg_613 = situation_familiale_calcul_apl_7 + if match_arg_613.code == SituationFamilialeCalculAPL_Code.PersonneSeule: + _ = match_arg_613.value + temp_montant_forfaitaire_charges_74 = money_of_cents_string("2805") + elif match_arg_613.code == SituationFamilialeCalculAPL_Code.Couple: + _ = match_arg_613.value + temp_montant_forfaitaire_charges_74 = money_of_cents_string("5612") + return (temp_montant_forfaitaire_charges_74 + + (money_of_cents_string("1272") * + multiplicateur_majoration_charges_1)) + else: + raise EmptyError + temp_montant_forfaitaire_charges_53 = handle_default( + SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=942, start_column=11, + end_line=942, end_column=38, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'allocation logement", + "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_73, + temp_montant_forfaitaire_charges_71, + temp_montant_forfaitaire_charges_69], + temp_montant_forfaitaire_charges_68, + temp_montant_forfaitaire_charges_67) + except EmptyError: + def temp_montant_forfaitaire_charges_75(_:Unit): + raise EmptyError + def temp_montant_forfaitaire_charges_76(_:Unit): + return False + def temp_montant_forfaitaire_charges_77(_:Unit): + if ((date_courante_13 >= date_of_numbers(2020,10,1)) and + (date_courante_13 < + date_of_numbers(2021,10,1))): + if (nombre_personnes_a_charge_7 == + integer_of_string("0")): + return money_of_cents_string("5399") + else: + return (money_of_cents_string("5399") + + (money_of_cents_string("1224") * + decimal_of_integer(nombre_personnes_a_charge_7))) + else: + raise EmptyError + def temp_montant_forfaitaire_charges_78(_:Unit): + if ((date_courante_13 >= date_of_numbers(2021,10,1)) and + (date_courante_13 < + date_of_numbers(2022,7,1))): + if (nombre_personnes_a_charge_7 == + integer_of_string("0")): + return money_of_cents_string("5422") + else: + return (money_of_cents_string("5422") + + (money_of_cents_string("1229") * + multiplicateur_majoration_charges_1)) + else: + raise EmptyError + def temp_montant_forfaitaire_charges_79(_:Unit): + if (date_courante_13 >= + date_of_numbers(2022,7,1)): + if (nombre_personnes_a_charge_7 == + integer_of_string("0")): + return money_of_cents_string("5612") + else: + return (money_of_cents_string("5612") + + (money_of_cents_string("1272") * + multiplicateur_majoration_charges_1)) + else: + raise EmptyError + temp_montant_forfaitaire_charges_53 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=942, + start_column=11, + end_line=942, end_column=38, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'allocation logement", + "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_79, + temp_montant_forfaitaire_charges_78, + temp_montant_forfaitaire_charges_77], + temp_montant_forfaitaire_charges_76, + temp_montant_forfaitaire_charges_75) + except EmptyError: + temp_montant_forfaitaire_charges_53 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=942, start_column=11, + end_line=942, end_column=38, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'allocation logement", + "Prologue : aides au logement"])) + montant_forfaitaire_charges_1 = temp_montant_forfaitaire_charges_53 try: def temp_seuil_minimal_ressources_menage(_:Unit): raise EmptyError def temp_seuil_minimal_ressources_menage_1(_:Unit): return False def temp_seuil_minimal_ressources_menage_2(_:Unit): - match_arg_529 = type_travaux_logement_1 - if match_arg_529.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: - _ = match_arg_529.value + match_arg_614 = type_travaux_logement_1 + if match_arg_614.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: + _ = match_arg_614.value temp_seuil_minimal_ressources_menage_3 = False - elif match_arg_529.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: - _ = match_arg_529.value + elif match_arg_614.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: + _ = match_arg_614.value temp_seuil_minimal_ressources_menage_3 = True - elif match_arg_529.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: - _ = match_arg_529.value + elif match_arg_614.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: + _ = match_arg_614.value temp_seuil_minimal_ressources_menage_3 = False - elif match_arg_529.code == TypeTravauxLogementR8425_Code.PasDeTravaux: - _ = match_arg_529.value + elif match_arg_614.code == TypeTravauxLogementR8425_Code.PasDeTravaux: + _ = match_arg_614.value temp_seuil_minimal_ressources_menage_3 = False if ((date_signature_pret_2 > date_of_numbers(1994,9,30)) and temp_seuil_minimal_ressources_menage_3): @@ -17697,44 +20563,44 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac else: raise EmptyError def temp_seuil_minimal_ressources_menage_4(_:Unit): - match_arg_530 = type_travaux_logement_1 - if match_arg_530.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: - _ = match_arg_530.value + match_arg_615 = type_travaux_logement_1 + if match_arg_615.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: + _ = match_arg_615.value temp_seuil_minimal_ressources_menage_5 = False - elif match_arg_530.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: - _ = match_arg_530.value + elif match_arg_615.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: + _ = match_arg_615.value temp_seuil_minimal_ressources_menage_5 = False - elif match_arg_530.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: - _ = match_arg_530.value + elif match_arg_615.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: + _ = match_arg_615.value temp_seuil_minimal_ressources_menage_5 = True - elif match_arg_530.code == TypeTravauxLogementR8425_Code.PasDeTravaux: - _ = match_arg_530.value + elif match_arg_615.code == TypeTravauxLogementR8425_Code.PasDeTravaux: + _ = match_arg_615.value temp_seuil_minimal_ressources_menage_5 = False - match_arg_531 = type_travaux_logement_1 - if match_arg_531.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: - _ = match_arg_531.value + match_arg_616 = type_travaux_logement_1 + if match_arg_616.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: + _ = match_arg_616.value temp_seuil_minimal_ressources_menage_6 = True - elif match_arg_531.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: - _ = match_arg_531.value + elif match_arg_616.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: + _ = match_arg_616.value temp_seuil_minimal_ressources_menage_6 = False - elif match_arg_531.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: - _ = match_arg_531.value + elif match_arg_616.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: + _ = match_arg_616.value temp_seuil_minimal_ressources_menage_6 = False - elif match_arg_531.code == TypeTravauxLogementR8425_Code.PasDeTravaux: - _ = match_arg_531.value + elif match_arg_616.code == TypeTravauxLogementR8425_Code.PasDeTravaux: + _ = match_arg_616.value temp_seuil_minimal_ressources_menage_6 = False - match_arg_532 = type_travaux_logement_1 - if match_arg_532.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: - _ = match_arg_532.value + match_arg_617 = type_travaux_logement_1 + if match_arg_617.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: + _ = match_arg_617.value temp_seuil_minimal_ressources_menage_7 = False - elif match_arg_532.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: - _ = match_arg_532.value + elif match_arg_617.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: + _ = match_arg_617.value temp_seuil_minimal_ressources_menage_7 = False - elif match_arg_532.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: - _ = match_arg_532.value + elif match_arg_617.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: + _ = match_arg_617.value temp_seuil_minimal_ressources_menage_7 = False - elif match_arg_532.code == TypeTravauxLogementR8425_Code.PasDeTravaux: - _ = match_arg_532.value + elif match_arg_617.code == TypeTravauxLogementR8425_Code.PasDeTravaux: + _ = match_arg_617.value temp_seuil_minimal_ressources_menage_7 = True if (((date_signature_pret_2 >= date_of_numbers(1992,9,30)) and (date_signature_pret_2 <= date_of_numbers(1994,9,30))) or @@ -17746,9 +20612,9 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac else: raise EmptyError temp_seuil_minimal_ressources_menage_8 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=945, + start_line=954, start_column=11, - end_line=945, end_column=42, + end_line=954, end_column=42, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"]), [temp_seuil_minimal_ressources_menage_4, @@ -17758,92 +20624,101 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_seuil_minimal_ressources_menage_8 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=945, start_column=11, - end_line=945, end_column=42, + start_line=954, start_column=11, + end_line=954, end_column=42, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) seuil_minimal_ressources_menage = temp_seuil_minimal_ressources_menage_8 try: - def temp_depense_nette_minimale_1(allocation_mensuelle_6:Money): + def temp_traitement_aide_finale_minoration_forfaitaire_4(aide_finale_21:Money): try: - return ((charges_mensuelles_pret + - montant_forfaitaire_charges_1) - allocation_mensuelle_6) + if ((aide_finale_21 - montant_forfaitaire_d842_6) < + money_of_cents_string("0")): + return money_of_cents_string("0") + else: + return (aide_finale_21 - montant_forfaitaire_d842_6) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=947, - start_column=11, - end_line=947, - end_column=33, + start_line=980, + start_column=10, + end_line=980, + end_column=32, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) except EmptyError: - temp_depense_nette_minimale_1 = dead_value + temp_traitement_aide_finale_minoration_forfaitaire_4 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=947, start_column=11, - end_line=947, end_column=33, + start_line=980, start_column=10, + end_line=980, end_column=32, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) - depense_nette_minimale_1 = temp_depense_nette_minimale_1 + traitement_aide_finale_minoration_forfaitaire_4 = temp_traitement_aide_finale_minoration_forfaitaire_4 try: - def temp_calcul_plafond_mensualite_d842_6_avec_copropriete(date_calcul_1:Date): + def temp_calcul_plafond_mensualite_d842_6_avec_copropriete(date_calcul_1:Date, nombre_personnes_a_charge_9:Integer): try: try: try: try: - if ((date_courante_12 >= + if ((date_courante_13 >= date_of_numbers(2020,10,1)) and - (date_courante_12 < + (date_courante_13 < date_of_numbers(2021,10,1))): if copropriete_1: return (calcul_plafond_mensualite_d842_6_base( - date_calcul_1) * + date_calcul_1, + nombre_personnes_a_charge_9) * decimal_of_string("0.75")) else: return calcul_plafond_mensualite_d842_6_base( - date_calcul_1) + date_calcul_1, + nombre_personnes_a_charge_9) else: raise EmptyError except EmptyError: - if ((date_courante_12 >= + if ((date_courante_13 >= date_of_numbers(2021,10,1)) and - (date_courante_12 < + (date_courante_13 < date_of_numbers(2022,7,1))): if copropriete_1: return (calcul_plafond_mensualite_d842_6_base( - date_calcul_1) * + date_calcul_1, + nombre_personnes_a_charge_9) * decimal_of_string("0.75")) else: return calcul_plafond_mensualite_d842_6_base( - date_calcul_1) + date_calcul_1, + nombre_personnes_a_charge_9) else: raise EmptyError except EmptyError: - if (date_courante_12 >= + if (date_courante_13 >= date_of_numbers(2022,7,1)): if copropriete_1: return (calcul_plafond_mensualite_d842_6_base( - date_calcul_1) * + date_calcul_1, + nombre_personnes_a_charge_9) * decimal_of_string("0.75")) else: return calcul_plafond_mensualite_d842_6_base( - date_calcul_1) + date_calcul_1, + nombre_personnes_a_charge_9) else: raise EmptyError except EmptyError: - if (date_courante_12 >= + if (date_courante_13 >= date_of_numbers(2020,1,1)): return calcul_plafond_mensualite_d842_6_base( - date_calcul_1) + date_calcul_1, nombre_personnes_a_charge_9) else: raise EmptyError except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=942, + start_line=950, start_column=10, - end_line=942, + end_line=950, end_column=26, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", @@ -17851,12 +20726,35 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_plafond_mensualite_d842_6_avec_copropriete = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=942, start_column=10, - end_line=942, end_column=26, + start_line=950, start_column=10, + end_line=950, end_column=26, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) calcul_plafond_mensualite_d842_6_avec_copropriete = temp_calcul_plafond_mensualite_d842_6_avec_copropriete + try: + def temp_depense_nette_minimale_1(allocation_mensuelle_6:Money): + try: + return ((charges_mensuelles_pret + + montant_forfaitaire_charges_1) - allocation_mensuelle_6) + except EmptyError: + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=956, + start_column=11, + end_line=956, + end_column=33, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'allocation logement", + "Prologue : aides au logement"])) + except EmptyError: + temp_depense_nette_minimale_1 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=956, start_column=11, + end_line=956, end_column=33, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'allocation logement", + "Prologue : aides au logement"])) + depense_nette_minimale_1 = temp_depense_nette_minimale_1 try: try: if situation_r822_11_13_17_1: @@ -17875,46 +20773,275 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_ressources_menage_arrondies_seuil = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=917, start_column=10, - end_line=917, end_column=15, + start_line=924, start_column=10, + end_line=924, end_column=15, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) ressources_menage_arrondies_seuil = temp_ressources_menage_arrondies_seuil try: - try: - if local_habite_premiere_fois_beneficiaire_1: - if (calcul_plafond_mensualite_d842_6_avec_copropriete( - date_signature_pret_2) < - calcul_plafond_mensualite_d842_6_avec_copropriete( - date_entree_logement_1)): - temp_plafond_mensualite_d842_6 = calcul_plafond_mensualite_d842_6_avec_copropriete( - date_entree_logement_1) - else: - temp_plafond_mensualite_d842_6 = calcul_plafond_mensualite_d842_6_avec_copropriete( - date_signature_pret_2) - else: - temp_plafond_mensualite_d842_6 = dead_value - raise EmptyError - except EmptyError: - temp_plafond_mensualite_d842_6 = calcul_plafond_mensualite_d842_6_avec_copropriete( - date_signature_pret_2) + def temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom(date_calcul_2:Date, nombre_personnes_a_charge_10:Integer): + try: + try: + try: + try: + try: + try: + match_arg_618 = residence_7 + if match_arg_618.code == Collectivite_Code.Guadeloupe: + _ = match_arg_618.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_1 = True + elif match_arg_618.code == Collectivite_Code.Guyane: + _ = match_arg_618.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_1 = False + elif match_arg_618.code == Collectivite_Code.Martinique: + _ = match_arg_618.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_1 = True + elif match_arg_618.code == Collectivite_Code.LaReunion: + _ = match_arg_618.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_1 = True + elif match_arg_618.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_618.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_1 = True + elif match_arg_618.code == Collectivite_Code.SaintMartin: + _ = match_arg_618.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_1 = True + elif match_arg_618.code == Collectivite_Code.Metropole: + _ = match_arg_618.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_1 = False + elif match_arg_618.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_618.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_1 = False + elif match_arg_618.code == Collectivite_Code.Mayotte: + _ = match_arg_618.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_1 = True + if (((date_courante_13 >= + date_of_numbers(2020,1,1)) and + (date_courante_13 < + date_of_numbers(2020,10,1))) and + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_1): + if (nombre_personnes_a_charge_10 >= + integer_of_string("6")): + return calcul_plafond_mensualite_d842_6_avec_copropriete( + date_calcul_2, + integer_of_string("6")) + else: + return calcul_plafond_mensualite_d842_6_avec_copropriete( + date_calcul_2, + nombre_personnes_a_charge_10) + else: + raise EmptyError + except EmptyError: + match_arg_619 = residence_7 + if match_arg_619.code == Collectivite_Code.Guadeloupe: + _ = match_arg_619.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_2 = True + elif match_arg_619.code == Collectivite_Code.Guyane: + _ = match_arg_619.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_2 = False + elif match_arg_619.code == Collectivite_Code.Martinique: + _ = match_arg_619.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_2 = True + elif match_arg_619.code == Collectivite_Code.LaReunion: + _ = match_arg_619.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_2 = True + elif match_arg_619.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_619.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_2 = True + elif match_arg_619.code == Collectivite_Code.SaintMartin: + _ = match_arg_619.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_2 = True + elif match_arg_619.code == Collectivite_Code.Metropole: + _ = match_arg_619.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_2 = False + elif match_arg_619.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_619.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_2 = False + elif match_arg_619.code == Collectivite_Code.Mayotte: + _ = match_arg_619.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_2 = True + if (((date_courante_13 >= + date_of_numbers(2020,10,1)) and + (date_courante_13 < + date_of_numbers(2021,10,1))) and + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_2): + if (nombre_personnes_a_charge_10 >= + integer_of_string("6")): + return calcul_plafond_mensualite_d842_6_avec_copropriete( + date_calcul_2, + integer_of_string("6")) + else: + return calcul_plafond_mensualite_d842_6_avec_copropriete( + date_calcul_2, + nombre_personnes_a_charge_10) + else: + raise EmptyError + except EmptyError: + match_arg_620 = residence_7 + if match_arg_620.code == Collectivite_Code.Guadeloupe: + _ = match_arg_620.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_3 = True + elif match_arg_620.code == Collectivite_Code.Guyane: + _ = match_arg_620.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_3 = False + elif match_arg_620.code == Collectivite_Code.Martinique: + _ = match_arg_620.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_3 = True + elif match_arg_620.code == Collectivite_Code.LaReunion: + _ = match_arg_620.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_3 = True + elif match_arg_620.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_620.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_3 = True + elif match_arg_620.code == Collectivite_Code.SaintMartin: + _ = match_arg_620.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_3 = True + elif match_arg_620.code == Collectivite_Code.Metropole: + _ = match_arg_620.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_3 = False + elif match_arg_620.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_620.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_3 = False + elif match_arg_620.code == Collectivite_Code.Mayotte: + _ = match_arg_620.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_3 = True + if (((date_courante_13 >= + date_of_numbers(2021,10,1)) and + (date_courante_13 < + date_of_numbers(2022,1,1))) and + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_3): + if (nombre_personnes_a_charge_10 >= + integer_of_string("6")): + return calcul_plafond_mensualite_d842_6_avec_copropriete( + date_calcul_2, + integer_of_string("6")) + else: + return calcul_plafond_mensualite_d842_6_avec_copropriete( + date_calcul_2, + nombre_personnes_a_charge_10) + else: + raise EmptyError + except EmptyError: + match_arg_621 = residence_7 + if match_arg_621.code == Collectivite_Code.Guadeloupe: + _ = match_arg_621.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_4 = True + elif match_arg_621.code == Collectivite_Code.Guyane: + _ = match_arg_621.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_4 = False + elif match_arg_621.code == Collectivite_Code.Martinique: + _ = match_arg_621.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_4 = True + elif match_arg_621.code == Collectivite_Code.LaReunion: + _ = match_arg_621.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_4 = True + elif match_arg_621.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_621.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_4 = True + elif match_arg_621.code == Collectivite_Code.SaintMartin: + _ = match_arg_621.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_4 = True + elif match_arg_621.code == Collectivite_Code.Metropole: + _ = match_arg_621.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_4 = False + elif match_arg_621.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_621.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_4 = False + elif match_arg_621.code == Collectivite_Code.Mayotte: + _ = match_arg_621.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_4 = True + if (((date_courante_13 >= + date_of_numbers(2022,1,1)) and + (date_courante_13 < + date_of_numbers(2022,7,1))) and + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_4): + if (nombre_personnes_a_charge_10 >= + integer_of_string("6")): + return calcul_plafond_mensualite_d842_6_avec_copropriete( + date_calcul_2, + integer_of_string("6")) + else: + return calcul_plafond_mensualite_d842_6_avec_copropriete( + date_calcul_2, + nombre_personnes_a_charge_10) + else: + raise EmptyError + except EmptyError: + match_arg_622 = residence_7 + if match_arg_622.code == Collectivite_Code.Guadeloupe: + _ = match_arg_622.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_5 = True + elif match_arg_622.code == Collectivite_Code.Guyane: + _ = match_arg_622.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_5 = False + elif match_arg_622.code == Collectivite_Code.Martinique: + _ = match_arg_622.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_5 = True + elif match_arg_622.code == Collectivite_Code.LaReunion: + _ = match_arg_622.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_5 = True + elif match_arg_622.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_622.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_5 = True + elif match_arg_622.code == Collectivite_Code.SaintMartin: + _ = match_arg_622.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_5 = True + elif match_arg_622.code == Collectivite_Code.Metropole: + _ = match_arg_622.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_5 = False + elif match_arg_622.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_622.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_5 = False + elif match_arg_622.code == Collectivite_Code.Mayotte: + _ = match_arg_622.value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_5 = True + if (((date_courante_13 >= + date_of_numbers(2022,7,1)) and + (date_courante_13 < + date_of_numbers(2023,1,1))) and + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom_5): + if (nombre_personnes_a_charge_10 >= + integer_of_string("6")): + return calcul_plafond_mensualite_d842_6_avec_copropriete( + date_calcul_2, integer_of_string("6")) + else: + return calcul_plafond_mensualite_d842_6_avec_copropriete( + date_calcul_2, + nombre_personnes_a_charge_10) + else: + raise EmptyError + except EmptyError: + if (date_courante_13 >= + date_of_numbers(2020,1,1)): + return calcul_plafond_mensualite_d842_6_avec_copropriete( + date_calcul_2, nombre_personnes_a_charge_10) + else: + raise EmptyError + except EmptyError: + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=951, + start_column=10, + end_line=951, + end_column=33, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'allocation logement", + "Prologue : aides au logement"])) except EmptyError: - temp_plafond_mensualite_d842_6 = dead_value + temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=938, start_column=11, - end_line=938, end_column=36, + start_line=951, start_column=10, + end_line=951, end_column=33, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) - plafond_mensualite_d842_6 = temp_plafond_mensualite_d842_6 + calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom = temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom try: - temp_calcul_equivalence_loyer_minimale_dot_date_courante_3 = date_courante_12 + temp_calcul_equivalence_loyer_minimale_dot_date_courante_3 = date_courante_13 except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_date_courante_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1000, - start_column=14, end_line=1000, + start_line=1010, + start_column=14, end_line=1010, end_column=61, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", @@ -17925,8 +21052,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_ressources_menage_arrondies_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=4441, - start_column=14, end_line=4441, + start_line=4443, + start_column=14, end_line=4443, end_column=75, law_headings=["Article D842-6", "Section 2 : Accession à la propriété", @@ -17941,8 +21068,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_condition_2_du_832_25_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=4440, - start_column=14, end_line=4440, + start_line=4442, + start_column=14, end_line=4442, end_column=69, law_headings=["Article D842-6", "Section 2 : Accession à la propriété", @@ -17957,8 +21084,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_n_nombre_parts_d832_25_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=4443, - start_column=14, end_line=4443, + start_line=4445, + start_column=14, end_line=4445, end_column=70, law_headings=["Article D842-6", "Section 2 : Accession à la propriété", @@ -17979,8 +21106,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_apl_logement_foyer_dot_type_logement_foyer_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=982, start_column=14, - end_line=982, end_column=59, + start_line=992, start_column=14, + end_line=992, end_column=59, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -17990,8 +21117,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_apl_logement_foyer_dot_date_conventionnement_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=984, start_column=14, - end_line=984, end_column=61, + start_line=994, start_column=14, + end_line=994, end_column=61, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -18001,8 +21128,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_apl_logement_foyer_dot_ressources_menage_arrondies_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=988, start_column=14, - end_line=988, end_column=67, + start_line=998, start_column=14, + end_line=998, end_column=67, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -18012,8 +21139,9 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_apl_logement_foyer_dot_nombre_personnes_a_charge_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=990, start_column=14, - end_line=990, end_column=65, + start_line=1000, + start_column=14, end_line=1000, + end_column=65, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -18023,8 +21151,9 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_apl_logement_foyer_dot_situation_familiale_calcul_apl_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=992, start_column=14, - end_line=992, end_column=70, + start_line=1002, + start_column=14, end_line=1002, + end_column=70, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -18034,19 +21163,21 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_apl_logement_foyer_dot_zone_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=994, start_column=14, - end_line=994, end_column=44, + start_line=1004, + start_column=14, end_line=1004, + end_column=44, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) calcul_apl_logement_foyer_dot_zone_1 = temp_calcul_apl_logement_foyer_dot_zone_1 try: - temp_calcul_apl_logement_foyer_dot_date_courante_1 = date_courante_12 + temp_calcul_apl_logement_foyer_dot_date_courante_1 = date_courante_13 except EmptyError: temp_calcul_apl_logement_foyer_dot_date_courante_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=997, start_column=14, - end_line=997, end_column=53, + start_line=1007, + start_column=14, end_line=1007, + end_column=53, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -18056,8 +21187,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_apl_logement_foyer_dot_redevance_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=986, start_column=14, - end_line=986, end_column=49, + start_line=996, start_column=14, + end_line=996, end_column=49, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -18067,8 +21198,9 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_apl_logement_foyer_dot_residence_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=996, start_column=14, - end_line=996, end_column=49, + start_line=1006, + start_column=14, end_line=1006, + end_column=49, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -18078,33 +21210,33 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac calcul_apl_logement_foyer_dot_condition_2_du_832_25_1 = temp_calcul_apl_logement_foyer_dot_condition_2_du_832_25_1 def temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_3(_:Unit): try: - match_arg_533 = residence_7 - if match_arg_533.code == Collectivite_Code.Guadeloupe: - _ = match_arg_533.value + match_arg_623 = residence_7 + if match_arg_623.code == Collectivite_Code.Guadeloupe: + _ = match_arg_623.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_4 = False - elif match_arg_533.code == Collectivite_Code.Guyane: - _ = match_arg_533.value + elif match_arg_623.code == Collectivite_Code.Guyane: + _ = match_arg_623.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_4 = False - elif match_arg_533.code == Collectivite_Code.Martinique: - _ = match_arg_533.value + elif match_arg_623.code == Collectivite_Code.Martinique: + _ = match_arg_623.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_4 = False - elif match_arg_533.code == Collectivite_Code.LaReunion: - _ = match_arg_533.value + elif match_arg_623.code == Collectivite_Code.LaReunion: + _ = match_arg_623.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_4 = False - elif match_arg_533.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_533.value + elif match_arg_623.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_623.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_4 = True - elif match_arg_533.code == Collectivite_Code.SaintMartin: - _ = match_arg_533.value + elif match_arg_623.code == Collectivite_Code.SaintMartin: + _ = match_arg_623.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_4 = True - elif match_arg_533.code == Collectivite_Code.Metropole: - _ = match_arg_533.value + elif match_arg_623.code == Collectivite_Code.Metropole: + _ = match_arg_623.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_4 = False - elif match_arg_533.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_533.value + elif match_arg_623.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_623.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_4 = False - elif match_arg_533.code == Collectivite_Code.Mayotte: - _ = match_arg_533.value + elif match_arg_623.code == Collectivite_Code.Mayotte: + _ = match_arg_623.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_4 = False if temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_4: temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_5 = True @@ -18112,33 +21244,33 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_5 = dead_value raise EmptyError except EmptyError: - match_arg_534 = residence_7 - if match_arg_534.code == Collectivite_Code.Guadeloupe: - _ = match_arg_534.value + match_arg_624 = residence_7 + if match_arg_624.code == Collectivite_Code.Guadeloupe: + _ = match_arg_624.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_6 = True - elif match_arg_534.code == Collectivite_Code.Guyane: - _ = match_arg_534.value + elif match_arg_624.code == Collectivite_Code.Guyane: + _ = match_arg_624.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_6 = True - elif match_arg_534.code == Collectivite_Code.Martinique: - _ = match_arg_534.value + elif match_arg_624.code == Collectivite_Code.Martinique: + _ = match_arg_624.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_6 = True - elif match_arg_534.code == Collectivite_Code.LaReunion: - _ = match_arg_534.value + elif match_arg_624.code == Collectivite_Code.LaReunion: + _ = match_arg_624.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_6 = True - elif match_arg_534.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_534.value + elif match_arg_624.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_624.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_6 = False - elif match_arg_534.code == Collectivite_Code.SaintMartin: - _ = match_arg_534.value + elif match_arg_624.code == Collectivite_Code.SaintMartin: + _ = match_arg_624.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_6 = False - elif match_arg_534.code == Collectivite_Code.Metropole: - _ = match_arg_534.value + elif match_arg_624.code == Collectivite_Code.Metropole: + _ = match_arg_624.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_6 = False - elif match_arg_534.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_534.value + elif match_arg_624.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_624.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_6 = False - elif match_arg_534.code == Collectivite_Code.Mayotte: - _ = match_arg_534.value + elif match_arg_624.code == Collectivite_Code.Mayotte: + _ = match_arg_624.value temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_6 = True if temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_6: temp_calcul_apl_logement_foyer_dot_limitation_majoration_personnes_a_charge_5 = True @@ -18186,34 +21318,46 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_seuil_minimal_depense_nette_minimale = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=944, start_column=11, - end_line=944, end_column=47, + start_line=953, start_column=11, + end_line=953, end_column=47, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) seuil_minimal_depense_nette_minimale = temp_seuil_minimal_depense_nette_minimale try: - if (mensualite_principale_1 > - plafond_mensualite_d842_6): - temp_mensualite_eligible_1 = plafond_mensualite_d842_6 - else: - temp_mensualite_eligible_1 = mensualite_principale_1 + try: + if local_habite_premiere_fois_beneficiaire_1: + if (calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom( + date_signature_pret_2, nombre_personnes_a_charge_7) < + calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom( + date_entree_logement_1, nombre_personnes_a_charge_7)): + temp_plafond_mensualite_d842_6 = calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom( + date_entree_logement_1, nombre_personnes_a_charge_7) + else: + temp_plafond_mensualite_d842_6 = calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom( + date_signature_pret_2, nombre_personnes_a_charge_7) + else: + temp_plafond_mensualite_d842_6 = dead_value + raise EmptyError + except EmptyError: + temp_plafond_mensualite_d842_6 = calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom( + date_signature_pret_2, nombre_personnes_a_charge_7) except EmptyError: - temp_mensualite_eligible_1 = dead_value + temp_plafond_mensualite_d842_6 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=934, start_column=11, - end_line=934, end_column=30, + start_line=945, start_column=11, + end_line=945, end_column=36, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) - mensualite_eligible_1 = temp_mensualite_eligible_1 + plafond_mensualite_d842_6 = temp_plafond_mensualite_d842_6 try: temp_mensualite_minimale_10 = calcul_equivalence_loyer_minimale_dot_montant_3 except EmptyError: temp_mensualite_minimale_10 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=936, start_column=11, - end_line=936, end_column=30, + start_line=943, start_column=11, + end_line=943, end_column=30, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -18223,8 +21367,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_coefficient_prise_en_charge_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=937, start_column=11, - end_line=937, end_column=38, + start_line=944, start_column=11, + end_line=944, end_column=38, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -18240,9 +21384,9 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac return money_of_cents_string("0") except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=949, + start_line=958, start_column=11, - end_line=949, + end_line=958, end_column=44, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", @@ -18250,25 +21394,27 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_abattement_depense_nette_minimale_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=949, start_column=11, - end_line=949, end_column=44, + start_line=958, start_column=11, + end_line=958, end_column=44, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) abattement_depense_nette_minimale_1 = temp_abattement_depense_nette_minimale_1 try: - temp_aide_finale_formule_6 = (((mensualite_eligible_1 + - montant_forfaitaire_charges_1) - mensualite_minimale_1) * - coefficient_prise_en_charge_1) + if (mensualite_principale_1 > + plafond_mensualite_d842_6): + temp_mensualite_eligible_1 = plafond_mensualite_d842_6 + else: + temp_mensualite_eligible_1 = mensualite_principale_1 except EmptyError: - temp_aide_finale_formule_6 = dead_value + temp_mensualite_eligible_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=966, start_column=12, - end_line=966, end_column=31, + start_line=941, start_column=11, + end_line=941, end_column=30, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) - aide_finale_formule_5 = temp_aide_finale_formule_6 + mensualite_eligible_1 = temp_mensualite_eligible_1 try: def temp_traitement_aide_finale_depense_nette_minimale_1(aide_finale_22:Money): try: @@ -18283,9 +21429,9 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac aide_finale_22))) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=971, + start_line=981, start_column=10, - end_line=971, + end_line=981, end_column=32, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", @@ -18293,12 +21439,25 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_traitement_aide_finale_depense_nette_minimale_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=971, start_column=10, - end_line=971, end_column=32, + start_line=981, start_column=10, + end_line=981, end_column=32, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) traitement_aide_finale_depense_nette_minimale_1 = temp_traitement_aide_finale_depense_nette_minimale_1 + try: + temp_aide_finale_formule_6 = (((mensualite_eligible_1 + + montant_forfaitaire_charges_1) - mensualite_minimale_1) * + coefficient_prise_en_charge_1) + except EmptyError: + temp_aide_finale_formule_6 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", + start_line=976, start_column=12, + end_line=976, end_column=31, + law_headings=["Secteur accession à la propriété", + "Calcul du montant de l'allocation logement", + "Prologue : aides au logement"])) + aide_finale_formule_5 = temp_aide_finale_formule_6 try: def temp_traitement_aide_finale_contributions_sociales_arrondi_4(aide_finale_23:Money): try: @@ -18321,9 +21480,9 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac return money_of_cents_string("0") except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=972, + start_line=982, start_column=10, - end_line=972, + end_line=982, end_column=40, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", @@ -18331,8 +21490,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_traitement_aide_finale_contributions_sociales_arrondi_4 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=972, start_column=10, - end_line=972, end_column=40, + start_line=982, start_column=10, + end_line=982, end_column=40, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -18349,9 +21508,9 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac aide_finale_24) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=973, + start_line=983, start_column=10, - end_line=973, + end_line=983, end_column=25, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", @@ -18359,8 +21518,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_traitement_aide_finale_montant_minimal_4 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=973, start_column=10, - end_line=973, end_column=25, + start_line=983, start_column=10, + end_line=983, end_column=25, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -18370,35 +21529,35 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp___14 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1005, - start_column=13, end_line=1005, + start_line=1015, + start_column=13, end_line=1015, end_column=48, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) if not (temp___14): raise AssertionFailure(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1005, - start_column=13, end_line=1005, + start_line=1015, + start_column=13, end_line=1015, end_column=48, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) try: - temp___15 = (date_courante_12 >= date_of_numbers(2021,10,1)) + temp___15 = (date_courante_13 >= date_of_numbers(2021,10,1)) except EmptyError: temp___15 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1004, - start_column=13, end_line=1004, + start_line=1014, + start_column=13, end_line=1014, end_column=42, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) if not (temp___15): raise AssertionFailure(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1004, - start_column=13, end_line=1004, + start_line=1014, + start_column=13, end_line=1014, end_column=42, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", @@ -18411,37 +21570,37 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal type_aide_2 = calcul_aide_personnalisee_logement_in.type_aide_in ressources_menage_sans_arrondi = calcul_aide_personnalisee_logement_in.ressources_menage_sans_arrondi_in situation_familiale_1 = calcul_aide_personnalisee_logement_in.situation_familiale_in - nombre_personnes_a_charge_8 = calcul_aide_personnalisee_logement_in.nombre_personnes_a_charge_in + nombre_personnes_a_charge_11 = calcul_aide_personnalisee_logement_in.nombre_personnes_a_charge_in zone_6 = calcul_aide_personnalisee_logement_in.zone_in - date_courante_13 = calcul_aide_personnalisee_logement_in.date_courante_in + date_courante_14 = calcul_aide_personnalisee_logement_in.date_courante_in residence_8 = calcul_aide_personnalisee_logement_in.residence_in try: - match_arg_535 = mode_occupation_2 - if match_arg_535.code == ModeOccupation_Code.Locataire: - location = match_arg_535.value + match_arg_625 = mode_occupation_2 + if match_arg_625.code == ModeOccupation_Code.Locataire: + location = match_arg_625.value temp_categorie_calcul_apl = CategorieCalculAPL(CategorieCalculAPL_Code.Location, location) - elif match_arg_535.code == ModeOccupation_Code.ResidentLogementFoyer: - logementfoyer = match_arg_535.value + elif match_arg_625.code == ModeOccupation_Code.ResidentLogementFoyer: + logementfoyer = match_arg_625.value temp_categorie_calcul_apl = CategorieCalculAPL(CategorieCalculAPL_Code.LogementFoyer, logementfoyer) - elif match_arg_535.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - proprietaire = match_arg_535.value + elif match_arg_625.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + proprietaire = match_arg_625.value temp_categorie_calcul_apl = CategorieCalculAPL(CategorieCalculAPL_Code.AccessionPropriete, proprietaire) - elif match_arg_535.code == ModeOccupation_Code.SousLocataire: - location_1 = match_arg_535.value + elif match_arg_625.code == ModeOccupation_Code.SousLocataire: + location_1 = match_arg_625.value temp_categorie_calcul_apl = CategorieCalculAPL(CategorieCalculAPL_Code.Location, location_1) - elif match_arg_535.code == ModeOccupation_Code.LocationAccession: - proprietaire_1 = match_arg_535.value + elif match_arg_625.code == ModeOccupation_Code.LocationAccession: + proprietaire_1 = match_arg_625.value temp_categorie_calcul_apl = CategorieCalculAPL(CategorieCalculAPL_Code.AccessionPropriete, proprietaire_1) except EmptyError: temp_categorie_calcul_apl = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=819, start_column=11, - end_line=819, end_column=31, + start_line=826, start_column=11, + end_line=826, end_column=31, law_headings=["Tous secteurs", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -18453,44 +21612,44 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_ressources_menage_avec_arrondi = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=812, start_column=10, - end_line=812, end_column=22, + start_line=819, start_column=10, + end_line=819, end_column=22, law_headings=["Tous secteurs", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) ressources_menage_avec_arrondi = temp_ressources_menage_avec_arrondi try: - match_arg_536 = situation_familiale_1 - if match_arg_536.code == SituationFamiliale_Code.Celibataire: - _ = match_arg_536.value + match_arg_626 = situation_familiale_1 + if match_arg_626.code == SituationFamiliale_Code.Celibataire: + _ = match_arg_626.value temp_situation_familiale_calcul_apl = SituationFamilialeCalculAPL(SituationFamilialeCalculAPL_Code.PersonneSeule, Unit()) - elif match_arg_536.code == SituationFamiliale_Code.Maries: - _ = match_arg_536.value + elif match_arg_626.code == SituationFamiliale_Code.Maries: + _ = match_arg_626.value temp_situation_familiale_calcul_apl = SituationFamilialeCalculAPL(SituationFamilialeCalculAPL_Code.Couple, Unit()) - elif match_arg_536.code == SituationFamiliale_Code.Pacses: - _ = match_arg_536.value + elif match_arg_626.code == SituationFamiliale_Code.Pacses: + _ = match_arg_626.value temp_situation_familiale_calcul_apl = SituationFamilialeCalculAPL(SituationFamilialeCalculAPL_Code.Couple, Unit()) - elif match_arg_536.code == SituationFamiliale_Code.Concubins: - _ = match_arg_536.value + elif match_arg_626.code == SituationFamiliale_Code.Concubins: + _ = match_arg_626.value temp_situation_familiale_calcul_apl = SituationFamilialeCalculAPL(SituationFamilialeCalculAPL_Code.Couple, Unit()) - elif match_arg_536.code == SituationFamiliale_Code.CelibataireSepareDeFait: - _ = match_arg_536.value + elif match_arg_626.code == SituationFamiliale_Code.CelibataireSepareDeFait: + _ = match_arg_626.value temp_situation_familiale_calcul_apl = SituationFamilialeCalculAPL(SituationFamilialeCalculAPL_Code.PersonneSeule, Unit()) - elif match_arg_536.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: - _ = match_arg_536.value + elif match_arg_626.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: + _ = match_arg_626.value temp_situation_familiale_calcul_apl = SituationFamilialeCalculAPL(SituationFamilialeCalculAPL_Code.Couple, Unit()) except EmptyError: temp_situation_familiale_calcul_apl = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=820, start_column=11, - end_line=820, end_column=41, + start_line=827, start_column=11, + end_line=827, end_column=41, law_headings=["Tous secteurs", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -18498,66 +21657,66 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal situation_familiale_calcul_apl_8 = temp_situation_familiale_calcul_apl try: try: - match_arg_537 = categorie_calcul_apl - if match_arg_537.code == CategorieCalculAPL_Code.Location: - _ = match_arg_537.value + match_arg_627 = categorie_calcul_apl + if match_arg_627.code == CategorieCalculAPL_Code.Location: + _ = match_arg_627.value temp_sous_calcul_traitement = False - elif match_arg_537.code == CategorieCalculAPL_Code.AccessionPropriete: - _ = match_arg_537.value + elif match_arg_627.code == CategorieCalculAPL_Code.AccessionPropriete: + _ = match_arg_627.value temp_sous_calcul_traitement = False - elif match_arg_537.code == CategorieCalculAPL_Code.LogementFoyer: - _ = match_arg_537.value + elif match_arg_627.code == CategorieCalculAPL_Code.LogementFoyer: + _ = match_arg_627.value temp_sous_calcul_traitement = True - match_arg_538 = residence_8 - if match_arg_538.code == Collectivite_Code.Guadeloupe: - _ = match_arg_538.value + match_arg_628 = residence_8 + if match_arg_628.code == Collectivite_Code.Guadeloupe: + _ = match_arg_628.value temp_sous_calcul_traitement_1 = False - elif match_arg_538.code == Collectivite_Code.Guyane: - _ = match_arg_538.value + elif match_arg_628.code == Collectivite_Code.Guyane: + _ = match_arg_628.value temp_sous_calcul_traitement_1 = False - elif match_arg_538.code == Collectivite_Code.Martinique: - _ = match_arg_538.value + elif match_arg_628.code == Collectivite_Code.Martinique: + _ = match_arg_628.value temp_sous_calcul_traitement_1 = False - elif match_arg_538.code == Collectivite_Code.LaReunion: - _ = match_arg_538.value + elif match_arg_628.code == Collectivite_Code.LaReunion: + _ = match_arg_628.value temp_sous_calcul_traitement_1 = False - elif match_arg_538.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_538.value + elif match_arg_628.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_628.value temp_sous_calcul_traitement_1 = False - elif match_arg_538.code == Collectivite_Code.SaintMartin: - _ = match_arg_538.value + elif match_arg_628.code == Collectivite_Code.SaintMartin: + _ = match_arg_628.value temp_sous_calcul_traitement_1 = False - elif match_arg_538.code == Collectivite_Code.Metropole: - _ = match_arg_538.value + elif match_arg_628.code == Collectivite_Code.Metropole: + _ = match_arg_628.value temp_sous_calcul_traitement_1 = False - elif match_arg_538.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_538.value + elif match_arg_628.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_628.value temp_sous_calcul_traitement_1 = True - elif match_arg_538.code == Collectivite_Code.Mayotte: - _ = match_arg_538.value + elif match_arg_628.code == Collectivite_Code.Mayotte: + _ = match_arg_628.value temp_sous_calcul_traitement_1 = False if (temp_sous_calcul_traitement_1 and temp_sous_calcul_traitement): - match_arg_539 = categorie_calcul_apl - if match_arg_539.code == CategorieCalculAPL_Code.Location: - _ = match_arg_539.value + match_arg_629 = categorie_calcul_apl + if match_arg_629.code == CategorieCalculAPL_Code.Location: + _ = match_arg_629.value temp_sous_calcul_traitement_2 = TraitementFormuleAideFinale(aide_finale_formule = money_of_cents_string("0"), traitement_aide_finale = traitement_nul_tout_le_temps) - elif match_arg_539.code == CategorieCalculAPL_Code.AccessionPropriete: - _ = match_arg_539.value + elif match_arg_629.code == CategorieCalculAPL_Code.AccessionPropriete: + _ = match_arg_629.value temp_sous_calcul_traitement_2 = TraitementFormuleAideFinale(aide_finale_formule = money_of_cents_string("0"), traitement_aide_finale = traitement_nul_tout_le_temps) - elif match_arg_539.code == CategorieCalculAPL_Code.LogementFoyer: - logement_foyer_ = match_arg_539.value + elif match_arg_629.code == CategorieCalculAPL_Code.LogementFoyer: + logement_foyer_ = match_arg_629.value def temp_sous_calcul_traitement_3(param0:Money): try: temp_sous_calcul_traitement_4 = logement_foyer_.redevance except EmptyError: temp_sous_calcul_traitement_4 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, + start_line=6381, start_column=31, - end_line=6376, + end_line=6381, end_column=56, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18571,9 +21730,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_5 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6370, + start_line=6375, start_column=43, - end_line=6370, + end_line=6375, end_column=60, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18587,9 +21746,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_6 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, + start_line=6383, start_column=15, - end_line=6378, + end_line=6383, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18599,13 +21758,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_7 = date_courante_13 + temp_sous_calcul_traitement_7 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_7 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, + start_line=6378, start_column=29, - end_line=6373, + end_line=6378, end_column=42, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18615,13 +21774,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_8 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_8 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_8 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6371, + start_line=6376, start_column=41, - end_line=6371, + end_line=6376, end_column=66, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18635,9 +21794,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_9 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, + start_line=6379, start_column=46, - end_line=6374, + end_line=6379, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18651,9 +21810,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_10 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, + start_line=6377, start_column=20, - end_line=6372, + end_line=6377, end_column=24, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18667,9 +21826,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_11 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6382, + start_line=6387, start_column=36, - end_line=6382, + end_line=6387, end_column=40, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18683,9 +21842,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_12 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6389, + start_line=6394, start_column=72, - end_line=6389, + end_line=6394, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18699,9 +21858,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_13 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6390, + start_line=6395, start_column=25, - end_line=6390, + end_line=6395, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18715,9 +21874,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_14 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6386, + start_line=6391, start_column=26, - end_line=6386, + end_line=6391, end_column=30, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18731,9 +21890,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_15 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6393, + start_line=6398, start_column=42, - end_line=6393, + end_line=6398, end_column=45, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18747,9 +21906,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_16 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6394, + start_line=6399, start_column=38, - end_line=6394, + end_line=6399, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18763,9 +21922,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_17 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, + start_line=6400, start_column=25, - end_line=6395, + end_line=6400, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18795,9 +21954,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_18 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, + start_line=6381, start_column=31, - end_line=6376, + end_line=6381, end_column=56, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18811,9 +21970,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_19 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6370, + start_line=6375, start_column=43, - end_line=6370, + end_line=6375, end_column=60, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18827,9 +21986,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_20 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, + start_line=6383, start_column=15, - end_line=6378, + end_line=6383, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18839,13 +21998,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_21 = date_courante_13 + temp_sous_calcul_traitement_21 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_21 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, + start_line=6378, start_column=29, - end_line=6373, + end_line=6378, end_column=42, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18855,13 +22014,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_22 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_22 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_22 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6371, + start_line=6376, start_column=41, - end_line=6371, + end_line=6376, end_column=66, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18875,9 +22034,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_23 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, + start_line=6379, start_column=46, - end_line=6374, + end_line=6379, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18891,9 +22050,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_24 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, + start_line=6377, start_column=20, - end_line=6372, + end_line=6377, end_column=24, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18907,9 +22066,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_25 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6382, + start_line=6387, start_column=36, - end_line=6382, + end_line=6387, end_column=40, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18923,9 +22082,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_26 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6389, + start_line=6394, start_column=72, - end_line=6389, + end_line=6394, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18939,9 +22098,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_27 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6390, + start_line=6395, start_column=25, - end_line=6390, + end_line=6395, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18955,9 +22114,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_28 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6386, + start_line=6391, start_column=26, - end_line=6386, + end_line=6391, end_column=30, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18971,9 +22130,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_29 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6393, + start_line=6398, start_column=42, - end_line=6393, + end_line=6398, end_column=45, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -18987,9 +22146,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_30 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6394, + start_line=6399, start_column=38, - end_line=6394, + end_line=6399, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19003,9 +22162,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_31 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, + start_line=6400, start_column=25, - end_line=6395, + end_line=6400, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19019,9 +22178,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_32 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, + start_line=6381, start_column=31, - end_line=6376, + end_line=6381, end_column=56, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19035,9 +22194,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_33 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6370, + start_line=6375, start_column=43, - end_line=6370, + end_line=6375, end_column=60, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19051,9 +22210,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_34 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, + start_line=6383, start_column=15, - end_line=6378, + end_line=6383, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19063,13 +22222,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_35 = date_courante_13 + temp_sous_calcul_traitement_35 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_35 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, + start_line=6378, start_column=29, - end_line=6373, + end_line=6378, end_column=42, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19079,13 +22238,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_36 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_36 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_36 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6371, + start_line=6376, start_column=41, - end_line=6371, + end_line=6376, end_column=66, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19099,9 +22258,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_37 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, + start_line=6379, start_column=46, - end_line=6374, + end_line=6379, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19115,9 +22274,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_38 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, + start_line=6377, start_column=20, - end_line=6372, + end_line=6377, end_column=24, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19131,9 +22290,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_39 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6382, + start_line=6387, start_column=36, - end_line=6382, + end_line=6387, end_column=40, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19147,9 +22306,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_40 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6389, + start_line=6394, start_column=72, - end_line=6389, + end_line=6394, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19163,9 +22322,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_41 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6390, + start_line=6395, start_column=25, - end_line=6390, + end_line=6395, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19179,9 +22338,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_42 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6386, + start_line=6391, start_column=26, - end_line=6386, + end_line=6391, end_column=30, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19195,9 +22354,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_43 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6393, + start_line=6398, start_column=42, - end_line=6393, + end_line=6398, end_column=45, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19211,9 +22370,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_44 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6394, + start_line=6399, start_column=38, - end_line=6394, + end_line=6399, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19227,9 +22386,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_45 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, + start_line=6400, start_column=25, - end_line=6395, + end_line=6400, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19243,9 +22402,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_46 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, + start_line=6381, start_column=31, - end_line=6376, + end_line=6381, end_column=56, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19259,9 +22418,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_47 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6370, + start_line=6375, start_column=43, - end_line=6370, + end_line=6375, end_column=60, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19275,9 +22434,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_48 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, + start_line=6383, start_column=15, - end_line=6378, + end_line=6383, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19287,13 +22446,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_49 = date_courante_13 + temp_sous_calcul_traitement_49 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_49 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, + start_line=6378, start_column=29, - end_line=6373, + end_line=6378, end_column=42, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19303,13 +22462,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_50 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_50 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_50 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6371, + start_line=6376, start_column=41, - end_line=6371, + end_line=6376, end_column=66, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19323,9 +22482,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_51 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, + start_line=6379, start_column=46, - end_line=6374, + end_line=6379, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19339,9 +22498,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_52 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, + start_line=6377, start_column=20, - end_line=6372, + end_line=6377, end_column=24, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19355,9 +22514,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_53 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6382, + start_line=6387, start_column=36, - end_line=6382, + end_line=6387, end_column=40, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19371,9 +22530,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_54 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6389, + start_line=6394, start_column=72, - end_line=6389, + end_line=6394, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19387,9 +22546,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_55 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6390, + start_line=6395, start_column=25, - end_line=6390, + end_line=6395, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19403,9 +22562,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_56 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6386, + start_line=6391, start_column=26, - end_line=6386, + end_line=6391, end_column=30, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19419,9 +22578,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_57 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6393, + start_line=6398, start_column=42, - end_line=6393, + end_line=6398, end_column=45, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19435,9 +22594,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_58 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6394, + start_line=6399, start_column=38, - end_line=6394, + end_line=6399, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19451,9 +22610,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_59 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, + start_line=6400, start_column=25, - end_line=6395, + end_line=6400, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19467,9 +22626,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_60 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, + start_line=6381, start_column=31, - end_line=6376, + end_line=6381, end_column=56, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19483,9 +22642,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_61 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6370, + start_line=6375, start_column=43, - end_line=6370, + end_line=6375, end_column=60, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19499,9 +22658,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_62 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, + start_line=6383, start_column=15, - end_line=6378, + end_line=6383, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19511,13 +22670,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_63 = date_courante_13 + temp_sous_calcul_traitement_63 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_63 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, + start_line=6378, start_column=29, - end_line=6373, + end_line=6378, end_column=42, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19527,13 +22686,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_64 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_64 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_64 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6371, + start_line=6376, start_column=41, - end_line=6371, + end_line=6376, end_column=66, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19547,9 +22706,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_65 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, + start_line=6379, start_column=46, - end_line=6374, + end_line=6379, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19563,9 +22722,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_66 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, + start_line=6377, start_column=20, - end_line=6372, + end_line=6377, end_column=24, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19579,9 +22738,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_67 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6382, + start_line=6387, start_column=36, - end_line=6382, + end_line=6387, end_column=40, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19595,9 +22754,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_68 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6389, + start_line=6394, start_column=72, - end_line=6389, + end_line=6394, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19611,9 +22770,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_69 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6390, + start_line=6395, start_column=25, - end_line=6390, + end_line=6395, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19627,9 +22786,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_70 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6386, + start_line=6391, start_column=26, - end_line=6386, + end_line=6391, end_column=30, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19643,9 +22802,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_71 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6393, + start_line=6398, start_column=42, - end_line=6393, + end_line=6398, end_column=45, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19659,9 +22818,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_72 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6394, + start_line=6399, start_column=38, - end_line=6394, + end_line=6399, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19675,9 +22834,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_73 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, + start_line=6400, start_column=25, - end_line=6395, + end_line=6400, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19691,9 +22850,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_74 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, + start_line=6381, start_column=31, - end_line=6376, + end_line=6381, end_column=56, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19707,9 +22866,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_75 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6370, + start_line=6375, start_column=43, - end_line=6370, + end_line=6375, end_column=60, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19723,9 +22882,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_76 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, + start_line=6383, start_column=15, - end_line=6378, + end_line=6383, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19735,13 +22894,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_77 = date_courante_13 + temp_sous_calcul_traitement_77 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_77 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, + start_line=6378, start_column=29, - end_line=6373, + end_line=6378, end_column=42, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19751,13 +22910,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_78 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_78 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_78 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6371, + start_line=6376, start_column=41, - end_line=6371, + end_line=6376, end_column=66, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19771,9 +22930,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_79 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, + start_line=6379, start_column=46, - end_line=6374, + end_line=6379, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19787,9 +22946,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_80 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, + start_line=6377, start_column=20, - end_line=6372, + end_line=6377, end_column=24, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19803,9 +22962,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_81 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6382, + start_line=6387, start_column=36, - end_line=6382, + end_line=6387, end_column=40, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19819,9 +22978,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_82 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6389, + start_line=6394, start_column=72, - end_line=6389, + end_line=6394, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19835,9 +22994,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_83 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6390, + start_line=6395, start_column=25, - end_line=6390, + end_line=6395, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19851,9 +23010,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_84 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6386, + start_line=6391, start_column=26, - end_line=6386, + end_line=6391, end_column=30, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19867,9 +23026,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_85 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6393, + start_line=6398, start_column=42, - end_line=6393, + end_line=6398, end_column=45, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19883,9 +23042,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_86 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6394, + start_line=6399, start_column=38, - end_line=6394, + end_line=6399, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19899,9 +23058,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_87 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, + start_line=6400, start_column=25, - end_line=6395, + end_line=6400, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19915,9 +23074,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_88 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, + start_line=6381, start_column=31, - end_line=6376, + end_line=6381, end_column=56, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19931,9 +23090,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_89 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6370, + start_line=6375, start_column=43, - end_line=6370, + end_line=6375, end_column=60, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19947,9 +23106,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_90 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, + start_line=6383, start_column=15, - end_line=6378, + end_line=6383, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19959,13 +23118,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_91 = date_courante_13 + temp_sous_calcul_traitement_91 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_91 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, + start_line=6378, start_column=29, - end_line=6373, + end_line=6378, end_column=42, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19975,13 +23134,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_92 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_92 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_92 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6371, + start_line=6376, start_column=41, - end_line=6371, + end_line=6376, end_column=66, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -19995,9 +23154,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_93 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, + start_line=6379, start_column=46, - end_line=6374, + end_line=6379, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20011,9 +23170,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_94 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, + start_line=6377, start_column=20, - end_line=6372, + end_line=6377, end_column=24, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20027,9 +23186,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_95 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6382, + start_line=6387, start_column=36, - end_line=6382, + end_line=6387, end_column=40, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20043,9 +23202,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_96 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6389, + start_line=6394, start_column=72, - end_line=6389, + end_line=6394, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20059,9 +23218,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_97 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6390, + start_line=6395, start_column=25, - end_line=6390, + end_line=6395, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20075,9 +23234,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_98 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6386, + start_line=6391, start_column=26, - end_line=6386, + end_line=6391, end_column=30, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20091,9 +23250,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_99 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6393, + start_line=6398, start_column=42, - end_line=6393, + end_line=6398, end_column=45, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20107,9 +23266,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_100 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6394, + start_line=6399, start_column=38, - end_line=6394, + end_line=6399, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20123,9 +23282,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_101 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, + start_line=6400, start_column=25, - end_line=6395, + end_line=6400, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20140,9 +23299,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_103 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, + start_line=6381, start_column=31, - end_line=6376, + end_line=6381, end_column=56, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20156,9 +23315,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_104 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6370, + start_line=6375, start_column=43, - end_line=6370, + end_line=6375, end_column=60, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20172,9 +23331,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_105 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, + start_line=6383, start_column=15, - end_line=6378, + end_line=6383, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20184,13 +23343,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_106 = date_courante_13 + temp_sous_calcul_traitement_106 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_106 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, + start_line=6378, start_column=29, - end_line=6373, + end_line=6378, end_column=42, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20200,13 +23359,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_107 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_107 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_107 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6371, + start_line=6376, start_column=41, - end_line=6371, + end_line=6376, end_column=66, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20220,9 +23379,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_108 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, + start_line=6379, start_column=46, - end_line=6374, + end_line=6379, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20236,9 +23395,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_109 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, + start_line=6377, start_column=20, - end_line=6372, + end_line=6377, end_column=24, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20252,9 +23411,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_110 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6382, + start_line=6387, start_column=36, - end_line=6382, + end_line=6387, end_column=40, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20268,9 +23427,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_111 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6389, + start_line=6394, start_column=72, - end_line=6389, + end_line=6394, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20284,9 +23443,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_112 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6390, + start_line=6395, start_column=25, - end_line=6390, + end_line=6395, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20300,9 +23459,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_113 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6386, + start_line=6391, start_column=26, - end_line=6386, + end_line=6391, end_column=30, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20316,9 +23475,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_114 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6393, + start_line=6398, start_column=42, - end_line=6393, + end_line=6398, end_column=45, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20332,9 +23491,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_115 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6394, + start_line=6399, start_column=38, - end_line=6394, + end_line=6399, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20348,9 +23507,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_116 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, + start_line=6400, start_column=25, - end_line=6395, + end_line=6400, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20380,9 +23539,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_117 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, + start_line=6381, start_column=31, - end_line=6376, + end_line=6381, end_column=56, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20396,9 +23555,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_118 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6370, + start_line=6375, start_column=43, - end_line=6370, + end_line=6375, end_column=60, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20412,9 +23571,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_119 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, + start_line=6383, start_column=15, - end_line=6378, + end_line=6383, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20424,13 +23583,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_120 = date_courante_13 + temp_sous_calcul_traitement_120 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_120 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, + start_line=6378, start_column=29, - end_line=6373, + end_line=6378, end_column=42, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20440,13 +23599,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_121 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_121 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_121 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6371, + start_line=6376, start_column=41, - end_line=6371, + end_line=6376, end_column=66, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20460,9 +23619,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_122 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, + start_line=6379, start_column=46, - end_line=6374, + end_line=6379, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20476,9 +23635,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_123 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, + start_line=6377, start_column=20, - end_line=6372, + end_line=6377, end_column=24, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20492,9 +23651,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_124 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6382, + start_line=6387, start_column=36, - end_line=6382, + end_line=6387, end_column=40, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20508,9 +23667,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_125 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6389, + start_line=6394, start_column=72, - end_line=6389, + end_line=6394, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20524,9 +23683,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_126 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6390, + start_line=6395, start_column=25, - end_line=6390, + end_line=6395, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20540,9 +23699,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_127 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6386, + start_line=6391, start_column=26, - end_line=6386, + end_line=6391, end_column=30, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20556,9 +23715,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_128 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6393, + start_line=6398, start_column=42, - end_line=6393, + end_line=6398, end_column=45, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20572,9 +23731,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_129 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6394, + start_line=6399, start_column=38, - end_line=6394, + end_line=6399, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20588,9 +23747,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_130 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, + start_line=6400, start_column=25, - end_line=6395, + end_line=6400, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20604,9 +23763,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_131 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, + start_line=6381, start_column=31, - end_line=6376, + end_line=6381, end_column=56, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20620,9 +23779,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_132 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6370, + start_line=6375, start_column=43, - end_line=6370, + end_line=6375, end_column=60, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20636,9 +23795,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_133 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, + start_line=6383, start_column=15, - end_line=6378, + end_line=6383, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20648,13 +23807,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_134 = date_courante_13 + temp_sous_calcul_traitement_134 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_134 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, + start_line=6378, start_column=29, - end_line=6373, + end_line=6378, end_column=42, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20664,13 +23823,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_135 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_135 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_135 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6371, + start_line=6376, start_column=41, - end_line=6371, + end_line=6376, end_column=66, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20684,9 +23843,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_136 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, + start_line=6379, start_column=46, - end_line=6374, + end_line=6379, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20700,9 +23859,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_137 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, + start_line=6377, start_column=20, - end_line=6372, + end_line=6377, end_column=24, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20716,9 +23875,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_138 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6382, + start_line=6387, start_column=36, - end_line=6382, + end_line=6387, end_column=40, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20732,9 +23891,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_139 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6389, + start_line=6394, start_column=72, - end_line=6389, + end_line=6394, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20748,9 +23907,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_140 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6390, + start_line=6395, start_column=25, - end_line=6390, + end_line=6395, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20764,9 +23923,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_141 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6386, + start_line=6391, start_column=26, - end_line=6386, + end_line=6391, end_column=30, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20780,9 +23939,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_142 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6393, + start_line=6398, start_column=42, - end_line=6393, + end_line=6398, end_column=45, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20796,9 +23955,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_143 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6394, + start_line=6399, start_column=38, - end_line=6394, + end_line=6399, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20812,9 +23971,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_144 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, + start_line=6400, start_column=25, - end_line=6395, + end_line=6400, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20828,9 +23987,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_145 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, + start_line=6381, start_column=31, - end_line=6376, + end_line=6381, end_column=56, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20844,9 +24003,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_146 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6370, + start_line=6375, start_column=43, - end_line=6370, + end_line=6375, end_column=60, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20860,9 +24019,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_147 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, + start_line=6383, start_column=15, - end_line=6378, + end_line=6383, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20872,13 +24031,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_148 = date_courante_13 + temp_sous_calcul_traitement_148 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_148 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, + start_line=6378, start_column=29, - end_line=6373, + end_line=6378, end_column=42, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20888,13 +24047,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_149 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_149 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_149 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6371, + start_line=6376, start_column=41, - end_line=6371, + end_line=6376, end_column=66, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20908,9 +24067,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_150 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, + start_line=6379, start_column=46, - end_line=6374, + end_line=6379, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20924,9 +24083,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_151 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, + start_line=6377, start_column=20, - end_line=6372, + end_line=6377, end_column=24, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20940,9 +24099,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_152 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6382, + start_line=6387, start_column=36, - end_line=6382, + end_line=6387, end_column=40, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20956,9 +24115,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_153 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6389, + start_line=6394, start_column=72, - end_line=6389, + end_line=6394, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20972,9 +24131,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_154 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6390, + start_line=6395, start_column=25, - end_line=6390, + end_line=6395, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -20988,9 +24147,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_155 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6386, + start_line=6391, start_column=26, - end_line=6386, + end_line=6391, end_column=30, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21004,9 +24163,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_156 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6393, + start_line=6398, start_column=42, - end_line=6393, + end_line=6398, end_column=45, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21020,9 +24179,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_157 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6394, + start_line=6399, start_column=38, - end_line=6394, + end_line=6399, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21036,9 +24195,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_158 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, + start_line=6400, start_column=25, - end_line=6395, + end_line=6400, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21052,9 +24211,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_159 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, + start_line=6381, start_column=31, - end_line=6376, + end_line=6381, end_column=56, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21068,9 +24227,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_160 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6370, + start_line=6375, start_column=43, - end_line=6370, + end_line=6375, end_column=60, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21084,9 +24243,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_161 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, + start_line=6383, start_column=15, - end_line=6378, + end_line=6383, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21096,13 +24255,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_162 = date_courante_13 + temp_sous_calcul_traitement_162 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_162 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, + start_line=6378, start_column=29, - end_line=6373, + end_line=6378, end_column=42, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21112,13 +24271,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_163 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_163 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_163 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6371, + start_line=6376, start_column=41, - end_line=6371, + end_line=6376, end_column=66, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21132,9 +24291,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_164 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, + start_line=6379, start_column=46, - end_line=6374, + end_line=6379, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21148,9 +24307,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_165 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, + start_line=6377, start_column=20, - end_line=6372, + end_line=6377, end_column=24, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21164,9 +24323,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_166 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6382, + start_line=6387, start_column=36, - end_line=6382, + end_line=6387, end_column=40, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21180,9 +24339,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_167 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6389, + start_line=6394, start_column=72, - end_line=6389, + end_line=6394, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21196,9 +24355,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_168 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6390, + start_line=6395, start_column=25, - end_line=6390, + end_line=6395, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21212,9 +24371,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_169 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6386, + start_line=6391, start_column=26, - end_line=6386, + end_line=6391, end_column=30, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21228,9 +24387,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_170 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6393, + start_line=6398, start_column=42, - end_line=6393, + end_line=6398, end_column=45, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21244,9 +24403,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_171 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6394, + start_line=6399, start_column=38, - end_line=6394, + end_line=6399, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21260,9 +24419,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_172 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, + start_line=6400, start_column=25, - end_line=6395, + end_line=6400, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21276,9 +24435,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_173 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, + start_line=6381, start_column=31, - end_line=6376, + end_line=6381, end_column=56, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21292,9 +24451,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_174 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6370, + start_line=6375, start_column=43, - end_line=6370, + end_line=6375, end_column=60, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21308,9 +24467,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_175 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, + start_line=6383, start_column=15, - end_line=6378, + end_line=6383, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21320,13 +24479,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_176 = date_courante_13 + temp_sous_calcul_traitement_176 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_176 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, + start_line=6378, start_column=29, - end_line=6373, + end_line=6378, end_column=42, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21336,13 +24495,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_177 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_177 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_177 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6371, + start_line=6376, start_column=41, - end_line=6371, + end_line=6376, end_column=66, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21356,9 +24515,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_178 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, + start_line=6379, start_column=46, - end_line=6374, + end_line=6379, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21372,9 +24531,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_179 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, + start_line=6377, start_column=20, - end_line=6372, + end_line=6377, end_column=24, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21388,9 +24547,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_180 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6382, + start_line=6387, start_column=36, - end_line=6382, + end_line=6387, end_column=40, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21404,9 +24563,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_181 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6389, + start_line=6394, start_column=72, - end_line=6389, + end_line=6394, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21420,9 +24579,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_182 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6390, + start_line=6395, start_column=25, - end_line=6390, + end_line=6395, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21436,9 +24595,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_183 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6386, + start_line=6391, start_column=26, - end_line=6386, + end_line=6391, end_column=30, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21452,9 +24611,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_184 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6393, + start_line=6398, start_column=42, - end_line=6393, + end_line=6398, end_column=45, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21468,9 +24627,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_185 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6394, + start_line=6399, start_column=38, - end_line=6394, + end_line=6399, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21484,9 +24643,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_186 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, + start_line=6400, start_column=25, - end_line=6395, + end_line=6400, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21500,9 +24659,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_187 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, + start_line=6381, start_column=31, - end_line=6376, + end_line=6381, end_column=56, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21516,9 +24675,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_188 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6370, + start_line=6375, start_column=43, - end_line=6370, + end_line=6375, end_column=60, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21532,9 +24691,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_189 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, + start_line=6383, start_column=15, - end_line=6378, + end_line=6383, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21544,13 +24703,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_190 = date_courante_13 + temp_sous_calcul_traitement_190 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_190 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, + start_line=6378, start_column=29, - end_line=6373, + end_line=6378, end_column=42, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21560,13 +24719,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_191 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_191 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_191 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6371, + start_line=6376, start_column=41, - end_line=6371, + end_line=6376, end_column=66, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21580,9 +24739,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_192 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, + start_line=6379, start_column=46, - end_line=6374, + end_line=6379, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21596,9 +24755,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_193 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, + start_line=6377, start_column=20, - end_line=6372, + end_line=6377, end_column=24, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21612,9 +24771,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_194 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6382, + start_line=6387, start_column=36, - end_line=6382, + end_line=6387, end_column=40, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21628,9 +24787,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_195 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6389, + start_line=6394, start_column=72, - end_line=6389, + end_line=6394, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21644,9 +24803,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_196 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6390, + start_line=6395, start_column=25, - end_line=6390, + end_line=6395, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21660,9 +24819,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_197 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6386, + start_line=6391, start_column=26, - end_line=6386, + end_line=6391, end_column=30, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21676,9 +24835,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_198 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6393, + start_line=6398, start_column=42, - end_line=6393, + end_line=6398, end_column=45, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21692,9 +24851,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_199 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6394, + start_line=6399, start_column=38, - end_line=6394, + end_line=6399, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21708,9 +24867,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_200 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, + start_line=6400, start_column=25, - end_line=6395, + end_line=6400, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -21905,18 +25064,18 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal temp_sous_calcul_traitement_2 = dead_value raise EmptyError except EmptyError: - match_arg_540 = categorie_calcul_apl - if match_arg_540.code == CategorieCalculAPL_Code.Location: - location_2 = match_arg_540.value + match_arg_630 = categorie_calcul_apl + if match_arg_630.code == CategorieCalculAPL_Code.Location: + location_2 = match_arg_630.value def temp_sous_calcul_traitement_201(param0_2:Money): try: temp_sous_calcul_traitement_202 = location_2.loyer_principal except EmptyError: temp_sous_calcul_traitement_202 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, + start_line=1479, start_column=31, - end_line=1477, + end_line=1479, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -21930,9 +25089,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_203 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1472, + start_line=1474, start_column=43, - end_line=1472, + end_line=1474, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -21946,9 +25105,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_204 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, + start_line=1481, start_column=15, - end_line=1479, + end_line=1481, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -21958,13 +25117,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_205 = date_courante_13 + temp_sous_calcul_traitement_205 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_205 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, + start_line=1477, start_column=29, - end_line=1475, + end_line=1477, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -21974,13 +25133,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_206 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_206 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_206 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1473, + start_line=1475, start_column=41, - end_line=1473, + end_line=1475, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -21994,9 +25153,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_207 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, + start_line=1478, start_column=46, - end_line=1476, + end_line=1478, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22010,9 +25169,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_208 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, + start_line=1476, start_column=20, - end_line=1474, + end_line=1476, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22026,9 +25185,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_209 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1480, + start_line=1482, start_column=36, - end_line=1480, + end_line=1482, end_column=65, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22042,9 +25201,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_210 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, + start_line=1485, start_column=15, - end_line=1483, + end_line=1485, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22058,9 +25217,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_211 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1484, + start_line=1486, start_column=25, - end_line=1484, + end_line=1486, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22074,9 +25233,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_212 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, + start_line=1483, start_column=26, - end_line=1481, + end_line=1483, end_column=45, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22086,22 +25245,22 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - match_arg_541 = location_2.bailleur - if match_arg_541.code == TypeBailleur_Code.BailleurSocial: - bailleur = match_arg_541.value + match_arg_631 = location_2.bailleur + if match_arg_631.code == TypeBailleur_Code.BailleurSocial: + bailleur = match_arg_631.value temp_sous_calcul_traitement_213 = bailleur.reduction_loyer_solidarite_percue - elif match_arg_541.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_541.value + elif match_arg_631.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_631.value temp_sous_calcul_traitement_213 = money_of_cents_string("0") - elif match_arg_541.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_541.value + elif match_arg_631.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_631.value temp_sous_calcul_traitement_213 = money_of_cents_string("0") except EmptyError: temp_sous_calcul_traitement_213 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, + start_line=1488, start_column=16, - end_line=1489, + end_line=1491, end_column=39, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22115,9 +25274,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_214 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1490, + start_line=1492, start_column=38, - end_line=1490, + end_line=1492, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22131,9 +25290,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_215 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1491, + start_line=1493, start_column=25, - end_line=1491, + end_line=1493, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22163,9 +25322,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_216 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, + start_line=1479, start_column=31, - end_line=1477, + end_line=1479, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22179,9 +25338,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_217 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1472, + start_line=1474, start_column=43, - end_line=1472, + end_line=1474, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22195,9 +25354,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_218 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, + start_line=1481, start_column=15, - end_line=1479, + end_line=1481, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22207,13 +25366,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_219 = date_courante_13 + temp_sous_calcul_traitement_219 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_219 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, + start_line=1477, start_column=29, - end_line=1475, + end_line=1477, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22223,13 +25382,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_220 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_220 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_220 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1473, + start_line=1475, start_column=41, - end_line=1473, + end_line=1475, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22243,9 +25402,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_221 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, + start_line=1478, start_column=46, - end_line=1476, + end_line=1478, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22259,9 +25418,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_222 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, + start_line=1476, start_column=20, - end_line=1474, + end_line=1476, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22275,9 +25434,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_223 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1480, + start_line=1482, start_column=36, - end_line=1480, + end_line=1482, end_column=65, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22291,9 +25450,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_224 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, + start_line=1485, start_column=15, - end_line=1483, + end_line=1485, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22307,9 +25466,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_225 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1484, + start_line=1486, start_column=25, - end_line=1484, + end_line=1486, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22323,9 +25482,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_226 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, + start_line=1483, start_column=26, - end_line=1481, + end_line=1483, end_column=45, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22335,22 +25494,22 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - match_arg_542 = location_2.bailleur - if match_arg_542.code == TypeBailleur_Code.BailleurSocial: - bailleur_1 = match_arg_542.value + match_arg_632 = location_2.bailleur + if match_arg_632.code == TypeBailleur_Code.BailleurSocial: + bailleur_1 = match_arg_632.value temp_sous_calcul_traitement_227 = bailleur_1.reduction_loyer_solidarite_percue - elif match_arg_542.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_542.value + elif match_arg_632.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_632.value temp_sous_calcul_traitement_227 = money_of_cents_string("0") - elif match_arg_542.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_542.value + elif match_arg_632.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_632.value temp_sous_calcul_traitement_227 = money_of_cents_string("0") except EmptyError: temp_sous_calcul_traitement_227 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, + start_line=1488, start_column=16, - end_line=1489, + end_line=1491, end_column=39, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22364,9 +25523,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_228 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1490, + start_line=1492, start_column=38, - end_line=1490, + end_line=1492, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22380,9 +25539,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_229 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1491, + start_line=1493, start_column=25, - end_line=1491, + end_line=1493, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22396,9 +25555,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_230 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, + start_line=1479, start_column=31, - end_line=1477, + end_line=1479, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22412,9 +25571,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_231 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1472, + start_line=1474, start_column=43, - end_line=1472, + end_line=1474, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22428,9 +25587,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_232 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, + start_line=1481, start_column=15, - end_line=1479, + end_line=1481, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22440,13 +25599,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_233 = date_courante_13 + temp_sous_calcul_traitement_233 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_233 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, + start_line=1477, start_column=29, - end_line=1475, + end_line=1477, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22456,13 +25615,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_234 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_234 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_234 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1473, + start_line=1475, start_column=41, - end_line=1473, + end_line=1475, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22476,9 +25635,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_235 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, + start_line=1478, start_column=46, - end_line=1476, + end_line=1478, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22492,9 +25651,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_236 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, + start_line=1476, start_column=20, - end_line=1474, + end_line=1476, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22508,9 +25667,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_237 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1480, + start_line=1482, start_column=36, - end_line=1480, + end_line=1482, end_column=65, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22524,9 +25683,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_238 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, + start_line=1485, start_column=15, - end_line=1483, + end_line=1485, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22540,9 +25699,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_239 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1484, + start_line=1486, start_column=25, - end_line=1484, + end_line=1486, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22556,9 +25715,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_240 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, + start_line=1483, start_column=26, - end_line=1481, + end_line=1483, end_column=45, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22568,22 +25727,22 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - match_arg_543 = location_2.bailleur - if match_arg_543.code == TypeBailleur_Code.BailleurSocial: - bailleur_2 = match_arg_543.value + match_arg_633 = location_2.bailleur + if match_arg_633.code == TypeBailleur_Code.BailleurSocial: + bailleur_2 = match_arg_633.value temp_sous_calcul_traitement_241 = bailleur_2.reduction_loyer_solidarite_percue - elif match_arg_543.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_543.value + elif match_arg_633.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_633.value temp_sous_calcul_traitement_241 = money_of_cents_string("0") - elif match_arg_543.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_543.value + elif match_arg_633.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_633.value temp_sous_calcul_traitement_241 = money_of_cents_string("0") except EmptyError: temp_sous_calcul_traitement_241 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, + start_line=1488, start_column=16, - end_line=1489, + end_line=1491, end_column=39, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22597,9 +25756,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_242 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1490, + start_line=1492, start_column=38, - end_line=1490, + end_line=1492, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22613,9 +25772,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_243 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1491, + start_line=1493, start_column=25, - end_line=1491, + end_line=1493, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22629,9 +25788,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_244 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, + start_line=1479, start_column=31, - end_line=1477, + end_line=1479, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22645,9 +25804,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_245 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1472, + start_line=1474, start_column=43, - end_line=1472, + end_line=1474, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22661,9 +25820,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_246 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, + start_line=1481, start_column=15, - end_line=1479, + end_line=1481, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22673,13 +25832,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_247 = date_courante_13 + temp_sous_calcul_traitement_247 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_247 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, + start_line=1477, start_column=29, - end_line=1475, + end_line=1477, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22689,13 +25848,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_248 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_248 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_248 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1473, + start_line=1475, start_column=41, - end_line=1473, + end_line=1475, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22709,9 +25868,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_249 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, + start_line=1478, start_column=46, - end_line=1476, + end_line=1478, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22725,9 +25884,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_250 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, + start_line=1476, start_column=20, - end_line=1474, + end_line=1476, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22741,9 +25900,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_251 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1480, + start_line=1482, start_column=36, - end_line=1480, + end_line=1482, end_column=65, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22757,9 +25916,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_252 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, + start_line=1485, start_column=15, - end_line=1483, + end_line=1485, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22773,9 +25932,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_253 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1484, + start_line=1486, start_column=25, - end_line=1484, + end_line=1486, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22789,9 +25948,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_254 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, + start_line=1483, start_column=26, - end_line=1481, + end_line=1483, end_column=45, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22801,22 +25960,22 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - match_arg_544 = location_2.bailleur - if match_arg_544.code == TypeBailleur_Code.BailleurSocial: - bailleur_3 = match_arg_544.value + match_arg_634 = location_2.bailleur + if match_arg_634.code == TypeBailleur_Code.BailleurSocial: + bailleur_3 = match_arg_634.value temp_sous_calcul_traitement_255 = bailleur_3.reduction_loyer_solidarite_percue - elif match_arg_544.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_544.value + elif match_arg_634.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_634.value temp_sous_calcul_traitement_255 = money_of_cents_string("0") - elif match_arg_544.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_544.value + elif match_arg_634.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_634.value temp_sous_calcul_traitement_255 = money_of_cents_string("0") except EmptyError: temp_sous_calcul_traitement_255 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, + start_line=1488, start_column=16, - end_line=1489, + end_line=1491, end_column=39, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22830,9 +25989,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_256 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1490, + start_line=1492, start_column=38, - end_line=1490, + end_line=1492, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22846,9 +26005,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_257 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1491, + start_line=1493, start_column=25, - end_line=1491, + end_line=1493, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22862,9 +26021,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_258 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, + start_line=1479, start_column=31, - end_line=1477, + end_line=1479, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22878,9 +26037,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_259 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1472, + start_line=1474, start_column=43, - end_line=1472, + end_line=1474, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22894,9 +26053,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_260 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, + start_line=1481, start_column=15, - end_line=1479, + end_line=1481, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22906,13 +26065,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_261 = date_courante_13 + temp_sous_calcul_traitement_261 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_261 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, + start_line=1477, start_column=29, - end_line=1475, + end_line=1477, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22922,13 +26081,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_262 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_262 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_262 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1473, + start_line=1475, start_column=41, - end_line=1473, + end_line=1475, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22942,9 +26101,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_263 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, + start_line=1478, start_column=46, - end_line=1476, + end_line=1478, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22958,9 +26117,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_264 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, + start_line=1476, start_column=20, - end_line=1474, + end_line=1476, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22974,9 +26133,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_265 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1480, + start_line=1482, start_column=36, - end_line=1480, + end_line=1482, end_column=65, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -22990,9 +26149,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_266 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, + start_line=1485, start_column=15, - end_line=1483, + end_line=1485, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23006,9 +26165,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_267 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1484, + start_line=1486, start_column=25, - end_line=1484, + end_line=1486, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23022,9 +26181,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_268 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, + start_line=1483, start_column=26, - end_line=1481, + end_line=1483, end_column=45, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23034,22 +26193,22 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - match_arg_545 = location_2.bailleur - if match_arg_545.code == TypeBailleur_Code.BailleurSocial: - bailleur_4 = match_arg_545.value + match_arg_635 = location_2.bailleur + if match_arg_635.code == TypeBailleur_Code.BailleurSocial: + bailleur_4 = match_arg_635.value temp_sous_calcul_traitement_269 = bailleur_4.reduction_loyer_solidarite_percue - elif match_arg_545.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_545.value + elif match_arg_635.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_635.value temp_sous_calcul_traitement_269 = money_of_cents_string("0") - elif match_arg_545.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_545.value + elif match_arg_635.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_635.value temp_sous_calcul_traitement_269 = money_of_cents_string("0") except EmptyError: temp_sous_calcul_traitement_269 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, + start_line=1488, start_column=16, - end_line=1489, + end_line=1491, end_column=39, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23063,9 +26222,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_270 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1490, + start_line=1492, start_column=38, - end_line=1490, + end_line=1492, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23079,9 +26238,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_271 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1491, + start_line=1493, start_column=25, - end_line=1491, + end_line=1493, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23095,9 +26254,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_272 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, + start_line=1479, start_column=31, - end_line=1477, + end_line=1479, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23111,9 +26270,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_273 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1472, + start_line=1474, start_column=43, - end_line=1472, + end_line=1474, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23127,9 +26286,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_274 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, + start_line=1481, start_column=15, - end_line=1479, + end_line=1481, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23139,13 +26298,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_275 = date_courante_13 + temp_sous_calcul_traitement_275 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_275 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, + start_line=1477, start_column=29, - end_line=1475, + end_line=1477, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23155,13 +26314,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_276 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_276 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_276 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1473, + start_line=1475, start_column=41, - end_line=1473, + end_line=1475, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23175,9 +26334,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_277 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, + start_line=1478, start_column=46, - end_line=1476, + end_line=1478, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23191,9 +26350,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_278 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, + start_line=1476, start_column=20, - end_line=1474, + end_line=1476, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23207,9 +26366,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_279 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1480, + start_line=1482, start_column=36, - end_line=1480, + end_line=1482, end_column=65, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23223,9 +26382,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_280 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, + start_line=1485, start_column=15, - end_line=1483, + end_line=1485, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23239,9 +26398,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_281 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1484, + start_line=1486, start_column=25, - end_line=1484, + end_line=1486, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23255,9 +26414,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_282 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, + start_line=1483, start_column=26, - end_line=1481, + end_line=1483, end_column=45, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23267,22 +26426,22 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - match_arg_546 = location_2.bailleur - if match_arg_546.code == TypeBailleur_Code.BailleurSocial: - bailleur_5 = match_arg_546.value + match_arg_636 = location_2.bailleur + if match_arg_636.code == TypeBailleur_Code.BailleurSocial: + bailleur_5 = match_arg_636.value temp_sous_calcul_traitement_283 = bailleur_5.reduction_loyer_solidarite_percue - elif match_arg_546.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_546.value + elif match_arg_636.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_636.value temp_sous_calcul_traitement_283 = money_of_cents_string("0") - elif match_arg_546.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_546.value + elif match_arg_636.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_636.value temp_sous_calcul_traitement_283 = money_of_cents_string("0") except EmptyError: temp_sous_calcul_traitement_283 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, + start_line=1488, start_column=16, - end_line=1489, + end_line=1491, end_column=39, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23296,9 +26455,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_284 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1490, + start_line=1492, start_column=38, - end_line=1490, + end_line=1492, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23312,9 +26471,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_285 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1491, + start_line=1493, start_column=25, - end_line=1491, + end_line=1493, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23328,9 +26487,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_286 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, + start_line=1479, start_column=31, - end_line=1477, + end_line=1479, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23344,9 +26503,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_287 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1472, + start_line=1474, start_column=43, - end_line=1472, + end_line=1474, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23360,9 +26519,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_288 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, + start_line=1481, start_column=15, - end_line=1479, + end_line=1481, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23372,13 +26531,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_289 = date_courante_13 + temp_sous_calcul_traitement_289 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_289 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, + start_line=1477, start_column=29, - end_line=1475, + end_line=1477, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23388,13 +26547,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_290 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_290 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_290 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1473, + start_line=1475, start_column=41, - end_line=1473, + end_line=1475, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23408,9 +26567,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_291 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, + start_line=1478, start_column=46, - end_line=1476, + end_line=1478, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23424,9 +26583,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_292 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, + start_line=1476, start_column=20, - end_line=1474, + end_line=1476, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23440,9 +26599,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_293 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1480, + start_line=1482, start_column=36, - end_line=1480, + end_line=1482, end_column=65, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23456,9 +26615,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_294 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, + start_line=1485, start_column=15, - end_line=1483, + end_line=1485, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23472,9 +26631,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_295 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1484, + start_line=1486, start_column=25, - end_line=1484, + end_line=1486, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23488,9 +26647,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_296 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, + start_line=1483, start_column=26, - end_line=1481, + end_line=1483, end_column=45, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23500,22 +26659,22 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - match_arg_547 = location_2.bailleur - if match_arg_547.code == TypeBailleur_Code.BailleurSocial: - bailleur_6 = match_arg_547.value + match_arg_637 = location_2.bailleur + if match_arg_637.code == TypeBailleur_Code.BailleurSocial: + bailleur_6 = match_arg_637.value temp_sous_calcul_traitement_297 = bailleur_6.reduction_loyer_solidarite_percue - elif match_arg_547.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_547.value + elif match_arg_637.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_637.value temp_sous_calcul_traitement_297 = money_of_cents_string("0") - elif match_arg_547.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_547.value + elif match_arg_637.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_637.value temp_sous_calcul_traitement_297 = money_of_cents_string("0") except EmptyError: temp_sous_calcul_traitement_297 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, + start_line=1488, start_column=16, - end_line=1489, + end_line=1491, end_column=39, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23529,9 +26688,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_298 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1490, + start_line=1492, start_column=38, - end_line=1490, + end_line=1492, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23545,9 +26704,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_299 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1491, + start_line=1493, start_column=25, - end_line=1491, + end_line=1493, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23562,9 +26721,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_301 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, + start_line=1479, start_column=31, - end_line=1477, + end_line=1479, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23578,9 +26737,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_302 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1472, + start_line=1474, start_column=43, - end_line=1472, + end_line=1474, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23594,9 +26753,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_303 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, + start_line=1481, start_column=15, - end_line=1479, + end_line=1481, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23606,13 +26765,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_304 = date_courante_13 + temp_sous_calcul_traitement_304 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_304 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, + start_line=1477, start_column=29, - end_line=1475, + end_line=1477, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23622,13 +26781,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_305 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_305 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_305 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1473, + start_line=1475, start_column=41, - end_line=1473, + end_line=1475, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23642,9 +26801,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_306 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, + start_line=1478, start_column=46, - end_line=1476, + end_line=1478, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23658,9 +26817,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_307 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, + start_line=1476, start_column=20, - end_line=1474, + end_line=1476, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23674,9 +26833,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_308 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1480, + start_line=1482, start_column=36, - end_line=1480, + end_line=1482, end_column=65, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23690,9 +26849,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_309 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, + start_line=1485, start_column=15, - end_line=1483, + end_line=1485, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23706,9 +26865,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_310 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1484, + start_line=1486, start_column=25, - end_line=1484, + end_line=1486, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23722,9 +26881,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_311 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, + start_line=1483, start_column=26, - end_line=1481, + end_line=1483, end_column=45, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23734,22 +26893,22 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - match_arg_548 = location_2.bailleur - if match_arg_548.code == TypeBailleur_Code.BailleurSocial: - bailleur_7 = match_arg_548.value + match_arg_638 = location_2.bailleur + if match_arg_638.code == TypeBailleur_Code.BailleurSocial: + bailleur_7 = match_arg_638.value temp_sous_calcul_traitement_312 = bailleur_7.reduction_loyer_solidarite_percue - elif match_arg_548.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_548.value + elif match_arg_638.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_638.value temp_sous_calcul_traitement_312 = money_of_cents_string("0") - elif match_arg_548.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_548.value + elif match_arg_638.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_638.value temp_sous_calcul_traitement_312 = money_of_cents_string("0") except EmptyError: temp_sous_calcul_traitement_312 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, + start_line=1488, start_column=16, - end_line=1489, + end_line=1491, end_column=39, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23763,9 +26922,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_313 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1490, + start_line=1492, start_column=38, - end_line=1490, + end_line=1492, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23779,9 +26938,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_314 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1491, + start_line=1493, start_column=25, - end_line=1491, + end_line=1493, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23811,9 +26970,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_315 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, + start_line=1479, start_column=31, - end_line=1477, + end_line=1479, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23827,9 +26986,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_316 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1472, + start_line=1474, start_column=43, - end_line=1472, + end_line=1474, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23843,9 +27002,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_317 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, + start_line=1481, start_column=15, - end_line=1479, + end_line=1481, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23855,13 +27014,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_318 = date_courante_13 + temp_sous_calcul_traitement_318 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_318 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, + start_line=1477, start_column=29, - end_line=1475, + end_line=1477, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23871,13 +27030,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_319 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_319 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_319 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1473, + start_line=1475, start_column=41, - end_line=1473, + end_line=1475, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23891,9 +27050,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_320 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, + start_line=1478, start_column=46, - end_line=1476, + end_line=1478, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23907,9 +27066,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_321 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, + start_line=1476, start_column=20, - end_line=1474, + end_line=1476, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23923,9 +27082,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_322 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1480, + start_line=1482, start_column=36, - end_line=1480, + end_line=1482, end_column=65, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23939,9 +27098,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_323 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, + start_line=1485, start_column=15, - end_line=1483, + end_line=1485, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23955,9 +27114,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_324 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1484, + start_line=1486, start_column=25, - end_line=1484, + end_line=1486, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23971,9 +27130,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_325 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, + start_line=1483, start_column=26, - end_line=1481, + end_line=1483, end_column=45, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -23983,22 +27142,22 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - match_arg_549 = location_2.bailleur - if match_arg_549.code == TypeBailleur_Code.BailleurSocial: - bailleur_8 = match_arg_549.value + match_arg_639 = location_2.bailleur + if match_arg_639.code == TypeBailleur_Code.BailleurSocial: + bailleur_8 = match_arg_639.value temp_sous_calcul_traitement_326 = bailleur_8.reduction_loyer_solidarite_percue - elif match_arg_549.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_549.value + elif match_arg_639.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_639.value temp_sous_calcul_traitement_326 = money_of_cents_string("0") - elif match_arg_549.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_549.value + elif match_arg_639.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_639.value temp_sous_calcul_traitement_326 = money_of_cents_string("0") except EmptyError: temp_sous_calcul_traitement_326 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, + start_line=1488, start_column=16, - end_line=1489, + end_line=1491, end_column=39, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24012,9 +27171,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_327 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1490, + start_line=1492, start_column=38, - end_line=1490, + end_line=1492, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24028,9 +27187,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_328 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1491, + start_line=1493, start_column=25, - end_line=1491, + end_line=1493, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24044,9 +27203,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_329 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, + start_line=1479, start_column=31, - end_line=1477, + end_line=1479, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24060,9 +27219,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_330 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1472, + start_line=1474, start_column=43, - end_line=1472, + end_line=1474, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24076,9 +27235,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_331 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, + start_line=1481, start_column=15, - end_line=1479, + end_line=1481, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24088,13 +27247,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_332 = date_courante_13 + temp_sous_calcul_traitement_332 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_332 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, + start_line=1477, start_column=29, - end_line=1475, + end_line=1477, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24104,13 +27263,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_333 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_333 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_333 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1473, + start_line=1475, start_column=41, - end_line=1473, + end_line=1475, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24124,9 +27283,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_334 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, + start_line=1478, start_column=46, - end_line=1476, + end_line=1478, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24140,9 +27299,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_335 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, + start_line=1476, start_column=20, - end_line=1474, + end_line=1476, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24156,9 +27315,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_336 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1480, + start_line=1482, start_column=36, - end_line=1480, + end_line=1482, end_column=65, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24172,9 +27331,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_337 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, + start_line=1485, start_column=15, - end_line=1483, + end_line=1485, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24188,9 +27347,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_338 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1484, + start_line=1486, start_column=25, - end_line=1484, + end_line=1486, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24204,9 +27363,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_339 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, + start_line=1483, start_column=26, - end_line=1481, + end_line=1483, end_column=45, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24216,22 +27375,22 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - match_arg_550 = location_2.bailleur - if match_arg_550.code == TypeBailleur_Code.BailleurSocial: - bailleur_9 = match_arg_550.value + match_arg_640 = location_2.bailleur + if match_arg_640.code == TypeBailleur_Code.BailleurSocial: + bailleur_9 = match_arg_640.value temp_sous_calcul_traitement_340 = bailleur_9.reduction_loyer_solidarite_percue - elif match_arg_550.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_550.value + elif match_arg_640.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_640.value temp_sous_calcul_traitement_340 = money_of_cents_string("0") - elif match_arg_550.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_550.value + elif match_arg_640.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_640.value temp_sous_calcul_traitement_340 = money_of_cents_string("0") except EmptyError: temp_sous_calcul_traitement_340 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, + start_line=1488, start_column=16, - end_line=1489, + end_line=1491, end_column=39, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24245,9 +27404,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_341 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1490, + start_line=1492, start_column=38, - end_line=1490, + end_line=1492, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24261,9 +27420,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_342 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1491, + start_line=1493, start_column=25, - end_line=1491, + end_line=1493, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24277,9 +27436,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_343 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, + start_line=1479, start_column=31, - end_line=1477, + end_line=1479, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24293,9 +27452,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_344 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1472, + start_line=1474, start_column=43, - end_line=1472, + end_line=1474, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24309,9 +27468,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_345 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, + start_line=1481, start_column=15, - end_line=1479, + end_line=1481, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24321,13 +27480,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_346 = date_courante_13 + temp_sous_calcul_traitement_346 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_346 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, + start_line=1477, start_column=29, - end_line=1475, + end_line=1477, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24337,13 +27496,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_347 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_347 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_347 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1473, + start_line=1475, start_column=41, - end_line=1473, + end_line=1475, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24357,9 +27516,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_348 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, + start_line=1478, start_column=46, - end_line=1476, + end_line=1478, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24373,9 +27532,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_349 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, + start_line=1476, start_column=20, - end_line=1474, + end_line=1476, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24389,9 +27548,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_350 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1480, + start_line=1482, start_column=36, - end_line=1480, + end_line=1482, end_column=65, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24405,9 +27564,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_351 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, + start_line=1485, start_column=15, - end_line=1483, + end_line=1485, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24421,9 +27580,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_352 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1484, + start_line=1486, start_column=25, - end_line=1484, + end_line=1486, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24437,9 +27596,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_353 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, + start_line=1483, start_column=26, - end_line=1481, + end_line=1483, end_column=45, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24449,22 +27608,22 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - match_arg_551 = location_2.bailleur - if match_arg_551.code == TypeBailleur_Code.BailleurSocial: - bailleur_10 = match_arg_551.value + match_arg_641 = location_2.bailleur + if match_arg_641.code == TypeBailleur_Code.BailleurSocial: + bailleur_10 = match_arg_641.value temp_sous_calcul_traitement_354 = bailleur_10.reduction_loyer_solidarite_percue - elif match_arg_551.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_551.value + elif match_arg_641.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_641.value temp_sous_calcul_traitement_354 = money_of_cents_string("0") - elif match_arg_551.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_551.value + elif match_arg_641.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_641.value temp_sous_calcul_traitement_354 = money_of_cents_string("0") except EmptyError: temp_sous_calcul_traitement_354 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, + start_line=1488, start_column=16, - end_line=1489, + end_line=1491, end_column=39, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24478,9 +27637,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_355 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1490, + start_line=1492, start_column=38, - end_line=1490, + end_line=1492, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24494,9 +27653,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_356 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1491, + start_line=1493, start_column=25, - end_line=1491, + end_line=1493, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24510,9 +27669,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_357 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, + start_line=1479, start_column=31, - end_line=1477, + end_line=1479, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24526,9 +27685,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_358 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1472, + start_line=1474, start_column=43, - end_line=1472, + end_line=1474, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24542,9 +27701,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_359 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, + start_line=1481, start_column=15, - end_line=1479, + end_line=1481, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24554,13 +27713,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_360 = date_courante_13 + temp_sous_calcul_traitement_360 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_360 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, + start_line=1477, start_column=29, - end_line=1475, + end_line=1477, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24570,13 +27729,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_361 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_361 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_361 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1473, + start_line=1475, start_column=41, - end_line=1473, + end_line=1475, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24590,9 +27749,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_362 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, + start_line=1478, start_column=46, - end_line=1476, + end_line=1478, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24606,9 +27765,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_363 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, + start_line=1476, start_column=20, - end_line=1474, + end_line=1476, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24622,9 +27781,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_364 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1480, + start_line=1482, start_column=36, - end_line=1480, + end_line=1482, end_column=65, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24638,9 +27797,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_365 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, + start_line=1485, start_column=15, - end_line=1483, + end_line=1485, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24654,9 +27813,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_366 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1484, + start_line=1486, start_column=25, - end_line=1484, + end_line=1486, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24670,9 +27829,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_367 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, + start_line=1483, start_column=26, - end_line=1481, + end_line=1483, end_column=45, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24682,22 +27841,22 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - match_arg_552 = location_2.bailleur - if match_arg_552.code == TypeBailleur_Code.BailleurSocial: - bailleur_11 = match_arg_552.value + match_arg_642 = location_2.bailleur + if match_arg_642.code == TypeBailleur_Code.BailleurSocial: + bailleur_11 = match_arg_642.value temp_sous_calcul_traitement_368 = bailleur_11.reduction_loyer_solidarite_percue - elif match_arg_552.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_552.value + elif match_arg_642.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_642.value temp_sous_calcul_traitement_368 = money_of_cents_string("0") - elif match_arg_552.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_552.value + elif match_arg_642.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_642.value temp_sous_calcul_traitement_368 = money_of_cents_string("0") except EmptyError: temp_sous_calcul_traitement_368 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, + start_line=1488, start_column=16, - end_line=1489, + end_line=1491, end_column=39, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24711,9 +27870,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_369 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1490, + start_line=1492, start_column=38, - end_line=1490, + end_line=1492, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24727,9 +27886,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_370 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1491, + start_line=1493, start_column=25, - end_line=1491, + end_line=1493, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24743,9 +27902,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_371 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, + start_line=1479, start_column=31, - end_line=1477, + end_line=1479, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24759,9 +27918,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_372 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1472, + start_line=1474, start_column=43, - end_line=1472, + end_line=1474, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24775,9 +27934,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_373 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, + start_line=1481, start_column=15, - end_line=1479, + end_line=1481, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24787,13 +27946,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_374 = date_courante_13 + temp_sous_calcul_traitement_374 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_374 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, + start_line=1477, start_column=29, - end_line=1475, + end_line=1477, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24803,13 +27962,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_375 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_375 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_375 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1473, + start_line=1475, start_column=41, - end_line=1473, + end_line=1475, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24823,9 +27982,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_376 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, + start_line=1478, start_column=46, - end_line=1476, + end_line=1478, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24839,9 +27998,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_377 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, + start_line=1476, start_column=20, - end_line=1474, + end_line=1476, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24855,9 +28014,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_378 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1480, + start_line=1482, start_column=36, - end_line=1480, + end_line=1482, end_column=65, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24871,9 +28030,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_379 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, + start_line=1485, start_column=15, - end_line=1483, + end_line=1485, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24887,9 +28046,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_380 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1484, + start_line=1486, start_column=25, - end_line=1484, + end_line=1486, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24903,9 +28062,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_381 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, + start_line=1483, start_column=26, - end_line=1481, + end_line=1483, end_column=45, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24915,22 +28074,22 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - match_arg_553 = location_2.bailleur - if match_arg_553.code == TypeBailleur_Code.BailleurSocial: - bailleur_12 = match_arg_553.value + match_arg_643 = location_2.bailleur + if match_arg_643.code == TypeBailleur_Code.BailleurSocial: + bailleur_12 = match_arg_643.value temp_sous_calcul_traitement_382 = bailleur_12.reduction_loyer_solidarite_percue - elif match_arg_553.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_553.value + elif match_arg_643.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_643.value temp_sous_calcul_traitement_382 = money_of_cents_string("0") - elif match_arg_553.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_553.value + elif match_arg_643.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_643.value temp_sous_calcul_traitement_382 = money_of_cents_string("0") except EmptyError: temp_sous_calcul_traitement_382 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, + start_line=1488, start_column=16, - end_line=1489, + end_line=1491, end_column=39, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24944,9 +28103,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_383 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1490, + start_line=1492, start_column=38, - end_line=1490, + end_line=1492, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24960,9 +28119,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_384 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1491, + start_line=1493, start_column=25, - end_line=1491, + end_line=1493, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24976,9 +28135,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_385 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, + start_line=1479, start_column=31, - end_line=1477, + end_line=1479, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -24992,9 +28151,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_386 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1472, + start_line=1474, start_column=43, - end_line=1472, + end_line=1474, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25008,9 +28167,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_387 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, + start_line=1481, start_column=15, - end_line=1479, + end_line=1481, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25020,13 +28179,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_388 = date_courante_13 + temp_sous_calcul_traitement_388 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_388 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, + start_line=1477, start_column=29, - end_line=1475, + end_line=1477, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25036,13 +28195,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_389 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_389 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_389 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1473, + start_line=1475, start_column=41, - end_line=1473, + end_line=1475, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25056,9 +28215,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_390 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, + start_line=1478, start_column=46, - end_line=1476, + end_line=1478, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25072,9 +28231,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_391 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, + start_line=1476, start_column=20, - end_line=1474, + end_line=1476, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25088,9 +28247,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_392 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1480, + start_line=1482, start_column=36, - end_line=1480, + end_line=1482, end_column=65, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25104,9 +28263,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_393 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, + start_line=1485, start_column=15, - end_line=1483, + end_line=1485, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25120,9 +28279,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_394 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1484, + start_line=1486, start_column=25, - end_line=1484, + end_line=1486, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25136,9 +28295,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_395 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, + start_line=1483, start_column=26, - end_line=1481, + end_line=1483, end_column=45, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25148,22 +28307,22 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - match_arg_554 = location_2.bailleur - if match_arg_554.code == TypeBailleur_Code.BailleurSocial: - bailleur_13 = match_arg_554.value + match_arg_644 = location_2.bailleur + if match_arg_644.code == TypeBailleur_Code.BailleurSocial: + bailleur_13 = match_arg_644.value temp_sous_calcul_traitement_396 = bailleur_13.reduction_loyer_solidarite_percue - elif match_arg_554.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_554.value + elif match_arg_644.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_644.value temp_sous_calcul_traitement_396 = money_of_cents_string("0") - elif match_arg_554.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_554.value + elif match_arg_644.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_644.value temp_sous_calcul_traitement_396 = money_of_cents_string("0") except EmptyError: temp_sous_calcul_traitement_396 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, + start_line=1488, start_column=16, - end_line=1489, + end_line=1491, end_column=39, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25177,9 +28336,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_397 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1490, + start_line=1492, start_column=38, - end_line=1490, + end_line=1492, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25193,9 +28352,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_398 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1491, + start_line=1493, start_column=25, - end_line=1491, + end_line=1493, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25386,17 +28545,17 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal logement_meuble_d842_2_in = temp_sous_calcul_traitement_327, residence_in = temp_sous_calcul_traitement_328)).aide_finale_formule, traitement_aide_finale = temp_sous_calcul_traitement_300).traitement_aide_finale) - elif match_arg_540.code == CategorieCalculAPL_Code.AccessionPropriete: - proprietaire_2 = match_arg_540.value + elif match_arg_630.code == CategorieCalculAPL_Code.AccessionPropriete: + proprietaire_2 = match_arg_630.value def temp_sous_calcul_traitement_399(param0_4:Money): try: temp_sous_calcul_traitement_400 = proprietaire_2.mensualite_principale except EmptyError: temp_sous_calcul_traitement_400 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1530, + start_line=1532, start_column=38, - end_line=1530, + end_line=1532, end_column=72, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25410,9 +28569,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_401 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1525, + start_line=1527, start_column=44, - end_line=1525, + end_line=1527, end_column=61, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25422,13 +28581,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_402 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_402 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_402 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1526, + start_line=1528, start_column=42, - end_line=1526, + end_line=1528, end_column=67, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25442,9 +28601,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_403 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1529, + start_line=1531, start_column=47, - end_line=1529, + end_line=1531, end_column=77, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25458,9 +28617,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_404 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1531, + start_line=1533, start_column=38, - end_line=1531, + end_line=1533, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25474,9 +28633,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_405 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1532, + start_line=1534, start_column=36, - end_line=1532, + end_line=1534, end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25490,9 +28649,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_406 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1534, + start_line=1536, start_column=14, - end_line=1534, + end_line=1536, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25506,9 +28665,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_407 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1535, + start_line=1537, start_column=37, - end_line=1535, + end_line=1537, end_column=70, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25522,9 +28681,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_408 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1536, + start_line=1538, start_column=28, - end_line=1536, + end_line=1538, end_column=52, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25538,9 +28697,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_409 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1537, + start_line=1539, start_column=40, - end_line=1537, + end_line=1539, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25554,9 +28713,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_410 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1527, + start_line=1529, start_column=21, - end_line=1527, + end_line=1529, end_column=25, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25570,9 +28729,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_411 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1538, + start_line=1540, start_column=26, - end_line=1538, + end_line=1540, end_column=53, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25586,9 +28745,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_412 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1539, + start_line=1541, start_column=36, - end_line=1539, + end_line=1541, end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25598,13 +28757,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_413 = date_courante_13 + temp_sous_calcul_traitement_413 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_413 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1528, + start_line=1530, start_column=30, - end_line=1528, + end_line=1530, end_column=43, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25634,9 +28793,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_414 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1530, + start_line=1532, start_column=38, - end_line=1530, + end_line=1532, end_column=72, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25650,9 +28809,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_415 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1525, + start_line=1527, start_column=44, - end_line=1525, + end_line=1527, end_column=61, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25662,13 +28821,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_416 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_416 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_416 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1526, + start_line=1528, start_column=42, - end_line=1526, + end_line=1528, end_column=67, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25682,9 +28841,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_417 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1529, + start_line=1531, start_column=47, - end_line=1529, + end_line=1531, end_column=77, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25698,9 +28857,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_418 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1531, + start_line=1533, start_column=38, - end_line=1531, + end_line=1533, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25714,9 +28873,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_419 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1532, + start_line=1534, start_column=36, - end_line=1532, + end_line=1534, end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25730,9 +28889,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_420 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1534, + start_line=1536, start_column=14, - end_line=1534, + end_line=1536, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25746,9 +28905,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_421 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1535, + start_line=1537, start_column=37, - end_line=1535, + end_line=1537, end_column=70, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25762,9 +28921,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_422 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1536, + start_line=1538, start_column=28, - end_line=1536, + end_line=1538, end_column=52, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25778,9 +28937,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_423 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1537, + start_line=1539, start_column=40, - end_line=1537, + end_line=1539, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25794,9 +28953,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_424 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1527, + start_line=1529, start_column=21, - end_line=1527, + end_line=1529, end_column=25, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25810,9 +28969,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_425 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1538, + start_line=1540, start_column=26, - end_line=1538, + end_line=1540, end_column=53, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25826,9 +28985,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_426 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1539, + start_line=1541, start_column=36, - end_line=1539, + end_line=1541, end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25838,13 +28997,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_427 = date_courante_13 + temp_sous_calcul_traitement_427 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_427 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1528, + start_line=1530, start_column=30, - end_line=1528, + end_line=1530, end_column=43, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25858,9 +29017,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_428 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1530, + start_line=1532, start_column=38, - end_line=1530, + end_line=1532, end_column=72, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25874,9 +29033,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_429 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1525, + start_line=1527, start_column=44, - end_line=1525, + end_line=1527, end_column=61, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25886,13 +29045,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_430 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_430 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_430 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1526, + start_line=1528, start_column=42, - end_line=1526, + end_line=1528, end_column=67, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25906,9 +29065,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_431 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1529, + start_line=1531, start_column=47, - end_line=1529, + end_line=1531, end_column=77, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25922,9 +29081,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_432 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1531, + start_line=1533, start_column=38, - end_line=1531, + end_line=1533, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25938,9 +29097,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_433 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1532, + start_line=1534, start_column=36, - end_line=1532, + end_line=1534, end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25954,9 +29113,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_434 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1534, + start_line=1536, start_column=14, - end_line=1534, + end_line=1536, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25970,9 +29129,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_435 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1535, + start_line=1537, start_column=37, - end_line=1535, + end_line=1537, end_column=70, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25986,9 +29145,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_436 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1536, + start_line=1538, start_column=28, - end_line=1536, + end_line=1538, end_column=52, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26002,9 +29161,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_437 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1537, + start_line=1539, start_column=40, - end_line=1537, + end_line=1539, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26018,9 +29177,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_438 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1527, + start_line=1529, start_column=21, - end_line=1527, + end_line=1529, end_column=25, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26034,9 +29193,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_439 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1538, + start_line=1540, start_column=26, - end_line=1538, + end_line=1540, end_column=53, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26050,9 +29209,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_440 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1539, + start_line=1541, start_column=36, - end_line=1539, + end_line=1541, end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26062,13 +29221,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_441 = date_courante_13 + temp_sous_calcul_traitement_441 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_441 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1528, + start_line=1530, start_column=30, - end_line=1528, + end_line=1530, end_column=43, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26082,9 +29241,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_442 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1530, + start_line=1532, start_column=38, - end_line=1530, + end_line=1532, end_column=72, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26098,9 +29257,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_443 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1525, + start_line=1527, start_column=44, - end_line=1525, + end_line=1527, end_column=61, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26110,13 +29269,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_444 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_444 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_444 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1526, + start_line=1528, start_column=42, - end_line=1526, + end_line=1528, end_column=67, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26130,9 +29289,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_445 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1529, + start_line=1531, start_column=47, - end_line=1529, + end_line=1531, end_column=77, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26146,9 +29305,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_446 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1531, + start_line=1533, start_column=38, - end_line=1531, + end_line=1533, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26162,9 +29321,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_447 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1532, + start_line=1534, start_column=36, - end_line=1532, + end_line=1534, end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26178,9 +29337,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_448 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1534, + start_line=1536, start_column=14, - end_line=1534, + end_line=1536, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26194,9 +29353,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_449 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1535, + start_line=1537, start_column=37, - end_line=1535, + end_line=1537, end_column=70, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26210,9 +29369,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_450 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1536, + start_line=1538, start_column=28, - end_line=1536, + end_line=1538, end_column=52, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26226,9 +29385,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_451 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1537, + start_line=1539, start_column=40, - end_line=1537, + end_line=1539, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26242,9 +29401,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_452 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1527, + start_line=1529, start_column=21, - end_line=1527, + end_line=1529, end_column=25, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26258,9 +29417,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_453 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1538, + start_line=1540, start_column=26, - end_line=1538, + end_line=1540, end_column=53, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26274,9 +29433,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_454 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1539, + start_line=1541, start_column=36, - end_line=1539, + end_line=1541, end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26286,13 +29445,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_455 = date_courante_13 + temp_sous_calcul_traitement_455 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_455 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1528, + start_line=1530, start_column=30, - end_line=1528, + end_line=1530, end_column=43, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26306,9 +29465,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_456 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1530, + start_line=1532, start_column=38, - end_line=1530, + end_line=1532, end_column=72, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26322,9 +29481,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_457 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1525, + start_line=1527, start_column=44, - end_line=1525, + end_line=1527, end_column=61, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26334,13 +29493,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_458 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_458 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_458 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1526, + start_line=1528, start_column=42, - end_line=1526, + end_line=1528, end_column=67, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26354,9 +29513,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_459 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1529, + start_line=1531, start_column=47, - end_line=1529, + end_line=1531, end_column=77, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26370,9 +29529,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_460 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1531, + start_line=1533, start_column=38, - end_line=1531, + end_line=1533, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26386,9 +29545,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_461 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1532, + start_line=1534, start_column=36, - end_line=1532, + end_line=1534, end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26402,9 +29561,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_462 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1534, + start_line=1536, start_column=14, - end_line=1534, + end_line=1536, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26418,9 +29577,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_463 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1535, + start_line=1537, start_column=37, - end_line=1535, + end_line=1537, end_column=70, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26434,9 +29593,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_464 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1536, + start_line=1538, start_column=28, - end_line=1536, + end_line=1538, end_column=52, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26450,9 +29609,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_465 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1537, + start_line=1539, start_column=40, - end_line=1537, + end_line=1539, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26466,9 +29625,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_466 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1527, + start_line=1529, start_column=21, - end_line=1527, + end_line=1529, end_column=25, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26482,9 +29641,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_467 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1538, + start_line=1540, start_column=26, - end_line=1538, + end_line=1540, end_column=53, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26498,9 +29657,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_468 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1539, + start_line=1541, start_column=36, - end_line=1539, + end_line=1541, end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26510,13 +29669,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_469 = date_courante_13 + temp_sous_calcul_traitement_469 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_469 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1528, + start_line=1530, start_column=30, - end_line=1528, + end_line=1530, end_column=43, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26531,9 +29690,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_471 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1530, + start_line=1532, start_column=38, - end_line=1530, + end_line=1532, end_column=72, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26547,9 +29706,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_472 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1525, + start_line=1527, start_column=44, - end_line=1525, + end_line=1527, end_column=61, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26559,13 +29718,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_473 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_473 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_473 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1526, + start_line=1528, start_column=42, - end_line=1526, + end_line=1528, end_column=67, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26579,9 +29738,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_474 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1529, + start_line=1531, start_column=47, - end_line=1529, + end_line=1531, end_column=77, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26595,9 +29754,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_475 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1531, + start_line=1533, start_column=38, - end_line=1531, + end_line=1533, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26611,9 +29770,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_476 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1532, + start_line=1534, start_column=36, - end_line=1532, + end_line=1534, end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26627,9 +29786,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_477 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1534, + start_line=1536, start_column=14, - end_line=1534, + end_line=1536, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26643,9 +29802,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_478 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1535, + start_line=1537, start_column=37, - end_line=1535, + end_line=1537, end_column=70, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26659,9 +29818,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_479 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1536, + start_line=1538, start_column=28, - end_line=1536, + end_line=1538, end_column=52, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26675,9 +29834,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_480 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1537, + start_line=1539, start_column=40, - end_line=1537, + end_line=1539, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26691,9 +29850,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_481 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1527, + start_line=1529, start_column=21, - end_line=1527, + end_line=1529, end_column=25, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26707,9 +29866,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_482 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1538, + start_line=1540, start_column=26, - end_line=1538, + end_line=1540, end_column=53, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26723,9 +29882,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_483 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1539, + start_line=1541, start_column=36, - end_line=1539, + end_line=1541, end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26735,13 +29894,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_484 = date_courante_13 + temp_sous_calcul_traitement_484 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_484 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1528, + start_line=1530, start_column=30, - end_line=1528, + end_line=1530, end_column=43, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26771,9 +29930,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_485 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1530, + start_line=1532, start_column=38, - end_line=1530, + end_line=1532, end_column=72, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26787,9 +29946,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_486 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1525, + start_line=1527, start_column=44, - end_line=1525, + end_line=1527, end_column=61, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26799,13 +29958,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_487 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_487 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_487 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1526, + start_line=1528, start_column=42, - end_line=1526, + end_line=1528, end_column=67, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26819,9 +29978,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_488 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1529, + start_line=1531, start_column=47, - end_line=1529, + end_line=1531, end_column=77, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26835,9 +29994,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_489 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1531, + start_line=1533, start_column=38, - end_line=1531, + end_line=1533, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26851,9 +30010,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_490 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1532, + start_line=1534, start_column=36, - end_line=1532, + end_line=1534, end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26867,9 +30026,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_491 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1534, + start_line=1536, start_column=14, - end_line=1534, + end_line=1536, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26883,9 +30042,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_492 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1535, + start_line=1537, start_column=37, - end_line=1535, + end_line=1537, end_column=70, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26899,9 +30058,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_493 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1536, + start_line=1538, start_column=28, - end_line=1536, + end_line=1538, end_column=52, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26915,9 +30074,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_494 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1537, + start_line=1539, start_column=40, - end_line=1537, + end_line=1539, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26931,9 +30090,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_495 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1527, + start_line=1529, start_column=21, - end_line=1527, + end_line=1529, end_column=25, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26947,9 +30106,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_496 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1538, + start_line=1540, start_column=26, - end_line=1538, + end_line=1540, end_column=53, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26963,9 +30122,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_497 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1539, + start_line=1541, start_column=36, - end_line=1539, + end_line=1541, end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26975,13 +30134,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_498 = date_courante_13 + temp_sous_calcul_traitement_498 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_498 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1528, + start_line=1530, start_column=30, - end_line=1528, + end_line=1530, end_column=43, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26995,9 +30154,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_499 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1530, + start_line=1532, start_column=38, - end_line=1530, + end_line=1532, end_column=72, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27011,9 +30170,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_500 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1525, + start_line=1527, start_column=44, - end_line=1525, + end_line=1527, end_column=61, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27023,13 +30182,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_501 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_501 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_501 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1526, + start_line=1528, start_column=42, - end_line=1526, + end_line=1528, end_column=67, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27043,9 +30202,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_502 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1529, + start_line=1531, start_column=47, - end_line=1529, + end_line=1531, end_column=77, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27059,9 +30218,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_503 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1531, + start_line=1533, start_column=38, - end_line=1531, + end_line=1533, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27075,9 +30234,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_504 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1532, + start_line=1534, start_column=36, - end_line=1532, + end_line=1534, end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27091,9 +30250,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_505 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1534, + start_line=1536, start_column=14, - end_line=1534, + end_line=1536, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27107,9 +30266,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_506 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1535, + start_line=1537, start_column=37, - end_line=1535, + end_line=1537, end_column=70, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27123,9 +30282,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_507 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1536, + start_line=1538, start_column=28, - end_line=1536, + end_line=1538, end_column=52, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27139,9 +30298,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_508 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1537, + start_line=1539, start_column=40, - end_line=1537, + end_line=1539, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27155,9 +30314,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_509 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1527, + start_line=1529, start_column=21, - end_line=1527, + end_line=1529, end_column=25, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27171,9 +30330,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_510 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1538, + start_line=1540, start_column=26, - end_line=1538, + end_line=1540, end_column=53, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27187,9 +30346,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_511 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1539, + start_line=1541, start_column=36, - end_line=1539, + end_line=1541, end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27199,13 +30358,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_512 = date_courante_13 + temp_sous_calcul_traitement_512 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_512 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1528, + start_line=1530, start_column=30, - end_line=1528, + end_line=1530, end_column=43, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27219,9 +30378,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_513 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1530, + start_line=1532, start_column=38, - end_line=1530, + end_line=1532, end_column=72, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27235,9 +30394,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_514 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1525, + start_line=1527, start_column=44, - end_line=1525, + end_line=1527, end_column=61, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27247,13 +30406,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_515 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_515 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_515 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1526, + start_line=1528, start_column=42, - end_line=1526, + end_line=1528, end_column=67, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27267,9 +30426,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_516 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1529, + start_line=1531, start_column=47, - end_line=1529, + end_line=1531, end_column=77, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27283,9 +30442,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_517 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1531, + start_line=1533, start_column=38, - end_line=1531, + end_line=1533, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27299,9 +30458,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_518 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1532, + start_line=1534, start_column=36, - end_line=1532, + end_line=1534, end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27315,9 +30474,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_519 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1534, + start_line=1536, start_column=14, - end_line=1534, + end_line=1536, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27331,9 +30490,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_520 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1535, + start_line=1537, start_column=37, - end_line=1535, + end_line=1537, end_column=70, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27347,9 +30506,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_521 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1536, + start_line=1538, start_column=28, - end_line=1536, + end_line=1538, end_column=52, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27363,9 +30522,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_522 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1537, + start_line=1539, start_column=40, - end_line=1537, + end_line=1539, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27379,9 +30538,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_523 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1527, + start_line=1529, start_column=21, - end_line=1527, + end_line=1529, end_column=25, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27395,9 +30554,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_524 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1538, + start_line=1540, start_column=26, - end_line=1538, + end_line=1540, end_column=53, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27411,9 +30570,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_525 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1539, + start_line=1541, start_column=36, - end_line=1539, + end_line=1541, end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27423,13 +30582,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_526 = date_courante_13 + temp_sous_calcul_traitement_526 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_526 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1528, + start_line=1530, start_column=30, - end_line=1528, + end_line=1530, end_column=43, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27443,9 +30602,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_527 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1530, + start_line=1532, start_column=38, - end_line=1530, + end_line=1532, end_column=72, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27459,9 +30618,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_528 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1525, + start_line=1527, start_column=44, - end_line=1525, + end_line=1527, end_column=61, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27471,13 +30630,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_529 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_529 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_529 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1526, + start_line=1528, start_column=42, - end_line=1526, + end_line=1528, end_column=67, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27491,9 +30650,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_530 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1529, + start_line=1531, start_column=47, - end_line=1529, + end_line=1531, end_column=77, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27507,9 +30666,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_531 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1531, + start_line=1533, start_column=38, - end_line=1531, + end_line=1533, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27523,9 +30682,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_532 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1532, + start_line=1534, start_column=36, - end_line=1532, + end_line=1534, end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27539,9 +30698,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_533 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1534, + start_line=1536, start_column=14, - end_line=1534, + end_line=1536, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27555,9 +30714,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_534 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1535, + start_line=1537, start_column=37, - end_line=1535, + end_line=1537, end_column=70, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27571,9 +30730,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_535 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1536, + start_line=1538, start_column=28, - end_line=1536, + end_line=1538, end_column=52, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27587,9 +30746,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_536 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1537, + start_line=1539, start_column=40, - end_line=1537, + end_line=1539, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27603,9 +30762,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_537 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1527, + start_line=1529, start_column=21, - end_line=1527, + end_line=1529, end_column=25, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27619,9 +30778,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_538 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1538, + start_line=1540, start_column=26, - end_line=1538, + end_line=1540, end_column=53, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27635,9 +30794,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_539 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1539, + start_line=1541, start_column=36, - end_line=1539, + end_line=1541, end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27647,13 +30806,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_540 = date_courante_13 + temp_sous_calcul_traitement_540 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_540 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1528, + start_line=1530, start_column=30, - end_line=1528, + end_line=1530, end_column=43, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27784,17 +30943,17 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal anciennete_logement_in = temp_sous_calcul_traitement_497, date_courante_in = temp_sous_calcul_traitement_498)).aide_finale_formule, traitement_aide_finale = temp_sous_calcul_traitement_470).traitement_aide_finale) - elif match_arg_540.code == CategorieCalculAPL_Code.LogementFoyer: - logement_foyer__1 = match_arg_540.value + elif match_arg_630.code == CategorieCalculAPL_Code.LogementFoyer: + logement_foyer__1 = match_arg_630.value def temp_sous_calcul_traitement_541(param0_6:Money): try: temp_sous_calcul_traitement_542 = logement_foyer__1.type except EmptyError: temp_sous_calcul_traitement_542 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, + start_line=1513, start_column=35, - end_line=1511, + end_line=1513, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27808,9 +30967,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_543 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, + start_line=1514, start_column=37, - end_line=1512, + end_line=1514, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27824,9 +30983,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_544 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1504, + start_line=1506, start_column=43, - end_line=1504, + end_line=1506, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27836,13 +30995,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_545 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_545 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_545 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1505, + start_line=1507, start_column=41, - end_line=1505, + end_line=1507, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27856,9 +31015,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_546 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, + start_line=1511, start_column=46, - end_line=1509, + end_line=1511, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27872,9 +31031,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_547 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, + start_line=1508, start_column=20, - end_line=1506, + end_line=1508, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27884,13 +31043,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_548 = date_courante_13 + temp_sous_calcul_traitement_548 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_548 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, + start_line=1510, start_column=29, - end_line=1508, + end_line=1510, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27904,9 +31063,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_549 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, + start_line=1512, start_column=25, - end_line=1510, + end_line=1512, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27920,9 +31079,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_550 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, + start_line=1509, start_column=25, - end_line=1507, + end_line=1509, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27955,9 +31114,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_554 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, + start_line=1513, start_column=35, - end_line=1511, + end_line=1513, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27971,9 +31130,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_555 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, + start_line=1514, start_column=37, - end_line=1512, + end_line=1514, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27987,9 +31146,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_556 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1504, + start_line=1506, start_column=43, - end_line=1504, + end_line=1506, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27999,13 +31158,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_557 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_557 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_557 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1505, + start_line=1507, start_column=41, - end_line=1505, + end_line=1507, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28019,9 +31178,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_558 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, + start_line=1511, start_column=46, - end_line=1509, + end_line=1511, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28035,9 +31194,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_559 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, + start_line=1508, start_column=20, - end_line=1506, + end_line=1508, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28047,13 +31206,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_560 = date_courante_13 + temp_sous_calcul_traitement_560 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_560 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, + start_line=1510, start_column=29, - end_line=1508, + end_line=1510, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28067,9 +31226,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_561 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, + start_line=1512, start_column=25, - end_line=1510, + end_line=1512, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28083,9 +31242,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_562 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, + start_line=1509, start_column=25, - end_line=1507, + end_line=1509, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28105,9 +31264,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_566 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, + start_line=1513, start_column=35, - end_line=1511, + end_line=1513, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28121,9 +31280,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_567 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, + start_line=1514, start_column=37, - end_line=1512, + end_line=1514, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28137,9 +31296,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_568 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1504, + start_line=1506, start_column=43, - end_line=1504, + end_line=1506, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28149,13 +31308,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_569 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_569 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_569 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1505, + start_line=1507, start_column=41, - end_line=1505, + end_line=1507, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28169,9 +31328,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_570 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, + start_line=1511, start_column=46, - end_line=1509, + end_line=1511, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28185,9 +31344,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_571 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, + start_line=1508, start_column=20, - end_line=1506, + end_line=1508, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28197,13 +31356,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_572 = date_courante_13 + temp_sous_calcul_traitement_572 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_572 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, + start_line=1510, start_column=29, - end_line=1508, + end_line=1510, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28217,9 +31376,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_573 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, + start_line=1512, start_column=25, - end_line=1510, + end_line=1512, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28233,9 +31392,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_574 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, + start_line=1509, start_column=25, - end_line=1507, + end_line=1509, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28255,9 +31414,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_578 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, + start_line=1513, start_column=35, - end_line=1511, + end_line=1513, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28271,9 +31430,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_579 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, + start_line=1514, start_column=37, - end_line=1512, + end_line=1514, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28287,9 +31446,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_580 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1504, + start_line=1506, start_column=43, - end_line=1504, + end_line=1506, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28299,13 +31458,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_581 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_581 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_581 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1505, + start_line=1507, start_column=41, - end_line=1505, + end_line=1507, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28319,9 +31478,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_582 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, + start_line=1511, start_column=46, - end_line=1509, + end_line=1511, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28335,9 +31494,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_583 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, + start_line=1508, start_column=20, - end_line=1506, + end_line=1508, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28347,13 +31506,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_584 = date_courante_13 + temp_sous_calcul_traitement_584 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_584 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, + start_line=1510, start_column=29, - end_line=1508, + end_line=1510, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28367,9 +31526,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_585 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, + start_line=1512, start_column=25, - end_line=1510, + end_line=1512, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28383,9 +31542,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_586 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, + start_line=1509, start_column=25, - end_line=1507, + end_line=1509, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28405,9 +31564,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_590 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, + start_line=1513, start_column=35, - end_line=1511, + end_line=1513, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28421,9 +31580,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_591 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, + start_line=1514, start_column=37, - end_line=1512, + end_line=1514, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28437,9 +31596,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_592 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1504, + start_line=1506, start_column=43, - end_line=1504, + end_line=1506, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28449,13 +31608,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_593 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_593 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_593 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1505, + start_line=1507, start_column=41, - end_line=1505, + end_line=1507, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28469,9 +31628,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_594 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, + start_line=1511, start_column=46, - end_line=1509, + end_line=1511, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28485,9 +31644,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_595 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, + start_line=1508, start_column=20, - end_line=1506, + end_line=1508, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28497,13 +31656,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_596 = date_courante_13 + temp_sous_calcul_traitement_596 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_596 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, + start_line=1510, start_column=29, - end_line=1508, + end_line=1510, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28517,9 +31676,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_597 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, + start_line=1512, start_column=25, - end_line=1510, + end_line=1512, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28533,9 +31692,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_598 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, + start_line=1509, start_column=25, - end_line=1507, + end_line=1509, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28555,9 +31714,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_602 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, + start_line=1513, start_column=35, - end_line=1511, + end_line=1513, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28571,9 +31730,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_603 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, + start_line=1514, start_column=37, - end_line=1512, + end_line=1514, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28587,9 +31746,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_604 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1504, + start_line=1506, start_column=43, - end_line=1504, + end_line=1506, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28599,13 +31758,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_605 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_605 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_605 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1505, + start_line=1507, start_column=41, - end_line=1505, + end_line=1507, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28619,9 +31778,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_606 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, + start_line=1511, start_column=46, - end_line=1509, + end_line=1511, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28635,9 +31794,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_607 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, + start_line=1508, start_column=20, - end_line=1506, + end_line=1508, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28647,13 +31806,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_608 = date_courante_13 + temp_sous_calcul_traitement_608 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_608 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, + start_line=1510, start_column=29, - end_line=1508, + end_line=1510, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28667,9 +31826,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_609 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, + start_line=1512, start_column=25, - end_line=1510, + end_line=1512, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28683,9 +31842,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_610 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, + start_line=1509, start_column=25, - end_line=1507, + end_line=1509, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28705,9 +31864,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_614 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, + start_line=1513, start_column=35, - end_line=1511, + end_line=1513, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28721,9 +31880,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_615 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, + start_line=1514, start_column=37, - end_line=1512, + end_line=1514, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28737,9 +31896,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_616 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1504, + start_line=1506, start_column=43, - end_line=1504, + end_line=1506, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28749,13 +31908,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_617 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_617 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_617 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1505, + start_line=1507, start_column=41, - end_line=1505, + end_line=1507, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28769,9 +31928,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_618 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, + start_line=1511, start_column=46, - end_line=1509, + end_line=1511, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28785,9 +31944,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_619 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, + start_line=1508, start_column=20, - end_line=1506, + end_line=1508, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28797,13 +31956,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_620 = date_courante_13 + temp_sous_calcul_traitement_620 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_620 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, + start_line=1510, start_column=29, - end_line=1508, + end_line=1510, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28817,9 +31976,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_621 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, + start_line=1512, start_column=25, - end_line=1510, + end_line=1512, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28833,9 +31992,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_622 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, + start_line=1509, start_column=25, - end_line=1507, + end_line=1509, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28855,9 +32014,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_626 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, + start_line=1513, start_column=35, - end_line=1511, + end_line=1513, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28871,9 +32030,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_627 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, + start_line=1514, start_column=37, - end_line=1512, + end_line=1514, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28887,9 +32046,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_628 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1504, + start_line=1506, start_column=43, - end_line=1504, + end_line=1506, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28899,13 +32058,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_629 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_629 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_629 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1505, + start_line=1507, start_column=41, - end_line=1505, + end_line=1507, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28919,9 +32078,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_630 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, + start_line=1511, start_column=46, - end_line=1509, + end_line=1511, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28935,9 +32094,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_631 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, + start_line=1508, start_column=20, - end_line=1506, + end_line=1508, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28947,13 +32106,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_632 = date_courante_13 + temp_sous_calcul_traitement_632 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_632 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, + start_line=1510, start_column=29, - end_line=1508, + end_line=1510, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28967,9 +32126,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_633 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, + start_line=1512, start_column=25, - end_line=1510, + end_line=1512, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -28983,9 +32142,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_634 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, + start_line=1509, start_column=25, - end_line=1507, + end_line=1509, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29005,9 +32164,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_638 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, + start_line=1513, start_column=35, - end_line=1511, + end_line=1513, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29021,9 +32180,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_639 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, + start_line=1514, start_column=37, - end_line=1512, + end_line=1514, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29037,9 +32196,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_640 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1504, + start_line=1506, start_column=43, - end_line=1504, + end_line=1506, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29049,13 +32208,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_641 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_641 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_641 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1505, + start_line=1507, start_column=41, - end_line=1505, + end_line=1507, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29069,9 +32228,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_642 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, + start_line=1511, start_column=46, - end_line=1509, + end_line=1511, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29085,9 +32244,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_643 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, + start_line=1508, start_column=20, - end_line=1506, + end_line=1508, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29097,13 +32256,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_644 = date_courante_13 + temp_sous_calcul_traitement_644 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_644 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, + start_line=1510, start_column=29, - end_line=1508, + end_line=1510, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29117,9 +32276,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_645 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, + start_line=1512, start_column=25, - end_line=1510, + end_line=1512, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29133,9 +32292,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_646 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, + start_line=1509, start_column=25, - end_line=1507, + end_line=1509, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29156,9 +32315,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_651 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, + start_line=1513, start_column=35, - end_line=1511, + end_line=1513, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29172,9 +32331,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_652 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, + start_line=1514, start_column=37, - end_line=1512, + end_line=1514, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29188,9 +32347,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_653 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1504, + start_line=1506, start_column=43, - end_line=1504, + end_line=1506, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29200,13 +32359,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_654 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_654 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_654 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1505, + start_line=1507, start_column=41, - end_line=1505, + end_line=1507, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29220,9 +32379,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_655 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, + start_line=1511, start_column=46, - end_line=1509, + end_line=1511, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29236,9 +32395,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_656 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, + start_line=1508, start_column=20, - end_line=1506, + end_line=1508, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29248,13 +32407,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_657 = date_courante_13 + temp_sous_calcul_traitement_657 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_657 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, + start_line=1510, start_column=29, - end_line=1508, + end_line=1510, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29268,9 +32427,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_658 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, + start_line=1512, start_column=25, - end_line=1510, + end_line=1512, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29284,9 +32443,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_659 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, + start_line=1509, start_column=25, - end_line=1507, + end_line=1509, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29319,9 +32478,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_663 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, + start_line=1513, start_column=35, - end_line=1511, + end_line=1513, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29335,9 +32494,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_664 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, + start_line=1514, start_column=37, - end_line=1512, + end_line=1514, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29351,9 +32510,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_665 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1504, + start_line=1506, start_column=43, - end_line=1504, + end_line=1506, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29363,13 +32522,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_666 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_666 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_666 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1505, + start_line=1507, start_column=41, - end_line=1505, + end_line=1507, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29383,9 +32542,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_667 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, + start_line=1511, start_column=46, - end_line=1509, + end_line=1511, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29399,9 +32558,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_668 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, + start_line=1508, start_column=20, - end_line=1506, + end_line=1508, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29411,13 +32570,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_669 = date_courante_13 + temp_sous_calcul_traitement_669 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_669 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, + start_line=1510, start_column=29, - end_line=1508, + end_line=1510, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29431,9 +32590,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_670 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, + start_line=1512, start_column=25, - end_line=1510, + end_line=1512, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29447,9 +32606,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_671 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, + start_line=1509, start_column=25, - end_line=1507, + end_line=1509, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29469,9 +32628,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_675 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, + start_line=1513, start_column=35, - end_line=1511, + end_line=1513, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29485,9 +32644,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_676 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, + start_line=1514, start_column=37, - end_line=1512, + end_line=1514, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29501,9 +32660,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_677 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1504, + start_line=1506, start_column=43, - end_line=1504, + end_line=1506, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29513,13 +32672,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_678 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_678 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_678 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1505, + start_line=1507, start_column=41, - end_line=1505, + end_line=1507, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29533,9 +32692,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_679 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, + start_line=1511, start_column=46, - end_line=1509, + end_line=1511, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29549,9 +32708,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_680 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, + start_line=1508, start_column=20, - end_line=1506, + end_line=1508, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29561,13 +32720,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_681 = date_courante_13 + temp_sous_calcul_traitement_681 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_681 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, + start_line=1510, start_column=29, - end_line=1508, + end_line=1510, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29581,9 +32740,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_682 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, + start_line=1512, start_column=25, - end_line=1510, + end_line=1512, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29597,9 +32756,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_683 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, + start_line=1509, start_column=25, - end_line=1507, + end_line=1509, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29619,9 +32778,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_687 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, + start_line=1513, start_column=35, - end_line=1511, + end_line=1513, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29635,9 +32794,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_688 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, + start_line=1514, start_column=37, - end_line=1512, + end_line=1514, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29651,9 +32810,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_689 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1504, + start_line=1506, start_column=43, - end_line=1504, + end_line=1506, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29663,13 +32822,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_690 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_690 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_690 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1505, + start_line=1507, start_column=41, - end_line=1505, + end_line=1507, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29683,9 +32842,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_691 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, + start_line=1511, start_column=46, - end_line=1509, + end_line=1511, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29699,9 +32858,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_692 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, + start_line=1508, start_column=20, - end_line=1506, + end_line=1508, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29711,13 +32870,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_693 = date_courante_13 + temp_sous_calcul_traitement_693 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_693 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, + start_line=1510, start_column=29, - end_line=1508, + end_line=1510, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29731,9 +32890,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_694 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, + start_line=1512, start_column=25, - end_line=1510, + end_line=1512, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29747,9 +32906,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_695 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, + start_line=1509, start_column=25, - end_line=1507, + end_line=1509, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29769,9 +32928,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_699 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, + start_line=1513, start_column=35, - end_line=1511, + end_line=1513, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29785,9 +32944,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_700 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, + start_line=1514, start_column=37, - end_line=1512, + end_line=1514, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29801,9 +32960,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_701 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1504, + start_line=1506, start_column=43, - end_line=1504, + end_line=1506, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29813,13 +32972,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_702 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_702 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_702 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1505, + start_line=1507, start_column=41, - end_line=1505, + end_line=1507, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29833,9 +32992,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_703 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, + start_line=1511, start_column=46, - end_line=1509, + end_line=1511, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29849,9 +33008,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_704 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, + start_line=1508, start_column=20, - end_line=1506, + end_line=1508, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29861,13 +33020,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_705 = date_courante_13 + temp_sous_calcul_traitement_705 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_705 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, + start_line=1510, start_column=29, - end_line=1508, + end_line=1510, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29881,9 +33040,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_706 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, + start_line=1512, start_column=25, - end_line=1510, + end_line=1512, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29897,9 +33056,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_707 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, + start_line=1509, start_column=25, - end_line=1507, + end_line=1509, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29919,9 +33078,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_711 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, + start_line=1513, start_column=35, - end_line=1511, + end_line=1513, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29935,9 +33094,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_712 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, + start_line=1514, start_column=37, - end_line=1512, + end_line=1514, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29951,9 +33110,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_713 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1504, + start_line=1506, start_column=43, - end_line=1504, + end_line=1506, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29963,13 +33122,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_714 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_714 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_714 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1505, + start_line=1507, start_column=41, - end_line=1505, + end_line=1507, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29983,9 +33142,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_715 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, + start_line=1511, start_column=46, - end_line=1509, + end_line=1511, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -29999,9 +33158,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_716 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, + start_line=1508, start_column=20, - end_line=1506, + end_line=1508, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30011,13 +33170,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_717 = date_courante_13 + temp_sous_calcul_traitement_717 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_717 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, + start_line=1510, start_column=29, - end_line=1508, + end_line=1510, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30031,9 +33190,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_718 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, + start_line=1512, start_column=25, - end_line=1510, + end_line=1512, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30047,9 +33206,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_719 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, + start_line=1509, start_column=25, - end_line=1507, + end_line=1509, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30069,9 +33228,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_723 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, + start_line=1513, start_column=35, - end_line=1511, + end_line=1513, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30085,9 +33244,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_724 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, + start_line=1514, start_column=37, - end_line=1512, + end_line=1514, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30101,9 +33260,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_725 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1504, + start_line=1506, start_column=43, - end_line=1504, + end_line=1506, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30113,13 +33272,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_726 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_726 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_726 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1505, + start_line=1507, start_column=41, - end_line=1505, + end_line=1507, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30133,9 +33292,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_727 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, + start_line=1511, start_column=46, - end_line=1509, + end_line=1511, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30149,9 +33308,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_728 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, + start_line=1508, start_column=20, - end_line=1506, + end_line=1508, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30161,13 +33320,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_729 = date_courante_13 + temp_sous_calcul_traitement_729 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_729 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, + start_line=1510, start_column=29, - end_line=1508, + end_line=1510, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30181,9 +33340,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_730 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, + start_line=1512, start_column=25, - end_line=1510, + end_line=1512, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30197,9 +33356,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_731 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, + start_line=1509, start_column=25, - end_line=1507, + end_line=1509, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30219,9 +33378,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_735 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, + start_line=1513, start_column=35, - end_line=1511, + end_line=1513, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30235,9 +33394,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_736 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, + start_line=1514, start_column=37, - end_line=1512, + end_line=1514, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30251,9 +33410,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_737 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1504, + start_line=1506, start_column=43, - end_line=1504, + end_line=1506, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30263,13 +33422,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_738 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_738 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_738 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1505, + start_line=1507, start_column=41, - end_line=1505, + end_line=1507, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30283,9 +33442,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_739 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, + start_line=1511, start_column=46, - end_line=1509, + end_line=1511, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30299,9 +33458,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_740 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, + start_line=1508, start_column=20, - end_line=1506, + end_line=1508, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30311,13 +33470,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_741 = date_courante_13 + temp_sous_calcul_traitement_741 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_741 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, + start_line=1510, start_column=29, - end_line=1508, + end_line=1510, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30331,9 +33490,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_742 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, + start_line=1512, start_column=25, - end_line=1510, + end_line=1512, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30347,9 +33506,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_743 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, + start_line=1509, start_column=25, - end_line=1507, + end_line=1509, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30369,9 +33528,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_747 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, + start_line=1513, start_column=35, - end_line=1511, + end_line=1513, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30385,9 +33544,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_748 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, + start_line=1514, start_column=37, - end_line=1512, + end_line=1514, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30401,9 +33560,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_749 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1504, + start_line=1506, start_column=43, - end_line=1504, + end_line=1506, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30413,13 +33572,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_750 = nombre_personnes_a_charge_8 + temp_sous_calcul_traitement_750 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_750 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1505, + start_line=1507, start_column=41, - end_line=1505, + end_line=1507, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30433,9 +33592,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_751 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, + start_line=1511, start_column=46, - end_line=1509, + end_line=1511, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30449,9 +33608,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_752 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, + start_line=1508, start_column=20, - end_line=1506, + end_line=1508, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30461,13 +33620,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_753 = date_courante_13 + temp_sous_calcul_traitement_753 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_753 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, + start_line=1510, start_column=29, - end_line=1508, + end_line=1510, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30481,9 +33640,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_754 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, + start_line=1512, start_column=25, - end_line=1510, + end_line=1512, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30497,9 +33656,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_755 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, + start_line=1509, start_column=25, - end_line=1507, + end_line=1509, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -30727,8 +33886,8 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=822, start_column=11, - end_line=822, end_column=33, + start_line=829, start_column=11, + end_line=829, end_column=33, law_headings=["Tous secteurs", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -30740,9 +33899,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal return sous_calcul_traitement.traitement_aide_finale(arg) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=825, + start_line=832, start_column=12, - end_line=825, + end_line=832, end_column=34, law_headings=["Tous secteurs", "Calcul du montant de l'aide personnalisée au logement", @@ -30751,8 +33910,8 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_traitement_aide_finale_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=825, start_column=12, - end_line=825, end_column=34, + start_line=832, start_column=12, + end_line=832, end_column=34, law_headings=["Tous secteurs", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -30763,8 +33922,8 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_aide_finale_formule_7 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=824, start_column=12, - end_line=824, end_column=31, + start_line=831, start_column=12, + end_line=831, end_column=31, law_headings=["Tous secteurs", "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", @@ -30776,7 +33935,7 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logement_in:EligibiliteAidesPersonnelleLogementIn): menage = eligibilite_aides_personnelle_logement_in.menage_in demandeur = eligibilite_aides_personnelle_logement_in.demandeur_in - date_courante_14 = eligibilite_aides_personnelle_logement_in.date_courante_in + date_courante_15 = eligibilite_aides_personnelle_logement_in.date_courante_in condition_logement_residence_principale = eligibilite_aides_personnelle_logement_in.condition_logement_residence_principale_in condition_logement_surface = eligibilite_aides_personnelle_logement_in.condition_logement_surface_in date_entree_vigueur_differee_cch = eligibilite_aides_personnelle_logement_in.date_entree_vigueur_differee_cch_in @@ -30862,19 +34021,19 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen "Prologue : aides au logement"])) seuil_l822_5_patrimoine = temp_seuil_l822_5_patrimoine try: - match_arg_555 = menage.logement.usufruit - if match_arg_555.code == ParentOuAutre_Code.DemandeurOuConjointOuParentOuViaPartsSocietes: - parts = match_arg_555.value + match_arg_645 = menage.logement.usufruit + if match_arg_645.code == ParentOuAutre_Code.DemandeurOuConjointOuParentOuViaPartsSocietes: + parts = match_arg_645.value temp_usufruit_ou_propriete_famille = True - elif match_arg_555.code == ParentOuAutre_Code.Autre: - _ = match_arg_555.value + elif match_arg_645.code == ParentOuAutre_Code.Autre: + _ = match_arg_645.value temp_usufruit_ou_propriete_famille = False - match_arg_556 = menage.logement.proprietaire - if match_arg_556.code == ParentOuAutre_Code.DemandeurOuConjointOuParentOuViaPartsSocietes: - parts_1 = match_arg_556.value + match_arg_646 = menage.logement.proprietaire + if match_arg_646.code == ParentOuAutre_Code.DemandeurOuConjointOuParentOuViaPartsSocietes: + parts_1 = match_arg_646.value temp_usufruit_ou_propriete_famille_1 = True - elif match_arg_556.code == ParentOuAutre_Code.Autre: - _ = match_arg_556.value + elif match_arg_646.code == ParentOuAutre_Code.Autre: + _ = match_arg_646.value temp_usufruit_ou_propriete_famille_1 = False temp_usufruit_ou_propriete_famille_2 = (temp_usufruit_ou_propriete_famille_1 or temp_usufruit_ou_propriete_famille) @@ -30888,24 +34047,24 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen "Prologue : aides au logement"])) usufruit_ou_propriete_famille = temp_usufruit_ou_propriete_famille_2 try: - match_arg_557 = menage.situation_familiale - if match_arg_557.code == SituationFamiliale_Code.Celibataire: - _ = match_arg_557.value + match_arg_647 = menage.situation_familiale + if match_arg_647.code == SituationFamiliale_Code.Celibataire: + _ = match_arg_647.value temp_nombre_personnes_logement = integer_of_string("1") - elif match_arg_557.code == SituationFamiliale_Code.Maries: - _ = match_arg_557.value + elif match_arg_647.code == SituationFamiliale_Code.Maries: + _ = match_arg_647.value temp_nombre_personnes_logement = integer_of_string("2") - elif match_arg_557.code == SituationFamiliale_Code.Pacses: - _ = match_arg_557.value + elif match_arg_647.code == SituationFamiliale_Code.Pacses: + _ = match_arg_647.value temp_nombre_personnes_logement = integer_of_string("2") - elif match_arg_557.code == SituationFamiliale_Code.Concubins: - _ = match_arg_557.value + elif match_arg_647.code == SituationFamiliale_Code.Concubins: + _ = match_arg_647.value temp_nombre_personnes_logement = integer_of_string("2") - elif match_arg_557.code == SituationFamiliale_Code.CelibataireSepareDeFait: - _ = match_arg_557.value + elif match_arg_647.code == SituationFamiliale_Code.CelibataireSepareDeFait: + _ = match_arg_647.value temp_nombre_personnes_logement = integer_of_string("1") - elif match_arg_557.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: - _ = match_arg_557.value + elif match_arg_647.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: + _ = match_arg_647.value temp_nombre_personnes_logement = integer_of_string("2") temp_nombre_personnes_logement_1 = ((temp_nombre_personnes_logement + menage.nombre_autres_occupants_logement) + @@ -30922,33 +34081,33 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen try: try: try: - match_arg_558 = menage.residence - if match_arg_558.code == Collectivite_Code.Guadeloupe: - _ = match_arg_558.value + match_arg_648 = menage.residence + if match_arg_648.code == Collectivite_Code.Guadeloupe: + _ = match_arg_648.value temp_septieme_alinea_l823_1_applicable = False - elif match_arg_558.code == Collectivite_Code.Guyane: - _ = match_arg_558.value + elif match_arg_648.code == Collectivite_Code.Guyane: + _ = match_arg_648.value temp_septieme_alinea_l823_1_applicable = False - elif match_arg_558.code == Collectivite_Code.Martinique: - _ = match_arg_558.value + elif match_arg_648.code == Collectivite_Code.Martinique: + _ = match_arg_648.value temp_septieme_alinea_l823_1_applicable = False - elif match_arg_558.code == Collectivite_Code.LaReunion: - _ = match_arg_558.value + elif match_arg_648.code == Collectivite_Code.LaReunion: + _ = match_arg_648.value temp_septieme_alinea_l823_1_applicable = False - elif match_arg_558.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_558.value + elif match_arg_648.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_648.value temp_septieme_alinea_l823_1_applicable = False - elif match_arg_558.code == Collectivite_Code.SaintMartin: - _ = match_arg_558.value + elif match_arg_648.code == Collectivite_Code.SaintMartin: + _ = match_arg_648.value temp_septieme_alinea_l823_1_applicable = False - elif match_arg_558.code == Collectivite_Code.Metropole: - _ = match_arg_558.value + elif match_arg_648.code == Collectivite_Code.Metropole: + _ = match_arg_648.value temp_septieme_alinea_l823_1_applicable = False - elif match_arg_558.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_558.value + elif match_arg_648.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_648.value temp_septieme_alinea_l823_1_applicable = False - elif match_arg_558.code == Collectivite_Code.Mayotte: - _ = match_arg_558.value + elif match_arg_648.code == Collectivite_Code.Mayotte: + _ = match_arg_648.value temp_septieme_alinea_l823_1_applicable = True if temp_septieme_alinea_l823_1_applicable: temp_septieme_alinea_l823_1_applicable_1 = False @@ -31059,52 +34218,52 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen patrimoine_total_demandeur = temp_patrimoine_total_demandeur try: try: - match_arg_559 = menage.residence - if match_arg_559.code == Collectivite_Code.Guadeloupe: - _ = match_arg_559.value + match_arg_649 = menage.residence + if match_arg_649.code == Collectivite_Code.Guadeloupe: + _ = match_arg_649.value temp_condition_nationalite = False - elif match_arg_559.code == Collectivite_Code.Guyane: - _ = match_arg_559.value + elif match_arg_649.code == Collectivite_Code.Guyane: + _ = match_arg_649.value temp_condition_nationalite = False - elif match_arg_559.code == Collectivite_Code.Martinique: - _ = match_arg_559.value + elif match_arg_649.code == Collectivite_Code.Martinique: + _ = match_arg_649.value temp_condition_nationalite = False - elif match_arg_559.code == Collectivite_Code.LaReunion: - _ = match_arg_559.value + elif match_arg_649.code == Collectivite_Code.LaReunion: + _ = match_arg_649.value temp_condition_nationalite = False - elif match_arg_559.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_559.value + elif match_arg_649.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_649.value temp_condition_nationalite = False - elif match_arg_559.code == Collectivite_Code.SaintMartin: - _ = match_arg_559.value + elif match_arg_649.code == Collectivite_Code.SaintMartin: + _ = match_arg_649.value temp_condition_nationalite = False - elif match_arg_559.code == Collectivite_Code.Metropole: - _ = match_arg_559.value + elif match_arg_649.code == Collectivite_Code.Metropole: + _ = match_arg_649.value temp_condition_nationalite = False - elif match_arg_559.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_559.value + elif match_arg_649.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_649.value temp_condition_nationalite = False - elif match_arg_559.code == Collectivite_Code.Mayotte: - _ = match_arg_559.value + elif match_arg_649.code == Collectivite_Code.Mayotte: + _ = match_arg_649.value temp_condition_nationalite = True if temp_condition_nationalite: - match_arg_560 = demandeur.nationalite - if match_arg_560.code == Nationalite_Code.Francaise: - _ = match_arg_560.value + match_arg_650 = demandeur.nationalite + if match_arg_650.code == Nationalite_Code.Francaise: + _ = match_arg_650.value temp_condition_nationalite_1 = False - elif match_arg_560.code == Nationalite_Code.Etrangere: - conditions = match_arg_560.value + elif match_arg_650.code == Nationalite_Code.Etrangere: + conditions = match_arg_650.value temp_condition_nationalite_1 = conditions.satisfait_art_4_ordonnance_2002_mayotte else: temp_condition_nationalite_1 = dead_value raise EmptyError except EmptyError: - match_arg_561 = demandeur.nationalite - if match_arg_561.code == Nationalite_Code.Francaise: - _ = match_arg_561.value + match_arg_651 = demandeur.nationalite + if match_arg_651.code == Nationalite_Code.Francaise: + _ = match_arg_651.value temp_condition_nationalite_1 = True - elif match_arg_561.code == Nationalite_Code.Etrangere: - conditions_1 = match_arg_561.value + elif match_arg_651.code == Nationalite_Code.Etrangere: + conditions_1 = match_arg_651.value temp_condition_nationalite_1 = conditions_1.satisfait_conditions_l512_2_code_securite_sociale except EmptyError: temp_condition_nationalite_1 = dead_value @@ -31121,42 +34280,42 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen def temp_plafond_individuel_l815_9_secu_1(_:Unit): return False def temp_plafond_individuel_l815_9_secu_2(_:Unit): - if ((date_courante_14 >= date_of_numbers(2021,1,1)) and - (date_courante_14 < + if ((date_courante_15 >= date_of_numbers(2021,1,1)) and + (date_courante_15 < date_of_numbers(2022,1,1))): return money_of_cents_string("1088175") else: raise EmptyError def temp_plafond_individuel_l815_9_secu_3(_:Unit): - if ((date_courante_14 >= date_of_numbers(2022,1,1)) and - (date_courante_14 < + if ((date_courante_15 >= date_of_numbers(2022,1,1)) and + (date_courante_15 < date_of_numbers(2023,1,1))): return money_of_cents_string("1100144") else: raise EmptyError def temp_plafond_individuel_l815_9_secu_4(_:Unit): - if (date_courante_14 >= + if (date_courante_15 >= date_of_numbers(2023,1,1)): return money_of_cents_string("1153302") else: raise EmptyError def temp_plafond_individuel_l815_9_secu_5(_:Unit): - if ((date_courante_14 >= date_of_numbers(2020,1,1)) and - (date_courante_14 < + if ((date_courante_15 >= date_of_numbers(2020,1,1)) and + (date_courante_15 < date_of_numbers(2021,1,1))): return money_of_cents_string("1083840") else: raise EmptyError def temp_plafond_individuel_l815_9_secu_6(_:Unit): - if ((date_courante_14 >= date_of_numbers(2019,1,1)) and - (date_courante_14 < + if ((date_courante_15 >= date_of_numbers(2019,1,1)) and + (date_courante_15 < date_of_numbers(2020,1,1))): return money_of_cents_string("1041840") else: raise EmptyError def temp_plafond_individuel_l815_9_secu_7(_:Unit): - if ((date_courante_14 >= date_of_numbers(2018,4,1)) and - (date_courante_14 < + if ((date_courante_15 >= date_of_numbers(2018,4,1)) and + (date_courante_15 < date_of_numbers(2019,1,1))): return money_of_cents_string("999840") else: @@ -31187,12 +34346,12 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen try: try: try: - match_arg_562 = menage.logement.loue_ou_sous_loue_a_des_tiers - if match_arg_562.code == LoueOuSousLoueADesTiers_Code.Non: - _ = match_arg_562.value + match_arg_652 = menage.logement.loue_ou_sous_loue_a_des_tiers + if match_arg_652.code == LoueOuSousLoueADesTiers_Code.Non: + _ = match_arg_652.value temp_condition_logement_location_tiers = True - elif match_arg_562.code == LoueOuSousLoueADesTiers_Code.Oui: - personne_2 = match_arg_562.value + elif match_arg_652.code == LoueOuSousLoueADesTiers_Code.Oui: + personne_2 = match_arg_652.value try: temp_condition_logement_location_tiers_1 = duration_of_numbers(30,0,0) except EmptyError: @@ -31209,7 +34368,7 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen "Partie législative", "Code de la construction et de l'habitation"])) try: - temp_condition_logement_location_tiers_2 = date_courante_14 + temp_condition_logement_location_tiers_2 = date_courante_15 except EmptyError: temp_condition_logement_location_tiers_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_legislatif.catala_fr", @@ -31249,12 +34408,12 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen temp_condition_logement_location_tiers_4 = dead_value raise EmptyError except EmptyError: - match_arg_563 = menage.logement.loue_ou_sous_loue_a_des_tiers - if match_arg_563.code == LoueOuSousLoueADesTiers_Code.Non: - _ = match_arg_563.value + match_arg_653 = menage.logement.loue_ou_sous_loue_a_des_tiers + if match_arg_653.code == LoueOuSousLoueADesTiers_Code.Non: + _ = match_arg_653.value temp_condition_logement_location_tiers_5 = True - elif match_arg_563.code == LoueOuSousLoueADesTiers_Code.Oui: - _ = match_arg_563.value + elif match_arg_653.code == LoueOuSousLoueADesTiers_Code.Oui: + _ = match_arg_653.value temp_condition_logement_location_tiers_5 = False if temp_condition_logement_location_tiers_5: temp_condition_logement_location_tiers_4 = False @@ -31273,7 +34432,7 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen "Prologue : aides au logement"])) condition_logement_location_tiers = temp_condition_logement_location_tiers_4 try: - temp_prestations_familiales_dot_date_courante = date_courante_14 + temp_prestations_familiales_dot_date_courante = date_courante_15 except EmptyError: temp_prestations_familiales_dot_date_courante = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", @@ -31309,35 +34468,35 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen def temp_prestations_familiales_dot_age_l512_3_2(_:Unit): try: try: - match_arg_564 = menage.residence - if match_arg_564.code == Collectivite_Code.Guadeloupe: - _ = match_arg_564.value + match_arg_654 = menage.residence + if match_arg_654.code == Collectivite_Code.Guadeloupe: + _ = match_arg_654.value temp_prestations_familiales_dot_age_l512_3_2_1 = False - elif match_arg_564.code == Collectivite_Code.Guyane: - _ = match_arg_564.value + elif match_arg_654.code == Collectivite_Code.Guyane: + _ = match_arg_654.value temp_prestations_familiales_dot_age_l512_3_2_1 = False - elif match_arg_564.code == Collectivite_Code.Martinique: - _ = match_arg_564.value + elif match_arg_654.code == Collectivite_Code.Martinique: + _ = match_arg_654.value temp_prestations_familiales_dot_age_l512_3_2_1 = False - elif match_arg_564.code == Collectivite_Code.LaReunion: - _ = match_arg_564.value + elif match_arg_654.code == Collectivite_Code.LaReunion: + _ = match_arg_654.value temp_prestations_familiales_dot_age_l512_3_2_1 = False - elif match_arg_564.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_564.value + elif match_arg_654.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_654.value temp_prestations_familiales_dot_age_l512_3_2_1 = True - elif match_arg_564.code == Collectivite_Code.SaintMartin: - _ = match_arg_564.value + elif match_arg_654.code == Collectivite_Code.SaintMartin: + _ = match_arg_654.value temp_prestations_familiales_dot_age_l512_3_2_1 = True - elif match_arg_564.code == Collectivite_Code.Metropole: - _ = match_arg_564.value + elif match_arg_654.code == Collectivite_Code.Metropole: + _ = match_arg_654.value temp_prestations_familiales_dot_age_l512_3_2_1 = False - elif match_arg_564.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_564.value + elif match_arg_654.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_654.value temp_prestations_familiales_dot_age_l512_3_2_1 = False - elif match_arg_564.code == Collectivite_Code.Mayotte: - _ = match_arg_564.value + elif match_arg_654.code == Collectivite_Code.Mayotte: + _ = match_arg_654.value temp_prestations_familiales_dot_age_l512_3_2_1 = False - if ((date_courante_14 >= + if ((date_courante_15 >= date_entree_vigueur_differee_cch_1) and temp_prestations_familiales_dot_age_l512_3_2_1): temp_prestations_familiales_dot_age_l512_3_2_2 = duration_of_numbers(22,0,0) @@ -31345,33 +34504,33 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen temp_prestations_familiales_dot_age_l512_3_2_2 = dead_value raise EmptyError except EmptyError: - match_arg_565 = menage.residence - if match_arg_565.code == Collectivite_Code.Guadeloupe: - _ = match_arg_565.value + match_arg_655 = menage.residence + if match_arg_655.code == Collectivite_Code.Guadeloupe: + _ = match_arg_655.value temp_prestations_familiales_dot_age_l512_3_2_3 = True - elif match_arg_565.code == Collectivite_Code.Guyane: - _ = match_arg_565.value + elif match_arg_655.code == Collectivite_Code.Guyane: + _ = match_arg_655.value temp_prestations_familiales_dot_age_l512_3_2_3 = True - elif match_arg_565.code == Collectivite_Code.Martinique: - _ = match_arg_565.value + elif match_arg_655.code == Collectivite_Code.Martinique: + _ = match_arg_655.value temp_prestations_familiales_dot_age_l512_3_2_3 = True - elif match_arg_565.code == Collectivite_Code.LaReunion: - _ = match_arg_565.value + elif match_arg_655.code == Collectivite_Code.LaReunion: + _ = match_arg_655.value temp_prestations_familiales_dot_age_l512_3_2_3 = True - elif match_arg_565.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_565.value + elif match_arg_655.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_655.value temp_prestations_familiales_dot_age_l512_3_2_3 = False - elif match_arg_565.code == Collectivite_Code.SaintMartin: - _ = match_arg_565.value + elif match_arg_655.code == Collectivite_Code.SaintMartin: + _ = match_arg_655.value temp_prestations_familiales_dot_age_l512_3_2_3 = False - elif match_arg_565.code == Collectivite_Code.Metropole: - _ = match_arg_565.value + elif match_arg_655.code == Collectivite_Code.Metropole: + _ = match_arg_655.value temp_prestations_familiales_dot_age_l512_3_2_3 = False - elif match_arg_565.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_565.value + elif match_arg_655.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_655.value temp_prestations_familiales_dot_age_l512_3_2_3 = False - elif match_arg_565.code == Collectivite_Code.Mayotte: - _ = match_arg_565.value + elif match_arg_655.code == Collectivite_Code.Mayotte: + _ = match_arg_655.value temp_prestations_familiales_dot_age_l512_3_2_3 = True if temp_prestations_familiales_dot_age_l512_3_2_3: temp_prestations_familiales_dot_age_l512_3_2_2 = duration_of_numbers(22,0,0) @@ -31394,19 +34553,19 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen try: try: try: - match_arg_566 = menage.logement.usufruit - if match_arg_566.code == ParentOuAutre_Code.DemandeurOuConjointOuParentOuViaPartsSocietes: - parts_2 = match_arg_566.value + match_arg_656 = menage.logement.usufruit + if match_arg_656.code == ParentOuAutre_Code.DemandeurOuConjointOuParentOuViaPartsSocietes: + parts_2 = match_arg_656.value temp_condition_logement_mode_occupation = parts_2 - elif match_arg_566.code == ParentOuAutre_Code.Autre: - _ = match_arg_566.value + elif match_arg_656.code == ParentOuAutre_Code.Autre: + _ = match_arg_656.value temp_condition_logement_mode_occupation = decimal_of_string("0.") - match_arg_567 = menage.logement.proprietaire - if match_arg_567.code == ParentOuAutre_Code.DemandeurOuConjointOuParentOuViaPartsSocietes: - parts_3 = match_arg_567.value + match_arg_657 = menage.logement.proprietaire + if match_arg_657.code == ParentOuAutre_Code.DemandeurOuConjointOuParentOuViaPartsSocietes: + parts_3 = match_arg_657.value temp_condition_logement_mode_occupation_1 = parts_3 - elif match_arg_567.code == ParentOuAutre_Code.Autre: - _ = match_arg_567.value + elif match_arg_657.code == ParentOuAutre_Code.Autre: + _ = match_arg_657.value temp_condition_logement_mode_occupation_1 = decimal_of_string("0.") if (usufruit_ou_propriete_famille and ((temp_condition_logement_mode_occupation_1 < @@ -31418,21 +34577,21 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen temp_condition_logement_mode_occupation_2 = dead_value raise EmptyError except EmptyError: - match_arg_568 = menage.logement.mode_occupation - if match_arg_568.code == ModeOccupation_Code.Locataire: - _ = match_arg_568.value + match_arg_658 = menage.logement.mode_occupation + if match_arg_658.code == ModeOccupation_Code.Locataire: + _ = match_arg_658.value temp_condition_logement_mode_occupation_3 = usufruit_ou_propriete_famille - elif match_arg_568.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_568.value + elif match_arg_658.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_658.value temp_condition_logement_mode_occupation_3 = False - elif match_arg_568.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - _ = match_arg_568.value + elif match_arg_658.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + _ = match_arg_658.value temp_condition_logement_mode_occupation_3 = False - elif match_arg_568.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_568.value + elif match_arg_658.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_658.value temp_condition_logement_mode_occupation_3 = False - elif match_arg_568.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_568.value + elif match_arg_658.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_658.value temp_condition_logement_mode_occupation_3 = False if temp_condition_logement_mode_occupation_3: temp_condition_logement_mode_occupation_2 = False @@ -31440,21 +34599,21 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen temp_condition_logement_mode_occupation_2 = dead_value raise EmptyError except EmptyError: - match_arg_569 = menage.logement.mode_occupation - if match_arg_569.code == ModeOccupation_Code.Locataire: - _ = match_arg_569.value + match_arg_659 = menage.logement.mode_occupation + if match_arg_659.code == ModeOccupation_Code.Locataire: + _ = match_arg_659.value temp_condition_logement_mode_occupation_4 = True - elif match_arg_569.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_569.value + elif match_arg_659.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_659.value temp_condition_logement_mode_occupation_4 = True - elif match_arg_569.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - _ = match_arg_569.value + elif match_arg_659.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + _ = match_arg_659.value temp_condition_logement_mode_occupation_4 = menage.logement.residence_principale - elif match_arg_569.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_569.value + elif match_arg_659.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_659.value temp_condition_logement_mode_occupation_4 = True - elif match_arg_569.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_569.value + elif match_arg_659.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_659.value temp_condition_logement_mode_occupation_4 = True if temp_condition_logement_mode_occupation_4: temp_condition_logement_mode_occupation_2 = True @@ -31501,24 +34660,24 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen temp_condition_logement_surface = dead_value raise EmptyError except EmptyError: - match_arg_570 = menage.situation_familiale - if match_arg_570.code == SituationFamiliale_Code.Celibataire: - _ = match_arg_570.value + match_arg_660 = menage.situation_familiale + if match_arg_660.code == SituationFamiliale_Code.Celibataire: + _ = match_arg_660.value temp_condition_logement_surface_2 = integer_of_string("9") - elif match_arg_570.code == SituationFamiliale_Code.Maries: - _ = match_arg_570.value + elif match_arg_660.code == SituationFamiliale_Code.Maries: + _ = match_arg_660.value temp_condition_logement_surface_2 = integer_of_string("16") - elif match_arg_570.code == SituationFamiliale_Code.Pacses: - _ = match_arg_570.value + elif match_arg_660.code == SituationFamiliale_Code.Pacses: + _ = match_arg_660.value temp_condition_logement_surface_2 = integer_of_string("16") - elif match_arg_570.code == SituationFamiliale_Code.Concubins: - _ = match_arg_570.value + elif match_arg_660.code == SituationFamiliale_Code.Concubins: + _ = match_arg_660.value temp_condition_logement_surface_2 = integer_of_string("16") - elif match_arg_570.code == SituationFamiliale_Code.CelibataireSepareDeFait: - _ = match_arg_570.value + elif match_arg_660.code == SituationFamiliale_Code.CelibataireSepareDeFait: + _ = match_arg_660.value temp_condition_logement_surface_2 = integer_of_string("9") - elif match_arg_570.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: - _ = match_arg_570.value + elif match_arg_660.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: + _ = match_arg_660.value temp_condition_logement_surface_2 = integer_of_string("16") if (((temp_condition_logement_surface_2 + ((menage.nombre_autres_occupants_logement + @@ -31530,24 +34689,24 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen temp_condition_logement_surface_3 = (menage.logement.surface_m_carres >= integer_of_string("70")) else: - match_arg_571 = menage.situation_familiale - if match_arg_571.code == SituationFamiliale_Code.Celibataire: - _ = match_arg_571.value + match_arg_661 = menage.situation_familiale + if match_arg_661.code == SituationFamiliale_Code.Celibataire: + _ = match_arg_661.value temp_condition_logement_surface_4 = integer_of_string("9") - elif match_arg_571.code == SituationFamiliale_Code.Maries: - _ = match_arg_571.value + elif match_arg_661.code == SituationFamiliale_Code.Maries: + _ = match_arg_661.value temp_condition_logement_surface_4 = integer_of_string("16") - elif match_arg_571.code == SituationFamiliale_Code.Pacses: - _ = match_arg_571.value + elif match_arg_661.code == SituationFamiliale_Code.Pacses: + _ = match_arg_661.value temp_condition_logement_surface_4 = integer_of_string("16") - elif match_arg_571.code == SituationFamiliale_Code.Concubins: - _ = match_arg_571.value + elif match_arg_661.code == SituationFamiliale_Code.Concubins: + _ = match_arg_661.value temp_condition_logement_surface_4 = integer_of_string("16") - elif match_arg_571.code == SituationFamiliale_Code.CelibataireSepareDeFait: - _ = match_arg_571.value + elif match_arg_661.code == SituationFamiliale_Code.CelibataireSepareDeFait: + _ = match_arg_661.value temp_condition_logement_surface_4 = integer_of_string("9") - elif match_arg_571.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: - _ = match_arg_571.value + elif match_arg_661.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: + _ = match_arg_661.value temp_condition_logement_surface_4 = integer_of_string("16") temp_condition_logement_surface_3 = (menage.logement.surface_m_carres >= (temp_condition_logement_surface_4 + @@ -31688,20 +34847,20 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen def temp_condition_2_r823_4(personne_a_charge:PersonneACharge): try: try: - match_arg_572 = personne_a_charge - if match_arg_572.code == PersonneACharge_Code.EnfantACharge: - enfant_2 = match_arg_572.value + match_arg_662 = personne_a_charge + if match_arg_662.code == PersonneACharge_Code.EnfantACharge: + enfant_2 = match_arg_662.value temp_condition_2_r823_4_1 = False - elif match_arg_572.code == PersonneACharge_Code.AutrePersonneACharge: - parent = match_arg_572.value + elif match_arg_662.code == PersonneACharge_Code.AutrePersonneACharge: + parent = match_arg_662.value try: temp_condition_2_r823_4_2 = duration_of_numbers(65,0,0) except EmptyError: temp_condition_2_r823_4_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1213, + start_line=1214, start_column=30, - end_line=1213, + end_line=1214, end_column=35, law_headings=["Article R823-4", "Section 1 : Calcul, liquidation et versement des aides", @@ -31711,13 +34870,13 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_condition_2_r823_4_3 = date_courante_14 + temp_condition_2_r823_4_3 = date_courante_15 except EmptyError: temp_condition_2_r823_4_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1212, + start_line=1213, start_column=37, - end_line=1212, + end_line=1213, end_column=50, law_headings=["Article R823-4", "Section 1 : Calcul, liquidation et versement des aides", @@ -31731,9 +34890,9 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen except EmptyError: temp_condition_2_r823_4_4 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1211, + start_line=1212, start_column=38, - end_line=1211, + end_line=1212, end_column=59, law_headings=["Article R823-4", "Section 1 : Calcul, liquidation et versement des aides", @@ -31748,14 +34907,14 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen (plafond_individuel_l815_9_secu * decimal_of_string("1.25"))) and ((((parent.date_naissance + age_l351_8_1_secu) <= - date_courante_14) or + date_courante_15) or (parent.titulaire_allocation_personne_agee and VerificationAgeInferieurOuEgalA(est_inferieur_ou_egal = verification_age_inferieur_ou_egal_a( VerificationAgeInferieurOuEgalAIn(date_naissance_in = temp_condition_2_r823_4_4, date_courante_in = temp_condition_2_r823_4_3, annees_in = temp_condition_2_r823_4_2)).est_inferieur_ou_egal).est_inferieur_ou_egal)) or (((parent.date_naissance + age_l161_17_2_secu) <= - date_courante_14) and + date_courante_15) and parent.beneficiaire_l161_19_l351_8_l643_3_secu)))) if temp_condition_2_r823_4_1: return True @@ -31812,54 +34971,54 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen try: try: try: - match_arg_573 = personne_a_charge_1 - if match_arg_573.code == PersonneACharge_Code.EnfantACharge: - enfant_3 = match_arg_573.value - match_arg_574 = enfant_3.obligation_scolaire - if match_arg_574.code == SituationObligationScolaire_Code.Avant: - _ = match_arg_574.value + match_arg_663 = personne_a_charge_1 + if match_arg_663.code == PersonneACharge_Code.EnfantACharge: + enfant_3 = match_arg_663.value + match_arg_664 = enfant_3.obligation_scolaire + if match_arg_664.code == SituationObligationScolaire_Code.Avant: + _ = match_arg_664.value temp_prise_en_compte_personne_a_charge_4 = False - elif match_arg_574.code == SituationObligationScolaire_Code.Pendant: - _ = match_arg_574.value + elif match_arg_664.code == SituationObligationScolaire_Code.Pendant: + _ = match_arg_664.value temp_prise_en_compte_personne_a_charge_4 = False - elif match_arg_574.code == SituationObligationScolaire_Code.Apres: - _ = match_arg_574.value + elif match_arg_664.code == SituationObligationScolaire_Code.Apres: + _ = match_arg_664.value temp_prise_en_compte_personne_a_charge_4 = True temp_prise_en_compte_personne_a_charge_5 = (temp_prise_en_compte_personne_a_charge_4 and (((enfant_3.date_de_naissance + prestations_familiales_dot_age_l512_3_2_1) > - date_courante_14) and + date_courante_15) and enfant_3.etudes_apprentissage_stage_formation_pro_impossibilite_travail)) - elif match_arg_573.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_573.value + elif match_arg_663.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_663.value temp_prise_en_compte_personne_a_charge_5 = False - match_arg_575 = menage.residence - if match_arg_575.code == Collectivite_Code.Guadeloupe: - _ = match_arg_575.value + match_arg_665 = menage.residence + if match_arg_665.code == Collectivite_Code.Guadeloupe: + _ = match_arg_665.value temp_prise_en_compte_personne_a_charge_6 = False - elif match_arg_575.code == Collectivite_Code.Guyane: - _ = match_arg_575.value + elif match_arg_665.code == Collectivite_Code.Guyane: + _ = match_arg_665.value temp_prise_en_compte_personne_a_charge_6 = False - elif match_arg_575.code == Collectivite_Code.Martinique: - _ = match_arg_575.value + elif match_arg_665.code == Collectivite_Code.Martinique: + _ = match_arg_665.value temp_prise_en_compte_personne_a_charge_6 = False - elif match_arg_575.code == Collectivite_Code.LaReunion: - _ = match_arg_575.value + elif match_arg_665.code == Collectivite_Code.LaReunion: + _ = match_arg_665.value temp_prise_en_compte_personne_a_charge_6 = False - elif match_arg_575.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_575.value + elif match_arg_665.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_665.value temp_prise_en_compte_personne_a_charge_6 = True - elif match_arg_575.code == Collectivite_Code.SaintMartin: - _ = match_arg_575.value + elif match_arg_665.code == Collectivite_Code.SaintMartin: + _ = match_arg_665.value temp_prise_en_compte_personne_a_charge_6 = True - elif match_arg_575.code == Collectivite_Code.Metropole: - _ = match_arg_575.value + elif match_arg_665.code == Collectivite_Code.Metropole: + _ = match_arg_665.value temp_prise_en_compte_personne_a_charge_6 = False - elif match_arg_575.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_575.value + elif match_arg_665.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_665.value temp_prise_en_compte_personne_a_charge_6 = False - elif match_arg_575.code == Collectivite_Code.Mayotte: - _ = match_arg_575.value + elif match_arg_665.code == Collectivite_Code.Mayotte: + _ = match_arg_665.value temp_prise_en_compte_personne_a_charge_6 = False if (temp_prise_en_compte_personne_a_charge_6 and temp_prise_en_compte_personne_a_charge_5): @@ -31867,54 +35026,54 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen else: raise EmptyError except EmptyError: - match_arg_576 = personne_a_charge_1 - if match_arg_576.code == PersonneACharge_Code.EnfantACharge: - enfant_4 = match_arg_576.value - match_arg_577 = enfant_4.obligation_scolaire - if match_arg_577.code == SituationObligationScolaire_Code.Avant: - _ = match_arg_577.value + match_arg_666 = personne_a_charge_1 + if match_arg_666.code == PersonneACharge_Code.EnfantACharge: + enfant_4 = match_arg_666.value + match_arg_667 = enfant_4.obligation_scolaire + if match_arg_667.code == SituationObligationScolaire_Code.Avant: + _ = match_arg_667.value temp_prise_en_compte_personne_a_charge_7 = False - elif match_arg_577.code == SituationObligationScolaire_Code.Pendant: - _ = match_arg_577.value + elif match_arg_667.code == SituationObligationScolaire_Code.Pendant: + _ = match_arg_667.value temp_prise_en_compte_personne_a_charge_7 = False - elif match_arg_577.code == SituationObligationScolaire_Code.Apres: - _ = match_arg_577.value + elif match_arg_667.code == SituationObligationScolaire_Code.Apres: + _ = match_arg_667.value temp_prise_en_compte_personne_a_charge_7 = True temp_prise_en_compte_personne_a_charge_8 = (temp_prise_en_compte_personne_a_charge_7 and (((enfant_4.date_de_naissance + prestations_familiales_dot_age_l512_3_2_1) > - date_courante_14) and + date_courante_15) and enfant_4.etudes_apprentissage_stage_formation_pro_impossibilite_travail)) - elif match_arg_576.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_576.value + elif match_arg_666.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_666.value temp_prise_en_compte_personne_a_charge_8 = False - match_arg_578 = menage.residence - if match_arg_578.code == Collectivite_Code.Guadeloupe: - _ = match_arg_578.value + match_arg_668 = menage.residence + if match_arg_668.code == Collectivite_Code.Guadeloupe: + _ = match_arg_668.value temp_prise_en_compte_personne_a_charge_9 = True - elif match_arg_578.code == Collectivite_Code.Guyane: - _ = match_arg_578.value + elif match_arg_668.code == Collectivite_Code.Guyane: + _ = match_arg_668.value temp_prise_en_compte_personne_a_charge_9 = True - elif match_arg_578.code == Collectivite_Code.Martinique: - _ = match_arg_578.value + elif match_arg_668.code == Collectivite_Code.Martinique: + _ = match_arg_668.value temp_prise_en_compte_personne_a_charge_9 = True - elif match_arg_578.code == Collectivite_Code.LaReunion: - _ = match_arg_578.value + elif match_arg_668.code == Collectivite_Code.LaReunion: + _ = match_arg_668.value temp_prise_en_compte_personne_a_charge_9 = True - elif match_arg_578.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_578.value + elif match_arg_668.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_668.value temp_prise_en_compte_personne_a_charge_9 = False - elif match_arg_578.code == Collectivite_Code.SaintMartin: - _ = match_arg_578.value + elif match_arg_668.code == Collectivite_Code.SaintMartin: + _ = match_arg_668.value temp_prise_en_compte_personne_a_charge_9 = False - elif match_arg_578.code == Collectivite_Code.Metropole: - _ = match_arg_578.value + elif match_arg_668.code == Collectivite_Code.Metropole: + _ = match_arg_668.value temp_prise_en_compte_personne_a_charge_9 = False - elif match_arg_578.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_578.value + elif match_arg_668.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_668.value temp_prise_en_compte_personne_a_charge_9 = False - elif match_arg_578.code == Collectivite_Code.Mayotte: - _ = match_arg_578.value + elif match_arg_668.code == Collectivite_Code.Mayotte: + _ = match_arg_668.value temp_prise_en_compte_personne_a_charge_9 = True if (temp_prise_en_compte_personne_a_charge_9 and temp_prise_en_compte_personne_a_charge_8): @@ -31922,18 +35081,18 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen else: raise EmptyError except EmptyError: - match_arg_579 = personne_a_charge_1 - if match_arg_579.code == PersonneACharge_Code.EnfantACharge: - enfant_5 = match_arg_579.value - match_arg_580 = enfant_5.nationalite - if match_arg_580.code == Nationalite_Code.Francaise: - _ = match_arg_580.value + match_arg_669 = personne_a_charge_1 + if match_arg_669.code == PersonneACharge_Code.EnfantACharge: + enfant_5 = match_arg_669.value + match_arg_670 = enfant_5.nationalite + if match_arg_670.code == Nationalite_Code.Francaise: + _ = match_arg_670.value temp_prise_en_compte_personne_a_charge_10 = False - elif match_arg_580.code == Nationalite_Code.Etrangere: - conditions_2 = match_arg_580.value + elif match_arg_670.code == Nationalite_Code.Etrangere: + conditions_2 = match_arg_670.value temp_prise_en_compte_personne_a_charge_10 = not conditions_2.satisfait_conditions_l512_2_code_securite_sociale - elif match_arg_579.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_579.value + elif match_arg_669.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_669.value temp_prise_en_compte_personne_a_charge_10 = False if (septieme_alinea_l823_1_applicable and temp_prise_en_compte_personne_a_charge_10): @@ -31941,16 +35100,16 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen else: raise EmptyError except EmptyError: - match_arg_581 = personne_a_charge_1 - if match_arg_581.code == PersonneACharge_Code.EnfantACharge: - enfant_6 = match_arg_581.value - match_arg_582 = enfant_6.situation_garde_alternee - if match_arg_582.code == SituationGardeAlternee_Code.PasDeGardeAlternee: - _ = match_arg_582.value + match_arg_671 = personne_a_charge_1 + if match_arg_671.code == PersonneACharge_Code.EnfantACharge: + enfant_6 = match_arg_671.value + match_arg_672 = enfant_6.situation_garde_alternee + if match_arg_672.code == SituationGardeAlternee_Code.PasDeGardeAlternee: + _ = match_arg_672.value temp_prise_en_compte_personne_a_charge_11 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.EffectiveEtPermanente, Unit()) - elif match_arg_582.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: - _ = match_arg_582.value + elif match_arg_672.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: + _ = match_arg_672.value temp_prise_en_compte_personne_a_charge_11 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.GardeAlterneePartageAllocations, Unit()) temp_prise_en_compte_personne_a_charge_12 = prestations_familiales_dot_droit_ouvert( @@ -31961,8 +35120,8 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen prise_en_charge = temp_prise_en_compte_personne_a_charge_11, a_deja_ouvert_droit_aux_allocations_familiales = enfant_6.a_deja_ouvert_droit_aux_allocations_familiales, beneficie_titre_personnel_aide_personnelle_logement = enfant_6.beneficie_titre_personnel_aide_personnelle_logement)) - elif match_arg_581.code == PersonneACharge_Code.AutrePersonneACharge: - parent_1 = match_arg_581.value + elif match_arg_671.code == PersonneACharge_Code.AutrePersonneACharge: + parent_1 = match_arg_671.value temp_prise_en_compte_personne_a_charge_12 = False if temp_prise_en_compte_personne_a_charge_12: return True @@ -31970,12 +35129,12 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen raise EmptyError def temp_prise_en_compte_personne_a_charge_13(_:Unit): try: - match_arg_583 = personne_a_charge_1 - if match_arg_583.code == PersonneACharge_Code.EnfantACharge: - enfant_7 = match_arg_583.value + match_arg_673 = personne_a_charge_1 + if match_arg_673.code == PersonneACharge_Code.EnfantACharge: + enfant_7 = match_arg_673.value temp_prise_en_compte_personne_a_charge_14 = False - elif match_arg_583.code == PersonneACharge_Code.AutrePersonneACharge: - parent_2 = match_arg_583.value + elif match_arg_673.code == PersonneACharge_Code.AutrePersonneACharge: + parent_2 = match_arg_673.value temp_prise_en_compte_personne_a_charge_14 = (parent_2.incapacite_80_pourcent_ou_restriction_emploi and (parent_2.ressources <= (plafond_individuel_l815_9_secu * @@ -32032,32 +35191,32 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen personnes_a_charge_prises_en_compte = temp_personnes_a_charge_prises_en_compte_1 try: def temp_coefficents_enfants_garde_alternee_pris_en_compte(personne_a_charge_3:PersonneACharge): - match_arg_584 = personne_a_charge_3 - if match_arg_584.code == PersonneACharge_Code.EnfantACharge: - enfant_8 = match_arg_584.value - match_arg_585 = enfant_8.situation_garde_alternee - if match_arg_585.code == SituationGardeAlternee_Code.PasDeGardeAlternee: - _ = match_arg_585.value + match_arg_674 = personne_a_charge_3 + if match_arg_674.code == PersonneACharge_Code.EnfantACharge: + enfant_8 = match_arg_674.value + match_arg_675 = enfant_8.situation_garde_alternee + if match_arg_675.code == SituationGardeAlternee_Code.PasDeGardeAlternee: + _ = match_arg_675.value return False - elif match_arg_585.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: - _ = match_arg_585.value + elif match_arg_675.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: + _ = match_arg_675.value return True - elif match_arg_584.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_584.value + elif match_arg_674.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_674.value return False def temp_coefficents_enfants_garde_alternee_pris_en_compte_1(personne_a_charge_4:PersonneACharge): - match_arg_586 = personne_a_charge_4 - if match_arg_586.code == PersonneACharge_Code.EnfantACharge: - enfant_9 = match_arg_586.value - match_arg_587 = enfant_9.situation_garde_alternee - if match_arg_587.code == SituationGardeAlternee_Code.PasDeGardeAlternee: - _ = match_arg_587.value + match_arg_676 = personne_a_charge_4 + if match_arg_676.code == PersonneACharge_Code.EnfantACharge: + enfant_9 = match_arg_676.value + match_arg_677 = enfant_9.situation_garde_alternee + if match_arg_677.code == SituationGardeAlternee_Code.PasDeGardeAlternee: + _ = match_arg_677.value return decimal_of_string("0.") - elif match_arg_587.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: - coeff = match_arg_587.value + elif match_arg_677.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: + coeff = match_arg_677.value return coeff - elif match_arg_586.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_586.value + elif match_arg_676.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_676.value return decimal_of_string("0.") temp_coefficents_enfants_garde_alternee_pris_en_compte_2 = list_map(temp_coefficents_enfants_garde_alternee_pris_en_compte_1, list_filter(temp_coefficents_enfants_garde_alternee_pris_en_compte, @@ -32131,7 +35290,7 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen "Partie législative", "Code de la construction et de l'habitation"])) try: - temp___18 = (date_courante_14 >= date_of_numbers(2018,4,1)) + temp___18 = (date_courante_15 >= date_of_numbers(2018,4,1)) except EmptyError: temp___18 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", @@ -32148,7 +35307,7 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen law_headings=["Éligibilité aux aides personnelles au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) - return EligibiliteAidesPersonnelleLogement(date_courante = date_courante_14, + return EligibiliteAidesPersonnelleLogement(date_courante = date_courante_15, eligibilite = eligibilite, nombre_personnes_a_charge_prises_en_compte = nombre_personnes_a_charge_prises_en_compte, coefficents_enfants_garde_alternee_pris_en_compte = coefficents_enfants_garde_alternee_pris_en_compte, @@ -32158,38 +35317,38 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog mode_occupation_3 = calcul_allocation_logement_in.mode_occupation_in ressources_menage_sans_arrondi_1 = calcul_allocation_logement_in.ressources_menage_sans_arrondi_in situation_familiale_2 = calcul_allocation_logement_in.situation_familiale_in - nombre_personnes_a_charge_9 = calcul_allocation_logement_in.nombre_personnes_a_charge_in + nombre_personnes_a_charge_12 = calcul_allocation_logement_in.nombre_personnes_a_charge_in zone_7 = calcul_allocation_logement_in.zone_in - date_courante_15 = calcul_allocation_logement_in.date_courante_in + date_courante_16 = calcul_allocation_logement_in.date_courante_in type_aide_3 = calcul_allocation_logement_in.type_aide_in residence_9 = calcul_allocation_logement_in.residence_in try: - match_arg_588 = mode_occupation_3 - if match_arg_588.code == ModeOccupation_Code.Locataire: - location_3 = match_arg_588.value + match_arg_678 = mode_occupation_3 + if match_arg_678.code == ModeOccupation_Code.Locataire: + location_3 = match_arg_678.value temp_categorie_calcul_apl_1 = CategorieCalculAPL(CategorieCalculAPL_Code.Location, location_3) - elif match_arg_588.code == ModeOccupation_Code.ResidentLogementFoyer: - logementfoyer_1 = match_arg_588.value + elif match_arg_678.code == ModeOccupation_Code.ResidentLogementFoyer: + logementfoyer_1 = match_arg_678.value temp_categorie_calcul_apl_1 = CategorieCalculAPL(CategorieCalculAPL_Code.LogementFoyer, logementfoyer_1) - elif match_arg_588.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - proprietaire_3 = match_arg_588.value + elif match_arg_678.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + proprietaire_3 = match_arg_678.value temp_categorie_calcul_apl_1 = CategorieCalculAPL(CategorieCalculAPL_Code.AccessionPropriete, proprietaire_3) - elif match_arg_588.code == ModeOccupation_Code.SousLocataire: - location_4 = match_arg_588.value + elif match_arg_678.code == ModeOccupation_Code.SousLocataire: + location_4 = match_arg_678.value temp_categorie_calcul_apl_1 = CategorieCalculAPL(CategorieCalculAPL_Code.Location, location_4) - elif match_arg_588.code == ModeOccupation_Code.LocationAccession: - proprietaire_4 = match_arg_588.value + elif match_arg_678.code == ModeOccupation_Code.LocationAccession: + proprietaire_4 = match_arg_678.value temp_categorie_calcul_apl_1 = CategorieCalculAPL(CategorieCalculAPL_Code.AccessionPropriete, proprietaire_4) except EmptyError: temp_categorie_calcul_apl_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1093, - start_column=11, end_line=1093, + start_line=1104, + start_column=11, end_line=1104, end_column=31, law_headings=["Tous secteurs", "Secteur logement-foyer", @@ -32202,8 +35361,8 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_ressources_menage_avec_arrondi_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1085, - start_column=10, end_line=1085, + start_line=1096, + start_column=10, end_line=1096, end_column=22, law_headings=["Tous secteurs", "Secteur logement-foyer", @@ -32211,36 +35370,36 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Prologue : aides au logement"])) ressources_menage_avec_arrondi_1 = temp_ressources_menage_avec_arrondi_1 try: - match_arg_589 = situation_familiale_2 - if match_arg_589.code == SituationFamiliale_Code.Celibataire: - _ = match_arg_589.value + match_arg_679 = situation_familiale_2 + if match_arg_679.code == SituationFamiliale_Code.Celibataire: + _ = match_arg_679.value temp_situation_familiale_calcul_apl_1 = SituationFamilialeCalculAPL(SituationFamilialeCalculAPL_Code.PersonneSeule, Unit()) - elif match_arg_589.code == SituationFamiliale_Code.Maries: - _ = match_arg_589.value + elif match_arg_679.code == SituationFamiliale_Code.Maries: + _ = match_arg_679.value temp_situation_familiale_calcul_apl_1 = SituationFamilialeCalculAPL(SituationFamilialeCalculAPL_Code.Couple, Unit()) - elif match_arg_589.code == SituationFamiliale_Code.Pacses: - _ = match_arg_589.value + elif match_arg_679.code == SituationFamiliale_Code.Pacses: + _ = match_arg_679.value temp_situation_familiale_calcul_apl_1 = SituationFamilialeCalculAPL(SituationFamilialeCalculAPL_Code.Couple, Unit()) - elif match_arg_589.code == SituationFamiliale_Code.Concubins: - _ = match_arg_589.value + elif match_arg_679.code == SituationFamiliale_Code.Concubins: + _ = match_arg_679.value temp_situation_familiale_calcul_apl_1 = SituationFamilialeCalculAPL(SituationFamilialeCalculAPL_Code.Couple, Unit()) - elif match_arg_589.code == SituationFamiliale_Code.CelibataireSepareDeFait: - _ = match_arg_589.value + elif match_arg_679.code == SituationFamiliale_Code.CelibataireSepareDeFait: + _ = match_arg_679.value temp_situation_familiale_calcul_apl_1 = SituationFamilialeCalculAPL(SituationFamilialeCalculAPL_Code.PersonneSeule, Unit()) - elif match_arg_589.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: - _ = match_arg_589.value + elif match_arg_679.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: + _ = match_arg_679.value temp_situation_familiale_calcul_apl_1 = SituationFamilialeCalculAPL(SituationFamilialeCalculAPL_Code.Couple, Unit()) except EmptyError: temp_situation_familiale_calcul_apl_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1094, - start_column=11, end_line=1094, + start_line=1105, + start_column=11, end_line=1105, end_column=41, law_headings=["Tous secteurs", "Secteur logement-foyer", @@ -32249,55 +35408,55 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog situation_familiale_calcul_apl_9 = temp_situation_familiale_calcul_apl_1 try: try: - match_arg_590 = residence_9 - if match_arg_590.code == Collectivite_Code.Guadeloupe: - _ = match_arg_590.value + match_arg_680 = residence_9 + if match_arg_680.code == Collectivite_Code.Guadeloupe: + _ = match_arg_680.value temp_sous_calcul_traitement_759 = False - elif match_arg_590.code == Collectivite_Code.Guyane: - _ = match_arg_590.value + elif match_arg_680.code == Collectivite_Code.Guyane: + _ = match_arg_680.value temp_sous_calcul_traitement_759 = False - elif match_arg_590.code == Collectivite_Code.Martinique: - _ = match_arg_590.value + elif match_arg_680.code == Collectivite_Code.Martinique: + _ = match_arg_680.value temp_sous_calcul_traitement_759 = False - elif match_arg_590.code == Collectivite_Code.LaReunion: - _ = match_arg_590.value + elif match_arg_680.code == Collectivite_Code.LaReunion: + _ = match_arg_680.value temp_sous_calcul_traitement_759 = False - elif match_arg_590.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_590.value + elif match_arg_680.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_680.value temp_sous_calcul_traitement_759 = False - elif match_arg_590.code == Collectivite_Code.SaintMartin: - _ = match_arg_590.value + elif match_arg_680.code == Collectivite_Code.SaintMartin: + _ = match_arg_680.value temp_sous_calcul_traitement_759 = False - elif match_arg_590.code == Collectivite_Code.Metropole: - _ = match_arg_590.value + elif match_arg_680.code == Collectivite_Code.Metropole: + _ = match_arg_680.value temp_sous_calcul_traitement_759 = False - elif match_arg_590.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_590.value + elif match_arg_680.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_680.value temp_sous_calcul_traitement_759 = True - elif match_arg_590.code == Collectivite_Code.Mayotte: - _ = match_arg_590.value + elif match_arg_680.code == Collectivite_Code.Mayotte: + _ = match_arg_680.value temp_sous_calcul_traitement_759 = False if temp_sous_calcul_traitement_759: - match_arg_591 = categorie_calcul_apl_1 - if match_arg_591.code == CategorieCalculAPL_Code.Location: - _ = match_arg_591.value + match_arg_681 = categorie_calcul_apl_1 + if match_arg_681.code == CategorieCalculAPL_Code.Location: + _ = match_arg_681.value temp_sous_calcul_traitement_760 = TraitementFormuleAideFinale(aide_finale_formule = money_of_cents_string("0"), traitement_aide_finale = traitement_nul_tout_le_temps) - elif match_arg_591.code == CategorieCalculAPL_Code.AccessionPropriete: - _ = match_arg_591.value + elif match_arg_681.code == CategorieCalculAPL_Code.AccessionPropriete: + _ = match_arg_681.value temp_sous_calcul_traitement_760 = TraitementFormuleAideFinale(aide_finale_formule = money_of_cents_string("0"), traitement_aide_finale = traitement_nul_tout_le_temps) - elif match_arg_591.code == CategorieCalculAPL_Code.LogementFoyer: - logement_foyer__2 = match_arg_591.value + elif match_arg_681.code == CategorieCalculAPL_Code.LogementFoyer: + logement_foyer__2 = match_arg_681.value def temp_sous_calcul_traitement_761(param0_8:Money): try: temp_sous_calcul_traitement_762 = logement_foyer__2.redevance except EmptyError: temp_sous_calcul_traitement_762 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6420, + start_line=6425, start_column=31, - end_line=6420, + end_line=6425, end_column=56, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32311,9 +35470,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_763 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6414, + start_line=6419, start_column=43, - end_line=6414, + end_line=6419, end_column=60, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32327,9 +35486,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_764 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6422, + start_line=6427, start_column=15, - end_line=6422, + end_line=6427, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32339,13 +35498,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_765 = date_courante_15 + temp_sous_calcul_traitement_765 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_765 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6417, + start_line=6422, start_column=29, - end_line=6417, + end_line=6422, end_column=42, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32355,13 +35514,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_766 = nombre_personnes_a_charge_9 + temp_sous_calcul_traitement_766 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_766 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6415, + start_line=6420, start_column=41, - end_line=6415, + end_line=6420, end_column=66, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32375,9 +35534,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_767 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6418, + start_line=6423, start_column=46, - end_line=6418, + end_line=6423, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32391,9 +35550,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_768 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6416, + start_line=6421, start_column=20, - end_line=6416, + end_line=6421, end_column=24, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32407,9 +35566,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_769 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6426, + start_line=6431, start_column=36, - end_line=6426, + end_line=6431, end_column=40, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32423,9 +35582,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_770 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6433, + start_line=6438, start_column=72, - end_line=6433, + end_line=6438, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32439,9 +35598,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_771 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6434, + start_line=6439, start_column=25, - end_line=6434, + end_line=6439, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32455,9 +35614,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_772 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6430, + start_line=6435, start_column=26, - end_line=6430, + end_line=6435, end_column=30, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32471,9 +35630,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_773 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6437, + start_line=6442, start_column=42, - end_line=6437, + end_line=6442, end_column=45, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32487,9 +35646,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_774 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6438, + start_line=6443, start_column=38, - end_line=6438, + end_line=6443, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32503,9 +35662,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_775 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6413, + start_line=6418, start_column=25, - end_line=6413, + end_line=6418, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32520,9 +35679,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_776 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6439, + start_line=6444, start_column=42, - end_line=6439, + end_line=6444, end_column=57, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32552,9 +35711,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_777 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6420, + start_line=6425, start_column=31, - end_line=6420, + end_line=6425, end_column=56, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32568,9 +35727,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_778 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6414, + start_line=6419, start_column=43, - end_line=6414, + end_line=6419, end_column=60, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32584,9 +35743,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_779 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6422, + start_line=6427, start_column=15, - end_line=6422, + end_line=6427, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32596,13 +35755,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_780 = date_courante_15 + temp_sous_calcul_traitement_780 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_780 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6417, + start_line=6422, start_column=29, - end_line=6417, + end_line=6422, end_column=42, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32612,13 +35771,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_781 = nombre_personnes_a_charge_9 + temp_sous_calcul_traitement_781 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_781 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6415, + start_line=6420, start_column=41, - end_line=6415, + end_line=6420, end_column=66, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32632,9 +35791,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_782 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6418, + start_line=6423, start_column=46, - end_line=6418, + end_line=6423, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32648,9 +35807,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_783 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6416, + start_line=6421, start_column=20, - end_line=6416, + end_line=6421, end_column=24, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32664,9 +35823,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_784 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6426, + start_line=6431, start_column=36, - end_line=6426, + end_line=6431, end_column=40, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32680,9 +35839,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_785 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6433, + start_line=6438, start_column=72, - end_line=6433, + end_line=6438, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32696,9 +35855,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_786 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6434, + start_line=6439, start_column=25, - end_line=6434, + end_line=6439, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32712,9 +35871,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_787 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6430, + start_line=6435, start_column=26, - end_line=6430, + end_line=6435, end_column=30, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32728,9 +35887,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_788 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6437, + start_line=6442, start_column=42, - end_line=6437, + end_line=6442, end_column=45, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32744,9 +35903,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_789 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6438, + start_line=6443, start_column=38, - end_line=6438, + end_line=6443, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32760,9 +35919,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_790 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6413, + start_line=6418, start_column=25, - end_line=6413, + end_line=6418, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32777,9 +35936,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_791 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6439, + start_line=6444, start_column=42, - end_line=6439, + end_line=6444, end_column=57, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32794,9 +35953,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_793 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6420, + start_line=6425, start_column=31, - end_line=6420, + end_line=6425, end_column=56, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32810,9 +35969,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_794 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6414, + start_line=6419, start_column=43, - end_line=6414, + end_line=6419, end_column=60, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32826,9 +35985,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_795 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6422, + start_line=6427, start_column=15, - end_line=6422, + end_line=6427, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32838,13 +35997,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_796 = date_courante_15 + temp_sous_calcul_traitement_796 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_796 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6417, + start_line=6422, start_column=29, - end_line=6417, + end_line=6422, end_column=42, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32854,13 +36013,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_797 = nombre_personnes_a_charge_9 + temp_sous_calcul_traitement_797 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_797 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6415, + start_line=6420, start_column=41, - end_line=6415, + end_line=6420, end_column=66, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32874,9 +36033,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_798 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6418, + start_line=6423, start_column=46, - end_line=6418, + end_line=6423, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32890,9 +36049,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_799 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6416, + start_line=6421, start_column=20, - end_line=6416, + end_line=6421, end_column=24, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32906,9 +36065,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_800 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6426, + start_line=6431, start_column=36, - end_line=6426, + end_line=6431, end_column=40, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32922,9 +36081,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_801 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6433, + start_line=6438, start_column=72, - end_line=6433, + end_line=6438, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32938,9 +36097,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_802 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6434, + start_line=6439, start_column=25, - end_line=6434, + end_line=6439, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32954,9 +36113,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_803 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6430, + start_line=6435, start_column=26, - end_line=6430, + end_line=6435, end_column=30, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32970,9 +36129,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_804 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6437, + start_line=6442, start_column=42, - end_line=6437, + end_line=6442, end_column=45, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -32986,9 +36145,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_805 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6438, + start_line=6443, start_column=38, - end_line=6438, + end_line=6443, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -33002,9 +36161,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_806 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6413, + start_line=6418, start_column=25, - end_line=6413, + end_line=6418, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -33019,9 +36178,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_807 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6439, + start_line=6444, start_column=42, - end_line=6439, + end_line=6444, end_column=57, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -33051,9 +36210,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_808 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6420, + start_line=6425, start_column=31, - end_line=6420, + end_line=6425, end_column=56, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -33067,9 +36226,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_809 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6414, + start_line=6419, start_column=43, - end_line=6414, + end_line=6419, end_column=60, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -33083,9 +36242,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_810 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6422, + start_line=6427, start_column=15, - end_line=6422, + end_line=6427, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -33095,13 +36254,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_811 = date_courante_15 + temp_sous_calcul_traitement_811 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_811 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6417, + start_line=6422, start_column=29, - end_line=6417, + end_line=6422, end_column=42, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -33111,13 +36270,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_812 = nombre_personnes_a_charge_9 + temp_sous_calcul_traitement_812 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_812 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6415, + start_line=6420, start_column=41, - end_line=6415, + end_line=6420, end_column=66, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -33131,9 +36290,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_813 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6418, + start_line=6423, start_column=46, - end_line=6418, + end_line=6423, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -33147,9 +36306,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_814 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6416, + start_line=6421, start_column=20, - end_line=6416, + end_line=6421, end_column=24, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -33163,9 +36322,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_815 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6426, + start_line=6431, start_column=36, - end_line=6426, + end_line=6431, end_column=40, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -33179,9 +36338,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_816 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6433, + start_line=6438, start_column=72, - end_line=6433, + end_line=6438, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -33195,9 +36354,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_817 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6434, + start_line=6439, start_column=25, - end_line=6434, + end_line=6439, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -33211,9 +36370,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_818 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6430, + start_line=6435, start_column=26, - end_line=6430, + end_line=6435, end_column=30, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -33227,9 +36386,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_819 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6437, + start_line=6442, start_column=42, - end_line=6437, + end_line=6442, end_column=45, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -33243,9 +36402,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_820 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6438, + start_line=6443, start_column=38, - end_line=6438, + end_line=6443, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -33259,9 +36418,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_821 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6413, + start_line=6418, start_column=25, - end_line=6413, + end_line=6418, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -33276,9 +36435,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_822 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6439, + start_line=6444, start_column=42, - end_line=6439, + end_line=6444, end_column=57, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -33325,18 +36484,18 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog temp_sous_calcul_traitement_760 = dead_value raise EmptyError except EmptyError: - match_arg_592 = categorie_calcul_apl_1 - if match_arg_592.code == CategorieCalculAPL_Code.Location: - location_5 = match_arg_592.value + match_arg_682 = categorie_calcul_apl_1 + if match_arg_682.code == CategorieCalculAPL_Code.Location: + location_5 = match_arg_682.value def temp_sous_calcul_traitement_823(param0_10:Money): try: temp_sous_calcul_traitement_824 = location_5.loyer_principal except EmptyError: temp_sous_calcul_traitement_824 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1564, + start_line=1566, start_column=31, - end_line=1564, + end_line=1566, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33350,9 +36509,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_825 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1559, + start_line=1561, start_column=43, - end_line=1559, + end_line=1561, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33366,9 +36525,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_826 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1566, + start_line=1568, start_column=15, - end_line=1566, + end_line=1568, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33378,13 +36537,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_827 = date_courante_15 + temp_sous_calcul_traitement_827 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_827 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1562, + start_line=1564, start_column=29, - end_line=1562, + end_line=1564, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33394,13 +36553,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_828 = nombre_personnes_a_charge_9 + temp_sous_calcul_traitement_828 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_828 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1560, + start_line=1562, start_column=41, - end_line=1560, + end_line=1562, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33414,9 +36573,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_829 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1563, + start_line=1565, start_column=46, - end_line=1563, + end_line=1565, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33430,9 +36589,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_830 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1561, + start_line=1563, start_column=20, - end_line=1561, + end_line=1563, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33446,9 +36605,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_831 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1567, + start_line=1569, start_column=36, - end_line=1567, + end_line=1569, end_column=65, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33462,9 +36621,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_832 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1570, + start_line=1572, start_column=15, - end_line=1570, + end_line=1572, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33478,9 +36637,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_833 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1571, + start_line=1573, start_column=25, - end_line=1571, + end_line=1573, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33494,9 +36653,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_834 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1568, + start_line=1570, start_column=26, - end_line=1568, + end_line=1570, end_column=45, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33506,22 +36665,22 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - match_arg_593 = location_5.bailleur - if match_arg_593.code == TypeBailleur_Code.BailleurSocial: - bailleur_14 = match_arg_593.value + match_arg_683 = location_5.bailleur + if match_arg_683.code == TypeBailleur_Code.BailleurSocial: + bailleur_14 = match_arg_683.value temp_sous_calcul_traitement_835 = bailleur_14.reduction_loyer_solidarite_percue - elif match_arg_593.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_593.value + elif match_arg_683.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_683.value temp_sous_calcul_traitement_835 = money_of_cents_string("0") - elif match_arg_593.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_593.value + elif match_arg_683.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_683.value temp_sous_calcul_traitement_835 = money_of_cents_string("0") except EmptyError: temp_sous_calcul_traitement_835 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1573, + start_line=1575, start_column=16, - end_line=1576, + end_line=1578, end_column=39, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33535,9 +36694,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_836 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1577, + start_line=1579, start_column=38, - end_line=1577, + end_line=1579, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33551,9 +36710,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_837 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1558, + start_line=1560, start_column=25, - end_line=1558, + end_line=1560, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33567,9 +36726,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_838 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1578, + start_line=1580, start_column=42, - end_line=1578, + end_line=1580, end_column=77, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33599,9 +36758,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_839 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1564, + start_line=1566, start_column=31, - end_line=1564, + end_line=1566, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33615,9 +36774,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_840 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1559, + start_line=1561, start_column=43, - end_line=1559, + end_line=1561, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33631,9 +36790,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_841 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1566, + start_line=1568, start_column=15, - end_line=1566, + end_line=1568, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33643,13 +36802,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_842 = date_courante_15 + temp_sous_calcul_traitement_842 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_842 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1562, + start_line=1564, start_column=29, - end_line=1562, + end_line=1564, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33659,13 +36818,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_843 = nombre_personnes_a_charge_9 + temp_sous_calcul_traitement_843 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_843 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1560, + start_line=1562, start_column=41, - end_line=1560, + end_line=1562, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33679,9 +36838,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_844 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1563, + start_line=1565, start_column=46, - end_line=1563, + end_line=1565, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33695,9 +36854,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_845 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1561, + start_line=1563, start_column=20, - end_line=1561, + end_line=1563, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33711,9 +36870,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_846 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1567, + start_line=1569, start_column=36, - end_line=1567, + end_line=1569, end_column=65, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33727,9 +36886,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_847 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1570, + start_line=1572, start_column=15, - end_line=1570, + end_line=1572, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33743,9 +36902,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_848 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1571, + start_line=1573, start_column=25, - end_line=1571, + end_line=1573, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33759,9 +36918,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_849 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1568, + start_line=1570, start_column=26, - end_line=1568, + end_line=1570, end_column=45, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33771,22 +36930,22 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - match_arg_594 = location_5.bailleur - if match_arg_594.code == TypeBailleur_Code.BailleurSocial: - bailleur_15 = match_arg_594.value + match_arg_684 = location_5.bailleur + if match_arg_684.code == TypeBailleur_Code.BailleurSocial: + bailleur_15 = match_arg_684.value temp_sous_calcul_traitement_850 = bailleur_15.reduction_loyer_solidarite_percue - elif match_arg_594.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_594.value + elif match_arg_684.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_684.value temp_sous_calcul_traitement_850 = money_of_cents_string("0") - elif match_arg_594.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_594.value + elif match_arg_684.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_684.value temp_sous_calcul_traitement_850 = money_of_cents_string("0") except EmptyError: temp_sous_calcul_traitement_850 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1573, + start_line=1575, start_column=16, - end_line=1576, + end_line=1578, end_column=39, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33800,9 +36959,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_851 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1577, + start_line=1579, start_column=38, - end_line=1577, + end_line=1579, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33816,9 +36975,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_852 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1558, + start_line=1560, start_column=25, - end_line=1558, + end_line=1560, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33832,9 +36991,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_853 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1578, + start_line=1580, start_column=42, - end_line=1578, + end_line=1580, end_column=77, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33849,9 +37008,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_855 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1564, + start_line=1566, start_column=31, - end_line=1564, + end_line=1566, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33865,9 +37024,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_856 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1559, + start_line=1561, start_column=43, - end_line=1559, + end_line=1561, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33881,9 +37040,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_857 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1566, + start_line=1568, start_column=15, - end_line=1566, + end_line=1568, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33893,13 +37052,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_858 = date_courante_15 + temp_sous_calcul_traitement_858 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_858 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1562, + start_line=1564, start_column=29, - end_line=1562, + end_line=1564, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33909,13 +37068,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_859 = nombre_personnes_a_charge_9 + temp_sous_calcul_traitement_859 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_859 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1560, + start_line=1562, start_column=41, - end_line=1560, + end_line=1562, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33929,9 +37088,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_860 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1563, + start_line=1565, start_column=46, - end_line=1563, + end_line=1565, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33945,9 +37104,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_861 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1561, + start_line=1563, start_column=20, - end_line=1561, + end_line=1563, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33961,9 +37120,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_862 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1567, + start_line=1569, start_column=36, - end_line=1567, + end_line=1569, end_column=65, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33977,9 +37136,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_863 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1570, + start_line=1572, start_column=15, - end_line=1570, + end_line=1572, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -33993,9 +37152,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_864 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1571, + start_line=1573, start_column=25, - end_line=1571, + end_line=1573, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34009,9 +37168,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_865 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1568, + start_line=1570, start_column=26, - end_line=1568, + end_line=1570, end_column=45, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34021,22 +37180,22 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - match_arg_595 = location_5.bailleur - if match_arg_595.code == TypeBailleur_Code.BailleurSocial: - bailleur_16 = match_arg_595.value + match_arg_685 = location_5.bailleur + if match_arg_685.code == TypeBailleur_Code.BailleurSocial: + bailleur_16 = match_arg_685.value temp_sous_calcul_traitement_866 = bailleur_16.reduction_loyer_solidarite_percue - elif match_arg_595.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_595.value + elif match_arg_685.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_685.value temp_sous_calcul_traitement_866 = money_of_cents_string("0") - elif match_arg_595.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_595.value + elif match_arg_685.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_685.value temp_sous_calcul_traitement_866 = money_of_cents_string("0") except EmptyError: temp_sous_calcul_traitement_866 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1573, + start_line=1575, start_column=16, - end_line=1576, + end_line=1578, end_column=39, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34050,9 +37209,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_867 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1577, + start_line=1579, start_column=38, - end_line=1577, + end_line=1579, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34066,9 +37225,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_868 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1558, + start_line=1560, start_column=25, - end_line=1558, + end_line=1560, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34082,9 +37241,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_869 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1578, + start_line=1580, start_column=42, - end_line=1578, + end_line=1580, end_column=77, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34114,9 +37273,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_870 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1564, + start_line=1566, start_column=31, - end_line=1564, + end_line=1566, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34130,9 +37289,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_871 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1559, + start_line=1561, start_column=43, - end_line=1559, + end_line=1561, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34146,9 +37305,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_872 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1566, + start_line=1568, start_column=15, - end_line=1566, + end_line=1568, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34158,13 +37317,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_873 = date_courante_15 + temp_sous_calcul_traitement_873 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_873 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1562, + start_line=1564, start_column=29, - end_line=1562, + end_line=1564, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34174,13 +37333,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_874 = nombre_personnes_a_charge_9 + temp_sous_calcul_traitement_874 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_874 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1560, + start_line=1562, start_column=41, - end_line=1560, + end_line=1562, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34194,9 +37353,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_875 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1563, + start_line=1565, start_column=46, - end_line=1563, + end_line=1565, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34210,9 +37369,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_876 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1561, + start_line=1563, start_column=20, - end_line=1561, + end_line=1563, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34226,9 +37385,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_877 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1567, + start_line=1569, start_column=36, - end_line=1567, + end_line=1569, end_column=65, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34242,9 +37401,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_878 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1570, + start_line=1572, start_column=15, - end_line=1570, + end_line=1572, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34258,9 +37417,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_879 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1571, + start_line=1573, start_column=25, - end_line=1571, + end_line=1573, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34274,9 +37433,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_880 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1568, + start_line=1570, start_column=26, - end_line=1568, + end_line=1570, end_column=45, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34286,22 +37445,22 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - match_arg_596 = location_5.bailleur - if match_arg_596.code == TypeBailleur_Code.BailleurSocial: - bailleur_17 = match_arg_596.value + match_arg_686 = location_5.bailleur + if match_arg_686.code == TypeBailleur_Code.BailleurSocial: + bailleur_17 = match_arg_686.value temp_sous_calcul_traitement_881 = bailleur_17.reduction_loyer_solidarite_percue - elif match_arg_596.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_596.value + elif match_arg_686.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_686.value temp_sous_calcul_traitement_881 = money_of_cents_string("0") - elif match_arg_596.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_596.value + elif match_arg_686.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_686.value temp_sous_calcul_traitement_881 = money_of_cents_string("0") except EmptyError: temp_sous_calcul_traitement_881 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1573, + start_line=1575, start_column=16, - end_line=1576, + end_line=1578, end_column=39, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34315,9 +37474,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_882 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1577, + start_line=1579, start_column=38, - end_line=1577, + end_line=1579, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34331,9 +37490,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_883 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1558, + start_line=1560, start_column=25, - end_line=1558, + end_line=1560, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34347,9 +37506,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_884 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1578, + start_line=1580, start_column=42, - end_line=1578, + end_line=1580, end_column=77, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34392,17 +37551,17 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog residence_in = temp_sous_calcul_traitement_883, changement_logement_d842_4_in = temp_sous_calcul_traitement_884)).aide_finale_formule, traitement_aide_finale = temp_sous_calcul_traitement_854).traitement_aide_finale) - elif match_arg_592.code == CategorieCalculAPL_Code.AccessionPropriete: - proprietaire_5 = match_arg_592.value + elif match_arg_682.code == CategorieCalculAPL_Code.AccessionPropriete: + proprietaire_5 = match_arg_682.value def temp_sous_calcul_traitement_885(param0_12:Money): try: temp_sous_calcul_traitement_886 = ressources_menage_avec_arrondi_1 except EmptyError: temp_sous_calcul_traitement_886 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1613, + start_line=1615, start_column=44, - end_line=1613, + end_line=1615, end_column=61, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34412,13 +37571,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_887 = nombre_personnes_a_charge_9 + temp_sous_calcul_traitement_887 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_887 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1614, + start_line=1616, start_column=42, - end_line=1614, + end_line=1616, end_column=67, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34432,9 +37591,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_888 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1621, + start_line=1623, start_column=47, - end_line=1621, + end_line=1623, end_column=77, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34448,9 +37607,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_889 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1615, + start_line=1617, start_column=21, - end_line=1615, + end_line=1617, end_column=25, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34464,9 +37623,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_890 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1616, + start_line=1618, start_column=26, - end_line=1616, + end_line=1618, end_column=35, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34476,13 +37635,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_891 = date_courante_15 + temp_sous_calcul_traitement_891 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_891 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1620, + start_line=1622, start_column=30, - end_line=1620, + end_line=1622, end_column=43, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34496,9 +37655,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_892 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1622, + start_line=1624, start_column=38, - end_line=1622, + end_line=1624, end_column=72, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34512,9 +37671,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_893 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1630, + start_line=1632, start_column=40, - end_line=1630, + end_line=1632, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34528,9 +37687,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_894 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1625, + start_line=1627, start_column=36, - end_line=1625, + end_line=1627, end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34544,9 +37703,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_895 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1624, + start_line=1626, start_column=38, - end_line=1624, + end_line=1626, end_column=79, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34560,9 +37719,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_896 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1627, + start_line=1629, start_column=14, - end_line=1627, + end_line=1629, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34576,9 +37735,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_897 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1628, + start_line=1630, start_column=37, - end_line=1628, + end_line=1630, end_column=70, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34592,9 +37751,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_898 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1623, + start_line=1625, start_column=40, - end_line=1623, + end_line=1625, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34608,9 +37767,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_899 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1629, + start_line=1631, start_column=28, - end_line=1629, + end_line=1631, end_column=52, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34624,9 +37783,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_900 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1618, + start_line=1620, start_column=11, - end_line=1619, + end_line=1621, end_column=81, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34657,9 +37816,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_901 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1613, + start_line=1615, start_column=44, - end_line=1613, + end_line=1615, end_column=61, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34669,13 +37828,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_902 = nombre_personnes_a_charge_9 + temp_sous_calcul_traitement_902 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_902 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1614, + start_line=1616, start_column=42, - end_line=1614, + end_line=1616, end_column=67, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34689,9 +37848,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_903 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1621, + start_line=1623, start_column=47, - end_line=1621, + end_line=1623, end_column=77, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34705,9 +37864,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_904 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1615, + start_line=1617, start_column=21, - end_line=1615, + end_line=1617, end_column=25, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34721,9 +37880,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_905 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1616, + start_line=1618, start_column=26, - end_line=1616, + end_line=1618, end_column=35, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34733,13 +37892,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_906 = date_courante_15 + temp_sous_calcul_traitement_906 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_906 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1620, + start_line=1622, start_column=30, - end_line=1620, + end_line=1622, end_column=43, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34753,9 +37912,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_907 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1622, + start_line=1624, start_column=38, - end_line=1622, + end_line=1624, end_column=72, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34769,9 +37928,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_908 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1630, + start_line=1632, start_column=40, - end_line=1630, + end_line=1632, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34785,9 +37944,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_909 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1625, + start_line=1627, start_column=36, - end_line=1625, + end_line=1627, end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34801,9 +37960,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_910 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1624, + start_line=1626, start_column=38, - end_line=1624, + end_line=1626, end_column=79, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34817,9 +37976,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_911 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1627, + start_line=1629, start_column=14, - end_line=1627, + end_line=1629, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34833,9 +37992,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_912 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1628, + start_line=1630, start_column=37, - end_line=1628, + end_line=1630, end_column=70, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34849,9 +38008,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_913 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1623, + start_line=1625, start_column=40, - end_line=1623, + end_line=1625, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34865,9 +38024,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_914 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1629, + start_line=1631, start_column=28, - end_line=1629, + end_line=1631, end_column=52, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34881,9 +38040,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_915 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1618, + start_line=1620, start_column=11, - end_line=1619, + end_line=1621, end_column=81, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34898,9 +38057,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_917 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1613, + start_line=1615, start_column=44, - end_line=1613, + end_line=1615, end_column=61, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34910,13 +38069,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_918 = nombre_personnes_a_charge_9 + temp_sous_calcul_traitement_918 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_918 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1614, + start_line=1616, start_column=42, - end_line=1614, + end_line=1616, end_column=67, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34930,9 +38089,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_919 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1621, + start_line=1623, start_column=47, - end_line=1621, + end_line=1623, end_column=77, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34946,9 +38105,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_920 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1615, + start_line=1617, start_column=21, - end_line=1615, + end_line=1617, end_column=25, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34962,9 +38121,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_921 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1616, + start_line=1618, start_column=26, - end_line=1616, + end_line=1618, end_column=35, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34974,13 +38133,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_922 = date_courante_15 + temp_sous_calcul_traitement_922 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_922 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1620, + start_line=1622, start_column=30, - end_line=1620, + end_line=1622, end_column=43, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -34994,9 +38153,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_923 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1622, + start_line=1624, start_column=38, - end_line=1622, + end_line=1624, end_column=72, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35010,9 +38169,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_924 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1630, + start_line=1632, start_column=40, - end_line=1630, + end_line=1632, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35026,9 +38185,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_925 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1625, + start_line=1627, start_column=36, - end_line=1625, + end_line=1627, end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35042,9 +38201,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_926 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1624, + start_line=1626, start_column=38, - end_line=1624, + end_line=1626, end_column=79, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35058,9 +38217,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_927 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1627, + start_line=1629, start_column=14, - end_line=1627, + end_line=1629, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35074,9 +38233,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_928 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1628, + start_line=1630, start_column=37, - end_line=1628, + end_line=1630, end_column=70, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35090,9 +38249,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_929 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1623, + start_line=1625, start_column=40, - end_line=1623, + end_line=1625, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35106,9 +38265,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_930 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1629, + start_line=1631, start_column=28, - end_line=1629, + end_line=1631, end_column=52, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35122,9 +38281,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_931 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1618, + start_line=1620, start_column=11, - end_line=1619, + end_line=1621, end_column=81, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35155,9 +38314,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_932 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1613, + start_line=1615, start_column=44, - end_line=1613, + end_line=1615, end_column=61, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35167,13 +38326,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_933 = nombre_personnes_a_charge_9 + temp_sous_calcul_traitement_933 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_933 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1614, + start_line=1616, start_column=42, - end_line=1614, + end_line=1616, end_column=67, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35187,9 +38346,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_934 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1621, + start_line=1623, start_column=47, - end_line=1621, + end_line=1623, end_column=77, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35203,9 +38362,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_935 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1615, + start_line=1617, start_column=21, - end_line=1615, + end_line=1617, end_column=25, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35219,9 +38378,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_936 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1616, + start_line=1618, start_column=26, - end_line=1616, + end_line=1618, end_column=35, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35231,13 +38390,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_937 = date_courante_15 + temp_sous_calcul_traitement_937 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_937 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1620, + start_line=1622, start_column=30, - end_line=1620, + end_line=1622, end_column=43, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35251,9 +38410,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_938 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1622, + start_line=1624, start_column=38, - end_line=1622, + end_line=1624, end_column=72, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35267,9 +38426,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_939 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1630, + start_line=1632, start_column=40, - end_line=1630, + end_line=1632, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35283,9 +38442,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_940 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1625, + start_line=1627, start_column=36, - end_line=1625, + end_line=1627, end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35299,9 +38458,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_941 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1624, + start_line=1626, start_column=38, - end_line=1624, + end_line=1626, end_column=79, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35315,9 +38474,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_942 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1627, + start_line=1629, start_column=14, - end_line=1627, + end_line=1629, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35331,9 +38490,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_943 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1628, + start_line=1630, start_column=37, - end_line=1628, + end_line=1630, end_column=70, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35347,9 +38506,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_944 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1623, + start_line=1625, start_column=40, - end_line=1623, + end_line=1625, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35363,9 +38522,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_945 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1629, + start_line=1631, start_column=28, - end_line=1629, + end_line=1631, end_column=52, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35379,9 +38538,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_946 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1618, + start_line=1620, start_column=11, - end_line=1619, + end_line=1621, end_column=81, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35424,17 +38583,17 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog copropriete_in = temp_sous_calcul_traitement_945, operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in = temp_sous_calcul_traitement_946)).aide_finale_formule, traitement_aide_finale = temp_sous_calcul_traitement_916).traitement_aide_finale) - elif match_arg_592.code == CategorieCalculAPL_Code.LogementFoyer: - logement_foyer__3 = match_arg_592.value + elif match_arg_682.code == CategorieCalculAPL_Code.LogementFoyer: + logement_foyer__3 = match_arg_682.value def temp_sous_calcul_traitement_947(param0_14:Money): try: temp_sous_calcul_traitement_948 = logement_foyer__3.type except EmptyError: temp_sous_calcul_traitement_948 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1600, + start_line=1602, start_column=35, - end_line=1600, + end_line=1602, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35448,9 +38607,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_949 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1601, + start_line=1603, start_column=37, - end_line=1601, + end_line=1603, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35464,9 +38623,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_950 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1593, + start_line=1595, start_column=25, - end_line=1593, + end_line=1595, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35480,9 +38639,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_951 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1597, + start_line=1599, start_column=25, - end_line=1597, + end_line=1599, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35496,9 +38655,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_952 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1591, + start_line=1593, start_column=43, - end_line=1591, + end_line=1593, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35508,13 +38667,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_953 = nombre_personnes_a_charge_9 + temp_sous_calcul_traitement_953 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_953 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1592, + start_line=1594, start_column=41, - end_line=1592, + end_line=1594, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35528,9 +38687,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_954 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1596, + start_line=1598, start_column=46, - end_line=1596, + end_line=1598, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35544,9 +38703,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_955 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1594, + start_line=1596, start_column=20, - end_line=1594, + end_line=1596, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35556,13 +38715,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_956 = date_courante_15 + temp_sous_calcul_traitement_956 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_956 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1595, + start_line=1597, start_column=29, - end_line=1595, + end_line=1597, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35576,9 +38735,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_957 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1599, + start_line=1601, start_column=13, - end_line=1599, + end_line=1601, end_column=64, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35603,9 +38762,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_958 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1600, + start_line=1602, start_column=35, - end_line=1600, + end_line=1602, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35619,9 +38778,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_959 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1601, + start_line=1603, start_column=37, - end_line=1601, + end_line=1603, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35635,9 +38794,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_960 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1593, + start_line=1595, start_column=25, - end_line=1593, + end_line=1595, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35651,9 +38810,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_961 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1597, + start_line=1599, start_column=25, - end_line=1597, + end_line=1599, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35667,9 +38826,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_962 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1591, + start_line=1593, start_column=43, - end_line=1591, + end_line=1593, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35679,13 +38838,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_963 = nombre_personnes_a_charge_9 + temp_sous_calcul_traitement_963 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_963 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1592, + start_line=1594, start_column=41, - end_line=1592, + end_line=1594, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35699,9 +38858,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_964 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1596, + start_line=1598, start_column=46, - end_line=1596, + end_line=1598, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35715,9 +38874,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_965 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1594, + start_line=1596, start_column=20, - end_line=1594, + end_line=1596, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35727,13 +38886,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_966 = date_courante_15 + temp_sous_calcul_traitement_966 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_966 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1595, + start_line=1597, start_column=29, - end_line=1595, + end_line=1597, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35747,9 +38906,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_967 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1599, + start_line=1601, start_column=13, - end_line=1599, + end_line=1601, end_column=64, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35763,9 +38922,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_968 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1600, + start_line=1602, start_column=35, - end_line=1600, + end_line=1602, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35779,9 +38938,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_969 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1601, + start_line=1603, start_column=37, - end_line=1601, + end_line=1603, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35795,9 +38954,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_970 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1593, + start_line=1595, start_column=25, - end_line=1593, + end_line=1595, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35811,9 +38970,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_971 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1597, + start_line=1599, start_column=25, - end_line=1597, + end_line=1599, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35827,9 +38986,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_972 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1591, + start_line=1593, start_column=43, - end_line=1591, + end_line=1593, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35839,13 +38998,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_973 = nombre_personnes_a_charge_9 + temp_sous_calcul_traitement_973 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_973 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1592, + start_line=1594, start_column=41, - end_line=1592, + end_line=1594, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35859,9 +39018,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_974 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1596, + start_line=1598, start_column=46, - end_line=1596, + end_line=1598, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35875,9 +39034,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_975 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1594, + start_line=1596, start_column=20, - end_line=1594, + end_line=1596, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35887,13 +39046,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_976 = date_courante_15 + temp_sous_calcul_traitement_976 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_976 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1595, + start_line=1597, start_column=29, - end_line=1595, + end_line=1597, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35907,9 +39066,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_977 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1599, + start_line=1601, start_column=13, - end_line=1599, + end_line=1601, end_column=64, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35923,9 +39082,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_978 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1600, + start_line=1602, start_column=35, - end_line=1600, + end_line=1602, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35939,9 +39098,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_979 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1601, + start_line=1603, start_column=37, - end_line=1601, + end_line=1603, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35955,9 +39114,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_980 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1593, + start_line=1595, start_column=25, - end_line=1593, + end_line=1595, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35971,9 +39130,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_981 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1597, + start_line=1599, start_column=25, - end_line=1597, + end_line=1599, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35987,9 +39146,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_982 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1591, + start_line=1593, start_column=43, - end_line=1591, + end_line=1593, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -35999,13 +39158,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_983 = nombre_personnes_a_charge_9 + temp_sous_calcul_traitement_983 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_983 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1592, + start_line=1594, start_column=41, - end_line=1592, + end_line=1594, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36019,9 +39178,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_984 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1596, + start_line=1598, start_column=46, - end_line=1596, + end_line=1598, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36035,9 +39194,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_985 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1594, + start_line=1596, start_column=20, - end_line=1594, + end_line=1596, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36047,13 +39206,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_986 = date_courante_15 + temp_sous_calcul_traitement_986 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_986 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1595, + start_line=1597, start_column=29, - end_line=1595, + end_line=1597, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36067,9 +39226,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_987 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1599, + start_line=1601, start_column=13, - end_line=1599, + end_line=1601, end_column=64, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36083,9 +39242,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_988 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1600, + start_line=1602, start_column=35, - end_line=1600, + end_line=1602, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36099,9 +39258,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_989 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1601, + start_line=1603, start_column=37, - end_line=1601, + end_line=1603, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36115,9 +39274,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_990 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1593, + start_line=1595, start_column=25, - end_line=1593, + end_line=1595, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36131,9 +39290,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_991 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1597, + start_line=1599, start_column=25, - end_line=1597, + end_line=1599, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36147,9 +39306,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_992 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1591, + start_line=1593, start_column=43, - end_line=1591, + end_line=1593, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36159,13 +39318,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_993 = nombre_personnes_a_charge_9 + temp_sous_calcul_traitement_993 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_993 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1592, + start_line=1594, start_column=41, - end_line=1592, + end_line=1594, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36179,9 +39338,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_994 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1596, + start_line=1598, start_column=46, - end_line=1596, + end_line=1598, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36195,9 +39354,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_995 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1594, + start_line=1596, start_column=20, - end_line=1594, + end_line=1596, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36207,13 +39366,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_996 = date_courante_15 + temp_sous_calcul_traitement_996 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_996 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1595, + start_line=1597, start_column=29, - end_line=1595, + end_line=1597, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36227,9 +39386,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_997 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1599, + start_line=1601, start_column=13, - end_line=1599, + end_line=1601, end_column=64, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36243,9 +39402,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_998 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1600, + start_line=1602, start_column=35, - end_line=1600, + end_line=1602, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36259,9 +39418,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_999 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1601, + start_line=1603, start_column=37, - end_line=1601, + end_line=1603, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36275,9 +39434,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1000 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1593, + start_line=1595, start_column=25, - end_line=1593, + end_line=1595, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36291,9 +39450,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1001 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1597, + start_line=1599, start_column=25, - end_line=1597, + end_line=1599, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36307,9 +39466,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1002 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1591, + start_line=1593, start_column=43, - end_line=1591, + end_line=1593, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36319,13 +39478,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_1003 = nombre_personnes_a_charge_9 + temp_sous_calcul_traitement_1003 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_1003 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1592, + start_line=1594, start_column=41, - end_line=1592, + end_line=1594, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36339,9 +39498,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1004 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1596, + start_line=1598, start_column=46, - end_line=1596, + end_line=1598, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36355,9 +39514,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1005 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1594, + start_line=1596, start_column=20, - end_line=1594, + end_line=1596, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36367,13 +39526,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_1006 = date_courante_15 + temp_sous_calcul_traitement_1006 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_1006 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1595, + start_line=1597, start_column=29, - end_line=1595, + end_line=1597, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36387,9 +39546,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1007 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1599, + start_line=1601, start_column=13, - end_line=1599, + end_line=1601, end_column=64, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36404,9 +39563,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1009 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1600, + start_line=1602, start_column=35, - end_line=1600, + end_line=1602, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36420,9 +39579,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1010 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1601, + start_line=1603, start_column=37, - end_line=1601, + end_line=1603, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36436,9 +39595,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1011 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1593, + start_line=1595, start_column=25, - end_line=1593, + end_line=1595, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36452,9 +39611,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1012 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1597, + start_line=1599, start_column=25, - end_line=1597, + end_line=1599, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36468,9 +39627,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1013 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1591, + start_line=1593, start_column=43, - end_line=1591, + end_line=1593, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36480,13 +39639,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_1014 = nombre_personnes_a_charge_9 + temp_sous_calcul_traitement_1014 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_1014 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1592, + start_line=1594, start_column=41, - end_line=1592, + end_line=1594, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36500,9 +39659,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1015 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1596, + start_line=1598, start_column=46, - end_line=1596, + end_line=1598, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36516,9 +39675,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1016 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1594, + start_line=1596, start_column=20, - end_line=1594, + end_line=1596, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36528,13 +39687,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_1017 = date_courante_15 + temp_sous_calcul_traitement_1017 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_1017 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1595, + start_line=1597, start_column=29, - end_line=1595, + end_line=1597, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36548,9 +39707,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1018 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1599, + start_line=1601, start_column=13, - end_line=1599, + end_line=1601, end_column=64, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36575,9 +39734,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1019 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1600, + start_line=1602, start_column=35, - end_line=1600, + end_line=1602, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36591,9 +39750,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1020 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1601, + start_line=1603, start_column=37, - end_line=1601, + end_line=1603, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36607,9 +39766,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1021 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1593, + start_line=1595, start_column=25, - end_line=1593, + end_line=1595, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36623,9 +39782,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1022 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1597, + start_line=1599, start_column=25, - end_line=1597, + end_line=1599, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36639,9 +39798,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1023 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1591, + start_line=1593, start_column=43, - end_line=1591, + end_line=1593, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36651,13 +39810,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_1024 = nombre_personnes_a_charge_9 + temp_sous_calcul_traitement_1024 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_1024 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1592, + start_line=1594, start_column=41, - end_line=1592, + end_line=1594, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36671,9 +39830,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1025 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1596, + start_line=1598, start_column=46, - end_line=1596, + end_line=1598, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36687,9 +39846,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1026 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1594, + start_line=1596, start_column=20, - end_line=1594, + end_line=1596, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36699,13 +39858,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_1027 = date_courante_15 + temp_sous_calcul_traitement_1027 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_1027 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1595, + start_line=1597, start_column=29, - end_line=1595, + end_line=1597, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36719,9 +39878,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1028 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1599, + start_line=1601, start_column=13, - end_line=1599, + end_line=1601, end_column=64, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36735,9 +39894,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1029 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1600, + start_line=1602, start_column=35, - end_line=1600, + end_line=1602, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36751,9 +39910,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1030 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1601, + start_line=1603, start_column=37, - end_line=1601, + end_line=1603, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36767,9 +39926,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1031 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1593, + start_line=1595, start_column=25, - end_line=1593, + end_line=1595, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36783,9 +39942,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1032 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1597, + start_line=1599, start_column=25, - end_line=1597, + end_line=1599, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36799,9 +39958,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1033 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1591, + start_line=1593, start_column=43, - end_line=1591, + end_line=1593, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36811,13 +39970,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_1034 = nombre_personnes_a_charge_9 + temp_sous_calcul_traitement_1034 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_1034 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1592, + start_line=1594, start_column=41, - end_line=1592, + end_line=1594, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36831,9 +39990,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1035 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1596, + start_line=1598, start_column=46, - end_line=1596, + end_line=1598, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36847,9 +40006,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1036 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1594, + start_line=1596, start_column=20, - end_line=1594, + end_line=1596, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36859,13 +40018,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_1037 = date_courante_15 + temp_sous_calcul_traitement_1037 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_1037 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1595, + start_line=1597, start_column=29, - end_line=1595, + end_line=1597, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36879,9 +40038,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1038 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1599, + start_line=1601, start_column=13, - end_line=1599, + end_line=1601, end_column=64, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36895,9 +40054,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1039 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1600, + start_line=1602, start_column=35, - end_line=1600, + end_line=1602, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36911,9 +40070,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1040 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1601, + start_line=1603, start_column=37, - end_line=1601, + end_line=1603, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36927,9 +40086,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1041 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1593, + start_line=1595, start_column=25, - end_line=1593, + end_line=1595, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36943,9 +40102,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1042 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1597, + start_line=1599, start_column=25, - end_line=1597, + end_line=1599, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36959,9 +40118,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1043 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1591, + start_line=1593, start_column=43, - end_line=1591, + end_line=1593, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36971,13 +40130,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_1044 = nombre_personnes_a_charge_9 + temp_sous_calcul_traitement_1044 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_1044 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1592, + start_line=1594, start_column=41, - end_line=1592, + end_line=1594, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36991,9 +40150,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1045 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1596, + start_line=1598, start_column=46, - end_line=1596, + end_line=1598, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -37007,9 +40166,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1046 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1594, + start_line=1596, start_column=20, - end_line=1594, + end_line=1596, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -37019,13 +40178,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_1047 = date_courante_15 + temp_sous_calcul_traitement_1047 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_1047 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1595, + start_line=1597, start_column=29, - end_line=1595, + end_line=1597, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -37039,9 +40198,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1048 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1599, + start_line=1601, start_column=13, - end_line=1599, + end_line=1601, end_column=64, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -37055,9 +40214,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1049 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1600, + start_line=1602, start_column=35, - end_line=1600, + end_line=1602, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -37071,9 +40230,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1050 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1601, + start_line=1603, start_column=37, - end_line=1601, + end_line=1603, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -37087,9 +40246,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1051 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1593, + start_line=1595, start_column=25, - end_line=1593, + end_line=1595, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -37103,9 +40262,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1052 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1597, + start_line=1599, start_column=25, - end_line=1597, + end_line=1599, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -37119,9 +40278,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1053 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1591, + start_line=1593, start_column=43, - end_line=1591, + end_line=1593, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -37131,13 +40290,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_1054 = nombre_personnes_a_charge_9 + temp_sous_calcul_traitement_1054 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_1054 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1592, + start_line=1594, start_column=41, - end_line=1592, + end_line=1594, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -37151,9 +40310,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1055 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1596, + start_line=1598, start_column=46, - end_line=1596, + end_line=1598, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -37167,9 +40326,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1056 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1594, + start_line=1596, start_column=20, - end_line=1594, + end_line=1596, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -37179,13 +40338,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_1057 = date_courante_15 + temp_sous_calcul_traitement_1057 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_1057 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1595, + start_line=1597, start_column=29, - end_line=1595, + end_line=1597, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -37199,9 +40358,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1058 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1599, + start_line=1601, start_column=13, - end_line=1599, + end_line=1601, end_column=64, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -37215,9 +40374,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1059 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1600, + start_line=1602, start_column=35, - end_line=1600, + end_line=1602, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -37231,9 +40390,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1060 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1601, + start_line=1603, start_column=37, - end_line=1601, + end_line=1603, end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -37247,9 +40406,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1061 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1593, + start_line=1595, start_column=25, - end_line=1593, + end_line=1595, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -37263,9 +40422,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1062 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1597, + start_line=1599, start_column=25, - end_line=1597, + end_line=1599, end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -37279,9 +40438,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1063 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1591, + start_line=1593, start_column=43, - end_line=1591, + end_line=1593, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -37291,13 +40450,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_1064 = nombre_personnes_a_charge_9 + temp_sous_calcul_traitement_1064 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_1064 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1592, + start_line=1594, start_column=41, - end_line=1592, + end_line=1594, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -37311,9 +40470,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1065 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1596, + start_line=1598, start_column=46, - end_line=1596, + end_line=1598, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -37327,9 +40486,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1066 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1594, + start_line=1596, start_column=20, - end_line=1594, + end_line=1596, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -37339,13 +40498,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_1067 = date_courante_15 + temp_sous_calcul_traitement_1067 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_1067 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1595, + start_line=1597, start_column=29, - end_line=1595, + end_line=1597, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -37359,9 +40518,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_1068 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1599, + start_line=1601, start_column=13, - end_line=1599, + end_line=1601, end_column=64, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -37485,8 +40644,8 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_sous_calcul_traitement_760 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1096, - start_column=11, end_line=1096, + start_line=1107, + start_column=11, end_line=1107, end_column=33, law_headings=["Tous secteurs", "Secteur logement-foyer", @@ -37499,9 +40658,9 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog return sous_calcul_traitement_1.traitement_aide_finale(arg_1) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1099, + start_line=1110, start_column=12, - end_line=1099, + end_line=1110, end_column=34, law_headings=["Tous secteurs", "Secteur logement-foyer", @@ -37510,8 +40669,8 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_traitement_aide_finale_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1099, - start_column=12, end_line=1099, + start_line=1110, + start_column=12, end_line=1110, end_column=34, law_headings=["Tous secteurs", "Secteur logement-foyer", @@ -37519,18 +40678,57 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Prologue : aides au logement"])) traitement_aide_finale_2 = temp_traitement_aide_finale_3 try: - temp_aide_finale_formule_8 = sous_calcul_traitement_1.aide_finale_formule + try: + match_arg_687 = residence_9 + if match_arg_687.code == Collectivite_Code.Guadeloupe: + _ = match_arg_687.value + temp_aide_finale_formule_8 = False + elif match_arg_687.code == Collectivite_Code.Guyane: + _ = match_arg_687.value + temp_aide_finale_formule_8 = False + elif match_arg_687.code == Collectivite_Code.Martinique: + _ = match_arg_687.value + temp_aide_finale_formule_8 = False + elif match_arg_687.code == Collectivite_Code.LaReunion: + _ = match_arg_687.value + temp_aide_finale_formule_8 = False + elif match_arg_687.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_687.value + temp_aide_finale_formule_8 = False + elif match_arg_687.code == Collectivite_Code.SaintMartin: + _ = match_arg_687.value + temp_aide_finale_formule_8 = False + elif match_arg_687.code == Collectivite_Code.Metropole: + _ = match_arg_687.value + temp_aide_finale_formule_8 = False + elif match_arg_687.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_687.value + temp_aide_finale_formule_8 = True + elif match_arg_687.code == Collectivite_Code.Mayotte: + _ = match_arg_687.value + temp_aide_finale_formule_8 = False + if (temp_aide_finale_formule_8 and (date_courante_16 >= + date_of_numbers(2022,1,1))): + temp_aide_finale_formule_9 = (sous_calcul_traitement_1.aide_finale_formule * + (decimal_of_integer((integer_of_string("2026") - + year_of_date(date_courante_16))) / + decimal_of_string("8."))) + else: + temp_aide_finale_formule_9 = dead_value + raise EmptyError + except EmptyError: + temp_aide_finale_formule_9 = sous_calcul_traitement_1.aide_finale_formule except EmptyError: - temp_aide_finale_formule_8 = dead_value + temp_aide_finale_formule_9 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1098, - start_column=12, end_line=1098, + start_line=1109, + start_column=12, end_line=1109, end_column=31, law_headings=["Tous secteurs", "Secteur logement-foyer", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) - aide_finale_formule_7 = temp_aide_finale_formule_8 + aide_finale_formule_7 = temp_aide_finale_formule_9 return CalculAllocationLogement(aide_finale_formule = aide_finale_formule_7, traitement_aide_finale = traitement_aide_finale_2) @@ -37539,7 +40737,7 @@ def eligibilite_prime_de_demenagement(eligibilite_prime_de_demenagement_in:Eligi date_emmenagement = eligibilite_prime_de_demenagement_in.date_emmenagement_in menage_1 = eligibilite_prime_de_demenagement_in.menage_in demandeur_1 = eligibilite_prime_de_demenagement_in.demandeur_in - date_courante_16 = eligibilite_prime_de_demenagement_in.date_courante_in + date_courante_17 = eligibilite_prime_de_demenagement_in.date_courante_in depenses_justifiees_reellement_engagees = eligibilite_prime_de_demenagement_in.depenses_justifiees_reellement_engagees_in try: temp_delai_apres_emmenagement_l823_8_2 = duration_of_numbers(0,6,0) @@ -37555,12 +40753,12 @@ def eligibilite_prime_de_demenagement(eligibilite_prime_de_demenagement_in:Eligi try: try: def temp_condition_rang_enfant(personne_a_charge_5:PersonneACharge): - match_arg_597 = personne_a_charge_5 - if match_arg_597.code == PersonneACharge_Code.EnfantACharge: - _ = match_arg_597.value + match_arg_688 = personne_a_charge_5 + if match_arg_688.code == PersonneACharge_Code.EnfantACharge: + _ = match_arg_688.value return True - elif match_arg_597.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_597.value + elif match_arg_688.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_688.value return False if ((list_length(list_filter(temp_condition_rang_enfant, menage_1.personnes_a_charge)) + @@ -37582,7 +40780,7 @@ def eligibilite_prime_de_demenagement(eligibilite_prime_de_demenagement_in:Eligi "Prologue : aides au logement"])) condition_rang_enfant = temp_condition_rang_enfant_1 try: - temp_base_mensuelle_allocations_familiales_dot_date_courante_1 = date_courante_16 + temp_base_mensuelle_allocations_familiales_dot_date_courante_1 = date_courante_17 except EmptyError: temp_base_mensuelle_allocations_familiales_dot_date_courante_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", @@ -37617,7 +40815,7 @@ def eligibilite_prime_de_demenagement(eligibilite_prime_de_demenagement_in:Eligi "Prologue : aides au logement"])) eligibilite_apl_dot_demandeur = temp_eligibilite_apl_dot_demandeur try: - temp_eligibilite_apl_dot_date_courante = date_courante_16 + temp_eligibilite_apl_dot_date_courante = date_courante_17 except EmptyError: temp_eligibilite_apl_dot_date_courante = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", @@ -37655,24 +40853,24 @@ def eligibilite_prime_de_demenagement(eligibilite_prime_de_demenagement_in:Eligi eligibilite_apl_dot_condition_2_r823_4 = result_21.condition_2_r823_4 try: try: - match_arg_598 = informations.date_naissance_troisieme_enfant_ou_dernier_si_plus - if match_arg_598.code == DateNaissanceTroisiemeOuDernierPlusEnfant_Code.MoinsDeTroisEnfants: - _ = match_arg_598.value + match_arg_689 = informations.date_naissance_troisieme_enfant_ou_dernier_si_plus + if match_arg_689.code == DateNaissanceTroisiemeOuDernierPlusEnfant_Code.MoinsDeTroisEnfants: + _ = match_arg_689.value temp_condition_periode_demenagement = False - elif match_arg_598.code == DateNaissanceTroisiemeOuDernierPlusEnfant_Code.PlusDeTroisEnfants: - date_naissance_ou_grossesse = match_arg_598.value - match_arg_599 = date_naissance_ou_grossesse - if match_arg_599.code == DateDeNaissanceOuMoisDeGrossesse_Code.DateDeNaissance: - date_naissance_2 = match_arg_599.value - temp_condition_periode_demenagement = (date_courante_16 <= + elif match_arg_689.code == DateNaissanceTroisiemeOuDernierPlusEnfant_Code.PlusDeTroisEnfants: + date_naissance_ou_grossesse = match_arg_689.value + match_arg_690 = date_naissance_ou_grossesse + if match_arg_690.code == DateDeNaissanceOuMoisDeGrossesse_Code.DateDeNaissance: + date_naissance_2 = match_arg_690.value + temp_condition_periode_demenagement = (date_courante_17 <= (first_day_of_month((date_naissance_2 + duration_of_numbers(2,0,0))) + duration_of_numbers(0,0,-1))) - elif match_arg_599.code == DateDeNaissanceOuMoisDeGrossesse_Code.AvantPremierJourMoisCivilTroisiemeMoisDeGrossesse: - _ = match_arg_599.value + elif match_arg_690.code == DateDeNaissanceOuMoisDeGrossesse_Code.AvantPremierJourMoisCivilTroisiemeMoisDeGrossesse: + _ = match_arg_690.value temp_condition_periode_demenagement = False - elif match_arg_599.code == DateDeNaissanceOuMoisDeGrossesse_Code.ApresPremierJourMoisCivilTroisiemeMoisDeGrossesse: - _ = match_arg_599.value + elif match_arg_690.code == DateDeNaissanceOuMoisDeGrossesse_Code.ApresPremierJourMoisCivilTroisiemeMoisDeGrossesse: + _ = match_arg_690.value temp_condition_periode_demenagement = True if temp_condition_periode_demenagement: temp_condition_periode_demenagement_1 = True @@ -37691,33 +40889,38 @@ def eligibilite_prime_de_demenagement(eligibilite_prime_de_demenagement_in:Eligi "Prologue : aides au logement"])) condition_periode_demenagement = temp_condition_periode_demenagement_1 try: - def temp_plafond_d823_22(personne_a_charge_6:PersonneACharge): - match_arg_600 = personne_a_charge_6 - if match_arg_600.code == PersonneACharge_Code.EnfantACharge: - _ = match_arg_600.value - return True - elif match_arg_600.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_600.value - return False - if (list_length(list_filter(temp_plafond_d823_22, - menage_1.personnes_a_charge)) > - integer_of_string("3")): - def temp_plafond_d823_22_1(personne_a_charge_7:PersonneACharge): - match_arg_601 = personne_a_charge_7 - if match_arg_601.code == PersonneACharge_Code.EnfantACharge: - _ = match_arg_601.value + if (date_courante_17 >= + date_of_numbers(2019,10,1)): + def temp_plafond_d823_22(personne_a_charge_6:PersonneACharge): + match_arg_691 = personne_a_charge_6 + if match_arg_691.code == PersonneACharge_Code.EnfantACharge: + _ = match_arg_691.value return True - elif match_arg_601.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_601.value + elif match_arg_691.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_691.value return False - temp_plafond_d823_22_2 = (base_mensuelle_allocations_familiales_dot_montant_1 * - (decimal_of_integer((list_length(list_filter(temp_plafond_d823_22_1, - menage_1.personnes_a_charge)) - integer_of_string("3"))) * - decimal_of_string("0.2"))) + if (list_length(list_filter(temp_plafond_d823_22, + menage_1.personnes_a_charge)) > + integer_of_string("3")): + def temp_plafond_d823_22_1(personne_a_charge_7:PersonneACharge): + match_arg_692 = personne_a_charge_7 + if match_arg_692.code == PersonneACharge_Code.EnfantACharge: + _ = match_arg_692.value + return True + elif match_arg_692.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_692.value + return False + temp_plafond_d823_22_2 = (base_mensuelle_allocations_familiales_dot_montant_1 * + (decimal_of_integer((list_length(list_filter(temp_plafond_d823_22_1, + menage_1.personnes_a_charge)) - + integer_of_string("3"))) * decimal_of_string("0.2"))) + else: + temp_plafond_d823_22_2 = money_of_cents_string("0") + temp_plafond_d823_22_3 = ((base_mensuelle_allocations_familiales_dot_montant_1 * + decimal_of_string("2.4")) + temp_plafond_d823_22_2) else: - temp_plafond_d823_22_2 = money_of_cents_string("0") - temp_plafond_d823_22_3 = ((base_mensuelle_allocations_familiales_dot_montant_1 * - decimal_of_string("2.4")) + temp_plafond_d823_22_2) + temp_plafond_d823_22_3 = dead_value + raise EmptyError except EmptyError: temp_plafond_d823_22_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", @@ -37732,35 +40935,35 @@ def eligibilite_prime_de_demenagement(eligibilite_prime_de_demenagement_in:Eligi try: try: try: - match_arg_602 = menage_1.residence - if match_arg_602.code == Collectivite_Code.Guadeloupe: - _ = match_arg_602.value + match_arg_693 = menage_1.residence + if match_arg_693.code == Collectivite_Code.Guadeloupe: + _ = match_arg_693.value temp_eligibilite_logement_1 = False - elif match_arg_602.code == Collectivite_Code.Guyane: - _ = match_arg_602.value + elif match_arg_693.code == Collectivite_Code.Guyane: + _ = match_arg_693.value temp_eligibilite_logement_1 = False - elif match_arg_602.code == Collectivite_Code.Martinique: - _ = match_arg_602.value + elif match_arg_693.code == Collectivite_Code.Martinique: + _ = match_arg_693.value temp_eligibilite_logement_1 = False - elif match_arg_602.code == Collectivite_Code.LaReunion: - _ = match_arg_602.value + elif match_arg_693.code == Collectivite_Code.LaReunion: + _ = match_arg_693.value temp_eligibilite_logement_1 = False - elif match_arg_602.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_602.value + elif match_arg_693.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_693.value temp_eligibilite_logement_1 = False - elif match_arg_602.code == Collectivite_Code.SaintMartin: - _ = match_arg_602.value + elif match_arg_693.code == Collectivite_Code.SaintMartin: + _ = match_arg_693.value temp_eligibilite_logement_1 = False - elif match_arg_602.code == Collectivite_Code.Metropole: - _ = match_arg_602.value + elif match_arg_693.code == Collectivite_Code.Metropole: + _ = match_arg_693.value temp_eligibilite_logement_1 = False - elif match_arg_602.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_602.value + elif match_arg_693.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_693.value temp_eligibilite_logement_1 = False - elif match_arg_602.code == Collectivite_Code.Mayotte: - _ = match_arg_602.value + elif match_arg_693.code == Collectivite_Code.Mayotte: + _ = match_arg_693.value temp_eligibilite_logement_1 = True - if ((date_courante_16 >= + if ((date_courante_17 >= date_of_numbers(2022,1,1)) and temp_eligibilite_logement_1): temp_eligibilite_logement_2 = False @@ -37768,35 +40971,35 @@ def eligibilite_prime_de_demenagement(eligibilite_prime_de_demenagement_in:Eligi temp_eligibilite_logement_2 = dead_value raise EmptyError except EmptyError: - match_arg_603 = menage_1.residence - if match_arg_603.code == Collectivite_Code.Guadeloupe: - _ = match_arg_603.value + match_arg_694 = menage_1.residence + if match_arg_694.code == Collectivite_Code.Guadeloupe: + _ = match_arg_694.value temp_eligibilite_logement_3 = False - elif match_arg_603.code == Collectivite_Code.Guyane: - _ = match_arg_603.value + elif match_arg_694.code == Collectivite_Code.Guyane: + _ = match_arg_694.value temp_eligibilite_logement_3 = False - elif match_arg_603.code == Collectivite_Code.Martinique: - _ = match_arg_603.value + elif match_arg_694.code == Collectivite_Code.Martinique: + _ = match_arg_694.value temp_eligibilite_logement_3 = False - elif match_arg_603.code == Collectivite_Code.LaReunion: - _ = match_arg_603.value + elif match_arg_694.code == Collectivite_Code.LaReunion: + _ = match_arg_694.value temp_eligibilite_logement_3 = False - elif match_arg_603.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_603.value + elif match_arg_694.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_694.value temp_eligibilite_logement_3 = False - elif match_arg_603.code == Collectivite_Code.SaintMartin: - _ = match_arg_603.value + elif match_arg_694.code == Collectivite_Code.SaintMartin: + _ = match_arg_694.value temp_eligibilite_logement_3 = False - elif match_arg_603.code == Collectivite_Code.Metropole: - _ = match_arg_603.value + elif match_arg_694.code == Collectivite_Code.Metropole: + _ = match_arg_694.value temp_eligibilite_logement_3 = False - elif match_arg_603.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_603.value + elif match_arg_694.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_694.value temp_eligibilite_logement_3 = True - elif match_arg_603.code == Collectivite_Code.Mayotte: - _ = match_arg_603.value + elif match_arg_694.code == Collectivite_Code.Mayotte: + _ = match_arg_694.value temp_eligibilite_logement_3 = False - if ((date_courante_16 >= + if ((date_courante_17 >= date_of_numbers(2022,1,1)) and temp_eligibilite_logement_3): temp_eligibilite_logement_2 = False @@ -37804,33 +41007,33 @@ def eligibilite_prime_de_demenagement(eligibilite_prime_de_demenagement_in:Eligi temp_eligibilite_logement_2 = dead_value raise EmptyError except EmptyError: - match_arg_604 = menage_1.residence - if match_arg_604.code == Collectivite_Code.Guadeloupe: - _ = match_arg_604.value + match_arg_695 = menage_1.residence + if match_arg_695.code == Collectivite_Code.Guadeloupe: + _ = match_arg_695.value temp_eligibilite_logement_4 = False - elif match_arg_604.code == Collectivite_Code.Guyane: - _ = match_arg_604.value + elif match_arg_695.code == Collectivite_Code.Guyane: + _ = match_arg_695.value temp_eligibilite_logement_4 = False - elif match_arg_604.code == Collectivite_Code.Martinique: - _ = match_arg_604.value + elif match_arg_695.code == Collectivite_Code.Martinique: + _ = match_arg_695.value temp_eligibilite_logement_4 = False - elif match_arg_604.code == Collectivite_Code.LaReunion: - _ = match_arg_604.value + elif match_arg_695.code == Collectivite_Code.LaReunion: + _ = match_arg_695.value temp_eligibilite_logement_4 = False - elif match_arg_604.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_604.value + elif match_arg_695.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_695.value temp_eligibilite_logement_4 = False - elif match_arg_604.code == Collectivite_Code.SaintMartin: - _ = match_arg_604.value + elif match_arg_695.code == Collectivite_Code.SaintMartin: + _ = match_arg_695.value temp_eligibilite_logement_4 = False - elif match_arg_604.code == Collectivite_Code.Metropole: - _ = match_arg_604.value + elif match_arg_695.code == Collectivite_Code.Metropole: + _ = match_arg_695.value temp_eligibilite_logement_4 = False - elif match_arg_604.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_604.value + elif match_arg_695.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_695.value temp_eligibilite_logement_4 = False - elif match_arg_604.code == Collectivite_Code.Mayotte: - _ = match_arg_604.value + elif match_arg_695.code == Collectivite_Code.Mayotte: + _ = match_arg_695.value temp_eligibilite_logement_4 = True if temp_eligibilite_logement_4: temp_eligibilite_logement_2 = False @@ -37877,7 +41080,7 @@ def eligibilite_prime_de_demenagement(eligibilite_prime_de_demenagement_in:Eligi return EligibilitePrimeDeDemenagement(montant_prime_demenagement = montant_prime_demenagement) def eligibilite_allocation_logement(eligibilite_allocation_logement_in:EligibiliteAllocationLogementIn): - date_courante_17 = eligibilite_allocation_logement_in.date_courante_in + date_courante_18 = eligibilite_allocation_logement_in.date_courante_in menage_2 = eligibilite_allocation_logement_in.menage_in demandeur_2 = eligibilite_allocation_logement_in.demandeur_in beneficie_aide_personnalisee_logement = eligibilite_allocation_logement_in.beneficie_aide_personnalisee_logement_in @@ -37893,7 +41096,7 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili "Prologue : aides au logement"])) duree_l841_1_3 = temp_duree_l841_1_3 try: - temp_prestations_familiales_dot_date_courante_1 = date_courante_17 + temp_prestations_familiales_dot_date_courante_1 = date_courante_18 except EmptyError: temp_prestations_familiales_dot_date_courante_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", @@ -37947,66 +41150,66 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili return False def temp_l_841_1_6_applicable_2(_:Unit): try: - match_arg_605 = menage_2.residence - if match_arg_605.code == Collectivite_Code.Guadeloupe: - _ = match_arg_605.value + match_arg_696 = menage_2.residence + if match_arg_696.code == Collectivite_Code.Guadeloupe: + _ = match_arg_696.value temp_l_841_1_6_applicable_3 = False - elif match_arg_605.code == Collectivite_Code.Guyane: - _ = match_arg_605.value + elif match_arg_696.code == Collectivite_Code.Guyane: + _ = match_arg_696.value temp_l_841_1_6_applicable_3 = False - elif match_arg_605.code == Collectivite_Code.Martinique: - _ = match_arg_605.value + elif match_arg_696.code == Collectivite_Code.Martinique: + _ = match_arg_696.value temp_l_841_1_6_applicable_3 = False - elif match_arg_605.code == Collectivite_Code.LaReunion: - _ = match_arg_605.value + elif match_arg_696.code == Collectivite_Code.LaReunion: + _ = match_arg_696.value temp_l_841_1_6_applicable_3 = False - elif match_arg_605.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_605.value + elif match_arg_696.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_696.value temp_l_841_1_6_applicable_3 = True - elif match_arg_605.code == Collectivite_Code.SaintMartin: - _ = match_arg_605.value + elif match_arg_696.code == Collectivite_Code.SaintMartin: + _ = match_arg_696.value temp_l_841_1_6_applicable_3 = True - elif match_arg_605.code == Collectivite_Code.Metropole: - _ = match_arg_605.value + elif match_arg_696.code == Collectivite_Code.Metropole: + _ = match_arg_696.value temp_l_841_1_6_applicable_3 = False - elif match_arg_605.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_605.value + elif match_arg_696.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_696.value temp_l_841_1_6_applicable_3 = False - elif match_arg_605.code == Collectivite_Code.Mayotte: - _ = match_arg_605.value + elif match_arg_696.code == Collectivite_Code.Mayotte: + _ = match_arg_696.value temp_l_841_1_6_applicable_3 = False if temp_l_841_1_6_applicable_3: return False else: raise EmptyError except EmptyError: - match_arg_606 = menage_2.residence - if match_arg_606.code == Collectivite_Code.Guadeloupe: - _ = match_arg_606.value + match_arg_697 = menage_2.residence + if match_arg_697.code == Collectivite_Code.Guadeloupe: + _ = match_arg_697.value temp_l_841_1_6_applicable_4 = True - elif match_arg_606.code == Collectivite_Code.Guyane: - _ = match_arg_606.value + elif match_arg_697.code == Collectivite_Code.Guyane: + _ = match_arg_697.value temp_l_841_1_6_applicable_4 = True - elif match_arg_606.code == Collectivite_Code.Martinique: - _ = match_arg_606.value + elif match_arg_697.code == Collectivite_Code.Martinique: + _ = match_arg_697.value temp_l_841_1_6_applicable_4 = True - elif match_arg_606.code == Collectivite_Code.LaReunion: - _ = match_arg_606.value + elif match_arg_697.code == Collectivite_Code.LaReunion: + _ = match_arg_697.value temp_l_841_1_6_applicable_4 = True - elif match_arg_606.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_606.value + elif match_arg_697.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_697.value temp_l_841_1_6_applicable_4 = False - elif match_arg_606.code == Collectivite_Code.SaintMartin: - _ = match_arg_606.value + elif match_arg_697.code == Collectivite_Code.SaintMartin: + _ = match_arg_697.value temp_l_841_1_6_applicable_4 = False - elif match_arg_606.code == Collectivite_Code.Metropole: - _ = match_arg_606.value + elif match_arg_697.code == Collectivite_Code.Metropole: + _ = match_arg_697.value temp_l_841_1_6_applicable_4 = False - elif match_arg_606.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_606.value + elif match_arg_697.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_697.value temp_l_841_1_6_applicable_4 = False - elif match_arg_606.code == Collectivite_Code.Mayotte: - _ = match_arg_606.value + elif match_arg_697.code == Collectivite_Code.Mayotte: + _ = match_arg_697.value temp_l_841_1_6_applicable_4 = True if temp_l_841_1_6_applicable_4: return False @@ -38043,66 +41246,66 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili return False def temp_l_841_1_2_applicable_2(_:Unit): try: - match_arg_607 = menage_2.residence - if match_arg_607.code == Collectivite_Code.Guadeloupe: - _ = match_arg_607.value + match_arg_698 = menage_2.residence + if match_arg_698.code == Collectivite_Code.Guadeloupe: + _ = match_arg_698.value temp_l_841_1_2_applicable_3 = False - elif match_arg_607.code == Collectivite_Code.Guyane: - _ = match_arg_607.value + elif match_arg_698.code == Collectivite_Code.Guyane: + _ = match_arg_698.value temp_l_841_1_2_applicable_3 = False - elif match_arg_607.code == Collectivite_Code.Martinique: - _ = match_arg_607.value + elif match_arg_698.code == Collectivite_Code.Martinique: + _ = match_arg_698.value temp_l_841_1_2_applicable_3 = False - elif match_arg_607.code == Collectivite_Code.LaReunion: - _ = match_arg_607.value + elif match_arg_698.code == Collectivite_Code.LaReunion: + _ = match_arg_698.value temp_l_841_1_2_applicable_3 = False - elif match_arg_607.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_607.value + elif match_arg_698.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_698.value temp_l_841_1_2_applicable_3 = True - elif match_arg_607.code == Collectivite_Code.SaintMartin: - _ = match_arg_607.value + elif match_arg_698.code == Collectivite_Code.SaintMartin: + _ = match_arg_698.value temp_l_841_1_2_applicable_3 = True - elif match_arg_607.code == Collectivite_Code.Metropole: - _ = match_arg_607.value + elif match_arg_698.code == Collectivite_Code.Metropole: + _ = match_arg_698.value temp_l_841_1_2_applicable_3 = False - elif match_arg_607.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_607.value + elif match_arg_698.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_698.value temp_l_841_1_2_applicable_3 = False - elif match_arg_607.code == Collectivite_Code.Mayotte: - _ = match_arg_607.value + elif match_arg_698.code == Collectivite_Code.Mayotte: + _ = match_arg_698.value temp_l_841_1_2_applicable_3 = False if temp_l_841_1_2_applicable_3: return False else: raise EmptyError except EmptyError: - match_arg_608 = menage_2.residence - if match_arg_608.code == Collectivite_Code.Guadeloupe: - _ = match_arg_608.value + match_arg_699 = menage_2.residence + if match_arg_699.code == Collectivite_Code.Guadeloupe: + _ = match_arg_699.value temp_l_841_1_2_applicable_4 = True - elif match_arg_608.code == Collectivite_Code.Guyane: - _ = match_arg_608.value + elif match_arg_699.code == Collectivite_Code.Guyane: + _ = match_arg_699.value temp_l_841_1_2_applicable_4 = True - elif match_arg_608.code == Collectivite_Code.Martinique: - _ = match_arg_608.value + elif match_arg_699.code == Collectivite_Code.Martinique: + _ = match_arg_699.value temp_l_841_1_2_applicable_4 = True - elif match_arg_608.code == Collectivite_Code.LaReunion: - _ = match_arg_608.value + elif match_arg_699.code == Collectivite_Code.LaReunion: + _ = match_arg_699.value temp_l_841_1_2_applicable_4 = True - elif match_arg_608.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_608.value + elif match_arg_699.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_699.value temp_l_841_1_2_applicable_4 = False - elif match_arg_608.code == Collectivite_Code.SaintMartin: - _ = match_arg_608.value + elif match_arg_699.code == Collectivite_Code.SaintMartin: + _ = match_arg_699.value temp_l_841_1_2_applicable_4 = False - elif match_arg_608.code == Collectivite_Code.Metropole: - _ = match_arg_608.value + elif match_arg_699.code == Collectivite_Code.Metropole: + _ = match_arg_699.value temp_l_841_1_2_applicable_4 = False - elif match_arg_608.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_608.value + elif match_arg_699.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_699.value temp_l_841_1_2_applicable_4 = False - elif match_arg_608.code == Collectivite_Code.Mayotte: - _ = match_arg_608.value + elif match_arg_699.code == Collectivite_Code.Mayotte: + _ = match_arg_699.value temp_l_841_1_2_applicable_4 = True if temp_l_841_1_2_applicable_4: return False @@ -38139,66 +41342,66 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili return False def temp_l_841_1_1_applicable_2(_:Unit): try: - match_arg_609 = menage_2.residence - if match_arg_609.code == Collectivite_Code.Guadeloupe: - _ = match_arg_609.value + match_arg_700 = menage_2.residence + if match_arg_700.code == Collectivite_Code.Guadeloupe: + _ = match_arg_700.value temp_l_841_1_1_applicable_3 = False - elif match_arg_609.code == Collectivite_Code.Guyane: - _ = match_arg_609.value + elif match_arg_700.code == Collectivite_Code.Guyane: + _ = match_arg_700.value temp_l_841_1_1_applicable_3 = False - elif match_arg_609.code == Collectivite_Code.Martinique: - _ = match_arg_609.value + elif match_arg_700.code == Collectivite_Code.Martinique: + _ = match_arg_700.value temp_l_841_1_1_applicable_3 = False - elif match_arg_609.code == Collectivite_Code.LaReunion: - _ = match_arg_609.value + elif match_arg_700.code == Collectivite_Code.LaReunion: + _ = match_arg_700.value temp_l_841_1_1_applicable_3 = False - elif match_arg_609.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_609.value + elif match_arg_700.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_700.value temp_l_841_1_1_applicable_3 = True - elif match_arg_609.code == Collectivite_Code.SaintMartin: - _ = match_arg_609.value + elif match_arg_700.code == Collectivite_Code.SaintMartin: + _ = match_arg_700.value temp_l_841_1_1_applicable_3 = True - elif match_arg_609.code == Collectivite_Code.Metropole: - _ = match_arg_609.value + elif match_arg_700.code == Collectivite_Code.Metropole: + _ = match_arg_700.value temp_l_841_1_1_applicable_3 = False - elif match_arg_609.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_609.value + elif match_arg_700.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_700.value temp_l_841_1_1_applicable_3 = False - elif match_arg_609.code == Collectivite_Code.Mayotte: - _ = match_arg_609.value + elif match_arg_700.code == Collectivite_Code.Mayotte: + _ = match_arg_700.value temp_l_841_1_1_applicable_3 = False if temp_l_841_1_1_applicable_3: return False else: raise EmptyError except EmptyError: - match_arg_610 = menage_2.residence - if match_arg_610.code == Collectivite_Code.Guadeloupe: - _ = match_arg_610.value + match_arg_701 = menage_2.residence + if match_arg_701.code == Collectivite_Code.Guadeloupe: + _ = match_arg_701.value temp_l_841_1_1_applicable_4 = True - elif match_arg_610.code == Collectivite_Code.Guyane: - _ = match_arg_610.value + elif match_arg_701.code == Collectivite_Code.Guyane: + _ = match_arg_701.value temp_l_841_1_1_applicable_4 = True - elif match_arg_610.code == Collectivite_Code.Martinique: - _ = match_arg_610.value + elif match_arg_701.code == Collectivite_Code.Martinique: + _ = match_arg_701.value temp_l_841_1_1_applicable_4 = True - elif match_arg_610.code == Collectivite_Code.LaReunion: - _ = match_arg_610.value + elif match_arg_701.code == Collectivite_Code.LaReunion: + _ = match_arg_701.value temp_l_841_1_1_applicable_4 = True - elif match_arg_610.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_610.value + elif match_arg_701.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_701.value temp_l_841_1_1_applicable_4 = False - elif match_arg_610.code == Collectivite_Code.SaintMartin: - _ = match_arg_610.value + elif match_arg_701.code == Collectivite_Code.SaintMartin: + _ = match_arg_701.value temp_l_841_1_1_applicable_4 = False - elif match_arg_610.code == Collectivite_Code.Metropole: - _ = match_arg_610.value + elif match_arg_701.code == Collectivite_Code.Metropole: + _ = match_arg_701.value temp_l_841_1_1_applicable_4 = False - elif match_arg_610.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_610.value + elif match_arg_701.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_701.value temp_l_841_1_1_applicable_4 = False - elif match_arg_610.code == Collectivite_Code.Mayotte: - _ = match_arg_610.value + elif match_arg_701.code == Collectivite_Code.Mayotte: + _ = match_arg_701.value temp_l_841_1_1_applicable_4 = True if temp_l_841_1_1_applicable_4: return False @@ -38232,42 +41435,42 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili try: try: try: - match_arg_611 = menage_2.logement.mode_occupation - if match_arg_611.code == ModeOccupation_Code.Locataire: - _ = match_arg_611.value + match_arg_702 = menage_2.logement.mode_occupation + if match_arg_702.code == ModeOccupation_Code.Locataire: + _ = match_arg_702.value temp_condition_accession_propriete = False - elif match_arg_611.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_611.value + elif match_arg_702.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_702.value temp_condition_accession_propriete = False - elif match_arg_611.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - proprietaire_6 = match_arg_611.value - match_arg_612 = proprietaire_6.type_travaux_logement_r842_5 - if match_arg_612.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: - _ = match_arg_612.value + elif match_arg_702.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + proprietaire_6 = match_arg_702.value + match_arg_703 = proprietaire_6.type_travaux_logement_r842_5 + if match_arg_703.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: + _ = match_arg_703.value temp_condition_accession_propriete_1 = False - elif match_arg_612.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: - _ = match_arg_612.value + elif match_arg_703.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: + _ = match_arg_703.value temp_condition_accession_propriete_1 = False - elif match_arg_612.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: - _ = match_arg_612.value + elif match_arg_703.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: + _ = match_arg_703.value temp_condition_accession_propriete_1 = True - elif match_arg_612.code == TypeTravauxLogementR8425_Code.PasDeTravaux: - _ = match_arg_612.value + elif match_arg_703.code == TypeTravauxLogementR8425_Code.PasDeTravaux: + _ = match_arg_703.value temp_condition_accession_propriete_1 = False - match_arg_613 = proprietaire_6.pret.titulaire_pret - if match_arg_613.code == TitulairePret_Code.Demandeur: - _ = match_arg_613.value + match_arg_704 = proprietaire_6.pret.titulaire_pret + if match_arg_704.code == TitulairePret_Code.Demandeur: + _ = match_arg_704.value temp_condition_accession_propriete_2 = True - elif match_arg_613.code == TitulairePret_Code.VendeurQuandDemandeurAContratLocationAccession: - _ = match_arg_613.value + elif match_arg_704.code == TitulairePret_Code.VendeurQuandDemandeurAContratLocationAccession: + _ = match_arg_704.value temp_condition_accession_propriete_2 = False temp_condition_accession_propriete = (temp_condition_accession_propriete_2 and temp_condition_accession_propriete_1) - elif match_arg_611.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_611.value + elif match_arg_702.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_702.value temp_condition_accession_propriete = False - elif match_arg_611.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_611.value + elif match_arg_702.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_702.value temp_condition_accession_propriete = False if temp_condition_accession_propriete: temp_condition_accession_propriete_3 = True @@ -38275,42 +41478,42 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili temp_condition_accession_propriete_3 = dead_value raise EmptyError except EmptyError: - match_arg_614 = menage_2.logement.mode_occupation - if match_arg_614.code == ModeOccupation_Code.Locataire: - _ = match_arg_614.value + match_arg_705 = menage_2.logement.mode_occupation + if match_arg_705.code == ModeOccupation_Code.Locataire: + _ = match_arg_705.value temp_condition_accession_propriete_4 = False - elif match_arg_614.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_614.value + elif match_arg_705.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_705.value temp_condition_accession_propriete_4 = False - elif match_arg_614.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - proprietaire_7 = match_arg_614.value - match_arg_615 = proprietaire_7.type_travaux_logement_r842_5 - if match_arg_615.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: - _ = match_arg_615.value + elif match_arg_705.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + proprietaire_7 = match_arg_705.value + match_arg_706 = proprietaire_7.type_travaux_logement_r842_5 + if match_arg_706.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: + _ = match_arg_706.value temp_condition_accession_propriete_5 = False - elif match_arg_615.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: - _ = match_arg_615.value + elif match_arg_706.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: + _ = match_arg_706.value temp_condition_accession_propriete_5 = True - elif match_arg_615.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: - _ = match_arg_615.value + elif match_arg_706.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: + _ = match_arg_706.value temp_condition_accession_propriete_5 = False - elif match_arg_615.code == TypeTravauxLogementR8425_Code.PasDeTravaux: - _ = match_arg_615.value + elif match_arg_706.code == TypeTravauxLogementR8425_Code.PasDeTravaux: + _ = match_arg_706.value temp_condition_accession_propriete_5 = False - match_arg_616 = proprietaire_7.pret.titulaire_pret - if match_arg_616.code == TitulairePret_Code.Demandeur: - _ = match_arg_616.value + match_arg_707 = proprietaire_7.pret.titulaire_pret + if match_arg_707.code == TitulairePret_Code.Demandeur: + _ = match_arg_707.value temp_condition_accession_propriete_6 = True - elif match_arg_616.code == TitulairePret_Code.VendeurQuandDemandeurAContratLocationAccession: - _ = match_arg_616.value + elif match_arg_707.code == TitulairePret_Code.VendeurQuandDemandeurAContratLocationAccession: + _ = match_arg_707.value temp_condition_accession_propriete_6 = False temp_condition_accession_propriete_4 = (temp_condition_accession_propriete_6 and temp_condition_accession_propriete_5) - elif match_arg_614.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_614.value + elif match_arg_705.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_705.value temp_condition_accession_propriete_4 = False - elif match_arg_614.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_614.value + elif match_arg_705.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_705.value temp_condition_accession_propriete_4 = False if temp_condition_accession_propriete_4: temp_condition_accession_propriete_3 = True @@ -38318,56 +41521,56 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili temp_condition_accession_propriete_3 = dead_value raise EmptyError except EmptyError: - match_arg_617 = menage_2.logement.mode_occupation - if match_arg_617.code == ModeOccupation_Code.Locataire: - _ = match_arg_617.value + match_arg_708 = menage_2.logement.mode_occupation + if match_arg_708.code == ModeOccupation_Code.Locataire: + _ = match_arg_708.value temp_condition_accession_propriete_7 = False - elif match_arg_617.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_617.value + elif match_arg_708.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_708.value temp_condition_accession_propriete_7 = False - elif match_arg_617.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - proprietaire_8 = match_arg_617.value - match_arg_618 = proprietaire_8.type_travaux_logement_r842_5 - if match_arg_618.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: - _ = match_arg_618.value + elif match_arg_708.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + proprietaire_8 = match_arg_708.value + match_arg_709 = proprietaire_8.type_travaux_logement_r842_5 + if match_arg_709.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: + _ = match_arg_709.value temp_condition_accession_propriete_8 = True - elif match_arg_618.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: - _ = match_arg_618.value + elif match_arg_709.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: + _ = match_arg_709.value temp_condition_accession_propriete_8 = False - elif match_arg_618.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: - _ = match_arg_618.value + elif match_arg_709.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: + _ = match_arg_709.value temp_condition_accession_propriete_8 = False - elif match_arg_618.code == TypeTravauxLogementR8425_Code.PasDeTravaux: - _ = match_arg_618.value + elif match_arg_709.code == TypeTravauxLogementR8425_Code.PasDeTravaux: + _ = match_arg_709.value temp_condition_accession_propriete_8 = False - match_arg_619 = proprietaire_8.type_travaux_logement_r842_5 - if match_arg_619.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: - _ = match_arg_619.value + match_arg_710 = proprietaire_8.type_travaux_logement_r842_5 + if match_arg_710.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: + _ = match_arg_710.value temp_condition_accession_propriete_9 = False - elif match_arg_619.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: - _ = match_arg_619.value + elif match_arg_710.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: + _ = match_arg_710.value temp_condition_accession_propriete_9 = False - elif match_arg_619.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: - _ = match_arg_619.value + elif match_arg_710.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: + _ = match_arg_710.value temp_condition_accession_propriete_9 = False - elif match_arg_619.code == TypeTravauxLogementR8425_Code.PasDeTravaux: - _ = match_arg_619.value + elif match_arg_710.code == TypeTravauxLogementR8425_Code.PasDeTravaux: + _ = match_arg_710.value temp_condition_accession_propriete_9 = True - match_arg_620 = proprietaire_8.pret.titulaire_pret - if match_arg_620.code == TitulairePret_Code.Demandeur: - _ = match_arg_620.value + match_arg_711 = proprietaire_8.pret.titulaire_pret + if match_arg_711.code == TitulairePret_Code.Demandeur: + _ = match_arg_711.value temp_condition_accession_propriete_10 = True - elif match_arg_620.code == TitulairePret_Code.VendeurQuandDemandeurAContratLocationAccession: - _ = match_arg_620.value + elif match_arg_711.code == TitulairePret_Code.VendeurQuandDemandeurAContratLocationAccession: + _ = match_arg_711.value temp_condition_accession_propriete_10 = False temp_condition_accession_propriete_7 = (temp_condition_accession_propriete_10 and (temp_condition_accession_propriete_9 or temp_condition_accession_propriete_8)) - elif match_arg_617.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_617.value + elif match_arg_708.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_708.value temp_condition_accession_propriete_7 = False - elif match_arg_617.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_617.value + elif match_arg_708.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_708.value temp_condition_accession_propriete_7 = False if temp_condition_accession_propriete_7: temp_condition_accession_propriete_3 = True @@ -38375,21 +41578,21 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili temp_condition_accession_propriete_3 = dead_value raise EmptyError except EmptyError: - match_arg_621 = menage_2.logement.mode_occupation - if match_arg_621.code == ModeOccupation_Code.Locataire: - _ = match_arg_621.value + match_arg_712 = menage_2.logement.mode_occupation + if match_arg_712.code == ModeOccupation_Code.Locataire: + _ = match_arg_712.value temp_condition_accession_propriete_11 = True - elif match_arg_621.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_621.value + elif match_arg_712.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_712.value temp_condition_accession_propriete_11 = True - elif match_arg_621.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - _ = match_arg_621.value + elif match_arg_712.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + _ = match_arg_712.value temp_condition_accession_propriete_11 = False - elif match_arg_621.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_621.value + elif match_arg_712.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_712.value temp_condition_accession_propriete_11 = True - elif match_arg_621.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_621.value + elif match_arg_712.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_712.value temp_condition_accession_propriete_11 = True if temp_condition_accession_propriete_11: temp_condition_accession_propriete_3 = True @@ -38430,7 +41633,7 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili "Prologue : aides au logement"])) eligibilite_commune_dot_demandeur = temp_eligibilite_commune_dot_demandeur try: - temp_eligibilite_commune_dot_date_courante = date_courante_17 + temp_eligibilite_commune_dot_date_courante = date_courante_18 except EmptyError: temp_eligibilite_commune_dot_date_courante = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", @@ -38441,21 +41644,21 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili "Prologue : aides au logement"])) eligibilite_commune_dot_date_courante = temp_eligibilite_commune_dot_date_courante def temp_eligibilite_commune_dot_condition_logement_residence_principale(_:Unit): - match_arg_622 = menage_2.logement.mode_occupation - if match_arg_622.code == ModeOccupation_Code.Locataire: - _ = match_arg_622.value + match_arg_713 = menage_2.logement.mode_occupation + if match_arg_713.code == ModeOccupation_Code.Locataire: + _ = match_arg_713.value temp_eligibilite_commune_dot_condition_logement_residence_principale_1 = False - elif match_arg_622.code == ModeOccupation_Code.ResidentLogementFoyer: - logement_foyer = match_arg_622.value + elif match_arg_713.code == ModeOccupation_Code.ResidentLogementFoyer: + logement_foyer = match_arg_713.value temp_eligibilite_commune_dot_condition_logement_residence_principale_1 = logement_foyer.construit_application_loi_1957_12_III - elif match_arg_622.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - _ = match_arg_622.value + elif match_arg_713.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + _ = match_arg_713.value temp_eligibilite_commune_dot_condition_logement_residence_principale_1 = False - elif match_arg_622.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_622.value + elif match_arg_713.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_713.value temp_eligibilite_commune_dot_condition_logement_residence_principale_1 = False - elif match_arg_622.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_622.value + elif match_arg_713.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_713.value temp_eligibilite_commune_dot_condition_logement_residence_principale_1 = False if temp_eligibilite_commune_dot_condition_logement_residence_principale_1: temp_eligibilite_commune_dot_condition_logement_residence_principale_2 = True @@ -38465,21 +41668,21 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili return temp_eligibilite_commune_dot_condition_logement_residence_principale_2 eligibilite_commune_dot_condition_logement_residence_principale = temp_eligibilite_commune_dot_condition_logement_residence_principale def temp_eligibilite_commune_dot_condition_logement_surface(_:Unit): - match_arg_623 = menage_2.logement.mode_occupation - if match_arg_623.code == ModeOccupation_Code.Locataire: - _ = match_arg_623.value + match_arg_714 = menage_2.logement.mode_occupation + if match_arg_714.code == ModeOccupation_Code.Locataire: + _ = match_arg_714.value temp_eligibilite_commune_dot_condition_logement_surface_1 = False - elif match_arg_623.code == ModeOccupation_Code.ResidentLogementFoyer: - logement_foyer_1 = match_arg_623.value + elif match_arg_714.code == ModeOccupation_Code.ResidentLogementFoyer: + logement_foyer_1 = match_arg_714.value temp_eligibilite_commune_dot_condition_logement_surface_1 = logement_foyer_1.construit_application_loi_1957_12_III - elif match_arg_623.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - _ = match_arg_623.value + elif match_arg_714.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + _ = match_arg_714.value temp_eligibilite_commune_dot_condition_logement_surface_1 = False - elif match_arg_623.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_623.value + elif match_arg_714.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_714.value temp_eligibilite_commune_dot_condition_logement_surface_1 = False - elif match_arg_623.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_623.value + elif match_arg_714.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_714.value temp_eligibilite_commune_dot_condition_logement_surface_1 = False if temp_eligibilite_commune_dot_condition_logement_surface_1: temp_eligibilite_commune_dot_condition_logement_surface_2 = True @@ -38553,58 +41756,58 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili def temp_eligibilite_allocation_logement_familiale(_:Unit): return True def temp_eligibilite_allocation_logement_familiale_1(_:Unit): - match_arg_624 = menage_2.situation_familiale - if match_arg_624.code == SituationFamiliale_Code.Celibataire: - _ = match_arg_624.value + match_arg_715 = menage_2.situation_familiale + if match_arg_715.code == SituationFamiliale_Code.Celibataire: + _ = match_arg_715.value temp_eligibilite_allocation_logement_familiale_2 = ((list_length(menage_2.personnes_a_charge) == integer_of_string("0")) and menage_2.enfant_a_naitre_apres_quatrieme_mois_grossesse) - elif match_arg_624.code == SituationFamiliale_Code.Maries: - _ = match_arg_624.value + elif match_arg_715.code == SituationFamiliale_Code.Maries: + _ = match_arg_715.value temp_eligibilite_allocation_logement_familiale_2 = False - elif match_arg_624.code == SituationFamiliale_Code.Pacses: - _ = match_arg_624.value + elif match_arg_715.code == SituationFamiliale_Code.Pacses: + _ = match_arg_715.value temp_eligibilite_allocation_logement_familiale_2 = False - elif match_arg_624.code == SituationFamiliale_Code.Concubins: - _ = match_arg_624.value + elif match_arg_715.code == SituationFamiliale_Code.Concubins: + _ = match_arg_715.value temp_eligibilite_allocation_logement_familiale_2 = False - elif match_arg_624.code == SituationFamiliale_Code.CelibataireSepareDeFait: - _ = match_arg_624.value + elif match_arg_715.code == SituationFamiliale_Code.CelibataireSepareDeFait: + _ = match_arg_715.value temp_eligibilite_allocation_logement_familiale_2 = False - elif match_arg_624.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: - _ = match_arg_624.value + elif match_arg_715.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: + _ = match_arg_715.value temp_eligibilite_allocation_logement_familiale_2 = False return (l_841_1_6_applicable and temp_eligibilite_allocation_logement_familiale_2) def temp_eligibilite_allocation_logement_familiale_3(_:Unit): try: - match_arg_625 = menage_2.residence - if match_arg_625.code == Collectivite_Code.Guadeloupe: - _ = match_arg_625.value + match_arg_716 = menage_2.residence + if match_arg_716.code == Collectivite_Code.Guadeloupe: + _ = match_arg_716.value temp_eligibilite_allocation_logement_familiale_4 = True - elif match_arg_625.code == Collectivite_Code.Guyane: - _ = match_arg_625.value + elif match_arg_716.code == Collectivite_Code.Guyane: + _ = match_arg_716.value temp_eligibilite_allocation_logement_familiale_4 = True - elif match_arg_625.code == Collectivite_Code.Martinique: - _ = match_arg_625.value + elif match_arg_716.code == Collectivite_Code.Martinique: + _ = match_arg_716.value temp_eligibilite_allocation_logement_familiale_4 = True - elif match_arg_625.code == Collectivite_Code.LaReunion: - _ = match_arg_625.value + elif match_arg_716.code == Collectivite_Code.LaReunion: + _ = match_arg_716.value temp_eligibilite_allocation_logement_familiale_4 = True - elif match_arg_625.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_625.value + elif match_arg_716.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_716.value temp_eligibilite_allocation_logement_familiale_4 = False - elif match_arg_625.code == Collectivite_Code.SaintMartin: - _ = match_arg_625.value + elif match_arg_716.code == Collectivite_Code.SaintMartin: + _ = match_arg_716.value temp_eligibilite_allocation_logement_familiale_4 = False - elif match_arg_625.code == Collectivite_Code.Metropole: - _ = match_arg_625.value + elif match_arg_716.code == Collectivite_Code.Metropole: + _ = match_arg_716.value temp_eligibilite_allocation_logement_familiale_4 = False - elif match_arg_625.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_625.value + elif match_arg_716.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_716.value temp_eligibilite_allocation_logement_familiale_4 = False - elif match_arg_625.code == Collectivite_Code.Mayotte: - _ = match_arg_625.value + elif match_arg_716.code == Collectivite_Code.Mayotte: + _ = match_arg_716.value temp_eligibilite_allocation_logement_familiale_4 = True if (temp_eligibilite_allocation_logement_familiale_4 and demandeur_2.est_non_salarie_agricole_l781_8_l_781_46_code_rural): @@ -38613,16 +41816,16 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili raise EmptyError except EmptyError: def temp_eligibilite_allocation_logement_familiale_5(personne_a_charge_8:PersonneACharge): - match_arg_626 = personne_a_charge_8 - if match_arg_626.code == PersonneACharge_Code.EnfantACharge: - enfant_10 = match_arg_626.value - match_arg_627 = enfant_10.situation_garde_alternee - if match_arg_627.code == SituationGardeAlternee_Code.PasDeGardeAlternee: - _ = match_arg_627.value + match_arg_717 = personne_a_charge_8 + if match_arg_717.code == PersonneACharge_Code.EnfantACharge: + enfant_10 = match_arg_717.value + match_arg_718 = enfant_10.situation_garde_alternee + if match_arg_718.code == SituationGardeAlternee_Code.PasDeGardeAlternee: + _ = match_arg_718.value temp_eligibilite_allocation_logement_familiale_6 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.EffectiveEtPermanente, Unit()) - elif match_arg_627.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: - _ = match_arg_627.value + elif match_arg_718.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: + _ = match_arg_718.value temp_eligibilite_allocation_logement_familiale_6 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.GardeAlterneePartageAllocations, Unit()) return prestations_familiales_dot_droit_ouvert_1( @@ -38633,36 +41836,36 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili prise_en_charge = temp_eligibilite_allocation_logement_familiale_6, a_deja_ouvert_droit_aux_allocations_familiales = enfant_10.a_deja_ouvert_droit_aux_allocations_familiales, beneficie_titre_personnel_aide_personnelle_logement = enfant_10.beneficie_titre_personnel_aide_personnelle_logement)) - elif match_arg_626.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_626.value + elif match_arg_717.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_717.value return False - match_arg_628 = menage_2.residence - if match_arg_628.code == Collectivite_Code.Guadeloupe: - _ = match_arg_628.value + match_arg_719 = menage_2.residence + if match_arg_719.code == Collectivite_Code.Guadeloupe: + _ = match_arg_719.value temp_eligibilite_allocation_logement_familiale_7 = True - elif match_arg_628.code == Collectivite_Code.Guyane: - _ = match_arg_628.value + elif match_arg_719.code == Collectivite_Code.Guyane: + _ = match_arg_719.value temp_eligibilite_allocation_logement_familiale_7 = True - elif match_arg_628.code == Collectivite_Code.Martinique: - _ = match_arg_628.value + elif match_arg_719.code == Collectivite_Code.Martinique: + _ = match_arg_719.value temp_eligibilite_allocation_logement_familiale_7 = True - elif match_arg_628.code == Collectivite_Code.LaReunion: - _ = match_arg_628.value + elif match_arg_719.code == Collectivite_Code.LaReunion: + _ = match_arg_719.value temp_eligibilite_allocation_logement_familiale_7 = True - elif match_arg_628.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_628.value + elif match_arg_719.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_719.value temp_eligibilite_allocation_logement_familiale_7 = False - elif match_arg_628.code == Collectivite_Code.SaintMartin: - _ = match_arg_628.value + elif match_arg_719.code == Collectivite_Code.SaintMartin: + _ = match_arg_719.value temp_eligibilite_allocation_logement_familiale_7 = False - elif match_arg_628.code == Collectivite_Code.Metropole: - _ = match_arg_628.value + elif match_arg_719.code == Collectivite_Code.Metropole: + _ = match_arg_719.value temp_eligibilite_allocation_logement_familiale_7 = False - elif match_arg_628.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_628.value + elif match_arg_719.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_719.value temp_eligibilite_allocation_logement_familiale_7 = False - elif match_arg_628.code == Collectivite_Code.Mayotte: - _ = match_arg_628.value + elif match_arg_719.code == Collectivite_Code.Mayotte: + _ = match_arg_719.value temp_eligibilite_allocation_logement_familiale_7 = True if (temp_eligibilite_allocation_logement_familiale_7 and (list_length(list_filter(temp_eligibilite_allocation_logement_familiale_5, @@ -38673,33 +41876,33 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili raise EmptyError def temp_eligibilite_allocation_logement_familiale_8(_:Unit): try: - match_arg_629 = menage_2.residence - if match_arg_629.code == Collectivite_Code.Guadeloupe: - _ = match_arg_629.value + match_arg_720 = menage_2.residence + if match_arg_720.code == Collectivite_Code.Guadeloupe: + _ = match_arg_720.value temp_eligibilite_allocation_logement_familiale_9 = False - elif match_arg_629.code == Collectivite_Code.Guyane: - _ = match_arg_629.value + elif match_arg_720.code == Collectivite_Code.Guyane: + _ = match_arg_720.value temp_eligibilite_allocation_logement_familiale_9 = False - elif match_arg_629.code == Collectivite_Code.Martinique: - _ = match_arg_629.value + elif match_arg_720.code == Collectivite_Code.Martinique: + _ = match_arg_720.value temp_eligibilite_allocation_logement_familiale_9 = False - elif match_arg_629.code == Collectivite_Code.LaReunion: - _ = match_arg_629.value + elif match_arg_720.code == Collectivite_Code.LaReunion: + _ = match_arg_720.value temp_eligibilite_allocation_logement_familiale_9 = False - elif match_arg_629.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_629.value + elif match_arg_720.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_720.value temp_eligibilite_allocation_logement_familiale_9 = True - elif match_arg_629.code == Collectivite_Code.SaintMartin: - _ = match_arg_629.value + elif match_arg_720.code == Collectivite_Code.SaintMartin: + _ = match_arg_720.value temp_eligibilite_allocation_logement_familiale_9 = True - elif match_arg_629.code == Collectivite_Code.Metropole: - _ = match_arg_629.value + elif match_arg_720.code == Collectivite_Code.Metropole: + _ = match_arg_720.value temp_eligibilite_allocation_logement_familiale_9 = False - elif match_arg_629.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_629.value + elif match_arg_720.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_720.value temp_eligibilite_allocation_logement_familiale_9 = False - elif match_arg_629.code == Collectivite_Code.Mayotte: - _ = match_arg_629.value + elif match_arg_720.code == Collectivite_Code.Mayotte: + _ = match_arg_720.value temp_eligibilite_allocation_logement_familiale_9 = False if (temp_eligibilite_allocation_logement_familiale_9 and demandeur_2.est_non_salarie_agricole_l781_8_l_781_46_code_rural): @@ -38708,16 +41911,16 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili raise EmptyError except EmptyError: def temp_eligibilite_allocation_logement_familiale_10(personne_a_charge_9:PersonneACharge): - match_arg_630 = personne_a_charge_9 - if match_arg_630.code == PersonneACharge_Code.EnfantACharge: - enfant_11 = match_arg_630.value - match_arg_631 = enfant_11.situation_garde_alternee - if match_arg_631.code == SituationGardeAlternee_Code.PasDeGardeAlternee: - _ = match_arg_631.value + match_arg_721 = personne_a_charge_9 + if match_arg_721.code == PersonneACharge_Code.EnfantACharge: + enfant_11 = match_arg_721.value + match_arg_722 = enfant_11.situation_garde_alternee + if match_arg_722.code == SituationGardeAlternee_Code.PasDeGardeAlternee: + _ = match_arg_722.value temp_eligibilite_allocation_logement_familiale_11 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.EffectiveEtPermanente, Unit()) - elif match_arg_631.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: - _ = match_arg_631.value + elif match_arg_722.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: + _ = match_arg_722.value temp_eligibilite_allocation_logement_familiale_11 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.GardeAlterneePartageAllocations, Unit()) return prestations_familiales_dot_droit_ouvert_1( @@ -38728,36 +41931,36 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili prise_en_charge = temp_eligibilite_allocation_logement_familiale_11, a_deja_ouvert_droit_aux_allocations_familiales = enfant_11.a_deja_ouvert_droit_aux_allocations_familiales, beneficie_titre_personnel_aide_personnelle_logement = enfant_11.beneficie_titre_personnel_aide_personnelle_logement)) - elif match_arg_630.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_630.value + elif match_arg_721.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_721.value return False - match_arg_632 = menage_2.residence - if match_arg_632.code == Collectivite_Code.Guadeloupe: - _ = match_arg_632.value + match_arg_723 = menage_2.residence + if match_arg_723.code == Collectivite_Code.Guadeloupe: + _ = match_arg_723.value temp_eligibilite_allocation_logement_familiale_12 = False - elif match_arg_632.code == Collectivite_Code.Guyane: - _ = match_arg_632.value + elif match_arg_723.code == Collectivite_Code.Guyane: + _ = match_arg_723.value temp_eligibilite_allocation_logement_familiale_12 = False - elif match_arg_632.code == Collectivite_Code.Martinique: - _ = match_arg_632.value + elif match_arg_723.code == Collectivite_Code.Martinique: + _ = match_arg_723.value temp_eligibilite_allocation_logement_familiale_12 = False - elif match_arg_632.code == Collectivite_Code.LaReunion: - _ = match_arg_632.value + elif match_arg_723.code == Collectivite_Code.LaReunion: + _ = match_arg_723.value temp_eligibilite_allocation_logement_familiale_12 = False - elif match_arg_632.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_632.value + elif match_arg_723.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_723.value temp_eligibilite_allocation_logement_familiale_12 = True - elif match_arg_632.code == Collectivite_Code.SaintMartin: - _ = match_arg_632.value + elif match_arg_723.code == Collectivite_Code.SaintMartin: + _ = match_arg_723.value temp_eligibilite_allocation_logement_familiale_12 = True - elif match_arg_632.code == Collectivite_Code.Metropole: - _ = match_arg_632.value + elif match_arg_723.code == Collectivite_Code.Metropole: + _ = match_arg_723.value temp_eligibilite_allocation_logement_familiale_12 = False - elif match_arg_632.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_632.value + elif match_arg_723.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_723.value temp_eligibilite_allocation_logement_familiale_12 = False - elif match_arg_632.code == Collectivite_Code.Mayotte: - _ = match_arg_632.value + elif match_arg_723.code == Collectivite_Code.Mayotte: + _ = match_arg_723.value temp_eligibilite_allocation_logement_familiale_12 = False if (temp_eligibilite_allocation_logement_familiale_12 and (list_length(list_filter(temp_eligibilite_allocation_logement_familiale_10, @@ -38778,12 +41981,12 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili temp_eligibilite_allocation_logement_familiale) except EmptyError: def temp_eligibilite_allocation_logement_familiale_14(personne_a_charge_10:PersonneACharge): - match_arg_633 = personne_a_charge_10 - if match_arg_633.code == PersonneACharge_Code.EnfantACharge: - enfant_12 = match_arg_633.value + match_arg_724 = personne_a_charge_10 + if match_arg_724.code == PersonneACharge_Code.EnfantACharge: + enfant_12 = match_arg_724.value return False - elif match_arg_633.code == PersonneACharge_Code.AutrePersonneACharge: - parent_3 = match_arg_633.value + elif match_arg_724.code == PersonneACharge_Code.AutrePersonneACharge: + parent_3 = match_arg_724.value return (parent_3.ascendant_descendant_collateral_deuxieme_troisieme_degre and parent_3.incapacite_80_pourcent_ou_restriction_emploi) if (list_length(list_filter(temp_eligibilite_allocation_logement_familiale_14, @@ -38805,37 +42008,37 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili temp_eligibilite_allocation_logement_familiale_13 = dead_value raise EmptyError except EmptyError: - match_arg_634 = menage_2.situation_familiale - if match_arg_634.code == SituationFamiliale_Code.Celibataire: - _ = match_arg_634.value + match_arg_725 = menage_2.situation_familiale + if match_arg_725.code == SituationFamiliale_Code.Celibataire: + _ = match_arg_725.value temp_eligibilite_allocation_logement_familiale_16 = False - elif match_arg_634.code == SituationFamiliale_Code.Maries: - date_mariage = match_arg_634.value - temp_eligibilite_allocation_logement_familiale_16 = (date_courante_17 <= + elif match_arg_725.code == SituationFamiliale_Code.Maries: + date_mariage = match_arg_725.value + temp_eligibilite_allocation_logement_familiale_16 = (date_courante_18 <= (date_mariage + duree_l841_1_3)) - elif match_arg_634.code == SituationFamiliale_Code.Pacses: - _ = match_arg_634.value + elif match_arg_725.code == SituationFamiliale_Code.Pacses: + _ = match_arg_725.value temp_eligibilite_allocation_logement_familiale_16 = False - elif match_arg_634.code == SituationFamiliale_Code.Concubins: - _ = match_arg_634.value + elif match_arg_725.code == SituationFamiliale_Code.Concubins: + _ = match_arg_725.value temp_eligibilite_allocation_logement_familiale_16 = False - elif match_arg_634.code == SituationFamiliale_Code.CelibataireSepareDeFait: - _ = match_arg_634.value + elif match_arg_725.code == SituationFamiliale_Code.CelibataireSepareDeFait: + _ = match_arg_725.value temp_eligibilite_allocation_logement_familiale_16 = False - elif match_arg_634.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: - _ = match_arg_634.value + elif match_arg_725.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: + _ = match_arg_725.value temp_eligibilite_allocation_logement_familiale_16 = False def temp_eligibilite_allocation_logement_familiale_17(personne_a_charge_12:PersonneACharge): - match_arg_635 = personne_a_charge_12 - if match_arg_635.code == PersonneACharge_Code.EnfantACharge: - enfant_13 = match_arg_635.value - match_arg_636 = enfant_13.situation_garde_alternee - if match_arg_636.code == SituationGardeAlternee_Code.PasDeGardeAlternee: - _ = match_arg_636.value + match_arg_726 = personne_a_charge_12 + if match_arg_726.code == PersonneACharge_Code.EnfantACharge: + enfant_13 = match_arg_726.value + match_arg_727 = enfant_13.situation_garde_alternee + if match_arg_727.code == SituationGardeAlternee_Code.PasDeGardeAlternee: + _ = match_arg_727.value temp_eligibilite_allocation_logement_familiale_18 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.EffectiveEtPermanente, Unit()) - elif match_arg_636.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: - _ = match_arg_636.value + elif match_arg_727.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: + _ = match_arg_727.value temp_eligibilite_allocation_logement_familiale_18 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.GardeAlterneePartageAllocations, Unit()) return not prestations_familiales_dot_droit_ouvert_1( @@ -38846,8 +42049,8 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili prise_en_charge = temp_eligibilite_allocation_logement_familiale_18, a_deja_ouvert_droit_aux_allocations_familiales = enfant_13.a_deja_ouvert_droit_aux_allocations_familiales, beneficie_titre_personnel_aide_personnelle_logement = enfant_13.beneficie_titre_personnel_aide_personnelle_logement)) - elif match_arg_635.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_635.value + elif match_arg_726.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_726.value return False if ((list_length(list_filter(temp_eligibilite_allocation_logement_familiale_17, menage_2.personnes_a_charge)) == @@ -38859,16 +42062,16 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili raise EmptyError except EmptyError: def temp_eligibilite_allocation_logement_familiale_19(personne_a_charge_13:PersonneACharge): - match_arg_637 = personne_a_charge_13 - if match_arg_637.code == PersonneACharge_Code.EnfantACharge: - enfant_14 = match_arg_637.value - match_arg_638 = enfant_14.situation_garde_alternee - if match_arg_638.code == SituationGardeAlternee_Code.PasDeGardeAlternee: - _ = match_arg_638.value + match_arg_728 = personne_a_charge_13 + if match_arg_728.code == PersonneACharge_Code.EnfantACharge: + enfant_14 = match_arg_728.value + match_arg_729 = enfant_14.situation_garde_alternee + if match_arg_729.code == SituationGardeAlternee_Code.PasDeGardeAlternee: + _ = match_arg_729.value temp_eligibilite_allocation_logement_familiale_20 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.EffectiveEtPermanente, Unit()) - elif match_arg_638.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: - _ = match_arg_638.value + elif match_arg_729.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: + _ = match_arg_729.value temp_eligibilite_allocation_logement_familiale_20 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.GardeAlterneePartageAllocations, Unit()) return prestations_familiales_dot_droit_ouvert_1( @@ -38879,8 +42082,8 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili prise_en_charge = temp_eligibilite_allocation_logement_familiale_20, a_deja_ouvert_droit_aux_allocations_familiales = enfant_14.a_deja_ouvert_droit_aux_allocations_familiales, beneficie_titre_personnel_aide_personnelle_logement = enfant_14.beneficie_titre_personnel_aide_personnelle_logement)) - elif match_arg_637.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_637.value + elif match_arg_728.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_728.value return False if (l_841_1_2_applicable and (list_length(list_filter(temp_eligibilite_allocation_logement_familiale_19, @@ -38925,22 +42128,22 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili return TypeEligibiliteAllocationLogement(TypeEligibiliteAllocationLogement_Code.PasEligible, Unit()) def temp_eligibilite_l841_2_1(_:Unit): - match_arg_639 = menage_2.logement.mode_occupation - if match_arg_639.code == ModeOccupation_Code.Locataire: - _ = match_arg_639.value + match_arg_730 = menage_2.logement.mode_occupation + if match_arg_730.code == ModeOccupation_Code.Locataire: + _ = match_arg_730.value temp_eligibilite_l841_2_2 = False - elif match_arg_639.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_639.value + elif match_arg_730.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_730.value temp_eligibilite_l841_2_2 = False - elif match_arg_639.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - proprietaire_9 = match_arg_639.value + elif match_arg_730.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + proprietaire_9 = match_arg_730.value temp_eligibilite_l841_2_2 = (proprietaire_9.pret.date_signature > date_of_numbers(2017,12,31)) - elif match_arg_639.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_639.value + elif match_arg_730.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_730.value temp_eligibilite_l841_2_2 = False - elif match_arg_639.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_639.value + elif match_arg_730.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_730.value temp_eligibilite_l841_2_2 = False return temp_eligibilite_l841_2_2 def temp_eligibilite_l841_2_3(_:Unit): @@ -38951,33 +42154,33 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili raise EmptyError def temp_eligibilite_l841_2_4(_:Unit): try: - match_arg_640 = menage_2.residence - if match_arg_640.code == Collectivite_Code.Guadeloupe: - _ = match_arg_640.value + match_arg_731 = menage_2.residence + if match_arg_731.code == Collectivite_Code.Guadeloupe: + _ = match_arg_731.value temp_eligibilite_l841_2_5 = False - elif match_arg_640.code == Collectivite_Code.Guyane: - _ = match_arg_640.value + elif match_arg_731.code == Collectivite_Code.Guyane: + _ = match_arg_731.value temp_eligibilite_l841_2_5 = False - elif match_arg_640.code == Collectivite_Code.Martinique: - _ = match_arg_640.value + elif match_arg_731.code == Collectivite_Code.Martinique: + _ = match_arg_731.value temp_eligibilite_l841_2_5 = False - elif match_arg_640.code == Collectivite_Code.LaReunion: - _ = match_arg_640.value + elif match_arg_731.code == Collectivite_Code.LaReunion: + _ = match_arg_731.value temp_eligibilite_l841_2_5 = False - elif match_arg_640.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_640.value + elif match_arg_731.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_731.value temp_eligibilite_l841_2_5 = False - elif match_arg_640.code == Collectivite_Code.SaintMartin: - _ = match_arg_640.value + elif match_arg_731.code == Collectivite_Code.SaintMartin: + _ = match_arg_731.value temp_eligibilite_l841_2_5 = False - elif match_arg_640.code == Collectivite_Code.Metropole: - _ = match_arg_640.value + elif match_arg_731.code == Collectivite_Code.Metropole: + _ = match_arg_731.value temp_eligibilite_l841_2_5 = False - elif match_arg_640.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_640.value + elif match_arg_731.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_731.value temp_eligibilite_l841_2_5 = False - elif match_arg_640.code == Collectivite_Code.Mayotte: - _ = match_arg_640.value + elif match_arg_731.code == Collectivite_Code.Mayotte: + _ = match_arg_731.value temp_eligibilite_l841_2_5 = True if (temp_eligibilite_l841_2_5 and demandeur_2.magistrat_fonctionnaire_centre_interets_materiels_familiaux_hors_mayotte): @@ -38986,61 +42189,61 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili else: raise EmptyError except EmptyError: - match_arg_641 = menage_2.logement.mode_occupation - if match_arg_641.code == ModeOccupation_Code.Locataire: - _ = match_arg_641.value + match_arg_732 = menage_2.logement.mode_occupation + if match_arg_732.code == ModeOccupation_Code.Locataire: + _ = match_arg_732.value temp_eligibilite_l841_2_6 = False - elif match_arg_641.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_641.value + elif match_arg_732.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_732.value temp_eligibilite_l841_2_6 = False - elif match_arg_641.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - proprietaire_10 = match_arg_641.value - match_arg_642 = proprietaire_10.pret.accord_financement_representant_Etat_outre_mer - if match_arg_642.code == AccordFinancementRepresentantEtatOutreMer_Code.Accord: - date_accord = match_arg_642.value + elif match_arg_732.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + proprietaire_10 = match_arg_732.value + match_arg_733 = proprietaire_10.pret.accord_financement_representant_Etat_outre_mer + if match_arg_733.code == AccordFinancementRepresentantEtatOutreMer_Code.Accord: + date_accord = match_arg_733.value temp_eligibilite_l841_2_7 = (date_accord <= date_of_numbers(2018,12,31)) - elif match_arg_642.code == AccordFinancementRepresentantEtatOutreMer_Code.PasdAccord: - _ = match_arg_642.value + elif match_arg_733.code == AccordFinancementRepresentantEtatOutreMer_Code.PasdAccord: + _ = match_arg_733.value temp_eligibilite_l841_2_7 = False temp_eligibilite_l841_2_6 = ((proprietaire_10.pret.date_signature > date_of_numbers(2017,12,31)) or ((proprietaire_10.pret.date_signature > date_of_numbers(2019,12,31)) and temp_eligibilite_l841_2_7)) - elif match_arg_641.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_641.value + elif match_arg_732.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_732.value temp_eligibilite_l841_2_6 = False - elif match_arg_641.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_641.value + elif match_arg_732.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_732.value temp_eligibilite_l841_2_6 = False - match_arg_643 = menage_2.residence - if match_arg_643.code == Collectivite_Code.Guadeloupe: - _ = match_arg_643.value + match_arg_734 = menage_2.residence + if match_arg_734.code == Collectivite_Code.Guadeloupe: + _ = match_arg_734.value temp_eligibilite_l841_2_8 = True - elif match_arg_643.code == Collectivite_Code.Guyane: - _ = match_arg_643.value + elif match_arg_734.code == Collectivite_Code.Guyane: + _ = match_arg_734.value temp_eligibilite_l841_2_8 = True - elif match_arg_643.code == Collectivite_Code.Martinique: - _ = match_arg_643.value + elif match_arg_734.code == Collectivite_Code.Martinique: + _ = match_arg_734.value temp_eligibilite_l841_2_8 = True - elif match_arg_643.code == Collectivite_Code.LaReunion: - _ = match_arg_643.value + elif match_arg_734.code == Collectivite_Code.LaReunion: + _ = match_arg_734.value temp_eligibilite_l841_2_8 = True - elif match_arg_643.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_643.value + elif match_arg_734.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_734.value temp_eligibilite_l841_2_8 = False - elif match_arg_643.code == Collectivite_Code.SaintMartin: - _ = match_arg_643.value + elif match_arg_734.code == Collectivite_Code.SaintMartin: + _ = match_arg_734.value temp_eligibilite_l841_2_8 = False - elif match_arg_643.code == Collectivite_Code.Metropole: - _ = match_arg_643.value + elif match_arg_734.code == Collectivite_Code.Metropole: + _ = match_arg_734.value temp_eligibilite_l841_2_8 = False - elif match_arg_643.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_643.value + elif match_arg_734.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_734.value temp_eligibilite_l841_2_8 = False - elif match_arg_643.code == Collectivite_Code.Mayotte: - _ = match_arg_643.value + elif match_arg_734.code == Collectivite_Code.Mayotte: + _ = match_arg_734.value temp_eligibilite_l841_2_8 = True if (temp_eligibilite_l841_2_8 and temp_eligibilite_l841_2_6): @@ -39088,50 +42291,50 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logement_in:EligibiliteAidePersonnaliseeLogementIn): menage_3 = eligibilite_aide_personnalisee_logement_in.menage_in demandeur_3 = eligibilite_aide_personnalisee_logement_in.demandeur_in - date_courante_18 = eligibilite_aide_personnalisee_logement_in.date_courante_in + date_courante_19 = eligibilite_aide_personnalisee_logement_in.date_courante_in try: def temp_caracteristiques_pret_l831_1_1(pret_1:Pret): try: try: try: - match_arg_644 = pret_1.type_pret - if match_arg_644.code == TypePret_Code.D331_32: - _ = match_arg_644.value + match_arg_735 = pret_1.type_pret + if match_arg_735.code == TypePret_Code.D331_32: + _ = match_arg_735.value temp_caracteristiques_pret_l831_1_1_1 = False - elif match_arg_644.code == TypePret_Code.D331_63_64: - _ = match_arg_644.value + elif match_arg_735.code == TypePret_Code.D331_63_64: + _ = match_arg_735.value temp_caracteristiques_pret_l831_1_1_1 = False - elif match_arg_644.code == TypePret_Code.D331_59_8: - _ = match_arg_644.value + elif match_arg_735.code == TypePret_Code.D331_59_8: + _ = match_arg_735.value temp_caracteristiques_pret_l831_1_1_1 = False - elif match_arg_644.code == TypePret_Code.D331_76_1: - _ = match_arg_644.value + elif match_arg_735.code == TypePret_Code.D331_76_1: + _ = match_arg_735.value temp_caracteristiques_pret_l831_1_1_1 = True - elif match_arg_644.code == TypePret_Code.Autre: - _ = match_arg_644.value + elif match_arg_735.code == TypePret_Code.Autre: + _ = match_arg_735.value temp_caracteristiques_pret_l831_1_1_1 = False - match_arg_645 = pret_1.type_pret - if match_arg_645.code == TypePret_Code.D331_32: - _ = match_arg_645.value + match_arg_736 = pret_1.type_pret + if match_arg_736.code == TypePret_Code.D331_32: + _ = match_arg_736.value temp_caracteristiques_pret_l831_1_1_2 = False - elif match_arg_645.code == TypePret_Code.D331_63_64: - _ = match_arg_645.value + elif match_arg_736.code == TypePret_Code.D331_63_64: + _ = match_arg_736.value temp_caracteristiques_pret_l831_1_1_2 = False - elif match_arg_645.code == TypePret_Code.D331_59_8: - _ = match_arg_645.value + elif match_arg_736.code == TypePret_Code.D331_59_8: + _ = match_arg_736.value temp_caracteristiques_pret_l831_1_1_2 = True - elif match_arg_645.code == TypePret_Code.D331_76_1: - _ = match_arg_645.value + elif match_arg_736.code == TypePret_Code.D331_76_1: + _ = match_arg_736.value temp_caracteristiques_pret_l831_1_1_2 = False - elif match_arg_645.code == TypePret_Code.Autre: - _ = match_arg_645.value + elif match_arg_736.code == TypePret_Code.Autre: + _ = match_arg_736.value temp_caracteristiques_pret_l831_1_1_2 = False - match_arg_646 = pret_1.titulaire_pret - if match_arg_646.code == TitulairePret_Code.Demandeur: - _ = match_arg_646.value + match_arg_737 = pret_1.titulaire_pret + if match_arg_737.code == TitulairePret_Code.Demandeur: + _ = match_arg_737.value temp_caracteristiques_pret_l831_1_1_3 = False - elif match_arg_646.code == TitulairePret_Code.VendeurQuandDemandeurAContratLocationAccession: - _ = match_arg_646.value + elif match_arg_737.code == TitulairePret_Code.VendeurQuandDemandeurAContratLocationAccession: + _ = match_arg_737.value temp_caracteristiques_pret_l831_1_1_3 = True if (temp_caracteristiques_pret_l831_1_1_3 and (temp_caracteristiques_pret_l831_1_1_2 or @@ -39140,44 +42343,44 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem else: raise EmptyError except EmptyError: - match_arg_647 = pret_1.type_pret - if match_arg_647.code == TypePret_Code.D331_32: - _ = match_arg_647.value + match_arg_738 = pret_1.type_pret + if match_arg_738.code == TypePret_Code.D331_32: + _ = match_arg_738.value temp_caracteristiques_pret_l831_1_1_4 = False - elif match_arg_647.code == TypePret_Code.D331_63_64: - _ = match_arg_647.value + elif match_arg_738.code == TypePret_Code.D331_63_64: + _ = match_arg_738.value temp_caracteristiques_pret_l831_1_1_4 = True - elif match_arg_647.code == TypePret_Code.D331_59_8: - _ = match_arg_647.value + elif match_arg_738.code == TypePret_Code.D331_59_8: + _ = match_arg_738.value temp_caracteristiques_pret_l831_1_1_4 = False - elif match_arg_647.code == TypePret_Code.D331_76_1: - _ = match_arg_647.value + elif match_arg_738.code == TypePret_Code.D331_76_1: + _ = match_arg_738.value temp_caracteristiques_pret_l831_1_1_4 = False - elif match_arg_647.code == TypePret_Code.Autre: - _ = match_arg_647.value + elif match_arg_738.code == TypePret_Code.Autre: + _ = match_arg_738.value temp_caracteristiques_pret_l831_1_1_4 = False - match_arg_648 = pret_1.type_pret - if match_arg_648.code == TypePret_Code.D331_32: - _ = match_arg_648.value + match_arg_739 = pret_1.type_pret + if match_arg_739.code == TypePret_Code.D331_32: + _ = match_arg_739.value temp_caracteristiques_pret_l831_1_1_5 = True - elif match_arg_648.code == TypePret_Code.D331_63_64: - _ = match_arg_648.value + elif match_arg_739.code == TypePret_Code.D331_63_64: + _ = match_arg_739.value temp_caracteristiques_pret_l831_1_1_5 = False - elif match_arg_648.code == TypePret_Code.D331_59_8: - _ = match_arg_648.value + elif match_arg_739.code == TypePret_Code.D331_59_8: + _ = match_arg_739.value temp_caracteristiques_pret_l831_1_1_5 = False - elif match_arg_648.code == TypePret_Code.D331_76_1: - _ = match_arg_648.value + elif match_arg_739.code == TypePret_Code.D331_76_1: + _ = match_arg_739.value temp_caracteristiques_pret_l831_1_1_5 = False - elif match_arg_648.code == TypePret_Code.Autre: - _ = match_arg_648.value + elif match_arg_739.code == TypePret_Code.Autre: + _ = match_arg_739.value temp_caracteristiques_pret_l831_1_1_5 = False - match_arg_649 = pret_1.titulaire_pret - if match_arg_649.code == TitulairePret_Code.Demandeur: - _ = match_arg_649.value + match_arg_740 = pret_1.titulaire_pret + if match_arg_740.code == TitulairePret_Code.Demandeur: + _ = match_arg_740.value temp_caracteristiques_pret_l831_1_1_6 = True - elif match_arg_649.code == TitulairePret_Code.VendeurQuandDemandeurAContratLocationAccession: - _ = match_arg_649.value + elif match_arg_740.code == TitulairePret_Code.VendeurQuandDemandeurAContratLocationAccession: + _ = match_arg_740.value temp_caracteristiques_pret_l831_1_1_6 = False if (temp_caracteristiques_pret_l831_1_1_6 and (temp_caracteristiques_pret_l831_1_1_5 or @@ -39250,7 +42453,7 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem "Prologue : aides au logement"])) eligibilite_commune_dot_demandeur_1 = temp_eligibilite_commune_dot_demandeur_1 try: - temp_eligibilite_commune_dot_date_courante_1 = date_courante_18 + temp_eligibilite_commune_dot_date_courante_1 = date_courante_19 except EmptyError: temp_eligibilite_commune_dot_date_courante_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", @@ -39271,21 +42474,21 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem return temp_eligibilite_commune_dot_condition_logement_surface_4 eligibilite_commune_dot_condition_logement_surface_1 = temp_eligibilite_commune_dot_condition_logement_surface_3 def temp_eligibilite_commune_dot_date_entree_vigueur_differee_cch_2(_:Unit): - match_arg_650 = menage_3.logement.mode_occupation - if match_arg_650.code == ModeOccupation_Code.Locataire: - _ = match_arg_650.value + match_arg_741 = menage_3.logement.mode_occupation + if match_arg_741.code == ModeOccupation_Code.Locataire: + _ = match_arg_741.value temp_eligibilite_commune_dot_date_entree_vigueur_differee_cch_3 = False - elif match_arg_650.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_650.value + elif match_arg_741.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_741.value temp_eligibilite_commune_dot_date_entree_vigueur_differee_cch_3 = False - elif match_arg_650.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - _ = match_arg_650.value + elif match_arg_741.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + _ = match_arg_741.value temp_eligibilite_commune_dot_date_entree_vigueur_differee_cch_3 = True - elif match_arg_650.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_650.value + elif match_arg_741.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_741.value temp_eligibilite_commune_dot_date_entree_vigueur_differee_cch_3 = False - elif match_arg_650.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_650.value + elif match_arg_741.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_741.value temp_eligibilite_commune_dot_date_entree_vigueur_differee_cch_3 = False if temp_eligibilite_commune_dot_date_entree_vigueur_differee_cch_3: temp_eligibilite_commune_dot_date_entree_vigueur_differee_cch_4 = date_of_numbers(2021,5,1) @@ -39307,17 +42510,17 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem eligibilite_commune_dot_condition_2_r823_4_1 = result_24.condition_2_r823_4 try: try: - match_arg_651 = menage_3.logement.zone - if match_arg_651.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_651.value + match_arg_742 = menage_3.logement.zone + if match_arg_742.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_742.value temp_logement_situe_commune_desequilibre_l831_2 = False - elif match_arg_651.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_651.value + elif match_arg_742.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_742.value temp_logement_situe_commune_desequilibre_l831_2 = False - elif match_arg_651.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_651.value + elif match_arg_742.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_742.value temp_logement_situe_commune_desequilibre_l831_2 = True - if ((date_courante_18 >= date_of_numbers(2019,1,1)) and + if ((date_courante_19 >= date_of_numbers(2019,10,1)) and temp_logement_situe_commune_desequilibre_l831_2): temp_logement_situe_commune_desequilibre_l831_2_1 = True else: @@ -39343,42 +42546,42 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem try: try: try: - match_arg_652 = menage_3.logement.mode_occupation - if match_arg_652.code == ModeOccupation_Code.Locataire: - _ = match_arg_652.value + match_arg_743 = menage_3.logement.mode_occupation + if match_arg_743.code == ModeOccupation_Code.Locataire: + _ = match_arg_743.value temp_condition_logement_bailleur_3 = False - elif match_arg_652.code == ModeOccupation_Code.ResidentLogementFoyer: - logement_foyer_2 = match_arg_652.value + elif match_arg_743.code == ModeOccupation_Code.ResidentLogementFoyer: + logement_foyer_2 = match_arg_743.value temp_condition_logement_bailleur_3 = logement_foyer_2.remplit_conditions_r832_21 - elif match_arg_652.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - _ = match_arg_652.value + elif match_arg_743.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + _ = match_arg_743.value temp_condition_logement_bailleur_3 = False - elif match_arg_652.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_652.value + elif match_arg_743.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_743.value temp_condition_logement_bailleur_3 = False - elif match_arg_652.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_652.value + elif match_arg_743.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_743.value temp_condition_logement_bailleur_3 = False if temp_condition_logement_bailleur_3: return True else: raise EmptyError except EmptyError: - match_arg_653 = menage_3.logement.mode_occupation - if match_arg_653.code == ModeOccupation_Code.Locataire: - _ = match_arg_653.value + match_arg_744 = menage_3.logement.mode_occupation + if match_arg_744.code == ModeOccupation_Code.Locataire: + _ = match_arg_744.value temp_condition_logement_bailleur_4 = False - elif match_arg_653.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_653.value + elif match_arg_744.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_744.value temp_condition_logement_bailleur_4 = False - elif match_arg_653.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - _ = match_arg_653.value + elif match_arg_744.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + _ = match_arg_744.value temp_condition_logement_bailleur_4 = False - elif match_arg_653.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_653.value + elif match_arg_744.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_744.value temp_condition_logement_bailleur_4 = False - elif match_arg_653.code == ModeOccupation_Code.LocationAccession: - propriete = match_arg_653.value + elif match_arg_744.code == ModeOccupation_Code.LocationAccession: + propriete = match_arg_744.value temp_condition_logement_bailleur_4 = caracteristiques_pret_l831_1_6( propriete.pret) if temp_condition_logement_bailleur_4: @@ -39386,52 +42589,52 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem else: raise EmptyError except EmptyError: - match_arg_654 = menage_3.logement.mode_occupation - if match_arg_654.code == ModeOccupation_Code.Locataire: - location_6 = match_arg_654.value - match_arg_655 = location_6.bailleur - if match_arg_655.code == TypeBailleur_Code.BailleurSocial: - convention = match_arg_655.value + match_arg_745 = menage_3.logement.mode_occupation + if match_arg_745.code == ModeOccupation_Code.Locataire: + location_6 = match_arg_745.value + match_arg_746 = location_6.bailleur + if match_arg_746.code == TypeBailleur_Code.BailleurSocial: + convention = match_arg_746.value temp_condition_logement_bailleur_5 = convention.conventionne_livre_III_titre_V_chap_III - elif match_arg_655.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - convention_1 = match_arg_655.value + elif match_arg_746.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + convention_1 = match_arg_746.value temp_condition_logement_bailleur_5 = convention_1.conventionne_livre_III_titre_II_chap_I_sec_3 - elif match_arg_655.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_655.value + elif match_arg_746.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_746.value temp_condition_logement_bailleur_5 = False - elif match_arg_654.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_654.value + elif match_arg_745.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_745.value temp_condition_logement_bailleur_5 = False - elif match_arg_654.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - _ = match_arg_654.value + elif match_arg_745.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + _ = match_arg_745.value temp_condition_logement_bailleur_5 = False - elif match_arg_654.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_654.value + elif match_arg_745.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_745.value temp_condition_logement_bailleur_5 = False - elif match_arg_654.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_654.value + elif match_arg_745.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_745.value temp_condition_logement_bailleur_5 = False if temp_condition_logement_bailleur_5: return True else: raise EmptyError except EmptyError: - match_arg_656 = menage_3.logement.mode_occupation - if match_arg_656.code == ModeOccupation_Code.Locataire: - _ = match_arg_656.value + match_arg_747 = menage_3.logement.mode_occupation + if match_arg_747.code == ModeOccupation_Code.Locataire: + _ = match_arg_747.value temp_condition_logement_bailleur_6 = False - elif match_arg_656.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_656.value + elif match_arg_747.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_747.value temp_condition_logement_bailleur_6 = False - elif match_arg_656.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - propriete_1 = match_arg_656.value + elif match_arg_747.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + propriete_1 = match_arg_747.value temp_condition_logement_bailleur_6 = caracteristiques_pret_l831_1_1( propriete_1.pret) - elif match_arg_656.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_656.value + elif match_arg_747.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_747.value temp_condition_logement_bailleur_6 = False - elif match_arg_656.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_656.value + elif match_arg_747.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_747.value temp_condition_logement_bailleur_6 = False if temp_condition_logement_bailleur_6: return True @@ -39439,42 +42642,42 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem raise EmptyError def temp_condition_logement_bailleur_7(_:Unit): try: - match_arg_657 = menage_3.logement.mode_occupation - if match_arg_657.code == ModeOccupation_Code.Locataire: - _ = match_arg_657.value + match_arg_748 = menage_3.logement.mode_occupation + if match_arg_748.code == ModeOccupation_Code.Locataire: + _ = match_arg_748.value temp_condition_logement_bailleur_8 = False - elif match_arg_657.code == ModeOccupation_Code.ResidentLogementFoyer: - location_7 = match_arg_657.value + elif match_arg_748.code == ModeOccupation_Code.ResidentLogementFoyer: + location_7 = match_arg_748.value temp_condition_logement_bailleur_8 = location_7.conventionne_selon_regles_mayotte - elif match_arg_657.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - _ = match_arg_657.value + elif match_arg_748.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + _ = match_arg_748.value temp_condition_logement_bailleur_8 = False - elif match_arg_657.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_657.value + elif match_arg_748.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_748.value temp_condition_logement_bailleur_8 = False - elif match_arg_657.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_657.value + elif match_arg_748.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_748.value temp_condition_logement_bailleur_8 = False if temp_condition_logement_bailleur_8: return True else: raise EmptyError except EmptyError: - match_arg_658 = menage_3.logement.mode_occupation - if match_arg_658.code == ModeOccupation_Code.Locataire: - _ = match_arg_658.value + match_arg_749 = menage_3.logement.mode_occupation + if match_arg_749.code == ModeOccupation_Code.Locataire: + _ = match_arg_749.value temp_condition_logement_bailleur_9 = False - elif match_arg_658.code == ModeOccupation_Code.ResidentLogementFoyer: - location_8 = match_arg_658.value + elif match_arg_749.code == ModeOccupation_Code.ResidentLogementFoyer: + location_8 = match_arg_749.value temp_condition_logement_bailleur_9 = location_8.conventionne_livre_III_titre_V_chap_III - elif match_arg_658.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - _ = match_arg_658.value + elif match_arg_749.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + _ = match_arg_749.value temp_condition_logement_bailleur_9 = False - elif match_arg_658.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_658.value + elif match_arg_749.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_749.value temp_condition_logement_bailleur_9 = False - elif match_arg_658.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_658.value + elif match_arg_749.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_749.value temp_condition_logement_bailleur_9 = False if temp_condition_logement_bailleur_9: return True @@ -39525,21 +42728,21 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem try: try: try: - match_arg_659 = menage_3.logement.mode_occupation - if match_arg_659.code == ModeOccupation_Code.Locataire: - _ = match_arg_659.value + match_arg_750 = menage_3.logement.mode_occupation + if match_arg_750.code == ModeOccupation_Code.Locataire: + _ = match_arg_750.value temp_condition_logement_pret = False - elif match_arg_659.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_659.value + elif match_arg_750.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_750.value temp_condition_logement_pret = False - elif match_arg_659.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - propriete_2 = match_arg_659.value - match_arg_660 = propriete_2.anciennete_logement - if match_arg_660.code == NeufOuAncien_Code.Neuf: - _ = match_arg_660.value + elif match_arg_750.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + propriete_2 = match_arg_750.value + match_arg_751 = propriete_2.anciennete_logement + if match_arg_751.code == NeufOuAncien_Code.Neuf: + _ = match_arg_751.value temp_condition_logement_pret_1 = False - elif match_arg_660.code == NeufOuAncien_Code.Ancien: - _ = match_arg_660.value + elif match_arg_751.code == NeufOuAncien_Code.Ancien: + _ = match_arg_751.value temp_condition_logement_pret_1 = True temp_condition_logement_pret = ((propriete_2.pret.date_signature >= date_of_numbers(2018,1,1)) and @@ -39547,17 +42750,17 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem date_of_numbers(2020,1,1)) and (temp_condition_logement_pret_1 and logement_situe_commune_desequilibre_l831_2))) - elif match_arg_659.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_659.value + elif match_arg_750.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_750.value temp_condition_logement_pret = False - elif match_arg_659.code == ModeOccupation_Code.LocationAccession: - propriete_3 = match_arg_659.value - match_arg_661 = propriete_3.anciennete_logement - if match_arg_661.code == NeufOuAncien_Code.Neuf: - _ = match_arg_661.value + elif match_arg_750.code == ModeOccupation_Code.LocationAccession: + propriete_3 = match_arg_750.value + match_arg_752 = propriete_3.anciennete_logement + if match_arg_752.code == NeufOuAncien_Code.Neuf: + _ = match_arg_752.value temp_condition_logement_pret_2 = False - elif match_arg_661.code == NeufOuAncien_Code.Ancien: - _ = match_arg_661.value + elif match_arg_752.code == NeufOuAncien_Code.Ancien: + _ = match_arg_752.value temp_condition_logement_pret_2 = True temp_condition_logement_pret = ((propriete_3.pret.date_signature >= date_of_numbers(2018,1,1)) and @@ -39571,22 +42774,22 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem temp_condition_logement_pret_3 = dead_value raise EmptyError except EmptyError: - match_arg_662 = menage_3.logement.mode_occupation - if match_arg_662.code == ModeOccupation_Code.Locataire: - _ = match_arg_662.value + match_arg_753 = menage_3.logement.mode_occupation + if match_arg_753.code == ModeOccupation_Code.Locataire: + _ = match_arg_753.value temp_condition_logement_pret_4 = False - elif match_arg_662.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_662.value + elif match_arg_753.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_753.value temp_condition_logement_pret_4 = False - elif match_arg_662.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - propriete_4 = match_arg_662.value + elif match_arg_753.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + propriete_4 = match_arg_753.value temp_condition_logement_pret_4 = (propriete_4.pret.date_signature >= date_of_numbers(2017,12,31)) - elif match_arg_662.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_662.value + elif match_arg_753.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_753.value temp_condition_logement_pret_4 = False - elif match_arg_662.code == ModeOccupation_Code.LocationAccession: - propriete_5 = match_arg_662.value + elif match_arg_753.code == ModeOccupation_Code.LocationAccession: + propriete_5 = match_arg_753.value temp_condition_logement_pret_4 = (propriete_5.pret.date_signature >= date_of_numbers(2017,12,31)) if temp_condition_logement_pret_4: @@ -39610,35 +42813,35 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem try: try: try: - match_arg_663 = menage_3.residence - if match_arg_663.code == Collectivite_Code.Guadeloupe: - _ = match_arg_663.value + match_arg_754 = menage_3.residence + if match_arg_754.code == Collectivite_Code.Guadeloupe: + _ = match_arg_754.value temp_eligibilite_1 = False - elif match_arg_663.code == Collectivite_Code.Guyane: - _ = match_arg_663.value + elif match_arg_754.code == Collectivite_Code.Guyane: + _ = match_arg_754.value temp_eligibilite_1 = False - elif match_arg_663.code == Collectivite_Code.Martinique: - _ = match_arg_663.value + elif match_arg_754.code == Collectivite_Code.Martinique: + _ = match_arg_754.value temp_eligibilite_1 = False - elif match_arg_663.code == Collectivite_Code.LaReunion: - _ = match_arg_663.value + elif match_arg_754.code == Collectivite_Code.LaReunion: + _ = match_arg_754.value temp_eligibilite_1 = False - elif match_arg_663.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_663.value + elif match_arg_754.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_754.value temp_eligibilite_1 = False - elif match_arg_663.code == Collectivite_Code.SaintMartin: - _ = match_arg_663.value + elif match_arg_754.code == Collectivite_Code.SaintMartin: + _ = match_arg_754.value temp_eligibilite_1 = False - elif match_arg_663.code == Collectivite_Code.Metropole: - _ = match_arg_663.value + elif match_arg_754.code == Collectivite_Code.Metropole: + _ = match_arg_754.value temp_eligibilite_1 = False - elif match_arg_663.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_663.value + elif match_arg_754.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_754.value temp_eligibilite_1 = True - elif match_arg_663.code == Collectivite_Code.Mayotte: - _ = match_arg_663.value + elif match_arg_754.code == Collectivite_Code.Mayotte: + _ = match_arg_754.value temp_eligibilite_1 = False - if ((date_courante_18 >= date_of_numbers(2021,1,1)) and + if ((date_courante_19 >= date_of_numbers(2021,1,1)) and temp_eligibilite_1): temp_eligibilite_2 = False else: @@ -39663,7 +42866,7 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem "Déclarations des champs d'application", "Prologue : aides au logement"])) eligibilite_1 = temp_eligibilite_2 - return EligibiliteAidePersonnaliseeLogement(date_courante = date_courante_18, + return EligibiliteAidePersonnaliseeLogement(date_courante = date_courante_19, eligibilite = eligibilite_1, nombre_personnes_a_charge_prises_en_compte = nombre_personnes_a_charge_prises_en_compte_2, coefficents_enfants_garde_alternee_pris_en_compte = coefficents_enfants_garde_alternee_pris_en_compte_2) @@ -39671,15 +42874,15 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAidesAuLogementIn): menage_4 = calculette_aides_au_logement_in.menage_in demandeur_4 = calculette_aides_au_logement_in.demandeur_in - date_courante_19 = calculette_aides_au_logement_in.date_courante_in + date_courante_20 = calculette_aides_au_logement_in.date_courante_in ressources_menage_prises_en_compte = calculette_aides_au_logement_in.ressources_menage_prises_en_compte_in try: - temp_eligibilite_allocation_logement_dot_date_courante = date_courante_19 + temp_eligibilite_allocation_logement_dot_date_courante = date_courante_20 except EmptyError: temp_eligibilite_allocation_logement_dot_date_courante = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1179, - start_column=14, end_line=1179, + start_line=1190, + start_column=14, end_line=1190, end_column=59, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -39689,8 +42892,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_eligibilite_allocation_logement_dot_menage = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1171, - start_column=14, end_line=1171, + start_line=1182, + start_column=14, end_line=1182, end_column=52, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -39700,8 +42903,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_eligibilite_allocation_logement_dot_demandeur = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1175, - start_column=14, end_line=1175, + start_line=1186, + start_column=14, end_line=1186, end_column=55, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -39732,8 +42935,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_eligibilite_aide_personnalisee_logement_dot_menage = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1169, - start_column=14, end_line=1169, + start_line=1180, + start_column=14, end_line=1180, end_column=60, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -39743,19 +42946,19 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_eligibilite_aide_personnalisee_logement_dot_demandeur = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1173, - start_column=14, end_line=1173, + start_line=1184, + start_column=14, end_line=1184, end_column=63, law_headings=["Calculette globale", "Prologue : aides au logement"])) eligibilite_aide_personnalisee_logement_dot_demandeur = temp_eligibilite_aide_personnalisee_logement_dot_demandeur try: - temp_eligibilite_aide_personnalisee_logement_dot_date_courante = date_courante_19 + temp_eligibilite_aide_personnalisee_logement_dot_date_courante = date_courante_20 except EmptyError: temp_eligibilite_aide_personnalisee_logement_dot_date_courante = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1177, - start_column=14, end_line=1177, + start_line=1188, + start_column=14, end_line=1188, end_column=67, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -39772,8 +42975,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_allocation_logement_dot_mode_occupation = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1183, - start_column=14, end_line=1183, + start_line=1194, + start_column=14, end_line=1194, end_column=56, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -39783,8 +42986,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_allocation_logement_dot_ressources_menage_sans_arrondi = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1187, - start_column=14, end_line=1187, + start_line=1198, + start_column=14, end_line=1198, end_column=58, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -39794,8 +42997,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_allocation_logement_dot_situation_familiale = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1191, - start_column=14, end_line=1191, + start_line=1202, + start_column=14, end_line=1202, end_column=60, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -39805,8 +43008,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_allocation_logement_dot_nombre_personnes_a_charge = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1198, - start_column=14, end_line=1198, + start_line=1209, + start_column=14, end_line=1209, end_column=66, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -39816,35 +43019,35 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_allocation_logement_dot_zone = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1202, - start_column=14, end_line=1202, + start_line=1213, + start_column=14, end_line=1213, end_column=45, law_headings=["Calculette globale", "Prologue : aides au logement"])) calcul_allocation_logement_dot_zone = temp_calcul_allocation_logement_dot_zone try: - temp_calcul_allocation_logement_dot_date_courante = date_courante_19 + temp_calcul_allocation_logement_dot_date_courante = date_courante_20 except EmptyError: temp_calcul_allocation_logement_dot_date_courante = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1206, - start_column=14, end_line=1206, + start_line=1217, + start_column=14, end_line=1217, end_column=54, law_headings=["Calculette globale", "Prologue : aides au logement"])) calcul_allocation_logement_dot_date_courante = temp_calcul_allocation_logement_dot_date_courante try: - match_arg_664 = eligibilite_allocation_logement_dot_eligibilite_l841_2 - if match_arg_664.code == TypeEligibiliteAllocationLogement_Code.PasEligible: - _ = match_arg_664.value + match_arg_755 = eligibilite_allocation_logement_dot_eligibilite_l841_2 + if match_arg_755.code == TypeEligibiliteAllocationLogement_Code.PasEligible: + _ = match_arg_755.value temp_calcul_allocation_logement_dot_type_aide = TypeAidesPersonnelleLogement(TypeAidesPersonnelleLogement_Code.AllocationLogementSociale, Unit()) - elif match_arg_664.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementFamiliale: - _ = match_arg_664.value + elif match_arg_755.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementFamiliale: + _ = match_arg_755.value temp_calcul_allocation_logement_dot_type_aide = TypeAidesPersonnelleLogement(TypeAidesPersonnelleLogement_Code.AllocationLogementFamiliale, Unit()) - elif match_arg_664.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementSociale: - _ = match_arg_664.value + elif match_arg_755.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementSociale: + _ = match_arg_755.value temp_calcul_allocation_logement_dot_type_aide = TypeAidesPersonnelleLogement(TypeAidesPersonnelleLogement_Code.AllocationLogementSociale, Unit()) temp_calcul_allocation_logement_dot_type_aide_1 = temp_calcul_allocation_logement_dot_type_aide @@ -39866,8 +43069,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_allocation_logement_dot_residence = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1210, - start_column=14, end_line=1210, + start_line=1221, + start_column=14, end_line=1221, end_column=50, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -39887,8 +43090,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_aide_personnalisee_logement_dot_mode_occupation = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1181, - start_column=14, end_line=1181, + start_line=1192, + start_column=14, end_line=1192, end_column=64, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -39914,8 +43117,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_aide_personnalisee_logement_dot_ressources_menage_sans_arrondi = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1185, - start_column=14, end_line=1185, + start_line=1196, + start_column=14, end_line=1196, end_column=66, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -39925,8 +43128,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_aide_personnalisee_logement_dot_situation_familiale = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1189, - start_column=14, end_line=1189, + start_line=1200, + start_column=14, end_line=1200, end_column=68, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -39936,8 +43139,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_aide_personnalisee_logement_dot_nombre_personnes_a_charge = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1194, start_column=5, - end_line=1194, end_column=65, + start_line=1205, start_column=5, + end_line=1205, end_column=65, law_headings=["Calculette globale", "Prologue : aides au logement"])) calcul_aide_personnalisee_logement_dot_nombre_personnes_a_charge = temp_calcul_aide_personnalisee_logement_dot_nombre_personnes_a_charge @@ -39946,19 +43149,19 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_aide_personnalisee_logement_dot_zone = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1200, - start_column=14, end_line=1200, + start_line=1211, + start_column=14, end_line=1211, end_column=53, law_headings=["Calculette globale", "Prologue : aides au logement"])) calcul_aide_personnalisee_logement_dot_zone = temp_calcul_aide_personnalisee_logement_dot_zone try: - temp_calcul_aide_personnalisee_logement_dot_date_courante = date_courante_19 + temp_calcul_aide_personnalisee_logement_dot_date_courante = date_courante_20 except EmptyError: temp_calcul_aide_personnalisee_logement_dot_date_courante = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1204, - start_column=14, end_line=1204, + start_line=1215, + start_column=14, end_line=1215, end_column=62, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -39968,8 +43171,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_aide_personnalisee_logement_dot_residence = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1208, - start_column=14, end_line=1208, + start_line=1219, + start_column=14, end_line=1219, end_column=58, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -39989,30 +43192,30 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_coefficents_enfants_garde_alternee_pris_en_compte_5 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1165, - start_column=12, end_line=1165, + start_line=1176, + start_column=12, end_line=1176, end_column=61, law_headings=["Calculette globale", "Prologue : aides au logement"])) coefficents_enfants_garde_alternee_pris_en_compte_3 = temp_coefficents_enfants_garde_alternee_pris_en_compte_5 try: - match_arg_665 = eligibilite_allocation_logement_dot_eligibilite_l841_2 - if match_arg_665.code == TypeEligibiliteAllocationLogement_Code.PasEligible: - _ = match_arg_665.value + match_arg_756 = eligibilite_allocation_logement_dot_eligibilite_l841_2 + if match_arg_756.code == TypeEligibiliteAllocationLogement_Code.PasEligible: + _ = match_arg_756.value temp_eligibilite_3 = False - elif match_arg_665.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementFamiliale: - _ = match_arg_665.value + elif match_arg_756.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementFamiliale: + _ = match_arg_756.value temp_eligibilite_3 = True - elif match_arg_665.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementSociale: - _ = match_arg_665.value + elif match_arg_756.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementSociale: + _ = match_arg_756.value temp_eligibilite_3 = True temp_eligibilite_4 = (eligibilite_aide_personnalisee_logement_dot_eligibilite or temp_eligibilite_3) except EmptyError: temp_eligibilite_4 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1161, - start_column=12, end_line=1161, + start_line=1172, + start_column=12, end_line=1172, end_column=23, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -40023,15 +43226,15 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides if not eligibilite_2: return aide_finale_25 else: - match_arg_666 = eligibilite_allocation_logement_dot_eligibilite_l841_2 - if match_arg_666.code == TypeEligibiliteAllocationLogement_Code.PasEligible: - _ = match_arg_666.value + match_arg_757 = eligibilite_allocation_logement_dot_eligibilite_l841_2 + if match_arg_757.code == TypeEligibiliteAllocationLogement_Code.PasEligible: + _ = match_arg_757.value temp_traitement_aide_finale_5 = True - elif match_arg_666.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementFamiliale: - _ = match_arg_666.value + elif match_arg_757.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementFamiliale: + _ = match_arg_757.value temp_traitement_aide_finale_5 = False - elif match_arg_666.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementSociale: - _ = match_arg_666.value + elif match_arg_757.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementSociale: + _ = match_arg_757.value temp_traitement_aide_finale_5 = False if (eligibilite_aide_personnalisee_logement_dot_eligibilite and not temp_traitement_aide_finale_5): @@ -40053,58 +43256,58 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides aide_finale_25) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1163, + start_line=1174, start_column=12, - end_line=1163, + end_line=1174, end_column=34, law_headings=["Calculette globale", "Prologue : aides au logement"])) except EmptyError: temp_traitement_aide_finale_4 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1163, - start_column=12, end_line=1163, + start_line=1174, + start_column=12, end_line=1174, end_column=34, law_headings=["Calculette globale", "Prologue : aides au logement"])) traitement_aide_finale_3 = temp_traitement_aide_finale_4 try: if not eligibilite_2: - temp_aide_finale_formule_9 = money_of_cents_string("0") + temp_aide_finale_formule_10 = money_of_cents_string("0") else: - match_arg_667 = eligibilite_allocation_logement_dot_eligibilite_l841_2 - if match_arg_667.code == TypeEligibiliteAllocationLogement_Code.PasEligible: - _ = match_arg_667.value - temp_aide_finale_formule_10 = True - elif match_arg_667.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementFamiliale: - _ = match_arg_667.value - temp_aide_finale_formule_10 = False - elif match_arg_667.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementSociale: - _ = match_arg_667.value - temp_aide_finale_formule_10 = False + match_arg_758 = eligibilite_allocation_logement_dot_eligibilite_l841_2 + if match_arg_758.code == TypeEligibiliteAllocationLogement_Code.PasEligible: + _ = match_arg_758.value + temp_aide_finale_formule_11 = True + elif match_arg_758.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementFamiliale: + _ = match_arg_758.value + temp_aide_finale_formule_11 = False + elif match_arg_758.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementSociale: + _ = match_arg_758.value + temp_aide_finale_formule_11 = False if (eligibilite_aide_personnalisee_logement_dot_eligibilite and - not temp_aide_finale_formule_10): + not temp_aide_finale_formule_11): if (calcul_aide_personnalisee_logement_dot_traitement_aide_finale( calcul_aide_personnalisee_logement_dot_aide_finale_formule) > calcul_allocation_logement_dot_traitement_aide_finale( calcul_allocation_logement_dot_aide_finale_formule)): - temp_aide_finale_formule_9 = calcul_aide_personnalisee_logement_dot_aide_finale_formule + temp_aide_finale_formule_10 = calcul_aide_personnalisee_logement_dot_aide_finale_formule else: - temp_aide_finale_formule_9 = calcul_allocation_logement_dot_aide_finale_formule + temp_aide_finale_formule_10 = calcul_allocation_logement_dot_aide_finale_formule else: if eligibilite_aide_personnalisee_logement_dot_eligibilite: - temp_aide_finale_formule_9 = calcul_aide_personnalisee_logement_dot_aide_finale_formule + temp_aide_finale_formule_10 = calcul_aide_personnalisee_logement_dot_aide_finale_formule else: - temp_aide_finale_formule_9 = calcul_allocation_logement_dot_aide_finale_formule + temp_aide_finale_formule_10 = calcul_allocation_logement_dot_aide_finale_formule except EmptyError: - temp_aide_finale_formule_9 = dead_value + temp_aide_finale_formule_10 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1162, - start_column=12, end_line=1162, + start_line=1173, + start_column=12, end_line=1173, end_column=31, law_headings=["Calculette globale", "Prologue : aides au logement"])) - aide_finale_formule_8 = temp_aide_finale_formule_9 + aide_finale_formule_8 = temp_aide_finale_formule_10 return CalculetteAidesAuLogement(eligibilite = eligibilite_2, aide_finale_formule = aide_finale_formule_8, traitement_aide_finale = traitement_aide_finale_3, @@ -40113,22 +43316,22 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides def calculette_aides_au_logement_garde_alternee(calculette_aides_au_logement_garde_alternee_in:CalculetteAidesAuLogementGardeAlterneeIn): menage_5 = calculette_aides_au_logement_garde_alternee_in.menage_in demandeur_5 = calculette_aides_au_logement_garde_alternee_in.demandeur_in - date_courante_20 = calculette_aides_au_logement_garde_alternee_in.date_courante_in + date_courante_21 = calculette_aides_au_logement_garde_alternee_in.date_courante_in ressources_menage_prises_en_compte_1 = calculette_aides_au_logement_garde_alternee_in.ressources_menage_prises_en_compte_in try: def temp_menage_sans_enfants_garde_alternee(personne_a_charge_14:PersonneACharge): - match_arg_668 = personne_a_charge_14 - if match_arg_668.code == PersonneACharge_Code.EnfantACharge: - enfant_15 = match_arg_668.value - match_arg_669 = enfant_15.situation_garde_alternee - if match_arg_669.code == SituationGardeAlternee_Code.PasDeGardeAlternee: - _ = match_arg_669.value + match_arg_759 = personne_a_charge_14 + if match_arg_759.code == PersonneACharge_Code.EnfantACharge: + enfant_15 = match_arg_759.value + match_arg_760 = enfant_15.situation_garde_alternee + if match_arg_760.code == SituationGardeAlternee_Code.PasDeGardeAlternee: + _ = match_arg_760.value return True - elif match_arg_669.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: - _ = match_arg_669.value + elif match_arg_760.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: + _ = match_arg_760.value return False - elif match_arg_668.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_668.value + elif match_arg_759.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_759.value return True temp_menage_sans_enfants_garde_alternee_1 = Menage(prestations_recues = menage_5.prestations_recues, logement = menage_5.logement, @@ -40143,8 +43346,8 @@ def calculette_aides_au_logement_garde_alternee(calculette_aides_au_logement_gar except EmptyError: temp_menage_sans_enfants_garde_alternee_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1232, - start_column=11, end_line=1232, + start_line=1243, + start_column=11, end_line=1243, end_column=45, law_headings=["Calculette avec garde alternée", "Prologue : aides au logement"])) @@ -40154,8 +43357,8 @@ def calculette_aides_au_logement_garde_alternee(calculette_aides_au_logement_gar except EmptyError: temp_calculette_dot_menage = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1243, - start_column=14, end_line=1243, + start_line=1254, + start_column=14, end_line=1254, end_column=31, law_headings=["Calculette avec garde alternée", "Prologue : aides au logement"])) @@ -40165,19 +43368,19 @@ def calculette_aides_au_logement_garde_alternee(calculette_aides_au_logement_gar except EmptyError: temp_calculette_dot_demandeur = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1245, - start_column=14, end_line=1245, + start_line=1256, + start_column=14, end_line=1256, end_column=34, law_headings=["Calculette avec garde alternée", "Prologue : aides au logement"])) calculette_dot_demandeur = temp_calculette_dot_demandeur try: - temp_calculette_dot_date_courante = date_courante_20 + temp_calculette_dot_date_courante = date_courante_21 except EmptyError: temp_calculette_dot_date_courante = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1247, - start_column=14, end_line=1247, + start_line=1258, + start_column=14, end_line=1258, end_column=38, law_headings=["Calculette avec garde alternée", "Prologue : aides au logement"])) @@ -40187,8 +43390,8 @@ def calculette_aides_au_logement_garde_alternee(calculette_aides_au_logement_gar except EmptyError: temp_calculette_dot_ressources_menage_prises_en_compte = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1249, - start_column=14, end_line=1249, + start_line=1260, + start_column=14, end_line=1260, end_column=59, law_headings=["Calculette avec garde alternée", "Prologue : aides au logement"])) @@ -40206,8 +43409,8 @@ def calculette_aides_au_logement_garde_alternee(calculette_aides_au_logement_gar except EmptyError: temp_calculette_sans_garde_alternee_dot_menage = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1251, - start_column=14, end_line=1251, + start_line=1262, + start_column=14, end_line=1262, end_column=51, law_headings=["Calculette avec garde alternée", "Prologue : aides au logement"])) @@ -40217,19 +43420,19 @@ def calculette_aides_au_logement_garde_alternee(calculette_aides_au_logement_gar except EmptyError: temp_calculette_sans_garde_alternee_dot_demandeur = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1253, - start_column=14, end_line=1253, + start_line=1264, + start_column=14, end_line=1264, end_column=54, law_headings=["Calculette avec garde alternée", "Prologue : aides au logement"])) calculette_sans_garde_alternee_dot_demandeur = temp_calculette_sans_garde_alternee_dot_demandeur try: - temp_calculette_sans_garde_alternee_dot_date_courante = date_courante_20 + temp_calculette_sans_garde_alternee_dot_date_courante = date_courante_21 except EmptyError: temp_calculette_sans_garde_alternee_dot_date_courante = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1255, - start_column=14, end_line=1255, + start_line=1266, + start_column=14, end_line=1266, end_column=58, law_headings=["Calculette avec garde alternée", "Prologue : aides au logement"])) @@ -40239,8 +43442,8 @@ def calculette_aides_au_logement_garde_alternee(calculette_aides_au_logement_gar except EmptyError: temp_calculette_sans_garde_alternee_dot_ressources_menage_prises_en_compte = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1258, start_column=5, - end_line=1258, end_column=70, + start_line=1269, start_column=5, + end_line=1269, end_column=70, law_headings=["Calculette avec garde alternée", "Prologue : aides au logement"])) calculette_sans_garde_alternee_dot_ressources_menage_prises_en_compte = temp_calculette_sans_garde_alternee_dot_ressources_menage_prises_en_compte @@ -40257,8 +43460,8 @@ def calculette_aides_au_logement_garde_alternee(calculette_aides_au_logement_gar except EmptyError: temp_eligibilite_5 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1239, - start_column=12, end_line=1239, + start_line=1250, + start_column=12, end_line=1250, end_column=23, law_headings=["Calculette avec garde alternée", "Prologue : aides au logement"])) @@ -40268,8 +43471,8 @@ def calculette_aides_au_logement_garde_alternee(calculette_aides_au_logement_gar except EmptyError: temp_coefficents_enfants_garde_alternee_pris_en_compte_6 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1233, - start_column=11, end_line=1233, + start_line=1244, + start_column=11, end_line=1244, end_column=60, law_headings=["Calculette avec garde alternée", "Prologue : aides au logement"])) @@ -40291,8 +43494,8 @@ def calculette_aides_au_logement_garde_alternee(calculette_aides_au_logement_gar except EmptyError: temp_aide_finale_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1240, - start_column=12, end_line=1240, + start_line=1251, + start_column=12, end_line=1251, end_column=23, law_headings=["Calculette avec garde alternée", "Prologue : aides au logement"])) diff --git a/french_law/python/src/allocations_familiales.py b/french_law/python/src/allocations_familiales.py index 144d4113..462a13b0 100644 --- a/french_law/python/src/allocations_familiales.py +++ b/french_law/python/src/allocations_familiales.py @@ -643,8 +643,8 @@ def verification_age_superieur_a(verification_age_superieur_a_in:VerificationAge except EmptyError: temp_est_superieur = dead_value raise NoValueProvided(SourcePosition(filename="examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr", - start_line=32, start_column=12, - end_line=32, end_column=25, + start_line=33, start_column=12, + end_line=33, end_column=25, law_headings=["Prologue", "Montant du salaire minimum de croissance"])) est_superieur = temp_est_superieur